drop freetype 1 support
authormirabilos <t.glaser@tarent.de>
Fri, 19 Jul 2019 17:10:00 +0000 (19:10 +0200)
committermirabilos <mirabilos@evolvis.org>
Fri, 19 Jul 2019 17:10:00 +0000 (19:10 +0200)
25 files changed:
Imakefile.in
README
README.fonts
README.fonts.jp [deleted file]
SYNTAX
TODO
USAGE
contrib/mgp-mode.el
contrib/mgp-mode20.el
draw.c
globals.c
grammar.y
js.c
mgp.c
mgp.h
mgp.man
mgp2ps.man
parse.c
print.c
sample/README
sample/README.jp
sample/mgprc-sample
scanner.l
tfont.c [deleted file]
unimap.c

index 7f05b01..28780f5 100644 (file)
@@ -4,10 +4,9 @@
 srcdir=        @srcdir@
 VPATH= @srcdir@
 SRCS=  mgp.c draw.c parse.c plist.c print.c globals.c x11.c x11dummy.c \
-       background.c scanner.c grammar.c postscript.c tfont.c \
-       embed.c unimap.c
+       background.c scanner.c grammar.c postscript.c embed.c unimap.c
 TPOBJS=        mgp.o draw.o parse.o plist.o globals.o x11.o background.o \
-       scanner.o grammar.o postscript.o tfont.o embed.o unimap.o
+       scanner.o grammar.o postscript.o embed.o unimap.o
 PROBJS=        print.o parse.o globals.o x11dummy.o scanner.o grammar.o postscript.o \
        embed.o 
 JSOBJS=        js.o parse.o globals.o x11dummy.o scanner.o grammar.o postscript.o \
@@ -64,7 +63,6 @@ SpecialObjectRule(plist.o,plist.c, $(DEFS) $(OPTFLAGS))
 SpecialObjectRule(postscript.o,postscript.c, $(DEFS) $(OPTFLAGS))
 SpecialObjectRule(print.o,print.c, $(DEFS) $(OPTFLAGS))
 SpecialObjectRule(x11.o,x11.c, $(DEFS) $(OPTFLAGS))
-SpecialObjectRule(tfont.o,tfont.c, $(DEFS) $(OPTFLAGS))
 SpecialObjectRule(x11dummy.o,x11dummy.c, $(DEFS) $(OPTFLAGS))
 SpecialObjectRule(background.o,background.c, $(DEFS) $(OPTFLAGS))
 SpecialObjectRule(globals.o,globals.c, $(DEFS) $(OPTFLAGS))
diff --git a/README b/README
index ff959f1..f2966b9 100644 (file)
--- a/README
+++ b/README
@@ -43,12 +43,7 @@ To install "libttf.a", see:
 
 Follow the steps below to make MagicPoint:
 
-English or European:
        % ./configure
-
-Japanese:
-       % ./configure --enable-freetype-charset16
-
        % xmkmf
        % make Makefiles
        % make
index eae96ed..2e3c247 100644 (file)
@@ -19,27 +19,6 @@ make use of large-size fonts with MagicPoint.
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 
-- Scalable English fonts, with the FreeType library
-
-FreeType project, a free software project for TrueType scalable font
-renderer, provides the FreeType library at:
-       http://www.freetype.org/
-MagicPoint implements native support for the FreeType library.  You
-can compile the renderer into MagicPoint.  If you have the FreeType
-library (libttf.a) somewhere in your system, the "configure" script
-will find the library and links the library into the MagicPoint
-binary.
-
-To avoid linking libttf.a into the MagicPoint binary, you can specify
-the --disable-freetype option to the "configure" script, as below:
-
-       ./configure --disable-freetype
-
-If you want to get Free/Commercial TrueType fonts, read the section
-"How to get TrueType fonts" below.
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
 - Scalable English fonts, with a standard X11 server
 
 A standard X11 server is capable of rendering "Adobe Type-1" scalable
@@ -62,47 +41,6 @@ You can query these fonts by using XLFD (X11 font specification
 string) starting with "-adobe-".  Use "xfontsel" to see whether or not
 it is installed.
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-- Scalable Japanese fonts, with FreeType
-
-Recent MagicPoint can use the FreeType library for rendering Japanese
-fonts.  You can use this function by executing configure script as
-below:
-
-       ./configure --enable-freetype-charset16
-
-You also need to specify Japanese truetype font files with 'tmfont'
-directive.  The usage of 'tmfont' directive is described in the SYNTAX
-file.
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-                      Advanced/complex methods
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-- Scalable fonts, with a FreeType-ready X11 server
-
-There seems to be several projects for implementing FreeType into X11
-server, or X11 font servers (xfs).  By using these kind of
-implementation, a X11 server will be able to render wide variety of
-TrueType scalable fonts.  For obtaining implementation, visit the
-following URL:
-       http://www.freetype.org/projects.htm
-       http://www.gimp.org/fonts.html
-               See the "Using TrueType fonts with Gimp and X" section.
-
-The projects listed below support not only Western languages but also
-Asian languages:
-       http://cclub.cc.tut.ac.jp/~go/unix/xtt.html
-       http://hawk.ise.chuo-u.ac.jp/student/person/tshiozak/x-tt/index-eng.html
-
-By specifying proper XLFD, you can use those scalable fonts with
-MagicPoint.  You may have to modify some of the FreeType-X11 font
-specification file as well.
-
-
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
                            Miscellaneous
diff --git a/README.fonts.jp b/README.fonts.jp
deleted file mode 100644 (file)
index c6fa083..0000000
+++ /dev/null
@@ -1,199 +0,0 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-        MagicPoint\e$B%W%l%<%s%F!<%7%g%sMQ$N%U%)%s%H@_Dj$K$D$$$F\e(B
-
-                           March 15, 2001
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-           %%% \e$BF|K\8lHG\e(B(README.fonts.jp)\e$B$K4X$9$kCm0U\e(B %%%
-
-           \e$B1Q8lHG\e(B(README.fonts)\e$B$NJ}$,@5<0$G$9!#\e(B
-           \e$BF|K\8lHG$OFbMF$N99?7$,CY$l$k2DG=@-$,$"$j$^$9!#\e(B
-
-           %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-MagicPoint \e$B$G$OMM!9$JJ}K!$G%U%)%s%H>pJs$r<hF@$7$^$9!#\e(BX11 \e$B%5!<%P$+$i$N\e(B 
-X \e$B%U%)%s%H$N<hF@$r$O$8$a$H$7!"\e(BVFlib \e$B$d\e(B FreeType \e$B$rD>@\8F$S=P$7$K$h$k%Y\e(B
-\e$B%/%?!<%U%)%s%H$NMxMQ$b$G$-$k$h$&$K$J$C$F$$$^$9!#\e(B
-
-\e$B$3$3$G$O!"\e(BMagicPoint \e$B$GH/I=$9$k:]$K5$$K$J$kBg$-$JJ8;z$rH~$7$/I=<($9$k\e(B
-\e$BJ}K!$K$D$$$F@bL@$7$^$9!#\e(B
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-                            \e$BI8=`E*$JJ}K!\e(B
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-- FreeType \e$B%i%$%V%i%j$rMxMQ$7$?%9%1!<%i%V%k%U%)%s%H$NMxMQ\e(B
-
-FreeType \e$B%i%$%V%i%j$O!"\e(BFreeType \e$B%W%m%8%'%/%H\e(B
-       http://www.freetype.org/
-\e$B$,G[I[$7$F$$$k%U%j!<$N\e(B TrueType \e$B%U%)%s%H!&%l%s%@%i!<$G$9!#\e(BMagicPoint 
-\e$B$O\e(BFreeType \e$B%i%$%V%i%j$rAH$_9~$`$3$H$G!"D>@\\e(B TrueType \e$B%U%)%s%H$rMxMQ$G\e(B
-\e$B$-$k$h$&$K$J$j$^$9!#$*;H$$%7%9%F%`$K\e(B FreeType \e$B%i%$%V%i%j\e(B(libttf.a)\e$B$,%$\e(B
-\e$B%s%9%H!<%k$5$l$F$$$k>l9g!"\e(BMagicPoint \e$B$N9=C[;~\e(B(configure\e$B%9%/%j%W%H<B9T\e(B
-\e$B;~\e(B)\e$B$K<+F0E*$KAH$_9~$^$l$k$h$&$K$J$C$F$$$^$9!#\e(B
-
-\e$B$b$7!"\e(BFreeType \e$B%i%$%V%i%j$r4^$^$J$$\e(B MagicPoint \e$B$r:n@.$7$?$$>l9g$O!"\e(B
-
-       ./configure --disable-freetype
-
-\e$B$N$h$&$K!"\e(Bconfigure\e$B%9%/%j%W%H$N0z?t$K\e(B--disable-freetype\e$B$r$D$1$F<B9T$7\e(B
-\e$B$F$/$@$5$$!#\e(B
-
-TrueType \e$B%U%)%s%H\e(B(\e$B%U%j!<\e(B/\e$B>&MQ\e(B)\e$B$N<hF@J}K!$O!"!X\e(BTrueType \e$B%U%)%s%H$N<hF@\e(B
-\e$BJ}K!!Y$r;2>H$7$F$/$@$5$$!#\e(B
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-- \e$BI8=`E*$J\e(BX11\e$B%5!<%P$rMxMQ$7$?%9%1!<%i%V%k!&%U%)%s%H$NMxMQ\e(B
-
-\e$B1QJ8;z%U%)%s%H$K4X$7$F$O!"\e(BX11\e$B%5!<%P$OI8=`$G!"\e(BAdobe Type1\e$B7A<0$N%9%1!<%i\e(B
-\e$B%V%k!&%U%)%s%H$rMxMQ$G$-$^$9!#\e(BAdobe Type1 \e$B7A<0$N%U%)%s%H$r;H$&$K$O!"\e(B
-X11\e$B%U%)%s%H%Q%9$,DL$C$F$$$k>l=j$K\e(B(\e$BDL>o$O\e(B/usr/X11R6/lib/X11/font/Type1)
-\e$B$K%U%)%s%H$,CV$+$l$F$$$J$1$l$P$J$j$^$;$s!#\e(B
-
-\e$B$*;H$$$N%7%9%F%`$K\e(B Type1 \e$B%U%)%s%H$,4^$^$l$F$$$J$$!"$b$7$/$O!"I,MW$J%U%)\e(B
-\e$B%s%H$,7g$1$F$$$k>l9g$O!"$4<+J,$G%$%s%9%H!<%k$7$F$/$@$5$$!#\e(B
-
-X11\e$BI8=`G[IU$K$D$$$F$$$k$b$N0J30$K$b!"$$$/$D$+$N\e(BAdobe Type1\e$B7A<0$N%U%)%s%H$r\e(B
-       http://www.gimp.org/fonts.html
-       ftp://ftp.gimp.org/pub/gimp/fonts/
-\e$B$+$i<hF@$9$k$3$H$,$G$-$^$9!#\e(B
-
-\e$B%U%)%s%H$r%$%s%9%H!<%k$7$?%G%#%l%/%H%jCf$K!"\e(Bfonts.dir \e$B$r:n@.$9$k$3$H$r\e(B
-\e$BK:$l$J$$$h$&$K$7$F$/$@$5$$!#\e(Bfonts.dir \e$B$O\e(B mkfontdir \e$B%3%^%s%I$G:n@.$7$^\e(B
-\e$B$9!#\e(Bmkfontdir \e$B%3%^%s%I$K$D$$$F$O\e(B man \e$B$r;2>H$7$F$/$@$5$$!#\e(B
-
-\e$B$^$?!"K:$l$:$K\e(B Type1 \e$B%U%)%s%H$,CV$+$l$?%G%#%l%/%H%j$X$N%U%)%s%H!&%Q%9\e(B
-\e$B$r@_Dj$9$k$h$&$K$7$F$/$@$5$$!#%7%9%F%`$K$h$C$F%U%)%s%H!&%Q%9$N@_DjJ}K!\e(B
-\e$B$,0[$J$k$3$H$,$"$k$N$G!"$*;H$$$N\e(B X \e$B%5!<%P$N%^%K%e%"%k$r;2>H$7$F$/$@$5\e(B
-\e$B$$!#\e(B
-
-\e$B%U%)%s%H$r%$%s%9%H!<%k$7$?D>8e$b$7$/$O%U%)%s%H!&%Q%9DL$7$?D>8e$O\e(B
-       xset fp rehash
-\e$B%3%^%s%I$rMxMQ$7$F\e(B X \e$B%5!<%P$N%U%)%s%H>pJs$r99?7$7$F$/$@$5$$!#\e(B
-
-\e$B@5$7$/%U%)%s%H$,%$%s%9%H!<%k$5$l$F$$$k$+$O!"\e(Bxfontsel \e$B$*$h$S\e(B xlsfonts\e$B$G\e(B
-\e$B3NG'$G$-$^$9!#\e(BType1 \e$B%U%)%s%H$O\e(B XLFD \e$B$H$7$F$O\e(B "-adobe-" \e$B$G;O$^$kL>A0$,\e(B
-\e$B$D$$$F$$$^$9$N$G!"$=$N%U%)%s%H$,$"$k$3$H$r3NG'$7$F$/$@$5$$!#\e(B
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-- \e$B%9%1!<%i%V%kF|K\8l%U%)%s%H$NMxMQ\e(B
-
-%%%%
-
-- FreeType\e$B$NMxMQ\e(B
-
-\e$B8=:_$N\e(BMagicPoint\e$B$G$O\e(BFreeType(http://www.freetype.org/)\e$B$rMxMQ$7$F\e(B TrueType
-\e$B$NF|K\8l$rI=<($9$k$3$H$,$G$-$^$9!#\e(BFreeType\e$B$,%$%s%9%H!<%k$5$l$F$$$k\e(B
-\e$B4D6-$G!"\e(B
-
-       ./configure --enable-freetype-charset16
-
-\e$B$N$h$&$K%*%W%7%g%s$r;XDj$7$F\e(Bconfigure\e$B$r<B9T$7$F$/$@$5$$!#\e(B
-\e$B$3$N@_Dj$K$h$j!"\e(B'tmfont'\e$B$H$$$&\e(Bdirective\e$B$,;HMQ$G$-$k$h$&$K$J$j$^$9!#\e(B
-'tmfont' directive\e$B$G!"F|K\8l$N\e(BTrueType\e$B%U%)%s%H$r;XDj$7$F$/$@$5$$!#\e(B
-tmfont directive\e$B$N\e(BSYNTAX\e$B$K$D$$$F$O!"\e(BSYNTAX\e$B%U%!%$%k$r;2>H$7$F$/$@$5$$!#\e(B
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-                              \e$B9g$o$;5;\e(B
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-FreeType \e$B$KBP1~$7$?\e(B X11 \e$B%5!<%P$K$h$k%9%1!<%i%V%k!&%U%)%s%H$NMxMQ\e(B
-
-%%%%
-
-- \e$B1QJ8;z%U%)%s%H$N$_$NMxMQ\e(B
-
-\e$B%U%j!<$N\e(B TreeType \e$B%U%)%s%H!&%l%s%@%i$G$"$k\e(B FreeType \e$B%i%$%V%i%j$,8x3+$5\e(B
-\e$B$l$F$+$i!"\e(BFreeType \e$B$r\e(B X11 \e$B%5!<%P<+BN$b$7$/$O\e(B X11 \e$B%U%)%s%H!&%5!<%P\e(B(xfs)
-\e$B$KAH$_9~$b$&$9$kF0$-$,3hH/2=$7$F$*$j!"$$$/$D$+$N%W%m%8%'%/%H$,<BAu$r;n\e(B
-\e$B$_$F$$$^$9!#\e(B
-
-\e$B$?$H$($P!"\e(B
-       http://www.freetype.org/projects.htm
-       http://www.gimp.org/fonts.html
-               "Using TrueType fonts with Gimp and X"\e$B%;%/%7%g%s$r\e(B
-               \e$B;2>H$N$3$H\e(B
-\e$B$N%5%$%H$G8x3+$5$l$F$$$^$9!#\e(B
-
-\e$B$3$l$i$N\e(B FreeType \e$B$,AH$_9~$^$l$?\e(B X11 \e$B%5!<%P$rMxMQ$9$k$H!"MM!9$J\e(B
-TrueType \e$B%U%)%s%H$r\e(B X11 \e$B$N%U%)%s%H$H$7$FMxMQ$G$-$k$h$&$K$J$j$^$9!#\e(B
-
-\e$B$3$l$i$N%U%)%s%H$N\e(B XLFD \e$B$r;XDj$9$k$3$H$G!"\e(BMagicPoint \e$B$+$iMxMQ$G$-$k$h\e(B
-\e$B$&$K$J$j$^$9!#\e(B
-
-%%%%
-
-- \e$B1QJ8;z\e(B/\e$BF|K\8l%U%)%s%H$NMxMQ\e(B
-
-\e$BF|K\8l\e(B TrueType \e$B$K4X$7$F$b!"\e(BFreeType \e$B$rAH$_9~$s$@\e(B X11 \e$B%5!<%P$*$h$S\e(B X11 
-\e$B%U%)%s%H!&%5!<%P$GMxMQ$7$h$&$H$$$&F0$-$,$"$j$^$9!#\e(B
-
-\e$B$?$H$($P!"\e(B
-       http://cclub.cc.tut.ac.jp/~go/unix/xtt.html
-       http://hawk.ise.chuo-u.ac.jp/student/person/tshiozak/x-tt/
-\e$B$N%5%$%H$G8x3+$5$l$F$$$^$9!#\e(B
-
-\e$B$3$l$i$N%U%)%s%H$N\e(B XLFD \e$B$r;XDj$9$k$3$H$G!"\e(BMagicPoint \e$B$+$iMxMQ$G$-$k$h\e(B
-\e$B$&$K$J$j$^$9!#\e(B
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-                          \e$B$=$NB>;(B?$J$3$H\e(B
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-- TrueType \e$B%U%)%s%H$N<hF@J}K!\e(B
-
-\e$B0J2<$N%5%$%H$G!"%U%j!<$N\e(B TrueType \e$B%U%)%s%H$r<hF@$G$-$^$9\e(B:
-       http://www.aaa.nl/people/mkatwijk/freettf.html
-       http://come.to/freefonts
-       CTAN mirros, pub/CTAN/fonts/cm/ps-type1/bakoma/ttf
-               Computer modern fonts in TrueType format
-       ftp://www.mew.org/MagicPoint/xtt-fonts_0.19981020-3.tar.gz
-               \e$BG[I[<+M3$J%U%)%s%H$,\e(BTrueType\e$B%U%)!<%^%C%H$KJQ49$5$l$F\e(B
-               \e$BCV$$$F$"$j$^$9!#\e(B(\e$BOBED8&%4%7%C%/$HEOJUL@D+\e(B)
-
-       http://members.aol.com/JR9er/index.html
-       http://members.xoom.com/acidfonts/
-       http://dingbats.i-us.com/
-       http://www.freestuffcenter.com/fonts.html
-       http://www.fontpool.com/
-               TrueType\e$B%U%)%s%H=8!"$^$?$O%j%s%/=8\e(B
-
-\e$B$^$?!"0J2<$N%5%$%H$G<hF@$G$-$k%U%)%s%H$O!"L5NA$G$9$,%i%$%;%s%9$K>/$7Ld\e(B
-\e$BBj$,$"$j$^$9!#\e(B
-       http://microsoft.com/typography/fontpack/default.htm
-               \e$B%i%$%;%s%9$K$O%U%j!<$G$"$k$H=q$+$l$F$$$^$9$,!"\e(B
-               Windows\e$B%W%i%C%H!&%U%)!<%`$G$7$+E83+$G$-$J$$<+8J2rE`\e(B
-               \e$B7A<0%P%$%J%j$GG[I[$5$l$F$$$^$9!#E83+$N:]$K$O%i%$%;\e(B
-               \e$B%s%9>r9`$X$NF10U$,I,MW$K$J$j!"<+F0E*$K\e(Bwindows\e$B$N%U%)\e(B
-               \e$B%s%H%G%#%l%/%H%j$K%$%s%9%H!<%k$5$l$^$9!#\e(B
-       http://www.bitstream.com/products/world/cyberbits/index.html
-               \e$BL5NA$G%@%&%s%m!<%I$G$-$^$9$,!"$=$N:]$K%5%$%s$7$J$$\e(B
-               \e$B$H$$$1$^$;$s!#\e(BCDROM \e$B$r9XF~$9$k$3$H$G$b<hF@$G$-$^$9!#\e(B
-
-\e$B>&MQ%U%)%s%H$rMxMQ$9$k$N$bNI$$J}K!$G$7$g$&!#0J2<$N%5%$%H$G$O%$%s%?!<%M%C\e(B
-\e$B%H>e$G%*%s%i%$%s$G%U%)%s%H$rHNGd$7$F$$$^$9\e(B:
-       http://www3.digitalriver.com/bit/index.html
-       http://www.arttoday.com/
-       http://www.matchfonts.com/
-
-\e$B$^$?!"%Q%=%3%s!&%7%g%C%WE9F,$G!V%U%)%s%H!&%3%l%/%7%g%s\e(B CD-ROM\e$B!W$NN`$r\e(B
-\e$B9XF~$9$k$N$b$$$$$G$7$g$&!#\e(B
-
-NOTE: TeX \e$B5/8;$N%U%)%s%H\e(B(computer modern font\e$B$b$3$NCg4V\e(B)\e$B$G$O!"\e(B"<" \e$B$d\e(B 
-">" \e$B$J$I$N5-9fN`$,\e(B ASCII \e$B$H0c$&G[Ns$K$J$C$F$$$^$9!#$3$N$?$a!"?t<0$d$=\e(B
-\e$B$NB>$N5-9fF~$j$NJ8$r=q$/$H$-$K6lO+$9$k$+$b$7$l$^$;$s!#\e(B
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/SYNTAX b/SYNTAX
index e312686..836f29e 100644 (file)
--- a/SYNTAX
+++ b/SYNTAX
@@ -3,8 +3,6 @@ $Id: SYNTAX,v 1.46 2008/01/18 17:43:20 nishida Exp $
 placement restriction for directives:
                .etc/mgprc      preamble        main pages
                ---             ---             ---
-%tfdir         okay            x               okay
-%tfont0                okay            x               okay
 %default       x               okay            x
 %tab           x               okay            x
 %deffont       x               okay            x
@@ -145,24 +143,6 @@ others             x               x               okay
        interpreted as XLFD.  In such a case, you should use "FONTNAME:STYLE"
        or "FONTNAME:style=STYLE".
 
-%tfont "font"
-       <font> :: use TrueType font <font> to draw ASCII characters.
-               <font> can be full pathname, or just filename.  Use %tfdir
-               for setting default font directory.
-
-%tmfont "font"
-       <font> :: use TrueType font <font> to draw Kanji characters.
-               <font> can be full pathname, or just filename. 
-
-       you do not need it with Xft2 enabled installation.
-
-%tfont0 "font"
-       <font> :: use TrueType font <font>, if none of the font specified by
-               %tfont directive is found.  This is the last-resort for the
-               TrueType font finding code.
-               (allowed in ~/.etc/mgprc, without "%" sign)
-
-       you do not need it with Xft2 enabled installation.
 %psfont "font"
        <font>:: use PostScript fonts to create PostScript file
        Suported fonts are:
@@ -351,22 +331,14 @@ TEXT
        The command has to be placed on a line alone.
        Do not use commas.
 
-%tfdir "dir"
-       Specifies where to find TrueType font by default.
-       (allowed in ~/.etc/mgprc, without "%" sign)
-
 %deffont "fontname" <list-of-directives>
        Define a symbolic fontname, by using list-of-directives.
        The directive must appear in the preamble.
 
-       For example, you may want to define a typewriter-like font as:
-               %deffont "typewriter" xfont "courier", tfont "cour.ttf"
+       For example, you may want to define a serif font as:
+       %deffont "standard" xfont "Gentium:style=Italic", xfont "Gentium Italic"
        By using the above definition, you can make your presentation file
        less dependent to the configuration of magicpoint binary.
-       If the configuration allows the use of TrueType "cour.ttf" font,
-       "tfont" directive will be effective.  If there's no TrueType font
-       available, or FreeType library is not compiled into the magicpoint
-       binary you are currently using, "xfont" will be effective.
 
        "%font" cannot be used in "%deffont".  this is for avoiding infinite
        loops.
diff --git a/TODO b/TODO
index 95d6ac9..a7c5e57 100644 (file)
--- a/TODO
+++ b/TODO
@@ -13,13 +13,12 @@ EXTRA_CFLAGS+=      -Wno-unused-function
 EXTRA_CFLAGS+= -Wno-unused-result
 
 CONFIGURE_ARGS+=       --prefix=/usr
-CONFIGURE_ARGS+=       --disable-freetype              mutually exclusive with xft2
 CONFIGURE_ARGS+=       --enable-xft2                   BSD: flavour’d
                                [check if still needed with imlib, and whether imlib is enabled]
 Debian implicit:       --enable-imlib                  BSD: no but will need to cope
 
-#undef FREETYPE FREETYPE_CHARSET16
 #define USE_XFT2
+-sample/mgprc-sample
 
 # better to use PATH search
 CONFIGURE_ENV+=                ac_cv_path_mgp_cv_path_gunzip=/bin/gunzip
diff --git a/USAGE b/USAGE
index 3203bfc..a4f0a33 100644 (file)
--- a/USAGE
+++ b/USAGE
@@ -198,8 +198,8 @@ package(ftp://ftp.dcs.ed.ac.uk/pub/ajcd).
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 
-(1) Refrain from using "xfont" and "tfont" directive
-    directly.  Use "deffont" in preamble and "font" in body instead.
+(1) Refrain from using "xfont" directive directly.
+    Use "deffont" in preamble and "font" in body instead.
     This should allow people to view your presentation in all the
     configuration of the renderer.
 
index 5bb99bd..f8d65bb 100644 (file)
 (defvar mgp-directives
   '("size" "fore" "back" "bgrad" "ccolor" "left" "leftfill" "center" "right" 
     "shrink" "lcutin" "rcutin" "cont" "nodefault" "xfont" 
-    "tfont" "tfont0" "bar" "image" "prefix" "icon" "bimage" "default"
+    "bar" "image" "prefix" "icon" "bimage" "default"
     "tab" "tabprefix" "page" "vgap" "hgap" "pause" "mark" "again" 
-    "system" "xsystem" "filter" "endfilter" "tfdir" "deffont" 
+    "system" "xsystem" "filter" "endfilter" "deffont" 
     "font" "embed" "endembed" "noop" "linestart" "lineend" "quality")
   "*List of MagicPoint directives for completing input.")
 (defvar mgp-directives-optional nil
                 ("^%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*" nil Yellow)
                 ("^#.*" nil comment)
                 ("\"" "[^\\]\"" string)
-                ("\\<\\(size\\|fore\\|back\\|bgrad\\|ccolor\\|left\\|leftfill\\|center\\|right\\|shrink\\|lcutin\\|rcutin\\|cont\\|nodefault\\|xfont\\|tfont\\|tfont0\\|bar\\|image\\|prefix\\|icon\\|bimage\\|default\\|tab\\|tabprefix\\|page\\|vgap\\|hgap\\|pause\\|mark\\|again\\|system\\|xsystem\\|filter\\|endfilter\\|tfdir\\|deffont\\|font\\|embed\\|endembed\\|noop\\|linestart\\|lineend\\|quality\\)\\>" nil keyword)
+                ("\\<\\(size\\|fore\\|back\\|bgrad\\|ccolor\\|left\\|leftfill\\|center\\|right\\|shrink\\|lcutin\\|rcutin\\|cont\\|nodefault\\|xfont\\|bar\\|image\\|prefix\\|icon\\|bimage\\|default\\|tab\\|tabprefix\\|page\\|vgap\\|hgap\\|pause\\|mark\\|again\\|system\\|xsystem\\|filter\\|endfilter\\|deffont\\|font\\|embed\\|endembed\\|noop\\|linestart\\|lineend\\|quality\\)\\>" nil keyword)
                 ("^%.*" nil defun)
                 ))))))
 
index 4cf177c..146b2d8 100644 (file)
 (defvar mgp-directives
   '("size" "fore" "back" "bgrad" "ccolor" "left" "leftfill" "center" "right" 
     "shrink" "lcutin" "rcutin" "cont" "nodefault" "xfont" 
-    "tfont" "tfont0" "bar" "image" "prefix" "icon" "bimage" "default"
+    "bar" "image" "prefix" "icon" "bimage" "default"
     "tab" "tabprefix" "page" "vgap" "hgap" "pause" "mark" "again" 
-    "system" "xsystem" "filter" "endfilter" "tfdir" "deffont" 
+    "system" "xsystem" "filter" "endfilter" "deffont" 
     "font" "embed" "endembed" "noop" "linestart" "lineend" "quality")
   "*List of MagicPoint directives for completing input.")
 (defvar mgp-directives-optional nil
                 ("^#.*" nil comment)
                 ("^%%.*" nil comment)
                 ("\"" "[^\\]\"" string)
-                ("\\<\\(size\\|fore\\|back\\|bgrad\\|ccolor\\|left\\|leftfill\\|center\\|right\\|shrink\\|lcutin\\|rcutin\\|cont\\|nodefault\\|xfont\\|tfont\\|tfont0\\|bar\\|image\\|prefix\\|icon\\|bimage\\|default\\|tab\\|tabprefix\\|page\\|vgap\\|hgap\\|pause\\|mark\\|again\\|system\\|xsystem\\|filter\\|endfilter\\|tfdir\\|deffont\\|font\\|embed\\|endembed\\|noop\\|linestart\\|lineend\\|quality\\)\\>" nil keyword)
+                ("\\<\\(size\\|fore\\|back\\|bgrad\\|ccolor\\|left\\|leftfill\\|center\\|right\\|shrink\\|lcutin\\|rcutin\\|cont\\|nodefault\\|xfont\\|bar\\|image\\|prefix\\|icon\\|bimage\\|default\\|tab\\|tabprefix\\|page\\|vgap\\|hgap\\|pause\\|mark\\|again\\|system\\|xsystem\\|filter\\|endfilter\\|deffont\\|font\\|embed\\|endembed\\|noop\\|linestart\\|lineend\\|quality\\)\\>" nil keyword)
                 ("^%.*" nil defun)
                 )))))
       ((= emacs-major-version 20)
                   "size\\|fore\\|back\\|bgrad\\|ccolor\\|"
                   "left\\|leftfill\\|center\\|right\\|"
                   "shrink\\|lcutin\\|rcutin\\|cont\\|nodefault\\|"
-                  "xfont\\|tfont\\|tfont0\\|"
+                  "xfont\\|"
                   "bar\\|image\\|prefix\\|icon\\|bimage\\|default\\|"
                   "tab\\|tabprefix\\|page\\|vgap\\|hgap\\|"
                   "pause\\|mark\\|again\\|system\\|xsystem\\|"
-                  "filter\\|endfilter\\|tfdir\\|"
+                  "filter\\|endfilter\\|"
                   "deffont\\|font\\|embed\\|endembed\\|noop\\|"
                   "linestart\\|lineend\\|quality\\|include"
                   "\\)\\>"
diff --git a/draw.c b/draw.c
index 16cd235..5cc4a73 100644 (file)
--- a/draw.c
+++ b/draw.c
@@ -87,10 +87,6 @@ static Pixel obj_image_color __P((Image *, Image *, Pixel, int *));
 static Image *obj_image_trans __P((Image *, u_int, u_int));
 static void obj_draw_image __P((Drawable, u_int, u_int, struct render_object *, int));
 static void obj_draw __P((struct render_state *, Drawable, u_int, u_int));
-#ifdef FREETYPE
-static u_int draw_onechar_tf __P((struct render_state *, u_int, int, int,
-       u_int, char *, int, int));
-#endif
 static char *x_fontname __P((char *, int, char *, int, char *));
 static int x_parsefont __P((char *, int *, int*));
 static XFontStruct *x_setfont __P((char *, u_int, char *, int *));
@@ -546,9 +542,6 @@ process_direc(state, seenpause)
        case CTL_SIZE:
                nonscaled_size[caching] = state->height * cp->ctf_value / 100;
                char_size[caching] = nonscaled_size[caching];
-#ifdef FREETYPE
-               tfc_setsize(char_size[caching]);
-#endif
                break;
 
        case CTL_VGAP:
@@ -620,17 +613,6 @@ process_direc(state, seenpause)
                char_size[caching] = nonscaled_size[caching];
                break;
 
-#ifdef FREETYPE
-       case CTL_TFONT:
-               tfc_setfont(cp->ctc2_value1, 0, cp->ctc2_value2);
-               break;
-
-       case CTL_TMFONT:
-               tfc_setfont(cp->ctc_value, 1, NULL);
-               break;
-
-#endif /*FREETYPE*/
-
        case CTL_XFONT2:
                x_registerseed(state, cp->ctc2_value1, cp->ctc2_value2);
                break;
@@ -819,20 +801,6 @@ process_direc(state, seenpause)
                process_icon(state, cp);
                break;
 
-#ifdef FREETYPE
-       case CTL_TFDIR:
-               freetypefontdir = cp->ctc_value;
-               break;
-
-       case CTL_TFONT0:
-               freetypefont0 = cp->ctc_value;
-               break;
-
-       case CTL_TMFONT0:
-               freetypemfont0 = cp->ctc_value;
-               break;
-#endif
-
        case CTL_NOOP:
        case CTL_NODEF:
        case CTL_TITLE:
@@ -1319,7 +1287,7 @@ draw_fragment(state, p, len, registry, charset16)
        struct render_object *thislineend;
        u_int startwidth;
        struct render_state backup0, backup;
-       enum { MODE_UNKNOWN, MODE_X, MODE_FREETYPE }
+       enum { MODE_UNKNOWN, MODE_X }
                mode = MODE_UNKNOWN;
        char *p0;
 
@@ -1367,33 +1335,14 @@ draw_fragment(state, p, len, registry, charset16)
                 *      VFlib - optional
                 *      then X.
                 * Western font:
-                *      If possible, freetype. (in the future) - optional
                 *      X if truely scalable.
                 *      otherwise, X.
                 */
                mode = MODE_UNKNOWN;
                if (charset16) {
-#ifdef FREETYPE_CHARSET16
-                       if (!(mgp_flag & FL_NOFREETYPE)
-                        && (strncmp(registry, "jisx0208.1983-", 14) == 0 ||
-                            strncmp(registry, "jisx0213.2000-", 14) == 0)) {
-                               if (tfc_get(code, char_size[caching], 1, registry,
-                                               charset16)){
-                                       mode = MODE_FREETYPE;
-                               }
-                       }
-#endif
                        if (mode == MODE_UNKNOWN)
                                mode = MODE_X;
                } else {
-#ifdef FREETYPE
-                       if (!(mgp_flag & FL_NOFREETYPE)) {
-                               if (tfc_get(code, char_size[caching], 1, registry,
-                                               charset16)) {
-                                       mode = MODE_FREETYPE;
-                               }
-                       }
-#endif
                        if (mode == MODE_UNKNOWN) {
                                /*
                                 * if we can have X font that is exactly
@@ -1417,20 +1366,6 @@ draw_fragment(state, p, len, registry, charset16)
                memcpy(&backup0, state, sizeof(struct render_state));
 
                switch (mode) {
-#ifdef FREETYPE
-               case MODE_FREETYPE:
-                       /*
-                        * NOTE: width and height parameter (4th and 5th)
-                        * are meaningless for FreeType, since we use
-                        * metric info derived from TrueType font file.
-                        */
-                       char_len = draw_onechar_tf(state, code,
-                               state->linewidth, state->charoff,
-                               char_size[caching], registry,
-                               (len == (charset16 ? 2 : 1)) ? 1 : 0,
-                               charset16);
-                       break;
-#endif
                default:
                        fprintf(stderr, "invalid drawing mode %d for %04x "
                                "- fallback to X11\n", mode, code);
@@ -1563,11 +1498,6 @@ obj_free(state, obj)
        if (state->objlast == obj)
                state->objlast = obj->next;
        switch (obj->type) {
-#ifdef FREETYPE
-       case O_TFONT:
-               obj->data.tfc->ref--;
-               break;
-#endif /* FREETYPE */
        case O_IMAGE:
                freeImage(obj->data.image.image);
                break;
@@ -1592,31 +1522,6 @@ obj_free(state, obj)
        free(obj);
 }
 
-#ifdef FREETYPE
-static int
-obj_new_tfont(state, x, y, tfc)
-       struct render_state *state;
-       int x, y;
-       struct tfont *tfc;
-{
-       struct render_object *obj;
-
-       obj = obj_alloc(state);
-       if (obj == NULL)
-               return 0;
-       obj->x = x;
-       obj->y = y;
-       obj->fore = fore_color[caching];
-       obj->type = O_TFONT;
-       obj->data.tfc = tfc;
-       obj->ascent = obj->data.tfc->ascent - y;
-       obj->descent = obj->data.tfc->descent + y;
-       obj->vertloc = VL_BASE;
-       tfc->ref++;
-       return 1;
-}
-#endif /* FREETYPE */
-
 static int
 obj_new_xfont(state, x, y, size, code, registry)
        struct render_state *state;
@@ -1997,16 +1902,9 @@ obj_draw(state, target, xpos, ypos)
        drawarea[areaindex].height = obj->data.X->height+1;\
        areaindex ++;\
 }
-#if 0
-       char ch[2];
-#endif
        u_int isize;
        int i;
        int lineoff;   /* ypos correction for lines with superscripts */
-#ifdef RASTERLIB
-       XImage *bim, *xim;
-       u_long bcolor;
-#endif /* RASTERLIB */
 
        /*
         * very complicated...
@@ -2030,150 +1928,6 @@ obj_draw(state, target, xpos, ypos)
         */
        lineoff = state->maxascent - state->max_lineascent;
 
-#ifdef RASTERLIB
-       bcolor = back_color[caching];
-       for (obj = state->obj; obj; obj = obj->next) {
-#ifdef FREETYPE
-               if (obj->type == O_TFONT){
-                       xwidth = obj->data.tfc->width;
-                       xheight = obj->data.tfc->height;
-                       break;
-               }
-#endif /* FREETYPE */
-       }
-       if (obj != NULL) {      /* VFONT exist */
-               xim = XCreateImage(display, visual, depth, ZPixmap,
-                               0, NULL, width, height,
-                               (depth <= 8) ? 8 : (depth <= 16) ? 16 : 32, 0);
-               xim->data = malloc(xim->bytes_per_line * height);
-               if (COMPLEX_BGIMAGE) {
-                       u_int bw, bh, bx, by, ox, oy;
-                       u_long p;
-                       u_long r, g, b;
-                       byte *bp;
-                       int bpl;
-                       XColor col;
-
-                       bim = bgpixmap[bgindex].ximageinfo->ximage;
-                       bw = bim->width;
-                       bh = bim->height;
-                       ox = xpos;
-                       oy = state->ypos + state->yoff;
-                       bcolor = (u_long)-1; /* tell vfc_image() to calculate */
-                       by = oy % bh;
-                       if (bw == 1) {
-                               r = g = b = 0;
-                               bpl = bgpixmap[bgindex].image->pixlen;
-                               bp = bgpixmap[bgindex].image->data + by * bpl;
-                               for (y = 0;
-                                    y < height;
-                                    y++, by++, bp += bpl) {
-                                       if (by == bh)
-                                               by = 0;
-                                       p = memToVal(bp, bpl);
-                                       if (TRUEP(bgpixmap[bgindex].image)) {
-                                               r += TRUE_RED(p) << 8;
-                                               g += TRUE_GREEN(p) << 8;
-                                               b += TRUE_BLUE(p) << 8;
-                                       } else {
-                                               r += bgpixmap[bgindex].image->rgb.red[p];
-                                               g += bgpixmap[bgindex].image->rgb.green[p];
-                                               b += bgpixmap[bgindex].image->rgb.blue[p];
-                                       }
-                                       p = XGetPixel(bim, 0, by);
-                                       for (x = 0; x < width; x++)
-                                               XPutPixel(xim, x, y, p);
-                               }
-                               col.red = r / height;
-                               col.green = g / height;
-                               col.blue = b / height;
-                               col.flags = DoRed|DoGreen|DoBlue;
-                               /* XXX:actually we don't need to allocate. */
-                               if (XAllocColor(display, colormap, &col)) {
-                                       regist_alloc_colors(&font_clr,
-                                               &col.pixel, 1);
-                                       bcolor = col.pixel;
-                               }
-#if 0
-                       fprintf(stderr, "bim=%dx%d, r=%x, g=%x, b=%x, "
-                               "bcolor=%x\n",
-                               bgpixmap[bgindex].image->width, bgpixmap[bgindex].image->height,
-                               col.red, col.green, col.blue, bcolor);
-#endif
-                       } else {
-                               for (y = 0; y < height; y++, by++) {
-                                       if (by == bh)
-                                               by = 0;
-                                       for (x = 0, bx = ox % bw; x < width; x++, bx++) {
-                                               if (bx == bw)
-                                                       bx = 0;
-                                               p = XGetPixel(bim, bx, by);
-                                               XPutPixel(xim, x, y, p);
-                                       }
-                               }
-                       }
-               } else {
-                       memset(xim->data, 0, xim->bytes_per_line * height);
-                       XAddPixel(xim, bcolor);
-               }
-               for ( ; obj; obj = obj->next) {
-                       x = obj->x;
-                       switch (obj->vertloc) {
-                       case VL_BASE:
-                               y = state->maxascent;
-                               break;
-                       case VL_CENTER:
-                               y = (state->maxascent + state->maxdescent) / 2;
-                               y += (obj->ascent - obj->descent) / 2;
-                               break;
-                       case VL_TOP:
-                               y = obj->ascent;
-                               break;
-                       case VL_BOTTOM:
-                               y = state->maxascent + state->maxdescent;
-                               y -= obj->descent;
-                               break;
-                       }
-                       y += obj->y;
-#ifdef FREETYPE
-                       if (obj->type == O_TFONT) {
-                               (void)tfc_image(obj->data.tfc,
-                                       obj->fore, bcolor, xim, x, y);
-                               addarea(tfc);
-                       }
-#endif /* FREETYPE */
-               }
-#if 0
-               XPutImage(display, target, gcfore, xim, 0, 0,
-                       xpos, ypos, width, height);
-#else
-               for (i = 0; i < areaindex; i ++)
-                       XPutImage(display, target, gcfore, xim,
-                               drawarea[i].x, drawarea[i].y,
-                               drawarea[i].x + xpos,
-                               ypos + drawarea[i].y - lineoff,
-                               drawarea[i].width, drawarea[i].height);
-#endif
-               XDestroyImage(xim);
-               if (mgp_flag & FL_GLYPHEDGE) {
-                       XDrawLine(display, target, gcfore, state->xoff, ypos,
-                               state->xoff + state->width - 1, ypos);
-                       XDrawLine(display, target, gcfore,
-                               state->xoff, ypos + state->maxascent,
-                               state->xoff + state->width - 1,
-                               ypos + state->maxascent);
-                       XDrawLine(display, target, gcgreen,
-                               state->xoff,
-                               ypos + state->maxascent + state->maxdescent,
-                               state->xoff + state->width - 1,
-                               ypos + state->maxascent + state->maxdescent);
-                       XDrawLine(display, target, gcred,
-                               state->xoff, ypos + height,
-                               state->xoff + state->width - 1, ypos + height);
-               }
-
-       }
-#endif /* RASTERLIB */
        for (obj = state->obj; obj; obj = obj->next) {
 #if 0
                x = obj->x + offx;
@@ -4399,53 +4153,6 @@ image_setcolor(state)
        }
 }
 
-#ifdef FREETYPE
-static u_int
-draw_onechar_tf(state, code, x, y, size, registry, lastchar, charset16)
-       struct render_state *state;
-       u_int code;
-       int x, y;
-       u_int size;
-       char *registry;
-       int lastchar;
-       int     charset16;
-{
-       struct tfont *tfc;
-       int charlen;
-
-       tfc = tfc_get(code, size, 1, registry, charset16);
-       draw_line_itemsize(state, tfc->ascent, tfc->descent, 0);
-
-       /* usually */
-       charlen = tfc->charlen;
-
-       /*
-        * for the very first char on the line, the char may goes over the
-        * edge at the lefthand side.  offset the image to the right so that
-        * whole part of the bitmap appears on the screen.
-        * beware the sign-ness of tfc->xoff.
-        */
-       if (x + tfc->xoff < 0) {
-               x -= tfc->xoff;
-               charlen -= tfc->xoff;
-       }
-
-       /*
-        * For the last char, make sure that the whole part of the bitmap
-        * appears on the screen.
-        */
-       if (lastchar && tfc->charlen < tfc->xoff + tfc->width)
-               charlen += tfc->xoff + tfc->width - tfc->charlen;
-
-       /*
-        * (x, y): left side, baseline of the font (FreeType font origin)
-        */
-       obj_new_tfont(state, x, y, tfc);
-
-       return charlen;
-}
-#endif /* FREETYPE */
-
 static void
 x_registerseed(state, seed, registry)
        struct render_state *state;
index 6ded3d8..197238e 100644 (file)
--- a/globals.c
+++ b/globals.c
@@ -112,7 +112,6 @@ const struct ctl_words ctl_words[] = {
 /*CTL*/        { CTL_NODEF,            T_VOID, "nodefault", 9 },
 /*CTL*/        { CTL_XFONT,            T_STR,  "xfont", 5 },
 /*CTL*/        { CTL_XFONT2,           T_STR2, "xfont2", 6 },
-/*CTL*/        { CTL_TFONT,            T_STR,  "tfont", 5 },
 /*CTL*/        { CTL_IMAGE,            T_SP,   "image", 5 },
 /*CTL*/        { CTL_BIMAGE,           T_SP,   "bimage", 6 },
 /*CTL*/        { CTL_PAGE,             T_VOID, "page", 4 },    
@@ -142,15 +141,11 @@ const struct ctl_words ctl_words[] = {
 /*CTL*/        { CTL_ICON,             T_SP,   "icon", 4 },
 /*CTL*/        { CTL_XSYSTEM,          T_SP,   "xsystem", 7 },
 /*CTL*/        { CTL_TSYSTEM,          T_SP,   "tsystem", 7 },
-/*CTL*/        { CTL_TFDIR,            T_STR,  "tfdir", 5 },
 /*CTL*/        { CTL_DEFFONT,          T_STR,  "deffont", 7 },
 /*CTL*/        { CTL_FONT,             T_STR,  "font", 4 },
-/*CTL*/        { CTL_TFONT0,           T_STR,  "tfont0", 6 },
 /*CTL*/        { CTL_EMBED,            T_STR,  "embed", 5 },
 /*CTL*/        { CTL_ENDEMBED,         T_VOID, "endembed", 8 },
 /*CTL*/        { CTL_CHARSET,          T_STR,  "charset", 7 },
-/*CTL*/        { CTL_TMFONT,           T_STR,  "tmfont", 6 },
-/*CTL*/        { CTL_TMFONT0,          T_STR,  "tmfont0", 7 },
 /*CTL*/        { CTL_PCACHE,           T_SP,   "pcache", 6 },
 /*CTL*/        { CTL_VALIGN,           T_SP,   "valign", 6 },
 /*CTL*/        { CTL_AREA,             T_SP,   "area", 4 },
index 0146ba7..6d323ec 100644 (file)
--- a/grammar.y
+++ b/grammar.y
@@ -779,10 +779,9 @@ pcap_parse()
 %token KW_IMAGE KW_BIMAGE KW_PAGE KW_HGAP KW_VGAP KW_GAP KW_PAUSE
 %token KW_PREFIX KW_AGAIN KW_CCOLOR KW_BAR KW_INCLUDE KW_BGRAD KW_TEXT
 %token KW_LINESTART KW_LINEEND KW_MARK KW_SYSTEM KW_FILTER KW_ENDFILTER
-%token KW_QUALITY KW_ICON KW_LEFTFILL KW_XSYSTEM KW_TFONT KW_TFDIR
-%token KW_TSYSTEM
-%token KW_DEFFONT KW_FONT KW_TFONT0 KW_EMBED KW_ENDEMBED KW_NEWIMAGE KW_PSFONT
-%token KW_CHARSET KW_TMFONT KW_PCACHE KW_TMFONT0 KW_VALIGN KW_AREA 
+%token KW_QUALITY KW_ICON KW_LEFTFILL KW_XSYSTEM KW_TSYSTEM
+%token KW_DEFFONT KW_FONT KW_EMBED KW_ENDEMBED KW_NEWIMAGE KW_PSFONT
+%token KW_CHARSET KW_PCACHE KW_VALIGN KW_AREA 
 %token KW_OPAQUE
 %token KW_SUP KW_SUB KW_SETSUP
 %token KW_TITLE
@@ -919,52 +918,6 @@ cmd:         KW_NOOP       { $$ = gen_void(CTL_NOOP); }
        | KW_PSFONT STRorID     {
                                        $$ = gen_str2(CTL_PSFONT, $2, "iso8859-1");
                                }
-       | KW_TFONT STRorID      {
-#ifdef FREETYPE
-                                 $$ = gen_str2(CTL_TFONT, $2, "iso8859-1");
-#else
-                                 $$ = gen_str2(CTL_NOOP, $2, "iso8859-1");
-                                 yywarn("directive \"tfont\" not supported "
-                                       "in this configuration");
-#endif
-                               }
-       | KW_TFONT STRorID      STRorID {
-#ifdef FREETYPE
-                                 $$ = gen_str2(CTL_TFONT, $2, $3);
-#else
-                                 $$ = gen_str2(CTL_NOOP, $2, $3);
-                                 yywarn("directive \"tfont\" not supported "
-                                       "in this configuration");
-#endif
-                               }
-
-       | KW_TMFONT STRorID     {
-#ifdef FREETYPE
-                                 $$ = gen_str(CTL_TMFONT, $2);
-#else
-                                 $$ = gen_str(CTL_NOOP, $2);
-                                 yywarn("directive \"tmfont\" not supported "
-                                       "in this configuration");
-#endif
-                               }
-       | KW_TFONT0 STRorID     {
-#ifdef FREETYPE
-                                 $$ = gen_str(CTL_TFONT0, $2);
-#else
-                                 $$ = gen_str(CTL_NOOP, $2);
-                                 yywarn("directive \"tfont0\" not supported "
-                                       "in this configuration");
-#endif
-                               }
-       | KW_TMFONT0 STRorID    {
-#ifdef FREETYPE_CHARSET16
-                                 $$ = gen_str(CTL_TMFONT0, $2);
-#else
-                                 $$ = gen_str(CTL_NOOP, $2);
-                                 yywarn("directive \"tmfont0\" not supported "
-                                       "in this configuration");
-#endif
-                               }
        | KW_INCLUDE STRorID    { $$ = gen_str(CTL_INCLUDE, $2); }
        | KW_PREFIX ID  { char *p;
                          $$ = gen_str(CTL_PREFIX, $2);
@@ -1007,15 +960,6 @@ cmd:        KW_NOOP       { $$ = gen_void(CTL_NOOP); }
                        { $$ = gen_icon($2, $3, $4); }
        | KW_ICON ID STRorID NUM
                        { $$ = gen_icon($2, $3, $4); }
-       | KW_TFDIR STR  {
-#ifdef FREETYPE
-                         $$ = gen_str(CTL_TFDIR, $2);
-#else
-                         $$ = gen_str(CTL_NOOP, $2);
-                         yywarn("directive \"tfdir\" not supported "
-                               "in this configuration");
-#endif
-                       }
        | KW_FONT STR   { $$ = gen_str(CTL_FONT, $2); }
        | KW_TITLE STR  { $$ = gen_str(CTL_TITLE, $2); }
        | KW_TEXT STR   { $$ = gen_str(CTL_TEXT, $2); } /*easter egg*/
diff --git a/js.c b/js.c
index 217b4b2..633a4b6 100644 (file)
--- a/js.c
+++ b/js.c
@@ -49,7 +49,7 @@ main(argc, argv)
 
        progname = argv[0];
 
-       while ((opt = getopt(argc, argv, "mciVrf:x:y:p:e:X:Ptg:")) != -1) {
+       while ((opt = getopt(argc, argv, "ce:f:g:imPp:rVx:y:")) != -1) {
                switch (opt) {
 #if 0
                case 'm':         /* Added by Arnd Schmitter 23.07.2004 */
@@ -110,23 +110,6 @@ main(argc, argv)
                        parse_debug++;
                        break;
 
-               case 't':
-#ifdef FREETYPE
-                       usetfont = 1;
-#else
-                       fprintf(stderr, "you can't use this function with this version\n");
-                       exit(-1);
-#endif
-                       break;
-
-       case 'X':
-                       if (strcmp(optarg, "freetype") == 0)
-                               mgp_flag |= FL_NOFREETYPE;
-                       else {
-                               fprintf(stderr, "unknown rendering engine %s\n", optarg);
-                       }
-                       break;
-
                case 'g':
                        gaplevel = atoi(optarg);
                        break;
@@ -172,13 +155,6 @@ findfont(ctrl, lang, font)
        if (!font[0])
                return NULL;
 
-#ifdef FREETYPE
-       if (mgp_flag & FL_NOFREETYPE && ctrl == CTL_TFONT)
-               return NULL;
-       if (lang == ASCII && usetfont)
-               if ((p = findttfont(ctrl, lang, font))) goto found;
-#endif
-
        for (p = fontmap; 0 <= p->ctrl; p++) {
                if (p->ctrl != ctrl || p->lang != lang)
                        continue;
@@ -206,9 +182,6 @@ found:
                char fonttype;
 
                switch (ctrl) {
-#ifdef FREETYPE
-               case CTL_TFONT: fonttype = 't'; break;
-#endif
 #if 0
                case CTL_XFONT: fonttype = 'x'; break;
 #endif
@@ -301,86 +274,3 @@ cleanup(int sig)
 {
        /* dummy */
 }
-
-#ifdef FREETYPE
-/* 
-       get fontname from ttffile for ttfps 
- */
-static struct fontmap *
-findttfont(ctrl, lang, font)
-       int ctrl;
-       int lang;
-       char *font;
-{
-       TT_Error        error;
-       TT_Face         face; 
-       TT_Face_Properties      properties;
-       u_short         platform, encoding, language, id;
-       u_short         string_len;
-       struct          fontmap *pfont;
-       char            *string;
-       char            pathname[256];
-       int                     i, n, found = 0;
-       static TT_Engine        engine;
-       static int      initdone = 0, findex = 0; 
-       static struct fontmap   **loadedfont;
-
-       if (!font) return NULL;
-
-       /* already registed? */
-       for (i = 0; i < findex; i ++){
-               if (!strcmp(font, loadedfont[i]->font)) 
-                       return loadedfont[i];
-       }
-
-       if (!initdone){
-               /* Initialize engine */
-               if ((error = TT_Init_FreeType(&engine))){
-                       fprintf(stderr, "Error while initializing engine, code = %d.\n",
-                               (int)error);
-                               exit(-1);
-               }
-               initdone ++;
-       }
-       error = TT_Open_Face(engine, font, &face);
-       if (error) {
-               /* add freetypefontdir and try again */
-               snprintf(pathname, sizeof(pathname), "%s/%s", freetypefontdir, font);
-               error = TT_Open_Face(engine, pathname, &face);
-               if (error) return NULL;
-       }
-
-       TT_Get_Face_Properties(face, &properties);
-       n = properties.num_Names;
-       for (i = 0; i < n; i++) {
-               TT_Get_Name_ID(face, i, &platform, &encoding, &language, &id);
-               TT_Get_Name_String(face, i, &string, &string_len);
-               /* this check may be weak.. */
-               if (*string && id == 6){
-                       found = 1;
-                       break;
-               }
-       }
-       if (!found) return NULL;
-
-       /* create fontmap */
-       pfont = (struct fontmap *)malloc(sizeof(struct fontmap));
-       pfont->ctrl = ctrl;
-       pfont->lang = lang;
-       pfont->font = font;
-       pfont->psfont = strdup(string);
-       pfont->fontid = 0;
-       pfont->loaded = 0;
-
-       /* regist loaded font */
-       if (!findex)
-               loadedfont = (struct fontmap **)malloc(sizeof(struct fontmap *));
-       else
-               loadedfont = (struct fontmap **)realloc(loadedfont, 
-                                                               sizeof(struct fontmap *) * (findex +1));
-       loadedfont[findex++] = pfont;
-
-       return pfont;
-}
-#endif /* FREETYPE */
-
diff --git a/mgp.c b/mgp.c
index 3cc641a..5877f4f 100644 (file)
--- a/mgp.c
+++ b/mgp.c
@@ -70,13 +70,6 @@ u_long depth_mask;
 
 char *back_clname = DEFAULT_BACK;
 
-#ifdef FREETYPE
-char *freetypefontdir = FREETYPEFONTDIR;
-char *freetypefont0 = NULL;    /* font name to be used as a last resort */
-char *freetypemfont0 = NULL;   /* font name to be used as a last resort */
-
-int unicode_map[65536];
-#endif
 int latin_unicode_map[3][256]; /* currently we have iso8859-2-4 map */
 
 static char *tsfile = NULL;
@@ -348,9 +341,7 @@ main(argc, argv)
                        break;
 
                case 'x':
-                       if (strcmp(optarg, "freetype") == 0)
-                               mgp_flag |= FL_NOFREETYPE;
-                       else if (strcmp(optarg, "xft") == 0)
+                       if (strcmp(optarg, "xft") == 0)
                                mgp_flag |= FL_NOXFT;
                        else {
                                fprintf(stderr, "unknown rendering engine %s\n",
diff --git a/mgp.h b/mgp.h
index d1919ad..e49853c 100644 (file)
--- a/mgp.h
+++ b/mgp.h
 #define USE_XDRAWSTRING_ONLY_SMALL
 #endif
 
-#ifdef FREETYPE
-#include "freetype.h"
-
-#ifndef FREETYPEFONTDIR
-#define FREETYPEFONTDIR        "/usr/local/share/fonts/ttf"
-#endif
-#endif /*FREETYPE*/
-
 #ifdef HAVE_TERMIOS_H
 #define        TTY_KEYINPUT
 #else
 #define FL_PRIVATE     0x0100
 #define FL_NODECORATION        0x0200
 #define FL_NOAUTORELOAD        0x0400
-#define FL_NOFREETYPE  0x1000
 #define        FL_NOSTDIN      0x2000
 #define        FL_GLYPHEDGE    0x4000
 #define        FL_FRDCACHE             0x8000
@@ -452,9 +443,6 @@ struct render_object {
 #define VL_BOTTOM      3
 #define VL_ICENTER     4
        enum {
-#ifdef FREETYPE
-               O_TFONT,
-#endif /* FREETYPE */
                O_XFONT,
                O_IMAGE,
 #ifdef USE_XFT2
@@ -464,9 +452,6 @@ struct render_object {
        } type;
        u_long fore;
        union {
-#ifdef FREETYPE
-               struct tfont *tfc;
-#endif /* FREETYPE */
                struct {
                        char *xfont;
                        u_int csize;
@@ -498,29 +483,6 @@ struct render_object {
        } data;
 };
 
-#ifdef FREETYPE
-struct tfont {
-       struct tfont *next;
-       struct tfont *prev;
-       struct tfont *lrunext;
-       struct tfont *lruprev;
-       u_int size;             /* char_size (as specified by %size) */
-       u_int width;            /* bitmap width */
-       u_int bwidth;           /* bitmap width, byte boundary */
-       u_int height;           /* bitmap height */
-       u_int code;
-       u_int charlen;          /* origin x axis advance width */
-       u_int xmax;                     /* right edge of bbox */
-       int ascent;             /* (top of bitmap) - (origin y axis) */
-       int descent;            /* (origin y axis) - (bottom of bitmap) */
-       int xoff;               /* (left of bitmap) - (origin x axis) */
-       char *fontname;
-       u_char *dbitmap;
-       u_int ref;
-       int regid;              /* registry ID */
-};
-#endif /* FREETYPE */
-
 struct alloc_color {
        int     num;
        long    *colors;
@@ -632,12 +594,6 @@ extern u_int t_fin;
 extern u_int tbar_mode;
 extern u_long pl_fh, pl_fw;
 extern u_long depth_mask;
-#ifdef FREETYPE
-extern char *freetypefontdir;
-extern char *freetypefont0;    /* font name to be used as a last resort */
-extern char *freetypemfont0;   /* font name to be used as a last resort */
-extern int unicode_map[65536];
-#endif
 extern int latin_unicode_map[3][256];
 #ifdef TTY_KEYINPUT
 extern volatile int ttykey_enable;
@@ -725,12 +681,6 @@ extern Image *make_XImage __P((byte *, unsigned int, unsigned int));
 extern int ps_boundingbox __P((char *, int *, int *, int *, int *));
 extern void image_zoomratio __P((struct render_state *, float *, float *, int, int, int));
 
-/* tfont.c */
-extern int tfc_setsize __P((u_int));
-extern struct tfont *tfc_get __P((u_int, u_int, int, char *, int));
-extern void tfc_setfont __P((char *, int, char *));
-extern XImage *tfc_image __P((struct tfont *, long, long, XImage *, int, int));
-
 /* unimap.c */
 extern void latin_unicode_map_init();
 
@@ -750,10 +700,6 @@ extern char *strsep __P((char **, const char *));
 extern void usleep __P((u_int));
 #endif
 
-#ifdef FREETYPE
-#define RASTERLIB
-#endif
-
 #if 1
 #define DITHERED_BGRAD
 #define COLOR_BUGFIX
diff --git a/mgp.man b/mgp.man
index 78211a8..09225e1 100644 (file)
--- a/mgp.man
+++ b/mgp.man
@@ -144,12 +144,6 @@ Display the MagicPoint version and exit without performing a presentation.
 specifies the working directory used for store embedded images if any.
 To generate an embedded MGP file, use 
 .Xr mgpembed 1 .
-.It Fl x Ar engine
-Do not use rendering engine, specified by
-.Ar engine .
-.Ar engine
-can be
-.Li FreeType .
 .It Fl B
 Omit background image.
 .It Fl C
index dcd8dde..01250a7 100644 (file)
@@ -34,7 +34,7 @@
 .Nd generate PostScript file from MagicPoint file
 .Sh SYNOPSIS
 .Nm mgp2ps
-.Op Fl cirtV
+.Op Fl cirV
 .Op Fl f Ar psfile
 .Op Fl p Ar papersize
 .Op Fl x Ar xmargin
@@ -102,18 +102,11 @@ Default size is
 and
 .Ar ymargin
 specifies length of the margin area around the edge of the paper.
-.It Fl t
-Use truetypefont instead of psfont (ASCII font only).
 .It Fl e
 Specify encodings. At this moment, "iso-8859-1", "latin1", "iso-8859-2"
 "and latin-2" are supported as encodings.
 .It Fl m
 emulate "%pause" directive.
-.It Fl X Ar engine
-Do not use rendering engine, specified by 
-.Ar engine .
-.Ar engine 
-can be only FreeType so far.
 .It Fl g Ar level
 specify the distance level between lines. If 
 .Ar level
diff --git a/parse.c b/parse.c
index fe72008..b1002ec 100644 (file)
--- a/parse.c
+++ b/parse.c
@@ -337,17 +337,6 @@ read_rc(fp, filename)
                        }
                        break;
 #endif
-#ifdef FREETYPE
-               case CTL_TFDIR:
-                       freetypefontdir = root->ctc_value;
-                       break;
-               case CTL_TFONT0:
-                       freetypefont0 = root->ctc_value;
-                       break;
-               case CTL_TMFONT0:
-                       freetypemfont0 = root->ctc_value;
-                       break;
-#endif
                case CTL_NOOP:
                        /* done in grammar.y */
                        break;
@@ -956,21 +945,10 @@ thirdpass()
        tmpstr[2] = ctlalloc1(CTL_XFONT2);
        tmpstr[2]->ctc2_value1 = strdup(DEFAULT_X_FONT);
        tmpstr[2]->ctc2_value2 = strdup("iso8859-1");
-#ifdef FREETYPE
-       tmpstr[3] = ctlalloc1(CTL_TFONT);
-       tmpstr[3]->ctc2_value1 = strdup(freetypefont0 ? freetypefont0 :"arial.ttf");
-       tmpstr[3]->ctc2_value2 = strdup("iso8859-1");
-#else
        tmpstr[3] = ctlalloc1(CTL_NOOP);        /* CTL_TFONT */
        tmpstr[3]->ctc_value = strdup("");
-#endif
-#ifdef FREETYPE_CHARSET16
-       tmpstr[4] = ctlalloc1(CTL_TMFONT);      /* CTL_TMFONT */
-       tmpstr[4]->ctc_value = strdup("wadalab-gothic.ttf");
-#else
        tmpstr[4] = ctlalloc1(CTL_NOOP);        /* CTL_TMFONT */
        tmpstr[4]->ctc_value = strdup("");
-#endif
        tmpstr[5] = ctlalloc1(CTL_XFONT2);
        tmpstr[5]->ctc2_value1 = strdup("k14");
        tmpstr[5]->ctc2_value2 = strdup("jisx0208.1983-*");
@@ -1074,10 +1052,6 @@ thirdpass()
                             cp = cp->ct_next) {
                                switch (cp->ct_op) {
                                case CTL_PREFIX: tmpstr[0] = cp; break;
-                               case CTL_TFONT: tmpstr[3] = cp; break;
-#ifdef FREETYPE_CHARSET16
-                               case CTL_TMFONT: tmpstr[4] = cp; break;
-#endif
                                case CTL_XFONT2:
                                        if (strcmp(cp->ctc2_value2,
                                                        "iso8859-1") == 0) {
diff --git a/print.c b/print.c
index eef8342..2a271a7 100644 (file)
--- a/print.c
+++ b/print.c
@@ -67,10 +67,6 @@ static u_int valign = VL_BOTTOM;
 static int lg; /* Counts the Recursionlevel in print_page() for new Pause-Mode */
 static int PauseMode=0; /* Should Pause-Statements splitet into multiple Pages ? */
 
-#ifdef FREETYPE
-static u_int usetfont = 0;
-#endif
-
 static struct imagepool {
        struct ctrl *image;
        int xoffset;
@@ -97,12 +93,6 @@ static int ntextpool = 0;
 u_long fore;
 u_long back;
 
-#ifdef FREETYPE
-char *freetypefontdir = NULL;  /*dummy*/
-char *freetypefont0 = NULL;    /*dummy*/
-char *freetypemfont0 = NULL;   /*dummy*/
-#endif
-
 /* lang code */
 #define ASCII  0
 #define KANJI  1
@@ -117,30 +107,6 @@ static struct fontmap {
        int fontid;     /* flag bit for generating font map */
        int loaded;
 } fontmap[] = {
-#ifdef FREETYPE
-       { CTL_TFONT, ASCII, "schlbk.ttf",       "NewCenturySchlbk-Roman" },
-       { CTL_TFONT, ASCII, "schlbki.ttf",      "NewCenturySchlbk-Italic" },
-       { CTL_TFONT, ASCII, "schlbkbd.ttf",     "NewCenturySchlbk-Bold" },
-       { CTL_TFONT, ASCII, "schlbkbi.ttf",     "NewCenturySchlbk-BoldItalic" },
-       { CTL_TFONT, ASCII, "times.ttf",        "Times-Roman" },
-       { CTL_TFONT, ASCII, "timesi.ttf",       "Times-Italic" },
-       { CTL_TFONT, ASCII, "timesbd.ttf",      "Times-Bold" },
-       { CTL_TFONT, ASCII, "timesbi.ttf",      "Times-BoldItalic" },
-       { CTL_TFONT, ASCII, "arial.ttf",        "Helvetica" },
-       { CTL_TFONT, ASCII, "ariali.ttf",       "Helvetica-Oblique" },
-       { CTL_TFONT, ASCII, "arialbd.ttf",      "Helvetica-Bold" },
-       { CTL_TFONT, ASCII, "arialbi.ttf",      "Helvetica-BoldOblique" },
-       { CTL_TFONT, ASCII, "cour.ttf",         "Courier" },
-       { CTL_TFONT, ASCII, "couri.ttf",        "Courier-Oblique" },
-       { CTL_TFONT, ASCII, "courbd.ttf",       "Courier-Bold" },
-       { CTL_TFONT, ASCII, "courbi.ttf",       "Courier-BoldOblique" },
-       { CTL_TFONT, ASCII, "symbol.ttf",       "Symbol" },
-       { CTL_TFONT, ASCII, "*",                "Helvetica" },  /*last resort*/
-#ifdef FREETYPE_CHARSET16
-       { CTL_TMFONT, KANJI, "wadalab-gothic.ttf", "GothicBBB-Medium-H" },
-       { CTL_TMFONT, KANJI, "*",               "Ryumin-Light-H" },
-#endif
-#endif /*FREETYPE*/
        { CTL_XFONT2, ASCII, "century schoolbook l-medium-r", "NewCenturySchlbk-Roman" },
        { CTL_XFONT2, ASCII, "century schoolbook l-medium-i", "NewCenturySchlbk-Italic" },
        { CTL_XFONT2, ASCII, "century schoolbook l-bold-r", "NewCenturySchlbk-Bold" },
@@ -426,23 +392,6 @@ scan_font(page)
                                if(font)
                                        curfont[ASCII] = font; 
                                break;
-#ifdef FREETYPE
-                       case CTL_TFONT:
-                               font = findfont(cp->ct_op, ASCII,
-                                       cp->ctc_value);
-                               if (font)
-                                       curfont[ASCII] = font;
-                               break;
-
-#ifdef FREETYPE_CHARSET16
-                       case CTL_TMFONT:
-                               font = findfont(cp->ct_op, KANJI,
-                                       cp->ctc_value);
-                               if (font)
-                                       curfont[KANJI] = font;
-                               break;
-#endif /*FREETYPE_CHARSET16*/
-#endif
 
                        case CTL_XFONT2:
                                if (strcmp(cp->ctc2_value2, "iso8859-1") == 0)
@@ -793,22 +742,6 @@ process_direc_print(cp)
                        curfont[ASCII] = font;
                break;  
 
-#ifdef FREETYPE
-       case CTL_TFONT:
-               font = findfont(cp->ct_op, ASCII, cp->ctc_value);
-               if (font)
-                       curfont[ASCII] = font;
-               break;
-
-#ifdef FREETYPE_CHARSET16
-       case CTL_TMFONT:
-               font = findfont(cp->ct_op, KANJI, cp->ctc_value);
-               if (font)
-                       curfont[KANJI] = font;
-               break;
-#endif /*FREETYPE_CHARSET16*/
-#endif
-       
        case CTL_XFONT2:
                if (strcmp(cp->ctc2_value2, "iso8859-1") == 0)
                        code = ASCII;
@@ -2397,20 +2330,12 @@ main(argc, argv)
                        break;
 
                case 't':
-#ifdef FREETYPE
-                       usetfont = 1;
-#else
                        fprintf(stderr, "you can't use this function with this version\n");
                        exit(-1);
-#endif
                        break;
 
-       case 'X':
-                       if (strcmp(optarg, "freetype") == 0)
-                               mgp_flag |= FL_NOFREETYPE;
-                       else {
-                               fprintf(stderr, "unknown rendering engine %s\n", optarg);
-                       }
+               case 'X':
+                       fprintf(stderr, "unknown rendering engine %s\n", optarg);
                        break;
 
                case 'g':
@@ -2469,13 +2394,6 @@ findfont(ctrl, lang, font)
        if (!font[0])
                return NULL;
 
-#ifdef FREETYPE
-       if (mgp_flag & FL_NOFREETYPE && ctrl == CTL_TFONT)
-               return NULL;
-       if (lang == ASCII && usetfont)
-               if ((p = findttfont(ctrl, lang, font))) goto found;
-#endif
-
        for (p = fontmap; 0 <= p->ctrl; p++) {
                if (p->ctrl != ctrl || p->lang != lang)
                        continue;
@@ -2503,9 +2421,6 @@ found:
                char fonttype;
 
                switch (ctrl) {
-#ifdef FREETYPE
-               case CTL_TFONT: fonttype = 't'; break;
-#endif
 #if 0
                case CTL_XFONT: fonttype = 'x'; break;
 #endif
@@ -2598,86 +2513,3 @@ cleanup(int sig)
 {
        /* dummy */
 }
-
-#ifdef FREETYPE
-/* 
-       get fontname from ttffile for ttfps 
- */
-static struct fontmap *
-findttfont(ctrl, lang, font)
-       int ctrl;
-       int lang;
-       char *font;
-{
-       TT_Error        error;
-       TT_Face         face; 
-       TT_Face_Properties      properties;
-       u_short         platform, encoding, language, id;
-       u_short         string_len;
-       struct          fontmap *pfont;
-       char            *string;
-       char            pathname[256];
-       int                     i, n, found = 0;
-       static TT_Engine        engine;
-       static int      initdone = 0, findex = 0; 
-       static struct fontmap   **loadedfont;
-
-       if (!font) return NULL;
-
-       /* already registed? */
-       for (i = 0; i < findex; i ++){
-               if (!strcmp(font, loadedfont[i]->font)) 
-                       return loadedfont[i];
-       }
-
-       if (!initdone){
-               /* Initialize engine */
-               if ((error = TT_Init_FreeType(&engine))){
-                       fprintf(stderr, "Error while initializing engine, code = %d.\n",
-                               (int)error);
-                               exit(-1);
-               }
-               initdone ++;
-       }
-       error = TT_Open_Face(engine, font, &face);
-       if (error) {
-               /* add freetypefontdir and try again */
-               snprintf(pathname, sizeof(pathname), "%s/%s", freetypefontdir, font);
-               error = TT_Open_Face(engine, pathname, &face);
-               if (error) return NULL;
-       }
-
-       TT_Get_Face_Properties(face, &properties);
-       n = properties.num_Names;
-       for (i = 0; i < n; i++) {
-               TT_Get_Name_ID(face, i, &platform, &encoding, &language, &id);
-               TT_Get_Name_String(face, i, &string, &string_len);
-               /* this check may be weak.. */
-               if (*string && id == 6){
-                       found = 1;
-                       break;
-               }
-       }
-       if (!found) return NULL;
-
-       /* create fontmap */
-       pfont = (struct fontmap *)malloc(sizeof(struct fontmap));
-       pfont->ctrl = ctrl;
-       pfont->lang = lang;
-       pfont->font = font;
-       pfont->psfont = strdup(string);
-       pfont->fontid = 0;
-       pfont->loaded = 0;
-
-       /* regist loaded font */
-       if (!findex)
-               loadedfont = (struct fontmap **)malloc(sizeof(struct fontmap *));
-       else
-               loadedfont = (struct fontmap **)realloc(loadedfont, 
-                                                               sizeof(struct fontmap *) * (findex +1));
-       loadedfont[findex++] = pfont;
-
-       return pfont;
-}
-#endif /* FREETYPE */
-
index 8fb3dad..feb85ca 100644 (file)
@@ -15,10 +15,3 @@ MagicPoint.
        embed.mgp               A sample of mgpembed
 
 Visualize these samples beautifully, TrueType fonts are necessary.
-
-       (1) Create "~/.etc/mgprc" whose contents are:
-               tfdir "/path/to/truetype/fonts"
-
-       (2) Copy "standard.ttf", "thick.ttf", "typewriter.ttf", 
-           "kochi-mincho.ttf" and "goth.ttf" to "tfdir".
-               ftp://ftp.mew.org/pub/mgp/ttf.tar.gz
index 837b43d..17b10db 100644 (file)
        embed-jp.mgp            mgpembed \e$B$N%5%s%W%k\e(B
 
 \e$Be:No$KI=<($9$k$K$O\e(B TrueType \e$B%U%)%s%H$,I,MW$G$9!#\e(B
-
-       (1) "~/.etc/mgprc" \e$B$r:n@.$7!"$=$NCf$K\e(B "tfdir" \e$B$r@_Dj$7$F2<$5$$!#\e(B
-               tfdir "/path/to/truetype/fonts"
-
-       (2) "tfdir" \e$B$K\e(B "standard.ttf"\e$B!"\e(B"thick.ttf"\e$B!"\e(B"typewriter.ttf"\e$B!"\e(B
-           "kochi-mincho.ttf"\e$B!"\e(B"goth.ttf" \e$B$r%3%T!<$7$F2<$5$$!#\e(B
-               ftp://ftp.mew.org/pub/mgp/ttf.tar.gz
index acb3a0d..bbd9998 100644 (file)
@@ -1,11 +1,3 @@
 #
 # this is a sample for ~/.etc/mgprc.
 #
-
-# setting up font directories.
-tfdir "/usr/local/share/fonts/ttf"
-
-# last resort font for TrueType renderer (FreeType).
-# this must be specified in full pathname so that it can be used even if
-# "tfdir" is changed in presentation file.
-tfont0 "/usr/local/share/fonts/ttf/arial.ttf"
index 4aa7c70..0a62ffb 100644 (file)
--- a/scanner.l
+++ b/scanner.l
@@ -125,8 +125,6 @@ XSTR        [\240-\377]*
 (CONT|cont)            return KW_CONT;
 (NODEFAULT|nodefault)  return KW_NODEF;
 (XFONT|xfont)          return KW_XFONT;
-(TFONT|tfont)          return KW_TFONT;
-(TMFONT|tmfont)                return KW_TMFONT;
 (IMAGE|image)          return KW_IMAGE;
 (NEWIMAGE|newimage)    return KW_NEWIMAGE;
 (BIMAGE|bimage)                return KW_BIMAGE;
@@ -152,10 +150,7 @@ XSTR       [\240-\377]*
 (ENDFILTER|endfilter)  return KW_ENDFILTER;
 (BQUALITY|bquality)    return KW_QUALITY;
 (ICON|icon)            return KW_ICON;
-(TFDIR|tfdir)          return KW_TFDIR;
 (DEFFONT|deffont)      return KW_DEFFONT;
-(TFONT0|tfont0)                return KW_TFONT0;
-(TMFONT0|tmfont0)      return KW_TMFONT0;
 (FONT|font)            return KW_FONT;
 (EMBED|embed)          return KW_EMBED;
 (ENDEMBED|endembed)    return KW_ENDEMBED;
diff --git a/tfont.c b/tfont.c
deleted file mode 100644 (file)
index cbe1ca2..0000000
--- a/tfont.c
+++ /dev/null
@@ -1,800 +0,0 @@
-/*
- * Copyright (C) 1997 and 1998 WIDE Project.  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. Neither the name of the project 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 PROJECT 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 PROJECT 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.
- */
-/*
- * $Id: tfont.c,v 1.45 2007/11/24 17:29:40 nishida Exp $
- */
-
-#include "mgp.h"
-
-#ifdef FREETYPE
-
-int tfcachesize = 3000; /*XXX*/
-#define        TFFONT_NUM      128
-#define        TFHASH_SIZE     255
-#define TFCACHE_HASH(c, siz)   ((c ^ siz) % TFHASH_SIZE)
-
-static TT_Raster_Map           bitmap;
-static TT_Face_Properties      properties[TFFONT_NUM];
-static TT_Face                 face[TFFONT_NUM];
-static TT_Glyph                        glyph[TFFONT_NUM];
-static TT_Instance             instance[TFFONT_NUM];
-static TT_Glyph_Metrics                metrics;
-static TT_Error                        error;
-static TT_Engine               engine;
-static XImage *xim;
-
-static char *tf_curname[4]; /* contains iso8859-[2-4] fonts */
-static char *tf_mcurname = NULL;
-static int tfcinitdone;
-static int tfcachecnt;
-static struct tfont tfclru;
-static struct tfont tfcache[TFHASH_SIZE];
-static int tffontcnt = 0;
-static int tfcachehit = 0;
-static int tfcachemiss = 0;
-static int tfcuridx = -1;
-static char tfloadedfont[1024][TFFONT_NUM];
-static int tfloadedregistry[TFFONT_NUM];
-
-#define TFC_INSHASH(tfc) { \
-       struct tfont *h, *n;                                            \
-       h = &tfcache[TFCACHE_HASH(tfc->code, tfc->size)]; \
-       n = h->next; tfc->next = n; n->prev = tfc;                      \
-       h->next = tfc; tfc->prev = h;                                   \
-}
-#define TFC_DELHASH(tfc) { \
-       struct tfont *n, *p;                                            \
-       n = tfc->next; p = tfc->prev;                                   \
-       n->prev = p; p->next = n;                                       \
-}
-#define TFC_INSLRU(tfc) { \
-       struct tfont *p;                                                \
-       p = tfclru.lruprev; tfc->lruprev = p; p->lrunext = tfc;         \
-       tfclru.lruprev = tfc; tfc->lrunext = &tfclru;                   \
-}
-#define TFC_DELLRU(tfc) { \
-       struct tfont *n, *p;                                            \
-       n = tfc->lrunext; p = tfc->lruprev;                             \
-       n->lruprev = p; p->lrunext = n;                                 \
-}
-
-static void tfc_init __P((void));
-static void tfc_free __P((struct tfont *));
-static struct tfont *tfc_lookup __P((u_int, u_int, char*, int));
-static struct tfont *tfc_alloc __P((u_int, u_int, char *, char *));
-static short CharToUnicode __P((u_int, char *));
-static short jistosjis __P((u_int));
-static TT_Error LoadTrueTypeChar __P((int, int));
-
-#define TTFLOOR(x)     ((x) & -64)
-#define TTCEIL(x)      (((x) + 63) & -64)
-
-static void
-tfc_init()
-{
-       u_int   i;
-       struct tfont *tfc;
-
-       /* Initialize engine */
-       if ((error = TT_Init_FreeType(&engine))) {
-               fprintf(stderr, "Error while initializing engine, code = %d.\n",
-                       (int)error);
-               cleanup(-1);
-       }
-
-       tfc = tfcache;
-       for (tfc = tfcache, i = 0; i < TFHASH_SIZE; tfc++, i++)
-               tfc->next = tfc->prev = tfc;
-       tfclru.lrunext = tfclru.lruprev = &tfclru;
-       tfcinitdone ++;
-
-       latin_unicode_map_init();
-#ifdef FREETYPE_CHARSET16
-       unicode_map_init();
-#endif
-}
-
-static void
-tfc_free(tfc)
-       struct tfont *tfc;
-{
-       TFC_DELHASH(tfc);
-       TFC_DELLRU(tfc);
-       free(tfc->fontname);
-       free(tfc->dbitmap);
-       free(tfc);
-       tfcachecnt--;
-}
-
-int
-tfc_setsize(char_size)
-       u_int char_size;
-{
-       if (!tfcinitdone)
-               return -1;
-
-       if (tfcuridx < 0 || tffontcnt <= tfcuridx) {
-               if (verbose)
-                       fprintf(stderr, "tfc_setsize: font index out of bound\n");
-               return -1;
-       }
-
-       error = TT_Set_Instance_CharSize(instance[tfcuridx],
-                       (char_size * 0.75) * 64);
-       if (error) {
-               fprintf(stderr,
-                       "Could not set device resolutions for \"%s\".\n",
-                       tfloadedfont[tfcuridx]);
-               return -1;
-       }
-       return 0;
-}
-
-struct tfont *
-tfc_get(code, size, force, registry, charset16)
-       u_int code, size;
-       int force;
-       char *registry;
-       int charset16;
-{
-       struct tfont *tfc, *ntfc;
-       int     regid;
-
-       if (!tfcinitdone)
-               tfc_init();
-
-       if (charset16)
-               tfc = tfc_lookup(code, size, tf_mcurname, 0);
-       else {
-               if (code >= 0xa0 && ((!registry || !registry[0]) && mgp_charset)){
-                       regid = get_regid(mgp_charset);
-               } else 
-                       regid = get_regid(registry);
-               tfc = tfc_lookup(code, size, tf_curname[regid], regid);
-       }
-
-       if (tfc == NULL) {
-               /* XXX */
-               if (tfcachecnt >= tfcachesize) {
-                       if (!force)
-                               return NULL;
-                       tfc = tfclru.lrunext;
-                       while (tfcachecnt >= tfcachesize) {
-                               if (tfc == &tfclru)
-                                       break;
-                               ntfc = tfc->lrunext;
-                               if (tfc->ref == 0)
-                                       tfc_free(tfc);
-                               tfc = ntfc;
-                       }
-               }
-
-               if (charset16)
-                       tfc = tfc_alloc(code, size, tf_mcurname, registry);
-               else
-                       tfc = tfc_alloc(code, size, tf_curname[regid], registry);
-       }
-       return tfc;
-}
-
-void
-tfc_setfont(name, charset16, registry)
-       char *name;
-       int charset16;  /*2-octet charset?*/
-       char *registry;
-{
-       char *fontname = NULL;
-       u_int i, regid = 0;
-       int res = 96; /* XXX */
-       char pathname[MAXPATHLEN];
-       int trial;
-       TT_Face tface;
-
-       if (!tfcinitdone)
-               tfc_init();
-
-       if (TFFONT_NUM <= tffontcnt) {
-               fprintf(stderr, "internal error: "
-                       "too many fonts opened (increase TFFONT_NUM)\n");
-               cleanup(-1);
-       }
-
-       if (!name || !name[0]) {
-               if (freetypefont0 && freetypefont0[0]) {
-                       if (verbose) {
-                               fprintf(stderr, "tfc_setfont: "
-                                       "font name not given, "
-                                       "using last resort (%s)\n",
-                                       freetypefont0);
-                       }
-                       name = freetypefont0;
-               } else {
-                       if (verbose) {
-                               fprintf(stderr, "tfc_setfont: "
-                                       "font name not given, fail\n");
-                       }
-                       goto fail;
-               }
-       }
-
-       /* check font cache first */
-       for (trial = 0; trial < 2; trial++) {
-               switch (trial) {
-               case 0:
-                       fontname = name;
-                       break;
-               case 1:
-                       snprintf(pathname, sizeof(pathname),
-                               "%s/%s", freetypefontdir, name);
-                       fontname = pathname;
-                       break;
-               }
-
-               for (i = 0; i < tffontcnt; i ++) {
-                       if (!strcmp(fontname, tfloadedfont[i])) {
-                               /* already loaded */
-#if 0
-                               if (verbose) {
-                                       fprintf(stderr,
-                                               "font cache hit for \"%s\"\n",
-                                               fontname);
-                               }
-#endif
-                               tfcuridx = i;
-                               if (charset16)
-                                       tf_mcurname = tfloadedfont[i];
-                               else {
-                                       regid = get_regid(registry);
-                                       tf_curname[regid] = tfloadedfont[i];
-                               }
-#if 0
-                               tfc_setsize(char_size);
-#endif
-                               return;
-                       }
-               }
-       }
-
-       /* try to load font */
-       for (trial = 0; trial < 3; trial++) {
-               switch (trial) {
-               case 0:
-                       fontname = name;
-                       break;
-               case 1:
-                       snprintf(pathname, sizeof(pathname),
-                               "%s/%s", freetypefontdir, name);
-                       fontname = pathname;
-                       break;
-               case 2:
-                       if (!freetypefont0 || !freetypefont0[0])
-                               continue;
-                       fontname = freetypefont0;
-                       /* already loaded? */
-                       for (i = 0; i < tffontcnt; i ++) {
-                               if (!strcmp(fontname, tfloadedfont[i])){
-                                       tfcuridx = i;
-                                       if (verbose) 
-                                               fprintf(stderr, "font \"%s\" already loaded: %d\n", 
-                                                       fontname, tffontcnt);
-                                       goto cached;
-                               }
-                       }
-                       break;
-               }
-
-               /* Load face */
-               if (verbose) fprintf(stderr, "trying to open font \"%s\"\n", fontname);
-               error = TT_Open_Face(engine, fontname, &tface);
-               if (!error)
-                       break;
-       }
-       if (trial == 2) {
-               if (verbose) {
-                       fprintf(stderr, "font \"%s\" not found, "
-                               "last resort font \"%s\" was used\n",
-                               name, freetypefont0);
-               }
-       } else if (trial == 3) {
-               if (verbose) {
-                       fprintf(stderr, "could not load font \"%s\", "
-                               "using other rendering engine\n", name);
-               }
-               goto fail;
-       }
-       if (verbose) {
-               fprintf(stderr, "font \"%s\" opened successfully\n",
-                       fontname);
-       }
-
-       /* get registry id */
-       if ((regid = get_regid(registry)) < 0){
-               fprintf(stderr, "font \"%s\" has irregal registry\n", fontname);
-                       goto fail2;     
-       }
-
-       tfloadedregistry[tffontcnt] = regid;
-       strcpy(tfloadedfont[tffontcnt], fontname);
-       tfcuridx = tffontcnt;
-       face[tfcuridx] = tface;
-       tffontcnt++;
-
-       /* get face properties and allocate preload arrays */
-       error = TT_Get_Face_Properties(face[tfcuridx], &properties[tfcuridx]);
-       if (error) {
-               fprintf(stderr, "Could not create face property for "
-                       "\"%s\" (err 0x%04x).\n", fontname, (int)error);
-               goto fail2;
-       }
-
-       /* create glyph */
-       error = TT_New_Glyph(face[tfcuridx], &glyph[tfcuridx]);
-       if (error) {
-               fprintf(stderr, "Could not create glyph container for "
-                       "\"%s\" (err 0x%04x).\n", fontname, (int)error);
-               goto fail2;
-       }
-
-       /* create instance */
-       error = TT_New_Instance(face[tfcuridx], &instance[tfcuridx]);
-       if (error) {
-               fprintf(stderr, "Could not create instance for "
-                       "\"%s\" (err 0x%04x).\n", fontname, (int)error);
-               goto fail2;
-       }
-
-       error = TT_Set_Instance_Resolutions(instance[tfcuridx], res, res);
-       if (error) {
-               fprintf(stderr, "Could not set device resolutions for "
-                       "\"%s\" (err 0x%04x).\n", fontname, (int)error);
-               goto fail2;
-       }
-
-cached:
-       if (charset16)
-               tf_mcurname = tfloadedfont[tfcuridx];
-       else {
-               if (registry)
-                       tf_curname[regid] = tfloadedfont[tfcuridx];
-               else {
-                       /* this should be default font */
-                       for (i = 0; i < 4; i ++)
-                               tf_curname[i] = tfloadedfont[tfcuridx];
-               }
-       }
-       if (tfc_setsize(char_size[caching]) < 0)
-               goto fail2;
-
-       /* success */
-       return;
-
-fail2:
-       TT_Close_Face(tface);
-       tffontcnt--;
-fail:
-       if (!charset16){
-               tf_curname[regid] = "";
-               tfcuridx = -1;
-       } else 
-               tf_mcurname = "";
-       return;
-}
-
-static struct tfont *
-tfc_lookup(code, size, fontname, regid)
-       u_int code, size;
-       char *fontname;
-       int     regid;
-{
-       u_int   i;
-       struct tfont *tfc, *htfc;
-
-       if (!fontname)  
-               return NULL;    
-
-       for (i = 0; i < tffontcnt; i ++) {
-               if (!strcmp(fontname, tfloadedfont[i]))
-                       tfcuridx = i;
-       }
-
-       htfc = &tfcache[TFCACHE_HASH(code, size)];
-       for (tfc = htfc->next; tfc != htfc; tfc = tfc->next) {
-               if (tfc->code == code
-                && tfc->size == size
-                && tfc->regid == regid
-                && strcmp(tfc->fontname, fontname) == 0) {
-                       tfcachehit++;
-                       TFC_DELLRU(tfc);
-                       TFC_INSLRU(tfc);
-                       return tfc;
-               }
-       }
-       tfcachemiss++;
-
-       return NULL;
-}
-
-static struct tfont *
-tfc_alloc(code, size, fontname, registry)
-       u_int code, size;
-       char *fontname;
-       char *registry;
-{
-       struct tfont *tfc;
-       short unicode;
-
-       /* if no font was ever loaded, try loading the last resort font */
-       if (!tffontcnt) {
-               if (verbose)
-                       fprintf(stderr, "no fontcount\n");
-               tfc_setfont(NULL, 0, NULL);
-       }
-
-       /* font out of bounds, suggests no font was available */
-       if (tfcuridx < 0 || tffontcnt <= tfcuridx) {
-               if (verbose)
-                       fprintf(stderr, "tfc_alloc: font index out of bound\n");
-               return NULL;
-       }
-
-       if (fontname == NULL)
-               return NULL;
-       
-
-       /* This is required! */
-       if (tfc_setsize(char_size[caching]) < 0)
-               return NULL;
-
-       tfc = (struct tfont *)malloc(sizeof(*tfc));
-       if (tfc == NULL) {
-               fprintf(stderr, "tfc_alloc: malloc failed\n");
-               return NULL;
-       }
-
-#if 1
-       unicode = CharToUnicode(code, registry);
-#else
-       unicode = code;
-#endif
-       if (!unicode)
-               return NULL;
-       if ((error = LoadTrueTypeChar(unicode, 0))) {
-               fprintf(stderr, "LoadTrueTypeChar fail %d\n", (int)error);
-               fprintf(stderr, "fontfile: \"%s\" char: '%c' (0x%04x)\n",
-                       tfloadedfont[tfcuridx],
-                       isprint(unicode) ? unicode : '?',
-                       unicode);
-               return NULL;
-       }
-
-       TT_Get_Glyph_Metrics(glyph[tfcuridx], &metrics);
-
-       /*
-        * TT_Get_Glyph_Pixmap generates pixmap starting from FreeType
-        * origin (leftmost side, baseline). Because of this 3rd and 4th
-        * arguments are necessary.
-        * For X axis (3rd argument), we have to take metrics.bearingX as
-        * offset.  Y axis must be shifted if there's descent box (image
-        * below the baseline).  4th argument is specified for that.
-        */
-       bitmap.rows = (metrics.bbox.yMax - metrics.bbox.yMin) >> 6;
-       bitmap.rows += 2;       /* insurance to cope with number-round error */
-       bitmap.width = metrics.bbox.xMax - metrics.bbox.xMin;
-       bitmap.width >>= 6;
-       bitmap.width += 2;      /* insurance to cope with number-round error */
-       bitmap.cols = (bitmap.width+3) & -4;
-       bitmap.flow   = TT_Flow_Down;
-       bitmap.size   = (long)bitmap.cols * bitmap.rows;
-       bitmap.bitmap = (void *)malloc((int)bitmap.size);
-       memset(bitmap.bitmap, 0, bitmap.size);
-
-       /* be very careful about CEIL/FLOOR. */
-       TT_Get_Glyph_Pixmap(glyph[tfcuridx], &bitmap,
-               TTCEIL(-metrics.bearingX),
-               TTCEIL(metrics.bbox.yMax - metrics.bbox.yMin - metrics.bearingY));
-
-       tfc->code = code;
-       tfc->size = size;
-       tfc->width = bitmap.width;
-       tfc->bwidth = bitmap.cols;
-       tfc->height = bitmap.rows;
-       /*
-        * ascent must be derived from descent, to avoid number-rounding
-        * errors.
-        */
-       tfc->descent =
-               TTCEIL(metrics.bbox.yMax - metrics.bbox.yMin - metrics.bearingY) >> 6;
-       tfc->ascent = bitmap.rows - tfc->descent;
-       tfc->xoff = metrics.bearingX >> 6;
-       tfc->fontname = strdup(fontname);
-       tfc->charlen = metrics.advance >> 6;
-       tfc->xmax = metrics.bbox.xMax >> 6;
-       tfc->ref = 0;
-       tfc->dbitmap = bitmap.bitmap;
-       tfc->regid = get_regid(registry);
-       if (!tfc->charlen) tfc->charlen = 1;
-
-       TFC_INSHASH(tfc);
-       TFC_INSLRU(tfc);
-       tfcachecnt++;
-
-       return tfc;
-}
-
-static short
-CharToUnicode(code, registry)
-       u_int code;
-       char *registry;
-{
-       TT_CharMap      char_map;
-       unsigned short  i, n;
-       unsigned short  platform, encoding;
-       unsigned int    regid;
-       char                    p;
-
-       /* First, look for a Unicode charmap */
-#ifdef HAVE_TT_FACE_PROPERTIES_CHARMAPS
-       n = properties[tfcuridx].num_CharMaps;
-#else
-       n = TT_Get_CharMap_Count(face[tfcuridx]);
-#endif
-
-#if 1
-       if (verbose) {
-               fprintf(stderr, "%d charmaps for font %s code %04x\n",
-                       n, tfloadedfont[tfcuridx], code & 0xffff);
-       }
-#endif
-
-       for (i = 0; i < n; i++) {
-               TT_Get_CharMap_ID(face[tfcuridx], i, &platform, &encoding);
-               if ((platform == 3 && encoding == 1)
-                || (platform == 0 && encoding == 0)) {
-                       TT_Get_CharMap(face[tfcuridx], i, &char_map);
-#ifdef FREETYPE_CHARSET16
-                       if (code > 256 && strncmp(registry, "jisx0208.1983-", 14) != 0) {
-                               /*
-                                * unicode_map assumes JIS X0208.
-                                * it is not usable for other encodings.
-                                * try the next CharMap available.
-                                */
-                               continue;
-                       }
-                       if (code > 256)
-                               code = unicode_map[code];
-#endif /* FREETYPE_CHARSET16 */
-
-#if 1 /* latin2-4 encoding processing */
-                       if (code > 0xa0 && code < 256) {
-                               int tempregid;
-                               if (registry)
-                                       tempregid = get_regid(registry) -1;
-                               else {
-                                       if (mgp_charset)
-                                               tempregid = get_regid(mgp_charset)-1;
-                               }
-                               if (tempregid >= 0) {
-                                       regid = tempregid;
-                                       if (latin_unicode_map[regid][code])
-                                       code = latin_unicode_map[regid][code];
-                               }
-                       }
-#endif
-
-/*
- * For freetype 1.4, suggested by mituharu@math.s.chiba-u.ac.jp 
- */ 
-#if TT_FREETYPE_MAJOR == 1 &&  TT_FREETYPE_MINOR == 4
-                       return TT_Char_Index(char_map, (u_short) code);
-#else
-                       return TT_Char_Index(char_map, (short) code);
-#endif
-               }
-#ifdef FREETYPE_CHARSET16
-               else {
-                       /*
-                        * very adhoc processing for truetype fonts generated by cb2ttj.
-                        */
-                       if ((platform == 3 && encoding == 2)
-                               || (platform == 1 && encoding == 1)) {
-                                       if (code < 256) continue;
-                                       TT_Get_CharMap(face[tfcuridx], i, &char_map);
-                                       return TT_Char_Index(char_map, (u_short) jistosjis(code));
-                       } else {
-                               if (platform == 1 && encoding == 0) {
-                                       if (code >= 0xa0) continue;
-                                       TT_Get_CharMap(face[tfcuridx], i, &char_map);
-                                       return TT_Char_Index(char_map, (short) code);
-                               }
-#endif
-                               else {
-                                       /* symbol font */
-                                       if (platform == 3 && encoding == 0) {
-                                               code |= 0xf000;
-                                               TT_Get_CharMap(face[tfcuridx],
-                                                               i, &char_map);
-                                               return TT_Char_Index(char_map,
-                                                               code);
-                                       }
-                               }
-#ifdef FREETYPE_CHARSET16
-                       }
-               }
-#endif
-       }
-
-       fprintf(stderr, "Sorry, but the fontfile \"%s\" doesn't "
-               "contain any Unicode mapping table\n", tfloadedfont[tfcuridx]);
-       return 0;
-}
-
-static TT_Error
-LoadTrueTypeChar(int idx, int hint)
-{
-       int             flags;
-
-       flags = TTLOAD_SCALE_GLYPH;
-       if (hint)
-               flags |= TTLOAD_HINT_GLYPH;
-
-       return TT_Load_Glyph(instance[tfcuridx], glyph[tfcuridx], idx, flags);
-}
-
-/*
- * NOTE: this is upper-layer's responsibility to adjust the (bx, by)
- * so that the font bitmap fits into the given XImage.
- * see draw_onechar_tf() for the code.
- */
-XImage *
-tfc_image(tfc, fore, back, xim, bx, by)
-       struct tfont *tfc;
-       long fore, back;
-       XImage *xim;
-       int bx, by;
-{
-       int x, y;
-       static XColor col[5];
-       u_char d, *s;
-       u_long p;
-       XColor *bcol = NULL, *bc;
-       u_int charlen;
-
-       charlen = tfc->charlen;
-
-       if (back == -1) {
-               u_long r, g, b;
-               int dots;
-
-               dots = charlen * tfc->height;
-               bcol = malloc(sizeof(XColor) * dots);
-               if (bcol == NULL)
-                       return NULL;
-               bc = bcol;
-               for (y = 0; y < tfc->height; y++) {
-                       for (x = 0; x < charlen; x++, bc++) {
-                               bc->pixel = XGetPixel(xim, bx + tfc->xoff + x,
-                                       by - tfc->ascent + y);
-                               bc->flags = DoRed|DoGreen|DoBlue;
-                       }
-               }
-               XQueryColors(display, colormap, bcol, dots);
-               r = g = b = 0;
-               for (y = 0; y < tfc->height; y++) {
-                       for (x = 0; x < charlen; x++) {
-                               r += bcol[x].red;
-                               g += bcol[x].green;
-                               b += bcol[x].blue;
-                       }
-               }
-               r /= dots; g /= dots; b /= dots;
-               bc = &col[0];
-               if (bc->red == r && bc->green == g && bc->blue == b)
-                       bc->pixel = back;
-               else {
-                       bc->pixel = ~back;
-                       bc->red   = r; bc->green = g; bc->blue  = b;
-               }
-       }
-       if (fore != col[4].pixel || back != col[0].pixel) {
-               col[4].pixel = fore;
-               col[4].flags = DoRed|DoGreen|DoBlue;
-               if (back != -1) {
-                       col[3].pixel = back;
-                       col[3].flags = DoRed|DoGreen|DoBlue;
-                       XQueryColors(display, colormap, &col[3], 2);
-                       col[0] = col[3];
-               } else {
-                       XQueryColor(display, colormap, &col[4]);
-               }
-               for (x = 3; x > 0; x--) {
-                       col[x].red   = (col[4].red  *x + col[0].red  *(4-x)) /4;
-                       col[x].green = (col[4].green*x + col[0].green*(4-x)) /4;
-                       col[x].blue  = (col[4].blue *x + col[0].blue *(4-x)) /4;
-                       if (!XAllocColor(display, colormap, &col[x])) {
-                               if (verbose)
-                                       printf("tfc_image: cannot allocate color for level %d (using %d)\n", x, x + 1);
-                               col[x].pixel = col[x + 1].pixel;
-                       }
-                       else regist_alloc_colors(&font_clr, &col[x].pixel, 1);
-               }
-       }
-
-       /* XXX: need optimization */
-       s = tfc->dbitmap;
-       bc = bcol;
-       for (y = 0; y < tfc->height; y++) {
-               for (x = 0; x < tfc->bwidth; x++) {
-                       d = *s++;
-                       if (d && x < tfc->width) {
-                               p = col[d].pixel;
-                               XPutPixel(xim, bx + tfc->xoff + x,
-                                       by - tfc->ascent + y, p);
-                       }
-               }
-       }
-       if (mgp_flag & FL_GLYPHEDGE) {
-               /*
-                * for debugging treatment of font metrics, for 16bpp displays
-                */
-               /* pixmap bounding box */
-               for (y = 0; y < tfc->height; y++) {
-                       XPutPixel(xim, bx + tfc->xoff, by - tfc->ascent + y,
-                               0xffff);
-                       XPutPixel(xim, bx + tfc->xoff + tfc->width - 1,
-                               by - tfc->ascent + y, 0xffff);
-               }
-               for (x = 0; x < tfc->width; x++) {
-                       XPutPixel(xim, bx + tfc->xoff + x, by - tfc->ascent,
-                               0xffff);
-                       XPutPixel(xim, bx + tfc->xoff + x,
-                               by - tfc->ascent + tfc->height - 1, 0xffff);
-               }
-               /* origin */
-               XPutPixel(xim, bx, by, 0xaaaa);
-               /* baseline */
-               for (x = 0; x < tfc->width; x++)
-                       XPutPixel(xim, bx + tfc->xoff + x, by, 0xaaaa);
-       }
-       if (bcol)
-               free(bcol);
-       return xim;
-}
-
-static short
-jistosjis(code)
-       u_int code;
-{
-       u_char c1 = code >> 8;
-       u_char c2 = code % 256;
-       int rowOffset = c1 < 95 ? 112: 176;
-       int cellOffset = c1 % 2 ? (c2 > 95 ? 32 : 31) : 126;
-
-       return (((c1 + 1) >> 1) + rowOffset) * 256 + c2 + cellOffset;
-}
-
-#endif /* FRRETYPE */
index 28d8bcc..9b890fb 100644 (file)
--- a/unimap.c
+++ b/unimap.c
 
 #include "mgp.h"
 
-#ifdef FREETYPE_CHARSET16
-
-void
-unicode_map_init(){
-
-unicode_map[0x2121] = 0x3000; unicode_map[0x2122] = 0x3001; 
-unicode_map[0x2123] = 0x3002; unicode_map[0x2124] = 0xFF0C; 
-unicode_map[0x2125] = 0xFF0E; unicode_map[0x2126] = 0x30FB; 
-unicode_map[0x2127] = 0xFF1A; unicode_map[0x2128] = 0xFF1B; 
-unicode_map[0x2129] = 0xFF1F; unicode_map[0x212A] = 0xFF01; 
-unicode_map[0x212B] = 0x309B; unicode_map[0x212C] = 0x309C; 
-unicode_map[0x212D] = 0x00B4; unicode_map[0x212E] = 0xFF40; 
-unicode_map[0x212F] = 0x00A8; unicode_map[0x2130] = 0xFF3E; 
-unicode_map[0x2131] = 0xFFE3; unicode_map[0x2132] = 0xFF3F; 
-unicode_map[0x2133] = 0x30FD; unicode_map[0x2134] = 0x30FE; 
-unicode_map[0x2135] = 0x309D; unicode_map[0x2136] = 0x309E; 
-unicode_map[0x2137] = 0x3003; unicode_map[0x2138] = 0x4EDD; 
-unicode_map[0x2139] = 0x3005; unicode_map[0x213A] = 0x3006; 
-unicode_map[0x213B] = 0x3007; unicode_map[0x213C] = 0x30FC; 
-unicode_map[0x213D] = 0x2015; unicode_map[0x213E] = 0x2010; 
-unicode_map[0x213F] = 0xFF0F; unicode_map[0x2140] = 0x005C; 
-unicode_map[0x2141] = 0x301C; unicode_map[0x2142] = 0x2016; 
-unicode_map[0x2143] = 0xFF5C; unicode_map[0x2144] = 0x2026; 
-unicode_map[0x2145] = 0x2025; unicode_map[0x2146] = 0x2018; 
-unicode_map[0x2147] = 0x2019; unicode_map[0x2148] = 0x201C; 
-unicode_map[0x2149] = 0x201D; unicode_map[0x214A] = 0xFF08; 
-unicode_map[0x214B] = 0xFF09; unicode_map[0x214C] = 0x3014; 
-unicode_map[0x214D] = 0x3015; unicode_map[0x214E] = 0xFF3B; 
-unicode_map[0x214F] = 0xFF3D; unicode_map[0x2150] = 0xFF5B; 
-unicode_map[0x2151] = 0xFF5D; unicode_map[0x2152] = 0x3008; 
-unicode_map[0x2153] = 0x3009; unicode_map[0x2154] = 0x300A; 
-unicode_map[0x2155] = 0x300B; unicode_map[0x2156] = 0x300C; 
-unicode_map[0x2157] = 0x300D; unicode_map[0x2158] = 0x300E; 
-unicode_map[0x2159] = 0x300F; unicode_map[0x215A] = 0x3010; 
-unicode_map[0x215B] = 0x3011; unicode_map[0x215C] = 0xFF0B; 
-unicode_map[0x215D] = 0x2212; unicode_map[0x215E] = 0x00B1; 
-unicode_map[0x215F] = 0x00D7; unicode_map[0x2160] = 0x00F7; 
-unicode_map[0x2161] = 0xFF1D; unicode_map[0x2162] = 0x2260; 
-unicode_map[0x2163] = 0xFF1C; unicode_map[0x2164] = 0xFF1E; 
-unicode_map[0x2165] = 0x2266; unicode_map[0x2166] = 0x2267; 
-unicode_map[0x2167] = 0x221E; unicode_map[0x2168] = 0x2234; 
-unicode_map[0x2169] = 0x2642; unicode_map[0x216A] = 0x2640; 
-unicode_map[0x216B] = 0x00B0; unicode_map[0x216C] = 0x2032; 
-unicode_map[0x216D] = 0x2033; unicode_map[0x216E] = 0x2103; 
-unicode_map[0x216F] = 0xFFE5; unicode_map[0x2170] = 0xFF04; 
-unicode_map[0x2171] = 0x00A2; unicode_map[0x2172] = 0x00A3; 
-unicode_map[0x2173] = 0xFF05; unicode_map[0x2174] = 0xFF03; 
-unicode_map[0x2175] = 0xFF06; unicode_map[0x2176] = 0xFF0A; 
-unicode_map[0x2177] = 0xFF20; unicode_map[0x2178] = 0x00A7; 
-unicode_map[0x2179] = 0x2606; unicode_map[0x217A] = 0x2605; 
-unicode_map[0x217B] = 0x25CB; unicode_map[0x217C] = 0x25CF; 
-unicode_map[0x217D] = 0x25CE; unicode_map[0x217E] = 0x25C7; 
-unicode_map[0x2221] = 0x25C6; unicode_map[0x2222] = 0x25A1; 
-unicode_map[0x2223] = 0x25A0; unicode_map[0x2224] = 0x25B3; 
-unicode_map[0x2225] = 0x25B2; unicode_map[0x2226] = 0x25BD; 
-unicode_map[0x2227] = 0x25BC; unicode_map[0x2228] = 0x203B; 
-unicode_map[0x2229] = 0x3012; unicode_map[0x222A] = 0x2192; 
-unicode_map[0x222B] = 0x2190; unicode_map[0x222C] = 0x2191; 
-unicode_map[0x222D] = 0x2193; unicode_map[0x222E] = 0x3013; 
-unicode_map[0x223A] = 0x2208; unicode_map[0x223B] = 0x220B; 
-unicode_map[0x223C] = 0x2286; unicode_map[0x223D] = 0x2287; 
-unicode_map[0x223E] = 0x2282; unicode_map[0x223F] = 0x2283; 
-unicode_map[0x2240] = 0x222A; unicode_map[0x2241] = 0x2229; 
-unicode_map[0x224A] = 0x2227; unicode_map[0x224B] = 0x2228; 
-unicode_map[0x224C] = 0x00AC; unicode_map[0x224D] = 0x21D2; 
-unicode_map[0x224E] = 0x21D4; unicode_map[0x224F] = 0x2200; 
-unicode_map[0x2250] = 0x2203; unicode_map[0x225C] = 0x2220; 
-unicode_map[0x225D] = 0x22A5; unicode_map[0x225E] = 0x2312; 
-unicode_map[0x225F] = 0x2202; unicode_map[0x2260] = 0x2207; 
-unicode_map[0x2261] = 0x2261; unicode_map[0x2262] = 0x2252; 
-unicode_map[0x2263] = 0x226A; unicode_map[0x2264] = 0x226B; 
-unicode_map[0x2265] = 0x221A; unicode_map[0x2266] = 0x223D; 
-unicode_map[0x2267] = 0x221D; unicode_map[0x2268] = 0x2235; 
-unicode_map[0x2269] = 0x222B; unicode_map[0x226A] = 0x222C; 
-unicode_map[0x2272] = 0x212B; unicode_map[0x2273] = 0x2030; 
-unicode_map[0x2274] = 0x266F; unicode_map[0x2275] = 0x266D; 
-unicode_map[0x2276] = 0x266A; unicode_map[0x2277] = 0x2020; 
-unicode_map[0x2278] = 0x2021; unicode_map[0x2279] = 0x00B6; 
-unicode_map[0x227E] = 0x25EF; unicode_map[0x2330] = 0xFF10; 
-unicode_map[0x2331] = 0xFF11; unicode_map[0x2332] = 0xFF12; 
-unicode_map[0x2333] = 0xFF13; unicode_map[0x2334] = 0xFF14; 
-unicode_map[0x2335] = 0xFF15; unicode_map[0x2336] = 0xFF16; 
-unicode_map[0x2337] = 0xFF17; unicode_map[0x2338] = 0xFF18; 
-unicode_map[0x2339] = 0xFF19; unicode_map[0x2341] = 0xFF21; 
-unicode_map[0x2342] = 0xFF22; unicode_map[0x2343] = 0xFF23; 
-unicode_map[0x2344] = 0xFF24; unicode_map[0x2345] = 0xFF25; 
-unicode_map[0x2346] = 0xFF26; unicode_map[0x2347] = 0xFF27; 
-unicode_map[0x2348] = 0xFF28; unicode_map[0x2349] = 0xFF29; 
-unicode_map[0x234A] = 0xFF2A; unicode_map[0x234B] = 0xFF2B; 
-unicode_map[0x234C] = 0xFF2C; unicode_map[0x234D] = 0xFF2D; 
-unicode_map[0x234E] = 0xFF2E; unicode_map[0x234F] = 0xFF2F; 
-unicode_map[0x2350] = 0xFF30; unicode_map[0x2351] = 0xFF31; 
-unicode_map[0x2352] = 0xFF32; unicode_map[0x2353] = 0xFF33; 
-unicode_map[0x2354] = 0xFF34; unicode_map[0x2355] = 0xFF35; 
-unicode_map[0x2356] = 0xFF36; unicode_map[0x2357] = 0xFF37; 
-unicode_map[0x2358] = 0xFF38; unicode_map[0x2359] = 0xFF39; 
-unicode_map[0x235A] = 0xFF3A; unicode_map[0x2361] = 0xFF41; 
-unicode_map[0x2362] = 0xFF42; unicode_map[0x2363] = 0xFF43; 
-unicode_map[0x2364] = 0xFF44; unicode_map[0x2365] = 0xFF45; 
-unicode_map[0x2366] = 0xFF46; unicode_map[0x2367] = 0xFF47; 
-unicode_map[0x2368] = 0xFF48; unicode_map[0x2369] = 0xFF49; 
-unicode_map[0x236A] = 0xFF4A; unicode_map[0x236B] = 0xFF4B; 
-unicode_map[0x236C] = 0xFF4C; unicode_map[0x236D] = 0xFF4D; 
-unicode_map[0x236E] = 0xFF4E; unicode_map[0x236F] = 0xFF4F; 
-unicode_map[0x2370] = 0xFF50; unicode_map[0x2371] = 0xFF51; 
-unicode_map[0x2372] = 0xFF52; unicode_map[0x2373] = 0xFF53; 
-unicode_map[0x2374] = 0xFF54; unicode_map[0x2375] = 0xFF55; 
-unicode_map[0x2376] = 0xFF56; unicode_map[0x2377] = 0xFF57; 
-unicode_map[0x2378] = 0xFF58; unicode_map[0x2379] = 0xFF59; 
-unicode_map[0x237A] = 0xFF5A; unicode_map[0x2421] = 0x3041; 
-unicode_map[0x2422] = 0x3042; unicode_map[0x2423] = 0x3043; 
-unicode_map[0x2424] = 0x3044; unicode_map[0x2425] = 0x3045; 
-unicode_map[0x2426] = 0x3046; unicode_map[0x2427] = 0x3047; 
-unicode_map[0x2428] = 0x3048; unicode_map[0x2429] = 0x3049; 
-unicode_map[0x242A] = 0x304A; unicode_map[0x242B] = 0x304B; 
-unicode_map[0x242C] = 0x304C; unicode_map[0x242D] = 0x304D; 
-unicode_map[0x242E] = 0x304E; unicode_map[0x242F] = 0x304F; 
-unicode_map[0x2430] = 0x3050; unicode_map[0x2431] = 0x3051; 
-unicode_map[0x2432] = 0x3052; unicode_map[0x2433] = 0x3053; 
-unicode_map[0x2434] = 0x3054; unicode_map[0x2435] = 0x3055; 
-unicode_map[0x2436] = 0x3056; unicode_map[0x2437] = 0x3057; 
-unicode_map[0x2438] = 0x3058; unicode_map[0x2439] = 0x3059; 
-unicode_map[0x243A] = 0x305A; unicode_map[0x243B] = 0x305B; 
-unicode_map[0x243C] = 0x305C; unicode_map[0x243D] = 0x305D; 
-unicode_map[0x243E] = 0x305E; unicode_map[0x243F] = 0x305F; 
-unicode_map[0x2440] = 0x3060; unicode_map[0x2441] = 0x3061; 
-unicode_map[0x2442] = 0x3062; unicode_map[0x2443] = 0x3063; 
-unicode_map[0x2444] = 0x3064; unicode_map[0x2445] = 0x3065; 
-unicode_map[0x2446] = 0x3066; unicode_map[0x2447] = 0x3067; 
-unicode_map[0x2448] = 0x3068; unicode_map[0x2449] = 0x3069; 
-unicode_map[0x244A] = 0x306A; unicode_map[0x244B] = 0x306B; 
-unicode_map[0x244C] = 0x306C; unicode_map[0x244D] = 0x306D; 
-unicode_map[0x244E] = 0x306E; unicode_map[0x244F] = 0x306F; 
-unicode_map[0x2450] = 0x3070; unicode_map[0x2451] = 0x3071; 
-unicode_map[0x2452] = 0x3072; unicode_map[0x2453] = 0x3073; 
-unicode_map[0x2454] = 0x3074; unicode_map[0x2455] = 0x3075; 
-unicode_map[0x2456] = 0x3076; unicode_map[0x2457] = 0x3077; 
-unicode_map[0x2458] = 0x3078; unicode_map[0x2459] = 0x3079; 
-unicode_map[0x245A] = 0x307A; unicode_map[0x245B] = 0x307B; 
-unicode_map[0x245C] = 0x307C; unicode_map[0x245D] = 0x307D; 
-unicode_map[0x245E] = 0x307E; unicode_map[0x245F] = 0x307F; 
-unicode_map[0x2460] = 0x3080; unicode_map[0x2461] = 0x3081; 
-unicode_map[0x2462] = 0x3082; unicode_map[0x2463] = 0x3083; 
-unicode_map[0x2464] = 0x3084; unicode_map[0x2465] = 0x3085; 
-unicode_map[0x2466] = 0x3086; unicode_map[0x2467] = 0x3087; 
-unicode_map[0x2468] = 0x3088; unicode_map[0x2469] = 0x3089; 
-unicode_map[0x246A] = 0x308A; unicode_map[0x246B] = 0x308B; 
-unicode_map[0x246C] = 0x308C; unicode_map[0x246D] = 0x308D; 
-unicode_map[0x246E] = 0x308E; unicode_map[0x246F] = 0x308F; 
-unicode_map[0x2470] = 0x3090; unicode_map[0x2471] = 0x3091; 
-unicode_map[0x2472] = 0x3092; unicode_map[0x2473] = 0x3093; 
-unicode_map[0x2521] = 0x30A1; unicode_map[0x2522] = 0x30A2; 
-unicode_map[0x2523] = 0x30A3; unicode_map[0x2524] = 0x30A4; 
-unicode_map[0x2525] = 0x30A5; unicode_map[0x2526] = 0x30A6; 
-unicode_map[0x2527] = 0x30A7; unicode_map[0x2528] = 0x30A8; 
-unicode_map[0x2529] = 0x30A9; unicode_map[0x252A] = 0x30AA; 
-unicode_map[0x252B] = 0x30AB; unicode_map[0x252C] = 0x30AC; 
-unicode_map[0x252D] = 0x30AD; unicode_map[0x252E] = 0x30AE; 
-unicode_map[0x252F] = 0x30AF; unicode_map[0x2530] = 0x30B0; 
-unicode_map[0x2531] = 0x30B1; unicode_map[0x2532] = 0x30B2; 
-unicode_map[0x2533] = 0x30B3; unicode_map[0x2534] = 0x30B4; 
-unicode_map[0x2535] = 0x30B5; unicode_map[0x2536] = 0x30B6; 
-unicode_map[0x2537] = 0x30B7; unicode_map[0x2538] = 0x30B8; 
-unicode_map[0x2539] = 0x30B9; unicode_map[0x253A] = 0x30BA; 
-unicode_map[0x253B] = 0x30BB; unicode_map[0x253C] = 0x30BC; 
-unicode_map[0x253D] = 0x30BD; unicode_map[0x253E] = 0x30BE; 
-unicode_map[0x253F] = 0x30BF; unicode_map[0x2540] = 0x30C0; 
-unicode_map[0x2541] = 0x30C1; unicode_map[0x2542] = 0x30C2; 
-unicode_map[0x2543] = 0x30C3; unicode_map[0x2544] = 0x30C4; 
-unicode_map[0x2545] = 0x30C5; unicode_map[0x2546] = 0x30C6; 
-unicode_map[0x2547] = 0x30C7; unicode_map[0x2548] = 0x30C8; 
-unicode_map[0x2549] = 0x30C9; unicode_map[0x254A] = 0x30CA; 
-unicode_map[0x254B] = 0x30CB; unicode_map[0x254C] = 0x30CC; 
-unicode_map[0x254D] = 0x30CD; unicode_map[0x254E] = 0x30CE; 
-unicode_map[0x254F] = 0x30CF; unicode_map[0x2550] = 0x30D0; 
-unicode_map[0x2551] = 0x30D1; unicode_map[0x2552] = 0x30D2; 
-unicode_map[0x2553] = 0x30D3; unicode_map[0x2554] = 0x30D4; 
-unicode_map[0x2555] = 0x30D5; unicode_map[0x2556] = 0x30D6; 
-unicode_map[0x2557] = 0x30D7; unicode_map[0x2558] = 0x30D8; 
-unicode_map[0x2559] = 0x30D9; unicode_map[0x255A] = 0x30DA; 
-unicode_map[0x255B] = 0x30DB; unicode_map[0x255C] = 0x30DC; 
-unicode_map[0x255D] = 0x30DD; unicode_map[0x255E] = 0x30DE; 
-unicode_map[0x255F] = 0x30DF; unicode_map[0x2560] = 0x30E0; 
-unicode_map[0x2561] = 0x30E1; unicode_map[0x2562] = 0x30E2; 
-unicode_map[0x2563] = 0x30E3; unicode_map[0x2564] = 0x30E4; 
-unicode_map[0x2565] = 0x30E5; unicode_map[0x2566] = 0x30E6; 
-unicode_map[0x2567] = 0x30E7; unicode_map[0x2568] = 0x30E8; 
-unicode_map[0x2569] = 0x30E9; unicode_map[0x256A] = 0x30EA; 
-unicode_map[0x256B] = 0x30EB; unicode_map[0x256C] = 0x30EC; 
-unicode_map[0x256D] = 0x30ED; unicode_map[0x256E] = 0x30EE; 
-unicode_map[0x256F] = 0x30EF; unicode_map[0x2570] = 0x30F0; 
-unicode_map[0x2571] = 0x30F1; unicode_map[0x2572] = 0x30F2; 
-unicode_map[0x2573] = 0x30F3; unicode_map[0x2574] = 0x30F4; 
-unicode_map[0x2575] = 0x30F5; unicode_map[0x2576] = 0x30F6; 
-unicode_map[0x2621] = 0x0391; unicode_map[0x2622] = 0x0392; 
-unicode_map[0x2623] = 0x0393; unicode_map[0x2624] = 0x0394; 
-unicode_map[0x2625] = 0x0395; unicode_map[0x2626] = 0x0396; 
-unicode_map[0x2627] = 0x0397; unicode_map[0x2628] = 0x0398; 
-unicode_map[0x2629] = 0x0399; unicode_map[0x262A] = 0x039A; 
-unicode_map[0x262B] = 0x039B; unicode_map[0x262C] = 0x039C; 
-unicode_map[0x262D] = 0x039D; unicode_map[0x262E] = 0x039E; 
-unicode_map[0x262F] = 0x039F; unicode_map[0x2630] = 0x03A0; 
-unicode_map[0x2631] = 0x03A1; unicode_map[0x2632] = 0x03A3; 
-unicode_map[0x2633] = 0x03A4; unicode_map[0x2634] = 0x03A5; 
-unicode_map[0x2635] = 0x03A6; unicode_map[0x2636] = 0x03A7; 
-unicode_map[0x2637] = 0x03A8; unicode_map[0x2638] = 0x03A9; 
-unicode_map[0x2641] = 0x03B1; unicode_map[0x2642] = 0x03B2; 
-unicode_map[0x2643] = 0x03B3; unicode_map[0x2644] = 0x03B4; 
-unicode_map[0x2645] = 0x03B5; unicode_map[0x2646] = 0x03B6; 
-unicode_map[0x2647] = 0x03B7; unicode_map[0x2648] = 0x03B8; 
-unicode_map[0x2649] = 0x03B9; unicode_map[0x264A] = 0x03BA; 
-unicode_map[0x264B] = 0x03BB; unicode_map[0x264C] = 0x03BC; 
-unicode_map[0x264D] = 0x03BD; unicode_map[0x264E] = 0x03BE; 
-unicode_map[0x264F] = 0x03BF; unicode_map[0x2650] = 0x03C0; 
-unicode_map[0x2651] = 0x03C1; unicode_map[0x2652] = 0x03C3; 
-unicode_map[0x2653] = 0x03C4; unicode_map[0x2654] = 0x03C5; 
-unicode_map[0x2655] = 0x03C6; unicode_map[0x2656] = 0x03C7; 
-unicode_map[0x2657] = 0x03C8; unicode_map[0x2658] = 0x03C9; 
-unicode_map[0x2721] = 0x0410; unicode_map[0x2722] = 0x0411; 
-unicode_map[0x2723] = 0x0412; unicode_map[0x2724] = 0x0413; 
-unicode_map[0x2725] = 0x0414; unicode_map[0x2726] = 0x0415; 
-unicode_map[0x2727] = 0x0401; unicode_map[0x2728] = 0x0416; 
-unicode_map[0x2729] = 0x0417; unicode_map[0x272A] = 0x0418; 
-unicode_map[0x272B] = 0x0419; unicode_map[0x272C] = 0x041A; 
-unicode_map[0x272D] = 0x041B; unicode_map[0x272E] = 0x041C; 
-unicode_map[0x272F] = 0x041D; unicode_map[0x2730] = 0x041E; 
-unicode_map[0x2731] = 0x041F; unicode_map[0x2732] = 0x0420; 
-unicode_map[0x2733] = 0x0421; unicode_map[0x2734] = 0x0422; 
-unicode_map[0x2735] = 0x0423; unicode_map[0x2736] = 0x0424; 
-unicode_map[0x2737] = 0x0425; unicode_map[0x2738] = 0x0426; 
-unicode_map[0x2739] = 0x0427; unicode_map[0x273A] = 0x0428; 
-unicode_map[0x273B] = 0x0429; unicode_map[0x273C] = 0x042A; 
-unicode_map[0x273D] = 0x042B; unicode_map[0x273E] = 0x042C; 
-unicode_map[0x273F] = 0x042D; unicode_map[0x2740] = 0x042E; 
-unicode_map[0x2741] = 0x042F; unicode_map[0x2751] = 0x0430; 
-unicode_map[0x2752] = 0x0431; unicode_map[0x2753] = 0x0432; 
-unicode_map[0x2754] = 0x0433; unicode_map[0x2755] = 0x0434; 
-unicode_map[0x2756] = 0x0435; unicode_map[0x2757] = 0x0451; 
-unicode_map[0x2758] = 0x0436; unicode_map[0x2759] = 0x0437; 
-unicode_map[0x275A] = 0x0438; unicode_map[0x275B] = 0x0439; 
-unicode_map[0x275C] = 0x043A; unicode_map[0x275D] = 0x043B; 
-unicode_map[0x275E] = 0x043C; unicode_map[0x275F] = 0x043D; 
-unicode_map[0x2760] = 0x043E; unicode_map[0x2761] = 0x043F; 
-unicode_map[0x2762] = 0x0440; unicode_map[0x2763] = 0x0441; 
-unicode_map[0x2764] = 0x0442; unicode_map[0x2765] = 0x0443; 
-unicode_map[0x2766] = 0x0444; unicode_map[0x2767] = 0x0445; 
-unicode_map[0x2768] = 0x0446; unicode_map[0x2769] = 0x0447; 
-unicode_map[0x276A] = 0x0448; unicode_map[0x276B] = 0x0449; 
-unicode_map[0x276C] = 0x044A; unicode_map[0x276D] = 0x044B; 
-unicode_map[0x276E] = 0x044C; unicode_map[0x276F] = 0x044D; 
-unicode_map[0x2770] = 0x044E; unicode_map[0x2771] = 0x044F; 
-unicode_map[0x2821] = 0x2500; unicode_map[0x2822] = 0x2502; 
-unicode_map[0x2823] = 0x250C; unicode_map[0x2824] = 0x2510; 
-unicode_map[0x2825] = 0x2518; unicode_map[0x2826] = 0x2514; 
-unicode_map[0x2827] = 0x251C; unicode_map[0x2828] = 0x252C; 
-unicode_map[0x2829] = 0x2524; unicode_map[0x282A] = 0x2534; 
-unicode_map[0x282B] = 0x253C; unicode_map[0x282C] = 0x2501; 
-unicode_map[0x282D] = 0x2503; unicode_map[0x282E] = 0x250F; 
-unicode_map[0x282F] = 0x2513; unicode_map[0x2830] = 0x251B; 
-unicode_map[0x2831] = 0x2517; unicode_map[0x2832] = 0x2523; 
-unicode_map[0x2833] = 0x2533; unicode_map[0x2834] = 0x252B; 
-unicode_map[0x2835] = 0x253B; unicode_map[0x2836] = 0x254B; 
-unicode_map[0x2837] = 0x2520; unicode_map[0x2838] = 0x252F; 
-unicode_map[0x2839] = 0x2528; unicode_map[0x283A] = 0x2537; 
-unicode_map[0x283B] = 0x253F; unicode_map[0x283C] = 0x251D; 
-unicode_map[0x283D] = 0x2530; unicode_map[0x283E] = 0x2525; 
-unicode_map[0x283F] = 0x2538; unicode_map[0x2840] = 0x2542; 
-unicode_map[0x3021] = 0x4E9C; unicode_map[0x3022] = 0x5516; 
-unicode_map[0x3023] = 0x5A03; unicode_map[0x3024] = 0x963F; 
-unicode_map[0x3025] = 0x54C0; unicode_map[0x3026] = 0x611B; 
-unicode_map[0x3027] = 0x6328; unicode_map[0x3028] = 0x59F6; 
-unicode_map[0x3029] = 0x9022; unicode_map[0x302A] = 0x8475; 
-unicode_map[0x302B] = 0x831C; unicode_map[0x302C] = 0x7A50; 
-unicode_map[0x302D] = 0x60AA; unicode_map[0x302E] = 0x63E1; 
-unicode_map[0x302F] = 0x6E25; unicode_map[0x3030] = 0x65ED; 
-unicode_map[0x3031] = 0x8466; unicode_map[0x3032] = 0x82A6; 
-unicode_map[0x3033] = 0x9BF5; unicode_map[0x3034] = 0x6893; 
-unicode_map[0x3035] = 0x5727; unicode_map[0x3036] = 0x65A1; 
-unicode_map[0x3037] = 0x6271; unicode_map[0x3038] = 0x5B9B; 
-unicode_map[0x3039] = 0x59D0; unicode_map[0x303A] = 0x867B; 
-unicode_map[0x303B] = 0x98F4; unicode_map[0x303C] = 0x7D62; 
-unicode_map[0x303D] = 0x7DBE; unicode_map[0x303E] = 0x9B8E; 
-unicode_map[0x303F] = 0x6216; unicode_map[0x3040] = 0x7C9F; 
-unicode_map[0x3041] = 0x88B7; unicode_map[0x3042] = 0x5B89; 
-unicode_map[0x3043] = 0x5EB5; unicode_map[0x3044] = 0x6309; 
-unicode_map[0x3045] = 0x6697; unicode_map[0x3046] = 0x6848; 
-unicode_map[0x3047] = 0x95C7; unicode_map[0x3048] = 0x978D; 
-unicode_map[0x3049] = 0x674F; unicode_map[0x304A] = 0x4EE5; 
-unicode_map[0x304B] = 0x4F0A; unicode_map[0x304C] = 0x4F4D; 
-unicode_map[0x304D] = 0x4F9D; unicode_map[0x304E] = 0x5049; 
-unicode_map[0x304F] = 0x56F2; unicode_map[0x3050] = 0x5937; 
-unicode_map[0x3051] = 0x59D4; unicode_map[0x3052] = 0x5A01; 
-unicode_map[0x3053] = 0x5C09; unicode_map[0x3054] = 0x60DF; 
-unicode_map[0x3055] = 0x610F; unicode_map[0x3056] = 0x6170; 
-unicode_map[0x3057] = 0x6613; unicode_map[0x3058] = 0x6905; 
-unicode_map[0x3059] = 0x70BA; unicode_map[0x305A] = 0x754F; 
-unicode_map[0x305B] = 0x7570; unicode_map[0x305C] = 0x79FB; 
-unicode_map[0x305D] = 0x7DAD; unicode_map[0x305E] = 0x7DEF; 
-unicode_map[0x305F] = 0x80C3; unicode_map[0x3060] = 0x840E; 
-unicode_map[0x3061] = 0x8863; unicode_map[0x3062] = 0x8B02; 
-unicode_map[0x3063] = 0x9055; unicode_map[0x3064] = 0x907A; 
-unicode_map[0x3065] = 0x533B; unicode_map[0x3066] = 0x4E95; 
-unicode_map[0x3067] = 0x4EA5; unicode_map[0x3068] = 0x57DF; 
-unicode_map[0x3069] = 0x80B2; unicode_map[0x306A] = 0x90C1; 
-unicode_map[0x306B] = 0x78EF; unicode_map[0x306C] = 0x4E00; 
-unicode_map[0x306D] = 0x58F1; unicode_map[0x306E] = 0x6EA2; 
-unicode_map[0x306F] = 0x9038; unicode_map[0x3070] = 0x7A32; 
-unicode_map[0x3071] = 0x8328; unicode_map[0x3072] = 0x828B; 
-unicode_map[0x3073] = 0x9C2F; unicode_map[0x3074] = 0x5141; 
-unicode_map[0x3075] = 0x5370; unicode_map[0x3076] = 0x54BD; 
-unicode_map[0x3077] = 0x54E1; unicode_map[0x3078] = 0x56E0; 
-unicode_map[0x3079] = 0x59FB; unicode_map[0x307A] = 0x5F15; 
-unicode_map[0x307B] = 0x98F2; unicode_map[0x307C] = 0x6DEB; 
-unicode_map[0x307D] = 0x80E4; unicode_map[0x307E] = 0x852D; 
-unicode_map[0x3121] = 0x9662; unicode_map[0x3122] = 0x9670; 
-unicode_map[0x3123] = 0x96A0; unicode_map[0x3124] = 0x97FB; 
-unicode_map[0x3125] = 0x540B; unicode_map[0x3126] = 0x53F3; 
-unicode_map[0x3127] = 0x5B87; unicode_map[0x3128] = 0x70CF; 
-unicode_map[0x3129] = 0x7FBD; unicode_map[0x312A] = 0x8FC2; 
-unicode_map[0x312B] = 0x96E8; unicode_map[0x312C] = 0x536F; 
-unicode_map[0x312D] = 0x9D5C; unicode_map[0x312E] = 0x7ABA; 
-unicode_map[0x312F] = 0x4E11; unicode_map[0x3130] = 0x7893; 
-unicode_map[0x3131] = 0x81FC; unicode_map[0x3132] = 0x6E26; 
-unicode_map[0x3133] = 0x5618; unicode_map[0x3134] = 0x5504; 
-unicode_map[0x3135] = 0x6B1D; unicode_map[0x3136] = 0x851A; 
-unicode_map[0x3137] = 0x9C3B; unicode_map[0x3138] = 0x59E5; 
-unicode_map[0x3139] = 0x53A9; unicode_map[0x313A] = 0x6D66; 
-unicode_map[0x313B] = 0x74DC; unicode_map[0x313C] = 0x958F; 
-unicode_map[0x313D] = 0x5642; unicode_map[0x313E] = 0x4E91; 
-unicode_map[0x313F] = 0x904B; unicode_map[0x3140] = 0x96F2; 
-unicode_map[0x3141] = 0x834F; unicode_map[0x3142] = 0x990C; 
-unicode_map[0x3143] = 0x53E1; unicode_map[0x3144] = 0x55B6; 
-unicode_map[0x3145] = 0x5B30; unicode_map[0x3146] = 0x5F71; 
-unicode_map[0x3147] = 0x6620; unicode_map[0x3148] = 0x66F3; 
-unicode_map[0x3149] = 0x6804; unicode_map[0x314A] = 0x6C38; 
-unicode_map[0x314B] = 0x6CF3; unicode_map[0x314C] = 0x6D29; 
-unicode_map[0x314D] = 0x745B; unicode_map[0x314E] = 0x76C8; 
-unicode_map[0x314F] = 0x7A4E; unicode_map[0x3150] = 0x9834; 
-unicode_map[0x3151] = 0x82F1; unicode_map[0x3152] = 0x885B; 
-unicode_map[0x3153] = 0x8A60; unicode_map[0x3154] = 0x92ED; 
-unicode_map[0x3155] = 0x6DB2; unicode_map[0x3156] = 0x75AB; 
-unicode_map[0x3157] = 0x76CA; unicode_map[0x3158] = 0x99C5; 
-unicode_map[0x3159] = 0x60A6; unicode_map[0x315A] = 0x8B01; 
-unicode_map[0x315B] = 0x8D8A; unicode_map[0x315C] = 0x95B2; 
-unicode_map[0x315D] = 0x698E; unicode_map[0x315E] = 0x53AD; 
-unicode_map[0x315F] = 0x5186; unicode_map[0x3160] = 0x5712; 
-unicode_map[0x3161] = 0x5830; unicode_map[0x3162] = 0x5944; 
-unicode_map[0x3163] = 0x5BB4; unicode_map[0x3164] = 0x5EF6; 
-unicode_map[0x3165] = 0x6028; unicode_map[0x3166] = 0x63A9; 
-unicode_map[0x3167] = 0x63F4; unicode_map[0x3168] = 0x6CBF; 
-unicode_map[0x3169] = 0x6F14; unicode_map[0x316A] = 0x708E; 
-unicode_map[0x316B] = 0x7114; unicode_map[0x316C] = 0x7159; 
-unicode_map[0x316D] = 0x71D5; unicode_map[0x316E] = 0x733F; 
-unicode_map[0x316F] = 0x7E01; unicode_map[0x3170] = 0x8276; 
-unicode_map[0x3171] = 0x82D1; unicode_map[0x3172] = 0x8597; 
-unicode_map[0x3173] = 0x9060; unicode_map[0x3174] = 0x925B; 
-unicode_map[0x3175] = 0x9D1B; unicode_map[0x3176] = 0x5869; 
-unicode_map[0x3177] = 0x65BC; unicode_map[0x3178] = 0x6C5A; 
-unicode_map[0x3179] = 0x7525; unicode_map[0x317A] = 0x51F9; 
-unicode_map[0x317B] = 0x592E; unicode_map[0x317C] = 0x5965; 
-unicode_map[0x317D] = 0x5F80; unicode_map[0x317E] = 0x5FDC; 
-unicode_map[0x3221] = 0x62BC; unicode_map[0x3222] = 0x65FA; 
-unicode_map[0x3223] = 0x6A2A; unicode_map[0x3224] = 0x6B27; 
-unicode_map[0x3225] = 0x6BB4; unicode_map[0x3226] = 0x738B; 
-unicode_map[0x3227] = 0x7FC1; unicode_map[0x3228] = 0x8956; 
-unicode_map[0x3229] = 0x9D2C; unicode_map[0x322A] = 0x9D0E; 
-unicode_map[0x322B] = 0x9EC4; unicode_map[0x322C] = 0x5CA1; 
-unicode_map[0x322D] = 0x6C96; unicode_map[0x322E] = 0x837B; 
-unicode_map[0x322F] = 0x5104; unicode_map[0x3230] = 0x5C4B; 
-unicode_map[0x3231] = 0x61B6; unicode_map[0x3232] = 0x81C6; 
-unicode_map[0x3233] = 0x6876; unicode_map[0x3234] = 0x7261; 
-unicode_map[0x3235] = 0x4E59; unicode_map[0x3236] = 0x4FFA; 
-unicode_map[0x3237] = 0x5378; unicode_map[0x3238] = 0x6069; 
-unicode_map[0x3239] = 0x6E29; unicode_map[0x323A] = 0x7A4F; 
-unicode_map[0x323B] = 0x97F3; unicode_map[0x323C] = 0x4E0B; 
-unicode_map[0x323D] = 0x5316; unicode_map[0x323E] = 0x4EEE; 
-unicode_map[0x323F] = 0x4F55; unicode_map[0x3240] = 0x4F3D; 
-unicode_map[0x3241] = 0x4FA1; unicode_map[0x3242] = 0x4F73; 
-unicode_map[0x3243] = 0x52A0; unicode_map[0x3244] = 0x53EF; 
-unicode_map[0x3245] = 0x5609; unicode_map[0x3246] = 0x590F; 
-unicode_map[0x3247] = 0x5AC1; unicode_map[0x3248] = 0x5BB6; 
-unicode_map[0x3249] = 0x5BE1; unicode_map[0x324A] = 0x79D1; 
-unicode_map[0x324B] = 0x6687; unicode_map[0x324C] = 0x679C; 
-unicode_map[0x324D] = 0x67B6; unicode_map[0x324E] = 0x6B4C; 
-unicode_map[0x324F] = 0x6CB3; unicode_map[0x3250] = 0x706B; 
-unicode_map[0x3251] = 0x73C2; unicode_map[0x3252] = 0x798D; 
-unicode_map[0x3253] = 0x79BE; unicode_map[0x3254] = 0x7A3C; 
-unicode_map[0x3255] = 0x7B87; unicode_map[0x3256] = 0x82B1; 
-unicode_map[0x3257] = 0x82DB; unicode_map[0x3258] = 0x8304; 
-unicode_map[0x3259] = 0x8377; unicode_map[0x325A] = 0x83EF; 
-unicode_map[0x325B] = 0x83D3; unicode_map[0x325C] = 0x8766; 
-unicode_map[0x325D] = 0x8AB2; unicode_map[0x325E] = 0x5629; 
-unicode_map[0x325F] = 0x8CA8; unicode_map[0x3260] = 0x8FE6; 
-unicode_map[0x3261] = 0x904E; unicode_map[0x3262] = 0x971E; 
-unicode_map[0x3263] = 0x868A; unicode_map[0x3264] = 0x4FC4; 
-unicode_map[0x3265] = 0x5CE8; unicode_map[0x3266] = 0x6211; 
-unicode_map[0x3267] = 0x7259; unicode_map[0x3268] = 0x753B; 
-unicode_map[0x3269] = 0x81E5; unicode_map[0x326A] = 0x82BD; 
-unicode_map[0x326B] = 0x86FE; unicode_map[0x326C] = 0x8CC0; 
-unicode_map[0x326D] = 0x96C5; unicode_map[0x326E] = 0x9913; 
-unicode_map[0x326F] = 0x99D5; unicode_map[0x3270] = 0x4ECB; 
-unicode_map[0x3271] = 0x4F1A; unicode_map[0x3272] = 0x89E3; 
-unicode_map[0x3273] = 0x56DE; unicode_map[0x3274] = 0x584A; 
-unicode_map[0x3275] = 0x58CA; unicode_map[0x3276] = 0x5EFB; 
-unicode_map[0x3277] = 0x5FEB; unicode_map[0x3278] = 0x602A; 
-unicode_map[0x3279] = 0x6094; unicode_map[0x327A] = 0x6062; 
-unicode_map[0x327B] = 0x61D0; unicode_map[0x327C] = 0x6212; 
-unicode_map[0x327D] = 0x62D0; unicode_map[0x327E] = 0x6539; 
-unicode_map[0x3321] = 0x9B41; unicode_map[0x3322] = 0x6666; 
-unicode_map[0x3323] = 0x68B0; unicode_map[0x3324] = 0x6D77; 
-unicode_map[0x3325] = 0x7070; unicode_map[0x3326] = 0x754C; 
-unicode_map[0x3327] = 0x7686; unicode_map[0x3328] = 0x7D75; 
-unicode_map[0x3329] = 0x82A5; unicode_map[0x332A] = 0x87F9; 
-unicode_map[0x332B] = 0x958B; unicode_map[0x332C] = 0x968E; 
-unicode_map[0x332D] = 0x8C9D; unicode_map[0x332E] = 0x51F1; 
-unicode_map[0x332F] = 0x52BE; unicode_map[0x3330] = 0x5916; 
-unicode_map[0x3331] = 0x54B3; unicode_map[0x3332] = 0x5BB3; 
-unicode_map[0x3333] = 0x5D16; unicode_map[0x3334] = 0x6168; 
-unicode_map[0x3335] = 0x6982; unicode_map[0x3336] = 0x6DAF; 
-unicode_map[0x3337] = 0x788D; unicode_map[0x3338] = 0x84CB; 
-unicode_map[0x3339] = 0x8857; unicode_map[0x333A] = 0x8A72; 
-unicode_map[0x333B] = 0x93A7; unicode_map[0x333C] = 0x9AB8; 
-unicode_map[0x333D] = 0x6D6C; unicode_map[0x333E] = 0x99A8; 
-unicode_map[0x333F] = 0x86D9; unicode_map[0x3340] = 0x57A3; 
-unicode_map[0x3341] = 0x67FF; unicode_map[0x3342] = 0x86CE; 
-unicode_map[0x3343] = 0x920E; unicode_map[0x3344] = 0x5283; 
-unicode_map[0x3345] = 0x5687; unicode_map[0x3346] = 0x5404; 
-unicode_map[0x3347] = 0x5ED3; unicode_map[0x3348] = 0x62E1; 
-unicode_map[0x3349] = 0x64B9; unicode_map[0x334A] = 0x683C; 
-unicode_map[0x334B] = 0x6838; unicode_map[0x334C] = 0x6BBB; 
-unicode_map[0x334D] = 0x7372; unicode_map[0x334E] = 0x78BA; 
-unicode_map[0x334F] = 0x7A6B; unicode_map[0x3350] = 0x899A; 
-unicode_map[0x3351] = 0x89D2; unicode_map[0x3352] = 0x8D6B; 
-unicode_map[0x3353] = 0x8F03; unicode_map[0x3354] = 0x90ED; 
-unicode_map[0x3355] = 0x95A3; unicode_map[0x3356] = 0x9694; 
-unicode_map[0x3357] = 0x9769; unicode_map[0x3358] = 0x5B66; 
-unicode_map[0x3359] = 0x5CB3; unicode_map[0x335A] = 0x697D; 
-unicode_map[0x335B] = 0x984D; unicode_map[0x335C] = 0x984E; 
-unicode_map[0x335D] = 0x639B; unicode_map[0x335E] = 0x7B20; 
-unicode_map[0x335F] = 0x6A2B; unicode_map[0x3360] = 0x6A7F; 
-unicode_map[0x3361] = 0x68B6; unicode_map[0x3362] = 0x9C0D; 
-unicode_map[0x3363] = 0x6F5F; unicode_map[0x3364] = 0x5272; 
-unicode_map[0x3365] = 0x559D; unicode_map[0x3366] = 0x6070; 
-unicode_map[0x3367] = 0x62EC; unicode_map[0x3368] = 0x6D3B; 
-unicode_map[0x3369] = 0x6E07; unicode_map[0x336A] = 0x6ED1; 
-unicode_map[0x336B] = 0x845B; unicode_map[0x336C] = 0x8910; 
-unicode_map[0x336D] = 0x8F44; unicode_map[0x336E] = 0x4E14; 
-unicode_map[0x336F] = 0x9C39; unicode_map[0x3370] = 0x53F6; 
-unicode_map[0x3371] = 0x691B; unicode_map[0x3372] = 0x6A3A; 
-unicode_map[0x3373] = 0x9784; unicode_map[0x3374] = 0x682A; 
-unicode_map[0x3375] = 0x515C; unicode_map[0x3376] = 0x7AC3; 
-unicode_map[0x3377] = 0x84B2; unicode_map[0x3378] = 0x91DC; 
-unicode_map[0x3379] = 0x938C; unicode_map[0x337A] = 0x565B; 
-unicode_map[0x337B] = 0x9D28; unicode_map[0x337C] = 0x6822; 
-unicode_map[0x337D] = 0x8305; unicode_map[0x337E] = 0x8431; 
-unicode_map[0x3421] = 0x7CA5; unicode_map[0x3422] = 0x5208; 
-unicode_map[0x3423] = 0x82C5; unicode_map[0x3424] = 0x74E6; 
-unicode_map[0x3425] = 0x4E7E; unicode_map[0x3426] = 0x4F83; 
-unicode_map[0x3427] = 0x51A0; unicode_map[0x3428] = 0x5BD2; 
-unicode_map[0x3429] = 0x520A; unicode_map[0x342A] = 0x52D8; 
-unicode_map[0x342B] = 0x52E7; unicode_map[0x342C] = 0x5DFB; 
-unicode_map[0x342D] = 0x559A; unicode_map[0x342E] = 0x582A; 
-unicode_map[0x342F] = 0x59E6; unicode_map[0x3430] = 0x5B8C; 
-unicode_map[0x3431] = 0x5B98; unicode_map[0x3432] = 0x5BDB; 
-unicode_map[0x3433] = 0x5E72; unicode_map[0x3434] = 0x5E79; 
-unicode_map[0x3435] = 0x60A3; unicode_map[0x3436] = 0x611F; 
-unicode_map[0x3437] = 0x6163; unicode_map[0x3438] = 0x61BE; 
-unicode_map[0x3439] = 0x63DB; unicode_map[0x343A] = 0x6562; 
-unicode_map[0x343B] = 0x67D1; unicode_map[0x343C] = 0x6853; 
-unicode_map[0x343D] = 0x68FA; unicode_map[0x343E] = 0x6B3E; 
-unicode_map[0x343F] = 0x6B53; unicode_map[0x3440] = 0x6C57; 
-unicode_map[0x3441] = 0x6F22; unicode_map[0x3442] = 0x6F97; 
-unicode_map[0x3443] = 0x6F45; unicode_map[0x3444] = 0x74B0; 
-unicode_map[0x3445] = 0x7518; unicode_map[0x3446] = 0x76E3; 
-unicode_map[0x3447] = 0x770B; unicode_map[0x3448] = 0x7AFF; 
-unicode_map[0x3449] = 0x7BA1; unicode_map[0x344A] = 0x7C21; 
-unicode_map[0x344B] = 0x7DE9; unicode_map[0x344C] = 0x7F36; 
-unicode_map[0x344D] = 0x7FF0; unicode_map[0x344E] = 0x809D; 
-unicode_map[0x344F] = 0x8266; unicode_map[0x3450] = 0x839E; 
-unicode_map[0x3451] = 0x89B3; unicode_map[0x3452] = 0x8ACC; 
-unicode_map[0x3453] = 0x8CAB; unicode_map[0x3454] = 0x9084; 
-unicode_map[0x3455] = 0x9451; unicode_map[0x3456] = 0x9593; 
-unicode_map[0x3457] = 0x9591; unicode_map[0x3458] = 0x95A2; 
-unicode_map[0x3459] = 0x9665; unicode_map[0x345A] = 0x97D3; 
-unicode_map[0x345B] = 0x9928; unicode_map[0x345C] = 0x8218; 
-unicode_map[0x345D] = 0x4E38; unicode_map[0x345E] = 0x542B; 
-unicode_map[0x345F] = 0x5CB8; unicode_map[0x3460] = 0x5DCC; 
-unicode_map[0x3461] = 0x73A9; unicode_map[0x3462] = 0x764C; 
-unicode_map[0x3463] = 0x773C; unicode_map[0x3464] = 0x5CA9; 
-unicode_map[0x3465] = 0x7FEB; unicode_map[0x3466] = 0x8D0B; 
-unicode_map[0x3467] = 0x96C1; unicode_map[0x3468] = 0x9811; 
-unicode_map[0x3469] = 0x9854; unicode_map[0x346A] = 0x9858; 
-unicode_map[0x346B] = 0x4F01; unicode_map[0x346C] = 0x4F0E; 
-unicode_map[0x346D] = 0x5371; unicode_map[0x346E] = 0x559C; 
-unicode_map[0x346F] = 0x5668; unicode_map[0x3470] = 0x57FA; 
-unicode_map[0x3471] = 0x5947; unicode_map[0x3472] = 0x5B09; 
-unicode_map[0x3473] = 0x5BC4; unicode_map[0x3474] = 0x5C90; 
-unicode_map[0x3475] = 0x5E0C; unicode_map[0x3476] = 0x5E7E; 
-unicode_map[0x3477] = 0x5FCC; unicode_map[0x3478] = 0x63EE; 
-unicode_map[0x3479] = 0x673A; unicode_map[0x347A] = 0x65D7; 
-unicode_map[0x347B] = 0x65E2; unicode_map[0x347C] = 0x671F; 
-unicode_map[0x347D] = 0x68CB; unicode_map[0x347E] = 0x68C4; 
-unicode_map[0x3521] = 0x6A5F; unicode_map[0x3522] = 0x5E30; 
-unicode_map[0x3523] = 0x6BC5; unicode_map[0x3524] = 0x6C17; 
-unicode_map[0x3525] = 0x6C7D; unicode_map[0x3526] = 0x757F; 
-unicode_map[0x3527] = 0x7948; unicode_map[0x3528] = 0x5B63; 
-unicode_map[0x3529] = 0x7A00; unicode_map[0x352A] = 0x7D00; 
-unicode_map[0x352B] = 0x5FBD; unicode_map[0x352C] = 0x898F; 
-unicode_map[0x352D] = 0x8A18; unicode_map[0x352E] = 0x8CB4; 
-unicode_map[0x352F] = 0x8D77; unicode_map[0x3530] = 0x8ECC; 
-unicode_map[0x3531] = 0x8F1D; unicode_map[0x3532] = 0x98E2; 
-unicode_map[0x3533] = 0x9A0E; unicode_map[0x3534] = 0x9B3C; 
-unicode_map[0x3535] = 0x4E80; unicode_map[0x3536] = 0x507D; 
-unicode_map[0x3537] = 0x5100; unicode_map[0x3538] = 0x5993; 
-unicode_map[0x3539] = 0x5B9C; unicode_map[0x353A] = 0x622F; 
-unicode_map[0x353B] = 0x6280; unicode_map[0x353C] = 0x64EC; 
-unicode_map[0x353D] = 0x6B3A; unicode_map[0x353E] = 0x72A0; 
-unicode_map[0x353F] = 0x7591; unicode_map[0x3540] = 0x7947; 
-unicode_map[0x3541] = 0x7FA9; unicode_map[0x3542] = 0x87FB; 
-unicode_map[0x3543] = 0x8ABC; unicode_map[0x3544] = 0x8B70; 
-unicode_map[0x3545] = 0x63AC; unicode_map[0x3546] = 0x83CA; 
-unicode_map[0x3547] = 0x97A0; unicode_map[0x3548] = 0x5409; 
-unicode_map[0x3549] = 0x5403; unicode_map[0x354A] = 0x55AB; 
-unicode_map[0x354B] = 0x6854; unicode_map[0x354C] = 0x6A58; 
-unicode_map[0x354D] = 0x8A70; unicode_map[0x354E] = 0x7827; 
-unicode_map[0x354F] = 0x6775; unicode_map[0x3550] = 0x9ECD; 
-unicode_map[0x3551] = 0x5374; unicode_map[0x3552] = 0x5BA2; 
-unicode_map[0x3553] = 0x811A; unicode_map[0x3554] = 0x8650; 
-unicode_map[0x3555] = 0x9006; unicode_map[0x3556] = 0x4E18; 
-unicode_map[0x3557] = 0x4E45; unicode_map[0x3558] = 0x4EC7; 
-unicode_map[0x3559] = 0x4F11; unicode_map[0x355A] = 0x53CA; 
-unicode_map[0x355B] = 0x5438; unicode_map[0x355C] = 0x5BAE; 
-unicode_map[0x355D] = 0x5F13; unicode_map[0x355E] = 0x6025; 
-unicode_map[0x355F] = 0x6551; unicode_map[0x3560] = 0x673D; 
-unicode_map[0x3561] = 0x6C42; unicode_map[0x3562] = 0x6C72; 
-unicode_map[0x3563] = 0x6CE3; unicode_map[0x3564] = 0x7078; 
-unicode_map[0x3565] = 0x7403; unicode_map[0x3566] = 0x7A76; 
-unicode_map[0x3567] = 0x7AAE; unicode_map[0x3568] = 0x7B08; 
-unicode_map[0x3569] = 0x7D1A; unicode_map[0x356A] = 0x7CFE; 
-unicode_map[0x356B] = 0x7D66; unicode_map[0x356C] = 0x65E7; 
-unicode_map[0x356D] = 0x725B; unicode_map[0x356E] = 0x53BB; 
-unicode_map[0x356F] = 0x5C45; unicode_map[0x3570] = 0x5DE8; 
-unicode_map[0x3571] = 0x62D2; unicode_map[0x3572] = 0x62E0; 
-unicode_map[0x3573] = 0x6319; unicode_map[0x3574] = 0x6E20; 
-unicode_map[0x3575] = 0x865A; unicode_map[0x3576] = 0x8A31; 
-unicode_map[0x3577] = 0x8DDD; unicode_map[0x3578] = 0x92F8; 
-unicode_map[0x3579] = 0x6F01; unicode_map[0x357A] = 0x79A6; 
-unicode_map[0x357B] = 0x9B5A; unicode_map[0x357C] = 0x4EA8; 
-unicode_map[0x357D] = 0x4EAB; unicode_map[0x357E] = 0x4EAC; 
-unicode_map[0x3621] = 0x4F9B; unicode_map[0x3622] = 0x4FA0; 
-unicode_map[0x3623] = 0x50D1; unicode_map[0x3624] = 0x5147; 
-unicode_map[0x3625] = 0x7AF6; unicode_map[0x3626] = 0x5171; 
-unicode_map[0x3627] = 0x51F6; unicode_map[0x3628] = 0x5354; 
-unicode_map[0x3629] = 0x5321; unicode_map[0x362A] = 0x537F; 
-unicode_map[0x362B] = 0x53EB; unicode_map[0x362C] = 0x55AC; 
-unicode_map[0x362D] = 0x5883; unicode_map[0x362E] = 0x5CE1; 
-unicode_map[0x362F] = 0x5F37; unicode_map[0x3630] = 0x5F4A; 
-unicode_map[0x3631] = 0x602F; unicode_map[0x3632] = 0x6050; 
-unicode_map[0x3633] = 0x606D; unicode_map[0x3634] = 0x631F; 
-unicode_map[0x3635] = 0x6559; unicode_map[0x3636] = 0x6A4B; 
-unicode_map[0x3637] = 0x6CC1; unicode_map[0x3638] = 0x72C2; 
-unicode_map[0x3639] = 0x72ED; unicode_map[0x363A] = 0x77EF; 
-unicode_map[0x363B] = 0x80F8; unicode_map[0x363C] = 0x8105; 
-unicode_map[0x363D] = 0x8208; unicode_map[0x363E] = 0x854E; 
-unicode_map[0x363F] = 0x90F7; unicode_map[0x3640] = 0x93E1; 
-unicode_map[0x3641] = 0x97FF; unicode_map[0x3642] = 0x9957; 
-unicode_map[0x3643] = 0x9A5A; unicode_map[0x3644] = 0x4EF0; 
-unicode_map[0x3645] = 0x51DD; unicode_map[0x3646] = 0x5C2D; 
-unicode_map[0x3647] = 0x6681; unicode_map[0x3648] = 0x696D; 
-unicode_map[0x3649] = 0x5C40; unicode_map[0x364A] = 0x66F2; 
-unicode_map[0x364B] = 0x6975; unicode_map[0x364C] = 0x7389; 
-unicode_map[0x364D] = 0x6850; unicode_map[0x364E] = 0x7C81; 
-unicode_map[0x364F] = 0x50C5; unicode_map[0x3650] = 0x52E4; 
-unicode_map[0x3651] = 0x5747; unicode_map[0x3652] = 0x5DFE; 
-unicode_map[0x3653] = 0x9326; unicode_map[0x3654] = 0x65A4; 
-unicode_map[0x3655] = 0x6B23; unicode_map[0x3656] = 0x6B3D; 
-unicode_map[0x3657] = 0x7434; unicode_map[0x3658] = 0x7981; 
-unicode_map[0x3659] = 0x79BD; unicode_map[0x365A] = 0x7B4B; 
-unicode_map[0x365B] = 0x7DCA; unicode_map[0x365C] = 0x82B9; 
-unicode_map[0x365D] = 0x83CC; unicode_map[0x365E] = 0x887F; 
-unicode_map[0x365F] = 0x895F; unicode_map[0x3660] = 0x8B39; 
-unicode_map[0x3661] = 0x8FD1; unicode_map[0x3662] = 0x91D1; 
-unicode_map[0x3663] = 0x541F; unicode_map[0x3664] = 0x9280; 
-unicode_map[0x3665] = 0x4E5D; unicode_map[0x3666] = 0x5036; 
-unicode_map[0x3667] = 0x53E5; unicode_map[0x3668] = 0x533A; 
-unicode_map[0x3669] = 0x72D7; unicode_map[0x366A] = 0x7396; 
-unicode_map[0x366B] = 0x77E9; unicode_map[0x366C] = 0x82E6; 
-unicode_map[0x366D] = 0x8EAF; unicode_map[0x366E] = 0x99C6; 
-unicode_map[0x366F] = 0x99C8; unicode_map[0x3670] = 0x99D2; 
-unicode_map[0x3671] = 0x5177; unicode_map[0x3672] = 0x611A; 
-unicode_map[0x3673] = 0x865E; unicode_map[0x3674] = 0x55B0; 
-unicode_map[0x3675] = 0x7A7A; unicode_map[0x3676] = 0x5076; 
-unicode_map[0x3677] = 0x5BD3; unicode_map[0x3678] = 0x9047; 
-unicode_map[0x3679] = 0x9685; unicode_map[0x367A] = 0x4E32; 
-unicode_map[0x367B] = 0x6ADB; unicode_map[0x367C] = 0x91E7; 
-unicode_map[0x367D] = 0x5C51; unicode_map[0x367E] = 0x5C48; 
-unicode_map[0x3721] = 0x6398; unicode_map[0x3722] = 0x7A9F; 
-unicode_map[0x3723] = 0x6C93; unicode_map[0x3724] = 0x9774; 
-unicode_map[0x3725] = 0x8F61; unicode_map[0x3726] = 0x7AAA; 
-unicode_map[0x3727] = 0x718A; unicode_map[0x3728] = 0x9688; 
-unicode_map[0x3729] = 0x7C82; unicode_map[0x372A] = 0x6817; 
-unicode_map[0x372B] = 0x7E70; unicode_map[0x372C] = 0x6851; 
-unicode_map[0x372D] = 0x936C; unicode_map[0x372E] = 0x52F2; 
-unicode_map[0x372F] = 0x541B; unicode_map[0x3730] = 0x85AB; 
-unicode_map[0x3731] = 0x8A13; unicode_map[0x3732] = 0x7FA4; 
-unicode_map[0x3733] = 0x8ECD; unicode_map[0x3734] = 0x90E1; 
-unicode_map[0x3735] = 0x5366; unicode_map[0x3736] = 0x8888; 
-unicode_map[0x3737] = 0x7941; unicode_map[0x3738] = 0x4FC2; 
-unicode_map[0x3739] = 0x50BE; unicode_map[0x373A] = 0x5211; 
-unicode_map[0x373B] = 0x5144; unicode_map[0x373C] = 0x5553; 
-unicode_map[0x373D] = 0x572D; unicode_map[0x373E] = 0x73EA; 
-unicode_map[0x373F] = 0x578B; unicode_map[0x3740] = 0x5951; 
-unicode_map[0x3741] = 0x5F62; unicode_map[0x3742] = 0x5F84; 
-unicode_map[0x3743] = 0x6075; unicode_map[0x3744] = 0x6176; 
-unicode_map[0x3745] = 0x6167; unicode_map[0x3746] = 0x61A9; 
-unicode_map[0x3747] = 0x63B2; unicode_map[0x3748] = 0x643A; 
-unicode_map[0x3749] = 0x656C; unicode_map[0x374A] = 0x666F; 
-unicode_map[0x374B] = 0x6842; unicode_map[0x374C] = 0x6E13; 
-unicode_map[0x374D] = 0x7566; unicode_map[0x374E] = 0x7A3D; 
-unicode_map[0x374F] = 0x7CFB; unicode_map[0x3750] = 0x7D4C; 
-unicode_map[0x3751] = 0x7D99; unicode_map[0x3752] = 0x7E4B; 
-unicode_map[0x3753] = 0x7F6B; unicode_map[0x3754] = 0x830E; 
-unicode_map[0x3755] = 0x834A; unicode_map[0x3756] = 0x86CD; 
-unicode_map[0x3757] = 0x8A08; unicode_map[0x3758] = 0x8A63; 
-unicode_map[0x3759] = 0x8B66; unicode_map[0x375A] = 0x8EFD; 
-unicode_map[0x375B] = 0x981A; unicode_map[0x375C] = 0x9D8F; 
-unicode_map[0x375D] = 0x82B8; unicode_map[0x375E] = 0x8FCE; 
-unicode_map[0x375F] = 0x9BE8; unicode_map[0x3760] = 0x5287; 
-unicode_map[0x3761] = 0x621F; unicode_map[0x3762] = 0x6483; 
-unicode_map[0x3763] = 0x6FC0; unicode_map[0x3764] = 0x9699; 
-unicode_map[0x3765] = 0x6841; unicode_map[0x3766] = 0x5091; 
-unicode_map[0x3767] = 0x6B20; unicode_map[0x3768] = 0x6C7A; 
-unicode_map[0x3769] = 0x6F54; unicode_map[0x376A] = 0x7A74; 
-unicode_map[0x376B] = 0x7D50; unicode_map[0x376C] = 0x8840; 
-unicode_map[0x376D] = 0x8A23; unicode_map[0x376E] = 0x6708; 
-unicode_map[0x376F] = 0x4EF6; unicode_map[0x3770] = 0x5039; 
-unicode_map[0x3771] = 0x5026; unicode_map[0x3772] = 0x5065; 
-unicode_map[0x3773] = 0x517C; unicode_map[0x3774] = 0x5238; 
-unicode_map[0x3775] = 0x5263; unicode_map[0x3776] = 0x55A7; 
-unicode_map[0x3777] = 0x570F; unicode_map[0x3778] = 0x5805; 
-unicode_map[0x3779] = 0x5ACC; unicode_map[0x377A] = 0x5EFA; 
-unicode_map[0x377B] = 0x61B2; unicode_map[0x377C] = 0x61F8; 
-unicode_map[0x377D] = 0x62F3; unicode_map[0x377E] = 0x6372; 
-unicode_map[0x3821] = 0x691C; unicode_map[0x3822] = 0x6A29; 
-unicode_map[0x3823] = 0x727D; unicode_map[0x3824] = 0x72AC; 
-unicode_map[0x3825] = 0x732E; unicode_map[0x3826] = 0x7814; 
-unicode_map[0x3827] = 0x786F; unicode_map[0x3828] = 0x7D79; 
-unicode_map[0x3829] = 0x770C; unicode_map[0x382A] = 0x80A9; 
-unicode_map[0x382B] = 0x898B; unicode_map[0x382C] = 0x8B19; 
-unicode_map[0x382D] = 0x8CE2; unicode_map[0x382E] = 0x8ED2; 
-unicode_map[0x382F] = 0x9063; unicode_map[0x3830] = 0x9375; 
-unicode_map[0x3831] = 0x967A; unicode_map[0x3832] = 0x9855; 
-unicode_map[0x3833] = 0x9A13; unicode_map[0x3834] = 0x9E78; 
-unicode_map[0x3835] = 0x5143; unicode_map[0x3836] = 0x539F; 
-unicode_map[0x3837] = 0x53B3; unicode_map[0x3838] = 0x5E7B; 
-unicode_map[0x3839] = 0x5F26; unicode_map[0x383A] = 0x6E1B; 
-unicode_map[0x383B] = 0x6E90; unicode_map[0x383C] = 0x7384; 
-unicode_map[0x383D] = 0x73FE; unicode_map[0x383E] = 0x7D43; 
-unicode_map[0x383F] = 0x8237; unicode_map[0x3840] = 0x8A00; 
-unicode_map[0x3841] = 0x8AFA; unicode_map[0x3842] = 0x9650; 
-unicode_map[0x3843] = 0x4E4E; unicode_map[0x3844] = 0x500B; 
-unicode_map[0x3845] = 0x53E4; unicode_map[0x3846] = 0x547C; 
-unicode_map[0x3847] = 0x56FA; unicode_map[0x3848] = 0x59D1; 
-unicode_map[0x3849] = 0x5B64; unicode_map[0x384A] = 0x5DF1; 
-unicode_map[0x384B] = 0x5EAB; unicode_map[0x384C] = 0x5F27; 
-unicode_map[0x384D] = 0x6238; unicode_map[0x384E] = 0x6545; 
-unicode_map[0x384F] = 0x67AF; unicode_map[0x3850] = 0x6E56; 
-unicode_map[0x3851] = 0x72D0; unicode_map[0x3852] = 0x7CCA; 
-unicode_map[0x3853] = 0x88B4; unicode_map[0x3854] = 0x80A1; 
-unicode_map[0x3855] = 0x80E1; unicode_map[0x3856] = 0x83F0; 
-unicode_map[0x3857] = 0x864E; unicode_map[0x3858] = 0x8A87; 
-unicode_map[0x3859] = 0x8DE8; unicode_map[0x385A] = 0x9237; 
-unicode_map[0x385B] = 0x96C7; unicode_map[0x385C] = 0x9867; 
-unicode_map[0x385D] = 0x9F13; unicode_map[0x385E] = 0x4E94; 
-unicode_map[0x385F] = 0x4E92; unicode_map[0x3860] = 0x4F0D; 
-unicode_map[0x3861] = 0x5348; unicode_map[0x3862] = 0x5449; 
-unicode_map[0x3863] = 0x543E; unicode_map[0x3864] = 0x5A2F; 
-unicode_map[0x3865] = 0x5F8C; unicode_map[0x3866] = 0x5FA1; 
-unicode_map[0x3867] = 0x609F; unicode_map[0x3868] = 0x68A7; 
-unicode_map[0x3869] = 0x6A8E; unicode_map[0x386A] = 0x745A; 
-unicode_map[0x386B] = 0x7881; unicode_map[0x386C] = 0x8A9E; 
-unicode_map[0x386D] = 0x8AA4; unicode_map[0x386E] = 0x8B77; 
-unicode_map[0x386F] = 0x9190; unicode_map[0x3870] = 0x4E5E; 
-unicode_map[0x3871] = 0x9BC9; unicode_map[0x3872] = 0x4EA4; 
-unicode_map[0x3873] = 0x4F7C; unicode_map[0x3874] = 0x4FAF; 
-unicode_map[0x3875] = 0x5019; unicode_map[0x3876] = 0x5016; 
-unicode_map[0x3877] = 0x5149; unicode_map[0x3878] = 0x516C; 
-unicode_map[0x3879] = 0x529F; unicode_map[0x387A] = 0x52B9; 
-unicode_map[0x387B] = 0x52FE; unicode_map[0x387C] = 0x539A; 
-unicode_map[0x387D] = 0x53E3; unicode_map[0x387E] = 0x5411; 
-unicode_map[0x3921] = 0x540E; unicode_map[0x3922] = 0x5589; 
-unicode_map[0x3923] = 0x5751; unicode_map[0x3924] = 0x57A2; 
-unicode_map[0x3925] = 0x597D; unicode_map[0x3926] = 0x5B54; 
-unicode_map[0x3927] = 0x5B5D; unicode_map[0x3928] = 0x5B8F; 
-unicode_map[0x3929] = 0x5DE5; unicode_map[0x392A] = 0x5DE7; 
-unicode_map[0x392B] = 0x5DF7; unicode_map[0x392C] = 0x5E78; 
-unicode_map[0x392D] = 0x5E83; unicode_map[0x392E] = 0x5E9A; 
-unicode_map[0x392F] = 0x5EB7; unicode_map[0x3930] = 0x5F18; 
-unicode_map[0x3931] = 0x6052; unicode_map[0x3932] = 0x614C; 
-unicode_map[0x3933] = 0x6297; unicode_map[0x3934] = 0x62D8; 
-unicode_map[0x3935] = 0x63A7; unicode_map[0x3936] = 0x653B; 
-unicode_map[0x3937] = 0x6602; unicode_map[0x3938] = 0x6643; 
-unicode_map[0x3939] = 0x66F4; unicode_map[0x393A] = 0x676D; 
-unicode_map[0x393B] = 0x6821; unicode_map[0x393C] = 0x6897; 
-unicode_map[0x393D] = 0x69CB; unicode_map[0x393E] = 0x6C5F; 
-unicode_map[0x393F] = 0x6D2A; unicode_map[0x3940] = 0x6D69; 
-unicode_map[0x3941] = 0x6E2F; unicode_map[0x3942] = 0x6E9D; 
-unicode_map[0x3943] = 0x7532; unicode_map[0x3944] = 0x7687; 
-unicode_map[0x3945] = 0x786C; unicode_map[0x3946] = 0x7A3F; 
-unicode_map[0x3947] = 0x7CE0; unicode_map[0x3948] = 0x7D05; 
-unicode_map[0x3949] = 0x7D18; unicode_map[0x394A] = 0x7D5E; 
-unicode_map[0x394B] = 0x7DB1; unicode_map[0x394C] = 0x8015; 
-unicode_map[0x394D] = 0x8003; unicode_map[0x394E] = 0x80AF; 
-unicode_map[0x394F] = 0x80B1; unicode_map[0x3950] = 0x8154; 
-unicode_map[0x3951] = 0x818F; unicode_map[0x3952] = 0x822A; 
-unicode_map[0x3953] = 0x8352; unicode_map[0x3954] = 0x884C; 
-unicode_map[0x3955] = 0x8861; unicode_map[0x3956] = 0x8B1B; 
-unicode_map[0x3957] = 0x8CA2; unicode_map[0x3958] = 0x8CFC; 
-unicode_map[0x3959] = 0x90CA; unicode_map[0x395A] = 0x9175; 
-unicode_map[0x395B] = 0x9271; unicode_map[0x395C] = 0x783F; 
-unicode_map[0x395D] = 0x92FC; unicode_map[0x395E] = 0x95A4; 
-unicode_map[0x395F] = 0x964D; unicode_map[0x3960] = 0x9805; 
-unicode_map[0x3961] = 0x9999; unicode_map[0x3962] = 0x9AD8; 
-unicode_map[0x3963] = 0x9D3B; unicode_map[0x3964] = 0x525B; 
-unicode_map[0x3965] = 0x52AB; unicode_map[0x3966] = 0x53F7; 
-unicode_map[0x3967] = 0x5408; unicode_map[0x3968] = 0x58D5; 
-unicode_map[0x3969] = 0x62F7; unicode_map[0x396A] = 0x6FE0; 
-unicode_map[0x396B] = 0x8C6A; unicode_map[0x396C] = 0x8F5F; 
-unicode_map[0x396D] = 0x9EB9; unicode_map[0x396E] = 0x514B; 
-unicode_map[0x396F] = 0x523B; unicode_map[0x3970] = 0x544A; 
-unicode_map[0x3971] = 0x56FD; unicode_map[0x3972] = 0x7A40; 
-unicode_map[0x3973] = 0x9177; unicode_map[0x3974] = 0x9D60; 
-unicode_map[0x3975] = 0x9ED2; unicode_map[0x3976] = 0x7344; 
-unicode_map[0x3977] = 0x6F09; unicode_map[0x3978] = 0x8170; 
-unicode_map[0x3979] = 0x7511; unicode_map[0x397A] = 0x5FFD; 
-unicode_map[0x397B] = 0x60DA; unicode_map[0x397C] = 0x9AA8; 
-unicode_map[0x397D] = 0x72DB; unicode_map[0x397E] = 0x8FBC; 
-unicode_map[0x3A21] = 0x6B64; unicode_map[0x3A22] = 0x9803; 
-unicode_map[0x3A23] = 0x4ECA; unicode_map[0x3A24] = 0x56F0; 
-unicode_map[0x3A25] = 0x5764; unicode_map[0x3A26] = 0x58BE; 
-unicode_map[0x3A27] = 0x5A5A; unicode_map[0x3A28] = 0x6068; 
-unicode_map[0x3A29] = 0x61C7; unicode_map[0x3A2A] = 0x660F; 
-unicode_map[0x3A2B] = 0x6606; unicode_map[0x3A2C] = 0x6839; 
-unicode_map[0x3A2D] = 0x68B1; unicode_map[0x3A2E] = 0x6DF7; 
-unicode_map[0x3A2F] = 0x75D5; unicode_map[0x3A30] = 0x7D3A; 
-unicode_map[0x3A31] = 0x826E; unicode_map[0x3A32] = 0x9B42; 
-unicode_map[0x3A33] = 0x4E9B; unicode_map[0x3A34] = 0x4F50; 
-unicode_map[0x3A35] = 0x53C9; unicode_map[0x3A36] = 0x5506; 
-unicode_map[0x3A37] = 0x5D6F; unicode_map[0x3A38] = 0x5DE6; 
-unicode_map[0x3A39] = 0x5DEE; unicode_map[0x3A3A] = 0x67FB; 
-unicode_map[0x3A3B] = 0x6C99; unicode_map[0x3A3C] = 0x7473; 
-unicode_map[0x3A3D] = 0x7802; unicode_map[0x3A3E] = 0x8A50; 
-unicode_map[0x3A3F] = 0x9396; unicode_map[0x3A40] = 0x88DF; 
-unicode_map[0x3A41] = 0x5750; unicode_map[0x3A42] = 0x5EA7; 
-unicode_map[0x3A43] = 0x632B; unicode_map[0x3A44] = 0x50B5; 
-unicode_map[0x3A45] = 0x50AC; unicode_map[0x3A46] = 0x518D; 
-unicode_map[0x3A47] = 0x6700; unicode_map[0x3A48] = 0x54C9; 
-unicode_map[0x3A49] = 0x585E; unicode_map[0x3A4A] = 0x59BB; 
-unicode_map[0x3A4B] = 0x5BB0; unicode_map[0x3A4C] = 0x5F69; 
-unicode_map[0x3A4D] = 0x624D; unicode_map[0x3A4E] = 0x63A1; 
-unicode_map[0x3A4F] = 0x683D; unicode_map[0x3A50] = 0x6B73; 
-unicode_map[0x3A51] = 0x6E08; unicode_map[0x3A52] = 0x707D; 
-unicode_map[0x3A53] = 0x91C7; unicode_map[0x3A54] = 0x7280; 
-unicode_map[0x3A55] = 0x7815; unicode_map[0x3A56] = 0x7826; 
-unicode_map[0x3A57] = 0x796D; unicode_map[0x3A58] = 0x658E; 
-unicode_map[0x3A59] = 0x7D30; unicode_map[0x3A5A] = 0x83DC; 
-unicode_map[0x3A5B] = 0x88C1; unicode_map[0x3A5C] = 0x8F09; 
-unicode_map[0x3A5D] = 0x969B; unicode_map[0x3A5E] = 0x5264; 
-unicode_map[0x3A5F] = 0x5728; unicode_map[0x3A60] = 0x6750; 
-unicode_map[0x3A61] = 0x7F6A; unicode_map[0x3A62] = 0x8CA1; 
-unicode_map[0x3A63] = 0x51B4; unicode_map[0x3A64] = 0x5742; 
-unicode_map[0x3A65] = 0x962A; unicode_map[0x3A66] = 0x583A; 
-unicode_map[0x3A67] = 0x698A; unicode_map[0x3A68] = 0x80B4; 
-unicode_map[0x3A69] = 0x54B2; unicode_map[0x3A6A] = 0x5D0E; 
-unicode_map[0x3A6B] = 0x57FC; unicode_map[0x3A6C] = 0x7895; 
-unicode_map[0x3A6D] = 0x9DFA; unicode_map[0x3A6E] = 0x4F5C; 
-unicode_map[0x3A6F] = 0x524A; unicode_map[0x3A70] = 0x548B; 
-unicode_map[0x3A71] = 0x643E; unicode_map[0x3A72] = 0x6628; 
-unicode_map[0x3A73] = 0x6714; unicode_map[0x3A74] = 0x67F5; 
-unicode_map[0x3A75] = 0x7A84; unicode_map[0x3A76] = 0x7B56; 
-unicode_map[0x3A77] = 0x7D22; unicode_map[0x3A78] = 0x932F; 
-unicode_map[0x3A79] = 0x685C; unicode_map[0x3A7A] = 0x9BAD; 
-unicode_map[0x3A7B] = 0x7B39; unicode_map[0x3A7C] = 0x5319; 
-unicode_map[0x3A7D] = 0x518A; unicode_map[0x3A7E] = 0x5237; 
-unicode_map[0x3B21] = 0x5BDF; unicode_map[0x3B22] = 0x62F6; 
-unicode_map[0x3B23] = 0x64AE; unicode_map[0x3B24] = 0x64E6; 
-unicode_map[0x3B25] = 0x672D; unicode_map[0x3B26] = 0x6BBA; 
-unicode_map[0x3B27] = 0x85A9; unicode_map[0x3B28] = 0x96D1; 
-unicode_map[0x3B29] = 0x7690; unicode_map[0x3B2A] = 0x9BD6; 
-unicode_map[0x3B2B] = 0x634C; unicode_map[0x3B2C] = 0x9306; 
-unicode_map[0x3B2D] = 0x9BAB; unicode_map[0x3B2E] = 0x76BF; 
-unicode_map[0x3B2F] = 0x6652; unicode_map[0x3B30] = 0x4E09; 
-unicode_map[0x3B31] = 0x5098; unicode_map[0x3B32] = 0x53C2; 
-unicode_map[0x3B33] = 0x5C71; unicode_map[0x3B34] = 0x60E8; 
-unicode_map[0x3B35] = 0x6492; unicode_map[0x3B36] = 0x6563; 
-unicode_map[0x3B37] = 0x685F; unicode_map[0x3B38] = 0x71E6; 
-unicode_map[0x3B39] = 0x73CA; unicode_map[0x3B3A] = 0x7523; 
-unicode_map[0x3B3B] = 0x7B97; unicode_map[0x3B3C] = 0x7E82; 
-unicode_map[0x3B3D] = 0x8695; unicode_map[0x3B3E] = 0x8B83; 
-unicode_map[0x3B3F] = 0x8CDB; unicode_map[0x3B40] = 0x9178; 
-unicode_map[0x3B41] = 0x9910; unicode_map[0x3B42] = 0x65AC; 
-unicode_map[0x3B43] = 0x66AB; unicode_map[0x3B44] = 0x6B8B; 
-unicode_map[0x3B45] = 0x4ED5; unicode_map[0x3B46] = 0x4ED4; 
-unicode_map[0x3B47] = 0x4F3A; unicode_map[0x3B48] = 0x4F7F; 
-unicode_map[0x3B49] = 0x523A; unicode_map[0x3B4A] = 0x53F8; 
-unicode_map[0x3B4B] = 0x53F2; unicode_map[0x3B4C] = 0x55E3; 
-unicode_map[0x3B4D] = 0x56DB; unicode_map[0x3B4E] = 0x58EB; 
-unicode_map[0x3B4F] = 0x59CB; unicode_map[0x3B50] = 0x59C9; 
-unicode_map[0x3B51] = 0x59FF; unicode_map[0x3B52] = 0x5B50; 
-unicode_map[0x3B53] = 0x5C4D; unicode_map[0x3B54] = 0x5E02; 
-unicode_map[0x3B55] = 0x5E2B; unicode_map[0x3B56] = 0x5FD7; 
-unicode_map[0x3B57] = 0x601D; unicode_map[0x3B58] = 0x6307; 
-unicode_map[0x3B59] = 0x652F; unicode_map[0x3B5A] = 0x5B5C; 
-unicode_map[0x3B5B] = 0x65AF; unicode_map[0x3B5C] = 0x65BD; 
-unicode_map[0x3B5D] = 0x65E8; unicode_map[0x3B5E] = 0x679D; 
-unicode_map[0x3B5F] = 0x6B62; unicode_map[0x3B60] = 0x6B7B; 
-unicode_map[0x3B61] = 0x6C0F; unicode_map[0x3B62] = 0x7345; 
-unicode_map[0x3B63] = 0x7949; unicode_map[0x3B64] = 0x79C1; 
-unicode_map[0x3B65] = 0x7CF8; unicode_map[0x3B66] = 0x7D19; 
-unicode_map[0x3B67] = 0x7D2B; unicode_map[0x3B68] = 0x80A2; 
-unicode_map[0x3B69] = 0x8102; unicode_map[0x3B6A] = 0x81F3; 
-unicode_map[0x3B6B] = 0x8996; unicode_map[0x3B6C] = 0x8A5E; 
-unicode_map[0x3B6D] = 0x8A69; unicode_map[0x3B6E] = 0x8A66; 
-unicode_map[0x3B6F] = 0x8A8C; unicode_map[0x3B70] = 0x8AEE; 
-unicode_map[0x3B71] = 0x8CC7; unicode_map[0x3B72] = 0x8CDC; 
-unicode_map[0x3B73] = 0x96CC; unicode_map[0x3B74] = 0x98FC; 
-unicode_map[0x3B75] = 0x6B6F; unicode_map[0x3B76] = 0x4E8B; 
-unicode_map[0x3B77] = 0x4F3C; unicode_map[0x3B78] = 0x4F8D; 
-unicode_map[0x3B79] = 0x5150; unicode_map[0x3B7A] = 0x5B57; 
-unicode_map[0x3B7B] = 0x5BFA; unicode_map[0x3B7C] = 0x6148; 
-unicode_map[0x3B7D] = 0x6301; unicode_map[0x3B7E] = 0x6642; 
-unicode_map[0x3C21] = 0x6B21; unicode_map[0x3C22] = 0x6ECB; 
-unicode_map[0x3C23] = 0x6CBB; unicode_map[0x3C24] = 0x723E; 
-unicode_map[0x3C25] = 0x74BD; unicode_map[0x3C26] = 0x75D4; 
-unicode_map[0x3C27] = 0x78C1; unicode_map[0x3C28] = 0x793A; 
-unicode_map[0x3C29] = 0x800C; unicode_map[0x3C2A] = 0x8033; 
-unicode_map[0x3C2B] = 0x81EA; unicode_map[0x3C2C] = 0x8494; 
-unicode_map[0x3C2D] = 0x8F9E; unicode_map[0x3C2E] = 0x6C50; 
-unicode_map[0x3C2F] = 0x9E7F; unicode_map[0x3C30] = 0x5F0F; 
-unicode_map[0x3C31] = 0x8B58; unicode_map[0x3C32] = 0x9D2B; 
-unicode_map[0x3C33] = 0x7AFA; unicode_map[0x3C34] = 0x8EF8; 
-unicode_map[0x3C35] = 0x5B8D; unicode_map[0x3C36] = 0x96EB; 
-unicode_map[0x3C37] = 0x4E03; unicode_map[0x3C38] = 0x53F1; 
-unicode_map[0x3C39] = 0x57F7; unicode_map[0x3C3A] = 0x5931; 
-unicode_map[0x3C3B] = 0x5AC9; unicode_map[0x3C3C] = 0x5BA4; 
-unicode_map[0x3C3D] = 0x6089; unicode_map[0x3C3E] = 0x6E7F; 
-unicode_map[0x3C3F] = 0x6F06; unicode_map[0x3C40] = 0x75BE; 
-unicode_map[0x3C41] = 0x8CEA; unicode_map[0x3C42] = 0x5B9F; 
-unicode_map[0x3C43] = 0x8500; unicode_map[0x3C44] = 0x7BE0; 
-unicode_map[0x3C45] = 0x5072; unicode_map[0x3C46] = 0x67F4; 
-unicode_map[0x3C47] = 0x829D; unicode_map[0x3C48] = 0x5C61; 
-unicode_map[0x3C49] = 0x854A; unicode_map[0x3C4A] = 0x7E1E; 
-unicode_map[0x3C4B] = 0x820E; unicode_map[0x3C4C] = 0x5199; 
-unicode_map[0x3C4D] = 0x5C04; unicode_map[0x3C4E] = 0x6368; 
-unicode_map[0x3C4F] = 0x8D66; unicode_map[0x3C50] = 0x659C; 
-unicode_map[0x3C51] = 0x716E; unicode_map[0x3C52] = 0x793E; 
-unicode_map[0x3C53] = 0x7D17; unicode_map[0x3C54] = 0x8005; 
-unicode_map[0x3C55] = 0x8B1D; unicode_map[0x3C56] = 0x8ECA; 
-unicode_map[0x3C57] = 0x906E; unicode_map[0x3C58] = 0x86C7; 
-unicode_map[0x3C59] = 0x90AA; unicode_map[0x3C5A] = 0x501F; 
-unicode_map[0x3C5B] = 0x52FA; unicode_map[0x3C5C] = 0x5C3A; 
-unicode_map[0x3C5D] = 0x6753; unicode_map[0x3C5E] = 0x707C; 
-unicode_map[0x3C5F] = 0x7235; unicode_map[0x3C60] = 0x914C; 
-unicode_map[0x3C61] = 0x91C8; unicode_map[0x3C62] = 0x932B; 
-unicode_map[0x3C63] = 0x82E5; unicode_map[0x3C64] = 0x5BC2; 
-unicode_map[0x3C65] = 0x5F31; unicode_map[0x3C66] = 0x60F9; 
-unicode_map[0x3C67] = 0x4E3B; unicode_map[0x3C68] = 0x53D6; 
-unicode_map[0x3C69] = 0x5B88; unicode_map[0x3C6A] = 0x624B; 
-unicode_map[0x3C6B] = 0x6731; unicode_map[0x3C6C] = 0x6B8A; 
-unicode_map[0x3C6D] = 0x72E9; unicode_map[0x3C6E] = 0x73E0; 
-unicode_map[0x3C6F] = 0x7A2E; unicode_map[0x3C70] = 0x816B; 
-unicode_map[0x3C71] = 0x8DA3; unicode_map[0x3C72] = 0x9152; 
-unicode_map[0x3C73] = 0x9996; unicode_map[0x3C74] = 0x5112; 
-unicode_map[0x3C75] = 0x53D7; unicode_map[0x3C76] = 0x546A; 
-unicode_map[0x3C77] = 0x5BFF; unicode_map[0x3C78] = 0x6388; 
-unicode_map[0x3C79] = 0x6A39; unicode_map[0x3C7A] = 0x7DAC; 
-unicode_map[0x3C7B] = 0x9700; unicode_map[0x3C7C] = 0x56DA; 
-unicode_map[0x3C7D] = 0x53CE; unicode_map[0x3C7E] = 0x5468; 
-unicode_map[0x3D21] = 0x5B97; unicode_map[0x3D22] = 0x5C31; 
-unicode_map[0x3D23] = 0x5DDE; unicode_map[0x3D24] = 0x4FEE; 
-unicode_map[0x3D25] = 0x6101; unicode_map[0x3D26] = 0x62FE; 
-unicode_map[0x3D27] = 0x6D32; unicode_map[0x3D28] = 0x79C0; 
-unicode_map[0x3D29] = 0x79CB; unicode_map[0x3D2A] = 0x7D42; 
-unicode_map[0x3D2B] = 0x7E4D; unicode_map[0x3D2C] = 0x7FD2; 
-unicode_map[0x3D2D] = 0x81ED; unicode_map[0x3D2E] = 0x821F; 
-unicode_map[0x3D2F] = 0x8490; unicode_map[0x3D30] = 0x8846; 
-unicode_map[0x3D31] = 0x8972; unicode_map[0x3D32] = 0x8B90; 
-unicode_map[0x3D33] = 0x8E74; unicode_map[0x3D34] = 0x8F2F; 
-unicode_map[0x3D35] = 0x9031; unicode_map[0x3D36] = 0x914B; 
-unicode_map[0x3D37] = 0x916C; unicode_map[0x3D38] = 0x96C6; 
-unicode_map[0x3D39] = 0x919C; unicode_map[0x3D3A] = 0x4EC0; 
-unicode_map[0x3D3B] = 0x4F4F; unicode_map[0x3D3C] = 0x5145; 
-unicode_map[0x3D3D] = 0x5341; unicode_map[0x3D3E] = 0x5F93; 
-unicode_map[0x3D3F] = 0x620E; unicode_map[0x3D40] = 0x67D4; 
-unicode_map[0x3D41] = 0x6C41; unicode_map[0x3D42] = 0x6E0B; 
-unicode_map[0x3D43] = 0x7363; unicode_map[0x3D44] = 0x7E26; 
-unicode_map[0x3D45] = 0x91CD; unicode_map[0x3D46] = 0x9283; 
-unicode_map[0x3D47] = 0x53D4; unicode_map[0x3D48] = 0x5919; 
-unicode_map[0x3D49] = 0x5BBF; unicode_map[0x3D4A] = 0x6DD1; 
-unicode_map[0x3D4B] = 0x795D; unicode_map[0x3D4C] = 0x7E2E; 
-unicode_map[0x3D4D] = 0x7C9B; unicode_map[0x3D4E] = 0x587E; 
-unicode_map[0x3D4F] = 0x719F; unicode_map[0x3D50] = 0x51FA; 
-unicode_map[0x3D51] = 0x8853; unicode_map[0x3D52] = 0x8FF0; 
-unicode_map[0x3D53] = 0x4FCA; unicode_map[0x3D54] = 0x5CFB; 
-unicode_map[0x3D55] = 0x6625; unicode_map[0x3D56] = 0x77AC; 
-unicode_map[0x3D57] = 0x7AE3; unicode_map[0x3D58] = 0x821C; 
-unicode_map[0x3D59] = 0x99FF; unicode_map[0x3D5A] = 0x51C6; 
-unicode_map[0x3D5B] = 0x5FAA; unicode_map[0x3D5C] = 0x65EC; 
-unicode_map[0x3D5D] = 0x696F; unicode_map[0x3D5E] = 0x6B89; 
-unicode_map[0x3D5F] = 0x6DF3; unicode_map[0x3D60] = 0x6E96; 
-unicode_map[0x3D61] = 0x6F64; unicode_map[0x3D62] = 0x76FE; 
-unicode_map[0x3D63] = 0x7D14; unicode_map[0x3D64] = 0x5DE1; 
-unicode_map[0x3D65] = 0x9075; unicode_map[0x3D66] = 0x9187; 
-unicode_map[0x3D67] = 0x9806; unicode_map[0x3D68] = 0x51E6; 
-unicode_map[0x3D69] = 0x521D; unicode_map[0x3D6A] = 0x6240; 
-unicode_map[0x3D6B] = 0x6691; unicode_map[0x3D6C] = 0x66D9; 
-unicode_map[0x3D6D] = 0x6E1A; unicode_map[0x3D6E] = 0x5EB6; 
-unicode_map[0x3D6F] = 0x7DD2; unicode_map[0x3D70] = 0x7F72; 
-unicode_map[0x3D71] = 0x66F8; unicode_map[0x3D72] = 0x85AF; 
-unicode_map[0x3D73] = 0x85F7; unicode_map[0x3D74] = 0x8AF8; 
-unicode_map[0x3D75] = 0x52A9; unicode_map[0x3D76] = 0x53D9; 
-unicode_map[0x3D77] = 0x5973; unicode_map[0x3D78] = 0x5E8F; 
-unicode_map[0x3D79] = 0x5F90; unicode_map[0x3D7A] = 0x6055; 
-unicode_map[0x3D7B] = 0x92E4; unicode_map[0x3D7C] = 0x9664; 
-unicode_map[0x3D7D] = 0x50B7; unicode_map[0x3D7E] = 0x511F; 
-unicode_map[0x3E21] = 0x52DD; unicode_map[0x3E22] = 0x5320; 
-unicode_map[0x3E23] = 0x5347; unicode_map[0x3E24] = 0x53EC; 
-unicode_map[0x3E25] = 0x54E8; unicode_map[0x3E26] = 0x5546; 
-unicode_map[0x3E27] = 0x5531; unicode_map[0x3E28] = 0x5617; 
-unicode_map[0x3E29] = 0x5968; unicode_map[0x3E2A] = 0x59BE; 
-unicode_map[0x3E2B] = 0x5A3C; unicode_map[0x3E2C] = 0x5BB5; 
-unicode_map[0x3E2D] = 0x5C06; unicode_map[0x3E2E] = 0x5C0F; 
-unicode_map[0x3E2F] = 0x5C11; unicode_map[0x3E30] = 0x5C1A; 
-unicode_map[0x3E31] = 0x5E84; unicode_map[0x3E32] = 0x5E8A; 
-unicode_map[0x3E33] = 0x5EE0; unicode_map[0x3E34] = 0x5F70; 
-unicode_map[0x3E35] = 0x627F; unicode_map[0x3E36] = 0x6284; 
-unicode_map[0x3E37] = 0x62DB; unicode_map[0x3E38] = 0x638C; 
-unicode_map[0x3E39] = 0x6377; unicode_map[0x3E3A] = 0x6607; 
-unicode_map[0x3E3B] = 0x660C; unicode_map[0x3E3C] = 0x662D; 
-unicode_map[0x3E3D] = 0x6676; unicode_map[0x3E3E] = 0x677E; 
-unicode_map[0x3E3F] = 0x68A2; unicode_map[0x3E40] = 0x6A1F; 
-unicode_map[0x3E41] = 0x6A35; unicode_map[0x3E42] = 0x6CBC; 
-unicode_map[0x3E43] = 0x6D88; unicode_map[0x3E44] = 0x6E09; 
-unicode_map[0x3E45] = 0x6E58; unicode_map[0x3E46] = 0x713C; 
-unicode_map[0x3E47] = 0x7126; unicode_map[0x3E48] = 0x7167; 
-unicode_map[0x3E49] = 0x75C7; unicode_map[0x3E4A] = 0x7701; 
-unicode_map[0x3E4B] = 0x785D; unicode_map[0x3E4C] = 0x7901; 
-unicode_map[0x3E4D] = 0x7965; unicode_map[0x3E4E] = 0x79F0; 
-unicode_map[0x3E4F] = 0x7AE0; unicode_map[0x3E50] = 0x7B11; 
-unicode_map[0x3E51] = 0x7CA7; unicode_map[0x3E52] = 0x7D39; 
-unicode_map[0x3E53] = 0x8096; unicode_map[0x3E54] = 0x83D6; 
-unicode_map[0x3E55] = 0x848B; unicode_map[0x3E56] = 0x8549; 
-unicode_map[0x3E57] = 0x885D; unicode_map[0x3E58] = 0x88F3; 
-unicode_map[0x3E59] = 0x8A1F; unicode_map[0x3E5A] = 0x8A3C; 
-unicode_map[0x3E5B] = 0x8A54; unicode_map[0x3E5C] = 0x8A73; 
-unicode_map[0x3E5D] = 0x8C61; unicode_map[0x3E5E] = 0x8CDE; 
-unicode_map[0x3E5F] = 0x91A4; unicode_map[0x3E60] = 0x9266; 
-unicode_map[0x3E61] = 0x937E; unicode_map[0x3E62] = 0x9418; 
-unicode_map[0x3E63] = 0x969C; unicode_map[0x3E64] = 0x9798; 
-unicode_map[0x3E65] = 0x4E0A; unicode_map[0x3E66] = 0x4E08; 
-unicode_map[0x3E67] = 0x4E1E; unicode_map[0x3E68] = 0x4E57; 
-unicode_map[0x3E69] = 0x5197; unicode_map[0x3E6A] = 0x5270; 
-unicode_map[0x3E6B] = 0x57CE; unicode_map[0x3E6C] = 0x5834; 
-unicode_map[0x3E6D] = 0x58CC; unicode_map[0x3E6E] = 0x5B22; 
-unicode_map[0x3E6F] = 0x5E38; unicode_map[0x3E70] = 0x60C5; 
-unicode_map[0x3E71] = 0x64FE; unicode_map[0x3E72] = 0x6761; 
-unicode_map[0x3E73] = 0x6756; unicode_map[0x3E74] = 0x6D44; 
-unicode_map[0x3E75] = 0x72B6; unicode_map[0x3E76] = 0x7573; 
-unicode_map[0x3E77] = 0x7A63; unicode_map[0x3E78] = 0x84B8; 
-unicode_map[0x3E79] = 0x8B72; unicode_map[0x3E7A] = 0x91B8; 
-unicode_map[0x3E7B] = 0x9320; unicode_map[0x3E7C] = 0x5631; 
-unicode_map[0x3E7D] = 0x57F4; unicode_map[0x3E7E] = 0x98FE; 
-unicode_map[0x3F21] = 0x62ED; unicode_map[0x3F22] = 0x690D; 
-unicode_map[0x3F23] = 0x6B96; unicode_map[0x3F24] = 0x71ED; 
-unicode_map[0x3F25] = 0x7E54; unicode_map[0x3F26] = 0x8077; 
-unicode_map[0x3F27] = 0x8272; unicode_map[0x3F28] = 0x89E6; 
-unicode_map[0x3F29] = 0x98DF; unicode_map[0x3F2A] = 0x8755; 
-unicode_map[0x3F2B] = 0x8FB1; unicode_map[0x3F2C] = 0x5C3B; 
-unicode_map[0x3F2D] = 0x4F38; unicode_map[0x3F2E] = 0x4FE1; 
-unicode_map[0x3F2F] = 0x4FB5; unicode_map[0x3F30] = 0x5507; 
-unicode_map[0x3F31] = 0x5A20; unicode_map[0x3F32] = 0x5BDD; 
-unicode_map[0x3F33] = 0x5BE9; unicode_map[0x3F34] = 0x5FC3; 
-unicode_map[0x3F35] = 0x614E; unicode_map[0x3F36] = 0x632F; 
-unicode_map[0x3F37] = 0x65B0; unicode_map[0x3F38] = 0x664B; 
-unicode_map[0x3F39] = 0x68EE; unicode_map[0x3F3A] = 0x699B; 
-unicode_map[0x3F3B] = 0x6D78; unicode_map[0x3F3C] = 0x6DF1; 
-unicode_map[0x3F3D] = 0x7533; unicode_map[0x3F3E] = 0x75B9; 
-unicode_map[0x3F3F] = 0x771F; unicode_map[0x3F40] = 0x795E; 
-unicode_map[0x3F41] = 0x79E6; unicode_map[0x3F42] = 0x7D33; 
-unicode_map[0x3F43] = 0x81E3; unicode_map[0x3F44] = 0x82AF; 
-unicode_map[0x3F45] = 0x85AA; unicode_map[0x3F46] = 0x89AA; 
-unicode_map[0x3F47] = 0x8A3A; unicode_map[0x3F48] = 0x8EAB; 
-unicode_map[0x3F49] = 0x8F9B; unicode_map[0x3F4A] = 0x9032; 
-unicode_map[0x3F4B] = 0x91DD; unicode_map[0x3F4C] = 0x9707; 
-unicode_map[0x3F4D] = 0x4EBA; unicode_map[0x3F4E] = 0x4EC1; 
-unicode_map[0x3F4F] = 0x5203; unicode_map[0x3F50] = 0x5875; 
-unicode_map[0x3F51] = 0x58EC; unicode_map[0x3F52] = 0x5C0B; 
-unicode_map[0x3F53] = 0x751A; unicode_map[0x3F54] = 0x5C3D; 
-unicode_map[0x3F55] = 0x814E; unicode_map[0x3F56] = 0x8A0A; 
-unicode_map[0x3F57] = 0x8FC5; unicode_map[0x3F58] = 0x9663; 
-unicode_map[0x3F59] = 0x976D; unicode_map[0x3F5A] = 0x7B25; 
-unicode_map[0x3F5B] = 0x8ACF; unicode_map[0x3F5C] = 0x9808; 
-unicode_map[0x3F5D] = 0x9162; unicode_map[0x3F5E] = 0x56F3; 
-unicode_map[0x3F5F] = 0x53A8; unicode_map[0x3F60] = 0x9017; 
-unicode_map[0x3F61] = 0x5439; unicode_map[0x3F62] = 0x5782; 
-unicode_map[0x3F63] = 0x5E25; unicode_map[0x3F64] = 0x63A8; 
-unicode_map[0x3F65] = 0x6C34; unicode_map[0x3F66] = 0x708A; 
-unicode_map[0x3F67] = 0x7761; unicode_map[0x3F68] = 0x7C8B; 
-unicode_map[0x3F69] = 0x7FE0; unicode_map[0x3F6A] = 0x8870; 
-unicode_map[0x3F6B] = 0x9042; unicode_map[0x3F6C] = 0x9154; 
-unicode_map[0x3F6D] = 0x9310; unicode_map[0x3F6E] = 0x9318; 
-unicode_map[0x3F6F] = 0x968F; unicode_map[0x3F70] = 0x745E; 
-unicode_map[0x3F71] = 0x9AC4; unicode_map[0x3F72] = 0x5D07; 
-unicode_map[0x3F73] = 0x5D69; unicode_map[0x3F74] = 0x6570; 
-unicode_map[0x3F75] = 0x67A2; unicode_map[0x3F76] = 0x8DA8; 
-unicode_map[0x3F77] = 0x96DB; unicode_map[0x3F78] = 0x636E; 
-unicode_map[0x3F79] = 0x6749; unicode_map[0x3F7A] = 0x6919; 
-unicode_map[0x3F7B] = 0x83C5; unicode_map[0x3F7C] = 0x9817; 
-unicode_map[0x3F7D] = 0x96C0; unicode_map[0x3F7E] = 0x88FE; 
-unicode_map[0x4021] = 0x6F84; unicode_map[0x4022] = 0x647A; 
-unicode_map[0x4023] = 0x5BF8; unicode_map[0x4024] = 0x4E16; 
-unicode_map[0x4025] = 0x702C; unicode_map[0x4026] = 0x755D; 
-unicode_map[0x4027] = 0x662F; unicode_map[0x4028] = 0x51C4; 
-unicode_map[0x4029] = 0x5236; unicode_map[0x402A] = 0x52E2; 
-unicode_map[0x402B] = 0x59D3; unicode_map[0x402C] = 0x5F81; 
-unicode_map[0x402D] = 0x6027; unicode_map[0x402E] = 0x6210; 
-unicode_map[0x402F] = 0x653F; unicode_map[0x4030] = 0x6574; 
-unicode_map[0x4031] = 0x661F; unicode_map[0x4032] = 0x6674; 
-unicode_map[0x4033] = 0x68F2; unicode_map[0x4034] = 0x6816; 
-unicode_map[0x4035] = 0x6B63; unicode_map[0x4036] = 0x6E05; 
-unicode_map[0x4037] = 0x7272; unicode_map[0x4038] = 0x751F; 
-unicode_map[0x4039] = 0x76DB; unicode_map[0x403A] = 0x7CBE; 
-unicode_map[0x403B] = 0x8056; unicode_map[0x403C] = 0x58F0; 
-unicode_map[0x403D] = 0x88FD; unicode_map[0x403E] = 0x897F; 
-unicode_map[0x403F] = 0x8AA0; unicode_map[0x4040] = 0x8A93; 
-unicode_map[0x4041] = 0x8ACB; unicode_map[0x4042] = 0x901D; 
-unicode_map[0x4043] = 0x9192; unicode_map[0x4044] = 0x9752; 
-unicode_map[0x4045] = 0x9759; unicode_map[0x4046] = 0x6589; 
-unicode_map[0x4047] = 0x7A0E; unicode_map[0x4048] = 0x8106; 
-unicode_map[0x4049] = 0x96BB; unicode_map[0x404A] = 0x5E2D; 
-unicode_map[0x404B] = 0x60DC; unicode_map[0x404C] = 0x621A; 
-unicode_map[0x404D] = 0x65A5; unicode_map[0x404E] = 0x6614; 
-unicode_map[0x404F] = 0x6790; unicode_map[0x4050] = 0x77F3; 
-unicode_map[0x4051] = 0x7A4D; unicode_map[0x4052] = 0x7C4D; 
-unicode_map[0x4053] = 0x7E3E; unicode_map[0x4054] = 0x810A; 
-unicode_map[0x4055] = 0x8CAC; unicode_map[0x4056] = 0x8D64; 
-unicode_map[0x4057] = 0x8DE1; unicode_map[0x4058] = 0x8E5F; 
-unicode_map[0x4059] = 0x78A9; unicode_map[0x405A] = 0x5207; 
-unicode_map[0x405B] = 0x62D9; unicode_map[0x405C] = 0x63A5; 
-unicode_map[0x405D] = 0x6442; unicode_map[0x405E] = 0x6298; 
-unicode_map[0x405F] = 0x8A2D; unicode_map[0x4060] = 0x7A83; 
-unicode_map[0x4061] = 0x7BC0; unicode_map[0x4062] = 0x8AAC; 
-unicode_map[0x4063] = 0x96EA; unicode_map[0x4064] = 0x7D76; 
-unicode_map[0x4065] = 0x820C; unicode_map[0x4066] = 0x8749; 
-unicode_map[0x4067] = 0x4ED9; unicode_map[0x4068] = 0x5148; 
-unicode_map[0x4069] = 0x5343; unicode_map[0x406A] = 0x5360; 
-unicode_map[0x406B] = 0x5BA3; unicode_map[0x406C] = 0x5C02; 
-unicode_map[0x406D] = 0x5C16; unicode_map[0x406E] = 0x5DDD; 
-unicode_map[0x406F] = 0x6226; unicode_map[0x4070] = 0x6247; 
-unicode_map[0x4071] = 0x64B0; unicode_map[0x4072] = 0x6813; 
-unicode_map[0x4073] = 0x6834; unicode_map[0x4074] = 0x6CC9; 
-unicode_map[0x4075] = 0x6D45; unicode_map[0x4076] = 0x6D17; 
-unicode_map[0x4077] = 0x67D3; unicode_map[0x4078] = 0x6F5C; 
-unicode_map[0x4079] = 0x714E; unicode_map[0x407A] = 0x717D; 
-unicode_map[0x407B] = 0x65CB; unicode_map[0x407C] = 0x7A7F; 
-unicode_map[0x407D] = 0x7BAD; unicode_map[0x407E] = 0x7DDA; 
-unicode_map[0x4121] = 0x7E4A; unicode_map[0x4122] = 0x7FA8; 
-unicode_map[0x4123] = 0x817A; unicode_map[0x4124] = 0x821B; 
-unicode_map[0x4125] = 0x8239; unicode_map[0x4126] = 0x85A6; 
-unicode_map[0x4127] = 0x8A6E; unicode_map[0x4128] = 0x8CCE; 
-unicode_map[0x4129] = 0x8DF5; unicode_map[0x412A] = 0x9078; 
-unicode_map[0x412B] = 0x9077; unicode_map[0x412C] = 0x92AD; 
-unicode_map[0x412D] = 0x9291; unicode_map[0x412E] = 0x9583; 
-unicode_map[0x412F] = 0x9BAE; unicode_map[0x4130] = 0x524D; 
-unicode_map[0x4131] = 0x5584; unicode_map[0x4132] = 0x6F38; 
-unicode_map[0x4133] = 0x7136; unicode_map[0x4134] = 0x5168; 
-unicode_map[0x4135] = 0x7985; unicode_map[0x4136] = 0x7E55; 
-unicode_map[0x4137] = 0x81B3; unicode_map[0x4138] = 0x7CCE; 
-unicode_map[0x4139] = 0x564C; unicode_map[0x413A] = 0x5851; 
-unicode_map[0x413B] = 0x5CA8; unicode_map[0x413C] = 0x63AA; 
-unicode_map[0x413D] = 0x66FE; unicode_map[0x413E] = 0x66FD; 
-unicode_map[0x413F] = 0x695A; unicode_map[0x4140] = 0x72D9; 
-unicode_map[0x4141] = 0x758F; unicode_map[0x4142] = 0x758E; 
-unicode_map[0x4143] = 0x790E; unicode_map[0x4144] = 0x7956; 
-unicode_map[0x4145] = 0x79DF; unicode_map[0x4146] = 0x7C97; 
-unicode_map[0x4147] = 0x7D20; unicode_map[0x4148] = 0x7D44; 
-unicode_map[0x4149] = 0x8607; unicode_map[0x414A] = 0x8A34; 
-unicode_map[0x414B] = 0x963B; unicode_map[0x414C] = 0x9061; 
-unicode_map[0x414D] = 0x9F20; unicode_map[0x414E] = 0x50E7; 
-unicode_map[0x414F] = 0x5275; unicode_map[0x4150] = 0x53CC; 
-unicode_map[0x4151] = 0x53E2; unicode_map[0x4152] = 0x5009; 
-unicode_map[0x4153] = 0x55AA; unicode_map[0x4154] = 0x58EE; 
-unicode_map[0x4155] = 0x594F; unicode_map[0x4156] = 0x723D; 
-unicode_map[0x4157] = 0x5B8B; unicode_map[0x4158] = 0x5C64; 
-unicode_map[0x4159] = 0x531D; unicode_map[0x415A] = 0x60E3; 
-unicode_map[0x415B] = 0x60F3; unicode_map[0x415C] = 0x635C; 
-unicode_map[0x415D] = 0x6383; unicode_map[0x415E] = 0x633F; 
-unicode_map[0x415F] = 0x63BB; unicode_map[0x4160] = 0x64CD; 
-unicode_map[0x4161] = 0x65E9; unicode_map[0x4162] = 0x66F9; 
-unicode_map[0x4163] = 0x5DE3; unicode_map[0x4164] = 0x69CD; 
-unicode_map[0x4165] = 0x69FD; unicode_map[0x4166] = 0x6F15; 
-unicode_map[0x4167] = 0x71E5; unicode_map[0x4168] = 0x4E89; 
-unicode_map[0x4169] = 0x75E9; unicode_map[0x416A] = 0x76F8; 
-unicode_map[0x416B] = 0x7A93; unicode_map[0x416C] = 0x7CDF; 
-unicode_map[0x416D] = 0x7DCF; unicode_map[0x416E] = 0x7D9C; 
-unicode_map[0x416F] = 0x8061; unicode_map[0x4170] = 0x8349; 
-unicode_map[0x4171] = 0x8358; unicode_map[0x4172] = 0x846C; 
-unicode_map[0x4173] = 0x84BC; unicode_map[0x4174] = 0x85FB; 
-unicode_map[0x4175] = 0x88C5; unicode_map[0x4176] = 0x8D70; 
-unicode_map[0x4177] = 0x9001; unicode_map[0x4178] = 0x906D; 
-unicode_map[0x4179] = 0x9397; unicode_map[0x417A] = 0x971C; 
-unicode_map[0x417B] = 0x9A12; unicode_map[0x417C] = 0x50CF; 
-unicode_map[0x417D] = 0x5897; unicode_map[0x417E] = 0x618E; 
-unicode_map[0x4221] = 0x81D3; unicode_map[0x4222] = 0x8535; 
-unicode_map[0x4223] = 0x8D08; unicode_map[0x4224] = 0x9020; 
-unicode_map[0x4225] = 0x4FC3; unicode_map[0x4226] = 0x5074; 
-unicode_map[0x4227] = 0x5247; unicode_map[0x4228] = 0x5373; 
-unicode_map[0x4229] = 0x606F; unicode_map[0x422A] = 0x6349; 
-unicode_map[0x422B] = 0x675F; unicode_map[0x422C] = 0x6E2C; 
-unicode_map[0x422D] = 0x8DB3; unicode_map[0x422E] = 0x901F; 
-unicode_map[0x422F] = 0x4FD7; unicode_map[0x4230] = 0x5C5E; 
-unicode_map[0x4231] = 0x8CCA; unicode_map[0x4232] = 0x65CF; 
-unicode_map[0x4233] = 0x7D9A; unicode_map[0x4234] = 0x5352; 
-unicode_map[0x4235] = 0x8896; unicode_map[0x4236] = 0x5176; 
-unicode_map[0x4237] = 0x63C3; unicode_map[0x4238] = 0x5B58; 
-unicode_map[0x4239] = 0x5B6B; unicode_map[0x423A] = 0x5C0A; 
-unicode_map[0x423B] = 0x640D; unicode_map[0x423C] = 0x6751; 
-unicode_map[0x423D] = 0x905C; unicode_map[0x423E] = 0x4ED6; 
-unicode_map[0x423F] = 0x591A; unicode_map[0x4240] = 0x592A; 
-unicode_map[0x4241] = 0x6C70; unicode_map[0x4242] = 0x8A51; 
-unicode_map[0x4243] = 0x553E; unicode_map[0x4244] = 0x5815; 
-unicode_map[0x4245] = 0x59A5; unicode_map[0x4246] = 0x60F0; 
-unicode_map[0x4247] = 0x6253; unicode_map[0x4248] = 0x67C1; 
-unicode_map[0x4249] = 0x8235; unicode_map[0x424A] = 0x6955; 
-unicode_map[0x424B] = 0x9640; unicode_map[0x424C] = 0x99C4; 
-unicode_map[0x424D] = 0x9A28; unicode_map[0x424E] = 0x4F53; 
-unicode_map[0x424F] = 0x5806; unicode_map[0x4250] = 0x5BFE; 
-unicode_map[0x4251] = 0x8010; unicode_map[0x4252] = 0x5CB1; 
-unicode_map[0x4253] = 0x5E2F; unicode_map[0x4254] = 0x5F85; 
-unicode_map[0x4255] = 0x6020; unicode_map[0x4256] = 0x614B; 
-unicode_map[0x4257] = 0x6234; unicode_map[0x4258] = 0x66FF; 
-unicode_map[0x4259] = 0x6CF0; unicode_map[0x425A] = 0x6EDE; 
-unicode_map[0x425B] = 0x80CE; unicode_map[0x425C] = 0x817F; 
-unicode_map[0x425D] = 0x82D4; unicode_map[0x425E] = 0x888B; 
-unicode_map[0x425F] = 0x8CB8; unicode_map[0x4260] = 0x9000; 
-unicode_map[0x4261] = 0x902E; unicode_map[0x4262] = 0x968A; 
-unicode_map[0x4263] = 0x9EDB; unicode_map[0x4264] = 0x9BDB; 
-unicode_map[0x4265] = 0x4EE3; unicode_map[0x4266] = 0x53F0; 
-unicode_map[0x4267] = 0x5927; unicode_map[0x4268] = 0x7B2C; 
-unicode_map[0x4269] = 0x918D; unicode_map[0x426A] = 0x984C; 
-unicode_map[0x426B] = 0x9DF9; unicode_map[0x426C] = 0x6EDD; 
-unicode_map[0x426D] = 0x7027; unicode_map[0x426E] = 0x5353; 
-unicode_map[0x426F] = 0x5544; unicode_map[0x4270] = 0x5B85; 
-unicode_map[0x4271] = 0x6258; unicode_map[0x4272] = 0x629E; 
-unicode_map[0x4273] = 0x62D3; unicode_map[0x4274] = 0x6CA2; 
-unicode_map[0x4275] = 0x6FEF; unicode_map[0x4276] = 0x7422; 
-unicode_map[0x4277] = 0x8A17; unicode_map[0x4278] = 0x9438; 
-unicode_map[0x4279] = 0x6FC1; unicode_map[0x427A] = 0x8AFE; 
-unicode_map[0x427B] = 0x8338; unicode_map[0x427C] = 0x51E7; 
-unicode_map[0x427D] = 0x86F8; unicode_map[0x427E] = 0x53EA; 
-unicode_map[0x4321] = 0x53E9; unicode_map[0x4322] = 0x4F46; 
-unicode_map[0x4323] = 0x9054; unicode_map[0x4324] = 0x8FB0; 
-unicode_map[0x4325] = 0x596A; unicode_map[0x4326] = 0x8131; 
-unicode_map[0x4327] = 0x5DFD; unicode_map[0x4328] = 0x7AEA; 
-unicode_map[0x4329] = 0x8FBF; unicode_map[0x432A] = 0x68DA; 
-unicode_map[0x432B] = 0x8C37; unicode_map[0x432C] = 0x72F8; 
-unicode_map[0x432D] = 0x9C48; unicode_map[0x432E] = 0x6A3D; 
-unicode_map[0x432F] = 0x8AB0; unicode_map[0x4330] = 0x4E39; 
-unicode_map[0x4331] = 0x5358; unicode_map[0x4332] = 0x5606; 
-unicode_map[0x4333] = 0x5766; unicode_map[0x4334] = 0x62C5; 
-unicode_map[0x4335] = 0x63A2; unicode_map[0x4336] = 0x65E6; 
-unicode_map[0x4337] = 0x6B4E; unicode_map[0x4338] = 0x6DE1; 
-unicode_map[0x4339] = 0x6E5B; unicode_map[0x433A] = 0x70AD; 
-unicode_map[0x433B] = 0x77ED; unicode_map[0x433C] = 0x7AEF; 
-unicode_map[0x433D] = 0x7BAA; unicode_map[0x433E] = 0x7DBB; 
-unicode_map[0x433F] = 0x803D; unicode_map[0x4340] = 0x80C6; 
-unicode_map[0x4341] = 0x86CB; unicode_map[0x4342] = 0x8A95; 
-unicode_map[0x4343] = 0x935B; unicode_map[0x4344] = 0x56E3; 
-unicode_map[0x4345] = 0x58C7; unicode_map[0x4346] = 0x5F3E; 
-unicode_map[0x4347] = 0x65AD; unicode_map[0x4348] = 0x6696; 
-unicode_map[0x4349] = 0x6A80; unicode_map[0x434A] = 0x6BB5; 
-unicode_map[0x434B] = 0x7537; unicode_map[0x434C] = 0x8AC7; 
-unicode_map[0x434D] = 0x5024; unicode_map[0x434E] = 0x77E5; 
-unicode_map[0x434F] = 0x5730; unicode_map[0x4350] = 0x5F1B; 
-unicode_map[0x4351] = 0x6065; unicode_map[0x4352] = 0x667A; 
-unicode_map[0x4353] = 0x6C60; unicode_map[0x4354] = 0x75F4; 
-unicode_map[0x4355] = 0x7A1A; unicode_map[0x4356] = 0x7F6E; 
-unicode_map[0x4357] = 0x81F4; unicode_map[0x4358] = 0x8718; 
-unicode_map[0x4359] = 0x9045; unicode_map[0x435A] = 0x99B3; 
-unicode_map[0x435B] = 0x7BC9; unicode_map[0x435C] = 0x755C; 
-unicode_map[0x435D] = 0x7AF9; unicode_map[0x435E] = 0x7B51; 
-unicode_map[0x435F] = 0x84C4; unicode_map[0x4360] = 0x9010; 
-unicode_map[0x4361] = 0x79E9; unicode_map[0x4362] = 0x7A92; 
-unicode_map[0x4363] = 0x8336; unicode_map[0x4364] = 0x5AE1; 
-unicode_map[0x4365] = 0x7740; unicode_map[0x4366] = 0x4E2D; 
-unicode_map[0x4367] = 0x4EF2; unicode_map[0x4368] = 0x5B99; 
-unicode_map[0x4369] = 0x5FE0; unicode_map[0x436A] = 0x62BD; 
-unicode_map[0x436B] = 0x663C; unicode_map[0x436C] = 0x67F1; 
-unicode_map[0x436D] = 0x6CE8; unicode_map[0x436E] = 0x866B; 
-unicode_map[0x436F] = 0x8877; unicode_map[0x4370] = 0x8A3B; 
-unicode_map[0x4371] = 0x914E; unicode_map[0x4372] = 0x92F3; 
-unicode_map[0x4373] = 0x99D0; unicode_map[0x4374] = 0x6A17; 
-unicode_map[0x4375] = 0x7026; unicode_map[0x4376] = 0x732A; 
-unicode_map[0x4377] = 0x82E7; unicode_map[0x4378] = 0x8457; 
-unicode_map[0x4379] = 0x8CAF; unicode_map[0x437A] = 0x4E01; 
-unicode_map[0x437B] = 0x5146; unicode_map[0x437C] = 0x51CB; 
-unicode_map[0x437D] = 0x558B; unicode_map[0x437E] = 0x5BF5; 
-unicode_map[0x4421] = 0x5E16; unicode_map[0x4422] = 0x5E33; 
-unicode_map[0x4423] = 0x5E81; unicode_map[0x4424] = 0x5F14; 
-unicode_map[0x4425] = 0x5F35; unicode_map[0x4426] = 0x5F6B; 
-unicode_map[0x4427] = 0x5FB4; unicode_map[0x4428] = 0x61F2; 
-unicode_map[0x4429] = 0x6311; unicode_map[0x442A] = 0x66A2; 
-unicode_map[0x442B] = 0x671D; unicode_map[0x442C] = 0x6F6E; 
-unicode_map[0x442D] = 0x7252; unicode_map[0x442E] = 0x753A; 
-unicode_map[0x442F] = 0x773A; unicode_map[0x4430] = 0x8074; 
-unicode_map[0x4431] = 0x8139; unicode_map[0x4432] = 0x8178; 
-unicode_map[0x4433] = 0x8776; unicode_map[0x4434] = 0x8ABF; 
-unicode_map[0x4435] = 0x8ADC; unicode_map[0x4436] = 0x8D85; 
-unicode_map[0x4437] = 0x8DF3; unicode_map[0x4438] = 0x929A; 
-unicode_map[0x4439] = 0x9577; unicode_map[0x443A] = 0x9802; 
-unicode_map[0x443B] = 0x9CE5; unicode_map[0x443C] = 0x52C5; 
-unicode_map[0x443D] = 0x6357; unicode_map[0x443E] = 0x76F4; 
-unicode_map[0x443F] = 0x6715; unicode_map[0x4440] = 0x6C88; 
-unicode_map[0x4441] = 0x73CD; unicode_map[0x4442] = 0x8CC3; 
-unicode_map[0x4443] = 0x93AE; unicode_map[0x4444] = 0x9673; 
-unicode_map[0x4445] = 0x6D25; unicode_map[0x4446] = 0x589C; 
-unicode_map[0x4447] = 0x690E; unicode_map[0x4448] = 0x69CC; 
-unicode_map[0x4449] = 0x8FFD; unicode_map[0x444A] = 0x939A; 
-unicode_map[0x444B] = 0x75DB; unicode_map[0x444C] = 0x901A; 
-unicode_map[0x444D] = 0x585A; unicode_map[0x444E] = 0x6802; 
-unicode_map[0x444F] = 0x63B4; unicode_map[0x4450] = 0x69FB; 
-unicode_map[0x4451] = 0x4F43; unicode_map[0x4452] = 0x6F2C; 
-unicode_map[0x4453] = 0x67D8; unicode_map[0x4454] = 0x8FBB; 
-unicode_map[0x4455] = 0x8526; unicode_map[0x4456] = 0x7DB4; 
-unicode_map[0x4457] = 0x9354; unicode_map[0x4458] = 0x693F; 
-unicode_map[0x4459] = 0x6F70; unicode_map[0x445A] = 0x576A; 
-unicode_map[0x445B] = 0x58F7; unicode_map[0x445C] = 0x5B2C; 
-unicode_map[0x445D] = 0x7D2C; unicode_map[0x445E] = 0x722A; 
-unicode_map[0x445F] = 0x540A; unicode_map[0x4460] = 0x91E3; 
-unicode_map[0x4461] = 0x9DB4; unicode_map[0x4462] = 0x4EAD; 
-unicode_map[0x4463] = 0x4F4E; unicode_map[0x4464] = 0x505C; 
-unicode_map[0x4465] = 0x5075; unicode_map[0x4466] = 0x5243; 
-unicode_map[0x4467] = 0x8C9E; unicode_map[0x4468] = 0x5448; 
-unicode_map[0x4469] = 0x5824; unicode_map[0x446A] = 0x5B9A; 
-unicode_map[0x446B] = 0x5E1D; unicode_map[0x446C] = 0x5E95; 
-unicode_map[0x446D] = 0x5EAD; unicode_map[0x446E] = 0x5EF7; 
-unicode_map[0x446F] = 0x5F1F; unicode_map[0x4470] = 0x608C; 
-unicode_map[0x4471] = 0x62B5; unicode_map[0x4472] = 0x633A; 
-unicode_map[0x4473] = 0x63D0; unicode_map[0x4474] = 0x68AF; 
-unicode_map[0x4475] = 0x6C40; unicode_map[0x4476] = 0x7887; 
-unicode_map[0x4477] = 0x798E; unicode_map[0x4478] = 0x7A0B; 
-unicode_map[0x4479] = 0x7DE0; unicode_map[0x447A] = 0x8247; 
-unicode_map[0x447B] = 0x8A02; unicode_map[0x447C] = 0x8AE6; 
-unicode_map[0x447D] = 0x8E44; unicode_map[0x447E] = 0x9013; 
-unicode_map[0x4521] = 0x90B8; unicode_map[0x4522] = 0x912D; 
-unicode_map[0x4523] = 0x91D8; unicode_map[0x4524] = 0x9F0E; 
-unicode_map[0x4525] = 0x6CE5; unicode_map[0x4526] = 0x6458; 
-unicode_map[0x4527] = 0x64E2; unicode_map[0x4528] = 0x6575; 
-unicode_map[0x4529] = 0x6EF4; unicode_map[0x452A] = 0x7684; 
-unicode_map[0x452B] = 0x7B1B; unicode_map[0x452C] = 0x9069; 
-unicode_map[0x452D] = 0x93D1; unicode_map[0x452E] = 0x6EBA; 
-unicode_map[0x452F] = 0x54F2; unicode_map[0x4530] = 0x5FB9; 
-unicode_map[0x4531] = 0x64A4; unicode_map[0x4532] = 0x8F4D; 
-unicode_map[0x4533] = 0x8FED; unicode_map[0x4534] = 0x9244; 
-unicode_map[0x4535] = 0x5178; unicode_map[0x4536] = 0x586B; 
-unicode_map[0x4537] = 0x5929; unicode_map[0x4538] = 0x5C55; 
-unicode_map[0x4539] = 0x5E97; unicode_map[0x453A] = 0x6DFB; 
-unicode_map[0x453B] = 0x7E8F; unicode_map[0x453C] = 0x751C; 
-unicode_map[0x453D] = 0x8CBC; unicode_map[0x453E] = 0x8EE2; 
-unicode_map[0x453F] = 0x985B; unicode_map[0x4540] = 0x70B9; 
-unicode_map[0x4541] = 0x4F1D; unicode_map[0x4542] = 0x6BBF; 
-unicode_map[0x4543] = 0x6FB1; unicode_map[0x4544] = 0x7530; 
-unicode_map[0x4545] = 0x96FB; unicode_map[0x4546] = 0x514E; 
-unicode_map[0x4547] = 0x5410; unicode_map[0x4548] = 0x5835; 
-unicode_map[0x4549] = 0x5857; unicode_map[0x454A] = 0x59AC; 
-unicode_map[0x454B] = 0x5C60; unicode_map[0x454C] = 0x5F92; 
-unicode_map[0x454D] = 0x6597; unicode_map[0x454E] = 0x675C; 
-unicode_map[0x454F] = 0x6E21; unicode_map[0x4550] = 0x767B; 
-unicode_map[0x4551] = 0x83DF; unicode_map[0x4552] = 0x8CED; 
-unicode_map[0x4553] = 0x9014; unicode_map[0x4554] = 0x90FD; 
-unicode_map[0x4555] = 0x934D; unicode_map[0x4556] = 0x7825; 
-unicode_map[0x4557] = 0x783A; unicode_map[0x4558] = 0x52AA; 
-unicode_map[0x4559] = 0x5EA6; unicode_map[0x455A] = 0x571F; 
-unicode_map[0x455B] = 0x5974; unicode_map[0x455C] = 0x6012; 
-unicode_map[0x455D] = 0x5012; unicode_map[0x455E] = 0x515A; 
-unicode_map[0x455F] = 0x51AC; unicode_map[0x4560] = 0x51CD; 
-unicode_map[0x4561] = 0x5200; unicode_map[0x4562] = 0x5510; 
-unicode_map[0x4563] = 0x5854; unicode_map[0x4564] = 0x5858; 
-unicode_map[0x4565] = 0x5957; unicode_map[0x4566] = 0x5B95; 
-unicode_map[0x4567] = 0x5CF6; unicode_map[0x4568] = 0x5D8B; 
-unicode_map[0x4569] = 0x60BC; unicode_map[0x456A] = 0x6295; 
-unicode_map[0x456B] = 0x642D; unicode_map[0x456C] = 0x6771; 
-unicode_map[0x456D] = 0x6843; unicode_map[0x456E] = 0x68BC; 
-unicode_map[0x456F] = 0x68DF; unicode_map[0x4570] = 0x76D7; 
-unicode_map[0x4571] = 0x6DD8; unicode_map[0x4572] = 0x6E6F; 
-unicode_map[0x4573] = 0x6D9B; unicode_map[0x4574] = 0x706F; 
-unicode_map[0x4575] = 0x71C8; unicode_map[0x4576] = 0x5F53; 
-unicode_map[0x4577] = 0x75D8; unicode_map[0x4578] = 0x7977; 
-unicode_map[0x4579] = 0x7B49; unicode_map[0x457A] = 0x7B54; 
-unicode_map[0x457B] = 0x7B52; unicode_map[0x457C] = 0x7CD6; 
-unicode_map[0x457D] = 0x7D71; unicode_map[0x457E] = 0x5230; 
-unicode_map[0x4621] = 0x8463; unicode_map[0x4622] = 0x8569; 
-unicode_map[0x4623] = 0x85E4; unicode_map[0x4624] = 0x8A0E; 
-unicode_map[0x4625] = 0x8B04; unicode_map[0x4626] = 0x8C46; 
-unicode_map[0x4627] = 0x8E0F; unicode_map[0x4628] = 0x9003; 
-unicode_map[0x4629] = 0x900F; unicode_map[0x462A] = 0x9419; 
-unicode_map[0x462B] = 0x9676; unicode_map[0x462C] = 0x982D; 
-unicode_map[0x462D] = 0x9A30; unicode_map[0x462E] = 0x95D8; 
-unicode_map[0x462F] = 0x50CD; unicode_map[0x4630] = 0x52D5; 
-unicode_map[0x4631] = 0x540C; unicode_map[0x4632] = 0x5802; 
-unicode_map[0x4633] = 0x5C0E; unicode_map[0x4634] = 0x61A7; 
-unicode_map[0x4635] = 0x649E; unicode_map[0x4636] = 0x6D1E; 
-unicode_map[0x4637] = 0x77B3; unicode_map[0x4638] = 0x7AE5; 
-unicode_map[0x4639] = 0x80F4; unicode_map[0x463A] = 0x8404; 
-unicode_map[0x463B] = 0x9053; unicode_map[0x463C] = 0x9285; 
-unicode_map[0x463D] = 0x5CE0; unicode_map[0x463E] = 0x9D07; 
-unicode_map[0x463F] = 0x533F; unicode_map[0x4640] = 0x5F97; 
-unicode_map[0x4641] = 0x5FB3; unicode_map[0x4642] = 0x6D9C; 
-unicode_map[0x4643] = 0x7279; unicode_map[0x4644] = 0x7763; 
-unicode_map[0x4645] = 0x79BF; unicode_map[0x4646] = 0x7BE4; 
-unicode_map[0x4647] = 0x6BD2; unicode_map[0x4648] = 0x72EC; 
-unicode_map[0x4649] = 0x8AAD; unicode_map[0x464A] = 0x6803; 
-unicode_map[0x464B] = 0x6A61; unicode_map[0x464C] = 0x51F8; 
-unicode_map[0x464D] = 0x7A81; unicode_map[0x464E] = 0x6934; 
-unicode_map[0x464F] = 0x5C4A; unicode_map[0x4650] = 0x9CF6; 
-unicode_map[0x4651] = 0x82EB; unicode_map[0x4652] = 0x5BC5; 
-unicode_map[0x4653] = 0x9149; unicode_map[0x4654] = 0x701E; 
-unicode_map[0x4655] = 0x5678; unicode_map[0x4656] = 0x5C6F; 
-unicode_map[0x4657] = 0x60C7; unicode_map[0x4658] = 0x6566; 
-unicode_map[0x4659] = 0x6C8C; unicode_map[0x465A] = 0x8C5A; 
-unicode_map[0x465B] = 0x9041; unicode_map[0x465C] = 0x9813; 
-unicode_map[0x465D] = 0x5451; unicode_map[0x465E] = 0x66C7; 
-unicode_map[0x465F] = 0x920D; unicode_map[0x4660] = 0x5948; 
-unicode_map[0x4661] = 0x90A3; unicode_map[0x4662] = 0x5185; 
-unicode_map[0x4663] = 0x4E4D; unicode_map[0x4664] = 0x51EA; 
-unicode_map[0x4665] = 0x8599; unicode_map[0x4666] = 0x8B0E; 
-unicode_map[0x4667] = 0x7058; unicode_map[0x4668] = 0x637A; 
-unicode_map[0x4669] = 0x934B; unicode_map[0x466A] = 0x6962; 
-unicode_map[0x466B] = 0x99B4; unicode_map[0x466C] = 0x7E04; 
-unicode_map[0x466D] = 0x7577; unicode_map[0x466E] = 0x5357; 
-unicode_map[0x466F] = 0x6960; unicode_map[0x4670] = 0x8EDF; 
-unicode_map[0x4671] = 0x96E3; unicode_map[0x4672] = 0x6C5D; 
-unicode_map[0x4673] = 0x4E8C; unicode_map[0x4674] = 0x5C3C; 
-unicode_map[0x4675] = 0x5F10; unicode_map[0x4676] = 0x8FE9; 
-unicode_map[0x4677] = 0x5302; unicode_map[0x4678] = 0x8CD1; 
-unicode_map[0x4679] = 0x8089; unicode_map[0x467A] = 0x8679; 
-unicode_map[0x467B] = 0x5EFF; unicode_map[0x467C] = 0x65E5; 
-unicode_map[0x467D] = 0x4E73; unicode_map[0x467E] = 0x5165; 
-unicode_map[0x4721] = 0x5982; unicode_map[0x4722] = 0x5C3F; 
-unicode_map[0x4723] = 0x97EE; unicode_map[0x4724] = 0x4EFB; 
-unicode_map[0x4725] = 0x598A; unicode_map[0x4726] = 0x5FCD; 
-unicode_map[0x4727] = 0x8A8D; unicode_map[0x4728] = 0x6FE1; 
-unicode_map[0x4729] = 0x79B0; unicode_map[0x472A] = 0x7962; 
-unicode_map[0x472B] = 0x5BE7; unicode_map[0x472C] = 0x8471; 
-unicode_map[0x472D] = 0x732B; unicode_map[0x472E] = 0x71B1; 
-unicode_map[0x472F] = 0x5E74; unicode_map[0x4730] = 0x5FF5; 
-unicode_map[0x4731] = 0x637B; unicode_map[0x4732] = 0x649A; 
-unicode_map[0x4733] = 0x71C3; unicode_map[0x4734] = 0x7C98; 
-unicode_map[0x4735] = 0x4E43; unicode_map[0x4736] = 0x5EFC; 
-unicode_map[0x4737] = 0x4E4B; unicode_map[0x4738] = 0x57DC; 
-unicode_map[0x4739] = 0x56A2; unicode_map[0x473A] = 0x60A9; 
-unicode_map[0x473B] = 0x6FC3; unicode_map[0x473C] = 0x7D0D; 
-unicode_map[0x473D] = 0x80FD; unicode_map[0x473E] = 0x8133; 
-unicode_map[0x473F] = 0x81BF; unicode_map[0x4740] = 0x8FB2; 
-unicode_map[0x4741] = 0x8997; unicode_map[0x4742] = 0x86A4; 
-unicode_map[0x4743] = 0x5DF4; unicode_map[0x4744] = 0x628A; 
-unicode_map[0x4745] = 0x64AD; unicode_map[0x4746] = 0x8987; 
-unicode_map[0x4747] = 0x6777; unicode_map[0x4748] = 0x6CE2; 
-unicode_map[0x4749] = 0x6D3E; unicode_map[0x474A] = 0x7436; 
-unicode_map[0x474B] = 0x7834; unicode_map[0x474C] = 0x5A46; 
-unicode_map[0x474D] = 0x7F75; unicode_map[0x474E] = 0x82AD; 
-unicode_map[0x474F] = 0x99AC; unicode_map[0x4750] = 0x4FF3; 
-unicode_map[0x4751] = 0x5EC3; unicode_map[0x4752] = 0x62DD; 
-unicode_map[0x4753] = 0x6392; unicode_map[0x4754] = 0x6557; 
-unicode_map[0x4755] = 0x676F; unicode_map[0x4756] = 0x76C3; 
-unicode_map[0x4757] = 0x724C; unicode_map[0x4758] = 0x80CC; 
-unicode_map[0x4759] = 0x80BA; unicode_map[0x475A] = 0x8F29; 
-unicode_map[0x475B] = 0x914D; unicode_map[0x475C] = 0x500D; 
-unicode_map[0x475D] = 0x57F9; unicode_map[0x475E] = 0x5A92; 
-unicode_map[0x475F] = 0x6885; unicode_map[0x4760] = 0x6973; 
-unicode_map[0x4761] = 0x7164; unicode_map[0x4762] = 0x72FD; 
-unicode_map[0x4763] = 0x8CB7; unicode_map[0x4764] = 0x58F2; 
-unicode_map[0x4765] = 0x8CE0; unicode_map[0x4766] = 0x966A; 
-unicode_map[0x4767] = 0x9019; unicode_map[0x4768] = 0x877F; 
-unicode_map[0x4769] = 0x79E4; unicode_map[0x476A] = 0x77E7; 
-unicode_map[0x476B] = 0x8429; unicode_map[0x476C] = 0x4F2F; 
-unicode_map[0x476D] = 0x5265; unicode_map[0x476E] = 0x535A; 
-unicode_map[0x476F] = 0x62CD; unicode_map[0x4770] = 0x67CF; 
-unicode_map[0x4771] = 0x6CCA; unicode_map[0x4772] = 0x767D; 
-unicode_map[0x4773] = 0x7B94; unicode_map[0x4774] = 0x7C95; 
-unicode_map[0x4775] = 0x8236; unicode_map[0x4776] = 0x8584; 
-unicode_map[0x4777] = 0x8FEB; unicode_map[0x4778] = 0x66DD; 
-unicode_map[0x4779] = 0x6F20; unicode_map[0x477A] = 0x7206; 
-unicode_map[0x477B] = 0x7E1B; unicode_map[0x477C] = 0x83AB; 
-unicode_map[0x477D] = 0x99C1; unicode_map[0x477E] = 0x9EA6; 
-unicode_map[0x4821] = 0x51FD; unicode_map[0x4822] = 0x7BB1; 
-unicode_map[0x4823] = 0x7872; unicode_map[0x4824] = 0x7BB8; 
-unicode_map[0x4825] = 0x8087; unicode_map[0x4826] = 0x7B48; 
-unicode_map[0x4827] = 0x6AE8; unicode_map[0x4828] = 0x5E61; 
-unicode_map[0x4829] = 0x808C; unicode_map[0x482A] = 0x7551; 
-unicode_map[0x482B] = 0x7560; unicode_map[0x482C] = 0x516B; 
-unicode_map[0x482D] = 0x9262; unicode_map[0x482E] = 0x6E8C; 
-unicode_map[0x482F] = 0x767A; unicode_map[0x4830] = 0x9197; 
-unicode_map[0x4831] = 0x9AEA; unicode_map[0x4832] = 0x4F10; 
-unicode_map[0x4833] = 0x7F70; unicode_map[0x4834] = 0x629C; 
-unicode_map[0x4835] = 0x7B4F; unicode_map[0x4836] = 0x95A5; 
-unicode_map[0x4837] = 0x9CE9; unicode_map[0x4838] = 0x567A; 
-unicode_map[0x4839] = 0x5859; unicode_map[0x483A] = 0x86E4; 
-unicode_map[0x483B] = 0x96BC; unicode_map[0x483C] = 0x4F34; 
-unicode_map[0x483D] = 0x5224; unicode_map[0x483E] = 0x534A; 
-unicode_map[0x483F] = 0x53CD; unicode_map[0x4840] = 0x53DB; 
-unicode_map[0x4841] = 0x5E06; unicode_map[0x4842] = 0x642C; 
-unicode_map[0x4843] = 0x6591; unicode_map[0x4844] = 0x677F; 
-unicode_map[0x4845] = 0x6C3E; unicode_map[0x4846] = 0x6C4E; 
-unicode_map[0x4847] = 0x7248; unicode_map[0x4848] = 0x72AF; 
-unicode_map[0x4849] = 0x73ED; unicode_map[0x484A] = 0x7554; 
-unicode_map[0x484B] = 0x7E41; unicode_map[0x484C] = 0x822C; 
-unicode_map[0x484D] = 0x85E9; unicode_map[0x484E] = 0x8CA9; 
-unicode_map[0x484F] = 0x7BC4; unicode_map[0x4850] = 0x91C6; 
-unicode_map[0x4851] = 0x7169; unicode_map[0x4852] = 0x9812; 
-unicode_map[0x4853] = 0x98EF; unicode_map[0x4854] = 0x633D; 
-unicode_map[0x4855] = 0x6669; unicode_map[0x4856] = 0x756A; 
-unicode_map[0x4857] = 0x76E4; unicode_map[0x4858] = 0x78D0; 
-unicode_map[0x4859] = 0x8543; unicode_map[0x485A] = 0x86EE; 
-unicode_map[0x485B] = 0x532A; unicode_map[0x485C] = 0x5351; 
-unicode_map[0x485D] = 0x5426; unicode_map[0x485E] = 0x5983; 
-unicode_map[0x485F] = 0x5E87; unicode_map[0x4860] = 0x5F7C; 
-unicode_map[0x4861] = 0x60B2; unicode_map[0x4862] = 0x6249; 
-unicode_map[0x4863] = 0x6279; unicode_map[0x4864] = 0x62AB; 
-unicode_map[0x4865] = 0x6590; unicode_map[0x4866] = 0x6BD4; 
-unicode_map[0x4867] = 0x6CCC; unicode_map[0x4868] = 0x75B2; 
-unicode_map[0x4869] = 0x76AE; unicode_map[0x486A] = 0x7891; 
-unicode_map[0x486B] = 0x79D8; unicode_map[0x486C] = 0x7DCB; 
-unicode_map[0x486D] = 0x7F77; unicode_map[0x486E] = 0x80A5; 
-unicode_map[0x486F] = 0x88AB; unicode_map[0x4870] = 0x8AB9; 
-unicode_map[0x4871] = 0x8CBB; unicode_map[0x4872] = 0x907F; 
-unicode_map[0x4873] = 0x975E; unicode_map[0x4874] = 0x98DB; 
-unicode_map[0x4875] = 0x6A0B; unicode_map[0x4876] = 0x7C38; 
-unicode_map[0x4877] = 0x5099; unicode_map[0x4878] = 0x5C3E; 
-unicode_map[0x4879] = 0x5FAE; unicode_map[0x487A] = 0x6787; 
-unicode_map[0x487B] = 0x6BD8; unicode_map[0x487C] = 0x7435; 
-unicode_map[0x487D] = 0x7709; unicode_map[0x487E] = 0x7F8E; 
-unicode_map[0x4921] = 0x9F3B; unicode_map[0x4922] = 0x67CA; 
-unicode_map[0x4923] = 0x7A17; unicode_map[0x4924] = 0x5339; 
-unicode_map[0x4925] = 0x758B; unicode_map[0x4926] = 0x9AED; 
-unicode_map[0x4927] = 0x5F66; unicode_map[0x4928] = 0x819D; 
-unicode_map[0x4929] = 0x83F1; unicode_map[0x492A] = 0x8098; 
-unicode_map[0x492B] = 0x5F3C; unicode_map[0x492C] = 0x5FC5; 
-unicode_map[0x492D] = 0x7562; unicode_map[0x492E] = 0x7B46; 
-unicode_map[0x492F] = 0x903C; unicode_map[0x4930] = 0x6867; 
-unicode_map[0x4931] = 0x59EB; unicode_map[0x4932] = 0x5A9B; 
-unicode_map[0x4933] = 0x7D10; unicode_map[0x4934] = 0x767E; 
-unicode_map[0x4935] = 0x8B2C; unicode_map[0x4936] = 0x4FF5; 
-unicode_map[0x4937] = 0x5F6A; unicode_map[0x4938] = 0x6A19; 
-unicode_map[0x4939] = 0x6C37; unicode_map[0x493A] = 0x6F02; 
-unicode_map[0x493B] = 0x74E2; unicode_map[0x493C] = 0x7968; 
-unicode_map[0x493D] = 0x8868; unicode_map[0x493E] = 0x8A55; 
-unicode_map[0x493F] = 0x8C79; unicode_map[0x4940] = 0x5EDF; 
-unicode_map[0x4941] = 0x63CF; unicode_map[0x4942] = 0x75C5; 
-unicode_map[0x4943] = 0x79D2; unicode_map[0x4944] = 0x82D7; 
-unicode_map[0x4945] = 0x9328; unicode_map[0x4946] = 0x92F2; 
-unicode_map[0x4947] = 0x849C; unicode_map[0x4948] = 0x86ED; 
-unicode_map[0x4949] = 0x9C2D; unicode_map[0x494A] = 0x54C1; 
-unicode_map[0x494B] = 0x5F6C; unicode_map[0x494C] = 0x658C; 
-unicode_map[0x494D] = 0x6D5C; unicode_map[0x494E] = 0x7015; 
-unicode_map[0x494F] = 0x8CA7; unicode_map[0x4950] = 0x8CD3; 
-unicode_map[0x4951] = 0x983B; unicode_map[0x4952] = 0x654F; 
-unicode_map[0x4953] = 0x74F6; unicode_map[0x4954] = 0x4E0D; 
-unicode_map[0x4955] = 0x4ED8; unicode_map[0x4956] = 0x57E0; 
-unicode_map[0x4957] = 0x592B; unicode_map[0x4958] = 0x5A66; 
-unicode_map[0x4959] = 0x5BCC; unicode_map[0x495A] = 0x51A8; 
-unicode_map[0x495B] = 0x5E03; unicode_map[0x495C] = 0x5E9C; 
-unicode_map[0x495D] = 0x6016; unicode_map[0x495E] = 0x6276; 
-unicode_map[0x495F] = 0x6577; unicode_map[0x4960] = 0x65A7; 
-unicode_map[0x4961] = 0x666E; unicode_map[0x4962] = 0x6D6E; 
-unicode_map[0x4963] = 0x7236; unicode_map[0x4964] = 0x7B26; 
-unicode_map[0x4965] = 0x8150; unicode_map[0x4966] = 0x819A; 
-unicode_map[0x4967] = 0x8299; unicode_map[0x4968] = 0x8B5C; 
-unicode_map[0x4969] = 0x8CA0; unicode_map[0x496A] = 0x8CE6; 
-unicode_map[0x496B] = 0x8D74; unicode_map[0x496C] = 0x961C; 
-unicode_map[0x496D] = 0x9644; unicode_map[0x496E] = 0x4FAE; 
-unicode_map[0x496F] = 0x64AB; unicode_map[0x4970] = 0x6B66; 
-unicode_map[0x4971] = 0x821E; unicode_map[0x4972] = 0x8461; 
-unicode_map[0x4973] = 0x856A; unicode_map[0x4974] = 0x90E8; 
-unicode_map[0x4975] = 0x5C01; unicode_map[0x4976] = 0x6953; 
-unicode_map[0x4977] = 0x98A8; unicode_map[0x4978] = 0x847A; 
-unicode_map[0x4979] = 0x8557; unicode_map[0x497A] = 0x4F0F; 
-unicode_map[0x497B] = 0x526F; unicode_map[0x497C] = 0x5FA9; 
-unicode_map[0x497D] = 0x5E45; unicode_map[0x497E] = 0x670D; 
-unicode_map[0x4A21] = 0x798F; unicode_map[0x4A22] = 0x8179; 
-unicode_map[0x4A23] = 0x8907; unicode_map[0x4A24] = 0x8986; 
-unicode_map[0x4A25] = 0x6DF5; unicode_map[0x4A26] = 0x5F17; 
-unicode_map[0x4A27] = 0x6255; unicode_map[0x4A28] = 0x6CB8; 
-unicode_map[0x4A29] = 0x4ECF; unicode_map[0x4A2A] = 0x7269; 
-unicode_map[0x4A2B] = 0x9B92; unicode_map[0x4A2C] = 0x5206; 
-unicode_map[0x4A2D] = 0x543B; unicode_map[0x4A2E] = 0x5674; 
-unicode_map[0x4A2F] = 0x58B3; unicode_map[0x4A30] = 0x61A4; 
-unicode_map[0x4A31] = 0x626E; unicode_map[0x4A32] = 0x711A; 
-unicode_map[0x4A33] = 0x596E; unicode_map[0x4A34] = 0x7C89; 
-unicode_map[0x4A35] = 0x7CDE; unicode_map[0x4A36] = 0x7D1B; 
-unicode_map[0x4A37] = 0x96F0; unicode_map[0x4A38] = 0x6587; 
-unicode_map[0x4A39] = 0x805E; unicode_map[0x4A3A] = 0x4E19; 
-unicode_map[0x4A3B] = 0x4F75; unicode_map[0x4A3C] = 0x5175; 
-unicode_map[0x4A3D] = 0x5840; unicode_map[0x4A3E] = 0x5E63; 
-unicode_map[0x4A3F] = 0x5E73; unicode_map[0x4A40] = 0x5F0A; 
-unicode_map[0x4A41] = 0x67C4; unicode_map[0x4A42] = 0x4E26; 
-unicode_map[0x4A43] = 0x853D; unicode_map[0x4A44] = 0x9589; 
-unicode_map[0x4A45] = 0x965B; unicode_map[0x4A46] = 0x7C73; 
-unicode_map[0x4A47] = 0x9801; unicode_map[0x4A48] = 0x50FB; 
-unicode_map[0x4A49] = 0x58C1; unicode_map[0x4A4A] = 0x7656; 
-unicode_map[0x4A4B] = 0x78A7; unicode_map[0x4A4C] = 0x5225; 
-unicode_map[0x4A4D] = 0x77A5; unicode_map[0x4A4E] = 0x8511; 
-unicode_map[0x4A4F] = 0x7B86; unicode_map[0x4A50] = 0x504F; 
-unicode_map[0x4A51] = 0x5909; unicode_map[0x4A52] = 0x7247; 
-unicode_map[0x4A53] = 0x7BC7; unicode_map[0x4A54] = 0x7DE8; 
-unicode_map[0x4A55] = 0x8FBA; unicode_map[0x4A56] = 0x8FD4; 
-unicode_map[0x4A57] = 0x904D; unicode_map[0x4A58] = 0x4FBF; 
-unicode_map[0x4A59] = 0x52C9; unicode_map[0x4A5A] = 0x5A29; 
-unicode_map[0x4A5B] = 0x5F01; unicode_map[0x4A5C] = 0x97AD; 
-unicode_map[0x4A5D] = 0x4FDD; unicode_map[0x4A5E] = 0x8217; 
-unicode_map[0x4A5F] = 0x92EA; unicode_map[0x4A60] = 0x5703; 
-unicode_map[0x4A61] = 0x6355; unicode_map[0x4A62] = 0x6B69; 
-unicode_map[0x4A63] = 0x752B; unicode_map[0x4A64] = 0x88DC; 
-unicode_map[0x4A65] = 0x8F14; unicode_map[0x4A66] = 0x7A42; 
-unicode_map[0x4A67] = 0x52DF; unicode_map[0x4A68] = 0x5893; 
-unicode_map[0x4A69] = 0x6155; unicode_map[0x4A6A] = 0x620A; 
-unicode_map[0x4A6B] = 0x66AE; unicode_map[0x4A6C] = 0x6BCD; 
-unicode_map[0x4A6D] = 0x7C3F; unicode_map[0x4A6E] = 0x83E9; 
-unicode_map[0x4A6F] = 0x5023; unicode_map[0x4A70] = 0x4FF8; 
-unicode_map[0x4A71] = 0x5305; unicode_map[0x4A72] = 0x5446; 
-unicode_map[0x4A73] = 0x5831; unicode_map[0x4A74] = 0x5949; 
-unicode_map[0x4A75] = 0x5B9D; unicode_map[0x4A76] = 0x5CF0; 
-unicode_map[0x4A77] = 0x5CEF; unicode_map[0x4A78] = 0x5D29; 
-unicode_map[0x4A79] = 0x5E96; unicode_map[0x4A7A] = 0x62B1; 
-unicode_map[0x4A7B] = 0x6367; unicode_map[0x4A7C] = 0x653E; 
-unicode_map[0x4A7D] = 0x65B9; unicode_map[0x4A7E] = 0x670B; 
-unicode_map[0x4B21] = 0x6CD5; unicode_map[0x4B22] = 0x6CE1; 
-unicode_map[0x4B23] = 0x70F9; unicode_map[0x4B24] = 0x7832; 
-unicode_map[0x4B25] = 0x7E2B; unicode_map[0x4B26] = 0x80DE; 
-unicode_map[0x4B27] = 0x82B3; unicode_map[0x4B28] = 0x840C; 
-unicode_map[0x4B29] = 0x84EC; unicode_map[0x4B2A] = 0x8702; 
-unicode_map[0x4B2B] = 0x8912; unicode_map[0x4B2C] = 0x8A2A; 
-unicode_map[0x4B2D] = 0x8C4A; unicode_map[0x4B2E] = 0x90A6; 
-unicode_map[0x4B2F] = 0x92D2; unicode_map[0x4B30] = 0x98FD; 
-unicode_map[0x4B31] = 0x9CF3; unicode_map[0x4B32] = 0x9D6C; 
-unicode_map[0x4B33] = 0x4E4F; unicode_map[0x4B34] = 0x4EA1; 
-unicode_map[0x4B35] = 0x508D; unicode_map[0x4B36] = 0x5256; 
-unicode_map[0x4B37] = 0x574A; unicode_map[0x4B38] = 0x59A8; 
-unicode_map[0x4B39] = 0x5E3D; unicode_map[0x4B3A] = 0x5FD8; 
-unicode_map[0x4B3B] = 0x5FD9; unicode_map[0x4B3C] = 0x623F; 
-unicode_map[0x4B3D] = 0x66B4; unicode_map[0x4B3E] = 0x671B; 
-unicode_map[0x4B3F] = 0x67D0; unicode_map[0x4B40] = 0x68D2; 
-unicode_map[0x4B41] = 0x5192; unicode_map[0x4B42] = 0x7D21; 
-unicode_map[0x4B43] = 0x80AA; unicode_map[0x4B44] = 0x81A8; 
-unicode_map[0x4B45] = 0x8B00; unicode_map[0x4B46] = 0x8C8C; 
-unicode_map[0x4B47] = 0x8CBF; unicode_map[0x4B48] = 0x927E; 
-unicode_map[0x4B49] = 0x9632; unicode_map[0x4B4A] = 0x5420; 
-unicode_map[0x4B4B] = 0x982C; unicode_map[0x4B4C] = 0x5317; 
-unicode_map[0x4B4D] = 0x50D5; unicode_map[0x4B4E] = 0x535C; 
-unicode_map[0x4B4F] = 0x58A8; unicode_map[0x4B50] = 0x64B2; 
-unicode_map[0x4B51] = 0x6734; unicode_map[0x4B52] = 0x7267; 
-unicode_map[0x4B53] = 0x7766; unicode_map[0x4B54] = 0x7A46; 
-unicode_map[0x4B55] = 0x91E6; unicode_map[0x4B56] = 0x52C3; 
-unicode_map[0x4B57] = 0x6CA1; unicode_map[0x4B58] = 0x6B86; 
-unicode_map[0x4B59] = 0x5800; unicode_map[0x4B5A] = 0x5E4C; 
-unicode_map[0x4B5B] = 0x5954; unicode_map[0x4B5C] = 0x672C; 
-unicode_map[0x4B5D] = 0x7FFB; unicode_map[0x4B5E] = 0x51E1; 
-unicode_map[0x4B5F] = 0x76C6; unicode_map[0x4B60] = 0x6469; 
-unicode_map[0x4B61] = 0x78E8; unicode_map[0x4B62] = 0x9B54; 
-unicode_map[0x4B63] = 0x9EBB; unicode_map[0x4B64] = 0x57CB; 
-unicode_map[0x4B65] = 0x59B9; unicode_map[0x4B66] = 0x6627; 
-unicode_map[0x4B67] = 0x679A; unicode_map[0x4B68] = 0x6BCE; 
-unicode_map[0x4B69] = 0x54E9; unicode_map[0x4B6A] = 0x69D9; 
-unicode_map[0x4B6B] = 0x5E55; unicode_map[0x4B6C] = 0x819C; 
-unicode_map[0x4B6D] = 0x6795; unicode_map[0x4B6E] = 0x9BAA; 
-unicode_map[0x4B6F] = 0x67FE; unicode_map[0x4B70] = 0x9C52; 
-unicode_map[0x4B71] = 0x685D; unicode_map[0x4B72] = 0x4EA6; 
-unicode_map[0x4B73] = 0x4FE3; unicode_map[0x4B74] = 0x53C8; 
-unicode_map[0x4B75] = 0x62B9; unicode_map[0x4B76] = 0x672B; 
-unicode_map[0x4B77] = 0x6CAB; unicode_map[0x4B78] = 0x8FC4; 
-unicode_map[0x4B79] = 0x4FAD; unicode_map[0x4B7A] = 0x7E6D; 
-unicode_map[0x4B7B] = 0x9EBF; unicode_map[0x4B7C] = 0x4E07; 
-unicode_map[0x4B7D] = 0x6162; unicode_map[0x4B7E] = 0x6E80; 
-unicode_map[0x4C21] = 0x6F2B; unicode_map[0x4C22] = 0x8513; 
-unicode_map[0x4C23] = 0x5473; unicode_map[0x4C24] = 0x672A; 
-unicode_map[0x4C25] = 0x9B45; unicode_map[0x4C26] = 0x5DF3; 
-unicode_map[0x4C27] = 0x7B95; unicode_map[0x4C28] = 0x5CAC; 
-unicode_map[0x4C29] = 0x5BC6; unicode_map[0x4C2A] = 0x871C; 
-unicode_map[0x4C2B] = 0x6E4A; unicode_map[0x4C2C] = 0x84D1; 
-unicode_map[0x4C2D] = 0x7A14; unicode_map[0x4C2E] = 0x8108; 
-unicode_map[0x4C2F] = 0x5999; unicode_map[0x4C30] = 0x7C8D; 
-unicode_map[0x4C31] = 0x6C11; unicode_map[0x4C32] = 0x7720; 
-unicode_map[0x4C33] = 0x52D9; unicode_map[0x4C34] = 0x5922; 
-unicode_map[0x4C35] = 0x7121; unicode_map[0x4C36] = 0x725F; 
-unicode_map[0x4C37] = 0x77DB; unicode_map[0x4C38] = 0x9727; 
-unicode_map[0x4C39] = 0x9D61; unicode_map[0x4C3A] = 0x690B; 
-unicode_map[0x4C3B] = 0x5A7F; unicode_map[0x4C3C] = 0x5A18; 
-unicode_map[0x4C3D] = 0x51A5; unicode_map[0x4C3E] = 0x540D; 
-unicode_map[0x4C3F] = 0x547D; unicode_map[0x4C40] = 0x660E; 
-unicode_map[0x4C41] = 0x76DF; unicode_map[0x4C42] = 0x8FF7; 
-unicode_map[0x4C43] = 0x9298; unicode_map[0x4C44] = 0x9CF4; 
-unicode_map[0x4C45] = 0x59EA; unicode_map[0x4C46] = 0x725D; 
-unicode_map[0x4C47] = 0x6EC5; unicode_map[0x4C48] = 0x514D; 
-unicode_map[0x4C49] = 0x68C9; unicode_map[0x4C4A] = 0x7DBF; 
-unicode_map[0x4C4B] = 0x7DEC; unicode_map[0x4C4C] = 0x9762; 
-unicode_map[0x4C4D] = 0x9EBA; unicode_map[0x4C4E] = 0x6478; 
-unicode_map[0x4C4F] = 0x6A21; unicode_map[0x4C50] = 0x8302; 
-unicode_map[0x4C51] = 0x5984; unicode_map[0x4C52] = 0x5B5F; 
-unicode_map[0x4C53] = 0x6BDB; unicode_map[0x4C54] = 0x731B; 
-unicode_map[0x4C55] = 0x76F2; unicode_map[0x4C56] = 0x7DB2; 
-unicode_map[0x4C57] = 0x8017; unicode_map[0x4C58] = 0x8499; 
-unicode_map[0x4C59] = 0x5132; unicode_map[0x4C5A] = 0x6728; 
-unicode_map[0x4C5B] = 0x9ED9; unicode_map[0x4C5C] = 0x76EE; 
-unicode_map[0x4C5D] = 0x6762; unicode_map[0x4C5E] = 0x52FF; 
-unicode_map[0x4C5F] = 0x9905; unicode_map[0x4C60] = 0x5C24; 
-unicode_map[0x4C61] = 0x623B; unicode_map[0x4C62] = 0x7C7E; 
-unicode_map[0x4C63] = 0x8CB0; unicode_map[0x4C64] = 0x554F; 
-unicode_map[0x4C65] = 0x60B6; unicode_map[0x4C66] = 0x7D0B; 
-unicode_map[0x4C67] = 0x9580; unicode_map[0x4C68] = 0x5301; 
-unicode_map[0x4C69] = 0x4E5F; unicode_map[0x4C6A] = 0x51B6; 
-unicode_map[0x4C6B] = 0x591C; unicode_map[0x4C6C] = 0x723A; 
-unicode_map[0x4C6D] = 0x8036; unicode_map[0x4C6E] = 0x91CE; 
-unicode_map[0x4C6F] = 0x5F25; unicode_map[0x4C70] = 0x77E2; 
-unicode_map[0x4C71] = 0x5384; unicode_map[0x4C72] = 0x5F79; 
-unicode_map[0x4C73] = 0x7D04; unicode_map[0x4C74] = 0x85AC; 
-unicode_map[0x4C75] = 0x8A33; unicode_map[0x4C76] = 0x8E8D; 
-unicode_map[0x4C77] = 0x9756; unicode_map[0x4C78] = 0x67F3; 
-unicode_map[0x4C79] = 0x85AE; unicode_map[0x4C7A] = 0x9453; 
-unicode_map[0x4C7B] = 0x6109; unicode_map[0x4C7C] = 0x6108; 
-unicode_map[0x4C7D] = 0x6CB9; unicode_map[0x4C7E] = 0x7652; 
-unicode_map[0x4D21] = 0x8AED; unicode_map[0x4D22] = 0x8F38; 
-unicode_map[0x4D23] = 0x552F; unicode_map[0x4D24] = 0x4F51; 
-unicode_map[0x4D25] = 0x512A; unicode_map[0x4D26] = 0x52C7; 
-unicode_map[0x4D27] = 0x53CB; unicode_map[0x4D28] = 0x5BA5; 
-unicode_map[0x4D29] = 0x5E7D; unicode_map[0x4D2A] = 0x60A0; 
-unicode_map[0x4D2B] = 0x6182; unicode_map[0x4D2C] = 0x63D6; 
-unicode_map[0x4D2D] = 0x6709; unicode_map[0x4D2E] = 0x67DA; 
-unicode_map[0x4D2F] = 0x6E67; unicode_map[0x4D30] = 0x6D8C; 
-unicode_map[0x4D31] = 0x7336; unicode_map[0x4D32] = 0x7337; 
-unicode_map[0x4D33] = 0x7531; unicode_map[0x4D34] = 0x7950; 
-unicode_map[0x4D35] = 0x88D5; unicode_map[0x4D36] = 0x8A98; 
-unicode_map[0x4D37] = 0x904A; unicode_map[0x4D38] = 0x9091; 
-unicode_map[0x4D39] = 0x90F5; unicode_map[0x4D3A] = 0x96C4; 
-unicode_map[0x4D3B] = 0x878D; unicode_map[0x4D3C] = 0x5915; 
-unicode_map[0x4D3D] = 0x4E88; unicode_map[0x4D3E] = 0x4F59; 
-unicode_map[0x4D3F] = 0x4E0E; unicode_map[0x4D40] = 0x8A89; 
-unicode_map[0x4D41] = 0x8F3F; unicode_map[0x4D42] = 0x9810; 
-unicode_map[0x4D43] = 0x50AD; unicode_map[0x4D44] = 0x5E7C; 
-unicode_map[0x4D45] = 0x5996; unicode_map[0x4D46] = 0x5BB9; 
-unicode_map[0x4D47] = 0x5EB8; unicode_map[0x4D48] = 0x63DA; 
-unicode_map[0x4D49] = 0x63FA; unicode_map[0x4D4A] = 0x64C1; 
-unicode_map[0x4D4B] = 0x66DC; unicode_map[0x4D4C] = 0x694A; 
-unicode_map[0x4D4D] = 0x69D8; unicode_map[0x4D4E] = 0x6D0B; 
-unicode_map[0x4D4F] = 0x6EB6; unicode_map[0x4D50] = 0x7194; 
-unicode_map[0x4D51] = 0x7528; unicode_map[0x4D52] = 0x7AAF; 
-unicode_map[0x4D53] = 0x7F8A; unicode_map[0x4D54] = 0x8000; 
-unicode_map[0x4D55] = 0x8449; unicode_map[0x4D56] = 0x84C9; 
-unicode_map[0x4D57] = 0x8981; unicode_map[0x4D58] = 0x8B21; 
-unicode_map[0x4D59] = 0x8E0A; unicode_map[0x4D5A] = 0x9065; 
-unicode_map[0x4D5B] = 0x967D; unicode_map[0x4D5C] = 0x990A; 
-unicode_map[0x4D5D] = 0x617E; unicode_map[0x4D5E] = 0x6291; 
-unicode_map[0x4D5F] = 0x6B32; unicode_map[0x4D60] = 0x6C83; 
-unicode_map[0x4D61] = 0x6D74; unicode_map[0x4D62] = 0x7FCC; 
-unicode_map[0x4D63] = 0x7FFC; unicode_map[0x4D64] = 0x6DC0; 
-unicode_map[0x4D65] = 0x7F85; unicode_map[0x4D66] = 0x87BA; 
-unicode_map[0x4D67] = 0x88F8; unicode_map[0x4D68] = 0x6765; 
-unicode_map[0x4D69] = 0x83B1; unicode_map[0x4D6A] = 0x983C; 
-unicode_map[0x4D6B] = 0x96F7; unicode_map[0x4D6C] = 0x6D1B; 
-unicode_map[0x4D6D] = 0x7D61; unicode_map[0x4D6E] = 0x843D; 
-unicode_map[0x4D6F] = 0x916A; unicode_map[0x4D70] = 0x4E71; 
-unicode_map[0x4D71] = 0x5375; unicode_map[0x4D72] = 0x5D50; 
-unicode_map[0x4D73] = 0x6B04; unicode_map[0x4D74] = 0x6FEB; 
-unicode_map[0x4D75] = 0x85CD; unicode_map[0x4D76] = 0x862D; 
-unicode_map[0x4D77] = 0x89A7; unicode_map[0x4D78] = 0x5229; 
-unicode_map[0x4D79] = 0x540F; unicode_map[0x4D7A] = 0x5C65; 
-unicode_map[0x4D7B] = 0x674E; unicode_map[0x4D7C] = 0x68A8; 
-unicode_map[0x4D7D] = 0x7406; unicode_map[0x4D7E] = 0x7483; 
-unicode_map[0x4E21] = 0x75E2; unicode_map[0x4E22] = 0x88CF; 
-unicode_map[0x4E23] = 0x88E1; unicode_map[0x4E24] = 0x91CC; 
-unicode_map[0x4E25] = 0x96E2; unicode_map[0x4E26] = 0x9678; 
-unicode_map[0x4E27] = 0x5F8B; unicode_map[0x4E28] = 0x7387; 
-unicode_map[0x4E29] = 0x7ACB; unicode_map[0x4E2A] = 0x844E; 
-unicode_map[0x4E2B] = 0x63A0; unicode_map[0x4E2C] = 0x7565; 
-unicode_map[0x4E2D] = 0x5289; unicode_map[0x4E2E] = 0x6D41; 
-unicode_map[0x4E2F] = 0x6E9C; unicode_map[0x4E30] = 0x7409; 
-unicode_map[0x4E31] = 0x7559; unicode_map[0x4E32] = 0x786B; 
-unicode_map[0x4E33] = 0x7C92; unicode_map[0x4E34] = 0x9686; 
-unicode_map[0x4E35] = 0x7ADC; unicode_map[0x4E36] = 0x9F8D; 
-unicode_map[0x4E37] = 0x4FB6; unicode_map[0x4E38] = 0x616E; 
-unicode_map[0x4E39] = 0x65C5; unicode_map[0x4E3A] = 0x865C; 
-unicode_map[0x4E3B] = 0x4E86; unicode_map[0x4E3C] = 0x4EAE; 
-unicode_map[0x4E3D] = 0x50DA; unicode_map[0x4E3E] = 0x4E21; 
-unicode_map[0x4E3F] = 0x51CC; unicode_map[0x4E40] = 0x5BEE; 
-unicode_map[0x4E41] = 0x6599; unicode_map[0x4E42] = 0x6881; 
-unicode_map[0x4E43] = 0x6DBC; unicode_map[0x4E44] = 0x731F; 
-unicode_map[0x4E45] = 0x7642; unicode_map[0x4E46] = 0x77AD; 
-unicode_map[0x4E47] = 0x7A1C; unicode_map[0x4E48] = 0x7CE7; 
-unicode_map[0x4E49] = 0x826F; unicode_map[0x4E4A] = 0x8AD2; 
-unicode_map[0x4E4B] = 0x907C; unicode_map[0x4E4C] = 0x91CF; 
-unicode_map[0x4E4D] = 0x9675; unicode_map[0x4E4E] = 0x9818; 
-unicode_map[0x4E4F] = 0x529B; unicode_map[0x4E50] = 0x7DD1; 
-unicode_map[0x4E51] = 0x502B; unicode_map[0x4E52] = 0x5398; 
-unicode_map[0x4E53] = 0x6797; unicode_map[0x4E54] = 0x6DCB; 
-unicode_map[0x4E55] = 0x71D0; unicode_map[0x4E56] = 0x7433; 
-unicode_map[0x4E57] = 0x81E8; unicode_map[0x4E58] = 0x8F2A; 
-unicode_map[0x4E59] = 0x96A3; unicode_map[0x4E5A] = 0x9C57; 
-unicode_map[0x4E5B] = 0x9E9F; unicode_map[0x4E5C] = 0x7460; 
-unicode_map[0x4E5D] = 0x5841; unicode_map[0x4E5E] = 0x6D99; 
-unicode_map[0x4E5F] = 0x7D2F; unicode_map[0x4E60] = 0x985E; 
-unicode_map[0x4E61] = 0x4EE4; unicode_map[0x4E62] = 0x4F36; 
-unicode_map[0x4E63] = 0x4F8B; unicode_map[0x4E64] = 0x51B7; 
-unicode_map[0x4E65] = 0x52B1; unicode_map[0x4E66] = 0x5DBA; 
-unicode_map[0x4E67] = 0x601C; unicode_map[0x4E68] = 0x73B2; 
-unicode_map[0x4E69] = 0x793C; unicode_map[0x4E6A] = 0x82D3; 
-unicode_map[0x4E6B] = 0x9234; unicode_map[0x4E6C] = 0x96B7; 
-unicode_map[0x4E6D] = 0x96F6; unicode_map[0x4E6E] = 0x970A; 
-unicode_map[0x4E6F] = 0x9E97; unicode_map[0x4E70] = 0x9F62; 
-unicode_map[0x4E71] = 0x66A6; unicode_map[0x4E72] = 0x6B74; 
-unicode_map[0x4E73] = 0x5217; unicode_map[0x4E74] = 0x52A3; 
-unicode_map[0x4E75] = 0x70C8; unicode_map[0x4E76] = 0x88C2; 
-unicode_map[0x4E77] = 0x5EC9; unicode_map[0x4E78] = 0x604B; 
-unicode_map[0x4E79] = 0x6190; unicode_map[0x4E7A] = 0x6F23; 
-unicode_map[0x4E7B] = 0x7149; unicode_map[0x4E7C] = 0x7C3E; 
-unicode_map[0x4E7D] = 0x7DF4; unicode_map[0x4E7E] = 0x806F; 
-unicode_map[0x4F21] = 0x84EE; unicode_map[0x4F22] = 0x9023; 
-unicode_map[0x4F23] = 0x932C; unicode_map[0x4F24] = 0x5442; 
-unicode_map[0x4F25] = 0x9B6F; unicode_map[0x4F26] = 0x6AD3; 
-unicode_map[0x4F27] = 0x7089; unicode_map[0x4F28] = 0x8CC2; 
-unicode_map[0x4F29] = 0x8DEF; unicode_map[0x4F2A] = 0x9732; 
-unicode_map[0x4F2B] = 0x52B4; unicode_map[0x4F2C] = 0x5A41; 
-unicode_map[0x4F2D] = 0x5ECA; unicode_map[0x4F2E] = 0x5F04; 
-unicode_map[0x4F2F] = 0x6717; unicode_map[0x4F30] = 0x697C; 
-unicode_map[0x4F31] = 0x6994; unicode_map[0x4F32] = 0x6D6A; 
-unicode_map[0x4F33] = 0x6F0F; unicode_map[0x4F34] = 0x7262; 
-unicode_map[0x4F35] = 0x72FC; unicode_map[0x4F36] = 0x7BED; 
-unicode_map[0x4F37] = 0x8001; unicode_map[0x4F38] = 0x807E; 
-unicode_map[0x4F39] = 0x874B; unicode_map[0x4F3A] = 0x90CE; 
-unicode_map[0x4F3B] = 0x516D; unicode_map[0x4F3C] = 0x9E93; 
-unicode_map[0x4F3D] = 0x7984; unicode_map[0x4F3E] = 0x808B; 
-unicode_map[0x4F3F] = 0x9332; unicode_map[0x4F40] = 0x8AD6; 
-unicode_map[0x4F41] = 0x502D; unicode_map[0x4F42] = 0x548C; 
-unicode_map[0x4F43] = 0x8A71; unicode_map[0x4F44] = 0x6B6A; 
-unicode_map[0x4F45] = 0x8CC4; unicode_map[0x4F46] = 0x8107; 
-unicode_map[0x4F47] = 0x60D1; unicode_map[0x4F48] = 0x67A0; 
-unicode_map[0x4F49] = 0x9DF2; unicode_map[0x4F4A] = 0x4E99; 
-unicode_map[0x4F4B] = 0x4E98; unicode_map[0x4F4C] = 0x9C10; 
-unicode_map[0x4F4D] = 0x8A6B; unicode_map[0x4F4E] = 0x85C1; 
-unicode_map[0x4F4F] = 0x8568; unicode_map[0x4F50] = 0x6900; 
-unicode_map[0x4F51] = 0x6E7E; unicode_map[0x4F52] = 0x7897; 
-unicode_map[0x4F53] = 0x8155; unicode_map[0x5021] = 0x5F0C; 
-unicode_map[0x5022] = 0x4E10; unicode_map[0x5023] = 0x4E15; 
-unicode_map[0x5024] = 0x4E2A; unicode_map[0x5025] = 0x4E31; 
-unicode_map[0x5026] = 0x4E36; unicode_map[0x5027] = 0x4E3C; 
-unicode_map[0x5028] = 0x4E3F; unicode_map[0x5029] = 0x4E42; 
-unicode_map[0x502A] = 0x4E56; unicode_map[0x502B] = 0x4E58; 
-unicode_map[0x502C] = 0x4E82; unicode_map[0x502D] = 0x4E85; 
-unicode_map[0x502E] = 0x8C6B; unicode_map[0x502F] = 0x4E8A; 
-unicode_map[0x5030] = 0x8212; unicode_map[0x5031] = 0x5F0D; 
-unicode_map[0x5032] = 0x4E8E; unicode_map[0x5033] = 0x4E9E; 
-unicode_map[0x5034] = 0x4E9F; unicode_map[0x5035] = 0x4EA0; 
-unicode_map[0x5036] = 0x4EA2; unicode_map[0x5037] = 0x4EB0; 
-unicode_map[0x5038] = 0x4EB3; unicode_map[0x5039] = 0x4EB6; 
-unicode_map[0x503A] = 0x4ECE; unicode_map[0x503B] = 0x4ECD; 
-unicode_map[0x503C] = 0x4EC4; unicode_map[0x503D] = 0x4EC6; 
-unicode_map[0x503E] = 0x4EC2; unicode_map[0x503F] = 0x4ED7; 
-unicode_map[0x5040] = 0x4EDE; unicode_map[0x5041] = 0x4EED; 
-unicode_map[0x5042] = 0x4EDF; unicode_map[0x5043] = 0x4EF7; 
-unicode_map[0x5044] = 0x4F09; unicode_map[0x5045] = 0x4F5A; 
-unicode_map[0x5046] = 0x4F30; unicode_map[0x5047] = 0x4F5B; 
-unicode_map[0x5048] = 0x4F5D; unicode_map[0x5049] = 0x4F57; 
-unicode_map[0x504A] = 0x4F47; unicode_map[0x504B] = 0x4F76; 
-unicode_map[0x504C] = 0x4F88; unicode_map[0x504D] = 0x4F8F; 
-unicode_map[0x504E] = 0x4F98; unicode_map[0x504F] = 0x4F7B; 
-unicode_map[0x5050] = 0x4F69; unicode_map[0x5051] = 0x4F70; 
-unicode_map[0x5052] = 0x4F91; unicode_map[0x5053] = 0x4F6F; 
-unicode_map[0x5054] = 0x4F86; unicode_map[0x5055] = 0x4F96; 
-unicode_map[0x5056] = 0x5118; unicode_map[0x5057] = 0x4FD4; 
-unicode_map[0x5058] = 0x4FDF; unicode_map[0x5059] = 0x4FCE; 
-unicode_map[0x505A] = 0x4FD8; unicode_map[0x505B] = 0x4FDB; 
-unicode_map[0x505C] = 0x4FD1; unicode_map[0x505D] = 0x4FDA; 
-unicode_map[0x505E] = 0x4FD0; unicode_map[0x505F] = 0x4FE4; 
-unicode_map[0x5060] = 0x4FE5; unicode_map[0x5061] = 0x501A; 
-unicode_map[0x5062] = 0x5028; unicode_map[0x5063] = 0x5014; 
-unicode_map[0x5064] = 0x502A; unicode_map[0x5065] = 0x5025; 
-unicode_map[0x5066] = 0x5005; unicode_map[0x5067] = 0x4F1C; 
-unicode_map[0x5068] = 0x4FF6; unicode_map[0x5069] = 0x5021; 
-unicode_map[0x506A] = 0x5029; unicode_map[0x506B] = 0x502C; 
-unicode_map[0x506C] = 0x4FFE; unicode_map[0x506D] = 0x4FEF; 
-unicode_map[0x506E] = 0x5011; unicode_map[0x506F] = 0x5006; 
-unicode_map[0x5070] = 0x5043; unicode_map[0x5071] = 0x5047; 
-unicode_map[0x5072] = 0x6703; unicode_map[0x5073] = 0x5055; 
-unicode_map[0x5074] = 0x5050; unicode_map[0x5075] = 0x5048; 
-unicode_map[0x5076] = 0x505A; unicode_map[0x5077] = 0x5056; 
-unicode_map[0x5078] = 0x506C; unicode_map[0x5079] = 0x5078; 
-unicode_map[0x507A] = 0x5080; unicode_map[0x507B] = 0x509A; 
-unicode_map[0x507C] = 0x5085; unicode_map[0x507D] = 0x50B4; 
-unicode_map[0x507E] = 0x50B2; unicode_map[0x5121] = 0x50C9; 
-unicode_map[0x5122] = 0x50CA; unicode_map[0x5123] = 0x50B3; 
-unicode_map[0x5124] = 0x50C2; unicode_map[0x5125] = 0x50D6; 
-unicode_map[0x5126] = 0x50DE; unicode_map[0x5127] = 0x50E5; 
-unicode_map[0x5128] = 0x50ED; unicode_map[0x5129] = 0x50E3; 
-unicode_map[0x512A] = 0x50EE; unicode_map[0x512B] = 0x50F9; 
-unicode_map[0x512C] = 0x50F5; unicode_map[0x512D] = 0x5109; 
-unicode_map[0x512E] = 0x5101; unicode_map[0x512F] = 0x5102; 
-unicode_map[0x5130] = 0x5116; unicode_map[0x5131] = 0x5115; 
-unicode_map[0x5132] = 0x5114; unicode_map[0x5133] = 0x511A; 
-unicode_map[0x5134] = 0x5121; unicode_map[0x5135] = 0x513A; 
-unicode_map[0x5136] = 0x5137; unicode_map[0x5137] = 0x513C; 
-unicode_map[0x5138] = 0x513B; unicode_map[0x5139] = 0x513F; 
-unicode_map[0x513A] = 0x5140; unicode_map[0x513B] = 0x5152; 
-unicode_map[0x513C] = 0x514C; unicode_map[0x513D] = 0x5154; 
-unicode_map[0x513E] = 0x5162; unicode_map[0x513F] = 0x7AF8; 
-unicode_map[0x5140] = 0x5169; unicode_map[0x5141] = 0x516A; 
-unicode_map[0x5142] = 0x516E; unicode_map[0x5143] = 0x5180; 
-unicode_map[0x5144] = 0x5182; unicode_map[0x5145] = 0x56D8; 
-unicode_map[0x5146] = 0x518C; unicode_map[0x5147] = 0x5189; 
-unicode_map[0x5148] = 0x518F; unicode_map[0x5149] = 0x5191; 
-unicode_map[0x514A] = 0x5193; unicode_map[0x514B] = 0x5195; 
-unicode_map[0x514C] = 0x5196; unicode_map[0x514D] = 0x51A4; 
-unicode_map[0x514E] = 0x51A6; unicode_map[0x514F] = 0x51A2; 
-unicode_map[0x5150] = 0x51A9; unicode_map[0x5151] = 0x51AA; 
-unicode_map[0x5152] = 0x51AB; unicode_map[0x5153] = 0x51B3; 
-unicode_map[0x5154] = 0x51B1; unicode_map[0x5155] = 0x51B2; 
-unicode_map[0x5156] = 0x51B0; unicode_map[0x5157] = 0x51B5; 
-unicode_map[0x5158] = 0x51BD; unicode_map[0x5159] = 0x51C5; 
-unicode_map[0x515A] = 0x51C9; unicode_map[0x515B] = 0x51DB; 
-unicode_map[0x515C] = 0x51E0; unicode_map[0x515D] = 0x8655; 
-unicode_map[0x515E] = 0x51E9; unicode_map[0x515F] = 0x51ED; 
-unicode_map[0x5160] = 0x51F0; unicode_map[0x5161] = 0x51F5; 
-unicode_map[0x5162] = 0x51FE; unicode_map[0x5163] = 0x5204; 
-unicode_map[0x5164] = 0x520B; unicode_map[0x5165] = 0x5214; 
-unicode_map[0x5166] = 0x520E; unicode_map[0x5167] = 0x5227; 
-unicode_map[0x5168] = 0x522A; unicode_map[0x5169] = 0x522E; 
-unicode_map[0x516A] = 0x5233; unicode_map[0x516B] = 0x5239; 
-unicode_map[0x516C] = 0x524F; unicode_map[0x516D] = 0x5244; 
-unicode_map[0x516E] = 0x524B; unicode_map[0x516F] = 0x524C; 
-unicode_map[0x5170] = 0x525E; unicode_map[0x5171] = 0x5254; 
-unicode_map[0x5172] = 0x526A; unicode_map[0x5173] = 0x5274; 
-unicode_map[0x5174] = 0x5269; unicode_map[0x5175] = 0x5273; 
-unicode_map[0x5176] = 0x527F; unicode_map[0x5177] = 0x527D; 
-unicode_map[0x5178] = 0x528D; unicode_map[0x5179] = 0x5294; 
-unicode_map[0x517A] = 0x5292; unicode_map[0x517B] = 0x5271; 
-unicode_map[0x517C] = 0x5288; unicode_map[0x517D] = 0x5291; 
-unicode_map[0x517E] = 0x8FA8; unicode_map[0x5221] = 0x8FA7; 
-unicode_map[0x5222] = 0x52AC; unicode_map[0x5223] = 0x52AD; 
-unicode_map[0x5224] = 0x52BC; unicode_map[0x5225] = 0x52B5; 
-unicode_map[0x5226] = 0x52C1; unicode_map[0x5227] = 0x52CD; 
-unicode_map[0x5228] = 0x52D7; unicode_map[0x5229] = 0x52DE; 
-unicode_map[0x522A] = 0x52E3; unicode_map[0x522B] = 0x52E6; 
-unicode_map[0x522C] = 0x98ED; unicode_map[0x522D] = 0x52E0; 
-unicode_map[0x522E] = 0x52F3; unicode_map[0x522F] = 0x52F5; 
-unicode_map[0x5230] = 0x52F8; unicode_map[0x5231] = 0x52F9; 
-unicode_map[0x5232] = 0x5306; unicode_map[0x5233] = 0x5308; 
-unicode_map[0x5234] = 0x7538; unicode_map[0x5235] = 0x530D; 
-unicode_map[0x5236] = 0x5310; unicode_map[0x5237] = 0x530F; 
-unicode_map[0x5238] = 0x5315; unicode_map[0x5239] = 0x531A; 
-unicode_map[0x523A] = 0x5323; unicode_map[0x523B] = 0x532F; 
-unicode_map[0x523C] = 0x5331; unicode_map[0x523D] = 0x5333; 
-unicode_map[0x523E] = 0x5338; unicode_map[0x523F] = 0x5340; 
-unicode_map[0x5240] = 0x5346; unicode_map[0x5241] = 0x5345; 
-unicode_map[0x5242] = 0x4E17; unicode_map[0x5243] = 0x5349; 
-unicode_map[0x5244] = 0x534D; unicode_map[0x5245] = 0x51D6; 
-unicode_map[0x5246] = 0x535E; unicode_map[0x5247] = 0x5369; 
-unicode_map[0x5248] = 0x536E; unicode_map[0x5249] = 0x5918; 
-unicode_map[0x524A] = 0x537B; unicode_map[0x524B] = 0x5377; 
-unicode_map[0x524C] = 0x5382; unicode_map[0x524D] = 0x5396; 
-unicode_map[0x524E] = 0x53A0; unicode_map[0x524F] = 0x53A6; 
-unicode_map[0x5250] = 0x53A5; unicode_map[0x5251] = 0x53AE; 
-unicode_map[0x5252] = 0x53B0; unicode_map[0x5253] = 0x53B6; 
-unicode_map[0x5254] = 0x53C3; unicode_map[0x5255] = 0x7C12; 
-unicode_map[0x5256] = 0x96D9; unicode_map[0x5257] = 0x53DF; 
-unicode_map[0x5258] = 0x66FC; unicode_map[0x5259] = 0x71EE; 
-unicode_map[0x525A] = 0x53EE; unicode_map[0x525B] = 0x53E8; 
-unicode_map[0x525C] = 0x53ED; unicode_map[0x525D] = 0x53FA; 
-unicode_map[0x525E] = 0x5401; unicode_map[0x525F] = 0x543D; 
-unicode_map[0x5260] = 0x5440; unicode_map[0x5261] = 0x542C; 
-unicode_map[0x5262] = 0x542D; unicode_map[0x5263] = 0x543C; 
-unicode_map[0x5264] = 0x542E; unicode_map[0x5265] = 0x5436; 
-unicode_map[0x5266] = 0x5429; unicode_map[0x5267] = 0x541D; 
-unicode_map[0x5268] = 0x544E; unicode_map[0x5269] = 0x548F; 
-unicode_map[0x526A] = 0x5475; unicode_map[0x526B] = 0x548E; 
-unicode_map[0x526C] = 0x545F; unicode_map[0x526D] = 0x5471; 
-unicode_map[0x526E] = 0x5477; unicode_map[0x526F] = 0x5470; 
-unicode_map[0x5270] = 0x5492; unicode_map[0x5271] = 0x547B; 
-unicode_map[0x5272] = 0x5480; unicode_map[0x5273] = 0x5476; 
-unicode_map[0x5274] = 0x5484; unicode_map[0x5275] = 0x5490; 
-unicode_map[0x5276] = 0x5486; unicode_map[0x5277] = 0x54C7; 
-unicode_map[0x5278] = 0x54A2; unicode_map[0x5279] = 0x54B8; 
-unicode_map[0x527A] = 0x54A5; unicode_map[0x527B] = 0x54AC; 
-unicode_map[0x527C] = 0x54C4; unicode_map[0x527D] = 0x54C8; 
-unicode_map[0x527E] = 0x54A8; unicode_map[0x5321] = 0x54AB; 
-unicode_map[0x5322] = 0x54C2; unicode_map[0x5323] = 0x54A4; 
-unicode_map[0x5324] = 0x54BE; unicode_map[0x5325] = 0x54BC; 
-unicode_map[0x5326] = 0x54D8; unicode_map[0x5327] = 0x54E5; 
-unicode_map[0x5328] = 0x54E6; unicode_map[0x5329] = 0x550F; 
-unicode_map[0x532A] = 0x5514; unicode_map[0x532B] = 0x54FD; 
-unicode_map[0x532C] = 0x54EE; unicode_map[0x532D] = 0x54ED; 
-unicode_map[0x532E] = 0x54FA; unicode_map[0x532F] = 0x54E2; 
-unicode_map[0x5330] = 0x5539; unicode_map[0x5331] = 0x5540; 
-unicode_map[0x5332] = 0x5563; unicode_map[0x5333] = 0x554C; 
-unicode_map[0x5334] = 0x552E; unicode_map[0x5335] = 0x555C; 
-unicode_map[0x5336] = 0x5545; unicode_map[0x5337] = 0x5556; 
-unicode_map[0x5338] = 0x5557; unicode_map[0x5339] = 0x5538; 
-unicode_map[0x533A] = 0x5533; unicode_map[0x533B] = 0x555D; 
-unicode_map[0x533C] = 0x5599; unicode_map[0x533D] = 0x5580; 
-unicode_map[0x533E] = 0x54AF; unicode_map[0x533F] = 0x558A; 
-unicode_map[0x5340] = 0x559F; unicode_map[0x5341] = 0x557B; 
-unicode_map[0x5342] = 0x557E; unicode_map[0x5343] = 0x5598; 
-unicode_map[0x5344] = 0x559E; unicode_map[0x5345] = 0x55AE; 
-unicode_map[0x5346] = 0x557C; unicode_map[0x5347] = 0x5583; 
-unicode_map[0x5348] = 0x55A9; unicode_map[0x5349] = 0x5587; 
-unicode_map[0x534A] = 0x55A8; unicode_map[0x534B] = 0x55DA; 
-unicode_map[0x534C] = 0x55C5; unicode_map[0x534D] = 0x55DF; 
-unicode_map[0x534E] = 0x55C4; unicode_map[0x534F] = 0x55DC; 
-unicode_map[0x5350] = 0x55E4; unicode_map[0x5351] = 0x55D4; 
-unicode_map[0x5352] = 0x5614; unicode_map[0x5353] = 0x55F7; 
-unicode_map[0x5354] = 0x5616; unicode_map[0x5355] = 0x55FE; 
-unicode_map[0x5356] = 0x55FD; unicode_map[0x5357] = 0x561B; 
-unicode_map[0x5358] = 0x55F9; unicode_map[0x5359] = 0x564E; 
-unicode_map[0x535A] = 0x5650; unicode_map[0x535B] = 0x71DF; 
-unicode_map[0x535C] = 0x5634; unicode_map[0x535D] = 0x5636; 
-unicode_map[0x535E] = 0x5632; unicode_map[0x535F] = 0x5638; 
-unicode_map[0x5360] = 0x566B; unicode_map[0x5361] = 0x5664; 
-unicode_map[0x5362] = 0x562F; unicode_map[0x5363] = 0x566C; 
-unicode_map[0x5364] = 0x566A; unicode_map[0x5365] = 0x5686; 
-unicode_map[0x5366] = 0x5680; unicode_map[0x5367] = 0x568A; 
-unicode_map[0x5368] = 0x56A0; unicode_map[0x5369] = 0x5694; 
-unicode_map[0x536A] = 0x568F; unicode_map[0x536B] = 0x56A5; 
-unicode_map[0x536C] = 0x56AE; unicode_map[0x536D] = 0x56B6; 
-unicode_map[0x536E] = 0x56B4; unicode_map[0x536F] = 0x56C2; 
-unicode_map[0x5370] = 0x56BC; unicode_map[0x5371] = 0x56C1; 
-unicode_map[0x5372] = 0x56C3; unicode_map[0x5373] = 0x56C0; 
-unicode_map[0x5374] = 0x56C8; unicode_map[0x5375] = 0x56CE; 
-unicode_map[0x5376] = 0x56D1; unicode_map[0x5377] = 0x56D3; 
-unicode_map[0x5378] = 0x56D7; unicode_map[0x5379] = 0x56EE; 
-unicode_map[0x537A] = 0x56F9; unicode_map[0x537B] = 0x5700; 
-unicode_map[0x537C] = 0x56FF; unicode_map[0x537D] = 0x5704; 
-unicode_map[0x537E] = 0x5709; unicode_map[0x5421] = 0x5708; 
-unicode_map[0x5422] = 0x570B; unicode_map[0x5423] = 0x570D; 
-unicode_map[0x5424] = 0x5713; unicode_map[0x5425] = 0x5718; 
-unicode_map[0x5426] = 0x5716; unicode_map[0x5427] = 0x55C7; 
-unicode_map[0x5428] = 0x571C; unicode_map[0x5429] = 0x5726; 
-unicode_map[0x542A] = 0x5737; unicode_map[0x542B] = 0x5738; 
-unicode_map[0x542C] = 0x574E; unicode_map[0x542D] = 0x573B; 
-unicode_map[0x542E] = 0x5740; unicode_map[0x542F] = 0x574F; 
-unicode_map[0x5430] = 0x5769; unicode_map[0x5431] = 0x57C0; 
-unicode_map[0x5432] = 0x5788; unicode_map[0x5433] = 0x5761; 
-unicode_map[0x5434] = 0x577F; unicode_map[0x5435] = 0x5789; 
-unicode_map[0x5436] = 0x5793; unicode_map[0x5437] = 0x57A0; 
-unicode_map[0x5438] = 0x57B3; unicode_map[0x5439] = 0x57A4; 
-unicode_map[0x543A] = 0x57AA; unicode_map[0x543B] = 0x57B0; 
-unicode_map[0x543C] = 0x57C3; unicode_map[0x543D] = 0x57C6; 
-unicode_map[0x543E] = 0x57D4; unicode_map[0x543F] = 0x57D2; 
-unicode_map[0x5440] = 0x57D3; unicode_map[0x5441] = 0x580A; 
-unicode_map[0x5442] = 0x57D6; unicode_map[0x5443] = 0x57E3; 
-unicode_map[0x5444] = 0x580B; unicode_map[0x5445] = 0x5819; 
-unicode_map[0x5446] = 0x581D; unicode_map[0x5447] = 0x5872; 
-unicode_map[0x5448] = 0x5821; unicode_map[0x5449] = 0x5862; 
-unicode_map[0x544A] = 0x584B; unicode_map[0x544B] = 0x5870; 
-unicode_map[0x544C] = 0x6BC0; unicode_map[0x544D] = 0x5852; 
-unicode_map[0x544E] = 0x583D; unicode_map[0x544F] = 0x5879; 
-unicode_map[0x5450] = 0x5885; unicode_map[0x5451] = 0x58B9; 
-unicode_map[0x5452] = 0x589F; unicode_map[0x5453] = 0x58AB; 
-unicode_map[0x5454] = 0x58BA; unicode_map[0x5455] = 0x58DE; 
-unicode_map[0x5456] = 0x58BB; unicode_map[0x5457] = 0x58B8; 
-unicode_map[0x5458] = 0x58AE; unicode_map[0x5459] = 0x58C5; 
-unicode_map[0x545A] = 0x58D3; unicode_map[0x545B] = 0x58D1; 
-unicode_map[0x545C] = 0x58D7; unicode_map[0x545D] = 0x58D9; 
-unicode_map[0x545E] = 0x58D8; unicode_map[0x545F] = 0x58E5; 
-unicode_map[0x5460] = 0x58DC; unicode_map[0x5461] = 0x58E4; 
-unicode_map[0x5462] = 0x58DF; unicode_map[0x5463] = 0x58EF; 
-unicode_map[0x5464] = 0x58FA; unicode_map[0x5465] = 0x58F9; 
-unicode_map[0x5466] = 0x58FB; unicode_map[0x5467] = 0x58FC; 
-unicode_map[0x5468] = 0x58FD; unicode_map[0x5469] = 0x5902; 
-unicode_map[0x546A] = 0x590A; unicode_map[0x546B] = 0x5910; 
-unicode_map[0x546C] = 0x591B; unicode_map[0x546D] = 0x68A6; 
-unicode_map[0x546E] = 0x5925; unicode_map[0x546F] = 0x592C; 
-unicode_map[0x5470] = 0x592D; unicode_map[0x5471] = 0x5932; 
-unicode_map[0x5472] = 0x5938; unicode_map[0x5473] = 0x593E; 
-unicode_map[0x5474] = 0x7AD2; unicode_map[0x5475] = 0x5955; 
-unicode_map[0x5476] = 0x5950; unicode_map[0x5477] = 0x594E; 
-unicode_map[0x5478] = 0x595A; unicode_map[0x5479] = 0x5958; 
-unicode_map[0x547A] = 0x5962; unicode_map[0x547B] = 0x5960; 
-unicode_map[0x547C] = 0x5967; unicode_map[0x547D] = 0x596C; 
-unicode_map[0x547E] = 0x5969; unicode_map[0x5521] = 0x5978; 
-unicode_map[0x5522] = 0x5981; unicode_map[0x5523] = 0x599D; 
-unicode_map[0x5524] = 0x4F5E; unicode_map[0x5525] = 0x4FAB; 
-unicode_map[0x5526] = 0x59A3; unicode_map[0x5527] = 0x59B2; 
-unicode_map[0x5528] = 0x59C6; unicode_map[0x5529] = 0x59E8; 
-unicode_map[0x552A] = 0x59DC; unicode_map[0x552B] = 0x598D; 
-unicode_map[0x552C] = 0x59D9; unicode_map[0x552D] = 0x59DA; 
-unicode_map[0x552E] = 0x5A25; unicode_map[0x552F] = 0x5A1F; 
-unicode_map[0x5530] = 0x5A11; unicode_map[0x5531] = 0x5A1C; 
-unicode_map[0x5532] = 0x5A09; unicode_map[0x5533] = 0x5A1A; 
-unicode_map[0x5534] = 0x5A40; unicode_map[0x5535] = 0x5A6C; 
-unicode_map[0x5536] = 0x5A49; unicode_map[0x5537] = 0x5A35; 
-unicode_map[0x5538] = 0x5A36; unicode_map[0x5539] = 0x5A62; 
-unicode_map[0x553A] = 0x5A6A; unicode_map[0x553B] = 0x5A9A; 
-unicode_map[0x553C] = 0x5ABC; unicode_map[0x553D] = 0x5ABE; 
-unicode_map[0x553E] = 0x5ACB; unicode_map[0x553F] = 0x5AC2; 
-unicode_map[0x5540] = 0x5ABD; unicode_map[0x5541] = 0x5AE3; 
-unicode_map[0x5542] = 0x5AD7; unicode_map[0x5543] = 0x5AE6; 
-unicode_map[0x5544] = 0x5AE9; unicode_map[0x5545] = 0x5AD6; 
-unicode_map[0x5546] = 0x5AFA; unicode_map[0x5547] = 0x5AFB; 
-unicode_map[0x5548] = 0x5B0C; unicode_map[0x5549] = 0x5B0B; 
-unicode_map[0x554A] = 0x5B16; unicode_map[0x554B] = 0x5B32; 
-unicode_map[0x554C] = 0x5AD0; unicode_map[0x554D] = 0x5B2A; 
-unicode_map[0x554E] = 0x5B36; unicode_map[0x554F] = 0x5B3E; 
-unicode_map[0x5550] = 0x5B43; unicode_map[0x5551] = 0x5B45; 
-unicode_map[0x5552] = 0x5B40; unicode_map[0x5553] = 0x5B51; 
-unicode_map[0x5554] = 0x5B55; unicode_map[0x5555] = 0x5B5A; 
-unicode_map[0x5556] = 0x5B5B; unicode_map[0x5557] = 0x5B65; 
-unicode_map[0x5558] = 0x5B69; unicode_map[0x5559] = 0x5B70; 
-unicode_map[0x555A] = 0x5B73; unicode_map[0x555B] = 0x5B75; 
-unicode_map[0x555C] = 0x5B78; unicode_map[0x555D] = 0x6588; 
-unicode_map[0x555E] = 0x5B7A; unicode_map[0x555F] = 0x5B80; 
-unicode_map[0x5560] = 0x5B83; unicode_map[0x5561] = 0x5BA6; 
-unicode_map[0x5562] = 0x5BB8; unicode_map[0x5563] = 0x5BC3; 
-unicode_map[0x5564] = 0x5BC7; unicode_map[0x5565] = 0x5BC9; 
-unicode_map[0x5566] = 0x5BD4; unicode_map[0x5567] = 0x5BD0; 
-unicode_map[0x5568] = 0x5BE4; unicode_map[0x5569] = 0x5BE6; 
-unicode_map[0x556A] = 0x5BE2; unicode_map[0x556B] = 0x5BDE; 
-unicode_map[0x556C] = 0x5BE5; unicode_map[0x556D] = 0x5BEB; 
-unicode_map[0x556E] = 0x5BF0; unicode_map[0x556F] = 0x5BF6; 
-unicode_map[0x5570] = 0x5BF3; unicode_map[0x5571] = 0x5C05; 
-unicode_map[0x5572] = 0x5C07; unicode_map[0x5573] = 0x5C08; 
-unicode_map[0x5574] = 0x5C0D; unicode_map[0x5575] = 0x5C13; 
-unicode_map[0x5576] = 0x5C20; unicode_map[0x5577] = 0x5C22; 
-unicode_map[0x5578] = 0x5C28; unicode_map[0x5579] = 0x5C38; 
-unicode_map[0x557A] = 0x5C39; unicode_map[0x557B] = 0x5C41; 
-unicode_map[0x557C] = 0x5C46; unicode_map[0x557D] = 0x5C4E; 
-unicode_map[0x557E] = 0x5C53; unicode_map[0x5621] = 0x5C50; 
-unicode_map[0x5622] = 0x5C4F; unicode_map[0x5623] = 0x5B71; 
-unicode_map[0x5624] = 0x5C6C; unicode_map[0x5625] = 0x5C6E; 
-unicode_map[0x5626] = 0x4E62; unicode_map[0x5627] = 0x5C76; 
-unicode_map[0x5628] = 0x5C79; unicode_map[0x5629] = 0x5C8C; 
-unicode_map[0x562A] = 0x5C91; unicode_map[0x562B] = 0x5C94; 
-unicode_map[0x562C] = 0x599B; unicode_map[0x562D] = 0x5CAB; 
-unicode_map[0x562E] = 0x5CBB; unicode_map[0x562F] = 0x5CB6; 
-unicode_map[0x5630] = 0x5CBC; unicode_map[0x5631] = 0x5CB7; 
-unicode_map[0x5632] = 0x5CC5; unicode_map[0x5633] = 0x5CBE; 
-unicode_map[0x5634] = 0x5CC7; unicode_map[0x5635] = 0x5CD9; 
-unicode_map[0x5636] = 0x5CE9; unicode_map[0x5637] = 0x5CFD; 
-unicode_map[0x5638] = 0x5CFA; unicode_map[0x5639] = 0x5CED; 
-unicode_map[0x563A] = 0x5D8C; unicode_map[0x563B] = 0x5CEA; 
-unicode_map[0x563C] = 0x5D0B; unicode_map[0x563D] = 0x5D15; 
-unicode_map[0x563E] = 0x5D17; unicode_map[0x563F] = 0x5D5C; 
-unicode_map[0x5640] = 0x5D1F; unicode_map[0x5641] = 0x5D1B; 
-unicode_map[0x5642] = 0x5D11; unicode_map[0x5643] = 0x5D14; 
-unicode_map[0x5644] = 0x5D22; unicode_map[0x5645] = 0x5D1A; 
-unicode_map[0x5646] = 0x5D19; unicode_map[0x5647] = 0x5D18; 
-unicode_map[0x5648] = 0x5D4C; unicode_map[0x5649] = 0x5D52; 
-unicode_map[0x564A] = 0x5D4E; unicode_map[0x564B] = 0x5D4B; 
-unicode_map[0x564C] = 0x5D6C; unicode_map[0x564D] = 0x5D73; 
-unicode_map[0x564E] = 0x5D76; unicode_map[0x564F] = 0x5D87; 
-unicode_map[0x5650] = 0x5D84; unicode_map[0x5651] = 0x5D82; 
-unicode_map[0x5652] = 0x5DA2; unicode_map[0x5653] = 0x5D9D; 
-unicode_map[0x5654] = 0x5DAC; unicode_map[0x5655] = 0x5DAE; 
-unicode_map[0x5656] = 0x5DBD; unicode_map[0x5657] = 0x5D90; 
-unicode_map[0x5658] = 0x5DB7; unicode_map[0x5659] = 0x5DBC; 
-unicode_map[0x565A] = 0x5DC9; unicode_map[0x565B] = 0x5DCD; 
-unicode_map[0x565C] = 0x5DD3; unicode_map[0x565D] = 0x5DD2; 
-unicode_map[0x565E] = 0x5DD6; unicode_map[0x565F] = 0x5DDB; 
-unicode_map[0x5660] = 0x5DEB; unicode_map[0x5661] = 0x5DF2; 
-unicode_map[0x5662] = 0x5DF5; unicode_map[0x5663] = 0x5E0B; 
-unicode_map[0x5664] = 0x5E1A; unicode_map[0x5665] = 0x5E19; 
-unicode_map[0x5666] = 0x5E11; unicode_map[0x5667] = 0x5E1B; 
-unicode_map[0x5668] = 0x5E36; unicode_map[0x5669] = 0x5E37; 
-unicode_map[0x566A] = 0x5E44; unicode_map[0x566B] = 0x5E43; 
-unicode_map[0x566C] = 0x5E40; unicode_map[0x566D] = 0x5E4E; 
-unicode_map[0x566E] = 0x5E57; unicode_map[0x566F] = 0x5E54; 
-unicode_map[0x5670] = 0x5E5F; unicode_map[0x5671] = 0x5E62; 
-unicode_map[0x5672] = 0x5E64; unicode_map[0x5673] = 0x5E47; 
-unicode_map[0x5674] = 0x5E75; unicode_map[0x5675] = 0x5E76; 
-unicode_map[0x5676] = 0x5E7A; unicode_map[0x5677] = 0x9EBC; 
-unicode_map[0x5678] = 0x5E7F; unicode_map[0x5679] = 0x5EA0; 
-unicode_map[0x567A] = 0x5EC1; unicode_map[0x567B] = 0x5EC2; 
-unicode_map[0x567C] = 0x5EC8; unicode_map[0x567D] = 0x5ED0; 
-unicode_map[0x567E] = 0x5ECF; unicode_map[0x5721] = 0x5ED6; 
-unicode_map[0x5722] = 0x5EE3; unicode_map[0x5723] = 0x5EDD; 
-unicode_map[0x5724] = 0x5EDA; unicode_map[0x5725] = 0x5EDB; 
-unicode_map[0x5726] = 0x5EE2; unicode_map[0x5727] = 0x5EE1; 
-unicode_map[0x5728] = 0x5EE8; unicode_map[0x5729] = 0x5EE9; 
-unicode_map[0x572A] = 0x5EEC; unicode_map[0x572B] = 0x5EF1; 
-unicode_map[0x572C] = 0x5EF3; unicode_map[0x572D] = 0x5EF0; 
-unicode_map[0x572E] = 0x5EF4; unicode_map[0x572F] = 0x5EF8; 
-unicode_map[0x5730] = 0x5EFE; unicode_map[0x5731] = 0x5F03; 
-unicode_map[0x5732] = 0x5F09; unicode_map[0x5733] = 0x5F5D; 
-unicode_map[0x5734] = 0x5F5C; unicode_map[0x5735] = 0x5F0B; 
-unicode_map[0x5736] = 0x5F11; unicode_map[0x5737] = 0x5F16; 
-unicode_map[0x5738] = 0x5F29; unicode_map[0x5739] = 0x5F2D; 
-unicode_map[0x573A] = 0x5F38; unicode_map[0x573B] = 0x5F41; 
-unicode_map[0x573C] = 0x5F48; unicode_map[0x573D] = 0x5F4C; 
-unicode_map[0x573E] = 0x5F4E; unicode_map[0x573F] = 0x5F2F; 
-unicode_map[0x5740] = 0x5F51; unicode_map[0x5741] = 0x5F56; 
-unicode_map[0x5742] = 0x5F57; unicode_map[0x5743] = 0x5F59; 
-unicode_map[0x5744] = 0x5F61; unicode_map[0x5745] = 0x5F6D; 
-unicode_map[0x5746] = 0x5F73; unicode_map[0x5747] = 0x5F77; 
-unicode_map[0x5748] = 0x5F83; unicode_map[0x5749] = 0x5F82; 
-unicode_map[0x574A] = 0x5F7F; unicode_map[0x574B] = 0x5F8A; 
-unicode_map[0x574C] = 0x5F88; unicode_map[0x574D] = 0x5F91; 
-unicode_map[0x574E] = 0x5F87; unicode_map[0x574F] = 0x5F9E; 
-unicode_map[0x5750] = 0x5F99; unicode_map[0x5751] = 0x5F98; 
-unicode_map[0x5752] = 0x5FA0; unicode_map[0x5753] = 0x5FA8; 
-unicode_map[0x5754] = 0x5FAD; unicode_map[0x5755] = 0x5FBC; 
-unicode_map[0x5756] = 0x5FD6; unicode_map[0x5757] = 0x5FFB; 
-unicode_map[0x5758] = 0x5FE4; unicode_map[0x5759] = 0x5FF8; 
-unicode_map[0x575A] = 0x5FF1; unicode_map[0x575B] = 0x5FDD; 
-unicode_map[0x575C] = 0x60B3; unicode_map[0x575D] = 0x5FFF; 
-unicode_map[0x575E] = 0x6021; unicode_map[0x575F] = 0x6060; 
-unicode_map[0x5760] = 0x6019; unicode_map[0x5761] = 0x6010; 
-unicode_map[0x5762] = 0x6029; unicode_map[0x5763] = 0x600E; 
-unicode_map[0x5764] = 0x6031; unicode_map[0x5765] = 0x601B; 
-unicode_map[0x5766] = 0x6015; unicode_map[0x5767] = 0x602B; 
-unicode_map[0x5768] = 0x6026; unicode_map[0x5769] = 0x600F; 
-unicode_map[0x576A] = 0x603A; unicode_map[0x576B] = 0x605A; 
-unicode_map[0x576C] = 0x6041; unicode_map[0x576D] = 0x606A; 
-unicode_map[0x576E] = 0x6077; unicode_map[0x576F] = 0x605F; 
-unicode_map[0x5770] = 0x604A; unicode_map[0x5771] = 0x6046; 
-unicode_map[0x5772] = 0x604D; unicode_map[0x5773] = 0x6063; 
-unicode_map[0x5774] = 0x6043; unicode_map[0x5775] = 0x6064; 
-unicode_map[0x5776] = 0x6042; unicode_map[0x5777] = 0x606C; 
-unicode_map[0x5778] = 0x606B; unicode_map[0x5779] = 0x6059; 
-unicode_map[0x577A] = 0x6081; unicode_map[0x577B] = 0x608D; 
-unicode_map[0x577C] = 0x60E7; unicode_map[0x577D] = 0x6083; 
-unicode_map[0x577E] = 0x609A; unicode_map[0x5821] = 0x6084; 
-unicode_map[0x5822] = 0x609B; unicode_map[0x5823] = 0x6096; 
-unicode_map[0x5824] = 0x6097; unicode_map[0x5825] = 0x6092; 
-unicode_map[0x5826] = 0x60A7; unicode_map[0x5827] = 0x608B; 
-unicode_map[0x5828] = 0x60E1; unicode_map[0x5829] = 0x60B8; 
-unicode_map[0x582A] = 0x60E0; unicode_map[0x582B] = 0x60D3; 
-unicode_map[0x582C] = 0x60B4; unicode_map[0x582D] = 0x5FF0; 
-unicode_map[0x582E] = 0x60BD; unicode_map[0x582F] = 0x60C6; 
-unicode_map[0x5830] = 0x60B5; unicode_map[0x5831] = 0x60D8; 
-unicode_map[0x5832] = 0x614D; unicode_map[0x5833] = 0x6115; 
-unicode_map[0x5834] = 0x6106; unicode_map[0x5835] = 0x60F6; 
-unicode_map[0x5836] = 0x60F7; unicode_map[0x5837] = 0x6100; 
-unicode_map[0x5838] = 0x60F4; unicode_map[0x5839] = 0x60FA; 
-unicode_map[0x583A] = 0x6103; unicode_map[0x583B] = 0x6121; 
-unicode_map[0x583C] = 0x60FB; unicode_map[0x583D] = 0x60F1; 
-unicode_map[0x583E] = 0x610D; unicode_map[0x583F] = 0x610E; 
-unicode_map[0x5840] = 0x6147; unicode_map[0x5841] = 0x613E; 
-unicode_map[0x5842] = 0x6128; unicode_map[0x5843] = 0x6127; 
-unicode_map[0x5844] = 0x614A; unicode_map[0x5845] = 0x613F; 
-unicode_map[0x5846] = 0x613C; unicode_map[0x5847] = 0x612C; 
-unicode_map[0x5848] = 0x6134; unicode_map[0x5849] = 0x613D; 
-unicode_map[0x584A] = 0x6142; unicode_map[0x584B] = 0x6144; 
-unicode_map[0x584C] = 0x6173; unicode_map[0x584D] = 0x6177; 
-unicode_map[0x584E] = 0x6158; unicode_map[0x584F] = 0x6159; 
-unicode_map[0x5850] = 0x615A; unicode_map[0x5851] = 0x616B; 
-unicode_map[0x5852] = 0x6174; unicode_map[0x5853] = 0x616F; 
-unicode_map[0x5854] = 0x6165; unicode_map[0x5855] = 0x6171; 
-unicode_map[0x5856] = 0x615F; unicode_map[0x5857] = 0x615D; 
-unicode_map[0x5858] = 0x6153; unicode_map[0x5859] = 0x6175; 
-unicode_map[0x585A] = 0x6199; unicode_map[0x585B] = 0x6196; 
-unicode_map[0x585C] = 0x6187; unicode_map[0x585D] = 0x61AC; 
-unicode_map[0x585E] = 0x6194; unicode_map[0x585F] = 0x619A; 
-unicode_map[0x5860] = 0x618A; unicode_map[0x5861] = 0x6191; 
-unicode_map[0x5862] = 0x61AB; unicode_map[0x5863] = 0x61AE; 
-unicode_map[0x5864] = 0x61CC; unicode_map[0x5865] = 0x61CA; 
-unicode_map[0x5866] = 0x61C9; unicode_map[0x5867] = 0x61F7; 
-unicode_map[0x5868] = 0x61C8; unicode_map[0x5869] = 0x61C3; 
-unicode_map[0x586A] = 0x61C6; unicode_map[0x586B] = 0x61BA; 
-unicode_map[0x586C] = 0x61CB; unicode_map[0x586D] = 0x7F79; 
-unicode_map[0x586E] = 0x61CD; unicode_map[0x586F] = 0x61E6; 
-unicode_map[0x5870] = 0x61E3; unicode_map[0x5871] = 0x61F6; 
-unicode_map[0x5872] = 0x61FA; unicode_map[0x5873] = 0x61F4; 
-unicode_map[0x5874] = 0x61FF; unicode_map[0x5875] = 0x61FD; 
-unicode_map[0x5876] = 0x61FC; unicode_map[0x5877] = 0x61FE; 
-unicode_map[0x5878] = 0x6200; unicode_map[0x5879] = 0x6208; 
-unicode_map[0x587A] = 0x6209; unicode_map[0x587B] = 0x620D; 
-unicode_map[0x587C] = 0x620C; unicode_map[0x587D] = 0x6214; 
-unicode_map[0x587E] = 0x621B; unicode_map[0x5921] = 0x621E; 
-unicode_map[0x5922] = 0x6221; unicode_map[0x5923] = 0x622A; 
-unicode_map[0x5924] = 0x622E; unicode_map[0x5925] = 0x6230; 
-unicode_map[0x5926] = 0x6232; unicode_map[0x5927] = 0x6233; 
-unicode_map[0x5928] = 0x6241; unicode_map[0x5929] = 0x624E; 
-unicode_map[0x592A] = 0x625E; unicode_map[0x592B] = 0x6263; 
-unicode_map[0x592C] = 0x625B; unicode_map[0x592D] = 0x6260; 
-unicode_map[0x592E] = 0x6268; unicode_map[0x592F] = 0x627C; 
-unicode_map[0x5930] = 0x6282; unicode_map[0x5931] = 0x6289; 
-unicode_map[0x5932] = 0x627E; unicode_map[0x5933] = 0x6292; 
-unicode_map[0x5934] = 0x6293; unicode_map[0x5935] = 0x6296; 
-unicode_map[0x5936] = 0x62D4; unicode_map[0x5937] = 0x6283; 
-unicode_map[0x5938] = 0x6294; unicode_map[0x5939] = 0x62D7; 
-unicode_map[0x593A] = 0x62D1; unicode_map[0x593B] = 0x62BB; 
-unicode_map[0x593C] = 0x62CF; unicode_map[0x593D] = 0x62FF; 
-unicode_map[0x593E] = 0x62C6; unicode_map[0x593F] = 0x64D4; 
-unicode_map[0x5940] = 0x62C8; unicode_map[0x5941] = 0x62DC; 
-unicode_map[0x5942] = 0x62CC; unicode_map[0x5943] = 0x62CA; 
-unicode_map[0x5944] = 0x62C2; unicode_map[0x5945] = 0x62C7; 
-unicode_map[0x5946] = 0x629B; unicode_map[0x5947] = 0x62C9; 
-unicode_map[0x5948] = 0x630C; unicode_map[0x5949] = 0x62EE; 
-unicode_map[0x594A] = 0x62F1; unicode_map[0x594B] = 0x6327; 
-unicode_map[0x594C] = 0x6302; unicode_map[0x594D] = 0x6308; 
-unicode_map[0x594E] = 0x62EF; unicode_map[0x594F] = 0x62F5; 
-unicode_map[0x5950] = 0x6350; unicode_map[0x5951] = 0x633E; 
-unicode_map[0x5952] = 0x634D; unicode_map[0x5953] = 0x641C; 
-unicode_map[0x5954] = 0x634F; unicode_map[0x5955] = 0x6396; 
-unicode_map[0x5956] = 0x638E; unicode_map[0x5957] = 0x6380; 
-unicode_map[0x5958] = 0x63AB; unicode_map[0x5959] = 0x6376; 
-unicode_map[0x595A] = 0x63A3; unicode_map[0x595B] = 0x638F; 
-unicode_map[0x595C] = 0x6389; unicode_map[0x595D] = 0x639F; 
-unicode_map[0x595E] = 0x63B5; unicode_map[0x595F] = 0x636B; 
-unicode_map[0x5960] = 0x6369; unicode_map[0x5961] = 0x63BE; 
-unicode_map[0x5962] = 0x63E9; unicode_map[0x5963] = 0x63C0; 
-unicode_map[0x5964] = 0x63C6; unicode_map[0x5965] = 0x63E3; 
-unicode_map[0x5966] = 0x63C9; unicode_map[0x5967] = 0x63D2; 
-unicode_map[0x5968] = 0x63F6; unicode_map[0x5969] = 0x63C4; 
-unicode_map[0x596A] = 0x6416; unicode_map[0x596B] = 0x6434; 
-unicode_map[0x596C] = 0x6406; unicode_map[0x596D] = 0x6413; 
-unicode_map[0x596E] = 0x6426; unicode_map[0x596F] = 0x6436; 
-unicode_map[0x5970] = 0x651D; unicode_map[0x5971] = 0x6417; 
-unicode_map[0x5972] = 0x6428; unicode_map[0x5973] = 0x640F; 
-unicode_map[0x5974] = 0x6467; unicode_map[0x5975] = 0x646F; 
-unicode_map[0x5976] = 0x6476; unicode_map[0x5977] = 0x644E; 
-unicode_map[0x5978] = 0x652A; unicode_map[0x5979] = 0x6495; 
-unicode_map[0x597A] = 0x6493; unicode_map[0x597B] = 0x64A5; 
-unicode_map[0x597C] = 0x64A9; unicode_map[0x597D] = 0x6488; 
-unicode_map[0x597E] = 0x64BC; unicode_map[0x5A21] = 0x64DA; 
-unicode_map[0x5A22] = 0x64D2; unicode_map[0x5A23] = 0x64C5; 
-unicode_map[0x5A24] = 0x64C7; unicode_map[0x5A25] = 0x64BB; 
-unicode_map[0x5A26] = 0x64D8; unicode_map[0x5A27] = 0x64C2; 
-unicode_map[0x5A28] = 0x64F1; unicode_map[0x5A29] = 0x64E7; 
-unicode_map[0x5A2A] = 0x8209; unicode_map[0x5A2B] = 0x64E0; 
-unicode_map[0x5A2C] = 0x64E1; unicode_map[0x5A2D] = 0x62AC; 
-unicode_map[0x5A2E] = 0x64E3; unicode_map[0x5A2F] = 0x64EF; 
-unicode_map[0x5A30] = 0x652C; unicode_map[0x5A31] = 0x64F6; 
-unicode_map[0x5A32] = 0x64F4; unicode_map[0x5A33] = 0x64F2; 
-unicode_map[0x5A34] = 0x64FA; unicode_map[0x5A35] = 0x6500; 
-unicode_map[0x5A36] = 0x64FD; unicode_map[0x5A37] = 0x6518; 
-unicode_map[0x5A38] = 0x651C; unicode_map[0x5A39] = 0x6505; 
-unicode_map[0x5A3A] = 0x6524; unicode_map[0x5A3B] = 0x6523; 
-unicode_map[0x5A3C] = 0x652B; unicode_map[0x5A3D] = 0x6534; 
-unicode_map[0x5A3E] = 0x6535; unicode_map[0x5A3F] = 0x6537; 
-unicode_map[0x5A40] = 0x6536; unicode_map[0x5A41] = 0x6538; 
-unicode_map[0x5A42] = 0x754B; unicode_map[0x5A43] = 0x6548; 
-unicode_map[0x5A44] = 0x6556; unicode_map[0x5A45] = 0x6555; 
-unicode_map[0x5A46] = 0x654D; unicode_map[0x5A47] = 0x6558; 
-unicode_map[0x5A48] = 0x655E; unicode_map[0x5A49] = 0x655D; 
-unicode_map[0x5A4A] = 0x6572; unicode_map[0x5A4B] = 0x6578; 
-unicode_map[0x5A4C] = 0x6582; unicode_map[0x5A4D] = 0x6583; 
-unicode_map[0x5A4E] = 0x8B8A; unicode_map[0x5A4F] = 0x659B; 
-unicode_map[0x5A50] = 0x659F; unicode_map[0x5A51] = 0x65AB; 
-unicode_map[0x5A52] = 0x65B7; unicode_map[0x5A53] = 0x65C3; 
-unicode_map[0x5A54] = 0x65C6; unicode_map[0x5A55] = 0x65C1; 
-unicode_map[0x5A56] = 0x65C4; unicode_map[0x5A57] = 0x65CC; 
-unicode_map[0x5A58] = 0x65D2; unicode_map[0x5A59] = 0x65DB; 
-unicode_map[0x5A5A] = 0x65D9; unicode_map[0x5A5B] = 0x65E0; 
-unicode_map[0x5A5C] = 0x65E1; unicode_map[0x5A5D] = 0x65F1; 
-unicode_map[0x5A5E] = 0x6772; unicode_map[0x5A5F] = 0x660A; 
-unicode_map[0x5A60] = 0x6603; unicode_map[0x5A61] = 0x65FB; 
-unicode_map[0x5A62] = 0x6773; unicode_map[0x5A63] = 0x6635; 
-unicode_map[0x5A64] = 0x6636; unicode_map[0x5A65] = 0x6634; 
-unicode_map[0x5A66] = 0x661C; unicode_map[0x5A67] = 0x664F; 
-unicode_map[0x5A68] = 0x6644; unicode_map[0x5A69] = 0x6649; 
-unicode_map[0x5A6A] = 0x6641; unicode_map[0x5A6B] = 0x665E; 
-unicode_map[0x5A6C] = 0x665D; unicode_map[0x5A6D] = 0x6664; 
-unicode_map[0x5A6E] = 0x6667; unicode_map[0x5A6F] = 0x6668; 
-unicode_map[0x5A70] = 0x665F; unicode_map[0x5A71] = 0x6662; 
-unicode_map[0x5A72] = 0x6670; unicode_map[0x5A73] = 0x6683; 
-unicode_map[0x5A74] = 0x6688; unicode_map[0x5A75] = 0x668E; 
-unicode_map[0x5A76] = 0x6689; unicode_map[0x5A77] = 0x6684; 
-unicode_map[0x5A78] = 0x6698; unicode_map[0x5A79] = 0x669D; 
-unicode_map[0x5A7A] = 0x66C1; unicode_map[0x5A7B] = 0x66B9; 
-unicode_map[0x5A7C] = 0x66C9; unicode_map[0x5A7D] = 0x66BE; 
-unicode_map[0x5A7E] = 0x66BC; unicode_map[0x5B21] = 0x66C4; 
-unicode_map[0x5B22] = 0x66B8; unicode_map[0x5B23] = 0x66D6; 
-unicode_map[0x5B24] = 0x66DA; unicode_map[0x5B25] = 0x66E0; 
-unicode_map[0x5B26] = 0x663F; unicode_map[0x5B27] = 0x66E6; 
-unicode_map[0x5B28] = 0x66E9; unicode_map[0x5B29] = 0x66F0; 
-unicode_map[0x5B2A] = 0x66F5; unicode_map[0x5B2B] = 0x66F7; 
-unicode_map[0x5B2C] = 0x670F; unicode_map[0x5B2D] = 0x6716; 
-unicode_map[0x5B2E] = 0x671E; unicode_map[0x5B2F] = 0x6726; 
-unicode_map[0x5B30] = 0x6727; unicode_map[0x5B31] = 0x9738; 
-unicode_map[0x5B32] = 0x672E; unicode_map[0x5B33] = 0x673F; 
-unicode_map[0x5B34] = 0x6736; unicode_map[0x5B35] = 0x6741; 
-unicode_map[0x5B36] = 0x6738; unicode_map[0x5B37] = 0x6737; 
-unicode_map[0x5B38] = 0x6746; unicode_map[0x5B39] = 0x675E; 
-unicode_map[0x5B3A] = 0x6760; unicode_map[0x5B3B] = 0x6759; 
-unicode_map[0x5B3C] = 0x6763; unicode_map[0x5B3D] = 0x6764; 
-unicode_map[0x5B3E] = 0x6789; unicode_map[0x5B3F] = 0x6770; 
-unicode_map[0x5B40] = 0x67A9; unicode_map[0x5B41] = 0x677C; 
-unicode_map[0x5B42] = 0x676A; unicode_map[0x5B43] = 0x678C; 
-unicode_map[0x5B44] = 0x678B; unicode_map[0x5B45] = 0x67A6; 
-unicode_map[0x5B46] = 0x67A1; unicode_map[0x5B47] = 0x6785; 
-unicode_map[0x5B48] = 0x67B7; unicode_map[0x5B49] = 0x67EF; 
-unicode_map[0x5B4A] = 0x67B4; unicode_map[0x5B4B] = 0x67EC; 
-unicode_map[0x5B4C] = 0x67B3; unicode_map[0x5B4D] = 0x67E9; 
-unicode_map[0x5B4E] = 0x67B8; unicode_map[0x5B4F] = 0x67E4; 
-unicode_map[0x5B50] = 0x67DE; unicode_map[0x5B51] = 0x67DD; 
-unicode_map[0x5B52] = 0x67E2; unicode_map[0x5B53] = 0x67EE; 
-unicode_map[0x5B54] = 0x67B9; unicode_map[0x5B55] = 0x67CE; 
-unicode_map[0x5B56] = 0x67C6; unicode_map[0x5B57] = 0x67E7; 
-unicode_map[0x5B58] = 0x6A9C; unicode_map[0x5B59] = 0x681E; 
-unicode_map[0x5B5A] = 0x6846; unicode_map[0x5B5B] = 0x6829; 
-unicode_map[0x5B5C] = 0x6840; unicode_map[0x5B5D] = 0x684D; 
-unicode_map[0x5B5E] = 0x6832; unicode_map[0x5B5F] = 0x684E; 
-unicode_map[0x5B60] = 0x68B3; unicode_map[0x5B61] = 0x682B; 
-unicode_map[0x5B62] = 0x6859; unicode_map[0x5B63] = 0x6863; 
-unicode_map[0x5B64] = 0x6877; unicode_map[0x5B65] = 0x687F; 
-unicode_map[0x5B66] = 0x689F; unicode_map[0x5B67] = 0x688F; 
-unicode_map[0x5B68] = 0x68AD; unicode_map[0x5B69] = 0x6894; 
-unicode_map[0x5B6A] = 0x689D; unicode_map[0x5B6B] = 0x689B; 
-unicode_map[0x5B6C] = 0x6883; unicode_map[0x5B6D] = 0x6AAE; 
-unicode_map[0x5B6E] = 0x68B9; unicode_map[0x5B6F] = 0x6874; 
-unicode_map[0x5B70] = 0x68B5; unicode_map[0x5B71] = 0x68A0; 
-unicode_map[0x5B72] = 0x68BA; unicode_map[0x5B73] = 0x690F; 
-unicode_map[0x5B74] = 0x688D; unicode_map[0x5B75] = 0x687E; 
-unicode_map[0x5B76] = 0x6901; unicode_map[0x5B77] = 0x68CA; 
-unicode_map[0x5B78] = 0x6908; unicode_map[0x5B79] = 0x68D8; 
-unicode_map[0x5B7A] = 0x6922; unicode_map[0x5B7B] = 0x6926; 
-unicode_map[0x5B7C] = 0x68E1; unicode_map[0x5B7D] = 0x690C; 
-unicode_map[0x5B7E] = 0x68CD; unicode_map[0x5C21] = 0x68D4; 
-unicode_map[0x5C22] = 0x68E7; unicode_map[0x5C23] = 0x68D5; 
-unicode_map[0x5C24] = 0x6936; unicode_map[0x5C25] = 0x6912; 
-unicode_map[0x5C26] = 0x6904; unicode_map[0x5C27] = 0x68D7; 
-unicode_map[0x5C28] = 0x68E3; unicode_map[0x5C29] = 0x6925; 
-unicode_map[0x5C2A] = 0x68F9; unicode_map[0x5C2B] = 0x68E0; 
-unicode_map[0x5C2C] = 0x68EF; unicode_map[0x5C2D] = 0x6928; 
-unicode_map[0x5C2E] = 0x692A; unicode_map[0x5C2F] = 0x691A; 
-unicode_map[0x5C30] = 0x6923; unicode_map[0x5C31] = 0x6921; 
-unicode_map[0x5C32] = 0x68C6; unicode_map[0x5C33] = 0x6979; 
-unicode_map[0x5C34] = 0x6977; unicode_map[0x5C35] = 0x695C; 
-unicode_map[0x5C36] = 0x6978; unicode_map[0x5C37] = 0x696B; 
-unicode_map[0x5C38] = 0x6954; unicode_map[0x5C39] = 0x697E; 
-unicode_map[0x5C3A] = 0x696E; unicode_map[0x5C3B] = 0x6939; 
-unicode_map[0x5C3C] = 0x6974; unicode_map[0x5C3D] = 0x693D; 
-unicode_map[0x5C3E] = 0x6959; unicode_map[0x5C3F] = 0x6930; 
-unicode_map[0x5C40] = 0x6961; unicode_map[0x5C41] = 0x695E; 
-unicode_map[0x5C42] = 0x695D; unicode_map[0x5C43] = 0x6981; 
-unicode_map[0x5C44] = 0x696A; unicode_map[0x5C45] = 0x69B2; 
-unicode_map[0x5C46] = 0x69AE; unicode_map[0x5C47] = 0x69D0; 
-unicode_map[0x5C48] = 0x69BF; unicode_map[0x5C49] = 0x69C1; 
-unicode_map[0x5C4A] = 0x69D3; unicode_map[0x5C4B] = 0x69BE; 
-unicode_map[0x5C4C] = 0x69CE; unicode_map[0x5C4D] = 0x5BE8; 
-unicode_map[0x5C4E] = 0x69CA; unicode_map[0x5C4F] = 0x69DD; 
-unicode_map[0x5C50] = 0x69BB; unicode_map[0x5C51] = 0x69C3; 
-unicode_map[0x5C52] = 0x69A7; unicode_map[0x5C53] = 0x6A2E; 
-unicode_map[0x5C54] = 0x6991; unicode_map[0x5C55] = 0x69A0; 
-unicode_map[0x5C56] = 0x699C; unicode_map[0x5C57] = 0x6995; 
-unicode_map[0x5C58] = 0x69B4; unicode_map[0x5C59] = 0x69DE; 
-unicode_map[0x5C5A] = 0x69E8; unicode_map[0x5C5B] = 0x6A02; 
-unicode_map[0x5C5C] = 0x6A1B; unicode_map[0x5C5D] = 0x69FF; 
-unicode_map[0x5C5E] = 0x6B0A; unicode_map[0x5C5F] = 0x69F9; 
-unicode_map[0x5C60] = 0x69F2; unicode_map[0x5C61] = 0x69E7; 
-unicode_map[0x5C62] = 0x6A05; unicode_map[0x5C63] = 0x69B1; 
-unicode_map[0x5C64] = 0x6A1E; unicode_map[0x5C65] = 0x69ED; 
-unicode_map[0x5C66] = 0x6A14; unicode_map[0x5C67] = 0x69EB; 
-unicode_map[0x5C68] = 0x6A0A; unicode_map[0x5C69] = 0x6A12; 
-unicode_map[0x5C6A] = 0x6AC1; unicode_map[0x5C6B] = 0x6A23; 
-unicode_map[0x5C6C] = 0x6A13; unicode_map[0x5C6D] = 0x6A44; 
-unicode_map[0x5C6E] = 0x6A0C; unicode_map[0x5C6F] = 0x6A72; 
-unicode_map[0x5C70] = 0x6A36; unicode_map[0x5C71] = 0x6A78; 
-unicode_map[0x5C72] = 0x6A47; unicode_map[0x5C73] = 0x6A62; 
-unicode_map[0x5C74] = 0x6A59; unicode_map[0x5C75] = 0x6A66; 
-unicode_map[0x5C76] = 0x6A48; unicode_map[0x5C77] = 0x6A38; 
-unicode_map[0x5C78] = 0x6A22; unicode_map[0x5C79] = 0x6A90; 
-unicode_map[0x5C7A] = 0x6A8D; unicode_map[0x5C7B] = 0x6AA0; 
-unicode_map[0x5C7C] = 0x6A84; unicode_map[0x5C7D] = 0x6AA2; 
-unicode_map[0x5C7E] = 0x6AA3; unicode_map[0x5D21] = 0x6A97; 
-unicode_map[0x5D22] = 0x8617; unicode_map[0x5D23] = 0x6ABB; 
-unicode_map[0x5D24] = 0x6AC3; unicode_map[0x5D25] = 0x6AC2; 
-unicode_map[0x5D26] = 0x6AB8; unicode_map[0x5D27] = 0x6AB3; 
-unicode_map[0x5D28] = 0x6AAC; unicode_map[0x5D29] = 0x6ADE; 
-unicode_map[0x5D2A] = 0x6AD1; unicode_map[0x5D2B] = 0x6ADF; 
-unicode_map[0x5D2C] = 0x6AAA; unicode_map[0x5D2D] = 0x6ADA; 
-unicode_map[0x5D2E] = 0x6AEA; unicode_map[0x5D2F] = 0x6AFB; 
-unicode_map[0x5D30] = 0x6B05; unicode_map[0x5D31] = 0x8616; 
-unicode_map[0x5D32] = 0x6AFA; unicode_map[0x5D33] = 0x6B12; 
-unicode_map[0x5D34] = 0x6B16; unicode_map[0x5D35] = 0x9B31; 
-unicode_map[0x5D36] = 0x6B1F; unicode_map[0x5D37] = 0x6B38; 
-unicode_map[0x5D38] = 0x6B37; unicode_map[0x5D39] = 0x76DC; 
-unicode_map[0x5D3A] = 0x6B39; unicode_map[0x5D3B] = 0x98EE; 
-unicode_map[0x5D3C] = 0x6B47; unicode_map[0x5D3D] = 0x6B43; 
-unicode_map[0x5D3E] = 0x6B49; unicode_map[0x5D3F] = 0x6B50; 
-unicode_map[0x5D40] = 0x6B59; unicode_map[0x5D41] = 0x6B54; 
-unicode_map[0x5D42] = 0x6B5B; unicode_map[0x5D43] = 0x6B5F; 
-unicode_map[0x5D44] = 0x6B61; unicode_map[0x5D45] = 0x6B78; 
-unicode_map[0x5D46] = 0x6B79; unicode_map[0x5D47] = 0x6B7F; 
-unicode_map[0x5D48] = 0x6B80; unicode_map[0x5D49] = 0x6B84; 
-unicode_map[0x5D4A] = 0x6B83; unicode_map[0x5D4B] = 0x6B8D; 
-unicode_map[0x5D4C] = 0x6B98; unicode_map[0x5D4D] = 0x6B95; 
-unicode_map[0x5D4E] = 0x6B9E; unicode_map[0x5D4F] = 0x6BA4; 
-unicode_map[0x5D50] = 0x6BAA; unicode_map[0x5D51] = 0x6BAB; 
-unicode_map[0x5D52] = 0x6BAF; unicode_map[0x5D53] = 0x6BB2; 
-unicode_map[0x5D54] = 0x6BB1; unicode_map[0x5D55] = 0x6BB3; 
-unicode_map[0x5D56] = 0x6BB7; unicode_map[0x5D57] = 0x6BBC; 
-unicode_map[0x5D58] = 0x6BC6; unicode_map[0x5D59] = 0x6BCB; 
-unicode_map[0x5D5A] = 0x6BD3; unicode_map[0x5D5B] = 0x6BDF; 
-unicode_map[0x5D5C] = 0x6BEC; unicode_map[0x5D5D] = 0x6BEB; 
-unicode_map[0x5D5E] = 0x6BF3; unicode_map[0x5D5F] = 0x6BEF; 
-unicode_map[0x5D60] = 0x9EBE; unicode_map[0x5D61] = 0x6C08; 
-unicode_map[0x5D62] = 0x6C13; unicode_map[0x5D63] = 0x6C14; 
-unicode_map[0x5D64] = 0x6C1B; unicode_map[0x5D65] = 0x6C24; 
-unicode_map[0x5D66] = 0x6C23; unicode_map[0x5D67] = 0x6C5E; 
-unicode_map[0x5D68] = 0x6C55; unicode_map[0x5D69] = 0x6C62; 
-unicode_map[0x5D6A] = 0x6C6A; unicode_map[0x5D6B] = 0x6C82; 
-unicode_map[0x5D6C] = 0x6C8D; unicode_map[0x5D6D] = 0x6C9A; 
-unicode_map[0x5D6E] = 0x6C81; unicode_map[0x5D6F] = 0x6C9B; 
-unicode_map[0x5D70] = 0x6C7E; unicode_map[0x5D71] = 0x6C68; 
-unicode_map[0x5D72] = 0x6C73; unicode_map[0x5D73] = 0x6C92; 
-unicode_map[0x5D74] = 0x6C90; unicode_map[0x5D75] = 0x6CC4; 
-unicode_map[0x5D76] = 0x6CF1; unicode_map[0x5D77] = 0x6CD3; 
-unicode_map[0x5D78] = 0x6CBD; unicode_map[0x5D79] = 0x6CD7; 
-unicode_map[0x5D7A] = 0x6CC5; unicode_map[0x5D7B] = 0x6CDD; 
-unicode_map[0x5D7C] = 0x6CAE; unicode_map[0x5D7D] = 0x6CB1; 
-unicode_map[0x5D7E] = 0x6CBE; unicode_map[0x5E21] = 0x6CBA; 
-unicode_map[0x5E22] = 0x6CDB; unicode_map[0x5E23] = 0x6CEF; 
-unicode_map[0x5E24] = 0x6CD9; unicode_map[0x5E25] = 0x6CEA; 
-unicode_map[0x5E26] = 0x6D1F; unicode_map[0x5E27] = 0x884D; 
-unicode_map[0x5E28] = 0x6D36; unicode_map[0x5E29] = 0x6D2B; 
-unicode_map[0x5E2A] = 0x6D3D; unicode_map[0x5E2B] = 0x6D38; 
-unicode_map[0x5E2C] = 0x6D19; unicode_map[0x5E2D] = 0x6D35; 
-unicode_map[0x5E2E] = 0x6D33; unicode_map[0x5E2F] = 0x6D12; 
-unicode_map[0x5E30] = 0x6D0C; unicode_map[0x5E31] = 0x6D63; 
-unicode_map[0x5E32] = 0x6D93; unicode_map[0x5E33] = 0x6D64; 
-unicode_map[0x5E34] = 0x6D5A; unicode_map[0x5E35] = 0x6D79; 
-unicode_map[0x5E36] = 0x6D59; unicode_map[0x5E37] = 0x6D8E; 
-unicode_map[0x5E38] = 0x6D95; unicode_map[0x5E39] = 0x6FE4; 
-unicode_map[0x5E3A] = 0x6D85; unicode_map[0x5E3B] = 0x6DF9; 
-unicode_map[0x5E3C] = 0x6E15; unicode_map[0x5E3D] = 0x6E0A; 
-unicode_map[0x5E3E] = 0x6DB5; unicode_map[0x5E3F] = 0x6DC7; 
-unicode_map[0x5E40] = 0x6DE6; unicode_map[0x5E41] = 0x6DB8; 
-unicode_map[0x5E42] = 0x6DC6; unicode_map[0x5E43] = 0x6DEC; 
-unicode_map[0x5E44] = 0x6DDE; unicode_map[0x5E45] = 0x6DCC; 
-unicode_map[0x5E46] = 0x6DE8; unicode_map[0x5E47] = 0x6DD2; 
-unicode_map[0x5E48] = 0x6DC5; unicode_map[0x5E49] = 0x6DFA; 
-unicode_map[0x5E4A] = 0x6DD9; unicode_map[0x5E4B] = 0x6DE4; 
-unicode_map[0x5E4C] = 0x6DD5; unicode_map[0x5E4D] = 0x6DEA; 
-unicode_map[0x5E4E] = 0x6DEE; unicode_map[0x5E4F] = 0x6E2D; 
-unicode_map[0x5E50] = 0x6E6E; unicode_map[0x5E51] = 0x6E2E; 
-unicode_map[0x5E52] = 0x6E19; unicode_map[0x5E53] = 0x6E72; 
-unicode_map[0x5E54] = 0x6E5F; unicode_map[0x5E55] = 0x6E3E; 
-unicode_map[0x5E56] = 0x6E23; unicode_map[0x5E57] = 0x6E6B; 
-unicode_map[0x5E58] = 0x6E2B; unicode_map[0x5E59] = 0x6E76; 
-unicode_map[0x5E5A] = 0x6E4D; unicode_map[0x5E5B] = 0x6E1F; 
-unicode_map[0x5E5C] = 0x6E43; unicode_map[0x5E5D] = 0x6E3A; 
-unicode_map[0x5E5E] = 0x6E4E; unicode_map[0x5E5F] = 0x6E24; 
-unicode_map[0x5E60] = 0x6EFF; unicode_map[0x5E61] = 0x6E1D; 
-unicode_map[0x5E62] = 0x6E38; unicode_map[0x5E63] = 0x6E82; 
-unicode_map[0x5E64] = 0x6EAA; unicode_map[0x5E65] = 0x6E98; 
-unicode_map[0x5E66] = 0x6EC9; unicode_map[0x5E67] = 0x6EB7; 
-unicode_map[0x5E68] = 0x6ED3; unicode_map[0x5E69] = 0x6EBD; 
-unicode_map[0x5E6A] = 0x6EAF; unicode_map[0x5E6B] = 0x6EC4; 
-unicode_map[0x5E6C] = 0x6EB2; unicode_map[0x5E6D] = 0x6ED4; 
-unicode_map[0x5E6E] = 0x6ED5; unicode_map[0x5E6F] = 0x6E8F; 
-unicode_map[0x5E70] = 0x6EA5; unicode_map[0x5E71] = 0x6EC2; 
-unicode_map[0x5E72] = 0x6E9F; unicode_map[0x5E73] = 0x6F41; 
-unicode_map[0x5E74] = 0x6F11; unicode_map[0x5E75] = 0x704C; 
-unicode_map[0x5E76] = 0x6EEC; unicode_map[0x5E77] = 0x6EF8; 
-unicode_map[0x5E78] = 0x6EFE; unicode_map[0x5E79] = 0x6F3F; 
-unicode_map[0x5E7A] = 0x6EF2; unicode_map[0x5E7B] = 0x6F31; 
-unicode_map[0x5E7C] = 0x6EEF; unicode_map[0x5E7D] = 0x6F32; 
-unicode_map[0x5E7E] = 0x6ECC; unicode_map[0x5F21] = 0x6F3E; 
-unicode_map[0x5F22] = 0x6F13; unicode_map[0x5F23] = 0x6EF7; 
-unicode_map[0x5F24] = 0x6F86; unicode_map[0x5F25] = 0x6F7A; 
-unicode_map[0x5F26] = 0x6F78; unicode_map[0x5F27] = 0x6F81; 
-unicode_map[0x5F28] = 0x6F80; unicode_map[0x5F29] = 0x6F6F; 
-unicode_map[0x5F2A] = 0x6F5B; unicode_map[0x5F2B] = 0x6FF3; 
-unicode_map[0x5F2C] = 0x6F6D; unicode_map[0x5F2D] = 0x6F82; 
-unicode_map[0x5F2E] = 0x6F7C; unicode_map[0x5F2F] = 0x6F58; 
-unicode_map[0x5F30] = 0x6F8E; unicode_map[0x5F31] = 0x6F91; 
-unicode_map[0x5F32] = 0x6FC2; unicode_map[0x5F33] = 0x6F66; 
-unicode_map[0x5F34] = 0x6FB3; unicode_map[0x5F35] = 0x6FA3; 
-unicode_map[0x5F36] = 0x6FA1; unicode_map[0x5F37] = 0x6FA4; 
-unicode_map[0x5F38] = 0x6FB9; unicode_map[0x5F39] = 0x6FC6; 
-unicode_map[0x5F3A] = 0x6FAA; unicode_map[0x5F3B] = 0x6FDF; 
-unicode_map[0x5F3C] = 0x6FD5; unicode_map[0x5F3D] = 0x6FEC; 
-unicode_map[0x5F3E] = 0x6FD4; unicode_map[0x5F3F] = 0x6FD8; 
-unicode_map[0x5F40] = 0x6FF1; unicode_map[0x5F41] = 0x6FEE; 
-unicode_map[0x5F42] = 0x6FDB; unicode_map[0x5F43] = 0x7009; 
-unicode_map[0x5F44] = 0x700B; unicode_map[0x5F45] = 0x6FFA; 
-unicode_map[0x5F46] = 0x7011; unicode_map[0x5F47] = 0x7001; 
-unicode_map[0x5F48] = 0x700F; unicode_map[0x5F49] = 0x6FFE; 
-unicode_map[0x5F4A] = 0x701B; unicode_map[0x5F4B] = 0x701A; 
-unicode_map[0x5F4C] = 0x6F74; unicode_map[0x5F4D] = 0x701D; 
-unicode_map[0x5F4E] = 0x7018; unicode_map[0x5F4F] = 0x701F; 
-unicode_map[0x5F50] = 0x7030; unicode_map[0x5F51] = 0x703E; 
-unicode_map[0x5F52] = 0x7032; unicode_map[0x5F53] = 0x7051; 
-unicode_map[0x5F54] = 0x7063; unicode_map[0x5F55] = 0x7099; 
-unicode_map[0x5F56] = 0x7092; unicode_map[0x5F57] = 0x70AF; 
-unicode_map[0x5F58] = 0x70F1; unicode_map[0x5F59] = 0x70AC; 
-unicode_map[0x5F5A] = 0x70B8; unicode_map[0x5F5B] = 0x70B3; 
-unicode_map[0x5F5C] = 0x70AE; unicode_map[0x5F5D] = 0x70DF; 
-unicode_map[0x5F5E] = 0x70CB; unicode_map[0x5F5F] = 0x70DD; 
-unicode_map[0x5F60] = 0x70D9; unicode_map[0x5F61] = 0x7109; 
-unicode_map[0x5F62] = 0x70FD; unicode_map[0x5F63] = 0x711C; 
-unicode_map[0x5F64] = 0x7119; unicode_map[0x5F65] = 0x7165; 
-unicode_map[0x5F66] = 0x7155; unicode_map[0x5F67] = 0x7188; 
-unicode_map[0x5F68] = 0x7166; unicode_map[0x5F69] = 0x7162; 
-unicode_map[0x5F6A] = 0x714C; unicode_map[0x5F6B] = 0x7156; 
-unicode_map[0x5F6C] = 0x716C; unicode_map[0x5F6D] = 0x718F; 
-unicode_map[0x5F6E] = 0x71FB; unicode_map[0x5F6F] = 0x7184; 
-unicode_map[0x5F70] = 0x7195; unicode_map[0x5F71] = 0x71A8; 
-unicode_map[0x5F72] = 0x71AC; unicode_map[0x5F73] = 0x71D7; 
-unicode_map[0x5F74] = 0x71B9; unicode_map[0x5F75] = 0x71BE; 
-unicode_map[0x5F76] = 0x71D2; unicode_map[0x5F77] = 0x71C9; 
-unicode_map[0x5F78] = 0x71D4; unicode_map[0x5F79] = 0x71CE; 
-unicode_map[0x5F7A] = 0x71E0; unicode_map[0x5F7B] = 0x71EC; 
-unicode_map[0x5F7C] = 0x71E7; unicode_map[0x5F7D] = 0x71F5; 
-unicode_map[0x5F7E] = 0x71FC; unicode_map[0x6021] = 0x71F9; 
-unicode_map[0x6022] = 0x71FF; unicode_map[0x6023] = 0x720D; 
-unicode_map[0x6024] = 0x7210; unicode_map[0x6025] = 0x721B; 
-unicode_map[0x6026] = 0x7228; unicode_map[0x6027] = 0x722D; 
-unicode_map[0x6028] = 0x722C; unicode_map[0x6029] = 0x7230; 
-unicode_map[0x602A] = 0x7232; unicode_map[0x602B] = 0x723B; 
-unicode_map[0x602C] = 0x723C; unicode_map[0x602D] = 0x723F; 
-unicode_map[0x602E] = 0x7240; unicode_map[0x602F] = 0x7246; 
-unicode_map[0x6030] = 0x724B; unicode_map[0x6031] = 0x7258; 
-unicode_map[0x6032] = 0x7274; unicode_map[0x6033] = 0x727E; 
-unicode_map[0x6034] = 0x7282; unicode_map[0x6035] = 0x7281; 
-unicode_map[0x6036] = 0x7287; unicode_map[0x6037] = 0x7292; 
-unicode_map[0x6038] = 0x7296; unicode_map[0x6039] = 0x72A2; 
-unicode_map[0x603A] = 0x72A7; unicode_map[0x603B] = 0x72B9; 
-unicode_map[0x603C] = 0x72B2; unicode_map[0x603D] = 0x72C3; 
-unicode_map[0x603E] = 0x72C6; unicode_map[0x603F] = 0x72C4; 
-unicode_map[0x6040] = 0x72CE; unicode_map[0x6041] = 0x72D2; 
-unicode_map[0x6042] = 0x72E2; unicode_map[0x6043] = 0x72E0; 
-unicode_map[0x6044] = 0x72E1; unicode_map[0x6045] = 0x72F9; 
-unicode_map[0x6046] = 0x72F7; unicode_map[0x6047] = 0x500F; 
-unicode_map[0x6048] = 0x7317; unicode_map[0x6049] = 0x730A; 
-unicode_map[0x604A] = 0x731C; unicode_map[0x604B] = 0x7316; 
-unicode_map[0x604C] = 0x731D; unicode_map[0x604D] = 0x7334; 
-unicode_map[0x604E] = 0x732F; unicode_map[0x604F] = 0x7329; 
-unicode_map[0x6050] = 0x7325; unicode_map[0x6051] = 0x733E; 
-unicode_map[0x6052] = 0x734E; unicode_map[0x6053] = 0x734F; 
-unicode_map[0x6054] = 0x9ED8; unicode_map[0x6055] = 0x7357; 
-unicode_map[0x6056] = 0x736A; unicode_map[0x6057] = 0x7368; 
-unicode_map[0x6058] = 0x7370; unicode_map[0x6059] = 0x7378; 
-unicode_map[0x605A] = 0x7375; unicode_map[0x605B] = 0x737B; 
-unicode_map[0x605C] = 0x737A; unicode_map[0x605D] = 0x73C8; 
-unicode_map[0x605E] = 0x73B3; unicode_map[0x605F] = 0x73CE; 
-unicode_map[0x6060] = 0x73BB; unicode_map[0x6061] = 0x73C0; 
-unicode_map[0x6062] = 0x73E5; unicode_map[0x6063] = 0x73EE; 
-unicode_map[0x6064] = 0x73DE; unicode_map[0x6065] = 0x74A2; 
-unicode_map[0x6066] = 0x7405; unicode_map[0x6067] = 0x746F; 
-unicode_map[0x6068] = 0x7425; unicode_map[0x6069] = 0x73F8; 
-unicode_map[0x606A] = 0x7432; unicode_map[0x606B] = 0x743A; 
-unicode_map[0x606C] = 0x7455; unicode_map[0x606D] = 0x743F; 
-unicode_map[0x606E] = 0x745F; unicode_map[0x606F] = 0x7459; 
-unicode_map[0x6070] = 0x7441; unicode_map[0x6071] = 0x745C; 
-unicode_map[0x6072] = 0x7469; unicode_map[0x6073] = 0x7470; 
-unicode_map[0x6074] = 0x7463; unicode_map[0x6075] = 0x746A; 
-unicode_map[0x6076] = 0x7476; unicode_map[0x6077] = 0x747E; 
-unicode_map[0x6078] = 0x748B; unicode_map[0x6079] = 0x749E; 
-unicode_map[0x607A] = 0x74A7; unicode_map[0x607B] = 0x74CA; 
-unicode_map[0x607C] = 0x74CF; unicode_map[0x607D] = 0x74D4; 
-unicode_map[0x607E] = 0x73F1; unicode_map[0x6121] = 0x74E0; 
-unicode_map[0x6122] = 0x74E3; unicode_map[0x6123] = 0x74E7; 
-unicode_map[0x6124] = 0x74E9; unicode_map[0x6125] = 0x74EE; 
-unicode_map[0x6126] = 0x74F2; unicode_map[0x6127] = 0x74F0; 
-unicode_map[0x6128] = 0x74F1; unicode_map[0x6129] = 0x74F8; 
-unicode_map[0x612A] = 0x74F7; unicode_map[0x612B] = 0x7504; 
-unicode_map[0x612C] = 0x7503; unicode_map[0x612D] = 0x7505; 
-unicode_map[0x612E] = 0x750C; unicode_map[0x612F] = 0x750E; 
-unicode_map[0x6130] = 0x750D; unicode_map[0x6131] = 0x7515; 
-unicode_map[0x6132] = 0x7513; unicode_map[0x6133] = 0x751E; 
-unicode_map[0x6134] = 0x7526; unicode_map[0x6135] = 0x752C; 
-unicode_map[0x6136] = 0x753C; unicode_map[0x6137] = 0x7544; 
-unicode_map[0x6138] = 0x754D; unicode_map[0x6139] = 0x754A; 
-unicode_map[0x613A] = 0x7549; unicode_map[0x613B] = 0x755B; 
-unicode_map[0x613C] = 0x7546; unicode_map[0x613D] = 0x755A; 
-unicode_map[0x613E] = 0x7569; unicode_map[0x613F] = 0x7564; 
-unicode_map[0x6140] = 0x7567; unicode_map[0x6141] = 0x756B; 
-unicode_map[0x6142] = 0x756D; unicode_map[0x6143] = 0x7578; 
-unicode_map[0x6144] = 0x7576; unicode_map[0x6145] = 0x7586; 
-unicode_map[0x6146] = 0x7587; unicode_map[0x6147] = 0x7574; 
-unicode_map[0x6148] = 0x758A; unicode_map[0x6149] = 0x7589; 
-unicode_map[0x614A] = 0x7582; unicode_map[0x614B] = 0x7594; 
-unicode_map[0x614C] = 0x759A; unicode_map[0x614D] = 0x759D; 
-unicode_map[0x614E] = 0x75A5; unicode_map[0x614F] = 0x75A3; 
-unicode_map[0x6150] = 0x75C2; unicode_map[0x6151] = 0x75B3; 
-unicode_map[0x6152] = 0x75C3; unicode_map[0x6153] = 0x75B5; 
-unicode_map[0x6154] = 0x75BD; unicode_map[0x6155] = 0x75B8; 
-unicode_map[0x6156] = 0x75BC; unicode_map[0x6157] = 0x75B1; 
-unicode_map[0x6158] = 0x75CD; unicode_map[0x6159] = 0x75CA; 
-unicode_map[0x615A] = 0x75D2; unicode_map[0x615B] = 0x75D9; 
-unicode_map[0x615C] = 0x75E3; unicode_map[0x615D] = 0x75DE; 
-unicode_map[0x615E] = 0x75FE; unicode_map[0x615F] = 0x75FF; 
-unicode_map[0x6160] = 0x75FC; unicode_map[0x6161] = 0x7601; 
-unicode_map[0x6162] = 0x75F0; unicode_map[0x6163] = 0x75FA; 
-unicode_map[0x6164] = 0x75F2; unicode_map[0x6165] = 0x75F3; 
-unicode_map[0x6166] = 0x760B; unicode_map[0x6167] = 0x760D; 
-unicode_map[0x6168] = 0x7609; unicode_map[0x6169] = 0x761F; 
-unicode_map[0x616A] = 0x7627; unicode_map[0x616B] = 0x7620; 
-unicode_map[0x616C] = 0x7621; unicode_map[0x616D] = 0x7622; 
-unicode_map[0x616E] = 0x7624; unicode_map[0x616F] = 0x7634; 
-unicode_map[0x6170] = 0x7630; unicode_map[0x6171] = 0x763B; 
-unicode_map[0x6172] = 0x7647; unicode_map[0x6173] = 0x7648; 
-unicode_map[0x6174] = 0x7646; unicode_map[0x6175] = 0x765C; 
-unicode_map[0x6176] = 0x7658; unicode_map[0x6177] = 0x7661; 
-unicode_map[0x6178] = 0x7662; unicode_map[0x6179] = 0x7668; 
-unicode_map[0x617A] = 0x7669; unicode_map[0x617B] = 0x766A; 
-unicode_map[0x617C] = 0x7667; unicode_map[0x617D] = 0x766C; 
-unicode_map[0x617E] = 0x7670; unicode_map[0x6221] = 0x7672; 
-unicode_map[0x6222] = 0x7676; unicode_map[0x6223] = 0x7678; 
-unicode_map[0x6224] = 0x767C; unicode_map[0x6225] = 0x7680; 
-unicode_map[0x6226] = 0x7683; unicode_map[0x6227] = 0x7688; 
-unicode_map[0x6228] = 0x768B; unicode_map[0x6229] = 0x768E; 
-unicode_map[0x622A] = 0x7696; unicode_map[0x622B] = 0x7693; 
-unicode_map[0x622C] = 0x7699; unicode_map[0x622D] = 0x769A; 
-unicode_map[0x622E] = 0x76B0; unicode_map[0x622F] = 0x76B4; 
-unicode_map[0x6230] = 0x76B8; unicode_map[0x6231] = 0x76B9; 
-unicode_map[0x6232] = 0x76BA; unicode_map[0x6233] = 0x76C2; 
-unicode_map[0x6234] = 0x76CD; unicode_map[0x6235] = 0x76D6; 
-unicode_map[0x6236] = 0x76D2; unicode_map[0x6237] = 0x76DE; 
-unicode_map[0x6238] = 0x76E1; unicode_map[0x6239] = 0x76E5; 
-unicode_map[0x623A] = 0x76E7; unicode_map[0x623B] = 0x76EA; 
-unicode_map[0x623C] = 0x862F; unicode_map[0x623D] = 0x76FB; 
-unicode_map[0x623E] = 0x7708; unicode_map[0x623F] = 0x7707; 
-unicode_map[0x6240] = 0x7704; unicode_map[0x6241] = 0x7729; 
-unicode_map[0x6242] = 0x7724; unicode_map[0x6243] = 0x771E; 
-unicode_map[0x6244] = 0x7725; unicode_map[0x6245] = 0x7726; 
-unicode_map[0x6246] = 0x771B; unicode_map[0x6247] = 0x7737; 
-unicode_map[0x6248] = 0x7738; unicode_map[0x6249] = 0x7747; 
-unicode_map[0x624A] = 0x775A; unicode_map[0x624B] = 0x7768; 
-unicode_map[0x624C] = 0x776B; unicode_map[0x624D] = 0x775B; 
-unicode_map[0x624E] = 0x7765; unicode_map[0x624F] = 0x777F; 
-unicode_map[0x6250] = 0x777E; unicode_map[0x6251] = 0x7779; 
-unicode_map[0x6252] = 0x778E; unicode_map[0x6253] = 0x778B; 
-unicode_map[0x6254] = 0x7791; unicode_map[0x6255] = 0x77A0; 
-unicode_map[0x6256] = 0x779E; unicode_map[0x6257] = 0x77B0; 
-unicode_map[0x6258] = 0x77B6; unicode_map[0x6259] = 0x77B9; 
-unicode_map[0x625A] = 0x77BF; unicode_map[0x625B] = 0x77BC; 
-unicode_map[0x625C] = 0x77BD; unicode_map[0x625D] = 0x77BB; 
-unicode_map[0x625E] = 0x77C7; unicode_map[0x625F] = 0x77CD; 
-unicode_map[0x6260] = 0x77D7; unicode_map[0x6261] = 0x77DA; 
-unicode_map[0x6262] = 0x77DC; unicode_map[0x6263] = 0x77E3; 
-unicode_map[0x6264] = 0x77EE; unicode_map[0x6265] = 0x77FC; 
-unicode_map[0x6266] = 0x780C; unicode_map[0x6267] = 0x7812; 
-unicode_map[0x6268] = 0x7926; unicode_map[0x6269] = 0x7820; 
-unicode_map[0x626A] = 0x792A; unicode_map[0x626B] = 0x7845; 
-unicode_map[0x626C] = 0x788E; unicode_map[0x626D] = 0x7874; 
-unicode_map[0x626E] = 0x7886; unicode_map[0x626F] = 0x787C; 
-unicode_map[0x6270] = 0x789A; unicode_map[0x6271] = 0x788C; 
-unicode_map[0x6272] = 0x78A3; unicode_map[0x6273] = 0x78B5; 
-unicode_map[0x6274] = 0x78AA; unicode_map[0x6275] = 0x78AF; 
-unicode_map[0x6276] = 0x78D1; unicode_map[0x6277] = 0x78C6; 
-unicode_map[0x6278] = 0x78CB; unicode_map[0x6279] = 0x78D4; 
-unicode_map[0x627A] = 0x78BE; unicode_map[0x627B] = 0x78BC; 
-unicode_map[0x627C] = 0x78C5; unicode_map[0x627D] = 0x78CA; 
-unicode_map[0x627E] = 0x78EC; unicode_map[0x6321] = 0x78E7; 
-unicode_map[0x6322] = 0x78DA; unicode_map[0x6323] = 0x78FD; 
-unicode_map[0x6324] = 0x78F4; unicode_map[0x6325] = 0x7907; 
-unicode_map[0x6326] = 0x7912; unicode_map[0x6327] = 0x7911; 
-unicode_map[0x6328] = 0x7919; unicode_map[0x6329] = 0x792C; 
-unicode_map[0x632A] = 0x792B; unicode_map[0x632B] = 0x7940; 
-unicode_map[0x632C] = 0x7960; unicode_map[0x632D] = 0x7957; 
-unicode_map[0x632E] = 0x795F; unicode_map[0x632F] = 0x795A; 
-unicode_map[0x6330] = 0x7955; unicode_map[0x6331] = 0x7953; 
-unicode_map[0x6332] = 0x797A; unicode_map[0x6333] = 0x797F; 
-unicode_map[0x6334] = 0x798A; unicode_map[0x6335] = 0x799D; 
-unicode_map[0x6336] = 0x79A7; unicode_map[0x6337] = 0x9F4B; 
-unicode_map[0x6338] = 0x79AA; unicode_map[0x6339] = 0x79AE; 
-unicode_map[0x633A] = 0x79B3; unicode_map[0x633B] = 0x79B9; 
-unicode_map[0x633C] = 0x79BA; unicode_map[0x633D] = 0x79C9; 
-unicode_map[0x633E] = 0x79D5; unicode_map[0x633F] = 0x79E7; 
-unicode_map[0x6340] = 0x79EC; unicode_map[0x6341] = 0x79E1; 
-unicode_map[0x6342] = 0x79E3; unicode_map[0x6343] = 0x7A08; 
-unicode_map[0x6344] = 0x7A0D; unicode_map[0x6345] = 0x7A18; 
-unicode_map[0x6346] = 0x7A19; unicode_map[0x6347] = 0x7A20; 
-unicode_map[0x6348] = 0x7A1F; unicode_map[0x6349] = 0x7980; 
-unicode_map[0x634A] = 0x7A31; unicode_map[0x634B] = 0x7A3B; 
-unicode_map[0x634C] = 0x7A3E; unicode_map[0x634D] = 0x7A37; 
-unicode_map[0x634E] = 0x7A43; unicode_map[0x634F] = 0x7A57; 
-unicode_map[0x6350] = 0x7A49; unicode_map[0x6351] = 0x7A61; 
-unicode_map[0x6352] = 0x7A62; unicode_map[0x6353] = 0x7A69; 
-unicode_map[0x6354] = 0x9F9D; unicode_map[0x6355] = 0x7A70; 
-unicode_map[0x6356] = 0x7A79; unicode_map[0x6357] = 0x7A7D; 
-unicode_map[0x6358] = 0x7A88; unicode_map[0x6359] = 0x7A97; 
-unicode_map[0x635A] = 0x7A95; unicode_map[0x635B] = 0x7A98; 
-unicode_map[0x635C] = 0x7A96; unicode_map[0x635D] = 0x7AA9; 
-unicode_map[0x635E] = 0x7AC8; unicode_map[0x635F] = 0x7AB0; 
-unicode_map[0x6360] = 0x7AB6; unicode_map[0x6361] = 0x7AC5; 
-unicode_map[0x6362] = 0x7AC4; unicode_map[0x6363] = 0x7ABF; 
-unicode_map[0x6364] = 0x9083; unicode_map[0x6365] = 0x7AC7; 
-unicode_map[0x6366] = 0x7ACA; unicode_map[0x6367] = 0x7ACD; 
-unicode_map[0x6368] = 0x7ACF; unicode_map[0x6369] = 0x7AD5; 
-unicode_map[0x636A] = 0x7AD3; unicode_map[0x636B] = 0x7AD9; 
-unicode_map[0x636C] = 0x7ADA; unicode_map[0x636D] = 0x7ADD; 
-unicode_map[0x636E] = 0x7AE1; unicode_map[0x636F] = 0x7AE2; 
-unicode_map[0x6370] = 0x7AE6; unicode_map[0x6371] = 0x7AED; 
-unicode_map[0x6372] = 0x7AF0; unicode_map[0x6373] = 0x7B02; 
-unicode_map[0x6374] = 0x7B0F; unicode_map[0x6375] = 0x7B0A; 
-unicode_map[0x6376] = 0x7B06; unicode_map[0x6377] = 0x7B33; 
-unicode_map[0x6378] = 0x7B18; unicode_map[0x6379] = 0x7B19; 
-unicode_map[0x637A] = 0x7B1E; unicode_map[0x637B] = 0x7B35; 
-unicode_map[0x637C] = 0x7B28; unicode_map[0x637D] = 0x7B36; 
-unicode_map[0x637E] = 0x7B50; unicode_map[0x6421] = 0x7B7A; 
-unicode_map[0x6422] = 0x7B04; unicode_map[0x6423] = 0x7B4D; 
-unicode_map[0x6424] = 0x7B0B; unicode_map[0x6425] = 0x7B4C; 
-unicode_map[0x6426] = 0x7B45; unicode_map[0x6427] = 0x7B75; 
-unicode_map[0x6428] = 0x7B65; unicode_map[0x6429] = 0x7B74; 
-unicode_map[0x642A] = 0x7B67; unicode_map[0x642B] = 0x7B70; 
-unicode_map[0x642C] = 0x7B71; unicode_map[0x642D] = 0x7B6C; 
-unicode_map[0x642E] = 0x7B6E; unicode_map[0x642F] = 0x7B9D; 
-unicode_map[0x6430] = 0x7B98; unicode_map[0x6431] = 0x7B9F; 
-unicode_map[0x6432] = 0x7B8D; unicode_map[0x6433] = 0x7B9C; 
-unicode_map[0x6434] = 0x7B9A; unicode_map[0x6435] = 0x7B8B; 
-unicode_map[0x6436] = 0x7B92; unicode_map[0x6437] = 0x7B8F; 
-unicode_map[0x6438] = 0x7B5D; unicode_map[0x6439] = 0x7B99; 
-unicode_map[0x643A] = 0x7BCB; unicode_map[0x643B] = 0x7BC1; 
-unicode_map[0x643C] = 0x7BCC; unicode_map[0x643D] = 0x7BCF; 
-unicode_map[0x643E] = 0x7BB4; unicode_map[0x643F] = 0x7BC6; 
-unicode_map[0x6440] = 0x7BDD; unicode_map[0x6441] = 0x7BE9; 
-unicode_map[0x6442] = 0x7C11; unicode_map[0x6443] = 0x7C14; 
-unicode_map[0x6444] = 0x7BE6; unicode_map[0x6445] = 0x7BE5; 
-unicode_map[0x6446] = 0x7C60; unicode_map[0x6447] = 0x7C00; 
-unicode_map[0x6448] = 0x7C07; unicode_map[0x6449] = 0x7C13; 
-unicode_map[0x644A] = 0x7BF3; unicode_map[0x644B] = 0x7BF7; 
-unicode_map[0x644C] = 0x7C17; unicode_map[0x644D] = 0x7C0D; 
-unicode_map[0x644E] = 0x7BF6; unicode_map[0x644F] = 0x7C23; 
-unicode_map[0x6450] = 0x7C27; unicode_map[0x6451] = 0x7C2A; 
-unicode_map[0x6452] = 0x7C1F; unicode_map[0x6453] = 0x7C37; 
-unicode_map[0x6454] = 0x7C2B; unicode_map[0x6455] = 0x7C3D; 
-unicode_map[0x6456] = 0x7C4C; unicode_map[0x6457] = 0x7C43; 
-unicode_map[0x6458] = 0x7C54; unicode_map[0x6459] = 0x7C4F; 
-unicode_map[0x645A] = 0x7C40; unicode_map[0x645B] = 0x7C50; 
-unicode_map[0x645C] = 0x7C58; unicode_map[0x645D] = 0x7C5F; 
-unicode_map[0x645E] = 0x7C64; unicode_map[0x645F] = 0x7C56; 
-unicode_map[0x6460] = 0x7C65; unicode_map[0x6461] = 0x7C6C; 
-unicode_map[0x6462] = 0x7C75; unicode_map[0x6463] = 0x7C83; 
-unicode_map[0x6464] = 0x7C90; unicode_map[0x6465] = 0x7CA4; 
-unicode_map[0x6466] = 0x7CAD; unicode_map[0x6467] = 0x7CA2; 
-unicode_map[0x6468] = 0x7CAB; unicode_map[0x6469] = 0x7CA1; 
-unicode_map[0x646A] = 0x7CA8; unicode_map[0x646B] = 0x7CB3; 
-unicode_map[0x646C] = 0x7CB2; unicode_map[0x646D] = 0x7CB1; 
-unicode_map[0x646E] = 0x7CAE; unicode_map[0x646F] = 0x7CB9; 
-unicode_map[0x6470] = 0x7CBD; unicode_map[0x6471] = 0x7CC0; 
-unicode_map[0x6472] = 0x7CC5; unicode_map[0x6473] = 0x7CC2; 
-unicode_map[0x6474] = 0x7CD8; unicode_map[0x6475] = 0x7CD2; 
-unicode_map[0x6476] = 0x7CDC; unicode_map[0x6477] = 0x7CE2; 
-unicode_map[0x6478] = 0x9B3B; unicode_map[0x6479] = 0x7CEF; 
-unicode_map[0x647A] = 0x7CF2; unicode_map[0x647B] = 0x7CF4; 
-unicode_map[0x647C] = 0x7CF6; unicode_map[0x647D] = 0x7CFA; 
-unicode_map[0x647E] = 0x7D06; unicode_map[0x6521] = 0x7D02; 
-unicode_map[0x6522] = 0x7D1C; unicode_map[0x6523] = 0x7D15; 
-unicode_map[0x6524] = 0x7D0A; unicode_map[0x6525] = 0x7D45; 
-unicode_map[0x6526] = 0x7D4B; unicode_map[0x6527] = 0x7D2E; 
-unicode_map[0x6528] = 0x7D32; unicode_map[0x6529] = 0x7D3F; 
-unicode_map[0x652A] = 0x7D35; unicode_map[0x652B] = 0x7D46; 
-unicode_map[0x652C] = 0x7D73; unicode_map[0x652D] = 0x7D56; 
-unicode_map[0x652E] = 0x7D4E; unicode_map[0x652F] = 0x7D72; 
-unicode_map[0x6530] = 0x7D68; unicode_map[0x6531] = 0x7D6E; 
-unicode_map[0x6532] = 0x7D4F; unicode_map[0x6533] = 0x7D63; 
-unicode_map[0x6534] = 0x7D93; unicode_map[0x6535] = 0x7D89; 
-unicode_map[0x6536] = 0x7D5B; unicode_map[0x6537] = 0x7D8F; 
-unicode_map[0x6538] = 0x7D7D; unicode_map[0x6539] = 0x7D9B; 
-unicode_map[0x653A] = 0x7DBA; unicode_map[0x653B] = 0x7DAE; 
-unicode_map[0x653C] = 0x7DA3; unicode_map[0x653D] = 0x7DB5; 
-unicode_map[0x653E] = 0x7DC7; unicode_map[0x653F] = 0x7DBD; 
-unicode_map[0x6540] = 0x7DAB; unicode_map[0x6541] = 0x7E3D; 
-unicode_map[0x6542] = 0x7DA2; unicode_map[0x6543] = 0x7DAF; 
-unicode_map[0x6544] = 0x7DDC; unicode_map[0x6545] = 0x7DB8; 
-unicode_map[0x6546] = 0x7D9F; unicode_map[0x6547] = 0x7DB0; 
-unicode_map[0x6548] = 0x7DD8; unicode_map[0x6549] = 0x7DDD; 
-unicode_map[0x654A] = 0x7DE4; unicode_map[0x654B] = 0x7DDE; 
-unicode_map[0x654C] = 0x7DFB; unicode_map[0x654D] = 0x7DF2; 
-unicode_map[0x654E] = 0x7DE1; unicode_map[0x654F] = 0x7E05; 
-unicode_map[0x6550] = 0x7E0A; unicode_map[0x6551] = 0x7E23; 
-unicode_map[0x6552] = 0x7E21; unicode_map[0x6553] = 0x7E12; 
-unicode_map[0x6554] = 0x7E31; unicode_map[0x6555] = 0x7E1F; 
-unicode_map[0x6556] = 0x7E09; unicode_map[0x6557] = 0x7E0B; 
-unicode_map[0x6558] = 0x7E22; unicode_map[0x6559] = 0x7E46; 
-unicode_map[0x655A] = 0x7E66; unicode_map[0x655B] = 0x7E3B; 
-unicode_map[0x655C] = 0x7E35; unicode_map[0x655D] = 0x7E39; 
-unicode_map[0x655E] = 0x7E43; unicode_map[0x655F] = 0x7E37; 
-unicode_map[0x6560] = 0x7E32; unicode_map[0x6561] = 0x7E3A; 
-unicode_map[0x6562] = 0x7E67; unicode_map[0x6563] = 0x7E5D; 
-unicode_map[0x6564] = 0x7E56; unicode_map[0x6565] = 0x7E5E; 
-unicode_map[0x6566] = 0x7E59; unicode_map[0x6567] = 0x7E5A; 
-unicode_map[0x6568] = 0x7E79; unicode_map[0x6569] = 0x7E6A; 
-unicode_map[0x656A] = 0x7E69; unicode_map[0x656B] = 0x7E7C; 
-unicode_map[0x656C] = 0x7E7B; unicode_map[0x656D] = 0x7E83; 
-unicode_map[0x656E] = 0x7DD5; unicode_map[0x656F] = 0x7E7D; 
-unicode_map[0x6570] = 0x8FAE; unicode_map[0x6571] = 0x7E7F; 
-unicode_map[0x6572] = 0x7E88; unicode_map[0x6573] = 0x7E89; 
-unicode_map[0x6574] = 0x7E8C; unicode_map[0x6575] = 0x7E92; 
-unicode_map[0x6576] = 0x7E90; unicode_map[0x6577] = 0x7E93; 
-unicode_map[0x6578] = 0x7E94; unicode_map[0x6579] = 0x7E96; 
-unicode_map[0x657A] = 0x7E8E; unicode_map[0x657B] = 0x7E9B; 
-unicode_map[0x657C] = 0x7E9C; unicode_map[0x657D] = 0x7F38; 
-unicode_map[0x657E] = 0x7F3A; unicode_map[0x6621] = 0x7F45; 
-unicode_map[0x6622] = 0x7F4C; unicode_map[0x6623] = 0x7F4D; 
-unicode_map[0x6624] = 0x7F4E; unicode_map[0x6625] = 0x7F50; 
-unicode_map[0x6626] = 0x7F51; unicode_map[0x6627] = 0x7F55; 
-unicode_map[0x6628] = 0x7F54; unicode_map[0x6629] = 0x7F58; 
-unicode_map[0x662A] = 0x7F5F; unicode_map[0x662B] = 0x7F60; 
-unicode_map[0x662C] = 0x7F68; unicode_map[0x662D] = 0x7F69; 
-unicode_map[0x662E] = 0x7F67; unicode_map[0x662F] = 0x7F78; 
-unicode_map[0x6630] = 0x7F82; unicode_map[0x6631] = 0x7F86; 
-unicode_map[0x6632] = 0x7F83; unicode_map[0x6633] = 0x7F88; 
-unicode_map[0x6634] = 0x7F87; unicode_map[0x6635] = 0x7F8C; 
-unicode_map[0x6636] = 0x7F94; unicode_map[0x6637] = 0x7F9E; 
-unicode_map[0x6638] = 0x7F9D; unicode_map[0x6639] = 0x7F9A; 
-unicode_map[0x663A] = 0x7FA3; unicode_map[0x663B] = 0x7FAF; 
-unicode_map[0x663C] = 0x7FB2; unicode_map[0x663D] = 0x7FB9; 
-unicode_map[0x663E] = 0x7FAE; unicode_map[0x663F] = 0x7FB6; 
-unicode_map[0x6640] = 0x7FB8; unicode_map[0x6641] = 0x8B71; 
-unicode_map[0x6642] = 0x7FC5; unicode_map[0x6643] = 0x7FC6; 
-unicode_map[0x6644] = 0x7FCA; unicode_map[0x6645] = 0x7FD5; 
-unicode_map[0x6646] = 0x7FD4; unicode_map[0x6647] = 0x7FE1; 
-unicode_map[0x6648] = 0x7FE6; unicode_map[0x6649] = 0x7FE9; 
-unicode_map[0x664A] = 0x7FF3; unicode_map[0x664B] = 0x7FF9; 
-unicode_map[0x664C] = 0x98DC; unicode_map[0x664D] = 0x8006; 
-unicode_map[0x664E] = 0x8004; unicode_map[0x664F] = 0x800B; 
-unicode_map[0x6650] = 0x8012; unicode_map[0x6651] = 0x8018; 
-unicode_map[0x6652] = 0x8019; unicode_map[0x6653] = 0x801C; 
-unicode_map[0x6654] = 0x8021; unicode_map[0x6655] = 0x8028; 
-unicode_map[0x6656] = 0x803F; unicode_map[0x6657] = 0x803B; 
-unicode_map[0x6658] = 0x804A; unicode_map[0x6659] = 0x8046; 
-unicode_map[0x665A] = 0x8052; unicode_map[0x665B] = 0x8058; 
-unicode_map[0x665C] = 0x805A; unicode_map[0x665D] = 0x805F; 
-unicode_map[0x665E] = 0x8062; unicode_map[0x665F] = 0x8068; 
-unicode_map[0x6660] = 0x8073; unicode_map[0x6661] = 0x8072; 
-unicode_map[0x6662] = 0x8070; unicode_map[0x6663] = 0x8076; 
-unicode_map[0x6664] = 0x8079; unicode_map[0x6665] = 0x807D; 
-unicode_map[0x6666] = 0x807F; unicode_map[0x6667] = 0x8084; 
-unicode_map[0x6668] = 0x8086; unicode_map[0x6669] = 0x8085; 
-unicode_map[0x666A] = 0x809B; unicode_map[0x666B] = 0x8093; 
-unicode_map[0x666C] = 0x809A; unicode_map[0x666D] = 0x80AD; 
-unicode_map[0x666E] = 0x5190; unicode_map[0x666F] = 0x80AC; 
-unicode_map[0x6670] = 0x80DB; unicode_map[0x6671] = 0x80E5; 
-unicode_map[0x6672] = 0x80D9; unicode_map[0x6673] = 0x80DD; 
-unicode_map[0x6674] = 0x80C4; unicode_map[0x6675] = 0x80DA; 
-unicode_map[0x6676] = 0x80D6; unicode_map[0x6677] = 0x8109; 
-unicode_map[0x6678] = 0x80EF; unicode_map[0x6679] = 0x80F1; 
-unicode_map[0x667A] = 0x811B; unicode_map[0x667B] = 0x8129; 
-unicode_map[0x667C] = 0x8123; unicode_map[0x667D] = 0x812F; 
-unicode_map[0x667E] = 0x814B; unicode_map[0x6721] = 0x968B; 
-unicode_map[0x6722] = 0x8146; unicode_map[0x6723] = 0x813E; 
-unicode_map[0x6724] = 0x8153; unicode_map[0x6725] = 0x8151; 
-unicode_map[0x6726] = 0x80FC; unicode_map[0x6727] = 0x8171; 
-unicode_map[0x6728] = 0x816E; unicode_map[0x6729] = 0x8165; 
-unicode_map[0x672A] = 0x8166; unicode_map[0x672B] = 0x8174; 
-unicode_map[0x672C] = 0x8183; unicode_map[0x672D] = 0x8188; 
-unicode_map[0x672E] = 0x818A; unicode_map[0x672F] = 0x8180; 
-unicode_map[0x6730] = 0x8182; unicode_map[0x6731] = 0x81A0; 
-unicode_map[0x6732] = 0x8195; unicode_map[0x6733] = 0x81A4; 
-unicode_map[0x6734] = 0x81A3; unicode_map[0x6735] = 0x815F; 
-unicode_map[0x6736] = 0x8193; unicode_map[0x6737] = 0x81A9; 
-unicode_map[0x6738] = 0x81B0; unicode_map[0x6739] = 0x81B5; 
-unicode_map[0x673A] = 0x81BE; unicode_map[0x673B] = 0x81B8; 
-unicode_map[0x673C] = 0x81BD; unicode_map[0x673D] = 0x81C0; 
-unicode_map[0x673E] = 0x81C2; unicode_map[0x673F] = 0x81BA; 
-unicode_map[0x6740] = 0x81C9; unicode_map[0x6741] = 0x81CD; 
-unicode_map[0x6742] = 0x81D1; unicode_map[0x6743] = 0x81D9; 
-unicode_map[0x6744] = 0x81D8; unicode_map[0x6745] = 0x81C8; 
-unicode_map[0x6746] = 0x81DA; unicode_map[0x6747] = 0x81DF; 
-unicode_map[0x6748] = 0x81E0; unicode_map[0x6749] = 0x81E7; 
-unicode_map[0x674A] = 0x81FA; unicode_map[0x674B] = 0x81FB; 
-unicode_map[0x674C] = 0x81FE; unicode_map[0x674D] = 0x8201; 
-unicode_map[0x674E] = 0x8202; unicode_map[0x674F] = 0x8205; 
-unicode_map[0x6750] = 0x8207; unicode_map[0x6751] = 0x820A; 
-unicode_map[0x6752] = 0x820D; unicode_map[0x6753] = 0x8210; 
-unicode_map[0x6754] = 0x8216; unicode_map[0x6755] = 0x8229; 
-unicode_map[0x6756] = 0x822B; unicode_map[0x6757] = 0x8238; 
-unicode_map[0x6758] = 0x8233; unicode_map[0x6759] = 0x8240; 
-unicode_map[0x675A] = 0x8259; unicode_map[0x675B] = 0x8258; 
-unicode_map[0x675C] = 0x825D; unicode_map[0x675D] = 0x825A; 
-unicode_map[0x675E] = 0x825F; unicode_map[0x675F] = 0x8264; 
-unicode_map[0x6760] = 0x8262; unicode_map[0x6761] = 0x8268; 
-unicode_map[0x6762] = 0x826A; unicode_map[0x6763] = 0x826B; 
-unicode_map[0x6764] = 0x822E; unicode_map[0x6765] = 0x8271; 
-unicode_map[0x6766] = 0x8277; unicode_map[0x6767] = 0x8278; 
-unicode_map[0x6768] = 0x827E; unicode_map[0x6769] = 0x828D; 
-unicode_map[0x676A] = 0x8292; unicode_map[0x676B] = 0x82AB; 
-unicode_map[0x676C] = 0x829F; unicode_map[0x676D] = 0x82BB; 
-unicode_map[0x676E] = 0x82AC; unicode_map[0x676F] = 0x82E1; 
-unicode_map[0x6770] = 0x82E3; unicode_map[0x6771] = 0x82DF; 
-unicode_map[0x6772] = 0x82D2; unicode_map[0x6773] = 0x82F4; 
-unicode_map[0x6774] = 0x82F3; unicode_map[0x6775] = 0x82FA; 
-unicode_map[0x6776] = 0x8393; unicode_map[0x6777] = 0x8303; 
-unicode_map[0x6778] = 0x82FB; unicode_map[0x6779] = 0x82F9; 
-unicode_map[0x677A] = 0x82DE; unicode_map[0x677B] = 0x8306; 
-unicode_map[0x677C] = 0x82DC; unicode_map[0x677D] = 0x8309; 
-unicode_map[0x677E] = 0x82D9; unicode_map[0x6821] = 0x8335; 
-unicode_map[0x6822] = 0x8334; unicode_map[0x6823] = 0x8316; 
-unicode_map[0x6824] = 0x8332; unicode_map[0x6825] = 0x8331; 
-unicode_map[0x6826] = 0x8340; unicode_map[0x6827] = 0x8339; 
-unicode_map[0x6828] = 0x8350; unicode_map[0x6829] = 0x8345; 
-unicode_map[0x682A] = 0x832F; unicode_map[0x682B] = 0x832B; 
-unicode_map[0x682C] = 0x8317; unicode_map[0x682D] = 0x8318; 
-unicode_map[0x682E] = 0x8385; unicode_map[0x682F] = 0x839A; 
-unicode_map[0x6830] = 0x83AA; unicode_map[0x6831] = 0x839F; 
-unicode_map[0x6832] = 0x83A2; unicode_map[0x6833] = 0x8396; 
-unicode_map[0x6834] = 0x8323; unicode_map[0x6835] = 0x838E; 
-unicode_map[0x6836] = 0x8387; unicode_map[0x6837] = 0x838A; 
-unicode_map[0x6838] = 0x837C; unicode_map[0x6839] = 0x83B5; 
-unicode_map[0x683A] = 0x8373; unicode_map[0x683B] = 0x8375; 
-unicode_map[0x683C] = 0x83A0; unicode_map[0x683D] = 0x8389; 
-unicode_map[0x683E] = 0x83A8; unicode_map[0x683F] = 0x83F4; 
-unicode_map[0x6840] = 0x8413; unicode_map[0x6841] = 0x83EB; 
-unicode_map[0x6842] = 0x83CE; unicode_map[0x6843] = 0x83FD; 
-unicode_map[0x6844] = 0x8403; unicode_map[0x6845] = 0x83D8; 
-unicode_map[0x6846] = 0x840B; unicode_map[0x6847] = 0x83C1; 
-unicode_map[0x6848] = 0x83F7; unicode_map[0x6849] = 0x8407; 
-unicode_map[0x684A] = 0x83E0; unicode_map[0x684B] = 0x83F2; 
-unicode_map[0x684C] = 0x840D; unicode_map[0x684D] = 0x8422; 
-unicode_map[0x684E] = 0x8420; unicode_map[0x684F] = 0x83BD; 
-unicode_map[0x6850] = 0x8438; unicode_map[0x6851] = 0x8506; 
-unicode_map[0x6852] = 0x83FB; unicode_map[0x6853] = 0x846D; 
-unicode_map[0x6854] = 0x842A; unicode_map[0x6855] = 0x843C; 
-unicode_map[0x6856] = 0x855A; unicode_map[0x6857] = 0x8484; 
-unicode_map[0x6858] = 0x8477; unicode_map[0x6859] = 0x846B; 
-unicode_map[0x685A] = 0x84AD; unicode_map[0x685B] = 0x846E; 
-unicode_map[0x685C] = 0x8482; unicode_map[0x685D] = 0x8469; 
-unicode_map[0x685E] = 0x8446; unicode_map[0x685F] = 0x842C; 
-unicode_map[0x6860] = 0x846F; unicode_map[0x6861] = 0x8479; 
-unicode_map[0x6862] = 0x8435; unicode_map[0x6863] = 0x84CA; 
-unicode_map[0x6864] = 0x8462; unicode_map[0x6865] = 0x84B9; 
-unicode_map[0x6866] = 0x84BF; unicode_map[0x6867] = 0x849F; 
-unicode_map[0x6868] = 0x84D9; unicode_map[0x6869] = 0x84CD; 
-unicode_map[0x686A] = 0x84BB; unicode_map[0x686B] = 0x84DA; 
-unicode_map[0x686C] = 0x84D0; unicode_map[0x686D] = 0x84C1; 
-unicode_map[0x686E] = 0x84C6; unicode_map[0x686F] = 0x84D6; 
-unicode_map[0x6870] = 0x84A1; unicode_map[0x6871] = 0x8521; 
-unicode_map[0x6872] = 0x84FF; unicode_map[0x6873] = 0x84F4; 
-unicode_map[0x6874] = 0x8517; unicode_map[0x6875] = 0x8518; 
-unicode_map[0x6876] = 0x852C; unicode_map[0x6877] = 0x851F; 
-unicode_map[0x6878] = 0x8515; unicode_map[0x6879] = 0x8514; 
-unicode_map[0x687A] = 0x84FC; unicode_map[0x687B] = 0x8540; 
-unicode_map[0x687C] = 0x8563; unicode_map[0x687D] = 0x8558; 
-unicode_map[0x687E] = 0x8548; unicode_map[0x6921] = 0x8541; 
-unicode_map[0x6922] = 0x8602; unicode_map[0x6923] = 0x854B; 
-unicode_map[0x6924] = 0x8555; unicode_map[0x6925] = 0x8580; 
-unicode_map[0x6926] = 0x85A4; unicode_map[0x6927] = 0x8588; 
-unicode_map[0x6928] = 0x8591; unicode_map[0x6929] = 0x858A; 
-unicode_map[0x692A] = 0x85A8; unicode_map[0x692B] = 0x856D; 
-unicode_map[0x692C] = 0x8594; unicode_map[0x692D] = 0x859B; 
-unicode_map[0x692E] = 0x85EA; unicode_map[0x692F] = 0x8587; 
-unicode_map[0x6930] = 0x859C; unicode_map[0x6931] = 0x8577; 
-unicode_map[0x6932] = 0x857E; unicode_map[0x6933] = 0x8590; 
-unicode_map[0x6934] = 0x85C9; unicode_map[0x6935] = 0x85BA; 
-unicode_map[0x6936] = 0x85CF; unicode_map[0x6937] = 0x85B9; 
-unicode_map[0x6938] = 0x85D0; unicode_map[0x6939] = 0x85D5; 
-unicode_map[0x693A] = 0x85DD; unicode_map[0x693B] = 0x85E5; 
-unicode_map[0x693C] = 0x85DC; unicode_map[0x693D] = 0x85F9; 
-unicode_map[0x693E] = 0x860A; unicode_map[0x693F] = 0x8613; 
-unicode_map[0x6940] = 0x860B; unicode_map[0x6941] = 0x85FE; 
-unicode_map[0x6942] = 0x85FA; unicode_map[0x6943] = 0x8606; 
-unicode_map[0x6944] = 0x8622; unicode_map[0x6945] = 0x861A; 
-unicode_map[0x6946] = 0x8630; unicode_map[0x6947] = 0x863F; 
-unicode_map[0x6948] = 0x864D; unicode_map[0x6949] = 0x4E55; 
-unicode_map[0x694A] = 0x8654; unicode_map[0x694B] = 0x865F; 
-unicode_map[0x694C] = 0x8667; unicode_map[0x694D] = 0x8671; 
-unicode_map[0x694E] = 0x8693; unicode_map[0x694F] = 0x86A3; 
-unicode_map[0x6950] = 0x86A9; unicode_map[0x6951] = 0x86AA; 
-unicode_map[0x6952] = 0x868B; unicode_map[0x6953] = 0x868C; 
-unicode_map[0x6954] = 0x86B6; unicode_map[0x6955] = 0x86AF; 
-unicode_map[0x6956] = 0x86C4; unicode_map[0x6957] = 0x86C6; 
-unicode_map[0x6958] = 0x86B0; unicode_map[0x6959] = 0x86C9; 
-unicode_map[0x695A] = 0x8823; unicode_map[0x695B] = 0x86AB; 
-unicode_map[0x695C] = 0x86D4; unicode_map[0x695D] = 0x86DE; 
-unicode_map[0x695E] = 0x86E9; unicode_map[0x695F] = 0x86EC; 
-unicode_map[0x6960] = 0x86DF; unicode_map[0x6961] = 0x86DB; 
-unicode_map[0x6962] = 0x86EF; unicode_map[0x6963] = 0x8712; 
-unicode_map[0x6964] = 0x8706; unicode_map[0x6965] = 0x8708; 
-unicode_map[0x6966] = 0x8700; unicode_map[0x6967] = 0x8703; 
-unicode_map[0x6968] = 0x86FB; unicode_map[0x6969] = 0x8711; 
-unicode_map[0x696A] = 0x8709; unicode_map[0x696B] = 0x870D; 
-unicode_map[0x696C] = 0x86F9; unicode_map[0x696D] = 0x870A; 
-unicode_map[0x696E] = 0x8734; unicode_map[0x696F] = 0x873F; 
-unicode_map[0x6970] = 0x8737; unicode_map[0x6971] = 0x873B; 
-unicode_map[0x6972] = 0x8725; unicode_map[0x6973] = 0x8729; 
-unicode_map[0x6974] = 0x871A; unicode_map[0x6975] = 0x8760; 
-unicode_map[0x6976] = 0x875F; unicode_map[0x6977] = 0x8778; 
-unicode_map[0x6978] = 0x874C; unicode_map[0x6979] = 0x874E; 
-unicode_map[0x697A] = 0x8774; unicode_map[0x697B] = 0x8757; 
-unicode_map[0x697C] = 0x8768; unicode_map[0x697D] = 0x876E; 
-unicode_map[0x697E] = 0x8759; unicode_map[0x6A21] = 0x8753; 
-unicode_map[0x6A22] = 0x8763; unicode_map[0x6A23] = 0x876A; 
-unicode_map[0x6A24] = 0x8805; unicode_map[0x6A25] = 0x87A2; 
-unicode_map[0x6A26] = 0x879F; unicode_map[0x6A27] = 0x8782; 
-unicode_map[0x6A28] = 0x87AF; unicode_map[0x6A29] = 0x87CB; 
-unicode_map[0x6A2A] = 0x87BD; unicode_map[0x6A2B] = 0x87C0; 
-unicode_map[0x6A2C] = 0x87D0; unicode_map[0x6A2D] = 0x96D6; 
-unicode_map[0x6A2E] = 0x87AB; unicode_map[0x6A2F] = 0x87C4; 
-unicode_map[0x6A30] = 0x87B3; unicode_map[0x6A31] = 0x87C7; 
-unicode_map[0x6A32] = 0x87C6; unicode_map[0x6A33] = 0x87BB; 
-unicode_map[0x6A34] = 0x87EF; unicode_map[0x6A35] = 0x87F2; 
-unicode_map[0x6A36] = 0x87E0; unicode_map[0x6A37] = 0x880F; 
-unicode_map[0x6A38] = 0x880D; unicode_map[0x6A39] = 0x87FE; 
-unicode_map[0x6A3A] = 0x87F6; unicode_map[0x6A3B] = 0x87F7; 
-unicode_map[0x6A3C] = 0x880E; unicode_map[0x6A3D] = 0x87D2; 
-unicode_map[0x6A3E] = 0x8811; unicode_map[0x6A3F] = 0x8816; 
-unicode_map[0x6A40] = 0x8815; unicode_map[0x6A41] = 0x8822; 
-unicode_map[0x6A42] = 0x8821; unicode_map[0x6A43] = 0x8831; 
-unicode_map[0x6A44] = 0x8836; unicode_map[0x6A45] = 0x8839; 
-unicode_map[0x6A46] = 0x8827; unicode_map[0x6A47] = 0x883B; 
-unicode_map[0x6A48] = 0x8844; unicode_map[0x6A49] = 0x8842; 
-unicode_map[0x6A4A] = 0x8852; unicode_map[0x6A4B] = 0x8859; 
-unicode_map[0x6A4C] = 0x885E; unicode_map[0x6A4D] = 0x8862; 
-unicode_map[0x6A4E] = 0x886B; unicode_map[0x6A4F] = 0x8881; 
-unicode_map[0x6A50] = 0x887E; unicode_map[0x6A51] = 0x889E; 
-unicode_map[0x6A52] = 0x8875; unicode_map[0x6A53] = 0x887D; 
-unicode_map[0x6A54] = 0x88B5; unicode_map[0x6A55] = 0x8872; 
-unicode_map[0x6A56] = 0x8882; unicode_map[0x6A57] = 0x8897; 
-unicode_map[0x6A58] = 0x8892; unicode_map[0x6A59] = 0x88AE; 
-unicode_map[0x6A5A] = 0x8899; unicode_map[0x6A5B] = 0x88A2; 
-unicode_map[0x6A5C] = 0x888D; unicode_map[0x6A5D] = 0x88A4; 
-unicode_map[0x6A5E] = 0x88B0; unicode_map[0x6A5F] = 0x88BF; 
-unicode_map[0x6A60] = 0x88B1; unicode_map[0x6A61] = 0x88C3; 
-unicode_map[0x6A62] = 0x88C4; unicode_map[0x6A63] = 0x88D4; 
-unicode_map[0x6A64] = 0x88D8; unicode_map[0x6A65] = 0x88D9; 
-unicode_map[0x6A66] = 0x88DD; unicode_map[0x6A67] = 0x88F9; 
-unicode_map[0x6A68] = 0x8902; unicode_map[0x6A69] = 0x88FC; 
-unicode_map[0x6A6A] = 0x88F4; unicode_map[0x6A6B] = 0x88E8; 
-unicode_map[0x6A6C] = 0x88F2; unicode_map[0x6A6D] = 0x8904; 
-unicode_map[0x6A6E] = 0x890C; unicode_map[0x6A6F] = 0x890A; 
-unicode_map[0x6A70] = 0x8913; unicode_map[0x6A71] = 0x8943; 
-unicode_map[0x6A72] = 0x891E; unicode_map[0x6A73] = 0x8925; 
-unicode_map[0x6A74] = 0x892A; unicode_map[0x6A75] = 0x892B; 
-unicode_map[0x6A76] = 0x8941; unicode_map[0x6A77] = 0x8944; 
-unicode_map[0x6A78] = 0x893B; unicode_map[0x6A79] = 0x8936; 
-unicode_map[0x6A7A] = 0x8938; unicode_map[0x6A7B] = 0x894C; 
-unicode_map[0x6A7C] = 0x891D; unicode_map[0x6A7D] = 0x8960; 
-unicode_map[0x6A7E] = 0x895E; unicode_map[0x6B21] = 0x8966; 
-unicode_map[0x6B22] = 0x8964; unicode_map[0x6B23] = 0x896D; 
-unicode_map[0x6B24] = 0x896A; unicode_map[0x6B25] = 0x896F; 
-unicode_map[0x6B26] = 0x8974; unicode_map[0x6B27] = 0x8977; 
-unicode_map[0x6B28] = 0x897E; unicode_map[0x6B29] = 0x8983; 
-unicode_map[0x6B2A] = 0x8988; unicode_map[0x6B2B] = 0x898A; 
-unicode_map[0x6B2C] = 0x8993; unicode_map[0x6B2D] = 0x8998; 
-unicode_map[0x6B2E] = 0x89A1; unicode_map[0x6B2F] = 0x89A9; 
-unicode_map[0x6B30] = 0x89A6; unicode_map[0x6B31] = 0x89AC; 
-unicode_map[0x6B32] = 0x89AF; unicode_map[0x6B33] = 0x89B2; 
-unicode_map[0x6B34] = 0x89BA; unicode_map[0x6B35] = 0x89BD; 
-unicode_map[0x6B36] = 0x89BF; unicode_map[0x6B37] = 0x89C0; 
-unicode_map[0x6B38] = 0x89DA; unicode_map[0x6B39] = 0x89DC; 
-unicode_map[0x6B3A] = 0x89DD; unicode_map[0x6B3B] = 0x89E7; 
-unicode_map[0x6B3C] = 0x89F4; unicode_map[0x6B3D] = 0x89F8; 
-unicode_map[0x6B3E] = 0x8A03; unicode_map[0x6B3F] = 0x8A16; 
-unicode_map[0x6B40] = 0x8A10; unicode_map[0x6B41] = 0x8A0C; 
-unicode_map[0x6B42] = 0x8A1B; unicode_map[0x6B43] = 0x8A1D; 
-unicode_map[0x6B44] = 0x8A25; unicode_map[0x6B45] = 0x8A36; 
-unicode_map[0x6B46] = 0x8A41; unicode_map[0x6B47] = 0x8A5B; 
-unicode_map[0x6B48] = 0x8A52; unicode_map[0x6B49] = 0x8A46; 
-unicode_map[0x6B4A] = 0x8A48; unicode_map[0x6B4B] = 0x8A7C; 
-unicode_map[0x6B4C] = 0x8A6D; unicode_map[0x6B4D] = 0x8A6C; 
-unicode_map[0x6B4E] = 0x8A62; unicode_map[0x6B4F] = 0x8A85; 
-unicode_map[0x6B50] = 0x8A82; unicode_map[0x6B51] = 0x8A84; 
-unicode_map[0x6B52] = 0x8AA8; unicode_map[0x6B53] = 0x8AA1; 
-unicode_map[0x6B54] = 0x8A91; unicode_map[0x6B55] = 0x8AA5; 
-unicode_map[0x6B56] = 0x8AA6; unicode_map[0x6B57] = 0x8A9A; 
-unicode_map[0x6B58] = 0x8AA3; unicode_map[0x6B59] = 0x8AC4; 
-unicode_map[0x6B5A] = 0x8ACD; unicode_map[0x6B5B] = 0x8AC2; 
-unicode_map[0x6B5C] = 0x8ADA; unicode_map[0x6B5D] = 0x8AEB; 
-unicode_map[0x6B5E] = 0x8AF3; unicode_map[0x6B5F] = 0x8AE7; 
-unicode_map[0x6B60] = 0x8AE4; unicode_map[0x6B61] = 0x8AF1; 
-unicode_map[0x6B62] = 0x8B14; unicode_map[0x6B63] = 0x8AE0; 
-unicode_map[0x6B64] = 0x8AE2; unicode_map[0x6B65] = 0x8AF7; 
-unicode_map[0x6B66] = 0x8ADE; unicode_map[0x6B67] = 0x8ADB; 
-unicode_map[0x6B68] = 0x8B0C; unicode_map[0x6B69] = 0x8B07; 
-unicode_map[0x6B6A] = 0x8B1A; unicode_map[0x6B6B] = 0x8AE1; 
-unicode_map[0x6B6C] = 0x8B16; unicode_map[0x6B6D] = 0x8B10; 
-unicode_map[0x6B6E] = 0x8B17; unicode_map[0x6B6F] = 0x8B20; 
-unicode_map[0x6B70] = 0x8B33; unicode_map[0x6B71] = 0x97AB; 
-unicode_map[0x6B72] = 0x8B26; unicode_map[0x6B73] = 0x8B2B; 
-unicode_map[0x6B74] = 0x8B3E; unicode_map[0x6B75] = 0x8B28; 
-unicode_map[0x6B76] = 0x8B41; unicode_map[0x6B77] = 0x8B4C; 
-unicode_map[0x6B78] = 0x8B4F; unicode_map[0x6B79] = 0x8B4E; 
-unicode_map[0x6B7A] = 0x8B49; unicode_map[0x6B7B] = 0x8B56; 
-unicode_map[0x6B7C] = 0x8B5B; unicode_map[0x6B7D] = 0x8B5A; 
-unicode_map[0x6B7E] = 0x8B6B; unicode_map[0x6C21] = 0x8B5F; 
-unicode_map[0x6C22] = 0x8B6C; unicode_map[0x6C23] = 0x8B6F; 
-unicode_map[0x6C24] = 0x8B74; unicode_map[0x6C25] = 0x8B7D; 
-unicode_map[0x6C26] = 0x8B80; unicode_map[0x6C27] = 0x8B8C; 
-unicode_map[0x6C28] = 0x8B8E; unicode_map[0x6C29] = 0x8B92; 
-unicode_map[0x6C2A] = 0x8B93; unicode_map[0x6C2B] = 0x8B96; 
-unicode_map[0x6C2C] = 0x8B99; unicode_map[0x6C2D] = 0x8B9A; 
-unicode_map[0x6C2E] = 0x8C3A; unicode_map[0x6C2F] = 0x8C41; 
-unicode_map[0x6C30] = 0x8C3F; unicode_map[0x6C31] = 0x8C48; 
-unicode_map[0x6C32] = 0x8C4C; unicode_map[0x6C33] = 0x8C4E; 
-unicode_map[0x6C34] = 0x8C50; unicode_map[0x6C35] = 0x8C55; 
-unicode_map[0x6C36] = 0x8C62; unicode_map[0x6C37] = 0x8C6C; 
-unicode_map[0x6C38] = 0x8C78; unicode_map[0x6C39] = 0x8C7A; 
-unicode_map[0x6C3A] = 0x8C82; unicode_map[0x6C3B] = 0x8C89; 
-unicode_map[0x6C3C] = 0x8C85; unicode_map[0x6C3D] = 0x8C8A; 
-unicode_map[0x6C3E] = 0x8C8D; unicode_map[0x6C3F] = 0x8C8E; 
-unicode_map[0x6C40] = 0x8C94; unicode_map[0x6C41] = 0x8C7C; 
-unicode_map[0x6C42] = 0x8C98; unicode_map[0x6C43] = 0x621D; 
-unicode_map[0x6C44] = 0x8CAD; unicode_map[0x6C45] = 0x8CAA; 
-unicode_map[0x6C46] = 0x8CBD; unicode_map[0x6C47] = 0x8CB2; 
-unicode_map[0x6C48] = 0x8CB3; unicode_map[0x6C49] = 0x8CAE; 
-unicode_map[0x6C4A] = 0x8CB6; unicode_map[0x6C4B] = 0x8CC8; 
-unicode_map[0x6C4C] = 0x8CC1; unicode_map[0x6C4D] = 0x8CE4; 
-unicode_map[0x6C4E] = 0x8CE3; unicode_map[0x6C4F] = 0x8CDA; 
-unicode_map[0x6C50] = 0x8CFD; unicode_map[0x6C51] = 0x8CFA; 
-unicode_map[0x6C52] = 0x8CFB; unicode_map[0x6C53] = 0x8D04; 
-unicode_map[0x6C54] = 0x8D05; unicode_map[0x6C55] = 0x8D0A; 
-unicode_map[0x6C56] = 0x8D07; unicode_map[0x6C57] = 0x8D0F; 
-unicode_map[0x6C58] = 0x8D0D; unicode_map[0x6C59] = 0x8D10; 
-unicode_map[0x6C5A] = 0x9F4E; unicode_map[0x6C5B] = 0x8D13; 
-unicode_map[0x6C5C] = 0x8CCD; unicode_map[0x6C5D] = 0x8D14; 
-unicode_map[0x6C5E] = 0x8D16; unicode_map[0x6C5F] = 0x8D67; 
-unicode_map[0x6C60] = 0x8D6D; unicode_map[0x6C61] = 0x8D71; 
-unicode_map[0x6C62] = 0x8D73; unicode_map[0x6C63] = 0x8D81; 
-unicode_map[0x6C64] = 0x8D99; unicode_map[0x6C65] = 0x8DC2; 
-unicode_map[0x6C66] = 0x8DBE; unicode_map[0x6C67] = 0x8DBA; 
-unicode_map[0x6C68] = 0x8DCF; unicode_map[0x6C69] = 0x8DDA; 
-unicode_map[0x6C6A] = 0x8DD6; unicode_map[0x6C6B] = 0x8DCC; 
-unicode_map[0x6C6C] = 0x8DDB; unicode_map[0x6C6D] = 0x8DCB; 
-unicode_map[0x6C6E] = 0x8DEA; unicode_map[0x6C6F] = 0x8DEB; 
-unicode_map[0x6C70] = 0x8DDF; unicode_map[0x6C71] = 0x8DE3; 
-unicode_map[0x6C72] = 0x8DFC; unicode_map[0x6C73] = 0x8E08; 
-unicode_map[0x6C74] = 0x8E09; unicode_map[0x6C75] = 0x8DFF; 
-unicode_map[0x6C76] = 0x8E1D; unicode_map[0x6C77] = 0x8E1E; 
-unicode_map[0x6C78] = 0x8E10; unicode_map[0x6C79] = 0x8E1F; 
-unicode_map[0x6C7A] = 0x8E42; unicode_map[0x6C7B] = 0x8E35; 
-unicode_map[0x6C7C] = 0x8E30; unicode_map[0x6C7D] = 0x8E34; 
-unicode_map[0x6C7E] = 0x8E4A; unicode_map[0x6D21] = 0x8E47; 
-unicode_map[0x6D22] = 0x8E49; unicode_map[0x6D23] = 0x8E4C; 
-unicode_map[0x6D24] = 0x8E50; unicode_map[0x6D25] = 0x8E48; 
-unicode_map[0x6D26] = 0x8E59; unicode_map[0x6D27] = 0x8E64; 
-unicode_map[0x6D28] = 0x8E60; unicode_map[0x6D29] = 0x8E2A; 
-unicode_map[0x6D2A] = 0x8E63; unicode_map[0x6D2B] = 0x8E55; 
-unicode_map[0x6D2C] = 0x8E76; unicode_map[0x6D2D] = 0x8E72; 
-unicode_map[0x6D2E] = 0x8E7C; unicode_map[0x6D2F] = 0x8E81; 
-unicode_map[0x6D30] = 0x8E87; unicode_map[0x6D31] = 0x8E85; 
-unicode_map[0x6D32] = 0x8E84; unicode_map[0x6D33] = 0x8E8B; 
-unicode_map[0x6D34] = 0x8E8A; unicode_map[0x6D35] = 0x8E93; 
-unicode_map[0x6D36] = 0x8E91; unicode_map[0x6D37] = 0x8E94; 
-unicode_map[0x6D38] = 0x8E99; unicode_map[0x6D39] = 0x8EAA; 
-unicode_map[0x6D3A] = 0x8EA1; unicode_map[0x6D3B] = 0x8EAC; 
-unicode_map[0x6D3C] = 0x8EB0; unicode_map[0x6D3D] = 0x8EC6; 
-unicode_map[0x6D3E] = 0x8EB1; unicode_map[0x6D3F] = 0x8EBE; 
-unicode_map[0x6D40] = 0x8EC5; unicode_map[0x6D41] = 0x8EC8; 
-unicode_map[0x6D42] = 0x8ECB; unicode_map[0x6D43] = 0x8EDB; 
-unicode_map[0x6D44] = 0x8EE3; unicode_map[0x6D45] = 0x8EFC; 
-unicode_map[0x6D46] = 0x8EFB; unicode_map[0x6D47] = 0x8EEB; 
-unicode_map[0x6D48] = 0x8EFE; unicode_map[0x6D49] = 0x8F0A; 
-unicode_map[0x6D4A] = 0x8F05; unicode_map[0x6D4B] = 0x8F15; 
-unicode_map[0x6D4C] = 0x8F12; unicode_map[0x6D4D] = 0x8F19; 
-unicode_map[0x6D4E] = 0x8F13; unicode_map[0x6D4F] = 0x8F1C; 
-unicode_map[0x6D50] = 0x8F1F; unicode_map[0x6D51] = 0x8F1B; 
-unicode_map[0x6D52] = 0x8F0C; unicode_map[0x6D53] = 0x8F26; 
-unicode_map[0x6D54] = 0x8F33; unicode_map[0x6D55] = 0x8F3B; 
-unicode_map[0x6D56] = 0x8F39; unicode_map[0x6D57] = 0x8F45; 
-unicode_map[0x6D58] = 0x8F42; unicode_map[0x6D59] = 0x8F3E; 
-unicode_map[0x6D5A] = 0x8F4C; unicode_map[0x6D5B] = 0x8F49; 
-unicode_map[0x6D5C] = 0x8F46; unicode_map[0x6D5D] = 0x8F4E; 
-unicode_map[0x6D5E] = 0x8F57; unicode_map[0x6D5F] = 0x8F5C; 
-unicode_map[0x6D60] = 0x8F62; unicode_map[0x6D61] = 0x8F63; 
-unicode_map[0x6D62] = 0x8F64; unicode_map[0x6D63] = 0x8F9C; 
-unicode_map[0x6D64] = 0x8F9F; unicode_map[0x6D65] = 0x8FA3; 
-unicode_map[0x6D66] = 0x8FAD; unicode_map[0x6D67] = 0x8FAF; 
-unicode_map[0x6D68] = 0x8FB7; unicode_map[0x6D69] = 0x8FDA; 
-unicode_map[0x6D6A] = 0x8FE5; unicode_map[0x6D6B] = 0x8FE2; 
-unicode_map[0x6D6C] = 0x8FEA; unicode_map[0x6D6D] = 0x8FEF; 
-unicode_map[0x6D6E] = 0x9087; unicode_map[0x6D6F] = 0x8FF4; 
-unicode_map[0x6D70] = 0x9005; unicode_map[0x6D71] = 0x8FF9; 
-unicode_map[0x6D72] = 0x8FFA; unicode_map[0x6D73] = 0x9011; 
-unicode_map[0x6D74] = 0x9015; unicode_map[0x6D75] = 0x9021; 
-unicode_map[0x6D76] = 0x900D; unicode_map[0x6D77] = 0x901E; 
-unicode_map[0x6D78] = 0x9016; unicode_map[0x6D79] = 0x900B; 
-unicode_map[0x6D7A] = 0x9027; unicode_map[0x6D7B] = 0x9036; 
-unicode_map[0x6D7C] = 0x9035; unicode_map[0x6D7D] = 0x9039; 
-unicode_map[0x6D7E] = 0x8FF8; unicode_map[0x6E21] = 0x904F; 
-unicode_map[0x6E22] = 0x9050; unicode_map[0x6E23] = 0x9051; 
-unicode_map[0x6E24] = 0x9052; unicode_map[0x6E25] = 0x900E; 
-unicode_map[0x6E26] = 0x9049; unicode_map[0x6E27] = 0x903E; 
-unicode_map[0x6E28] = 0x9056; unicode_map[0x6E29] = 0x9058; 
-unicode_map[0x6E2A] = 0x905E; unicode_map[0x6E2B] = 0x9068; 
-unicode_map[0x6E2C] = 0x906F; unicode_map[0x6E2D] = 0x9076; 
-unicode_map[0x6E2E] = 0x96A8; unicode_map[0x6E2F] = 0x9072; 
-unicode_map[0x6E30] = 0x9082; unicode_map[0x6E31] = 0x907D; 
-unicode_map[0x6E32] = 0x9081; unicode_map[0x6E33] = 0x9080; 
-unicode_map[0x6E34] = 0x908A; unicode_map[0x6E35] = 0x9089; 
-unicode_map[0x6E36] = 0x908F; unicode_map[0x6E37] = 0x90A8; 
-unicode_map[0x6E38] = 0x90AF; unicode_map[0x6E39] = 0x90B1; 
-unicode_map[0x6E3A] = 0x90B5; unicode_map[0x6E3B] = 0x90E2; 
-unicode_map[0x6E3C] = 0x90E4; unicode_map[0x6E3D] = 0x6248; 
-unicode_map[0x6E3E] = 0x90DB; unicode_map[0x6E3F] = 0x9102; 
-unicode_map[0x6E40] = 0x9112; unicode_map[0x6E41] = 0x9119; 
-unicode_map[0x6E42] = 0x9132; unicode_map[0x6E43] = 0x9130; 
-unicode_map[0x6E44] = 0x914A; unicode_map[0x6E45] = 0x9156; 
-unicode_map[0x6E46] = 0x9158; unicode_map[0x6E47] = 0x9163; 
-unicode_map[0x6E48] = 0x9165; unicode_map[0x6E49] = 0x9169; 
-unicode_map[0x6E4A] = 0x9173; unicode_map[0x6E4B] = 0x9172; 
-unicode_map[0x6E4C] = 0x918B; unicode_map[0x6E4D] = 0x9189; 
-unicode_map[0x6E4E] = 0x9182; unicode_map[0x6E4F] = 0x91A2; 
-unicode_map[0x6E50] = 0x91AB; unicode_map[0x6E51] = 0x91AF; 
-unicode_map[0x6E52] = 0x91AA; unicode_map[0x6E53] = 0x91B5; 
-unicode_map[0x6E54] = 0x91B4; unicode_map[0x6E55] = 0x91BA; 
-unicode_map[0x6E56] = 0x91C0; unicode_map[0x6E57] = 0x91C1; 
-unicode_map[0x6E58] = 0x91C9; unicode_map[0x6E59] = 0x91CB; 
-unicode_map[0x6E5A] = 0x91D0; unicode_map[0x6E5B] = 0x91D6; 
-unicode_map[0x6E5C] = 0x91DF; unicode_map[0x6E5D] = 0x91E1; 
-unicode_map[0x6E5E] = 0x91DB; unicode_map[0x6E5F] = 0x91FC; 
-unicode_map[0x6E60] = 0x91F5; unicode_map[0x6E61] = 0x91F6; 
-unicode_map[0x6E62] = 0x921E; unicode_map[0x6E63] = 0x91FF; 
-unicode_map[0x6E64] = 0x9214; unicode_map[0x6E65] = 0x922C; 
-unicode_map[0x6E66] = 0x9215; unicode_map[0x6E67] = 0x9211; 
-unicode_map[0x6E68] = 0x925E; unicode_map[0x6E69] = 0x9257; 
-unicode_map[0x6E6A] = 0x9245; unicode_map[0x6E6B] = 0x9249; 
-unicode_map[0x6E6C] = 0x9264; unicode_map[0x6E6D] = 0x9248; 
-unicode_map[0x6E6E] = 0x9295; unicode_map[0x6E6F] = 0x923F; 
-unicode_map[0x6E70] = 0x924B; unicode_map[0x6E71] = 0x9250; 
-unicode_map[0x6E72] = 0x929C; unicode_map[0x6E73] = 0x9296; 
-unicode_map[0x6E74] = 0x9293; unicode_map[0x6E75] = 0x929B; 
-unicode_map[0x6E76] = 0x925A; unicode_map[0x6E77] = 0x92CF; 
-unicode_map[0x6E78] = 0x92B9; unicode_map[0x6E79] = 0x92B7; 
-unicode_map[0x6E7A] = 0x92E9; unicode_map[0x6E7B] = 0x930F; 
-unicode_map[0x6E7C] = 0x92FA; unicode_map[0x6E7D] = 0x9344; 
-unicode_map[0x6E7E] = 0x932E; unicode_map[0x6F21] = 0x9319; 
-unicode_map[0x6F22] = 0x9322; unicode_map[0x6F23] = 0x931A; 
-unicode_map[0x6F24] = 0x9323; unicode_map[0x6F25] = 0x933A; 
-unicode_map[0x6F26] = 0x9335; unicode_map[0x6F27] = 0x933B; 
-unicode_map[0x6F28] = 0x935C; unicode_map[0x6F29] = 0x9360; 
-unicode_map[0x6F2A] = 0x937C; unicode_map[0x6F2B] = 0x936E; 
-unicode_map[0x6F2C] = 0x9356; unicode_map[0x6F2D] = 0x93B0; 
-unicode_map[0x6F2E] = 0x93AC; unicode_map[0x6F2F] = 0x93AD; 
-unicode_map[0x6F30] = 0x9394; unicode_map[0x6F31] = 0x93B9; 
-unicode_map[0x6F32] = 0x93D6; unicode_map[0x6F33] = 0x93D7; 
-unicode_map[0x6F34] = 0x93E8; unicode_map[0x6F35] = 0x93E5; 
-unicode_map[0x6F36] = 0x93D8; unicode_map[0x6F37] = 0x93C3; 
-unicode_map[0x6F38] = 0x93DD; unicode_map[0x6F39] = 0x93D0; 
-unicode_map[0x6F3A] = 0x93C8; unicode_map[0x6F3B] = 0x93E4; 
-unicode_map[0x6F3C] = 0x941A; unicode_map[0x6F3D] = 0x9414; 
-unicode_map[0x6F3E] = 0x9413; unicode_map[0x6F3F] = 0x9403; 
-unicode_map[0x6F40] = 0x9407; unicode_map[0x6F41] = 0x9410; 
-unicode_map[0x6F42] = 0x9436; unicode_map[0x6F43] = 0x942B; 
-unicode_map[0x6F44] = 0x9435; unicode_map[0x6F45] = 0x9421; 
-unicode_map[0x6F46] = 0x943A; unicode_map[0x6F47] = 0x9441; 
-unicode_map[0x6F48] = 0x9452; unicode_map[0x6F49] = 0x9444; 
-unicode_map[0x6F4A] = 0x945B; unicode_map[0x6F4B] = 0x9460; 
-unicode_map[0x6F4C] = 0x9462; unicode_map[0x6F4D] = 0x945E; 
-unicode_map[0x6F4E] = 0x946A; unicode_map[0x6F4F] = 0x9229; 
-unicode_map[0x6F50] = 0x9470; unicode_map[0x6F51] = 0x9475; 
-unicode_map[0x6F52] = 0x9477; unicode_map[0x6F53] = 0x947D; 
-unicode_map[0x6F54] = 0x945A; unicode_map[0x6F55] = 0x947C; 
-unicode_map[0x6F56] = 0x947E; unicode_map[0x6F57] = 0x9481; 
-unicode_map[0x6F58] = 0x947F; unicode_map[0x6F59] = 0x9582; 
-unicode_map[0x6F5A] = 0x9587; unicode_map[0x6F5B] = 0x958A; 
-unicode_map[0x6F5C] = 0x9594; unicode_map[0x6F5D] = 0x9596; 
-unicode_map[0x6F5E] = 0x9598; unicode_map[0x6F5F] = 0x9599; 
-unicode_map[0x6F60] = 0x95A0; unicode_map[0x6F61] = 0x95A8; 
-unicode_map[0x6F62] = 0x95A7; unicode_map[0x6F63] = 0x95AD; 
-unicode_map[0x6F64] = 0x95BC; unicode_map[0x6F65] = 0x95BB; 
-unicode_map[0x6F66] = 0x95B9; unicode_map[0x6F67] = 0x95BE; 
-unicode_map[0x6F68] = 0x95CA; unicode_map[0x6F69] = 0x6FF6; 
-unicode_map[0x6F6A] = 0x95C3; unicode_map[0x6F6B] = 0x95CD; 
-unicode_map[0x6F6C] = 0x95CC; unicode_map[0x6F6D] = 0x95D5; 
-unicode_map[0x6F6E] = 0x95D4; unicode_map[0x6F6F] = 0x95D6; 
-unicode_map[0x6F70] = 0x95DC; unicode_map[0x6F71] = 0x95E1; 
-unicode_map[0x6F72] = 0x95E5; unicode_map[0x6F73] = 0x95E2; 
-unicode_map[0x6F74] = 0x9621; unicode_map[0x6F75] = 0x9628; 
-unicode_map[0x6F76] = 0x962E; unicode_map[0x6F77] = 0x962F; 
-unicode_map[0x6F78] = 0x9642; unicode_map[0x6F79] = 0x964C; 
-unicode_map[0x6F7A] = 0x964F; unicode_map[0x6F7B] = 0x964B; 
-unicode_map[0x6F7C] = 0x9677; unicode_map[0x6F7D] = 0x965C; 
-unicode_map[0x6F7E] = 0x965E; unicode_map[0x7021] = 0x965D; 
-unicode_map[0x7022] = 0x965F; unicode_map[0x7023] = 0x9666; 
-unicode_map[0x7024] = 0x9672; unicode_map[0x7025] = 0x966C; 
-unicode_map[0x7026] = 0x968D; unicode_map[0x7027] = 0x9698; 
-unicode_map[0x7028] = 0x9695; unicode_map[0x7029] = 0x9697; 
-unicode_map[0x702A] = 0x96AA; unicode_map[0x702B] = 0x96A7; 
-unicode_map[0x702C] = 0x96B1; unicode_map[0x702D] = 0x96B2; 
-unicode_map[0x702E] = 0x96B0; unicode_map[0x702F] = 0x96B4; 
-unicode_map[0x7030] = 0x96B6; unicode_map[0x7031] = 0x96B8; 
-unicode_map[0x7032] = 0x96B9; unicode_map[0x7033] = 0x96CE; 
-unicode_map[0x7034] = 0x96CB; unicode_map[0x7035] = 0x96C9; 
-unicode_map[0x7036] = 0x96CD; unicode_map[0x7037] = 0x894D; 
-unicode_map[0x7038] = 0x96DC; unicode_map[0x7039] = 0x970D; 
-unicode_map[0x703A] = 0x96D5; unicode_map[0x703B] = 0x96F9; 
-unicode_map[0x703C] = 0x9704; unicode_map[0x703D] = 0x9706; 
-unicode_map[0x703E] = 0x9708; unicode_map[0x703F] = 0x9713; 
-unicode_map[0x7040] = 0x970E; unicode_map[0x7041] = 0x9711; 
-unicode_map[0x7042] = 0x970F; unicode_map[0x7043] = 0x9716; 
-unicode_map[0x7044] = 0x9719; unicode_map[0x7045] = 0x9724; 
-unicode_map[0x7046] = 0x972A; unicode_map[0x7047] = 0x9730; 
-unicode_map[0x7048] = 0x9739; unicode_map[0x7049] = 0x973D; 
-unicode_map[0x704A] = 0x973E; unicode_map[0x704B] = 0x9744; 
-unicode_map[0x704C] = 0x9746; unicode_map[0x704D] = 0x9748; 
-unicode_map[0x704E] = 0x9742; unicode_map[0x704F] = 0x9749; 
-unicode_map[0x7050] = 0x975C; unicode_map[0x7051] = 0x9760; 
-unicode_map[0x7052] = 0x9764; unicode_map[0x7053] = 0x9766; 
-unicode_map[0x7054] = 0x9768; unicode_map[0x7055] = 0x52D2; 
-unicode_map[0x7056] = 0x976B; unicode_map[0x7057] = 0x9771; 
-unicode_map[0x7058] = 0x9779; unicode_map[0x7059] = 0x9785; 
-unicode_map[0x705A] = 0x977C; unicode_map[0x705B] = 0x9781; 
-unicode_map[0x705C] = 0x977A; unicode_map[0x705D] = 0x9786; 
-unicode_map[0x705E] = 0x978B; unicode_map[0x705F] = 0x978F; 
-unicode_map[0x7060] = 0x9790; unicode_map[0x7061] = 0x979C; 
-unicode_map[0x7062] = 0x97A8; unicode_map[0x7063] = 0x97A6; 
-unicode_map[0x7064] = 0x97A3; unicode_map[0x7065] = 0x97B3; 
-unicode_map[0x7066] = 0x97B4; unicode_map[0x7067] = 0x97C3; 
-unicode_map[0x7068] = 0x97C6; unicode_map[0x7069] = 0x97C8; 
-unicode_map[0x706A] = 0x97CB; unicode_map[0x706B] = 0x97DC; 
-unicode_map[0x706C] = 0x97ED; unicode_map[0x706D] = 0x9F4F; 
-unicode_map[0x706E] = 0x97F2; unicode_map[0x706F] = 0x7ADF; 
-unicode_map[0x7070] = 0x97F6; unicode_map[0x7071] = 0x97F5; 
-unicode_map[0x7072] = 0x980F; unicode_map[0x7073] = 0x980C; 
-unicode_map[0x7074] = 0x9838; unicode_map[0x7075] = 0x9824; 
-unicode_map[0x7076] = 0x9821; unicode_map[0x7077] = 0x9837; 
-unicode_map[0x7078] = 0x983D; unicode_map[0x7079] = 0x9846; 
-unicode_map[0x707A] = 0x984F; unicode_map[0x707B] = 0x984B; 
-unicode_map[0x707C] = 0x986B; unicode_map[0x707D] = 0x986F; 
-unicode_map[0x707E] = 0x9870; unicode_map[0x7121] = 0x9871; 
-unicode_map[0x7122] = 0x9874; unicode_map[0x7123] = 0x9873; 
-unicode_map[0x7124] = 0x98AA; unicode_map[0x7125] = 0x98AF; 
-unicode_map[0x7126] = 0x98B1; unicode_map[0x7127] = 0x98B6; 
-unicode_map[0x7128] = 0x98C4; unicode_map[0x7129] = 0x98C3; 
-unicode_map[0x712A] = 0x98C6; unicode_map[0x712B] = 0x98E9; 
-unicode_map[0x712C] = 0x98EB; unicode_map[0x712D] = 0x9903; 
-unicode_map[0x712E] = 0x9909; unicode_map[0x712F] = 0x9912; 
-unicode_map[0x7130] = 0x9914; unicode_map[0x7131] = 0x9918; 
-unicode_map[0x7132] = 0x9921; unicode_map[0x7133] = 0x991D; 
-unicode_map[0x7134] = 0x991E; unicode_map[0x7135] = 0x9924; 
-unicode_map[0x7136] = 0x9920; unicode_map[0x7137] = 0x992C; 
-unicode_map[0x7138] = 0x992E; unicode_map[0x7139] = 0x993D; 
-unicode_map[0x713A] = 0x993E; unicode_map[0x713B] = 0x9942; 
-unicode_map[0x713C] = 0x9949; unicode_map[0x713D] = 0x9945; 
-unicode_map[0x713E] = 0x9950; unicode_map[0x713F] = 0x994B; 
-unicode_map[0x7140] = 0x9951; unicode_map[0x7141] = 0x9952; 
-unicode_map[0x7142] = 0x994C; unicode_map[0x7143] = 0x9955; 
-unicode_map[0x7144] = 0x9997; unicode_map[0x7145] = 0x9998; 
-unicode_map[0x7146] = 0x99A5; unicode_map[0x7147] = 0x99AD; 
-unicode_map[0x7148] = 0x99AE; unicode_map[0x7149] = 0x99BC; 
-unicode_map[0x714A] = 0x99DF; unicode_map[0x714B] = 0x99DB; 
-unicode_map[0x714C] = 0x99DD; unicode_map[0x714D] = 0x99D8; 
-unicode_map[0x714E] = 0x99D1; unicode_map[0x714F] = 0x99ED; 
-unicode_map[0x7150] = 0x99EE; unicode_map[0x7151] = 0x99F1; 
-unicode_map[0x7152] = 0x99F2; unicode_map[0x7153] = 0x99FB; 
-unicode_map[0x7154] = 0x99F8; unicode_map[0x7155] = 0x9A01; 
-unicode_map[0x7156] = 0x9A0F; unicode_map[0x7157] = 0x9A05; 
-unicode_map[0x7158] = 0x99E2; unicode_map[0x7159] = 0x9A19; 
-unicode_map[0x715A] = 0x9A2B; unicode_map[0x715B] = 0x9A37; 
-unicode_map[0x715C] = 0x9A45; unicode_map[0x715D] = 0x9A42; 
-unicode_map[0x715E] = 0x9A40; unicode_map[0x715F] = 0x9A43; 
-unicode_map[0x7160] = 0x9A3E; unicode_map[0x7161] = 0x9A55; 
-unicode_map[0x7162] = 0x9A4D; unicode_map[0x7163] = 0x9A5B; 
-unicode_map[0x7164] = 0x9A57; unicode_map[0x7165] = 0x9A5F; 
-unicode_map[0x7166] = 0x9A62; unicode_map[0x7167] = 0x9A65; 
-unicode_map[0x7168] = 0x9A64; unicode_map[0x7169] = 0x9A69; 
-unicode_map[0x716A] = 0x9A6B; unicode_map[0x716B] = 0x9A6A; 
-unicode_map[0x716C] = 0x9AAD; unicode_map[0x716D] = 0x9AB0; 
-unicode_map[0x716E] = 0x9ABC; unicode_map[0x716F] = 0x9AC0; 
-unicode_map[0x7170] = 0x9ACF; unicode_map[0x7171] = 0x9AD1; 
-unicode_map[0x7172] = 0x9AD3; unicode_map[0x7173] = 0x9AD4; 
-unicode_map[0x7174] = 0x9ADE; unicode_map[0x7175] = 0x9ADF; 
-unicode_map[0x7176] = 0x9AE2; unicode_map[0x7177] = 0x9AE3; 
-unicode_map[0x7178] = 0x9AE6; unicode_map[0x7179] = 0x9AEF; 
-unicode_map[0x717A] = 0x9AEB; unicode_map[0x717B] = 0x9AEE; 
-unicode_map[0x717C] = 0x9AF4; unicode_map[0x717D] = 0x9AF1; 
-unicode_map[0x717E] = 0x9AF7; unicode_map[0x7221] = 0x9AFB; 
-unicode_map[0x7222] = 0x9B06; unicode_map[0x7223] = 0x9B18; 
-unicode_map[0x7224] = 0x9B1A; unicode_map[0x7225] = 0x9B1F; 
-unicode_map[0x7226] = 0x9B22; unicode_map[0x7227] = 0x9B23; 
-unicode_map[0x7228] = 0x9B25; unicode_map[0x7229] = 0x9B27; 
-unicode_map[0x722A] = 0x9B28; unicode_map[0x722B] = 0x9B29; 
-unicode_map[0x722C] = 0x9B2A; unicode_map[0x722D] = 0x9B2E; 
-unicode_map[0x722E] = 0x9B2F; unicode_map[0x722F] = 0x9B32; 
-unicode_map[0x7230] = 0x9B44; unicode_map[0x7231] = 0x9B43; 
-unicode_map[0x7232] = 0x9B4F; unicode_map[0x7233] = 0x9B4D; 
-unicode_map[0x7234] = 0x9B4E; unicode_map[0x7235] = 0x9B51; 
-unicode_map[0x7236] = 0x9B58; unicode_map[0x7237] = 0x9B74; 
-unicode_map[0x7238] = 0x9B93; unicode_map[0x7239] = 0x9B83; 
-unicode_map[0x723A] = 0x9B91; unicode_map[0x723B] = 0x9B96; 
-unicode_map[0x723C] = 0x9B97; unicode_map[0x723D] = 0x9B9F; 
-unicode_map[0x723E] = 0x9BA0; unicode_map[0x723F] = 0x9BA8; 
-unicode_map[0x7240] = 0x9BB4; unicode_map[0x7241] = 0x9BC0; 
-unicode_map[0x7242] = 0x9BCA; unicode_map[0x7243] = 0x9BB9; 
-unicode_map[0x7244] = 0x9BC6; unicode_map[0x7245] = 0x9BCF; 
-unicode_map[0x7246] = 0x9BD1; unicode_map[0x7247] = 0x9BD2; 
-unicode_map[0x7248] = 0x9BE3; unicode_map[0x7249] = 0x9BE2; 
-unicode_map[0x724A] = 0x9BE4; unicode_map[0x724B] = 0x9BD4; 
-unicode_map[0x724C] = 0x9BE1; unicode_map[0x724D] = 0x9C3A; 
-unicode_map[0x724E] = 0x9BF2; unicode_map[0x724F] = 0x9BF1; 
-unicode_map[0x7250] = 0x9BF0; unicode_map[0x7251] = 0x9C15; 
-unicode_map[0x7252] = 0x9C14; unicode_map[0x7253] = 0x9C09; 
-unicode_map[0x7254] = 0x9C13; unicode_map[0x7255] = 0x9C0C; 
-unicode_map[0x7256] = 0x9C06; unicode_map[0x7257] = 0x9C08; 
-unicode_map[0x7258] = 0x9C12; unicode_map[0x7259] = 0x9C0A; 
-unicode_map[0x725A] = 0x9C04; unicode_map[0x725B] = 0x9C2E; 
-unicode_map[0x725C] = 0x9C1B; unicode_map[0x725D] = 0x9C25; 
-unicode_map[0x725E] = 0x9C24; unicode_map[0x725F] = 0x9C21; 
-unicode_map[0x7260] = 0x9C30; unicode_map[0x7261] = 0x9C47; 
-unicode_map[0x7262] = 0x9C32; unicode_map[0x7263] = 0x9C46; 
-unicode_map[0x7264] = 0x9C3E; unicode_map[0x7265] = 0x9C5A; 
-unicode_map[0x7266] = 0x9C60; unicode_map[0x7267] = 0x9C67; 
-unicode_map[0x7268] = 0x9C76; unicode_map[0x7269] = 0x9C78; 
-unicode_map[0x726A] = 0x9CE7; unicode_map[0x726B] = 0x9CEC; 
-unicode_map[0x726C] = 0x9CF0; unicode_map[0x726D] = 0x9D09; 
-unicode_map[0x726E] = 0x9D08; unicode_map[0x726F] = 0x9CEB; 
-unicode_map[0x7270] = 0x9D03; unicode_map[0x7271] = 0x9D06; 
-unicode_map[0x7272] = 0x9D2A; unicode_map[0x7273] = 0x9D26; 
-unicode_map[0x7274] = 0x9DAF; unicode_map[0x7275] = 0x9D23; 
-unicode_map[0x7276] = 0x9D1F; unicode_map[0x7277] = 0x9D44; 
-unicode_map[0x7278] = 0x9D15; unicode_map[0x7279] = 0x9D12; 
-unicode_map[0x727A] = 0x9D41; unicode_map[0x727B] = 0x9D3F; 
-unicode_map[0x727C] = 0x9D3E; unicode_map[0x727D] = 0x9D46; 
-unicode_map[0x727E] = 0x9D48; unicode_map[0x7321] = 0x9D5D; 
-unicode_map[0x7322] = 0x9D5E; unicode_map[0x7323] = 0x9D64; 
-unicode_map[0x7324] = 0x9D51; unicode_map[0x7325] = 0x9D50; 
-unicode_map[0x7326] = 0x9D59; unicode_map[0x7327] = 0x9D72; 
-unicode_map[0x7328] = 0x9D89; unicode_map[0x7329] = 0x9D87; 
-unicode_map[0x732A] = 0x9DAB; unicode_map[0x732B] = 0x9D6F; 
-unicode_map[0x732C] = 0x9D7A; unicode_map[0x732D] = 0x9D9A; 
-unicode_map[0x732E] = 0x9DA4; unicode_map[0x732F] = 0x9DA9; 
-unicode_map[0x7330] = 0x9DB2; unicode_map[0x7331] = 0x9DC4; 
-unicode_map[0x7332] = 0x9DC1; unicode_map[0x7333] = 0x9DBB; 
-unicode_map[0x7334] = 0x9DB8; unicode_map[0x7335] = 0x9DBA; 
-unicode_map[0x7336] = 0x9DC6; unicode_map[0x7337] = 0x9DCF; 
-unicode_map[0x7338] = 0x9DC2; unicode_map[0x7339] = 0x9DD9; 
-unicode_map[0x733A] = 0x9DD3; unicode_map[0x733B] = 0x9DF8; 
-unicode_map[0x733C] = 0x9DE6; unicode_map[0x733D] = 0x9DED; 
-unicode_map[0x733E] = 0x9DEF; unicode_map[0x733F] = 0x9DFD; 
-unicode_map[0x7340] = 0x9E1A; unicode_map[0x7341] = 0x9E1B; 
-unicode_map[0x7342] = 0x9E1E; unicode_map[0x7343] = 0x9E75; 
-unicode_map[0x7344] = 0x9E79; unicode_map[0x7345] = 0x9E7D; 
-unicode_map[0x7346] = 0x9E81; unicode_map[0x7347] = 0x9E88; 
-unicode_map[0x7348] = 0x9E8B; unicode_map[0x7349] = 0x9E8C; 
-unicode_map[0x734A] = 0x9E92; unicode_map[0x734B] = 0x9E95; 
-unicode_map[0x734C] = 0x9E91; unicode_map[0x734D] = 0x9E9D; 
-unicode_map[0x734E] = 0x9EA5; unicode_map[0x734F] = 0x9EA9; 
-unicode_map[0x7350] = 0x9EB8; unicode_map[0x7351] = 0x9EAA; 
-unicode_map[0x7352] = 0x9EAD; unicode_map[0x7353] = 0x9761; 
-unicode_map[0x7354] = 0x9ECC; unicode_map[0x7355] = 0x9ECE; 
-unicode_map[0x7356] = 0x9ECF; unicode_map[0x7357] = 0x9ED0; 
-unicode_map[0x7358] = 0x9ED4; unicode_map[0x7359] = 0x9EDC; 
-unicode_map[0x735A] = 0x9EDE; unicode_map[0x735B] = 0x9EDD; 
-unicode_map[0x735C] = 0x9EE0; unicode_map[0x735D] = 0x9EE5; 
-unicode_map[0x735E] = 0x9EE8; unicode_map[0x735F] = 0x9EEF; 
-unicode_map[0x7360] = 0x9EF4; unicode_map[0x7361] = 0x9EF6; 
-unicode_map[0x7362] = 0x9EF7; unicode_map[0x7363] = 0x9EF9; 
-unicode_map[0x7364] = 0x9EFB; unicode_map[0x7365] = 0x9EFC; 
-unicode_map[0x7366] = 0x9EFD; unicode_map[0x7367] = 0x9F07; 
-unicode_map[0x7368] = 0x9F08; unicode_map[0x7369] = 0x76B7; 
-unicode_map[0x736A] = 0x9F15; unicode_map[0x736B] = 0x9F21; 
-unicode_map[0x736C] = 0x9F2C; unicode_map[0x736D] = 0x9F3E; 
-unicode_map[0x736E] = 0x9F4A; unicode_map[0x736F] = 0x9F52; 
-unicode_map[0x7370] = 0x9F54; unicode_map[0x7371] = 0x9F63; 
-unicode_map[0x7372] = 0x9F5F; unicode_map[0x7373] = 0x9F60; 
-unicode_map[0x7374] = 0x9F61; unicode_map[0x7375] = 0x9F66; 
-unicode_map[0x7376] = 0x9F67; unicode_map[0x7377] = 0x9F6C; 
-unicode_map[0x7378] = 0x9F6A; unicode_map[0x7379] = 0x9F77; 
-unicode_map[0x737A] = 0x9F72; unicode_map[0x737B] = 0x9F76; 
-unicode_map[0x737C] = 0x9F95; unicode_map[0x737D] = 0x9F9C; 
-unicode_map[0x737E] = 0x9FA0; unicode_map[0x7421] = 0x582F; 
-unicode_map[0x7422] = 0x69C7; unicode_map[0x7423] = 0x9059; 
-unicode_map[0x7424] = 0x7464; unicode_map[0x7425] = 0x51DC; 
-unicode_map[0x7426] = 0x7199; 
-}
-
-#endif /* FREETYPE_CHARSET16 */
-
 void
 latin_unicode_map_init(){