Re-integrate mainline
Nick Ing-Simmons [Sat, 18 Sep 1999 15:24:56 +0000 (15:24 +0000)]
Basic SvUTF8 stuff in headers, no functional changes yet.

p4raw-id: //depot/utfperl@4193

179 files changed:
Changes
Configure
INSTALL
MANIFEST
Porting/Glossary
Porting/config.sh
Porting/config_H
config_h.SH
configure.com
doio.c
dump.c
embed.h
embed.pl
embedvar.h
epoc/config.h
ext/B/B.pm
ext/B/B.xs
ext/B/B/Bblock.pm
ext/B/B/Debug.pm
ext/B/B/Terse.pm
ext/B/Makefile.PL
ext/B/defsubs_h.PL [moved from ext/B/defsubs.h.PL with 97% similarity]
ext/B/typemap
ext/DB_File/Changes
ext/DB_File/DB_File.pm
ext/DB_File/DB_File.xs
ext/DB_File/Makefile.PL
ext/DB_File/dbinfo
ext/DB_File/typemap
ext/DB_File/version.c [new file with mode: 0644]
ext/Devel/DProf/DProf.xs
ext/DynaLoader/DynaLoader_pm.PL
ext/DynaLoader/dl_aix.xs
ext/DynaLoader/dl_beos.xs
ext/DynaLoader/dl_cygwin.xs
ext/DynaLoader/dl_dld.xs
ext/DynaLoader/dl_dlopen.xs
ext/DynaLoader/dl_hpux.xs
ext/DynaLoader/dl_mpeix.xs
ext/DynaLoader/dl_next.xs
ext/DynaLoader/dl_rhapsody.xs
ext/DynaLoader/dl_vmesa.xs
ext/DynaLoader/dl_vms.xs
ext/ODBM_File/ODBM_File.xs
ext/Opcode/Safe.pm
ext/POSIX/POSIX.xs
hints/irix_6.sh
hints/unicos.sh
intrpvar.h
jpl/JNI/Closer.java [new file with mode: 0755]
jpl/JNI/JNI.pm
jpl/JNI/JNI.xs
jpl/JNI/JNIConfig [new file with mode: 0644]
jpl/JNI/JNIConfig.Win32 [new file with mode: 0644]
jpl/JNI/JNIConfig.kaffe [new file with mode: 0644]
jpl/JNI/JNIConfig.noembed [new file with mode: 0644]
jpl/JNI/JNIConfig.standard [new file with mode: 0644]
jpl/JNI/Makefile.PL
jpl/JNI/test.pl
jpl/JNI/typemap
jpl/JNI/typemap.gcc [new file with mode: 0644]
jpl/JNI/typemap.win32 [new file with mode: 0644]
jpl/JPL/Makefile.PL
jpl/PerlInterpreter/Makefile.PL
jpl/PerlInterpreter/PerlInterpreter.c
jpl/PerlInterpreter/PerlInterpreter.h
jpl/README
jpl/SETVARS.PL [new file with mode: 0644]
jpl/Sample/Makefile.PL
jpl/install-jpl
lib/Benchmark.pm
lib/Exporter/Heavy.pm
lib/ExtUtils/MM_Unix.pm
lib/ExtUtils/MM_VMS.pm
lib/ExtUtils/MakeMaker.pm
lib/ExtUtils/typemap
lib/File/Spec/Functions.pm
lib/File/Spec/VMS.pm
lib/Pod/Functions.pm
lib/Time/Local.pm
lib/byte.pm [new file with mode: 0644]
lib/byte_heavy.pl [new file with mode: 0644]
lib/perl5db.pl
lib/unicode/ArabLink.pl
lib/unicode/ArabLnkGrp.pl
lib/unicode/ArabShap.txt [new file with mode: 0644]
lib/unicode/Bidirectional.pl
lib/unicode/Block.pl
lib/unicode/Blocks.txt [moved from lib/unicode/blocks.txt with 76% similarity, mode: 0644]
lib/unicode/Category.pl
lib/unicode/CombiningClass.pl
lib/unicode/CompExcl.txt [new file with mode: 0644]
lib/unicode/Decomposition.pl
lib/unicode/EAWidth.txt [new file with mode: 0644]
lib/unicode/In/ArabicPresentationForms-B.pl
lib/unicode/In/Specials.pl
lib/unicode/In/Tibetan.pl
lib/unicode/Index.txt [moved from lib/unicode/index2.txt with 68% similarity, mode: 0644]
lib/unicode/Is/Alnum.pl
lib/unicode/Is/Alpha.pl
lib/unicode/Is/BidiCS.pl
lib/unicode/Is/BidiL.pl
lib/unicode/Is/BidiON.pl
lib/unicode/Is/BidiWS.pl
lib/unicode/Is/DCcompat.pl
lib/unicode/Is/DecoCanon.pl
lib/unicode/Is/DecoCompat.pl
lib/unicode/Is/L.pl
lib/unicode/Is/Ll.pl
lib/unicode/Is/Lo.pl
lib/unicode/Is/Lower.pl
lib/unicode/Is/Lu.pl
lib/unicode/Is/Pd.pl
lib/unicode/Is/Po.pl
lib/unicode/Is/S.pl
lib/unicode/Is/Sm.pl
lib/unicode/Is/So.pl
lib/unicode/Is/Upper.pl
lib/unicode/Is/Word.pl
lib/unicode/Jamo-2.txt [moved from lib/unicode/jamo2.txt with 98% similarity, mode: 0644]
lib/unicode/JamoShort.pl
lib/unicode/LineBrk.txt [new file with mode: 0644]
lib/unicode/Names.txt [moved from lib/unicode/names2.txt with 55% similarity, mode: 0644]
lib/unicode/Props.txt [new file with mode: 0644]
lib/unicode/ReadMe.txt [new file with mode: 0644]
lib/unicode/SpecCase.txt [new file with mode: 0644]
lib/unicode/UnicodeData-Latest.txt
lib/unicode/arabshp.txt [deleted file]
lib/unicode/mktables.PL
lib/unicode/props2.txt [deleted file]
lib/unicode/readme.txt [deleted file]
malloc.c
objXSUB.h
opcode.h
opcode.pl
perl.c
perl.h
perlapi.c
pod/perldata.pod
pod/perldelta.pod
pod/perldiag.pod
pod/perlfunc.pod
pod/perlguts.pod
pod/perlhist.pod
pod/perllexwarn.pod
pod/perlsyn.pod
pp.c
pp_ctl.c
pp_hot.c
pp_sys.c
proto.h
regexec.c
sv.c
sv.h
t/io/dup.t
t/io/open.t
t/lib/bigfltpm.t [moved from t/lib/bigfloatpm.t with 100% similarity]
t/lib/db-btree.t
t/lib/syslfs.t
t/op/arith.t
t/op/groups.t
t/op/lfs.t
t/op/misc.t
t/op/pat.t
t/op/sprintf.t
t/pragma/locale.t
t/pragma/warn/op
t/pragma/warn/pp_hot
t/pragma/warn/sv
thrdvar.h
toke.c
utf8.h
vms/descrip_mms.template
vms/gen_shrfls.pl
vms/perly_c.vms
vms/subconfigure.com
vms/vms.c
vms/vmsish.h
win32/config_sh.PL

diff --git a/Changes b/Changes
index 6fd3e3c..264c56b 100644 (file)
--- a/Changes
+++ b/Changes
@@ -79,6 +79,558 @@ Version 5.005_62        Development release working toward 5.006
 ----------------
 
 ____________________________________________________________________________
+[  4188] By: jhi                                   on 1999/09/17  21:30:08
+        Log: Pick up the typo fix.
+     Branch: cfgperl
+         !> t/io/open.t
+____________________________________________________________________________
+[  4187] By: gsar                                  on 1999/09/17  21:13:55
+        Log: fix typo
+     Branch: perl
+          ! t/io/open.t
+____________________________________________________________________________
+[  4186] By: gsar                                  on 1999/09/17  20:57:29
+        Log: integrate cfgperl change
+     Branch: perl
+         !> vms/subconfigure.com
+____________________________________________________________________________
+[  4185] By: jhi                                   on 1999/09/17  20:46:41
+        Log: Re-apply applicable parts of #3993, #3994, and #3995.
+     Branch: cfgperl
+          ! vms/subconfigure.com
+____________________________________________________________________________
+[  4184] By: gsar                                  on 1999/09/17  20:26:02
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+         +> lib/unicode/ArabShap.txt lib/unicode/Blocks.txt
+         +> lib/unicode/CompExcl.txt lib/unicode/EAWidth.txt
+         +> lib/unicode/Index.txt lib/unicode/Jamo-2.txt
+         +> lib/unicode/LineBrk.txt lib/unicode/Names.txt
+         +> lib/unicode/Props.txt lib/unicode/ReadMe.txt
+         +> lib/unicode/SpecCase.txt
+          - lib/unicode/arabshp.txt lib/unicode/blocks.txt
+          - lib/unicode/index2.txt lib/unicode/jamo2.txt
+          - lib/unicode/names2.txt lib/unicode/props2.txt
+          - lib/unicode/readme.txt
+         !> (integrate 73 files)
+____________________________________________________________________________
+[  4183] By: jhi                                   on 1999/09/17  20:25:51
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> configure.com ext/ByteLoader/byterun.h
+         !> ext/DynaLoader/DynaLoader_pm.PL lib/ExtUtils/MM_VMS.pm
+         !> lib/File/Spec/VMS.pm pod/perlhist.pod t/io/open.t
+         !> vms/descrip_mms.template vms/gen_shrfls.pl vms/perly_c.vms
+         !> vms/perly_h.vms vms/subconfigure.com vms/vms.c vms/vmsish.h
+____________________________________________________________________________
+[  4182] By: gsar                                  on 1999/09/17  20:16:28
+        Log: integrate vmsperl contents into mainline (where VMS files conflicted,
+             vmsperl contents have prevailed)
+     Branch: perl
+         !> configure.com ext/ByteLoader/byterun.h
+         !> ext/DynaLoader/DynaLoader_pm.PL lib/ExtUtils/MM_VMS.pm
+         !> lib/File/Spec/VMS.pm t/io/open.t vms/descrip_mms.template
+         !> vms/gen_shrfls.pl vms/perly_c.vms vms/perly_h.vms
+         !> vms/subconfigure.com vms/vms.c vms/vmsish.h
+____________________________________________________________________________
+[  4181] By: jhi                                   on 1999/09/17  20:12:37
+        Log: From: Michael G Schwern <schwern@pobox.com>
+             To: perl5-porters@perl.org
+             Subject: [PATCH 5.005_60 lib/Exporter/Heavy.pm] export_to_level()
+             Date: Thu, 19 Aug 1999 21:30:01 -0400
+             Message-ID: <19990819213001.A22512@athens.aocn.com>
+     Branch: cfgperl
+          ! lib/Exporter/Heavy.pm
+____________________________________________________________________________
+[  4180] By: gsar                                  on 1999/09/17  20:11:00
+        Log: perlhist additions
+     Branch: perl
+          ! pod/perlhist.pod
+____________________________________________________________________________
+[  4179] By: jhi                                   on 1999/09/17  20:08:00
+        Log: The change #4176 should've undone only the test, not the code patch.
+     Branch: cfgperl
+          ! doio.c
+____________________________________________________________________________
+[  4178] By: jhi                                   on 1999/09/17  20:06:08
+        Log: From: Ian Phillipps <ian@dial.pipex.com>
+             To: Hans GINZEL <hgin2088@mail.kolej.mff.cuni.cz>, perl5-porters@perl.org
+             Subject: [PATCH 5.005_59] Re: [ID 19990820.007] Small typo in perlsyn.pod
+             Date: Sat, 21 Aug 1999 12:36:12 +0100
+             Message-ID: <19990821123612.A9955@homer.diplex.co.uk>
+     Branch: cfgperl
+          ! pod/perlsyn.pod
+____________________________________________________________________________
+[  4177] By: jhi                                   on 1999/09/17  20:00:19
+        Log: More descriptive names for operators.
+             
+             From: Michael G Schwern <schwern@pobox.com>
+             To: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Cc: perl5-porters@perl.org
+             Subject: Re: [ID 19990817.009] [BUG 5.005_60 & 5.005_03] == reported as eq in
+             Date: Tue, 17 Aug 1999 18:35:45 -0400
+             Message-ID: <19990817183545.A23073@toldyouso.com>
+             
+             From: Michael G Schwern <schwern@pobox.com>
+             To: perl5-porters@perl.org
+             Subject: [PATCH 5.005_60 opcode.pl and friends] Improved opcode descriptions
+             Date: Wed, 18 Aug 1999 03:53:38 -0400
+             Message-ID: <19990818035337.A31505@athens.aocn.com>
+     Branch: cfgperl
+          ! opcode.h opcode.pl pp.sym pp_proto.h sv.c t/op/misc.t
+          ! t/pragma/warn/op t/pragma/warn/sv
+____________________________________________________________________________
+[  4176] By: jhi                                   on 1999/09/17  18:19:18
+        Log: Take away the infamous io/dup.t #7.
+             It seems there simply is no way to portably
+             "flush" an input file handle.
+     Branch: cfgperl
+          ! doio.c t/io/dup.t
+____________________________________________________________________________
+[  4175] By: jhi                                   on 1999/09/17  14:45:08
+        Log: From: Barrie Slaymaker <barries@slaysys.com>
+             To: perl5-porters@perl.org
+             Subject: [PATCH 5.005_61] Benchmark: screwed patch format, try this instead
+             Date: Fri, 17 Sep 1999 11:16:48 -0400
+             Message-Id: <199909171516.LAA30887@jester.slaysys.com>
+     Branch: cfgperl
+          ! lib/Benchmark.pm
+____________________________________________________________________________
+[  4174] By: jhi                                   on 1999/09/17  14:07:16
+        Log: UNICOS does support large files but doesn't support sparse files
+             so we cannot easily test for large file support.
+     Branch: cfgperl
+          ! t/lib/syslfs.t t/op/lfs.t
+____________________________________________________________________________
+[  4173] By: jhi                                   on 1999/09/17  14:03:44
+        Log: UNICOS has sloppy division/modulo for floating point numbers.
+     Branch: cfgperl
+          ! t/op/arith.t
+____________________________________________________________________________
+[  4172] By: jhi                                   on 1999/09/17  13:47:49
+        Log: Portable blocksize (replaces #4171).
+     Branch: cfgperl
+          ! t/lib/syslfs.t t/op/lfs.t
+____________________________________________________________________________
+[  4171] By: jhi                                   on 1999/09/17  13:08:54
+        Log: (replaced by #4172)
+     Branch: cfgperl
+          ! t/lib/syslfs.t t/op/lfs.t
+____________________________________________________________________________
+[  4170] By: jhi                                   on 1999/09/17  12:59:11
+        Log: Detypo #4169.
+     Branch: cfgperl
+          ! t/lib/syslfs.t t/op/lfs.t
+____________________________________________________________________________
+[  4169] By: jhi                                   on 1999/09/17  12:16:34
+        Log: Diagnose possible quota limits.
+     Branch: cfgperl
+          ! t/lib/syslfs.t t/op/lfs.t
+____________________________________________________________________________
+[  4168] By: jhi                                   on 1999/09/17  12:10:43
+        Log: UNICOS doesn't have getpgid().  Or, at least 9.0.1ai
+             doesn't have one that wouldn't cause SIGSYS.  UNICOS
+             does have getpgrp(void) so Perl getpgrp() is happy.
+     Branch: cfgperl
+          ! hints/unicos.sh
+____________________________________________________________________________
+[  4167] By: jhi                                   on 1999/09/17  11:49:30
+        Log: Filesystem quotas may stop you from using large files.
+     Branch: cfgperl
+          ! pod/perldelta.pod t/lib/syslfs.t t/op/lfs.t
+____________________________________________________________________________
+[  4166] By: jhi                                   on 1999/09/17  11:36:01
+        Log: Too strict pattern for parsing group lists.
+     Branch: cfgperl
+          ! t/op/groups.t
+____________________________________________________________________________
+[  4165] By: jhi                                   on 1999/09/17  09:06:18
+        Log: Configure maintenance. It's sigaction.sa_flags
+             and the Glossary regen'ed.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH
+     Branch: metaconfig
+          ! U/compline/d_sigaction.U
+____________________________________________________________________________
+[  4164] By: jhi                                   on 1999/09/15  06:57:51
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> jpl/JNI/Closer.java jpl/JNI/JNIConfig jpl/JNI/JNIConfig.Win32
+         +> jpl/JNI/JNIConfig.kaffe jpl/JNI/JNIConfig.noembed
+         +> jpl/JNI/JNIConfig.standard jpl/JNI/typemap.gcc
+         +> jpl/JNI/typemap.win32 jpl/SETVARS.PL
+         !> Changes MANIFEST embed.h embed.pl jpl/JNI/JNI.pm
+         !> jpl/JNI/JNI.xs jpl/JNI/Makefile.PL jpl/JNI/test.pl
+         !> jpl/JNI/typemap jpl/JPL/Makefile.PL
+         !> jpl/PerlInterpreter/Makefile.PL
+         !> jpl/PerlInterpreter/PerlInterpreter.c
+         !> jpl/PerlInterpreter/PerlInterpreter.h jpl/README
+         !> jpl/Sample/Makefile.PL jpl/install-jpl
+         !> lib/File/Spec/Functions.pm pod/perlhist.pod regexec.c
+         !> t/op/pat.t
+____________________________________________________________________________
+[  4163] By: gsar                                  on 1999/09/15  05:17:27
+        Log: add :ALL export tag (from Chris Nandor <pudge@pobox.com>)
+     Branch: perl
+          ! lib/File/Spec/Functions.pm
+____________________________________________________________________________
+[  4162] By: gsar                                  on 1999/09/15  05:09:14
+        Log: addendum to change#4136 (from Robin Barker <rmb1@cise.npl.co.uk>)
+     Branch: perl
+          ! Changes embed.h embed.pl
+____________________________________________________________________________
+[  4161] By: gsar                                  on 1999/09/15  04:08:25
+        Log: missing perlhist dates from Jeff Okamoto
+     Branch: perl
+          ! pod/perlhist.pod
+____________________________________________________________________________
+[  4160] By: gsar                                  on 1999/09/15  03:13:08
+        Log: jpl tweak
+     Branch: perl
+          ! MANIFEST jpl/JNI/Makefile.PL
+____________________________________________________________________________
+[  4159] By: gsar                                  on 1999/09/15  02:57:08
+        Log: update to JPL snapshot v09141999, with minor tweaks (from Brian
+             Jepson <bjepson@home.com>)
+     Branch: perl
+          + jpl/JNI/Closer.java jpl/JNI/JNIConfig jpl/JNI/JNIConfig.Win32
+          + jpl/JNI/JNIConfig.kaffe jpl/JNI/JNIConfig.noembed
+          + jpl/JNI/JNIConfig.standard jpl/JNI/typemap.gcc
+          + jpl/JNI/typemap.win32 jpl/SETVARS.PL
+          ! jpl/JNI/JNI.pm jpl/JNI/JNI.xs jpl/JNI/Makefile.PL
+          ! jpl/JNI/test.pl jpl/JNI/typemap jpl/JPL/Makefile.PL
+          ! jpl/PerlInterpreter/Makefile.PL
+          ! jpl/PerlInterpreter/PerlInterpreter.c
+          ! jpl/PerlInterpreter/PerlInterpreter.h jpl/README
+          ! jpl/Sample/Makefile.PL jpl/install-jpl
+____________________________________________________________________________
+[  4158] By: gsar                                  on 1999/09/15  01:27:14
+        Log: From:    Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date:    Tue, 14 Sep 1999 21:26:15 EDT
+             Message-Id: <199909150126.VAA24720@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.005_58+] Re: [ID 19990914.001] Perl_re_intuit_start() hangs in a loop
+     Branch: perl
+          ! regexec.c t/op/pat.t
+____________________________________________________________________________
+[  4157] By: jhi                                   on 1999/09/14  21:18:09
+        Log: config.h will define USE_64_BITS if need be.
+     Branch: cfgperl
+          ! hints/irix_6.sh
+____________________________________________________________________________
+[  4156] By: jhi                                   on 1999/09/14  20:30:00
+        Log: Change #4149 necessitates also a small code change.
+     Branch: cfgperl
+          ! ext/B/defsubs_h.PL
+____________________________________________________________________________
+[  4155] By: jhi                                   on 1999/09/14  20:15:53
+        Log: Update EPOC libdir names.
+     Branch: cfgperl
+          ! epoc/config.h
+____________________________________________________________________________
+[  4154] By: jhi                                   on 1999/09/14  20:13:41
+        Log: Obsolete epoc/config.h caused #4153 to re-introduce already
+             deceased HAS.*DBM.*64 mumblings.
+     Branch: cfgperl
+          ! Configure config_h.SH epoc/config.h
+____________________________________________________________________________
+[  4153] By: jhi                                   on 1999/09/14  20:04:53
+        Log: Configure nits.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/compline/d_sigaction.U U/threads/i_pthread.U
+____________________________________________________________________________
+[  4152] By: jhi                                   on 1999/09/14  19:30:22
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> ext/B/defsubs_h.PL t/lib/bigfltpm.t
+          - ext/B/defsubs.h.PL t/lib/bigfloatpm.t
+         !> INSTALL MANIFEST ext/B/Makefile.PL pod/perldiag.pod
+         !> win32/config_sh.PL
+____________________________________________________________________________
+[  4151] By: jhi                                   on 1999/09/14  10:25:01
+        Log: Update Unicode database and recompute the tables.
+             Rename the .txt files to be more Unicode 3.0-like.
+             Unihan-3.0.txt not included because it is 16 MB.
+             syllables.txt is manually maintained.
+             See ReadMe.txt for description of the .txt files.
+             (not all of them are used yet)
+     Branch: cfgperl
+          + lib/unicode/ArabShap.txt lib/unicode/Blocks.txt
+          + lib/unicode/CompExcl.txt lib/unicode/EAWidth.txt
+          + lib/unicode/Index.txt lib/unicode/Jamo-2.txt
+          + lib/unicode/LineBrk.txt lib/unicode/Names.txt
+          + lib/unicode/Props.txt lib/unicode/ReadMe.txt
+          + lib/unicode/SpecCase.txt
+          - lib/unicode/arabshp.txt lib/unicode/blocks.txt
+          - lib/unicode/index2.txt lib/unicode/jamo2.txt
+          - lib/unicode/names2.txt lib/unicode/props2.txt
+          - lib/unicode/readme.txt
+          ! MANIFEST lib/unicode/ArabLink.pl lib/unicode/ArabLnkGrp.pl
+          ! lib/unicode/Bidirectional.pl lib/unicode/Block.pl
+          ! lib/unicode/Category.pl lib/unicode/CombiningClass.pl
+          ! lib/unicode/Decomposition.pl
+          ! lib/unicode/In/ArabicPresentationForms-B.pl
+          ! lib/unicode/In/Specials.pl lib/unicode/In/Tibetan.pl
+          ! lib/unicode/Is/Alnum.pl lib/unicode/Is/Alpha.pl
+          ! lib/unicode/Is/BidiCS.pl lib/unicode/Is/BidiL.pl
+          ! lib/unicode/Is/BidiON.pl lib/unicode/Is/BidiWS.pl
+          ! lib/unicode/Is/DCcompat.pl lib/unicode/Is/DecoCanon.pl
+          ! lib/unicode/Is/DecoCompat.pl lib/unicode/Is/L.pl
+          ! lib/unicode/Is/Ll.pl lib/unicode/Is/Lo.pl
+          ! lib/unicode/Is/Lower.pl lib/unicode/Is/Lu.pl
+          ! lib/unicode/Is/Pd.pl lib/unicode/Is/Po.pl lib/unicode/Is/S.pl
+          ! lib/unicode/Is/Sm.pl lib/unicode/Is/So.pl
+          ! lib/unicode/Is/Upper.pl lib/unicode/Is/Word.pl
+          ! lib/unicode/JamoShort.pl lib/unicode/UnicodeData-Latest.txt
+          ! lib/unicode/mktables.PL
+____________________________________________________________________________
+[  4150] By: gsar                                  on 1999/09/14  09:31:57
+        Log: INSTALL tweak
+     Branch: perl
+          ! INSTALL
+____________________________________________________________________________
+[  4149] By: gsar                                  on 1999/09/14  09:00:45
+        Log: change some filenames to be 8.3-friendly
+     Branch: perl
+         +> ext/B/defsubs_h.PL t/lib/bigfltpm.t
+          - ext/B/defsubs.h.PL t/lib/bigfloatpm.t
+          ! MANIFEST ext/B/Makefile.PL pod/perldiag.pod
+____________________________________________________________________________
+[  4148] By: gsar                                  on 1999/09/14  08:35:00
+        Log: win32 config tweak (suggested by Greg Chapman <glc@well.com>)
+     Branch: perl
+          ! win32/config_sh.PL
+____________________________________________________________________________
+[  4147] By: jhi                                   on 1999/09/14  08:07:49
+        Log: Not that UVSIZE normally differs that much from IVSIZE...
+     Branch: cfgperl
+          ! perl.h
+____________________________________________________________________________
+[  4146] By: jhi                                   on 1999/09/14  08:04:40
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> Changes ext/DB_File/DB_File.xs
+____________________________________________________________________________
+[  4145] By: jhi                                   on 1999/09/14  07:10:02
+        Log: I_PTHREAD was PTHREADEAD.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/threads/i_pthread.U
+____________________________________________________________________________
+[  4144] By: gsar                                  on 1999/09/14  06:46:47
+        Log: change#4113 was missing DB_File.xs changes
+     Branch: perl
+          ! ext/DB_File/DB_File.xs
+____________________________________________________________________________
+[  4143] By: jhi                                   on 1999/09/13  20:16:20
+        Log: Small doc and whitespace edits.
+     Branch: cfgperl
+          ! ext/DynaLoader/dl_aix.xs ext/DynaLoader/dl_beos.xs
+          ! ext/DynaLoader/dl_cygwin.xs ext/DynaLoader/dl_dld.xs
+          ! ext/DynaLoader/dl_hpux.xs ext/DynaLoader/dl_mpeix.xs
+          ! ext/DynaLoader/dl_next.xs ext/DynaLoader/dl_rhapsody.xs
+          ! ext/DynaLoader/dl_vmesa.xs ext/DynaLoader/dl_vms.xs
+          ! pod/perldelta.pod
+____________________________________________________________________________
+[  4142] By: gsar                                  on 1999/09/13  19:32:31
+        Log: integrate cfgperl contents into mainline, update Changes
+     Branch: perl
+         +> ext/DB_File/version.c
+          ! Changes
+         !> (integrate 44 files)
+____________________________________________________________________________
+[  4141] By: jhi                                   on 1999/09/13  16:16:56
+        Log: Scan for <pthread.h> always.
+     Branch: cfgperl
+          ! Configure config_h.SH perl.h
+     Branch: metaconfig
+          ! U/threads/i_pthread.U
+____________________________________________________________________________
+[  4140] By: jhi                                   on 1999/09/13  16:00:08
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> (integrate 27 files)
+____________________________________________________________________________
+[  4139] By: jhi                                   on 1999/09/13  15:35:18
+        Log: Add -A option to Configure to diddle with variables
+             after the hints file has been applied.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/modified/Oldconfig.U U/modified/Options.U
+____________________________________________________________________________
+[  4138] By: jhi                                   on 1999/09/13  13:42:56
+        Log: Change #4136 edited DynaLoader.xs which is kind of fruitless.
+     Branch: cfgperl
+          ! ext/DynaLoader/dl_aix.xs ext/DynaLoader/dl_beos.xs
+          ! ext/DynaLoader/dl_cygwin.xs ext/DynaLoader/dl_dld.xs
+          ! ext/DynaLoader/dl_hpux.xs ext/DynaLoader/dl_mpeix.xs
+          ! ext/DynaLoader/dl_next.xs ext/DynaLoader/dl_rhapsody.xs
+          ! ext/DynaLoader/dl_vmesa.xs ext/DynaLoader/dl_vms.xs
+____________________________________________________________________________
+[  4137] By: jhi                                   on 1999/09/13  13:25:31
+        Log: Applying change #4136 manually introduced patch residue.
+     Branch: cfgperl
+          ! perl.h
+____________________________________________________________________________
+[  4136] By: jhi                                   on 1999/09/13  13:23:04
+        Log: Replace change #4100 with
+             From: Robin Barker <rmb1@cise.npl.co.uk>
+             To: gsar@activestate.com
+             Cc: perl5-porters@perl.org
+             Subject: Re: [ID 19990907.004] [PATCH perl5.005_61] compiler warnings with -Duse64bits
+             Date: Mon, 13 Sep 1999 14:15:11 +0100 (BST)
+             Message-Id: <199909131315.OAA24012@tempest.npl.co.uk>
+     Branch: cfgperl
+          ! doio.c dump.c ext/B/B.xs ext/B/typemap
+          ! ext/ByteLoader/bytecode.h ext/Devel/DProf/DProf.xs
+          ! ext/DynaLoader/dl_dlopen.xs ext/ODBM_File/ODBM_File.xs
+          ! ext/POSIX/POSIX.xs lib/ExtUtils/typemap malloc.c perl.h pp.c
+          ! pp_ctl.c pp_hot.c pp_sys.c sv.c
+____________________________________________________________________________
+[  4135] By: jhi                                   on 1999/09/13  10:22:31
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: perl5-porters@perl.org (Mailing list Perl5)
+             Subject: [PATCH 5.005_61] MakeMaker supports uninstalled Perls
+             Date: Sat, 11 Sep 1999 05:31:03 -0400 (EDT)
+             Message-Id: <199909110931.FAA11036@monk.mps.ohio-state.edu>
+             
+             From: andreas.koenig@anima.de (Andreas J. Koenig)
+             To: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Cc: perl5-porters@perl.org (Mailing list Perl5)
+             Subject: Re: [PATCH 5.005_61] MakeMaker supports uninstalled Perls
+             Date: 11 Sep 1999 15:36:26 +0200
+             Message-ID: <sfc906dr2n9.fsf@hohenstaufen.in-berlin.de>
+     Branch: cfgperl
+          ! lib/ExtUtils/MM_Unix.pm lib/ExtUtils/MakeMaker.pm
+____________________________________________________________________________
+[  4134] By: jhi                                   on 1999/09/13  10:20:14
+        Log: From: Tom Phoenix <rootbeer@redcat.com>
+             To: Perl Porters Mailing List <perl5-porters@perl.org>
+             Subject: [DOCPATCH] Server errors and perldiag
+             Date: Fri, 10 Sep 1999 16:45:02 -0700 (PDT)
+             Message-ID: <Pine.GSO.4.10.9909101639490.16999-100000@user2.teleport.com>
+     Branch: cfgperl
+          ! pod/perldiag.pod
+____________________________________________________________________________
+[  4133] By: gsar                                  on 1999/09/13  03:25:43
+        Log: avoid assertion failure on C<@a'>
+     Branch: perl
+          ! toke.c
+____________________________________________________________________________
+[  4132] By: gsar                                  on 1999/09/13  03:03:57
+        Log: add -DPERL_Y2KWARN build option that will generate additional
+             warnings on "19$yy" etc (reworked a patch suggested by
+             Ulrich Pfeifer <upf@de.uu.net>)
+     Branch: perl
+          ! pod/perldelta.pod pod/perldiag.pod pod/perllexwarn.pod
+          ! pp_hot.c sv.c t/pragma/warn/pp_hot t/pragma/warn/sv
+____________________________________________________________________________
+[  4131] By: gsar                                  on 1999/09/12  22:06:25
+        Log: fix DATA leaks; reword documentation about the DATA filehandle
+     Branch: perl
+          ! ext/Opcode/Safe.pm lib/Pod/Functions.pm pod/perldata.pod
+____________________________________________________________________________
+[  4130] By: gsar                                  on 1999/09/12  20:08:56
+        Log: make sprintf("%g",...) threadsafe; only taint its result iff the
+             formatted result looks nonstandard
+     Branch: perl
+          ! embed.pl embedvar.h intrpvar.h objXSUB.h perl.c perlapi.c
+          ! pod/perlfunc.pod pod/perlguts.pod proto.h sv.c
+          ! t/pragma/locale.t thrdvar.h
+____________________________________________________________________________
+[  4129] By: gsar                                  on 1999/09/12  17:04:11
+        Log: From: Doug MacEachern <dougm@cp.net>
+             Date: Sun, 25 Jul 1999 15:49:00 -0700 (PDT)
+             Message-ID: <Pine.LNX.4.10.9907251538380.373-100000@mojo.eng.cp.net>
+             Subject: [PATCH 5.005_57] B::clearsym
+     Branch: perl
+          ! ext/B/B.pm ext/B/B/Bblock.pm ext/B/B/Debug.pm ext/B/B/Terse.pm
+____________________________________________________________________________
+[  4128] By: gsar                                  on 1999/09/12  16:59:12
+        Log: better debugger help output (from Ilya Zakharevich)
+     Branch: perl
+          ! lib/perl5db.pl
+____________________________________________________________________________
+[  4127] By: jhi                                   on 1999/09/11  20:50:37
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> pod/perlcompile.pod t/lib/gol-basic.t t/lib/gol-compat.t
+         +> t/lib/gol-linkage.t
+         !> (integrate 43 files)
+____________________________________________________________________________
+[  4126] By: nick                                  on 1999/09/10  20:44:22
+        Log: Get resolve -at mainline
+     Branch: utfperl
+         +> (branch 297 files)
+          - README.cygwin32 XSlock.h bytecode.h byterun.c byterun.h
+          - cygwin32/cw32imp.h cygwin32/gcc2 cygwin32/ld2 cygwin32/perlgcc
+          - cygwin32/perlld ext/B/byteperl.c ext/DynaLoader/dl_cygwin32.xs
+          - hints/cygwin32.sh interp.sym myconfig objpp.h perl_exp.SH
+          - t/pragma/warn-1global t/pragma/warning.t thread.sym
+          - win32/GenCAPI.pl win32/TEST win32/autosplit.pl
+          - win32/bin/network.pl win32/bin/webget.pl win32/bin/www.pl
+          - win32/genxsdef.pl win32/makedef.pl win32/makemain.pl
+          - win32/makeperldef.pl win32/perlhost.h
+         !> (integrate 847 files)
+____________________________________________________________________________
+[  4125] By: gsar                                  on 1999/09/10  19:22:14
+        Log: s/dXS_TARGET/dXSTARG/ in change#4044 (to match dARGS vs dXSARGS
+             etc.)
+     Branch: perl
+          ! XSUB.h pp.h
+____________________________________________________________________________
+[  4124] By: gsar                                  on 1999/09/10  19:14:35
+        Log: rewrote substantive parts of patch
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Fri, 27 Aug 1999 19:02:18 -0400
+             Message-ID: <19990827190218.A19561@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.005_58] REx documentation
+     Branch: perl
+          ! pod/perlre.pod
+____________________________________________________________________________
+[  4123] By: gsar                                  on 1999/09/10  18:21:53
+        Log: note about AVf_*
+     Branch: perl
+          ! av.h
+____________________________________________________________________________
+[  4122] By: gsar                                  on 1999/09/10  17:55:42
+        Log: allow 'text' in L<text|A::B/"C"> (from Martin Lichtin
+             <lichtin@bivio.com>)
+     Branch: perl
+          ! lib/Pod/Html.pm
+____________________________________________________________________________
+[  4121] By: gsar                                  on 1999/09/10  17:49:35
+        Log: dos-djgpp update (from Laszlo Molnar <laszlo.molnar@eth.ericsson.se>)
+     Branch: perl
+          ! AUTHORS Changes README.dos djgpp/config.over
+          ! djgpp/configure.bat djgpp/djgpp.c djgpp/djgppsed.sh dosish.h
+          ! lib/ExtUtils/MM_Unix.pm pod/pod2usage.PL pod/podchecker.PL
+          ! pod/podselect.PL sv.h t/io/openpid.t util.c
+____________________________________________________________________________
+[  4120] By: gsar                                  on 1999/09/10  12:25:01
+        Log: add perlcompile.pod (edited content from Nathan Torkington
+             <gnat@frii.com> and others)
+     Branch: perl
+          + pod/perlcompile.pod
+          ! MANIFEST pod/Makefile pod/buildtoc pod/perl.pod pod/roffitall
+____________________________________________________________________________
+[  4119] By: gsar                                  on 1999/09/10  11:05:13
+        Log: avoid leaking static local_patches unless patchlevel.h is
+             explicitly included
+     Branch: perl
+          ! patchlevel.h perl.c
+____________________________________________________________________________
+[  4118] By: gsar                                  on 1999/09/10  10:44:54
+        Log: upgrade to Getopt::Long v2.20 (from Johan Vromans
+             <jvromans@squirrel.nl>)
+     Branch: perl
+          + t/lib/gol-basic.t t/lib/gol-compat.t t/lib/gol-linkage.t
+          ! Changes MANIFEST lib/Getopt/Long.pm
+____________________________________________________________________________
 [  4117] By: jhi                                   on 1999/09/09  18:24:30
         Log: Remove ill-designed %B introduced by change #4111.
      Branch: cfgperl
index 4b55fa6..0d497fd 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -20,7 +20,7 @@
 
 # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
 #
-# Generated on Mon Aug 30 22:33:03 EET DST 1999 [metaconfig 3.0 PL70]
+# Generated on Fri Sep 17 12:06:13 EET DST 1999 [metaconfig 3.0 PL70]
 # (with additional metaconfig patches by perlbug@perl.com)
 
 cat >/tmp/c1$$ <<EOF
@@ -1101,7 +1101,7 @@ done
 : produce awk script to parse command line options
 cat >options.awk <<'EOF'
 BEGIN {
-       optstr = "dD:eEf:hKOrsSU:V";    # getopt-style specification
+       optstr = "A:dD:eEf:hKOrsSU:V";  # getopt-style specification
 
        len = length(optstr);
        for (i = 1; i <= len; i++) {
@@ -1161,7 +1161,7 @@ silent=''
 extractsh=''
 override=''
 knowitall=''
-rm -f optdef.sh
+rm -f optdef.sh posthint.sh
 cat >optdef.sh <<EOS
 $startsh
 EOS
@@ -1215,6 +1215,57 @@ while test $# -gt 0; do
                esac
                shift
                ;;
+       -A)
+           shift
+           xxx=''
+           yyy="$1"
+           case "$yyy" in
+           *:*) xxx=`echo $yyy|sed 's!:.*!!'`
+                yyy=`echo $yyy|sed 's!^[^:]*:!!'`
+                ;;
+           esac
+           case "$xxx" in
+           '') xxx=define ;;
+           esac
+           zzz=''
+           uuu='undef'
+           case "$yyy" in
+           *=*) zzz=`echo $yyy|sed 's!^[^=]*=!!'`
+                yyy=`echo $yyy|sed 's!=.*!!'`
+                case "$yyy:$zzz" in
+                undef:) uuu='' ;;
+                esac
+                ;;
+           esac
+           case "$xxx" in
+           append)
+               echo "$yyy=\"\${$yyy}$zzz\""    >> posthint.sh
+               ;;
+           clear)
+               echo "$yyy=''"                  >> posthint.sh
+               ;;
+           define)
+               case "$zzz" in
+               '') zzz=define ;;
+               esac
+               echo "$yyy='$zzz'"              >> posthint.sh
+               ;; 
+           eval)
+               echo "eval \"$yyy=$zzz\""       >> posthint.sh
+               ;; 
+           prepend)
+               echo "$yyy=\"$zzz\${$yyy}\""    >> posthint.sh
+               ;; 
+           undef)
+               case "$zzz" in
+               '') zzz="$uuu" ;;
+               esac
+               echo "$yyy=$zzz"                >> posthint.sh
+               ;; 
+            *)  echo "$me: unknown -A command '$xxx', ignoring -A $1" >&2
+               ;;
+           esac
+           ;;
        -V) echo "$me generated by metaconfig 3.0 PL70." >&2
                exit 0;;
        --) break;;
@@ -1227,7 +1278,7 @@ case "$error" in
 true)
        cat >&2 <<EOM
 Usage: $me [-dehrsEKOSV] [-f config.sh] [-D symbol] [-D symbol=value]
-                 [-U symbol] [-U symbol=]
+                 [-U symbol] [-U symbol=] [-A command:symbol...]
   -d : use defaults for all answers.
   -e : go on without questioning past the production of config.sh.
   -f : specify an alternate default configuration file.
@@ -1244,6 +1295,16 @@ Usage: $me [-dehrsEKOSV] [-f config.sh] [-D symbol] [-D symbol=value]
   -U : undefine symbol:
          -U symbol    symbol gets the value 'undef'
          -U symbol=   symbol gets completely empty
+  -A : manipulate symbol after the platform specific hints have been applied:
+        -A append:symbol=value         append value to symbol
+        -A define:symbol=value         define symbol to have value
+        -A symbol=value                define symbol to have value
+         -A clear:symbol               define symbol to be ''
+        -A define:symbol               define symbol to be 'define'
+        -A eval:symbol=value           define symbol to be eval of value
+        -A prepend:symbol=value        prepend value to symbol
+        -A undef:symbol                define symbol to be 'undef'
+        -A undef:symbol=               define symbol to be ''
   -V : print version number and exit (with a zero status).
 EOM
        exit 1
@@ -1269,6 +1330,9 @@ esac
 : run the defines and the undefines, if any, but leave the file out there...
 touch optdef.sh
 . ./optdef.sh
+: create the posthint manipulation script and leave the file out there...
+touch posthint.sh
+. ./posthint.sh
 
 : set package name
 package=perl5
@@ -2496,6 +2560,9 @@ none)  osvers='' ;;
 *) osvers="$ans" ;;
 esac
 
+
+. ./posthint.sh
+
 : who configured the system
 cf_time=`LC_ALL=C; LANGUAGE=C; export LC_ALL; export LANGUAGE; $date 2>&1`
 cf_by=`(logname) 2>/dev/null`
@@ -9160,12 +9227,9 @@ set nice d_nice
 eval $inlibc
 
 : see if POSIX threads are available
-if test "X$usethreads" = "X$define"; then
-       set pthread.h i_pthread
-       eval $inhdr
-else
-       i_pthread="$undef"
-fi
+set pthread.h i_pthread
+eval $inhdr
+
 
 
 
@@ -10121,6 +10185,8 @@ if set sigaction val -f d_sigaction; eval $csym; $val; then
 int main()
 {
     struct sigaction act, oact;
+    act.sa_flags = 0;
+    oact.sa_handler = 0;
 }
 EOP
        set try
diff --git a/INSTALL b/INSTALL
index 4647002..c90f6b3 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -766,12 +766,22 @@ or you can answer 'n' at the appropriate interactive Configure prompt.
 
 =item -DPERL_POLLUTE_MALLOC
 
+NOTE: This flag is enabled automatically on some platforms if you
+asked for binary compatibility with version 5.005, or if you just
+run Configure to accept all the defaults on those platforms.  You
+can refuse the automatic binary compatibility flags wholesale by
+running:
+
+       sh Configure -Ubincompat5005
+
+or by answering 'n' at the appropriate prompt.
+
 Perl's malloc family of functions are called Perl_malloc(),
-Perl_realloc(), Perl_calloc() and Perl_mfree().  The names do not clash
-with the system versions of these functions.
+Perl_realloc(), Perl_calloc() and Perl_mfree().  When this flag is
+not enabled, the names do not clash with the system versions of
+these functions.
 
-If you add -DPERL_POLLUTE_MALLOC to your ccflags variable in
-config.sh, then Perl's malloc family of functions will have the same
+If enabled, Perl's malloc family of functions will have the same
 names as the system versions.  This may be sometimes required when you
 have libraries that like to free() data that may have been allocated
 by Perl_malloc() and vice versa.
index 53eebab..06135b8 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -184,7 +184,7 @@ ext/B/O.pm          Compiler front-end module (-MO=...)
 ext/B/README           Compiler backend README
 ext/B/TESTS            Compiler backend test data
 ext/B/Todo             Compiler backend Todo list
-ext/B/defsubs.h.PL     Generator for constant subroutines
+ext/B/defsubs_h.PL     Generator for constant subroutines
 ext/B/ramblings/cc.notes       Compiler ramblings: notes on CC backend
 ext/B/ramblings/curcop.runtime Compiler ramblings: notes on curcop use
 ext/B/ramblings/flip-flop      Compiler ramblings: notes on flip-flop
@@ -207,6 +207,7 @@ ext/DB_File/Makefile.PL             Berkeley DB extension makefile writer
 ext/DB_File/dbinfo             Berkeley DB database version checker
 ext/DB_File/hints/dynixptx.pl  Hint for DB_File for named architecture
 ext/DB_File/typemap            Berkeley DB extension interface types
+ext/DB_File/version.c          Berkeley DB extension interface version check
 ext/Data/Dumper/Changes                Data pretty printer, changelog
 ext/Data/Dumper/Dumper.pm      Data pretty printer, module
 ext/Data/Dumper/Dumper.xs      Data pretty printer, externals
@@ -489,11 +490,19 @@ installperl               Perl script to do "make install" dirty work
 intrpvar.h             Variables held in each interpreter instance
 iperlsys.h             Perl's interface to the system
 jpl/JNI/Changes                Java Native Interface changes
+jpl/JNI/Closer.java    Java Native Interface example
 jpl/JNI/JNI.pm         Java Native Interface module
-jpl/JNI/JNI.xs         Java Native Interface external subroutines
+jpl/JNI/JNI.pm         Java Native Interface module
+jpl/JNI/JNIConfig      Java Native Interface config
+jpl/JNI/JNIConfig.Win32        Java Native Interface config
+jpl/JNI/JNIConfig.kaffe        Java Native Interface config
+jpl/JNI/JNIConfig.noembed      Java Native Interface config
+jpl/JNI/JNIConfig.standard     Java Native Interface config
 jpl/JNI/Makefile.PL    Java Native Interface makefile generator
 jpl/JNI/test.pl                Java Native Interface tests
 jpl/JNI/typemap                Java/Perl interface typemap
+jpl/JNI/typemap.gcc    Java/Perl interface typemap
+jpl/JNI/typemap.win32  Java/Perl interface typemap
 jpl/JPL/AutoLoader.pm  Java/Perl compiler module
 jpl/JPL/Class.pm       Java/Perl compiler module
 jpl/JPL/Compile.pm     Java/Perl compiler module
@@ -507,6 +516,7 @@ jpl/PerlInterpreter/PerlInterpreter.c               Perl interpreter abstraction
 jpl/PerlInterpreter/PerlInterpreter.h          Perl interpreter abstraction
 jpl/PerlInterpreter/PerlInterpreter.java       Perl interpreter abstraction
 jpl/README                                     JPL instructions
+jpl/SETVARS.PL                                 JPL setup
 jpl/Sample/Makefile.PL                         JPL sample makefile generator
 jpl/Sample/Sample.jpl                          JPL sample
 jpl/Test/Makefile.PL                           JPL tests makefile generator
@@ -862,15 +872,20 @@ lib/unicode/To/Lower.pl                           Unicode character database
 lib/unicode/To/Title.pl                                Unicode character database
 lib/unicode/To/Upper.pl                                Unicode character database
 lib/unicode/UnicodeData-Latest.txt             Unicode character database
-lib/unicode/arabshp.txt                                Unicode character database
-lib/unicode/blocks.txt                         Unicode character database
-lib/unicode/index2.txt                         Unicode character database
-lib/unicode/jamo2.txt                          Unicode character database
+lib/unicode/ArabShap.txt                       Unicode character database
+lib/unicode/Blocks.txt                         Unicode character database
+lib/unicode/CompExcl.txt                       Unicode character database
+lib/unicode/EAWidth.txt                                Unicode character database
+lib/unicode/Index.txt                          Unicode character database
+lib/unicode/Jamo-2.txt                         Unicode character database
+lib/unicode/LineBrk.txt                                Unicode character database
 lib/unicode/mktables.PL                                Unicode character database generator
-lib/unicode/names2.txt                         Unicode character database
-lib/unicode/props2.txt                         Unicode character database
-lib/unicode/readme.txt                         Unicode character database info
+lib/unicode/Names.txt                          Unicode character database
+lib/unicode/Props.txt                          Unicode character database
+lib/unicode/ReadMe.txt                         Unicode character database info
+lib/unicode/SpecCase.txt                       Unicode character database
 lib/unicode/syllables.txt                      Unicode character database
+lib/unicode/Unicode.html                       Unicode character database
 lib/utf8.pm                                    Pragma to control Unicode support
 lib/utf8_heavy.pl                              Support routines for utf8 pragma
 lib/validate.pl                Perl library supporting wholesale file mode validation
@@ -1123,7 +1138,7 @@ t/lib/attrs.t             See if attrs works with C<sub : attrs>
 t/lib/autoloader.t     See if AutoLoader works
 t/lib/basename.t       See if File::Basename works
 t/lib/bigfloat.t       See if bigfloat.pl works
-t/lib/bigfloatpm.t     See if BigFloat.pm works
+t/lib/bigfltpm.t       See if BigFloat.pm works
 t/lib/bigint.t         See if bigint.pl works
 t/lib/bigintpm.t       See if BigInt.pm works
 t/lib/cgi-form.t       See if CGI.pm works
index 2f4f23d..30c75b6 100644 (file)
@@ -1851,7 +1851,7 @@ i_poll (i_poll.U):
        whether a C program should include <poll.h>.
 
 i_pthread (i_pthread.U):
-       This variable conditionally defines the I_PTHREADEAD symbol,
+       This variable conditionally defines the I_PTHREAD symbol,
        and indicates whether a C program should include <pthread.h>.
 
 i_pwd (i_pwd.U):
index b0ab9f2..d0d5b2a 100644 (file)
@@ -8,7 +8,7 @@
 
 # Package name      : perl5
 # Source directory  : .
-# Configuration time: Mon Aug 16 22:37:31 EET DST 1999
+# Configuration time: Fri Sep 17 12:08:19 EET DST 1999
 # Configured by     : jhi
 # Target system     : osf1 alpha.hut.fi v4.0 878 alpha 
 
@@ -30,10 +30,10 @@ afs='false'
 alignbytes='8'
 ansi2knr=''
 aphostname=''
-apiversion='5.00560'
+apiversion='5.00561'
 ar='ar'
-archlib='/opt/perl/lib/5.00560/alpha-dec_osf-thread'
-archlibexp='/opt/perl/lib/5.00560/alpha-dec_osf-thread'
+archlib='/opt/perl/lib/5.00561/alpha-dec_osf-thread'
+archlibexp='/opt/perl/lib/5.00561/alpha-dec_osf-thread'
 archname64=''
 archname='alpha-dec_osf-thread'
 archobjs=''
@@ -51,12 +51,12 @@ castflags='0'
 cat='cat'
 cc='cc'
 cccdlflags=' '
-ccdlflags='  -Wl,-rpath,/opt/perl/lib/5.00560/alpha-dec_osf-thread/CORE'
+ccdlflags='  -Wl,-rpath,/opt/perl/lib/5.00561/alpha-dec_osf-thread/CORE'
 ccflags='-pthread -std -DLANGUAGE_C'
 ccsymbols='__LANGUAGE_C__=1 _LONGLONG=1 LANGUAGE_C=1 SYSTYPE_BSD=1'
 cf_by='jhi'
 cf_email='yourname@yourhost.yourplace.com'
-cf_time='Mon Aug 16 22:37:31 EET DST 1999'
+cf_time='Fri Sep 17 12:08:19 EET DST 1999'
 chgrp=''
 chmod=''
 chown=''
@@ -470,15 +470,15 @@ i_vfork='undef'
 ignore_versioned_solibs=''
 incpath=''
 inews=''
-installarchlib='/opt/perl/lib/5.00560/alpha-dec_osf-thread'
+installarchlib='/opt/perl/lib/5.00561/alpha-dec_osf-thread'
 installbin='/opt/perl/bin'
 installman1dir='/opt/perl/man/man1'
 installman3dir='/opt/perl/man/man3'
 installprefix='/opt/perl'
 installprefixexp='/opt/perl'
-installprivlib='/opt/perl/lib/5.00560'
+installprivlib='/opt/perl/lib/5.00561'
 installscript='/opt/perl/bin'
-installsitearch='/opt/perl/lib/site_perl/5.00560/alpha-dec_osf-thread'
+installsitearch='/opt/perl/lib/site_perl/5.00561/alpha-dec_osf-thread'
 installsitelib='/opt/perl/lib/site_perl'
 installstyle='lib'
 installusrbinperl='define'
@@ -573,8 +573,8 @@ pmake=''
 pr=''
 prefix='/opt/perl'
 prefixexp='/opt/perl'
-privlib='/opt/perl/lib/5.00560'
-privlibexp='/opt/perl/lib/5.00560'
+privlib='/opt/perl/lib/5.00561'
+privlibexp='/opt/perl/lib/5.00561'
 prototype='define'
 ptrsize='8'
 randbits='48'
@@ -618,8 +618,8 @@ sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "EMT", "FPE"
 sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 6 6 16 20 23 23 23 29 48 '
 sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 6, 6, 16, 20, 23, 23, 23, 29, 48, 0'
 signal_t='void'
-sitearch='/opt/perl/lib/site_perl/5.00560/alpha-dec_osf-thread'
-sitearchexp='/opt/perl/lib/site_perl/5.00560/alpha-dec_osf-thread'
+sitearch='/opt/perl/lib/site_perl/5.00561/alpha-dec_osf-thread'
+sitearchexp='/opt/perl/lib/site_perl/5.00561/alpha-dec_osf-thread'
 sitelib='/opt/perl/lib/site_perl'
 sitelibexp='/opt/perl/lib/site_perl'
 siteprefix='/opt/perl'
@@ -649,7 +649,7 @@ stdio_ptr='((fp)->_ptr)'
 stdio_stream_array='_iob'
 strings='/usr/include/string.h'
 submit=''
-subversion='60'
+subversion='61'
 sysman='/usr/man/man1'
 tail=''
 tar=''
@@ -686,7 +686,7 @@ vendorlib=''
 vendorlibexp=''
 vendorprefix=''
 vendorprefixexp=''
-version='5.00560'
+version='5.00561'
 vi=''
 voidflags='15'
 xlibpth='/usr/lib/386 /lib/386'
@@ -708,7 +708,7 @@ config_arg9='-Dmyhostname=yourhost'
 config_arg10='-dE'
 PERL_REVISION=5
 PERL_VERSION=5
-PERL_SUBVERSION=60
+PERL_SUBVERSION=61
 CONFIGDOTSH=true
 # Variables propagated from previous config.sh file.
 pp_sys_cflags='ccflags="$ccflags -DNO_EFF_ONLY_OK"'
index 4aca318..bdf4aee 100644 (file)
@@ -17,7 +17,7 @@
 /*
  * Package name      : perl5
  * Source directory  : .
- * Configuration time: Mon Aug 16 22:37:31 EET DST 1999
+ * Configuration time: Fri Sep 17 12:08:19 EET DST 1999
  * Configured by     : jhi
  * Target system     : osf1 alpha.hut.fi v4.0 878 alpha 
  */
  *     This symbol contains the ~name expanded version of ARCHLIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define ARCHLIB "/opt/perl/lib/5.00560/alpha-dec_osf-thread"           /**/
-#define ARCHLIB_EXP "/opt/perl/lib/5.00560/alpha-dec_osf-thread"               /**/
+#define ARCHLIB "/opt/perl/lib/5.00561/alpha-dec_osf-thread"           /**/
+#define ARCHLIB_EXP "/opt/perl/lib/5.00561/alpha-dec_osf-thread"               /**/
 
 /* BIN:
  *     This symbol holds the path of the bin directory where the package will
  *     This symbol contains the ~name expanded version of PRIVLIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define PRIVLIB "/opt/perl/lib/5.00560"                /**/
-#define PRIVLIB_EXP "/opt/perl/lib/5.00560"            /**/
+#define PRIVLIB "/opt/perl/lib/5.00561"                /**/
+#define PRIVLIB_EXP "/opt/perl/lib/5.00561"            /**/
 
 /* SITEARCH:
  *     This symbol contains the name of the private library for this package.
  *     This symbol contains the ~name expanded version of SITEARCH, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define SITEARCH "/opt/perl/lib/site_perl/5.00560/alpha-dec_osf-thread"                /**/
-#define SITEARCH_EXP "/opt/perl/lib/site_perl/5.00560/alpha-dec_osf-thread"            /**/
+#define SITEARCH "/opt/perl/lib/site_perl/5.00561/alpha-dec_osf-thread"                /**/
+#define SITEARCH_EXP "/opt/perl/lib/site_perl/5.00561/alpha-dec_osf-thread"            /**/
 
 /* SITELIB:
  *     This symbol contains the name of the private library for this package.
  *     available directly to the user. Note that it may well be different from
  *     the preprocessor used to compile the C program.
  */
+/* CPPLAST:
+ *     This symbol is intended to be used along with CPPRUN in the same manner
+ *     symbol CPPMINUS is used with CPPSTDIN. It contains either "-" or "".
+ */
 #define CPPSTDIN "cppstdin"
 #define CPPMINUS ""
 #define CPPRUN "/usr/bin/cpp"
+#define CPPLAST ""
 
 /* HAS_ACCESS:
  *     This manifest constant lets the C program know that the access()
  *     so that it is safe even if used by a process with super-user
  *     privileges.
  */
+/* HAS_PHOSTNAME:
+ *     This symbol, if defined, indicates that the C program may use the
+ *     contents of PHOSTNAME as a command to feed to the popen() routine
+ *     to derive the host name.
+ */
 #define HAS_GETHOSTNAME        /**/
 #define HAS_UNAME              /**/
 #undef HAS_PHOSTNAME
  *     This symbol, if defined, indicates that <sys/uio.h> exists and
  *     should be included.
  */
+/* HAS_STRUCT_IOVEC:
+ *     This symbol, if defined, indicates that the struct iovec
+ *     to do scatter writes/gather reads is supported.
+ */
 #define        I_SYSUIO                /**/
+#define        HAS_STRUCT_IOVEC                /**/
 
 /* Free_t:
  *     This variable contains the return type of free().  It is usually
  */
 /*#define   I_MACH_CTHREADS    / **/
 
+/* I_PTHREAD:
+ *     This symbol, if defined, indicates to the C program that it should
+ *     include <pthread.h>.
+ */
+#define   I_PTHREAD    /**/
+
 /* USE_THREADS:
  *     This symbol, if defined, indicates that Perl should
  *     be built to use threads.
index e38e455..2f8a835 100644 (file)
@@ -1556,9 +1556,14 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  *     available directly to the user. Note that it may well be different from
  *     the preprocessor used to compile the C program.
  */
+/* CPPLAST:
+ *     This symbol is intended to be used along with CPPRUN in the same manner
+ *     symbol CPPMINUS is used with CPPSTDIN. It contains either "-" or "".
+ */
 #define CPPSTDIN "$cppstdin"
 #define CPPMINUS "$cppminus"
 #define CPPRUN "$cpprun"
+#define CPPLAST "$cpplast"
 
 /* HAS_ACCESS:
  *     This manifest constant lets the C program know that the access()
@@ -1655,6 +1660,11 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  *     so that it is safe even if used by a process with super-user
  *     privileges.
  */
+/* HAS_PHOSTNAME:
+ *     This symbol, if defined, indicates that the C program may use the
+ *     contents of PHOSTNAME as a command to feed to the popen() routine
+ *     to derive the host name.
+ */
 #$d_gethname HAS_GETHOSTNAME   /**/
 #$d_uname HAS_UNAME            /**/
 #$d_phostname HAS_PHOSTNAME
@@ -2070,7 +2080,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  *     This symbol, if defined, indicates that <sys/uio.h> exists and
  *     should be included.
  */
+/* HAS_STRUCT_IOVEC:
+ *     This symbol, if defined, indicates that the struct iovec
+ *     to do scatter writes/gather reads is supported.
+ */
 #$i_sysuio     I_SYSUIO                /**/
+#$d_iovec_s    HAS_STRUCT_IOVEC                /**/
 
 /* Free_t:
  *     This variable contains the return type of free().  It is usually
@@ -2597,6 +2612,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$i_machcthr   I_MACH_CTHREADS /**/
 
+/* I_PTHREAD:
+ *     This symbol, if defined, indicates to the C program that it should
+ *     include <pthread.h>.
+ */
+#$i_pthread   I_PTHREAD        /**/
+
 /* USE_THREADS:
  *     This symbol, if defined, indicates that Perl should
  *     be built to use threads.
index 0f86983..96e8633 100644 (file)
@@ -113,6 +113,7 @@ $!
 $!: set up default values
 $ fastread=""
 $ reuseval="false"
+$ maniskip = "false"
 $ config_sh=""
 $ alldone=""
 $ error=""
@@ -187,6 +188,13 @@ $     gotopt = "t"
 $     P'i' = P'i' - "h"
 $     gotshortopt = "t"
 $   ENDIF
+$   IF (F$EXTRACT(0,1,P'i') .EQS. "m")
+$   THEN
+$     maniskip = "true"
+$     gotopt = "t"
+$     P'i' = P'i' - "m"
+$     gotshortopt = "t"
+$   ENDIF
 $   IF (F$EXTRACT(0,1,P'i') .EQS. "r")
 $   THEN
 $     reuseval = "true"
@@ -290,13 +298,14 @@ $!
 $ IF (error)
 $ THEN
 $   me = F$PARSE(me,,,"DIRECTORY")+ F$PARSE(me,,,"NAME")
-$   echo "Usage: @''me' [-dehrEKOSV] [-fconfig.sh] [-Dsymbol] [-Dsymbol=value]"
-$   echo "                [-Usymbol] [-Usymbol=]"
+$   echo "Usage: @''me' [-dehmrEKOSV] [-fconfig.sh] [-Dsymbol] [-Dsymbol=value]"
+$   echo "                [-Usymbol]  [-Usymbol=]"
 $   TYPE SYS$INPUT
  "-d" : use defaults for all answers.
  "-e" : go on without questioning past the production of config.sh.    *
  "-f" : specify an alternate default configuration file.
  "-h" : print this help message and exit (with an error status).
+ "-m" : skip the MANIFEST check to see that all files are present
  "-r" : reuse C symbols value if possible (skips costly nm extraction).*
  "-s" : silent mode, only echoes questions and essential information.
  -"D" : define symbol to have some value:                              *
@@ -420,8 +429,11 @@ $!
 $     OPEN/WRITE MISSING MISSING.
 $!change to "FALSE" if you wish to skip the manifest search 
 $!(which after all is rather slow in DCL :-)
-$     IF ("TRUE")      
+$     IF (maniskip)
 $     THEN
+$       echo "Skipping MANIFEST check as requested"
+$     ELSE
+$!
 $       OPEN/READ CONFIG 'manifestfound'
 $Read_loop_manifest:
 $       READ/END_OF_FILE = Done_manifest CONFIG line
@@ -1729,6 +1741,48 @@ $   ELSE
 $     use_64bit="N"
 $   ENDIF
 $ ENDIF
+$!
+$! Ask if they want to build with 64-bit support
+$ if (Archname.eqs."VMS_AXP").and.("''f$extract(1,3, f$getsyi(""version""))'".ges."7.1")
+$ THEN
+$   echo "This version of perl has experimental support for building wtih
+$   echo "64 bit integers and 128 bit floating point variables. This gives
+$   echo "a much larger range for perl's mathematical operations. (Note that
+$   echo "does *not* enable 64-bit fileops at the moment, as Dec C doesn't
+$   echo "do that yet)"
+$   echo ""
+$   dflt = use_64bit
+$   rp = "Build with 64 bits? [''dflt'] "
+$   GOSUB myread
+$     if ans.eqs."" then ans = dflt
+$   if (f$extract(0, 1, "''ans'").eqs."Y").or.(f$extract(0, 1, "''ans'").eqs."y")
+$   THEN
+$     use_64bit="Y"
+$   ELSE
+$     use_64bit="N"
+$   ENDIF
+$ ENDIF
+$!
+$! Ask if they want to build with 64-bit support
+$ if (Archname.eqs."VMS_AXP").and.("''f$extract(1,3, f$getsyi(""version""))'".ges."7.1")
+$ THEN
+$   echo "This version of perl has experimental support for building wtih
+$   echo "64 bit integers and 128 bit floating point variables. This gives
+$   echo "a much larger range for perl's mathematical operations. (Note that
+$   echo "does *not* enable 64-bit fileops at the moment, as Dec C doesn't
+$   echo "do that yet)"
+$   echo ""
+$   dflt = use_64bit
+$   rp = "Build with 64 bits? [''dflt'] "
+$   GOSUB myread
+$     if ans.eqs."" then ans = dflt
+$   if (f$extract(0, 1, "''ans'").eqs."Y").or.(f$extract(0, 1, "''ans'").eqs."y")
+$   THEN
+$     use_64bit="Y"
+$   ELSE
+$     use_64bit="N"
+$   ENDIF
+$ ENDIF
 $! Ask about threads, if appropriate
 $ if (Using_Dec_C.eqs."Yes")
 $ THEN
diff --git a/doio.c b/doio.c
index 50870b2..0b1cdd1 100644 (file)
--- a/doio.c
+++ b/doio.c
@@ -1696,7 +1696,7 @@ Perl_do_ipcctl(pTHX_ I32 optype, SV **mark, SV **sp)
     else
     {
        IV i = SvIV(astr);
-       a = (char *)PTR_CAST i;         /* ouch */
+       a = INT2PTR(char *,i);          /* ouch */
     }
     SETERRNO(0,0);
     switch (optype)
diff --git a/dump.c b/dump.c
index 182834e..7f1dba4 100644 (file)
--- a/dump.c
+++ b/dump.c
@@ -768,7 +768,7 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
 #ifdef IV_IS_QUAD
     Perl_sv_setpvf(aTHX_ d,
                   "(0x%" PERL_PRIx64") at 0x%" PERL_PRIx64 "\n%*s  REFCNT = %" PERL_PRId64 "\n%*s  FLAGS = (",
-                  (UV)PTR_CAST SvANY(sv), (UV)PTR_CAST sv,
+                  PTR2UV(SvANY(sv)), PTR2UV(sv),
                   PL_dumpindent*level, "", (IV)SvREFCNT(sv),
                   PL_dumpindent*level, "");
 #else
@@ -933,7 +933,7 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
     }
     if (SvROK(sv)) {
 #ifdef IV_IS_QUAD
-       Perl_dump_indent(aTHX_ level, file, "  RV = 0x%" PERL_PRIx64 "\n", (IV)PTR_CAST SvRV(sv));
+       Perl_dump_indent(aTHX_ level, file, "  RV = 0x%" PERL_PRIx64 "\n", PTR2IV(SvRV(sv)));
 #else
        Perl_dump_indent(aTHX_ level, file, "  RV = 0x%lx\n", (long)SvRV(sv));
 #endif
@@ -946,7 +946,7 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
     if (type <= SVt_PVLV) {
        if (SvPVX(sv)) {
 #ifdef IV_IS_QUAD
-           Perl_dump_indent(aTHX_ level, file,"  PV = 0x%" PERL_PRIx64 " ", (IV)PTR_CAST SvPVX(sv));
+           Perl_dump_indent(aTHX_ level, file,"  PV = 0x%" PERL_PRIx64 " ", PTR2IV(SvPVX(sv)));
 #else
            Perl_dump_indent(aTHX_ level, file,"  PV = 0x%lx ", (long)SvPVX(sv));
 #endif
@@ -976,7 +976,7 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
 #ifdef IV_IS_QUAD
        Perl_dump_indent(aTHX_ level, file, "  TARGOFF = %" PERL_PRId64 "\n", (IV)LvTARGOFF(sv));
        Perl_dump_indent(aTHX_ level, file, "  TARGLEN = %" PERL_PRId64 "\n", (IV)LvTARGLEN(sv));
-       Perl_dump_indent(aTHX_ level, file, "  TARG = 0x%" PERL_PRIx64 "\n", (IV)PTR_CAST LvTARG(sv));
+       Perl_dump_indent(aTHX_ level, file, "  TARG = 0x%" PERL_PRIx64 "\n", PTR2IV(LvTARG(sv)));
 #else
        Perl_dump_indent(aTHX_ level, file, "  TARGOFF = %ld\n", (long)LvTARGOFF(sv));
        Perl_dump_indent(aTHX_ level, file, "  TARGLEN = %ld\n", (long)LvTARGLEN(sv));
@@ -987,14 +987,14 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
        break;
     case SVt_PVAV:
 #ifdef IV_IS_QUAD
-       Perl_dump_indent(aTHX_ level, file, "  ARRAY = 0x%" PERL_PRIx64 , (IV)PTR_CAST AvARRAY(sv));
+       Perl_dump_indent(aTHX_ level, file, "  ARRAY = 0x%" PERL_PRIx64 , PTR2IV(AvARRAY(sv)));
 #else
        Perl_dump_indent(aTHX_ level, file, "  ARRAY = 0x%lx", (long)AvARRAY(sv));
 #endif
        if (AvARRAY(sv) != AvALLOC(sv)) {
            PerlIO_printf(file, " (offset=%d)\n", (AvARRAY(sv) - AvALLOC(sv)));
 #ifdef IV_IS_QUAD
-           Perl_dump_indent(aTHX_ level, file, "  ALLOC = 0x%" PERL_PRIx64 "\n", (IV)PTR_CAST AvALLOC(sv));
+           Perl_dump_indent(aTHX_ level, file, "  ALLOC = 0x%" PERL_PRIx64 "\n", PTR2IV(AvALLOC(sv)));
 #else
            Perl_dump_indent(aTHX_ level, file, "  ALLOC = 0x%lx\n", (long)AvALLOC(sv));
 #endif
@@ -1004,7 +1004,7 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
 #ifdef IV_IS_QUAD
        Perl_dump_indent(aTHX_ level, file, "  FILL = %" PERL_PRId64 "\n", (IV)AvFILLp(sv));
        Perl_dump_indent(aTHX_ level, file, "  MAX = %" PERL_PRId64 "\n", (IV)AvMAX(sv));
-       Perl_dump_indent(aTHX_ level, file, "  ARYLEN = 0x%" PERL_PRIx64 "\n", (IV)PTR_CAST AvARYLEN(sv));
+       Perl_dump_indent(aTHX_ level, file, "  ARYLEN = 0x%" PERL_PRIx64 "\n", PTR2IV(AvARYLEN(sv)));
 #else
        Perl_dump_indent(aTHX_ level, file, "  FILL = %ld\n", (long)AvFILLp(sv));
        Perl_dump_indent(aTHX_ level, file, "  MAX = %ld\n", (long)AvMAX(sv));
@@ -1033,7 +1033,7 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
        break;
     case SVt_PVHV:
 #ifdef IV_IS_QUAD
-       Perl_dump_indent(aTHX_ level, file, "  ARRAY = 0x%" PERL_PRIx64,(IV)PTR_CAST HvARRAY(sv));
+       Perl_dump_indent(aTHX_ level, file, "  ARRAY = 0x%" PERL_PRIx64,PTR2IV(HvARRAY(sv)));
 #else
        Perl_dump_indent(aTHX_ level, file, "  ARRAY = 0x%lx",(long)HvARRAY(sv));
 #endif
@@ -1086,7 +1086,7 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
        Perl_dump_indent(aTHX_ level, file, "  FILL = %" PERL_PRId64 "\n", (IV)HvFILL(sv));
        Perl_dump_indent(aTHX_ level, file, "  MAX = %" PERL_PRId64 "\n", (IV)HvMAX(sv));
        Perl_dump_indent(aTHX_ level, file, "  RITER = %" PERL_PRId64 "\n", (IV)HvRITER(sv));
-       Perl_dump_indent(aTHX_ level, file, "  EITER = 0x%" PERL_PRIx64 "\n",(IV)PTR_CAST  HvEITER(sv));
+       Perl_dump_indent(aTHX_ level, file, "  EITER = 0x%" PERL_PRIx64 "\n",PTR2IV(HvEITER(sv)));
 #else
        Perl_dump_indent(aTHX_ level, file, "  KEYS = %ld\n", (long)HvKEYS(sv));
        Perl_dump_indent(aTHX_ level, file, "  FILL = %ld\n", (long)HvFILL(sv));
@@ -1096,7 +1096,7 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
 #endif
        if (HvPMROOT(sv))
 #ifdef IV_IS_QUAD
-           Perl_dump_indent(aTHX_ level, file, "  PMROOT = 0x%" PERL_PRIx64 "\n",(IV)PTR_CAST HvPMROOT(sv));
+           Perl_dump_indent(aTHX_ level, file, "  PMROOT = 0x%" PERL_PRIx64 "\n",PTR2IV(HvPMROOT(sv)));
 #else
            Perl_dump_indent(aTHX_ level, file, "  PMROOT = 0x%lx\n",(long)HvPMROOT(sv));
 #endif
@@ -1143,7 +1143,7 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
         if (CvROOT(sv) && dumpops)
            do_op_dump(level+1, file, CvROOT(sv));
 #ifdef IV_IS_QUAD
-       Perl_dump_indent(aTHX_ level, file, "  XSUB = 0x%" PERL_PRIx64 "\n", (IV)PTR_CAST CvXSUB(sv));
+       Perl_dump_indent(aTHX_ level, file, "  XSUB = 0x%" PERL_PRIx64 "\n", PTR2IV(CvXSUB(sv)));
        Perl_dump_indent(aTHX_ level, file, "  XSUBANY = %" PERL_PRId64 "\n", (IV)CvXSUBANY(sv).any_i32);
 #else
        Perl_dump_indent(aTHX_ level, file, "  XSUB = 0x%lx\n", (long)CvXSUB(sv));
@@ -1177,7 +1177,7 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
            Perl_dump_indent(aTHX_ level, file, "  LINES = %ld\n", (long)FmLINES(sv));
 #endif
 #ifdef IV_IS_QUAD
-       Perl_dump_indent(aTHX_ level, file, "  PADLIST = 0x%" PERL_PRIx64 "\n", (IV)PTR_CAST CvPADLIST(sv));
+       Perl_dump_indent(aTHX_ level, file, "  PADLIST = 0x%" PERL_PRIx64 "\n", PTR2IV(CvPADLIST(sv)));
 #else
        Perl_dump_indent(aTHX_ level, file, "  PADLIST = 0x%lx\n", (long)CvPADLIST(sv));
 #endif
@@ -1217,7 +1217,7 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
            CV *outside = CvOUTSIDE(sv);
 #ifdef IV_IS_QUAD
            Perl_dump_indent(aTHX_ level, file, "  OUTSIDE = 0x%" PERL_PRIx64 " (%s)\n", 
-                       (IV)PTR_CAST outside, 
+                       PTR2IV(outside), 
                        (!outside ? "null"
                         : CvANON(outside) ? "ANON"
                         : (outside == PL_main_cv) ? "MAIN"
@@ -1245,14 +1245,14 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
 #endif
        do_hv_dump (level, file, "  GvSTASH", GvSTASH(sv));
 #ifdef IV_IS_QUAD
-       Perl_dump_indent(aTHX_ level, file, "  GP = 0x%" PERL_PRIx64 "\n", (IV)PTR_CAST GvGP(sv));
-       Perl_dump_indent(aTHX_ level, file, "    SV = 0x%" PERL_PRIx64 "\n", (IV)PTR_CAST GvSV(sv));
+       Perl_dump_indent(aTHX_ level, file, "  GP = 0x%" PERL_PRIx64 "\n", PTR2IV(GvGP(sv)));
+       Perl_dump_indent(aTHX_ level, file, "    SV = 0x%" PERL_PRIx64 "\n", PTR2IV(GvSV(sv)));
        Perl_dump_indent(aTHX_ level, file, "    REFCNT = %" PERL_PRId64 "\n", (IV)GvREFCNT(sv));
-       Perl_dump_indent(aTHX_ level, file, "    IO = 0x%" PERL_PRIx64 "\n", (IV)PTR_CAST GvIOp(sv));
-       Perl_dump_indent(aTHX_ level, file, "    FORM = 0x%" PERL_PRIx64 "  \n", (IV)PTR_CAST GvFORM(sv));
-       Perl_dump_indent(aTHX_ level, file, "    AV = 0x%" PERL_PRIx64 "\n", (IV)PTR_CAST GvAV(sv));
-       Perl_dump_indent(aTHX_ level, file, "    HV = 0x%" PERL_PRIx64 "\n", (IV)PTR_CAST GvHV(sv));
-       Perl_dump_indent(aTHX_ level, file, "    CV = 0x%" PERL_PRIx64 "\n", (IV)PTR_CAST GvCV(sv));
+       Perl_dump_indent(aTHX_ level, file, "    IO = 0x%" PERL_PRIx64 "\n", PTR2IV(GvIOp(sv)));
+       Perl_dump_indent(aTHX_ level, file, "    FORM = 0x%" PERL_PRIx64 "  \n", PTR2IV(GvFORM(sv)));
+       Perl_dump_indent(aTHX_ level, file, "    AV = 0x%" PERL_PRIx64 "\n", PTR2IV(GvAV(sv)));
+       Perl_dump_indent(aTHX_ level, file, "    HV = 0x%" PERL_PRIx64 "\n", PTR2IV(GvHV(sv)));
+       Perl_dump_indent(aTHX_ level, file, "    CV = 0x%" PERL_PRIx64 "\n", PTR2IV(GvCV(sv)));
        Perl_dump_indent(aTHX_ level, file, "    CVGEN = 0x%" PERL_PRIx64 "\n", (IV)GvCVGEN(sv));
        Perl_dump_indent(aTHX_ level, file, "    LASTEXPR = %" PERL_PRId64 "\n", (IV)GvLASTEXPR(sv));
        Perl_dump_indent(aTHX_ level, file, "    LINE = %" PERL_PRId64 "\n", (IV)GvLINE(sv));
@@ -1275,9 +1275,9 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
        break;
     case SVt_PVIO:
 #ifdef IV_IS_QUAD
-       Perl_dump_indent(aTHX_ level, file, "  IFP = 0x%" PERL_PRIx64 "\n", (IV)PTR_CAST IoIFP(sv));
-       Perl_dump_indent(aTHX_ level, file, "  OFP = 0x%" PERL_PRIx64 "\n", (IV)PTR_CAST IoOFP(sv));
-       Perl_dump_indent(aTHX_ level, file, "  DIRP = 0x%" PERL_PRIx64 "\n", (IV)PTR_CAST IoDIRP(sv));
+       Perl_dump_indent(aTHX_ level, file, "  IFP = 0x%" PERL_PRIx64 "\n", PTR2IV(IoIFP(sv)));
+       Perl_dump_indent(aTHX_ level, file, "  OFP = 0x%" PERL_PRIx64 "\n", PTR2IV(IoOFP(sv)));
+       Perl_dump_indent(aTHX_ level, file, "  DIRP = 0x%" PERL_PRIx64 "\n", PTR2IV(IoDIRP(sv)));
        Perl_dump_indent(aTHX_ level, file, "  LINES = %" PERL_PRId64 "\n", (IV)IoLINES(sv));
        Perl_dump_indent(aTHX_ level, file, "  PAGE = %" PERL_PRId64 "\n", (IV)IoPAGE(sv));
        Perl_dump_indent(aTHX_ level, file, "  PAGE_LEN = %" PERL_PRId64 "\n", (IV)IoPAGE_LEN(sv));
diff --git a/embed.h b/embed.h
index ab68e0e..393ba3e 100644 (file)
--- a/embed.h
+++ b/embed.h
 #define sv_2mortal             Perl_sv_2mortal
 #define sv_2nv                 Perl_sv_2nv
 #define sv_2pv                 Perl_sv_2pv
+#define sv_2pvutf8             Perl_sv_2pvutf8
+#define sv_2pvbyte             Perl_sv_2pvbyte
 #define sv_2uv                 Perl_sv_2uv
 #define sv_iv                  Perl_sv_iv
 #define sv_uv                  Perl_sv_uv
 #define sv_nv                  Perl_sv_nv
 #define sv_pvn                 Perl_sv_pvn
+#define sv_pvutf8n             Perl_sv_pvutf8n
+#define sv_pvbyten             Perl_sv_pvbyten
 #define sv_true                        Perl_sv_true
 #define sv_add_arena           Perl_sv_add_arena
 #define sv_backoff             Perl_sv_backoff
 #define sv_pos_u2b             Perl_sv_pos_u2b
 #define sv_pos_b2u             Perl_sv_pos_b2u
 #define sv_pvn_force           Perl_sv_pvn_force
+#define sv_pvutf8n_force       Perl_sv_pvutf8n_force
+#define sv_pvbyten_force       Perl_sv_pvbyten_force
 #define sv_reftype             Perl_sv_reftype
 #define sv_replace             Perl_sv_replace
 #define sv_report_used         Perl_sv_report_used
 #define vdefault_protect       Perl_vdefault_protect
 #define reginitcolors          Perl_reginitcolors
 #define sv_2pv_nolen           Perl_sv_2pv_nolen
+#define sv_2pvutf8_nolen       Perl_sv_2pvutf8_nolen
+#define sv_2pvbyte_nolen       Perl_sv_2pvbyte_nolen
 #define sv_pv                  Perl_sv_pv
+#define sv_pvutf8              Perl_sv_pvutf8
+#define sv_pvbyte              Perl_sv_pvbyte
 #define sv_force_normal                Perl_sv_force_normal
 #define tmps_grow              Perl_tmps_grow
 #define sv_rvweaken            Perl_sv_rvweaken
 #define sv_2mortal(a)          Perl_sv_2mortal(aTHX_ a)
 #define sv_2nv(a)              Perl_sv_2nv(aTHX_ a)
 #define sv_2pv(a,b)            Perl_sv_2pv(aTHX_ a,b)
+#define sv_2pvutf8(a,b)                Perl_sv_2pvutf8(aTHX_ a,b)
+#define sv_2pvbyte(a,b)                Perl_sv_2pvbyte(aTHX_ a,b)
 #define sv_2uv(a)              Perl_sv_2uv(aTHX_ a)
 #define sv_iv(a)               Perl_sv_iv(aTHX_ a)
 #define sv_uv(a)               Perl_sv_uv(aTHX_ a)
 #define sv_nv(a)               Perl_sv_nv(aTHX_ a)
 #define sv_pvn(a,b)            Perl_sv_pvn(aTHX_ a,b)
+#define sv_pvutf8n(a,b)                Perl_sv_pvutf8n(aTHX_ a,b)
+#define sv_pvbyten(a,b)                Perl_sv_pvbyten(aTHX_ a,b)
 #define sv_true(a)             Perl_sv_true(aTHX_ a)
 #define sv_add_arena(a,b,c)    Perl_sv_add_arena(aTHX_ a,b,c)
 #define sv_backoff(a)          Perl_sv_backoff(aTHX_ a)
 #define sv_pos_u2b(a,b,c)      Perl_sv_pos_u2b(aTHX_ a,b,c)
 #define sv_pos_b2u(a,b)                Perl_sv_pos_b2u(aTHX_ a,b)
 #define sv_pvn_force(a,b)      Perl_sv_pvn_force(aTHX_ a,b)
+#define sv_pvutf8n_force(a,b)  Perl_sv_pvutf8n_force(aTHX_ a,b)
+#define sv_pvbyten_force(a,b)  Perl_sv_pvbyten_force(aTHX_ a,b)
 #define sv_reftype(a,b)                Perl_sv_reftype(aTHX_ a,b)
 #define sv_replace(a,b)                Perl_sv_replace(aTHX_ a,b)
 #define sv_report_used()       Perl_sv_report_used(aTHX)
 #define vdefault_protect(a,b,c)        Perl_vdefault_protect(aTHX_ a,b,c)
 #define reginitcolors()                Perl_reginitcolors(aTHX)
 #define sv_2pv_nolen(a)                Perl_sv_2pv_nolen(aTHX_ a)
+#define sv_2pvutf8_nolen(a)    Perl_sv_2pvutf8_nolen(aTHX_ a)
+#define sv_2pvbyte_nolen(a)    Perl_sv_2pvbyte_nolen(aTHX_ a)
 #define sv_pv(a)               Perl_sv_pv(aTHX_ a)
+#define sv_pvutf8(a)           Perl_sv_pvutf8(aTHX_ a)
+#define sv_pvbyte(a)           Perl_sv_pvbyte(aTHX_ a)
 #define sv_force_normal(a)     Perl_sv_force_normal(aTHX_ a)
 #define tmps_grow(a)           Perl_tmps_grow(aTHX_ a)
 #define sv_rvweaken(a)         Perl_sv_rvweaken(aTHX_ a)
 #define sv_2nv                 Perl_sv_2nv
 #define Perl_sv_2pv            CPerlObj::Perl_sv_2pv
 #define sv_2pv                 Perl_sv_2pv
+#define Perl_sv_2pvutf8                CPerlObj::Perl_sv_2pvutf8
+#define sv_2pvutf8             Perl_sv_2pvutf8
+#define Perl_sv_2pvbyte                CPerlObj::Perl_sv_2pvbyte
+#define sv_2pvbyte             Perl_sv_2pvbyte
 #define Perl_sv_2uv            CPerlObj::Perl_sv_2uv
 #define sv_2uv                 Perl_sv_2uv
 #define Perl_sv_iv             CPerlObj::Perl_sv_iv
 #define sv_nv                  Perl_sv_nv
 #define Perl_sv_pvn            CPerlObj::Perl_sv_pvn
 #define sv_pvn                 Perl_sv_pvn
+#define Perl_sv_pvutf8n                CPerlObj::Perl_sv_pvutf8n
+#define sv_pvutf8n             Perl_sv_pvutf8n
+#define Perl_sv_pvbyten                CPerlObj::Perl_sv_pvbyten
+#define sv_pvbyten             Perl_sv_pvbyten
 #define Perl_sv_true           CPerlObj::Perl_sv_true
 #define sv_true                        Perl_sv_true
 #define Perl_sv_add_arena      CPerlObj::Perl_sv_add_arena
 #define sv_pos_b2u             Perl_sv_pos_b2u
 #define Perl_sv_pvn_force      CPerlObj::Perl_sv_pvn_force
 #define sv_pvn_force           Perl_sv_pvn_force
+#define Perl_sv_pvutf8n_force  CPerlObj::Perl_sv_pvutf8n_force
+#define sv_pvutf8n_force       Perl_sv_pvutf8n_force
+#define Perl_sv_pvbyten_force  CPerlObj::Perl_sv_pvbyten_force
+#define sv_pvbyten_force       Perl_sv_pvbyten_force
 #define Perl_sv_reftype                CPerlObj::Perl_sv_reftype
 #define sv_reftype             Perl_sv_reftype
 #define Perl_sv_replace                CPerlObj::Perl_sv_replace
 #define reginitcolors          Perl_reginitcolors
 #define Perl_sv_2pv_nolen      CPerlObj::Perl_sv_2pv_nolen
 #define sv_2pv_nolen           Perl_sv_2pv_nolen
+#define Perl_sv_2pvutf8_nolen  CPerlObj::Perl_sv_2pvutf8_nolen
+#define sv_2pvutf8_nolen       Perl_sv_2pvutf8_nolen
+#define Perl_sv_2pvbyte_nolen  CPerlObj::Perl_sv_2pvbyte_nolen
+#define sv_2pvbyte_nolen       Perl_sv_2pvbyte_nolen
 #define Perl_sv_pv             CPerlObj::Perl_sv_pv
 #define sv_pv                  Perl_sv_pv
+#define Perl_sv_pvutf8         CPerlObj::Perl_sv_pvutf8
+#define sv_pvutf8              Perl_sv_pvutf8
+#define Perl_sv_pvbyte         CPerlObj::Perl_sv_pvbyte
+#define sv_pvbyte              Perl_sv_pvbyte
 #define Perl_sv_force_normal   CPerlObj::Perl_sv_force_normal
 #define sv_force_normal                Perl_sv_force_normal
 #define Perl_tmps_grow         CPerlObj::Perl_tmps_grow
  */
 
 #if !defined(PERL_CORE)
-#  define sv_setptrobj(rv,ptr,name)    sv_setref_iv(rv,name,(IV)ptr)
-#  define sv_setptrref(rv,ptr)         sv_setref_iv(rv,Nullch,(IV)ptr)
+#  define sv_setptrobj(rv,ptr,name)    sv_setref_iv(rv,name,PTR2IV(ptr))
+#  define sv_setptrref(rv,ptr)         sv_setref_iv(rv,Nullch,PTR2IV(ptr))
 #endif
 
 #if !defined(PERL_CORE) && !defined(PERL_NOCOMPAT) && !defined(PERL_BINCOMPAT_5005)
index 5f0711f..21042c1 100755 (executable)
--- a/embed.pl
+++ b/embed.pl
@@ -452,8 +452,8 @@ print EM <<'END';
  */
 
 #if !defined(PERL_CORE)
-#  define sv_setptrobj(rv,ptr,name)    sv_setref_iv(rv,name,(IV)ptr)
-#  define sv_setptrref(rv,ptr)         sv_setref_iv(rv,Nullch,(IV)ptr)
+#  define sv_setptrobj(rv,ptr,name)    sv_setref_iv(rv,name,PTR2IV(ptr))
+#  define sv_setptrref(rv,ptr)         sv_setref_iv(rv,Nullch,PTR2IV(ptr))
 #endif
 
 #if !defined(PERL_CORE) && !defined(PERL_NOCOMPAT) && !defined(PERL_BINCOMPAT_5005)
@@ -1578,11 +1578,15 @@ p       |IV     |sv_2iv         |SV* sv
 p      |SV*    |sv_2mortal     |SV* sv
 p      |NV     |sv_2nv         |SV* sv
 p      |char*  |sv_2pv         |SV* sv|STRLEN* lp
+p      |char*  |sv_2pvutf8     |SV* sv|STRLEN* lp
+p      |char*  |sv_2pvbyte     |SV* sv|STRLEN* lp
 p      |UV     |sv_2uv         |SV* sv
 p      |IV     |sv_iv          |SV* sv
 p      |UV     |sv_uv          |SV* sv
 p      |NV     |sv_nv          |SV* sv
 p      |char*  |sv_pvn         |SV *sv|STRLEN *len
+p      |char*  |sv_pvutf8n     |SV *sv|STRLEN *len
+p      |char*  |sv_pvbyten     |SV *sv|STRLEN *len
 p      |I32    |sv_true        |SV *sv
 p      |void   |sv_add_arena   |char* ptr|U32 size|U32 flags
 p      |int    |sv_backoff     |SV* sv
@@ -1626,6 +1630,8 @@ p |char*  |sv_peek        |SV* sv
 p      |void   |sv_pos_u2b     |SV* sv|I32* offsetp|I32* lenp
 p      |void   |sv_pos_b2u     |SV* sv|I32* offsetp
 p      |char*  |sv_pvn_force   |SV* sv|STRLEN* lp
+p      |char*  |sv_pvutf8n_force|SV* sv|STRLEN* lp
+p      |char*  |sv_pvbyten_force|SV* sv|STRLEN* lp
 p      |char*  |sv_reftype     |SV* sv|int ob
 p      |void   |sv_replace     |SV* sv|SV* nsv
 p      |void   |sv_report_used
@@ -1653,10 +1659,10 @@ p       |bool   |sv_upgrade     |SV* sv|U32 mt
 p      |void   |sv_usepvn      |SV* sv|char* ptr|STRLEN len
 p      |void   |sv_vcatpvfn    |SV* sv|const char* pat|STRLEN patlen \
                                |va_list* args|SV** svargs|I32 svmax \
-                               |bool *used_locale
+                               |bool *maybe_tainted
 p      |void   |sv_vsetpvfn    |SV* sv|const char* pat|STRLEN patlen \
                                |va_list* args|SV** svargs|I32 svmax \
-                               |bool *used_locale
+                               |bool *maybe_tainted
 p      |SV*    |swash_init     |char* pkg|char* name|SV* listsv \
                                |I32 minbits|I32 none
 p      |UV     |swash_fetch    |SV *sv|U8 *ptr
@@ -1754,7 +1760,11 @@ p        |void*  |default_protect|int *excpt|protect_body_t body|...
 p      |void*  |vdefault_protect|int *excpt|protect_body_t body|va_list *args
 p      |void   |reginitcolors
 p      |char*  |sv_2pv_nolen   |SV* sv
+p      |char*  |sv_2pvutf8_nolen|SV* sv
+p      |char*  |sv_2pvbyte_nolen|SV* sv
 p      |char*  |sv_pv          |SV *sv
+p      |char*  |sv_pvutf8      |SV *sv
+p      |char*  |sv_pvbyte      |SV *sv
 p      |void   |sv_force_normal|SV *sv
 p      |void   |tmps_grow      |I32 n
 p      |SV*    |sv_rvweaken    |SV *sv
index 3e83de1..65a31f1 100644 (file)
@@ -49,6 +49,8 @@
 #define PL_delaymagic          (vTHX->Tdelaymagic)
 #define PL_dirty               (vTHX->Tdirty)
 #define PL_dumpindent          (vTHX->Tdumpindent)
+#define PL_efloatbuf           (vTHX->Tefloatbuf)
+#define PL_efloatsize          (vTHX->Tefloatsize)
 #define PL_extralen            (vTHX->Textralen)
 #define PL_firstgv             (vTHX->Tfirstgv)
 #define PL_formtarget          (vTHX->Tformtarget)
 #define PL_doswitches          (PERL_GET_INTERP->Idoswitches)
 #define PL_dowarn              (PERL_GET_INTERP->Idowarn)
 #define PL_e_script            (PERL_GET_INTERP->Ie_script)
-#define PL_efloatbuf           (PERL_GET_INTERP->Iefloatbuf)
-#define PL_efloatsize          (PERL_GET_INTERP->Iefloatsize)
 #define PL_egid                        (PERL_GET_INTERP->Iegid)
 #define PL_endav               (PERL_GET_INTERP->Iendav)
 #define PL_envgv               (PERL_GET_INTERP->Ienvgv)
 #define PL_doswitches          (vTHX->Idoswitches)
 #define PL_dowarn              (vTHX->Idowarn)
 #define PL_e_script            (vTHX->Ie_script)
-#define PL_efloatbuf           (vTHX->Iefloatbuf)
-#define PL_efloatsize          (vTHX->Iefloatsize)
 #define PL_egid                        (vTHX->Iegid)
 #define PL_endav               (vTHX->Iendav)
 #define PL_envgv               (vTHX->Ienvgv)
 #define PL_Idoswitches         PL_doswitches
 #define PL_Idowarn             PL_dowarn
 #define PL_Ie_script           PL_e_script
-#define PL_Iefloatbuf          PL_efloatbuf
-#define PL_Iefloatsize         PL_efloatsize
 #define PL_Iegid               PL_egid
 #define PL_Iendav              PL_endav
 #define PL_Ienvgv              PL_envgv
 #define PL_delaymagic          (aTHX->Tdelaymagic)
 #define PL_dirty               (aTHX->Tdirty)
 #define PL_dumpindent          (aTHX->Tdumpindent)
+#define PL_efloatbuf           (aTHX->Tefloatbuf)
+#define PL_efloatsize          (aTHX->Tefloatsize)
 #define PL_extralen            (aTHX->Textralen)
 #define PL_firstgv             (aTHX->Tfirstgv)
 #define PL_formtarget          (aTHX->Tformtarget)
 #define PL_Tdelaymagic         PL_delaymagic
 #define PL_Tdirty              PL_dirty
 #define PL_Tdumpindent         PL_dumpindent
+#define PL_Tefloatbuf          PL_efloatbuf
+#define PL_Tefloatsize         PL_efloatsize
 #define PL_Textralen           PL_extralen
 #define PL_Tfirstgv            PL_firstgv
 #define PL_Tformtarget         PL_formtarget
index 3f9808a..0ff42e2 100644 (file)
  *     This symbol contains the ~name expanded version of ARCHLIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define ARCHLIB "/perl/lib/5.00560/epoc"               /**/
-#define ARCHLIB_EXP "/perl/lib/5.00560/epoc"           /**/
+#define ARCHLIB "/perl/lib/5.00562/epoc"               /**/
+#define ARCHLIB_EXP "/perl/lib/5.00562/epoc"           /**/
 
 /* DLSYM_NEEDS_UNDERSCORE:
  *     This symbol, if defined, indicates that we need to prepend an
  */
 /*#define HAS_WRITEV           /**/
 
-/* HAS_DBMINIT64:
- *     This symbol, if defined, indicates that the dbminit64 routine is
- *     available to open dbm files larger than 2 gigabytes.
- */
-/* HAS_DBMCLOSE64:
- *     This symbol, if defined, indicates that the dbmclose64 routine is
- *     available to close dbm files larger than 2 gigabytes.
- */
-/* HAS_FETCH64:
- *     This symbol, if defined, indicates that the fetch64 routine is
- *     available to fetch from dbm files larger than 2 gigabytes.
- */
-/* HAS_STORE64:
- *     This symbol, if defined, indicates that the store64 routine is
- *     available to store to dbm files larger than 2 gigabytes.
- */
-/* HAS_DELETE64:
- *     This symbol, if defined, indicates that the delete64 routine is
- *     available to delete from dbm files larger than 2 gigabytes.
- */
-/* HAS_FIRSTKEY64:
- *     This symbol, if defined, indicates that the firstkey64 routine is
- *     available to firstkey in dbm files larger than 2 gigabytes.
- */
-/* HAS_NEXTKEY64:
- *     This symbol, if defined, indicates that the nextkey64 routine is
- *     available to nextkey in dbm files larger than 2 gigabytes.
- */
-/*#define   HAS_DBMINIT64      / **/
-/*#define  HAS_DBMCLOSE64      / **/
-/*#define     HAS_FETCH64              / **/
-/*#define     HAS_STORE64              / **/
-/*#define    HAS_DELETE64              / **/
-/*#define  HAS_FIRSTKEY64      / **/
-/*#define   HAS_NEXTKEY64      / **/
-
 /* USE_DYNAMIC_LOADING:
  *     This symbol, if defined, indicates that dynamic loading of
  *     some sort is available.
  */
 /*#define INSTALL_USR_BIN_PERL /**/
 
-/* HAS_FSTAT64:
- *     This symbol, if defined, indicates that the fstat64 routine is
- *     available to stat files (fds) larger than 2 gigabytes.
- */
-/* HAS_FTRUNCATE64:
- *     This symbol, if defined, indicates that the ftruncate64 routine is
- *     available to tell files larger than 2 gigabytes.
- */
-/* HAS_LSEEK64:
- *     This symbol, if defined, indicates that the lseek64 routine is
- *     available to seek files larger than 2 gigabytes.
- */
-/* HAS_LSTAT64:
- *     This symbol, if defined, indicates that the lstat64 routine is
- *     available to stat files (symlinks) larger than 2 gigabytes.
- */
-/* HAS_OPEN64:
- *     This symbol, if defined, indicates that the open64 routine is
- *     available to open files larger than 2 gigabytes.
- */
-/* HAS_OPENDIR64:
- *     This symbol, if defined, indicates that the opendir64 routine is
- *     available to opendir files larger than 2 gigabytes.
- */
-/* HAS_READDIR64:
- *     This symbol, if defined, indicates that the readdir64 routine is
- *     available to readdir files larger than 2 gigabytes.
- */
-/* HAS_SEEKDIR64:
- *     This symbol, if defined, indicates that the seekdir64 routine is
- *     available to seekdir files larger than 2 gigabytes.
- */
-/* HAS_STAT64:
- *     This symbol, if defined, indicates that the stat64 routine is
- *     available to stat files larger than 2 gigabytes.
- */
-/* HAS_TELLDIR64:
- *     This symbol, if defined, indicates that the telldir64 routine is
- *     available to telldir files larger than 2 gigabytes.
- */
-/* HAS_TRUNCATE64:
- *     This symbol, if defined, indicates that the truncate64 routine is
- *     available to truncate files larger than 2 gigabytes.
- */
-/* HAS_OFF64_T:
- *     This symbol will be defined if the C compiler supports off64_t.
- */
-/* HAS_STRUCT_DIRENT64:
- *     This symbol will be defined if the C compiler supports struct dirent64.
- */
-/*#define     HAS_FSTAT64              / **/
-/*#define HAS_FTRUNCATE64      / **/
-/*#define     HAS_LSEEK64              / **/
-/*#define     HAS_LSTAT64              / **/
-/*#define      HAS_OPEN64              / **/
-/*#define   HAS_OPENDIR64      / **/
-/*#define   HAS_READDIR64      / **/
-/*#define   HAS_SEEKDIR64      / **/
-/*#define      HAS_STAT64              / **/
-/*#define   HAS_TELLDIR64      / **/
-/*#define  HAS_TRUNCATE64      / **/
-/*#define      HAS_OFF64_T     / **/
-/*#define   HAS_STRUCT_DIRENT64        / **/
-
 /* PRIVLIB:
  *     This symbol contains the name of the private library for this package.
  *     The library is private in the sense that it needn't be in anyone's
  *     This symbol contains the ~name expanded version of PRIVLIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define PRIVLIB "/perl/lib/5.00560"            /**/
-#define PRIVLIB_EXP "/perl/lib/5.00560"                /**/
+#define PRIVLIB "/perl/lib/5.00562"            /**/
+#define PRIVLIB_EXP "/perl/lib/5.00562"                /**/
 
 /* SELECT_MIN_BITS:
  *     This symbol holds the minimum number of bits operated by select.
  *     This symbol contains the ~name expanded version of SITEARCH, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define SITEARCH "/perl/lib/site_perl/5.00556/epoc"            /**/
-#define SITEARCH_EXP "/perl/lib/site_perl/5.00560/epoc"                /**/
+#define SITEARCH "/perl/lib/site_perl/5.00562/epoc"            /**/
+#define SITEARCH_EXP "/perl/lib/site_perl/5.00562/epoc"                /**/
 
 /* SITELIB:
  *     This symbol contains the name of the private library for this package.
  *     This symbol contains the ~name expanded version of SITELIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define SITELIB "/perl/lib/site_perl/5.00560"          /**/
-#define SITELIB_EXP "/perl/lib/site_perl/5.00560"              /**/
+#define SITELIB "/perl/lib/site_perl/5.00562"          /**/
+#define SITELIB_EXP "/perl/lib/site_perl/5.00562"              /**/
 
 /* STARTPERL:
  *     This variable contains the string to put in front of a perl
  */
 #define STARTPERL "#!/opt/perl/bin/perl"               /**/
 
-/* HAS_FGETPOS64:
- *     This symbol, if defined, indicates that the fgetpos64 routine is
- *     available to getpos files larger than 2 gigabytes.
- */
-/* HAS_FOPEN64:
- *     This symbol, if defined, indicates that the fopen64 routine is
- *     available to open files larger than 2 gigabytes.
- */
-/* HAS_FREOPEN64:
- *     This symbol, if defined, indicates that the freopen64 routine is
- *     available to reopen files larger than 2 gigabytes.
- */
-/* HAS_FSEEK64:
- *     This symbol, if defined, indicates that the fseek64 routine is
- *     available to seek files larger than 2 gigabytes.
- */
-/* HAS_FSEEKO64:
- *     This symbol, if defined, indicates that the fseeko64 routine is
- *     available to seek files larger than 2 gigabytes.
- */
-/* HAS_FSETPOS64:
- *     This symbol, if defined, indicates that the fsetpos64 routine is
- *     available to setpos files larger than 2 gigabytes.
- */
-/* HAS_FTELL64:
- *     This symbol, if defined, indicates that the ftell64 routine is
- *     available to tell files larger than 2 gigabytes.
- */
-/* HAS_FTELLO64:
- *     This symbol, if defined, indicates that the ftello64 routine is
- *     available to tell files larger than 2 gigabytes.
- */
-/* HAS_TMPFILE64:
- *     This symbol, if defined, indicates that the tmpfile64 routine is
- *     available to tmpfile files larger than 2 gigabytes.
- */
-/*#define   HAS_FGETPOS64      / **/
-/*#define     HAS_FOPEN64              / **/
-/*#define   HAS_FREOPEN64      / **/
-/*#define     HAS_FSEEK64              / **/
-/*#define    HAS_FSEEKO64              / **/
-/*#define   HAS_FSETPOS64      / **/
-/*#define     HAS_FTELL64              / **/
-/*#define    HAS_FTELLO64              / **/
-/*#define   HAS_TMPFILE64      / **/
-
 /* HAS_STDIO_STREAM_ARRAY:
  *     This symbol, if defined, tells that there is an array
  *     holding the stdio streams.
index e4730cd..2187e59 100644 (file)
@@ -107,6 +107,11 @@ sub timing_info {
 }
 
 my %symtable;
+
+sub clearsym {
+    %symtable = ();
+}
+
 sub savesym {
     my ($obj, $value) = @_;
 #    warn(sprintf("savesym: sym_%x => %s\n", $$obj, $value)); # debug
index ad3d008..2d6145d 100644 (file)
@@ -202,7 +202,7 @@ make_sv_object(pTHX_ SV *arg, SV *sv)
     }
     if (!type) {
        type = svclassnames[SvTYPE(sv)];
-       iv = (IV)PTR_CAST sv;
+       iv = PTR2IV(sv);
     }
     sv_setiv(newSVrv(arg, type), iv);
     return arg;
@@ -211,7 +211,7 @@ make_sv_object(pTHX_ SV *arg, SV *sv)
 static SV *
 make_mg_object(pTHX_ SV *arg, MAGIC *mg)
 {
-    sv_setiv(newSVrv(arg, "B::MAGIC"), (IV)PTR_CAST mg);
+    sv_setiv(newSVrv(arg, "B::MAGIC"), PTR2IV(mg));
     return arg;
 }
 
@@ -317,7 +317,7 @@ walkoptree(pTHX_ SV *opsv, char *method)
     if (!SvROK(opsv))
        croak("opsv is not a reference");
     opsv = sv_mortalcopy(opsv);
-    o = (OP*)PTR_CAST SvIV((SV*)SvRV(opsv));
+    o = INT2PTR(OP*,SvIV((SV*)SvRV(opsv)));
     if (walkoptree_debug) {
        PUSHMARK(sp);
        XPUSHs(opsv);
@@ -332,7 +332,7 @@ walkoptree(pTHX_ SV *opsv, char *method)
        OP *kid;
        for (kid = ((UNOP*)o)->op_first; kid; kid = kid->op_sibling) {
            /* Use the same opsv. Rely on methods not to mess it up. */
-           sv_setiv(newSVrv(opsv, cc_opclassname(aTHX_ kid)), (IV)PTR_CAST kid);
+           sv_setiv(newSVrv(opsv, cc_opclassname(aTHX_ kid)), PTR2IV(kid));
            walkoptree(aTHX_ opsv, method);
        }
     }
@@ -437,7 +437,7 @@ walkoptree_debug(...)
     OUTPUT:
        RETVAL
 
-#define address(sv) (IV)PTR_CAST sv
+#define address(sv) PTR2IV(sv)
 
 IV
 address(sv)
@@ -647,10 +647,10 @@ PMOP_pmreplroot(o)
        if (o->op_type == OP_PUSHRE) {
            sv_setiv(newSVrv(ST(0), root ?
                             svclassnames[SvTYPE((SV*)root)] : "B::SV"),
-                    (IV)PTR_CAST root);
+                    PTR2IV(root));
        }
        else {
-           sv_setiv(newSVrv(ST(0), cc_opclassname(aTHX_ root)), (IV)PTR_CAST root);
+           sv_setiv(newSVrv(ST(0), cc_opclassname(aTHX_ root)), PTR2IV(root));
        }
 
 B::OP
@@ -1153,7 +1153,7 @@ void
 CvXSUB(cv)
        B::CV   cv
     CODE:
-       ST(0) = sv_2mortal(newSViv((IV)PTR_CAST CvXSUB(cv)));
+       ST(0) = sv_2mortal(newSViv(PTR2IV(CvXSUB(cv))));
 
 
 void
index d2ef78f..b914bc6 100644 (file)
@@ -129,6 +129,7 @@ sub B::PMOP::mark_if_leader {
 
 sub compile {
     my @options = @_;
+    B::clearsym();
     if (@options) {
        return sub {
            my $objname;
index 7563626..8910068 100644 (file)
@@ -247,6 +247,7 @@ sub B::SPECIAL::debug {
 
 sub compile {
     my $order = shift;
+    B::clearsym();
     if ($order eq "exec") {
         return sub { walkoptree_exec(main_start, "debug") }
     } else {
index 93757f3..35bf9b8 100644 (file)
@@ -17,6 +17,7 @@ sub terse {
 sub compile {
     my $order = shift;
     my @options = @_;
+    B::clearsym();
     if (@options) {
        return sub {
            my $objname;
index 9af85c9..dcff65a 100644 (file)
@@ -16,7 +16,8 @@ if ($^O eq 'MSWin32') {
 WriteMakefile(
     NAME       => "B",
     VERSION    => "a5",
-    MAN3PODS => {},
+    PL_FILES   => { 'defsubs_h.PL' => 'defsubs.h' },
+    MAN3PODS   => {},
     clean      => {
        FILES           => "perl$e *$o B.c defsubs.h *~"
     }
similarity index 97%
rename from ext/B/defsubs.h.PL
rename to ext/B/defsubs_h.PL
index 2129c8c..8dfa3a5 100644 (file)
@@ -4,6 +4,7 @@
 #!perl
 my ($out) = __FILE__ =~ /(^.*)\.PL/;
 if ($^O eq 'VMS') { ($out) = __FILE__ =~ /^(.+)_PL$/i; }
+$out =~ s/_h$/.h/;
 open(OUT,">$out") || die "Cannot open $file:$!";
 print "Extracting $out . . .\n";
 foreach my $const (qw(AVf_REAL 
index 5f6af0f..febadf8 100644 (file)
@@ -35,7 +35,7 @@ INPUT
 T_OP_OBJ
        if (SvROK($arg)) {
            IV tmp = SvIV((SV*)SvRV($arg));
-           $var = ($type)PTR_CAST tmp;
+           $var = INT2PTR($type,tmp);
        }
        else
            croak(\"$var is not a reference\")
@@ -43,7 +43,7 @@ T_OP_OBJ
 T_SV_OBJ
        if (SvROK($arg)) {
            IV tmp = SvIV((SV*)SvRV($arg));
-           $var = ($type)PTR_CAST tmp;
+           $var = INT2PTR($type,tmp);
        }
        else
            croak(\"$var is not a reference\")
@@ -51,18 +51,18 @@ T_SV_OBJ
 T_MG_OBJ
        if (SvROK($arg)) {
            IV tmp = SvIV((SV*)SvRV($arg));
-           $var = ($type)PTR_CAST tmp;
+           $var = INT2PTR($type,tmp);
        }
        else
            croak(\"$var is not a reference\")
 
 OUTPUT
 T_OP_OBJ
-       sv_setiv(newSVrv($arg, cc_opclassname(aTHX_ (OP*)$var)), (IV)PTR_CAST $var);
+       sv_setiv(newSVrv($arg, cc_opclassname(aTHX_ (OP*)$var)), PTR2IV($var));
 
 T_SV_OBJ
        make_sv_object(aTHX_ ($arg), (SV*)($var));
 
 
 T_MG_OBJ
-       sv_setiv(newSVrv($arg, "B::MAGIC"), (IV)PTR_CAST $var);
+       sv_setiv(newSVrv($arg, "B::MAGIC"), PTR2IV($var));
index 6d374bf..8f36456 100644 (file)
    * Added a BOOT check to test for equivalent versions of db.h &
      libdb.a/so.
 
+1.71 7th September 1999
+
+   * Fixed a bug that prevented 1.70 from compiling under win32
+
+   * Updated to support Berkeley DB 3.x
+
+   * Updated dbinfo for Berkeley DB 3.x file formats.
index e20a562..44bdad6 100644 (file)
@@ -1,8 +1,8 @@
 # DB_File.pm -- Perl 5 interface to Berkeley DB 
 #
 # written by Paul Marquess (Paul.Marquess@btinternet.com)
-# last modified 4th August 1999
-# version 1.70
+# last modified 4th September 1999
+# version 1.71
 #
 #     Copyright (c) 1995-1999 Paul Marquess. All rights reserved.
 #     This program is free software; you can redistribute it and/or
@@ -145,7 +145,7 @@ use vars qw($VERSION @ISA @EXPORT $AUTOLOAD $DB_BTREE $DB_HASH $DB_RECNO $db_ver
 use Carp;
 
 
-$VERSION = "1.70" ;
+$VERSION = "1.71" ;
 
 #typedef enum { DB_BTREE, DB_HASH, DB_RECNO } DBTYPE;
 $DB_BTREE = new DB_File::BTREEINFO ;
@@ -421,10 +421,10 @@ DB_File - Perl5 access to Berkeley DB version 1.x
 
 B<DB_File> is a module which allows Perl programs to make use of the
 facilities provided by Berkeley DB version 1.x (if you have a newer
-version of DB, see L<Using DB_File with Berkeley DB version 2>). It is
-assumed that you have a copy of the Berkeley DB manual pages at hand
-when reading this documentation. The interface defined here mirrors the
-Berkeley DB interface closely.
+version of DB, see L<Using DB_File with Berkeley DB version 2 or 3>).
+It is assumed that you have a copy of the Berkeley DB manual pages at
+hand when reading this documentation. The interface defined here
+mirrors the Berkeley DB interface closely.
 
 Berkeley DB is a C library which provides a consistent interface to a
 number of database formats.  B<DB_File> provides an interface to all
@@ -465,32 +465,33 @@ number.
 
 =back
 
-=head2 Using DB_File with Berkeley DB version 2
+=head2 Using DB_File with Berkeley DB version 2 or 3
 
 Although B<DB_File> is intended to be used with Berkeley DB version 1,
-it can also be used with version 2. In this case the interface is
+it can also be used with version 2.or 3 In this case the interface is
 limited to the functionality provided by Berkeley DB 1.x. Anywhere the
-version 2 interface differs, B<DB_File> arranges for it to work like
-version 1. This feature allows B<DB_File> scripts that were built with
-version 1 to be migrated to version 2 without any changes.
+version 2 or 3 interface differs, B<DB_File> arranges for it to work
+like version 1. This feature allows B<DB_File> scripts that were built
+with version 1 to be migrated to version 2 or 3 without any changes.
 
 If you want to make use of the new features available in Berkeley DB
-2.x, use the Perl module B<BerkeleyDB> instead.
+2.x or 3.x, use the Perl module B<BerkeleyDB> instead.
 
 At the time of writing this document the B<BerkeleyDB> module is still
 alpha quality (the version number is < 1.0), and so unsuitable for use
 in any serious development work. Once its version number is >= 1.0, it
 is considered stable enough for real work.
 
-B<Note:> The database file format has changed in Berkeley DB version 2.
-If you cannot recreate your databases, you must dump any existing
-databases with the C<db_dump185> utility that comes with Berkeley DB.
-Once you have rebuilt DB_File to use Berkeley DB version 2, your
+B<Note:> The database file format has changed in both Berkeley DB
+version 2 and 3. If you cannot recreate your databases, you must dump
+any existing databases with the C<db_dump185> utility that comes with
+Berkeley DB.
+Once you have rebuilt DB_File to use Berkeley DB version 2 or 3, your
 databases can be recreated using C<db_load>. Refer to the Berkeley DB
 documentation for further details.
 
-Please read L<"COPYRIGHT"> before using version 2.x of Berkeley DB with
-DB_File.
+Please read L<"COPYRIGHT"> before using version 2.x or 3.x of Berkeley
+DB with DB_File.
 
 =head2 Interface to Berkeley DB
 
@@ -1940,11 +1941,12 @@ date, so the most recent version can always be found on CPAN (see
 L<perlmod/CPAN> for details), in the directory
 F<modules/by-module/DB_File>.
 
-This version of B<DB_File> will work with either version 1.x or 2.x of
-Berkeley DB, but is limited to the functionality provided by version 1.
+This version of B<DB_File> will work with either version 1.x, 2.x or
+3.x of Berkeley DB, but is limited to the functionality provided by
+version 1.
 
 The official web site for Berkeley DB is F<http://www.sleepycat.com>.
-Both versions 1 and 2 of Berkeley DB are available there.
+All versions of Berkeley DB are available there.
 
 Alternatively, Berkeley DB version 1 is available at your nearest CPAN
 archive in F<src/misc/db.1.85.tar.gz>.
index 2ee1e61..ccb9b75 100644 (file)
@@ -3,8 +3,8 @@
  DB_File.xs -- Perl 5 interface to Berkeley DB 
 
  written by Paul Marquess <Paul.Marquess@btinternet.com>
- last modified 4th August 1999
- version 1.70
+ last modified 7th September 1999
+ version 1.71
 
  All comments/suggestions/problems are welcome
 
@@ -78,6 +78,9 @@
                GV_ADD|GV_ADDMULT -- bug spotted by Nick Ing-Simmons.
                Added a BOOT check to test for equivalent versions of db.h &
                libdb.a/so.
+        1.71 -  Support for Berkeley DB version 3.
+               Support for Berkeley DB 2/3's backward compatability mode.
+               Rewrote push
 
 */
 
 #ifdef op
 #    undef op
 #endif
-#include <db.h>
+
+#ifdef COMPAT185
+#    include <db_185.h>
+#else
+#    include <db.h>
+#endif
 
 #ifndef pTHX
 #    define pTHX
 /* #define TRACE */
 #define DBM_FILTERING
 
+#ifdef TRACE
+#    define Trace(x)        printf x
+#else
+#    define Trace(x)
+#endif
+
 
+#define DBT_clear(x)   Zero(&x, 1, DBT) ;
 
 #ifdef DB_VERSION_MAJOR
 
+#if DB_VERSION_MAJOR == 2
+#    define BERKELEY_DB_1_OR_2
+#endif
+
 /* map version 2 features & constants onto their version 1 equivalent */
 
 #ifdef DB_Prefix_t
 
 /* DBTYPE stays the same */
 /* HASHINFO, RECNOINFO and BTREEINFO  map to DB_INFO */
-typedef DB_INFO        INFO ;
+#if DB_VERSION_MAJOR == 2
+    typedef DB_INFO    INFO ;
+#else /* DB_VERSION_MAJOR > 2 */
+#    define DB_FIXEDLEN        (0x8000)
+#endif /* DB_VERSION_MAJOR == 2 */
 
 /* version 2 has db_recno_t in place of recno_t        */
 typedef db_recno_t     recno_t;
@@ -166,15 +189,18 @@ typedef db_recno_t        recno_t;
 #define R_NEXT          DB_NEXT
 #define R_NOOVERWRITE   DB_NOOVERWRITE
 #define R_PREV          DB_PREV
+
 #if DB_VERSION_MAJOR == 2 && DB_VERSION_MINOR < 5
-#define R_SETCURSOR     0x800000
+#  define R_SETCURSOR  0x800000
 #else
-#define R_SETCURSOR     (-100)
+#  define R_SETCURSOR  (-100)
 #endif
+
 #define R_RECNOSYNC     0
 #define R_FIXEDLEN     DB_FIXEDLEN
 #define R_DUP          DB_DUP
 
+
 #define db_HA_hash     h_hash
 #define db_HA_ffactor  h_ffactor
 #define db_HA_nelem    h_nelem
@@ -209,13 +235,15 @@ typedef db_recno_t        recno_t;
 #define DB_flags(x, v) x |= v 
 
 #if DB_VERSION_MAJOR == 2 && DB_VERSION_MINOR < 5
-#define flagSet(flags, bitmask)        ((flags) & (bitmask))
+#    define flagSet(flags, bitmask)    ((flags) & (bitmask))
 #else
-#define flagSet(flags, bitmask)        (((flags) & DB_OPFLAGS_MASK) == (bitmask))
+#    define flagSet(flags, bitmask)    (((flags) & DB_OPFLAGS_MASK) == (bitmask))
 #endif
 
 #else /* db version 1.x */
 
+#define BERKELEY_DB_1_OR_2
+
 typedef union INFO {
         HASHINFO       hash ;
         RECNOINFO      recno ;
@@ -224,17 +252,17 @@ typedef union INFO {
 
 
 #ifdef mDB_Prefix_t 
-#ifdef DB_Prefix_t
-#undef DB_Prefix_t
-#endif
-#define DB_Prefix_t    mDB_Prefix_t 
+#  ifdef DB_Prefix_t
+#    undef DB_Prefix_t
+#  endif
+#  define DB_Prefix_t  mDB_Prefix_t 
 #endif
 
 #ifdef mDB_Hash_t
-#ifdef DB_Hash_t
-#undef DB_Hash_t
-#endif
-#define DB_Hash_t      mDB_Hash_t
+#  ifdef DB_Hash_t
+#    undef DB_Hash_t
+#  endif
+#  define DB_Hash_t    mDB_Hash_t
 #endif
 
 #define db_HA_hash     hash.hash
@@ -281,20 +309,20 @@ typedef union INFO {
 
 #ifdef DB_VERSION_MAJOR
 #define db_DESTROY(db)                  ( db->cursor->c_close(db->cursor),\
-                                         db->dbp->close(db->dbp, 0) )
+                                         (db->dbp->close)(db->dbp, 0) )
 #define db_close(db)                   ((db->dbp)->close)(db->dbp, 0)
 #define db_del(db, key, flags)          (flagSet(flags, R_CURSOR)                                      \
                                                ? ((db->cursor)->c_del)(db->cursor, 0)          \
                                                : ((db->dbp)->del)(db->dbp, NULL, &key, flags) )
 
-#else
+#else /* ! DB_VERSION_MAJOR */
 
 #define db_DESTROY(db)                  ((db->dbp)->close)(db->dbp)
 #define db_close(db)                   ((db->dbp)->close)(db->dbp)
 #define db_del(db, key, flags)          ((db->dbp)->del)(db->dbp, &key, flags)
 #define db_put(db, key, value, flags)   ((db->dbp)->put)(db->dbp, &key, &value, flags)
 
-#endif
+#endif /* ! DB_VERSION_MAJOR */
 
 
 #define db_seq(db, key, value, flags)   do_SEQ(db, key, value, flags)
@@ -306,7 +334,9 @@ typedef struct {
        SV *    prefix ;
        SV *    hash ;
        int     in_memory ;
+#ifdef BERKELEY_DB_1_OR_2
        INFO    info ;
+#endif 
 #ifdef DB_VERSION_MAJOR
        DBC *   cursor ;
 #endif
@@ -439,48 +469,6 @@ u_int              flags ;
 
 #endif /* DB_VERSION_MAJOR */
 
-static void
-GetVersionInfo(pTHX)
-{
-    SV * version_sv = perl_get_sv("DB_File::db_version", GV_ADD|GV_ADDMULTI) ;
-    SV * ver_sv = perl_get_sv("DB_File::db_ver", GV_ADD|GV_ADDMULTI) ;
-#ifdef DB_VERSION_MAJOR
-    int Major, Minor, Patch ;
-
-    (void)db_version(&Major, &Minor, &Patch) ;
-
-    /* Check that the versions of db.h and libdb.a are the same */
-    if (Major != DB_VERSION_MAJOR || Minor != DB_VERSION_MINOR 
-               || Patch != DB_VERSION_PATCH)
-       croak("\nDB_File needs compatible versions of libdb & db.h\n\tyou have db.h version %d.%d.%d and libdb version %d.%d.%d\n",  
-               DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH, 
-               Major, Minor, Patch) ;
-    
-    /* check that libdb is recent enough  -- we need 2.3.4 or greater */
-    if (Major == 2 && (Minor < 3 || (Minor ==  3 && Patch < 4)))
-       croak("DB_File needs Berkeley DB 2.3.4 or greater, you have %d.%d.%d\n",
-                Major, Minor, Patch) ;
-#if PERL_VERSION > 3
-    sv_setpvf(version_sv, "%d.%d", Major, Minor) ;
-    sv_setpvf(ver_sv, "%d.%03d%03d", Major, Minor, Patch) ;
-#else
-    {
-        char buffer[40] ;
-        sprintf(buffer, "%d.%d", Major, Minor) ;
-        sv_setpv(version_sv, buffer) ; 
-        sprintf(buffer, "%d.%03d%03d", Major, Minor, Patch) ;
-        sv_setpv(ver_sv, buffer) ; 
-    }
-#endif
-#else
-    sv_setiv(version_sv, 1) ;
-    sv_setiv(ver_sv, 1) ;
-#endif
-
-}
-
 
 static int
 #ifdef CAN_PROTOTYPE
@@ -641,7 +629,7 @@ size_t size ;
 }
 
 
-#ifdef TRACE
+#if defined(TRACE) && defined(BERKELEY_DB_1_OR_2)
 
 static void
 #ifdef CAN_PROTOTYPE
@@ -724,8 +712,8 @@ DB_File db ;
     DBT                value ;
     int                RETVAL ;
 
-    DBT_flags(key) ;
-    DBT_flags(value) ;
+    DBT_clear(key) ;
+    DBT_clear(value) ;
     RETVAL = do_SEQ(db, key, value, R_LAST) ;
     if (RETVAL == 0)
         RETVAL = *(I32 *)key.data ;
@@ -760,6 +748,7 @@ I32      value ;
     return value ;
 }
 
+
 static DB_File
 #ifdef CAN_PROTOTYPE
 ParseOpenInfo(pTHX_ int isHASH, char *name, int flags, int mode, SV *sv)
@@ -772,6 +761,9 @@ int    mode ;
 SV *   sv ;
 #endif
 {
+
+#ifdef BERKELEY_DB_1_OR_2 /* Berkeley DB Version 1  or 2 */
+
     SV **      svp;
     HV *       action ;
     DB_File    RETVAL = (DB_File)safemalloc(sizeof(DB_File_type)) ;
@@ -1032,11 +1024,265 @@ SV *   sv ;
 
     }
 #else
+
+#if defined(DB_LIBRARY_COMPATIBILITY_API) && DB_VERSION_MAJOR > 2
+    RETVAL->dbp = __db185_open(name, flags, mode, RETVAL->type, openinfo) ; 
+#else    
     RETVAL->dbp = dbopen(name, flags, mode, RETVAL->type, openinfo) ; 
+#endif /* DB_LIBRARY_COMPATIBILITY_API */
+
 #endif
 
     return (RETVAL) ;
-}
+
+#else /* Berkeley DB Version > 2 */
+
+    SV **      svp;
+    HV *       action ;
+    DB_File    RETVAL = (DB_File)safemalloc(sizeof(DB_File_type)) ;
+    DB *       dbp ;
+    STRLEN     n_a;
+    int                status ;
+
+/* printf("In ParseOpenInfo name=[%s] flags=[%d] mode = [%d]\n", name, flags, mode) ;  */
+    Zero(RETVAL, 1, DB_File_type) ;
+
+    /* Default to HASH */
+#ifdef DBM_FILTERING
+    RETVAL->filtering = 0 ;
+    RETVAL->filter_fetch_key = RETVAL->filter_store_key = 
+    RETVAL->filter_fetch_value = RETVAL->filter_store_value =
+#endif /* DBM_FILTERING */
+    RETVAL->hash = RETVAL->compare = RETVAL->prefix = NULL ;
+    RETVAL->type = DB_HASH ;
+
+     /* DGH - Next line added to avoid SEGV on existing hash DB */
+    CurrentDB = RETVAL; 
+
+    /* fd for 1.86 hash in memory files doesn't return -1 like 1.85 */
+    RETVAL->in_memory = (name == NULL) ;
+
+    status = db_create(&RETVAL->dbp, NULL,0) ;
+    /* printf("db_create returned %d %s\n", status, db_strerror(status)) ; */
+    if (status) {
+       RETVAL->dbp = NULL ;
+        return (RETVAL) ;
+    }  
+    dbp = RETVAL->dbp ;
+
+    if (sv)
+    {
+        if (! SvROK(sv) )
+            croak ("type parameter is not a reference") ;
+
+        svp  = hv_fetch( (HV*)SvRV(sv), "GOT", 3, FALSE) ;
+        if (svp && SvOK(*svp))
+            action  = (HV*) SvRV(*svp) ;
+       else
+           croak("internal error") ;
+
+        if (sv_isa(sv, "DB_File::HASHINFO"))
+        {
+
+           if (!isHASH)
+               croak("DB_File can only tie an associative array to a DB_HASH database") ;
+
+            RETVAL->type = DB_HASH ;
+  
+            svp = hv_fetch(action, "hash", 4, FALSE); 
+
+            if (svp && SvOK(*svp))
+            {
+               (void)dbp->set_h_hash(dbp, hash_cb) ;
+               RETVAL->hash = newSVsv(*svp) ;
+            }
+
+           svp = hv_fetch(action, "ffactor", 7, FALSE);
+          if (svp)
+              (void)dbp->set_h_ffactor(dbp, SvIV(*svp)) ;
+         
+           svp = hv_fetch(action, "nelem", 5, FALSE);
+          if (svp)
+               (void)dbp->set_h_nelem(dbp, SvIV(*svp)) ;
+         
+           svp = hv_fetch(action, "bsize", 5, FALSE);
+          if (svp)
+               (void)dbp->set_pagesize(dbp, SvIV(*svp));
+           
+           svp = hv_fetch(action, "cachesize", 9, FALSE);
+          if (svp)
+               (void)dbp->set_cachesize(dbp, 0, SvIV(*svp), 0) ;
+         
+           svp = hv_fetch(action, "lorder", 6, FALSE);
+          if (svp)
+               (void)dbp->set_lorder(dbp, SvIV(*svp)) ;
+
+           PrintHash(info) ; 
+        }
+        else if (sv_isa(sv, "DB_File::BTREEINFO"))
+        {
+           if (!isHASH)
+               croak("DB_File can only tie an associative array to a DB_BTREE database");
+
+            RETVAL->type = DB_BTREE ;
+   
+            svp = hv_fetch(action, "compare", 7, FALSE);
+            if (svp && SvOK(*svp))
+            {
+                (void)dbp->set_bt_compare(dbp, btree_compare) ;
+               RETVAL->compare = newSVsv(*svp) ;
+            }
+
+            svp = hv_fetch(action, "prefix", 6, FALSE);
+            if (svp && SvOK(*svp))
+            {
+                (void)dbp->set_bt_prefix(dbp, btree_prefix) ;
+               RETVAL->prefix = newSVsv(*svp) ;
+            }
+
+           svp = hv_fetch(action, "flags", 5, FALSE);
+          if (svp)
+              (void)dbp->set_flags(dbp, SvIV(*svp)) ;
+   
+           svp = hv_fetch(action, "cachesize", 9, FALSE);
+          if (svp)
+               (void)dbp->set_cachesize(dbp, 0, SvIV(*svp), 0) ;
+         
+           svp = hv_fetch(action, "psize", 5, FALSE);
+          if (svp)
+               (void)dbp->set_pagesize(dbp, SvIV(*svp)) ;
+         
+           svp = hv_fetch(action, "lorder", 6, FALSE);
+          if (svp)
+               (void)dbp->set_lorder(dbp, SvIV(*svp)) ;
+
+            PrintBtree(info) ;
+         
+        }
+        else if (sv_isa(sv, "DB_File::RECNOINFO"))
+        {
+           int fixed = FALSE ;
+
+           if (isHASH)
+               croak("DB_File can only tie an array to a DB_RECNO database");
+
+            RETVAL->type = DB_RECNO ;
+
+           svp = hv_fetch(action, "flags", 5, FALSE);
+          if (svp) {
+               int flags = SvIV(*svp) ;
+               /* remove FIXDLEN, if present */
+               if (flags & DB_FIXEDLEN) {
+                   fixed = TRUE ;
+                   flags &= ~DB_FIXEDLEN ;
+               }
+          }
+
+           svp = hv_fetch(action, "cachesize", 9, FALSE);
+          if (svp) {
+               status = dbp->set_cachesize(dbp, 0, SvIV(*svp), 0) ;
+          }
+         
+           svp = hv_fetch(action, "psize", 5, FALSE);
+          if (svp) {
+               status = dbp->set_pagesize(dbp, SvIV(*svp)) ;
+           }
+         
+           svp = hv_fetch(action, "lorder", 6, FALSE);
+          if (svp) {
+               status = dbp->set_lorder(dbp, SvIV(*svp)) ;
+          }
+
+           svp = hv_fetch(action, "bval", 4, FALSE);
+            if (svp && SvOK(*svp))
+            {
+               int value ;
+                if (SvPOK(*svp))
+                   value = (int)*SvPV(*svp, n_a) ;
+               else
+                   value = SvIV(*svp) ;
+
+               if (fixed) {
+                   status = dbp->set_re_pad(dbp, value) ;
+               }
+               else {
+                   status = dbp->set_re_delim(dbp, value) ;
+               }
+
+            }
+
+          if (fixed) {
+               svp = hv_fetch(action, "reclen", 6, FALSE);
+              if (svp) {
+                  u_int32_t len =  (u_int32_t)SvIV(*svp) ;
+                   status = dbp->set_re_len(dbp, len) ;
+              }    
+          }
+         
+           if (name != NULL) {
+               status = dbp->set_re_source(dbp, name) ;
+               name = NULL ;
+           }   
+
+            svp = hv_fetch(action, "bfname", 6, FALSE); 
+            if (svp && SvOK(*svp)) {
+               char * ptr = SvPV(*svp,n_a) ;
+               name = (char*) n_a ? ptr : NULL ;
+           }
+           else
+               name = NULL ;
+         
+
+           status = dbp->set_flags(dbp, DB_RENUMBER) ;
+         
+               if (flags){
+                   (void)dbp->set_flags(dbp, flags) ;
+               }
+            PrintRecno(info) ;
+        }
+        else
+            croak("type is not of type DB_File::HASHINFO, DB_File::BTREEINFO or DB_File::RECNOINFO");
+    }
+
+    {
+        int            Flags = 0 ;
+        int            status ;
+
+        /* Map 1.x flags to 3.x flags */
+        if ((flags & O_CREAT) == O_CREAT)
+            Flags |= DB_CREATE ;
+
+#if O_RDONLY == 0
+        if (flags == O_RDONLY)
+#else
+        if ((flags & O_RDONLY) == O_RDONLY && (flags & O_RDWR) != O_RDWR)
+#endif
+            Flags |= DB_RDONLY ;
+
+#ifdef O_TRUNC
+        if ((flags & O_TRUNC) == O_TRUNC)
+            Flags |= DB_TRUNCATE ;
+#endif
+
+        status = RETVAL->dbp->open(RETVAL->dbp, name, NULL, RETVAL->type, 
+                               Flags, mode) ; 
+       /* printf("open returned %d %s\n", status, db_strerror(status)) ; */
+
+        if (status == 0)
+            status = (RETVAL->dbp->cursor)(RETVAL->dbp, NULL, &RETVAL->cursor,
+                       0) ;
+       /* printf("cursor returned %d %s\n", status, db_strerror(status)) ; */
+
+        if (status)
+           RETVAL->dbp = NULL ;
+
+    }
+
+    return (RETVAL) ;
+
+#endif /* Berkeley DB Version > 2 */
+
+} /* ParseOpenInfo */
 
 
 static double 
@@ -1279,11 +1525,11 @@ MODULE = DB_File        PACKAGE = DB_File       PREFIX = db_
 
 BOOT:
   {
-    GetVersionInfo(aTHX) ;
+    __getBerkeleyDBInfo() ;
  
+    DBT_clear(empty) ; 
     empty.data = &zero ;
     empty.size =  sizeof(recno_t) ;
-    DBT_flags(empty) ; 
   }
 
 double
@@ -1363,7 +1609,7 @@ db_EXISTS(db, key)
        {
           DBT          value ;
        
-         DBT_flags(value) ; 
+         DBT_clear(value) ; 
          CurrentDB = db ;
          RETVAL = (((db->dbp)->get)(db->dbp, TXN &key, &value, 0) == 0) ;
        }
@@ -1379,7 +1625,7 @@ db_FETCH(db, key, flags=0)
        {
             DBT                value ;
 
-           DBT_flags(value) ; 
+           DBT_clear(value) ; 
            CurrentDB = db ;
            /* RETVAL = ((db->dbp)->get)(db->dbp, TXN &key, &value, flags) ; */
            RETVAL = db_get(db, key, value, flags) ;
@@ -1405,8 +1651,8 @@ db_FIRSTKEY(db)
            DBTKEY      key ;
            DBT         value ;
 
-           DBT_flags(key) ; 
-           DBT_flags(value) ; 
+           DBT_clear(key) ; 
+           DBT_clear(value) ; 
            CurrentDB = db ;
            RETVAL = do_SEQ(db, key, value, R_FIRST) ;
            ST(0) = sv_newmortal();
@@ -1421,7 +1667,7 @@ db_NEXTKEY(db, key)
        {
            DBT         value ;
 
-           DBT_flags(value) ; 
+           DBT_clear(value) ; 
            CurrentDB = db ;
            RETVAL = do_SEQ(db, key, value, R_NEXT) ;
            ST(0) = sv_newmortal();
@@ -1445,8 +1691,8 @@ unshift(db, ...)
            DB *        Db = db->dbp ;
            STRLEN      n_a;
 
-           DBT_flags(key) ; 
-           DBT_flags(value) ; 
+           DBT_clear(key) ; 
+           DBT_clear(value) ; 
            CurrentDB = db ;
 #ifdef DB_VERSION_MAJOR
            /* get the first value */
@@ -1483,8 +1729,8 @@ pop(db)
            DBTKEY      key ;
            DBT         value ;
 
-           DBT_flags(key) ; 
-           DBT_flags(value) ; 
+           DBT_clear(key) ; 
+           DBT_clear(value) ; 
            CurrentDB = db ;
 
            /* First get the final value */
@@ -1510,8 +1756,8 @@ shift(db)
            DBT         value ;
            DBTKEY      key ;
 
-           DBT_flags(key) ; 
-           DBT_flags(value) ; 
+           DBT_clear(key) ; 
+           DBT_clear(value) ; 
            CurrentDB = db ;
            /* get the first value */
            RETVAL = do_SEQ(db, key, value, R_FIRST) ;   
@@ -1539,45 +1785,37 @@ push(db, ...)
            DB *        Db = db->dbp ;
            int         i ;
            STRLEN      n_a;
+           int         keyval ;
 
            DBT_flags(key) ; 
            DBT_flags(value) ; 
            CurrentDB = db ;
-#ifdef DB_VERSION_MAJOR
-               RETVAL = do_SEQ(db, key, value, DB_LAST) ;
-               RETVAL = 0 ;
-               key = empty ;
-               for (i = 1 ; i < items  ; ++i)
-               {
-                   value.data = SvPV(ST(i), n_a) ;
-                   value.size = n_a ;
-                   RETVAL = (Db->put)(Db, NULL, &key, &value, DB_APPEND) ;
-                   if (RETVAL != 0)
-                       break;
-               }
-#else          
-           
            /* Set the Cursor to the Last element */
            RETVAL = do_SEQ(db, key, value, R_LAST) ;
+#ifndef DB_VERSION_MAJOR                                   
            if (RETVAL >= 0)
+#endif     
            {
-               if (RETVAL == 1)
-                   key = empty ;
-               for (i = items - 1 ; i > 0 ; --i)
+               if (RETVAL == 0)
+                   keyval = *(int*)key.data ;
+               else
+                   keyval = 0 ;
+               for (i = 1 ; i < items ; ++i)
                {
                    value.data = SvPV(ST(i), n_a) ;
                    value.size = n_a ;
-                   RETVAL = (Db->put)(Db, &key, &value, R_IAFTER) ;
+                   ++ keyval ;
+                   key.data = &keyval ;
+                   key.size = sizeof(int) ;
+                   RETVAL = (Db->put)(Db, TXN &key, &value, 0) ;
                    if (RETVAL != 0)
                        break;
                }
            }
-#endif
        }
        OUTPUT:
            RETVAL
 
-
 I32
 length(db)
        DB_File         db
@@ -1619,7 +1857,7 @@ db_get(db, key, value, flags=0)
        u_int           flags
        CODE:
          CurrentDB = db ;
-         DBT_flags(value) ; 
+         DBT_clear(value) ; 
          RETVAL = db_get(db, key, value, flags) ;
 #ifdef DB_VERSION_MAJOR
          if (RETVAL > 0)
@@ -1694,7 +1932,7 @@ db_seq(db, key, value, flags)
        u_int           flags
        CODE:
          CurrentDB = db ;
-         DBT_flags(value) ; 
+         DBT_clear(value) ; 
          RETVAL = db_seq(db, key, value, flags);
 #ifdef DB_VERSION_MAJOR
          if (RETVAL > 0)
index 1a13e0b..a247924 100644 (file)
@@ -14,7 +14,15 @@ WriteMakefile(
         MAN3PODS        => {},         # Pods will be built by installman.
        #INC            => '-I/usr/local/include',
        VERSION_FROM    => 'DB_File.pm',
+       OBJECT          => 'version$(OBJ_EXT) DB_File$(OBJ_EXT)',
        XSPROTOARG      => '-noprototypes',
        DEFINE          => "$OS2",
        );
 
+sub MY::postamble {
+      '
+version$(OBJ_EXT):     version.c
+
+' ;
+}
+
index 24a7944..701ac61 100644 (file)
@@ -4,8 +4,8 @@
 #                        a database file
 #
 # Author:      Paul Marquess  <Paul.Marquess@btinternet.com>
-# Version:     1.01 
-# Date         16th April 1998
+# Version:     1.02 
+# Date         20th August 1999
 #
 #     Copyright (c) 1998 Paul Marquess. All rights reserved.
 #     This program is free software; you can redistribute it and/or
@@ -19,7 +19,7 @@ use strict ;
 my %Data =
        (
        0x053162 =>     {
-                         Type  => "Btree",
+                         Type     => "Btree",
                          Versions => 
                                {
                                  1     => "Unknown (older than 1.71)",
@@ -27,18 +27,27 @@ my %Data =
                                  3     => "1.71 -> 1.85, 1.86",
                                  4     => "Unknown",
                                  5     => "2.0.0 -> 2.3.0",
-                                 6     => "2.3.1 or greater",
+                                 6     => "2.3.1 -> 2.7.7",
+                                 7     => "3.0.0 or greater",
                                }
                        },
        0x061561 =>     {
-                         Type => "Hash",
+                         Type     => "Hash",
                          Versions =>
                                {
                                  1     => "Unknown (older than 1.71)",
                                  2     => "1.71 -> 1.85",
                                  3     => "1.86",
                                  4     => "2.0.0 -> 2.1.0",
-                                 5     => "2.2.6 or greater",
+                                 5     => "2.2.6 -> 2.7.7",
+                                 6     => "3.0.0 or greater",
+                               }
+                       },
+       0x042253 =>     {
+                         Type     => "Queue",
+                         Versions =>
+                               {
+                                 1     => "3.0.0 or greater",
                                }
                        },
        ) ;
index a614cc4..41a24f4 100644 (file)
@@ -1,8 +1,8 @@
 # typemap for Perl 5 interface to Berkeley 
 #
 # written by Paul Marquess <Paul.Marquess@btinternet.com>
-# last modified 6th June 1999
-# version 1.67
+# last modified 7th September 1999
+# version 1.71
 #
 #################################### DB SECTION
 #
@@ -16,22 +16,21 @@ DBTKEY                      T_dbtkeydatum
 INPUT
 T_dbtkeydatum
        ckFilter($arg, filter_store_key, \"filter_store_key\");
+       DBT_clear($var) ;
        if (db->type != DB_RECNO) {
            $var.data = SvPV($arg, PL_na);
            $var.size = (int)PL_na;
-           DBT_flags($var);
        }
        else {
            Value =  GetRecnoKey(aTHX_ db, SvIV($arg)) ; 
            $var.data = & Value; 
            $var.size = (int)sizeof(recno_t);
-           DBT_flags($var);
        }
 T_dbtdatum
        ckFilter($arg, filter_store_value, \"filter_store_value\");
+       DBT_clear($var) ;
        $var.data = SvPV($arg, PL_na);
        $var.size = (int)PL_na;
-       DBT_flags($var);
 
 
 OUTPUT
diff --git a/ext/DB_File/version.c b/ext/DB_File/version.c
new file mode 100644 (file)
index 0000000..23c96a6
--- /dev/null
@@ -0,0 +1,70 @@
+/* 
+
+ version.c -- Perl 5 interface to Berkeley DB 
+
+ written by Paul Marquess <Paul.Marquess@btinternet.com>
+ last modified 7th September 1999
+ version 1.71
+
+ All comments/suggestions/problems are welcome
+
+     Copyright (c) 1995-9 Paul Marquess. All rights reserved.
+     This program is free software; you can redistribute it and/or
+     modify it under the same terms as Perl itself.
+
+ Changes:
+        1.71 -  Support for Berkeley DB version 3.
+               Support for Berkeley DB 2/3's backward compatability mode.
+
+*/
+
+#include "EXTERN.h"  
+#include "perl.h"
+#include "XSUB.h"
+
+#include <db.h>
+
+void
+__getBerkeleyDBInfo()
+{
+    SV * version_sv = perl_get_sv("DB_File::db_version", GV_ADD|GV_ADDMULTI) ;
+    SV * ver_sv = perl_get_sv("DB_File::db_ver", GV_ADD|GV_ADDMULTI) ;
+    SV * compat_sv = perl_get_sv("DB_File::db_185_compat", GV_ADD|GV_ADDMULTI) ;
+
+#ifdef DB_VERSION_MAJOR
+    int Major, Minor, Patch ;
+
+    (void)db_version(&Major, &Minor, &Patch) ;
+
+    /* Check that the versions of db.h and libdb.a are the same */
+    if (Major != DB_VERSION_MAJOR || Minor != DB_VERSION_MINOR 
+               || Patch != DB_VERSION_PATCH)
+       croak("\nDB_File needs compatible versions of libdb & db.h\n\tyou have db.h version %d.%d.%d and libdb version %d.%d.%d\n",  
+               DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH, 
+               Major, Minor, Patch) ;
+    
+    /* check that libdb is recent enough  -- we need 2.3.4 or greater */
+    if (Major == 2 && (Minor < 3 || (Minor ==  3 && Patch < 4)))
+       croak("DB_File needs Berkeley DB 2.3.4 or greater, you have %d.%d.%d\n",
+                Major, Minor, Patch) ;
+    {
+        char buffer[40] ;
+        sprintf(buffer, "%d.%d", Major, Minor) ;
+        sv_setpv(version_sv, buffer) ; 
+        sprintf(buffer, "%d.%03d%03d", Major, Minor, Patch) ;
+        sv_setpv(ver_sv, buffer) ; 
+    }
+#else /* ! DB_VERSION_MAJOR */
+    sv_setiv(version_sv, 1) ;
+    sv_setiv(ver_sv, 1) ;
+#endif /* ! DB_VERSION_MAJOR */
+
+#ifdef COMPAT185
+    sv_setiv(compat_sv, 1) ;
+#else /* ! COMPAT185 */
+    sv_setiv(compat_sv, 0) ;
+#endif /* ! COMPAT185 */
+
+}
index 62a0c9e..69f0b89 100644 (file)
@@ -292,7 +292,7 @@ prof_mark( opcode ptype )
            static U32 lastid;
            CV *cv;
 
-           cv = (CV*)PTR_CAST SvIVX(Sub);
+           cv = INT2PTR(CV*,SvIVX(Sub));
            svp = hv_fetch(cv_hash, (char*)&cv, sizeof(CV*), TRUE);
            if (!SvOK(*svp)) {
                GV *gv = CvGV(cv);
@@ -568,7 +568,7 @@ XS(XS_DB_sub)
         PUSHMARK( ORIGMARK );
 
 #ifdef G_NODEBUG
-        perl_call_sv( (SV*)PTR_CAST SvIV(Sub), GIMME | G_NODEBUG);
+        perl_call_sv( INT2PTR(SV*,SvIV(Sub)), GIMME | G_NODEBUG);
 #else
         curstash = debstash;    /* To disable debugging of perl_call_sv */
 #ifdef PERLDBf_NONAME
index 3e30698..3ce720b 100644 (file)
@@ -179,7 +179,7 @@ sub bootstrap {
     # The .bs file can be used to configure @dl_resolve_using etc to
     # match the needs of the individual module on this architecture.
     my $bs = $file;
-    $bs =~ s/(\.\w+)?$/\.bs/; # look for .bs 'beside' the library
+    $bs =~ s/(\.\w+)?(;\d*)?$/\.bs/; # look for .bs 'beside' the library
     if (-s $bs) { # only read file if it's not empty
         print STDERR "BS: $bs ($^O, $dlsrc)\n" if $dl_debug;
         eval { do $bs; };
index 877b285..96bce4e 100644 (file)
@@ -590,7 +590,7 @@ dl_load_file(filename, flags=0)
        if (RETVAL == NULL)
            SaveError(aTHX_ "%s",dlerror()) ;
        else
-           sv_setiv( ST(0), (IV)RETVAL);
+           sv_setiv( ST(0), PTR2IV(RETVAL) );
 
 
 void *
@@ -606,7 +606,7 @@ dl_find_symbol(libhandle, symbolname)
        if (RETVAL == NULL)
            SaveError(aTHX_ "%s",dlerror()) ;
        else
-           sv_setiv( ST(0), (IV)RETVAL);
+           sv_setiv( ST(0), PTR2IV(RETVAL));
 
 
 void
index 1bd16a6..c26824e 100644 (file)
@@ -54,7 +54,7 @@ dl_load_file(filename, flags=0)
        PerlIO_printf(PerlIO_stderr(), "load_add_on(%s) : %d (%s)\n", path, bogo, strerror(bogo));
     } else {
        RETVAL = (void *) bogo;
-       sv_setiv( ST(0), (IV)RETVAL);
+       sv_setiv( ST(0), PTR2IV(RETVAL) );
     }
     free(path);
 }
@@ -83,7 +83,7 @@ dl_find_symbol(libhandle, symbolname)
        SaveError(aTHX_ "%s", strerror(retcode)) ;
        PerlIO_printf(PerlIO_stderr(), "retcode = %p (%s)\n", retcode, strerror(retcode));
     } else
-       sv_setiv( ST(0), (IV)RETVAL);
+       sv_setiv( ST(0), PTR2IV(RETVAL));
 
 
 void
index 0054afa..7f74cdd 100644 (file)
@@ -95,7 +95,7 @@ dl_load_file(filename,flags=0)
     if (RETVAL == NULL){
        SaveError(aTHX_ "%d",GetLastError()) ;
     } else {
-       sv_setiv( ST(0), (IV)RETVAL);
+       sv_setiv( ST(0), PTR2IV(RETVAL) );
     }
    }
        
@@ -114,7 +114,7 @@ dl_find_symbol(libhandle, symbolname)
     if (RETVAL == NULL)
        SaveError(aTHX_ "%d",GetLastError()) ;
     else
-       sv_setiv( ST(0), (IV)RETVAL);
+       sv_setiv( ST(0), PTR2IV(RETVAL));
 
 
 void
index 1ddc443..d427efa 100644 (file)
@@ -118,7 +118,7 @@ dl_load_file(filename, flags=0)
 haverror:
     ST(0) = sv_newmortal() ;
     if (dlderr == 0)
-       sv_setiv(ST(0), (IV)RETVAL);
+       sv_setiv(ST(0), PTR2IV(RETVAL));
 
 
 void *
@@ -135,7 +135,7 @@ dl_find_symbol(libhandle, symbolname)
     if (RETVAL == NULL)
        SaveError(aTHX_ "dl_find_symbol: Unable to find '%s' symbol", symbolname) ;
     else
-       sv_setiv(ST(0), (IV)RETVAL);
+       sv_setiv(ST(0), PTR2IV(RETVAL));
 
 
 void
index a4dcfb4..641db33 100644 (file)
@@ -166,7 +166,7 @@ dl_load_file(filename, flags=0)
     if (RETVAL == NULL)
        SaveError(aTHX_ "%s",dlerror()) ;
     else
-       sv_setiv( ST(0), (IV)PTR_CAST RETVAL);
+       sv_setiv( ST(0), PTR2IV(RETVAL));
 
 
 void *
@@ -187,7 +187,7 @@ dl_find_symbol(libhandle, symbolname)
     if (RETVAL == NULL)
        SaveError(aTHX_ "%s",dlerror()) ;
     else
-       sv_setiv( ST(0), (IV)PTR_CAST RETVAL);
+       sv_setiv( ST(0), PTR2IV(RETVAL));
 
 
 void
index ce45459..180679f 100644 (file)
@@ -92,7 +92,7 @@ end:
     if (obj == NULL)
         SaveError(aTHX_ "%s",Strerror(errno));
     else
-        sv_setiv( ST(0), (IV)obj);
+        sv_setiv( ST(0), PTR2IV(obj) );
 
 
 void *
@@ -124,7 +124,7 @@ dl_find_symbol(libhandle, symbolname)
     if (status == -1) {
        SaveError(aTHX_ "%s",(errno) ? Strerror(errno) : "Symbol not found") ;
     } else {
-       sv_setiv( ST(0), (IV)symaddr);
+       sv_setiv( ST(0), PTR2IV(symaddr) );
     }
 
 
index 4c5d176..913e259 100644 (file)
@@ -74,7 +74,7 @@ flags));
     if (obj == NULL)
         SaveError(aTHX_"%s",Strerror(errno));
     else
-        sv_setiv( ST(0), (IV)obj);
+        sv_setiv( ST(0), PTR2IV(obj) );
 
 void *
 dl_find_symbol(libhandle, symbolname)
@@ -100,7 +100,7 @@ dl_find_symbol(libhandle, symbolname)
     if (status != 0) {
         SaveError(aTHX_"%s",(errno) ? Strerror(errno) : "Symbol not found") ;
     } else {
-        sv_setiv( ST(0), (IV)symaddr);
+        sv_setiv( ST(0), PTR2IV(symaddr) );
     }
 
 void
index ec01d60..54d4be0 100644 (file)
@@ -252,7 +252,7 @@ dl_load_file(filename, flags=0)
     if (RETVAL == NULL)
        SaveError(aTHX_ "%s",dlerror()) ;
     else
-       sv_setiv( ST(0), (IV)RETVAL);
+       sv_setiv( ST(0), PTR2IV(RETVAL) );
 
 
 void *
@@ -273,7 +273,7 @@ dl_find_symbol(libhandle, symbolname)
     if (RETVAL == NULL)
        SaveError(aTHX_ "%s",dlerror()) ;
     else
-       sv_setiv( ST(0), (IV)RETVAL);
+       sv_setiv( ST(0), PTR2IV(RETVAL) );
 
 
 void
index 223d7f6..a56452e 100644 (file)
@@ -166,7 +166,7 @@ dl_load_file(filename, flags=0)
     if (RETVAL == NULL)
        SaveError(aTHX_ "%s",dlerror()) ;
     else
-       sv_setiv( ST(0), (IV)RETVAL);
+       sv_setiv( ST(0), PTR2IV(RETVAL) );
 
 
 void *
@@ -185,7 +185,7 @@ dl_find_symbol(libhandle, symbolname)
     if (RETVAL == NULL)
        SaveError(aTHX_ "%s",dlerror()) ;
     else
-       sv_setiv( ST(0), (IV)RETVAL);
+       sv_setiv( ST(0), PTR2IV(RETVAL) );
 
 
 void
index ff1b60b..9e4908c 100644 (file)
@@ -123,7 +123,7 @@ dl_load_file(filename, flags=0)
     if (RETVAL == NULL)
        SaveError(aTHX_ "%s",dlerror()) ;
     else
-       sv_setiv( ST(0), (IV)RETVAL);
+       sv_setiv( ST(0), PTR2IV(RETVAL) );
  
  
 void *
@@ -141,7 +141,7 @@ dl_find_symbol(libhandle, symbolname)
     if (RETVAL == NULL)
        SaveError(aTHX_ "%s",dlerror()) ;
     else
-       sv_setiv( ST(0), (IV)RETVAL);
+       sv_setiv( ST(0), PTR2IV(RETVAL) );
  
  
 void
index 1024c41..409d586 100644 (file)
@@ -301,7 +301,7 @@ dl_load_file(filespec, flags)
       ST(0) = &PL_sv_undef;
     }
     else {
-      ST(0) = sv_2mortal(newSViv((IV) dlptr));
+      ST(0) = sv_2mortal(newSViv(PTR2IV(dlptr)));
     }
 
 
@@ -328,7 +328,7 @@ dl_find_symbol(librefptr,symname)
       /* error message already saved by findsym_handler */
       ST(0) = &PL_sv_undef;
     }
-    else ST(0) = sv_2mortal(newSViv((IV) entry));
+    else ST(0) = sv_2mortal(newSViv(PTR2IV(entry)));
 
 
 void
index bb2eb47..7601c34 100644 (file)
@@ -111,7 +111,7 @@ odbm_TIEHASH(dbtype, filename, flags, mode)
            Zero(RETVAL, 1, ODBM_File_type) ;
            RETVAL->dbp = dbp ;
            ST(0) = sv_mortalcopy(&PL_sv_undef);
-           sv_setptrobj(ST(0), PTR_CAST RETVAL, dbtype);
+           sv_setptrobj(ST(0), RETVAL, dbtype);
        }
 
 void
index 2d09c2e..00ee85d 100644 (file)
@@ -235,7 +235,7 @@ sub rdo {
 
 1;
 
-__DATA__
+__END__
 
 =head1 NAME
 
index 0f09aac..16217f0 100644 (file)
@@ -3246,7 +3246,7 @@ sigaction(sig, action, oldaction = 0)
                }
                else {
                    New(0, sigset, 1, sigset_t);
-                   sv_setptrobj(*svp, PTR_CAST sigset, "POSIX::SigSet");
+                   sv_setptrobj(*svp, sigset, "POSIX::SigSet");
                }
                *sigset = oact.sa_mask;
 
@@ -3274,7 +3274,7 @@ INIT:
        }
        else if (sv_derived_from(ST(2), "POSIX::SigSet")) {
            IV tmp = SvIV((SV*)SvRV(ST(2)));
-           oldsigset = (POSIX__SigSet)PTR_CAST tmp;
+           oldsigset = INT2PTR(POSIX__SigSet,tmp);
        }
        else {
            New(0, oldsigset, 1, sigset_t);
index cab48b4..2881385 100644 (file)
@@ -245,7 +245,6 @@ EOM
                archname64="-n32"
                ;;
            esac
-           ccflags="$ccflags -DUSE_64_BITS"
            ;;
 esac
 EOCBU
index ab0203b..7ffd73f 100644 (file)
@@ -14,3 +14,5 @@ case "$usemymalloc" in
     usemymalloc='n'
     ;;
 esac
+# Configure gets fooled for some reason.  There is no getpgid().
+d_getpgid='undef'
index a291d39..669e6f9 100644 (file)
@@ -353,8 +353,6 @@ PERLVAR(Iyyval,             YYSTYPE)
 PERLVAR(Iyylval,       YYSTYPE)
 
 PERLVAR(Iglob_index,   int)
-PERLVAR(Iefloatbuf,    char*)
-PERLVAR(Iefloatsize,   STRLEN)
 PERLVAR(Isrand_called, bool)
 PERLVARA(Iuudmap,256,  char)
 PERLVAR(Ibitcount,     char *)
diff --git a/jpl/JNI/Closer.java b/jpl/JNI/Closer.java
new file mode 100755 (executable)
index 0000000..9344055
--- /dev/null
@@ -0,0 +1,9 @@
+import java.awt.event.*;
+import java.awt.*;
+public class Closer extends WindowAdapter {
+
+    public void windowClosing(WindowEvent e) {
+        Window w = e.getWindow();
+        w.dispose();
+    }
+}
index ad28a9a..edbc1e6 100644 (file)
@@ -198,7 +198,7 @@ sub AUTOLOAD {
     ($constname = $AUTOLOAD) =~ s/.*:://;
     my $val = constant($constname, @_ ? $_[0] : 0);
     if ($! != 0) {
-       if ($! =~ /Invalid/ || $!{EINVAL}) {
+       if ($! =~ /Invalid/) {
            $AutoLoader::AUTOLOAD = $AUTOLOAD;
            goto &AutoLoader::AUTOLOAD;
        }
@@ -215,22 +215,45 @@ bootstrap JNI $VERSION;
 if (not $JPL::_env_) {
     $ENV{JAVA_HOME} ||= "/usr/local/java";
 
-    chop(my $arch = `uname -p`);
-    chop($arch = `uname -m`) unless -d "$ENV{JAVA_HOME}/lib/$arch";
+    my ($arch, @CLASSPATH);
+    if ($^O eq 'MSWin32') {
 
-    my @CLASSPATH = split(/:/, $ENV{CLASSPATH});
-    @CLASSPATH = "." unless @CLASSPATH;
-    push @CLASSPATH,
-       "$ENV{JAVA_HOME}/classes",
-       "$ENV{JAVA_HOME}/lib/classes.zip";
-    $ENV{CLASSPATH} = join(':', @CLASSPATH);
+        $arch = 'MSWin32' unless -d "$ENV{JAVA_HOME}/lib/$arch";
+        @CLASSPATH = split(/;/, $ENV{CLASSPATH});
+        @CLASSPATH = "." unless @CLASSPATH;
+        push @CLASSPATH,
+           "$ENV{JAVA_HOME}\\classes",
+           "$ENV{JAVA_HOME}\\lib\\classes.zip";
 
-    $ENV{THREADS_TYPE} ||= "green_threads";
+        $ENV{CLASSPATH} = join(';', @CLASSPATH);
+        $ENV{THREADS_TYPE} ||= "green_threads";
 
-    $JAVALIB = "$ENV{JAVA_HOME}/lib/$arch/$ENV{THREADS_TYPE}";
-    $ENV{$Config{ldlibpthname}} .= ":$JAVALIB";
+        $JAVALIB = "$ENV{JAVA_HOME}/lib/$arch/$ENV{THREADS_TYPE}";
+        $ENV{LD_LIBRARY_PATH} .= ":$JAVALIB";
 
-    $JVM = GetJavaVM("$JAVALIB/libjava.so",@JVM_ARGS);
+        push @JVM_ARGS, "classpath", $ENV{CLASSPATH};
+        print "JVM_ARGS=@JVM_ARGS!\n";
+        $JVM = GetJavaVM("$JAVALIB/javai.dll",@JVM_ARGS);
+
+    } else {
+        chop($arch = `uname -p`);
+        chop($arch = `uname -m`) unless -d "$ENV{JAVA_HOME}/lib/$arch";
+
+        @CLASSPATH = split(/:/, $ENV{CLASSPATH});
+        @CLASSPATH = "." unless @CLASSPATH;
+        push @CLASSPATH,
+           "$ENV{JAVA_HOME}/classes",
+           "$ENV{JAVA_HOME}/lib/classes.zip";
+        $ENV{CLASSPATH} = join(':', @CLASSPATH);
+
+        $ENV{THREADS_TYPE} ||= "green_threads";
+
+        $JAVALIB = "$ENV{JAVA_HOME}/lib/$arch/$ENV{THREADS_TYPE}";
+        $ENV{LD_LIBRARY_PATH} .= ":$JAVALIB";
+        push @JVM_ARGS, "classpath", $ENV{CLASSPATH};
+        print "JVM_ARGS=@JVM_ARGS!\n";
+        $JVM = GetJavaVM("$JAVALIB/libjava.so",@JVM_ARGS);
+    }
 }
 
 1;
index ee854c1..e5e0af3 100644 (file)
@@ -8,24 +8,64 @@
 #include "perl.h"
 #include "XSUB.h"
 
-#include <perl.h>
+#include <stdio.h>
 #include <jni.h>
-#include <dlfcn.h>
 
+#ifndef PERL_VERSION
+#  include <patchlevel.h>
+#  define PERL_REVISION                5
+#  define PERL_VERSION         PATCHLEVEL
+#  define PERL_SUBVERSION      SUBVERSION
+#endif
+
+#if PERL_REVISION == 5 && (PERL_VERSION < 4 || \
+                          (PERL_VERSION == 4 && PERL_SUBVERSION <= 75))
+#  define PL_na                na
+#  define PL_sv_no     sv_no
+#  define PL_sv_undef  sv_undef
+#  define PL_dowarn    dowarn
+#endif
+
+#ifndef newSVpvn
+#  define newSVpvn(a,b)        newSVpv(a,b)
+#endif
+
+#ifndef pTHX
+#  define pTHX         void
+#  define pTHX_
+#  define aTHX
+#  define aTHX_
+#  define dTHX         extern int JNI___notused
+#endif
+
+#ifndef WIN32
+#  include <dlfcn.h>
+#endif
+
+#ifdef EMBEDDEDPERL
 extern JNIEnv* jplcurenv;
 extern int jpldebug;
+#else
+JNIEnv* jplcurenv;
+int jpldebug = 1;
+#endif
 
 #define SysRet jint
 
-static void
-call_my_exit(jint status)
+#ifdef WIN32
+static void JNICALL call_my_exit(jint status)
+{
+    my_exit(status);
+}
+#else
+static void call_my_exit(jint status)
 {
-    dTHX;
     my_exit(status);
 }
+#endif
 
 jvalue*
-makeargs(pTHX_ char *sig, SV** svp, int items)
+makeargs(char *sig, SV** svp, int items)
 {
     jvalue* jv = (jvalue*)safemalloc(sizeof(jvalue) * items);
     int ix = 0;
@@ -80,10 +120,18 @@ makeargs(pTHX_ char *sig, SV** svp, int items)
                        int i;
                        SV** esv;
 
+#ifdef WIN32
+                       jbooleanArray ja = env->NewBooleanArray(len);
+#else
                        jbooleanArray ja = (*env)->NewBooleanArray(env, len);
+#endif
                        for (esv = AvARRAY((AV*)rv), i = 0; i < len; esv++, i++)
                            buf[i] = (jboolean)SvIV(*esv);
+#ifdef WIN32
+                       env->SetBooleanArrayRegion(ja, 0, len, buf);
+#else
                        (*env)->SetBooleanArrayRegion(env, ja, 0, len, buf);
+#endif
                        free((void*)buf);
                        jv[ix++].l = (jobject)ja;
                    }
@@ -93,8 +141,16 @@ makeargs(pTHX_ char *sig, SV** svp, int items)
                else if (SvPOK(sv)) {
                    jsize len = sv_len(sv) / sizeof(jboolean);
 
+#ifdef WIN32
+                   jbooleanArray ja = env->NewBooleanArray(len);
+#else
                    jbooleanArray ja = (*env)->NewBooleanArray(env, len);
+#endif
+#ifdef WIN32
+                   env->SetBooleanArrayRegion(ja, 0, len, (jboolean*)SvPV(sv,n_a));
+#else
                    (*env)->SetBooleanArrayRegion(env, ja, 0, len, (jboolean*)SvPV(sv,n_a));
+#endif
                    jv[ix++].l = (jobject)ja;
                }
                else
@@ -111,10 +167,18 @@ makeargs(pTHX_ char *sig, SV** svp, int items)
                        int i;
                        SV** esv;
 
+#ifdef WIN32
+                       jbyteArray ja = env->NewByteArray(len);
+#else
                        jbyteArray ja = (*env)->NewByteArray(env, len);
+#endif
                        for (esv = AvARRAY((AV*)rv), i = 0; i < len; esv++, i++)
                            buf[i] = (jbyte)SvIV(*esv);
+#ifdef WIN32
+                       env->SetByteArrayRegion(ja, 0, len, buf);
+#else
                        (*env)->SetByteArrayRegion(env, ja, 0, len, buf);
+#endif
                        free((void*)buf);
                        jv[ix++].l = (jobject)ja;
                    }
@@ -124,8 +188,16 @@ makeargs(pTHX_ char *sig, SV** svp, int items)
                else if (SvPOK(sv)) {
                    jsize len = sv_len(sv) / sizeof(jbyte);
 
+#ifdef WIN32
+                   jbyteArray ja = env->NewByteArray(len);
+#else
                    jbyteArray ja = (*env)->NewByteArray(env, len);
+#endif
+#ifdef WIN32
+                   env->SetByteArrayRegion(ja, 0, len, (jbyte*)SvPV(sv,n_a));
+#else
                    (*env)->SetByteArrayRegion(env, ja, 0, len, (jbyte*)SvPV(sv,n_a));
+#endif
                    jv[ix++].l = (jobject)ja;
                }
                else
@@ -142,10 +214,18 @@ makeargs(pTHX_ char *sig, SV** svp, int items)
                        int i;
                        SV** esv;
 
+#ifdef WIN32
+                       jcharArray ja = env->NewCharArray(len);
+#else
                        jcharArray ja = (*env)->NewCharArray(env, len);
+#endif
                        for (esv = AvARRAY((AV*)rv), i = 0; i < len; esv++, i++)
                            buf[i] = (jchar)SvIV(*esv);
+#ifdef WIN32
+                       env->SetCharArrayRegion(ja, 0, len, buf);
+#else
                        (*env)->SetCharArrayRegion(env, ja, 0, len, buf);
+#endif
                        free((void*)buf);
                        jv[ix++].l = (jobject)ja;
                    }
@@ -155,8 +235,16 @@ makeargs(pTHX_ char *sig, SV** svp, int items)
                else if (SvPOK(sv)) {
                    jsize len = sv_len(sv) / sizeof(jchar);
 
+#ifdef WIN32
+                   jcharArray ja = env->NewCharArray(len);
+#else
                    jcharArray ja = (*env)->NewCharArray(env, len);
+#endif
+#ifdef WIN32
+                   env->SetCharArrayRegion(ja, 0, len, (jchar*)SvPV(sv,n_a));
+#else
                    (*env)->SetCharArrayRegion(env, ja, 0, len, (jchar*)SvPV(sv,n_a));
+#endif
                    jv[ix++].l = (jobject)ja;
                }
                else
@@ -173,10 +261,18 @@ makeargs(pTHX_ char *sig, SV** svp, int items)
                        int i;
                        SV** esv;
 
+#ifdef WIN32
+                       jshortArray ja = env->NewShortArray(len);
+#else
                        jshortArray ja = (*env)->NewShortArray(env, len);
+#endif
                        for (esv = AvARRAY((AV*)rv), i = 0; i < len; esv++, i++)
                            buf[i] = (jshort)SvIV(*esv);
+#ifdef WIN32
+                       env->SetShortArrayRegion(ja, 0, len, buf);
+#else
                        (*env)->SetShortArrayRegion(env, ja, 0, len, buf);
+#endif
                        free((void*)buf);
                        jv[ix++].l = (jobject)ja;
                    }
@@ -186,8 +282,16 @@ makeargs(pTHX_ char *sig, SV** svp, int items)
                else if (SvPOK(sv)) {
                    jsize len = sv_len(sv) / sizeof(jshort);
 
+#ifdef WIN32
+                   jshortArray ja = env->NewShortArray(len);
+#else
                    jshortArray ja = (*env)->NewShortArray(env, len);
+#endif
+#ifdef WIN32
+                   env->SetShortArrayRegion(ja, 0, len, (jshort*)SvPV(sv,n_a));
+#else
                    (*env)->SetShortArrayRegion(env, ja, 0, len, (jshort*)SvPV(sv,n_a));
+#endif
                    jv[ix++].l = (jobject)ja;
                }
                else
@@ -204,10 +308,18 @@ makeargs(pTHX_ char *sig, SV** svp, int items)
                        int i;
                        SV** esv;
 
+#ifdef WIN32
+                       jintArray ja = env->NewIntArray(len);
+#else
                        jintArray ja = (*env)->NewIntArray(env, len);
+#endif
                        for (esv = AvARRAY((AV*)rv), i = 0; i < len; esv++, i++)
                            buf[i] = (jint)SvIV(*esv);
+#ifdef WIN32
+                       env->SetIntArrayRegion(ja, 0, len, buf);
+#else
                        (*env)->SetIntArrayRegion(env, ja, 0, len, buf);
+#endif
                        free((void*)buf);
                        jv[ix++].l = (jobject)ja;
                    }
@@ -217,8 +329,16 @@ makeargs(pTHX_ char *sig, SV** svp, int items)
                else if (SvPOK(sv)) {
                    jsize len = sv_len(sv) / sizeof(jint);
 
+#ifdef WIN32
+                   jintArray ja = env->NewIntArray(len);
+#else
                    jintArray ja = (*env)->NewIntArray(env, len);
+#endif
+#ifdef WIN32
+                   env->SetIntArrayRegion(ja, 0, len, (jint*)SvPV(sv,n_a));
+#else
                    (*env)->SetIntArrayRegion(env, ja, 0, len, (jint*)SvPV(sv,n_a));
+#endif
                    jv[ix++].l = (jobject)ja;
                }
                else
@@ -235,10 +355,18 @@ makeargs(pTHX_ char *sig, SV** svp, int items)
                        int i;
                        SV** esv;
 
+#ifdef WIN32
+                       jlongArray ja = env->NewLongArray(len);
+#else
                        jlongArray ja = (*env)->NewLongArray(env, len);
+#endif
                        for (esv = AvARRAY((AV*)rv), i = 0; i < len; esv++, i++)
                            buf[i] = (jlong)SvNV(*esv);
+#ifdef WIN32
+                       env->SetLongArrayRegion(ja, 0, len, buf);
+#else
                        (*env)->SetLongArrayRegion(env, ja, 0, len, buf);
+#endif
                        free((void*)buf);
                        jv[ix++].l = (jobject)ja;
                    }
@@ -248,8 +376,16 @@ makeargs(pTHX_ char *sig, SV** svp, int items)
                else if (SvPOK(sv)) {
                    jsize len = sv_len(sv) / sizeof(jlong);
 
+#ifdef WIN32
+                   jlongArray ja = env->NewLongArray(len);
+#else
                    jlongArray ja = (*env)->NewLongArray(env, len);
+#endif
+#ifdef WIN32
+                   env->SetLongArrayRegion(ja, 0, len, (jlong*)SvPV(sv,n_a));
+#else
                    (*env)->SetLongArrayRegion(env, ja, 0, len, (jlong*)SvPV(sv,n_a));
+#endif
                    jv[ix++].l = (jobject)ja;
                }
                else
@@ -266,10 +402,18 @@ makeargs(pTHX_ char *sig, SV** svp, int items)
                        int i;
                        SV** esv;
 
+#ifdef WIN32
+                       jfloatArray ja = env->NewFloatArray(len);
+#else
                        jfloatArray ja = (*env)->NewFloatArray(env, len);
+#endif
                        for (esv = AvARRAY((AV*)rv), i = 0; i < len; esv++, i++)
                            buf[i] = (jfloat)SvNV(*esv);
+#ifdef WIN32
+                       env->SetFloatArrayRegion(ja, 0, len, buf);
+#else
                        (*env)->SetFloatArrayRegion(env, ja, 0, len, buf);
+#endif
                        free((void*)buf);
                        jv[ix++].l = (jobject)ja;
                    }
@@ -279,8 +423,16 @@ makeargs(pTHX_ char *sig, SV** svp, int items)
                else if (SvPOK(sv)) {
                    jsize len = sv_len(sv) / sizeof(jfloat);
 
+#ifdef WIN32
+                   jfloatArray ja = env->NewFloatArray(len);
+#else
                    jfloatArray ja = (*env)->NewFloatArray(env, len);
+#endif
+#ifdef WIN32
+                   env->SetFloatArrayRegion(ja, 0, len, (jfloat*)SvPV(sv,n_a));
+#else
                    (*env)->SetFloatArrayRegion(env, ja, 0, len, (jfloat*)SvPV(sv,n_a));
+#endif
                    jv[ix++].l = (jobject)ja;
                }
                else
@@ -297,10 +449,18 @@ makeargs(pTHX_ char *sig, SV** svp, int items)
                        int i;
                        SV** esv;
 
+#ifdef WIN32
+                       jdoubleArray ja = env->NewDoubleArray(len);
+#else
                        jdoubleArray ja = (*env)->NewDoubleArray(env, len);
+#endif
                        for (esv = AvARRAY((AV*)rv), i = 0; i < len; esv++, i++)
                            buf[i] = (jdouble)SvNV(*esv);
+#ifdef WIN32
+                       env->SetDoubleArrayRegion(ja, 0, len, buf);
+#else
                        (*env)->SetDoubleArrayRegion(env, ja, 0, len, buf);
+#endif
                        free((void*)buf);
                        jv[ix++].l = (jobject)ja;
                    }
@@ -310,8 +470,16 @@ makeargs(pTHX_ char *sig, SV** svp, int items)
                else if (SvPOK(sv)) {
                    jsize len = sv_len(sv) / sizeof(jdouble);
 
+#ifdef WIN32
+                   jdoubleArray ja = env->NewDoubleArray(len);
+#else
                    jdoubleArray ja = (*env)->NewDoubleArray(env, len);
+#endif
+#ifdef WIN32
+                   env->SetDoubleArrayRegion(ja, 0, len, (jdouble*)SvPV(sv,n_a));
+#else
                    (*env)->SetDoubleArrayRegion(env, ja, 0, len, (jdouble*)SvPV(sv,n_a));
+#endif
                    jv[ix++].l = (jobject)ja;
                }
                else
@@ -330,14 +498,30 @@ makeargs(pTHX_ char *sig, SV** svp, int items)
                            int i;
                            SV** esv;
                            static jclass jcl = 0;
-                           jarray ja;
+                           jobjectArray ja;
 
                            if (!jcl)
+#ifdef WIN32
+                               jcl = env->FindClass("java/lang/String");
+#else
                                jcl = (*env)->FindClass(env, "java/lang/String");
+#endif
+#ifdef WIN32
+                           ja = env->NewObjectArray(len, jcl, 0);
+#else
                            ja = (*env)->NewObjectArray(env, len, jcl, 0);
+#endif
                            for (esv = AvARRAY((AV*)rv), i = 0; i < len; esv++, i++) {
+#ifdef WIN32
+                               jobject str = (jobject)env->NewStringUTF(SvPV(*esv,n_a));
+#else
                                jobject str = (jobject)(*env)->NewStringUTF(env, SvPV(*esv,n_a));
+#endif
+#ifdef WIN32
+                               env->SetObjectArrayElement(ja, i, str);
+#else
                                (*env)->SetObjectArrayElement(env, ja, i, str);
+#endif
                            }
                            jv[ix++].l = (jobject)ja;
                        }
@@ -359,20 +543,38 @@ makeargs(pTHX_ char *sig, SV** svp, int items)
                        int i;
                        SV** esv;
                       static jclass jcl = 0;
-                       jarray ja;
+                       jobjectArray ja;
 
                        if (!jcl)
+#ifdef WIN32
+                           jcl = env->FindClass("java/lang/Object");
+#else
                            jcl = (*env)->FindClass(env, "java/lang/Object");
+#endif
+#ifdef WIN32
+                       ja = env->NewObjectArray(len, jcl, 0);
+#else
                        ja = (*env)->NewObjectArray(env, len, jcl, 0);
+#endif
                        for (esv = AvARRAY((AV*)rv), i = 0; i < len; esv++, i++) {
                            if (SvROK(*esv) && (rv = SvRV(*esv)) && SvOBJECT(rv)) {
-                               (*env)->SetObjectArrayElement(env, ja, i,
-                                   (jobject)(void*)SvIV(rv));
+#ifdef WIN32
+                               env->SetObjectArrayElement(ja, i, (jobject)(void*)SvIV(rv));
+#else
+                               (*env)->SetObjectArrayElement(env, ja, i, (jobject)(void*)SvIV(rv));
+#endif
                            }
                            else {
-                               jobject str = (jobject)(*env)->NewStringUTF(env,
-                                   SvPV(*esv,n_a));
+#ifdef WIN32
+                               jobject str = (jobject)env->NewStringUTF(SvPV(*esv,n_a));
+#else
+                               jobject str = (jobject)(*env)->NewStringUTF(env, SvPV(*esv,n_a));
+#endif
+#ifdef WIN32
+                               env->SetObjectArrayElement(ja, i, str);
+#else
                                (*env)->SetObjectArrayElement(env, ja, i, str);
+#endif
                            }
                        }
                        jv[ix++].l = (jobject)ja;
@@ -388,8 +590,11 @@ makeargs(pTHX_ char *sig, SV** svp, int items)
        case 'L':
            if (!SvROK(sv) || strnEQ(s, "java/lang/String;", 17)) {
                s += 17;
-               jv[ix++].l = (jobject)(*env)->NewStringUTF(env,
-                               (char*) SvPV(sv,n_a));
+#ifdef WIN32
+               jv[ix++].l = (jobject)env->NewStringUTF((char*) SvPV(sv,n_a));
+#else
+               jv[ix++].l = (jobject)(*env)->NewStringUTF(env, (char*) SvPV(sv,n_a));
+#endif
                break;
            }
            while (*s != ';') s++;
@@ -400,16 +605,16 @@ makeargs(pTHX_ char *sig, SV** svp, int items)
            }
            break;
        case ')':
-           Perl_croak(aTHX_ "too many arguments, signature: %s", sig);
+           croak("too many arguments, signature: %s", sig);
            goto cleanup;
        default:
-           Perl_croak(aTHX_ "panic: malformed signature: %s", s-1);
+           croak("panic: malformed signature: %s", s-1);
            goto cleanup;
        }
 
     }
     if (*s != ')') {
-       Perl_croak(aTHX_ "not enough arguments, signature: %s", sig);
+       croak("not enough arguments, signature: %s", sig);
        goto cleanup;
     }
     return jv;
@@ -420,9 +625,9 @@ cleanup:
 }
 
 static int
-not_here(pTHX_ char *s)
+not_here(char *s)
 {
-    Perl_croak(aTHX_ "%s not implemented on this architecture", s);
+    croak("%s not implemented on this architecture", s);
     return -1;
 }
 
@@ -476,7 +681,11 @@ constant(char *name, int arg)
 #endif
        if (strEQ(name, "JNI_H"))
 #ifdef JNI_H
+#ifdef WIN32
+           return 1;
+#else
            return JNI_H;
+#endif
 #else
            goto not_there;
 #endif
@@ -551,7 +760,11 @@ GetVersion()
        JNIEnv *                env = FETCHENV;
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetVersion();
+#else
            RETVAL = (*env)->GetVersion(env);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -567,7 +780,19 @@ DefineClass(name, loader, buf)
        const jbyte *           buf
     CODE:
        {
-           RETVAL = (*env)->DefineClass(env,  name, loader, buf, (jsize)buf_len_);
+#ifdef KAFFE
+#ifdef WIN32
+           RETVAL = env->DefineClass( loader, buf, (jsize)buf_len_);
+#else
+           RETVAL = (*env)->DefineClass(env,  loader, buf, (jsize)buf_len_);
+#endif
+#else
+#ifdef WIN32
+           RETVAL = env->DefineClass( name, loader, buf, (jsize)buf_len_); 
+#else
+           RETVAL = (*env)->DefineClass(env,  name, loader, buf, (jsize)buf_len_); 
+#endif
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -579,7 +804,11 @@ FindClass(name)
        const char *            name
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->FindClass( name);
+#else
            RETVAL = (*env)->FindClass(env,  name);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -591,7 +820,11 @@ GetSuperclass(sub)
        jclass                  sub
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetSuperclass( sub);
+#else
            RETVAL = (*env)->GetSuperclass(env,  sub);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -604,7 +837,11 @@ IsAssignableFrom(sub, sup)
        jclass                  sup
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->IsAssignableFrom( sub, sup);
+#else
            RETVAL = (*env)->IsAssignableFrom(env,  sub, sup);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -616,7 +853,11 @@ Throw(obj)
        jthrowable              obj
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->Throw( obj);
+#else
            RETVAL = (*env)->Throw(env,  obj);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -629,7 +870,11 @@ ThrowNew(clazz, msg)
        const char *            msg
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->ThrowNew( clazz, msg);
+#else
            RETVAL = (*env)->ThrowNew(env,  clazz, msg);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -640,7 +885,11 @@ ExceptionOccurred()
        JNIEnv *                env = FETCHENV;
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->ExceptionOccurred();
+#else
            RETVAL = (*env)->ExceptionOccurred(env);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -651,7 +900,11 @@ ExceptionDescribe()
        JNIEnv *                env = FETCHENV;
     CODE:
        {
+#ifdef WIN32
+           env->ExceptionDescribe();
+#else
            (*env)->ExceptionDescribe(env);
+#endif
            RESTOREENV;
        }
 
@@ -660,7 +913,11 @@ ExceptionClear()
        JNIEnv *                env = FETCHENV;
     CODE:
        {
+#ifdef WIN32
+           env->ExceptionClear();
+#else
            (*env)->ExceptionClear(env);
+#endif
            RESTOREENV;
        }
 
@@ -670,7 +927,11 @@ FatalError(msg)
        const char *            msg
     CODE:
        {
+#ifdef WIN32
+           env->FatalError( msg);
+#else
            (*env)->FatalError(env,  msg);
+#endif
            RESTOREENV;
        }
 
@@ -680,7 +941,11 @@ NewGlobalRef(lobj)
        jobject                 lobj
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->NewGlobalRef(lobj);
+#else
            RETVAL = (*env)->NewGlobalRef(env, lobj);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -692,7 +957,11 @@ DeleteGlobalRef(gref)
        jobject                 gref
     CODE:
        {
+#ifdef WIN32
+           env->DeleteGlobalRef(gref);
+#else
            (*env)->DeleteGlobalRef(env, gref);
+#endif
            RESTOREENV;
        }
 
@@ -702,7 +971,11 @@ DeleteLocalRef(obj)
        jobject                 obj
     CODE:
        {
+#ifdef WIN32
+           env->DeleteLocalRef( obj);
+#else
            (*env)->DeleteLocalRef(env,  obj);
+#endif
            RESTOREENV;
        }
 
@@ -713,7 +986,11 @@ IsSameObject(obj1,obj2)
        jobject                 obj2
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->IsSameObject(obj1,obj2);
+#else
            RETVAL = (*env)->IsSameObject(env, obj1,obj2);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -725,7 +1002,11 @@ AllocObject(clazz)
        jclass                  clazz
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->AllocObject(clazz);
+#else
            RETVAL = (*env)->AllocObject(env, clazz);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -740,8 +1021,12 @@ NewObject(clazz,methodID,...)
        int                     argoff = $min_args;
     CODE:
        {
-           jvalue * args = makeargs(aTHX_ sig, &ST(argoff), items - argoff);
+           jvalue * args = makeargs(sig, &ST(argoff), items - argoff);
+#ifdef WIN32
+           RETVAL = env->NewObjectA(clazz,methodID,args);
+#else
            RETVAL = (*env)->NewObjectA(env, clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -756,7 +1041,11 @@ NewObjectA(clazz,methodID,args)
        jvalue *                args
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->NewObjectA(clazz,methodID,args);
+#else
            RETVAL = (*env)->NewObjectA(env, clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -768,7 +1057,11 @@ GetObjectClass(obj)
        jobject                 obj
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetObjectClass(obj);
+#else
            RETVAL = (*env)->GetObjectClass(env, obj);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -781,7 +1074,11 @@ IsInstanceOf(obj,clazz)
        jclass                  clazz
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->IsInstanceOf(obj,clazz);
+#else
            RETVAL = (*env)->IsInstanceOf(env, obj,clazz);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -795,7 +1092,11 @@ GetMethodID(clazz,name,sig)
        const char *            sig
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetMethodID(clazz,name,sig);
+#else
            RETVAL = (*env)->GetMethodID(env, clazz,name,sig);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -810,8 +1111,12 @@ CallObjectMethod(obj,methodID,...)
        int                     argoff = $min_args;
     CODE:
        {
-           jvalue * args = makeargs(aTHX_ sig, &ST(argoff), items - argoff);
+           jvalue * args = makeargs(sig, &ST(argoff), items - argoff);
+#ifdef WIN32
+           RETVAL = env->CallObjectMethodA(obj,methodID,args);
+#else
            RETVAL = (*env)->CallObjectMethodA(env, obj,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -826,7 +1131,11 @@ CallObjectMethodA(obj,methodID,args)
        jvalue *                args
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->CallObjectMethodA(obj,methodID,args);
+#else
            RETVAL = (*env)->CallObjectMethodA(env, obj,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -841,8 +1150,12 @@ CallBooleanMethod(obj,methodID,...)
        int                     argoff = $min_args;
     CODE:
        {
-           jvalue * args = makeargs(aTHX_ sig, &ST(argoff), items - argoff);
+           jvalue * args = makeargs(sig, &ST(argoff), items - argoff);
+#ifdef WIN32
+           RETVAL = env->CallBooleanMethodA(obj,methodID,args);
+#else
            RETVAL = (*env)->CallBooleanMethodA(env, obj,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -857,7 +1170,11 @@ CallBooleanMethodA(obj,methodID, args)
        jvalue *                args
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->CallBooleanMethodA(obj,methodID, args);
+#else
            RETVAL = (*env)->CallBooleanMethodA(env, obj,methodID, args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -872,8 +1189,12 @@ CallByteMethod(obj,methodID,...)
        int                     argoff = $min_args;
     CODE:
        {
-           jvalue * args = makeargs(aTHX_ sig, &ST(argoff), items - argoff);
+           jvalue * args = makeargs(sig, &ST(argoff), items - argoff);
+#ifdef WIN32
+           RETVAL = env->CallByteMethodA(obj,methodID,args);
+#else
            RETVAL = (*env)->CallByteMethodA(env, obj,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -888,7 +1209,11 @@ CallByteMethodA(obj,methodID,args)
        jvalue *                args
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->CallByteMethodA(obj,methodID,args);
+#else
            RETVAL = (*env)->CallByteMethodA(env, obj,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -903,8 +1228,12 @@ CallCharMethod(obj,methodID,...)
        int                     argoff = $min_args;
     CODE:
        {
-           jvalue * args = makeargs(aTHX_ sig, &ST(argoff), items - argoff);
+           jvalue * args = makeargs(sig, &ST(argoff), items - argoff);
+#ifdef WIN32
+           RETVAL = env->CallCharMethodA(obj,methodID,args);
+#else
            RETVAL = (*env)->CallCharMethodA(env, obj,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -919,7 +1248,11 @@ CallCharMethodA(obj,methodID,args)
        jvalue *                args
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->CallCharMethodA(obj,methodID,args);
+#else
            RETVAL = (*env)->CallCharMethodA(env, obj,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -934,8 +1267,12 @@ CallShortMethod(obj,methodID,...)
        int                     argoff = $min_args;
     CODE:
        {
-           jvalue * args = makeargs(aTHX_ sig, &ST(argoff), items - argoff);
+           jvalue * args = makeargs(sig, &ST(argoff), items - argoff);
+#ifdef WIN32
+           RETVAL = env->CallShortMethodA(obj,methodID,args);
+#else
            RETVAL = (*env)->CallShortMethodA(env, obj,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -950,7 +1287,11 @@ CallShortMethodA(obj,methodID,args)
        jvalue *                args
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->CallShortMethodA(obj,methodID,args);
+#else
            RETVAL = (*env)->CallShortMethodA(env, obj,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -965,8 +1306,12 @@ CallIntMethod(obj,methodID,...)
        int                     argoff = $min_args;
     CODE:
        {
-           jvalue * args = makeargs(aTHX_ sig, &ST(argoff), items - argoff);
+           jvalue * args = makeargs(sig, &ST(argoff), items - argoff);
+#ifdef WIN32
+           RETVAL = env->CallIntMethodA(obj,methodID,args);
+#else
            RETVAL = (*env)->CallIntMethodA(env, obj,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -981,7 +1326,11 @@ CallIntMethodA(obj,methodID,args)
        jvalue *                args
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->CallIntMethodA(obj,methodID,args);
+#else
            RETVAL = (*env)->CallIntMethodA(env, obj,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -996,8 +1345,12 @@ CallLongMethod(obj,methodID,...)
        int                     argoff = $min_args;
     CODE:
        {
-           jvalue * args = makeargs(aTHX_ sig, &ST(argoff), items - argoff);
+           jvalue * args = makeargs(sig, &ST(argoff), items - argoff);
+#ifdef WIN32
+           RETVAL = env->CallLongMethodA(obj,methodID,args);
+#else
            RETVAL = (*env)->CallLongMethodA(env, obj,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1012,7 +1365,11 @@ CallLongMethodA(obj,methodID,args)
        jvalue *                args
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->CallLongMethodA(obj,methodID,args);
+#else
            RETVAL = (*env)->CallLongMethodA(env, obj,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1027,8 +1384,12 @@ CallFloatMethod(obj,methodID,...)
        int                     argoff = $min_args;
     CODE:
        {
-           jvalue * args = makeargs(aTHX_ sig, &ST(argoff), items - argoff);
+           jvalue * args = makeargs(sig, &ST(argoff), items - argoff);
+#ifdef WIN32
+           RETVAL = env->CallFloatMethodA(obj,methodID,args);
+#else
            RETVAL = (*env)->CallFloatMethodA(env, obj,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1043,7 +1404,11 @@ CallFloatMethodA(obj,methodID,args)
        jvalue *                args
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->CallFloatMethodA(obj,methodID,args);
+#else
            RETVAL = (*env)->CallFloatMethodA(env, obj,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1058,8 +1423,12 @@ CallDoubleMethod(obj,methodID,...)
        int                     argoff = $min_args;
     CODE:
        {
-           jvalue * args = makeargs(aTHX_ sig, &ST(argoff), items - argoff);
+           jvalue * args = makeargs(sig, &ST(argoff), items - argoff);
+#ifdef WIN32
+           RETVAL = env->CallDoubleMethodA(obj,methodID,args);
+#else
            RETVAL = (*env)->CallDoubleMethodA(env, obj,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1074,7 +1443,11 @@ CallDoubleMethodA(obj,methodID,args)
        jvalue *                args
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->CallDoubleMethodA(obj,methodID,args);
+#else
            RETVAL = (*env)->CallDoubleMethodA(env, obj,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1089,8 +1462,12 @@ CallVoidMethod(obj,methodID,...)
        int                     argoff = $min_args;
     CODE:
        {
-           jvalue * args = makeargs(aTHX_ sig, &ST(argoff), items - argoff);
+           jvalue * args = makeargs(sig, &ST(argoff), items - argoff);
+#ifdef WIN32
+           env->CallVoidMethodA(obj,methodID,args);
+#else
            (*env)->CallVoidMethodA(env, obj,methodID,args);
+#endif
            RESTOREENV;
        }
 
@@ -1103,7 +1480,11 @@ CallVoidMethodA(obj,methodID,args)
        jvalue *                args
     CODE:
        {
+#ifdef WIN32
+           env->CallVoidMethodA(obj,methodID,args);
+#else
            (*env)->CallVoidMethodA(env, obj,methodID,args);
+#endif
            RESTOREENV;
        }
 
@@ -1117,8 +1498,12 @@ CallNonvirtualObjectMethod(obj,clazz,methodID,...)
        int                     argoff = $min_args;
     CODE:
        {
-           jvalue * args = makeargs(aTHX_ sig, &ST(argoff), items - argoff);
+           jvalue * args = makeargs(sig, &ST(argoff), items - argoff);
+#ifdef WIN32
+           RETVAL = env->CallNonvirtualObjectMethodA(obj,clazz,methodID,args);
+#else
            RETVAL = (*env)->CallNonvirtualObjectMethodA(env, obj,clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1134,7 +1519,11 @@ CallNonvirtualObjectMethodA(obj,clazz,methodID,args)
        jvalue *                args
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->CallNonvirtualObjectMethodA(obj,clazz,methodID,args);
+#else
            RETVAL = (*env)->CallNonvirtualObjectMethodA(env, obj,clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1150,8 +1539,12 @@ CallNonvirtualBooleanMethod(obj,clazz,methodID,...)
        int                     argoff = $min_args;
     CODE:
        {
-           jvalue * args = makeargs(aTHX_ sig, &ST(argoff), items - argoff);
+           jvalue * args = makeargs(sig, &ST(argoff), items - argoff);
+#ifdef WIN32
+           RETVAL = env->CallNonvirtualBooleanMethodA(obj,clazz,methodID,args);
+#else
            RETVAL = (*env)->CallNonvirtualBooleanMethodA(env, obj,clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1167,7 +1560,11 @@ CallNonvirtualBooleanMethodA(obj,clazz,methodID, args)
        jvalue *                args
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->CallNonvirtualBooleanMethodA(obj,clazz,methodID, args);
+#else
            RETVAL = (*env)->CallNonvirtualBooleanMethodA(env, obj,clazz,methodID, args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1183,8 +1580,12 @@ CallNonvirtualByteMethod(obj,clazz,methodID,...)
        int                     argoff = $min_args;
     CODE:
        {
-           jvalue * args = makeargs(aTHX_ sig, &ST(argoff), items - argoff);
+           jvalue * args = makeargs(sig, &ST(argoff), items - argoff);
+#ifdef WIN32
+           RETVAL = env->CallNonvirtualByteMethodA(obj,clazz,methodID,args);
+#else
            RETVAL = (*env)->CallNonvirtualByteMethodA(env, obj,clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1200,7 +1601,11 @@ CallNonvirtualByteMethodA(obj,clazz,methodID,args)
        jvalue *                args
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->CallNonvirtualByteMethodA(obj,clazz,methodID,args);
+#else
            RETVAL = (*env)->CallNonvirtualByteMethodA(env, obj,clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1216,8 +1621,12 @@ CallNonvirtualCharMethod(obj,clazz,methodID,...)
        int                     argoff = $min_args;
     CODE:
        {
-           jvalue * args = makeargs(aTHX_ sig, &ST(argoff), items - argoff);
+           jvalue * args = makeargs(sig, &ST(argoff), items - argoff);
+#ifdef WIN32
+           RETVAL = env->CallNonvirtualCharMethodA(obj,clazz,methodID,args);
+#else
            RETVAL = (*env)->CallNonvirtualCharMethodA(env, obj,clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1233,7 +1642,11 @@ CallNonvirtualCharMethodA(obj,clazz,methodID,args)
        jvalue *                args
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->CallNonvirtualCharMethodA(obj,clazz,methodID,args);
+#else
            RETVAL = (*env)->CallNonvirtualCharMethodA(env, obj,clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1249,8 +1662,12 @@ CallNonvirtualShortMethod(obj,clazz,methodID,...)
        int                     argoff = $min_args;
     CODE:
        {
-           jvalue * args = makeargs(aTHX_ sig, &ST(argoff), items - argoff);
+           jvalue * args = makeargs(sig, &ST(argoff), items - argoff);
+#ifdef WIN32
+           RETVAL = env->CallNonvirtualShortMethodA(obj,clazz,methodID,args);
+#else
            RETVAL = (*env)->CallNonvirtualShortMethodA(env, obj,clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1266,7 +1683,11 @@ CallNonvirtualShortMethodA(obj,clazz,methodID,args)
        jvalue *                args
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->CallNonvirtualShortMethodA(obj,clazz,methodID,args);
+#else
            RETVAL = (*env)->CallNonvirtualShortMethodA(env, obj,clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1282,8 +1703,12 @@ CallNonvirtualIntMethod(obj,clazz,methodID,...)
        int                     argoff = $min_args;
     CODE:
        {
-           jvalue * args = makeargs(aTHX_ sig, &ST(argoff), items - argoff);
+           jvalue * args = makeargs(sig, &ST(argoff), items - argoff);
+#ifdef WIN32
+           RETVAL = env->CallNonvirtualIntMethodA(obj,clazz,methodID,args);
+#else
            RETVAL = (*env)->CallNonvirtualIntMethodA(env, obj,clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1299,7 +1724,11 @@ CallNonvirtualIntMethodA(obj,clazz,methodID,args)
        jvalue *                args
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->CallNonvirtualIntMethodA(obj,clazz,methodID,args);
+#else
            RETVAL = (*env)->CallNonvirtualIntMethodA(env, obj,clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1315,8 +1744,12 @@ CallNonvirtualLongMethod(obj,clazz,methodID,...)
        int                     argoff = $min_args;
     CODE:
        {
-           jvalue * args = makeargs(aTHX_ sig, &ST(argoff), items - argoff);
+           jvalue * args = makeargs(sig, &ST(argoff), items - argoff);
+#ifdef WIN32
+           RETVAL = env->CallNonvirtualLongMethodA(obj,clazz,methodID,args);
+#else
            RETVAL = (*env)->CallNonvirtualLongMethodA(env, obj,clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1332,7 +1765,11 @@ CallNonvirtualLongMethodA(obj,clazz,methodID,args)
        jvalue *                args
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->CallNonvirtualLongMethodA(obj,clazz,methodID,args);
+#else
            RETVAL = (*env)->CallNonvirtualLongMethodA(env, obj,clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1348,8 +1785,12 @@ CallNonvirtualFloatMethod(obj,clazz,methodID,...)
        int                     argoff = $min_args;
     CODE:
        {
-           jvalue * args = makeargs(aTHX_ sig, &ST(argoff), items - argoff);
+           jvalue * args = makeargs(sig, &ST(argoff), items - argoff);
+#ifdef WIN32
+           RETVAL = env->CallNonvirtualFloatMethodA(obj,clazz,methodID,args);
+#else
            RETVAL = (*env)->CallNonvirtualFloatMethodA(env, obj,clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1365,7 +1806,11 @@ CallNonvirtualFloatMethodA(obj,clazz,methodID,args)
        jvalue *                args
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->CallNonvirtualFloatMethodA(obj,clazz,methodID,args);
+#else
            RETVAL = (*env)->CallNonvirtualFloatMethodA(env, obj,clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1381,8 +1826,12 @@ CallNonvirtualDoubleMethod(obj,clazz,methodID,...)
        int                     argoff = $min_args;
     CODE:
        {
-           jvalue * args = makeargs(aTHX_ sig, &ST(argoff), items - argoff);
+           jvalue * args = makeargs(sig, &ST(argoff), items - argoff);
+#ifdef WIN32
+           RETVAL = env->CallNonvirtualDoubleMethodA(obj,clazz,methodID,args);
+#else
            RETVAL = (*env)->CallNonvirtualDoubleMethodA(env, obj,clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1398,7 +1847,11 @@ CallNonvirtualDoubleMethodA(obj,clazz,methodID,args)
        jvalue *                args
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->CallNonvirtualDoubleMethodA(obj,clazz,methodID,args);
+#else
            RETVAL = (*env)->CallNonvirtualDoubleMethodA(env, obj,clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1414,8 +1867,12 @@ CallNonvirtualVoidMethod(obj,clazz,methodID,...)
        int                     argoff = $min_args;
     CODE:
        {
-           jvalue * args = makeargs(aTHX_ sig, &ST(argoff), items - argoff);
+           jvalue * args = makeargs(sig, &ST(argoff), items - argoff);
+#ifdef WIN32
+           env->CallNonvirtualVoidMethodA(obj,clazz,methodID,args);
+#else
            (*env)->CallNonvirtualVoidMethodA(env, obj,clazz,methodID,args);
+#endif
            RESTOREENV;
        }
 
@@ -1429,7 +1886,11 @@ CallNonvirtualVoidMethodA(obj,clazz,methodID,args)
        jvalue *                args
     CODE:
        {
+#ifdef WIN32
+           env->CallNonvirtualVoidMethodA(obj,clazz,methodID,args);
+#else
            (*env)->CallNonvirtualVoidMethodA(env, obj,clazz,methodID,args);
+#endif
            RESTOREENV;
        }
 
@@ -1441,7 +1902,11 @@ GetFieldID(clazz,name,sig)
        const char *            sig
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetFieldID(clazz,name,sig);
+#else
            RETVAL = (*env)->GetFieldID(env, clazz,name,sig);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1455,7 +1920,11 @@ GetObjectField(obj,fieldID)
        char *                  sig = 0;
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetObjectField(obj,fieldID);
+#else
            RETVAL = (*env)->GetObjectField(env, obj,fieldID);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1469,7 +1938,11 @@ GetBooleanField(obj,fieldID)
        char *                  sig = 0;
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetBooleanField(obj,fieldID);
+#else
            RETVAL = (*env)->GetBooleanField(env, obj,fieldID);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1483,7 +1956,11 @@ GetByteField(obj,fieldID)
        char *                  sig = 0;
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetByteField(obj,fieldID);
+#else
            RETVAL = (*env)->GetByteField(env, obj,fieldID);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1497,7 +1974,11 @@ GetCharField(obj,fieldID)
        char *                  sig = 0;
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetCharField(obj,fieldID);
+#else
            RETVAL = (*env)->GetCharField(env, obj,fieldID);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1511,7 +1992,11 @@ GetShortField(obj,fieldID)
        char *                  sig = 0;
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetShortField(obj,fieldID);
+#else
            RETVAL = (*env)->GetShortField(env, obj,fieldID);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1525,7 +2010,11 @@ GetIntField(obj,fieldID)
        char *                  sig = 0;
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetIntField(obj,fieldID);
+#else
            RETVAL = (*env)->GetIntField(env, obj,fieldID);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1539,7 +2028,11 @@ GetLongField(obj,fieldID)
        char *                  sig = 0;
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetLongField(obj,fieldID);
+#else
            RETVAL = (*env)->GetLongField(env, obj,fieldID);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1553,7 +2046,11 @@ GetFloatField(obj,fieldID)
        char *                  sig = 0;
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetFloatField(obj,fieldID);
+#else
            RETVAL = (*env)->GetFloatField(env, obj,fieldID);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1567,7 +2064,11 @@ GetDoubleField(obj,fieldID)
        char *                  sig = 0;
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetDoubleField(obj,fieldID);
+#else
            RETVAL = (*env)->GetDoubleField(env, obj,fieldID);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1582,7 +2083,11 @@ SetObjectField(obj,fieldID,val)
        jobject                 val
     CODE:
        {
+#ifdef WIN32
+           env->SetObjectField(obj,fieldID,val);
+#else
            (*env)->SetObjectField(env, obj,fieldID,val);
+#endif
            RESTOREENV;
        }
 
@@ -1595,7 +2100,11 @@ SetBooleanField(obj,fieldID,val)
        jboolean                val
     CODE:
        {
+#ifdef WIN32
+           env->SetBooleanField(obj,fieldID,val);
+#else
            (*env)->SetBooleanField(env, obj,fieldID,val);
+#endif
            RESTOREENV;
        }
 
@@ -1608,7 +2117,11 @@ SetByteField(obj,fieldID,val)
        jbyte                   val
     CODE:
        {
+#ifdef WIN32
+           env->SetByteField(obj,fieldID,val);
+#else
            (*env)->SetByteField(env, obj,fieldID,val);
+#endif
            RESTOREENV;
        }
 
@@ -1621,7 +2134,11 @@ SetCharField(obj,fieldID,val)
        jchar                   val
     CODE:
        {
+#ifdef WIN32
+           env->SetCharField(obj,fieldID,val);
+#else
            (*env)->SetCharField(env, obj,fieldID,val);
+#endif
            RESTOREENV;
        }
 
@@ -1634,7 +2151,11 @@ SetShortField(obj,fieldID,val)
        jshort                  val
     CODE:
        {
+#ifdef WIN32
+           env->SetShortField(obj,fieldID,val);
+#else
            (*env)->SetShortField(env, obj,fieldID,val);
+#endif
            RESTOREENV;
        }
 
@@ -1647,7 +2168,11 @@ SetIntField(obj,fieldID,val)
        jint                    val
     CODE:
        {
+#ifdef WIN32
+           env->SetIntField(obj,fieldID,val);
+#else
            (*env)->SetIntField(env, obj,fieldID,val);
+#endif
            RESTOREENV;
        }
 
@@ -1660,7 +2185,11 @@ SetLongField(obj,fieldID,val)
        jlong                   val
     CODE:
        {
+#ifdef WIN32
+           env->SetLongField(obj,fieldID,val);
+#else
            (*env)->SetLongField(env, obj,fieldID,val);
+#endif
            RESTOREENV;
        }
 
@@ -1673,7 +2202,11 @@ SetFloatField(obj,fieldID,val)
        jfloat                  val
     CODE:
        {
+#ifdef WIN32
+           env->SetFloatField(obj,fieldID,val);
+#else
            (*env)->SetFloatField(env, obj,fieldID,val);
+#endif
            RESTOREENV;
        }
 
@@ -1686,7 +2219,11 @@ SetDoubleField(obj,fieldID,val)
        jdouble                 val
     CODE:
        {
+#ifdef WIN32
+           env->SetDoubleField(obj,fieldID,val);
+#else
            (*env)->SetDoubleField(env, obj,fieldID,val);
+#endif
            RESTOREENV;
        }
 
@@ -1698,7 +2235,11 @@ GetStaticMethodID(clazz,name,sig)
        const char *            sig
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetStaticMethodID(clazz,name,sig);
+#else
            RETVAL = (*env)->GetStaticMethodID(env, clazz,name,sig);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1713,8 +2254,12 @@ CallStaticObjectMethod(clazz,methodID,...)
        int                     argoff = $min_args;
     CODE:
        {
-           jvalue * args = makeargs(aTHX_ sig, &ST(argoff), items - argoff);
+           jvalue * args = makeargs(sig, &ST(argoff), items - argoff);
+#ifdef WIN32
+           RETVAL = env->CallStaticObjectMethodA(clazz,methodID,args);
+#else
            RETVAL = (*env)->CallStaticObjectMethodA(env, clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1729,7 +2274,11 @@ CallStaticObjectMethodA(clazz,methodID,args)
        jvalue *                args
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->CallStaticObjectMethodA(clazz,methodID,args);
+#else
            RETVAL = (*env)->CallStaticObjectMethodA(env, clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1744,8 +2293,12 @@ CallStaticBooleanMethod(clazz,methodID,...)
        int                     argoff = $min_args;
     CODE:
        {
-           jvalue * args = makeargs(aTHX_ sig, &ST(argoff), items - argoff);
+           jvalue * args = makeargs(sig, &ST(argoff), items - argoff);
+#ifdef WIN32
+           RETVAL = env->CallStaticBooleanMethodA(clazz,methodID,args);
+#else
            RETVAL = (*env)->CallStaticBooleanMethodA(env, clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1760,7 +2313,11 @@ CallStaticBooleanMethodA(clazz,methodID,args)
        jvalue *                args
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->CallStaticBooleanMethodA(clazz,methodID,args);
+#else
            RETVAL = (*env)->CallStaticBooleanMethodA(env, clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1775,8 +2332,12 @@ CallStaticByteMethod(clazz,methodID,...)
        int                     argoff = $min_args;
     CODE:
        {
-           jvalue * args = makeargs(aTHX_ sig, &ST(argoff), items - argoff);
+           jvalue * args = makeargs(sig, &ST(argoff), items - argoff);
+#ifdef WIN32
+           RETVAL = env->CallStaticByteMethodA(clazz,methodID,args);
+#else
            RETVAL = (*env)->CallStaticByteMethodA(env, clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1791,7 +2352,11 @@ CallStaticByteMethodA(clazz,methodID,args)
        jvalue *                args
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->CallStaticByteMethodA(clazz,methodID,args);
+#else
            RETVAL = (*env)->CallStaticByteMethodA(env, clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1806,8 +2371,12 @@ CallStaticCharMethod(clazz,methodID,...)
        int                     argoff = $min_args;
     CODE:
        {
-           jvalue * args = makeargs(aTHX_ sig, &ST(argoff), items - argoff);
+           jvalue * args = makeargs(sig, &ST(argoff), items - argoff);
+#ifdef WIN32
+           RETVAL = env->CallStaticCharMethodA(clazz,methodID,args);
+#else
            RETVAL = (*env)->CallStaticCharMethodA(env, clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1822,7 +2391,11 @@ CallStaticCharMethodA(clazz,methodID,args)
        jvalue *                args
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->CallStaticCharMethodA(clazz,methodID,args);
+#else
            RETVAL = (*env)->CallStaticCharMethodA(env, clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1837,8 +2410,12 @@ CallStaticShortMethod(clazz,methodID,...)
        int                     argoff = $min_args;
     CODE:
        {
-           jvalue * args = makeargs(aTHX_ sig, &ST(argoff), items - argoff);
+           jvalue * args = makeargs(sig, &ST(argoff), items - argoff);
+#ifdef WIN32
+           RETVAL = env->CallStaticShortMethodA(clazz,methodID,args);
+#else
            RETVAL = (*env)->CallStaticShortMethodA(env, clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1853,7 +2430,11 @@ CallStaticShortMethodA(clazz,methodID,args)
        jvalue *                args
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->CallStaticShortMethodA(clazz,methodID,args);
+#else
            RETVAL = (*env)->CallStaticShortMethodA(env, clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1868,8 +2449,12 @@ CallStaticIntMethod(clazz,methodID,...)
        int                     argoff = $min_args;
     CODE:
        {
-           jvalue * args = makeargs(aTHX_ sig, &ST(argoff), items - argoff);
+           jvalue * args = makeargs(sig, &ST(argoff), items - argoff);
+#ifdef WIN32
+           RETVAL = env->CallStaticIntMethodA(clazz,methodID,args);
+#else
            RETVAL = (*env)->CallStaticIntMethodA(env, clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1884,7 +2469,11 @@ CallStaticIntMethodA(clazz,methodID,args)
        jvalue *                args
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->CallStaticIntMethodA(clazz,methodID,args);
+#else
            RETVAL = (*env)->CallStaticIntMethodA(env, clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1899,8 +2488,12 @@ CallStaticLongMethod(clazz,methodID,...)
        int                     argoff = $min_args;
     CODE:
        {
-           jvalue * args = makeargs(aTHX_ sig, &ST(argoff), items - argoff);
+           jvalue * args = makeargs(sig, &ST(argoff), items - argoff);
+#ifdef WIN32
+           RETVAL = env->CallStaticLongMethodA(clazz,methodID,args);
+#else
            RETVAL = (*env)->CallStaticLongMethodA(env, clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1915,7 +2508,11 @@ CallStaticLongMethodA(clazz,methodID,args)
        jvalue *                args
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->CallStaticLongMethodA(clazz,methodID,args);
+#else
            RETVAL = (*env)->CallStaticLongMethodA(env, clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1930,8 +2527,12 @@ CallStaticFloatMethod(clazz,methodID,...)
        int                     argoff = $min_args;
     CODE:
        {
-           jvalue * args = makeargs(aTHX_ sig, &ST(argoff), items - argoff);
+           jvalue * args = makeargs(sig, &ST(argoff), items - argoff);
+#ifdef WIN32
+           RETVAL = env->CallStaticFloatMethodA(clazz,methodID,args);
+#else
            RETVAL = (*env)->CallStaticFloatMethodA(env, clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1946,7 +2547,11 @@ CallStaticFloatMethodA(clazz,methodID,args)
        jvalue *                args
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->CallStaticFloatMethodA(clazz,methodID,args);
+#else
            RETVAL = (*env)->CallStaticFloatMethodA(env, clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1961,8 +2566,12 @@ CallStaticDoubleMethod(clazz,methodID,...)
        int                     argoff = $min_args;
     CODE:
        {
-           jvalue * args = makeargs(aTHX_ sig, &ST(argoff), items - argoff);
+           jvalue * args = makeargs(sig, &ST(argoff), items - argoff);
+#ifdef WIN32
+           RETVAL = env->CallStaticDoubleMethodA(clazz,methodID,args);
+#else
            RETVAL = (*env)->CallStaticDoubleMethodA(env, clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1977,7 +2586,11 @@ CallStaticDoubleMethodA(clazz,methodID,args)
        jvalue *                args
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->CallStaticDoubleMethodA(clazz,methodID,args);
+#else
            RETVAL = (*env)->CallStaticDoubleMethodA(env, clazz,methodID,args);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -1992,8 +2605,12 @@ CallStaticVoidMethod(cls,methodID,...)
        int                     argoff = $min_args;
     CODE:
        {
-           jvalue * args = makeargs(aTHX_ sig, &ST(argoff), items - argoff);
+           jvalue * args = makeargs(sig, &ST(argoff), items - argoff);
+#ifdef WIN32
+           env->CallStaticVoidMethodA(cls,methodID,args);
+#else
            (*env)->CallStaticVoidMethodA(env, cls,methodID,args);
+#endif
            RESTOREENV;
        }
 
@@ -2006,7 +2623,11 @@ CallStaticVoidMethodA(cls,methodID,args)
        jvalue *                args
     CODE:
        {
+#ifdef WIN32
+           env->CallStaticVoidMethodA(cls,methodID,args);
+#else
            (*env)->CallStaticVoidMethodA(env, cls,methodID,args);
+#endif
            RESTOREENV;
        }
 
@@ -2018,7 +2639,11 @@ GetStaticFieldID(clazz,name,sig)
        const char *            sig
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetStaticFieldID(clazz,name,sig);
+#else
            RETVAL = (*env)->GetStaticFieldID(env, clazz,name,sig);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -2032,7 +2657,11 @@ GetStaticObjectField(clazz,fieldID)
        char *                  sig = 0;
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetStaticObjectField(clazz,fieldID);
+#else
            RETVAL = (*env)->GetStaticObjectField(env, clazz,fieldID);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -2046,7 +2675,11 @@ GetStaticBooleanField(clazz,fieldID)
        char *                  sig = 0;
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetStaticBooleanField(clazz,fieldID);
+#else
            RETVAL = (*env)->GetStaticBooleanField(env, clazz,fieldID);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -2060,7 +2693,11 @@ GetStaticByteField(clazz,fieldID)
        char *                  sig = 0;
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetStaticByteField(clazz,fieldID);
+#else
            RETVAL = (*env)->GetStaticByteField(env, clazz,fieldID);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -2074,7 +2711,11 @@ GetStaticCharField(clazz,fieldID)
        char *                  sig = 0;
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetStaticCharField(clazz,fieldID);
+#else
            RETVAL = (*env)->GetStaticCharField(env, clazz,fieldID);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -2088,7 +2729,11 @@ GetStaticShortField(clazz,fieldID)
        char *                  sig = 0;
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetStaticShortField(clazz,fieldID);
+#else
            RETVAL = (*env)->GetStaticShortField(env, clazz,fieldID);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -2102,7 +2747,11 @@ GetStaticIntField(clazz,fieldID)
        char *                  sig = 0;
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetStaticIntField(clazz,fieldID);
+#else
            RETVAL = (*env)->GetStaticIntField(env, clazz,fieldID);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -2116,7 +2765,11 @@ GetStaticLongField(clazz,fieldID)
        char *                  sig = 0;
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetStaticLongField(clazz,fieldID);
+#else
            RETVAL = (*env)->GetStaticLongField(env, clazz,fieldID);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -2130,7 +2783,11 @@ GetStaticFloatField(clazz,fieldID)
        char *                  sig = 0;
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetStaticFloatField(clazz,fieldID);
+#else
            RETVAL = (*env)->GetStaticFloatField(env, clazz,fieldID);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -2144,7 +2801,11 @@ GetStaticDoubleField(clazz,fieldID)
        char *                  sig = 0;
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetStaticDoubleField(clazz,fieldID);
+#else
            RETVAL = (*env)->GetStaticDoubleField(env, clazz,fieldID);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -2159,7 +2820,11 @@ SetStaticObjectField(clazz,fieldID,value)
        jobject                 value
     CODE:
        {
+#ifdef WIN32
+         env->SetStaticObjectField(clazz,fieldID,value);
+#else
          (*env)->SetStaticObjectField(env, clazz,fieldID,value);
+#endif
            RESTOREENV;
        }
 
@@ -2172,7 +2837,11 @@ SetStaticBooleanField(clazz,fieldID,value)
        jboolean                value
     CODE:
        {
+#ifdef WIN32
+         env->SetStaticBooleanField(clazz,fieldID,value);
+#else
          (*env)->SetStaticBooleanField(env, clazz,fieldID,value);
+#endif
            RESTOREENV;
        }
 
@@ -2185,7 +2854,11 @@ SetStaticByteField(clazz,fieldID,value)
        jbyte                   value
     CODE:
        {
+#ifdef WIN32
+         env->SetStaticByteField(clazz,fieldID,value);
+#else
          (*env)->SetStaticByteField(env, clazz,fieldID,value);
+#endif
            RESTOREENV;
        }
 
@@ -2198,7 +2871,11 @@ SetStaticCharField(clazz,fieldID,value)
        jchar                   value
     CODE:
        {
+#ifdef WIN32
+         env->SetStaticCharField(clazz,fieldID,value);
+#else
          (*env)->SetStaticCharField(env, clazz,fieldID,value);
+#endif
            RESTOREENV;
        }
 
@@ -2211,7 +2888,11 @@ SetStaticShortField(clazz,fieldID,value)
        jshort                  value
     CODE:
        {
+#ifdef WIN32
+         env->SetStaticShortField(clazz,fieldID,value);
+#else
          (*env)->SetStaticShortField(env, clazz,fieldID,value);
+#endif
            RESTOREENV;
        }
 
@@ -2224,7 +2905,11 @@ SetStaticIntField(clazz,fieldID,value)
        jint                    value
     CODE:
        {
+#ifdef WIN32
+         env->SetStaticIntField(clazz,fieldID,value);
+#else
          (*env)->SetStaticIntField(env, clazz,fieldID,value);
+#endif
            RESTOREENV;
        }
 
@@ -2237,7 +2922,11 @@ SetStaticLongField(clazz,fieldID,value)
        jlong                   value
     CODE:
        {
+#ifdef WIN32
+         env->SetStaticLongField(clazz,fieldID,value);
+#else
          (*env)->SetStaticLongField(env, clazz,fieldID,value);
+#endif
            RESTOREENV;
        }
 
@@ -2250,7 +2939,11 @@ SetStaticFloatField(clazz,fieldID,value)
        jfloat                  value
     CODE:
        {
+#ifdef WIN32
+         env->SetStaticFloatField(clazz,fieldID,value);
+#else
          (*env)->SetStaticFloatField(env, clazz,fieldID,value);
+#endif
            RESTOREENV;
        }
 
@@ -2263,7 +2956,11 @@ SetStaticDoubleField(clazz,fieldID,value)
        jdouble                 value
     CODE:
        {
+#ifdef WIN32
+         env->SetStaticDoubleField(clazz,fieldID,value);
+#else
          (*env)->SetStaticDoubleField(env, clazz,fieldID,value);
+#endif
            RESTOREENV;
        }
 
@@ -2275,7 +2972,11 @@ NewString(unicode)
        const jchar *           unicode
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->NewString(unicode, unicode_len_);
+#else
            RETVAL = (*env)->NewString(env, unicode, unicode_len_);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -2287,7 +2988,11 @@ GetStringLength(str)
        jstring                 str
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetStringLength(str);
+#else
            RETVAL = (*env)->GetStringLength(env, str);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -2301,14 +3006,26 @@ GetStringChars(str)
        jsize                   RETVAL_len_ = NO_INIT;
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetStringChars(str,&isCopy);
+#else
            RETVAL = (*env)->GetStringChars(env, str,&isCopy);
+#endif
+#ifdef WIN32
+           RETVAL_len_ = env->GetStringLength(str);
+#else
            RETVAL_len_ = (*env)->GetStringLength(env, str);
+#endif
            RESTOREENV;
        }
     OUTPUT:
        RETVAL
     CLEANUP:
+#ifdef WIN32
+           env->ReleaseStringChars(str,RETVAL);
+#else
            (*env)->ReleaseStringChars(env, str,RETVAL);
+#endif
 
 jstring
 NewStringUTF(utf)
@@ -2316,7 +3033,11 @@ NewStringUTF(utf)
        const char *            utf
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->NewStringUTF(utf);
+#else
            RETVAL = (*env)->NewStringUTF(env, utf);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -2328,7 +3049,11 @@ GetStringUTFLength(str)
        jstring                 str
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetStringUTFLength(str);
+#else
            RETVAL = (*env)->GetStringUTFLength(env, str);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -2341,13 +3066,21 @@ GetStringUTFChars(str)
        jboolean                isCopy = NO_INIT;
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetStringUTFChars(str,&isCopy);
+#else
            RETVAL = (*env)->GetStringUTFChars(env, str,&isCopy);
+#endif
            RESTOREENV;
        }
     OUTPUT:
        RETVAL
     CLEANUP:
+#ifdef WIN32
+       env->ReleaseStringUTFChars(str, RETVAL);
+#else
        (*env)->ReleaseStringUTFChars(env, str, RETVAL);
+#endif
 
 
 jsize
@@ -2356,7 +3089,11 @@ GetArrayLength(array)
        jarray                  array
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetArrayLength(array);
+#else
            RETVAL = (*env)->GetArrayLength(env, array);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -2370,7 +3107,11 @@ NewObjectArray(len,clazz,init)
        jobject                 init
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->NewObjectArray(len,clazz,init);
+#else
            RETVAL = (*env)->NewObjectArray(env, len,clazz,init);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -2383,7 +3124,11 @@ GetObjectArrayElement(array,index)
        jsize                   index
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetObjectArrayElement(array,index);
+#else
            RETVAL = (*env)->GetObjectArrayElement(env, array,index);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -2397,7 +3142,11 @@ SetObjectArrayElement(array,index,val)
        jobject                 val
     CODE:
        {
+#ifdef WIN32
+           env->SetObjectArrayElement(array,index,val);
+#else
            (*env)->SetObjectArrayElement(env, array,index,val);
+#endif
            RESTOREENV;
        }
 
@@ -2407,7 +3156,11 @@ NewBooleanArray(len)
        jsize                   len
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->NewBooleanArray(len);
+#else
            RETVAL = (*env)->NewBooleanArray(env, len);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -2419,7 +3172,11 @@ NewByteArray(len)
        jsize                   len
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->NewByteArray(len);
+#else
            RETVAL = (*env)->NewByteArray(env, len);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -2431,7 +3188,11 @@ NewCharArray(len)
        jsize                   len
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->NewCharArray(len);
+#else
            RETVAL = (*env)->NewCharArray(env, len);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -2443,7 +3204,11 @@ NewShortArray(len)
        jsize                   len
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->NewShortArray(len);
+#else
            RETVAL = (*env)->NewShortArray(env, len);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -2455,7 +3220,11 @@ NewIntArray(len)
        jsize                   len
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->NewIntArray(len);
+#else
            RETVAL = (*env)->NewIntArray(env, len);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -2467,7 +3236,11 @@ NewLongArray(len)
        jsize                   len
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->NewLongArray(len);
+#else
            RETVAL = (*env)->NewLongArray(env, len);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -2479,7 +3252,11 @@ NewFloatArray(len)
        jsize                   len
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->NewFloatArray(len);
+#else
            RETVAL = (*env)->NewFloatArray(env, len);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -2491,7 +3268,11 @@ NewDoubleArray(len)
        jsize                   len
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->NewDoubleArray(len);
+#else
            RETVAL = (*env)->NewDoubleArray(env, len);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -2505,8 +3286,16 @@ GetBooleanArrayElements(array)
        jboolean                isCopy = NO_INIT;
     PPCODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetBooleanArrayElements(array,&isCopy);
+#else
            RETVAL = (*env)->GetBooleanArrayElements(env, array,&isCopy);
+#endif
+#ifdef WIN32
+           RETVAL_len_ = env->GetArrayLength(array);
+#else
            RETVAL_len_ = (*env)->GetArrayLength(env, array);
+#endif
            if (GIMME == G_ARRAY) {
                int i;
                jboolean* r = RETVAL;
@@ -2523,7 +3312,11 @@ GetBooleanArrayElements(array)
                else
                    PUSHs(&PL_sv_no);
            }
+#ifdef WIN32
+           env->ReleaseBooleanArrayElements(array,RETVAL,JNI_ABORT);
+#else
            (*env)->ReleaseBooleanArrayElements(env, array,RETVAL,JNI_ABORT);
+#endif
            RESTOREENV;
        }
 
@@ -2535,8 +3328,16 @@ GetByteArrayElements(array)
        jboolean                isCopy = NO_INIT;
     PPCODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetByteArrayElements(array,&isCopy);
+#else
            RETVAL = (*env)->GetByteArrayElements(env, array,&isCopy);
+#endif
+#ifdef WIN32
+           RETVAL_len_ = env->GetArrayLength(array);
+#else
            RETVAL_len_ = (*env)->GetArrayLength(env, array);
+#endif
            if (GIMME == G_ARRAY) {
                int i;
                jbyte* r = RETVAL;
@@ -2553,7 +3354,11 @@ GetByteArrayElements(array)
                else
                    PUSHs(&PL_sv_no);
            }
+#ifdef WIN32
+           env->ReleaseByteArrayElements(array,RETVAL,JNI_ABORT);
+#else
            (*env)->ReleaseByteArrayElements(env, array,RETVAL,JNI_ABORT);
+#endif
            RESTOREENV;
        }
 
@@ -2565,8 +3370,16 @@ GetCharArrayElements(array)
        jboolean                isCopy = NO_INIT;
     PPCODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetCharArrayElements(array,&isCopy);
+#else
            RETVAL = (*env)->GetCharArrayElements(env, array,&isCopy);
+#endif
+#ifdef WIN32
+           RETVAL_len_ = env->GetArrayLength(array);
+#else
            RETVAL_len_ = (*env)->GetArrayLength(env, array);
+#endif
            if (GIMME == G_ARRAY) {
                int i;
                jchar* r = RETVAL;
@@ -2583,7 +3396,11 @@ GetCharArrayElements(array)
                else
                    PUSHs(&PL_sv_no);
            }
+#ifdef WIN32
+           env->ReleaseCharArrayElements(array,RETVAL,JNI_ABORT);
+#else
            (*env)->ReleaseCharArrayElements(env, array,RETVAL,JNI_ABORT);
+#endif
            RESTOREENV;
        }
 
@@ -2595,8 +3412,16 @@ GetShortArrayElements(array)
        jboolean                isCopy = NO_INIT;
     PPCODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetShortArrayElements(array,&isCopy);
+#else
            RETVAL = (*env)->GetShortArrayElements(env, array,&isCopy);
+#endif
+#ifdef WIN32
+           RETVAL_len_ = env->GetArrayLength(array);
+#else
            RETVAL_len_ = (*env)->GetArrayLength(env, array);
+#endif
            if (GIMME == G_ARRAY) {
                int i;
                jshort* r = RETVAL;
@@ -2613,7 +3438,11 @@ GetShortArrayElements(array)
                else
                    PUSHs(&PL_sv_no);
            }
+#ifdef WIN32
+           env->ReleaseShortArrayElements(array,RETVAL,JNI_ABORT);
+#else
            (*env)->ReleaseShortArrayElements(env, array,RETVAL,JNI_ABORT);
+#endif
            RESTOREENV;
        }
 
@@ -2625,8 +3454,16 @@ GetIntArrayElements(array)
        jboolean                isCopy = NO_INIT;
     PPCODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetIntArrayElements(array,&isCopy);
+#else
            RETVAL = (*env)->GetIntArrayElements(env, array,&isCopy);
+#endif
+#ifdef WIN32
+           RETVAL_len_ = env->GetArrayLength(array);
+#else
            RETVAL_len_ = (*env)->GetArrayLength(env, array);
+#endif
            if (GIMME == G_ARRAY) {
                int i;
                jint* r = RETVAL;
@@ -2643,7 +3480,11 @@ GetIntArrayElements(array)
                else
                    PUSHs(&PL_sv_no);
            }
+#ifdef WIN32
+           env->ReleaseIntArrayElements(array,RETVAL,JNI_ABORT);
+#else
            (*env)->ReleaseIntArrayElements(env, array,RETVAL,JNI_ABORT);
+#endif
            RESTOREENV;
        }
 
@@ -2655,8 +3496,16 @@ GetLongArrayElements(array)
        jboolean                isCopy = NO_INIT;
     PPCODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetLongArrayElements(array,&isCopy);
+#else
            RETVAL = (*env)->GetLongArrayElements(env, array,&isCopy);
+#endif
+#ifdef WIN32
+           RETVAL_len_ = env->GetArrayLength(array);
+#else
            RETVAL_len_ = (*env)->GetArrayLength(env, array);
+#endif
            if (GIMME == G_ARRAY) {
                int i;
                jlong* r = RETVAL;
@@ -2673,7 +3522,11 @@ GetLongArrayElements(array)
                else
                    PUSHs(&PL_sv_no);
            }
+#ifdef WIN32
+           env->ReleaseLongArrayElements(array,RETVAL,JNI_ABORT);
+#else
            (*env)->ReleaseLongArrayElements(env, array,RETVAL,JNI_ABORT);
+#endif
            RESTOREENV;
        }
 
@@ -2685,8 +3538,16 @@ GetFloatArrayElements(array)
        jboolean                isCopy = NO_INIT;
     PPCODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetFloatArrayElements(array,&isCopy);
+#else
            RETVAL = (*env)->GetFloatArrayElements(env, array,&isCopy);
+#endif
+#ifdef WIN32
+           RETVAL_len_ = env->GetArrayLength(array);
+#else
            RETVAL_len_ = (*env)->GetArrayLength(env, array);
+#endif
            if (GIMME == G_ARRAY) {
                int i;
                jfloat* r = RETVAL;
@@ -2703,7 +3564,11 @@ GetFloatArrayElements(array)
                else
                    PUSHs(&PL_sv_no);
            }
+#ifdef WIN32
+           env->ReleaseFloatArrayElements(array,RETVAL,JNI_ABORT);
+#else
            (*env)->ReleaseFloatArrayElements(env, array,RETVAL,JNI_ABORT);
+#endif
            RESTOREENV;
        }
 
@@ -2715,8 +3580,16 @@ GetDoubleArrayElements(array)
        jboolean                isCopy = NO_INIT;
     PPCODE:
        {
+#ifdef WIN32
+           RETVAL = env->GetDoubleArrayElements(array,&isCopy);
+#else
            RETVAL = (*env)->GetDoubleArrayElements(env, array,&isCopy);
+#endif
+#ifdef WIN32
+           RETVAL_len_ = env->GetArrayLength(array);
+#else
            RETVAL_len_ = (*env)->GetArrayLength(env, array);
+#endif
            if (GIMME == G_ARRAY) {
                int i;
                jdouble* r = RETVAL;
@@ -2733,7 +3606,11 @@ GetDoubleArrayElements(array)
                else
                    PUSHs(&PL_sv_no);
            }
+#ifdef WIN32
+           env->ReleaseDoubleArrayElements(array,RETVAL,JNI_ABORT);
+#else
            (*env)->ReleaseDoubleArrayElements(env, array,RETVAL,JNI_ABORT);
+#endif
            RESTOREENV;
        }
 
@@ -2748,7 +3625,11 @@ GetBooleanArrayRegion(array,start,len,buf)
        jboolean *              buf = (jboolean*)sv_grow(ST(3),len * sizeof(jboolean)+1);
     CODE:
        {
+#ifdef WIN32
+           env->GetBooleanArrayRegion(array,start,len,buf);
+#else
            (*env)->GetBooleanArrayRegion(env, array,start,len,buf);
+#endif
            SvCUR_set(ST(3), len * sizeof(jboolean));
            *SvEND(ST(3)) = '\0';
            RESTOREENV;
@@ -2765,7 +3646,11 @@ GetByteArrayRegion(array,start,len,buf)
        jbyte *                 buf = (jbyte*)sv_grow(ST(3),len * sizeof(jbyte)+1);
     CODE:
        {
+#ifdef WIN32
+           env->GetByteArrayRegion(array,start,len,buf);
+#else
            (*env)->GetByteArrayRegion(env, array,start,len,buf);
+#endif
            SvCUR_set(ST(3), len * sizeof(jbyte));
            *SvEND(ST(3)) = '\0';
            RESTOREENV;
@@ -2782,7 +3667,11 @@ GetCharArrayRegion(array,start,len,buf)
        jchar *                 buf = (jchar*)sv_grow(ST(3),len * sizeof(jchar)+1);
     CODE:
        {
+#ifdef WIN32
+           env->GetCharArrayRegion(array,start,len,buf);
+#else
            (*env)->GetCharArrayRegion(env, array,start,len,buf);
+#endif
            SvCUR_set(ST(3), len * sizeof(jchar));
            *SvEND(ST(3)) = '\0';
            RESTOREENV;
@@ -2799,7 +3688,11 @@ GetShortArrayRegion(array,start,len,buf)
        jshort *                buf = (jshort*)sv_grow(ST(3),len * sizeof(jshort)+1);
     CODE:
        {
+#ifdef WIN32
+           env->GetShortArrayRegion(array,start,len,buf);
+#else
            (*env)->GetShortArrayRegion(env, array,start,len,buf);
+#endif
            SvCUR_set(ST(3), len * sizeof(jshort));
            *SvEND(ST(3)) = '\0';
            RESTOREENV;
@@ -2816,7 +3709,11 @@ GetIntArrayRegion(array,start,len,buf)
        jint *                  buf = (jint*)sv_grow(ST(3),len * sizeof(jint)+1);
     CODE:
        {
+#ifdef WIN32
+           env->GetIntArrayRegion(array,start,len,buf);
+#else
            (*env)->GetIntArrayRegion(env, array,start,len,buf);
+#endif
            SvCUR_set(ST(3), len * sizeof(jint));
            *SvEND(ST(3)) = '\0';
            RESTOREENV;
@@ -2833,7 +3730,11 @@ GetLongArrayRegion(array,start,len,buf)
        jlong *                 buf = (jlong*)sv_grow(ST(3),len * sizeof(jlong)+1);
     CODE:
        {
+#ifdef WIN32
+           env->GetLongArrayRegion(array,start,len,buf);
+#else
            (*env)->GetLongArrayRegion(env, array,start,len,buf);
+#endif
            SvCUR_set(ST(3), len * sizeof(jlong));
            *SvEND(ST(3)) = '\0';
            RESTOREENV;
@@ -2850,7 +3751,11 @@ GetFloatArrayRegion(array,start,len,buf)
        jfloat *                buf = (jfloat*)sv_grow(ST(3),len * sizeof(jfloat)+1);
     CODE:
        {
+#ifdef WIN32
+           env->GetFloatArrayRegion(array,start,len,buf);
+#else
            (*env)->GetFloatArrayRegion(env, array,start,len,buf);
+#endif
            SvCUR_set(ST(3), len * sizeof(jfloat));
            *SvEND(ST(3)) = '\0';
            RESTOREENV;
@@ -2867,7 +3772,11 @@ GetDoubleArrayRegion(array,start,len,buf)
        jdouble *               buf = (jdouble*)sv_grow(ST(3),len * sizeof(jdouble)+1);
     CODE:
        {
+#ifdef WIN32
+           env->GetDoubleArrayRegion(array,start,len,buf);
+#else
            (*env)->GetDoubleArrayRegion(env, array,start,len,buf);
+#endif
            SvCUR_set(ST(3), len * sizeof(jdouble));
            *SvEND(ST(3)) = '\0';
            RESTOREENV;
@@ -2885,10 +3794,14 @@ SetBooleanArrayRegion(array,start,len,buf)
     CODE:
        {
            if (buf_len_ < len)
-               Perl_croak(aTHX_ "string is too short");
-           else if (buf_len_ > len && ckWARN(WARN_UNSAFE))
-               Perl_warner(aTHX_ WARN_UNSAFE, "string is too long");
+               croak("string is too short");
+           else if (buf_len_ > len && PL_dowarn)
+               warn("string is too long");
+#ifdef WIN32
+           env->SetBooleanArrayRegion(array,start,len,buf);
+#else
            (*env)->SetBooleanArrayRegion(env, array,start,len,buf);
+#endif
            RESTOREENV;
        }
 
@@ -2904,10 +3817,14 @@ SetByteArrayRegion(array,start,len,buf)
     CODE:
        {
            if (buf_len_ < len)
-               Perl_croak(aTHX_ "string is too short");
-           else if (buf_len_ > len && ckWARN(WARN_UNSAFE))
-               Perl_warner(aTHX_ WARN_UNSAFE, "string is too long");
+               croak("string is too short");
+           else if (buf_len_ > len && PL_dowarn)
+               warn("string is too long");
+#ifdef WIN32
+           env->SetByteArrayRegion(array,start,len,buf);
+#else
            (*env)->SetByteArrayRegion(env, array,start,len,buf);
+#endif
            RESTOREENV;
        }
 
@@ -2923,10 +3840,14 @@ SetCharArrayRegion(array,start,len,buf)
     CODE:
        {
            if (buf_len_ < len)
-               Perl_croak(aTHX_ "string is too short");
-           else if (buf_len_ > len && ckWARN(WARN_UNSAFE))
-               Perl_warner(aTHX_ WARN_UNSAFE, "string is too long");
+               croak("string is too short");
+           else if (buf_len_ > len && PL_dowarn)
+               warn("string is too long");
+#ifdef WIN32
+           env->SetCharArrayRegion(array,start,len,buf);
+#else
            (*env)->SetCharArrayRegion(env, array,start,len,buf);
+#endif
            RESTOREENV;
        }
 
@@ -2942,10 +3863,14 @@ SetShortArrayRegion(array,start,len,buf)
     CODE:
        {
            if (buf_len_ < len)
-               Perl_croak(aTHX_ "string is too short");
-           else if (buf_len_ > len && ckWARN(WARN_UNSAFE))
-               Perl_warner(aTHX_ WARN_UNSAFE, "string is too long");
+               croak("string is too short");
+           else if (buf_len_ > len && PL_dowarn)
+               warn("string is too long");
+#ifdef WIN32
+           env->SetShortArrayRegion(array,start,len,buf);
+#else
            (*env)->SetShortArrayRegion(env, array,start,len,buf);
+#endif
            RESTOREENV;
        }
 
@@ -2961,10 +3886,14 @@ SetIntArrayRegion(array,start,len,buf)
     CODE:
        {
            if (buf_len_ < len)
-               Perl_croak(aTHX_ "string is too short");
-           else if (buf_len_ > len && ckWARN(WARN_UNSAFE))
-               Perl_warner(aTHX_ WARN_UNSAFE, "string is too long");
+               croak("string is too short");
+           else if (buf_len_ > len && PL_dowarn)
+               warn("string is too long");
+#ifdef WIN32
+           env->SetIntArrayRegion(array,start,len,buf);
+#else
            (*env)->SetIntArrayRegion(env, array,start,len,buf);
+#endif
            RESTOREENV;
        }
 
@@ -2980,10 +3909,14 @@ SetLongArrayRegion(array,start,len,buf)
     CODE:
        {
            if (buf_len_ < len)
-               Perl_croak(aTHX_ "string is too short");
-           else if (buf_len_ > len && ckWARN(WARN_UNSAFE))
-               Perl_warner(aTHX_ WARN_UNSAFE, "string is too long");
+               croak("string is too short");
+           else if (buf_len_ > len && PL_dowarn)
+               warn("string is too long");
+#ifdef WIN32
+           env->SetLongArrayRegion(array,start,len,buf);
+#else
            (*env)->SetLongArrayRegion(env, array,start,len,buf);
+#endif
            RESTOREENV;
        }
 
@@ -2999,10 +3932,14 @@ SetFloatArrayRegion(array,start,len,buf)
     CODE:
        {
            if (buf_len_ < len)
-               Perl_croak(aTHX_ "string is too short");
-           else if (buf_len_ > len && ckWARN(WARN_UNSAFE))
-               Perl_warner(aTHX_ WARN_UNSAFE, "string is too long");
+               croak("string is too short");
+           else if (buf_len_ > len && PL_dowarn)
+               warn("string is too long");
+#ifdef WIN32
+           env->SetFloatArrayRegion(array,start,len,buf);
+#else
            (*env)->SetFloatArrayRegion(env, array,start,len,buf);
+#endif
            RESTOREENV;
        }
 
@@ -3018,10 +3955,14 @@ SetDoubleArrayRegion(array,start,len,buf)
     CODE:
        {
            if (buf_len_ < len)
-               Perl_croak(aTHX_ "string is too short");
-           else if (buf_len_ > len && ckWARN(WARN_UNSAFE))
-               Perl_warner(aTHX_ WARN_UNSAFE, "string is too long");
+               croak("string is too short");
+           else if (buf_len_ > len && PL_dowarn)
+               warn("string is too long");
+#ifdef WIN32
+           env->SetDoubleArrayRegion(array,start,len,buf);
+#else
            (*env)->SetDoubleArrayRegion(env, array,start,len,buf);
+#endif
            RESTOREENV;
        }
 
@@ -3033,7 +3974,11 @@ RegisterNatives(clazz,methods,nMethods)
        jint                    nMethods
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->RegisterNatives(clazz,methods,nMethods);
+#else
            RETVAL = (*env)->RegisterNatives(env, clazz,methods,nMethods);
+#endif
        }
 
 SysRet
@@ -3042,7 +3987,11 @@ UnregisterNatives(clazz)
        jclass                  clazz
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->UnregisterNatives(clazz);
+#else
            RETVAL = (*env)->UnregisterNatives(env, clazz);
+#endif
        }
     OUTPUT:
        RETVAL  
@@ -3053,7 +4002,11 @@ MonitorEnter(obj)
        jobject                 obj
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->MonitorEnter(obj);
+#else
            RETVAL = (*env)->MonitorEnter(env, obj);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -3065,7 +4018,11 @@ MonitorExit(obj)
        jobject                 obj
     CODE:
        {
+#ifdef WIN32
+           RETVAL = env->MonitorExit(obj);
+#else
            RETVAL = (*env)->MonitorExit(env, obj);
+#endif
            RESTOREENV;
        }
     OUTPUT:
@@ -3077,12 +4034,23 @@ GetJavaVM(...)
     CODE:
        {
            if (env) {  /* We're embedded. */
+#ifdef WIN32
+               if (env->GetJavaVM(&RETVAL) < 0)
+#else
                if ((*env)->GetJavaVM(env, &RETVAL) < 0)
+#endif
                    RETVAL = 0;
            }
            else {      /* We're embedding. */
-               JDK1_1InitArgs vm_args;
+#ifdef KAFFE
+                JavaVMInitArgs vm_args;
+#else
+                JDK1_1InitArgs vm_args;
+#endif
                char *lib;
+               if (jpldebug) {
+                   fprintf(stderr, "We're embedding Java in Perl.\n");
+               }
 
                if (items--) {
                    ++mark;
@@ -3090,47 +4058,84 @@ GetJavaVM(...)
                }
                else
                    lib = 0;
-
+               if (jpldebug) {
+                   fprintf(stderr, "lib is %s.\n", lib);
+               }
+#ifdef WIN32
+               if (!LoadLibrary("javai.dll")) {
+                   if (lib && !LoadLibrary(lib))
+                       croak("Can't load javai.dll");
+               }
+#else
+               if (jpldebug) {
+                   fprintf(stderr, "Opening Java shared library.\n");
+                }
+#ifdef KAFFE
+               if (!dlopen("libkaffevm.so", RTLD_LAZY|RTLD_GLOBAL)) {
+#else
                if (!dlopen("libjava.so", RTLD_LAZY|RTLD_GLOBAL)) {
+#endif
                    if (lib && !dlopen(lib, RTLD_LAZY|RTLD_GLOBAL))
-                       Perl_croak(aTHX_ "Can't load libjava.so");
+                       croak("Can't load Java shared library.");
                }
+#endif
 
                JNI_GetDefaultJavaVMInitArgs(&vm_args);
                vm_args.exit = &call_my_exit;
+               if (jpldebug) {
+            fprintf(stderr, "items = %d\n", items);
+            fprintf(stderr, "mark = %s\n", SvPV(*mark, PL_na));
+        }
+               ++mark;
                while (items > 1) {
-                   char *s = SvPV(*++mark,PL_na);
+                   char *s = SvPV(*mark,PL_na);
+                   ++mark;
+                   if (jpldebug) {
+                fprintf(stderr, "*s = %s\n", s);
+                fprintf(stderr, "val = %s\n", SvPV(*mark, PL_na));
+            }
                    items -= 2;
                    if (strEQ(s, "checkSource"))
-                       vm_args.checkSource = (jint)SvIV(*++mark);
+                       vm_args.checkSource = (jint)SvIV(*mark);
                    else if (strEQ(s, "nativeStackSize"))
-                       vm_args.nativeStackSize = (jint)SvIV(*++mark);
+                       vm_args.nativeStackSize = (jint)SvIV(*mark);
                    else if (strEQ(s, "javaStackSize"))
-                       vm_args.javaStackSize = (jint)SvIV(*++mark);
+                       vm_args.javaStackSize = (jint)SvIV(*mark);
                    else if (strEQ(s, "minHeapSize"))
-                       vm_args.minHeapSize = (jint)SvIV(*++mark);
+                       vm_args.minHeapSize = (jint)SvIV(*mark);
                    else if (strEQ(s, "maxHeapSize"))
-                       vm_args.maxHeapSize = (jint)SvIV(*++mark);
+                       vm_args.maxHeapSize = (jint)SvIV(*mark);
                    else if (strEQ(s, "verifyMode"))
-                       vm_args.verifyMode = (jint)SvIV(*++mark);
+                       vm_args.verifyMode = (jint)SvIV(*mark);
                    else if (strEQ(s, "classpath"))
-                       vm_args.classpath = savepv(SvPV(*++mark,PL_na));
+                       vm_args.classpath = savepv(SvPV(*mark,PL_na));
                    else if (strEQ(s, "enableClassGC"))
-                       vm_args.enableClassGC = (jint)SvIV(*++mark);
+                       vm_args.enableClassGC = (jint)SvIV(*mark);
                    else if (strEQ(s, "enableVerboseGC"))
-                       vm_args.enableVerboseGC = (jint)SvIV(*++mark);
+                       vm_args.enableVerboseGC = (jint)SvIV(*mark);
                    else if (strEQ(s, "disableAsyncGC"))
-                       vm_args.disableAsyncGC = (jint)SvIV(*++mark);
+                       vm_args.disableAsyncGC = (jint)SvIV(*mark);
+#ifndef KAFFE
                    else if (strEQ(s, "verbose"))
-                       vm_args.verbose = (jint)SvIV(*++mark);
+                       vm_args.verbose = (jint)SvIV(*mark); 
                    else if (strEQ(s, "debugging"))
-                       vm_args.debugging = (jboolean)SvIV(*++mark);
+                       vm_args.debugging = (jboolean)SvIV(*mark);
                    else if (strEQ(s, "debugPort"))
-                       vm_args.debugPort = (jint)SvIV(*++mark);
+                       vm_args.debugPort = (jint)SvIV(*mark); 
+#endif
                    else
-                       Perl_croak(aTHX_ "unrecognized option: %s", s);
+                       croak("unrecognized option: %s", s);
+               }
+
+               if (jpldebug) {
+                   fprintf(stderr, "Creating Java VM...\n");
+                   fprintf(stderr, "Working CLASSPATH: %s\n", 
+                       vm_args.classpath);
                }
                JNI_CreateJavaVM(&RETVAL, &jplcurenv, &vm_args);
+               if (jpldebug) {
+                   fprintf(stderr, "Created Java VM.\n");
+               }
            }
        }
 
diff --git a/jpl/JNI/JNIConfig b/jpl/JNI/JNIConfig
new file mode 100644 (file)
index 0000000..494de13
--- /dev/null
@@ -0,0 +1,13 @@
+eval `$JPL_SRC/setvars -perl`;
+$java = $ENV{JAVA_HOME};
+$jpl = $ENV{JPL_HOME};
+
+# Where are the Java includes?
+#
+@INCLUDE = ("$java/include", "$java/include/$^O", "$java/include/genunix");
+
+# Are we embedding Perl in Java?
+#
+$EMBEDDEDPERL = 1;
+
+1;
diff --git a/jpl/JNI/JNIConfig.Win32 b/jpl/JNI/JNIConfig.Win32
new file mode 100644 (file)
index 0000000..000566a
--- /dev/null
@@ -0,0 +1,21 @@
+# Are we using Kaffe?
+#
+$KAFFE = 0;
+
+# Where are the Java includes?
+#
+@INCLUDE = ("C:\\jdk1.1.8\\include", "C:\\jdk1.1.8\\include\\win32");
+
+# Are we embedding Perl in Java?
+#
+$EMBEDDEDPERL = 0;
+
+# Extra C flags
+#
+$CCFLAGS=" -Z7 -D_DEBUG";
+
+$MYEXTLIB = "C:\\jdk1.1.8\\lib\\javai.lib " .
+            "$Config{installarchlib}\\CORE\\perlcore.lib " .
+            "$Config{installarchlib}\\CORE\\perlcapi.lib";
+
+1;
diff --git a/jpl/JNI/JNIConfig.kaffe b/jpl/JNI/JNIConfig.kaffe
new file mode 100644 (file)
index 0000000..9b2fa87
--- /dev/null
@@ -0,0 +1,26 @@
+eval `$JPL_SRC/setvars -perl`;
+$java = $ENV{JAVA_HOME};
+$jpl = $ENV{JPL_HOME};
+
+# Are we using Kaffe?
+#
+$KAFFE = 1;
+
+# What is the name of the JVM library?
+#
+$LIBJVM="kaffevm";
+
+# Where is the JVM library?
+#
+$LIBLOC="/usr/local/lib";
+
+# Where are the Java includes?
+#
+#@INCLUDE = ('$java/include', '$java/include/$^O' '$java/include/genunix');
+@INCLUDE = ( '/usr/local/include/kaffe');
+
+# Are we embedding Perl in Java?
+#
+$EMBEDDEDPERL = 0;
+
+1;
diff --git a/jpl/JNI/JNIConfig.noembed b/jpl/JNI/JNIConfig.noembed
new file mode 100644 (file)
index 0000000..ae03b2c
--- /dev/null
@@ -0,0 +1,25 @@
+eval `$JPL_SRC/setvars -perl`;
+$java = $ENV{JAVA_HOME};
+$jpl = $ENV{JPL_HOME};
+
+# Are we using Kaffe?
+#
+$KAFFE = 0;
+
+# What is the name of the JVM library?
+#
+$LIBJVM="java";
+
+# Where is the JVM library?
+#
+$LIBLOC="/usr/local/java/lib/i686/green_threads/";
+
+# Where are the Java includes?
+#
+@INCLUDE = ("$java/include", "$java/include/$^O", "$java/include/genunix");
+
+# Are we embedding Perl in Java?
+#
+$EMBEDDEDPERL = 0;
+
+1;
diff --git a/jpl/JNI/JNIConfig.standard b/jpl/JNI/JNIConfig.standard
new file mode 100644 (file)
index 0000000..494de13
--- /dev/null
@@ -0,0 +1,13 @@
+eval `$JPL_SRC/setvars -perl`;
+$java = $ENV{JAVA_HOME};
+$jpl = $ENV{JPL_HOME};
+
+# Where are the Java includes?
+#
+@INCLUDE = ("$java/include", "$java/include/$^O", "$java/include/genunix");
+
+# Are we embedding Perl in Java?
+#
+$EMBEDDEDPERL = 1;
+
+1;
index 2611ff1..1a54b9d 100644 (file)
 #!/usr/bin/perl
-
-$JPL_SRC = "..";
-
 use ExtUtils::MakeMaker;
+use Getopt::Std;
 use Config;
+$ARCHNAME = $Config{archname};
+use File::Basename;
 
-eval `$JPL_SRC/setvars -perl`;
+getopts('e'); # embedding?
 
-$java = $ENV{JAVA_HOME};
-$jpl = $ENV{JPL_HOME};
+#require "JNIConfig";
 
-$ARCHNAME = $Config{archname};
+if ($^O eq 'solaris') {
+    $LIBPATH = " -R$Config{archlib}/CORE -L$Config{archlib}/CORE";
+} elsif ($^O eq 'MSWin32') {
+    $LIBPATH = " -L$Config{archlib}\\CORE";
+} else {
+    $LIBPATH = " -L$Config{archlib}/CORE";
+}
+#$LIBS = " -lperl";
 
-# See lib/ExtUtils/MakeMaker.pm for details of how to influence
-# the contents of the Makefile that is written.
-WriteMakefile(
-    NAME       => 'JNI',
+# Figure out where Java might live
+#
+my @JAVA_HOME_GUESSES = qw(/usr/local/java /usr/java /usr/local/jdk117_v3
+                           /usr/local/lib/kaffe C:\\JDK1.1.8
+                           C:\\JDK1.2.1 );
+if (! defined $ENV{JAVA_HOME}) {
+        print "You didn't define JAVA_HOME, so I'm trying a few guesses.\n";
+        print "If this fails, you might want to try setting JAVA_HOME and\n";
+        print "running me again.\n";
+} else {
+        @JAVA_HOME_GUESSES = ( $ENV{JAVA_HOME} );
+}
+
+# Let's find out where jni.h lives
+#
+my @INCLUDE = find_includes();
+$INC = join(" -I", ("", @INCLUDE));
+
+# Let's find out the name of the Java shared library
+#
+my @JAVALIBS = find_libs();
+
+# Find out some defines based on the library we are linking to
+#
+foreach (@JAVALIBS) {
+    if ( /javai.lib$/ or /jvm.lib$/) { # We're on Win32
+        $INC =~ s#/#\\#g;
+        $INC =~ s#\\$##;
+        $CCFLAGS .= "-DWIN32 -Z7 -D_DEBUG";
+        $MYEXTLIB = $libjava;
+    } elsif (/libkaffevm.so$/) {
+        $CCFLAGS .= "-DKAFFE";
+    }
+}
+
+# Let's find out the path of the library we need to link against.
+#
+foreach (@JAVALIBS) {
+    if ( /javai.lib$/ or /jvm.lib$/) { # We're on Win32
+        $_ =~ s#/#\\\\#g;
+    }
+    my ($libname, $libpath, $libsuffix) = fileparse($_, ("\.so", "\.lib"));
+    $libname =~ s/^lib//;
+    if ($^O eq 'solaris') {
+        $LIBPATH .= " -R$libpath -L$libpath"
+    } else {
+        $LIBPATH .= " -L$libpath"
+    }
+    $LIBS .= " -l$libname";
+}
+
+# Do we need -D_REENTRANT?
+if ($LIBPATH =~ /native/) {
+    print "Looks like native threads...\n";
+    $CCFLAGS .= " -D_REENTRANT";
+}
+
+if ($opt_e) {
+    print "We're embedding Perl in Java via libPerlInterpreter.so.\n";
+    eval `../setvars -perl`;
+    $CCFLAGS .= " -DEMBEDDEDPERL";
+    $LIBPATH .= " -R$ENV{JPL_HOME}/lib/$ARCHNAME -L$ENV{JPL_HOME}/lib/$ARCHNAME";
+    $LIBS    .= " -lPerlInterpreter";
+}
+
+# Needed for JNI.
+if ($^O eq 'solaris') {
+    $LIBS = " -lthread -lc $LIBS"; #-lthread must be first!!!
+    $CCFLAGS .= " -D_REENTRANT";
+}
+
+my %Makefile = (
+    NAME        => 'JNI',
     VERSION_FROM => 'JNI.pm',
-    LIBS       => ["-R$Config{archlib}/CORE -L$Config{archlib}/CORE -R$jpl/lib/$ARCHNAME -L$jpl/lib/$ARCHNAME -lperl -lPerlInterpreter"],
-    DEFINE     => '',
+    DEFINE        => '',
     LINKTYPE => 'dynamic',
-    INC        => "-I$java/include -I$java/include/$^O -I$java/include/genunix",
+    INC        => $INC,
+    CCFLAGS => "$Config{ccflags} $CCFLAGS", 
+    ($Config{archname} =~ /mswin32.*-object/i ? ('CAPI' => 'TRUE') : ()),
 );
+
+$Makefile{LIBS} = ["$LIBPATH $LIBS"];
+if ($MYEXTLIB) {
+    $Makefile{MYEXTLIB} = $MYEXTLIB;
+}
+
+# See lib/ExtUtils/MakeMaker.pm for details of how to influence
+# the contents of the Makefile that is written.
+#
+WriteMakefile(%Makefile);
+
+# subroutine to find a library
+#
+sub find_stuff {
+
+    my ($candidates, $locations) = @_;
+
+    my $lib;
+    $wanted = sub {
+        foreach my $name (@$candidates) {
+            if (/$name$/ and ! /green_threads/ and !/include-old/) {
+                    $lib = $File::Find::name;
+            }
+        }
+    };
+    
+    use File::Find;
+    foreach my $guess (@$locations) {
+        next unless -d $guess;
+        find (\&$wanted, $guess);
+    }
+    if (! $lib) {
+        print "Could not find @$candidates\n";
+    } else {
+        print "Found @$candidates as $lib\n\n";
+    }
+    return $lib;
+}
+
+# Extra lib for Java 1.2
+#
+sub find_libs {
+
+    my $libjava = find_stuff(['libjava.so', 'libkaffevm.so', 'javai.lib', 'jvm.lib'],
+                        \@JAVA_HOME_GUESSES);
+    my $libjvm  = find_stuff(['libjvm.so'],  \@JAVA_HOME_GUESSES);
+    if ($libjvm) { # JDK 1.2
+        my $libhpi  = find_stuff(['libhpi.so'], \@JAVA_HOME_GUESSES);
+        my $libawt  = find_stuff(['libawt.so'], \@JAVA_HOME_GUESSES);
+        return($libjava, $libjvm, $libhpi, $libawt);
+    } else {
+        return($libjava);
+    }
+
+}
+
+# We need to find jni.h and jni_md.h
+#
+sub find_includes {
+
+    my @CANDIDATES = qw(jni.h jni_md.h);
+    my @includes;
+
+    sub find_inc {
+        foreach my $name (@CANDIDATES) {
+            if (/$name$/) {
+                my ($hname, $hpath, $hsuffix) = 
+                    fileparse($File::Find::name, ("\.h", "\.H"));
+                unless ($hpath =~ /include-old/) {
+                    print "Found $hname$hsuffix in $hpath\n";
+                    push @includes, $hpath;
+                }
+            }
+        }
+    }
+    
+    use File::Find;
+    foreach my $guess (@JAVA_HOME_GUESSES) {
+        next unless -d $guess;
+        find (\&find_inc, $guess);
+    }
+    if (! @includes) {
+        die "Could not find Java includes!";
+    } else {
+        print join("\n", @includes), "\n";
+    }
+    return @includes;
+}
+
index 816e28b..9c5238e 100644 (file)
@@ -6,7 +6,7 @@
 # Change 1..1 below to 1..last_test_to_print .
 # (It may become useful if the test is moved to ./t subdirectory.)
 
-BEGIN { $| = 1; print "1..1\n"; }
+BEGIN { $| = 1; print "1..3\n"; }
 END {print "not ok 1\n" unless $loaded;}
 use JNI;
 $loaded = 1;
@@ -18,3 +18,41 @@ print "ok 1\n";
 # (correspondingly "not ok 13") depending on the success of chunk 13
 # of the test code):
 
+# Simple StringBuffer test.
+#
+use JPL::AutoLoader;
+use JPL::Class 'java::lang::StringBuffer';
+$sb = java::lang::StringBuffer->new__s("TEST");
+if ($sb->toString____s() eq "TEST") {
+    print "ok 2\n";
+} else {
+    print "not ok 2\n";
+}
+
+# Put up a frame and let the user close it.
+#
+use JPL::AutoLoader;
+use JPL::Class 'java::awt::Frame';
+use JPL::Class 'Closer';
+
+$f = java::awt::Frame->new__s("Close Me, Please!");
+my $setSize = getmeth("setSize", ["int", "int"], []);
+my $addWindowListener = getmeth("addWindowListener",
+            ["java.awt.event.WindowListener"], []);
+
+$f->$addWindowListener( new Closer );
+$f->$setSize(200,200);
+$f->show();
+
+while (1) {
+
+    if (!$f->isVisible____Z) {
+        last;
+    }
+
+    # Sleep a bit.
+    #
+    sleep 1;
+}
+
+print "ok 3\n";
index 6b97cf4..9bd0691 100644 (file)
@@ -55,13 +55,13 @@ T_JVALUELIST
            AV* av = (AV*)SvRV($arg);
            if (SvTYPE(av) == SVt_PVAV) {
                I32 maxarg = AvFILL(av) + 1;
-               $var = makeargs(aTHX_ sig, AvARRAY(av), maxarg);
+               $var = makeargs(sig, AvARRAY(av), maxarg);
            }
            else
-               Perl_croak(aTHX_ \"$var is not an array reference\");
+               croak(\"$var is not an array reference\");
        }
        else
-           Perl_croak(aTHX_ \"$var is not a reference\")
+           croak(\"$var is not a reference\")
 T_JIDSIG
        {
            $var = ($type)SvIV($arg);
@@ -73,7 +73,7 @@ T_JPTROBJ
            $var = ($type) tmp;
        }
        else
-           Perl_croak(aTHX_ \"$var is not of type ${ntype}\")
+           croak(\"$var is not of type ${ntype}\")
 
 OUTPUT
 T_JMEM
@@ -152,22 +152,22 @@ T_JPTROBJ
 #              if (sv_isa($arg, \"${ntype}\"))
 #                  $var = (SV*)SvRV($arg);
 #              else
-#                  Perl_croak(aTHX_ \"$var is not of type ${ntype}\")
+#                  croak(\"$var is not of type ${ntype}\")
 #      T_AVREF
 #              if (sv_isa($arg, \"${ntype}\"))
 #                  $var = (AV*)SvRV($arg);
 #              else
-#                  Perl_croak(aTHX_ \"$var is not of type ${ntype}\")
+#                  croak(\"$var is not of type ${ntype}\")
 #      T_HVREF
 #              if (sv_isa($arg, \"${ntype}\"))
 #                  $var = (HV*)SvRV($arg);
 #              else
-#                  Perl_croak(aTHX_ \"$var is not of type ${ntype}\")
+#                  croak(\"$var is not of type ${ntype}\")
 #      T_CVREF
 #              if (sv_isa($arg, \"${ntype}\"))
 #                  $var = (CV*)SvRV($arg);
 #              else
-#                  Perl_croak(aTHX_ \"$var is not of type ${ntype}\")
+#                  croak(\"$var is not of type ${ntype}\")
 #      T_SYSRET
 #              $var NOT IMPLEMENTED
 #      T_IV
@@ -208,28 +208,28 @@ T_JPTROBJ
 #                  $var = ($type) tmp;
 #              }
 #              else
-#                  Perl_croak(aTHX_ \"$var is not a reference\")
+#                  croak(\"$var is not a reference\")
 #      T_REF_IV_REF
 #              if (sv_isa($arg, \"${type}\")) {
 #                  IV tmp = SvIV((SV*)SvRV($arg));
 #                  $var = *($type *) tmp;
 #              }
 #              else
-#                  Perl_croak(aTHX_ \"$var is not of type ${ntype}\")
+#                  croak(\"$var is not of type ${ntype}\")
 #      T_REF_IV_PTR
 #              if (sv_isa($arg, \"${type}\")) {
 #                  IV tmp = SvIV((SV*)SvRV($arg));
 #                  $var = ($type) tmp;
 #              }
 #              else
-#                  Perl_croak(aTHX_ \"$var is not of type ${ntype}\")
+#                  croak(\"$var is not of type ${ntype}\")
 #      T_PTROBJ
 #              if (sv_derived_from($arg, \"${ntype}\")) {
 #                  IV tmp = SvIV((SV*)SvRV($arg));
 #                  $var = ($type) tmp;
 #              }
 #              else
-#                  Perl_croak(aTHX_ \"$var is not of type ${ntype}\")
+#                  croak(\"$var is not of type ${ntype}\")
 #      T_PTRDESC
 #              if (sv_isa($arg, \"${ntype}\")) {
 #                  IV tmp = SvIV((SV*)SvRV($arg));
@@ -237,21 +237,21 @@ T_JPTROBJ
 #                  $var = ${type}_desc->ptr;
 #              }
 #              else
-#                  Perl_croak(aTHX_ \"$var is not of type ${ntype}\")
+#                  croak(\"$var is not of type ${ntype}\")
 #      T_REFREF
 #              if (SvROK($arg)) {
 #                  IV tmp = SvIV((SV*)SvRV($arg));
 #                  $var = *($type) tmp;
 #              }
 #              else
-#                  Perl_croak(aTHX_ \"$var is not a reference\")
+#                  croak(\"$var is not a reference\")
 #      T_REFOBJ
 #              if (sv_isa($arg, \"${ntype}\")) {
 #                  IV tmp = SvIV((SV*)SvRV($arg));
 #                  $var = *($type) tmp;
 #              }
 #              else
-#                  Perl_croak(aTHX_ \"$var is not of type ${ntype}\")
+#                  croak(\"$var is not of type ${ntype}\")
 #      T_OPAQUE
 #              $var NOT IMPLEMENTED
 #      T_OPAQUEPTR
diff --git a/jpl/JNI/typemap.gcc b/jpl/JNI/typemap.gcc
new file mode 100644 (file)
index 0000000..9bd0691
--- /dev/null
@@ -0,0 +1,386 @@
+JavaVM *               T_JPTROBJ
+JNINativeMethod *      T_JPTROBJ
+const char *           T_PV
+const jbyte *          T_JMEM
+const jchar *          T_JMEM
+jarray                 T_JPTROBJ
+jboolean               T_IV
+jboolean *             T_JMEM
+jbooleanArray          T_JPTROBJ
+jbyte                  T_IV
+jbyte *                        T_JMEM
+jbyteArray             T_JPTROBJ
+jchar                  T_IV
+jchar *                        T_JMEM
+jcharArray             T_JPTROBJ
+jclass                 T_JPTROBJ
+jdouble                        T_NV
+jdouble *              T_JMEM
+jdoubleArray           T_JPTROBJ
+jfieldID               T_JIDSIG
+jfloat                 T_NV
+jfloat *               T_JMEM
+jfloatArray            T_JPTROBJ
+jint                   T_IV
+jint *                 T_JMEM
+jintArray              T_JPTROBJ
+jlong                  T_NV
+jlong *                        T_JMEM
+jlongArray             T_JPTROBJ
+jmethodID              T_JIDSIG
+jobject                        T_JPTROBJ
+jobjectArray           T_JPTROBJ
+jshort                 T_IV
+jshort *               T_JMEM
+jshortArray            T_JPTROBJ
+jsize                  T_IV
+jstring                        T_JSTRING
+jthrowable             T_JPTROBJ
+jvalue *               T_JVALUELIST
+
+INPUT
+T_JMEM
+       {
+           $var = ($type)SvPV($arg,tmplen);
+           ${var}_len_ = (jsize) tmplen / sizeof(${subtype});
+       }
+T_JSTRING
+       if (SvROK($arg)) {
+           $var = ($type)(void*)SvIV(SvRV($arg));
+       }
+       else
+           $var = ($type)(*env)->NewStringUTF(env, (char *) SvPV($arg,PL_na))
+T_JVALUELIST
+       if (SvROK($arg)) {
+           AV* av = (AV*)SvRV($arg);
+           if (SvTYPE(av) == SVt_PVAV) {
+               I32 maxarg = AvFILL(av) + 1;
+               $var = makeargs(sig, AvARRAY(av), maxarg);
+           }
+           else
+               croak(\"$var is not an array reference\");
+       }
+       else
+           croak(\"$var is not a reference\")
+T_JIDSIG
+       {
+           $var = ($type)SvIV($arg);
+           sig = (char*)SvPV($arg,PL_na);
+       }
+T_JPTROBJ
+       if (SvROK($arg) && SvOBJECT(SvRV($arg))) {
+           IV tmp = SvIV((SV*)SvRV($arg));
+           $var = ($type) tmp;
+       }
+       else
+           croak(\"$var is not of type ${ntype}\")
+
+OUTPUT
+T_JMEM
+       sv_setpvn((SV*)$arg, (char*)$var, (STRLEN)${var}_len_ * sizeof(${subtype}));
+T_JSTRING
+       {
+           static HV* ${var}_stashhv_ = 0;
+           if (!${var}_stashhv_)
+               ${var}_stashhv_ = gv_stashpv("java::lang::String", TRUE);
+        
+           sv_bless(
+               sv_setref_iv($arg, Nullch, (IV)(void*)${var}),
+               ${var}_stashhv_);
+       }
+T_JIDSIG
+       sv_setiv($arg, (IV)(void*)$var);
+       sv_setpv($arg, (char*)sig);
+       SvIOK_on($arg);
+T_JPTROBJ
+       sv_setref_pv($arg, \"${ntype}\", (void*)$var);
+
+# basic C types
+#      int                     T_IV
+#      unsigned                T_IV
+#      unsigned int            T_IV
+#      long                    T_IV
+#      unsigned long           T_IV
+#      short                   T_IV
+#      unsigned short          T_IV
+#      char                    T_CHAR
+#      unsigned char           T_U_CHAR
+#      char *                  T_PV
+#      unsigned char *         T_PV
+#      caddr_t                 T_PV
+#      wchar_t *               T_PV
+#      wchar_t                 T_IV
+#      bool_t                  T_IV
+#      size_t                  T_IV
+#      ssize_t                 T_IV
+#      time_t                  T_NV
+#      unsigned long *         T_OPAQUEPTR
+#      char **                 T_PACKED
+#      void *                  T_PTR
+#      Time_t *                T_PV
+#      SV *                    T_SV
+#      SVREF                   T_SVREF
+#      AV *                    T_AVREF
+#      HV *                    T_HVREF
+#      CV *                    T_CVREF
+#      
+#      IV                      T_IV
+#      I32                     T_IV
+#      I16                     T_IV
+#      I8                      T_IV
+#      U32                     T_U_LONG
+#      U16                     T_U_SHORT
+#      U8                      T_IV
+#      Result                  T_U_CHAR
+#      Boolean                 T_IV
+#      double                  T_DOUBLE
+#      SysRet                  T_SYSRET
+#      SysRetLong              T_SYSRET
+#      FILE *                  T_IN
+#      FileHandle              T_PTROBJ
+#      InputStream             T_IN
+#      InOutStream             T_INOUT
+#      OutputStream            T_OUT
+#      bool                    T_BOOL
+#
+#############################################################################
+#      INPUT
+#      T_SV
+#              $var = $arg
+#      T_SVREF
+#              if (sv_isa($arg, \"${ntype}\"))
+#                  $var = (SV*)SvRV($arg);
+#              else
+#                  croak(\"$var is not of type ${ntype}\")
+#      T_AVREF
+#              if (sv_isa($arg, \"${ntype}\"))
+#                  $var = (AV*)SvRV($arg);
+#              else
+#                  croak(\"$var is not of type ${ntype}\")
+#      T_HVREF
+#              if (sv_isa($arg, \"${ntype}\"))
+#                  $var = (HV*)SvRV($arg);
+#              else
+#                  croak(\"$var is not of type ${ntype}\")
+#      T_CVREF
+#              if (sv_isa($arg, \"${ntype}\"))
+#                  $var = (CV*)SvRV($arg);
+#              else
+#                  croak(\"$var is not of type ${ntype}\")
+#      T_SYSRET
+#              $var NOT IMPLEMENTED
+#      T_IV
+#              $var = ($type)SvIV($arg)
+#      T_INT
+#              $var = (int)SvIV($arg)
+#      T_ENUM
+#              $var = ($type)SvIV($arg)
+#      T_BOOL
+#              $var = (int)SvIV($arg)
+#      T_U_INT
+#              $var = (unsigned int)SvIV($arg)
+#      T_SHORT
+#              $var = (short)SvIV($arg)
+#      T_U_SHORT
+#              $var = (unsigned short)SvIV($arg)
+#      T_LONG
+#              $var = (long)SvIV($arg)
+#      T_U_LONG
+#              $var = (unsigned long)SvIV($arg)
+#      T_CHAR
+#              $var = (char)*SvPV($arg,PL_na)
+#      T_U_CHAR
+#              $var = (unsigned char)SvIV($arg)
+#      T_FLOAT
+#              $var = (float)SvNV($arg)
+#      T_NV
+#              $var = ($type)SvNV($arg)
+#      T_DOUBLE
+#              $var = (double)SvNV($arg)
+#      T_PV
+#              $var = ($type)SvPV($arg,PL_na)
+#      T_PTR
+#              $var = ($type)SvIV($arg)
+#      T_PTRREF
+#              if (SvROK($arg)) {
+#                  IV tmp = SvIV((SV*)SvRV($arg));
+#                  $var = ($type) tmp;
+#              }
+#              else
+#                  croak(\"$var is not a reference\")
+#      T_REF_IV_REF
+#              if (sv_isa($arg, \"${type}\")) {
+#                  IV tmp = SvIV((SV*)SvRV($arg));
+#                  $var = *($type *) tmp;
+#              }
+#              else
+#                  croak(\"$var is not of type ${ntype}\")
+#      T_REF_IV_PTR
+#              if (sv_isa($arg, \"${type}\")) {
+#                  IV tmp = SvIV((SV*)SvRV($arg));
+#                  $var = ($type) tmp;
+#              }
+#              else
+#                  croak(\"$var is not of type ${ntype}\")
+#      T_PTROBJ
+#              if (sv_derived_from($arg, \"${ntype}\")) {
+#                  IV tmp = SvIV((SV*)SvRV($arg));
+#                  $var = ($type) tmp;
+#              }
+#              else
+#                  croak(\"$var is not of type ${ntype}\")
+#      T_PTRDESC
+#              if (sv_isa($arg, \"${ntype}\")) {
+#                  IV tmp = SvIV((SV*)SvRV($arg));
+#                  ${type}_desc = (\U${type}_DESC\E*) tmp; 
+#                  $var = ${type}_desc->ptr;
+#              }
+#              else
+#                  croak(\"$var is not of type ${ntype}\")
+#      T_REFREF
+#              if (SvROK($arg)) {
+#                  IV tmp = SvIV((SV*)SvRV($arg));
+#                  $var = *($type) tmp;
+#              }
+#              else
+#                  croak(\"$var is not a reference\")
+#      T_REFOBJ
+#              if (sv_isa($arg, \"${ntype}\")) {
+#                  IV tmp = SvIV((SV*)SvRV($arg));
+#                  $var = *($type) tmp;
+#              }
+#              else
+#                  croak(\"$var is not of type ${ntype}\")
+#      T_OPAQUE
+#              $var NOT IMPLEMENTED
+#      T_OPAQUEPTR
+#              $var = ($type)SvPV($arg,PL_na)
+#      T_PACKED
+#              $var = XS_unpack_$ntype($arg)
+#      T_PACKEDARRAY
+#              $var = XS_unpack_$ntype($arg)
+#      T_CALLBACK
+#              $var = make_perl_cb_$type($arg)
+#      T_ARRAY
+#              $var = $ntype(items -= $argoff);
+#              U32 ix_$var = $argoff;
+#              while (items--) {
+#                  DO_ARRAY_ELEM;
+#              }
+#      T_IN
+#              $var = IoIFP(sv_2io($arg))
+#      T_INOUT
+#              $var = IoIFP(sv_2io($arg))
+#      T_OUT
+#              $var = IoOFP(sv_2io($arg))
+##############################################################################
+#      OUTPUT
+#      T_SV
+#              $arg = $var;
+#      T_SVREF
+#              $arg = newRV((SV*)$var);
+#      T_AVREF
+#              $arg = newRV((SV*)$var);
+#      T_HVREF
+#              $arg = newRV((SV*)$var);
+#      T_CVREF
+#              $arg = newRV((SV*)$var);
+#      T_IV
+#              sv_setiv($arg, (IV)$var);
+#      T_INT
+#              sv_setiv($arg, (IV)$var);
+#      T_SYSRET
+#              if ($var != -1) {
+#                  if ($var == 0)
+#                      sv_setpvn($arg, "0 but true", 10);
+#                  else
+#                      sv_setiv($arg, (IV)$var);
+#              }
+#      T_ENUM
+#              sv_setiv($arg, (IV)$var);
+#      T_BOOL
+#              $arg = boolSV($var);
+#      T_U_INT
+#              sv_setiv($arg, (IV)$var);
+#      T_SHORT
+#              sv_setiv($arg, (IV)$var);
+#      T_U_SHORT
+#              sv_setiv($arg, (IV)$var);
+#      T_LONG
+#              sv_setiv($arg, (IV)$var);
+#      T_U_LONG
+#              sv_setiv($arg, (IV)$var);
+#      T_CHAR
+#              sv_setpvn($arg, (char *)&$var, 1);
+#      T_U_CHAR
+#              sv_setiv($arg, (IV)$var);
+#      T_FLOAT
+#              sv_setnv($arg, (double)$var);
+#      T_NV
+#              sv_setnv($arg, (double)$var);
+#      T_DOUBLE
+#              sv_setnv($arg, (double)$var);
+#      T_PV
+#              sv_setpv((SV*)$arg, $var);
+#      T_PTR
+#              sv_setiv($arg, (IV)$var);
+#      T_PTRREF
+#              sv_setref_pv($arg, Nullch, (void*)$var);
+#      T_REF_IV_REF
+#              sv_setref_pv($arg, \"${ntype}\", (void*)new $ntype($var));
+#      T_REF_IV_PTR
+#              sv_setref_pv($arg, \"${ntype}\", (void*)$var);
+#      T_PTROBJ
+#              sv_setref_pv($arg, \"${ntype}\", (void*)$var);
+#      T_PTRDESC
+#              sv_setref_pv($arg, \"${ntype}\", (void*)new\U${type}_DESC\E($var));
+#      T_REFREF
+#              sv_setrefref($arg, \"${ntype}\", XS_service_$ntype,
+#                          ($var ? (void*)new $ntype($var) : 0));
+#      T_REFOBJ
+#              NOT IMPLEMENTED
+#      T_OPAQUE
+#              sv_setpvn($arg, (char *)&$var, sizeof($var));
+#      T_OPAQUEPTR
+#              sv_setpvn($arg, (char *)$var, sizeof(*$var)), XFree((char *)$var);
+#      T_PACKED
+#              XS_pack_$ntype($arg, $var);
+#      T_PACKEDARRAY
+#              XS_pack_$ntype($arg, $var, count_$ntype);
+#      T_DATAUNIT      
+#              sv_setpvn($arg, $var.chp(), $var.size());
+#      T_CALLBACK
+#              sv_setpvn($arg, $var.context.value().chp(),
+#                      $var.context.value().size());
+#      T_ARRAY
+#              ST_EXTEND($var.size);
+#              for (U32 ix_$var = 0; ix_$var < $var.size; ix_$var++) {
+#                      ST(ix_$var) = sv_newmortal();
+#              DO_ARRAY_ELEM
+#              }
+#              sp += $var.size - 1;
+#      T_IN
+#              {
+#                  GV *gv = newGVgen("$Package");
+#                  if ( do_open(gv, "<&", 2, FALSE, 0, 0, $var) )
+#                      sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)));
+#                  else
+#                      $arg = &PL_sv_undef;
+#              }
+#      T_INOUT
+#              {
+#                  GV *gv = newGVgen("$Package");
+#                  if ( do_open(gv, "+<&", 3, FALSE, 0, 0, $var) )
+#                      sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)));
+#                  else
+#                      $arg = &PL_sv_undef;
+#              }
+#      T_OUT
+#              {
+#                  GV *gv = newGVgen("$Package");
+#                  if ( do_open(gv, "+>&", 3, FALSE, 0, 0, $var) )
+#                      sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)));
+#                  else
+#                      $arg = &PL_sv_undef;
+#              }
diff --git a/jpl/JNI/typemap.win32 b/jpl/JNI/typemap.win32
new file mode 100644 (file)
index 0000000..89eb8df
--- /dev/null
@@ -0,0 +1,386 @@
+JavaVM *               T_JPTROBJ
+JNINativeMethod *      T_JPTROBJ
+const char *           T_PV
+const jbyte *          T_JMEM
+const jchar *          T_JMEM
+jarray                 T_JPTROBJ
+jboolean               T_IV
+jboolean *             T_JMEM
+jbooleanArray          T_JPTROBJ
+jbyte                  T_IV
+jbyte *                        T_JMEM
+jbyteArray             T_JPTROBJ
+jchar                  T_IV
+jchar *                        T_JMEM
+jcharArray             T_JPTROBJ
+jclass                 T_JPTROBJ
+jdouble                        T_NV
+jdouble *              T_JMEM
+jdoubleArray           T_JPTROBJ
+jfieldID               T_JIDSIG
+jfloat                 T_NV
+jfloat *               T_JMEM
+jfloatArray            T_JPTROBJ
+jint                   T_IV
+jint *                 T_JMEM
+jintArray              T_JPTROBJ
+jlong                  T_NV
+jlong *                        T_JMEM
+jlongArray             T_JPTROBJ
+jmethodID              T_JIDSIG
+jobject                        T_JPTROBJ
+jobjectArray           T_JPTROBJ
+jshort                 T_IV
+jshort *               T_JMEM
+jshortArray            T_JPTROBJ
+jsize                  T_IV
+jstring                        T_JSTRING
+jthrowable             T_JPTROBJ
+jvalue *               T_JVALUELIST
+
+INPUT
+T_JMEM
+       {
+           $var = ($type)SvPV($arg,tmplen);
+           ${var}_len_ = (jsize) tmplen / sizeof(${subtype});
+       }
+T_JSTRING
+       if (SvROK($arg)) {
+           $var = ($type)(void*)SvIV(SvRV($arg));
+       }
+       else
+           $var = ($type)env->NewStringUTF((char *) SvPV($arg,PL_na))
+T_JVALUELIST
+       if (SvROK($arg)) {
+           AV* av = (AV*)SvRV($arg);
+           if (SvTYPE(av) == SVt_PVAV) {
+               I32 maxarg = AvFILL(av) + 1;
+               $var = makeargs(sig, AvARRAY(av), maxarg);
+           }
+           else
+               croak(\"$var is not an array reference\");
+       }
+       else
+           croak(\"$var is not a reference\")
+T_JIDSIG
+       {
+           $var = ($type)SvIV($arg);
+           sig = (char*)SvPV($arg,PL_na);
+       }
+T_JPTROBJ
+       if (SvROK($arg) && SvOBJECT(SvRV($arg))) {
+           IV tmp = SvIV((SV*)SvRV($arg));
+           $var = ($type) tmp;
+       }
+       else
+           croak(\"$var is not of type ${ntype}\")
+
+OUTPUT
+T_JMEM
+       sv_setpvn((SV*)$arg, (char*)$var, (STRLEN)${var}_len_ * sizeof(${subtype}));
+T_JSTRING
+       {
+           static HV* ${var}_stashhv_ = 0;
+           if (!${var}_stashhv_)
+               ${var}_stashhv_ = gv_stashpv("java::lang::String", TRUE);
+        
+           sv_bless(
+               sv_setref_iv($arg, Nullch, (IV)(void*)${var}),
+               ${var}_stashhv_);
+       }
+T_JIDSIG
+       sv_setiv($arg, (IV)(void*)$var);
+       sv_setpv($arg, (char*)sig);
+       SvIOK_on($arg);
+T_JPTROBJ
+       sv_setref_pv($arg, \"${ntype}\", (void*)$var);
+
+# basic C types
+#      int                     T_IV
+#      unsigned                T_IV
+#      unsigned int            T_IV
+#      long                    T_IV
+#      unsigned long           T_IV
+#      short                   T_IV
+#      unsigned short          T_IV
+#      char                    T_CHAR
+#      unsigned char           T_U_CHAR
+#      char *                  T_PV
+#      unsigned char *         T_PV
+#      caddr_t                 T_PV
+#      wchar_t *               T_PV
+#      wchar_t                 T_IV
+#      bool_t                  T_IV
+#      size_t                  T_IV
+#      ssize_t                 T_IV
+#      time_t                  T_NV
+#      unsigned long *         T_OPAQUEPTR
+#      char **                 T_PACKED
+#      void *                  T_PTR
+#      Time_t *                T_PV
+#      SV *                    T_SV
+#      SVREF                   T_SVREF
+#      AV *                    T_AVREF
+#      HV *                    T_HVREF
+#      CV *                    T_CVREF
+#      
+#      IV                      T_IV
+#      I32                     T_IV
+#      I16                     T_IV
+#      I8                      T_IV
+#      U32                     T_U_LONG
+#      U16                     T_U_SHORT
+#      U8                      T_IV
+#      Result                  T_U_CHAR
+#      Boolean                 T_IV
+#      double                  T_DOUBLE
+#      SysRet                  T_SYSRET
+#      SysRetLong              T_SYSRET
+#      FILE *                  T_IN
+#      FileHandle              T_PTROBJ
+#      InputStream             T_IN
+#      InOutStream             T_INOUT
+#      OutputStream            T_OUT
+#      bool                    T_BOOL
+#
+#############################################################################
+#      INPUT
+#      T_SV
+#              $var = $arg
+#      T_SVREF
+#              if (sv_isa($arg, \"${ntype}\"))
+#                  $var = (SV*)SvRV($arg);
+#              else
+#                  croak(\"$var is not of type ${ntype}\")
+#      T_AVREF
+#              if (sv_isa($arg, \"${ntype}\"))
+#                  $var = (AV*)SvRV($arg);
+#              else
+#                  croak(\"$var is not of type ${ntype}\")
+#      T_HVREF
+#              if (sv_isa($arg, \"${ntype}\"))
+#                  $var = (HV*)SvRV($arg);
+#              else
+#                  croak(\"$var is not of type ${ntype}\")
+#      T_CVREF
+#              if (sv_isa($arg, \"${ntype}\"))
+#                  $var = (CV*)SvRV($arg);
+#              else
+#                  croak(\"$var is not of type ${ntype}\")
+#      T_SYSRET
+#              $var NOT IMPLEMENTED
+#      T_IV
+#              $var = ($type)SvIV($arg)
+#      T_INT
+#              $var = (int)SvIV($arg)
+#      T_ENUM
+#              $var = ($type)SvIV($arg)
+#      T_BOOL
+#              $var = (int)SvIV($arg)
+#      T_U_INT
+#              $var = (unsigned int)SvIV($arg)
+#      T_SHORT
+#              $var = (short)SvIV($arg)
+#      T_U_SHORT
+#              $var = (unsigned short)SvIV($arg)
+#      T_LONG
+#              $var = (long)SvIV($arg)
+#      T_U_LONG
+#              $var = (unsigned long)SvIV($arg)
+#      T_CHAR
+#              $var = (char)*SvPV($arg,PL_na)
+#      T_U_CHAR
+#              $var = (unsigned char)SvIV($arg)
+#      T_FLOAT
+#              $var = (float)SvNV($arg)
+#      T_NV
+#              $var = ($type)SvNV($arg)
+#      T_DOUBLE
+#              $var = (double)SvNV($arg)
+#      T_PV
+#              $var = ($type)SvPV($arg,PL_na)
+#      T_PTR
+#              $var = ($type)SvIV($arg)
+#      T_PTRREF
+#              if (SvROK($arg)) {
+#                  IV tmp = SvIV((SV*)SvRV($arg));
+#                  $var = ($type) tmp;
+#              }
+#              else
+#                  croak(\"$var is not a reference\")
+#      T_REF_IV_REF
+#              if (sv_isa($arg, \"${type}\")) {
+#                  IV tmp = SvIV((SV*)SvRV($arg));
+#                  $var = *($type *) tmp;
+#              }
+#              else
+#                  croak(\"$var is not of type ${ntype}\")
+#      T_REF_IV_PTR
+#              if (sv_isa($arg, \"${type}\")) {
+#                  IV tmp = SvIV((SV*)SvRV($arg));
+#                  $var = ($type) tmp;
+#              }
+#              else
+#                  croak(\"$var is not of type ${ntype}\")
+#      T_PTROBJ
+#              if (sv_derived_from($arg, \"${ntype}\")) {
+#                  IV tmp = SvIV((SV*)SvRV($arg));
+#                  $var = ($type) tmp;
+#              }
+#              else
+#                  croak(\"$var is not of type ${ntype}\")
+#      T_PTRDESC
+#              if (sv_isa($arg, \"${ntype}\")) {
+#                  IV tmp = SvIV((SV*)SvRV($arg));
+#                  ${type}_desc = (\U${type}_DESC\E*) tmp; 
+#                  $var = ${type}_desc->ptr;
+#              }
+#              else
+#                  croak(\"$var is not of type ${ntype}\")
+#      T_REFREF
+#              if (SvROK($arg)) {
+#                  IV tmp = SvIV((SV*)SvRV($arg));
+#                  $var = *($type) tmp;
+#              }
+#              else
+#                  croak(\"$var is not a reference\")
+#      T_REFOBJ
+#              if (sv_isa($arg, \"${ntype}\")) {
+#                  IV tmp = SvIV((SV*)SvRV($arg));
+#                  $var = *($type) tmp;
+#              }
+#              else
+#                  croak(\"$var is not of type ${ntype}\")
+#      T_OPAQUE
+#              $var NOT IMPLEMENTED
+#      T_OPAQUEPTR
+#              $var = ($type)SvPV($arg,PL_na)
+#      T_PACKED
+#              $var = XS_unpack_$ntype($arg)
+#      T_PACKEDARRAY
+#              $var = XS_unpack_$ntype($arg)
+#      T_CALLBACK
+#              $var = make_perl_cb_$type($arg)
+#      T_ARRAY
+#              $var = $ntype(items -= $argoff);
+#              U32 ix_$var = $argoff;
+#              while (items--) {
+#                  DO_ARRAY_ELEM;
+#              }
+#      T_IN
+#              $var = IoIFP(sv_2io($arg))
+#      T_INOUT
+#              $var = IoIFP(sv_2io($arg))
+#      T_OUT
+#              $var = IoOFP(sv_2io($arg))
+##############################################################################
+#      OUTPUT
+#      T_SV
+#              $arg = $var;
+#      T_SVREF
+#              $arg = newRV((SV*)$var);
+#      T_AVREF
+#              $arg = newRV((SV*)$var);
+#      T_HVREF
+#              $arg = newRV((SV*)$var);
+#      T_CVREF
+#              $arg = newRV((SV*)$var);
+#      T_IV
+#              sv_setiv($arg, (IV)$var);
+#      T_INT
+#              sv_setiv($arg, (IV)$var);
+#      T_SYSRET
+#              if ($var != -1) {
+#                  if ($var == 0)
+#                      sv_setpvn($arg, "0 but true", 10);
+#                  else
+#                      sv_setiv($arg, (IV)$var);
+#              }
+#      T_ENUM
+#              sv_setiv($arg, (IV)$var);
+#      T_BOOL
+#              $arg = boolSV($var);
+#      T_U_INT
+#              sv_setiv($arg, (IV)$var);
+#      T_SHORT
+#              sv_setiv($arg, (IV)$var);
+#      T_U_SHORT
+#              sv_setiv($arg, (IV)$var);
+#      T_LONG
+#              sv_setiv($arg, (IV)$var);
+#      T_U_LONG
+#              sv_setiv($arg, (IV)$var);
+#      T_CHAR
+#              sv_setpvn($arg, (char *)&$var, 1);
+#      T_U_CHAR
+#              sv_setiv($arg, (IV)$var);
+#      T_FLOAT
+#              sv_setnv($arg, (double)$var);
+#      T_NV
+#              sv_setnv($arg, (double)$var);
+#      T_DOUBLE
+#              sv_setnv($arg, (double)$var);
+#      T_PV
+#              sv_setpv((SV*)$arg, $var);
+#      T_PTR
+#              sv_setiv($arg, (IV)$var);
+#      T_PTRREF
+#              sv_setref_pv($arg, Nullch, (void*)$var);
+#      T_REF_IV_REF
+#              sv_setref_pv($arg, \"${ntype}\", (void*)new $ntype($var));
+#      T_REF_IV_PTR
+#              sv_setref_pv($arg, \"${ntype}\", (void*)$var);
+#      T_PTROBJ
+#              sv_setref_pv($arg, \"${ntype}\", (void*)$var);
+#      T_PTRDESC
+#              sv_setref_pv($arg, \"${ntype}\", (void*)new\U${type}_DESC\E($var));
+#      T_REFREF
+#              sv_setrefref($arg, \"${ntype}\", XS_service_$ntype,
+#                          ($var ? (void*)new $ntype($var) : 0));
+#      T_REFOBJ
+#              NOT IMPLEMENTED
+#      T_OPAQUE
+#              sv_setpvn($arg, (char *)&$var, sizeof($var));
+#      T_OPAQUEPTR
+#              sv_setpvn($arg, (char *)$var, sizeof(*$var)), XFree((char *)$var);
+#      T_PACKED
+#              XS_pack_$ntype($arg, $var);
+#      T_PACKEDARRAY
+#              XS_pack_$ntype($arg, $var, count_$ntype);
+#      T_DATAUNIT      
+#              sv_setpvn($arg, $var.chp(), $var.size());
+#      T_CALLBACK
+#              sv_setpvn($arg, $var.context.value().chp(),
+#                      $var.context.value().size());
+#      T_ARRAY
+#              ST_EXTEND($var.size);
+#              for (U32 ix_$var = 0; ix_$var < $var.size; ix_$var++) {
+#                      ST(ix_$var) = sv_newmortal();
+#              DO_ARRAY_ELEM
+#              }
+#              sp += $var.size - 1;
+#      T_IN
+#              {
+#                  GV *gv = newGVgen("$Package");
+#                  if ( do_open(gv, "<&", 2, FALSE, 0, 0, $var) )
+#                      sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)));
+#                  else
+#                      $arg = &PL_sv_undef;
+#              }
+#      T_INOUT
+#              {
+#                  GV *gv = newGVgen("$Package");
+#                  if ( do_open(gv, "+<&", 3, FALSE, 0, 0, $var) )
+#                      sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)));
+#                  else
+#                      $arg = &PL_sv_undef;
+#              }
+#      T_OUT
+#              {
+#                  GV *gv = newGVgen("$Package");
+#                  if ( do_open(gv, "+>&", 3, FALSE, 0, 0, $var) )
+#                      sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)));
+#                  else
+#                      $arg = &PL_sv_undef;
+#              }
index efb606d..02e5b45 100644 (file)
@@ -1,36 +1,6 @@
-#!/usr/bin/perl
-
-$JPL_SRC = "..";
-
-use Config;
-
-eval `$JPL_SRC/setvars -perl`;
-
-open(MAKEFILE, ">Makefile");
-
-print MAKEFILE <<"SUBS";
-PERL = perl$]
-ARCHNAME = $Config{archname}
-JAVA_HOME = $ENV{JAVA_HOME}
-JPL_HOME = $ENV{JPL_HOME}
-PERLARCHDIR = $Config{archlib}
-
-SUBS
-
-print MAKEFILE <<'NOSUBS';
-
-all:
-
-debug:
-
-test:
-
-install:
-       mkdir -p $(JPL_HOME)/perl/JPL
-       cp *.p[ml] $(JPL_HOME)/perl/JPL
-
-clean:
-
-NOSUBS
-
-close MAKEFILE;
+use ExtUtils::MakeMaker;
+# See lib/ExtUtils/MakeMaker.pm for details of how to influence
+# the contents of the Makefile that is written.
+WriteMakefile(
+    'NAME'     => 'JPL::Class',
+);
index 76852c6..b8b20f1 100644 (file)
@@ -9,12 +9,16 @@ eval `$JPL_SRC/setvars -perl`;
 if ($^O eq 'linux') {
     $flags = "-Dbool=char";    # avoid builtin bool altogether
     $libs = "-lc -lm -ldl";
-}
-else {
+} else {
     $flags = "";
     $libs = "-lc -lm -ldl";
 }
 
+# Needed for JNI.
+if ($^O eq 'solaris') {
+    $libs .= " -lthread";
+}
+
 open(MAKEFILE, ">Makefile");
 
 print MAKEFILE <<"SUBS";
index b229d13..8134f0c 100644 (file)
@@ -8,6 +8,37 @@
 #include "EXTERN.h"
 #include "perl.h"
 
+#ifndef PERL_VERSION
+#  include <patchlevel.h>
+#  define PERL_REVISION                5
+#  define PERL_VERSION         PATCHLEVEL
+#  define PERL_SUBVERSION      SUBVERSION
+#endif
+
+#if PERL_REVISION == 5 && (PERL_VERSION < 4 || \
+                          (PERL_VERSION == 4 && PERL_SUBVERSION <= 75))
+#  define PL_na                                na
+#  define PL_sv_no                     sv_no
+#  define PL_sv_undef                  sv_undef
+#  define PL_dowarn                    dowarn
+#  define PL_curinterp                 curinterp
+#  define PL_do_undump                 do_undump
+#  define PL_perl_destruct_level       perl_destruct_level
+#  define ERRSV                                GvSV(errgv)
+#endif
+
+#ifndef newSVpvn
+#  define newSVpvn(a,b)        newSVpv(a,b)
+#endif
+
+#ifndef pTHX
+#  define pTHX         void
+#  define pTHX_
+#  define aTHX
+#  define aTHX_
+#  define dTHX         extern int JNI___notused
+#endif
+
 #ifndef EXTERN_C
 #  ifdef __cplusplus
 #    define EXTERN_C extern "C"
@@ -46,6 +77,8 @@ Java_PerlInterpreter_init(JNIEnv *env, jobject obj, jstring js)
     if (PL_curinterp)
        return;
 
+    perl_init_i18nl10n(1);
+
     if (!PL_do_undump) {
        my_perl = perl_alloc();
        if (!my_perl)
@@ -62,21 +95,20 @@ Java_PerlInterpreter_init(JNIEnv *env, jobject obj, jstring js)
 }
 
 JNIEXPORT void JNICALL
-Java_PerlInterpreter_eval(void *perl, JNIEnv *env, jobject obj, jstring js)
+Java_PerlInterpreter_eval(JNIEnv *env, jobject obj, jstring js)
 {
     SV* envsv;
     SV* objsv;
     dSP;
     jbyte* jb;
-    dTHXa(perl);
 
     ENTER;
     SAVETMPS;
 
     jplcurenv = env;
-    envsv = get_sv("JPL::_env_", 1);
+    envsv = perl_get_sv("JPL::_env_", 1);
     sv_setiv(envsv, (IV)(void*)env);
-    objsv = get_sv("JPL::_obj_", 1);
+    objsv = perl_get_sv("JPL::_obj_", 1);
     sv_setiv(objsv, (IV)(void*)obj);
 
     jb = (jbyte*)(*env)->GetStringUTFChars(env,js,0);
@@ -84,7 +116,7 @@ Java_PerlInterpreter_eval(void *perl, JNIEnv *env, jobject obj, jstring js)
     if (jpldebug)
        fprintf(stderr, "eval %s\n", (char*)jb);
 
-    eval_pv( (char*)jb, 0 );
+    perl_eval_pv( (char*)jb, 0 );
 
     if (SvTRUE(ERRSV)) {
        jthrowable newExcCls;
@@ -105,9 +137,8 @@ Java_PerlInterpreter_eval(void *perl, JNIEnv *env, jobject obj, jstring js)
 
 /*
 JNIEXPORT jint JNICALL
-Java_PerlInterpreter_eval(void *perl, JNIEnv *env, jobject obj, jint ji)
+Java_PerlInterpreter_eval(JNIEnv *env, jobject obj, jint ji)
 {
-    dTHXa(perl);
     op = (OP*)(void*)ji;
     op = (*op->op_ppaddr)(pTHX);
     return (jint)(void*)op;
index 4927a5f..22fdf52 100644 (file)
@@ -21,7 +21,7 @@ JNIEXPORT void JNICALL Java_PerlInterpreter_init
  * Signature: (Ljava/lang/String;)V
  */
 JNIEXPORT void JNICALL Java_PerlInterpreter_eval
-  (void *perl, JNIEnv *, jobject, jstring);
+  (JNIEnv *, jobject, jstring);
 
 #ifdef __cplusplus
 }
index eb900f0..57f52c4 100644 (file)
@@ -9,12 +9,13 @@ from the network.  Don't expect not to be surprised occasionally.
 
 Requirements
 ------------
-Perl 5.005_02 (or later) must be compiled and installed as a shared library
-(libperl.so).  I had to use the system's malloc.  JPL was originally built
-and tested with 5.004_04 and early Java 1.1 development kits.  This version
-has not been well tested under 5.005_02, so you can expect some rough edges.
+Under Solaris and Linux (and other Unix-like systems), Perl 5.005 (or later)
+must be compiled and installed as a shared library (libperl.so).  I had to use
+the system's malloc.  JPL was originally built and tested with 5.004_04 and
+early Java 1.1 development kits.  This version has not been well tested under
+other versions, so you can expect some rough edges.
 
-You need JDK 1.1.  On Solaris 1.1.5 has been verified to work.  Linux
+You need JDK 1.1.  On Solaris, 1.1.5 has been verified to work.  Linux
 users can try the latest version (1.1.3 or later) available from (for
 example):
 
@@ -28,6 +29,21 @@ You may need to ensure that all files under the ../jpl directory are writable.
 install-jpl expects to be run with super-user privileges so that it can
 put things in the right places.
 
+Microsoft Windows
+-----------------
+Only a subset of JPL works under Microsoft Windows.  This subset includes
+the JNI extension and the JPL module.  This is enough for you to embed
+Java in Perl, but not Perl in Java.
+
+This has only been tested with the Sun JDK 1.1.8. I haven't tested it
+with JDK 1.2 (aka Java 2) or any Microsoft implementation of Java.
+
+Kaffe
+-----
+You might notice some mention of Kaffe (www.kaffe.org) in the source files. 
+This is because some preliminary work is being done in this area, but JPL
+doesn't yet work with Kaffe.
+
 What the heck is JPL?
 ---------------------
 JPL is a hybrid (to use the polite term) language.  It's basically Java
@@ -58,6 +74,25 @@ file it generates.
 
 Installation
 ------------
+There are two ways to install JPL.
+
+The first way gives you the ability to embed Perl in Java programs. You
+can also call back into Java from your embedded Perl programs. This should
+work well with most JDKs, and is the only option for people using a JDK
+that uses green threads (see your JDK documentation). 
+
+The second way lets you embed Java in Perl, but doesn't provide support
+for the other direction. This is good, in theory, if you need to work with
+a lot of Java classes from within Perl.  I say "in theory," because this 
+doesn't actually work a lot of the time.  To use this second way, you
+must be using a JDK with native threads.
+
+At this point, the second way is the only way to use JPL under Microsoft 
+Windows. Oddly enough, this is the only platform under which the second 
+way works!
+
+Installation the First Way (All of JPL)
+---------------------------------------
 Run "install-jpl".  You have to tell it whether you want to use the
 current directory for JPL_HOME or some other directory.  Everything
 else should take care of itself, except that after install-jpl
@@ -68,6 +103,124 @@ before any JPL applications can be compiled under the current shell.
     csh:  eval `setvars -csh`
     perl: eval `setvars -perl`;
 
+install-jpl has been tested under:
+
+    Solaris 2.5.1 SPARC, GCC 2.8.0, Perl 5.005_03, JDK 1.1.7
+    Debian 2.1 x86, Perl 5.005_60, JDK 1.1.7v3
+
+********************
+Solaris 2.5.1 Users:
+********************
+
+NOTE: Under Solaris 2.5.1, you may get an error message when install-jpl
+builds Sample.jpl:
+
+    You must install a Solaris patch to run this version of the Java 
+    runtime.  Please see the README and release notes for more 
+    information.
+    Exiting.
+
+  This is apparently a spurious message, and it has been reported to 
+  Sun.  Although this message aborts the installation, all of JPL is 
+  installed by the time this message is reached. To recover and continue, 
+  run setvars as described above, cd to the Sample directory, and type
+  'make' to continue building. You can then run 'java Sample' to test the 
+  example.
+
+  Unfortunately, each time you use 'make' to build a JPL application,
+  it will abort when it tries to run 'perl -c' on the generated .pl
+  file.  However, you can continue building by typing 'make' again.
+
+Just-JNI (call into Java from Perl only)
+----------------------------------------
+
+This has been tested with:
+
+    Debian 2.1 SPARC, Perl 5.005_60, JDK 1.2 beta (crashes with AWT, though)
+    Windows NT 4.0 SP4, ActivePerl 519, JDK 1.1.8, Visual C++
+    Solaris 7, Perl 5.005_03, JDK 1.1.6, GCC 2.8.1
+
+Solaris 7 Note (this probably applies to all native thread situations):
+
+    Native threads were tricky. I had to build my own Perl, configured with:
+
+    sh Configure -Dprefix=/opt/perl5.005 -Duseshrplib -Doptimize=-g \
+                 -Uusemymalloc -D cc=gcc -Dusethreads -d
+
+    When Configure let me edit config.sh, I changed libs to:
+
+    libs='-lthread -lsocket -lnsl -ldl -lm -lposix4 -lpthread -lc -lcrypt'
+
+    The leading -lthread is the only thing I had to add.
+
+How do I do this crazy thing?
+
+1) Cd into the JPL directory. Type the following:
+
+    perl Makefile.PL
+    make
+    make install
+
+   Under windows, that's:
+
+    perl Makefile.PL
+    nmake
+    nmake install
+
+3) cd into the JNI directory (cd ../JNI or cd ..\JNI)   
+
+4) We now need to compile and make the Closer.class available to your 
+   JPL program.  Closer is a WindowListener that closes the Frame we 
+   make in the test program.
+
+   It seems that we've managed to fix the problem with CLASSPATH not
+   getting propagated to the JVM, so if '.' is in your CLASSPATH, you
+   should be able to compile Closer.java and leave it in the current
+   directory:
+
+       javac Closer.java
+
+5) Make the demo:
+
+    a) If you are on Windows, copy typemap.win32:
+
+        copy typemap.win32 typemap
+
+       (this step will probably go away when we clean up some of the
+        WIN32 #defines)
+
+    b) type the following:
+
+        perl Makefile.PL
+        make
+        make test
+
+       Under Windows:
+
+        perl Makefile.PL
+        nmake
+        nmake test
+
+
+    c) if all went well, type:
+
+        make install
+
+       or, under Windows:
+
+        nmake install
+
+Mailing List
+------------
+To subscribe to the jpl mailing list, send an email message to 
+jpl-subscribe@perl.org.
+
+CVS Access
+----------
+Information on accessing the bleeding edge JPL via CVS can be found at:
+
+    http://users.ids.net/~bjepson/jpl/cvs.html
+
 More Info
 ---------
 
diff --git a/jpl/SETVARS.PL b/jpl/SETVARS.PL
new file mode 100644 (file)
index 0000000..d3d85b4
--- /dev/null
@@ -0,0 +1,11 @@
+# Your JDK top-level directory.
+#
+$ENV{JAVA_HOME} = 'c:\jdk1.1.8';
+
+# The location where you extracted JPL.
+#
+$ENV{JPL_HOME} = 'D:\jpl';
+
+# The executeable name of Perl
+#
+$ENV{JPLPERL} = 'perl';
index 944c7e1..cd6b093 100644 (file)
@@ -14,11 +14,16 @@ $WHAT =~ s#.*/##;
 if ($^O eq 'linux') {
     $flags = "-Dbool=char";    # avoid builtin bool altogether
     $libs = "-lc -lm -ldl";
-}
-else {
+} else {
     $flags = "";
     $libs = "-lc -lm -ldl";
 }
+
+# Needed for JNI
+if ($^O eq 'solaris') {
+    $libs .= " -lthread";
+}
+
 chop($cwd = `pwd`);
 ($jpldir = $cwd) =~ s#/[^/]*$##;
 
@@ -65,7 +70,8 @@ lib$(WHAT)_g.so: $(WHAT).c $(JPL_HOME)/lib/$(ARCHNAME)/libPerlInterpreter_g.so
        $(LIBS) \
        -o lib$(WHAT)_g.so
 
-test:
+test: all
+       java $(WHAT)
 
 install: all
        cp *.class              $(JPL_HOME)/lib
index c1ef0b4..f19e226 100755 (executable)
@@ -116,9 +116,9 @@ print "\nInstalling JNI module\n";
 system <<'END' and die "Couldn't install JNI\n";
 set -x
 cd JNI
-perl Makefile.PL
+perl Makefile.PL -e
 make clean
-perl Makefile.PL
+perl Makefile.PL -e
 make
 echo 'Attempting to install JNI as root'
 su root -c "make install"
@@ -187,14 +187,8 @@ archname=`$JPLPERL -MConfig -e 'print $Config{archname}'`
 CLASSPATH=".:$JPL_HOME/lib${CLASSPATH:+:$CLASSPATH}"
 export CLASSPATH
 
-ldlibpthname=`$JPLPERL -MConfig -e 'print $Config{ldlibpthname}'`
-case "$ldlibpthname" in
-'') ldlibpthname=LD_LIBRARY_PATH ;;
-esac
-eval "ldlibpth=\$$ldlibpthname"
-
-$ldlibpthname=".:$JPL_HOME/lib/$archname:$archlib/CORE$ldlibpth"
-export $ldlibpthname
+LD_LIBRARY_PATH=".:$JPL_HOME/lib/$archname:$archlib/CORE${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
+export LD_LIBRARY_PATH
 
 PERL5LIB="$JPL_HOME/perl${PERL5LIB:+:$PERL5LIB}"
 export PERL5LIB
@@ -211,13 +205,13 @@ case "$1" in
 \$ENV{JPL_HOME} = '$JPL_HOME';
 \$ENV{JPLPERL} = '$JPLPERL';
 \$ENV{CLASSPATH} = '$CLASSPATH';
-\$ENV{$ldlibpthname} = '$ldlibpth';
+\$ENV{LD_LIBRARY_PATH} = '$LD_LIBRARY_PATH';
 \$ENV{PERL5LIB} = '$PERL5LIB';
 END
     ;;
 -sh)
     cat <<END
- PATH='$PATH';export PATH;JAVA_HOME='$JAVA_HOME';export JAVA_HOME;JPL_HOME='$JPL_HOME';export JPL_HOME;JPLPERL='$JPLPERL';export JPLPERL;CLASSPATH='$CLASSPATH';export CLASSPATH;$ldlibpthname='$ldlibpth';export $ldlibpthname;PERL5LIB='$PERL5LIB';export PERL5LIB
+ PATH='$PATH';export PATH;JAVA_HOME='$JAVA_HOME';export JAVA_HOME;JPL_HOME='$JPL_HOME';export JPL_HOME;JPLPERL='$JPLPERL';export JPLPERL;CLASSPATH='$CLASSPATH';export CLASSPATH;LD_LIBRARY_PATH='$LD_LIBRARY_PATH';export LD_LIBRARY_PATH;PERL5LIB='$PERL5LIB';export PERL5LIB
 END
     ;;
 -csh)
@@ -227,7 +221,7 @@ setenv JAVA_HOME '$JAVA_HOME';
 setenv JPL_HOME '$JPL_HOME';
 setenv JPLPERL '$JPLPERL';
 setenv CLASSPATH '$CLASSPATH';
-setenv $ldlibpthname '$ldlibpth';
+setenv LD_LIBRARY_PATH '$LD_LIBRARY_PATH';
 setenv PERL5LIB '$PERL5LIB';
 END
     ;;
index b3282b6..767cb67 100644 (file)
@@ -273,7 +273,9 @@ sub init {
 
 sub debug { $debug = ($_[1] != 0); }
 
-sub clearcache    { delete $cache{$_[0]}; }
+# The cache needs two branches: 's' for strings and 'c' for code.  The
+# emtpy loop is different in these two cases.
+sub clearcache    { delete $cache{"$_[0]c"}; delete $cache{"$_[0]s"}; }
 sub clearallcache { %cache = (); }
 sub enablecache   { $cache = 1; }
 sub disablecache  { $cache = 0; }
@@ -362,11 +364,18 @@ sub runloop {
     croak "runloop unable to compile '$c': $@\ncode: $subcode\n" if $@;
     print STDERR "runloop $n '$subcode'\n" if $debug;
 
-    $t0 = Benchmark->new(0);
+    # Wait for the user timer to tick.  This makes the error range more like -0.01, +0.  If
+    # we don't wait, then it's more like -0.01, +0.01.  This may not seem important, but it
+    # significantly reduces the chances of getting too low initial $n in the initial, 'find
+    # the minimum' loop in &runfor.  This, in turn, can reduce the number of calls to
+    # &runloop a lot, and thus reduce additive errors.
+    my $tbase = Benchmark->new(0)->[1];
+    do {
+       $t0 = Benchmark->new(0);
+    } while ( $t0->[1] == $tbase ) ;
     &$subref;
     $t1 = Benchmark->new($n);
     $td = &timediff($t1, $t0);
-
     timedebug("runloop:",$td);
     $td;
 }
@@ -377,12 +386,12 @@ sub timeit {
     my($wn, $wc, $wd);
 
     printf STDERR "timeit $n $code\n" if $debug;
-
-    if ($cache && exists $cache{$n}) {
-       $wn = $cache{$n};
+    my $cache_key = $n . ( ref( $code ) ? 'c' : 's' ) ;
+    if ($cache && exists $cache{$cache_key} ) {
+       $wn = $cache{$cache_key};
     } else {
-       $wn = &runloop($n, '');
-       $cache{$n} = $wn;
+       $wn = &runloop($n, ref( $code ) ? sub { undef } : '' );
+       $cache{$cache_key} = $wn;
     }
 
     $wc = &runloop($n, $code);
@@ -414,24 +423,23 @@ sub runfor {
 
     my ($n, $td, $tc, $ntot, $rtot, $utot, $stot, $cutot, $cstot );
 
-    # First find the minimum $n that gives a non-zero timing.
+    # First find the minimum $n that gives a significant timing.
     
     my $nmin;
 
-    for ($n = 1, $tc = 0; $tc <= 0; $n *= 2 ) {
+    for ($n = 1, $tc = 0; ; $n *= 2 ) {
        $td = timeit($n, $code);
        $tc = $td->[1] + $td->[2];
+       last if $tc > 0.1 ;
     }
 
     $nmin = $n;
 
     my $ttot = 0;
     my $tpra = 0.05 * $tmax; # Target/time practice.
-
     # Double $n until we have think we have practiced enough.
-    for ( $n = 1; $ttot < $tpra; $n *= 2 ) {
+    for ( ; $ttot < $tpra; $n *= 2 ) {
        $td = timeit($n, $code);
-       $tc = $td->cpu_p;
        $ntot += $n;
        $rtot += $td->[0];
        $utot += $td->[1];
@@ -446,7 +454,7 @@ sub runfor {
     # Then iterate towards the $tmax.
     while ( $ttot < $tmax ) {
        $r = $tmax / $ttot - 1; # Linear approximation.
-       $n = int( $r * $n );
+       $n = int( $r * $ntot );
        $n = $nmin if $n < $nmin;
        $td = timeit($n, $code);
        $ntot += $n;
index f049e72..91ad613 100644 (file)
@@ -179,6 +179,8 @@ sub heavy_export_to_level
 {
       my $pkg = shift;
       my $level = shift;
+    # need to get rid of the first argument, its junk
+    shift;
       my $callpkg = caller($level);
       $pkg->export($callpkg, @_);
 }
index 0909cc1..5e12773 100644 (file)
@@ -1674,10 +1674,34 @@ from the perl source tree.
        }
     } else {
        # we should also consider $ENV{PERL5LIB} here
+        my $old = $self->{PERL_LIB} || $self->{PERL_ARCHLIB} || $self->{PERL_INC};
        $self->{PERL_LIB}     ||= $Config::Config{privlibexp};
        $self->{PERL_ARCHLIB} ||= $Config::Config{archlibexp};
        $self->{PERL_INC}     = $self->catdir("$self->{PERL_ARCHLIB}","CORE"); # wild guess for now
        my $perl_h;
+
+       if (not -f ($perl_h = $self->catfile($self->{PERL_INC},"perl.h"))
+           and not $old){
+           # Maybe somebody tries to build an extension with an
+           # uninstalled Perl outside of Perl build tree
+           my $found;
+           for my $dir (@INC) {
+             $found = $dir, last if -e $self->catdir($dir, "Config.pm");
+           }
+           if ($found) {
+             my $inc = dirname $found;
+             if (-e $self->catdir($inc, "perl.h")) {
+               $self->{PERL_LIB}          = $found;
+               $self->{PERL_ARCHLIB}      = $found;
+               $self->{PERL_INC}          = $inc;
+               $self->{UNINSTALLED_PERL}  = 1;
+               print STDOUT <<EOP;
+... Detected uninstalled Perl.  Trying to continue.
+EOP
+             }
+           }
+       }
+       
        unless (-f ($perl_h = $self->catfile($self->{PERL_INC},"perl.h"))){
            die qq{
 Error: Unable to locate installed Perl libraries or Perl source code.
@@ -2556,6 +2580,10 @@ sub manifypods {
        $pod2man_exe = $self->catfile($Config{scriptdirexp},'pod2man');
     }
     unless ($pod2man_exe = $self->perl_script($pod2man_exe)) {
+      # Maybe a build by uninstalled Perl?
+      $pod2man_exe = $self->catfile($self->{PERL_INC}, "pod", "pod2man");
+    }
+    unless ($pod2man_exe = $self->perl_script($pod2man_exe)) {
        # No pod2man but some MAN3PODS to be installed
        print <<END;
 
index a2a949b..31ca690 100644 (file)
@@ -12,10 +12,11 @@ use Config;
 require Exporter;
 use VMS::Filespec;
 use File::Basename;
-
-use vars qw($Revision);
+use File::Spec;
+use vars qw($Revision @ISA);
 $Revision = '5.56 (27-Apr-1999)';
 
+@ISA = qw( File::Spec );
 unshift @MM::ISA, 'ExtUtils::MM_VMS';
 
 Exporter::import('ExtUtils::MakeMaker', '$Verbose', '&neatvalue');
@@ -38,157 +39,6 @@ the semantics.
 
 =over
 
-=item eliminate_macros
-
-Expands MM[KS]/Make macros in a text string, using the contents of
-identically named elements of C<%$self>, and returns the result
-as a file specification in Unix syntax.
-
-=cut
-
-sub eliminate_macros {
-    my($self,$path) = @_;
-    unless ($path) {
-       print "eliminate_macros('') = ||\n" if $Verbose >= 3;
-       return '';
-    }
-    my($npath) = join(' ', map(unixify($_), split(/\s+/, $path)));
-    my($complex) = 0;
-    my($head,$macro,$tail);
-
-    # perform m##g in scalar context so it acts as an iterator
-    while ($npath =~ m#(.*?)\$\((\S+?)\)(.*)#g) { 
-        if ($self->{$2}) {
-            ($head,$macro,$tail) = ($1,$2,$3);
-            if (ref $self->{$macro}) {
-                if (ref $self->{$macro} eq 'ARRAY') {
-                    print "Note: expanded array macro \$($macro) in $path\n" if $Verbose;
-                    $macro = join ' ', @{$self->{$macro}};
-                }
-                else {
-                    print "Note: can't expand macro \$($macro) containing ",ref($self->{$macro}),
-                          "\n\t(using MMK-specific deferred substitution; MMS will break)\n";
-                    $macro = "\cB$macro\cB";
-                    $complex = 1;
-                }
-            }
-            else { ($macro = unixify($self->{$macro})) =~ s#/$##; }
-            $npath = "$head$macro$tail";
-        }
-    }
-    if ($complex) { $npath =~ s#\cB(.*?)\cB#\${$1}#g; }
-    print "eliminate_macros($path) = |$npath|\n" if $Verbose >= 3;
-    $npath;
-}
-
-=item fixpath
-
-Catchall routine to clean up problem MM[SK]/Make macros.  Expands macros
-in any directory specification, in order to avoid juxtaposing two
-VMS-syntax directories when MM[SK] is run.  Also expands expressions which
-are all macro, so that we can tell how long the expansion is, and avoid
-overrunning DCL's command buffer when MM[KS] is running.
-
-If optional second argument has a TRUE value, then the return string is
-a VMS-syntax directory specification, if it is FALSE, the return string
-is a VMS-syntax file specification, and if it is not specified, fixpath()
-checks to see whether it matches the name of a directory in the current
-default directory, and returns a directory or file specification accordingly.
-
-=cut
-
-sub fixpath {
-    my($self,$path,$force_path) = @_;
-    unless ($path) {
-       print "eliminate_macros('') = ||\n" if $Verbose >= 3;
-       return '';
-    }
-    my($fixedpath,$prefix,$name);
-
-    if ($path =~ m#^\$\([^\)]+\)$# || $path =~ m#[/:>\]]#) { 
-        if ($force_path or $path =~ /(?:DIR\)|\])$/) {
-            $fixedpath = join(' ', map(vmspath($_),split(/\s+/, $self->eliminate_macros($path))));
-        }
-        else {
-            $fixedpath = join(' ', map(vmsify($_),split(/\s+/, $self->eliminate_macros($path))));
-
-        }
-    }
-    elsif ((($prefix,$name) = ($path =~ m#^\$\(([^\)]+)\)(.+)#)) && $self->{$prefix}) {
-        my($vmspre) = $self->eliminate_macros("\$($prefix)");
-        # is it a dir or just a name?
-        $vmspre = ($vmspre =~ m|/| or $prefix =~ /DIR$/) ? vmspath($vmspre) : '';
-        $fixedpath = ($vmspre ? $vmspre : $self->{$prefix}) . $name;
-        $fixedpath = vmspath($fixedpath) if $force_path;
-    }
-    else {
-        $fixedpath = $path;
-        $fixedpath = vmspath($fixedpath) if $force_path;
-    }
-    # No hints, so we try to guess
-    if (!defined($force_path) and $fixedpath !~ /[:>(.\]]/) {
-        $fixedpath = vmspath($fixedpath) if -d $fixedpath;
-    }
-    # Trim off root dirname if it's had other dirs inserted in front of it.
-    $fixedpath =~ s/\.000000([\]>])/$1/;
-    print "fixpath($path) = |$fixedpath|\n" if $Verbose >= 3;
-    $fixedpath;
-}
-
-=item catdir
-
-Concatenates a list of file specifications, and returns the result as a
-VMS-syntax directory specification.
-
-=cut
-
-sub catdir {
-    my($self,@dirs) = @_;
-    my($dir) = pop @dirs;
-    @dirs = grep($_,@dirs);
-    my($rslt);
-    if (@dirs) {
-      my($path) = (@dirs == 1 ? $dirs[0] : $self->catdir(@dirs));
-      my($spath,$sdir) = ($path,$dir);
-      $spath =~ s/.dir$//; $sdir =~ s/.dir$//; 
-      $sdir = $self->eliminate_macros($sdir) unless $sdir =~ /^[\w\-]+$/;
-      $rslt = $self->fixpath($self->eliminate_macros($spath)."/$sdir",1);
-    }
-    else { 
-      if ($dir =~ /^\$\([^\)]+\)$/) { $rslt = $dir; }
-      else                          { $rslt = vmspath($dir); }
-    }
-    print "catdir(",join(',',@_[1..$#_]),") = |$rslt|\n" if $Verbose >= 3;
-    $rslt;
-}
-
-=item catfile
-
-Concatenates a list of file specifications, and returns the result as a
-VMS-syntax directory specification.
-
-=cut
-
-sub catfile {
-    my($self,@files) = @_;
-    my($file) = pop @files;
-    @files = grep($_,@files);
-    my($rslt);
-    if (@files) {
-      my($path) = (@files == 1 ? $files[0] : $self->catdir(@files));
-      my($spath) = $path;
-      $spath =~ s/.dir$//;
-      if ( $spath =~ /^[^\)\]\/:>]+\)$/ && basename($file) eq $file) { $rslt = "$spath$file"; }
-      else {
-          $rslt = $self->eliminate_macros($spath);
-          $rslt = vmsify($rslt.($rslt ? '/' : '').unixify($file));
-      }
-    }
-    else { $rslt = vmsify($file); }
-    print "catfile(",join(',',@_[1..$#_]),") = |$rslt|\n" if $Verbose >= 3;
-    $rslt;
-}
-
 =item wraplist
 
 Converts a list into a string wrapped at approximately 80 columns.
@@ -213,16 +63,6 @@ sub wraplist {
     $line;
 }
 
-=item curdir (override)
-
-Returns a string representing of the current directory.
-
-=cut
-
-sub curdir {
-    return '[]';
-}
-
 =item rootdir (override)
 
 Returns a string representing of the root directory.
@@ -233,16 +73,6 @@ sub rootdir {
     return '';
 }
 
-=item updir (override)
-
-Returns a string representing of the parent directory.
-
-=cut
-
-sub updir {
-    return '[-]';
-}
-
 package ExtUtils::MM_VMS;
 
 sub ExtUtils::MM_VMS::ext;
@@ -626,6 +456,9 @@ sub constants {
     my($self) = @_;
     my(@m,$def,$macro);
 
+    # Be kind about case for pollution
+    for (@ARGV) { $_ = uc($_) if /POLLUTE/i; }
+
     if ($self->{DEFINE} ne '') {
        my(@terms) = split(/\s+/,$self->{DEFINE});
        my(@defs,@udefs);
@@ -844,6 +677,7 @@ sub cflags {
        warn "MM_VMS: Ignoring unrecognized CCFLAGS elements \"$quals\"\n";
        $quals = '';
     }
+    $definestr .= q["PERL_POLLUTE",] if $self->{POLLUTE};
     if (length $definestr) { chop($definestr); $quals .= "/Define=($definestr)"; }
     if (length $undefstr)  { chop($undefstr);  $quals .= "/Undef=($undefstr)";   }
     # Deal with $self->{DEFINE} here since some C compilers pay attention
@@ -1343,7 +1177,7 @@ static :: $(INST_ARCHAUTODIR)$(BASEEXT).opt
        $(NOECHO) $(NOOP)
 ') unless $self->{SKIPHASH}{'static'};
 
-    push(@m,'
+    push @m,'
 $(INST_ARCHAUTODIR)$(BASEEXT).opt : $(BASEEXT).opt
        $(CP) $(MMS$SOURCE) $(MMS$TARGET)
 
@@ -1351,9 +1185,26 @@ $(BASEEXT).opt : Makefile.PL
        $(PERL) "-I$(PERL_ARCHLIB)" "-I$(PERL_LIB)" -e "use ExtUtils::Mksymlists;" -
        ',qq[-e "Mksymlists('NAME' => '$self->{NAME}', 'DL_FUNCS' => ],
        neatvalue($funcs),q[, 'DL_VARS' => ],neatvalue($vars),
-       q[, 'FUNCLIST' => ],neatvalue($funclist),')"
-       $(PERL) -e "print ""$(INST_STATIC)/Include=$(BASEEXT)\n$(INST_STATIC)/Library\n"";" >>$(MMS$TARGET)
-');
+       q[, 'FUNCLIST' => ],neatvalue($funclist),qq[)"\n];
+
+    push @m, ' $(PERL) -e "print ""$(INST_STATIC)/Include=';
+    if ($self->{OBJECT} =~ /\bBASEEXT\b/ or
+        $self->{OBJECT} =~ /\b$self->{BASEEXT}\b/i) { push @m, '$(BASEEXT)'; }
+    else {  # We don't have a "main" object file, so pull 'em all in
+       my(@omods) = map { s/\.[^.]*$//;         # Trim off file type
+                          s[\$\(\w+_EXT\)][];   # even as a macro
+                          s/.*[:>\/\]]//;       # Trim off dir spec
+                          $_; } split ' ', $self->eliminate_macros($self->{OBJECT});
+       my($tmp,@lines,$elt) = '';
+       my $tmp = shift @omods;
+       foreach $elt (@omods) {
+           $tmp .= ",$elt";
+               if (length($tmp) > 80) { push @lines, $tmp;  $tmp = ''; }
+       }
+       push @lines, $tmp;
+       push @m, '(', join( qq[, -\\n\\t"";" >>\$(MMS\$TARGET)\n\t\$(PERL) -e "print ""], @lines),')';
+    }
+       push @m, '\n$(INST_STATIC)/Library\n"";" >>$(MMS$TARGET)',"\n";
 
     if (length $self->{LDLOADLIBS}) {
        my($lib); my($line) = '';
@@ -2192,12 +2043,13 @@ $(MAKE_APERL_FILE) : $(FIRST_MAKEFILE)
        $(NOECHO) $(PERL) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" "-I$(PERL_ARCHLIB)" "-I$(PERL_LIB)" \
                Makefile.PL DIR=}, $dir, q{ \
                MAKEFILE=$(MAKE_APERL_FILE) LINKTYPE=static \
-               MAKEAPERL=1 NORECURS=1
+               MAKEAPERL=1 NORECURS=1 };
+
+       push @m, map(q[ \\\n\t\t"$_"], @ARGV),q{
 
 $(MAP_TARGET) :: $(MAKE_APERL_FILE)
        $(MMS)$(MMSQUALIFIERS)$(USEMAKEFILE)$(MAKE_APERL_FILE) static $(MMS$TARGET)
 };
-       push @m, map( " \\\n\t\t$_", @ARGV );
        push @m, "\n";
 
        return join '', @m;
index 6318d0e..0f00e39 100644 (file)
@@ -482,7 +482,7 @@ sub ExtUtils::MakeMaker::new {
            else {
                $pthinks =~ s!/Config\.pm$!!; $pthinks =~ s!.*/!!;
            }
-           print STDOUT <<END;
+           print STDOUT <<END unless $self->{UNINSTALLED_PERL};
 Your perl and your Config.pm seem to have different ideas about the architecture
 they are running on.
 Perl thinks: [$pthinks]
index a332024..d84435e 100644 (file)
@@ -1,4 +1,4 @@
-# $Header: /home/rmb1/misc/perl/build/perl5.005_60/lib/ExtUtils/../../../RCS/perl5.005_61/lib/ExtUtils/typemap,v 1.2 1999/09/07 10:05:21 rmb1 Exp $ 
+# $Header: /home/rmb1/misc/CVS/perl5.005_61/lib/ExtUtils/typemap,v 1.3 1999/09/13 09:46:43 rmb1 Exp $ 
 # basic C types
 int                    T_IV
 unsigned               T_UV
@@ -107,11 +107,11 @@ T_DOUBLE
 T_PV
        $var = ($type)SvPV($arg,PL_na)
 T_PTR
-       $var = ($type)PTR_CAST SvIV($arg)
+       $var = INT2PTR($type,SvIV($arg))
 T_PTRREF
        if (SvROK($arg)) {
            IV tmp = SvIV((SV*)SvRV($arg));
-           $var = ($type)PTR_CAST tmp;
+           $var = INT2PTR($type,tmp);
        }
        else
            croak(\"$var is not a reference\")
@@ -132,7 +132,7 @@ T_REF_IV_PTR
 T_PTROBJ
        if (sv_derived_from($arg, \"${ntype}\")) {
            IV tmp = SvIV((SV*)SvRV($arg));
-           $var = ($type)PTR_CAST tmp;
+           $var = INT2PTR($type,tmp);
        }
        else
            croak(\"$var is not of type ${ntype}\")
@@ -147,14 +147,14 @@ T_PTRDESC
 T_REFREF
        if (SvROK($arg)) {
            IV tmp = SvIV((SV*)SvRV($arg));
-           $var = *($type)PTR_CAST tmp;
+           $var = *INT2PTR($type,tmp);
        }
        else
            croak(\"$var is not a reference\")
 T_REFOBJ
        if (sv_isa($arg, \"${ntype}\")) {
            IV tmp = SvIV((SV*)SvRV($arg));
-           $var = *($type)PTR_CAST tmp;
+           $var = *INT2PTR($type,tmp);
        }
        else
            croak(\"$var is not of type ${ntype}\")
index ffc1199..140738f 100644 (file)
@@ -3,7 +3,7 @@ package File::Spec::Functions;
 use File::Spec;
 use strict;
 
-use vars qw(@ISA @EXPORT @EXPORT_OK);
+use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
 
 require Exporter;
 
@@ -31,6 +31,8 @@ require Exporter;
        rel2abs
 );
 
+%EXPORT_TAGS = ( ALL => [ @EXPORT_OK, @EXPORT ] );
+
 foreach my $meth (@EXPORT, @EXPORT_OK) {
     my $sub = File::Spec->can($meth);
     no strict 'refs';
@@ -85,6 +87,8 @@ The following functions are exported only by request.
        abs2rel
        rel2abs
 
+All the functions may be imported using the C<:ALL> tag.
+
 =head1 SEE ALSO
 
 File::Spec, File::Spec::Unix, File::Spec::Mac, File::Spec::OS2,
index d13f5e6..00c068a 100644 (file)
@@ -22,6 +22,12 @@ See File::Spec::Unix for a documentation of the methods provided
 there. This package overrides the implementation of these methods, not
 the semantics.
 
+=item eliminate_macros
+
+Expands MM[KS]/Make macros in a text string, using the contents of
+identically named elements of C<%$self>, and returns the result
+as a file specification in Unix syntax.
+
 =cut
 
 sub eliminate_macros {
@@ -55,6 +61,22 @@ sub eliminate_macros {
     $npath;
 }
 
+=item fixpath
+
+Catchall routine to clean up problem MM[SK]/Make macros.  Expands macros
+in any directory specification, in order to avoid juxtaposing two
+VMS-syntax directories when MM[SK] is run.  Also expands expressions which
+are all macro, so that we can tell how long the expansion is, and avoid
+overrunning DCL's command buffer when MM[KS] is running.
+
+If optional second argument has a TRUE value, then the return string is
+a VMS-syntax directory specification, if it is FALSE, the return string
+is a VMS-syntax file specification, and if it is not specified, fixpath()
+checks to see whether it matches the name of a directory in the current
+default directory, and returns a directory or file specification accordingly.
+
+=cut
+
 sub fixpath {
     my($self,$path,$force_path) = @_;
     return '' unless $path;
index 5e6551f..03cbf71 100644 (file)
@@ -65,6 +65,8 @@ while (<DATA>) {
     }
 } 
 
+close DATA;
+
 unless (caller) { 
     foreach $type ( @Type_Order ) {
        $list = join(", ", sort @{$Kinds{$type}});
index 75bcc38..60f42e8 100644 (file)
@@ -74,7 +74,8 @@ sub cheat {
     $year = $_[5];
     $month = $_[4];
     croak "Month '$month' out of range 0..11"  if $month > 11 || $month < 0;
-    croak "Day '$_[3]' out of range 1..31"     if $_[3] > 31 || $_[3] < 1;
+#    Allow "julian" conversions. --jhi 1999-09-09
+#    croak "Day '$_[3]' out of range 1..31"    if $_[3] > 31 || $_[3] < 1;
     croak "Hour '$_[2]' out of range 0..23"    if $_[2] > 23 || $_[2] < 0;
     croak "Minute '$_[1]' out of range 0..59"  if $_[1] > 59 || $_[1] < 0;
     croak "Second '$_[0]' out of range 0..59"  if $_[0] > 59 || $_[0] < 0;
diff --git a/lib/byte.pm b/lib/byte.pm
new file mode 100644 (file)
index 0000000..cc23b40
--- /dev/null
@@ -0,0 +1,33 @@
+package byte;
+
+sub import {
+    $^H |= 0x00000010;
+}
+
+sub unimport {
+    $^H &= ~0x00000010;
+}
+
+sub AUTOLOAD {
+    require "byte_heavy.pl";
+    goto &$AUTOLOAD;
+}
+
+sub length ($);
+
+1;
+__END__
+
+=head1 NAME
+
+byte - Perl pragma to turn force treating strings as bytes not UNICODE
+
+=head1 SYNOPSIS
+
+    use byte;
+    no byte;
+
+=head1 DESCRIPTION
+
+
+=cut
diff --git a/lib/byte_heavy.pl b/lib/byte_heavy.pl
new file mode 100644 (file)
index 0000000..07c908a
--- /dev/null
@@ -0,0 +1,8 @@
+package byte;
+
+sub length ($)
+{
+ return CORE::length($_[0]);
+}
+
+1;
index 0eac573..7b0567c 100644 (file)
@@ -350,7 +350,7 @@ if ($notty) {
     print $OUT ("Emacs support ",
                $emacs ? "enabled" : "available",
                ".\n");
-    print $OUT "\nEnter h or `h h' for help.\n\n";
+    print $OUT "\nEnter h or `h h' for help, run `perldoc perldebug' for more help.\n\n";
   }
 }
 
@@ -1867,6 +1867,8 @@ B<R>              Pure-man-restart of debugger, some of debugger state
                history, breakpoints and actions, debugger B<O>ptions 
                and the following command-line options: I<-w>, I<-I>, I<-e>.
 B<h> [I<db_command>]   Get help [on a specific debugger command], enter B<|h> to page.
+               Complete description of debugger is available in B<perldebug>
+               section of Perl documention
 B<h h>         Summary of debugger commands.
 B<q> or B<^D>          Quit. Set B<\$DB::finished = 0> to debug global destruction.
 
@@ -1876,18 +1878,17 @@ I<List/search source lines:>               I<Control script execution:>
   B<l> [I<ln>|I<sub>]  List source code            B<T>           Stack trace
   B<-> or B<.>      List previous/current line  B<s> [I<expr>]    Single step [in expr]
   B<w> [I<line>]    List around line            B<n> [I<expr>]    Next, steps over subs
-  B<f> I<filename>  View source in file         <B<CR>>        Repeat last B<n> or B<s>
+  B<f> I<filename>  View source in file         <B<CR>/B<Enter>>  Repeat last B<n> or B<s>
   B</>I<pattern>B</> B<?>I<patt>B<?>   Search forw/backw    B<r>           Return from subroutine
   B<v>       Show versions of modules    B<c> [I<ln>|I<sub>]  Continue until position
 I<Debugger controls:>                        B<L>           List break/watch/actions
   B<O> [...]     Set debugger options        B<t> [I<expr>]    Toggle trace [trace expr]
-  B<<>[B<<>] or B<{>[B<{>] [I<cmd>]   Do before prompt   B<b> [I<ln>|I<event>] [I<cnd>]  Set breakpoint
-  B<>>[B<>>] [I<cmd>]  Do after prompt             B<b> I<sub> [I<cnd>] Set breakpoint for sub
+  B<<>[B<<>]|B<{>[B<{>]|B<>>[B<>>] [I<cmd>] Do pre/post-prompt B<b> [I<ln>|I<event>|I<sub>] [I<cnd>] Set breakpoint
   B<$prc> [I<N>|I<pat>]   Redo a previous command     B<d> [I<ln>] or B<D> Delete a/all breakpoints
   B<H> [I<-num>]    Display last num commands   B<a> [I<ln>] I<cmd>  Do cmd before line
   B<=> [I<a> I<val>]   Define/list an alias        B<W> I<expr>      Add a watch expression
   B<h> [I<db_cmd>]  Get help on command         B<A> or B<W>      Delete all actions/watch
-  B<|>[B<|>]I<dbcmd>   Send output to pager        B<$psh>\[B<$psh>\] I<syscmd> Run cmd in a subprocess
+  B<|>[B<|>]I<db_cmd>  Send output to pager        B<$psh>\[B<$psh>\] I<syscmd> Run cmd in a subprocess
   B<q> or B<^D>     Quit                         B<R>        Attempt a restart
 I<Data Examination:>         B<expr>     Execute perl code, also see: B<s>,B<n>,B<t> I<expr>
   B<x>|B<m> I<expr>    Evals expr in array context, dumps the result or lists methods.
@@ -1895,6 +1896,7 @@ I<Data Examination:>            B<expr>     Execute perl code, also see: B<s>,B<n>,B<
   B<S> [[B<!>]I<pat>]  List subroutine names [not] matching pattern
   B<V> [I<Pk> [I<Vars>]]       List Variables in Package.  Vars can be ~pattern or !pattern.
   B<X> [I<Vars>]       Same as \"B<V> I<current_package> [I<Vars>]\".
+I<More help for> B<db_cmd>I<:>  Type B<h> I<cmd_letter>  Run B<perldoc perldebug> for more help.
 END_SUM
                                # ')}}; # Fix balance of Emacs parsing
 }
index ee4630e..399fa6c 100644 (file)
@@ -17,15 +17,27 @@ return <<'END';
 0675   0677    R
 0678   0687    D
 0688   0699    R
-069a   06b7    D
-06ba   06be    D
+069a   06bf    D
 06c0           R
 06c1           D
 06c2   06cb    R
 06cc           D
 06cd           R
 06ce           D
+06cf           R
 06d0   06d1    D
 06d2   06d3    R
 06d5           U
+06fa   06fc    D
+0710           R
+0712   0714    D
+0715   0719    R
+071a   071d    D
+071e           R
+071f   0727    D
+0728           R
+0729           D
+072a           R
+072b           D
+072c           R
 END
index e107eb7..e06c374 100644 (file)
@@ -2,61 +2,90 @@ return <<'END';
 0622   0623    ALEF
 0624           WAW
 0625           ALEF
-0626           YA
+0626           YEH
 0627           ALEF
-0628           BAA
-0629           TAA MARBUTAH
-062a   062b    BAA
-062c   062e    HAA
+0628           BEH
+0629           TEH MARBUTA
+062a   062b    BEH
+062c   062e    HAH
 062f   0630    DAL
-0631   0632    RA
+0631   0632    REH
 0633   0634    SEEN
 0635   0636    SAD
 0637   0638    TAH
 0639   063a    AIN
 0640           <no shaping>
-0641           FA
+0641           FEH
 0642           QAF
-0643           CAF
+0643           KAF
 0644           LAM
 0645           MEEM
 0646           NOON
-0647           HA
+0647           HEH
 0648           WAW
-0649           ALEF MAQSURAH
-064a           YA
+0649   064a    YEH
 0671           <no shaping>
 0672   0673    ALEF
 0674           <no shaping>
 0675           ALEF
 0676   0677    WAW
-0678           YA
-0679   0680    BAA
-0681   0687    HAA
+0678           YEH
+0679   0680    BEH
+0681   0687    HAH
 0688   0690    DAL
-0691   0699    RA
+0691   0699    REH
 069a   069c    SEEN
 069d   069e    SAD
 069f           TAH
 06a0           AIN
-06a1   06a6    FA
+06a1   06a6    FEH
 06a7   06a8    QAF
 06a9           GAF
-06aa           SWASH CAF
+06aa           SWASH KAF
 06ab           GAF
-06ac   06ae    CAF
+06ac   06ae    KAF
 06af   06b4    GAF
-06b5   06b7    LAM
-06ba   06bd    NOON
-06be           KNOTTED HA
-06c0           TAA MARBUTAH
-06c1           HA GOAL
-06c2   06c3    HAMZAH ON HA GOAL
+06b5   06b8    LAM
+06b9   06bd    NOON
+06be           KNOTTED HEH
+06bf           HAH
+06c0           TEH MARBUTA
+06c1           HEH GOAL
+06c2   06c3    HAMZA ON HEH GOAL
 06c4   06cb    WAW
-06cc           YA
-06cd           ALEF MAQSURAH
-06ce           YA
-06d0   06d1    YA
-06d2   06d3    YA BARREE
+06cc           YEH
+06cd           YEH WITH TAIL
+06ce           YEH
+06cf           WAW
+06d0   06d1    YEH
+06d2   06d3    YEH BARREE
 06d5           <no shaping>
+06fa           SEEN
+06fb           SAD
+06fc           AIN
+0710           ALAPH
+0712           BETH
+0713   0714    GAMAL
+0715   0716    DALATH RISH
+0717           HE
+0718           WAW
+0719           ZAIN
+071a           HETH
+071b   071c    TETH
+071d           YUDH
+071e           YUDH HE
+071f           KAPH
+0720           LAMADH
+0721           MIM
+0722           NUN
+0723           SEMKATH
+0724           FINAL SEMKATH
+0725           E
+0726           PE
+0727           REVERSED PE
+0728           SADHE
+0729           QAPH
+072a           DALATH RISH
+072b           SHIN
+072c           TAW
 END
diff --git a/lib/unicode/ArabShap.txt b/lib/unicode/ArabShap.txt
new file mode 100644 (file)
index 0000000..6092d62
--- /dev/null
@@ -0,0 +1,170 @@
+# Unicode; Schematic Name; Link; Link Group
+# Arabic characters
+0622; MADDA ON ALEF; R; ALEF
+0623; HAMZA ON ALEF; R; ALEF
+0624; HAMZA ON WAW; R; WAW
+0625; HAMZA UNDER ALEF; R; ALEF
+0626; HAMZA ON YEH; D; YEH
+0627; ALEF; R; ALEF
+0628; BEH; D; BEH
+0629; TEH MARBUTA; R; TEH MARBUTA
+062A; TEH; D; BEH
+062B; THEH; D; BEH
+062C; JEEM; D; HAH
+062D; HAH; D; HAH
+062E; KHAH; D; HAH
+062F; DAL; R; DAL
+0630; THAL; R; DAL
+0631; REH; R; REH
+0632; ZAIN; R; REH
+0633; SEEN; D; SEEN
+0634; SHEEN; D; SEEN
+0635; SAD; D; SAD
+0636; DAD; D; SAD
+0637; TAH; D; TAH
+0638; ZAH; D; TAH
+0639; AIN; D; AIN
+063A; GHAIN; D; AIN
+0640; TATWEEL; C; <no shaping>
+0641; FEH; D; FEH
+0642; QAF; D; QAF
+0643; KAF; D; KAF
+0644; LAM; D; LAM
+0645; MEEM; D; MEEM
+0646; NOON; D; NOON
+0647; HEH; D; HEH
+0648; WAW; R; WAW
+0649; ALEF MAKSURA; R; YEH
+064A; YEH; D; YEH
+0671; HAMZAT WASL ON ALEF; U; <no shaping>
+0672; WAVY HAMZA ON ALEF; R; ALEF
+0673; WAVY HAMZA UNDER ALEF; R; ALEF
+0674; HIGH HAMZA; U; <no shaping>
+0675; HIGH HAMZA ALEF; R; ALEF
+0676; HIGH HAMZA WAW; R; WAW
+0677; HIGH HAMZA WAW WITH DAMMA; R; WAW
+0678; HIGH HAMZA YEH; D; YEH
+0679; TEH WITH SMALL TAH; D; BEH
+067A; TEH WITH 2 DOTS VERTICAL ABOVE; D; BEH
+067B; BEH WITH 2 DOTS VERTICAL BELOW; D; BEH
+067C; TEH WITH RING; D; BEH
+067D; TEH WITH 3 DOTS ABOVE DOWNWARD; D; BEH
+067E; TEH WITH 3 DOTS BELOW; D; BEH
+067F; TEH WITH 4 DOTS ABOVE; D; BEH
+0680; BEH WITH 4 DOTS BELOW; D; BEH
+0681; HAMZA ON HAH; D; HAH
+0682; HAH WITH 2 DOTS VERTICAL ABOVE; D; HAH
+0683; HAH WITH MIDDLE 2 DOTS; D; HAH
+0684; HAH WITH MIDDLE 2 DOTS VERTICAL; D; HAH
+0685; HAH WITH 3 DOTS ABOVE; D; HAH
+0686; HAH WITH MIDDLE 3 DOTS DOWNWARD; D; HAH
+0687; HAH WITH MIDDLE 4 DOTS; D; HAH
+0688; DAL WITH SMALL TAH; R; DAL
+0689; DAL WITH RING; R; DAL
+068A; DAL WITH DOT BELOW; R; DAL
+068B; DAL WITH DOT BELOW AND SMALL TAH; R; DAL
+068C; DAL WITH 2 DOTS ABOVE; R; DAL
+068D; DAL WITH 2 DOTS BELOW; R; DAL
+068E; DAL WITH 3 DOTS ABOVE; R; DAL
+068F; DAL WITH 3 DOTS ABOVE DOWNWARD; R; DAL
+0690; DAL WITH 4 DOTS ABOVE; R; DAL
+0691; REH WITH SMALL TAH; R; REH
+0692; REH WITH SMALL V; R; REH
+0693; REH WITH RING; R; REH
+0694; REH WITH DOT BELOW; R; REH
+0695; REH WITH SMALL V BELOW; R; REH
+0696; REH WITH DOT BELOW AND DOT ABOVE; R; REH
+0697; REH WITH 2 DOTS ABOVE; R; REH
+0698; REH WITH 3 DOTS ABOVE; R; REH
+0699; REH WITH 4 DOTS ABOVE; R; REH
+069A; SEEN WITH DOT BELOW AND DOT ABOVE; D; SEEN
+069B; SEEN WITH 3 DOTS BELOW; D; SEEN
+069C; SEEN WITH 3 DOTS BELOW AND 3 DOTS ABOVE; D; SEEN
+069D; SAD WITH 2 DOTS BELOW; D; SAD
+069E; SAD WITH 3 DOTS ABOVE; D; SAD
+069F; TAH WITH 3 DOTS ABOVE; D; TAH
+06A0; AIN WITH 3 DOTS ABOVE; D; AIN
+06A1; DOTLESS FEH; D; FEH
+06A2; FEH WITH DOT MOVED BELOW; D; FEH
+06A3; FEH WITH DOT BELOW; D; FEH
+06A4; FEH WITH 3 DOTS ABOVE; D; FEH
+06A5; FEH WITH 3 DOTS BELOW; D; FEH
+06A6; FEH WITH 4 DOTS ABOVE; D; FEH
+06A7; QAF WITH DOT ABOVE; D; QAF
+06A8; QAF WITH 3 DOTS ABOVE; D; QAF
+06A9; OPEN KAF; D; GAF
+06AA; SWASH KAF; D; SWASH KAF
+06AB; KAF WITH RING; D; GAF
+06AC; KAF WITH DOT ABOVE; D; KAF
+06AD; KAF WITH 3 DOTS ABOVE; D; KAF
+06AE; KAF WITH 3 DOTS BELOW; D; KAF
+06AF; GAF; D; GAF
+06B0; GAF WITH RING; D; GAF
+06B1; GAF WITH 2 DOTS ABOVE; D; GAF
+06B2; GAF WITH 2 DOTS BELOW; D; GAF
+06B3; GAF WITH 2 DOTS VERTICAL BELOW; D; GAF
+06B4; GAF WITH 3 DOTS ABOVE; D; GAF
+06B5; LAM WITH SMALL V; D; LAM
+06B6; LAM WITH DOT ABOVE; D; LAM
+06B7; LAM WITH 3 DOTS ABOVE; D; LAM
+06B8; LAM WITH 3 DOTS BELOW; D; LAM
+06B9; NOON WITH DOT BELOW; D; NOON
+06BA; DOTLESS NOON; D; NOON
+06BB; DOTLESS NOON WITH SMALL TAH; D; NOON
+06BC; NOON WITH RING; D; NOON
+06BD; NOON WITH 3 DOTS ABOVE; D; NOON
+06BE; KNOTTED HEH; D; KNOTTED HEH
+06BF; HAH WITH MIDDLE 3 DOTS DOWNWARD AND DOT ABOVE; D; HAH
+06C0; HAMZA ON HEH; R; TEH MARBUTA
+06C1; HEH GOAL; D; HEH GOAL
+06C2; HAMZA ON HEH GOAL; R; HAMZA ON HEH GOAL
+06C3; TEH MARBUTA GOAL; R; HAMZA ON HEH GOAL
+06C4; WAW WITH RING; R; WAW
+06C5; WAW WITH BAR; R; WAW
+06C6; WAW WITH SMALL V; R; WAW
+06C7; WAW WITH DAMMA; R; WAW
+06C8; WAW WITH ALEF ABOVE; R; WAW
+06C9; WAW WITH INVERTED SMALL V; R; WAW
+06CA; WAW WITH 2 DOTS ABOVE; R; WAW
+06CB; WAW WITH 3 DOTS ABOVE; R; WAW
+06CC; DOTLESS YEH; D; YEH
+06CD; YEH WITH TAIL; R; YEH WITH TAIL
+06CE; YEH WITH SMALL V; D; YEH
+06CF; WAW WITH DOT ABOVE; R; WAW
+06D0; YEH WITH 2 DOTS VERTICAL BELOW; D; YEH
+06D1; YEH WITH 3 DOTS BELOW; D; YEH
+06D2; YEH BARREE; R; YEH BARREE
+06D3; HAMZA ON YEH BARREE; R; YEH BARREE
+06D5; AE; U; <no shaping>
+06FA; SEEN WITH DOT BELOW AND 3 DOTS ABOVE; D; SEEN
+06FB; DAD WITH DOT BELOW; D; SAD
+06FC; GHAIN WITH DOT BELOW; D; AIN
+# Syriac characters
+0710; ALAPH; R; ALAPH
+0712; BETH; D; BETH
+0713; GAMAL; D; GAMAL
+0714; GAMAL GARSHUNI; D; GAMAL
+0715; DALATH; R; DALATH RISH
+0716; DOTLESS DALATH RISH; R; DALATH RISH
+0717; HE; R; HE
+0718; WAW; R; WAW
+0719; ZAIN; R; ZAIN
+071A; HETH; D; HETH
+071B; TETH; D; TETH
+071C; TETH GARSHUNI; D; TETH
+071D; YUDH; D; YUDH
+071E; YUDH HE; R; YUDH HE
+071F; KAPH; D; KAPH
+0720; LAMADH; D; LAMADH
+0721; MIM; D; MIM
+0722; NUN; D; NUN
+0723; SEMKATH; D; SEMKATH
+0724; FINAL SEMKATH; D; FINAL SEMKATH
+0725; E; D; E
+0726; PE; D; PE
+0727; REVERSED PE; D; REVERSED PE
+0728; SADHE; R; SADHE
+0729; QAPH; D; QAPH
+072A; RISH; R; DALATH RISH
+072B; SHIN; D; SHIN
+072C; TAW; R; TAW
index 92c3f47..f2ff4e6 100644 (file)
@@ -447,7 +447,7 @@ return <<'END';
 202c           PDF
 202d           LRO
 202e           RLO
-202f           CS
+202f           WS
 2030   2034    ET
 2035   2046    ON
 2048   204d    ON
@@ -494,7 +494,9 @@ return <<'END';
 2300   2335    ON
 2336   237a    L
 237b           ON
-237d   239a    ON
+237d   2394    ON
+2395           L
+2396   239a    ON
 2400   2426    ON
 2440   244a    ON
 2460   249b    EN
@@ -554,11 +556,11 @@ return <<'END';
 3400   4db5    L
 4e00   9fa5    L
 a000   a48c    L
-a490   a4a1    L
-a4a4   a4b3    L
-a4b5   a4c0    L
-a4c2   a4c4    L
-a4c6           L
+a490   a4a1    ON
+a4a4   a4b3    ON
+a4b5   a4c0    ON
+a4c2   a4c4    ON
+a4c6           ON
 ac00   d7a3    L
 d800   db7f    L
 db80   dbff    L
index 1c0b280..7d6990b 100644 (file)
@@ -11,6 +11,8 @@ return <<'END';
 0530   058F    Armenian
 0590   05FF    Hebrew
 0600   06FF    Arabic
+0700   074F    Syriac  
+0780   07BF    Thaana
 0900   097F    Devanagari
 0980   09FF    Bengali
 0A00   0A7F    Gurmukhi
@@ -20,11 +22,20 @@ return <<'END';
 0C00   0C7F    Telugu
 0C80   0CFF    Kannada
 0D00   0D7F    Malayalam
+0D80   0DFF    Sinhala
 0E00   0E7F    Thai
 0E80   0EFF    Lao
-0F00   0FBF    Tibetan
+0F00   0FFF    Tibetan
+1000   109F    Myanmar 
 10A0   10FF    Georgian
 1100   11FF    Hangul Jamo
+1200   137F    Ethiopic
+13A0   13FF    Cherokee
+1400   167F    Unified Canadian Aboriginal Syllabics
+1680   169F    Ogham
+16A0   16FF    Runic
+1780   17FF    Khmer
+1800   18AF    Mongolian
 1E00   1EFF    Latin Extended Additional
 1F00   1FFF    Greek Extended
 2000   206F    General Punctuation
@@ -44,15 +55,23 @@ return <<'END';
 25A0   25FF    Geometric Shapes
 2600   26FF    Miscellaneous Symbols
 2700   27BF    Dingbats
+2800   28FF    Braille Patterns
+2E80   2EFF    CJK Radicals Supplement
+2F00   2FDF    Kangxi Radicals
+2FF0   2FFF    Ideographic Description Characters
 3000   303F    CJK Symbols and Punctuation
 3040   309F    Hiragana
 30A0   30FF    Katakana
 3100   312F    Bopomofo
 3130   318F    Hangul Compatibility Jamo
 3190   319F    Kanbun
+31A0   31BF    Bopomofo Extended
 3200   32FF    Enclosed CJK Letters and Months
 3300   33FF    CJK Compatibility
+3400   4DB5    CJK Unified Ideographs Extension A
 4E00   9FFF    CJK Unified Ideographs
+A000   A48F    Yi Syllables
+A490   A4CF    Yi Radicals
 AC00   D7A3    Hangul Syllables
 D800   DB7F    High Surrogates
 DB80   DBFF    High Private Use Surrogates
@@ -64,8 +83,8 @@ FB50  FDFF    Arabic Presentation Forms-A
 FE20   FE2F    Combining Half Marks
 FE30   FE4F    CJK Compatibility Forms
 FE50   FE6F    Small Form Variants
-FE70   FEFF    Arabic Presentation Forms-B
-FF00   FFEF    Halfwidth and Fullwidth Forms
+FE70   FEFE    Arabic Presentation Forms-B
 FEFF   FEFF    Specials
-FFF0   FFFF    Specials
+FF00   FFEF    Halfwidth and Fullwidth Forms
+FFF0   FFFD    Specials
 END
old mode 100755 (executable)
new mode 100644 (file)
similarity index 76%
rename from lib/unicode/blocks.txt
rename to lib/unicode/Blocks.txt
index e9c0ae8..15c8957
@@ -11,6 +11,8 @@
 0530; 058F; Armenian
 0590; 05FF; Hebrew
 0600; 06FF; Arabic
+0700; 074F; Syriac  
+0780; 07BF; Thaana
 0900; 097F; Devanagari
 0980; 09FF; Bengali
 0A00; 0A7F; Gurmukhi
 0C00; 0C7F; Telugu
 0C80; 0CFF; Kannada
 0D00; 0D7F; Malayalam
+0D80; 0DFF; Sinhala
 0E00; 0E7F; Thai
 0E80; 0EFF; Lao
-0F00; 0FBF; Tibetan
+0F00; 0FFF; Tibetan
+1000; 109F; Myanmar 
 10A0; 10FF; Georgian
 1100; 11FF; Hangul Jamo
+1200; 137F; Ethiopic
+13A0; 13FF; Cherokee
+1400; 167F; Unified Canadian Aboriginal Syllabics
+1680; 169F; Ogham
+16A0; 16FF; Runic
+1780; 17FF; Khmer
+1800; 18AF; Mongolian
 1E00; 1EFF; Latin Extended Additional
 1F00; 1FFF; Greek Extended
 2000; 206F; General Punctuation
 25A0; 25FF; Geometric Shapes
 2600; 26FF; Miscellaneous Symbols
 2700; 27BF; Dingbats
+2800; 28FF; Braille Patterns
+2E80; 2EFF; CJK Radicals Supplement
+2F00; 2FDF; Kangxi Radicals
+2FF0; 2FFF; Ideographic Description Characters
 3000; 303F; CJK Symbols and Punctuation
 3040; 309F; Hiragana
 30A0; 30FF; Katakana
 3100; 312F; Bopomofo
 3130; 318F; Hangul Compatibility Jamo
 3190; 319F; Kanbun
+31A0; 31BF; Bopomofo Extended
 3200; 32FF; Enclosed CJK Letters and Months
 3300; 33FF; CJK Compatibility
+3400; 4DB5; CJK Unified Ideographs Extension A
 4E00; 9FFF; CJK Unified Ideographs
+A000; A48F; Yi Syllables
+A490; A4CF; Yi Radicals
 AC00; D7A3; Hangul Syllables
 D800; DB7F; High Surrogates
 DB80; DBFF; High Private Use Surrogates
@@ -64,7 +83,8 @@ FB50; FDFF; Arabic Presentation Forms-A
 FE20; FE2F; Combining Half Marks
 FE30; FE4F; CJK Compatibility Forms
 FE50; FE6F; Small Form Variants
-FE70; FEFF; Arabic Presentation Forms-B
-FF00; FFEF; Halfwidth and Fullwidth Forms
+FE70; FEFE; Arabic Presentation Forms-B
 FEFF; FEFF; Specials
-FFF0; FFFF; Specials
+FF00; FFEF; Halfwidth and Fullwidth Forms
+FFF0; FFFD; Specials
+
index 853de42..4e3e873 100644 (file)
@@ -208,8 +208,7 @@ return <<'END';
 01a6   01a7    Lu
 01a8           Ll
 01a9           Lu
-01aa           Lo
-01ab           Ll
+01aa   01ab    Ll
 01ac           Lu
 01ad           Ll
 01ae   01af    Lu
@@ -222,9 +221,7 @@ return <<'END';
 01b9   01ba    Ll
 01bb           Lo
 01bc           Lu
-01bd           Ll
-01be           Lo
-01bf           Ll
+01bd   01bf    Ll
 01c0   01c3    Lo
 01c4           Lu
 01c5           Lt
@@ -381,8 +378,7 @@ return <<'END';
 03ec           Lu
 03ed           Ll
 03ee           Lu
-03ef   03f2    Ll
-03f3           Lo
+03ef   03f3    Ll
 0400   042f    Lu
 0430   045f    Ll
 0460           Lu
@@ -474,8 +470,7 @@ return <<'END';
 04bd           Ll
 04be           Lu
 04bf           Ll
-04c0           Lo
-04c1           Lu
+04c0   04c1    Lu
 04c2           Ll
 04c3           Lu
 04c4           Ll
@@ -886,7 +881,9 @@ return <<'END';
 17db           Sc
 17dc           Po
 17e0   17e9    Nd
-1800   180a    Po
+1800   1805    Po
+1806           Pd
+1807   180a    Po
 180b   180e    Cf
 1810   1819    Nd
 1820   1842    Lo
@@ -1258,7 +1255,19 @@ return <<'END';
 2153   215f    No
 2160   2183    Nl
 2190   2194    Sm
-2195   21d1    So
+2195   2199    So
+219a   219b    Sm
+219c   219f    So
+21a0           Sm
+21a1   21a2    So
+21a3           Sm
+21a4   21a5    So
+21a6           Sm
+21a7   21ad    So
+21ae           Sm
+21af   21cd    So
+21ce   21cf    Sm
+21d0   21d1    So
 21d2           Sm
 21d3           So
 21d4           Sm
@@ -1279,9 +1288,15 @@ return <<'END';
 249c   24e9    So
 24ea           No
 2500   2595    So
-25a0   25f7    So
+25a0   25b6    So
+25b7           Sm
+25b8   25c0    So
+25c1           Sm
+25c2   25f7    So
 2600   2613    So
-2619   2671    So
+2619   266e    So
+266f           Sm
+2670   2671    So
 2701   2704    So
 2706   2709    So
 270c   2727    So
@@ -1364,11 +1379,11 @@ return <<'END';
 3400   4db5    Lo
 4e00   9fa5    Lo
 a000   a48c    Lo
-a490   a4a1    Lo
-a4a4   a4b3    Lo
-a4b5   a4c0    Lo
-a4c2   a4c4    Lo
-a4c6           Lo
+a490   a4a1    So
+a4a4   a4b3    So
+a4b5   a4c0    So
+a4c2   a4c4    So
+a4c6           So
 ac00   d7a3    Lo
 d800   db7f    Cs
 db80   dbff    Cs
index 8449c8c..5b506ad 100644 (file)
@@ -113,10 +113,8 @@ return <<'END';
 0e38   0e39    103
 0e3a           9
 0e48   0e4b    107
-0e4d           107
 0eb8   0eb9    118
 0ec8   0ecb    122
-0ecd           122
 0f18   0f19    220
 0f35           220
 0f37           220
diff --git a/lib/unicode/CompExcl.txt b/lib/unicode/CompExcl.txt
new file mode 100644 (file)
index 0000000..5ea46af
--- /dev/null
@@ -0,0 +1,143 @@
+# Composition Exclusions
+# This file lists the characters from the UTR #15 Composition Exclusion Table.
+#
+# For more information, see
+# http://www.unicode.org/unicode/reports/tr15/#Primary Exclusion List Table
+
+# (1) Script Specifics
+# This list of characters cannot be derived from the UnicodeData file.
+
+0958 # DEVANAGARI LETTER QA
+0959 # DEVANAGARI LETTER KHHA
+095A # DEVANAGARI LETTER GHHA
+095B # DEVANAGARI LETTER ZA
+095C # DEVANAGARI LETTER DDDHA
+095D # DEVANAGARI LETTER RHA
+095E # DEVANAGARI LETTER FA
+095F # DEVANAGARI LETTER YYA
+09DC # BENGALI LETTER RRA
+09DD # BENGALI LETTER RHA
+09DF # BENGALI LETTER YYA
+0A33 # GURMUKHI LETTER LLA
+0A36 # GURMUKHI LETTER SHA
+0A59 # GURMUKHI LETTER KHHA
+0A5A # GURMUKHI LETTER GHHA
+0A5B # GURMUKHI LETTER ZA
+0A5E # GURMUKHI LETTER FA
+0B5C # ORIYA LETTER RRA
+0B5D # ORIYA LETTER RHA
+0F43 # TIBETAN LETTER GHA
+0F4D # TIBETAN LETTER DDHA
+0F52 # TIBETAN LETTER DHA
+0F57 # TIBETAN LETTER BHA
+0F5C # TIBETAN LETTER DZHA
+0F69 # TIBETAN LETTER KSSA
+0F76 # TIBETAN VOWEL SIGN VOCALIC R
+0F78 # TIBETAN VOWEL SIGN VOCALIC L
+0F93 # TIBETAN SUBJOINED LETTER GHA
+0F9D # TIBETAN SUBJOINED LETTER DDHA
+0FA2 # TIBETAN SUBJOINED LETTER DHA
+0FA7 # TIBETAN SUBJOINED LETTER BHA
+0FAC # TIBETAN SUBJOINED LETTER DZHA
+0FB9 # TIBETAN SUBJOINED LETTER KSSA
+FB1F # HEBREW LIGATURE YIDDISH YOD YOD PATAH
+FB2A # HEBREW LETTER SHIN WITH SHIN DOT
+FB2B # HEBREW LETTER SHIN WITH SIN DOT
+FB2C # HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT
+FB2D # HEBREW LETTER SHIN WITH DAGESH AND SIN DOT
+FB2E # HEBREW LETTER ALEF WITH PATAH
+FB2F # HEBREW LETTER ALEF WITH QAMATS
+FB30 # HEBREW LETTER ALEF WITH MAPIQ
+FB31 # HEBREW LETTER BET WITH DAGESH
+FB32 # HEBREW LETTER GIMEL WITH DAGESH
+FB33 # HEBREW LETTER DALET WITH DAGESH
+FB34 # HEBREW LETTER HE WITH MAPIQ
+FB35 # HEBREW LETTER VAV WITH DAGESH
+FB36 # HEBREW LETTER ZAYIN WITH DAGESH
+FB38 # HEBREW LETTER TET WITH DAGESH
+FB39 # HEBREW LETTER YOD WITH DAGESH
+FB3A # HEBREW LETTER FINAL KAF WITH DAGESH
+FB3B # HEBREW LETTER KAF WITH DAGESH
+FB3C # HEBREW LETTER LAMED WITH DAGESH
+FB3E # HEBREW LETTER MEM WITH DAGESH
+FB40 # HEBREW LETTER NUN WITH DAGESH
+FB41 # HEBREW LETTER SAMEKH WITH DAGESH
+FB43 # HEBREW LETTER FINAL PE WITH DAGESH
+FB44 # HEBREW LETTER PE WITH DAGESH
+FB46 # HEBREW LETTER TSADI WITH DAGESH
+FB47 # HEBREW LETTER QOF WITH DAGESH
+FB48 # HEBREW LETTER RESH WITH DAGESH
+FB49 # HEBREW LETTER SHIN WITH DAGESH
+FB4A # HEBREW LETTER TAV WITH DAGESH
+FB4B # HEBREW LETTER VAV WITH HOLAM
+FB4C # HEBREW LETTER BET WITH RAFE
+FB4D # HEBREW LETTER KAF WITH RAFE
+FB4E # HEBREW LETTER PE WITH RAFE
+
+# (2) Post Composition Version characters
+# These characters cannot be derived from the UnicodeData file.
+# (There are no characters in this category in this version of Unicode.)
+
+# (3) Singleton Decompositions
+# These characters can be derived from the UnicodeData file
+# by including all characters whose canonical decomposition
+# consists of a single character.
+# These characters are simply quoted here for reference.
+
+# 0340 COMBINING GRAVE TONE MARK
+# 0341 COMBINING ACUTE TONE MARK
+# 0343 COMBINING GREEK KORONIS
+# 0374 GREEK NUMERAL SIGN
+# 037E GREEK QUESTION MARK
+# 0387 GREEK ANO TELEIA
+# 1F71 GREEK SMALL LETTER ALPHA WITH OXIA
+# 1F73 GREEK SMALL LETTER EPSILON WITH OXIA
+# 1F75 GREEK SMALL LETTER ETA WITH OXIA
+# 1F77 GREEK SMALL LETTER IOTA WITH OXIA
+# 1F79 GREEK SMALL LETTER OMICRON WITH OXIA
+# 1F7B GREEK SMALL LETTER UPSILON WITH OXIA
+# 1F7D GREEK SMALL LETTER OMEGA WITH OXIA
+# 1FBB GREEK CAPITAL LETTER ALPHA WITH OXIA
+# 1FBE GREEK PROSGEGRAMMENI
+# 1FC9 GREEK CAPITAL LETTER EPSILON WITH OXIA
+# 1FCB GREEK CAPITAL LETTER ETA WITH OXIA
+# 1FD3 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
+# 1FDB GREEK CAPITAL LETTER IOTA WITH OXIA
+# 1FE3 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
+# 1FEB GREEK CAPITAL LETTER UPSILON WITH OXIA
+# 1FEE GREEK DIALYTIKA AND OXIA
+# 1FEF GREEK VARIA
+# 1FF9 GREEK CAPITAL LETTER OMICRON WITH OXIA
+# 1FFB GREEK CAPITAL LETTER OMEGA WITH OXIA
+# 1FFD GREEK OXIA
+# 2000 EN QUAD
+# 2001 EM QUAD
+# 2126 OHM SIGN
+# 212A KELVIN SIGN
+# 212B ANGSTROM SIGN
+# 2329 LEFT-POINTING ANGLE BRACKET
+# 232A RIGHT-POINTING ANGLE BRACKET
+# F900 CJK COMPATIBILITY IDEOGRAPH-F900
+#.. FA0D CJK COMPATIBILITY IDEOGRAPH-FA0D
+# FA10 CJK COMPATIBILITY IDEOGRAPH-FA10
+# FA12 CJK COMPATIBILITY IDEOGRAPH-FA12
+# FA15 CJK COMPATIBILITY IDEOGRAPH-FA15
+#.. FA1E CJK COMPATIBILITY IDEOGRAPH-FA1E
+# FA20 CJK COMPATIBILITY IDEOGRAPH-FA20
+# FA22 CJK COMPATIBILITY IDEOGRAPH-FA22
+# FA25 CJK COMPATIBILITY IDEOGRAPH-FA25
+# FA26 CJK COMPATIBILITY IDEOGRAPH-FA26
+# FA2A CJK COMPATIBILITY IDEOGRAPH-FA2A
+#.. FA2D CJK COMPATIBILITY IDEOGRAPH-FA2D
+
+# (4) Non-Starter Decompositions
+# These characters can be derived from the UnicodeData file
+# by including all characters whose canonical decomposition consists
+# of a sequence of characters, the first of which has a canonical
+# class of zero.
+# These characters are simply quoted here for reference.
+
+# 0344 COMBINING GREEK DIALYTIKA TONOS
+# 0F73 TIBETAN VOWEL SIGN II
+# 0F75 TIBETAN VOWEL SIGN UU
+# 0F81 TIBETAN VOWEL SIGN REVERSED II
index fcf7244..ae4cbaf 100644 (file)
@@ -1,7 +1,4 @@
 return <<'END';
-005e           <compat> 0020 0302
-005f           <compat> 0020 0332
-0060           <compat> 0020 0300
 00a0           <noBreak> 0020
 00a8           <compat> 0020 0308
 00aa           <super> 0061
@@ -455,8 +452,8 @@ return <<'END';
 0ddc           0DD9 0DCF
 0ddd           0DDC 0DCA
 0dde           0DD9 0DDF
-0e33           0E4D 0E32
-0eb3           0ECD 0EB2
+0e33           <compat> 0E4D 0E32
+0eb3           <compat> 0ECD 0EB2
 0edc           <compat> 0EAB 0E99
 0edd           <compat> 0EAB 0EA1
 0f0c           <noBreak> 0F0B
diff --git a/lib/unicode/EAWidth.txt b/lib/unicode/EAWidth.txt
new file mode 100644 (file)
index 0000000..2b3577b
--- /dev/null
@@ -0,0 +1,10636 @@
+# EastAsianWidth-3.txt
+#
+# East Asian Width Properties
+#
+# This file is a supplement to the UnicodeData file.
+# It contains informative data only.
+# The format is three fields separated by semicolons.
+# Field 1: Unicode value
+# Field 2: East Asian Width property, consisting of one of the following values:
+#         "N", "A", "H", "W", "F", "Na"
+#  - Assigned characters that are not listed explicitly are given the value "N".
+#  - Characters within ranges marked by "First>" and "Last>" are omitted,
+#    as in UnicodeData.txt. For example, the following means that
+#    all characters between 3400 and 4DB5 have the value "W"
+#     3400;W;<CJK Ideograph Extension A, First>
+#     4DB5;W;<CJK Ideograph Extension A, Last>
+# Field 3: Unicode name (this is purely informative)
+#
+# See UTR #11: East Asian Character Width for more information
+0000;N;<control>
+0001;N;<control>
+0002;N;<control>
+0003;N;<control>
+0004;N;<control>
+0005;N;<control>
+0006;N;<control>
+0007;N;<control>
+0008;N;<control>
+0009;N;<control>
+000A;N;<control>
+000B;N;<control>
+000C;N;<control>
+000D;N;<control>
+000E;N;<control>
+000F;N;<control>
+0010;N;<control>
+0011;N;<control>
+0012;N;<control>
+0013;N;<control>
+0014;N;<control>
+0015;N;<control>
+0016;N;<control>
+0017;N;<control>
+0018;N;<control>
+0019;N;<control>
+001A;N;<control>
+001B;N;<control>
+001C;N;<control>
+001D;N;<control>
+001E;N;<control>
+001F;N;<control>
+0020;Na;SPACE
+0021;Na;EXCLAMATION MARK
+0022;Na;QUOTATION MARK
+0023;Na;NUMBER SIGN
+0024;Na;DOLLAR SIGN
+0025;Na;PERCENT SIGN
+0026;Na;AMPERSAND
+0027;Na;APOSTROPHE
+0028;Na;LEFT PARENTHESIS
+0029;Na;RIGHT PARENTHESIS
+002A;Na;ASTERISK
+002B;Na;PLUS SIGN
+002C;Na;COMMA
+002D;Na;HYPHEN-MINUS
+002E;Na;FULL STOP
+002F;Na;SOLIDUS
+0030;Na;DIGIT ZERO
+0031;Na;DIGIT ONE
+0032;Na;DIGIT TWO
+0033;Na;DIGIT THREE
+0034;Na;DIGIT FOUR
+0035;Na;DIGIT FIVE
+0036;Na;DIGIT SIX
+0037;Na;DIGIT SEVEN
+0038;Na;DIGIT EIGHT
+0039;Na;DIGIT NINE
+003A;Na;COLON
+003B;Na;SEMICOLON
+003C;Na;LESS-THAN SIGN
+003D;Na;EQUALS SIGN
+003E;Na;GREATER-THAN SIGN
+003F;Na;QUESTION MARK
+0040;Na;COMMERCIAL AT
+0041;Na;LATIN CAPITAL LETTER A
+0042;Na;LATIN CAPITAL LETTER B
+0043;Na;LATIN CAPITAL LETTER C
+0044;Na;LATIN CAPITAL LETTER D
+0045;Na;LATIN CAPITAL LETTER E
+0046;Na;LATIN CAPITAL LETTER F
+0047;Na;LATIN CAPITAL LETTER G
+0048;Na;LATIN CAPITAL LETTER H
+0049;Na;LATIN CAPITAL LETTER I
+004A;Na;LATIN CAPITAL LETTER J
+004B;Na;LATIN CAPITAL LETTER K
+004C;Na;LATIN CAPITAL LETTER L
+004D;Na;LATIN CAPITAL LETTER M
+004E;Na;LATIN CAPITAL LETTER N
+004F;Na;LATIN CAPITAL LETTER O
+0050;Na;LATIN CAPITAL LETTER P
+0051;Na;LATIN CAPITAL LETTER Q
+0052;Na;LATIN CAPITAL LETTER R
+0053;Na;LATIN CAPITAL LETTER S
+0054;Na;LATIN CAPITAL LETTER T
+0055;Na;LATIN CAPITAL LETTER U
+0056;Na;LATIN CAPITAL LETTER V
+0057;Na;LATIN CAPITAL LETTER W
+0058;Na;LATIN CAPITAL LETTER X
+0059;Na;LATIN CAPITAL LETTER Y
+005A;Na;LATIN CAPITAL LETTER Z
+005B;Na;LEFT SQUARE BRACKET
+005C;Na;REVERSE SOLIDUS
+005D;Na;RIGHT SQUARE BRACKET
+005E;Na;CIRCUMFLEX ACCENT
+005F;Na;LOW LINE
+0060;Na;GRAVE ACCENT
+0061;Na;LATIN SMALL LETTER A
+0062;Na;LATIN SMALL LETTER B
+0063;Na;LATIN SMALL LETTER C
+0064;Na;LATIN SMALL LETTER D
+0065;Na;LATIN SMALL LETTER E
+0066;Na;LATIN SMALL LETTER F
+0067;Na;LATIN SMALL LETTER G
+0068;Na;LATIN SMALL LETTER H
+0069;Na;LATIN SMALL LETTER I
+006A;Na;LATIN SMALL LETTER J
+006B;Na;LATIN SMALL LETTER K
+006C;Na;LATIN SMALL LETTER L
+006D;Na;LATIN SMALL LETTER M
+006E;Na;LATIN SMALL LETTER N
+006F;Na;LATIN SMALL LETTER O
+0070;Na;LATIN SMALL LETTER P
+0071;Na;LATIN SMALL LETTER Q
+0072;Na;LATIN SMALL LETTER R
+0073;Na;LATIN SMALL LETTER S
+0074;Na;LATIN SMALL LETTER T
+0075;Na;LATIN SMALL LETTER U
+0076;Na;LATIN SMALL LETTER V
+0077;Na;LATIN SMALL LETTER W
+0078;Na;LATIN SMALL LETTER X
+0079;Na;LATIN SMALL LETTER Y
+007A;Na;LATIN SMALL LETTER Z
+007B;Na;LEFT CURLY BRACKET
+007C;Na;VERTICAL LINE
+007D;Na;RIGHT CURLY BRACKET
+007E;Na;TILDE
+007F;N;<control>
+0080;N;<control>
+0081;N;<control>
+0082;N;<control>
+0083;N;<control>
+0084;N;<control>
+0085;N;<control>
+0086;N;<control>
+0087;N;<control>
+0088;N;<control>
+0089;N;<control>
+008A;N;<control>
+008B;N;<control>
+008C;N;<control>
+008D;N;<control>
+008E;N;<control>
+008F;N;<control>
+0090;N;<control>
+0091;N;<control>
+0092;N;<control>
+0093;N;<control>
+0094;N;<control>
+0095;N;<control>
+0096;N;<control>
+0097;N;<control>
+0098;N;<control>
+0099;N;<control>
+009A;N;<control>
+009B;N;<control>
+009C;N;<control>
+009D;N;<control>
+009E;N;<control>
+009F;N;<control>
+00A0;N;NO-BREAK SPACE
+00A1;A;INVERTED EXCLAMATION MARK
+00A2;Na;CENT SIGN
+00A3;Na;POUND SIGN
+00A4;A;CURRENCY SIGN
+00A5;Na;YEN SIGN
+00A6;Na;BROKEN BAR
+00A7;A;SECTION SIGN
+00A8;A;DIAERESIS
+00A9;N;COPYRIGHT SIGN
+00AA;A;FEMININE ORDINAL INDICATOR
+00AB;N;LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+00AC;Na;NOT SIGN
+00AD;A;SOFT HYPHEN
+00AE;N;REGISTERED SIGN
+00AF;Na;MACRON
+00B0;A;DEGREE SIGN
+00B1;A;PLUS-MINUS SIGN
+00B2;A;SUPERSCRIPT TWO
+00B3;A;SUPERSCRIPT THREE
+00B4;A;ACUTE ACCENT
+00B5;N;MICRO SIGN
+00B6;A;PILCROW SIGN
+00B7;A;MIDDLE DOT
+00B8;A;CEDILLA
+00B9;A;SUPERSCRIPT ONE
+00BA;A;MASCULINE ORDINAL INDICATOR
+00BB;N;RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+00BC;A;VULGAR FRACTION ONE QUARTER
+00BD;A;VULGAR FRACTION ONE HALF
+00BE;A;VULGAR FRACTION THREE QUARTERS
+00BF;A;INVERTED QUESTION MARK
+00C0;N;LATIN CAPITAL LETTER A WITH GRAVE
+00C1;N;LATIN CAPITAL LETTER A WITH ACUTE
+00C2;N;LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+00C3;N;LATIN CAPITAL LETTER A WITH TILDE
+00C4;N;LATIN CAPITAL LETTER A WITH DIAERESIS
+00C5;N;LATIN CAPITAL LETTER A WITH RING ABOVE
+00C6;A;LATIN CAPITAL LETTER AE
+00C7;N;LATIN CAPITAL LETTER C WITH CEDILLA
+00C8;N;LATIN CAPITAL LETTER E WITH GRAVE
+00C9;N;LATIN CAPITAL LETTER E WITH ACUTE
+00CA;N;LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+00CB;N;LATIN CAPITAL LETTER E WITH DIAERESIS
+00CC;N;LATIN CAPITAL LETTER I WITH GRAVE
+00CD;N;LATIN CAPITAL LETTER I WITH ACUTE
+00CE;N;LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+00CF;N;LATIN CAPITAL LETTER I WITH DIAERESIS
+00D0;A;LATIN CAPITAL LETTER ETH
+00D1;N;LATIN CAPITAL LETTER N WITH TILDE
+00D2;N;LATIN CAPITAL LETTER O WITH GRAVE
+00D3;N;LATIN CAPITAL LETTER O WITH ACUTE
+00D4;N;LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+00D5;N;LATIN CAPITAL LETTER O WITH TILDE
+00D6;N;LATIN CAPITAL LETTER O WITH DIAERESIS
+00D7;A;MULTIPLICATION SIGN
+00D8;A;LATIN CAPITAL LETTER O WITH STROKE
+00D9;N;LATIN CAPITAL LETTER U WITH GRAVE
+00DA;N;LATIN CAPITAL LETTER U WITH ACUTE
+00DB;N;LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+00DC;N;LATIN CAPITAL LETTER U WITH DIAERESIS
+00DD;N;LATIN CAPITAL LETTER Y WITH ACUTE
+00DE;A;LATIN CAPITAL LETTER THORN
+00DF;A;LATIN SMALL LETTER SHARP S
+00E0;A;LATIN SMALL LETTER A WITH GRAVE
+00E1;A;LATIN SMALL LETTER A WITH ACUTE
+00E2;N;LATIN SMALL LETTER A WITH CIRCUMFLEX
+00E3;N;LATIN SMALL LETTER A WITH TILDE
+00E4;N;LATIN SMALL LETTER A WITH DIAERESIS
+00E5;N;LATIN SMALL LETTER A WITH RING ABOVE
+00E6;A;LATIN SMALL LETTER AE
+00E7;N;LATIN SMALL LETTER C WITH CEDILLA
+00E8;A;LATIN SMALL LETTER E WITH GRAVE
+00E9;A;LATIN SMALL LETTER E WITH ACUTE
+00EA;A;LATIN SMALL LETTER E WITH CIRCUMFLEX
+00EB;N;LATIN SMALL LETTER E WITH DIAERESIS
+00EC;A;LATIN SMALL LETTER I WITH GRAVE
+00ED;A;LATIN SMALL LETTER I WITH ACUTE
+00EE;N;LATIN SMALL LETTER I WITH CIRCUMFLEX
+00EF;N;LATIN SMALL LETTER I WITH DIAERESIS
+00F0;A;LATIN SMALL LETTER ETH
+00F1;N;LATIN SMALL LETTER N WITH TILDE
+00F2;A;LATIN SMALL LETTER O WITH GRAVE
+00F3;A;LATIN SMALL LETTER O WITH ACUTE
+00F4;N;LATIN SMALL LETTER O WITH CIRCUMFLEX
+00F5;N;LATIN SMALL LETTER O WITH TILDE
+00F6;N;LATIN SMALL LETTER O WITH DIAERESIS
+00F7;A;DIVISION SIGN
+00F8;A;LATIN SMALL LETTER O WITH STROKE
+00F9;A;LATIN SMALL LETTER U WITH GRAVE
+00FA;A;LATIN SMALL LETTER U WITH ACUTE
+00FB;N;LATIN SMALL LETTER U WITH CIRCUMFLEX
+00FC;A;LATIN SMALL LETTER U WITH DIAERESIS
+00FD;N;LATIN SMALL LETTER Y WITH ACUTE
+00FE;A;LATIN SMALL LETTER THORN
+00FF;N;LATIN SMALL LETTER Y WITH DIAERESIS
+0100;N;LATIN CAPITAL LETTER A WITH MACRON
+0101;A;LATIN SMALL LETTER A WITH MACRON
+0102;N;LATIN CAPITAL LETTER A WITH BREVE
+0103;N;LATIN SMALL LETTER A WITH BREVE
+0104;N;LATIN CAPITAL LETTER A WITH OGONEK
+0105;N;LATIN SMALL LETTER A WITH OGONEK
+0106;N;LATIN CAPITAL LETTER C WITH ACUTE
+0107;N;LATIN SMALL LETTER C WITH ACUTE
+0108;N;LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+0109;N;LATIN SMALL LETTER C WITH CIRCUMFLEX
+010A;N;LATIN CAPITAL LETTER C WITH DOT ABOVE
+010B;N;LATIN SMALL LETTER C WITH DOT ABOVE
+010C;N;LATIN CAPITAL LETTER C WITH CARON
+010D;N;LATIN SMALL LETTER C WITH CARON
+010E;N;LATIN CAPITAL LETTER D WITH CARON
+010F;N;LATIN SMALL LETTER D WITH CARON
+0110;N;LATIN CAPITAL LETTER D WITH STROKE
+0111;A;LATIN SMALL LETTER D WITH STROKE
+0112;N;LATIN CAPITAL LETTER E WITH MACRON
+0113;A;LATIN SMALL LETTER E WITH MACRON
+0114;N;LATIN CAPITAL LETTER E WITH BREVE
+0115;N;LATIN SMALL LETTER E WITH BREVE
+0116;N;LATIN CAPITAL LETTER E WITH DOT ABOVE
+0117;N;LATIN SMALL LETTER E WITH DOT ABOVE
+0118;N;LATIN CAPITAL LETTER E WITH OGONEK
+0119;N;LATIN SMALL LETTER E WITH OGONEK
+011A;N;LATIN CAPITAL LETTER E WITH CARON
+011B;A;LATIN SMALL LETTER E WITH CARON
+011C;N;LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+011D;N;LATIN SMALL LETTER G WITH CIRCUMFLEX
+011E;N;LATIN CAPITAL LETTER G WITH BREVE
+011F;N;LATIN SMALL LETTER G WITH BREVE
+0120;N;LATIN CAPITAL LETTER G WITH DOT ABOVE
+0121;N;LATIN SMALL LETTER G WITH DOT ABOVE
+0122;N;LATIN CAPITAL LETTER G WITH CEDILLA
+0123;N;LATIN SMALL LETTER G WITH CEDILLA
+0124;N;LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+0125;N;LATIN SMALL LETTER H WITH CIRCUMFLEX
+0126;A;LATIN CAPITAL LETTER H WITH STROKE
+0127;A;LATIN SMALL LETTER H WITH STROKE
+0128;N;LATIN CAPITAL LETTER I WITH TILDE
+0129;N;LATIN SMALL LETTER I WITH TILDE
+012A;N;LATIN CAPITAL LETTER I WITH MACRON
+012B;A;LATIN SMALL LETTER I WITH MACRON
+012C;N;LATIN CAPITAL LETTER I WITH BREVE
+012D;N;LATIN SMALL LETTER I WITH BREVE
+012E;N;LATIN CAPITAL LETTER I WITH OGONEK
+012F;N;LATIN SMALL LETTER I WITH OGONEK
+0130;N;LATIN CAPITAL LETTER I WITH DOT ABOVE
+0131;A;LATIN SMALL LETTER DOTLESS I
+0132;A;LATIN CAPITAL LIGATURE IJ
+0133;A;LATIN SMALL LIGATURE IJ
+0134;N;LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+0135;N;LATIN SMALL LETTER J WITH CIRCUMFLEX
+0136;N;LATIN CAPITAL LETTER K WITH CEDILLA
+0137;N;LATIN SMALL LETTER K WITH CEDILLA
+0138;A;LATIN SMALL LETTER KRA
+0139;N;LATIN CAPITAL LETTER L WITH ACUTE
+013A;N;LATIN SMALL LETTER L WITH ACUTE
+013B;N;LATIN CAPITAL LETTER L WITH CEDILLA
+013C;N;LATIN SMALL LETTER L WITH CEDILLA
+013D;N;LATIN CAPITAL LETTER L WITH CARON
+013E;N;LATIN SMALL LETTER L WITH CARON
+013F;A;LATIN CAPITAL LETTER L WITH MIDDLE DOT
+0140;A;LATIN SMALL LETTER L WITH MIDDLE DOT
+0141;A;LATIN CAPITAL LETTER L WITH STROKE
+0142;A;LATIN SMALL LETTER L WITH STROKE
+0143;N;LATIN CAPITAL LETTER N WITH ACUTE
+0144;A;LATIN SMALL LETTER N WITH ACUTE
+0145;N;LATIN CAPITAL LETTER N WITH CEDILLA
+0146;N;LATIN SMALL LETTER N WITH CEDILLA
+0147;N;LATIN CAPITAL LETTER N WITH CARON
+0148;A;LATIN SMALL LETTER N WITH CARON
+0149;A;LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
+014A;A;LATIN CAPITAL LETTER ENG
+014B;N;LATIN SMALL LETTER ENG
+014C;N;LATIN CAPITAL LETTER O WITH MACRON
+014D;A;LATIN SMALL LETTER O WITH MACRON
+014E;N;LATIN CAPITAL LETTER O WITH BREVE
+014F;N;LATIN SMALL LETTER O WITH BREVE
+0150;N;LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+0151;N;LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0152;A;LATIN CAPITAL LIGATURE OE
+0153;A;LATIN SMALL LIGATURE OE
+0154;N;LATIN CAPITAL LETTER R WITH ACUTE
+0155;N;LATIN SMALL LETTER R WITH ACUTE
+0156;N;LATIN CAPITAL LETTER R WITH CEDILLA
+0157;N;LATIN SMALL LETTER R WITH CEDILLA
+0158;N;LATIN CAPITAL LETTER R WITH CARON
+0159;N;LATIN SMALL LETTER R WITH CARON
+015A;N;LATIN CAPITAL LETTER S WITH ACUTE
+015B;N;LATIN SMALL LETTER S WITH ACUTE
+015C;N;LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+015D;N;LATIN SMALL LETTER S WITH CIRCUMFLEX
+015E;N;LATIN CAPITAL LETTER S WITH CEDILLA
+015F;N;LATIN SMALL LETTER S WITH CEDILLA
+0160;N;LATIN CAPITAL LETTER S WITH CARON
+0161;N;LATIN SMALL LETTER S WITH CARON
+0162;N;LATIN CAPITAL LETTER T WITH CEDILLA
+0163;N;LATIN SMALL LETTER T WITH CEDILLA
+0164;N;LATIN CAPITAL LETTER T WITH CARON
+0165;N;LATIN SMALL LETTER T WITH CARON
+0166;A;LATIN CAPITAL LETTER T WITH STROKE
+0167;A;LATIN SMALL LETTER T WITH STROKE
+0168;N;LATIN CAPITAL LETTER U WITH TILDE
+0169;N;LATIN SMALL LETTER U WITH TILDE
+016A;N;LATIN CAPITAL LETTER U WITH MACRON
+016B;A;LATIN SMALL LETTER U WITH MACRON
+016C;N;LATIN CAPITAL LETTER U WITH BREVE
+016D;N;LATIN SMALL LETTER U WITH BREVE
+016E;N;LATIN CAPITAL LETTER U WITH RING ABOVE
+016F;N;LATIN SMALL LETTER U WITH RING ABOVE
+0170;N;LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0171;N;LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0172;N;LATIN CAPITAL LETTER U WITH OGONEK
+0173;N;LATIN SMALL LETTER U WITH OGONEK
+0174;N;LATIN CAPITAL LETTER W WITH CIRCUMFLEX
+0175;N;LATIN SMALL LETTER W WITH CIRCUMFLEX
+0176;N;LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
+0177;N;LATIN SMALL LETTER Y WITH CIRCUMFLEX
+0178;N;LATIN CAPITAL LETTER Y WITH DIAERESIS
+0179;N;LATIN CAPITAL LETTER Z WITH ACUTE
+017A;N;LATIN SMALL LETTER Z WITH ACUTE
+017B;N;LATIN CAPITAL LETTER Z WITH DOT ABOVE
+017C;N;LATIN SMALL LETTER Z WITH DOT ABOVE
+017D;N;LATIN CAPITAL LETTER Z WITH CARON
+017E;N;LATIN SMALL LETTER Z WITH CARON
+017F;N;LATIN SMALL LETTER LONG S
+0180;N;LATIN SMALL LETTER B WITH STROKE
+0181;N;LATIN CAPITAL LETTER B WITH HOOK
+0182;N;LATIN CAPITAL LETTER B WITH TOPBAR
+0183;N;LATIN SMALL LETTER B WITH TOPBAR
+0184;N;LATIN CAPITAL LETTER TONE SIX
+0185;N;LATIN SMALL LETTER TONE SIX
+0186;N;LATIN CAPITAL LETTER OPEN O
+0187;N;LATIN CAPITAL LETTER C WITH HOOK
+0188;N;LATIN SMALL LETTER C WITH HOOK
+0189;N;LATIN CAPITAL LETTER AFRICAN D
+018A;N;LATIN CAPITAL LETTER D WITH HOOK
+018B;N;LATIN CAPITAL LETTER D WITH TOPBAR
+018C;N;LATIN SMALL LETTER D WITH TOPBAR
+018D;N;LATIN SMALL LETTER TURNED DELTA
+018E;N;LATIN CAPITAL LETTER REVERSED E
+018F;N;LATIN CAPITAL LETTER SCHWA
+0190;N;LATIN CAPITAL LETTER OPEN E
+0191;N;LATIN CAPITAL LETTER F WITH HOOK
+0192;N;LATIN SMALL LETTER F WITH HOOK
+0193;N;LATIN CAPITAL LETTER G WITH HOOK
+0194;N;LATIN CAPITAL LETTER GAMMA
+0195;N;LATIN SMALL LETTER HV
+0196;N;LATIN CAPITAL LETTER IOTA
+0197;N;LATIN CAPITAL LETTER I WITH STROKE
+0198;N;LATIN CAPITAL LETTER K WITH HOOK
+0199;N;LATIN SMALL LETTER K WITH HOOK
+019A;N;LATIN SMALL LETTER L WITH BAR
+019B;N;LATIN SMALL LETTER LAMBDA WITH STROKE
+019C;N;LATIN CAPITAL LETTER TURNED M
+019D;N;LATIN CAPITAL LETTER N WITH LEFT HOOK
+019E;N;LATIN SMALL LETTER N WITH LONG RIGHT LEG
+019F;N;LATIN CAPITAL LETTER O WITH MIDDLE TILDE
+01A0;N;LATIN CAPITAL LETTER O WITH HORN
+01A1;N;LATIN SMALL LETTER O WITH HORN
+01A2;N;LATIN CAPITAL LETTER OI
+01A3;N;LATIN SMALL LETTER OI
+01A4;N;LATIN CAPITAL LETTER P WITH HOOK
+01A5;N;LATIN SMALL LETTER P WITH HOOK
+01A6;N;LATIN LETTER YR
+01A7;N;LATIN CAPITAL LETTER TONE TWO
+01A8;N;LATIN SMALL LETTER TONE TWO
+01A9;N;LATIN CAPITAL LETTER ESH
+01AA;N;LATIN LETTER REVERSED ESH LOOP
+01AB;N;LATIN SMALL LETTER T WITH PALATAL HOOK
+01AC;N;LATIN CAPITAL LETTER T WITH HOOK
+01AD;N;LATIN SMALL LETTER T WITH HOOK
+01AE;N;LATIN CAPITAL LETTER T WITH RETROFLEX HOOK
+01AF;N;LATIN CAPITAL LETTER U WITH HORN
+01B0;N;LATIN SMALL LETTER U WITH HORN
+01B1;N;LATIN CAPITAL LETTER UPSILON
+01B2;N;LATIN CAPITAL LETTER V WITH HOOK
+01B3;N;LATIN CAPITAL LETTER Y WITH HOOK
+01B4;N;LATIN SMALL LETTER Y WITH HOOK
+01B5;N;LATIN CAPITAL LETTER Z WITH STROKE
+01B6;N;LATIN SMALL LETTER Z WITH STROKE
+01B7;N;LATIN CAPITAL LETTER EZH
+01B8;N;LATIN CAPITAL LETTER EZH REVERSED
+01B9;N;LATIN SMALL LETTER EZH REVERSED
+01BA;N;LATIN SMALL LETTER EZH WITH TAIL
+01BB;N;LATIN LETTER TWO WITH STROKE
+01BC;N;LATIN CAPITAL LETTER TONE FIVE
+01BD;N;LATIN SMALL LETTER TONE FIVE
+01BE;N;LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE
+01BF;N;LATIN LETTER WYNN
+01C0;N;LATIN LETTER DENTAL CLICK
+01C1;N;LATIN LETTER LATERAL CLICK
+01C2;N;LATIN LETTER ALVEOLAR CLICK
+01C3;N;LATIN LETTER RETROFLEX CLICK
+01C4;N;LATIN CAPITAL LETTER DZ WITH CARON
+01C5;N;LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
+01C6;N;LATIN SMALL LETTER DZ WITH CARON
+01C7;N;LATIN CAPITAL LETTER LJ
+01C8;N;LATIN CAPITAL LETTER L WITH SMALL LETTER J
+01C9;N;LATIN SMALL LETTER LJ
+01CA;N;LATIN CAPITAL LETTER NJ
+01CB;N;LATIN CAPITAL LETTER N WITH SMALL LETTER J
+01CC;N;LATIN SMALL LETTER NJ
+01CD;N;LATIN CAPITAL LETTER A WITH CARON
+01CE;A;LATIN SMALL LETTER A WITH CARON
+01CF;N;LATIN CAPITAL LETTER I WITH CARON
+01D0;A;LATIN SMALL LETTER I WITH CARON
+01D1;N;LATIN CAPITAL LETTER O WITH CARON
+01D2;A;LATIN SMALL LETTER O WITH CARON
+01D3;N;LATIN CAPITAL LETTER U WITH CARON
+01D4;A;LATIN SMALL LETTER U WITH CARON
+01D5;N;LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01D6;A;LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D7;N;LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D8;A;LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D9;N;LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+01DA;A;LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01DB;N;LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01DC;A;LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DD;N;LATIN SMALL LETTER TURNED E
+01DE;N;LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+01DF;N;LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01E0;N;LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+01E1;N;LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
+01E2;N;LATIN CAPITAL LETTER AE WITH MACRON
+01E3;N;LATIN SMALL LETTER AE WITH MACRON
+01E4;N;LATIN CAPITAL LETTER G WITH STROKE
+01E5;N;LATIN SMALL LETTER G WITH STROKE
+01E6;N;LATIN CAPITAL LETTER G WITH CARON
+01E7;N;LATIN SMALL LETTER G WITH CARON
+01E8;N;LATIN CAPITAL LETTER K WITH CARON
+01E9;N;LATIN SMALL LETTER K WITH CARON
+01EA;N;LATIN CAPITAL LETTER O WITH OGONEK
+01EB;N;LATIN SMALL LETTER O WITH OGONEK
+01EC;N;LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+01ED;N;LATIN SMALL LETTER O WITH OGONEK AND MACRON
+01EE;N;LATIN CAPITAL LETTER EZH WITH CARON
+01EF;N;LATIN SMALL LETTER EZH WITH CARON
+01F0;N;LATIN SMALL LETTER J WITH CARON
+01F1;N;LATIN CAPITAL LETTER DZ
+01F2;N;LATIN CAPITAL LETTER D WITH SMALL LETTER Z
+01F3;N;LATIN SMALL LETTER DZ
+01F4;N;LATIN CAPITAL LETTER G WITH ACUTE
+01F5;N;LATIN SMALL LETTER G WITH ACUTE
+01F6;N;LATIN CAPITAL LETTER HWAIR
+01F7;N;LATIN CAPITAL LETTER WYNN
+01F8;N;LATIN CAPITAL LETTER N WITH GRAVE
+01F9;N;LATIN SMALL LETTER N WITH GRAVE
+01FA;N;LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+01FB;N;LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+01FC;N;LATIN CAPITAL LETTER AE WITH ACUTE
+01FD;N;LATIN SMALL LETTER AE WITH ACUTE
+01FE;N;LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+01FF;N;LATIN SMALL LETTER O WITH STROKE AND ACUTE
+0200;N;LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
+0201;N;LATIN SMALL LETTER A WITH DOUBLE GRAVE
+0202;N;LATIN CAPITAL LETTER A WITH INVERTED BREVE
+0203;N;LATIN SMALL LETTER A WITH INVERTED BREVE
+0204;N;LATIN CAPITAL LETTER E WITH DOUBLE GRAVE
+0205;N;LATIN SMALL LETTER E WITH DOUBLE GRAVE
+0206;N;LATIN CAPITAL LETTER E WITH INVERTED BREVE
+0207;N;LATIN SMALL LETTER E WITH INVERTED BREVE
+0208;N;LATIN CAPITAL LETTER I WITH DOUBLE GRAVE
+0209;N;LATIN SMALL LETTER I WITH DOUBLE GRAVE
+020A;N;LATIN CAPITAL LETTER I WITH INVERTED BREVE
+020B;N;LATIN SMALL LETTER I WITH INVERTED BREVE
+020C;N;LATIN CAPITAL LETTER O WITH DOUBLE GRAVE
+020D;N;LATIN SMALL LETTER O WITH DOUBLE GRAVE
+020E;N;LATIN CAPITAL LETTER O WITH INVERTED BREVE
+020F;N;LATIN SMALL LETTER O WITH INVERTED BREVE
+0210;N;LATIN CAPITAL LETTER R WITH DOUBLE GRAVE
+0211;N;LATIN SMALL LETTER R WITH DOUBLE GRAVE
+0212;N;LATIN CAPITAL LETTER R WITH INVERTED BREVE
+0213;N;LATIN SMALL LETTER R WITH INVERTED BREVE
+0214;N;LATIN CAPITAL LETTER U WITH DOUBLE GRAVE
+0215;N;LATIN SMALL LETTER U WITH DOUBLE GRAVE
+0216;N;LATIN CAPITAL LETTER U WITH INVERTED BREVE
+0217;N;LATIN SMALL LETTER U WITH INVERTED BREVE
+0218;N;LATIN CAPITAL LETTER S WITH COMMA BELOW
+0219;N;LATIN SMALL LETTER S WITH COMMA BELOW
+021A;N;LATIN CAPITAL LETTER T WITH COMMA BELOW
+021B;N;LATIN SMALL LETTER T WITH COMMA BELOW
+021C;N;LATIN CAPITAL LETTER YOGH
+021D;N;LATIN SMALL LETTER YOGH
+021E;N;LATIN CAPITAL LETTER H WITH CARON
+021F;N;LATIN SMALL LETTER H WITH CARON
+0222;N;LATIN CAPITAL LETTER OU
+0223;N;LATIN SMALL LETTER OU
+0224;N;LATIN CAPITAL LETTER Z WITH HOOK
+0225;N;LATIN SMALL LETTER Z WITH HOOK
+0226;N;LATIN CAPITAL LETTER A WITH DOT ABOVE
+0227;N;LATIN SMALL LETTER A WITH DOT ABOVE
+0228;N;LATIN CAPITAL LETTER E WITH CEDILLA
+0229;N;LATIN SMALL LETTER E WITH CEDILLA
+022A;N;LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+022B;N;LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022C;N;LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+022D;N;LATIN SMALL LETTER O WITH TILDE AND MACRON
+022E;N;LATIN CAPITAL LETTER O WITH DOT ABOVE
+022F;N;LATIN SMALL LETTER O WITH DOT ABOVE
+0230;N;LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+0231;N;LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
+0232;N;LATIN CAPITAL LETTER Y WITH MACRON
+0233;N;LATIN SMALL LETTER Y WITH MACRON
+0250;N;LATIN SMALL LETTER TURNED A
+0251;A;LATIN SMALL LETTER ALPHA
+0252;N;LATIN SMALL LETTER TURNED ALPHA
+0253;N;LATIN SMALL LETTER B WITH HOOK
+0254;N;LATIN SMALL LETTER OPEN O
+0255;N;LATIN SMALL LETTER C WITH CURL
+0256;N;LATIN SMALL LETTER D WITH TAIL
+0257;N;LATIN SMALL LETTER D WITH HOOK
+0258;N;LATIN SMALL LETTER REVERSED E
+0259;N;LATIN SMALL LETTER SCHWA
+025A;N;LATIN SMALL LETTER SCHWA WITH HOOK
+025B;N;LATIN SMALL LETTER OPEN E
+025C;N;LATIN SMALL LETTER REVERSED OPEN E
+025D;N;LATIN SMALL LETTER REVERSED OPEN E WITH HOOK
+025E;N;LATIN SMALL LETTER CLOSED REVERSED OPEN E
+025F;N;LATIN SMALL LETTER DOTLESS J WITH STROKE
+0260;N;LATIN SMALL LETTER G WITH HOOK
+0261;A;LATIN SMALL LETTER SCRIPT G
+0262;N;LATIN LETTER SMALL CAPITAL G
+0263;N;LATIN SMALL LETTER GAMMA
+0264;N;LATIN SMALL LETTER RAMS HORN
+0265;N;LATIN SMALL LETTER TURNED H
+0266;N;LATIN SMALL LETTER H WITH HOOK
+0267;N;LATIN SMALL LETTER HENG WITH HOOK
+0268;N;LATIN SMALL LETTER I WITH STROKE
+0269;N;LATIN SMALL LETTER IOTA
+026A;N;LATIN LETTER SMALL CAPITAL I
+026B;N;LATIN SMALL LETTER L WITH MIDDLE TILDE
+026C;N;LATIN SMALL LETTER L WITH BELT
+026D;N;LATIN SMALL LETTER L WITH RETROFLEX HOOK
+026E;N;LATIN SMALL LETTER LEZH
+026F;N;LATIN SMALL LETTER TURNED M
+0270;N;LATIN SMALL LETTER TURNED M WITH LONG LEG
+0271;N;LATIN SMALL LETTER M WITH HOOK
+0272;N;LATIN SMALL LETTER N WITH LEFT HOOK
+0273;N;LATIN SMALL LETTER N WITH RETROFLEX HOOK
+0274;N;LATIN LETTER SMALL CAPITAL N
+0275;N;LATIN SMALL LETTER BARRED O
+0276;N;LATIN LETTER SMALL CAPITAL OE
+0277;N;LATIN SMALL LETTER CLOSED OMEGA
+0278;N;LATIN SMALL LETTER PHI
+0279;N;LATIN SMALL LETTER TURNED R
+027A;N;LATIN SMALL LETTER TURNED R WITH LONG LEG
+027B;N;LATIN SMALL LETTER TURNED R WITH HOOK
+027C;N;LATIN SMALL LETTER R WITH LONG LEG
+027D;N;LATIN SMALL LETTER R WITH TAIL
+027E;N;LATIN SMALL LETTER R WITH FISHHOOK
+027F;N;LATIN SMALL LETTER REVERSED R WITH FISHHOOK
+0280;N;LATIN LETTER SMALL CAPITAL R
+0281;N;LATIN LETTER SMALL CAPITAL INVERTED R
+0282;N;LATIN SMALL LETTER S WITH HOOK
+0283;N;LATIN SMALL LETTER ESH
+0284;N;LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK
+0285;N;LATIN SMALL LETTER SQUAT REVERSED ESH
+0286;N;LATIN SMALL LETTER ESH WITH CURL
+0287;N;LATIN SMALL LETTER TURNED T
+0288;N;LATIN SMALL LETTER T WITH RETROFLEX HOOK
+0289;N;LATIN SMALL LETTER U BAR
+028A;N;LATIN SMALL LETTER UPSILON
+028B;N;LATIN SMALL LETTER V WITH HOOK
+028C;N;LATIN SMALL LETTER TURNED V
+028D;N;LATIN SMALL LETTER TURNED W
+028E;N;LATIN SMALL LETTER TURNED Y
+028F;N;LATIN LETTER SMALL CAPITAL Y
+0290;N;LATIN SMALL LETTER Z WITH RETROFLEX HOOK
+0291;N;LATIN SMALL LETTER Z WITH CURL
+0292;N;LATIN SMALL LETTER EZH
+0293;N;LATIN SMALL LETTER EZH WITH CURL
+0294;N;LATIN LETTER GLOTTAL STOP
+0295;N;LATIN LETTER PHARYNGEAL VOICED FRICATIVE
+0296;N;LATIN LETTER INVERTED GLOTTAL STOP
+0297;N;LATIN LETTER STRETCHED C
+0298;N;LATIN LETTER BILABIAL CLICK
+0299;N;LATIN LETTER SMALL CAPITAL B
+029A;N;LATIN SMALL LETTER CLOSED OPEN E
+029B;N;LATIN LETTER SMALL CAPITAL G WITH HOOK
+029C;N;LATIN LETTER SMALL CAPITAL H
+029D;N;LATIN SMALL LETTER J WITH CROSSED-TAIL
+029E;N;LATIN SMALL LETTER TURNED K
+029F;N;LATIN LETTER SMALL CAPITAL L
+02A0;N;LATIN SMALL LETTER Q WITH HOOK
+02A1;N;LATIN LETTER GLOTTAL STOP WITH STROKE
+02A2;N;LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE
+02A3;N;LATIN SMALL LETTER DZ DIGRAPH
+02A4;N;LATIN SMALL LETTER DEZH DIGRAPH
+02A5;N;LATIN SMALL LETTER DZ DIGRAPH WITH CURL
+02A6;N;LATIN SMALL LETTER TS DIGRAPH
+02A7;N;LATIN SMALL LETTER TESH DIGRAPH
+02A8;N;LATIN SMALL LETTER TC DIGRAPH WITH CURL
+02A9;N;LATIN SMALL LETTER FENG DIGRAPH
+02AA;N;LATIN SMALL LETTER LS DIGRAPH
+02AB;N;LATIN SMALL LETTER LZ DIGRAPH
+02AC;N;LATIN LETTER BILABIAL PERCUSSIVE
+02AD;N;LATIN LETTER BIDENTAL PERCUSSIVE
+02B0;N;MODIFIER LETTER SMALL H
+02B1;N;MODIFIER LETTER SMALL H WITH HOOK
+02B2;N;MODIFIER LETTER SMALL J
+02B3;N;MODIFIER LETTER SMALL R
+02B4;N;MODIFIER LETTER SMALL TURNED R
+02B5;N;MODIFIER LETTER SMALL TURNED R WITH HOOK
+02B6;N;MODIFIER LETTER SMALL CAPITAL INVERTED R
+02B7;N;MODIFIER LETTER SMALL W
+02B8;N;MODIFIER LETTER SMALL Y
+02B9;N;MODIFIER LETTER PRIME
+02BA;N;MODIFIER LETTER DOUBLE PRIME
+02BB;N;MODIFIER LETTER TURNED COMMA
+02BC;N;MODIFIER LETTER APOSTROPHE
+02BD;N;MODIFIER LETTER REVERSED COMMA
+02BE;N;MODIFIER LETTER RIGHT HALF RING
+02BF;N;MODIFIER LETTER LEFT HALF RING
+02C0;N;MODIFIER LETTER GLOTTAL STOP
+02C1;N;MODIFIER LETTER REVERSED GLOTTAL STOP
+02C2;N;MODIFIER LETTER LEFT ARROWHEAD
+02C3;N;MODIFIER LETTER RIGHT ARROWHEAD
+02C4;N;MODIFIER LETTER UP ARROWHEAD
+02C5;N;MODIFIER LETTER DOWN ARROWHEAD
+02C6;N;MODIFIER LETTER CIRCUMFLEX ACCENT
+02C7;A;CARON
+02C8;N;MODIFIER LETTER VERTICAL LINE
+02C9;A;MODIFIER LETTER MACRON
+02CA;A;MODIFIER LETTER ACUTE ACCENT
+02CB;A;MODIFIER LETTER GRAVE ACCENT
+02CC;N;MODIFIER LETTER LOW VERTICAL LINE
+02CD;A;MODIFIER LETTER LOW MACRON
+02CE;N;MODIFIER LETTER LOW GRAVE ACCENT
+02CF;N;MODIFIER LETTER LOW ACUTE ACCENT
+02D0;A;MODIFIER LETTER TRIANGULAR COLON
+02D1;N;MODIFIER LETTER HALF TRIANGULAR COLON
+02D2;N;MODIFIER LETTER CENTRED RIGHT HALF RING
+02D3;N;MODIFIER LETTER CENTRED LEFT HALF RING
+02D4;N;MODIFIER LETTER UP TACK
+02D5;N;MODIFIER LETTER DOWN TACK
+02D6;N;MODIFIER LETTER PLUS SIGN
+02D7;N;MODIFIER LETTER MINUS SIGN
+02D8;A;BREVE
+02D9;A;DOT ABOVE
+02DA;A;RING ABOVE
+02DB;A;OGONEK
+02DC;N;SMALL TILDE
+02DD;A;DOUBLE ACUTE ACCENT
+02DE;N;MODIFIER LETTER RHOTIC HOOK
+02DF;N;MODIFIER LETTER CROSS ACCENT
+02E0;N;MODIFIER LETTER SMALL GAMMA
+02E1;N;MODIFIER LETTER SMALL L
+02E2;N;MODIFIER LETTER SMALL S
+02E3;N;MODIFIER LETTER SMALL X
+02E4;N;MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
+02E5;N;MODIFIER LETTER EXTRA-HIGH TONE BAR
+02E6;N;MODIFIER LETTER HIGH TONE BAR
+02E7;N;MODIFIER LETTER MID TONE BAR
+02E8;N;MODIFIER LETTER LOW TONE BAR
+02E9;N;MODIFIER LETTER EXTRA-LOW TONE BAR
+02EA;N;MODIFIER LETTER YIN DEPARTING TONE MARK
+02EB;N;MODIFIER LETTER YANG DEPARTING TONE MARK
+02EC;N;MODIFIER LETTER VOICING
+02ED;N;MODIFIER LETTER UNASPIRATED
+02EE;N;MODIFIER LETTER DOUBLE APOSTROPHE
+0300;A;COMBINING GRAVE ACCENT
+0301;A;COMBINING ACUTE ACCENT
+0302;A;COMBINING CIRCUMFLEX ACCENT
+0303;A;COMBINING TILDE
+0304;A;COMBINING MACRON
+0305;A;COMBINING OVERLINE
+0306;A;COMBINING BREVE
+0307;A;COMBINING DOT ABOVE
+0308;A;COMBINING DIAERESIS
+0309;A;COMBINING HOOK ABOVE
+030A;A;COMBINING RING ABOVE
+030B;A;COMBINING DOUBLE ACUTE ACCENT
+030C;A;COMBINING CARON
+030D;A;COMBINING VERTICAL LINE ABOVE
+030E;A;COMBINING DOUBLE VERTICAL LINE ABOVE
+030F;A;COMBINING DOUBLE GRAVE ACCENT
+0310;A;COMBINING CANDRABINDU
+0311;A;COMBINING INVERTED BREVE
+0312;A;COMBINING TURNED COMMA ABOVE
+0313;A;COMBINING COMMA ABOVE
+0314;A;COMBINING REVERSED COMMA ABOVE
+0315;A;COMBINING COMMA ABOVE RIGHT
+0316;A;COMBINING GRAVE ACCENT BELOW
+0317;A;COMBINING ACUTE ACCENT BELOW
+0318;A;COMBINING LEFT TACK BELOW
+0319;A;COMBINING RIGHT TACK BELOW
+031A;A;COMBINING LEFT ANGLE ABOVE
+031B;A;COMBINING HORN
+031C;A;COMBINING LEFT HALF RING BELOW
+031D;A;COMBINING UP TACK BELOW
+031E;A;COMBINING DOWN TACK BELOW
+031F;A;COMBINING PLUS SIGN BELOW
+0320;A;COMBINING MINUS SIGN BELOW
+0321;A;COMBINING PALATALIZED HOOK BELOW
+0322;A;COMBINING RETROFLEX HOOK BELOW
+0323;A;COMBINING DOT BELOW
+0324;A;COMBINING DIAERESIS BELOW
+0325;A;COMBINING RING BELOW
+0326;A;COMBINING COMMA BELOW
+0327;A;COMBINING CEDILLA
+0328;A;COMBINING OGONEK
+0329;A;COMBINING VERTICAL LINE BELOW
+032A;A;COMBINING BRIDGE BELOW
+032B;A;COMBINING INVERTED DOUBLE ARCH BELOW
+032C;A;COMBINING CARON BELOW
+032D;A;COMBINING CIRCUMFLEX ACCENT BELOW
+032E;A;COMBINING BREVE BELOW
+032F;A;COMBINING INVERTED BREVE BELOW
+0330;A;COMBINING TILDE BELOW
+0331;A;COMBINING MACRON BELOW
+0332;A;COMBINING LOW LINE
+0333;A;COMBINING DOUBLE LOW LINE
+0334;A;COMBINING TILDE OVERLAY
+0335;A;COMBINING SHORT STROKE OVERLAY
+0336;A;COMBINING LONG STROKE OVERLAY
+0337;A;COMBINING SHORT SOLIDUS OVERLAY
+0338;A;COMBINING LONG SOLIDUS OVERLAY
+0339;A;COMBINING RIGHT HALF RING BELOW
+033A;A;COMBINING INVERTED BRIDGE BELOW
+033B;A;COMBINING SQUARE BELOW
+033C;A;COMBINING SEAGULL BELOW
+033D;A;COMBINING X ABOVE
+033E;A;COMBINING VERTICAL TILDE
+033F;A;COMBINING DOUBLE OVERLINE
+0340;A;COMBINING GRAVE TONE MARK
+0341;A;COMBINING ACUTE TONE MARK
+0342;A;COMBINING GREEK PERISPOMENI
+0343;A;COMBINING GREEK KORONIS
+0344;A;COMBINING GREEK DIALYTIKA TONOS
+0345;A;COMBINING GREEK YPOGEGRAMMENI
+0346;A;COMBINING BRIDGE ABOVE
+0347;A;COMBINING EQUALS SIGN BELOW
+0348;A;COMBINING DOUBLE VERTICAL LINE BELOW
+0349;A;COMBINING LEFT ANGLE BELOW
+034A;A;COMBINING NOT TILDE ABOVE
+034B;A;COMBINING HOMOTHETIC ABOVE
+034C;A;COMBINING ALMOST EQUAL TO ABOVE
+034D;A;COMBINING LEFT RIGHT ARROW BELOW
+034E;A;COMBINING UPWARDS ARROW BELOW
+0360;A;COMBINING DOUBLE TILDE
+0361;A;COMBINING DOUBLE INVERTED BREVE
+0362;A;COMBINING DOUBLE RIGHTWARDS ARROW BELOW
+0374;N;GREEK NUMERAL SIGN
+0375;N;GREEK LOWER NUMERAL SIGN
+037A;N;GREEK YPOGEGRAMMENI
+037E;N;GREEK QUESTION MARK
+0384;N;GREEK TONOS
+0385;N;GREEK DIALYTIKA TONOS
+0386;N;GREEK CAPITAL LETTER ALPHA WITH TONOS
+0387;N;GREEK ANO TELEIA
+0388;N;GREEK CAPITAL LETTER EPSILON WITH TONOS
+0389;N;GREEK CAPITAL LETTER ETA WITH TONOS
+038A;N;GREEK CAPITAL LETTER IOTA WITH TONOS
+038C;N;GREEK CAPITAL LETTER OMICRON WITH TONOS
+038E;N;GREEK CAPITAL LETTER UPSILON WITH TONOS
+038F;N;GREEK CAPITAL LETTER OMEGA WITH TONOS
+0390;N;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+0391;A;GREEK CAPITAL LETTER ALPHA
+0392;A;GREEK CAPITAL LETTER BETA
+0393;A;GREEK CAPITAL LETTER GAMMA
+0394;A;GREEK CAPITAL LETTER DELTA
+0395;A;GREEK CAPITAL LETTER EPSILON
+0396;A;GREEK CAPITAL LETTER ZETA
+0397;A;GREEK CAPITAL LETTER ETA
+0398;A;GREEK CAPITAL LETTER THETA
+0399;A;GREEK CAPITAL LETTER IOTA
+039A;A;GREEK CAPITAL LETTER KAPPA
+039B;A;GREEK CAPITAL LETTER LAMDA
+039C;A;GREEK CAPITAL LETTER MU
+039D;A;GREEK CAPITAL LETTER NU
+039E;A;GREEK CAPITAL LETTER XI
+039F;A;GREEK CAPITAL LETTER OMICRON
+03A0;A;GREEK CAPITAL LETTER PI
+03A1;A;GREEK CAPITAL LETTER RHO
+03A3;A;GREEK CAPITAL LETTER SIGMA
+03A4;A;GREEK CAPITAL LETTER TAU
+03A5;A;GREEK CAPITAL LETTER UPSILON
+03A6;A;GREEK CAPITAL LETTER PHI
+03A7;A;GREEK CAPITAL LETTER CHI
+03A8;A;GREEK CAPITAL LETTER PSI
+03A9;A;GREEK CAPITAL LETTER OMEGA
+03AA;N;GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+03AB;N;GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+03AC;N;GREEK SMALL LETTER ALPHA WITH TONOS
+03AD;N;GREEK SMALL LETTER EPSILON WITH TONOS
+03AE;N;GREEK SMALL LETTER ETA WITH TONOS
+03AF;N;GREEK SMALL LETTER IOTA WITH TONOS
+03B0;N;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+03B1;A;GREEK SMALL LETTER ALPHA
+03B2;A;GREEK SMALL LETTER BETA
+03B3;A;GREEK SMALL LETTER GAMMA
+03B4;A;GREEK SMALL LETTER DELTA
+03B5;A;GREEK SMALL LETTER EPSILON
+03B6;A;GREEK SMALL LETTER ZETA
+03B7;A;GREEK SMALL LETTER ETA
+03B8;A;GREEK SMALL LETTER THETA
+03B9;A;GREEK SMALL LETTER IOTA
+03BA;A;GREEK SMALL LETTER KAPPA
+03BB;A;GREEK SMALL LETTER LAMDA
+03BC;A;GREEK SMALL LETTER MU
+03BD;A;GREEK SMALL LETTER NU
+03BE;A;GREEK SMALL LETTER XI
+03BF;A;GREEK SMALL LETTER OMICRON
+03C0;A;GREEK SMALL LETTER PI
+03C1;A;GREEK SMALL LETTER RHO
+03C2;N;GREEK SMALL LETTER FINAL SIGMA
+03C3;A;GREEK SMALL LETTER SIGMA
+03C4;A;GREEK SMALL LETTER TAU
+03C5;A;GREEK SMALL LETTER UPSILON
+03C6;A;GREEK SMALL LETTER PHI
+03C7;A;GREEK SMALL LETTER CHI
+03C8;A;GREEK SMALL LETTER PSI
+03C9;A;GREEK SMALL LETTER OMEGA
+03CA;N;GREEK SMALL LETTER IOTA WITH DIALYTIKA
+03CB;N;GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+03CC;N;GREEK SMALL LETTER OMICRON WITH TONOS
+03CD;N;GREEK SMALL LETTER UPSILON WITH TONOS
+03CE;N;GREEK SMALL LETTER OMEGA WITH TONOS
+03D0;N;GREEK BETA SYMBOL
+03D1;N;GREEK THETA SYMBOL
+03D2;N;GREEK UPSILON WITH HOOK SYMBOL
+03D3;N;GREEK UPSILON WITH ACUTE AND HOOK SYMBOL
+03D4;N;GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL
+03D5;N;GREEK PHI SYMBOL
+03D6;N;GREEK PI SYMBOL
+03D7;N;GREEK KAI SYMBOL
+03DA;N;GREEK LETTER STIGMA
+03DB;N;GREEK SMALL LETTER STIGMA
+03DC;N;GREEK LETTER DIGAMMA
+03DD;N;GREEK SMALL LETTER DIGAMMA
+03DE;N;GREEK LETTER KOPPA
+03DF;N;GREEK SMALL LETTER KOPPA
+03E0;N;GREEK LETTER SAMPI
+03E1;N;GREEK SMALL LETTER SAMPI
+03E2;N;COPTIC CAPITAL LETTER SHEI
+03E3;N;COPTIC SMALL LETTER SHEI
+03E4;N;COPTIC CAPITAL LETTER FEI
+03E5;N;COPTIC SMALL LETTER FEI
+03E6;N;COPTIC CAPITAL LETTER KHEI
+03E7;N;COPTIC SMALL LETTER KHEI
+03E8;N;COPTIC CAPITAL LETTER HORI
+03E9;N;COPTIC SMALL LETTER HORI
+03EA;N;COPTIC CAPITAL LETTER GANGIA
+03EB;N;COPTIC SMALL LETTER GANGIA
+03EC;N;COPTIC CAPITAL LETTER SHIMA
+03ED;N;COPTIC SMALL LETTER SHIMA
+03EE;N;COPTIC CAPITAL LETTER DEI
+03EF;N;COPTIC SMALL LETTER DEI
+03F0;N;GREEK KAPPA SYMBOL
+03F1;N;GREEK RHO SYMBOL
+03F2;N;GREEK LUNATE SIGMA SYMBOL
+03F3;N;GREEK LETTER YOT
+0400;N;CYRILLIC CAPITAL LETTER IE WITH GRAVE
+0401;A;CYRILLIC CAPITAL LETTER IO
+0402;N;CYRILLIC CAPITAL LETTER DJE
+0403;N;CYRILLIC CAPITAL LETTER GJE
+0404;N;CYRILLIC CAPITAL LETTER UKRAINIAN IE
+0405;N;CYRILLIC CAPITAL LETTER DZE
+0406;N;CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+0407;N;CYRILLIC CAPITAL LETTER YI
+0408;N;CYRILLIC CAPITAL LETTER JE
+0409;N;CYRILLIC CAPITAL LETTER LJE
+040A;N;CYRILLIC CAPITAL LETTER NJE
+040B;N;CYRILLIC CAPITAL LETTER TSHE
+040C;N;CYRILLIC CAPITAL LETTER KJE
+040D;N;CYRILLIC CAPITAL LETTER I WITH GRAVE
+040E;N;CYRILLIC CAPITAL LETTER SHORT U
+040F;N;CYRILLIC CAPITAL LETTER DZHE
+0410;A;CYRILLIC CAPITAL LETTER A
+0411;A;CYRILLIC CAPITAL LETTER BE
+0412;A;CYRILLIC CAPITAL LETTER VE
+0413;A;CYRILLIC CAPITAL LETTER GHE
+0414;A;CYRILLIC CAPITAL LETTER DE
+0415;A;CYRILLIC CAPITAL LETTER IE
+0416;A;CYRILLIC CAPITAL LETTER ZHE
+0417;A;CYRILLIC CAPITAL LETTER ZE
+0418;A;CYRILLIC CAPITAL LETTER I
+0419;A;CYRILLIC CAPITAL LETTER SHORT I
+041A;A;CYRILLIC CAPITAL LETTER KA
+041B;A;CYRILLIC CAPITAL LETTER EL
+041C;A;CYRILLIC CAPITAL LETTER EM
+041D;A;CYRILLIC CAPITAL LETTER EN
+041E;A;CYRILLIC CAPITAL LETTER O
+041F;A;CYRILLIC CAPITAL LETTER PE
+0420;A;CYRILLIC CAPITAL LETTER ER
+0421;A;CYRILLIC CAPITAL LETTER ES
+0422;A;CYRILLIC CAPITAL LETTER TE
+0423;A;CYRILLIC CAPITAL LETTER U
+0424;A;CYRILLIC CAPITAL LETTER EF
+0425;A;CYRILLIC CAPITAL LETTER HA
+0426;A;CYRILLIC CAPITAL LETTER TSE
+0427;A;CYRILLIC CAPITAL LETTER CHE
+0428;A;CYRILLIC CAPITAL LETTER SHA
+0429;A;CYRILLIC CAPITAL LETTER SHCHA
+042A;A;CYRILLIC CAPITAL LETTER HARD SIGN
+042B;A;CYRILLIC CAPITAL LETTER YERU
+042C;A;CYRILLIC CAPITAL LETTER SOFT SIGN
+042D;A;CYRILLIC CAPITAL LETTER E
+042E;A;CYRILLIC CAPITAL LETTER YU
+042F;A;CYRILLIC CAPITAL LETTER YA
+0430;A;CYRILLIC SMALL LETTER A
+0431;A;CYRILLIC SMALL LETTER BE
+0432;A;CYRILLIC SMALL LETTER VE
+0433;A;CYRILLIC SMALL LETTER GHE
+0434;A;CYRILLIC SMALL LETTER DE
+0435;A;CYRILLIC SMALL LETTER IE
+0436;A;CYRILLIC SMALL LETTER ZHE
+0437;A;CYRILLIC SMALL LETTER ZE
+0438;A;CYRILLIC SMALL LETTER I
+0439;A;CYRILLIC SMALL LETTER SHORT I
+043A;A;CYRILLIC SMALL LETTER KA
+043B;A;CYRILLIC SMALL LETTER EL
+043C;A;CYRILLIC SMALL LETTER EM
+043D;A;CYRILLIC SMALL LETTER EN
+043E;A;CYRILLIC SMALL LETTER O
+043F;A;CYRILLIC SMALL LETTER PE
+0440;A;CYRILLIC SMALL LETTER ER
+0441;A;CYRILLIC SMALL LETTER ES
+0442;A;CYRILLIC SMALL LETTER TE
+0443;A;CYRILLIC SMALL LETTER U
+0444;A;CYRILLIC SMALL LETTER EF
+0445;A;CYRILLIC SMALL LETTER HA
+0446;A;CYRILLIC SMALL LETTER TSE
+0447;A;CYRILLIC SMALL LETTER CHE
+0448;A;CYRILLIC SMALL LETTER SHA
+0449;A;CYRILLIC SMALL LETTER SHCHA
+044A;A;CYRILLIC SMALL LETTER HARD SIGN
+044B;A;CYRILLIC SMALL LETTER YERU
+044C;A;CYRILLIC SMALL LETTER SOFT SIGN
+044D;A;CYRILLIC SMALL LETTER E
+044E;A;CYRILLIC SMALL LETTER YU
+044F;A;CYRILLIC SMALL LETTER YA
+0450;N;CYRILLIC SMALL LETTER IE WITH GRAVE
+0451;A;CYRILLIC SMALL LETTER IO
+0452;N;CYRILLIC SMALL LETTER DJE
+0453;N;CYRILLIC SMALL LETTER GJE
+0454;N;CYRILLIC SMALL LETTER UKRAINIAN IE
+0455;N;CYRILLIC SMALL LETTER DZE
+0456;N;CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+0457;N;CYRILLIC SMALL LETTER YI
+0458;N;CYRILLIC SMALL LETTER JE
+0459;N;CYRILLIC SMALL LETTER LJE
+045A;N;CYRILLIC SMALL LETTER NJE
+045B;N;CYRILLIC SMALL LETTER TSHE
+045C;N;CYRILLIC SMALL LETTER KJE
+045D;N;CYRILLIC SMALL LETTER I WITH GRAVE
+045E;N;CYRILLIC SMALL LETTER SHORT U
+045F;N;CYRILLIC SMALL LETTER DZHE
+0460;N;CYRILLIC CAPITAL LETTER OMEGA
+0461;N;CYRILLIC SMALL LETTER OMEGA
+0462;N;CYRILLIC CAPITAL LETTER YAT
+0463;N;CYRILLIC SMALL LETTER YAT
+0464;N;CYRILLIC CAPITAL LETTER IOTIFIED E
+0465;N;CYRILLIC SMALL LETTER IOTIFIED E
+0466;N;CYRILLIC CAPITAL LETTER LITTLE YUS
+0467;N;CYRILLIC SMALL LETTER LITTLE YUS
+0468;N;CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS
+0469;N;CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS
+046A;N;CYRILLIC CAPITAL LETTER BIG YUS
+046B;N;CYRILLIC SMALL LETTER BIG YUS
+046C;N;CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS
+046D;N;CYRILLIC SMALL LETTER IOTIFIED BIG YUS
+046E;N;CYRILLIC CAPITAL LETTER KSI
+046F;N;CYRILLIC SMALL LETTER KSI
+0470;N;CYRILLIC CAPITAL LETTER PSI
+0471;N;CYRILLIC SMALL LETTER PSI
+0472;N;CYRILLIC CAPITAL LETTER FITA
+0473;N;CYRILLIC SMALL LETTER FITA
+0474;N;CYRILLIC CAPITAL LETTER IZHITSA
+0475;N;CYRILLIC SMALL LETTER IZHITSA
+0476;N;CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+0477;N;CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+0478;N;CYRILLIC CAPITAL LETTER UK
+0479;N;CYRILLIC SMALL LETTER UK
+047A;N;CYRILLIC CAPITAL LETTER ROUND OMEGA
+047B;N;CYRILLIC SMALL LETTER ROUND OMEGA
+047C;N;CYRILLIC CAPITAL LETTER OMEGA WITH TITLO
+047D;N;CYRILLIC SMALL LETTER OMEGA WITH TITLO
+047E;N;CYRILLIC CAPITAL LETTER OT
+047F;N;CYRILLIC SMALL LETTER OT
+0480;N;CYRILLIC CAPITAL LETTER KOPPA
+0481;N;CYRILLIC SMALL LETTER KOPPA
+0482;N;CYRILLIC THOUSANDS SIGN
+0483;N;COMBINING CYRILLIC TITLO
+0484;N;COMBINING CYRILLIC PALATALIZATION
+0485;N;COMBINING CYRILLIC DASIA PNEUMATA
+0486;N;COMBINING CYRILLIC PSILI PNEUMATA
+0488;N;COMBINING CYRILLIC HUNDRED THOUSANDS SIGN
+0489;N;COMBINING CYRILLIC MILLIONS SIGN
+048C;N;CYRILLIC CAPITAL LETTER SEMISOFT SIGN
+048D;N;CYRILLIC SMALL LETTER SEMISOFT SIGN
+048E;N;CYRILLIC CAPITAL LETTER ER WITH TICK
+048F;N;CYRILLIC SMALL LETTER ER WITH TICK
+0490;N;CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+0491;N;CYRILLIC SMALL LETTER GHE WITH UPTURN
+0492;N;CYRILLIC CAPITAL LETTER GHE WITH STROKE
+0493;N;CYRILLIC SMALL LETTER GHE WITH STROKE
+0494;N;CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK
+0495;N;CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK
+0496;N;CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
+0497;N;CYRILLIC SMALL LETTER ZHE WITH DESCENDER
+0498;N;CYRILLIC CAPITAL LETTER ZE WITH DESCENDER
+0499;N;CYRILLIC SMALL LETTER ZE WITH DESCENDER
+049A;N;CYRILLIC CAPITAL LETTER KA WITH DESCENDER
+049B;N;CYRILLIC SMALL LETTER KA WITH DESCENDER
+049C;N;CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
+049D;N;CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE
+049E;N;CYRILLIC CAPITAL LETTER KA WITH STROKE
+049F;N;CYRILLIC SMALL LETTER KA WITH STROKE
+04A0;N;CYRILLIC CAPITAL LETTER BASHKIR KA
+04A1;N;CYRILLIC SMALL LETTER BASHKIR KA
+04A2;N;CYRILLIC CAPITAL LETTER EN WITH DESCENDER
+04A3;N;CYRILLIC SMALL LETTER EN WITH DESCENDER
+04A4;N;CYRILLIC CAPITAL LIGATURE EN GHE
+04A5;N;CYRILLIC SMALL LIGATURE EN GHE
+04A6;N;CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK
+04A7;N;CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK
+04A8;N;CYRILLIC CAPITAL LETTER ABKHASIAN HA
+04A9;N;CYRILLIC SMALL LETTER ABKHASIAN HA
+04AA;N;CYRILLIC CAPITAL LETTER ES WITH DESCENDER
+04AB;N;CYRILLIC SMALL LETTER ES WITH DESCENDER
+04AC;N;CYRILLIC CAPITAL LETTER TE WITH DESCENDER
+04AD;N;CYRILLIC SMALL LETTER TE WITH DESCENDER
+04AE;N;CYRILLIC CAPITAL LETTER STRAIGHT U
+04AF;N;CYRILLIC SMALL LETTER STRAIGHT U
+04B0;N;CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
+04B1;N;CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
+04B2;N;CYRILLIC CAPITAL LETTER HA WITH DESCENDER
+04B3;N;CYRILLIC SMALL LETTER HA WITH DESCENDER
+04B4;N;CYRILLIC CAPITAL LIGATURE TE TSE
+04B5;N;CYRILLIC SMALL LIGATURE TE TSE
+04B6;N;CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
+04B7;N;CYRILLIC SMALL LETTER CHE WITH DESCENDER
+04B8;N;CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
+04B9;N;CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE
+04BA;N;CYRILLIC CAPITAL LETTER SHHA
+04BB;N;CYRILLIC SMALL LETTER SHHA
+04BC;N;CYRILLIC CAPITAL LETTER ABKHASIAN CHE
+04BD;N;CYRILLIC SMALL LETTER ABKHASIAN CHE
+04BE;N;CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER
+04BF;N;CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER
+04C0;N;CYRILLIC LETTER PALOCHKA
+04C1;N;CYRILLIC CAPITAL LETTER ZHE WITH BREVE
+04C2;N;CYRILLIC SMALL LETTER ZHE WITH BREVE
+04C3;N;CYRILLIC CAPITAL LETTER KA WITH HOOK
+04C4;N;CYRILLIC SMALL LETTER KA WITH HOOK
+04C7;N;CYRILLIC CAPITAL LETTER EN WITH HOOK
+04C8;N;CYRILLIC SMALL LETTER EN WITH HOOK
+04CB;N;CYRILLIC CAPITAL LETTER KHAKASSIAN CHE
+04CC;N;CYRILLIC SMALL LETTER KHAKASSIAN CHE
+04D0;N;CYRILLIC CAPITAL LETTER A WITH BREVE
+04D1;N;CYRILLIC SMALL LETTER A WITH BREVE
+04D2;N;CYRILLIC CAPITAL LETTER A WITH DIAERESIS
+04D3;N;CYRILLIC SMALL LETTER A WITH DIAERESIS
+04D4;N;CYRILLIC CAPITAL LIGATURE A IE
+04D5;N;CYRILLIC SMALL LIGATURE A IE
+04D6;N;CYRILLIC CAPITAL LETTER IE WITH BREVE
+04D7;N;CYRILLIC SMALL LETTER IE WITH BREVE
+04D8;N;CYRILLIC CAPITAL LETTER SCHWA
+04D9;N;CYRILLIC SMALL LETTER SCHWA
+04DA;N;CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
+04DB;N;CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
+04DC;N;CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
+04DD;N;CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
+04DE;N;CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
+04DF;N;CYRILLIC SMALL LETTER ZE WITH DIAERESIS
+04E0;N;CYRILLIC CAPITAL LETTER ABKHASIAN DZE
+04E1;N;CYRILLIC SMALL LETTER ABKHASIAN DZE
+04E2;N;CYRILLIC CAPITAL LETTER I WITH MACRON
+04E3;N;CYRILLIC SMALL LETTER I WITH MACRON
+04E4;N;CYRILLIC CAPITAL LETTER I WITH DIAERESIS
+04E5;N;CYRILLIC SMALL LETTER I WITH DIAERESIS
+04E6;N;CYRILLIC CAPITAL LETTER O WITH DIAERESIS
+04E7;N;CYRILLIC SMALL LETTER O WITH DIAERESIS
+04E8;N;CYRILLIC CAPITAL LETTER BARRED O
+04E9;N;CYRILLIC SMALL LETTER BARRED O
+04EA;N;CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
+04EB;N;CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
+04EC;N;CYRILLIC CAPITAL LETTER E WITH DIAERESIS
+04ED;N;CYRILLIC SMALL LETTER E WITH DIAERESIS
+04EE;N;CYRILLIC CAPITAL LETTER U WITH MACRON
+04EF;N;CYRILLIC SMALL LETTER U WITH MACRON
+04F0;N;CYRILLIC CAPITAL LETTER U WITH DIAERESIS
+04F1;N;CYRILLIC SMALL LETTER U WITH DIAERESIS
+04F2;N;CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
+04F3;N;CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
+04F4;N;CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
+04F5;N;CYRILLIC SMALL LETTER CHE WITH DIAERESIS
+04F8;N;CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
+04F9;N;CYRILLIC SMALL LETTER YERU WITH DIAERESIS
+0531;N;ARMENIAN CAPITAL LETTER AYB
+0532;N;ARMENIAN CAPITAL LETTER BEN
+0533;N;ARMENIAN CAPITAL LETTER GIM
+0534;N;ARMENIAN CAPITAL LETTER DA
+0535;N;ARMENIAN CAPITAL LETTER ECH
+0536;N;ARMENIAN CAPITAL LETTER ZA
+0537;N;ARMENIAN CAPITAL LETTER EH
+0538;N;ARMENIAN CAPITAL LETTER ET
+0539;N;ARMENIAN CAPITAL LETTER TO
+053A;N;ARMENIAN CAPITAL LETTER ZHE
+053B;N;ARMENIAN CAPITAL LETTER INI
+053C;N;ARMENIAN CAPITAL LETTER LIWN
+053D;N;ARMENIAN CAPITAL LETTER XEH
+053E;N;ARMENIAN CAPITAL LETTER CA
+053F;N;ARMENIAN CAPITAL LETTER KEN
+0540;N;ARMENIAN CAPITAL LETTER HO
+0541;N;ARMENIAN CAPITAL LETTER JA
+0542;N;ARMENIAN CAPITAL LETTER GHAD
+0543;N;ARMENIAN CAPITAL LETTER CHEH
+0544;N;ARMENIAN CAPITAL LETTER MEN
+0545;N;ARMENIAN CAPITAL LETTER YI
+0546;N;ARMENIAN CAPITAL LETTER NOW
+0547;N;ARMENIAN CAPITAL LETTER SHA
+0548;N;ARMENIAN CAPITAL LETTER VO
+0549;N;ARMENIAN CAPITAL LETTER CHA
+054A;N;ARMENIAN CAPITAL LETTER PEH
+054B;N;ARMENIAN CAPITAL LETTER JHEH
+054C;N;ARMENIAN CAPITAL LETTER RA
+054D;N;ARMENIAN CAPITAL LETTER SEH
+054E;N;ARMENIAN CAPITAL LETTER VEW
+054F;N;ARMENIAN CAPITAL LETTER TIWN
+0550;N;ARMENIAN CAPITAL LETTER REH
+0551;N;ARMENIAN CAPITAL LETTER CO
+0552;N;ARMENIAN CAPITAL LETTER YIWN
+0553;N;ARMENIAN CAPITAL LETTER PIWR
+0554;N;ARMENIAN CAPITAL LETTER KEH
+0555;N;ARMENIAN CAPITAL LETTER OH
+0556;N;ARMENIAN CAPITAL LETTER FEH
+0559;N;ARMENIAN MODIFIER LETTER LEFT HALF RING
+055A;N;ARMENIAN APOSTROPHE
+055B;N;ARMENIAN EMPHASIS MARK
+055C;N;ARMENIAN EXCLAMATION MARK
+055D;N;ARMENIAN COMMA
+055E;N;ARMENIAN QUESTION MARK
+055F;N;ARMENIAN ABBREVIATION MARK
+0561;N;ARMENIAN SMALL LETTER AYB
+0562;N;ARMENIAN SMALL LETTER BEN
+0563;N;ARMENIAN SMALL LETTER GIM
+0564;N;ARMENIAN SMALL LETTER DA
+0565;N;ARMENIAN SMALL LETTER ECH
+0566;N;ARMENIAN SMALL LETTER ZA
+0567;N;ARMENIAN SMALL LETTER EH
+0568;N;ARMENIAN SMALL LETTER ET
+0569;N;ARMENIAN SMALL LETTER TO
+056A;N;ARMENIAN SMALL LETTER ZHE
+056B;N;ARMENIAN SMALL LETTER INI
+056C;N;ARMENIAN SMALL LETTER LIWN
+056D;N;ARMENIAN SMALL LETTER XEH
+056E;N;ARMENIAN SMALL LETTER CA
+056F;N;ARMENIAN SMALL LETTER KEN
+0570;N;ARMENIAN SMALL LETTER HO
+0571;N;ARMENIAN SMALL LETTER JA
+0572;N;ARMENIAN SMALL LETTER GHAD
+0573;N;ARMENIAN SMALL LETTER CHEH
+0574;N;ARMENIAN SMALL LETTER MEN
+0575;N;ARMENIAN SMALL LETTER YI
+0576;N;ARMENIAN SMALL LETTER NOW
+0577;N;ARMENIAN SMALL LETTER SHA
+0578;N;ARMENIAN SMALL LETTER VO
+0579;N;ARMENIAN SMALL LETTER CHA
+057A;N;ARMENIAN SMALL LETTER PEH
+057B;N;ARMENIAN SMALL LETTER JHEH
+057C;N;ARMENIAN SMALL LETTER RA
+057D;N;ARMENIAN SMALL LETTER SEH
+057E;N;ARMENIAN SMALL LETTER VEW
+057F;N;ARMENIAN SMALL LETTER TIWN
+0580;N;ARMENIAN SMALL LETTER REH
+0581;N;ARMENIAN SMALL LETTER CO
+0582;N;ARMENIAN SMALL LETTER YIWN
+0583;N;ARMENIAN SMALL LETTER PIWR
+0584;N;ARMENIAN SMALL LETTER KEH
+0585;N;ARMENIAN SMALL LETTER OH
+0586;N;ARMENIAN SMALL LETTER FEH
+0587;N;ARMENIAN SMALL LIGATURE ECH YIWN
+0589;N;ARMENIAN FULL STOP
+058A;N;ARMENIAN HYPHEN
+0591;N;HEBREW ACCENT ETNAHTA
+0592;N;HEBREW ACCENT SEGOL
+0593;N;HEBREW ACCENT SHALSHELET
+0594;N;HEBREW ACCENT ZAQEF QATAN
+0595;N;HEBREW ACCENT ZAQEF GADOL
+0596;N;HEBREW ACCENT TIPEHA
+0597;N;HEBREW ACCENT REVIA
+0598;N;HEBREW ACCENT ZARQA
+0599;N;HEBREW ACCENT PASHTA
+059A;N;HEBREW ACCENT YETIV
+059B;N;HEBREW ACCENT TEVIR
+059C;N;HEBREW ACCENT GERESH
+059D;N;HEBREW ACCENT GERESH MUQDAM
+059E;N;HEBREW ACCENT GERSHAYIM
+059F;N;HEBREW ACCENT QARNEY PARA
+05A0;N;HEBREW ACCENT TELISHA GEDOLA
+05A1;N;HEBREW ACCENT PAZER
+05A3;N;HEBREW ACCENT MUNAH
+05A4;N;HEBREW ACCENT MAHAPAKH
+05A5;N;HEBREW ACCENT MERKHA
+05A6;N;HEBREW ACCENT MERKHA KEFULA
+05A7;N;HEBREW ACCENT DARGA
+05A8;N;HEBREW ACCENT QADMA
+05A9;N;HEBREW ACCENT TELISHA QETANA
+05AA;N;HEBREW ACCENT YERAH BEN YOMO
+05AB;N;HEBREW ACCENT OLE
+05AC;N;HEBREW ACCENT ILUY
+05AD;N;HEBREW ACCENT DEHI
+05AE;N;HEBREW ACCENT ZINOR
+05AF;N;HEBREW MARK MASORA CIRCLE
+05B0;N;HEBREW POINT SHEVA
+05B1;N;HEBREW POINT HATAF SEGOL
+05B2;N;HEBREW POINT HATAF PATAH
+05B3;N;HEBREW POINT HATAF QAMATS
+05B4;N;HEBREW POINT HIRIQ
+05B5;N;HEBREW POINT TSERE
+05B6;N;HEBREW POINT SEGOL
+05B7;N;HEBREW POINT PATAH
+05B8;N;HEBREW POINT QAMATS
+05B9;N;HEBREW POINT HOLAM
+05BB;N;HEBREW POINT QUBUTS
+05BC;N;HEBREW POINT DAGESH OR MAPIQ
+05BD;N;HEBREW POINT METEG
+05BE;N;HEBREW PUNCTUATION MAQAF
+05BF;N;HEBREW POINT RAFE
+05C0;N;HEBREW PUNCTUATION PASEQ
+05C1;N;HEBREW POINT SHIN DOT
+05C2;N;HEBREW POINT SIN DOT
+05C3;N;HEBREW PUNCTUATION SOF PASUQ
+05C4;N;HEBREW MARK UPPER DOT
+05D0;N;HEBREW LETTER ALEF
+05D1;N;HEBREW LETTER BET
+05D2;N;HEBREW LETTER GIMEL
+05D3;N;HEBREW LETTER DALET
+05D4;N;HEBREW LETTER HE
+05D5;N;HEBREW LETTER VAV
+05D6;N;HEBREW LETTER ZAYIN
+05D7;N;HEBREW LETTER HET
+05D8;N;HEBREW LETTER TET
+05D9;N;HEBREW LETTER YOD
+05DA;N;HEBREW LETTER FINAL KAF
+05DB;N;HEBREW LETTER KAF
+05DC;N;HEBREW LETTER LAMED
+05DD;N;HEBREW LETTER FINAL MEM
+05DE;N;HEBREW LETTER MEM
+05DF;N;HEBREW LETTER FINAL NUN
+05E0;N;HEBREW LETTER NUN
+05E1;N;HEBREW LETTER SAMEKH
+05E2;N;HEBREW LETTER AYIN
+05E3;N;HEBREW LETTER FINAL PE
+05E4;N;HEBREW LETTER PE
+05E5;N;HEBREW LETTER FINAL TSADI
+05E6;N;HEBREW LETTER TSADI
+05E7;N;HEBREW LETTER QOF
+05E8;N;HEBREW LETTER RESH
+05E9;N;HEBREW LETTER SHIN
+05EA;N;HEBREW LETTER TAV
+05F0;N;HEBREW LIGATURE YIDDISH DOUBLE VAV
+05F1;N;HEBREW LIGATURE YIDDISH VAV YOD
+05F2;N;HEBREW LIGATURE YIDDISH DOUBLE YOD
+05F3;N;HEBREW PUNCTUATION GERESH
+05F4;N;HEBREW PUNCTUATION GERSHAYIM
+060C;N;ARABIC COMMA
+061B;N;ARABIC SEMICOLON
+061F;N;ARABIC QUESTION MARK
+0621;N;ARABIC LETTER HAMZA
+0622;N;ARABIC LETTER ALEF WITH MADDA ABOVE
+0623;N;ARABIC LETTER ALEF WITH HAMZA ABOVE
+0624;N;ARABIC LETTER WAW WITH HAMZA ABOVE
+0625;N;ARABIC LETTER ALEF WITH HAMZA BELOW
+0626;N;ARABIC LETTER YEH WITH HAMZA ABOVE
+0627;N;ARABIC LETTER ALEF
+0628;N;ARABIC LETTER BEH
+0629;N;ARABIC LETTER TEH MARBUTA
+062A;N;ARABIC LETTER TEH
+062B;N;ARABIC LETTER THEH
+062C;N;ARABIC LETTER JEEM
+062D;N;ARABIC LETTER HAH
+062E;N;ARABIC LETTER KHAH
+062F;N;ARABIC LETTER DAL
+0630;N;ARABIC LETTER THAL
+0631;N;ARABIC LETTER REH
+0632;N;ARABIC LETTER ZAIN
+0633;N;ARABIC LETTER SEEN
+0634;N;ARABIC LETTER SHEEN
+0635;N;ARABIC LETTER SAD
+0636;N;ARABIC LETTER DAD
+0637;N;ARABIC LETTER TAH
+0638;N;ARABIC LETTER ZAH
+0639;N;ARABIC LETTER AIN
+063A;N;ARABIC LETTER GHAIN
+0640;N;ARABIC TATWEEL
+0641;N;ARABIC LETTER FEH
+0642;N;ARABIC LETTER QAF
+0643;N;ARABIC LETTER KAF
+0644;N;ARABIC LETTER LAM
+0645;N;ARABIC LETTER MEEM
+0646;N;ARABIC LETTER NOON
+0647;N;ARABIC LETTER HEH
+0648;N;ARABIC LETTER WAW
+0649;N;ARABIC LETTER ALEF MAKSURA
+064A;N;ARABIC LETTER YEH
+064B;N;ARABIC FATHATAN
+064C;N;ARABIC DAMMATAN
+064D;N;ARABIC KASRATAN
+064E;N;ARABIC FATHA
+064F;N;ARABIC DAMMA
+0650;N;ARABIC KASRA
+0651;N;ARABIC SHADDA
+0652;N;ARABIC SUKUN
+0653;N;ARABIC MADDAH ABOVE
+0654;N;ARABIC HAMZA ABOVE
+0655;N;ARABIC HAMZA BELOW
+0660;N;ARABIC-INDIC DIGIT ZERO
+0661;N;ARABIC-INDIC DIGIT ONE
+0662;N;ARABIC-INDIC DIGIT TWO
+0663;N;ARABIC-INDIC DIGIT THREE
+0664;N;ARABIC-INDIC DIGIT FOUR
+0665;N;ARABIC-INDIC DIGIT FIVE
+0666;N;ARABIC-INDIC DIGIT SIX
+0667;N;ARABIC-INDIC DIGIT SEVEN
+0668;N;ARABIC-INDIC DIGIT EIGHT
+0669;N;ARABIC-INDIC DIGIT NINE
+066A;N;ARABIC PERCENT SIGN
+066B;N;ARABIC DECIMAL SEPARATOR
+066C;N;ARABIC THOUSANDS SEPARATOR
+066D;N;ARABIC FIVE POINTED STAR
+0670;N;ARABIC LETTER SUPERSCRIPT ALEF
+0671;N;ARABIC LETTER ALEF WASLA
+0672;N;ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE
+0673;N;ARABIC LETTER ALEF WITH WAVY HAMZA BELOW
+0674;N;ARABIC LETTER HIGH HAMZA
+0675;N;ARABIC LETTER HIGH HAMZA ALEF
+0676;N;ARABIC LETTER HIGH HAMZA WAW
+0677;N;ARABIC LETTER U WITH HAMZA ABOVE
+0678;N;ARABIC LETTER HIGH HAMZA YEH
+0679;N;ARABIC LETTER TTEH
+067A;N;ARABIC LETTER TTEHEH
+067B;N;ARABIC LETTER BEEH
+067C;N;ARABIC LETTER TEH WITH RING
+067D;N;ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS
+067E;N;ARABIC LETTER PEH
+067F;N;ARABIC LETTER TEHEH
+0680;N;ARABIC LETTER BEHEH
+0681;N;ARABIC LETTER HAH WITH HAMZA ABOVE
+0682;N;ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE
+0683;N;ARABIC LETTER NYEH
+0684;N;ARABIC LETTER DYEH
+0685;N;ARABIC LETTER HAH WITH THREE DOTS ABOVE
+0686;N;ARABIC LETTER TCHEH
+0687;N;ARABIC LETTER TCHEHEH
+0688;N;ARABIC LETTER DDAL
+0689;N;ARABIC LETTER DAL WITH RING
+068A;N;ARABIC LETTER DAL WITH DOT BELOW
+068B;N;ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH
+068C;N;ARABIC LETTER DAHAL
+068D;N;ARABIC LETTER DDAHAL
+068E;N;ARABIC LETTER DUL
+068F;N;ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS
+0690;N;ARABIC LETTER DAL WITH FOUR DOTS ABOVE
+0691;N;ARABIC LETTER RREH
+0692;N;ARABIC LETTER REH WITH SMALL V
+0693;N;ARABIC LETTER REH WITH RING
+0694;N;ARABIC LETTER REH WITH DOT BELOW
+0695;N;ARABIC LETTER REH WITH SMALL V BELOW
+0696;N;ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE
+0697;N;ARABIC LETTER REH WITH TWO DOTS ABOVE
+0698;N;ARABIC LETTER JEH
+0699;N;ARABIC LETTER REH WITH FOUR DOTS ABOVE
+069A;N;ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE
+069B;N;ARABIC LETTER SEEN WITH THREE DOTS BELOW
+069C;N;ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE
+069D;N;ARABIC LETTER SAD WITH TWO DOTS BELOW
+069E;N;ARABIC LETTER SAD WITH THREE DOTS ABOVE
+069F;N;ARABIC LETTER TAH WITH THREE DOTS ABOVE
+06A0;N;ARABIC LETTER AIN WITH THREE DOTS ABOVE
+06A1;N;ARABIC LETTER DOTLESS FEH
+06A2;N;ARABIC LETTER FEH WITH DOT MOVED BELOW
+06A3;N;ARABIC LETTER FEH WITH DOT BELOW
+06A4;N;ARABIC LETTER VEH
+06A5;N;ARABIC LETTER FEH WITH THREE DOTS BELOW
+06A6;N;ARABIC LETTER PEHEH
+06A7;N;ARABIC LETTER QAF WITH DOT ABOVE
+06A8;N;ARABIC LETTER QAF WITH THREE DOTS ABOVE
+06A9;N;ARABIC LETTER KEHEH
+06AA;N;ARABIC LETTER SWASH KAF
+06AB;N;ARABIC LETTER KAF WITH RING
+06AC;N;ARABIC LETTER KAF WITH DOT ABOVE
+06AD;N;ARABIC LETTER NG
+06AE;N;ARABIC LETTER KAF WITH THREE DOTS BELOW
+06AF;N;ARABIC LETTER GAF
+06B0;N;ARABIC LETTER GAF WITH RING
+06B1;N;ARABIC LETTER NGOEH
+06B2;N;ARABIC LETTER GAF WITH TWO DOTS BELOW
+06B3;N;ARABIC LETTER GUEH
+06B4;N;ARABIC LETTER GAF WITH THREE DOTS ABOVE
+06B5;N;ARABIC LETTER LAM WITH SMALL V
+06B6;N;ARABIC LETTER LAM WITH DOT ABOVE
+06B7;N;ARABIC LETTER LAM WITH THREE DOTS ABOVE
+06B8;N;ARABIC LETTER LAM WITH THREE DOTS BELOW
+06B9;N;ARABIC LETTER NOON WITH DOT BELOW
+06BA;N;ARABIC LETTER NOON GHUNNA
+06BB;N;ARABIC LETTER RNOON
+06BC;N;ARABIC LETTER NOON WITH RING
+06BD;N;ARABIC LETTER NOON WITH THREE DOTS ABOVE
+06BE;N;ARABIC LETTER HEH DOACHASHMEE
+06BF;N;ARABIC LETTER TCHEH WITH DOT ABOVE
+06C0;N;ARABIC LETTER HEH WITH YEH ABOVE
+06C1;N;ARABIC LETTER HEH GOAL
+06C2;N;ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
+06C3;N;ARABIC LETTER TEH MARBUTA GOAL
+06C4;N;ARABIC LETTER WAW WITH RING
+06C5;N;ARABIC LETTER KIRGHIZ OE
+06C6;N;ARABIC LETTER OE
+06C7;N;ARABIC LETTER U
+06C8;N;ARABIC LETTER YU
+06C9;N;ARABIC LETTER KIRGHIZ YU
+06CA;N;ARABIC LETTER WAW WITH TWO DOTS ABOVE
+06CB;N;ARABIC LETTER VE
+06CC;N;ARABIC LETTER FARSI YEH
+06CD;N;ARABIC LETTER YEH WITH TAIL
+06CE;N;ARABIC LETTER YEH WITH SMALL V
+06CF;N;ARABIC LETTER WAW WITH DOT ABOVE
+06D0;N;ARABIC LETTER E
+06D1;N;ARABIC LETTER YEH WITH THREE DOTS BELOW
+06D2;N;ARABIC LETTER YEH BARREE
+06D3;N;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
+06D4;N;ARABIC FULL STOP
+06D5;N;ARABIC LETTER AE
+06D6;N;ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA
+06D7;N;ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA
+06D8;N;ARABIC SMALL HIGH MEEM INITIAL FORM
+06D9;N;ARABIC SMALL HIGH LAM ALEF
+06DA;N;ARABIC SMALL HIGH JEEM
+06DB;N;ARABIC SMALL HIGH THREE DOTS
+06DC;N;ARABIC SMALL HIGH SEEN
+06DD;N;ARABIC END OF AYAH
+06DE;N;ARABIC START OF RUB EL HIZB
+06DF;N;ARABIC SMALL HIGH ROUNDED ZERO
+06E0;N;ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO
+06E1;N;ARABIC SMALL HIGH DOTLESS HEAD OF KHAH
+06E2;N;ARABIC SMALL HIGH MEEM ISOLATED FORM
+06E3;N;ARABIC SMALL LOW SEEN
+06E4;N;ARABIC SMALL HIGH MADDA
+06E5;N;ARABIC SMALL WAW
+06E6;N;ARABIC SMALL YEH
+06E7;N;ARABIC SMALL HIGH YEH
+06E8;N;ARABIC SMALL HIGH NOON
+06E9;N;ARABIC PLACE OF SAJDAH
+06EA;N;ARABIC EMPTY CENTRE LOW STOP
+06EB;N;ARABIC EMPTY CENTRE HIGH STOP
+06EC;N;ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE
+06ED;N;ARABIC SMALL LOW MEEM
+06F0;N;EXTENDED ARABIC-INDIC DIGIT ZERO
+06F1;N;EXTENDED ARABIC-INDIC DIGIT ONE
+06F2;N;EXTENDED ARABIC-INDIC DIGIT TWO
+06F3;N;EXTENDED ARABIC-INDIC DIGIT THREE
+06F4;N;EXTENDED ARABIC-INDIC DIGIT FOUR
+06F5;N;EXTENDED ARABIC-INDIC DIGIT FIVE
+06F6;N;EXTENDED ARABIC-INDIC DIGIT SIX
+06F7;N;EXTENDED ARABIC-INDIC DIGIT SEVEN
+06F8;N;EXTENDED ARABIC-INDIC DIGIT EIGHT
+06F9;N;EXTENDED ARABIC-INDIC DIGIT NINE
+06FA;N;ARABIC LETTER SHEEN WITH DOT BELOW
+06FB;N;ARABIC LETTER DAD WITH DOT BELOW
+06FC;N;ARABIC LETTER GHAIN WITH DOT BELOW
+06FD;N;ARABIC SIGN SINDHI AMPERSAND
+06FE;N;ARABIC SIGN SINDHI POSTPOSITION MEN
+0700;N;SYRIAC END OF PARAGRAPH
+0701;N;SYRIAC SUPRALINEAR FULL STOP
+0702;N;SYRIAC SUBLINEAR FULL STOP
+0703;N;SYRIAC SUPRALINEAR COLON
+0704;N;SYRIAC SUBLINEAR COLON
+0705;N;SYRIAC HORIZONTAL COLON
+0706;N;SYRIAC COLON SKEWED LEFT
+0707;N;SYRIAC COLON SKEWED RIGHT
+0708;N;SYRIAC SUPRALINEAR COLON SKEWED LEFT
+0709;N;SYRIAC SUBLINEAR COLON SKEWED RIGHT
+070A;N;SYRIAC CONTRACTION
+070B;N;SYRIAC HARKLEAN OBELUS
+070C;N;SYRIAC HARKLEAN METOBELUS
+070D;N;SYRIAC HARKLEAN ASTERISCUS
+070F;N;SYRIAC ABBREVIATION MARK
+0710;N;SYRIAC LETTER ALAPH
+0711;N;SYRIAC LETTER SUPERSCRIPT ALAPH
+0712;N;SYRIAC LETTER BETH
+0713;N;SYRIAC LETTER GAMAL
+0714;N;SYRIAC LETTER GAMAL GARSHUNI
+0715;N;SYRIAC LETTER DALATH
+0716;N;SYRIAC LETTER DOTLESS DALATH RISH
+0717;N;SYRIAC LETTER HE
+0718;N;SYRIAC LETTER WAW
+0719;N;SYRIAC LETTER ZAIN
+071A;N;SYRIAC LETTER HETH
+071B;N;SYRIAC LETTER TETH
+071C;N;SYRIAC LETTER TETH GARSHUNI
+071D;N;SYRIAC LETTER YUDH
+071E;N;SYRIAC LETTER YUDH HE
+071F;N;SYRIAC LETTER KAPH
+0720;N;SYRIAC LETTER LAMADH
+0721;N;SYRIAC LETTER MIM
+0722;N;SYRIAC LETTER NUN
+0723;N;SYRIAC LETTER SEMKATH
+0724;N;SYRIAC LETTER FINAL SEMKATH
+0725;N;SYRIAC LETTER E
+0726;N;SYRIAC LETTER PE
+0727;N;SYRIAC LETTER REVERSED PE
+0728;N;SYRIAC LETTER SADHE
+0729;N;SYRIAC LETTER QAPH
+072A;N;SYRIAC LETTER RISH
+072B;N;SYRIAC LETTER SHIN
+072C;N;SYRIAC LETTER TAW
+0730;N;SYRIAC PTHAHA ABOVE
+0731;N;SYRIAC PTHAHA BELOW
+0732;N;SYRIAC PTHAHA DOTTED
+0733;N;SYRIAC ZQAPHA ABOVE
+0734;N;SYRIAC ZQAPHA BELOW
+0735;N;SYRIAC ZQAPHA DOTTED
+0736;N;SYRIAC RBASA ABOVE
+0737;N;SYRIAC RBASA BELOW
+0738;N;SYRIAC DOTTED ZLAMA HORIZONTAL
+0739;N;SYRIAC DOTTED ZLAMA ANGULAR
+073A;N;SYRIAC HBASA ABOVE
+073B;N;SYRIAC HBASA BELOW
+073C;N;SYRIAC HBASA-ESASA DOTTED
+073D;N;SYRIAC ESASA ABOVE
+073E;N;SYRIAC ESASA BELOW
+073F;N;SYRIAC RWAHA
+0740;N;SYRIAC FEMININE DOT
+0741;N;SYRIAC QUSHSHAYA
+0742;N;SYRIAC RUKKAKHA
+0743;N;SYRIAC TWO VERTICAL DOTS ABOVE
+0744;N;SYRIAC TWO VERTICAL DOTS BELOW
+0745;N;SYRIAC THREE DOTS ABOVE
+0746;N;SYRIAC THREE DOTS BELOW
+0747;N;SYRIAC OBLIQUE LINE ABOVE
+0748;N;SYRIAC OBLIQUE LINE BELOW
+0749;N;SYRIAC MUSIC
+074A;N;SYRIAC BARREKH
+0780;N;THAANA LETTER HAA
+0781;N;THAANA LETTER SHAVIYANI
+0782;N;THAANA LETTER NOONU
+0783;N;THAANA LETTER RAA
+0784;N;THAANA LETTER BAA
+0785;N;THAANA LETTER LHAVIYANI
+0786;N;THAANA LETTER KAAFU
+0787;N;THAANA LETTER ALIFU
+0788;N;THAANA LETTER VAAVU
+0789;N;THAANA LETTER MEEMU
+078A;N;THAANA LETTER FAAFU
+078B;N;THAANA LETTER DHAALU
+078C;N;THAANA LETTER THAA
+078D;N;THAANA LETTER LAAMU
+078E;N;THAANA LETTER GAAFU
+078F;N;THAANA LETTER GNAVIYANI
+0790;N;THAANA LETTER SEENU
+0791;N;THAANA LETTER DAVIYANI
+0792;N;THAANA LETTER ZAVIYANI
+0793;N;THAANA LETTER TAVIYANI
+0794;N;THAANA LETTER YAA
+0795;N;THAANA LETTER PAVIYANI
+0796;N;THAANA LETTER JAVIYANI
+0797;N;THAANA LETTER CHAVIYANI
+0798;N;THAANA LETTER TTAA
+0799;N;THAANA LETTER HHAA
+079A;N;THAANA LETTER KHAA
+079B;N;THAANA LETTER THAALU
+079C;N;THAANA LETTER ZAA
+079D;N;THAANA LETTER SHEENU
+079E;N;THAANA LETTER SAADHU
+079F;N;THAANA LETTER DAADHU
+07A0;N;THAANA LETTER TO
+07A1;N;THAANA LETTER ZO
+07A2;N;THAANA LETTER AINU
+07A3;N;THAANA LETTER GHAINU
+07A4;N;THAANA LETTER QAAFU
+07A5;N;THAANA LETTER WAAVU
+07A6;N;THAANA ABAFILI
+07A7;N;THAANA AABAAFILI
+07A8;N;THAANA IBIFILI
+07A9;N;THAANA EEBEEFILI
+07AA;N;THAANA UBUFILI
+07AB;N;THAANA OOBOOFILI
+07AC;N;THAANA EBEFILI
+07AD;N;THAANA EYBEYFILI
+07AE;N;THAANA OBOFILI
+07AF;N;THAANA OABOAFILI
+07B0;N;THAANA SUKUN
+0901;N;DEVANAGARI SIGN CANDRABINDU
+0902;N;DEVANAGARI SIGN ANUSVARA
+0903;N;DEVANAGARI SIGN VISARGA
+0905;N;DEVANAGARI LETTER A
+0906;N;DEVANAGARI LETTER AA
+0907;N;DEVANAGARI LETTER I
+0908;N;DEVANAGARI LETTER II
+0909;N;DEVANAGARI LETTER U
+090A;N;DEVANAGARI LETTER UU
+090B;N;DEVANAGARI LETTER VOCALIC R
+090C;N;DEVANAGARI LETTER VOCALIC L
+090D;N;DEVANAGARI LETTER CANDRA E
+090E;N;DEVANAGARI LETTER SHORT E
+090F;N;DEVANAGARI LETTER E
+0910;N;DEVANAGARI LETTER AI
+0911;N;DEVANAGARI LETTER CANDRA O
+0912;N;DEVANAGARI LETTER SHORT O
+0913;N;DEVANAGARI LETTER O
+0914;N;DEVANAGARI LETTER AU
+0915;N;DEVANAGARI LETTER KA
+0916;N;DEVANAGARI LETTER KHA
+0917;N;DEVANAGARI LETTER GA
+0918;N;DEVANAGARI LETTER GHA
+0919;N;DEVANAGARI LETTER NGA
+091A;N;DEVANAGARI LETTER CA
+091B;N;DEVANAGARI LETTER CHA
+091C;N;DEVANAGARI LETTER JA
+091D;N;DEVANAGARI LETTER JHA
+091E;N;DEVANAGARI LETTER NYA
+091F;N;DEVANAGARI LETTER TTA
+0920;N;DEVANAGARI LETTER TTHA
+0921;N;DEVANAGARI LETTER DDA
+0922;N;DEVANAGARI LETTER DDHA
+0923;N;DEVANAGARI LETTER NNA
+0924;N;DEVANAGARI LETTER TA
+0925;N;DEVANAGARI LETTER THA
+0926;N;DEVANAGARI LETTER DA
+0927;N;DEVANAGARI LETTER DHA
+0928;N;DEVANAGARI LETTER NA
+0929;N;DEVANAGARI LETTER NNNA
+092A;N;DEVANAGARI LETTER PA
+092B;N;DEVANAGARI LETTER PHA
+092C;N;DEVANAGARI LETTER BA
+092D;N;DEVANAGARI LETTER BHA
+092E;N;DEVANAGARI LETTER MA
+092F;N;DEVANAGARI LETTER YA
+0930;N;DEVANAGARI LETTER RA
+0931;N;DEVANAGARI LETTER RRA
+0932;N;DEVANAGARI LETTER LA
+0933;N;DEVANAGARI LETTER LLA
+0934;N;DEVANAGARI LETTER LLLA
+0935;N;DEVANAGARI LETTER VA
+0936;N;DEVANAGARI LETTER SHA
+0937;N;DEVANAGARI LETTER SSA
+0938;N;DEVANAGARI LETTER SA
+0939;N;DEVANAGARI LETTER HA
+093C;N;DEVANAGARI SIGN NUKTA
+093D;N;DEVANAGARI SIGN AVAGRAHA
+093E;N;DEVANAGARI VOWEL SIGN AA
+093F;N;DEVANAGARI VOWEL SIGN I
+0940;N;DEVANAGARI VOWEL SIGN II
+0941;N;DEVANAGARI VOWEL SIGN U
+0942;N;DEVANAGARI VOWEL SIGN UU
+0943;N;DEVANAGARI VOWEL SIGN VOCALIC R
+0944;N;DEVANAGARI VOWEL SIGN VOCALIC RR
+0945;N;DEVANAGARI VOWEL SIGN CANDRA E
+0946;N;DEVANAGARI VOWEL SIGN SHORT E
+0947;N;DEVANAGARI VOWEL SIGN E
+0948;N;DEVANAGARI VOWEL SIGN AI
+0949;N;DEVANAGARI VOWEL SIGN CANDRA O
+094A;N;DEVANAGARI VOWEL SIGN SHORT O
+094B;N;DEVANAGARI VOWEL SIGN O
+094C;N;DEVANAGARI VOWEL SIGN AU
+094D;N;DEVANAGARI SIGN VIRAMA
+0950;N;DEVANAGARI OM
+0951;N;DEVANAGARI STRESS SIGN UDATTA
+0952;N;DEVANAGARI STRESS SIGN ANUDATTA
+0953;N;DEVANAGARI GRAVE ACCENT
+0954;N;DEVANAGARI ACUTE ACCENT
+0958;N;DEVANAGARI LETTER QA
+0959;N;DEVANAGARI LETTER KHHA
+095A;N;DEVANAGARI LETTER GHHA
+095B;N;DEVANAGARI LETTER ZA
+095C;N;DEVANAGARI LETTER DDDHA
+095D;N;DEVANAGARI LETTER RHA
+095E;N;DEVANAGARI LETTER FA
+095F;N;DEVANAGARI LETTER YYA
+0960;N;DEVANAGARI LETTER VOCALIC RR
+0961;N;DEVANAGARI LETTER VOCALIC LL
+0962;N;DEVANAGARI VOWEL SIGN VOCALIC L
+0963;N;DEVANAGARI VOWEL SIGN VOCALIC LL
+0964;N;DEVANAGARI DANDA
+0965;N;DEVANAGARI DOUBLE DANDA
+0966;N;DEVANAGARI DIGIT ZERO
+0967;N;DEVANAGARI DIGIT ONE
+0968;N;DEVANAGARI DIGIT TWO
+0969;N;DEVANAGARI DIGIT THREE
+096A;N;DEVANAGARI DIGIT FOUR
+096B;N;DEVANAGARI DIGIT FIVE
+096C;N;DEVANAGARI DIGIT SIX
+096D;N;DEVANAGARI DIGIT SEVEN
+096E;N;DEVANAGARI DIGIT EIGHT
+096F;N;DEVANAGARI DIGIT NINE
+0970;N;DEVANAGARI ABBREVIATION SIGN
+0981;N;BENGALI SIGN CANDRABINDU
+0982;N;BENGALI SIGN ANUSVARA
+0983;N;BENGALI SIGN VISARGA
+0985;N;BENGALI LETTER A
+0986;N;BENGALI LETTER AA
+0987;N;BENGALI LETTER I
+0988;N;BENGALI LETTER II
+0989;N;BENGALI LETTER U
+098A;N;BENGALI LETTER UU
+098B;N;BENGALI LETTER VOCALIC R
+098C;N;BENGALI LETTER VOCALIC L
+098F;N;BENGALI LETTER E
+0990;N;BENGALI LETTER AI
+0993;N;BENGALI LETTER O
+0994;N;BENGALI LETTER AU
+0995;N;BENGALI LETTER KA
+0996;N;BENGALI LETTER KHA
+0997;N;BENGALI LETTER GA
+0998;N;BENGALI LETTER GHA
+0999;N;BENGALI LETTER NGA
+099A;N;BENGALI LETTER CA
+099B;N;BENGALI LETTER CHA
+099C;N;BENGALI LETTER JA
+099D;N;BENGALI LETTER JHA
+099E;N;BENGALI LETTER NYA
+099F;N;BENGALI LETTER TTA
+09A0;N;BENGALI LETTER TTHA
+09A1;N;BENGALI LETTER DDA
+09A2;N;BENGALI LETTER DDHA
+09A3;N;BENGALI LETTER NNA
+09A4;N;BENGALI LETTER TA
+09A5;N;BENGALI LETTER THA
+09A6;N;BENGALI LETTER DA
+09A7;N;BENGALI LETTER DHA
+09A8;N;BENGALI LETTER NA
+09AA;N;BENGALI LETTER PA
+09AB;N;BENGALI LETTER PHA
+09AC;N;BENGALI LETTER BA
+09AD;N;BENGALI LETTER BHA
+09AE;N;BENGALI LETTER MA
+09AF;N;BENGALI LETTER YA
+09B0;N;BENGALI LETTER RA
+09B2;N;BENGALI LETTER LA
+09B6;N;BENGALI LETTER SHA
+09B7;N;BENGALI LETTER SSA
+09B8;N;BENGALI LETTER SA
+09B9;N;BENGALI LETTER HA
+09BC;N;BENGALI SIGN NUKTA
+09BE;N;BENGALI VOWEL SIGN AA
+09BF;N;BENGALI VOWEL SIGN I
+09C0;N;BENGALI VOWEL SIGN II
+09C1;N;BENGALI VOWEL SIGN U
+09C2;N;BENGALI VOWEL SIGN UU
+09C3;N;BENGALI VOWEL SIGN VOCALIC R
+09C4;N;BENGALI VOWEL SIGN VOCALIC RR
+09C7;N;BENGALI VOWEL SIGN E
+09C8;N;BENGALI VOWEL SIGN AI
+09CB;N;BENGALI VOWEL SIGN O
+09CC;N;BENGALI VOWEL SIGN AU
+09CD;N;BENGALI SIGN VIRAMA
+09D7;N;BENGALI AU LENGTH MARK
+09DC;N;BENGALI LETTER RRA
+09DD;N;BENGALI LETTER RHA
+09DF;N;BENGALI LETTER YYA
+09E0;N;BENGALI LETTER VOCALIC RR
+09E1;N;BENGALI LETTER VOCALIC LL
+09E2;N;BENGALI VOWEL SIGN VOCALIC L
+09E3;N;BENGALI VOWEL SIGN VOCALIC LL
+09E6;N;BENGALI DIGIT ZERO
+09E7;N;BENGALI DIGIT ONE
+09E8;N;BENGALI DIGIT TWO
+09E9;N;BENGALI DIGIT THREE
+09EA;N;BENGALI DIGIT FOUR
+09EB;N;BENGALI DIGIT FIVE
+09EC;N;BENGALI DIGIT SIX
+09ED;N;BENGALI DIGIT SEVEN
+09EE;N;BENGALI DIGIT EIGHT
+09EF;N;BENGALI DIGIT NINE
+09F0;N;BENGALI LETTER RA WITH MIDDLE DIAGONAL
+09F1;N;BENGALI LETTER RA WITH LOWER DIAGONAL
+09F2;N;BENGALI RUPEE MARK
+09F3;N;BENGALI RUPEE SIGN
+09F4;N;BENGALI CURRENCY NUMERATOR ONE
+09F5;N;BENGALI CURRENCY NUMERATOR TWO
+09F6;N;BENGALI CURRENCY NUMERATOR THREE
+09F7;N;BENGALI CURRENCY NUMERATOR FOUR
+09F8;N;BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
+09F9;N;BENGALI CURRENCY DENOMINATOR SIXTEEN
+09FA;N;BENGALI ISSHAR
+0A02;N;GURMUKHI SIGN BINDI
+0A05;N;GURMUKHI LETTER A
+0A06;N;GURMUKHI LETTER AA
+0A07;N;GURMUKHI LETTER I
+0A08;N;GURMUKHI LETTER II
+0A09;N;GURMUKHI LETTER U
+0A0A;N;GURMUKHI LETTER UU
+0A0F;N;GURMUKHI LETTER EE
+0A10;N;GURMUKHI LETTER AI
+0A13;N;GURMUKHI LETTER OO
+0A14;N;GURMUKHI LETTER AU
+0A15;N;GURMUKHI LETTER KA
+0A16;N;GURMUKHI LETTER KHA
+0A17;N;GURMUKHI LETTER GA
+0A18;N;GURMUKHI LETTER GHA
+0A19;N;GURMUKHI LETTER NGA
+0A1A;N;GURMUKHI LETTER CA
+0A1B;N;GURMUKHI LETTER CHA
+0A1C;N;GURMUKHI LETTER JA
+0A1D;N;GURMUKHI LETTER JHA
+0A1E;N;GURMUKHI LETTER NYA
+0A1F;N;GURMUKHI LETTER TTA
+0A20;N;GURMUKHI LETTER TTHA
+0A21;N;GURMUKHI LETTER DDA
+0A22;N;GURMUKHI LETTER DDHA
+0A23;N;GURMUKHI LETTER NNA
+0A24;N;GURMUKHI LETTER TA
+0A25;N;GURMUKHI LETTER THA
+0A26;N;GURMUKHI LETTER DA
+0A27;N;GURMUKHI LETTER DHA
+0A28;N;GURMUKHI LETTER NA
+0A2A;N;GURMUKHI LETTER PA
+0A2B;N;GURMUKHI LETTER PHA
+0A2C;N;GURMUKHI LETTER BA
+0A2D;N;GURMUKHI LETTER BHA
+0A2E;N;GURMUKHI LETTER MA
+0A2F;N;GURMUKHI LETTER YA
+0A30;N;GURMUKHI LETTER RA
+0A32;N;GURMUKHI LETTER LA
+0A33;N;GURMUKHI LETTER LLA
+0A35;N;GURMUKHI LETTER VA
+0A36;N;GURMUKHI LETTER SHA
+0A38;N;GURMUKHI LETTER SA
+0A39;N;GURMUKHI LETTER HA
+0A3C;N;GURMUKHI SIGN NUKTA
+0A3E;N;GURMUKHI VOWEL SIGN AA
+0A3F;N;GURMUKHI VOWEL SIGN I
+0A40;N;GURMUKHI VOWEL SIGN II
+0A41;N;GURMUKHI VOWEL SIGN U
+0A42;N;GURMUKHI VOWEL SIGN UU
+0A47;N;GURMUKHI VOWEL SIGN EE
+0A48;N;GURMUKHI VOWEL SIGN AI
+0A4B;N;GURMUKHI VOWEL SIGN OO
+0A4C;N;GURMUKHI VOWEL SIGN AU
+0A4D;N;GURMUKHI SIGN VIRAMA
+0A59;N;GURMUKHI LETTER KHHA
+0A5A;N;GURMUKHI LETTER GHHA
+0A5B;N;GURMUKHI LETTER ZA
+0A5C;N;GURMUKHI LETTER RRA
+0A5E;N;GURMUKHI LETTER FA
+0A66;N;GURMUKHI DIGIT ZERO
+0A67;N;GURMUKHI DIGIT ONE
+0A68;N;GURMUKHI DIGIT TWO
+0A69;N;GURMUKHI DIGIT THREE
+0A6A;N;GURMUKHI DIGIT FOUR
+0A6B;N;GURMUKHI DIGIT FIVE
+0A6C;N;GURMUKHI DIGIT SIX
+0A6D;N;GURMUKHI DIGIT SEVEN
+0A6E;N;GURMUKHI DIGIT EIGHT
+0A6F;N;GURMUKHI DIGIT NINE
+0A70;N;GURMUKHI TIPPI
+0A71;N;GURMUKHI ADDAK
+0A72;N;GURMUKHI IRI
+0A73;N;GURMUKHI URA
+0A74;N;GURMUKHI EK ONKAR
+0A81;N;GUJARATI SIGN CANDRABINDU
+0A82;N;GUJARATI SIGN ANUSVARA
+0A83;N;GUJARATI SIGN VISARGA
+0A85;N;GUJARATI LETTER A
+0A86;N;GUJARATI LETTER AA
+0A87;N;GUJARATI LETTER I
+0A88;N;GUJARATI LETTER II
+0A89;N;GUJARATI LETTER U
+0A8A;N;GUJARATI LETTER UU
+0A8B;N;GUJARATI LETTER VOCALIC R
+0A8D;N;GUJARATI VOWEL CANDRA E
+0A8F;N;GUJARATI LETTER E
+0A90;N;GUJARATI LETTER AI
+0A91;N;GUJARATI VOWEL CANDRA O
+0A93;N;GUJARATI LETTER O
+0A94;N;GUJARATI LETTER AU
+0A95;N;GUJARATI LETTER KA
+0A96;N;GUJARATI LETTER KHA
+0A97;N;GUJARATI LETTER GA
+0A98;N;GUJARATI LETTER GHA
+0A99;N;GUJARATI LETTER NGA
+0A9A;N;GUJARATI LETTER CA
+0A9B;N;GUJARATI LETTER CHA
+0A9C;N;GUJARATI LETTER JA
+0A9D;N;GUJARATI LETTER JHA
+0A9E;N;GUJARATI LETTER NYA
+0A9F;N;GUJARATI LETTER TTA
+0AA0;N;GUJARATI LETTER TTHA
+0AA1;N;GUJARATI LETTER DDA
+0AA2;N;GUJARATI LETTER DDHA
+0AA3;N;GUJARATI LETTER NNA
+0AA4;N;GUJARATI LETTER TA
+0AA5;N;GUJARATI LETTER THA
+0AA6;N;GUJARATI LETTER DA
+0AA7;N;GUJARATI LETTER DHA
+0AA8;N;GUJARATI LETTER NA
+0AAA;N;GUJARATI LETTER PA
+0AAB;N;GUJARATI LETTER PHA
+0AAC;N;GUJARATI LETTER BA
+0AAD;N;GUJARATI LETTER BHA
+0AAE;N;GUJARATI LETTER MA
+0AAF;N;GUJARATI LETTER YA
+0AB0;N;GUJARATI LETTER RA
+0AB2;N;GUJARATI LETTER LA
+0AB3;N;GUJARATI LETTER LLA
+0AB5;N;GUJARATI LETTER VA
+0AB6;N;GUJARATI LETTER SHA
+0AB7;N;GUJARATI LETTER SSA
+0AB8;N;GUJARATI LETTER SA
+0AB9;N;GUJARATI LETTER HA
+0ABC;N;GUJARATI SIGN NUKTA
+0ABD;N;GUJARATI SIGN AVAGRAHA
+0ABE;N;GUJARATI VOWEL SIGN AA
+0ABF;N;GUJARATI VOWEL SIGN I
+0AC0;N;GUJARATI VOWEL SIGN II
+0AC1;N;GUJARATI VOWEL SIGN U
+0AC2;N;GUJARATI VOWEL SIGN UU
+0AC3;N;GUJARATI VOWEL SIGN VOCALIC R
+0AC4;N;GUJARATI VOWEL SIGN VOCALIC RR
+0AC5;N;GUJARATI VOWEL SIGN CANDRA E
+0AC7;N;GUJARATI VOWEL SIGN E
+0AC8;N;GUJARATI VOWEL SIGN AI
+0AC9;N;GUJARATI VOWEL SIGN CANDRA O
+0ACB;N;GUJARATI VOWEL SIGN O
+0ACC;N;GUJARATI VOWEL SIGN AU
+0ACD;N;GUJARATI SIGN VIRAMA
+0AD0;N;GUJARATI OM
+0AE0;N;GUJARATI LETTER VOCALIC RR
+0AE6;N;GUJARATI DIGIT ZERO
+0AE7;N;GUJARATI DIGIT ONE
+0AE8;N;GUJARATI DIGIT TWO
+0AE9;N;GUJARATI DIGIT THREE
+0AEA;N;GUJARATI DIGIT FOUR
+0AEB;N;GUJARATI DIGIT FIVE
+0AEC;N;GUJARATI DIGIT SIX
+0AED;N;GUJARATI DIGIT SEVEN
+0AEE;N;GUJARATI DIGIT EIGHT
+0AEF;N;GUJARATI DIGIT NINE
+0B01;N;ORIYA SIGN CANDRABINDU
+0B02;N;ORIYA SIGN ANUSVARA
+0B03;N;ORIYA SIGN VISARGA
+0B05;N;ORIYA LETTER A
+0B06;N;ORIYA LETTER AA
+0B07;N;ORIYA LETTER I
+0B08;N;ORIYA LETTER II
+0B09;N;ORIYA LETTER U
+0B0A;N;ORIYA LETTER UU
+0B0B;N;ORIYA LETTER VOCALIC R
+0B0C;N;ORIYA LETTER VOCALIC L
+0B0F;N;ORIYA LETTER E
+0B10;N;ORIYA LETTER AI
+0B13;N;ORIYA LETTER O
+0B14;N;ORIYA LETTER AU
+0B15;N;ORIYA LETTER KA
+0B16;N;ORIYA LETTER KHA
+0B17;N;ORIYA LETTER GA
+0B18;N;ORIYA LETTER GHA
+0B19;N;ORIYA LETTER NGA
+0B1A;N;ORIYA LETTER CA
+0B1B;N;ORIYA LETTER CHA
+0B1C;N;ORIYA LETTER JA
+0B1D;N;ORIYA LETTER JHA
+0B1E;N;ORIYA LETTER NYA
+0B1F;N;ORIYA LETTER TTA
+0B20;N;ORIYA LETTER TTHA
+0B21;N;ORIYA LETTER DDA
+0B22;N;ORIYA LETTER DDHA
+0B23;N;ORIYA LETTER NNA
+0B24;N;ORIYA LETTER TA
+0B25;N;ORIYA LETTER THA
+0B26;N;ORIYA LETTER DA
+0B27;N;ORIYA LETTER DHA
+0B28;N;ORIYA LETTER NA
+0B2A;N;ORIYA LETTER PA
+0B2B;N;ORIYA LETTER PHA
+0B2C;N;ORIYA LETTER BA
+0B2D;N;ORIYA LETTER BHA
+0B2E;N;ORIYA LETTER MA
+0B2F;N;ORIYA LETTER YA
+0B30;N;ORIYA LETTER RA
+0B32;N;ORIYA LETTER LA
+0B33;N;ORIYA LETTER LLA
+0B36;N;ORIYA LETTER SHA
+0B37;N;ORIYA LETTER SSA
+0B38;N;ORIYA LETTER SA
+0B39;N;ORIYA LETTER HA
+0B3C;N;ORIYA SIGN NUKTA
+0B3D;N;ORIYA SIGN AVAGRAHA
+0B3E;N;ORIYA VOWEL SIGN AA
+0B3F;N;ORIYA VOWEL SIGN I
+0B40;N;ORIYA VOWEL SIGN II
+0B41;N;ORIYA VOWEL SIGN U
+0B42;N;ORIYA VOWEL SIGN UU
+0B43;N;ORIYA VOWEL SIGN VOCALIC R
+0B47;N;ORIYA VOWEL SIGN E
+0B48;N;ORIYA VOWEL SIGN AI
+0B4B;N;ORIYA VOWEL SIGN O
+0B4C;N;ORIYA VOWEL SIGN AU
+0B4D;N;ORIYA SIGN VIRAMA
+0B56;N;ORIYA AI LENGTH MARK
+0B57;N;ORIYA AU LENGTH MARK
+0B5C;N;ORIYA LETTER RRA
+0B5D;N;ORIYA LETTER RHA
+0B5F;N;ORIYA LETTER YYA
+0B60;N;ORIYA LETTER VOCALIC RR
+0B61;N;ORIYA LETTER VOCALIC LL
+0B66;N;ORIYA DIGIT ZERO
+0B67;N;ORIYA DIGIT ONE
+0B68;N;ORIYA DIGIT TWO
+0B69;N;ORIYA DIGIT THREE
+0B6A;N;ORIYA DIGIT FOUR
+0B6B;N;ORIYA DIGIT FIVE
+0B6C;N;ORIYA DIGIT SIX
+0B6D;N;ORIYA DIGIT SEVEN
+0B6E;N;ORIYA DIGIT EIGHT
+0B6F;N;ORIYA DIGIT NINE
+0B70;N;ORIYA ISSHAR
+0B82;N;TAMIL SIGN ANUSVARA
+0B83;N;TAMIL SIGN VISARGA
+0B85;N;TAMIL LETTER A
+0B86;N;TAMIL LETTER AA
+0B87;N;TAMIL LETTER I
+0B88;N;TAMIL LETTER II
+0B89;N;TAMIL LETTER U
+0B8A;N;TAMIL LETTER UU
+0B8E;N;TAMIL LETTER E
+0B8F;N;TAMIL LETTER EE
+0B90;N;TAMIL LETTER AI
+0B92;N;TAMIL LETTER O
+0B93;N;TAMIL LETTER OO
+0B94;N;TAMIL LETTER AU
+0B95;N;TAMIL LETTER KA
+0B99;N;TAMIL LETTER NGA
+0B9A;N;TAMIL LETTER CA
+0B9C;N;TAMIL LETTER JA
+0B9E;N;TAMIL LETTER NYA
+0B9F;N;TAMIL LETTER TTA
+0BA3;N;TAMIL LETTER NNA
+0BA4;N;TAMIL LETTER TA
+0BA8;N;TAMIL LETTER NA
+0BA9;N;TAMIL LETTER NNNA
+0BAA;N;TAMIL LETTER PA
+0BAE;N;TAMIL LETTER MA
+0BAF;N;TAMIL LETTER YA
+0BB0;N;TAMIL LETTER RA
+0BB1;N;TAMIL LETTER RRA
+0BB2;N;TAMIL LETTER LA
+0BB3;N;TAMIL LETTER LLA
+0BB4;N;TAMIL LETTER LLLA
+0BB5;N;TAMIL LETTER VA
+0BB7;N;TAMIL LETTER SSA
+0BB8;N;TAMIL LETTER SA
+0BB9;N;TAMIL LETTER HA
+0BBE;N;TAMIL VOWEL SIGN AA
+0BBF;N;TAMIL VOWEL SIGN I
+0BC0;N;TAMIL VOWEL SIGN II
+0BC1;N;TAMIL VOWEL SIGN U
+0BC2;N;TAMIL VOWEL SIGN UU
+0BC6;N;TAMIL VOWEL SIGN E
+0BC7;N;TAMIL VOWEL SIGN EE
+0BC8;N;TAMIL VOWEL SIGN AI
+0BCA;N;TAMIL VOWEL SIGN O
+0BCB;N;TAMIL VOWEL SIGN OO
+0BCC;N;TAMIL VOWEL SIGN AU
+0BCD;N;TAMIL SIGN VIRAMA
+0BD7;N;TAMIL AU LENGTH MARK
+0BE7;N;TAMIL DIGIT ONE
+0BE8;N;TAMIL DIGIT TWO
+0BE9;N;TAMIL DIGIT THREE
+0BEA;N;TAMIL DIGIT FOUR
+0BEB;N;TAMIL DIGIT FIVE
+0BEC;N;TAMIL DIGIT SIX
+0BED;N;TAMIL DIGIT SEVEN
+0BEE;N;TAMIL DIGIT EIGHT
+0BEF;N;TAMIL DIGIT NINE
+0BF0;N;TAMIL NUMBER TEN
+0BF1;N;TAMIL NUMBER ONE HUNDRED
+0BF2;N;TAMIL NUMBER ONE THOUSAND
+0C01;N;TELUGU SIGN CANDRABINDU
+0C02;N;TELUGU SIGN ANUSVARA
+0C03;N;TELUGU SIGN VISARGA
+0C05;N;TELUGU LETTER A
+0C06;N;TELUGU LETTER AA
+0C07;N;TELUGU LETTER I
+0C08;N;TELUGU LETTER II
+0C09;N;TELUGU LETTER U
+0C0A;N;TELUGU LETTER UU
+0C0B;N;TELUGU LETTER VOCALIC R
+0C0C;N;TELUGU LETTER VOCALIC L
+0C0E;N;TELUGU LETTER E
+0C0F;N;TELUGU LETTER EE
+0C10;N;TELUGU LETTER AI
+0C12;N;TELUGU LETTER O
+0C13;N;TELUGU LETTER OO
+0C14;N;TELUGU LETTER AU
+0C15;N;TELUGU LETTER KA
+0C16;N;TELUGU LETTER KHA
+0C17;N;TELUGU LETTER GA
+0C18;N;TELUGU LETTER GHA
+0C19;N;TELUGU LETTER NGA
+0C1A;N;TELUGU LETTER CA
+0C1B;N;TELUGU LETTER CHA
+0C1C;N;TELUGU LETTER JA
+0C1D;N;TELUGU LETTER JHA
+0C1E;N;TELUGU LETTER NYA
+0C1F;N;TELUGU LETTER TTA
+0C20;N;TELUGU LETTER TTHA
+0C21;N;TELUGU LETTER DDA
+0C22;N;TELUGU LETTER DDHA
+0C23;N;TELUGU LETTER NNA
+0C24;N;TELUGU LETTER TA
+0C25;N;TELUGU LETTER THA
+0C26;N;TELUGU LETTER DA
+0C27;N;TELUGU LETTER DHA
+0C28;N;TELUGU LETTER NA
+0C2A;N;TELUGU LETTER PA
+0C2B;N;TELUGU LETTER PHA
+0C2C;N;TELUGU LETTER BA
+0C2D;N;TELUGU LETTER BHA
+0C2E;N;TELUGU LETTER MA
+0C2F;N;TELUGU LETTER YA
+0C30;N;TELUGU LETTER RA
+0C31;N;TELUGU LETTER RRA
+0C32;N;TELUGU LETTER LA
+0C33;N;TELUGU LETTER LLA
+0C35;N;TELUGU LETTER VA
+0C36;N;TELUGU LETTER SHA
+0C37;N;TELUGU LETTER SSA
+0C38;N;TELUGU LETTER SA
+0C39;N;TELUGU LETTER HA
+0C3E;N;TELUGU VOWEL SIGN AA
+0C3F;N;TELUGU VOWEL SIGN I
+0C40;N;TELUGU VOWEL SIGN II
+0C41;N;TELUGU VOWEL SIGN U
+0C42;N;TELUGU VOWEL SIGN UU
+0C43;N;TELUGU VOWEL SIGN VOCALIC R
+0C44;N;TELUGU VOWEL SIGN VOCALIC RR
+0C46;N;TELUGU VOWEL SIGN E
+0C47;N;TELUGU VOWEL SIGN EE
+0C48;N;TELUGU VOWEL SIGN AI
+0C4A;N;TELUGU VOWEL SIGN O
+0C4B;N;TELUGU VOWEL SIGN OO
+0C4C;N;TELUGU VOWEL SIGN AU
+0C4D;N;TELUGU SIGN VIRAMA
+0C55;N;TELUGU LENGTH MARK
+0C56;N;TELUGU AI LENGTH MARK
+0C60;N;TELUGU LETTER VOCALIC RR
+0C61;N;TELUGU LETTER VOCALIC LL
+0C66;N;TELUGU DIGIT ZERO
+0C67;N;TELUGU DIGIT ONE
+0C68;N;TELUGU DIGIT TWO
+0C69;N;TELUGU DIGIT THREE
+0C6A;N;TELUGU DIGIT FOUR
+0C6B;N;TELUGU DIGIT FIVE
+0C6C;N;TELUGU DIGIT SIX
+0C6D;N;TELUGU DIGIT SEVEN
+0C6E;N;TELUGU DIGIT EIGHT
+0C6F;N;TELUGU DIGIT NINE
+0C82;N;KANNADA SIGN ANUSVARA
+0C83;N;KANNADA SIGN VISARGA
+0C85;N;KANNADA LETTER A
+0C86;N;KANNADA LETTER AA
+0C87;N;KANNADA LETTER I
+0C88;N;KANNADA LETTER II
+0C89;N;KANNADA LETTER U
+0C8A;N;KANNADA LETTER UU
+0C8B;N;KANNADA LETTER VOCALIC R
+0C8C;N;KANNADA LETTER VOCALIC L
+0C8E;N;KANNADA LETTER E
+0C8F;N;KANNADA LETTER EE
+0C90;N;KANNADA LETTER AI
+0C92;N;KANNADA LETTER O
+0C93;N;KANNADA LETTER OO
+0C94;N;KANNADA LETTER AU
+0C95;N;KANNADA LETTER KA
+0C96;N;KANNADA LETTER KHA
+0C97;N;KANNADA LETTER GA
+0C98;N;KANNADA LETTER GHA
+0C99;N;KANNADA LETTER NGA
+0C9A;N;KANNADA LETTER CA
+0C9B;N;KANNADA LETTER CHA
+0C9C;N;KANNADA LETTER JA
+0C9D;N;KANNADA LETTER JHA
+0C9E;N;KANNADA LETTER NYA
+0C9F;N;KANNADA LETTER TTA
+0CA0;N;KANNADA LETTER TTHA
+0CA1;N;KANNADA LETTER DDA
+0CA2;N;KANNADA LETTER DDHA
+0CA3;N;KANNADA LETTER NNA
+0CA4;N;KANNADA LETTER TA
+0CA5;N;KANNADA LETTER THA
+0CA6;N;KANNADA LETTER DA
+0CA7;N;KANNADA LETTER DHA
+0CA8;N;KANNADA LETTER NA
+0CAA;N;KANNADA LETTER PA
+0CAB;N;KANNADA LETTER PHA
+0CAC;N;KANNADA LETTER BA
+0CAD;N;KANNADA LETTER BHA
+0CAE;N;KANNADA LETTER MA
+0CAF;N;KANNADA LETTER YA
+0CB0;N;KANNADA LETTER RA
+0CB1;N;KANNADA LETTER RRA
+0CB2;N;KANNADA LETTER LA
+0CB3;N;KANNADA LETTER LLA
+0CB5;N;KANNADA LETTER VA
+0CB6;N;KANNADA LETTER SHA
+0CB7;N;KANNADA LETTER SSA
+0CB8;N;KANNADA LETTER SA
+0CB9;N;KANNADA LETTER HA
+0CBE;N;KANNADA VOWEL SIGN AA
+0CBF;N;KANNADA VOWEL SIGN I
+0CC0;N;KANNADA VOWEL SIGN II
+0CC1;N;KANNADA VOWEL SIGN U
+0CC2;N;KANNADA VOWEL SIGN UU
+0CC3;N;KANNADA VOWEL SIGN VOCALIC R
+0CC4;N;KANNADA VOWEL SIGN VOCALIC RR
+0CC6;N;KANNADA VOWEL SIGN E
+0CC7;N;KANNADA VOWEL SIGN EE
+0CC8;N;KANNADA VOWEL SIGN AI
+0CCA;N;KANNADA VOWEL SIGN O
+0CCB;N;KANNADA VOWEL SIGN OO
+0CCC;N;KANNADA VOWEL SIGN AU
+0CCD;N;KANNADA SIGN VIRAMA
+0CD5;N;KANNADA LENGTH MARK
+0CD6;N;KANNADA AI LENGTH MARK
+0CDE;N;KANNADA LETTER FA
+0CE0;N;KANNADA LETTER VOCALIC RR
+0CE1;N;KANNADA LETTER VOCALIC LL
+0CE6;N;KANNADA DIGIT ZERO
+0CE7;N;KANNADA DIGIT ONE
+0CE8;N;KANNADA DIGIT TWO
+0CE9;N;KANNADA DIGIT THREE
+0CEA;N;KANNADA DIGIT FOUR
+0CEB;N;KANNADA DIGIT FIVE
+0CEC;N;KANNADA DIGIT SIX
+0CED;N;KANNADA DIGIT SEVEN
+0CEE;N;KANNADA DIGIT EIGHT
+0CEF;N;KANNADA DIGIT NINE
+0D02;N;MALAYALAM SIGN ANUSVARA
+0D03;N;MALAYALAM SIGN VISARGA
+0D05;N;MALAYALAM LETTER A
+0D06;N;MALAYALAM LETTER AA
+0D07;N;MALAYALAM LETTER I
+0D08;N;MALAYALAM LETTER II
+0D09;N;MALAYALAM LETTER U
+0D0A;N;MALAYALAM LETTER UU
+0D0B;N;MALAYALAM LETTER VOCALIC R
+0D0C;N;MALAYALAM LETTER VOCALIC L
+0D0E;N;MALAYALAM LETTER E
+0D0F;N;MALAYALAM LETTER EE
+0D10;N;MALAYALAM LETTER AI
+0D12;N;MALAYALAM LETTER O
+0D13;N;MALAYALAM LETTER OO
+0D14;N;MALAYALAM LETTER AU
+0D15;N;MALAYALAM LETTER KA
+0D16;N;MALAYALAM LETTER KHA
+0D17;N;MALAYALAM LETTER GA
+0D18;N;MALAYALAM LETTER GHA
+0D19;N;MALAYALAM LETTER NGA
+0D1A;N;MALAYALAM LETTER CA
+0D1B;N;MALAYALAM LETTER CHA
+0D1C;N;MALAYALAM LETTER JA
+0D1D;N;MALAYALAM LETTER JHA
+0D1E;N;MALAYALAM LETTER NYA
+0D1F;N;MALAYALAM LETTER TTA
+0D20;N;MALAYALAM LETTER TTHA
+0D21;N;MALAYALAM LETTER DDA
+0D22;N;MALAYALAM LETTER DDHA
+0D23;N;MALAYALAM LETTER NNA
+0D24;N;MALAYALAM LETTER TA
+0D25;N;MALAYALAM LETTER THA
+0D26;N;MALAYALAM LETTER DA
+0D27;N;MALAYALAM LETTER DHA
+0D28;N;MALAYALAM LETTER NA
+0D2A;N;MALAYALAM LETTER PA
+0D2B;N;MALAYALAM LETTER PHA
+0D2C;N;MALAYALAM LETTER BA
+0D2D;N;MALAYALAM LETTER BHA
+0D2E;N;MALAYALAM LETTER MA
+0D2F;N;MALAYALAM LETTER YA
+0D30;N;MALAYALAM LETTER RA
+0D31;N;MALAYALAM LETTER RRA
+0D32;N;MALAYALAM LETTER LA
+0D33;N;MALAYALAM LETTER LLA
+0D34;N;MALAYALAM LETTER LLLA
+0D35;N;MALAYALAM LETTER VA
+0D36;N;MALAYALAM LETTER SHA
+0D37;N;MALAYALAM LETTER SSA
+0D38;N;MALAYALAM LETTER SA
+0D39;N;MALAYALAM LETTER HA
+0D3E;N;MALAYALAM VOWEL SIGN AA
+0D3F;N;MALAYALAM VOWEL SIGN I
+0D40;N;MALAYALAM VOWEL SIGN II
+0D41;N;MALAYALAM VOWEL SIGN U
+0D42;N;MALAYALAM VOWEL SIGN UU
+0D43;N;MALAYALAM VOWEL SIGN VOCALIC R
+0D46;N;MALAYALAM VOWEL SIGN E
+0D47;N;MALAYALAM VOWEL SIGN EE
+0D48;N;MALAYALAM VOWEL SIGN AI
+0D4A;N;MALAYALAM VOWEL SIGN O
+0D4B;N;MALAYALAM VOWEL SIGN OO
+0D4C;N;MALAYALAM VOWEL SIGN AU
+0D4D;N;MALAYALAM SIGN VIRAMA
+0D57;N;MALAYALAM AU LENGTH MARK
+0D60;N;MALAYALAM LETTER VOCALIC RR
+0D61;N;MALAYALAM LETTER VOCALIC LL
+0D66;N;MALAYALAM DIGIT ZERO
+0D67;N;MALAYALAM DIGIT ONE
+0D68;N;MALAYALAM DIGIT TWO
+0D69;N;MALAYALAM DIGIT THREE
+0D6A;N;MALAYALAM DIGIT FOUR
+0D6B;N;MALAYALAM DIGIT FIVE
+0D6C;N;MALAYALAM DIGIT SIX
+0D6D;N;MALAYALAM DIGIT SEVEN
+0D6E;N;MALAYALAM DIGIT EIGHT
+0D6F;N;MALAYALAM DIGIT NINE
+0D82;N;SINHALA SIGN ANUSVARAYA
+0D83;N;SINHALA SIGN VISARGAYA
+0D85;N;SINHALA LETTER AYANNA
+0D86;N;SINHALA LETTER AAYANNA
+0D87;N;SINHALA LETTER AEYANNA
+0D88;N;SINHALA LETTER AEEYANNA
+0D89;N;SINHALA LETTER IYANNA
+0D8A;N;SINHALA LETTER IIYANNA
+0D8B;N;SINHALA LETTER UYANNA
+0D8C;N;SINHALA LETTER UUYANNA
+0D8D;N;SINHALA LETTER IRUYANNA
+0D8E;N;SINHALA LETTER IRUUYANNA
+0D8F;N;SINHALA LETTER ILUYANNA
+0D90;N;SINHALA LETTER ILUUYANNA
+0D91;N;SINHALA LETTER EYANNA
+0D92;N;SINHALA LETTER EEYANNA
+0D93;N;SINHALA LETTER AIYANNA
+0D94;N;SINHALA LETTER OYANNA
+0D95;N;SINHALA LETTER OOYANNA
+0D96;N;SINHALA LETTER AUYANNA
+0D9A;N;SINHALA LETTER ALPAPRAANA KAYANNA
+0D9B;N;SINHALA LETTER MAHAAPRAANA KAYANNA
+0D9C;N;SINHALA LETTER ALPAPRAANA GAYANNA
+0D9D;N;SINHALA LETTER MAHAAPRAANA GAYANNA
+0D9E;N;SINHALA LETTER KANTAJA NAASIKYAYA
+0D9F;N;SINHALA LETTER SANYAKA GAYANNA
+0DA0;N;SINHALA LETTER ALPAPRAANA CAYANNA
+0DA1;N;SINHALA LETTER MAHAAPRAANA CAYANNA
+0DA2;N;SINHALA LETTER ALPAPRAANA JAYANNA
+0DA3;N;SINHALA LETTER MAHAAPRAANA JAYANNA
+0DA4;N;SINHALA LETTER TAALUJA NAASIKYAYA
+0DA5;N;SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA
+0DA6;N;SINHALA LETTER SANYAKA JAYANNA
+0DA7;N;SINHALA LETTER ALPAPRAANA TTAYANNA
+0DA8;N;SINHALA LETTER MAHAAPRAANA TTAYANNA
+0DA9;N;SINHALA LETTER ALPAPRAANA DDAYANNA
+0DAA;N;SINHALA LETTER MAHAAPRAANA DDAYANNA
+0DAB;N;SINHALA LETTER MUURDHAJA NAYANNA
+0DAC;N;SINHALA LETTER SANYAKA DDAYANNA
+0DAD;N;SINHALA LETTER ALPAPRAANA TAYANNA
+0DAE;N;SINHALA LETTER MAHAAPRAANA TAYANNA
+0DAF;N;SINHALA LETTER ALPAPRAANA DAYANNA
+0DB0;N;SINHALA LETTER MAHAAPRAANA DAYANNA
+0DB1;N;SINHALA LETTER DANTAJA NAYANNA
+0DB3;N;SINHALA LETTER SANYAKA DAYANNA
+0DB4;N;SINHALA LETTER ALPAPRAANA PAYANNA
+0DB5;N;SINHALA LETTER MAHAAPRAANA PAYANNA
+0DB6;N;SINHALA LETTER ALPAPRAANA BAYANNA
+0DB7;N;SINHALA LETTER MAHAAPRAANA BAYANNA
+0DB8;N;SINHALA LETTER MAYANNA
+0DB9;N;SINHALA LETTER AMBA BAYANNA
+0DBA;N;SINHALA LETTER YAYANNA
+0DBB;N;SINHALA LETTER RAYANNA
+0DBD;N;SINHALA LETTER DANTAJA LAYANNA
+0DC0;N;SINHALA LETTER VAYANNA
+0DC1;N;SINHALA LETTER TAALUJA SAYANNA
+0DC2;N;SINHALA LETTER MUURDHAJA SAYANNA
+0DC3;N;SINHALA LETTER DANTAJA SAYANNA
+0DC4;N;SINHALA LETTER HAYANNA
+0DC5;N;SINHALA LETTER MUURDHAJA LAYANNA
+0DC6;N;SINHALA LETTER FAYANNA
+0DCA;N;SINHALA SIGN AL-LAKUNA
+0DCF;N;SINHALA VOWEL SIGN AELA-PILLA
+0DD0;N;SINHALA VOWEL SIGN KETTI AEDA-PILLA
+0DD1;N;SINHALA VOWEL SIGN DIGA AEDA-PILLA
+0DD2;N;SINHALA VOWEL SIGN KETTI IS-PILLA
+0DD3;N;SINHALA VOWEL SIGN DIGA IS-PILLA
+0DD4;N;SINHALA VOWEL SIGN KETTI PAA-PILLA
+0DD6;N;SINHALA VOWEL SIGN DIGA PAA-PILLA
+0DD8;N;SINHALA VOWEL SIGN GAETTA-PILLA
+0DD9;N;SINHALA VOWEL SIGN KOMBUVA
+0DDA;N;SINHALA VOWEL SIGN DIGA KOMBUVA
+0DDB;N;SINHALA VOWEL SIGN KOMBU DEKA
+0DDC;N;SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA
+0DDD;N;SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA
+0DDE;N;SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
+0DDF;N;SINHALA VOWEL SIGN GAYANUKITTA
+0DF2;N;SINHALA VOWEL SIGN DIGA GAETTA-PILLA
+0DF3;N;SINHALA VOWEL SIGN DIGA GAYANUKITTA
+0DF4;N;SINHALA PUNCTUATION KUNDDALIYA
+0E01;N;THAI CHARACTER KO KAI
+0E02;N;THAI CHARACTER KHO KHAI
+0E03;N;THAI CHARACTER KHO KHUAT
+0E04;N;THAI CHARACTER KHO KHWAI
+0E05;N;THAI CHARACTER KHO KHON
+0E06;N;THAI CHARACTER KHO RAKHANG
+0E07;N;THAI CHARACTER NGO NGU
+0E08;N;THAI CHARACTER CHO CHAN
+0E09;N;THAI CHARACTER CHO CHING
+0E0A;N;THAI CHARACTER CHO CHANG
+0E0B;N;THAI CHARACTER SO SO
+0E0C;N;THAI CHARACTER CHO CHOE
+0E0D;N;THAI CHARACTER YO YING
+0E0E;N;THAI CHARACTER DO CHADA
+0E0F;N;THAI CHARACTER TO PATAK
+0E10;N;THAI CHARACTER THO THAN
+0E11;N;THAI CHARACTER THO NANGMONTHO
+0E12;N;THAI CHARACTER THO PHUTHAO
+0E13;N;THAI CHARACTER NO NEN
+0E14;N;THAI CHARACTER DO DEK
+0E15;N;THAI CHARACTER TO TAO
+0E16;N;THAI CHARACTER THO THUNG
+0E17;N;THAI CHARACTER THO THAHAN
+0E18;N;THAI CHARACTER THO THONG
+0E19;N;THAI CHARACTER NO NU
+0E1A;N;THAI CHARACTER BO BAIMAI
+0E1B;N;THAI CHARACTER PO PLA
+0E1C;N;THAI CHARACTER PHO PHUNG
+0E1D;N;THAI CHARACTER FO FA
+0E1E;N;THAI CHARACTER PHO PHAN
+0E1F;N;THAI CHARACTER FO FAN
+0E20;N;THAI CHARACTER PHO SAMPHAO
+0E21;N;THAI CHARACTER MO MA
+0E22;N;THAI CHARACTER YO YAK
+0E23;N;THAI CHARACTER RO RUA
+0E24;N;THAI CHARACTER RU
+0E25;N;THAI CHARACTER LO LING
+0E26;N;THAI CHARACTER LU
+0E27;N;THAI CHARACTER WO WAEN
+0E28;N;THAI CHARACTER SO SALA
+0E29;N;THAI CHARACTER SO RUSI
+0E2A;N;THAI CHARACTER SO SUA
+0E2B;N;THAI CHARACTER HO HIP
+0E2C;N;THAI CHARACTER LO CHULA
+0E2D;N;THAI CHARACTER O ANG
+0E2E;N;THAI CHARACTER HO NOKHUK
+0E2F;N;THAI CHARACTER PAIYANNOI
+0E30;N;THAI CHARACTER SARA A
+0E31;N;THAI CHARACTER MAI HAN-AKAT
+0E32;N;THAI CHARACTER SARA AA
+0E33;N;THAI CHARACTER SARA AM
+0E34;N;THAI CHARACTER SARA I
+0E35;N;THAI CHARACTER SARA II
+0E36;N;THAI CHARACTER SARA UE
+0E37;N;THAI CHARACTER SARA UEE
+0E38;N;THAI CHARACTER SARA U
+0E39;N;THAI CHARACTER SARA UU
+0E3A;N;THAI CHARACTER PHINTHU
+0E3F;N;THAI CURRENCY SYMBOL BAHT
+0E40;N;THAI CHARACTER SARA E
+0E41;N;THAI CHARACTER SARA AE
+0E42;N;THAI CHARACTER SARA O
+0E43;N;THAI CHARACTER SARA AI MAIMUAN
+0E44;N;THAI CHARACTER SARA AI MAIMALAI
+0E45;N;THAI CHARACTER LAKKHANGYAO
+0E46;N;THAI CHARACTER MAIYAMOK
+0E47;N;THAI CHARACTER MAITAIKHU
+0E48;N;THAI CHARACTER MAI EK
+0E49;N;THAI CHARACTER MAI THO
+0E4A;N;THAI CHARACTER MAI TRI
+0E4B;N;THAI CHARACTER MAI CHATTAWA
+0E4C;N;THAI CHARACTER THANTHAKHAT
+0E4D;N;THAI CHARACTER NIKHAHIT
+0E4E;N;THAI CHARACTER YAMAKKAN
+0E4F;N;THAI CHARACTER FONGMAN
+0E50;N;THAI DIGIT ZERO
+0E51;N;THAI DIGIT ONE
+0E52;N;THAI DIGIT TWO
+0E53;N;THAI DIGIT THREE
+0E54;N;THAI DIGIT FOUR
+0E55;N;THAI DIGIT FIVE
+0E56;N;THAI DIGIT SIX
+0E57;N;THAI DIGIT SEVEN
+0E58;N;THAI DIGIT EIGHT
+0E59;N;THAI DIGIT NINE
+0E5A;N;THAI CHARACTER ANGKHANKHU
+0E5B;N;THAI CHARACTER KHOMUT
+0E81;N;LAO LETTER KO
+0E82;N;LAO LETTER KHO SUNG
+0E84;N;LAO LETTER KHO TAM
+0E87;N;LAO LETTER NGO
+0E88;N;LAO LETTER CO
+0E8A;N;LAO LETTER SO TAM
+0E8D;N;LAO LETTER NYO
+0E94;N;LAO LETTER DO
+0E95;N;LAO LETTER TO
+0E96;N;LAO LETTER THO SUNG
+0E97;N;LAO LETTER THO TAM
+0E99;N;LAO LETTER NO
+0E9A;N;LAO LETTER BO
+0E9B;N;LAO LETTER PO
+0E9C;N;LAO LETTER PHO SUNG
+0E9D;N;LAO LETTER FO TAM
+0E9E;N;LAO LETTER PHO TAM
+0E9F;N;LAO LETTER FO SUNG
+0EA1;N;LAO LETTER MO
+0EA2;N;LAO LETTER YO
+0EA3;N;LAO LETTER LO LING
+0EA5;N;LAO LETTER LO LOOT
+0EA7;N;LAO LETTER WO
+0EAA;N;LAO LETTER SO SUNG
+0EAB;N;LAO LETTER HO SUNG
+0EAD;N;LAO LETTER O
+0EAE;N;LAO LETTER HO TAM
+0EAF;N;LAO ELLIPSIS
+0EB0;N;LAO VOWEL SIGN A
+0EB1;N;LAO VOWEL SIGN MAI KAN
+0EB2;N;LAO VOWEL SIGN AA
+0EB3;N;LAO VOWEL SIGN AM
+0EB4;N;LAO VOWEL SIGN I
+0EB5;N;LAO VOWEL SIGN II
+0EB6;N;LAO VOWEL SIGN Y
+0EB7;N;LAO VOWEL SIGN YY
+0EB8;N;LAO VOWEL SIGN U
+0EB9;N;LAO VOWEL SIGN UU
+0EBB;N;LAO VOWEL SIGN MAI KON
+0EBC;N;LAO SEMIVOWEL SIGN LO
+0EBD;N;LAO SEMIVOWEL SIGN NYO
+0EC0;N;LAO VOWEL SIGN E
+0EC1;N;LAO VOWEL SIGN EI
+0EC2;N;LAO VOWEL SIGN O
+0EC3;N;LAO VOWEL SIGN AY
+0EC4;N;LAO VOWEL SIGN AI
+0EC6;N;LAO KO LA
+0EC8;N;LAO TONE MAI EK
+0EC9;N;LAO TONE MAI THO
+0ECA;N;LAO TONE MAI TI
+0ECB;N;LAO TONE MAI CATAWA
+0ECC;N;LAO CANCELLATION MARK
+0ECD;N;LAO NIGGAHITA
+0ED0;N;LAO DIGIT ZERO
+0ED1;N;LAO DIGIT ONE
+0ED2;N;LAO DIGIT TWO
+0ED3;N;LAO DIGIT THREE
+0ED4;N;LAO DIGIT FOUR
+0ED5;N;LAO DIGIT FIVE
+0ED6;N;LAO DIGIT SIX
+0ED7;N;LAO DIGIT SEVEN
+0ED8;N;LAO DIGIT EIGHT
+0ED9;N;LAO DIGIT NINE
+0EDC;N;LAO HO NO
+0EDD;N;LAO HO MO
+0F00;N;TIBETAN SYLLABLE OM
+0F01;N;TIBETAN MARK GTER YIG MGO TRUNCATED A
+0F02;N;TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA
+0F03;N;TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA
+0F04;N;TIBETAN MARK INITIAL YIG MGO MDUN MA
+0F05;N;TIBETAN MARK CLOSING YIG MGO SGAB MA
+0F06;N;TIBETAN MARK CARET YIG MGO PHUR SHAD MA
+0F07;N;TIBETAN MARK YIG MGO TSHEG SHAD MA
+0F08;N;TIBETAN MARK SBRUL SHAD
+0F09;N;TIBETAN MARK BSKUR YIG MGO
+0F0A;N;TIBETAN MARK BKA- SHOG YIG MGO
+0F0B;N;TIBETAN MARK INTERSYLLABIC TSHEG
+0F0C;N;TIBETAN MARK DELIMITER TSHEG BSTAR
+0F0D;N;TIBETAN MARK SHAD
+0F0E;N;TIBETAN MARK NYIS SHAD
+0F0F;N;TIBETAN MARK TSHEG SHAD
+0F10;N;TIBETAN MARK NYIS TSHEG SHAD
+0F11;N;TIBETAN MARK RIN CHEN SPUNGS SHAD
+0F12;N;TIBETAN MARK RGYA GRAM SHAD
+0F13;N;TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN
+0F14;N;TIBETAN MARK GTER TSHEG
+0F15;N;TIBETAN LOGOTYPE SIGN CHAD RTAGS
+0F16;N;TIBETAN LOGOTYPE SIGN LHAG RTAGS
+0F17;N;TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
+0F18;N;TIBETAN ASTROLOGICAL SIGN -KHYUD PA
+0F19;N;TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
+0F1A;N;TIBETAN SIGN RDEL DKAR GCIG
+0F1B;N;TIBETAN SIGN RDEL DKAR GNYIS
+0F1C;N;TIBETAN SIGN RDEL DKAR GSUM
+0F1D;N;TIBETAN SIGN RDEL NAG GCIG
+0F1E;N;TIBETAN SIGN RDEL NAG GNYIS
+0F1F;N;TIBETAN SIGN RDEL DKAR RDEL NAG
+0F20;N;TIBETAN DIGIT ZERO
+0F21;N;TIBETAN DIGIT ONE
+0F22;N;TIBETAN DIGIT TWO
+0F23;N;TIBETAN DIGIT THREE
+0F24;N;TIBETAN DIGIT FOUR
+0F25;N;TIBETAN DIGIT FIVE
+0F26;N;TIBETAN DIGIT SIX
+0F27;N;TIBETAN DIGIT SEVEN
+0F28;N;TIBETAN DIGIT EIGHT
+0F29;N;TIBETAN DIGIT NINE
+0F2A;N;TIBETAN DIGIT HALF ONE
+0F2B;N;TIBETAN DIGIT HALF TWO
+0F2C;N;TIBETAN DIGIT HALF THREE
+0F2D;N;TIBETAN DIGIT HALF FOUR
+0F2E;N;TIBETAN DIGIT HALF FIVE
+0F2F;N;TIBETAN DIGIT HALF SIX
+0F30;N;TIBETAN DIGIT HALF SEVEN
+0F31;N;TIBETAN DIGIT HALF EIGHT
+0F32;N;TIBETAN DIGIT HALF NINE
+0F33;N;TIBETAN DIGIT HALF ZERO
+0F34;N;TIBETAN MARK BSDUS RTAGS
+0F35;N;TIBETAN MARK NGAS BZUNG NYI ZLA
+0F36;N;TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
+0F37;N;TIBETAN MARK NGAS BZUNG SGOR RTAGS
+0F38;N;TIBETAN MARK CHE MGO
+0F39;N;TIBETAN MARK TSA -PHRU
+0F3A;N;TIBETAN MARK GUG RTAGS GYON
+0F3B;N;TIBETAN MARK GUG RTAGS GYAS
+0F3C;N;TIBETAN MARK ANG KHANG GYON
+0F3D;N;TIBETAN MARK ANG KHANG GYAS
+0F3E;N;TIBETAN SIGN YAR TSHES
+0F3F;N;TIBETAN SIGN MAR TSHES
+0F40;N;TIBETAN LETTER KA
+0F41;N;TIBETAN LETTER KHA
+0F42;N;TIBETAN LETTER GA
+0F43;N;TIBETAN LETTER GHA
+0F44;N;TIBETAN LETTER NGA
+0F45;N;TIBETAN LETTER CA
+0F46;N;TIBETAN LETTER CHA
+0F47;N;TIBETAN LETTER JA
+0F49;N;TIBETAN LETTER NYA
+0F4A;N;TIBETAN LETTER TTA
+0F4B;N;TIBETAN LETTER TTHA
+0F4C;N;TIBETAN LETTER DDA
+0F4D;N;TIBETAN LETTER DDHA
+0F4E;N;TIBETAN LETTER NNA
+0F4F;N;TIBETAN LETTER TA
+0F50;N;TIBETAN LETTER THA
+0F51;N;TIBETAN LETTER DA
+0F52;N;TIBETAN LETTER DHA
+0F53;N;TIBETAN LETTER NA
+0F54;N;TIBETAN LETTER PA
+0F55;N;TIBETAN LETTER PHA
+0F56;N;TIBETAN LETTER BA
+0F57;N;TIBETAN LETTER BHA
+0F58;N;TIBETAN LETTER MA
+0F59;N;TIBETAN LETTER TSA
+0F5A;N;TIBETAN LETTER TSHA
+0F5B;N;TIBETAN LETTER DZA
+0F5C;N;TIBETAN LETTER DZHA
+0F5D;N;TIBETAN LETTER WA
+0F5E;N;TIBETAN LETTER ZHA
+0F5F;N;TIBETAN LETTER ZA
+0F60;N;TIBETAN LETTER -A
+0F61;N;TIBETAN LETTER YA
+0F62;N;TIBETAN LETTER RA
+0F63;N;TIBETAN LETTER LA
+0F64;N;TIBETAN LETTER SHA
+0F65;N;TIBETAN LETTER SSA
+0F66;N;TIBETAN LETTER SA
+0F67;N;TIBETAN LETTER HA
+0F68;N;TIBETAN LETTER A
+0F69;N;TIBETAN LETTER KSSA
+0F6A;N;TIBETAN LETTER FIXED-FORM RA
+0F71;N;TIBETAN VOWEL SIGN AA
+0F72;N;TIBETAN VOWEL SIGN I
+0F73;N;TIBETAN VOWEL SIGN II
+0F74;N;TIBETAN VOWEL SIGN U
+0F75;N;TIBETAN VOWEL SIGN UU
+0F76;N;TIBETAN VOWEL SIGN VOCALIC R
+0F77;N;TIBETAN VOWEL SIGN VOCALIC RR
+0F78;N;TIBETAN VOWEL SIGN VOCALIC L
+0F79;N;TIBETAN VOWEL SIGN VOCALIC LL
+0F7A;N;TIBETAN VOWEL SIGN E
+0F7B;N;TIBETAN VOWEL SIGN EE
+0F7C;N;TIBETAN VOWEL SIGN O
+0F7D;N;TIBETAN VOWEL SIGN OO
+0F7E;N;TIBETAN SIGN RJES SU NGA RO
+0F7F;N;TIBETAN SIGN RNAM BCAD
+0F80;N;TIBETAN VOWEL SIGN REVERSED I
+0F81;N;TIBETAN VOWEL SIGN REVERSED II
+0F82;N;TIBETAN SIGN NYI ZLA NAA DA
+0F83;N;TIBETAN SIGN SNA LDAN
+0F84;N;TIBETAN MARK HALANTA
+0F85;N;TIBETAN MARK PALUTA
+0F86;N;TIBETAN SIGN LCI RTAGS
+0F87;N;TIBETAN SIGN YANG RTAGS
+0F88;N;TIBETAN SIGN LCE TSA CAN
+0F89;N;TIBETAN SIGN MCHU CAN
+0F8A;N;TIBETAN SIGN GRU CAN RGYINGS
+0F8B;N;TIBETAN SIGN GRU MED RGYINGS
+0F90;N;TIBETAN SUBJOINED LETTER KA
+0F91;N;TIBETAN SUBJOINED LETTER KHA
+0F92;N;TIBETAN SUBJOINED LETTER GA
+0F93;N;TIBETAN SUBJOINED LETTER GHA
+0F94;N;TIBETAN SUBJOINED LETTER NGA
+0F95;N;TIBETAN SUBJOINED LETTER CA
+0F96;N;TIBETAN SUBJOINED LETTER CHA
+0F97;N;TIBETAN SUBJOINED LETTER JA
+0F99;N;TIBETAN SUBJOINED LETTER NYA
+0F9A;N;TIBETAN SUBJOINED LETTER TTA
+0F9B;N;TIBETAN SUBJOINED LETTER TTHA
+0F9C;N;TIBETAN SUBJOINED LETTER DDA
+0F9D;N;TIBETAN SUBJOINED LETTER DDHA
+0F9E;N;TIBETAN SUBJOINED LETTER NNA
+0F9F;N;TIBETAN SUBJOINED LETTER TA
+0FA0;N;TIBETAN SUBJOINED LETTER THA
+0FA1;N;TIBETAN SUBJOINED LETTER DA
+0FA2;N;TIBETAN SUBJOINED LETTER DHA
+0FA3;N;TIBETAN SUBJOINED LETTER NA
+0FA4;N;TIBETAN SUBJOINED LETTER PA
+0FA5;N;TIBETAN SUBJOINED LETTER PHA
+0FA6;N;TIBETAN SUBJOINED LETTER BA
+0FA7;N;TIBETAN SUBJOINED LETTER BHA
+0FA8;N;TIBETAN SUBJOINED LETTER MA
+0FA9;N;TIBETAN SUBJOINED LETTER TSA
+0FAA;N;TIBETAN SUBJOINED LETTER TSHA
+0FAB;N;TIBETAN SUBJOINED LETTER DZA
+0FAC;N;TIBETAN SUBJOINED LETTER DZHA
+0FAD;N;TIBETAN SUBJOINED LETTER WA
+0FAE;N;TIBETAN SUBJOINED LETTER ZHA
+0FAF;N;TIBETAN SUBJOINED LETTER ZA
+0FB0;N;TIBETAN SUBJOINED LETTER -A
+0FB1;N;TIBETAN SUBJOINED LETTER YA
+0FB2;N;TIBETAN SUBJOINED LETTER RA
+0FB3;N;TIBETAN SUBJOINED LETTER LA
+0FB4;N;TIBETAN SUBJOINED LETTER SHA
+0FB5;N;TIBETAN SUBJOINED LETTER SSA
+0FB6;N;TIBETAN SUBJOINED LETTER SA
+0FB7;N;TIBETAN SUBJOINED LETTER HA
+0FB8;N;TIBETAN SUBJOINED LETTER A
+0FB9;N;TIBETAN SUBJOINED LETTER KSSA
+0FBA;N;TIBETAN SUBJOINED LETTER FIXED-FORM WA
+0FBB;N;TIBETAN SUBJOINED LETTER FIXED-FORM YA
+0FBC;N;TIBETAN SUBJOINED LETTER FIXED-FORM RA
+0FBE;N;TIBETAN KU RU KHA
+0FBF;N;TIBETAN KU RU KHA BZHI MIG CAN
+0FC0;N;TIBETAN CANTILLATION SIGN HEAVY BEAT
+0FC1;N;TIBETAN CANTILLATION SIGN LIGHT BEAT
+0FC2;N;TIBETAN CANTILLATION SIGN CANG TE-U
+0FC3;N;TIBETAN CANTILLATION SIGN SBUB -CHAL
+0FC4;N;TIBETAN SYMBOL DRIL BU
+0FC5;N;TIBETAN SYMBOL RDO RJE
+0FC6;N;TIBETAN SYMBOL PADMA GDAN
+0FC7;N;TIBETAN SYMBOL RDO RJE RGYA GRAM
+0FC8;N;TIBETAN SYMBOL PHUR PA
+0FC9;N;TIBETAN SYMBOL NOR BU
+0FCA;N;TIBETAN SYMBOL NOR BU NYIS -KHYIL
+0FCB;N;TIBETAN SYMBOL NOR BU GSUM -KHYIL
+0FCC;N;TIBETAN SYMBOL NOR BU BZHI -KHYIL
+0FCF;N;TIBETAN SIGN RDEL NAG GSUM
+1000;N;MYANMAR LETTER KA
+1001;N;MYANMAR LETTER KHA
+1002;N;MYANMAR LETTER GA
+1003;N;MYANMAR LETTER GHA
+1004;N;MYANMAR LETTER NGA
+1005;N;MYANMAR LETTER CA
+1006;N;MYANMAR LETTER CHA
+1007;N;MYANMAR LETTER JA
+1008;N;MYANMAR LETTER JHA
+1009;N;MYANMAR LETTER NYA
+100A;N;MYANMAR LETTER NNYA
+100B;N;MYANMAR LETTER TTA
+100C;N;MYANMAR LETTER TTHA
+100D;N;MYANMAR LETTER DDA
+100E;N;MYANMAR LETTER DDHA
+100F;N;MYANMAR LETTER NNA
+1010;N;MYANMAR LETTER TA
+1011;N;MYANMAR LETTER THA
+1012;N;MYANMAR LETTER DA
+1013;N;MYANMAR LETTER DHA
+1014;N;MYANMAR LETTER NA
+1015;N;MYANMAR LETTER PA
+1016;N;MYANMAR LETTER PHA
+1017;N;MYANMAR LETTER BA
+1018;N;MYANMAR LETTER BHA
+1019;N;MYANMAR LETTER MA
+101A;N;MYANMAR LETTER YA
+101B;N;MYANMAR LETTER RA
+101C;N;MYANMAR LETTER LA
+101D;N;MYANMAR LETTER WA
+101E;N;MYANMAR LETTER SA
+101F;N;MYANMAR LETTER HA
+1020;N;MYANMAR LETTER LLA
+1021;N;MYANMAR LETTER A
+1023;N;MYANMAR LETTER I
+1024;N;MYANMAR LETTER II
+1025;N;MYANMAR LETTER U
+1026;N;MYANMAR LETTER UU
+1027;N;MYANMAR LETTER E
+1029;N;MYANMAR LETTER O
+102A;N;MYANMAR LETTER AU
+102C;N;MYANMAR VOWEL SIGN AA
+102D;N;MYANMAR VOWEL SIGN I
+102E;N;MYANMAR VOWEL SIGN II
+102F;N;MYANMAR VOWEL SIGN U
+1030;N;MYANMAR VOWEL SIGN UU
+1031;N;MYANMAR VOWEL SIGN E
+1032;N;MYANMAR VOWEL SIGN AI
+1036;N;MYANMAR SIGN ANUSVARA
+1037;N;MYANMAR SIGN DOT BELOW
+1038;N;MYANMAR SIGN VISARGA
+1039;N;MYANMAR SIGN VIRAMA
+1040;N;MYANMAR DIGIT ZERO
+1041;N;MYANMAR DIGIT ONE
+1042;N;MYANMAR DIGIT TWO
+1043;N;MYANMAR DIGIT THREE
+1044;N;MYANMAR DIGIT FOUR
+1045;N;MYANMAR DIGIT FIVE
+1046;N;MYANMAR DIGIT SIX
+1047;N;MYANMAR DIGIT SEVEN
+1048;N;MYANMAR DIGIT EIGHT
+1049;N;MYANMAR DIGIT NINE
+104A;N;MYANMAR SIGN LITTLE SECTION
+104B;N;MYANMAR SIGN SECTION
+104C;N;MYANMAR SYMBOL LOCATIVE
+104D;N;MYANMAR SYMBOL COMPLETED
+104E;N;MYANMAR SYMBOL AFOREMENTIONED
+104F;N;MYANMAR SYMBOL GENITIVE
+1050;N;MYANMAR LETTER SHA
+1051;N;MYANMAR LETTER SSA
+1052;N;MYANMAR LETTER VOCALIC R
+1053;N;MYANMAR LETTER VOCALIC RR
+1054;N;MYANMAR LETTER VOCALIC L
+1055;N;MYANMAR LETTER VOCALIC LL
+1056;N;MYANMAR VOWEL SIGN VOCALIC R
+1057;N;MYANMAR VOWEL SIGN VOCALIC RR
+1058;N;MYANMAR VOWEL SIGN VOCALIC L
+1059;N;MYANMAR VOWEL SIGN VOCALIC LL
+10A0;N;GEORGIAN CAPITAL LETTER AN
+10A1;N;GEORGIAN CAPITAL LETTER BAN
+10A2;N;GEORGIAN CAPITAL LETTER GAN
+10A3;N;GEORGIAN CAPITAL LETTER DON
+10A4;N;GEORGIAN CAPITAL LETTER EN
+10A5;N;GEORGIAN CAPITAL LETTER VIN
+10A6;N;GEORGIAN CAPITAL LETTER ZEN
+10A7;N;GEORGIAN CAPITAL LETTER TAN
+10A8;N;GEORGIAN CAPITAL LETTER IN
+10A9;N;GEORGIAN CAPITAL LETTER KAN
+10AA;N;GEORGIAN CAPITAL LETTER LAS
+10AB;N;GEORGIAN CAPITAL LETTER MAN
+10AC;N;GEORGIAN CAPITAL LETTER NAR
+10AD;N;GEORGIAN CAPITAL LETTER ON
+10AE;N;GEORGIAN CAPITAL LETTER PAR
+10AF;N;GEORGIAN CAPITAL LETTER ZHAR
+10B0;N;GEORGIAN CAPITAL LETTER RAE
+10B1;N;GEORGIAN CAPITAL LETTER SAN
+10B2;N;GEORGIAN CAPITAL LETTER TAR
+10B3;N;GEORGIAN CAPITAL LETTER UN
+10B4;N;GEORGIAN CAPITAL LETTER PHAR
+10B5;N;GEORGIAN CAPITAL LETTER KHAR
+10B6;N;GEORGIAN CAPITAL LETTER GHAN
+10B7;N;GEORGIAN CAPITAL LETTER QAR
+10B8;N;GEORGIAN CAPITAL LETTER SHIN
+10B9;N;GEORGIAN CAPITAL LETTER CHIN
+10BA;N;GEORGIAN CAPITAL LETTER CAN
+10BB;N;GEORGIAN CAPITAL LETTER JIL
+10BC;N;GEORGIAN CAPITAL LETTER CIL
+10BD;N;GEORGIAN CAPITAL LETTER CHAR
+10BE;N;GEORGIAN CAPITAL LETTER XAN
+10BF;N;GEORGIAN CAPITAL LETTER JHAN
+10C0;N;GEORGIAN CAPITAL LETTER HAE
+10C1;N;GEORGIAN CAPITAL LETTER HE
+10C2;N;GEORGIAN CAPITAL LETTER HIE
+10C3;N;GEORGIAN CAPITAL LETTER WE
+10C4;N;GEORGIAN CAPITAL LETTER HAR
+10C5;N;GEORGIAN CAPITAL LETTER HOE
+10D0;N;GEORGIAN LETTER AN
+10D1;N;GEORGIAN LETTER BAN
+10D2;N;GEORGIAN LETTER GAN
+10D3;N;GEORGIAN LETTER DON
+10D4;N;GEORGIAN LETTER EN
+10D5;N;GEORGIAN LETTER VIN
+10D6;N;GEORGIAN LETTER ZEN
+10D7;N;GEORGIAN LETTER TAN
+10D8;N;GEORGIAN LETTER IN
+10D9;N;GEORGIAN LETTER KAN
+10DA;N;GEORGIAN LETTER LAS
+10DB;N;GEORGIAN LETTER MAN
+10DC;N;GEORGIAN LETTER NAR
+10DD;N;GEORGIAN LETTER ON
+10DE;N;GEORGIAN LETTER PAR
+10DF;N;GEORGIAN LETTER ZHAR
+10E0;N;GEORGIAN LETTER RAE
+10E1;N;GEORGIAN LETTER SAN
+10E2;N;GEORGIAN LETTER TAR
+10E3;N;GEORGIAN LETTER UN
+10E4;N;GEORGIAN LETTER PHAR
+10E5;N;GEORGIAN LETTER KHAR
+10E6;N;GEORGIAN LETTER GHAN
+10E7;N;GEORGIAN LETTER QAR
+10E8;N;GEORGIAN LETTER SHIN
+10E9;N;GEORGIAN LETTER CHIN
+10EA;N;GEORGIAN LETTER CAN
+10EB;N;GEORGIAN LETTER JIL
+10EC;N;GEORGIAN LETTER CIL
+10ED;N;GEORGIAN LETTER CHAR
+10EE;N;GEORGIAN LETTER XAN
+10EF;N;GEORGIAN LETTER JHAN
+10F0;N;GEORGIAN LETTER HAE
+10F1;N;GEORGIAN LETTER HE
+10F2;N;GEORGIAN LETTER HIE
+10F3;N;GEORGIAN LETTER WE
+10F4;N;GEORGIAN LETTER HAR
+10F5;N;GEORGIAN LETTER HOE
+10F6;N;GEORGIAN LETTER FI
+10FB;N;GEORGIAN PARAGRAPH SEPARATOR
+1100;W;HANGUL CHOSEONG KIYEOK
+1101;W;HANGUL CHOSEONG SSANGKIYEOK
+1102;W;HANGUL CHOSEONG NIEUN
+1103;W;HANGUL CHOSEONG TIKEUT
+1104;W;HANGUL CHOSEONG SSANGTIKEUT
+1105;W;HANGUL CHOSEONG RIEUL
+1106;W;HANGUL CHOSEONG MIEUM
+1107;W;HANGUL CHOSEONG PIEUP
+1108;W;HANGUL CHOSEONG SSANGPIEUP
+1109;W;HANGUL CHOSEONG SIOS
+110A;W;HANGUL CHOSEONG SSANGSIOS
+110B;W;HANGUL CHOSEONG IEUNG
+110C;W;HANGUL CHOSEONG CIEUC
+110D;W;HANGUL CHOSEONG SSANGCIEUC
+110E;W;HANGUL CHOSEONG CHIEUCH
+110F;W;HANGUL CHOSEONG KHIEUKH
+1110;W;HANGUL CHOSEONG THIEUTH
+1111;W;HANGUL CHOSEONG PHIEUPH
+1112;W;HANGUL CHOSEONG HIEUH
+1113;W;HANGUL CHOSEONG NIEUN-KIYEOK
+1114;W;HANGUL CHOSEONG SSANGNIEUN
+1115;W;HANGUL CHOSEONG NIEUN-TIKEUT
+1116;W;HANGUL CHOSEONG NIEUN-PIEUP
+1117;W;HANGUL CHOSEONG TIKEUT-KIYEOK
+1118;W;HANGUL CHOSEONG RIEUL-NIEUN
+1119;W;HANGUL CHOSEONG SSANGRIEUL
+111A;W;HANGUL CHOSEONG RIEUL-HIEUH
+111B;W;HANGUL CHOSEONG KAPYEOUNRIEUL
+111C;W;HANGUL CHOSEONG MIEUM-PIEUP
+111D;W;HANGUL CHOSEONG KAPYEOUNMIEUM
+111E;W;HANGUL CHOSEONG PIEUP-KIYEOK
+111F;W;HANGUL CHOSEONG PIEUP-NIEUN
+1120;W;HANGUL CHOSEONG PIEUP-TIKEUT
+1121;W;HANGUL CHOSEONG PIEUP-SIOS
+1122;W;HANGUL CHOSEONG PIEUP-SIOS-KIYEOK
+1123;W;HANGUL CHOSEONG PIEUP-SIOS-TIKEUT
+1124;W;HANGUL CHOSEONG PIEUP-SIOS-PIEUP
+1125;W;HANGUL CHOSEONG PIEUP-SSANGSIOS
+1126;W;HANGUL CHOSEONG PIEUP-SIOS-CIEUC
+1127;W;HANGUL CHOSEONG PIEUP-CIEUC
+1128;W;HANGUL CHOSEONG PIEUP-CHIEUCH
+1129;W;HANGUL CHOSEONG PIEUP-THIEUTH
+112A;W;HANGUL CHOSEONG PIEUP-PHIEUPH
+112B;W;HANGUL CHOSEONG KAPYEOUNPIEUP
+112C;W;HANGUL CHOSEONG KAPYEOUNSSANGPIEUP
+112D;W;HANGUL CHOSEONG SIOS-KIYEOK
+112E;W;HANGUL CHOSEONG SIOS-NIEUN
+112F;W;HANGUL CHOSEONG SIOS-TIKEUT
+1130;W;HANGUL CHOSEONG SIOS-RIEUL
+1131;W;HANGUL CHOSEONG SIOS-MIEUM
+1132;W;HANGUL CHOSEONG SIOS-PIEUP
+1133;W;HANGUL CHOSEONG SIOS-PIEUP-KIYEOK
+1134;W;HANGUL CHOSEONG SIOS-SSANGSIOS
+1135;W;HANGUL CHOSEONG SIOS-IEUNG
+1136;W;HANGUL CHOSEONG SIOS-CIEUC
+1137;W;HANGUL CHOSEONG SIOS-CHIEUCH
+1138;W;HANGUL CHOSEONG SIOS-KHIEUKH
+1139;W;HANGUL CHOSEONG SIOS-THIEUTH
+113A;W;HANGUL CHOSEONG SIOS-PHIEUPH
+113B;W;HANGUL CHOSEONG SIOS-HIEUH
+113C;W;HANGUL CHOSEONG CHITUEUMSIOS
+113D;W;HANGUL CHOSEONG CHITUEUMSSANGSIOS
+113E;W;HANGUL CHOSEONG CEONGCHIEUMSIOS
+113F;W;HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS
+1140;W;HANGUL CHOSEONG PANSIOS
+1141;W;HANGUL CHOSEONG IEUNG-KIYEOK
+1142;W;HANGUL CHOSEONG IEUNG-TIKEUT
+1143;W;HANGUL CHOSEONG IEUNG-MIEUM
+1144;W;HANGUL CHOSEONG IEUNG-PIEUP
+1145;W;HANGUL CHOSEONG IEUNG-SIOS
+1146;W;HANGUL CHOSEONG IEUNG-PANSIOS
+1147;W;HANGUL CHOSEONG SSANGIEUNG
+1148;W;HANGUL CHOSEONG IEUNG-CIEUC
+1149;W;HANGUL CHOSEONG IEUNG-CHIEUCH
+114A;W;HANGUL CHOSEONG IEUNG-THIEUTH
+114B;W;HANGUL CHOSEONG IEUNG-PHIEUPH
+114C;W;HANGUL CHOSEONG YESIEUNG
+114D;W;HANGUL CHOSEONG CIEUC-IEUNG
+114E;W;HANGUL CHOSEONG CHITUEUMCIEUC
+114F;W;HANGUL CHOSEONG CHITUEUMSSANGCIEUC
+1150;W;HANGUL CHOSEONG CEONGCHIEUMCIEUC
+1151;W;HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC
+1152;W;HANGUL CHOSEONG CHIEUCH-KHIEUKH
+1153;W;HANGUL CHOSEONG CHIEUCH-HIEUH
+1154;W;HANGUL CHOSEONG CHITUEUMCHIEUCH
+1155;W;HANGUL CHOSEONG CEONGCHIEUMCHIEUCH
+1156;W;HANGUL CHOSEONG PHIEUPH-PIEUP
+1157;W;HANGUL CHOSEONG KAPYEOUNPHIEUPH
+1158;W;HANGUL CHOSEONG SSANGHIEUH
+1159;W;HANGUL CHOSEONG YEORINHIEUH
+115F;W;HANGUL CHOSEONG FILLER
+1160;N;HANGUL JUNGSEONG FILLER
+1161;N;HANGUL JUNGSEONG A
+1162;N;HANGUL JUNGSEONG AE
+1163;N;HANGUL JUNGSEONG YA
+1164;N;HANGUL JUNGSEONG YAE
+1165;N;HANGUL JUNGSEONG EO
+1166;N;HANGUL JUNGSEONG E
+1167;N;HANGUL JUNGSEONG YEO
+1168;N;HANGUL JUNGSEONG YE
+1169;N;HANGUL JUNGSEONG O
+116A;N;HANGUL JUNGSEONG WA
+116B;N;HANGUL JUNGSEONG WAE
+116C;N;HANGUL JUNGSEONG OE
+116D;N;HANGUL JUNGSEONG YO
+116E;N;HANGUL JUNGSEONG U
+116F;N;HANGUL JUNGSEONG WEO
+1170;N;HANGUL JUNGSEONG WE
+1171;N;HANGUL JUNGSEONG WI
+1172;N;HANGUL JUNGSEONG YU
+1173;N;HANGUL JUNGSEONG EU
+1174;N;HANGUL JUNGSEONG YI
+1175;N;HANGUL JUNGSEONG I
+1176;N;HANGUL JUNGSEONG A-O
+1177;N;HANGUL JUNGSEONG A-U
+1178;N;HANGUL JUNGSEONG YA-O
+1179;N;HANGUL JUNGSEONG YA-YO
+117A;N;HANGUL JUNGSEONG EO-O
+117B;N;HANGUL JUNGSEONG EO-U
+117C;N;HANGUL JUNGSEONG EO-EU
+117D;N;HANGUL JUNGSEONG YEO-O
+117E;N;HANGUL JUNGSEONG YEO-U
+117F;N;HANGUL JUNGSEONG O-EO
+1180;N;HANGUL JUNGSEONG O-E
+1181;N;HANGUL JUNGSEONG O-YE
+1182;N;HANGUL JUNGSEONG O-O
+1183;N;HANGUL JUNGSEONG O-U
+1184;N;HANGUL JUNGSEONG YO-YA
+1185;N;HANGUL JUNGSEONG YO-YAE
+1186;N;HANGUL JUNGSEONG YO-YEO
+1187;N;HANGUL JUNGSEONG YO-O
+1188;N;HANGUL JUNGSEONG YO-I
+1189;N;HANGUL JUNGSEONG U-A
+118A;N;HANGUL JUNGSEONG U-AE
+118B;N;HANGUL JUNGSEONG U-EO-EU
+118C;N;HANGUL JUNGSEONG U-YE
+118D;N;HANGUL JUNGSEONG U-U
+118E;N;HANGUL JUNGSEONG YU-A
+118F;N;HANGUL JUNGSEONG YU-EO
+1190;N;HANGUL JUNGSEONG YU-E
+1191;N;HANGUL JUNGSEONG YU-YEO
+1192;N;HANGUL JUNGSEONG YU-YE
+1193;N;HANGUL JUNGSEONG YU-U
+1194;N;HANGUL JUNGSEONG YU-I
+1195;N;HANGUL JUNGSEONG EU-U
+1196;N;HANGUL JUNGSEONG EU-EU
+1197;N;HANGUL JUNGSEONG YI-U
+1198;N;HANGUL JUNGSEONG I-A
+1199;N;HANGUL JUNGSEONG I-YA
+119A;N;HANGUL JUNGSEONG I-O
+119B;N;HANGUL JUNGSEONG I-U
+119C;N;HANGUL JUNGSEONG I-EU
+119D;N;HANGUL JUNGSEONG I-ARAEA
+119E;N;HANGUL JUNGSEONG ARAEA
+119F;N;HANGUL JUNGSEONG ARAEA-EO
+11A0;N;HANGUL JUNGSEONG ARAEA-U
+11A1;N;HANGUL JUNGSEONG ARAEA-I
+11A2;N;HANGUL JUNGSEONG SSANGARAEA
+11A8;N;HANGUL JONGSEONG KIYEOK
+11A9;N;HANGUL JONGSEONG SSANGKIYEOK
+11AA;N;HANGUL JONGSEONG KIYEOK-SIOS
+11AB;N;HANGUL JONGSEONG NIEUN
+11AC;N;HANGUL JONGSEONG NIEUN-CIEUC
+11AD;N;HANGUL JONGSEONG NIEUN-HIEUH
+11AE;N;HANGUL JONGSEONG TIKEUT
+11AF;N;HANGUL JONGSEONG RIEUL
+11B0;N;HANGUL JONGSEONG RIEUL-KIYEOK
+11B1;N;HANGUL JONGSEONG RIEUL-MIEUM
+11B2;N;HANGUL JONGSEONG RIEUL-PIEUP
+11B3;N;HANGUL JONGSEONG RIEUL-SIOS
+11B4;N;HANGUL JONGSEONG RIEUL-THIEUTH
+11B5;N;HANGUL JONGSEONG RIEUL-PHIEUPH
+11B6;N;HANGUL JONGSEONG RIEUL-HIEUH
+11B7;N;HANGUL JONGSEONG MIEUM
+11B8;N;HANGUL JONGSEONG PIEUP
+11B9;N;HANGUL JONGSEONG PIEUP-SIOS
+11BA;N;HANGUL JONGSEONG SIOS
+11BB;N;HANGUL JONGSEONG SSANGSIOS
+11BC;N;HANGUL JONGSEONG IEUNG
+11BD;N;HANGUL JONGSEONG CIEUC
+11BE;N;HANGUL JONGSEONG CHIEUCH
+11BF;N;HANGUL JONGSEONG KHIEUKH
+11C0;N;HANGUL JONGSEONG THIEUTH
+11C1;N;HANGUL JONGSEONG PHIEUPH
+11C2;N;HANGUL JONGSEONG HIEUH
+11C3;N;HANGUL JONGSEONG KIYEOK-RIEUL
+11C4;N;HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK
+11C5;N;HANGUL JONGSEONG NIEUN-KIYEOK
+11C6;N;HANGUL JONGSEONG NIEUN-TIKEUT
+11C7;N;HANGUL JONGSEONG NIEUN-SIOS
+11C8;N;HANGUL JONGSEONG NIEUN-PANSIOS
+11C9;N;HANGUL JONGSEONG NIEUN-THIEUTH
+11CA;N;HANGUL JONGSEONG TIKEUT-KIYEOK
+11CB;N;HANGUL JONGSEONG TIKEUT-RIEUL
+11CC;N;HANGUL JONGSEONG RIEUL-KIYEOK-SIOS
+11CD;N;HANGUL JONGSEONG RIEUL-NIEUN
+11CE;N;HANGUL JONGSEONG RIEUL-TIKEUT
+11CF;N;HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH
+11D0;N;HANGUL JONGSEONG SSANGRIEUL
+11D1;N;HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK
+11D2;N;HANGUL JONGSEONG RIEUL-MIEUM-SIOS
+11D3;N;HANGUL JONGSEONG RIEUL-PIEUP-SIOS
+11D4;N;HANGUL JONGSEONG RIEUL-PIEUP-HIEUH
+11D5;N;HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP
+11D6;N;HANGUL JONGSEONG RIEUL-SSANGSIOS
+11D7;N;HANGUL JONGSEONG RIEUL-PANSIOS
+11D8;N;HANGUL JONGSEONG RIEUL-KHIEUKH
+11D9;N;HANGUL JONGSEONG RIEUL-YEORINHIEUH
+11DA;N;HANGUL JONGSEONG MIEUM-KIYEOK
+11DB;N;HANGUL JONGSEONG MIEUM-RIEUL
+11DC;N;HANGUL JONGSEONG MIEUM-PIEUP
+11DD;N;HANGUL JONGSEONG MIEUM-SIOS
+11DE;N;HANGUL JONGSEONG MIEUM-SSANGSIOS
+11DF;N;HANGUL JONGSEONG MIEUM-PANSIOS
+11E0;N;HANGUL JONGSEONG MIEUM-CHIEUCH
+11E1;N;HANGUL JONGSEONG MIEUM-HIEUH
+11E2;N;HANGUL JONGSEONG KAPYEOUNMIEUM
+11E3;N;HANGUL JONGSEONG PIEUP-RIEUL
+11E4;N;HANGUL JONGSEONG PIEUP-PHIEUPH
+11E5;N;HANGUL JONGSEONG PIEUP-HIEUH
+11E6;N;HANGUL JONGSEONG KAPYEOUNPIEUP
+11E7;N;HANGUL JONGSEONG SIOS-KIYEOK
+11E8;N;HANGUL JONGSEONG SIOS-TIKEUT
+11E9;N;HANGUL JONGSEONG SIOS-RIEUL
+11EA;N;HANGUL JONGSEONG SIOS-PIEUP
+11EB;N;HANGUL JONGSEONG PANSIOS
+11EC;N;HANGUL JONGSEONG IEUNG-KIYEOK
+11ED;N;HANGUL JONGSEONG IEUNG-SSANGKIYEOK
+11EE;N;HANGUL JONGSEONG SSANGIEUNG
+11EF;N;HANGUL JONGSEONG IEUNG-KHIEUKH
+11F0;N;HANGUL JONGSEONG YESIEUNG
+11F1;N;HANGUL JONGSEONG YESIEUNG-SIOS
+11F2;N;HANGUL JONGSEONG YESIEUNG-PANSIOS
+11F3;N;HANGUL JONGSEONG PHIEUPH-PIEUP
+11F4;N;HANGUL JONGSEONG KAPYEOUNPHIEUPH
+11F5;N;HANGUL JONGSEONG HIEUH-NIEUN
+11F6;N;HANGUL JONGSEONG HIEUH-RIEUL
+11F7;N;HANGUL JONGSEONG HIEUH-MIEUM
+11F8;N;HANGUL JONGSEONG HIEUH-PIEUP
+11F9;N;HANGUL JONGSEONG YEORINHIEUH
+1200;N;ETHIOPIC SYLLABLE HA
+1201;N;ETHIOPIC SYLLABLE HU
+1202;N;ETHIOPIC SYLLABLE HI
+1203;N;ETHIOPIC SYLLABLE HAA
+1204;N;ETHIOPIC SYLLABLE HEE
+1205;N;ETHIOPIC SYLLABLE HE
+1206;N;ETHIOPIC SYLLABLE HO
+1208;N;ETHIOPIC SYLLABLE LA
+1209;N;ETHIOPIC SYLLABLE LU
+120A;N;ETHIOPIC SYLLABLE LI
+120B;N;ETHIOPIC SYLLABLE LAA
+120C;N;ETHIOPIC SYLLABLE LEE
+120D;N;ETHIOPIC SYLLABLE LE
+120E;N;ETHIOPIC SYLLABLE LO
+120F;N;ETHIOPIC SYLLABLE LWA
+1210;N;ETHIOPIC SYLLABLE HHA
+1211;N;ETHIOPIC SYLLABLE HHU
+1212;N;ETHIOPIC SYLLABLE HHI
+1213;N;ETHIOPIC SYLLABLE HHAA
+1214;N;ETHIOPIC SYLLABLE HHEE
+1215;N;ETHIOPIC SYLLABLE HHE
+1216;N;ETHIOPIC SYLLABLE HHO
+1217;N;ETHIOPIC SYLLABLE HHWA
+1218;N;ETHIOPIC SYLLABLE MA
+1219;N;ETHIOPIC SYLLABLE MU
+121A;N;ETHIOPIC SYLLABLE MI
+121B;N;ETHIOPIC SYLLABLE MAA
+121C;N;ETHIOPIC SYLLABLE MEE
+121D;N;ETHIOPIC SYLLABLE ME
+121E;N;ETHIOPIC SYLLABLE MO
+121F;N;ETHIOPIC SYLLABLE MWA
+1220;N;ETHIOPIC SYLLABLE SZA
+1221;N;ETHIOPIC SYLLABLE SZU
+1222;N;ETHIOPIC SYLLABLE SZI
+1223;N;ETHIOPIC SYLLABLE SZAA
+1224;N;ETHIOPIC SYLLABLE SZEE
+1225;N;ETHIOPIC SYLLABLE SZE
+1226;N;ETHIOPIC SYLLABLE SZO
+1227;N;ETHIOPIC SYLLABLE SZWA
+1228;N;ETHIOPIC SYLLABLE RA
+1229;N;ETHIOPIC SYLLABLE RU
+122A;N;ETHIOPIC SYLLABLE RI
+122B;N;ETHIOPIC SYLLABLE RAA
+122C;N;ETHIOPIC SYLLABLE REE
+122D;N;ETHIOPIC SYLLABLE RE
+122E;N;ETHIOPIC SYLLABLE RO
+122F;N;ETHIOPIC SYLLABLE RWA
+1230;N;ETHIOPIC SYLLABLE SA
+1231;N;ETHIOPIC SYLLABLE SU
+1232;N;ETHIOPIC SYLLABLE SI
+1233;N;ETHIOPIC SYLLABLE SAA
+1234;N;ETHIOPIC SYLLABLE SEE
+1235;N;ETHIOPIC SYLLABLE SE
+1236;N;ETHIOPIC SYLLABLE SO
+1237;N;ETHIOPIC SYLLABLE SWA
+1238;N;ETHIOPIC SYLLABLE SHA
+1239;N;ETHIOPIC SYLLABLE SHU
+123A;N;ETHIOPIC SYLLABLE SHI
+123B;N;ETHIOPIC SYLLABLE SHAA
+123C;N;ETHIOPIC SYLLABLE SHEE
+123D;N;ETHIOPIC SYLLABLE SHE
+123E;N;ETHIOPIC SYLLABLE SHO
+123F;N;ETHIOPIC SYLLABLE SHWA
+1240;N;ETHIOPIC SYLLABLE QA
+1241;N;ETHIOPIC SYLLABLE QU
+1242;N;ETHIOPIC SYLLABLE QI
+1243;N;ETHIOPIC SYLLABLE QAA
+1244;N;ETHIOPIC SYLLABLE QEE
+1245;N;ETHIOPIC SYLLABLE QE
+1246;N;ETHIOPIC SYLLABLE QO
+1248;N;ETHIOPIC SYLLABLE QWA
+124A;N;ETHIOPIC SYLLABLE QWI
+124B;N;ETHIOPIC SYLLABLE QWAA
+124C;N;ETHIOPIC SYLLABLE QWEE
+124D;N;ETHIOPIC SYLLABLE QWE
+1250;N;ETHIOPIC SYLLABLE QHA
+1251;N;ETHIOPIC SYLLABLE QHU
+1252;N;ETHIOPIC SYLLABLE QHI
+1253;N;ETHIOPIC SYLLABLE QHAA
+1254;N;ETHIOPIC SYLLABLE QHEE
+1255;N;ETHIOPIC SYLLABLE QHE
+1256;N;ETHIOPIC SYLLABLE QHO
+1258;N;ETHIOPIC SYLLABLE QHWA
+125A;N;ETHIOPIC SYLLABLE QHWI
+125B;N;ETHIOPIC SYLLABLE QHWAA
+125C;N;ETHIOPIC SYLLABLE QHWEE
+125D;N;ETHIOPIC SYLLABLE QHWE
+1260;N;ETHIOPIC SYLLABLE BA
+1261;N;ETHIOPIC SYLLABLE BU
+1262;N;ETHIOPIC SYLLABLE BI
+1263;N;ETHIOPIC SYLLABLE BAA
+1264;N;ETHIOPIC SYLLABLE BEE
+1265;N;ETHIOPIC SYLLABLE BE
+1266;N;ETHIOPIC SYLLABLE BO
+1267;N;ETHIOPIC SYLLABLE BWA
+1268;N;ETHIOPIC SYLLABLE VA
+1269;N;ETHIOPIC SYLLABLE VU
+126A;N;ETHIOPIC SYLLABLE VI
+126B;N;ETHIOPIC SYLLABLE VAA
+126C;N;ETHIOPIC SYLLABLE VEE
+126D;N;ETHIOPIC SYLLABLE VE
+126E;N;ETHIOPIC SYLLABLE VO
+126F;N;ETHIOPIC SYLLABLE VWA
+1270;N;ETHIOPIC SYLLABLE TA
+1271;N;ETHIOPIC SYLLABLE TU
+1272;N;ETHIOPIC SYLLABLE TI
+1273;N;ETHIOPIC SYLLABLE TAA
+1274;N;ETHIOPIC SYLLABLE TEE
+1275;N;ETHIOPIC SYLLABLE TE
+1276;N;ETHIOPIC SYLLABLE TO
+1277;N;ETHIOPIC SYLLABLE TWA
+1278;N;ETHIOPIC SYLLABLE CA
+1279;N;ETHIOPIC SYLLABLE CU
+127A;N;ETHIOPIC SYLLABLE CI
+127B;N;ETHIOPIC SYLLABLE CAA
+127C;N;ETHIOPIC SYLLABLE CEE
+127D;N;ETHIOPIC SYLLABLE CE
+127E;N;ETHIOPIC SYLLABLE CO
+127F;N;ETHIOPIC SYLLABLE CWA
+1280;N;ETHIOPIC SYLLABLE XA
+1281;N;ETHIOPIC SYLLABLE XU
+1282;N;ETHIOPIC SYLLABLE XI
+1283;N;ETHIOPIC SYLLABLE XAA
+1284;N;ETHIOPIC SYLLABLE XEE
+1285;N;ETHIOPIC SYLLABLE XE
+1286;N;ETHIOPIC SYLLABLE XO
+1288;N;ETHIOPIC SYLLABLE XWA
+128A;N;ETHIOPIC SYLLABLE XWI
+128B;N;ETHIOPIC SYLLABLE XWAA
+128C;N;ETHIOPIC SYLLABLE XWEE
+128D;N;ETHIOPIC SYLLABLE XWE
+1290;N;ETHIOPIC SYLLABLE NA
+1291;N;ETHIOPIC SYLLABLE NU
+1292;N;ETHIOPIC SYLLABLE NI
+1293;N;ETHIOPIC SYLLABLE NAA
+1294;N;ETHIOPIC SYLLABLE NEE
+1295;N;ETHIOPIC SYLLABLE NE
+1296;N;ETHIOPIC SYLLABLE NO
+1297;N;ETHIOPIC SYLLABLE NWA
+1298;N;ETHIOPIC SYLLABLE NYA
+1299;N;ETHIOPIC SYLLABLE NYU
+129A;N;ETHIOPIC SYLLABLE NYI
+129B;N;ETHIOPIC SYLLABLE NYAA
+129C;N;ETHIOPIC SYLLABLE NYEE
+129D;N;ETHIOPIC SYLLABLE NYE
+129E;N;ETHIOPIC SYLLABLE NYO
+129F;N;ETHIOPIC SYLLABLE NYWA
+12A0;N;ETHIOPIC SYLLABLE GLOTTAL A
+12A1;N;ETHIOPIC SYLLABLE GLOTTAL U
+12A2;N;ETHIOPIC SYLLABLE GLOTTAL I
+12A3;N;ETHIOPIC SYLLABLE GLOTTAL AA
+12A4;N;ETHIOPIC SYLLABLE GLOTTAL EE
+12A5;N;ETHIOPIC SYLLABLE GLOTTAL E
+12A6;N;ETHIOPIC SYLLABLE GLOTTAL O
+12A7;N;ETHIOPIC SYLLABLE GLOTTAL WA
+12A8;N;ETHIOPIC SYLLABLE KA
+12A9;N;ETHIOPIC SYLLABLE KU
+12AA;N;ETHIOPIC SYLLABLE KI
+12AB;N;ETHIOPIC SYLLABLE KAA
+12AC;N;ETHIOPIC SYLLABLE KEE
+12AD;N;ETHIOPIC SYLLABLE KE
+12AE;N;ETHIOPIC SYLLABLE KO
+12B0;N;ETHIOPIC SYLLABLE KWA
+12B2;N;ETHIOPIC SYLLABLE KWI
+12B3;N;ETHIOPIC SYLLABLE KWAA
+12B4;N;ETHIOPIC SYLLABLE KWEE
+12B5;N;ETHIOPIC SYLLABLE KWE
+12B8;N;ETHIOPIC SYLLABLE KXA
+12B9;N;ETHIOPIC SYLLABLE KXU
+12BA;N;ETHIOPIC SYLLABLE KXI
+12BB;N;ETHIOPIC SYLLABLE KXAA
+12BC;N;ETHIOPIC SYLLABLE KXEE
+12BD;N;ETHIOPIC SYLLABLE KXE
+12BE;N;ETHIOPIC SYLLABLE KXO
+12C0;N;ETHIOPIC SYLLABLE KXWA
+12C2;N;ETHIOPIC SYLLABLE KXWI
+12C3;N;ETHIOPIC SYLLABLE KXWAA
+12C4;N;ETHIOPIC SYLLABLE KXWEE
+12C5;N;ETHIOPIC SYLLABLE KXWE
+12C8;N;ETHIOPIC SYLLABLE WA
+12C9;N;ETHIOPIC SYLLABLE WU
+12CA;N;ETHIOPIC SYLLABLE WI
+12CB;N;ETHIOPIC SYLLABLE WAA
+12CC;N;ETHIOPIC SYLLABLE WEE
+12CD;N;ETHIOPIC SYLLABLE WE
+12CE;N;ETHIOPIC SYLLABLE WO
+12D0;N;ETHIOPIC SYLLABLE PHARYNGEAL A
+12D1;N;ETHIOPIC SYLLABLE PHARYNGEAL U
+12D2;N;ETHIOPIC SYLLABLE PHARYNGEAL I
+12D3;N;ETHIOPIC SYLLABLE PHARYNGEAL AA
+12D4;N;ETHIOPIC SYLLABLE PHARYNGEAL EE
+12D5;N;ETHIOPIC SYLLABLE PHARYNGEAL E
+12D6;N;ETHIOPIC SYLLABLE PHARYNGEAL O
+12D8;N;ETHIOPIC SYLLABLE ZA
+12D9;N;ETHIOPIC SYLLABLE ZU
+12DA;N;ETHIOPIC SYLLABLE ZI
+12DB;N;ETHIOPIC SYLLABLE ZAA
+12DC;N;ETHIOPIC SYLLABLE ZEE
+12DD;N;ETHIOPIC SYLLABLE ZE
+12DE;N;ETHIOPIC SYLLABLE ZO
+12DF;N;ETHIOPIC SYLLABLE ZWA
+12E0;N;ETHIOPIC SYLLABLE ZHA
+12E1;N;ETHIOPIC SYLLABLE ZHU
+12E2;N;ETHIOPIC SYLLABLE ZHI
+12E3;N;ETHIOPIC SYLLABLE ZHAA
+12E4;N;ETHIOPIC SYLLABLE ZHEE
+12E5;N;ETHIOPIC SYLLABLE ZHE
+12E6;N;ETHIOPIC SYLLABLE ZHO
+12E7;N;ETHIOPIC SYLLABLE ZHWA
+12E8;N;ETHIOPIC SYLLABLE YA
+12E9;N;ETHIOPIC SYLLABLE YU
+12EA;N;ETHIOPIC SYLLABLE YI
+12EB;N;ETHIOPIC SYLLABLE YAA
+12EC;N;ETHIOPIC SYLLABLE YEE
+12ED;N;ETHIOPIC SYLLABLE YE
+12EE;N;ETHIOPIC SYLLABLE YO
+12F0;N;ETHIOPIC SYLLABLE DA
+12F1;N;ETHIOPIC SYLLABLE DU
+12F2;N;ETHIOPIC SYLLABLE DI
+12F3;N;ETHIOPIC SYLLABLE DAA
+12F4;N;ETHIOPIC SYLLABLE DEE
+12F5;N;ETHIOPIC SYLLABLE DE
+12F6;N;ETHIOPIC SYLLABLE DO
+12F7;N;ETHIOPIC SYLLABLE DWA
+12F8;N;ETHIOPIC SYLLABLE DDA
+12F9;N;ETHIOPIC SYLLABLE DDU
+12FA;N;ETHIOPIC SYLLABLE DDI
+12FB;N;ETHIOPIC SYLLABLE DDAA
+12FC;N;ETHIOPIC SYLLABLE DDEE
+12FD;N;ETHIOPIC SYLLABLE DDE
+12FE;N;ETHIOPIC SYLLABLE DDO
+12FF;N;ETHIOPIC SYLLABLE DDWA
+1300;N;ETHIOPIC SYLLABLE JA
+1301;N;ETHIOPIC SYLLABLE JU
+1302;N;ETHIOPIC SYLLABLE JI
+1303;N;ETHIOPIC SYLLABLE JAA
+1304;N;ETHIOPIC SYLLABLE JEE
+1305;N;ETHIOPIC SYLLABLE JE
+1306;N;ETHIOPIC SYLLABLE JO
+1307;N;ETHIOPIC SYLLABLE JWA
+1308;N;ETHIOPIC SYLLABLE GA
+1309;N;ETHIOPIC SYLLABLE GU
+130A;N;ETHIOPIC SYLLABLE GI
+130B;N;ETHIOPIC SYLLABLE GAA
+130C;N;ETHIOPIC SYLLABLE GEE
+130D;N;ETHIOPIC SYLLABLE GE
+130E;N;ETHIOPIC SYLLABLE GO
+1310;N;ETHIOPIC SYLLABLE GWA
+1312;N;ETHIOPIC SYLLABLE GWI
+1313;N;ETHIOPIC SYLLABLE GWAA
+1314;N;ETHIOPIC SYLLABLE GWEE
+1315;N;ETHIOPIC SYLLABLE GWE
+1318;N;ETHIOPIC SYLLABLE GGA
+1319;N;ETHIOPIC SYLLABLE GGU
+131A;N;ETHIOPIC SYLLABLE GGI
+131B;N;ETHIOPIC SYLLABLE GGAA
+131C;N;ETHIOPIC SYLLABLE GGEE
+131D;N;ETHIOPIC SYLLABLE GGE
+131E;N;ETHIOPIC SYLLABLE GGO
+1320;N;ETHIOPIC SYLLABLE THA
+1321;N;ETHIOPIC SYLLABLE THU
+1322;N;ETHIOPIC SYLLABLE THI
+1323;N;ETHIOPIC SYLLABLE THAA
+1324;N;ETHIOPIC SYLLABLE THEE
+1325;N;ETHIOPIC SYLLABLE THE
+1326;N;ETHIOPIC SYLLABLE THO
+1327;N;ETHIOPIC SYLLABLE THWA
+1328;N;ETHIOPIC SYLLABLE CHA
+1329;N;ETHIOPIC SYLLABLE CHU
+132A;N;ETHIOPIC SYLLABLE CHI
+132B;N;ETHIOPIC SYLLABLE CHAA
+132C;N;ETHIOPIC SYLLABLE CHEE
+132D;N;ETHIOPIC SYLLABLE CHE
+132E;N;ETHIOPIC SYLLABLE CHO
+132F;N;ETHIOPIC SYLLABLE CHWA
+1330;N;ETHIOPIC SYLLABLE PHA
+1331;N;ETHIOPIC SYLLABLE PHU
+1332;N;ETHIOPIC SYLLABLE PHI
+1333;N;ETHIOPIC SYLLABLE PHAA
+1334;N;ETHIOPIC SYLLABLE PHEE
+1335;N;ETHIOPIC SYLLABLE PHE
+1336;N;ETHIOPIC SYLLABLE PHO
+1337;N;ETHIOPIC SYLLABLE PHWA
+1338;N;ETHIOPIC SYLLABLE TSA
+1339;N;ETHIOPIC SYLLABLE TSU
+133A;N;ETHIOPIC SYLLABLE TSI
+133B;N;ETHIOPIC SYLLABLE TSAA
+133C;N;ETHIOPIC SYLLABLE TSEE
+133D;N;ETHIOPIC SYLLABLE TSE
+133E;N;ETHIOPIC SYLLABLE TSO
+133F;N;ETHIOPIC SYLLABLE TSWA
+1340;N;ETHIOPIC SYLLABLE TZA
+1341;N;ETHIOPIC SYLLABLE TZU
+1342;N;ETHIOPIC SYLLABLE TZI
+1343;N;ETHIOPIC SYLLABLE TZAA
+1344;N;ETHIOPIC SYLLABLE TZEE
+1345;N;ETHIOPIC SYLLABLE TZE
+1346;N;ETHIOPIC SYLLABLE TZO
+1348;N;ETHIOPIC SYLLABLE FA
+1349;N;ETHIOPIC SYLLABLE FU
+134A;N;ETHIOPIC SYLLABLE FI
+134B;N;ETHIOPIC SYLLABLE FAA
+134C;N;ETHIOPIC SYLLABLE FEE
+134D;N;ETHIOPIC SYLLABLE FE
+134E;N;ETHIOPIC SYLLABLE FO
+134F;N;ETHIOPIC SYLLABLE FWA
+1350;N;ETHIOPIC SYLLABLE PA
+1351;N;ETHIOPIC SYLLABLE PU
+1352;N;ETHIOPIC SYLLABLE PI
+1353;N;ETHIOPIC SYLLABLE PAA
+1354;N;ETHIOPIC SYLLABLE PEE
+1355;N;ETHIOPIC SYLLABLE PE
+1356;N;ETHIOPIC SYLLABLE PO
+1357;N;ETHIOPIC SYLLABLE PWA
+1358;N;ETHIOPIC SYLLABLE RYA
+1359;N;ETHIOPIC SYLLABLE MYA
+135A;N;ETHIOPIC SYLLABLE FYA
+1361;N;ETHIOPIC WORDSPACE
+1362;N;ETHIOPIC FULL STOP
+1363;N;ETHIOPIC COMMA
+1364;N;ETHIOPIC SEMICOLON
+1365;N;ETHIOPIC COLON
+1366;N;ETHIOPIC PREFACE COLON
+1367;N;ETHIOPIC QUESTION MARK
+1368;N;ETHIOPIC PARAGRAPH SEPARATOR
+1369;N;ETHIOPIC DIGIT ONE
+136A;N;ETHIOPIC DIGIT TWO
+136B;N;ETHIOPIC DIGIT THREE
+136C;N;ETHIOPIC DIGIT FOUR
+136D;N;ETHIOPIC DIGIT FIVE
+136E;N;ETHIOPIC DIGIT SIX
+136F;N;ETHIOPIC DIGIT SEVEN
+1370;N;ETHIOPIC DIGIT EIGHT
+1371;N;ETHIOPIC DIGIT NINE
+1372;N;ETHIOPIC NUMBER TEN
+1373;N;ETHIOPIC NUMBER TWENTY
+1374;N;ETHIOPIC NUMBER THIRTY
+1375;N;ETHIOPIC NUMBER FORTY
+1376;N;ETHIOPIC NUMBER FIFTY
+1377;N;ETHIOPIC NUMBER SIXTY
+1378;N;ETHIOPIC NUMBER SEVENTY
+1379;N;ETHIOPIC NUMBER EIGHTY
+137A;N;ETHIOPIC NUMBER NINETY
+137B;N;ETHIOPIC NUMBER HUNDRED
+137C;N;ETHIOPIC NUMBER TEN THOUSAND
+13A0;N;CHEROKEE LETTER A
+13A1;N;CHEROKEE LETTER E
+13A2;N;CHEROKEE LETTER I
+13A3;N;CHEROKEE LETTER O
+13A4;N;CHEROKEE LETTER U
+13A5;N;CHEROKEE LETTER V
+13A6;N;CHEROKEE LETTER GA
+13A7;N;CHEROKEE LETTER KA
+13A8;N;CHEROKEE LETTER GE
+13A9;N;CHEROKEE LETTER GI
+13AA;N;CHEROKEE LETTER GO
+13AB;N;CHEROKEE LETTER GU
+13AC;N;CHEROKEE LETTER GV
+13AD;N;CHEROKEE LETTER HA
+13AE;N;CHEROKEE LETTER HE
+13AF;N;CHEROKEE LETTER HI
+13B0;N;CHEROKEE LETTER HO
+13B1;N;CHEROKEE LETTER HU
+13B2;N;CHEROKEE LETTER HV
+13B3;N;CHEROKEE LETTER LA
+13B4;N;CHEROKEE LETTER LE
+13B5;N;CHEROKEE LETTER LI
+13B6;N;CHEROKEE LETTER LO
+13B7;N;CHEROKEE LETTER LU
+13B8;N;CHEROKEE LETTER LV
+13B9;N;CHEROKEE LETTER MA
+13BA;N;CHEROKEE LETTER ME
+13BB;N;CHEROKEE LETTER MI
+13BC;N;CHEROKEE LETTER MO
+13BD;N;CHEROKEE LETTER MU
+13BE;N;CHEROKEE LETTER NA
+13BF;N;CHEROKEE LETTER HNA
+13C0;N;CHEROKEE LETTER NAH
+13C1;N;CHEROKEE LETTER NE
+13C2;N;CHEROKEE LETTER NI
+13C3;N;CHEROKEE LETTER NO
+13C4;N;CHEROKEE LETTER NU
+13C5;N;CHEROKEE LETTER NV
+13C6;N;CHEROKEE LETTER QUA
+13C7;N;CHEROKEE LETTER QUE
+13C8;N;CHEROKEE LETTER QUI
+13C9;N;CHEROKEE LETTER QUO
+13CA;N;CHEROKEE LETTER QUU
+13CB;N;CHEROKEE LETTER QUV
+13CC;N;CHEROKEE LETTER SA
+13CD;N;CHEROKEE LETTER S
+13CE;N;CHEROKEE LETTER SE
+13CF;N;CHEROKEE LETTER SI
+13D0;N;CHEROKEE LETTER SO
+13D1;N;CHEROKEE LETTER SU
+13D2;N;CHEROKEE LETTER SV
+13D3;N;CHEROKEE LETTER DA
+13D4;N;CHEROKEE LETTER TA
+13D5;N;CHEROKEE LETTER DE
+13D6;N;CHEROKEE LETTER TE
+13D7;N;CHEROKEE LETTER DI
+13D8;N;CHEROKEE LETTER TI
+13D9;N;CHEROKEE LETTER DO
+13DA;N;CHEROKEE LETTER DU
+13DB;N;CHEROKEE LETTER DV
+13DC;N;CHEROKEE LETTER DLA
+13DD;N;CHEROKEE LETTER TLA
+13DE;N;CHEROKEE LETTER TLE
+13DF;N;CHEROKEE LETTER TLI
+13E0;N;CHEROKEE LETTER TLO
+13E1;N;CHEROKEE LETTER TLU
+13E2;N;CHEROKEE LETTER TLV
+13E3;N;CHEROKEE LETTER TSA
+13E4;N;CHEROKEE LETTER TSE
+13E5;N;CHEROKEE LETTER TSI
+13E6;N;CHEROKEE LETTER TSO
+13E7;N;CHEROKEE LETTER TSU
+13E8;N;CHEROKEE LETTER TSV
+13E9;N;CHEROKEE LETTER WA
+13EA;N;CHEROKEE LETTER WE
+13EB;N;CHEROKEE LETTER WI
+13EC;N;CHEROKEE LETTER WO
+13ED;N;CHEROKEE LETTER WU
+13EE;N;CHEROKEE LETTER WV
+13EF;N;CHEROKEE LETTER YA
+13F0;N;CHEROKEE LETTER YE
+13F1;N;CHEROKEE LETTER YI
+13F2;N;CHEROKEE LETTER YO
+13F3;N;CHEROKEE LETTER YU
+13F4;N;CHEROKEE LETTER YV
+1401;N;CANADIAN SYLLABICS E
+1402;N;CANADIAN SYLLABICS AAI
+1403;N;CANADIAN SYLLABICS I
+1404;N;CANADIAN SYLLABICS II
+1405;N;CANADIAN SYLLABICS O
+1406;N;CANADIAN SYLLABICS OO
+1407;N;CANADIAN SYLLABICS Y-CREE OO
+1408;N;CANADIAN SYLLABICS CARRIER EE
+1409;N;CANADIAN SYLLABICS CARRIER I
+140A;N;CANADIAN SYLLABICS A
+140B;N;CANADIAN SYLLABICS AA
+140C;N;CANADIAN SYLLABICS WE
+140D;N;CANADIAN SYLLABICS WEST-CREE WE
+140E;N;CANADIAN SYLLABICS WI
+140F;N;CANADIAN SYLLABICS WEST-CREE WI
+1410;N;CANADIAN SYLLABICS WII
+1411;N;CANADIAN SYLLABICS WEST-CREE WII
+1412;N;CANADIAN SYLLABICS WO
+1413;N;CANADIAN SYLLABICS WEST-CREE WO
+1414;N;CANADIAN SYLLABICS WOO
+1415;N;CANADIAN SYLLABICS WEST-CREE WOO
+1416;N;CANADIAN SYLLABICS NASKAPI WOO
+1417;N;CANADIAN SYLLABICS WA
+1418;N;CANADIAN SYLLABICS WEST-CREE WA
+1419;N;CANADIAN SYLLABICS WAA
+141A;N;CANADIAN SYLLABICS WEST-CREE WAA
+141B;N;CANADIAN SYLLABICS NASKAPI WAA
+141C;N;CANADIAN SYLLABICS AI
+141D;N;CANADIAN SYLLABICS Y-CREE W
+141E;N;CANADIAN SYLLABICS GLOTTAL STOP
+141F;N;CANADIAN SYLLABICS FINAL ACUTE
+1420;N;CANADIAN SYLLABICS FINAL GRAVE
+1421;N;CANADIAN SYLLABICS FINAL BOTTOM HALF RING
+1422;N;CANADIAN SYLLABICS FINAL TOP HALF RING
+1423;N;CANADIAN SYLLABICS FINAL RIGHT HALF RING
+1424;N;CANADIAN SYLLABICS FINAL RING
+1425;N;CANADIAN SYLLABICS FINAL DOUBLE ACUTE
+1426;N;CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES
+1427;N;CANADIAN SYLLABICS FINAL MIDDLE DOT
+1428;N;CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE
+1429;N;CANADIAN SYLLABICS FINAL PLUS
+142A;N;CANADIAN SYLLABICS FINAL DOWN TACK
+142B;N;CANADIAN SYLLABICS EN
+142C;N;CANADIAN SYLLABICS IN
+142D;N;CANADIAN SYLLABICS ON
+142E;N;CANADIAN SYLLABICS AN
+142F;N;CANADIAN SYLLABICS PE
+1430;N;CANADIAN SYLLABICS PAAI
+1431;N;CANADIAN SYLLABICS PI
+1432;N;CANADIAN SYLLABICS PII
+1433;N;CANADIAN SYLLABICS PO
+1434;N;CANADIAN SYLLABICS POO
+1435;N;CANADIAN SYLLABICS Y-CREE POO
+1436;N;CANADIAN SYLLABICS CARRIER HEE
+1437;N;CANADIAN SYLLABICS CARRIER HI
+1438;N;CANADIAN SYLLABICS PA
+1439;N;CANADIAN SYLLABICS PAA
+143A;N;CANADIAN SYLLABICS PWE
+143B;N;CANADIAN SYLLABICS WEST-CREE PWE
+143C;N;CANADIAN SYLLABICS PWI
+143D;N;CANADIAN SYLLABICS WEST-CREE PWI
+143E;N;CANADIAN SYLLABICS PWII
+143F;N;CANADIAN SYLLABICS WEST-CREE PWII
+1440;N;CANADIAN SYLLABICS PWO
+1441;N;CANADIAN SYLLABICS WEST-CREE PWO
+1442;N;CANADIAN SYLLABICS PWOO
+1443;N;CANADIAN SYLLABICS WEST-CREE PWOO
+1444;N;CANADIAN SYLLABICS PWA
+1445;N;CANADIAN SYLLABICS WEST-CREE PWA
+1446;N;CANADIAN SYLLABICS PWAA
+1447;N;CANADIAN SYLLABICS WEST-CREE PWAA
+1448;N;CANADIAN SYLLABICS Y-CREE PWAA
+1449;N;CANADIAN SYLLABICS P
+144A;N;CANADIAN SYLLABICS WEST-CREE P
+144B;N;CANADIAN SYLLABICS CARRIER H
+144C;N;CANADIAN SYLLABICS TE
+144D;N;CANADIAN SYLLABICS TAAI
+144E;N;CANADIAN SYLLABICS TI
+144F;N;CANADIAN SYLLABICS TII
+1450;N;CANADIAN SYLLABICS TO
+1451;N;CANADIAN SYLLABICS TOO
+1452;N;CANADIAN SYLLABICS Y-CREE TOO
+1453;N;CANADIAN SYLLABICS CARRIER DEE
+1454;N;CANADIAN SYLLABICS CARRIER DI
+1455;N;CANADIAN SYLLABICS TA
+1456;N;CANADIAN SYLLABICS TAA
+1457;N;CANADIAN SYLLABICS TWE
+1458;N;CANADIAN SYLLABICS WEST-CREE TWE
+1459;N;CANADIAN SYLLABICS TWI
+145A;N;CANADIAN SYLLABICS WEST-CREE TWI
+145B;N;CANADIAN SYLLABICS TWII
+145C;N;CANADIAN SYLLABICS WEST-CREE TWII
+145D;N;CANADIAN SYLLABICS TWO
+145E;N;CANADIAN SYLLABICS WEST-CREE TWO
+145F;N;CANADIAN SYLLABICS TWOO
+1460;N;CANADIAN SYLLABICS WEST-CREE TWOO
+1461;N;CANADIAN SYLLABICS TWA
+1462;N;CANADIAN SYLLABICS WEST-CREE TWA
+1463;N;CANADIAN SYLLABICS TWAA
+1464;N;CANADIAN SYLLABICS WEST-CREE TWAA
+1465;N;CANADIAN SYLLABICS NASKAPI TWAA
+1466;N;CANADIAN SYLLABICS T
+1467;N;CANADIAN SYLLABICS TTE
+1468;N;CANADIAN SYLLABICS TTI
+1469;N;CANADIAN SYLLABICS TTO
+146A;N;CANADIAN SYLLABICS TTA
+146B;N;CANADIAN SYLLABICS KE
+146C;N;CANADIAN SYLLABICS KAAI
+146D;N;CANADIAN SYLLABICS KI
+146E;N;CANADIAN SYLLABICS KII
+146F;N;CANADIAN SYLLABICS KO
+1470;N;CANADIAN SYLLABICS KOO
+1471;N;CANADIAN SYLLABICS Y-CREE KOO
+1472;N;CANADIAN SYLLABICS KA
+1473;N;CANADIAN SYLLABICS KAA
+1474;N;CANADIAN SYLLABICS KWE
+1475;N;CANADIAN SYLLABICS WEST-CREE KWE
+1476;N;CANADIAN SYLLABICS KWI
+1477;N;CANADIAN SYLLABICS WEST-CREE KWI
+1478;N;CANADIAN SYLLABICS KWII
+1479;N;CANADIAN SYLLABICS WEST-CREE KWII
+147A;N;CANADIAN SYLLABICS KWO
+147B;N;CANADIAN SYLLABICS WEST-CREE KWO
+147C;N;CANADIAN SYLLABICS KWOO
+147D;N;CANADIAN SYLLABICS WEST-CREE KWOO
+147E;N;CANADIAN SYLLABICS KWA
+147F;N;CANADIAN SYLLABICS WEST-CREE KWA
+1480;N;CANADIAN SYLLABICS KWAA
+1481;N;CANADIAN SYLLABICS WEST-CREE KWAA
+1482;N;CANADIAN SYLLABICS NASKAPI KWAA
+1483;N;CANADIAN SYLLABICS K
+1484;N;CANADIAN SYLLABICS KW
+1485;N;CANADIAN SYLLABICS SOUTH-SLAVEY KEH
+1486;N;CANADIAN SYLLABICS SOUTH-SLAVEY KIH
+1487;N;CANADIAN SYLLABICS SOUTH-SLAVEY KOH
+1488;N;CANADIAN SYLLABICS SOUTH-SLAVEY KAH
+1489;N;CANADIAN SYLLABICS CE
+148A;N;CANADIAN SYLLABICS CAAI
+148B;N;CANADIAN SYLLABICS CI
+148C;N;CANADIAN SYLLABICS CII
+148D;N;CANADIAN SYLLABICS CO
+148E;N;CANADIAN SYLLABICS COO
+148F;N;CANADIAN SYLLABICS Y-CREE COO
+1490;N;CANADIAN SYLLABICS CA
+1491;N;CANADIAN SYLLABICS CAA
+1492;N;CANADIAN SYLLABICS CWE
+1493;N;CANADIAN SYLLABICS WEST-CREE CWE
+1494;N;CANADIAN SYLLABICS CWI
+1495;N;CANADIAN SYLLABICS WEST-CREE CWI
+1496;N;CANADIAN SYLLABICS CWII
+1497;N;CANADIAN SYLLABICS WEST-CREE CWII
+1498;N;CANADIAN SYLLABICS CWO
+1499;N;CANADIAN SYLLABICS WEST-CREE CWO
+149A;N;CANADIAN SYLLABICS CWOO
+149B;N;CANADIAN SYLLABICS WEST-CREE CWOO
+149C;N;CANADIAN SYLLABICS CWA
+149D;N;CANADIAN SYLLABICS WEST-CREE CWA
+149E;N;CANADIAN SYLLABICS CWAA
+149F;N;CANADIAN SYLLABICS WEST-CREE CWAA
+14A0;N;CANADIAN SYLLABICS NASKAPI CWAA
+14A1;N;CANADIAN SYLLABICS C
+14A2;N;CANADIAN SYLLABICS SAYISI TH
+14A3;N;CANADIAN SYLLABICS ME
+14A4;N;CANADIAN SYLLABICS MAAI
+14A5;N;CANADIAN SYLLABICS MI
+14A6;N;CANADIAN SYLLABICS MII
+14A7;N;CANADIAN SYLLABICS MO
+14A8;N;CANADIAN SYLLABICS MOO
+14A9;N;CANADIAN SYLLABICS Y-CREE MOO
+14AA;N;CANADIAN SYLLABICS MA
+14AB;N;CANADIAN SYLLABICS MAA
+14AC;N;CANADIAN SYLLABICS MWE
+14AD;N;CANADIAN SYLLABICS WEST-CREE MWE
+14AE;N;CANADIAN SYLLABICS MWI
+14AF;N;CANADIAN SYLLABICS WEST-CREE MWI
+14B0;N;CANADIAN SYLLABICS MWII
+14B1;N;CANADIAN SYLLABICS WEST-CREE MWII
+14B2;N;CANADIAN SYLLABICS MWO
+14B3;N;CANADIAN SYLLABICS WEST-CREE MWO
+14B4;N;CANADIAN SYLLABICS MWOO
+14B5;N;CANADIAN SYLLABICS WEST-CREE MWOO
+14B6;N;CANADIAN SYLLABICS MWA
+14B7;N;CANADIAN SYLLABICS WEST-CREE MWA
+14B8;N;CANADIAN SYLLABICS MWAA
+14B9;N;CANADIAN SYLLABICS WEST-CREE MWAA
+14BA;N;CANADIAN SYLLABICS NASKAPI MWAA
+14BB;N;CANADIAN SYLLABICS M
+14BC;N;CANADIAN SYLLABICS WEST-CREE M
+14BD;N;CANADIAN SYLLABICS MH
+14BE;N;CANADIAN SYLLABICS ATHAPASCAN M
+14BF;N;CANADIAN SYLLABICS SAYISI M
+14C0;N;CANADIAN SYLLABICS NE
+14C1;N;CANADIAN SYLLABICS NAAI
+14C2;N;CANADIAN SYLLABICS NI
+14C3;N;CANADIAN SYLLABICS NII
+14C4;N;CANADIAN SYLLABICS NO
+14C5;N;CANADIAN SYLLABICS NOO
+14C6;N;CANADIAN SYLLABICS Y-CREE NOO
+14C7;N;CANADIAN SYLLABICS NA
+14C8;N;CANADIAN SYLLABICS NAA
+14C9;N;CANADIAN SYLLABICS NWE
+14CA;N;CANADIAN SYLLABICS WEST-CREE NWE
+14CB;N;CANADIAN SYLLABICS NWA
+14CC;N;CANADIAN SYLLABICS WEST-CREE NWA
+14CD;N;CANADIAN SYLLABICS NWAA
+14CE;N;CANADIAN SYLLABICS WEST-CREE NWAA
+14CF;N;CANADIAN SYLLABICS NASKAPI NWAA
+14D0;N;CANADIAN SYLLABICS N
+14D1;N;CANADIAN SYLLABICS CARRIER NG
+14D2;N;CANADIAN SYLLABICS NH
+14D3;N;CANADIAN SYLLABICS LE
+14D4;N;CANADIAN SYLLABICS LAAI
+14D5;N;CANADIAN SYLLABICS LI
+14D6;N;CANADIAN SYLLABICS LII
+14D7;N;CANADIAN SYLLABICS LO
+14D8;N;CANADIAN SYLLABICS LOO
+14D9;N;CANADIAN SYLLABICS Y-CREE LOO
+14DA;N;CANADIAN SYLLABICS LA
+14DB;N;CANADIAN SYLLABICS LAA
+14DC;N;CANADIAN SYLLABICS LWE
+14DD;N;CANADIAN SYLLABICS WEST-CREE LWE
+14DE;N;CANADIAN SYLLABICS LWI
+14DF;N;CANADIAN SYLLABICS WEST-CREE LWI
+14E0;N;CANADIAN SYLLABICS LWII
+14E1;N;CANADIAN SYLLABICS WEST-CREE LWII
+14E2;N;CANADIAN SYLLABICS LWO
+14E3;N;CANADIAN SYLLABICS WEST-CREE LWO
+14E4;N;CANADIAN SYLLABICS LWOO
+14E5;N;CANADIAN SYLLABICS WEST-CREE LWOO
+14E6;N;CANADIAN SYLLABICS LWA
+14E7;N;CANADIAN SYLLABICS WEST-CREE LWA
+14E8;N;CANADIAN SYLLABICS LWAA
+14E9;N;CANADIAN SYLLABICS WEST-CREE LWAA
+14EA;N;CANADIAN SYLLABICS L
+14EB;N;CANADIAN SYLLABICS WEST-CREE L
+14EC;N;CANADIAN SYLLABICS MEDIAL L
+14ED;N;CANADIAN SYLLABICS SE
+14EE;N;CANADIAN SYLLABICS SAAI
+14EF;N;CANADIAN SYLLABICS SI
+14F0;N;CANADIAN SYLLABICS SII
+14F1;N;CANADIAN SYLLABICS SO
+14F2;N;CANADIAN SYLLABICS SOO
+14F3;N;CANADIAN SYLLABICS Y-CREE SOO
+14F4;N;CANADIAN SYLLABICS SA
+14F5;N;CANADIAN SYLLABICS SAA
+14F6;N;CANADIAN SYLLABICS SWE
+14F7;N;CANADIAN SYLLABICS WEST-CREE SWE
+14F8;N;CANADIAN SYLLABICS SWI
+14F9;N;CANADIAN SYLLABICS WEST-CREE SWI
+14FA;N;CANADIAN SYLLABICS SWII
+14FB;N;CANADIAN SYLLABICS WEST-CREE SWII
+14FC;N;CANADIAN SYLLABICS SWO
+14FD;N;CANADIAN SYLLABICS WEST-CREE SWO
+14FE;N;CANADIAN SYLLABICS SWOO
+14FF;N;CANADIAN SYLLABICS WEST-CREE SWOO
+1500;N;CANADIAN SYLLABICS SWA
+1501;N;CANADIAN SYLLABICS WEST-CREE SWA
+1502;N;CANADIAN SYLLABICS SWAA
+1503;N;CANADIAN SYLLABICS WEST-CREE SWAA
+1504;N;CANADIAN SYLLABICS NASKAPI SWAA
+1505;N;CANADIAN SYLLABICS S
+1506;N;CANADIAN SYLLABICS ATHAPASCAN S
+1507;N;CANADIAN SYLLABICS SW
+1508;N;CANADIAN SYLLABICS BLACKFOOT S
+1509;N;CANADIAN SYLLABICS MOOSE-CREE SK
+150A;N;CANADIAN SYLLABICS NASKAPI SKW
+150B;N;CANADIAN SYLLABICS NASKAPI S-W
+150C;N;CANADIAN SYLLABICS NASKAPI SPWA
+150D;N;CANADIAN SYLLABICS NASKAPI STWA
+150E;N;CANADIAN SYLLABICS NASKAPI SKWA
+150F;N;CANADIAN SYLLABICS NASKAPI SCWA
+1510;N;CANADIAN SYLLABICS SHE
+1511;N;CANADIAN SYLLABICS SHI
+1512;N;CANADIAN SYLLABICS SHII
+1513;N;CANADIAN SYLLABICS SHO
+1514;N;CANADIAN SYLLABICS SHOO
+1515;N;CANADIAN SYLLABICS SHA
+1516;N;CANADIAN SYLLABICS SHAA
+1517;N;CANADIAN SYLLABICS SHWE
+1518;N;CANADIAN SYLLABICS WEST-CREE SHWE
+1519;N;CANADIAN SYLLABICS SHWI
+151A;N;CANADIAN SYLLABICS WEST-CREE SHWI
+151B;N;CANADIAN SYLLABICS SHWII
+151C;N;CANADIAN SYLLABICS WEST-CREE SHWII
+151D;N;CANADIAN SYLLABICS SHWO
+151E;N;CANADIAN SYLLABICS WEST-CREE SHWO
+151F;N;CANADIAN SYLLABICS SHWOO
+1520;N;CANADIAN SYLLABICS WEST-CREE SHWOO
+1521;N;CANADIAN SYLLABICS SHWA
+1522;N;CANADIAN SYLLABICS WEST-CREE SHWA
+1523;N;CANADIAN SYLLABICS SHWAA
+1524;N;CANADIAN SYLLABICS WEST-CREE SHWAA
+1525;N;CANADIAN SYLLABICS SH
+1526;N;CANADIAN SYLLABICS YE
+1527;N;CANADIAN SYLLABICS YAAI
+1528;N;CANADIAN SYLLABICS YI
+1529;N;CANADIAN SYLLABICS YII
+152A;N;CANADIAN SYLLABICS YO
+152B;N;CANADIAN SYLLABICS YOO
+152C;N;CANADIAN SYLLABICS Y-CREE YOO
+152D;N;CANADIAN SYLLABICS YA
+152E;N;CANADIAN SYLLABICS YAA
+152F;N;CANADIAN SYLLABICS YWE
+1530;N;CANADIAN SYLLABICS WEST-CREE YWE
+1531;N;CANADIAN SYLLABICS YWI
+1532;N;CANADIAN SYLLABICS WEST-CREE YWI
+1533;N;CANADIAN SYLLABICS YWII
+1534;N;CANADIAN SYLLABICS WEST-CREE YWII
+1535;N;CANADIAN SYLLABICS YWO
+1536;N;CANADIAN SYLLABICS WEST-CREE YWO
+1537;N;CANADIAN SYLLABICS YWOO
+1538;N;CANADIAN SYLLABICS WEST-CREE YWOO
+1539;N;CANADIAN SYLLABICS YWA
+153A;N;CANADIAN SYLLABICS WEST-CREE YWA
+153B;N;CANADIAN SYLLABICS YWAA
+153C;N;CANADIAN SYLLABICS WEST-CREE YWAA
+153D;N;CANADIAN SYLLABICS NASKAPI YWAA
+153E;N;CANADIAN SYLLABICS Y
+153F;N;CANADIAN SYLLABICS BIBLE-CREE Y
+1540;N;CANADIAN SYLLABICS WEST-CREE Y
+1541;N;CANADIAN SYLLABICS SAYISI YI
+1542;N;CANADIAN SYLLABICS RE
+1543;N;CANADIAN SYLLABICS R-CREE RE
+1544;N;CANADIAN SYLLABICS WEST-CREE LE
+1545;N;CANADIAN SYLLABICS RAAI
+1546;N;CANADIAN SYLLABICS RI
+1547;N;CANADIAN SYLLABICS RII
+1548;N;CANADIAN SYLLABICS RO
+1549;N;CANADIAN SYLLABICS ROO
+154A;N;CANADIAN SYLLABICS WEST-CREE LO
+154B;N;CANADIAN SYLLABICS RA
+154C;N;CANADIAN SYLLABICS RAA
+154D;N;CANADIAN SYLLABICS WEST-CREE LA
+154E;N;CANADIAN SYLLABICS RWAA
+154F;N;CANADIAN SYLLABICS WEST-CREE RWAA
+1550;N;CANADIAN SYLLABICS R
+1551;N;CANADIAN SYLLABICS WEST-CREE R
+1552;N;CANADIAN SYLLABICS MEDIAL R
+1553;N;CANADIAN SYLLABICS FE
+1554;N;CANADIAN SYLLABICS FAAI
+1555;N;CANADIAN SYLLABICS FI
+1556;N;CANADIAN SYLLABICS FII
+1557;N;CANADIAN SYLLABICS FO
+1558;N;CANADIAN SYLLABICS FOO
+1559;N;CANADIAN SYLLABICS FA
+155A;N;CANADIAN SYLLABICS FAA
+155B;N;CANADIAN SYLLABICS FWAA
+155C;N;CANADIAN SYLLABICS WEST-CREE FWAA
+155D;N;CANADIAN SYLLABICS F
+155E;N;CANADIAN SYLLABICS THE
+155F;N;CANADIAN SYLLABICS N-CREE THE
+1560;N;CANADIAN SYLLABICS THI
+1561;N;CANADIAN SYLLABICS N-CREE THI
+1562;N;CANADIAN SYLLABICS THII
+1563;N;CANADIAN SYLLABICS N-CREE THII
+1564;N;CANADIAN SYLLABICS THO
+1565;N;CANADIAN SYLLABICS THOO
+1566;N;CANADIAN SYLLABICS THA
+1567;N;CANADIAN SYLLABICS THAA
+1568;N;CANADIAN SYLLABICS THWAA
+1569;N;CANADIAN SYLLABICS WEST-CREE THWAA
+156A;N;CANADIAN SYLLABICS TH
+156B;N;CANADIAN SYLLABICS TTHE
+156C;N;CANADIAN SYLLABICS TTHI
+156D;N;CANADIAN SYLLABICS TTHO
+156E;N;CANADIAN SYLLABICS TTHA
+156F;N;CANADIAN SYLLABICS TTH
+1570;N;CANADIAN SYLLABICS TYE
+1571;N;CANADIAN SYLLABICS TYI
+1572;N;CANADIAN SYLLABICS TYO
+1573;N;CANADIAN SYLLABICS TYA
+1574;N;CANADIAN SYLLABICS NUNAVIK HE
+1575;N;CANADIAN SYLLABICS NUNAVIK HI
+1576;N;CANADIAN SYLLABICS NUNAVIK HII
+1577;N;CANADIAN SYLLABICS NUNAVIK HO
+1578;N;CANADIAN SYLLABICS NUNAVIK HOO
+1579;N;CANADIAN SYLLABICS NUNAVIK HA
+157A;N;CANADIAN SYLLABICS NUNAVIK HAA
+157B;N;CANADIAN SYLLABICS NUNAVIK H
+157C;N;CANADIAN SYLLABICS NUNAVUT H
+157D;N;CANADIAN SYLLABICS HK
+157E;N;CANADIAN SYLLABICS QAAI
+157F;N;CANADIAN SYLLABICS QI
+1580;N;CANADIAN SYLLABICS QII
+1581;N;CANADIAN SYLLABICS QO
+1582;N;CANADIAN SYLLABICS QOO
+1583;N;CANADIAN SYLLABICS QA
+1584;N;CANADIAN SYLLABICS QAA
+1585;N;CANADIAN SYLLABICS Q
+1586;N;CANADIAN SYLLABICS TLHE
+1587;N;CANADIAN SYLLABICS TLHI
+1588;N;CANADIAN SYLLABICS TLHO
+1589;N;CANADIAN SYLLABICS TLHA
+158A;N;CANADIAN SYLLABICS WEST-CREE RE
+158B;N;CANADIAN SYLLABICS WEST-CREE RI
+158C;N;CANADIAN SYLLABICS WEST-CREE RO
+158D;N;CANADIAN SYLLABICS WEST-CREE RA
+158E;N;CANADIAN SYLLABICS NGAAI
+158F;N;CANADIAN SYLLABICS NGI
+1590;N;CANADIAN SYLLABICS NGII
+1591;N;CANADIAN SYLLABICS NGO
+1592;N;CANADIAN SYLLABICS NGOO
+1593;N;CANADIAN SYLLABICS NGA
+1594;N;CANADIAN SYLLABICS NGAA
+1595;N;CANADIAN SYLLABICS NG
+1596;N;CANADIAN SYLLABICS NNG
+1597;N;CANADIAN SYLLABICS SAYISI SHE
+1598;N;CANADIAN SYLLABICS SAYISI SHI
+1599;N;CANADIAN SYLLABICS SAYISI SHO
+159A;N;CANADIAN SYLLABICS SAYISI SHA
+159B;N;CANADIAN SYLLABICS WOODS-CREE THE
+159C;N;CANADIAN SYLLABICS WOODS-CREE THI
+159D;N;CANADIAN SYLLABICS WOODS-CREE THO
+159E;N;CANADIAN SYLLABICS WOODS-CREE THA
+159F;N;CANADIAN SYLLABICS WOODS-CREE TH
+15A0;N;CANADIAN SYLLABICS LHI
+15A1;N;CANADIAN SYLLABICS LHII
+15A2;N;CANADIAN SYLLABICS LHO
+15A3;N;CANADIAN SYLLABICS LHOO
+15A4;N;CANADIAN SYLLABICS LHA
+15A5;N;CANADIAN SYLLABICS LHAA
+15A6;N;CANADIAN SYLLABICS LH
+15A7;N;CANADIAN SYLLABICS TH-CREE THE
+15A8;N;CANADIAN SYLLABICS TH-CREE THI
+15A9;N;CANADIAN SYLLABICS TH-CREE THII
+15AA;N;CANADIAN SYLLABICS TH-CREE THO
+15AB;N;CANADIAN SYLLABICS TH-CREE THOO
+15AC;N;CANADIAN SYLLABICS TH-CREE THA
+15AD;N;CANADIAN SYLLABICS TH-CREE THAA
+15AE;N;CANADIAN SYLLABICS TH-CREE TH
+15AF;N;CANADIAN SYLLABICS AIVILIK B
+15B0;N;CANADIAN SYLLABICS BLACKFOOT E
+15B1;N;CANADIAN SYLLABICS BLACKFOOT I
+15B2;N;CANADIAN SYLLABICS BLACKFOOT O
+15B3;N;CANADIAN SYLLABICS BLACKFOOT A
+15B4;N;CANADIAN SYLLABICS BLACKFOOT WE
+15B5;N;CANADIAN SYLLABICS BLACKFOOT WI
+15B6;N;CANADIAN SYLLABICS BLACKFOOT WO
+15B7;N;CANADIAN SYLLABICS BLACKFOOT WA
+15B8;N;CANADIAN SYLLABICS BLACKFOOT NE
+15B9;N;CANADIAN SYLLABICS BLACKFOOT NI
+15BA;N;CANADIAN SYLLABICS BLACKFOOT NO
+15BB;N;CANADIAN SYLLABICS BLACKFOOT NA
+15BC;N;CANADIAN SYLLABICS BLACKFOOT KE
+15BD;N;CANADIAN SYLLABICS BLACKFOOT KI
+15BE;N;CANADIAN SYLLABICS BLACKFOOT KO
+15BF;N;CANADIAN SYLLABICS BLACKFOOT KA
+15C0;N;CANADIAN SYLLABICS SAYISI HE
+15C1;N;CANADIAN SYLLABICS SAYISI HI
+15C2;N;CANADIAN SYLLABICS SAYISI HO
+15C3;N;CANADIAN SYLLABICS SAYISI HA
+15C4;N;CANADIAN SYLLABICS CARRIER GHU
+15C5;N;CANADIAN SYLLABICS CARRIER GHO
+15C6;N;CANADIAN SYLLABICS CARRIER GHE
+15C7;N;CANADIAN SYLLABICS CARRIER GHEE
+15C8;N;CANADIAN SYLLABICS CARRIER GHI
+15C9;N;CANADIAN SYLLABICS CARRIER GHA
+15CA;N;CANADIAN SYLLABICS CARRIER RU
+15CB;N;CANADIAN SYLLABICS CARRIER RO
+15CC;N;CANADIAN SYLLABICS CARRIER RE
+15CD;N;CANADIAN SYLLABICS CARRIER REE
+15CE;N;CANADIAN SYLLABICS CARRIER RI
+15CF;N;CANADIAN SYLLABICS CARRIER RA
+15D0;N;CANADIAN SYLLABICS CARRIER WU
+15D1;N;CANADIAN SYLLABICS CARRIER WO
+15D2;N;CANADIAN SYLLABICS CARRIER WE
+15D3;N;CANADIAN SYLLABICS CARRIER WEE
+15D4;N;CANADIAN SYLLABICS CARRIER WI
+15D5;N;CANADIAN SYLLABICS CARRIER WA
+15D6;N;CANADIAN SYLLABICS CARRIER HWU
+15D7;N;CANADIAN SYLLABICS CARRIER HWO
+15D8;N;CANADIAN SYLLABICS CARRIER HWE
+15D9;N;CANADIAN SYLLABICS CARRIER HWEE
+15DA;N;CANADIAN SYLLABICS CARRIER HWI
+15DB;N;CANADIAN SYLLABICS CARRIER HWA
+15DC;N;CANADIAN SYLLABICS CARRIER THU
+15DD;N;CANADIAN SYLLABICS CARRIER THO
+15DE;N;CANADIAN SYLLABICS CARRIER THE
+15DF;N;CANADIAN SYLLABICS CARRIER THEE
+15E0;N;CANADIAN SYLLABICS CARRIER THI
+15E1;N;CANADIAN SYLLABICS CARRIER THA
+15E2;N;CANADIAN SYLLABICS CARRIER TTU
+15E3;N;CANADIAN SYLLABICS CARRIER TTO
+15E4;N;CANADIAN SYLLABICS CARRIER TTE
+15E5;N;CANADIAN SYLLABICS CARRIER TTEE
+15E6;N;CANADIAN SYLLABICS CARRIER TTI
+15E7;N;CANADIAN SYLLABICS CARRIER TTA
+15E8;N;CANADIAN SYLLABICS CARRIER PU
+15E9;N;CANADIAN SYLLABICS CARRIER PO
+15EA;N;CANADIAN SYLLABICS CARRIER PE
+15EB;N;CANADIAN SYLLABICS CARRIER PEE
+15EC;N;CANADIAN SYLLABICS CARRIER PI
+15ED;N;CANADIAN SYLLABICS CARRIER PA
+15EE;N;CANADIAN SYLLABICS CARRIER P
+15EF;N;CANADIAN SYLLABICS CARRIER GU
+15F0;N;CANADIAN SYLLABICS CARRIER GO
+15F1;N;CANADIAN SYLLABICS CARRIER GE
+15F2;N;CANADIAN SYLLABICS CARRIER GEE
+15F3;N;CANADIAN SYLLABICS CARRIER GI
+15F4;N;CANADIAN SYLLABICS CARRIER GA
+15F5;N;CANADIAN SYLLABICS CARRIER KHU
+15F6;N;CANADIAN SYLLABICS CARRIER KHO
+15F7;N;CANADIAN SYLLABICS CARRIER KHE
+15F8;N;CANADIAN SYLLABICS CARRIER KHEE
+15F9;N;CANADIAN SYLLABICS CARRIER KHI
+15FA;N;CANADIAN SYLLABICS CARRIER KHA
+15FB;N;CANADIAN SYLLABICS CARRIER KKU
+15FC;N;CANADIAN SYLLABICS CARRIER KKO
+15FD;N;CANADIAN SYLLABICS CARRIER KKE
+15FE;N;CANADIAN SYLLABICS CARRIER KKEE
+15FF;N;CANADIAN SYLLABICS CARRIER KKI
+1600;N;CANADIAN SYLLABICS CARRIER KKA
+1601;N;CANADIAN SYLLABICS CARRIER KK
+1602;N;CANADIAN SYLLABICS CARRIER NU
+1603;N;CANADIAN SYLLABICS CARRIER NO
+1604;N;CANADIAN SYLLABICS CARRIER NE
+1605;N;CANADIAN SYLLABICS CARRIER NEE
+1606;N;CANADIAN SYLLABICS CARRIER NI
+1607;N;CANADIAN SYLLABICS CARRIER NA
+1608;N;CANADIAN SYLLABICS CARRIER MU
+1609;N;CANADIAN SYLLABICS CARRIER MO
+160A;N;CANADIAN SYLLABICS CARRIER ME
+160B;N;CANADIAN SYLLABICS CARRIER MEE
+160C;N;CANADIAN SYLLABICS CARRIER MI
+160D;N;CANADIAN SYLLABICS CARRIER MA
+160E;N;CANADIAN SYLLABICS CARRIER YU
+160F;N;CANADIAN SYLLABICS CARRIER YO
+1610;N;CANADIAN SYLLABICS CARRIER YE
+1611;N;CANADIAN SYLLABICS CARRIER YEE
+1612;N;CANADIAN SYLLABICS CARRIER YI
+1613;N;CANADIAN SYLLABICS CARRIER YA
+1614;N;CANADIAN SYLLABICS CARRIER JU
+1615;N;CANADIAN SYLLABICS SAYISI JU
+1616;N;CANADIAN SYLLABICS CARRIER JO
+1617;N;CANADIAN SYLLABICS CARRIER JE
+1618;N;CANADIAN SYLLABICS CARRIER JEE
+1619;N;CANADIAN SYLLABICS CARRIER JI
+161A;N;CANADIAN SYLLABICS SAYISI JI
+161B;N;CANADIAN SYLLABICS CARRIER JA
+161C;N;CANADIAN SYLLABICS CARRIER JJU
+161D;N;CANADIAN SYLLABICS CARRIER JJO
+161E;N;CANADIAN SYLLABICS CARRIER JJE
+161F;N;CANADIAN SYLLABICS CARRIER JJEE
+1620;N;CANADIAN SYLLABICS CARRIER JJI
+1621;N;CANADIAN SYLLABICS CARRIER JJA
+1622;N;CANADIAN SYLLABICS CARRIER LU
+1623;N;CANADIAN SYLLABICS CARRIER LO
+1624;N;CANADIAN SYLLABICS CARRIER LE
+1625;N;CANADIAN SYLLABICS CARRIER LEE
+1626;N;CANADIAN SYLLABICS CARRIER LI
+1627;N;CANADIAN SYLLABICS CARRIER LA
+1628;N;CANADIAN SYLLABICS CARRIER DLU
+1629;N;CANADIAN SYLLABICS CARRIER DLO
+162A;N;CANADIAN SYLLABICS CARRIER DLE
+162B;N;CANADIAN SYLLABICS CARRIER DLEE
+162C;N;CANADIAN SYLLABICS CARRIER DLI
+162D;N;CANADIAN SYLLABICS CARRIER DLA
+162E;N;CANADIAN SYLLABICS CARRIER LHU
+162F;N;CANADIAN SYLLABICS CARRIER LHO
+1630;N;CANADIAN SYLLABICS CARRIER LHE
+1631;N;CANADIAN SYLLABICS CARRIER LHEE
+1632;N;CANADIAN SYLLABICS CARRIER LHI
+1633;N;CANADIAN SYLLABICS CARRIER LHA
+1634;N;CANADIAN SYLLABICS CARRIER TLHU
+1635;N;CANADIAN SYLLABICS CARRIER TLHO
+1636;N;CANADIAN SYLLABICS CARRIER TLHE
+1637;N;CANADIAN SYLLABICS CARRIER TLHEE
+1638;N;CANADIAN SYLLABICS CARRIER TLHI
+1639;N;CANADIAN SYLLABICS CARRIER TLHA
+163A;N;CANADIAN SYLLABICS CARRIER TLU
+163B;N;CANADIAN SYLLABICS CARRIER TLO
+163C;N;CANADIAN SYLLABICS CARRIER TLE
+163D;N;CANADIAN SYLLABICS CARRIER TLEE
+163E;N;CANADIAN SYLLABICS CARRIER TLI
+163F;N;CANADIAN SYLLABICS CARRIER TLA
+1640;N;CANADIAN SYLLABICS CARRIER ZU
+1641;N;CANADIAN SYLLABICS CARRIER ZO
+1642;N;CANADIAN SYLLABICS CARRIER ZE
+1643;N;CANADIAN SYLLABICS CARRIER ZEE
+1644;N;CANADIAN SYLLABICS CARRIER ZI
+1645;N;CANADIAN SYLLABICS CARRIER ZA
+1646;N;CANADIAN SYLLABICS CARRIER Z
+1647;N;CANADIAN SYLLABICS CARRIER INITIAL Z
+1648;N;CANADIAN SYLLABICS CARRIER DZU
+1649;N;CANADIAN SYLLABICS CARRIER DZO
+164A;N;CANADIAN SYLLABICS CARRIER DZE
+164B;N;CANADIAN SYLLABICS CARRIER DZEE
+164C;N;CANADIAN SYLLABICS CARRIER DZI
+164D;N;CANADIAN SYLLABICS CARRIER DZA
+164E;N;CANADIAN SYLLABICS CARRIER SU
+164F;N;CANADIAN SYLLABICS CARRIER SO
+1650;N;CANADIAN SYLLABICS CARRIER SE
+1651;N;CANADIAN SYLLABICS CARRIER SEE
+1652;N;CANADIAN SYLLABICS CARRIER SI
+1653;N;CANADIAN SYLLABICS CARRIER SA
+1654;N;CANADIAN SYLLABICS CARRIER SHU
+1655;N;CANADIAN SYLLABICS CARRIER SHO
+1656;N;CANADIAN SYLLABICS CARRIER SHE
+1657;N;CANADIAN SYLLABICS CARRIER SHEE
+1658;N;CANADIAN SYLLABICS CARRIER SHI
+1659;N;CANADIAN SYLLABICS CARRIER SHA
+165A;N;CANADIAN SYLLABICS CARRIER SH
+165B;N;CANADIAN SYLLABICS CARRIER TSU
+165C;N;CANADIAN SYLLABICS CARRIER TSO
+165D;N;CANADIAN SYLLABICS CARRIER TSE
+165E;N;CANADIAN SYLLABICS CARRIER TSEE
+165F;N;CANADIAN SYLLABICS CARRIER TSI
+1660;N;CANADIAN SYLLABICS CARRIER TSA
+1661;N;CANADIAN SYLLABICS CARRIER CHU
+1662;N;CANADIAN SYLLABICS CARRIER CHO
+1663;N;CANADIAN SYLLABICS CARRIER CHE
+1664;N;CANADIAN SYLLABICS CARRIER CHEE
+1665;N;CANADIAN SYLLABICS CARRIER CHI
+1666;N;CANADIAN SYLLABICS CARRIER CHA
+1667;N;CANADIAN SYLLABICS CARRIER TTSU
+1668;N;CANADIAN SYLLABICS CARRIER TTSO
+1669;N;CANADIAN SYLLABICS CARRIER TTSE
+166A;N;CANADIAN SYLLABICS CARRIER TTSEE
+166B;N;CANADIAN SYLLABICS CARRIER TTSI
+166C;N;CANADIAN SYLLABICS CARRIER TTSA
+166D;N;CANADIAN SYLLABICS CHI SIGN
+166E;N;CANADIAN SYLLABICS FULL STOP
+166F;N;CANADIAN SYLLABICS QAI
+1670;N;CANADIAN SYLLABICS NGAI
+1671;N;CANADIAN SYLLABICS NNGI
+1672;N;CANADIAN SYLLABICS NNGII
+1673;N;CANADIAN SYLLABICS NNGO
+1674;N;CANADIAN SYLLABICS NNGOO
+1675;N;CANADIAN SYLLABICS NNGA
+1676;N;CANADIAN SYLLABICS NNGAA
+1680;N;OGHAM SPACE MARK
+1681;N;OGHAM LETTER BEITH
+1682;N;OGHAM LETTER LUIS
+1683;N;OGHAM LETTER FEARN
+1684;N;OGHAM LETTER SAIL
+1685;N;OGHAM LETTER NION
+1686;N;OGHAM LETTER UATH
+1687;N;OGHAM LETTER DAIR
+1688;N;OGHAM LETTER TINNE
+1689;N;OGHAM LETTER COLL
+168A;N;OGHAM LETTER CEIRT
+168B;N;OGHAM LETTER MUIN
+168C;N;OGHAM LETTER GORT
+168D;N;OGHAM LETTER NGEADAL
+168E;N;OGHAM LETTER STRAIF
+168F;N;OGHAM LETTER RUIS
+1690;N;OGHAM LETTER AILM
+1691;N;OGHAM LETTER ONN
+1692;N;OGHAM LETTER UR
+1693;N;OGHAM LETTER EADHADH
+1694;N;OGHAM LETTER IODHADH
+1695;N;OGHAM LETTER EABHADH
+1696;N;OGHAM LETTER OR
+1697;N;OGHAM LETTER UILLEANN
+1698;N;OGHAM LETTER IFIN
+1699;N;OGHAM LETTER EAMHANCHOLL
+169A;N;OGHAM LETTER PEITH
+169B;N;OGHAM FEATHER MARK
+169C;N;OGHAM REVERSED FEATHER MARK
+16A0;N;RUNIC LETTER FEHU FEOH FE F
+16A1;N;RUNIC LETTER V
+16A2;N;RUNIC LETTER URUZ UR U
+16A3;N;RUNIC LETTER YR
+16A4;N;RUNIC LETTER Y
+16A5;N;RUNIC LETTER W
+16A6;N;RUNIC LETTER THURISAZ THURS THORN
+16A7;N;RUNIC LETTER ETH
+16A8;N;RUNIC LETTER ANSUZ A
+16A9;N;RUNIC LETTER OS O
+16AA;N;RUNIC LETTER AC A
+16AB;N;RUNIC LETTER AESC
+16AC;N;RUNIC LETTER LONG-BRANCH-OSS O
+16AD;N;RUNIC LETTER SHORT-TWIG-OSS O
+16AE;N;RUNIC LETTER O
+16AF;N;RUNIC LETTER OE
+16B0;N;RUNIC LETTER ON
+16B1;N;RUNIC LETTER RAIDO RAD REID R
+16B2;N;RUNIC LETTER KAUNA
+16B3;N;RUNIC LETTER CEN
+16B4;N;RUNIC LETTER KAUN K
+16B5;N;RUNIC LETTER G
+16B6;N;RUNIC LETTER ENG
+16B7;N;RUNIC LETTER GEBO GYFU G
+16B8;N;RUNIC LETTER GAR
+16B9;N;RUNIC LETTER WUNJO WYNN W
+16BA;N;RUNIC LETTER HAGLAZ H
+16BB;N;RUNIC LETTER HAEGL H
+16BC;N;RUNIC LETTER LONG-BRANCH-HAGALL H
+16BD;N;RUNIC LETTER SHORT-TWIG-HAGALL H
+16BE;N;RUNIC LETTER NAUDIZ NYD NAUD N
+16BF;N;RUNIC LETTER SHORT-TWIG-NAUD N
+16C0;N;RUNIC LETTER DOTTED-N
+16C1;N;RUNIC LETTER ISAZ IS ISS I
+16C2;N;RUNIC LETTER E
+16C3;N;RUNIC LETTER JERAN J
+16C4;N;RUNIC LETTER GER
+16C5;N;RUNIC LETTER LONG-BRANCH-AR AE
+16C6;N;RUNIC LETTER SHORT-TWIG-AR A
+16C7;N;RUNIC LETTER IWAZ EOH
+16C8;N;RUNIC LETTER PERTHO PEORTH P
+16C9;N;RUNIC LETTER ALGIZ EOLHX
+16CA;N;RUNIC LETTER SOWILO S
+16CB;N;RUNIC LETTER SIGEL LONG-BRANCH-SOL S
+16CC;N;RUNIC LETTER SHORT-TWIG-SOL S
+16CD;N;RUNIC LETTER C
+16CE;N;RUNIC LETTER Z
+16CF;N;RUNIC LETTER TIWAZ TIR TYR T
+16D0;N;RUNIC LETTER SHORT-TWIG-TYR T
+16D1;N;RUNIC LETTER D
+16D2;N;RUNIC LETTER BERKANAN BEORC BJARKAN B
+16D3;N;RUNIC LETTER SHORT-TWIG-BJARKAN B
+16D4;N;RUNIC LETTER DOTTED-P
+16D5;N;RUNIC LETTER OPEN-P
+16D6;N;RUNIC LETTER EHWAZ EH E
+16D7;N;RUNIC LETTER MANNAZ MAN M
+16D8;N;RUNIC LETTER LONG-BRANCH-MADR M
+16D9;N;RUNIC LETTER SHORT-TWIG-MADR M
+16DA;N;RUNIC LETTER LAUKAZ LAGU LOGR L
+16DB;N;RUNIC LETTER DOTTED-L
+16DC;N;RUNIC LETTER INGWAZ
+16DD;N;RUNIC LETTER ING
+16DE;N;RUNIC LETTER DAGAZ DAEG D
+16DF;N;RUNIC LETTER OTHALAN ETHEL O
+16E0;N;RUNIC LETTER EAR
+16E1;N;RUNIC LETTER IOR
+16E2;N;RUNIC LETTER CWEORTH
+16E3;N;RUNIC LETTER CALC
+16E4;N;RUNIC LETTER CEALC
+16E5;N;RUNIC LETTER STAN
+16E6;N;RUNIC LETTER LONG-BRANCH-YR
+16E7;N;RUNIC LETTER SHORT-TWIG-YR
+16E8;N;RUNIC LETTER ICELANDIC-YR
+16E9;N;RUNIC LETTER Q
+16EA;N;RUNIC LETTER X
+16EB;N;RUNIC SINGLE PUNCTUATION
+16EC;N;RUNIC MULTIPLE PUNCTUATION
+16ED;N;RUNIC CROSS PUNCTUATION
+16EE;N;RUNIC ARLAUG SYMBOL
+16EF;N;RUNIC TVIMADUR SYMBOL
+16F0;N;RUNIC BELGTHOR SYMBOL
+1780;N;KHMER LETTER KA
+1781;N;KHMER LETTER KHA
+1782;N;KHMER LETTER KO
+1783;N;KHMER LETTER KHO
+1784;N;KHMER LETTER NGO
+1785;N;KHMER LETTER CA
+1786;N;KHMER LETTER CHA
+1787;N;KHMER LETTER CO
+1788;N;KHMER LETTER CHO
+1789;N;KHMER LETTER NYO
+178A;N;KHMER LETTER DA
+178B;N;KHMER LETTER TTHA
+178C;N;KHMER LETTER DO
+178D;N;KHMER LETTER TTHO
+178E;N;KHMER LETTER NNO
+178F;N;KHMER LETTER TA
+1790;N;KHMER LETTER THA
+1791;N;KHMER LETTER TO
+1792;N;KHMER LETTER THO
+1793;N;KHMER LETTER NO
+1794;N;KHMER LETTER BA
+1795;N;KHMER LETTER PHA
+1796;N;KHMER LETTER PO
+1797;N;KHMER LETTER PHO
+1798;N;KHMER LETTER MO
+1799;N;KHMER LETTER YO
+179A;N;KHMER LETTER RO
+179B;N;KHMER LETTER LO
+179C;N;KHMER LETTER VO
+179D;N;KHMER LETTER SHA
+179E;N;KHMER LETTER SSO
+179F;N;KHMER LETTER SA
+17A0;N;KHMER LETTER HA
+17A1;N;KHMER LETTER LA
+17A2;N;KHMER LETTER QA
+17A3;N;KHMER INDEPENDENT VOWEL QAQ
+17A4;N;KHMER INDEPENDENT VOWEL QAA
+17A5;N;KHMER INDEPENDENT VOWEL QI
+17A6;N;KHMER INDEPENDENT VOWEL QII
+17A7;N;KHMER INDEPENDENT VOWEL QU
+17A8;N;KHMER INDEPENDENT VOWEL QUK
+17A9;N;KHMER INDEPENDENT VOWEL QUU
+17AA;N;KHMER INDEPENDENT VOWEL QUUV
+17AB;N;KHMER INDEPENDENT VOWEL RY
+17AC;N;KHMER INDEPENDENT VOWEL RYY
+17AD;N;KHMER INDEPENDENT VOWEL LY
+17AE;N;KHMER INDEPENDENT VOWEL LYY
+17AF;N;KHMER INDEPENDENT VOWEL QE
+17B0;N;KHMER INDEPENDENT VOWEL QAI
+17B1;N;KHMER INDEPENDENT VOWEL QOO TYPE ONE
+17B2;N;KHMER INDEPENDENT VOWEL QOO TYPE TWO
+17B3;N;KHMER INDEPENDENT VOWEL QAU
+17B4;N;KHMER VOWEL INHERENT AQ
+17B5;N;KHMER VOWEL INHERENT AA
+17B6;N;KHMER VOWEL SIGN AA
+17B7;N;KHMER VOWEL SIGN I
+17B8;N;KHMER VOWEL SIGN II
+17B9;N;KHMER VOWEL SIGN Y
+17BA;N;KHMER VOWEL SIGN YY
+17BB;N;KHMER VOWEL SIGN U
+17BC;N;KHMER VOWEL SIGN UU
+17BD;N;KHMER VOWEL SIGN UA
+17BE;N;KHMER VOWEL SIGN OE
+17BF;N;KHMER VOWEL SIGN YA
+17C0;N;KHMER VOWEL SIGN IE
+17C1;N;KHMER VOWEL SIGN E
+17C2;N;KHMER VOWEL SIGN AE
+17C3;N;KHMER VOWEL SIGN AI
+17C4;N;KHMER VOWEL SIGN OO
+17C5;N;KHMER VOWEL SIGN AU
+17C6;N;KHMER SIGN NIKAHIT
+17C7;N;KHMER SIGN REAHMUK
+17C8;N;KHMER SIGN YUUKALEAPINTU
+17C9;N;KHMER SIGN MUUSIKATOAN
+17CA;N;KHMER SIGN TRIISAP
+17CB;N;KHMER SIGN BANTOC
+17CC;N;KHMER SIGN ROBAT
+17CD;N;KHMER SIGN TOANDAKHIAT
+17CE;N;KHMER SIGN KAKABAT
+17CF;N;KHMER SIGN AHSDA
+17D0;N;KHMER SIGN SAMYOK SANNYA
+17D1;N;KHMER SIGN VIRIAM
+17D2;N;KHMER SIGN COENG
+17D3;N;KHMER SIGN BATHAMASAT
+17D4;N;KHMER SIGN KHAN
+17D5;N;KHMER SIGN BARIYOOSAN
+17D6;N;KHMER SIGN CAMNUC PII KUUH
+17D7;N;KHMER SIGN LEK TOO
+17D8;N;KHMER SIGN BEYYAL
+17D9;N;KHMER SIGN PHNAEK MUAN
+17DA;N;KHMER SIGN KOOMUUT
+17DB;N;KHMER CURRENCY SYMBOL RIEL
+17DC;N;KHMER SIGN AVAKRAHASANYA
+17E0;N;KHMER DIGIT ZERO
+17E1;N;KHMER DIGIT ONE
+17E2;N;KHMER DIGIT TWO
+17E3;N;KHMER DIGIT THREE
+17E4;N;KHMER DIGIT FOUR
+17E5;N;KHMER DIGIT FIVE
+17E6;N;KHMER DIGIT SIX
+17E7;N;KHMER DIGIT SEVEN
+17E8;N;KHMER DIGIT EIGHT
+17E9;N;KHMER DIGIT NINE
+1800;N;MONGOLIAN BIRGA
+1801;N;MONGOLIAN ELLIPSIS
+1802;N;MONGOLIAN COMMA
+1803;N;MONGOLIAN FULL STOP
+1804;N;MONGOLIAN COLON
+1805;N;MONGOLIAN FOUR DOTS
+1806;N;MONGOLIAN TODO SOFT HYPHEN
+1807;N;MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER
+1808;N;MONGOLIAN MANCHU COMMA
+1809;N;MONGOLIAN MANCHU FULL STOP
+180A;N;MONGOLIAN NIRUGU
+180B;N;MONGOLIAN FREE VARIATION SELECTOR ONE
+180C;N;MONGOLIAN FREE VARIATION SELECTOR TWO
+180D;N;MONGOLIAN FREE VARIATION SELECTOR THREE
+180E;N;MONGOLIAN VOWEL SEPARATOR
+1810;N;MONGOLIAN DIGIT ZERO
+1811;N;MONGOLIAN DIGIT ONE
+1812;N;MONGOLIAN DIGIT TWO
+1813;N;MONGOLIAN DIGIT THREE
+1814;N;MONGOLIAN DIGIT FOUR
+1815;N;MONGOLIAN DIGIT FIVE
+1816;N;MONGOLIAN DIGIT SIX
+1817;N;MONGOLIAN DIGIT SEVEN
+1818;N;MONGOLIAN DIGIT EIGHT
+1819;N;MONGOLIAN DIGIT NINE
+1820;N;MONGOLIAN LETTER A
+1821;N;MONGOLIAN LETTER E
+1822;N;MONGOLIAN LETTER I
+1823;N;MONGOLIAN LETTER O
+1824;N;MONGOLIAN LETTER U
+1825;N;MONGOLIAN LETTER OE
+1826;N;MONGOLIAN LETTER UE
+1827;N;MONGOLIAN LETTER EE
+1828;N;MONGOLIAN LETTER NA
+1829;N;MONGOLIAN LETTER ANG
+182A;N;MONGOLIAN LETTER BA
+182B;N;MONGOLIAN LETTER PA
+182C;N;MONGOLIAN LETTER QA
+182D;N;MONGOLIAN LETTER GA
+182E;N;MONGOLIAN LETTER MA
+182F;N;MONGOLIAN LETTER LA
+1830;N;MONGOLIAN LETTER SA
+1831;N;MONGOLIAN LETTER SHA
+1832;N;MONGOLIAN LETTER TA
+1833;N;MONGOLIAN LETTER DA
+1834;N;MONGOLIAN LETTER CHA
+1835;N;MONGOLIAN LETTER JA
+1836;N;MONGOLIAN LETTER YA
+1837;N;MONGOLIAN LETTER RA
+1838;N;MONGOLIAN LETTER WA
+1839;N;MONGOLIAN LETTER FA
+183A;N;MONGOLIAN LETTER KA
+183B;N;MONGOLIAN LETTER KHA
+183C;N;MONGOLIAN LETTER TSA
+183D;N;MONGOLIAN LETTER ZA
+183E;N;MONGOLIAN LETTER HAA
+183F;N;MONGOLIAN LETTER ZRA
+1840;N;MONGOLIAN LETTER LHA
+1841;N;MONGOLIAN LETTER ZHI
+1842;N;MONGOLIAN LETTER CHI
+1843;N;MONGOLIAN LETTER TODO LONG VOWEL SIGN
+1844;N;MONGOLIAN LETTER TODO E
+1845;N;MONGOLIAN LETTER TODO I
+1846;N;MONGOLIAN LETTER TODO O
+1847;N;MONGOLIAN LETTER TODO U
+1848;N;MONGOLIAN LETTER TODO OE
+1849;N;MONGOLIAN LETTER TODO UE
+184A;N;MONGOLIAN LETTER TODO ANG
+184B;N;MONGOLIAN LETTER TODO BA
+184C;N;MONGOLIAN LETTER TODO PA
+184D;N;MONGOLIAN LETTER TODO QA
+184E;N;MONGOLIAN LETTER TODO GA
+184F;N;MONGOLIAN LETTER TODO MA
+1850;N;MONGOLIAN LETTER TODO TA
+1851;N;MONGOLIAN LETTER TODO DA
+1852;N;MONGOLIAN LETTER TODO CHA
+1853;N;MONGOLIAN LETTER TODO JA
+1854;N;MONGOLIAN LETTER TODO TSA
+1855;N;MONGOLIAN LETTER TODO YA
+1856;N;MONGOLIAN LETTER TODO WA
+1857;N;MONGOLIAN LETTER TODO KA
+1858;N;MONGOLIAN LETTER TODO GAA
+1859;N;MONGOLIAN LETTER TODO HAA
+185A;N;MONGOLIAN LETTER TODO JIA
+185B;N;MONGOLIAN LETTER TODO NIA
+185C;N;MONGOLIAN LETTER TODO DZA
+185D;N;MONGOLIAN LETTER SIBE E
+185E;N;MONGOLIAN LETTER SIBE I
+185F;N;MONGOLIAN LETTER SIBE IY
+1860;N;MONGOLIAN LETTER SIBE UE
+1861;N;MONGOLIAN LETTER SIBE U
+1862;N;MONGOLIAN LETTER SIBE ANG
+1863;N;MONGOLIAN LETTER SIBE KA
+1864;N;MONGOLIAN LETTER SIBE GA
+1865;N;MONGOLIAN LETTER SIBE HA
+1866;N;MONGOLIAN LETTER SIBE PA
+1867;N;MONGOLIAN LETTER SIBE SHA
+1868;N;MONGOLIAN LETTER SIBE TA
+1869;N;MONGOLIAN LETTER SIBE DA
+186A;N;MONGOLIAN LETTER SIBE JA
+186B;N;MONGOLIAN LETTER SIBE FA
+186C;N;MONGOLIAN LETTER SIBE GAA
+186D;N;MONGOLIAN LETTER SIBE HAA
+186E;N;MONGOLIAN LETTER SIBE TSA
+186F;N;MONGOLIAN LETTER SIBE ZA
+1870;N;MONGOLIAN LETTER SIBE RAA
+1871;N;MONGOLIAN LETTER SIBE CHA
+1872;N;MONGOLIAN LETTER SIBE ZHA
+1873;N;MONGOLIAN LETTER MANCHU I
+1874;N;MONGOLIAN LETTER MANCHU KA
+1875;N;MONGOLIAN LETTER MANCHU RA
+1876;N;MONGOLIAN LETTER MANCHU FA
+1877;N;MONGOLIAN LETTER MANCHU ZHA
+1880;N;MONGOLIAN LETTER ALI GALI ANUSVARA ONE
+1881;N;MONGOLIAN LETTER ALI GALI VISARGA ONE
+1882;N;MONGOLIAN LETTER ALI GALI DAMARU
+1883;N;MONGOLIAN LETTER ALI GALI UBADAMA
+1884;N;MONGOLIAN LETTER ALI GALI INVERTED UBADAMA
+1885;N;MONGOLIAN LETTER ALI GALI BALUDA
+1886;N;MONGOLIAN LETTER ALI GALI THREE BALUDA
+1887;N;MONGOLIAN LETTER ALI GALI A
+1888;N;MONGOLIAN LETTER ALI GALI I
+1889;N;MONGOLIAN LETTER ALI GALI KA
+188A;N;MONGOLIAN LETTER ALI GALI NGA
+188B;N;MONGOLIAN LETTER ALI GALI CA
+188C;N;MONGOLIAN LETTER ALI GALI TTA
+188D;N;MONGOLIAN LETTER ALI GALI TTHA
+188E;N;MONGOLIAN LETTER ALI GALI DDA
+188F;N;MONGOLIAN LETTER ALI GALI NNA
+1890;N;MONGOLIAN LETTER ALI GALI TA
+1891;N;MONGOLIAN LETTER ALI GALI DA
+1892;N;MONGOLIAN LETTER ALI GALI PA
+1893;N;MONGOLIAN LETTER ALI GALI PHA
+1894;N;MONGOLIAN LETTER ALI GALI SSA
+1895;N;MONGOLIAN LETTER ALI GALI ZHA
+1896;N;MONGOLIAN LETTER ALI GALI ZA
+1897;N;MONGOLIAN LETTER ALI GALI AH
+1898;N;MONGOLIAN LETTER TODO ALI GALI TA
+1899;N;MONGOLIAN LETTER TODO ALI GALI ZHA
+189A;N;MONGOLIAN LETTER MANCHU ALI GALI GHA
+189B;N;MONGOLIAN LETTER MANCHU ALI GALI NGA
+189C;N;MONGOLIAN LETTER MANCHU ALI GALI CA
+189D;N;MONGOLIAN LETTER MANCHU ALI GALI JHA
+189E;N;MONGOLIAN LETTER MANCHU ALI GALI TTA
+189F;N;MONGOLIAN LETTER MANCHU ALI GALI DDHA
+18A0;N;MONGOLIAN LETTER MANCHU ALI GALI TA
+18A1;N;MONGOLIAN LETTER MANCHU ALI GALI DHA
+18A2;N;MONGOLIAN LETTER MANCHU ALI GALI SSA
+18A3;N;MONGOLIAN LETTER MANCHU ALI GALI CYA
+18A4;N;MONGOLIAN LETTER MANCHU ALI GALI ZHA
+18A5;N;MONGOLIAN LETTER MANCHU ALI GALI ZA
+18A6;N;MONGOLIAN LETTER ALI GALI HALF U
+18A7;N;MONGOLIAN LETTER ALI GALI HALF YA
+18A8;N;MONGOLIAN LETTER MANCHU ALI GALI BHA
+18A9;N;MONGOLIAN LETTER ALI GALI DAGALGA
+1E00;N;LATIN CAPITAL LETTER A WITH RING BELOW
+1E01;N;LATIN SMALL LETTER A WITH RING BELOW
+1E02;N;LATIN CAPITAL LETTER B WITH DOT ABOVE
+1E03;N;LATIN SMALL LETTER B WITH DOT ABOVE
+1E04;N;LATIN CAPITAL LETTER B WITH DOT BELOW
+1E05;N;LATIN SMALL LETTER B WITH DOT BELOW
+1E06;N;LATIN CAPITAL LETTER B WITH LINE BELOW
+1E07;N;LATIN SMALL LETTER B WITH LINE BELOW
+1E08;N;LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+1E09;N;LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+1E0A;N;LATIN CAPITAL LETTER D WITH DOT ABOVE
+1E0B;N;LATIN SMALL LETTER D WITH DOT ABOVE
+1E0C;N;LATIN CAPITAL LETTER D WITH DOT BELOW
+1E0D;N;LATIN SMALL LETTER D WITH DOT BELOW
+1E0E;N;LATIN CAPITAL LETTER D WITH LINE BELOW
+1E0F;N;LATIN SMALL LETTER D WITH LINE BELOW
+1E10;N;LATIN CAPITAL LETTER D WITH CEDILLA
+1E11;N;LATIN SMALL LETTER D WITH CEDILLA
+1E12;N;LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW
+1E13;N;LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW
+1E14;N;LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+1E15;N;LATIN SMALL LETTER E WITH MACRON AND GRAVE
+1E16;N;LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+1E17;N;LATIN SMALL LETTER E WITH MACRON AND ACUTE
+1E18;N;LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
+1E19;N;LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW
+1E1A;N;LATIN CAPITAL LETTER E WITH TILDE BELOW
+1E1B;N;LATIN SMALL LETTER E WITH TILDE BELOW
+1E1C;N;LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+1E1D;N;LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+1E1E;N;LATIN CAPITAL LETTER F WITH DOT ABOVE
+1E1F;N;LATIN SMALL LETTER F WITH DOT ABOVE
+1E20;N;LATIN CAPITAL LETTER G WITH MACRON
+1E21;N;LATIN SMALL LETTER G WITH MACRON
+1E22;N;LATIN CAPITAL LETTER H WITH DOT ABOVE
+1E23;N;LATIN SMALL LETTER H WITH DOT ABOVE
+1E24;N;LATIN CAPITAL LETTER H WITH DOT BELOW
+1E25;N;LATIN SMALL LETTER H WITH DOT BELOW
+1E26;N;LATIN CAPITAL LETTER H WITH DIAERESIS
+1E27;N;LATIN SMALL LETTER H WITH DIAERESIS
+1E28;N;LATIN CAPITAL LETTER H WITH CEDILLA
+1E29;N;LATIN SMALL LETTER H WITH CEDILLA
+1E2A;N;LATIN CAPITAL LETTER H WITH BREVE BELOW
+1E2B;N;LATIN SMALL LETTER H WITH BREVE BELOW
+1E2C;N;LATIN CAPITAL LETTER I WITH TILDE BELOW
+1E2D;N;LATIN SMALL LETTER I WITH TILDE BELOW
+1E2E;N;LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+1E2F;N;LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+1E30;N;LATIN CAPITAL LETTER K WITH ACUTE
+1E31;N;LATIN SMALL LETTER K WITH ACUTE
+1E32;N;LATIN CAPITAL LETTER K WITH DOT BELOW
+1E33;N;LATIN SMALL LETTER K WITH DOT BELOW
+1E34;N;LATIN CAPITAL LETTER K WITH LINE BELOW
+1E35;N;LATIN SMALL LETTER K WITH LINE BELOW
+1E36;N;LATIN CAPITAL LETTER L WITH DOT BELOW
+1E37;N;LATIN SMALL LETTER L WITH DOT BELOW
+1E38;N;LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+1E39;N;LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+1E3A;N;LATIN CAPITAL LETTER L WITH LINE BELOW
+1E3B;N;LATIN SMALL LETTER L WITH LINE BELOW
+1E3C;N;LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW
+1E3D;N;LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW
+1E3E;N;LATIN CAPITAL LETTER M WITH ACUTE
+1E3F;N;LATIN SMALL LETTER M WITH ACUTE
+1E40;N;LATIN CAPITAL LETTER M WITH DOT ABOVE
+1E41;N;LATIN SMALL LETTER M WITH DOT ABOVE
+1E42;N;LATIN CAPITAL LETTER M WITH DOT BELOW
+1E43;N;LATIN SMALL LETTER M WITH DOT BELOW
+1E44;N;LATIN CAPITAL LETTER N WITH DOT ABOVE
+1E45;N;LATIN SMALL LETTER N WITH DOT ABOVE
+1E46;N;LATIN CAPITAL LETTER N WITH DOT BELOW
+1E47;N;LATIN SMALL LETTER N WITH DOT BELOW
+1E48;N;LATIN CAPITAL LETTER N WITH LINE BELOW
+1E49;N;LATIN SMALL LETTER N WITH LINE BELOW
+1E4A;N;LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW
+1E4B;N;LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW
+1E4C;N;LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+1E4D;N;LATIN SMALL LETTER O WITH TILDE AND ACUTE
+1E4E;N;LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+1E4F;N;LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
+1E50;N;LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+1E51;N;LATIN SMALL LETTER O WITH MACRON AND GRAVE
+1E52;N;LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+1E53;N;LATIN SMALL LETTER O WITH MACRON AND ACUTE
+1E54;N;LATIN CAPITAL LETTER P WITH ACUTE
+1E55;N;LATIN SMALL LETTER P WITH ACUTE
+1E56;N;LATIN CAPITAL LETTER P WITH DOT ABOVE
+1E57;N;LATIN SMALL LETTER P WITH DOT ABOVE
+1E58;N;LATIN CAPITAL LETTER R WITH DOT ABOVE
+1E59;N;LATIN SMALL LETTER R WITH DOT ABOVE
+1E5A;N;LATIN CAPITAL LETTER R WITH DOT BELOW
+1E5B;N;LATIN SMALL LETTER R WITH DOT BELOW
+1E5C;N;LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+1E5D;N;LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+1E5E;N;LATIN CAPITAL LETTER R WITH LINE BELOW
+1E5F;N;LATIN SMALL LETTER R WITH LINE BELOW
+1E60;N;LATIN CAPITAL LETTER S WITH DOT ABOVE
+1E61;N;LATIN SMALL LETTER S WITH DOT ABOVE
+1E62;N;LATIN CAPITAL LETTER S WITH DOT BELOW
+1E63;N;LATIN SMALL LETTER S WITH DOT BELOW
+1E64;N;LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+1E65;N;LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
+1E66;N;LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
+1E67;N;LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
+1E68;N;LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
+1E69;N;LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
+1E6A;N;LATIN CAPITAL LETTER T WITH DOT ABOVE
+1E6B;N;LATIN SMALL LETTER T WITH DOT ABOVE
+1E6C;N;LATIN CAPITAL LETTER T WITH DOT BELOW
+1E6D;N;LATIN SMALL LETTER T WITH DOT BELOW
+1E6E;N;LATIN CAPITAL LETTER T WITH LINE BELOW
+1E6F;N;LATIN SMALL LETTER T WITH LINE BELOW
+1E70;N;LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW
+1E71;N;LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW
+1E72;N;LATIN CAPITAL LETTER U WITH DIAERESIS BELOW
+1E73;N;LATIN SMALL LETTER U WITH DIAERESIS BELOW
+1E74;N;LATIN CAPITAL LETTER U WITH TILDE BELOW
+1E75;N;LATIN SMALL LETTER U WITH TILDE BELOW
+1E76;N;LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW
+1E77;N;LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW
+1E78;N;LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+1E79;N;LATIN SMALL LETTER U WITH TILDE AND ACUTE
+1E7A;N;LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
+1E7B;N;LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
+1E7C;N;LATIN CAPITAL LETTER V WITH TILDE
+1E7D;N;LATIN SMALL LETTER V WITH TILDE
+1E7E;N;LATIN CAPITAL LETTER V WITH DOT BELOW
+1E7F;N;LATIN SMALL LETTER V WITH DOT BELOW
+1E80;N;LATIN CAPITAL LETTER W WITH GRAVE
+1E81;N;LATIN SMALL LETTER W WITH GRAVE
+1E82;N;LATIN CAPITAL LETTER W WITH ACUTE
+1E83;N;LATIN SMALL LETTER W WITH ACUTE
+1E84;N;LATIN CAPITAL LETTER W WITH DIAERESIS
+1E85;N;LATIN SMALL LETTER W WITH DIAERESIS
+1E86;N;LATIN CAPITAL LETTER W WITH DOT ABOVE
+1E87;N;LATIN SMALL LETTER W WITH DOT ABOVE
+1E88;N;LATIN CAPITAL LETTER W WITH DOT BELOW
+1E89;N;LATIN SMALL LETTER W WITH DOT BELOW
+1E8A;N;LATIN CAPITAL LETTER X WITH DOT ABOVE
+1E8B;N;LATIN SMALL LETTER X WITH DOT ABOVE
+1E8C;N;LATIN CAPITAL LETTER X WITH DIAERESIS
+1E8D;N;LATIN SMALL LETTER X WITH DIAERESIS
+1E8E;N;LATIN CAPITAL LETTER Y WITH DOT ABOVE
+1E8F;N;LATIN SMALL LETTER Y WITH DOT ABOVE
+1E90;N;LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
+1E91;N;LATIN SMALL LETTER Z WITH CIRCUMFLEX
+1E92;N;LATIN CAPITAL LETTER Z WITH DOT BELOW
+1E93;N;LATIN SMALL LETTER Z WITH DOT BELOW
+1E94;N;LATIN CAPITAL LETTER Z WITH LINE BELOW
+1E95;N;LATIN SMALL LETTER Z WITH LINE BELOW
+1E96;N;LATIN SMALL LETTER H WITH LINE BELOW
+1E97;N;LATIN SMALL LETTER T WITH DIAERESIS
+1E98;N;LATIN SMALL LETTER W WITH RING ABOVE
+1E99;N;LATIN SMALL LETTER Y WITH RING ABOVE
+1E9A;N;LATIN SMALL LETTER A WITH RIGHT HALF RING
+1E9B;N;LATIN SMALL LETTER LONG S WITH DOT ABOVE
+1EA0;N;LATIN CAPITAL LETTER A WITH DOT BELOW
+1EA1;N;LATIN SMALL LETTER A WITH DOT BELOW
+1EA2;N;LATIN CAPITAL LETTER A WITH HOOK ABOVE
+1EA3;N;LATIN SMALL LETTER A WITH HOOK ABOVE
+1EA4;N;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+1EA5;N;LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+1EA6;N;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+1EA7;N;LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+1EA8;N;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+1EA9;N;LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+1EAA;N;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+1EAB;N;LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+1EAC;N;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+1EAD;N;LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+1EAE;N;LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+1EAF;N;LATIN SMALL LETTER A WITH BREVE AND ACUTE
+1EB0;N;LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+1EB1;N;LATIN SMALL LETTER A WITH BREVE AND GRAVE
+1EB2;N;LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+1EB3;N;LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+1EB4;N;LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+1EB5;N;LATIN SMALL LETTER A WITH BREVE AND TILDE
+1EB6;N;LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+1EB7;N;LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+1EB8;N;LATIN CAPITAL LETTER E WITH DOT BELOW
+1EB9;N;LATIN SMALL LETTER E WITH DOT BELOW
+1EBA;N;LATIN CAPITAL LETTER E WITH HOOK ABOVE
+1EBB;N;LATIN SMALL LETTER E WITH HOOK ABOVE
+1EBC;N;LATIN CAPITAL LETTER E WITH TILDE
+1EBD;N;LATIN SMALL LETTER E WITH TILDE
+1EBE;N;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EBF;N;LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EC0;N;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC1;N;LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC2;N;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC3;N;LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC4;N;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC5;N;LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC6;N;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC7;N;LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC8;N;LATIN CAPITAL LETTER I WITH HOOK ABOVE
+1EC9;N;LATIN SMALL LETTER I WITH HOOK ABOVE
+1ECA;N;LATIN CAPITAL LETTER I WITH DOT BELOW
+1ECB;N;LATIN SMALL LETTER I WITH DOT BELOW
+1ECC;N;LATIN CAPITAL LETTER O WITH DOT BELOW
+1ECD;N;LATIN SMALL LETTER O WITH DOT BELOW
+1ECE;N;LATIN CAPITAL LETTER O WITH HOOK ABOVE
+1ECF;N;LATIN SMALL LETTER O WITH HOOK ABOVE
+1ED0;N;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED1;N;LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED2;N;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED3;N;LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED4;N;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED5;N;LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED6;N;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED7;N;LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED8;N;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1ED9;N;LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1EDA;N;LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+1EDB;N;LATIN SMALL LETTER O WITH HORN AND ACUTE
+1EDC;N;LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+1EDD;N;LATIN SMALL LETTER O WITH HORN AND GRAVE
+1EDE;N;LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+1EDF;N;LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+1EE0;N;LATIN CAPITAL LETTER O WITH HORN AND TILDE
+1EE1;N;LATIN SMALL LETTER O WITH HORN AND TILDE
+1EE2;N;LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+1EE3;N;LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+1EE4;N;LATIN CAPITAL LETTER U WITH DOT BELOW
+1EE5;N;LATIN SMALL LETTER U WITH DOT BELOW
+1EE6;N;LATIN CAPITAL LETTER U WITH HOOK ABOVE
+1EE7;N;LATIN SMALL LETTER U WITH HOOK ABOVE
+1EE8;N;LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+1EE9;N;LATIN SMALL LETTER U WITH HORN AND ACUTE
+1EEA;N;LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+1EEB;N;LATIN SMALL LETTER U WITH HORN AND GRAVE
+1EEC;N;LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+1EED;N;LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+1EEE;N;LATIN CAPITAL LETTER U WITH HORN AND TILDE
+1EEF;N;LATIN SMALL LETTER U WITH HORN AND TILDE
+1EF0;N;LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+1EF1;N;LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+1EF2;N;LATIN CAPITAL LETTER Y WITH GRAVE
+1EF3;N;LATIN SMALL LETTER Y WITH GRAVE
+1EF4;N;LATIN CAPITAL LETTER Y WITH DOT BELOW
+1EF5;N;LATIN SMALL LETTER Y WITH DOT BELOW
+1EF6;N;LATIN CAPITAL LETTER Y WITH HOOK ABOVE
+1EF7;N;LATIN SMALL LETTER Y WITH HOOK ABOVE
+1EF8;N;LATIN CAPITAL LETTER Y WITH TILDE
+1EF9;N;LATIN SMALL LETTER Y WITH TILDE
+1F00;N;GREEK SMALL LETTER ALPHA WITH PSILI
+1F01;N;GREEK SMALL LETTER ALPHA WITH DASIA
+1F02;N;GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
+1F03;N;GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
+1F04;N;GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
+1F05;N;GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
+1F06;N;GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
+1F07;N;GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
+1F08;N;GREEK CAPITAL LETTER ALPHA WITH PSILI
+1F09;N;GREEK CAPITAL LETTER ALPHA WITH DASIA
+1F0A;N;GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
+1F0B;N;GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
+1F0C;N;GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
+1F0D;N;GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
+1F0E;N;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
+1F0F;N;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
+1F10;N;GREEK SMALL LETTER EPSILON WITH PSILI
+1F11;N;GREEK SMALL LETTER EPSILON WITH DASIA
+1F12;N;GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
+1F13;N;GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
+1F14;N;GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
+1F15;N;GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+1F18;N;GREEK CAPITAL LETTER EPSILON WITH PSILI
+1F19;N;GREEK CAPITAL LETTER EPSILON WITH DASIA
+1F1A;N;GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
+1F1B;N;GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
+1F1C;N;GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
+1F1D;N;GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+1F20;N;GREEK SMALL LETTER ETA WITH PSILI
+1F21;N;GREEK SMALL LETTER ETA WITH DASIA
+1F22;N;GREEK SMALL LETTER ETA WITH PSILI AND VARIA
+1F23;N;GREEK SMALL LETTER ETA WITH DASIA AND VARIA
+1F24;N;GREEK SMALL LETTER ETA WITH PSILI AND OXIA
+1F25;N;GREEK SMALL LETTER ETA WITH DASIA AND OXIA
+1F26;N;GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
+1F27;N;GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
+1F28;N;GREEK CAPITAL LETTER ETA WITH PSILI
+1F29;N;GREEK CAPITAL LETTER ETA WITH DASIA
+1F2A;N;GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
+1F2B;N;GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
+1F2C;N;GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
+1F2D;N;GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
+1F2E;N;GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
+1F2F;N;GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
+1F30;N;GREEK SMALL LETTER IOTA WITH PSILI
+1F31;N;GREEK SMALL LETTER IOTA WITH DASIA
+1F32;N;GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
+1F33;N;GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
+1F34;N;GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
+1F35;N;GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
+1F36;N;GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
+1F37;N;GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
+1F38;N;GREEK CAPITAL LETTER IOTA WITH PSILI
+1F39;N;GREEK CAPITAL LETTER IOTA WITH DASIA
+1F3A;N;GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
+1F3B;N;GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
+1F3C;N;GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
+1F3D;N;GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
+1F3E;N;GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
+1F3F;N;GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
+1F40;N;GREEK SMALL LETTER OMICRON WITH PSILI
+1F41;N;GREEK SMALL LETTER OMICRON WITH DASIA
+1F42;N;GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
+1F43;N;GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
+1F44;N;GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
+1F45;N;GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+1F48;N;GREEK CAPITAL LETTER OMICRON WITH PSILI
+1F49;N;GREEK CAPITAL LETTER OMICRON WITH DASIA
+1F4A;N;GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
+1F4B;N;GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
+1F4C;N;GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
+1F4D;N;GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+1F50;N;GREEK SMALL LETTER UPSILON WITH PSILI
+1F51;N;GREEK SMALL LETTER UPSILON WITH DASIA
+1F52;N;GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
+1F53;N;GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
+1F54;N;GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
+1F55;N;GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
+1F56;N;GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
+1F57;N;GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+1F59;N;GREEK CAPITAL LETTER UPSILON WITH DASIA
+1F5B;N;GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+1F5D;N;GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+1F5F;N;GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
+1F60;N;GREEK SMALL LETTER OMEGA WITH PSILI
+1F61;N;GREEK SMALL LETTER OMEGA WITH DASIA
+1F62;N;GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
+1F63;N;GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
+1F64;N;GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
+1F65;N;GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
+1F66;N;GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
+1F67;N;GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
+1F68;N;GREEK CAPITAL LETTER OMEGA WITH PSILI
+1F69;N;GREEK CAPITAL LETTER OMEGA WITH DASIA
+1F6A;N;GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
+1F6B;N;GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
+1F6C;N;GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
+1F6D;N;GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
+1F6E;N;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
+1F6F;N;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
+1F70;N;GREEK SMALL LETTER ALPHA WITH VARIA
+1F71;N;GREEK SMALL LETTER ALPHA WITH OXIA
+1F72;N;GREEK SMALL LETTER EPSILON WITH VARIA
+1F73;N;GREEK SMALL LETTER EPSILON WITH OXIA
+1F74;N;GREEK SMALL LETTER ETA WITH VARIA
+1F75;N;GREEK SMALL LETTER ETA WITH OXIA
+1F76;N;GREEK SMALL LETTER IOTA WITH VARIA
+1F77;N;GREEK SMALL LETTER IOTA WITH OXIA
+1F78;N;GREEK SMALL LETTER OMICRON WITH VARIA
+1F79;N;GREEK SMALL LETTER OMICRON WITH OXIA
+1F7A;N;GREEK SMALL LETTER UPSILON WITH VARIA
+1F7B;N;GREEK SMALL LETTER UPSILON WITH OXIA
+1F7C;N;GREEK SMALL LETTER OMEGA WITH VARIA
+1F7D;N;GREEK SMALL LETTER OMEGA WITH OXIA
+1F80;N;GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
+1F81;N;GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
+1F82;N;GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+1F83;N;GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+1F84;N;GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+1F85;N;GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+1F86;N;GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+1F87;N;GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+1F88;N;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
+1F89;N;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
+1F8A;N;GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+1F8B;N;GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+1F8C;N;GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+1F8D;N;GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+1F8E;N;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+1F8F;N;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+1F90;N;GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
+1F91;N;GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
+1F92;N;GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+1F93;N;GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+1F94;N;GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+1F95;N;GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+1F96;N;GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+1F97;N;GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+1F98;N;GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
+1F99;N;GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
+1F9A;N;GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+1F9B;N;GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+1F9C;N;GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+1F9D;N;GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+1F9E;N;GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+1F9F;N;GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+1FA0;N;GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
+1FA1;N;GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
+1FA2;N;GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+1FA3;N;GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+1FA4;N;GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+1FA5;N;GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+1FA6;N;GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+1FA7;N;GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+1FA8;N;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
+1FA9;N;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
+1FAA;N;GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+1FAB;N;GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+1FAC;N;GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+1FAD;N;GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+1FAE;N;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+1FAF;N;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+1FB0;N;GREEK SMALL LETTER ALPHA WITH VRACHY
+1FB1;N;GREEK SMALL LETTER ALPHA WITH MACRON
+1FB2;N;GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
+1FB3;N;GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI
+1FB4;N;GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+1FB6;N;GREEK SMALL LETTER ALPHA WITH PERISPOMENI
+1FB7;N;GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
+1FB8;N;GREEK CAPITAL LETTER ALPHA WITH VRACHY
+1FB9;N;GREEK CAPITAL LETTER ALPHA WITH MACRON
+1FBA;N;GREEK CAPITAL LETTER ALPHA WITH VARIA
+1FBB;N;GREEK CAPITAL LETTER ALPHA WITH OXIA
+1FBC;N;GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
+1FBD;N;GREEK KORONIS
+1FBE;N;GREEK PROSGEGRAMMENI
+1FBF;N;GREEK PSILI
+1FC0;N;GREEK PERISPOMENI
+1FC1;N;GREEK DIALYTIKA AND PERISPOMENI
+1FC2;N;GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
+1FC3;N;GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI
+1FC4;N;GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+1FC6;N;GREEK SMALL LETTER ETA WITH PERISPOMENI
+1FC7;N;GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
+1FC8;N;GREEK CAPITAL LETTER EPSILON WITH VARIA
+1FC9;N;GREEK CAPITAL LETTER EPSILON WITH OXIA
+1FCA;N;GREEK CAPITAL LETTER ETA WITH VARIA
+1FCB;N;GREEK CAPITAL LETTER ETA WITH OXIA
+1FCC;N;GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
+1FCD;N;GREEK PSILI AND VARIA
+1FCE;N;GREEK PSILI AND OXIA
+1FCF;N;GREEK PSILI AND PERISPOMENI
+1FD0;N;GREEK SMALL LETTER IOTA WITH VRACHY
+1FD1;N;GREEK SMALL LETTER IOTA WITH MACRON
+1FD2;N;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
+1FD3;N;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
+1FD6;N;GREEK SMALL LETTER IOTA WITH PERISPOMENI
+1FD7;N;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
+1FD8;N;GREEK CAPITAL LETTER IOTA WITH VRACHY
+1FD9;N;GREEK CAPITAL LETTER IOTA WITH MACRON
+1FDA;N;GREEK CAPITAL LETTER IOTA WITH VARIA
+1FDB;N;GREEK CAPITAL LETTER IOTA WITH OXIA
+1FDD;N;GREEK DASIA AND VARIA
+1FDE;N;GREEK DASIA AND OXIA
+1FDF;N;GREEK DASIA AND PERISPOMENI
+1FE0;N;GREEK SMALL LETTER UPSILON WITH VRACHY
+1FE1;N;GREEK SMALL LETTER UPSILON WITH MACRON
+1FE2;N;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
+1FE3;N;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
+1FE4;N;GREEK SMALL LETTER RHO WITH PSILI
+1FE5;N;GREEK SMALL LETTER RHO WITH DASIA
+1FE6;N;GREEK SMALL LETTER UPSILON WITH PERISPOMENI
+1FE7;N;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
+1FE8;N;GREEK CAPITAL LETTER UPSILON WITH VRACHY
+1FE9;N;GREEK CAPITAL LETTER UPSILON WITH MACRON
+1FEA;N;GREEK CAPITAL LETTER UPSILON WITH VARIA
+1FEB;N;GREEK CAPITAL LETTER UPSILON WITH OXIA
+1FEC;N;GREEK CAPITAL LETTER RHO WITH DASIA
+1FED;N;GREEK DIALYTIKA AND VARIA
+1FEE;N;GREEK DIALYTIKA AND OXIA
+1FEF;N;GREEK VARIA
+1FF2;N;GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
+1FF3;N;GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI
+1FF4;N;GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+1FF6;N;GREEK SMALL LETTER OMEGA WITH PERISPOMENI
+1FF7;N;GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
+1FF8;N;GREEK CAPITAL LETTER OMICRON WITH VARIA
+1FF9;N;GREEK CAPITAL LETTER OMICRON WITH OXIA
+1FFA;N;GREEK CAPITAL LETTER OMEGA WITH VARIA
+1FFB;N;GREEK CAPITAL LETTER OMEGA WITH OXIA
+1FFC;N;GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
+1FFD;N;GREEK OXIA
+1FFE;N;GREEK DASIA
+2000;N;EN QUAD
+2001;N;EM QUAD
+2002;N;EN SPACE
+2003;N;EM SPACE
+2004;N;THREE-PER-EM SPACE
+2005;N;FOUR-PER-EM SPACE
+2006;N;SIX-PER-EM SPACE
+2007;N;FIGURE SPACE
+2008;N;PUNCTUATION SPACE
+2009;N;THIN SPACE
+200A;N;HAIR SPACE
+200B;N;ZERO WIDTH SPACE
+200C;N;ZERO WIDTH NON-JOINER
+200D;N;ZERO WIDTH JOINER
+200E;N;LEFT-TO-RIGHT MARK
+200F;N;RIGHT-TO-LEFT MARK
+2010;A;HYPHEN
+2011;N;NON-BREAKING HYPHEN
+2012;N;FIGURE DASH
+2013;A;EN DASH
+2014;A;EM DASH
+2015;A;HORIZONTAL BAR
+2016;A;DOUBLE VERTICAL LINE
+2017;N;DOUBLE LOW LINE
+2018;A;LEFT SINGLE QUOTATION MARK
+2019;A;RIGHT SINGLE QUOTATION MARK
+201A;N;SINGLE LOW-9 QUOTATION MARK
+201B;N;SINGLE HIGH-REVERSED-9 QUOTATION MARK
+201C;A;LEFT DOUBLE QUOTATION MARK
+201D;A;RIGHT DOUBLE QUOTATION MARK
+201E;N;DOUBLE LOW-9 QUOTATION MARK
+201F;N;DOUBLE HIGH-REVERSED-9 QUOTATION MARK
+2020;A;DAGGER
+2021;A;DOUBLE DAGGER
+2022;N;BULLET
+2023;N;TRIANGULAR BULLET
+2024;N;ONE DOT LEADER
+2025;A;TWO DOT LEADER
+2026;A;HORIZONTAL ELLIPSIS
+2027;A;HYPHENATION POINT
+2028;N;LINE SEPARATOR
+2029;N;PARAGRAPH SEPARATOR
+202A;N;LEFT-TO-RIGHT EMBEDDING
+202B;N;RIGHT-TO-LEFT EMBEDDING
+202C;N;POP DIRECTIONAL FORMATTING
+202D;N;LEFT-TO-RIGHT OVERRIDE
+202E;N;RIGHT-TO-LEFT OVERRIDE
+202F;N;NARROW NO-BREAK SPACE
+2030;A;PER MILLE SIGN
+2031;N;PER TEN THOUSAND SIGN
+2032;A;PRIME
+2033;A;DOUBLE PRIME
+2034;N;TRIPLE PRIME
+2035;A;REVERSED PRIME
+2036;N;REVERSED DOUBLE PRIME
+2037;N;REVERSED TRIPLE PRIME
+2038;N;CARET
+2039;N;SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+203A;N;SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+203B;A;REFERENCE MARK
+203C;N;DOUBLE EXCLAMATION MARK
+203D;N;INTERROBANG
+203E;N;OVERLINE
+203F;N;UNDERTIE
+2040;N;CHARACTER TIE
+2041;N;CARET INSERTION POINT
+2042;N;ASTERISM
+2043;N;HYPHEN BULLET
+2044;N;FRACTION SLASH
+2045;N;LEFT SQUARE BRACKET WITH QUILL
+2046;N;RIGHT SQUARE BRACKET WITH QUILL
+2048;N;QUESTION EXCLAMATION MARK
+2049;N;EXCLAMATION QUESTION MARK
+204A;N;TIRONIAN SIGN ET
+204B;N;REVERSED PILCROW SIGN
+204C;N;BLACK LEFTWARDS BULLET
+204D;N;BLACK RIGHTWARDS BULLET
+206A;N;INHIBIT SYMMETRIC SWAPPING
+206B;N;ACTIVATE SYMMETRIC SWAPPING
+206C;N;INHIBIT ARABIC FORM SHAPING
+206D;N;ACTIVATE ARABIC FORM SHAPING
+206E;N;NATIONAL DIGIT SHAPES
+206F;N;NOMINAL DIGIT SHAPES
+2070;N;SUPERSCRIPT ZERO
+2074;A;SUPERSCRIPT FOUR
+2075;N;SUPERSCRIPT FIVE
+2076;N;SUPERSCRIPT SIX
+2077;N;SUPERSCRIPT SEVEN
+2078;N;SUPERSCRIPT EIGHT
+2079;N;SUPERSCRIPT NINE
+207A;N;SUPERSCRIPT PLUS SIGN
+207B;N;SUPERSCRIPT MINUS
+207C;N;SUPERSCRIPT EQUALS SIGN
+207D;N;SUPERSCRIPT LEFT PARENTHESIS
+207E;N;SUPERSCRIPT RIGHT PARENTHESIS
+207F;A;SUPERSCRIPT LATIN SMALL LETTER N
+2080;N;SUBSCRIPT ZERO
+2081;A;SUBSCRIPT ONE
+2082;A;SUBSCRIPT TWO
+2083;A;SUBSCRIPT THREE
+2084;A;SUBSCRIPT FOUR
+2085;N;SUBSCRIPT FIVE
+2086;N;SUBSCRIPT SIX
+2087;N;SUBSCRIPT SEVEN
+2088;N;SUBSCRIPT EIGHT
+2089;N;SUBSCRIPT NINE
+208A;N;SUBSCRIPT PLUS SIGN
+208B;N;SUBSCRIPT MINUS
+208C;N;SUBSCRIPT EQUALS SIGN
+208D;N;SUBSCRIPT LEFT PARENTHESIS
+208E;N;SUBSCRIPT RIGHT PARENTHESIS
+20A0;N;EURO-CURRENCY SIGN
+20A1;N;COLON SIGN
+20A2;N;CRUZEIRO SIGN
+20A3;N;FRENCH FRANC SIGN
+20A4;N;LIRA SIGN
+20A5;N;MILL SIGN
+20A6;N;NAIRA SIGN
+20A7;N;PESETA SIGN
+20A8;N;RUPEE SIGN
+20A9;H;WON SIGN
+20AA;N;NEW SHEQEL SIGN
+20AB;N;DONG SIGN
+20AC;A;EURO SIGN
+20AD;N;KIP SIGN
+20AE;N;TUGRIK SIGN
+20AF;N;DRACHMA SIGN
+20D0;N;COMBINING LEFT HARPOON ABOVE
+20D1;N;COMBINING RIGHT HARPOON ABOVE
+20D2;N;COMBINING LONG VERTICAL LINE OVERLAY
+20D3;N;COMBINING SHORT VERTICAL LINE OVERLAY
+20D4;N;COMBINING ANTICLOCKWISE ARROW ABOVE
+20D5;N;COMBINING CLOCKWISE ARROW ABOVE
+20D6;N;COMBINING LEFT ARROW ABOVE
+20D7;N;COMBINING RIGHT ARROW ABOVE
+20D8;N;COMBINING RING OVERLAY
+20D9;N;COMBINING CLOCKWISE RING OVERLAY
+20DA;N;COMBINING ANTICLOCKWISE RING OVERLAY
+20DB;N;COMBINING THREE DOTS ABOVE
+20DC;N;COMBINING FOUR DOTS ABOVE
+20DD;N;COMBINING ENCLOSING CIRCLE
+20DE;N;COMBINING ENCLOSING SQUARE
+20DF;N;COMBINING ENCLOSING DIAMOND
+20E0;N;COMBINING ENCLOSING CIRCLE BACKSLASH
+20E1;N;COMBINING LEFT RIGHT ARROW ABOVE
+20E2;N;COMBINING ENCLOSING SCREEN
+20E3;N;COMBINING ENCLOSING KEYCAP
+2100;N;ACCOUNT OF
+2101;N;ADDRESSED TO THE SUBJECT
+2102;N;DOUBLE-STRUCK CAPITAL C
+2103;A;DEGREE CELSIUS
+2104;N;CENTRE LINE SYMBOL
+2105;A;CARE OF
+2106;N;CADA UNA
+2107;N;EULER CONSTANT
+2108;N;SCRUPLE
+2109;A;DEGREE FAHRENHEIT
+210A;N;SCRIPT SMALL G
+210B;N;SCRIPT CAPITAL H
+210C;N;BLACK-LETTER CAPITAL H
+210D;N;DOUBLE-STRUCK CAPITAL H
+210E;N;PLANCK CONSTANT
+210F;N;PLANCK CONSTANT OVER TWO PI
+2110;N;SCRIPT CAPITAL I
+2111;N;BLACK-LETTER CAPITAL I
+2112;N;SCRIPT CAPITAL L
+2113;A;SCRIPT SMALL L
+2114;N;L B BAR SYMBOL
+2115;N;DOUBLE-STRUCK CAPITAL N
+2116;N;NUMERO SIGN
+2117;N;SOUND RECORDING COPYRIGHT
+2118;N;SCRIPT CAPITAL P
+2119;N;DOUBLE-STRUCK CAPITAL P
+211A;N;DOUBLE-STRUCK CAPITAL Q
+211B;N;SCRIPT CAPITAL R
+211C;N;BLACK-LETTER CAPITAL R
+211D;N;DOUBLE-STRUCK CAPITAL R
+211E;N;PRESCRIPTION TAKE
+211F;N;RESPONSE
+2120;N;SERVICE MARK
+2121;A;TELEPHONE SIGN
+2122;A;TRADE MARK SIGN
+2123;N;VERSICLE
+2124;N;DOUBLE-STRUCK CAPITAL Z
+2125;N;OUNCE SIGN
+2126;A;OHM SIGN
+2127;N;INVERTED OHM SIGN
+2128;N;BLACK-LETTER CAPITAL Z
+2129;N;TURNED GREEK SMALL LETTER IOTA
+212A;N;KELVIN SIGN
+212B;A;ANGSTROM SIGN
+212C;N;SCRIPT CAPITAL B
+212D;N;BLACK-LETTER CAPITAL C
+212E;N;ESTIMATED SYMBOL
+212F;N;SCRIPT SMALL E
+2130;N;SCRIPT CAPITAL E
+2131;N;SCRIPT CAPITAL F
+2132;N;TURNED CAPITAL F
+2133;N;SCRIPT CAPITAL M
+2134;N;SCRIPT SMALL O
+2135;N;ALEF SYMBOL
+2136;N;BET SYMBOL
+2137;N;GIMEL SYMBOL
+2138;N;DALET SYMBOL
+2139;N;INFORMATION SOURCE
+213A;N;ROTATED CAPITAL Q
+2153;N;VULGAR FRACTION ONE THIRD
+2154;A;VULGAR FRACTION TWO THIRDS
+2155;A;VULGAR FRACTION ONE FIFTH
+2156;N;VULGAR FRACTION TWO FIFTHS
+2157;N;VULGAR FRACTION THREE FIFTHS
+2158;N;VULGAR FRACTION FOUR FIFTHS
+2159;N;VULGAR FRACTION ONE SIXTH
+215A;N;VULGAR FRACTION FIVE SIXTHS
+215B;A;VULGAR FRACTION ONE EIGHTH
+215C;N;VULGAR FRACTION THREE EIGHTHS
+215D;N;VULGAR FRACTION FIVE EIGHTHS
+215E;A;VULGAR FRACTION SEVEN EIGHTHS
+215F;N;FRACTION NUMERATOR ONE
+2160;A;ROMAN NUMERAL ONE
+2161;A;ROMAN NUMERAL TWO
+2162;A;ROMAN NUMERAL THREE
+2163;A;ROMAN NUMERAL FOUR
+2164;A;ROMAN NUMERAL FIVE
+2165;A;ROMAN NUMERAL SIX
+2166;A;ROMAN NUMERAL SEVEN
+2167;A;ROMAN NUMERAL EIGHT
+2168;A;ROMAN NUMERAL NINE
+2169;A;ROMAN NUMERAL TEN
+216A;A;ROMAN NUMERAL ELEVEN
+216B;A;ROMAN NUMERAL TWELVE
+216C;N;ROMAN NUMERAL FIFTY
+216D;N;ROMAN NUMERAL ONE HUNDRED
+216E;N;ROMAN NUMERAL FIVE HUNDRED
+216F;N;ROMAN NUMERAL ONE THOUSAND
+2170;A;SMALL ROMAN NUMERAL ONE
+2171;A;SMALL ROMAN NUMERAL TWO
+2172;A;SMALL ROMAN NUMERAL THREE
+2173;A;SMALL ROMAN NUMERAL FOUR
+2174;A;SMALL ROMAN NUMERAL FIVE
+2175;A;SMALL ROMAN NUMERAL SIX
+2176;A;SMALL ROMAN NUMERAL SEVEN
+2177;A;SMALL ROMAN NUMERAL EIGHT
+2178;A;SMALL ROMAN NUMERAL NINE
+2179;A;SMALL ROMAN NUMERAL TEN
+217A;N;SMALL ROMAN NUMERAL ELEVEN
+217B;N;SMALL ROMAN NUMERAL TWELVE
+217C;N;SMALL ROMAN NUMERAL FIFTY
+217D;N;SMALL ROMAN NUMERAL ONE HUNDRED
+217E;N;SMALL ROMAN NUMERAL FIVE HUNDRED
+217F;N;SMALL ROMAN NUMERAL ONE THOUSAND
+2180;N;ROMAN NUMERAL ONE THOUSAND C D
+2181;N;ROMAN NUMERAL FIVE THOUSAND
+2182;N;ROMAN NUMERAL TEN THOUSAND
+2183;N;ROMAN NUMERAL REVERSED ONE HUNDRED
+2190;A;LEFTWARDS ARROW
+2191;A;UPWARDS ARROW
+2192;A;RIGHTWARDS ARROW
+2193;A;DOWNWARDS ARROW
+2194;A;LEFT RIGHT ARROW
+2195;A;UP DOWN ARROW
+2196;A;NORTH WEST ARROW
+2197;A;NORTH EAST ARROW
+2198;A;SOUTH EAST ARROW
+2199;A;SOUTH WEST ARROW
+219A;N;LEFTWARDS ARROW WITH STROKE
+219B;N;RIGHTWARDS ARROW WITH STROKE
+219C;N;LEFTWARDS WAVE ARROW
+219D;N;RIGHTWARDS WAVE ARROW
+219E;N;LEFTWARDS TWO HEADED ARROW
+219F;N;UPWARDS TWO HEADED ARROW
+21A0;N;RIGHTWARDS TWO HEADED ARROW
+21A1;N;DOWNWARDS TWO HEADED ARROW
+21A2;N;LEFTWARDS ARROW WITH TAIL
+21A3;N;RIGHTWARDS ARROW WITH TAIL
+21A4;N;LEFTWARDS ARROW FROM BAR
+21A5;N;UPWARDS ARROW FROM BAR
+21A6;N;RIGHTWARDS ARROW FROM BAR
+21A7;N;DOWNWARDS ARROW FROM BAR
+21A8;N;UP DOWN ARROW WITH BASE
+21A9;N;LEFTWARDS ARROW WITH HOOK
+21AA;N;RIGHTWARDS ARROW WITH HOOK
+21AB;N;LEFTWARDS ARROW WITH LOOP
+21AC;N;RIGHTWARDS ARROW WITH LOOP
+21AD;N;LEFT RIGHT WAVE ARROW
+21AE;N;LEFT RIGHT ARROW WITH STROKE
+21AF;N;DOWNWARDS ZIGZAG ARROW
+21B0;N;UPWARDS ARROW WITH TIP LEFTWARDS
+21B1;N;UPWARDS ARROW WITH TIP RIGHTWARDS
+21B2;N;DOWNWARDS ARROW WITH TIP LEFTWARDS
+21B3;N;DOWNWARDS ARROW WITH TIP RIGHTWARDS
+21B4;N;RIGHTWARDS ARROW WITH CORNER DOWNWARDS
+21B5;N;DOWNWARDS ARROW WITH CORNER LEFTWARDS
+21B6;N;ANTICLOCKWISE TOP SEMICIRCLE ARROW
+21B7;N;CLOCKWISE TOP SEMICIRCLE ARROW
+21B8;N;NORTH WEST ARROW TO LONG BAR
+21B9;N;LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR
+21BA;N;ANTICLOCKWISE OPEN CIRCLE ARROW
+21BB;N;CLOCKWISE OPEN CIRCLE ARROW
+21BC;N;LEFTWARDS HARPOON WITH BARB UPWARDS
+21BD;N;LEFTWARDS HARPOON WITH BARB DOWNWARDS
+21BE;N;UPWARDS HARPOON WITH BARB RIGHTWARDS
+21BF;N;UPWARDS HARPOON WITH BARB LEFTWARDS
+21C0;N;RIGHTWARDS HARPOON WITH BARB UPWARDS
+21C1;N;RIGHTWARDS HARPOON WITH BARB DOWNWARDS
+21C2;N;DOWNWARDS HARPOON WITH BARB RIGHTWARDS
+21C3;N;DOWNWARDS HARPOON WITH BARB LEFTWARDS
+21C4;N;RIGHTWARDS ARROW OVER LEFTWARDS ARROW
+21C5;N;UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW
+21C6;N;LEFTWARDS ARROW OVER RIGHTWARDS ARROW
+21C7;N;LEFTWARDS PAIRED ARROWS
+21C8;N;UPWARDS PAIRED ARROWS
+21C9;N;RIGHTWARDS PAIRED ARROWS
+21CA;N;DOWNWARDS PAIRED ARROWS
+21CB;N;LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
+21CC;N;RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
+21CD;N;LEFTWARDS DOUBLE ARROW WITH STROKE
+21CE;N;LEFT RIGHT DOUBLE ARROW WITH STROKE
+21CF;N;RIGHTWARDS DOUBLE ARROW WITH STROKE
+21D0;N;LEFTWARDS DOUBLE ARROW
+21D1;N;UPWARDS DOUBLE ARROW
+21D2;A;RIGHTWARDS DOUBLE ARROW
+21D3;N;DOWNWARDS DOUBLE ARROW
+21D4;A;LEFT RIGHT DOUBLE ARROW
+21D5;N;UP DOWN DOUBLE ARROW
+21D6;N;NORTH WEST DOUBLE ARROW
+21D7;N;NORTH EAST DOUBLE ARROW
+21D8;N;SOUTH EAST DOUBLE ARROW
+21D9;N;SOUTH WEST DOUBLE ARROW
+21DA;N;LEFTWARDS TRIPLE ARROW
+21DB;N;RIGHTWARDS TRIPLE ARROW
+21DC;N;LEFTWARDS SQUIGGLE ARROW
+21DD;N;RIGHTWARDS SQUIGGLE ARROW
+21DE;N;UPWARDS ARROW WITH DOUBLE STROKE
+21DF;N;DOWNWARDS ARROW WITH DOUBLE STROKE
+21E0;N;LEFTWARDS DASHED ARROW
+21E1;N;UPWARDS DASHED ARROW
+21E2;N;RIGHTWARDS DASHED ARROW
+21E3;N;DOWNWARDS DASHED ARROW
+21E4;N;LEFTWARDS ARROW TO BAR
+21E5;N;RIGHTWARDS ARROW TO BAR
+21E6;N;LEFTWARDS WHITE ARROW
+21E7;N;UPWARDS WHITE ARROW
+21E8;N;RIGHTWARDS WHITE ARROW
+21E9;N;DOWNWARDS WHITE ARROW
+21EA;N;UPWARDS WHITE ARROW FROM BAR
+21EB;N;UPWARDS WHITE ARROW ON PEDESTAL
+21EC;N;UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR
+21ED;N;UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR
+21EE;N;UPWARDS WHITE DOUBLE ARROW
+21EF;N;UPWARDS WHITE DOUBLE ARROW ON PEDESTAL
+21F0;N;RIGHTWARDS WHITE ARROW FROM WALL
+21F1;N;NORTH WEST ARROW TO CORNER
+21F2;N;SOUTH EAST ARROW TO CORNER
+21F3;N;UP DOWN WHITE ARROW
+2200;A;FOR ALL
+2201;N;COMPLEMENT
+2202;A;PARTIAL DIFFERENTIAL
+2203;A;THERE EXISTS
+2204;N;THERE DOES NOT EXIST
+2205;N;EMPTY SET
+2206;N;INCREMENT
+2207;A;NABLA
+2208;A;ELEMENT OF
+2209;N;NOT AN ELEMENT OF
+220A;N;SMALL ELEMENT OF
+220B;A;CONTAINS AS MEMBER
+220C;N;DOES NOT CONTAIN AS MEMBER
+220D;N;SMALL CONTAINS AS MEMBER
+220E;N;END OF PROOF
+220F;A;N-ARY PRODUCT
+2210;N;N-ARY COPRODUCT
+2211;A;N-ARY SUMMATION
+2212;N;MINUS SIGN
+2213;N;MINUS-OR-PLUS SIGN
+2214;N;DOT PLUS
+2215;A;DIVISION SLASH
+2216;N;SET MINUS
+2217;N;ASTERISK OPERATOR
+2218;N;RING OPERATOR
+2219;N;BULLET OPERATOR
+221A;A;SQUARE ROOT
+221B;N;CUBE ROOT
+221C;N;FOURTH ROOT
+221D;A;PROPORTIONAL TO
+221E;A;INFINITY
+221F;A;RIGHT ANGLE
+2220;A;ANGLE
+2221;N;MEASURED ANGLE
+2222;N;SPHERICAL ANGLE
+2223;A;DIVIDES
+2224;N;DOES NOT DIVIDE
+2225;A;PARALLEL TO
+2226;N;NOT PARALLEL TO
+2227;A;LOGICAL AND
+2228;A;LOGICAL OR
+2229;A;INTERSECTION
+222A;A;UNION
+222B;A;INTEGRAL
+222C;A;DOUBLE INTEGRAL
+222D;N;TRIPLE INTEGRAL
+222E;A;CONTOUR INTEGRAL
+222F;N;SURFACE INTEGRAL
+2230;N;VOLUME INTEGRAL
+2231;N;CLOCKWISE INTEGRAL
+2232;N;CLOCKWISE CONTOUR INTEGRAL
+2233;N;ANTICLOCKWISE CONTOUR INTEGRAL
+2234;A;THEREFORE
+2235;A;BECAUSE
+2236;A;RATIO
+2237;A;PROPORTION
+2238;N;DOT MINUS
+2239;N;EXCESS
+223A;N;GEOMETRIC PROPORTION
+223B;N;HOMOTHETIC
+223C;A;TILDE OPERATOR
+223D;A;REVERSED TILDE
+223E;N;INVERTED LAZY S
+223F;N;SINE WAVE
+2240;N;WREATH PRODUCT
+2241;N;NOT TILDE
+2242;N;MINUS TILDE
+2243;N;ASYMPTOTICALLY EQUAL TO
+2244;N;NOT ASYMPTOTICALLY EQUAL TO
+2245;N;APPROXIMATELY EQUAL TO
+2246;N;APPROXIMATELY BUT NOT ACTUALLY EQUAL TO
+2247;N;NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
+2248;A;ALMOST EQUAL TO
+2249;N;NOT ALMOST EQUAL TO
+224A;N;ALMOST EQUAL OR EQUAL TO
+224B;N;TRIPLE TILDE
+224C;A;ALL EQUAL TO
+224D;N;EQUIVALENT TO
+224E;N;GEOMETRICALLY EQUIVALENT TO
+224F;N;DIFFERENCE BETWEEN
+2250;N;APPROACHES THE LIMIT
+2251;N;GEOMETRICALLY EQUAL TO
+2252;A;APPROXIMATELY EQUAL TO OR THE IMAGE OF
+2253;N;IMAGE OF OR APPROXIMATELY EQUAL TO
+2254;N;COLON EQUALS
+2255;N;EQUALS COLON
+2256;N;RING IN EQUAL TO
+2257;N;RING EQUAL TO
+2258;N;CORRESPONDS TO
+2259;N;ESTIMATES
+225A;N;EQUIANGULAR TO
+225B;N;STAR EQUALS
+225C;N;DELTA EQUAL TO
+225D;N;EQUAL TO BY DEFINITION
+225E;N;MEASURED BY
+225F;N;QUESTIONED EQUAL TO
+2260;A;NOT EQUAL TO
+2261;A;IDENTICAL TO
+2262;N;NOT IDENTICAL TO
+2263;N;STRICTLY EQUIVALENT TO
+2264;A;LESS-THAN OR EQUAL TO
+2265;A;GREATER-THAN OR EQUAL TO
+2266;A;LESS-THAN OVER EQUAL TO
+2267;A;GREATER-THAN OVER EQUAL TO
+2268;N;LESS-THAN BUT NOT EQUAL TO
+2269;N;GREATER-THAN BUT NOT EQUAL TO
+226A;A;MUCH LESS-THAN
+226B;A;MUCH GREATER-THAN
+226C;N;BETWEEN
+226D;N;NOT EQUIVALENT TO
+226E;A;NOT LESS-THAN
+226F;A;NOT GREATER-THAN
+2270;N;NEITHER LESS-THAN NOR EQUAL TO
+2271;N;NEITHER GREATER-THAN NOR EQUAL TO
+2272;N;LESS-THAN OR EQUIVALENT TO
+2273;N;GREATER-THAN OR EQUIVALENT TO
+2274;N;NEITHER LESS-THAN NOR EQUIVALENT TO
+2275;N;NEITHER GREATER-THAN NOR EQUIVALENT TO
+2276;N;LESS-THAN OR GREATER-THAN
+2277;N;GREATER-THAN OR LESS-THAN
+2278;N;NEITHER LESS-THAN NOR GREATER-THAN
+2279;N;NEITHER GREATER-THAN NOR LESS-THAN
+227A;N;PRECEDES
+227B;N;SUCCEEDS
+227C;N;PRECEDES OR EQUAL TO
+227D;N;SUCCEEDS OR EQUAL TO
+227E;N;PRECEDES OR EQUIVALENT TO
+227F;N;SUCCEEDS OR EQUIVALENT TO
+2280;N;DOES NOT PRECEDE
+2281;N;DOES NOT SUCCEED
+2282;A;SUBSET OF
+2283;A;SUPERSET OF
+2284;N;NOT A SUBSET OF
+2285;N;NOT A SUPERSET OF
+2286;A;SUBSET OF OR EQUAL TO
+2287;A;SUPERSET OF OR EQUAL TO
+2288;N;NEITHER A SUBSET OF NOR EQUAL TO
+2289;N;NEITHER A SUPERSET OF NOR EQUAL TO
+228A;N;SUBSET OF WITH NOT EQUAL TO
+228B;N;SUPERSET OF WITH NOT EQUAL TO
+228C;N;MULTISET
+228D;N;MULTISET MULTIPLICATION
+228E;N;MULTISET UNION
+228F;N;SQUARE IMAGE OF
+2290;N;SQUARE ORIGINAL OF
+2291;N;SQUARE IMAGE OF OR EQUAL TO
+2292;N;SQUARE ORIGINAL OF OR EQUAL TO
+2293;N;SQUARE CAP
+2294;N;SQUARE CUP
+2295;A;CIRCLED PLUS
+2296;N;CIRCLED MINUS
+2297;N;CIRCLED TIMES
+2298;N;CIRCLED DIVISION SLASH
+2299;A;CIRCLED DOT OPERATOR
+229A;N;CIRCLED RING OPERATOR
+229B;N;CIRCLED ASTERISK OPERATOR
+229C;N;CIRCLED EQUALS
+229D;N;CIRCLED DASH
+229E;N;SQUARED PLUS
+229F;N;SQUARED MINUS
+22A0;N;SQUARED TIMES
+22A1;N;SQUARED DOT OPERATOR
+22A2;N;RIGHT TACK
+22A3;N;LEFT TACK
+22A4;N;DOWN TACK
+22A5;A;UP TACK
+22A6;N;ASSERTION
+22A7;N;MODELS
+22A8;N;TRUE
+22A9;N;FORCES
+22AA;N;TRIPLE VERTICAL BAR RIGHT TURNSTILE
+22AB;N;DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
+22AC;N;DOES NOT PROVE
+22AD;N;NOT TRUE
+22AE;N;DOES NOT FORCE
+22AF;N;NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
+22B0;N;PRECEDES UNDER RELATION
+22B1;N;SUCCEEDS UNDER RELATION
+22B2;N;NORMAL SUBGROUP OF
+22B3;N;CONTAINS AS NORMAL SUBGROUP
+22B4;N;NORMAL SUBGROUP OF OR EQUAL TO
+22B5;N;CONTAINS AS NORMAL SUBGROUP OR EQUAL TO
+22B6;N;ORIGINAL OF
+22B7;N;IMAGE OF
+22B8;N;MULTIMAP
+22B9;N;HERMITIAN CONJUGATE MATRIX
+22BA;N;INTERCALATE
+22BB;N;XOR
+22BC;N;NAND
+22BD;N;NOR
+22BE;N;RIGHT ANGLE WITH ARC
+22BF;A;RIGHT TRIANGLE
+22C0;N;N-ARY LOGICAL AND
+22C1;N;N-ARY LOGICAL OR
+22C2;N;N-ARY INTERSECTION
+22C3;N;N-ARY UNION
+22C4;N;DIAMOND OPERATOR
+22C5;N;DOT OPERATOR
+22C6;N;STAR OPERATOR
+22C7;N;DIVISION TIMES
+22C8;N;BOWTIE
+22C9;N;LEFT NORMAL FACTOR SEMIDIRECT PRODUCT
+22CA;N;RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT
+22CB;N;LEFT SEMIDIRECT PRODUCT
+22CC;N;RIGHT SEMIDIRECT PRODUCT
+22CD;N;REVERSED TILDE EQUALS
+22CE;N;CURLY LOGICAL OR
+22CF;N;CURLY LOGICAL AND
+22D0;N;DOUBLE SUBSET
+22D1;N;DOUBLE SUPERSET
+22D2;N;DOUBLE INTERSECTION
+22D3;N;DOUBLE UNION
+22D4;N;PITCHFORK
+22D5;N;EQUAL AND PARALLEL TO
+22D6;N;LESS-THAN WITH DOT
+22D7;N;GREATER-THAN WITH DOT
+22D8;N;VERY MUCH LESS-THAN
+22D9;N;VERY MUCH GREATER-THAN
+22DA;N;LESS-THAN EQUAL TO OR GREATER-THAN
+22DB;N;GREATER-THAN EQUAL TO OR LESS-THAN
+22DC;N;EQUAL TO OR LESS-THAN
+22DD;N;EQUAL TO OR GREATER-THAN
+22DE;N;EQUAL TO OR PRECEDES
+22DF;N;EQUAL TO OR SUCCEEDS
+22E0;N;DOES NOT PRECEDE OR EQUAL
+22E1;N;DOES NOT SUCCEED OR EQUAL
+22E2;N;NOT SQUARE IMAGE OF OR EQUAL TO
+22E3;N;NOT SQUARE ORIGINAL OF OR EQUAL TO
+22E4;N;SQUARE IMAGE OF OR NOT EQUAL TO
+22E5;N;SQUARE ORIGINAL OF OR NOT EQUAL TO
+22E6;N;LESS-THAN BUT NOT EQUIVALENT TO
+22E7;N;GREATER-THAN BUT NOT EQUIVALENT TO
+22E8;N;PRECEDES BUT NOT EQUIVALENT TO
+22E9;N;SUCCEEDS BUT NOT EQUIVALENT TO
+22EA;N;NOT NORMAL SUBGROUP OF
+22EB;N;DOES NOT CONTAIN AS NORMAL SUBGROUP
+22EC;N;NOT NORMAL SUBGROUP OF OR EQUAL TO
+22ED;N;DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
+22EE;N;VERTICAL ELLIPSIS
+22EF;N;MIDLINE HORIZONTAL ELLIPSIS
+22F0;N;UP RIGHT DIAGONAL ELLIPSIS
+22F1;N;DOWN RIGHT DIAGONAL ELLIPSIS
+2300;N;DIAMETER SIGN
+2301;N;ELECTRIC ARROW
+2302;N;HOUSE
+2303;N;UP ARROWHEAD
+2304;N;DOWN ARROWHEAD
+2305;N;PROJECTIVE
+2306;N;PERSPECTIVE
+2307;N;WAVY LINE
+2308;N;LEFT CEILING
+2309;N;RIGHT CEILING
+230A;N;LEFT FLOOR
+230B;N;RIGHT FLOOR
+230C;N;BOTTOM RIGHT CROP
+230D;N;BOTTOM LEFT CROP
+230E;N;TOP RIGHT CROP
+230F;N;TOP LEFT CROP
+2310;N;REVERSED NOT SIGN
+2311;N;SQUARE LOZENGE
+2312;A;ARC
+2313;N;SEGMENT
+2314;N;SECTOR
+2315;N;TELEPHONE RECORDER
+2316;N;POSITION INDICATOR
+2317;N;VIEWDATA SQUARE
+2318;N;PLACE OF INTEREST SIGN
+2319;N;TURNED NOT SIGN
+231A;N;WATCH
+231B;N;HOURGLASS
+231C;N;TOP LEFT CORNER
+231D;N;TOP RIGHT CORNER
+231E;N;BOTTOM LEFT CORNER
+231F;N;BOTTOM RIGHT CORNER
+2320;N;TOP HALF INTEGRAL
+2321;N;BOTTOM HALF INTEGRAL
+2322;N;FROWN
+2323;N;SMILE
+2324;N;UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS
+2325;N;OPTION KEY
+2326;N;ERASE TO THE RIGHT
+2327;N;X IN A RECTANGLE BOX
+2328;N;KEYBOARD
+2329;N;LEFT-POINTING ANGLE BRACKET
+232A;N;RIGHT-POINTING ANGLE BRACKET
+232B;N;ERASE TO THE LEFT
+232C;N;BENZENE RING
+232D;N;CYLINDRICITY
+232E;N;ALL AROUND-PROFILE
+232F;N;SYMMETRY
+2330;N;TOTAL RUNOUT
+2331;N;DIMENSION ORIGIN
+2332;N;CONICAL TAPER
+2333;N;SLOPE
+2334;N;COUNTERBORE
+2335;N;COUNTERSINK
+2336;N;APL FUNCTIONAL SYMBOL I-BEAM
+2337;N;APL FUNCTIONAL SYMBOL SQUISH QUAD
+2338;N;APL FUNCTIONAL SYMBOL QUAD EQUAL
+2339;N;APL FUNCTIONAL SYMBOL QUAD DIVIDE
+233A;N;APL FUNCTIONAL SYMBOL QUAD DIAMOND
+233B;N;APL FUNCTIONAL SYMBOL QUAD JOT
+233C;N;APL FUNCTIONAL SYMBOL QUAD CIRCLE
+233D;N;APL FUNCTIONAL SYMBOL CIRCLE STILE
+233E;N;APL FUNCTIONAL SYMBOL CIRCLE JOT
+233F;N;APL FUNCTIONAL SYMBOL SLASH BAR
+2340;N;APL FUNCTIONAL SYMBOL BACKSLASH BAR
+2341;N;APL FUNCTIONAL SYMBOL QUAD SLASH
+2342;N;APL FUNCTIONAL SYMBOL QUAD BACKSLASH
+2343;N;APL FUNCTIONAL SYMBOL QUAD LESS-THAN
+2344;N;APL FUNCTIONAL SYMBOL QUAD GREATER-THAN
+2345;N;APL FUNCTIONAL SYMBOL LEFTWARDS VANE
+2346;N;APL FUNCTIONAL SYMBOL RIGHTWARDS VANE
+2347;N;APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW
+2348;N;APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW
+2349;N;APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH
+234A;N;APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR
+234B;N;APL FUNCTIONAL SYMBOL DELTA STILE
+234C;N;APL FUNCTIONAL SYMBOL QUAD DOWN CARET
+234D;N;APL FUNCTIONAL SYMBOL QUAD DELTA
+234E;N;APL FUNCTIONAL SYMBOL DOWN TACK JOT
+234F;N;APL FUNCTIONAL SYMBOL UPWARDS VANE
+2350;N;APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW
+2351;N;APL FUNCTIONAL SYMBOL UP TACK OVERBAR
+2352;N;APL FUNCTIONAL SYMBOL DEL STILE
+2353;N;APL FUNCTIONAL SYMBOL QUAD UP CARET
+2354;N;APL FUNCTIONAL SYMBOL QUAD DEL
+2355;N;APL FUNCTIONAL SYMBOL UP TACK JOT
+2356;N;APL FUNCTIONAL SYMBOL DOWNWARDS VANE
+2357;N;APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW
+2358;N;APL FUNCTIONAL SYMBOL QUOTE UNDERBAR
+2359;N;APL FUNCTIONAL SYMBOL DELTA UNDERBAR
+235A;N;APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR
+235B;N;APL FUNCTIONAL SYMBOL JOT UNDERBAR
+235C;N;APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR
+235D;N;APL FUNCTIONAL SYMBOL UP SHOE JOT
+235E;N;APL FUNCTIONAL SYMBOL QUOTE QUAD
+235F;N;APL FUNCTIONAL SYMBOL CIRCLE STAR
+2360;N;APL FUNCTIONAL SYMBOL QUAD COLON
+2361;N;APL FUNCTIONAL SYMBOL UP TACK DIAERESIS
+2362;N;APL FUNCTIONAL SYMBOL DEL DIAERESIS
+2363;N;APL FUNCTIONAL SYMBOL STAR DIAERESIS
+2364;N;APL FUNCTIONAL SYMBOL JOT DIAERESIS
+2365;N;APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS
+2366;N;APL FUNCTIONAL SYMBOL DOWN SHOE STILE
+2367;N;APL FUNCTIONAL SYMBOL LEFT SHOE STILE
+2368;N;APL FUNCTIONAL SYMBOL TILDE DIAERESIS
+2369;N;APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS
+236A;N;APL FUNCTIONAL SYMBOL COMMA BAR
+236B;N;APL FUNCTIONAL SYMBOL DEL TILDE
+236C;N;APL FUNCTIONAL SYMBOL ZILDE
+236D;N;APL FUNCTIONAL SYMBOL STILE TILDE
+236E;N;APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR
+236F;N;APL FUNCTIONAL SYMBOL QUAD NOT EQUAL
+2370;N;APL FUNCTIONAL SYMBOL QUAD QUESTION
+2371;N;APL FUNCTIONAL SYMBOL DOWN CARET TILDE
+2372;N;APL FUNCTIONAL SYMBOL UP CARET TILDE
+2373;N;APL FUNCTIONAL SYMBOL IOTA
+2374;N;APL FUNCTIONAL SYMBOL RHO
+2375;N;APL FUNCTIONAL SYMBOL OMEGA
+2376;N;APL FUNCTIONAL SYMBOL ALPHA UNDERBAR
+2377;N;APL FUNCTIONAL SYMBOL EPSILON UNDERBAR
+2378;N;APL FUNCTIONAL SYMBOL IOTA UNDERBAR
+2379;N;APL FUNCTIONAL SYMBOL OMEGA UNDERBAR
+237A;N;APL FUNCTIONAL SYMBOL ALPHA
+237B;N;NOT CHECK MARK
+237D;N;SHOULDERED OPEN BOX
+237E;N;BELL SYMBOL
+237F;N;VERTICAL LINE WITH MIDDLE DOT
+2380;N;INSERTION SYMBOL
+2381;N;CONTINUOUS UNDERLINE SYMBOL
+2382;N;DISCONTINUOUS UNDERLINE SYMBOL
+2383;N;EMPHASIS SYMBOL
+2384;N;COMPOSITION SYMBOL
+2385;N;WHITE SQUARE WITH CENTRE VERTICAL LINE
+2386;N;ENTER SYMBOL
+2387;N;ALTERNATIVE KEY SYMBOL
+2388;N;HELM SYMBOL
+2389;N;CIRCLED HORIZONTAL BAR WITH NOTCH
+238A;N;CIRCLED TRIANGLE DOWN
+238B;N;BROKEN CIRCLE WITH NORTHWEST ARROW
+238C;N;UNDO SYMBOL
+238D;N;MONOSTABLE SYMBOL
+238E;N;HYSTERESIS SYMBOL
+238F;N;OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL
+2390;N;OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL
+2391;N;PASSIVE-PULL-DOWN-OUTPUT SYMBOL
+2392;N;PASSIVE-PULL-UP-OUTPUT SYMBOL
+2393;N;DIRECT CURRENT SYMBOL FORM TWO
+2394;N;SOFTWARE-FUNCTION SYMBOL
+2395;N;APL FUNCTIONAL SYMBOL QUAD
+2396;N;DECIMAL SEPARATOR KEY SYMBOL
+2397;N;PREVIOUS PAGE
+2398;N;NEXT PAGE
+2399;N;PRINT SCREEN SYMBOL
+239A;N;CLEAR SCREEN SYMBOL
+2400;N;SYMBOL FOR NULL
+2401;N;SYMBOL FOR START OF HEADING
+2402;N;SYMBOL FOR START OF TEXT
+2403;N;SYMBOL FOR END OF TEXT
+2404;N;SYMBOL FOR END OF TRANSMISSION
+2405;N;SYMBOL FOR ENQUIRY
+2406;N;SYMBOL FOR ACKNOWLEDGE
+2407;N;SYMBOL FOR BELL
+2408;N;SYMBOL FOR BACKSPACE
+2409;N;SYMBOL FOR HORIZONTAL TABULATION
+240A;N;SYMBOL FOR LINE FEED
+240B;N;SYMBOL FOR VERTICAL TABULATION
+240C;N;SYMBOL FOR FORM FEED
+240D;N;SYMBOL FOR CARRIAGE RETURN
+240E;N;SYMBOL FOR SHIFT OUT
+240F;N;SYMBOL FOR SHIFT IN
+2410;N;SYMBOL FOR DATA LINK ESCAPE
+2411;N;SYMBOL FOR DEVICE CONTROL ONE
+2412;N;SYMBOL FOR DEVICE CONTROL TWO
+2413;N;SYMBOL FOR DEVICE CONTROL THREE
+2414;N;SYMBOL FOR DEVICE CONTROL FOUR
+2415;N;SYMBOL FOR NEGATIVE ACKNOWLEDGE
+2416;N;SYMBOL FOR SYNCHRONOUS IDLE
+2417;N;SYMBOL FOR END OF TRANSMISSION BLOCK
+2418;N;SYMBOL FOR CANCEL
+2419;N;SYMBOL FOR END OF MEDIUM
+241A;N;SYMBOL FOR SUBSTITUTE
+241B;N;SYMBOL FOR ESCAPE
+241C;N;SYMBOL FOR FILE SEPARATOR
+241D;N;SYMBOL FOR GROUP SEPARATOR
+241E;N;SYMBOL FOR RECORD SEPARATOR
+241F;N;SYMBOL FOR UNIT SEPARATOR
+2420;N;SYMBOL FOR SPACE
+2421;N;SYMBOL FOR DELETE
+2422;N;BLANK SYMBOL
+2423;N;OPEN BOX
+2424;N;SYMBOL FOR NEWLINE
+2425;N;SYMBOL FOR DELETE FORM TWO
+2426;N;SYMBOL FOR SUBSTITUTE FORM TWO
+2440;N;OCR HOOK
+2441;N;OCR CHAIR
+2442;N;OCR FORK
+2443;N;OCR INVERTED FORK
+2444;N;OCR BELT BUCKLE
+2445;N;OCR BOW TIE
+2446;N;OCR BRANCH BANK IDENTIFICATION
+2447;N;OCR AMOUNT OF CHECK
+2448;N;OCR DASH
+2449;N;OCR CUSTOMER ACCOUNT NUMBER
+244A;N;OCR DOUBLE BACKSLASH
+2460;A;CIRCLED DIGIT ONE
+2461;A;CIRCLED DIGIT TWO
+2462;A;CIRCLED DIGIT THREE
+2463;A;CIRCLED DIGIT FOUR
+2464;A;CIRCLED DIGIT FIVE
+2465;A;CIRCLED DIGIT SIX
+2466;A;CIRCLED DIGIT SEVEN
+2467;A;CIRCLED DIGIT EIGHT
+2468;A;CIRCLED DIGIT NINE
+2469;A;CIRCLED NUMBER TEN
+246A;A;CIRCLED NUMBER ELEVEN
+246B;A;CIRCLED NUMBER TWELVE
+246C;A;CIRCLED NUMBER THIRTEEN
+246D;A;CIRCLED NUMBER FOURTEEN
+246E;A;CIRCLED NUMBER FIFTEEN
+246F;A;CIRCLED NUMBER SIXTEEN
+2470;A;CIRCLED NUMBER SEVENTEEN
+2471;A;CIRCLED NUMBER EIGHTEEN
+2472;A;CIRCLED NUMBER NINETEEN
+2473;A;CIRCLED NUMBER TWENTY
+2474;A;PARENTHESIZED DIGIT ONE
+2475;A;PARENTHESIZED DIGIT TWO
+2476;A;PARENTHESIZED DIGIT THREE
+2477;A;PARENTHESIZED DIGIT FOUR
+2478;A;PARENTHESIZED DIGIT FIVE
+2479;A;PARENTHESIZED DIGIT SIX
+247A;A;PARENTHESIZED DIGIT SEVEN
+247B;A;PARENTHESIZED DIGIT EIGHT
+247C;A;PARENTHESIZED DIGIT NINE
+247D;A;PARENTHESIZED NUMBER TEN
+247E;A;PARENTHESIZED NUMBER ELEVEN
+247F;A;PARENTHESIZED NUMBER TWELVE
+2480;A;PARENTHESIZED NUMBER THIRTEEN
+2481;A;PARENTHESIZED NUMBER FOURTEEN
+2482;A;PARENTHESIZED NUMBER FIFTEEN
+2483;A;PARENTHESIZED NUMBER SIXTEEN
+2484;A;PARENTHESIZED NUMBER SEVENTEEN
+2485;A;PARENTHESIZED NUMBER EIGHTEEN
+2486;A;PARENTHESIZED NUMBER NINETEEN
+2487;A;PARENTHESIZED NUMBER TWENTY
+2488;A;DIGIT ONE FULL STOP
+2489;A;DIGIT TWO FULL STOP
+248A;A;DIGIT THREE FULL STOP
+248B;A;DIGIT FOUR FULL STOP
+248C;A;DIGIT FIVE FULL STOP
+248D;A;DIGIT SIX FULL STOP
+248E;A;DIGIT SEVEN FULL STOP
+248F;A;DIGIT EIGHT FULL STOP
+2490;A;DIGIT NINE FULL STOP
+2491;A;NUMBER TEN FULL STOP
+2492;A;NUMBER ELEVEN FULL STOP
+2493;A;NUMBER TWELVE FULL STOP
+2494;A;NUMBER THIRTEEN FULL STOP
+2495;A;NUMBER FOURTEEN FULL STOP
+2496;A;NUMBER FIFTEEN FULL STOP
+2497;A;NUMBER SIXTEEN FULL STOP
+2498;A;NUMBER SEVENTEEN FULL STOP
+2499;A;NUMBER EIGHTEEN FULL STOP
+249A;A;NUMBER NINETEEN FULL STOP
+249B;A;NUMBER TWENTY FULL STOP
+249C;A;PARENTHESIZED LATIN SMALL LETTER A
+249D;A;PARENTHESIZED LATIN SMALL LETTER B
+249E;A;PARENTHESIZED LATIN SMALL LETTER C
+249F;A;PARENTHESIZED LATIN SMALL LETTER D
+24A0;A;PARENTHESIZED LATIN SMALL LETTER E
+24A1;A;PARENTHESIZED LATIN SMALL LETTER F
+24A2;A;PARENTHESIZED LATIN SMALL LETTER G
+24A3;A;PARENTHESIZED LATIN SMALL LETTER H
+24A4;A;PARENTHESIZED LATIN SMALL LETTER I
+24A5;A;PARENTHESIZED LATIN SMALL LETTER J
+24A6;A;PARENTHESIZED LATIN SMALL LETTER K
+24A7;A;PARENTHESIZED LATIN SMALL LETTER L
+24A8;A;PARENTHESIZED LATIN SMALL LETTER M
+24A9;A;PARENTHESIZED LATIN SMALL LETTER N
+24AA;A;PARENTHESIZED LATIN SMALL LETTER O
+24AB;A;PARENTHESIZED LATIN SMALL LETTER P
+24AC;A;PARENTHESIZED LATIN SMALL LETTER Q
+24AD;A;PARENTHESIZED LATIN SMALL LETTER R
+24AE;A;PARENTHESIZED LATIN SMALL LETTER S
+24AF;A;PARENTHESIZED LATIN SMALL LETTER T
+24B0;A;PARENTHESIZED LATIN SMALL LETTER U
+24B1;A;PARENTHESIZED LATIN SMALL LETTER V
+24B2;A;PARENTHESIZED LATIN SMALL LETTER W
+24B3;A;PARENTHESIZED LATIN SMALL LETTER X
+24B4;A;PARENTHESIZED LATIN SMALL LETTER Y
+24B5;A;PARENTHESIZED LATIN SMALL LETTER Z
+24B6;A;CIRCLED LATIN CAPITAL LETTER A
+24B7;A;CIRCLED LATIN CAPITAL LETTER B
+24B8;A;CIRCLED LATIN CAPITAL LETTER C
+24B9;A;CIRCLED LATIN CAPITAL LETTER D
+24BA;A;CIRCLED LATIN CAPITAL LETTER E
+24BB;A;CIRCLED LATIN CAPITAL LETTER F
+24BC;A;CIRCLED LATIN CAPITAL LETTER G
+24BD;A;CIRCLED LATIN CAPITAL LETTER H
+24BE;A;CIRCLED LATIN CAPITAL LETTER I
+24BF;A;CIRCLED LATIN CAPITAL LETTER J
+24C0;N;CIRCLED LATIN CAPITAL LETTER K
+24C1;N;CIRCLED LATIN CAPITAL LETTER L
+24C2;N;CIRCLED LATIN CAPITAL LETTER M
+24C3;N;CIRCLED LATIN CAPITAL LETTER N
+24C4;N;CIRCLED LATIN CAPITAL LETTER O
+24C5;N;CIRCLED LATIN CAPITAL LETTER P
+24C6;N;CIRCLED LATIN CAPITAL LETTER Q
+24C7;N;CIRCLED LATIN CAPITAL LETTER R
+24C8;N;CIRCLED LATIN CAPITAL LETTER S
+24C9;N;CIRCLED LATIN CAPITAL LETTER T
+24CA;N;CIRCLED LATIN CAPITAL LETTER U
+24CB;N;CIRCLED LATIN CAPITAL LETTER V
+24CC;N;CIRCLED LATIN CAPITAL LETTER W
+24CD;N;CIRCLED LATIN CAPITAL LETTER X
+24CE;N;CIRCLED LATIN CAPITAL LETTER Y
+24CF;N;CIRCLED LATIN CAPITAL LETTER Z
+24D0;A;CIRCLED LATIN SMALL LETTER A
+24D1;A;CIRCLED LATIN SMALL LETTER B
+24D2;A;CIRCLED LATIN SMALL LETTER C
+24D3;A;CIRCLED LATIN SMALL LETTER D
+24D4;A;CIRCLED LATIN SMALL LETTER E
+24D5;A;CIRCLED LATIN SMALL LETTER F
+24D6;A;CIRCLED LATIN SMALL LETTER G
+24D7;A;CIRCLED LATIN SMALL LETTER H
+24D8;A;CIRCLED LATIN SMALL LETTER I
+24D9;A;CIRCLED LATIN SMALL LETTER J
+24DA;A;CIRCLED LATIN SMALL LETTER K
+24DB;A;CIRCLED LATIN SMALL LETTER L
+24DC;A;CIRCLED LATIN SMALL LETTER M
+24DD;A;CIRCLED LATIN SMALL LETTER N
+24DE;A;CIRCLED LATIN SMALL LETTER O
+24DF;A;CIRCLED LATIN SMALL LETTER P
+24E0;A;CIRCLED LATIN SMALL LETTER Q
+24E1;A;CIRCLED LATIN SMALL LETTER R
+24E2;A;CIRCLED LATIN SMALL LETTER S
+24E3;A;CIRCLED LATIN SMALL LETTER T
+24E4;A;CIRCLED LATIN SMALL LETTER U
+24E5;A;CIRCLED LATIN SMALL LETTER V
+24E6;A;CIRCLED LATIN SMALL LETTER W
+24E7;A;CIRCLED LATIN SMALL LETTER X
+24E8;A;CIRCLED LATIN SMALL LETTER Y
+24E9;A;CIRCLED LATIN SMALL LETTER Z
+24EA;N;CIRCLED DIGIT ZERO
+2500;A;BOX DRAWINGS LIGHT HORIZONTAL
+2501;A;BOX DRAWINGS HEAVY HORIZONTAL
+2502;A;BOX DRAWINGS LIGHT VERTICAL
+2503;A;BOX DRAWINGS HEAVY VERTICAL
+2504;A;BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL
+2505;A;BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL
+2506;A;BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL
+2507;A;BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL
+2508;A;BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL
+2509;A;BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL
+250A;A;BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL
+250B;A;BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL
+250C;A;BOX DRAWINGS LIGHT DOWN AND RIGHT
+250D;A;BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY
+250E;A;BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT
+250F;A;BOX DRAWINGS HEAVY DOWN AND RIGHT
+2510;A;BOX DRAWINGS LIGHT DOWN AND LEFT
+2511;A;BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY
+2512;A;BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT
+2513;A;BOX DRAWINGS HEAVY DOWN AND LEFT
+2514;A;BOX DRAWINGS LIGHT UP AND RIGHT
+2515;A;BOX DRAWINGS UP LIGHT AND RIGHT HEAVY
+2516;A;BOX DRAWINGS UP HEAVY AND RIGHT LIGHT
+2517;A;BOX DRAWINGS HEAVY UP AND RIGHT
+2518;A;BOX DRAWINGS LIGHT UP AND LEFT
+2519;A;BOX DRAWINGS UP LIGHT AND LEFT HEAVY
+251A;A;BOX DRAWINGS UP HEAVY AND LEFT LIGHT
+251B;A;BOX DRAWINGS HEAVY UP AND LEFT
+251C;A;BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+251D;A;BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY
+251E;A;BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT
+251F;A;BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT
+2520;A;BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT
+2521;A;BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY
+2522;A;BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY
+2523;A;BOX DRAWINGS HEAVY VERTICAL AND RIGHT
+2524;A;BOX DRAWINGS LIGHT VERTICAL AND LEFT
+2525;A;BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY
+2526;A;BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT
+2527;A;BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT
+2528;A;BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT
+2529;A;BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY
+252A;A;BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY
+252B;A;BOX DRAWINGS HEAVY VERTICAL AND LEFT
+252C;A;BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+252D;A;BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT
+252E;A;BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT
+252F;A;BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY
+2530;A;BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT
+2531;A;BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY
+2532;A;BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY
+2533;A;BOX DRAWINGS HEAVY DOWN AND HORIZONTAL
+2534;A;BOX DRAWINGS LIGHT UP AND HORIZONTAL
+2535;A;BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT
+2536;A;BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT
+2537;A;BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY
+2538;A;BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT
+2539;A;BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY
+253A;A;BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY
+253B;A;BOX DRAWINGS HEAVY UP AND HORIZONTAL
+253C;A;BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+253D;A;BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT
+253E;A;BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT
+253F;A;BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY
+2540;A;BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT
+2541;A;BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT
+2542;A;BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT
+2543;A;BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT
+2544;A;BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT
+2545;A;BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT
+2546;A;BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT
+2547;A;BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY
+2548;A;BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY
+2549;A;BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY
+254A;A;BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY
+254B;A;BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL
+254C;N;BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL
+254D;N;BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL
+254E;N;BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL
+254F;N;BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL
+2550;A;BOX DRAWINGS DOUBLE HORIZONTAL
+2551;A;BOX DRAWINGS DOUBLE VERTICAL
+2552;A;BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+2553;A;BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+2554;A;BOX DRAWINGS DOUBLE DOWN AND RIGHT
+2555;A;BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+2556;A;BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+2557;A;BOX DRAWINGS DOUBLE DOWN AND LEFT
+2558;A;BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+2559;A;BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+255A;A;BOX DRAWINGS DOUBLE UP AND RIGHT
+255B;A;BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+255C;A;BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+255D;A;BOX DRAWINGS DOUBLE UP AND LEFT
+255E;A;BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+255F;A;BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+2560;A;BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+2561;A;BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+2562;A;BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+2563;A;BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+2564;A;BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+2565;A;BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+2566;A;BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+2567;A;BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+2568;A;BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+2569;A;BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+256A;A;BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+256B;A;BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+256C;A;BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+256D;A;BOX DRAWINGS LIGHT ARC DOWN AND RIGHT
+256E;A;BOX DRAWINGS LIGHT ARC DOWN AND LEFT
+256F;A;BOX DRAWINGS LIGHT ARC UP AND LEFT
+2570;A;BOX DRAWINGS LIGHT ARC UP AND RIGHT
+2571;A;BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT
+2572;A;BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT
+2573;A;BOX DRAWINGS LIGHT DIAGONAL CROSS
+2574;A;BOX DRAWINGS LIGHT LEFT
+2575;N;BOX DRAWINGS LIGHT UP
+2576;N;BOX DRAWINGS LIGHT RIGHT
+2577;N;BOX DRAWINGS LIGHT DOWN
+2578;N;BOX DRAWINGS HEAVY LEFT
+2579;N;BOX DRAWINGS HEAVY UP
+257A;N;BOX DRAWINGS HEAVY RIGHT
+257B;N;BOX DRAWINGS HEAVY DOWN
+257C;N;BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT
+257D;N;BOX DRAWINGS LIGHT UP AND HEAVY DOWN
+257E;N;BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT
+257F;N;BOX DRAWINGS HEAVY UP AND LIGHT DOWN
+2580;A;UPPER HALF BLOCK
+2581;A;LOWER ONE EIGHTH BLOCK
+2582;A;LOWER ONE QUARTER BLOCK
+2583;A;LOWER THREE EIGHTHS BLOCK
+2584;A;LOWER HALF BLOCK
+2585;A;LOWER FIVE EIGHTHS BLOCK
+2586;A;LOWER THREE QUARTERS BLOCK
+2587;A;LOWER SEVEN EIGHTHS BLOCK
+2588;A;FULL BLOCK
+2589;A;LEFT SEVEN EIGHTHS BLOCK
+258A;A;LEFT THREE QUARTERS BLOCK
+258B;A;LEFT FIVE EIGHTHS BLOCK
+258C;A;LEFT HALF BLOCK
+258D;A;LEFT THREE EIGHTHS BLOCK
+258E;A;LEFT ONE QUARTER BLOCK
+258F;A;LEFT ONE EIGHTH BLOCK
+2590;N;RIGHT HALF BLOCK
+2591;N;LIGHT SHADE
+2592;A;MEDIUM SHADE
+2593;A;DARK SHADE
+2594;A;UPPER ONE EIGHTH BLOCK
+2595;A;RIGHT ONE EIGHTH BLOCK
+25A0;A;BLACK SQUARE
+25A1;A;WHITE SQUARE
+25A2;N;WHITE SQUARE WITH ROUNDED CORNERS
+25A3;A;WHITE SQUARE CONTAINING BLACK SMALL SQUARE
+25A4;A;SQUARE WITH HORIZONTAL FILL
+25A5;A;SQUARE WITH VERTICAL FILL
+25A6;A;SQUARE WITH ORTHOGONAL CROSSHATCH FILL
+25A7;A;SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL
+25A8;A;SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL
+25A9;A;SQUARE WITH DIAGONAL CROSSHATCH FILL
+25AA;N;BLACK SMALL SQUARE
+25AB;N;WHITE SMALL SQUARE
+25AC;N;BLACK RECTANGLE
+25AD;N;WHITE RECTANGLE
+25AE;N;BLACK VERTICAL RECTANGLE
+25AF;N;WHITE VERTICAL RECTANGLE
+25B0;N;BLACK PARALLELOGRAM
+25B1;N;WHITE PARALLELOGRAM
+25B2;A;BLACK UP-POINTING TRIANGLE
+25B3;A;WHITE UP-POINTING TRIANGLE
+25B4;N;BLACK UP-POINTING SMALL TRIANGLE
+25B5;N;WHITE UP-POINTING SMALL TRIANGLE
+25B6;A;BLACK RIGHT-POINTING TRIANGLE
+25B7;A;WHITE RIGHT-POINTING TRIANGLE
+25B8;N;BLACK RIGHT-POINTING SMALL TRIANGLE
+25B9;N;WHITE RIGHT-POINTING SMALL TRIANGLE
+25BA;N;BLACK RIGHT-POINTING POINTER
+25BB;N;WHITE RIGHT-POINTING POINTER
+25BC;A;BLACK DOWN-POINTING TRIANGLE
+25BD;A;WHITE DOWN-POINTING TRIANGLE
+25BE;N;BLACK DOWN-POINTING SMALL TRIANGLE
+25BF;N;WHITE DOWN-POINTING SMALL TRIANGLE
+25C0;A;BLACK LEFT-POINTING TRIANGLE
+25C1;A;WHITE LEFT-POINTING TRIANGLE
+25C2;N;BLACK LEFT-POINTING SMALL TRIANGLE
+25C3;N;WHITE LEFT-POINTING SMALL TRIANGLE
+25C4;N;BLACK LEFT-POINTING POINTER
+25C5;N;WHITE LEFT-POINTING POINTER
+25C6;A;BLACK DIAMOND
+25C7;A;WHITE DIAMOND
+25C8;A;WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND
+25C9;N;FISHEYE
+25CA;N;LOZENGE
+25CB;A;WHITE CIRCLE
+25CC;N;DOTTED CIRCLE
+25CD;N;CIRCLE WITH VERTICAL FILL
+25CE;A;BULLSEYE
+25CF;A;BLACK CIRCLE
+25D0;A;CIRCLE WITH LEFT HALF BLACK
+25D1;A;CIRCLE WITH RIGHT HALF BLACK
+25D2;N;CIRCLE WITH LOWER HALF BLACK
+25D3;N;CIRCLE WITH UPPER HALF BLACK
+25D4;N;CIRCLE WITH UPPER RIGHT QUADRANT BLACK
+25D5;N;CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK
+25D6;N;LEFT HALF BLACK CIRCLE
+25D7;N;RIGHT HALF BLACK CIRCLE
+25D8;N;INVERSE BULLET
+25D9;N;INVERSE WHITE CIRCLE
+25DA;N;UPPER HALF INVERSE WHITE CIRCLE
+25DB;N;LOWER HALF INVERSE WHITE CIRCLE
+25DC;N;UPPER LEFT QUADRANT CIRCULAR ARC
+25DD;N;UPPER RIGHT QUADRANT CIRCULAR ARC
+25DE;N;LOWER RIGHT QUADRANT CIRCULAR ARC
+25DF;N;LOWER LEFT QUADRANT CIRCULAR ARC
+25E0;N;UPPER HALF CIRCLE
+25E1;N;LOWER HALF CIRCLE
+25E2;A;BLACK LOWER RIGHT TRIANGLE
+25E3;A;BLACK LOWER LEFT TRIANGLE
+25E4;A;BLACK UPPER LEFT TRIANGLE
+25E5;A;BLACK UPPER RIGHT TRIANGLE
+25E6;N;WHITE BULLET
+25E7;N;SQUARE WITH LEFT HALF BLACK
+25E8;N;SQUARE WITH RIGHT HALF BLACK
+25E9;N;SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK
+25EA;N;SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK
+25EB;N;WHITE SQUARE WITH VERTICAL BISECTING LINE
+25EC;N;WHITE UP-POINTING TRIANGLE WITH DOT
+25ED;N;UP-POINTING TRIANGLE WITH LEFT HALF BLACK
+25EE;N;UP-POINTING TRIANGLE WITH RIGHT HALF BLACK
+25EF;A;LARGE CIRCLE
+25F0;N;WHITE SQUARE WITH UPPER LEFT QUADRANT
+25F1;N;WHITE SQUARE WITH LOWER LEFT QUADRANT
+25F2;N;WHITE SQUARE WITH LOWER RIGHT QUADRANT
+25F3;N;WHITE SQUARE WITH UPPER RIGHT QUADRANT
+25F4;N;WHITE CIRCLE WITH UPPER LEFT QUADRANT
+25F5;N;WHITE CIRCLE WITH LOWER LEFT QUADRANT
+25F6;N;WHITE CIRCLE WITH LOWER RIGHT QUADRANT
+25F7;N;WHITE CIRCLE WITH UPPER RIGHT QUADRANT
+2600;N;BLACK SUN WITH RAYS
+2601;N;CLOUD
+2602;N;UMBRELLA
+2603;N;SNOWMAN
+2604;N;COMET
+2605;A;BLACK STAR
+2606;A;WHITE STAR
+2607;N;LIGHTNING
+2608;N;THUNDERSTORM
+2609;A;SUN
+260A;N;ASCENDING NODE
+260B;N;DESCENDING NODE
+260C;N;CONJUNCTION
+260D;N;OPPOSITION
+260E;A;BLACK TELEPHONE
+260F;A;WHITE TELEPHONE
+2610;N;BALLOT BOX
+2611;N;BALLOT BOX WITH CHECK
+2612;N;BALLOT BOX WITH X
+2613;N;SALTIRE
+2619;N;REVERSED ROTATED FLORAL HEART BULLET
+261A;N;BLACK LEFT POINTING INDEX
+261B;N;BLACK RIGHT POINTING INDEX
+261C;A;WHITE LEFT POINTING INDEX
+261D;N;WHITE UP POINTING INDEX
+261E;A;WHITE RIGHT POINTING INDEX
+261F;N;WHITE DOWN POINTING INDEX
+2620;N;SKULL AND CROSSBONES
+2621;N;CAUTION SIGN
+2622;N;RADIOACTIVE SIGN
+2623;N;BIOHAZARD SIGN
+2624;N;CADUCEUS
+2625;N;ANKH
+2626;N;ORTHODOX CROSS
+2627;N;CHI RHO
+2628;N;CROSS OF LORRAINE
+2629;N;CROSS OF JERUSALEM
+262A;N;STAR AND CRESCENT
+262B;N;FARSI SYMBOL
+262C;N;ADI SHAKTI
+262D;N;HAMMER AND SICKLE
+262E;N;PEACE SYMBOL
+262F;N;YIN YANG
+2630;N;TRIGRAM FOR HEAVEN
+2631;N;TRIGRAM FOR LAKE
+2632;N;TRIGRAM FOR FIRE
+2633;N;TRIGRAM FOR THUNDER
+2634;N;TRIGRAM FOR WIND
+2635;N;TRIGRAM FOR WATER
+2636;N;TRIGRAM FOR MOUNTAIN
+2637;N;TRIGRAM FOR EARTH
+2638;N;WHEEL OF DHARMA
+2639;N;WHITE FROWNING FACE
+263A;N;WHITE SMILING FACE
+263B;N;BLACK SMILING FACE
+263C;N;WHITE SUN WITH RAYS
+263D;N;FIRST QUARTER MOON
+263E;N;LAST QUARTER MOON
+263F;N;MERCURY
+2640;A;FEMALE SIGN
+2641;N;EARTH
+2642;A;MALE SIGN
+2643;N;JUPITER
+2644;N;SATURN
+2645;N;URANUS
+2646;N;NEPTUNE
+2647;N;PLUTO
+2648;N;ARIES
+2649;N;TAURUS
+264A;N;GEMINI
+264B;N;CANCER
+264C;N;LEO
+264D;N;VIRGO
+264E;N;LIBRA
+264F;N;SCORPIUS
+2650;N;SAGITTARIUS
+2651;N;CAPRICORN
+2652;N;AQUARIUS
+2653;N;PISCES
+2654;N;WHITE CHESS KING
+2655;N;WHITE CHESS QUEEN
+2656;N;WHITE CHESS ROOK
+2657;N;WHITE CHESS BISHOP
+2658;N;WHITE CHESS KNIGHT
+2659;N;WHITE CHESS PAWN
+265A;N;BLACK CHESS KING
+265B;N;BLACK CHESS QUEEN
+265C;N;BLACK CHESS ROOK
+265D;N;BLACK CHESS BISHOP
+265E;N;BLACK CHESS KNIGHT
+265F;N;BLACK CHESS PAWN
+2660;A;BLACK SPADE SUIT
+2661;A;WHITE HEART SUIT
+2662;N;WHITE DIAMOND SUIT
+2663;A;BLACK CLUB SUIT
+2664;A;WHITE SPADE SUIT
+2665;A;BLACK HEART SUIT
+2666;N;BLACK DIAMOND SUIT
+2667;A;WHITE CLUB SUIT
+2668;A;HOT SPRINGS
+2669;A;QUARTER NOTE
+266A;A;EIGHTH NOTE
+266B;N;BEAMED EIGHTH NOTES
+266C;A;BEAMED SIXTEENTH NOTES
+266D;A;MUSIC FLAT SIGN
+266E;N;MUSIC NATURAL SIGN
+266F;A;MUSIC SHARP SIGN
+2670;N;WEST SYRIAC CROSS
+2671;N;EAST SYRIAC CROSS
+2701;N;UPPER BLADE SCISSORS
+2702;N;BLACK SCISSORS
+2703;N;LOWER BLADE SCISSORS
+2704;N;WHITE SCISSORS
+2706;N;TELEPHONE LOCATION SIGN
+2707;N;TAPE DRIVE
+2708;N;AIRPLANE
+2709;N;ENVELOPE
+270C;N;VICTORY HAND
+270D;N;WRITING HAND
+270E;N;LOWER RIGHT PENCIL
+270F;N;PENCIL
+2710;N;UPPER RIGHT PENCIL
+2711;N;WHITE NIB
+2712;N;BLACK NIB
+2713;N;CHECK MARK
+2714;N;HEAVY CHECK MARK
+2715;N;MULTIPLICATION X
+2716;N;HEAVY MULTIPLICATION X
+2717;N;BALLOT X
+2718;N;HEAVY BALLOT X
+2719;N;OUTLINED GREEK CROSS
+271A;N;HEAVY GREEK CROSS
+271B;N;OPEN CENTRE CROSS
+271C;N;HEAVY OPEN CENTRE CROSS
+271D;N;LATIN CROSS
+271E;N;SHADOWED WHITE LATIN CROSS
+271F;N;OUTLINED LATIN CROSS
+2720;N;MALTESE CROSS
+2721;N;STAR OF DAVID
+2722;N;FOUR TEARDROP-SPOKED ASTERISK
+2723;N;FOUR BALLOON-SPOKED ASTERISK
+2724;N;HEAVY FOUR BALLOON-SPOKED ASTERISK
+2725;N;FOUR CLUB-SPOKED ASTERISK
+2726;N;BLACK FOUR POINTED STAR
+2727;N;WHITE FOUR POINTED STAR
+2729;N;STRESS OUTLINED WHITE STAR
+272A;N;CIRCLED WHITE STAR
+272B;N;OPEN CENTRE BLACK STAR
+272C;N;BLACK CENTRE WHITE STAR
+272D;N;OUTLINED BLACK STAR
+272E;N;HEAVY OUTLINED BLACK STAR
+272F;N;PINWHEEL STAR
+2730;N;SHADOWED WHITE STAR
+2731;N;HEAVY ASTERISK
+2732;N;OPEN CENTRE ASTERISK
+2733;N;EIGHT SPOKED ASTERISK
+2734;N;EIGHT POINTED BLACK STAR
+2735;N;EIGHT POINTED PINWHEEL STAR
+2736;N;SIX POINTED BLACK STAR
+2737;N;EIGHT POINTED RECTILINEAR BLACK STAR
+2738;N;HEAVY EIGHT POINTED RECTILINEAR BLACK STAR
+2739;N;TWELVE POINTED BLACK STAR
+273A;N;SIXTEEN POINTED ASTERISK
+273B;N;TEARDROP-SPOKED ASTERISK
+273C;N;OPEN CENTRE TEARDROP-SPOKED ASTERISK
+273D;N;HEAVY TEARDROP-SPOKED ASTERISK
+273E;N;SIX PETALLED BLACK AND WHITE FLORETTE
+273F;N;BLACK FLORETTE
+2740;N;WHITE FLORETTE
+2741;N;EIGHT PETALLED OUTLINED BLACK FLORETTE
+2742;N;CIRCLED OPEN CENTRE EIGHT POINTED STAR
+2743;N;HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK
+2744;N;SNOWFLAKE
+2745;N;TIGHT TRIFOLIATE SNOWFLAKE
+2746;N;HEAVY CHEVRON SNOWFLAKE
+2747;N;SPARKLE
+2748;N;HEAVY SPARKLE
+2749;N;BALLOON-SPOKED ASTERISK
+274A;N;EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
+274B;N;HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
+274D;N;SHADOWED WHITE CIRCLE
+274F;N;LOWER RIGHT DROP-SHADOWED WHITE SQUARE
+2750;N;UPPER RIGHT DROP-SHADOWED WHITE SQUARE
+2751;N;LOWER RIGHT SHADOWED WHITE SQUARE
+2752;N;UPPER RIGHT SHADOWED WHITE SQUARE
+2756;N;BLACK DIAMOND MINUS WHITE X
+2758;N;LIGHT VERTICAL BAR
+2759;N;MEDIUM VERTICAL BAR
+275A;N;HEAVY VERTICAL BAR
+275B;N;HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT
+275C;N;HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT
+275D;N;HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT
+275E;N;HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
+2761;N;CURVED STEM PARAGRAPH SIGN ORNAMENT
+2762;N;HEAVY EXCLAMATION MARK ORNAMENT
+2763;N;HEAVY HEART EXCLAMATION MARK ORNAMENT
+2764;N;HEAVY BLACK HEART
+2765;N;ROTATED HEAVY BLACK HEART BULLET
+2766;N;FLORAL HEART
+2767;N;ROTATED FLORAL HEART BULLET
+2776;N;DINGBAT NEGATIVE CIRCLED DIGIT ONE
+2777;N;DINGBAT NEGATIVE CIRCLED DIGIT TWO
+2778;N;DINGBAT NEGATIVE CIRCLED DIGIT THREE
+2779;N;DINGBAT NEGATIVE CIRCLED DIGIT FOUR
+277A;N;DINGBAT NEGATIVE CIRCLED DIGIT FIVE
+277B;N;DINGBAT NEGATIVE CIRCLED DIGIT SIX
+277C;N;DINGBAT NEGATIVE CIRCLED DIGIT SEVEN
+277D;N;DINGBAT NEGATIVE CIRCLED DIGIT EIGHT
+277E;N;DINGBAT NEGATIVE CIRCLED DIGIT NINE
+277F;N;DINGBAT NEGATIVE CIRCLED NUMBER TEN
+2780;N;DINGBAT CIRCLED SANS-SERIF DIGIT ONE
+2781;N;DINGBAT CIRCLED SANS-SERIF DIGIT TWO
+2782;N;DINGBAT CIRCLED SANS-SERIF DIGIT THREE
+2783;N;DINGBAT CIRCLED SANS-SERIF DIGIT FOUR
+2784;N;DINGBAT CIRCLED SANS-SERIF DIGIT FIVE
+2785;N;DINGBAT CIRCLED SANS-SERIF DIGIT SIX
+2786;N;DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN
+2787;N;DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT
+2788;N;DINGBAT CIRCLED SANS-SERIF DIGIT NINE
+2789;N;DINGBAT CIRCLED SANS-SERIF NUMBER TEN
+278A;N;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE
+278B;N;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO
+278C;N;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE
+278D;N;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR
+278E;N;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE
+278F;N;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX
+2790;N;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN
+2791;N;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT
+2792;N;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE
+2793;N;DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
+2794;N;HEAVY WIDE-HEADED RIGHTWARDS ARROW
+2798;N;HEAVY SOUTH EAST ARROW
+2799;N;HEAVY RIGHTWARDS ARROW
+279A;N;HEAVY NORTH EAST ARROW
+279B;N;DRAFTING POINT RIGHTWARDS ARROW
+279C;N;HEAVY ROUND-TIPPED RIGHTWARDS ARROW
+279D;N;TRIANGLE-HEADED RIGHTWARDS ARROW
+279E;N;HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW
+279F;N;DASHED TRIANGLE-HEADED RIGHTWARDS ARROW
+27A0;N;HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW
+27A1;N;BLACK RIGHTWARDS ARROW
+27A2;N;THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD
+27A3;N;THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD
+27A4;N;BLACK RIGHTWARDS ARROWHEAD
+27A5;N;HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW
+27A6;N;HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW
+27A7;N;SQUAT BLACK RIGHTWARDS ARROW
+27A8;N;HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW
+27A9;N;RIGHT-SHADED WHITE RIGHTWARDS ARROW
+27AA;N;LEFT-SHADED WHITE RIGHTWARDS ARROW
+27AB;N;BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW
+27AC;N;FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW
+27AD;N;HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
+27AE;N;HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
+27AF;N;NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
+27B1;N;NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
+27B2;N;CIRCLED HEAVY WHITE RIGHTWARDS ARROW
+27B3;N;WHITE-FEATHERED RIGHTWARDS ARROW
+27B4;N;BLACK-FEATHERED SOUTH EAST ARROW
+27B5;N;BLACK-FEATHERED RIGHTWARDS ARROW
+27B6;N;BLACK-FEATHERED NORTH EAST ARROW
+27B7;N;HEAVY BLACK-FEATHERED SOUTH EAST ARROW
+27B8;N;HEAVY BLACK-FEATHERED RIGHTWARDS ARROW
+27B9;N;HEAVY BLACK-FEATHERED NORTH EAST ARROW
+27BA;N;TEARDROP-BARBED RIGHTWARDS ARROW
+27BB;N;HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW
+27BC;N;WEDGE-TAILED RIGHTWARDS ARROW
+27BD;N;HEAVY WEDGE-TAILED RIGHTWARDS ARROW
+27BE;N;OPEN-OUTLINED RIGHTWARDS ARROW
+2800;N;BRAILLE PATTERN BLANK
+2801;N;BRAILLE PATTERN DOTS-1
+2802;N;BRAILLE PATTERN DOTS-2
+2803;N;BRAILLE PATTERN DOTS-12
+2804;N;BRAILLE PATTERN DOTS-3
+2805;N;BRAILLE PATTERN DOTS-13
+2806;N;BRAILLE PATTERN DOTS-23
+2807;N;BRAILLE PATTERN DOTS-123
+2808;N;BRAILLE PATTERN DOTS-4
+2809;N;BRAILLE PATTERN DOTS-14
+280A;N;BRAILLE PATTERN DOTS-24
+280B;N;BRAILLE PATTERN DOTS-124
+280C;N;BRAILLE PATTERN DOTS-34
+280D;N;BRAILLE PATTERN DOTS-134
+280E;N;BRAILLE PATTERN DOTS-234
+280F;N;BRAILLE PATTERN DOTS-1234
+2810;N;BRAILLE PATTERN DOTS-5
+2811;N;BRAILLE PATTERN DOTS-15
+2812;N;BRAILLE PATTERN DOTS-25
+2813;N;BRAILLE PATTERN DOTS-125
+2814;N;BRAILLE PATTERN DOTS-35
+2815;N;BRAILLE PATTERN DOTS-135
+2816;N;BRAILLE PATTERN DOTS-235
+2817;N;BRAILLE PATTERN DOTS-1235
+2818;N;BRAILLE PATTERN DOTS-45
+2819;N;BRAILLE PATTERN DOTS-145
+281A;N;BRAILLE PATTERN DOTS-245
+281B;N;BRAILLE PATTERN DOTS-1245
+281C;N;BRAILLE PATTERN DOTS-345
+281D;N;BRAILLE PATTERN DOTS-1345
+281E;N;BRAILLE PATTERN DOTS-2345
+281F;N;BRAILLE PATTERN DOTS-12345
+2820;N;BRAILLE PATTERN DOTS-6
+2821;N;BRAILLE PATTERN DOTS-16
+2822;N;BRAILLE PATTERN DOTS-26
+2823;N;BRAILLE PATTERN DOTS-126
+2824;N;BRAILLE PATTERN DOTS-36
+2825;N;BRAILLE PATTERN DOTS-136
+2826;N;BRAILLE PATTERN DOTS-236
+2827;N;BRAILLE PATTERN DOTS-1236
+2828;N;BRAILLE PATTERN DOTS-46
+2829;N;BRAILLE PATTERN DOTS-146
+282A;N;BRAILLE PATTERN DOTS-246
+282B;N;BRAILLE PATTERN DOTS-1246
+282C;N;BRAILLE PATTERN DOTS-346
+282D;N;BRAILLE PATTERN DOTS-1346
+282E;N;BRAILLE PATTERN DOTS-2346
+282F;N;BRAILLE PATTERN DOTS-12346
+2830;N;BRAILLE PATTERN DOTS-56
+2831;N;BRAILLE PATTERN DOTS-156
+2832;N;BRAILLE PATTERN DOTS-256
+2833;N;BRAILLE PATTERN DOTS-1256
+2834;N;BRAILLE PATTERN DOTS-356
+2835;N;BRAILLE PATTERN DOTS-1356
+2836;N;BRAILLE PATTERN DOTS-2356
+2837;N;BRAILLE PATTERN DOTS-12356
+2838;N;BRAILLE PATTERN DOTS-456
+2839;N;BRAILLE PATTERN DOTS-1456
+283A;N;BRAILLE PATTERN DOTS-2456
+283B;N;BRAILLE PATTERN DOTS-12456
+283C;N;BRAILLE PATTERN DOTS-3456
+283D;N;BRAILLE PATTERN DOTS-13456
+283E;N;BRAILLE PATTERN DOTS-23456
+283F;N;BRAILLE PATTERN DOTS-123456
+2840;N;BRAILLE PATTERN DOTS-7
+2841;N;BRAILLE PATTERN DOTS-17
+2842;N;BRAILLE PATTERN DOTS-27
+2843;N;BRAILLE PATTERN DOTS-127
+2844;N;BRAILLE PATTERN DOTS-37
+2845;N;BRAILLE PATTERN DOTS-137
+2846;N;BRAILLE PATTERN DOTS-237
+2847;N;BRAILLE PATTERN DOTS-1237
+2848;N;BRAILLE PATTERN DOTS-47
+2849;N;BRAILLE PATTERN DOTS-147
+284A;N;BRAILLE PATTERN DOTS-247
+284B;N;BRAILLE PATTERN DOTS-1247
+284C;N;BRAILLE PATTERN DOTS-347
+284D;N;BRAILLE PATTERN DOTS-1347
+284E;N;BRAILLE PATTERN DOTS-2347
+284F;N;BRAILLE PATTERN DOTS-12347
+2850;N;BRAILLE PATTERN DOTS-57
+2851;N;BRAILLE PATTERN DOTS-157
+2852;N;BRAILLE PATTERN DOTS-257
+2853;N;BRAILLE PATTERN DOTS-1257
+2854;N;BRAILLE PATTERN DOTS-357
+2855;N;BRAILLE PATTERN DOTS-1357
+2856;N;BRAILLE PATTERN DOTS-2357
+2857;N;BRAILLE PATTERN DOTS-12357
+2858;N;BRAILLE PATTERN DOTS-457
+2859;N;BRAILLE PATTERN DOTS-1457
+285A;N;BRAILLE PATTERN DOTS-2457
+285B;N;BRAILLE PATTERN DOTS-12457
+285C;N;BRAILLE PATTERN DOTS-3457
+285D;N;BRAILLE PATTERN DOTS-13457
+285E;N;BRAILLE PATTERN DOTS-23457
+285F;N;BRAILLE PATTERN DOTS-123457
+2860;N;BRAILLE PATTERN DOTS-67
+2861;N;BRAILLE PATTERN DOTS-167
+2862;N;BRAILLE PATTERN DOTS-267
+2863;N;BRAILLE PATTERN DOTS-1267
+2864;N;BRAILLE PATTERN DOTS-367
+2865;N;BRAILLE PATTERN DOTS-1367
+2866;N;BRAILLE PATTERN DOTS-2367
+2867;N;BRAILLE PATTERN DOTS-12367
+2868;N;BRAILLE PATTERN DOTS-467
+2869;N;BRAILLE PATTERN DOTS-1467
+286A;N;BRAILLE PATTERN DOTS-2467
+286B;N;BRAILLE PATTERN DOTS-12467
+286C;N;BRAILLE PATTERN DOTS-3467
+286D;N;BRAILLE PATTERN DOTS-13467
+286E;N;BRAILLE PATTERN DOTS-23467
+286F;N;BRAILLE PATTERN DOTS-123467
+2870;N;BRAILLE PATTERN DOTS-567
+2871;N;BRAILLE PATTERN DOTS-1567
+2872;N;BRAILLE PATTERN DOTS-2567
+2873;N;BRAILLE PATTERN DOTS-12567
+2874;N;BRAILLE PATTERN DOTS-3567
+2875;N;BRAILLE PATTERN DOTS-13567
+2876;N;BRAILLE PATTERN DOTS-23567
+2877;N;BRAILLE PATTERN DOTS-123567
+2878;N;BRAILLE PATTERN DOTS-4567
+2879;N;BRAILLE PATTERN DOTS-14567
+287A;N;BRAILLE PATTERN DOTS-24567
+287B;N;BRAILLE PATTERN DOTS-124567
+287C;N;BRAILLE PATTERN DOTS-34567
+287D;N;BRAILLE PATTERN DOTS-134567
+287E;N;BRAILLE PATTERN DOTS-234567
+287F;N;BRAILLE PATTERN DOTS-1234567
+2880;N;BRAILLE PATTERN DOTS-8
+2881;N;BRAILLE PATTERN DOTS-18
+2882;N;BRAILLE PATTERN DOTS-28
+2883;N;BRAILLE PATTERN DOTS-128
+2884;N;BRAILLE PATTERN DOTS-38
+2885;N;BRAILLE PATTERN DOTS-138
+2886;N;BRAILLE PATTERN DOTS-238
+2887;N;BRAILLE PATTERN DOTS-1238
+2888;N;BRAILLE PATTERN DOTS-48
+2889;N;BRAILLE PATTERN DOTS-148
+288A;N;BRAILLE PATTERN DOTS-248
+288B;N;BRAILLE PATTERN DOTS-1248
+288C;N;BRAILLE PATTERN DOTS-348
+288D;N;BRAILLE PATTERN DOTS-1348
+288E;N;BRAILLE PATTERN DOTS-2348
+288F;N;BRAILLE PATTERN DOTS-12348
+2890;N;BRAILLE PATTERN DOTS-58
+2891;N;BRAILLE PATTERN DOTS-158
+2892;N;BRAILLE PATTERN DOTS-258
+2893;N;BRAILLE PATTERN DOTS-1258
+2894;N;BRAILLE PATTERN DOTS-358
+2895;N;BRAILLE PATTERN DOTS-1358
+2896;N;BRAILLE PATTERN DOTS-2358
+2897;N;BRAILLE PATTERN DOTS-12358
+2898;N;BRAILLE PATTERN DOTS-458
+2899;N;BRAILLE PATTERN DOTS-1458
+289A;N;BRAILLE PATTERN DOTS-2458
+289B;N;BRAILLE PATTERN DOTS-12458
+289C;N;BRAILLE PATTERN DOTS-3458
+289D;N;BRAILLE PATTERN DOTS-13458
+289E;N;BRAILLE PATTERN DOTS-23458
+289F;N;BRAILLE PATTERN DOTS-123458
+28A0;N;BRAILLE PATTERN DOTS-68
+28A1;N;BRAILLE PATTERN DOTS-168
+28A2;N;BRAILLE PATTERN DOTS-268
+28A3;N;BRAILLE PATTERN DOTS-1268
+28A4;N;BRAILLE PATTERN DOTS-368
+28A5;N;BRAILLE PATTERN DOTS-1368
+28A6;N;BRAILLE PATTERN DOTS-2368
+28A7;N;BRAILLE PATTERN DOTS-12368
+28A8;N;BRAILLE PATTERN DOTS-468
+28A9;N;BRAILLE PATTERN DOTS-1468
+28AA;N;BRAILLE PATTERN DOTS-2468
+28AB;N;BRAILLE PATTERN DOTS-12468
+28AC;N;BRAILLE PATTERN DOTS-3468
+28AD;N;BRAILLE PATTERN DOTS-13468
+28AE;N;BRAILLE PATTERN DOTS-23468
+28AF;N;BRAILLE PATTERN DOTS-123468
+28B0;N;BRAILLE PATTERN DOTS-568
+28B1;N;BRAILLE PATTERN DOTS-1568
+28B2;N;BRAILLE PATTERN DOTS-2568
+28B3;N;BRAILLE PATTERN DOTS-12568
+28B4;N;BRAILLE PATTERN DOTS-3568
+28B5;N;BRAILLE PATTERN DOTS-13568
+28B6;N;BRAILLE PATTERN DOTS-23568
+28B7;N;BRAILLE PATTERN DOTS-123568
+28B8;N;BRAILLE PATTERN DOTS-4568
+28B9;N;BRAILLE PATTERN DOTS-14568
+28BA;N;BRAILLE PATTERN DOTS-24568
+28BB;N;BRAILLE PATTERN DOTS-124568
+28BC;N;BRAILLE PATTERN DOTS-34568
+28BD;N;BRAILLE PATTERN DOTS-134568
+28BE;N;BRAILLE PATTERN DOTS-234568
+28BF;N;BRAILLE PATTERN DOTS-1234568
+28C0;N;BRAILLE PATTERN DOTS-78
+28C1;N;BRAILLE PATTERN DOTS-178
+28C2;N;BRAILLE PATTERN DOTS-278
+28C3;N;BRAILLE PATTERN DOTS-1278
+28C4;N;BRAILLE PATTERN DOTS-378
+28C5;N;BRAILLE PATTERN DOTS-1378
+28C6;N;BRAILLE PATTERN DOTS-2378
+28C7;N;BRAILLE PATTERN DOTS-12378
+28C8;N;BRAILLE PATTERN DOTS-478
+28C9;N;BRAILLE PATTERN DOTS-1478
+28CA;N;BRAILLE PATTERN DOTS-2478
+28CB;N;BRAILLE PATTERN DOTS-12478
+28CC;N;BRAILLE PATTERN DOTS-3478
+28CD;N;BRAILLE PATTERN DOTS-13478
+28CE;N;BRAILLE PATTERN DOTS-23478
+28CF;N;BRAILLE PATTERN DOTS-123478
+28D0;N;BRAILLE PATTERN DOTS-578
+28D1;N;BRAILLE PATTERN DOTS-1578
+28D2;N;BRAILLE PATTERN DOTS-2578
+28D3;N;BRAILLE PATTERN DOTS-12578
+28D4;N;BRAILLE PATTERN DOTS-3578
+28D5;N;BRAILLE PATTERN DOTS-13578
+28D6;N;BRAILLE PATTERN DOTS-23578
+28D7;N;BRAILLE PATTERN DOTS-123578
+28D8;N;BRAILLE PATTERN DOTS-4578
+28D9;N;BRAILLE PATTERN DOTS-14578
+28DA;N;BRAILLE PATTERN DOTS-24578
+28DB;N;BRAILLE PATTERN DOTS-124578
+28DC;N;BRAILLE PATTERN DOTS-34578
+28DD;N;BRAILLE PATTERN DOTS-134578
+28DE;N;BRAILLE PATTERN DOTS-234578
+28DF;N;BRAILLE PATTERN DOTS-1234578
+28E0;N;BRAILLE PATTERN DOTS-678
+28E1;N;BRAILLE PATTERN DOTS-1678
+28E2;N;BRAILLE PATTERN DOTS-2678
+28E3;N;BRAILLE PATTERN DOTS-12678
+28E4;N;BRAILLE PATTERN DOTS-3678
+28E5;N;BRAILLE PATTERN DOTS-13678
+28E6;N;BRAILLE PATTERN DOTS-23678
+28E7;N;BRAILLE PATTERN DOTS-123678
+28E8;N;BRAILLE PATTERN DOTS-4678
+28E9;N;BRAILLE PATTERN DOTS-14678
+28EA;N;BRAILLE PATTERN DOTS-24678
+28EB;N;BRAILLE PATTERN DOTS-124678
+28EC;N;BRAILLE PATTERN DOTS-34678
+28ED;N;BRAILLE PATTERN DOTS-134678
+28EE;N;BRAILLE PATTERN DOTS-234678
+28EF;N;BRAILLE PATTERN DOTS-1234678
+28F0;N;BRAILLE PATTERN DOTS-5678
+28F1;N;BRAILLE PATTERN DOTS-15678
+28F2;N;BRAILLE PATTERN DOTS-25678
+28F3;N;BRAILLE PATTERN DOTS-125678
+28F4;N;BRAILLE PATTERN DOTS-35678
+28F5;N;BRAILLE PATTERN DOTS-135678
+28F6;N;BRAILLE PATTERN DOTS-235678
+28F7;N;BRAILLE PATTERN DOTS-1235678
+28F8;N;BRAILLE PATTERN DOTS-45678
+28F9;N;BRAILLE PATTERN DOTS-145678
+28FA;N;BRAILLE PATTERN DOTS-245678
+28FB;N;BRAILLE PATTERN DOTS-1245678
+28FC;N;BRAILLE PATTERN DOTS-345678
+28FD;N;BRAILLE PATTERN DOTS-1345678
+28FE;N;BRAILLE PATTERN DOTS-2345678
+28FF;N;BRAILLE PATTERN DOTS-12345678
+2E80;W;CJK RADICAL REPEAT
+2E81;W;CJK RADICAL CLIFF
+2E82;W;CJK RADICAL SECOND ONE
+2E83;W;CJK RADICAL SECOND TWO
+2E84;W;CJK RADICAL SECOND THREE
+2E85;W;CJK RADICAL PERSON
+2E86;W;CJK RADICAL BOX
+2E87;W;CJK RADICAL TABLE
+2E88;W;CJK RADICAL KNIFE ONE
+2E89;W;CJK RADICAL KNIFE TWO
+2E8A;W;CJK RADICAL DIVINATION
+2E8B;W;CJK RADICAL SEAL
+2E8C;W;CJK RADICAL SMALL ONE
+2E8D;W;CJK RADICAL SMALL TWO
+2E8E;W;CJK RADICAL LAME ONE
+2E8F;W;CJK RADICAL LAME TWO
+2E90;W;CJK RADICAL LAME THREE
+2E91;W;CJK RADICAL LAME FOUR
+2E92;W;CJK RADICAL SNAKE
+2E93;W;CJK RADICAL THREAD
+2E94;W;CJK RADICAL SNOUT ONE
+2E95;W;CJK RADICAL SNOUT TWO
+2E96;W;CJK RADICAL HEART ONE
+2E97;W;CJK RADICAL HEART TWO
+2E98;W;CJK RADICAL HAND
+2E99;W;CJK RADICAL RAP
+2E9B;W;CJK RADICAL CHOKE
+2E9C;W;CJK RADICAL SUN
+2E9D;W;CJK RADICAL MOON
+2E9E;W;CJK RADICAL DEATH
+2E9F;W;CJK RADICAL MOTHER
+2EA0;W;CJK RADICAL CIVILIAN
+2EA1;W;CJK RADICAL WATER ONE
+2EA2;W;CJK RADICAL WATER TWO
+2EA3;W;CJK RADICAL FIRE
+2EA4;W;CJK RADICAL PAW ONE
+2EA5;W;CJK RADICAL PAW TWO
+2EA6;W;CJK RADICAL SIMPLIFIED HALF TREE TRUNK
+2EA7;W;CJK RADICAL COW
+2EA8;W;CJK RADICAL DOG
+2EA9;W;CJK RADICAL JADE
+2EAA;W;CJK RADICAL BOLT OF CLOTH
+2EAB;W;CJK RADICAL EYE
+2EAC;W;CJK RADICAL SPIRIT ONE
+2EAD;W;CJK RADICAL SPIRIT TWO
+2EAE;W;CJK RADICAL BAMBOO
+2EAF;W;CJK RADICAL SILK
+2EB0;W;CJK RADICAL C-SIMPLIFIED SILK
+2EB1;W;CJK RADICAL NET ONE
+2EB2;W;CJK RADICAL NET TWO
+2EB3;W;CJK RADICAL NET THREE
+2EB4;W;CJK RADICAL NET FOUR
+2EB5;W;CJK RADICAL MESH
+2EB6;W;CJK RADICAL SHEEP
+2EB7;W;CJK RADICAL RAM
+2EB8;W;CJK RADICAL EWE
+2EB9;W;CJK RADICAL OLD
+2EBA;W;CJK RADICAL BRUSH ONE
+2EBB;W;CJK RADICAL BRUSH TWO
+2EBC;W;CJK RADICAL MEAT
+2EBD;W;CJK RADICAL MORTAR
+2EBE;W;CJK RADICAL GRASS ONE
+2EBF;W;CJK RADICAL GRASS TWO
+2EC0;W;CJK RADICAL GRASS THREE
+2EC1;W;CJK RADICAL TIGER
+2EC2;W;CJK RADICAL CLOTHES
+2EC3;W;CJK RADICAL WEST ONE
+2EC4;W;CJK RADICAL WEST TWO
+2EC5;W;CJK RADICAL C-SIMPLIFIED SEE
+2EC6;W;CJK RADICAL SIMPLIFIED HORN
+2EC7;W;CJK RADICAL HORN
+2EC8;W;CJK RADICAL C-SIMPLIFIED SPEECH
+2EC9;W;CJK RADICAL C-SIMPLIFIED SHELL
+2ECA;W;CJK RADICAL FOOT
+2ECB;W;CJK RADICAL C-SIMPLIFIED CART
+2ECC;W;CJK RADICAL SIMPLIFIED WALK
+2ECD;W;CJK RADICAL WALK ONE
+2ECE;W;CJK RADICAL WALK TWO
+2ECF;W;CJK RADICAL CITY
+2ED0;W;CJK RADICAL C-SIMPLIFIED GOLD
+2ED1;W;CJK RADICAL LONG ONE
+2ED2;W;CJK RADICAL LONG TWO
+2ED3;W;CJK RADICAL C-SIMPLIFIED LONG
+2ED4;W;CJK RADICAL C-SIMPLIFIED GATE
+2ED5;W;CJK RADICAL MOUND ONE
+2ED6;W;CJK RADICAL MOUND TWO
+2ED7;W;CJK RADICAL RAIN
+2ED8;W;CJK RADICAL BLUE
+2ED9;W;CJK RADICAL C-SIMPLIFIED TANNED LEATHER
+2EDA;W;CJK RADICAL C-SIMPLIFIED LEAF
+2EDB;W;CJK RADICAL C-SIMPLIFIED WIND
+2EDC;W;CJK RADICAL C-SIMPLIFIED FLY
+2EDD;W;CJK RADICAL EAT ONE
+2EDE;W;CJK RADICAL EAT TWO
+2EDF;W;CJK RADICAL EAT THREE
+2EE0;W;CJK RADICAL C-SIMPLIFIED EAT
+2EE1;W;CJK RADICAL HEAD
+2EE2;W;CJK RADICAL C-SIMPLIFIED HORSE
+2EE3;W;CJK RADICAL BONE
+2EE4;W;CJK RADICAL GHOST
+2EE5;W;CJK RADICAL C-SIMPLIFIED FISH
+2EE6;W;CJK RADICAL C-SIMPLIFIED BIRD
+2EE7;W;CJK RADICAL C-SIMPLIFIED SALT
+2EE8;W;CJK RADICAL SIMPLIFIED WHEAT
+2EE9;W;CJK RADICAL SIMPLIFIED YELLOW
+2EEA;W;CJK RADICAL C-SIMPLIFIED FROG
+2EEB;W;CJK RADICAL J-SIMPLIFIED EVEN
+2EEC;W;CJK RADICAL C-SIMPLIFIED EVEN
+2EED;W;CJK RADICAL J-SIMPLIFIED TOOTH
+2EEE;W;CJK RADICAL C-SIMPLIFIED TOOTH
+2EEF;W;CJK RADICAL J-SIMPLIFIED DRAGON
+2EF0;W;CJK RADICAL C-SIMPLIFIED DRAGON
+2EF1;W;CJK RADICAL TURTLE
+2EF2;W;CJK RADICAL J-SIMPLIFIED TURTLE
+2EF3;W;CJK RADICAL C-SIMPLIFIED TURTLE
+2F00;W;KANGXI RADICAL ONE
+2F01;W;KANGXI RADICAL LINE
+2F02;W;KANGXI RADICAL DOT
+2F03;W;KANGXI RADICAL SLASH
+2F04;W;KANGXI RADICAL SECOND
+2F05;W;KANGXI RADICAL HOOK
+2F06;W;KANGXI RADICAL TWO
+2F07;W;KANGXI RADICAL LID
+2F08;W;KANGXI RADICAL MAN
+2F09;W;KANGXI RADICAL LEGS
+2F0A;W;KANGXI RADICAL ENTER
+2F0B;W;KANGXI RADICAL EIGHT
+2F0C;W;KANGXI RADICAL DOWN BOX
+2F0D;W;KANGXI RADICAL COVER
+2F0E;W;KANGXI RADICAL ICE
+2F0F;W;KANGXI RADICAL TABLE
+2F10;W;KANGXI RADICAL OPEN BOX
+2F11;W;KANGXI RADICAL KNIFE
+2F12;W;KANGXI RADICAL POWER
+2F13;W;KANGXI RADICAL WRAP
+2F14;W;KANGXI RADICAL SPOON
+2F15;W;KANGXI RADICAL RIGHT OPEN BOX
+2F16;W;KANGXI RADICAL HIDING ENCLOSURE
+2F17;W;KANGXI RADICAL TEN
+2F18;W;KANGXI RADICAL DIVINATION
+2F19;W;KANGXI RADICAL SEAL
+2F1A;W;KANGXI RADICAL CLIFF
+2F1B;W;KANGXI RADICAL PRIVATE
+2F1C;W;KANGXI RADICAL AGAIN
+2F1D;W;KANGXI RADICAL MOUTH
+2F1E;W;KANGXI RADICAL ENCLOSURE
+2F1F;W;KANGXI RADICAL EARTH
+2F20;W;KANGXI RADICAL SCHOLAR
+2F21;W;KANGXI RADICAL GO
+2F22;W;KANGXI RADICAL GO SLOWLY
+2F23;W;KANGXI RADICAL EVENING
+2F24;W;KANGXI RADICAL BIG
+2F25;W;KANGXI RADICAL WOMAN
+2F26;W;KANGXI RADICAL CHILD
+2F27;W;KANGXI RADICAL ROOF
+2F28;W;KANGXI RADICAL INCH
+2F29;W;KANGXI RADICAL SMALL
+2F2A;W;KANGXI RADICAL LAME
+2F2B;W;KANGXI RADICAL CORPSE
+2F2C;W;KANGXI RADICAL SPROUT
+2F2D;W;KANGXI RADICAL MOUNTAIN
+2F2E;W;KANGXI RADICAL RIVER
+2F2F;W;KANGXI RADICAL WORK
+2F30;W;KANGXI RADICAL ONESELF
+2F31;W;KANGXI RADICAL TURBAN
+2F32;W;KANGXI RADICAL DRY
+2F33;W;KANGXI RADICAL SHORT THREAD
+2F34;W;KANGXI RADICAL DOTTED CLIFF
+2F35;W;KANGXI RADICAL LONG STRIDE
+2F36;W;KANGXI RADICAL TWO HANDS
+2F37;W;KANGXI RADICAL SHOOT
+2F38;W;KANGXI RADICAL BOW
+2F39;W;KANGXI RADICAL SNOUT
+2F3A;W;KANGXI RADICAL BRISTLE
+2F3B;W;KANGXI RADICAL STEP
+2F3C;W;KANGXI RADICAL HEART
+2F3D;W;KANGXI RADICAL HALBERD
+2F3E;W;KANGXI RADICAL DOOR
+2F3F;W;KANGXI RADICAL HAND
+2F40;W;KANGXI RADICAL BRANCH
+2F41;W;KANGXI RADICAL RAP
+2F42;W;KANGXI RADICAL SCRIPT
+2F43;W;KANGXI RADICAL DIPPER
+2F44;W;KANGXI RADICAL AXE
+2F45;W;KANGXI RADICAL SQUARE
+2F46;W;KANGXI RADICAL NOT
+2F47;W;KANGXI RADICAL SUN
+2F48;W;KANGXI RADICAL SAY
+2F49;W;KANGXI RADICAL MOON
+2F4A;W;KANGXI RADICAL TREE
+2F4B;W;KANGXI RADICAL LACK
+2F4C;W;KANGXI RADICAL STOP
+2F4D;W;KANGXI RADICAL DEATH
+2F4E;W;KANGXI RADICAL WEAPON
+2F4F;W;KANGXI RADICAL DO NOT
+2F50;W;KANGXI RADICAL COMPARE
+2F51;W;KANGXI RADICAL FUR
+2F52;W;KANGXI RADICAL CLAN
+2F53;W;KANGXI RADICAL STEAM
+2F54;W;KANGXI RADICAL WATER
+2F55;W;KANGXI RADICAL FIRE
+2F56;W;KANGXI RADICAL CLAW
+2F57;W;KANGXI RADICAL FATHER
+2F58;W;KANGXI RADICAL DOUBLE X
+2F59;W;KANGXI RADICAL HALF TREE TRUNK
+2F5A;W;KANGXI RADICAL SLICE
+2F5B;W;KANGXI RADICAL FANG
+2F5C;W;KANGXI RADICAL COW
+2F5D;W;KANGXI RADICAL DOG
+2F5E;W;KANGXI RADICAL PROFOUND
+2F5F;W;KANGXI RADICAL JADE
+2F60;W;KANGXI RADICAL MELON
+2F61;W;KANGXI RADICAL TILE
+2F62;W;KANGXI RADICAL SWEET
+2F63;W;KANGXI RADICAL LIFE
+2F64;W;KANGXI RADICAL USE
+2F65;W;KANGXI RADICAL FIELD
+2F66;W;KANGXI RADICAL BOLT OF CLOTH
+2F67;W;KANGXI RADICAL SICKNESS
+2F68;W;KANGXI RADICAL DOTTED TENT
+2F69;W;KANGXI RADICAL WHITE
+2F6A;W;KANGXI RADICAL SKIN
+2F6B;W;KANGXI RADICAL DISH
+2F6C;W;KANGXI RADICAL EYE
+2F6D;W;KANGXI RADICAL SPEAR
+2F6E;W;KANGXI RADICAL ARROW
+2F6F;W;KANGXI RADICAL STONE
+2F70;W;KANGXI RADICAL SPIRIT
+2F71;W;KANGXI RADICAL TRACK
+2F72;W;KANGXI RADICAL GRAIN
+2F73;W;KANGXI RADICAL CAVE
+2F74;W;KANGXI RADICAL STAND
+2F75;W;KANGXI RADICAL BAMBOO
+2F76;W;KANGXI RADICAL RICE
+2F77;W;KANGXI RADICAL SILK
+2F78;W;KANGXI RADICAL JAR
+2F79;W;KANGXI RADICAL NET
+2F7A;W;KANGXI RADICAL SHEEP
+2F7B;W;KANGXI RADICAL FEATHER
+2F7C;W;KANGXI RADICAL OLD
+2F7D;W;KANGXI RADICAL AND
+2F7E;W;KANGXI RADICAL PLOW
+2F7F;W;KANGXI RADICAL EAR
+2F80;W;KANGXI RADICAL BRUSH
+2F81;W;KANGXI RADICAL MEAT
+2F82;W;KANGXI RADICAL MINISTER
+2F83;W;KANGXI RADICAL SELF
+2F84;W;KANGXI RADICAL ARRIVE
+2F85;W;KANGXI RADICAL MORTAR
+2F86;W;KANGXI RADICAL TONGUE
+2F87;W;KANGXI RADICAL OPPOSE
+2F88;W;KANGXI RADICAL BOAT
+2F89;W;KANGXI RADICAL STOPPING
+2F8A;W;KANGXI RADICAL COLOR
+2F8B;W;KANGXI RADICAL GRASS
+2F8C;W;KANGXI RADICAL TIGER
+2F8D;W;KANGXI RADICAL INSECT
+2F8E;W;KANGXI RADICAL BLOOD
+2F8F;W;KANGXI RADICAL WALK ENCLOSURE
+2F90;W;KANGXI RADICAL CLOTHES
+2F91;W;KANGXI RADICAL WEST
+2F92;W;KANGXI RADICAL SEE
+2F93;W;KANGXI RADICAL HORN
+2F94;W;KANGXI RADICAL SPEECH
+2F95;W;KANGXI RADICAL VALLEY
+2F96;W;KANGXI RADICAL BEAN
+2F97;W;KANGXI RADICAL PIG
+2F98;W;KANGXI RADICAL BADGER
+2F99;W;KANGXI RADICAL SHELL
+2F9A;W;KANGXI RADICAL RED
+2F9B;W;KANGXI RADICAL RUN
+2F9C;W;KANGXI RADICAL FOOT
+2F9D;W;KANGXI RADICAL BODY
+2F9E;W;KANGXI RADICAL CART
+2F9F;W;KANGXI RADICAL BITTER
+2FA0;W;KANGXI RADICAL MORNING
+2FA1;W;KANGXI RADICAL WALK
+2FA2;W;KANGXI RADICAL CITY
+2FA3;W;KANGXI RADICAL WINE
+2FA4;W;KANGXI RADICAL DISTINGUISH
+2FA5;W;KANGXI RADICAL VILLAGE
+2FA6;W;KANGXI RADICAL GOLD
+2FA7;W;KANGXI RADICAL LONG
+2FA8;W;KANGXI RADICAL GATE
+2FA9;W;KANGXI RADICAL MOUND
+2FAA;W;KANGXI RADICAL SLAVE
+2FAB;W;KANGXI RADICAL SHORT TAILED BIRD
+2FAC;W;KANGXI RADICAL RAIN
+2FAD;W;KANGXI RADICAL BLUE
+2FAE;W;KANGXI RADICAL WRONG
+2FAF;W;KANGXI RADICAL FACE
+2FB0;W;KANGXI RADICAL LEATHER
+2FB1;W;KANGXI RADICAL TANNED LEATHER
+2FB2;W;KANGXI RADICAL LEEK
+2FB3;W;KANGXI RADICAL SOUND
+2FB4;W;KANGXI RADICAL LEAF
+2FB5;W;KANGXI RADICAL WIND
+2FB6;W;KANGXI RADICAL FLY
+2FB7;W;KANGXI RADICAL EAT
+2FB8;W;KANGXI RADICAL HEAD
+2FB9;W;KANGXI RADICAL FRAGRANT
+2FBA;W;KANGXI RADICAL HORSE
+2FBB;W;KANGXI RADICAL BONE
+2FBC;W;KANGXI RADICAL TALL
+2FBD;W;KANGXI RADICAL HAIR
+2FBE;W;KANGXI RADICAL FIGHT
+2FBF;W;KANGXI RADICAL SACRIFICIAL WINE
+2FC0;W;KANGXI RADICAL CAULDRON
+2FC1;W;KANGXI RADICAL GHOST
+2FC2;W;KANGXI RADICAL FISH
+2FC3;W;KANGXI RADICAL BIRD
+2FC4;W;KANGXI RADICAL SALT
+2FC5;W;KANGXI RADICAL DEER
+2FC6;W;KANGXI RADICAL WHEAT
+2FC7;W;KANGXI RADICAL HEMP
+2FC8;W;KANGXI RADICAL YELLOW
+2FC9;W;KANGXI RADICAL MILLET
+2FCA;W;KANGXI RADICAL BLACK
+2FCB;W;KANGXI RADICAL EMBROIDERY
+2FCC;W;KANGXI RADICAL FROG
+2FCD;W;KANGXI RADICAL TRIPOD
+2FCE;W;KANGXI RADICAL DRUM
+2FCF;W;KANGXI RADICAL RAT
+2FD0;W;KANGXI RADICAL NOSE
+2FD1;W;KANGXI RADICAL EVEN
+2FD2;W;KANGXI RADICAL TOOTH
+2FD3;W;KANGXI RADICAL DRAGON
+2FD4;W;KANGXI RADICAL TURTLE
+2FD5;W;KANGXI RADICAL FLUTE
+2FF0;W;IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT
+2FF1;W;IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW
+2FF2;W;IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT
+2FF3;W;IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW
+2FF4;W;IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND
+2FF5;W;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE
+2FF6;W;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW
+2FF7;W;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT
+2FF8;W;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT
+2FF9;W;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT
+2FFA;W;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT
+2FFB;W;IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
+3000;W;IDEOGRAPHIC SPACE
+3001;W;IDEOGRAPHIC COMMA
+3002;W;IDEOGRAPHIC FULL STOP
+3003;W;DITTO MARK
+3004;W;JAPANESE INDUSTRIAL STANDARD SYMBOL
+3005;W;IDEOGRAPHIC ITERATION MARK
+3006;W;IDEOGRAPHIC CLOSING MARK
+3007;W;IDEOGRAPHIC NUMBER ZERO
+3008;W;LEFT ANGLE BRACKET
+3009;W;RIGHT ANGLE BRACKET
+300A;A;LEFT DOUBLE ANGLE BRACKET
+300B;A;RIGHT DOUBLE ANGLE BRACKET
+300C;W;LEFT CORNER BRACKET
+300D;W;RIGHT CORNER BRACKET
+300E;W;LEFT WHITE CORNER BRACKET
+300F;W;RIGHT WHITE CORNER BRACKET
+3010;W;LEFT BLACK LENTICULAR BRACKET
+3011;W;RIGHT BLACK LENTICULAR BRACKET
+3012;W;POSTAL MARK
+3013;W;GETA MARK
+3014;W;LEFT TORTOISE SHELL BRACKET
+3015;W;RIGHT TORTOISE SHELL BRACKET
+3016;W;LEFT WHITE LENTICULAR BRACKET
+3017;W;RIGHT WHITE LENTICULAR BRACKET
+3018;W;LEFT WHITE TORTOISE SHELL BRACKET
+3019;W;RIGHT WHITE TORTOISE SHELL BRACKET
+301A;A;LEFT WHITE SQUARE BRACKET
+301B;A;RIGHT WHITE SQUARE BRACKET
+301C;W;WAVE DASH
+301D;W;REVERSED DOUBLE PRIME QUOTATION MARK
+301E;W;DOUBLE PRIME QUOTATION MARK
+301F;W;LOW DOUBLE PRIME QUOTATION MARK
+3020;W;POSTAL MARK FACE
+3021;W;HANGZHOU NUMERAL ONE
+3022;W;HANGZHOU NUMERAL TWO
+3023;W;HANGZHOU NUMERAL THREE
+3024;W;HANGZHOU NUMERAL FOUR
+3025;W;HANGZHOU NUMERAL FIVE
+3026;W;HANGZHOU NUMERAL SIX
+3027;W;HANGZHOU NUMERAL SEVEN
+3028;W;HANGZHOU NUMERAL EIGHT
+3029;W;HANGZHOU NUMERAL NINE
+302A;W;IDEOGRAPHIC LEVEL TONE MARK
+302B;W;IDEOGRAPHIC RISING TONE MARK
+302C;W;IDEOGRAPHIC DEPARTING TONE MARK
+302D;W;IDEOGRAPHIC ENTERING TONE MARK
+302E;W;HANGUL SINGLE DOT TONE MARK
+302F;W;HANGUL DOUBLE DOT TONE MARK
+3030;W;WAVY DASH
+3031;W;VERTICAL KANA REPEAT MARK
+3032;W;VERTICAL KANA REPEAT WITH VOICED SOUND MARK
+3033;W;VERTICAL KANA REPEAT MARK UPPER HALF
+3034;W;VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF
+3035;W;VERTICAL KANA REPEAT MARK LOWER HALF
+3036;W;CIRCLED POSTAL MARK
+3037;W;IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL
+3038;W;HANGZHOU NUMERAL TEN
+3039;W;HANGZHOU NUMERAL TWENTY
+303A;W;HANGZHOU NUMERAL THIRTY
+303E;W;IDEOGRAPHIC VARIATION INDICATOR
+303F;N;IDEOGRAPHIC HALF FILL SPACE
+3041;W;HIRAGANA LETTER SMALL A
+3042;W;HIRAGANA LETTER A
+3043;W;HIRAGANA LETTER SMALL I
+3044;W;HIRAGANA LETTER I
+3045;W;HIRAGANA LETTER SMALL U
+3046;W;HIRAGANA LETTER U
+3047;W;HIRAGANA LETTER SMALL E
+3048;W;HIRAGANA LETTER E
+3049;W;HIRAGANA LETTER SMALL O
+304A;W;HIRAGANA LETTER O
+304B;W;HIRAGANA LETTER KA
+304C;W;HIRAGANA LETTER GA
+304D;W;HIRAGANA LETTER KI
+304E;W;HIRAGANA LETTER GI
+304F;W;HIRAGANA LETTER KU
+3050;W;HIRAGANA LETTER GU
+3051;W;HIRAGANA LETTER KE
+3052;W;HIRAGANA LETTER GE
+3053;W;HIRAGANA LETTER KO
+3054;W;HIRAGANA LETTER GO
+3055;W;HIRAGANA LETTER SA
+3056;W;HIRAGANA LETTER ZA
+3057;W;HIRAGANA LETTER SI
+3058;W;HIRAGANA LETTER ZI
+3059;W;HIRAGANA LETTER SU
+305A;W;HIRAGANA LETTER ZU
+305B;W;HIRAGANA LETTER SE
+305C;W;HIRAGANA LETTER ZE
+305D;W;HIRAGANA LETTER SO
+305E;W;HIRAGANA LETTER ZO
+305F;W;HIRAGANA LETTER TA
+3060;W;HIRAGANA LETTER DA
+3061;W;HIRAGANA LETTER TI
+3062;W;HIRAGANA LETTER DI
+3063;W;HIRAGANA LETTER SMALL TU
+3064;W;HIRAGANA LETTER TU
+3065;W;HIRAGANA LETTER DU
+3066;W;HIRAGANA LETTER TE
+3067;W;HIRAGANA LETTER DE
+3068;W;HIRAGANA LETTER TO
+3069;W;HIRAGANA LETTER DO
+306A;W;HIRAGANA LETTER NA
+306B;W;HIRAGANA LETTER NI
+306C;W;HIRAGANA LETTER NU
+306D;W;HIRAGANA LETTER NE
+306E;W;HIRAGANA LETTER NO
+306F;W;HIRAGANA LETTER HA
+3070;W;HIRAGANA LETTER BA
+3071;W;HIRAGANA LETTER PA
+3072;W;HIRAGANA LETTER HI
+3073;W;HIRAGANA LETTER BI
+3074;W;HIRAGANA LETTER PI
+3075;W;HIRAGANA LETTER HU
+3076;W;HIRAGANA LETTER BU
+3077;W;HIRAGANA LETTER PU
+3078;W;HIRAGANA LETTER HE
+3079;W;HIRAGANA LETTER BE
+307A;W;HIRAGANA LETTER PE
+307B;W;HIRAGANA LETTER HO
+307C;W;HIRAGANA LETTER BO
+307D;W;HIRAGANA LETTER PO
+307E;W;HIRAGANA LETTER MA
+307F;W;HIRAGANA LETTER MI
+3080;W;HIRAGANA LETTER MU
+3081;W;HIRAGANA LETTER ME
+3082;W;HIRAGANA LETTER MO
+3083;W;HIRAGANA LETTER SMALL YA
+3084;W;HIRAGANA LETTER YA
+3085;W;HIRAGANA LETTER SMALL YU
+3086;W;HIRAGANA LETTER YU
+3087;W;HIRAGANA LETTER SMALL YO
+3088;W;HIRAGANA LETTER YO
+3089;W;HIRAGANA LETTER RA
+308A;W;HIRAGANA LETTER RI
+308B;W;HIRAGANA LETTER RU
+308C;W;HIRAGANA LETTER RE
+308D;W;HIRAGANA LETTER RO
+308E;W;HIRAGANA LETTER SMALL WA
+308F;W;HIRAGANA LETTER WA
+3090;W;HIRAGANA LETTER WI
+3091;W;HIRAGANA LETTER WE
+3092;W;HIRAGANA LETTER WO
+3093;W;HIRAGANA LETTER N
+3094;W;HIRAGANA LETTER VU
+3099;W;COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
+309A;W;COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+309B;W;KATAKANA-HIRAGANA VOICED SOUND MARK
+309C;W;KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+309D;W;HIRAGANA ITERATION MARK
+309E;W;HIRAGANA VOICED ITERATION MARK
+30A1;W;KATAKANA LETTER SMALL A
+30A2;W;KATAKANA LETTER A
+30A3;W;KATAKANA LETTER SMALL I
+30A4;W;KATAKANA LETTER I
+30A5;W;KATAKANA LETTER SMALL U
+30A6;W;KATAKANA LETTER U
+30A7;W;KATAKANA LETTER SMALL E
+30A8;W;KATAKANA LETTER E
+30A9;W;KATAKANA LETTER SMALL O
+30AA;W;KATAKANA LETTER O
+30AB;W;KATAKANA LETTER KA
+30AC;W;KATAKANA LETTER GA
+30AD;W;KATAKANA LETTER KI
+30AE;W;KATAKANA LETTER GI
+30AF;W;KATAKANA LETTER KU
+30B0;W;KATAKANA LETTER GU
+30B1;W;KATAKANA LETTER KE
+30B2;W;KATAKANA LETTER GE
+30B3;W;KATAKANA LETTER KO
+30B4;W;KATAKANA LETTER GO
+30B5;W;KATAKANA LETTER SA
+30B6;W;KATAKANA LETTER ZA
+30B7;W;KATAKANA LETTER SI
+30B8;W;KATAKANA LETTER ZI
+30B9;W;KATAKANA LETTER SU
+30BA;W;KATAKANA LETTER ZU
+30BB;W;KATAKANA LETTER SE
+30BC;W;KATAKANA LETTER ZE
+30BD;W;KATAKANA LETTER SO
+30BE;W;KATAKANA LETTER ZO
+30BF;W;KATAKANA LETTER TA
+30C0;W;KATAKANA LETTER DA
+30C1;W;KATAKANA LETTER TI
+30C2;W;KATAKANA LETTER DI
+30C3;W;KATAKANA LETTER SMALL TU
+30C4;W;KATAKANA LETTER TU
+30C5;W;KATAKANA LETTER DU
+30C6;W;KATAKANA LETTER TE
+30C7;W;KATAKANA LETTER DE
+30C8;W;KATAKANA LETTER TO
+30C9;W;KATAKANA LETTER DO
+30CA;W;KATAKANA LETTER NA
+30CB;W;KATAKANA LETTER NI
+30CC;W;KATAKANA LETTER NU
+30CD;W;KATAKANA LETTER NE
+30CE;W;KATAKANA LETTER NO
+30CF;W;KATAKANA LETTER HA
+30D0;W;KATAKANA LETTER BA
+30D1;W;KATAKANA LETTER PA
+30D2;W;KATAKANA LETTER HI
+30D3;W;KATAKANA LETTER BI
+30D4;W;KATAKANA LETTER PI
+30D5;W;KATAKANA LETTER HU
+30D6;W;KATAKANA LETTER BU
+30D7;W;KATAKANA LETTER PU
+30D8;W;KATAKANA LETTER HE
+30D9;W;KATAKANA LETTER BE
+30DA;W;KATAKANA LETTER PE
+30DB;W;KATAKANA LETTER HO
+30DC;W;KATAKANA LETTER BO
+30DD;W;KATAKANA LETTER PO
+30DE;W;KATAKANA LETTER MA
+30DF;W;KATAKANA LETTER MI
+30E0;W;KATAKANA LETTER MU
+30E1;W;KATAKANA LETTER ME
+30E2;W;KATAKANA LETTER MO
+30E3;W;KATAKANA LETTER SMALL YA
+30E4;W;KATAKANA LETTER YA
+30E5;W;KATAKANA LETTER SMALL YU
+30E6;W;KATAKANA LETTER YU
+30E7;W;KATAKANA LETTER SMALL YO
+30E8;W;KATAKANA LETTER YO
+30E9;W;KATAKANA LETTER RA
+30EA;W;KATAKANA LETTER RI
+30EB;W;KATAKANA LETTER RU
+30EC;W;KATAKANA LETTER RE
+30ED;W;KATAKANA LETTER RO
+30EE;W;KATAKANA LETTER SMALL WA
+30EF;W;KATAKANA LETTER WA
+30F0;W;KATAKANA LETTER WI
+30F1;W;KATAKANA LETTER WE
+30F2;W;KATAKANA LETTER WO
+30F3;W;KATAKANA LETTER N
+30F4;W;KATAKANA LETTER VU
+30F5;W;KATAKANA LETTER SMALL KA
+30F6;W;KATAKANA LETTER SMALL KE
+30F7;W;KATAKANA LETTER VA
+30F8;W;KATAKANA LETTER VI
+30F9;W;KATAKANA LETTER VE
+30FA;W;KATAKANA LETTER VO
+30FB;W;KATAKANA MIDDLE DOT
+30FC;W;KATAKANA-HIRAGANA PROLONGED SOUND MARK
+30FD;W;KATAKANA ITERATION MARK
+30FE;W;KATAKANA VOICED ITERATION MARK
+3105;W;BOPOMOFO LETTER B
+3106;W;BOPOMOFO LETTER P
+3107;W;BOPOMOFO LETTER M
+3108;W;BOPOMOFO LETTER F
+3109;W;BOPOMOFO LETTER D
+310A;W;BOPOMOFO LETTER T
+310B;W;BOPOMOFO LETTER N
+310C;W;BOPOMOFO LETTER L
+310D;W;BOPOMOFO LETTER G
+310E;W;BOPOMOFO LETTER K
+310F;W;BOPOMOFO LETTER H
+3110;W;BOPOMOFO LETTER J
+3111;W;BOPOMOFO LETTER Q
+3112;W;BOPOMOFO LETTER X
+3113;W;BOPOMOFO LETTER ZH
+3114;W;BOPOMOFO LETTER CH
+3115;W;BOPOMOFO LETTER SH
+3116;W;BOPOMOFO LETTER R
+3117;W;BOPOMOFO LETTER Z
+3118;W;BOPOMOFO LETTER C
+3119;W;BOPOMOFO LETTER S
+311A;W;BOPOMOFO LETTER A
+311B;W;BOPOMOFO LETTER O
+311C;W;BOPOMOFO LETTER E
+311D;W;BOPOMOFO LETTER EH
+311E;W;BOPOMOFO LETTER AI
+311F;W;BOPOMOFO LETTER EI
+3120;W;BOPOMOFO LETTER AU
+3121;W;BOPOMOFO LETTER OU
+3122;W;BOPOMOFO LETTER AN
+3123;W;BOPOMOFO LETTER EN
+3124;W;BOPOMOFO LETTER ANG
+3125;W;BOPOMOFO LETTER ENG
+3126;W;BOPOMOFO LETTER ER
+3127;W;BOPOMOFO LETTER I
+3128;W;BOPOMOFO LETTER U
+3129;W;BOPOMOFO LETTER IU
+312A;W;BOPOMOFO LETTER V
+312B;W;BOPOMOFO LETTER NG
+312C;W;BOPOMOFO LETTER GN
+3131;W;HANGUL LETTER KIYEOK
+3132;W;HANGUL LETTER SSANGKIYEOK
+3133;W;HANGUL LETTER KIYEOK-SIOS
+3134;W;HANGUL LETTER NIEUN
+3135;W;HANGUL LETTER NIEUN-CIEUC
+3136;W;HANGUL LETTER NIEUN-HIEUH
+3137;W;HANGUL LETTER TIKEUT
+3138;W;HANGUL LETTER SSANGTIKEUT
+3139;W;HANGUL LETTER RIEUL
+313A;W;HANGUL LETTER RIEUL-KIYEOK
+313B;W;HANGUL LETTER RIEUL-MIEUM
+313C;W;HANGUL LETTER RIEUL-PIEUP
+313D;W;HANGUL LETTER RIEUL-SIOS
+313E;W;HANGUL LETTER RIEUL-THIEUTH
+313F;W;HANGUL LETTER RIEUL-PHIEUPH
+3140;W;HANGUL LETTER RIEUL-HIEUH
+3141;W;HANGUL LETTER MIEUM
+3142;W;HANGUL LETTER PIEUP
+3143;W;HANGUL LETTER SSANGPIEUP
+3144;W;HANGUL LETTER PIEUP-SIOS
+3145;W;HANGUL LETTER SIOS
+3146;W;HANGUL LETTER SSANGSIOS
+3147;W;HANGUL LETTER IEUNG
+3148;W;HANGUL LETTER CIEUC
+3149;W;HANGUL LETTER SSANGCIEUC
+314A;W;HANGUL LETTER CHIEUCH
+314B;W;HANGUL LETTER KHIEUKH
+314C;W;HANGUL LETTER THIEUTH
+314D;W;HANGUL LETTER PHIEUPH
+314E;W;HANGUL LETTER HIEUH
+314F;W;HANGUL LETTER A
+3150;W;HANGUL LETTER AE
+3151;W;HANGUL LETTER YA
+3152;W;HANGUL LETTER YAE
+3153;W;HANGUL LETTER EO
+3154;W;HANGUL LETTER E
+3155;W;HANGUL LETTER YEO
+3156;W;HANGUL LETTER YE
+3157;W;HANGUL LETTER O
+3158;W;HANGUL LETTER WA
+3159;W;HANGUL LETTER WAE
+315A;W;HANGUL LETTER OE
+315B;W;HANGUL LETTER YO
+315C;W;HANGUL LETTER U
+315D;W;HANGUL LETTER WEO
+315E;W;HANGUL LETTER WE
+315F;W;HANGUL LETTER WI
+3160;W;HANGUL LETTER YU
+3161;W;HANGUL LETTER EU
+3162;W;HANGUL LETTER YI
+3163;W;HANGUL LETTER I
+3164;W;HANGUL FILLER
+3165;W;HANGUL LETTER SSANGNIEUN
+3166;W;HANGUL LETTER NIEUN-TIKEUT
+3167;W;HANGUL LETTER NIEUN-SIOS
+3168;W;HANGUL LETTER NIEUN-PANSIOS
+3169;W;HANGUL LETTER RIEUL-KIYEOK-SIOS
+316A;W;HANGUL LETTER RIEUL-TIKEUT
+316B;W;HANGUL LETTER RIEUL-PIEUP-SIOS
+316C;W;HANGUL LETTER RIEUL-PANSIOS
+316D;W;HANGUL LETTER RIEUL-YEORINHIEUH
+316E;W;HANGUL LETTER MIEUM-PIEUP
+316F;W;HANGUL LETTER MIEUM-SIOS
+3170;W;HANGUL LETTER MIEUM-PANSIOS
+3171;W;HANGUL LETTER KAPYEOUNMIEUM
+3172;W;HANGUL LETTER PIEUP-KIYEOK
+3173;W;HANGUL LETTER PIEUP-TIKEUT
+3174;W;HANGUL LETTER PIEUP-SIOS-KIYEOK
+3175;W;HANGUL LETTER PIEUP-SIOS-TIKEUT
+3176;W;HANGUL LETTER PIEUP-CIEUC
+3177;W;HANGUL LETTER PIEUP-THIEUTH
+3178;W;HANGUL LETTER KAPYEOUNPIEUP
+3179;W;HANGUL LETTER KAPYEOUNSSANGPIEUP
+317A;W;HANGUL LETTER SIOS-KIYEOK
+317B;W;HANGUL LETTER SIOS-NIEUN
+317C;W;HANGUL LETTER SIOS-TIKEUT
+317D;W;HANGUL LETTER SIOS-PIEUP
+317E;W;HANGUL LETTER SIOS-CIEUC
+317F;W;HANGUL LETTER PANSIOS
+3180;W;HANGUL LETTER SSANGIEUNG
+3181;W;HANGUL LETTER YESIEUNG
+3182;W;HANGUL LETTER YESIEUNG-SIOS
+3183;W;HANGUL LETTER YESIEUNG-PANSIOS
+3184;W;HANGUL LETTER KAPYEOUNPHIEUPH
+3185;W;HANGUL LETTER SSANGHIEUH
+3186;W;HANGUL LETTER YEORINHIEUH
+3187;W;HANGUL LETTER YO-YA
+3188;W;HANGUL LETTER YO-YAE
+3189;W;HANGUL LETTER YO-I
+318A;W;HANGUL LETTER YU-YEO
+318B;W;HANGUL LETTER YU-YE
+318C;W;HANGUL LETTER YU-I
+318D;W;HANGUL LETTER ARAEA
+318E;W;HANGUL LETTER ARAEAE
+3190;W;IDEOGRAPHIC ANNOTATION LINKING MARK
+3191;W;IDEOGRAPHIC ANNOTATION REVERSE MARK
+3192;W;IDEOGRAPHIC ANNOTATION ONE MARK
+3193;W;IDEOGRAPHIC ANNOTATION TWO MARK
+3194;W;IDEOGRAPHIC ANNOTATION THREE MARK
+3195;W;IDEOGRAPHIC ANNOTATION FOUR MARK
+3196;W;IDEOGRAPHIC ANNOTATION TOP MARK
+3197;W;IDEOGRAPHIC ANNOTATION MIDDLE MARK
+3198;W;IDEOGRAPHIC ANNOTATION BOTTOM MARK
+3199;W;IDEOGRAPHIC ANNOTATION FIRST MARK
+319A;W;IDEOGRAPHIC ANNOTATION SECOND MARK
+319B;W;IDEOGRAPHIC ANNOTATION THIRD MARK
+319C;W;IDEOGRAPHIC ANNOTATION FOURTH MARK
+319D;W;IDEOGRAPHIC ANNOTATION HEAVEN MARK
+319E;W;IDEOGRAPHIC ANNOTATION EARTH MARK
+319F;W;IDEOGRAPHIC ANNOTATION MAN MARK
+31A0;W;BOPOMOFO LETTER BU
+31A1;W;BOPOMOFO LETTER ZI
+31A2;W;BOPOMOFO LETTER JI
+31A3;W;BOPOMOFO LETTER GU
+31A4;W;BOPOMOFO LETTER EE
+31A5;W;BOPOMOFO LETTER ENN
+31A6;W;BOPOMOFO LETTER OO
+31A7;W;BOPOMOFO LETTER ONN
+31A8;W;BOPOMOFO LETTER IR
+31A9;W;BOPOMOFO LETTER ANN
+31AA;W;BOPOMOFO LETTER INN
+31AB;W;BOPOMOFO LETTER UNN
+31AC;W;BOPOMOFO LETTER IM
+31AD;W;BOPOMOFO LETTER NGG
+31AE;W;BOPOMOFO LETTER AINN
+31AF;W;BOPOMOFO LETTER AUNN
+31B0;W;BOPOMOFO LETTER AM
+31B1;W;BOPOMOFO LETTER OM
+31B2;W;BOPOMOFO LETTER ONG
+31B3;W;BOPOMOFO LETTER INNN
+31B4;W;BOPOMOFO FINAL LETTER P
+31B5;W;BOPOMOFO FINAL LETTER T
+31B6;W;BOPOMOFO FINAL LETTER K
+31B7;W;BOPOMOFO FINAL LETTER H
+3200;W;PARENTHESIZED HANGUL KIYEOK
+3201;W;PARENTHESIZED HANGUL NIEUN
+3202;W;PARENTHESIZED HANGUL TIKEUT
+3203;W;PARENTHESIZED HANGUL RIEUL
+3204;W;PARENTHESIZED HANGUL MIEUM
+3205;W;PARENTHESIZED HANGUL PIEUP
+3206;W;PARENTHESIZED HANGUL SIOS
+3207;W;PARENTHESIZED HANGUL IEUNG
+3208;W;PARENTHESIZED HANGUL CIEUC
+3209;W;PARENTHESIZED HANGUL CHIEUCH
+320A;W;PARENTHESIZED HANGUL KHIEUKH
+320B;W;PARENTHESIZED HANGUL THIEUTH
+320C;W;PARENTHESIZED HANGUL PHIEUPH
+320D;W;PARENTHESIZED HANGUL HIEUH
+320E;W;PARENTHESIZED HANGUL KIYEOK A
+320F;W;PARENTHESIZED HANGUL NIEUN A
+3210;W;PARENTHESIZED HANGUL TIKEUT A
+3211;W;PARENTHESIZED HANGUL RIEUL A
+3212;W;PARENTHESIZED HANGUL MIEUM A
+3213;W;PARENTHESIZED HANGUL PIEUP A
+3214;W;PARENTHESIZED HANGUL SIOS A
+3215;W;PARENTHESIZED HANGUL IEUNG A
+3216;W;PARENTHESIZED HANGUL CIEUC A
+3217;W;PARENTHESIZED HANGUL CHIEUCH A
+3218;W;PARENTHESIZED HANGUL KHIEUKH A
+3219;W;PARENTHESIZED HANGUL THIEUTH A
+321A;W;PARENTHESIZED HANGUL PHIEUPH A
+321B;W;PARENTHESIZED HANGUL HIEUH A
+321C;W;PARENTHESIZED HANGUL CIEUC U
+3220;W;PARENTHESIZED IDEOGRAPH ONE
+3221;W;PARENTHESIZED IDEOGRAPH TWO
+3222;W;PARENTHESIZED IDEOGRAPH THREE
+3223;W;PARENTHESIZED IDEOGRAPH FOUR
+3224;W;PARENTHESIZED IDEOGRAPH FIVE
+3225;W;PARENTHESIZED IDEOGRAPH SIX
+3226;W;PARENTHESIZED IDEOGRAPH SEVEN
+3227;W;PARENTHESIZED IDEOGRAPH EIGHT
+3228;W;PARENTHESIZED IDEOGRAPH NINE
+3229;W;PARENTHESIZED IDEOGRAPH TEN
+322A;W;PARENTHESIZED IDEOGRAPH MOON
+322B;W;PARENTHESIZED IDEOGRAPH FIRE
+322C;W;PARENTHESIZED IDEOGRAPH WATER
+322D;W;PARENTHESIZED IDEOGRAPH WOOD
+322E;W;PARENTHESIZED IDEOGRAPH METAL
+322F;W;PARENTHESIZED IDEOGRAPH EARTH
+3230;W;PARENTHESIZED IDEOGRAPH SUN
+3231;W;PARENTHESIZED IDEOGRAPH STOCK
+3232;W;PARENTHESIZED IDEOGRAPH HAVE
+3233;W;PARENTHESIZED IDEOGRAPH SOCIETY
+3234;W;PARENTHESIZED IDEOGRAPH NAME
+3235;W;PARENTHESIZED IDEOGRAPH SPECIAL
+3236;W;PARENTHESIZED IDEOGRAPH FINANCIAL
+3237;W;PARENTHESIZED IDEOGRAPH CONGRATULATION
+3238;W;PARENTHESIZED IDEOGRAPH LABOR
+3239;W;PARENTHESIZED IDEOGRAPH REPRESENT
+323A;W;PARENTHESIZED IDEOGRAPH CALL
+323B;W;PARENTHESIZED IDEOGRAPH STUDY
+323C;W;PARENTHESIZED IDEOGRAPH SUPERVISE
+323D;W;PARENTHESIZED IDEOGRAPH ENTERPRISE
+323E;W;PARENTHESIZED IDEOGRAPH RESOURCE
+323F;W;PARENTHESIZED IDEOGRAPH ALLIANCE
+3240;W;PARENTHESIZED IDEOGRAPH FESTIVAL
+3241;W;PARENTHESIZED IDEOGRAPH REST
+3242;W;PARENTHESIZED IDEOGRAPH SELF
+3243;W;PARENTHESIZED IDEOGRAPH REACH
+3260;W;CIRCLED HANGUL KIYEOK
+3261;W;CIRCLED HANGUL NIEUN
+3262;W;CIRCLED HANGUL TIKEUT
+3263;W;CIRCLED HANGUL RIEUL
+3264;W;CIRCLED HANGUL MIEUM
+3265;W;CIRCLED HANGUL PIEUP
+3266;W;CIRCLED HANGUL SIOS
+3267;W;CIRCLED HANGUL IEUNG
+3268;W;CIRCLED HANGUL CIEUC
+3269;W;CIRCLED HANGUL CHIEUCH
+326A;W;CIRCLED HANGUL KHIEUKH
+326B;W;CIRCLED HANGUL THIEUTH
+326C;W;CIRCLED HANGUL PHIEUPH
+326D;W;CIRCLED HANGUL HIEUH
+326E;W;CIRCLED HANGUL KIYEOK A
+326F;W;CIRCLED HANGUL NIEUN A
+3270;W;CIRCLED HANGUL TIKEUT A
+3271;W;CIRCLED HANGUL RIEUL A
+3272;W;CIRCLED HANGUL MIEUM A
+3273;W;CIRCLED HANGUL PIEUP A
+3274;W;CIRCLED HANGUL SIOS A
+3275;W;CIRCLED HANGUL IEUNG A
+3276;W;CIRCLED HANGUL CIEUC A
+3277;W;CIRCLED HANGUL CHIEUCH A
+3278;W;CIRCLED HANGUL KHIEUKH A
+3279;W;CIRCLED HANGUL THIEUTH A
+327A;W;CIRCLED HANGUL PHIEUPH A
+327B;W;CIRCLED HANGUL HIEUH A
+327F;W;KOREAN STANDARD SYMBOL
+3280;W;CIRCLED IDEOGRAPH ONE
+3281;W;CIRCLED IDEOGRAPH TWO
+3282;W;CIRCLED IDEOGRAPH THREE
+3283;W;CIRCLED IDEOGRAPH FOUR
+3284;W;CIRCLED IDEOGRAPH FIVE
+3285;W;CIRCLED IDEOGRAPH SIX
+3286;W;CIRCLED IDEOGRAPH SEVEN
+3287;W;CIRCLED IDEOGRAPH EIGHT
+3288;W;CIRCLED IDEOGRAPH NINE
+3289;W;CIRCLED IDEOGRAPH TEN
+328A;W;CIRCLED IDEOGRAPH MOON
+328B;W;CIRCLED IDEOGRAPH FIRE
+328C;W;CIRCLED IDEOGRAPH WATER
+328D;W;CIRCLED IDEOGRAPH WOOD
+328E;W;CIRCLED IDEOGRAPH METAL
+328F;W;CIRCLED IDEOGRAPH EARTH
+3290;W;CIRCLED IDEOGRAPH SUN
+3291;W;CIRCLED IDEOGRAPH STOCK
+3292;W;CIRCLED IDEOGRAPH HAVE
+3293;W;CIRCLED IDEOGRAPH SOCIETY
+3294;W;CIRCLED IDEOGRAPH NAME
+3295;W;CIRCLED IDEOGRAPH SPECIAL
+3296;W;CIRCLED IDEOGRAPH FINANCIAL
+3297;W;CIRCLED IDEOGRAPH CONGRATULATION
+3298;W;CIRCLED IDEOGRAPH LABOR
+3299;W;CIRCLED IDEOGRAPH SECRET
+329A;W;CIRCLED IDEOGRAPH MALE
+329B;W;CIRCLED IDEOGRAPH FEMALE
+329C;W;CIRCLED IDEOGRAPH SUITABLE
+329D;W;CIRCLED IDEOGRAPH EXCELLENT
+329E;W;CIRCLED IDEOGRAPH PRINT
+329F;W;CIRCLED IDEOGRAPH ATTENTION
+32A0;W;CIRCLED IDEOGRAPH ITEM
+32A1;W;CIRCLED IDEOGRAPH REST
+32A2;W;CIRCLED IDEOGRAPH COPY
+32A3;W;CIRCLED IDEOGRAPH CORRECT
+32A4;W;CIRCLED IDEOGRAPH HIGH
+32A5;W;CIRCLED IDEOGRAPH CENTRE
+32A6;W;CIRCLED IDEOGRAPH LOW
+32A7;W;CIRCLED IDEOGRAPH LEFT
+32A8;W;CIRCLED IDEOGRAPH RIGHT
+32A9;W;CIRCLED IDEOGRAPH MEDICINE
+32AA;W;CIRCLED IDEOGRAPH RELIGION
+32AB;W;CIRCLED IDEOGRAPH STUDY
+32AC;W;CIRCLED IDEOGRAPH SUPERVISE
+32AD;W;CIRCLED IDEOGRAPH ENTERPRISE
+32AE;W;CIRCLED IDEOGRAPH RESOURCE
+32AF;W;CIRCLED IDEOGRAPH ALLIANCE
+32B0;W;CIRCLED IDEOGRAPH NIGHT
+32C0;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY
+32C1;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY
+32C2;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH
+32C3;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL
+32C4;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY
+32C5;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE
+32C6;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY
+32C7;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST
+32C8;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER
+32C9;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER
+32CA;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER
+32CB;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
+32D0;W;CIRCLED KATAKANA A
+32D1;W;CIRCLED KATAKANA I
+32D2;W;CIRCLED KATAKANA U
+32D3;W;CIRCLED KATAKANA E
+32D4;W;CIRCLED KATAKANA O
+32D5;W;CIRCLED KATAKANA KA
+32D6;W;CIRCLED KATAKANA KI
+32D7;W;CIRCLED KATAKANA KU
+32D8;W;CIRCLED KATAKANA KE
+32D9;W;CIRCLED KATAKANA KO
+32DA;W;CIRCLED KATAKANA SA
+32DB;W;CIRCLED KATAKANA SI
+32DC;W;CIRCLED KATAKANA SU
+32DD;W;CIRCLED KATAKANA SE
+32DE;W;CIRCLED KATAKANA SO
+32DF;W;CIRCLED KATAKANA TA
+32E0;W;CIRCLED KATAKANA TI
+32E1;W;CIRCLED KATAKANA TU
+32E2;W;CIRCLED KATAKANA TE
+32E3;W;CIRCLED KATAKANA TO
+32E4;W;CIRCLED KATAKANA NA
+32E5;W;CIRCLED KATAKANA NI
+32E6;W;CIRCLED KATAKANA NU
+32E7;W;CIRCLED KATAKANA NE
+32E8;W;CIRCLED KATAKANA NO
+32E9;W;CIRCLED KATAKANA HA
+32EA;W;CIRCLED KATAKANA HI
+32EB;W;CIRCLED KATAKANA HU
+32EC;W;CIRCLED KATAKANA HE
+32ED;W;CIRCLED KATAKANA HO
+32EE;W;CIRCLED KATAKANA MA
+32EF;W;CIRCLED KATAKANA MI
+32F0;W;CIRCLED KATAKANA MU
+32F1;W;CIRCLED KATAKANA ME
+32F2;W;CIRCLED KATAKANA MO
+32F3;W;CIRCLED KATAKANA YA
+32F4;W;CIRCLED KATAKANA YU
+32F5;W;CIRCLED KATAKANA YO
+32F6;W;CIRCLED KATAKANA RA
+32F7;W;CIRCLED KATAKANA RI
+32F8;W;CIRCLED KATAKANA RU
+32F9;W;CIRCLED KATAKANA RE
+32FA;W;CIRCLED KATAKANA RO
+32FB;W;CIRCLED KATAKANA WA
+32FC;W;CIRCLED KATAKANA WI
+32FD;W;CIRCLED KATAKANA WE
+32FE;W;CIRCLED KATAKANA WO
+3300;W;SQUARE APAATO
+3301;W;SQUARE ARUHUA
+3302;W;SQUARE ANPEA
+3303;W;SQUARE AARU
+3304;W;SQUARE ININGU
+3305;W;SQUARE INTI
+3306;W;SQUARE UON
+3307;W;SQUARE ESUKUUDO
+3308;W;SQUARE EEKAA
+3309;W;SQUARE ONSU
+330A;W;SQUARE OOMU
+330B;W;SQUARE KAIRI
+330C;W;SQUARE KARATTO
+330D;W;SQUARE KARORII
+330E;W;SQUARE GARON
+330F;W;SQUARE GANMA
+3310;W;SQUARE GIGA
+3311;W;SQUARE GINII
+3312;W;SQUARE KYURII
+3313;W;SQUARE GIRUDAA
+3314;W;SQUARE KIRO
+3315;W;SQUARE KIROGURAMU
+3316;W;SQUARE KIROMEETORU
+3317;W;SQUARE KIROWATTO
+3318;W;SQUARE GURAMU
+3319;W;SQUARE GURAMUTON
+331A;W;SQUARE KURUZEIRO
+331B;W;SQUARE KUROONE
+331C;W;SQUARE KEESU
+331D;W;SQUARE KORUNA
+331E;W;SQUARE KOOPO
+331F;W;SQUARE SAIKURU
+3320;W;SQUARE SANTIIMU
+3321;W;SQUARE SIRINGU
+3322;W;SQUARE SENTI
+3323;W;SQUARE SENTO
+3324;W;SQUARE DAASU
+3325;W;SQUARE DESI
+3326;W;SQUARE DORU
+3327;W;SQUARE TON
+3328;W;SQUARE NANO
+3329;W;SQUARE NOTTO
+332A;W;SQUARE HAITU
+332B;W;SQUARE PAASENTO
+332C;W;SQUARE PAATU
+332D;W;SQUARE BAARERU
+332E;W;SQUARE PIASUTORU
+332F;W;SQUARE PIKURU
+3330;W;SQUARE PIKO
+3331;W;SQUARE BIRU
+3332;W;SQUARE HUARADDO
+3333;W;SQUARE HUIITO
+3334;W;SQUARE BUSSYERU
+3335;W;SQUARE HURAN
+3336;W;SQUARE HEKUTAARU
+3337;W;SQUARE PESO
+3338;W;SQUARE PENIHI
+3339;W;SQUARE HERUTU
+333A;W;SQUARE PENSU
+333B;W;SQUARE PEEZI
+333C;W;SQUARE BEETA
+333D;W;SQUARE POINTO
+333E;W;SQUARE BORUTO
+333F;W;SQUARE HON
+3340;W;SQUARE PONDO
+3341;W;SQUARE HOORU
+3342;W;SQUARE HOON
+3343;W;SQUARE MAIKURO
+3344;W;SQUARE MAIRU
+3345;W;SQUARE MAHHA
+3346;W;SQUARE MARUKU
+3347;W;SQUARE MANSYON
+3348;W;SQUARE MIKURON
+3349;W;SQUARE MIRI
+334A;W;SQUARE MIRIBAARU
+334B;W;SQUARE MEGA
+334C;W;SQUARE MEGATON
+334D;W;SQUARE MEETORU
+334E;W;SQUARE YAADO
+334F;W;SQUARE YAARU
+3350;W;SQUARE YUAN
+3351;W;SQUARE RITTORU
+3352;W;SQUARE RIRA
+3353;W;SQUARE RUPII
+3354;W;SQUARE RUUBURU
+3355;W;SQUARE REMU
+3356;W;SQUARE RENTOGEN
+3357;W;SQUARE WATTO
+3358;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO
+3359;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE
+335A;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO
+335B;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE
+335C;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR
+335D;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE
+335E;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX
+335F;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN
+3360;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT
+3361;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE
+3362;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN
+3363;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN
+3364;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE
+3365;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN
+3366;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN
+3367;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN
+3368;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN
+3369;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN
+336A;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN
+336B;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN
+336C;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY
+336D;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE
+336E;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO
+336F;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE
+3370;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
+3371;W;SQUARE HPA
+3372;W;SQUARE DA
+3373;W;SQUARE AU
+3374;W;SQUARE BAR
+3375;W;SQUARE OV
+3376;W;SQUARE PC
+337B;W;SQUARE ERA NAME HEISEI
+337C;W;SQUARE ERA NAME SYOUWA
+337D;W;SQUARE ERA NAME TAISYOU
+337E;W;SQUARE ERA NAME MEIZI
+337F;W;SQUARE CORPORATION
+3380;W;SQUARE PA AMPS
+3381;W;SQUARE NA
+3382;W;SQUARE MU A
+3383;W;SQUARE MA
+3384;W;SQUARE KA
+3385;W;SQUARE KB
+3386;W;SQUARE MB
+3387;W;SQUARE GB
+3388;W;SQUARE CAL
+3389;W;SQUARE KCAL
+338A;W;SQUARE PF
+338B;W;SQUARE NF
+338C;W;SQUARE MU F
+338D;W;SQUARE MU G
+338E;W;SQUARE MG
+338F;W;SQUARE KG
+3390;W;SQUARE HZ
+3391;W;SQUARE KHZ
+3392;W;SQUARE MHZ
+3393;W;SQUARE GHZ
+3394;W;SQUARE THZ
+3395;W;SQUARE MU L
+3396;W;SQUARE ML
+3397;W;SQUARE DL
+3398;W;SQUARE KL
+3399;W;SQUARE FM
+339A;W;SQUARE NM
+339B;W;SQUARE MU M
+339C;W;SQUARE MM
+339D;W;SQUARE CM
+339E;W;SQUARE KM
+339F;W;SQUARE MM SQUARED
+33A0;W;SQUARE CM SQUARED
+33A1;W;SQUARE M SQUARED
+33A2;W;SQUARE KM SQUARED
+33A3;W;SQUARE MM CUBED
+33A4;W;SQUARE CM CUBED
+33A5;W;SQUARE M CUBED
+33A6;W;SQUARE KM CUBED
+33A7;W;SQUARE M OVER S
+33A8;W;SQUARE M OVER S SQUARED
+33A9;W;SQUARE PA
+33AA;W;SQUARE KPA
+33AB;W;SQUARE MPA
+33AC;W;SQUARE GPA
+33AD;W;SQUARE RAD
+33AE;W;SQUARE RAD OVER S
+33AF;W;SQUARE RAD OVER S SQUARED
+33B0;W;SQUARE PS
+33B1;W;SQUARE NS
+33B2;W;SQUARE MU S
+33B3;W;SQUARE MS
+33B4;W;SQUARE PV
+33B5;W;SQUARE NV
+33B6;W;SQUARE MU V
+33B7;W;SQUARE MV
+33B8;W;SQUARE KV
+33B9;W;SQUARE MV MEGA
+33BA;W;SQUARE PW
+33BB;W;SQUARE NW
+33BC;W;SQUARE MU W
+33BD;W;SQUARE MW
+33BE;W;SQUARE KW
+33BF;W;SQUARE MW MEGA
+33C0;W;SQUARE K OHM
+33C1;W;SQUARE M OHM
+33C2;W;SQUARE AM
+33C3;W;SQUARE BQ
+33C4;W;SQUARE CC
+33C5;W;SQUARE CD
+33C6;W;SQUARE C OVER KG
+33C7;W;SQUARE CO
+33C8;W;SQUARE DB
+33C9;W;SQUARE GY
+33CA;W;SQUARE HA
+33CB;W;SQUARE HP
+33CC;W;SQUARE IN
+33CD;W;SQUARE KK
+33CE;W;SQUARE KM CAPITAL
+33CF;W;SQUARE KT
+33D0;W;SQUARE LM
+33D1;W;SQUARE LN
+33D2;W;SQUARE LOG
+33D3;W;SQUARE LX
+33D4;W;SQUARE MB SMALL
+33D5;W;SQUARE MIL
+33D6;W;SQUARE MOL
+33D7;W;SQUARE PH
+33D8;W;SQUARE PM
+33D9;W;SQUARE PPM
+33DA;W;SQUARE PR
+33DB;W;SQUARE SR
+33DC;W;SQUARE SV
+33DD;W;SQUARE WB
+33E0;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE
+33E1;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO
+33E2;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE
+33E3;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR
+33E4;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE
+33E5;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX
+33E6;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN
+33E7;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT
+33E8;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE
+33E9;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN
+33EA;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN
+33EB;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE
+33EC;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN
+33ED;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN
+33EE;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN
+33EF;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN
+33F0;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN
+33F1;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN
+33F2;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN
+33F3;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY
+33F4;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE
+33F5;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO
+33F6;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE
+33F7;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR
+33F8;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE
+33F9;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX
+33FA;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN
+33FB;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT
+33FC;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE
+33FD;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY
+33FE;W;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
+3400;W;<CJK Ideograph Extension A, First>
+4DB5;W;<CJK Ideograph Extension A, Last>
+4E00;W;<CJK Ideograph, First>
+9FA5;W;<CJK Ideograph, Last>
+A000;W;YI SYLLABLE IT
+A001;W;YI SYLLABLE IX
+A002;W;YI SYLLABLE I
+A003;W;YI SYLLABLE IP
+A004;W;YI SYLLABLE IET
+A005;W;YI SYLLABLE IEX
+A006;W;YI SYLLABLE IE
+A007;W;YI SYLLABLE IEP
+A008;W;YI SYLLABLE AT
+A009;W;YI SYLLABLE AX
+A00A;W;YI SYLLABLE A
+A00B;W;YI SYLLABLE AP
+A00C;W;YI SYLLABLE UOX
+A00D;W;YI SYLLABLE UO
+A00E;W;YI SYLLABLE UOP
+A00F;W;YI SYLLABLE OT
+A010;W;YI SYLLABLE OX
+A011;W;YI SYLLABLE O
+A012;W;YI SYLLABLE OP
+A013;W;YI SYLLABLE EX
+A014;W;YI SYLLABLE E
+A015;W;YI SYLLABLE WU
+A016;W;YI SYLLABLE BIT
+A017;W;YI SYLLABLE BIX
+A018;W;YI SYLLABLE BI
+A019;W;YI SYLLABLE BIP
+A01A;W;YI SYLLABLE BIET
+A01B;W;YI SYLLABLE BIEX
+A01C;W;YI SYLLABLE BIE
+A01D;W;YI SYLLABLE BIEP
+A01E;W;YI SYLLABLE BAT
+A01F;W;YI SYLLABLE BAX
+A020;W;YI SYLLABLE BA
+A021;W;YI SYLLABLE BAP
+A022;W;YI SYLLABLE BUOX
+A023;W;YI SYLLABLE BUO
+A024;W;YI SYLLABLE BUOP
+A025;W;YI SYLLABLE BOT
+A026;W;YI SYLLABLE BOX
+A027;W;YI SYLLABLE BO
+A028;W;YI SYLLABLE BOP
+A029;W;YI SYLLABLE BEX
+A02A;W;YI SYLLABLE BE
+A02B;W;YI SYLLABLE BEP
+A02C;W;YI SYLLABLE BUT
+A02D;W;YI SYLLABLE BUX
+A02E;W;YI SYLLABLE BU
+A02F;W;YI SYLLABLE BUP
+A030;W;YI SYLLABLE BURX
+A031;W;YI SYLLABLE BUR
+A032;W;YI SYLLABLE BYT
+A033;W;YI SYLLABLE BYX
+A034;W;YI SYLLABLE BY
+A035;W;YI SYLLABLE BYP
+A036;W;YI SYLLABLE BYRX
+A037;W;YI SYLLABLE BYR
+A038;W;YI SYLLABLE PIT
+A039;W;YI SYLLABLE PIX
+A03A;W;YI SYLLABLE PI
+A03B;W;YI SYLLABLE PIP
+A03C;W;YI SYLLABLE PIEX
+A03D;W;YI SYLLABLE PIE
+A03E;W;YI SYLLABLE PIEP
+A03F;W;YI SYLLABLE PAT
+A040;W;YI SYLLABLE PAX
+A041;W;YI SYLLABLE PA
+A042;W;YI SYLLABLE PAP
+A043;W;YI SYLLABLE PUOX
+A044;W;YI SYLLABLE PUO
+A045;W;YI SYLLABLE PUOP
+A046;W;YI SYLLABLE POT
+A047;W;YI SYLLABLE POX
+A048;W;YI SYLLABLE PO
+A049;W;YI SYLLABLE POP
+A04A;W;YI SYLLABLE PUT
+A04B;W;YI SYLLABLE PUX
+A04C;W;YI SYLLABLE PU
+A04D;W;YI SYLLABLE PUP
+A04E;W;YI SYLLABLE PURX
+A04F;W;YI SYLLABLE PUR
+A050;W;YI SYLLABLE PYT
+A051;W;YI SYLLABLE PYX
+A052;W;YI SYLLABLE PY
+A053;W;YI SYLLABLE PYP
+A054;W;YI SYLLABLE PYRX
+A055;W;YI SYLLABLE PYR
+A056;W;YI SYLLABLE BBIT
+A057;W;YI SYLLABLE BBIX
+A058;W;YI SYLLABLE BBI
+A059;W;YI SYLLABLE BBIP
+A05A;W;YI SYLLABLE BBIET
+A05B;W;YI SYLLABLE BBIEX
+A05C;W;YI SYLLABLE BBIE
+A05D;W;YI SYLLABLE BBIEP
+A05E;W;YI SYLLABLE BBAT
+A05F;W;YI SYLLABLE BBAX
+A060;W;YI SYLLABLE BBA
+A061;W;YI SYLLABLE BBAP
+A062;W;YI SYLLABLE BBUOX
+A063;W;YI SYLLABLE BBUO
+A064;W;YI SYLLABLE BBUOP
+A065;W;YI SYLLABLE BBOT
+A066;W;YI SYLLABLE BBOX
+A067;W;YI SYLLABLE BBO
+A068;W;YI SYLLABLE BBOP
+A069;W;YI SYLLABLE BBEX
+A06A;W;YI SYLLABLE BBE
+A06B;W;YI SYLLABLE BBEP
+A06C;W;YI SYLLABLE BBUT
+A06D;W;YI SYLLABLE BBUX
+A06E;W;YI SYLLABLE BBU
+A06F;W;YI SYLLABLE BBUP
+A070;W;YI SYLLABLE BBURX
+A071;W;YI SYLLABLE BBUR
+A072;W;YI SYLLABLE BBYT
+A073;W;YI SYLLABLE BBYX
+A074;W;YI SYLLABLE BBY
+A075;W;YI SYLLABLE BBYP
+A076;W;YI SYLLABLE NBIT
+A077;W;YI SYLLABLE NBIX
+A078;W;YI SYLLABLE NBI
+A079;W;YI SYLLABLE NBIP
+A07A;W;YI SYLLABLE NBIEX
+A07B;W;YI SYLLABLE NBIE
+A07C;W;YI SYLLABLE NBIEP
+A07D;W;YI SYLLABLE NBAT
+A07E;W;YI SYLLABLE NBAX
+A07F;W;YI SYLLABLE NBA
+A080;W;YI SYLLABLE NBAP
+A081;W;YI SYLLABLE NBOT
+A082;W;YI SYLLABLE NBOX
+A083;W;YI SYLLABLE NBO
+A084;W;YI SYLLABLE NBOP
+A085;W;YI SYLLABLE NBUT
+A086;W;YI SYLLABLE NBUX
+A087;W;YI SYLLABLE NBU
+A088;W;YI SYLLABLE NBUP
+A089;W;YI SYLLABLE NBURX
+A08A;W;YI SYLLABLE NBUR
+A08B;W;YI SYLLABLE NBYT
+A08C;W;YI SYLLABLE NBYX
+A08D;W;YI SYLLABLE NBY
+A08E;W;YI SYLLABLE NBYP
+A08F;W;YI SYLLABLE NBYRX
+A090;W;YI SYLLABLE NBYR
+A091;W;YI SYLLABLE HMIT
+A092;W;YI SYLLABLE HMIX
+A093;W;YI SYLLABLE HMI
+A094;W;YI SYLLABLE HMIP
+A095;W;YI SYLLABLE HMIEX
+A096;W;YI SYLLABLE HMIE
+A097;W;YI SYLLABLE HMIEP
+A098;W;YI SYLLABLE HMAT
+A099;W;YI SYLLABLE HMAX
+A09A;W;YI SYLLABLE HMA
+A09B;W;YI SYLLABLE HMAP
+A09C;W;YI SYLLABLE HMUOX
+A09D;W;YI SYLLABLE HMUO
+A09E;W;YI SYLLABLE HMUOP
+A09F;W;YI SYLLABLE HMOT
+A0A0;W;YI SYLLABLE HMOX
+A0A1;W;YI SYLLABLE HMO
+A0A2;W;YI SYLLABLE HMOP
+A0A3;W;YI SYLLABLE HMUT
+A0A4;W;YI SYLLABLE HMUX
+A0A5;W;YI SYLLABLE HMU
+A0A6;W;YI SYLLABLE HMUP
+A0A7;W;YI SYLLABLE HMURX
+A0A8;W;YI SYLLABLE HMUR
+A0A9;W;YI SYLLABLE HMYX
+A0AA;W;YI SYLLABLE HMY
+A0AB;W;YI SYLLABLE HMYP
+A0AC;W;YI SYLLABLE HMYRX
+A0AD;W;YI SYLLABLE HMYR
+A0AE;W;YI SYLLABLE MIT
+A0AF;W;YI SYLLABLE MIX
+A0B0;W;YI SYLLABLE MI
+A0B1;W;YI SYLLABLE MIP
+A0B2;W;YI SYLLABLE MIEX
+A0B3;W;YI SYLLABLE MIE
+A0B4;W;YI SYLLABLE MIEP
+A0B5;W;YI SYLLABLE MAT
+A0B6;W;YI SYLLABLE MAX
+A0B7;W;YI SYLLABLE MA
+A0B8;W;YI SYLLABLE MAP
+A0B9;W;YI SYLLABLE MUOT
+A0BA;W;YI SYLLABLE MUOX
+A0BB;W;YI SYLLABLE MUO
+A0BC;W;YI SYLLABLE MUOP
+A0BD;W;YI SYLLABLE MOT
+A0BE;W;YI SYLLABLE MOX
+A0BF;W;YI SYLLABLE MO
+A0C0;W;YI SYLLABLE MOP
+A0C1;W;YI SYLLABLE MEX
+A0C2;W;YI SYLLABLE ME
+A0C3;W;YI SYLLABLE MUT
+A0C4;W;YI SYLLABLE MUX
+A0C5;W;YI SYLLABLE MU
+A0C6;W;YI SYLLABLE MUP
+A0C7;W;YI SYLLABLE MURX
+A0C8;W;YI SYLLABLE MUR
+A0C9;W;YI SYLLABLE MYT
+A0CA;W;YI SYLLABLE MYX
+A0CB;W;YI SYLLABLE MY
+A0CC;W;YI SYLLABLE MYP
+A0CD;W;YI SYLLABLE FIT
+A0CE;W;YI SYLLABLE FIX
+A0CF;W;YI SYLLABLE FI
+A0D0;W;YI SYLLABLE FIP
+A0D1;W;YI SYLLABLE FAT
+A0D2;W;YI SYLLABLE FAX
+A0D3;W;YI SYLLABLE FA
+A0D4;W;YI SYLLABLE FAP
+A0D5;W;YI SYLLABLE FOX
+A0D6;W;YI SYLLABLE FO
+A0D7;W;YI SYLLABLE FOP
+A0D8;W;YI SYLLABLE FUT
+A0D9;W;YI SYLLABLE FUX
+A0DA;W;YI SYLLABLE FU
+A0DB;W;YI SYLLABLE FUP
+A0DC;W;YI SYLLABLE FURX
+A0DD;W;YI SYLLABLE FUR
+A0DE;W;YI SYLLABLE FYT
+A0DF;W;YI SYLLABLE FYX
+A0E0;W;YI SYLLABLE FY
+A0E1;W;YI SYLLABLE FYP
+A0E2;W;YI SYLLABLE VIT
+A0E3;W;YI SYLLABLE VIX
+A0E4;W;YI SYLLABLE VI
+A0E5;W;YI SYLLABLE VIP
+A0E6;W;YI SYLLABLE VIET
+A0E7;W;YI SYLLABLE VIEX
+A0E8;W;YI SYLLABLE VIE
+A0E9;W;YI SYLLABLE VIEP
+A0EA;W;YI SYLLABLE VAT
+A0EB;W;YI SYLLABLE VAX
+A0EC;W;YI SYLLABLE VA
+A0ED;W;YI SYLLABLE VAP
+A0EE;W;YI SYLLABLE VOT
+A0EF;W;YI SYLLABLE VOX
+A0F0;W;YI SYLLABLE VO
+A0F1;W;YI SYLLABLE VOP
+A0F2;W;YI SYLLABLE VEX
+A0F3;W;YI SYLLABLE VEP
+A0F4;W;YI SYLLABLE VUT
+A0F5;W;YI SYLLABLE VUX
+A0F6;W;YI SYLLABLE VU
+A0F7;W;YI SYLLABLE VUP
+A0F8;W;YI SYLLABLE VURX
+A0F9;W;YI SYLLABLE VUR
+A0FA;W;YI SYLLABLE VYT
+A0FB;W;YI SYLLABLE VYX
+A0FC;W;YI SYLLABLE VY
+A0FD;W;YI SYLLABLE VYP
+A0FE;W;YI SYLLABLE VYRX
+A0FF;W;YI SYLLABLE VYR
+A100;W;YI SYLLABLE DIT
+A101;W;YI SYLLABLE DIX
+A102;W;YI SYLLABLE DI
+A103;W;YI SYLLABLE DIP
+A104;W;YI SYLLABLE DIEX
+A105;W;YI SYLLABLE DIE
+A106;W;YI SYLLABLE DIEP
+A107;W;YI SYLLABLE DAT
+A108;W;YI SYLLABLE DAX
+A109;W;YI SYLLABLE DA
+A10A;W;YI SYLLABLE DAP
+A10B;W;YI SYLLABLE DUOX
+A10C;W;YI SYLLABLE DUO
+A10D;W;YI SYLLABLE DOT
+A10E;W;YI SYLLABLE DOX
+A10F;W;YI SYLLABLE DO
+A110;W;YI SYLLABLE DOP
+A111;W;YI SYLLABLE DEX
+A112;W;YI SYLLABLE DE
+A113;W;YI SYLLABLE DEP
+A114;W;YI SYLLABLE DUT
+A115;W;YI SYLLABLE DUX
+A116;W;YI SYLLABLE DU
+A117;W;YI SYLLABLE DUP
+A118;W;YI SYLLABLE DURX
+A119;W;YI SYLLABLE DUR
+A11A;W;YI SYLLABLE TIT
+A11B;W;YI SYLLABLE TIX
+A11C;W;YI SYLLABLE TI
+A11D;W;YI SYLLABLE TIP
+A11E;W;YI SYLLABLE TIEX
+A11F;W;YI SYLLABLE TIE
+A120;W;YI SYLLABLE TIEP
+A121;W;YI SYLLABLE TAT
+A122;W;YI SYLLABLE TAX
+A123;W;YI SYLLABLE TA
+A124;W;YI SYLLABLE TAP
+A125;W;YI SYLLABLE TUOT
+A126;W;YI SYLLABLE TUOX
+A127;W;YI SYLLABLE TUO
+A128;W;YI SYLLABLE TUOP
+A129;W;YI SYLLABLE TOT
+A12A;W;YI SYLLABLE TOX
+A12B;W;YI SYLLABLE TO
+A12C;W;YI SYLLABLE TOP
+A12D;W;YI SYLLABLE TEX
+A12E;W;YI SYLLABLE TE
+A12F;W;YI SYLLABLE TEP
+A130;W;YI SYLLABLE TUT
+A131;W;YI SYLLABLE TUX
+A132;W;YI SYLLABLE TU
+A133;W;YI SYLLABLE TUP
+A134;W;YI SYLLABLE TURX
+A135;W;YI SYLLABLE TUR
+A136;W;YI SYLLABLE DDIT
+A137;W;YI SYLLABLE DDIX
+A138;W;YI SYLLABLE DDI
+A139;W;YI SYLLABLE DDIP
+A13A;W;YI SYLLABLE DDIEX
+A13B;W;YI SYLLABLE DDIE
+A13C;W;YI SYLLABLE DDIEP
+A13D;W;YI SYLLABLE DDAT
+A13E;W;YI SYLLABLE DDAX
+A13F;W;YI SYLLABLE DDA
+A140;W;YI SYLLABLE DDAP
+A141;W;YI SYLLABLE DDUOX
+A142;W;YI SYLLABLE DDUO
+A143;W;YI SYLLABLE DDUOP
+A144;W;YI SYLLABLE DDOT
+A145;W;YI SYLLABLE DDOX
+A146;W;YI SYLLABLE DDO
+A147;W;YI SYLLABLE DDOP
+A148;W;YI SYLLABLE DDEX
+A149;W;YI SYLLABLE DDE
+A14A;W;YI SYLLABLE DDEP
+A14B;W;YI SYLLABLE DDUT
+A14C;W;YI SYLLABLE DDUX
+A14D;W;YI SYLLABLE DDU
+A14E;W;YI SYLLABLE DDUP
+A14F;W;YI SYLLABLE DDURX
+A150;W;YI SYLLABLE DDUR
+A151;W;YI SYLLABLE NDIT
+A152;W;YI SYLLABLE NDIX
+A153;W;YI SYLLABLE NDI
+A154;W;YI SYLLABLE NDIP
+A155;W;YI SYLLABLE NDIEX
+A156;W;YI SYLLABLE NDIE
+A157;W;YI SYLLABLE NDAT
+A158;W;YI SYLLABLE NDAX
+A159;W;YI SYLLABLE NDA
+A15A;W;YI SYLLABLE NDAP
+A15B;W;YI SYLLABLE NDOT
+A15C;W;YI SYLLABLE NDOX
+A15D;W;YI SYLLABLE NDO
+A15E;W;YI SYLLABLE NDOP
+A15F;W;YI SYLLABLE NDEX
+A160;W;YI SYLLABLE NDE
+A161;W;YI SYLLABLE NDEP
+A162;W;YI SYLLABLE NDUT
+A163;W;YI SYLLABLE NDUX
+A164;W;YI SYLLABLE NDU
+A165;W;YI SYLLABLE NDUP
+A166;W;YI SYLLABLE NDURX
+A167;W;YI SYLLABLE NDUR
+A168;W;YI SYLLABLE HNIT
+A169;W;YI SYLLABLE HNIX
+A16A;W;YI SYLLABLE HNI
+A16B;W;YI SYLLABLE HNIP
+A16C;W;YI SYLLABLE HNIET
+A16D;W;YI SYLLABLE HNIEX
+A16E;W;YI SYLLABLE HNIE
+A16F;W;YI SYLLABLE HNIEP
+A170;W;YI SYLLABLE HNAT
+A171;W;YI SYLLABLE HNAX
+A172;W;YI SYLLABLE HNA
+A173;W;YI SYLLABLE HNAP
+A174;W;YI SYLLABLE HNUOX
+A175;W;YI SYLLABLE HNUO
+A176;W;YI SYLLABLE HNOT
+A177;W;YI SYLLABLE HNOX
+A178;W;YI SYLLABLE HNOP
+A179;W;YI SYLLABLE HNEX
+A17A;W;YI SYLLABLE HNE
+A17B;W;YI SYLLABLE HNEP
+A17C;W;YI SYLLABLE HNUT
+A17D;W;YI SYLLABLE NIT
+A17E;W;YI SYLLABLE NIX
+A17F;W;YI SYLLABLE NI
+A180;W;YI SYLLABLE NIP
+A181;W;YI SYLLABLE NIEX
+A182;W;YI SYLLABLE NIE
+A183;W;YI SYLLABLE NIEP
+A184;W;YI SYLLABLE NAX
+A185;W;YI SYLLABLE NA
+A186;W;YI SYLLABLE NAP
+A187;W;YI SYLLABLE NUOX
+A188;W;YI SYLLABLE NUO
+A189;W;YI SYLLABLE NUOP
+A18A;W;YI SYLLABLE NOT
+A18B;W;YI SYLLABLE NOX
+A18C;W;YI SYLLABLE NO
+A18D;W;YI SYLLABLE NOP
+A18E;W;YI SYLLABLE NEX
+A18F;W;YI SYLLABLE NE
+A190;W;YI SYLLABLE NEP
+A191;W;YI SYLLABLE NUT
+A192;W;YI SYLLABLE NUX
+A193;W;YI SYLLABLE NU
+A194;W;YI SYLLABLE NUP
+A195;W;YI SYLLABLE NURX
+A196;W;YI SYLLABLE NUR
+A197;W;YI SYLLABLE HLIT
+A198;W;YI SYLLABLE HLIX
+A199;W;YI SYLLABLE HLI
+A19A;W;YI SYLLABLE HLIP
+A19B;W;YI SYLLABLE HLIEX
+A19C;W;YI SYLLABLE HLIE
+A19D;W;YI SYLLABLE HLIEP
+A19E;W;YI SYLLABLE HLAT
+A19F;W;YI SYLLABLE HLAX
+A1A0;W;YI SYLLABLE HLA
+A1A1;W;YI SYLLABLE HLAP
+A1A2;W;YI SYLLABLE HLUOX
+A1A3;W;YI SYLLABLE HLUO
+A1A4;W;YI SYLLABLE HLUOP
+A1A5;W;YI SYLLABLE HLOX
+A1A6;W;YI SYLLABLE HLO
+A1A7;W;YI SYLLABLE HLOP
+A1A8;W;YI SYLLABLE HLEX
+A1A9;W;YI SYLLABLE HLE
+A1AA;W;YI SYLLABLE HLEP
+A1AB;W;YI SYLLABLE HLUT
+A1AC;W;YI SYLLABLE HLUX
+A1AD;W;YI SYLLABLE HLU
+A1AE;W;YI SYLLABLE HLUP
+A1AF;W;YI SYLLABLE HLURX
+A1B0;W;YI SYLLABLE HLUR
+A1B1;W;YI SYLLABLE HLYT
+A1B2;W;YI SYLLABLE HLYX
+A1B3;W;YI SYLLABLE HLY
+A1B4;W;YI SYLLABLE HLYP
+A1B5;W;YI SYLLABLE HLYRX
+A1B6;W;YI SYLLABLE HLYR
+A1B7;W;YI SYLLABLE LIT
+A1B8;W;YI SYLLABLE LIX
+A1B9;W;YI SYLLABLE LI
+A1BA;W;YI SYLLABLE LIP
+A1BB;W;YI SYLLABLE LIET
+A1BC;W;YI SYLLABLE LIEX
+A1BD;W;YI SYLLABLE LIE
+A1BE;W;YI SYLLABLE LIEP
+A1BF;W;YI SYLLABLE LAT
+A1C0;W;YI SYLLABLE LAX
+A1C1;W;YI SYLLABLE LA
+A1C2;W;YI SYLLABLE LAP
+A1C3;W;YI SYLLABLE LUOT
+A1C4;W;YI SYLLABLE LUOX
+A1C5;W;YI SYLLABLE LUO
+A1C6;W;YI SYLLABLE LUOP
+A1C7;W;YI SYLLABLE LOT
+A1C8;W;YI SYLLABLE LOX
+A1C9;W;YI SYLLABLE LO
+A1CA;W;YI SYLLABLE LOP
+A1CB;W;YI SYLLABLE LEX
+A1CC;W;YI SYLLABLE LE
+A1CD;W;YI SYLLABLE LEP
+A1CE;W;YI SYLLABLE LUT
+A1CF;W;YI SYLLABLE LUX
+A1D0;W;YI SYLLABLE LU
+A1D1;W;YI SYLLABLE LUP
+A1D2;W;YI SYLLABLE LURX
+A1D3;W;YI SYLLABLE LUR
+A1D4;W;YI SYLLABLE LYT
+A1D5;W;YI SYLLABLE LYX
+A1D6;W;YI SYLLABLE LY
+A1D7;W;YI SYLLABLE LYP
+A1D8;W;YI SYLLABLE LYRX
+A1D9;W;YI SYLLABLE LYR
+A1DA;W;YI SYLLABLE GIT
+A1DB;W;YI SYLLABLE GIX
+A1DC;W;YI SYLLABLE GI
+A1DD;W;YI SYLLABLE GIP
+A1DE;W;YI SYLLABLE GIET
+A1DF;W;YI SYLLABLE GIEX
+A1E0;W;YI SYLLABLE GIE
+A1E1;W;YI SYLLABLE GIEP
+A1E2;W;YI SYLLABLE GAT
+A1E3;W;YI SYLLABLE GAX
+A1E4;W;YI SYLLABLE GA
+A1E5;W;YI SYLLABLE GAP
+A1E6;W;YI SYLLABLE GUOT
+A1E7;W;YI SYLLABLE GUOX
+A1E8;W;YI SYLLABLE GUO
+A1E9;W;YI SYLLABLE GUOP
+A1EA;W;YI SYLLABLE GOT
+A1EB;W;YI SYLLABLE GOX
+A1EC;W;YI SYLLABLE GO
+A1ED;W;YI SYLLABLE GOP
+A1EE;W;YI SYLLABLE GET
+A1EF;W;YI SYLLABLE GEX
+A1F0;W;YI SYLLABLE GE
+A1F1;W;YI SYLLABLE GEP
+A1F2;W;YI SYLLABLE GUT
+A1F3;W;YI SYLLABLE GUX
+A1F4;W;YI SYLLABLE GU
+A1F5;W;YI SYLLABLE GUP
+A1F6;W;YI SYLLABLE GURX
+A1F7;W;YI SYLLABLE GUR
+A1F8;W;YI SYLLABLE KIT
+A1F9;W;YI SYLLABLE KIX
+A1FA;W;YI SYLLABLE KI
+A1FB;W;YI SYLLABLE KIP
+A1FC;W;YI SYLLABLE KIEX
+A1FD;W;YI SYLLABLE KIE
+A1FE;W;YI SYLLABLE KIEP
+A1FF;W;YI SYLLABLE KAT
+A200;W;YI SYLLABLE KAX
+A201;W;YI SYLLABLE KA
+A202;W;YI SYLLABLE KAP
+A203;W;YI SYLLABLE KUOX
+A204;W;YI SYLLABLE KUO
+A205;W;YI SYLLABLE KUOP
+A206;W;YI SYLLABLE KOT
+A207;W;YI SYLLABLE KOX
+A208;W;YI SYLLABLE KO
+A209;W;YI SYLLABLE KOP
+A20A;W;YI SYLLABLE KET
+A20B;W;YI SYLLABLE KEX
+A20C;W;YI SYLLABLE KE
+A20D;W;YI SYLLABLE KEP
+A20E;W;YI SYLLABLE KUT
+A20F;W;YI SYLLABLE KUX
+A210;W;YI SYLLABLE KU
+A211;W;YI SYLLABLE KUP
+A212;W;YI SYLLABLE KURX
+A213;W;YI SYLLABLE KUR
+A214;W;YI SYLLABLE GGIT
+A215;W;YI SYLLABLE GGIX
+A216;W;YI SYLLABLE GGI
+A217;W;YI SYLLABLE GGIEX
+A218;W;YI SYLLABLE GGIE
+A219;W;YI SYLLABLE GGIEP
+A21A;W;YI SYLLABLE GGAT
+A21B;W;YI SYLLABLE GGAX
+A21C;W;YI SYLLABLE GGA
+A21D;W;YI SYLLABLE GGAP
+A21E;W;YI SYLLABLE GGUOT
+A21F;W;YI SYLLABLE GGUOX
+A220;W;YI SYLLABLE GGUO
+A221;W;YI SYLLABLE GGUOP
+A222;W;YI SYLLABLE GGOT
+A223;W;YI SYLLABLE GGOX
+A224;W;YI SYLLABLE GGO
+A225;W;YI SYLLABLE GGOP
+A226;W;YI SYLLABLE GGET
+A227;W;YI SYLLABLE GGEX
+A228;W;YI SYLLABLE GGE
+A229;W;YI SYLLABLE GGEP
+A22A;W;YI SYLLABLE GGUT
+A22B;W;YI SYLLABLE GGUX
+A22C;W;YI SYLLABLE GGU
+A22D;W;YI SYLLABLE GGUP
+A22E;W;YI SYLLABLE GGURX
+A22F;W;YI SYLLABLE GGUR
+A230;W;YI SYLLABLE MGIEX
+A231;W;YI SYLLABLE MGIE
+A232;W;YI SYLLABLE MGAT
+A233;W;YI SYLLABLE MGAX
+A234;W;YI SYLLABLE MGA
+A235;W;YI SYLLABLE MGAP
+A236;W;YI SYLLABLE MGUOX
+A237;W;YI SYLLABLE MGUO
+A238;W;YI SYLLABLE MGUOP
+A239;W;YI SYLLABLE MGOT
+A23A;W;YI SYLLABLE MGOX
+A23B;W;YI SYLLABLE MGO
+A23C;W;YI SYLLABLE MGOP
+A23D;W;YI SYLLABLE MGEX
+A23E;W;YI SYLLABLE MGE
+A23F;W;YI SYLLABLE MGEP
+A240;W;YI SYLLABLE MGUT
+A241;W;YI SYLLABLE MGUX
+A242;W;YI SYLLABLE MGU
+A243;W;YI SYLLABLE MGUP
+A244;W;YI SYLLABLE MGURX
+A245;W;YI SYLLABLE MGUR
+A246;W;YI SYLLABLE HXIT
+A247;W;YI SYLLABLE HXIX
+A248;W;YI SYLLABLE HXI
+A249;W;YI SYLLABLE HXIP
+A24A;W;YI SYLLABLE HXIET
+A24B;W;YI SYLLABLE HXIEX
+A24C;W;YI SYLLABLE HXIE
+A24D;W;YI SYLLABLE HXIEP
+A24E;W;YI SYLLABLE HXAT
+A24F;W;YI SYLLABLE HXAX
+A250;W;YI SYLLABLE HXA
+A251;W;YI SYLLABLE HXAP
+A252;W;YI SYLLABLE HXUOT
+A253;W;YI SYLLABLE HXUOX
+A254;W;YI SYLLABLE HXUO
+A255;W;YI SYLLABLE HXUOP
+A256;W;YI SYLLABLE HXOT
+A257;W;YI SYLLABLE HXOX
+A258;W;YI SYLLABLE HXO
+A259;W;YI SYLLABLE HXOP
+A25A;W;YI SYLLABLE HXEX
+A25B;W;YI SYLLABLE HXE
+A25C;W;YI SYLLABLE HXEP
+A25D;W;YI SYLLABLE NGIEX
+A25E;W;YI SYLLABLE NGIE
+A25F;W;YI SYLLABLE NGIEP
+A260;W;YI SYLLABLE NGAT
+A261;W;YI SYLLABLE NGAX
+A262;W;YI SYLLABLE NGA
+A263;W;YI SYLLABLE NGAP
+A264;W;YI SYLLABLE NGUOT
+A265;W;YI SYLLABLE NGUOX
+A266;W;YI SYLLABLE NGUO
+A267;W;YI SYLLABLE NGOT
+A268;W;YI SYLLABLE NGOX
+A269;W;YI SYLLABLE NGO
+A26A;W;YI SYLLABLE NGOP
+A26B;W;YI SYLLABLE NGEX
+A26C;W;YI SYLLABLE NGE
+A26D;W;YI SYLLABLE NGEP
+A26E;W;YI SYLLABLE HIT
+A26F;W;YI SYLLABLE HIEX
+A270;W;YI SYLLABLE HIE
+A271;W;YI SYLLABLE HAT
+A272;W;YI SYLLABLE HAX
+A273;W;YI SYLLABLE HA
+A274;W;YI SYLLABLE HAP
+A275;W;YI SYLLABLE HUOT
+A276;W;YI SYLLABLE HUOX
+A277;W;YI SYLLABLE HUO
+A278;W;YI SYLLABLE HUOP
+A279;W;YI SYLLABLE HOT
+A27A;W;YI SYLLABLE HOX
+A27B;W;YI SYLLABLE HO
+A27C;W;YI SYLLABLE HOP
+A27D;W;YI SYLLABLE HEX
+A27E;W;YI SYLLABLE HE
+A27F;W;YI SYLLABLE HEP
+A280;W;YI SYLLABLE WAT
+A281;W;YI SYLLABLE WAX
+A282;W;YI SYLLABLE WA
+A283;W;YI SYLLABLE WAP
+A284;W;YI SYLLABLE WUOX
+A285;W;YI SYLLABLE WUO
+A286;W;YI SYLLABLE WUOP
+A287;W;YI SYLLABLE WOX
+A288;W;YI SYLLABLE WO
+A289;W;YI SYLLABLE WOP
+A28A;W;YI SYLLABLE WEX
+A28B;W;YI SYLLABLE WE
+A28C;W;YI SYLLABLE WEP
+A28D;W;YI SYLLABLE ZIT
+A28E;W;YI SYLLABLE ZIX
+A28F;W;YI SYLLABLE ZI
+A290;W;YI SYLLABLE ZIP
+A291;W;YI SYLLABLE ZIEX
+A292;W;YI SYLLABLE ZIE
+A293;W;YI SYLLABLE ZIEP
+A294;W;YI SYLLABLE ZAT
+A295;W;YI SYLLABLE ZAX
+A296;W;YI SYLLABLE ZA
+A297;W;YI SYLLABLE ZAP
+A298;W;YI SYLLABLE ZUOX
+A299;W;YI SYLLABLE ZUO
+A29A;W;YI SYLLABLE ZUOP
+A29B;W;YI SYLLABLE ZOT
+A29C;W;YI SYLLABLE ZOX
+A29D;W;YI SYLLABLE ZO
+A29E;W;YI SYLLABLE ZOP
+A29F;W;YI SYLLABLE ZEX
+A2A0;W;YI SYLLABLE ZE
+A2A1;W;YI SYLLABLE ZEP
+A2A2;W;YI SYLLABLE ZUT
+A2A3;W;YI SYLLABLE ZUX
+A2A4;W;YI SYLLABLE ZU
+A2A5;W;YI SYLLABLE ZUP
+A2A6;W;YI SYLLABLE ZURX
+A2A7;W;YI SYLLABLE ZUR
+A2A8;W;YI SYLLABLE ZYT
+A2A9;W;YI SYLLABLE ZYX
+A2AA;W;YI SYLLABLE ZY
+A2AB;W;YI SYLLABLE ZYP
+A2AC;W;YI SYLLABLE ZYRX
+A2AD;W;YI SYLLABLE ZYR
+A2AE;W;YI SYLLABLE CIT
+A2AF;W;YI SYLLABLE CIX
+A2B0;W;YI SYLLABLE CI
+A2B1;W;YI SYLLABLE CIP
+A2B2;W;YI SYLLABLE CIET
+A2B3;W;YI SYLLABLE CIEX
+A2B4;W;YI SYLLABLE CIE
+A2B5;W;YI SYLLABLE CIEP
+A2B6;W;YI SYLLABLE CAT
+A2B7;W;YI SYLLABLE CAX
+A2B8;W;YI SYLLABLE CA
+A2B9;W;YI SYLLABLE CAP
+A2BA;W;YI SYLLABLE CUOX
+A2BB;W;YI SYLLABLE CUO
+A2BC;W;YI SYLLABLE CUOP
+A2BD;W;YI SYLLABLE COT
+A2BE;W;YI SYLLABLE COX
+A2BF;W;YI SYLLABLE CO
+A2C0;W;YI SYLLABLE COP
+A2C1;W;YI SYLLABLE CEX
+A2C2;W;YI SYLLABLE CE
+A2C3;W;YI SYLLABLE CEP
+A2C4;W;YI SYLLABLE CUT
+A2C5;W;YI SYLLABLE CUX
+A2C6;W;YI SYLLABLE CU
+A2C7;W;YI SYLLABLE CUP
+A2C8;W;YI SYLLABLE CURX
+A2C9;W;YI SYLLABLE CUR
+A2CA;W;YI SYLLABLE CYT
+A2CB;W;YI SYLLABLE CYX
+A2CC;W;YI SYLLABLE CY
+A2CD;W;YI SYLLABLE CYP
+A2CE;W;YI SYLLABLE CYRX
+A2CF;W;YI SYLLABLE CYR
+A2D0;W;YI SYLLABLE ZZIT
+A2D1;W;YI SYLLABLE ZZIX
+A2D2;W;YI SYLLABLE ZZI
+A2D3;W;YI SYLLABLE ZZIP
+A2D4;W;YI SYLLABLE ZZIET
+A2D5;W;YI SYLLABLE ZZIEX
+A2D6;W;YI SYLLABLE ZZIE
+A2D7;W;YI SYLLABLE ZZIEP
+A2D8;W;YI SYLLABLE ZZAT
+A2D9;W;YI SYLLABLE ZZAX
+A2DA;W;YI SYLLABLE ZZA
+A2DB;W;YI SYLLABLE ZZAP
+A2DC;W;YI SYLLABLE ZZOX
+A2DD;W;YI SYLLABLE ZZO
+A2DE;W;YI SYLLABLE ZZOP
+A2DF;W;YI SYLLABLE ZZEX
+A2E0;W;YI SYLLABLE ZZE
+A2E1;W;YI SYLLABLE ZZEP
+A2E2;W;YI SYLLABLE ZZUX
+A2E3;W;YI SYLLABLE ZZU
+A2E4;W;YI SYLLABLE ZZUP
+A2E5;W;YI SYLLABLE ZZURX
+A2E6;W;YI SYLLABLE ZZUR
+A2E7;W;YI SYLLABLE ZZYT
+A2E8;W;YI SYLLABLE ZZYX
+A2E9;W;YI SYLLABLE ZZY
+A2EA;W;YI SYLLABLE ZZYP
+A2EB;W;YI SYLLABLE ZZYRX
+A2EC;W;YI SYLLABLE ZZYR
+A2ED;W;YI SYLLABLE NZIT
+A2EE;W;YI SYLLABLE NZIX
+A2EF;W;YI SYLLABLE NZI
+A2F0;W;YI SYLLABLE NZIP
+A2F1;W;YI SYLLABLE NZIEX
+A2F2;W;YI SYLLABLE NZIE
+A2F3;W;YI SYLLABLE NZIEP
+A2F4;W;YI SYLLABLE NZAT
+A2F5;W;YI SYLLABLE NZAX
+A2F6;W;YI SYLLABLE NZA
+A2F7;W;YI SYLLABLE NZAP
+A2F8;W;YI SYLLABLE NZUOX
+A2F9;W;YI SYLLABLE NZUO
+A2FA;W;YI SYLLABLE NZOX
+A2FB;W;YI SYLLABLE NZOP
+A2FC;W;YI SYLLABLE NZEX
+A2FD;W;YI SYLLABLE NZE
+A2FE;W;YI SYLLABLE NZUX
+A2FF;W;YI SYLLABLE NZU
+A300;W;YI SYLLABLE NZUP
+A301;W;YI SYLLABLE NZURX
+A302;W;YI SYLLABLE NZUR
+A303;W;YI SYLLABLE NZYT
+A304;W;YI SYLLABLE NZYX
+A305;W;YI SYLLABLE NZY
+A306;W;YI SYLLABLE NZYP
+A307;W;YI SYLLABLE NZYRX
+A308;W;YI SYLLABLE NZYR
+A309;W;YI SYLLABLE SIT
+A30A;W;YI SYLLABLE SIX
+A30B;W;YI SYLLABLE SI
+A30C;W;YI SYLLABLE SIP
+A30D;W;YI SYLLABLE SIEX
+A30E;W;YI SYLLABLE SIE
+A30F;W;YI SYLLABLE SIEP
+A310;W;YI SYLLABLE SAT
+A311;W;YI SYLLABLE SAX
+A312;W;YI SYLLABLE SA
+A313;W;YI SYLLABLE SAP
+A314;W;YI SYLLABLE SUOX
+A315;W;YI SYLLABLE SUO
+A316;W;YI SYLLABLE SUOP
+A317;W;YI SYLLABLE SOT
+A318;W;YI SYLLABLE SOX
+A319;W;YI SYLLABLE SO
+A31A;W;YI SYLLABLE SOP
+A31B;W;YI SYLLABLE SEX
+A31C;W;YI SYLLABLE SE
+A31D;W;YI SYLLABLE SEP
+A31E;W;YI SYLLABLE SUT
+A31F;W;YI SYLLABLE SUX
+A320;W;YI SYLLABLE SU
+A321;W;YI SYLLABLE SUP
+A322;W;YI SYLLABLE SURX
+A323;W;YI SYLLABLE SUR
+A324;W;YI SYLLABLE SYT
+A325;W;YI SYLLABLE SYX
+A326;W;YI SYLLABLE SY
+A327;W;YI SYLLABLE SYP
+A328;W;YI SYLLABLE SYRX
+A329;W;YI SYLLABLE SYR
+A32A;W;YI SYLLABLE SSIT
+A32B;W;YI SYLLABLE SSIX
+A32C;W;YI SYLLABLE SSI
+A32D;W;YI SYLLABLE SSIP
+A32E;W;YI SYLLABLE SSIEX
+A32F;W;YI SYLLABLE SSIE
+A330;W;YI SYLLABLE SSIEP
+A331;W;YI SYLLABLE SSAT
+A332;W;YI SYLLABLE SSAX
+A333;W;YI SYLLABLE SSA
+A334;W;YI SYLLABLE SSAP
+A335;W;YI SYLLABLE SSOT
+A336;W;YI SYLLABLE SSOX
+A337;W;YI SYLLABLE SSO
+A338;W;YI SYLLABLE SSOP
+A339;W;YI SYLLABLE SSEX
+A33A;W;YI SYLLABLE SSE
+A33B;W;YI SYLLABLE SSEP
+A33C;W;YI SYLLABLE SSUT
+A33D;W;YI SYLLABLE SSUX
+A33E;W;YI SYLLABLE SSU
+A33F;W;YI SYLLABLE SSUP
+A340;W;YI SYLLABLE SSYT
+A341;W;YI SYLLABLE SSYX
+A342;W;YI SYLLABLE SSY
+A343;W;YI SYLLABLE SSYP
+A344;W;YI SYLLABLE SSYRX
+A345;W;YI SYLLABLE SSYR
+A346;W;YI SYLLABLE ZHAT
+A347;W;YI SYLLABLE ZHAX
+A348;W;YI SYLLABLE ZHA
+A349;W;YI SYLLABLE ZHAP
+A34A;W;YI SYLLABLE ZHUOX
+A34B;W;YI SYLLABLE ZHUO
+A34C;W;YI SYLLABLE ZHUOP
+A34D;W;YI SYLLABLE ZHOT
+A34E;W;YI SYLLABLE ZHOX
+A34F;W;YI SYLLABLE ZHO
+A350;W;YI SYLLABLE ZHOP
+A351;W;YI SYLLABLE ZHET
+A352;W;YI SYLLABLE ZHEX
+A353;W;YI SYLLABLE ZHE
+A354;W;YI SYLLABLE ZHEP
+A355;W;YI SYLLABLE ZHUT
+A356;W;YI SYLLABLE ZHUX
+A357;W;YI SYLLABLE ZHU
+A358;W;YI SYLLABLE ZHUP
+A359;W;YI SYLLABLE ZHURX
+A35A;W;YI SYLLABLE ZHUR
+A35B;W;YI SYLLABLE ZHYT
+A35C;W;YI SYLLABLE ZHYX
+A35D;W;YI SYLLABLE ZHY
+A35E;W;YI SYLLABLE ZHYP
+A35F;W;YI SYLLABLE ZHYRX
+A360;W;YI SYLLABLE ZHYR
+A361;W;YI SYLLABLE CHAT
+A362;W;YI SYLLABLE CHAX
+A363;W;YI SYLLABLE CHA
+A364;W;YI SYLLABLE CHAP
+A365;W;YI SYLLABLE CHUOT
+A366;W;YI SYLLABLE CHUOX
+A367;W;YI SYLLABLE CHUO
+A368;W;YI SYLLABLE CHUOP
+A369;W;YI SYLLABLE CHOT
+A36A;W;YI SYLLABLE CHOX
+A36B;W;YI SYLLABLE CHO
+A36C;W;YI SYLLABLE CHOP
+A36D;W;YI SYLLABLE CHET
+A36E;W;YI SYLLABLE CHEX
+A36F;W;YI SYLLABLE CHE
+A370;W;YI SYLLABLE CHEP
+A371;W;YI SYLLABLE CHUX
+A372;W;YI SYLLABLE CHU
+A373;W;YI SYLLABLE CHUP
+A374;W;YI SYLLABLE CHURX
+A375;W;YI SYLLABLE CHUR
+A376;W;YI SYLLABLE CHYT
+A377;W;YI SYLLABLE CHYX
+A378;W;YI SYLLABLE CHY
+A379;W;YI SYLLABLE CHYP
+A37A;W;YI SYLLABLE CHYRX
+A37B;W;YI SYLLABLE CHYR
+A37C;W;YI SYLLABLE RRAX
+A37D;W;YI SYLLABLE RRA
+A37E;W;YI SYLLABLE RRUOX
+A37F;W;YI SYLLABLE RRUO
+A380;W;YI SYLLABLE RROT
+A381;W;YI SYLLABLE RROX
+A382;W;YI SYLLABLE RRO
+A383;W;YI SYLLABLE RROP
+A384;W;YI SYLLABLE RRET
+A385;W;YI SYLLABLE RREX
+A386;W;YI SYLLABLE RRE
+A387;W;YI SYLLABLE RREP
+A388;W;YI SYLLABLE RRUT
+A389;W;YI SYLLABLE RRUX
+A38A;W;YI SYLLABLE RRU
+A38B;W;YI SYLLABLE RRUP
+A38C;W;YI SYLLABLE RRURX
+A38D;W;YI SYLLABLE RRUR
+A38E;W;YI SYLLABLE RRYT
+A38F;W;YI SYLLABLE RRYX
+A390;W;YI SYLLABLE RRY
+A391;W;YI SYLLABLE RRYP
+A392;W;YI SYLLABLE RRYRX
+A393;W;YI SYLLABLE RRYR
+A394;W;YI SYLLABLE NRAT
+A395;W;YI SYLLABLE NRAX
+A396;W;YI SYLLABLE NRA
+A397;W;YI SYLLABLE NRAP
+A398;W;YI SYLLABLE NROX
+A399;W;YI SYLLABLE NRO
+A39A;W;YI SYLLABLE NROP
+A39B;W;YI SYLLABLE NRET
+A39C;W;YI SYLLABLE NREX
+A39D;W;YI SYLLABLE NRE
+A39E;W;YI SYLLABLE NREP
+A39F;W;YI SYLLABLE NRUT
+A3A0;W;YI SYLLABLE NRUX
+A3A1;W;YI SYLLABLE NRU
+A3A2;W;YI SYLLABLE NRUP
+A3A3;W;YI SYLLABLE NRURX
+A3A4;W;YI SYLLABLE NRUR
+A3A5;W;YI SYLLABLE NRYT
+A3A6;W;YI SYLLABLE NRYX
+A3A7;W;YI SYLLABLE NRY
+A3A8;W;YI SYLLABLE NRYP
+A3A9;W;YI SYLLABLE NRYRX
+A3AA;W;YI SYLLABLE NRYR
+A3AB;W;YI SYLLABLE SHAT
+A3AC;W;YI SYLLABLE SHAX
+A3AD;W;YI SYLLABLE SHA
+A3AE;W;YI SYLLABLE SHAP
+A3AF;W;YI SYLLABLE SHUOX
+A3B0;W;YI SYLLABLE SHUO
+A3B1;W;YI SYLLABLE SHUOP
+A3B2;W;YI SYLLABLE SHOT
+A3B3;W;YI SYLLABLE SHOX
+A3B4;W;YI SYLLABLE SHO
+A3B5;W;YI SYLLABLE SHOP
+A3B6;W;YI SYLLABLE SHET
+A3B7;W;YI SYLLABLE SHEX
+A3B8;W;YI SYLLABLE SHE
+A3B9;W;YI SYLLABLE SHEP
+A3BA;W;YI SYLLABLE SHUT
+A3BB;W;YI SYLLABLE SHUX
+A3BC;W;YI SYLLABLE SHU
+A3BD;W;YI SYLLABLE SHUP
+A3BE;W;YI SYLLABLE SHURX
+A3BF;W;YI SYLLABLE SHUR
+A3C0;W;YI SYLLABLE SHYT
+A3C1;W;YI SYLLABLE SHYX
+A3C2;W;YI SYLLABLE SHY
+A3C3;W;YI SYLLABLE SHYP
+A3C4;W;YI SYLLABLE SHYRX
+A3C5;W;YI SYLLABLE SHYR
+A3C6;W;YI SYLLABLE RAT
+A3C7;W;YI SYLLABLE RAX
+A3C8;W;YI SYLLABLE RA
+A3C9;W;YI SYLLABLE RAP
+A3CA;W;YI SYLLABLE RUOX
+A3CB;W;YI SYLLABLE RUO
+A3CC;W;YI SYLLABLE RUOP
+A3CD;W;YI SYLLABLE ROT
+A3CE;W;YI SYLLABLE ROX
+A3CF;W;YI SYLLABLE RO
+A3D0;W;YI SYLLABLE ROP
+A3D1;W;YI SYLLABLE REX
+A3D2;W;YI SYLLABLE RE
+A3D3;W;YI SYLLABLE REP
+A3D4;W;YI SYLLABLE RUT
+A3D5;W;YI SYLLABLE RUX
+A3D6;W;YI SYLLABLE RU
+A3D7;W;YI SYLLABLE RUP
+A3D8;W;YI SYLLABLE RURX
+A3D9;W;YI SYLLABLE RUR
+A3DA;W;YI SYLLABLE RYT
+A3DB;W;YI SYLLABLE RYX
+A3DC;W;YI SYLLABLE RY
+A3DD;W;YI SYLLABLE RYP
+A3DE;W;YI SYLLABLE RYRX
+A3DF;W;YI SYLLABLE RYR
+A3E0;W;YI SYLLABLE JIT
+A3E1;W;YI SYLLABLE JIX
+A3E2;W;YI SYLLABLE JI
+A3E3;W;YI SYLLABLE JIP
+A3E4;W;YI SYLLABLE JIET
+A3E5;W;YI SYLLABLE JIEX
+A3E6;W;YI SYLLABLE JIE
+A3E7;W;YI SYLLABLE JIEP
+A3E8;W;YI SYLLABLE JUOT
+A3E9;W;YI SYLLABLE JUOX
+A3EA;W;YI SYLLABLE JUO
+A3EB;W;YI SYLLABLE JUOP
+A3EC;W;YI SYLLABLE JOT
+A3ED;W;YI SYLLABLE JOX
+A3EE;W;YI SYLLABLE JO
+A3EF;W;YI SYLLABLE JOP
+A3F0;W;YI SYLLABLE JUT
+A3F1;W;YI SYLLABLE JUX
+A3F2;W;YI SYLLABLE JU
+A3F3;W;YI SYLLABLE JUP
+A3F4;W;YI SYLLABLE JURX
+A3F5;W;YI SYLLABLE JUR
+A3F6;W;YI SYLLABLE JYT
+A3F7;W;YI SYLLABLE JYX
+A3F8;W;YI SYLLABLE JY
+A3F9;W;YI SYLLABLE JYP
+A3FA;W;YI SYLLABLE JYRX
+A3FB;W;YI SYLLABLE JYR
+A3FC;W;YI SYLLABLE QIT
+A3FD;W;YI SYLLABLE QIX
+A3FE;W;YI SYLLABLE QI
+A3FF;W;YI SYLLABLE QIP
+A400;W;YI SYLLABLE QIET
+A401;W;YI SYLLABLE QIEX
+A402;W;YI SYLLABLE QIE
+A403;W;YI SYLLABLE QIEP
+A404;W;YI SYLLABLE QUOT
+A405;W;YI SYLLABLE QUOX
+A406;W;YI SYLLABLE QUO
+A407;W;YI SYLLABLE QUOP
+A408;W;YI SYLLABLE QOT
+A409;W;YI SYLLABLE QOX
+A40A;W;YI SYLLABLE QO
+A40B;W;YI SYLLABLE QOP
+A40C;W;YI SYLLABLE QUT
+A40D;W;YI SYLLABLE QUX
+A40E;W;YI SYLLABLE QU
+A40F;W;YI SYLLABLE QUP
+A410;W;YI SYLLABLE QURX
+A411;W;YI SYLLABLE QUR
+A412;W;YI SYLLABLE QYT
+A413;W;YI SYLLABLE QYX
+A414;W;YI SYLLABLE QY
+A415;W;YI SYLLABLE QYP
+A416;W;YI SYLLABLE QYRX
+A417;W;YI SYLLABLE QYR
+A418;W;YI SYLLABLE JJIT
+A419;W;YI SYLLABLE JJIX
+A41A;W;YI SYLLABLE JJI
+A41B;W;YI SYLLABLE JJIP
+A41C;W;YI SYLLABLE JJIET
+A41D;W;YI SYLLABLE JJIEX
+A41E;W;YI SYLLABLE JJIE
+A41F;W;YI SYLLABLE JJIEP
+A420;W;YI SYLLABLE JJUOX
+A421;W;YI SYLLABLE JJUO
+A422;W;YI SYLLABLE JJUOP
+A423;W;YI SYLLABLE JJOT
+A424;W;YI SYLLABLE JJOX
+A425;W;YI SYLLABLE JJO
+A426;W;YI SYLLABLE JJOP
+A427;W;YI SYLLABLE JJUT
+A428;W;YI SYLLABLE JJUX
+A429;W;YI SYLLABLE JJU
+A42A;W;YI SYLLABLE JJUP
+A42B;W;YI SYLLABLE JJURX
+A42C;W;YI SYLLABLE JJUR
+A42D;W;YI SYLLABLE JJYT
+A42E;W;YI SYLLABLE JJYX
+A42F;W;YI SYLLABLE JJY
+A430;W;YI SYLLABLE JJYP
+A431;W;YI SYLLABLE NJIT
+A432;W;YI SYLLABLE NJIX
+A433;W;YI SYLLABLE NJI
+A434;W;YI SYLLABLE NJIP
+A435;W;YI SYLLABLE NJIET
+A436;W;YI SYLLABLE NJIEX
+A437;W;YI SYLLABLE NJIE
+A438;W;YI SYLLABLE NJIEP
+A439;W;YI SYLLABLE NJUOX
+A43A;W;YI SYLLABLE NJUO
+A43B;W;YI SYLLABLE NJOT
+A43C;W;YI SYLLABLE NJOX
+A43D;W;YI SYLLABLE NJO
+A43E;W;YI SYLLABLE NJOP
+A43F;W;YI SYLLABLE NJUX
+A440;W;YI SYLLABLE NJU
+A441;W;YI SYLLABLE NJUP
+A442;W;YI SYLLABLE NJURX
+A443;W;YI SYLLABLE NJUR
+A444;W;YI SYLLABLE NJYT
+A445;W;YI SYLLABLE NJYX
+A446;W;YI SYLLABLE NJY
+A447;W;YI SYLLABLE NJYP
+A448;W;YI SYLLABLE NJYRX
+A449;W;YI SYLLABLE NJYR
+A44A;W;YI SYLLABLE NYIT
+A44B;W;YI SYLLABLE NYIX
+A44C;W;YI SYLLABLE NYI
+A44D;W;YI SYLLABLE NYIP
+A44E;W;YI SYLLABLE NYIET
+A44F;W;YI SYLLABLE NYIEX
+A450;W;YI SYLLABLE NYIE
+A451;W;YI SYLLABLE NYIEP
+A452;W;YI SYLLABLE NYUOX
+A453;W;YI SYLLABLE NYUO
+A454;W;YI SYLLABLE NYUOP
+A455;W;YI SYLLABLE NYOT
+A456;W;YI SYLLABLE NYOX
+A457;W;YI SYLLABLE NYO
+A458;W;YI SYLLABLE NYOP
+A459;W;YI SYLLABLE NYUT
+A45A;W;YI SYLLABLE NYUX
+A45B;W;YI SYLLABLE NYU
+A45C;W;YI SYLLABLE NYUP
+A45D;W;YI SYLLABLE XIT
+A45E;W;YI SYLLABLE XIX
+A45F;W;YI SYLLABLE XI
+A460;W;YI SYLLABLE XIP
+A461;W;YI SYLLABLE XIET
+A462;W;YI SYLLABLE XIEX
+A463;W;YI SYLLABLE XIE
+A464;W;YI SYLLABLE XIEP
+A465;W;YI SYLLABLE XUOX
+A466;W;YI SYLLABLE XUO
+A467;W;YI SYLLABLE XOT
+A468;W;YI SYLLABLE XOX
+A469;W;YI SYLLABLE XO
+A46A;W;YI SYLLABLE XOP
+A46B;W;YI SYLLABLE XYT
+A46C;W;YI SYLLABLE XYX
+A46D;W;YI SYLLABLE XY
+A46E;W;YI SYLLABLE XYP
+A46F;W;YI SYLLABLE XYRX
+A470;W;YI SYLLABLE XYR
+A471;W;YI SYLLABLE YIT
+A472;W;YI SYLLABLE YIX
+A473;W;YI SYLLABLE YI
+A474;W;YI SYLLABLE YIP
+A475;W;YI SYLLABLE YIET
+A476;W;YI SYLLABLE YIEX
+A477;W;YI SYLLABLE YIE
+A478;W;YI SYLLABLE YIEP
+A479;W;YI SYLLABLE YUOT
+A47A;W;YI SYLLABLE YUOX
+A47B;W;YI SYLLABLE YUO
+A47C;W;YI SYLLABLE YUOP
+A47D;W;YI SYLLABLE YOT
+A47E;W;YI SYLLABLE YOX
+A47F;W;YI SYLLABLE YO
+A480;W;YI SYLLABLE YOP
+A481;W;YI SYLLABLE YUT
+A482;W;YI SYLLABLE YUX
+A483;W;YI SYLLABLE YU
+A484;W;YI SYLLABLE YUP
+A485;W;YI SYLLABLE YURX
+A486;W;YI SYLLABLE YUR
+A487;W;YI SYLLABLE YYT
+A488;W;YI SYLLABLE YYX
+A489;W;YI SYLLABLE YY
+A48A;W;YI SYLLABLE YYP
+A48B;W;YI SYLLABLE YYRX
+A48C;W;YI SYLLABLE YYR
+A490;W;YI RADICAL QOT
+A491;W;YI RADICAL LI
+A492;W;YI RADICAL KIT
+A493;W;YI RADICAL NYIP
+A494;W;YI RADICAL CYP
+A495;W;YI RADICAL SSI
+A496;W;YI RADICAL GGOP
+A497;W;YI RADICAL GEP
+A498;W;YI RADICAL MI
+A499;W;YI RADICAL HXIT
+A49A;W;YI RADICAL LYR
+A49B;W;YI RADICAL BBUT
+A49C;W;YI RADICAL MOP
+A49D;W;YI RADICAL YO
+A49E;W;YI RADICAL PUT
+A49F;W;YI RADICAL HXUO
+A4A0;W;YI RADICAL TAT
+A4A1;W;YI RADICAL GA
+A4A4;W;YI RADICAL DDUR
+A4A5;W;YI RADICAL BUR
+A4A6;W;YI RADICAL GGUO
+A4A7;W;YI RADICAL NYOP
+A4A8;W;YI RADICAL TU
+A4A9;W;YI RADICAL OP
+A4AA;W;YI RADICAL JJUT
+A4AB;W;YI RADICAL ZOT
+A4AC;W;YI RADICAL PYT
+A4AD;W;YI RADICAL HMO
+A4AE;W;YI RADICAL YIT
+A4AF;W;YI RADICAL VUR
+A4B0;W;YI RADICAL SHY
+A4B1;W;YI RADICAL VEP
+A4B2;W;YI RADICAL ZA
+A4B3;W;YI RADICAL JO
+A4B5;W;YI RADICAL JJY
+A4B6;W;YI RADICAL GOT
+A4B7;W;YI RADICAL JJIE
+A4B8;W;YI RADICAL WO
+A4B9;W;YI RADICAL DU
+A4BA;W;YI RADICAL SHUR
+A4BB;W;YI RADICAL LIE
+A4BC;W;YI RADICAL CY
+A4BD;W;YI RADICAL CUOP
+A4BE;W;YI RADICAL CIP
+A4BF;W;YI RADICAL HXOP
+A4C0;W;YI RADICAL SHAT
+A4C2;W;YI RADICAL SHOP
+A4C3;W;YI RADICAL CHE
+A4C4;W;YI RADICAL ZZIET
+A4C6;W;YI RADICAL KE
+AC00;W;<Hangul Syllable, First>
+D7A3;W;<Hangul Syllable, Last>
+D800;N;<Non Private Use High Surrogate, First>
+DB7F;N;<Non Private Use High Surrogate, Last>
+DB80;N;<Private Use High Surrogate, First>
+DBFF;N;<Private Use High Surrogate, Last>
+DC00;N;<Low Surrogate, First>
+DFFF;N;<Low Surrogate, Last>
+E000;A;<Private Use, First>
+F8FF;A;<Private Use, Last>
+F900;W;CJK COMPATIBILITY IDEOGRAPH-F900
+F901;W;CJK COMPATIBILITY IDEOGRAPH-F901
+F902;W;CJK COMPATIBILITY IDEOGRAPH-F902
+F903;W;CJK COMPATIBILITY IDEOGRAPH-F903
+F904;W;CJK COMPATIBILITY IDEOGRAPH-F904
+F905;W;CJK COMPATIBILITY IDEOGRAPH-F905
+F906;W;CJK COMPATIBILITY IDEOGRAPH-F906
+F907;W;CJK COMPATIBILITY IDEOGRAPH-F907
+F908;W;CJK COMPATIBILITY IDEOGRAPH-F908
+F909;W;CJK COMPATIBILITY IDEOGRAPH-F909
+F90A;W;CJK COMPATIBILITY IDEOGRAPH-F90A
+F90B;W;CJK COMPATIBILITY IDEOGRAPH-F90B
+F90C;W;CJK COMPATIBILITY IDEOGRAPH-F90C
+F90D;W;CJK COMPATIBILITY IDEOGRAPH-F90D
+F90E;W;CJK COMPATIBILITY IDEOGRAPH-F90E
+F90F;W;CJK COMPATIBILITY IDEOGRAPH-F90F
+F910;W;CJK COMPATIBILITY IDEOGRAPH-F910
+F911;W;CJK COMPATIBILITY IDEOGRAPH-F911
+F912;W;CJK COMPATIBILITY IDEOGRAPH-F912
+F913;W;CJK COMPATIBILITY IDEOGRAPH-F913
+F914;W;CJK COMPATIBILITY IDEOGRAPH-F914
+F915;W;CJK COMPATIBILITY IDEOGRAPH-F915
+F916;W;CJK COMPATIBILITY IDEOGRAPH-F916
+F917;W;CJK COMPATIBILITY IDEOGRAPH-F917
+F918;W;CJK COMPATIBILITY IDEOGRAPH-F918
+F919;W;CJK COMPATIBILITY IDEOGRAPH-F919
+F91A;W;CJK COMPATIBILITY IDEOGRAPH-F91A
+F91B;W;CJK COMPATIBILITY IDEOGRAPH-F91B
+F91C;W;CJK COMPATIBILITY IDEOGRAPH-F91C
+F91D;W;CJK COMPATIBILITY IDEOGRAPH-F91D
+F91E;W;CJK COMPATIBILITY IDEOGRAPH-F91E
+F91F;W;CJK COMPATIBILITY IDEOGRAPH-F91F
+F920;W;CJK COMPATIBILITY IDEOGRAPH-F920
+F921;W;CJK COMPATIBILITY IDEOGRAPH-F921
+F922;W;CJK COMPATIBILITY IDEOGRAPH-F922
+F923;W;CJK COMPATIBILITY IDEOGRAPH-F923
+F924;W;CJK COMPATIBILITY IDEOGRAPH-F924
+F925;W;CJK COMPATIBILITY IDEOGRAPH-F925
+F926;W;CJK COMPATIBILITY IDEOGRAPH-F926
+F927;W;CJK COMPATIBILITY IDEOGRAPH-F927
+F928;W;CJK COMPATIBILITY IDEOGRAPH-F928
+F929;W;CJK COMPATIBILITY IDEOGRAPH-F929
+F92A;W;CJK COMPATIBILITY IDEOGRAPH-F92A
+F92B;W;CJK COMPATIBILITY IDEOGRAPH-F92B
+F92C;W;CJK COMPATIBILITY IDEOGRAPH-F92C
+F92D;W;CJK COMPATIBILITY IDEOGRAPH-F92D
+F92E;W;CJK COMPATIBILITY IDEOGRAPH-F92E
+F92F;W;CJK COMPATIBILITY IDEOGRAPH-F92F
+F930;W;CJK COMPATIBILITY IDEOGRAPH-F930
+F931;W;CJK COMPATIBILITY IDEOGRAPH-F931
+F932;W;CJK COMPATIBILITY IDEOGRAPH-F932
+F933;W;CJK COMPATIBILITY IDEOGRAPH-F933
+F934;W;CJK COMPATIBILITY IDEOGRAPH-F934
+F935;W;CJK COMPATIBILITY IDEOGRAPH-F935
+F936;W;CJK COMPATIBILITY IDEOGRAPH-F936
+F937;W;CJK COMPATIBILITY IDEOGRAPH-F937
+F938;W;CJK COMPATIBILITY IDEOGRAPH-F938
+F939;W;CJK COMPATIBILITY IDEOGRAPH-F939
+F93A;W;CJK COMPATIBILITY IDEOGRAPH-F93A
+F93B;W;CJK COMPATIBILITY IDEOGRAPH-F93B
+F93C;W;CJK COMPATIBILITY IDEOGRAPH-F93C
+F93D;W;CJK COMPATIBILITY IDEOGRAPH-F93D
+F93E;W;CJK COMPATIBILITY IDEOGRAPH-F93E
+F93F;W;CJK COMPATIBILITY IDEOGRAPH-F93F
+F940;W;CJK COMPATIBILITY IDEOGRAPH-F940
+F941;W;CJK COMPATIBILITY IDEOGRAPH-F941
+F942;W;CJK COMPATIBILITY IDEOGRAPH-F942
+F943;W;CJK COMPATIBILITY IDEOGRAPH-F943
+F944;W;CJK COMPATIBILITY IDEOGRAPH-F944
+F945;W;CJK COMPATIBILITY IDEOGRAPH-F945
+F946;W;CJK COMPATIBILITY IDEOGRAPH-F946
+F947;W;CJK COMPATIBILITY IDEOGRAPH-F947
+F948;W;CJK COMPATIBILITY IDEOGRAPH-F948
+F949;W;CJK COMPATIBILITY IDEOGRAPH-F949
+F94A;W;CJK COMPATIBILITY IDEOGRAPH-F94A
+F94B;W;CJK COMPATIBILITY IDEOGRAPH-F94B
+F94C;W;CJK COMPATIBILITY IDEOGRAPH-F94C
+F94D;W;CJK COMPATIBILITY IDEOGRAPH-F94D
+F94E;W;CJK COMPATIBILITY IDEOGRAPH-F94E
+F94F;W;CJK COMPATIBILITY IDEOGRAPH-F94F
+F950;W;CJK COMPATIBILITY IDEOGRAPH-F950
+F951;W;CJK COMPATIBILITY IDEOGRAPH-F951
+F952;W;CJK COMPATIBILITY IDEOGRAPH-F952
+F953;W;CJK COMPATIBILITY IDEOGRAPH-F953
+F954;W;CJK COMPATIBILITY IDEOGRAPH-F954
+F955;W;CJK COMPATIBILITY IDEOGRAPH-F955
+F956;W;CJK COMPATIBILITY IDEOGRAPH-F956
+F957;W;CJK COMPATIBILITY IDEOGRAPH-F957
+F958;W;CJK COMPATIBILITY IDEOGRAPH-F958
+F959;W;CJK COMPATIBILITY IDEOGRAPH-F959
+F95A;W;CJK COMPATIBILITY IDEOGRAPH-F95A
+F95B;W;CJK COMPATIBILITY IDEOGRAPH-F95B
+F95C;W;CJK COMPATIBILITY IDEOGRAPH-F95C
+F95D;W;CJK COMPATIBILITY IDEOGRAPH-F95D
+F95E;W;CJK COMPATIBILITY IDEOGRAPH-F95E
+F95F;W;CJK COMPATIBILITY IDEOGRAPH-F95F
+F960;W;CJK COMPATIBILITY IDEOGRAPH-F960
+F961;W;CJK COMPATIBILITY IDEOGRAPH-F961
+F962;W;CJK COMPATIBILITY IDEOGRAPH-F962
+F963;W;CJK COMPATIBILITY IDEOGRAPH-F963
+F964;W;CJK COMPATIBILITY IDEOGRAPH-F964
+F965;W;CJK COMPATIBILITY IDEOGRAPH-F965
+F966;W;CJK COMPATIBILITY IDEOGRAPH-F966
+F967;W;CJK COMPATIBILITY IDEOGRAPH-F967
+F968;W;CJK COMPATIBILITY IDEOGRAPH-F968
+F969;W;CJK COMPATIBILITY IDEOGRAPH-F969
+F96A;W;CJK COMPATIBILITY IDEOGRAPH-F96A
+F96B;W;CJK COMPATIBILITY IDEOGRAPH-F96B
+F96C;W;CJK COMPATIBILITY IDEOGRAPH-F96C
+F96D;W;CJK COMPATIBILITY IDEOGRAPH-F96D
+F96E;W;CJK COMPATIBILITY IDEOGRAPH-F96E
+F96F;W;CJK COMPATIBILITY IDEOGRAPH-F96F
+F970;W;CJK COMPATIBILITY IDEOGRAPH-F970
+F971;W;CJK COMPATIBILITY IDEOGRAPH-F971
+F972;W;CJK COMPATIBILITY IDEOGRAPH-F972
+F973;W;CJK COMPATIBILITY IDEOGRAPH-F973
+F974;W;CJK COMPATIBILITY IDEOGRAPH-F974
+F975;W;CJK COMPATIBILITY IDEOGRAPH-F975
+F976;W;CJK COMPATIBILITY IDEOGRAPH-F976
+F977;W;CJK COMPATIBILITY IDEOGRAPH-F977
+F978;W;CJK COMPATIBILITY IDEOGRAPH-F978
+F979;W;CJK COMPATIBILITY IDEOGRAPH-F979
+F97A;W;CJK COMPATIBILITY IDEOGRAPH-F97A
+F97B;W;CJK COMPATIBILITY IDEOGRAPH-F97B
+F97C;W;CJK COMPATIBILITY IDEOGRAPH-F97C
+F97D;W;CJK COMPATIBILITY IDEOGRAPH-F97D
+F97E;W;CJK COMPATIBILITY IDEOGRAPH-F97E
+F97F;W;CJK COMPATIBILITY IDEOGRAPH-F97F
+F980;W;CJK COMPATIBILITY IDEOGRAPH-F980
+F981;W;CJK COMPATIBILITY IDEOGRAPH-F981
+F982;W;CJK COMPATIBILITY IDEOGRAPH-F982
+F983;W;CJK COMPATIBILITY IDEOGRAPH-F983
+F984;W;CJK COMPATIBILITY IDEOGRAPH-F984
+F985;W;CJK COMPATIBILITY IDEOGRAPH-F985
+F986;W;CJK COMPATIBILITY IDEOGRAPH-F986
+F987;W;CJK COMPATIBILITY IDEOGRAPH-F987
+F988;W;CJK COMPATIBILITY IDEOGRAPH-F988
+F989;W;CJK COMPATIBILITY IDEOGRAPH-F989
+F98A;W;CJK COMPATIBILITY IDEOGRAPH-F98A
+F98B;W;CJK COMPATIBILITY IDEOGRAPH-F98B
+F98C;W;CJK COMPATIBILITY IDEOGRAPH-F98C
+F98D;W;CJK COMPATIBILITY IDEOGRAPH-F98D
+F98E;W;CJK COMPATIBILITY IDEOGRAPH-F98E
+F98F;W;CJK COMPATIBILITY IDEOGRAPH-F98F
+F990;W;CJK COMPATIBILITY IDEOGRAPH-F990
+F991;W;CJK COMPATIBILITY IDEOGRAPH-F991
+F992;W;CJK COMPATIBILITY IDEOGRAPH-F992
+F993;W;CJK COMPATIBILITY IDEOGRAPH-F993
+F994;W;CJK COMPATIBILITY IDEOGRAPH-F994
+F995;W;CJK COMPATIBILITY IDEOGRAPH-F995
+F996;W;CJK COMPATIBILITY IDEOGRAPH-F996
+F997;W;CJK COMPATIBILITY IDEOGRAPH-F997
+F998;W;CJK COMPATIBILITY IDEOGRAPH-F998
+F999;W;CJK COMPATIBILITY IDEOGRAPH-F999
+F99A;W;CJK COMPATIBILITY IDEOGRAPH-F99A
+F99B;W;CJK COMPATIBILITY IDEOGRAPH-F99B
+F99C;W;CJK COMPATIBILITY IDEOGRAPH-F99C
+F99D;W;CJK COMPATIBILITY IDEOGRAPH-F99D
+F99E;W;CJK COMPATIBILITY IDEOGRAPH-F99E
+F99F;W;CJK COMPATIBILITY IDEOGRAPH-F99F
+F9A0;W;CJK COMPATIBILITY IDEOGRAPH-F9A0
+F9A1;W;CJK COMPATIBILITY IDEOGRAPH-F9A1
+F9A2;W;CJK COMPATIBILITY IDEOGRAPH-F9A2
+F9A3;W;CJK COMPATIBILITY IDEOGRAPH-F9A3
+F9A4;W;CJK COMPATIBILITY IDEOGRAPH-F9A4
+F9A5;W;CJK COMPATIBILITY IDEOGRAPH-F9A5
+F9A6;W;CJK COMPATIBILITY IDEOGRAPH-F9A6
+F9A7;W;CJK COMPATIBILITY IDEOGRAPH-F9A7
+F9A8;W;CJK COMPATIBILITY IDEOGRAPH-F9A8
+F9A9;W;CJK COMPATIBILITY IDEOGRAPH-F9A9
+F9AA;W;CJK COMPATIBILITY IDEOGRAPH-F9AA
+F9AB;W;CJK COMPATIBILITY IDEOGRAPH-F9AB
+F9AC;W;CJK COMPATIBILITY IDEOGRAPH-F9AC
+F9AD;W;CJK COMPATIBILITY IDEOGRAPH-F9AD
+F9AE;W;CJK COMPATIBILITY IDEOGRAPH-F9AE
+F9AF;W;CJK COMPATIBILITY IDEOGRAPH-F9AF
+F9B0;W;CJK COMPATIBILITY IDEOGRAPH-F9B0
+F9B1;W;CJK COMPATIBILITY IDEOGRAPH-F9B1
+F9B2;W;CJK COMPATIBILITY IDEOGRAPH-F9B2
+F9B3;W;CJK COMPATIBILITY IDEOGRAPH-F9B3
+F9B4;W;CJK COMPATIBILITY IDEOGRAPH-F9B4
+F9B5;W;CJK COMPATIBILITY IDEOGRAPH-F9B5
+F9B6;W;CJK COMPATIBILITY IDEOGRAPH-F9B6
+F9B7;W;CJK COMPATIBILITY IDEOGRAPH-F9B7
+F9B8;W;CJK COMPATIBILITY IDEOGRAPH-F9B8
+F9B9;W;CJK COMPATIBILITY IDEOGRAPH-F9B9
+F9BA;W;CJK COMPATIBILITY IDEOGRAPH-F9BA
+F9BB;W;CJK COMPATIBILITY IDEOGRAPH-F9BB
+F9BC;W;CJK COMPATIBILITY IDEOGRAPH-F9BC
+F9BD;W;CJK COMPATIBILITY IDEOGRAPH-F9BD
+F9BE;W;CJK COMPATIBILITY IDEOGRAPH-F9BE
+F9BF;W;CJK COMPATIBILITY IDEOGRAPH-F9BF
+F9C0;W;CJK COMPATIBILITY IDEOGRAPH-F9C0
+F9C1;W;CJK COMPATIBILITY IDEOGRAPH-F9C1
+F9C2;W;CJK COMPATIBILITY IDEOGRAPH-F9C2
+F9C3;W;CJK COMPATIBILITY IDEOGRAPH-F9C3
+F9C4;W;CJK COMPATIBILITY IDEOGRAPH-F9C4
+F9C5;W;CJK COMPATIBILITY IDEOGRAPH-F9C5
+F9C6;W;CJK COMPATIBILITY IDEOGRAPH-F9C6
+F9C7;W;CJK COMPATIBILITY IDEOGRAPH-F9C7
+F9C8;W;CJK COMPATIBILITY IDEOGRAPH-F9C8
+F9C9;W;CJK COMPATIBILITY IDEOGRAPH-F9C9
+F9CA;W;CJK COMPATIBILITY IDEOGRAPH-F9CA
+F9CB;W;CJK COMPATIBILITY IDEOGRAPH-F9CB
+F9CC;W;CJK COMPATIBILITY IDEOGRAPH-F9CC
+F9CD;W;CJK COMPATIBILITY IDEOGRAPH-F9CD
+F9CE;W;CJK COMPATIBILITY IDEOGRAPH-F9CE
+F9CF;W;CJK COMPATIBILITY IDEOGRAPH-F9CF
+F9D0;W;CJK COMPATIBILITY IDEOGRAPH-F9D0
+F9D1;W;CJK COMPATIBILITY IDEOGRAPH-F9D1
+F9D2;W;CJK COMPATIBILITY IDEOGRAPH-F9D2
+F9D3;W;CJK COMPATIBILITY IDEOGRAPH-F9D3
+F9D4;W;CJK COMPATIBILITY IDEOGRAPH-F9D4
+F9D5;W;CJK COMPATIBILITY IDEOGRAPH-F9D5
+F9D6;W;CJK COMPATIBILITY IDEOGRAPH-F9D6
+F9D7;W;CJK COMPATIBILITY IDEOGRAPH-F9D7
+F9D8;W;CJK COMPATIBILITY IDEOGRAPH-F9D8
+F9D9;W;CJK COMPATIBILITY IDEOGRAPH-F9D9
+F9DA;W;CJK COMPATIBILITY IDEOGRAPH-F9DA
+F9DB;W;CJK COMPATIBILITY IDEOGRAPH-F9DB
+F9DC;W;CJK COMPATIBILITY IDEOGRAPH-F9DC
+F9DD;W;CJK COMPATIBILITY IDEOGRAPH-F9DD
+F9DE;W;CJK COMPATIBILITY IDEOGRAPH-F9DE
+F9DF;W;CJK COMPATIBILITY IDEOGRAPH-F9DF
+F9E0;W;CJK COMPATIBILITY IDEOGRAPH-F9E0
+F9E1;W;CJK COMPATIBILITY IDEOGRAPH-F9E1
+F9E2;W;CJK COMPATIBILITY IDEOGRAPH-F9E2
+F9E3;W;CJK COMPATIBILITY IDEOGRAPH-F9E3
+F9E4;W;CJK COMPATIBILITY IDEOGRAPH-F9E4
+F9E5;W;CJK COMPATIBILITY IDEOGRAPH-F9E5
+F9E6;W;CJK COMPATIBILITY IDEOGRAPH-F9E6
+F9E7;W;CJK COMPATIBILITY IDEOGRAPH-F9E7
+F9E8;W;CJK COMPATIBILITY IDEOGRAPH-F9E8
+F9E9;W;CJK COMPATIBILITY IDEOGRAPH-F9E9
+F9EA;W;CJK COMPATIBILITY IDEOGRAPH-F9EA
+F9EB;W;CJK COMPATIBILITY IDEOGRAPH-F9EB
+F9EC;W;CJK COMPATIBILITY IDEOGRAPH-F9EC
+F9ED;W;CJK COMPATIBILITY IDEOGRAPH-F9ED
+F9EE;W;CJK COMPATIBILITY IDEOGRAPH-F9EE
+F9EF;W;CJK COMPATIBILITY IDEOGRAPH-F9EF
+F9F0;W;CJK COMPATIBILITY IDEOGRAPH-F9F0
+F9F1;W;CJK COMPATIBILITY IDEOGRAPH-F9F1
+F9F2;W;CJK COMPATIBILITY IDEOGRAPH-F9F2
+F9F3;W;CJK COMPATIBILITY IDEOGRAPH-F9F3
+F9F4;W;CJK COMPATIBILITY IDEOGRAPH-F9F4
+F9F5;W;CJK COMPATIBILITY IDEOGRAPH-F9F5
+F9F6;W;CJK COMPATIBILITY IDEOGRAPH-F9F6
+F9F7;W;CJK COMPATIBILITY IDEOGRAPH-F9F7
+F9F8;W;CJK COMPATIBILITY IDEOGRAPH-F9F8
+F9F9;W;CJK COMPATIBILITY IDEOGRAPH-F9F9
+F9FA;W;CJK COMPATIBILITY IDEOGRAPH-F9FA
+F9FB;W;CJK COMPATIBILITY IDEOGRAPH-F9FB
+F9FC;W;CJK COMPATIBILITY IDEOGRAPH-F9FC
+F9FD;W;CJK COMPATIBILITY IDEOGRAPH-F9FD
+F9FE;W;CJK COMPATIBILITY IDEOGRAPH-F9FE
+F9FF;W;CJK COMPATIBILITY IDEOGRAPH-F9FF
+FA00;W;CJK COMPATIBILITY IDEOGRAPH-FA00
+FA01;W;CJK COMPATIBILITY IDEOGRAPH-FA01
+FA02;W;CJK COMPATIBILITY IDEOGRAPH-FA02
+FA03;W;CJK COMPATIBILITY IDEOGRAPH-FA03
+FA04;W;CJK COMPATIBILITY IDEOGRAPH-FA04
+FA05;W;CJK COMPATIBILITY IDEOGRAPH-FA05
+FA06;W;CJK COMPATIBILITY IDEOGRAPH-FA06
+FA07;W;CJK COMPATIBILITY IDEOGRAPH-FA07
+FA08;W;CJK COMPATIBILITY IDEOGRAPH-FA08
+FA09;W;CJK COMPATIBILITY IDEOGRAPH-FA09
+FA0A;W;CJK COMPATIBILITY IDEOGRAPH-FA0A
+FA0B;W;CJK COMPATIBILITY IDEOGRAPH-FA0B
+FA0C;W;CJK COMPATIBILITY IDEOGRAPH-FA0C
+FA0D;W;CJK COMPATIBILITY IDEOGRAPH-FA0D
+FA0E;W;CJK COMPATIBILITY IDEOGRAPH-FA0E
+FA0F;W;CJK COMPATIBILITY IDEOGRAPH-FA0F
+FA10;W;CJK COMPATIBILITY IDEOGRAPH-FA10
+FA11;W;CJK COMPATIBILITY IDEOGRAPH-FA11
+FA12;W;CJK COMPATIBILITY IDEOGRAPH-FA12
+FA13;W;CJK COMPATIBILITY IDEOGRAPH-FA13
+FA14;W;CJK COMPATIBILITY IDEOGRAPH-FA14
+FA15;W;CJK COMPATIBILITY IDEOGRAPH-FA15
+FA16;W;CJK COMPATIBILITY IDEOGRAPH-FA16
+FA17;W;CJK COMPATIBILITY IDEOGRAPH-FA17
+FA18;W;CJK COMPATIBILITY IDEOGRAPH-FA18
+FA19;W;CJK COMPATIBILITY IDEOGRAPH-FA19
+FA1A;W;CJK COMPATIBILITY IDEOGRAPH-FA1A
+FA1B;W;CJK COMPATIBILITY IDEOGRAPH-FA1B
+FA1C;W;CJK COMPATIBILITY IDEOGRAPH-FA1C
+FA1D;W;CJK COMPATIBILITY IDEOGRAPH-FA1D
+FA1E;W;CJK COMPATIBILITY IDEOGRAPH-FA1E
+FA1F;W;CJK COMPATIBILITY IDEOGRAPH-FA1F
+FA20;W;CJK COMPATIBILITY IDEOGRAPH-FA20
+FA21;W;CJK COMPATIBILITY IDEOGRAPH-FA21
+FA22;W;CJK COMPATIBILITY IDEOGRAPH-FA22
+FA23;W;CJK COMPATIBILITY IDEOGRAPH-FA23
+FA24;W;CJK COMPATIBILITY IDEOGRAPH-FA24
+FA25;W;CJK COMPATIBILITY IDEOGRAPH-FA25
+FA26;W;CJK COMPATIBILITY IDEOGRAPH-FA26
+FA27;W;CJK COMPATIBILITY IDEOGRAPH-FA27
+FA28;W;CJK COMPATIBILITY IDEOGRAPH-FA28
+FA29;W;CJK COMPATIBILITY IDEOGRAPH-FA29
+FA2A;W;CJK COMPATIBILITY IDEOGRAPH-FA2A
+FA2B;W;CJK COMPATIBILITY IDEOGRAPH-FA2B
+FA2C;W;CJK COMPATIBILITY IDEOGRAPH-FA2C
+FA2D;W;CJK COMPATIBILITY IDEOGRAPH-FA2D
+FB00;N;LATIN SMALL LIGATURE FF
+FB01;N;LATIN SMALL LIGATURE FI
+FB02;N;LATIN SMALL LIGATURE FL
+FB03;N;LATIN SMALL LIGATURE FFI
+FB04;N;LATIN SMALL LIGATURE FFL
+FB05;N;LATIN SMALL LIGATURE LONG S T
+FB06;N;LATIN SMALL LIGATURE ST
+FB13;N;ARMENIAN SMALL LIGATURE MEN NOW
+FB14;N;ARMENIAN SMALL LIGATURE MEN ECH
+FB15;N;ARMENIAN SMALL LIGATURE MEN INI
+FB16;N;ARMENIAN SMALL LIGATURE VEW NOW
+FB17;N;ARMENIAN SMALL LIGATURE MEN XEH
+FB1D;N;HEBREW LETTER YOD WITH HIRIQ
+FB1E;N;HEBREW POINT JUDEO-SPANISH VARIKA
+FB1F;N;HEBREW LIGATURE YIDDISH YOD YOD PATAH
+FB20;N;HEBREW LETTER ALTERNATIVE AYIN
+FB21;N;HEBREW LETTER WIDE ALEF
+FB22;N;HEBREW LETTER WIDE DALET
+FB23;N;HEBREW LETTER WIDE HE
+FB24;N;HEBREW LETTER WIDE KAF
+FB25;N;HEBREW LETTER WIDE LAMED
+FB26;N;HEBREW LETTER WIDE FINAL MEM
+FB27;N;HEBREW LETTER WIDE RESH
+FB28;N;HEBREW LETTER WIDE TAV
+FB29;N;HEBREW LETTER ALTERNATIVE PLUS SIGN
+FB2A;N;HEBREW LETTER SHIN WITH SHIN DOT
+FB2B;N;HEBREW LETTER SHIN WITH SIN DOT
+FB2C;N;HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT
+FB2D;N;HEBREW LETTER SHIN WITH DAGESH AND SIN DOT
+FB2E;N;HEBREW LETTER ALEF WITH PATAH
+FB2F;N;HEBREW LETTER ALEF WITH QAMATS
+FB30;N;HEBREW LETTER ALEF WITH MAPIQ
+FB31;N;HEBREW LETTER BET WITH DAGESH
+FB32;N;HEBREW LETTER GIMEL WITH DAGESH
+FB33;N;HEBREW LETTER DALET WITH DAGESH
+FB34;N;HEBREW LETTER HE WITH MAPIQ
+FB35;N;HEBREW LETTER VAV WITH DAGESH
+FB36;N;HEBREW LETTER ZAYIN WITH DAGESH
+FB38;N;HEBREW LETTER TET WITH DAGESH
+FB39;N;HEBREW LETTER YOD WITH DAGESH
+FB3A;N;HEBREW LETTER FINAL KAF WITH DAGESH
+FB3B;N;HEBREW LETTER KAF WITH DAGESH
+FB3C;N;HEBREW LETTER LAMED WITH DAGESH
+FB3E;N;HEBREW LETTER MEM WITH DAGESH
+FB40;N;HEBREW LETTER NUN WITH DAGESH
+FB41;N;HEBREW LETTER SAMEKH WITH DAGESH
+FB43;N;HEBREW LETTER FINAL PE WITH DAGESH
+FB44;N;HEBREW LETTER PE WITH DAGESH
+FB46;N;HEBREW LETTER TSADI WITH DAGESH
+FB47;N;HEBREW LETTER QOF WITH DAGESH
+FB48;N;HEBREW LETTER RESH WITH DAGESH
+FB49;N;HEBREW LETTER SHIN WITH DAGESH
+FB4A;N;HEBREW LETTER TAV WITH DAGESH
+FB4B;N;HEBREW LETTER VAV WITH HOLAM
+FB4C;N;HEBREW LETTER BET WITH RAFE
+FB4D;N;HEBREW LETTER KAF WITH RAFE
+FB4E;N;HEBREW LETTER PE WITH RAFE
+FB4F;N;HEBREW LIGATURE ALEF LAMED
+FB50;N;ARABIC LETTER ALEF WASLA ISOLATED FORM
+FB51;N;ARABIC LETTER ALEF WASLA FINAL FORM
+FB52;N;ARABIC LETTER BEEH ISOLATED FORM
+FB53;N;ARABIC LETTER BEEH FINAL FORM
+FB54;N;ARABIC LETTER BEEH INITIAL FORM
+FB55;N;ARABIC LETTER BEEH MEDIAL FORM
+FB56;N;ARABIC LETTER PEH ISOLATED FORM
+FB57;N;ARABIC LETTER PEH FINAL FORM
+FB58;N;ARABIC LETTER PEH INITIAL FORM
+FB59;N;ARABIC LETTER PEH MEDIAL FORM
+FB5A;N;ARABIC LETTER BEHEH ISOLATED FORM
+FB5B;N;ARABIC LETTER BEHEH FINAL FORM
+FB5C;N;ARABIC LETTER BEHEH INITIAL FORM
+FB5D;N;ARABIC LETTER BEHEH MEDIAL FORM
+FB5E;N;ARABIC LETTER TTEHEH ISOLATED FORM
+FB5F;N;ARABIC LETTER TTEHEH FINAL FORM
+FB60;N;ARABIC LETTER TTEHEH INITIAL FORM
+FB61;N;ARABIC LETTER TTEHEH MEDIAL FORM
+FB62;N;ARABIC LETTER TEHEH ISOLATED FORM
+FB63;N;ARABIC LETTER TEHEH FINAL FORM
+FB64;N;ARABIC LETTER TEHEH INITIAL FORM
+FB65;N;ARABIC LETTER TEHEH MEDIAL FORM
+FB66;N;ARABIC LETTER TTEH ISOLATED FORM
+FB67;N;ARABIC LETTER TTEH FINAL FORM
+FB68;N;ARABIC LETTER TTEH INITIAL FORM
+FB69;N;ARABIC LETTER TTEH MEDIAL FORM
+FB6A;N;ARABIC LETTER VEH ISOLATED FORM
+FB6B;N;ARABIC LETTER VEH FINAL FORM
+FB6C;N;ARABIC LETTER VEH INITIAL FORM
+FB6D;N;ARABIC LETTER VEH MEDIAL FORM
+FB6E;N;ARABIC LETTER PEHEH ISOLATED FORM
+FB6F;N;ARABIC LETTER PEHEH FINAL FORM
+FB70;N;ARABIC LETTER PEHEH INITIAL FORM
+FB71;N;ARABIC LETTER PEHEH MEDIAL FORM
+FB72;N;ARABIC LETTER DYEH ISOLATED FORM
+FB73;N;ARABIC LETTER DYEH FINAL FORM
+FB74;N;ARABIC LETTER DYEH INITIAL FORM
+FB75;N;ARABIC LETTER DYEH MEDIAL FORM
+FB76;N;ARABIC LETTER NYEH ISOLATED FORM
+FB77;N;ARABIC LETTER NYEH FINAL FORM
+FB78;N;ARABIC LETTER NYEH INITIAL FORM
+FB79;N;ARABIC LETTER NYEH MEDIAL FORM
+FB7A;N;ARABIC LETTER TCHEH ISOLATED FORM
+FB7B;N;ARABIC LETTER TCHEH FINAL FORM
+FB7C;N;ARABIC LETTER TCHEH INITIAL FORM
+FB7D;N;ARABIC LETTER TCHEH MEDIAL FORM
+FB7E;N;ARABIC LETTER TCHEHEH ISOLATED FORM
+FB7F;N;ARABIC LETTER TCHEHEH FINAL FORM
+FB80;N;ARABIC LETTER TCHEHEH INITIAL FORM
+FB81;N;ARABIC LETTER TCHEHEH MEDIAL FORM
+FB82;N;ARABIC LETTER DDAHAL ISOLATED FORM
+FB83;N;ARABIC LETTER DDAHAL FINAL FORM
+FB84;N;ARABIC LETTER DAHAL ISOLATED FORM
+FB85;N;ARABIC LETTER DAHAL FINAL FORM
+FB86;N;ARABIC LETTER DUL ISOLATED FORM
+FB87;N;ARABIC LETTER DUL FINAL FORM
+FB88;N;ARABIC LETTER DDAL ISOLATED FORM
+FB89;N;ARABIC LETTER DDAL FINAL FORM
+FB8A;N;ARABIC LETTER JEH ISOLATED FORM
+FB8B;N;ARABIC LETTER JEH FINAL FORM
+FB8C;N;ARABIC LETTER RREH ISOLATED FORM
+FB8D;N;ARABIC LETTER RREH FINAL FORM
+FB8E;N;ARABIC LETTER KEHEH ISOLATED FORM
+FB8F;N;ARABIC LETTER KEHEH FINAL FORM
+FB90;N;ARABIC LETTER KEHEH INITIAL FORM
+FB91;N;ARABIC LETTER KEHEH MEDIAL FORM
+FB92;N;ARABIC LETTER GAF ISOLATED FORM
+FB93;N;ARABIC LETTER GAF FINAL FORM
+FB94;N;ARABIC LETTER GAF INITIAL FORM
+FB95;N;ARABIC LETTER GAF MEDIAL FORM
+FB96;N;ARABIC LETTER GUEH ISOLATED FORM
+FB97;N;ARABIC LETTER GUEH FINAL FORM
+FB98;N;ARABIC LETTER GUEH INITIAL FORM
+FB99;N;ARABIC LETTER GUEH MEDIAL FORM
+FB9A;N;ARABIC LETTER NGOEH ISOLATED FORM
+FB9B;N;ARABIC LETTER NGOEH FINAL FORM
+FB9C;N;ARABIC LETTER NGOEH INITIAL FORM
+FB9D;N;ARABIC LETTER NGOEH MEDIAL FORM
+FB9E;N;ARABIC LETTER NOON GHUNNA ISOLATED FORM
+FB9F;N;ARABIC LETTER NOON GHUNNA FINAL FORM
+FBA0;N;ARABIC LETTER RNOON ISOLATED FORM
+FBA1;N;ARABIC LETTER RNOON FINAL FORM
+FBA2;N;ARABIC LETTER RNOON INITIAL FORM
+FBA3;N;ARABIC LETTER RNOON MEDIAL FORM
+FBA4;N;ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM
+FBA5;N;ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM
+FBA6;N;ARABIC LETTER HEH GOAL ISOLATED FORM
+FBA7;N;ARABIC LETTER HEH GOAL FINAL FORM
+FBA8;N;ARABIC LETTER HEH GOAL INITIAL FORM
+FBA9;N;ARABIC LETTER HEH GOAL MEDIAL FORM
+FBAA;N;ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM
+FBAB;N;ARABIC LETTER HEH DOACHASHMEE FINAL FORM
+FBAC;N;ARABIC LETTER HEH DOACHASHMEE INITIAL FORM
+FBAD;N;ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM
+FBAE;N;ARABIC LETTER YEH BARREE ISOLATED FORM
+FBAF;N;ARABIC LETTER YEH BARREE FINAL FORM
+FBB0;N;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM
+FBB1;N;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
+FBD3;N;ARABIC LETTER NG ISOLATED FORM
+FBD4;N;ARABIC LETTER NG FINAL FORM
+FBD5;N;ARABIC LETTER NG INITIAL FORM
+FBD6;N;ARABIC LETTER NG MEDIAL FORM
+FBD7;N;ARABIC LETTER U ISOLATED FORM
+FBD8;N;ARABIC LETTER U FINAL FORM
+FBD9;N;ARABIC LETTER OE ISOLATED FORM
+FBDA;N;ARABIC LETTER OE FINAL FORM
+FBDB;N;ARABIC LETTER YU ISOLATED FORM
+FBDC;N;ARABIC LETTER YU FINAL FORM
+FBDD;N;ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM
+FBDE;N;ARABIC LETTER VE ISOLATED FORM
+FBDF;N;ARABIC LETTER VE FINAL FORM
+FBE0;N;ARABIC LETTER KIRGHIZ OE ISOLATED FORM
+FBE1;N;ARABIC LETTER KIRGHIZ OE FINAL FORM
+FBE2;N;ARABIC LETTER KIRGHIZ YU ISOLATED FORM
+FBE3;N;ARABIC LETTER KIRGHIZ YU FINAL FORM
+FBE4;N;ARABIC LETTER E ISOLATED FORM
+FBE5;N;ARABIC LETTER E FINAL FORM
+FBE6;N;ARABIC LETTER E INITIAL FORM
+FBE7;N;ARABIC LETTER E MEDIAL FORM
+FBE8;N;ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM
+FBE9;N;ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM
+FBEA;N;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM
+FBEB;N;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM
+FBEC;N;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM
+FBED;N;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM
+FBEE;N;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM
+FBEF;N;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM
+FBF0;N;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM
+FBF1;N;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM
+FBF2;N;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM
+FBF3;N;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM
+FBF4;N;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM
+FBF5;N;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM
+FBF6;N;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM
+FBF7;N;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM
+FBF8;N;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM
+FBF9;N;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
+FBFA;N;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM
+FBFB;N;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM
+FBFC;N;ARABIC LETTER FARSI YEH ISOLATED FORM
+FBFD;N;ARABIC LETTER FARSI YEH FINAL FORM
+FBFE;N;ARABIC LETTER FARSI YEH INITIAL FORM
+FBFF;N;ARABIC LETTER FARSI YEH MEDIAL FORM
+FC00;N;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM
+FC01;N;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM
+FC02;N;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM
+FC03;N;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
+FC04;N;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM
+FC05;N;ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM
+FC06;N;ARABIC LIGATURE BEH WITH HAH ISOLATED FORM
+FC07;N;ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM
+FC08;N;ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM
+FC09;N;ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM
+FC0A;N;ARABIC LIGATURE BEH WITH YEH ISOLATED FORM
+FC0B;N;ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM
+FC0C;N;ARABIC LIGATURE TEH WITH HAH ISOLATED FORM
+FC0D;N;ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM
+FC0E;N;ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM
+FC0F;N;ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM
+FC10;N;ARABIC LIGATURE TEH WITH YEH ISOLATED FORM
+FC11;N;ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM
+FC12;N;ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM
+FC13;N;ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM
+FC14;N;ARABIC LIGATURE THEH WITH YEH ISOLATED FORM
+FC15;N;ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM
+FC16;N;ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM
+FC17;N;ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM
+FC18;N;ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM
+FC19;N;ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM
+FC1A;N;ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM
+FC1B;N;ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM
+FC1C;N;ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM
+FC1D;N;ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM
+FC1E;N;ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM
+FC1F;N;ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM
+FC20;N;ARABIC LIGATURE SAD WITH HAH ISOLATED FORM
+FC21;N;ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM
+FC22;N;ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM
+FC23;N;ARABIC LIGATURE DAD WITH HAH ISOLATED FORM
+FC24;N;ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM
+FC25;N;ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM
+FC26;N;ARABIC LIGATURE TAH WITH HAH ISOLATED FORM
+FC27;N;ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM
+FC28;N;ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM
+FC29;N;ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM
+FC2A;N;ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM
+FC2B;N;ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM
+FC2C;N;ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM
+FC2D;N;ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM
+FC2E;N;ARABIC LIGATURE FEH WITH HAH ISOLATED FORM
+FC2F;N;ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM
+FC30;N;ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM
+FC31;N;ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM
+FC32;N;ARABIC LIGATURE FEH WITH YEH ISOLATED FORM
+FC33;N;ARABIC LIGATURE QAF WITH HAH ISOLATED FORM
+FC34;N;ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM
+FC35;N;ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM
+FC36;N;ARABIC LIGATURE QAF WITH YEH ISOLATED FORM
+FC37;N;ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM
+FC38;N;ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM
+FC39;N;ARABIC LIGATURE KAF WITH HAH ISOLATED FORM
+FC3A;N;ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM
+FC3B;N;ARABIC LIGATURE KAF WITH LAM ISOLATED FORM
+FC3C;N;ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM
+FC3D;N;ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM
+FC3E;N;ARABIC LIGATURE KAF WITH YEH ISOLATED FORM
+FC3F;N;ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM
+FC40;N;ARABIC LIGATURE LAM WITH HAH ISOLATED FORM
+FC41;N;ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM
+FC42;N;ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM
+FC43;N;ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM
+FC44;N;ARABIC LIGATURE LAM WITH YEH ISOLATED FORM
+FC45;N;ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM
+FC46;N;ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM
+FC47;N;ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM
+FC48;N;ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM
+FC49;N;ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM
+FC4A;N;ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM
+FC4B;N;ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM
+FC4C;N;ARABIC LIGATURE NOON WITH HAH ISOLATED FORM
+FC4D;N;ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM
+FC4E;N;ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM
+FC4F;N;ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM
+FC50;N;ARABIC LIGATURE NOON WITH YEH ISOLATED FORM
+FC51;N;ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM
+FC52;N;ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM
+FC53;N;ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM
+FC54;N;ARABIC LIGATURE HEH WITH YEH ISOLATED FORM
+FC55;N;ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM
+FC56;N;ARABIC LIGATURE YEH WITH HAH ISOLATED FORM
+FC57;N;ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM
+FC58;N;ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM
+FC59;N;ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM
+FC5A;N;ARABIC LIGATURE YEH WITH YEH ISOLATED FORM
+FC5B;N;ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM
+FC5C;N;ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM
+FC5D;N;ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM
+FC5E;N;ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM
+FC5F;N;ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM
+FC60;N;ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM
+FC61;N;ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM
+FC62;N;ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM
+FC63;N;ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM
+FC64;N;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM
+FC65;N;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM
+FC66;N;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM
+FC67;N;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM
+FC68;N;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM
+FC69;N;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM
+FC6A;N;ARABIC LIGATURE BEH WITH REH FINAL FORM
+FC6B;N;ARABIC LIGATURE BEH WITH ZAIN FINAL FORM
+FC6C;N;ARABIC LIGATURE BEH WITH MEEM FINAL FORM
+FC6D;N;ARABIC LIGATURE BEH WITH NOON FINAL FORM
+FC6E;N;ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM
+FC6F;N;ARABIC LIGATURE BEH WITH YEH FINAL FORM
+FC70;N;ARABIC LIGATURE TEH WITH REH FINAL FORM
+FC71;N;ARABIC LIGATURE TEH WITH ZAIN FINAL FORM
+FC72;N;ARABIC LIGATURE TEH WITH MEEM FINAL FORM
+FC73;N;ARABIC LIGATURE TEH WITH NOON FINAL FORM
+FC74;N;ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM
+FC75;N;ARABIC LIGATURE TEH WITH YEH FINAL FORM
+FC76;N;ARABIC LIGATURE THEH WITH REH FINAL FORM
+FC77;N;ARABIC LIGATURE THEH WITH ZAIN FINAL FORM
+FC78;N;ARABIC LIGATURE THEH WITH MEEM FINAL FORM
+FC79;N;ARABIC LIGATURE THEH WITH NOON FINAL FORM
+FC7A;N;ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM
+FC7B;N;ARABIC LIGATURE THEH WITH YEH FINAL FORM
+FC7C;N;ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM
+FC7D;N;ARABIC LIGATURE FEH WITH YEH FINAL FORM
+FC7E;N;ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM
+FC7F;N;ARABIC LIGATURE QAF WITH YEH FINAL FORM
+FC80;N;ARABIC LIGATURE KAF WITH ALEF FINAL FORM
+FC81;N;ARABIC LIGATURE KAF WITH LAM FINAL FORM
+FC82;N;ARABIC LIGATURE KAF WITH MEEM FINAL FORM
+FC83;N;ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM
+FC84;N;ARABIC LIGATURE KAF WITH YEH FINAL FORM
+FC85;N;ARABIC LIGATURE LAM WITH MEEM FINAL FORM
+FC86;N;ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM
+FC87;N;ARABIC LIGATURE LAM WITH YEH FINAL FORM
+FC88;N;ARABIC LIGATURE MEEM WITH ALEF FINAL FORM
+FC89;N;ARABIC LIGATURE MEEM WITH MEEM FINAL FORM
+FC8A;N;ARABIC LIGATURE NOON WITH REH FINAL FORM
+FC8B;N;ARABIC LIGATURE NOON WITH ZAIN FINAL FORM
+FC8C;N;ARABIC LIGATURE NOON WITH MEEM FINAL FORM
+FC8D;N;ARABIC LIGATURE NOON WITH NOON FINAL FORM
+FC8E;N;ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM
+FC8F;N;ARABIC LIGATURE NOON WITH YEH FINAL FORM
+FC90;N;ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM
+FC91;N;ARABIC LIGATURE YEH WITH REH FINAL FORM
+FC92;N;ARABIC LIGATURE YEH WITH ZAIN FINAL FORM
+FC93;N;ARABIC LIGATURE YEH WITH MEEM FINAL FORM
+FC94;N;ARABIC LIGATURE YEH WITH NOON FINAL FORM
+FC95;N;ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM
+FC96;N;ARABIC LIGATURE YEH WITH YEH FINAL FORM
+FC97;N;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM
+FC98;N;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM
+FC99;N;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM
+FC9A;N;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM
+FC9B;N;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM
+FC9C;N;ARABIC LIGATURE BEH WITH JEEM INITIAL FORM
+FC9D;N;ARABIC LIGATURE BEH WITH HAH INITIAL FORM
+FC9E;N;ARABIC LIGATURE BEH WITH KHAH INITIAL FORM
+FC9F;N;ARABIC LIGATURE BEH WITH MEEM INITIAL FORM
+FCA0;N;ARABIC LIGATURE BEH WITH HEH INITIAL FORM
+FCA1;N;ARABIC LIGATURE TEH WITH JEEM INITIAL FORM
+FCA2;N;ARABIC LIGATURE TEH WITH HAH INITIAL FORM
+FCA3;N;ARABIC LIGATURE TEH WITH KHAH INITIAL FORM
+FCA4;N;ARABIC LIGATURE TEH WITH MEEM INITIAL FORM
+FCA5;N;ARABIC LIGATURE TEH WITH HEH INITIAL FORM
+FCA6;N;ARABIC LIGATURE THEH WITH MEEM INITIAL FORM
+FCA7;N;ARABIC LIGATURE JEEM WITH HAH INITIAL FORM
+FCA8;N;ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM
+FCA9;N;ARABIC LIGATURE HAH WITH JEEM INITIAL FORM
+FCAA;N;ARABIC LIGATURE HAH WITH MEEM INITIAL FORM
+FCAB;N;ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM
+FCAC;N;ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM
+FCAD;N;ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM
+FCAE;N;ARABIC LIGATURE SEEN WITH HAH INITIAL FORM
+FCAF;N;ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM
+FCB0;N;ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM
+FCB1;N;ARABIC LIGATURE SAD WITH HAH INITIAL FORM
+FCB2;N;ARABIC LIGATURE SAD WITH KHAH INITIAL FORM
+FCB3;N;ARABIC LIGATURE SAD WITH MEEM INITIAL FORM
+FCB4;N;ARABIC LIGATURE DAD WITH JEEM INITIAL FORM
+FCB5;N;ARABIC LIGATURE DAD WITH HAH INITIAL FORM
+FCB6;N;ARABIC LIGATURE DAD WITH KHAH INITIAL FORM
+FCB7;N;ARABIC LIGATURE DAD WITH MEEM INITIAL FORM
+FCB8;N;ARABIC LIGATURE TAH WITH HAH INITIAL FORM
+FCB9;N;ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM
+FCBA;N;ARABIC LIGATURE AIN WITH JEEM INITIAL FORM
+FCBB;N;ARABIC LIGATURE AIN WITH MEEM INITIAL FORM
+FCBC;N;ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM
+FCBD;N;ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM
+FCBE;N;ARABIC LIGATURE FEH WITH JEEM INITIAL FORM
+FCBF;N;ARABIC LIGATURE FEH WITH HAH INITIAL FORM
+FCC0;N;ARABIC LIGATURE FEH WITH KHAH INITIAL FORM
+FCC1;N;ARABIC LIGATURE FEH WITH MEEM INITIAL FORM
+FCC2;N;ARABIC LIGATURE QAF WITH HAH INITIAL FORM
+FCC3;N;ARABIC LIGATURE QAF WITH MEEM INITIAL FORM
+FCC4;N;ARABIC LIGATURE KAF WITH JEEM INITIAL FORM
+FCC5;N;ARABIC LIGATURE KAF WITH HAH INITIAL FORM
+FCC6;N;ARABIC LIGATURE KAF WITH KHAH INITIAL FORM
+FCC7;N;ARABIC LIGATURE KAF WITH LAM INITIAL FORM
+FCC8;N;ARABIC LIGATURE KAF WITH MEEM INITIAL FORM
+FCC9;N;ARABIC LIGATURE LAM WITH JEEM INITIAL FORM
+FCCA;N;ARABIC LIGATURE LAM WITH HAH INITIAL FORM
+FCCB;N;ARABIC LIGATURE LAM WITH KHAH INITIAL FORM
+FCCC;N;ARABIC LIGATURE LAM WITH MEEM INITIAL FORM
+FCCD;N;ARABIC LIGATURE LAM WITH HEH INITIAL FORM
+FCCE;N;ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM
+FCCF;N;ARABIC LIGATURE MEEM WITH HAH INITIAL FORM
+FCD0;N;ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM
+FCD1;N;ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM
+FCD2;N;ARABIC LIGATURE NOON WITH JEEM INITIAL FORM
+FCD3;N;ARABIC LIGATURE NOON WITH HAH INITIAL FORM
+FCD4;N;ARABIC LIGATURE NOON WITH KHAH INITIAL FORM
+FCD5;N;ARABIC LIGATURE NOON WITH MEEM INITIAL FORM
+FCD6;N;ARABIC LIGATURE NOON WITH HEH INITIAL FORM
+FCD7;N;ARABIC LIGATURE HEH WITH JEEM INITIAL FORM
+FCD8;N;ARABIC LIGATURE HEH WITH MEEM INITIAL FORM
+FCD9;N;ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM
+FCDA;N;ARABIC LIGATURE YEH WITH JEEM INITIAL FORM
+FCDB;N;ARABIC LIGATURE YEH WITH HAH INITIAL FORM
+FCDC;N;ARABIC LIGATURE YEH WITH KHAH INITIAL FORM
+FCDD;N;ARABIC LIGATURE YEH WITH MEEM INITIAL FORM
+FCDE;N;ARABIC LIGATURE YEH WITH HEH INITIAL FORM
+FCDF;N;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM
+FCE0;N;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM
+FCE1;N;ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM
+FCE2;N;ARABIC LIGATURE BEH WITH HEH MEDIAL FORM
+FCE3;N;ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM
+FCE4;N;ARABIC LIGATURE TEH WITH HEH MEDIAL FORM
+FCE5;N;ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM
+FCE6;N;ARABIC LIGATURE THEH WITH HEH MEDIAL FORM
+FCE7;N;ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM
+FCE8;N;ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM
+FCE9;N;ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM
+FCEA;N;ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM
+FCEB;N;ARABIC LIGATURE KAF WITH LAM MEDIAL FORM
+FCEC;N;ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM
+FCED;N;ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM
+FCEE;N;ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM
+FCEF;N;ARABIC LIGATURE NOON WITH HEH MEDIAL FORM
+FCF0;N;ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM
+FCF1;N;ARABIC LIGATURE YEH WITH HEH MEDIAL FORM
+FCF2;N;ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM
+FCF3;N;ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM
+FCF4;N;ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM
+FCF5;N;ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM
+FCF6;N;ARABIC LIGATURE TAH WITH YEH ISOLATED FORM
+FCF7;N;ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM
+FCF8;N;ARABIC LIGATURE AIN WITH YEH ISOLATED FORM
+FCF9;N;ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM
+FCFA;N;ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM
+FCFB;N;ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM
+FCFC;N;ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM
+FCFD;N;ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM
+FCFE;N;ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM
+FCFF;N;ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM
+FD00;N;ARABIC LIGATURE HAH WITH YEH ISOLATED FORM
+FD01;N;ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM
+FD02;N;ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM
+FD03;N;ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM
+FD04;N;ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM
+FD05;N;ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM
+FD06;N;ARABIC LIGATURE SAD WITH YEH ISOLATED FORM
+FD07;N;ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM
+FD08;N;ARABIC LIGATURE DAD WITH YEH ISOLATED FORM
+FD09;N;ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM
+FD0A;N;ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM
+FD0B;N;ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM
+FD0C;N;ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM
+FD0D;N;ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM
+FD0E;N;ARABIC LIGATURE SEEN WITH REH ISOLATED FORM
+FD0F;N;ARABIC LIGATURE SAD WITH REH ISOLATED FORM
+FD10;N;ARABIC LIGATURE DAD WITH REH ISOLATED FORM
+FD11;N;ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM
+FD12;N;ARABIC LIGATURE TAH WITH YEH FINAL FORM
+FD13;N;ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM
+FD14;N;ARABIC LIGATURE AIN WITH YEH FINAL FORM
+FD15;N;ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM
+FD16;N;ARABIC LIGATURE GHAIN WITH YEH FINAL FORM
+FD17;N;ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM
+FD18;N;ARABIC LIGATURE SEEN WITH YEH FINAL FORM
+FD19;N;ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM
+FD1A;N;ARABIC LIGATURE SHEEN WITH YEH FINAL FORM
+FD1B;N;ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM
+FD1C;N;ARABIC LIGATURE HAH WITH YEH FINAL FORM
+FD1D;N;ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM
+FD1E;N;ARABIC LIGATURE JEEM WITH YEH FINAL FORM
+FD1F;N;ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM
+FD20;N;ARABIC LIGATURE KHAH WITH YEH FINAL FORM
+FD21;N;ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM
+FD22;N;ARABIC LIGATURE SAD WITH YEH FINAL FORM
+FD23;N;ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM
+FD24;N;ARABIC LIGATURE DAD WITH YEH FINAL FORM
+FD25;N;ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM
+FD26;N;ARABIC LIGATURE SHEEN WITH HAH FINAL FORM
+FD27;N;ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM
+FD28;N;ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM
+FD29;N;ARABIC LIGATURE SHEEN WITH REH FINAL FORM
+FD2A;N;ARABIC LIGATURE SEEN WITH REH FINAL FORM
+FD2B;N;ARABIC LIGATURE SAD WITH REH FINAL FORM
+FD2C;N;ARABIC LIGATURE DAD WITH REH FINAL FORM
+FD2D;N;ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM
+FD2E;N;ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM
+FD2F;N;ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM
+FD30;N;ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM
+FD31;N;ARABIC LIGATURE SEEN WITH HEH INITIAL FORM
+FD32;N;ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM
+FD33;N;ARABIC LIGATURE TAH WITH MEEM INITIAL FORM
+FD34;N;ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM
+FD35;N;ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM
+FD36;N;ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM
+FD37;N;ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM
+FD38;N;ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM
+FD39;N;ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM
+FD3A;N;ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM
+FD3B;N;ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM
+FD3C;N;ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM
+FD3D;N;ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
+FD3E;N;ORNATE LEFT PARENTHESIS
+FD3F;N;ORNATE RIGHT PARENTHESIS
+FD50;N;ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM
+FD51;N;ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM
+FD52;N;ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM
+FD53;N;ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM
+FD54;N;ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM
+FD55;N;ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM
+FD56;N;ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM
+FD57;N;ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM
+FD58;N;ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM
+FD59;N;ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM
+FD5A;N;ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM
+FD5B;N;ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FD5C;N;ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM
+FD5D;N;ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM
+FD5E;N;ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM
+FD5F;N;ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM
+FD60;N;ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM
+FD61;N;ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM
+FD62;N;ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM
+FD63;N;ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM
+FD64;N;ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM
+FD65;N;ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM
+FD66;N;ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM
+FD67;N;ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM
+FD68;N;ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM
+FD69;N;ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM
+FD6A;N;ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM
+FD6B;N;ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM
+FD6C;N;ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM
+FD6D;N;ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM
+FD6E;N;ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM
+FD6F;N;ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM
+FD70;N;ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM
+FD71;N;ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM
+FD72;N;ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM
+FD73;N;ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM
+FD74;N;ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM
+FD75;N;ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM
+FD76;N;ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM
+FD77;N;ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM
+FD78;N;ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FD79;N;ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM
+FD7A;N;ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM
+FD7B;N;ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FD7C;N;ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM
+FD7D;N;ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM
+FD7E;N;ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM
+FD7F;N;ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM
+FD80;N;ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM
+FD81;N;ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM
+FD82;N;ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM
+FD83;N;ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM
+FD84;N;ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM
+FD85;N;ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM
+FD86;N;ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM
+FD87;N;ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM
+FD88;N;ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM
+FD89;N;ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM
+FD8A;N;ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM
+FD8B;N;ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM
+FD8C;N;ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM
+FD8D;N;ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM
+FD8E;N;ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM
+FD8F;N;ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
+FD92;N;ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM
+FD93;N;ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM
+FD94;N;ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM
+FD95;N;ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM
+FD96;N;ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM
+FD97;N;ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM
+FD98;N;ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM
+FD99;N;ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM
+FD9A;N;ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM
+FD9B;N;ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FD9C;N;ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM
+FD9D;N;ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM
+FD9E;N;ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM
+FD9F;N;ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM
+FDA0;N;ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM
+FDA1;N;ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM
+FDA2;N;ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM
+FDA3;N;ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM
+FDA4;N;ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FDA5;N;ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM
+FDA6;N;ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM
+FDA7;N;ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FDA8;N;ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM
+FDA9;N;ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM
+FDAA;N;ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM
+FDAB;N;ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM
+FDAC;N;ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM
+FDAD;N;ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM
+FDAE;N;ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM
+FDAF;N;ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM
+FDB0;N;ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM
+FDB1;N;ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM
+FDB2;N;ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM
+FDB3;N;ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM
+FDB4;N;ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM
+FDB5;N;ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM
+FDB6;N;ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM
+FDB7;N;ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM
+FDB8;N;ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM
+FDB9;N;ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM
+FDBA;N;ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM
+FDBB;N;ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM
+FDBC;N;ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM
+FDBD;N;ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM
+FDBE;N;ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM
+FDBF;N;ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM
+FDC0;N;ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM
+FDC1;N;ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM
+FDC2;N;ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM
+FDC3;N;ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM
+FDC4;N;ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM
+FDC5;N;ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM
+FDC6;N;ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM
+FDC7;N;ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
+FDF0;N;ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM
+FDF1;N;ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM
+FDF2;N;ARABIC LIGATURE ALLAH ISOLATED FORM
+FDF3;N;ARABIC LIGATURE AKBAR ISOLATED FORM
+FDF4;N;ARABIC LIGATURE MOHAMMAD ISOLATED FORM
+FDF5;N;ARABIC LIGATURE SALAM ISOLATED FORM
+FDF6;N;ARABIC LIGATURE RASOUL ISOLATED FORM
+FDF7;N;ARABIC LIGATURE ALAYHE ISOLATED FORM
+FDF8;N;ARABIC LIGATURE WASALLAM ISOLATED FORM
+FDF9;N;ARABIC LIGATURE SALLA ISOLATED FORM
+FDFA;N;ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM
+FDFB;N;ARABIC LIGATURE JALLAJALALOUHOU
+FE20;N;COMBINING LIGATURE LEFT HALF
+FE21;N;COMBINING LIGATURE RIGHT HALF
+FE22;N;COMBINING DOUBLE TILDE LEFT HALF
+FE23;N;COMBINING DOUBLE TILDE RIGHT HALF
+FE30;W;PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
+FE31;W;PRESENTATION FORM FOR VERTICAL EM DASH
+FE32;W;PRESENTATION FORM FOR VERTICAL EN DASH
+FE33;W;PRESENTATION FORM FOR VERTICAL LOW LINE
+FE34;W;PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
+FE35;W;PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
+FE36;W;PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
+FE37;W;PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
+FE38;W;PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
+FE39;W;PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
+FE3A;W;PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
+FE3B;W;PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
+FE3C;W;PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
+FE3D;W;PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
+FE3E;W;PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
+FE3F;W;PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
+FE40;W;PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
+FE41;W;PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
+FE42;W;PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
+FE43;W;PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
+FE44;W;PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
+FE49;W;DASHED OVERLINE
+FE4A;W;CENTRELINE OVERLINE
+FE4B;W;WAVY OVERLINE
+FE4C;W;DOUBLE WAVY OVERLINE
+FE4D;W;DASHED LOW LINE
+FE4E;W;CENTRELINE LOW LINE
+FE4F;W;WAVY LOW LINE
+FE50;W;SMALL COMMA
+FE51;W;SMALL IDEOGRAPHIC COMMA
+FE52;W;SMALL FULL STOP
+FE54;W;SMALL SEMICOLON
+FE55;W;SMALL COLON
+FE56;W;SMALL QUESTION MARK
+FE57;W;SMALL EXCLAMATION MARK
+FE58;W;SMALL EM DASH
+FE59;W;SMALL LEFT PARENTHESIS
+FE5A;W;SMALL RIGHT PARENTHESIS
+FE5B;W;SMALL LEFT CURLY BRACKET
+FE5C;W;SMALL RIGHT CURLY BRACKET
+FE5D;W;SMALL LEFT TORTOISE SHELL BRACKET
+FE5E;W;SMALL RIGHT TORTOISE SHELL BRACKET
+FE5F;W;SMALL NUMBER SIGN
+FE60;W;SMALL AMPERSAND
+FE61;W;SMALL ASTERISK
+FE62;W;SMALL PLUS SIGN
+FE63;W;SMALL HYPHEN-MINUS
+FE64;W;SMALL LESS-THAN SIGN
+FE65;W;SMALL GREATER-THAN SIGN
+FE66;W;SMALL EQUALS SIGN
+FE68;W;SMALL REVERSE SOLIDUS
+FE69;W;SMALL DOLLAR SIGN
+FE6A;W;SMALL PERCENT SIGN
+FE6B;W;SMALL COMMERCIAL AT
+FE70;N;ARABIC FATHATAN ISOLATED FORM
+FE71;N;ARABIC TATWEEL WITH FATHATAN ABOVE
+FE72;N;ARABIC DAMMATAN ISOLATED FORM
+FE74;N;ARABIC KASRATAN ISOLATED FORM
+FE76;N;ARABIC FATHA ISOLATED FORM
+FE77;N;ARABIC FATHA MEDIAL FORM
+FE78;N;ARABIC DAMMA ISOLATED FORM
+FE79;N;ARABIC DAMMA MEDIAL FORM
+FE7A;N;ARABIC KASRA ISOLATED FORM
+FE7B;N;ARABIC KASRA MEDIAL FORM
+FE7C;N;ARABIC SHADDA ISOLATED FORM
+FE7D;N;ARABIC SHADDA MEDIAL FORM
+FE7E;N;ARABIC SUKUN ISOLATED FORM
+FE7F;N;ARABIC SUKUN MEDIAL FORM
+FE80;N;ARABIC LETTER HAMZA ISOLATED FORM
+FE81;N;ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
+FE82;N;ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM
+FE83;N;ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM
+FE84;N;ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM
+FE85;N;ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
+FE86;N;ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM
+FE87;N;ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM
+FE88;N;ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM
+FE89;N;ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM
+FE8A;N;ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM
+FE8B;N;ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
+FE8C;N;ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM
+FE8D;N;ARABIC LETTER ALEF ISOLATED FORM
+FE8E;N;ARABIC LETTER ALEF FINAL FORM
+FE8F;N;ARABIC LETTER BEH ISOLATED FORM
+FE90;N;ARABIC LETTER BEH FINAL FORM
+FE91;N;ARABIC LETTER BEH INITIAL FORM
+FE92;N;ARABIC LETTER BEH MEDIAL FORM
+FE93;N;ARABIC LETTER TEH MARBUTA ISOLATED FORM
+FE94;N;ARABIC LETTER TEH MARBUTA FINAL FORM
+FE95;N;ARABIC LETTER TEH ISOLATED FORM
+FE96;N;ARABIC LETTER TEH FINAL FORM
+FE97;N;ARABIC LETTER TEH INITIAL FORM
+FE98;N;ARABIC LETTER TEH MEDIAL FORM
+FE99;N;ARABIC LETTER THEH ISOLATED FORM
+FE9A;N;ARABIC LETTER THEH FINAL FORM
+FE9B;N;ARABIC LETTER THEH INITIAL FORM
+FE9C;N;ARABIC LETTER THEH MEDIAL FORM
+FE9D;N;ARABIC LETTER JEEM ISOLATED FORM
+FE9E;N;ARABIC LETTER JEEM FINAL FORM
+FE9F;N;ARABIC LETTER JEEM INITIAL FORM
+FEA0;N;ARABIC LETTER JEEM MEDIAL FORM
+FEA1;N;ARABIC LETTER HAH ISOLATED FORM
+FEA2;N;ARABIC LETTER HAH FINAL FORM
+FEA3;N;ARABIC LETTER HAH INITIAL FORM
+FEA4;N;ARABIC LETTER HAH MEDIAL FORM
+FEA5;N;ARABIC LETTER KHAH ISOLATED FORM
+FEA6;N;ARABIC LETTER KHAH FINAL FORM
+FEA7;N;ARABIC LETTER KHAH INITIAL FORM
+FEA8;N;ARABIC LETTER KHAH MEDIAL FORM
+FEA9;N;ARABIC LETTER DAL ISOLATED FORM
+FEAA;N;ARABIC LETTER DAL FINAL FORM
+FEAB;N;ARABIC LETTER THAL ISOLATED FORM
+FEAC;N;ARABIC LETTER THAL FINAL FORM
+FEAD;N;ARABIC LETTER REH ISOLATED FORM
+FEAE;N;ARABIC LETTER REH FINAL FORM
+FEAF;N;ARABIC LETTER ZAIN ISOLATED FORM
+FEB0;N;ARABIC LETTER ZAIN FINAL FORM
+FEB1;N;ARABIC LETTER SEEN ISOLATED FORM
+FEB2;N;ARABIC LETTER SEEN FINAL FORM
+FEB3;N;ARABIC LETTER SEEN INITIAL FORM
+FEB4;N;ARABIC LETTER SEEN MEDIAL FORM
+FEB5;N;ARABIC LETTER SHEEN ISOLATED FORM
+FEB6;N;ARABIC LETTER SHEEN FINAL FORM
+FEB7;N;ARABIC LETTER SHEEN INITIAL FORM
+FEB8;N;ARABIC LETTER SHEEN MEDIAL FORM
+FEB9;N;ARABIC LETTER SAD ISOLATED FORM
+FEBA;N;ARABIC LETTER SAD FINAL FORM
+FEBB;N;ARABIC LETTER SAD INITIAL FORM
+FEBC;N;ARABIC LETTER SAD MEDIAL FORM
+FEBD;N;ARABIC LETTER DAD ISOLATED FORM
+FEBE;N;ARABIC LETTER DAD FINAL FORM
+FEBF;N;ARABIC LETTER DAD INITIAL FORM
+FEC0;N;ARABIC LETTER DAD MEDIAL FORM
+FEC1;N;ARABIC LETTER TAH ISOLATED FORM
+FEC2;N;ARABIC LETTER TAH FINAL FORM
+FEC3;N;ARABIC LETTER TAH INITIAL FORM
+FEC4;N;ARABIC LETTER TAH MEDIAL FORM
+FEC5;N;ARABIC LETTER ZAH ISOLATED FORM
+FEC6;N;ARABIC LETTER ZAH FINAL FORM
+FEC7;N;ARABIC LETTER ZAH INITIAL FORM
+FEC8;N;ARABIC LETTER ZAH MEDIAL FORM
+FEC9;N;ARABIC LETTER AIN ISOLATED FORM
+FECA;N;ARABIC LETTER AIN FINAL FORM
+FECB;N;ARABIC LETTER AIN INITIAL FORM
+FECC;N;ARABIC LETTER AIN MEDIAL FORM
+FECD;N;ARABIC LETTER GHAIN ISOLATED FORM
+FECE;N;ARABIC LETTER GHAIN FINAL FORM
+FECF;N;ARABIC LETTER GHAIN INITIAL FORM
+FED0;N;ARABIC LETTER GHAIN MEDIAL FORM
+FED1;N;ARABIC LETTER FEH ISOLATED FORM
+FED2;N;ARABIC LETTER FEH FINAL FORM
+FED3;N;ARABIC LETTER FEH INITIAL FORM
+FED4;N;ARABIC LETTER FEH MEDIAL FORM
+FED5;N;ARABIC LETTER QAF ISOLATED FORM
+FED6;N;ARABIC LETTER QAF FINAL FORM
+FED7;N;ARABIC LETTER QAF INITIAL FORM
+FED8;N;ARABIC LETTER QAF MEDIAL FORM
+FED9;N;ARABIC LETTER KAF ISOLATED FORM
+FEDA;N;ARABIC LETTER KAF FINAL FORM
+FEDB;N;ARABIC LETTER KAF INITIAL FORM
+FEDC;N;ARABIC LETTER KAF MEDIAL FORM
+FEDD;N;ARABIC LETTER LAM ISOLATED FORM
+FEDE;N;ARABIC LETTER LAM FINAL FORM
+FEDF;N;ARABIC LETTER LAM INITIAL FORM
+FEE0;N;ARABIC LETTER LAM MEDIAL FORM
+FEE1;N;ARABIC LETTER MEEM ISOLATED FORM
+FEE2;N;ARABIC LETTER MEEM FINAL FORM
+FEE3;N;ARABIC LETTER MEEM INITIAL FORM
+FEE4;N;ARABIC LETTER MEEM MEDIAL FORM
+FEE5;N;ARABIC LETTER NOON ISOLATED FORM
+FEE6;N;ARABIC LETTER NOON FINAL FORM
+FEE7;N;ARABIC LETTER NOON INITIAL FORM
+FEE8;N;ARABIC LETTER NOON MEDIAL FORM
+FEE9;N;ARABIC LETTER HEH ISOLATED FORM
+FEEA;N;ARABIC LETTER HEH FINAL FORM
+FEEB;N;ARABIC LETTER HEH INITIAL FORM
+FEEC;N;ARABIC LETTER HEH MEDIAL FORM
+FEED;N;ARABIC LETTER WAW ISOLATED FORM
+FEEE;N;ARABIC LETTER WAW FINAL FORM
+FEEF;N;ARABIC LETTER ALEF MAKSURA ISOLATED FORM
+FEF0;N;ARABIC LETTER ALEF MAKSURA FINAL FORM
+FEF1;N;ARABIC LETTER YEH ISOLATED FORM
+FEF2;N;ARABIC LETTER YEH FINAL FORM
+FEF3;N;ARABIC LETTER YEH INITIAL FORM
+FEF4;N;ARABIC LETTER YEH MEDIAL FORM
+FEF5;N;ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
+FEF6;N;ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM
+FEF7;N;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
+FEF8;N;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM
+FEF9;N;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM
+FEFA;N;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM
+FEFB;N;ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
+FEFC;N;ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+FEFF;N;ZERO WIDTH NO-BREAK SPACE
+FF01;F;FULLWIDTH EXCLAMATION MARK
+FF02;F;FULLWIDTH QUOTATION MARK
+FF03;F;FULLWIDTH NUMBER SIGN
+FF04;F;FULLWIDTH DOLLAR SIGN
+FF05;F;FULLWIDTH PERCENT SIGN
+FF06;F;FULLWIDTH AMPERSAND
+FF07;F;FULLWIDTH APOSTROPHE
+FF08;F;FULLWIDTH LEFT PARENTHESIS
+FF09;F;FULLWIDTH RIGHT PARENTHESIS
+FF0A;F;FULLWIDTH ASTERISK
+FF0B;F;FULLWIDTH PLUS SIGN
+FF0C;F;FULLWIDTH COMMA
+FF0D;F;FULLWIDTH HYPHEN-MINUS
+FF0E;F;FULLWIDTH FULL STOP
+FF0F;F;FULLWIDTH SOLIDUS
+FF10;F;FULLWIDTH DIGIT ZERO
+FF11;F;FULLWIDTH DIGIT ONE
+FF12;F;FULLWIDTH DIGIT TWO
+FF13;F;FULLWIDTH DIGIT THREE
+FF14;F;FULLWIDTH DIGIT FOUR
+FF15;F;FULLWIDTH DIGIT FIVE
+FF16;F;FULLWIDTH DIGIT SIX
+FF17;F;FULLWIDTH DIGIT SEVEN
+FF18;F;FULLWIDTH DIGIT EIGHT
+FF19;F;FULLWIDTH DIGIT NINE
+FF1A;F;FULLWIDTH COLON
+FF1B;F;FULLWIDTH SEMICOLON
+FF1C;F;FULLWIDTH LESS-THAN SIGN
+FF1D;F;FULLWIDTH EQUALS SIGN
+FF1E;F;FULLWIDTH GREATER-THAN SIGN
+FF1F;F;FULLWIDTH QUESTION MARK
+FF20;F;FULLWIDTH COMMERCIAL AT
+FF21;F;FULLWIDTH LATIN CAPITAL LETTER A
+FF22;F;FULLWIDTH LATIN CAPITAL LETTER B
+FF23;F;FULLWIDTH LATIN CAPITAL LETTER C
+FF24;F;FULLWIDTH LATIN CAPITAL LETTER D
+FF25;F;FULLWIDTH LATIN CAPITAL LETTER E
+FF26;F;FULLWIDTH LATIN CAPITAL LETTER F
+FF27;F;FULLWIDTH LATIN CAPITAL LETTER G
+FF28;F;FULLWIDTH LATIN CAPITAL LETTER H
+FF29;F;FULLWIDTH LATIN CAPITAL LETTER I
+FF2A;F;FULLWIDTH LATIN CAPITAL LETTER J
+FF2B;F;FULLWIDTH LATIN CAPITAL LETTER K
+FF2C;F;FULLWIDTH LATIN CAPITAL LETTER L
+FF2D;F;FULLWIDTH LATIN CAPITAL LETTER M
+FF2E;F;FULLWIDTH LATIN CAPITAL LETTER N
+FF2F;F;FULLWIDTH LATIN CAPITAL LETTER O
+FF30;F;FULLWIDTH LATIN CAPITAL LETTER P
+FF31;F;FULLWIDTH LATIN CAPITAL LETTER Q
+FF32;F;FULLWIDTH LATIN CAPITAL LETTER R
+FF33;F;FULLWIDTH LATIN CAPITAL LETTER S
+FF34;F;FULLWIDTH LATIN CAPITAL LETTER T
+FF35;F;FULLWIDTH LATIN CAPITAL LETTER U
+FF36;F;FULLWIDTH LATIN CAPITAL LETTER V
+FF37;F;FULLWIDTH LATIN CAPITAL LETTER W
+FF38;F;FULLWIDTH LATIN CAPITAL LETTER X
+FF39;F;FULLWIDTH LATIN CAPITAL LETTER Y
+FF3A;F;FULLWIDTH LATIN CAPITAL LETTER Z
+FF3B;F;FULLWIDTH LEFT SQUARE BRACKET
+FF3C;F;FULLWIDTH REVERSE SOLIDUS
+FF3D;F;FULLWIDTH RIGHT SQUARE BRACKET
+FF3E;F;FULLWIDTH CIRCUMFLEX ACCENT
+FF3F;F;FULLWIDTH LOW LINE
+FF40;F;FULLWIDTH GRAVE ACCENT
+FF41;F;FULLWIDTH LATIN SMALL LETTER A
+FF42;F;FULLWIDTH LATIN SMALL LETTER B
+FF43;F;FULLWIDTH LATIN SMALL LETTER C
+FF44;F;FULLWIDTH LATIN SMALL LETTER D
+FF45;F;FULLWIDTH LATIN SMALL LETTER E
+FF46;F;FULLWIDTH LATIN SMALL LETTER F
+FF47;F;FULLWIDTH LATIN SMALL LETTER G
+FF48;F;FULLWIDTH LATIN SMALL LETTER H
+FF49;F;FULLWIDTH LATIN SMALL LETTER I
+FF4A;F;FULLWIDTH LATIN SMALL LETTER J
+FF4B;F;FULLWIDTH LATIN SMALL LETTER K
+FF4C;F;FULLWIDTH LATIN SMALL LETTER L
+FF4D;F;FULLWIDTH LATIN SMALL LETTER M
+FF4E;F;FULLWIDTH LATIN SMALL LETTER N
+FF4F;F;FULLWIDTH LATIN SMALL LETTER O
+FF50;F;FULLWIDTH LATIN SMALL LETTER P
+FF51;F;FULLWIDTH LATIN SMALL LETTER Q
+FF52;F;FULLWIDTH LATIN SMALL LETTER R
+FF53;F;FULLWIDTH LATIN SMALL LETTER S
+FF54;F;FULLWIDTH LATIN SMALL LETTER T
+FF55;F;FULLWIDTH LATIN SMALL LETTER U
+FF56;F;FULLWIDTH LATIN SMALL LETTER V
+FF57;F;FULLWIDTH LATIN SMALL LETTER W
+FF58;F;FULLWIDTH LATIN SMALL LETTER X
+FF59;F;FULLWIDTH LATIN SMALL LETTER Y
+FF5A;F;FULLWIDTH LATIN SMALL LETTER Z
+FF5B;F;FULLWIDTH LEFT CURLY BRACKET
+FF5C;F;FULLWIDTH VERTICAL LINE
+FF5D;F;FULLWIDTH RIGHT CURLY BRACKET
+FF5E;F;FULLWIDTH TILDE
+FF61;H;HALFWIDTH IDEOGRAPHIC FULL STOP
+FF62;H;HALFWIDTH LEFT CORNER BRACKET
+FF63;H;HALFWIDTH RIGHT CORNER BRACKET
+FF64;H;HALFWIDTH IDEOGRAPHIC COMMA
+FF65;H;HALFWIDTH KATAKANA MIDDLE DOT
+FF66;H;HALFWIDTH KATAKANA LETTER WO
+FF67;H;HALFWIDTH KATAKANA LETTER SMALL A
+FF68;H;HALFWIDTH KATAKANA LETTER SMALL I
+FF69;H;HALFWIDTH KATAKANA LETTER SMALL U
+FF6A;H;HALFWIDTH KATAKANA LETTER SMALL E
+FF6B;H;HALFWIDTH KATAKANA LETTER SMALL O
+FF6C;H;HALFWIDTH KATAKANA LETTER SMALL YA
+FF6D;H;HALFWIDTH KATAKANA LETTER SMALL YU
+FF6E;H;HALFWIDTH KATAKANA LETTER SMALL YO
+FF6F;H;HALFWIDTH KATAKANA LETTER SMALL TU
+FF70;H;HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
+FF71;H;HALFWIDTH KATAKANA LETTER A
+FF72;H;HALFWIDTH KATAKANA LETTER I
+FF73;H;HALFWIDTH KATAKANA LETTER U
+FF74;H;HALFWIDTH KATAKANA LETTER E
+FF75;H;HALFWIDTH KATAKANA LETTER O
+FF76;H;HALFWIDTH KATAKANA LETTER KA
+FF77;H;HALFWIDTH KATAKANA LETTER KI
+FF78;H;HALFWIDTH KATAKANA LETTER KU
+FF79;H;HALFWIDTH KATAKANA LETTER KE
+FF7A;H;HALFWIDTH KATAKANA LETTER KO
+FF7B;H;HALFWIDTH KATAKANA LETTER SA
+FF7C;H;HALFWIDTH KATAKANA LETTER SI
+FF7D;H;HALFWIDTH KATAKANA LETTER SU
+FF7E;H;HALFWIDTH KATAKANA LETTER SE
+FF7F;H;HALFWIDTH KATAKANA LETTER SO
+FF80;H;HALFWIDTH KATAKANA LETTER TA
+FF81;H;HALFWIDTH KATAKANA LETTER TI
+FF82;H;HALFWIDTH KATAKANA LETTER TU
+FF83;H;HALFWIDTH KATAKANA LETTER TE
+FF84;H;HALFWIDTH KATAKANA LETTER TO
+FF85;H;HALFWIDTH KATAKANA LETTER NA
+FF86;H;HALFWIDTH KATAKANA LETTER NI
+FF87;H;HALFWIDTH KATAKANA LETTER NU
+FF88;H;HALFWIDTH KATAKANA LETTER NE
+FF89;H;HALFWIDTH KATAKANA LETTER NO
+FF8A;H;HALFWIDTH KATAKANA LETTER HA
+FF8B;H;HALFWIDTH KATAKANA LETTER HI
+FF8C;H;HALFWIDTH KATAKANA LETTER HU
+FF8D;H;HALFWIDTH KATAKANA LETTER HE
+FF8E;H;HALFWIDTH KATAKANA LETTER HO
+FF8F;H;HALFWIDTH KATAKANA LETTER MA
+FF90;H;HALFWIDTH KATAKANA LETTER MI
+FF91;H;HALFWIDTH KATAKANA LETTER MU
+FF92;H;HALFWIDTH KATAKANA LETTER ME
+FF93;H;HALFWIDTH KATAKANA LETTER MO
+FF94;H;HALFWIDTH KATAKANA LETTER YA
+FF95;H;HALFWIDTH KATAKANA LETTER YU
+FF96;H;HALFWIDTH KATAKANA LETTER YO
+FF97;H;HALFWIDTH KATAKANA LETTER RA
+FF98;H;HALFWIDTH KATAKANA LETTER RI
+FF99;H;HALFWIDTH KATAKANA LETTER RU
+FF9A;H;HALFWIDTH KATAKANA LETTER RE
+FF9B;H;HALFWIDTH KATAKANA LETTER RO
+FF9C;H;HALFWIDTH KATAKANA LETTER WA
+FF9D;H;HALFWIDTH KATAKANA LETTER N
+FF9E;H;HALFWIDTH KATAKANA VOICED SOUND MARK
+FF9F;H;HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
+FFA0;H;HALFWIDTH HANGUL FILLER
+FFA1;H;HALFWIDTH HANGUL LETTER KIYEOK
+FFA2;H;HALFWIDTH HANGUL LETTER SSANGKIYEOK
+FFA3;H;HALFWIDTH HANGUL LETTER KIYEOK-SIOS
+FFA4;H;HALFWIDTH HANGUL LETTER NIEUN
+FFA5;H;HALFWIDTH HANGUL LETTER NIEUN-CIEUC
+FFA6;H;HALFWIDTH HANGUL LETTER NIEUN-HIEUH
+FFA7;H;HALFWIDTH HANGUL LETTER TIKEUT
+FFA8;H;HALFWIDTH HANGUL LETTER SSANGTIKEUT
+FFA9;H;HALFWIDTH HANGUL LETTER RIEUL
+FFAA;H;HALFWIDTH HANGUL LETTER RIEUL-KIYEOK
+FFAB;H;HALFWIDTH HANGUL LETTER RIEUL-MIEUM
+FFAC;H;HALFWIDTH HANGUL LETTER RIEUL-PIEUP
+FFAD;H;HALFWIDTH HANGUL LETTER RIEUL-SIOS
+FFAE;H;HALFWIDTH HANGUL LETTER RIEUL-THIEUTH
+FFAF;H;HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH
+FFB0;H;HALFWIDTH HANGUL LETTER RIEUL-HIEUH
+FFB1;H;HALFWIDTH HANGUL LETTER MIEUM
+FFB2;H;HALFWIDTH HANGUL LETTER PIEUP
+FFB3;H;HALFWIDTH HANGUL LETTER SSANGPIEUP
+FFB4;H;HALFWIDTH HANGUL LETTER PIEUP-SIOS
+FFB5;H;HALFWIDTH HANGUL LETTER SIOS
+FFB6;H;HALFWIDTH HANGUL LETTER SSANGSIOS
+FFB7;H;HALFWIDTH HANGUL LETTER IEUNG
+FFB8;H;HALFWIDTH HANGUL LETTER CIEUC
+FFB9;H;HALFWIDTH HANGUL LETTER SSANGCIEUC
+FFBA;H;HALFWIDTH HANGUL LETTER CHIEUCH
+FFBB;H;HALFWIDTH HANGUL LETTER KHIEUKH
+FFBC;H;HALFWIDTH HANGUL LETTER THIEUTH
+FFBD;H;HALFWIDTH HANGUL LETTER PHIEUPH
+FFBE;H;HALFWIDTH HANGUL LETTER HIEUH
+FFC2;H;HALFWIDTH HANGUL LETTER A
+FFC3;H;HALFWIDTH HANGUL LETTER AE
+FFC4;H;HALFWIDTH HANGUL LETTER YA
+FFC5;H;HALFWIDTH HANGUL LETTER YAE
+FFC6;H;HALFWIDTH HANGUL LETTER EO
+FFC7;H;HALFWIDTH HANGUL LETTER E
+FFCA;H;HALFWIDTH HANGUL LETTER YEO
+FFCB;H;HALFWIDTH HANGUL LETTER YE
+FFCC;H;HALFWIDTH HANGUL LETTER O
+FFCD;H;HALFWIDTH HANGUL LETTER WA
+FFCE;H;HALFWIDTH HANGUL LETTER WAE
+FFCF;H;HALFWIDTH HANGUL LETTER OE
+FFD2;H;HALFWIDTH HANGUL LETTER YO
+FFD3;H;HALFWIDTH HANGUL LETTER U
+FFD4;H;HALFWIDTH HANGUL LETTER WEO
+FFD5;H;HALFWIDTH HANGUL LETTER WE
+FFD6;H;HALFWIDTH HANGUL LETTER WI
+FFD7;H;HALFWIDTH HANGUL LETTER YU
+FFDA;H;HALFWIDTH HANGUL LETTER EU
+FFDB;H;HALFWIDTH HANGUL LETTER YI
+FFDC;H;HALFWIDTH HANGUL LETTER I
+FFE0;F;FULLWIDTH CENT SIGN
+FFE1;F;FULLWIDTH POUND SIGN
+FFE2;F;FULLWIDTH NOT SIGN
+FFE3;F;FULLWIDTH MACRON
+FFE4;F;FULLWIDTH BROKEN BAR
+FFE5;F;FULLWIDTH YEN SIGN
+FFE6;F;FULLWIDTH WON SIGN
+FFE8;H;HALFWIDTH FORMS LIGHT VERTICAL
+FFE9;H;HALFWIDTH LEFTWARDS ARROW
+FFEA;H;HALFWIDTH UPWARDS ARROW
+FFEB;H;HALFWIDTH RIGHTWARDS ARROW
+FFEC;H;HALFWIDTH DOWNWARDS ARROW
+FFED;H;HALFWIDTH BLACK SQUARE
+FFEE;H;HALFWIDTH WHITE CIRCLE
+FFF9;N;INTERLINEAR ANNOTATION ANCHOR
+FFFA;N;INTERLINEAR ANNOTATION SEPARATOR
+FFFB;N;INTERLINEAR ANNOTATION TERMINATOR
+FFFC;N;OBJECT REPLACEMENT CHARACTER
+FFFD;A;REPLACEMENT CHARACTER
index f9d3943..6be56a4 100644 (file)
@@ -1,3 +1,3 @@
 return <<'END';
-FFF0   FFFF
+FFF0   FFFD
 END
index b46705d..bf2888d 100644 (file)
@@ -1,3 +1,3 @@
 return <<'END';
-0F00   0FBF
+0F00   0FFF
 END
old mode 100755 (executable)
new mode 100644 (file)
similarity index 68%
rename from lib/unicode/index2.txt
rename to lib/unicode/Index.txt
index 273ea4e..1ebeea6
@@ -8,23 +8,25 @@ a, latin small letter script  0251
 A, LATIN SMALL LETTER TURNED   0250
 ABBREVIATION MARK, ARMENIAN    055F
 ABBREVIATION SIGN, DEVANAGARI  0970
-Abbreviations, Squared Latin   3380
+Abbreviations, Squared Latin   3371
+Aboriginal Syllabics, Unified Canadian 1400
 ABOVE RIGHT, COMBINING COMMA   0315
 above, cedilla 0312
-ABOVE, COMBINING ANTICLOCKWISE ARROW   20D4
+ABOVE, COMBINING ALMOST EQUAL TO       034C
+ABOVE, COMBINING BRIDGE        0346
 ABOVE, COMBINING CLOCKWISE ARROW       20D5
 ABOVE, COMBINING COMMA 0313
 ABOVE, COMBINING DOT   0307
 ABOVE, COMBINING DOUBLE VERTICAL LINE  030E
 ABOVE, COMBINING FOUR DOTS     20DC
+ABOVE, COMBINING HOMOTHETIC    034B
 ABOVE, COMBINING HOOK  0309
 ABOVE, COMBINING LEFT ANGLE    031A
 ABOVE, COMBINING LEFT ARROW    20D6
 ABOVE, COMBINING LEFT HARPOON  20D0
 ABOVE, COMBINING LEFT RIGHT ARROW      20E1
+ABOVE, COMBINING NOT TILDE     034A
 ABOVE, COMBINING REVERSED COMMA        0314
-ABOVE, COMBINING RIGHT ARROW   20D7
-ABOVE, COMBINING RIGHT HARPOON 20D1
 ABOVE, COMBINING RING  030A
 ABOVE, COMBINING THREE DOTS    20DB
 ABOVE, COMBINING TURNED COMMA  0312
@@ -33,10 +35,32 @@ ABOVE, COMBINING X  033D
 ABOVE, DOT     02D9
 above, double dot      0308
 ABOVE, RING    02DA
-above, v       030C
+above, vee     030C
+ACCENT BELOW, COMBINING ACUTE  0317
+ACCENT BELOW, COMBINING CIRCUMFLEX     032D
+ACCENT BELOW, COMBINING GRAVE  0316
+ACCENT, ACUTE  00B4
+ACCENT, CIRCUMFLEX     005E
+ACCENT, COMBINING ACUTE        0301
+ACCENT, COMBINING CIRCUMFLEX   0302
+ACCENT, COMBINING DOUBLE ACUTE 030B
+ACCENT, COMBINING DOUBLE GRAVE 030F
+ACCENT, COMBINING GRAVE        0300
+ACCENT, DOUBLE ACUTE   02DD
+ACCENT, GRAVE  0060
+ACCENT, MODIFIER LETTER ACUTE  02CA
+ACCENT, MODIFIER LETTER CIRCUMFLEX     02C6
+ACCENT, MODIFIER LETTER CROSS  02DF
+ACCENT, MODIFIER LETTER GRAVE  02CB
+ACCENT, MODIFIER LETTER LOW ACUTE      02CF
+ACCENT, MODIFIER LETTER LOW GRAVE      02CE
+accent, swedish grave  02DF
 ACCOUNT OF     2100
-ACKNOWLEDGE    0006
-ACKNOWLEDGE, NEGATIVE  0015
+acknowledge    0006
+acknowledge, graphic for negative      237B
+acknowledge, negative  0015
+ACKNOWLEDGE, SYMBOL FOR        2406
+ACKNOWLEDGE, SYMBOL FOR NEGATIVE       2415
 ACTIVATE ARABIC FORM SHAPING   206D
 ACTIVATE SYMMETRIC SWAPPING    206B
 ACUTE ACCENT   00B4
@@ -49,27 +73,23 @@ ACUTE ACCENT, MODIFIER LETTER       02CA
 ACUTE ACCENT, MODIFIER LETTER LOW      02CF
 ACUTE TONE MARK, COMBINING     0341
 acute, spacing 00B4
-ADDAK, GURMUKHI        0A71
 ADDRESSED TO THE SUBJECT       2101
-ADI SHAKTI     262C
 AE, LATIN SMALL LETTER 00E6
-AFRICAN D, LATIN CAPITAL LETTER        0189
 AIRPLANE       2708
+aldus leaf     2766
 ALEF SYMBOL    2135
 ALL AROUND-PROFILE     232E
 ALL EQUAL TO   224C
 ALL, FOR       2200
 ALMOST EQUAL TO        2248
+ALMOST EQUAL TO ABOVE, COMBINING       034C
 ALPHA, LATIN SMALL LETTER      0251
 ALPHA, LATIN SMALL LETTER TURNED       0252
-Alphabet (Khutsuri), Georgian Archaic Uppercase        10A0
-Alphabet (Mkhedruli), Georgian Modern Lowercase        10D0
-Alphabet, Basic Russian        0410
-Alphabet, International Phonetic       0250
-Alphabet, Korean Hangul Combining      1100
 Alphabetic Presentation Forms  FB00
 Alphanumerics, Enclosed        2460
 alternating current    223F
+ALTERNATIVE KEY SYMBOL 2387
+ALVEOLAR CLICK, LATIN LETTER   01C2
 AMPERSAND      0026
 AND, CURLY LOGICAL     22CF
 AND, LOGICAL   2227
@@ -77,6 +97,7 @@ AND, N-ARY LOGICAL    22C0
 ANGLE  2220
 ANGLE ABOVE, COMBINING LEFT    031A
 angle arc      2222
+ANGLE BELOW, COMBINING LEFT    0349
 ANGLE BRACKET, LEFT    3008
 ANGLE BRACKET, LEFT DOUBLE     300A
 ANGLE BRACKET, LEFT-POINTING   2329
@@ -89,23 +110,13 @@ ANGLE WITH ARC, RIGHT      22BE
 ANGLE, MEASURED        2221
 ANGLE, RIGHT   221F
 ANGLE, SPHERICAL       2222
+angled dash    00AC
 ANGSTROM SIGN  212B
 ANKH   2625
-ANO TELEIA, GREEK      0387
-ANTICLOCKWISE ARROW ABOVE, COMBINING   20D4
-ANTICLOCKWISE CONTOUR INTEGRAL 2233
-ANTICLOCKWISE RING OVERLAY, COMBINING  20DA
-ANUDATTA, DEVANAGARI STRESS SIGN       0952
-anunasika, devanagari  0901
-ANUSVARA, BENGALI SIGN 0982
-ANUSVARA, DEVANAGARI SIGN      0902
-ANUSVARA, GUJARATI SIGN        0A82
-ANUSVARA, KANNADA SIGN 0C82
-ANUSVARA, MALAYALAM SIGN       0D02
-ANUSVARA, ORIYA SIGN   0B02
-ANUSVARA, TAMIL SIGN   0B82
-ANUSVARA, TELUGU SIGN  0C02
-apl downstile  230A
+Annotation Signs, Koranic      06D6
+Annotation, Interlinear        FFF9
+Annotation, Kanbun Ideographic 3190
+APL    2336
 APL Functional Symbols 2336
 apl jot        2218
 apl overbar    00AF
@@ -115,9 +126,12 @@ apl tilde  223C
 apl upstile    2308
 APOSTROPHE     0027
 apostrophe     02BC
+apostrophe     2019
 APOSTROPHE, ARMENIAN   055A
 APOSTROPHE, MODIFIER LETTER    02BC
+APOSTROPHE, MODIFIER LETTER DOUBLE     02EE
 apostrophe-quote       0027
+application program command    009F
 APPROACHES THE LIMIT   2250
 APPROXIMATELY EQUAL TO 2245
 approximately equal to 2257
@@ -129,108 +143,97 @@ ARABIC FIVE POINTED STAR 066D
 ARABIC FORM SHAPING, ACTIVATE  206D
 ARABIC FORM SHAPING, INHIBIT   206C
 ARABIC FULL STOP       06D4
-Arabic Harakaat        064B
-arabic kashida 0640
-ARABIC LETTER SUPERSCRIPT ALEF 0670
 Arabic Letters 0627
-Arabic Letters, Extended       0671
 ARABIC PERCENT SIGN    066A
+Arabic Points  064B
 Arabic Presentation Forms-A    FB50
 Arabic Presentation Forms-B    FE70
 ARABIC QUESTION MARK   061F
 ARABIC SEMICOLON       061B
-ARABIC TATWEEL 0640
 ARABIC THOUSANDS SEPARATOR     066C
+Arabic, Extended       0671
 Arabic-Indic Digits    0660
-Arabic-Indic Digits (Persian and Urdu), Eastern        06F0
+Arabic-Indic Digits for Persian and Urdu, Eastern      06F0
 ARC    2312
 arc, angle     2222
 ARC, RIGHT ANGLE WITH  22BE
 ARCH BELOW, COMBINING INVERTED DOUBLE  032B
 Arcs   25DC
+area, end of guarded   0097
+area, end of selected  0087
+area, start of guarded 0096
+area, start of selected        0086
 ARIES  2648
-aristeri keraia, greek 0375
 Armenian       0530
 ARMENIAN ABBREVIATION MARK     055F
 ARMENIAN APOSTROPHE    055A
-armenian batsaganchakan nshan  055C
-armenian boot  055D
 Armenian Capital Letters       0531
 ARMENIAN COMMA 055D
 ARMENIAN EMPHASIS MARK 055B
 ARMENIAN EXCLAMATION MARK      055C
 ARMENIAN FULL STOP     0589
-armenian hartsakan nshan       055E
-ARMENIAN MODIFIER LETTER LEFT HALF RING        0559
-armenian modifier letter right half ring       055A
-armenian patiw 055F
+ARMENIAN HYPHEN        058A
+Armenian Ligatures     FB13
 ARMENIAN QUESTION MARK 055E
-armenian shesht        055B
 Armenian Small Letters 0561
-armenian vertsaket     0589
+ARROW ABOVE, COMBINING CLOCKWISE       20D5
+ARROW ABOVE, COMBINING LEFT    20D6
+ARROW ABOVE, COMBINING LEFT RIGHT      20E1
+ARROW BELOW, COMBINING DOUBLE RIGHTWARDS       0362
+ARROW BELOW, COMBINING LEFT RIGHT      034D
+ARROW BELOW, COMBINING UPWARDS 034E
 Arrow Dingbats 2794
-arrow indicator, backward      25C5
-arrow indicator, forward       25BB
-ARROWHEAD, DOWN        2304
+ARROW, ELECTRIC        2301
 ARROWHEAD, UP  2303
 Arrowheads, Modifier Letter    02C2
 Arrows 2190
 ASCENDING NODE 260A
+ASCII  0020
 ASCII C0 Control Codes 0000
 ASCII Digits   0030
 ASCII Variants, Fullwidth      FF01
-ASCII, Based on        0020
+ash    00E6
 ASSERTION      22A6
 ASTERISK       002A
 Asterisk Dingbats      2722
 ASTERISK OPERATOR      2217
 ASTERISK OPERATOR, CIRCLED     229B
+Asterisks and Snowflakes, Stars,       2721
 ASTERISM       2042
+Astrological Symbols   263D
 asymptotic to  2248
 ASYMPTOTICALLY EQUAL TO        2243
 AT, COMMERCIAL 0040
-AVAGRAHA, DEVANAGARI SIGN      093D
-AVAGRAHA, GUJARATI SIGN        0ABD
-AVAGRAHA, ORIYA SIGN   0B3D
 B, LATIN LETTER SMALL CAPITAL  0299
 B, SCRIPT CAPITAL      212C
 baby gamma, latin small letter 0264
 backslash      005C
 BACKSLASH, COMBINING ENCLOSING CIRCLE  20E0
-BACKSPACE      0008
-backward arrow indicator       25C5
+backspace      0008
+BACKSPACE, SYMBOL FOR  2408
 backward difference    2207
 BAHT, THAI CURRENCY SYMBOL     0E3F
 BALLOT BOX     2610
 BALLOT BOX WITH CHECK  2611
 BALLOT BOX WITH X      2612
 BALLOT X       2717
+BALLOT X, HEAVY        2718
+bang   0021
 Bar Dingbats, Vertical 2758
 bar, broken vertical   00A6
 BAR, HORIZONTAL        2015
 bar, vertical  007C
 barred o, latin capital letter 019F
 BARRED O, LATIN SMALL LETTER   0275
-Based on ASCII 0020
-Based on GB 2312 (Chinese)     3100
-Based on ISCII 1988 (Devanagari)       0901
-Based on ISO 8859-1 (Latin-1)  00A0
-Based on ISO 8859-2, -3, -4, -9 (European Latin)       0100
-Based on ISO 8859-5 (Cyrillic) 0400
-Based on ISO 8859-6 (Arabic)   0600
-Based on ISO 8859-7 (Greek)    0370
-Based on ISO 8859-8 (Hebrew)   05D0
-Based on JIS X 0208 (Japanese Hiragana)        3040
-Based on KS C 5601 (Korean Hangul)     3130
-Based on TIS 620-2529 (Thai)   0E01
 Basic Latin, C0 Controls and   0000
 Basic Russian Alphabet 0410
-batsaganchakan nshan, armenian 055C
 BEAMED EIGHTH NOTES    266B
 BEAMED SIXTEENTH NOTES 266C
 BECAUSE        2235
 beginning of line      2310
-BELL   0007
+bell   0007
+BELL SYMBOL    237E
+BELL, SYMBOL FOR       2407
 BELOW, COMBINING ACUTE ACCENT  0317
 BELOW, COMBINING BREVE 032E
 BELOW, COMBINING BRIDGE        032A
@@ -239,12 +242,16 @@ BELOW, COMBINING CIRCUMFLEX ACCENT        032D
 BELOW, COMBINING COMMA 0326
 BELOW, COMBINING DIAERESIS     0324
 BELOW, COMBINING DOT   0323
-BELOW, COMBINING DOWN TACK     031E
+BELOW, COMBINING DOUBLE RIGHTWARDS ARROW       0362
+BELOW, COMBINING DOUBLE VERTICAL LINE  0348
+BELOW, COMBINING EQUALS SIGN   0347
 BELOW, COMBINING GRAVE ACCENT  0316
 BELOW, COMBINING INVERTED BREVE        032F
 BELOW, COMBINING INVERTED BRIDGE       033A
 BELOW, COMBINING INVERTED DOUBLE ARCH  032B
+BELOW, COMBINING LEFT ANGLE    0349
 BELOW, COMBINING LEFT HALF RING        031C
+BELOW, COMBINING LEFT RIGHT ARROW      034D
 BELOW, COMBINING LEFT TACK     0318
 BELOW, COMBINING MACRON        0331
 BELOW, COMBINING MINUS SIGN    0320
@@ -252,37 +259,42 @@ BELOW, COMBINING PALATALIZED HOOK 0321
 BELOW, COMBINING PLUS SIGN     031F
 BELOW, COMBINING RETROFLEX HOOK        0322
 BELOW, COMBINING RIGHT HALF RING       0339
-BELOW, COMBINING RIGHT TACK    0319
 BELOW, COMBINING RING  0325
 BELOW, COMBINING SEAGULL       033C
 BELOW, COMBINING SQUARE        033B
 BELOW, COMBINING TILDE 0330
 BELOW, COMBINING UP TACK       031D
+BELOW, COMBINING UPWARDS ARROW 034E
 BELOW, COMBINING VERTICAL LINE 0329
-below, greek combining iota    0345
+below, greek non-spacing iota  0345
 Bengali        0980
+Bengali Currency Signs 09F2
 Bengali Digits 09E6
-bengali halant 09CD
-BENGALI ISSHAR 09FA
 Bengali Letters        0985
 BENGALI RUPEE MARK     09F2
 BENGALI RUPEE SIGN     09F3
-BENGALI SIGN ANUSVARA  0982
-BENGALI SIGN CANDRABINDU       0981
-BENGALI SIGN NUKTA     09BC
-BENGALI SIGN VIRAMA    09CD
-BENGALI SIGN VISARGA   0983
 BENZENE RING   232C
 bernoulli function     212C
 BET SYMBOL     2136
+Betty  BOOP
 BETWEEN        226C
+BIDENTAL PERCUSSIVE, LATIN LETTER      02AD
 Bidirectional Formatting Controls      202A
-BINDI, GURMUKHI SIGN   0A02
-bindu, devanagari      0902
+Big 5, Duplicates from FA0C
+BILABIAL CLICK, LATIN LETTER   0298
+BILABIAL PERCUSSIVE, LATIN LETTER      02AC
 BIOHAZARD SIGN 2623
-BLACK CIRCLE   25CF
-BLACK DIAMOND  25C6
-BLACK RECTANGLE        25AC
+BLACK LEFT POINTING INDEX      261A
+BLACK LEFTWARDS BULLET 204C
+BLACK LENTICULAR BRACKET, LEFT 3010
+BLACK NIB      2712
+BLACK PARALLELOGRAM    25B0
+BLACK SCISSORS 2702
+black small circle     2022
+BLACK SMILING FACE     263B
+BLACK STAR     2605
+BLACK SUN WITH RAYS    2600
+BLACK TELEPHONE        260E
 BLACK-LETTER CAPITAL C 212D
 BLACK-LETTER CAPITAL H 210C
 BLACK-LETTER CAPITAL I 2111
@@ -290,18 +302,25 @@ BLACK-LETTER CAPITAL R    211C
 BLACK-LETTER CAPITAL Z 2128
 BLANK SYMBOL   2422
 Block Elements 2580
+block, end of transmission     0017
+BLOCK, SYMBOL FOR END OF TRANSMISSION  2417
 bom    FEFF
-boot, armenian 055D
+Bopomofo Extended for Minnan and Hakka, Chinese        31A0
 Bopomofo, Chinese      3100
 BOWTIE 22C8
 Box Drawing    2500
 BOX WITH CHECK, BALLOT 2611
 BOX WITH X, BALLOT     2612
 BOX, BALLOT    2610
+BOX, OPEN      2423
+BOX, SHOULDERED OPEN   237D
 BOX, X IN A RECTANGLE  2327
 bra    2329
+brace, closing 007D
 brace, opening 007B
 BRACKET WITH QUILL, LEFT SQUARE        2045
+bracket, closing curly 007D
+bracket, closing square        005D
 BRACKET, LEFT ANGLE    3008
 BRACKET, LEFT BLACK LENTICULAR 3010
 BRACKET, LEFT CORNER   300C
@@ -316,6 +335,12 @@ BRACKET, LEFT WHITE TORTOISE SHELL 3018
 BRACKET, LEFT-POINTING ANGLE   2329
 bracket, opening curly 007B
 bracket, opening square        005B
+BRACKET, RIGHT CURLY   007D
+BRACKET, RIGHT SQUARE  005D
+Braille Patterns       2800
+brazilian currency     20A2
+break here, no 0083
+break permitted here   0082
 breathing, rough       0314
 breathing, smooth      0313
 BREVE  02D8
@@ -324,34 +349,38 @@ BREVE BELOW, COMBINING INVERTED   032F
 BREVE, COMBINING       0306
 BREVE, COMBINING DOUBLE INVERTED       0361
 BREVE, COMBINING INVERTED      0311
+BRIDGE ABOVE, COMBINING        0346
 BRIDGE BELOW, COMBINING        032A
 BRIDGE BELOW, COMBINING INVERTED       033A
 broken vertical bar    00A6
 BULLET 2022
 BULLET OPERATOR        2219
+BULLET, BLACK LEFTWARDS        204C
 BULLET, HYPHEN 2043
+BULLET, REVERSED ROTATED FLORAL HEART  2619
 bullet, tainome (japanese, a kind of)  25C9
 BULLET, TRIANGULAR     2023
 BULLET, WHITE  25E6
 BULLSEYE       25CE
 bullseye, latin letter 0298
+by definition, equal to        225C
+BY DEFINITION, EQUAL TO        225D
+BY, MEASURED   225E
 byte order mark        FEFF
 C, BLACK-LETTER CAPITAL        212D
 C, DOUBLE-STRUCK CAPITAL       2102
+C, LATIN LETTER STRETCHED      0297
 C0 Controls and Basic Latin    0000
 C1 Controls and Latin-1 Supplement     0080
 CADA UNA       2106
 CADUCEUS       2624
-CANCEL 0018
-CANCELLATION MARK, LAO 0ECC
+Canadian Aboriginal Syllabics, Unified 1400
+cancel 0018
+cancel character       0094
+CANCEL, SYMBOL FOR     2418
 CANCER 264B
-CANDRABINDU, BENGALI SIGN      0981
 CANDRABINDU, COMBINING 0310
-CANDRABINDU, DEVANAGARI SIGN   0901
-CANDRABINDU, GUJARATI SIGN     0A81
-CANDRABINDU, ORIYA SIGN        0B01
-CANDRABINDU, TELUGU SIGN       0C01
-Cantillation marks, Hebrew Accents or  0591
+Cantillation Marks, Hebrew     0591
 cap    2229
 CAP, SQUARE    2293
 Capital Letters, Armenian      0531
@@ -361,11 +390,11 @@ Capital Letters, Greek    0391
 Capital Letters, Latin 0041
 CAPRICORN      2651
 caps lock      21EA
-Card Suits     2660
+caps lock      21EC
+Card Suits, Playing    2660
 cardinal (countable), first transfinite        2135
 cardinal (functions of a real variable), third transfinite     2137
 cardinal (the continuum), second transfinite   2136
-cardinal, fourth transfinite   2138
 CARE OF        2105
 caret  028C
 CARET  2038
@@ -373,8 +402,9 @@ CARET INSERTION POINT       2041
 CARON  02C7
 CARON BELOW, COMBINING 032C
 CARON, COMBINING       030C
-CARRIAGE RETURN        000D
+carriage return        000D
 carriage return        21B5
+CARRIAGE RETURN, SYMBOL FOR    240D
 CAUTION SIGN   2621
 CEDILLA        00B8
 cedilla above  0312
@@ -385,27 +415,39 @@ CELSIUS, DEGREE   2103
 CENT SIGN      00A2
 centigrade, degrees    2103
 CENTRE LINE SYMBOL     2104
+CENTRED LEFT HALF RING, MODIFIER LETTER        02D3
+CENTRELINE LOW LINE    FE4E
+CENTRELINE OVERLINE    FE4A
+character introducer, single   009A
+character tabulation set       0088
+character tabulation with justification        0089
+CHARACTER TIE  2040
 Chart Components, Form and     2500
-Check Mark Dingbats    2713
+CHECK MARK     2713
+CHECK MARK, HEAVY      2714
+CHECK MARK, NOT        237B
 CHECK, BALLOT BOX WITH 2611
+Cherokee       13A0
 Chess Pieces   2654
+chevrons       00AB
 CHI RHO        2627
 Chinese Bopomofo       3100
+Chinese Bopomofo Extended for Minnan and Hakka 31A0
 CIRCLE BACKSLASH, COMBINING ENCLOSING  20E0
 CIRCLE, BLACK  25CF
 circle, black small    2022
 CIRCLE, COMBINING ENCLOSING    20DD
 circle, jis composition        20DD
-CIRCLE, WHITE  25CB
+CIRCLE, LARGE  25EF
 CIRCLED ASTERISK OPERATOR      229B
 CIRCLED DASH   229D
 CIRCLED DIGIT ZERO     24EA
+Circled Digits, Dingbat        2776
 CIRCLED DIVISION SLASH 2298
 CIRCLED DOT OPERATOR   2299
 CIRCLED EQUALS 229C
 Circled Ideographs     3280
 Circled Inverse Numbers        2776
-Circled Inverse Sans-Serif Numbers     278A
 Circled Japanese Katakana      32D0
 Circled Korean Hangul Elements 3260
 Circled Korean Hangul Syllables        326E
@@ -415,7 +457,6 @@ Circled Numbers     2460
 CIRCLED PLUS   2295
 CIRCLED POSTAL MARK    3036
 CIRCLED RING OPERATOR  229A
-Circled Sans-Serif Numbers     2780
 CIRCLED TIMES  2297
 Circles        25CB
 CIRCUMFLEX ACCENT      005E
@@ -426,16 +467,33 @@ circumflex, spacing       005E
 CJK Compatibility      3300
 CJK Compatibility Forms        FE30
 CJK Compatibility Ideographs   F900
+CJK Compatibility Ideographs, IBM      FA0E
+CJK Ideographs Area    3400
 CJK Letters and Ideographs, Enclosed   3200
+CJK Phonetics and Symbols Area 2E00
+CJK Radicals Supplement        2E80
 CJK Symbols and Punctuation    3000
 CJK Unified Ideographs 4E00
+CJK Unified Ideographs Extension A     3400
 clear key      2327
+CLEAR SCREEN SYMBOL    239A
 clear weather  2600
+CLICK, LATIN LETTER ALVEOLAR   01C2
+CLICK, LATIN LETTER BILABIAL   0298
+CLICK, LATIN LETTER DENTAL     01C0
+CLICK, LATIN LETTER LATERAL    01C1
+CLICK, LATIN LETTER RETROFLEX  01C3
 CLOCKWISE ARROW ABOVE, COMBINING       20D5
 CLOCKWISE CONTOUR INTEGRAL     2232
 CLOCKWISE INTEGRAL     2231
 CLOCKWISE RING OVERLAY, COMBINING      20D9
 clone  2104
+Clones of Diacritics, Spacing  02D8
+closed epsilon, latin small letter     029A
+CLOSED OMEGA, LATIN SMALL LETTER       0277
+CLOSED OPEN E, LATIN SMALL LETTER      029A
+closed reversed epsilon, latin small letter    025E
+CLOSED REVERSED OPEN E, LATIN SMALL LETTER     025E
 closing brace  007D
 closing curly bracket  007D
 CLOSING MARK, IDEOGRAPHIC      3006
@@ -446,22 +504,24 @@ cloudy weather    2601
 COLON  003A
 COLON EQUALS   2254
 COLON SIGN     20A1
-COLON, EQUALS  2255
+COLON, ETHIOPIC        1365
 COLON, MODIFIER LETTER HALF TRIANGULAR 02D1
 COLON, MODIFIER LETTER TRIANGULAR      02D0
+COLON, MONGOLIAN       1804
 COMBINING ACUTE ACCENT 0301
 COMBINING ACUTE ACCENT BELOW   0317
 COMBINING ACUTE TONE MARK      0341
-Combining Alphabet, Korean Hangul      1100
-COMBINING ANTICLOCKWISE ARROW ABOVE    20D4
-COMBINING ANTICLOCKWISE RING OVERLAY   20DA
+COMBINING ALMOST EQUAL TO ABOVE        034C
+Combining Alphabet, Korean Hangul Jamo 1100
 COMBINING BREVE        0306
 COMBINING BREVE BELOW  032E
+COMBINING BRIDGE ABOVE 0346
 COMBINING BRIDGE BELOW 032A
 COMBINING CANDRABINDU  0310
 COMBINING CARON        030C
 COMBINING CARON BELOW  032C
 COMBINING CEDILLA      0327
+Combining Characters, Cyrillic 0483
 COMBINING CIRCUMFLEX ACCENT    0302
 COMBINING CIRCUMFLEX ACCENT BELOW      032D
 COMBINING CLOCKWISE ARROW ABOVE        20D5
@@ -469,10 +529,6 @@ COMBINING CLOCKWISE RING OVERLAY   20D9
 COMBINING COMMA ABOVE  0313
 COMBINING COMMA ABOVE RIGHT    0315
 COMBINING COMMA BELOW  0326
-COMBINING CYRILLIC DASIA PNEUMATA      0485
-COMBINING CYRILLIC PALATALIZATION      0484
-COMBINING CYRILLIC PSILI PNEUMATA      0486
-COMBINING CYRILLIC TITLO       0483
 Combining Diacritical Marks    0300
 Combining Diacritical Marks for Symbols        20D0
 COMBINING DIAERESIS    0308
@@ -484,13 +540,19 @@ COMBINING DOUBLE GRAVE ACCENT     030F
 COMBINING DOUBLE INVERTED BREVE        0361
 COMBINING DOUBLE LOW LINE      0333
 COMBINING DOUBLE OVERLINE      033F
+COMBINING DOUBLE RIGHTWARDS ARROW BELOW        0362
 COMBINING DOUBLE TILDE 0360
+COMBINING DOUBLE TILDE LEFT HALF       FE22
 COMBINING DOUBLE VERTICAL LINE ABOVE   030E
+COMBINING DOUBLE VERTICAL LINE BELOW   0348
 COMBINING DOWN TACK BELOW      031E
 COMBINING ENCLOSING CIRCLE     20DD
 COMBINING ENCLOSING CIRCLE BACKSLASH   20E0
 COMBINING ENCLOSING DIAMOND    20DF
+COMBINING ENCLOSING KEYCAP     20E3
+COMBINING ENCLOSING SCREEN     20E2
 COMBINING ENCLOSING SQUARE     20DE
+COMBINING EQUALS SIGN BELOW    0347
 COMBINING FOUR DOTS ABOVE      20DC
 COMBINING GRAVE ACCENT 0300
 COMBINING GRAVE ACCENT BELOW   0316
@@ -501,20 +563,23 @@ COMBINING GREEK PERISPOMENI       0342
 COMBINING GREEK YPOGEGRAMMENI  0345
 combining hacek        030C
 Combining Half Marks   FE20
+COMBINING HOMOTHETIC ABOVE     034B
 COMBINING HOOK ABOVE   0309
 COMBINING HORN 031B
 COMBINING INVERTED BREVE       0311
 COMBINING INVERTED BREVE BELOW 032F
 COMBINING INVERTED BRIDGE BELOW        033A
 COMBINING INVERTED DOUBLE ARCH BELOW   032B
-combining iota below, greek    0345
 COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK  3099
 COMBINING LEFT ANGLE ABOVE     031A
+COMBINING LEFT ANGLE BELOW     0349
 COMBINING LEFT ARROW ABOVE     20D6
 COMBINING LEFT HALF RING BELOW 031C
 COMBINING LEFT HARPOON ABOVE   20D0
 COMBINING LEFT RIGHT ARROW ABOVE       20E1
+COMBINING LEFT RIGHT ARROW BELOW       034D
 COMBINING LEFT TACK BELOW      0318
+COMBINING LIGATURE LEFT HALF   FE20
 COMBINING LONG SOLIDUS OVERLAY 0338
 COMBINING LONG STROKE OVERLAY  0336
 COMBINING LONG VERTICAL LINE OVERLAY   20D2
@@ -522,16 +587,14 @@ COMBINING LOW LINE        0332
 COMBINING MACRON       0304
 COMBINING MACRON BELOW 0331
 COMBINING MINUS SIGN BELOW     0320
+COMBINING NOT TILDE ABOVE      034A
 COMBINING OGONEK       0328
 COMBINING OVERLINE     0305
 COMBINING PALATALIZED HOOK BELOW       0321
 COMBINING PLUS SIGN BELOW      031F
 COMBINING RETROFLEX HOOK BELOW 0322
 COMBINING REVERSED COMMA ABOVE 0314
-COMBINING RIGHT ARROW ABOVE    20D7
 COMBINING RIGHT HALF RING BELOW        0339
-COMBINING RIGHT HARPOON ABOVE  20D1
-COMBINING RIGHT TACK BELOW     0319
 COMBINING RING ABOVE   030A
 COMBINING RING BELOW   0325
 COMBINING RING OVERLAY 20D8
@@ -546,6 +609,7 @@ COMBINING TILDE BELOW       0330
 COMBINING TILDE OVERLAY        0334
 COMBINING TURNED COMMA ABOVE   0312
 COMBINING UP TACK BELOW        031D
+COMBINING UPWARDS ARROW BELOW  034E
 COMBINING VERTICAL LINE ABOVE  030D
 COMBINING VERTICAL LINE BELOW  0329
 COMBINING VERTICAL TILDE       033E
@@ -567,173 +631,224 @@ comma quotation mark, single reversed   201B
 comma quotation mark, single turned    2018
 COMMA, ARABIC  060C
 COMMA, ARMENIAN        055D
+COMMA, ETHIOPIC        1363
 comma, georgian        00B7
 COMMA, IDEOGRAPHIC     3001
 COMMA, MODIFIER LETTER REVERSED        02BD
 COMMA, MODIFIER LETTER TURNED  02BB
+COMMA, MONGOLIAN       1802
 command key    2318
+command, application program   009F
+command, operating system      009D
 COMMERCIAL AT  0040
 compass        263C
+Compatibility and Specials Area        F900
 Compatibility Forms, CJK       FE30
 Compatibility Ideographs, CJK  F900
+Compatibility Ideographs, IBM CJK      FA0E
 Compatibility Jamo, Korean Hangul      3130
 Compatibility, CJK     3300
 COMPLEMENT     2201
 complex numbers, the set of    2102
+Components, Form and Chart     2500
 composite function     2218
 composition circle, jis        20DD
+COMPOSITION SYMBOL     2384
 conductance    2127
 CONICAL TAPER  2332
 CONJUGATE MATRIX, HERMITIAN    22B9
+conjunction    2227
 CONJUNCTION    260C
 CONTAINS AS MEMBER     220B
+CONTAINS AS MEMBER, SMALL      220D
 CONTAINS AS NORMAL SUBGROUP    22B3
+CONTINUOUS UNDERLINE SYMBOL    2381
 continuum, second transfinite cardinal 2136
 CONTOUR INTEGRAL       222E
-CONTOUR INTEGRAL, ANTICLOCKWISE        2233
 CONTOUR INTEGRAL, CLOCKWISE    2232
+Control Code Graphics  25F0
 Control Codes, ASCII C0        0000
 Control Codes, C1      0080
-Control Codes, Graphic Symbols for     2400
+Control Codes, Graphic Pictures for    2400
+Control Codes, Graphics for    237B
+control sequence introducer    009B
+control string, device 0090
+control, graphic for   2388
+Control, Syriac Format 070F
 Controls and Basic Latin, C0   0000
 Controls and Latin-1 Supplement, C1    0080
 Controls, Bidirectional Formatting     202A
+Controls, Mongolian Format     180B
 COPRODUCT, N-ARY       2210
-Coptic-Unique Letters  03E2
+Coptic, Greek and      0370
+Coptic-unique Letters  03E2
 COPYRIGHT SIGN 00A9
 COPYRIGHT, SOUND RECORDING     2117
 CORNER BRACKET, LEFT   300C
 CORNER BRACKET, LEFT WHITE     300E
 CORNER, TOP LEFT       231C
+CORPORATION, SQUARE    337F
 CORRESPONDS TO 2258
 corresponds to 2259
+costa rican currency   20A1
 countable, first transfinite cardinal  2135
 COUNTERBORE    2334
-counterclockwise arrow above, combining        20D4
-counterclockwise contour integral      2233
-counterclockwise ring overlay, combining       20DA
 COUNTERSINK    2335
+cr     000D
 CRESCENT, STAR AND     262A
 Croatian Digraphs Matching Serbian Cyrillic Letters    01C4
+Croatian, Additions for Slovenian and  0200
 CROP, TOP LEFT 230F
+CROSS ACCENT, MODIFIER LETTER  02DF
 Cross Dingbats 2719
 CROSS OF JERUSALEM     2629
 CROSS OF LORRAINE      2628
 cross ratio    211E
+CROSS, EAST SYRIAC     2671
 CROSS, LATIN   271D
+cross, long    2020
 CROSS, MALTESE 2720
 CROSS, ORTHODOX        2626
 cross, st. andrew's    2613
+CROSS, WEST SYRIAC     2670
+CROSSBONES, SKULL AND  2620
+crosshatch     0023
 CRUZEIRO SIGN  20A2
 CUBE ROOT      221B
 cubed  00B3
 cup    222A
 CUP, SQUARE    2294
+curly bracket, closing 007D
 CURLY BRACKET, LEFT    007B
 curly bracket, opening 007B
+CURLY BRACKET, RIGHT   007D
 CURLY LOGICAL AND      22CF
 CURLY LOGICAL OR       22CE
 CURRENCY SIGN  00A4
+Currency Signs, Bengali        09F2
 CURRENCY SYMBOL BAHT, THAI     0E3F
 currency symbol, florin        0192
 Currency Symbols       20A0
+currency, brazilian    20A2
+currency, costa rican  20A1
+currency, el salvadorian       20A1
+currency, euro european        20AC
+currency, french       20A3
+currency, greek        20AF
+currency, hebrew       20AA
+currency, indian       20A8
+currency, israeli      20AA
+currency, italian      20A4
+currency, korean       20A9
+currency, laotian      20AD
+currency, mongolian    20AE
+currency, nigerian     20A6
+currency, spanish      20A7
+currency, turkish      20A4
+currency, vietnamese   20AB
+CURRENT SYMBOL FORM TWO, DIRECT        2393
 current, alternating   223F
 cycle  223C
 CYLINDRICITY   232D
 Cyrillic       0400
 Cyrillic Capital Letters       0401
-CYRILLIC DASIA PNEUMATA, COMBINING     0485
-CYRILLIC PALATALIZATION, COMBINING     0484
-CYRILLIC PSILI PNEUMATA, COMBINING     0486
+Cyrillic Combining Characters  0483
+Cyrillic Extensions    0450
+Cyrillic Historic Letters      0460
 Cyrillic Small Letters 0430
-CYRILLIC THOUSANDS SIGN        0482
-CYRILLIC TITLO, COMBINING      0483
-Cyrillic, Extended     0490
+Cyrillic, Extended     048C
 d retroflex hook, latin small letter   0256
+D WITH TAIL, LATIN SMALL LETTER        0256
 D, LATIN CAPITAL LETTER AFRICAN        0189
 DAGGER 2020
 DAGGER, DOUBLE 2021
 DALET SYMBOL   2138
 DANDA, DEVANAGARI      0964
 DANDA, DEVANAGARI DOUBLE       0965
+dash, angled   00AC
 DASH, CIRCLED  229D
 DASH, EM       2014
 DASH, EN       2013
 DASH, FIGURE   2012
+dash, long     2015
 dash, quotation        2015
+dash, swung    007E
 DASH, WAVE     301C
 DASH, WAVY     3030
-DASIA PNEUMATA, COMBINING CYRILLIC     0485
-dasia, greek   0314
-DATA LINK ESCAPE       0010
-day!, have a nice      263A
+DASHED LOW LINE        FE4D
+DASHED OVERLINE        FE49
+Dashes 2010
+dasia  0314
+data link escape       0010
+DATA LINK ESCAPE, SYMBOL FOR   2410
+DAVID, STAR OF 2721
+Days, Telegraph Symbols for    33E0
+decimal point  002E
+decimal separator      002C
+DECIMAL SEPARATOR KEY SYMBOL   2396
 DECIMAL SEPARATOR, ARABIC      066B
+definition, equal to by        225C
+DEFINITION, EQUAL TO BY        225D
 DEGREE CELSIUS 2103
 DEGREE FAHRENHEIT      2109
 DEGREE SIGN    00B0
 degrees centigrade     2103
 degrees kelvin 212A
 del    2207
-DELETE 007F
+delete 007F
+DELETE FORM TWO, SYMBOL FOR    2425
 delete to the left key 232B
 delete to the right key        2326
+DELETE, SYMBOL FOR     2421
+delete, undoable       2425
 DELTA EQUAL TO 225C
 DELTA, LATIN SMALL LETTER TURNED       018D
+DENTAL CLICK, LATIN LETTER     01C0
 depth symbol   21A7
 derivative     0307
 derivative, double     0308
 derivative, fourth     20DC
 derivative, third      20DB
 DESCENDING NODE        260B
+Description Characters, Ideographic    2FF0
 Devanagari     0900
-DEVANAGARI ABBREVIATION SIGN   0970
-DEVANAGARI ACUTE ACCENT        0954
-devanagari anunasika   0901
-devanagari bindu       0902
 DEVANAGARI DANDA       0964
 Devanagari Digits      0966
 DEVANAGARI DOUBLE DANDA        0965
-DEVANAGARI GRAVE ACCENT        0953
-devanagari halant      094D
 Devanagari Letters     0905
 DEVANAGARI OM  0950
-devanagari phrase separator    0964
-DEVANAGARI SIGN ANUSVARA       0902
-DEVANAGARI SIGN AVAGRAHA       093D
-DEVANAGARI SIGN CANDRABINDU    0901
-DEVANAGARI SIGN NUKTA  093C
-DEVANAGARI SIGN VIRAMA 094D
-DEVANAGARI SIGN VISARGA        0903
-DEVANAGARI STRESS SIGN ANUDATTA        0952
-DEVANAGARI STRESS SIGN UDATTA  0951
-DEVICE CONTROL FOUR    0014
-DEVICE CONTROL ONE     0011
-DEVICE CONTROL THREE   0013
-DEVICE CONTROL TWO     0012
-dexia keraia, greek    0374
-DEZH DIGRAPH, LATIN SMALL LETTER       02A4
+device control four    0014
+DEVICE CONTROL FOUR, SYMBOL FOR        2414
+device control one     0011
+DEVICE CONTROL ONE, SYMBOL FOR 2411
+device control string  0090
+device control three   0013
+DEVICE CONTROL THREE, SYMBOL FOR       2413
+device control two     0012
+DEVICE CONTROL TWO, SYMBOL FOR 2412
 DHARMA, WHEEL OF       2638
-Diacritic-Vowel Combinations, Pinyin   01CD
+Diacritic-vowel Combinations, Pinyin   01CD
 Diacritical Marks for Symbols, Combining       20D0
 Diacritical Marks, Combining   0300
-Diacritical Marks, Double      0360
-Diacritical Marks, Enclosing   20DD
-Diacritical Marks, Generic     0300
-Diacritical Marks, Overstruck  0334
+Diacritics for Greek   0342
+Diacritics for IPA     0346
+Diacritics, Double     0360
+Diacritics, Enclosing  20DD
+Diacritics, Overstruck 0334
+Diacritics, Spacing Clones of  02D8
 DIAERESIS      00A8
 DIAERESIS BELOW, COMBINING     0324
 DIAERESIS, COMBINING   0308
 diaeresis, spacing     00A8
+DIAGONAL ELLIPSIS, UP RIGHT    22F0
+dialytika      0308
 DIALYTIKA TONOS, COMBINING GREEK       0344
-DIALYTIKA TONOS, GREEK 0385
-dialytika, greek       0308
 DIAMETER SIGN  2300
 diameter symbol        2205
 DIAMOND OPERATOR       22C4
-DIAMOND, BLACK 25C6
 DIAMOND, COMBINING ENCLOSING   20DF
-DIAMOND, WHITE 25C7
 Diamonds       25C6
+diesis 2021
 difference between     223C
 DIFFERENCE BETWEEN     224F
 difference, backward   2207
@@ -743,32 +858,37 @@ difference, symmetric     2296
 DIFFERENTIAL, PARTIAL  2202
 DIGIT SHAPES, NATIONAL 206E
 DIGIT SHAPES, NOMINAL  206F
-Digits (Persian and Urdu), Eastern Arabic-Indic        06F0
+Digits for Persian and Urdu, Eastern Arabic-Indic      06F0
 Digits, Arabic-Indic   0660
 Digits, ASCII  0030
 Digits, Bengali        09E6
 Digits, Devanagari     0966
+Digits, Dingbat Circled        2776
+Digits, Ethiopic       1369
 Digits, Gujarati       0AE6
 Digits, Gurmukhi       0A66
 Digits, Kannada        0CE6
+Digits, Khmer  17E0
 Digits, Lao    0ED0
 Digits, Malayalam      0D66
+Digits, Mongolian      1810
+Digits, Myanmar        1040
 Digits, Oriya  0B66
+Digits, Subscript      2080
+Digits, Superscript    2070
 Digits, Tamil  0BE7
 Digits, Telugu 0C66
 Digits, Thai   0E50
 Digits, Tibetan        0F20
-DIGRAPH, LATIN SMALL LETTER DEZH       02A4
-DIGRAPH, LATIN SMALL LETTER DZ 02A3
-DIGRAPH, LATIN SMALL LETTER TESH       02A7
-DIGRAPH, LATIN SMALL LETTER TS 02A6
 Digraphs Matching Serbian Cyrillic Letters, Croatian   01C4
-Digraphs, Yiddish Hebrew Ligatures or  05F0
+Digraphs, Phonetic     02A3
+Digraphs, Yiddish      05F0
 DIMENSION ORIGIN       2331
+Dingbat Circled Digits 2776
 Dingbats       2700
+Dingbats Series 100, ITC Zapf  2700
 Dingbats, Arrow        2794
 Dingbats, Asterisk     2722
-Dingbats, Check Mark   2713
 Dingbats, Cross        2719
 Dingbats, Drop-Shadowed        274D
 Dingbats, Hazard       2620
@@ -785,27 +905,29 @@ Dingbats, Vertical Bar    2758
 Dingbats, Warning      2620
 Dingbats, Weather      2600
 Dingbats, Zapf 2700
+DIRECT CURRENT SYMBOL FORM TWO 2393
 direct product 2299
 direct sum     2295
 Directional Formatting Controls        202A
 DIRECTIONAL FORMATTING, POP    202C
+DISCONTINUOUS UNDERLINE SYMBOL 2382
 discretionary hyphen   00AD
+disjunction    2228
 DITTO MARK     3003
 DIVIDES        2223
 DIVISION SIGN  00F7
 DIVISION SLASH 2215
 DIVISION SLASH, CIRCLED        2298
 DIVISION TIMES 22C7
+does not yield 22A3
 DOLLAR SIGN    0024
 DONG SIGN      20AB
+dot    002E
 DOT ABOVE      02D9
 DOT ABOVE, COMBINING   0307
 dot above, double      0308
 DOT ABOVE, LATIN CAPITAL LETTER I WITH 0130
 DOT BELOW, COMBINING   0323
-DOT LEADER, ONE        2024
-dot leader, three      2026
-DOT LEADER, TWO        2025
 DOT MINUS      2238
 DOT OPERATOR   22C5
 DOT OPERATOR, CIRCLED  2299
@@ -822,6 +944,7 @@ DOUBLE ACUTE ACCENT, COMBINING      030B
 DOUBLE ANGLE BRACKET, LEFT     300A
 DOUBLE ANGLE QUOTATION MARK, LEFT-POINTING     00AB
 DOUBLE ANGLE QUOTATION MARK, RIGHT-POINTING    00BB
+DOUBLE APOSTROPHE, MODIFIER LETTER     02EE
 DOUBLE ARCH BELOW, COMBINING INVERTED  032B
 double bar, latin letter pipe  01C2
 double comma quotation mark    201D
@@ -829,7 +952,7 @@ double comma quotation mark, low    201E
 DOUBLE DAGGER  2021
 DOUBLE DANDA, DEVANAGARI       0965
 double derivative      0308
-Double Diacritical Marks       0360
+Double Diacritics      0360
 double dot above       0308
 DOUBLE EXCLAMATION MARK        203C
 DOUBLE GRAVE ACCENT, COMBINING 030F
@@ -840,8 +963,9 @@ DOUBLE INVERTED BREVE, COMBINING    0361
 DOUBLE LOW LINE        2017
 DOUBLE LOW LINE, COMBINING     0333
 DOUBLE LOW-9 QUOTATION MARK    201E
+double obelisk 2021
 DOUBLE OVERLINE, COMBINING     033F
-double pipe, latin letter      01C1
+double pipe    01C1
 DOUBLE PRIME   2033
 DOUBLE PRIME QUOTATION MARK    301E
 DOUBLE PRIME QUOTATION MARK, LOW       301F
@@ -851,18 +975,21 @@ DOUBLE PRIME, REVERSED    2036
 DOUBLE QUOTATION MARK, LEFT    201C
 DOUBLE QUOTATION MARK, RIGHT   201D
 double reversed comma quotation mark   201F
-DOUBLE RIGHT TURNSTILE, DOUBLE VERTICAL BAR    22AB
+DOUBLE RIGHTWARDS ARROW BELOW, COMBINING       0362
 DOUBLE SUBSET  22D0
 DOUBLE SUPERSET        22D1
+DOUBLE TILDE LEFT HALF, COMBINING      FE22
 DOUBLE TILDE, COMBINING        0360
 double turned comma quotation mark     201C
 double underline       0333
 double underscore      0333
 double underscore, spacing     2017
 DOUBLE UNION   22D3
-DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE     22AB
 DOUBLE VERTICAL LINE   2016
 DOUBLE VERTICAL LINE ABOVE, COMBINING  030E
+DOUBLE VERTICAL LINE BELOW, COMBINING  0348
+DOUBLE WAVY OVERLINE   FE4C
+double-barred pipe     01C2
 DOUBLE-STRUCK CAPITAL C        2102
 DOUBLE-STRUCK CAPITAL H        210D
 DOUBLE-STRUCK CAPITAL N        2115
@@ -870,39 +997,41 @@ DOUBLE-STRUCK CAPITAL P   2119
 DOUBLE-STRUCK CAPITAL Q        211A
 DOUBLE-STRUCK CAPITAL R        211D
 DOUBLE-STRUCK CAPITAL Z        2124
-DOWN ARROWHEAD 2304
-DOWN RIGHT DIAGONAL ELLIPSIS   22F1
 DOWN TACK      22A4
 DOWN TACK BELOW, COMBINING     031E
-DOWN TACK, MODIFIER LETTER     02D5
-downstile, apl 230A
+down, page     21DF
+DRACHMA SIGN   20AF
 dram   0292
-drop, minim    264F
-Drop-Shadowed Dingbats 274D
-DZ DIGRAPH, LATIN SMALL LETTER 02A3
-DZ, LATIN SMALL LETTER 01F3
+drop   264F
+Duplicates from Big 5  FA0C
+E, LATIN CAPITAL LETTER OPEN   0190
 E, LATIN CAPITAL LETTER REVERSED       018E
-E, latin capital letter turned 018E
+e, latin capital letter turned 018E
+E, LATIN SMALL LETTER CLOSED OPEN      029A
+E, LATIN SMALL LETTER CLOSED REVERSED OPEN     025E
+E, LATIN SMALL LETTER OPEN     025B
 E, LATIN SMALL LETTER REVERSED 0258
+E, LATIN SMALL LETTER REVERSED OPEN    025C
 E, LATIN SMALL LETTER TURNED   01DD
 E, SCRIPT CAPITAL      2130
 E, SCRIPT SMALL        212F
 EARTH  2641
-Eastern Arabic-Indic Digits (Persian and Urdu) 06F0
+Eastern Arabic-Indic Digits for Persian and Urdu       06F0
+ecu    20A0
 EIGHTH NOTE    266A
 EIGHTH NOTES, BEAMED   266B
-EIGHTH, VULGAR FRACTION ONE    215B
-EIGHTHS, VULGAR FRACTION FIVE  215D
-EIGHTHS, VULGAR FRACTION SEVEN 215E
-EIGHTHS, VULGAR FRACTION THREE 215C
+Eighths, Fractions     215B
 EK ONKAR, GURMUKHI     0A74
+el salvadorian currency        20A1
+ELECTRIC ARROW 2301
 electro-magnetic force, emf    2130
 electrolysis   21AF
+Electrotechnical Symbols from IR 181   238D
 ELEMENT OF     2208
+ELEMENT OF, NOT AN     2209
 ELEMENT OF, SMALL      220A
-ELLIPSIS, DOWN RIGHT DIAGONAL  22F1
+element, unique        2129
 ELLIPSIS, HORIZONTAL   2026
-ELLIPSIS, LAO  0EAF
 ELLIPSIS, MIDLINE HORIZONTAL   22EF
 ELLIPSIS, UP RIGHT DIAGONAL    22F0
 ELLIPSIS, VERTICAL     22EE
@@ -912,8 +1041,9 @@ EM QUAD    2001
 EM SPACE       2003
 EMBEDDING, LEFT-TO-RIGHT       202A
 EMBEDDING, RIGHT-TO-LEFT       202B
-emf (electro-magnetic force)   2130
+emf    2130
 EMPHASIS MARK, ARMENIAN        055B
+EMPHASIS SYMBOL        2383
 EMPTY SET      2205
 EN DASH        2013
 EN QUAD        2000
@@ -922,21 +1052,39 @@ Enclosed Alphanumerics   2460
 Enclosed CJK Letters and Ideographs    3200
 ENCLOSING CIRCLE BACKSLASH, COMBINING  20E0
 ENCLOSING CIRCLE, COMBINING    20DD
-Enclosing Diacritical Marks    20DD
+Enclosing Diacritics   20DD
 ENCLOSING DIAMOND, COMBINING   20DF
+ENCLOSING KEYCAP, COMBINING    20E3
+ENCLOSING SCREEN, COMBINING    20E2
 ENCLOSING SQUARE, COMBINING    20DE
-END OF MEDIUM  0019
+end    21F2
+end of guarded area    0097
+end of medium  0019
+end of medium, graphic for     237F
+END OF MEDIUM, SYMBOL FOR      2419
 END OF PROOF   220E
-END OF TEXT    0003
-END OF TRANSMISSION    0004
-END OF TRANSMISSION BLOCK      0017
+end of selected area   0087
+end of text    0003
+END OF TEXT, SYMBOL FOR        2403
+end of transmission    0004
+end of transmission block      0017
+END OF TRANSMISSION BLOCK, SYMBOL FOR  2417
+end of transmission, graphic for       2301
+END OF TRANSMISSION, SYMBOL FOR        2404
 ENG, LATIN SMALL LETTER        014B
 enotikon, greek        203F
-ENQUIRY        0005
+enquiry        0005
+ENQUIRY, SYMBOL FOR    2405
 enter key      2324
+ENTER SYMBOL   2386
 ENVELOPE       2709
+epsilon, latin capital letter  0190
 epsilon, latin small letter    025B
-EQUAL AND PARALLEL TO  22D5
+epsilon, latin small letter closed     029A
+epsilon, latin small letter closed reversed    025E
+epsilon, reversed straight     220D
+epsilon, straight      220A
+EQUAL TO ABOVE, COMBINING ALMOST       034C
 equal to by definition 225C
 EQUAL TO BY DEFINITION 225D
 EQUAL TO, ALL  224C
@@ -946,15 +1094,18 @@ equal to, approximately  2257
 EQUAL TO, ASYMPTOTICALLY       2243
 EQUAL TO, DELTA        225C
 EQUAL TO, GEOMETRICALLY        2251
+EQUAL TO, GREATER-THAN OR      2265
+EQUAL TO, LESS-THAN OR 2264
 EQUAL TO, NOT  2260
 EQUAL TO, QUESTIONED   225F
 EQUAL TO, RING 2257
 EQUAL TO, RING IN      2256
 EQUALS COLON   2255
 EQUALS SIGN    003D
+EQUALS SIGN BELOW, COMBINING   0347
+EQUALS SIGN, SUBSCRIPT 208C
+EQUALS SIGN, SUPERSCRIPT       207C
 EQUALS, CIRCLED        229C
-EQUALS, COLON  2254
-equals, nearly 2252
 EQUALS, REVERSED TILDE 22CD
 EQUALS, STAR   225B
 equiangular    225C
@@ -965,20 +1116,35 @@ EQUIVALENT TO, STRICTLY  2263
 Era Names, Japanese    337B
 ERASE TO THE LEFT      232B
 ERASE TO THE RIGHT     2326
-erotimatiko, greek     037E
 error  212F
-ESCAPE 001B
+escape 001B
+escape, data link      0010
+ESCAPE, SYMBOL FOR     241B
+ESCAPE, SYMBOL FOR DATA LINK   2410
 escudo 0024
 ESH LOOP, LATIN LETTER REVERSED        01AA
 ESH, LATIN CAPITAL LETTER      01A9
 ESH, LATIN SMALL LETTER        0283
-ess-zed        00DF
+ESH, LATIN SMALL LETTER SQUAT REVERSED 0285
 ESTIMATED SYMBOL       212E
 ESTIMATES      2259
+eszett 00DF
+ET, TIRONIAN SIGN      204A
 ETH, LATIN SMALL LETTER        00F0
+ethel  0153
+Ethiopic       1200
+ETHIOPIC COLON 1365
+ETHIOPIC COMMA 1363
+Ethiopic Digits        1369
+ETHIOPIC FULL STOP     1362
+ETHIOPIC QUESTION MARK 1367
+ETHIOPIC SEMICOLON     1364
+ETHIOPIC WORDSPACE     1361
 EULER CONSTANT 2107
-EURO-CURRENCY SIGN     20A0
+EURO SIGN      20AC
 European Latin 0100
+european paragraph sign        00A7
+european section sign  00B6
 EXCESS 2239
 EXCLAMATION MARK       0021
 EXCLAMATION MARK ORNAMENT, HEAVY       2762
@@ -986,19 +1152,25 @@ EXCLAMATION MARK, ARMENIAN       055C
 EXCLAMATION MARK, DOUBLE       203C
 EXCLAMATION MARK, INVERTED     00A1
 exclamation mark, latin letter 01C3
+EXCLAMATION MARK, QUESTION     2048
+EXCLAMATION QUESTION MARK      2049
 EXISTS, THERE  2203
 Extended Additional, Latin     1E00
-Extended Arabic Letters        0671
-Extended Cyrillic      0490
+Extended Arabic        0671
+Extended Cyrillic      048C
+Extended for Minnan and Hakka, Chinese Bopomofo        31A0
 Extended Greek 1F00
-Extended Latin 0180
 Extended-A, Latin      0100
 Extended-B, Latin      0180
+Extension A, CJK Unified Ideographs    3400
+Extensions for Sanskrit and Tibetan, Mongolian 1880
+Extensions for Vietnamese, Latin       1EA0
+Extensions, Cyrillic   0450
 Extensions, IPA        0250
 EZH REVERSED, LATIN SMALL LETTER       01B9
 EZH, LATIN CAPITAL LETTER      01B7
 EZH, LATIN SMALL LETTER        0292
-f, latin small letter script   0192
+F WITH HOOK, LATIN SMALL LETTER        0192
 F, SCRIPT CAPITAL      2131
 F, TURNED CAPITAL      2132
 FACE, BLACK SMILING    263B
@@ -1007,84 +1179,69 @@ FACE, WHITE FROWNING    2639
 FACE, WHITE SMILING    263A
 factorial      0021
 FAHRENHEIT, DEGREE     2109
-FARSI SYMBOL   262B
 feet   2032
 FEMALE SIGN    2640
 FEMININE ORDINAL INDICATOR     00AA
-FIFTH, VULGAR FRACTION ONE     2155
-FIFTHS, VULGAR FRACTION FOUR   2158
-FIFTHS, VULGAR FRACTION THREE  2157
-FIFTHS, VULGAR FRACTION TWO    2156
+Fifths, Fractions      2155
 FIGURE DASH    2012
 FIGURE SPACE   2007
-FILE SEPARATOR 001C
-FILL SPACE, IDEOGRAPHIC HALF   303F
-FILLER, HANGUL 3164
-FILLER, HANGUL CHOSEONG        115F
-FILLER, HANGUL JUNGSEONG       1160
+file separator 001C
+FILE SEPARATOR, SYMBOL FOR     241C
 Finger Dingbats, Pointing Index        261A
 FIRST QUARTER MOON     263D
 first transfinite cardinal (countable) 2135
 FISHEYE        25C9
-FIVE EIGHTHS, VULGAR FRACTION  215D
+fist   261E
 FIVE POINTED STAR, ARABIC      066D
-FIVE SIXTHS, VULGAR FRACTION   215A
+FIVE, LATIN SMALL LETTER TONE  01BD
 FLAT SIGN, MUSIC       266D
 FLOOR, LEFT    230A
+FLORAL HEART BULLET, REVERSED ROTATED  2619
 florin currency symbol 0192
-FONGMAN, THAI CHARACTER        0E4F
+folder 0192
 FOR ALL        2200
 FORCES 22A9
 Form and Chart Components      2500
-FORM FEED      000C
+form feed      000C
 form feed      21A1
+FORM FEED, SYMBOL FOR  240C
+Format Control, Syriac 070F
+Format Controls, Mongolian     180B
+Formatting Characters  200C
+Formatting Characters  2028
 Formatting Controls, Bidirectional     202A
 FORMATTING, POP DIRECTIONAL    202C
-forward arrow indicator        25BB
 forward difference     2206
 FOUR DOTS ABOVE, COMBINING     20DC
-FOUR FIFTHS, VULGAR FRACTION   2158
 FOUR-PER-EM SPACE      2005
 fourier transform      2131
 fourth derivative      20DC
 FOURTH ROOT    221C
 fourth transfinite cardinal    2138
-FRACTION FIVE EIGHTHS, VULGAR  215D
-FRACTION FIVE SIXTHS, VULGAR   215A
-FRACTION FOUR FIFTHS, VULGAR   2158
+Fourths, Fractions     00BC
 FRACTION NUMERATOR ONE 215F
-FRACTION ONE EIGHTH, VULGAR    215B
-FRACTION ONE FIFTH, VULGAR     2155
 FRACTION ONE HALF, VULGAR      00BD
 FRACTION ONE QUARTER, VULGAR   00BC
-FRACTION ONE SIXTH, VULGAR     2159
-FRACTION ONE THIRD, VULGAR     2153
-FRACTION SEVEN EIGHTHS, VULGAR 215E
 FRACTION SLASH 2044
-FRACTION THREE EIGHTHS, VULGAR 215C
-FRACTION THREE FIFTHS, VULGAR  2157
 FRACTION THREE QUARTERS, VULGAR        00BE
-FRACTION TWO FIFTHS, VULGAR    2156
-FRACTION TWO THIRDS, VULGAR    2154
 Fractions      2153
 FRANC SIGN, FRENCH     20A3
+FRICATIVE, LATIN LETTER PHARYNGEAL VOICED      0295
 FROWN  2322
 FROWNING FACE, WHITE   2639
 FULL BLOCK     2588
 FULL STOP      002E
 FULL STOP, ARABIC      06D4
 FULL STOP, ARMENIAN    0589
+FULL STOP, ETHIOPIC    1362
+full stop, georgian    0589
 FULL STOP, IDEOGRAPHIC 3002
+FULL STOP, MONGOLIAN   1803
 Fullwidth ASCII Variants       FF01
 Fullwidth Forms, Halfwidth and FF00
 Fullwidth Symbol Variants      FFE0
 function symbol        0192
-function, bernoulli    212C
-function, composite    2218
 function, gamma        0393
-function, hamiltonian  210B
-function, weierstrass elliptic 2118
-Functional Symbols, APL        2336
 G, LATIN LETTER SMALL CAPITAL  0262
 G, LATIN SMALL LETTER SCRIPT   0261
 G, SCRIPT SMALL        210A
@@ -1092,30 +1249,35 @@ gamma function  0393
 GAMMA, LATIN CAPITAL LETTER    0194
 GAMMA, LATIN SMALL LETTER      0263
 gamma, latin small letter baby 0264
+GAMMA, MODIFIER LETTER SMALL   02E0
 GB 2312 (Chinese), Based on    3100
 GEMINI 264A
 General Punctuation    2000
-Generic Diacritical Marks      0300
+General Scripts Area   0000
 GEOMETRIC PROPORTION   223A
 Geometric Shapes       25A0
 GEOMETRICALLY EQUAL TO 2251
 GEOMETRICALLY EQUIVALENT TO    224E
 Georgian       10A0
-Georgian Archaic Uppercase Alphabet (Khutsuri) 10A0
 Georgian Capital Letters       10A0
 georgian comma 00B7
-Georgian Modern Lowercase Alphabet (Mkhedruli) 10D0
+georgian full stop     0589
 GEORGIAN PARAGRAPH SEPARATOR   10FB
 Georgian Small Letters 10D0
-GERESH, HEBREW PUNCTUATION     05F3
-GERSHAYIM, HEBREW PUNCTUATION  05F4
+german mark    2133
 GETA MARK      3013
 GIMEL SYMBOL   2137
+glottal stop   02BC
 GLOTTAL STOP, LATIN LETTER     0294
+GLOTTAL STOP, LATIN LETTER INVERTED    0296
 glottal stop, latin letter reversed    0295
 GLOTTAL STOP, MODIFIER LETTER  02C0
-Glyphs for Vertical Variants   FE30
-Graphic Symbols for Control Codes      2400
+GLOTTAL STOP, MODIFIER LETTER REVERSED 02C1
+GLOTTAL STOP, MODIFIER LETTER SMALL REVERSED   02E4
+Golden Number Runes    16EE
+Graphic Pictures for Control Codes     2400
+Graphics for Control Codes     237B
+Graphics, Control Code 25F0
 GRAVE ACCENT   0060
 GRAVE ACCENT BELOW, COMBINING  0316
 GRAVE ACCENT, COMBINING        0300
@@ -1123,47 +1285,34 @@ GRAVE ACCENT, COMBINING DOUBLE  030F
 GRAVE ACCENT, DEVANAGARI       0953
 GRAVE ACCENT, MODIFIER LETTER  02CB
 GRAVE ACCENT, MODIFIER LETTER LOW      02CE
+grave accent, swedish  02DF
 GRAVE TONE MARK, COMBINING     0340
 grave, spacing 0060
 GREATER-THAN OR EQUAL TO       2265
 GREATER-THAN SIGN      003E
-GREATER-THAN WITH DOT  22D7
 GREATER-THAN, MUCH     226B
 GREATER-THAN, VERY MUCH        22D9
-Greek  0370
-GREEK ANO TELEIA       0387
-greek aristeri keraia  0375
+Greek and Coptic       0370
 Greek Capital Letters  0391
-greek combining iota below     0345
-greek dasia    0314
-greek dexia keraia     0374
-greek dialytika        0308
-GREEK DIALYTIKA TONOS  0385
+greek currency 20AF
 GREEK DIALYTIKA TONOS, COMBINING       0344
 greek enotikon 203F
-greek erotimatiko      037E
-greek iota adscript    0399
-greek iota subscript   0345
 GREEK KORONIS, COMBINING       0343
-GREEK LOWER NUMERAL SIGN       0375
 greek middle dot       00B7
-GREEK NUMERAL SIGN     0374
-greek oxia     0301
+greek non-spacing iota below   0345
 GREEK PERISPOMENI, COMBINING   0342
-greek psili    0313
 GREEK QUESTION MARK    037E
 GREEK SMALL LETTER IOTA, TURNED        2129
 Greek Small Letters    03B1
 Greek Symbols  03D0
-greek tonos    030D
-GREEK TONOS    0384
-greek upper numeral sign       0374
-greek varia    0300
-greek vrachy   0306
-GREEK YPOGEGRAMMENI    037A
 GREEK YPOGEGRAMMENI, COMBINING 0345
+Greek, Diacritics for  0342
 Greek, Extended        1F00
-GROUP SEPARATOR        001D
+group lock     21F0
+group separator        001D
+GROUP SEPARATOR, SYMBOL FOR    241D
+guarded area, end of   0097
+guarded area, start of 0096
 guillemet, left pointing       00AB
 guillemet, left pointing single        2039
 guillemet, right pointing      00BB
@@ -1171,30 +1320,19 @@ guillemet, right pointing single        203A
 Gujarati       0A80
 Gujarati Digits        0AE6
 Gujarati Letters       0A85
-GUJARATI OM    0AD0
-GUJARATI SIGN ANUSVARA 0A82
-GUJARATI SIGN AVAGRAHA 0ABD
-GUJARATI SIGN CANDRABINDU      0A81
-GUJARATI SIGN NUKTA    0ABC
-GUJARATI SIGN VIRAMA   0ACD
-GUJARATI SIGN VISARGA  0A83
 Gurmukhi       0A00
-GURMUKHI ADDAK 0A71
 Gurmukhi Digits        0A66
-GURMUKHI EK ONKAR      0A74
 Gurmukhi Letters       0A05
-GURMUKHI SIGN BINDI    0A02
-GURMUKHI SIGN NUKTA    0A3C
-GURMUKHI SIGN VIRAMA   0A4D
-GURMUKHI TIPPI 0A70
 H, BLACK-LETTER CAPITAL        210C
 H, DOUBLE-STRUCK CAPITAL       210D
 H, LATIN LETTER SMALL CAPITAL  029C
 H, LATIN SMALL LETTER TURNED   0265
+H, MODIFIER LETTER SMALL       02B0
 H, SCRIPT CAPITAL      210B
 hacek, combining       030C
 hacek, modifier letter 02C7
 HAIR SPACE     200A
+Hakka, Chinese Bopomofo Extended for Minnan and        31A0
 halant, bengali        09CD
 halant, devanagari     094D
 HALF FILL SPACE, IDEOGRAPHIC   303F
@@ -1202,12 +1340,11 @@ HALF INTEGRAL, TOP      2320
 Half Marks, Combining  FE20
 HALF RING BELOW, COMBINING LEFT        031C
 HALF RING BELOW, COMBINING RIGHT       0339
-HALF RING, ARMENIAN MODIFIER LETTER LEFT       0559
-half ring, armenian modifier letter right      055A
 HALF RING, MODIFIER LETTER CENTRED LEFT        02D3
 HALF RING, MODIFIER LETTER LEFT        02BF
-HALF RING, MODIFIER LETTER RIGHT       02BE
 HALF TRIANGULAR COLON, MODIFIER LETTER 02D1
+HALF, COMBINING DOUBLE TILDE LEFT      FE22
+HALF, COMBINING LIGATURE LEFT  FE20
 HALF, VULGAR FRACTION ONE      00BD
 Halfwidth and Fullwidth Forms  FF00
 Halfwidth Japanese Katakana Variants   FF61
@@ -1215,119 +1352,134 @@ Halfwidth Korean Hangul Variants      FFA0
 hamiltonian function   210B
 HAMMER AND SICKLE      262D
 Han Ideographs 4E00
+Hand Symbols, Pointing 261A
 HAND, VICTORY  270C
 HAND, WRITING  270D
 HANGUL CHOSEONG FILLER 115F
-Hangul Combining Alphabet, Korean      1100
 Hangul Compatibility Jamo, Korean      3130
 Hangul Elements, Circled Korean        3260
 Hangul Elements, Parenthesized Korean  3200
 HANGUL FILLER  3164
+Hangul Jamo Combining Alphabet, Korean 1100
 HANGUL JUNGSEONG FILLER        1160
-Hangul Letters (Jamo), Korean  1100
+Hangul Syllables Area, Korean  AC00
 Hangul Syllables, Circled Korean       326E
-Hangul Syllables, Korean       AC00
 Hangul Syllables, Parenthesized Korean 320E
 Hangul Variants, Halfwidth Korean      FFA0
 Hangul, Based on KS C 5601 (Korean)    3130
-Hangzhou-Style Numerals        3021
-Harakaat, Arabic       064B
+Hangzhou-style Numerals        3021
 HARPOON ABOVE, COMBINING LEFT  20D0
-HARPOON ABOVE, COMBINING RIGHT 20D1
-hartsakan nshan, armenian      055E
+hash   0023
 hat    0302
+hat    2229
 have a nice day!       263A
 Hazard Dingbats        2620
-Heart Dingbats 2763
+heading, start of      0001
+HEADING, SYMBOL FOR START OF   2401
+Heart Ornaments        2763
+HEAVY BALLOT X 2718
+HEAVY CHECK MARK       2714
+HEAVY MULTIPLICATION X 2716
 Hebrew 0590
-Hebrew Accents or Cantillation marks   0591
-hebrew legarmeh        05C0
+Hebrew Cantillation Marks      0591
+hebrew currency        20AA
 Hebrew Letters 05D0
-Hebrew Ligatures or Digraphs, Yiddish  05F0
-Hebrew Points and Punctuation  05B0
-HEBREW PUNCTUATION GERESH      05F3
-HEBREW PUNCTUATION GERSHAYIM   05F4
-HEBREW PUNCTUATION MAQAF       05BE
-HEBREW PUNCTUATION PASEQ       05C0
-HEBREW PUNCTUATION SOF PASUQ   05C3
+Hebrew Points  05B0
+Hebrew Presentation Forms      FB1D
+HELM SYMBOL    2388
 HERMITIAN CONJUGATE MATRIX     22B9
-High Surrogates        DB80
-High Surrogates, Private Use   DB80
-HIGH TONE BAR, MODIFIER LETTER 02E6
+High Surrogates        D800
 HIGH-REVERSED-9 QUOTATION MARK, DOUBLE 201F
 HIGH-REVERSED-9 QUOTATION MARK, SINGLE 201B
 higher rank than       227B
+hilbert space  210C
 HIRAGANA ITERATION MARK        309D
 Hiragana, Based on JIS X 0208 (Japanese)       3040
 histogram marker       25AE
+Historic Letters, Cyrillic     0460
 home   21B8
+home   21F1
 HOMOTHETIC     223B
+HOMOTHETIC ABOVE, COMBINING    034B
 HOOK ABOVE, COMBINING  0309
 HOOK BELOW, COMBINING PALATALIZED      0321
 HOOK BELOW, COMBINING RETROFLEX        0322
-hook, latin small letter d retroflex   0256
 HOOK, MODIFIER LETTER RHOTIC   02DE
+hook, nasal    0328
 HORIZONTAL BAR 2015
 HORIZONTAL ELLIPSIS    2026
 HORIZONTAL ELLIPSIS, MIDLINE   22EF
-HORIZONTAL TABULATION  0009
+horizontal tabulation  0009
+HORIZONTAL TABULATION, SYMBOL FOR      2409
 HORN, COMBINING        031B
+HORN, LATIN SMALL LETTER RAMS  0264
 HOT SPRINGS    2668
 HOURGLASS      231B
+Hours, Telegraph Symbols for   3358
 HOUSE  2302
 HV, LATIN SMALL LETTER 0195
+HWAIR, LATIN CAPITAL LETTER    01F6
 HYPHEN 2010
 HYPHEN BULLET  2043
 hyphen or minus sign   002D
+HYPHEN, ARMENIAN       058A
 hyphen, discretionary  00AD
 HYPHEN, NON-BREAKING   2011
 HYPHEN, SOFT   00AD
 HYPHEN-MINUS   002D
 HYPHENATION POINT      2027
 hyphus 002D
-i dot, latin capital letter    0130
+HYSTERESIS SYMBOL      238E
 I WITH DOT ABOVE, LATIN CAPITAL LETTER 0130
 I, BLACK-LETTER CAPITAL        2111
 I, LATIN LETTER SMALL CAPITAL  026A
 I, LATIN SMALL LETTER DOTLESS  0131
 I, SCRIPT CAPITAL      2110
+IBM CJK Compatibility Ideographs       FA0E
 IDENTICAL TO   2261
 Ideographic Annotation, Japanese Kanbun        3190
 IDEOGRAPHIC CLOSING MARK       3006
 IDEOGRAPHIC COMMA      3001
+Ideographic Description Characters     2FF0
 IDEOGRAPHIC FULL STOP  3002
 IDEOGRAPHIC HALF FILL SPACE    303F
 IDEOGRAPHIC ITERATION MARK     3005
 IDEOGRAPHIC NUMBER ZERO        3007
 IDEOGRAPHIC SPACE      3000
 Ideographic Tone Marks 302A
+Ideographs Area, CJK   3400
+Ideographs Extension A, CJK Unified    3400
 Ideographs, Circled    3280
 Ideographs, CJK Compatibility  F900
 Ideographs, CJK Unified        4E00
 Ideographs, Enclosed CJK Letters and   3200
 Ideographs, Han        4E00
+Ideographs, IBM CJK Compatibility      FA0E
 Ideographs, Parenthesized      3220
+IDLE, SYMBOL FOR SYNCHRONOUS   2416
+idle, synchronous      0016
 IJ, LATIN SMALL LIGATURE       0133
 IMAGE OF       22B7
 IMAGE OF, SQUARE       228F
 imaginary part 2111
-implies, yields, proves        22A2
+implies        22A2
 inches 2033
+included in set        2282
+includes in set        2283
+incorporated, japanese 337F
 INCREMENT      2206
+index  0084
 Index Finger Dingbats, Pointing        261A
-indicator, backward arrow      25C5
-INDICATOR, FEMININE ORDINAL    00AA
-indicator, forward arrow       25BB
-INDICATOR, MASCULINE ORDINAL   00BA
-INDICATOR, POSITION    2316
+indian currency        20A8
 inferior order to, of  2134
 INFINITY       221E
+INFORMATION SOURCE     2139
 INHIBIT ARABIC FORM SHAPING    206C
 INHIBIT SYMMETRIC SWAPPING     206A
 INSERTION POINT, CARET 2041
+INSERTION SYMBOL       2380
 integers, the set of   2124
 INTEGRAL       222B
-INTEGRAL, ANTICLOCKWISE CONTOUR        2233
 INTEGRAL, CLOCKWISE    2231
 INTEGRAL, CLOCKWISE CONTOUR    2232
 INTEGRAL, CONTOUR      222E
@@ -1338,32 +1490,37 @@ INTEGRAL, TOP HALF      2320
 INTEGRAL, TRIPLE       222D
 INTEGRAL, VOLUME       2230
 INTERCALATE    22BA
+Interlinear Annotation FFF9
 International Phonetic Alphabet        0250
 INTERROBANG    203D
 INTERSECTION   2229
 INTERSECTION, DOUBLE   22D2
 INTERSECTION, N-ARY    22C2
 intersection, proper   22D4
+introducer, control sequence   009B
+introducer, single character   009A
 Inverse Numbers, Circled       2776
-Inverse Sans-Serif Numbers, Circled    278A
 INVERTED BREVE BELOW, COMBINING        032F
 INVERTED BREVE, COMBINING      0311
 INVERTED BREVE, COMBINING DOUBLE       0361
 INVERTED BRIDGE BELOW, COMBINING       033A
 INVERTED DOUBLE ARCH BELOW, COMBINING  032B
 INVERTED EXCLAMATION MARK      00A1
+INVERTED GLOTTAL STOP, LATIN LETTER    0296
 INVERTED LAZY S        223E
 INVERTED OHM SIGN      2127
 INVERTED QUESTION MARK 00BF
 INVERTED R, LATIN LETTER SMALL CAPITAL 0281
-iota below, greek combining    0345
-iota adscript, greek   0399
-iota subscript, greek  0345
+INVERTED R, MODIFIER LETTER SMALL CAPITAL      02B6
+iota below, greek non-spacing  0345
 IOTA, LATIN CAPITAL LETTER     0196
 IOTA, LATIN SMALL LETTER       0269
 IOTA, TURNED GREEK SMALL LETTER        2129
 IPA Extensions 0250
+IPA, Diacritics for    0346
+IR 181, Electrotechnical Symbols from  238D
 iran, symbol of        262B
+irish punt     00A3
 ISCII 1988 (Devanagari), Based on      0901
 ISO 8859-1 (Latin-1), Based on 00A0
 ISO 8859-2, -3, -4, -9 (European Latin), Based on      0100
@@ -1371,16 +1528,22 @@ ISO 8859-5 (Cyrillic), Based on 0400
 ISO 8859-6 (Arabic), Based on  0600
 ISO 8859-7 (Greek), Based on   0370
 ISO 8859-8 (Hebrew), Based on  05D0
-ISSHAR, BENGALI        09FA
-ISSHAR, ORIYA  0B70
+ISO 9995-7, Keyboard Symbols from      2380
+ISO 9995-7, Keyboard Symbols from      2396
+israeli currency       20AA
+italian currency       20A4
+ITC Zapf Dingbats Series 100   2700
 ITERATION MARK, HIRAGANA       309D
 ITERATION MARK, IDEOGRAPHIC    3005
 ITERATION MARK, KATAKANA       30FD
+ivy leaf       2767
+J, MODIFIER LETTER SMALL       02B2
 jack   2749
+Jamo Combining Alphabet, Korean Hangul 1100
 Jamo, Korean Hangul Compatibility      3130
-Jamo, Korean Hangul Letters    1100
 Japanese Era Names     337B
 Japanese Hiragana      3040
+japanese incorporated  337F
 JAPANESE INDUSTRIAL STANDARD SYMBOL    3004
 Japanese Kanbun (Ideographic Annotation)       3190
 Japanese Katakana      30A0
@@ -1390,20 +1553,19 @@ Japanese Katakana, Circled      32D0
 japanese kome  203B
 JERUSALEM, CROSS OF    2629
 jis composition circle 20DD
-JIS X 0208 (Japanese Hiragana), Based on       3040
+JIS X 0208, Based on   3040
 JOINER, ZERO WIDTH     200D
 jot, apl       2218
 JUPITER        2643
+justification, character tabulation with       0089
 K, LATIN SMALL LETTER TURNED   029E
-KANA REPEAT MARK, VERTICAL     3031
+kabusiki-gaisya        337F
+Kana Repeat Marks      3031
 Kanbun (Ideographic Annotation), Japanese      3190
+Kangxi Radicals        2F00
 Kannada        0C80
 Kannada Digits 0CE6
 Kannada Letters        0C85
-KANNADA SIGN ANUSVARA  0C82
-KANNADA SIGN VIRAMA    0CCD
-KANNADA SIGN VISARGA   0C83
-kashida, arabic        0640
 KATAKANA ITERATION MARK        30FD
 KATAKANA MIDDLE DOT    30FB
 Katakana Variants, Halfwidth Japanese  FF61
@@ -1414,9 +1576,9 @@ KATAKANA-HIRAGANA PROLONGED SOUND MARK    30FC
 KATAKANA-HIRAGANA VOICED SOUND MARK    309B
 KATAKANA-HIRAGANA VOICED SOUND MARK, COMBINING 3099
 KELVIN SIGN    212A
-keraia, greek aristeri 0375
-keraia, greek dexia    0374
 ket    232A
+KEY SYMBOL, ALTERNATIVE        2387
+KEY SYMBOL, DECIMAL SEPARATOR  2396
 key, clear     2327
 key, command   2318
 key, delete to the left        232B
@@ -1424,142 +1586,70 @@ key, delete to the right       2326
 key, enter     2324
 KEY, OPTION    2325
 KEYBOARD       2328
-Khutsuri, Georgian Archaic Uppercase Alphabet  10A0
+Keyboard Symbols from ISO 9995-7       2380
+Keyboard Symbols from ISO 9995-7       2396
+KEYCAP, COMBINING ENCLOSING    20E3
+Khmer  1780
+Khmer Digits   17E0
+KIP SIGN       20AD
 kome, japanese 203B
-Korean Hangul Combining Alphabet       1100
+Koranic Annotation Signs       06D6
+korean currency        20A9
+Korean Hangul Compatibility Jamo       3130
 Korean Hangul Elements, Circled        3260
 Korean Hangul Elements, Parenthesized  3200
-Korean Hangul Letters (Jamo)   1100
-Korean Hangul Syllables        AC00
+Korean Hangul Jamo Combining Alphabet  1100
+Korean Hangul Syllables Area   AC00
 Korean Hangul Syllables, Circled       326E
 Korean Hangul Syllables, Parenthesized 320E
 Korean Hangul Variants, Halfwidth      FFA0
 KOREAN STANDARD SYMBOL 327F
 KORONIS, COMBINING GREEK       0343
+KRA, LATIN SMALL LETTER        0138
 KS C 5601 (Korean Hangul), Based on    3130
 L B BAR SYMBOL 2114
+L WITH MIDDLE DOT, LATIN SMALL LETTER  0140
+L WITH MIDDLE TILDE, LATIN SMALL LETTER        026B
 L, LATIN LETTER SMALL CAPITAL  029F
+L, MODIFIER LETTER SMALL       02E1
 L, SCRIPT CAPITAL      2112
 L, SCRIPT SMALL        2113
-LAKKHANGYAO, THAI CHARACTER    0E45
 lambda bar, latin letter       019B
 Lao    0E80
-LAO CANCELLATION MARK  0ECC
 Lao Digits     0ED0
-LAO ELLIPSIS   0EAF
 Lao Letters    0E81
-LAO NIGGAHITA  0ECD
+laotian currency       20AD
 laplace operator       2206
-laplace operator (written with superscript 2)  2207
+laplace operator       2207
 laplace symbol 2112
 LAST QUARTER MOON      263E
-Latin Abbreviations, Squared   3380
-LATIN CAPITAL LETTER AFRICAN D 0189
-latin capital letter barred o  019F
-LATIN CAPITAL LETTER ESH       01A9
-LATIN CAPITAL LETTER EZH       01B7
-LATIN CAPITAL LETTER GAMMA     0194
-LATIN CAPITAL LETTER I WITH DOT ABOVE  0130
-LATIN CAPITAL LETTER IOTA      0196
-LATIN CAPITAL LETTER REVERSED E        018E
-LATIN CAPITAL LETTER SCHWA     018F
-latin capital letter script v  01B2
-LATIN CAPITAL LETTER THORN     00DE
-latin capital letter turned E  018E
-LATIN CAPITAL LETTER TURNED M  019C
-LATIN CAPITAL LETTER UPSILON   01B1
-latin capital letter yogh      01B7
+LATERAL CLICK, LATIN LETTER    01C1
+Latin Abbreviations, Squared   3371
 Latin Capital Letters  0041
 LATIN CROSS    271D
 Latin Extended Additional      1E00
 Latin Extended-A       0100
 Latin Extended-B       0180
-latin letter bullseye  0298
-latin letter double pipe       01C1
-latin letter exclamation mark  01C3
-LATIN LETTER GLOTTAL STOP      0294
-latin letter lambda bar        019B
-latin letter pipe      01C0
-latin letter pipe double bar   01C2
-LATIN LETTER REVERSED ESH LOOP 01AA
-latin letter reversed glottal stop     0295
-LATIN LETTER SMALL CAPITAL B   0299
-LATIN LETTER SMALL CAPITAL G   0262
-LATIN LETTER SMALL CAPITAL H   029C
-LATIN LETTER SMALL CAPITAL I   026A
-LATIN LETTER SMALL CAPITAL INVERTED R  0281
-LATIN LETTER SMALL CAPITAL L   029F
-LATIN LETTER SMALL CAPITAL N   0274
-LATIN LETTER SMALL CAPITAL OE  0276
-LATIN LETTER SMALL CAPITAL R   0280
-LATIN LETTER SMALL CAPITAL Y   028F
-LATIN LETTER WYNN      01BF
-LATIN LETTER YR        01A6
+Latin Extensions for Vietnamese        1EA0
 Latin Letters, Circled 24B6
 Latin Letters, Parenthesized   249C
 Latin Letters, Phonetic Modifiers Derived from 02B0
-LATIN SMALL LETTER AE  00E6
-LATIN SMALL LETTER ALPHA       0251
-latin small letter baby gamma  0264
-LATIN SMALL LETTER BARRED O    0275
-latin small letter d retroflex hook    0256
-LATIN SMALL LETTER DEZH DIGRAPH        02A4
-LATIN SMALL LETTER DOTLESS I   0131
-LATIN SMALL LETTER DZ  01F3
-LATIN SMALL LETTER DZ DIGRAPH  02A3
-LATIN SMALL LETTER ENG 014B
-latin small letter epsilon     025B
-LATIN SMALL LETTER ESH 0283
-LATIN SMALL LETTER ETH 00F0
-LATIN SMALL LETTER EZH 0292
-LATIN SMALL LETTER EZH REVERSED        01B9
-LATIN SMALL LETTER GAMMA       0263
-LATIN SMALL LETTER HV  0195
-LATIN SMALL LETTER IOTA        0269
-LATIN SMALL LETTER LEZH        026E
-LATIN SMALL LETTER LJ  01C9
-LATIN SMALL LETTER LONG S      017F
-LATIN SMALL LETTER NJ  01CC
-LATIN SMALL LETTER PHI 0278
-LATIN SMALL LETTER RAMS HORN   0264
-LATIN SMALL LETTER REVERSED E  0258
-LATIN SMALL LETTER SCHWA       0259
-latin small letter script a    0251
-latin small letter script f    0192
-LATIN SMALL LETTER SCRIPT G    0261
-latin small letter script v    028B
-LATIN SMALL LETTER SHARP S     00DF
-LATIN SMALL LETTER TESH DIGRAPH        02A7
-LATIN SMALL LETTER THORN       00FE
-LATIN SMALL LETTER TS DIGRAPH  02A6
-LATIN SMALL LETTER TURNED A    0250
-LATIN SMALL LETTER TURNED ALPHA        0252
-LATIN SMALL LETTER TURNED DELTA        018D
-LATIN SMALL LETTER TURNED E    01DD
-LATIN SMALL LETTER TURNED H    0265
-LATIN SMALL LETTER TURNED K    029E
-LATIN SMALL LETTER TURNED M    026F
-LATIN SMALL LETTER TURNED R    0279
-LATIN SMALL LETTER TURNED T    0287
-LATIN SMALL LETTER TURNED V    028C
-LATIN SMALL LETTER TURNED W    028D
-LATIN SMALL LETTER TURNED Y    028E
-LATIN SMALL LETTER UPSILON     028A
-latin small letter yogh        0292
+Latin Ligatures        FB00
 Latin Small Letters    0061
-latin small ligature ae        00E6
-LATIN SMALL LIGATURE IJ        0133
-LATIN SMALL LIGATURE OE        0153
 Latin, Based on ISO 8859-2, -3, -4, -9 (European)      0100
 Latin, C0 Controls and Basic   0000
-Latin, Extended        0180
+Latin, European        0100
 Latin-1 Supplement, C1 Controls and    0080
+Latin-1, ISO 8859-1 aka        00A0
 lazy s 223D
 LAZY S, INVERTED       223E
 LEADER, ONE DOT        2024
 leader, three dot      2026
 LEADER, TWO DOT        2025
+leaf, aldus    2766
+leaf, ivy      2767
 LEFT ANGLE ABOVE, COMBINING    031A
+LEFT ANGLE BELOW, COMBINING    0349
 LEFT ANGLE BRACKET     3008
 LEFT ARROW ABOVE, COMBINING    20D6
 LEFT BLACK LENTICULAR BRACKET  3010
@@ -1572,16 +1662,21 @@ LEFT DOUBLE ANGLE BRACKET       300A
 LEFT DOUBLE QUOTATION MARK     201C
 LEFT FLOOR     230A
 LEFT HALF RING BELOW, COMBINING        031C
-LEFT HALF RING, ARMENIAN MODIFIER LETTER       0559
 LEFT HALF RING, MODIFIER LETTER        02BF
 LEFT HALF RING, MODIFIER LETTER CENTRED        02D3
+LEFT HALF, COMBINING DOUBLE TILDE      FE22
+LEFT HALF, COMBINING LIGATURE  FE20
 LEFT HARPOON ABOVE, COMBINING  20D0
-LEFT NORMAL FACTOR SEMIDIRECT PRODUCT  22C9
+left key, delete to the        232B
 LEFT PARENTHESIS       0028
 LEFT PARENTHESIS, ORNATE       FD3E
+LEFT PARENTHESIS, SUBSCRIPT    208D
+LEFT PARENTHESIS, SUPERSCRIPT  207D
 left pointing guillemet        00AB
+LEFT POINTING INDEX, BLACK     261A
 left pointing single guillemet 2039
 LEFT RIGHT ARROW ABOVE, COMBINING      20E1
+LEFT RIGHT ARROW BELOW, COMBINING      034D
 LEFT SEMIDIRECT PRODUCT        22CB
 LEFT SINGLE QUOTATION MARK     2018
 LEFT SQUARE BRACKET    005B
@@ -1600,82 +1695,71 @@ LEFT-TO-RIGHT EMBEDDING 202A
 LEFT-TO-RIGHT MARK     200E
 LEFT-TO-RIGHT OVERRIDE 202D
 leftward tab   21E4
-legarmeh, hebrew       05C0
+LEFTWARDS BULLET, BLACK        204C
 LENTICULAR BRACKET, LEFT BLACK 3010
 LENTICULAR BRACKET, LEFT WHITE 3016
 LEO    264C
 LESS-THAN OR EQUAL TO  2264
 LESS-THAN SIGN 003C
-LESS-THAN WITH DOT     22D6
 LESS-THAN, MUCH        226A
 LESS-THAN, VERY MUCH   22D8
 Letterlike Symbols     2100
-Letters (Jamo), Korean Hangul  1100
-Letters and Ideographs, Enclosed CJK   3200
-Letters, Arabic        0627
-Letters, Armenian Capital      0531
-Letters, Armenian Small        0561
-Letters, Bengali       0985
-Letters, Circled Latin 24B6
-Letters, Coptic-Unique 03E2
-Letters, Croatian Digraphs Matching Serbian Cyrillic   01C4
-Letters, Cyrillic Capital      0401
-Letters, Cyrillic Small        0430
-Letters, Devanagari    0905
-Letters, Extended Arabic       0671
-Letters, Georgian Capital      10A0
-Letters, Georgian Small        10D0
-Letters, Greek Capital 0391
-Letters, Greek Small   03B1
-Letters, Gujarati      0A85
-Letters, Gurmukhi      0A05
-Letters, Hebrew        05D0
-Letters, Kannada       0C85
-Letters, Lao   0E81
-Letters, Latin Capital 0041
-Letters, Latin Small   0061
-Letters, Malayalam     0D05
-Letters, Oriya 0B05
-Letters, Parenthesized Latin   249C
-Letters, Phonetic Modifiers Derived from Latin 02B0
-Letters, Spacing Modifier      02B0
-Letters, Tamil 0B85
-Letters, Telugu        0C05
-Letters, Thai  0E01
-Letters, Tibetan       0F40
-Letters, Tone  02E5
+level 2 lock   21EB
+level 3 lock   21EF
+level 3 select 21EE
 LEZH, LATIN SMALL LETTER       026E
+lf     000A
 LIBRA  264E
 ligature ae, latin small       00E6
 LIGATURE IJ, LATIN SMALL       0133
+LIGATURE LEFT HALF, COMBINING  FE20
 LIGATURE OE, LATIN SMALL       0153
-Ligatures or Digraphs, Yiddish Hebrew  05F0
+Ligatures, Armenian    FB13
+Ligatures, Latin       FB00
 LIGHTNING      2607
 LIMIT, APPROACHES THE  2250
 LINE ABOVE, COMBINING DOUBLE VERTICAL  030E
 LINE ABOVE, COMBINING VERTICAL 030D
+LINE BELOW, COMBINING DOUBLE VERTICAL  0348
 LINE BELOW, COMBINING VERTICAL 0329
-LINE FEED      000A
+line down, partial     008B
+line feed      000A
 line feed      21B4
+line feed, reverse     008D
+LINE FEED, SYMBOL FOR  240A
 line marker    2319
 LINE OVERLAY, COMBINING LONG VERTICAL  20D2
 LINE OVERLAY, COMBINING SHORT VERTICAL 20D3
 LINE SEPARATOR 2028
+LINE SYMBOL, CENTRE    2104
+line tabulation set    008A
+line up, partial       008C
+LINE WITH MIDDLE DOT, VERTICAL 237F
 line, beginning of     2310
+LINE, CENTRELINE LOW   FE4E
 LINE, COMBINING DOUBLE LOW     0333
 LINE, COMBINING LOW    0332
+LINE, DASHED LOW       FE4D
 LINE, DOUBLE LOW       2017
 LINE, DOUBLE VERTICAL  2016
 LINE, LOW      005F
 LINE, MODIFIER LETTER LOW VERTICAL     02CC
 LINE, MODIFIER LETTER VERTICAL 02C8
 line, new      21B5
+line, next     0085
 LINE, VERTICAL 007C
 LINE, WAVY     2307
+LINE, WAVY LOW FE4F
 LIRA SIGN      20A4
 liter  2113
-LJ, LATIN SMALL LETTER 01C9
+Livonian, Additions for        022A
+LOCATION SIGN, TELEPHONE       2706
 lock, caps     21EA
+lock, caps     21EC
+lock, group    21F0
+lock, level 2  21EB
+lock, level 3  21EF
+lock, numerics 21ED
 LOGICAL AND    2227
 LOGICAL AND, CURLY     22CF
 LOGICAL AND, N-ARY     22C0
@@ -1683,27 +1767,31 @@ LOGICAL OR      2228
 LOGICAL OR, CURLY      22CE
 LOGICAL OR, N-ARY      22C1
 long   0304
+long cross     2020
+long dash      2015
 LONG S, LATIN SMALL LETTER     017F
 long slash overlay     0338
 LONG SOLIDUS OVERLAY, COMBINING        0338
 LONG STROKE OVERLAY, COMBINING 0336
 LONG VERTICAL LINE OVERLAY, COMBINING  20D2
+LORRAINE, CROSS OF     2628
 LOW ACUTE ACCENT, MODIFIER LETTER      02CF
 low double comma quotation mark        201E
 LOW DOUBLE PRIME QUOTATION MARK        301F
 LOW GRAVE ACCENT, MODIFIER LETTER      02CE
 LOW LINE       005F
+LOW LINE, CENTRELINE   FE4E
 LOW LINE, COMBINING    0332
 LOW LINE, COMBINING DOUBLE     0333
+LOW LINE, DASHED       FE4D
 LOW LINE, DOUBLE       2017
+LOW LINE, WAVY FE4F
 LOW MACRON, MODIFIER LETTER    02CD
 low single comma quotation mark        201A
 Low Surrogates DC00
-LOW TONE BAR, MODIFIER LETTER  02E8
 LOW VERTICAL LINE, MODIFIER LETTER     02CC
 LOW-9 QUOTATION MARK, DOUBLE   201E
 LOW-9 QUOTATION MARK, SINGLE   201A
-LOWER NUMERAL SIGN, GREEK      0375
 lower rank than        227A
 LOZENGE        25CA
 LOZENGE, SQUARE        2311
@@ -1713,50 +1801,52 @@ lro     202D
 M, LATIN CAPITAL LETTER TURNED 019C
 M, LATIN SMALL LETTER TURNED   026F
 M, SCRIPT CAPITAL      2133
-m-matrix (physics)     2133
+m-matrix       2133
 MACRON 00AF
 MACRON BELOW, COMBINING        0331
 MACRON, COMBINING      0304
 MACRON, MODIFIER LETTER        02C9
 MACRON, MODIFIER LETTER LOW    02CD
 macron, spacing        00AF
-MAIYAMOK, THAI CHARACTER       0E46
 Malayalam      0D00
 Malayalam Digits       0D66
 Malayalam Letters      0D05
-MALAYALAM SIGN ANUSVARA        0D02
-MALAYALAM SIGN VIRAMA  0D4D
-MALAYALAM SIGN VISARGA 0D03
 MALE SIGN      2642
 MALTESE CROSS  2720
-MAQAF, HEBREW PUNCTUATION      05BE
-Marks for Symbols, Combining Diacritical       20D0
-Marks, Combining Diacritical   0300
-Marks, Combining Half  FE20
-Marks, Double Diacritical      0360
-Marks, Enclosing Diacritical   20DD
-Marks, Generic Diacritical     0300
-marks, Hebrew Accents or Cantillation  0591
-Marks, Ideographic Tone        302A
-Marks, Overstruck Diacritical  0334
-Marks, Vietnamese Tone 0340
+Manchu Letters, Mongolian      1873
+mark, german   2133
+marker, histogram      25AE
 mars   2642
 MASCULINE ORDINAL INDICATOR    00BA
 Mathematical Operators 2200
+MATRIX, HERMITIAN CONJUGATE    22B9
 MEASURED ANGLE 2221
 MEASURED BY    225E
+medium, end of 0019
+MEDIUM, SYMBOL FOR END OF      2419
+MEMBER, CONTAINS AS    220B
+MEMBER, SMALL CONTAINS AS      220D
 MERCURY        263F
+message waiting        0095
+message, privacy       009E
+mho    2127
 MICRO SIGN     00B5
-MID TONE BAR, MODIFIER LETTER  02E7
+mid space      2005
 MIDDLE DOT     00B7
 middle dot, greek      00B7
 MIDDLE DOT, KATAKANA   30FB
+MIDDLE DOT, LATIN SMALL LETTER L WITH  0140
+MIDDLE DOT, VERTICAL LINE WITH 237F
+MIDDLE TILDE, LATIN CAPITAL LETTER O WITH      019F
+MIDDLE TILDE, LATIN SMALL LETTER L WITH        026B
 MIDLINE HORIZONTAL ELLIPSIS    22EF
+midpoint       00B7
 MILL SIGN      20A5
 MILLE SIGN, PER        2030
 milreis        0024
+minim  264F
 minim (alternate glyph)        264D
-minim, drop    264F
+Minnan and Hakka, Chinese Bopomofo Extended for        31A0
 MINUS SIGN     2212
 MINUS SIGN BELOW, COMBINING    0320
 minus sign, hyphen or  002D
@@ -1766,48 +1856,28 @@ MINUS, CIRCLED  2296
 MINUS, DOT     2238
 MINUS, SET     2216
 MINUS, SQUARED 229F
+MINUS, SUBSCRIPT       208B
+MINUS, SUPERSCRIPT     207B
 MINUS-OR-PLUS SIGN     2213
 minutes        2032
-Miscellaneous Dingbats 2600
 Miscellaneous Symbols  2600
 Miscellaneous Technical        2300
-Mkhedruli, Georgian Modern Lowercase Alphabet  10D0
 MODELS 22A7
-MODIFIER LETTER ACUTE ACCENT   02CA
-MODIFIER LETTER APOSTROPHE     02BC
-Modifier Letter Arrowheads     02C2
-MODIFIER LETTER CENTRED LEFT HALF RING 02D3
-MODIFIER LETTER CIRCUMFLEX ACCENT      02C6
-MODIFIER LETTER DOUBLE PRIME   02BA
-MODIFIER LETTER DOWN TACK      02D5
-MODIFIER LETTER EXTRA-HIGH TONE BAR    02E5
-MODIFIER LETTER EXTRA-LOW TONE BAR     02E9
-MODIFIER LETTER GLOTTAL STOP   02C0
-MODIFIER LETTER GRAVE ACCENT   02CB
-modifier letter hacek  02C7
-MODIFIER LETTER HALF TRIANGULAR COLON  02D1
-MODIFIER LETTER HIGH TONE BAR  02E6
-MODIFIER LETTER LEFT HALF RING 02BF
-MODIFIER LETTER LEFT HALF RING, ARMENIAN       0559
-MODIFIER LETTER LOW ACUTE ACCENT       02CF
-MODIFIER LETTER LOW GRAVE ACCENT       02CE
-MODIFIER LETTER LOW MACRON     02CD
-MODIFIER LETTER LOW TONE BAR   02E8
-MODIFIER LETTER LOW VERTICAL LINE      02CC
-MODIFIER LETTER MACRON 02C9
-MODIFIER LETTER MID TONE BAR   02E7
-MODIFIER LETTER MINUS SIGN     02D7
-MODIFIER LETTER PLUS SIGN      02D6
-MODIFIER LETTER PRIME  02B9
-MODIFIER LETTER REVERSED COMMA 02BD
-MODIFIER LETTER RIGHT HALF RING        02BE
-modifier letter right half ring, armenian      055A
-MODIFIER LETTER TRIANGULAR COLON       02D0
-MODIFIER LETTER TURNED COMMA   02BB
-MODIFIER LETTER UP TACK        02D4
-MODIFIER LETTER VERTICAL LINE  02C8
 Modifier Letters, Spacing      02B0
-Modifiers Derived from Latin Letters, Phonetic 02B0
+Mongolian      1800
+MONGOLIAN COLON        1804
+MONGOLIAN COMMA        1802
+mongolian currency     20AE
+Mongolian Digits       1810
+Mongolian Extensions for Sanskrit and Tibetan  1880
+Mongolian Format Controls      180B
+MONGOLIAN FULL STOP    1803
+Mongolian Manchu Letters       1873
+Mongolian Sibe Letters 185D
+Mongolian Todo Letters 1843
+MONOSTABLE SYMBOL      238D
+Months, Enclosed CJK Letters and       3200
+Months, Telegraph Symbols for  32C0
 MOON, FIRST QUARTER    263D
 MOON, LAST QUARTER     263E
 most positive  223E
@@ -1818,14 +1888,19 @@ MUCH LESS-THAN, VERY    22D8
 MULTIMAP       22B8
 MULTIPLICATION SIGN    00D7
 MULTIPLICATION X       2715
+MULTIPLICATION X, HEAVY        2716
 MULTIPLICATION, MULTISET       228D
 MULTISET       228C
 MULTISET MULTIPLICATION        228D
 MULTISET UNION 228E
-Music Dingbats 2669
 MUSIC FLAT SIGN        266D
 MUSIC NATURAL SIGN     266E
 MUSIC SHARP SIGN       266F
+Musical Symbols        2669
+mutton 2003
+mutton quad    2001
+Myanmar        1000
+Myanmar Digits 1040
 N, DOUBLE-STRUCK CAPITAL       2115
 N, LATIN LETTER SMALL CAPITAL  0274
 N-ARY COPRODUCT        2210
@@ -1838,18 +1913,28 @@ N-ARY UNION     22C3
 NABLA  2207
 NAIRA SIGN     20A6
 NAND   22BC
+nang   0323
+NARROW NO-BREAK SPACE  202F
+nasal hook     0328
 NATIONAL DIGIT SHAPES  206E
 natural number 2115
 NATURAL SIGN, MUSIC    266E
-nearly equals  2252
-NEGATIVE ACKNOWLEDGE   0015
+negation       20D3
+negative acknowledge   0015
+negative acknowledge, graphic for      237B
+NEGATIVE ACKNOWLEDGE, SYMBOL FOR       2415
 NEPTUNE        2646
 new line       21B5
 NEW SHEQEL SIGN        20AA
-nice day!, have a      263A
-NIGGAHITA, LAO 0ECD
-NJ, LATIN SMALL LETTER 01CC
+NEWLINE, SYMBOL FOR    2424
+next line      0085
+NEXT PAGE      2398
+NIB, BLACK     2712
+nigerian currency      20A6
+no break here  0083
+no break space, graphic for    237D
 NO-BREAK SPACE 00A0
+NO-BREAK SPACE, NARROW 202F
 NO-BREAK SPACE, ZERO WIDTH     FEFF
 NODE, ASCENDING        260A
 NODE, DESCENDING       260B
@@ -1857,30 +1942,30 @@ NOMINAL DIGIT SHAPES    206F
 NON-BREAKING HYPHEN    2011
 non-breaking space     00A0
 NON-JOINER, ZERO WIDTH 200C
+non-theorem    22A3
 NOR    22BD
-NORMAL FACTOR SEMIDIRECT PRODUCT, LEFT 22C9
 NORMAL SUBGROUP OF     22B2
 NORMAL SUBGROUP, CONTAINS AS   22B3
 not    223C
-Not a Character Code   FFFE
-Not a Character Code   FFFF
+Not a Character        FFFE
+Not a Character        FFFF
+NOT AN ELEMENT OF      2209
+NOT CHECK MARK 237B
 NOT EQUAL TO   2260
 NOT SIGN       00AC
 NOT SIGN, REVERSED     2310
 NOT SIGN, TURNED       2319
-NOT TILDE      2241
+NOT TILDE ABOVE, COMBINING     034A
+not yield, does        22A3
 NOTE, EIGHTH   266A
 NOTE, QUARTER  2669
 NOTES, BEAMED EIGHTH   266B
 NOTES, BEAMED SIXTEENTH        266C
-NUKTA, BENGALI SIGN    09BC
-NUKTA, DEVANAGARI SIGN 093C
-NUKTA, GUJARATI SIGN   0ABC
-NUKTA, GURMUKHI SIGN   0A3C
-NUKTA, ORIYA SIGN      0B3C
-NULL   0000
+null   0000
 null set       2205
+NULL, SYMBOL FOR       2400
 Number Forms   2150
+Number Runes, Golden   16EE
 NUMBER SIGN    0023
 number symbol, real    210A
 NUMBER ZERO, IDEOGRAPHIC       3007
@@ -1888,45 +1973,60 @@ number, natural 2115
 Numbers Period 2488
 Numbers, Circled       2460
 Numbers, Circled Inverse       2776
-Numbers, Circled Inverse Sans-Serif    278A
-Numbers, Circled Sans-Serif    2780
 Numbers, Parenthesized 2474
 numbers, the set of complex    2102
 numbers, the set of rational   211A
 numbers, the set of real       211D
-NUMERAL SIGN, GREEK    0374
-NUMERAL SIGN, GREEK LOWER      0375
-numeral sign, greek upper      0374
-Numerals, Hangzhou-Style       3021
+Numerals, Hangzhou-style       3021
 Numerals, Roman        2160
 NUMERATOR ONE, FRACTION        215F
+numerics lock  21ED
 NUMERO SIGN    2116
+nut    2002
+o bar  019F
+o bar  0275
+o e, latin small letter        0153
+O WITH MIDDLE TILDE, LATIN CAPITAL LETTER      019F
 o, latin capital letter barred 019F
+O, LATIN CAPITAL LETTER OPEN   0186
 O, LATIN SMALL LETTER BARRED   0275
+O, LATIN SMALL LETTER OPEN     0254
 O, SCRIPT SMALL        2134
+obelisk        2020
+obelisk, double        2021
+OBJECT REPLACEMENT CHARACTER   FFFC
 OCR, Optical Character Recognition     2440
+octothorpe     0023
 OE, LATIN LETTER SMALL CAPITAL 0276
 OE, LATIN SMALL LIGATURE       0153
+Ogham  1680
+OGHAM SPACE MARK       1680
 OGONEK 02DB
 OGONEK, COMBINING      0328
 OHM SIGN       2126
 OHM SIGN, INVERTED     2127
+OI, LATIN SMALL LETTER 01A3
 OM, DEVANAGARI 0950
-OM, GUJARATI   0AD0
+OMEGA, LATIN SMALL LETTER CLOSED       0277
 ONE DOT LEADER 2024
-ONE EIGHTH, VULGAR FRACTION    215B
-ONE FIFTH, VULGAR FRACTION     2155
 ONE HALF, VULGAR FRACTION      00BD
 ONE QUARTER, VULGAR FRACTION   00BC
-ONE SIXTH, VULGAR FRACTION     2159
-ONE THIRD, VULGAR FRACTION     2153
 ONE, FRACTION NUMERATOR        215F
 ONE, SUPERSCRIPT       00B9
-one, superscript digit 00B9
+OPEN BOX       2423
+OPEN BOX, SHOULDERED   237D
+OPEN E, LATIN CAPITAL LETTER   0190
+OPEN E, LATIN SMALL LETTER     025B
+OPEN E, LATIN SMALL LETTER CLOSED      029A
+OPEN E, LATIN SMALL LETTER CLOSED REVERSED     025E
+OPEN E, LATIN SMALL LETTER REVERSED    025C
+OPEN O, LATIN CAPITAL LETTER   0186
+OPEN O, LATIN SMALL LETTER     0254
 opening brace  007B
 opening curly bracket  007B
 opening parenthesis    0028
 opening square bracket 005B
+operating system command       009D
 OPERATOR, ASTERISK     2217
 OPERATOR, BULLET       2219
 OPERATOR, CIRCLED ASTERISK     229B
@@ -1934,7 +2034,6 @@ OPERATOR, CIRCLED DOT     2299
 OPERATOR, CIRCLED RING 229A
 OPERATOR, DIAMOND      22C4
 OPERATOR, DOT  22C5
-operator, laplace      2206
 OPERATOR, RING 2218
 OPERATOR, SQUARED DOT  22A1
 OPERATOR, STAR 22C6
@@ -1946,6 +2045,7 @@ OPTION KEY        2325
 OR, CURLY LOGICAL      22CE
 OR, LOGICAL    2228
 OR, N-ARY LOGICAL      22C1
+order  2134
 ORDINAL INDICATOR, FEMININE    00AA
 ORDINAL INDICATOR, MASCULINE   00BA
 ORIGIN, DIMENSION      2331
@@ -1953,20 +2053,15 @@ ORIGINAL OF     22B6
 ORIGINAL OF, SQUARE    2290
 Oriya  0B00
 Oriya Digits   0B66
-ORIYA ISSHAR   0B70
 Oriya Letters  0B05
-ORIYA SIGN ANUSVARA    0B02
-ORIYA SIGN AVAGRAHA    0B3D
-ORIYA SIGN CANDRABINDU 0B01
-ORIYA SIGN NUKTA       0B3C
-ORIYA SIGN VIRAMA      0B4D
-ORIYA SIGN VISARGA     0B03
+Ornaments, Heart       2763
+Ornaments, Punctuation 275B
 ORNATE LEFT PARENTHESIS        FD3E
 ORTHODOX CROSS 2626
 orthogonal to  22A5
+OU, LATIN SMALL LETTER 0223
 OUNCE SIGN     2125
 overbar, apl   00AF
-OVERLAY, COMBINING ANTICLOCKWISE RING  20DA
 OVERLAY, COMBINING CLOCKWISE RING      20D9
 OVERLAY, COMBINING LONG SOLIDUS        0338
 OVERLAY, COMBINING LONG STROKE 0336
@@ -1980,66 +2075,81 @@ overlay, long slash     0338
 overlay, short slash   0337
 overline       00AF
 OVERLINE       203E
+OVERLINE, CENTRELINE   FE4A
 OVERLINE, COMBINING    0305
 OVERLINE, COMBINING DOUBLE     033F
+OVERLINE, DASHED       FE49
+OVERLINE, DOUBLE WAVY  FE4C
+OVERLINE, WAVY FE4B
 OVERRIDE, LEFT-TO-RIGHT        202D
 OVERRIDE, RIGHT-TO-LEFT        202E
 overscore      0305
 overscore, spacing     203E
 Overscores and Underscores     FE49
-Overstruck Diacritical Marks   0334
-oxia, greek    0301
+Overstruck Diacritics  0334
+oxia   0301
 P, DOUBLE-STRUCK CAPITAL       2119
 P, SCRIPT CAPITAL      2118
 page down      21DF
 page up        21DE
-PAIYANNOI, THAI CHARACTER      0E2F
-PALATALIZATION, COMBINING CYRILLIC     0484
+PAGE, NEXT     2398
+PAGE, PREVIOUS 2397
 PALATALIZED HOOK BELOW, COMBINING      0321
 PARAGRAPH SEPARATOR    2029
 PARAGRAPH SEPARATOR, GEORGIAN  10FB
 paragraph separator, urdu      203B
 paragraph sign 00B6
 PARAGRAPH SIGN ORNAMENT, CURVED STEM   2761
+paragraph sign, european       00A7
 PARALLEL TO    2225
-PARALLEL TO, EQUAL AND 22D5
+PARALLELOGRAM, BLACK   25B0
 parenthesis, closing   0029
 PARENTHESIS, LEFT      0028
 parenthesis, opening   0028
 PARENTHESIS, ORNATE LEFT       FD3E
 PARENTHESIS, RIGHT     0029
+PARENTHESIS, SUBSCRIPT LEFT    208D
+PARENTHESIS, SUPERSCRIPT LEFT  207D
 Parenthesized Ideographs       3220
 Parenthesized Korean Hangul Elements   3200
 Parenthesized Korean Hangul Syllables  320E
 Parenthesized Latin Letters    249C
 Parenthesized Numbers  2474
+parted rule    00A6
 PARTIAL DIFFERENTIAL   2202
-PASEQ, HEBREW PUNCTUATION      05C0
-PASUQ, HEBREW PUNCTUATION SOF  05C3
-patiw, armenian        055F
+partial line down      008B
+partial line up        008C
 pdf    202C
 PEACE SYMBOL   262E
 Pencil Dingbats        270E
+PENCIL, UPPER RIGHT    2710
 per    2118
 PER MILLE SIGN 2030
 PER TEN THOUSAND SIGN  2031
 PERCENT SIGN   0025
 PERCENT SIGN, ARABIC   066A
+PERCUSSIVE, LATIN LETTER BIDENTAL      02AD
+PERCUSSIVE, LATIN LETTER BILABIAL      02AC
 period 002E
 PERISPOMENI, COMBINING GREEK   0342
 perpendicular  22A5
-Persian and Urdu, Eastern Arabic-Indic Digits  06F0
+Persian and Urdu, Eastern Arabic-Indic Digits for      06F0
 PERSPECTIVE    2306
 PESETA SIGN    20A7
+PHARYNGEAL VOICED FRICATIVE, LATIN LETTER      0295
 PHI, LATIN SMALL LETTER        0278
 Phonetic Alphabet, International       0250
 Phonetic Modifiers Derived from Latin Letters  02B0
-phrase separator, devanagari   0964
+Phonetics and Symbols Area, CJK        2E00
+phonorecord sign       2117
+pi, mathematical constant      03C0
+Pictures for Control Codes, Graphic    2400
 PILCROW SIGN   00B6
-Pinyin Diacritic-Vowel Combinations    01CD
-pipe double bar, latin letter  01C2
-pipe, latin letter     01C0
-pipe, latin letter double      01C1
+PILCROW SIGN, REVERSED 204B
+Pinyin Diacritic-vowel Combinations    01CD
+pipe   01C0
+pipe, double   01C1
+pipe, double-barred    01C2
 PISCES 2653
 PITCHFORK      22D4
 PLACE OF INTEREST SIGN 2318
@@ -2047,22 +2157,25 @@ plaintiff       226C
 PLANCK CONSTANT        210E
 PLANCK CONSTANT OVER TWO PI    210F
 Planet Symbols 263F
+Playing Card Suits     2660
 PLUS SIGN      002B
 PLUS SIGN BELOW, COMBINING     031F
 PLUS SIGN, MODIFIER LETTER     02D6
+PLUS SIGN, SUBSCRIPT   208A
+PLUS SIGN, SUPERSCRIPT 207A
 PLUS, CIRCLED  2295
 PLUS, DOT      2214
 PLUS, SQUARED  229E
 PLUS-MINUS SIGN        00B1
 PLUTO  2647
-PNEUMATA, COMBINING CYRILLIC DASIA     0485
-PNEUMATA, COMBINING CYRILLIC PSILI     0486
 Pointers       25BA
-Pointing Index Finger Dingbats 261A
-Points and Punctuation, Hebrew 05B0
+Points, Arabic 064B
+Points, Hebrew 05B0
 poison 2620
+Political Symbols, Religious and       2626
 POP DIRECTIONAL FORMATTING     202C
 POSITION INDICATOR     2316
+positive, most 223E
 POSTAL MARK    3012
 POSTAL MARK FACE       3020
 POSTAL MARK, CIRCLED   3036
@@ -2075,8 +2188,10 @@ PRECEDES 227A
 PRECEDES UNDER RELATION        22B0
 PRESCRIPTION TAKE      211E
 Presentation Forms, Alphabetic FB00
+Presentation Forms, Hebrew     FB1D
 Presentation Forms-A, Arabic   FB50
 Presentation Forms-B, Arabic   FE70
+PREVIOUS PAGE  2397
 PRIME  2032
 PRIME QUOTATION MARK, DOUBLE   301E
 PRIME QUOTATION MARK, LOW DOUBLE       301F
@@ -2088,47 +2203,56 @@ PRIME, REVERSED 2035
 PRIME, REVERSED DOUBLE 2036
 PRIME, REVERSED TRIPLE 2037
 PRIME, TRIPLE  2034
+PRINT SCREEN SYMBOL    2399
+privacy message        009E
 Private Use Area       E000
-Private Use High Surrogates    DB80
-product sign   220F
+private use one        0091
+private use two        0092
 product, direct        2299
-PRODUCT, LEFT NORMAL FACTOR SEMIDIRECT 22C9
 PRODUCT, LEFT SEMIDIRECT       22CB
 PRODUCT, N-ARY 220F
 product, tensor        2297
 PRODUCT, WREATH        2240
+PROFILE, ALL AROUND-   232E
+prohibition    20E0
 PROJECTIVE     2305
-PROLONGED SOUND MARK, KATAKANA-HIRAGANA        30FC
 PROOF, END OF  220E
-proper intersection    22D4
 PROPORTION     2237
 PROPORTION, GEOMETRIC  223A
 PROPORTIONAL TO        221D
 proportional to, varies with   223C
-proves, implies, yields        22A2
-PSILI PNEUMATA, COMBINING CYRILLIC     0486
-psili, greek   0313
+proves 22A2
+psili  0313
 published      2117
+Punctuation Ornaments  275B
+PUNCTUATION SPACE      2008
 Punctuation, CJK Symbols and   3000
 Punctuation, General   2000
+punt, irish    00A3
 Q, DOUBLE-STRUCK CAPITAL       211A
+Q, ROTATED CAPITAL     213A
 qed    220E
 QUAD, EM       2001
 QUAD, EN       2000
+quad, mutton   2001
 quadrature     25A1
 quantic        226C
 QUARTER MOON, FIRST    263D
 QUARTER MOON, LAST     263E
 QUARTER NOTE   2669
+Quarters, Fractions    00BC
+QUESTION EXCLAMATION MARK      2048
 QUESTION MARK  003F
 QUESTION MARK, ARABIC  061F
 QUESTION MARK, ARMENIAN        055E
+QUESTION MARK, ETHIOPIC        1367
+QUESTION MARK, EXCLAMATION     2049
 QUESTION MARK, GREEK   037E
 QUESTION MARK, INVERTED        00BF
 QUESTIONED EQUAL TO    225F
+QUILL, LEFT SQUARE BRACKET WITH        2045
 quotation dash 2015
 QUOTATION MARK 0022
-Quotation Mark Dingbats        275B
 Quotation Mark Ornaments       275B
 quotation mark, double comma   201D
 QUOTATION MARK, DOUBLE HIGH-REVERSED-9 201F
@@ -2159,41 +2283,47 @@ R, DOUBLE-STRUCK CAPITAL        211D
 R, LATIN LETTER SMALL CAPITAL  0280
 R, LATIN LETTER SMALL CAPITAL INVERTED 0281
 R, LATIN SMALL LETTER TURNED   0279
+R, MODIFIER LETTER SMALL       02B3
+R, MODIFIER LETTER SMALL CAPITAL INVERTED      02B6
+R, MODIFIER LETTER SMALL TURNED        02B4
 R, SCRIPT CAPITAL      211B
 radical sign   221A
+Radicals Supplement, CJK       2E80
+Radicals, Kangxi       2F00
+Radicals, Yi   A490
 RADIOACTIVE SIGN       2622
 rainy weather  2602
 RAMS HORN, LATIN SMALL LETTER  0264
-rank than, higher      227B
-rank than, lower       227A
 RATIO  2236
 ratio, cross   211E
 rational numbers, the set of   211A
 real number symbol     210A
 real numbers, the set of       211D
-real part symbol       211C
+real part      211C
 recipe 211E
-RECORD SEPARATOR       001E
+record separator       001E
+RECORD SEPARATOR, SYMBOL FOR   241E
 RECORDER, TELEPHONE    2315
 RECORDING COPYRIGHT, SOUND     2117
-RECTANGLE BOX, X IN A  2327
-RECTANGLE, BLACK       25AC
-RECTANGLE, WHITE       25AD
+Rectangles     25AC
 reduces to     22A6
 reducible      22A2
 REFERENCE MARK 203B
-REGISTERED SIGN        00AE
 registered trade mark sign     00AE
-RELATION, PRECEDES UNDER       22B0
-RELATION, SUCCEEDS UNDER       22B1
-Religious Symbols      2625
-REPEAT MARK, VERTICAL KANA     3031
+Religious and Political Symbols        2626
+Repeat Marks, Kana     3031
 REPLACEMENT CHARACTER  FFFD
+REPLACEMENT CHARACTER, OBJECT  FFFC
 resistance     2126
 RESPONSE       211F
 results in     22A8
+RETROFLEX CLICK, LATIN LETTER  01C3
 RETROFLEX HOOK BELOW, COMBINING        0322
 retroflex hook, latin small letter d   0256
+return, carriage       000D
+return, carriage       21B5
+RETURN, SYMBOL FOR CARRIAGE    240D
+reverse line feed      008D
 REVERSE SOLIDUS        005C
 reverse turnstile      22A3
 REVERSED COMMA ABOVE, COMBINING        0314
@@ -2204,10 +2334,18 @@ REVERSED DOUBLE PRIME   2036
 REVERSED DOUBLE PRIME QUOTATION MARK   301D
 REVERSED E, LATIN CAPITAL LETTER       018E
 REVERSED E, LATIN SMALL LETTER 0258
+reversed epsilon, latin small letter closed    025E
 REVERSED ESH LOOP, LATIN LETTER        01AA
+REVERSED ESH, LATIN SMALL LETTER SQUAT 0285
 reversed glottal stop, latin letter    0295
+REVERSED GLOTTAL STOP, MODIFIER LETTER 02C1
+REVERSED GLOTTAL STOP, MODIFIER LETTER SMALL   02E4
 REVERSED NOT SIGN      2310
+REVERSED OPEN E, LATIN SMALL LETTER    025C
+REVERSED OPEN E, LATIN SMALL LETTER CLOSED     025E
+REVERSED PILCROW SIGN  204B
 REVERSED PRIME 2035
+reversed straight epsilon      220D
 REVERSED TILDE 223D
 REVERSED TILDE EQUALS  22CD
 REVERSED TRIPLE PRIME  2037
@@ -2216,34 +2354,17 @@ RHOTIC HOOK, MODIFIER LETTER    02DE
 riemann integral       211B
 RIGHT ANGLE    221F
 RIGHT ANGLE WITH ARC   22BE
-RIGHT ARROW ABOVE, COMBINING   20D7
-RIGHT ARROW ABOVE, COMBINING LEFT      20E1
 RIGHT CURLY BRACKET    007D
-RIGHT DIAGONAL ELLIPSIS, DOWN  22F1
-RIGHT DIAGONAL ELLIPSIS, UP    22F0
-RIGHT DOUBLE QUOTATION MARK    201D
-RIGHT HALF RING BELOW, COMBINING       0339
-right half ring, armenian modifier letter      055A
-RIGHT HALF RING, MODIFIER LETTER       02BE
-RIGHT HARPOON ABOVE, COMBINING 20D1
-right key, delete to the       2326
 RIGHT PARENTHESIS      0029
 right pointing guillemet       00BB
 right pointing single guillemet        203A
-RIGHT SINGLE QUOTATION MARK    2019
 RIGHT SQUARE BRACKET   005D
-RIGHT TACK     22A2
-RIGHT TACK BELOW, COMBINING    0319
 RIGHT TRIANGLE 22BF
-RIGHT TURNSTILE, DOUBLE VERTICAL BAR DOUBLE    22AB
-RIGHT TURNSTILE, TRIPLE VERTICAL BAR   22AA
-RIGHT-POINTING ANGLE BRACKET   232A
 RIGHT-POINTING ANGLE QUOTATION MARK, SINGLE    203A
 RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK     00BB
 RIGHT-TO-LEFT EMBEDDING        202B
 RIGHT-TO-LEFT MARK     200F
 RIGHT-TO-LEFT OVERRIDE 202E
-rightward tab  21E5
 RING ABOVE     02DA
 RING ABOVE, COMBINING  030A
 RING BELOW, COMBINING  0325
@@ -2254,22 +2375,24 @@ RING IN EQUAL TO        2256
 RING OPERATOR  2218
 RING OPERATOR, CIRCLED 229A
 RING OVERLAY, COMBINING        20D8
-RING OVERLAY, COMBINING ANTICLOCKWISE  20DA
 RING OVERLAY, COMBINING CLOCKWISE      20D9
-RING, ARMENIAN MODIFIER LETTER LEFT HALF       0559
-ring, armenian modifier letter right half      055A
 RING, BENZENE  232C
 RING, MODIFIER LETTER CENTRED LEFT HALF        02D3
 RING, MODIFIER LETTER LEFT HALF        02BF
-RING, MODIFIER LETTER RIGHT HALF       02BE
 rle    202B
 rlm    200F
 rlo    202E
 Roman Numerals 2160
+Romanian, Additions for        0218
 ROOT, CUBE     221B
 ROOT, FOURTH   221C
 ROOT, SQUARE   221A
+ROTATED CAPITAL Q      213A
+rotation       20D5
 rough breathing        0314
+rule, parted   00A6
+Runes, Golden Number   16EE
+Runic  16A0
 RUNOUT, TOTAL  2330
 RUPEE MARK, BENGALI    09F2
 RUPEE SIGN     20A8
@@ -2279,16 +2402,17 @@ S, INVERTED LAZY        223E
 S, LATIN SMALL LETTER LONG     017F
 S, LATIN SMALL LETTER SHARP    00DF
 s, lazy        223D
+S, MODIFIER LETTER SMALL       02E2
 SAGITTARIUS    2650
 SALTIRE        2613
-Sans-Serif Numbers, Circled    2780
-Sans-Serif Numbers, Circled Inverse    278A
+Sanskrit and Tibetan, Mongolian Extensions for 1880
 satisfies      22A8
 SATURN 2644
 SCHWA, LATIN CAPITAL LETTER    018F
 SCHWA, LATIN SMALL LETTER      0259
 Scissors Dingbats      2701
 SCORPIUS       264F
+SCREEN, COMBINING ENCLOSING    20E2
 script a, latin small letter   0251
 SCRIPT CAPITAL B       212C
 SCRIPT CAPITAL E       2130
@@ -2307,28 +2431,40 @@ SCRIPT SMALL L  2113
 SCRIPT SMALL O 2134
 script v, latin capital letter 01B2
 script v, latin small letter   028B
+Scripts Area, General  0000
+scrolling      21F3
 SCRUPLE        2108
 SEAGULL BELOW, COMBINING       033C
 second transfinite cardinal (the continuum)    2136
 seconds        2033
 SECTION SIGN   00A7
+section sign, european 00B6
 SECTOR 2314
 SEGMENT        2313
+selected area, end of  0087
+selected area, start of        0086
 SEMICOLON      003B
 SEMICOLON, ARABIC      061B
+SEMICOLON, ETHIOPIC    1364
 SEMIDIRECT PRODUCT, LEFT       22CB
-SEMIDIRECT PRODUCT, LEFT NORMAL FACTOR 22C9
+SEPARATOR KEY SYMBOL, DECIMAL  2396
 SEPARATOR, ARABIC DECIMAL      066B
 SEPARATOR, ARABIC THOUSANDS    066C
+separator, decimal     002C
 separator, devanagari phrase   0964
-SEPARATOR, FILE        001C
+separator, file        001C
 SEPARATOR, GEORGIAN PARAGRAPH  10FB
-SEPARATOR, GROUP       001D
+separator, group       001D
 SEPARATOR, LINE        2028
 SEPARATOR, PARAGRAPH   2029
-SEPARATOR, RECORD      001E
-SEPARATOR, UNIT        001F
+separator, record      001E
+SEPARATOR, SYMBOL FOR FILE     241C
+SEPARATOR, SYMBOL FOR GROUP    241D
+SEPARATOR, SYMBOL FOR RECORD   241E
+SEPARATOR, SYMBOL FOR UNIT     241F
+separator, unit        001F
 separator, urdu paragraph      203B
+sequence introducer, control   009B
 Serbian Cyrillic Letters, Croatian Digraphs Matching   01C4
 SERVICE MARK   2120
 SET MINUS      2216
@@ -2336,39 +2472,35 @@ set of complex numbers, the     2102
 set of integers, the   2124
 set of rational numbers, the   211A
 set of real numbers, the       211D
+set transmit state     0093
 SET, EMPTY     2205
+set, included in       2282
+set, includes in       2283
 set, null      2205
 set, power     2118
-SEVEN EIGHTHS, VULGAR FRACTION 215E
 sextile        2736
-SHADE, DARK    2593
-SHADE, LIGHT   2591
-SHADE, MEDIUM  2592
-SHAKTI, ADI    262C
+Shade Characters       2591
 shamrock       2663
 Shapes, Geometric      25A0
-SHAPES, NATIONAL DIGIT 206E
-SHAPES, NOMINAL DIGIT  206F
-SHAPING, ACTIVATE ARABIC FORM  206D
-SHAPING, INHIBIT ARABIC FORM   206C
 SHARP S, LATIN SMALL LETTER    00DF
 SHARP SIGN, MUSIC      266F
-SHELL BRACKET, LEFT TORTOISE   3014
-SHELL BRACKET, LEFT WHITE TORTOISE     3018
 SHEQEL SIGN, NEW       20AA
-shesht, armenian       055B
 shift  21E7
-SHIFT IN       000F
-SHIFT OUT      000E
-shift tab, tab with    21B9
+shift in       000F
+SHIFT IN, SYMBOL FOR   240F
+shift out      000E
+SHIFT OUT, SYMBOL FOR  240E
 shilling       002F
 short  0306
 short slash overlay    0337
 SHORT SOLIDUS OVERLAY, COMBINING       0337
 SHORT STROKE OVERLAY, COMBINING        0335
 SHORT VERTICAL LINE OVERLAY, COMBINING 20D3
+SHOULDERED OPEN BOX    237D
+Sibe Letters, Mongolian        185D
 similar to     223C
 SINE WAVE      223F
+single character introducer    009A
 single comma quotation mark    2019
 single comma quotation mark, low       201A
 single guillemet, left pointing        2039
@@ -2380,11 +2512,13 @@ SINGLE QUOTATION MARK, LEFT     2018
 SINGLE QUOTATION MARK, RIGHT   2019
 single reversed comma quotation mark   201B
 SINGLE RIGHT-POINTING ANGLE QUOTATION MARK     203A
+single shift three     008F
+single shift two       008E
 single turned comma quotation mark     2018
+Sinhala        0D80
 SIX-PER-EM SPACE       2006
 SIXTEENTH NOTES, BEAMED        266C
-SIXTH, VULGAR FRACTION ONE     2159
-SIXTHS, VULGAR FRACTION FIVE   215A
+Sixths, Fractions      2159
 SKULL AND CROSSBONES   2620
 slash  002F
 slash overlay, long    0338
@@ -2393,11 +2527,13 @@ SLASH, CIRCLED DIVISION 2298
 SLASH, DIVISION        2215
 SLASH, FRACTION        2044
 SLOPE  2333
+Slovenian and Croatian, Additions for  0200
 SMALL CAPITAL B, LATIN LETTER  0299
 SMALL CAPITAL G, LATIN LETTER  0262
 SMALL CAPITAL H, LATIN LETTER  029C
 SMALL CAPITAL I, LATIN LETTER  026A
 SMALL CAPITAL INVERTED R, LATIN LETTER 0281
+SMALL CAPITAL INVERTED R, MODIFIER LETTER      02B6
 SMALL CAPITAL L, LATIN LETTER  029F
 SMALL CAPITAL N, LATIN LETTER  0274
 SMALL CAPITAL OE, LATIN LETTER 0276
@@ -2412,32 +2548,42 @@ Small Letters, Cyrillic 0430
 Small Letters, Georgian        10D0
 Small Letters, Greek   03B1
 Small Letters, Latin   0061
-SMALL TILDE    02DC
 SMILE  2323
 SMILING FACE, BLACK    263B
 SMILING FACE, WHITE    263A
 smooth breathing       0313
 Snowflake Dingbats     2744
+Snowflakes, Stars, Asterisks and       2721
 SNOWMAN        2603
 snowy weather  2603
-SOF PASUQ, HEBREW PUNCTUATION  05C3
 SOFT HYPHEN    00AD
+SOFTWARE-FUNCTION SYMBOL       2394
+solid  2588
 SOLIDUS        002F
+solidus        2044
 SOLIDUS OVERLAY, COMBINING LONG        0338
 SOLIDUS OVERLAY, COMBINING SHORT       0337
 SOLIDUS, REVERSE       005C
 SOUND RECORDING COPYRIGHT      2117
+SOURCE, INFORMATION    2139
 SPACE  0020
+SPACE MARK, OGHAM      1680
 SPACE, EM      2003
 SPACE, EN      2002
 SPACE, FIGURE  2007
 SPACE, FOUR-PER-EM     2005
+space, graphic for     2422
+space, graphic for     2423
+space, graphic for no break    237D
 SPACE, HAIR    200A
 SPACE, IDEOGRAPHIC     3000
-SPACE, IDEOGRAPHIC HALF FILL   303F
+space, mid     2005
+SPACE, NARROW NO-BREAK 202F
 SPACE, NO-BREAK        00A0
 SPACE, PUNCTUATION     2008
 SPACE, SIX-PER-EM      2006
+SPACE, SYMBOL FOR      2420
+space, thick   2004
 SPACE, THIN    2009
 SPACE, THREE-PER-EM    2004
 SPACE, ZERO WIDTH      200B
@@ -2446,6 +2592,7 @@ Spaces    2000
 spacing acute  00B4
 spacing cedilla        00B8
 spacing circumflex     005E
+Spacing Clones of Diacritics   02D8
 spacing diaeresis      00A8
 spacing double underscore      2017
 spacing grave  0060
@@ -2453,7 +2600,9 @@ spacing macron    00AF
 Spacing Modifier Letters       02B0
 spacing overscore      203E
 spacing underscore     005F
+spanish currency       20A7
 Specials       FFF0
+Specials Area, Compatibility and       F900
 SPHERICAL ANGLE        2222
 SQUARE BELOW, COMBINING        033B
 SQUARE BRACKET WITH QUILL, LEFT        2045
@@ -2463,6 +2612,7 @@ SQUARE BRACKET, LEFT WHITE        301A
 square bracket, opening        005B
 SQUARE BRACKET, RIGHT  005D
 SQUARE CAP     2293
+SQUARE CORPORATION     337F
 SQUARE CUP     2294
 SQUARE IMAGE OF        228F
 SQUARE LOZENGE 2311
@@ -2473,12 +2623,14 @@ SQUARE, VIEWDATA        2317
 squared        00B2
 SQUARED DOT OPERATOR   22A1
 Squared Japanese Katakana Words        3300
-Squared Latin Abbreviations    3380
+Squared Latin Abbreviations    3371
 SQUARED MINUS  229F
 SQUARED PLUS   229E
 SQUARED TIMES  22A0
 Squares        25A0
+SQUAT REVERSED ESH, LATIN SMALL LETTER 0285
 st. andrew's cross     2613
+star   002A
 STAR AND CRESCENT      262A
 Star Dingbats  2726
 STAR EQUALS    225B
@@ -2486,38 +2638,58 @@ STAR OF DAVID   2721
 STAR OPERATOR  22C6
 STAR, ARABIC FIVE POINTED      066D
 STAR, BLACK    2605
-STAR, WHITE    2606
 starburst      273A
-START OF HEADING       0001
-START OF TEXT  0002
-statement is true, valid       22A8
+Stars, Asterisks and Snowflakes        2721
+start of guarded area  0096
+start of heading       0001
+START OF HEADING, SYMBOL FOR   2401
+start of selected area 0086
+start of string        0098
+start of text  0002
+START OF TEXT, SYMBOL FOR      2402
+statement is true      22A8
+sterling, pound        00A3
 stile, apl     2223
+straight epsilon       220A
+straight epsilon, reversed     220D
 stress mark    0301
-STRESS SIGN ANUDATTA, DEVANAGARI       0952
-STRESS SIGN UDATTA, DEVANAGARI 0951
+STRETCHED C, LATIN LETTER      0297
 STRICTLY EQUIVALENT TO 2263
+string terminator      009C
+string, device control 0090
+string, start of       0098
 STROKE OVERLAY, COMBINING LONG 0336
 STROKE OVERLAY, COMBINING SHORT        0335
 SUBGROUP OF, NORMAL    22B2
 SUBGROUP, CONTAINS AS NORMAL   22B3
-subscript, greek iota  0345
+Subscript Digits       2080
+SUBSCRIPT EQUALS SIGN  208C
+SUBSCRIPT LEFT PARENTHESIS     208D
+SUBSCRIPT MINUS        208B
+SUBSCRIPT PLUS SIGN    208A
+subscript, iota        0345
 Subscripts     2080
-Subscripts, Superscripts and   2070
 SUBSET OF      2282
 SUBSET, DOUBLE 22D0
-SUBSTITUTE     001A
+substitute     001A
+SUBSTITUTE FORM TWO, SYMBOL FOR        2426
+SUBSTITUTE, SYMBOL FOR 241A
 SUCCEEDS       227B
 SUCCEEDS UNDER RELATION        22B1
 such that      220B
 such that      2223
-Suits, Card    2660
+Suits, Playing Card    2660
 sum, direct    2295
-summation sign 2211
 SUMMATION, N-ARY       2211
 SUN    2609
-SUN WITH RAYS, WHITE   263C
+SUN WITH RAYS, BLACK   2600
 SUPERSCRIPT ALEF, ARABIC LETTER        0670
+Superscript Digits     2070
+SUPERSCRIPT EQUALS SIGN        207C
+SUPERSCRIPT LEFT PARENTHESIS   207D
+SUPERSCRIPT MINUS      207B
 SUPERSCRIPT ONE        00B9
+SUPERSCRIPT PLUS SIGN  207A
 SUPERSCRIPT THREE      00B3
 SUPERSCRIPT TWO        00B2
 SUPERSCRIPT ZERO       2070
@@ -2526,45 +2698,50 @@ Superscripts and Subscripts     2070
 SUPERSET OF    2283
 SUPERSET, DOUBLE       22D1
 SURFACE INTEGRAL       222F
-Surrogates     DB80
-Surrogates, High       DB80
+Surrogates Area        D800
+Surrogates, High       D800
 Surrogates, Low        DC00
-Surrogates, Private Use High   DB80
-SWAPPING, ACTIVATE SYMMETRIC   206B
-SWAPPING, INHIBIT SYMMETRIC    206A
+swedish grave accent   02DF
+swung dash     007E
+Syllabics, Unified Canadian Aboriginal 1400
+Syllables Area, Korean Hangul  AC00
+Syllables, Yi  A000
 Symbol Variants, Fullwidth     FFE0
 Symbols and Punctuation, CJK   3000
+Symbols Area   2000
+Symbols Area, CJK Phonetics and        2E00
 Symbols for Control Codes, Graphic     2400
-Symbols, APL Functional        2336
 Symbols, Combining Diacritical Marks for       20D0
-Symbols, Currency      20A0
 Symbols, Greek 03D0
 Symbols, Letterlike    2100
 Symbols, Miscellaneous 2600
-Symbols, Planet        263F
-Symbols, Religious     2625
-Symbols, Zodiac        2648
 symmetric difference   2238
 symmetric difference   2296
 SYMMETRIC SWAPPING, ACTIVATE   206B
 SYMMETRIC SWAPPING, INHIBIT    206A
 SYMMETRY       232F
-SYNCHRONOUS IDLE       0016
+synchronous idle       0016
+SYNCHRONOUS IDLE, SYMBOL FOR   2416
+Syriac 0700
+SYRIAC CROSS, EAST     2671
+SYRIAC CROSS, WEST     2670
+Syriac Format Control  070F
 T, LATIN SMALL LETTER TURNED   0287
 tab    0009
 tab with shift tab     21B9
 tab, leftward  21E4
 tab, rightward 21E5
-tab, tab with shift    21B9
-TABULATION, HORIZONTAL 0009
-TABULATION, VERTICAL   000B
-TACK BELOW, COMBINING DOWN     031E
+tab, symbol for        2409
+tabulation set, character      0088
+tabulation set, line   008A
+tabulation with justification, character       0089
+tabulation, horizontal 0009
+TABULATION, SYMBOL FOR HORIZONTAL      2409
+TABULATION, SYMBOL FOR VERTICAL        240B
+tabulation, vertical   000B
 TACK BELOW, COMBINING LEFT     0318
-TACK BELOW, COMBINING RIGHT    0319
 TACK BELOW, COMBINING UP       031D
-TACK, DOWN     22A4
 TACK, LEFT     22A3
-TACK, MODIFIER LETTER DOWN     02D5
 TACK, MODIFIER LETTER UP       02D4
 TACK, RIGHT    22A2
 TACK, UP       22A5
@@ -2573,55 +2750,47 @@ TAKE, PRESCRIPTION      211E
 Tamil  0B80
 Tamil Digits   0BE7
 Tamil Letters  0B85
-TAMIL SIGN ANUSVARA    0B82
-TAMIL SIGN VIRAMA      0BCD
-TAMIL SIGN VISARGA     0B83
+TAPE DRIVE     2707
 TAPER, CONICAL 2332
-TATWEEL, ARABIC        0640
 TAURUS 2649
-tautology, is a        22A8
+tautology      22A8
 Technical, Miscellaneous       2300
-TELEIA, GREEK ANO      0387
+Telegraph Symbols for Days     33E0
+Telegraph Symbols for Hours    3358
+Telegraph Symbols for Months   32C0
+TELEPHONE LOCATION SIGN        2706
 TELEPHONE RECORDER     2315
 TELEPHONE SIGN 2121
 TELEPHONE, BLACK       260E
-TELEPHONE, WHITE       260F
 Telugu 0C00
 Telugu Digits  0C66
 Telugu Letters 0C05
-TELUGU SIGN ANUSVARA   0C02
-TELUGU SIGN CANDRABINDU        0C01
-TELUGU SIGN VIRAMA     0C4D
-TELUGU SIGN VISARGA    0C03
+TEN THOUSAND SIGN, PER 2031
+tensor 20E1
 tensor product 2297
-TESH DIGRAPH, LATIN SMALL LETTER       02A7
+terminator, string     009C
+text, end of   0003
+text, start of 0002
+TEXT, SYMBOL FOR END OF        2403
+TEXT, SYMBOL FOR START OF      2402
+Thaana 0780
 Thai   0E00
-THAI CHARACTER FONGMAN 0E4F
-THAI CHARACTER LAKKHANGYAO     0E45
-THAI CHARACTER MAIYAMOK        0E46
-THAI CHARACTER PAIYANNOI       0E2F
-THAI CHARACTER THANTHAKHAT     0E4C
-THAI CHARACTER YAMAKKAN        0E4E
 THAI CURRENCY SYMBOL BAHT      0E3F
 Thai Digits    0E50
 Thai Letters   0E01
-THANTHAKHAT, THAI CHARACTER    0E4C
 THERE EXISTS   2203
 THEREFORE      2234
+thick space    2004
 THIN SPACE     2009
 third derivative       20DB
 third transfinite cardinal (functions of a real variable)      2137
-THIRD, VULGAR FRACTION ONE     2153
-THIRDS, VULGAR FRACTION TWO    2154
+Thirds, Fractions      2153
 THORN, LATIN CAPITAL LETTER    00DE
 THORN, LATIN SMALL LETTER      00FE
-THOUSAND SIGN, PER TEN 2031
 THOUSANDS SEPARATOR, ARABIC    066C
 THOUSANDS SIGN, CYRILLIC       0482
 three dot leader       2026
 THREE DOTS ABOVE, COMBINING    20DB
-THREE EIGHTHS, VULGAR FRACTION 215C
-THREE FIFTHS, VULGAR FRACTION  2157
 THREE QUARTERS, VULGAR FRACTION        00BE
 THREE, SUPERSCRIPT     00B3
 THREE-PER-EM SPACE     2004
@@ -2629,10 +2798,13 @@ THUNDERSTORM    2608
 Tibetan        0F00
 Tibetan Digits 0F20
 Tibetan Letters        0F40
+Tibetan, Mongolian Extensions for Sanskrit and 1880
 TIE, CHARACTER 2040
 TILDE  007E
+TILDE ABOVE, COMBINING NOT     034A
 TILDE BELOW, COMBINING 0330
 TILDE EQUALS, REVERSED 22CD
+TILDE LEFT HALF, COMBINING DOUBLE      FE22
 TILDE OPERATOR 223C
 TILDE OVERLAY, COMBINING       0334
 tilde, apl     223C
@@ -2640,30 +2812,25 @@ TILDE, COMBINING        0303
 TILDE, COMBINING DOUBLE        0360
 TILDE, COMBINING VERTICAL      033E
 TILDE, MINUS   2242
-TILDE, NOT     2241
 TILDE, REVERSED        223D
 TILDE, SMALL   02DC
 TILDE, TRIPLE  224B
 TIMES, CIRCLED 2297
 TIMES, DIVISION        22C7
 TIMES, SQUARED 22A0
-TIPPI, GURMUKHI        0A70
+TIRONIAN SIGN ET       204A
 TIS 620-2529 (Thai), Based on  0E01
-TITLO, COMBINING CYRILLIC      0483
-TONE BAR, MODIFIER LETTER EXTRA-HIGH   02E5
-TONE BAR, MODIFIER LETTER EXTRA-LOW    02E9
-TONE BAR, MODIFIER LETTER HIGH 02E6
-TONE BAR, MODIFIER LETTER LOW  02E8
-TONE BAR, MODIFIER LETTER MID  02E7
-Tone Letters   02E5
+Todo Letters, Mongolian        1843
+Tone Bar Letters       02E5
+TONE FIVE, LATIN SMALL LETTER  01BD
 TONE MARK, COMBINING ACUTE     0341
 TONE MARK, COMBINING GRAVE     0340
 Tone Marks, Ideographic        302A
 Tone Marks, Vietnamese 0340
+TONE SIX, LATIN SMALL LETTER   0185
+TONE TWO, LATIN SMALL LETTER   01A8
+tonos  0301
 TONOS, COMBINING GREEK DIALYTIKA       0344
-tonos, greek   030D
-TONOS, GREEK   0384
-TONOS, GREEK DIALYTIKA 0385
 TOP HALF INTEGRAL      2320
 TOP LEFT CORNER        231C
 TOP LEFT CROP  230F
@@ -2676,21 +2843,27 @@ transfinite cardinal (countable), first 2135
 transfinite cardinal (functions of a real variable), third     2137
 transfinite cardinal (the continuum), second   2136
 transfinite cardinal, fourth   2138
+transmission block, end of     0017
+TRANSMISSION BLOCK, SYMBOL FOR END OF  2417
+transmission, end of   0004
+transmission, graphic for end of       2301
+TRANSMISSION, SYMBOL FOR END OF        2404
+transmit state, set    0093
 TRIANGLE, RIGHT        22BF
 Triangles      25B2
 TRIANGULAR BULLET      2023
 TRIANGULAR COLON, MODIFIER LETTER      02D0
 TRIANGULAR COLON, MODIFIER LETTER HALF 02D1
-Trigrams, Yi Jing      2630
+Trigram Symbols, Yijing        2630
 trine  25B3
 TRIPLE INTEGRAL        222D
 TRIPLE PRIME   2034
 TRIPLE PRIME, REVERSED 2037
 TRIPLE TILDE   224B
-TRIPLE VERTICAL BAR RIGHT TURNSTILE    22AA
 TRUE   22A8
-TS DIGRAPH, LATIN SMALL LETTER 02A6
+TUGRIK SIGN    20AE
 turbofan       274B
+turkish currency       20A4
 TURNED A, LATIN SMALL LETTER   0250
 TURNED ALPHA, LATIN SMALL LETTER       0252
 TURNED CAPITAL F       2132
@@ -2699,7 +2872,7 @@ turned comma quotation mark, double       201C
 turned comma quotation mark, single    2018
 TURNED COMMA, MODIFIER LETTER  02BB
 TURNED DELTA, LATIN SMALL LETTER       018D
-turned E, latin capital letter 018E
+turned e, latin capital letter 018E
 TURNED E, LATIN SMALL LETTER   01DD
 TURNED GREEK SMALL LETTER IOTA 2129
 TURNED H, LATIN SMALL LETTER   0265
@@ -2709,22 +2882,21 @@ TURNED M, LATIN SMALL LETTER    026F
 TURNED NOT SIGN        2319
 turned question mark   00BF
 TURNED R, LATIN SMALL LETTER   0279
+TURNED R, MODIFIER LETTER SMALL        02B4
 TURNED T, LATIN SMALL LETTER   0287
 TURNED V, LATIN SMALL LETTER   028C
 TURNED W, LATIN SMALL LETTER   028D
 TURNED Y, LATIN SMALL LETTER   028E
 turnstile      22A2
-TURNSTILE, DOUBLE VERTICAL BAR DOUBLE RIGHT    22AB
 turnstile, reverse     22A3
-TURNSTILE, TRIPLE VERTICAL BAR RIGHT   22AA
 TWO DOT LEADER 2025
-TWO FIFTHS, VULGAR FRACTION    2156
-TWO THIRDS, VULGAR FRACTION    2154
 TWO, SUPERSCRIPT       00B2
-UDATTA, DEVANAGARI STRESS SIGN 0951
 UMBRELLA       2602
 umlaut 0308
+UNASPIRATED, MODIFIER LETTER   02ED
 underline      0332
+UNDERLINE SYMBOL, CONTINUOUS   2381
+UNDERLINE SYMBOL, DISCONTINUOUS        2382
 underline, double      0333
 underscore     0332
 underscore, double     0333
@@ -2732,48 +2904,50 @@ underscore, spacing     005F
 underscore, spacing double     2017
 Underscores, Overscores and    FE49
 UNDERTIE       203F
-Unified Ideographs, CJK        4E00
+UNDO SYMBOL    238C
+undoable delete        2425
 UNION  222A
 UNION, DOUBLE  22D3
 UNION, MULTISET        228E
 UNION, N-ARY   22C3
-UNIT SEPARATOR 001F
+unique element 2129
+unit separator 001F
+UNIT SEPARATOR, SYMBOL FOR     241F
 UP ARROWHEAD   2303
+UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS       2324
 UP RIGHT DIAGONAL ELLIPSIS     22F0
 UP TACK        22A5
 UP TACK BELOW, COMBINING       031D
 UP TACK, MODIFIER LETTER       02D4
-upper numeral sign, greek      0374
+up, page       21DE
+UPPER BLADE SCISSORS   2701
+UPPER RIGHT PENCIL     2710
 UPSILON, LATIN CAPITAL LETTER  01B1
 UPSILON, LATIN SMALL LETTER    028A
 upstile, apl   2308
+UPWARDS ARROW BELOW, COMBINING 034E
 URANUS 2645
 urdu paragraph separator       203B
-Urdu, Eastern Arabic-Indic Digits (Persian and)        06F0
-v above        030C
+Urdu, Eastern Arabic-Indic Digits for Persian and      06F0
+V WITH HOOK, LATIN CAPITAL LETTER      01B2
 v, latin capital letter script 01B2
 v, latin small letter script   028B
 V, LATIN SMALL LETTER TURNED   028C
 valentine      2665
-valid, statement is true       22A8
-varia, greek   0300
-Variants, Fullwidth ASCII      FF01
-Variants, Fullwidth Symbol     FFE0
-Variants, Glyphs for Vertical  FE30
-Variants, Halfwidth Japanese Katakana  FF61
-Variants, Halfwidth Korean Hangul      FFA0
-Variants, Small Form   FE50
+valid  22A8
+varia  0300
 varies with (proportional to)  223C
+vector 20D0
+vector 20D6
 vector pointing into page      2295
 vector pointing into page      2297
 vector pointing out of page    2299
 vee    2228
+vee above      030C
 venus  2640
 VERSICLE       2123
 vertical bar   007C
 Vertical Bar Dingbats  2758
-VERTICAL BAR DOUBLE RIGHT TURNSTILE, DOUBLE    22AB
-VERTICAL BAR RIGHT TURNSTILE, TRIPLE   22AA
 vertical bar, broken   00A6
 VERTICAL ELLIPSIS      22EE
 VERTICAL KANA REPEAT MARK      3031
@@ -2781,20 +2955,25 @@ VERTICAL LINE   007C
 VERTICAL LINE ABOVE, COMBINING 030D
 VERTICAL LINE ABOVE, COMBINING DOUBLE  030E
 VERTICAL LINE BELOW, COMBINING 0329
+VERTICAL LINE BELOW, COMBINING DOUBLE  0348
 VERTICAL LINE OVERLAY, COMBINING LONG  20D2
 VERTICAL LINE OVERLAY, COMBINING SHORT 20D3
+VERTICAL LINE WITH MIDDLE DOT  237F
 VERTICAL LINE, DOUBLE  2016
 VERTICAL LINE, MODIFIER LETTER 02C8
 VERTICAL LINE, MODIFIER LETTER LOW     02CC
-VERTICAL TABULATION    000B
+vertical tabulation    000B
+VERTICAL TABULATION, SYMBOL FOR        240B
 VERTICAL TILDE, COMBINING      033E
 Vertical Variants, Glyphs for  FE30
-vertsaket, armenian    0589
 VERY MUCH GREATER-THAN 22D9
 VERY MUCH LESS-THAN    22D8
 VICTORY HAND   270C
+vietnamese currency    20AB
 Vietnamese Tone Marks  0340
+Vietnamese, Latin Extensions for       1EA0
 VIEWDATA SQUARE        2317
+vinculum       0305
 VIRAMA, BENGALI SIGN   09CD
 VIRAMA, DEVANAGARI SIGN        094D
 VIRAMA, GUJARATI SIGN  0ACD
@@ -2806,70 +2985,64 @@ VIRAMA, TAMIL SIGN      0BCD
 VIRAMA, TELUGU SIGN    0C4D
 VIRGO  264D
 virgule        002F
-VISARGA, BENGALI SIGN  0983
-VISARGA, DEVANAGARI SIGN       0903
-VISARGA, GUJARATI SIGN 0A83
-VISARGA, KANNADA SIGN  0C83
-VISARGA, MALAYALAM SIGN        0D03
-VISARGA, ORIYA SIGN    0B03
-VISARGA, TAMIL SIGN    0B83
-VISARGA, TELUGU SIGN   0C03
+VOICED FRICATIVE, LATIN LETTER PHARYNGEAL      0295
 VOICED SOUND MARK, COMBINING KATAKANA-HIRAGANA 3099
 VOICED SOUND MARK, KATAKANA-HIRAGANA   309B
+VOICING, MODIFIER LETTER       02EC
 VOLUME INTEGRAL        2230
-vrachy, greek  0306
+vrachy 0306
 W, LATIN SMALL LETTER TURNED   028D
-Warning Dingbats       2620
+W, MODIFIER LETTER SMALL       02B7
+Warning Signs  2620
 WATCH  231A
 WAVE DASH      301C
 WAVE, SINE     223F
 WAVY DASH      3030
 WAVY LINE      2307
-Weather Dingbats       2600
+WAVY LOW LINE  FE4F
+WAVY OVERLINE  FE4B
+WAVY OVERLINE, DOUBLE  FE4C
+Weather and Astrological Symbols       2600
 wedge  028C
 wedge  2227
 weierstrass elliptic function  2118
 WHEEL OF DHARMA        2638
-WHITE BULLET   25E6
-WHITE CIRCLE   25CB
-WHITE CORNER BRACKET, LEFT     300E
-WHITE DIAMOND  25C7
-WHITE FROWNING FACE    2639
-WHITE LENTICULAR BRACKET, LEFT 3016
-WHITE RECTANGLE        25AD
-WHITE SMILING FACE     263A
-WHITE SQUARE BRACKET, LEFT     301A
-WHITE STAR     2606
-WHITE SUN WITH RAYS    263C
-WHITE TELEPHONE        260F
-WHITE TORTOISE SHELL BRACKET, LEFT     3018
 WON SIGN       20A9
+Words, Squared Japanese Katakana       3300
+WORDSPACE, ETHIOPIC    1361
 WREATH PRODUCT 2240
 WRITING HAND   270D
+WYNN, LATIN CAPITAL LETTER     01F7
 WYNN, LATIN LETTER     01BF
 X ABOVE, COMBINING     033D
 X IN A RECTANGLE BOX   2327
 X, BALLOT      2717
 X, BALLOT BOX WITH     2612
+X, HEAVY BALLOT        2718
+X, HEAVY MULTIPLICATION        2716
+X, MODIFIER LETTER SMALL       02E3
 X, MULTIPLICATION      2715
 XOR    22BB
 Y, LATIN LETTER SMALL CAPITAL  028F
 Y, LATIN SMALL LETTER TURNED   028E
-YAMAKKAN, THAI CHARACTER       0E4E
+Y, MODIFIER LETTER SMALL       02B8
+YANG, YIN      262F
 YEN SIGN       00A5
-Yi Jing Trigrams       2630
-Yiddish Hebrew Ligatures or Digraphs   05F0
-yields, proves, implies        22A2
+Yi Radicals    A490
+Yi Syllables   A000
+Yiddish Digraphs       05F0
+yields 22A2
+Yijing Trigram Symbols 2630
 YIN YANG       262F
 yogh, latin capital letter     01B7
+YOGH, LATIN SMALL LETTER       021D
 yogh, latin small letter       0292
 YPOGEGRAMMENI, COMBINING GREEK 0345
-YPOGEGRAMMENI, GREEK   037A
 YR, LATIN LETTER       01A6
 yuan sign      00A5
 Z, BLACK-LETTER CAPITAL        2128
 Z, DOUBLE-STRUCK CAPITAL       2124
-Zapf Dingbats  2700
+Zapf Dingbats Series 100, ITC  2700
 ZERO WIDTH JOINER      200D
 ZERO WIDTH NO-BREAK SPACE      FEFF
 ZERO WIDTH NON-JOINER  200C
@@ -2877,6 +3050,6 @@ ZERO WIDTH SPACE  200B
 ZERO, CIRCLED DIGIT    24EA
 ZERO, IDEOGRAPHIC NUMBER       3007
 ZERO, SUPERSCRIPT      2070
-Zodiac Symbols 2648
-zwj ("zawj")   200D
-zwnj ("zwinj") 200C
+Zodiacal Symbols       2648
+zwj    200D
+zwnj   200C
index 20f66e5..18200ff 100644 (file)
@@ -241,11 +241,6 @@ return <<'END';
 3400   4db5
 4e00   9fa5
 a000   a48c
-a490   a4a1
-a4a4   a4b3
-a4b5   a4c0
-a4c2   a4c4
-a4c6   
 ac00   d7a3
 f900   fa2d
 fb00   fb06
index 3177149..1be8129 100644 (file)
@@ -224,11 +224,6 @@ return <<'END';
 3400   4db5
 4e00   9fa5
 a000   a48c
-a490   a4a1
-a4a4   a4b3
-a4b5   a4c0
-a4c2   a4c4
-a4c6   
 ac00   d7a3
 f900   fa2d
 fb00   fb06
index 0f16811..4c16fe7 100644 (file)
@@ -4,7 +4,6 @@ return <<'END';
 003a   
 00a0   
 060c   
-202f   
 fe50   
 fe52   
 fe55   
index 913f0e5..ae19cba 100644 (file)
@@ -277,6 +277,7 @@ return <<'END';
 2133   2139
 2160   2183
 2336   237a
+2395   
 249c   24e9
 3005   3007
 3021   3029
@@ -301,11 +302,6 @@ return <<'END';
 3400   4db5
 4e00   9fa5
 a000   a48c
-a490   a4a1
-a4a4   a4b3
-a4b5   a4c0
-a4c2   a4c4
-a4c6   
 ac00   d7a3
 d800   db7f
 db80   dbff
index 061ecff..8924a60 100644 (file)
@@ -53,7 +53,8 @@ return <<'END';
 2214   22f1
 2300   2335
 237b   
-237d   239a
+237d   2394
+2396   239a
 2400   2426
 2440   244a
 2500   2595
@@ -84,6 +85,11 @@ return <<'END';
 303e   303f
 309b   309c
 30fb   
+a490   a4a1
+a4a4   a4b3
+a4b5   a4c0
+a4c2   a4c4
+a4c6   
 fd3e   fd3f
 fe30   fe44
 fe49   fe4f
index 9a6a880..8322155 100644 (file)
@@ -4,5 +4,6 @@ return <<'END';
 1680   
 2000   200a
 2028   
+202f   
 3000   
 END
index 86e73d0..b6d925b 100644 (file)
@@ -1,5 +1,4 @@
 return <<'END';
-005e   0060
 00a8   
 00af   
 00b4   00b5
@@ -18,6 +17,8 @@ return <<'END';
 03f0   03f2
 0587   
 0675   0678
+0e33   
+0eb3   
 0edc   0edd
 0f77   
 0f79   
index 53ac385..35a0869 100644 (file)
@@ -80,8 +80,6 @@ return <<'END';
 0d4a   0d4c
 0dda   
 0ddc   0dde
-0e33   
-0eb3   
 0f43   
 0f4d   
 0f52   
index 7b68855..944d691 100644 (file)
@@ -1,5 +1,4 @@
 return <<'END';
-005e   0060
 00a0   
 00a8   
 00aa   
@@ -23,6 +22,8 @@ return <<'END';
 03f0   03f2
 0587   
 0675   0678
+0e33   
+0eb3   
 0edc   0edd
 0f0c   
 0f77   
index ac98766..7ab2842 100644 (file)
@@ -228,11 +228,6 @@ return <<'END';
 3400   4db5
 4e00   9fa5
 a000   a48c
-a490   a4a1
-a4a4   a4b3
-a4b5   a4c0
-a4c2   a4c4
-a4c6   
 ac00   d7a3
 f900   fa2d
 fb00   fb06
index 9a7588c..da6b7d7 100644 (file)
@@ -79,14 +79,13 @@ return <<'END';
 01a3   
 01a5   
 01a8   
-01ab   
+01aa   01ab
 01ad   
 01b0   
 01b4   
 01b6   
 01b9   01ba
-01bd   
-01bf   
+01bd   01bf
 01c6   
 01c9   
 01cc   
@@ -153,7 +152,7 @@ return <<'END';
 03e9   
 03eb   
 03ed   
-03ef   03f2
+03ef   03f3
 0430   045f
 0461   
 0463   
index 57f722b..e5f4537 100644 (file)
@@ -1,10 +1,6 @@
 return <<'END';
-01aa   
 01bb   
-01be   
 01c0   01c3
-03f3   
-04c0   
 05d0   05ea
 05f0   05f2
 0621   063a
@@ -165,11 +161,6 @@ return <<'END';
 3400   4db5
 4e00   9fa5
 a000   a48c
-a490   a4a1
-a4a4   a4b3
-a4b5   a4c0
-a4c2   a4c4
-a4c6   
 ac00   d7a3
 f900   fa2d
 fb1d   
index 9a7588c..da6b7d7 100644 (file)
@@ -79,14 +79,13 @@ return <<'END';
 01a3   
 01a5   
 01a8   
-01ab   
+01aa   01ab
 01ad   
 01b0   
 01b4   
 01b6   
 01b9   01ba
-01bd   
-01bf   
+01bd   01bf
 01c6   
 01c9   
 01cc   
@@ -153,7 +152,7 @@ return <<'END';
 03e9   
 03eb   
 03ed   
-03ef   03f2
+03ef   03f3
 0430   045f
 0461   
 0463   
index 928e10b..eb8052e 100644 (file)
@@ -196,7 +196,7 @@ return <<'END';
 04ba   
 04bc   
 04be   
-04c1   
+04c0   04c1
 04c3   
 04c7   
 04cb   
index e2d9477..f1c1439 100644 (file)
@@ -2,6 +2,7 @@ return <<'END';
 002d   
 00ad   
 058a   
+1806   
 2010   2015
 301c   
 3030   
index 05a22f2..0e230d8 100644 (file)
@@ -38,7 +38,8 @@ return <<'END';
 16eb   16ed
 17d4   17da
 17dc   
-1800   180a
+1800   1805
+1807   180a
 2016   2017
 2020   2027
 2030   2038
index 851a0f6..9292596 100644 (file)
@@ -106,6 +106,11 @@ return <<'END';
 3300   3376
 337b   33dd
 33e0   33fe
+a490   a4a1
+a4a4   a4b3
+a4b5   a4c0
+a4c2   a4c4
+a4c6   
 fb29   
 fe62   
 fe64   fe66
index 5be99c8..e68877a 100644 (file)
@@ -11,11 +11,20 @@ return <<'END';
 207a   207c
 208a   208c
 2190   2194
+219a   219b
+21a0   
+21a3   
+21a6   
+21ae   
+21ce   21cf
 21d2   
 21d4   
 2200   22f1
 2308   230b
 2320   2321
+25b7   
+25c1   
+266f   
 fb29   
 fe62   
 fe64   fe66
index 07cb14d..6e937d6 100644 (file)
@@ -30,7 +30,13 @@ return <<'END';
 212e   
 2132   
 213a   
-2195   21d1
+2195   2199
+219c   219f
+21a1   21a2
+21a4   21a5
+21a7   21ad
+21af   21cd
+21d0   21d1
 21d3   
 21d5   21f3
 2300   2307
@@ -42,9 +48,12 @@ return <<'END';
 2440   244a
 249c   24e9
 2500   2595
-25a0   25f7
+25a0   25b6
+25b8   25c0
+25c2   25f7
 2600   2613
-2619   2671
+2619   266e
+2670   2671
 2701   2704
 2706   2709
 270c   2727
@@ -79,6 +88,11 @@ return <<'END';
 3300   3376
 337b   33dd
 33e0   33fe
+a490   a4a1
+a4a4   a4b3
+a4b5   a4c0
+a4c2   a4c4
+a4c6   
 ffe4   
 ffe8   
 ffed   ffee
index 928e10b..eb8052e 100644 (file)
@@ -196,7 +196,7 @@ return <<'END';
 04ba   
 04bc   
 04be   
-04c1   
+04c0   04c1
 04c3   
 04c7   
 04cb   
index 9ce5137..f30d2f1 100644 (file)
@@ -242,11 +242,6 @@ return <<'END';
 3400   4db5
 4e00   9fa5
 a000   a48c
-a490   a4a1
-a4a4   a4b3
-a4b5   a4c0
-a4c2   a4c4
-a4c6   
 ac00   d7a3
 f900   fa2d
 fb00   fb06
old mode 100755 (executable)
new mode 100644 (file)
similarity index 98%
rename from lib/unicode/jamo2.txt
rename to lib/unicode/Jamo-2.txt
index c81776a..6910ab9
@@ -4,7 +4,7 @@ U+1101; GG; HANGUL CHOSEONG SSANGKIYEOK
 U+1102; N; HANGUL CHOSEONG NIEUN
 U+1103; D; HANGUL CHOSEONG TIKEUT
 U+1104; DD; HANGUL CHOSEONG SSANGTIKEUT
-U+1105; L; HANGUL CHOSEONG RIEUL
+U+1105; R; HANGUL CHOSEONG RIEUL
 U+1106; M; HANGUL CHOSEONG MIEUM
 U+1107; B; HANGUL CHOSEONG PIEUP
 U+1108; BB; HANGUL CHOSEONG SSANGPIEUP
index 6aad4da..433ee82 100644 (file)
@@ -4,7 +4,7 @@ return <<'END';
 1102           N
 1103           D
 1104           DD
-1105           L
+1105           R
 1106           M
 1107           B
 1108           BB
diff --git a/lib/unicode/LineBrk.txt b/lib/unicode/LineBrk.txt
new file mode 100644 (file)
index 0000000..48f6c50
--- /dev/null
@@ -0,0 +1,10643 @@
+# LineBreak-5.txt
+#
+# Line Break Properties
+#
+# This file is a supplement to the UnicodeData file.
+# It contains both normative and informative data.
+# The format is three fields separated by semicolons.
+# Field 1: Unicode value
+# Field 2: LineBreak property, consisting of one of the following values:
+#   Normative:
+#         "BK", "CR", "LF", "CM", "SG", "GL", "CB", "SP", "ZW"
+#   Informative:
+#         "XX", "OP", "CL", "QU", "NS", "EX", "SY",
+#         "IS", "PR", "PO", "NU", "AL", "ID", "IN", "HY",
+#         "BB", "BA", "SA", "AI", "B2"
+#  - Assigned characters that are not listed explicitly are given the value
+#    "AL".
+#  - Unassigned characters are given the value "XX".
+#  - Characters within ranges marked by "First>" and "Last>" are omitted,
+#    as in UnicodeData.txt. For example, the following means that
+#    all characters between 3400 and 4DB5 have the value "ID"
+#     3400;ID;<CJK Ideograph Extension A, First>
+#     4DB5;ID;<CJK Ideograph Extension A, Last>
+# Field 3: Unicode name (this is purely informative)
+#
+# See UTR #14: Line Breaking Properties for more information
+0000;CM;<control>
+0001;CM;<control>
+0002;CM;<control>
+0003;CM;<control>
+0004;CM;<control>
+0005;CM;<control>
+0006;CM;<control>
+0007;CM;<control>
+0008;CM;<control>
+0009;BA;<control>
+000A;LF;<control>
+000B;CM;<control>
+000C;BK;<control>
+000D;CR;<control>
+000E;CM;<control>
+000F;CM;<control>
+0010;CM;<control>
+0011;CM;<control>
+0012;CM;<control>
+0013;CM;<control>
+0014;CM;<control>
+0015;CM;<control>
+0016;CM;<control>
+0017;CM;<control>
+0018;CM;<control>
+0019;CM;<control>
+001A;CM;<control>
+001B;CM;<control>
+001C;CM;<control>
+001D;CM;<control>
+001E;CM;<control>
+001F;CM;<control>
+0020;SP;SPACE
+0021;EX;EXCLAMATION MARK
+0022;QU;QUOTATION MARK
+0023;AL;NUMBER SIGN
+0024;PR;DOLLAR SIGN
+0025;PO;PERCENT SIGN
+0026;AL;AMPERSAND
+0027;QU;APOSTROPHE
+0028;OP;LEFT PARENTHESIS
+0029;CL;RIGHT PARENTHESIS
+002A;AL;ASTERISK
+002B;PR;PLUS SIGN
+002C;IS;COMMA
+002D;HY;HYPHEN-MINUS
+002E;IS;FULL STOP
+002F;SY;SOLIDUS
+0030;NU;DIGIT ZERO
+0031;NU;DIGIT ONE
+0032;NU;DIGIT TWO
+0033;NU;DIGIT THREE
+0034;NU;DIGIT FOUR
+0035;NU;DIGIT FIVE
+0036;NU;DIGIT SIX
+0037;NU;DIGIT SEVEN
+0038;NU;DIGIT EIGHT
+0039;NU;DIGIT NINE
+003A;IS;COLON
+003B;IS;SEMICOLON
+003C;AL;LESS-THAN SIGN
+003D;AL;EQUALS SIGN
+003E;AL;GREATER-THAN SIGN
+003F;EX;QUESTION MARK
+0040;AL;COMMERCIAL AT
+0041;AL;LATIN CAPITAL LETTER A
+0042;AL;LATIN CAPITAL LETTER B
+0043;AL;LATIN CAPITAL LETTER C
+0044;AL;LATIN CAPITAL LETTER D
+0045;AL;LATIN CAPITAL LETTER E
+0046;AL;LATIN CAPITAL LETTER F
+0047;AL;LATIN CAPITAL LETTER G
+0048;AL;LATIN CAPITAL LETTER H
+0049;AL;LATIN CAPITAL LETTER I
+004A;AL;LATIN CAPITAL LETTER J
+004B;AL;LATIN CAPITAL LETTER K
+004C;AL;LATIN CAPITAL LETTER L
+004D;AL;LATIN CAPITAL LETTER M
+004E;AL;LATIN CAPITAL LETTER N
+004F;AL;LATIN CAPITAL LETTER O
+0050;AL;LATIN CAPITAL LETTER P
+0051;AL;LATIN CAPITAL LETTER Q
+0052;AL;LATIN CAPITAL LETTER R
+0053;AL;LATIN CAPITAL LETTER S
+0054;AL;LATIN CAPITAL LETTER T
+0055;AL;LATIN CAPITAL LETTER U
+0056;AL;LATIN CAPITAL LETTER V
+0057;AL;LATIN CAPITAL LETTER W
+0058;AL;LATIN CAPITAL LETTER X
+0059;AL;LATIN CAPITAL LETTER Y
+005A;AL;LATIN CAPITAL LETTER Z
+005B;OP;LEFT SQUARE BRACKET
+005C;PR;REVERSE SOLIDUS
+005D;CL;RIGHT SQUARE BRACKET
+005E;AL;CIRCUMFLEX ACCENT
+005F;AL;LOW LINE
+0060;AL;GRAVE ACCENT
+0061;AL;LATIN SMALL LETTER A
+0062;AL;LATIN SMALL LETTER B
+0063;AL;LATIN SMALL LETTER C
+0064;AL;LATIN SMALL LETTER D
+0065;AL;LATIN SMALL LETTER E
+0066;AL;LATIN SMALL LETTER F
+0067;AL;LATIN SMALL LETTER G
+0068;AL;LATIN SMALL LETTER H
+0069;AL;LATIN SMALL LETTER I
+006A;AL;LATIN SMALL LETTER J
+006B;AL;LATIN SMALL LETTER K
+006C;AL;LATIN SMALL LETTER L
+006D;AL;LATIN SMALL LETTER M
+006E;AL;LATIN SMALL LETTER N
+006F;AL;LATIN SMALL LETTER O
+0070;AL;LATIN SMALL LETTER P
+0071;AL;LATIN SMALL LETTER Q
+0072;AL;LATIN SMALL LETTER R
+0073;AL;LATIN SMALL LETTER S
+0074;AL;LATIN SMALL LETTER T
+0075;AL;LATIN SMALL LETTER U
+0076;AL;LATIN SMALL LETTER V
+0077;AL;LATIN SMALL LETTER W
+0078;AL;LATIN SMALL LETTER X
+0079;AL;LATIN SMALL LETTER Y
+007A;AL;LATIN SMALL LETTER Z
+007B;OP;LEFT CURLY BRACKET
+007C;BA;VERTICAL LINE
+007D;CL;RIGHT CURLY BRACKET
+007E;AL;TILDE
+007F;CM;<control>
+0080;CM;<control>
+0081;CM;<control>
+0082;CM;<control>
+0083;CM;<control>
+0084;CM;<control>
+0085;CM;<control>
+0086;CM;<control>
+0087;CM;<control>
+0088;CM;<control>
+0089;CM;<control>
+008A;CM;<control>
+008B;CM;<control>
+008C;CM;<control>
+008D;CM;<control>
+008E;CM;<control>
+008F;CM;<control>
+0090;CM;<control>
+0091;CM;<control>
+0092;CM;<control>
+0093;CM;<control>
+0094;CM;<control>
+0095;CM;<control>
+0096;CM;<control>
+0097;CM;<control>
+0098;CM;<control>
+0099;CM;<control>
+009A;CM;<control>
+009B;CM;<control>
+009C;CM;<control>
+009D;CM;<control>
+009E;CM;<control>
+009F;CM;<control>
+00A0;GL;NO-BREAK SPACE
+00A1;AI;INVERTED EXCLAMATION MARK
+00A2;PO;CENT SIGN
+00A3;PR;POUND SIGN
+00A4;PR;CURRENCY SIGN
+00A5;PR;YEN SIGN
+00A6;AL;BROKEN BAR
+00A7;AI;SECTION SIGN
+00A8;AI;DIAERESIS
+00A9;AL;COPYRIGHT SIGN
+00AA;AI;FEMININE ORDINAL INDICATOR
+00AB;QU;LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+00AC;AL;NOT SIGN
+00AD;BA;SOFT HYPHEN
+00AE;AL;REGISTERED SIGN
+00AF;AL;MACRON
+00B0;PO;DEGREE SIGN
+00B1;PR;PLUS-MINUS SIGN
+00B2;AI;SUPERSCRIPT TWO
+00B3;AI;SUPERSCRIPT THREE
+00B4;BA;ACUTE ACCENT
+00B5;AL;MICRO SIGN
+00B6;AI;PILCROW SIGN
+00B7;AI;MIDDLE DOT
+00B8;AI;CEDILLA
+00B9;AI;SUPERSCRIPT ONE
+00BA;AI;MASCULINE ORDINAL INDICATOR
+00BB;QU;RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+00BC;AI;VULGAR FRACTION ONE QUARTER
+00BD;AI;VULGAR FRACTION ONE HALF
+00BE;AI;VULGAR FRACTION THREE QUARTERS
+00BF;AI;INVERTED QUESTION MARK
+00C0;AL;LATIN CAPITAL LETTER A WITH GRAVE
+00C1;AL;LATIN CAPITAL LETTER A WITH ACUTE
+00C2;AL;LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+00C3;AL;LATIN CAPITAL LETTER A WITH TILDE
+00C4;AL;LATIN CAPITAL LETTER A WITH DIAERESIS
+00C5;AL;LATIN CAPITAL LETTER A WITH RING ABOVE
+00C6;AI;LATIN CAPITAL LETTER AE
+00C7;AL;LATIN CAPITAL LETTER C WITH CEDILLA
+00C8;AL;LATIN CAPITAL LETTER E WITH GRAVE
+00C9;AL;LATIN CAPITAL LETTER E WITH ACUTE
+00CA;AL;LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+00CB;AL;LATIN CAPITAL LETTER E WITH DIAERESIS
+00CC;AL;LATIN CAPITAL LETTER I WITH GRAVE
+00CD;AL;LATIN CAPITAL LETTER I WITH ACUTE
+00CE;AL;LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+00CF;AL;LATIN CAPITAL LETTER I WITH DIAERESIS
+00D0;AI;LATIN CAPITAL LETTER ETH
+00D1;AL;LATIN CAPITAL LETTER N WITH TILDE
+00D2;AL;LATIN CAPITAL LETTER O WITH GRAVE
+00D3;AL;LATIN CAPITAL LETTER O WITH ACUTE
+00D4;AL;LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+00D5;AL;LATIN CAPITAL LETTER O WITH TILDE
+00D6;AL;LATIN CAPITAL LETTER O WITH DIAERESIS
+00D7;AI;MULTIPLICATION SIGN
+00D8;AI;LATIN CAPITAL LETTER O WITH STROKE
+00D9;AL;LATIN CAPITAL LETTER U WITH GRAVE
+00DA;AL;LATIN CAPITAL LETTER U WITH ACUTE
+00DB;AL;LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+00DC;AL;LATIN CAPITAL LETTER U WITH DIAERESIS
+00DD;AL;LATIN CAPITAL LETTER Y WITH ACUTE
+00DE;AI;LATIN CAPITAL LETTER THORN
+00DF;AI;LATIN SMALL LETTER SHARP S
+00E0;AI;LATIN SMALL LETTER A WITH GRAVE
+00E1;AI;LATIN SMALL LETTER A WITH ACUTE
+00E2;AL;LATIN SMALL LETTER A WITH CIRCUMFLEX
+00E3;AL;LATIN SMALL LETTER A WITH TILDE
+00E4;AL;LATIN SMALL LETTER A WITH DIAERESIS
+00E5;AL;LATIN SMALL LETTER A WITH RING ABOVE
+00E6;AI;LATIN SMALL LETTER AE
+00E7;AL;LATIN SMALL LETTER C WITH CEDILLA
+00E8;AI;LATIN SMALL LETTER E WITH GRAVE
+00E9;AI;LATIN SMALL LETTER E WITH ACUTE
+00EA;AI;LATIN SMALL LETTER E WITH CIRCUMFLEX
+00EB;AL;LATIN SMALL LETTER E WITH DIAERESIS
+00EC;AI;LATIN SMALL LETTER I WITH GRAVE
+00ED;AI;LATIN SMALL LETTER I WITH ACUTE
+00EE;AL;LATIN SMALL LETTER I WITH CIRCUMFLEX
+00EF;AL;LATIN SMALL LETTER I WITH DIAERESIS
+00F0;AI;LATIN SMALL LETTER ETH
+00F1;AL;LATIN SMALL LETTER N WITH TILDE
+00F2;AI;LATIN SMALL LETTER O WITH GRAVE
+00F3;AI;LATIN SMALL LETTER O WITH ACUTE
+00F4;AL;LATIN SMALL LETTER O WITH CIRCUMFLEX
+00F5;AL;LATIN SMALL LETTER O WITH TILDE
+00F6;AL;LATIN SMALL LETTER O WITH DIAERESIS
+00F7;AI;DIVISION SIGN
+00F8;AI;LATIN SMALL LETTER O WITH STROKE
+00F9;AI;LATIN SMALL LETTER U WITH GRAVE
+00FA;AI;LATIN SMALL LETTER U WITH ACUTE
+00FB;AL;LATIN SMALL LETTER U WITH CIRCUMFLEX
+00FC;AI;LATIN SMALL LETTER U WITH DIAERESIS
+00FD;AL;LATIN SMALL LETTER Y WITH ACUTE
+00FE;AI;LATIN SMALL LETTER THORN
+00FF;AL;LATIN SMALL LETTER Y WITH DIAERESIS
+0100;AL;LATIN CAPITAL LETTER A WITH MACRON
+0101;AI;LATIN SMALL LETTER A WITH MACRON
+0102;AL;LATIN CAPITAL LETTER A WITH BREVE
+0103;AL;LATIN SMALL LETTER A WITH BREVE
+0104;AL;LATIN CAPITAL LETTER A WITH OGONEK
+0105;AL;LATIN SMALL LETTER A WITH OGONEK
+0106;AL;LATIN CAPITAL LETTER C WITH ACUTE
+0107;AL;LATIN SMALL LETTER C WITH ACUTE
+0108;AL;LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+0109;AL;LATIN SMALL LETTER C WITH CIRCUMFLEX
+010A;AL;LATIN CAPITAL LETTER C WITH DOT ABOVE
+010B;AL;LATIN SMALL LETTER C WITH DOT ABOVE
+010C;AL;LATIN CAPITAL LETTER C WITH CARON
+010D;AL;LATIN SMALL LETTER C WITH CARON
+010E;AL;LATIN CAPITAL LETTER D WITH CARON
+010F;AL;LATIN SMALL LETTER D WITH CARON
+0110;AL;LATIN CAPITAL LETTER D WITH STROKE
+0111;AI;LATIN SMALL LETTER D WITH STROKE
+0112;AL;LATIN CAPITAL LETTER E WITH MACRON
+0113;AI;LATIN SMALL LETTER E WITH MACRON
+0114;AL;LATIN CAPITAL LETTER E WITH BREVE
+0115;AL;LATIN SMALL LETTER E WITH BREVE
+0116;AL;LATIN CAPITAL LETTER E WITH DOT ABOVE
+0117;AL;LATIN SMALL LETTER E WITH DOT ABOVE
+0118;AL;LATIN CAPITAL LETTER E WITH OGONEK
+0119;AL;LATIN SMALL LETTER E WITH OGONEK
+011A;AL;LATIN CAPITAL LETTER E WITH CARON
+011B;AI;LATIN SMALL LETTER E WITH CARON
+011C;AL;LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+011D;AL;LATIN SMALL LETTER G WITH CIRCUMFLEX
+011E;AL;LATIN CAPITAL LETTER G WITH BREVE
+011F;AL;LATIN SMALL LETTER G WITH BREVE
+0120;AL;LATIN CAPITAL LETTER G WITH DOT ABOVE
+0121;AL;LATIN SMALL LETTER G WITH DOT ABOVE
+0122;AL;LATIN CAPITAL LETTER G WITH CEDILLA
+0123;AL;LATIN SMALL LETTER G WITH CEDILLA
+0124;AL;LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+0125;AL;LATIN SMALL LETTER H WITH CIRCUMFLEX
+0126;AI;LATIN CAPITAL LETTER H WITH STROKE
+0127;AI;LATIN SMALL LETTER H WITH STROKE
+0128;AL;LATIN CAPITAL LETTER I WITH TILDE
+0129;AL;LATIN SMALL LETTER I WITH TILDE
+012A;AL;LATIN CAPITAL LETTER I WITH MACRON
+012B;AI;LATIN SMALL LETTER I WITH MACRON
+012C;AL;LATIN CAPITAL LETTER I WITH BREVE
+012D;AL;LATIN SMALL LETTER I WITH BREVE
+012E;AL;LATIN CAPITAL LETTER I WITH OGONEK
+012F;AL;LATIN SMALL LETTER I WITH OGONEK
+0130;AL;LATIN CAPITAL LETTER I WITH DOT ABOVE
+0131;AI;LATIN SMALL LETTER DOTLESS I
+0132;AI;LATIN CAPITAL LIGATURE IJ
+0133;AI;LATIN SMALL LIGATURE IJ
+0134;AL;LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+0135;AL;LATIN SMALL LETTER J WITH CIRCUMFLEX
+0136;AL;LATIN CAPITAL LETTER K WITH CEDILLA
+0137;AL;LATIN SMALL LETTER K WITH CEDILLA
+0138;AI;LATIN SMALL LETTER KRA
+0139;AL;LATIN CAPITAL LETTER L WITH ACUTE
+013A;AL;LATIN SMALL LETTER L WITH ACUTE
+013B;AL;LATIN CAPITAL LETTER L WITH CEDILLA
+013C;AL;LATIN SMALL LETTER L WITH CEDILLA
+013D;AL;LATIN CAPITAL LETTER L WITH CARON
+013E;AL;LATIN SMALL LETTER L WITH CARON
+013F;AI;LATIN CAPITAL LETTER L WITH MIDDLE DOT
+0140;AI;LATIN SMALL LETTER L WITH MIDDLE DOT
+0141;AI;LATIN CAPITAL LETTER L WITH STROKE
+0142;AI;LATIN SMALL LETTER L WITH STROKE
+0143;AL;LATIN CAPITAL LETTER N WITH ACUTE
+0144;AI;LATIN SMALL LETTER N WITH ACUTE
+0145;AL;LATIN CAPITAL LETTER N WITH CEDILLA
+0146;AL;LATIN SMALL LETTER N WITH CEDILLA
+0147;AL;LATIN CAPITAL LETTER N WITH CARON
+0148;AI;LATIN SMALL LETTER N WITH CARON
+0149;AI;LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
+014A;AI;LATIN CAPITAL LETTER ENG
+014B;AL;LATIN SMALL LETTER ENG
+014C;AL;LATIN CAPITAL LETTER O WITH MACRON
+014D;AI;LATIN SMALL LETTER O WITH MACRON
+014E;AL;LATIN CAPITAL LETTER O WITH BREVE
+014F;AL;LATIN SMALL LETTER O WITH BREVE
+0150;AL;LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+0151;AL;LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0152;AI;LATIN CAPITAL LIGATURE OE
+0153;AI;LATIN SMALL LIGATURE OE
+0154;AL;LATIN CAPITAL LETTER R WITH ACUTE
+0155;AL;LATIN SMALL LETTER R WITH ACUTE
+0156;AL;LATIN CAPITAL LETTER R WITH CEDILLA
+0157;AL;LATIN SMALL LETTER R WITH CEDILLA
+0158;AL;LATIN CAPITAL LETTER R WITH CARON
+0159;AL;LATIN SMALL LETTER R WITH CARON
+015A;AL;LATIN CAPITAL LETTER S WITH ACUTE
+015B;AL;LATIN SMALL LETTER S WITH ACUTE
+015C;AL;LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+015D;AL;LATIN SMALL LETTER S WITH CIRCUMFLEX
+015E;AL;LATIN CAPITAL LETTER S WITH CEDILLA
+015F;AL;LATIN SMALL LETTER S WITH CEDILLA
+0160;AL;LATIN CAPITAL LETTER S WITH CARON
+0161;AL;LATIN SMALL LETTER S WITH CARON
+0162;AL;LATIN CAPITAL LETTER T WITH CEDILLA
+0163;AL;LATIN SMALL LETTER T WITH CEDILLA
+0164;AL;LATIN CAPITAL LETTER T WITH CARON
+0165;AL;LATIN SMALL LETTER T WITH CARON
+0166;AI;LATIN CAPITAL LETTER T WITH STROKE
+0167;AI;LATIN SMALL LETTER T WITH STROKE
+0168;AL;LATIN CAPITAL LETTER U WITH TILDE
+0169;AL;LATIN SMALL LETTER U WITH TILDE
+016A;AL;LATIN CAPITAL LETTER U WITH MACRON
+016B;AI;LATIN SMALL LETTER U WITH MACRON
+016C;AL;LATIN CAPITAL LETTER U WITH BREVE
+016D;AL;LATIN SMALL LETTER U WITH BREVE
+016E;AL;LATIN CAPITAL LETTER U WITH RING ABOVE
+016F;AL;LATIN SMALL LETTER U WITH RING ABOVE
+0170;AL;LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0171;AL;LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0172;AL;LATIN CAPITAL LETTER U WITH OGONEK
+0173;AL;LATIN SMALL LETTER U WITH OGONEK
+0174;AL;LATIN CAPITAL LETTER W WITH CIRCUMFLEX
+0175;AL;LATIN SMALL LETTER W WITH CIRCUMFLEX
+0176;AL;LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
+0177;AL;LATIN SMALL LETTER Y WITH CIRCUMFLEX
+0178;AL;LATIN CAPITAL LETTER Y WITH DIAERESIS
+0179;AL;LATIN CAPITAL LETTER Z WITH ACUTE
+017A;AL;LATIN SMALL LETTER Z WITH ACUTE
+017B;AL;LATIN CAPITAL LETTER Z WITH DOT ABOVE
+017C;AL;LATIN SMALL LETTER Z WITH DOT ABOVE
+017D;AL;LATIN CAPITAL LETTER Z WITH CARON
+017E;AL;LATIN SMALL LETTER Z WITH CARON
+017F;AL;LATIN SMALL LETTER LONG S
+0180;AL;LATIN SMALL LETTER B WITH STROKE
+0181;AL;LATIN CAPITAL LETTER B WITH HOOK
+0182;AL;LATIN CAPITAL LETTER B WITH TOPBAR
+0183;AL;LATIN SMALL LETTER B WITH TOPBAR
+0184;AL;LATIN CAPITAL LETTER TONE SIX
+0185;AL;LATIN SMALL LETTER TONE SIX
+0186;AL;LATIN CAPITAL LETTER OPEN O
+0187;AL;LATIN CAPITAL LETTER C WITH HOOK
+0188;AL;LATIN SMALL LETTER C WITH HOOK
+0189;AL;LATIN CAPITAL LETTER AFRICAN D
+018A;AL;LATIN CAPITAL LETTER D WITH HOOK
+018B;AL;LATIN CAPITAL LETTER D WITH TOPBAR
+018C;AL;LATIN SMALL LETTER D WITH TOPBAR
+018D;AL;LATIN SMALL LETTER TURNED DELTA
+018E;AL;LATIN CAPITAL LETTER REVERSED E
+018F;AL;LATIN CAPITAL LETTER SCHWA
+0190;AL;LATIN CAPITAL LETTER OPEN E
+0191;AL;LATIN CAPITAL LETTER F WITH HOOK
+0192;AL;LATIN SMALL LETTER F WITH HOOK
+0193;AL;LATIN CAPITAL LETTER G WITH HOOK
+0194;AL;LATIN CAPITAL LETTER GAMMA
+0195;AL;LATIN SMALL LETTER HV
+0196;AL;LATIN CAPITAL LETTER IOTA
+0197;AL;LATIN CAPITAL LETTER I WITH STROKE
+0198;AL;LATIN CAPITAL LETTER K WITH HOOK
+0199;AL;LATIN SMALL LETTER K WITH HOOK
+019A;AL;LATIN SMALL LETTER L WITH BAR
+019B;AL;LATIN SMALL LETTER LAMBDA WITH STROKE
+019C;AL;LATIN CAPITAL LETTER TURNED M
+019D;AL;LATIN CAPITAL LETTER N WITH LEFT HOOK
+019E;AL;LATIN SMALL LETTER N WITH LONG RIGHT LEG
+019F;AL;LATIN CAPITAL LETTER O WITH MIDDLE TILDE
+01A0;AL;LATIN CAPITAL LETTER O WITH HORN
+01A1;AL;LATIN SMALL LETTER O WITH HORN
+01A2;AL;LATIN CAPITAL LETTER OI
+01A3;AL;LATIN SMALL LETTER OI
+01A4;AL;LATIN CAPITAL LETTER P WITH HOOK
+01A5;AL;LATIN SMALL LETTER P WITH HOOK
+01A6;AL;LATIN LETTER YR
+01A7;AL;LATIN CAPITAL LETTER TONE TWO
+01A8;AL;LATIN SMALL LETTER TONE TWO
+01A9;AL;LATIN CAPITAL LETTER ESH
+01AA;AL;LATIN LETTER REVERSED ESH LOOP
+01AB;AL;LATIN SMALL LETTER T WITH PALATAL HOOK
+01AC;AL;LATIN CAPITAL LETTER T WITH HOOK
+01AD;AL;LATIN SMALL LETTER T WITH HOOK
+01AE;AL;LATIN CAPITAL LETTER T WITH RETROFLEX HOOK
+01AF;AL;LATIN CAPITAL LETTER U WITH HORN
+01B0;AL;LATIN SMALL LETTER U WITH HORN
+01B1;AL;LATIN CAPITAL LETTER UPSILON
+01B2;AL;LATIN CAPITAL LETTER V WITH HOOK
+01B3;AL;LATIN CAPITAL LETTER Y WITH HOOK
+01B4;AL;LATIN SMALL LETTER Y WITH HOOK
+01B5;AL;LATIN CAPITAL LETTER Z WITH STROKE
+01B6;AL;LATIN SMALL LETTER Z WITH STROKE
+01B7;AL;LATIN CAPITAL LETTER EZH
+01B8;AL;LATIN CAPITAL LETTER EZH REVERSED
+01B9;AL;LATIN SMALL LETTER EZH REVERSED
+01BA;AL;LATIN SMALL LETTER EZH WITH TAIL
+01BB;AL;LATIN LETTER TWO WITH STROKE
+01BC;AL;LATIN CAPITAL LETTER TONE FIVE
+01BD;AL;LATIN SMALL LETTER TONE FIVE
+01BE;AL;LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE
+01BF;AL;LATIN LETTER WYNN
+01C0;AL;LATIN LETTER DENTAL CLICK
+01C1;AL;LATIN LETTER LATERAL CLICK
+01C2;AL;LATIN LETTER ALVEOLAR CLICK
+01C3;AL;LATIN LETTER RETROFLEX CLICK
+01C4;AL;LATIN CAPITAL LETTER DZ WITH CARON
+01C5;AL;LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
+01C6;AL;LATIN SMALL LETTER DZ WITH CARON
+01C7;AL;LATIN CAPITAL LETTER LJ
+01C8;AL;LATIN CAPITAL LETTER L WITH SMALL LETTER J
+01C9;AL;LATIN SMALL LETTER LJ
+01CA;AL;LATIN CAPITAL LETTER NJ
+01CB;AL;LATIN CAPITAL LETTER N WITH SMALL LETTER J
+01CC;AL;LATIN SMALL LETTER NJ
+01CD;AL;LATIN CAPITAL LETTER A WITH CARON
+01CE;AI;LATIN SMALL LETTER A WITH CARON
+01CF;AL;LATIN CAPITAL LETTER I WITH CARON
+01D0;AI;LATIN SMALL LETTER I WITH CARON
+01D1;AL;LATIN CAPITAL LETTER O WITH CARON
+01D2;AI;LATIN SMALL LETTER O WITH CARON
+01D3;AL;LATIN CAPITAL LETTER U WITH CARON
+01D4;AI;LATIN SMALL LETTER U WITH CARON
+01D5;AL;LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01D6;AI;LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D7;AL;LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D8;AI;LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D9;AL;LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+01DA;AI;LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01DB;AL;LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01DC;AI;LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DD;AL;LATIN SMALL LETTER TURNED E
+01DE;AL;LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+01DF;AL;LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01E0;AL;LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+01E1;AL;LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
+01E2;AL;LATIN CAPITAL LETTER AE WITH MACRON
+01E3;AL;LATIN SMALL LETTER AE WITH MACRON
+01E4;AL;LATIN CAPITAL LETTER G WITH STROKE
+01E5;AL;LATIN SMALL LETTER G WITH STROKE
+01E6;AL;LATIN CAPITAL LETTER G WITH CARON
+01E7;AL;LATIN SMALL LETTER G WITH CARON
+01E8;AL;LATIN CAPITAL LETTER K WITH CARON
+01E9;AL;LATIN SMALL LETTER K WITH CARON
+01EA;AL;LATIN CAPITAL LETTER O WITH OGONEK
+01EB;AL;LATIN SMALL LETTER O WITH OGONEK
+01EC;AL;LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+01ED;AL;LATIN SMALL LETTER O WITH OGONEK AND MACRON
+01EE;AL;LATIN CAPITAL LETTER EZH WITH CARON
+01EF;AL;LATIN SMALL LETTER EZH WITH CARON
+01F0;AL;LATIN SMALL LETTER J WITH CARON
+01F1;AL;LATIN CAPITAL LETTER DZ
+01F2;AL;LATIN CAPITAL LETTER D WITH SMALL LETTER Z
+01F3;AL;LATIN SMALL LETTER DZ
+01F4;AL;LATIN CAPITAL LETTER G WITH ACUTE
+01F5;AL;LATIN SMALL LETTER G WITH ACUTE
+01F6;AL;LATIN CAPITAL LETTER HWAIR
+01F7;AL;LATIN CAPITAL LETTER WYNN
+01F8;AL;LATIN CAPITAL LETTER N WITH GRAVE
+01F9;AL;LATIN SMALL LETTER N WITH GRAVE
+01FA;AL;LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+01FB;AL;LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+01FC;AL;LATIN CAPITAL LETTER AE WITH ACUTE
+01FD;AL;LATIN SMALL LETTER AE WITH ACUTE
+01FE;AL;LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+01FF;AL;LATIN SMALL LETTER O WITH STROKE AND ACUTE
+0200;AL;LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
+0201;AL;LATIN SMALL LETTER A WITH DOUBLE GRAVE
+0202;AL;LATIN CAPITAL LETTER A WITH INVERTED BREVE
+0203;AL;LATIN SMALL LETTER A WITH INVERTED BREVE
+0204;AL;LATIN CAPITAL LETTER E WITH DOUBLE GRAVE
+0205;AL;LATIN SMALL LETTER E WITH DOUBLE GRAVE
+0206;AL;LATIN CAPITAL LETTER E WITH INVERTED BREVE
+0207;AL;LATIN SMALL LETTER E WITH INVERTED BREVE
+0208;AL;LATIN CAPITAL LETTER I WITH DOUBLE GRAVE
+0209;AL;LATIN SMALL LETTER I WITH DOUBLE GRAVE
+020A;AL;LATIN CAPITAL LETTER I WITH INVERTED BREVE
+020B;AL;LATIN SMALL LETTER I WITH INVERTED BREVE
+020C;AL;LATIN CAPITAL LETTER O WITH DOUBLE GRAVE
+020D;AL;LATIN SMALL LETTER O WITH DOUBLE GRAVE
+020E;AL;LATIN CAPITAL LETTER O WITH INVERTED BREVE
+020F;AL;LATIN SMALL LETTER O WITH INVERTED BREVE
+0210;AL;LATIN CAPITAL LETTER R WITH DOUBLE GRAVE
+0211;AL;LATIN SMALL LETTER R WITH DOUBLE GRAVE
+0212;AL;LATIN CAPITAL LETTER R WITH INVERTED BREVE
+0213;AL;LATIN SMALL LETTER R WITH INVERTED BREVE
+0214;AL;LATIN CAPITAL LETTER U WITH DOUBLE GRAVE
+0215;AL;LATIN SMALL LETTER U WITH DOUBLE GRAVE
+0216;AL;LATIN CAPITAL LETTER U WITH INVERTED BREVE
+0217;AL;LATIN SMALL LETTER U WITH INVERTED BREVE
+0218;AL;LATIN CAPITAL LETTER S WITH COMMA BELOW
+0219;AL;LATIN SMALL LETTER S WITH COMMA BELOW
+021A;AL;LATIN CAPITAL LETTER T WITH COMMA BELOW
+021B;AL;LATIN SMALL LETTER T WITH COMMA BELOW
+021C;AL;LATIN CAPITAL LETTER YOGH
+021D;AL;LATIN SMALL LETTER YOGH
+021E;AL;LATIN CAPITAL LETTER H WITH CARON
+021F;AL;LATIN SMALL LETTER H WITH CARON
+0222;AL;LATIN CAPITAL LETTER OU
+0223;AL;LATIN SMALL LETTER OU
+0224;AL;LATIN CAPITAL LETTER Z WITH HOOK
+0225;AL;LATIN SMALL LETTER Z WITH HOOK
+0226;AL;LATIN CAPITAL LETTER A WITH DOT ABOVE
+0227;AL;LATIN SMALL LETTER A WITH DOT ABOVE
+0228;AL;LATIN CAPITAL LETTER E WITH CEDILLA
+0229;AL;LATIN SMALL LETTER E WITH CEDILLA
+022A;AL;LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+022B;AL;LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022C;AL;LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+022D;AL;LATIN SMALL LETTER O WITH TILDE AND MACRON
+022E;AL;LATIN CAPITAL LETTER O WITH DOT ABOVE
+022F;AL;LATIN SMALL LETTER O WITH DOT ABOVE
+0230;AL;LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+0231;AL;LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
+0232;AL;LATIN CAPITAL LETTER Y WITH MACRON
+0233;AL;LATIN SMALL LETTER Y WITH MACRON
+0250;AL;LATIN SMALL LETTER TURNED A
+0251;AI;LATIN SMALL LETTER ALPHA
+0252;AL;LATIN SMALL LETTER TURNED ALPHA
+0253;AL;LATIN SMALL LETTER B WITH HOOK
+0254;AL;LATIN SMALL LETTER OPEN O
+0255;AL;LATIN SMALL LETTER C WITH CURL
+0256;AL;LATIN SMALL LETTER D WITH TAIL
+0257;AL;LATIN SMALL LETTER D WITH HOOK
+0258;AL;LATIN SMALL LETTER REVERSED E
+0259;AL;LATIN SMALL LETTER SCHWA
+025A;AL;LATIN SMALL LETTER SCHWA WITH HOOK
+025B;AL;LATIN SMALL LETTER OPEN E
+025C;AL;LATIN SMALL LETTER REVERSED OPEN E
+025D;AL;LATIN SMALL LETTER REVERSED OPEN E WITH HOOK
+025E;AL;LATIN SMALL LETTER CLOSED REVERSED OPEN E
+025F;AL;LATIN SMALL LETTER DOTLESS J WITH STROKE
+0260;AL;LATIN SMALL LETTER G WITH HOOK
+0261;AI;LATIN SMALL LETTER SCRIPT G
+0262;AL;LATIN LETTER SMALL CAPITAL G
+0263;AL;LATIN SMALL LETTER GAMMA
+0264;AL;LATIN SMALL LETTER RAMS HORN
+0265;AL;LATIN SMALL LETTER TURNED H
+0266;AL;LATIN SMALL LETTER H WITH HOOK
+0267;AL;LATIN SMALL LETTER HENG WITH HOOK
+0268;AL;LATIN SMALL LETTER I WITH STROKE
+0269;AL;LATIN SMALL LETTER IOTA
+026A;AL;LATIN LETTER SMALL CAPITAL I
+026B;AL;LATIN SMALL LETTER L WITH MIDDLE TILDE
+026C;AL;LATIN SMALL LETTER L WITH BELT
+026D;AL;LATIN SMALL LETTER L WITH RETROFLEX HOOK
+026E;AL;LATIN SMALL LETTER LEZH
+026F;AL;LATIN SMALL LETTER TURNED M
+0270;AL;LATIN SMALL LETTER TURNED M WITH LONG LEG
+0271;AL;LATIN SMALL LETTER M WITH HOOK
+0272;AL;LATIN SMALL LETTER N WITH LEFT HOOK
+0273;AL;LATIN SMALL LETTER N WITH RETROFLEX HOOK
+0274;AL;LATIN LETTER SMALL CAPITAL N
+0275;AL;LATIN SMALL LETTER BARRED O
+0276;AL;LATIN LETTER SMALL CAPITAL OE
+0277;AL;LATIN SMALL LETTER CLOSED OMEGA
+0278;AL;LATIN SMALL LETTER PHI
+0279;AL;LATIN SMALL LETTER TURNED R
+027A;AL;LATIN SMALL LETTER TURNED R WITH LONG LEG
+027B;AL;LATIN SMALL LETTER TURNED R WITH HOOK
+027C;AL;LATIN SMALL LETTER R WITH LONG LEG
+027D;AL;LATIN SMALL LETTER R WITH TAIL
+027E;AL;LATIN SMALL LETTER R WITH FISHHOOK
+027F;AL;LATIN SMALL LETTER REVERSED R WITH FISHHOOK
+0280;AL;LATIN LETTER SMALL CAPITAL R
+0281;AL;LATIN LETTER SMALL CAPITAL INVERTED R
+0282;AL;LATIN SMALL LETTER S WITH HOOK
+0283;AL;LATIN SMALL LETTER ESH
+0284;AL;LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK
+0285;AL;LATIN SMALL LETTER SQUAT REVERSED ESH
+0286;AL;LATIN SMALL LETTER ESH WITH CURL
+0287;AL;LATIN SMALL LETTER TURNED T
+0288;AL;LATIN SMALL LETTER T WITH RETROFLEX HOOK
+0289;AL;LATIN SMALL LETTER U BAR
+028A;AL;LATIN SMALL LETTER UPSILON
+028B;AL;LATIN SMALL LETTER V WITH HOOK
+028C;AL;LATIN SMALL LETTER TURNED V
+028D;AL;LATIN SMALL LETTER TURNED W
+028E;AL;LATIN SMALL LETTER TURNED Y
+028F;AL;LATIN LETTER SMALL CAPITAL Y
+0290;AL;LATIN SMALL LETTER Z WITH RETROFLEX HOOK
+0291;AL;LATIN SMALL LETTER Z WITH CURL
+0292;AL;LATIN SMALL LETTER EZH
+0293;AL;LATIN SMALL LETTER EZH WITH CURL
+0294;AL;LATIN LETTER GLOTTAL STOP
+0295;AL;LATIN LETTER PHARYNGEAL VOICED FRICATIVE
+0296;AL;LATIN LETTER INVERTED GLOTTAL STOP
+0297;AL;LATIN LETTER STRETCHED C
+0298;AL;LATIN LETTER BILABIAL CLICK
+0299;AL;LATIN LETTER SMALL CAPITAL B
+029A;AL;LATIN SMALL LETTER CLOSED OPEN E
+029B;AL;LATIN LETTER SMALL CAPITAL G WITH HOOK
+029C;AL;LATIN LETTER SMALL CAPITAL H
+029D;AL;LATIN SMALL LETTER J WITH CROSSED-TAIL
+029E;AL;LATIN SMALL LETTER TURNED K
+029F;AL;LATIN LETTER SMALL CAPITAL L
+02A0;AL;LATIN SMALL LETTER Q WITH HOOK
+02A1;AL;LATIN LETTER GLOTTAL STOP WITH STROKE
+02A2;AL;LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE
+02A3;AL;LATIN SMALL LETTER DZ DIGRAPH
+02A4;AL;LATIN SMALL LETTER DEZH DIGRAPH
+02A5;AL;LATIN SMALL LETTER DZ DIGRAPH WITH CURL
+02A6;AL;LATIN SMALL LETTER TS DIGRAPH
+02A7;AL;LATIN SMALL LETTER TESH DIGRAPH
+02A8;AL;LATIN SMALL LETTER TC DIGRAPH WITH CURL
+02A9;AL;LATIN SMALL LETTER FENG DIGRAPH
+02AA;AL;LATIN SMALL LETTER LS DIGRAPH
+02AB;AL;LATIN SMALL LETTER LZ DIGRAPH
+02AC;AL;LATIN LETTER BILABIAL PERCUSSIVE
+02AD;AL;LATIN LETTER BIDENTAL PERCUSSIVE
+02B0;AL;MODIFIER LETTER SMALL H
+02B1;AL;MODIFIER LETTER SMALL H WITH HOOK
+02B2;AL;MODIFIER LETTER SMALL J
+02B3;AL;MODIFIER LETTER SMALL R
+02B4;AL;MODIFIER LETTER SMALL TURNED R
+02B5;AL;MODIFIER LETTER SMALL TURNED R WITH HOOK
+02B6;AL;MODIFIER LETTER SMALL CAPITAL INVERTED R
+02B7;AL;MODIFIER LETTER SMALL W
+02B8;AL;MODIFIER LETTER SMALL Y
+02B9;AL;MODIFIER LETTER PRIME
+02BA;AL;MODIFIER LETTER DOUBLE PRIME
+02BB;AL;MODIFIER LETTER TURNED COMMA
+02BC;AL;MODIFIER LETTER APOSTROPHE
+02BD;AL;MODIFIER LETTER REVERSED COMMA
+02BE;AL;MODIFIER LETTER RIGHT HALF RING
+02BF;AL;MODIFIER LETTER LEFT HALF RING
+02C0;AL;MODIFIER LETTER GLOTTAL STOP
+02C1;AL;MODIFIER LETTER REVERSED GLOTTAL STOP
+02C2;AL;MODIFIER LETTER LEFT ARROWHEAD
+02C3;AL;MODIFIER LETTER RIGHT ARROWHEAD
+02C4;AL;MODIFIER LETTER UP ARROWHEAD
+02C5;AL;MODIFIER LETTER DOWN ARROWHEAD
+02C6;AL;MODIFIER LETTER CIRCUMFLEX ACCENT
+02C7;AI;CARON
+02C8;BB;MODIFIER LETTER VERTICAL LINE
+02C9;AI;MODIFIER LETTER MACRON
+02CA;AI;MODIFIER LETTER ACUTE ACCENT
+02CB;AI;MODIFIER LETTER GRAVE ACCENT
+02CC;BB;MODIFIER LETTER LOW VERTICAL LINE
+02CD;AI;MODIFIER LETTER LOW MACRON
+02CE;AL;MODIFIER LETTER LOW GRAVE ACCENT
+02CF;AL;MODIFIER LETTER LOW ACUTE ACCENT
+02D0;AI;MODIFIER LETTER TRIANGULAR COLON
+02D1;AL;MODIFIER LETTER HALF TRIANGULAR COLON
+02D2;AL;MODIFIER LETTER CENTRED RIGHT HALF RING
+02D3;AL;MODIFIER LETTER CENTRED LEFT HALF RING
+02D4;AL;MODIFIER LETTER UP TACK
+02D5;AL;MODIFIER LETTER DOWN TACK
+02D6;AL;MODIFIER LETTER PLUS SIGN
+02D7;AL;MODIFIER LETTER MINUS SIGN
+02D8;AI;BREVE
+02D9;AI;DOT ABOVE
+02DA;AI;RING ABOVE
+02DB;AI;OGONEK
+02DC;AL;SMALL TILDE
+02DD;AI;DOUBLE ACUTE ACCENT
+02DE;AL;MODIFIER LETTER RHOTIC HOOK
+02DF;AL;MODIFIER LETTER CROSS ACCENT
+02E0;AL;MODIFIER LETTER SMALL GAMMA
+02E1;AL;MODIFIER LETTER SMALL L
+02E2;AL;MODIFIER LETTER SMALL S
+02E3;AL;MODIFIER LETTER SMALL X
+02E4;AL;MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
+02E5;AL;MODIFIER LETTER EXTRA-HIGH TONE BAR
+02E6;AL;MODIFIER LETTER HIGH TONE BAR
+02E7;AL;MODIFIER LETTER MID TONE BAR
+02E8;AL;MODIFIER LETTER LOW TONE BAR
+02E9;AL;MODIFIER LETTER EXTRA-LOW TONE BAR
+02EA;AL;MODIFIER LETTER YIN DEPARTING TONE MARK
+02EB;AL;MODIFIER LETTER YANG DEPARTING TONE MARK
+02EC;AL;MODIFIER LETTER VOICING
+02ED;AL;MODIFIER LETTER UNASPIRATED
+02EE;AL;MODIFIER LETTER DOUBLE APOSTROPHE
+0300;CM;COMBINING GRAVE ACCENT
+0301;CM;COMBINING ACUTE ACCENT
+0302;CM;COMBINING CIRCUMFLEX ACCENT
+0303;CM;COMBINING TILDE
+0304;CM;COMBINING MACRON
+0305;CM;COMBINING OVERLINE
+0306;CM;COMBINING BREVE
+0307;CM;COMBINING DOT ABOVE
+0308;CM;COMBINING DIAERESIS
+0309;CM;COMBINING HOOK ABOVE
+030A;CM;COMBINING RING ABOVE
+030B;CM;COMBINING DOUBLE ACUTE ACCENT
+030C;CM;COMBINING CARON
+030D;CM;COMBINING VERTICAL LINE ABOVE
+030E;CM;COMBINING DOUBLE VERTICAL LINE ABOVE
+030F;CM;COMBINING DOUBLE GRAVE ACCENT
+0310;CM;COMBINING CANDRABINDU
+0311;CM;COMBINING INVERTED BREVE
+0312;CM;COMBINING TURNED COMMA ABOVE
+0313;CM;COMBINING COMMA ABOVE
+0314;CM;COMBINING REVERSED COMMA ABOVE
+0315;CM;COMBINING COMMA ABOVE RIGHT
+0316;CM;COMBINING GRAVE ACCENT BELOW
+0317;CM;COMBINING ACUTE ACCENT BELOW
+0318;CM;COMBINING LEFT TACK BELOW
+0319;CM;COMBINING RIGHT TACK BELOW
+031A;CM;COMBINING LEFT ANGLE ABOVE
+031B;CM;COMBINING HORN
+031C;CM;COMBINING LEFT HALF RING BELOW
+031D;CM;COMBINING UP TACK BELOW
+031E;CM;COMBINING DOWN TACK BELOW
+031F;CM;COMBINING PLUS SIGN BELOW
+0320;CM;COMBINING MINUS SIGN BELOW
+0321;CM;COMBINING PALATALIZED HOOK BELOW
+0322;CM;COMBINING RETROFLEX HOOK BELOW
+0323;CM;COMBINING DOT BELOW
+0324;CM;COMBINING DIAERESIS BELOW
+0325;CM;COMBINING RING BELOW
+0326;CM;COMBINING COMMA BELOW
+0327;CM;COMBINING CEDILLA
+0328;CM;COMBINING OGONEK
+0329;CM;COMBINING VERTICAL LINE BELOW
+032A;CM;COMBINING BRIDGE BELOW
+032B;CM;COMBINING INVERTED DOUBLE ARCH BELOW
+032C;CM;COMBINING CARON BELOW
+032D;CM;COMBINING CIRCUMFLEX ACCENT BELOW
+032E;CM;COMBINING BREVE BELOW
+032F;CM;COMBINING INVERTED BREVE BELOW
+0330;CM;COMBINING TILDE BELOW
+0331;CM;COMBINING MACRON BELOW
+0332;CM;COMBINING LOW LINE
+0333;CM;COMBINING DOUBLE LOW LINE
+0334;CM;COMBINING TILDE OVERLAY
+0335;CM;COMBINING SHORT STROKE OVERLAY
+0336;CM;COMBINING LONG STROKE OVERLAY
+0337;CM;COMBINING SHORT SOLIDUS OVERLAY
+0338;CM;COMBINING LONG SOLIDUS OVERLAY
+0339;CM;COMBINING RIGHT HALF RING BELOW
+033A;CM;COMBINING INVERTED BRIDGE BELOW
+033B;CM;COMBINING SQUARE BELOW
+033C;CM;COMBINING SEAGULL BELOW
+033D;CM;COMBINING X ABOVE
+033E;CM;COMBINING VERTICAL TILDE
+033F;CM;COMBINING DOUBLE OVERLINE
+0340;CM;COMBINING GRAVE TONE MARK
+0341;CM;COMBINING ACUTE TONE MARK
+0342;CM;COMBINING GREEK PERISPOMENI
+0343;CM;COMBINING GREEK KORONIS
+0344;CM;COMBINING GREEK DIALYTIKA TONOS
+0345;CM;COMBINING GREEK YPOGEGRAMMENI
+0346;CM;COMBINING BRIDGE ABOVE
+0347;CM;COMBINING EQUALS SIGN BELOW
+0348;CM;COMBINING DOUBLE VERTICAL LINE BELOW
+0349;CM;COMBINING LEFT ANGLE BELOW
+034A;CM;COMBINING NOT TILDE ABOVE
+034B;CM;COMBINING HOMOTHETIC ABOVE
+034C;CM;COMBINING ALMOST EQUAL TO ABOVE
+034D;CM;COMBINING LEFT RIGHT ARROW BELOW
+034E;CM;COMBINING UPWARDS ARROW BELOW
+0360;CM;COMBINING DOUBLE TILDE
+0361;CM;COMBINING DOUBLE INVERTED BREVE
+0362;CM;COMBINING DOUBLE RIGHTWARDS ARROW BELOW
+0374;AL;GREEK NUMERAL SIGN
+0375;AL;GREEK LOWER NUMERAL SIGN
+037A;AL;GREEK YPOGEGRAMMENI
+037E;AL;GREEK QUESTION MARK
+0384;AL;GREEK TONOS
+0385;AL;GREEK DIALYTIKA TONOS
+0386;AL;GREEK CAPITAL LETTER ALPHA WITH TONOS
+0387;AL;GREEK ANO TELEIA
+0388;AL;GREEK CAPITAL LETTER EPSILON WITH TONOS
+0389;AL;GREEK CAPITAL LETTER ETA WITH TONOS
+038A;AL;GREEK CAPITAL LETTER IOTA WITH TONOS
+038C;AL;GREEK CAPITAL LETTER OMICRON WITH TONOS
+038E;AL;GREEK CAPITAL LETTER UPSILON WITH TONOS
+038F;AL;GREEK CAPITAL LETTER OMEGA WITH TONOS
+0390;AL;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+0391;AI;GREEK CAPITAL LETTER ALPHA
+0392;AI;GREEK CAPITAL LETTER BETA
+0393;AI;GREEK CAPITAL LETTER GAMMA
+0394;AI;GREEK CAPITAL LETTER DELTA
+0395;AI;GREEK CAPITAL LETTER EPSILON
+0396;AI;GREEK CAPITAL LETTER ZETA
+0397;AI;GREEK CAPITAL LETTER ETA
+0398;AI;GREEK CAPITAL LETTER THETA
+0399;AI;GREEK CAPITAL LETTER IOTA
+039A;AI;GREEK CAPITAL LETTER KAPPA
+039B;AI;GREEK CAPITAL LETTER LAMDA
+039C;AI;GREEK CAPITAL LETTER MU
+039D;AI;GREEK CAPITAL LETTER NU
+039E;AI;GREEK CAPITAL LETTER XI
+039F;AI;GREEK CAPITAL LETTER OMICRON
+03A0;AI;GREEK CAPITAL LETTER PI
+03A1;AI;GREEK CAPITAL LETTER RHO
+03A3;AI;GREEK CAPITAL LETTER SIGMA
+03A4;AI;GREEK CAPITAL LETTER TAU
+03A5;AI;GREEK CAPITAL LETTER UPSILON
+03A6;AI;GREEK CAPITAL LETTER PHI
+03A7;AI;GREEK CAPITAL LETTER CHI
+03A8;AI;GREEK CAPITAL LETTER PSI
+03A9;AI;GREEK CAPITAL LETTER OMEGA
+03AA;AL;GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+03AB;AL;GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+03AC;AL;GREEK SMALL LETTER ALPHA WITH TONOS
+03AD;AL;GREEK SMALL LETTER EPSILON WITH TONOS
+03AE;AL;GREEK SMALL LETTER ETA WITH TONOS
+03AF;AL;GREEK SMALL LETTER IOTA WITH TONOS
+03B0;AL;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+03B1;AI;GREEK SMALL LETTER ALPHA
+03B2;AI;GREEK SMALL LETTER BETA
+03B3;AI;GREEK SMALL LETTER GAMMA
+03B4;AI;GREEK SMALL LETTER DELTA
+03B5;AI;GREEK SMALL LETTER EPSILON
+03B6;AI;GREEK SMALL LETTER ZETA
+03B7;AI;GREEK SMALL LETTER ETA
+03B8;AI;GREEK SMALL LETTER THETA
+03B9;AI;GREEK SMALL LETTER IOTA
+03BA;AI;GREEK SMALL LETTER KAPPA
+03BB;AI;GREEK SMALL LETTER LAMDA
+03BC;AI;GREEK SMALL LETTER MU
+03BD;AI;GREEK SMALL LETTER NU
+03BE;AI;GREEK SMALL LETTER XI
+03BF;AI;GREEK SMALL LETTER OMICRON
+03C0;AI;GREEK SMALL LETTER PI
+03C1;AI;GREEK SMALL LETTER RHO
+03C2;AL;GREEK SMALL LETTER FINAL SIGMA
+03C3;AI;GREEK SMALL LETTER SIGMA
+03C4;AI;GREEK SMALL LETTER TAU
+03C5;AI;GREEK SMALL LETTER UPSILON
+03C6;AI;GREEK SMALL LETTER PHI
+03C7;AI;GREEK SMALL LETTER CHI
+03C8;AI;GREEK SMALL LETTER PSI
+03C9;AI;GREEK SMALL LETTER OMEGA
+03CA;AL;GREEK SMALL LETTER IOTA WITH DIALYTIKA
+03CB;AL;GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+03CC;AL;GREEK SMALL LETTER OMICRON WITH TONOS
+03CD;AL;GREEK SMALL LETTER UPSILON WITH TONOS
+03CE;AL;GREEK SMALL LETTER OMEGA WITH TONOS
+03D0;AL;GREEK BETA SYMBOL
+03D1;AL;GREEK THETA SYMBOL
+03D2;AL;GREEK UPSILON WITH HOOK SYMBOL
+03D3;AL;GREEK UPSILON WITH ACUTE AND HOOK SYMBOL
+03D4;AL;GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL
+03D5;AL;GREEK PHI SYMBOL
+03D6;AL;GREEK PI SYMBOL
+03D7;AL;GREEK KAI SYMBOL
+03DA;AL;GREEK LETTER STIGMA
+03DB;AL;GREEK SMALL LETTER STIGMA
+03DC;AL;GREEK LETTER DIGAMMA
+03DD;AL;GREEK SMALL LETTER DIGAMMA
+03DE;AL;GREEK LETTER KOPPA
+03DF;AL;GREEK SMALL LETTER KOPPA
+03E0;AL;GREEK LETTER SAMPI
+03E1;AL;GREEK SMALL LETTER SAMPI
+03E2;AL;COPTIC CAPITAL LETTER SHEI
+03E3;AL;COPTIC SMALL LETTER SHEI
+03E4;AL;COPTIC CAPITAL LETTER FEI
+03E5;AL;COPTIC SMALL LETTER FEI
+03E6;AL;COPTIC CAPITAL LETTER KHEI
+03E7;AL;COPTIC SMALL LETTER KHEI
+03E8;AL;COPTIC CAPITAL LETTER HORI
+03E9;AL;COPTIC SMALL LETTER HORI
+03EA;AL;COPTIC CAPITAL LETTER GANGIA
+03EB;AL;COPTIC SMALL LETTER GANGIA
+03EC;AL;COPTIC CAPITAL LETTER SHIMA
+03ED;AL;COPTIC SMALL LETTER SHIMA
+03EE;AL;COPTIC CAPITAL LETTER DEI
+03EF;AL;COPTIC SMALL LETTER DEI
+03F0;AL;GREEK KAPPA SYMBOL
+03F1;AL;GREEK RHO SYMBOL
+03F2;AL;GREEK LUNATE SIGMA SYMBOL
+03F3;AL;GREEK LETTER YOT
+0400;AL;CYRILLIC CAPITAL LETTER IE WITH GRAVE
+0401;AI;CYRILLIC CAPITAL LETTER IO
+0402;AL;CYRILLIC CAPITAL LETTER DJE
+0403;AL;CYRILLIC CAPITAL LETTER GJE
+0404;AL;CYRILLIC CAPITAL LETTER UKRAINIAN IE
+0405;AL;CYRILLIC CAPITAL LETTER DZE
+0406;AL;CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+0407;AL;CYRILLIC CAPITAL LETTER YI
+0408;AL;CYRILLIC CAPITAL LETTER JE
+0409;AL;CYRILLIC CAPITAL LETTER LJE
+040A;AL;CYRILLIC CAPITAL LETTER NJE
+040B;AL;CYRILLIC CAPITAL LETTER TSHE
+040C;AL;CYRILLIC CAPITAL LETTER KJE
+040D;AL;CYRILLIC CAPITAL LETTER I WITH GRAVE
+040E;AL;CYRILLIC CAPITAL LETTER SHORT U
+040F;AL;CYRILLIC CAPITAL LETTER DZHE
+0410;AI;CYRILLIC CAPITAL LETTER A
+0411;AI;CYRILLIC CAPITAL LETTER BE
+0412;AI;CYRILLIC CAPITAL LETTER VE
+0413;AI;CYRILLIC CAPITAL LETTER GHE
+0414;AI;CYRILLIC CAPITAL LETTER DE
+0415;AI;CYRILLIC CAPITAL LETTER IE
+0416;AI;CYRILLIC CAPITAL LETTER ZHE
+0417;AI;CYRILLIC CAPITAL LETTER ZE
+0418;AI;CYRILLIC CAPITAL LETTER I
+0419;AI;CYRILLIC CAPITAL LETTER SHORT I
+041A;AI;CYRILLIC CAPITAL LETTER KA
+041B;AI;CYRILLIC CAPITAL LETTER EL
+041C;AI;CYRILLIC CAPITAL LETTER EM
+041D;AI;CYRILLIC CAPITAL LETTER EN
+041E;AI;CYRILLIC CAPITAL LETTER O
+041F;AI;CYRILLIC CAPITAL LETTER PE
+0420;AI;CYRILLIC CAPITAL LETTER ER
+0421;AI;CYRILLIC CAPITAL LETTER ES
+0422;AI;CYRILLIC CAPITAL LETTER TE
+0423;AI;CYRILLIC CAPITAL LETTER U
+0424;AI;CYRILLIC CAPITAL LETTER EF
+0425;AI;CYRILLIC CAPITAL LETTER HA
+0426;AI;CYRILLIC CAPITAL LETTER TSE
+0427;AI;CYRILLIC CAPITAL LETTER CHE
+0428;AI;CYRILLIC CAPITAL LETTER SHA
+0429;AI;CYRILLIC CAPITAL LETTER SHCHA
+042A;AI;CYRILLIC CAPITAL LETTER HARD SIGN
+042B;AI;CYRILLIC CAPITAL LETTER YERU
+042C;AI;CYRILLIC CAPITAL LETTER SOFT SIGN
+042D;AI;CYRILLIC CAPITAL LETTER E
+042E;AI;CYRILLIC CAPITAL LETTER YU
+042F;AI;CYRILLIC CAPITAL LETTER YA
+0430;AI;CYRILLIC SMALL LETTER A
+0431;AI;CYRILLIC SMALL LETTER BE
+0432;AI;CYRILLIC SMALL LETTER VE
+0433;AI;CYRILLIC SMALL LETTER GHE
+0434;AI;CYRILLIC SMALL LETTER DE
+0435;AI;CYRILLIC SMALL LETTER IE
+0436;AI;CYRILLIC SMALL LETTER ZHE
+0437;AI;CYRILLIC SMALL LETTER ZE
+0438;AI;CYRILLIC SMALL LETTER I
+0439;AI;CYRILLIC SMALL LETTER SHORT I
+043A;AI;CYRILLIC SMALL LETTER KA
+043B;AI;CYRILLIC SMALL LETTER EL
+043C;AI;CYRILLIC SMALL LETTER EM
+043D;AI;CYRILLIC SMALL LETTER EN
+043E;AI;CYRILLIC SMALL LETTER O
+043F;AI;CYRILLIC SMALL LETTER PE
+0440;AI;CYRILLIC SMALL LETTER ER
+0441;AI;CYRILLIC SMALL LETTER ES
+0442;AI;CYRILLIC SMALL LETTER TE
+0443;AI;CYRILLIC SMALL LETTER U
+0444;AI;CYRILLIC SMALL LETTER EF
+0445;AI;CYRILLIC SMALL LETTER HA
+0446;AI;CYRILLIC SMALL LETTER TSE
+0447;AI;CYRILLIC SMALL LETTER CHE
+0448;AI;CYRILLIC SMALL LETTER SHA
+0449;AI;CYRILLIC SMALL LETTER SHCHA
+044A;AI;CYRILLIC SMALL LETTER HARD SIGN
+044B;AI;CYRILLIC SMALL LETTER YERU
+044C;AI;CYRILLIC SMALL LETTER SOFT SIGN
+044D;AI;CYRILLIC SMALL LETTER E
+044E;AI;CYRILLIC SMALL LETTER YU
+044F;AI;CYRILLIC SMALL LETTER YA
+0450;AL;CYRILLIC SMALL LETTER IE WITH GRAVE
+0451;AI;CYRILLIC SMALL LETTER IO
+0452;AL;CYRILLIC SMALL LETTER DJE
+0453;AL;CYRILLIC SMALL LETTER GJE
+0454;AL;CYRILLIC SMALL LETTER UKRAINIAN IE
+0455;AL;CYRILLIC SMALL LETTER DZE
+0456;AL;CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+0457;AL;CYRILLIC SMALL LETTER YI
+0458;AL;CYRILLIC SMALL LETTER JE
+0459;AL;CYRILLIC SMALL LETTER LJE
+045A;AL;CYRILLIC SMALL LETTER NJE
+045B;AL;CYRILLIC SMALL LETTER TSHE
+045C;AL;CYRILLIC SMALL LETTER KJE
+045D;AL;CYRILLIC SMALL LETTER I WITH GRAVE
+045E;AL;CYRILLIC SMALL LETTER SHORT U
+045F;AL;CYRILLIC SMALL LETTER DZHE
+0460;AL;CYRILLIC CAPITAL LETTER OMEGA
+0461;AL;CYRILLIC SMALL LETTER OMEGA
+0462;AL;CYRILLIC CAPITAL LETTER YAT
+0463;AL;CYRILLIC SMALL LETTER YAT
+0464;AL;CYRILLIC CAPITAL LETTER IOTIFIED E
+0465;AL;CYRILLIC SMALL LETTER IOTIFIED E
+0466;AL;CYRILLIC CAPITAL LETTER LITTLE YUS
+0467;AL;CYRILLIC SMALL LETTER LITTLE YUS
+0468;AL;CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS
+0469;AL;CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS
+046A;AL;CYRILLIC CAPITAL LETTER BIG YUS
+046B;AL;CYRILLIC SMALL LETTER BIG YUS
+046C;AL;CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS
+046D;AL;CYRILLIC SMALL LETTER IOTIFIED BIG YUS
+046E;AL;CYRILLIC CAPITAL LETTER KSI
+046F;AL;CYRILLIC SMALL LETTER KSI
+0470;AL;CYRILLIC CAPITAL LETTER PSI
+0471;AL;CYRILLIC SMALL LETTER PSI
+0472;AL;CYRILLIC CAPITAL LETTER FITA
+0473;AL;CYRILLIC SMALL LETTER FITA
+0474;AL;CYRILLIC CAPITAL LETTER IZHITSA
+0475;AL;CYRILLIC SMALL LETTER IZHITSA
+0476;AL;CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+0477;AL;CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+0478;AL;CYRILLIC CAPITAL LETTER UK
+0479;AL;CYRILLIC SMALL LETTER UK
+047A;AL;CYRILLIC CAPITAL LETTER ROUND OMEGA
+047B;AL;CYRILLIC SMALL LETTER ROUND OMEGA
+047C;AL;CYRILLIC CAPITAL LETTER OMEGA WITH TITLO
+047D;AL;CYRILLIC SMALL LETTER OMEGA WITH TITLO
+047E;AL;CYRILLIC CAPITAL LETTER OT
+047F;AL;CYRILLIC SMALL LETTER OT
+0480;AL;CYRILLIC CAPITAL LETTER KOPPA
+0481;AL;CYRILLIC SMALL LETTER KOPPA
+0482;AL;CYRILLIC THOUSANDS SIGN
+0483;CM;COMBINING CYRILLIC TITLO
+0484;CM;COMBINING CYRILLIC PALATALIZATION
+0485;CM;COMBINING CYRILLIC DASIA PNEUMATA
+0486;CM;COMBINING CYRILLIC PSILI PNEUMATA
+0488;CM;COMBINING CYRILLIC HUNDRED THOUSANDS SIGN
+0489;CM;COMBINING CYRILLIC MILLIONS SIGN
+048C;AL;CYRILLIC CAPITAL LETTER SEMISOFT SIGN
+048D;AL;CYRILLIC SMALL LETTER SEMISOFT SIGN
+048E;AL;CYRILLIC CAPITAL LETTER ER WITH TICK
+048F;AL;CYRILLIC SMALL LETTER ER WITH TICK
+0490;AL;CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+0491;AL;CYRILLIC SMALL LETTER GHE WITH UPTURN
+0492;AL;CYRILLIC CAPITAL LETTER GHE WITH STROKE
+0493;AL;CYRILLIC SMALL LETTER GHE WITH STROKE
+0494;AL;CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK
+0495;AL;CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK
+0496;AL;CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
+0497;AL;CYRILLIC SMALL LETTER ZHE WITH DESCENDER
+0498;AL;CYRILLIC CAPITAL LETTER ZE WITH DESCENDER
+0499;AL;CYRILLIC SMALL LETTER ZE WITH DESCENDER
+049A;AL;CYRILLIC CAPITAL LETTER KA WITH DESCENDER
+049B;AL;CYRILLIC SMALL LETTER KA WITH DESCENDER
+049C;AL;CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
+049D;AL;CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE
+049E;AL;CYRILLIC CAPITAL LETTER KA WITH STROKE
+049F;AL;CYRILLIC SMALL LETTER KA WITH STROKE
+04A0;AL;CYRILLIC CAPITAL LETTER BASHKIR KA
+04A1;AL;CYRILLIC SMALL LETTER BASHKIR KA
+04A2;AL;CYRILLIC CAPITAL LETTER EN WITH DESCENDER
+04A3;AL;CYRILLIC SMALL LETTER EN WITH DESCENDER
+04A4;AL;CYRILLIC CAPITAL LIGATURE EN GHE
+04A5;AL;CYRILLIC SMALL LIGATURE EN GHE
+04A6;AL;CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK
+04A7;AL;CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK
+04A8;AL;CYRILLIC CAPITAL LETTER ABKHASIAN HA
+04A9;AL;CYRILLIC SMALL LETTER ABKHASIAN HA
+04AA;AL;CYRILLIC CAPITAL LETTER ES WITH DESCENDER
+04AB;AL;CYRILLIC SMALL LETTER ES WITH DESCENDER
+04AC;AL;CYRILLIC CAPITAL LETTER TE WITH DESCENDER
+04AD;AL;CYRILLIC SMALL LETTER TE WITH DESCENDER
+04AE;AL;CYRILLIC CAPITAL LETTER STRAIGHT U
+04AF;AL;CYRILLIC SMALL LETTER STRAIGHT U
+04B0;AL;CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
+04B1;AL;CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
+04B2;AL;CYRILLIC CAPITAL LETTER HA WITH DESCENDER
+04B3;AL;CYRILLIC SMALL LETTER HA WITH DESCENDER
+04B4;AL;CYRILLIC CAPITAL LIGATURE TE TSE
+04B5;AL;CYRILLIC SMALL LIGATURE TE TSE
+04B6;AL;CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
+04B7;AL;CYRILLIC SMALL LETTER CHE WITH DESCENDER
+04B8;AL;CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
+04B9;AL;CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE
+04BA;AL;CYRILLIC CAPITAL LETTER SHHA
+04BB;AL;CYRILLIC SMALL LETTER SHHA
+04BC;AL;CYRILLIC CAPITAL LETTER ABKHASIAN CHE
+04BD;AL;CYRILLIC SMALL LETTER ABKHASIAN CHE
+04BE;AL;CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER
+04BF;AL;CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER
+04C0;AL;CYRILLIC LETTER PALOCHKA
+04C1;AL;CYRILLIC CAPITAL LETTER ZHE WITH BREVE
+04C2;AL;CYRILLIC SMALL LETTER ZHE WITH BREVE
+04C3;AL;CYRILLIC CAPITAL LETTER KA WITH HOOK
+04C4;AL;CYRILLIC SMALL LETTER KA WITH HOOK
+04C7;AL;CYRILLIC CAPITAL LETTER EN WITH HOOK
+04C8;AL;CYRILLIC SMALL LETTER EN WITH HOOK
+04CB;AL;CYRILLIC CAPITAL LETTER KHAKASSIAN CHE
+04CC;AL;CYRILLIC SMALL LETTER KHAKASSIAN CHE
+04D0;AL;CYRILLIC CAPITAL LETTER A WITH BREVE
+04D1;AL;CYRILLIC SMALL LETTER A WITH BREVE
+04D2;AL;CYRILLIC CAPITAL LETTER A WITH DIAERESIS
+04D3;AL;CYRILLIC SMALL LETTER A WITH DIAERESIS
+04D4;AL;CYRILLIC CAPITAL LIGATURE A IE
+04D5;AL;CYRILLIC SMALL LIGATURE A IE
+04D6;AL;CYRILLIC CAPITAL LETTER IE WITH BREVE
+04D7;AL;CYRILLIC SMALL LETTER IE WITH BREVE
+04D8;AL;CYRILLIC CAPITAL LETTER SCHWA
+04D9;AL;CYRILLIC SMALL LETTER SCHWA
+04DA;AL;CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
+04DB;AL;CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
+04DC;AL;CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
+04DD;AL;CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
+04DE;AL;CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
+04DF;AL;CYRILLIC SMALL LETTER ZE WITH DIAERESIS
+04E0;AL;CYRILLIC CAPITAL LETTER ABKHASIAN DZE
+04E1;AL;CYRILLIC SMALL LETTER ABKHASIAN DZE
+04E2;AL;CYRILLIC CAPITAL LETTER I WITH MACRON
+04E3;AL;CYRILLIC SMALL LETTER I WITH MACRON
+04E4;AL;CYRILLIC CAPITAL LETTER I WITH DIAERESIS
+04E5;AL;CYRILLIC SMALL LETTER I WITH DIAERESIS
+04E6;AL;CYRILLIC CAPITAL LETTER O WITH DIAERESIS
+04E7;AL;CYRILLIC SMALL LETTER O WITH DIAERESIS
+04E8;AL;CYRILLIC CAPITAL LETTER BARRED O
+04E9;AL;CYRILLIC SMALL LETTER BARRED O
+04EA;AL;CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
+04EB;AL;CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
+04EC;AL;CYRILLIC CAPITAL LETTER E WITH DIAERESIS
+04ED;AL;CYRILLIC SMALL LETTER E WITH DIAERESIS
+04EE;AL;CYRILLIC CAPITAL LETTER U WITH MACRON
+04EF;AL;CYRILLIC SMALL LETTER U WITH MACRON
+04F0;AL;CYRILLIC CAPITAL LETTER U WITH DIAERESIS
+04F1;AL;CYRILLIC SMALL LETTER U WITH DIAERESIS
+04F2;AL;CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
+04F3;AL;CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
+04F4;AL;CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
+04F5;AL;CYRILLIC SMALL LETTER CHE WITH DIAERESIS
+04F8;AL;CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
+04F9;AL;CYRILLIC SMALL LETTER YERU WITH DIAERESIS
+0531;AL;ARMENIAN CAPITAL LETTER AYB
+0532;AL;ARMENIAN CAPITAL LETTER BEN
+0533;AL;ARMENIAN CAPITAL LETTER GIM
+0534;AL;ARMENIAN CAPITAL LETTER DA
+0535;AL;ARMENIAN CAPITAL LETTER ECH
+0536;AL;ARMENIAN CAPITAL LETTER ZA
+0537;AL;ARMENIAN CAPITAL LETTER EH
+0538;AL;ARMENIAN CAPITAL LETTER ET
+0539;AL;ARMENIAN CAPITAL LETTER TO
+053A;AL;ARMENIAN CAPITAL LETTER ZHE
+053B;AL;ARMENIAN CAPITAL LETTER INI
+053C;AL;ARMENIAN CAPITAL LETTER LIWN
+053D;AL;ARMENIAN CAPITAL LETTER XEH
+053E;AL;ARMENIAN CAPITAL LETTER CA
+053F;AL;ARMENIAN CAPITAL LETTER KEN
+0540;AL;ARMENIAN CAPITAL LETTER HO
+0541;AL;ARMENIAN CAPITAL LETTER JA
+0542;AL;ARMENIAN CAPITAL LETTER GHAD
+0543;AL;ARMENIAN CAPITAL LETTER CHEH
+0544;AL;ARMENIAN CAPITAL LETTER MEN
+0545;AL;ARMENIAN CAPITAL LETTER YI
+0546;AL;ARMENIAN CAPITAL LETTER NOW
+0547;AL;ARMENIAN CAPITAL LETTER SHA
+0548;AL;ARMENIAN CAPITAL LETTER VO
+0549;AL;ARMENIAN CAPITAL LETTER CHA
+054A;AL;ARMENIAN CAPITAL LETTER PEH
+054B;AL;ARMENIAN CAPITAL LETTER JHEH
+054C;AL;ARMENIAN CAPITAL LETTER RA
+054D;AL;ARMENIAN CAPITAL LETTER SEH
+054E;AL;ARMENIAN CAPITAL LETTER VEW
+054F;AL;ARMENIAN CAPITAL LETTER TIWN
+0550;AL;ARMENIAN CAPITAL LETTER REH
+0551;AL;ARMENIAN CAPITAL LETTER CO
+0552;AL;ARMENIAN CAPITAL LETTER YIWN
+0553;AL;ARMENIAN CAPITAL LETTER PIWR
+0554;AL;ARMENIAN CAPITAL LETTER KEH
+0555;AL;ARMENIAN CAPITAL LETTER OH
+0556;AL;ARMENIAN CAPITAL LETTER FEH
+0559;AL;ARMENIAN MODIFIER LETTER LEFT HALF RING
+055A;AL;ARMENIAN APOSTROPHE
+055B;AL;ARMENIAN EMPHASIS MARK
+055C;AL;ARMENIAN EXCLAMATION MARK
+055D;AL;ARMENIAN COMMA
+055E;AL;ARMENIAN QUESTION MARK
+055F;AL;ARMENIAN ABBREVIATION MARK
+0561;AL;ARMENIAN SMALL LETTER AYB
+0562;AL;ARMENIAN SMALL LETTER BEN
+0563;AL;ARMENIAN SMALL LETTER GIM
+0564;AL;ARMENIAN SMALL LETTER DA
+0565;AL;ARMENIAN SMALL LETTER ECH
+0566;AL;ARMENIAN SMALL LETTER ZA
+0567;AL;ARMENIAN SMALL LETTER EH
+0568;AL;ARMENIAN SMALL LETTER ET
+0569;AL;ARMENIAN SMALL LETTER TO
+056A;AL;ARMENIAN SMALL LETTER ZHE
+056B;AL;ARMENIAN SMALL LETTER INI
+056C;AL;ARMENIAN SMALL LETTER LIWN
+056D;AL;ARMENIAN SMALL LETTER XEH
+056E;AL;ARMENIAN SMALL LETTER CA
+056F;AL;ARMENIAN SMALL LETTER KEN
+0570;AL;ARMENIAN SMALL LETTER HO
+0571;AL;ARMENIAN SMALL LETTER JA
+0572;AL;ARMENIAN SMALL LETTER GHAD
+0573;AL;ARMENIAN SMALL LETTER CHEH
+0574;AL;ARMENIAN SMALL LETTER MEN
+0575;AL;ARMENIAN SMALL LETTER YI
+0576;AL;ARMENIAN SMALL LETTER NOW
+0577;AL;ARMENIAN SMALL LETTER SHA
+0578;AL;ARMENIAN SMALL LETTER VO
+0579;AL;ARMENIAN SMALL LETTER CHA
+057A;AL;ARMENIAN SMALL LETTER PEH
+057B;AL;ARMENIAN SMALL LETTER JHEH
+057C;AL;ARMENIAN SMALL LETTER RA
+057D;AL;ARMENIAN SMALL LETTER SEH
+057E;AL;ARMENIAN SMALL LETTER VEW
+057F;AL;ARMENIAN SMALL LETTER TIWN
+0580;AL;ARMENIAN SMALL LETTER REH
+0581;AL;ARMENIAN SMALL LETTER CO
+0582;AL;ARMENIAN SMALL LETTER YIWN
+0583;AL;ARMENIAN SMALL LETTER PIWR
+0584;AL;ARMENIAN SMALL LETTER KEH
+0585;AL;ARMENIAN SMALL LETTER OH
+0586;AL;ARMENIAN SMALL LETTER FEH
+0587;AL;ARMENIAN SMALL LIGATURE ECH YIWN
+0589;IS;ARMENIAN FULL STOP
+058A;BA;ARMENIAN HYPHEN
+0591;CM;HEBREW ACCENT ETNAHTA
+0592;CM;HEBREW ACCENT SEGOL
+0593;CM;HEBREW ACCENT SHALSHELET
+0594;CM;HEBREW ACCENT ZAQEF QATAN
+0595;CM;HEBREW ACCENT ZAQEF GADOL
+0596;CM;HEBREW ACCENT TIPEHA
+0597;CM;HEBREW ACCENT REVIA
+0598;CM;HEBREW ACCENT ZARQA
+0599;CM;HEBREW ACCENT PASHTA
+059A;CM;HEBREW ACCENT YETIV
+059B;CM;HEBREW ACCENT TEVIR
+059C;CM;HEBREW ACCENT GERESH
+059D;CM;HEBREW ACCENT GERESH MUQDAM
+059E;CM;HEBREW ACCENT GERSHAYIM
+059F;CM;HEBREW ACCENT QARNEY PARA
+05A0;CM;HEBREW ACCENT TELISHA GEDOLA
+05A1;CM;HEBREW ACCENT PAZER
+05A3;CM;HEBREW ACCENT MUNAH
+05A4;CM;HEBREW ACCENT MAHAPAKH
+05A5;CM;HEBREW ACCENT MERKHA
+05A6;CM;HEBREW ACCENT MERKHA KEFULA
+05A7;CM;HEBREW ACCENT DARGA
+05A8;CM;HEBREW ACCENT QADMA
+05A9;CM;HEBREW ACCENT TELISHA QETANA
+05AA;CM;HEBREW ACCENT YERAH BEN YOMO
+05AB;CM;HEBREW ACCENT OLE
+05AC;CM;HEBREW ACCENT ILUY
+05AD;CM;HEBREW ACCENT DEHI
+05AE;CM;HEBREW ACCENT ZINOR
+05AF;CM;HEBREW MARK MASORA CIRCLE
+05B0;CM;HEBREW POINT SHEVA
+05B1;CM;HEBREW POINT HATAF SEGOL
+05B2;CM;HEBREW POINT HATAF PATAH
+05B3;CM;HEBREW POINT HATAF QAMATS
+05B4;CM;HEBREW POINT HIRIQ
+05B5;CM;HEBREW POINT TSERE
+05B6;CM;HEBREW POINT SEGOL
+05B7;CM;HEBREW POINT PATAH
+05B8;CM;HEBREW POINT QAMATS
+05B9;CM;HEBREW POINT HOLAM
+05BB;CM;HEBREW POINT QUBUTS
+05BC;CM;HEBREW POINT DAGESH OR MAPIQ
+05BD;CM;HEBREW POINT METEG
+05BE;AL;HEBREW PUNCTUATION MAQAF
+05BF;CM;HEBREW POINT RAFE
+05C0;AL;HEBREW PUNCTUATION PASEQ
+05C1;CM;HEBREW POINT SHIN DOT
+05C2;CM;HEBREW POINT SIN DOT
+05C3;AL;HEBREW PUNCTUATION SOF PASUQ
+05C4;CM;HEBREW MARK UPPER DOT
+05D0;AL;HEBREW LETTER ALEF
+05D1;AL;HEBREW LETTER BET
+05D2;AL;HEBREW LETTER GIMEL
+05D3;AL;HEBREW LETTER DALET
+05D4;AL;HEBREW LETTER HE
+05D5;AL;HEBREW LETTER VAV
+05D6;AL;HEBREW LETTER ZAYIN
+05D7;AL;HEBREW LETTER HET
+05D8;AL;HEBREW LETTER TET
+05D9;AL;HEBREW LETTER YOD
+05DA;AL;HEBREW LETTER FINAL KAF
+05DB;AL;HEBREW LETTER KAF
+05DC;AL;HEBREW LETTER LAMED
+05DD;AL;HEBREW LETTER FINAL MEM
+05DE;AL;HEBREW LETTER MEM
+05DF;AL;HEBREW LETTER FINAL NUN
+05E0;AL;HEBREW LETTER NUN
+05E1;AL;HEBREW LETTER SAMEKH
+05E2;AL;HEBREW LETTER AYIN
+05E3;AL;HEBREW LETTER FINAL PE
+05E4;AL;HEBREW LETTER PE
+05E5;AL;HEBREW LETTER FINAL TSADI
+05E6;AL;HEBREW LETTER TSADI
+05E7;AL;HEBREW LETTER QOF
+05E8;AL;HEBREW LETTER RESH
+05E9;AL;HEBREW LETTER SHIN
+05EA;AL;HEBREW LETTER TAV
+05F0;AL;HEBREW LIGATURE YIDDISH DOUBLE VAV
+05F1;AL;HEBREW LIGATURE YIDDISH VAV YOD
+05F2;AL;HEBREW LIGATURE YIDDISH DOUBLE YOD
+05F3;AL;HEBREW PUNCTUATION GERESH
+05F4;AL;HEBREW PUNCTUATION GERSHAYIM
+060C;AL;ARABIC COMMA
+061B;AL;ARABIC SEMICOLON
+061F;AL;ARABIC QUESTION MARK
+0621;AL;ARABIC LETTER HAMZA
+0622;AL;ARABIC LETTER ALEF WITH MADDA ABOVE
+0623;AL;ARABIC LETTER ALEF WITH HAMZA ABOVE
+0624;AL;ARABIC LETTER WAW WITH HAMZA ABOVE
+0625;AL;ARABIC LETTER ALEF WITH HAMZA BELOW
+0626;AL;ARABIC LETTER YEH WITH HAMZA ABOVE
+0627;AL;ARABIC LETTER ALEF
+0628;AL;ARABIC LETTER BEH
+0629;AL;ARABIC LETTER TEH MARBUTA
+062A;AL;ARABIC LETTER TEH
+062B;AL;ARABIC LETTER THEH
+062C;AL;ARABIC LETTER JEEM
+062D;AL;ARABIC LETTER HAH
+062E;AL;ARABIC LETTER KHAH
+062F;AL;ARABIC LETTER DAL
+0630;AL;ARABIC LETTER THAL
+0631;AL;ARABIC LETTER REH
+0632;AL;ARABIC LETTER ZAIN
+0633;AL;ARABIC LETTER SEEN
+0634;AL;ARABIC LETTER SHEEN
+0635;AL;ARABIC LETTER SAD
+0636;AL;ARABIC LETTER DAD
+0637;AL;ARABIC LETTER TAH
+0638;AL;ARABIC LETTER ZAH
+0639;AL;ARABIC LETTER AIN
+063A;AL;ARABIC LETTER GHAIN
+0640;AL;ARABIC TATWEEL
+0641;AL;ARABIC LETTER FEH
+0642;AL;ARABIC LETTER QAF
+0643;AL;ARABIC LETTER KAF
+0644;AL;ARABIC LETTER LAM
+0645;AL;ARABIC LETTER MEEM
+0646;AL;ARABIC LETTER NOON
+0647;AL;ARABIC LETTER HEH
+0648;AL;ARABIC LETTER WAW
+0649;AL;ARABIC LETTER ALEF MAKSURA
+064A;AL;ARABIC LETTER YEH
+064B;CM;ARABIC FATHATAN
+064C;CM;ARABIC DAMMATAN
+064D;CM;ARABIC KASRATAN
+064E;CM;ARABIC FATHA
+064F;CM;ARABIC DAMMA
+0650;CM;ARABIC KASRA
+0651;CM;ARABIC SHADDA
+0652;CM;ARABIC SUKUN
+0653;CM;ARABIC MADDAH ABOVE
+0654;CM;ARABIC HAMZA ABOVE
+0655;CM;ARABIC HAMZA BELOW
+0660;NU;ARABIC-INDIC DIGIT ZERO
+0661;NU;ARABIC-INDIC DIGIT ONE
+0662;NU;ARABIC-INDIC DIGIT TWO
+0663;NU;ARABIC-INDIC DIGIT THREE
+0664;NU;ARABIC-INDIC DIGIT FOUR
+0665;NU;ARABIC-INDIC DIGIT FIVE
+0666;NU;ARABIC-INDIC DIGIT SIX
+0667;NU;ARABIC-INDIC DIGIT SEVEN
+0668;NU;ARABIC-INDIC DIGIT EIGHT
+0669;NU;ARABIC-INDIC DIGIT NINE
+066A;AL;ARABIC PERCENT SIGN
+066B;AL;ARABIC DECIMAL SEPARATOR
+066C;AL;ARABIC THOUSANDS SEPARATOR
+066D;AL;ARABIC FIVE POINTED STAR
+0670;CM;ARABIC LETTER SUPERSCRIPT ALEF
+0671;AL;ARABIC LETTER ALEF WASLA
+0672;AL;ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE
+0673;AL;ARABIC LETTER ALEF WITH WAVY HAMZA BELOW
+0674;AL;ARABIC LETTER HIGH HAMZA
+0675;AL;ARABIC LETTER HIGH HAMZA ALEF
+0676;AL;ARABIC LETTER HIGH HAMZA WAW
+0677;AL;ARABIC LETTER U WITH HAMZA ABOVE
+0678;AL;ARABIC LETTER HIGH HAMZA YEH
+0679;AL;ARABIC LETTER TTEH
+067A;AL;ARABIC LETTER TTEHEH
+067B;AL;ARABIC LETTER BEEH
+067C;AL;ARABIC LETTER TEH WITH RING
+067D;AL;ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS
+067E;AL;ARABIC LETTER PEH
+067F;AL;ARABIC LETTER TEHEH
+0680;AL;ARABIC LETTER BEHEH
+0681;AL;ARABIC LETTER HAH WITH HAMZA ABOVE
+0682;AL;ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE
+0683;AL;ARABIC LETTER NYEH
+0684;AL;ARABIC LETTER DYEH
+0685;AL;ARABIC LETTER HAH WITH THREE DOTS ABOVE
+0686;AL;ARABIC LETTER TCHEH
+0687;AL;ARABIC LETTER TCHEHEH
+0688;AL;ARABIC LETTER DDAL
+0689;AL;ARABIC LETTER DAL WITH RING
+068A;AL;ARABIC LETTER DAL WITH DOT BELOW
+068B;AL;ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH
+068C;AL;ARABIC LETTER DAHAL
+068D;AL;ARABIC LETTER DDAHAL
+068E;AL;ARABIC LETTER DUL
+068F;AL;ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS
+0690;AL;ARABIC LETTER DAL WITH FOUR DOTS ABOVE
+0691;AL;ARABIC LETTER RREH
+0692;AL;ARABIC LETTER REH WITH SMALL V
+0693;AL;ARABIC LETTER REH WITH RING
+0694;AL;ARABIC LETTER REH WITH DOT BELOW
+0695;AL;ARABIC LETTER REH WITH SMALL V BELOW
+0696;AL;ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE
+0697;AL;ARABIC LETTER REH WITH TWO DOTS ABOVE
+0698;AL;ARABIC LETTER JEH
+0699;AL;ARABIC LETTER REH WITH FOUR DOTS ABOVE
+069A;AL;ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE
+069B;AL;ARABIC LETTER SEEN WITH THREE DOTS BELOW
+069C;AL;ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE
+069D;AL;ARABIC LETTER SAD WITH TWO DOTS BELOW
+069E;AL;ARABIC LETTER SAD WITH THREE DOTS ABOVE
+069F;AL;ARABIC LETTER TAH WITH THREE DOTS ABOVE
+06A0;AL;ARABIC LETTER AIN WITH THREE DOTS ABOVE
+06A1;AL;ARABIC LETTER DOTLESS FEH
+06A2;AL;ARABIC LETTER FEH WITH DOT MOVED BELOW
+06A3;AL;ARABIC LETTER FEH WITH DOT BELOW
+06A4;AL;ARABIC LETTER VEH
+06A5;AL;ARABIC LETTER FEH WITH THREE DOTS BELOW
+06A6;AL;ARABIC LETTER PEHEH
+06A7;AL;ARABIC LETTER QAF WITH DOT ABOVE
+06A8;AL;ARABIC LETTER QAF WITH THREE DOTS ABOVE
+06A9;AL;ARABIC LETTER KEHEH
+06AA;AL;ARABIC LETTER SWASH KAF
+06AB;AL;ARABIC LETTER KAF WITH RING
+06AC;AL;ARABIC LETTER KAF WITH DOT ABOVE
+06AD;AL;ARABIC LETTER NG
+06AE;AL;ARABIC LETTER KAF WITH THREE DOTS BELOW
+06AF;AL;ARABIC LETTER GAF
+06B0;AL;ARABIC LETTER GAF WITH RING
+06B1;AL;ARABIC LETTER NGOEH
+06B2;AL;ARABIC LETTER GAF WITH TWO DOTS BELOW
+06B3;AL;ARABIC LETTER GUEH
+06B4;AL;ARABIC LETTER GAF WITH THREE DOTS ABOVE
+06B5;AL;ARABIC LETTER LAM WITH SMALL V
+06B6;AL;ARABIC LETTER LAM WITH DOT ABOVE
+06B7;AL;ARABIC LETTER LAM WITH THREE DOTS ABOVE
+06B8;AL;ARABIC LETTER LAM WITH THREE DOTS BELOW
+06B9;AL;ARABIC LETTER NOON WITH DOT BELOW
+06BA;AL;ARABIC LETTER NOON GHUNNA
+06BB;AL;ARABIC LETTER RNOON
+06BC;AL;ARABIC LETTER NOON WITH RING
+06BD;AL;ARABIC LETTER NOON WITH THREE DOTS ABOVE
+06BE;AL;ARABIC LETTER HEH DOACHASHMEE
+06BF;AL;ARABIC LETTER TCHEH WITH DOT ABOVE
+06C0;AL;ARABIC LETTER HEH WITH YEH ABOVE
+06C1;AL;ARABIC LETTER HEH GOAL
+06C2;AL;ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
+06C3;AL;ARABIC LETTER TEH MARBUTA GOAL
+06C4;AL;ARABIC LETTER WAW WITH RING
+06C5;AL;ARABIC LETTER KIRGHIZ OE
+06C6;AL;ARABIC LETTER OE
+06C7;AL;ARABIC LETTER U
+06C8;AL;ARABIC LETTER YU
+06C9;AL;ARABIC LETTER KIRGHIZ YU
+06CA;AL;ARABIC LETTER WAW WITH TWO DOTS ABOVE
+06CB;AL;ARABIC LETTER VE
+06CC;AL;ARABIC LETTER FARSI YEH
+06CD;AL;ARABIC LETTER YEH WITH TAIL
+06CE;AL;ARABIC LETTER YEH WITH SMALL V
+06CF;AL;ARABIC LETTER WAW WITH DOT ABOVE
+06D0;AL;ARABIC LETTER E
+06D1;AL;ARABIC LETTER YEH WITH THREE DOTS BELOW
+06D2;AL;ARABIC LETTER YEH BARREE
+06D3;AL;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
+06D4;AL;ARABIC FULL STOP
+06D5;AL;ARABIC LETTER AE
+06D6;CM;ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA
+06D7;CM;ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA
+06D8;CM;ARABIC SMALL HIGH MEEM INITIAL FORM
+06D9;CM;ARABIC SMALL HIGH LAM ALEF
+06DA;CM;ARABIC SMALL HIGH JEEM
+06DB;CM;ARABIC SMALL HIGH THREE DOTS
+06DC;CM;ARABIC SMALL HIGH SEEN
+06DD;CM;ARABIC END OF AYAH
+06DE;CM;ARABIC START OF RUB EL HIZB
+06DF;CM;ARABIC SMALL HIGH ROUNDED ZERO
+06E0;CM;ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO
+06E1;CM;ARABIC SMALL HIGH DOTLESS HEAD OF KHAH
+06E2;CM;ARABIC SMALL HIGH MEEM ISOLATED FORM
+06E3;CM;ARABIC SMALL LOW SEEN
+06E4;CM;ARABIC SMALL HIGH MADDA
+06E5;AL;ARABIC SMALL WAW
+06E6;AL;ARABIC SMALL YEH
+06E7;CM;ARABIC SMALL HIGH YEH
+06E8;CM;ARABIC SMALL HIGH NOON
+06E9;AL;ARABIC PLACE OF SAJDAH
+06EA;CM;ARABIC EMPTY CENTRE LOW STOP
+06EB;CM;ARABIC EMPTY CENTRE HIGH STOP
+06EC;CM;ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE
+06ED;CM;ARABIC SMALL LOW MEEM
+06F0;NU;EXTENDED ARABIC-INDIC DIGIT ZERO
+06F1;NU;EXTENDED ARABIC-INDIC DIGIT ONE
+06F2;NU;EXTENDED ARABIC-INDIC DIGIT TWO
+06F3;NU;EXTENDED ARABIC-INDIC DIGIT THREE
+06F4;NU;EXTENDED ARABIC-INDIC DIGIT FOUR
+06F5;NU;EXTENDED ARABIC-INDIC DIGIT FIVE
+06F6;NU;EXTENDED ARABIC-INDIC DIGIT SIX
+06F7;NU;EXTENDED ARABIC-INDIC DIGIT SEVEN
+06F8;NU;EXTENDED ARABIC-INDIC DIGIT EIGHT
+06F9;NU;EXTENDED ARABIC-INDIC DIGIT NINE
+06FA;AL;ARABIC LETTER SHEEN WITH DOT BELOW
+06FB;AL;ARABIC LETTER DAD WITH DOT BELOW
+06FC;AL;ARABIC LETTER GHAIN WITH DOT BELOW
+06FD;AL;ARABIC SIGN SINDHI AMPERSAND
+06FE;AL;ARABIC SIGN SINDHI POSTPOSITION MEN
+0700;AL;SYRIAC END OF PARAGRAPH
+0701;AL;SYRIAC SUPRALINEAR FULL STOP
+0702;AL;SYRIAC SUBLINEAR FULL STOP
+0703;AL;SYRIAC SUPRALINEAR COLON
+0704;AL;SYRIAC SUBLINEAR COLON
+0705;AL;SYRIAC HORIZONTAL COLON
+0706;AL;SYRIAC COLON SKEWED LEFT
+0707;AL;SYRIAC COLON SKEWED RIGHT
+0708;AL;SYRIAC SUPRALINEAR COLON SKEWED LEFT
+0709;AL;SYRIAC SUBLINEAR COLON SKEWED RIGHT
+070A;AL;SYRIAC CONTRACTION
+070B;AL;SYRIAC HARKLEAN OBELUS
+070C;AL;SYRIAC HARKLEAN METOBELUS
+070D;AL;SYRIAC HARKLEAN ASTERISCUS
+070F;CM;SYRIAC ABBREVIATION MARK
+0710;AL;SYRIAC LETTER ALAPH
+0711;CM;SYRIAC LETTER SUPERSCRIPT ALAPH
+0712;AL;SYRIAC LETTER BETH
+0713;AL;SYRIAC LETTER GAMAL
+0714;AL;SYRIAC LETTER GAMAL GARSHUNI
+0715;AL;SYRIAC LETTER DALATH
+0716;AL;SYRIAC LETTER DOTLESS DALATH RISH
+0717;AL;SYRIAC LETTER HE
+0718;AL;SYRIAC LETTER WAW
+0719;AL;SYRIAC LETTER ZAIN
+071A;AL;SYRIAC LETTER HETH
+071B;AL;SYRIAC LETTER TETH
+071C;AL;SYRIAC LETTER TETH GARSHUNI
+071D;AL;SYRIAC LETTER YUDH
+071E;AL;SYRIAC LETTER YUDH HE
+071F;AL;SYRIAC LETTER KAPH
+0720;AL;SYRIAC LETTER LAMADH
+0721;AL;SYRIAC LETTER MIM
+0722;AL;SYRIAC LETTER NUN
+0723;AL;SYRIAC LETTER SEMKATH
+0724;AL;SYRIAC LETTER FINAL SEMKATH
+0725;AL;SYRIAC LETTER E
+0726;AL;SYRIAC LETTER PE
+0727;AL;SYRIAC LETTER REVERSED PE
+0728;AL;SYRIAC LETTER SADHE
+0729;AL;SYRIAC LETTER QAPH
+072A;AL;SYRIAC LETTER RISH
+072B;AL;SYRIAC LETTER SHIN
+072C;AL;SYRIAC LETTER TAW
+0730;CM;SYRIAC PTHAHA ABOVE
+0731;CM;SYRIAC PTHAHA BELOW
+0732;CM;SYRIAC PTHAHA DOTTED
+0733;CM;SYRIAC ZQAPHA ABOVE
+0734;CM;SYRIAC ZQAPHA BELOW
+0735;CM;SYRIAC ZQAPHA DOTTED
+0736;CM;SYRIAC RBASA ABOVE
+0737;CM;SYRIAC RBASA BELOW
+0738;CM;SYRIAC DOTTED ZLAMA HORIZONTAL
+0739;CM;SYRIAC DOTTED ZLAMA ANGULAR
+073A;CM;SYRIAC HBASA ABOVE
+073B;CM;SYRIAC HBASA BELOW
+073C;CM;SYRIAC HBASA-ESASA DOTTED
+073D;CM;SYRIAC ESASA ABOVE
+073E;CM;SYRIAC ESASA BELOW
+073F;CM;SYRIAC RWAHA
+0740;CM;SYRIAC FEMININE DOT
+0741;CM;SYRIAC QUSHSHAYA
+0742;CM;SYRIAC RUKKAKHA
+0743;CM;SYRIAC TWO VERTICAL DOTS ABOVE
+0744;CM;SYRIAC TWO VERTICAL DOTS BELOW
+0745;CM;SYRIAC THREE DOTS ABOVE
+0746;CM;SYRIAC THREE DOTS BELOW
+0747;CM;SYRIAC OBLIQUE LINE ABOVE
+0748;CM;SYRIAC OBLIQUE LINE BELOW
+0749;CM;SYRIAC MUSIC
+074A;CM;SYRIAC BARREKH
+0780;AL;THAANA LETTER HAA
+0781;AL;THAANA LETTER SHAVIYANI
+0782;AL;THAANA LETTER NOONU
+0783;AL;THAANA LETTER RAA
+0784;AL;THAANA LETTER BAA
+0785;AL;THAANA LETTER LHAVIYANI
+0786;AL;THAANA LETTER KAAFU
+0787;AL;THAANA LETTER ALIFU
+0788;AL;THAANA LETTER VAAVU
+0789;AL;THAANA LETTER MEEMU
+078A;AL;THAANA LETTER FAAFU
+078B;AL;THAANA LETTER DHAALU
+078C;AL;THAANA LETTER THAA
+078D;AL;THAANA LETTER LAAMU
+078E;AL;THAANA LETTER GAAFU
+078F;AL;THAANA LETTER GNAVIYANI
+0790;AL;THAANA LETTER SEENU
+0791;AL;THAANA LETTER DAVIYANI
+0792;AL;THAANA LETTER ZAVIYANI
+0793;AL;THAANA LETTER TAVIYANI
+0794;AL;THAANA LETTER YAA
+0795;AL;THAANA LETTER PAVIYANI
+0796;AL;THAANA LETTER JAVIYANI
+0797;AL;THAANA LETTER CHAVIYANI
+0798;AL;THAANA LETTER TTAA
+0799;AL;THAANA LETTER HHAA
+079A;AL;THAANA LETTER KHAA
+079B;AL;THAANA LETTER THAALU
+079C;AL;THAANA LETTER ZAA
+079D;AL;THAANA LETTER SHEENU
+079E;AL;THAANA LETTER SAADHU
+079F;AL;THAANA LETTER DAADHU
+07A0;AL;THAANA LETTER TO
+07A1;AL;THAANA LETTER ZO
+07A2;AL;THAANA LETTER AINU
+07A3;AL;THAANA LETTER GHAINU
+07A4;AL;THAANA LETTER QAAFU
+07A5;AL;THAANA LETTER WAAVU
+07A6;CM;THAANA ABAFILI
+07A7;CM;THAANA AABAAFILI
+07A8;CM;THAANA IBIFILI
+07A9;CM;THAANA EEBEEFILI
+07AA;CM;THAANA UBUFILI
+07AB;CM;THAANA OOBOOFILI
+07AC;CM;THAANA EBEFILI
+07AD;CM;THAANA EYBEYFILI
+07AE;CM;THAANA OBOFILI
+07AF;CM;THAANA OABOAFILI
+07B0;CM;THAANA SUKUN
+0901;CM;DEVANAGARI SIGN CANDRABINDU
+0902;CM;DEVANAGARI SIGN ANUSVARA
+0903;CM;DEVANAGARI SIGN VISARGA
+0905;AL;DEVANAGARI LETTER A
+0906;AL;DEVANAGARI LETTER AA
+0907;AL;DEVANAGARI LETTER I
+0908;AL;DEVANAGARI LETTER II
+0909;AL;DEVANAGARI LETTER U
+090A;AL;DEVANAGARI LETTER UU
+090B;AL;DEVANAGARI LETTER VOCALIC R
+090C;AL;DEVANAGARI LETTER VOCALIC L
+090D;AL;DEVANAGARI LETTER CANDRA E
+090E;AL;DEVANAGARI LETTER SHORT E
+090F;AL;DEVANAGARI LETTER E
+0910;AL;DEVANAGARI LETTER AI
+0911;AL;DEVANAGARI LETTER CANDRA O
+0912;AL;DEVANAGARI LETTER SHORT O
+0913;AL;DEVANAGARI LETTER O
+0914;AL;DEVANAGARI LETTER AU
+0915;AL;DEVANAGARI LETTER KA
+0916;AL;DEVANAGARI LETTER KHA
+0917;AL;DEVANAGARI LETTER GA
+0918;AL;DEVANAGARI LETTER GHA
+0919;AL;DEVANAGARI LETTER NGA
+091A;AL;DEVANAGARI LETTER CA
+091B;AL;DEVANAGARI LETTER CHA
+091C;AL;DEVANAGARI LETTER JA
+091D;AL;DEVANAGARI LETTER JHA
+091E;AL;DEVANAGARI LETTER NYA
+091F;AL;DEVANAGARI LETTER TTA
+0920;AL;DEVANAGARI LETTER TTHA
+0921;AL;DEVANAGARI LETTER DDA
+0922;AL;DEVANAGARI LETTER DDHA
+0923;AL;DEVANAGARI LETTER NNA
+0924;AL;DEVANAGARI LETTER TA
+0925;AL;DEVANAGARI LETTER THA
+0926;AL;DEVANAGARI LETTER DA
+0927;AL;DEVANAGARI LETTER DHA
+0928;AL;DEVANAGARI LETTER NA
+0929;AL;DEVANAGARI LETTER NNNA
+092A;AL;DEVANAGARI LETTER PA
+092B;AL;DEVANAGARI LETTER PHA
+092C;AL;DEVANAGARI LETTER BA
+092D;AL;DEVANAGARI LETTER BHA
+092E;AL;DEVANAGARI LETTER MA
+092F;AL;DEVANAGARI LETTER YA
+0930;AL;DEVANAGARI LETTER RA
+0931;AL;DEVANAGARI LETTER RRA
+0932;AL;DEVANAGARI LETTER LA
+0933;AL;DEVANAGARI LETTER LLA
+0934;AL;DEVANAGARI LETTER LLLA
+0935;AL;DEVANAGARI LETTER VA
+0936;AL;DEVANAGARI LETTER SHA
+0937;AL;DEVANAGARI LETTER SSA
+0938;AL;DEVANAGARI LETTER SA
+0939;AL;DEVANAGARI LETTER HA
+093C;CM;DEVANAGARI SIGN NUKTA
+093D;AL;DEVANAGARI SIGN AVAGRAHA
+093E;CM;DEVANAGARI VOWEL SIGN AA
+093F;CM;DEVANAGARI VOWEL SIGN I
+0940;CM;DEVANAGARI VOWEL SIGN II
+0941;CM;DEVANAGARI VOWEL SIGN U
+0942;CM;DEVANAGARI VOWEL SIGN UU
+0943;CM;DEVANAGARI VOWEL SIGN VOCALIC R
+0944;CM;DEVANAGARI VOWEL SIGN VOCALIC RR
+0945;CM;DEVANAGARI VOWEL SIGN CANDRA E
+0946;CM;DEVANAGARI VOWEL SIGN SHORT E
+0947;CM;DEVANAGARI VOWEL SIGN E
+0948;CM;DEVANAGARI VOWEL SIGN AI
+0949;CM;DEVANAGARI VOWEL SIGN CANDRA O
+094A;CM;DEVANAGARI VOWEL SIGN SHORT O
+094B;CM;DEVANAGARI VOWEL SIGN O
+094C;CM;DEVANAGARI VOWEL SIGN AU
+094D;CM;DEVANAGARI SIGN VIRAMA
+0950;AL;DEVANAGARI OM
+0951;CM;DEVANAGARI STRESS SIGN UDATTA
+0952;CM;DEVANAGARI STRESS SIGN ANUDATTA
+0953;CM;DEVANAGARI GRAVE ACCENT
+0954;CM;DEVANAGARI ACUTE ACCENT
+0958;AL;DEVANAGARI LETTER QA
+0959;AL;DEVANAGARI LETTER KHHA
+095A;AL;DEVANAGARI LETTER GHHA
+095B;AL;DEVANAGARI LETTER ZA
+095C;AL;DEVANAGARI LETTER DDDHA
+095D;AL;DEVANAGARI LETTER RHA
+095E;AL;DEVANAGARI LETTER FA
+095F;AL;DEVANAGARI LETTER YYA
+0960;AL;DEVANAGARI LETTER VOCALIC RR
+0961;AL;DEVANAGARI LETTER VOCALIC LL
+0962;CM;DEVANAGARI VOWEL SIGN VOCALIC L
+0963;CM;DEVANAGARI VOWEL SIGN VOCALIC LL
+0964;AL;DEVANAGARI DANDA
+0965;AL;DEVANAGARI DOUBLE DANDA
+0966;NU;DEVANAGARI DIGIT ZERO
+0967;NU;DEVANAGARI DIGIT ONE
+0968;NU;DEVANAGARI DIGIT TWO
+0969;NU;DEVANAGARI DIGIT THREE
+096A;NU;DEVANAGARI DIGIT FOUR
+096B;NU;DEVANAGARI DIGIT FIVE
+096C;NU;DEVANAGARI DIGIT SIX
+096D;NU;DEVANAGARI DIGIT SEVEN
+096E;NU;DEVANAGARI DIGIT EIGHT
+096F;NU;DEVANAGARI DIGIT NINE
+0970;AL;DEVANAGARI ABBREVIATION SIGN
+0981;CM;BENGALI SIGN CANDRABINDU
+0982;CM;BENGALI SIGN ANUSVARA
+0983;CM;BENGALI SIGN VISARGA
+0985;AL;BENGALI LETTER A
+0986;AL;BENGALI LETTER AA
+0987;AL;BENGALI LETTER I
+0988;AL;BENGALI LETTER II
+0989;AL;BENGALI LETTER U
+098A;AL;BENGALI LETTER UU
+098B;AL;BENGALI LETTER VOCALIC R
+098C;AL;BENGALI LETTER VOCALIC L
+098F;AL;BENGALI LETTER E
+0990;AL;BENGALI LETTER AI
+0993;AL;BENGALI LETTER O
+0994;AL;BENGALI LETTER AU
+0995;AL;BENGALI LETTER KA
+0996;AL;BENGALI LETTER KHA
+0997;AL;BENGALI LETTER GA
+0998;AL;BENGALI LETTER GHA
+0999;AL;BENGALI LETTER NGA
+099A;AL;BENGALI LETTER CA
+099B;AL;BENGALI LETTER CHA
+099C;AL;BENGALI LETTER JA
+099D;AL;BENGALI LETTER JHA
+099E;AL;BENGALI LETTER NYA
+099F;AL;BENGALI LETTER TTA
+09A0;AL;BENGALI LETTER TTHA
+09A1;AL;BENGALI LETTER DDA
+09A2;AL;BENGALI LETTER DDHA
+09A3;AL;BENGALI LETTER NNA
+09A4;AL;BENGALI LETTER TA
+09A5;AL;BENGALI LETTER THA
+09A6;AL;BENGALI LETTER DA
+09A7;AL;BENGALI LETTER DHA
+09A8;AL;BENGALI LETTER NA
+09AA;AL;BENGALI LETTER PA
+09AB;AL;BENGALI LETTER PHA
+09AC;AL;BENGALI LETTER BA
+09AD;AL;BENGALI LETTER BHA
+09AE;AL;BENGALI LETTER MA
+09AF;AL;BENGALI LETTER YA
+09B0;AL;BENGALI LETTER RA
+09B2;AL;BENGALI LETTER LA
+09B6;AL;BENGALI LETTER SHA
+09B7;AL;BENGALI LETTER SSA
+09B8;AL;BENGALI LETTER SA
+09B9;AL;BENGALI LETTER HA
+09BC;CM;BENGALI SIGN NUKTA
+09BE;CM;BENGALI VOWEL SIGN AA
+09BF;CM;BENGALI VOWEL SIGN I
+09C0;CM;BENGALI VOWEL SIGN II
+09C1;CM;BENGALI VOWEL SIGN U
+09C2;CM;BENGALI VOWEL SIGN UU
+09C3;CM;BENGALI VOWEL SIGN VOCALIC R
+09C4;CM;BENGALI VOWEL SIGN VOCALIC RR
+09C7;CM;BENGALI VOWEL SIGN E
+09C8;CM;BENGALI VOWEL SIGN AI
+09CB;CM;BENGALI VOWEL SIGN O
+09CC;CM;BENGALI VOWEL SIGN AU
+09CD;CM;BENGALI SIGN VIRAMA
+09D7;CM;BENGALI AU LENGTH MARK
+09DC;AL;BENGALI LETTER RRA
+09DD;AL;BENGALI LETTER RHA
+09DF;AL;BENGALI LETTER YYA
+09E0;AL;BENGALI LETTER VOCALIC RR
+09E1;AL;BENGALI LETTER VOCALIC LL
+09E2;CM;BENGALI VOWEL SIGN VOCALIC L
+09E3;CM;BENGALI VOWEL SIGN VOCALIC LL
+09E6;NU;BENGALI DIGIT ZERO
+09E7;NU;BENGALI DIGIT ONE
+09E8;NU;BENGALI DIGIT TWO
+09E9;NU;BENGALI DIGIT THREE
+09EA;NU;BENGALI DIGIT FOUR
+09EB;NU;BENGALI DIGIT FIVE
+09EC;NU;BENGALI DIGIT SIX
+09ED;NU;BENGALI DIGIT SEVEN
+09EE;NU;BENGALI DIGIT EIGHT
+09EF;NU;BENGALI DIGIT NINE
+09F0;AL;BENGALI LETTER RA WITH MIDDLE DIAGONAL
+09F1;AL;BENGALI LETTER RA WITH LOWER DIAGONAL
+09F2;PR;BENGALI RUPEE MARK
+09F3;PR;BENGALI RUPEE SIGN
+09F4;AL;BENGALI CURRENCY NUMERATOR ONE
+09F5;AL;BENGALI CURRENCY NUMERATOR TWO
+09F6;AL;BENGALI CURRENCY NUMERATOR THREE
+09F7;AL;BENGALI CURRENCY NUMERATOR FOUR
+09F8;AL;BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
+09F9;AL;BENGALI CURRENCY DENOMINATOR SIXTEEN
+09FA;AL;BENGALI ISSHAR
+0A02;CM;GURMUKHI SIGN BINDI
+0A05;AL;GURMUKHI LETTER A
+0A06;AL;GURMUKHI LETTER AA
+0A07;AL;GURMUKHI LETTER I
+0A08;AL;GURMUKHI LETTER II
+0A09;AL;GURMUKHI LETTER U
+0A0A;AL;GURMUKHI LETTER UU
+0A0F;AL;GURMUKHI LETTER EE
+0A10;AL;GURMUKHI LETTER AI
+0A13;AL;GURMUKHI LETTER OO
+0A14;AL;GURMUKHI LETTER AU
+0A15;AL;GURMUKHI LETTER KA
+0A16;AL;GURMUKHI LETTER KHA
+0A17;AL;GURMUKHI LETTER GA
+0A18;AL;GURMUKHI LETTER GHA
+0A19;AL;GURMUKHI LETTER NGA
+0A1A;AL;GURMUKHI LETTER CA
+0A1B;AL;GURMUKHI LETTER CHA
+0A1C;AL;GURMUKHI LETTER JA
+0A1D;AL;GURMUKHI LETTER JHA
+0A1E;AL;GURMUKHI LETTER NYA
+0A1F;AL;GURMUKHI LETTER TTA
+0A20;AL;GURMUKHI LETTER TTHA
+0A21;AL;GURMUKHI LETTER DDA
+0A22;AL;GURMUKHI LETTER DDHA
+0A23;AL;GURMUKHI LETTER NNA
+0A24;AL;GURMUKHI LETTER TA
+0A25;AL;GURMUKHI LETTER THA
+0A26;AL;GURMUKHI LETTER DA
+0A27;AL;GURMUKHI LETTER DHA
+0A28;AL;GURMUKHI LETTER NA
+0A2A;AL;GURMUKHI LETTER PA
+0A2B;AL;GURMUKHI LETTER PHA
+0A2C;AL;GURMUKHI LETTER BA
+0A2D;AL;GURMUKHI LETTER BHA
+0A2E;AL;GURMUKHI LETTER MA
+0A2F;AL;GURMUKHI LETTER YA
+0A30;AL;GURMUKHI LETTER RA
+0A32;AL;GURMUKHI LETTER LA
+0A33;AL;GURMUKHI LETTER LLA
+0A35;AL;GURMUKHI LETTER VA
+0A36;AL;GURMUKHI LETTER SHA
+0A38;AL;GURMUKHI LETTER SA
+0A39;AL;GURMUKHI LETTER HA
+0A3C;CM;GURMUKHI SIGN NUKTA
+0A3E;CM;GURMUKHI VOWEL SIGN AA
+0A3F;CM;GURMUKHI VOWEL SIGN I
+0A40;CM;GURMUKHI VOWEL SIGN II
+0A41;CM;GURMUKHI VOWEL SIGN U
+0A42;CM;GURMUKHI VOWEL SIGN UU
+0A47;CM;GURMUKHI VOWEL SIGN EE
+0A48;CM;GURMUKHI VOWEL SIGN AI
+0A4B;CM;GURMUKHI VOWEL SIGN OO
+0A4C;CM;GURMUKHI VOWEL SIGN AU
+0A4D;CM;GURMUKHI SIGN VIRAMA
+0A59;AL;GURMUKHI LETTER KHHA
+0A5A;AL;GURMUKHI LETTER GHHA
+0A5B;AL;GURMUKHI LETTER ZA
+0A5C;AL;GURMUKHI LETTER RRA
+0A5E;AL;GURMUKHI LETTER FA
+0A66;NU;GURMUKHI DIGIT ZERO
+0A67;NU;GURMUKHI DIGIT ONE
+0A68;NU;GURMUKHI DIGIT TWO
+0A69;NU;GURMUKHI DIGIT THREE
+0A6A;NU;GURMUKHI DIGIT FOUR
+0A6B;NU;GURMUKHI DIGIT FIVE
+0A6C;NU;GURMUKHI DIGIT SIX
+0A6D;NU;GURMUKHI DIGIT SEVEN
+0A6E;NU;GURMUKHI DIGIT EIGHT
+0A6F;NU;GURMUKHI DIGIT NINE
+0A70;CM;GURMUKHI TIPPI
+0A71;CM;GURMUKHI ADDAK
+0A72;AL;GURMUKHI IRI
+0A73;AL;GURMUKHI URA
+0A74;AL;GURMUKHI EK ONKAR
+0A81;CM;GUJARATI SIGN CANDRABINDU
+0A82;CM;GUJARATI SIGN ANUSVARA
+0A83;CM;GUJARATI SIGN VISARGA
+0A85;AL;GUJARATI LETTER A
+0A86;AL;GUJARATI LETTER AA
+0A87;AL;GUJARATI LETTER I
+0A88;AL;GUJARATI LETTER II
+0A89;AL;GUJARATI LETTER U
+0A8A;AL;GUJARATI LETTER UU
+0A8B;AL;GUJARATI LETTER VOCALIC R
+0A8D;AL;GUJARATI VOWEL CANDRA E
+0A8F;AL;GUJARATI LETTER E
+0A90;AL;GUJARATI LETTER AI
+0A91;AL;GUJARATI VOWEL CANDRA O
+0A93;AL;GUJARATI LETTER O
+0A94;AL;GUJARATI LETTER AU
+0A95;AL;GUJARATI LETTER KA
+0A96;AL;GUJARATI LETTER KHA
+0A97;AL;GUJARATI LETTER GA
+0A98;AL;GUJARATI LETTER GHA
+0A99;AL;GUJARATI LETTER NGA
+0A9A;AL;GUJARATI LETTER CA
+0A9B;AL;GUJARATI LETTER CHA
+0A9C;AL;GUJARATI LETTER JA
+0A9D;AL;GUJARATI LETTER JHA
+0A9E;AL;GUJARATI LETTER NYA
+0A9F;AL;GUJARATI LETTER TTA
+0AA0;AL;GUJARATI LETTER TTHA
+0AA1;AL;GUJARATI LETTER DDA
+0AA2;AL;GUJARATI LETTER DDHA
+0AA3;AL;GUJARATI LETTER NNA
+0AA4;AL;GUJARATI LETTER TA
+0AA5;AL;GUJARATI LETTER THA
+0AA6;AL;GUJARATI LETTER DA
+0AA7;AL;GUJARATI LETTER DHA
+0AA8;AL;GUJARATI LETTER NA
+0AAA;AL;GUJARATI LETTER PA
+0AAB;AL;GUJARATI LETTER PHA
+0AAC;AL;GUJARATI LETTER BA
+0AAD;AL;GUJARATI LETTER BHA
+0AAE;AL;GUJARATI LETTER MA
+0AAF;AL;GUJARATI LETTER YA
+0AB0;AL;GUJARATI LETTER RA
+0AB2;AL;GUJARATI LETTER LA
+0AB3;AL;GUJARATI LETTER LLA
+0AB5;AL;GUJARATI LETTER VA
+0AB6;AL;GUJARATI LETTER SHA
+0AB7;AL;GUJARATI LETTER SSA
+0AB8;AL;GUJARATI LETTER SA
+0AB9;AL;GUJARATI LETTER HA
+0ABC;CM;GUJARATI SIGN NUKTA
+0ABD;AL;GUJARATI SIGN AVAGRAHA
+0ABE;CM;GUJARATI VOWEL SIGN AA
+0ABF;CM;GUJARATI VOWEL SIGN I
+0AC0;CM;GUJARATI VOWEL SIGN II
+0AC1;CM;GUJARATI VOWEL SIGN U
+0AC2;CM;GUJARATI VOWEL SIGN UU
+0AC3;CM;GUJARATI VOWEL SIGN VOCALIC R
+0AC4;CM;GUJARATI VOWEL SIGN VOCALIC RR
+0AC5;CM;GUJARATI VOWEL SIGN CANDRA E
+0AC7;CM;GUJARATI VOWEL SIGN E
+0AC8;CM;GUJARATI VOWEL SIGN AI
+0AC9;CM;GUJARATI VOWEL SIGN CANDRA O
+0ACB;CM;GUJARATI VOWEL SIGN O
+0ACC;CM;GUJARATI VOWEL SIGN AU
+0ACD;CM;GUJARATI SIGN VIRAMA
+0AD0;AL;GUJARATI OM
+0AE0;AL;GUJARATI LETTER VOCALIC RR
+0AE6;NU;GUJARATI DIGIT ZERO
+0AE7;NU;GUJARATI DIGIT ONE
+0AE8;NU;GUJARATI DIGIT TWO
+0AE9;NU;GUJARATI DIGIT THREE
+0AEA;NU;GUJARATI DIGIT FOUR
+0AEB;NU;GUJARATI DIGIT FIVE
+0AEC;NU;GUJARATI DIGIT SIX
+0AED;NU;GUJARATI DIGIT SEVEN
+0AEE;NU;GUJARATI DIGIT EIGHT
+0AEF;NU;GUJARATI DIGIT NINE
+0B01;CM;ORIYA SIGN CANDRABINDU
+0B02;CM;ORIYA SIGN ANUSVARA
+0B03;CM;ORIYA SIGN VISARGA
+0B05;AL;ORIYA LETTER A
+0B06;AL;ORIYA LETTER AA
+0B07;AL;ORIYA LETTER I
+0B08;AL;ORIYA LETTER II
+0B09;AL;ORIYA LETTER U
+0B0A;AL;ORIYA LETTER UU
+0B0B;AL;ORIYA LETTER VOCALIC R
+0B0C;AL;ORIYA LETTER VOCALIC L
+0B0F;AL;ORIYA LETTER E
+0B10;AL;ORIYA LETTER AI
+0B13;AL;ORIYA LETTER O
+0B14;AL;ORIYA LETTER AU
+0B15;AL;ORIYA LETTER KA
+0B16;AL;ORIYA LETTER KHA
+0B17;AL;ORIYA LETTER GA
+0B18;AL;ORIYA LETTER GHA
+0B19;AL;ORIYA LETTER NGA
+0B1A;AL;ORIYA LETTER CA
+0B1B;AL;ORIYA LETTER CHA
+0B1C;AL;ORIYA LETTER JA
+0B1D;AL;ORIYA LETTER JHA
+0B1E;AL;ORIYA LETTER NYA
+0B1F;AL;ORIYA LETTER TTA
+0B20;AL;ORIYA LETTER TTHA
+0B21;AL;ORIYA LETTER DDA
+0B22;AL;ORIYA LETTER DDHA
+0B23;AL;ORIYA LETTER NNA
+0B24;AL;ORIYA LETTER TA
+0B25;AL;ORIYA LETTER THA
+0B26;AL;ORIYA LETTER DA
+0B27;AL;ORIYA LETTER DHA
+0B28;AL;ORIYA LETTER NA
+0B2A;AL;ORIYA LETTER PA
+0B2B;AL;ORIYA LETTER PHA
+0B2C;AL;ORIYA LETTER BA
+0B2D;AL;ORIYA LETTER BHA
+0B2E;AL;ORIYA LETTER MA
+0B2F;AL;ORIYA LETTER YA
+0B30;AL;ORIYA LETTER RA
+0B32;AL;ORIYA LETTER LA
+0B33;AL;ORIYA LETTER LLA
+0B36;AL;ORIYA LETTER SHA
+0B37;AL;ORIYA LETTER SSA
+0B38;AL;ORIYA LETTER SA
+0B39;AL;ORIYA LETTER HA
+0B3C;CM;ORIYA SIGN NUKTA
+0B3D;AL;ORIYA SIGN AVAGRAHA
+0B3E;CM;ORIYA VOWEL SIGN AA
+0B3F;CM;ORIYA VOWEL SIGN I
+0B40;CM;ORIYA VOWEL SIGN II
+0B41;CM;ORIYA VOWEL SIGN U
+0B42;CM;ORIYA VOWEL SIGN UU
+0B43;CM;ORIYA VOWEL SIGN VOCALIC R
+0B47;CM;ORIYA VOWEL SIGN E
+0B48;CM;ORIYA VOWEL SIGN AI
+0B4B;CM;ORIYA VOWEL SIGN O
+0B4C;CM;ORIYA VOWEL SIGN AU
+0B4D;CM;ORIYA SIGN VIRAMA
+0B56;CM;ORIYA AI LENGTH MARK
+0B57;CM;ORIYA AU LENGTH MARK
+0B5C;AL;ORIYA LETTER RRA
+0B5D;AL;ORIYA LETTER RHA
+0B5F;AL;ORIYA LETTER YYA
+0B60;AL;ORIYA LETTER VOCALIC RR
+0B61;AL;ORIYA LETTER VOCALIC LL
+0B66;NU;ORIYA DIGIT ZERO
+0B67;NU;ORIYA DIGIT ONE
+0B68;NU;ORIYA DIGIT TWO
+0B69;NU;ORIYA DIGIT THREE
+0B6A;NU;ORIYA DIGIT FOUR
+0B6B;NU;ORIYA DIGIT FIVE
+0B6C;NU;ORIYA DIGIT SIX
+0B6D;NU;ORIYA DIGIT SEVEN
+0B6E;NU;ORIYA DIGIT EIGHT
+0B6F;NU;ORIYA DIGIT NINE
+0B70;AL;ORIYA ISSHAR
+0B82;CM;TAMIL SIGN ANUSVARA
+0B83;CM;TAMIL SIGN VISARGA
+0B85;AL;TAMIL LETTER A
+0B86;AL;TAMIL LETTER AA
+0B87;AL;TAMIL LETTER I
+0B88;AL;TAMIL LETTER II
+0B89;AL;TAMIL LETTER U
+0B8A;AL;TAMIL LETTER UU
+0B8E;AL;TAMIL LETTER E
+0B8F;AL;TAMIL LETTER EE
+0B90;AL;TAMIL LETTER AI
+0B92;AL;TAMIL LETTER O
+0B93;AL;TAMIL LETTER OO
+0B94;AL;TAMIL LETTER AU
+0B95;AL;TAMIL LETTER KA
+0B99;AL;TAMIL LETTER NGA
+0B9A;AL;TAMIL LETTER CA
+0B9C;AL;TAMIL LETTER JA
+0B9E;AL;TAMIL LETTER NYA
+0B9F;AL;TAMIL LETTER TTA
+0BA3;AL;TAMIL LETTER NNA
+0BA4;AL;TAMIL LETTER TA
+0BA8;AL;TAMIL LETTER NA
+0BA9;AL;TAMIL LETTER NNNA
+0BAA;AL;TAMIL LETTER PA
+0BAE;AL;TAMIL LETTER MA
+0BAF;AL;TAMIL LETTER YA
+0BB0;AL;TAMIL LETTER RA
+0BB1;AL;TAMIL LETTER RRA
+0BB2;AL;TAMIL LETTER LA
+0BB3;AL;TAMIL LETTER LLA
+0BB4;AL;TAMIL LETTER LLLA
+0BB5;AL;TAMIL LETTER VA
+0BB7;AL;TAMIL LETTER SSA
+0BB8;AL;TAMIL LETTER SA
+0BB9;AL;TAMIL LETTER HA
+0BBE;CM;TAMIL VOWEL SIGN AA
+0BBF;CM;TAMIL VOWEL SIGN I
+0BC0;CM;TAMIL VOWEL SIGN II
+0BC1;CM;TAMIL VOWEL SIGN U
+0BC2;CM;TAMIL VOWEL SIGN UU
+0BC6;CM;TAMIL VOWEL SIGN E
+0BC7;CM;TAMIL VOWEL SIGN EE
+0BC8;CM;TAMIL VOWEL SIGN AI
+0BCA;CM;TAMIL VOWEL SIGN O
+0BCB;CM;TAMIL VOWEL SIGN OO
+0BCC;CM;TAMIL VOWEL SIGN AU
+0BCD;CM;TAMIL SIGN VIRAMA
+0BD7;CM;TAMIL AU LENGTH MARK
+0BE7;NU;TAMIL DIGIT ONE
+0BE8;NU;TAMIL DIGIT TWO
+0BE9;NU;TAMIL DIGIT THREE
+0BEA;NU;TAMIL DIGIT FOUR
+0BEB;NU;TAMIL DIGIT FIVE
+0BEC;NU;TAMIL DIGIT SIX
+0BED;NU;TAMIL DIGIT SEVEN
+0BEE;NU;TAMIL DIGIT EIGHT
+0BEF;NU;TAMIL DIGIT NINE
+0BF0;AL;TAMIL NUMBER TEN
+0BF1;AL;TAMIL NUMBER ONE HUNDRED
+0BF2;AL;TAMIL NUMBER ONE THOUSAND
+0C01;CM;TELUGU SIGN CANDRABINDU
+0C02;CM;TELUGU SIGN ANUSVARA
+0C03;CM;TELUGU SIGN VISARGA
+0C05;AL;TELUGU LETTER A
+0C06;AL;TELUGU LETTER AA
+0C07;AL;TELUGU LETTER I
+0C08;AL;TELUGU LETTER II
+0C09;AL;TELUGU LETTER U
+0C0A;AL;TELUGU LETTER UU
+0C0B;AL;TELUGU LETTER VOCALIC R
+0C0C;AL;TELUGU LETTER VOCALIC L
+0C0E;AL;TELUGU LETTER E
+0C0F;AL;TELUGU LETTER EE
+0C10;AL;TELUGU LETTER AI
+0C12;AL;TELUGU LETTER O
+0C13;AL;TELUGU LETTER OO
+0C14;AL;TELUGU LETTER AU
+0C15;AL;TELUGU LETTER KA
+0C16;AL;TELUGU LETTER KHA
+0C17;AL;TELUGU LETTER GA
+0C18;AL;TELUGU LETTER GHA
+0C19;AL;TELUGU LETTER NGA
+0C1A;AL;TELUGU LETTER CA
+0C1B;AL;TELUGU LETTER CHA
+0C1C;AL;TELUGU LETTER JA
+0C1D;AL;TELUGU LETTER JHA
+0C1E;AL;TELUGU LETTER NYA
+0C1F;AL;TELUGU LETTER TTA
+0C20;AL;TELUGU LETTER TTHA
+0C21;AL;TELUGU LETTER DDA
+0C22;AL;TELUGU LETTER DDHA
+0C23;AL;TELUGU LETTER NNA
+0C24;AL;TELUGU LETTER TA
+0C25;AL;TELUGU LETTER THA
+0C26;AL;TELUGU LETTER DA
+0C27;AL;TELUGU LETTER DHA
+0C28;AL;TELUGU LETTER NA
+0C2A;AL;TELUGU LETTER PA
+0C2B;AL;TELUGU LETTER PHA
+0C2C;AL;TELUGU LETTER BA
+0C2D;AL;TELUGU LETTER BHA
+0C2E;AL;TELUGU LETTER MA
+0C2F;AL;TELUGU LETTER YA
+0C30;AL;TELUGU LETTER RA
+0C31;AL;TELUGU LETTER RRA
+0C32;AL;TELUGU LETTER LA
+0C33;AL;TELUGU LETTER LLA
+0C35;AL;TELUGU LETTER VA
+0C36;AL;TELUGU LETTER SHA
+0C37;AL;TELUGU LETTER SSA
+0C38;AL;TELUGU LETTER SA
+0C39;AL;TELUGU LETTER HA
+0C3E;CM;TELUGU VOWEL SIGN AA
+0C3F;CM;TELUGU VOWEL SIGN I
+0C40;CM;TELUGU VOWEL SIGN II
+0C41;CM;TELUGU VOWEL SIGN U
+0C42;CM;TELUGU VOWEL SIGN UU
+0C43;CM;TELUGU VOWEL SIGN VOCALIC R
+0C44;CM;TELUGU VOWEL SIGN VOCALIC RR
+0C46;CM;TELUGU VOWEL SIGN E
+0C47;CM;TELUGU VOWEL SIGN EE
+0C48;CM;TELUGU VOWEL SIGN AI
+0C4A;CM;TELUGU VOWEL SIGN O
+0C4B;CM;TELUGU VOWEL SIGN OO
+0C4C;CM;TELUGU VOWEL SIGN AU
+0C4D;CM;TELUGU SIGN VIRAMA
+0C55;CM;TELUGU LENGTH MARK
+0C56;CM;TELUGU AI LENGTH MARK
+0C60;AL;TELUGU LETTER VOCALIC RR
+0C61;AL;TELUGU LETTER VOCALIC LL
+0C66;NU;TELUGU DIGIT ZERO
+0C67;NU;TELUGU DIGIT ONE
+0C68;NU;TELUGU DIGIT TWO
+0C69;NU;TELUGU DIGIT THREE
+0C6A;NU;TELUGU DIGIT FOUR
+0C6B;NU;TELUGU DIGIT FIVE
+0C6C;NU;TELUGU DIGIT SIX
+0C6D;NU;TELUGU DIGIT SEVEN
+0C6E;NU;TELUGU DIGIT EIGHT
+0C6F;NU;TELUGU DIGIT NINE
+0C82;CM;KANNADA SIGN ANUSVARA
+0C83;CM;KANNADA SIGN VISARGA
+0C85;AL;KANNADA LETTER A
+0C86;AL;KANNADA LETTER AA
+0C87;AL;KANNADA LETTER I
+0C88;AL;KANNADA LETTER II
+0C89;AL;KANNADA LETTER U
+0C8A;AL;KANNADA LETTER UU
+0C8B;AL;KANNADA LETTER VOCALIC R
+0C8C;AL;KANNADA LETTER VOCALIC L
+0C8E;AL;KANNADA LETTER E
+0C8F;AL;KANNADA LETTER EE
+0C90;AL;KANNADA LETTER AI
+0C92;AL;KANNADA LETTER O
+0C93;AL;KANNADA LETTER OO
+0C94;AL;KANNADA LETTER AU
+0C95;AL;KANNADA LETTER KA
+0C96;AL;KANNADA LETTER KHA
+0C97;AL;KANNADA LETTER GA
+0C98;AL;KANNADA LETTER GHA
+0C99;AL;KANNADA LETTER NGA
+0C9A;AL;KANNADA LETTER CA
+0C9B;AL;KANNADA LETTER CHA
+0C9C;AL;KANNADA LETTER JA
+0C9D;AL;KANNADA LETTER JHA
+0C9E;AL;KANNADA LETTER NYA
+0C9F;AL;KANNADA LETTER TTA
+0CA0;AL;KANNADA LETTER TTHA
+0CA1;AL;KANNADA LETTER DDA
+0CA2;AL;KANNADA LETTER DDHA
+0CA3;AL;KANNADA LETTER NNA
+0CA4;AL;KANNADA LETTER TA
+0CA5;AL;KANNADA LETTER THA
+0CA6;AL;KANNADA LETTER DA
+0CA7;AL;KANNADA LETTER DHA
+0CA8;AL;KANNADA LETTER NA
+0CAA;AL;KANNADA LETTER PA
+0CAB;AL;KANNADA LETTER PHA
+0CAC;AL;KANNADA LETTER BA
+0CAD;AL;KANNADA LETTER BHA
+0CAE;AL;KANNADA LETTER MA
+0CAF;AL;KANNADA LETTER YA
+0CB0;AL;KANNADA LETTER RA
+0CB1;AL;KANNADA LETTER RRA
+0CB2;AL;KANNADA LETTER LA
+0CB3;AL;KANNADA LETTER LLA
+0CB5;AL;KANNADA LETTER VA
+0CB6;AL;KANNADA LETTER SHA
+0CB7;AL;KANNADA LETTER SSA
+0CB8;AL;KANNADA LETTER SA
+0CB9;AL;KANNADA LETTER HA
+0CBE;CM;KANNADA VOWEL SIGN AA
+0CBF;CM;KANNADA VOWEL SIGN I
+0CC0;CM;KANNADA VOWEL SIGN II
+0CC1;CM;KANNADA VOWEL SIGN U
+0CC2;CM;KANNADA VOWEL SIGN UU
+0CC3;CM;KANNADA VOWEL SIGN VOCALIC R
+0CC4;CM;KANNADA VOWEL SIGN VOCALIC RR
+0CC6;CM;KANNADA VOWEL SIGN E
+0CC7;CM;KANNADA VOWEL SIGN EE
+0CC8;CM;KANNADA VOWEL SIGN AI
+0CCA;CM;KANNADA VOWEL SIGN O
+0CCB;CM;KANNADA VOWEL SIGN OO
+0CCC;CM;KANNADA VOWEL SIGN AU
+0CCD;CM;KANNADA SIGN VIRAMA
+0CD5;CM;KANNADA LENGTH MARK
+0CD6;CM;KANNADA AI LENGTH MARK
+0CDE;AL;KANNADA LETTER FA
+0CE0;AL;KANNADA LETTER VOCALIC RR
+0CE1;AL;KANNADA LETTER VOCALIC LL
+0CE6;NU;KANNADA DIGIT ZERO
+0CE7;NU;KANNADA DIGIT ONE
+0CE8;NU;KANNADA DIGIT TWO
+0CE9;NU;KANNADA DIGIT THREE
+0CEA;NU;KANNADA DIGIT FOUR
+0CEB;NU;KANNADA DIGIT FIVE
+0CEC;NU;KANNADA DIGIT SIX
+0CED;NU;KANNADA DIGIT SEVEN
+0CEE;NU;KANNADA DIGIT EIGHT
+0CEF;NU;KANNADA DIGIT NINE
+0D02;CM;MALAYALAM SIGN ANUSVARA
+0D03;CM;MALAYALAM SIGN VISARGA
+0D05;AL;MALAYALAM LETTER A
+0D06;AL;MALAYALAM LETTER AA
+0D07;AL;MALAYALAM LETTER I
+0D08;AL;MALAYALAM LETTER II
+0D09;AL;MALAYALAM LETTER U
+0D0A;AL;MALAYALAM LETTER UU
+0D0B;AL;MALAYALAM LETTER VOCALIC R
+0D0C;AL;MALAYALAM LETTER VOCALIC L
+0D0E;AL;MALAYALAM LETTER E
+0D0F;AL;MALAYALAM LETTER EE
+0D10;AL;MALAYALAM LETTER AI
+0D12;AL;MALAYALAM LETTER O
+0D13;AL;MALAYALAM LETTER OO
+0D14;AL;MALAYALAM LETTER AU
+0D15;AL;MALAYALAM LETTER KA
+0D16;AL;MALAYALAM LETTER KHA
+0D17;AL;MALAYALAM LETTER GA
+0D18;AL;MALAYALAM LETTER GHA
+0D19;AL;MALAYALAM LETTER NGA
+0D1A;AL;MALAYALAM LETTER CA
+0D1B;AL;MALAYALAM LETTER CHA
+0D1C;AL;MALAYALAM LETTER JA
+0D1D;AL;MALAYALAM LETTER JHA
+0D1E;AL;MALAYALAM LETTER NYA
+0D1F;AL;MALAYALAM LETTER TTA
+0D20;AL;MALAYALAM LETTER TTHA
+0D21;AL;MALAYALAM LETTER DDA
+0D22;AL;MALAYALAM LETTER DDHA
+0D23;AL;MALAYALAM LETTER NNA
+0D24;AL;MALAYALAM LETTER TA
+0D25;AL;MALAYALAM LETTER THA
+0D26;AL;MALAYALAM LETTER DA
+0D27;AL;MALAYALAM LETTER DHA
+0D28;AL;MALAYALAM LETTER NA
+0D2A;AL;MALAYALAM LETTER PA
+0D2B;AL;MALAYALAM LETTER PHA
+0D2C;AL;MALAYALAM LETTER BA
+0D2D;AL;MALAYALAM LETTER BHA
+0D2E;AL;MALAYALAM LETTER MA
+0D2F;AL;MALAYALAM LETTER YA
+0D30;AL;MALAYALAM LETTER RA
+0D31;AL;MALAYALAM LETTER RRA
+0D32;AL;MALAYALAM LETTER LA
+0D33;AL;MALAYALAM LETTER LLA
+0D34;AL;MALAYALAM LETTER LLLA
+0D35;AL;MALAYALAM LETTER VA
+0D36;AL;MALAYALAM LETTER SHA
+0D37;AL;MALAYALAM LETTER SSA
+0D38;AL;MALAYALAM LETTER SA
+0D39;AL;MALAYALAM LETTER HA
+0D3E;CM;MALAYALAM VOWEL SIGN AA
+0D3F;CM;MALAYALAM VOWEL SIGN I
+0D40;CM;MALAYALAM VOWEL SIGN II
+0D41;CM;MALAYALAM VOWEL SIGN U
+0D42;CM;MALAYALAM VOWEL SIGN UU
+0D43;CM;MALAYALAM VOWEL SIGN VOCALIC R
+0D46;CM;MALAYALAM VOWEL SIGN E
+0D47;CM;MALAYALAM VOWEL SIGN EE
+0D48;CM;MALAYALAM VOWEL SIGN AI
+0D4A;CM;MALAYALAM VOWEL SIGN O
+0D4B;CM;MALAYALAM VOWEL SIGN OO
+0D4C;CM;MALAYALAM VOWEL SIGN AU
+0D4D;CM;MALAYALAM SIGN VIRAMA
+0D57;CM;MALAYALAM AU LENGTH MARK
+0D60;AL;MALAYALAM LETTER VOCALIC RR
+0D61;AL;MALAYALAM LETTER VOCALIC LL
+0D66;NU;MALAYALAM DIGIT ZERO
+0D67;NU;MALAYALAM DIGIT ONE
+0D68;NU;MALAYALAM DIGIT TWO
+0D69;NU;MALAYALAM DIGIT THREE
+0D6A;NU;MALAYALAM DIGIT FOUR
+0D6B;NU;MALAYALAM DIGIT FIVE
+0D6C;NU;MALAYALAM DIGIT SIX
+0D6D;NU;MALAYALAM DIGIT SEVEN
+0D6E;NU;MALAYALAM DIGIT EIGHT
+0D6F;NU;MALAYALAM DIGIT NINE
+0D82;CM;SINHALA SIGN ANUSVARAYA
+0D83;CM;SINHALA SIGN VISARGAYA
+0D85;AL;SINHALA LETTER AYANNA
+0D86;AL;SINHALA LETTER AAYANNA
+0D87;AL;SINHALA LETTER AEYANNA
+0D88;AL;SINHALA LETTER AEEYANNA
+0D89;AL;SINHALA LETTER IYANNA
+0D8A;AL;SINHALA LETTER IIYANNA
+0D8B;AL;SINHALA LETTER UYANNA
+0D8C;AL;SINHALA LETTER UUYANNA
+0D8D;AL;SINHALA LETTER IRUYANNA
+0D8E;AL;SINHALA LETTER IRUUYANNA
+0D8F;AL;SINHALA LETTER ILUYANNA
+0D90;AL;SINHALA LETTER ILUUYANNA
+0D91;AL;SINHALA LETTER EYANNA
+0D92;AL;SINHALA LETTER EEYANNA
+0D93;AL;SINHALA LETTER AIYANNA
+0D94;AL;SINHALA LETTER OYANNA
+0D95;AL;SINHALA LETTER OOYANNA
+0D96;AL;SINHALA LETTER AUYANNA
+0D9A;AL;SINHALA LETTER ALPAPRAANA KAYANNA
+0D9B;AL;SINHALA LETTER MAHAAPRAANA KAYANNA
+0D9C;AL;SINHALA LETTER ALPAPRAANA GAYANNA
+0D9D;AL;SINHALA LETTER MAHAAPRAANA GAYANNA
+0D9E;AL;SINHALA LETTER KANTAJA NAASIKYAYA
+0D9F;AL;SINHALA LETTER SANYAKA GAYANNA
+0DA0;AL;SINHALA LETTER ALPAPRAANA CAYANNA
+0DA1;AL;SINHALA LETTER MAHAAPRAANA CAYANNA
+0DA2;AL;SINHALA LETTER ALPAPRAANA JAYANNA
+0DA3;AL;SINHALA LETTER MAHAAPRAANA JAYANNA
+0DA4;AL;SINHALA LETTER TAALUJA NAASIKYAYA
+0DA5;AL;SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA
+0DA6;AL;SINHALA LETTER SANYAKA JAYANNA
+0DA7;AL;SINHALA LETTER ALPAPRAANA TTAYANNA
+0DA8;AL;SINHALA LETTER MAHAAPRAANA TTAYANNA
+0DA9;AL;SINHALA LETTER ALPAPRAANA DDAYANNA
+0DAA;AL;SINHALA LETTER MAHAAPRAANA DDAYANNA
+0DAB;AL;SINHALA LETTER MUURDHAJA NAYANNA
+0DAC;AL;SINHALA LETTER SANYAKA DDAYANNA
+0DAD;AL;SINHALA LETTER ALPAPRAANA TAYANNA
+0DAE;AL;SINHALA LETTER MAHAAPRAANA TAYANNA
+0DAF;AL;SINHALA LETTER ALPAPRAANA DAYANNA
+0DB0;AL;SINHALA LETTER MAHAAPRAANA DAYANNA
+0DB1;AL;SINHALA LETTER DANTAJA NAYANNA
+0DB3;AL;SINHALA LETTER SANYAKA DAYANNA
+0DB4;AL;SINHALA LETTER ALPAPRAANA PAYANNA
+0DB5;AL;SINHALA LETTER MAHAAPRAANA PAYANNA
+0DB6;AL;SINHALA LETTER ALPAPRAANA BAYANNA
+0DB7;AL;SINHALA LETTER MAHAAPRAANA BAYANNA
+0DB8;AL;SINHALA LETTER MAYANNA
+0DB9;AL;SINHALA LETTER AMBA BAYANNA
+0DBA;AL;SINHALA LETTER YAYANNA
+0DBB;AL;SINHALA LETTER RAYANNA
+0DBD;AL;SINHALA LETTER DANTAJA LAYANNA
+0DC0;AL;SINHALA LETTER VAYANNA
+0DC1;AL;SINHALA LETTER TAALUJA SAYANNA
+0DC2;AL;SINHALA LETTER MUURDHAJA SAYANNA
+0DC3;AL;SINHALA LETTER DANTAJA SAYANNA
+0DC4;AL;SINHALA LETTER HAYANNA
+0DC5;AL;SINHALA LETTER MUURDHAJA LAYANNA
+0DC6;AL;SINHALA LETTER FAYANNA
+0DCA;CM;SINHALA SIGN AL-LAKUNA
+0DCF;CM;SINHALA VOWEL SIGN AELA-PILLA
+0DD0;CM;SINHALA VOWEL SIGN KETTI AEDA-PILLA
+0DD1;CM;SINHALA VOWEL SIGN DIGA AEDA-PILLA
+0DD2;CM;SINHALA VOWEL SIGN KETTI IS-PILLA
+0DD3;CM;SINHALA VOWEL SIGN DIGA IS-PILLA
+0DD4;CM;SINHALA VOWEL SIGN KETTI PAA-PILLA
+0DD6;CM;SINHALA VOWEL SIGN DIGA PAA-PILLA
+0DD8;CM;SINHALA VOWEL SIGN GAETTA-PILLA
+0DD9;CM;SINHALA VOWEL SIGN KOMBUVA
+0DDA;CM;SINHALA VOWEL SIGN DIGA KOMBUVA
+0DDB;CM;SINHALA VOWEL SIGN KOMBU DEKA
+0DDC;CM;SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA
+0DDD;CM;SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA
+0DDE;CM;SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
+0DDF;CM;SINHALA VOWEL SIGN GAYANUKITTA
+0DF2;CM;SINHALA VOWEL SIGN DIGA GAETTA-PILLA
+0DF3;CM;SINHALA VOWEL SIGN DIGA GAYANUKITTA
+0DF4;AL;SINHALA PUNCTUATION KUNDDALIYA
+0E01;SA;THAI CHARACTER KO KAI
+0E02;SA;THAI CHARACTER KHO KHAI
+0E03;SA;THAI CHARACTER KHO KHUAT
+0E04;SA;THAI CHARACTER KHO KHWAI
+0E05;SA;THAI CHARACTER KHO KHON
+0E06;SA;THAI CHARACTER KHO RAKHANG
+0E07;SA;THAI CHARACTER NGO NGU
+0E08;SA;THAI CHARACTER CHO CHAN
+0E09;SA;THAI CHARACTER CHO CHING
+0E0A;SA;THAI CHARACTER CHO CHANG
+0E0B;SA;THAI CHARACTER SO SO
+0E0C;SA;THAI CHARACTER CHO CHOE
+0E0D;SA;THAI CHARACTER YO YING
+0E0E;SA;THAI CHARACTER DO CHADA
+0E0F;SA;THAI CHARACTER TO PATAK
+0E10;SA;THAI CHARACTER THO THAN
+0E11;SA;THAI CHARACTER THO NANGMONTHO
+0E12;SA;THAI CHARACTER THO PHUTHAO
+0E13;SA;THAI CHARACTER NO NEN
+0E14;SA;THAI CHARACTER DO DEK
+0E15;SA;THAI CHARACTER TO TAO
+0E16;SA;THAI CHARACTER THO THUNG
+0E17;SA;THAI CHARACTER THO THAHAN
+0E18;SA;THAI CHARACTER THO THONG
+0E19;SA;THAI CHARACTER NO NU
+0E1A;SA;THAI CHARACTER BO BAIMAI
+0E1B;SA;THAI CHARACTER PO PLA
+0E1C;SA;THAI CHARACTER PHO PHUNG
+0E1D;SA;THAI CHARACTER FO FA
+0E1E;SA;THAI CHARACTER PHO PHAN
+0E1F;SA;THAI CHARACTER FO FAN
+0E20;SA;THAI CHARACTER PHO SAMPHAO
+0E21;SA;THAI CHARACTER MO MA
+0E22;SA;THAI CHARACTER YO YAK
+0E23;SA;THAI CHARACTER RO RUA
+0E24;SA;THAI CHARACTER RU
+0E25;SA;THAI CHARACTER LO LING
+0E26;SA;THAI CHARACTER LU
+0E27;SA;THAI CHARACTER WO WAEN
+0E28;SA;THAI CHARACTER SO SALA
+0E29;SA;THAI CHARACTER SO RUSI
+0E2A;SA;THAI CHARACTER SO SUA
+0E2B;SA;THAI CHARACTER HO HIP
+0E2C;SA;THAI CHARACTER LO CHULA
+0E2D;SA;THAI CHARACTER O ANG
+0E2E;SA;THAI CHARACTER HO NOKHUK
+0E2F;SA;THAI CHARACTER PAIYANNOI
+0E30;SA;THAI CHARACTER SARA A
+0E31;CM;THAI CHARACTER MAI HAN-AKAT
+0E32;SA;THAI CHARACTER SARA AA
+0E33;SA;THAI CHARACTER SARA AM
+0E34;CM;THAI CHARACTER SARA I
+0E35;CM;THAI CHARACTER SARA II
+0E36;CM;THAI CHARACTER SARA UE
+0E37;CM;THAI CHARACTER SARA UEE
+0E38;CM;THAI CHARACTER SARA U
+0E39;CM;THAI CHARACTER SARA UU
+0E3A;CM;THAI CHARACTER PHINTHU
+0E3F;PR;THAI CURRENCY SYMBOL BAHT
+0E40;SA;THAI CHARACTER SARA E
+0E41;SA;THAI CHARACTER SARA AE
+0E42;SA;THAI CHARACTER SARA O
+0E43;SA;THAI CHARACTER SARA AI MAIMUAN
+0E44;SA;THAI CHARACTER SARA AI MAIMALAI
+0E45;SA;THAI CHARACTER LAKKHANGYAO
+0E46;SA;THAI CHARACTER MAIYAMOK
+0E47;CM;THAI CHARACTER MAITAIKHU
+0E48;CM;THAI CHARACTER MAI EK
+0E49;CM;THAI CHARACTER MAI THO
+0E4A;CM;THAI CHARACTER MAI TRI
+0E4B;CM;THAI CHARACTER MAI CHATTAWA
+0E4C;CM;THAI CHARACTER THANTHAKHAT
+0E4D;CM;THAI CHARACTER NIKHAHIT
+0E4E;CM;THAI CHARACTER YAMAKKAN
+0E4F;AL;THAI CHARACTER FONGMAN
+0E50;NU;THAI DIGIT ZERO
+0E51;NU;THAI DIGIT ONE
+0E52;NU;THAI DIGIT TWO
+0E53;NU;THAI DIGIT THREE
+0E54;NU;THAI DIGIT FOUR
+0E55;NU;THAI DIGIT FIVE
+0E56;NU;THAI DIGIT SIX
+0E57;NU;THAI DIGIT SEVEN
+0E58;NU;THAI DIGIT EIGHT
+0E59;NU;THAI DIGIT NINE
+0E5A;NS;THAI CHARACTER ANGKHANKHU
+0E5B;NS;THAI CHARACTER KHOMUT
+0E81;SA;LAO LETTER KO
+0E82;SA;LAO LETTER KHO SUNG
+0E84;SA;LAO LETTER KHO TAM
+0E87;SA;LAO LETTER NGO
+0E88;SA;LAO LETTER CO
+0E8A;SA;LAO LETTER SO TAM
+0E8D;SA;LAO LETTER NYO
+0E94;SA;LAO LETTER DO
+0E95;SA;LAO LETTER TO
+0E96;SA;LAO LETTER THO SUNG
+0E97;SA;LAO LETTER THO TAM
+0E99;SA;LAO LETTER NO
+0E9A;SA;LAO LETTER BO
+0E9B;SA;LAO LETTER PO
+0E9C;SA;LAO LETTER PHO SUNG
+0E9D;SA;LAO LETTER FO TAM
+0E9E;SA;LAO LETTER PHO TAM
+0E9F;SA;LAO LETTER FO SUNG
+0EA1;SA;LAO LETTER MO
+0EA2;SA;LAO LETTER YO
+0EA3;SA;LAO LETTER LO LING
+0EA5;SA;LAO LETTER LO LOOT
+0EA7;SA;LAO LETTER WO
+0EAA;SA;LAO LETTER SO SUNG
+0EAB;SA;LAO LETTER HO SUNG
+0EAD;SA;LAO LETTER O
+0EAE;SA;LAO LETTER HO TAM
+0EAF;SA;LAO ELLIPSIS
+0EB0;SA;LAO VOWEL SIGN A
+0EB1;CM;LAO VOWEL SIGN MAI KAN
+0EB2;SA;LAO VOWEL SIGN AA
+0EB3;SA;LAO VOWEL SIGN AM
+0EB4;CM;LAO VOWEL SIGN I
+0EB5;CM;LAO VOWEL SIGN II
+0EB6;CM;LAO VOWEL SIGN Y
+0EB7;CM;LAO VOWEL SIGN YY
+0EB8;CM;LAO VOWEL SIGN U
+0EB9;CM;LAO VOWEL SIGN UU
+0EBB;CM;LAO VOWEL SIGN MAI KON
+0EBC;CM;LAO SEMIVOWEL SIGN LO
+0EBD;SA;LAO SEMIVOWEL SIGN NYO
+0EC0;SA;LAO VOWEL SIGN E
+0EC1;SA;LAO VOWEL SIGN EI
+0EC2;SA;LAO VOWEL SIGN O
+0EC3;SA;LAO VOWEL SIGN AY
+0EC4;SA;LAO VOWEL SIGN AI
+0EC6;SA;LAO KO LA
+0EC8;CM;LAO TONE MAI EK
+0EC9;CM;LAO TONE MAI THO
+0ECA;CM;LAO TONE MAI TI
+0ECB;CM;LAO TONE MAI CATAWA
+0ECC;CM;LAO CANCELLATION MARK
+0ECD;CM;LAO NIGGAHITA
+0ED0;NU;LAO DIGIT ZERO
+0ED1;NU;LAO DIGIT ONE
+0ED2;NU;LAO DIGIT TWO
+0ED3;NU;LAO DIGIT THREE
+0ED4;NU;LAO DIGIT FOUR
+0ED5;NU;LAO DIGIT FIVE
+0ED6;NU;LAO DIGIT SIX
+0ED7;NU;LAO DIGIT SEVEN
+0ED8;NU;LAO DIGIT EIGHT
+0ED9;NU;LAO DIGIT NINE
+0EDC;SA;LAO HO NO
+0EDD;SA;LAO HO MO
+0F00;AL;TIBETAN SYLLABLE OM
+0F01;AL;TIBETAN MARK GTER YIG MGO TRUNCATED A
+0F02;AL;TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA
+0F03;AL;TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA
+0F04;AL;TIBETAN MARK INITIAL YIG MGO MDUN MA
+0F05;AL;TIBETAN MARK CLOSING YIG MGO SGAB MA
+0F06;AL;TIBETAN MARK CARET YIG MGO PHUR SHAD MA
+0F07;AL;TIBETAN MARK YIG MGO TSHEG SHAD MA
+0F08;AL;TIBETAN MARK SBRUL SHAD
+0F09;AL;TIBETAN MARK BSKUR YIG MGO
+0F0A;AL;TIBETAN MARK BKA- SHOG YIG MGO
+0F0B;BA;TIBETAN MARK INTERSYLLABIC TSHEG
+0F0C;GL;TIBETAN MARK DELIMITER TSHEG BSTAR
+0F0D;AL;TIBETAN MARK SHAD
+0F0E;AL;TIBETAN MARK NYIS SHAD
+0F0F;AL;TIBETAN MARK TSHEG SHAD
+0F10;AL;TIBETAN MARK NYIS TSHEG SHAD
+0F11;AL;TIBETAN MARK RIN CHEN SPUNGS SHAD
+0F12;AL;TIBETAN MARK RGYA GRAM SHAD
+0F13;AL;TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN
+0F14;AL;TIBETAN MARK GTER TSHEG
+0F15;AL;TIBETAN LOGOTYPE SIGN CHAD RTAGS
+0F16;AL;TIBETAN LOGOTYPE SIGN LHAG RTAGS
+0F17;AL;TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
+0F18;CM;TIBETAN ASTROLOGICAL SIGN -KHYUD PA
+0F19;CM;TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
+0F1A;AL;TIBETAN SIGN RDEL DKAR GCIG
+0F1B;AL;TIBETAN SIGN RDEL DKAR GNYIS
+0F1C;AL;TIBETAN SIGN RDEL DKAR GSUM
+0F1D;AL;TIBETAN SIGN RDEL NAG GCIG
+0F1E;AL;TIBETAN SIGN RDEL NAG GNYIS
+0F1F;AL;TIBETAN SIGN RDEL DKAR RDEL NAG
+0F20;NU;TIBETAN DIGIT ZERO
+0F21;NU;TIBETAN DIGIT ONE
+0F22;NU;TIBETAN DIGIT TWO
+0F23;NU;TIBETAN DIGIT THREE
+0F24;NU;TIBETAN DIGIT FOUR
+0F25;NU;TIBETAN DIGIT FIVE
+0F26;NU;TIBETAN DIGIT SIX
+0F27;NU;TIBETAN DIGIT SEVEN
+0F28;NU;TIBETAN DIGIT EIGHT
+0F29;NU;TIBETAN DIGIT NINE
+0F2A;AL;TIBETAN DIGIT HALF ONE
+0F2B;AL;TIBETAN DIGIT HALF TWO
+0F2C;AL;TIBETAN DIGIT HALF THREE
+0F2D;AL;TIBETAN DIGIT HALF FOUR
+0F2E;AL;TIBETAN DIGIT HALF FIVE
+0F2F;AL;TIBETAN DIGIT HALF SIX
+0F30;AL;TIBETAN DIGIT HALF SEVEN
+0F31;AL;TIBETAN DIGIT HALF EIGHT
+0F32;AL;TIBETAN DIGIT HALF NINE
+0F33;AL;TIBETAN DIGIT HALF ZERO
+0F34;AL;TIBETAN MARK BSDUS RTAGS
+0F35;CM;TIBETAN MARK NGAS BZUNG NYI ZLA
+0F36;AL;TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
+0F37;CM;TIBETAN MARK NGAS BZUNG SGOR RTAGS
+0F38;AL;TIBETAN MARK CHE MGO
+0F39;CM;TIBETAN MARK TSA -PHRU
+0F3A;OP;TIBETAN MARK GUG RTAGS GYON
+0F3B;CL;TIBETAN MARK GUG RTAGS GYAS
+0F3C;OP;TIBETAN MARK ANG KHANG GYON
+0F3D;CL;TIBETAN MARK ANG KHANG GYAS
+0F3E;CM;TIBETAN SIGN YAR TSHES
+0F3F;CM;TIBETAN SIGN MAR TSHES
+0F40;AL;TIBETAN LETTER KA
+0F41;AL;TIBETAN LETTER KHA
+0F42;AL;TIBETAN LETTER GA
+0F43;AL;TIBETAN LETTER GHA
+0F44;AL;TIBETAN LETTER NGA
+0F45;AL;TIBETAN LETTER CA
+0F46;AL;TIBETAN LETTER CHA
+0F47;AL;TIBETAN LETTER JA
+0F49;AL;TIBETAN LETTER NYA
+0F4A;AL;TIBETAN LETTER TTA
+0F4B;AL;TIBETAN LETTER TTHA
+0F4C;AL;TIBETAN LETTER DDA
+0F4D;AL;TIBETAN LETTER DDHA
+0F4E;AL;TIBETAN LETTER NNA
+0F4F;AL;TIBETAN LETTER TA
+0F50;AL;TIBETAN LETTER THA
+0F51;AL;TIBETAN LETTER DA
+0F52;AL;TIBETAN LETTER DHA
+0F53;AL;TIBETAN LETTER NA
+0F54;AL;TIBETAN LETTER PA
+0F55;AL;TIBETAN LETTER PHA
+0F56;AL;TIBETAN LETTER BA
+0F57;AL;TIBETAN LETTER BHA
+0F58;AL;TIBETAN LETTER MA
+0F59;AL;TIBETAN LETTER TSA
+0F5A;AL;TIBETAN LETTER TSHA
+0F5B;AL;TIBETAN LETTER DZA
+0F5C;AL;TIBETAN LETTER DZHA
+0F5D;AL;TIBETAN LETTER WA
+0F5E;AL;TIBETAN LETTER ZHA
+0F5F;AL;TIBETAN LETTER ZA
+0F60;AL;TIBETAN LETTER -A
+0F61;AL;TIBETAN LETTER YA
+0F62;AL;TIBETAN LETTER RA
+0F63;AL;TIBETAN LETTER LA
+0F64;AL;TIBETAN LETTER SHA
+0F65;AL;TIBETAN LETTER SSA
+0F66;AL;TIBETAN LETTER SA
+0F67;AL;TIBETAN LETTER HA
+0F68;AL;TIBETAN LETTER A
+0F69;AL;TIBETAN LETTER KSSA
+0F6A;AL;TIBETAN LETTER FIXED-FORM RA
+0F71;CM;TIBETAN VOWEL SIGN AA
+0F72;CM;TIBETAN VOWEL SIGN I
+0F73;CM;TIBETAN VOWEL SIGN II
+0F74;CM;TIBETAN VOWEL SIGN U
+0F75;CM;TIBETAN VOWEL SIGN UU
+0F76;CM;TIBETAN VOWEL SIGN VOCALIC R
+0F77;CM;TIBETAN VOWEL SIGN VOCALIC RR
+0F78;CM;TIBETAN VOWEL SIGN VOCALIC L
+0F79;CM;TIBETAN VOWEL SIGN VOCALIC LL
+0F7A;CM;TIBETAN VOWEL SIGN E
+0F7B;CM;TIBETAN VOWEL SIGN EE
+0F7C;CM;TIBETAN VOWEL SIGN O
+0F7D;CM;TIBETAN VOWEL SIGN OO
+0F7E;CM;TIBETAN SIGN RJES SU NGA RO
+0F7F;CM;TIBETAN SIGN RNAM BCAD
+0F80;CM;TIBETAN VOWEL SIGN REVERSED I
+0F81;CM;TIBETAN VOWEL SIGN REVERSED II
+0F82;CM;TIBETAN SIGN NYI ZLA NAA DA
+0F83;CM;TIBETAN SIGN SNA LDAN
+0F84;CM;TIBETAN MARK HALANTA
+0F85;AL;TIBETAN MARK PALUTA
+0F86;CM;TIBETAN SIGN LCI RTAGS
+0F87;CM;TIBETAN SIGN YANG RTAGS
+0F88;AL;TIBETAN SIGN LCE TSA CAN
+0F89;AL;TIBETAN SIGN MCHU CAN
+0F8A;AL;TIBETAN SIGN GRU CAN RGYINGS
+0F8B;AL;TIBETAN SIGN GRU MED RGYINGS
+0F90;CM;TIBETAN SUBJOINED LETTER KA
+0F91;CM;TIBETAN SUBJOINED LETTER KHA
+0F92;CM;TIBETAN SUBJOINED LETTER GA
+0F93;CM;TIBETAN SUBJOINED LETTER GHA
+0F94;CM;TIBETAN SUBJOINED LETTER NGA
+0F95;CM;TIBETAN SUBJOINED LETTER CA
+0F96;CM;TIBETAN SUBJOINED LETTER CHA
+0F97;CM;TIBETAN SUBJOINED LETTER JA
+0F99;CM;TIBETAN SUBJOINED LETTER NYA
+0F9A;CM;TIBETAN SUBJOINED LETTER TTA
+0F9B;CM;TIBETAN SUBJOINED LETTER TTHA
+0F9C;CM;TIBETAN SUBJOINED LETTER DDA
+0F9D;CM;TIBETAN SUBJOINED LETTER DDHA
+0F9E;CM;TIBETAN SUBJOINED LETTER NNA
+0F9F;CM;TIBETAN SUBJOINED LETTER TA
+0FA0;CM;TIBETAN SUBJOINED LETTER THA
+0FA1;CM;TIBETAN SUBJOINED LETTER DA
+0FA2;CM;TIBETAN SUBJOINED LETTER DHA
+0FA3;CM;TIBETAN SUBJOINED LETTER NA
+0FA4;CM;TIBETAN SUBJOINED LETTER PA
+0FA5;CM;TIBETAN SUBJOINED LETTER PHA
+0FA6;CM;TIBETAN SUBJOINED LETTER BA
+0FA7;CM;TIBETAN SUBJOINED LETTER BHA
+0FA8;CM;TIBETAN SUBJOINED LETTER MA
+0FA9;CM;TIBETAN SUBJOINED LETTER TSA
+0FAA;CM;TIBETAN SUBJOINED LETTER TSHA
+0FAB;CM;TIBETAN SUBJOINED LETTER DZA
+0FAC;CM;TIBETAN SUBJOINED LETTER DZHA
+0FAD;CM;TIBETAN SUBJOINED LETTER WA
+0FAE;CM;TIBETAN SUBJOINED LETTER ZHA
+0FAF;CM;TIBETAN SUBJOINED LETTER ZA
+0FB0;CM;TIBETAN SUBJOINED LETTER -A
+0FB1;CM;TIBETAN SUBJOINED LETTER YA
+0FB2;CM;TIBETAN SUBJOINED LETTER RA
+0FB3;CM;TIBETAN SUBJOINED LETTER LA
+0FB4;CM;TIBETAN SUBJOINED LETTER SHA
+0FB5;CM;TIBETAN SUBJOINED LETTER SSA
+0FB6;CM;TIBETAN SUBJOINED LETTER SA
+0FB7;CM;TIBETAN SUBJOINED LETTER HA
+0FB8;CM;TIBETAN SUBJOINED LETTER A
+0FB9;CM;TIBETAN SUBJOINED LETTER KSSA
+0FBA;CM;TIBETAN SUBJOINED LETTER FIXED-FORM WA
+0FBB;CM;TIBETAN SUBJOINED LETTER FIXED-FORM YA
+0FBC;CM;TIBETAN SUBJOINED LETTER FIXED-FORM RA
+0FBE;AL;TIBETAN KU RU KHA
+0FBF;AL;TIBETAN KU RU KHA BZHI MIG CAN
+0FC0;AL;TIBETAN CANTILLATION SIGN HEAVY BEAT
+0FC1;AL;TIBETAN CANTILLATION SIGN LIGHT BEAT
+0FC2;AL;TIBETAN CANTILLATION SIGN CANG TE-U
+0FC3;AL;TIBETAN CANTILLATION SIGN SBUB -CHAL
+0FC4;AL;TIBETAN SYMBOL DRIL BU
+0FC5;AL;TIBETAN SYMBOL RDO RJE
+0FC6;CM;TIBETAN SYMBOL PADMA GDAN
+0FC7;AL;TIBETAN SYMBOL RDO RJE RGYA GRAM
+0FC8;AL;TIBETAN SYMBOL PHUR PA
+0FC9;AL;TIBETAN SYMBOL NOR BU
+0FCA;AL;TIBETAN SYMBOL NOR BU NYIS -KHYIL
+0FCB;AL;TIBETAN SYMBOL NOR BU GSUM -KHYIL
+0FCC;AL;TIBETAN SYMBOL NOR BU BZHI -KHYIL
+0FCF;AL;TIBETAN SIGN RDEL NAG GSUM
+1000;SA;MYANMAR LETTER KA
+1001;SA;MYANMAR LETTER KHA
+1002;SA;MYANMAR LETTER GA
+1003;SA;MYANMAR LETTER GHA
+1004;SA;MYANMAR LETTER NGA
+1005;SA;MYANMAR LETTER CA
+1006;SA;MYANMAR LETTER CHA
+1007;SA;MYANMAR LETTER JA
+1008;SA;MYANMAR LETTER JHA
+1009;SA;MYANMAR LETTER NYA
+100A;SA;MYANMAR LETTER NNYA
+100B;SA;MYANMAR LETTER TTA
+100C;SA;MYANMAR LETTER TTHA
+100D;SA;MYANMAR LETTER DDA
+100E;SA;MYANMAR LETTER DDHA
+100F;SA;MYANMAR LETTER NNA
+1010;SA;MYANMAR LETTER TA
+1011;SA;MYANMAR LETTER THA
+1012;SA;MYANMAR LETTER DA
+1013;SA;MYANMAR LETTER DHA
+1014;SA;MYANMAR LETTER NA
+1015;SA;MYANMAR LETTER PA
+1016;SA;MYANMAR LETTER PHA
+1017;SA;MYANMAR LETTER BA
+1018;SA;MYANMAR LETTER BHA
+1019;SA;MYANMAR LETTER MA
+101A;SA;MYANMAR LETTER YA
+101B;SA;MYANMAR LETTER RA
+101C;SA;MYANMAR LETTER LA
+101D;SA;MYANMAR LETTER WA
+101E;SA;MYANMAR LETTER SA
+101F;SA;MYANMAR LETTER HA
+1020;SA;MYANMAR LETTER LLA
+1021;SA;MYANMAR LETTER A
+1023;SA;MYANMAR LETTER I
+1024;SA;MYANMAR LETTER II
+1025;SA;MYANMAR LETTER U
+1026;SA;MYANMAR LETTER UU
+1027;SA;MYANMAR LETTER E
+1029;SA;MYANMAR LETTER O
+102A;SA;MYANMAR LETTER AU
+102C;CM;MYANMAR VOWEL SIGN AA
+102D;CM;MYANMAR VOWEL SIGN I
+102E;CM;MYANMAR VOWEL SIGN II
+102F;CM;MYANMAR VOWEL SIGN U
+1030;CM;MYANMAR VOWEL SIGN UU
+1031;CM;MYANMAR VOWEL SIGN E
+1032;CM;MYANMAR VOWEL SIGN AI
+1036;CM;MYANMAR SIGN ANUSVARA
+1037;CM;MYANMAR SIGN DOT BELOW
+1038;CM;MYANMAR SIGN VISARGA
+1039;CM;MYANMAR SIGN VIRAMA
+1040;NU;MYANMAR DIGIT ZERO
+1041;NU;MYANMAR DIGIT ONE
+1042;NU;MYANMAR DIGIT TWO
+1043;NU;MYANMAR DIGIT THREE
+1044;NU;MYANMAR DIGIT FOUR
+1045;NU;MYANMAR DIGIT FIVE
+1046;NU;MYANMAR DIGIT SIX
+1047;NU;MYANMAR DIGIT SEVEN
+1048;NU;MYANMAR DIGIT EIGHT
+1049;NU;MYANMAR DIGIT NINE
+104A;AL;MYANMAR SIGN LITTLE SECTION
+104B;AL;MYANMAR SIGN SECTION
+104C;AL;MYANMAR SYMBOL LOCATIVE
+104D;AL;MYANMAR SYMBOL COMPLETED
+104E;AL;MYANMAR SYMBOL AFOREMENTIONED
+104F;AL;MYANMAR SYMBOL GENITIVE
+1050;SA;MYANMAR LETTER SHA
+1051;SA;MYANMAR LETTER SSA
+1052;SA;MYANMAR LETTER VOCALIC R
+1053;SA;MYANMAR LETTER VOCALIC RR
+1054;SA;MYANMAR LETTER VOCALIC L
+1055;SA;MYANMAR LETTER VOCALIC LL
+1056;CM;MYANMAR VOWEL SIGN VOCALIC R
+1057;CM;MYANMAR VOWEL SIGN VOCALIC RR
+1058;CM;MYANMAR VOWEL SIGN VOCALIC L
+1059;CM;MYANMAR VOWEL SIGN VOCALIC LL
+10A0;AL;GEORGIAN CAPITAL LETTER AN
+10A1;AL;GEORGIAN CAPITAL LETTER BAN
+10A2;AL;GEORGIAN CAPITAL LETTER GAN
+10A3;AL;GEORGIAN CAPITAL LETTER DON
+10A4;AL;GEORGIAN CAPITAL LETTER EN
+10A5;AL;GEORGIAN CAPITAL LETTER VIN
+10A6;AL;GEORGIAN CAPITAL LETTER ZEN
+10A7;AL;GEORGIAN CAPITAL LETTER TAN
+10A8;AL;GEORGIAN CAPITAL LETTER IN
+10A9;AL;GEORGIAN CAPITAL LETTER KAN
+10AA;AL;GEORGIAN CAPITAL LETTER LAS
+10AB;AL;GEORGIAN CAPITAL LETTER MAN
+10AC;AL;GEORGIAN CAPITAL LETTER NAR
+10AD;AL;GEORGIAN CAPITAL LETTER ON
+10AE;AL;GEORGIAN CAPITAL LETTER PAR
+10AF;AL;GEORGIAN CAPITAL LETTER ZHAR
+10B0;AL;GEORGIAN CAPITAL LETTER RAE
+10B1;AL;GEORGIAN CAPITAL LETTER SAN
+10B2;AL;GEORGIAN CAPITAL LETTER TAR
+10B3;AL;GEORGIAN CAPITAL LETTER UN
+10B4;AL;GEORGIAN CAPITAL LETTER PHAR
+10B5;AL;GEORGIAN CAPITAL LETTER KHAR
+10B6;AL;GEORGIAN CAPITAL LETTER GHAN
+10B7;AL;GEORGIAN CAPITAL LETTER QAR
+10B8;AL;GEORGIAN CAPITAL LETTER SHIN
+10B9;AL;GEORGIAN CAPITAL LETTER CHIN
+10BA;AL;GEORGIAN CAPITAL LETTER CAN
+10BB;AL;GEORGIAN CAPITAL LETTER JIL
+10BC;AL;GEORGIAN CAPITAL LETTER CIL
+10BD;AL;GEORGIAN CAPITAL LETTER CHAR
+10BE;AL;GEORGIAN CAPITAL LETTER XAN
+10BF;AL;GEORGIAN CAPITAL LETTER JHAN
+10C0;AL;GEORGIAN CAPITAL LETTER HAE
+10C1;AL;GEORGIAN CAPITAL LETTER HE
+10C2;AL;GEORGIAN CAPITAL LETTER HIE
+10C3;AL;GEORGIAN CAPITAL LETTER WE
+10C4;AL;GEORGIAN CAPITAL LETTER HAR
+10C5;AL;GEORGIAN CAPITAL LETTER HOE
+10D0;AL;GEORGIAN LETTER AN
+10D1;AL;GEORGIAN LETTER BAN
+10D2;AL;GEORGIAN LETTER GAN
+10D3;AL;GEORGIAN LETTER DON
+10D4;AL;GEORGIAN LETTER EN
+10D5;AL;GEORGIAN LETTER VIN
+10D6;AL;GEORGIAN LETTER ZEN
+10D7;AL;GEORGIAN LETTER TAN
+10D8;AL;GEORGIAN LETTER IN
+10D9;AL;GEORGIAN LETTER KAN
+10DA;AL;GEORGIAN LETTER LAS
+10DB;AL;GEORGIAN LETTER MAN
+10DC;AL;GEORGIAN LETTER NAR
+10DD;AL;GEORGIAN LETTER ON
+10DE;AL;GEORGIAN LETTER PAR
+10DF;AL;GEORGIAN LETTER ZHAR
+10E0;AL;GEORGIAN LETTER RAE
+10E1;AL;GEORGIAN LETTER SAN
+10E2;AL;GEORGIAN LETTER TAR
+10E3;AL;GEORGIAN LETTER UN
+10E4;AL;GEORGIAN LETTER PHAR
+10E5;AL;GEORGIAN LETTER KHAR
+10E6;AL;GEORGIAN LETTER GHAN
+10E7;AL;GEORGIAN LETTER QAR
+10E8;AL;GEORGIAN LETTER SHIN
+10E9;AL;GEORGIAN LETTER CHIN
+10EA;AL;GEORGIAN LETTER CAN
+10EB;AL;GEORGIAN LETTER JIL
+10EC;AL;GEORGIAN LETTER CIL
+10ED;AL;GEORGIAN LETTER CHAR
+10EE;AL;GEORGIAN LETTER XAN
+10EF;AL;GEORGIAN LETTER JHAN
+10F0;AL;GEORGIAN LETTER HAE
+10F1;AL;GEORGIAN LETTER HE
+10F2;AL;GEORGIAN LETTER HIE
+10F3;AL;GEORGIAN LETTER WE
+10F4;AL;GEORGIAN LETTER HAR
+10F5;AL;GEORGIAN LETTER HOE
+10F6;AL;GEORGIAN LETTER FI
+10FB;AL;GEORGIAN PARAGRAPH SEPARATOR
+1100;ID;HANGUL CHOSEONG KIYEOK
+1101;ID;HANGUL CHOSEONG SSANGKIYEOK
+1102;ID;HANGUL CHOSEONG NIEUN
+1103;ID;HANGUL CHOSEONG TIKEUT
+1104;ID;HANGUL CHOSEONG SSANGTIKEUT
+1105;ID;HANGUL CHOSEONG RIEUL
+1106;ID;HANGUL CHOSEONG MIEUM
+1107;ID;HANGUL CHOSEONG PIEUP
+1108;ID;HANGUL CHOSEONG SSANGPIEUP
+1109;ID;HANGUL CHOSEONG SIOS
+110A;ID;HANGUL CHOSEONG SSANGSIOS
+110B;ID;HANGUL CHOSEONG IEUNG
+110C;ID;HANGUL CHOSEONG CIEUC
+110D;ID;HANGUL CHOSEONG SSANGCIEUC
+110E;ID;HANGUL CHOSEONG CHIEUCH
+110F;ID;HANGUL CHOSEONG KHIEUKH
+1110;ID;HANGUL CHOSEONG THIEUTH
+1111;ID;HANGUL CHOSEONG PHIEUPH
+1112;ID;HANGUL CHOSEONG HIEUH
+1113;ID;HANGUL CHOSEONG NIEUN-KIYEOK
+1114;ID;HANGUL CHOSEONG SSANGNIEUN
+1115;ID;HANGUL CHOSEONG NIEUN-TIKEUT
+1116;ID;HANGUL CHOSEONG NIEUN-PIEUP
+1117;ID;HANGUL CHOSEONG TIKEUT-KIYEOK
+1118;ID;HANGUL CHOSEONG RIEUL-NIEUN
+1119;ID;HANGUL CHOSEONG SSANGRIEUL
+111A;ID;HANGUL CHOSEONG RIEUL-HIEUH
+111B;ID;HANGUL CHOSEONG KAPYEOUNRIEUL
+111C;ID;HANGUL CHOSEONG MIEUM-PIEUP
+111D;ID;HANGUL CHOSEONG KAPYEOUNMIEUM
+111E;ID;HANGUL CHOSEONG PIEUP-KIYEOK
+111F;ID;HANGUL CHOSEONG PIEUP-NIEUN
+1120;ID;HANGUL CHOSEONG PIEUP-TIKEUT
+1121;ID;HANGUL CHOSEONG PIEUP-SIOS
+1122;ID;HANGUL CHOSEONG PIEUP-SIOS-KIYEOK
+1123;ID;HANGUL CHOSEONG PIEUP-SIOS-TIKEUT
+1124;ID;HANGUL CHOSEONG PIEUP-SIOS-PIEUP
+1125;ID;HANGUL CHOSEONG PIEUP-SSANGSIOS
+1126;ID;HANGUL CHOSEONG PIEUP-SIOS-CIEUC
+1127;ID;HANGUL CHOSEONG PIEUP-CIEUC
+1128;ID;HANGUL CHOSEONG PIEUP-CHIEUCH
+1129;ID;HANGUL CHOSEONG PIEUP-THIEUTH
+112A;ID;HANGUL CHOSEONG PIEUP-PHIEUPH
+112B;ID;HANGUL CHOSEONG KAPYEOUNPIEUP
+112C;ID;HANGUL CHOSEONG KAPYEOUNSSANGPIEUP
+112D;ID;HANGUL CHOSEONG SIOS-KIYEOK
+112E;ID;HANGUL CHOSEONG SIOS-NIEUN
+112F;ID;HANGUL CHOSEONG SIOS-TIKEUT
+1130;ID;HANGUL CHOSEONG SIOS-RIEUL
+1131;ID;HANGUL CHOSEONG SIOS-MIEUM
+1132;ID;HANGUL CHOSEONG SIOS-PIEUP
+1133;ID;HANGUL CHOSEONG SIOS-PIEUP-KIYEOK
+1134;ID;HANGUL CHOSEONG SIOS-SSANGSIOS
+1135;ID;HANGUL CHOSEONG SIOS-IEUNG
+1136;ID;HANGUL CHOSEONG SIOS-CIEUC
+1137;ID;HANGUL CHOSEONG SIOS-CHIEUCH
+1138;ID;HANGUL CHOSEONG SIOS-KHIEUKH
+1139;ID;HANGUL CHOSEONG SIOS-THIEUTH
+113A;ID;HANGUL CHOSEONG SIOS-PHIEUPH
+113B;ID;HANGUL CHOSEONG SIOS-HIEUH
+113C;ID;HANGUL CHOSEONG CHITUEUMSIOS
+113D;ID;HANGUL CHOSEONG CHITUEUMSSANGSIOS
+113E;ID;HANGUL CHOSEONG CEONGCHIEUMSIOS
+113F;ID;HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS
+1140;ID;HANGUL CHOSEONG PANSIOS
+1141;ID;HANGUL CHOSEONG IEUNG-KIYEOK
+1142;ID;HANGUL CHOSEONG IEUNG-TIKEUT
+1143;ID;HANGUL CHOSEONG IEUNG-MIEUM
+1144;ID;HANGUL CHOSEONG IEUNG-PIEUP
+1145;ID;HANGUL CHOSEONG IEUNG-SIOS
+1146;ID;HANGUL CHOSEONG IEUNG-PANSIOS
+1147;ID;HANGUL CHOSEONG SSANGIEUNG
+1148;ID;HANGUL CHOSEONG IEUNG-CIEUC
+1149;ID;HANGUL CHOSEONG IEUNG-CHIEUCH
+114A;ID;HANGUL CHOSEONG IEUNG-THIEUTH
+114B;ID;HANGUL CHOSEONG IEUNG-PHIEUPH
+114C;ID;HANGUL CHOSEONG YESIEUNG
+114D;ID;HANGUL CHOSEONG CIEUC-IEUNG
+114E;ID;HANGUL CHOSEONG CHITUEUMCIEUC
+114F;ID;HANGUL CHOSEONG CHITUEUMSSANGCIEUC
+1150;ID;HANGUL CHOSEONG CEONGCHIEUMCIEUC
+1151;ID;HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC
+1152;ID;HANGUL CHOSEONG CHIEUCH-KHIEUKH
+1153;ID;HANGUL CHOSEONG CHIEUCH-HIEUH
+1154;ID;HANGUL CHOSEONG CHITUEUMCHIEUCH
+1155;ID;HANGUL CHOSEONG CEONGCHIEUMCHIEUCH
+1156;ID;HANGUL CHOSEONG PHIEUPH-PIEUP
+1157;ID;HANGUL CHOSEONG KAPYEOUNPHIEUPH
+1158;ID;HANGUL CHOSEONG SSANGHIEUH
+1159;ID;HANGUL CHOSEONG YEORINHIEUH
+115F;ID;HANGUL CHOSEONG FILLER
+1160;CM;HANGUL JUNGSEONG FILLER
+1161;CM;HANGUL JUNGSEONG A
+1162;CM;HANGUL JUNGSEONG AE
+1163;CM;HANGUL JUNGSEONG YA
+1164;CM;HANGUL JUNGSEONG YAE
+1165;CM;HANGUL JUNGSEONG EO
+1166;CM;HANGUL JUNGSEONG E
+1167;CM;HANGUL JUNGSEONG YEO
+1168;CM;HANGUL JUNGSEONG YE
+1169;CM;HANGUL JUNGSEONG O
+116A;CM;HANGUL JUNGSEONG WA
+116B;CM;HANGUL JUNGSEONG WAE
+116C;CM;HANGUL JUNGSEONG OE
+116D;CM;HANGUL JUNGSEONG YO
+116E;CM;HANGUL JUNGSEONG U
+116F;CM;HANGUL JUNGSEONG WEO
+1170;CM;HANGUL JUNGSEONG WE
+1171;CM;HANGUL JUNGSEONG WI
+1172;CM;HANGUL JUNGSEONG YU
+1173;CM;HANGUL JUNGSEONG EU
+1174;CM;HANGUL JUNGSEONG YI
+1175;CM;HANGUL JUNGSEONG I
+1176;CM;HANGUL JUNGSEONG A-O
+1177;CM;HANGUL JUNGSEONG A-U
+1178;CM;HANGUL JUNGSEONG YA-O
+1179;CM;HANGUL JUNGSEONG YA-YO
+117A;CM;HANGUL JUNGSEONG EO-O
+117B;CM;HANGUL JUNGSEONG EO-U
+117C;CM;HANGUL JUNGSEONG EO-EU
+117D;CM;HANGUL JUNGSEONG YEO-O
+117E;CM;HANGUL JUNGSEONG YEO-U
+117F;CM;HANGUL JUNGSEONG O-EO
+1180;CM;HANGUL JUNGSEONG O-E
+1181;CM;HANGUL JUNGSEONG O-YE
+1182;CM;HANGUL JUNGSEONG O-O
+1183;CM;HANGUL JUNGSEONG O-U
+1184;CM;HANGUL JUNGSEONG YO-YA
+1185;CM;HANGUL JUNGSEONG YO-YAE
+1186;CM;HANGUL JUNGSEONG YO-YEO
+1187;CM;HANGUL JUNGSEONG YO-O
+1188;CM;HANGUL JUNGSEONG YO-I
+1189;CM;HANGUL JUNGSEONG U-A
+118A;CM;HANGUL JUNGSEONG U-AE
+118B;CM;HANGUL JUNGSEONG U-EO-EU
+118C;CM;HANGUL JUNGSEONG U-YE
+118D;CM;HANGUL JUNGSEONG U-U
+118E;CM;HANGUL JUNGSEONG YU-A
+118F;CM;HANGUL JUNGSEONG YU-EO
+1190;CM;HANGUL JUNGSEONG YU-E
+1191;CM;HANGUL JUNGSEONG YU-YEO
+1192;CM;HANGUL JUNGSEONG YU-YE
+1193;CM;HANGUL JUNGSEONG YU-U
+1194;CM;HANGUL JUNGSEONG YU-I
+1195;CM;HANGUL JUNGSEONG EU-U
+1196;CM;HANGUL JUNGSEONG EU-EU
+1197;CM;HANGUL JUNGSEONG YI-U
+1198;CM;HANGUL JUNGSEONG I-A
+1199;CM;HANGUL JUNGSEONG I-YA
+119A;CM;HANGUL JUNGSEONG I-O
+119B;CM;HANGUL JUNGSEONG I-U
+119C;CM;HANGUL JUNGSEONG I-EU
+119D;CM;HANGUL JUNGSEONG I-ARAEA
+119E;CM;HANGUL JUNGSEONG ARAEA
+119F;CM;HANGUL JUNGSEONG ARAEA-EO
+11A0;CM;HANGUL JUNGSEONG ARAEA-U
+11A1;CM;HANGUL JUNGSEONG ARAEA-I
+11A2;CM;HANGUL JUNGSEONG SSANGARAEA
+11A8;CM;HANGUL JONGSEONG KIYEOK
+11A9;CM;HANGUL JONGSEONG SSANGKIYEOK
+11AA;CM;HANGUL JONGSEONG KIYEOK-SIOS
+11AB;CM;HANGUL JONGSEONG NIEUN
+11AC;CM;HANGUL JONGSEONG NIEUN-CIEUC
+11AD;CM;HANGUL JONGSEONG NIEUN-HIEUH
+11AE;CM;HANGUL JONGSEONG TIKEUT
+11AF;CM;HANGUL JONGSEONG RIEUL
+11B0;CM;HANGUL JONGSEONG RIEUL-KIYEOK
+11B1;CM;HANGUL JONGSEONG RIEUL-MIEUM
+11B2;CM;HANGUL JONGSEONG RIEUL-PIEUP
+11B3;CM;HANGUL JONGSEONG RIEUL-SIOS
+11B4;CM;HANGUL JONGSEONG RIEUL-THIEUTH
+11B5;CM;HANGUL JONGSEONG RIEUL-PHIEUPH
+11B6;CM;HANGUL JONGSEONG RIEUL-HIEUH
+11B7;CM;HANGUL JONGSEONG MIEUM
+11B8;CM;HANGUL JONGSEONG PIEUP
+11B9;CM;HANGUL JONGSEONG PIEUP-SIOS
+11BA;CM;HANGUL JONGSEONG SIOS
+11BB;CM;HANGUL JONGSEONG SSANGSIOS
+11BC;CM;HANGUL JONGSEONG IEUNG
+11BD;CM;HANGUL JONGSEONG CIEUC
+11BE;CM;HANGUL JONGSEONG CHIEUCH
+11BF;CM;HANGUL JONGSEONG KHIEUKH
+11C0;CM;HANGUL JONGSEONG THIEUTH
+11C1;CM;HANGUL JONGSEONG PHIEUPH
+11C2;CM;HANGUL JONGSEONG HIEUH
+11C3;CM;HANGUL JONGSEONG KIYEOK-RIEUL
+11C4;CM;HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK
+11C5;CM;HANGUL JONGSEONG NIEUN-KIYEOK
+11C6;CM;HANGUL JONGSEONG NIEUN-TIKEUT
+11C7;CM;HANGUL JONGSEONG NIEUN-SIOS
+11C8;CM;HANGUL JONGSEONG NIEUN-PANSIOS
+11C9;CM;HANGUL JONGSEONG NIEUN-THIEUTH
+11CA;CM;HANGUL JONGSEONG TIKEUT-KIYEOK
+11CB;CM;HANGUL JONGSEONG TIKEUT-RIEUL
+11CC;CM;HANGUL JONGSEONG RIEUL-KIYEOK-SIOS
+11CD;CM;HANGUL JONGSEONG RIEUL-NIEUN
+11CE;CM;HANGUL JONGSEONG RIEUL-TIKEUT
+11CF;CM;HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH
+11D0;CM;HANGUL JONGSEONG SSANGRIEUL
+11D1;CM;HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK
+11D2;CM;HANGUL JONGSEONG RIEUL-MIEUM-SIOS
+11D3;CM;HANGUL JONGSEONG RIEUL-PIEUP-SIOS
+11D4;CM;HANGUL JONGSEONG RIEUL-PIEUP-HIEUH
+11D5;CM;HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP
+11D6;CM;HANGUL JONGSEONG RIEUL-SSANGSIOS
+11D7;CM;HANGUL JONGSEONG RIEUL-PANSIOS
+11D8;CM;HANGUL JONGSEONG RIEUL-KHIEUKH
+11D9;CM;HANGUL JONGSEONG RIEUL-YEORINHIEUH
+11DA;CM;HANGUL JONGSEONG MIEUM-KIYEOK
+11DB;CM;HANGUL JONGSEONG MIEUM-RIEUL
+11DC;CM;HANGUL JONGSEONG MIEUM-PIEUP
+11DD;CM;HANGUL JONGSEONG MIEUM-SIOS
+11DE;CM;HANGUL JONGSEONG MIEUM-SSANGSIOS
+11DF;CM;HANGUL JONGSEONG MIEUM-PANSIOS
+11E0;CM;HANGUL JONGSEONG MIEUM-CHIEUCH
+11E1;CM;HANGUL JONGSEONG MIEUM-HIEUH
+11E2;CM;HANGUL JONGSEONG KAPYEOUNMIEUM
+11E3;CM;HANGUL JONGSEONG PIEUP-RIEUL
+11E4;CM;HANGUL JONGSEONG PIEUP-PHIEUPH
+11E5;CM;HANGUL JONGSEONG PIEUP-HIEUH
+11E6;CM;HANGUL JONGSEONG KAPYEOUNPIEUP
+11E7;CM;HANGUL JONGSEONG SIOS-KIYEOK
+11E8;CM;HANGUL JONGSEONG SIOS-TIKEUT
+11E9;CM;HANGUL JONGSEONG SIOS-RIEUL
+11EA;CM;HANGUL JONGSEONG SIOS-PIEUP
+11EB;CM;HANGUL JONGSEONG PANSIOS
+11EC;CM;HANGUL JONGSEONG IEUNG-KIYEOK
+11ED;CM;HANGUL JONGSEONG IEUNG-SSANGKIYEOK
+11EE;CM;HANGUL JONGSEONG SSANGIEUNG
+11EF;CM;HANGUL JONGSEONG IEUNG-KHIEUKH
+11F0;CM;HANGUL JONGSEONG YESIEUNG
+11F1;CM;HANGUL JONGSEONG YESIEUNG-SIOS
+11F2;CM;HANGUL JONGSEONG YESIEUNG-PANSIOS
+11F3;CM;HANGUL JONGSEONG PHIEUPH-PIEUP
+11F4;CM;HANGUL JONGSEONG KAPYEOUNPHIEUPH
+11F5;CM;HANGUL JONGSEONG HIEUH-NIEUN
+11F6;CM;HANGUL JONGSEONG HIEUH-RIEUL
+11F7;CM;HANGUL JONGSEONG HIEUH-MIEUM
+11F8;CM;HANGUL JONGSEONG HIEUH-PIEUP
+11F9;CM;HANGUL JONGSEONG YEORINHIEUH
+1200;AL;ETHIOPIC SYLLABLE HA
+1201;AL;ETHIOPIC SYLLABLE HU
+1202;AL;ETHIOPIC SYLLABLE HI
+1203;AL;ETHIOPIC SYLLABLE HAA
+1204;AL;ETHIOPIC SYLLABLE HEE
+1205;AL;ETHIOPIC SYLLABLE HE
+1206;AL;ETHIOPIC SYLLABLE HO
+1208;AL;ETHIOPIC SYLLABLE LA
+1209;AL;ETHIOPIC SYLLABLE LU
+120A;AL;ETHIOPIC SYLLABLE LI
+120B;AL;ETHIOPIC SYLLABLE LAA
+120C;AL;ETHIOPIC SYLLABLE LEE
+120D;AL;ETHIOPIC SYLLABLE LE
+120E;AL;ETHIOPIC SYLLABLE LO
+120F;AL;ETHIOPIC SYLLABLE LWA
+1210;AL;ETHIOPIC SYLLABLE HHA
+1211;AL;ETHIOPIC SYLLABLE HHU
+1212;AL;ETHIOPIC SYLLABLE HHI
+1213;AL;ETHIOPIC SYLLABLE HHAA
+1214;AL;ETHIOPIC SYLLABLE HHEE
+1215;AL;ETHIOPIC SYLLABLE HHE
+1216;AL;ETHIOPIC SYLLABLE HHO
+1217;AL;ETHIOPIC SYLLABLE HHWA
+1218;AL;ETHIOPIC SYLLABLE MA
+1219;AL;ETHIOPIC SYLLABLE MU
+121A;AL;ETHIOPIC SYLLABLE MI
+121B;AL;ETHIOPIC SYLLABLE MAA
+121C;AL;ETHIOPIC SYLLABLE MEE
+121D;AL;ETHIOPIC SYLLABLE ME
+121E;AL;ETHIOPIC SYLLABLE MO
+121F;AL;ETHIOPIC SYLLABLE MWA
+1220;AL;ETHIOPIC SYLLABLE SZA
+1221;AL;ETHIOPIC SYLLABLE SZU
+1222;AL;ETHIOPIC SYLLABLE SZI
+1223;AL;ETHIOPIC SYLLABLE SZAA
+1224;AL;ETHIOPIC SYLLABLE SZEE
+1225;AL;ETHIOPIC SYLLABLE SZE
+1226;AL;ETHIOPIC SYLLABLE SZO
+1227;AL;ETHIOPIC SYLLABLE SZWA
+1228;AL;ETHIOPIC SYLLABLE RA
+1229;AL;ETHIOPIC SYLLABLE RU
+122A;AL;ETHIOPIC SYLLABLE RI
+122B;AL;ETHIOPIC SYLLABLE RAA
+122C;AL;ETHIOPIC SYLLABLE REE
+122D;AL;ETHIOPIC SYLLABLE RE
+122E;AL;ETHIOPIC SYLLABLE RO
+122F;AL;ETHIOPIC SYLLABLE RWA
+1230;AL;ETHIOPIC SYLLABLE SA
+1231;AL;ETHIOPIC SYLLABLE SU
+1232;AL;ETHIOPIC SYLLABLE SI
+1233;AL;ETHIOPIC SYLLABLE SAA
+1234;AL;ETHIOPIC SYLLABLE SEE
+1235;AL;ETHIOPIC SYLLABLE SE
+1236;AL;ETHIOPIC SYLLABLE SO
+1237;AL;ETHIOPIC SYLLABLE SWA
+1238;AL;ETHIOPIC SYLLABLE SHA
+1239;AL;ETHIOPIC SYLLABLE SHU
+123A;AL;ETHIOPIC SYLLABLE SHI
+123B;AL;ETHIOPIC SYLLABLE SHAA
+123C;AL;ETHIOPIC SYLLABLE SHEE
+123D;AL;ETHIOPIC SYLLABLE SHE
+123E;AL;ETHIOPIC SYLLABLE SHO
+123F;AL;ETHIOPIC SYLLABLE SHWA
+1240;AL;ETHIOPIC SYLLABLE QA
+1241;AL;ETHIOPIC SYLLABLE QU
+1242;AL;ETHIOPIC SYLLABLE QI
+1243;AL;ETHIOPIC SYLLABLE QAA
+1244;AL;ETHIOPIC SYLLABLE QEE
+1245;AL;ETHIOPIC SYLLABLE QE
+1246;AL;ETHIOPIC SYLLABLE QO
+1248;AL;ETHIOPIC SYLLABLE QWA
+124A;AL;ETHIOPIC SYLLABLE QWI
+124B;AL;ETHIOPIC SYLLABLE QWAA
+124C;AL;ETHIOPIC SYLLABLE QWEE
+124D;AL;ETHIOPIC SYLLABLE QWE
+1250;AL;ETHIOPIC SYLLABLE QHA
+1251;AL;ETHIOPIC SYLLABLE QHU
+1252;AL;ETHIOPIC SYLLABLE QHI
+1253;AL;ETHIOPIC SYLLABLE QHAA
+1254;AL;ETHIOPIC SYLLABLE QHEE
+1255;AL;ETHIOPIC SYLLABLE QHE
+1256;AL;ETHIOPIC SYLLABLE QHO
+1258;AL;ETHIOPIC SYLLABLE QHWA
+125A;AL;ETHIOPIC SYLLABLE QHWI
+125B;AL;ETHIOPIC SYLLABLE QHWAA
+125C;AL;ETHIOPIC SYLLABLE QHWEE
+125D;AL;ETHIOPIC SYLLABLE QHWE
+1260;AL;ETHIOPIC SYLLABLE BA
+1261;AL;ETHIOPIC SYLLABLE BU
+1262;AL;ETHIOPIC SYLLABLE BI
+1263;AL;ETHIOPIC SYLLABLE BAA
+1264;AL;ETHIOPIC SYLLABLE BEE
+1265;AL;ETHIOPIC SYLLABLE BE
+1266;AL;ETHIOPIC SYLLABLE BO
+1267;AL;ETHIOPIC SYLLABLE BWA
+1268;AL;ETHIOPIC SYLLABLE VA
+1269;AL;ETHIOPIC SYLLABLE VU
+126A;AL;ETHIOPIC SYLLABLE VI
+126B;AL;ETHIOPIC SYLLABLE VAA
+126C;AL;ETHIOPIC SYLLABLE VEE
+126D;AL;ETHIOPIC SYLLABLE VE
+126E;AL;ETHIOPIC SYLLABLE VO
+126F;AL;ETHIOPIC SYLLABLE VWA
+1270;AL;ETHIOPIC SYLLABLE TA
+1271;AL;ETHIOPIC SYLLABLE TU
+1272;AL;ETHIOPIC SYLLABLE TI
+1273;AL;ETHIOPIC SYLLABLE TAA
+1274;AL;ETHIOPIC SYLLABLE TEE
+1275;AL;ETHIOPIC SYLLABLE TE
+1276;AL;ETHIOPIC SYLLABLE TO
+1277;AL;ETHIOPIC SYLLABLE TWA
+1278;AL;ETHIOPIC SYLLABLE CA
+1279;AL;ETHIOPIC SYLLABLE CU
+127A;AL;ETHIOPIC SYLLABLE CI
+127B;AL;ETHIOPIC SYLLABLE CAA
+127C;AL;ETHIOPIC SYLLABLE CEE
+127D;AL;ETHIOPIC SYLLABLE CE
+127E;AL;ETHIOPIC SYLLABLE CO
+127F;AL;ETHIOPIC SYLLABLE CWA
+1280;AL;ETHIOPIC SYLLABLE XA
+1281;AL;ETHIOPIC SYLLABLE XU
+1282;AL;ETHIOPIC SYLLABLE XI
+1283;AL;ETHIOPIC SYLLABLE XAA
+1284;AL;ETHIOPIC SYLLABLE XEE
+1285;AL;ETHIOPIC SYLLABLE XE
+1286;AL;ETHIOPIC SYLLABLE XO
+1288;AL;ETHIOPIC SYLLABLE XWA
+128A;AL;ETHIOPIC SYLLABLE XWI
+128B;AL;ETHIOPIC SYLLABLE XWAA
+128C;AL;ETHIOPIC SYLLABLE XWEE
+128D;AL;ETHIOPIC SYLLABLE XWE
+1290;AL;ETHIOPIC SYLLABLE NA
+1291;AL;ETHIOPIC SYLLABLE NU
+1292;AL;ETHIOPIC SYLLABLE NI
+1293;AL;ETHIOPIC SYLLABLE NAA
+1294;AL;ETHIOPIC SYLLABLE NEE
+1295;AL;ETHIOPIC SYLLABLE NE
+1296;AL;ETHIOPIC SYLLABLE NO
+1297;AL;ETHIOPIC SYLLABLE NWA
+1298;AL;ETHIOPIC SYLLABLE NYA
+1299;AL;ETHIOPIC SYLLABLE NYU
+129A;AL;ETHIOPIC SYLLABLE NYI
+129B;AL;ETHIOPIC SYLLABLE NYAA
+129C;AL;ETHIOPIC SYLLABLE NYEE
+129D;AL;ETHIOPIC SYLLABLE NYE
+129E;AL;ETHIOPIC SYLLABLE NYO
+129F;AL;ETHIOPIC SYLLABLE NYWA
+12A0;AL;ETHIOPIC SYLLABLE GLOTTAL A
+12A1;AL;ETHIOPIC SYLLABLE GLOTTAL U
+12A2;AL;ETHIOPIC SYLLABLE GLOTTAL I
+12A3;AL;ETHIOPIC SYLLABLE GLOTTAL AA
+12A4;AL;ETHIOPIC SYLLABLE GLOTTAL EE
+12A5;AL;ETHIOPIC SYLLABLE GLOTTAL E
+12A6;AL;ETHIOPIC SYLLABLE GLOTTAL O
+12A7;AL;ETHIOPIC SYLLABLE GLOTTAL WA
+12A8;AL;ETHIOPIC SYLLABLE KA
+12A9;AL;ETHIOPIC SYLLABLE KU
+12AA;AL;ETHIOPIC SYLLABLE KI
+12AB;AL;ETHIOPIC SYLLABLE KAA
+12AC;AL;ETHIOPIC SYLLABLE KEE
+12AD;AL;ETHIOPIC SYLLABLE KE
+12AE;AL;ETHIOPIC SYLLABLE KO
+12B0;AL;ETHIOPIC SYLLABLE KWA
+12B2;AL;ETHIOPIC SYLLABLE KWI
+12B3;AL;ETHIOPIC SYLLABLE KWAA
+12B4;AL;ETHIOPIC SYLLABLE KWEE
+12B5;AL;ETHIOPIC SYLLABLE KWE
+12B8;AL;ETHIOPIC SYLLABLE KXA
+12B9;AL;ETHIOPIC SYLLABLE KXU
+12BA;AL;ETHIOPIC SYLLABLE KXI
+12BB;AL;ETHIOPIC SYLLABLE KXAA
+12BC;AL;ETHIOPIC SYLLABLE KXEE
+12BD;AL;ETHIOPIC SYLLABLE KXE
+12BE;AL;ETHIOPIC SYLLABLE KXO
+12C0;AL;ETHIOPIC SYLLABLE KXWA
+12C2;AL;ETHIOPIC SYLLABLE KXWI
+12C3;AL;ETHIOPIC SYLLABLE KXWAA
+12C4;AL;ETHIOPIC SYLLABLE KXWEE
+12C5;AL;ETHIOPIC SYLLABLE KXWE
+12C8;AL;ETHIOPIC SYLLABLE WA
+12C9;AL;ETHIOPIC SYLLABLE WU
+12CA;AL;ETHIOPIC SYLLABLE WI
+12CB;AL;ETHIOPIC SYLLABLE WAA
+12CC;AL;ETHIOPIC SYLLABLE WEE
+12CD;AL;ETHIOPIC SYLLABLE WE
+12CE;AL;ETHIOPIC SYLLABLE WO
+12D0;AL;ETHIOPIC SYLLABLE PHARYNGEAL A
+12D1;AL;ETHIOPIC SYLLABLE PHARYNGEAL U
+12D2;AL;ETHIOPIC SYLLABLE PHARYNGEAL I
+12D3;AL;ETHIOPIC SYLLABLE PHARYNGEAL AA
+12D4;AL;ETHIOPIC SYLLABLE PHARYNGEAL EE
+12D5;AL;ETHIOPIC SYLLABLE PHARYNGEAL E
+12D6;AL;ETHIOPIC SYLLABLE PHARYNGEAL O
+12D8;AL;ETHIOPIC SYLLABLE ZA
+12D9;AL;ETHIOPIC SYLLABLE ZU
+12DA;AL;ETHIOPIC SYLLABLE ZI
+12DB;AL;ETHIOPIC SYLLABLE ZAA
+12DC;AL;ETHIOPIC SYLLABLE ZEE
+12DD;AL;ETHIOPIC SYLLABLE ZE
+12DE;AL;ETHIOPIC SYLLABLE ZO
+12DF;AL;ETHIOPIC SYLLABLE ZWA
+12E0;AL;ETHIOPIC SYLLABLE ZHA
+12E1;AL;ETHIOPIC SYLLABLE ZHU
+12E2;AL;ETHIOPIC SYLLABLE ZHI
+12E3;AL;ETHIOPIC SYLLABLE ZHAA
+12E4;AL;ETHIOPIC SYLLABLE ZHEE
+12E5;AL;ETHIOPIC SYLLABLE ZHE
+12E6;AL;ETHIOPIC SYLLABLE ZHO
+12E7;AL;ETHIOPIC SYLLABLE ZHWA
+12E8;AL;ETHIOPIC SYLLABLE YA
+12E9;AL;ETHIOPIC SYLLABLE YU
+12EA;AL;ETHIOPIC SYLLABLE YI
+12EB;AL;ETHIOPIC SYLLABLE YAA
+12EC;AL;ETHIOPIC SYLLABLE YEE
+12ED;AL;ETHIOPIC SYLLABLE YE
+12EE;AL;ETHIOPIC SYLLABLE YO
+12F0;AL;ETHIOPIC SYLLABLE DA
+12F1;AL;ETHIOPIC SYLLABLE DU
+12F2;AL;ETHIOPIC SYLLABLE DI
+12F3;AL;ETHIOPIC SYLLABLE DAA
+12F4;AL;ETHIOPIC SYLLABLE DEE
+12F5;AL;ETHIOPIC SYLLABLE DE
+12F6;AL;ETHIOPIC SYLLABLE DO
+12F7;AL;ETHIOPIC SYLLABLE DWA
+12F8;AL;ETHIOPIC SYLLABLE DDA
+12F9;AL;ETHIOPIC SYLLABLE DDU
+12FA;AL;ETHIOPIC SYLLABLE DDI
+12FB;AL;ETHIOPIC SYLLABLE DDAA
+12FC;AL;ETHIOPIC SYLLABLE DDEE
+12FD;AL;ETHIOPIC SYLLABLE DDE
+12FE;AL;ETHIOPIC SYLLABLE DDO
+12FF;AL;ETHIOPIC SYLLABLE DDWA
+1300;AL;ETHIOPIC SYLLABLE JA
+1301;AL;ETHIOPIC SYLLABLE JU
+1302;AL;ETHIOPIC SYLLABLE JI
+1303;AL;ETHIOPIC SYLLABLE JAA
+1304;AL;ETHIOPIC SYLLABLE JEE
+1305;AL;ETHIOPIC SYLLABLE JE
+1306;AL;ETHIOPIC SYLLABLE JO
+1307;AL;ETHIOPIC SYLLABLE JWA
+1308;AL;ETHIOPIC SYLLABLE GA
+1309;AL;ETHIOPIC SYLLABLE GU
+130A;AL;ETHIOPIC SYLLABLE GI
+130B;AL;ETHIOPIC SYLLABLE GAA
+130C;AL;ETHIOPIC SYLLABLE GEE
+130D;AL;ETHIOPIC SYLLABLE GE
+130E;AL;ETHIOPIC SYLLABLE GO
+1310;AL;ETHIOPIC SYLLABLE GWA
+1312;AL;ETHIOPIC SYLLABLE GWI
+1313;AL;ETHIOPIC SYLLABLE GWAA
+1314;AL;ETHIOPIC SYLLABLE GWEE
+1315;AL;ETHIOPIC SYLLABLE GWE
+1318;AL;ETHIOPIC SYLLABLE GGA
+1319;AL;ETHIOPIC SYLLABLE GGU
+131A;AL;ETHIOPIC SYLLABLE GGI
+131B;AL;ETHIOPIC SYLLABLE GGAA
+131C;AL;ETHIOPIC SYLLABLE GGEE
+131D;AL;ETHIOPIC SYLLABLE GGE
+131E;AL;ETHIOPIC SYLLABLE GGO
+1320;AL;ETHIOPIC SYLLABLE THA
+1321;AL;ETHIOPIC SYLLABLE THU
+1322;AL;ETHIOPIC SYLLABLE THI
+1323;AL;ETHIOPIC SYLLABLE THAA
+1324;AL;ETHIOPIC SYLLABLE THEE
+1325;AL;ETHIOPIC SYLLABLE THE
+1326;AL;ETHIOPIC SYLLABLE THO
+1327;AL;ETHIOPIC SYLLABLE THWA
+1328;AL;ETHIOPIC SYLLABLE CHA
+1329;AL;ETHIOPIC SYLLABLE CHU
+132A;AL;ETHIOPIC SYLLABLE CHI
+132B;AL;ETHIOPIC SYLLABLE CHAA
+132C;AL;ETHIOPIC SYLLABLE CHEE
+132D;AL;ETHIOPIC SYLLABLE CHE
+132E;AL;ETHIOPIC SYLLABLE CHO
+132F;AL;ETHIOPIC SYLLABLE CHWA
+1330;AL;ETHIOPIC SYLLABLE PHA
+1331;AL;ETHIOPIC SYLLABLE PHU
+1332;AL;ETHIOPIC SYLLABLE PHI
+1333;AL;ETHIOPIC SYLLABLE PHAA
+1334;AL;ETHIOPIC SYLLABLE PHEE
+1335;AL;ETHIOPIC SYLLABLE PHE
+1336;AL;ETHIOPIC SYLLABLE PHO
+1337;AL;ETHIOPIC SYLLABLE PHWA
+1338;AL;ETHIOPIC SYLLABLE TSA
+1339;AL;ETHIOPIC SYLLABLE TSU
+133A;AL;ETHIOPIC SYLLABLE TSI
+133B;AL;ETHIOPIC SYLLABLE TSAA
+133C;AL;ETHIOPIC SYLLABLE TSEE
+133D;AL;ETHIOPIC SYLLABLE TSE
+133E;AL;ETHIOPIC SYLLABLE TSO
+133F;AL;ETHIOPIC SYLLABLE TSWA
+1340;AL;ETHIOPIC SYLLABLE TZA
+1341;AL;ETHIOPIC SYLLABLE TZU
+1342;AL;ETHIOPIC SYLLABLE TZI
+1343;AL;ETHIOPIC SYLLABLE TZAA
+1344;AL;ETHIOPIC SYLLABLE TZEE
+1345;AL;ETHIOPIC SYLLABLE TZE
+1346;AL;ETHIOPIC SYLLABLE TZO
+1348;AL;ETHIOPIC SYLLABLE FA
+1349;AL;ETHIOPIC SYLLABLE FU
+134A;AL;ETHIOPIC SYLLABLE FI
+134B;AL;ETHIOPIC SYLLABLE FAA
+134C;AL;ETHIOPIC SYLLABLE FEE
+134D;AL;ETHIOPIC SYLLABLE FE
+134E;AL;ETHIOPIC SYLLABLE FO
+134F;AL;ETHIOPIC SYLLABLE FWA
+1350;AL;ETHIOPIC SYLLABLE PA
+1351;AL;ETHIOPIC SYLLABLE PU
+1352;AL;ETHIOPIC SYLLABLE PI
+1353;AL;ETHIOPIC SYLLABLE PAA
+1354;AL;ETHIOPIC SYLLABLE PEE
+1355;AL;ETHIOPIC SYLLABLE PE
+1356;AL;ETHIOPIC SYLLABLE PO
+1357;AL;ETHIOPIC SYLLABLE PWA
+1358;AL;ETHIOPIC SYLLABLE RYA
+1359;AL;ETHIOPIC SYLLABLE MYA
+135A;AL;ETHIOPIC SYLLABLE FYA
+1361;BA;ETHIOPIC WORDSPACE
+1362;AL;ETHIOPIC FULL STOP
+1363;AL;ETHIOPIC COMMA
+1364;AL;ETHIOPIC SEMICOLON
+1365;AL;ETHIOPIC COLON
+1366;AL;ETHIOPIC PREFACE COLON
+1367;AL;ETHIOPIC QUESTION MARK
+1368;AL;ETHIOPIC PARAGRAPH SEPARATOR
+1369;NU;ETHIOPIC DIGIT ONE
+136A;NU;ETHIOPIC DIGIT TWO
+136B;NU;ETHIOPIC DIGIT THREE
+136C;NU;ETHIOPIC DIGIT FOUR
+136D;NU;ETHIOPIC DIGIT FIVE
+136E;NU;ETHIOPIC DIGIT SIX
+136F;NU;ETHIOPIC DIGIT SEVEN
+1370;NU;ETHIOPIC DIGIT EIGHT
+1371;NU;ETHIOPIC DIGIT NINE
+1372;AL;ETHIOPIC NUMBER TEN
+1373;AL;ETHIOPIC NUMBER TWENTY
+1374;AL;ETHIOPIC NUMBER THIRTY
+1375;AL;ETHIOPIC NUMBER FORTY
+1376;AL;ETHIOPIC NUMBER FIFTY
+1377;AL;ETHIOPIC NUMBER SIXTY
+1378;AL;ETHIOPIC NUMBER SEVENTY
+1379;AL;ETHIOPIC NUMBER EIGHTY
+137A;AL;ETHIOPIC NUMBER NINETY
+137B;AL;ETHIOPIC NUMBER HUNDRED
+137C;AL;ETHIOPIC NUMBER TEN THOUSAND
+13A0;AL;CHEROKEE LETTER A
+13A1;AL;CHEROKEE LETTER E
+13A2;AL;CHEROKEE LETTER I
+13A3;AL;CHEROKEE LETTER O
+13A4;AL;CHEROKEE LETTER U
+13A5;AL;CHEROKEE LETTER V
+13A6;AL;CHEROKEE LETTER GA
+13A7;AL;CHEROKEE LETTER KA
+13A8;AL;CHEROKEE LETTER GE
+13A9;AL;CHEROKEE LETTER GI
+13AA;AL;CHEROKEE LETTER GO
+13AB;AL;CHEROKEE LETTER GU
+13AC;AL;CHEROKEE LETTER GV
+13AD;AL;CHEROKEE LETTER HA
+13AE;AL;CHEROKEE LETTER HE
+13AF;AL;CHEROKEE LETTER HI
+13B0;AL;CHEROKEE LETTER HO
+13B1;AL;CHEROKEE LETTER HU
+13B2;AL;CHEROKEE LETTER HV
+13B3;AL;CHEROKEE LETTER LA
+13B4;AL;CHEROKEE LETTER LE
+13B5;AL;CHEROKEE LETTER LI
+13B6;AL;CHEROKEE LETTER LO
+13B7;AL;CHEROKEE LETTER LU
+13B8;AL;CHEROKEE LETTER LV
+13B9;AL;CHEROKEE LETTER MA
+13BA;AL;CHEROKEE LETTER ME
+13BB;AL;CHEROKEE LETTER MI
+13BC;AL;CHEROKEE LETTER MO
+13BD;AL;CHEROKEE LETTER MU
+13BE;AL;CHEROKEE LETTER NA
+13BF;AL;CHEROKEE LETTER HNA
+13C0;AL;CHEROKEE LETTER NAH
+13C1;AL;CHEROKEE LETTER NE
+13C2;AL;CHEROKEE LETTER NI
+13C3;AL;CHEROKEE LETTER NO
+13C4;AL;CHEROKEE LETTER NU
+13C5;AL;CHEROKEE LETTER NV
+13C6;AL;CHEROKEE LETTER QUA
+13C7;AL;CHEROKEE LETTER QUE
+13C8;AL;CHEROKEE LETTER QUI
+13C9;AL;CHEROKEE LETTER QUO
+13CA;AL;CHEROKEE LETTER QUU
+13CB;AL;CHEROKEE LETTER QUV
+13CC;AL;CHEROKEE LETTER SA
+13CD;AL;CHEROKEE LETTER S
+13CE;AL;CHEROKEE LETTER SE
+13CF;AL;CHEROKEE LETTER SI
+13D0;AL;CHEROKEE LETTER SO
+13D1;AL;CHEROKEE LETTER SU
+13D2;AL;CHEROKEE LETTER SV
+13D3;AL;CHEROKEE LETTER DA
+13D4;AL;CHEROKEE LETTER TA
+13D5;AL;CHEROKEE LETTER DE
+13D6;AL;CHEROKEE LETTER TE
+13D7;AL;CHEROKEE LETTER DI
+13D8;AL;CHEROKEE LETTER TI
+13D9;AL;CHEROKEE LETTER DO
+13DA;AL;CHEROKEE LETTER DU
+13DB;AL;CHEROKEE LETTER DV
+13DC;AL;CHEROKEE LETTER DLA
+13DD;AL;CHEROKEE LETTER TLA
+13DE;AL;CHEROKEE LETTER TLE
+13DF;AL;CHEROKEE LETTER TLI
+13E0;AL;CHEROKEE LETTER TLO
+13E1;AL;CHEROKEE LETTER TLU
+13E2;AL;CHEROKEE LETTER TLV
+13E3;AL;CHEROKEE LETTER TSA
+13E4;AL;CHEROKEE LETTER TSE
+13E5;AL;CHEROKEE LETTER TSI
+13E6;AL;CHEROKEE LETTER TSO
+13E7;AL;CHEROKEE LETTER TSU
+13E8;AL;CHEROKEE LETTER TSV
+13E9;AL;CHEROKEE LETTER WA
+13EA;AL;CHEROKEE LETTER WE
+13EB;AL;CHEROKEE LETTER WI
+13EC;AL;CHEROKEE LETTER WO
+13ED;AL;CHEROKEE LETTER WU
+13EE;AL;CHEROKEE LETTER WV
+13EF;AL;CHEROKEE LETTER YA
+13F0;AL;CHEROKEE LETTER YE
+13F1;AL;CHEROKEE LETTER YI
+13F2;AL;CHEROKEE LETTER YO
+13F3;AL;CHEROKEE LETTER YU
+13F4;AL;CHEROKEE LETTER YV
+1401;AL;CANADIAN SYLLABICS E
+1402;AL;CANADIAN SYLLABICS AAI
+1403;AL;CANADIAN SYLLABICS I
+1404;AL;CANADIAN SYLLABICS II
+1405;AL;CANADIAN SYLLABICS O
+1406;AL;CANADIAN SYLLABICS OO
+1407;AL;CANADIAN SYLLABICS Y-CREE OO
+1408;AL;CANADIAN SYLLABICS CARRIER EE
+1409;AL;CANADIAN SYLLABICS CARRIER I
+140A;AL;CANADIAN SYLLABICS A
+140B;AL;CANADIAN SYLLABICS AA
+140C;AL;CANADIAN SYLLABICS WE
+140D;AL;CANADIAN SYLLABICS WEST-CREE WE
+140E;AL;CANADIAN SYLLABICS WI
+140F;AL;CANADIAN SYLLABICS WEST-CREE WI
+1410;AL;CANADIAN SYLLABICS WII
+1411;AL;CANADIAN SYLLABICS WEST-CREE WII
+1412;AL;CANADIAN SYLLABICS WO
+1413;AL;CANADIAN SYLLABICS WEST-CREE WO
+1414;AL;CANADIAN SYLLABICS WOO
+1415;AL;CANADIAN SYLLABICS WEST-CREE WOO
+1416;AL;CANADIAN SYLLABICS NASKAPI WOO
+1417;AL;CANADIAN SYLLABICS WA
+1418;AL;CANADIAN SYLLABICS WEST-CREE WA
+1419;AL;CANADIAN SYLLABICS WAA
+141A;AL;CANADIAN SYLLABICS WEST-CREE WAA
+141B;AL;CANADIAN SYLLABICS NASKAPI WAA
+141C;AL;CANADIAN SYLLABICS AI
+141D;AL;CANADIAN SYLLABICS Y-CREE W
+141E;AL;CANADIAN SYLLABICS GLOTTAL STOP
+141F;AL;CANADIAN SYLLABICS FINAL ACUTE
+1420;AL;CANADIAN SYLLABICS FINAL GRAVE
+1421;AL;CANADIAN SYLLABICS FINAL BOTTOM HALF RING
+1422;AL;CANADIAN SYLLABICS FINAL TOP HALF RING
+1423;AL;CANADIAN SYLLABICS FINAL RIGHT HALF RING
+1424;AL;CANADIAN SYLLABICS FINAL RING
+1425;AL;CANADIAN SYLLABICS FINAL DOUBLE ACUTE
+1426;AL;CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES
+1427;AL;CANADIAN SYLLABICS FINAL MIDDLE DOT
+1428;AL;CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE
+1429;AL;CANADIAN SYLLABICS FINAL PLUS
+142A;AL;CANADIAN SYLLABICS FINAL DOWN TACK
+142B;AL;CANADIAN SYLLABICS EN
+142C;AL;CANADIAN SYLLABICS IN
+142D;AL;CANADIAN SYLLABICS ON
+142E;AL;CANADIAN SYLLABICS AN
+142F;AL;CANADIAN SYLLABICS PE
+1430;AL;CANADIAN SYLLABICS PAAI
+1431;AL;CANADIAN SYLLABICS PI
+1432;AL;CANADIAN SYLLABICS PII
+1433;AL;CANADIAN SYLLABICS PO
+1434;AL;CANADIAN SYLLABICS POO
+1435;AL;CANADIAN SYLLABICS Y-CREE POO
+1436;AL;CANADIAN SYLLABICS CARRIER HEE
+1437;AL;CANADIAN SYLLABICS CARRIER HI
+1438;AL;CANADIAN SYLLABICS PA
+1439;AL;CANADIAN SYLLABICS PAA
+143A;AL;CANADIAN SYLLABICS PWE
+143B;AL;CANADIAN SYLLABICS WEST-CREE PWE
+143C;AL;CANADIAN SYLLABICS PWI
+143D;AL;CANADIAN SYLLABICS WEST-CREE PWI
+143E;AL;CANADIAN SYLLABICS PWII
+143F;AL;CANADIAN SYLLABICS WEST-CREE PWII
+1440;AL;CANADIAN SYLLABICS PWO
+1441;AL;CANADIAN SYLLABICS WEST-CREE PWO
+1442;AL;CANADIAN SYLLABICS PWOO
+1443;AL;CANADIAN SYLLABICS WEST-CREE PWOO
+1444;AL;CANADIAN SYLLABICS PWA
+1445;AL;CANADIAN SYLLABICS WEST-CREE PWA
+1446;AL;CANADIAN SYLLABICS PWAA
+1447;AL;CANADIAN SYLLABICS WEST-CREE PWAA
+1448;AL;CANADIAN SYLLABICS Y-CREE PWAA
+1449;AL;CANADIAN SYLLABICS P
+144A;AL;CANADIAN SYLLABICS WEST-CREE P
+144B;AL;CANADIAN SYLLABICS CARRIER H
+144C;AL;CANADIAN SYLLABICS TE
+144D;AL;CANADIAN SYLLABICS TAAI
+144E;AL;CANADIAN SYLLABICS TI
+144F;AL;CANADIAN SYLLABICS TII
+1450;AL;CANADIAN SYLLABICS TO
+1451;AL;CANADIAN SYLLABICS TOO
+1452;AL;CANADIAN SYLLABICS Y-CREE TOO
+1453;AL;CANADIAN SYLLABICS CARRIER DEE
+1454;AL;CANADIAN SYLLABICS CARRIER DI
+1455;AL;CANADIAN SYLLABICS TA
+1456;AL;CANADIAN SYLLABICS TAA
+1457;AL;CANADIAN SYLLABICS TWE
+1458;AL;CANADIAN SYLLABICS WEST-CREE TWE
+1459;AL;CANADIAN SYLLABICS TWI
+145A;AL;CANADIAN SYLLABICS WEST-CREE TWI
+145B;AL;CANADIAN SYLLABICS TWII
+145C;AL;CANADIAN SYLLABICS WEST-CREE TWII
+145D;AL;CANADIAN SYLLABICS TWO
+145E;AL;CANADIAN SYLLABICS WEST-CREE TWO
+145F;AL;CANADIAN SYLLABICS TWOO
+1460;AL;CANADIAN SYLLABICS WEST-CREE TWOO
+1461;AL;CANADIAN SYLLABICS TWA
+1462;AL;CANADIAN SYLLABICS WEST-CREE TWA
+1463;AL;CANADIAN SYLLABICS TWAA
+1464;AL;CANADIAN SYLLABICS WEST-CREE TWAA
+1465;AL;CANADIAN SYLLABICS NASKAPI TWAA
+1466;AL;CANADIAN SYLLABICS T
+1467;AL;CANADIAN SYLLABICS TTE
+1468;AL;CANADIAN SYLLABICS TTI
+1469;AL;CANADIAN SYLLABICS TTO
+146A;AL;CANADIAN SYLLABICS TTA
+146B;AL;CANADIAN SYLLABICS KE
+146C;AL;CANADIAN SYLLABICS KAAI
+146D;AL;CANADIAN SYLLABICS KI
+146E;AL;CANADIAN SYLLABICS KII
+146F;AL;CANADIAN SYLLABICS KO
+1470;AL;CANADIAN SYLLABICS KOO
+1471;AL;CANADIAN SYLLABICS Y-CREE KOO
+1472;AL;CANADIAN SYLLABICS KA
+1473;AL;CANADIAN SYLLABICS KAA
+1474;AL;CANADIAN SYLLABICS KWE
+1475;AL;CANADIAN SYLLABICS WEST-CREE KWE
+1476;AL;CANADIAN SYLLABICS KWI
+1477;AL;CANADIAN SYLLABICS WEST-CREE KWI
+1478;AL;CANADIAN SYLLABICS KWII
+1479;AL;CANADIAN SYLLABICS WEST-CREE KWII
+147A;AL;CANADIAN SYLLABICS KWO
+147B;AL;CANADIAN SYLLABICS WEST-CREE KWO
+147C;AL;CANADIAN SYLLABICS KWOO
+147D;AL;CANADIAN SYLLABICS WEST-CREE KWOO
+147E;AL;CANADIAN SYLLABICS KWA
+147F;AL;CANADIAN SYLLABICS WEST-CREE KWA
+1480;AL;CANADIAN SYLLABICS KWAA
+1481;AL;CANADIAN SYLLABICS WEST-CREE KWAA
+1482;AL;CANADIAN SYLLABICS NASKAPI KWAA
+1483;AL;CANADIAN SYLLABICS K
+1484;AL;CANADIAN SYLLABICS KW
+1485;AL;CANADIAN SYLLABICS SOUTH-SLAVEY KEH
+1486;AL;CANADIAN SYLLABICS SOUTH-SLAVEY KIH
+1487;AL;CANADIAN SYLLABICS SOUTH-SLAVEY KOH
+1488;AL;CANADIAN SYLLABICS SOUTH-SLAVEY KAH
+1489;AL;CANADIAN SYLLABICS CE
+148A;AL;CANADIAN SYLLABICS CAAI
+148B;AL;CANADIAN SYLLABICS CI
+148C;AL;CANADIAN SYLLABICS CII
+148D;AL;CANADIAN SYLLABICS CO
+148E;AL;CANADIAN SYLLABICS COO
+148F;AL;CANADIAN SYLLABICS Y-CREE COO
+1490;AL;CANADIAN SYLLABICS CA
+1491;AL;CANADIAN SYLLABICS CAA
+1492;AL;CANADIAN SYLLABICS CWE
+1493;AL;CANADIAN SYLLABICS WEST-CREE CWE
+1494;AL;CANADIAN SYLLABICS CWI
+1495;AL;CANADIAN SYLLABICS WEST-CREE CWI
+1496;AL;CANADIAN SYLLABICS CWII
+1497;AL;CANADIAN SYLLABICS WEST-CREE CWII
+1498;AL;CANADIAN SYLLABICS CWO
+1499;AL;CANADIAN SYLLABICS WEST-CREE CWO
+149A;AL;CANADIAN SYLLABICS CWOO
+149B;AL;CANADIAN SYLLABICS WEST-CREE CWOO
+149C;AL;CANADIAN SYLLABICS CWA
+149D;AL;CANADIAN SYLLABICS WEST-CREE CWA
+149E;AL;CANADIAN SYLLABICS CWAA
+149F;AL;CANADIAN SYLLABICS WEST-CREE CWAA
+14A0;AL;CANADIAN SYLLABICS NASKAPI CWAA
+14A1;AL;CANADIAN SYLLABICS C
+14A2;AL;CANADIAN SYLLABICS SAYISI TH
+14A3;AL;CANADIAN SYLLABICS ME
+14A4;AL;CANADIAN SYLLABICS MAAI
+14A5;AL;CANADIAN SYLLABICS MI
+14A6;AL;CANADIAN SYLLABICS MII
+14A7;AL;CANADIAN SYLLABICS MO
+14A8;AL;CANADIAN SYLLABICS MOO
+14A9;AL;CANADIAN SYLLABICS Y-CREE MOO
+14AA;AL;CANADIAN SYLLABICS MA
+14AB;AL;CANADIAN SYLLABICS MAA
+14AC;AL;CANADIAN SYLLABICS MWE
+14AD;AL;CANADIAN SYLLABICS WEST-CREE MWE
+14AE;AL;CANADIAN SYLLABICS MWI
+14AF;AL;CANADIAN SYLLABICS WEST-CREE MWI
+14B0;AL;CANADIAN SYLLABICS MWII
+14B1;AL;CANADIAN SYLLABICS WEST-CREE MWII
+14B2;AL;CANADIAN SYLLABICS MWO
+14B3;AL;CANADIAN SYLLABICS WEST-CREE MWO
+14B4;AL;CANADIAN SYLLABICS MWOO
+14B5;AL;CANADIAN SYLLABICS WEST-CREE MWOO
+14B6;AL;CANADIAN SYLLABICS MWA
+14B7;AL;CANADIAN SYLLABICS WEST-CREE MWA
+14B8;AL;CANADIAN SYLLABICS MWAA
+14B9;AL;CANADIAN SYLLABICS WEST-CREE MWAA
+14BA;AL;CANADIAN SYLLABICS NASKAPI MWAA
+14BB;AL;CANADIAN SYLLABICS M
+14BC;AL;CANADIAN SYLLABICS WEST-CREE M
+14BD;AL;CANADIAN SYLLABICS MH
+14BE;AL;CANADIAN SYLLABICS ATHAPASCAN M
+14BF;AL;CANADIAN SYLLABICS SAYISI M
+14C0;AL;CANADIAN SYLLABICS NE
+14C1;AL;CANADIAN SYLLABICS NAAI
+14C2;AL;CANADIAN SYLLABICS NI
+14C3;AL;CANADIAN SYLLABICS NII
+14C4;AL;CANADIAN SYLLABICS NO
+14C5;AL;CANADIAN SYLLABICS NOO
+14C6;AL;CANADIAN SYLLABICS Y-CREE NOO
+14C7;AL;CANADIAN SYLLABICS NA
+14C8;AL;CANADIAN SYLLABICS NAA
+14C9;AL;CANADIAN SYLLABICS NWE
+14CA;AL;CANADIAN SYLLABICS WEST-CREE NWE
+14CB;AL;CANADIAN SYLLABICS NWA
+14CC;AL;CANADIAN SYLLABICS WEST-CREE NWA
+14CD;AL;CANADIAN SYLLABICS NWAA
+14CE;AL;CANADIAN SYLLABICS WEST-CREE NWAA
+14CF;AL;CANADIAN SYLLABICS NASKAPI NWAA
+14D0;AL;CANADIAN SYLLABICS N
+14D1;AL;CANADIAN SYLLABICS CARRIER NG
+14D2;AL;CANADIAN SYLLABICS NH
+14D3;AL;CANADIAN SYLLABICS LE
+14D4;AL;CANADIAN SYLLABICS LAAI
+14D5;AL;CANADIAN SYLLABICS LI
+14D6;AL;CANADIAN SYLLABICS LII
+14D7;AL;CANADIAN SYLLABICS LO
+14D8;AL;CANADIAN SYLLABICS LOO
+14D9;AL;CANADIAN SYLLABICS Y-CREE LOO
+14DA;AL;CANADIAN SYLLABICS LA
+14DB;AL;CANADIAN SYLLABICS LAA
+14DC;AL;CANADIAN SYLLABICS LWE
+14DD;AL;CANADIAN SYLLABICS WEST-CREE LWE
+14DE;AL;CANADIAN SYLLABICS LWI
+14DF;AL;CANADIAN SYLLABICS WEST-CREE LWI
+14E0;AL;CANADIAN SYLLABICS LWII
+14E1;AL;CANADIAN SYLLABICS WEST-CREE LWII
+14E2;AL;CANADIAN SYLLABICS LWO
+14E3;AL;CANADIAN SYLLABICS WEST-CREE LWO
+14E4;AL;CANADIAN SYLLABICS LWOO
+14E5;AL;CANADIAN SYLLABICS WEST-CREE LWOO
+14E6;AL;CANADIAN SYLLABICS LWA
+14E7;AL;CANADIAN SYLLABICS WEST-CREE LWA
+14E8;AL;CANADIAN SYLLABICS LWAA
+14E9;AL;CANADIAN SYLLABICS WEST-CREE LWAA
+14EA;AL;CANADIAN SYLLABICS L
+14EB;AL;CANADIAN SYLLABICS WEST-CREE L
+14EC;AL;CANADIAN SYLLABICS MEDIAL L
+14ED;AL;CANADIAN SYLLABICS SE
+14EE;AL;CANADIAN SYLLABICS SAAI
+14EF;AL;CANADIAN SYLLABICS SI
+14F0;AL;CANADIAN SYLLABICS SII
+14F1;AL;CANADIAN SYLLABICS SO
+14F2;AL;CANADIAN SYLLABICS SOO
+14F3;AL;CANADIAN SYLLABICS Y-CREE SOO
+14F4;AL;CANADIAN SYLLABICS SA
+14F5;AL;CANADIAN SYLLABICS SAA
+14F6;AL;CANADIAN SYLLABICS SWE
+14F7;AL;CANADIAN SYLLABICS WEST-CREE SWE
+14F8;AL;CANADIAN SYLLABICS SWI
+14F9;AL;CANADIAN SYLLABICS WEST-CREE SWI
+14FA;AL;CANADIAN SYLLABICS SWII
+14FB;AL;CANADIAN SYLLABICS WEST-CREE SWII
+14FC;AL;CANADIAN SYLLABICS SWO
+14FD;AL;CANADIAN SYLLABICS WEST-CREE SWO
+14FE;AL;CANADIAN SYLLABICS SWOO
+14FF;AL;CANADIAN SYLLABICS WEST-CREE SWOO
+1500;AL;CANADIAN SYLLABICS SWA
+1501;AL;CANADIAN SYLLABICS WEST-CREE SWA
+1502;AL;CANADIAN SYLLABICS SWAA
+1503;AL;CANADIAN SYLLABICS WEST-CREE SWAA
+1504;AL;CANADIAN SYLLABICS NASKAPI SWAA
+1505;AL;CANADIAN SYLLABICS S
+1506;AL;CANADIAN SYLLABICS ATHAPASCAN S
+1507;AL;CANADIAN SYLLABICS SW
+1508;AL;CANADIAN SYLLABICS BLACKFOOT S
+1509;AL;CANADIAN SYLLABICS MOOSE-CREE SK
+150A;AL;CANADIAN SYLLABICS NASKAPI SKW
+150B;AL;CANADIAN SYLLABICS NASKAPI S-W
+150C;AL;CANADIAN SYLLABICS NASKAPI SPWA
+150D;AL;CANADIAN SYLLABICS NASKAPI STWA
+150E;AL;CANADIAN SYLLABICS NASKAPI SKWA
+150F;AL;CANADIAN SYLLABICS NASKAPI SCWA
+1510;AL;CANADIAN SYLLABICS SHE
+1511;AL;CANADIAN SYLLABICS SHI
+1512;AL;CANADIAN SYLLABICS SHII
+1513;AL;CANADIAN SYLLABICS SHO
+1514;AL;CANADIAN SYLLABICS SHOO
+1515;AL;CANADIAN SYLLABICS SHA
+1516;AL;CANADIAN SYLLABICS SHAA
+1517;AL;CANADIAN SYLLABICS SHWE
+1518;AL;CANADIAN SYLLABICS WEST-CREE SHWE
+1519;AL;CANADIAN SYLLABICS SHWI
+151A;AL;CANADIAN SYLLABICS WEST-CREE SHWI
+151B;AL;CANADIAN SYLLABICS SHWII
+151C;AL;CANADIAN SYLLABICS WEST-CREE SHWII
+151D;AL;CANADIAN SYLLABICS SHWO
+151E;AL;CANADIAN SYLLABICS WEST-CREE SHWO
+151F;AL;CANADIAN SYLLABICS SHWOO
+1520;AL;CANADIAN SYLLABICS WEST-CREE SHWOO
+1521;AL;CANADIAN SYLLABICS SHWA
+1522;AL;CANADIAN SYLLABICS WEST-CREE SHWA
+1523;AL;CANADIAN SYLLABICS SHWAA
+1524;AL;CANADIAN SYLLABICS WEST-CREE SHWAA
+1525;AL;CANADIAN SYLLABICS SH
+1526;AL;CANADIAN SYLLABICS YE
+1527;AL;CANADIAN SYLLABICS YAAI
+1528;AL;CANADIAN SYLLABICS YI
+1529;AL;CANADIAN SYLLABICS YII
+152A;AL;CANADIAN SYLLABICS YO
+152B;AL;CANADIAN SYLLABICS YOO
+152C;AL;CANADIAN SYLLABICS Y-CREE YOO
+152D;AL;CANADIAN SYLLABICS YA
+152E;AL;CANADIAN SYLLABICS YAA
+152F;AL;CANADIAN SYLLABICS YWE
+1530;AL;CANADIAN SYLLABICS WEST-CREE YWE
+1531;AL;CANADIAN SYLLABICS YWI
+1532;AL;CANADIAN SYLLABICS WEST-CREE YWI
+1533;AL;CANADIAN SYLLABICS YWII
+1534;AL;CANADIAN SYLLABICS WEST-CREE YWII
+1535;AL;CANADIAN SYLLABICS YWO
+1536;AL;CANADIAN SYLLABICS WEST-CREE YWO
+1537;AL;CANADIAN SYLLABICS YWOO
+1538;AL;CANADIAN SYLLABICS WEST-CREE YWOO
+1539;AL;CANADIAN SYLLABICS YWA
+153A;AL;CANADIAN SYLLABICS WEST-CREE YWA
+153B;AL;CANADIAN SYLLABICS YWAA
+153C;AL;CANADIAN SYLLABICS WEST-CREE YWAA
+153D;AL;CANADIAN SYLLABICS NASKAPI YWAA
+153E;AL;CANADIAN SYLLABICS Y
+153F;AL;CANADIAN SYLLABICS BIBLE-CREE Y
+1540;AL;CANADIAN SYLLABICS WEST-CREE Y
+1541;AL;CANADIAN SYLLABICS SAYISI YI
+1542;AL;CANADIAN SYLLABICS RE
+1543;AL;CANADIAN SYLLABICS R-CREE RE
+1544;AL;CANADIAN SYLLABICS WEST-CREE LE
+1545;AL;CANADIAN SYLLABICS RAAI
+1546;AL;CANADIAN SYLLABICS RI
+1547;AL;CANADIAN SYLLABICS RII
+1548;AL;CANADIAN SYLLABICS RO
+1549;AL;CANADIAN SYLLABICS ROO
+154A;AL;CANADIAN SYLLABICS WEST-CREE LO
+154B;AL;CANADIAN SYLLABICS RA
+154C;AL;CANADIAN SYLLABICS RAA
+154D;AL;CANADIAN SYLLABICS WEST-CREE LA
+154E;AL;CANADIAN SYLLABICS RWAA
+154F;AL;CANADIAN SYLLABICS WEST-CREE RWAA
+1550;AL;CANADIAN SYLLABICS R
+1551;AL;CANADIAN SYLLABICS WEST-CREE R
+1552;AL;CANADIAN SYLLABICS MEDIAL R
+1553;AL;CANADIAN SYLLABICS FE
+1554;AL;CANADIAN SYLLABICS FAAI
+1555;AL;CANADIAN SYLLABICS FI
+1556;AL;CANADIAN SYLLABICS FII
+1557;AL;CANADIAN SYLLABICS FO
+1558;AL;CANADIAN SYLLABICS FOO
+1559;AL;CANADIAN SYLLABICS FA
+155A;AL;CANADIAN SYLLABICS FAA
+155B;AL;CANADIAN SYLLABICS FWAA
+155C;AL;CANADIAN SYLLABICS WEST-CREE FWAA
+155D;AL;CANADIAN SYLLABICS F
+155E;AL;CANADIAN SYLLABICS THE
+155F;AL;CANADIAN SYLLABICS N-CREE THE
+1560;AL;CANADIAN SYLLABICS THI
+1561;AL;CANADIAN SYLLABICS N-CREE THI
+1562;AL;CANADIAN SYLLABICS THII
+1563;AL;CANADIAN SYLLABICS N-CREE THII
+1564;AL;CANADIAN SYLLABICS THO
+1565;AL;CANADIAN SYLLABICS THOO
+1566;AL;CANADIAN SYLLABICS THA
+1567;AL;CANADIAN SYLLABICS THAA
+1568;AL;CANADIAN SYLLABICS THWAA
+1569;AL;CANADIAN SYLLABICS WEST-CREE THWAA
+156A;AL;CANADIAN SYLLABICS TH
+156B;AL;CANADIAN SYLLABICS TTHE
+156C;AL;CANADIAN SYLLABICS TTHI
+156D;AL;CANADIAN SYLLABICS TTHO
+156E;AL;CANADIAN SYLLABICS TTHA
+156F;AL;CANADIAN SYLLABICS TTH
+1570;AL;CANADIAN SYLLABICS TYE
+1571;AL;CANADIAN SYLLABICS TYI
+1572;AL;CANADIAN SYLLABICS TYO
+1573;AL;CANADIAN SYLLABICS TYA
+1574;AL;CANADIAN SYLLABICS NUNAVIK HE
+1575;AL;CANADIAN SYLLABICS NUNAVIK HI
+1576;AL;CANADIAN SYLLABICS NUNAVIK HII
+1577;AL;CANADIAN SYLLABICS NUNAVIK HO
+1578;AL;CANADIAN SYLLABICS NUNAVIK HOO
+1579;AL;CANADIAN SYLLABICS NUNAVIK HA
+157A;AL;CANADIAN SYLLABICS NUNAVIK HAA
+157B;AL;CANADIAN SYLLABICS NUNAVIK H
+157C;AL;CANADIAN SYLLABICS NUNAVUT H
+157D;AL;CANADIAN SYLLABICS HK
+157E;AL;CANADIAN SYLLABICS QAAI
+157F;AL;CANADIAN SYLLABICS QI
+1580;AL;CANADIAN SYLLABICS QII
+1581;AL;CANADIAN SYLLABICS QO
+1582;AL;CANADIAN SYLLABICS QOO
+1583;AL;CANADIAN SYLLABICS QA
+1584;AL;CANADIAN SYLLABICS QAA
+1585;AL;CANADIAN SYLLABICS Q
+1586;AL;CANADIAN SYLLABICS TLHE
+1587;AL;CANADIAN SYLLABICS TLHI
+1588;AL;CANADIAN SYLLABICS TLHO
+1589;AL;CANADIAN SYLLABICS TLHA
+158A;AL;CANADIAN SYLLABICS WEST-CREE RE
+158B;AL;CANADIAN SYLLABICS WEST-CREE RI
+158C;AL;CANADIAN SYLLABICS WEST-CREE RO
+158D;AL;CANADIAN SYLLABICS WEST-CREE RA
+158E;AL;CANADIAN SYLLABICS NGAAI
+158F;AL;CANADIAN SYLLABICS NGI
+1590;AL;CANADIAN SYLLABICS NGII
+1591;AL;CANADIAN SYLLABICS NGO
+1592;AL;CANADIAN SYLLABICS NGOO
+1593;AL;CANADIAN SYLLABICS NGA
+1594;AL;CANADIAN SYLLABICS NGAA
+1595;AL;CANADIAN SYLLABICS NG
+1596;AL;CANADIAN SYLLABICS NNG
+1597;AL;CANADIAN SYLLABICS SAYISI SHE
+1598;AL;CANADIAN SYLLABICS SAYISI SHI
+1599;AL;CANADIAN SYLLABICS SAYISI SHO
+159A;AL;CANADIAN SYLLABICS SAYISI SHA
+159B;AL;CANADIAN SYLLABICS WOODS-CREE THE
+159C;AL;CANADIAN SYLLABICS WOODS-CREE THI
+159D;AL;CANADIAN SYLLABICS WOODS-CREE THO
+159E;AL;CANADIAN SYLLABICS WOODS-CREE THA
+159F;AL;CANADIAN SYLLABICS WOODS-CREE TH
+15A0;AL;CANADIAN SYLLABICS LHI
+15A1;AL;CANADIAN SYLLABICS LHII
+15A2;AL;CANADIAN SYLLABICS LHO
+15A3;AL;CANADIAN SYLLABICS LHOO
+15A4;AL;CANADIAN SYLLABICS LHA
+15A5;AL;CANADIAN SYLLABICS LHAA
+15A6;AL;CANADIAN SYLLABICS LH
+15A7;AL;CANADIAN SYLLABICS TH-CREE THE
+15A8;AL;CANADIAN SYLLABICS TH-CREE THI
+15A9;AL;CANADIAN SYLLABICS TH-CREE THII
+15AA;AL;CANADIAN SYLLABICS TH-CREE THO
+15AB;AL;CANADIAN SYLLABICS TH-CREE THOO
+15AC;AL;CANADIAN SYLLABICS TH-CREE THA
+15AD;AL;CANADIAN SYLLABICS TH-CREE THAA
+15AE;AL;CANADIAN SYLLABICS TH-CREE TH
+15AF;AL;CANADIAN SYLLABICS AIVILIK B
+15B0;AL;CANADIAN SYLLABICS BLACKFOOT E
+15B1;AL;CANADIAN SYLLABICS BLACKFOOT I
+15B2;AL;CANADIAN SYLLABICS BLACKFOOT O
+15B3;AL;CANADIAN SYLLABICS BLACKFOOT A
+15B4;AL;CANADIAN SYLLABICS BLACKFOOT WE
+15B5;AL;CANADIAN SYLLABICS BLACKFOOT WI
+15B6;AL;CANADIAN SYLLABICS BLACKFOOT WO
+15B7;AL;CANADIAN SYLLABICS BLACKFOOT WA
+15B8;AL;CANADIAN SYLLABICS BLACKFOOT NE
+15B9;AL;CANADIAN SYLLABICS BLACKFOOT NI
+15BA;AL;CANADIAN SYLLABICS BLACKFOOT NO
+15BB;AL;CANADIAN SYLLABICS BLACKFOOT NA
+15BC;AL;CANADIAN SYLLABICS BLACKFOOT KE
+15BD;AL;CANADIAN SYLLABICS BLACKFOOT KI
+15BE;AL;CANADIAN SYLLABICS BLACKFOOT KO
+15BF;AL;CANADIAN SYLLABICS BLACKFOOT KA
+15C0;AL;CANADIAN SYLLABICS SAYISI HE
+15C1;AL;CANADIAN SYLLABICS SAYISI HI
+15C2;AL;CANADIAN SYLLABICS SAYISI HO
+15C3;AL;CANADIAN SYLLABICS SAYISI HA
+15C4;AL;CANADIAN SYLLABICS CARRIER GHU
+15C5;AL;CANADIAN SYLLABICS CARRIER GHO
+15C6;AL;CANADIAN SYLLABICS CARRIER GHE
+15C7;AL;CANADIAN SYLLABICS CARRIER GHEE
+15C8;AL;CANADIAN SYLLABICS CARRIER GHI
+15C9;AL;CANADIAN SYLLABICS CARRIER GHA
+15CA;AL;CANADIAN SYLLABICS CARRIER RU
+15CB;AL;CANADIAN SYLLABICS CARRIER RO
+15CC;AL;CANADIAN SYLLABICS CARRIER RE
+15CD;AL;CANADIAN SYLLABICS CARRIER REE
+15CE;AL;CANADIAN SYLLABICS CARRIER RI
+15CF;AL;CANADIAN SYLLABICS CARRIER RA
+15D0;AL;CANADIAN SYLLABICS CARRIER WU
+15D1;AL;CANADIAN SYLLABICS CARRIER WO
+15D2;AL;CANADIAN SYLLABICS CARRIER WE
+15D3;AL;CANADIAN SYLLABICS CARRIER WEE
+15D4;AL;CANADIAN SYLLABICS CARRIER WI
+15D5;AL;CANADIAN SYLLABICS CARRIER WA
+15D6;AL;CANADIAN SYLLABICS CARRIER HWU
+15D7;AL;CANADIAN SYLLABICS CARRIER HWO
+15D8;AL;CANADIAN SYLLABICS CARRIER HWE
+15D9;AL;CANADIAN SYLLABICS CARRIER HWEE
+15DA;AL;CANADIAN SYLLABICS CARRIER HWI
+15DB;AL;CANADIAN SYLLABICS CARRIER HWA
+15DC;AL;CANADIAN SYLLABICS CARRIER THU
+15DD;AL;CANADIAN SYLLABICS CARRIER THO
+15DE;AL;CANADIAN SYLLABICS CARRIER THE
+15DF;AL;CANADIAN SYLLABICS CARRIER THEE
+15E0;AL;CANADIAN SYLLABICS CARRIER THI
+15E1;AL;CANADIAN SYLLABICS CARRIER THA
+15E2;AL;CANADIAN SYLLABICS CARRIER TTU
+15E3;AL;CANADIAN SYLLABICS CARRIER TTO
+15E4;AL;CANADIAN SYLLABICS CARRIER TTE
+15E5;AL;CANADIAN SYLLABICS CARRIER TTEE
+15E6;AL;CANADIAN SYLLABICS CARRIER TTI
+15E7;AL;CANADIAN SYLLABICS CARRIER TTA
+15E8;AL;CANADIAN SYLLABICS CARRIER PU
+15E9;AL;CANADIAN SYLLABICS CARRIER PO
+15EA;AL;CANADIAN SYLLABICS CARRIER PE
+15EB;AL;CANADIAN SYLLABICS CARRIER PEE
+15EC;AL;CANADIAN SYLLABICS CARRIER PI
+15ED;AL;CANADIAN SYLLABICS CARRIER PA
+15EE;AL;CANADIAN SYLLABICS CARRIER P
+15EF;AL;CANADIAN SYLLABICS CARRIER GU
+15F0;AL;CANADIAN SYLLABICS CARRIER GO
+15F1;AL;CANADIAN SYLLABICS CARRIER GE
+15F2;AL;CANADIAN SYLLABICS CARRIER GEE
+15F3;AL;CANADIAN SYLLABICS CARRIER GI
+15F4;AL;CANADIAN SYLLABICS CARRIER GA
+15F5;AL;CANADIAN SYLLABICS CARRIER KHU
+15F6;AL;CANADIAN SYLLABICS CARRIER KHO
+15F7;AL;CANADIAN SYLLABICS CARRIER KHE
+15F8;AL;CANADIAN SYLLABICS CARRIER KHEE
+15F9;AL;CANADIAN SYLLABICS CARRIER KHI
+15FA;AL;CANADIAN SYLLABICS CARRIER KHA
+15FB;AL;CANADIAN SYLLABICS CARRIER KKU
+15FC;AL;CANADIAN SYLLABICS CARRIER KKO
+15FD;AL;CANADIAN SYLLABICS CARRIER KKE
+15FE;AL;CANADIAN SYLLABICS CARRIER KKEE
+15FF;AL;CANADIAN SYLLABICS CARRIER KKI
+1600;AL;CANADIAN SYLLABICS CARRIER KKA
+1601;AL;CANADIAN SYLLABICS CARRIER KK
+1602;AL;CANADIAN SYLLABICS CARRIER NU
+1603;AL;CANADIAN SYLLABICS CARRIER NO
+1604;AL;CANADIAN SYLLABICS CARRIER NE
+1605;AL;CANADIAN SYLLABICS CARRIER NEE
+1606;AL;CANADIAN SYLLABICS CARRIER NI
+1607;AL;CANADIAN SYLLABICS CARRIER NA
+1608;AL;CANADIAN SYLLABICS CARRIER MU
+1609;AL;CANADIAN SYLLABICS CARRIER MO
+160A;AL;CANADIAN SYLLABICS CARRIER ME
+160B;AL;CANADIAN SYLLABICS CARRIER MEE
+160C;AL;CANADIAN SYLLABICS CARRIER MI
+160D;AL;CANADIAN SYLLABICS CARRIER MA
+160E;AL;CANADIAN SYLLABICS CARRIER YU
+160F;AL;CANADIAN SYLLABICS CARRIER YO
+1610;AL;CANADIAN SYLLABICS CARRIER YE
+1611;AL;CANADIAN SYLLABICS CARRIER YEE
+1612;AL;CANADIAN SYLLABICS CARRIER YI
+1613;AL;CANADIAN SYLLABICS CARRIER YA
+1614;AL;CANADIAN SYLLABICS CARRIER JU
+1615;AL;CANADIAN SYLLABICS SAYISI JU
+1616;AL;CANADIAN SYLLABICS CARRIER JO
+1617;AL;CANADIAN SYLLABICS CARRIER JE
+1618;AL;CANADIAN SYLLABICS CARRIER JEE
+1619;AL;CANADIAN SYLLABICS CARRIER JI
+161A;AL;CANADIAN SYLLABICS SAYISI JI
+161B;AL;CANADIAN SYLLABICS CARRIER JA
+161C;AL;CANADIAN SYLLABICS CARRIER JJU
+161D;AL;CANADIAN SYLLABICS CARRIER JJO
+161E;AL;CANADIAN SYLLABICS CARRIER JJE
+161F;AL;CANADIAN SYLLABICS CARRIER JJEE
+1620;AL;CANADIAN SYLLABICS CARRIER JJI
+1621;AL;CANADIAN SYLLABICS CARRIER JJA
+1622;AL;CANADIAN SYLLABICS CARRIER LU
+1623;AL;CANADIAN SYLLABICS CARRIER LO
+1624;AL;CANADIAN SYLLABICS CARRIER LE
+1625;AL;CANADIAN SYLLABICS CARRIER LEE
+1626;AL;CANADIAN SYLLABICS CARRIER LI
+1627;AL;CANADIAN SYLLABICS CARRIER LA
+1628;AL;CANADIAN SYLLABICS CARRIER DLU
+1629;AL;CANADIAN SYLLABICS CARRIER DLO
+162A;AL;CANADIAN SYLLABICS CARRIER DLE
+162B;AL;CANADIAN SYLLABICS CARRIER DLEE
+162C;AL;CANADIAN SYLLABICS CARRIER DLI
+162D;AL;CANADIAN SYLLABICS CARRIER DLA
+162E;AL;CANADIAN SYLLABICS CARRIER LHU
+162F;AL;CANADIAN SYLLABICS CARRIER LHO
+1630;AL;CANADIAN SYLLABICS CARRIER LHE
+1631;AL;CANADIAN SYLLABICS CARRIER LHEE
+1632;AL;CANADIAN SYLLABICS CARRIER LHI
+1633;AL;CANADIAN SYLLABICS CARRIER LHA
+1634;AL;CANADIAN SYLLABICS CARRIER TLHU
+1635;AL;CANADIAN SYLLABICS CARRIER TLHO
+1636;AL;CANADIAN SYLLABICS CARRIER TLHE
+1637;AL;CANADIAN SYLLABICS CARRIER TLHEE
+1638;AL;CANADIAN SYLLABICS CARRIER TLHI
+1639;AL;CANADIAN SYLLABICS CARRIER TLHA
+163A;AL;CANADIAN SYLLABICS CARRIER TLU
+163B;AL;CANADIAN SYLLABICS CARRIER TLO
+163C;AL;CANADIAN SYLLABICS CARRIER TLE
+163D;AL;CANADIAN SYLLABICS CARRIER TLEE
+163E;AL;CANADIAN SYLLABICS CARRIER TLI
+163F;AL;CANADIAN SYLLABICS CARRIER TLA
+1640;AL;CANADIAN SYLLABICS CARRIER ZU
+1641;AL;CANADIAN SYLLABICS CARRIER ZO
+1642;AL;CANADIAN SYLLABICS CARRIER ZE
+1643;AL;CANADIAN SYLLABICS CARRIER ZEE
+1644;AL;CANADIAN SYLLABICS CARRIER ZI
+1645;AL;CANADIAN SYLLABICS CARRIER ZA
+1646;AL;CANADIAN SYLLABICS CARRIER Z
+1647;AL;CANADIAN SYLLABICS CARRIER INITIAL Z
+1648;AL;CANADIAN SYLLABICS CARRIER DZU
+1649;AL;CANADIAN SYLLABICS CARRIER DZO
+164A;AL;CANADIAN SYLLABICS CARRIER DZE
+164B;AL;CANADIAN SYLLABICS CARRIER DZEE
+164C;AL;CANADIAN SYLLABICS CARRIER DZI
+164D;AL;CANADIAN SYLLABICS CARRIER DZA
+164E;AL;CANADIAN SYLLABICS CARRIER SU
+164F;AL;CANADIAN SYLLABICS CARRIER SO
+1650;AL;CANADIAN SYLLABICS CARRIER SE
+1651;AL;CANADIAN SYLLABICS CARRIER SEE
+1652;AL;CANADIAN SYLLABICS CARRIER SI
+1653;AL;CANADIAN SYLLABICS CARRIER SA
+1654;AL;CANADIAN SYLLABICS CARRIER SHU
+1655;AL;CANADIAN SYLLABICS CARRIER SHO
+1656;AL;CANADIAN SYLLABICS CARRIER SHE
+1657;AL;CANADIAN SYLLABICS CARRIER SHEE
+1658;AL;CANADIAN SYLLABICS CARRIER SHI
+1659;AL;CANADIAN SYLLABICS CARRIER SHA
+165A;AL;CANADIAN SYLLABICS CARRIER SH
+165B;AL;CANADIAN SYLLABICS CARRIER TSU
+165C;AL;CANADIAN SYLLABICS CARRIER TSO
+165D;AL;CANADIAN SYLLABICS CARRIER TSE
+165E;AL;CANADIAN SYLLABICS CARRIER TSEE
+165F;AL;CANADIAN SYLLABICS CARRIER TSI
+1660;AL;CANADIAN SYLLABICS CARRIER TSA
+1661;AL;CANADIAN SYLLABICS CARRIER CHU
+1662;AL;CANADIAN SYLLABICS CARRIER CHO
+1663;AL;CANADIAN SYLLABICS CARRIER CHE
+1664;AL;CANADIAN SYLLABICS CARRIER CHEE
+1665;AL;CANADIAN SYLLABICS CARRIER CHI
+1666;AL;CANADIAN SYLLABICS CARRIER CHA
+1667;AL;CANADIAN SYLLABICS CARRIER TTSU
+1668;AL;CANADIAN SYLLABICS CARRIER TTSO
+1669;AL;CANADIAN SYLLABICS CARRIER TTSE
+166A;AL;CANADIAN SYLLABICS CARRIER TTSEE
+166B;AL;CANADIAN SYLLABICS CARRIER TTSI
+166C;AL;CANADIAN SYLLABICS CARRIER TTSA
+166D;AL;CANADIAN SYLLABICS CHI SIGN
+166E;AL;CANADIAN SYLLABICS FULL STOP
+166F;AL;CANADIAN SYLLABICS QAI
+1670;AL;CANADIAN SYLLABICS NGAI
+1671;AL;CANADIAN SYLLABICS NNGI
+1672;AL;CANADIAN SYLLABICS NNGII
+1673;AL;CANADIAN SYLLABICS NNGO
+1674;AL;CANADIAN SYLLABICS NNGOO
+1675;AL;CANADIAN SYLLABICS NNGA
+1676;AL;CANADIAN SYLLABICS NNGAA
+1680;BA;OGHAM SPACE MARK
+1681;AL;OGHAM LETTER BEITH
+1682;AL;OGHAM LETTER LUIS
+1683;AL;OGHAM LETTER FEARN
+1684;AL;OGHAM LETTER SAIL
+1685;AL;OGHAM LETTER NION
+1686;AL;OGHAM LETTER UATH
+1687;AL;OGHAM LETTER DAIR
+1688;AL;OGHAM LETTER TINNE
+1689;AL;OGHAM LETTER COLL
+168A;AL;OGHAM LETTER CEIRT
+168B;AL;OGHAM LETTER MUIN
+168C;AL;OGHAM LETTER GORT
+168D;AL;OGHAM LETTER NGEADAL
+168E;AL;OGHAM LETTER STRAIF
+168F;AL;OGHAM LETTER RUIS
+1690;AL;OGHAM LETTER AILM
+1691;AL;OGHAM LETTER ONN
+1692;AL;OGHAM LETTER UR
+1693;AL;OGHAM LETTER EADHADH
+1694;AL;OGHAM LETTER IODHADH
+1695;AL;OGHAM LETTER EABHADH
+1696;AL;OGHAM LETTER OR
+1697;AL;OGHAM LETTER UILLEANN
+1698;AL;OGHAM LETTER IFIN
+1699;AL;OGHAM LETTER EAMHANCHOLL
+169A;AL;OGHAM LETTER PEITH
+169B;OP;OGHAM FEATHER MARK
+169C;CL;OGHAM REVERSED FEATHER MARK
+16A0;AL;RUNIC LETTER FEHU FEOH FE F
+16A1;AL;RUNIC LETTER V
+16A2;AL;RUNIC LETTER URUZ UR U
+16A3;AL;RUNIC LETTER YR
+16A4;AL;RUNIC LETTER Y
+16A5;AL;RUNIC LETTER W
+16A6;AL;RUNIC LETTER THURISAZ THURS THORN
+16A7;AL;RUNIC LETTER ETH
+16A8;AL;RUNIC LETTER ANSUZ A
+16A9;AL;RUNIC LETTER OS O
+16AA;AL;RUNIC LETTER AC A
+16AB;AL;RUNIC LETTER AESC
+16AC;AL;RUNIC LETTER LONG-BRANCH-OSS O
+16AD;AL;RUNIC LETTER SHORT-TWIG-OSS O
+16AE;AL;RUNIC LETTER O
+16AF;AL;RUNIC LETTER OE
+16B0;AL;RUNIC LETTER ON
+16B1;AL;RUNIC LETTER RAIDO RAD REID R
+16B2;AL;RUNIC LETTER KAUNA
+16B3;AL;RUNIC LETTER CEN
+16B4;AL;RUNIC LETTER KAUN K
+16B5;AL;RUNIC LETTER G
+16B6;AL;RUNIC LETTER ENG
+16B7;AL;RUNIC LETTER GEBO GYFU G
+16B8;AL;RUNIC LETTER GAR
+16B9;AL;RUNIC LETTER WUNJO WYNN W
+16BA;AL;RUNIC LETTER HAGLAZ H
+16BB;AL;RUNIC LETTER HAEGL H
+16BC;AL;RUNIC LETTER LONG-BRANCH-HAGALL H
+16BD;AL;RUNIC LETTER SHORT-TWIG-HAGALL H
+16BE;AL;RUNIC LETTER NAUDIZ NYD NAUD N
+16BF;AL;RUNIC LETTER SHORT-TWIG-NAUD N
+16C0;AL;RUNIC LETTER DOTTED-N
+16C1;AL;RUNIC LETTER ISAZ IS ISS I
+16C2;AL;RUNIC LETTER E
+16C3;AL;RUNIC LETTER JERAN J
+16C4;AL;RUNIC LETTER GER
+16C5;AL;RUNIC LETTER LONG-BRANCH-AR AE
+16C6;AL;RUNIC LETTER SHORT-TWIG-AR A
+16C7;AL;RUNIC LETTER IWAZ EOH
+16C8;AL;RUNIC LETTER PERTHO PEORTH P
+16C9;AL;RUNIC LETTER ALGIZ EOLHX
+16CA;AL;RUNIC LETTER SOWILO S
+16CB;AL;RUNIC LETTER SIGEL LONG-BRANCH-SOL S
+16CC;AL;RUNIC LETTER SHORT-TWIG-SOL S
+16CD;AL;RUNIC LETTER C
+16CE;AL;RUNIC LETTER Z
+16CF;AL;RUNIC LETTER TIWAZ TIR TYR T
+16D0;AL;RUNIC LETTER SHORT-TWIG-TYR T
+16D1;AL;RUNIC LETTER D
+16D2;AL;RUNIC LETTER BERKANAN BEORC BJARKAN B
+16D3;AL;RUNIC LETTER SHORT-TWIG-BJARKAN B
+16D4;AL;RUNIC LETTER DOTTED-P
+16D5;AL;RUNIC LETTER OPEN-P
+16D6;AL;RUNIC LETTER EHWAZ EH E
+16D7;AL;RUNIC LETTER MANNAZ MAN M
+16D8;AL;RUNIC LETTER LONG-BRANCH-MADR M
+16D9;AL;RUNIC LETTER SHORT-TWIG-MADR M
+16DA;AL;RUNIC LETTER LAUKAZ LAGU LOGR L
+16DB;AL;RUNIC LETTER DOTTED-L
+16DC;AL;RUNIC LETTER INGWAZ
+16DD;AL;RUNIC LETTER ING
+16DE;AL;RUNIC LETTER DAGAZ DAEG D
+16DF;AL;RUNIC LETTER OTHALAN ETHEL O
+16E0;AL;RUNIC LETTER EAR
+16E1;AL;RUNIC LETTER IOR
+16E2;AL;RUNIC LETTER CWEORTH
+16E3;AL;RUNIC LETTER CALC
+16E4;AL;RUNIC LETTER CEALC
+16E5;AL;RUNIC LETTER STAN
+16E6;AL;RUNIC LETTER LONG-BRANCH-YR
+16E7;AL;RUNIC LETTER SHORT-TWIG-YR
+16E8;AL;RUNIC LETTER ICELANDIC-YR
+16E9;AL;RUNIC LETTER Q
+16EA;AL;RUNIC LETTER X
+16EB;AL;RUNIC SINGLE PUNCTUATION
+16EC;AL;RUNIC MULTIPLE PUNCTUATION
+16ED;AL;RUNIC CROSS PUNCTUATION
+16EE;AL;RUNIC ARLAUG SYMBOL
+16EF;AL;RUNIC TVIMADUR SYMBOL
+16F0;AL;RUNIC BELGTHOR SYMBOL
+1780;SA;KHMER LETTER KA
+1781;SA;KHMER LETTER KHA
+1782;SA;KHMER LETTER KO
+1783;SA;KHMER LETTER KHO
+1784;SA;KHMER LETTER NGO
+1785;SA;KHMER LETTER CA
+1786;SA;KHMER LETTER CHA
+1787;SA;KHMER LETTER CO
+1788;SA;KHMER LETTER CHO
+1789;SA;KHMER LETTER NYO
+178A;SA;KHMER LETTER DA
+178B;SA;KHMER LETTER TTHA
+178C;SA;KHMER LETTER DO
+178D;SA;KHMER LETTER TTHO
+178E;SA;KHMER LETTER NNO
+178F;SA;KHMER LETTER TA
+1790;SA;KHMER LETTER THA
+1791;SA;KHMER LETTER TO
+1792;SA;KHMER LETTER THO
+1793;SA;KHMER LETTER NO
+1794;SA;KHMER LETTER BA
+1795;SA;KHMER LETTER PHA
+1796;SA;KHMER LETTER PO
+1797;SA;KHMER LETTER PHO
+1798;SA;KHMER LETTER MO
+1799;SA;KHMER LETTER YO
+179A;SA;KHMER LETTER RO
+179B;SA;KHMER LETTER LO
+179C;SA;KHMER LETTER VO
+179D;SA;KHMER LETTER SHA
+179E;SA;KHMER LETTER SSO
+179F;SA;KHMER LETTER SA
+17A0;SA;KHMER LETTER HA
+17A1;SA;KHMER LETTER LA
+17A2;SA;KHMER LETTER QA
+17A3;SA;KHMER INDEPENDENT VOWEL QAQ
+17A4;SA;KHMER INDEPENDENT VOWEL QAA
+17A5;SA;KHMER INDEPENDENT VOWEL QI
+17A6;SA;KHMER INDEPENDENT VOWEL QII
+17A7;SA;KHMER INDEPENDENT VOWEL QU
+17A8;SA;KHMER INDEPENDENT VOWEL QUK
+17A9;SA;KHMER INDEPENDENT VOWEL QUU
+17AA;SA;KHMER INDEPENDENT VOWEL QUUV
+17AB;SA;KHMER INDEPENDENT VOWEL RY
+17AC;SA;KHMER INDEPENDENT VOWEL RYY
+17AD;SA;KHMER INDEPENDENT VOWEL LY
+17AE;SA;KHMER INDEPENDENT VOWEL LYY
+17AF;SA;KHMER INDEPENDENT VOWEL QE
+17B0;SA;KHMER INDEPENDENT VOWEL QAI
+17B1;SA;KHMER INDEPENDENT VOWEL QOO TYPE ONE
+17B2;SA;KHMER INDEPENDENT VOWEL QOO TYPE TWO
+17B3;SA;KHMER INDEPENDENT VOWEL QAU
+17B4;CM;KHMER VOWEL INHERENT AQ
+17B5;CM;KHMER VOWEL INHERENT AA
+17B6;CM;KHMER VOWEL SIGN AA
+17B7;CM;KHMER VOWEL SIGN I
+17B8;CM;KHMER VOWEL SIGN II
+17B9;CM;KHMER VOWEL SIGN Y
+17BA;CM;KHMER VOWEL SIGN YY
+17BB;CM;KHMER VOWEL SIGN U
+17BC;CM;KHMER VOWEL SIGN UU
+17BD;CM;KHMER VOWEL SIGN UA
+17BE;CM;KHMER VOWEL SIGN OE
+17BF;CM;KHMER VOWEL SIGN YA
+17C0;CM;KHMER VOWEL SIGN IE
+17C1;CM;KHMER VOWEL SIGN E
+17C2;CM;KHMER VOWEL SIGN AE
+17C3;CM;KHMER VOWEL SIGN AI
+17C4;CM;KHMER VOWEL SIGN OO
+17C5;CM;KHMER VOWEL SIGN AU
+17C6;CM;KHMER SIGN NIKAHIT
+17C7;CM;KHMER SIGN REAHMUK
+17C8;CM;KHMER SIGN YUUKALEAPINTU
+17C9;CM;KHMER SIGN MUUSIKATOAN
+17CA;CM;KHMER SIGN TRIISAP
+17CB;CM;KHMER SIGN BANTOC
+17CC;CM;KHMER SIGN ROBAT
+17CD;CM;KHMER SIGN TOANDAKHIAT
+17CE;CM;KHMER SIGN KAKABAT
+17CF;CM;KHMER SIGN AHSDA
+17D0;CM;KHMER SIGN SAMYOK SANNYA
+17D1;CM;KHMER SIGN VIRIAM
+17D2;CM;KHMER SIGN COENG
+17D3;CM;KHMER SIGN BATHAMASAT
+17D4;NS;KHMER SIGN KHAN
+17D5;BA;KHMER SIGN BARIYOOSAN
+17D6;NS;KHMER SIGN CAMNUC PII KUUH
+17D7;NS;KHMER SIGN LEK TOO
+17D8;NS;KHMER SIGN BEYYAL
+17D9;NS;KHMER SIGN PHNAEK MUAN
+17DA;NS;KHMER SIGN KOOMUUT
+17DB;PR;KHMER CURRENCY SYMBOL RIEL
+17DC;AL;KHMER SIGN AVAKRAHASANYA
+17E0;NU;KHMER DIGIT ZERO
+17E1;NU;KHMER DIGIT ONE
+17E2;NU;KHMER DIGIT TWO
+17E3;NU;KHMER DIGIT THREE
+17E4;NU;KHMER DIGIT FOUR
+17E5;NU;KHMER DIGIT FIVE
+17E6;NU;KHMER DIGIT SIX
+17E7;NU;KHMER DIGIT SEVEN
+17E8;NU;KHMER DIGIT EIGHT
+17E9;NU;KHMER DIGIT NINE
+1800;AL;MONGOLIAN BIRGA
+1801;AL;MONGOLIAN ELLIPSIS
+1802;AL;MONGOLIAN COMMA
+1803;AL;MONGOLIAN FULL STOP
+1804;AL;MONGOLIAN COLON
+1805;AL;MONGOLIAN FOUR DOTS
+1806;BB;MONGOLIAN TODO SOFT HYPHEN
+1807;AL;MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER
+1808;AL;MONGOLIAN MANCHU COMMA
+1809;AL;MONGOLIAN MANCHU FULL STOP
+180A;AL;MONGOLIAN NIRUGU
+180B;CM;MONGOLIAN FREE VARIATION SELECTOR ONE
+180C;CM;MONGOLIAN FREE VARIATION SELECTOR TWO
+180D;CM;MONGOLIAN FREE VARIATION SELECTOR THREE
+180E;CM;MONGOLIAN VOWEL SEPARATOR
+1810;NU;MONGOLIAN DIGIT ZERO
+1811;NU;MONGOLIAN DIGIT ONE
+1812;NU;MONGOLIAN DIGIT TWO
+1813;NU;MONGOLIAN DIGIT THREE
+1814;NU;MONGOLIAN DIGIT FOUR
+1815;NU;MONGOLIAN DIGIT FIVE
+1816;NU;MONGOLIAN DIGIT SIX
+1817;NU;MONGOLIAN DIGIT SEVEN
+1818;NU;MONGOLIAN DIGIT EIGHT
+1819;NU;MONGOLIAN DIGIT NINE
+1820;AL;MONGOLIAN LETTER A
+1821;AL;MONGOLIAN LETTER E
+1822;AL;MONGOLIAN LETTER I
+1823;AL;MONGOLIAN LETTER O
+1824;AL;MONGOLIAN LETTER U
+1825;AL;MONGOLIAN LETTER OE
+1826;AL;MONGOLIAN LETTER UE
+1827;AL;MONGOLIAN LETTER EE
+1828;AL;MONGOLIAN LETTER NA
+1829;AL;MONGOLIAN LETTER ANG
+182A;AL;MONGOLIAN LETTER BA
+182B;AL;MONGOLIAN LETTER PA
+182C;AL;MONGOLIAN LETTER QA
+182D;AL;MONGOLIAN LETTER GA
+182E;AL;MONGOLIAN LETTER MA
+182F;AL;MONGOLIAN LETTER LA
+1830;AL;MONGOLIAN LETTER SA
+1831;AL;MONGOLIAN LETTER SHA
+1832;AL;MONGOLIAN LETTER TA
+1833;AL;MONGOLIAN LETTER DA
+1834;AL;MONGOLIAN LETTER CHA
+1835;AL;MONGOLIAN LETTER JA
+1836;AL;MONGOLIAN LETTER YA
+1837;AL;MONGOLIAN LETTER RA
+1838;AL;MONGOLIAN LETTER WA
+1839;AL;MONGOLIAN LETTER FA
+183A;AL;MONGOLIAN LETTER KA
+183B;AL;MONGOLIAN LETTER KHA
+183C;AL;MONGOLIAN LETTER TSA
+183D;AL;MONGOLIAN LETTER ZA
+183E;AL;MONGOLIAN LETTER HAA
+183F;AL;MONGOLIAN LETTER ZRA
+1840;AL;MONGOLIAN LETTER LHA
+1841;AL;MONGOLIAN LETTER ZHI
+1842;AL;MONGOLIAN LETTER CHI
+1843;AL;MONGOLIAN LETTER TODO LONG VOWEL SIGN
+1844;AL;MONGOLIAN LETTER TODO E
+1845;AL;MONGOLIAN LETTER TODO I
+1846;AL;MONGOLIAN LETTER TODO O
+1847;AL;MONGOLIAN LETTER TODO U
+1848;AL;MONGOLIAN LETTER TODO OE
+1849;AL;MONGOLIAN LETTER TODO UE
+184A;AL;MONGOLIAN LETTER TODO ANG
+184B;AL;MONGOLIAN LETTER TODO BA
+184C;AL;MONGOLIAN LETTER TODO PA
+184D;AL;MONGOLIAN LETTER TODO QA
+184E;AL;MONGOLIAN LETTER TODO GA
+184F;AL;MONGOLIAN LETTER TODO MA
+1850;AL;MONGOLIAN LETTER TODO TA
+1851;AL;MONGOLIAN LETTER TODO DA
+1852;AL;MONGOLIAN LETTER TODO CHA
+1853;AL;MONGOLIAN LETTER TODO JA
+1854;AL;MONGOLIAN LETTER TODO TSA
+1855;AL;MONGOLIAN LETTER TODO YA
+1856;AL;MONGOLIAN LETTER TODO WA
+1857;AL;MONGOLIAN LETTER TODO KA
+1858;AL;MONGOLIAN LETTER TODO GAA
+1859;AL;MONGOLIAN LETTER TODO HAA
+185A;AL;MONGOLIAN LETTER TODO JIA
+185B;AL;MONGOLIAN LETTER TODO NIA
+185C;AL;MONGOLIAN LETTER TODO DZA
+185D;AL;MONGOLIAN LETTER SIBE E
+185E;AL;MONGOLIAN LETTER SIBE I
+185F;AL;MONGOLIAN LETTER SIBE IY
+1860;AL;MONGOLIAN LETTER SIBE UE
+1861;AL;MONGOLIAN LETTER SIBE U
+1862;AL;MONGOLIAN LETTER SIBE ANG
+1863;AL;MONGOLIAN LETTER SIBE KA
+1864;AL;MONGOLIAN LETTER SIBE GA
+1865;AL;MONGOLIAN LETTER SIBE HA
+1866;AL;MONGOLIAN LETTER SIBE PA
+1867;AL;MONGOLIAN LETTER SIBE SHA
+1868;AL;MONGOLIAN LETTER SIBE TA
+1869;AL;MONGOLIAN LETTER SIBE DA
+186A;AL;MONGOLIAN LETTER SIBE JA
+186B;AL;MONGOLIAN LETTER SIBE FA
+186C;AL;MONGOLIAN LETTER SIBE GAA
+186D;AL;MONGOLIAN LETTER SIBE HAA
+186E;AL;MONGOLIAN LETTER SIBE TSA
+186F;AL;MONGOLIAN LETTER SIBE ZA
+1870;AL;MONGOLIAN LETTER SIBE RAA
+1871;AL;MONGOLIAN LETTER SIBE CHA
+1872;AL;MONGOLIAN LETTER SIBE ZHA
+1873;AL;MONGOLIAN LETTER MANCHU I
+1874;AL;MONGOLIAN LETTER MANCHU KA
+1875;AL;MONGOLIAN LETTER MANCHU RA
+1876;AL;MONGOLIAN LETTER MANCHU FA
+1877;AL;MONGOLIAN LETTER MANCHU ZHA
+1880;AL;MONGOLIAN LETTER ALI GALI ANUSVARA ONE
+1881;AL;MONGOLIAN LETTER ALI GALI VISARGA ONE
+1882;AL;MONGOLIAN LETTER ALI GALI DAMARU
+1883;AL;MONGOLIAN LETTER ALI GALI UBADAMA
+1884;AL;MONGOLIAN LETTER ALI GALI INVERTED UBADAMA
+1885;AL;MONGOLIAN LETTER ALI GALI BALUDA
+1886;AL;MONGOLIAN LETTER ALI GALI THREE BALUDA
+1887;AL;MONGOLIAN LETTER ALI GALI A
+1888;AL;MONGOLIAN LETTER ALI GALI I
+1889;AL;MONGOLIAN LETTER ALI GALI KA
+188A;AL;MONGOLIAN LETTER ALI GALI NGA
+188B;AL;MONGOLIAN LETTER ALI GALI CA
+188C;AL;MONGOLIAN LETTER ALI GALI TTA
+188D;AL;MONGOLIAN LETTER ALI GALI TTHA
+188E;AL;MONGOLIAN LETTER ALI GALI DDA
+188F;AL;MONGOLIAN LETTER ALI GALI NNA
+1890;AL;MONGOLIAN LETTER ALI GALI TA
+1891;AL;MONGOLIAN LETTER ALI GALI DA
+1892;AL;MONGOLIAN LETTER ALI GALI PA
+1893;AL;MONGOLIAN LETTER ALI GALI PHA
+1894;AL;MONGOLIAN LETTER ALI GALI SSA
+1895;AL;MONGOLIAN LETTER ALI GALI ZHA
+1896;AL;MONGOLIAN LETTER ALI GALI ZA
+1897;AL;MONGOLIAN LETTER ALI GALI AH
+1898;AL;MONGOLIAN LETTER TODO ALI GALI TA
+1899;AL;MONGOLIAN LETTER TODO ALI GALI ZHA
+189A;AL;MONGOLIAN LETTER MANCHU ALI GALI GHA
+189B;AL;MONGOLIAN LETTER MANCHU ALI GALI NGA
+189C;AL;MONGOLIAN LETTER MANCHU ALI GALI CA
+189D;AL;MONGOLIAN LETTER MANCHU ALI GALI JHA
+189E;AL;MONGOLIAN LETTER MANCHU ALI GALI TTA
+189F;AL;MONGOLIAN LETTER MANCHU ALI GALI DDHA
+18A0;AL;MONGOLIAN LETTER MANCHU ALI GALI TA
+18A1;AL;MONGOLIAN LETTER MANCHU ALI GALI DHA
+18A2;AL;MONGOLIAN LETTER MANCHU ALI GALI SSA
+18A3;AL;MONGOLIAN LETTER MANCHU ALI GALI CYA
+18A4;AL;MONGOLIAN LETTER MANCHU ALI GALI ZHA
+18A5;AL;MONGOLIAN LETTER MANCHU ALI GALI ZA
+18A6;AL;MONGOLIAN LETTER ALI GALI HALF U
+18A7;AL;MONGOLIAN LETTER ALI GALI HALF YA
+18A8;AL;MONGOLIAN LETTER MANCHU ALI GALI BHA
+18A9;CM;MONGOLIAN LETTER ALI GALI DAGALGA
+1E00;AL;LATIN CAPITAL LETTER A WITH RING BELOW
+1E01;AL;LATIN SMALL LETTER A WITH RING BELOW
+1E02;AL;LATIN CAPITAL LETTER B WITH DOT ABOVE
+1E03;AL;LATIN SMALL LETTER B WITH DOT ABOVE
+1E04;AL;LATIN CAPITAL LETTER B WITH DOT BELOW
+1E05;AL;LATIN SMALL LETTER B WITH DOT BELOW
+1E06;AL;LATIN CAPITAL LETTER B WITH LINE BELOW
+1E07;AL;LATIN SMALL LETTER B WITH LINE BELOW
+1E08;AL;LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+1E09;AL;LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+1E0A;AL;LATIN CAPITAL LETTER D WITH DOT ABOVE
+1E0B;AL;LATIN SMALL LETTER D WITH DOT ABOVE
+1E0C;AL;LATIN CAPITAL LETTER D WITH DOT BELOW
+1E0D;AL;LATIN SMALL LETTER D WITH DOT BELOW
+1E0E;AL;LATIN CAPITAL LETTER D WITH LINE BELOW
+1E0F;AL;LATIN SMALL LETTER D WITH LINE BELOW
+1E10;AL;LATIN CAPITAL LETTER D WITH CEDILLA
+1E11;AL;LATIN SMALL LETTER D WITH CEDILLA
+1E12;AL;LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW
+1E13;AL;LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW
+1E14;AL;LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+1E15;AL;LATIN SMALL LETTER E WITH MACRON AND GRAVE
+1E16;AL;LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+1E17;AL;LATIN SMALL LETTER E WITH MACRON AND ACUTE
+1E18;AL;LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
+1E19;AL;LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW
+1E1A;AL;LATIN CAPITAL LETTER E WITH TILDE BELOW
+1E1B;AL;LATIN SMALL LETTER E WITH TILDE BELOW
+1E1C;AL;LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+1E1D;AL;LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+1E1E;AL;LATIN CAPITAL LETTER F WITH DOT ABOVE
+1E1F;AL;LATIN SMALL LETTER F WITH DOT ABOVE
+1E20;AL;LATIN CAPITAL LETTER G WITH MACRON
+1E21;AL;LATIN SMALL LETTER G WITH MACRON
+1E22;AL;LATIN CAPITAL LETTER H WITH DOT ABOVE
+1E23;AL;LATIN SMALL LETTER H WITH DOT ABOVE
+1E24;AL;LATIN CAPITAL LETTER H WITH DOT BELOW
+1E25;AL;LATIN SMALL LETTER H WITH DOT BELOW
+1E26;AL;LATIN CAPITAL LETTER H WITH DIAERESIS
+1E27;AL;LATIN SMALL LETTER H WITH DIAERESIS
+1E28;AL;LATIN CAPITAL LETTER H WITH CEDILLA
+1E29;AL;LATIN SMALL LETTER H WITH CEDILLA
+1E2A;AL;LATIN CAPITAL LETTER H WITH BREVE BELOW
+1E2B;AL;LATIN SMALL LETTER H WITH BREVE BELOW
+1E2C;AL;LATIN CAPITAL LETTER I WITH TILDE BELOW
+1E2D;AL;LATIN SMALL LETTER I WITH TILDE BELOW
+1E2E;AL;LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+1E2F;AL;LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+1E30;AL;LATIN CAPITAL LETTER K WITH ACUTE
+1E31;AL;LATIN SMALL LETTER K WITH ACUTE
+1E32;AL;LATIN CAPITAL LETTER K WITH DOT BELOW
+1E33;AL;LATIN SMALL LETTER K WITH DOT BELOW
+1E34;AL;LATIN CAPITAL LETTER K WITH LINE BELOW
+1E35;AL;LATIN SMALL LETTER K WITH LINE BELOW
+1E36;AL;LATIN CAPITAL LETTER L WITH DOT BELOW
+1E37;AL;LATIN SMALL LETTER L WITH DOT BELOW
+1E38;AL;LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+1E39;AL;LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+1E3A;AL;LATIN CAPITAL LETTER L WITH LINE BELOW
+1E3B;AL;LATIN SMALL LETTER L WITH LINE BELOW
+1E3C;AL;LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW
+1E3D;AL;LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW
+1E3E;AL;LATIN CAPITAL LETTER M WITH ACUTE
+1E3F;AL;LATIN SMALL LETTER M WITH ACUTE
+1E40;AL;LATIN CAPITAL LETTER M WITH DOT ABOVE
+1E41;AL;LATIN SMALL LETTER M WITH DOT ABOVE
+1E42;AL;LATIN CAPITAL LETTER M WITH DOT BELOW
+1E43;AL;LATIN SMALL LETTER M WITH DOT BELOW
+1E44;AL;LATIN CAPITAL LETTER N WITH DOT ABOVE
+1E45;AL;LATIN SMALL LETTER N WITH DOT ABOVE
+1E46;AL;LATIN CAPITAL LETTER N WITH DOT BELOW
+1E47;AL;LATIN SMALL LETTER N WITH DOT BELOW
+1E48;AL;LATIN CAPITAL LETTER N WITH LINE BELOW
+1E49;AL;LATIN SMALL LETTER N WITH LINE BELOW
+1E4A;AL;LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW
+1E4B;AL;LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW
+1E4C;AL;LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+1E4D;AL;LATIN SMALL LETTER O WITH TILDE AND ACUTE
+1E4E;AL;LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+1E4F;AL;LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
+1E50;AL;LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+1E51;AL;LATIN SMALL LETTER O WITH MACRON AND GRAVE
+1E52;AL;LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+1E53;AL;LATIN SMALL LETTER O WITH MACRON AND ACUTE
+1E54;AL;LATIN CAPITAL LETTER P WITH ACUTE
+1E55;AL;LATIN SMALL LETTER P WITH ACUTE
+1E56;AL;LATIN CAPITAL LETTER P WITH DOT ABOVE
+1E57;AL;LATIN SMALL LETTER P WITH DOT ABOVE
+1E58;AL;LATIN CAPITAL LETTER R WITH DOT ABOVE
+1E59;AL;LATIN SMALL LETTER R WITH DOT ABOVE
+1E5A;AL;LATIN CAPITAL LETTER R WITH DOT BELOW
+1E5B;AL;LATIN SMALL LETTER R WITH DOT BELOW
+1E5C;AL;LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+1E5D;AL;LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+1E5E;AL;LATIN CAPITAL LETTER R WITH LINE BELOW
+1E5F;AL;LATIN SMALL LETTER R WITH LINE BELOW
+1E60;AL;LATIN CAPITAL LETTER S WITH DOT ABOVE
+1E61;AL;LATIN SMALL LETTER S WITH DOT ABOVE
+1E62;AL;LATIN CAPITAL LETTER S WITH DOT BELOW
+1E63;AL;LATIN SMALL LETTER S WITH DOT BELOW
+1E64;AL;LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+1E65;AL;LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
+1E66;AL;LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
+1E67;AL;LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
+1E68;AL;LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
+1E69;AL;LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
+1E6A;AL;LATIN CAPITAL LETTER T WITH DOT ABOVE
+1E6B;AL;LATIN SMALL LETTER T WITH DOT ABOVE
+1E6C;AL;LATIN CAPITAL LETTER T WITH DOT BELOW
+1E6D;AL;LATIN SMALL LETTER T WITH DOT BELOW
+1E6E;AL;LATIN CAPITAL LETTER T WITH LINE BELOW
+1E6F;AL;LATIN SMALL LETTER T WITH LINE BELOW
+1E70;AL;LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW
+1E71;AL;LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW
+1E72;AL;LATIN CAPITAL LETTER U WITH DIAERESIS BELOW
+1E73;AL;LATIN SMALL LETTER U WITH DIAERESIS BELOW
+1E74;AL;LATIN CAPITAL LETTER U WITH TILDE BELOW
+1E75;AL;LATIN SMALL LETTER U WITH TILDE BELOW
+1E76;AL;LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW
+1E77;AL;LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW
+1E78;AL;LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+1E79;AL;LATIN SMALL LETTER U WITH TILDE AND ACUTE
+1E7A;AL;LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
+1E7B;AL;LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
+1E7C;AL;LATIN CAPITAL LETTER V WITH TILDE
+1E7D;AL;LATIN SMALL LETTER V WITH TILDE
+1E7E;AL;LATIN CAPITAL LETTER V WITH DOT BELOW
+1E7F;AL;LATIN SMALL LETTER V WITH DOT BELOW
+1E80;AL;LATIN CAPITAL LETTER W WITH GRAVE
+1E81;AL;LATIN SMALL LETTER W WITH GRAVE
+1E82;AL;LATIN CAPITAL LETTER W WITH ACUTE
+1E83;AL;LATIN SMALL LETTER W WITH ACUTE
+1E84;AL;LATIN CAPITAL LETTER W WITH DIAERESIS
+1E85;AL;LATIN SMALL LETTER W WITH DIAERESIS
+1E86;AL;LATIN CAPITAL LETTER W WITH DOT ABOVE
+1E87;AL;LATIN SMALL LETTER W WITH DOT ABOVE
+1E88;AL;LATIN CAPITAL LETTER W WITH DOT BELOW
+1E89;AL;LATIN SMALL LETTER W WITH DOT BELOW
+1E8A;AL;LATIN CAPITAL LETTER X WITH DOT ABOVE
+1E8B;AL;LATIN SMALL LETTER X WITH DOT ABOVE
+1E8C;AL;LATIN CAPITAL LETTER X WITH DIAERESIS
+1E8D;AL;LATIN SMALL LETTER X WITH DIAERESIS
+1E8E;AL;LATIN CAPITAL LETTER Y WITH DOT ABOVE
+1E8F;AL;LATIN SMALL LETTER Y WITH DOT ABOVE
+1E90;AL;LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
+1E91;AL;LATIN SMALL LETTER Z WITH CIRCUMFLEX
+1E92;AL;LATIN CAPITAL LETTER Z WITH DOT BELOW
+1E93;AL;LATIN SMALL LETTER Z WITH DOT BELOW
+1E94;AL;LATIN CAPITAL LETTER Z WITH LINE BELOW
+1E95;AL;LATIN SMALL LETTER Z WITH LINE BELOW
+1E96;AL;LATIN SMALL LETTER H WITH LINE BELOW
+1E97;AL;LATIN SMALL LETTER T WITH DIAERESIS
+1E98;AL;LATIN SMALL LETTER W WITH RING ABOVE
+1E99;AL;LATIN SMALL LETTER Y WITH RING ABOVE
+1E9A;AL;LATIN SMALL LETTER A WITH RIGHT HALF RING
+1E9B;AL;LATIN SMALL LETTER LONG S WITH DOT ABOVE
+1EA0;AL;LATIN CAPITAL LETTER A WITH DOT BELOW
+1EA1;AL;LATIN SMALL LETTER A WITH DOT BELOW
+1EA2;AL;LATIN CAPITAL LETTER A WITH HOOK ABOVE
+1EA3;AL;LATIN SMALL LETTER A WITH HOOK ABOVE
+1EA4;AL;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+1EA5;AL;LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+1EA6;AL;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+1EA7;AL;LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+1EA8;AL;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+1EA9;AL;LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+1EAA;AL;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+1EAB;AL;LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+1EAC;AL;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+1EAD;AL;LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+1EAE;AL;LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+1EAF;AL;LATIN SMALL LETTER A WITH BREVE AND ACUTE
+1EB0;AL;LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+1EB1;AL;LATIN SMALL LETTER A WITH BREVE AND GRAVE
+1EB2;AL;LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+1EB3;AL;LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+1EB4;AL;LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+1EB5;AL;LATIN SMALL LETTER A WITH BREVE AND TILDE
+1EB6;AL;LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+1EB7;AL;LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+1EB8;AL;LATIN CAPITAL LETTER E WITH DOT BELOW
+1EB9;AL;LATIN SMALL LETTER E WITH DOT BELOW
+1EBA;AL;LATIN CAPITAL LETTER E WITH HOOK ABOVE
+1EBB;AL;LATIN SMALL LETTER E WITH HOOK ABOVE
+1EBC;AL;LATIN CAPITAL LETTER E WITH TILDE
+1EBD;AL;LATIN SMALL LETTER E WITH TILDE
+1EBE;AL;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EBF;AL;LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EC0;AL;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC1;AL;LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC2;AL;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC3;AL;LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC4;AL;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC5;AL;LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC6;AL;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC7;AL;LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC8;AL;LATIN CAPITAL LETTER I WITH HOOK ABOVE
+1EC9;AL;LATIN SMALL LETTER I WITH HOOK ABOVE
+1ECA;AL;LATIN CAPITAL LETTER I WITH DOT BELOW
+1ECB;AL;LATIN SMALL LETTER I WITH DOT BELOW
+1ECC;AL;LATIN CAPITAL LETTER O WITH DOT BELOW
+1ECD;AL;LATIN SMALL LETTER O WITH DOT BELOW
+1ECE;AL;LATIN CAPITAL LETTER O WITH HOOK ABOVE
+1ECF;AL;LATIN SMALL LETTER O WITH HOOK ABOVE
+1ED0;AL;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED1;AL;LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED2;AL;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED3;AL;LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED4;AL;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED5;AL;LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED6;AL;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED7;AL;LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED8;AL;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1ED9;AL;LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1EDA;AL;LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+1EDB;AL;LATIN SMALL LETTER O WITH HORN AND ACUTE
+1EDC;AL;LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+1EDD;AL;LATIN SMALL LETTER O WITH HORN AND GRAVE
+1EDE;AL;LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+1EDF;AL;LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+1EE0;AL;LATIN CAPITAL LETTER O WITH HORN AND TILDE
+1EE1;AL;LATIN SMALL LETTER O WITH HORN AND TILDE
+1EE2;AL;LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+1EE3;AL;LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+1EE4;AL;LATIN CAPITAL LETTER U WITH DOT BELOW
+1EE5;AL;LATIN SMALL LETTER U WITH DOT BELOW
+1EE6;AL;LATIN CAPITAL LETTER U WITH HOOK ABOVE
+1EE7;AL;LATIN SMALL LETTER U WITH HOOK ABOVE
+1EE8;AL;LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+1EE9;AL;LATIN SMALL LETTER U WITH HORN AND ACUTE
+1EEA;AL;LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+1EEB;AL;LATIN SMALL LETTER U WITH HORN AND GRAVE
+1EEC;AL;LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+1EED;AL;LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+1EEE;AL;LATIN CAPITAL LETTER U WITH HORN AND TILDE
+1EEF;AL;LATIN SMALL LETTER U WITH HORN AND TILDE
+1EF0;AL;LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+1EF1;AL;LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+1EF2;AL;LATIN CAPITAL LETTER Y WITH GRAVE
+1EF3;AL;LATIN SMALL LETTER Y WITH GRAVE
+1EF4;AL;LATIN CAPITAL LETTER Y WITH DOT BELOW
+1EF5;AL;LATIN SMALL LETTER Y WITH DOT BELOW
+1EF6;AL;LATIN CAPITAL LETTER Y WITH HOOK ABOVE
+1EF7;AL;LATIN SMALL LETTER Y WITH HOOK ABOVE
+1EF8;AL;LATIN CAPITAL LETTER Y WITH TILDE
+1EF9;AL;LATIN SMALL LETTER Y WITH TILDE
+1F00;AL;GREEK SMALL LETTER ALPHA WITH PSILI
+1F01;AL;GREEK SMALL LETTER ALPHA WITH DASIA
+1F02;AL;GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
+1F03;AL;GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
+1F04;AL;GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
+1F05;AL;GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
+1F06;AL;GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
+1F07;AL;GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
+1F08;AL;GREEK CAPITAL LETTER ALPHA WITH PSILI
+1F09;AL;GREEK CAPITAL LETTER ALPHA WITH DASIA
+1F0A;AL;GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
+1F0B;AL;GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
+1F0C;AL;GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
+1F0D;AL;GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
+1F0E;AL;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
+1F0F;AL;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
+1F10;AL;GREEK SMALL LETTER EPSILON WITH PSILI
+1F11;AL;GREEK SMALL LETTER EPSILON WITH DASIA
+1F12;AL;GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
+1F13;AL;GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
+1F14;AL;GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
+1F15;AL;GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+1F18;AL;GREEK CAPITAL LETTER EPSILON WITH PSILI
+1F19;AL;GREEK CAPITAL LETTER EPSILON WITH DASIA
+1F1A;AL;GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
+1F1B;AL;GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
+1F1C;AL;GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
+1F1D;AL;GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+1F20;AL;GREEK SMALL LETTER ETA WITH PSILI
+1F21;AL;GREEK SMALL LETTER ETA WITH DASIA
+1F22;AL;GREEK SMALL LETTER ETA WITH PSILI AND VARIA
+1F23;AL;GREEK SMALL LETTER ETA WITH DASIA AND VARIA
+1F24;AL;GREEK SMALL LETTER ETA WITH PSILI AND OXIA
+1F25;AL;GREEK SMALL LETTER ETA WITH DASIA AND OXIA
+1F26;AL;GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
+1F27;AL;GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
+1F28;AL;GREEK CAPITAL LETTER ETA WITH PSILI
+1F29;AL;GREEK CAPITAL LETTER ETA WITH DASIA
+1F2A;AL;GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
+1F2B;AL;GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
+1F2C;AL;GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
+1F2D;AL;GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
+1F2E;AL;GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
+1F2F;AL;GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
+1F30;AL;GREEK SMALL LETTER IOTA WITH PSILI
+1F31;AL;GREEK SMALL LETTER IOTA WITH DASIA
+1F32;AL;GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
+1F33;AL;GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
+1F34;AL;GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
+1F35;AL;GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
+1F36;AL;GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
+1F37;AL;GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
+1F38;AL;GREEK CAPITAL LETTER IOTA WITH PSILI
+1F39;AL;GREEK CAPITAL LETTER IOTA WITH DASIA
+1F3A;AL;GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
+1F3B;AL;GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
+1F3C;AL;GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
+1F3D;AL;GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
+1F3E;AL;GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
+1F3F;AL;GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
+1F40;AL;GREEK SMALL LETTER OMICRON WITH PSILI
+1F41;AL;GREEK SMALL LETTER OMICRON WITH DASIA
+1F42;AL;GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
+1F43;AL;GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
+1F44;AL;GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
+1F45;AL;GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+1F48;AL;GREEK CAPITAL LETTER OMICRON WITH PSILI
+1F49;AL;GREEK CAPITAL LETTER OMICRON WITH DASIA
+1F4A;AL;GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
+1F4B;AL;GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
+1F4C;AL;GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
+1F4D;AL;GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+1F50;AL;GREEK SMALL LETTER UPSILON WITH PSILI
+1F51;AL;GREEK SMALL LETTER UPSILON WITH DASIA
+1F52;AL;GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
+1F53;AL;GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
+1F54;AL;GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
+1F55;AL;GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
+1F56;AL;GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
+1F57;AL;GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+1F59;AL;GREEK CAPITAL LETTER UPSILON WITH DASIA
+1F5B;AL;GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+1F5D;AL;GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+1F5F;AL;GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
+1F60;AL;GREEK SMALL LETTER OMEGA WITH PSILI
+1F61;AL;GREEK SMALL LETTER OMEGA WITH DASIA
+1F62;AL;GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
+1F63;AL;GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
+1F64;AL;GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
+1F65;AL;GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
+1F66;AL;GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
+1F67;AL;GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
+1F68;AL;GREEK CAPITAL LETTER OMEGA WITH PSILI
+1F69;AL;GREEK CAPITAL LETTER OMEGA WITH DASIA
+1F6A;AL;GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
+1F6B;AL;GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
+1F6C;AL;GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
+1F6D;AL;GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
+1F6E;AL;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
+1F6F;AL;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
+1F70;AL;GREEK SMALL LETTER ALPHA WITH VARIA
+1F71;AL;GREEK SMALL LETTER ALPHA WITH OXIA
+1F72;AL;GREEK SMALL LETTER EPSILON WITH VARIA
+1F73;AL;GREEK SMALL LETTER EPSILON WITH OXIA
+1F74;AL;GREEK SMALL LETTER ETA WITH VARIA
+1F75;AL;GREEK SMALL LETTER ETA WITH OXIA
+1F76;AL;GREEK SMALL LETTER IOTA WITH VARIA
+1F77;AL;GREEK SMALL LETTER IOTA WITH OXIA
+1F78;AL;GREEK SMALL LETTER OMICRON WITH VARIA
+1F79;AL;GREEK SMALL LETTER OMICRON WITH OXIA
+1F7A;AL;GREEK SMALL LETTER UPSILON WITH VARIA
+1F7B;AL;GREEK SMALL LETTER UPSILON WITH OXIA
+1F7C;AL;GREEK SMALL LETTER OMEGA WITH VARIA
+1F7D;AL;GREEK SMALL LETTER OMEGA WITH OXIA
+1F80;AL;GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
+1F81;AL;GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
+1F82;AL;GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+1F83;AL;GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+1F84;AL;GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+1F85;AL;GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+1F86;AL;GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+1F87;AL;GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+1F88;AL;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
+1F89;AL;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
+1F8A;AL;GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+1F8B;AL;GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+1F8C;AL;GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+1F8D;AL;GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+1F8E;AL;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+1F8F;AL;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+1F90;AL;GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
+1F91;AL;GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
+1F92;AL;GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+1F93;AL;GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+1F94;AL;GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+1F95;AL;GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+1F96;AL;GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+1F97;AL;GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+1F98;AL;GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
+1F99;AL;GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
+1F9A;AL;GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+1F9B;AL;GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+1F9C;AL;GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+1F9D;AL;GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+1F9E;AL;GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+1F9F;AL;GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+1FA0;AL;GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
+1FA1;AL;GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
+1FA2;AL;GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+1FA3;AL;GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+1FA4;AL;GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+1FA5;AL;GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+1FA6;AL;GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+1FA7;AL;GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+1FA8;AL;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
+1FA9;AL;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
+1FAA;AL;GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+1FAB;AL;GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+1FAC;AL;GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+1FAD;AL;GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+1FAE;AL;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+1FAF;AL;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+1FB0;AL;GREEK SMALL LETTER ALPHA WITH VRACHY
+1FB1;AL;GREEK SMALL LETTER ALPHA WITH MACRON
+1FB2;AL;GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
+1FB3;AL;GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI
+1FB4;AL;GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+1FB6;AL;GREEK SMALL LETTER ALPHA WITH PERISPOMENI
+1FB7;AL;GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
+1FB8;AL;GREEK CAPITAL LETTER ALPHA WITH VRACHY
+1FB9;AL;GREEK CAPITAL LETTER ALPHA WITH MACRON
+1FBA;AL;GREEK CAPITAL LETTER ALPHA WITH VARIA
+1FBB;AL;GREEK CAPITAL LETTER ALPHA WITH OXIA
+1FBC;AL;GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
+1FBD;AL;GREEK KORONIS
+1FBE;AL;GREEK PROSGEGRAMMENI
+1FBF;AL;GREEK PSILI
+1FC0;AL;GREEK PERISPOMENI
+1FC1;AL;GREEK DIALYTIKA AND PERISPOMENI
+1FC2;AL;GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
+1FC3;AL;GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI
+1FC4;AL;GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+1FC6;AL;GREEK SMALL LETTER ETA WITH PERISPOMENI
+1FC7;AL;GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
+1FC8;AL;GREEK CAPITAL LETTER EPSILON WITH VARIA
+1FC9;AL;GREEK CAPITAL LETTER EPSILON WITH OXIA
+1FCA;AL;GREEK CAPITAL LETTER ETA WITH VARIA
+1FCB;AL;GREEK CAPITAL LETTER ETA WITH OXIA
+1FCC;AL;GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
+1FCD;AL;GREEK PSILI AND VARIA
+1FCE;AL;GREEK PSILI AND OXIA
+1FCF;AL;GREEK PSILI AND PERISPOMENI
+1FD0;AL;GREEK SMALL LETTER IOTA WITH VRACHY
+1FD1;AL;GREEK SMALL LETTER IOTA WITH MACRON
+1FD2;AL;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
+1FD3;AL;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
+1FD6;AL;GREEK SMALL LETTER IOTA WITH PERISPOMENI
+1FD7;AL;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
+1FD8;AL;GREEK CAPITAL LETTER IOTA WITH VRACHY
+1FD9;AL;GREEK CAPITAL LETTER IOTA WITH MACRON
+1FDA;AL;GREEK CAPITAL LETTER IOTA WITH VARIA
+1FDB;AL;GREEK CAPITAL LETTER IOTA WITH OXIA
+1FDD;AL;GREEK DASIA AND VARIA
+1FDE;AL;GREEK DASIA AND OXIA
+1FDF;AL;GREEK DASIA AND PERISPOMENI
+1FE0;AL;GREEK SMALL LETTER UPSILON WITH VRACHY
+1FE1;AL;GREEK SMALL LETTER UPSILON WITH MACRON
+1FE2;AL;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
+1FE3;AL;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
+1FE4;AL;GREEK SMALL LETTER RHO WITH PSILI
+1FE5;AL;GREEK SMALL LETTER RHO WITH DASIA
+1FE6;AL;GREEK SMALL LETTER UPSILON WITH PERISPOMENI
+1FE7;AL;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
+1FE8;AL;GREEK CAPITAL LETTER UPSILON WITH VRACHY
+1FE9;AL;GREEK CAPITAL LETTER UPSILON WITH MACRON
+1FEA;AL;GREEK CAPITAL LETTER UPSILON WITH VARIA
+1FEB;AL;GREEK CAPITAL LETTER UPSILON WITH OXIA
+1FEC;AL;GREEK CAPITAL LETTER RHO WITH DASIA
+1FED;AL;GREEK DIALYTIKA AND VARIA
+1FEE;AL;GREEK DIALYTIKA AND OXIA
+1FEF;AL;GREEK VARIA
+1FF2;AL;GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
+1FF3;AL;GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI
+1FF4;AL;GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+1FF6;AL;GREEK SMALL LETTER OMEGA WITH PERISPOMENI
+1FF7;AL;GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
+1FF8;AL;GREEK CAPITAL LETTER OMICRON WITH VARIA
+1FF9;AL;GREEK CAPITAL LETTER OMICRON WITH OXIA
+1FFA;AL;GREEK CAPITAL LETTER OMEGA WITH VARIA
+1FFB;AL;GREEK CAPITAL LETTER OMEGA WITH OXIA
+1FFC;AL;GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
+1FFD;AL;GREEK OXIA
+1FFE;AL;GREEK DASIA
+2000;BA;EN QUAD
+2001;BA;EM QUAD
+2002;BA;EN SPACE
+2003;BA;EM SPACE
+2004;BA;THREE-PER-EM SPACE
+2005;BA;FOUR-PER-EM SPACE
+2006;BA;SIX-PER-EM SPACE
+2007;GL;FIGURE SPACE
+2008;BA;PUNCTUATION SPACE
+2009;BA;THIN SPACE
+200A;BA;HAIR SPACE
+200B;ZW;ZERO WIDTH SPACE
+200C;CM;ZERO WIDTH NON-JOINER
+200D;CM;ZERO WIDTH JOINER
+200E;CM;LEFT-TO-RIGHT MARK
+200F;CM;RIGHT-TO-LEFT MARK
+2010;BA;HYPHEN
+2011;GL;NON-BREAKING HYPHEN
+2012;BA;FIGURE DASH
+2013;BA;EN DASH
+2014;B2;EM DASH
+2015;AL;HORIZONTAL BAR
+2016;AI;DOUBLE VERTICAL LINE
+2017;AL;DOUBLE LOW LINE
+2018;QU;LEFT SINGLE QUOTATION MARK
+2019;QU;RIGHT SINGLE QUOTATION MARK
+201A;OP;SINGLE LOW-9 QUOTATION MARK
+201B;QU;SINGLE HIGH-REVERSED-9 QUOTATION MARK
+201C;QU;LEFT DOUBLE QUOTATION MARK
+201D;QU;RIGHT DOUBLE QUOTATION MARK
+201E;OP;DOUBLE LOW-9 QUOTATION MARK
+201F;QU;DOUBLE HIGH-REVERSED-9 QUOTATION MARK
+2020;AI;DAGGER
+2021;AI;DOUBLE DAGGER
+2022;AL;BULLET
+2023;AL;TRIANGULAR BULLET
+2024;IN;ONE DOT LEADER
+2025;IN;TWO DOT LEADER
+2026;IN;HORIZONTAL ELLIPSIS
+2027;BA;HYPHENATION POINT
+2028;BK;LINE SEPARATOR
+2029;BK;PARAGRAPH SEPARATOR
+202A;CM;LEFT-TO-RIGHT EMBEDDING
+202B;CM;RIGHT-TO-LEFT EMBEDDING
+202C;CM;POP DIRECTIONAL FORMATTING
+202D;CM;LEFT-TO-RIGHT OVERRIDE
+202E;CM;RIGHT-TO-LEFT OVERRIDE
+202F;GL;NARROW NO-BREAK SPACE
+2030;PO;PER MILLE SIGN
+2031;PO;PER TEN THOUSAND SIGN
+2032;PO;PRIME
+2033;PO;DOUBLE PRIME
+2034;PO;TRIPLE PRIME
+2035;PO;REVERSED PRIME
+2036;PO;REVERSED DOUBLE PRIME
+2037;PO;REVERSED TRIPLE PRIME
+2038;AL;CARET
+2039;QU;SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+203A;QU;SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+203B;AI;REFERENCE MARK
+203C;NS;DOUBLE EXCLAMATION MARK
+203D;AL;INTERROBANG
+203E;AL;OVERLINE
+203F;AL;UNDERTIE
+2040;AL;CHARACTER TIE
+2041;AL;CARET INSERTION POINT
+2042;AL;ASTERISM
+2043;AL;HYPHEN BULLET
+2044;NS;FRACTION SLASH
+2045;OP;LEFT SQUARE BRACKET WITH QUILL
+2046;CL;RIGHT SQUARE BRACKET WITH QUILL
+2048;AL;QUESTION EXCLAMATION MARK
+2049;AL;EXCLAMATION QUESTION MARK
+204A;AL;TIRONIAN SIGN ET
+204B;AL;REVERSED PILCROW SIGN
+204C;AL;BLACK LEFTWARDS BULLET
+204D;AL;BLACK RIGHTWARDS BULLET
+206A;CM;INHIBIT SYMMETRIC SWAPPING
+206B;CM;ACTIVATE SYMMETRIC SWAPPING
+206C;CM;INHIBIT ARABIC FORM SHAPING
+206D;CM;ACTIVATE ARABIC FORM SHAPING
+206E;CM;NATIONAL DIGIT SHAPES
+206F;CM;NOMINAL DIGIT SHAPES
+2070;AL;SUPERSCRIPT ZERO
+2074;AI;SUPERSCRIPT FOUR
+2075;AL;SUPERSCRIPT FIVE
+2076;AL;SUPERSCRIPT SIX
+2077;AL;SUPERSCRIPT SEVEN
+2078;AL;SUPERSCRIPT EIGHT
+2079;AL;SUPERSCRIPT NINE
+207A;AL;SUPERSCRIPT PLUS SIGN
+207B;AL;SUPERSCRIPT MINUS
+207C;AL;SUPERSCRIPT EQUALS SIGN
+207D;OP;SUPERSCRIPT LEFT PARENTHESIS
+207E;CL;SUPERSCRIPT RIGHT PARENTHESIS
+207F;AI;SUPERSCRIPT LATIN SMALL LETTER N
+2080;AL;SUBSCRIPT ZERO
+2081;AI;SUBSCRIPT ONE
+2082;AI;SUBSCRIPT TWO
+2083;AI;SUBSCRIPT THREE
+2084;AI;SUBSCRIPT FOUR
+2085;AL;SUBSCRIPT FIVE
+2086;AL;SUBSCRIPT SIX
+2087;AL;SUBSCRIPT SEVEN
+2088;AL;SUBSCRIPT EIGHT
+2089;AL;SUBSCRIPT NINE
+208A;AL;SUBSCRIPT PLUS SIGN
+208B;AL;SUBSCRIPT MINUS
+208C;AL;SUBSCRIPT EQUALS SIGN
+208D;OP;SUBSCRIPT LEFT PARENTHESIS
+208E;CL;SUBSCRIPT RIGHT PARENTHESIS
+20A0;PR;EURO-CURRENCY SIGN
+20A1;PR;COLON SIGN
+20A2;PR;CRUZEIRO SIGN
+20A3;PR;FRENCH FRANC SIGN
+20A4;PR;LIRA SIGN
+20A5;PR;MILL SIGN
+20A6;PR;NAIRA SIGN
+20A7;PO;PESETA SIGN
+20A8;PR;RUPEE SIGN
+20A9;PR;WON SIGN
+20AA;PR;NEW SHEQEL SIGN
+20AB;PR;DONG SIGN
+20AC;PR;EURO SIGN
+20AD;PR;KIP SIGN
+20AE;PR;TUGRIK SIGN
+20AF;PR;DRACHMA SIGN
+20D0;CM;COMBINING LEFT HARPOON ABOVE
+20D1;CM;COMBINING RIGHT HARPOON ABOVE
+20D2;CM;COMBINING LONG VERTICAL LINE OVERLAY
+20D3;CM;COMBINING SHORT VERTICAL LINE OVERLAY
+20D4;CM;COMBINING ANTICLOCKWISE ARROW ABOVE
+20D5;CM;COMBINING CLOCKWISE ARROW ABOVE
+20D6;CM;COMBINING LEFT ARROW ABOVE
+20D7;CM;COMBINING RIGHT ARROW ABOVE
+20D8;CM;COMBINING RING OVERLAY
+20D9;CM;COMBINING CLOCKWISE RING OVERLAY
+20DA;CM;COMBINING ANTICLOCKWISE RING OVERLAY
+20DB;CM;COMBINING THREE DOTS ABOVE
+20DC;CM;COMBINING FOUR DOTS ABOVE
+20DD;CM;COMBINING ENCLOSING CIRCLE
+20DE;CM;COMBINING ENCLOSING SQUARE
+20DF;CM;COMBINING ENCLOSING DIAMOND
+20E0;CM;COMBINING ENCLOSING CIRCLE BACKSLASH
+20E1;CM;COMBINING LEFT RIGHT ARROW ABOVE
+20E2;CM;COMBINING ENCLOSING SCREEN
+20E3;CM;COMBINING ENCLOSING KEYCAP
+2100;AL;ACCOUNT OF
+2101;AL;ADDRESSED TO THE SUBJECT
+2102;AL;DOUBLE-STRUCK CAPITAL C
+2103;PO;DEGREE CELSIUS
+2104;AL;CENTRE LINE SYMBOL
+2105;AI;CARE OF
+2106;AL;CADA UNA
+2107;AL;EULER CONSTANT
+2108;AL;SCRUPLE
+2109;PO;DEGREE FAHRENHEIT
+210A;AL;SCRIPT SMALL G
+210B;AL;SCRIPT CAPITAL H
+210C;AL;BLACK-LETTER CAPITAL H
+210D;AL;DOUBLE-STRUCK CAPITAL H
+210E;AL;PLANCK CONSTANT
+210F;AL;PLANCK CONSTANT OVER TWO PI
+2110;AL;SCRIPT CAPITAL I
+2111;AL;BLACK-LETTER CAPITAL I
+2112;AL;SCRIPT CAPITAL L
+2113;AI;SCRIPT SMALL L
+2114;AL;L B BAR SYMBOL
+2115;AL;DOUBLE-STRUCK CAPITAL N
+2116;PR;NUMERO SIGN
+2117;AL;SOUND RECORDING COPYRIGHT
+2118;AL;SCRIPT CAPITAL P
+2119;AL;DOUBLE-STRUCK CAPITAL P
+211A;AL;DOUBLE-STRUCK CAPITAL Q
+211B;AL;SCRIPT CAPITAL R
+211C;AL;BLACK-LETTER CAPITAL R
+211D;AL;DOUBLE-STRUCK CAPITAL R
+211E;AL;PRESCRIPTION TAKE
+211F;AL;RESPONSE
+2120;AL;SERVICE MARK
+2121;AI;TELEPHONE SIGN
+2122;AI;TRADE MARK SIGN
+2123;AL;VERSICLE
+2124;AL;DOUBLE-STRUCK CAPITAL Z
+2125;AL;OUNCE SIGN
+2126;PO;OHM SIGN
+2127;AL;INVERTED OHM SIGN
+2128;AL;BLACK-LETTER CAPITAL Z
+2129;AL;TURNED GREEK SMALL LETTER IOTA
+212A;AL;KELVIN SIGN
+212B;AI;ANGSTROM SIGN
+212C;AL;SCRIPT CAPITAL B
+212D;AL;BLACK-LETTER CAPITAL C
+212E;AL;ESTIMATED SYMBOL
+212F;AL;SCRIPT SMALL E
+2130;AL;SCRIPT CAPITAL E
+2131;AL;SCRIPT CAPITAL F
+2132;AL;TURNED CAPITAL F
+2133;AL;SCRIPT CAPITAL M
+2134;AL;SCRIPT SMALL O
+2135;AL;ALEF SYMBOL
+2136;AL;BET SYMBOL
+2137;AL;GIMEL SYMBOL
+2138;AL;DALET SYMBOL
+2139;AL;INFORMATION SOURCE
+213A;AL;ROTATED CAPITAL Q
+2153;AL;VULGAR FRACTION ONE THIRD
+2154;AI;VULGAR FRACTION TWO THIRDS
+2155;AI;VULGAR FRACTION ONE FIFTH
+2156;AL;VULGAR FRACTION TWO FIFTHS
+2157;AL;VULGAR FRACTION THREE FIFTHS
+2158;AL;VULGAR FRACTION FOUR FIFTHS
+2159;AL;VULGAR FRACTION ONE SIXTH
+215A;AL;VULGAR FRACTION FIVE SIXTHS
+215B;AI;VULGAR FRACTION ONE EIGHTH
+215C;AL;VULGAR FRACTION THREE EIGHTHS
+215D;AL;VULGAR FRACTION FIVE EIGHTHS
+215E;AI;VULGAR FRACTION SEVEN EIGHTHS
+215F;AL;FRACTION NUMERATOR ONE
+2160;AI;ROMAN NUMERAL ONE
+2161;AI;ROMAN NUMERAL TWO
+2162;AI;ROMAN NUMERAL THREE
+2163;AI;ROMAN NUMERAL FOUR
+2164;AI;ROMAN NUMERAL FIVE
+2165;AI;ROMAN NUMERAL SIX
+2166;AI;ROMAN NUMERAL SEVEN
+2167;AI;ROMAN NUMERAL EIGHT
+2168;AI;ROMAN NUMERAL NINE
+2169;AI;ROMAN NUMERAL TEN
+216A;AI;ROMAN NUMERAL ELEVEN
+216B;AI;ROMAN NUMERAL TWELVE
+216C;AL;ROMAN NUMERAL FIFTY
+216D;AL;ROMAN NUMERAL ONE HUNDRED
+216E;AL;ROMAN NUMERAL FIVE HUNDRED
+216F;AL;ROMAN NUMERAL ONE THOUSAND
+2170;AI;SMALL ROMAN NUMERAL ONE
+2171;AI;SMALL ROMAN NUMERAL TWO
+2172;AI;SMALL ROMAN NUMERAL THREE
+2173;AI;SMALL ROMAN NUMERAL FOUR
+2174;AI;SMALL ROMAN NUMERAL FIVE
+2175;AI;SMALL ROMAN NUMERAL SIX
+2176;AI;SMALL ROMAN NUMERAL SEVEN
+2177;AI;SMALL ROMAN NUMERAL EIGHT
+2178;AI;SMALL ROMAN NUMERAL NINE
+2179;AI;SMALL ROMAN NUMERAL TEN
+217A;AL;SMALL ROMAN NUMERAL ELEVEN
+217B;AL;SMALL ROMAN NUMERAL TWELVE
+217C;AL;SMALL ROMAN NUMERAL FIFTY
+217D;AL;SMALL ROMAN NUMERAL ONE HUNDRED
+217E;AL;SMALL ROMAN NUMERAL FIVE HUNDRED
+217F;AL;SMALL ROMAN NUMERAL ONE THOUSAND
+2180;AL;ROMAN NUMERAL ONE THOUSAND C D
+2181;AL;ROMAN NUMERAL FIVE THOUSAND
+2182;AL;ROMAN NUMERAL TEN THOUSAND
+2183;AL;ROMAN NUMERAL REVERSED ONE HUNDRED
+2190;AI;LEFTWARDS ARROW
+2191;AI;UPWARDS ARROW
+2192;AI;RIGHTWARDS ARROW
+2193;AI;DOWNWARDS ARROW
+2194;AI;LEFT RIGHT ARROW
+2195;AI;UP DOWN ARROW
+2196;AI;NORTH WEST ARROW
+2197;AI;NORTH EAST ARROW
+2198;AI;SOUTH EAST ARROW
+2199;AI;SOUTH WEST ARROW
+219A;AL;LEFTWARDS ARROW WITH STROKE
+219B;AL;RIGHTWARDS ARROW WITH STROKE
+219C;AL;LEFTWARDS WAVE ARROW
+219D;AL;RIGHTWARDS WAVE ARROW
+219E;AL;LEFTWARDS TWO HEADED ARROW
+219F;AL;UPWARDS TWO HEADED ARROW
+21A0;AL;RIGHTWARDS TWO HEADED ARROW
+21A1;AL;DOWNWARDS TWO HEADED ARROW
+21A2;AL;LEFTWARDS ARROW WITH TAIL
+21A3;AL;RIGHTWARDS ARROW WITH TAIL
+21A4;AL;LEFTWARDS ARROW FROM BAR
+21A5;AL;UPWARDS ARROW FROM BAR
+21A6;AL;RIGHTWARDS ARROW FROM BAR
+21A7;AL;DOWNWARDS ARROW FROM BAR
+21A8;AL;UP DOWN ARROW WITH BASE
+21A9;AL;LEFTWARDS ARROW WITH HOOK
+21AA;AL;RIGHTWARDS ARROW WITH HOOK
+21AB;AL;LEFTWARDS ARROW WITH LOOP
+21AC;AL;RIGHTWARDS ARROW WITH LOOP
+21AD;AL;LEFT RIGHT WAVE ARROW
+21AE;AL;LEFT RIGHT ARROW WITH STROKE
+21AF;AL;DOWNWARDS ZIGZAG ARROW
+21B0;AL;UPWARDS ARROW WITH TIP LEFTWARDS
+21B1;AL;UPWARDS ARROW WITH TIP RIGHTWARDS
+21B2;AL;DOWNWARDS ARROW WITH TIP LEFTWARDS
+21B3;AL;DOWNWARDS ARROW WITH TIP RIGHTWARDS
+21B4;AL;RIGHTWARDS ARROW WITH CORNER DOWNWARDS
+21B5;AL;DOWNWARDS ARROW WITH CORNER LEFTWARDS
+21B6;AL;ANTICLOCKWISE TOP SEMICIRCLE ARROW
+21B7;AL;CLOCKWISE TOP SEMICIRCLE ARROW
+21B8;AL;NORTH WEST ARROW TO LONG BAR
+21B9;AL;LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR
+21BA;AL;ANTICLOCKWISE OPEN CIRCLE ARROW
+21BB;AL;CLOCKWISE OPEN CIRCLE ARROW
+21BC;AL;LEFTWARDS HARPOON WITH BARB UPWARDS
+21BD;AL;LEFTWARDS HARPOON WITH BARB DOWNWARDS
+21BE;AL;UPWARDS HARPOON WITH BARB RIGHTWARDS
+21BF;AL;UPWARDS HARPOON WITH BARB LEFTWARDS
+21C0;AL;RIGHTWARDS HARPOON WITH BARB UPWARDS
+21C1;AL;RIGHTWARDS HARPOON WITH BARB DOWNWARDS
+21C2;AL;DOWNWARDS HARPOON WITH BARB RIGHTWARDS
+21C3;AL;DOWNWARDS HARPOON WITH BARB LEFTWARDS
+21C4;AL;RIGHTWARDS ARROW OVER LEFTWARDS ARROW
+21C5;AL;UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW
+21C6;AL;LEFTWARDS ARROW OVER RIGHTWARDS ARROW
+21C7;AL;LEFTWARDS PAIRED ARROWS
+21C8;AL;UPWARDS PAIRED ARROWS
+21C9;AL;RIGHTWARDS PAIRED ARROWS
+21CA;AL;DOWNWARDS PAIRED ARROWS
+21CB;AL;LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
+21CC;AL;RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
+21CD;AL;LEFTWARDS DOUBLE ARROW WITH STROKE
+21CE;AL;LEFT RIGHT DOUBLE ARROW WITH STROKE
+21CF;AL;RIGHTWARDS DOUBLE ARROW WITH STROKE
+21D0;AL;LEFTWARDS DOUBLE ARROW
+21D1;AL;UPWARDS DOUBLE ARROW
+21D2;AI;RIGHTWARDS DOUBLE ARROW
+21D3;AL;DOWNWARDS DOUBLE ARROW
+21D4;AI;LEFT RIGHT DOUBLE ARROW
+21D5;AL;UP DOWN DOUBLE ARROW
+21D6;AL;NORTH WEST DOUBLE ARROW
+21D7;AL;NORTH EAST DOUBLE ARROW
+21D8;AL;SOUTH EAST DOUBLE ARROW
+21D9;AL;SOUTH WEST DOUBLE ARROW
+21DA;AL;LEFTWARDS TRIPLE ARROW
+21DB;AL;RIGHTWARDS TRIPLE ARROW
+21DC;AL;LEFTWARDS SQUIGGLE ARROW
+21DD;AL;RIGHTWARDS SQUIGGLE ARROW
+21DE;AL;UPWARDS ARROW WITH DOUBLE STROKE
+21DF;AL;DOWNWARDS ARROW WITH DOUBLE STROKE
+21E0;AL;LEFTWARDS DASHED ARROW
+21E1;AL;UPWARDS DASHED ARROW
+21E2;AL;RIGHTWARDS DASHED ARROW
+21E3;AL;DOWNWARDS DASHED ARROW
+21E4;AL;LEFTWARDS ARROW TO BAR
+21E5;AL;RIGHTWARDS ARROW TO BAR
+21E6;AL;LEFTWARDS WHITE ARROW
+21E7;AL;UPWARDS WHITE ARROW
+21E8;AL;RIGHTWARDS WHITE ARROW
+21E9;AL;DOWNWARDS WHITE ARROW
+21EA;AL;UPWARDS WHITE ARROW FROM BAR
+21EB;AL;UPWARDS WHITE ARROW ON PEDESTAL
+21EC;AL;UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR
+21ED;AL;UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR
+21EE;AL;UPWARDS WHITE DOUBLE ARROW
+21EF;AL;UPWARDS WHITE DOUBLE ARROW ON PEDESTAL
+21F0;AL;RIGHTWARDS WHITE ARROW FROM WALL
+21F1;AL;NORTH WEST ARROW TO CORNER
+21F2;AL;SOUTH EAST ARROW TO CORNER
+21F3;AL;UP DOWN WHITE ARROW
+2200;AI;FOR ALL
+2201;AL;COMPLEMENT
+2202;AI;PARTIAL DIFFERENTIAL
+2203;AI;THERE EXISTS
+2204;AL;THERE DOES NOT EXIST
+2205;AL;EMPTY SET
+2206;AL;INCREMENT
+2207;AI;NABLA
+2208;AI;ELEMENT OF
+2209;AL;NOT AN ELEMENT OF
+220A;AL;SMALL ELEMENT OF
+220B;AI;CONTAINS AS MEMBER
+220C;AL;DOES NOT CONTAIN AS MEMBER
+220D;AL;SMALL CONTAINS AS MEMBER
+220E;AL;END OF PROOF
+220F;AI;N-ARY PRODUCT
+2210;AL;N-ARY COPRODUCT
+2211;AI;N-ARY SUMMATION
+2212;PR;MINUS SIGN
+2213;PR;MINUS-OR-PLUS SIGN
+2214;AL;DOT PLUS
+2215;AI;DIVISION SLASH
+2216;AL;SET MINUS
+2217;AL;ASTERISK OPERATOR
+2218;AL;RING OPERATOR
+2219;AL;BULLET OPERATOR
+221A;AI;SQUARE ROOT
+221B;AL;CUBE ROOT
+221C;AL;FOURTH ROOT
+221D;AI;PROPORTIONAL TO
+221E;AI;INFINITY
+221F;AI;RIGHT ANGLE
+2220;AI;ANGLE
+2221;AL;MEASURED ANGLE
+2222;AL;SPHERICAL ANGLE
+2223;AI;DIVIDES
+2224;AL;DOES NOT DIVIDE
+2225;AI;PARALLEL TO
+2226;AL;NOT PARALLEL TO
+2227;AI;LOGICAL AND
+2228;AI;LOGICAL OR
+2229;AI;INTERSECTION
+222A;AI;UNION
+222B;AI;INTEGRAL
+222C;AI;DOUBLE INTEGRAL
+222D;AL;TRIPLE INTEGRAL
+222E;AI;CONTOUR INTEGRAL
+222F;AL;SURFACE INTEGRAL
+2230;AL;VOLUME INTEGRAL
+2231;AL;CLOCKWISE INTEGRAL
+2232;AL;CLOCKWISE CONTOUR INTEGRAL
+2233;AL;ANTICLOCKWISE CONTOUR INTEGRAL
+2234;AI;THEREFORE
+2235;AI;BECAUSE
+2236;AI;RATIO
+2237;AI;PROPORTION
+2238;AL;DOT MINUS
+2239;AL;EXCESS
+223A;AL;GEOMETRIC PROPORTION
+223B;AL;HOMOTHETIC
+223C;AI;TILDE OPERATOR
+223D;AI;REVERSED TILDE
+223E;AL;INVERTED LAZY S
+223F;AL;SINE WAVE
+2240;AL;WREATH PRODUCT
+2241;AL;NOT TILDE
+2242;AL;MINUS TILDE
+2243;AL;ASYMPTOTICALLY EQUAL TO
+2244;AL;NOT ASYMPTOTICALLY EQUAL TO
+2245;AL;APPROXIMATELY EQUAL TO
+2246;AL;APPROXIMATELY BUT NOT ACTUALLY EQUAL TO
+2247;AL;NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
+2248;AI;ALMOST EQUAL TO
+2249;AL;NOT ALMOST EQUAL TO
+224A;AL;ALMOST EQUAL OR EQUAL TO
+224B;AL;TRIPLE TILDE
+224C;AI;ALL EQUAL TO
+224D;AL;EQUIVALENT TO
+224E;AL;GEOMETRICALLY EQUIVALENT TO
+224F;AL;DIFFERENCE BETWEEN
+2250;AL;APPROACHES THE LIMIT
+2251;AL;GEOMETRICALLY EQUAL TO
+2252;AI;APPROXIMATELY EQUAL TO OR THE IMAGE OF
+2253;AL;IMAGE OF OR APPROXIMATELY EQUAL TO
+2254;AL;COLON EQUALS
+2255;AL;EQUALS COLON
+2256;AL;RING IN EQUAL TO
+2257;AL;RING EQUAL TO
+2258;AL;CORRESPONDS TO
+2259;AL;ESTIMATES
+225A;AL;EQUIANGULAR TO
+225B;AL;STAR EQUALS
+225C;AL;DELTA EQUAL TO
+225D;AL;EQUAL TO BY DEFINITION
+225E;AL;MEASURED BY
+225F;AL;QUESTIONED EQUAL TO
+2260;AI;NOT EQUAL TO
+2261;AI;IDENTICAL TO
+2262;AL;NOT IDENTICAL TO
+2263;AL;STRICTLY EQUIVALENT TO
+2264;AI;LESS-THAN OR EQUAL TO
+2265;AI;GREATER-THAN OR EQUAL TO
+2266;AI;LESS-THAN OVER EQUAL TO
+2267;AI;GREATER-THAN OVER EQUAL TO
+2268;AL;LESS-THAN BUT NOT EQUAL TO
+2269;AL;GREATER-THAN BUT NOT EQUAL TO
+226A;AI;MUCH LESS-THAN
+226B;AI;MUCH GREATER-THAN
+226C;AL;BETWEEN
+226D;AL;NOT EQUIVALENT TO
+226E;AI;NOT LESS-THAN
+226F;AI;NOT GREATER-THAN
+2270;AL;NEITHER LESS-THAN NOR EQUAL TO
+2271;AL;NEITHER GREATER-THAN NOR EQUAL TO
+2272;AL;LESS-THAN OR EQUIVALENT TO
+2273;AL;GREATER-THAN OR EQUIVALENT TO
+2274;AL;NEITHER LESS-THAN NOR EQUIVALENT TO
+2275;AL;NEITHER GREATER-THAN NOR EQUIVALENT TO
+2276;AL;LESS-THAN OR GREATER-THAN
+2277;AL;GREATER-THAN OR LESS-THAN
+2278;AL;NEITHER LESS-THAN NOR GREATER-THAN
+2279;AL;NEITHER GREATER-THAN NOR LESS-THAN
+227A;AL;PRECEDES
+227B;AL;SUCCEEDS
+227C;AL;PRECEDES OR EQUAL TO
+227D;AL;SUCCEEDS OR EQUAL TO
+227E;AL;PRECEDES OR EQUIVALENT TO
+227F;AL;SUCCEEDS OR EQUIVALENT TO
+2280;AL;DOES NOT PRECEDE
+2281;AL;DOES NOT SUCCEED
+2282;AI;SUBSET OF
+2283;AI;SUPERSET OF
+2284;AL;NOT A SUBSET OF
+2285;AL;NOT A SUPERSET OF
+2286;AI;SUBSET OF OR EQUAL TO
+2287;AI;SUPERSET OF OR EQUAL TO
+2288;AL;NEITHER A SUBSET OF NOR EQUAL TO
+2289;AL;NEITHER A SUPERSET OF NOR EQUAL TO
+228A;AL;SUBSET OF WITH NOT EQUAL TO
+228B;AL;SUPERSET OF WITH NOT EQUAL TO
+228C;AL;MULTISET
+228D;AL;MULTISET MULTIPLICATION
+228E;AL;MULTISET UNION
+228F;AL;SQUARE IMAGE OF
+2290;AL;SQUARE ORIGINAL OF
+2291;AL;SQUARE IMAGE OF OR EQUAL TO
+2292;AL;SQUARE ORIGINAL OF OR EQUAL TO
+2293;AL;SQUARE CAP
+2294;AL;SQUARE CUP
+2295;AI;CIRCLED PLUS
+2296;AL;CIRCLED MINUS
+2297;AL;CIRCLED TIMES
+2298;AL;CIRCLED DIVISION SLASH
+2299;AI;CIRCLED DOT OPERATOR
+229A;AL;CIRCLED RING OPERATOR
+229B;AL;CIRCLED ASTERISK OPERATOR
+229C;AL;CIRCLED EQUALS
+229D;AL;CIRCLED DASH
+229E;AL;SQUARED PLUS
+229F;AL;SQUARED MINUS
+22A0;AL;SQUARED TIMES
+22A1;AL;SQUARED DOT OPERATOR
+22A2;AL;RIGHT TACK
+22A3;AL;LEFT TACK
+22A4;AL;DOWN TACK
+22A5;AI;UP TACK
+22A6;AL;ASSERTION
+22A7;AL;MODELS
+22A8;AL;TRUE
+22A9;AL;FORCES
+22AA;AL;TRIPLE VERTICAL BAR RIGHT TURNSTILE
+22AB;AL;DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
+22AC;AL;DOES NOT PROVE
+22AD;AL;NOT TRUE
+22AE;AL;DOES NOT FORCE
+22AF;AL;NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
+22B0;AL;PRECEDES UNDER RELATION
+22B1;AL;SUCCEEDS UNDER RELATION
+22B2;AL;NORMAL SUBGROUP OF
+22B3;AL;CONTAINS AS NORMAL SUBGROUP
+22B4;AL;NORMAL SUBGROUP OF OR EQUAL TO
+22B5;AL;CONTAINS AS NORMAL SUBGROUP OR EQUAL TO
+22B6;AL;ORIGINAL OF
+22B7;AL;IMAGE OF
+22B8;AL;MULTIMAP
+22B9;AL;HERMITIAN CONJUGATE MATRIX
+22BA;AL;INTERCALATE
+22BB;AL;XOR
+22BC;AL;NAND
+22BD;AL;NOR
+22BE;AL;RIGHT ANGLE WITH ARC
+22BF;AI;RIGHT TRIANGLE
+22C0;AL;N-ARY LOGICAL AND
+22C1;AL;N-ARY LOGICAL OR
+22C2;AL;N-ARY INTERSECTION
+22C3;AL;N-ARY UNION
+22C4;AL;DIAMOND OPERATOR
+22C5;AL;DOT OPERATOR
+22C6;AL;STAR OPERATOR
+22C7;AL;DIVISION TIMES
+22C8;AL;BOWTIE
+22C9;AL;LEFT NORMAL FACTOR SEMIDIRECT PRODUCT
+22CA;AL;RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT
+22CB;AL;LEFT SEMIDIRECT PRODUCT
+22CC;AL;RIGHT SEMIDIRECT PRODUCT
+22CD;AL;REVERSED TILDE EQUALS
+22CE;AL;CURLY LOGICAL OR
+22CF;AL;CURLY LOGICAL AND
+22D0;AL;DOUBLE SUBSET
+22D1;AL;DOUBLE SUPERSET
+22D2;AL;DOUBLE INTERSECTION
+22D3;AL;DOUBLE UNION
+22D4;AL;PITCHFORK
+22D5;AL;EQUAL AND PARALLEL TO
+22D6;AL;LESS-THAN WITH DOT
+22D7;AL;GREATER-THAN WITH DOT
+22D8;AL;VERY MUCH LESS-THAN
+22D9;AL;VERY MUCH GREATER-THAN
+22DA;AL;LESS-THAN EQUAL TO OR GREATER-THAN
+22DB;AL;GREATER-THAN EQUAL TO OR LESS-THAN
+22DC;AL;EQUAL TO OR LESS-THAN
+22DD;AL;EQUAL TO OR GREATER-THAN
+22DE;AL;EQUAL TO OR PRECEDES
+22DF;AL;EQUAL TO OR SUCCEEDS
+22E0;AL;DOES NOT PRECEDE OR EQUAL
+22E1;AL;DOES NOT SUCCEED OR EQUAL
+22E2;AL;NOT SQUARE IMAGE OF OR EQUAL TO
+22E3;AL;NOT SQUARE ORIGINAL OF OR EQUAL TO
+22E4;AL;SQUARE IMAGE OF OR NOT EQUAL TO
+22E5;AL;SQUARE ORIGINAL OF OR NOT EQUAL TO
+22E6;AL;LESS-THAN BUT NOT EQUIVALENT TO
+22E7;AL;GREATER-THAN BUT NOT EQUIVALENT TO
+22E8;AL;PRECEDES BUT NOT EQUIVALENT TO
+22E9;AL;SUCCEEDS BUT NOT EQUIVALENT TO
+22EA;AL;NOT NORMAL SUBGROUP OF
+22EB;AL;DOES NOT CONTAIN AS NORMAL SUBGROUP
+22EC;AL;NOT NORMAL SUBGROUP OF OR EQUAL TO
+22ED;AL;DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
+22EE;AL;VERTICAL ELLIPSIS
+22EF;AL;MIDLINE HORIZONTAL ELLIPSIS
+22F0;AL;UP RIGHT DIAGONAL ELLIPSIS
+22F1;AL;DOWN RIGHT DIAGONAL ELLIPSIS
+2300;AL;DIAMETER SIGN
+2301;AL;ELECTRIC ARROW
+2302;AL;HOUSE
+2303;AL;UP ARROWHEAD
+2304;AL;DOWN ARROWHEAD
+2305;AL;PROJECTIVE
+2306;AL;PERSPECTIVE
+2307;AL;WAVY LINE
+2308;AL;LEFT CEILING
+2309;AL;RIGHT CEILING
+230A;AL;LEFT FLOOR
+230B;AL;RIGHT FLOOR
+230C;AL;BOTTOM RIGHT CROP
+230D;AL;BOTTOM LEFT CROP
+230E;AL;TOP RIGHT CROP
+230F;AL;TOP LEFT CROP
+2310;AL;REVERSED NOT SIGN
+2311;AL;SQUARE LOZENGE
+2312;AI;ARC
+2313;AL;SEGMENT
+2314;AL;SECTOR
+2315;AL;TELEPHONE RECORDER
+2316;AL;POSITION INDICATOR
+2317;AL;VIEWDATA SQUARE
+2318;AL;PLACE OF INTEREST SIGN
+2319;AL;TURNED NOT SIGN
+231A;AL;WATCH
+231B;AL;HOURGLASS
+231C;AL;TOP LEFT CORNER
+231D;AL;TOP RIGHT CORNER
+231E;AL;BOTTOM LEFT CORNER
+231F;AL;BOTTOM RIGHT CORNER
+2320;AL;TOP HALF INTEGRAL
+2321;AL;BOTTOM HALF INTEGRAL
+2322;AL;FROWN
+2323;AL;SMILE
+2324;AL;UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS
+2325;AL;OPTION KEY
+2326;AL;ERASE TO THE RIGHT
+2327;AL;X IN A RECTANGLE BOX
+2328;AL;KEYBOARD
+2329;OP;LEFT-POINTING ANGLE BRACKET
+232A;CL;RIGHT-POINTING ANGLE BRACKET
+232B;AL;ERASE TO THE LEFT
+232C;AL;BENZENE RING
+232D;AL;CYLINDRICITY
+232E;AL;ALL AROUND-PROFILE
+232F;AL;SYMMETRY
+2330;AL;TOTAL RUNOUT
+2331;AL;DIMENSION ORIGIN
+2332;AL;CONICAL TAPER
+2333;AL;SLOPE
+2334;AL;COUNTERBORE
+2335;AL;COUNTERSINK
+2336;AL;APL FUNCTIONAL SYMBOL I-BEAM
+2337;AL;APL FUNCTIONAL SYMBOL SQUISH QUAD
+2338;AL;APL FUNCTIONAL SYMBOL QUAD EQUAL
+2339;AL;APL FUNCTIONAL SYMBOL QUAD DIVIDE
+233A;AL;APL FUNCTIONAL SYMBOL QUAD DIAMOND
+233B;AL;APL FUNCTIONAL SYMBOL QUAD JOT
+233C;AL;APL FUNCTIONAL SYMBOL QUAD CIRCLE
+233D;AL;APL FUNCTIONAL SYMBOL CIRCLE STILE
+233E;AL;APL FUNCTIONAL SYMBOL CIRCLE JOT
+233F;AL;APL FUNCTIONAL SYMBOL SLASH BAR
+2340;AL;APL FUNCTIONAL SYMBOL BACKSLASH BAR
+2341;AL;APL FUNCTIONAL SYMBOL QUAD SLASH
+2342;AL;APL FUNCTIONAL SYMBOL QUAD BACKSLASH
+2343;AL;APL FUNCTIONAL SYMBOL QUAD LESS-THAN
+2344;AL;APL FUNCTIONAL SYMBOL QUAD GREATER-THAN
+2345;AL;APL FUNCTIONAL SYMBOL LEFTWARDS VANE
+2346;AL;APL FUNCTIONAL SYMBOL RIGHTWARDS VANE
+2347;AL;APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW
+2348;AL;APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW
+2349;AL;APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH
+234A;AL;APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR
+234B;AL;APL FUNCTIONAL SYMBOL DELTA STILE
+234C;AL;APL FUNCTIONAL SYMBOL QUAD DOWN CARET
+234D;AL;APL FUNCTIONAL SYMBOL QUAD DELTA
+234E;AL;APL FUNCTIONAL SYMBOL DOWN TACK JOT
+234F;AL;APL FUNCTIONAL SYMBOL UPWARDS VANE
+2350;AL;APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW
+2351;AL;APL FUNCTIONAL SYMBOL UP TACK OVERBAR
+2352;AL;APL FUNCTIONAL SYMBOL DEL STILE
+2353;AL;APL FUNCTIONAL SYMBOL QUAD UP CARET
+2354;AL;APL FUNCTIONAL SYMBOL QUAD DEL
+2355;AL;APL FUNCTIONAL SYMBOL UP TACK JOT
+2356;AL;APL FUNCTIONAL SYMBOL DOWNWARDS VANE
+2357;AL;APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW
+2358;AL;APL FUNCTIONAL SYMBOL QUOTE UNDERBAR
+2359;AL;APL FUNCTIONAL SYMBOL DELTA UNDERBAR
+235A;AL;APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR
+235B;AL;APL FUNCTIONAL SYMBOL JOT UNDERBAR
+235C;AL;APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR
+235D;AL;APL FUNCTIONAL SYMBOL UP SHOE JOT
+235E;AL;APL FUNCTIONAL SYMBOL QUOTE QUAD
+235F;AL;APL FUNCTIONAL SYMBOL CIRCLE STAR
+2360;AL;APL FUNCTIONAL SYMBOL QUAD COLON
+2361;AL;APL FUNCTIONAL SYMBOL UP TACK DIAERESIS
+2362;AL;APL FUNCTIONAL SYMBOL DEL DIAERESIS
+2363;AL;APL FUNCTIONAL SYMBOL STAR DIAERESIS
+2364;AL;APL FUNCTIONAL SYMBOL JOT DIAERESIS
+2365;AL;APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS
+2366;AL;APL FUNCTIONAL SYMBOL DOWN SHOE STILE
+2367;AL;APL FUNCTIONAL SYMBOL LEFT SHOE STILE
+2368;AL;APL FUNCTIONAL SYMBOL TILDE DIAERESIS
+2369;AL;APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS
+236A;AL;APL FUNCTIONAL SYMBOL COMMA BAR
+236B;AL;APL FUNCTIONAL SYMBOL DEL TILDE
+236C;AL;APL FUNCTIONAL SYMBOL ZILDE
+236D;AL;APL FUNCTIONAL SYMBOL STILE TILDE
+236E;AL;APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR
+236F;AL;APL FUNCTIONAL SYMBOL QUAD NOT EQUAL
+2370;AL;APL FUNCTIONAL SYMBOL QUAD QUESTION
+2371;AL;APL FUNCTIONAL SYMBOL DOWN CARET TILDE
+2372;AL;APL FUNCTIONAL SYMBOL UP CARET TILDE
+2373;AL;APL FUNCTIONAL SYMBOL IOTA
+2374;AL;APL FUNCTIONAL SYMBOL RHO
+2375;AL;APL FUNCTIONAL SYMBOL OMEGA
+2376;AL;APL FUNCTIONAL SYMBOL ALPHA UNDERBAR
+2377;AL;APL FUNCTIONAL SYMBOL EPSILON UNDERBAR
+2378;AL;APL FUNCTIONAL SYMBOL IOTA UNDERBAR
+2379;AL;APL FUNCTIONAL SYMBOL OMEGA UNDERBAR
+237A;AL;APL FUNCTIONAL SYMBOL ALPHA
+237B;AL;NOT CHECK MARK
+237D;AL;SHOULDERED OPEN BOX
+237E;AL;BELL SYMBOL
+237F;AL;VERTICAL LINE WITH MIDDLE DOT
+2380;AL;INSERTION SYMBOL
+2381;AL;CONTINUOUS UNDERLINE SYMBOL
+2382;AL;DISCONTINUOUS UNDERLINE SYMBOL
+2383;AL;EMPHASIS SYMBOL
+2384;AL;COMPOSITION SYMBOL
+2385;AL;WHITE SQUARE WITH CENTRE VERTICAL LINE
+2386;AL;ENTER SYMBOL
+2387;AL;ALTERNATIVE KEY SYMBOL
+2388;AL;HELM SYMBOL
+2389;AL;CIRCLED HORIZONTAL BAR WITH NOTCH
+238A;AL;CIRCLED TRIANGLE DOWN
+238B;AL;BROKEN CIRCLE WITH NORTHWEST ARROW
+238C;AL;UNDO SYMBOL
+238D;AL;MONOSTABLE SYMBOL
+238E;AL;HYSTERESIS SYMBOL
+238F;AL;OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL
+2390;AL;OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL
+2391;AL;PASSIVE-PULL-DOWN-OUTPUT SYMBOL
+2392;AL;PASSIVE-PULL-UP-OUTPUT SYMBOL
+2393;AL;DIRECT CURRENT SYMBOL FORM TWO
+2394;AL;SOFTWARE-FUNCTION SYMBOL
+2395;AL;APL FUNCTIONAL SYMBOL QUAD
+2396;AL;DECIMAL SEPARATOR KEY SYMBOL
+2397;AL;PREVIOUS PAGE
+2398;AL;NEXT PAGE
+2399;AL;PRINT SCREEN SYMBOL
+239A;AL;CLEAR SCREEN SYMBOL
+2400;AL;SYMBOL FOR NULL
+2401;AL;SYMBOL FOR START OF HEADING
+2402;AL;SYMBOL FOR START OF TEXT
+2403;AL;SYMBOL FOR END OF TEXT
+2404;AL;SYMBOL FOR END OF TRANSMISSION
+2405;AL;SYMBOL FOR ENQUIRY
+2406;AL;SYMBOL FOR ACKNOWLEDGE
+2407;AL;SYMBOL FOR BELL
+2408;AL;SYMBOL FOR BACKSPACE
+2409;AL;SYMBOL FOR HORIZONTAL TABULATION
+240A;AL;SYMBOL FOR LINE FEED
+240B;AL;SYMBOL FOR VERTICAL TABULATION
+240C;AL;SYMBOL FOR FORM FEED
+240D;AL;SYMBOL FOR CARRIAGE RETURN
+240E;AL;SYMBOL FOR SHIFT OUT
+240F;AL;SYMBOL FOR SHIFT IN
+2410;AL;SYMBOL FOR DATA LINK ESCAPE
+2411;AL;SYMBOL FOR DEVICE CONTROL ONE
+2412;AL;SYMBOL FOR DEVICE CONTROL TWO
+2413;AL;SYMBOL FOR DEVICE CONTROL THREE
+2414;AL;SYMBOL FOR DEVICE CONTROL FOUR
+2415;AL;SYMBOL FOR NEGATIVE ACKNOWLEDGE
+2416;AL;SYMBOL FOR SYNCHRONOUS IDLE
+2417;AL;SYMBOL FOR END OF TRANSMISSION BLOCK
+2418;AL;SYMBOL FOR CANCEL
+2419;AL;SYMBOL FOR END OF MEDIUM
+241A;AL;SYMBOL FOR SUBSTITUTE
+241B;AL;SYMBOL FOR ESCAPE
+241C;AL;SYMBOL FOR FILE SEPARATOR
+241D;AL;SYMBOL FOR GROUP SEPARATOR
+241E;AL;SYMBOL FOR RECORD SEPARATOR
+241F;AL;SYMBOL FOR UNIT SEPARATOR
+2420;AL;SYMBOL FOR SPACE
+2421;AL;SYMBOL FOR DELETE
+2422;AL;BLANK SYMBOL
+2423;AL;OPEN BOX
+2424;AL;SYMBOL FOR NEWLINE
+2425;AL;SYMBOL FOR DELETE FORM TWO
+2426;AL;SYMBOL FOR SUBSTITUTE FORM TWO
+2440;AL;OCR HOOK
+2441;AL;OCR CHAIR
+2442;AL;OCR FORK
+2443;AL;OCR INVERTED FORK
+2444;AL;OCR BELT BUCKLE
+2445;AL;OCR BOW TIE
+2446;AL;OCR BRANCH BANK IDENTIFICATION
+2447;AL;OCR AMOUNT OF CHECK
+2448;AL;OCR DASH
+2449;AL;OCR CUSTOMER ACCOUNT NUMBER
+244A;AL;OCR DOUBLE BACKSLASH
+2460;AI;CIRCLED DIGIT ONE
+2461;AI;CIRCLED DIGIT TWO
+2462;AI;CIRCLED DIGIT THREE
+2463;AI;CIRCLED DIGIT FOUR
+2464;AI;CIRCLED DIGIT FIVE
+2465;AI;CIRCLED DIGIT SIX
+2466;AI;CIRCLED DIGIT SEVEN
+2467;AI;CIRCLED DIGIT EIGHT
+2468;AI;CIRCLED DIGIT NINE
+2469;AI;CIRCLED NUMBER TEN
+246A;AI;CIRCLED NUMBER ELEVEN
+246B;AI;CIRCLED NUMBER TWELVE
+246C;AI;CIRCLED NUMBER THIRTEEN
+246D;AI;CIRCLED NUMBER FOURTEEN
+246E;AI;CIRCLED NUMBER FIFTEEN
+246F;AI;CIRCLED NUMBER SIXTEEN
+2470;AI;CIRCLED NUMBER SEVENTEEN
+2471;AI;CIRCLED NUMBER EIGHTEEN
+2472;AI;CIRCLED NUMBER NINETEEN
+2473;AI;CIRCLED NUMBER TWENTY
+2474;AI;PARENTHESIZED DIGIT ONE
+2475;AI;PARENTHESIZED DIGIT TWO
+2476;AI;PARENTHESIZED DIGIT THREE
+2477;AI;PARENTHESIZED DIGIT FOUR
+2478;AI;PARENTHESIZED DIGIT FIVE
+2479;AI;PARENTHESIZED DIGIT SIX
+247A;AI;PARENTHESIZED DIGIT SEVEN
+247B;AI;PARENTHESIZED DIGIT EIGHT
+247C;AI;PARENTHESIZED DIGIT NINE
+247D;AI;PARENTHESIZED NUMBER TEN
+247E;AI;PARENTHESIZED NUMBER ELEVEN
+247F;AI;PARENTHESIZED NUMBER TWELVE
+2480;AI;PARENTHESIZED NUMBER THIRTEEN
+2481;AI;PARENTHESIZED NUMBER FOURTEEN
+2482;AI;PARENTHESIZED NUMBER FIFTEEN
+2483;AI;PARENTHESIZED NUMBER SIXTEEN
+2484;AI;PARENTHESIZED NUMBER SEVENTEEN
+2485;AI;PARENTHESIZED NUMBER EIGHTEEN
+2486;AI;PARENTHESIZED NUMBER NINETEEN
+2487;AI;PARENTHESIZED NUMBER TWENTY
+2488;AI;DIGIT ONE FULL STOP
+2489;AI;DIGIT TWO FULL STOP
+248A;AI;DIGIT THREE FULL STOP
+248B;AI;DIGIT FOUR FULL STOP
+248C;AI;DIGIT FIVE FULL STOP
+248D;AI;DIGIT SIX FULL STOP
+248E;AI;DIGIT SEVEN FULL STOP
+248F;AI;DIGIT EIGHT FULL STOP
+2490;AI;DIGIT NINE FULL STOP
+2491;AI;NUMBER TEN FULL STOP
+2492;AI;NUMBER ELEVEN FULL STOP
+2493;AI;NUMBER TWELVE FULL STOP
+2494;AI;NUMBER THIRTEEN FULL STOP
+2495;AI;NUMBER FOURTEEN FULL STOP
+2496;AI;NUMBER FIFTEEN FULL STOP
+2497;AI;NUMBER SIXTEEN FULL STOP
+2498;AI;NUMBER SEVENTEEN FULL STOP
+2499;AI;NUMBER EIGHTEEN FULL STOP
+249A;AI;NUMBER NINETEEN FULL STOP
+249B;AI;NUMBER TWENTY FULL STOP
+249C;AI;PARENTHESIZED LATIN SMALL LETTER A
+249D;AI;PARENTHESIZED LATIN SMALL LETTER B
+249E;AI;PARENTHESIZED LATIN SMALL LETTER C
+249F;AI;PARENTHESIZED LATIN SMALL LETTER D
+24A0;AI;PARENTHESIZED LATIN SMALL LETTER E
+24A1;AI;PARENTHESIZED LATIN SMALL LETTER F
+24A2;AI;PARENTHESIZED LATIN SMALL LETTER G
+24A3;AI;PARENTHESIZED LATIN SMALL LETTER H
+24A4;AI;PARENTHESIZED LATIN SMALL LETTER I
+24A5;AI;PARENTHESIZED LATIN SMALL LETTER J
+24A6;AI;PARENTHESIZED LATIN SMALL LETTER K
+24A7;AI;PARENTHESIZED LATIN SMALL LETTER L
+24A8;AI;PARENTHESIZED LATIN SMALL LETTER M
+24A9;AI;PARENTHESIZED LATIN SMALL LETTER N
+24AA;AI;PARENTHESIZED LATIN SMALL LETTER O
+24AB;AI;PARENTHESIZED LATIN SMALL LETTER P
+24AC;AI;PARENTHESIZED LATIN SMALL LETTER Q
+24AD;AI;PARENTHESIZED LATIN SMALL LETTER R
+24AE;AI;PARENTHESIZED LATIN SMALL LETTER S
+24AF;AI;PARENTHESIZED LATIN SMALL LETTER T
+24B0;AI;PARENTHESIZED LATIN SMALL LETTER U
+24B1;AI;PARENTHESIZED LATIN SMALL LETTER V
+24B2;AI;PARENTHESIZED LATIN SMALL LETTER W
+24B3;AI;PARENTHESIZED LATIN SMALL LETTER X
+24B4;AI;PARENTHESIZED LATIN SMALL LETTER Y
+24B5;AI;PARENTHESIZED LATIN SMALL LETTER Z
+24B6;AI;CIRCLED LATIN CAPITAL LETTER A
+24B7;AI;CIRCLED LATIN CAPITAL LETTER B
+24B8;AI;CIRCLED LATIN CAPITAL LETTER C
+24B9;AI;CIRCLED LATIN CAPITAL LETTER D
+24BA;AI;CIRCLED LATIN CAPITAL LETTER E
+24BB;AI;CIRCLED LATIN CAPITAL LETTER F
+24BC;AI;CIRCLED LATIN CAPITAL LETTER G
+24BD;AI;CIRCLED LATIN CAPITAL LETTER H
+24BE;AI;CIRCLED LATIN CAPITAL LETTER I
+24BF;AI;CIRCLED LATIN CAPITAL LETTER J
+24C0;AL;CIRCLED LATIN CAPITAL LETTER K
+24C1;AL;CIRCLED LATIN CAPITAL LETTER L
+24C2;AL;CIRCLED LATIN CAPITAL LETTER M
+24C3;AL;CIRCLED LATIN CAPITAL LETTER N
+24C4;AL;CIRCLED LATIN CAPITAL LETTER O
+24C5;AL;CIRCLED LATIN CAPITAL LETTER P
+24C6;AL;CIRCLED LATIN CAPITAL LETTER Q
+24C7;AL;CIRCLED LATIN CAPITAL LETTER R
+24C8;AL;CIRCLED LATIN CAPITAL LETTER S
+24C9;AL;CIRCLED LATIN CAPITAL LETTER T
+24CA;AL;CIRCLED LATIN CAPITAL LETTER U
+24CB;AL;CIRCLED LATIN CAPITAL LETTER V
+24CC;AL;CIRCLED LATIN CAPITAL LETTER W
+24CD;AL;CIRCLED LATIN CAPITAL LETTER X
+24CE;AL;CIRCLED LATIN CAPITAL LETTER Y
+24CF;AL;CIRCLED LATIN CAPITAL LETTER Z
+24D0;AI;CIRCLED LATIN SMALL LETTER A
+24D1;AI;CIRCLED LATIN SMALL LETTER B
+24D2;AI;CIRCLED LATIN SMALL LETTER C
+24D3;AI;CIRCLED LATIN SMALL LETTER D
+24D4;AI;CIRCLED LATIN SMALL LETTER E
+24D5;AI;CIRCLED LATIN SMALL LETTER F
+24D6;AI;CIRCLED LATIN SMALL LETTER G
+24D7;AI;CIRCLED LATIN SMALL LETTER H
+24D8;AI;CIRCLED LATIN SMALL LETTER I
+24D9;AI;CIRCLED LATIN SMALL LETTER J
+24DA;AI;CIRCLED LATIN SMALL LETTER K
+24DB;AI;CIRCLED LATIN SMALL LETTER L
+24DC;AI;CIRCLED LATIN SMALL LETTER M
+24DD;AI;CIRCLED LATIN SMALL LETTER N
+24DE;AI;CIRCLED LATIN SMALL LETTER O
+24DF;AI;CIRCLED LATIN SMALL LETTER P
+24E0;AI;CIRCLED LATIN SMALL LETTER Q
+24E1;AI;CIRCLED LATIN SMALL LETTER R
+24E2;AI;CIRCLED LATIN SMALL LETTER S
+24E3;AI;CIRCLED LATIN SMALL LETTER T
+24E4;AI;CIRCLED LATIN SMALL LETTER U
+24E5;AI;CIRCLED LATIN SMALL LETTER V
+24E6;AI;CIRCLED LATIN SMALL LETTER W
+24E7;AI;CIRCLED LATIN SMALL LETTER X
+24E8;AI;CIRCLED LATIN SMALL LETTER Y
+24E9;AI;CIRCLED LATIN SMALL LETTER Z
+24EA;AL;CIRCLED DIGIT ZERO
+2500;AI;BOX DRAWINGS LIGHT HORIZONTAL
+2501;AI;BOX DRAWINGS HEAVY HORIZONTAL
+2502;AI;BOX DRAWINGS LIGHT VERTICAL
+2503;AI;BOX DRAWINGS HEAVY VERTICAL
+2504;AI;BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL
+2505;AI;BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL
+2506;AI;BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL
+2507;AI;BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL
+2508;AI;BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL
+2509;AI;BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL
+250A;AI;BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL
+250B;AI;BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL
+250C;AI;BOX DRAWINGS LIGHT DOWN AND RIGHT
+250D;AI;BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY
+250E;AI;BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT
+250F;AI;BOX DRAWINGS HEAVY DOWN AND RIGHT
+2510;AI;BOX DRAWINGS LIGHT DOWN AND LEFT
+2511;AI;BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY
+2512;AI;BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT
+2513;AI;BOX DRAWINGS HEAVY DOWN AND LEFT
+2514;AI;BOX DRAWINGS LIGHT UP AND RIGHT
+2515;AI;BOX DRAWINGS UP LIGHT AND RIGHT HEAVY
+2516;AI;BOX DRAWINGS UP HEAVY AND RIGHT LIGHT
+2517;AI;BOX DRAWINGS HEAVY UP AND RIGHT
+2518;AI;BOX DRAWINGS LIGHT UP AND LEFT
+2519;AI;BOX DRAWINGS UP LIGHT AND LEFT HEAVY
+251A;AI;BOX DRAWINGS UP HEAVY AND LEFT LIGHT
+251B;AI;BOX DRAWINGS HEAVY UP AND LEFT
+251C;AI;BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+251D;AI;BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY
+251E;AI;BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT
+251F;AI;BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT
+2520;AI;BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT
+2521;AI;BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY
+2522;AI;BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY
+2523;AI;BOX DRAWINGS HEAVY VERTICAL AND RIGHT
+2524;AI;BOX DRAWINGS LIGHT VERTICAL AND LEFT
+2525;AI;BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY
+2526;AI;BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT
+2527;AI;BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT
+2528;AI;BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT
+2529;AI;BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY
+252A;AI;BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY
+252B;AI;BOX DRAWINGS HEAVY VERTICAL AND LEFT
+252C;AI;BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+252D;AI;BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT
+252E;AI;BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT
+252F;AI;BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY
+2530;AI;BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT
+2531;AI;BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY
+2532;AI;BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY
+2533;AI;BOX DRAWINGS HEAVY DOWN AND HORIZONTAL
+2534;AI;BOX DRAWINGS LIGHT UP AND HORIZONTAL
+2535;AI;BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT
+2536;AI;BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT
+2537;AI;BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY
+2538;AI;BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT
+2539;AI;BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY
+253A;AI;BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY
+253B;AI;BOX DRAWINGS HEAVY UP AND HORIZONTAL
+253C;AI;BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+253D;AI;BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT
+253E;AI;BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT
+253F;AI;BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY
+2540;AI;BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT
+2541;AI;BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT
+2542;AI;BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT
+2543;AI;BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT
+2544;AI;BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT
+2545;AI;BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT
+2546;AI;BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT
+2547;AI;BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY
+2548;AI;BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY
+2549;AI;BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY
+254A;AI;BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY
+254B;AI;BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL
+254C;AL;BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL
+254D;AL;BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL
+254E;AL;BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL
+254F;AL;BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL
+2550;AI;BOX DRAWINGS DOUBLE HORIZONTAL
+2551;AI;BOX DRAWINGS DOUBLE VERTICAL
+2552;AI;BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+2553;AI;BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+2554;AI;BOX DRAWINGS DOUBLE DOWN AND RIGHT
+2555;AI;BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+2556;AI;BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+2557;AI;BOX DRAWINGS DOUBLE DOWN AND LEFT
+2558;AI;BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+2559;AI;BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+255A;AI;BOX DRAWINGS DOUBLE UP AND RIGHT
+255B;AI;BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+255C;AI;BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+255D;AI;BOX DRAWINGS DOUBLE UP AND LEFT
+255E;AI;BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+255F;AI;BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+2560;AI;BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+2561;AI;BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+2562;AI;BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+2563;AI;BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+2564;AI;BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+2565;AI;BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+2566;AI;BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+2567;AI;BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+2568;AI;BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+2569;AI;BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+256A;AI;BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+256B;AI;BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+256C;AI;BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+256D;AI;BOX DRAWINGS LIGHT ARC DOWN AND RIGHT
+256E;AI;BOX DRAWINGS LIGHT ARC DOWN AND LEFT
+256F;AI;BOX DRAWINGS LIGHT ARC UP AND LEFT
+2570;AI;BOX DRAWINGS LIGHT ARC UP AND RIGHT
+2571;AI;BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT
+2572;AI;BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT
+2573;AI;BOX DRAWINGS LIGHT DIAGONAL CROSS
+2574;AI;BOX DRAWINGS LIGHT LEFT
+2575;AL;BOX DRAWINGS LIGHT UP
+2576;AL;BOX DRAWINGS LIGHT RIGHT
+2577;AL;BOX DRAWINGS LIGHT DOWN
+2578;AL;BOX DRAWINGS HEAVY LEFT
+2579;AL;BOX DRAWINGS HEAVY UP
+257A;AL;BOX DRAWINGS HEAVY RIGHT
+257B;AL;BOX DRAWINGS HEAVY DOWN
+257C;AL;BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT
+257D;AL;BOX DRAWINGS LIGHT UP AND HEAVY DOWN
+257E;AL;BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT
+257F;AL;BOX DRAWINGS HEAVY UP AND LIGHT DOWN
+2580;AI;UPPER HALF BLOCK
+2581;AI;LOWER ONE EIGHTH BLOCK
+2582;AI;LOWER ONE QUARTER BLOCK
+2583;AI;LOWER THREE EIGHTHS BLOCK
+2584;AI;LOWER HALF BLOCK
+2585;AI;LOWER FIVE EIGHTHS BLOCK
+2586;AI;LOWER THREE QUARTERS BLOCK
+2587;AI;LOWER SEVEN EIGHTHS BLOCK
+2588;AI;FULL BLOCK
+2589;AI;LEFT SEVEN EIGHTHS BLOCK
+258A;AI;LEFT THREE QUARTERS BLOCK
+258B;AI;LEFT FIVE EIGHTHS BLOCK
+258C;AI;LEFT HALF BLOCK
+258D;AI;LEFT THREE EIGHTHS BLOCK
+258E;AI;LEFT ONE QUARTER BLOCK
+258F;AI;LEFT ONE EIGHTH BLOCK
+2590;AL;RIGHT HALF BLOCK
+2591;AL;LIGHT SHADE
+2592;AI;MEDIUM SHADE
+2593;AI;DARK SHADE
+2594;AI;UPPER ONE EIGHTH BLOCK
+2595;AI;RIGHT ONE EIGHTH BLOCK
+25A0;AI;BLACK SQUARE
+25A1;AI;WHITE SQUARE
+25A2;AL;WHITE SQUARE WITH ROUNDED CORNERS
+25A3;AI;WHITE SQUARE CONTAINING BLACK SMALL SQUARE
+25A4;AI;SQUARE WITH HORIZONTAL FILL
+25A5;AI;SQUARE WITH VERTICAL FILL
+25A6;AI;SQUARE WITH ORTHOGONAL CROSSHATCH FILL
+25A7;AI;SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL
+25A8;AI;SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL
+25A9;AI;SQUARE WITH DIAGONAL CROSSHATCH FILL
+25AA;AL;BLACK SMALL SQUARE
+25AB;AL;WHITE SMALL SQUARE
+25AC;AL;BLACK RECTANGLE
+25AD;AL;WHITE RECTANGLE
+25AE;AL;BLACK VERTICAL RECTANGLE
+25AF;AL;WHITE VERTICAL RECTANGLE
+25B0;AL;BLACK PARALLELOGRAM
+25B1;AL;WHITE PARALLELOGRAM
+25B2;AI;BLACK UP-POINTING TRIANGLE
+25B3;AI;WHITE UP-POINTING TRIANGLE
+25B4;AL;BLACK UP-POINTING SMALL TRIANGLE
+25B5;AL;WHITE UP-POINTING SMALL TRIANGLE
+25B6;AI;BLACK RIGHT-POINTING TRIANGLE
+25B7;AI;WHITE RIGHT-POINTING TRIANGLE
+25B8;AL;BLACK RIGHT-POINTING SMALL TRIANGLE
+25B9;AL;WHITE RIGHT-POINTING SMALL TRIANGLE
+25BA;AL;BLACK RIGHT-POINTING POINTER
+25BB;AL;WHITE RIGHT-POINTING POINTER
+25BC;AI;BLACK DOWN-POINTING TRIANGLE
+25BD;AI;WHITE DOWN-POINTING TRIANGLE
+25BE;AL;BLACK DOWN-POINTING SMALL TRIANGLE
+25BF;AL;WHITE DOWN-POINTING SMALL TRIANGLE
+25C0;AI;BLACK LEFT-POINTING TRIANGLE
+25C1;AI;WHITE LEFT-POINTING TRIANGLE
+25C2;AL;BLACK LEFT-POINTING SMALL TRIANGLE
+25C3;AL;WHITE LEFT-POINTING SMALL TRIANGLE
+25C4;AL;BLACK LEFT-POINTING POINTER
+25C5;AL;WHITE LEFT-POINTING POINTER
+25C6;AI;BLACK DIAMOND
+25C7;AI;WHITE DIAMOND
+25C8;AL;WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND
+25C9;AL;FISHEYE
+25CA;AL;LOZENGE
+25CB;AI;WHITE CIRCLE
+25CC;AL;DOTTED CIRCLE
+25CD;AL;CIRCLE WITH VERTICAL FILL
+25CE;AI;BULLSEYE
+25CF;AI;BLACK CIRCLE
+25D0;AI;CIRCLE WITH LEFT HALF BLACK
+25D1;AI;CIRCLE WITH RIGHT HALF BLACK
+25D2;AL;CIRCLE WITH LOWER HALF BLACK
+25D3;AL;CIRCLE WITH UPPER HALF BLACK
+25D4;AL;CIRCLE WITH UPPER RIGHT QUADRANT BLACK
+25D5;AL;CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK
+25D6;AL;LEFT HALF BLACK CIRCLE
+25D7;AL;RIGHT HALF BLACK CIRCLE
+25D8;AL;INVERSE BULLET
+25D9;AL;INVERSE WHITE CIRCLE
+25DA;AL;UPPER HALF INVERSE WHITE CIRCLE
+25DB;AL;LOWER HALF INVERSE WHITE CIRCLE
+25DC;AL;UPPER LEFT QUADRANT CIRCULAR ARC
+25DD;AL;UPPER RIGHT QUADRANT CIRCULAR ARC
+25DE;AL;LOWER RIGHT QUADRANT CIRCULAR ARC
+25DF;AL;LOWER LEFT QUADRANT CIRCULAR ARC
+25E0;AL;UPPER HALF CIRCLE
+25E1;AL;LOWER HALF CIRCLE
+25E2;AI;BLACK LOWER RIGHT TRIANGLE
+25E3;AI;BLACK LOWER LEFT TRIANGLE
+25E4;AI;BLACK UPPER LEFT TRIANGLE
+25E5;AI;BLACK UPPER RIGHT TRIANGLE
+25E6;AL;WHITE BULLET
+25E7;AL;SQUARE WITH LEFT HALF BLACK
+25E8;AL;SQUARE WITH RIGHT HALF BLACK
+25E9;AL;SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK
+25EA;AL;SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK
+25EB;AL;WHITE SQUARE WITH VERTICAL BISECTING LINE
+25EC;AL;WHITE UP-POINTING TRIANGLE WITH DOT
+25ED;AL;UP-POINTING TRIANGLE WITH LEFT HALF BLACK
+25EE;AL;UP-POINTING TRIANGLE WITH RIGHT HALF BLACK
+25EF;AI;LARGE CIRCLE
+25F0;AL;WHITE SQUARE WITH UPPER LEFT QUADRANT
+25F1;AL;WHITE SQUARE WITH LOWER LEFT QUADRANT
+25F2;AL;WHITE SQUARE WITH LOWER RIGHT QUADRANT
+25F3;AL;WHITE SQUARE WITH UPPER RIGHT QUADRANT
+25F4;AL;WHITE CIRCLE WITH UPPER LEFT QUADRANT
+25F5;AL;WHITE CIRCLE WITH LOWER LEFT QUADRANT
+25F6;AL;WHITE CIRCLE WITH LOWER RIGHT QUADRANT
+25F7;AL;WHITE CIRCLE WITH UPPER RIGHT QUADRANT
+2600;AL;BLACK SUN WITH RAYS
+2601;AL;CLOUD
+2602;AL;UMBRELLA
+2603;AL;SNOWMAN
+2604;AL;COMET
+2605;AI;BLACK STAR
+2606;AI;WHITE STAR
+2607;AL;LIGHTNING
+2608;AL;THUNDERSTORM
+2609;AI;SUN
+260A;AL;ASCENDING NODE
+260B;AL;DESCENDING NODE
+260C;AL;CONJUNCTION
+260D;AL;OPPOSITION
+260E;AI;BLACK TELEPHONE
+260F;AI;WHITE TELEPHONE
+2610;AL;BALLOT BOX
+2611;AL;BALLOT BOX WITH CHECK
+2612;AL;BALLOT BOX WITH X
+2613;AL;SALTIRE
+2619;AL;REVERSED ROTATED FLORAL HEART BULLET
+261A;AL;BLACK LEFT POINTING INDEX
+261B;AL;BLACK RIGHT POINTING INDEX
+261C;AI;WHITE LEFT POINTING INDEX
+261D;AL;WHITE UP POINTING INDEX
+261E;AI;WHITE RIGHT POINTING INDEX
+261F;AL;WHITE DOWN POINTING INDEX
+2620;AL;SKULL AND CROSSBONES
+2621;AL;CAUTION SIGN
+2622;AL;RADIOACTIVE SIGN
+2623;AL;BIOHAZARD SIGN
+2624;AL;CADUCEUS
+2625;AL;ANKH
+2626;AL;ORTHODOX CROSS
+2627;AL;CHI RHO
+2628;AL;CROSS OF LORRAINE
+2629;AL;CROSS OF JERUSALEM
+262A;AL;STAR AND CRESCENT
+262B;AL;FARSI SYMBOL
+262C;AL;ADI SHAKTI
+262D;AL;HAMMER AND SICKLE
+262E;AL;PEACE SYMBOL
+262F;AL;YIN YANG
+2630;AL;TRIGRAM FOR HEAVEN
+2631;AL;TRIGRAM FOR LAKE
+2632;AL;TRIGRAM FOR FIRE
+2633;AL;TRIGRAM FOR THUNDER
+2634;AL;TRIGRAM FOR WIND
+2635;AL;TRIGRAM FOR WATER
+2636;AL;TRIGRAM FOR MOUNTAIN
+2637;AL;TRIGRAM FOR EARTH
+2638;AL;WHEEL OF DHARMA
+2639;AL;WHITE FROWNING FACE
+263A;AL;WHITE SMILING FACE
+263B;AL;BLACK SMILING FACE
+263C;AL;WHITE SUN WITH RAYS
+263D;AL;FIRST QUARTER MOON
+263E;AL;LAST QUARTER MOON
+263F;AL;MERCURY
+2640;AI;FEMALE SIGN
+2641;AL;EARTH
+2642;AI;MALE SIGN
+2643;AL;JUPITER
+2644;AL;SATURN
+2645;AL;URANUS
+2646;AL;NEPTUNE
+2647;AL;PLUTO
+2648;AL;ARIES
+2649;AL;TAURUS
+264A;AL;GEMINI
+264B;AL;CANCER
+264C;AL;LEO
+264D;AL;VIRGO
+264E;AL;LIBRA
+264F;AL;SCORPIUS
+2650;AL;SAGITTARIUS
+2651;AL;CAPRICORN
+2652;AL;AQUARIUS
+2653;AL;PISCES
+2654;AL;WHITE CHESS KING
+2655;AL;WHITE CHESS QUEEN
+2656;AL;WHITE CHESS ROOK
+2657;AL;WHITE CHESS BISHOP
+2658;AL;WHITE CHESS KNIGHT
+2659;AL;WHITE CHESS PAWN
+265A;AL;BLACK CHESS KING
+265B;AL;BLACK CHESS QUEEN
+265C;AL;BLACK CHESS ROOK
+265D;AL;BLACK CHESS BISHOP
+265E;AL;BLACK CHESS KNIGHT
+265F;AL;BLACK CHESS PAWN
+2660;AI;BLACK SPADE SUIT
+2661;AI;WHITE HEART SUIT
+2662;AL;WHITE DIAMOND SUIT
+2663;AI;BLACK CLUB SUIT
+2664;AI;WHITE SPADE SUIT
+2665;AI;BLACK HEART SUIT
+2666;AL;BLACK DIAMOND SUIT
+2667;AI;WHITE CLUB SUIT
+2668;AI;HOT SPRINGS
+2669;AI;QUARTER NOTE
+266A;AI;EIGHTH NOTE
+266B;AL;BEAMED EIGHTH NOTES
+266C;AI;BEAMED SIXTEENTH NOTES
+266D;AI;MUSIC FLAT SIGN
+266E;AL;MUSIC NATURAL SIGN
+266F;AI;MUSIC SHARP SIGN
+2670;AL;WEST SYRIAC CROSS
+2671;AL;EAST SYRIAC CROSS
+2701;AL;UPPER BLADE SCISSORS
+2702;AL;BLACK SCISSORS
+2703;AL;LOWER BLADE SCISSORS
+2704;AL;WHITE SCISSORS
+2706;AL;TELEPHONE LOCATION SIGN
+2707;AL;TAPE DRIVE
+2708;AL;AIRPLANE
+2709;AL;ENVELOPE
+270C;AL;VICTORY HAND
+270D;AL;WRITING HAND
+270E;AL;LOWER RIGHT PENCIL
+270F;AL;PENCIL
+2710;AL;UPPER RIGHT PENCIL
+2711;AL;WHITE NIB
+2712;AL;BLACK NIB
+2713;AL;CHECK MARK
+2714;AL;HEAVY CHECK MARK
+2715;AL;MULTIPLICATION X
+2716;AL;HEAVY MULTIPLICATION X
+2717;AL;BALLOT X
+2718;AL;HEAVY BALLOT X
+2719;AL;OUTLINED GREEK CROSS
+271A;AL;HEAVY GREEK CROSS
+271B;AL;OPEN CENTRE CROSS
+271C;AL;HEAVY OPEN CENTRE CROSS
+271D;AL;LATIN CROSS
+271E;AL;SHADOWED WHITE LATIN CROSS
+271F;AL;OUTLINED LATIN CROSS
+2720;AL;MALTESE CROSS
+2721;AL;STAR OF DAVID
+2722;AL;FOUR TEARDROP-SPOKED ASTERISK
+2723;AL;FOUR BALLOON-SPOKED ASTERISK
+2724;AL;HEAVY FOUR BALLOON-SPOKED ASTERISK
+2725;AL;FOUR CLUB-SPOKED ASTERISK
+2726;AL;BLACK FOUR POINTED STAR
+2727;AL;WHITE FOUR POINTED STAR
+2729;AL;STRESS OUTLINED WHITE STAR
+272A;AL;CIRCLED WHITE STAR
+272B;AL;OPEN CENTRE BLACK STAR
+272C;AL;BLACK CENTRE WHITE STAR
+272D;AL;OUTLINED BLACK STAR
+272E;AL;HEAVY OUTLINED BLACK STAR
+272F;AL;PINWHEEL STAR
+2730;AL;SHADOWED WHITE STAR
+2731;AL;HEAVY ASTERISK
+2732;AL;OPEN CENTRE ASTERISK
+2733;AL;EIGHT SPOKED ASTERISK
+2734;AL;EIGHT POINTED BLACK STAR
+2735;AL;EIGHT POINTED PINWHEEL STAR
+2736;AL;SIX POINTED BLACK STAR
+2737;AL;EIGHT POINTED RECTILINEAR BLACK STAR
+2738;AL;HEAVY EIGHT POINTED RECTILINEAR BLACK STAR
+2739;AL;TWELVE POINTED BLACK STAR
+273A;AL;SIXTEEN POINTED ASTERISK
+273B;AL;TEARDROP-SPOKED ASTERISK
+273C;AL;OPEN CENTRE TEARDROP-SPOKED ASTERISK
+273D;AL;HEAVY TEARDROP-SPOKED ASTERISK
+273E;AL;SIX PETALLED BLACK AND WHITE FLORETTE
+273F;AL;BLACK FLORETTE
+2740;AL;WHITE FLORETTE
+2741;AL;EIGHT PETALLED OUTLINED BLACK FLORETTE
+2742;AL;CIRCLED OPEN CENTRE EIGHT POINTED STAR
+2743;AL;HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK
+2744;AL;SNOWFLAKE
+2745;AL;TIGHT TRIFOLIATE SNOWFLAKE
+2746;AL;HEAVY CHEVRON SNOWFLAKE
+2747;AL;SPARKLE
+2748;AL;HEAVY SPARKLE
+2749;AL;BALLOON-SPOKED ASTERISK
+274A;AL;EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
+274B;AL;HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
+274D;AL;SHADOWED WHITE CIRCLE
+274F;AL;LOWER RIGHT DROP-SHADOWED WHITE SQUARE
+2750;AL;UPPER RIGHT DROP-SHADOWED WHITE SQUARE
+2751;AL;LOWER RIGHT SHADOWED WHITE SQUARE
+2752;AL;UPPER RIGHT SHADOWED WHITE SQUARE
+2756;AL;BLACK DIAMOND MINUS WHITE X
+2758;AL;LIGHT VERTICAL BAR
+2759;AL;MEDIUM VERTICAL BAR
+275A;AL;HEAVY VERTICAL BAR
+275B;AL;HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT
+275C;AL;HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT
+275D;AL;HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT
+275E;AL;HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
+2761;AL;CURVED STEM PARAGRAPH SIGN ORNAMENT
+2762;AL;HEAVY EXCLAMATION MARK ORNAMENT
+2763;AL;HEAVY HEART EXCLAMATION MARK ORNAMENT
+2764;AL;HEAVY BLACK HEART
+2765;AL;ROTATED HEAVY BLACK HEART BULLET
+2766;AL;FLORAL HEART
+2767;AL;ROTATED FLORAL HEART BULLET
+2776;AL;DINGBAT NEGATIVE CIRCLED DIGIT ONE
+2777;AL;DINGBAT NEGATIVE CIRCLED DIGIT TWO
+2778;AL;DINGBAT NEGATIVE CIRCLED DIGIT THREE
+2779;AL;DINGBAT NEGATIVE CIRCLED DIGIT FOUR
+277A;AL;DINGBAT NEGATIVE CIRCLED DIGIT FIVE
+277B;AL;DINGBAT NEGATIVE CIRCLED DIGIT SIX
+277C;AL;DINGBAT NEGATIVE CIRCLED DIGIT SEVEN
+277D;AL;DINGBAT NEGATIVE CIRCLED DIGIT EIGHT
+277E;AL;DINGBAT NEGATIVE CIRCLED DIGIT NINE
+277F;AL;DINGBAT NEGATIVE CIRCLED NUMBER TEN
+2780;AL;DINGBAT CIRCLED SANS-SERIF DIGIT ONE
+2781;AL;DINGBAT CIRCLED SANS-SERIF DIGIT TWO
+2782;AL;DINGBAT CIRCLED SANS-SERIF DIGIT THREE
+2783;AL;DINGBAT CIRCLED SANS-SERIF DIGIT FOUR
+2784;AL;DINGBAT CIRCLED SANS-SERIF DIGIT FIVE
+2785;AL;DINGBAT CIRCLED SANS-SERIF DIGIT SIX
+2786;AL;DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN
+2787;AL;DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT
+2788;AL;DINGBAT CIRCLED SANS-SERIF DIGIT NINE
+2789;AL;DINGBAT CIRCLED SANS-SERIF NUMBER TEN
+278A;AL;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE
+278B;AL;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO
+278C;AL;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE
+278D;AL;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR
+278E;AL;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE
+278F;AL;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX
+2790;AL;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN
+2791;AL;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT
+2792;AL;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE
+2793;AL;DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
+2794;AL;HEAVY WIDE-HEADED RIGHTWARDS ARROW
+2798;AL;HEAVY SOUTH EAST ARROW
+2799;AL;HEAVY RIGHTWARDS ARROW
+279A;AL;HEAVY NORTH EAST ARROW
+279B;AL;DRAFTING POINT RIGHTWARDS ARROW
+279C;AL;HEAVY ROUND-TIPPED RIGHTWARDS ARROW
+279D;AL;TRIANGLE-HEADED RIGHTWARDS ARROW
+279E;AL;HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW
+279F;AL;DASHED TRIANGLE-HEADED RIGHTWARDS ARROW
+27A0;AL;HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW
+27A1;AL;BLACK RIGHTWARDS ARROW
+27A2;AL;THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD
+27A3;AL;THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD
+27A4;AL;BLACK RIGHTWARDS ARROWHEAD
+27A5;AL;HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW
+27A6;AL;HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW
+27A7;AL;SQUAT BLACK RIGHTWARDS ARROW
+27A8;AL;HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW
+27A9;AL;RIGHT-SHADED WHITE RIGHTWARDS ARROW
+27AA;AL;LEFT-SHADED WHITE RIGHTWARDS ARROW
+27AB;AL;BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW
+27AC;AL;FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW
+27AD;AL;HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
+27AE;AL;HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
+27AF;AL;NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
+27B1;AL;NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
+27B2;AL;CIRCLED HEAVY WHITE RIGHTWARDS ARROW
+27B3;AL;WHITE-FEATHERED RIGHTWARDS ARROW
+27B4;AL;BLACK-FEATHERED SOUTH EAST ARROW
+27B5;AL;BLACK-FEATHERED RIGHTWARDS ARROW
+27B6;AL;BLACK-FEATHERED NORTH EAST ARROW
+27B7;AL;HEAVY BLACK-FEATHERED SOUTH EAST ARROW
+27B8;AL;HEAVY BLACK-FEATHERED RIGHTWARDS ARROW
+27B9;AL;HEAVY BLACK-FEATHERED NORTH EAST ARROW
+27BA;AL;TEARDROP-BARBED RIGHTWARDS ARROW
+27BB;AL;HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW
+27BC;AL;WEDGE-TAILED RIGHTWARDS ARROW
+27BD;AL;HEAVY WEDGE-TAILED RIGHTWARDS ARROW
+27BE;AL;OPEN-OUTLINED RIGHTWARDS ARROW
+2800;AL;BRAILLE PATTERN BLANK
+2801;AL;BRAILLE PATTERN DOTS-1
+2802;AL;BRAILLE PATTERN DOTS-2
+2803;AL;BRAILLE PATTERN DOTS-12
+2804;AL;BRAILLE PATTERN DOTS-3
+2805;AL;BRAILLE PATTERN DOTS-13
+2806;AL;BRAILLE PATTERN DOTS-23
+2807;AL;BRAILLE PATTERN DOTS-123
+2808;AL;BRAILLE PATTERN DOTS-4
+2809;AL;BRAILLE PATTERN DOTS-14
+280A;AL;BRAILLE PATTERN DOTS-24
+280B;AL;BRAILLE PATTERN DOTS-124
+280C;AL;BRAILLE PATTERN DOTS-34
+280D;AL;BRAILLE PATTERN DOTS-134
+280E;AL;BRAILLE PATTERN DOTS-234
+280F;AL;BRAILLE PATTERN DOTS-1234
+2810;AL;BRAILLE PATTERN DOTS-5
+2811;AL;BRAILLE PATTERN DOTS-15
+2812;AL;BRAILLE PATTERN DOTS-25
+2813;AL;BRAILLE PATTERN DOTS-125
+2814;AL;BRAILLE PATTERN DOTS-35
+2815;AL;BRAILLE PATTERN DOTS-135
+2816;AL;BRAILLE PATTERN DOTS-235
+2817;AL;BRAILLE PATTERN DOTS-1235
+2818;AL;BRAILLE PATTERN DOTS-45
+2819;AL;BRAILLE PATTERN DOTS-145
+281A;AL;BRAILLE PATTERN DOTS-245
+281B;AL;BRAILLE PATTERN DOTS-1245
+281C;AL;BRAILLE PATTERN DOTS-345
+281D;AL;BRAILLE PATTERN DOTS-1345
+281E;AL;BRAILLE PATTERN DOTS-2345
+281F;AL;BRAILLE PATTERN DOTS-12345
+2820;AL;BRAILLE PATTERN DOTS-6
+2821;AL;BRAILLE PATTERN DOTS-16
+2822;AL;BRAILLE PATTERN DOTS-26
+2823;AL;BRAILLE PATTERN DOTS-126
+2824;AL;BRAILLE PATTERN DOTS-36
+2825;AL;BRAILLE PATTERN DOTS-136
+2826;AL;BRAILLE PATTERN DOTS-236
+2827;AL;BRAILLE PATTERN DOTS-1236
+2828;AL;BRAILLE PATTERN DOTS-46
+2829;AL;BRAILLE PATTERN DOTS-146
+282A;AL;BRAILLE PATTERN DOTS-246
+282B;AL;BRAILLE PATTERN DOTS-1246
+282C;AL;BRAILLE PATTERN DOTS-346
+282D;AL;BRAILLE PATTERN DOTS-1346
+282E;AL;BRAILLE PATTERN DOTS-2346
+282F;AL;BRAILLE PATTERN DOTS-12346
+2830;AL;BRAILLE PATTERN DOTS-56
+2831;AL;BRAILLE PATTERN DOTS-156
+2832;AL;BRAILLE PATTERN DOTS-256
+2833;AL;BRAILLE PATTERN DOTS-1256
+2834;AL;BRAILLE PATTERN DOTS-356
+2835;AL;BRAILLE PATTERN DOTS-1356
+2836;AL;BRAILLE PATTERN DOTS-2356
+2837;AL;BRAILLE PATTERN DOTS-12356
+2838;AL;BRAILLE PATTERN DOTS-456
+2839;AL;BRAILLE PATTERN DOTS-1456
+283A;AL;BRAILLE PATTERN DOTS-2456
+283B;AL;BRAILLE PATTERN DOTS-12456
+283C;AL;BRAILLE PATTERN DOTS-3456
+283D;AL;BRAILLE PATTERN DOTS-13456
+283E;AL;BRAILLE PATTERN DOTS-23456
+283F;AL;BRAILLE PATTERN DOTS-123456
+2840;AL;BRAILLE PATTERN DOTS-7
+2841;AL;BRAILLE PATTERN DOTS-17
+2842;AL;BRAILLE PATTERN DOTS-27
+2843;AL;BRAILLE PATTERN DOTS-127
+2844;AL;BRAILLE PATTERN DOTS-37
+2845;AL;BRAILLE PATTERN DOTS-137
+2846;AL;BRAILLE PATTERN DOTS-237
+2847;AL;BRAILLE PATTERN DOTS-1237
+2848;AL;BRAILLE PATTERN DOTS-47
+2849;AL;BRAILLE PATTERN DOTS-147
+284A;AL;BRAILLE PATTERN DOTS-247
+284B;AL;BRAILLE PATTERN DOTS-1247
+284C;AL;BRAILLE PATTERN DOTS-347
+284D;AL;BRAILLE PATTERN DOTS-1347
+284E;AL;BRAILLE PATTERN DOTS-2347
+284F;AL;BRAILLE PATTERN DOTS-12347
+2850;AL;BRAILLE PATTERN DOTS-57
+2851;AL;BRAILLE PATTERN DOTS-157
+2852;AL;BRAILLE PATTERN DOTS-257
+2853;AL;BRAILLE PATTERN DOTS-1257
+2854;AL;BRAILLE PATTERN DOTS-357
+2855;AL;BRAILLE PATTERN DOTS-1357
+2856;AL;BRAILLE PATTERN DOTS-2357
+2857;AL;BRAILLE PATTERN DOTS-12357
+2858;AL;BRAILLE PATTERN DOTS-457
+2859;AL;BRAILLE PATTERN DOTS-1457
+285A;AL;BRAILLE PATTERN DOTS-2457
+285B;AL;BRAILLE PATTERN DOTS-12457
+285C;AL;BRAILLE PATTERN DOTS-3457
+285D;AL;BRAILLE PATTERN DOTS-13457
+285E;AL;BRAILLE PATTERN DOTS-23457
+285F;AL;BRAILLE PATTERN DOTS-123457
+2860;AL;BRAILLE PATTERN DOTS-67
+2861;AL;BRAILLE PATTERN DOTS-167
+2862;AL;BRAILLE PATTERN DOTS-267
+2863;AL;BRAILLE PATTERN DOTS-1267
+2864;AL;BRAILLE PATTERN DOTS-367
+2865;AL;BRAILLE PATTERN DOTS-1367
+2866;AL;BRAILLE PATTERN DOTS-2367
+2867;AL;BRAILLE PATTERN DOTS-12367
+2868;AL;BRAILLE PATTERN DOTS-467
+2869;AL;BRAILLE PATTERN DOTS-1467
+286A;AL;BRAILLE PATTERN DOTS-2467
+286B;AL;BRAILLE PATTERN DOTS-12467
+286C;AL;BRAILLE PATTERN DOTS-3467
+286D;AL;BRAILLE PATTERN DOTS-13467
+286E;AL;BRAILLE PATTERN DOTS-23467
+286F;AL;BRAILLE PATTERN DOTS-123467
+2870;AL;BRAILLE PATTERN DOTS-567
+2871;AL;BRAILLE PATTERN DOTS-1567
+2872;AL;BRAILLE PATTERN DOTS-2567
+2873;AL;BRAILLE PATTERN DOTS-12567
+2874;AL;BRAILLE PATTERN DOTS-3567
+2875;AL;BRAILLE PATTERN DOTS-13567
+2876;AL;BRAILLE PATTERN DOTS-23567
+2877;AL;BRAILLE PATTERN DOTS-123567
+2878;AL;BRAILLE PATTERN DOTS-4567
+2879;AL;BRAILLE PATTERN DOTS-14567
+287A;AL;BRAILLE PATTERN DOTS-24567
+287B;AL;BRAILLE PATTERN DOTS-124567
+287C;AL;BRAILLE PATTERN DOTS-34567
+287D;AL;BRAILLE PATTERN DOTS-134567
+287E;AL;BRAILLE PATTERN DOTS-234567
+287F;AL;BRAILLE PATTERN DOTS-1234567
+2880;AL;BRAILLE PATTERN DOTS-8
+2881;AL;BRAILLE PATTERN DOTS-18
+2882;AL;BRAILLE PATTERN DOTS-28
+2883;AL;BRAILLE PATTERN DOTS-128
+2884;AL;BRAILLE PATTERN DOTS-38
+2885;AL;BRAILLE PATTERN DOTS-138
+2886;AL;BRAILLE PATTERN DOTS-238
+2887;AL;BRAILLE PATTERN DOTS-1238
+2888;AL;BRAILLE PATTERN DOTS-48
+2889;AL;BRAILLE PATTERN DOTS-148
+288A;AL;BRAILLE PATTERN DOTS-248
+288B;AL;BRAILLE PATTERN DOTS-1248
+288C;AL;BRAILLE PATTERN DOTS-348
+288D;AL;BRAILLE PATTERN DOTS-1348
+288E;AL;BRAILLE PATTERN DOTS-2348
+288F;AL;BRAILLE PATTERN DOTS-12348
+2890;AL;BRAILLE PATTERN DOTS-58
+2891;AL;BRAILLE PATTERN DOTS-158
+2892;AL;BRAILLE PATTERN DOTS-258
+2893;AL;BRAILLE PATTERN DOTS-1258
+2894;AL;BRAILLE PATTERN DOTS-358
+2895;AL;BRAILLE PATTERN DOTS-1358
+2896;AL;BRAILLE PATTERN DOTS-2358
+2897;AL;BRAILLE PATTERN DOTS-12358
+2898;AL;BRAILLE PATTERN DOTS-458
+2899;AL;BRAILLE PATTERN DOTS-1458
+289A;AL;BRAILLE PATTERN DOTS-2458
+289B;AL;BRAILLE PATTERN DOTS-12458
+289C;AL;BRAILLE PATTERN DOTS-3458
+289D;AL;BRAILLE PATTERN DOTS-13458
+289E;AL;BRAILLE PATTERN DOTS-23458
+289F;AL;BRAILLE PATTERN DOTS-123458
+28A0;AL;BRAILLE PATTERN DOTS-68
+28A1;AL;BRAILLE PATTERN DOTS-168
+28A2;AL;BRAILLE PATTERN DOTS-268
+28A3;AL;BRAILLE PATTERN DOTS-1268
+28A4;AL;BRAILLE PATTERN DOTS-368
+28A5;AL;BRAILLE PATTERN DOTS-1368
+28A6;AL;BRAILLE PATTERN DOTS-2368
+28A7;AL;BRAILLE PATTERN DOTS-12368
+28A8;AL;BRAILLE PATTERN DOTS-468
+28A9;AL;BRAILLE PATTERN DOTS-1468
+28AA;AL;BRAILLE PATTERN DOTS-2468
+28AB;AL;BRAILLE PATTERN DOTS-12468
+28AC;AL;BRAILLE PATTERN DOTS-3468
+28AD;AL;BRAILLE PATTERN DOTS-13468
+28AE;AL;BRAILLE PATTERN DOTS-23468
+28AF;AL;BRAILLE PATTERN DOTS-123468
+28B0;AL;BRAILLE PATTERN DOTS-568
+28B1;AL;BRAILLE PATTERN DOTS-1568
+28B2;AL;BRAILLE PATTERN DOTS-2568
+28B3;AL;BRAILLE PATTERN DOTS-12568
+28B4;AL;BRAILLE PATTERN DOTS-3568
+28B5;AL;BRAILLE PATTERN DOTS-13568
+28B6;AL;BRAILLE PATTERN DOTS-23568
+28B7;AL;BRAILLE PATTERN DOTS-123568
+28B8;AL;BRAILLE PATTERN DOTS-4568
+28B9;AL;BRAILLE PATTERN DOTS-14568
+28BA;AL;BRAILLE PATTERN DOTS-24568
+28BB;AL;BRAILLE PATTERN DOTS-124568
+28BC;AL;BRAILLE PATTERN DOTS-34568
+28BD;AL;BRAILLE PATTERN DOTS-134568
+28BE;AL;BRAILLE PATTERN DOTS-234568
+28BF;AL;BRAILLE PATTERN DOTS-1234568
+28C0;AL;BRAILLE PATTERN DOTS-78
+28C1;AL;BRAILLE PATTERN DOTS-178
+28C2;AL;BRAILLE PATTERN DOTS-278
+28C3;AL;BRAILLE PATTERN DOTS-1278
+28C4;AL;BRAILLE PATTERN DOTS-378
+28C5;AL;BRAILLE PATTERN DOTS-1378
+28C6;AL;BRAILLE PATTERN DOTS-2378
+28C7;AL;BRAILLE PATTERN DOTS-12378
+28C8;AL;BRAILLE PATTERN DOTS-478
+28C9;AL;BRAILLE PATTERN DOTS-1478
+28CA;AL;BRAILLE PATTERN DOTS-2478
+28CB;AL;BRAILLE PATTERN DOTS-12478
+28CC;AL;BRAILLE PATTERN DOTS-3478
+28CD;AL;BRAILLE PATTERN DOTS-13478
+28CE;AL;BRAILLE PATTERN DOTS-23478
+28CF;AL;BRAILLE PATTERN DOTS-123478
+28D0;AL;BRAILLE PATTERN DOTS-578
+28D1;AL;BRAILLE PATTERN DOTS-1578
+28D2;AL;BRAILLE PATTERN DOTS-2578
+28D3;AL;BRAILLE PATTERN DOTS-12578
+28D4;AL;BRAILLE PATTERN DOTS-3578
+28D5;AL;BRAILLE PATTERN DOTS-13578
+28D6;AL;BRAILLE PATTERN DOTS-23578
+28D7;AL;BRAILLE PATTERN DOTS-123578
+28D8;AL;BRAILLE PATTERN DOTS-4578
+28D9;AL;BRAILLE PATTERN DOTS-14578
+28DA;AL;BRAILLE PATTERN DOTS-24578
+28DB;AL;BRAILLE PATTERN DOTS-124578
+28DC;AL;BRAILLE PATTERN DOTS-34578
+28DD;AL;BRAILLE PATTERN DOTS-134578
+28DE;AL;BRAILLE PATTERN DOTS-234578
+28DF;AL;BRAILLE PATTERN DOTS-1234578
+28E0;AL;BRAILLE PATTERN DOTS-678
+28E1;AL;BRAILLE PATTERN DOTS-1678
+28E2;AL;BRAILLE PATTERN DOTS-2678
+28E3;AL;BRAILLE PATTERN DOTS-12678
+28E4;AL;BRAILLE PATTERN DOTS-3678
+28E5;AL;BRAILLE PATTERN DOTS-13678
+28E6;AL;BRAILLE PATTERN DOTS-23678
+28E7;AL;BRAILLE PATTERN DOTS-123678
+28E8;AL;BRAILLE PATTERN DOTS-4678
+28E9;AL;BRAILLE PATTERN DOTS-14678
+28EA;AL;BRAILLE PATTERN DOTS-24678
+28EB;AL;BRAILLE PATTERN DOTS-124678
+28EC;AL;BRAILLE PATTERN DOTS-34678
+28ED;AL;BRAILLE PATTERN DOTS-134678
+28EE;AL;BRAILLE PATTERN DOTS-234678
+28EF;AL;BRAILLE PATTERN DOTS-1234678
+28F0;AL;BRAILLE PATTERN DOTS-5678
+28F1;AL;BRAILLE PATTERN DOTS-15678
+28F2;AL;BRAILLE PATTERN DOTS-25678
+28F3;AL;BRAILLE PATTERN DOTS-125678
+28F4;AL;BRAILLE PATTERN DOTS-35678
+28F5;AL;BRAILLE PATTERN DOTS-135678
+28F6;AL;BRAILLE PATTERN DOTS-235678
+28F7;AL;BRAILLE PATTERN DOTS-1235678
+28F8;AL;BRAILLE PATTERN DOTS-45678
+28F9;AL;BRAILLE PATTERN DOTS-145678
+28FA;AL;BRAILLE PATTERN DOTS-245678
+28FB;AL;BRAILLE PATTERN DOTS-1245678
+28FC;AL;BRAILLE PATTERN DOTS-345678
+28FD;AL;BRAILLE PATTERN DOTS-1345678
+28FE;AL;BRAILLE PATTERN DOTS-2345678
+28FF;AL;BRAILLE PATTERN DOTS-12345678
+2E80;ID;CJK RADICAL REPEAT
+2E81;ID;CJK RADICAL CLIFF
+2E82;ID;CJK RADICAL SECOND ONE
+2E83;ID;CJK RADICAL SECOND TWO
+2E84;ID;CJK RADICAL SECOND THREE
+2E85;ID;CJK RADICAL PERSON
+2E86;ID;CJK RADICAL BOX
+2E87;ID;CJK RADICAL TABLE
+2E88;ID;CJK RADICAL KNIFE ONE
+2E89;ID;CJK RADICAL KNIFE TWO
+2E8A;ID;CJK RADICAL DIVINATION
+2E8B;ID;CJK RADICAL SEAL
+2E8C;ID;CJK RADICAL SMALL ONE
+2E8D;ID;CJK RADICAL SMALL TWO
+2E8E;ID;CJK RADICAL LAME ONE
+2E8F;ID;CJK RADICAL LAME TWO
+2E90;ID;CJK RADICAL LAME THREE
+2E91;ID;CJK RADICAL LAME FOUR
+2E92;ID;CJK RADICAL SNAKE
+2E93;ID;CJK RADICAL THREAD
+2E94;ID;CJK RADICAL SNOUT ONE
+2E95;ID;CJK RADICAL SNOUT TWO
+2E96;ID;CJK RADICAL HEART ONE
+2E97;ID;CJK RADICAL HEART TWO
+2E98;ID;CJK RADICAL HAND
+2E99;ID;CJK RADICAL RAP
+2E9B;ID;CJK RADICAL CHOKE
+2E9C;ID;CJK RADICAL SUN
+2E9D;ID;CJK RADICAL MOON
+2E9E;ID;CJK RADICAL DEATH
+2E9F;ID;CJK RADICAL MOTHER
+2EA0;ID;CJK RADICAL CIVILIAN
+2EA1;ID;CJK RADICAL WATER ONE
+2EA2;ID;CJK RADICAL WATER TWO
+2EA3;ID;CJK RADICAL FIRE
+2EA4;ID;CJK RADICAL PAW ONE
+2EA5;ID;CJK RADICAL PAW TWO
+2EA6;ID;CJK RADICAL SIMPLIFIED HALF TREE TRUNK
+2EA7;ID;CJK RADICAL COW
+2EA8;ID;CJK RADICAL DOG
+2EA9;ID;CJK RADICAL JADE
+2EAA;ID;CJK RADICAL BOLT OF CLOTH
+2EAB;ID;CJK RADICAL EYE
+2EAC;ID;CJK RADICAL SPIRIT ONE
+2EAD;ID;CJK RADICAL SPIRIT TWO
+2EAE;ID;CJK RADICAL BAMBOO
+2EAF;ID;CJK RADICAL SILK
+2EB0;ID;CJK RADICAL C-SIMPLIFIED SILK
+2EB1;ID;CJK RADICAL NET ONE
+2EB2;ID;CJK RADICAL NET TWO
+2EB3;ID;CJK RADICAL NET THREE
+2EB4;ID;CJK RADICAL NET FOUR
+2EB5;ID;CJK RADICAL MESH
+2EB6;ID;CJK RADICAL SHEEP
+2EB7;ID;CJK RADICAL RAM
+2EB8;ID;CJK RADICAL EWE
+2EB9;ID;CJK RADICAL OLD
+2EBA;ID;CJK RADICAL BRUSH ONE
+2EBB;ID;CJK RADICAL BRUSH TWO
+2EBC;ID;CJK RADICAL MEAT
+2EBD;ID;CJK RADICAL MORTAR
+2EBE;ID;CJK RADICAL GRASS ONE
+2EBF;ID;CJK RADICAL GRASS TWO
+2EC0;ID;CJK RADICAL GRASS THREE
+2EC1;ID;CJK RADICAL TIGER
+2EC2;ID;CJK RADICAL CLOTHES
+2EC3;ID;CJK RADICAL WEST ONE
+2EC4;ID;CJK RADICAL WEST TWO
+2EC5;ID;CJK RADICAL C-SIMPLIFIED SEE
+2EC6;ID;CJK RADICAL SIMPLIFIED HORN
+2EC7;ID;CJK RADICAL HORN
+2EC8;ID;CJK RADICAL C-SIMPLIFIED SPEECH
+2EC9;ID;CJK RADICAL C-SIMPLIFIED SHELL
+2ECA;ID;CJK RADICAL FOOT
+2ECB;ID;CJK RADICAL C-SIMPLIFIED CART
+2ECC;ID;CJK RADICAL SIMPLIFIED WALK
+2ECD;ID;CJK RADICAL WALK ONE
+2ECE;ID;CJK RADICAL WALK TWO
+2ECF;ID;CJK RADICAL CITY
+2ED0;ID;CJK RADICAL C-SIMPLIFIED GOLD
+2ED1;ID;CJK RADICAL LONG ONE
+2ED2;ID;CJK RADICAL LONG TWO
+2ED3;ID;CJK RADICAL C-SIMPLIFIED LONG
+2ED4;ID;CJK RADICAL C-SIMPLIFIED GATE
+2ED5;ID;CJK RADICAL MOUND ONE
+2ED6;ID;CJK RADICAL MOUND TWO
+2ED7;ID;CJK RADICAL RAIN
+2ED8;ID;CJK RADICAL BLUE
+2ED9;ID;CJK RADICAL C-SIMPLIFIED TANNED LEATHER
+2EDA;ID;CJK RADICAL C-SIMPLIFIED LEAF
+2EDB;ID;CJK RADICAL C-SIMPLIFIED WIND
+2EDC;ID;CJK RADICAL C-SIMPLIFIED FLY
+2EDD;ID;CJK RADICAL EAT ONE
+2EDE;ID;CJK RADICAL EAT TWO
+2EDF;ID;CJK RADICAL EAT THREE
+2EE0;ID;CJK RADICAL C-SIMPLIFIED EAT
+2EE1;ID;CJK RADICAL HEAD
+2EE2;ID;CJK RADICAL C-SIMPLIFIED HORSE
+2EE3;ID;CJK RADICAL BONE
+2EE4;ID;CJK RADICAL GHOST
+2EE5;ID;CJK RADICAL C-SIMPLIFIED FISH
+2EE6;ID;CJK RADICAL C-SIMPLIFIED BIRD
+2EE7;ID;CJK RADICAL C-SIMPLIFIED SALT
+2EE8;ID;CJK RADICAL SIMPLIFIED WHEAT
+2EE9;ID;CJK RADICAL SIMPLIFIED YELLOW
+2EEA;ID;CJK RADICAL C-SIMPLIFIED FROG
+2EEB;ID;CJK RADICAL J-SIMPLIFIED EVEN
+2EEC;ID;CJK RADICAL C-SIMPLIFIED EVEN
+2EED;ID;CJK RADICAL J-SIMPLIFIED TOOTH
+2EEE;ID;CJK RADICAL C-SIMPLIFIED TOOTH
+2EEF;ID;CJK RADICAL J-SIMPLIFIED DRAGON
+2EF0;ID;CJK RADICAL C-SIMPLIFIED DRAGON
+2EF1;ID;CJK RADICAL TURTLE
+2EF2;ID;CJK RADICAL J-SIMPLIFIED TURTLE
+2EF3;ID;CJK RADICAL C-SIMPLIFIED TURTLE
+2F00;ID;KANGXI RADICAL ONE
+2F01;ID;KANGXI RADICAL LINE
+2F02;ID;KANGXI RADICAL DOT
+2F03;ID;KANGXI RADICAL SLASH
+2F04;ID;KANGXI RADICAL SECOND
+2F05;ID;KANGXI RADICAL HOOK
+2F06;ID;KANGXI RADICAL TWO
+2F07;ID;KANGXI RADICAL LID
+2F08;ID;KANGXI RADICAL MAN
+2F09;ID;KANGXI RADICAL LEGS
+2F0A;ID;KANGXI RADICAL ENTER
+2F0B;ID;KANGXI RADICAL EIGHT
+2F0C;ID;KANGXI RADICAL DOWN BOX
+2F0D;ID;KANGXI RADICAL COVER
+2F0E;ID;KANGXI RADICAL ICE
+2F0F;ID;KANGXI RADICAL TABLE
+2F10;ID;KANGXI RADICAL OPEN BOX
+2F11;ID;KANGXI RADICAL KNIFE
+2F12;ID;KANGXI RADICAL POWER
+2F13;ID;KANGXI RADICAL WRAP
+2F14;ID;KANGXI RADICAL SPOON
+2F15;ID;KANGXI RADICAL RIGHT OPEN BOX
+2F16;ID;KANGXI RADICAL HIDING ENCLOSURE
+2F17;ID;KANGXI RADICAL TEN
+2F18;ID;KANGXI RADICAL DIVINATION
+2F19;ID;KANGXI RADICAL SEAL
+2F1A;ID;KANGXI RADICAL CLIFF
+2F1B;ID;KANGXI RADICAL PRIVATE
+2F1C;ID;KANGXI RADICAL AGAIN
+2F1D;ID;KANGXI RADICAL MOUTH
+2F1E;ID;KANGXI RADICAL ENCLOSURE
+2F1F;ID;KANGXI RADICAL EARTH
+2F20;ID;KANGXI RADICAL SCHOLAR
+2F21;ID;KANGXI RADICAL GO
+2F22;ID;KANGXI RADICAL GO SLOWLY
+2F23;ID;KANGXI RADICAL EVENING
+2F24;ID;KANGXI RADICAL BIG
+2F25;ID;KANGXI RADICAL WOMAN
+2F26;ID;KANGXI RADICAL CHILD
+2F27;ID;KANGXI RADICAL ROOF
+2F28;ID;KANGXI RADICAL INCH
+2F29;ID;KANGXI RADICAL SMALL
+2F2A;ID;KANGXI RADICAL LAME
+2F2B;ID;KANGXI RADICAL CORPSE
+2F2C;ID;KANGXI RADICAL SPROUT
+2F2D;ID;KANGXI RADICAL MOUNTAIN
+2F2E;ID;KANGXI RADICAL RIVER
+2F2F;ID;KANGXI RADICAL WORK
+2F30;ID;KANGXI RADICAL ONESELF
+2F31;ID;KANGXI RADICAL TURBAN
+2F32;ID;KANGXI RADICAL DRY
+2F33;ID;KANGXI RADICAL SHORT THREAD
+2F34;ID;KANGXI RADICAL DOTTED CLIFF
+2F35;ID;KANGXI RADICAL LONG STRIDE
+2F36;ID;KANGXI RADICAL TWO HANDS
+2F37;ID;KANGXI RADICAL SHOOT
+2F38;ID;KANGXI RADICAL BOW
+2F39;ID;KANGXI RADICAL SNOUT
+2F3A;ID;KANGXI RADICAL BRISTLE
+2F3B;ID;KANGXI RADICAL STEP
+2F3C;ID;KANGXI RADICAL HEART
+2F3D;ID;KANGXI RADICAL HALBERD
+2F3E;ID;KANGXI RADICAL DOOR
+2F3F;ID;KANGXI RADICAL HAND
+2F40;ID;KANGXI RADICAL BRANCH
+2F41;ID;KANGXI RADICAL RAP
+2F42;ID;KANGXI RADICAL SCRIPT
+2F43;ID;KANGXI RADICAL DIPPER
+2F44;ID;KANGXI RADICAL AXE
+2F45;ID;KANGXI RADICAL SQUARE
+2F46;ID;KANGXI RADICAL NOT
+2F47;ID;KANGXI RADICAL SUN
+2F48;ID;KANGXI RADICAL SAY
+2F49;ID;KANGXI RADICAL MOON
+2F4A;ID;KANGXI RADICAL TREE
+2F4B;ID;KANGXI RADICAL LACK
+2F4C;ID;KANGXI RADICAL STOP
+2F4D;ID;KANGXI RADICAL DEATH
+2F4E;ID;KANGXI RADICAL WEAPON
+2F4F;ID;KANGXI RADICAL DO NOT
+2F50;ID;KANGXI RADICAL COMPARE
+2F51;ID;KANGXI RADICAL FUR
+2F52;ID;KANGXI RADICAL CLAN
+2F53;ID;KANGXI RADICAL STEAM
+2F54;ID;KANGXI RADICAL WATER
+2F55;ID;KANGXI RADICAL FIRE
+2F56;ID;KANGXI RADICAL CLAW
+2F57;ID;KANGXI RADICAL FATHER
+2F58;ID;KANGXI RADICAL DOUBLE X
+2F59;ID;KANGXI RADICAL HALF TREE TRUNK
+2F5A;ID;KANGXI RADICAL SLICE
+2F5B;ID;KANGXI RADICAL FANG
+2F5C;ID;KANGXI RADICAL COW
+2F5D;ID;KANGXI RADICAL DOG
+2F5E;ID;KANGXI RADICAL PROFOUND
+2F5F;ID;KANGXI RADICAL JADE
+2F60;ID;KANGXI RADICAL MELON
+2F61;ID;KANGXI RADICAL TILE
+2F62;ID;KANGXI RADICAL SWEET
+2F63;ID;KANGXI RADICAL LIFE
+2F64;ID;KANGXI RADICAL USE
+2F65;ID;KANGXI RADICAL FIELD
+2F66;ID;KANGXI RADICAL BOLT OF CLOTH
+2F67;ID;KANGXI RADICAL SICKNESS
+2F68;ID;KANGXI RADICAL DOTTED TENT
+2F69;ID;KANGXI RADICAL WHITE
+2F6A;ID;KANGXI RADICAL SKIN
+2F6B;ID;KANGXI RADICAL DISH
+2F6C;ID;KANGXI RADICAL EYE
+2F6D;ID;KANGXI RADICAL SPEAR
+2F6E;ID;KANGXI RADICAL ARROW
+2F6F;ID;KANGXI RADICAL STONE
+2F70;ID;KANGXI RADICAL SPIRIT
+2F71;ID;KANGXI RADICAL TRACK
+2F72;ID;KANGXI RADICAL GRAIN
+2F73;ID;KANGXI RADICAL CAVE
+2F74;ID;KANGXI RADICAL STAND
+2F75;ID;KANGXI RADICAL BAMBOO
+2F76;ID;KANGXI RADICAL RICE
+2F77;ID;KANGXI RADICAL SILK
+2F78;ID;KANGXI RADICAL JAR
+2F79;ID;KANGXI RADICAL NET
+2F7A;ID;KANGXI RADICAL SHEEP
+2F7B;ID;KANGXI RADICAL FEATHER
+2F7C;ID;KANGXI RADICAL OLD
+2F7D;ID;KANGXI RADICAL AND
+2F7E;ID;KANGXI RADICAL PLOW
+2F7F;ID;KANGXI RADICAL EAR
+2F80;ID;KANGXI RADICAL BRUSH
+2F81;ID;KANGXI RADICAL MEAT
+2F82;ID;KANGXI RADICAL MINISTER
+2F83;ID;KANGXI RADICAL SELF
+2F84;ID;KANGXI RADICAL ARRIVE
+2F85;ID;KANGXI RADICAL MORTAR
+2F86;ID;KANGXI RADICAL TONGUE
+2F87;ID;KANGXI RADICAL OPPOSE
+2F88;ID;KANGXI RADICAL BOAT
+2F89;ID;KANGXI RADICAL STOPPING
+2F8A;ID;KANGXI RADICAL COLOR
+2F8B;ID;KANGXI RADICAL GRASS
+2F8C;ID;KANGXI RADICAL TIGER
+2F8D;ID;KANGXI RADICAL INSECT
+2F8E;ID;KANGXI RADICAL BLOOD
+2F8F;ID;KANGXI RADICAL WALK ENCLOSURE
+2F90;ID;KANGXI RADICAL CLOTHES
+2F91;ID;KANGXI RADICAL WEST
+2F92;ID;KANGXI RADICAL SEE
+2F93;ID;KANGXI RADICAL HORN
+2F94;ID;KANGXI RADICAL SPEECH
+2F95;ID;KANGXI RADICAL VALLEY
+2F96;ID;KANGXI RADICAL BEAN
+2F97;ID;KANGXI RADICAL PIG
+2F98;ID;KANGXI RADICAL BADGER
+2F99;ID;KANGXI RADICAL SHELL
+2F9A;ID;KANGXI RADICAL RED
+2F9B;ID;KANGXI RADICAL RUN
+2F9C;ID;KANGXI RADICAL FOOT
+2F9D;ID;KANGXI RADICAL BODY
+2F9E;ID;KANGXI RADICAL CART
+2F9F;ID;KANGXI RADICAL BITTER
+2FA0;ID;KANGXI RADICAL MORNING
+2FA1;ID;KANGXI RADICAL WALK
+2FA2;ID;KANGXI RADICAL CITY
+2FA3;ID;KANGXI RADICAL WINE
+2FA4;ID;KANGXI RADICAL DISTINGUISH
+2FA5;ID;KANGXI RADICAL VILLAGE
+2FA6;ID;KANGXI RADICAL GOLD
+2FA7;ID;KANGXI RADICAL LONG
+2FA8;ID;KANGXI RADICAL GATE
+2FA9;ID;KANGXI RADICAL MOUND
+2FAA;ID;KANGXI RADICAL SLAVE
+2FAB;ID;KANGXI RADICAL SHORT TAILED BIRD
+2FAC;ID;KANGXI RADICAL RAIN
+2FAD;ID;KANGXI RADICAL BLUE
+2FAE;ID;KANGXI RADICAL WRONG
+2FAF;ID;KANGXI RADICAL FACE
+2FB0;ID;KANGXI RADICAL LEATHER
+2FB1;ID;KANGXI RADICAL TANNED LEATHER
+2FB2;ID;KANGXI RADICAL LEEK
+2FB3;ID;KANGXI RADICAL SOUND
+2FB4;ID;KANGXI RADICAL LEAF
+2FB5;ID;KANGXI RADICAL WIND
+2FB6;ID;KANGXI RADICAL FLY
+2FB7;ID;KANGXI RADICAL EAT
+2FB8;ID;KANGXI RADICAL HEAD
+2FB9;ID;KANGXI RADICAL FRAGRANT
+2FBA;ID;KANGXI RADICAL HORSE
+2FBB;ID;KANGXI RADICAL BONE
+2FBC;ID;KANGXI RADICAL TALL
+2FBD;ID;KANGXI RADICAL HAIR
+2FBE;ID;KANGXI RADICAL FIGHT
+2FBF;ID;KANGXI RADICAL SACRIFICIAL WINE
+2FC0;ID;KANGXI RADICAL CAULDRON
+2FC1;ID;KANGXI RADICAL GHOST
+2FC2;ID;KANGXI RADICAL FISH
+2FC3;ID;KANGXI RADICAL BIRD
+2FC4;ID;KANGXI RADICAL SALT
+2FC5;ID;KANGXI RADICAL DEER
+2FC6;ID;KANGXI RADICAL WHEAT
+2FC7;ID;KANGXI RADICAL HEMP
+2FC8;ID;KANGXI RADICAL YELLOW
+2FC9;ID;KANGXI RADICAL MILLET
+2FCA;ID;KANGXI RADICAL BLACK
+2FCB;ID;KANGXI RADICAL EMBROIDERY
+2FCC;ID;KANGXI RADICAL FROG
+2FCD;ID;KANGXI RADICAL TRIPOD
+2FCE;ID;KANGXI RADICAL DRUM
+2FCF;ID;KANGXI RADICAL RAT
+2FD0;ID;KANGXI RADICAL NOSE
+2FD1;ID;KANGXI RADICAL EVEN
+2FD2;ID;KANGXI RADICAL TOOTH
+2FD3;ID;KANGXI RADICAL DRAGON
+2FD4;ID;KANGXI RADICAL TURTLE
+2FD5;ID;KANGXI RADICAL FLUTE
+2FF0;ID;IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT
+2FF1;ID;IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW
+2FF2;ID;IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT
+2FF3;ID;IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW
+2FF4;ID;IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND
+2FF5;ID;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE
+2FF6;ID;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW
+2FF7;ID;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT
+2FF8;ID;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT
+2FF9;ID;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT
+2FFA;ID;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT
+2FFB;ID;IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
+3000;ID;IDEOGRAPHIC SPACE
+3001;CL;IDEOGRAPHIC COMMA
+3002;CL;IDEOGRAPHIC FULL STOP
+3003;ID;DITTO MARK
+3004;ID;JAPANESE INDUSTRIAL STANDARD SYMBOL
+3005;NS;IDEOGRAPHIC ITERATION MARK
+3006;ID;IDEOGRAPHIC CLOSING MARK
+3007;ID;IDEOGRAPHIC NUMBER ZERO
+3008;OP;LEFT ANGLE BRACKET
+3009;CL;RIGHT ANGLE BRACKET
+300A;OP;LEFT DOUBLE ANGLE BRACKET
+300B;CL;RIGHT DOUBLE ANGLE BRACKET
+300C;OP;LEFT CORNER BRACKET
+300D;CL;RIGHT CORNER BRACKET
+300E;OP;LEFT WHITE CORNER BRACKET
+300F;CL;RIGHT WHITE CORNER BRACKET
+3010;OP;LEFT BLACK LENTICULAR BRACKET
+3011;CL;RIGHT BLACK LENTICULAR BRACKET
+3012;ID;POSTAL MARK
+3013;ID;GETA MARK
+3014;OP;LEFT TORTOISE SHELL BRACKET
+3015;CL;RIGHT TORTOISE SHELL BRACKET
+3016;OP;LEFT WHITE LENTICULAR BRACKET
+3017;CL;RIGHT WHITE LENTICULAR BRACKET
+3018;OP;LEFT WHITE TORTOISE SHELL BRACKET
+3019;CL;RIGHT WHITE TORTOISE SHELL BRACKET
+301A;OP;LEFT WHITE SQUARE BRACKET
+301B;CL;RIGHT WHITE SQUARE BRACKET
+301C;NS;WAVE DASH
+301D;OP;REVERSED DOUBLE PRIME QUOTATION MARK
+301E;CL;DOUBLE PRIME QUOTATION MARK
+301F;CL;LOW DOUBLE PRIME QUOTATION MARK
+3020;ID;POSTAL MARK FACE
+3021;ID;HANGZHOU NUMERAL ONE
+3022;ID;HANGZHOU NUMERAL TWO
+3023;ID;HANGZHOU NUMERAL THREE
+3024;ID;HANGZHOU NUMERAL FOUR
+3025;ID;HANGZHOU NUMERAL FIVE
+3026;ID;HANGZHOU NUMERAL SIX
+3027;ID;HANGZHOU NUMERAL SEVEN
+3028;ID;HANGZHOU NUMERAL EIGHT
+3029;ID;HANGZHOU NUMERAL NINE
+302A;CM;IDEOGRAPHIC LEVEL TONE MARK
+302B;CM;IDEOGRAPHIC RISING TONE MARK
+302C;CM;IDEOGRAPHIC DEPARTING TONE MARK
+302D;CM;IDEOGRAPHIC ENTERING TONE MARK
+302E;CM;HANGUL SINGLE DOT TONE MARK
+302F;CM;HANGUL DOUBLE DOT TONE MARK
+3030;ID;WAVY DASH
+3031;ID;VERTICAL KANA REPEAT MARK
+3032;ID;VERTICAL KANA REPEAT WITH VOICED SOUND MARK
+3033;ID;VERTICAL KANA REPEAT MARK UPPER HALF
+3034;ID;VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF
+3035;ID;VERTICAL KANA REPEAT MARK LOWER HALF
+3036;ID;CIRCLED POSTAL MARK
+3037;ID;IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL
+3038;ID;HANGZHOU NUMERAL TEN
+3039;ID;HANGZHOU NUMERAL TWENTY
+303A;ID;HANGZHOU NUMERAL THIRTY
+303E;ID;IDEOGRAPHIC VARIATION INDICATOR
+303F;ID;IDEOGRAPHIC HALF FILL SPACE
+3041;NS;HIRAGANA LETTER SMALL A
+3042;ID;HIRAGANA LETTER A
+3043;NS;HIRAGANA LETTER SMALL I
+3044;ID;HIRAGANA LETTER I
+3045;NS;HIRAGANA LETTER SMALL U
+3046;ID;HIRAGANA LETTER U
+3047;NS;HIRAGANA LETTER SMALL E
+3048;ID;HIRAGANA LETTER E
+3049;NS;HIRAGANA LETTER SMALL O
+304A;ID;HIRAGANA LETTER O
+304B;ID;HIRAGANA LETTER KA
+304C;ID;HIRAGANA LETTER GA
+304D;ID;HIRAGANA LETTER KI
+304E;ID;HIRAGANA LETTER GI
+304F;ID;HIRAGANA LETTER KU
+3050;ID;HIRAGANA LETTER GU
+3051;ID;HIRAGANA LETTER KE
+3052;ID;HIRAGANA LETTER GE
+3053;ID;HIRAGANA LETTER KO
+3054;ID;HIRAGANA LETTER GO
+3055;ID;HIRAGANA LETTER SA
+3056;ID;HIRAGANA LETTER ZA
+3057;ID;HIRAGANA LETTER SI
+3058;ID;HIRAGANA LETTER ZI
+3059;ID;HIRAGANA LETTER SU
+305A;ID;HIRAGANA LETTER ZU
+305B;ID;HIRAGANA LETTER SE
+305C;ID;HIRAGANA LETTER ZE
+305D;ID;HIRAGANA LETTER SO
+305E;ID;HIRAGANA LETTER ZO
+305F;ID;HIRAGANA LETTER TA
+3060;ID;HIRAGANA LETTER DA
+3061;ID;HIRAGANA LETTER TI
+3062;ID;HIRAGANA LETTER DI
+3063;NS;HIRAGANA LETTER SMALL TU
+3064;ID;HIRAGANA LETTER TU
+3065;ID;HIRAGANA LETTER DU
+3066;ID;HIRAGANA LETTER TE
+3067;ID;HIRAGANA LETTER DE
+3068;ID;HIRAGANA LETTER TO
+3069;ID;HIRAGANA LETTER DO
+306A;ID;HIRAGANA LETTER NA
+306B;ID;HIRAGANA LETTER NI
+306C;ID;HIRAGANA LETTER NU
+306D;ID;HIRAGANA LETTER NE
+306E;ID;HIRAGANA LETTER NO
+306F;ID;HIRAGANA LETTER HA
+3070;ID;HIRAGANA LETTER BA
+3071;ID;HIRAGANA LETTER PA
+3072;ID;HIRAGANA LETTER HI
+3073;ID;HIRAGANA LETTER BI
+3074;ID;HIRAGANA LETTER PI
+3075;ID;HIRAGANA LETTER HU
+3076;ID;HIRAGANA LETTER BU
+3077;ID;HIRAGANA LETTER PU
+3078;ID;HIRAGANA LETTER HE
+3079;ID;HIRAGANA LETTER BE
+307A;ID;HIRAGANA LETTER PE
+307B;ID;HIRAGANA LETTER HO
+307C;ID;HIRAGANA LETTER BO
+307D;ID;HIRAGANA LETTER PO
+307E;ID;HIRAGANA LETTER MA
+307F;ID;HIRAGANA LETTER MI
+3080;ID;HIRAGANA LETTER MU
+3081;ID;HIRAGANA LETTER ME
+3082;ID;HIRAGANA LETTER MO
+3083;NS;HIRAGANA LETTER SMALL YA
+3084;ID;HIRAGANA LETTER YA
+3085;NS;HIRAGANA LETTER SMALL YU
+3086;ID;HIRAGANA LETTER YU
+3087;NS;HIRAGANA LETTER SMALL YO
+3088;ID;HIRAGANA LETTER YO
+3089;ID;HIRAGANA LETTER RA
+308A;ID;HIRAGANA LETTER RI
+308B;ID;HIRAGANA LETTER RU
+308C;ID;HIRAGANA LETTER RE
+308D;ID;HIRAGANA LETTER RO
+308E;NS;HIRAGANA LETTER SMALL WA
+308F;ID;HIRAGANA LETTER WA
+3090;ID;HIRAGANA LETTER WI
+3091;ID;HIRAGANA LETTER WE
+3092;ID;HIRAGANA LETTER WO
+3093;ID;HIRAGANA LETTER N
+3094;ID;HIRAGANA LETTER VU
+3099;CM;COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
+309A;CM;COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+309B;NS;KATAKANA-HIRAGANA VOICED SOUND MARK
+309C;NS;KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+309D;NS;HIRAGANA ITERATION MARK
+309E;NS;HIRAGANA VOICED ITERATION MARK
+30A1;NS;KATAKANA LETTER SMALL A
+30A2;ID;KATAKANA LETTER A
+30A3;NS;KATAKANA LETTER SMALL I
+30A4;ID;KATAKANA LETTER I
+30A5;NS;KATAKANA LETTER SMALL U
+30A6;ID;KATAKANA LETTER U
+30A7;NS;KATAKANA LETTER SMALL E
+30A8;ID;KATAKANA LETTER E
+30A9;NS;KATAKANA LETTER SMALL O
+30AA;ID;KATAKANA LETTER O
+30AB;ID;KATAKANA LETTER KA
+30AC;ID;KATAKANA LETTER GA
+30AD;ID;KATAKANA LETTER KI
+30AE;ID;KATAKANA LETTER GI
+30AF;ID;KATAKANA LETTER KU
+30B0;ID;KATAKANA LETTER GU
+30B1;ID;KATAKANA LETTER KE
+30B2;ID;KATAKANA LETTER GE
+30B3;ID;KATAKANA LETTER KO
+30B4;ID;KATAKANA LETTER GO
+30B5;ID;KATAKANA LETTER SA
+30B6;ID;KATAKANA LETTER ZA
+30B7;ID;KATAKANA LETTER SI
+30B8;ID;KATAKANA LETTER ZI
+30B9;ID;KATAKANA LETTER SU
+30BA;ID;KATAKANA LETTER ZU
+30BB;ID;KATAKANA LETTER SE
+30BC;ID;KATAKANA LETTER ZE
+30BD;ID;KATAKANA LETTER SO
+30BE;ID;KATAKANA LETTER ZO
+30BF;ID;KATAKANA LETTER TA
+30C0;ID;KATAKANA LETTER DA
+30C1;ID;KATAKANA LETTER TI
+30C2;ID;KATAKANA LETTER DI
+30C3;NS;KATAKANA LETTER SMALL TU
+30C4;ID;KATAKANA LETTER TU
+30C5;ID;KATAKANA LETTER DU
+30C6;ID;KATAKANA LETTER TE
+30C7;ID;KATAKANA LETTER DE
+30C8;ID;KATAKANA LETTER TO
+30C9;ID;KATAKANA LETTER DO
+30CA;ID;KATAKANA LETTER NA
+30CB;ID;KATAKANA LETTER NI
+30CC;ID;KATAKANA LETTER NU
+30CD;ID;KATAKANA LETTER NE
+30CE;ID;KATAKANA LETTER NO
+30CF;ID;KATAKANA LETTER HA
+30D0;ID;KATAKANA LETTER BA
+30D1;ID;KATAKANA LETTER PA
+30D2;ID;KATAKANA LETTER HI
+30D3;ID;KATAKANA LETTER BI
+30D4;ID;KATAKANA LETTER PI
+30D5;ID;KATAKANA LETTER HU
+30D6;ID;KATAKANA LETTER BU
+30D7;ID;KATAKANA LETTER PU
+30D8;ID;KATAKANA LETTER HE
+30D9;ID;KATAKANA LETTER BE
+30DA;ID;KATAKANA LETTER PE
+30DB;ID;KATAKANA LETTER HO
+30DC;ID;KATAKANA LETTER BO
+30DD;ID;KATAKANA LETTER PO
+30DE;ID;KATAKANA LETTER MA
+30DF;ID;KATAKANA LETTER MI
+30E0;ID;KATAKANA LETTER MU
+30E1;ID;KATAKANA LETTER ME
+30E2;ID;KATAKANA LETTER MO
+30E3;NS;KATAKANA LETTER SMALL YA
+30E4;ID;KATAKANA LETTER YA
+30E5;NS;KATAKANA LETTER SMALL YU
+30E6;ID;KATAKANA LETTER YU
+30E7;NS;KATAKANA LETTER SMALL YO
+30E8;ID;KATAKANA LETTER YO
+30E9;ID;KATAKANA LETTER RA
+30EA;ID;KATAKANA LETTER RI
+30EB;ID;KATAKANA LETTER RU
+30EC;ID;KATAKANA LETTER RE
+30ED;ID;KATAKANA LETTER RO
+30EE;NS;KATAKANA LETTER SMALL WA
+30EF;ID;KATAKANA LETTER WA
+30F0;ID;KATAKANA LETTER WI
+30F1;ID;KATAKANA LETTER WE
+30F2;ID;KATAKANA LETTER WO
+30F3;ID;KATAKANA LETTER N
+30F4;ID;KATAKANA LETTER VU
+30F5;NS;KATAKANA LETTER SMALL KA
+30F6;NS;KATAKANA LETTER SMALL KE
+30F7;ID;KATAKANA LETTER VA
+30F8;ID;KATAKANA LETTER VI
+30F9;ID;KATAKANA LETTER VE
+30FA;ID;KATAKANA LETTER VO
+30FB;NS;KATAKANA MIDDLE DOT
+30FC;ID;KATAKANA-HIRAGANA PROLONGED SOUND MARK
+30FD;NS;KATAKANA ITERATION MARK
+30FE;ID;KATAKANA VOICED ITERATION MARK
+3105;ID;BOPOMOFO LETTER B
+3106;ID;BOPOMOFO LETTER P
+3107;ID;BOPOMOFO LETTER M
+3108;ID;BOPOMOFO LETTER F
+3109;ID;BOPOMOFO LETTER D
+310A;ID;BOPOMOFO LETTER T
+310B;ID;BOPOMOFO LETTER N
+310C;ID;BOPOMOFO LETTER L
+310D;ID;BOPOMOFO LETTER G
+310E;ID;BOPOMOFO LETTER K
+310F;ID;BOPOMOFO LETTER H
+3110;ID;BOPOMOFO LETTER J
+3111;ID;BOPOMOFO LETTER Q
+3112;ID;BOPOMOFO LETTER X
+3113;ID;BOPOMOFO LETTER ZH
+3114;ID;BOPOMOFO LETTER CH
+3115;ID;BOPOMOFO LETTER SH
+3116;ID;BOPOMOFO LETTER R
+3117;ID;BOPOMOFO LETTER Z
+3118;ID;BOPOMOFO LETTER C
+3119;ID;BOPOMOFO LETTER S
+311A;ID;BOPOMOFO LETTER A
+311B;ID;BOPOMOFO LETTER O
+311C;ID;BOPOMOFO LETTER E
+311D;ID;BOPOMOFO LETTER EH
+311E;ID;BOPOMOFO LETTER AI
+311F;ID;BOPOMOFO LETTER EI
+3120;ID;BOPOMOFO LETTER AU
+3121;ID;BOPOMOFO LETTER OU
+3122;ID;BOPOMOFO LETTER AN
+3123;ID;BOPOMOFO LETTER EN
+3124;ID;BOPOMOFO LETTER ANG
+3125;ID;BOPOMOFO LETTER ENG
+3126;ID;BOPOMOFO LETTER ER
+3127;ID;BOPOMOFO LETTER I
+3128;ID;BOPOMOFO LETTER U
+3129;ID;BOPOMOFO LETTER IU
+312A;ID;BOPOMOFO LETTER V
+312B;ID;BOPOMOFO LETTER NG
+312C;ID;BOPOMOFO LETTER GN
+3131;ID;HANGUL LETTER KIYEOK
+3132;ID;HANGUL LETTER SSANGKIYEOK
+3133;ID;HANGUL LETTER KIYEOK-SIOS
+3134;ID;HANGUL LETTER NIEUN
+3135;ID;HANGUL LETTER NIEUN-CIEUC
+3136;ID;HANGUL LETTER NIEUN-HIEUH
+3137;ID;HANGUL LETTER TIKEUT
+3138;ID;HANGUL LETTER SSANGTIKEUT
+3139;ID;HANGUL LETTER RIEUL
+313A;ID;HANGUL LETTER RIEUL-KIYEOK
+313B;ID;HANGUL LETTER RIEUL-MIEUM
+313C;ID;HANGUL LETTER RIEUL-PIEUP
+313D;ID;HANGUL LETTER RIEUL-SIOS
+313E;ID;HANGUL LETTER RIEUL-THIEUTH
+313F;ID;HANGUL LETTER RIEUL-PHIEUPH
+3140;ID;HANGUL LETTER RIEUL-HIEUH
+3141;ID;HANGUL LETTER MIEUM
+3142;ID;HANGUL LETTER PIEUP
+3143;ID;HANGUL LETTER SSANGPIEUP
+3144;ID;HANGUL LETTER PIEUP-SIOS
+3145;ID;HANGUL LETTER SIOS
+3146;ID;HANGUL LETTER SSANGSIOS
+3147;ID;HANGUL LETTER IEUNG
+3148;ID;HANGUL LETTER CIEUC
+3149;ID;HANGUL LETTER SSANGCIEUC
+314A;ID;HANGUL LETTER CHIEUCH
+314B;ID;HANGUL LETTER KHIEUKH
+314C;ID;HANGUL LETTER THIEUTH
+314D;ID;HANGUL LETTER PHIEUPH
+314E;ID;HANGUL LETTER HIEUH
+314F;ID;HANGUL LETTER A
+3150;ID;HANGUL LETTER AE
+3151;ID;HANGUL LETTER YA
+3152;ID;HANGUL LETTER YAE
+3153;ID;HANGUL LETTER EO
+3154;ID;HANGUL LETTER E
+3155;ID;HANGUL LETTER YEO
+3156;ID;HANGUL LETTER YE
+3157;ID;HANGUL LETTER O
+3158;ID;HANGUL LETTER WA
+3159;ID;HANGUL LETTER WAE
+315A;ID;HANGUL LETTER OE
+315B;ID;HANGUL LETTER YO
+315C;ID;HANGUL LETTER U
+315D;ID;HANGUL LETTER WEO
+315E;ID;HANGUL LETTER WE
+315F;ID;HANGUL LETTER WI
+3160;ID;HANGUL LETTER YU
+3161;ID;HANGUL LETTER EU
+3162;ID;HANGUL LETTER YI
+3163;ID;HANGUL LETTER I
+3164;ID;HANGUL FILLER
+3165;ID;HANGUL LETTER SSANGNIEUN
+3166;ID;HANGUL LETTER NIEUN-TIKEUT
+3167;ID;HANGUL LETTER NIEUN-SIOS
+3168;ID;HANGUL LETTER NIEUN-PANSIOS
+3169;ID;HANGUL LETTER RIEUL-KIYEOK-SIOS
+316A;ID;HANGUL LETTER RIEUL-TIKEUT
+316B;ID;HANGUL LETTER RIEUL-PIEUP-SIOS
+316C;ID;HANGUL LETTER RIEUL-PANSIOS
+316D;ID;HANGUL LETTER RIEUL-YEORINHIEUH
+316E;ID;HANGUL LETTER MIEUM-PIEUP
+316F;ID;HANGUL LETTER MIEUM-SIOS
+3170;ID;HANGUL LETTER MIEUM-PANSIOS
+3171;ID;HANGUL LETTER KAPYEOUNMIEUM
+3172;ID;HANGUL LETTER PIEUP-KIYEOK
+3173;ID;HANGUL LETTER PIEUP-TIKEUT
+3174;ID;HANGUL LETTER PIEUP-SIOS-KIYEOK
+3175;ID;HANGUL LETTER PIEUP-SIOS-TIKEUT
+3176;ID;HANGUL LETTER PIEUP-CIEUC
+3177;ID;HANGUL LETTER PIEUP-THIEUTH
+3178;ID;HANGUL LETTER KAPYEOUNPIEUP
+3179;ID;HANGUL LETTER KAPYEOUNSSANGPIEUP
+317A;ID;HANGUL LETTER SIOS-KIYEOK
+317B;ID;HANGUL LETTER SIOS-NIEUN
+317C;ID;HANGUL LETTER SIOS-TIKEUT
+317D;ID;HANGUL LETTER SIOS-PIEUP
+317E;ID;HANGUL LETTER SIOS-CIEUC
+317F;ID;HANGUL LETTER PANSIOS
+3180;ID;HANGUL LETTER SSANGIEUNG
+3181;ID;HANGUL LETTER YESIEUNG
+3182;ID;HANGUL LETTER YESIEUNG-SIOS
+3183;ID;HANGUL LETTER YESIEUNG-PANSIOS
+3184;ID;HANGUL LETTER KAPYEOUNPHIEUPH
+3185;ID;HANGUL LETTER SSANGHIEUH
+3186;ID;HANGUL LETTER YEORINHIEUH
+3187;ID;HANGUL LETTER YO-YA
+3188;ID;HANGUL LETTER YO-YAE
+3189;ID;HANGUL LETTER YO-I
+318A;ID;HANGUL LETTER YU-YEO
+318B;ID;HANGUL LETTER YU-YE
+318C;ID;HANGUL LETTER YU-I
+318D;ID;HANGUL LETTER ARAEA
+318E;ID;HANGUL LETTER ARAEAE
+3190;ID;IDEOGRAPHIC ANNOTATION LINKING MARK
+3191;ID;IDEOGRAPHIC ANNOTATION REVERSE MARK
+3192;ID;IDEOGRAPHIC ANNOTATION ONE MARK
+3193;ID;IDEOGRAPHIC ANNOTATION TWO MARK
+3194;ID;IDEOGRAPHIC ANNOTATION THREE MARK
+3195;ID;IDEOGRAPHIC ANNOTATION FOUR MARK
+3196;ID;IDEOGRAPHIC ANNOTATION TOP MARK
+3197;ID;IDEOGRAPHIC ANNOTATION MIDDLE MARK
+3198;ID;IDEOGRAPHIC ANNOTATION BOTTOM MARK
+3199;ID;IDEOGRAPHIC ANNOTATION FIRST MARK
+319A;ID;IDEOGRAPHIC ANNOTATION SECOND MARK
+319B;ID;IDEOGRAPHIC ANNOTATION THIRD MARK
+319C;ID;IDEOGRAPHIC ANNOTATION FOURTH MARK
+319D;ID;IDEOGRAPHIC ANNOTATION HEAVEN MARK
+319E;ID;IDEOGRAPHIC ANNOTATION EARTH MARK
+319F;ID;IDEOGRAPHIC ANNOTATION MAN MARK
+31A0;ID;BOPOMOFO LETTER BU
+31A1;ID;BOPOMOFO LETTER ZI
+31A2;ID;BOPOMOFO LETTER JI
+31A3;ID;BOPOMOFO LETTER GU
+31A4;ID;BOPOMOFO LETTER EE
+31A5;ID;BOPOMOFO LETTER ENN
+31A6;ID;BOPOMOFO LETTER OO
+31A7;ID;BOPOMOFO LETTER ONN
+31A8;ID;BOPOMOFO LETTER IR
+31A9;ID;BOPOMOFO LETTER ANN
+31AA;ID;BOPOMOFO LETTER INN
+31AB;ID;BOPOMOFO LETTER UNN
+31AC;ID;BOPOMOFO LETTER IM
+31AD;ID;BOPOMOFO LETTER NGG
+31AE;ID;BOPOMOFO LETTER AINN
+31AF;ID;BOPOMOFO LETTER AUNN
+31B0;ID;BOPOMOFO LETTER AM
+31B1;ID;BOPOMOFO LETTER OM
+31B2;ID;BOPOMOFO LETTER ONG
+31B3;ID;BOPOMOFO LETTER INNN
+31B4;ID;BOPOMOFO FINAL LETTER P
+31B5;ID;BOPOMOFO FINAL LETTER T
+31B6;ID;BOPOMOFO FINAL LETTER K
+31B7;ID;BOPOMOFO FINAL LETTER H
+3200;ID;PARENTHESIZED HANGUL KIYEOK
+3201;ID;PARENTHESIZED HANGUL NIEUN
+3202;ID;PARENTHESIZED HANGUL TIKEUT
+3203;ID;PARENTHESIZED HANGUL RIEUL
+3204;ID;PARENTHESIZED HANGUL MIEUM
+3205;ID;PARENTHESIZED HANGUL PIEUP
+3206;ID;PARENTHESIZED HANGUL SIOS
+3207;ID;PARENTHESIZED HANGUL IEUNG
+3208;ID;PARENTHESIZED HANGUL CIEUC
+3209;ID;PARENTHESIZED HANGUL CHIEUCH
+320A;ID;PARENTHESIZED HANGUL KHIEUKH
+320B;ID;PARENTHESIZED HANGUL THIEUTH
+320C;ID;PARENTHESIZED HANGUL PHIEUPH
+320D;ID;PARENTHESIZED HANGUL HIEUH
+320E;ID;PARENTHESIZED HANGUL KIYEOK A
+320F;ID;PARENTHESIZED HANGUL NIEUN A
+3210;ID;PARENTHESIZED HANGUL TIKEUT A
+3211;ID;PARENTHESIZED HANGUL RIEUL A
+3212;ID;PARENTHESIZED HANGUL MIEUM A
+3213;ID;PARENTHESIZED HANGUL PIEUP A
+3214;ID;PARENTHESIZED HANGUL SIOS A
+3215;ID;PARENTHESIZED HANGUL IEUNG A
+3216;ID;PARENTHESIZED HANGUL CIEUC A
+3217;ID;PARENTHESIZED HANGUL CHIEUCH A
+3218;ID;PARENTHESIZED HANGUL KHIEUKH A
+3219;ID;PARENTHESIZED HANGUL THIEUTH A
+321A;ID;PARENTHESIZED HANGUL PHIEUPH A
+321B;ID;PARENTHESIZED HANGUL HIEUH A
+321C;ID;PARENTHESIZED HANGUL CIEUC U
+3220;ID;PARENTHESIZED IDEOGRAPH ONE
+3221;ID;PARENTHESIZED IDEOGRAPH TWO
+3222;ID;PARENTHESIZED IDEOGRAPH THREE
+3223;ID;PARENTHESIZED IDEOGRAPH FOUR
+3224;ID;PARENTHESIZED IDEOGRAPH FIVE
+3225;ID;PARENTHESIZED IDEOGRAPH SIX
+3226;ID;PARENTHESIZED IDEOGRAPH SEVEN
+3227;ID;PARENTHESIZED IDEOGRAPH EIGHT
+3228;ID;PARENTHESIZED IDEOGRAPH NINE
+3229;ID;PARENTHESIZED IDEOGRAPH TEN
+322A;ID;PARENTHESIZED IDEOGRAPH MOON
+322B;ID;PARENTHESIZED IDEOGRAPH FIRE
+322C;ID;PARENTHESIZED IDEOGRAPH WATER
+322D;ID;PARENTHESIZED IDEOGRAPH WOOD
+322E;ID;PARENTHESIZED IDEOGRAPH METAL
+322F;ID;PARENTHESIZED IDEOGRAPH EARTH
+3230;ID;PARENTHESIZED IDEOGRAPH SUN
+3231;ID;PARENTHESIZED IDEOGRAPH STOCK
+3232;ID;PARENTHESIZED IDEOGRAPH HAVE
+3233;ID;PARENTHESIZED IDEOGRAPH SOCIETY
+3234;ID;PARENTHESIZED IDEOGRAPH NAME
+3235;ID;PARENTHESIZED IDEOGRAPH SPECIAL
+3236;ID;PARENTHESIZED IDEOGRAPH FINANCIAL
+3237;ID;PARENTHESIZED IDEOGRAPH CONGRATULATION
+3238;ID;PARENTHESIZED IDEOGRAPH LABOR
+3239;ID;PARENTHESIZED IDEOGRAPH REPRESENT
+323A;ID;PARENTHESIZED IDEOGRAPH CALL
+323B;ID;PARENTHESIZED IDEOGRAPH STUDY
+323C;ID;PARENTHESIZED IDEOGRAPH SUPERVISE
+323D;ID;PARENTHESIZED IDEOGRAPH ENTERPRISE
+323E;ID;PARENTHESIZED IDEOGRAPH RESOURCE
+323F;ID;PARENTHESIZED IDEOGRAPH ALLIANCE
+3240;ID;PARENTHESIZED IDEOGRAPH FESTIVAL
+3241;ID;PARENTHESIZED IDEOGRAPH REST
+3242;ID;PARENTHESIZED IDEOGRAPH SELF
+3243;ID;PARENTHESIZED IDEOGRAPH REACH
+3260;ID;CIRCLED HANGUL KIYEOK
+3261;ID;CIRCLED HANGUL NIEUN
+3262;ID;CIRCLED HANGUL TIKEUT
+3263;ID;CIRCLED HANGUL RIEUL
+3264;ID;CIRCLED HANGUL MIEUM
+3265;ID;CIRCLED HANGUL PIEUP
+3266;ID;CIRCLED HANGUL SIOS
+3267;ID;CIRCLED HANGUL IEUNG
+3268;ID;CIRCLED HANGUL CIEUC
+3269;ID;CIRCLED HANGUL CHIEUCH
+326A;ID;CIRCLED HANGUL KHIEUKH
+326B;ID;CIRCLED HANGUL THIEUTH
+326C;ID;CIRCLED HANGUL PHIEUPH
+326D;ID;CIRCLED HANGUL HIEUH
+326E;ID;CIRCLED HANGUL KIYEOK A
+326F;ID;CIRCLED HANGUL NIEUN A
+3270;ID;CIRCLED HANGUL TIKEUT A
+3271;ID;CIRCLED HANGUL RIEUL A
+3272;ID;CIRCLED HANGUL MIEUM A
+3273;ID;CIRCLED HANGUL PIEUP A
+3274;ID;CIRCLED HANGUL SIOS A
+3275;ID;CIRCLED HANGUL IEUNG A
+3276;ID;CIRCLED HANGUL CIEUC A
+3277;ID;CIRCLED HANGUL CHIEUCH A
+3278;ID;CIRCLED HANGUL KHIEUKH A
+3279;ID;CIRCLED HANGUL THIEUTH A
+327A;ID;CIRCLED HANGUL PHIEUPH A
+327B;ID;CIRCLED HANGUL HIEUH A
+327F;ID;KOREAN STANDARD SYMBOL
+3280;ID;CIRCLED IDEOGRAPH ONE
+3281;ID;CIRCLED IDEOGRAPH TWO
+3282;ID;CIRCLED IDEOGRAPH THREE
+3283;ID;CIRCLED IDEOGRAPH FOUR
+3284;ID;CIRCLED IDEOGRAPH FIVE
+3285;ID;CIRCLED IDEOGRAPH SIX
+3286;ID;CIRCLED IDEOGRAPH SEVEN
+3287;ID;CIRCLED IDEOGRAPH EIGHT
+3288;ID;CIRCLED IDEOGRAPH NINE
+3289;ID;CIRCLED IDEOGRAPH TEN
+328A;ID;CIRCLED IDEOGRAPH MOON
+328B;ID;CIRCLED IDEOGRAPH FIRE
+328C;ID;CIRCLED IDEOGRAPH WATER
+328D;ID;CIRCLED IDEOGRAPH WOOD
+328E;ID;CIRCLED IDEOGRAPH METAL
+328F;ID;CIRCLED IDEOGRAPH EARTH
+3290;ID;CIRCLED IDEOGRAPH SUN
+3291;ID;CIRCLED IDEOGRAPH STOCK
+3292;ID;CIRCLED IDEOGRAPH HAVE
+3293;ID;CIRCLED IDEOGRAPH SOCIETY
+3294;ID;CIRCLED IDEOGRAPH NAME
+3295;ID;CIRCLED IDEOGRAPH SPECIAL
+3296;ID;CIRCLED IDEOGRAPH FINANCIAL
+3297;ID;CIRCLED IDEOGRAPH CONGRATULATION
+3298;ID;CIRCLED IDEOGRAPH LABOR
+3299;ID;CIRCLED IDEOGRAPH SECRET
+329A;ID;CIRCLED IDEOGRAPH MALE
+329B;ID;CIRCLED IDEOGRAPH FEMALE
+329C;ID;CIRCLED IDEOGRAPH SUITABLE
+329D;ID;CIRCLED IDEOGRAPH EXCELLENT
+329E;ID;CIRCLED IDEOGRAPH PRINT
+329F;ID;CIRCLED IDEOGRAPH ATTENTION
+32A0;ID;CIRCLED IDEOGRAPH ITEM
+32A1;ID;CIRCLED IDEOGRAPH REST
+32A2;ID;CIRCLED IDEOGRAPH COPY
+32A3;ID;CIRCLED IDEOGRAPH CORRECT
+32A4;ID;CIRCLED IDEOGRAPH HIGH
+32A5;ID;CIRCLED IDEOGRAPH CENTRE
+32A6;ID;CIRCLED IDEOGRAPH LOW
+32A7;ID;CIRCLED IDEOGRAPH LEFT
+32A8;ID;CIRCLED IDEOGRAPH RIGHT
+32A9;ID;CIRCLED IDEOGRAPH MEDICINE
+32AA;ID;CIRCLED IDEOGRAPH RELIGION
+32AB;ID;CIRCLED IDEOGRAPH STUDY
+32AC;ID;CIRCLED IDEOGRAPH SUPERVISE
+32AD;ID;CIRCLED IDEOGRAPH ENTERPRISE
+32AE;ID;CIRCLED IDEOGRAPH RESOURCE
+32AF;ID;CIRCLED IDEOGRAPH ALLIANCE
+32B0;ID;CIRCLED IDEOGRAPH NIGHT
+32C0;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY
+32C1;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY
+32C2;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH
+32C3;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL
+32C4;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY
+32C5;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE
+32C6;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY
+32C7;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST
+32C8;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER
+32C9;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER
+32CA;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER
+32CB;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
+32D0;ID;CIRCLED KATAKANA A
+32D1;ID;CIRCLED KATAKANA I
+32D2;ID;CIRCLED KATAKANA U
+32D3;ID;CIRCLED KATAKANA E
+32D4;ID;CIRCLED KATAKANA O
+32D5;ID;CIRCLED KATAKANA KA
+32D6;ID;CIRCLED KATAKANA KI
+32D7;ID;CIRCLED KATAKANA KU
+32D8;ID;CIRCLED KATAKANA KE
+32D9;ID;CIRCLED KATAKANA KO
+32DA;ID;CIRCLED KATAKANA SA
+32DB;ID;CIRCLED KATAKANA SI
+32DC;ID;CIRCLED KATAKANA SU
+32DD;ID;CIRCLED KATAKANA SE
+32DE;ID;CIRCLED KATAKANA SO
+32DF;ID;CIRCLED KATAKANA TA
+32E0;ID;CIRCLED KATAKANA TI
+32E1;ID;CIRCLED KATAKANA TU
+32E2;ID;CIRCLED KATAKANA TE
+32E3;ID;CIRCLED KATAKANA TO
+32E4;ID;CIRCLED KATAKANA NA
+32E5;ID;CIRCLED KATAKANA NI
+32E6;ID;CIRCLED KATAKANA NU
+32E7;ID;CIRCLED KATAKANA NE
+32E8;ID;CIRCLED KATAKANA NO
+32E9;ID;CIRCLED KATAKANA HA
+32EA;ID;CIRCLED KATAKANA HI
+32EB;ID;CIRCLED KATAKANA HU
+32EC;ID;CIRCLED KATAKANA HE
+32ED;ID;CIRCLED KATAKANA HO
+32EE;ID;CIRCLED KATAKANA MA
+32EF;ID;CIRCLED KATAKANA MI
+32F0;ID;CIRCLED KATAKANA MU
+32F1;ID;CIRCLED KATAKANA ME
+32F2;ID;CIRCLED KATAKANA MO
+32F3;ID;CIRCLED KATAKANA YA
+32F4;ID;CIRCLED KATAKANA YU
+32F5;ID;CIRCLED KATAKANA YO
+32F6;ID;CIRCLED KATAKANA RA
+32F7;ID;CIRCLED KATAKANA RI
+32F8;ID;CIRCLED KATAKANA RU
+32F9;ID;CIRCLED KATAKANA RE
+32FA;ID;CIRCLED KATAKANA RO
+32FB;ID;CIRCLED KATAKANA WA
+32FC;ID;CIRCLED KATAKANA WI
+32FD;ID;CIRCLED KATAKANA WE
+32FE;ID;CIRCLED KATAKANA WO
+3300;ID;SQUARE APAATO
+3301;ID;SQUARE ARUHUA
+3302;ID;SQUARE ANPEA
+3303;ID;SQUARE AARU
+3304;ID;SQUARE ININGU
+3305;ID;SQUARE INTI
+3306;ID;SQUARE UON
+3307;ID;SQUARE ESUKUUDO
+3308;ID;SQUARE EEKAA
+3309;ID;SQUARE ONSU
+330A;ID;SQUARE OOMU
+330B;ID;SQUARE KAIRI
+330C;ID;SQUARE KARATTO
+330D;ID;SQUARE KARORII
+330E;ID;SQUARE GARON
+330F;ID;SQUARE GANMA
+3310;ID;SQUARE GIGA
+3311;ID;SQUARE GINII
+3312;ID;SQUARE KYURII
+3313;ID;SQUARE GIRUDAA
+3314;ID;SQUARE KIRO
+3315;ID;SQUARE KIROGURAMU
+3316;ID;SQUARE KIROMEETORU
+3317;ID;SQUARE KIROWATTO
+3318;ID;SQUARE GURAMU
+3319;ID;SQUARE GURAMUTON
+331A;ID;SQUARE KURUZEIRO
+331B;ID;SQUARE KUROONE
+331C;ID;SQUARE KEESU
+331D;ID;SQUARE KORUNA
+331E;ID;SQUARE KOOPO
+331F;ID;SQUARE SAIKURU
+3320;ID;SQUARE SANTIIMU
+3321;ID;SQUARE SIRINGU
+3322;ID;SQUARE SENTI
+3323;ID;SQUARE SENTO
+3324;ID;SQUARE DAASU
+3325;ID;SQUARE DESI
+3326;ID;SQUARE DORU
+3327;ID;SQUARE TON
+3328;ID;SQUARE NANO
+3329;ID;SQUARE NOTTO
+332A;ID;SQUARE HAITU
+332B;ID;SQUARE PAASENTO
+332C;ID;SQUARE PAATU
+332D;ID;SQUARE BAARERU
+332E;ID;SQUARE PIASUTORU
+332F;ID;SQUARE PIKURU
+3330;ID;SQUARE PIKO
+3331;ID;SQUARE BIRU
+3332;ID;SQUARE HUARADDO
+3333;ID;SQUARE HUIITO
+3334;ID;SQUARE BUSSYERU
+3335;ID;SQUARE HURAN
+3336;ID;SQUARE HEKUTAARU
+3337;ID;SQUARE PESO
+3338;ID;SQUARE PENIHI
+3339;ID;SQUARE HERUTU
+333A;ID;SQUARE PENSU
+333B;ID;SQUARE PEEZI
+333C;ID;SQUARE BEETA
+333D;ID;SQUARE POINTO
+333E;ID;SQUARE BORUTO
+333F;ID;SQUARE HON
+3340;ID;SQUARE PONDO
+3341;ID;SQUARE HOORU
+3342;ID;SQUARE HOON
+3343;ID;SQUARE MAIKURO
+3344;ID;SQUARE MAIRU
+3345;ID;SQUARE MAHHA
+3346;ID;SQUARE MARUKU
+3347;ID;SQUARE MANSYON
+3348;ID;SQUARE MIKURON
+3349;ID;SQUARE MIRI
+334A;ID;SQUARE MIRIBAARU
+334B;ID;SQUARE MEGA
+334C;ID;SQUARE MEGATON
+334D;ID;SQUARE MEETORU
+334E;ID;SQUARE YAADO
+334F;ID;SQUARE YAARU
+3350;ID;SQUARE YUAN
+3351;ID;SQUARE RITTORU
+3352;ID;SQUARE RIRA
+3353;ID;SQUARE RUPII
+3354;ID;SQUARE RUUBURU
+3355;ID;SQUARE REMU
+3356;ID;SQUARE RENTOGEN
+3357;ID;SQUARE WATTO
+3358;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO
+3359;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE
+335A;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO
+335B;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE
+335C;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR
+335D;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE
+335E;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX
+335F;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN
+3360;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT
+3361;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE
+3362;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN
+3363;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN
+3364;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE
+3365;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN
+3366;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN
+3367;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN
+3368;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN
+3369;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN
+336A;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN
+336B;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN
+336C;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY
+336D;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE
+336E;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO
+336F;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE
+3370;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
+3371;ID;SQUARE HPA
+3372;ID;SQUARE DA
+3373;ID;SQUARE AU
+3374;ID;SQUARE BAR
+3375;ID;SQUARE OV
+3376;ID;SQUARE PC
+337B;ID;SQUARE ERA NAME HEISEI
+337C;ID;SQUARE ERA NAME SYOUWA
+337D;ID;SQUARE ERA NAME TAISYOU
+337E;ID;SQUARE ERA NAME MEIZI
+337F;ID;SQUARE CORPORATION
+3380;ID;SQUARE PA AMPS
+3381;ID;SQUARE NA
+3382;ID;SQUARE MU A
+3383;ID;SQUARE MA
+3384;ID;SQUARE KA
+3385;ID;SQUARE KB
+3386;ID;SQUARE MB
+3387;ID;SQUARE GB
+3388;ID;SQUARE CAL
+3389;ID;SQUARE KCAL
+338A;ID;SQUARE PF
+338B;ID;SQUARE NF
+338C;ID;SQUARE MU F
+338D;ID;SQUARE MU G
+338E;ID;SQUARE MG
+338F;ID;SQUARE KG
+3390;ID;SQUARE HZ
+3391;ID;SQUARE KHZ
+3392;ID;SQUARE MHZ
+3393;ID;SQUARE GHZ
+3394;ID;SQUARE THZ
+3395;ID;SQUARE MU L
+3396;ID;SQUARE ML
+3397;ID;SQUARE DL
+3398;ID;SQUARE KL
+3399;ID;SQUARE FM
+339A;ID;SQUARE NM
+339B;ID;SQUARE MU M
+339C;ID;SQUARE MM
+339D;ID;SQUARE CM
+339E;ID;SQUARE KM
+339F;ID;SQUARE MM SQUARED
+33A0;ID;SQUARE CM SQUARED
+33A1;ID;SQUARE M SQUARED
+33A2;ID;SQUARE KM SQUARED
+33A3;ID;SQUARE MM CUBED
+33A4;ID;SQUARE CM CUBED
+33A5;ID;SQUARE M CUBED
+33A6;ID;SQUARE KM CUBED
+33A7;ID;SQUARE M OVER S
+33A8;ID;SQUARE M OVER S SQUARED
+33A9;ID;SQUARE PA
+33AA;ID;SQUARE KPA
+33AB;ID;SQUARE MPA
+33AC;ID;SQUARE GPA
+33AD;ID;SQUARE RAD
+33AE;ID;SQUARE RAD OVER S
+33AF;ID;SQUARE RAD OVER S SQUARED
+33B0;ID;SQUARE PS
+33B1;ID;SQUARE NS
+33B2;ID;SQUARE MU S
+33B3;ID;SQUARE MS
+33B4;ID;SQUARE PV
+33B5;ID;SQUARE NV
+33B6;ID;SQUARE MU V
+33B7;ID;SQUARE MV
+33B8;ID;SQUARE KV
+33B9;ID;SQUARE MV MEGA
+33BA;ID;SQUARE PW
+33BB;ID;SQUARE NW
+33BC;ID;SQUARE MU W
+33BD;ID;SQUARE MW
+33BE;ID;SQUARE KW
+33BF;ID;SQUARE MW MEGA
+33C0;ID;SQUARE K OHM
+33C1;ID;SQUARE M OHM
+33C2;ID;SQUARE AM
+33C3;ID;SQUARE BQ
+33C4;ID;SQUARE CC
+33C5;ID;SQUARE CD
+33C6;ID;SQUARE C OVER KG
+33C7;ID;SQUARE CO
+33C8;ID;SQUARE DB
+33C9;ID;SQUARE GY
+33CA;ID;SQUARE HA
+33CB;ID;SQUARE HP
+33CC;ID;SQUARE IN
+33CD;ID;SQUARE KK
+33CE;ID;SQUARE KM CAPITAL
+33CF;ID;SQUARE KT
+33D0;ID;SQUARE LM
+33D1;ID;SQUARE LN
+33D2;ID;SQUARE LOG
+33D3;ID;SQUARE LX
+33D4;ID;SQUARE MB SMALL
+33D5;ID;SQUARE MIL
+33D6;ID;SQUARE MOL
+33D7;ID;SQUARE PH
+33D8;ID;SQUARE PM
+33D9;ID;SQUARE PPM
+33DA;ID;SQUARE PR
+33DB;ID;SQUARE SR
+33DC;ID;SQUARE SV
+33DD;ID;SQUARE WB
+33E0;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE
+33E1;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO
+33E2;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE
+33E3;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR
+33E4;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE
+33E5;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX
+33E6;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN
+33E7;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT
+33E8;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE
+33E9;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN
+33EA;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN
+33EB;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE
+33EC;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN
+33ED;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN
+33EE;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN
+33EF;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN
+33F0;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN
+33F1;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN
+33F2;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN
+33F3;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY
+33F4;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE
+33F5;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO
+33F6;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE
+33F7;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR
+33F8;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE
+33F9;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX
+33FA;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN
+33FB;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT
+33FC;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE
+33FD;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY
+33FE;ID;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
+3400;ID;<CJK Ideograph Extension A, First>
+4DB5;ID;<CJK Ideograph Extension A, Last>
+4E00;ID;<CJK Ideograph, First>
+9FA5;ID;<CJK Ideograph, Last>
+A000;ID;YI SYLLABLE IT
+A001;ID;YI SYLLABLE IX
+A002;ID;YI SYLLABLE I
+A003;ID;YI SYLLABLE IP
+A004;ID;YI SYLLABLE IET
+A005;ID;YI SYLLABLE IEX
+A006;ID;YI SYLLABLE IE
+A007;ID;YI SYLLABLE IEP
+A008;ID;YI SYLLABLE AT
+A009;ID;YI SYLLABLE AX
+A00A;ID;YI SYLLABLE A
+A00B;ID;YI SYLLABLE AP
+A00C;ID;YI SYLLABLE UOX
+A00D;ID;YI SYLLABLE UO
+A00E;ID;YI SYLLABLE UOP
+A00F;ID;YI SYLLABLE OT
+A010;ID;YI SYLLABLE OX
+A011;ID;YI SYLLABLE O
+A012;ID;YI SYLLABLE OP
+A013;ID;YI SYLLABLE EX
+A014;ID;YI SYLLABLE E
+A015;ID;YI SYLLABLE WU
+A016;ID;YI SYLLABLE BIT
+A017;ID;YI SYLLABLE BIX
+A018;ID;YI SYLLABLE BI
+A019;ID;YI SYLLABLE BIP
+A01A;ID;YI SYLLABLE BIET
+A01B;ID;YI SYLLABLE BIEX
+A01C;ID;YI SYLLABLE BIE
+A01D;ID;YI SYLLABLE BIEP
+A01E;ID;YI SYLLABLE BAT
+A01F;ID;YI SYLLABLE BAX
+A020;ID;YI SYLLABLE BA
+A021;ID;YI SYLLABLE BAP
+A022;ID;YI SYLLABLE BUOX
+A023;ID;YI SYLLABLE BUO
+A024;ID;YI SYLLABLE BUOP
+A025;ID;YI SYLLABLE BOT
+A026;ID;YI SYLLABLE BOX
+A027;ID;YI SYLLABLE BO
+A028;ID;YI SYLLABLE BOP
+A029;ID;YI SYLLABLE BEX
+A02A;ID;YI SYLLABLE BE
+A02B;ID;YI SYLLABLE BEP
+A02C;ID;YI SYLLABLE BUT
+A02D;ID;YI SYLLABLE BUX
+A02E;ID;YI SYLLABLE BU
+A02F;ID;YI SYLLABLE BUP
+A030;ID;YI SYLLABLE BURX
+A031;ID;YI SYLLABLE BUR
+A032;ID;YI SYLLABLE BYT
+A033;ID;YI SYLLABLE BYX
+A034;ID;YI SYLLABLE BY
+A035;ID;YI SYLLABLE BYP
+A036;ID;YI SYLLABLE BYRX
+A037;ID;YI SYLLABLE BYR
+A038;ID;YI SYLLABLE PIT
+A039;ID;YI SYLLABLE PIX
+A03A;ID;YI SYLLABLE PI
+A03B;ID;YI SYLLABLE PIP
+A03C;ID;YI SYLLABLE PIEX
+A03D;ID;YI SYLLABLE PIE
+A03E;ID;YI SYLLABLE PIEP
+A03F;ID;YI SYLLABLE PAT
+A040;ID;YI SYLLABLE PAX
+A041;ID;YI SYLLABLE PA
+A042;ID;YI SYLLABLE PAP
+A043;ID;YI SYLLABLE PUOX
+A044;ID;YI SYLLABLE PUO
+A045;ID;YI SYLLABLE PUOP
+A046;ID;YI SYLLABLE POT
+A047;ID;YI SYLLABLE POX
+A048;ID;YI SYLLABLE PO
+A049;ID;YI SYLLABLE POP
+A04A;ID;YI SYLLABLE PUT
+A04B;ID;YI SYLLABLE PUX
+A04C;ID;YI SYLLABLE PU
+A04D;ID;YI SYLLABLE PUP
+A04E;ID;YI SYLLABLE PURX
+A04F;ID;YI SYLLABLE PUR
+A050;ID;YI SYLLABLE PYT
+A051;ID;YI SYLLABLE PYX
+A052;ID;YI SYLLABLE PY
+A053;ID;YI SYLLABLE PYP
+A054;ID;YI SYLLABLE PYRX
+A055;ID;YI SYLLABLE PYR
+A056;ID;YI SYLLABLE BBIT
+A057;ID;YI SYLLABLE BBIX
+A058;ID;YI SYLLABLE BBI
+A059;ID;YI SYLLABLE BBIP
+A05A;ID;YI SYLLABLE BBIET
+A05B;ID;YI SYLLABLE BBIEX
+A05C;ID;YI SYLLABLE BBIE
+A05D;ID;YI SYLLABLE BBIEP
+A05E;ID;YI SYLLABLE BBAT
+A05F;ID;YI SYLLABLE BBAX
+A060;ID;YI SYLLABLE BBA
+A061;ID;YI SYLLABLE BBAP
+A062;ID;YI SYLLABLE BBUOX
+A063;ID;YI SYLLABLE BBUO
+A064;ID;YI SYLLABLE BBUOP
+A065;ID;YI SYLLABLE BBOT
+A066;ID;YI SYLLABLE BBOX
+A067;ID;YI SYLLABLE BBO
+A068;ID;YI SYLLABLE BBOP
+A069;ID;YI SYLLABLE BBEX
+A06A;ID;YI SYLLABLE BBE
+A06B;ID;YI SYLLABLE BBEP
+A06C;ID;YI SYLLABLE BBUT
+A06D;ID;YI SYLLABLE BBUX
+A06E;ID;YI SYLLABLE BBU
+A06F;ID;YI SYLLABLE BBUP
+A070;ID;YI SYLLABLE BBURX
+A071;ID;YI SYLLABLE BBUR
+A072;ID;YI SYLLABLE BBYT
+A073;ID;YI SYLLABLE BBYX
+A074;ID;YI SYLLABLE BBY
+A075;ID;YI SYLLABLE BBYP
+A076;ID;YI SYLLABLE NBIT
+A077;ID;YI SYLLABLE NBIX
+A078;ID;YI SYLLABLE NBI
+A079;ID;YI SYLLABLE NBIP
+A07A;ID;YI SYLLABLE NBIEX
+A07B;ID;YI SYLLABLE NBIE
+A07C;ID;YI SYLLABLE NBIEP
+A07D;ID;YI SYLLABLE NBAT
+A07E;ID;YI SYLLABLE NBAX
+A07F;ID;YI SYLLABLE NBA
+A080;ID;YI SYLLABLE NBAP
+A081;ID;YI SYLLABLE NBOT
+A082;ID;YI SYLLABLE NBOX
+A083;ID;YI SYLLABLE NBO
+A084;ID;YI SYLLABLE NBOP
+A085;ID;YI SYLLABLE NBUT
+A086;ID;YI SYLLABLE NBUX
+A087;ID;YI SYLLABLE NBU
+A088;ID;YI SYLLABLE NBUP
+A089;ID;YI SYLLABLE NBURX
+A08A;ID;YI SYLLABLE NBUR
+A08B;ID;YI SYLLABLE NBYT
+A08C;ID;YI SYLLABLE NBYX
+A08D;ID;YI SYLLABLE NBY
+A08E;ID;YI SYLLABLE NBYP
+A08F;ID;YI SYLLABLE NBYRX
+A090;ID;YI SYLLABLE NBYR
+A091;ID;YI SYLLABLE HMIT
+A092;ID;YI SYLLABLE HMIX
+A093;ID;YI SYLLABLE HMI
+A094;ID;YI SYLLABLE HMIP
+A095;ID;YI SYLLABLE HMIEX
+A096;ID;YI SYLLABLE HMIE
+A097;ID;YI SYLLABLE HMIEP
+A098;ID;YI SYLLABLE HMAT
+A099;ID;YI SYLLABLE HMAX
+A09A;ID;YI SYLLABLE HMA
+A09B;ID;YI SYLLABLE HMAP
+A09C;ID;YI SYLLABLE HMUOX
+A09D;ID;YI SYLLABLE HMUO
+A09E;ID;YI SYLLABLE HMUOP
+A09F;ID;YI SYLLABLE HMOT
+A0A0;ID;YI SYLLABLE HMOX
+A0A1;ID;YI SYLLABLE HMO
+A0A2;ID;YI SYLLABLE HMOP
+A0A3;ID;YI SYLLABLE HMUT
+A0A4;ID;YI SYLLABLE HMUX
+A0A5;ID;YI SYLLABLE HMU
+A0A6;ID;YI SYLLABLE HMUP
+A0A7;ID;YI SYLLABLE HMURX
+A0A8;ID;YI SYLLABLE HMUR
+A0A9;ID;YI SYLLABLE HMYX
+A0AA;ID;YI SYLLABLE HMY
+A0AB;ID;YI SYLLABLE HMYP
+A0AC;ID;YI SYLLABLE HMYRX
+A0AD;ID;YI SYLLABLE HMYR
+A0AE;ID;YI SYLLABLE MIT
+A0AF;ID;YI SYLLABLE MIX
+A0B0;ID;YI SYLLABLE MI
+A0B1;ID;YI SYLLABLE MIP
+A0B2;ID;YI SYLLABLE MIEX
+A0B3;ID;YI SYLLABLE MIE
+A0B4;ID;YI SYLLABLE MIEP
+A0B5;ID;YI SYLLABLE MAT
+A0B6;ID;YI SYLLABLE MAX
+A0B7;ID;YI SYLLABLE MA
+A0B8;ID;YI SYLLABLE MAP
+A0B9;ID;YI SYLLABLE MUOT
+A0BA;ID;YI SYLLABLE MUOX
+A0BB;ID;YI SYLLABLE MUO
+A0BC;ID;YI SYLLABLE MUOP
+A0BD;ID;YI SYLLABLE MOT
+A0BE;ID;YI SYLLABLE MOX
+A0BF;ID;YI SYLLABLE MO
+A0C0;ID;YI SYLLABLE MOP
+A0C1;ID;YI SYLLABLE MEX
+A0C2;ID;YI SYLLABLE ME
+A0C3;ID;YI SYLLABLE MUT
+A0C4;ID;YI SYLLABLE MUX
+A0C5;ID;YI SYLLABLE MU
+A0C6;ID;YI SYLLABLE MUP
+A0C7;ID;YI SYLLABLE MURX
+A0C8;ID;YI SYLLABLE MUR
+A0C9;ID;YI SYLLABLE MYT
+A0CA;ID;YI SYLLABLE MYX
+A0CB;ID;YI SYLLABLE MY
+A0CC;ID;YI SYLLABLE MYP
+A0CD;ID;YI SYLLABLE FIT
+A0CE;ID;YI SYLLABLE FIX
+A0CF;ID;YI SYLLABLE FI
+A0D0;ID;YI SYLLABLE FIP
+A0D1;ID;YI SYLLABLE FAT
+A0D2;ID;YI SYLLABLE FAX
+A0D3;ID;YI SYLLABLE FA
+A0D4;ID;YI SYLLABLE FAP
+A0D5;ID;YI SYLLABLE FOX
+A0D6;ID;YI SYLLABLE FO
+A0D7;ID;YI SYLLABLE FOP
+A0D8;ID;YI SYLLABLE FUT
+A0D9;ID;YI SYLLABLE FUX
+A0DA;ID;YI SYLLABLE FU
+A0DB;ID;YI SYLLABLE FUP
+A0DC;ID;YI SYLLABLE FURX
+A0DD;ID;YI SYLLABLE FUR
+A0DE;ID;YI SYLLABLE FYT
+A0DF;ID;YI SYLLABLE FYX
+A0E0;ID;YI SYLLABLE FY
+A0E1;ID;YI SYLLABLE FYP
+A0E2;ID;YI SYLLABLE VIT
+A0E3;ID;YI SYLLABLE VIX
+A0E4;ID;YI SYLLABLE VI
+A0E5;ID;YI SYLLABLE VIP
+A0E6;ID;YI SYLLABLE VIET
+A0E7;ID;YI SYLLABLE VIEX
+A0E8;ID;YI SYLLABLE VIE
+A0E9;ID;YI SYLLABLE VIEP
+A0EA;ID;YI SYLLABLE VAT
+A0EB;ID;YI SYLLABLE VAX
+A0EC;ID;YI SYLLABLE VA
+A0ED;ID;YI SYLLABLE VAP
+A0EE;ID;YI SYLLABLE VOT
+A0EF;ID;YI SYLLABLE VOX
+A0F0;ID;YI SYLLABLE VO
+A0F1;ID;YI SYLLABLE VOP
+A0F2;ID;YI SYLLABLE VEX
+A0F3;ID;YI SYLLABLE VEP
+A0F4;ID;YI SYLLABLE VUT
+A0F5;ID;YI SYLLABLE VUX
+A0F6;ID;YI SYLLABLE VU
+A0F7;ID;YI SYLLABLE VUP
+A0F8;ID;YI SYLLABLE VURX
+A0F9;ID;YI SYLLABLE VUR
+A0FA;ID;YI SYLLABLE VYT
+A0FB;ID;YI SYLLABLE VYX
+A0FC;ID;YI SYLLABLE VY
+A0FD;ID;YI SYLLABLE VYP
+A0FE;ID;YI SYLLABLE VYRX
+A0FF;ID;YI SYLLABLE VYR
+A100;ID;YI SYLLABLE DIT
+A101;ID;YI SYLLABLE DIX
+A102;ID;YI SYLLABLE DI
+A103;ID;YI SYLLABLE DIP
+A104;ID;YI SYLLABLE DIEX
+A105;ID;YI SYLLABLE DIE
+A106;ID;YI SYLLABLE DIEP
+A107;ID;YI SYLLABLE DAT
+A108;ID;YI SYLLABLE DAX
+A109;ID;YI SYLLABLE DA
+A10A;ID;YI SYLLABLE DAP
+A10B;ID;YI SYLLABLE DUOX
+A10C;ID;YI SYLLABLE DUO
+A10D;ID;YI SYLLABLE DOT
+A10E;ID;YI SYLLABLE DOX
+A10F;ID;YI SYLLABLE DO
+A110;ID;YI SYLLABLE DOP
+A111;ID;YI SYLLABLE DEX
+A112;ID;YI SYLLABLE DE
+A113;ID;YI SYLLABLE DEP
+A114;ID;YI SYLLABLE DUT
+A115;ID;YI SYLLABLE DUX
+A116;ID;YI SYLLABLE DU
+A117;ID;YI SYLLABLE DUP
+A118;ID;YI SYLLABLE DURX
+A119;ID;YI SYLLABLE DUR
+A11A;ID;YI SYLLABLE TIT
+A11B;ID;YI SYLLABLE TIX
+A11C;ID;YI SYLLABLE TI
+A11D;ID;YI SYLLABLE TIP
+A11E;ID;YI SYLLABLE TIEX
+A11F;ID;YI SYLLABLE TIE
+A120;ID;YI SYLLABLE TIEP
+A121;ID;YI SYLLABLE TAT
+A122;ID;YI SYLLABLE TAX
+A123;ID;YI SYLLABLE TA
+A124;ID;YI SYLLABLE TAP
+A125;ID;YI SYLLABLE TUOT
+A126;ID;YI SYLLABLE TUOX
+A127;ID;YI SYLLABLE TUO
+A128;ID;YI SYLLABLE TUOP
+A129;ID;YI SYLLABLE TOT
+A12A;ID;YI SYLLABLE TOX
+A12B;ID;YI SYLLABLE TO
+A12C;ID;YI SYLLABLE TOP
+A12D;ID;YI SYLLABLE TEX
+A12E;ID;YI SYLLABLE TE
+A12F;ID;YI SYLLABLE TEP
+A130;ID;YI SYLLABLE TUT
+A131;ID;YI SYLLABLE TUX
+A132;ID;YI SYLLABLE TU
+A133;ID;YI SYLLABLE TUP
+A134;ID;YI SYLLABLE TURX
+A135;ID;YI SYLLABLE TUR
+A136;ID;YI SYLLABLE DDIT
+A137;ID;YI SYLLABLE DDIX
+A138;ID;YI SYLLABLE DDI
+A139;ID;YI SYLLABLE DDIP
+A13A;ID;YI SYLLABLE DDIEX
+A13B;ID;YI SYLLABLE DDIE
+A13C;ID;YI SYLLABLE DDIEP
+A13D;ID;YI SYLLABLE DDAT
+A13E;ID;YI SYLLABLE DDAX
+A13F;ID;YI SYLLABLE DDA
+A140;ID;YI SYLLABLE DDAP
+A141;ID;YI SYLLABLE DDUOX
+A142;ID;YI SYLLABLE DDUO
+A143;ID;YI SYLLABLE DDUOP
+A144;ID;YI SYLLABLE DDOT
+A145;ID;YI SYLLABLE DDOX
+A146;ID;YI SYLLABLE DDO
+A147;ID;YI SYLLABLE DDOP
+A148;ID;YI SYLLABLE DDEX
+A149;ID;YI SYLLABLE DDE
+A14A;ID;YI SYLLABLE DDEP
+A14B;ID;YI SYLLABLE DDUT
+A14C;ID;YI SYLLABLE DDUX
+A14D;ID;YI SYLLABLE DDU
+A14E;ID;YI SYLLABLE DDUP
+A14F;ID;YI SYLLABLE DDURX
+A150;ID;YI SYLLABLE DDUR
+A151;ID;YI SYLLABLE NDIT
+A152;ID;YI SYLLABLE NDIX
+A153;ID;YI SYLLABLE NDI
+A154;ID;YI SYLLABLE NDIP
+A155;ID;YI SYLLABLE NDIEX
+A156;ID;YI SYLLABLE NDIE
+A157;ID;YI SYLLABLE NDAT
+A158;ID;YI SYLLABLE NDAX
+A159;ID;YI SYLLABLE NDA
+A15A;ID;YI SYLLABLE NDAP
+A15B;ID;YI SYLLABLE NDOT
+A15C;ID;YI SYLLABLE NDOX
+A15D;ID;YI SYLLABLE NDO
+A15E;ID;YI SYLLABLE NDOP
+A15F;ID;YI SYLLABLE NDEX
+A160;ID;YI SYLLABLE NDE
+A161;ID;YI SYLLABLE NDEP
+A162;ID;YI SYLLABLE NDUT
+A163;ID;YI SYLLABLE NDUX
+A164;ID;YI SYLLABLE NDU
+A165;ID;YI SYLLABLE NDUP
+A166;ID;YI SYLLABLE NDURX
+A167;ID;YI SYLLABLE NDUR
+A168;ID;YI SYLLABLE HNIT
+A169;ID;YI SYLLABLE HNIX
+A16A;ID;YI SYLLABLE HNI
+A16B;ID;YI SYLLABLE HNIP
+A16C;ID;YI SYLLABLE HNIET
+A16D;ID;YI SYLLABLE HNIEX
+A16E;ID;YI SYLLABLE HNIE
+A16F;ID;YI SYLLABLE HNIEP
+A170;ID;YI SYLLABLE HNAT
+A171;ID;YI SYLLABLE HNAX
+A172;ID;YI SYLLABLE HNA
+A173;ID;YI SYLLABLE HNAP
+A174;ID;YI SYLLABLE HNUOX
+A175;ID;YI SYLLABLE HNUO
+A176;ID;YI SYLLABLE HNOT
+A177;ID;YI SYLLABLE HNOX
+A178;ID;YI SYLLABLE HNOP
+A179;ID;YI SYLLABLE HNEX
+A17A;ID;YI SYLLABLE HNE
+A17B;ID;YI SYLLABLE HNEP
+A17C;ID;YI SYLLABLE HNUT
+A17D;ID;YI SYLLABLE NIT
+A17E;ID;YI SYLLABLE NIX
+A17F;ID;YI SYLLABLE NI
+A180;ID;YI SYLLABLE NIP
+A181;ID;YI SYLLABLE NIEX
+A182;ID;YI SYLLABLE NIE
+A183;ID;YI SYLLABLE NIEP
+A184;ID;YI SYLLABLE NAX
+A185;ID;YI SYLLABLE NA
+A186;ID;YI SYLLABLE NAP
+A187;ID;YI SYLLABLE NUOX
+A188;ID;YI SYLLABLE NUO
+A189;ID;YI SYLLABLE NUOP
+A18A;ID;YI SYLLABLE NOT
+A18B;ID;YI SYLLABLE NOX
+A18C;ID;YI SYLLABLE NO
+A18D;ID;YI SYLLABLE NOP
+A18E;ID;YI SYLLABLE NEX
+A18F;ID;YI SYLLABLE NE
+A190;ID;YI SYLLABLE NEP
+A191;ID;YI SYLLABLE NUT
+A192;ID;YI SYLLABLE NUX
+A193;ID;YI SYLLABLE NU
+A194;ID;YI SYLLABLE NUP
+A195;ID;YI SYLLABLE NURX
+A196;ID;YI SYLLABLE NUR
+A197;ID;YI SYLLABLE HLIT
+A198;ID;YI SYLLABLE HLIX
+A199;ID;YI SYLLABLE HLI
+A19A;ID;YI SYLLABLE HLIP
+A19B;ID;YI SYLLABLE HLIEX
+A19C;ID;YI SYLLABLE HLIE
+A19D;ID;YI SYLLABLE HLIEP
+A19E;ID;YI SYLLABLE HLAT
+A19F;ID;YI SYLLABLE HLAX
+A1A0;ID;YI SYLLABLE HLA
+A1A1;ID;YI SYLLABLE HLAP
+A1A2;ID;YI SYLLABLE HLUOX
+A1A3;ID;YI SYLLABLE HLUO
+A1A4;ID;YI SYLLABLE HLUOP
+A1A5;ID;YI SYLLABLE HLOX
+A1A6;ID;YI SYLLABLE HLO
+A1A7;ID;YI SYLLABLE HLOP
+A1A8;ID;YI SYLLABLE HLEX
+A1A9;ID;YI SYLLABLE HLE
+A1AA;ID;YI SYLLABLE HLEP
+A1AB;ID;YI SYLLABLE HLUT
+A1AC;ID;YI SYLLABLE HLUX
+A1AD;ID;YI SYLLABLE HLU
+A1AE;ID;YI SYLLABLE HLUP
+A1AF;ID;YI SYLLABLE HLURX
+A1B0;ID;YI SYLLABLE HLUR
+A1B1;ID;YI SYLLABLE HLYT
+A1B2;ID;YI SYLLABLE HLYX
+A1B3;ID;YI SYLLABLE HLY
+A1B4;ID;YI SYLLABLE HLYP
+A1B5;ID;YI SYLLABLE HLYRX
+A1B6;ID;YI SYLLABLE HLYR
+A1B7;ID;YI SYLLABLE LIT
+A1B8;ID;YI SYLLABLE LIX
+A1B9;ID;YI SYLLABLE LI
+A1BA;ID;YI SYLLABLE LIP
+A1BB;ID;YI SYLLABLE LIET
+A1BC;ID;YI SYLLABLE LIEX
+A1BD;ID;YI SYLLABLE LIE
+A1BE;ID;YI SYLLABLE LIEP
+A1BF;ID;YI SYLLABLE LAT
+A1C0;ID;YI SYLLABLE LAX
+A1C1;ID;YI SYLLABLE LA
+A1C2;ID;YI SYLLABLE LAP
+A1C3;ID;YI SYLLABLE LUOT
+A1C4;ID;YI SYLLABLE LUOX
+A1C5;ID;YI SYLLABLE LUO
+A1C6;ID;YI SYLLABLE LUOP
+A1C7;ID;YI SYLLABLE LOT
+A1C8;ID;YI SYLLABLE LOX
+A1C9;ID;YI SYLLABLE LO
+A1CA;ID;YI SYLLABLE LOP
+A1CB;ID;YI SYLLABLE LEX
+A1CC;ID;YI SYLLABLE LE
+A1CD;ID;YI SYLLABLE LEP
+A1CE;ID;YI SYLLABLE LUT
+A1CF;ID;YI SYLLABLE LUX
+A1D0;ID;YI SYLLABLE LU
+A1D1;ID;YI SYLLABLE LUP
+A1D2;ID;YI SYLLABLE LURX
+A1D3;ID;YI SYLLABLE LUR
+A1D4;ID;YI SYLLABLE LYT
+A1D5;ID;YI SYLLABLE LYX
+A1D6;ID;YI SYLLABLE LY
+A1D7;ID;YI SYLLABLE LYP
+A1D8;ID;YI SYLLABLE LYRX
+A1D9;ID;YI SYLLABLE LYR
+A1DA;ID;YI SYLLABLE GIT
+A1DB;ID;YI SYLLABLE GIX
+A1DC;ID;YI SYLLABLE GI
+A1DD;ID;YI SYLLABLE GIP
+A1DE;ID;YI SYLLABLE GIET
+A1DF;ID;YI SYLLABLE GIEX
+A1E0;ID;YI SYLLABLE GIE
+A1E1;ID;YI SYLLABLE GIEP
+A1E2;ID;YI SYLLABLE GAT
+A1E3;ID;YI SYLLABLE GAX
+A1E4;ID;YI SYLLABLE GA
+A1E5;ID;YI SYLLABLE GAP
+A1E6;ID;YI SYLLABLE GUOT
+A1E7;ID;YI SYLLABLE GUOX
+A1E8;ID;YI SYLLABLE GUO
+A1E9;ID;YI SYLLABLE GUOP
+A1EA;ID;YI SYLLABLE GOT
+A1EB;ID;YI SYLLABLE GOX
+A1EC;ID;YI SYLLABLE GO
+A1ED;ID;YI SYLLABLE GOP
+A1EE;ID;YI SYLLABLE GET
+A1EF;ID;YI SYLLABLE GEX
+A1F0;ID;YI SYLLABLE GE
+A1F1;ID;YI SYLLABLE GEP
+A1F2;ID;YI SYLLABLE GUT
+A1F3;ID;YI SYLLABLE GUX
+A1F4;ID;YI SYLLABLE GU
+A1F5;ID;YI SYLLABLE GUP
+A1F6;ID;YI SYLLABLE GURX
+A1F7;ID;YI SYLLABLE GUR
+A1F8;ID;YI SYLLABLE KIT
+A1F9;ID;YI SYLLABLE KIX
+A1FA;ID;YI SYLLABLE KI
+A1FB;ID;YI SYLLABLE KIP
+A1FC;ID;YI SYLLABLE KIEX
+A1FD;ID;YI SYLLABLE KIE
+A1FE;ID;YI SYLLABLE KIEP
+A1FF;ID;YI SYLLABLE KAT
+A200;ID;YI SYLLABLE KAX
+A201;ID;YI SYLLABLE KA
+A202;ID;YI SYLLABLE KAP
+A203;ID;YI SYLLABLE KUOX
+A204;ID;YI SYLLABLE KUO
+A205;ID;YI SYLLABLE KUOP
+A206;ID;YI SYLLABLE KOT
+A207;ID;YI SYLLABLE KOX
+A208;ID;YI SYLLABLE KO
+A209;ID;YI SYLLABLE KOP
+A20A;ID;YI SYLLABLE KET
+A20B;ID;YI SYLLABLE KEX
+A20C;ID;YI SYLLABLE KE
+A20D;ID;YI SYLLABLE KEP
+A20E;ID;YI SYLLABLE KUT
+A20F;ID;YI SYLLABLE KUX
+A210;ID;YI SYLLABLE KU
+A211;ID;YI SYLLABLE KUP
+A212;ID;YI SYLLABLE KURX
+A213;ID;YI SYLLABLE KUR
+A214;ID;YI SYLLABLE GGIT
+A215;ID;YI SYLLABLE GGIX
+A216;ID;YI SYLLABLE GGI
+A217;ID;YI SYLLABLE GGIEX
+A218;ID;YI SYLLABLE GGIE
+A219;ID;YI SYLLABLE GGIEP
+A21A;ID;YI SYLLABLE GGAT
+A21B;ID;YI SYLLABLE GGAX
+A21C;ID;YI SYLLABLE GGA
+A21D;ID;YI SYLLABLE GGAP
+A21E;ID;YI SYLLABLE GGUOT
+A21F;ID;YI SYLLABLE GGUOX
+A220;ID;YI SYLLABLE GGUO
+A221;ID;YI SYLLABLE GGUOP
+A222;ID;YI SYLLABLE GGOT
+A223;ID;YI SYLLABLE GGOX
+A224;ID;YI SYLLABLE GGO
+A225;ID;YI SYLLABLE GGOP
+A226;ID;YI SYLLABLE GGET
+A227;ID;YI SYLLABLE GGEX
+A228;ID;YI SYLLABLE GGE
+A229;ID;YI SYLLABLE GGEP
+A22A;ID;YI SYLLABLE GGUT
+A22B;ID;YI SYLLABLE GGUX
+A22C;ID;YI SYLLABLE GGU
+A22D;ID;YI SYLLABLE GGUP
+A22E;ID;YI SYLLABLE GGURX
+A22F;ID;YI SYLLABLE GGUR
+A230;ID;YI SYLLABLE MGIEX
+A231;ID;YI SYLLABLE MGIE
+A232;ID;YI SYLLABLE MGAT
+A233;ID;YI SYLLABLE MGAX
+A234;ID;YI SYLLABLE MGA
+A235;ID;YI SYLLABLE MGAP
+A236;ID;YI SYLLABLE MGUOX
+A237;ID;YI SYLLABLE MGUO
+A238;ID;YI SYLLABLE MGUOP
+A239;ID;YI SYLLABLE MGOT
+A23A;ID;YI SYLLABLE MGOX
+A23B;ID;YI SYLLABLE MGO
+A23C;ID;YI SYLLABLE MGOP
+A23D;ID;YI SYLLABLE MGEX
+A23E;ID;YI SYLLABLE MGE
+A23F;ID;YI SYLLABLE MGEP
+A240;ID;YI SYLLABLE MGUT
+A241;ID;YI SYLLABLE MGUX
+A242;ID;YI SYLLABLE MGU
+A243;ID;YI SYLLABLE MGUP
+A244;ID;YI SYLLABLE MGURX
+A245;ID;YI SYLLABLE MGUR
+A246;ID;YI SYLLABLE HXIT
+A247;ID;YI SYLLABLE HXIX
+A248;ID;YI SYLLABLE HXI
+A249;ID;YI SYLLABLE HXIP
+A24A;ID;YI SYLLABLE HXIET
+A24B;ID;YI SYLLABLE HXIEX
+A24C;ID;YI SYLLABLE HXIE
+A24D;ID;YI SYLLABLE HXIEP
+A24E;ID;YI SYLLABLE HXAT
+A24F;ID;YI SYLLABLE HXAX
+A250;ID;YI SYLLABLE HXA
+A251;ID;YI SYLLABLE HXAP
+A252;ID;YI SYLLABLE HXUOT
+A253;ID;YI SYLLABLE HXUOX
+A254;ID;YI SYLLABLE HXUO
+A255;ID;YI SYLLABLE HXUOP
+A256;ID;YI SYLLABLE HXOT
+A257;ID;YI SYLLABLE HXOX
+A258;ID;YI SYLLABLE HXO
+A259;ID;YI SYLLABLE HXOP
+A25A;ID;YI SYLLABLE HXEX
+A25B;ID;YI SYLLABLE HXE
+A25C;ID;YI SYLLABLE HXEP
+A25D;ID;YI SYLLABLE NGIEX
+A25E;ID;YI SYLLABLE NGIE
+A25F;ID;YI SYLLABLE NGIEP
+A260;ID;YI SYLLABLE NGAT
+A261;ID;YI SYLLABLE NGAX
+A262;ID;YI SYLLABLE NGA
+A263;ID;YI SYLLABLE NGAP
+A264;ID;YI SYLLABLE NGUOT
+A265;ID;YI SYLLABLE NGUOX
+A266;ID;YI SYLLABLE NGUO
+A267;ID;YI SYLLABLE NGOT
+A268;ID;YI SYLLABLE NGOX
+A269;ID;YI SYLLABLE NGO
+A26A;ID;YI SYLLABLE NGOP
+A26B;ID;YI SYLLABLE NGEX
+A26C;ID;YI SYLLABLE NGE
+A26D;ID;YI SYLLABLE NGEP
+A26E;ID;YI SYLLABLE HIT
+A26F;ID;YI SYLLABLE HIEX
+A270;ID;YI SYLLABLE HIE
+A271;ID;YI SYLLABLE HAT
+A272;ID;YI SYLLABLE HAX
+A273;ID;YI SYLLABLE HA
+A274;ID;YI SYLLABLE HAP
+A275;ID;YI SYLLABLE HUOT
+A276;ID;YI SYLLABLE HUOX
+A277;ID;YI SYLLABLE HUO
+A278;ID;YI SYLLABLE HUOP
+A279;ID;YI SYLLABLE HOT
+A27A;ID;YI SYLLABLE HOX
+A27B;ID;YI SYLLABLE HO
+A27C;ID;YI SYLLABLE HOP
+A27D;ID;YI SYLLABLE HEX
+A27E;ID;YI SYLLABLE HE
+A27F;ID;YI SYLLABLE HEP
+A280;ID;YI SYLLABLE WAT
+A281;ID;YI SYLLABLE WAX
+A282;ID;YI SYLLABLE WA
+A283;ID;YI SYLLABLE WAP
+A284;ID;YI SYLLABLE WUOX
+A285;ID;YI SYLLABLE WUO
+A286;ID;YI SYLLABLE WUOP
+A287;ID;YI SYLLABLE WOX
+A288;ID;YI SYLLABLE WO
+A289;ID;YI SYLLABLE WOP
+A28A;ID;YI SYLLABLE WEX
+A28B;ID;YI SYLLABLE WE
+A28C;ID;YI SYLLABLE WEP
+A28D;ID;YI SYLLABLE ZIT
+A28E;ID;YI SYLLABLE ZIX
+A28F;ID;YI SYLLABLE ZI
+A290;ID;YI SYLLABLE ZIP
+A291;ID;YI SYLLABLE ZIEX
+A292;ID;YI SYLLABLE ZIE
+A293;ID;YI SYLLABLE ZIEP
+A294;ID;YI SYLLABLE ZAT
+A295;ID;YI SYLLABLE ZAX
+A296;ID;YI SYLLABLE ZA
+A297;ID;YI SYLLABLE ZAP
+A298;ID;YI SYLLABLE ZUOX
+A299;ID;YI SYLLABLE ZUO
+A29A;ID;YI SYLLABLE ZUOP
+A29B;ID;YI SYLLABLE ZOT
+A29C;ID;YI SYLLABLE ZOX
+A29D;ID;YI SYLLABLE ZO
+A29E;ID;YI SYLLABLE ZOP
+A29F;ID;YI SYLLABLE ZEX
+A2A0;ID;YI SYLLABLE ZE
+A2A1;ID;YI SYLLABLE ZEP
+A2A2;ID;YI SYLLABLE ZUT
+A2A3;ID;YI SYLLABLE ZUX
+A2A4;ID;YI SYLLABLE ZU
+A2A5;ID;YI SYLLABLE ZUP
+A2A6;ID;YI SYLLABLE ZURX
+A2A7;ID;YI SYLLABLE ZUR
+A2A8;ID;YI SYLLABLE ZYT
+A2A9;ID;YI SYLLABLE ZYX
+A2AA;ID;YI SYLLABLE ZY
+A2AB;ID;YI SYLLABLE ZYP
+A2AC;ID;YI SYLLABLE ZYRX
+A2AD;ID;YI SYLLABLE ZYR
+A2AE;ID;YI SYLLABLE CIT
+A2AF;ID;YI SYLLABLE CIX
+A2B0;ID;YI SYLLABLE CI
+A2B1;ID;YI SYLLABLE CIP
+A2B2;ID;YI SYLLABLE CIET
+A2B3;ID;YI SYLLABLE CIEX
+A2B4;ID;YI SYLLABLE CIE
+A2B5;ID;YI SYLLABLE CIEP
+A2B6;ID;YI SYLLABLE CAT
+A2B7;ID;YI SYLLABLE CAX
+A2B8;ID;YI SYLLABLE CA
+A2B9;ID;YI SYLLABLE CAP
+A2BA;ID;YI SYLLABLE CUOX
+A2BB;ID;YI SYLLABLE CUO
+A2BC;ID;YI SYLLABLE CUOP
+A2BD;ID;YI SYLLABLE COT
+A2BE;ID;YI SYLLABLE COX
+A2BF;ID;YI SYLLABLE CO
+A2C0;ID;YI SYLLABLE COP
+A2C1;ID;YI SYLLABLE CEX
+A2C2;ID;YI SYLLABLE CE
+A2C3;ID;YI SYLLABLE CEP
+A2C4;ID;YI SYLLABLE CUT
+A2C5;ID;YI SYLLABLE CUX
+A2C6;ID;YI SYLLABLE CU
+A2C7;ID;YI SYLLABLE CUP
+A2C8;ID;YI SYLLABLE CURX
+A2C9;ID;YI SYLLABLE CUR
+A2CA;ID;YI SYLLABLE CYT
+A2CB;ID;YI SYLLABLE CYX
+A2CC;ID;YI SYLLABLE CY
+A2CD;ID;YI SYLLABLE CYP
+A2CE;ID;YI SYLLABLE CYRX
+A2CF;ID;YI SYLLABLE CYR
+A2D0;ID;YI SYLLABLE ZZIT
+A2D1;ID;YI SYLLABLE ZZIX
+A2D2;ID;YI SYLLABLE ZZI
+A2D3;ID;YI SYLLABLE ZZIP
+A2D4;ID;YI SYLLABLE ZZIET
+A2D5;ID;YI SYLLABLE ZZIEX
+A2D6;ID;YI SYLLABLE ZZIE
+A2D7;ID;YI SYLLABLE ZZIEP
+A2D8;ID;YI SYLLABLE ZZAT
+A2D9;ID;YI SYLLABLE ZZAX
+A2DA;ID;YI SYLLABLE ZZA
+A2DB;ID;YI SYLLABLE ZZAP
+A2DC;ID;YI SYLLABLE ZZOX
+A2DD;ID;YI SYLLABLE ZZO
+A2DE;ID;YI SYLLABLE ZZOP
+A2DF;ID;YI SYLLABLE ZZEX
+A2E0;ID;YI SYLLABLE ZZE
+A2E1;ID;YI SYLLABLE ZZEP
+A2E2;ID;YI SYLLABLE ZZUX
+A2E3;ID;YI SYLLABLE ZZU
+A2E4;ID;YI SYLLABLE ZZUP
+A2E5;ID;YI SYLLABLE ZZURX
+A2E6;ID;YI SYLLABLE ZZUR
+A2E7;ID;YI SYLLABLE ZZYT
+A2E8;ID;YI SYLLABLE ZZYX
+A2E9;ID;YI SYLLABLE ZZY
+A2EA;ID;YI SYLLABLE ZZYP
+A2EB;ID;YI SYLLABLE ZZYRX
+A2EC;ID;YI SYLLABLE ZZYR
+A2ED;ID;YI SYLLABLE NZIT
+A2EE;ID;YI SYLLABLE NZIX
+A2EF;ID;YI SYLLABLE NZI
+A2F0;ID;YI SYLLABLE NZIP
+A2F1;ID;YI SYLLABLE NZIEX
+A2F2;ID;YI SYLLABLE NZIE
+A2F3;ID;YI SYLLABLE NZIEP
+A2F4;ID;YI SYLLABLE NZAT
+A2F5;ID;YI SYLLABLE NZAX
+A2F6;ID;YI SYLLABLE NZA
+A2F7;ID;YI SYLLABLE NZAP
+A2F8;ID;YI SYLLABLE NZUOX
+A2F9;ID;YI SYLLABLE NZUO
+A2FA;ID;YI SYLLABLE NZOX
+A2FB;ID;YI SYLLABLE NZOP
+A2FC;ID;YI SYLLABLE NZEX
+A2FD;ID;YI SYLLABLE NZE
+A2FE;ID;YI SYLLABLE NZUX
+A2FF;ID;YI SYLLABLE NZU
+A300;ID;YI SYLLABLE NZUP
+A301;ID;YI SYLLABLE NZURX
+A302;ID;YI SYLLABLE NZUR
+A303;ID;YI SYLLABLE NZYT
+A304;ID;YI SYLLABLE NZYX
+A305;ID;YI SYLLABLE NZY
+A306;ID;YI SYLLABLE NZYP
+A307;ID;YI SYLLABLE NZYRX
+A308;ID;YI SYLLABLE NZYR
+A309;ID;YI SYLLABLE SIT
+A30A;ID;YI SYLLABLE SIX
+A30B;ID;YI SYLLABLE SI
+A30C;ID;YI SYLLABLE SIP
+A30D;ID;YI SYLLABLE SIEX
+A30E;ID;YI SYLLABLE SIE
+A30F;ID;YI SYLLABLE SIEP
+A310;ID;YI SYLLABLE SAT
+A311;ID;YI SYLLABLE SAX
+A312;ID;YI SYLLABLE SA
+A313;ID;YI SYLLABLE SAP
+A314;ID;YI SYLLABLE SUOX
+A315;ID;YI SYLLABLE SUO
+A316;ID;YI SYLLABLE SUOP
+A317;ID;YI SYLLABLE SOT
+A318;ID;YI SYLLABLE SOX
+A319;ID;YI SYLLABLE SO
+A31A;ID;YI SYLLABLE SOP
+A31B;ID;YI SYLLABLE SEX
+A31C;ID;YI SYLLABLE SE
+A31D;ID;YI SYLLABLE SEP
+A31E;ID;YI SYLLABLE SUT
+A31F;ID;YI SYLLABLE SUX
+A320;ID;YI SYLLABLE SU
+A321;ID;YI SYLLABLE SUP
+A322;ID;YI SYLLABLE SURX
+A323;ID;YI SYLLABLE SUR
+A324;ID;YI SYLLABLE SYT
+A325;ID;YI SYLLABLE SYX
+A326;ID;YI SYLLABLE SY
+A327;ID;YI SYLLABLE SYP
+A328;ID;YI SYLLABLE SYRX
+A329;ID;YI SYLLABLE SYR
+A32A;ID;YI SYLLABLE SSIT
+A32B;ID;YI SYLLABLE SSIX
+A32C;ID;YI SYLLABLE SSI
+A32D;ID;YI SYLLABLE SSIP
+A32E;ID;YI SYLLABLE SSIEX
+A32F;ID;YI SYLLABLE SSIE
+A330;ID;YI SYLLABLE SSIEP
+A331;ID;YI SYLLABLE SSAT
+A332;ID;YI SYLLABLE SSAX
+A333;ID;YI SYLLABLE SSA
+A334;ID;YI SYLLABLE SSAP
+A335;ID;YI SYLLABLE SSOT
+A336;ID;YI SYLLABLE SSOX
+A337;ID;YI SYLLABLE SSO
+A338;ID;YI SYLLABLE SSOP
+A339;ID;YI SYLLABLE SSEX
+A33A;ID;YI SYLLABLE SSE
+A33B;ID;YI SYLLABLE SSEP
+A33C;ID;YI SYLLABLE SSUT
+A33D;ID;YI SYLLABLE SSUX
+A33E;ID;YI SYLLABLE SSU
+A33F;ID;YI SYLLABLE SSUP
+A340;ID;YI SYLLABLE SSYT
+A341;ID;YI SYLLABLE SSYX
+A342;ID;YI SYLLABLE SSY
+A343;ID;YI SYLLABLE SSYP
+A344;ID;YI SYLLABLE SSYRX
+A345;ID;YI SYLLABLE SSYR
+A346;ID;YI SYLLABLE ZHAT
+A347;ID;YI SYLLABLE ZHAX
+A348;ID;YI SYLLABLE ZHA
+A349;ID;YI SYLLABLE ZHAP
+A34A;ID;YI SYLLABLE ZHUOX
+A34B;ID;YI SYLLABLE ZHUO
+A34C;ID;YI SYLLABLE ZHUOP
+A34D;ID;YI SYLLABLE ZHOT
+A34E;ID;YI SYLLABLE ZHOX
+A34F;ID;YI SYLLABLE ZHO
+A350;ID;YI SYLLABLE ZHOP
+A351;ID;YI SYLLABLE ZHET
+A352;ID;YI SYLLABLE ZHEX
+A353;ID;YI SYLLABLE ZHE
+A354;ID;YI SYLLABLE ZHEP
+A355;ID;YI SYLLABLE ZHUT
+A356;ID;YI SYLLABLE ZHUX
+A357;ID;YI SYLLABLE ZHU
+A358;ID;YI SYLLABLE ZHUP
+A359;ID;YI SYLLABLE ZHURX
+A35A;ID;YI SYLLABLE ZHUR
+A35B;ID;YI SYLLABLE ZHYT
+A35C;ID;YI SYLLABLE ZHYX
+A35D;ID;YI SYLLABLE ZHY
+A35E;ID;YI SYLLABLE ZHYP
+A35F;ID;YI SYLLABLE ZHYRX
+A360;ID;YI SYLLABLE ZHYR
+A361;ID;YI SYLLABLE CHAT
+A362;ID;YI SYLLABLE CHAX
+A363;ID;YI SYLLABLE CHA
+A364;ID;YI SYLLABLE CHAP
+A365;ID;YI SYLLABLE CHUOT
+A366;ID;YI SYLLABLE CHUOX
+A367;ID;YI SYLLABLE CHUO
+A368;ID;YI SYLLABLE CHUOP
+A369;ID;YI SYLLABLE CHOT
+A36A;ID;YI SYLLABLE CHOX
+A36B;ID;YI SYLLABLE CHO
+A36C;ID;YI SYLLABLE CHOP
+A36D;ID;YI SYLLABLE CHET
+A36E;ID;YI SYLLABLE CHEX
+A36F;ID;YI SYLLABLE CHE
+A370;ID;YI SYLLABLE CHEP
+A371;ID;YI SYLLABLE CHUX
+A372;ID;YI SYLLABLE CHU
+A373;ID;YI SYLLABLE CHUP
+A374;ID;YI SYLLABLE CHURX
+A375;ID;YI SYLLABLE CHUR
+A376;ID;YI SYLLABLE CHYT
+A377;ID;YI SYLLABLE CHYX
+A378;ID;YI SYLLABLE CHY
+A379;ID;YI SYLLABLE CHYP
+A37A;ID;YI SYLLABLE CHYRX
+A37B;ID;YI SYLLABLE CHYR
+A37C;ID;YI SYLLABLE RRAX
+A37D;ID;YI SYLLABLE RRA
+A37E;ID;YI SYLLABLE RRUOX
+A37F;ID;YI SYLLABLE RRUO
+A380;ID;YI SYLLABLE RROT
+A381;ID;YI SYLLABLE RROX
+A382;ID;YI SYLLABLE RRO
+A383;ID;YI SYLLABLE RROP
+A384;ID;YI SYLLABLE RRET
+A385;ID;YI SYLLABLE RREX
+A386;ID;YI SYLLABLE RRE
+A387;ID;YI SYLLABLE RREP
+A388;ID;YI SYLLABLE RRUT
+A389;ID;YI SYLLABLE RRUX
+A38A;ID;YI SYLLABLE RRU
+A38B;ID;YI SYLLABLE RRUP
+A38C;ID;YI SYLLABLE RRURX
+A38D;ID;YI SYLLABLE RRUR
+A38E;ID;YI SYLLABLE RRYT
+A38F;ID;YI SYLLABLE RRYX
+A390;ID;YI SYLLABLE RRY
+A391;ID;YI SYLLABLE RRYP
+A392;ID;YI SYLLABLE RRYRX
+A393;ID;YI SYLLABLE RRYR
+A394;ID;YI SYLLABLE NRAT
+A395;ID;YI SYLLABLE NRAX
+A396;ID;YI SYLLABLE NRA
+A397;ID;YI SYLLABLE NRAP
+A398;ID;YI SYLLABLE NROX
+A399;ID;YI SYLLABLE NRO
+A39A;ID;YI SYLLABLE NROP
+A39B;ID;YI SYLLABLE NRET
+A39C;ID;YI SYLLABLE NREX
+A39D;ID;YI SYLLABLE NRE
+A39E;ID;YI SYLLABLE NREP
+A39F;ID;YI SYLLABLE NRUT
+A3A0;ID;YI SYLLABLE NRUX
+A3A1;ID;YI SYLLABLE NRU
+A3A2;ID;YI SYLLABLE NRUP
+A3A3;ID;YI SYLLABLE NRURX
+A3A4;ID;YI SYLLABLE NRUR
+A3A5;ID;YI SYLLABLE NRYT
+A3A6;ID;YI SYLLABLE NRYX
+A3A7;ID;YI SYLLABLE NRY
+A3A8;ID;YI SYLLABLE NRYP
+A3A9;ID;YI SYLLABLE NRYRX
+A3AA;ID;YI SYLLABLE NRYR
+A3AB;ID;YI SYLLABLE SHAT
+A3AC;ID;YI SYLLABLE SHAX
+A3AD;ID;YI SYLLABLE SHA
+A3AE;ID;YI SYLLABLE SHAP
+A3AF;ID;YI SYLLABLE SHUOX
+A3B0;ID;YI SYLLABLE SHUO
+A3B1;ID;YI SYLLABLE SHUOP
+A3B2;ID;YI SYLLABLE SHOT
+A3B3;ID;YI SYLLABLE SHOX
+A3B4;ID;YI SYLLABLE SHO
+A3B5;ID;YI SYLLABLE SHOP
+A3B6;ID;YI SYLLABLE SHET
+A3B7;ID;YI SYLLABLE SHEX
+A3B8;ID;YI SYLLABLE SHE
+A3B9;ID;YI SYLLABLE SHEP
+A3BA;ID;YI SYLLABLE SHUT
+A3BB;ID;YI SYLLABLE SHUX
+A3BC;ID;YI SYLLABLE SHU
+A3BD;ID;YI SYLLABLE SHUP
+A3BE;ID;YI SYLLABLE SHURX
+A3BF;ID;YI SYLLABLE SHUR
+A3C0;ID;YI SYLLABLE SHYT
+A3C1;ID;YI SYLLABLE SHYX
+A3C2;ID;YI SYLLABLE SHY
+A3C3;ID;YI SYLLABLE SHYP
+A3C4;ID;YI SYLLABLE SHYRX
+A3C5;ID;YI SYLLABLE SHYR
+A3C6;ID;YI SYLLABLE RAT
+A3C7;ID;YI SYLLABLE RAX
+A3C8;ID;YI SYLLABLE RA
+A3C9;ID;YI SYLLABLE RAP
+A3CA;ID;YI SYLLABLE RUOX
+A3CB;ID;YI SYLLABLE RUO
+A3CC;ID;YI SYLLABLE RUOP
+A3CD;ID;YI SYLLABLE ROT
+A3CE;ID;YI SYLLABLE ROX
+A3CF;ID;YI SYLLABLE RO
+A3D0;ID;YI SYLLABLE ROP
+A3D1;ID;YI SYLLABLE REX
+A3D2;ID;YI SYLLABLE RE
+A3D3;ID;YI SYLLABLE REP
+A3D4;ID;YI SYLLABLE RUT
+A3D5;ID;YI SYLLABLE RUX
+A3D6;ID;YI SYLLABLE RU
+A3D7;ID;YI SYLLABLE RUP
+A3D8;ID;YI SYLLABLE RURX
+A3D9;ID;YI SYLLABLE RUR
+A3DA;ID;YI SYLLABLE RYT
+A3DB;ID;YI SYLLABLE RYX
+A3DC;ID;YI SYLLABLE RY
+A3DD;ID;YI SYLLABLE RYP
+A3DE;ID;YI SYLLABLE RYRX
+A3DF;ID;YI SYLLABLE RYR
+A3E0;ID;YI SYLLABLE JIT
+A3E1;ID;YI SYLLABLE JIX
+A3E2;ID;YI SYLLABLE JI
+A3E3;ID;YI SYLLABLE JIP
+A3E4;ID;YI SYLLABLE JIET
+A3E5;ID;YI SYLLABLE JIEX
+A3E6;ID;YI SYLLABLE JIE
+A3E7;ID;YI SYLLABLE JIEP
+A3E8;ID;YI SYLLABLE JUOT
+A3E9;ID;YI SYLLABLE JUOX
+A3EA;ID;YI SYLLABLE JUO
+A3EB;ID;YI SYLLABLE JUOP
+A3EC;ID;YI SYLLABLE JOT
+A3ED;ID;YI SYLLABLE JOX
+A3EE;ID;YI SYLLABLE JO
+A3EF;ID;YI SYLLABLE JOP
+A3F0;ID;YI SYLLABLE JUT
+A3F1;ID;YI SYLLABLE JUX
+A3F2;ID;YI SYLLABLE JU
+A3F3;ID;YI SYLLABLE JUP
+A3F4;ID;YI SYLLABLE JURX
+A3F5;ID;YI SYLLABLE JUR
+A3F6;ID;YI SYLLABLE JYT
+A3F7;ID;YI SYLLABLE JYX
+A3F8;ID;YI SYLLABLE JY
+A3F9;ID;YI SYLLABLE JYP
+A3FA;ID;YI SYLLABLE JYRX
+A3FB;ID;YI SYLLABLE JYR
+A3FC;ID;YI SYLLABLE QIT
+A3FD;ID;YI SYLLABLE QIX
+A3FE;ID;YI SYLLABLE QI
+A3FF;ID;YI SYLLABLE QIP
+A400;ID;YI SYLLABLE QIET
+A401;ID;YI SYLLABLE QIEX
+A402;ID;YI SYLLABLE QIE
+A403;ID;YI SYLLABLE QIEP
+A404;ID;YI SYLLABLE QUOT
+A405;ID;YI SYLLABLE QUOX
+A406;ID;YI SYLLABLE QUO
+A407;ID;YI SYLLABLE QUOP
+A408;ID;YI SYLLABLE QOT
+A409;ID;YI SYLLABLE QOX
+A40A;ID;YI SYLLABLE QO
+A40B;ID;YI SYLLABLE QOP
+A40C;ID;YI SYLLABLE QUT
+A40D;ID;YI SYLLABLE QUX
+A40E;ID;YI SYLLABLE QU
+A40F;ID;YI SYLLABLE QUP
+A410;ID;YI SYLLABLE QURX
+A411;ID;YI SYLLABLE QUR
+A412;ID;YI SYLLABLE QYT
+A413;ID;YI SYLLABLE QYX
+A414;ID;YI SYLLABLE QY
+A415;ID;YI SYLLABLE QYP
+A416;ID;YI SYLLABLE QYRX
+A417;ID;YI SYLLABLE QYR
+A418;ID;YI SYLLABLE JJIT
+A419;ID;YI SYLLABLE JJIX
+A41A;ID;YI SYLLABLE JJI
+A41B;ID;YI SYLLABLE JJIP
+A41C;ID;YI SYLLABLE JJIET
+A41D;ID;YI SYLLABLE JJIEX
+A41E;ID;YI SYLLABLE JJIE
+A41F;ID;YI SYLLABLE JJIEP
+A420;ID;YI SYLLABLE JJUOX
+A421;ID;YI SYLLABLE JJUO
+A422;ID;YI SYLLABLE JJUOP
+A423;ID;YI SYLLABLE JJOT
+A424;ID;YI SYLLABLE JJOX
+A425;ID;YI SYLLABLE JJO
+A426;ID;YI SYLLABLE JJOP
+A427;ID;YI SYLLABLE JJUT
+A428;ID;YI SYLLABLE JJUX
+A429;ID;YI SYLLABLE JJU
+A42A;ID;YI SYLLABLE JJUP
+A42B;ID;YI SYLLABLE JJURX
+A42C;ID;YI SYLLABLE JJUR
+A42D;ID;YI SYLLABLE JJYT
+A42E;ID;YI SYLLABLE JJYX
+A42F;ID;YI SYLLABLE JJY
+A430;ID;YI SYLLABLE JJYP
+A431;ID;YI SYLLABLE NJIT
+A432;ID;YI SYLLABLE NJIX
+A433;ID;YI SYLLABLE NJI
+A434;ID;YI SYLLABLE NJIP
+A435;ID;YI SYLLABLE NJIET
+A436;ID;YI SYLLABLE NJIEX
+A437;ID;YI SYLLABLE NJIE
+A438;ID;YI SYLLABLE NJIEP
+A439;ID;YI SYLLABLE NJUOX
+A43A;ID;YI SYLLABLE NJUO
+A43B;ID;YI SYLLABLE NJOT
+A43C;ID;YI SYLLABLE NJOX
+A43D;ID;YI SYLLABLE NJO
+A43E;ID;YI SYLLABLE NJOP
+A43F;ID;YI SYLLABLE NJUX
+A440;ID;YI SYLLABLE NJU
+A441;ID;YI SYLLABLE NJUP
+A442;ID;YI SYLLABLE NJURX
+A443;ID;YI SYLLABLE NJUR
+A444;ID;YI SYLLABLE NJYT
+A445;ID;YI SYLLABLE NJYX
+A446;ID;YI SYLLABLE NJY
+A447;ID;YI SYLLABLE NJYP
+A448;ID;YI SYLLABLE NJYRX
+A449;ID;YI SYLLABLE NJYR
+A44A;ID;YI SYLLABLE NYIT
+A44B;ID;YI SYLLABLE NYIX
+A44C;ID;YI SYLLABLE NYI
+A44D;ID;YI SYLLABLE NYIP
+A44E;ID;YI SYLLABLE NYIET
+A44F;ID;YI SYLLABLE NYIEX
+A450;ID;YI SYLLABLE NYIE
+A451;ID;YI SYLLABLE NYIEP
+A452;ID;YI SYLLABLE NYUOX
+A453;ID;YI SYLLABLE NYUO
+A454;ID;YI SYLLABLE NYUOP
+A455;ID;YI SYLLABLE NYOT
+A456;ID;YI SYLLABLE NYOX
+A457;ID;YI SYLLABLE NYO
+A458;ID;YI SYLLABLE NYOP
+A459;ID;YI SYLLABLE NYUT
+A45A;ID;YI SYLLABLE NYUX
+A45B;ID;YI SYLLABLE NYU
+A45C;ID;YI SYLLABLE NYUP
+A45D;ID;YI SYLLABLE XIT
+A45E;ID;YI SYLLABLE XIX
+A45F;ID;YI SYLLABLE XI
+A460;ID;YI SYLLABLE XIP
+A461;ID;YI SYLLABLE XIET
+A462;ID;YI SYLLABLE XIEX
+A463;ID;YI SYLLABLE XIE
+A464;ID;YI SYLLABLE XIEP
+A465;ID;YI SYLLABLE XUOX
+A466;ID;YI SYLLABLE XUO
+A467;ID;YI SYLLABLE XOT
+A468;ID;YI SYLLABLE XOX
+A469;ID;YI SYLLABLE XO
+A46A;ID;YI SYLLABLE XOP
+A46B;ID;YI SYLLABLE XYT
+A46C;ID;YI SYLLABLE XYX
+A46D;ID;YI SYLLABLE XY
+A46E;ID;YI SYLLABLE XYP
+A46F;ID;YI SYLLABLE XYRX
+A470;ID;YI SYLLABLE XYR
+A471;ID;YI SYLLABLE YIT
+A472;ID;YI SYLLABLE YIX
+A473;ID;YI SYLLABLE YI
+A474;ID;YI SYLLABLE YIP
+A475;ID;YI SYLLABLE YIET
+A476;ID;YI SYLLABLE YIEX
+A477;ID;YI SYLLABLE YIE
+A478;ID;YI SYLLABLE YIEP
+A479;ID;YI SYLLABLE YUOT
+A47A;ID;YI SYLLABLE YUOX
+A47B;ID;YI SYLLABLE YUO
+A47C;ID;YI SYLLABLE YUOP
+A47D;ID;YI SYLLABLE YOT
+A47E;ID;YI SYLLABLE YOX
+A47F;ID;YI SYLLABLE YO
+A480;ID;YI SYLLABLE YOP
+A481;ID;YI SYLLABLE YUT
+A482;ID;YI SYLLABLE YUX
+A483;ID;YI SYLLABLE YU
+A484;ID;YI SYLLABLE YUP
+A485;ID;YI SYLLABLE YURX
+A486;ID;YI SYLLABLE YUR
+A487;ID;YI SYLLABLE YYT
+A488;ID;YI SYLLABLE YYX
+A489;ID;YI SYLLABLE YY
+A48A;ID;YI SYLLABLE YYP
+A48B;ID;YI SYLLABLE YYRX
+A48C;ID;YI SYLLABLE YYR
+A490;ID;YI RADICAL QOT
+A491;ID;YI RADICAL LI
+A492;ID;YI RADICAL KIT
+A493;ID;YI RADICAL NYIP
+A494;ID;YI RADICAL CYP
+A495;ID;YI RADICAL SSI
+A496;ID;YI RADICAL GGOP
+A497;ID;YI RADICAL GEP
+A498;ID;YI RADICAL MI
+A499;ID;YI RADICAL HXIT
+A49A;ID;YI RADICAL LYR
+A49B;ID;YI RADICAL BBUT
+A49C;ID;YI RADICAL MOP
+A49D;ID;YI RADICAL YO
+A49E;ID;YI RADICAL PUT
+A49F;ID;YI RADICAL HXUO
+A4A0;ID;YI RADICAL TAT
+A4A1;ID;YI RADICAL GA
+A4A4;ID;YI RADICAL DDUR
+A4A5;ID;YI RADICAL BUR
+A4A6;ID;YI RADICAL GGUO
+A4A7;ID;YI RADICAL NYOP
+A4A8;ID;YI RADICAL TU
+A4A9;ID;YI RADICAL OP
+A4AA;ID;YI RADICAL JJUT
+A4AB;ID;YI RADICAL ZOT
+A4AC;ID;YI RADICAL PYT
+A4AD;ID;YI RADICAL HMO
+A4AE;ID;YI RADICAL YIT
+A4AF;ID;YI RADICAL VUR
+A4B0;ID;YI RADICAL SHY
+A4B1;ID;YI RADICAL VEP
+A4B2;ID;YI RADICAL ZA
+A4B3;ID;YI RADICAL JO
+A4B5;ID;YI RADICAL JJY
+A4B6;ID;YI RADICAL GOT
+A4B7;ID;YI RADICAL JJIE
+A4B8;ID;YI RADICAL WO
+A4B9;ID;YI RADICAL DU
+A4BA;ID;YI RADICAL SHUR
+A4BB;ID;YI RADICAL LIE
+A4BC;ID;YI RADICAL CY
+A4BD;ID;YI RADICAL CUOP
+A4BE;ID;YI RADICAL CIP
+A4BF;ID;YI RADICAL HXOP
+A4C0;ID;YI RADICAL SHAT
+A4C2;ID;YI RADICAL SHOP
+A4C3;ID;YI RADICAL CHE
+A4C4;ID;YI RADICAL ZZIET
+A4C6;ID;YI RADICAL KE
+AC00;ID;<Hangul Syllable, First>
+D7A3;ID;<Hangul Syllable, Last>
+D800;SG;<Non Private Use High Surrogate, First>
+DB7F;SG;<Non Private Use High Surrogate, Last>
+DB80;SG;<Private Use High Surrogate, First>
+DBFF;SG;<Private Use High Surrogate, Last>
+DC00;SG;<Low Surrogate, First>
+DFFF;SG;<Low Surrogate, Last>
+E000;AI;<Private Use, First>
+F8FF;AI;<Private Use, Last>
+F900;ID;CJK COMPATIBILITY IDEOGRAPH-F900
+F901;ID;CJK COMPATIBILITY IDEOGRAPH-F901
+F902;ID;CJK COMPATIBILITY IDEOGRAPH-F902
+F903;ID;CJK COMPATIBILITY IDEOGRAPH-F903
+F904;ID;CJK COMPATIBILITY IDEOGRAPH-F904
+F905;ID;CJK COMPATIBILITY IDEOGRAPH-F905
+F906;ID;CJK COMPATIBILITY IDEOGRAPH-F906
+F907;ID;CJK COMPATIBILITY IDEOGRAPH-F907
+F908;ID;CJK COMPATIBILITY IDEOGRAPH-F908
+F909;ID;CJK COMPATIBILITY IDEOGRAPH-F909
+F90A;ID;CJK COMPATIBILITY IDEOGRAPH-F90A
+F90B;ID;CJK COMPATIBILITY IDEOGRAPH-F90B
+F90C;ID;CJK COMPATIBILITY IDEOGRAPH-F90C
+F90D;ID;CJK COMPATIBILITY IDEOGRAPH-F90D
+F90E;ID;CJK COMPATIBILITY IDEOGRAPH-F90E
+F90F;ID;CJK COMPATIBILITY IDEOGRAPH-F90F
+F910;ID;CJK COMPATIBILITY IDEOGRAPH-F910
+F911;ID;CJK COMPATIBILITY IDEOGRAPH-F911
+F912;ID;CJK COMPATIBILITY IDEOGRAPH-F912
+F913;ID;CJK COMPATIBILITY IDEOGRAPH-F913
+F914;ID;CJK COMPATIBILITY IDEOGRAPH-F914
+F915;ID;CJK COMPATIBILITY IDEOGRAPH-F915
+F916;ID;CJK COMPATIBILITY IDEOGRAPH-F916
+F917;ID;CJK COMPATIBILITY IDEOGRAPH-F917
+F918;ID;CJK COMPATIBILITY IDEOGRAPH-F918
+F919;ID;CJK COMPATIBILITY IDEOGRAPH-F919
+F91A;ID;CJK COMPATIBILITY IDEOGRAPH-F91A
+F91B;ID;CJK COMPATIBILITY IDEOGRAPH-F91B
+F91C;ID;CJK COMPATIBILITY IDEOGRAPH-F91C
+F91D;ID;CJK COMPATIBILITY IDEOGRAPH-F91D
+F91E;ID;CJK COMPATIBILITY IDEOGRAPH-F91E
+F91F;ID;CJK COMPATIBILITY IDEOGRAPH-F91F
+F920;ID;CJK COMPATIBILITY IDEOGRAPH-F920
+F921;ID;CJK COMPATIBILITY IDEOGRAPH-F921
+F922;ID;CJK COMPATIBILITY IDEOGRAPH-F922
+F923;ID;CJK COMPATIBILITY IDEOGRAPH-F923
+F924;ID;CJK COMPATIBILITY IDEOGRAPH-F924
+F925;ID;CJK COMPATIBILITY IDEOGRAPH-F925
+F926;ID;CJK COMPATIBILITY IDEOGRAPH-F926
+F927;ID;CJK COMPATIBILITY IDEOGRAPH-F927
+F928;ID;CJK COMPATIBILITY IDEOGRAPH-F928
+F929;ID;CJK COMPATIBILITY IDEOGRAPH-F929
+F92A;ID;CJK COMPATIBILITY IDEOGRAPH-F92A
+F92B;ID;CJK COMPATIBILITY IDEOGRAPH-F92B
+F92C;ID;CJK COMPATIBILITY IDEOGRAPH-F92C
+F92D;ID;CJK COMPATIBILITY IDEOGRAPH-F92D
+F92E;ID;CJK COMPATIBILITY IDEOGRAPH-F92E
+F92F;ID;CJK COMPATIBILITY IDEOGRAPH-F92F
+F930;ID;CJK COMPATIBILITY IDEOGRAPH-F930
+F931;ID;CJK COMPATIBILITY IDEOGRAPH-F931
+F932;ID;CJK COMPATIBILITY IDEOGRAPH-F932
+F933;ID;CJK COMPATIBILITY IDEOGRAPH-F933
+F934;ID;CJK COMPATIBILITY IDEOGRAPH-F934
+F935;ID;CJK COMPATIBILITY IDEOGRAPH-F935
+F936;ID;CJK COMPATIBILITY IDEOGRAPH-F936
+F937;ID;CJK COMPATIBILITY IDEOGRAPH-F937
+F938;ID;CJK COMPATIBILITY IDEOGRAPH-F938
+F939;ID;CJK COMPATIBILITY IDEOGRAPH-F939
+F93A;ID;CJK COMPATIBILITY IDEOGRAPH-F93A
+F93B;ID;CJK COMPATIBILITY IDEOGRAPH-F93B
+F93C;ID;CJK COMPATIBILITY IDEOGRAPH-F93C
+F93D;ID;CJK COMPATIBILITY IDEOGRAPH-F93D
+F93E;ID;CJK COMPATIBILITY IDEOGRAPH-F93E
+F93F;ID;CJK COMPATIBILITY IDEOGRAPH-F93F
+F940;ID;CJK COMPATIBILITY IDEOGRAPH-F940
+F941;ID;CJK COMPATIBILITY IDEOGRAPH-F941
+F942;ID;CJK COMPATIBILITY IDEOGRAPH-F942
+F943;ID;CJK COMPATIBILITY IDEOGRAPH-F943
+F944;ID;CJK COMPATIBILITY IDEOGRAPH-F944
+F945;ID;CJK COMPATIBILITY IDEOGRAPH-F945
+F946;ID;CJK COMPATIBILITY IDEOGRAPH-F946
+F947;ID;CJK COMPATIBILITY IDEOGRAPH-F947
+F948;ID;CJK COMPATIBILITY IDEOGRAPH-F948
+F949;ID;CJK COMPATIBILITY IDEOGRAPH-F949
+F94A;ID;CJK COMPATIBILITY IDEOGRAPH-F94A
+F94B;ID;CJK COMPATIBILITY IDEOGRAPH-F94B
+F94C;ID;CJK COMPATIBILITY IDEOGRAPH-F94C
+F94D;ID;CJK COMPATIBILITY IDEOGRAPH-F94D
+F94E;ID;CJK COMPATIBILITY IDEOGRAPH-F94E
+F94F;ID;CJK COMPATIBILITY IDEOGRAPH-F94F
+F950;ID;CJK COMPATIBILITY IDEOGRAPH-F950
+F951;ID;CJK COMPATIBILITY IDEOGRAPH-F951
+F952;ID;CJK COMPATIBILITY IDEOGRAPH-F952
+F953;ID;CJK COMPATIBILITY IDEOGRAPH-F953
+F954;ID;CJK COMPATIBILITY IDEOGRAPH-F954
+F955;ID;CJK COMPATIBILITY IDEOGRAPH-F955
+F956;ID;CJK COMPATIBILITY IDEOGRAPH-F956
+F957;ID;CJK COMPATIBILITY IDEOGRAPH-F957
+F958;ID;CJK COMPATIBILITY IDEOGRAPH-F958
+F959;ID;CJK COMPATIBILITY IDEOGRAPH-F959
+F95A;ID;CJK COMPATIBILITY IDEOGRAPH-F95A
+F95B;ID;CJK COMPATIBILITY IDEOGRAPH-F95B
+F95C;ID;CJK COMPATIBILITY IDEOGRAPH-F95C
+F95D;ID;CJK COMPATIBILITY IDEOGRAPH-F95D
+F95E;ID;CJK COMPATIBILITY IDEOGRAPH-F95E
+F95F;ID;CJK COMPATIBILITY IDEOGRAPH-F95F
+F960;ID;CJK COMPATIBILITY IDEOGRAPH-F960
+F961;ID;CJK COMPATIBILITY IDEOGRAPH-F961
+F962;ID;CJK COMPATIBILITY IDEOGRAPH-F962
+F963;ID;CJK COMPATIBILITY IDEOGRAPH-F963
+F964;ID;CJK COMPATIBILITY IDEOGRAPH-F964
+F965;ID;CJK COMPATIBILITY IDEOGRAPH-F965
+F966;ID;CJK COMPATIBILITY IDEOGRAPH-F966
+F967;ID;CJK COMPATIBILITY IDEOGRAPH-F967
+F968;ID;CJK COMPATIBILITY IDEOGRAPH-F968
+F969;ID;CJK COMPATIBILITY IDEOGRAPH-F969
+F96A;ID;CJK COMPATIBILITY IDEOGRAPH-F96A
+F96B;ID;CJK COMPATIBILITY IDEOGRAPH-F96B
+F96C;ID;CJK COMPATIBILITY IDEOGRAPH-F96C
+F96D;ID;CJK COMPATIBILITY IDEOGRAPH-F96D
+F96E;ID;CJK COMPATIBILITY IDEOGRAPH-F96E
+F96F;ID;CJK COMPATIBILITY IDEOGRAPH-F96F
+F970;ID;CJK COMPATIBILITY IDEOGRAPH-F970
+F971;ID;CJK COMPATIBILITY IDEOGRAPH-F971
+F972;ID;CJK COMPATIBILITY IDEOGRAPH-F972
+F973;ID;CJK COMPATIBILITY IDEOGRAPH-F973
+F974;ID;CJK COMPATIBILITY IDEOGRAPH-F974
+F975;ID;CJK COMPATIBILITY IDEOGRAPH-F975
+F976;ID;CJK COMPATIBILITY IDEOGRAPH-F976
+F977;ID;CJK COMPATIBILITY IDEOGRAPH-F977
+F978;ID;CJK COMPATIBILITY IDEOGRAPH-F978
+F979;ID;CJK COMPATIBILITY IDEOGRAPH-F979
+F97A;ID;CJK COMPATIBILITY IDEOGRAPH-F97A
+F97B;ID;CJK COMPATIBILITY IDEOGRAPH-F97B
+F97C;ID;CJK COMPATIBILITY IDEOGRAPH-F97C
+F97D;ID;CJK COMPATIBILITY IDEOGRAPH-F97D
+F97E;ID;CJK COMPATIBILITY IDEOGRAPH-F97E
+F97F;ID;CJK COMPATIBILITY IDEOGRAPH-F97F
+F980;ID;CJK COMPATIBILITY IDEOGRAPH-F980
+F981;ID;CJK COMPATIBILITY IDEOGRAPH-F981
+F982;ID;CJK COMPATIBILITY IDEOGRAPH-F982
+F983;ID;CJK COMPATIBILITY IDEOGRAPH-F983
+F984;ID;CJK COMPATIBILITY IDEOGRAPH-F984
+F985;ID;CJK COMPATIBILITY IDEOGRAPH-F985
+F986;ID;CJK COMPATIBILITY IDEOGRAPH-F986
+F987;ID;CJK COMPATIBILITY IDEOGRAPH-F987
+F988;ID;CJK COMPATIBILITY IDEOGRAPH-F988
+F989;ID;CJK COMPATIBILITY IDEOGRAPH-F989
+F98A;ID;CJK COMPATIBILITY IDEOGRAPH-F98A
+F98B;ID;CJK COMPATIBILITY IDEOGRAPH-F98B
+F98C;ID;CJK COMPATIBILITY IDEOGRAPH-F98C
+F98D;ID;CJK COMPATIBILITY IDEOGRAPH-F98D
+F98E;ID;CJK COMPATIBILITY IDEOGRAPH-F98E
+F98F;ID;CJK COMPATIBILITY IDEOGRAPH-F98F
+F990;ID;CJK COMPATIBILITY IDEOGRAPH-F990
+F991;ID;CJK COMPATIBILITY IDEOGRAPH-F991
+F992;ID;CJK COMPATIBILITY IDEOGRAPH-F992
+F993;ID;CJK COMPATIBILITY IDEOGRAPH-F993
+F994;ID;CJK COMPATIBILITY IDEOGRAPH-F994
+F995;ID;CJK COMPATIBILITY IDEOGRAPH-F995
+F996;ID;CJK COMPATIBILITY IDEOGRAPH-F996
+F997;ID;CJK COMPATIBILITY IDEOGRAPH-F997
+F998;ID;CJK COMPATIBILITY IDEOGRAPH-F998
+F999;ID;CJK COMPATIBILITY IDEOGRAPH-F999
+F99A;ID;CJK COMPATIBILITY IDEOGRAPH-F99A
+F99B;ID;CJK COMPATIBILITY IDEOGRAPH-F99B
+F99C;ID;CJK COMPATIBILITY IDEOGRAPH-F99C
+F99D;ID;CJK COMPATIBILITY IDEOGRAPH-F99D
+F99E;ID;CJK COMPATIBILITY IDEOGRAPH-F99E
+F99F;ID;CJK COMPATIBILITY IDEOGRAPH-F99F
+F9A0;ID;CJK COMPATIBILITY IDEOGRAPH-F9A0
+F9A1;ID;CJK COMPATIBILITY IDEOGRAPH-F9A1
+F9A2;ID;CJK COMPATIBILITY IDEOGRAPH-F9A2
+F9A3;ID;CJK COMPATIBILITY IDEOGRAPH-F9A3
+F9A4;ID;CJK COMPATIBILITY IDEOGRAPH-F9A4
+F9A5;ID;CJK COMPATIBILITY IDEOGRAPH-F9A5
+F9A6;ID;CJK COMPATIBILITY IDEOGRAPH-F9A6
+F9A7;ID;CJK COMPATIBILITY IDEOGRAPH-F9A7
+F9A8;ID;CJK COMPATIBILITY IDEOGRAPH-F9A8
+F9A9;ID;CJK COMPATIBILITY IDEOGRAPH-F9A9
+F9AA;ID;CJK COMPATIBILITY IDEOGRAPH-F9AA
+F9AB;ID;CJK COMPATIBILITY IDEOGRAPH-F9AB
+F9AC;ID;CJK COMPATIBILITY IDEOGRAPH-F9AC
+F9AD;ID;CJK COMPATIBILITY IDEOGRAPH-F9AD
+F9AE;ID;CJK COMPATIBILITY IDEOGRAPH-F9AE
+F9AF;ID;CJK COMPATIBILITY IDEOGRAPH-F9AF
+F9B0;ID;CJK COMPATIBILITY IDEOGRAPH-F9B0
+F9B1;ID;CJK COMPATIBILITY IDEOGRAPH-F9B1
+F9B2;ID;CJK COMPATIBILITY IDEOGRAPH-F9B2
+F9B3;ID;CJK COMPATIBILITY IDEOGRAPH-F9B3
+F9B4;ID;CJK COMPATIBILITY IDEOGRAPH-F9B4
+F9B5;ID;CJK COMPATIBILITY IDEOGRAPH-F9B5
+F9B6;ID;CJK COMPATIBILITY IDEOGRAPH-F9B6
+F9B7;ID;CJK COMPATIBILITY IDEOGRAPH-F9B7
+F9B8;ID;CJK COMPATIBILITY IDEOGRAPH-F9B8
+F9B9;ID;CJK COMPATIBILITY IDEOGRAPH-F9B9
+F9BA;ID;CJK COMPATIBILITY IDEOGRAPH-F9BA
+F9BB;ID;CJK COMPATIBILITY IDEOGRAPH-F9BB
+F9BC;ID;CJK COMPATIBILITY IDEOGRAPH-F9BC
+F9BD;ID;CJK COMPATIBILITY IDEOGRAPH-F9BD
+F9BE;ID;CJK COMPATIBILITY IDEOGRAPH-F9BE
+F9BF;ID;CJK COMPATIBILITY IDEOGRAPH-F9BF
+F9C0;ID;CJK COMPATIBILITY IDEOGRAPH-F9C0
+F9C1;ID;CJK COMPATIBILITY IDEOGRAPH-F9C1
+F9C2;ID;CJK COMPATIBILITY IDEOGRAPH-F9C2
+F9C3;ID;CJK COMPATIBILITY IDEOGRAPH-F9C3
+F9C4;ID;CJK COMPATIBILITY IDEOGRAPH-F9C4
+F9C5;ID;CJK COMPATIBILITY IDEOGRAPH-F9C5
+F9C6;ID;CJK COMPATIBILITY IDEOGRAPH-F9C6
+F9C7;ID;CJK COMPATIBILITY IDEOGRAPH-F9C7
+F9C8;ID;CJK COMPATIBILITY IDEOGRAPH-F9C8
+F9C9;ID;CJK COMPATIBILITY IDEOGRAPH-F9C9
+F9CA;ID;CJK COMPATIBILITY IDEOGRAPH-F9CA
+F9CB;ID;CJK COMPATIBILITY IDEOGRAPH-F9CB
+F9CC;ID;CJK COMPATIBILITY IDEOGRAPH-F9CC
+F9CD;ID;CJK COMPATIBILITY IDEOGRAPH-F9CD
+F9CE;ID;CJK COMPATIBILITY IDEOGRAPH-F9CE
+F9CF;ID;CJK COMPATIBILITY IDEOGRAPH-F9CF
+F9D0;ID;CJK COMPATIBILITY IDEOGRAPH-F9D0
+F9D1;ID;CJK COMPATIBILITY IDEOGRAPH-F9D1
+F9D2;ID;CJK COMPATIBILITY IDEOGRAPH-F9D2
+F9D3;ID;CJK COMPATIBILITY IDEOGRAPH-F9D3
+F9D4;ID;CJK COMPATIBILITY IDEOGRAPH-F9D4
+F9D5;ID;CJK COMPATIBILITY IDEOGRAPH-F9D5
+F9D6;ID;CJK COMPATIBILITY IDEOGRAPH-F9D6
+F9D7;ID;CJK COMPATIBILITY IDEOGRAPH-F9D7
+F9D8;ID;CJK COMPATIBILITY IDEOGRAPH-F9D8
+F9D9;ID;CJK COMPATIBILITY IDEOGRAPH-F9D9
+F9DA;ID;CJK COMPATIBILITY IDEOGRAPH-F9DA
+F9DB;ID;CJK COMPATIBILITY IDEOGRAPH-F9DB
+F9DC;ID;CJK COMPATIBILITY IDEOGRAPH-F9DC
+F9DD;ID;CJK COMPATIBILITY IDEOGRAPH-F9DD
+F9DE;ID;CJK COMPATIBILITY IDEOGRAPH-F9DE
+F9DF;ID;CJK COMPATIBILITY IDEOGRAPH-F9DF
+F9E0;ID;CJK COMPATIBILITY IDEOGRAPH-F9E0
+F9E1;ID;CJK COMPATIBILITY IDEOGRAPH-F9E1
+F9E2;ID;CJK COMPATIBILITY IDEOGRAPH-F9E2
+F9E3;ID;CJK COMPATIBILITY IDEOGRAPH-F9E3
+F9E4;ID;CJK COMPATIBILITY IDEOGRAPH-F9E4
+F9E5;ID;CJK COMPATIBILITY IDEOGRAPH-F9E5
+F9E6;ID;CJK COMPATIBILITY IDEOGRAPH-F9E6
+F9E7;ID;CJK COMPATIBILITY IDEOGRAPH-F9E7
+F9E8;ID;CJK COMPATIBILITY IDEOGRAPH-F9E8
+F9E9;ID;CJK COMPATIBILITY IDEOGRAPH-F9E9
+F9EA;ID;CJK COMPATIBILITY IDEOGRAPH-F9EA
+F9EB;ID;CJK COMPATIBILITY IDEOGRAPH-F9EB
+F9EC;ID;CJK COMPATIBILITY IDEOGRAPH-F9EC
+F9ED;ID;CJK COMPATIBILITY IDEOGRAPH-F9ED
+F9EE;ID;CJK COMPATIBILITY IDEOGRAPH-F9EE
+F9EF;ID;CJK COMPATIBILITY IDEOGRAPH-F9EF
+F9F0;ID;CJK COMPATIBILITY IDEOGRAPH-F9F0
+F9F1;ID;CJK COMPATIBILITY IDEOGRAPH-F9F1
+F9F2;ID;CJK COMPATIBILITY IDEOGRAPH-F9F2
+F9F3;ID;CJK COMPATIBILITY IDEOGRAPH-F9F3
+F9F4;ID;CJK COMPATIBILITY IDEOGRAPH-F9F4
+F9F5;ID;CJK COMPATIBILITY IDEOGRAPH-F9F5
+F9F6;ID;CJK COMPATIBILITY IDEOGRAPH-F9F6
+F9F7;ID;CJK COMPATIBILITY IDEOGRAPH-F9F7
+F9F8;ID;CJK COMPATIBILITY IDEOGRAPH-F9F8
+F9F9;ID;CJK COMPATIBILITY IDEOGRAPH-F9F9
+F9FA;ID;CJK COMPATIBILITY IDEOGRAPH-F9FA
+F9FB;ID;CJK COMPATIBILITY IDEOGRAPH-F9FB
+F9FC;ID;CJK COMPATIBILITY IDEOGRAPH-F9FC
+F9FD;ID;CJK COMPATIBILITY IDEOGRAPH-F9FD
+F9FE;ID;CJK COMPATIBILITY IDEOGRAPH-F9FE
+F9FF;ID;CJK COMPATIBILITY IDEOGRAPH-F9FF
+FA00;ID;CJK COMPATIBILITY IDEOGRAPH-FA00
+FA01;ID;CJK COMPATIBILITY IDEOGRAPH-FA01
+FA02;ID;CJK COMPATIBILITY IDEOGRAPH-FA02
+FA03;ID;CJK COMPATIBILITY IDEOGRAPH-FA03
+FA04;ID;CJK COMPATIBILITY IDEOGRAPH-FA04
+FA05;ID;CJK COMPATIBILITY IDEOGRAPH-FA05
+FA06;ID;CJK COMPATIBILITY IDEOGRAPH-FA06
+FA07;ID;CJK COMPATIBILITY IDEOGRAPH-FA07
+FA08;ID;CJK COMPATIBILITY IDEOGRAPH-FA08
+FA09;ID;CJK COMPATIBILITY IDEOGRAPH-FA09
+FA0A;ID;CJK COMPATIBILITY IDEOGRAPH-FA0A
+FA0B;ID;CJK COMPATIBILITY IDEOGRAPH-FA0B
+FA0C;ID;CJK COMPATIBILITY IDEOGRAPH-FA0C
+FA0D;ID;CJK COMPATIBILITY IDEOGRAPH-FA0D
+FA0E;ID;CJK COMPATIBILITY IDEOGRAPH-FA0E
+FA0F;ID;CJK COMPATIBILITY IDEOGRAPH-FA0F
+FA10;ID;CJK COMPATIBILITY IDEOGRAPH-FA10
+FA11;ID;CJK COMPATIBILITY IDEOGRAPH-FA11
+FA12;ID;CJK COMPATIBILITY IDEOGRAPH-FA12
+FA13;ID;CJK COMPATIBILITY IDEOGRAPH-FA13
+FA14;ID;CJK COMPATIBILITY IDEOGRAPH-FA14
+FA15;ID;CJK COMPATIBILITY IDEOGRAPH-FA15
+FA16;ID;CJK COMPATIBILITY IDEOGRAPH-FA16
+FA17;ID;CJK COMPATIBILITY IDEOGRAPH-FA17
+FA18;ID;CJK COMPATIBILITY IDEOGRAPH-FA18
+FA19;ID;CJK COMPATIBILITY IDEOGRAPH-FA19
+FA1A;ID;CJK COMPATIBILITY IDEOGRAPH-FA1A
+FA1B;ID;CJK COMPATIBILITY IDEOGRAPH-FA1B
+FA1C;ID;CJK COMPATIBILITY IDEOGRAPH-FA1C
+FA1D;ID;CJK COMPATIBILITY IDEOGRAPH-FA1D
+FA1E;ID;CJK COMPATIBILITY IDEOGRAPH-FA1E
+FA1F;ID;CJK COMPATIBILITY IDEOGRAPH-FA1F
+FA20;ID;CJK COMPATIBILITY IDEOGRAPH-FA20
+FA21;ID;CJK COMPATIBILITY IDEOGRAPH-FA21
+FA22;ID;CJK COMPATIBILITY IDEOGRAPH-FA22
+FA23;ID;CJK COMPATIBILITY IDEOGRAPH-FA23
+FA24;ID;CJK COMPATIBILITY IDEOGRAPH-FA24
+FA25;ID;CJK COMPATIBILITY IDEOGRAPH-FA25
+FA26;ID;CJK COMPATIBILITY IDEOGRAPH-FA26
+FA27;ID;CJK COMPATIBILITY IDEOGRAPH-FA27
+FA28;ID;CJK COMPATIBILITY IDEOGRAPH-FA28
+FA29;ID;CJK COMPATIBILITY IDEOGRAPH-FA29
+FA2A;ID;CJK COMPATIBILITY IDEOGRAPH-FA2A
+FA2B;ID;CJK COMPATIBILITY IDEOGRAPH-FA2B
+FA2C;ID;CJK COMPATIBILITY IDEOGRAPH-FA2C
+FA2D;ID;CJK COMPATIBILITY IDEOGRAPH-FA2D
+FB00;AL;LATIN SMALL LIGATURE FF
+FB01;AL;LATIN SMALL LIGATURE FI
+FB02;AL;LATIN SMALL LIGATURE FL
+FB03;AL;LATIN SMALL LIGATURE FFI
+FB04;AL;LATIN SMALL LIGATURE FFL
+FB05;AL;LATIN SMALL LIGATURE LONG S T
+FB06;AL;LATIN SMALL LIGATURE ST
+FB13;AL;ARMENIAN SMALL LIGATURE MEN NOW
+FB14;AL;ARMENIAN SMALL LIGATURE MEN ECH
+FB15;AL;ARMENIAN SMALL LIGATURE MEN INI
+FB16;AL;ARMENIAN SMALL LIGATURE VEW NOW
+FB17;AL;ARMENIAN SMALL LIGATURE MEN XEH
+FB1D;AL;HEBREW LETTER YOD WITH HIRIQ
+FB1E;CM;HEBREW POINT JUDEO-SPANISH VARIKA
+FB1F;AL;HEBREW LIGATURE YIDDISH YOD YOD PATAH
+FB20;AL;HEBREW LETTER ALTERNATIVE AYIN
+FB21;AL;HEBREW LETTER WIDE ALEF
+FB22;AL;HEBREW LETTER WIDE DALET
+FB23;AL;HEBREW LETTER WIDE HE
+FB24;AL;HEBREW LETTER WIDE KAF
+FB25;AL;HEBREW LETTER WIDE LAMED
+FB26;AL;HEBREW LETTER WIDE FINAL MEM
+FB27;AL;HEBREW LETTER WIDE RESH
+FB28;AL;HEBREW LETTER WIDE TAV
+FB29;AL;HEBREW LETTER ALTERNATIVE PLUS SIGN
+FB2A;AL;HEBREW LETTER SHIN WITH SHIN DOT
+FB2B;AL;HEBREW LETTER SHIN WITH SIN DOT
+FB2C;AL;HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT
+FB2D;AL;HEBREW LETTER SHIN WITH DAGESH AND SIN DOT
+FB2E;AL;HEBREW LETTER ALEF WITH PATAH
+FB2F;AL;HEBREW LETTER ALEF WITH QAMATS
+FB30;AL;HEBREW LETTER ALEF WITH MAPIQ
+FB31;AL;HEBREW LETTER BET WITH DAGESH
+FB32;AL;HEBREW LETTER GIMEL WITH DAGESH
+FB33;AL;HEBREW LETTER DALET WITH DAGESH
+FB34;AL;HEBREW LETTER HE WITH MAPIQ
+FB35;AL;HEBREW LETTER VAV WITH DAGESH
+FB36;AL;HEBREW LETTER ZAYIN WITH DAGESH
+FB38;AL;HEBREW LETTER TET WITH DAGESH
+FB39;AL;HEBREW LETTER YOD WITH DAGESH
+FB3A;AL;HEBREW LETTER FINAL KAF WITH DAGESH
+FB3B;AL;HEBREW LETTER KAF WITH DAGESH
+FB3C;AL;HEBREW LETTER LAMED WITH DAGESH
+FB3E;AL;HEBREW LETTER MEM WITH DAGESH
+FB40;AL;HEBREW LETTER NUN WITH DAGESH
+FB41;AL;HEBREW LETTER SAMEKH WITH DAGESH
+FB43;AL;HEBREW LETTER FINAL PE WITH DAGESH
+FB44;AL;HEBREW LETTER PE WITH DAGESH
+FB46;AL;HEBREW LETTER TSADI WITH DAGESH
+FB47;AL;HEBREW LETTER QOF WITH DAGESH
+FB48;AL;HEBREW LETTER RESH WITH DAGESH
+FB49;AL;HEBREW LETTER SHIN WITH DAGESH
+FB4A;AL;HEBREW LETTER TAV WITH DAGESH
+FB4B;AL;HEBREW LETTER VAV WITH HOLAM
+FB4C;AL;HEBREW LETTER BET WITH RAFE
+FB4D;AL;HEBREW LETTER KAF WITH RAFE
+FB4E;AL;HEBREW LETTER PE WITH RAFE
+FB4F;AL;HEBREW LIGATURE ALEF LAMED
+FB50;AL;ARABIC LETTER ALEF WASLA ISOLATED FORM
+FB51;AL;ARABIC LETTER ALEF WASLA FINAL FORM
+FB52;AL;ARABIC LETTER BEEH ISOLATED FORM
+FB53;AL;ARABIC LETTER BEEH FINAL FORM
+FB54;AL;ARABIC LETTER BEEH INITIAL FORM
+FB55;AL;ARABIC LETTER BEEH MEDIAL FORM
+FB56;AL;ARABIC LETTER PEH ISOLATED FORM
+FB57;AL;ARABIC LETTER PEH FINAL FORM
+FB58;AL;ARABIC LETTER PEH INITIAL FORM
+FB59;AL;ARABIC LETTER PEH MEDIAL FORM
+FB5A;AL;ARABIC LETTER BEHEH ISOLATED FORM
+FB5B;AL;ARABIC LETTER BEHEH FINAL FORM
+FB5C;AL;ARABIC LETTER BEHEH INITIAL FORM
+FB5D;AL;ARABIC LETTER BEHEH MEDIAL FORM
+FB5E;AL;ARABIC LETTER TTEHEH ISOLATED FORM
+FB5F;AL;ARABIC LETTER TTEHEH FINAL FORM
+FB60;AL;ARABIC LETTER TTEHEH INITIAL FORM
+FB61;AL;ARABIC LETTER TTEHEH MEDIAL FORM
+FB62;AL;ARABIC LETTER TEHEH ISOLATED FORM
+FB63;AL;ARABIC LETTER TEHEH FINAL FORM
+FB64;AL;ARABIC LETTER TEHEH INITIAL FORM
+FB65;AL;ARABIC LETTER TEHEH MEDIAL FORM
+FB66;AL;ARABIC LETTER TTEH ISOLATED FORM
+FB67;AL;ARABIC LETTER TTEH FINAL FORM
+FB68;AL;ARABIC LETTER TTEH INITIAL FORM
+FB69;AL;ARABIC LETTER TTEH MEDIAL FORM
+FB6A;AL;ARABIC LETTER VEH ISOLATED FORM
+FB6B;AL;ARABIC LETTER VEH FINAL FORM
+FB6C;AL;ARABIC LETTER VEH INITIAL FORM
+FB6D;AL;ARABIC LETTER VEH MEDIAL FORM
+FB6E;AL;ARABIC LETTER PEHEH ISOLATED FORM
+FB6F;AL;ARABIC LETTER PEHEH FINAL FORM
+FB70;AL;ARABIC LETTER PEHEH INITIAL FORM
+FB71;AL;ARABIC LETTER PEHEH MEDIAL FORM
+FB72;AL;ARABIC LETTER DYEH ISOLATED FORM
+FB73;AL;ARABIC LETTER DYEH FINAL FORM
+FB74;AL;ARABIC LETTER DYEH INITIAL FORM
+FB75;AL;ARABIC LETTER DYEH MEDIAL FORM
+FB76;AL;ARABIC LETTER NYEH ISOLATED FORM
+FB77;AL;ARABIC LETTER NYEH FINAL FORM
+FB78;AL;ARABIC LETTER NYEH INITIAL FORM
+FB79;AL;ARABIC LETTER NYEH MEDIAL FORM
+FB7A;AL;ARABIC LETTER TCHEH ISOLATED FORM
+FB7B;AL;ARABIC LETTER TCHEH FINAL FORM
+FB7C;AL;ARABIC LETTER TCHEH INITIAL FORM
+FB7D;AL;ARABIC LETTER TCHEH MEDIAL FORM
+FB7E;AL;ARABIC LETTER TCHEHEH ISOLATED FORM
+FB7F;AL;ARABIC LETTER TCHEHEH FINAL FORM
+FB80;AL;ARABIC LETTER TCHEHEH INITIAL FORM
+FB81;AL;ARABIC LETTER TCHEHEH MEDIAL FORM
+FB82;AL;ARABIC LETTER DDAHAL ISOLATED FORM
+FB83;AL;ARABIC LETTER DDAHAL FINAL FORM
+FB84;AL;ARABIC LETTER DAHAL ISOLATED FORM
+FB85;AL;ARABIC LETTER DAHAL FINAL FORM
+FB86;AL;ARABIC LETTER DUL ISOLATED FORM
+FB87;AL;ARABIC LETTER DUL FINAL FORM
+FB88;AL;ARABIC LETTER DDAL ISOLATED FORM
+FB89;AL;ARABIC LETTER DDAL FINAL FORM
+FB8A;AL;ARABIC LETTER JEH ISOLATED FORM
+FB8B;AL;ARABIC LETTER JEH FINAL FORM
+FB8C;AL;ARABIC LETTER RREH ISOLATED FORM
+FB8D;AL;ARABIC LETTER RREH FINAL FORM
+FB8E;AL;ARABIC LETTER KEHEH ISOLATED FORM
+FB8F;AL;ARABIC LETTER KEHEH FINAL FORM
+FB90;AL;ARABIC LETTER KEHEH INITIAL FORM
+FB91;AL;ARABIC LETTER KEHEH MEDIAL FORM
+FB92;AL;ARABIC LETTER GAF ISOLATED FORM
+FB93;AL;ARABIC LETTER GAF FINAL FORM
+FB94;AL;ARABIC LETTER GAF INITIAL FORM
+FB95;AL;ARABIC LETTER GAF MEDIAL FORM
+FB96;AL;ARABIC LETTER GUEH ISOLATED FORM
+FB97;AL;ARABIC LETTER GUEH FINAL FORM
+FB98;AL;ARABIC LETTER GUEH INITIAL FORM
+FB99;AL;ARABIC LETTER GUEH MEDIAL FORM
+FB9A;AL;ARABIC LETTER NGOEH ISOLATED FORM
+FB9B;AL;ARABIC LETTER NGOEH FINAL FORM
+FB9C;AL;ARABIC LETTER NGOEH INITIAL FORM
+FB9D;AL;ARABIC LETTER NGOEH MEDIAL FORM
+FB9E;AL;ARABIC LETTER NOON GHUNNA ISOLATED FORM
+FB9F;AL;ARABIC LETTER NOON GHUNNA FINAL FORM
+FBA0;AL;ARABIC LETTER RNOON ISOLATED FORM
+FBA1;AL;ARABIC LETTER RNOON FINAL FORM
+FBA2;AL;ARABIC LETTER RNOON INITIAL FORM
+FBA3;AL;ARABIC LETTER RNOON MEDIAL FORM
+FBA4;AL;ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM
+FBA5;AL;ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM
+FBA6;AL;ARABIC LETTER HEH GOAL ISOLATED FORM
+FBA7;AL;ARABIC LETTER HEH GOAL FINAL FORM
+FBA8;AL;ARABIC LETTER HEH GOAL INITIAL FORM
+FBA9;AL;ARABIC LETTER HEH GOAL MEDIAL FORM
+FBAA;AL;ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM
+FBAB;AL;ARABIC LETTER HEH DOACHASHMEE FINAL FORM
+FBAC;AL;ARABIC LETTER HEH DOACHASHMEE INITIAL FORM
+FBAD;AL;ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM
+FBAE;AL;ARABIC LETTER YEH BARREE ISOLATED FORM
+FBAF;AL;ARABIC LETTER YEH BARREE FINAL FORM
+FBB0;AL;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM
+FBB1;AL;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
+FBD3;AL;ARABIC LETTER NG ISOLATED FORM
+FBD4;AL;ARABIC LETTER NG FINAL FORM
+FBD5;AL;ARABIC LETTER NG INITIAL FORM
+FBD6;AL;ARABIC LETTER NG MEDIAL FORM
+FBD7;AL;ARABIC LETTER U ISOLATED FORM
+FBD8;AL;ARABIC LETTER U FINAL FORM
+FBD9;AL;ARABIC LETTER OE ISOLATED FORM
+FBDA;AL;ARABIC LETTER OE FINAL FORM
+FBDB;AL;ARABIC LETTER YU ISOLATED FORM
+FBDC;AL;ARABIC LETTER YU FINAL FORM
+FBDD;AL;ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM
+FBDE;AL;ARABIC LETTER VE ISOLATED FORM
+FBDF;AL;ARABIC LETTER VE FINAL FORM
+FBE0;AL;ARABIC LETTER KIRGHIZ OE ISOLATED FORM
+FBE1;AL;ARABIC LETTER KIRGHIZ OE FINAL FORM
+FBE2;AL;ARABIC LETTER KIRGHIZ YU ISOLATED FORM
+FBE3;AL;ARABIC LETTER KIRGHIZ YU FINAL FORM
+FBE4;AL;ARABIC LETTER E ISOLATED FORM
+FBE5;AL;ARABIC LETTER E FINAL FORM
+FBE6;AL;ARABIC LETTER E INITIAL FORM
+FBE7;AL;ARABIC LETTER E MEDIAL FORM
+FBE8;AL;ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM
+FBE9;AL;ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM
+FBEA;AL;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM
+FBEB;AL;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM
+FBEC;AL;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM
+FBED;AL;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM
+FBEE;AL;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM
+FBEF;AL;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM
+FBF0;AL;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM
+FBF1;AL;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM
+FBF2;AL;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM
+FBF3;AL;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM
+FBF4;AL;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM
+FBF5;AL;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM
+FBF6;AL;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM
+FBF7;AL;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM
+FBF8;AL;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM
+FBF9;AL;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
+FBFA;AL;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM
+FBFB;AL;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM
+FBFC;AL;ARABIC LETTER FARSI YEH ISOLATED FORM
+FBFD;AL;ARABIC LETTER FARSI YEH FINAL FORM
+FBFE;AL;ARABIC LETTER FARSI YEH INITIAL FORM
+FBFF;AL;ARABIC LETTER FARSI YEH MEDIAL FORM
+FC00;AL;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM
+FC01;AL;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM
+FC02;AL;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM
+FC03;AL;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
+FC04;AL;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM
+FC05;AL;ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM
+FC06;AL;ARABIC LIGATURE BEH WITH HAH ISOLATED FORM
+FC07;AL;ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM
+FC08;AL;ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM
+FC09;AL;ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM
+FC0A;AL;ARABIC LIGATURE BEH WITH YEH ISOLATED FORM
+FC0B;AL;ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM
+FC0C;AL;ARABIC LIGATURE TEH WITH HAH ISOLATED FORM
+FC0D;AL;ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM
+FC0E;AL;ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM
+FC0F;AL;ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM
+FC10;AL;ARABIC LIGATURE TEH WITH YEH ISOLATED FORM
+FC11;AL;ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM
+FC12;AL;ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM
+FC13;AL;ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM
+FC14;AL;ARABIC LIGATURE THEH WITH YEH ISOLATED FORM
+FC15;AL;ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM
+FC16;AL;ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM
+FC17;AL;ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM
+FC18;AL;ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM
+FC19;AL;ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM
+FC1A;AL;ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM
+FC1B;AL;ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM
+FC1C;AL;ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM
+FC1D;AL;ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM
+FC1E;AL;ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM
+FC1F;AL;ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM
+FC20;AL;ARABIC LIGATURE SAD WITH HAH ISOLATED FORM
+FC21;AL;ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM
+FC22;AL;ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM
+FC23;AL;ARABIC LIGATURE DAD WITH HAH ISOLATED FORM
+FC24;AL;ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM
+FC25;AL;ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM
+FC26;AL;ARABIC LIGATURE TAH WITH HAH ISOLATED FORM
+FC27;AL;ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM
+FC28;AL;ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM
+FC29;AL;ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM
+FC2A;AL;ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM
+FC2B;AL;ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM
+FC2C;AL;ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM
+FC2D;AL;ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM
+FC2E;AL;ARABIC LIGATURE FEH WITH HAH ISOLATED FORM
+FC2F;AL;ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM
+FC30;AL;ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM
+FC31;AL;ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM
+FC32;AL;ARABIC LIGATURE FEH WITH YEH ISOLATED FORM
+FC33;AL;ARABIC LIGATURE QAF WITH HAH ISOLATED FORM
+FC34;AL;ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM
+FC35;AL;ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM
+FC36;AL;ARABIC LIGATURE QAF WITH YEH ISOLATED FORM
+FC37;AL;ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM
+FC38;AL;ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM
+FC39;AL;ARABIC LIGATURE KAF WITH HAH ISOLATED FORM
+FC3A;AL;ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM
+FC3B;AL;ARABIC LIGATURE KAF WITH LAM ISOLATED FORM
+FC3C;AL;ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM
+FC3D;AL;ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM
+FC3E;AL;ARABIC LIGATURE KAF WITH YEH ISOLATED FORM
+FC3F;AL;ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM
+FC40;AL;ARABIC LIGATURE LAM WITH HAH ISOLATED FORM
+FC41;AL;ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM
+FC42;AL;ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM
+FC43;AL;ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM
+FC44;AL;ARABIC LIGATURE LAM WITH YEH ISOLATED FORM
+FC45;AL;ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM
+FC46;AL;ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM
+FC47;AL;ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM
+FC48;AL;ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM
+FC49;AL;ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM
+FC4A;AL;ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM
+FC4B;AL;ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM
+FC4C;AL;ARABIC LIGATURE NOON WITH HAH ISOLATED FORM
+FC4D;AL;ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM
+FC4E;AL;ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM
+FC4F;AL;ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM
+FC50;AL;ARABIC LIGATURE NOON WITH YEH ISOLATED FORM
+FC51;AL;ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM
+FC52;AL;ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM
+FC53;AL;ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM
+FC54;AL;ARABIC LIGATURE HEH WITH YEH ISOLATED FORM
+FC55;AL;ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM
+FC56;AL;ARABIC LIGATURE YEH WITH HAH ISOLATED FORM
+FC57;AL;ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM
+FC58;AL;ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM
+FC59;AL;ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM
+FC5A;AL;ARABIC LIGATURE YEH WITH YEH ISOLATED FORM
+FC5B;AL;ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM
+FC5C;AL;ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM
+FC5D;AL;ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM
+FC5E;AL;ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM
+FC5F;AL;ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM
+FC60;AL;ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM
+FC61;AL;ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM
+FC62;AL;ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM
+FC63;AL;ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM
+FC64;AL;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM
+FC65;AL;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM
+FC66;AL;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM
+FC67;AL;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM
+FC68;AL;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM
+FC69;AL;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM
+FC6A;AL;ARABIC LIGATURE BEH WITH REH FINAL FORM
+FC6B;AL;ARABIC LIGATURE BEH WITH ZAIN FINAL FORM
+FC6C;AL;ARABIC LIGATURE BEH WITH MEEM FINAL FORM
+FC6D;AL;ARABIC LIGATURE BEH WITH NOON FINAL FORM
+FC6E;AL;ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM
+FC6F;AL;ARABIC LIGATURE BEH WITH YEH FINAL FORM
+FC70;AL;ARABIC LIGATURE TEH WITH REH FINAL FORM
+FC71;AL;ARABIC LIGATURE TEH WITH ZAIN FINAL FORM
+FC72;AL;ARABIC LIGATURE TEH WITH MEEM FINAL FORM
+FC73;AL;ARABIC LIGATURE TEH WITH NOON FINAL FORM
+FC74;AL;ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM
+FC75;AL;ARABIC LIGATURE TEH WITH YEH FINAL FORM
+FC76;AL;ARABIC LIGATURE THEH WITH REH FINAL FORM
+FC77;AL;ARABIC LIGATURE THEH WITH ZAIN FINAL FORM
+FC78;AL;ARABIC LIGATURE THEH WITH MEEM FINAL FORM
+FC79;AL;ARABIC LIGATURE THEH WITH NOON FINAL FORM
+FC7A;AL;ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM
+FC7B;AL;ARABIC LIGATURE THEH WITH YEH FINAL FORM
+FC7C;AL;ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM
+FC7D;AL;ARABIC LIGATURE FEH WITH YEH FINAL FORM
+FC7E;AL;ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM
+FC7F;AL;ARABIC LIGATURE QAF WITH YEH FINAL FORM
+FC80;AL;ARABIC LIGATURE KAF WITH ALEF FINAL FORM
+FC81;AL;ARABIC LIGATURE KAF WITH LAM FINAL FORM
+FC82;AL;ARABIC LIGATURE KAF WITH MEEM FINAL FORM
+FC83;AL;ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM
+FC84;AL;ARABIC LIGATURE KAF WITH YEH FINAL FORM
+FC85;AL;ARABIC LIGATURE LAM WITH MEEM FINAL FORM
+FC86;AL;ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM
+FC87;AL;ARABIC LIGATURE LAM WITH YEH FINAL FORM
+FC88;AL;ARABIC LIGATURE MEEM WITH ALEF FINAL FORM
+FC89;AL;ARABIC LIGATURE MEEM WITH MEEM FINAL FORM
+FC8A;AL;ARABIC LIGATURE NOON WITH REH FINAL FORM
+FC8B;AL;ARABIC LIGATURE NOON WITH ZAIN FINAL FORM
+FC8C;AL;ARABIC LIGATURE NOON WITH MEEM FINAL FORM
+FC8D;AL;ARABIC LIGATURE NOON WITH NOON FINAL FORM
+FC8E;AL;ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM
+FC8F;AL;ARABIC LIGATURE NOON WITH YEH FINAL FORM
+FC90;AL;ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM
+FC91;AL;ARABIC LIGATURE YEH WITH REH FINAL FORM
+FC92;AL;ARABIC LIGATURE YEH WITH ZAIN FINAL FORM
+FC93;AL;ARABIC LIGATURE YEH WITH MEEM FINAL FORM
+FC94;AL;ARABIC LIGATURE YEH WITH NOON FINAL FORM
+FC95;AL;ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM
+FC96;AL;ARABIC LIGATURE YEH WITH YEH FINAL FORM
+FC97;AL;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM
+FC98;AL;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM
+FC99;AL;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM
+FC9A;AL;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM
+FC9B;AL;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM
+FC9C;AL;ARABIC LIGATURE BEH WITH JEEM INITIAL FORM
+FC9D;AL;ARABIC LIGATURE BEH WITH HAH INITIAL FORM
+FC9E;AL;ARABIC LIGATURE BEH WITH KHAH INITIAL FORM
+FC9F;AL;ARABIC LIGATURE BEH WITH MEEM INITIAL FORM
+FCA0;AL;ARABIC LIGATURE BEH WITH HEH INITIAL FORM
+FCA1;AL;ARABIC LIGATURE TEH WITH JEEM INITIAL FORM
+FCA2;AL;ARABIC LIGATURE TEH WITH HAH INITIAL FORM
+FCA3;AL;ARABIC LIGATURE TEH WITH KHAH INITIAL FORM
+FCA4;AL;ARABIC LIGATURE TEH WITH MEEM INITIAL FORM
+FCA5;AL;ARABIC LIGATURE TEH WITH HEH INITIAL FORM
+FCA6;AL;ARABIC LIGATURE THEH WITH MEEM INITIAL FORM
+FCA7;AL;ARABIC LIGATURE JEEM WITH HAH INITIAL FORM
+FCA8;AL;ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM
+FCA9;AL;ARABIC LIGATURE HAH WITH JEEM INITIAL FORM
+FCAA;AL;ARABIC LIGATURE HAH WITH MEEM INITIAL FORM
+FCAB;AL;ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM
+FCAC;AL;ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM
+FCAD;AL;ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM
+FCAE;AL;ARABIC LIGATURE SEEN WITH HAH INITIAL FORM
+FCAF;AL;ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM
+FCB0;AL;ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM
+FCB1;AL;ARABIC LIGATURE SAD WITH HAH INITIAL FORM
+FCB2;AL;ARABIC LIGATURE SAD WITH KHAH INITIAL FORM
+FCB3;AL;ARABIC LIGATURE SAD WITH MEEM INITIAL FORM
+FCB4;AL;ARABIC LIGATURE DAD WITH JEEM INITIAL FORM
+FCB5;AL;ARABIC LIGATURE DAD WITH HAH INITIAL FORM
+FCB6;AL;ARABIC LIGATURE DAD WITH KHAH INITIAL FORM
+FCB7;AL;ARABIC LIGATURE DAD WITH MEEM INITIAL FORM
+FCB8;AL;ARABIC LIGATURE TAH WITH HAH INITIAL FORM
+FCB9;AL;ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM
+FCBA;AL;ARABIC LIGATURE AIN WITH JEEM INITIAL FORM
+FCBB;AL;ARABIC LIGATURE AIN WITH MEEM INITIAL FORM
+FCBC;AL;ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM
+FCBD;AL;ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM
+FCBE;AL;ARABIC LIGATURE FEH WITH JEEM INITIAL FORM
+FCBF;AL;ARABIC LIGATURE FEH WITH HAH INITIAL FORM
+FCC0;AL;ARABIC LIGATURE FEH WITH KHAH INITIAL FORM
+FCC1;AL;ARABIC LIGATURE FEH WITH MEEM INITIAL FORM
+FCC2;AL;ARABIC LIGATURE QAF WITH HAH INITIAL FORM
+FCC3;AL;ARABIC LIGATURE QAF WITH MEEM INITIAL FORM
+FCC4;AL;ARABIC LIGATURE KAF WITH JEEM INITIAL FORM
+FCC5;AL;ARABIC LIGATURE KAF WITH HAH INITIAL FORM
+FCC6;AL;ARABIC LIGATURE KAF WITH KHAH INITIAL FORM
+FCC7;AL;ARABIC LIGATURE KAF WITH LAM INITIAL FORM
+FCC8;AL;ARABIC LIGATURE KAF WITH MEEM INITIAL FORM
+FCC9;AL;ARABIC LIGATURE LAM WITH JEEM INITIAL FORM
+FCCA;AL;ARABIC LIGATURE LAM WITH HAH INITIAL FORM
+FCCB;AL;ARABIC LIGATURE LAM WITH KHAH INITIAL FORM
+FCCC;AL;ARABIC LIGATURE LAM WITH MEEM INITIAL FORM
+FCCD;AL;ARABIC LIGATURE LAM WITH HEH INITIAL FORM
+FCCE;AL;ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM
+FCCF;AL;ARABIC LIGATURE MEEM WITH HAH INITIAL FORM
+FCD0;AL;ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM
+FCD1;AL;ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM
+FCD2;AL;ARABIC LIGATURE NOON WITH JEEM INITIAL FORM
+FCD3;AL;ARABIC LIGATURE NOON WITH HAH INITIAL FORM
+FCD4;AL;ARABIC LIGATURE NOON WITH KHAH INITIAL FORM
+FCD5;AL;ARABIC LIGATURE NOON WITH MEEM INITIAL FORM
+FCD6;AL;ARABIC LIGATURE NOON WITH HEH INITIAL FORM
+FCD7;AL;ARABIC LIGATURE HEH WITH JEEM INITIAL FORM
+FCD8;AL;ARABIC LIGATURE HEH WITH MEEM INITIAL FORM
+FCD9;AL;ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM
+FCDA;AL;ARABIC LIGATURE YEH WITH JEEM INITIAL FORM
+FCDB;AL;ARABIC LIGATURE YEH WITH HAH INITIAL FORM
+FCDC;AL;ARABIC LIGATURE YEH WITH KHAH INITIAL FORM
+FCDD;AL;ARABIC LIGATURE YEH WITH MEEM INITIAL FORM
+FCDE;AL;ARABIC LIGATURE YEH WITH HEH INITIAL FORM
+FCDF;AL;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM
+FCE0;AL;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM
+FCE1;AL;ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM
+FCE2;AL;ARABIC LIGATURE BEH WITH HEH MEDIAL FORM
+FCE3;AL;ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM
+FCE4;AL;ARABIC LIGATURE TEH WITH HEH MEDIAL FORM
+FCE5;AL;ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM
+FCE6;AL;ARABIC LIGATURE THEH WITH HEH MEDIAL FORM
+FCE7;AL;ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM
+FCE8;AL;ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM
+FCE9;AL;ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM
+FCEA;AL;ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM
+FCEB;AL;ARABIC LIGATURE KAF WITH LAM MEDIAL FORM
+FCEC;AL;ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM
+FCED;AL;ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM
+FCEE;AL;ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM
+FCEF;AL;ARABIC LIGATURE NOON WITH HEH MEDIAL FORM
+FCF0;AL;ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM
+FCF1;AL;ARABIC LIGATURE YEH WITH HEH MEDIAL FORM
+FCF2;AL;ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM
+FCF3;AL;ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM
+FCF4;AL;ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM
+FCF5;AL;ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM
+FCF6;AL;ARABIC LIGATURE TAH WITH YEH ISOLATED FORM
+FCF7;AL;ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM
+FCF8;AL;ARABIC LIGATURE AIN WITH YEH ISOLATED FORM
+FCF9;AL;ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM
+FCFA;AL;ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM
+FCFB;AL;ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM
+FCFC;AL;ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM
+FCFD;AL;ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM
+FCFE;AL;ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM
+FCFF;AL;ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM
+FD00;AL;ARABIC LIGATURE HAH WITH YEH ISOLATED FORM
+FD01;AL;ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM
+FD02;AL;ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM
+FD03;AL;ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM
+FD04;AL;ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM
+FD05;AL;ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM
+FD06;AL;ARABIC LIGATURE SAD WITH YEH ISOLATED FORM
+FD07;AL;ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM
+FD08;AL;ARABIC LIGATURE DAD WITH YEH ISOLATED FORM
+FD09;AL;ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM
+FD0A;AL;ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM
+FD0B;AL;ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM
+FD0C;AL;ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM
+FD0D;AL;ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM
+FD0E;AL;ARABIC LIGATURE SEEN WITH REH ISOLATED FORM
+FD0F;AL;ARABIC LIGATURE SAD WITH REH ISOLATED FORM
+FD10;AL;ARABIC LIGATURE DAD WITH REH ISOLATED FORM
+FD11;AL;ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM
+FD12;AL;ARABIC LIGATURE TAH WITH YEH FINAL FORM
+FD13;AL;ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM
+FD14;AL;ARABIC LIGATURE AIN WITH YEH FINAL FORM
+FD15;AL;ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM
+FD16;AL;ARABIC LIGATURE GHAIN WITH YEH FINAL FORM
+FD17;AL;ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM
+FD18;AL;ARABIC LIGATURE SEEN WITH YEH FINAL FORM
+FD19;AL;ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM
+FD1A;AL;ARABIC LIGATURE SHEEN WITH YEH FINAL FORM
+FD1B;AL;ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM
+FD1C;AL;ARABIC LIGATURE HAH WITH YEH FINAL FORM
+FD1D;AL;ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM
+FD1E;AL;ARABIC LIGATURE JEEM WITH YEH FINAL FORM
+FD1F;AL;ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM
+FD20;AL;ARABIC LIGATURE KHAH WITH YEH FINAL FORM
+FD21;AL;ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM
+FD22;AL;ARABIC LIGATURE SAD WITH YEH FINAL FORM
+FD23;AL;ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM
+FD24;AL;ARABIC LIGATURE DAD WITH YEH FINAL FORM
+FD25;AL;ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM
+FD26;AL;ARABIC LIGATURE SHEEN WITH HAH FINAL FORM
+FD27;AL;ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM
+FD28;AL;ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM
+FD29;AL;ARABIC LIGATURE SHEEN WITH REH FINAL FORM
+FD2A;AL;ARABIC LIGATURE SEEN WITH REH FINAL FORM
+FD2B;AL;ARABIC LIGATURE SAD WITH REH FINAL FORM
+FD2C;AL;ARABIC LIGATURE DAD WITH REH FINAL FORM
+FD2D;AL;ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM
+FD2E;AL;ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM
+FD2F;AL;ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM
+FD30;AL;ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM
+FD31;AL;ARABIC LIGATURE SEEN WITH HEH INITIAL FORM
+FD32;AL;ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM
+FD33;AL;ARABIC LIGATURE TAH WITH MEEM INITIAL FORM
+FD34;AL;ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM
+FD35;AL;ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM
+FD36;AL;ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM
+FD37;AL;ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM
+FD38;AL;ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM
+FD39;AL;ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM
+FD3A;AL;ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM
+FD3B;AL;ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM
+FD3C;AL;ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM
+FD3D;AL;ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
+FD3E;OP;ORNATE LEFT PARENTHESIS
+FD3F;CL;ORNATE RIGHT PARENTHESIS
+FD50;AL;ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM
+FD51;AL;ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM
+FD52;AL;ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM
+FD53;AL;ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM
+FD54;AL;ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM
+FD55;AL;ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM
+FD56;AL;ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM
+FD57;AL;ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM
+FD58;AL;ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM
+FD59;AL;ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM
+FD5A;AL;ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM
+FD5B;AL;ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FD5C;AL;ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM
+FD5D;AL;ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM
+FD5E;AL;ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM
+FD5F;AL;ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM
+FD60;AL;ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM
+FD61;AL;ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM
+FD62;AL;ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM
+FD63;AL;ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM
+FD64;AL;ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM
+FD65;AL;ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM
+FD66;AL;ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM
+FD67;AL;ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM
+FD68;AL;ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM
+FD69;AL;ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM
+FD6A;AL;ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM
+FD6B;AL;ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM
+FD6C;AL;ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM
+FD6D;AL;ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM
+FD6E;AL;ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM
+FD6F;AL;ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM
+FD70;AL;ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM
+FD71;AL;ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM
+FD72;AL;ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM
+FD73;AL;ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM
+FD74;AL;ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM
+FD75;AL;ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM
+FD76;AL;ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM
+FD77;AL;ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM
+FD78;AL;ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FD79;AL;ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM
+FD7A;AL;ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM
+FD7B;AL;ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FD7C;AL;ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM
+FD7D;AL;ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM
+FD7E;AL;ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM
+FD7F;AL;ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM
+FD80;AL;ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM
+FD81;AL;ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM
+FD82;AL;ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM
+FD83;AL;ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM
+FD84;AL;ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM
+FD85;AL;ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM
+FD86;AL;ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM
+FD87;AL;ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM
+FD88;AL;ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM
+FD89;AL;ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM
+FD8A;AL;ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM
+FD8B;AL;ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM
+FD8C;AL;ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM
+FD8D;AL;ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM
+FD8E;AL;ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM
+FD8F;AL;ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
+FD92;AL;ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM
+FD93;AL;ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM
+FD94;AL;ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM
+FD95;AL;ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM
+FD96;AL;ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM
+FD97;AL;ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM
+FD98;AL;ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM
+FD99;AL;ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM
+FD9A;AL;ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM
+FD9B;AL;ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FD9C;AL;ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM
+FD9D;AL;ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM
+FD9E;AL;ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM
+FD9F;AL;ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM
+FDA0;AL;ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM
+FDA1;AL;ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM
+FDA2;AL;ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM
+FDA3;AL;ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM
+FDA4;AL;ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FDA5;AL;ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM
+FDA6;AL;ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM
+FDA7;AL;ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FDA8;AL;ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM
+FDA9;AL;ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM
+FDAA;AL;ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM
+FDAB;AL;ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM
+FDAC;AL;ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM
+FDAD;AL;ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM
+FDAE;AL;ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM
+FDAF;AL;ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM
+FDB0;AL;ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM
+FDB1;AL;ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM
+FDB2;AL;ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM
+FDB3;AL;ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM
+FDB4;AL;ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM
+FDB5;AL;ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM
+FDB6;AL;ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM
+FDB7;AL;ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM
+FDB8;AL;ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM
+FDB9;AL;ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM
+FDBA;AL;ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM
+FDBB;AL;ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM
+FDBC;AL;ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM
+FDBD;AL;ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM
+FDBE;AL;ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM
+FDBF;AL;ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM
+FDC0;AL;ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM
+FDC1;AL;ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM
+FDC2;AL;ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM
+FDC3;AL;ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM
+FDC4;AL;ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM
+FDC5;AL;ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM
+FDC6;AL;ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM
+FDC7;AL;ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
+FDF0;AL;ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM
+FDF1;AL;ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM
+FDF2;AL;ARABIC LIGATURE ALLAH ISOLATED FORM
+FDF3;AL;ARABIC LIGATURE AKBAR ISOLATED FORM
+FDF4;AL;ARABIC LIGATURE MOHAMMAD ISOLATED FORM
+FDF5;AL;ARABIC LIGATURE SALAM ISOLATED FORM
+FDF6;AL;ARABIC LIGATURE RASOUL ISOLATED FORM
+FDF7;AL;ARABIC LIGATURE ALAYHE ISOLATED FORM
+FDF8;AL;ARABIC LIGATURE WASALLAM ISOLATED FORM
+FDF9;AL;ARABIC LIGATURE SALLA ISOLATED FORM
+FDFA;AL;ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM
+FDFB;AL;ARABIC LIGATURE JALLAJALALOUHOU
+FE20;CM;COMBINING LIGATURE LEFT HALF
+FE21;CM;COMBINING LIGATURE RIGHT HALF
+FE22;CM;COMBINING DOUBLE TILDE LEFT HALF
+FE23;CM;COMBINING DOUBLE TILDE RIGHT HALF
+FE30;ID;PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
+FE31;ID;PRESENTATION FORM FOR VERTICAL EM DASH
+FE32;ID;PRESENTATION FORM FOR VERTICAL EN DASH
+FE33;ID;PRESENTATION FORM FOR VERTICAL LOW LINE
+FE34;ID;PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
+FE35;OP;PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
+FE36;CL;PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
+FE37;OP;PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
+FE38;CL;PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
+FE39;OP;PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
+FE3A;CL;PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
+FE3B;OP;PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
+FE3C;CL;PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
+FE3D;OP;PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
+FE3E;CL;PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
+FE3F;OP;PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
+FE40;CL;PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
+FE41;OP;PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
+FE42;CL;PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
+FE43;OP;PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
+FE44;CL;PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
+FE49;ID;DASHED OVERLINE
+FE4A;ID;CENTRELINE OVERLINE
+FE4B;ID;WAVY OVERLINE
+FE4C;ID;DOUBLE WAVY OVERLINE
+FE4D;ID;DASHED LOW LINE
+FE4E;ID;CENTRELINE LOW LINE
+FE4F;ID;WAVY LOW LINE
+FE50;CL;SMALL COMMA
+FE51;ID;SMALL IDEOGRAPHIC COMMA
+FE52;CL;SMALL FULL STOP
+FE54;NS;SMALL SEMICOLON
+FE55;NS;SMALL COLON
+FE56;EX;SMALL QUESTION MARK
+FE57;EX;SMALL EXCLAMATION MARK
+FE58;ID;SMALL EM DASH
+FE59;OP;SMALL LEFT PARENTHESIS
+FE5A;CL;SMALL RIGHT PARENTHESIS
+FE5B;OP;SMALL LEFT CURLY BRACKET
+FE5C;CL;SMALL RIGHT CURLY BRACKET
+FE5D;OP;SMALL LEFT TORTOISE SHELL BRACKET
+FE5E;CL;SMALL RIGHT TORTOISE SHELL BRACKET
+FE5F;ID;SMALL NUMBER SIGN
+FE60;ID;SMALL AMPERSAND
+FE61;ID;SMALL ASTERISK
+FE62;ID;SMALL PLUS SIGN
+FE63;ID;SMALL HYPHEN-MINUS
+FE64;ID;SMALL LESS-THAN SIGN
+FE65;ID;SMALL GREATER-THAN SIGN
+FE66;ID;SMALL EQUALS SIGN
+FE68;ID;SMALL REVERSE SOLIDUS
+FE69;PR;SMALL DOLLAR SIGN
+FE6A;PO;SMALL PERCENT SIGN
+FE6B;AL;SMALL COMMERCIAL AT
+FE70;AL;ARABIC FATHATAN ISOLATED FORM
+FE71;AL;ARABIC TATWEEL WITH FATHATAN ABOVE
+FE72;AL;ARABIC DAMMATAN ISOLATED FORM
+FE74;AL;ARABIC KASRATAN ISOLATED FORM
+FE76;AL;ARABIC FATHA ISOLATED FORM
+FE77;AL;ARABIC FATHA MEDIAL FORM
+FE78;AL;ARABIC DAMMA ISOLATED FORM
+FE79;AL;ARABIC DAMMA MEDIAL FORM
+FE7A;AL;ARABIC KASRA ISOLATED FORM
+FE7B;AL;ARABIC KASRA MEDIAL FORM
+FE7C;AL;ARABIC SHADDA ISOLATED FORM
+FE7D;AL;ARABIC SHADDA MEDIAL FORM
+FE7E;AL;ARABIC SUKUN ISOLATED FORM
+FE7F;AL;ARABIC SUKUN MEDIAL FORM
+FE80;AL;ARABIC LETTER HAMZA ISOLATED FORM
+FE81;AL;ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
+FE82;AL;ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM
+FE83;AL;ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM
+FE84;AL;ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM
+FE85;AL;ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
+FE86;AL;ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM
+FE87;AL;ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM
+FE88;AL;ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM
+FE89;AL;ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM
+FE8A;AL;ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM
+FE8B;AL;ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
+FE8C;AL;ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM
+FE8D;AL;ARABIC LETTER ALEF ISOLATED FORM
+FE8E;AL;ARABIC LETTER ALEF FINAL FORM
+FE8F;AL;ARABIC LETTER BEH ISOLATED FORM
+FE90;AL;ARABIC LETTER BEH FINAL FORM
+FE91;AL;ARABIC LETTER BEH INITIAL FORM
+FE92;AL;ARABIC LETTER BEH MEDIAL FORM
+FE93;AL;ARABIC LETTER TEH MARBUTA ISOLATED FORM
+FE94;AL;ARABIC LETTER TEH MARBUTA FINAL FORM
+FE95;AL;ARABIC LETTER TEH ISOLATED FORM
+FE96;AL;ARABIC LETTER TEH FINAL FORM
+FE97;AL;ARABIC LETTER TEH INITIAL FORM
+FE98;AL;ARABIC LETTER TEH MEDIAL FORM
+FE99;AL;ARABIC LETTER THEH ISOLATED FORM
+FE9A;AL;ARABIC LETTER THEH FINAL FORM
+FE9B;AL;ARABIC LETTER THEH INITIAL FORM
+FE9C;AL;ARABIC LETTER THEH MEDIAL FORM
+FE9D;AL;ARABIC LETTER JEEM ISOLATED FORM
+FE9E;AL;ARABIC LETTER JEEM FINAL FORM
+FE9F;AL;ARABIC LETTER JEEM INITIAL FORM
+FEA0;AL;ARABIC LETTER JEEM MEDIAL FORM
+FEA1;AL;ARABIC LETTER HAH ISOLATED FORM
+FEA2;AL;ARABIC LETTER HAH FINAL FORM
+FEA3;AL;ARABIC LETTER HAH INITIAL FORM
+FEA4;AL;ARABIC LETTER HAH MEDIAL FORM
+FEA5;AL;ARABIC LETTER KHAH ISOLATED FORM
+FEA6;AL;ARABIC LETTER KHAH FINAL FORM
+FEA7;AL;ARABIC LETTER KHAH INITIAL FORM
+FEA8;AL;ARABIC LETTER KHAH MEDIAL FORM
+FEA9;AL;ARABIC LETTER DAL ISOLATED FORM
+FEAA;AL;ARABIC LETTER DAL FINAL FORM
+FEAB;AL;ARABIC LETTER THAL ISOLATED FORM
+FEAC;AL;ARABIC LETTER THAL FINAL FORM
+FEAD;AL;ARABIC LETTER REH ISOLATED FORM
+FEAE;AL;ARABIC LETTER REH FINAL FORM
+FEAF;AL;ARABIC LETTER ZAIN ISOLATED FORM
+FEB0;AL;ARABIC LETTER ZAIN FINAL FORM
+FEB1;AL;ARABIC LETTER SEEN ISOLATED FORM
+FEB2;AL;ARABIC LETTER SEEN FINAL FORM
+FEB3;AL;ARABIC LETTER SEEN INITIAL FORM
+FEB4;AL;ARABIC LETTER SEEN MEDIAL FORM
+FEB5;AL;ARABIC LETTER SHEEN ISOLATED FORM
+FEB6;AL;ARABIC LETTER SHEEN FINAL FORM
+FEB7;AL;ARABIC LETTER SHEEN INITIAL FORM
+FEB8;AL;ARABIC LETTER SHEEN MEDIAL FORM
+FEB9;AL;ARABIC LETTER SAD ISOLATED FORM
+FEBA;AL;ARABIC LETTER SAD FINAL FORM
+FEBB;AL;ARABIC LETTER SAD INITIAL FORM
+FEBC;AL;ARABIC LETTER SAD MEDIAL FORM
+FEBD;AL;ARABIC LETTER DAD ISOLATED FORM
+FEBE;AL;ARABIC LETTER DAD FINAL FORM
+FEBF;AL;ARABIC LETTER DAD INITIAL FORM
+FEC0;AL;ARABIC LETTER DAD MEDIAL FORM
+FEC1;AL;ARABIC LETTER TAH ISOLATED FORM
+FEC2;AL;ARABIC LETTER TAH FINAL FORM
+FEC3;AL;ARABIC LETTER TAH INITIAL FORM
+FEC4;AL;ARABIC LETTER TAH MEDIAL FORM
+FEC5;AL;ARABIC LETTER ZAH ISOLATED FORM
+FEC6;AL;ARABIC LETTER ZAH FINAL FORM
+FEC7;AL;ARABIC LETTER ZAH INITIAL FORM
+FEC8;AL;ARABIC LETTER ZAH MEDIAL FORM
+FEC9;AL;ARABIC LETTER AIN ISOLATED FORM
+FECA;AL;ARABIC LETTER AIN FINAL FORM
+FECB;AL;ARABIC LETTER AIN INITIAL FORM
+FECC;AL;ARABIC LETTER AIN MEDIAL FORM
+FECD;AL;ARABIC LETTER GHAIN ISOLATED FORM
+FECE;AL;ARABIC LETTER GHAIN FINAL FORM
+FECF;AL;ARABIC LETTER GHAIN INITIAL FORM
+FED0;AL;ARABIC LETTER GHAIN MEDIAL FORM
+FED1;AL;ARABIC LETTER FEH ISOLATED FORM
+FED2;AL;ARABIC LETTER FEH FINAL FORM
+FED3;AL;ARABIC LETTER FEH INITIAL FORM
+FED4;AL;ARABIC LETTER FEH MEDIAL FORM
+FED5;AL;ARABIC LETTER QAF ISOLATED FORM
+FED6;AL;ARABIC LETTER QAF FINAL FORM
+FED7;AL;ARABIC LETTER QAF INITIAL FORM
+FED8;AL;ARABIC LETTER QAF MEDIAL FORM
+FED9;AL;ARABIC LETTER KAF ISOLATED FORM
+FEDA;AL;ARABIC LETTER KAF FINAL FORM
+FEDB;AL;ARABIC LETTER KAF INITIAL FORM
+FEDC;AL;ARABIC LETTER KAF MEDIAL FORM
+FEDD;AL;ARABIC LETTER LAM ISOLATED FORM
+FEDE;AL;ARABIC LETTER LAM FINAL FORM
+FEDF;AL;ARABIC LETTER LAM INITIAL FORM
+FEE0;AL;ARABIC LETTER LAM MEDIAL FORM
+FEE1;AL;ARABIC LETTER MEEM ISOLATED FORM
+FEE2;AL;ARABIC LETTER MEEM FINAL FORM
+FEE3;AL;ARABIC LETTER MEEM INITIAL FORM
+FEE4;AL;ARABIC LETTER MEEM MEDIAL FORM
+FEE5;AL;ARABIC LETTER NOON ISOLATED FORM
+FEE6;AL;ARABIC LETTER NOON FINAL FORM
+FEE7;AL;ARABIC LETTER NOON INITIAL FORM
+FEE8;AL;ARABIC LETTER NOON MEDIAL FORM
+FEE9;AL;ARABIC LETTER HEH ISOLATED FORM
+FEEA;AL;ARABIC LETTER HEH FINAL FORM
+FEEB;AL;ARABIC LETTER HEH INITIAL FORM
+FEEC;AL;ARABIC LETTER HEH MEDIAL FORM
+FEED;AL;ARABIC LETTER WAW ISOLATED FORM
+FEEE;AL;ARABIC LETTER WAW FINAL FORM
+FEEF;AL;ARABIC LETTER ALEF MAKSURA ISOLATED FORM
+FEF0;AL;ARABIC LETTER ALEF MAKSURA FINAL FORM
+FEF1;AL;ARABIC LETTER YEH ISOLATED FORM
+FEF2;AL;ARABIC LETTER YEH FINAL FORM
+FEF3;AL;ARABIC LETTER YEH INITIAL FORM
+FEF4;AL;ARABIC LETTER YEH MEDIAL FORM
+FEF5;AL;ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
+FEF6;AL;ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM
+FEF7;AL;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
+FEF8;AL;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM
+FEF9;AL;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM
+FEFA;AL;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM
+FEFB;AL;ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
+FEFC;AL;ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+FEFF;GL;ZERO WIDTH NO-BREAK SPACE
+FF01;EX;FULLWIDTH EXCLAMATION MARK
+FF02;ID;FULLWIDTH QUOTATION MARK
+FF03;ID;FULLWIDTH NUMBER SIGN
+FF04;PR;FULLWIDTH DOLLAR SIGN
+FF05;PO;FULLWIDTH PERCENT SIGN
+FF06;ID;FULLWIDTH AMPERSAND
+FF07;ID;FULLWIDTH APOSTROPHE
+FF08;OP;FULLWIDTH LEFT PARENTHESIS
+FF09;CL;FULLWIDTH RIGHT PARENTHESIS
+FF0A;ID;FULLWIDTH ASTERISK
+FF0B;ID;FULLWIDTH PLUS SIGN
+FF0C;CL;FULLWIDTH COMMA
+FF0D;ID;FULLWIDTH HYPHEN-MINUS
+FF0E;CL;FULLWIDTH FULL STOP
+FF0F;ID;FULLWIDTH SOLIDUS
+FF10;ID;FULLWIDTH DIGIT ZERO
+FF11;ID;FULLWIDTH DIGIT ONE
+FF12;ID;FULLWIDTH DIGIT TWO
+FF13;ID;FULLWIDTH DIGIT THREE
+FF14;ID;FULLWIDTH DIGIT FOUR
+FF15;ID;FULLWIDTH DIGIT FIVE
+FF16;ID;FULLWIDTH DIGIT SIX
+FF17;ID;FULLWIDTH DIGIT SEVEN
+FF18;ID;FULLWIDTH DIGIT EIGHT
+FF19;ID;FULLWIDTH DIGIT NINE
+FF1A;NS;FULLWIDTH COLON
+FF1B;NS;FULLWIDTH SEMICOLON
+FF1C;ID;FULLWIDTH LESS-THAN SIGN
+FF1D;ID;FULLWIDTH EQUALS SIGN
+FF1E;ID;FULLWIDTH GREATER-THAN SIGN
+FF1F;EX;FULLWIDTH QUESTION MARK
+FF20;ID;FULLWIDTH COMMERCIAL AT
+FF21;ID;FULLWIDTH LATIN CAPITAL LETTER A
+FF22;ID;FULLWIDTH LATIN CAPITAL LETTER B
+FF23;ID;FULLWIDTH LATIN CAPITAL LETTER C
+FF24;ID;FULLWIDTH LATIN CAPITAL LETTER D
+FF25;ID;FULLWIDTH LATIN CAPITAL LETTER E
+FF26;ID;FULLWIDTH LATIN CAPITAL LETTER F
+FF27;ID;FULLWIDTH LATIN CAPITAL LETTER G
+FF28;ID;FULLWIDTH LATIN CAPITAL LETTER H
+FF29;ID;FULLWIDTH LATIN CAPITAL LETTER I
+FF2A;ID;FULLWIDTH LATIN CAPITAL LETTER J
+FF2B;ID;FULLWIDTH LATIN CAPITAL LETTER K
+FF2C;ID;FULLWIDTH LATIN CAPITAL LETTER L
+FF2D;ID;FULLWIDTH LATIN CAPITAL LETTER M
+FF2E;ID;FULLWIDTH LATIN CAPITAL LETTER N
+FF2F;ID;FULLWIDTH LATIN CAPITAL LETTER O
+FF30;ID;FULLWIDTH LATIN CAPITAL LETTER P
+FF31;ID;FULLWIDTH LATIN CAPITAL LETTER Q
+FF32;ID;FULLWIDTH LATIN CAPITAL LETTER R
+FF33;ID;FULLWIDTH LATIN CAPITAL LETTER S
+FF34;ID;FULLWIDTH LATIN CAPITAL LETTER T
+FF35;ID;FULLWIDTH LATIN CAPITAL LETTER U
+FF36;ID;FULLWIDTH LATIN CAPITAL LETTER V
+FF37;ID;FULLWIDTH LATIN CAPITAL LETTER W
+FF38;ID;FULLWIDTH LATIN CAPITAL LETTER X
+FF39;ID;FULLWIDTH LATIN CAPITAL LETTER Y
+FF3A;ID;FULLWIDTH LATIN CAPITAL LETTER Z
+FF3B;OP;FULLWIDTH LEFT SQUARE BRACKET
+FF3C;ID;FULLWIDTH REVERSE SOLIDUS
+FF3D;CL;FULLWIDTH RIGHT SQUARE BRACKET
+FF3E;ID;FULLWIDTH CIRCUMFLEX ACCENT
+FF3F;ID;FULLWIDTH LOW LINE
+FF40;ID;FULLWIDTH GRAVE ACCENT
+FF41;ID;FULLWIDTH LATIN SMALL LETTER A
+FF42;ID;FULLWIDTH LATIN SMALL LETTER B
+FF43;ID;FULLWIDTH LATIN SMALL LETTER C
+FF44;ID;FULLWIDTH LATIN SMALL LETTER D
+FF45;ID;FULLWIDTH LATIN SMALL LETTER E
+FF46;ID;FULLWIDTH LATIN SMALL LETTER F
+FF47;ID;FULLWIDTH LATIN SMALL LETTER G
+FF48;ID;FULLWIDTH LATIN SMALL LETTER H
+FF49;ID;FULLWIDTH LATIN SMALL LETTER I
+FF4A;ID;FULLWIDTH LATIN SMALL LETTER J
+FF4B;ID;FULLWIDTH LATIN SMALL LETTER K
+FF4C;ID;FULLWIDTH LATIN SMALL LETTER L
+FF4D;ID;FULLWIDTH LATIN SMALL LETTER M
+FF4E;ID;FULLWIDTH LATIN SMALL LETTER N
+FF4F;ID;FULLWIDTH LATIN SMALL LETTER O
+FF50;ID;FULLWIDTH LATIN SMALL LETTER P
+FF51;ID;FULLWIDTH LATIN SMALL LETTER Q
+FF52;ID;FULLWIDTH LATIN SMALL LETTER R
+FF53;ID;FULLWIDTH LATIN SMALL LETTER S
+FF54;ID;FULLWIDTH LATIN SMALL LETTER T
+FF55;ID;FULLWIDTH LATIN SMALL LETTER U
+FF56;ID;FULLWIDTH LATIN SMALL LETTER V
+FF57;ID;FULLWIDTH LATIN SMALL LETTER W
+FF58;ID;FULLWIDTH LATIN SMALL LETTER X
+FF59;ID;FULLWIDTH LATIN SMALL LETTER Y
+FF5A;ID;FULLWIDTH LATIN SMALL LETTER Z
+FF5B;OP;FULLWIDTH LEFT CURLY BRACKET
+FF5C;ID;FULLWIDTH VERTICAL LINE
+FF5D;CL;FULLWIDTH RIGHT CURLY BRACKET
+FF5E;ID;FULLWIDTH TILDE
+FF61;CL;HALFWIDTH IDEOGRAPHIC FULL STOP
+FF62;OP;HALFWIDTH LEFT CORNER BRACKET
+FF63;CL;HALFWIDTH RIGHT CORNER BRACKET
+FF64;CL;HALFWIDTH IDEOGRAPHIC COMMA
+FF65;NS;HALFWIDTH KATAKANA MIDDLE DOT
+FF66;AL;HALFWIDTH KATAKANA LETTER WO
+FF67;NS;HALFWIDTH KATAKANA LETTER SMALL A
+FF68;NS;HALFWIDTH KATAKANA LETTER SMALL I
+FF69;NS;HALFWIDTH KATAKANA LETTER SMALL U
+FF6A;NS;HALFWIDTH KATAKANA LETTER SMALL E
+FF6B;NS;HALFWIDTH KATAKANA LETTER SMALL O
+FF6C;NS;HALFWIDTH KATAKANA LETTER SMALL YA
+FF6D;NS;HALFWIDTH KATAKANA LETTER SMALL YU
+FF6E;NS;HALFWIDTH KATAKANA LETTER SMALL YO
+FF6F;NS;HALFWIDTH KATAKANA LETTER SMALL TU
+FF70;NS;HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
+FF71;AL;HALFWIDTH KATAKANA LETTER A
+FF72;AL;HALFWIDTH KATAKANA LETTER I
+FF73;AL;HALFWIDTH KATAKANA LETTER U
+FF74;AL;HALFWIDTH KATAKANA LETTER E
+FF75;AL;HALFWIDTH KATAKANA LETTER O
+FF76;AL;HALFWIDTH KATAKANA LETTER KA
+FF77;AL;HALFWIDTH KATAKANA LETTER KI
+FF78;AL;HALFWIDTH KATAKANA LETTER KU
+FF79;AL;HALFWIDTH KATAKANA LETTER KE
+FF7A;AL;HALFWIDTH KATAKANA LETTER KO
+FF7B;AL;HALFWIDTH KATAKANA LETTER SA
+FF7C;AL;HALFWIDTH KATAKANA LETTER SI
+FF7D;AL;HALFWIDTH KATAKANA LETTER SU
+FF7E;AL;HALFWIDTH KATAKANA LETTER SE
+FF7F;AL;HALFWIDTH KATAKANA LETTER SO
+FF80;AL;HALFWIDTH KATAKANA LETTER TA
+FF81;AL;HALFWIDTH KATAKANA LETTER TI
+FF82;AL;HALFWIDTH KATAKANA LETTER TU
+FF83;AL;HALFWIDTH KATAKANA LETTER TE
+FF84;AL;HALFWIDTH KATAKANA LETTER TO
+FF85;AL;HALFWIDTH KATAKANA LETTER NA
+FF86;AL;HALFWIDTH KATAKANA LETTER NI
+FF87;AL;HALFWIDTH KATAKANA LETTER NU
+FF88;AL;HALFWIDTH KATAKANA LETTER NE
+FF89;AL;HALFWIDTH KATAKANA LETTER NO
+FF8A;AL;HALFWIDTH KATAKANA LETTER HA
+FF8B;AL;HALFWIDTH KATAKANA LETTER HI
+FF8C;AL;HALFWIDTH KATAKANA LETTER HU
+FF8D;AL;HALFWIDTH KATAKANA LETTER HE
+FF8E;AL;HALFWIDTH KATAKANA LETTER HO
+FF8F;AL;HALFWIDTH KATAKANA LETTER MA
+FF90;AL;HALFWIDTH KATAKANA LETTER MI
+FF91;AL;HALFWIDTH KATAKANA LETTER MU
+FF92;AL;HALFWIDTH KATAKANA LETTER ME
+FF93;AL;HALFWIDTH KATAKANA LETTER MO
+FF94;AL;HALFWIDTH KATAKANA LETTER YA
+FF95;AL;HALFWIDTH KATAKANA LETTER YU
+FF96;AL;HALFWIDTH KATAKANA LETTER YO
+FF97;AL;HALFWIDTH KATAKANA LETTER RA
+FF98;AL;HALFWIDTH KATAKANA LETTER RI
+FF99;AL;HALFWIDTH KATAKANA LETTER RU
+FF9A;AL;HALFWIDTH KATAKANA LETTER RE
+FF9B;AL;HALFWIDTH KATAKANA LETTER RO
+FF9C;AL;HALFWIDTH KATAKANA LETTER WA
+FF9D;AL;HALFWIDTH KATAKANA LETTER N
+FF9E;NS;HALFWIDTH KATAKANA VOICED SOUND MARK
+FF9F;NS;HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
+FFA0;AL;HALFWIDTH HANGUL FILLER
+FFA1;AL;HALFWIDTH HANGUL LETTER KIYEOK
+FFA2;AL;HALFWIDTH HANGUL LETTER SSANGKIYEOK
+FFA3;AL;HALFWIDTH HANGUL LETTER KIYEOK-SIOS
+FFA4;AL;HALFWIDTH HANGUL LETTER NIEUN
+FFA5;AL;HALFWIDTH HANGUL LETTER NIEUN-CIEUC
+FFA6;AL;HALFWIDTH HANGUL LETTER NIEUN-HIEUH
+FFA7;AL;HALFWIDTH HANGUL LETTER TIKEUT
+FFA8;AL;HALFWIDTH HANGUL LETTER SSANGTIKEUT
+FFA9;AL;HALFWIDTH HANGUL LETTER RIEUL
+FFAA;AL;HALFWIDTH HANGUL LETTER RIEUL-KIYEOK
+FFAB;AL;HALFWIDTH HANGUL LETTER RIEUL-MIEUM
+FFAC;AL;HALFWIDTH HANGUL LETTER RIEUL-PIEUP
+FFAD;AL;HALFWIDTH HANGUL LETTER RIEUL-SIOS
+FFAE;AL;HALFWIDTH HANGUL LETTER RIEUL-THIEUTH
+FFAF;AL;HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH
+FFB0;AL;HALFWIDTH HANGUL LETTER RIEUL-HIEUH
+FFB1;AL;HALFWIDTH HANGUL LETTER MIEUM
+FFB2;AL;HALFWIDTH HANGUL LETTER PIEUP
+FFB3;AL;HALFWIDTH HANGUL LETTER SSANGPIEUP
+FFB4;AL;HALFWIDTH HANGUL LETTER PIEUP-SIOS
+FFB5;AL;HALFWIDTH HANGUL LETTER SIOS
+FFB6;AL;HALFWIDTH HANGUL LETTER SSANGSIOS
+FFB7;AL;HALFWIDTH HANGUL LETTER IEUNG
+FFB8;AL;HALFWIDTH HANGUL LETTER CIEUC
+FFB9;AL;HALFWIDTH HANGUL LETTER SSANGCIEUC
+FFBA;AL;HALFWIDTH HANGUL LETTER CHIEUCH
+FFBB;AL;HALFWIDTH HANGUL LETTER KHIEUKH
+FFBC;AL;HALFWIDTH HANGUL LETTER THIEUTH
+FFBD;AL;HALFWIDTH HANGUL LETTER PHIEUPH
+FFBE;AL;HALFWIDTH HANGUL LETTER HIEUH
+FFC2;AL;HALFWIDTH HANGUL LETTER A
+FFC3;AL;HALFWIDTH HANGUL LETTER AE
+FFC4;AL;HALFWIDTH HANGUL LETTER YA
+FFC5;AL;HALFWIDTH HANGUL LETTER YAE
+FFC6;AL;HALFWIDTH HANGUL LETTER EO
+FFC7;AL;HALFWIDTH HANGUL LETTER E
+FFCA;AL;HALFWIDTH HANGUL LETTER YEO
+FFCB;AL;HALFWIDTH HANGUL LETTER YE
+FFCC;AL;HALFWIDTH HANGUL LETTER O
+FFCD;AL;HALFWIDTH HANGUL LETTER WA
+FFCE;AL;HALFWIDTH HANGUL LETTER WAE
+FFCF;AL;HALFWIDTH HANGUL LETTER OE
+FFD2;AL;HALFWIDTH HANGUL LETTER YO
+FFD3;AL;HALFWIDTH HANGUL LETTER U
+FFD4;AL;HALFWIDTH HANGUL LETTER WEO
+FFD5;AL;HALFWIDTH HANGUL LETTER WE
+FFD6;AL;HALFWIDTH HANGUL LETTER WI
+FFD7;AL;HALFWIDTH HANGUL LETTER YU
+FFDA;AL;HALFWIDTH HANGUL LETTER EU
+FFDB;AL;HALFWIDTH HANGUL LETTER YI
+FFDC;AL;HALFWIDTH HANGUL LETTER I
+FFE0;PO;FULLWIDTH CENT SIGN
+FFE1;PR;FULLWIDTH POUND SIGN
+FFE2;ID;FULLWIDTH NOT SIGN
+FFE3;ID;FULLWIDTH MACRON
+FFE4;ID;FULLWIDTH BROKEN BAR
+FFE5;PR;FULLWIDTH YEN SIGN
+FFE6;PR;FULLWIDTH WON SIGN
+FFE8;AL;HALFWIDTH FORMS LIGHT VERTICAL
+FFE9;AL;HALFWIDTH LEFTWARDS ARROW
+FFEA;AL;HALFWIDTH UPWARDS ARROW
+FFEB;AL;HALFWIDTH RIGHTWARDS ARROW
+FFEC;AL;HALFWIDTH DOWNWARDS ARROW
+FFED;AL;HALFWIDTH BLACK SQUARE
+FFEE;AL;HALFWIDTH WHITE CIRCLE
+FFF9;CM;INTERLINEAR ANNOTATION ANCHOR
+FFFA;CM;INTERLINEAR ANNOTATION SEPARATOR
+FFFB;CM;INTERLINEAR ANNOTATION TERMINATOR
+FFFC;CB;OBJECT REPLACEMENT CHARACTER
+FFFD;AI;REPLACEMENT CHARACTER
old mode 100755 (executable)
new mode 100644 (file)
similarity index 55%
rename from lib/unicode/names2.txt
rename to lib/unicode/Names.txt
index 8f283d7..aa3dce0
@@ -1,38 +1,75 @@
-@@     0000    C0 Controls and Basic Latin     007F
+@@@    The Unicode Standard 3.0
+@@@+   Final Draft UC3M990825.lst
+       More annotation fixes for Tibetan.
+       Annotation added for 2231..2233.
+@@     0000    C0 Controls and Basic Latin (Basic Latin)       007F
 @              C0 controls
-0000   NULL
-0001   START OF HEADING
-0002   START OF TEXT
-0003   END OF TEXT
-0004   END OF TRANSMISSION
-0005   ENQUIRY
-0006   ACKNOWLEDGE
-0007   BELL
-0008   BACKSPACE
-0009   HORIZONTAL TABULATION
-000A   LINE FEED
-000B   VERTICAL TABULATION
-000C   FORM FEED
-000D   CARRIAGE RETURN
-000E   SHIFT OUT
-000F   SHIFT IN
-0010   DATA LINK ESCAPE
-0011   DEVICE CONTROL ONE
-0012   DEVICE CONTROL TWO
-0013   DEVICE CONTROL THREE
-0014   DEVICE CONTROL FOUR
-0015   NEGATIVE ACKNOWLEDGE
-0016   SYNCHRONOUS IDLE
-0017   END OF TRANSMISSION BLOCK
-0018   CANCEL
-0019   END OF MEDIUM
-001A   SUBSTITUTE
+@+             Alias names are those for ISO 6429.
+0000   <control>
+       = NULL
+0001   <control>
+       = START OF HEADING
+0002   <control>
+       = START OF TEXT
+0003   <control>
+       = END OF TEXT
+0004   <control>
+       = END OF TRANSMISSION
+0005   <control>
+       = ENQUIRY
+0006   <control>
+       = ACKNOWLEDGE
+0007   <control>
+       = BELL
+0008   <control>
+       = BACKSPACE
+0009   <control>
+       = HORIZONTAL TABULATION
+000A   <control>
+       = LINE FEED
+000B   <control>
+       = VERTICAL TABULATION
+000C   <control>
+       = FORM FEED
+000D   <control>
+       = CARRIAGE RETURN
+000E   <control>
+       = SHIFT OUT
+000F   <control>
+       = SHIFT IN
+0010   <control>
+       = DATA LINK ESCAPE
+0011   <control>
+       = DEVICE CONTROL ONE
+0012   <control>
+       = DEVICE CONTROL TWO
+0013   <control>
+       = DEVICE CONTROL THREE
+0014   <control>
+       = DEVICE CONTROL FOUR
+0015   <control>
+       = NEGATIVE ACKNOWLEDGE
+0016   <control>
+       = SYNCHRONOUS IDLE
+0017   <control>
+       = END OF TRANSMISSION BLOCK
+0018   <control>
+       = CANCEL
+0019   <control>
+       = END OF MEDIUM
+001A   <control>
+       = SUBSTITUTE
        x (replacement character - FFFD)
-001B   ESCAPE
-001C   FILE SEPARATOR
-001D   GROUP SEPARATOR
-001E   RECORD SEPARATOR
-001F   UNIT SEPARATOR
+001B   <control>
+       = ESCAPE
+001C   <control>
+       = FILE SEPARATOR
+001D   <control>
+       = GROUP SEPARATOR
+001E   <control>
+       = RECORD SEPARATOR
+001F   <control>
+       = UNIT SEPARATOR
 @              ASCII
 0020   SPACE
        * sometimes considered a control code
        x (zero width no-break space - FEFF)
 0021   EXCLAMATION MARK
        = factorial
+       = bang
        x (inverted exclamation mark - 00A1)
        x (latin letter retroflex click - 01C3)
        x (double exclamation mark - 203C)
+       x (interrobang - 203D)
        x (heavy exclamation mark ornament - 2762)
 0022   QUOTATION MARK
        = APL quote
        * neutral (vertical), used as opening or closing quotation mark
-       * preferred characters for paired quotation marks are 201C & 201D
+       * preferred characters in English for paired quotation marks are 201C & 201D
        x (modifier letter double prime - 02BA)
        x (combining double acute accent - 030B)
        x (combining double vertical line above - 030E)
-       x (left double quotation mark - 201C)
-       x (right double quotation mark - 201D)
        x (double prime - 2033)
+       x (ditto mark - 3003)
 0023   NUMBER SIGN
-       = pound sign
+       = pound sign, hash, crosshatch, octothorpe
 0024   DOLLAR SIGN
-       = milreis
-       = escudo
+       = milreis, escudo
        * glyph may have one or two vertical bars
-       * this code is unambiguously dollar sign, not "currency sign" or any other currency symbol
+       * other currency symbol characters: 20A0-20AF
        x (currency sign - 00A4)
 0025   PERCENT SIGN
        x (arabic percent sign - 066A)
 0027   APOSTROPHE
        = APOSTROPHE-QUOTE
        * neutral (vertical) glyph having mixed usage
-       * preferred character for apostrophe is 02BC
-       * preferred character for opening single quotation mark is 2018
-       * preferred character for closing single quotation mark is 2019
+       * preferred character for apostrophe is 2019
+       * preferred characters in English for paired quotation marks are 2018 & 2019
        x (modifier letter prime - 02B9)
        x (modifier letter apostrophe - 02BC)
        x (modifier letter vertical line - 02C8)
        x (combining acute accent - 0301)
-       x (left single quotation mark - 2018)
-       x (right single quotation mark - 2019)
        x (prime - 2032)
 0028   LEFT PARENTHESIS
        = OPENING PARENTHESIS
        = CLOSING PARENTHESIS
        * see discussion on semantics of paired bracketing characters
 002A   ASTERISK
+       = star (on phone keypads)
+       x (arabic five pointed star - 066D)
        x (asterisk operator - 2217)
        x (heavy asterisk - 2731)
 002B   PLUS SIGN
 002C   COMMA
+       = decimal separator
        x (arabic comma - 060C)
+       x (single low-9 quotation mark - 201A)
        x (ideographic comma - 3001)
 002D   HYPHEN-MINUS
        = hyphen or minus sign
-       = hyphus
        * used for either hyphen or minus sign
-       * other hyphen and dash characters: 2010-2015
        x (hyphen - 2010)
        x (non-breaking hyphen - 2011)
+       x (figure dash - 2012)
+       x (en dash - 2013)
        x (minus sign - 2212)
 002E   FULL STOP
        = PERIOD
+       = dot, decimal point
+       * may be rendered as a raised decimal point in old style numbers
        x (arabic full stop - 06D4)
        x (ideographic full stop - 3002)
 002F   SOLIDUS
        = SLASH
-       = virgule
-       = shilling (British)
+       = virgule, shilling (British)
        x (latin letter dental click - 01C0)
+       x (combining long solidus overlay - 0338)
        x (fraction slash - 2044)
        x (division slash - 2215)
 0030   DIGIT ZERO
        x (greek question mark - 037E)
        x (arabic question mark - 061F)
        x (interrobang - 203D)
+       x (question exclamation mark - 2048)
+       x (exclamation question mark - 2049)
 0040   COMMERCIAL AT
 0041   LATIN CAPITAL LETTER A
 0042   LATIN CAPITAL LETTER B
        x (black-letter capital h - 210C)
        x (double-struck capital h - 210D)
 0049   LATIN CAPITAL LETTER I
-       * note alternative case mappings in Turkish
+       * Turkish and Azerbaijani use 0131 for lowercase
        x (latin capital letter i with dot above - 0130)
-       x (latin small letter dotless i - 0131)
+       x (cyrillic capital letter byelorussian-ukrainian i - 0406)
+       x (cyrillic letter palochka - 04C0)
        x (script capital i - 2110)
        x (black-letter capital i - 2111)
+       x (roman numeral one - 2160)
 004A   LATIN CAPITAL LETTER J
 004B   LATIN CAPITAL LETTER K
        x (kelvin sign - 212A)
        x (double-struck capital n - 2115)
 004F   LATIN CAPITAL LETTER O
 0050   LATIN CAPITAL LETTER P
-       x (script capital p - 2118)
        x (double-struck capital p - 2119)
 0051   LATIN CAPITAL LETTER Q
        x (double-struck capital q - 211A)
 005D   RIGHT SQUARE BRACKET
        = CLOSING SQUARE BRACKET
 005E   CIRCUMFLEX ACCENT
-       = SPACING CIRCUMFLEX
        * this is a spacing character
        x (modifier letter up arrowhead - 02C4)
        x (modifier letter circumflex accent - 02C6)
        x (combining circumflex accent - 0302)
        x (up arrowhead - 2303)
-       # 0020 + 0302
 005F   LOW LINE
        = SPACING UNDERSCORE
        * this is a spacing character
        x (combining macron below - 0331)
        x (combining low line - 0332)
        x (double low line - 2017)
-       # 0020 + 0332
 0060   GRAVE ACCENT
-       = SPACING GRAVE
        * this is a spacing character
        x (modifier letter grave accent - 02CB)
        x (combining grave accent - 0300)
        x (reversed prime - 2035)
-       # 0020 + 0300
 0061   LATIN SMALL LETTER A
 0062   LATIN SMALL LETTER B
 0063   LATIN SMALL LETTER C
        x (cyrillic small letter shha - 04BB)
        x (planck constant - 210E)
 0069   LATIN SMALL LETTER I
-       * note alternative case mappings in Turkish
-       x (latin capital letter i with dot above - 0130)
+       * Turkish and Azerbaijani use 0130 for uppercase
        x (latin small letter dotless i - 0131)
 006A   LATIN SMALL LETTER J
 006B   LATIN SMALL LETTER K
        x (script small l - 2113)
 006D   LATIN SMALL LETTER M
 006E   LATIN SMALL LETTER N
+       x (superscript latin small letter n - 207F)
 006F   LATIN SMALL LETTER O
        x (script small o - 2134)
 0070   LATIN SMALL LETTER P
        = opening brace
 007C   VERTICAL LINE
        = VERTICAL BAR
+       * used in pairs to indicate absolute value
        x (latin letter dental click - 01C0)
        x (divides - 2223)
        x (light vertical bar - 2758)
        x (small tilde - 02DC)
        x (combining tilde - 0303)
        x (tilde operator - 223C)
-007F   DELETE
-       * control code
-@@     0080    C1 Controls and Latin-1 Supplement      00FF
-@              ISO 8859-1 (aka Latin1)
+       x (fullwidth tilde - FF5E)
+007F   <control>
+       = DELETE
+@@     0080    C1 Controls and Latin-1 Supplement (Latin-1 Supplement) 00FF
+@              C1 controls
+@+             Alias names are those for ISO 6429.
+0080   <control>
+0081   <control>
+0082   <control>
+       = BREAK PERMITTED HERE
+0083   <control>
+       = NO BREAK HERE
+0084   <control>
+       = INDEX
+0085   <control>
+       = NEXT LINE
+0086   <control>
+       = START OF SELECTED AREA
+0087   <control>
+       = END OF SELECTED AREA
+0088   <control>
+       = CHARACTER TABULATION SET
+0089   <control>
+       = CHARACTER TABULATION WITH JUSTIFICATION
+008A   <control>
+       = LINE TABULATION SET
+008B   <control>
+       = PARTIAL LINE DOWN
+008C   <control>
+       = PARTIAL LINE UP
+008D   <control>
+       = REVERSE LINE FEED
+008E   <control>
+       = SINGLE SHIFT TWO
+008F   <control>
+       = SINGLE SHIFT THREE
+0090   <control>
+       = DEVICE CONTROL STRING
+0091   <control>
+       = PRIVATE USE ONE
+0092   <control>
+       = PRIVATE USE TWO
+0093   <control>
+       = SET TRANSMIT STATE
+0094   <control>
+       = CANCEL CHARACTER
+0095   <control>
+       = MESSAGE WAITING
+0096   <control>
+       = START OF GUARDED AREA
+0097   <control>
+       = END OF GUARDED AREA
+0098   <control>
+       = START OF STRING
+0099   <control>
+009A   <control>
+       = SINGLE CHARACTER INTRODUCER
+009B   <control>
+       = CONTROL SEQUENCE INTRODUCER
+009C   <control>
+       = STRING TERMINATOR
+009D   <control>
+       = OPERATING SYSTEM COMMAND
+009E   <control>
+       = PRIVACY MESSAGE
+009F   <control>
+       = APPLICATION PROGRAM COMMAND
+@              ISO 8859-1 (aka Latin-1)
 00A0   NO-BREAK SPACE
-       = NON-BREAKING SPACE
        x (space - 0020)
+       x (figure space - 2007)
+       x (narrow no-break space - 202F)
        x (zero width no-break space - FEFF)
-       # <noBreak> + 0020
+       # <noBreak> 0020
 00A1   INVERTED EXCLAMATION MARK
-       * Spanish
+       * Spanish, Asturian, Galician
        x (exclamation mark - 0021)
 00A2   CENT SIGN
 00A3   POUND SIGN
-       = pound sterling
+       = pound sterling, Irish punt
        x (lira sign - 20A4)
 00A4   CURRENCY SIGN
-       * other currency symbol characters: 20A0-20CF
+       * other currency symbol characters: 20A0-20AF
        x (dollar sign - 0024)
 00A5   YEN SIGN
        = yuan sign
        * glyph may have one or two crossbars
 00A6   BROKEN BAR
        = BROKEN VERTICAL BAR
+       = parted rule (in typography)
 00A7   SECTION SIGN
        * paragraph sign in some European usage
 00A8   DIAERESIS
-       = SPACING DIAERESIS
        * this is a spacing character
        x (combining diaeresis - 0308)
-       # 0020 + 0308
+       # 0020 0308
 00A9   COPYRIGHT SIGN
        x (sound recording copyright - 2117)
 00AA   FEMININE ORDINAL INDICATOR
        * Spanish
-       # <super> + 0061
-00AB   LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+       # <super> 0061
+00AB   LEFT-POINTING DOUBLE ANGLE QUOTATION MARK *
        = LEFT POINTING GUILLEMET
+       = chevrons (in typography)
        * usually opening, sometimes closing
        x (much less-than - 226A)
        x (left double angle bracket - 300A)
 00AC   NOT SIGN
+       = angled dash (in typography)
        x (reversed not sign - 2310)
 00AD   SOFT HYPHEN
        = discretionary hyphen
+       x (mongolian todo soft hyphen - 1806)
 00AE   REGISTERED SIGN
        = REGISTERED TRADE MARK SIGN
 00AF   MACRON
-       = SPACING MACRON
-       = overline
-       = APL overbar
+       = overline, APL overbar
        * this is a spacing character
        x (modifier letter macron - 02C9)
        x (combining macron - 0304)
        x (combining overline - 0305)
-       # 0020 + 0304
+       # 0020 0304
 00B0   DEGREE SIGN
        * this is a spacing character
        x (ring above - 02DA)
        x (combining ring above - 030A)
+       x (superscript zero - 2070)
        x (ring operator - 2218)
 00B1   PLUS-MINUS SIGN
-       = PLUS-OR-MINUS SIGN
        x (minus-or-plus sign - 2213)
 00B2   SUPERSCRIPT TWO
-       = SUPERSCRIPT DIGIT TWO
        = squared
+       * other superscript digit characters: 2070-2079
        x (superscript one - 00B9)
-       # <super> + 0032
+       # <super> 0032
 00B3   SUPERSCRIPT THREE
-       = SUPERSCRIPT DIGIT THREE
        = cubed
        x (superscript one - 00B9)
-       # <super> + 0033
+       # <super> 0033
 00B4   ACUTE ACCENT
-       = SPACING ACUTE
        * this is a spacing character
        x (modifier letter prime - 02B9)
        x (modifier letter acute accent - 02CA)
        x (combining acute accent - 0301)
        x (prime - 2032)
-       # 0020 + 0301
+       # 0020 0301
 00B5   MICRO SIGN
-       x (greek small letter mu - 03BC)
-       # 03BC
+       # 03BC greek small letter mu
 00B6   PILCROW SIGN
        = PARAGRAPH SIGN
        * section sign in some European usage
+       x (reversed pilcrow sign - 204B)
        x (curved stem paragraph sign ornament - 2761)
 00B7   MIDDLE DOT
+       = midpoint (in typography)
        = Georgian comma
        = Greek middle dot
        x (bullet - 2022)
        x (one dot leader - 2024)
+       x (hyphenation point - 2027)
        x (bullet operator - 2219)
        x (dot operator - 22C5)
        x (katakana middle dot - 30FB)
 00B8   CEDILLA
-       = SPACING CEDILLA
        * this is a spacing character
        * other spacing accent characters: 02D8-02DB
        x (combining cedilla - 0327)
-       # 0020 + 0327
+       # 0020 0327
 00B9   SUPERSCRIPT ONE
-       = SUPERSCRIPT DIGIT ONE
-       * other superscript digit characters: 2070-2079
        x (superscript two - 00B2)
        x (superscript three - 00B3)
-       # <super> + 0031
+       # <super> 0031
 00BA   MASCULINE ORDINAL INDICATOR
        * Spanish
-       # <super> + 006F
-00BB   RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+       # <super> 006F
+00BB   RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK *
        = RIGHT POINTING GUILLEMET
        * usually closing, sometimes opening
        x (much greater-than - 226B)
        x (right double angle bracket - 300B)
 00BC   VULGAR FRACTION ONE QUARTER
-       = FRACTION ONE QUARTER
        * bar may be horizontal or slanted
-       # <fraction> + 0031 + 2044 + 0034
+       * other fraction characters: 2153-215E
+       # 0031 2044 0034
 00BD   VULGAR FRACTION ONE HALF
-       = FRACTION ONE HALF
        * bar may be horizontal or slanted
-       # <fraction> + 0031 + 2044 + 0032
+       # 0031 2044 0032
 00BE   VULGAR FRACTION THREE QUARTERS
-       = FRACTION THREE QUARTERS
        * bar may be horizontal or slanted
-       * other fraction characters: 2153-215E
-       # <fraction> + 0033 + 2044 + 0034
+       # 0033 2044 0034
 00BF   INVERTED QUESTION MARK
        = turned question mark
        * Spanish
        x (question mark - 003F)
 00C0   LATIN CAPITAL LETTER A WITH GRAVE
-       = LATIN CAPITAL LETTER A GRAVE
-       * (many of the following have similar name transformations)
-       : 0041 + 0300
+       : 0041 0300
 00C1   LATIN CAPITAL LETTER A WITH ACUTE
-       : 0041 + 0301
+       : 0041 0301
 00C2   LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-       : 0041 + 0302
+       : 0041 0302
 00C3   LATIN CAPITAL LETTER A WITH TILDE
-       : 0041 + 0303
+       : 0041 0303
 00C4   LATIN CAPITAL LETTER A WITH DIAERESIS
-       : 0041 + 0308
+       : 0041 0308
 00C5   LATIN CAPITAL LETTER A WITH RING ABOVE
-       = LATIN CAPITAL LETTER A RING
        x (angstrom sign - 212B)
-       : 0041 + 030A
-00C6   LATIN CAPITAL LETTER AE
+       : 0041 030A
+00C6   LATIN CAPITAL LETTER AE (ash) *
        = LATIN CAPITAL LIGATURE AE
 00C7   LATIN CAPITAL LETTER C WITH CEDILLA
-       : 0043 + 0327
+       : 0043 0327
 00C8   LATIN CAPITAL LETTER E WITH GRAVE
-       : 0045 + 0300
+       : 0045 0300
 00C9   LATIN CAPITAL LETTER E WITH ACUTE
-       : 0045 + 0301
+       : 0045 0301
 00CA   LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-       : 0045 + 0302
+       : 0045 0302
 00CB   LATIN CAPITAL LETTER E WITH DIAERESIS
-       : 0045 + 0308
+       : 0045 0308
 00CC   LATIN CAPITAL LETTER I WITH GRAVE
-       : 0049 + 0300
+       : 0049 0300
 00CD   LATIN CAPITAL LETTER I WITH ACUTE
-       : 0049 + 0301
+       : 0049 0301
 00CE   LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-       : 0049 + 0302
+       : 0049 0302
 00CF   LATIN CAPITAL LETTER I WITH DIAERESIS
-       : 0049 + 0308
-00D0   LATIN CAPITAL LETTER ETH
+       : 0049 0308
+00D0   LATIN CAPITAL LETTER ETH (Icelandic)
        x (latin small letter eth - 00F0)
        x (latin capital letter d with stroke - 0110)
        x (latin capital letter african d - 0189)
 00D1   LATIN CAPITAL LETTER N WITH TILDE
-       : 004E + 0303
+       : 004E 0303
 00D2   LATIN CAPITAL LETTER O WITH GRAVE
-       : 004F + 0300
+       : 004F 0300
 00D3   LATIN CAPITAL LETTER O WITH ACUTE
-       : 004F + 0301
+       : 004F 0301
 00D4   LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-       : 004F + 0302
+       : 004F 0302
 00D5   LATIN CAPITAL LETTER O WITH TILDE
-       : 004F + 0303
+       : 004F 0303
 00D6   LATIN CAPITAL LETTER O WITH DIAERESIS
-       : 004F + 0308
+       : 004F 0308
 00D7   MULTIPLICATION SIGN
+       = z notation Cartesian product
 00D8   LATIN CAPITAL LETTER O WITH STROKE
        = LATIN CAPITAL LETTER O SLASH
        x (empty set - 2205)
 00D9   LATIN CAPITAL LETTER U WITH GRAVE
-       : 0055 + 0300
+       : 0055 0300
 00DA   LATIN CAPITAL LETTER U WITH ACUTE
-       : 0055 + 0301
+       : 0055 0301
 00DB   LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-       : 0055 + 0302
+       : 0055 0302
 00DC   LATIN CAPITAL LETTER U WITH DIAERESIS
-       : 0055 + 0308
+       : 0055 0308
 00DD   LATIN CAPITAL LETTER Y WITH ACUTE
-       : 0059 + 0301
-00DE   LATIN CAPITAL LETTER THORN
-00DF   LATIN SMALL LETTER SHARP S
-       = ess-zed
+       : 0059 0301
+00DE   LATIN CAPITAL LETTER THORN (Icelandic)
+00DF   LATIN SMALL LETTER SHARP S (German)
+       = Eszett
        * German
        * uppercase is "SS"
+       * in origin a ligature of 017F and 0073
        x (greek small letter beta - 03B2)
 00E0   LATIN SMALL LETTER A WITH GRAVE
-       = LATIN SMALL LETTER A GRAVE
-       * (many of the following have similar name transformations)
-       : 0061 + 0300
+       : 0061 0300
 00E1   LATIN SMALL LETTER A WITH ACUTE
-       : 0061 + 0301
+       : 0061 0301
 00E2   LATIN SMALL LETTER A WITH CIRCUMFLEX
-       : 0061 + 0302
+       : 0061 0302
 00E3   LATIN SMALL LETTER A WITH TILDE
        * Portuguese
-       : 0061 + 0303
+       : 0061 0303
 00E4   LATIN SMALL LETTER A WITH DIAERESIS
-       : 0061 + 0308
+       : 0061 0308
 00E5   LATIN SMALL LETTER A WITH RING ABOVE
-       = LATIN SMALL LETTER A RING
-       * Danish, Norwegian, Swedish
-       : 0061 + 030A
-00E6   LATIN SMALL LETTER AE
+       * Danish, Norwegian, Swedish, Walloon
+       : 0061 030A
+00E6   LATIN SMALL LETTER AE (ash) *
        = LATIN SMALL LIGATURE AE
-       * IPA
+       = ash (from Old English Ã¦sc)
+       * Danish, Norwegian, Icelandic, Faroese, Old English, French, IPA
        x (latin small ligature oe - 0153)
+       x (cyrillic small ligature a ie - 04D5)
 00E7   LATIN SMALL LETTER C WITH CEDILLA
-       : 0063 + 0327
+       : 0063 0327
 00E8   LATIN SMALL LETTER E WITH GRAVE
-       : 0065 + 0300
+       : 0065 0300
 00E9   LATIN SMALL LETTER E WITH ACUTE
-       : 0065 + 0301
+       : 0065 0301
 00EA   LATIN SMALL LETTER E WITH CIRCUMFLEX
-       : 0065 + 0302
+       : 0065 0302
 00EB   LATIN SMALL LETTER E WITH DIAERESIS
-       : 0065 + 0308
+       : 0065 0308
 00EC   LATIN SMALL LETTER I WITH GRAVE
-       * Italian, Malagash
-       : 0069 + 0300
+       * Italian, Malagasy
+       : 0069 0300
 00ED   LATIN SMALL LETTER I WITH ACUTE
-       : 0069 + 0301
+       : 0069 0301
 00EE   LATIN SMALL LETTER I WITH CIRCUMFLEX
-       : 0069 + 0302
+       : 0069 0302
 00EF   LATIN SMALL LETTER I WITH DIAERESIS
-       : 0069 + 0308
-00F0   LATIN SMALL LETTER ETH
-       * Icelandic, Faroese, old English, IPA
+       : 0069 0308
+00F0   LATIN SMALL LETTER ETH (Icelandic)
+       * Icelandic, Faroese, Old English, IPA
        x (latin capital letter eth - 00D0)
+       x (greek small letter delta - 03B4)
+       x (partial differential - 2202)
 00F1   LATIN SMALL LETTER N WITH TILDE
-       : 006E + 0303
+       : 006E 0303
 00F2   LATIN SMALL LETTER O WITH GRAVE
-       : 006F + 0300
+       : 006F 0300
 00F3   LATIN SMALL LETTER O WITH ACUTE
-       : 006F + 0301
+       : 006F 0301
 00F4   LATIN SMALL LETTER O WITH CIRCUMFLEX
-       : 006F + 0302
+       : 006F 0302
 00F5   LATIN SMALL LETTER O WITH TILDE
        * Portuguese, Estonian
-       : 006F + 0303
+       : 006F 0303
 00F6   LATIN SMALL LETTER O WITH DIAERESIS
-       : 006F + 0308
+       : 006F 0308
 00F7   DIVISION SIGN
 00F8   LATIN SMALL LETTER O WITH STROKE
        = LATIN SMALL LETTER O SLASH
        * Danish, Norwegian, Faroese, IPA
 00F9   LATIN SMALL LETTER U WITH GRAVE
        * French, Italian
-       : 0075 + 0300
+       : 0075 0300
 00FA   LATIN SMALL LETTER U WITH ACUTE
-       : 0075 + 0301
+       : 0075 0301
 00FB   LATIN SMALL LETTER U WITH CIRCUMFLEX
-       : 0075 + 0302
+       : 0075 0302
 00FC   LATIN SMALL LETTER U WITH DIAERESIS
-       : 0075 + 0308
+       : 0075 0308
 00FD   LATIN SMALL LETTER Y WITH ACUTE
-       * Czech, Slovak, Icelandic, Faroese, Malagash
-       : 0079 + 0301
-00FE   LATIN SMALL LETTER THORN
-       * Icelandic, old English, IPA
+       * Czech, Slovak, Icelandic, Faroese, Welsh, Malagasy
+       : 0079 0301
+00FE   LATIN SMALL LETTER THORN (Icelandic)
+       * Icelandic, Old English, phonetics
        * Runic letter borrowed into Latin script
+       x (runic letter thurisaz thurs thorn - 16A6)
 00FF   LATIN SMALL LETTER Y WITH DIAERESIS
        * French
        x (latin capital letter y with diaeresis - 0178)
-       : 0079 + 0308
+       : 0079 0308
 @@     0100    Latin Extended-A        017F
 @              European Latin
 0100   LATIN CAPITAL LETTER A WITH MACRON
-       : 0041 + 0304
+       : 0041 0304
 0101   LATIN SMALL LETTER A WITH MACRON
-       * Latvian, ...
-       : 0061 + 0304
+       * Latvian, Latin, ...
+       : 0061 0304
 0102   LATIN CAPITAL LETTER A WITH BREVE
-       : 0041 + 0306
+       : 0041 0306
 0103   LATIN SMALL LETTER A WITH BREVE
-       * Romanian, Vietnamese, ...
-       : 0061 + 0306
+       * Romanian, Vietnamese, Latin, ...
+       : 0061 0306
 0104   LATIN CAPITAL LETTER A WITH OGONEK
-       : 0041 + 0328
+       : 0041 0328
 0105   LATIN SMALL LETTER A WITH OGONEK
        * Polish, Lithuanian, ...
-       : 0061 + 0328
+       : 0061 0328
 0106   LATIN CAPITAL LETTER C WITH ACUTE
-       : 0043 + 0301
+       : 0043 0301
 0107   LATIN SMALL LETTER C WITH ACUTE
        * Polish, Croatian, ...
        x (cyrillic small letter tshe - 045B)
-       : 0063 + 0301
+       : 0063 0301
 0108   LATIN CAPITAL LETTER C WITH CIRCUMFLEX
-       : 0043 + 0302
+       : 0043 0302
 0109   LATIN SMALL LETTER C WITH CIRCUMFLEX
        * Esperanto
-       : 0063 + 0302
+       : 0063 0302
 010A   LATIN CAPITAL LETTER C WITH DOT ABOVE
-       : 0043 + 0307
+       : 0043 0307
 010B   LATIN SMALL LETTER C WITH DOT ABOVE
-       * Maltese
-       : 0063 + 0307
+       * Maltese, Irish Gaelic (old orthography)
+       : 0063 0307
 010C   LATIN CAPITAL LETTER C WITH CARON
-       : 0043 + 030C
+       : 0043 030C
 010D   LATIN SMALL LETTER C WITH CARON
-       * (many)
-       : 0063 + 030C
+       * Czech, Slovak, Slovenian, and many other languages
+       : 0063 030C
 010E   LATIN CAPITAL LETTER D WITH CARON
        * the form using caron/hacek is preferred in all contexts
-       : 0044 + 030C
+       : 0044 030C
 010F   LATIN SMALL LETTER D WITH CARON
        * Czech, Slovak
        * the form using apostrophe is preferred in typesetting
-       : 0064 + 030C
+       : 0064 030C
 0110   LATIN CAPITAL LETTER D WITH STROKE
        x (latin capital letter eth - 00D0)
        x (latin small letter d with stroke - 0111)
        x (latin capital letter african d - 0189)
 0111   LATIN SMALL LETTER D WITH STROKE
-       * Croatian, Vietnamese, Lappish
+       * Croatian, Vietnamese, Sámi
        x (latin capital letter d with stroke - 0110)
        x (cyrillic small letter dje - 0452)
 0112   LATIN CAPITAL LETTER E WITH MACRON
-       : 0045 + 0304
+       : 0045 0304
 0113   LATIN SMALL LETTER E WITH MACRON
-       * Latvian, ...
-       : 0065 + 0304
+       * Latvian, Latin, ...
+       : 0065 0304
 0114   LATIN CAPITAL LETTER E WITH BREVE
-       : 0045 + 0306
+       : 0045 0306
 0115   LATIN SMALL LETTER E WITH BREVE
-       * Malay, ...
-       : 0065 + 0306
+       * Malay, Latin, ...
+       : 0065 0306
 0116   LATIN CAPITAL LETTER E WITH DOT ABOVE
-       : 0045 + 0307
+       : 0045 0307
 0117   LATIN SMALL LETTER E WITH DOT ABOVE
        * Lithuanian
-       : 0065 + 0307
+       : 0065 0307
 0118   LATIN CAPITAL LETTER E WITH OGONEK
-       : 0045 + 0328
+       : 0045 0328
 0119   LATIN SMALL LETTER E WITH OGONEK
        * Polish, Lithuanian, ...
-       : 0065 + 0328
+       : 0065 0328
 011A   LATIN CAPITAL LETTER E WITH CARON
-       : 0045 + 030C
+       : 0045 030C
 011B   LATIN SMALL LETTER E WITH CARON
        * Czech, ...
-       : 0065 + 030C
+       : 0065 030C
 011C   LATIN CAPITAL LETTER G WITH CIRCUMFLEX
-       : 0047 + 0302
+       : 0047 0302
 011D   LATIN SMALL LETTER G WITH CIRCUMFLEX
        * Esperanto
-       : 0067 + 0302
+       : 0067 0302
 011E   LATIN CAPITAL LETTER G WITH BREVE
-       : 0047 + 0306
+       : 0047 0306
 011F   LATIN SMALL LETTER G WITH BREVE
-       * Turkish
+       * Turkish, Azerbaijani
        x (latin small letter g with caron - 01E7)
-       : 0067 + 0306
+       : 0067 0306
 0120   LATIN CAPITAL LETTER G WITH DOT ABOVE
-       : 0047 + 0307
+       : 0047 0307
 0121   LATIN SMALL LETTER G WITH DOT ABOVE
-       * Maltese, ...
-       : 0067 + 0307
+       * Maltese, Irish Gaelic (old orthography)
+       : 0067 0307
 0122   LATIN CAPITAL LETTER G WITH CEDILLA
-       : 0047 + 0327
+       : 0047 0327
 0123   LATIN SMALL LETTER G WITH CEDILLA
-       * Latvian, Lappish
-       * there are three glyph variants
-       : 0067 + 0327
+       * Latvian
+       * there are three major glyph variants
+       : 0067 0327
 0124   LATIN CAPITAL LETTER H WITH CIRCUMFLEX
-       : 0048 + 0302
+       : 0048 0302
 0125   LATIN SMALL LETTER H WITH CIRCUMFLEX
        * Esperanto
-       : 0068 + 0302
+       : 0068 0302
 0126   LATIN CAPITAL LETTER H WITH STROKE
 0127   LATIN SMALL LETTER H WITH STROKE
        * Maltese, IPA, ...
        x (cyrillic small letter tshe - 045B)
        x (planck constant over two pi - 210F)
 0128   LATIN CAPITAL LETTER I WITH TILDE
-       : 0049 + 0303
+       : 0049 0303
 0129   LATIN SMALL LETTER I WITH TILDE
-       * Greenlandic
-       : 0069 + 0303
+       * Greenlandic (old orthography)
+       : 0069 0303
 012A   LATIN CAPITAL LETTER I WITH MACRON
-       : 0049 + 0304
+       : 0049 0304
 012B   LATIN SMALL LETTER I WITH MACRON
-       * Latvian, ...
-       : 0069 + 0304
+       * Latvian, Latin, ...
+       : 0069 0304
 012C   LATIN CAPITAL LETTER I WITH BREVE
-       : 0049 + 0306
+       : 0049 0306
 012D   LATIN SMALL LETTER I WITH BREVE
        * Latin, ...
-       : 0069 + 0306
+       : 0069 0306
 012E   LATIN CAPITAL LETTER I WITH OGONEK
-       : 0049 + 0328
+       : 0049 0328
 012F   LATIN SMALL LETTER I WITH OGONEK
        * Lithuanian, ...
-       : 0069 + 0328
+       : 0069 0328
 0130   LATIN CAPITAL LETTER I WITH DOT ABOVE
        = LATIN CAPITAL LETTER I DOT
-       * Turkish
-       * note case mapping
+       * Turkish, Azerbaijani
+       * lowercase is 0069
        x (latin capital letter i - 0049)
-       x (latin small letter i - 0069)
-       : 0049 + 0307
+       : 0049 0307
 0131   LATIN SMALL LETTER DOTLESS I
-       * Turkish
-       * note case mapping
-       x (latin capital letter i - 0049)
+       * Turkish, Azerbaijani
+       * uppercase is 0049
        x (latin small letter i - 0069)
 0132   LATIN CAPITAL LIGATURE IJ
-       # 0049 + 004A
+       # 0049 004A
 0133   LATIN SMALL LIGATURE IJ
        * Dutch
-       # 0069 + 006A
+       # 0069 006A
 0134   LATIN CAPITAL LETTER J WITH CIRCUMFLEX
-       : 004A + 0302
+       : 004A 0302
 0135   LATIN SMALL LETTER J WITH CIRCUMFLEX
        * Esperanto
-       : 006A + 0302
+       : 006A 0302
 0136   LATIN CAPITAL LETTER K WITH CEDILLA
-       : 004B + 0327
+       : 004B 0327
 0137   LATIN SMALL LETTER K WITH CEDILLA
-       * Latvian, ...
-       : 006B + 0327
-0138   LATIN SMALL LETTER KRA
-       * old Greenlandic
+       * Latvian
+       : 006B 0327
+0138   LATIN SMALL LETTER KRA (Greenlandic)
+       * Greenlandic (old orthography)
 0139   LATIN CAPITAL LETTER L WITH ACUTE
-       : 004C + 0301
+       : 004C 0301
 013A   LATIN SMALL LETTER L WITH ACUTE
        * Slovak
-       : 006C + 0301
+       : 006C 0301
 013B   LATIN CAPITAL LETTER L WITH CEDILLA
-       : 004C + 0327
+       : 004C 0327
 013C   LATIN SMALL LETTER L WITH CEDILLA
        * Latvian
-       : 006C + 0327
+       : 006C 0327
 013D   LATIN CAPITAL LETTER L WITH CARON
-       : 004C + 030C
+       : 004C 030C
 013E   LATIN SMALL LETTER L WITH CARON
        * Slovak
        * the form using apostrophe is preferred in typesetting
-       : 006C + 030C
+       : 006C 030C
 013F   LATIN CAPITAL LETTER L WITH MIDDLE DOT
-       # 004C + 00B7
+       * some fonts show the middle dot inside the L, but the preferred form has the dot following the L
+       # 004C 00B7
 0140   LATIN SMALL LETTER L WITH MIDDLE DOT
        * Catalan
-       # 006C + 00B7
+       # 006C 00B7
 0141   LATIN CAPITAL LETTER L WITH STROKE
 0142   LATIN SMALL LETTER L WITH STROKE
        * Polish, ...
        x (latin small letter l with bar - 019A)
 0143   LATIN CAPITAL LETTER N WITH ACUTE
-       : 004E + 0301
+       : 004E 0301
 0144   LATIN SMALL LETTER N WITH ACUTE
        * Polish, ...
-       : 006E + 0301
+       : 006E 0301
 0145   LATIN CAPITAL LETTER N WITH CEDILLA
-       : 004E + 0327
+       : 004E 0327
 0146   LATIN SMALL LETTER N WITH CEDILLA
        * Latvian
-       : 006E + 0327
+       : 006E 0327
 0147   LATIN CAPITAL LETTER N WITH CARON
-       : 004E + 030C
+       : 004E 030C
 0148   LATIN SMALL LETTER N WITH CARON
        * Czech, Slovak
-       : 006E + 030C
+       : 006E 030C
 0149   LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
        = LATIN SMALL LETTER APOSTROPHE N
        * Afrikaans
        * this is not actually a single letter
-       # 02BC + 006E
-014A   LATIN CAPITAL LETTER ENG
-014B   LATIN SMALL LETTER ENG
-       * Sami, IPA, ...
+       # 02BC 006E
+014A   LATIN CAPITAL LETTER ENG (Sami)
+       * glyph may also have appearance of large form of the small letter
+014B   LATIN SMALL LETTER ENG (Sami)
+       * Sámi, Mende, IPA, ...
 014C   LATIN CAPITAL LETTER O WITH MACRON
-       : 004F + 0304
+       : 004F 0304
 014D   LATIN SMALL LETTER O WITH MACRON
-       * Latvian, ...
-       : 006F + 0304
+       * Latvian, Latin, ...
+       : 006F 0304
 014E   LATIN CAPITAL LETTER O WITH BREVE
-       : 004F + 0306
+       : 004F 0306
 014F   LATIN SMALL LETTER O WITH BREVE
        * Latin
-       : 006F + 0306
+       : 006F 0306
 0150   LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-       : 004F + 030B
+       : 004F 030B
 0151   LATIN SMALL LETTER O WITH DOUBLE ACUTE
        * Hungarian
-       : 006F + 030B
+       : 006F 030B
 0152   LATIN CAPITAL LIGATURE OE
 0153   LATIN SMALL LIGATURE OE
-       = LATIN ... LETTER O E
-       * French, IPA, ...
+       = LATIN SMALL LETTER O E
+       = ethel (from Old English eðel)
+       * French, IPA, Old Icelandic, Old English, ...
        x (latin small letter ae - 00E6)
        x (latin letter small capital oe - 0276)
 0154   LATIN CAPITAL LETTER R WITH ACUTE
-       : 0052 + 0301
+       : 0052 0301
 0155   LATIN SMALL LETTER R WITH ACUTE
        * Slovak, ...
-       : 0072 + 0301
+       : 0072 0301
 0156   LATIN CAPITAL LETTER R WITH CEDILLA
-       : 0052 + 0327
+       : 0052 0327
 0157   LATIN SMALL LETTER R WITH CEDILLA
        * Latvian
-       : 0072 + 0327
+       : 0072 0327
 0158   LATIN CAPITAL LETTER R WITH CARON
-       : 0052 + 030C
+       : 0052 030C
 0159   LATIN SMALL LETTER R WITH CARON
        * Czech, ...
-       : 0072 + 030C
+       : 0072 030C
 015A   LATIN CAPITAL LETTER S WITH ACUTE
-       : 0053 + 0301
+       : 0053 0301
 015B   LATIN SMALL LETTER S WITH ACUTE
-       * Polish, ...
-       : 0073 + 0301
+       * Polish, Indic transliteration, ...
+       : 0073 0301
 015C   LATIN CAPITAL LETTER S WITH CIRCUMFLEX
-       : 0053 + 0302
+       : 0053 0302
 015D   LATIN SMALL LETTER S WITH CIRCUMFLEX
        * Esperanto
-       : 0073 + 0302
-015E   LATIN CAPITAL LETTER S WITH CEDILLA
-       : 0053 + 0327
-015F   LATIN SMALL LETTER S WITH CEDILLA
-       * Turkish, Romanian, ...
-       * the form using under-comma is taken to be a glyph variant
-       : 0073 + 0327
+       : 0073 0302
+015E   LATIN CAPITAL LETTER S WITH CEDILLA *
+       : 0053 0327
+015F   LATIN SMALL LETTER S WITH CEDILLA *
+       * Turkish, Azerbaijani, Romanian, ...
+       * this character is used in both Turkish and Romanian data
+       * a glyph variant with comma below is preferred for Romanian
+       x (latin small letter s with comma below - 0219)
+       : 0073 0327
 0160   LATIN CAPITAL LETTER S WITH CARON
-       : 0053 + 030C
+       : 0053 030C
 0161   LATIN SMALL LETTER S WITH CARON
-       * (many)
-       : 0073 + 030C
-0162   LATIN CAPITAL LETTER T WITH CEDILLA
-       : 0054 + 0327
-0163   LATIN SMALL LETTER T WITH CEDILLA
-       * Romanian, ...
-       * the form using under-comma is taken to be a glyph variant
-       : 0074 + 0327
+       * Czech, Estonian, Finnish, Slovak, and many other languages
+       : 0073 030C
+0162   LATIN CAPITAL LETTER T WITH CEDILLA *
+       : 0054 0327
+0163   LATIN SMALL LETTER T WITH CEDILLA *
+       * Romanian, Semitic transliteration, ...
+       * this character is used in Romanian data
+       * a glyph variant with comma below is preferred for Romanian
+       x (latin small letter t with comma below - 021B)
+       : 0074 0327
 0164   LATIN CAPITAL LETTER T WITH CARON
        * the form using caron/hacek is preferred in all contexts
-       : 0054 + 030C
+       : 0054 030C
 0165   LATIN SMALL LETTER T WITH CARON
        * Czech, Slovak
        * the form using apostrophe is preferred in typesetting
-       : 0074 + 030C
+       : 0074 030C
 0166   LATIN CAPITAL LETTER T WITH STROKE
 0167   LATIN SMALL LETTER T WITH STROKE
-       * Lappish
+       * Sámi
 0168   LATIN CAPITAL LETTER U WITH TILDE
-       : 0055 + 0303
+       : 0055 0303
 0169   LATIN SMALL LETTER U WITH TILDE
-       * Greenlandic
-       : 0075 + 0303
+       * Greenlandic (old orthography)
+       : 0075 0303
 016A   LATIN CAPITAL LETTER U WITH MACRON
-       : 0055 + 0304
+       : 0055 0304
 016B   LATIN SMALL LETTER U WITH MACRON
-       * Latvian, Lithuanian, ...
-       : 0075 + 0304
+       * Latvian, Lithuanian, Latin, ...
+       : 0075 0304
 016C   LATIN CAPITAL LETTER U WITH BREVE
-       : 0055 + 0306
+       : 0055 0306
 016D   LATIN SMALL LETTER U WITH BREVE
        * Latin, Esperanto, ...
-       : 0075 + 0306
+       : 0075 0306
 016E   LATIN CAPITAL LETTER U WITH RING ABOVE
-       : 0055 + 030A
+       : 0055 030A
 016F   LATIN SMALL LETTER U WITH RING ABOVE
        * Czech, ...
-       : 0075 + 030A
+       : 0075 030A
 0170   LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-       : 0055 + 030B
+       : 0055 030B
 0171   LATIN SMALL LETTER U WITH DOUBLE ACUTE
        * Hungarian
-       : 0075 + 030B
+       : 0075 030B
 0172   LATIN CAPITAL LETTER U WITH OGONEK
-       : 0055 + 0328
+       : 0055 0328
 0173   LATIN SMALL LETTER U WITH OGONEK
        * Lithuanian
-       : 0075 + 0328
+       : 0075 0328
 0174   LATIN CAPITAL LETTER W WITH CIRCUMFLEX
-       : 0057 + 0302
+       : 0057 0302
 0175   LATIN SMALL LETTER W WITH CIRCUMFLEX
        * Welsh
-       : 0077 + 0302
+       : 0077 0302
 0176   LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
-       : 0059 + 0302
+       : 0059 0302
 0177   LATIN SMALL LETTER Y WITH CIRCUMFLEX
        * Welsh
-       : 0079 + 0302
+       : 0079 0302
 0178   LATIN CAPITAL LETTER Y WITH DIAERESIS
-       * French
+       * French, Igbo
        x (latin small letter y with diaeresis - 00FF)
-       : 0059 + 0308
+       : 0059 0308
 0179   LATIN CAPITAL LETTER Z WITH ACUTE
-       : 005A + 0301
+       : 005A 0301
 017A   LATIN SMALL LETTER Z WITH ACUTE
        * Polish, ...
-       : 007A + 0301
+       : 007A 0301
 017B   LATIN CAPITAL LETTER Z WITH DOT ABOVE
-       : 005A + 0307
+       : 005A 0307
 017C   LATIN SMALL LETTER Z WITH DOT ABOVE
        * Polish, ...
-       : 007A + 0307
+       : 007A 0307
 017D   LATIN CAPITAL LETTER Z WITH CARON
-       : 005A + 030C
+       : 005A 030C
 017E   LATIN SMALL LETTER Z WITH CARON
-       * (many)
-       : 007A + 030C
+       * Czech, Estonian, Finnish, Slovak, Slovenian, and many other languages
+       : 007A 030C
 017F   LATIN SMALL LETTER LONG S
-       # 0073
+       * in common use in Roman types until the 18th century
+       * in current use in Fraktur and Gaelic types
+       # 0073 latin small letter s
 @@     0180    Latin Extended-B        024F
 @              Latin extended-B
 0180   LATIN SMALL LETTER B WITH STROKE
-       * Americanist usage for phonetic beta
+       * Americanist and Indo-Europeanist usage for phonetic beta
+       * Old Saxon
        x (greek small letter beta - 03B2)
        x (blank symbol - 2422)
 0181   LATIN CAPITAL LETTER B WITH HOOK
+       * Zulu, Pan-Nigerian alphabet
        x (latin small letter b with hook - 0253)
 0182   LATIN CAPITAL LETTER B WITH TOPBAR
 0183   LATIN SMALL LETTER B WITH TOPBAR
-       * Ex-Soviet minority language scripts
+       * Zhuang
+       * former Soviet minority language scripts
        x (cyrillic capital letter be - 0411)
 0184   LATIN CAPITAL LETTER TONE SIX
 0185   LATIN SMALL LETTER TONE SIX
 0187   LATIN CAPITAL LETTER C WITH HOOK
 0188   LATIN SMALL LETTER C WITH HOOK
        * African
-0189   LATIN CAPITAL LETTER AFRICAN D
+0189   LATIN CAPITAL LETTER AFRICAN D *
+       * Ewe
        x (latin capital letter eth - 00D0)
        x (latin capital letter d with stroke - 0110)
        x (latin small letter d with tail - 0256)
 018A   LATIN CAPITAL LETTER D WITH HOOK
-       * African
+       * Pan-Nigerian alphabet
        x (latin small letter d with hook - 0257)
 018B   LATIN CAPITAL LETTER D WITH TOPBAR
 018C   LATIN SMALL LETTER D WITH TOPBAR
-       * Ex-Soviet minority language scripts
+       * former-Soviet minority language scripts
 018D   LATIN SMALL LETTER TURNED DELTA
        * archaic phonetic for labialized dental fricative
        * recommended spellings 007A 02B7 or 007A 032B
 018E   LATIN CAPITAL LETTER REVERSED E
        = LATIN CAPITAL LETTER TURNED E
-       * Nigerian
-       * alternate uppercase usage to the following
-       x (latin small letter turned e - 01DD)
+       * Pan-Nigerian alphabet
+       * lowercase is 01DD
 018F   LATIN CAPITAL LETTER SCHWA
        * Azerbaijani, ...
        x (latin small letter schwa - 0259)
+       x (cyrillic capital letter schwa - 04D8)
 0190   LATIN CAPITAL LETTER OPEN E
+       = LATIN CAPITAL LETTER EPSILON
        * African
        x (latin small letter open e - 025B)
        x (euler constant - 2107)
        * African
 0192   LATIN SMALL LETTER F WITH HOOK
        = LATIN SMALL LETTER SCRIPT F
-       = Florin currency symbol (Dutch)
+       = Florin currency symbol (Netherlands)
        = function symbol
+       = abbreviation convention for folder
 0193   LATIN CAPITAL LETTER G WITH HOOK
        * African
        x (latin small letter g with hook - 0260)
 0194   LATIN CAPITAL LETTER GAMMA
        * African
        x (latin small letter gamma - 0263)
-0195   LATIN SMALL LETTER HV
-       * Gothic
+0195   LATIN SMALL LETTER HV (hwair)
+       * Gothic transliteration
+       * uppercase is 01F6
 0196   LATIN CAPITAL LETTER IOTA
        * African
        x (latin small letter iota - 0269)
 0197   LATIN CAPITAL LETTER I WITH STROKE
-       = i bar
+       = barred i, i bar
        * African
        * ISO 6438 gives lowercase as 026A, not 0268
        x (latin letter small capital i - 026A)
 0198   LATIN CAPITAL LETTER K WITH HOOK
 0199   LATIN SMALL LETTER K WITH HOOK
-       * African
+       * Hausa, Pan-Nigerian alphabet
 019A   LATIN SMALL LETTER L WITH BAR
-       * Americanist phonetic usage
+       = barred l
+       * Americanist phonetic usage for 026C
        x (latin small letter l with stroke - 0142)
 019B   LATIN SMALL LETTER LAMBDA WITH STROKE
-       = lambda bar
+       = barred lambda, lambda bar
        * Americanist phonetic usage
 019C   LATIN CAPITAL LETTER TURNED M
        * Zhuang
 019E   LATIN SMALL LETTER N WITH LONG RIGHT LEG
        * archaic phonetic for Japanese syllabic "n"
        * recommended spelling 006E 0329
-019F   LATIN CAPITAL LETTER O WITH MIDDLE TILDE
-       = LATIN CAPITAL LETTER BARRED O
-       = o bar
-       * note case mapping
-       * African, Ex-Soviet minority language scripts
-       x (latin small letter barred o - 0275)
+019F   LATIN CAPITAL LETTER O WITH MIDDLE TILDE *
+       = barred o, o bar
+       * lowercase is 0275
+       * African
+       x (cyrillic capital letter barred o - 04E8)
 01A0   LATIN CAPITAL LETTER O WITH HORN
-       : 004F + 031B
+       : 004F 031B
 01A1   LATIN SMALL LETTER O WITH HORN
        * Vietnamese
-       : 006F + 031B
-01A2   LATIN CAPITAL LETTER OI
-01A3   LATIN SMALL LETTER OI
-       * old Azerbaijani
+       : 006F 031B
+01A2   LATIN CAPITAL LETTER OI (gha)
+01A3   LATIN SMALL LETTER OI (gha)
+       = gha
+       * Pan-Turkic Latin alphabets
 01A4   LATIN CAPITAL LETTER P WITH HOOK
 01A5   LATIN SMALL LETTER P WITH HOOK
        * African
 01A6   LATIN LETTER YR
        * old Norse
-       * from German Standard DIN 31624
+       * from German Standard DIN 31624 and ISO 5246-2
+       * lowercase is 0280
 01A7   LATIN CAPITAL LETTER TONE TWO
 01A8   LATIN SMALL LETTER TONE TWO
        * Zhuang
        x (latin small letter esh - 0283)
        x (greek capital letter sigma - 03A3)
 01AA   LATIN LETTER REVERSED ESH LOOP
-       * archaic phonetic for labialized palato-alveolar or palatal fricative
+       * archaic phonetic for labialized palatoalveolar or palatal fricative
        * Twi
        * recommended spellings 0283 02B7, 00E7 02B7, 0068 0265, etc.
 01AB   LATIN SMALL LETTER T WITH PALATAL HOOK
        * African
        x (latin small letter t with retroflex hook - 0288)
 01AF   LATIN CAPITAL LETTER U WITH HORN
-       : 0055 + 031B
+       : 0055 031B
 01B0   LATIN SMALL LETTER U WITH HORN
        * Vietnamese
-       : 0075 + 031B
+       : 0075 031B
 01B1   LATIN CAPITAL LETTER UPSILON
        * African
        * typographically based on turned capital Greek omega
        x (latin small letter v with hook - 028B)
 01B3   LATIN CAPITAL LETTER Y WITH HOOK
 01B4   LATIN SMALL LETTER Y WITH HOOK
-       * African
+       * Bini, Esoko, and other Edo languages in West Africa
 01B5   LATIN CAPITAL LETTER Z WITH STROKE
 01B6   LATIN SMALL LETTER Z WITH STROKE
-       = z bar
-       * variant of Latin "z"
+       = barred z, z bar
+       * Pan-Turkic Latin orthography
+       * handwritten variant of Latin "z"
        x (latin small letter z - 007A)
 01B7   LATIN CAPITAL LETTER EZH
-       = LATIN CAPITAL LETTER YOGH
-       * African
-       x (latin small letter ezh - 0292)
+       * African, Skolt Sámi
+       * lowercase is 0292
+       x (latin capital letter yogh - 021C)
+       x (cyrillic capital letter abkhasian dze - 04E0)
 01B8   LATIN CAPITAL LETTER EZH REVERSED
 01B9   LATIN SMALL LETTER EZH REVERSED
        * archaic phonetic for voiced pharyngeal fricative
        x (latin letter pharyngeal voiced fricative - 0295)
        x (arabic letter ain - 0639)
 01BA   LATIN SMALL LETTER EZH WITH TAIL
-       * archaic phonetic for labialized voiced palato-alveolar or palatal fricative
+       * archaic phonetic for labialized voiced palatoalveolar or palatal fricative
        * Twi
        * recommended spellings 0292 02B7 or 006A 02B7
 01BB   LATIN LETTER TWO WITH STROKE
 01BE   LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE
        * archaic phonetic for [ts] affricate
        * recommended spelling 0074 0073
+       * letter form is actually derived from ligation of ts, rather than inverted glottal stop
 01BF   LATIN LETTER WYNN
+       = wen
        * Runic letter borrowed into Latin script
        * replaced by "w" in modern transcriptions of Old English
+       * uppercase is 01F7
+       x (runic letter wunjo wynn w - 16B9)
 01C0   LATIN LETTER DENTAL CLICK
-       = LATIN LETTER PIPE
+       = pipe
        * Khoisan tradition
        * "c" in Zulu orthography
        x (solidus - 002F)
        x (latin small letter turned t - 0287)
        x (divides - 2223)
 01C1   LATIN LETTER LATERAL CLICK
-       = LATIN LETTER DOUBLE PIPE
+       = double pipe
        * Khoisan tradition
        * "x" in Zulu orthography
        x (latin letter inverted glottal stop - 0296)
        x (parallel to - 2225)
 01C2   LATIN LETTER ALVEOLAR CLICK
-       = LATIN LETTER PIPE DOUBLE BAR
+       = double-barred pipe
        * Khoisan tradition
-       * no IPA equivalent
        x (not equal to - 2260)
 01C3   LATIN LETTER RETROFLEX CLICK
        = LATIN LETTER EXCLAMATION MARK
        x (latin letter stretched c - 0297)
 @              Croatian digraphs matching Serbian Cyrillic letters
 01C4   LATIN CAPITAL LETTER DZ WITH CARON
-       # 0044 + 017D
+       # 0044 017D
 01C5   LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
-       # 0044 + 017E
+       # 0044 017E
 01C6   LATIN SMALL LETTER DZ WITH CARON
        x (cyrillic small letter dzhe - 045F)
-       # 0064 + 017E
+       # 0064 017E
 01C7   LATIN CAPITAL LETTER LJ
-       # 004C + 004A
+       # 004C 004A
 01C8   LATIN CAPITAL LETTER L WITH SMALL LETTER J
-       # 004C + 006A
+       # 004C 006A
 01C9   LATIN SMALL LETTER LJ
        x (cyrillic small letter lje - 0459)
-       # 006C + 006A
+       # 006C 006A
 01CA   LATIN CAPITAL LETTER NJ
-       # 004E + 004A
+       # 004E 004A
 01CB   LATIN CAPITAL LETTER N WITH SMALL LETTER J
-       # 004E + 006A
+       # 004E 006A
 01CC   LATIN SMALL LETTER NJ
        x (cyrillic small letter nje - 045A)
-       # 006E + 006A
+       # 006E 006A
 @              Pinyin diacritic-vowel combinations
 01CD   LATIN CAPITAL LETTER A WITH CARON
-       : 0041 + 030C
+       : 0041 030C
 01CE   LATIN SMALL LETTER A WITH CARON
        * Pinyin third tone
-       : 0061 + 030C
+       : 0061 030C
 01CF   LATIN CAPITAL LETTER I WITH CARON
-       : 0049 + 030C
+       : 0049 030C
 01D0   LATIN SMALL LETTER I WITH CARON
        * Pinyin third tone
-       : 0069 + 030C
+       : 0069 030C
 01D1   LATIN CAPITAL LETTER O WITH CARON
-       : 004F + 030C
+       : 004F 030C
 01D2   LATIN SMALL LETTER O WITH CARON
        * Pinyin third tone
-       : 006F + 030C
+       : 006F 030C
 01D3   LATIN CAPITAL LETTER U WITH CARON
-       : 0055 + 030C
+       : 0055 030C
 01D4   LATIN SMALL LETTER U WITH CARON
        * Pinyin third tone
-       : 0075 + 030C
+       : 0075 030C
 01D5   LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-       : 00DC + 0304
+       : 00DC 0304
 01D6   LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
        * Pinyin first tone
-       : 00FC + 0304
+       : 00FC 0304
 01D7   LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-       : 00DC + 0301
+       : 00DC 0301
 01D8   LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
        * Pinyin second tone
-       : 00FC + 0301
+       : 00FC 0301
 01D9   LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-       : 00DC + 030C
+       : 00DC 030C
 01DA   LATIN SMALL LETTER U WITH DIAERESIS AND CARON
        * Pinyin third tone
-       : 00FC + 030C
+       : 00FC 030C
 01DB   LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-       : 00DC + 0300
+       : 00DC 0300
 01DC   LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
        * Pinyin fourth tone
-       : 00FC + 0300
+       : 00FC 0300
 @              Additions
 01DD   LATIN SMALL LETTER TURNED E
-       * Nigerian
+       * Pan-Nigerian alphabet
        * all other usages of schwa are 0259
-       * note case mapping
-       x (latin capital letter reversed e - 018E)
+       * uppercase is 018E
        x (latin small letter schwa - 0259)
 01DE   LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-       : 00C4 + 0304
+       : 00C4 0304
 01DF   LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-       * Lappish
-       : 00E4 + 0304
+       * Livonian, Uralicist usage
+       : 00E4 0304
 01E0   LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
-       : 0041 + 0307 + 0304
+       : 0226 0304
 01E1   LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
-       * Lappish
-       : 0061 + 0307 + 0304
-01E2   LATIN CAPITAL LETTER AE WITH MACRON
-       : 00C6 + 0304
-01E3   LATIN SMALL LETTER AE WITH MACRON
-       * Lappish, Old English
-       : 00E6 + 0304
+       * Uralicist usage
+       : 0227 0304
+01E2   LATIN CAPITAL LETTER AE WITH MACRON (ash) *
+       : 00C6 0304
+01E3   LATIN SMALL LETTER AE WITH MACRON (ash) *
+       * Old Norse, Old English
+       : 00E6 0304
 01E4   LATIN CAPITAL LETTER G WITH STROKE
 01E5   LATIN SMALL LETTER G WITH STROKE
-       * Lappish
+       * Skolt Sámi
 01E6   LATIN CAPITAL LETTER G WITH CARON
-       : 0047 + 030C
+       : 0047 030C
 01E7   LATIN SMALL LETTER G WITH CARON
-       * Lappish; sometimes used in writing Turkish
+       * Skolt Sámi
        x (latin small letter g with breve - 011F)
-       : 0067 + 030C
+       : 0067 030C
 01E8   LATIN CAPITAL LETTER K WITH CARON
-       : 004B + 030C
+       : 004B 030C
 01E9   LATIN SMALL LETTER K WITH CARON
-       * Lappish
-       : 006B + 030C
+       * Skolt Sámi
+       : 006B 030C
 01EA   LATIN CAPITAL LETTER O WITH OGONEK
-       : 004F + 0328
+       : 004F 0328
 01EB   LATIN SMALL LETTER O WITH OGONEK
-       * Lappish, Iroquoian
-       : 006F + 0328
+       * Sámi, Iroquoian, Old Icelandic
+       : 006F 0328
 01EC   LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
-       : 01EA + 0304
+       : 01EA 0304
 01ED   LATIN SMALL LETTER O WITH OGONEK AND MACRON
-       * Lappish
-       : 01EB + 0304
+       * Old Icelandic
+       : 01EB 0304
 01EE   LATIN CAPITAL LETTER EZH WITH CARON
-       : 01B7 + 030C
+       : 01B7 030C
 01EF   LATIN SMALL LETTER EZH WITH CARON
-       * Lappish
-       : 0292 + 030C
+       * Skolt Sámi
+       : 0292 030C
 01F0   LATIN SMALL LETTER J WITH CARON
-       * IPA
-       : 006A + 030C
+       * IPA and many languages
+       : 006A 030C
 01F1   LATIN CAPITAL LETTER DZ
-       # 0044 + 005A
+       # 0044 005A
 01F2   LATIN CAPITAL LETTER D WITH SMALL LETTER Z
-       # 0044 + 007A
+       # 0044 007A
 01F3   LATIN SMALL LETTER DZ
-       # 0064 + 007A
+       # 0064 007A
 01F4   LATIN CAPITAL LETTER G WITH ACUTE
-       : 0047 + 0301
+       : 0047 0301
 01F5   LATIN SMALL LETTER G WITH ACUTE
-       : 0067 + 0301
+       : 0067 0301
+01F6   LATIN CAPITAL LETTER HWAIR
+       * lowercase is 0195
+01F7   LATIN CAPITAL LETTER WYNN
+       = wen
+       * lowercase is 01BF
+01F8   LATIN CAPITAL LETTER N WITH GRAVE
+       : 004E 0300
+01F9   LATIN SMALL LETTER N WITH GRAVE
+       * Pinyin
+       : 006E 0300
 01FA   LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-       : 00C5 + 0301
+       : 00C5 0301
 01FB   LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-       : 00E5 + 0301
-01FC   LATIN CAPITAL LETTER AE WITH ACUTE
-       : 00C6 + 0301
-01FD   LATIN SMALL LETTER AE WITH ACUTE
-       : 00E6 + 0301
+       : 00E5 0301
+01FC   LATIN CAPITAL LETTER AE WITH ACUTE (ash) *
+       : 00C6 0301
+01FD   LATIN SMALL LETTER AE WITH ACUTE (ash) *
+       : 00E6 0301
 01FE   LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-       : 00D8 + 0301
+       : 00D8 0301
 01FF   LATIN SMALL LETTER O WITH STROKE AND ACUTE
-       : 00F8 + 0301
+       : 00F8 0301
+@              Additions for Slovenian and Croatian
 0200   LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
-       : 0041 + 030F
+       : 0041 030F
 0201   LATIN SMALL LETTER A WITH DOUBLE GRAVE
-       : 0061 + 030F
+       : 0061 030F
 0202   LATIN CAPITAL LETTER A WITH INVERTED BREVE
-       : 0041 + 0311
+       : 0041 0311
 0203   LATIN SMALL LETTER A WITH INVERTED BREVE
-       : 0061 + 0311
+       : 0061 0311
 0204   LATIN CAPITAL LETTER E WITH DOUBLE GRAVE
-       : 0045 + 030F
+       : 0045 030F
 0205   LATIN SMALL LETTER E WITH DOUBLE GRAVE
-       : 0065 + 030F
+       : 0065 030F
 0206   LATIN CAPITAL LETTER E WITH INVERTED BREVE
-       : 0045 + 0311
+       : 0045 0311
 0207   LATIN SMALL LETTER E WITH INVERTED BREVE
-       : 0065 + 0311
+       : 0065 0311
 0208   LATIN CAPITAL LETTER I WITH DOUBLE GRAVE
-       : 0049 + 030F
+       : 0049 030F
 0209   LATIN SMALL LETTER I WITH DOUBLE GRAVE
-       : 0069 + 030F
+       : 0069 030F
 020A   LATIN CAPITAL LETTER I WITH INVERTED BREVE
-       : 0049 + 0311
+       : 0049 0311
 020B   LATIN SMALL LETTER I WITH INVERTED BREVE
-       : 0069 + 0311
+       : 0069 0311
 020C   LATIN CAPITAL LETTER O WITH DOUBLE GRAVE
-       : 004F + 030F
+       : 004F 030F
 020D   LATIN SMALL LETTER O WITH DOUBLE GRAVE
-       : 006F + 030F
+       : 006F 030F
 020E   LATIN CAPITAL LETTER O WITH INVERTED BREVE
-       : 004F + 0311
+       : 004F 0311
 020F   LATIN SMALL LETTER O WITH INVERTED BREVE
-       : 006F + 0311
+       : 006F 0311
 0210   LATIN CAPITAL LETTER R WITH DOUBLE GRAVE
-       : 0052 + 030F
+       : 0052 030F
 0211   LATIN SMALL LETTER R WITH DOUBLE GRAVE
-       : 0072 + 030F
+       : 0072 030F
 0212   LATIN CAPITAL LETTER R WITH INVERTED BREVE
-       : 0052 + 0311
+       : 0052 0311
 0213   LATIN SMALL LETTER R WITH INVERTED BREVE
-       : 0072 + 0311
+       : 0072 0311
 0214   LATIN CAPITAL LETTER U WITH DOUBLE GRAVE
-       : 0055 + 030F
+       : 0055 030F
 0215   LATIN SMALL LETTER U WITH DOUBLE GRAVE
-       : 0075 + 030F
+       : 0075 030F
 0216   LATIN CAPITAL LETTER U WITH INVERTED BREVE
-       : 0055 + 0311
+       : 0055 0311
 0217   LATIN SMALL LETTER U WITH INVERTED BREVE
-       : 0075 + 0311
+       : 0075 0311
+@              Additions for Romanian
+0218   LATIN CAPITAL LETTER S WITH COMMA BELOW *
+       : 0053 0326
+0219   LATIN SMALL LETTER S WITH COMMA BELOW *
+       * Romanian, when distinct comma below form is required
+       x (latin small letter s with cedilla - 015F)
+       : 0073 0326
+021A   LATIN CAPITAL LETTER T WITH COMMA BELOW *
+       : 0054 0326
+021B   LATIN SMALL LETTER T WITH COMMA BELOW *
+       * Romanian, when distinct comma below form is required
+       x (latin small letter t with cedilla - 0163)
+       : 0074 0326
+@              Miscellaneous additions
+021C   LATIN CAPITAL LETTER YOGH
+       x (latin capital letter ezh - 01B7)
+021D   LATIN SMALL LETTER YOGH
+       * Middle English, Scots
+       x (latin small letter ezh - 0292)
+       x (ounce sign - 2125)
+021E   LATIN CAPITAL LETTER H WITH CARON
+       : 0048 030C
+021F   LATIN SMALL LETTER H WITH CARON
+       * Finnish Romany
+       : 0068 030C
+0222   LATIN CAPITAL LETTER OU
+0223   LATIN SMALL LETTER OU
+       * Algonquin, Huron
+       x (digit eight - 0038)
+0224   LATIN CAPITAL LETTER Z WITH HOOK
+0225   LATIN SMALL LETTER Z WITH HOOK
+       * Middle High German
+0226   LATIN CAPITAL LETTER A WITH DOT ABOVE
+       : 0041 0307
+0227   LATIN SMALL LETTER A WITH DOT ABOVE
+       * Uralicist usage
+       : 0061 0307
+0228   LATIN CAPITAL LETTER E WITH CEDILLA
+       : 0045 0327
+0229   LATIN SMALL LETTER E WITH CEDILLA
+       : 0065 0327
+@              Additions for Livonian
+022A   LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+       : 00D6 0304
+022B   LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+       * Livonian
+       : 00F6 0304
+022C   LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+       : 00D5 0304
+022D   LATIN SMALL LETTER O WITH TILDE AND MACRON
+       * Livonian
+       : 00F5 0304
+022E   LATIN CAPITAL LETTER O WITH DOT ABOVE
+       : 004F 0307
+022F   LATIN SMALL LETTER O WITH DOT ABOVE
+       * Livonian
+       : 006F 0307
+0230   LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+       : 022E 0304
+0231   LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
+       * Livonian
+       : 022F 0304
+0232   LATIN CAPITAL LETTER Y WITH MACRON
+       : 0059 0304
+0233   LATIN SMALL LETTER Y WITH MACRON
+       * Livonian, Cornish
+       : 0079 0304
 @@     0250    IPA Extensions  02AF
 @              IPA extensions
+@+             IPA includes basic Latin letters and a number of Latin letters from other blocks.
                x (latin small letter ae - 00E6)
                x (latin small letter c with cedilla - 00E7)
                x (latin small letter eth - 00F0)
        * low back rounded vowel
 0253   LATIN SMALL LETTER B WITH HOOK
        * implosive bilabial stop
+       * Pan-Nigerian alphabet
        x (latin capital letter b with hook - 0181)
 0254   LATIN SMALL LETTER OPEN O
        * typographically a turned c
        x (latin capital letter african d - 0189)
 0257   LATIN SMALL LETTER D WITH HOOK
        * implosive dental or alveolar stop
+       * Ewe, Pan-Nigerian alphabet
        x (latin capital letter d with hook - 018A)
 0258   LATIN SMALL LETTER REVERSED E
        * upper-mid central unrounded vowel
 0259   LATIN SMALL LETTER SCHWA
        * mid-central unrounded vowel
-       * variant uppercase form 018E is associated with clone 01DD
+       * variant uppercase form 018E is associated with 01DD
        x (latin capital letter schwa - 018F)
        x (latin small letter turned e - 01DD)
+       x (cyrillic small letter schwa - 04D9)
 025A   LATIN SMALL LETTER SCHWA WITH HOOK
        * rhotacized schwa
 025B   LATIN SMALL LETTER OPEN E
 025D   LATIN SMALL LETTER REVERSED OPEN E WITH HOOK
        * rhotacized lower-mid central vowel
 025E   LATIN SMALL LETTER CLOSED REVERSED OPEN E
+       = LATIN SMALL LETTER CLOSED REVERSED EPSILON
        * lower-mid central rounded vowel
 025F   LATIN SMALL LETTER DOTLESS J WITH STROKE
        * voiced palatal stop
-       * typographically a turned f
+       * typographically a turned f, but better thought of as a form of j
        * "gy" in Hungarian orthography
+       * also archaic phonetic for palatoalveolar affricate 02A4
 0260   LATIN SMALL LETTER G WITH HOOK
        * implosive velar stop
        x (latin capital letter g with hook - 0193)
        * breathy-voiced glottal fricative
        x (modifier letter small h with hook - 02B1)
 0267   LATIN SMALL LETTER HENG WITH HOOK
-       * voiceless coarticulated velar and palato-alveolar fricative
-       * "tj" or "kj" in some Swedish dialects
+       * voiceless coarticulated velar and palatoalveolar fricative
+       * "tj" or "kj" or "sj" in some Swedish dialects
 0268   LATIN SMALL LETTER I WITH STROKE
-       = i bar
+       = barred i, i bar
        * high central unrounded vowel
        * ISO 6438 gives lowercase of 0197 as 026A, not 0268
 0269   LATIN SMALL LETTER IOTA
        * semi-high front unrounded vowel
-       * obsoleted by IPA in 1989
+@+             * obsoleted by IPA in 1989
        * preferred use is 026A LATIN LETTER SMALL CAPITAL I
        x (latin capital letter iota - 0196)
        x (greek small letter iota - 03B9)
 026A   LATIN LETTER SMALL CAPITAL I
        * semi-high front unrounded vowel
-       * preferred IPA alternate
+       * preferred IPA alternate for 0269
        x (latin capital letter i with stroke - 0197)
 026B   LATIN SMALL LETTER L WITH MIDDLE TILDE
        * velarized voiced alveolar lateral approximant
 0275   LATIN SMALL LETTER BARRED O
        = o bar
        * rounded mid-central vowel, i.e. rounded schwa
-       * note case mapping
-       x (latin capital letter o with middle tilde - 019F)
+       * uppercase is 019F
        x (greek small letter theta - 03B8)
        x (cyrillic small letter fita - 0473)
+       x (cyrillic small letter barred o - 04E9)
 0276   LATIN LETTER SMALL CAPITAL OE
        * low front rounded vowel
        x (latin small ligature oe - 0153)
 0277   LATIN SMALL LETTER CLOSED OMEGA
        * semi-high back rounded vowel
-       * obsoleted by IPA in 1989
-       * preferred use is 028A LATIN LETTER SMALL UPSILON
+@+             * obsoleted by IPA in 1989
+       * preferred use is 028A latin small letter upsilon
 0278   LATIN SMALL LETTER PHI
        * voiceless bilabial fricative
        x (greek small letter phi - 03C6)
        x (modifier letter small turned r with hook - 02B5)
 027C   LATIN SMALL LETTER R WITH LONG LEG
        * voiced strident apico-alveolar trill
+@+             * obsoleted by IPA in 1989
        * sound spelled with 0159 in Czech
+       * preferred phonetic representation for Czech is 0072 031D
+       * in current use in Gaelic types (as glyph variant of 0072)
 027D   LATIN SMALL LETTER R WITH TAIL
-       = LATIN SMALL LETTER R HOOK
        * voiced retroflex flap
 027E   LATIN SMALL LETTER R WITH FISHHOOK
        * voiced alveolar flap or tap
        * IPA spelling - 007A 0329
 0280   LATIN LETTER SMALL CAPITAL R
        * voiced uvular trill
+       * Germanic, Old Norse
+       * uppercase is 01A6
 0281   LATIN LETTER SMALL CAPITAL INVERTED R
        * voiced uvular fricative or approximant
        x (modifier letter small capital inverted r - 02B6)
        * high central rounded vowel
 028A   LATIN SMALL LETTER UPSILON
        * semi-high back rounded vowel
-       * preferred IPA alternate
+       * preferred IPA alternate to 0277
        x (latin capital letter upsilon - 01B1)
        x (greek small letter upsilon - 03C5)
 028B   LATIN SMALL LETTER V WITH HOOK
        x (latin capital letter v with hook - 01B2)
        x (greek small letter upsilon - 03C5)
 028C   LATIN SMALL LETTER TURNED V
-       = caret
-       = wedge
+       = caret, wedge
        * lower-mid back unrounded vowel
+       x (greek capital letter lamda - 039B)
+       x (caret - 2038)
+       x (logical and - 2227)
 028D   LATIN SMALL LETTER TURNED W
        * voiceless rounded labiovelar approximant
 028E   LATIN SMALL LETTER TURNED Y
 0292   LATIN SMALL LETTER EZH
        = LATIN SMALL LETTER YOGH
        = dram
-       * old Irish, old English
        * voiced postalveolar fricative
-       x (latin capital letter ezh - 01B7)
+       * uppercase is 01B7
+       * Skolt Sámi
+       x (latin small letter yogh - 021D)
+       x (cyrillic small letter abkhasian dze - 04E1)
        x (ounce sign - 2125)
 0293   LATIN SMALL LETTER EZH WITH CURL
        * palatalized voiced postalveolar fricative
 0299   LATIN LETTER SMALL CAPITAL B
        * bilabial trill
 029A   LATIN SMALL LETTER CLOSED OPEN E
+       = LATIN SMALL LETTER CLOSED EPSILON
        * lower-mid front rounded vowel
        * non-IPA alternate for the preferred 0153
 029B   LATIN LETTER SMALL CAPITAL G WITH HOOK
        * voiced uvular implosive
 029C   LATIN LETTER SMALL CAPITAL H
-       * voiceless epiglotto-pharyngeal fricative
+       * voiceless epiglottal fricative
 029D   LATIN SMALL LETTER J WITH CROSSED-TAIL
        * voiced palatal fricative
 029E   LATIN SMALL LETTER TURNED K
        * proposed for velar click
-       * withdrawn by IPA in 1970
+@+             * withdrawn by IPA in 1970
 029F   LATIN LETTER SMALL CAPITAL L
        * velar lateral approximant
 02A0   LATIN SMALL LETTER Q WITH HOOK
        * voiceless uvular implosive
 02A1   LATIN LETTER GLOTTAL STOP WITH STROKE
-       * voiced epiglottal-pharyngeal stop
+       * voiced epiglottal stop
 02A2   LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE
-       * voiced epiglottal-pharyngeal fricative
+       * voiced epiglottal fricative
 02A3   LATIN SMALL LETTER DZ DIGRAPH
        * voiced dental affricate
 02A4   LATIN SMALL LETTER DEZH DIGRAPH
        * voiceless postalveolar affricate
 02A8   LATIN SMALL LETTER TC DIGRAPH WITH CURL
        * voiceless alveolo-palatal affricate
+@              IPA characters for disordered speech
+02A9   LATIN SMALL LETTER FENG DIGRAPH
+       * velopharyngeal fricative
+02AA   LATIN SMALL LETTER LS DIGRAPH
+       * lateral alveolar fricative (lisp)
+02AB   LATIN SMALL LETTER LZ DIGRAPH
+       * voiced lateral alveolar fricative
+02AC   LATIN LETTER BILABIAL PERCUSSIVE
+       * audible lip smack
+02AD   LATIN LETTER BIDENTAL PERCUSSIVE
+       * audible teeth gnashing
 @@     02B0    Spacing Modifier Letters        02FF
 @              Phonetic modifiers derived from Latin letters
 02B0   MODIFIER LETTER SMALL H
        * aspiration
-       # <super> + 0068
+       # <super> 0068
 02B1   MODIFIER LETTER SMALL H WITH HOOK
        * breathy voiced, murmured
        x (latin small letter h with hook - 0266)
        x (combining diaeresis below - 0324)
-       # <super> + 0266
+       # <super> 0266
 02B2   MODIFIER LETTER SMALL J
        * palatalization
        x (combining palatalized hook below - 0321)
-       # <super> + 006A
+       # <super> 006A
 02B3   MODIFIER LETTER SMALL R
-       # <super> + 0072
+       # <super> 0072
 02B4   MODIFIER LETTER SMALL TURNED R
        x (latin small letter turned r - 0279)
-       # <super> + 0279
+       # <super> 0279
 02B5   MODIFIER LETTER SMALL TURNED R WITH HOOK
        x (latin small letter turned r with hook - 027B)
-       # <super> + 027B
+       # <super> 027B
 02B6   MODIFIER LETTER SMALL CAPITAL INVERTED R
        * preceding four used for r-coloring or r-offglides
        x (latin letter small capital inverted r - 0281)
-       # <super> + 0281
+       # <super> 0281
 02B7   MODIFIER LETTER SMALL W
        * labialization
        x (combining inverted double arch below - 032B)
-       # <super> + 0077
+       # <super> 0077
 02B8   MODIFIER LETTER SMALL Y
        * palatalization
        * common Americanist substitution for 02B2
-       # <super> + 0079
+       # <super> 0079
 @              Miscellaneous phonetic modifiers
 02B9   MODIFIER LETTER PRIME
        * primary stress, emphasis
        x (left single quotation mark - 2018)
 02BC   MODIFIER LETTER APOSTROPHE
        = apostrophe
-       * glottal stop, glottalization, ejective; elision
+       * glottal stop, glottalization, ejective
        * spacing clone of Greek smooth breathing mark
-       * this is the preferred character for apostrophe
+       * many languages use this as a letter of their alphabets
        x (apostrophe - 0027)
        x (combining comma above - 0313)
        x (combining comma above right - 0315)
        x (armenian modifier letter left half ring - 0559)
        x (single high-reversed-9 quotation mark - 201B)
 02BE   MODIFIER LETTER RIGHT HALF RING
-       * transliteration of Arabic hamzah (glottal stop)
+       * transliteration of Arabic hamza (glottal stop)
        x (armenian apostrophe - 055A)
        x (arabic letter hamza - 0621)
 02BF   MODIFIER LETTER LEFT HALF RING
        * rising-falling tone, falling tone, secondary stress, etc.
        x (circumflex accent - 005E)
        x (combining circumflex accent - 0302)
-02C7   CARON
-       = MODIFIER LETTER HACEK
+02C7   CARON (Mandarin Chinese third tone)
+       = hacek
        * falling-rising tone
        * Mandarin Chinese third tone
        x (combining caron - 030C)
        * precedes letter or syllable modified
        x (apostrophe - 0027)
        x (combining vertical line above - 030D)
-02C9   MODIFIER LETTER MACRON
+02C9   MODIFIER LETTER MACRON (Mandarin Chinese first tone)
        * high level tone
        * precedes or follows letter or syllable modified
        * Mandarin Chinese first tone
        x (macron - 00AF)
        x (combining macron - 0304)
-02CA   MODIFIER LETTER ACUTE ACCENT
+02CA   MODIFIER LETTER ACUTE ACCENT (Mandarin Chinese second tone)
        * high-rising tone (IPA), high tone, primary stress
        * Mandarin Chinese second tone
        x (acute accent - 00B4)
        x (combining acute accent - 0301)
        x (greek numeral sign - 0374)
        x (armenian emphasis mark - 055B)
-02CB   MODIFIER LETTER GRAVE ACCENT
+02CB   MODIFIER LETTER GRAVE ACCENT (Mandarin Chinese fourth tone)
        * high-falling tone (IPA), low tone, secondary or tertiary stress
        * Mandarin Chinese fourth tone
        x (grave accent - 0060)
        x (greek lower numeral sign - 0375)
 02D0   MODIFIER LETTER TRIANGULAR COLON
        * length mark
+       x (colon - 003A)
 02D1   MODIFIER LETTER HALF TRIANGULAR COLON
        * half-length mark
+       x (middle dot - 00B7)
 02D2   MODIFIER LETTER CENTRED RIGHT HALF RING
        * more rounded articulation
 02D3   MODIFIER LETTER CENTRED LEFT HALF RING
 @              Spacing clones of diacritics
 02D8   BREVE
        x (combining breve - 0306)
-       # 0020 + 0306
-02D9   DOT ABOVE
+       # 0020 0306
+02D9   DOT ABOVE (Mandarin Chinese light tone)
        * Mandarin Chinese fifth tone (light or neutral)
        x (combining dot above - 0307)
-       # 0020 + 0307
+       # 0020 0307
 02DA   RING ABOVE
        x (degree sign - 00B0)
        x (combining ring above - 030A)
-       # 0020 + 030A
+       # 0020 030A
 02DB   OGONEK
        x (combining ogonek - 0328)
-       # 0020 + 0328
+       # 0020 0328
 02DC   SMALL TILDE
        x (tilde - 007E)
        x (combining tilde - 0303)
        x (tilde operator - 223C)
-       # 0020 + 0303
+       # 0020 0303
 02DD   DOUBLE ACUTE ACCENT
        x (combining double acute accent - 030B)
-       # 0020 + 030B
+       # 0020 030B
 @              Additions based on 1989 IPA
 02DE   MODIFIER LETTER RHOTIC HOOK
        * rhotacization in vowel
        * often ligated: 025A = 0259 + 02DE; 025D = 025C + 02DE
-02DF   <reserved>
+02DF   MODIFIER LETTER CROSS ACCENT
+       * Swedish grave accent
 02E0   MODIFIER LETTER SMALL GAMMA
        * these modifier letters are occasionally used in transcription of affricates
-       # <super> + 0263
+       # <super> 0263
 02E1   MODIFIER LETTER SMALL L
-       # <super> + 006C
+       # <super> 006C
 02E2   MODIFIER LETTER SMALL S
-       # <super> + 0073
+       # <super> 0073
 02E3   MODIFIER LETTER SMALL X
-       # <super> + 0078
+       # <super> 0078
 02E4   MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
-       # <super> + 0295
+       # <super> 0295
 @              Tone letters
 02E5   MODIFIER LETTER EXTRA-HIGH TONE BAR
 02E6   MODIFIER LETTER HIGH TONE BAR
 02E7   MODIFIER LETTER MID TONE BAR
 02E8   MODIFIER LETTER LOW TONE BAR
 02E9   MODIFIER LETTER EXTRA-LOW TONE BAR
+02EA   MODIFIER LETTER YIN DEPARTING TONE MARK
+02EB   MODIFIER LETTER YANG DEPARTING TONE MARK
+@              IPA modifiers
+02EC   MODIFIER LETTER VOICING
+02ED   MODIFIER LETTER UNASPIRATED
+@              Other modifier letters
+02EE   MODIFIER LETTER DOUBLE APOSTROPHE
+       * Nenets
 @@     0300    Combining Diacritical Marks     036F
 @              Ordinary diacritics
-0300   COMBINING GRAVE ACCENT
+0300   COMBINING GRAVE ACCENT (Varia)
        = Greek varia
        x (grave accent - 0060)
        x (modifier letter grave accent - 02CB)
-0301   COMBINING ACUTE ACCENT
+0301   COMBINING ACUTE ACCENT (Oxia)
        = stress mark
-       = Greek oxia
+       = Greek oxia, tonos
        x (apostrophe - 0027)
        x (acute accent - 00B4)
        x (modifier letter prime - 02B9)
        x (modifier letter acute accent - 02CA)
+       x (greek tonos - 0384)
 0302   COMBINING CIRCUMFLEX ACCENT
        = hat
        x (circumflex accent - 005E)
        x (macron - 00AF)
        x (modifier letter macron - 02C9)
 0305   COMBINING OVERLINE
-       = overscore
+       = overscore, vinculum
        * connects on left and right
        x (macron - 00AF)
-0306   COMBINING BREVE
+0306   COMBINING BREVE (Vrachy)
        = short
        = Greek vrachy
        x (breve - 02D8)
 0307   COMBINING DOT ABOVE
-       = derivative
-       * IPA (unofficial): palatalization
+       = derivative (Newtonian notation)
+@+             * IPA (withdrawn in 1976): palatalization
        x (dot above - 02D9)
-0308   COMBINING DIAERESIS
-       = double dot above
-       = umlaut
-       = double derivative
+0308   COMBINING DIAERESIS (Dialytika)
+       = double dot above, umlaut
        = Greek dialytika
+       = double derivative
        x (diaeresis - 00A8)
 0309   COMBINING HOOK ABOVE
+       = hoi
        * kerns left or right of circumflex over vowels
        * Vietnamese tone mark
        x (modifier letter glottal stop - 02C0)
        x (modifier letter double prime - 02BA)
        x (double acute accent - 02DD)
 030C   COMBINING CARON
-       = NON-SPACING HACEK
-       = V above
+       = hacek, V above
        x (caron - 02C7)
-030D   COMBINING VERTICAL LINE ABOVE
+030D   COMBINING VERTICAL LINE ABOVE (Tonos)
        * Marshallese
-       = Greek tonos
        x (modifier letter vertical line - 02C8)
-       x (greek tonos - 0384)
 030E   COMBINING DOUBLE VERTICAL LINE ABOVE
        * Marshallese
        x (quotation mark - 0022)
 030F   COMBINING DOUBLE GRAVE ACCENT
-       * Serbocroatian
+       * Serbian and Croatian poetics
 0310   COMBINING CANDRABINDU
        x (devanagari sign candrabindu - 0901)
-       : 0306 + 0307
 0311   COMBINING INVERTED BREVE
 0312   COMBINING TURNED COMMA ABOVE
        = cedilla above
-       * Latvian
+       * Latvian (but not used in decomposition)
        x (modifier letter turned comma - 02BB)
-0313   COMBINING COMMA ABOVE
-       = Greek psili
-       = smooth breathing
+0313   COMBINING COMMA ABOVE (Psili)
+       = Greek psili, smooth breathing mark
+       * Americanist: ejective or glottalization
        x (modifier letter apostrophe - 02BC)
        x (combining cyrillic psili pneumata - 0486)
        x (armenian apostrophe - 055A)
-0314   COMBINING REVERSED COMMA ABOVE
-       = Greek dasia
-       = rough breathing
+0314   COMBINING REVERSED COMMA ABOVE (Dasia)
+       = Greek dasia, rough breathing mark
        x (modifier letter reversed comma - 02BD)
        x (combining cyrillic dasia pneumata - 0485)
        x (armenian modifier letter left half ring - 0559)
 0322   COMBINING RETROFLEX HOOK BELOW
        * IPA: retroflexion
 0323   COMBINING DOT BELOW
+       = nang
        * IPA: closer variety of vowel
-       * Americanist: retraction or retroflexion
+       * Americanist and Indo-Europeanist: retraction or retroflexion
        * Semiticist: velarization or pharyngealization
        * Vietnamese tone mark
        x (modifier letter up tack - 02D4)
        * IPA: voiceless
        * Madurese
 0326   COMBINING COMMA BELOW
-       * variant of the following
+       * Romanian, Latvian, Livonian
 0327   COMBINING CEDILLA
+       * French, Turkish, Azerbaijani
        x (cedilla - 00B8)
 0328   COMBINING OGONEK
+       = nasal hook
        * Americanist: nasalization
+       * Polish, Lithuanian
        x (ogonek - 02DB)
 0329   COMBINING VERTICAL LINE BELOW
        * IPA: syllabic
        x (modifier letter small w - 02B7)
 032C   COMBINING CARON BELOW
        * IPA: voiced
-       * Hittite
+       * Hittite transcription
 032D   COMBINING CIRCUMFLEX ACCENT BELOW
        * Americanist: fronted articulation
 032E   COMBINING BREVE BELOW
 032F   COMBINING INVERTED BREVE BELOW
        * Americanist: fronted articulation (variant of 032D)
-       * Indo-European: semivowel
+       * Indo-Europeanist: semivowel
 0330   COMBINING TILDE BELOW
        * IPA: creaky voice
 0331   COMBINING MACRON BELOW
        x (low line - 005F)
        x (modifier letter low macron - 02CD)
 0332   COMBINING LOW LINE
-       = underline
-       = underscore
+       = underline, underscore
        * connects on left and right
        x (low line - 005F)
 0333   COMBINING DOUBLE LOW LINE
-       = double underline
-       = double underscore
+       = double underline, double underscore
        * connects on left and right
+       x (combining equals sign below - 0347)
        x (double low line - 2017)
 @              Overstruck diacritics
 0334   COMBINING TILDE OVERLAY
        * Cyrillic palatalization
        x (combining cyrillic palatalization - 0484)
 033F   COMBINING DOUBLE OVERLINE
-@              Vietnamese tone marks
-0340   COMBINING GRAVE TONE MARK
-       * kerns left of circumflex over vowels
-       : 0300
-0341   COMBINING ACUTE TONE MARK
+@              Vietnamese tone marks (deprecated)
+0340   COMBINING GRAVE TONE MARK (Vietnamese)
+       * kerns left or right of circumflex over vowels
+       : 0300 combining grave accent
+0341   COMBINING ACUTE TONE MARK (Vietnamese)
        * kerns right of circumflex over vowels
-       : 0301
+       : 0301 combining acute accent
 @              Additions for Greek
 0342   COMBINING GREEK PERISPOMENI
 0343   COMBINING GREEK KORONIS
-       : 0313
+       : 0313 combining comma above
 0344   COMBINING GREEK DIALYTIKA TONOS
-       : 0308 + 030D
+       * use of this character is discouraged
+       : 0308 0301
 0345   COMBINING GREEK YPOGEGRAMMENI
        = GREEK NON-SPACING IOTA BELOW
        = iota subscript
+       * note special casing issues
        x (greek ypogegrammeni - 037A)
-0346   <reserved>
-0347   <reserved>
-0348   <reserved>
-0349   <reserved>
-034A   <reserved>
-034B   <reserved>
-034C   <reserved>
-034D   <reserved>
-034E   <reserved>
-034F   <reserved>
-0350   <reserved>
-0351   <reserved>
-0352   <reserved>
-0353   <reserved>
-0354   <reserved>
-0355   <reserved>
-0356   <reserved>
-0357   <reserved>
-0358   <reserved>
-0359   <reserved>
-035A   <reserved>
-035B   <reserved>
-035C   <reserved>
-035D   <reserved>
-035E   <reserved>
-035F   <reserved>
+       x (greek capital letter iota - 0399)
+@              Additions for IPA
+0346   COMBINING BRIDGE ABOVE
+       * IPA: dentolabial
+0347   COMBINING EQUALS SIGN BELOW
+       * IPA: alveolar
+0348   COMBINING DOUBLE VERTICAL LINE BELOW
+       * IPA: strong articulation
+0349   COMBINING LEFT ANGLE BELOW
+       * IPA: weak articulation
+034A   COMBINING NOT TILDE ABOVE
+       * IPA: denasal
+@              IPA diacritics for disordered speech
+034B   COMBINING HOMOTHETIC ABOVE
+       * IPA: nasal escape
+034C   COMBINING ALMOST EQUAL TO ABOVE
+       * IPA: velopharyngeal friction
+034D   COMBINING LEFT RIGHT ARROW BELOW
+       * IPA: labial spreading
+034E   COMBINING UPWARDS ARROW BELOW
+       * IPA: whistled articulation
 @              Double diacritics
 0360   COMBINING DOUBLE TILDE
 0361   COMBINING DOUBLE INVERTED BREVE
-@@     0370    Greek   03FF
+0362   COMBINING DOUBLE RIGHTWARDS ARROW BELOW
+       * IPA: sliding articulation
+@@     0370    Greek and Coptic        03FF
 @              Based on ISO 8859-7
-0370   <reserved>
-       x (combining greek ypogegrammeni - 0345)
-0371   <reserved>
-       x (combining reversed comma above - 0314)
-0372   <reserved>
-       x (combining comma above - 0313)
-0373   <reserved>
-       x (pound sign - 00A3)
-0374   GREEK NUMERAL SIGN
-       = GREEK UPPER NUMERAL SIGN
+0374   GREEK NUMERAL SIGN (Dexia keraia)
        = dexia keraia
-       * for numeric use of letters
-       x (modifier letter prime - 02B9)
+       * indicates numeric use of letters
        x (modifier letter acute accent - 02CA)
-       : 02B9
-0375   GREEK LOWER NUMERAL SIGN
+       : 02B9 modifier letter prime
+0375   GREEK LOWER NUMERAL SIGN (Aristeri keraia)
        = aristeri keraia
-       * for numeric use of letters
+       * indicates numeric use of letters
        x (modifier letter low acute accent - 02CF)
-0376   <reserved>
-       x (broken bar - 00A6)
-0377   <reserved>
-       x (pilcrow sign - 00B6)
-0378   <reserved>
-       x (combining diaeresis - 0308)
-0379   <reserved>
-       x (copyright sign - 00A9)
 037A   GREEK YPOGEGRAMMENI
+       = iota subscript
        x (combining greek ypogegrammeni - 0345)
-       # 0020 + 0345
-037B   <reserved>
-       x (left-pointing double angle quotation mark - 00AB)
-037C   <reserved>
-       x (not sign - 00AC)
-037D   <reserved>
-       x (soft hyphen - 00AD)
-037E   GREEK QUESTION MARK
+       # 0020 0345
+037E   GREEK QUESTION MARK (Erotimatiko)
        = erotimatiko
        * sentence-final punctuation
-       x (semicolon - 003B)
        x (question mark - 003F)
-       : 003B
-037F   <reserved>
-       x (horizontal bar - 2015)
-0380   <reserved>
-       x (degree sign - 00B0)
-0381   <reserved>
-       x (plus-minus sign - 00B1)
-0382   <reserved>
-       x (superscript two - 00B2)
-0383   <reserved>
-       x (superscript three - 00B3)
+       : 003B semicolon
 0384   GREEK TONOS
+       x (acute accent - 00B4)
        x (combining vertical line above - 030D)
-       # 0020 + 030D
+       # 0020 0301
 0385   GREEK DIALYTIKA TONOS
-       : 00A8 + 030D
+       : 00A8 0301
 0386   GREEK CAPITAL LETTER ALPHA WITH TONOS
-       : 0391 + 030D
+       : 0391 0301
 0387   GREEK ANO TELEIA
-       x (middle dot - 00B7)
-       : 00B7
+       * functions in Greek like a semicolon   
+       : 00B7 middle dot
 0388   GREEK CAPITAL LETTER EPSILON WITH TONOS
-       : 0395 + 030D
+       : 0395 0301
 0389   GREEK CAPITAL LETTER ETA WITH TONOS
-       : 0397 + 030D
+       : 0397 0301
 038A   GREEK CAPITAL LETTER IOTA WITH TONOS
-       : 0399 + 030D
-038B   <reserved>
-       x (right-pointing double angle quotation mark - 00BB)
+       : 0399 0301
 038C   GREEK CAPITAL LETTER OMICRON WITH TONOS
-       : 039F + 030D
-038D   <reserved>
-       x (vulgar fraction one half - 00BD)
+       : 039F 0301
 038E   GREEK CAPITAL LETTER UPSILON WITH TONOS
-       : 03A5 + 030D
+       : 03A5 0301
 038F   GREEK CAPITAL LETTER OMEGA WITH TONOS
-       : 03A9 + 030D
+       : 03A9 0301
 0390   GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
-       : 03B9 + 0344
+       : 03CA 0301
 0391   GREEK CAPITAL LETTER ALPHA
 0392   GREEK CAPITAL LETTER BETA
 0393   GREEK CAPITAL LETTER GAMMA
 03A0   GREEK CAPITAL LETTER PI
        x (n-ary product - 220F)
 03A1   GREEK CAPITAL LETTER RHO
-03A2   <reserved>
 03A3   GREEK CAPITAL LETTER SIGMA
        x (latin capital letter esh - 01A9)
        x (n-ary summation - 2211)
        x (ohm sign - 2126)
        x (inverted ohm sign - 2127)
 03AA   GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
-       : 0399 + 0308
+       : 0399 0308
 03AB   GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
-       : 03A5 + 0308
+       : 03A5 0308
 03AC   GREEK SMALL LETTER ALPHA WITH TONOS
-       : 03B1 + 030D
+       : 03B1 0301
 03AD   GREEK SMALL LETTER EPSILON WITH TONOS
-       : 03B5 + 030D
+       : 03B5 0301
 03AE   GREEK SMALL LETTER ETA WITH TONOS
-       : 03B7 + 030D
+       : 03B7 0301
 03AF   GREEK SMALL LETTER IOTA WITH TONOS
-       : 03B9 + 030D
+       : 03B9 0301
 03B0   GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
-       : 03C5 + 0344
+       : 03CB 0301
 03B1   GREEK SMALL LETTER ALPHA
        x (latin small letter alpha - 0251)
        x (proportional to - 221D)
        x (turned greek small letter iota - 2129)
 03BA   GREEK SMALL LETTER KAPPA
 03BB   GREEK SMALL LETTER LAMDA
+       = lambda
 03BC   GREEK SMALL LETTER MU
        x (micro sign - 00B5)
 03BD   GREEK SMALL LETTER NU
 03C8   GREEK SMALL LETTER PSI
 03C9   GREEK SMALL LETTER OMEGA
 03CA   GREEK SMALL LETTER IOTA WITH DIALYTIKA
-       : 03B9 + 0308
+       : 03B9 0308
 03CB   GREEK SMALL LETTER UPSILON WITH DIALYTIKA
-       : 03C5 + 0308
+       : 03C5 0308
 03CC   GREEK SMALL LETTER OMICRON WITH TONOS
-       : 03BF + 030D
+       : 03BF 0301
 03CD   GREEK SMALL LETTER UPSILON WITH TONOS
-       : 03C5 + 030D
+       : 03C5 0301
 03CE   GREEK SMALL LETTER OMEGA WITH TONOS
-       : 03C9 + 030D
-03CF   <reserved>
+       : 03C9 0301
 @              Variant letterforms
 03D0   GREEK BETA SYMBOL
+       = GREEK SMALL LETTER CURLED BETA
+       # 03B2 greek small letter beta
 03D1   GREEK THETA SYMBOL
+       = GREEK SMALL LETTER SCRIPT THETA
        * used as technical symbol
+       # 03B8 greek small letter theta
 03D2   GREEK UPSILON WITH HOOK SYMBOL
+       = GREEK CAPITAL LETTER UPSILON HOOK
+       # 03A5 greek capital letter upsilon
 03D3   GREEK UPSILON WITH ACUTE AND HOOK SYMBOL
-       : 03D2 + 030D
+       = GREEK CAPITAL LETTER UPSILON HOOK TONOS
+       : 03D2 0301
 03D4   GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL
-       : 03D2 + 0308
+       = GREEK CAPITAL LETTER UPSILON HOOK DIAERESIS
+       : 03D2 0308
 03D5   GREEK PHI SYMBOL
+       = GREEK SMALL LETTER SCRIPT PHI
        * used as technical symbol
+       # 03C6 greek small letter phi
 03D6   GREEK PI SYMBOL
+       = GREEK SMALL LETTER OMEGA PI
        * used as technical symbol
        * a variant of pi, looking like omega
-03D7   <reserved>
-       x (greek question mark - 037E)
-03D8   <reserved>
-       x (greek numeral sign - 0374)
-03D9   <reserved>
-       x (greek lower numeral sign - 0375)
+       # 03C0 greek small letter pi
+03D7   GREEK KAI SYMBOL
+       * used as an ampersand
 @              Archaic letters
 03DA   GREEK LETTER STIGMA
-03DB   <reserved>
+03DB   GREEK SMALL LETTER STIGMA
 03DC   GREEK LETTER DIGAMMA
-03DD   <reserved>
+03DD   GREEK SMALL LETTER DIGAMMA
 03DE   GREEK LETTER KOPPA
-03DF   <reserved>
+03DF   GREEK SMALL LETTER KOPPA
 03E0   GREEK LETTER SAMPI
-03E1   <reserved>
+03E1   GREEK SMALL LETTER SAMPI
 @              Coptic-unique letters
 03E2   COPTIC CAPITAL LETTER SHEI
 03E3   COPTIC SMALL LETTER SHEI
 03EF   COPTIC SMALL LETTER DEI
 @              Additions
 03F0   GREEK KAPPA SYMBOL
+       = GREEK SMALL LETTER SCRIPT KAPPA
        * used as technical symbol
+       # 03BA greek small letter kappa
 03F1   GREEK RHO SYMBOL
+       = GREEK SMALL LETTER TAILED RHO
        * used as technical symbol
+       # 03C1 greek small letter rho
 03F2   GREEK LUNATE SIGMA SYMBOL
+       = GREEK SMALL LETTER LUNATE SIGMA
+       # 03C2 greek small letter final sigma
 03F3   GREEK LETTER YOT
-03F4   <reserved>
-       x (greek dialytika tonos - 0385)
-03F5   <reserved>
-       x (greek ypogegrammeni - 037A)
 @@     0400    Cyrillic        04FF
-@              Based on ISO 8859-5
-0400   <reserved>
-       x (no-break space - 00A0)
+@              Cyrillic extensions
+0400   CYRILLIC CAPITAL LETTER IE WITH GRAVE
+       : 0415 0300
 0401   CYRILLIC CAPITAL LETTER IO
-       : 0415 + 0308
-0402   CYRILLIC CAPITAL LETTER DJE
+       : 0415 0308
+0402   CYRILLIC CAPITAL LETTER DJE (Serbocroatian)
 0403   CYRILLIC CAPITAL LETTER GJE
-       : 0413 + 0301
+       : 0413 0301
 0404   CYRILLIC CAPITAL LETTER UKRAINIAN IE
 0405   CYRILLIC CAPITAL LETTER DZE
 0406   CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+       x (latin capital letter i - 0049)
        x (cyrillic letter palochka - 04C0)
-0407   CYRILLIC CAPITAL LETTER YI
-       : 0406 + 0308
+0407   CYRILLIC CAPITAL LETTER YI (Ukrainian)
+       : 0406 0308
 0408   CYRILLIC CAPITAL LETTER JE
 0409   CYRILLIC CAPITAL LETTER LJE
 040A   CYRILLIC CAPITAL LETTER NJE
-040B   CYRILLIC CAPITAL LETTER TSHE
+040B   CYRILLIC CAPITAL LETTER TSHE (Serbocroatian)
 040C   CYRILLIC CAPITAL LETTER KJE
-       : 041A + 0301
-040D   <reserved>
-       x (soft hyphen - 00AD)
-040E   CYRILLIC CAPITAL LETTER SHORT U
-       : 0423 + 0306
+       : 041A 0301
+040D   CYRILLIC CAPITAL LETTER I WITH GRAVE
+       : 0418 0300
+040E   CYRILLIC CAPITAL LETTER SHORT U (Byelorussian)
+       : 0423 0306
 040F   CYRILLIC CAPITAL LETTER DZHE
 @              Basic Russian alphabet
 0410   CYRILLIC CAPITAL LETTER A
 0417   CYRILLIC CAPITAL LETTER ZE
 0418   CYRILLIC CAPITAL LETTER I
 0419   CYRILLIC CAPITAL LETTER SHORT I
-       : 0418 + 0306
+       : 0418 0306
 041A   CYRILLIC CAPITAL LETTER KA
 041B   CYRILLIC CAPITAL LETTER EL
 041C   CYRILLIC CAPITAL LETTER EM
 0435   CYRILLIC SMALL LETTER IE
 0436   CYRILLIC SMALL LETTER ZHE
 0437   CYRILLIC SMALL LETTER ZE
-       x (latin small letter tone six - 0185)
 0438   CYRILLIC SMALL LETTER I
 0439   CYRILLIC SMALL LETTER SHORT I
-       : 0438 + 0306
+       : 0438 0306
 043A   CYRILLIC SMALL LETTER KA
 043B   CYRILLIC SMALL LETTER EL
 043C   CYRILLIC SMALL LETTER EM
 0445   CYRILLIC SMALL LETTER HA
 0446   CYRILLIC SMALL LETTER TSE
 0447   CYRILLIC SMALL LETTER CHE
-       x (latin small letter tone six - 0185)
 0448   CYRILLIC SMALL LETTER SHA
 0449   CYRILLIC SMALL LETTER SHCHA
 044A   CYRILLIC SMALL LETTER HARD SIGN
 044D   CYRILLIC SMALL LETTER E
 044E   CYRILLIC SMALL LETTER YU
 044F   CYRILLIC SMALL LETTER YA
-@              Based on ISO 8859-5
-0450   <reserved>
-       x (numero sign - 2116)
+@              Cyrillic extensions
+0450   CYRILLIC SMALL LETTER IE WITH GRAVE
+       * Macedonian
+       : 0435 0300
 0451   CYRILLIC SMALL LETTER IO
        * Russian, ...
-       : 0435 + 0308
-0452   CYRILLIC SMALL LETTER DJE
+       : 0435 0308
+0452   CYRILLIC SMALL LETTER DJE (Serbocroatian)
        * Serbian
        x (latin small letter d with stroke - 0111)
 0453   CYRILLIC SMALL LETTER GJE
        * Macedonian
-       : 0433 + 0301
+       : 0433 0301
 0454   CYRILLIC SMALL LETTER UKRAINIAN IE
        = Old Cyrillic yest
-       * Ukrainian, ...
 0455   CYRILLIC SMALL LETTER DZE
        = Old Cyrillic zelo
        * Macedonian
 0456   CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
        = Old Cyrillic i
-       * Ukrainian, Byelorussian, ...
-0457   CYRILLIC SMALL LETTER YI
+0457   CYRILLIC SMALL LETTER YI (Ukrainian)
        * Ukrainian
-       : 0456 + 0308
+       : 0456 0308
 0458   CYRILLIC SMALL LETTER JE
-       * Serbian, Azerbaijan, Altaic
+       * Serbian, Azerbaijani, Altay
 0459   CYRILLIC SMALL LETTER LJE
        * Serbian, Macedonian
        x (latin small letter lj - 01C9)
 045A   CYRILLIC SMALL LETTER NJE
        * Serbian, Macedonian
        x (latin small letter nj - 01CC)
-045B   CYRILLIC SMALL LETTER TSHE
+045B   CYRILLIC SMALL LETTER TSHE (Serbocroatian)
        = Old Cyrillic derv
        * Serbian
        x (latin small letter c with acute - 0107)
        x (planck constant over two pi - 210F)
 045C   CYRILLIC SMALL LETTER KJE
        * Macedonian
-       : 043A + 0301
-045D   <reserved>
-       x (section sign - 00A7)
-045E   CYRILLIC SMALL LETTER SHORT U
-       * Byelorussian, Uzbek, ...
-       : 0443 + 0306
+       : 043A 0301
+045D   CYRILLIC SMALL LETTER I WITH GRAVE
+       * Macedonian
+       : 0438 0300
+045E   CYRILLIC SMALL LETTER SHORT U (Byelorussian)
+       * Byelorussian, Uzbek
+       : 0443 0306
 045F   CYRILLIC SMALL LETTER DZHE
        * Serbian, Macedonian, Abkhasian
        x (latin small letter dz with caron - 01C6)
 0461   CYRILLIC SMALL LETTER OMEGA
 0462   CYRILLIC CAPITAL LETTER YAT
 0463   CYRILLIC SMALL LETTER YAT
+       * Old Russian
 0464   CYRILLIC CAPITAL LETTER IOTIFIED E
 0465   CYRILLIC SMALL LETTER IOTIFIED E
 0466   CYRILLIC CAPITAL LETTER LITTLE YUS
 0474   CYRILLIC CAPITAL LETTER IZHITSA
 0475   CYRILLIC SMALL LETTER IZHITSA
 0476   CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-       : 0474 + 030F
+       : 0474 030F
 0477   CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-       : 0475 + 030F
+       : 0475 030F
 0478   CYRILLIC CAPITAL LETTER UK
        * basic Old Cyrillic uk is unified with CYRILLIC LETTER U
        x (cyrillic capital letter u - 0423)
        x (combining reversed comma above - 0314)
 0486   COMBINING CYRILLIC PSILI PNEUMATA
        x (combining comma above - 0313)
-0487   <reserved>
-0488   <reserved>
-0489   <reserved>
-048A   <reserved>
-048B   <reserved>
-048C   <reserved>
-048D   <reserved>
-048E   <reserved>
-048F   <reserved>
+0488   COMBINING CYRILLIC HUNDRED THOUSANDS SIGN
+0489   COMBINING CYRILLIC MILLIONS SIGN
 @              Extended Cyrillic
+048C   CYRILLIC CAPITAL LETTER SEMISOFT SIGN
+048D   CYRILLIC SMALL LETTER SEMISOFT SIGN
+       * Kildin Sámi
+048E   CYRILLIC CAPITAL LETTER ER WITH TICK
+048F   CYRILLIC SMALL LETTER ER WITH TICK
+       * Kildin Sámi
 0490   CYRILLIC CAPITAL LETTER GHE WITH UPTURN
 0491   CYRILLIC SMALL LETTER GHE WITH UPTURN
        * Old Ukrainian
 0492   CYRILLIC CAPITAL LETTER GHE WITH STROKE
 0493   CYRILLIC SMALL LETTER GHE WITH STROKE
        * Azerbaijani, Bashkir, ...
-       * full bar form preferred
+       * full bar form preferred over half-barred "F"-type
 0494   CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK
 0495   CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK
        * Abkhasian, Yakut
 0498   CYRILLIC CAPITAL LETTER ZE WITH DESCENDER
 0499   CYRILLIC SMALL LETTER ZE WITH DESCENDER
        * Bashkir
-       * cedilla form preferred
+       * reversed ogonek form of the descender is preferred
 049A   CYRILLIC CAPITAL LETTER KA WITH DESCENDER
 049B   CYRILLIC SMALL LETTER KA WITH DESCENDER
        * Abkhasian, Tajik, ...
 049C   CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
 049D   CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE
-       * Azerbaijan
+       * Azerbaijani
 049E   CYRILLIC CAPITAL LETTER KA WITH STROKE
 049F   CYRILLIC SMALL LETTER KA WITH STROKE
        * Abkhasian
 04A0   CYRILLIC CAPITAL LETTER BASHKIR KA
 04A1   CYRILLIC SMALL LETTER BASHKIR KA
-       * Bashkir
 04A2   CYRILLIC CAPITAL LETTER EN WITH DESCENDER
 04A3   CYRILLIC SMALL LETTER EN WITH DESCENDER
        * Bashkir, ...
 04A4   CYRILLIC CAPITAL LIGATURE EN GHE
 04A5   CYRILLIC SMALL LIGATURE EN GHE
-       * Altaic, Mari, Yakut
-04A6   CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK
-04A7   CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK
+       * Altay, Mari, Yakut
+       * this is not a decomposable ligature
+04A6   CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK (Abkhasian)
+04A7   CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK (Abkhasian)
        * Abkhasian
 04A8   CYRILLIC CAPITAL LETTER ABKHASIAN HA
 04A9   CYRILLIC SMALL LETTER ABKHASIAN HA
-       * Abkhasian
 04AA   CYRILLIC CAPITAL LETTER ES WITH DESCENDER
 04AB   CYRILLIC SMALL LETTER ES WITH DESCENDER
        * Bashkir, Chuvash
-       * cedilla form preferred
+       * reversed ogonek form of the descender is preferred
 04AC   CYRILLIC CAPITAL LETTER TE WITH DESCENDER
 04AD   CYRILLIC SMALL LETTER TE WITH DESCENDER
        * Abkhasian
 04AE   CYRILLIC CAPITAL LETTER STRAIGHT U
 04AF   CYRILLIC SMALL LETTER STRAIGHT U
        * stem is straight, unlike LETTER U
-       * Azerbaijan, Bashkir, ...
+       * Azerbaijani, Bashkir, ...
        x (cyrillic capital letter u - 0423)
 04B0   CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
 04B1   CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
        * Kazakh
 04B2   CYRILLIC CAPITAL LETTER HA WITH DESCENDER
 04B3   CYRILLIC SMALL LETTER HA WITH DESCENDER
-       * Abkhasian, Tajik, ...
-04B4   CYRILLIC CAPITAL LIGATURE TE TSE
-04B5   CYRILLIC SMALL LIGATURE TE TSE
+       * Abkhasian, Tajik, Uzbek
+04B4   CYRILLIC CAPITAL LIGATURE TE TSE (Abkhasian)
+04B5   CYRILLIC SMALL LIGATURE TE TSE (Abkhasian)
        * Abkhasian
+       * this is not a decomposable ligature
 04B6   CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
 04B7   CYRILLIC SMALL LETTER CHE WITH DESCENDER
        * Abkhasian, Tajik
 04B8   CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
 04B9   CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE
-       * Azerbaijan
+       * Azerbaijani
 04BA   CYRILLIC CAPITAL LETTER SHHA
 04BB   CYRILLIC SMALL LETTER SHHA
-       * basically just a Latin "h", but uppercase form 04BA is closer to an inverted che (0427)
-       * Azerbaijan, Bashkir, ...
+       * originally derived from Latin "h", but uppercase form 04BA is closer to an inverted che (0427)
+       * Azerbaijani, Bashkir, ...
        x (latin small letter h - 0068)
 04BC   CYRILLIC CAPITAL LETTER ABKHASIAN CHE
 04BD   CYRILLIC SMALL LETTER ABKHASIAN CHE
-       * Abkhasian
-       * represents a "che"
 04BE   CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER
 04BF   CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER
-       * Abkhasian
        * ogonek form preferred
 04C0   CYRILLIC LETTER PALOCHKA
        * aspiration sign in many Caucasian languages
        * has no "lowercase form", i.e. is case-invariant
+       x (latin capital letter i - 0049)
        x (cyrillic capital letter byelorussian-ukrainian i - 0406)
 04C1   CYRILLIC CAPITAL LETTER ZHE WITH BREVE
-       : 0416 + 0306
+       : 0416 0306
 04C2   CYRILLIC SMALL LETTER ZHE WITH BREVE
        * Moldavian
-       : 0436 + 0306
+       : 0436 0306
 04C3   CYRILLIC CAPITAL LETTER KA WITH HOOK
 04C4   CYRILLIC SMALL LETTER KA WITH HOOK
        * Khanty, Chukchi
-04C5   <reserved>
-       x (cyrillic capital letter ka with descender - 049A)
-04C6   <reserved>
-       x (cyrillic small letter ka with descender - 049B)
 04C7   CYRILLIC CAPITAL LETTER EN WITH HOOK
 04C8   CYRILLIC SMALL LETTER EN WITH HOOK
-       * Khanty, Chukchi
-04C9   <reserved>
-       x (cyrillic capital letter ha with descender - 04B2)
-04CA   <reserved>
-       x (cyrillic small letter ha with descender - 04B3)
+       * Khanty, Chukchi, Nenets
 04CB   CYRILLIC CAPITAL LETTER KHAKASSIAN CHE
 04CC   CYRILLIC SMALL LETTER KHAKASSIAN CHE
-       * Khakassian
-04CD   <reserved>
-04CE   <reserved>
-04CF   <reserved>
 04D0   CYRILLIC CAPITAL LETTER A WITH BREVE
-       : 0410 + 0306
+       : 0410 0306
 04D1   CYRILLIC SMALL LETTER A WITH BREVE
-       : 0430 + 0306
+       : 0430 0306
 04D2   CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-       : 0410 + 0308
+       : 0410 0308
 04D3   CYRILLIC SMALL LETTER A WITH DIAERESIS
-       : 0430 + 0308
+       : 0430 0308
 04D4   CYRILLIC CAPITAL LIGATURE A IE
-       : 00C6
 04D5   CYRILLIC SMALL LIGATURE A IE
-       : 00E6
+       * this is not a decomposable ligature
+       x (latin small letter ae - 00E6)
 04D6   CYRILLIC CAPITAL LETTER IE WITH BREVE
-       : 0415 + 0306
+       : 0415 0306
 04D7   CYRILLIC SMALL LETTER IE WITH BREVE
-       : 0435 + 0306
+       : 0435 0306
 04D8   CYRILLIC CAPITAL LETTER SCHWA
-       : 018F
 04D9   CYRILLIC SMALL LETTER SCHWA
-       : 0259
+       x (latin small letter schwa - 0259)
 04DA   CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-       : 018F + 0308
+       : 04D8 0308
 04DB   CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-       : 0259 + 0308
+       : 04D9 0308
 04DC   CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-       : 0416 + 0308
+       : 0416 0308
 04DD   CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-       : 0436 + 0308
+       : 0436 0308
 04DE   CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-       : 0417 + 0308
+       : 0417 0308
 04DF   CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-       : 0437 + 0308
+       : 0437 0308
 04E0   CYRILLIC CAPITAL LETTER ABKHASIAN DZE
-       : 01B7
 04E1   CYRILLIC SMALL LETTER ABKHASIAN DZE
-       : 0292
+       x (latin small letter ezh - 0292)
 04E2   CYRILLIC CAPITAL LETTER I WITH MACRON
-       : 0418 + 0304
+       : 0418 0304
 04E3   CYRILLIC SMALL LETTER I WITH MACRON
-       : 0438 + 0304
+       : 0438 0304
 04E4   CYRILLIC CAPITAL LETTER I WITH DIAERESIS
-       : 0418 + 0308
+       : 0418 0308
 04E5   CYRILLIC SMALL LETTER I WITH DIAERESIS
-       : 0438 + 0308
+       : 0438 0308
 04E6   CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-       : 041E + 0308
+       : 041E 0308
 04E7   CYRILLIC SMALL LETTER O WITH DIAERESIS
-       : 043E + 0308
+       : 043E 0308
 04E8   CYRILLIC CAPITAL LETTER BARRED O
-       : 019F
 04E9   CYRILLIC SMALL LETTER BARRED O
-       : 0275
+       x (latin small letter barred o - 0275)
 04EA   CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-       : 019F + 0308
+       : 04E8 0308
 04EB   CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-       : 0275 + 0308
-04EC   <reserved>
-04ED   <reserved>
+       : 04E9 0308
+04EC   CYRILLIC CAPITAL LETTER E WITH DIAERESIS
+       : 042D 0308
+04ED   CYRILLIC SMALL LETTER E WITH DIAERESIS
+       * Kildin Sámi
+       : 044D 0308
 04EE   CYRILLIC CAPITAL LETTER U WITH MACRON
-       : 0423 + 0304
+       : 0423 0304
 04EF   CYRILLIC SMALL LETTER U WITH MACRON
-       : 0443 + 0304
+       : 0443 0304
 04F0   CYRILLIC CAPITAL LETTER U WITH DIAERESIS
-       : 0423 + 0308
+       : 0423 0308
 04F1   CYRILLIC SMALL LETTER U WITH DIAERESIS
-       : 0443 + 0308
+       : 0443 0308
 04F2   CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
-       : 0423 + 030B
+       : 0423 030B
 04F3   CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
-       : 0443 + 030B
+       : 0443 030B
 04F4   CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-       : 0427 + 0308
+       : 0427 0308
 04F5   CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-       : 0447 + 0308
-04F6   <reserved>
-04F7   <reserved>
+       : 0447 0308
 04F8   CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-       : 042B + 0308
+       : 042B 0308
 04F9   CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-       : 044B + 0308
-@@     0500    Unassigned      052F
+       : 044B 0308
 @@     0530    Armenian        058F
 @              Uppercase letters
-0530   <reserved>
 0531   ARMENIAN CAPITAL LETTER AYB
 0532   ARMENIAN CAPITAL LETTER BEN
 0533   ARMENIAN CAPITAL LETTER GIM
 0554   ARMENIAN CAPITAL LETTER KEH
 0555   ARMENIAN CAPITAL LETTER OH
 0556   ARMENIAN CAPITAL LETTER FEH
-0557   <reserved>
-0558   <reserved>
 @              Modifier letters
 0559   ARMENIAN MODIFIER LETTER LEFT HALF RING
        x (modifier letter reversed comma - 02BD)
 055C   ARMENIAN EXCLAMATION MARK
        = batsaganchakan nshan
 055D   ARMENIAN COMMA
-       = boot
+       = bowt
        x (modifier letter grave accent - 02CB)
 055E   ARMENIAN QUESTION MARK
        = hartsakan nshan
 055F   ARMENIAN ABBREVIATION MARK
        = patiw
 @              Lowercase letters
-0560   <reserved>
 0561   ARMENIAN SMALL LETTER AYB
 0562   ARMENIAN SMALL LETTER BEN
 0563   ARMENIAN SMALL LETTER GIM
 0585   ARMENIAN SMALL LETTER OH
 0586   ARMENIAN SMALL LETTER FEH
 0587   ARMENIAN SMALL LIGATURE ECH YIWN
-       # 0565 + 0582
-0588   <reserved>
+       # 0565 0582
 @              Punctuation
 0589   ARMENIAN FULL STOP
        = vertsaket
        * may also be used for Georgian
        x (colon - 003A)
+058A   ARMENIAN HYPHEN
+       = yentamna
 @@     0590    Hebrew  05FF
 @              Cantillation marks
-0590   <reserved>
 0591   HEBREW ACCENT ETNAHTA
 0592   HEBREW ACCENT SEGOL
 0593   HEBREW ACCENT SHALSHELET
 0594   HEBREW ACCENT ZAQEF QATAN
 0595   HEBREW ACCENT ZAQEF GADOL
-0596   HEBREW ACCENT TIPEHA
+0596   HEBREW ACCENT TIPEHA *
+       = tarha
 0597   HEBREW ACCENT REVIA
-0598   HEBREW ACCENT ZARQA
+0598   HEBREW ACCENT ZARQA *
+       = zinorit
 0599   HEBREW ACCENT PASHTA
 059A   HEBREW ACCENT YETIV
 059B   HEBREW ACCENT TEVIR
 059F   HEBREW ACCENT QARNEY PARA
 05A0   HEBREW ACCENT TELISHA GEDOLA
 05A1   HEBREW ACCENT PAZER
-05A2   <reserved>
 05A3   HEBREW ACCENT MUNAH
 05A4   HEBREW ACCENT MAHAPAKH
-05A5   HEBREW ACCENT MERKHA
+05A5   HEBREW ACCENT MERKHA *
+       = yored
 05A6   HEBREW ACCENT MERKHA KEFULA
 05A7   HEBREW ACCENT DARGA
-05A8   HEBREW ACCENT QADMA
+05A8   HEBREW ACCENT QADMA *
+       = azla
 05A9   HEBREW ACCENT TELISHA QETANA
-05AA   HEBREW ACCENT YERAH BEN YOMO
+05AA   HEBREW ACCENT YERAH BEN YOMO *
+       = galgal
 05AB   HEBREW ACCENT OLE
 05AC   HEBREW ACCENT ILUY
 05AD   HEBREW ACCENT DEHI
 05B5   HEBREW POINT TSERE
 05B6   HEBREW POINT SEGOL
 05B7   HEBREW POINT PATAH
-       * furtive Patah is not a distinct character
+       * furtive patah is not a distinct character
 05B8   HEBREW POINT QAMATS
 05B9   HEBREW POINT HOLAM
-05BA   <reserved>
 05BB   HEBREW POINT QUBUTS
-05BC   HEBREW POINT DAGESH OR MAPIQ
+05BC   HEBREW POINT DAGESH OR MAPIQ (or shuruq)
        = shuruq
        * falls within the base letter
-05BD   HEBREW POINT METEG
+05BD   HEBREW POINT METEG *
        = siluq
+       * may be used as a Hebrew accent sof pasuq
 05BE   HEBREW PUNCTUATION MAQAF
 05BF   HEBREW POINT RAFE
-05C0   HEBREW PUNCTUATION PASEQ
+05C0   HEBREW PUNCTUATION PASEQ *
        = legarmeh
        * may be treated as spacing punctuation, not as a point
 05C1   HEBREW POINT SHIN DOT
 05C2   HEBREW POINT SIN DOT
-05C3   HEBREW PUNCTUATION SOF PASUQ
+05C3   HEBREW PUNCTUATION SOF PASUQ *
+       * may be used as a Hebrew punctuation colon
 05C4   HEBREW MARK UPPER DOT
-05C5   <reserved>
-05C6   <reserved>
-05C7   <reserved>
-05C8   <reserved>
-05C9   <reserved>
-05CA   <reserved>
-05CB   <reserved>
-05CC   <reserved>
-05CD   <reserved>
-05CE   <reserved>
-05CF   <reserved>
 @              Based on ISO 8859-8
 05D0   HEBREW LETTER ALEF
        = aleph
 05E8   HEBREW LETTER RESH
 05E9   HEBREW LETTER SHIN
 05EA   HEBREW LETTER TAV
-05EB   <reserved>
-05EC   <reserved>
-05ED   <reserved>
-05EE   <reserved>
-05EF   <reserved>
 @              Yiddish digraphs
 05F0   HEBREW LIGATURE YIDDISH DOUBLE VAV
        = tsvey vovn
 @              Additional punctuation
 05F3   HEBREW PUNCTUATION GERESH
 05F4   HEBREW PUNCTUATION GERSHAYIM
-05F5   <reserved>
-       x (hebrew point judeo-spanish varika - FB1E)
 @@     0600    Arabic  06FF
 @              Based on ISO 8859-6
-0600   <reserved>
-       x (no-break space - 00A0)
-0601   <reserved>
-0602   <reserved>
-0603   <reserved>
-0604   <reserved>
-       x (currency sign - 00A4)
-0605   <reserved>
-0606   <reserved>
-0607   <reserved>
-0608   <reserved>
-0609   <reserved>
-060A   <reserved>
-060B   <reserved>
 060C   ARABIC COMMA
+       * also used with Thaana and Syriac in modern text
        x (comma - 002C)
-060D   <reserved>
-       x (soft hyphen - 00AD)
-060E   <reserved>
-060F   <reserved>
-0610   <reserved>
-0611   <reserved>
-0612   <reserved>
-0613   <reserved>
-0614   <reserved>
-0615   <reserved>
-0616   <reserved>
-0617   <reserved>
-0618   <reserved>
-0619   <reserved>
-061A   <reserved>
 061B   ARABIC SEMICOLON
+       * also used with Thaana and Syriac in modern text
        x (semicolon - 003B)
-061C   <reserved>
-061D   <reserved>
-061E   <reserved>
 061F   ARABIC QUESTION MARK
+       * also used with Thaana and Syriac in modern text
        x (question mark - 003F)
-0620   <reserved>
 0621   ARABIC LETTER HAMZA
        x (modifier letter right half ring - 02BE)
 0622   ARABIC LETTER ALEF WITH MADDA ABOVE
+       : 0627 0653
 0623   ARABIC LETTER ALEF WITH HAMZA ABOVE
+       : 0627 0654
 0624   ARABIC LETTER WAW WITH HAMZA ABOVE
+       : 0648 0654
 0625   ARABIC LETTER ALEF WITH HAMZA BELOW
+       : 0627 0655
 0626   ARABIC LETTER YEH WITH HAMZA ABOVE
+       : 064A 0654
 0627   ARABIC LETTER ALEF
 0628   ARABIC LETTER BEH
 0629   ARABIC LETTER TEH MARBUTA
        x (latin small letter ezh reversed - 01B9)
        x (modifier letter left half ring - 02BF)
 063A   ARABIC LETTER GHAIN
-063B   <reserved>
-063C   <reserved>
-063D   <reserved>
-063E   <reserved>
-063F   <reserved>
 0640   ARABIC TATWEEL
        = kashida
        * inserted to stretch characters
+       * also used with Syriac
 0641   ARABIC LETTER FEH
 0642   ARABIC LETTER QAF
 0643   ARABIC LETTER KAF
 0647   ARABIC LETTER HEH
 0648   ARABIC LETTER WAW
 0649   ARABIC LETTER ALEF MAKSURA
+       * represents YEH-shaped letter with no dots in any positional form
 064A   ARABIC LETTER YEH
 @              Points from ISO 8859-6
 064B   ARABIC FATHATAN
 0650   ARABIC KASRA
 0651   ARABIC SHADDA
 0652   ARABIC SUKUN
-0653   <reserved>
-0654   <reserved>
-0655   <reserved>
-0656   <reserved>
-0657   <reserved>
-0658   <reserved>
-0659   <reserved>
-065A   <reserved>
-065B   <reserved>
-065C   <reserved>
-065D   <reserved>
-065E   <reserved>
-065F   <reserved>
+@              Combining maddah and hamza
+0653   ARABIC MADDAH ABOVE
+0654   ARABIC HAMZA ABOVE
+0655   ARABIC HAMZA BELOW
 @              Arabic-Indic digits
 0660   ARABIC-INDIC DIGIT ZERO
 0661   ARABIC-INDIC DIGIT ONE
 0667   ARABIC-INDIC DIGIT SEVEN
 0668   ARABIC-INDIC DIGIT EIGHT
 0669   ARABIC-INDIC DIGIT NINE
+@              Punctuation
 066A   ARABIC PERCENT SIGN
        x (percent sign - 0025)
 066B   ARABIC DECIMAL SEPARATOR
 066C   ARABIC THOUSANDS SEPARATOR
 066D   ARABIC FIVE POINTED STAR
-066E   <reserved>
-066F   <reserved>
+       x (asterisk - 002A)
 @              Point
 0670   ARABIC LETTER SUPERSCRIPT ALEF
 @              Extended Arabic letters
        * forms digraphs
 0675   ARABIC LETTER HIGH HAMZA ALEF
        * Kazakh
+       # 0627 0674
 0676   ARABIC LETTER HIGH HAMZA WAW
        * Kazakh
+       # 0648 0674
 0677   ARABIC LETTER U WITH HAMZA ABOVE
        * Kazakh
+       # 06C7 0674
 0678   ARABIC LETTER HIGH HAMZA YEH
        * Kazakh
+       # 064A 0674
 0679   ARABIC LETTER TTEH
        * Urdu
 067A   ARABIC LETTER TTEHEH
 06A9   ARABIC LETTER KEHEH
        * Persian, Urdu, ...
 06AA   ARABIC LETTER SWASH KAF
-       * (various)
 06AB   ARABIC LETTER KAF WITH RING
        * Pashto
 06AC   ARABIC LETTER KAF WITH DOT ABOVE
        * Uighur, Kazakh, old Malay, ...
 06AE   ARABIC LETTER KAF WITH THREE DOTS BELOW
        * Berber
-06AF   ARABIC LETTER GAF
+06AF   ARABIC LETTER GAF *
        * Persian, Urdu, ...
 06B0   ARABIC LETTER GAF WITH RING
        * Lahnda
        * Kurdish
 06B7   ARABIC LETTER LAM WITH THREE DOTS ABOVE
        * Kurdish
-06B8   <reserved>
-06B9   <reserved>
+06B8   ARABIC LETTER LAM WITH THREE DOTS BELOW
+06B9   ARABIC LETTER NOON WITH DOT BELOW
 06BA   ARABIC LETTER NOON GHUNNA
        * Urdu
 06BB   ARABIC LETTER RNOON
 06BE   ARABIC LETTER HEH DOACHASHMEE
        * Urdu
        * forms aspirate digraphs
-06BF   <reserved>
+06BF   ARABIC LETTER TCHEH WITH DOT ABOVE
 06C0   ARABIC LETTER HEH WITH YEH ABOVE
-       * Persian
+       = ARABIC LETTER HAMZAH ON HA
+       = izafet
+       * Persian, Urdu
+       * actually a ligature, and not an independent letter
+       : 06D5 0654
 06C1   ARABIC LETTER HEH GOAL
        * Urdu
 06C2   ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
        * Urdu
+       * actually a ligature, and not an independent letter
+       : 06C1 0654
 06C3   ARABIC LETTER TEH MARBUTA GOAL
        * Urdu
 06C4   ARABIC LETTER WAW WITH RING
 06C5   ARABIC LETTER KIRGHIZ OE
        * Kirghiz
 06C6   ARABIC LETTER OE
-       * Uighur, Kurdish, Kazah
+       * Uighur, Kurdish, Kazakh
 06C7   ARABIC LETTER U
        * Kirghiz
 06C8   ARABIC LETTER YU
        * Pashto, Sindhi
 06CE   ARABIC LETTER YEH WITH SMALL V
        * Kurdish
-06CF   <reserved>
-06D0   ARABIC LETTER E
+06CF   ARABIC LETTER WAW WITH DOT ABOVE
+06D0   ARABIC LETTER E *
        * Pashto, Uighur
+       * used as the letter bbeh in Sindhi
 06D1   ARABIC LETTER YEH WITH THREE DOTS BELOW
        * old Malay
 06D2   ARABIC LETTER YEH BARREE
        * Urdu
 06D3   ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
        * Urdu
+       * actually a ligature, and not an independent letter
+       : 06D2 0654
+@              Punctuation
 06D4   ARABIC FULL STOP
        * Urdu
+@              Extended Arabic letter
 06D5   ARABIC LETTER AE
        * Uighur, Kazakh, Kirghiz
+@              Koranic annotation signs
 06D6   ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA
 06D7   ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA
 06D8   ARABIC SMALL HIGH MEEM INITIAL FORM
 06EB   ARABIC EMPTY CENTRE HIGH STOP
 06EC   ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE
 06ED   ARABIC SMALL LOW MEEM
-06EE   <reserved>
-06EF   <reserved>
 @              Eastern Arabic-Indic digits (Persian and Urdu)
 06F0   EXTENDED ARABIC-INDIC DIGIT ZERO
 06F1   EXTENDED ARABIC-INDIC DIGIT ONE
        * Urdu glyph different from Arabic
 06F8   EXTENDED ARABIC-INDIC DIGIT EIGHT
 06F9   EXTENDED ARABIC-INDIC DIGIT NINE
-@@     0700    Unassigned      08FF
+@              Extended Arabic letters
+06FA   ARABIC LETTER SHEEN WITH DOT BELOW
+06FB   ARABIC LETTER DAD WITH DOT BELOW
+06FC   ARABIC LETTER GHAIN WITH DOT BELOW
+@              Signs for Sindhi
+06FD   ARABIC SIGN SINDHI AMPERSAND
+06FE   ARABIC SIGN SINDHI POSTPOSITION MEN
+@@     0700    Syriac  074F
+@              Syriac punctuation and signs
+0700   SYRIAC END OF PARAGRAPH
+       * marks the end of a paragraph
+0701   SYRIAC SUPRALINEAR FULL STOP
+       * marks interrogations, imperatives, and pauses, especially in Biblical texts
+0702   SYRIAC SUBLINEAR FULL STOP
+       * marks subordinate clauses and minor pauses, especially in Biblical texts
+0703   SYRIAC SUPRALINEAR COLON
+       * marks expressions of wonder and has a distinct pausal value in Biblical texts
+0704   SYRIAC SUBLINEAR COLON
+       * used at the end of verses of supplications
+0705   SYRIAC HORIZONTAL COLON
+       * joins two words closely together in a context to which a rising tone is suitable
+0706   SYRIAC COLON SKEWED LEFT
+       * marks a dependent clause
+0707   SYRIAC COLON SKEWED RIGHT
+       * marks the end of a subdivision of the apodosis, or latter part of a Biblical verse
+0708   SYRIAC SUPRALINEAR COLON SKEWED LEFT
+       * marks a minor phrase division
+0709   SYRIAC SUBLINEAR COLON SKEWED RIGHT
+       * marks the end of a real or rhetorical question
+070A   SYRIAC CONTRACTION
+       * a contraction mark, mostly used in East Syriac
+       * placed at the end of an incomplete word
+070B   SYRIAC HARKLEAN OBELUS
+       * marks the beginning of a phrase, word, or morpheme that has a marginal note
+070C   SYRIAC HARKLEAN METOBELUS
+       * marks the end of a section with a marginal note
+070D   SYRIAC HARKLEAN ASTERISCUS
+       * marks the beginning of a phrase, word, or morpheme that has a marginal note
+@              Syriac format control character
+070F   SYRIAC ABBREVIATION MARK
+       * marks the beginning of a Syriac abbreviation
+@              Syriac letters
+0710   SYRIAC LETTER ALAPH
+0711   SYRIAC LETTER SUPERSCRIPT ALAPH
+       * used in East Syriac texts to indicate an etymological Alaph
+0712   SYRIAC LETTER BETH
+0713   SYRIAC LETTER GAMAL
+0714   SYRIAC LETTER GAMAL GARSHUNI
+       * used in Garshuni documents
+0715   SYRIAC LETTER DALATH
+0716   SYRIAC LETTER DOTLESS DALATH RISH
+       * ambiguous form for undifferentiated early dalath/rish
+0717   SYRIAC LETTER HE
+0718   SYRIAC LETTER WAW
+0719   SYRIAC LETTER ZAIN
+071A   SYRIAC LETTER HETH
+071B   SYRIAC LETTER TETH
+071C   SYRIAC LETTER TETH GARSHUNI
+       * used in Garshuni documents
+071D   SYRIAC LETTER YUDH
+071E   SYRIAC LETTER YUDH HE
+       * mostly used in East Syriac texts
+071F   SYRIAC LETTER KAPH
+0720   SYRIAC LETTER LAMADH
+0721   SYRIAC LETTER MIM
+0722   SYRIAC LETTER NUN
+0723   SYRIAC LETTER SEMKATH
+0724   SYRIAC LETTER FINAL SEMKATH
+0725   SYRIAC LETTER E
+0726   SYRIAC LETTER PE
+0727   SYRIAC LETTER REVERSED PE
+       * used in Christian Palestinian Aramaic
+0728   SYRIAC LETTER SADHE
+0729   SYRIAC LETTER QAPH
+072A   SYRIAC LETTER RISH
+072B   SYRIAC LETTER SHIN
+072C   SYRIAC LETTER TAW
+@              Syriac points (vowels)
+0730   SYRIAC PTHAHA ABOVE
+0731   SYRIAC PTHAHA BELOW
+0732   SYRIAC PTHAHA DOTTED
+0733   SYRIAC ZQAPHA ABOVE
+0734   SYRIAC ZQAPHA BELOW
+0735   SYRIAC ZQAPHA DOTTED
+0736   SYRIAC RBASA ABOVE
+0737   SYRIAC RBASA BELOW
+0738   SYRIAC DOTTED ZLAMA HORIZONTAL
+0739   SYRIAC DOTTED ZLAMA ANGULAR
+073A   SYRIAC HBASA ABOVE
+073B   SYRIAC HBASA BELOW
+073C   SYRIAC HBASA-ESASA DOTTED
+073D   SYRIAC ESASA ABOVE
+073E   SYRIAC ESASA BELOW
+073F   SYRIAC RWAHA
+@              Syriac marks
+0740   SYRIAC FEMININE DOT
+       * feminine marker used with the Taw feminine suffix
+0741   SYRIAC QUSHSHAYA
+       * indicates a plosive pronunciation
+0742   SYRIAC RUKKAKHA
+       * indicates an aspirated (spirantized) pronunciation
+0743   SYRIAC TWO VERTICAL DOTS ABOVE
+       * accent mark used in ancient manuscripts
+0744   SYRIAC TWO VERTICAL DOTS BELOW
+       * accent mark used in ancient manuscripts
+0745   SYRIAC THREE DOTS ABOVE
+       * diacritic used in Turoyo for letters not found in Syriac
+0746   SYRIAC THREE DOTS BELOW
+       * diacritic used in Turoyo for letters not found in Syriac
+0747   SYRIAC OBLIQUE LINE ABOVE
+       * indication of a silent letter
+0748   SYRIAC OBLIQUE LINE BELOW
+       * indication of a silent letter
+       * also used to indicate numbers multiplied by a certain constant
+0749   SYRIAC MUSIC
+       * a music mark
+       * also used in the Syrian Orthodox Anaphora book to mark the breaking of the Eucharist bread
+074A   SYRIAC BARREKH
+       * a diacritic cross used in liturgical texts
+@@     0780    Thaana  07BF
+@              Basic consonants
+0780   THAANA LETTER HAA
+0781   THAANA LETTER SHAVIYANI
+0782   THAANA LETTER NOONU
+0783   THAANA LETTER RAA
+0784   THAANA LETTER BAA
+0785   THAANA LETTER LHAVIYANI
+0786   THAANA LETTER KAAFU
+0787   THAANA LETTER ALIFU
+0788   THAANA LETTER VAAVU
+0789   THAANA LETTER MEEMU
+078A   THAANA LETTER FAAFU
+078B   THAANA LETTER DHAALU
+078C   THAANA LETTER THAA
+078D   THAANA LETTER LAAMU
+078E   THAANA LETTER GAAFU
+078F   THAANA LETTER GNAVIYANI
+0790   THAANA LETTER SEENU
+0791   THAANA LETTER DAVIYANI
+0792   THAANA LETTER ZAVIYANI
+0793   THAANA LETTER TAVIYANI
+0794   THAANA LETTER YAA
+0795   THAANA LETTER PAVIYANI
+0796   THAANA LETTER JAVIYANI
+0797   THAANA LETTER CHAVIYANI
+@              Extensions for Arabic
+0798   THAANA LETTER TTAA
+0799   THAANA LETTER HHAA
+079A   THAANA LETTER KHAA
+079B   THAANA LETTER THAALU
+079C   THAANA LETTER ZAA
+079D   THAANA LETTER SHEENU
+079E   THAANA LETTER SAADHU
+079F   THAANA LETTER DAADHU
+07A0   THAANA LETTER TO
+07A1   THAANA LETTER ZO
+07A2   THAANA LETTER AINU
+07A3   THAANA LETTER GHAINU
+07A4   THAANA LETTER QAAFU
+07A5   THAANA LETTER WAAVU
+@              Vowels
+07A6   THAANA ABAFILI
+07A7   THAANA AABAAFILI
+07A8   THAANA IBIFILI
+07A9   THAANA EEBEEFILI
+07AA   THAANA UBUFILI
+07AB   THAANA OOBOOFILI
+07AC   THAANA EBEFILI
+07AD   THAANA EYBEYFILI
+07AE   THAANA OBOFILI
+07AF   THAANA OABOAFILI
+07B0   THAANA SUKUN
 @@     0900    Devanagari      097F
 @              Based on ISCII 1988
 @              Various signs
-0900   <reserved>
 0901   DEVANAGARI SIGN CANDRABINDU
        = anunasika
        x (combining candrabindu - 0310)
 0902   DEVANAGARI SIGN ANUSVARA
        = bindu
 0903   DEVANAGARI SIGN VISARGA
-0904   <reserved>
 @              Independent vowels
 0905   DEVANAGARI LETTER A
 0906   DEVANAGARI LETTER AA
 0927   DEVANAGARI LETTER DHA
 0928   DEVANAGARI LETTER NA
 0929   DEVANAGARI LETTER NNNA
-       * for transcribing Tamil alveolar n
-       : 0928 + 093C
+       * for transcribing Dravidian alveolar n
+       : 0928 093C
 092A   DEVANAGARI LETTER PA
 092B   DEVANAGARI LETTER PHA
 092C   DEVANAGARI LETTER BA
 092F   DEVANAGARI LETTER YA
 0930   DEVANAGARI LETTER RA
 0931   DEVANAGARI LETTER RRA
-       * for transcribing Tamil alveolar r
-       : 0930 + 093C
+       * for transcribing Dravidian alveolar r
+       * half form is represented as "Eyelash RA"
+       : 0930 093C
 0932   DEVANAGARI LETTER LA
 0933   DEVANAGARI LETTER LLA
 0934   DEVANAGARI LETTER LLLA
-       * for transcribing Tamil l
-       : 0933 + 093C
+       * for transcribing Dravidian l
+       : 0933 093C
 0935   DEVANAGARI LETTER VA
 0936   DEVANAGARI LETTER SHA
 0937   DEVANAGARI LETTER SSA
 0938   DEVANAGARI LETTER SA
 0939   DEVANAGARI LETTER HA
 @              Various signs
-093A   <reserved>
-093B   <reserved>
 093C   DEVANAGARI SIGN NUKTA
        * for extending the alphabet to new letters
 093D   DEVANAGARI SIGN AVAGRAHA
-@              Dependent vowel signs
 093E   DEVANAGARI VOWEL SIGN AA
+@              Dependent vowel signs
 093F   DEVANAGARI VOWEL SIGN I
        * stands to the left of the consonant
 0940   DEVANAGARI VOWEL SIGN II
 094D   DEVANAGARI SIGN VIRAMA
        = halant
        * suppresses inherent vowel
-094E   <reserved>
-094F   <reserved>
 0950   DEVANAGARI OM
 0951   DEVANAGARI STRESS SIGN UDATTA
 0952   DEVANAGARI STRESS SIGN ANUDATTA
 0953   DEVANAGARI GRAVE ACCENT
 0954   DEVANAGARI ACUTE ACCENT
-0955   <reserved>
-0956   <reserved>
-0957   <reserved>
 @              Additional consonants
 0958   DEVANAGARI LETTER QA
-       : 0915 + 093C
+       : 0915 093C
 0959   DEVANAGARI LETTER KHHA
-       : 0916 + 093C
+       : 0916 093C
 095A   DEVANAGARI LETTER GHHA
-       : 0917 + 093C
+       : 0917 093C
 095B   DEVANAGARI LETTER ZA
-       : 091C + 093C
+       : 091C 093C
 095C   DEVANAGARI LETTER DDDHA
-       : 0921 + 093C
+       : 0921 093C
 095D   DEVANAGARI LETTER RHA
-       : 0922 + 093C
+       : 0922 093C
 095E   DEVANAGARI LETTER FA
-       : 092B + 093C
+       : 092B 093C
 095F   DEVANAGARI LETTER YYA
-       : 092F + 093C
+       : 092F 093C
 @              Generic additions
 0960   DEVANAGARI LETTER VOCALIC RR
 0961   DEVANAGARI LETTER VOCALIC LL
 0964   DEVANAGARI DANDA
        = phrase separator
 0965   DEVANAGARI DOUBLE DANDA
+@              Digits
 0966   DEVANAGARI DIGIT ZERO
 0967   DEVANAGARI DIGIT ONE
 0968   DEVANAGARI DIGIT TWO
 @@     0980    Bengali 09FF
 @              Based on ISCII 1988
 @              Various signs
-0980   <reserved>
 0981   BENGALI SIGN CANDRABINDU
 0982   BENGALI SIGN ANUSVARA
 0983   BENGALI SIGN VISARGA
-0984   <reserved>
 @              Independent vowels
 0985   BENGALI LETTER A
 0986   BENGALI LETTER AA
 098A   BENGALI LETTER UU
 098B   BENGALI LETTER VOCALIC R
 098C   BENGALI LETTER VOCALIC L
-098D   <reserved>
-098E   <reserved>
 098F   BENGALI LETTER E
 0990   BENGALI LETTER AI
-0991   <reserved>
-0992   <reserved>
 0993   BENGALI LETTER O
 0994   BENGALI LETTER AU
 @              Consonants
 09A6   BENGALI LETTER DA
 09A7   BENGALI LETTER DHA
 09A8   BENGALI LETTER NA
-09A9   <reserved>
 09AA   BENGALI LETTER PA
 09AB   BENGALI LETTER PHA
 09AC   BENGALI LETTER BA
 09AE   BENGALI LETTER MA
 09AF   BENGALI LETTER YA
 09B0   BENGALI LETTER RA
-       : 09AC + 09BC
-09B1   <reserved>
 09B2   BENGALI LETTER LA
-09B3   <reserved>
-09B4   <reserved>
-09B5   <reserved>
 09B6   BENGALI LETTER SHA
 09B7   BENGALI LETTER SSA
 09B8   BENGALI LETTER SA
 09B9   BENGALI LETTER HA
 @              Various signs
-09BA   <reserved>
-09BB   <reserved>
 09BC   BENGALI SIGN NUKTA
        * for extending the alphabet to new letters
-09BD   <reserved>
 @              Dependent vowel signs
 09BE   BENGALI VOWEL SIGN AA
 09BF   BENGALI VOWEL SIGN I
 09C2   BENGALI VOWEL SIGN UU
 09C3   BENGALI VOWEL SIGN VOCALIC R
 09C4   BENGALI VOWEL SIGN VOCALIC RR
-09C5   <reserved>
-09C6   <reserved>
 09C7   BENGALI VOWEL SIGN E
        * stands to the left of the consonant
 09C8   BENGALI VOWEL SIGN AI
        * stands to the left of the consonant
-09C9   <reserved>
-09CA   <reserved>
 09CB   BENGALI VOWEL SIGN O
        * pieces on both sides of the consonant
-       : 09C7 + 09BE
+       : 09C7 09BE
 09CC   BENGALI VOWEL SIGN AU
        * pieces on both sides of the consonant
-       : 09C7 + 09D7
+       : 09C7 09D7
 @              Various signs
 09CD   BENGALI SIGN VIRAMA
        = halant
-09CE   <reserved>
-09CF   <reserved>
-09D0   <reserved>
-09D1   <reserved>
-09D2   <reserved>
-09D3   <reserved>
-09D4   <reserved>
-09D5   <reserved>
-09D6   <reserved>
 09D7   BENGALI AU LENGTH MARK
 @              Additional consonants
-09D8   <reserved>
-09D9   <reserved>
-09DA   <reserved>
-09DB   <reserved>
 09DC   BENGALI LETTER RRA
-       : 09A1 + 09BC
+       : 09A1 09BC
 09DD   BENGALI LETTER RHA
-       : 09A2 + 09BC
-09DE   <reserved>
+       : 09A2 09BC
 09DF   BENGALI LETTER YYA
-       : 09AF + 09BC
+       : 09AF 09BC
 @              Generic additions
 09E0   BENGALI LETTER VOCALIC RR
 09E1   BENGALI LETTER VOCALIC LL
 09E2   BENGALI VOWEL SIGN VOCALIC L
 09E3   BENGALI VOWEL SIGN VOCALIC LL
-09E4   <reserved>
-09E5   <reserved>
+@              Digits
 09E6   BENGALI DIGIT ZERO
 09E7   BENGALI DIGIT ONE
 09E8   BENGALI DIGIT TWO
 09EE   BENGALI DIGIT EIGHT
 09EF   BENGALI DIGIT NINE
 @              Bengali-specific additions
-09F0   BENGALI LETTER RA WITH MIDDLE DIAGONAL
+09F0   BENGALI LETTER RA WITH MIDDLE DIAGONAL (Assamese)
        * Assamese
-09F1   BENGALI LETTER RA WITH LOWER DIAGONAL
+09F1   BENGALI LETTER RA WITH LOWER DIAGONAL (Assamese)
        = BENGALI LETTER VA WITH LOWER DIAGONAL
        * Assamese
 09F2   BENGALI RUPEE MARK
 @@     0A00    Gurmukhi        0A7F
 @              Based on ISCII 1988
 @              Various signs
-0A00   <reserved>
-0A01   <reserved>
 0A02   GURMUKHI SIGN BINDI
-0A03   <reserved>
-0A04   <reserved>
 @              Independent vowels
 0A05   GURMUKHI LETTER A
 0A06   GURMUKHI LETTER AA
 0A08   GURMUKHI LETTER II
 0A09   GURMUKHI LETTER U
 0A0A   GURMUKHI LETTER UU
-0A0B   <reserved>
-0A0C   <reserved>
-0A0D   <reserved>
-0A0E   <reserved>
 0A0F   GURMUKHI LETTER EE
 0A10   GURMUKHI LETTER AI
-0A11   <reserved>
-0A12   <reserved>
 0A13   GURMUKHI LETTER OO
 0A14   GURMUKHI LETTER AU
 @              Consonants
 0A26   GURMUKHI LETTER DA
 0A27   GURMUKHI LETTER DHA
 0A28   GURMUKHI LETTER NA
-0A29   <reserved>
 0A2A   GURMUKHI LETTER PA
 0A2B   GURMUKHI LETTER PHA
 0A2C   GURMUKHI LETTER BA
 0A2E   GURMUKHI LETTER MA
 0A2F   GURMUKHI LETTER YA
 0A30   GURMUKHI LETTER RA
-0A31   <reserved>
 0A32   GURMUKHI LETTER LA
 0A33   GURMUKHI LETTER LLA
-0A34   <reserved>
+       : 0A32 0A3C
 0A35   GURMUKHI LETTER VA
 0A36   GURMUKHI LETTER SHA
-0A37   <reserved>
+       : 0A38 0A3C
 0A38   GURMUKHI LETTER SA
 0A39   GURMUKHI LETTER HA
 @              Various signs
-0A3A   <reserved>
-0A3B   <reserved>
 0A3C   GURMUKHI SIGN NUKTA
        * for extending the alphabet to new letters
-0A3D   <reserved>
 @              Dependent vowel signs
 0A3E   GURMUKHI VOWEL SIGN AA
 0A3F   GURMUKHI VOWEL SIGN I
 0A40   GURMUKHI VOWEL SIGN II
 0A41   GURMUKHI VOWEL SIGN U
 0A42   GURMUKHI VOWEL SIGN UU
-0A43   <reserved>
-0A44   <reserved>
-0A45   <reserved>
-0A46   <reserved>
 0A47   GURMUKHI VOWEL SIGN EE
 0A48   GURMUKHI VOWEL SIGN AI
-0A49   <reserved>
-0A4A   <reserved>
 0A4B   GURMUKHI VOWEL SIGN OO
 0A4C   GURMUKHI VOWEL SIGN AU
 0A4D   GURMUKHI SIGN VIRAMA
-0A4E   <reserved>
-0A4F   <reserved>
-0A50   <reserved>
-0A51   <reserved>
-0A52   <reserved>
-0A53   <reserved>
-0A54   <reserved>
-0A55   <reserved>
-0A56   <reserved>
-0A57   <reserved>
 @              Additional consonants
-0A58   <reserved>
 0A59   GURMUKHI LETTER KHHA
-       : 0A16 + 0A3C
+       : 0A16 0A3C
 0A5A   GURMUKHI LETTER GHHA
-       : 0A17 + 0A3C
+       : 0A17 0A3C
 0A5B   GURMUKHI LETTER ZA
-       : 0A1C + 0A3C
+       : 0A1C 0A3C
 0A5C   GURMUKHI LETTER RRA
-       : 0A21 + 0A3C
-0A5D   <reserved>
 0A5E   GURMUKHI LETTER FA
-       : 0A2B + 0A3C
-0A5F   <reserved>
-@              Generic additions
-0A60   <reserved>
-0A61   <reserved>
-0A62   <reserved>
-0A63   <reserved>
-0A64   <reserved>
-0A65   <reserved>
+       : 0A2B 0A3C
+@              Digits
 0A66   GURMUKHI DIGIT ZERO
 0A67   GURMUKHI DIGIT ONE
 0A68   GURMUKHI DIGIT TWO
 @@     0A80    Gujarati        0AFF
 @              Based on ISCII 1988
 @              Various signs
-0A80   <reserved>
 0A81   GUJARATI SIGN CANDRABINDU
 0A82   GUJARATI SIGN ANUSVARA
 0A83   GUJARATI SIGN VISARGA
-0A84   <reserved>
 @              Independent vowels
 0A85   GUJARATI LETTER A
 0A86   GUJARATI LETTER AA
 0A89   GUJARATI LETTER U
 0A8A   GUJARATI LETTER UU
 0A8B   GUJARATI LETTER VOCALIC R
-0A8C   <reserved>
 0A8D   GUJARATI VOWEL CANDRA E
-0A8E   <reserved>
 0A8F   GUJARATI LETTER E
 0A90   GUJARATI LETTER AI
 0A91   GUJARATI VOWEL CANDRA O
-0A92   <reserved>
 0A93   GUJARATI LETTER O
 0A94   GUJARATI LETTER AU
 @              Consonants
 0AA6   GUJARATI LETTER DA
 0AA7   GUJARATI LETTER DHA
 0AA8   GUJARATI LETTER NA
-0AA9   <reserved>
 0AAA   GUJARATI LETTER PA
 0AAB   GUJARATI LETTER PHA
 0AAC   GUJARATI LETTER BA
 0AAE   GUJARATI LETTER MA
 0AAF   GUJARATI LETTER YA
 0AB0   GUJARATI LETTER RA
-0AB1   <reserved>
 0AB2   GUJARATI LETTER LA
 0AB3   GUJARATI LETTER LLA
-0AB4   <reserved>
 0AB5   GUJARATI LETTER VA
 0AB6   GUJARATI LETTER SHA
 0AB7   GUJARATI LETTER SSA
 0AB8   GUJARATI LETTER SA
 0AB9   GUJARATI LETTER HA
 @              Various signs
-0ABA   <reserved>
-0ABB   <reserved>
 0ABC   GUJARATI SIGN NUKTA
        * for extending the alphabet to new letters
 0ABD   GUJARATI SIGN AVAGRAHA
 0AC3   GUJARATI VOWEL SIGN VOCALIC R
 0AC4   GUJARATI VOWEL SIGN VOCALIC RR
 0AC5   GUJARATI VOWEL SIGN CANDRA E
-0AC6   <reserved>
 0AC7   GUJARATI VOWEL SIGN E
 0AC8   GUJARATI VOWEL SIGN AI
 0AC9   GUJARATI VOWEL SIGN CANDRA O
-0ACA   <reserved>
 0ACB   GUJARATI VOWEL SIGN O
 0ACC   GUJARATI VOWEL SIGN AU
 @              Various signs
 0ACD   GUJARATI SIGN VIRAMA
-0ACE   <reserved>
-0ACF   <reserved>
 0AD0   GUJARATI OM
-0AD1   <reserved>
-0AD2   <reserved>
-0AD3   <reserved>
-0AD4   <reserved>
-0AD5   <reserved>
-0AD6   <reserved>
-0AD7   <reserved>
-0AD8   <reserved>
-0AD9   <reserved>
-0ADA   <reserved>
-0ADB   <reserved>
-0ADC   <reserved>
-0ADD   <reserved>
-0ADE   <reserved>
-0ADF   <reserved>
 @              Generic additions
 0AE0   GUJARATI LETTER VOCALIC RR
-0AE1   <reserved>
-0AE2   <reserved>
-0AE3   <reserved>
-0AE4   <reserved>
-0AE5   <reserved>
+@              Digits
 0AE6   GUJARATI DIGIT ZERO
 0AE7   GUJARATI DIGIT ONE
 0AE8   GUJARATI DIGIT TWO
 @@     0B00    Oriya   0B7F
 @              Based on ISCII 1988
 @              Various signs
-0B00   <reserved>
 0B01   ORIYA SIGN CANDRABINDU
 0B02   ORIYA SIGN ANUSVARA
 0B03   ORIYA SIGN VISARGA
-0B04   <reserved>
 @              Independent vowels
 0B05   ORIYA LETTER A
 0B06   ORIYA LETTER AA
 0B0A   ORIYA LETTER UU
 0B0B   ORIYA LETTER VOCALIC R
 0B0C   ORIYA LETTER VOCALIC L
-0B0D   <reserved>
-0B0E   <reserved>
 0B0F   ORIYA LETTER E
 0B10   ORIYA LETTER AI
-0B11   <reserved>
-0B12   <reserved>
 0B13   ORIYA LETTER O
 0B14   ORIYA LETTER AU
 @              Consonants
 0B26   ORIYA LETTER DA
 0B27   ORIYA LETTER DHA
 0B28   ORIYA LETTER NA
-0B29   <reserved>
 0B2A   ORIYA LETTER PA
 0B2B   ORIYA LETTER PHA
 0B2C   ORIYA LETTER BA
 0B2E   ORIYA LETTER MA
 0B2F   ORIYA LETTER YA
 0B30   ORIYA LETTER RA
-0B31   <reserved>
 0B32   ORIYA LETTER LA
 0B33   ORIYA LETTER LLA
-0B34   <reserved>
 0B35   <reserved>
        x (oriya letter ba - 0B2C)
 0B36   ORIYA LETTER SHA
 0B38   ORIYA LETTER SA
 0B39   ORIYA LETTER HA
 @              Various signs
-0B3A   <reserved>
-0B3B   <reserved>
 0B3C   ORIYA SIGN NUKTA
        * for extending the alphabet to new letters
 0B3D   ORIYA SIGN AVAGRAHA
 0B41   ORIYA VOWEL SIGN U
 0B42   ORIYA VOWEL SIGN UU
 0B43   ORIYA VOWEL SIGN VOCALIC R
-0B44   <reserved>
-0B45   <reserved>
-0B46   <reserved>
 0B47   ORIYA VOWEL SIGN E
        * stands to the left of the consonant
 0B48   ORIYA VOWEL SIGN AI
        * pieces left of and above the consonant
-       : 0B47 + 0B56
-0B49   <reserved>
-0B4A   <reserved>
+       : 0B47 0B56
 0B4B   ORIYA VOWEL SIGN O
        * pieces on both sides of the consonant
-       : 0B47 + 0B3E
+       : 0B47 0B3E
 0B4C   ORIYA VOWEL SIGN AU
        * pieces on both sides of the consonant
-       : 0B47 + 0B57
+       : 0B47 0B57
 @              Various signs
 0B4D   ORIYA SIGN VIRAMA
-0B4E   <reserved>
-0B4F   <reserved>
-0B50   <reserved>
-0B51   <reserved>
-0B52   <reserved>
-0B53   <reserved>
-0B54   <reserved>
-0B55   <reserved>
 0B56   ORIYA AI LENGTH MARK
 0B57   ORIYA AU LENGTH MARK
 @              Additional consonants
-0B58   <reserved>
-0B59   <reserved>
-0B5A   <reserved>
-0B5B   <reserved>
 0B5C   ORIYA LETTER RRA
-       : 0B21 + 0B3C
+       : 0B21 0B3C
 0B5D   ORIYA LETTER RHA
-       : 0B22 + 0B3C
-0B5E   <reserved>
+       : 0B22 0B3C
 0B5F   ORIYA LETTER YYA
-       : 0B2F + 0B3C
 @              Generic additions
 0B60   ORIYA LETTER VOCALIC RR
 0B61   ORIYA LETTER VOCALIC LL
-0B62   <reserved>
-0B63   <reserved>
-0B64   <reserved>
-0B65   <reserved>
+@              Digits
 0B66   ORIYA DIGIT ZERO
 0B67   ORIYA DIGIT ONE
 0B68   ORIYA DIGIT TWO
 @@     0B80    Tamil   0BFF
 @              Based on ISCII 1988
 @              Various signs
-0B80   <reserved>
-0B81   <reserved>
 0B82   TAMIL SIGN ANUSVARA
 0B83   TAMIL SIGN VISARGA
-0B84   <reserved>
+       = aytham
 @              Independent vowels
 0B85   TAMIL LETTER A
 0B86   TAMIL LETTER AA
 0B88   TAMIL LETTER II
 0B89   TAMIL LETTER U
 0B8A   TAMIL LETTER UU
-0B8B   <reserved>
-0B8C   <reserved>
-0B8D   <reserved>
 0B8E   TAMIL LETTER E
 0B8F   TAMIL LETTER EE
 0B90   TAMIL LETTER AI
-0B91   <reserved>
 0B92   TAMIL LETTER O
 0B93   TAMIL LETTER OO
 0B94   TAMIL LETTER AU
-       : 0B92 + 0BD7
+       : 0B92 0BD7
 @              Consonants
 0B95   TAMIL LETTER KA
-0B96   <reserved>
-0B97   <reserved>
-0B98   <reserved>
 0B99   TAMIL LETTER NGA
 0B9A   TAMIL LETTER CA
-0B9B   <reserved>
 0B9C   TAMIL LETTER JA
-0B9D   <reserved>
 0B9E   TAMIL LETTER NYA
 0B9F   TAMIL LETTER TTA
-0BA0   <reserved>
-0BA1   <reserved>
-0BA2   <reserved>
 0BA3   TAMIL LETTER NNA
 0BA4   TAMIL LETTER TA
-0BA5   <reserved>
-0BA6   <reserved>
-0BA7   <reserved>
 0BA8   TAMIL LETTER NA
 0BA9   TAMIL LETTER NNNA
 0BAA   TAMIL LETTER PA
-0BAB   <reserved>
-0BAC   <reserved>
-0BAD   <reserved>
 0BAE   TAMIL LETTER MA
 0BAF   TAMIL LETTER YA
 0BB0   TAMIL LETTER RA
 0BB3   TAMIL LETTER LLA
 0BB4   TAMIL LETTER LLLA
 0BB5   TAMIL LETTER VA
-0BB6   <reserved>
 0BB7   TAMIL LETTER SSA
 0BB8   TAMIL LETTER SA
 0BB9   TAMIL LETTER HA
-0BBA   <reserved>
-0BBB   <reserved>
-0BBC   <reserved>
-0BBD   <reserved>
 @              Dependent vowel signs
 0BBE   TAMIL VOWEL SIGN AA
 0BBF   TAMIL VOWEL SIGN I
 0BC0   TAMIL VOWEL SIGN II
 0BC1   TAMIL VOWEL SIGN U
 0BC2   TAMIL VOWEL SIGN UU
-0BC3   <reserved>
-0BC4   <reserved>
-0BC5   <reserved>
 0BC6   TAMIL VOWEL SIGN E
        * stands to the left of the consonant
 0BC7   TAMIL VOWEL SIGN EE
        * stands to the left of the consonant
 0BC8   TAMIL VOWEL SIGN AI
        * stands to the left of the consonant
-0BC9   <reserved>
 0BCA   TAMIL VOWEL SIGN O
        * pieces on both sides of the consonant
-       : 0BC6 + 0BBE
+       : 0BC6 0BBE
 0BCB   TAMIL VOWEL SIGN OO
        * pieces on both sides of the consonant
-       : 0BC7 + 0BBE
+       : 0BC7 0BBE
 0BCC   TAMIL VOWEL SIGN AU
        * pieces on both sides of the consonant
-       : 0BC6 + 0BD7
+       : 0BC6 0BD7
 @              Various signs
 0BCD   TAMIL SIGN VIRAMA
-0BCE   <reserved>
-0BCF   <reserved>
-0BD0   <reserved>
-0BD1   <reserved>
-0BD2   <reserved>
-0BD3   <reserved>
-0BD4   <reserved>
-0BD5   <reserved>
-0BD6   <reserved>
 0BD7   TAMIL AU LENGTH MARK
-0BD8   <reserved>
-0BD9   <reserved>
-0BDA   <reserved>
-0BDB   <reserved>
-0BDC   <reserved>
-0BDD   <reserved>
-0BDE   <reserved>
-0BDF   <reserved>
-@              Generic additions
-0BE0   <reserved>
-0BE1   <reserved>
-0BE2   <reserved>
-0BE3   <reserved>
-0BE4   <reserved>
-0BE5   <reserved>
+@              Digits
 0BE6   <reserved>
        x (digit zero - 0030)
 0BE7   TAMIL DIGIT ONE
 @@     0C00    Telugu  0C7F
 @              Based on ISCII 1988
 @              Various signs
-0C00   <reserved>
 0C01   TELUGU SIGN CANDRABINDU
 0C02   TELUGU SIGN ANUSVARA
 0C03   TELUGU SIGN VISARGA
-0C04   <reserved>
 @              Independent vowels
 0C05   TELUGU LETTER A
 0C06   TELUGU LETTER AA
 0C0A   TELUGU LETTER UU
 0C0B   TELUGU LETTER VOCALIC R
 0C0C   TELUGU LETTER VOCALIC L
-0C0D   <reserved>
 0C0E   TELUGU LETTER E
 0C0F   TELUGU LETTER EE
 0C10   TELUGU LETTER AI
-0C11   <reserved>
 0C12   TELUGU LETTER O
 0C13   TELUGU LETTER OO
 0C14   TELUGU LETTER AU
 0C26   TELUGU LETTER DA
 0C27   TELUGU LETTER DHA
 0C28   TELUGU LETTER NA
-0C29   <reserved>
 0C2A   TELUGU LETTER PA
 0C2B   TELUGU LETTER PHA
 0C2C   TELUGU LETTER BA
 0C31   TELUGU LETTER RRA
 0C32   TELUGU LETTER LA
 0C33   TELUGU LETTER LLA
-0C34   <reserved>
 0C35   TELUGU LETTER VA
 0C36   TELUGU LETTER SHA
 0C37   TELUGU LETTER SSA
 0C38   TELUGU LETTER SA
 0C39   TELUGU LETTER HA
-0C3A   <reserved>
-0C3B   <reserved>
-0C3C   <reserved>
-0C3D   <reserved>
 @              Dependent vowel signs
 0C3E   TELUGU VOWEL SIGN AA
 0C3F   TELUGU VOWEL SIGN I
 0C42   TELUGU VOWEL SIGN UU
 0C43   TELUGU VOWEL SIGN VOCALIC R
 0C44   TELUGU VOWEL SIGN VOCALIC RR
-0C45   <reserved>
 0C46   TELUGU VOWEL SIGN E
 0C47   TELUGU VOWEL SIGN EE
 0C48   TELUGU VOWEL SIGN AI
-       : 0C46 + 0C56
-0C49   <reserved>
+       : 0C46 0C56
 0C4A   TELUGU VOWEL SIGN O
 0C4B   TELUGU VOWEL SIGN OO
 0C4C   TELUGU VOWEL SIGN AU
 @              Various signs
 0C4D   TELUGU SIGN VIRAMA
-0C4E   <reserved>
-0C4F   <reserved>
-0C50   <reserved>
-0C51   <reserved>
-0C52   <reserved>
-0C53   <reserved>
-0C54   <reserved>
 0C55   TELUGU LENGTH MARK
 0C56   TELUGU AI LENGTH MARK
-0C57   <reserved>
-0C58   <reserved>
-0C59   <reserved>
-0C5A   <reserved>
-0C5B   <reserved>
-0C5C   <reserved>
-0C5D   <reserved>
-0C5E   <reserved>
-0C5F   <reserved>
 @              Generic additions
 0C60   TELUGU LETTER VOCALIC RR
 0C61   TELUGU LETTER VOCALIC LL
-0C62   <reserved>
-0C63   <reserved>
-0C64   <reserved>
-0C65   <reserved>
+@              Digits
 0C66   TELUGU DIGIT ZERO
 0C67   TELUGU DIGIT ONE
 0C68   TELUGU DIGIT TWO
 @@     0C80    Kannada 0CFF
 @              Based on ISCII 1988
 @              Various signs
-0C80   <reserved>
-0C81   <reserved>
 0C82   KANNADA SIGN ANUSVARA
 0C83   KANNADA SIGN VISARGA
-0C84   <reserved>
 @              Independent vowels
 0C85   KANNADA LETTER A
 0C86   KANNADA LETTER AA
 0C8A   KANNADA LETTER UU
 0C8B   KANNADA LETTER VOCALIC R
 0C8C   KANNADA LETTER VOCALIC L
-0C8D   <reserved>
 0C8E   KANNADA LETTER E
 0C8F   KANNADA LETTER EE
 0C90   KANNADA LETTER AI
-0C91   <reserved>
 0C92   KANNADA LETTER O
 0C93   KANNADA LETTER OO
 0C94   KANNADA LETTER AU
 0CA6   KANNADA LETTER DA
 0CA7   KANNADA LETTER DHA
 0CA8   KANNADA LETTER NA
-0CA9   <reserved>
 0CAA   KANNADA LETTER PA
 0CAB   KANNADA LETTER PHA
 0CAC   KANNADA LETTER BA
 0CB1   KANNADA LETTER RRA
 0CB2   KANNADA LETTER LA
 0CB3   KANNADA LETTER LLA
-0CB4   <reserved>
 0CB5   KANNADA LETTER VA
 0CB6   KANNADA LETTER SHA
 0CB7   KANNADA LETTER SSA
 0CB8   KANNADA LETTER SA
 0CB9   KANNADA LETTER HA
-0CBA   <reserved>
-0CBB   <reserved>
-0CBC   <reserved>
-0CBD   <reserved>
 @              Dependent vowel signs
 0CBE   KANNADA VOWEL SIGN AA
 0CBF   KANNADA VOWEL SIGN I
 0CC0   KANNADA VOWEL SIGN II
-       : 0CBF + 0CD5
+       : 0CBF 0CD5
 0CC1   KANNADA VOWEL SIGN U
 0CC2   KANNADA VOWEL SIGN UU
 0CC3   KANNADA VOWEL SIGN VOCALIC R
 0CC4   KANNADA VOWEL SIGN VOCALIC RR
-0CC5   <reserved>
 0CC6   KANNADA VOWEL SIGN E
 0CC7   KANNADA VOWEL SIGN EE
-       : 0CC6 + 0CD5
+       : 0CC6 0CD5
 0CC8   KANNADA VOWEL SIGN AI
-       : 0CC6 + 0CD6
-0CC9   <reserved>
+       : 0CC6 0CD6
 0CCA   KANNADA VOWEL SIGN O
-       : 0CC6 + 0CC2
+       : 0CC6 0CC2
 0CCB   KANNADA VOWEL SIGN OO
-       : 0CC6 + 0CC2 + 0CD5
+       : 0CCA 0CD5
 0CCC   KANNADA VOWEL SIGN AU
 @              Various signs
 0CCD   KANNADA SIGN VIRAMA
-0CCE   <reserved>
-0CCF   <reserved>
-0CD0   <reserved>
-0CD1   <reserved>
-0CD2   <reserved>
-0CD3   <reserved>
-0CD4   <reserved>
 0CD5   KANNADA LENGTH MARK
 0CD6   KANNADA AI LENGTH MARK
-0CD7   <reserved>
 @              Additional consonants
-0CD8   <reserved>
-0CD9   <reserved>
-0CDA   <reserved>
-0CDB   <reserved>
-0CDC   <reserved>
-0CDD   <reserved>
 0CDE   KANNADA LETTER FA
-0CDF   <reserved>
+       * obsolete historic letter
+       * name is a mistake for LLLA
 @              Generic additions
 0CE0   KANNADA LETTER VOCALIC RR
 0CE1   KANNADA LETTER VOCALIC LL
-0CE2   <reserved>
-0CE3   <reserved>
-0CE4   <reserved>
-0CE5   <reserved>
+@              Digits
 0CE6   KANNADA DIGIT ZERO
 0CE7   KANNADA DIGIT ONE
 0CE8   KANNADA DIGIT TWO
 @@     0D00    Malayalam       0D7F
 @              Based on ISCII 1988
 @              Various signs
-0D00   <reserved>
-0D01   <reserved>
 0D02   MALAYALAM SIGN ANUSVARA
 0D03   MALAYALAM SIGN VISARGA
-0D04   <reserved>
 @              Independent vowels
 0D05   MALAYALAM LETTER A
 0D06   MALAYALAM LETTER AA
 0D0A   MALAYALAM LETTER UU
 0D0B   MALAYALAM LETTER VOCALIC R
 0D0C   MALAYALAM LETTER VOCALIC L
-0D0D   <reserved>
 0D0E   MALAYALAM LETTER E
 0D0F   MALAYALAM LETTER EE
 0D10   MALAYALAM LETTER AI
-0D11   <reserved>
 0D12   MALAYALAM LETTER O
 0D13   MALAYALAM LETTER OO
 0D14   MALAYALAM LETTER AU
 0D26   MALAYALAM LETTER DA
 0D27   MALAYALAM LETTER DHA
 0D28   MALAYALAM LETTER NA
-0D29   <reserved>
 0D2A   MALAYALAM LETTER PA
 0D2B   MALAYALAM LETTER PHA
 0D2C   MALAYALAM LETTER BA
 0D37   MALAYALAM LETTER SSA
 0D38   MALAYALAM LETTER SA
 0D39   MALAYALAM LETTER HA
-0D3A   <reserved>
-0D3B   <reserved>
-0D3C   <reserved>
-0D3D   <reserved>
 @              Dependent vowel signs
 0D3E   MALAYALAM VOWEL SIGN AA
 0D3F   MALAYALAM VOWEL SIGN I
 0D41   MALAYALAM VOWEL SIGN U
 0D42   MALAYALAM VOWEL SIGN UU
 0D43   MALAYALAM VOWEL SIGN VOCALIC R
-0D44   <reserved>
-0D45   <reserved>
 0D46   MALAYALAM VOWEL SIGN E
        * stands to the left of the consonant
 0D47   MALAYALAM VOWEL SIGN EE
 0D49   <reserved>
 0D4A   MALAYALAM VOWEL SIGN O
        * pieces on both sides of the consonant
-       : 0D46 + 0D3E
+       : 0D46 0D3E
 0D4B   MALAYALAM VOWEL SIGN OO
        * pieces on both sides of the consonant
-       : 0D47 + 0D3E
+       : 0D47 0D3E
 0D4C   MALAYALAM VOWEL SIGN AU
        * pieces on both sides of the consonant
-       : 0D46 + 0D57
+       : 0D46 0D57
 @              Various signs
 0D4D   MALAYALAM SIGN VIRAMA
        = vowel half-u
-0D4E   <reserved>
-0D4F   <reserved>
-0D50   <reserved>
-0D51   <reserved>
-0D52   <reserved>
-0D53   <reserved>
-0D54   <reserved>
-0D55   <reserved>
-0D56   <reserved>
 0D57   MALAYALAM AU LENGTH MARK
-0D58   <reserved>
-0D59   <reserved>
-0D5A   <reserved>
-0D5B   <reserved>
-0D5C   <reserved>
-0D5D   <reserved>
-0D5E   <reserved>
-0D5F   <reserved>
 @              Generic additions
 0D60   MALAYALAM LETTER VOCALIC RR
 0D61   MALAYALAM LETTER VOCALIC LL
-0D62   <reserved>
-0D63   <reserved>
-0D64   <reserved>
-0D65   <reserved>
+@              Digits
 0D66   MALAYALAM DIGIT ZERO
 0D67   MALAYALAM DIGIT ONE
 0D68   MALAYALAM DIGIT TWO
 0D6D   MALAYALAM DIGIT SEVEN
 0D6E   MALAYALAM DIGIT EIGHT
 0D6F   MALAYALAM DIGIT NINE
-@@     0D80    Unassigned      0DFF
+@@     0D80    Sinhala 0DFF
+@              Various signs
+0D82   SINHALA SIGN ANUSVARAYA
+       = anusvara
+0D83   SINHALA SIGN VISARGAYA
+       = visarga
+@              Independent vowels
+0D85   SINHALA LETTER AYANNA
+       = sinhala letter a
+0D86   SINHALA LETTER AAYANNA
+       = sinhala letter aa
+0D87   SINHALA LETTER AEYANNA
+       = sinhala letter ae
+0D88   SINHALA LETTER AEEYANNA
+       = sinhala letter aae
+0D89   SINHALA LETTER IYANNA
+       = sinhala letter i
+0D8A   SINHALA LETTER IIYANNA
+       = sinhala letter ii
+0D8B   SINHALA LETTER UYANNA
+       = sinhala letter u
+0D8C   SINHALA LETTER UUYANNA
+       = sinhala letter uu
+0D8D   SINHALA LETTER IRUYANNA
+       = sinhala letter vocalic r
+0D8E   SINHALA LETTER IRUUYANNA
+       = sinhala letter vocalic rr
+0D8F   SINHALA LETTER ILUYANNA
+       = sinhala letter vocalic l
+0D90   SINHALA LETTER ILUUYANNA
+       = sinhala letter vocalic ll
+0D91   SINHALA LETTER EYANNA
+       = sinhala letter e
+0D92   SINHALA LETTER EEYANNA
+       = sinhala letter ee
+0D93   SINHALA LETTER AIYANNA
+       = sinhala letter ai
+0D94   SINHALA LETTER OYANNA
+       = sinhala letter o
+0D95   SINHALA LETTER OOYANNA
+       = sinhala letter oo
+0D96   SINHALA LETTER AUYANNA
+       = sinhala letter au
+@              Consonants
+0D9A   SINHALA LETTER ALPAPRAANA KAYANNA
+       = sinhala letter ka
+0D9B   SINHALA LETTER MAHAAPRAANA KAYANNA
+       = sinhala letter kha
+0D9C   SINHALA LETTER ALPAPRAANA GAYANNA
+       = sinhala letter ga
+0D9D   SINHALA LETTER MAHAAPRAANA GAYANNA
+       = sinhala letter gha
+0D9E   SINHALA LETTER KANTAJA NAASIKYAYA
+       = sinhala letter nga
+0D9F   SINHALA LETTER SANYAKA GAYANNA
+       = sinhala letter nnga
+0DA0   SINHALA LETTER ALPAPRAANA CAYANNA
+       = sinhala letter ca
+0DA1   SINHALA LETTER MAHAAPRAANA CAYANNA
+       = sinhala letter cha
+0DA2   SINHALA LETTER ALPAPRAANA JAYANNA
+       = sinhala letter ja
+0DA3   SINHALA LETTER MAHAAPRAANA JAYANNA
+       = sinhala letter jha
+0DA4   SINHALA LETTER TAALUJA NAASIKYAYA
+       = sinhala letter nya
+0DA5   SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA
+       = sinhala letter jnya
+0DA6   SINHALA LETTER SANYAKA JAYANNA
+       = sinhala letter nyja
+0DA7   SINHALA LETTER ALPAPRAANA TTAYANNA
+       = sinhala letter tta
+0DA8   SINHALA LETTER MAHAAPRAANA TTAYANNA
+       = sinhala letter ttha
+0DA9   SINHALA LETTER ALPAPRAANA DDAYANNA
+       = sinhala letter dda
+0DAA   SINHALA LETTER MAHAAPRAANA DDAYANNA
+       = sinhala letter ddha
+0DAB   SINHALA LETTER MUURDHAJA NAYANNA
+       = sinhala letter nna
+0DAC   SINHALA LETTER SANYAKA DDAYANNA
+       = sinhala letter nndda
+0DAD   SINHALA LETTER ALPAPRAANA TAYANNA
+       = sinhala letter ta
+0DAE   SINHALA LETTER MAHAAPRAANA TAYANNA
+       = sinhala letter tha
+0DAF   SINHALA LETTER ALPAPRAANA DAYANNA
+       = sinhala letter da
+0DB0   SINHALA LETTER MAHAAPRAANA DAYANNA
+       = sinhala letter dha
+0DB1   SINHALA LETTER DANTAJA NAYANNA
+       = sinhala letter na
+0DB3   SINHALA LETTER SANYAKA DAYANNA
+       = sinhala letter nda
+0DB4   SINHALA LETTER ALPAPRAANA PAYANNA
+       = sinhala letter pa
+0DB5   SINHALA LETTER MAHAAPRAANA PAYANNA
+       = sinhala letter pha
+0DB6   SINHALA LETTER ALPAPRAANA BAYANNA
+       = sinhala letter ba
+0DB7   SINHALA LETTER MAHAAPRAANA BAYANNA
+       = sinhala letter bha
+0DB8   SINHALA LETTER MAYANNA
+       = sinhala letter ma
+0DB9   SINHALA LETTER AMBA BAYANNA
+       = sinhala letter mba
+0DBA   SINHALA LETTER YAYANNA
+       = sinhala letter ya
+0DBB   SINHALA LETTER RAYANNA
+       = sinhala letter ra
+0DBD   SINHALA LETTER DANTAJA LAYANNA
+       = sinhala letter la
+       * dental
+0DC0   SINHALA LETTER VAYANNA
+       = sinhala letter va
+0DC1   SINHALA LETTER TAALUJA SAYANNA
+       = sinhala letter sha
+0DC2   SINHALA LETTER MUURDHAJA SAYANNA
+       = sinhala letter ssa
+       * retroflex
+0DC3   SINHALA LETTER DANTAJA SAYANNA
+       = sinhala letter sa
+       * dental
+0DC4   SINHALA LETTER HAYANNA
+       = sinhala letter ha
+0DC5   SINHALA LETTER MUURDHAJA LAYANNA
+       = sinhala letter lla
+       * retroflex
+0DC6   SINHALA LETTER FAYANNA
+       = sinhala letter fa
+@              Sign
+0DCA   SINHALA SIGN AL-LAKUNA
+       = virama
+@              Dependent vowel signs
+0DCF   SINHALA VOWEL SIGN AELA-PILLA
+       = sinhala vowel sign aa
+0DD0   SINHALA VOWEL SIGN KETTI AEDA-PILLA
+       = sinhala vowel sign ae
+0DD1   SINHALA VOWEL SIGN DIGA AEDA-PILLA
+       = sinhala vowel sign aae
+0DD2   SINHALA VOWEL SIGN KETTI IS-PILLA
+       = sinhala vowel sign i
+0DD3   SINHALA VOWEL SIGN DIGA IS-PILLA
+       = sinhala vowel sign ii
+0DD4   SINHALA VOWEL SIGN KETTI PAA-PILLA
+       = sinhala vowel sign u
+0DD6   SINHALA VOWEL SIGN DIGA PAA-PILLA
+       = sinhala vowel sign uu
+0DD8   SINHALA VOWEL SIGN GAETTA-PILLA
+       = sinhala vowel sign vocalic r
+0DD9   SINHALA VOWEL SIGN KOMBUVA
+       = sinhala vowel sign e
+0DDA   SINHALA VOWEL SIGN DIGA KOMBUVA
+       = sinhala vowel sign ee
+       : 0DD9 0DCA
+0DDB   SINHALA VOWEL SIGN KOMBU DEKA
+       = sinhala vowel sign ai
+0DDC   SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA
+       = sinhala vowel sign o
+       : 0DD9 0DCF
+0DDD   SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA
+       = sinhala vowel sign oo
+       : 0DDC 0DCA
+0DDE   SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
+       = sinhala vowel sign au
+       : 0DD9 0DDF
+0DDF   SINHALA VOWEL SIGN GAYANUKITTA
+       = sinhala vowel sign vocalic l
+@              Additional dependent vowel signs
+0DF2   SINHALA VOWEL SIGN DIGA GAETTA-PILLA
+       = sinhala vowel sign vocalic rr
+0DF3   SINHALA VOWEL SIGN DIGA GAYANUKITTA
+       = sinhala vowel sign vocalic ll
+@              Punctuation
+0DF4   SINHALA PUNCTUATION KUNDDALIYA
 @@     0E00    Thai    0E7F
-@              Based on TIS 620-2529
+@              Based on TIS 620-2533
 @              Consonants
-0E00   <reserved>
 0E01   THAI CHARACTER KO KAI
 0E02   THAI CHARACTER KHO KHAI
 0E03   THAI CHARACTER KHO KHUAT
 0E22   THAI CHARACTER YO YAK
 0E23   THAI CHARACTER RO RUA
 0E24   THAI CHARACTER RU
-       * independent vowel letter used to write Pali
+       * independent vowel letter used to write Sanskrit
 0E25   THAI CHARACTER LO LING
 0E26   THAI CHARACTER LU
-       * independent vowel letter used to write Pali
+       * independent vowel letter used to write Sanskrit
 0E27   THAI CHARACTER WO WAEN
 0E28   THAI CHARACTER SO SALA
 0E29   THAI CHARACTER SO RUSI
 0E2D   THAI CHARACTER O ANG
 0E2E   THAI CHARACTER HO NOKHUK
 @              Sign
-0E2F   THAI CHARACTER PAIYANNOI
+0E2F   THAI CHARACTER PAIYANNOI (paiyan noi)
        * ellipsis, abbreviation
 @              Vowels
 0E30   THAI CHARACTER SARA A
 0E31   THAI CHARACTER MAI HAN-AKAT
 0E32   THAI CHARACTER SARA AA
 0E33   THAI CHARACTER SARA AM
-       : 0E4D + 0E32
+       # 0E4D 0E32
 0E34   THAI CHARACTER SARA I
 0E35   THAI CHARACTER SARA II
 0E36   THAI CHARACTER SARA UE
-0E37   THAI CHARACTER SARA UEE
+0E37   THAI CHARACTER SARA UEE (sara uue)
+       = sara uue
 0E38   THAI CHARACTER SARA U
 0E39   THAI CHARACTER SARA UU
 0E3A   THAI CHARACTER PHINTHU
        * Pali virama
-0E3B   <reserved>
-0E3C   <reserved>
-0E3D   <reserved>
-0E3E   <reserved>
 @              Currency symbol
 0E3F   THAI CURRENCY SYMBOL BAHT
 @              Vowels
 0E40   THAI CHARACTER SARA E
 0E41   THAI CHARACTER SARA AE
 0E42   THAI CHARACTER SARA O
-0E43   THAI CHARACTER SARA AI MAIMUAN
-0E44   THAI CHARACTER SARA AI MAIMALAI
+0E43   THAI CHARACTER SARA AI MAIMUAN (sara ai mai muan)
+0E44   THAI CHARACTER SARA AI MAIMALAI (sara ai mai malai)
 @              Signs
-0E45   THAI CHARACTER LAKKHANGYAO
-0E46   THAI CHARACTER MAIYAMOK
+0E45   THAI CHARACTER LAKKHANGYAO (lakkhang yao)
+0E46   THAI CHARACTER MAIYAMOK (mai yamok)
        * repetition
 @              Vowel
-0E47   THAI CHARACTER MAITAIKHU
+0E47   THAI CHARACTER MAITAIKHU (mai taikhu)
 @              Tone marks
 0E48   THAI CHARACTER MAI EK
 0E49   THAI CHARACTER MAI THO
 @              Signs
 0E4C   THAI CHARACTER THANTHAKHAT
        * cancellation mark
-0E4D   THAI CHARACTER NIKHAHIT
+0E4D   THAI CHARACTER NIKHAHIT (nikkhahit)
+       = nikkhahit
        * final nasal
 0E4E   THAI CHARACTER YAMAKKAN
 0E4F   THAI CHARACTER FONGMAN
+       * used as a bullet
+       x (khmer sign phnaek muan - 17D9)
 @              Digits
 0E50   THAI DIGIT ZERO
 0E51   THAI DIGIT ONE
 0E59   THAI DIGIT NINE
 @              Signs
 0E5A   THAI CHARACTER ANGKHANKHU
+       * used to mark end of long sections
+       * used in combination with 0E30 to mark end of a verse
 0E5B   THAI CHARACTER KHOMUT
+       * used to mark end of chapter or document
+       x (khmer sign koomuut - 17DA)
 @@     0E80    Lao     0EFF
 @              Based on TIS 620-2529
 @              Consonants
-0E80   <reserved>
 0E81   LAO LETTER KO
 0E82   LAO LETTER KHO SUNG
-0E83   <reserved>
 0E84   LAO LETTER KHO TAM
-0E85   <reserved>
-0E86   <reserved>
 0E87   LAO LETTER NGO
 0E88   LAO LETTER CO
-0E89   <reserved>
 0E8A   LAO LETTER SO TAM
-0E8B   <reserved>
-0E8C   <reserved>
 0E8D   LAO LETTER NYO
-0E8E   <reserved>
-0E8F   <reserved>
-0E90   <reserved>
-0E91   <reserved>
-0E92   <reserved>
-0E93   <reserved>
 0E94   LAO LETTER DO
 0E95   LAO LETTER TO
 0E96   LAO LETTER THO SUNG
 0E97   LAO LETTER THO TAM
-0E98   <reserved>
 0E99   LAO LETTER NO
 0E9A   LAO LETTER BO
 0E9B   LAO LETTER PO
 0E9D   LAO LETTER FO TAM
 0E9E   LAO LETTER PHO TAM
 0E9F   LAO LETTER FO SUNG
-0EA0   <reserved>
 0EA1   LAO LETTER MO
 0EA2   LAO LETTER YO
 0EA3   LAO LETTER LO LING
-0EA4   <reserved>
 0EA5   LAO LETTER LO LOOT
-0EA6   <reserved>
 0EA7   LAO LETTER WO
-0EA8   <reserved>
-0EA9   <reserved>
 0EAA   LAO LETTER SO SUNG
 0EAB   LAO LETTER HO SUNG
-0EAC   <reserved>
 0EAD   LAO LETTER O
 0EAE   LAO LETTER HO TAM
 @              Sign
        * vowel shortener
 0EB2   LAO VOWEL SIGN AA
 0EB3   LAO VOWEL SIGN AM
-       : 0ECD + 0EB2
+       # 0ECD 0EB2
 0EB4   LAO VOWEL SIGN I
 0EB5   LAO VOWEL SIGN II
 0EB6   LAO VOWEL SIGN Y
 0EB7   LAO VOWEL SIGN YY
 0EB8   LAO VOWEL SIGN U
 0EB9   LAO VOWEL SIGN UU
-0EBA   <reserved>
-@              Vowel
 0EBB   LAO VOWEL SIGN MAI KON
 @              Signs
 0EBC   LAO SEMIVOWEL SIGN LO
 0EBD   LAO SEMIVOWEL SIGN NYO
-0EBE   <reserved>
-0EBF   <reserved>
 @              Vowels
 0EC0   LAO VOWEL SIGN E
 0EC1   LAO VOWEL SIGN EI
 0EC2   LAO VOWEL SIGN O
 0EC3   LAO VOWEL SIGN AY
 0EC4   LAO VOWEL SIGN AI
-0EC5   <reserved>
 @              Sign
 0EC6   LAO KO LA
        * repetition
-0EC7   <reserved>
 @              Tone marks
 0EC8   LAO TONE MAI EK
 0EC9   LAO TONE MAI THO
 0ECC   LAO CANCELLATION MARK
 0ECD   LAO NIGGAHITA
        * final nasal
-0ECE   <reserved>
-0ECF   <reserved>
 @              Digits
 0ED0   LAO DIGIT ZERO
 0ED1   LAO DIGIT ONE
 0ED7   LAO DIGIT SEVEN
 0ED8   LAO DIGIT EIGHT
 0ED9   LAO DIGIT NINE
-0EDA   <reserved>
-0EDB   <reserved>
 @              Digraphs
 0EDC   LAO HO NO
-       # 0EAB + 0E99
+       # 0EAB 0E99
 0EDD   LAO HO MO
-       # 0EAB + 0EA1
-@@     0F00    Tibetan 0FBF
-@              Syllables
+       # 0EAB 0EA1
+@@     0F00    Tibetan 0FFF
+@              Syllable
 0F00   TIBETAN SYLLABLE OM
-0F01   TIBETAN MARK GTER YIG MGO TRUNCATED A
-       = ter yik go a thung
-0F02   TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA
-       = ter yik go wum nam chey ma
-0F03   TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA
-       = ter yik go wum ter tsek ma
+@              Head marks
+0F01   TIBETAN MARK GTER YIG MGO TRUNCATED A (ter yik go a thung)
+0F02   TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA (ter yik go wum nam chey ma)
+0F03   TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA (ter yik go wum ter tsek ma)
+0F04   TIBETAN MARK INITIAL YIG MGO MDUN MA (yik go dun ma)
+       * honorific; marks beginning of text or start of new folio
+       x (mongolian birga - 1800)
+0F05   TIBETAN MARK CLOSING YIG MGO SGAB MA (yik go kab ma)
+       * follows and ligates with initial yig-mgo
+0F06   TIBETAN MARK CARET YIG MGO PHUR SHAD MA (yik go pur shey ma)
+0F07   TIBETAN MARK YIG MGO TSHEG SHAD MA (yik go tsek shey ma)
 @              Marks and signs
-0F04   TIBETAN MARK INITIAL YIG MGO MDUN MA
-       = yik go dun ma
-0F05   TIBETAN MARK CLOSING YIG MGO SGAB MA
-       = yik go kab ma
-0F06   TIBETAN MARK CARET YIG MGO PHUR SHAD MA
-       = yik go pur shey ma
-0F07   TIBETAN MARK YIG MGO TSHEG SHAD MA
-       = yik go tsek shey ma
-0F08   TIBETAN MARK SBRUL SHAD
-       = drul shey
-0F09   TIBETAN MARK BSKUR YIG MGO
-       = kur yik go
-0F0A   TIBETAN MARK BKA- SHOG YIG MGO
-       = ka sho yik go
-0F0B   TIBETAN MARK INTERSYLLABIC TSHEG
-       = tsek
-0F0C   TIBETAN MARK DELIMITER TSHEG BSTAR
-       = tsek tar
-0F0D   TIBETAN MARK SHAD
-       = shey
-0F0E   TIBETAN MARK NYIS SHAD
-       = nyi shey
-0F0F   TIBETAN MARK TSHEG SHAD
-       = tsek shey
-0F10   TIBETAN MARK NYIS TSHEG SHAD
-       = nyi tsek shey
-0F11   TIBETAN MARK RIN CHEN SPUNGS SHAD
-       = rinchen pung shey
-0F12   TIBETAN MARK RGYA GRAM SHAD
-       = gya tram shey
-0F13   TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN
-       = dzu ta me long chen
-0F14   TIBETAN MARK GTER TSHEG
-       = ter tsek
-0F15   TIBETAN LOGOTYPE SIGN CHAD RTAGS
-       = che ta
-0F16   TIBETAN LOGOTYPE SIGN LHAG RTAGS
-       = hlak ta
-0F17   TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
-       = trachen char ta
-0F18   TIBETAN ASTROLOGICAL SIGN -KHYUD PA
-       = kyu pa
-0F19   TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
-       = dong tsu
-0F1A   TIBETAN SIGN RDEL DKAR GCIG
-       = deka chig
-0F1B   TIBETAN SIGN RDEL DKAR GNYIS
-       = deka nyi
-0F1C   TIBETAN SIGN RDEL DKAR GSUM
-       = deka sum
-0F1D   TIBETAN SIGN RDEL NAG GCIG
-       = dena chig
-0F1E   TIBETAN SIGN RDEL NAG GNYIS
-       = dena nyi
-0F1F   TIBETAN SIGN RDEL DKAR RDEL NAG
-       = deka dena
+0F08   TIBETAN MARK SBRUL SHAD (drul shey)
+       * separates sections of meaning equivalent to topics and sub-topics
+0F09   TIBETAN MARK BSKUR YIG MGO (kur yik go)
+       * list enumerator, used in Bhutan
+0F0A   TIBETAN MARK BKA- SHOG YIG MGO (ka sho yik go)
+       * petition honorific, used in Bhutan
+0F0B   TIBETAN MARK INTERSYLLABIC TSHEG (tsek)
+       * morpheme delimiter (approximate meaning)
+       * the normal tsheg; provides a break opportunity
+       * character name is a misnomer
+0F0C   TIBETAN MARK DELIMITER TSHEG BSTAR (tsek tar)
+       * a non-breaking tsheg; inhibits line breaking
+       * character name is a misnomer
+       # <noBreak> 0F0B
+0F0D   TIBETAN MARK SHAD (shey)
+       * marks end of a section of text (tshig-grub)
+       x (devanagari danda - 0964)
+0F0E   TIBETAN MARK NYIS SHAD (nyi shey)
+       * marks end of a whole topic (don-tshan)
+       x (devanagari double danda - 0965)
+0F0F   TIBETAN MARK TSHEG SHAD (tsek shey)
+0F10   TIBETAN MARK NYIS TSHEG SHAD (nyi tsek shey)
+0F11   TIBETAN MARK RIN CHEN SPUNGS SHAD (rinchen pung shey)
+       * shad which follows a tsheg-bar that starts a new line
+0F12   TIBETAN MARK RGYA GRAM SHAD (gya tram shey)
+0F13   TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN (dzu ta me long chen)
+0F14   TIBETAN MARK GTER TSHEG (ter tsek)
+       * used as a comma-like text delimiter
+       x (khmer sign camnuc pii kuuh - 17D6)
+@              Astrological signs
+0F15   TIBETAN LOGOTYPE SIGN CHAD RTAGS (che ta)
+0F16   TIBETAN LOGOTYPE SIGN LHAG RTAGS (hlak ta)
+0F17   TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS (trachen char ta)
+0F18   TIBETAN ASTROLOGICAL SIGN -KHYUD PA (kyu pa)
+       * combines with digits
+0F19   TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS (dong tsu)
+       * combines with digits
+0F1A   TIBETAN SIGN RDEL DKAR GCIG (deka chig)
+0F1B   TIBETAN SIGN RDEL DKAR GNYIS (deka nyi)
+0F1C   TIBETAN SIGN RDEL DKAR GSUM (deka sum)
+0F1D   TIBETAN SIGN RDEL NAG GCIG (dena chig)
+0F1E   TIBETAN SIGN RDEL NAG GNYIS (dena nyi)
+0F1F   TIBETAN SIGN RDEL DKAR RDEL NAG (deka dena)
 @              Digits
 0F20   TIBETAN DIGIT ZERO
 0F21   TIBETAN DIGIT ONE
 0F27   TIBETAN DIGIT SEVEN
 0F28   TIBETAN DIGIT EIGHT
 0F29   TIBETAN DIGIT NINE
+@              Digits minus half
 0F2A   TIBETAN DIGIT HALF ONE
 0F2B   TIBETAN DIGIT HALF TWO
 0F2C   TIBETAN DIGIT HALF THREE
 0F32   TIBETAN DIGIT HALF NINE
 0F33   TIBETAN DIGIT HALF ZERO
 @              Marks and signs
-0F34   TIBETAN MARK BSDUS RTAGS
-       = du ta
-0F35   TIBETAN MARK NGAS BZUNG NYI ZLA
-       = nge zung nyi da
-0F36   TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
-       = dzu ta shi mig chen
-0F37   TIBETAN MARK NGAS BZUNG SGOR RTAGS
-       = nge zung gor ta
-0F38   TIBETAN MARK CHE MGO
-       = che go
-0F39   TIBETAN MARK TSA -PHRU
-       = tsa tru
-0F3A   TIBETAN MARK GUG RTAGS GYON
-       = gug ta yun
-0F3B   TIBETAN MARK GUG RTAGS GYAS
-       = gug ta ye
-0F3C   TIBETAN MARK ANG KHANG GYON
-       = ang kang yun
-0F3D   TIBETAN MARK ANG KHANG GYAS
-       = ang kang ye
-0F3E   TIBETAN SIGN YAR TSHES
-       = yar tse
-0F3F   TIBETAN SIGN MAR TSHES
-       = mar tse
+0F34   TIBETAN MARK BSDUS RTAGS (du ta)
+       * repetition
+0F35   TIBETAN MARK NGAS BZUNG NYI ZLA (nge zung nyi da)
+       * honorific, emphasis; used like underlining
+0F36   TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN (dzu ta shi mig chen)
+       * marks point of text insertion or annotation
+0F37   TIBETAN MARK NGAS BZUNG SGOR RTAGS (nge zung gor ta)
+       * emphasis; used like underlining
+0F38   TIBETAN MARK CHE MGO (che go)
+0F39   TIBETAN MARK TSA -PHRU (tsa tru)
+       * a lenition mark
+@              Paired punctuation
+0F3A   TIBETAN MARK GUG RTAGS GYON (gug ta yun)
+0F3B   TIBETAN MARK GUG RTAGS GYAS (gug ta ye)
+       * brackets
+0F3C   TIBETAN MARK ANG KHANG GYON (ang kang yun)
+0F3D   TIBETAN MARK ANG KHANG GYAS (ang kang ye)
+       * used for bracketing with a roof over
+@              Astrological signs
+0F3E   TIBETAN SIGN YAR TSHES (yar tse)
+0F3F   TIBETAN SIGN MAR TSHES (mar tse)
+       * marks which combine with digits
 @              Consonants
 0F40   TIBETAN LETTER KA
 0F41   TIBETAN LETTER KHA
 0F42   TIBETAN LETTER GA
 0F43   TIBETAN LETTER GHA
-       : 0F42 + 0FB7
+       : 0F42 0FB7
 0F44   TIBETAN LETTER NGA
 0F45   TIBETAN LETTER CA
 0F46   TIBETAN LETTER CHA
 0F47   TIBETAN LETTER JA
-0F48   <reserved>
 0F49   TIBETAN LETTER NYA
 0F4A   TIBETAN LETTER TTA
 0F4B   TIBETAN LETTER TTHA
 0F4C   TIBETAN LETTER DDA
 0F4D   TIBETAN LETTER DDHA
-       : 0F4C + 0FB7
+       : 0F4C 0FB7
 0F4E   TIBETAN LETTER NNA
 0F4F   TIBETAN LETTER TA
 0F50   TIBETAN LETTER THA
 0F51   TIBETAN LETTER DA
 0F52   TIBETAN LETTER DHA
-       : 0F51 + 0FB7
+       : 0F51 0FB7
 0F53   TIBETAN LETTER NA
 0F54   TIBETAN LETTER PA
 0F55   TIBETAN LETTER PHA
 0F56   TIBETAN LETTER BA
 0F57   TIBETAN LETTER BHA
-       : 0F56 + 0FB7
+       : 0F56 0FB7
 0F58   TIBETAN LETTER MA
 0F59   TIBETAN LETTER TSA
 0F5A   TIBETAN LETTER TSHA
 0F5B   TIBETAN LETTER DZA
 0F5C   TIBETAN LETTER DZHA
-       : 0F5B + 0FB7
+       : 0F5B 0FB7
 0F5D   TIBETAN LETTER WA
 0F5E   TIBETAN LETTER ZHA
 0F5F   TIBETAN LETTER ZA
 0F60   TIBETAN LETTER -A
 0F61   TIBETAN LETTER YA
-0F62   TIBETAN LETTER RA
+0F62   TIBETAN LETTER RA *
+       * when followed by a subjoined letter = ra mgo
 0F63   TIBETAN LETTER LA
 0F64   TIBETAN LETTER SHA
 0F65   TIBETAN LETTER SSA
+       = reversed sha
 0F66   TIBETAN LETTER SA
 0F67   TIBETAN LETTER HA
 0F68   TIBETAN LETTER A
+       * base for dependent vowels
 0F69   TIBETAN LETTER KSSA
-       : 0F40 + 0FB5
-0F6A   <reserved>
-0F6B   <reserved>
-0F6C   <reserved>
-0F6D   <reserved>
-0F6E   <reserved>
-0F6F   <reserved>
+       : 0F40 0FB5
+0F6A   TIBETAN LETTER FIXED-FORM RA *
+       * used only in transliteration and transcription
 @              Dependent vowel signs
-0F70   <reserved>
 0F71   TIBETAN VOWEL SIGN AA
+       = a-chung
+       * common, vowel-lengthening mark
 0F72   TIBETAN VOWEL SIGN I
 0F73   TIBETAN VOWEL SIGN II
-       : 0F71 + 0F72
+       * use of this character is discouraged
+       : 0F71 0F72
 0F74   TIBETAN VOWEL SIGN U
 0F75   TIBETAN VOWEL SIGN UU
-       : 0F74 + 0F71
+       * use of this character is discouraged
+       : 0F71 0F74
 0F76   TIBETAN VOWEL SIGN VOCALIC R
-       : 0FB2 + 0F80
+       : 0FB2 0F80
 0F77   TIBETAN VOWEL SIGN VOCALIC RR
-       : 0F76 + 0F71
+       * use of this character is strongly discouraged
+       # 0FB2 0F81
 0F78   TIBETAN VOWEL SIGN VOCALIC L
-       : 0FB3 + 0F80
+       : 0FB3 0F80
 0F79   TIBETAN VOWEL SIGN VOCALIC LL
-       : 0F78 + 0F71
+       * use of this character is strongly discouraged
+       # 0FB3 0F81
 0F7A   TIBETAN VOWEL SIGN E
 0F7B   TIBETAN VOWEL SIGN EE
 0F7C   TIBETAN VOWEL SIGN O
 0F7D   TIBETAN VOWEL SIGN OO
-@              Various
-0F7E   TIBETAN SIGN RJES SU NGA RO
-       = je su nga ro
+@              Vocalic modification
+0F7E   TIBETAN SIGN RJES SU NGA RO (je su nga ro)
        = anusvara
-0F7F   TIBETAN SIGN RNAM BCAD
-       = nam chey
+0F7F   TIBETAN SIGN RNAM BCAD (nam chey)
        = visarga
+@              Dependent vowel signs
 0F80   TIBETAN VOWEL SIGN REVERSED I
 0F81   TIBETAN VOWEL SIGN REVERSED II
-       : 0F80 + 0F71
+       * use of this character is discouraged
+       : 0F71 0F80
 @              Marks and signs
-0F82   TIBETAN SIGN NYI ZLA NAA DA
-       = nyi da na da
-0F83   TIBETAN SIGN SNA LDAN
-       = nan de
+0F82   TIBETAN SIGN NYI ZLA NAA DA (nyi da na da)
+0F83   TIBETAN SIGN SNA LDAN (nan de)
+       x (devanagari sign candrabindu - 0901)
 0F84   TIBETAN MARK HALANTA
+       = srog med
+       x (devanagari sign virama - 094D)
 0F85   TIBETAN MARK PALUTA
-0F86   TIBETAN SIGN LCI RTAGS
-       = ji ta
-0F87   TIBETAN SIGN YANG RTAGS
-       = yang ta
-0F88   TIBETAN SIGN LCE TSA CAN
-       = che tsa chen
-0F89   TIBETAN SIGN MCHU CAN
-       = chu chen
-0F8A   TIBETAN SIGN GRU CAN RGYINGS
-       = tru chen ging
-0F8B   TIBETAN SIGN GRU MED RGYINGS
-       = tru me ging
-0F8C   <reserved>
-0F8D   <reserved>
-0F8E   <reserved>
-0F8F   <reserved>
+0F86   TIBETAN SIGN LCI RTAGS (ji ta)
+0F87   TIBETAN SIGN YANG RTAGS (yang ta)
+@              Transliteration head letters
+0F88   TIBETAN SIGN LCE TSA CAN (che tsa chen)
+0F89   TIBETAN SIGN MCHU CAN (chu chen)
+0F8A   TIBETAN SIGN GRU CAN RGYINGS (tru chen ging)
+       * always followed by 0F82
+0F8B   TIBETAN SIGN GRU MED RGYINGS (tru me ging)
 @              Subjoined consonants
 0F90   TIBETAN SUBJOINED LETTER KA
 0F91   TIBETAN SUBJOINED LETTER KHA
 0F92   TIBETAN SUBJOINED LETTER GA
 0F93   TIBETAN SUBJOINED LETTER GHA
-       : 0F92 + 0FB7
+       : 0F92 0FB7
 0F94   TIBETAN SUBJOINED LETTER NGA
 0F95   TIBETAN SUBJOINED LETTER CA
-0F96   <reserved>
+0F96   TIBETAN SUBJOINED LETTER CHA
 0F97   TIBETAN SUBJOINED LETTER JA
-0F98   <reserved>
 0F99   TIBETAN SUBJOINED LETTER NYA
 0F9A   TIBETAN SUBJOINED LETTER TTA
 0F9B   TIBETAN SUBJOINED LETTER TTHA
 0F9C   TIBETAN SUBJOINED LETTER DDA
 0F9D   TIBETAN SUBJOINED LETTER DDHA
-       : 0F9C + 0FB7
+       : 0F9C 0FB7
 0F9E   TIBETAN SUBJOINED LETTER NNA
 0F9F   TIBETAN SUBJOINED LETTER TA
 0FA0   TIBETAN SUBJOINED LETTER THA
 0FA1   TIBETAN SUBJOINED LETTER DA
 0FA2   TIBETAN SUBJOINED LETTER DHA
-       : 0FA1 + 0FB7
+       : 0FA1 0FB7
 0FA3   TIBETAN SUBJOINED LETTER NA
 0FA4   TIBETAN SUBJOINED LETTER PA
 0FA5   TIBETAN SUBJOINED LETTER PHA
 0FA6   TIBETAN SUBJOINED LETTER BA
 0FA7   TIBETAN SUBJOINED LETTER BHA
-       : 0FA6 + 0FB7
+       : 0FA6 0FB7
 0FA8   TIBETAN SUBJOINED LETTER MA
 0FA9   TIBETAN SUBJOINED LETTER TSA
 0FAA   TIBETAN SUBJOINED LETTER TSHA
 0FAB   TIBETAN SUBJOINED LETTER DZA
 0FAC   TIBETAN SUBJOINED LETTER DZHA
-       : 0FAB + 0FB7
-0FAD   TIBETAN SUBJOINED LETTER WA
-0FAE   <reserved>
-0FAF   <reserved>
-0FB0   <reserved>
-0FB1   TIBETAN SUBJOINED LETTER YA
-0FB2   TIBETAN SUBJOINED LETTER RA
+       : 0FAB 0FB7
+0FAD   TIBETAN SUBJOINED LETTER WA *
+       = wa-zur, wa-btags
+0FAE   TIBETAN SUBJOINED LETTER ZHA
+0FAF   TIBETAN SUBJOINED LETTER ZA
+0FB0   TIBETAN SUBJOINED LETTER -A
+       = a-chung
+       * rare, only used for full-sized subjoined letter
+       x (tibetan vowel sign aa - 0F71)
+0FB1   TIBETAN SUBJOINED LETTER YA *
+       = ya-btags
+0FB2   TIBETAN SUBJOINED LETTER RA *
+       = ra-btags
 0FB3   TIBETAN SUBJOINED LETTER LA
 0FB4   TIBETAN SUBJOINED LETTER SHA
 0FB5   TIBETAN SUBJOINED LETTER SSA
+       = reversed subjoined sha
 0FB6   TIBETAN SUBJOINED LETTER SA
 0FB7   TIBETAN SUBJOINED LETTER HA
-0FB8   <reserved>
+0FB8   TIBETAN SUBJOINED LETTER A
 0FB9   TIBETAN SUBJOINED LETTER KSSA
-       : 0F90 + 0FB5
-@@     0FC0    Unassigned      109F
+       : 0F90 0FB5
+@              Fixed-form subjoined consonants
+@+             These characters are used only for transliteration and transcription.
+0FBA   TIBETAN SUBJOINED LETTER FIXED-FORM WA *
+0FBB   TIBETAN SUBJOINED LETTER FIXED-FORM YA *
+0FBC   TIBETAN SUBJOINED LETTER FIXED-FORM RA *
+@              Signs
+0FBE   TIBETAN KU RU KHA (kuruka)
+       * often repeated three times; indicates a refrain
+0FBF   TIBETAN KU RU KHA BZHI MIG CAN (kuruka shi mik chen)
+       * marks point of text insertion or annotation
+       x (reference mark - 203B)
+@              Cantillation signs
+0FC0   TIBETAN CANTILLATION SIGN HEAVY BEAT
+       * marks a heavy drum beat
+0FC1   TIBETAN CANTILLATION SIGN LIGHT BEAT
+       * marks a light drum beat
+0FC2   TIBETAN CANTILLATION SIGN CANG TE-U (chang tyu)
+       * symbol of a small Tibetan hand drum
+0FC3   TIBETAN CANTILLATION SIGN SBUB -CHAL (bub chey)
+       * symbol of a Tibetan cymbal
+@              Symbols
+0FC4   TIBETAN SYMBOL DRIL BU (drilbu)
+       * symbol of a Tibetan hand bell
+0FC5   TIBETAN SYMBOL RDO RJE (dorje)
+0FC6   TIBETAN SYMBOL PADMA GDAN (pema den)
+0FC7   TIBETAN SYMBOL RDO RJE RGYA GRAM (dorje gya dram)
+0FC8   TIBETAN SYMBOL PHUR PA (phurba)
+0FC9   TIBETAN SYMBOL NOR BU (norbu)
+0FCA   TIBETAN SYMBOL NOR BU NYIS -KHYIL (norbu nyi khyi)
+       * the double body symbol
+       x (yin yang - 262F)
+0FCB   TIBETAN SYMBOL NOR BU GSUM -KHYIL (norbu sum khyi)
+       * the tri-kaya or triple body symbol
+0FCC   TIBETAN SYMBOL NOR BU BZHI -KHYIL (norbu shi khyi)
+       * the quadruple body symbol, a form of the swastika
+       x (cjk unified ideograph-534D - 534D)
+@              Astrological sign
+0FCF   TIBETAN SIGN RDEL NAG GSUM
+@@     1000    Myanmar 109F
+@              Consonants
+1000   MYANMAR LETTER KA
+1001   MYANMAR LETTER KHA
+1002   MYANMAR LETTER GA
+1003   MYANMAR LETTER GHA
+1004   MYANMAR LETTER NGA
+1005   MYANMAR LETTER CA
+1006   MYANMAR LETTER CHA
+1007   MYANMAR LETTER JA
+1008   MYANMAR LETTER JHA
+1009   MYANMAR LETTER NYA
+100A   MYANMAR LETTER NNYA
+100B   MYANMAR LETTER TTA
+100C   MYANMAR LETTER TTHA
+100D   MYANMAR LETTER DDA
+100E   MYANMAR LETTER DDHA
+100F   MYANMAR LETTER NNA
+1010   MYANMAR LETTER TA
+1011   MYANMAR LETTER THA
+1012   MYANMAR LETTER DA
+1013   MYANMAR LETTER DHA
+1014   MYANMAR LETTER NA
+1015   MYANMAR LETTER PA
+1016   MYANMAR LETTER PHA
+1017   MYANMAR LETTER BA
+1018   MYANMAR LETTER BHA
+1019   MYANMAR LETTER MA
+101A   MYANMAR LETTER YA
+101B   MYANMAR LETTER RA
+101C   MYANMAR LETTER LA
+101D   MYANMAR LETTER WA
+101E   MYANMAR LETTER SA
+101F   MYANMAR LETTER HA
+1020   MYANMAR LETTER LLA
+@              Independent vowels
+1021   MYANMAR LETTER A
+1023   MYANMAR LETTER I
+1024   MYANMAR LETTER II
+1025   MYANMAR LETTER U
+1026   MYANMAR LETTER UU
+       : 1025 102E
+1027   MYANMAR LETTER E
+1029   MYANMAR LETTER O
+102A   MYANMAR LETTER AU
+@              Dependent vowel signs
+102C   MYANMAR VOWEL SIGN AA
+102D   MYANMAR VOWEL SIGN I
+102E   MYANMAR VOWEL SIGN II
+102F   MYANMAR VOWEL SIGN U
+1030   MYANMAR VOWEL SIGN UU
+1031   MYANMAR VOWEL SIGN E
+       * stands to the left of the consonant
+1032   MYANMAR VOWEL SIGN AI
+@              Various signs
+1036   MYANMAR SIGN ANUSVARA
+1037   MYANMAR SIGN DOT BELOW
+       = aukmyit
+       * a tone mark
+1038   MYANMAR SIGN VISARGA
+1039   MYANMAR SIGN VIRAMA
+       = killer (when rendered visibly)
+@              Digits
+1040   MYANMAR DIGIT ZERO
+1041   MYANMAR DIGIT ONE
+1042   MYANMAR DIGIT TWO
+1043   MYANMAR DIGIT THREE
+1044   MYANMAR DIGIT FOUR
+1045   MYANMAR DIGIT FIVE
+1046   MYANMAR DIGIT SIX
+1047   MYANMAR DIGIT SEVEN
+1048   MYANMAR DIGIT EIGHT
+1049   MYANMAR DIGIT NINE
+@              Punctuation
+104A   MYANMAR SIGN LITTLE SECTION
+       x (devanagari danda - 0964)
+104B   MYANMAR SIGN SECTION
+       x (devanagari double danda - 0965)
+@              Various signs
+104C   MYANMAR SYMBOL LOCATIVE
+104D   MYANMAR SYMBOL COMPLETED
+104E   MYANMAR SYMBOL AFOREMENTIONED
+104F   MYANMAR SYMBOL GENITIVE
+@              Pali and Sanskrit extensions
+1050   MYANMAR LETTER SHA
+1051   MYANMAR LETTER SSA
+1052   MYANMAR LETTER VOCALIC R
+1053   MYANMAR LETTER VOCALIC RR
+1054   MYANMAR LETTER VOCALIC L
+1055   MYANMAR LETTER VOCALIC LL
+1056   MYANMAR VOWEL SIGN VOCALIC R
+1057   MYANMAR VOWEL SIGN VOCALIC RR
+1058   MYANMAR VOWEL SIGN VOCALIC L
+1059   MYANMAR VOWEL SIGN VOCALIC LL
 @@     10A0    Georgian        10FF
-@              Archaic uppercase alphabet (Khutsuri)
-10A0   GEORGIAN CAPITAL LETTER AN
-10A1   GEORGIAN CAPITAL LETTER BAN
-10A2   GEORGIAN CAPITAL LETTER GAN
-10A3   GEORGIAN CAPITAL LETTER DON
-10A4   GEORGIAN CAPITAL LETTER EN
-10A5   GEORGIAN CAPITAL LETTER VIN
-10A6   GEORGIAN CAPITAL LETTER ZEN
-10A7   GEORGIAN CAPITAL LETTER TAN
-10A8   GEORGIAN CAPITAL LETTER IN
-10A9   GEORGIAN CAPITAL LETTER KAN
-10AA   GEORGIAN CAPITAL LETTER LAS
-10AB   GEORGIAN CAPITAL LETTER MAN
-10AC   GEORGIAN CAPITAL LETTER NAR
-10AD   GEORGIAN CAPITAL LETTER ON
-10AE   GEORGIAN CAPITAL LETTER PAR
-10AF   GEORGIAN CAPITAL LETTER ZHAR
-10B0   GEORGIAN CAPITAL LETTER RAE
-10B1   GEORGIAN CAPITAL LETTER SAN
-10B2   GEORGIAN CAPITAL LETTER TAR
-10B3   GEORGIAN CAPITAL LETTER UN
-10B4   GEORGIAN CAPITAL LETTER PHAR
-10B5   GEORGIAN CAPITAL LETTER KHAR
-10B6   GEORGIAN CAPITAL LETTER GHAN
-10B7   GEORGIAN CAPITAL LETTER QAR
-10B8   GEORGIAN CAPITAL LETTER SHIN
-10B9   GEORGIAN CAPITAL LETTER CHIN
-10BA   GEORGIAN CAPITAL LETTER CAN
-10BB   GEORGIAN CAPITAL LETTER JIL
-10BC   GEORGIAN CAPITAL LETTER CIL
-10BD   GEORGIAN CAPITAL LETTER CHAR
-10BE   GEORGIAN CAPITAL LETTER XAN
-10BF   GEORGIAN CAPITAL LETTER JHAN
-10C0   GEORGIAN CAPITAL LETTER HAE
-10C1   GEORGIAN CAPITAL LETTER HE
-10C2   GEORGIAN CAPITAL LETTER HIE
-10C3   GEORGIAN CAPITAL LETTER WE
-10C4   GEORGIAN CAPITAL LETTER HAR
-10C5   GEORGIAN CAPITAL LETTER HOE
-10C6   <reserved>
-10C7   <reserved>
-10C8   <reserved>
-10C9   <reserved>
-10CA   <reserved>
-10CB   <reserved>
-10CC   <reserved>
-10CD   <reserved>
-10CE   <reserved>
-10CF   <reserved>
-@              Modern alphabet (Mkhedruli)
-@              = Archaic lowercase alphabet
+@              Khutsuri
+@+             This is the uppercase of the old ecclesiastical alphabet. The style shown in the code charts is known as Asomtavruli.
+10A0   GEORGIAN CAPITAL LETTER AN (Khutsuri)
+10A1   GEORGIAN CAPITAL LETTER BAN (Khutsuri)
+10A2   GEORGIAN CAPITAL LETTER GAN (Khutsuri)
+10A3   GEORGIAN CAPITAL LETTER DON (Khutsuri)
+10A4   GEORGIAN CAPITAL LETTER EN (Khutsuri)
+10A5   GEORGIAN CAPITAL LETTER VIN (Khutsuri)
+10A6   GEORGIAN CAPITAL LETTER ZEN (Khutsuri)
+10A7   GEORGIAN CAPITAL LETTER TAN (Khutsuri)
+10A8   GEORGIAN CAPITAL LETTER IN (Khutsuri)
+10A9   GEORGIAN CAPITAL LETTER KAN (Khutsuri)
+10AA   GEORGIAN CAPITAL LETTER LAS (Khutsuri)
+10AB   GEORGIAN CAPITAL LETTER MAN (Khutsuri)
+10AC   GEORGIAN CAPITAL LETTER NAR (Khutsuri)
+10AD   GEORGIAN CAPITAL LETTER ON (Khutsuri)
+10AE   GEORGIAN CAPITAL LETTER PAR (Khutsuri)
+10AF   GEORGIAN CAPITAL LETTER ZHAR (Khutsuri)
+10B0   GEORGIAN CAPITAL LETTER RAE (Khutsuri)
+10B1   GEORGIAN CAPITAL LETTER SAN (Khutsuri)
+10B2   GEORGIAN CAPITAL LETTER TAR (Khutsuri)
+10B3   GEORGIAN CAPITAL LETTER UN (Khutsuri)
+10B4   GEORGIAN CAPITAL LETTER PHAR (Khutsuri)
+10B5   GEORGIAN CAPITAL LETTER KHAR (Khutsuri)
+10B6   GEORGIAN CAPITAL LETTER GHAN (Khutsuri)
+10B7   GEORGIAN CAPITAL LETTER QAR (Khutsuri)
+10B8   GEORGIAN CAPITAL LETTER SHIN (Khutsuri)
+10B9   GEORGIAN CAPITAL LETTER CHIN (Khutsuri)
+10BA   GEORGIAN CAPITAL LETTER CAN (Khutsuri)
+10BB   GEORGIAN CAPITAL LETTER JIL (Khutsuri)
+10BC   GEORGIAN CAPITAL LETTER CIL (Khutsuri)
+10BD   GEORGIAN CAPITAL LETTER CHAR (Khutsuri)
+10BE   GEORGIAN CAPITAL LETTER XAN (Khutsuri)
+10BF   GEORGIAN CAPITAL LETTER JHAN (Khutsuri)
+10C0   GEORGIAN CAPITAL LETTER HAE (Khutsuri)
+10C1   GEORGIAN CAPITAL LETTER HE (Khutsuri)
+10C2   GEORGIAN CAPITAL LETTER HIE (Khutsuri)
+10C3   GEORGIAN CAPITAL LETTER WE (Khutsuri)
+10C4   GEORGIAN CAPITAL LETTER HAR (Khutsuri)
+10C5   GEORGIAN CAPITAL LETTER HOE (Khutsuri)
+@              Mkhedruli
+@+             This is the modern secular alphabet, which is caseless.
 10D0   GEORGIAN LETTER AN
 10D1   GEORGIAN LETTER BAN
 10D2   GEORGIAN LETTER GAN
 10F4   GEORGIAN LETTER HAR
 10F5   GEORGIAN LETTER HOE
 10F6   GEORGIAN LETTER FI
-10F7   <reserved>
-10F8   <reserved>
-10F9   <reserved>
-10FA   <reserved>
 @              Punctuation
 10FB   GEORGIAN PARAGRAPH SEPARATOR
 @@     1100    Hangul Jamo     11FF
 @              Korean combining alphabet
 @              Initial consonants
-1100   HANGUL CHOSEONG KIYEOK
-1101   HANGUL CHOSEONG SSANGKIYEOK
-       # 1100 + 1100
-1102   HANGUL CHOSEONG NIEUN
-1103   HANGUL CHOSEONG TIKEUT
-1104   HANGUL CHOSEONG SSANGTIKEUT
-       # 1103 + 1103
-1105   HANGUL CHOSEONG RIEUL
-1106   HANGUL CHOSEONG MIEUM
-1107   HANGUL CHOSEONG PIEUP
-1108   HANGUL CHOSEONG SSANGPIEUP
-       # 1107 + 1107
-1109   HANGUL CHOSEONG SIOS
-110A   HANGUL CHOSEONG SSANGSIOS
-       # 1109 + 1109
+1100   HANGUL CHOSEONG KIYEOK (g) *
+1101   HANGUL CHOSEONG SSANGKIYEOK (gg) *
+1102   HANGUL CHOSEONG NIEUN (n) *
+1103   HANGUL CHOSEONG TIKEUT (d) *
+1104   HANGUL CHOSEONG SSANGTIKEUT (dd) *
+1105   HANGUL CHOSEONG RIEUL (r) *
+1106   HANGUL CHOSEONG MIEUM (m) *
+1107   HANGUL CHOSEONG PIEUP (b) *
+1108   HANGUL CHOSEONG SSANGPIEUP (bb) *
+1109   HANGUL CHOSEONG SIOS (s) *
+110A   HANGUL CHOSEONG SSANGSIOS (ss) *
 110B   HANGUL CHOSEONG IEUNG
-110C   HANGUL CHOSEONG CIEUC
-110D   HANGUL CHOSEONG SSANGCIEUC
-       # 110C + 110C
-110E   HANGUL CHOSEONG CHIEUCH
-110F   HANGUL CHOSEONG KHIEUKH
-1110   HANGUL CHOSEONG THIEUTH
-1111   HANGUL CHOSEONG PHIEUPH
-1112   HANGUL CHOSEONG HIEUH
+110C   HANGUL CHOSEONG CIEUC (j) *
+110D   HANGUL CHOSEONG SSANGCIEUC (jj) *
+110E   HANGUL CHOSEONG CHIEUCH (c) *
+110F   HANGUL CHOSEONG KHIEUKH (k) *
+1110   HANGUL CHOSEONG THIEUTH (t) *
+1111   HANGUL CHOSEONG PHIEUPH (p) *
+1112   HANGUL CHOSEONG HIEUH (h) *
 1113   HANGUL CHOSEONG NIEUN-KIYEOK
-       # 1102 + 1100
 1114   HANGUL CHOSEONG SSANGNIEUN
-       # 1102 + 1102
 1115   HANGUL CHOSEONG NIEUN-TIKEUT
-       # 1102 + 1103
 1116   HANGUL CHOSEONG NIEUN-PIEUP
-       # 1102 + 1107
 1117   HANGUL CHOSEONG TIKEUT-KIYEOK
-       # 1103 + 1100
 1118   HANGUL CHOSEONG RIEUL-NIEUN
-       # 1105 + 1102
 1119   HANGUL CHOSEONG SSANGRIEUL
-       # 1105 + 1105
 111A   HANGUL CHOSEONG RIEUL-HIEUH
-       # 1105 + 1112
 111B   HANGUL CHOSEONG KAPYEOUNRIEUL
-       # 1105 + 110B
 111C   HANGUL CHOSEONG MIEUM-PIEUP
-       # 1106 + 1107
 111D   HANGUL CHOSEONG KAPYEOUNMIEUM
-       # 1106 + 110B
 111E   HANGUL CHOSEONG PIEUP-KIYEOK
-       # 1107 + 1100
 111F   HANGUL CHOSEONG PIEUP-NIEUN
-       # 1107 + 1102
 1120   HANGUL CHOSEONG PIEUP-TIKEUT
-       # 1107 + 1103
 1121   HANGUL CHOSEONG PIEUP-SIOS
-       # 1107 + 1109
 1122   HANGUL CHOSEONG PIEUP-SIOS-KIYEOK
-       # 1107 + 1109 + 1100
 1123   HANGUL CHOSEONG PIEUP-SIOS-TIKEUT
-       # 1107 + 1109 + 1103
 1124   HANGUL CHOSEONG PIEUP-SIOS-PIEUP
-       # 1107 + 1109 + 1107
 1125   HANGUL CHOSEONG PIEUP-SSANGSIOS
-       # 1107 + 1109 + 1109
 1126   HANGUL CHOSEONG PIEUP-SIOS-CIEUC
-       # 1107 + 1109 + 110C
 1127   HANGUL CHOSEONG PIEUP-CIEUC
-       # 1107 + 110C
 1128   HANGUL CHOSEONG PIEUP-CHIEUCH
-       # 1107 + 110E
 1129   HANGUL CHOSEONG PIEUP-THIEUTH
-       # 1107 + 1110
 112A   HANGUL CHOSEONG PIEUP-PHIEUPH
-       # 1107 + 1111
 112B   HANGUL CHOSEONG KAPYEOUNPIEUP
-       # 1107 + 110B
 112C   HANGUL CHOSEONG KAPYEOUNSSANGPIEUP
-       # 1107 + 1107 + 110B
 112D   HANGUL CHOSEONG SIOS-KIYEOK
-       # 1109 + 1100
 112E   HANGUL CHOSEONG SIOS-NIEUN
-       # 1109 + 1102
 112F   HANGUL CHOSEONG SIOS-TIKEUT
-       # 1109 + 1103
 1130   HANGUL CHOSEONG SIOS-RIEUL
-       # 1109 + 1105
 1131   HANGUL CHOSEONG SIOS-MIEUM
-       # 1109 + 1106
 1132   HANGUL CHOSEONG SIOS-PIEUP
-       # 1109 + 1107
 1133   HANGUL CHOSEONG SIOS-PIEUP-KIYEOK
-       # 1109 + 1107 + 1100
 1134   HANGUL CHOSEONG SIOS-SSANGSIOS
-       # 1109 + 1109 + 1109
 1135   HANGUL CHOSEONG SIOS-IEUNG
-       # 1109 + 110B
 1136   HANGUL CHOSEONG SIOS-CIEUC
-       # 1109 + 110C
 1137   HANGUL CHOSEONG SIOS-CHIEUCH
-       # 1109 + 110E
 1138   HANGUL CHOSEONG SIOS-KHIEUKH
-       # 1109 + 110F
 1139   HANGUL CHOSEONG SIOS-THIEUTH
-       # 1109 + 1110
 113A   HANGUL CHOSEONG SIOS-PHIEUPH
-       # 1109 + 1111
 113B   HANGUL CHOSEONG SIOS-HIEUH
-       # 1109 + 1112
 113C   HANGUL CHOSEONG CHITUEUMSIOS
 113D   HANGUL CHOSEONG CHITUEUMSSANGSIOS
-       # 113C + 113C
 113E   HANGUL CHOSEONG CEONGCHIEUMSIOS
 113F   HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS
-       # 113E + 113E
 1140   HANGUL CHOSEONG PANSIOS
 1141   HANGUL CHOSEONG IEUNG-KIYEOK
-       # 110B + 1100
 1142   HANGUL CHOSEONG IEUNG-TIKEUT
-       # 110B + 1103
 1143   HANGUL CHOSEONG IEUNG-MIEUM
-       # 110B + 1106
 1144   HANGUL CHOSEONG IEUNG-PIEUP
-       # 110B + 1107
 1145   HANGUL CHOSEONG IEUNG-SIOS
-       # 110B + 1109
 1146   HANGUL CHOSEONG IEUNG-PANSIOS
-       # 110B + 1140
 1147   HANGUL CHOSEONG SSANGIEUNG
-       # 110B + 110B
 1148   HANGUL CHOSEONG IEUNG-CIEUC
-       # 110B + 110C
 1149   HANGUL CHOSEONG IEUNG-CHIEUCH
-       # 110B + 110E
 114A   HANGUL CHOSEONG IEUNG-THIEUTH
-       # 110B + 1110
 114B   HANGUL CHOSEONG IEUNG-PHIEUPH
-       # 110B + 1111
 114C   HANGUL CHOSEONG YESIEUNG
 114D   HANGUL CHOSEONG CIEUC-IEUNG
-       # 110C + 110B
 114E   HANGUL CHOSEONG CHITUEUMCIEUC
 114F   HANGUL CHOSEONG CHITUEUMSSANGCIEUC
-       # 114E + 114E
 1150   HANGUL CHOSEONG CEONGCHIEUMCIEUC
 1151   HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC
-       # 1150 + 1150
 1152   HANGUL CHOSEONG CHIEUCH-KHIEUKH
-       # 110E + 110F
 1153   HANGUL CHOSEONG CHIEUCH-HIEUH
-       # 110E + 1112
 1154   HANGUL CHOSEONG CHITUEUMCHIEUCH
 1155   HANGUL CHOSEONG CEONGCHIEUMCHIEUCH
 1156   HANGUL CHOSEONG PHIEUPH-PIEUP
-       # 1111 + 1107
 1157   HANGUL CHOSEONG KAPYEOUNPHIEUPH
-       # 1111 + 110B
 1158   HANGUL CHOSEONG SSANGHIEUH
-       # 1112 + 1112
 1159   HANGUL CHOSEONG YEORINHIEUH
-115A   <reserved>
-115B   <reserved>
-115C   <reserved>
-115D   <reserved>
-115E   <reserved>
 115F   HANGUL CHOSEONG FILLER
 @              Medial vowels
 1160   HANGUL JUNGSEONG FILLER
 1161   HANGUL JUNGSEONG A
 1162   HANGUL JUNGSEONG AE
-       # 1161 + 1175
 1163   HANGUL JUNGSEONG YA
 1164   HANGUL JUNGSEONG YAE
-       # 1163 + 1175
 1165   HANGUL JUNGSEONG EO
 1166   HANGUL JUNGSEONG E
-       # 1165 + 1175
 1167   HANGUL JUNGSEONG YEO
 1168   HANGUL JUNGSEONG YE
-       # 1167 + 1175
 1169   HANGUL JUNGSEONG O
 116A   HANGUL JUNGSEONG WA
-       # 1169 + 1161
 116B   HANGUL JUNGSEONG WAE
-       # 1169 + 1161 + 1175
 116C   HANGUL JUNGSEONG OE
-       # 1169 + 1175
 116D   HANGUL JUNGSEONG YO
 116E   HANGUL JUNGSEONG U
 116F   HANGUL JUNGSEONG WEO
-       # 116E + 1165
 1170   HANGUL JUNGSEONG WE
-       # 116E + 1165 + 1175
 1171   HANGUL JUNGSEONG WI
-       # 116E + 1175
 1172   HANGUL JUNGSEONG YU
 1173   HANGUL JUNGSEONG EU
 1174   HANGUL JUNGSEONG YI
-       # 1173 + 1175
 1175   HANGUL JUNGSEONG I
 1176   HANGUL JUNGSEONG A-O
-       # 1161 + 1169
 1177   HANGUL JUNGSEONG A-U
-       # 1161 + 116E
 1178   HANGUL JUNGSEONG YA-O
-       # 1163 + 1169
 1179   HANGUL JUNGSEONG YA-YO
-       # 1163 + 116D
 117A   HANGUL JUNGSEONG EO-O
-       # 1165 + 1169
 117B   HANGUL JUNGSEONG EO-U
-       # 1165 + 116E
 117C   HANGUL JUNGSEONG EO-EU
-       # 1165 + 1173
 117D   HANGUL JUNGSEONG YEO-O
-       # 1167 + 1169
 117E   HANGUL JUNGSEONG YEO-U
-       # 1167 + 116E
 117F   HANGUL JUNGSEONG O-EO
-       # 1169 + 1165
 1180   HANGUL JUNGSEONG O-E
-       # 1169 + 1166
 1181   HANGUL JUNGSEONG O-YE
-       # 1169 + 1168
 1182   HANGUL JUNGSEONG O-O
-       # 1169 + 1169
 1183   HANGUL JUNGSEONG O-U
-       # 1169 + 116E
 1184   HANGUL JUNGSEONG YO-YA
-       # 116D + 1163
 1185   HANGUL JUNGSEONG YO-YAE
-       # 116D + 1164
 1186   HANGUL JUNGSEONG YO-YEO
-       # 116D + 1167
 1187   HANGUL JUNGSEONG YO-O
-       # 116D + 1169
 1188   HANGUL JUNGSEONG YO-I
-       # 116D + 1175
 1189   HANGUL JUNGSEONG U-A
-       # 116E + 1161
 118A   HANGUL JUNGSEONG U-AE
-       # 116E + 1162
 118B   HANGUL JUNGSEONG U-EO-EU
-       # 116E + 1165 + 1173
 118C   HANGUL JUNGSEONG U-YE
-       # 116E + 1168
 118D   HANGUL JUNGSEONG U-U
-       # 116E + 116E
 118E   HANGUL JUNGSEONG YU-A
-       # 1172 + 1161
 118F   HANGUL JUNGSEONG YU-EO
-       # 1172 + 1165
 1190   HANGUL JUNGSEONG YU-E
-       # 1172 + 1166
 1191   HANGUL JUNGSEONG YU-YEO
-       # 1172 + 1167
 1192   HANGUL JUNGSEONG YU-YE
-       # 1172 + 1168
 1193   HANGUL JUNGSEONG YU-U
-       # 1172 + 116E
 1194   HANGUL JUNGSEONG YU-I
-       # 1172 + 1175
 1195   HANGUL JUNGSEONG EU-U
-       # 1173 + 116E
 1196   HANGUL JUNGSEONG EU-EU
-       # 1173 + 1173
 1197   HANGUL JUNGSEONG YI-U
-       # 1174 + 116E
 1198   HANGUL JUNGSEONG I-A
-       # 1175 + 1161
 1199   HANGUL JUNGSEONG I-YA
-       # 1175 + 1163
 119A   HANGUL JUNGSEONG I-O
-       # 1175 + 1169
 119B   HANGUL JUNGSEONG I-U
-       # 1175 + 116E
 119C   HANGUL JUNGSEONG I-EU
-       # 1175 + 1173
 119D   HANGUL JUNGSEONG I-ARAEA
-       # 1175 + 119E
 119E   HANGUL JUNGSEONG ARAEA
 119F   HANGUL JUNGSEONG ARAEA-EO
-       # 119E + 1165
 11A0   HANGUL JUNGSEONG ARAEA-U
-       # 119E + 116E
 11A1   HANGUL JUNGSEONG ARAEA-I
-       # 119E + 1175
 11A2   HANGUL JUNGSEONG SSANGARAEA
-       # 119E + 119E
-11A3   <reserved>
-11A4   <reserved>
-11A5   <reserved>
-11A6   <reserved>
-11A7   <reserved>
 @              Final consonants
-11A8   HANGUL JONGSEONG KIYEOK
-11A9   HANGUL JONGSEONG SSANGKIYEOK
-       # 11A8 + 11A8
-11AA   HANGUL JONGSEONG KIYEOK-SIOS
-       # 11A8 + 11BA
-11AB   HANGUL JONGSEONG NIEUN
-11AC   HANGUL JONGSEONG NIEUN-CIEUC
-       # 11AB + 11BD
-11AD   HANGUL JONGSEONG NIEUN-HIEUH
-       # 11AB + 11C2
-11AE   HANGUL JONGSEONG TIKEUT
-11AF   HANGUL JONGSEONG RIEUL
-11B0   HANGUL JONGSEONG RIEUL-KIYEOK
-       # 11AF + 11A8
-11B1   HANGUL JONGSEONG RIEUL-MIEUM
-       # 11AF + 11B7
-11B2   HANGUL JONGSEONG RIEUL-PIEUP
-       # 11AF + 11B8
-11B3   HANGUL JONGSEONG RIEUL-SIOS
-       # 11AF + 11BA
-11B4   HANGUL JONGSEONG RIEUL-THIEUTH
-       # 11AF + 11C0
-11B5   HANGUL JONGSEONG RIEUL-PHIEUPH
-       # 11AF + 11C1
-11B6   HANGUL JONGSEONG RIEUL-HIEUH
-       # 11AF + 11C2
-11B7   HANGUL JONGSEONG MIEUM
-11B8   HANGUL JONGSEONG PIEUP
-11B9   HANGUL JONGSEONG PIEUP-SIOS
-       # 11B8 + 11BA
-11BA   HANGUL JONGSEONG SIOS
-11BB   HANGUL JONGSEONG SSANGSIOS
-       # 11BA + 11BA
-11BC   HANGUL JONGSEONG IEUNG
-11BD   HANGUL JONGSEONG CIEUC
-11BE   HANGUL JONGSEONG CHIEUCH
-11BF   HANGUL JONGSEONG KHIEUKH
-11C0   HANGUL JONGSEONG THIEUTH
-11C1   HANGUL JONGSEONG PHIEUPH
-11C2   HANGUL JONGSEONG HIEUH
+11A8   HANGUL JONGSEONG KIYEOK (g) *
+11A9   HANGUL JONGSEONG SSANGKIYEOK (gg) *
+11AA   HANGUL JONGSEONG KIYEOK-SIOS (gs) *
+11AB   HANGUL JONGSEONG NIEUN (n) *
+11AC   HANGUL JONGSEONG NIEUN-CIEUC (nj) *
+11AD   HANGUL JONGSEONG NIEUN-HIEUH (nh) *
+11AE   HANGUL JONGSEONG TIKEUT (d) *
+11AF   HANGUL JONGSEONG RIEUL (l) *
+11B0   HANGUL JONGSEONG RIEUL-KIYEOK (lg) *
+11B1   HANGUL JONGSEONG RIEUL-MIEUM (lm) *
+11B2   HANGUL JONGSEONG RIEUL-PIEUP (lb) *
+11B3   HANGUL JONGSEONG RIEUL-SIOS (ls) *
+11B4   HANGUL JONGSEONG RIEUL-THIEUTH (lt) *
+11B5   HANGUL JONGSEONG RIEUL-PHIEUPH (lp) *
+11B6   HANGUL JONGSEONG RIEUL-HIEUH (lh) *
+11B7   HANGUL JONGSEONG MIEUM (m) *
+11B8   HANGUL JONGSEONG PIEUP (b) *
+11B9   HANGUL JONGSEONG PIEUP-SIOS (bs) *
+11BA   HANGUL JONGSEONG SIOS (s) *
+11BB   HANGUL JONGSEONG SSANGSIOS (ss) *
+11BC   HANGUL JONGSEONG IEUNG (ng) *
+11BD   HANGUL JONGSEONG CIEUC (j) *
+11BE   HANGUL JONGSEONG CHIEUCH (c) *
+11BF   HANGUL JONGSEONG KHIEUKH (k) *
+11C0   HANGUL JONGSEONG THIEUTH (t) *
+11C1   HANGUL JONGSEONG PHIEUPH (p) *
+11C2   HANGUL JONGSEONG HIEUH (h) *
 11C3   HANGUL JONGSEONG KIYEOK-RIEUL
-       # 11A8 + 11AF
 11C4   HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK
-       # 11A8 + 11BA + 11A8
 11C5   HANGUL JONGSEONG NIEUN-KIYEOK
-       # 11AB + 11A8
 11C6   HANGUL JONGSEONG NIEUN-TIKEUT
-       # 11AB + 11AE
 11C7   HANGUL JONGSEONG NIEUN-SIOS
-       # 11AB + 11BA
 11C8   HANGUL JONGSEONG NIEUN-PANSIOS
-       # 11AB + 11EB
 11C9   HANGUL JONGSEONG NIEUN-THIEUTH
-       # 11AB + 11C0
 11CA   HANGUL JONGSEONG TIKEUT-KIYEOK
-       # 11AE + 11A8
 11CB   HANGUL JONGSEONG TIKEUT-RIEUL
-       # 11AE + 11AF
 11CC   HANGUL JONGSEONG RIEUL-KIYEOK-SIOS
-       # 11AF + 11A8 + 11BA
 11CD   HANGUL JONGSEONG RIEUL-NIEUN
-       # 11AF + 11AB
 11CE   HANGUL JONGSEONG RIEUL-TIKEUT
-       # 11AF + 11AE
 11CF   HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH
-       # 11AF + 11AE + 11C2
 11D0   HANGUL JONGSEONG SSANGRIEUL
-       # 11AF + 11AF
 11D1   HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK
-       # 11AF + 11B7 + 11A8
 11D2   HANGUL JONGSEONG RIEUL-MIEUM-SIOS
-       # 11AF + 11B7 + 11BA
 11D3   HANGUL JONGSEONG RIEUL-PIEUP-SIOS
-       # 11AF + 11B8 + 11BA
 11D4   HANGUL JONGSEONG RIEUL-PIEUP-HIEUH
-       # 11AF + 11B8 + 11C2
 11D5   HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP
-       # 11AF + 11B8 + 11BC
 11D6   HANGUL JONGSEONG RIEUL-SSANGSIOS
-       # 11AF + 11BA + 11BA
 11D7   HANGUL JONGSEONG RIEUL-PANSIOS
-       # 11AF + 11EB
 11D8   HANGUL JONGSEONG RIEUL-KHIEUKH
-       # 11AF + 11BF
 11D9   HANGUL JONGSEONG RIEUL-YEORINHIEUH
-       # 11AF + 11F9
 11DA   HANGUL JONGSEONG MIEUM-KIYEOK
-       # 11B7 + 11A8
 11DB   HANGUL JONGSEONG MIEUM-RIEUL
-       # 11B7 + 11AF
 11DC   HANGUL JONGSEONG MIEUM-PIEUP
-       # 11B7 + 11B8
 11DD   HANGUL JONGSEONG MIEUM-SIOS
-       # 11B7 + 11BA
 11DE   HANGUL JONGSEONG MIEUM-SSANGSIOS
-       # 11B7 + 11BA + 11BA
 11DF   HANGUL JONGSEONG MIEUM-PANSIOS
-       # 11B7 + 11EB
 11E0   HANGUL JONGSEONG MIEUM-CHIEUCH
-       # 11B7 + 11BE
 11E1   HANGUL JONGSEONG MIEUM-HIEUH
-       # 11B7 + 11C2
 11E2   HANGUL JONGSEONG KAPYEOUNMIEUM
-       # 11B7 + 11BC
 11E3   HANGUL JONGSEONG PIEUP-RIEUL
-       # 11B8 + 11AF
 11E4   HANGUL JONGSEONG PIEUP-PHIEUPH
-       # 11B8 + 11C1
 11E5   HANGUL JONGSEONG PIEUP-HIEUH
-       # 11B8 + 11C2
 11E6   HANGUL JONGSEONG KAPYEOUNPIEUP
-       # 11B8 + 11BC
 11E7   HANGUL JONGSEONG SIOS-KIYEOK
-       # 11BA + 11A8
 11E8   HANGUL JONGSEONG SIOS-TIKEUT
-       # 11BA + 11AE
 11E9   HANGUL JONGSEONG SIOS-RIEUL
-       # 11BA + 11AF
 11EA   HANGUL JONGSEONG SIOS-PIEUP
-       # 11BA + 11B8
 11EB   HANGUL JONGSEONG PANSIOS
 11EC   HANGUL JONGSEONG IEUNG-KIYEOK
-       # 11BC + 11A8
 11ED   HANGUL JONGSEONG IEUNG-SSANGKIYEOK
-       # 11BC + 11A8 + 11A8
 11EE   HANGUL JONGSEONG SSANGIEUNG
-       # 11BC + 11BC
 11EF   HANGUL JONGSEONG IEUNG-KHIEUKH
-       # 11BC + 11BF
 11F0   HANGUL JONGSEONG YESIEUNG
 11F1   HANGUL JONGSEONG YESIEUNG-SIOS
-       # 11F0 + 11BA
 11F2   HANGUL JONGSEONG YESIEUNG-PANSIOS
-       # 11F0 + 11EB
 11F3   HANGUL JONGSEONG PHIEUPH-PIEUP
-       # 11C1 + 11B8
 11F4   HANGUL JONGSEONG KAPYEOUNPHIEUPH
-       # 11C1 + 11BC
 11F5   HANGUL JONGSEONG HIEUH-NIEUN
-       # 11C2 + 11AB
 11F6   HANGUL JONGSEONG HIEUH-RIEUL
-       # 11C2 + 11AF
 11F7   HANGUL JONGSEONG HIEUH-MIEUM
-       # 11C2 + 11B7
 11F8   HANGUL JONGSEONG HIEUH-PIEUP
-       # 11C2 + 11B8
 11F9   HANGUL JONGSEONG YEORINHIEUH
-@@     1200    Unassigned      1DFF
+@@     1200    Ethiopic        137F
+@              Syllables
+1200   ETHIOPIC SYLLABLE HA
+1201   ETHIOPIC SYLLABLE HU
+1202   ETHIOPIC SYLLABLE HI
+1203   ETHIOPIC SYLLABLE HAA
+1204   ETHIOPIC SYLLABLE HEE
+1205   ETHIOPIC SYLLABLE HE
+1206   ETHIOPIC SYLLABLE HO
+1208   ETHIOPIC SYLLABLE LA
+1209   ETHIOPIC SYLLABLE LU
+120A   ETHIOPIC SYLLABLE LI
+120B   ETHIOPIC SYLLABLE LAA
+120C   ETHIOPIC SYLLABLE LEE
+120D   ETHIOPIC SYLLABLE LE
+120E   ETHIOPIC SYLLABLE LO
+120F   ETHIOPIC SYLLABLE LWA
+1210   ETHIOPIC SYLLABLE HHA
+1211   ETHIOPIC SYLLABLE HHU
+1212   ETHIOPIC SYLLABLE HHI
+1213   ETHIOPIC SYLLABLE HHAA
+1214   ETHIOPIC SYLLABLE HHEE
+1215   ETHIOPIC SYLLABLE HHE
+1216   ETHIOPIC SYLLABLE HHO
+1217   ETHIOPIC SYLLABLE HHWA
+1218   ETHIOPIC SYLLABLE MA
+1219   ETHIOPIC SYLLABLE MU
+121A   ETHIOPIC SYLLABLE MI
+121B   ETHIOPIC SYLLABLE MAA
+121C   ETHIOPIC SYLLABLE MEE
+121D   ETHIOPIC SYLLABLE ME
+121E   ETHIOPIC SYLLABLE MO
+121F   ETHIOPIC SYLLABLE MWA
+1220   ETHIOPIC SYLLABLE SZA
+1221   ETHIOPIC SYLLABLE SZU
+1222   ETHIOPIC SYLLABLE SZI
+1223   ETHIOPIC SYLLABLE SZAA
+1224   ETHIOPIC SYLLABLE SZEE
+1225   ETHIOPIC SYLLABLE SZE
+1226   ETHIOPIC SYLLABLE SZO
+1227   ETHIOPIC SYLLABLE SZWA
+1228   ETHIOPIC SYLLABLE RA
+1229   ETHIOPIC SYLLABLE RU
+122A   ETHIOPIC SYLLABLE RI
+122B   ETHIOPIC SYLLABLE RAA
+122C   ETHIOPIC SYLLABLE REE
+122D   ETHIOPIC SYLLABLE RE
+122E   ETHIOPIC SYLLABLE RO
+122F   ETHIOPIC SYLLABLE RWA
+1230   ETHIOPIC SYLLABLE SA
+1231   ETHIOPIC SYLLABLE SU
+1232   ETHIOPIC SYLLABLE SI
+1233   ETHIOPIC SYLLABLE SAA
+1234   ETHIOPIC SYLLABLE SEE
+1235   ETHIOPIC SYLLABLE SE
+1236   ETHIOPIC SYLLABLE SO
+1237   ETHIOPIC SYLLABLE SWA
+1238   ETHIOPIC SYLLABLE SHA
+1239   ETHIOPIC SYLLABLE SHU
+123A   ETHIOPIC SYLLABLE SHI
+123B   ETHIOPIC SYLLABLE SHAA
+123C   ETHIOPIC SYLLABLE SHEE
+123D   ETHIOPIC SYLLABLE SHE
+123E   ETHIOPIC SYLLABLE SHO
+123F   ETHIOPIC SYLLABLE SHWA
+1240   ETHIOPIC SYLLABLE QA
+1241   ETHIOPIC SYLLABLE QU
+1242   ETHIOPIC SYLLABLE QI
+1243   ETHIOPIC SYLLABLE QAA
+1244   ETHIOPIC SYLLABLE QEE
+1245   ETHIOPIC SYLLABLE QE
+1246   ETHIOPIC SYLLABLE QO
+1248   ETHIOPIC SYLLABLE QWA
+124A   ETHIOPIC SYLLABLE QWI
+124B   ETHIOPIC SYLLABLE QWAA
+124C   ETHIOPIC SYLLABLE QWEE
+124D   ETHIOPIC SYLLABLE QWE
+1250   ETHIOPIC SYLLABLE QHA
+1251   ETHIOPIC SYLLABLE QHU
+1252   ETHIOPIC SYLLABLE QHI
+1253   ETHIOPIC SYLLABLE QHAA
+1254   ETHIOPIC SYLLABLE QHEE
+1255   ETHIOPIC SYLLABLE QHE
+1256   ETHIOPIC SYLLABLE QHO
+1258   ETHIOPIC SYLLABLE QHWA
+125A   ETHIOPIC SYLLABLE QHWI
+125B   ETHIOPIC SYLLABLE QHWAA
+125C   ETHIOPIC SYLLABLE QHWEE
+125D   ETHIOPIC SYLLABLE QHWE
+1260   ETHIOPIC SYLLABLE BA
+1261   ETHIOPIC SYLLABLE BU
+1262   ETHIOPIC SYLLABLE BI
+1263   ETHIOPIC SYLLABLE BAA
+1264   ETHIOPIC SYLLABLE BEE
+1265   ETHIOPIC SYLLABLE BE
+1266   ETHIOPIC SYLLABLE BO
+1267   ETHIOPIC SYLLABLE BWA
+1268   ETHIOPIC SYLLABLE VA
+1269   ETHIOPIC SYLLABLE VU
+126A   ETHIOPIC SYLLABLE VI
+126B   ETHIOPIC SYLLABLE VAA
+126C   ETHIOPIC SYLLABLE VEE
+126D   ETHIOPIC SYLLABLE VE
+126E   ETHIOPIC SYLLABLE VO
+126F   ETHIOPIC SYLLABLE VWA
+1270   ETHIOPIC SYLLABLE TA
+1271   ETHIOPIC SYLLABLE TU
+1272   ETHIOPIC SYLLABLE TI
+1273   ETHIOPIC SYLLABLE TAA
+1274   ETHIOPIC SYLLABLE TEE
+1275   ETHIOPIC SYLLABLE TE
+1276   ETHIOPIC SYLLABLE TO
+1277   ETHIOPIC SYLLABLE TWA
+1278   ETHIOPIC SYLLABLE CA
+1279   ETHIOPIC SYLLABLE CU
+127A   ETHIOPIC SYLLABLE CI
+127B   ETHIOPIC SYLLABLE CAA
+127C   ETHIOPIC SYLLABLE CEE
+127D   ETHIOPIC SYLLABLE CE
+127E   ETHIOPIC SYLLABLE CO
+127F   ETHIOPIC SYLLABLE CWA
+1280   ETHIOPIC SYLLABLE XA
+1281   ETHIOPIC SYLLABLE XU
+1282   ETHIOPIC SYLLABLE XI
+1283   ETHIOPIC SYLLABLE XAA
+1284   ETHIOPIC SYLLABLE XEE
+1285   ETHIOPIC SYLLABLE XE
+1286   ETHIOPIC SYLLABLE XO
+1288   ETHIOPIC SYLLABLE XWA
+128A   ETHIOPIC SYLLABLE XWI
+128B   ETHIOPIC SYLLABLE XWAA
+128C   ETHIOPIC SYLLABLE XWEE
+128D   ETHIOPIC SYLLABLE XWE
+1290   ETHIOPIC SYLLABLE NA
+1291   ETHIOPIC SYLLABLE NU
+1292   ETHIOPIC SYLLABLE NI
+1293   ETHIOPIC SYLLABLE NAA
+1294   ETHIOPIC SYLLABLE NEE
+1295   ETHIOPIC SYLLABLE NE
+1296   ETHIOPIC SYLLABLE NO
+1297   ETHIOPIC SYLLABLE NWA
+1298   ETHIOPIC SYLLABLE NYA
+1299   ETHIOPIC SYLLABLE NYU
+129A   ETHIOPIC SYLLABLE NYI
+129B   ETHIOPIC SYLLABLE NYAA
+129C   ETHIOPIC SYLLABLE NYEE
+129D   ETHIOPIC SYLLABLE NYE
+129E   ETHIOPIC SYLLABLE NYO
+129F   ETHIOPIC SYLLABLE NYWA
+12A0   ETHIOPIC SYLLABLE GLOTTAL A
+12A1   ETHIOPIC SYLLABLE GLOTTAL U
+12A2   ETHIOPIC SYLLABLE GLOTTAL I
+12A3   ETHIOPIC SYLLABLE GLOTTAL AA
+12A4   ETHIOPIC SYLLABLE GLOTTAL EE
+12A5   ETHIOPIC SYLLABLE GLOTTAL E
+12A6   ETHIOPIC SYLLABLE GLOTTAL O
+12A7   ETHIOPIC SYLLABLE GLOTTAL WA
+12A8   ETHIOPIC SYLLABLE KA
+12A9   ETHIOPIC SYLLABLE KU
+12AA   ETHIOPIC SYLLABLE KI
+12AB   ETHIOPIC SYLLABLE KAA
+12AC   ETHIOPIC SYLLABLE KEE
+12AD   ETHIOPIC SYLLABLE KE
+12AE   ETHIOPIC SYLLABLE KO
+12B0   ETHIOPIC SYLLABLE KWA
+12B2   ETHIOPIC SYLLABLE KWI
+12B3   ETHIOPIC SYLLABLE KWAA
+12B4   ETHIOPIC SYLLABLE KWEE
+12B5   ETHIOPIC SYLLABLE KWE
+12B8   ETHIOPIC SYLLABLE KXA
+12B9   ETHIOPIC SYLLABLE KXU
+12BA   ETHIOPIC SYLLABLE KXI
+12BB   ETHIOPIC SYLLABLE KXAA
+12BC   ETHIOPIC SYLLABLE KXEE
+12BD   ETHIOPIC SYLLABLE KXE
+12BE   ETHIOPIC SYLLABLE KXO
+12C0   ETHIOPIC SYLLABLE KXWA
+12C2   ETHIOPIC SYLLABLE KXWI
+12C3   ETHIOPIC SYLLABLE KXWAA
+12C4   ETHIOPIC SYLLABLE KXWEE
+12C5   ETHIOPIC SYLLABLE KXWE
+12C8   ETHIOPIC SYLLABLE WA
+12C9   ETHIOPIC SYLLABLE WU
+12CA   ETHIOPIC SYLLABLE WI
+12CB   ETHIOPIC SYLLABLE WAA
+12CC   ETHIOPIC SYLLABLE WEE
+12CD   ETHIOPIC SYLLABLE WE
+12CE   ETHIOPIC SYLLABLE WO
+12D0   ETHIOPIC SYLLABLE PHARYNGEAL A
+12D1   ETHIOPIC SYLLABLE PHARYNGEAL U
+12D2   ETHIOPIC SYLLABLE PHARYNGEAL I
+12D3   ETHIOPIC SYLLABLE PHARYNGEAL AA
+12D4   ETHIOPIC SYLLABLE PHARYNGEAL EE
+12D5   ETHIOPIC SYLLABLE PHARYNGEAL E
+12D6   ETHIOPIC SYLLABLE PHARYNGEAL O
+12D8   ETHIOPIC SYLLABLE ZA
+12D9   ETHIOPIC SYLLABLE ZU
+12DA   ETHIOPIC SYLLABLE ZI
+12DB   ETHIOPIC SYLLABLE ZAA
+12DC   ETHIOPIC SYLLABLE ZEE
+12DD   ETHIOPIC SYLLABLE ZE
+12DE   ETHIOPIC SYLLABLE ZO
+12DF   ETHIOPIC SYLLABLE ZWA
+12E0   ETHIOPIC SYLLABLE ZHA
+12E1   ETHIOPIC SYLLABLE ZHU
+12E2   ETHIOPIC SYLLABLE ZHI
+12E3   ETHIOPIC SYLLABLE ZHAA
+12E4   ETHIOPIC SYLLABLE ZHEE
+12E5   ETHIOPIC SYLLABLE ZHE
+12E6   ETHIOPIC SYLLABLE ZHO
+12E7   ETHIOPIC SYLLABLE ZHWA
+12E8   ETHIOPIC SYLLABLE YA
+12E9   ETHIOPIC SYLLABLE YU
+12EA   ETHIOPIC SYLLABLE YI
+12EB   ETHIOPIC SYLLABLE YAA
+12EC   ETHIOPIC SYLLABLE YEE
+12ED   ETHIOPIC SYLLABLE YE
+12EE   ETHIOPIC SYLLABLE YO
+12F0   ETHIOPIC SYLLABLE DA
+12F1   ETHIOPIC SYLLABLE DU
+12F2   ETHIOPIC SYLLABLE DI
+12F3   ETHIOPIC SYLLABLE DAA
+12F4   ETHIOPIC SYLLABLE DEE
+12F5   ETHIOPIC SYLLABLE DE
+12F6   ETHIOPIC SYLLABLE DO
+12F7   ETHIOPIC SYLLABLE DWA
+12F8   ETHIOPIC SYLLABLE DDA
+12F9   ETHIOPIC SYLLABLE DDU
+12FA   ETHIOPIC SYLLABLE DDI
+12FB   ETHIOPIC SYLLABLE DDAA
+12FC   ETHIOPIC SYLLABLE DDEE
+12FD   ETHIOPIC SYLLABLE DDE
+12FE   ETHIOPIC SYLLABLE DDO
+12FF   ETHIOPIC SYLLABLE DDWA
+1300   ETHIOPIC SYLLABLE JA
+1301   ETHIOPIC SYLLABLE JU
+1302   ETHIOPIC SYLLABLE JI
+1303   ETHIOPIC SYLLABLE JAA
+1304   ETHIOPIC SYLLABLE JEE
+1305   ETHIOPIC SYLLABLE JE
+1306   ETHIOPIC SYLLABLE JO
+1307   ETHIOPIC SYLLABLE JWA
+1308   ETHIOPIC SYLLABLE GA
+1309   ETHIOPIC SYLLABLE GU
+130A   ETHIOPIC SYLLABLE GI
+130B   ETHIOPIC SYLLABLE GAA
+130C   ETHIOPIC SYLLABLE GEE
+130D   ETHIOPIC SYLLABLE GE
+130E   ETHIOPIC SYLLABLE GO
+1310   ETHIOPIC SYLLABLE GWA
+1312   ETHIOPIC SYLLABLE GWI
+1313   ETHIOPIC SYLLABLE GWAA
+1314   ETHIOPIC SYLLABLE GWEE
+1315   ETHIOPIC SYLLABLE GWE
+1318   ETHIOPIC SYLLABLE GGA
+1319   ETHIOPIC SYLLABLE GGU
+131A   ETHIOPIC SYLLABLE GGI
+131B   ETHIOPIC SYLLABLE GGAA
+131C   ETHIOPIC SYLLABLE GGEE
+131D   ETHIOPIC SYLLABLE GGE
+131E   ETHIOPIC SYLLABLE GGO
+1320   ETHIOPIC SYLLABLE THA
+1321   ETHIOPIC SYLLABLE THU
+1322   ETHIOPIC SYLLABLE THI
+1323   ETHIOPIC SYLLABLE THAA
+1324   ETHIOPIC SYLLABLE THEE
+1325   ETHIOPIC SYLLABLE THE
+1326   ETHIOPIC SYLLABLE THO
+1327   ETHIOPIC SYLLABLE THWA
+1328   ETHIOPIC SYLLABLE CHA
+1329   ETHIOPIC SYLLABLE CHU
+132A   ETHIOPIC SYLLABLE CHI
+132B   ETHIOPIC SYLLABLE CHAA
+132C   ETHIOPIC SYLLABLE CHEE
+132D   ETHIOPIC SYLLABLE CHE
+132E   ETHIOPIC SYLLABLE CHO
+132F   ETHIOPIC SYLLABLE CHWA
+1330   ETHIOPIC SYLLABLE PHA
+1331   ETHIOPIC SYLLABLE PHU
+1332   ETHIOPIC SYLLABLE PHI
+1333   ETHIOPIC SYLLABLE PHAA
+1334   ETHIOPIC SYLLABLE PHEE
+1335   ETHIOPIC SYLLABLE PHE
+1336   ETHIOPIC SYLLABLE PHO
+1337   ETHIOPIC SYLLABLE PHWA
+1338   ETHIOPIC SYLLABLE TSA
+1339   ETHIOPIC SYLLABLE TSU
+133A   ETHIOPIC SYLLABLE TSI
+133B   ETHIOPIC SYLLABLE TSAA
+133C   ETHIOPIC SYLLABLE TSEE
+133D   ETHIOPIC SYLLABLE TSE
+133E   ETHIOPIC SYLLABLE TSO
+133F   ETHIOPIC SYLLABLE TSWA
+1340   ETHIOPIC SYLLABLE TZA
+1341   ETHIOPIC SYLLABLE TZU
+1342   ETHIOPIC SYLLABLE TZI
+1343   ETHIOPIC SYLLABLE TZAA
+1344   ETHIOPIC SYLLABLE TZEE
+1345   ETHIOPIC SYLLABLE TZE
+1346   ETHIOPIC SYLLABLE TZO
+1348   ETHIOPIC SYLLABLE FA
+1349   ETHIOPIC SYLLABLE FU
+134A   ETHIOPIC SYLLABLE FI
+134B   ETHIOPIC SYLLABLE FAA
+134C   ETHIOPIC SYLLABLE FEE
+134D   ETHIOPIC SYLLABLE FE
+134E   ETHIOPIC SYLLABLE FO
+134F   ETHIOPIC SYLLABLE FWA
+1350   ETHIOPIC SYLLABLE PA
+1351   ETHIOPIC SYLLABLE PU
+1352   ETHIOPIC SYLLABLE PI
+1353   ETHIOPIC SYLLABLE PAA
+1354   ETHIOPIC SYLLABLE PEE
+1355   ETHIOPIC SYLLABLE PE
+1356   ETHIOPIC SYLLABLE PO
+1357   ETHIOPIC SYLLABLE PWA
+1358   ETHIOPIC SYLLABLE RYA
+1359   ETHIOPIC SYLLABLE MYA
+135A   ETHIOPIC SYLLABLE FYA
+@              Punctuation
+1361   ETHIOPIC WORDSPACE
+1362   ETHIOPIC FULL STOP
+1363   ETHIOPIC COMMA
+1364   ETHIOPIC SEMICOLON
+1365   ETHIOPIC COLON
+1366   ETHIOPIC PREFACE COLON
+1367   ETHIOPIC QUESTION MARK
+1368   ETHIOPIC PARAGRAPH SEPARATOR
+@              Digits
+1369   ETHIOPIC DIGIT ONE
+136A   ETHIOPIC DIGIT TWO
+136B   ETHIOPIC DIGIT THREE
+136C   ETHIOPIC DIGIT FOUR
+136D   ETHIOPIC DIGIT FIVE
+136E   ETHIOPIC DIGIT SIX
+136F   ETHIOPIC DIGIT SEVEN
+1370   ETHIOPIC DIGIT EIGHT
+1371   ETHIOPIC DIGIT NINE
+@              Numbers
+1372   ETHIOPIC NUMBER TEN
+1373   ETHIOPIC NUMBER TWENTY
+1374   ETHIOPIC NUMBER THIRTY
+1375   ETHIOPIC NUMBER FORTY
+1376   ETHIOPIC NUMBER FIFTY
+1377   ETHIOPIC NUMBER SIXTY
+1378   ETHIOPIC NUMBER SEVENTY
+1379   ETHIOPIC NUMBER EIGHTY
+137A   ETHIOPIC NUMBER NINETY
+137B   ETHIOPIC NUMBER HUNDRED
+137C   ETHIOPIC NUMBER TEN THOUSAND
+@@     13A0    Cherokee        13FF
+@              Syllables
+13A0   CHEROKEE LETTER A
+13A1   CHEROKEE LETTER E
+13A2   CHEROKEE LETTER I
+13A3   CHEROKEE LETTER O
+13A4   CHEROKEE LETTER U
+13A5   CHEROKEE LETTER V
+13A6   CHEROKEE LETTER GA
+13A7   CHEROKEE LETTER KA
+13A8   CHEROKEE LETTER GE
+13A9   CHEROKEE LETTER GI
+13AA   CHEROKEE LETTER GO
+13AB   CHEROKEE LETTER GU
+13AC   CHEROKEE LETTER GV
+13AD   CHEROKEE LETTER HA
+13AE   CHEROKEE LETTER HE
+13AF   CHEROKEE LETTER HI
+13B0   CHEROKEE LETTER HO
+13B1   CHEROKEE LETTER HU
+13B2   CHEROKEE LETTER HV
+13B3   CHEROKEE LETTER LA
+13B4   CHEROKEE LETTER LE
+13B5   CHEROKEE LETTER LI
+13B6   CHEROKEE LETTER LO
+13B7   CHEROKEE LETTER LU
+13B8   CHEROKEE LETTER LV
+13B9   CHEROKEE LETTER MA
+13BA   CHEROKEE LETTER ME
+13BB   CHEROKEE LETTER MI
+13BC   CHEROKEE LETTER MO
+13BD   CHEROKEE LETTER MU
+13BE   CHEROKEE LETTER NA
+13BF   CHEROKEE LETTER HNA
+13C0   CHEROKEE LETTER NAH
+13C1   CHEROKEE LETTER NE
+13C2   CHEROKEE LETTER NI
+13C3   CHEROKEE LETTER NO
+13C4   CHEROKEE LETTER NU
+13C5   CHEROKEE LETTER NV
+13C6   CHEROKEE LETTER QUA
+13C7   CHEROKEE LETTER QUE
+13C8   CHEROKEE LETTER QUI
+13C9   CHEROKEE LETTER QUO
+13CA   CHEROKEE LETTER QUU
+13CB   CHEROKEE LETTER QUV
+13CC   CHEROKEE LETTER SA
+13CD   CHEROKEE LETTER S
+13CE   CHEROKEE LETTER SE
+13CF   CHEROKEE LETTER SI
+13D0   CHEROKEE LETTER SO
+13D1   CHEROKEE LETTER SU
+13D2   CHEROKEE LETTER SV
+13D3   CHEROKEE LETTER DA
+13D4   CHEROKEE LETTER TA
+13D5   CHEROKEE LETTER DE
+13D6   CHEROKEE LETTER TE
+13D7   CHEROKEE LETTER DI
+13D8   CHEROKEE LETTER TI
+13D9   CHEROKEE LETTER DO
+13DA   CHEROKEE LETTER DU
+13DB   CHEROKEE LETTER DV
+13DC   CHEROKEE LETTER DLA
+13DD   CHEROKEE LETTER TLA
+13DE   CHEROKEE LETTER TLE
+13DF   CHEROKEE LETTER TLI
+13E0   CHEROKEE LETTER TLO
+13E1   CHEROKEE LETTER TLU
+13E2   CHEROKEE LETTER TLV
+13E3   CHEROKEE LETTER TSA
+13E4   CHEROKEE LETTER TSE
+13E5   CHEROKEE LETTER TSI
+13E6   CHEROKEE LETTER TSO
+13E7   CHEROKEE LETTER TSU
+13E8   CHEROKEE LETTER TSV
+13E9   CHEROKEE LETTER WA
+13EA   CHEROKEE LETTER WE
+13EB   CHEROKEE LETTER WI
+13EC   CHEROKEE LETTER WO
+13ED   CHEROKEE LETTER WU
+13EE   CHEROKEE LETTER WV
+13EF   CHEROKEE LETTER YA
+13F0   CHEROKEE LETTER YE
+13F1   CHEROKEE LETTER YI
+13F2   CHEROKEE LETTER YO
+13F3   CHEROKEE LETTER YU
+13F4   CHEROKEE LETTER YV
+@@     1400    Unified Canadian Aboriginal Syllabics   167F
+@              Syllables
+1401   CANADIAN SYLLABICS E
+1402   CANADIAN SYLLABICS AAI
+1403   CANADIAN SYLLABICS I
+1404   CANADIAN SYLLABICS II
+1405   CANADIAN SYLLABICS O
+1406   CANADIAN SYLLABICS OO
+1407   CANADIAN SYLLABICS Y-CREE OO
+1408   CANADIAN SYLLABICS CARRIER EE
+1409   CANADIAN SYLLABICS CARRIER I
+140A   CANADIAN SYLLABICS A
+140B   CANADIAN SYLLABICS AA
+140C   CANADIAN SYLLABICS WE
+140D   CANADIAN SYLLABICS WEST-CREE WE
+140E   CANADIAN SYLLABICS WI
+140F   CANADIAN SYLLABICS WEST-CREE WI
+1410   CANADIAN SYLLABICS WII
+1411   CANADIAN SYLLABICS WEST-CREE WII
+1412   CANADIAN SYLLABICS WO
+1413   CANADIAN SYLLABICS WEST-CREE WO
+1414   CANADIAN SYLLABICS WOO
+1415   CANADIAN SYLLABICS WEST-CREE WOO
+1416   CANADIAN SYLLABICS NASKAPI WOO
+1417   CANADIAN SYLLABICS WA
+1418   CANADIAN SYLLABICS WEST-CREE WA
+1419   CANADIAN SYLLABICS WAA
+141A   CANADIAN SYLLABICS WEST-CREE WAA
+141B   CANADIAN SYLLABICS NASKAPI WAA
+141C   CANADIAN SYLLABICS AI
+141D   CANADIAN SYLLABICS Y-CREE W
+141E   CANADIAN SYLLABICS GLOTTAL STOP
+141F   CANADIAN SYLLABICS FINAL ACUTE
+1420   CANADIAN SYLLABICS FINAL GRAVE
+1421   CANADIAN SYLLABICS FINAL BOTTOM HALF RING
+1422   CANADIAN SYLLABICS FINAL TOP HALF RING
+1423   CANADIAN SYLLABICS FINAL RIGHT HALF RING
+1424   CANADIAN SYLLABICS FINAL RING
+1425   CANADIAN SYLLABICS FINAL DOUBLE ACUTE
+1426   CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES
+1427   CANADIAN SYLLABICS FINAL MIDDLE DOT
+1428   CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE
+1429   CANADIAN SYLLABICS FINAL PLUS
+142A   CANADIAN SYLLABICS FINAL DOWN TACK
+142B   CANADIAN SYLLABICS EN
+142C   CANADIAN SYLLABICS IN
+142D   CANADIAN SYLLABICS ON
+142E   CANADIAN SYLLABICS AN
+142F   CANADIAN SYLLABICS PE
+1430   CANADIAN SYLLABICS PAAI
+1431   CANADIAN SYLLABICS PI
+1432   CANADIAN SYLLABICS PII
+1433   CANADIAN SYLLABICS PO
+1434   CANADIAN SYLLABICS POO
+1435   CANADIAN SYLLABICS Y-CREE POO
+1436   CANADIAN SYLLABICS CARRIER HEE
+1437   CANADIAN SYLLABICS CARRIER HI
+1438   CANADIAN SYLLABICS PA
+1439   CANADIAN SYLLABICS PAA
+143A   CANADIAN SYLLABICS PWE
+143B   CANADIAN SYLLABICS WEST-CREE PWE
+143C   CANADIAN SYLLABICS PWI
+143D   CANADIAN SYLLABICS WEST-CREE PWI
+143E   CANADIAN SYLLABICS PWII
+143F   CANADIAN SYLLABICS WEST-CREE PWII
+1440   CANADIAN SYLLABICS PWO
+1441   CANADIAN SYLLABICS WEST-CREE PWO
+1442   CANADIAN SYLLABICS PWOO
+1443   CANADIAN SYLLABICS WEST-CREE PWOO
+1444   CANADIAN SYLLABICS PWA
+1445   CANADIAN SYLLABICS WEST-CREE PWA
+1446   CANADIAN SYLLABICS PWAA
+1447   CANADIAN SYLLABICS WEST-CREE PWAA
+1448   CANADIAN SYLLABICS Y-CREE PWAA
+1449   CANADIAN SYLLABICS P
+144A   CANADIAN SYLLABICS WEST-CREE P
+144B   CANADIAN SYLLABICS CARRIER H
+144C   CANADIAN SYLLABICS TE
+144D   CANADIAN SYLLABICS TAAI
+144E   CANADIAN SYLLABICS TI
+144F   CANADIAN SYLLABICS TII
+1450   CANADIAN SYLLABICS TO
+1451   CANADIAN SYLLABICS TOO
+1452   CANADIAN SYLLABICS Y-CREE TOO
+1453   CANADIAN SYLLABICS CARRIER DEE
+1454   CANADIAN SYLLABICS CARRIER DI
+1455   CANADIAN SYLLABICS TA
+1456   CANADIAN SYLLABICS TAA
+1457   CANADIAN SYLLABICS TWE
+1458   CANADIAN SYLLABICS WEST-CREE TWE
+1459   CANADIAN SYLLABICS TWI
+145A   CANADIAN SYLLABICS WEST-CREE TWI
+145B   CANADIAN SYLLABICS TWII
+145C   CANADIAN SYLLABICS WEST-CREE TWII
+145D   CANADIAN SYLLABICS TWO
+145E   CANADIAN SYLLABICS WEST-CREE TWO
+145F   CANADIAN SYLLABICS TWOO
+1460   CANADIAN SYLLABICS WEST-CREE TWOO
+1461   CANADIAN SYLLABICS TWA
+1462   CANADIAN SYLLABICS WEST-CREE TWA
+1463   CANADIAN SYLLABICS TWAA
+1464   CANADIAN SYLLABICS WEST-CREE TWAA
+1465   CANADIAN SYLLABICS NASKAPI TWAA
+1466   CANADIAN SYLLABICS T
+1467   CANADIAN SYLLABICS TTE
+1468   CANADIAN SYLLABICS TTI
+1469   CANADIAN SYLLABICS TTO
+146A   CANADIAN SYLLABICS TTA
+146B   CANADIAN SYLLABICS KE
+146C   CANADIAN SYLLABICS KAAI
+146D   CANADIAN SYLLABICS KI
+146E   CANADIAN SYLLABICS KII
+146F   CANADIAN SYLLABICS KO
+1470   CANADIAN SYLLABICS KOO
+1471   CANADIAN SYLLABICS Y-CREE KOO
+1472   CANADIAN SYLLABICS KA
+1473   CANADIAN SYLLABICS KAA
+1474   CANADIAN SYLLABICS KWE
+1475   CANADIAN SYLLABICS WEST-CREE KWE
+1476   CANADIAN SYLLABICS KWI
+1477   CANADIAN SYLLABICS WEST-CREE KWI
+1478   CANADIAN SYLLABICS KWII
+1479   CANADIAN SYLLABICS WEST-CREE KWII
+147A   CANADIAN SYLLABICS KWO
+147B   CANADIAN SYLLABICS WEST-CREE KWO
+147C   CANADIAN SYLLABICS KWOO
+147D   CANADIAN SYLLABICS WEST-CREE KWOO
+147E   CANADIAN SYLLABICS KWA
+147F   CANADIAN SYLLABICS WEST-CREE KWA
+1480   CANADIAN SYLLABICS KWAA
+1481   CANADIAN SYLLABICS WEST-CREE KWAA
+1482   CANADIAN SYLLABICS NASKAPI KWAA
+1483   CANADIAN SYLLABICS K
+1484   CANADIAN SYLLABICS KW
+1485   CANADIAN SYLLABICS SOUTH-SLAVEY KEH
+1486   CANADIAN SYLLABICS SOUTH-SLAVEY KIH
+1487   CANADIAN SYLLABICS SOUTH-SLAVEY KOH
+1488   CANADIAN SYLLABICS SOUTH-SLAVEY KAH
+1489   CANADIAN SYLLABICS CE
+148A   CANADIAN SYLLABICS CAAI
+148B   CANADIAN SYLLABICS CI
+148C   CANADIAN SYLLABICS CII
+148D   CANADIAN SYLLABICS CO
+148E   CANADIAN SYLLABICS COO
+148F   CANADIAN SYLLABICS Y-CREE COO
+1490   CANADIAN SYLLABICS CA
+1491   CANADIAN SYLLABICS CAA
+1492   CANADIAN SYLLABICS CWE
+1493   CANADIAN SYLLABICS WEST-CREE CWE
+1494   CANADIAN SYLLABICS CWI
+1495   CANADIAN SYLLABICS WEST-CREE CWI
+1496   CANADIAN SYLLABICS CWII
+1497   CANADIAN SYLLABICS WEST-CREE CWII
+1498   CANADIAN SYLLABICS CWO
+1499   CANADIAN SYLLABICS WEST-CREE CWO
+149A   CANADIAN SYLLABICS CWOO
+149B   CANADIAN SYLLABICS WEST-CREE CWOO
+149C   CANADIAN SYLLABICS CWA
+149D   CANADIAN SYLLABICS WEST-CREE CWA
+149E   CANADIAN SYLLABICS CWAA
+149F   CANADIAN SYLLABICS WEST-CREE CWAA
+14A0   CANADIAN SYLLABICS NASKAPI CWAA
+14A1   CANADIAN SYLLABICS C
+14A2   CANADIAN SYLLABICS SAYISI TH
+14A3   CANADIAN SYLLABICS ME
+14A4   CANADIAN SYLLABICS MAAI
+14A5   CANADIAN SYLLABICS MI
+14A6   CANADIAN SYLLABICS MII
+14A7   CANADIAN SYLLABICS MO
+14A8   CANADIAN SYLLABICS MOO
+14A9   CANADIAN SYLLABICS Y-CREE MOO
+14AA   CANADIAN SYLLABICS MA
+14AB   CANADIAN SYLLABICS MAA
+14AC   CANADIAN SYLLABICS MWE
+14AD   CANADIAN SYLLABICS WEST-CREE MWE
+14AE   CANADIAN SYLLABICS MWI
+14AF   CANADIAN SYLLABICS WEST-CREE MWI
+14B0   CANADIAN SYLLABICS MWII
+14B1   CANADIAN SYLLABICS WEST-CREE MWII
+14B2   CANADIAN SYLLABICS MWO
+14B3   CANADIAN SYLLABICS WEST-CREE MWO
+14B4   CANADIAN SYLLABICS MWOO
+14B5   CANADIAN SYLLABICS WEST-CREE MWOO
+14B6   CANADIAN SYLLABICS MWA
+14B7   CANADIAN SYLLABICS WEST-CREE MWA
+14B8   CANADIAN SYLLABICS MWAA
+14B9   CANADIAN SYLLABICS WEST-CREE MWAA
+14BA   CANADIAN SYLLABICS NASKAPI MWAA
+14BB   CANADIAN SYLLABICS M
+14BC   CANADIAN SYLLABICS WEST-CREE M
+14BD   CANADIAN SYLLABICS MH
+14BE   CANADIAN SYLLABICS ATHAPASCAN M
+14BF   CANADIAN SYLLABICS SAYISI M
+14C0   CANADIAN SYLLABICS NE
+14C1   CANADIAN SYLLABICS NAAI
+14C2   CANADIAN SYLLABICS NI
+14C3   CANADIAN SYLLABICS NII
+14C4   CANADIAN SYLLABICS NO
+14C5   CANADIAN SYLLABICS NOO
+14C6   CANADIAN SYLLABICS Y-CREE NOO
+14C7   CANADIAN SYLLABICS NA
+14C8   CANADIAN SYLLABICS NAA
+14C9   CANADIAN SYLLABICS NWE
+14CA   CANADIAN SYLLABICS WEST-CREE NWE
+14CB   CANADIAN SYLLABICS NWA
+14CC   CANADIAN SYLLABICS WEST-CREE NWA
+14CD   CANADIAN SYLLABICS NWAA
+14CE   CANADIAN SYLLABICS WEST-CREE NWAA
+14CF   CANADIAN SYLLABICS NASKAPI NWAA
+14D0   CANADIAN SYLLABICS N
+14D1   CANADIAN SYLLABICS CARRIER NG
+14D2   CANADIAN SYLLABICS NH
+14D3   CANADIAN SYLLABICS LE
+14D4   CANADIAN SYLLABICS LAAI
+14D5   CANADIAN SYLLABICS LI
+14D6   CANADIAN SYLLABICS LII
+14D7   CANADIAN SYLLABICS LO
+14D8   CANADIAN SYLLABICS LOO
+14D9   CANADIAN SYLLABICS Y-CREE LOO
+14DA   CANADIAN SYLLABICS LA
+14DB   CANADIAN SYLLABICS LAA
+14DC   CANADIAN SYLLABICS LWE
+14DD   CANADIAN SYLLABICS WEST-CREE LWE
+14DE   CANADIAN SYLLABICS LWI
+14DF   CANADIAN SYLLABICS WEST-CREE LWI
+14E0   CANADIAN SYLLABICS LWII
+14E1   CANADIAN SYLLABICS WEST-CREE LWII
+14E2   CANADIAN SYLLABICS LWO
+14E3   CANADIAN SYLLABICS WEST-CREE LWO
+14E4   CANADIAN SYLLABICS LWOO
+14E5   CANADIAN SYLLABICS WEST-CREE LWOO
+14E6   CANADIAN SYLLABICS LWA
+14E7   CANADIAN SYLLABICS WEST-CREE LWA
+14E8   CANADIAN SYLLABICS LWAA
+14E9   CANADIAN SYLLABICS WEST-CREE LWAA
+14EA   CANADIAN SYLLABICS L
+14EB   CANADIAN SYLLABICS WEST-CREE L
+14EC   CANADIAN SYLLABICS MEDIAL L
+14ED   CANADIAN SYLLABICS SE
+14EE   CANADIAN SYLLABICS SAAI
+14EF   CANADIAN SYLLABICS SI
+14F0   CANADIAN SYLLABICS SII
+14F1   CANADIAN SYLLABICS SO
+14F2   CANADIAN SYLLABICS SOO
+14F3   CANADIAN SYLLABICS Y-CREE SOO
+14F4   CANADIAN SYLLABICS SA
+14F5   CANADIAN SYLLABICS SAA
+14F6   CANADIAN SYLLABICS SWE
+14F7   CANADIAN SYLLABICS WEST-CREE SWE
+14F8   CANADIAN SYLLABICS SWI
+14F9   CANADIAN SYLLABICS WEST-CREE SWI
+14FA   CANADIAN SYLLABICS SWII
+14FB   CANADIAN SYLLABICS WEST-CREE SWII
+14FC   CANADIAN SYLLABICS SWO
+14FD   CANADIAN SYLLABICS WEST-CREE SWO
+14FE   CANADIAN SYLLABICS SWOO
+14FF   CANADIAN SYLLABICS WEST-CREE SWOO
+1500   CANADIAN SYLLABICS SWA
+1501   CANADIAN SYLLABICS WEST-CREE SWA
+1502   CANADIAN SYLLABICS SWAA
+1503   CANADIAN SYLLABICS WEST-CREE SWAA
+1504   CANADIAN SYLLABICS NASKAPI SWAA
+1505   CANADIAN SYLLABICS S
+1506   CANADIAN SYLLABICS ATHAPASCAN S
+1507   CANADIAN SYLLABICS SW
+1508   CANADIAN SYLLABICS BLACKFOOT S
+1509   CANADIAN SYLLABICS MOOSE-CREE SK
+150A   CANADIAN SYLLABICS NASKAPI SKW
+150B   CANADIAN SYLLABICS NASKAPI S-W
+150C   CANADIAN SYLLABICS NASKAPI SPWA
+150D   CANADIAN SYLLABICS NASKAPI STWA
+150E   CANADIAN SYLLABICS NASKAPI SKWA
+150F   CANADIAN SYLLABICS NASKAPI SCWA
+1510   CANADIAN SYLLABICS SHE
+1511   CANADIAN SYLLABICS SHI
+1512   CANADIAN SYLLABICS SHII
+1513   CANADIAN SYLLABICS SHO
+1514   CANADIAN SYLLABICS SHOO
+1515   CANADIAN SYLLABICS SHA
+1516   CANADIAN SYLLABICS SHAA
+1517   CANADIAN SYLLABICS SHWE
+1518   CANADIAN SYLLABICS WEST-CREE SHWE
+1519   CANADIAN SYLLABICS SHWI
+151A   CANADIAN SYLLABICS WEST-CREE SHWI
+151B   CANADIAN SYLLABICS SHWII
+151C   CANADIAN SYLLABICS WEST-CREE SHWII
+151D   CANADIAN SYLLABICS SHWO
+151E   CANADIAN SYLLABICS WEST-CREE SHWO
+151F   CANADIAN SYLLABICS SHWOO
+1520   CANADIAN SYLLABICS WEST-CREE SHWOO
+1521   CANADIAN SYLLABICS SHWA
+1522   CANADIAN SYLLABICS WEST-CREE SHWA
+1523   CANADIAN SYLLABICS SHWAA
+1524   CANADIAN SYLLABICS WEST-CREE SHWAA
+1525   CANADIAN SYLLABICS SH
+1526   CANADIAN SYLLABICS YE
+1527   CANADIAN SYLLABICS YAAI
+1528   CANADIAN SYLLABICS YI
+1529   CANADIAN SYLLABICS YII
+152A   CANADIAN SYLLABICS YO
+152B   CANADIAN SYLLABICS YOO
+152C   CANADIAN SYLLABICS Y-CREE YOO
+152D   CANADIAN SYLLABICS YA
+152E   CANADIAN SYLLABICS YAA
+152F   CANADIAN SYLLABICS YWE
+1530   CANADIAN SYLLABICS WEST-CREE YWE
+1531   CANADIAN SYLLABICS YWI
+1532   CANADIAN SYLLABICS WEST-CREE YWI
+1533   CANADIAN SYLLABICS YWII
+1534   CANADIAN SYLLABICS WEST-CREE YWII
+1535   CANADIAN SYLLABICS YWO
+1536   CANADIAN SYLLABICS WEST-CREE YWO
+1537   CANADIAN SYLLABICS YWOO
+1538   CANADIAN SYLLABICS WEST-CREE YWOO
+1539   CANADIAN SYLLABICS YWA
+153A   CANADIAN SYLLABICS WEST-CREE YWA
+153B   CANADIAN SYLLABICS YWAA
+153C   CANADIAN SYLLABICS WEST-CREE YWAA
+153D   CANADIAN SYLLABICS NASKAPI YWAA
+153E   CANADIAN SYLLABICS Y
+153F   CANADIAN SYLLABICS BIBLE-CREE Y
+1540   CANADIAN SYLLABICS WEST-CREE Y
+1541   CANADIAN SYLLABICS SAYISI YI
+1542   CANADIAN SYLLABICS RE
+1543   CANADIAN SYLLABICS R-CREE RE
+1544   CANADIAN SYLLABICS WEST-CREE LE
+1545   CANADIAN SYLLABICS RAAI
+1546   CANADIAN SYLLABICS RI
+1547   CANADIAN SYLLABICS RII
+1548   CANADIAN SYLLABICS RO
+1549   CANADIAN SYLLABICS ROO
+154A   CANADIAN SYLLABICS WEST-CREE LO
+154B   CANADIAN SYLLABICS RA
+154C   CANADIAN SYLLABICS RAA
+154D   CANADIAN SYLLABICS WEST-CREE LA
+154E   CANADIAN SYLLABICS RWAA
+154F   CANADIAN SYLLABICS WEST-CREE RWAA
+1550   CANADIAN SYLLABICS R
+1551   CANADIAN SYLLABICS WEST-CREE R
+1552   CANADIAN SYLLABICS MEDIAL R
+1553   CANADIAN SYLLABICS FE
+1554   CANADIAN SYLLABICS FAAI
+1555   CANADIAN SYLLABICS FI
+1556   CANADIAN SYLLABICS FII
+1557   CANADIAN SYLLABICS FO
+1558   CANADIAN SYLLABICS FOO
+1559   CANADIAN SYLLABICS FA
+155A   CANADIAN SYLLABICS FAA
+155B   CANADIAN SYLLABICS FWAA
+155C   CANADIAN SYLLABICS WEST-CREE FWAA
+155D   CANADIAN SYLLABICS F
+155E   CANADIAN SYLLABICS THE
+155F   CANADIAN SYLLABICS N-CREE THE
+1560   CANADIAN SYLLABICS THI
+1561   CANADIAN SYLLABICS N-CREE THI
+1562   CANADIAN SYLLABICS THII
+1563   CANADIAN SYLLABICS N-CREE THII
+1564   CANADIAN SYLLABICS THO
+1565   CANADIAN SYLLABICS THOO
+1566   CANADIAN SYLLABICS THA
+1567   CANADIAN SYLLABICS THAA
+1568   CANADIAN SYLLABICS THWAA
+1569   CANADIAN SYLLABICS WEST-CREE THWAA
+156A   CANADIAN SYLLABICS TH
+156B   CANADIAN SYLLABICS TTHE
+156C   CANADIAN SYLLABICS TTHI
+156D   CANADIAN SYLLABICS TTHO
+156E   CANADIAN SYLLABICS TTHA
+156F   CANADIAN SYLLABICS TTH
+1570   CANADIAN SYLLABICS TYE
+1571   CANADIAN SYLLABICS TYI
+1572   CANADIAN SYLLABICS TYO
+1573   CANADIAN SYLLABICS TYA
+1574   CANADIAN SYLLABICS NUNAVIK HE
+1575   CANADIAN SYLLABICS NUNAVIK HI
+1576   CANADIAN SYLLABICS NUNAVIK HII
+1577   CANADIAN SYLLABICS NUNAVIK HO
+1578   CANADIAN SYLLABICS NUNAVIK HOO
+1579   CANADIAN SYLLABICS NUNAVIK HA
+157A   CANADIAN SYLLABICS NUNAVIK HAA
+157B   CANADIAN SYLLABICS NUNAVIK H
+157C   CANADIAN SYLLABICS NUNAVUT H
+157D   CANADIAN SYLLABICS HK
+157E   CANADIAN SYLLABICS QAAI
+157F   CANADIAN SYLLABICS QI
+1580   CANADIAN SYLLABICS QII
+1581   CANADIAN SYLLABICS QO
+1582   CANADIAN SYLLABICS QOO
+1583   CANADIAN SYLLABICS QA
+1584   CANADIAN SYLLABICS QAA
+1585   CANADIAN SYLLABICS Q
+1586   CANADIAN SYLLABICS TLHE
+1587   CANADIAN SYLLABICS TLHI
+1588   CANADIAN SYLLABICS TLHO
+1589   CANADIAN SYLLABICS TLHA
+158A   CANADIAN SYLLABICS WEST-CREE RE
+158B   CANADIAN SYLLABICS WEST-CREE RI
+158C   CANADIAN SYLLABICS WEST-CREE RO
+158D   CANADIAN SYLLABICS WEST-CREE RA
+158E   CANADIAN SYLLABICS NGAAI
+158F   CANADIAN SYLLABICS NGI
+1590   CANADIAN SYLLABICS NGII
+1591   CANADIAN SYLLABICS NGO
+1592   CANADIAN SYLLABICS NGOO
+1593   CANADIAN SYLLABICS NGA
+1594   CANADIAN SYLLABICS NGAA
+1595   CANADIAN SYLLABICS NG
+1596   CANADIAN SYLLABICS NNG
+1597   CANADIAN SYLLABICS SAYISI SHE
+1598   CANADIAN SYLLABICS SAYISI SHI
+1599   CANADIAN SYLLABICS SAYISI SHO
+159A   CANADIAN SYLLABICS SAYISI SHA
+159B   CANADIAN SYLLABICS WOODS-CREE THE
+159C   CANADIAN SYLLABICS WOODS-CREE THI
+159D   CANADIAN SYLLABICS WOODS-CREE THO
+159E   CANADIAN SYLLABICS WOODS-CREE THA
+159F   CANADIAN SYLLABICS WOODS-CREE TH
+15A0   CANADIAN SYLLABICS LHI
+15A1   CANADIAN SYLLABICS LHII
+15A2   CANADIAN SYLLABICS LHO
+15A3   CANADIAN SYLLABICS LHOO
+15A4   CANADIAN SYLLABICS LHA
+15A5   CANADIAN SYLLABICS LHAA
+15A6   CANADIAN SYLLABICS LH
+15A7   CANADIAN SYLLABICS TH-CREE THE
+15A8   CANADIAN SYLLABICS TH-CREE THI
+15A9   CANADIAN SYLLABICS TH-CREE THII
+15AA   CANADIAN SYLLABICS TH-CREE THO
+15AB   CANADIAN SYLLABICS TH-CREE THOO
+15AC   CANADIAN SYLLABICS TH-CREE THA
+15AD   CANADIAN SYLLABICS TH-CREE THAA
+15AE   CANADIAN SYLLABICS TH-CREE TH
+15AF   CANADIAN SYLLABICS AIVILIK B
+15B0   CANADIAN SYLLABICS BLACKFOOT E
+15B1   CANADIAN SYLLABICS BLACKFOOT I
+15B2   CANADIAN SYLLABICS BLACKFOOT O
+15B3   CANADIAN SYLLABICS BLACKFOOT A
+15B4   CANADIAN SYLLABICS BLACKFOOT WE
+15B5   CANADIAN SYLLABICS BLACKFOOT WI
+15B6   CANADIAN SYLLABICS BLACKFOOT WO
+15B7   CANADIAN SYLLABICS BLACKFOOT WA
+15B8   CANADIAN SYLLABICS BLACKFOOT NE
+15B9   CANADIAN SYLLABICS BLACKFOOT NI
+15BA   CANADIAN SYLLABICS BLACKFOOT NO
+15BB   CANADIAN SYLLABICS BLACKFOOT NA
+15BC   CANADIAN SYLLABICS BLACKFOOT KE
+15BD   CANADIAN SYLLABICS BLACKFOOT KI
+15BE   CANADIAN SYLLABICS BLACKFOOT KO
+15BF   CANADIAN SYLLABICS BLACKFOOT KA
+15C0   CANADIAN SYLLABICS SAYISI HE
+15C1   CANADIAN SYLLABICS SAYISI HI
+15C2   CANADIAN SYLLABICS SAYISI HO
+15C3   CANADIAN SYLLABICS SAYISI HA
+15C4   CANADIAN SYLLABICS CARRIER GHU
+15C5   CANADIAN SYLLABICS CARRIER GHO
+15C6   CANADIAN SYLLABICS CARRIER GHE
+15C7   CANADIAN SYLLABICS CARRIER GHEE
+15C8   CANADIAN SYLLABICS CARRIER GHI
+15C9   CANADIAN SYLLABICS CARRIER GHA
+15CA   CANADIAN SYLLABICS CARRIER RU
+15CB   CANADIAN SYLLABICS CARRIER RO
+15CC   CANADIAN SYLLABICS CARRIER RE
+15CD   CANADIAN SYLLABICS CARRIER REE
+15CE   CANADIAN SYLLABICS CARRIER RI
+15CF   CANADIAN SYLLABICS CARRIER RA
+15D0   CANADIAN SYLLABICS CARRIER WU
+15D1   CANADIAN SYLLABICS CARRIER WO
+15D2   CANADIAN SYLLABICS CARRIER WE
+15D3   CANADIAN SYLLABICS CARRIER WEE
+15D4   CANADIAN SYLLABICS CARRIER WI
+15D5   CANADIAN SYLLABICS CARRIER WA
+15D6   CANADIAN SYLLABICS CARRIER HWU
+15D7   CANADIAN SYLLABICS CARRIER HWO
+15D8   CANADIAN SYLLABICS CARRIER HWE
+15D9   CANADIAN SYLLABICS CARRIER HWEE
+15DA   CANADIAN SYLLABICS CARRIER HWI
+15DB   CANADIAN SYLLABICS CARRIER HWA
+15DC   CANADIAN SYLLABICS CARRIER THU
+15DD   CANADIAN SYLLABICS CARRIER THO
+15DE   CANADIAN SYLLABICS CARRIER THE
+15DF   CANADIAN SYLLABICS CARRIER THEE
+15E0   CANADIAN SYLLABICS CARRIER THI
+15E1   CANADIAN SYLLABICS CARRIER THA
+15E2   CANADIAN SYLLABICS CARRIER TTU
+15E3   CANADIAN SYLLABICS CARRIER TTO
+15E4   CANADIAN SYLLABICS CARRIER TTE
+15E5   CANADIAN SYLLABICS CARRIER TTEE
+15E6   CANADIAN SYLLABICS CARRIER TTI
+15E7   CANADIAN SYLLABICS CARRIER TTA
+15E8   CANADIAN SYLLABICS CARRIER PU
+15E9   CANADIAN SYLLABICS CARRIER PO
+15EA   CANADIAN SYLLABICS CARRIER PE
+15EB   CANADIAN SYLLABICS CARRIER PEE
+15EC   CANADIAN SYLLABICS CARRIER PI
+15ED   CANADIAN SYLLABICS CARRIER PA
+15EE   CANADIAN SYLLABICS CARRIER P
+15EF   CANADIAN SYLLABICS CARRIER GU
+15F0   CANADIAN SYLLABICS CARRIER GO
+15F1   CANADIAN SYLLABICS CARRIER GE
+15F2   CANADIAN SYLLABICS CARRIER GEE
+15F3   CANADIAN SYLLABICS CARRIER GI
+15F4   CANADIAN SYLLABICS CARRIER GA
+15F5   CANADIAN SYLLABICS CARRIER KHU
+15F6   CANADIAN SYLLABICS CARRIER KHO
+15F7   CANADIAN SYLLABICS CARRIER KHE
+15F8   CANADIAN SYLLABICS CARRIER KHEE
+15F9   CANADIAN SYLLABICS CARRIER KHI
+15FA   CANADIAN SYLLABICS CARRIER KHA
+15FB   CANADIAN SYLLABICS CARRIER KKU
+15FC   CANADIAN SYLLABICS CARRIER KKO
+15FD   CANADIAN SYLLABICS CARRIER KKE
+15FE   CANADIAN SYLLABICS CARRIER KKEE
+15FF   CANADIAN SYLLABICS CARRIER KKI
+1600   CANADIAN SYLLABICS CARRIER KKA
+1601   CANADIAN SYLLABICS CARRIER KK
+1602   CANADIAN SYLLABICS CARRIER NU
+1603   CANADIAN SYLLABICS CARRIER NO
+1604   CANADIAN SYLLABICS CARRIER NE
+1605   CANADIAN SYLLABICS CARRIER NEE
+1606   CANADIAN SYLLABICS CARRIER NI
+1607   CANADIAN SYLLABICS CARRIER NA
+1608   CANADIAN SYLLABICS CARRIER MU
+1609   CANADIAN SYLLABICS CARRIER MO
+160A   CANADIAN SYLLABICS CARRIER ME
+160B   CANADIAN SYLLABICS CARRIER MEE
+160C   CANADIAN SYLLABICS CARRIER MI
+160D   CANADIAN SYLLABICS CARRIER MA
+160E   CANADIAN SYLLABICS CARRIER YU
+160F   CANADIAN SYLLABICS CARRIER YO
+1610   CANADIAN SYLLABICS CARRIER YE
+1611   CANADIAN SYLLABICS CARRIER YEE
+1612   CANADIAN SYLLABICS CARRIER YI
+1613   CANADIAN SYLLABICS CARRIER YA
+1614   CANADIAN SYLLABICS CARRIER JU
+1615   CANADIAN SYLLABICS SAYISI JU
+1616   CANADIAN SYLLABICS CARRIER JO
+1617   CANADIAN SYLLABICS CARRIER JE
+1618   CANADIAN SYLLABICS CARRIER JEE
+1619   CANADIAN SYLLABICS CARRIER JI
+161A   CANADIAN SYLLABICS SAYISI JI
+161B   CANADIAN SYLLABICS CARRIER JA
+161C   CANADIAN SYLLABICS CARRIER JJU
+161D   CANADIAN SYLLABICS CARRIER JJO
+161E   CANADIAN SYLLABICS CARRIER JJE
+161F   CANADIAN SYLLABICS CARRIER JJEE
+1620   CANADIAN SYLLABICS CARRIER JJI
+1621   CANADIAN SYLLABICS CARRIER JJA
+1622   CANADIAN SYLLABICS CARRIER LU
+1623   CANADIAN SYLLABICS CARRIER LO
+1624   CANADIAN SYLLABICS CARRIER LE
+1625   CANADIAN SYLLABICS CARRIER LEE
+1626   CANADIAN SYLLABICS CARRIER LI
+1627   CANADIAN SYLLABICS CARRIER LA
+1628   CANADIAN SYLLABICS CARRIER DLU
+1629   CANADIAN SYLLABICS CARRIER DLO
+162A   CANADIAN SYLLABICS CARRIER DLE
+162B   CANADIAN SYLLABICS CARRIER DLEE
+162C   CANADIAN SYLLABICS CARRIER DLI
+162D   CANADIAN SYLLABICS CARRIER DLA
+162E   CANADIAN SYLLABICS CARRIER LHU
+162F   CANADIAN SYLLABICS CARRIER LHO
+1630   CANADIAN SYLLABICS CARRIER LHE
+1631   CANADIAN SYLLABICS CARRIER LHEE
+1632   CANADIAN SYLLABICS CARRIER LHI
+1633   CANADIAN SYLLABICS CARRIER LHA
+1634   CANADIAN SYLLABICS CARRIER TLHU
+1635   CANADIAN SYLLABICS CARRIER TLHO
+1636   CANADIAN SYLLABICS CARRIER TLHE
+1637   CANADIAN SYLLABICS CARRIER TLHEE
+1638   CANADIAN SYLLABICS CARRIER TLHI
+1639   CANADIAN SYLLABICS CARRIER TLHA
+163A   CANADIAN SYLLABICS CARRIER TLU
+163B   CANADIAN SYLLABICS CARRIER TLO
+163C   CANADIAN SYLLABICS CARRIER TLE
+163D   CANADIAN SYLLABICS CARRIER TLEE
+163E   CANADIAN SYLLABICS CARRIER TLI
+163F   CANADIAN SYLLABICS CARRIER TLA
+1640   CANADIAN SYLLABICS CARRIER ZU
+1641   CANADIAN SYLLABICS CARRIER ZO
+1642   CANADIAN SYLLABICS CARRIER ZE
+1643   CANADIAN SYLLABICS CARRIER ZEE
+1644   CANADIAN SYLLABICS CARRIER ZI
+1645   CANADIAN SYLLABICS CARRIER ZA
+1646   CANADIAN SYLLABICS CARRIER Z
+1647   CANADIAN SYLLABICS CARRIER INITIAL Z
+1648   CANADIAN SYLLABICS CARRIER DZU
+1649   CANADIAN SYLLABICS CARRIER DZO
+164A   CANADIAN SYLLABICS CARRIER DZE
+164B   CANADIAN SYLLABICS CARRIER DZEE
+164C   CANADIAN SYLLABICS CARRIER DZI
+164D   CANADIAN SYLLABICS CARRIER DZA
+164E   CANADIAN SYLLABICS CARRIER SU
+164F   CANADIAN SYLLABICS CARRIER SO
+1650   CANADIAN SYLLABICS CARRIER SE
+1651   CANADIAN SYLLABICS CARRIER SEE
+1652   CANADIAN SYLLABICS CARRIER SI
+1653   CANADIAN SYLLABICS CARRIER SA
+1654   CANADIAN SYLLABICS CARRIER SHU
+1655   CANADIAN SYLLABICS CARRIER SHO
+1656   CANADIAN SYLLABICS CARRIER SHE
+1657   CANADIAN SYLLABICS CARRIER SHEE
+1658   CANADIAN SYLLABICS CARRIER SHI
+1659   CANADIAN SYLLABICS CARRIER SHA
+165A   CANADIAN SYLLABICS CARRIER SH
+165B   CANADIAN SYLLABICS CARRIER TSU
+165C   CANADIAN SYLLABICS CARRIER TSO
+165D   CANADIAN SYLLABICS CARRIER TSE
+165E   CANADIAN SYLLABICS CARRIER TSEE
+165F   CANADIAN SYLLABICS CARRIER TSI
+1660   CANADIAN SYLLABICS CARRIER TSA
+1661   CANADIAN SYLLABICS CARRIER CHU
+1662   CANADIAN SYLLABICS CARRIER CHO
+1663   CANADIAN SYLLABICS CARRIER CHE
+1664   CANADIAN SYLLABICS CARRIER CHEE
+1665   CANADIAN SYLLABICS CARRIER CHI
+1666   CANADIAN SYLLABICS CARRIER CHA
+1667   CANADIAN SYLLABICS CARRIER TTSU
+1668   CANADIAN SYLLABICS CARRIER TTSO
+1669   CANADIAN SYLLABICS CARRIER TTSE
+166A   CANADIAN SYLLABICS CARRIER TTSEE
+166B   CANADIAN SYLLABICS CARRIER TTSI
+166C   CANADIAN SYLLABICS CARRIER TTSA
+@              Punctuation
+166D   CANADIAN SYLLABICS CHI SIGN
+166E   CANADIAN SYLLABICS FULL STOP
+@              Syllables
+166F   CANADIAN SYLLABICS QAI
+1670   CANADIAN SYLLABICS NGAI
+1671   CANADIAN SYLLABICS NNGI
+1672   CANADIAN SYLLABICS NNGII
+1673   CANADIAN SYLLABICS NNGO
+1674   CANADIAN SYLLABICS NNGOO
+1675   CANADIAN SYLLABICS NNGA
+1676   CANADIAN SYLLABICS NNGAA
+@@     1680    Ogham   169F
+@              Punctuation
+1680   OGHAM SPACE MARK
+       * glyph is blank in "stemless" style fonts
+@              Traditional letters
+1681   OGHAM LETTER BEITH
+1682   OGHAM LETTER LUIS
+1683   OGHAM LETTER FEARN
+1684   OGHAM LETTER SAIL
+1685   OGHAM LETTER NION
+1686   OGHAM LETTER UATH
+1687   OGHAM LETTER DAIR
+1688   OGHAM LETTER TINNE
+1689   OGHAM LETTER COLL
+168A   OGHAM LETTER CEIRT
+168B   OGHAM LETTER MUIN
+168C   OGHAM LETTER GORT
+168D   OGHAM LETTER NGEADAL
+168E   OGHAM LETTER STRAIF
+168F   OGHAM LETTER RUIS
+1690   OGHAM LETTER AILM
+1691   OGHAM LETTER ONN
+1692   OGHAM LETTER UR
+1693   OGHAM LETTER EADHADH
+1694   OGHAM LETTER IODHADH
+@              Forfeda (supplementary letters)
+1695   OGHAM LETTER EABHADH
+1696   OGHAM LETTER OR
+1697   OGHAM LETTER UILLEANN
+1698   OGHAM LETTER IFIN
+1699   OGHAM LETTER EAMHANCHOLL
+169A   OGHAM LETTER PEITH
+@              Punctuation
+169B   OGHAM FEATHER MARK
+       * marks beginning of Ogham text
+169C   OGHAM REVERSED FEATHER MARK
+       * marks end of Ogham text
+@@     16A0    Runic   16FF
+@              Letters
+16A0   RUNIC LETTER FEHU FEOH FE F
+16A1   RUNIC LETTER V
+16A2   RUNIC LETTER URUZ UR U
+16A3   RUNIC LETTER YR
+16A4   RUNIC LETTER Y
+16A5   RUNIC LETTER W
+16A6   RUNIC LETTER THURISAZ THURS THORN
+       x (latin small letter thorn - 00FE)
+16A7   RUNIC LETTER ETH
+16A8   RUNIC LETTER ANSUZ A
+16A9   RUNIC LETTER OS O
+16AA   RUNIC LETTER AC A
+16AB   RUNIC LETTER AESC
+16AC   RUNIC LETTER LONG-BRANCH-OSS O
+16AD   RUNIC LETTER SHORT-TWIG-OSS O
+16AE   RUNIC LETTER O
+16AF   RUNIC LETTER OE
+16B0   RUNIC LETTER ON
+16B1   RUNIC LETTER RAIDO RAD REID R
+16B2   RUNIC LETTER KAUNA
+16B3   RUNIC LETTER CEN
+16B4   RUNIC LETTER KAUN K
+16B5   RUNIC LETTER G
+16B6   RUNIC LETTER ENG
+16B7   RUNIC LETTER GEBO GYFU G
+16B8   RUNIC LETTER GAR
+16B9   RUNIC LETTER WUNJO WYNN W
+       x (latin letter wynn - 01BF)
+16BA   RUNIC LETTER HAGLAZ H
+16BB   RUNIC LETTER HAEGL H
+16BC   RUNIC LETTER LONG-BRANCH-HAGALL H
+16BD   RUNIC LETTER SHORT-TWIG-HAGALL H
+16BE   RUNIC LETTER NAUDIZ NYD NAUD N
+16BF   RUNIC LETTER SHORT-TWIG-NAUD N
+16C0   RUNIC LETTER DOTTED-N
+16C1   RUNIC LETTER ISAZ IS ISS I
+16C2   RUNIC LETTER E
+16C3   RUNIC LETTER JERAN J
+16C4   RUNIC LETTER GER
+16C5   RUNIC LETTER LONG-BRANCH-AR AE
+16C6   RUNIC LETTER SHORT-TWIG-AR A
+16C7   RUNIC LETTER IWAZ EOH
+16C8   RUNIC LETTER PERTHO PEORTH P
+16C9   RUNIC LETTER ALGIZ EOLHX
+16CA   RUNIC LETTER SOWILO S
+16CB   RUNIC LETTER SIGEL LONG-BRANCH-SOL S
+16CC   RUNIC LETTER SHORT-TWIG-SOL S
+16CD   RUNIC LETTER C
+16CE   RUNIC LETTER Z
+16CF   RUNIC LETTER TIWAZ TIR TYR T
+16D0   RUNIC LETTER SHORT-TWIG-TYR T
+16D1   RUNIC LETTER D
+16D2   RUNIC LETTER BERKANAN BEORC BJARKAN B
+16D3   RUNIC LETTER SHORT-TWIG-BJARKAN B
+16D4   RUNIC LETTER DOTTED-P
+16D5   RUNIC LETTER OPEN-P
+16D6   RUNIC LETTER EHWAZ EH E
+16D7   RUNIC LETTER MANNAZ MAN M
+16D8   RUNIC LETTER LONG-BRANCH-MADR M
+16D9   RUNIC LETTER SHORT-TWIG-MADR M
+16DA   RUNIC LETTER LAUKAZ LAGU LOGR L
+16DB   RUNIC LETTER DOTTED-L
+16DC   RUNIC LETTER INGWAZ
+16DD   RUNIC LETTER ING
+16DE   RUNIC LETTER DAGAZ DAEG D
+16DF   RUNIC LETTER OTHALAN ETHEL O
+16E0   RUNIC LETTER EAR
+16E1   RUNIC LETTER IOR
+16E2   RUNIC LETTER CWEORTH
+16E3   RUNIC LETTER CALC
+16E4   RUNIC LETTER CEALC
+16E5   RUNIC LETTER STAN
+16E6   RUNIC LETTER LONG-BRANCH-YR
+16E7   RUNIC LETTER SHORT-TWIG-YR
+16E8   RUNIC LETTER ICELANDIC-YR
+16E9   RUNIC LETTER Q
+16EA   RUNIC LETTER X
+@              Punctuation
+16EB   RUNIC SINGLE PUNCTUATION
+16EC   RUNIC MULTIPLE PUNCTUATION
+16ED   RUNIC CROSS PUNCTUATION
+@              Golden number runes
+16EE   RUNIC ARLAUG SYMBOL (golden number 17)
+       * golden number 17
+16EF   RUNIC TVIMADUR SYMBOL (golden number 18)
+       * golden number 18
+16F0   RUNIC BELGTHOR SYMBOL (golden number 19)
+       * golden number 19
+@@     1780    Khmer   17FF
+@              Consonants
+1780   KHMER LETTER KA
+1781   KHMER LETTER KHA
+1782   KHMER LETTER KO
+1783   KHMER LETTER KHO
+1784   KHMER LETTER NGO
+1785   KHMER LETTER CA
+1786   KHMER LETTER CHA
+1787   KHMER LETTER CO
+1788   KHMER LETTER CHO
+1789   KHMER LETTER NYO
+178A   KHMER LETTER DA
+178B   KHMER LETTER TTHA
+178C   KHMER LETTER DO
+178D   KHMER LETTER TTHO
+178E   KHMER LETTER NNO
+178F   KHMER LETTER TA
+1790   KHMER LETTER THA
+1791   KHMER LETTER TO
+1792   KHMER LETTER THO
+1793   KHMER LETTER NO
+1794   KHMER LETTER BA
+1795   KHMER LETTER PHA
+1796   KHMER LETTER PO
+1797   KHMER LETTER PHO
+1798   KHMER LETTER MO
+1799   KHMER LETTER YO
+179A   KHMER LETTER RO
+179B   KHMER LETTER LO
+179C   KHMER LETTER VO
+179D   KHMER LETTER SHA
+       * used only for Pali/Sanskrit transliteration
+179E   KHMER LETTER SSO
+       * used only for Pali/Sanskrit transliteration
+179F   KHMER LETTER SA
+17A0   KHMER LETTER HA
+17A1   KHMER LETTER LA
+17A2   KHMER LETTER QA
+       * glottal stop
+@              Independent vowels
+17A3   KHMER INDEPENDENT VOWEL QAQ
+       * used only for Pali/Sanskrit transliteration
+17A4   KHMER INDEPENDENT VOWEL QAA
+       * used only for Pali/Sanskrit transliteration
+17A5   KHMER INDEPENDENT VOWEL QI
+17A6   KHMER INDEPENDENT VOWEL QII
+17A7   KHMER INDEPENDENT VOWEL QU
+17A8   KHMER INDEPENDENT VOWEL QUK
+       * obsolete
+17A9   KHMER INDEPENDENT VOWEL QUU
+17AA   KHMER INDEPENDENT VOWEL QUUV
+17AB   KHMER INDEPENDENT VOWEL RY
+17AC   KHMER INDEPENDENT VOWEL RYY
+17AD   KHMER INDEPENDENT VOWEL LY
+17AE   KHMER INDEPENDENT VOWEL LYY
+17AF   KHMER INDEPENDENT VOWEL QE
+17B0   KHMER INDEPENDENT VOWEL QAI
+17B1   KHMER INDEPENDENT VOWEL QOO TYPE ONE
+17B2   KHMER INDEPENDENT VOWEL QOO TYPE TWO
+17B3   KHMER INDEPENDENT VOWEL QAU
+@              Inherent vowels
+@+             These are for phonetic transcription to distinguish Indic language inherent vowels from Khmer inherent vowels.
+17B4   KHMER VOWEL INHERENT AQ
+17B5   KHMER VOWEL INHERENT AA
+@              Dependent vowel signs
+17B6   KHMER VOWEL SIGN AA
+17B7   KHMER VOWEL SIGN I
+17B8   KHMER VOWEL SIGN II
+17B9   KHMER VOWEL SIGN Y
+17BA   KHMER VOWEL SIGN YY
+17BB   KHMER VOWEL SIGN U
+17BC   KHMER VOWEL SIGN UU
+17BD   KHMER VOWEL SIGN UA
+17BE   KHMER VOWEL SIGN OE
+17BF   KHMER VOWEL SIGN YA
+17C0   KHMER VOWEL SIGN IE
+17C1   KHMER VOWEL SIGN E
+17C2   KHMER VOWEL SIGN AE
+17C3   KHMER VOWEL SIGN AI
+17C4   KHMER VOWEL SIGN OO
+17C5   KHMER VOWEL SIGN AU
+@              Various signs
+17C6   KHMER SIGN NIKAHIT
+       = anusvara
+       * final nasalization
+       x (thai character nikhahit - 0E4D)
+       x (myanmar sign anusvara - 1036)
+17C7   KHMER SIGN REAHMUK
+       = visarga
+       x (myanmar sign visarga - 1038)
+17C8   KHMER SIGN YUUKALEAPINTU
+       * inserts a short inherent vowel with abrupt glottal stop
+@              Consonant shifters
+@+             These signs shift the base consonant between registers.
+17C9   KHMER SIGN MUUSIKATOAN
+       * change second register to first
+17CA   KHMER SIGN TRIISAP
+       * change first register to second
+@              Various signs
+17CB   KHMER SIGN BANTOC
+       * shortens preceding vowel
+17CC   KHMER SIGN ROBAT
+       * corresponds to initial r in Indian loan words, but treated as a diacritic
+17CD   KHMER SIGN TOANDAKHIAT
+       * marks character not to be pronounced
+17CE   KHMER SIGN KAKABAT
+       * sign used with some exclamations
+17CF   KHMER SIGN AHSDA
+       * conjoined sign used in spelling of two single-consonant words
+17D0   KHMER SIGN SAMYOK SANNYA
+       * used with 17A4 to indicate shortened inherent vowel
+17D1   KHMER SIGN VIRIAM
+       * mostly obsolete
+       * indicates the base character is part of the previous word
+17D2   KHMER SIGN COENG
+       * functions as virama
+       * shape shown is arbitrary and not rendered
+17D3   KHMER SIGN BATHAMASAT
+       * very rare sign used in historic lunar dates
+17D4   KHMER SIGN KHAN
+       * functions as full stop, ellipsis, abbreviation
+       x (thai character paiyannoi - 0E2F)
+       x (thai character angkhankhu - 0E5A)
+       x (myanmar sign little section - 104A)
+17D5   KHMER SIGN BARIYOOSAN
+       * end of section
+       x (myanmar sign section - 104B)
+17D6   KHMER SIGN CAMNUC PII KUUH
+       * functions as colon or semicolon
+       x (division sign - 00F7)
+       x (tibetan mark gter tsheg - 0F14)
+17D7   KHMER SIGN LEK TOO
+       * repetition sign
+17D8   KHMER SIGN BEYYAL
+       * et cetera
+17D9   KHMER SIGN PHNAEK MUAN
+       * a list bullet
+       x (thai character fongman - 0E4F)
+17DA   KHMER SIGN KOOMUUT
+       * indicates end of book or treatise
+       x (thai character khomut - 0E5B)
+@              Currency symbol
+17DB   KHMER CURRENCY SYMBOL RIEL
+@              Sign
+17DC   KHMER SIGN AVAKRAHASANYA
+       * rare, shows a deleted Sanskrit vowel, like an apostrophe
+@              Digits
+17E0   KHMER DIGIT ZERO
+17E1   KHMER DIGIT ONE
+17E2   KHMER DIGIT TWO
+17E3   KHMER DIGIT THREE
+17E4   KHMER DIGIT FOUR
+17E5   KHMER DIGIT FIVE
+17E6   KHMER DIGIT SIX
+17E7   KHMER DIGIT SEVEN
+17E8   KHMER DIGIT EIGHT
+17E9   KHMER DIGIT NINE
+@@     1800    Mongolian       18AF
+@              Punctuation
+1800   MONGOLIAN BIRGA
+       x (tibetan mark initial yig mgo mdun ma - 0F04)
+1801   MONGOLIAN ELLIPSIS
+1802   MONGOLIAN COMMA
+1803   MONGOLIAN FULL STOP
+1804   MONGOLIAN COLON
+1805   MONGOLIAN FOUR DOTS
+       * marks the end of a chapter
+1806   MONGOLIAN TODO SOFT HYPHEN
+1807   MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER
+1808   MONGOLIAN MANCHU COMMA
+1809   MONGOLIAN MANCHU FULL STOP
+180A   MONGOLIAN NIRUGU
+@              Format controls
+180B   MONGOLIAN FREE VARIATION SELECTOR ONE
+180C   MONGOLIAN FREE VARIATION SELECTOR TWO
+180D   MONGOLIAN FREE VARIATION SELECTOR THREE
+180E   MONGOLIAN VOWEL SEPARATOR
+@              Digits
+1810   MONGOLIAN DIGIT ZERO
+1811   MONGOLIAN DIGIT ONE
+1812   MONGOLIAN DIGIT TWO
+1813   MONGOLIAN DIGIT THREE
+1814   MONGOLIAN DIGIT FOUR
+1815   MONGOLIAN DIGIT FIVE
+1816   MONGOLIAN DIGIT SIX
+1817   MONGOLIAN DIGIT SEVEN
+1818   MONGOLIAN DIGIT EIGHT
+1819   MONGOLIAN DIGIT NINE
+@              Basic letters
+1820   MONGOLIAN LETTER A
+       x (cyrillic small letter a - 0430)
+1821   MONGOLIAN LETTER E
+       x (cyrillic small letter e - 044D)
+1822   MONGOLIAN LETTER I
+       x (cyrillic small letter i - 0438)
+1823   MONGOLIAN LETTER O
+       x (cyrillic small letter o - 043E)
+1824   MONGOLIAN LETTER U
+       x (cyrillic small letter u - 0443)
+1825   MONGOLIAN LETTER OE
+       x (cyrillic small letter barred o - 04E9)
+1826   MONGOLIAN LETTER UE
+       x (cyrillic small letter straight u - 04AF)
+1827   MONGOLIAN LETTER EE
+1828   MONGOLIAN LETTER NA
+       x (cyrillic small letter en - 043D)
+1829   MONGOLIAN LETTER ANG
+182A   MONGOLIAN LETTER BA
+       x (cyrillic small letter be - 0431)
+182B   MONGOLIAN LETTER PA
+       x (cyrillic small letter pe - 043F)
+182C   MONGOLIAN LETTER QA
+       x (cyrillic small letter ha - 0445)
+182D   MONGOLIAN LETTER GA
+       x (cyrillic small letter ghe - 0433)
+182E   MONGOLIAN LETTER MA
+       x (cyrillic small letter em - 043C)
+182F   MONGOLIAN LETTER LA
+       x (cyrillic small letter el - 043B)
+1830   MONGOLIAN LETTER SA
+       x (cyrillic small letter es - 0441)
+1831   MONGOLIAN LETTER SHA
+       x (cyrillic small letter sha - 0448)
+1832   MONGOLIAN LETTER TA
+       x (cyrillic small letter te - 0442)
+1833   MONGOLIAN LETTER DA
+       x (cyrillic small letter de - 0434)
+1834   MONGOLIAN LETTER CHA
+       x (cyrillic small letter che - 0447)
+1835   MONGOLIAN LETTER JA
+       x (cyrillic small letter zhe - 0436)
+1836   MONGOLIAN LETTER YA
+       x (cyrillic small letter short i - 0439)
+1837   MONGOLIAN LETTER RA
+       x (cyrillic small letter er - 0440)
+1838   MONGOLIAN LETTER WA
+       x (cyrillic small letter ve - 0432)
+1839   MONGOLIAN LETTER FA
+       x (cyrillic small letter ef - 0444)
+183A   MONGOLIAN LETTER KA
+       x (cyrillic small letter ha - 0445)
+183B   MONGOLIAN LETTER KHA
+       x (cyrillic small letter ka - 043A)
+183C   MONGOLIAN LETTER TSA
+       x (cyrillic small letter tse - 0446)
+183D   MONGOLIAN LETTER ZA
+       x (cyrillic small letter ze - 0437)
+183E   MONGOLIAN LETTER HAA
+       x (cyrillic small letter ha - 0445)
+183F   MONGOLIAN LETTER ZRA
+       x (cyrillic small letter zhe - 0436)
+1840   MONGOLIAN LETTER LHA
+1841   MONGOLIAN LETTER ZHI
+1842   MONGOLIAN LETTER CHI
+@              Todo letters
+1843   MONGOLIAN LETTER TODO LONG VOWEL SIGN
+1844   MONGOLIAN LETTER TODO E
+1845   MONGOLIAN LETTER TODO I
+1846   MONGOLIAN LETTER TODO O
+1847   MONGOLIAN LETTER TODO U
+1848   MONGOLIAN LETTER TODO OE
+1849   MONGOLIAN LETTER TODO UE
+184A   MONGOLIAN LETTER TODO ANG
+184B   MONGOLIAN LETTER TODO BA
+184C   MONGOLIAN LETTER TODO PA
+184D   MONGOLIAN LETTER TODO QA
+184E   MONGOLIAN LETTER TODO GA
+184F   MONGOLIAN LETTER TODO MA
+1850   MONGOLIAN LETTER TODO TA
+1851   MONGOLIAN LETTER TODO DA
+1852   MONGOLIAN LETTER TODO CHA
+1853   MONGOLIAN LETTER TODO JA
+1854   MONGOLIAN LETTER TODO TSA
+1855   MONGOLIAN LETTER TODO YA
+1856   MONGOLIAN LETTER TODO WA
+1857   MONGOLIAN LETTER TODO KA
+1858   MONGOLIAN LETTER TODO GAA
+1859   MONGOLIAN LETTER TODO HAA
+185A   MONGOLIAN LETTER TODO JIA
+185B   MONGOLIAN LETTER TODO NIA
+185C   MONGOLIAN LETTER TODO DZA
+@              Sibe letters
+185D   MONGOLIAN LETTER SIBE E
+185E   MONGOLIAN LETTER SIBE I
+185F   MONGOLIAN LETTER SIBE IY
+1860   MONGOLIAN LETTER SIBE UE
+1861   MONGOLIAN LETTER SIBE U
+1862   MONGOLIAN LETTER SIBE ANG
+1863   MONGOLIAN LETTER SIBE KA
+1864   MONGOLIAN LETTER SIBE GA
+1865   MONGOLIAN LETTER SIBE HA
+1866   MONGOLIAN LETTER SIBE PA
+1867   MONGOLIAN LETTER SIBE SHA
+1868   MONGOLIAN LETTER SIBE TA
+1869   MONGOLIAN LETTER SIBE DA
+186A   MONGOLIAN LETTER SIBE JA
+186B   MONGOLIAN LETTER SIBE FA
+186C   MONGOLIAN LETTER SIBE GAA
+186D   MONGOLIAN LETTER SIBE HAA
+186E   MONGOLIAN LETTER SIBE TSA
+186F   MONGOLIAN LETTER SIBE ZA
+1870   MONGOLIAN LETTER SIBE RAA
+1871   MONGOLIAN LETTER SIBE CHA
+1872   MONGOLIAN LETTER SIBE ZHA
+@              Manchu letters
+1873   MONGOLIAN LETTER MANCHU I
+1874   MONGOLIAN LETTER MANCHU KA
+1875   MONGOLIAN LETTER MANCHU RA
+1876   MONGOLIAN LETTER MANCHU FA
+1877   MONGOLIAN LETTER MANCHU ZHA
+@              Extensions for Sanskrit and Tibetan
+1880   MONGOLIAN LETTER ALI GALI ANUSVARA ONE
+1881   MONGOLIAN LETTER ALI GALI VISARGA ONE
+1882   MONGOLIAN LETTER ALI GALI DAMARU
+1883   MONGOLIAN LETTER ALI GALI UBADAMA
+1884   MONGOLIAN LETTER ALI GALI INVERTED UBADAMA
+1885   MONGOLIAN LETTER ALI GALI BALUDA
+1886   MONGOLIAN LETTER ALI GALI THREE BALUDA
+1887   MONGOLIAN LETTER ALI GALI A
+1888   MONGOLIAN LETTER ALI GALI I
+1889   MONGOLIAN LETTER ALI GALI KA
+188A   MONGOLIAN LETTER ALI GALI NGA
+188B   MONGOLIAN LETTER ALI GALI CA
+188C   MONGOLIAN LETTER ALI GALI TTA
+188D   MONGOLIAN LETTER ALI GALI TTHA
+188E   MONGOLIAN LETTER ALI GALI DDA
+188F   MONGOLIAN LETTER ALI GALI NNA
+1890   MONGOLIAN LETTER ALI GALI TA
+1891   MONGOLIAN LETTER ALI GALI DA
+1892   MONGOLIAN LETTER ALI GALI PA
+1893   MONGOLIAN LETTER ALI GALI PHA
+1894   MONGOLIAN LETTER ALI GALI SSA
+1895   MONGOLIAN LETTER ALI GALI ZHA
+1896   MONGOLIAN LETTER ALI GALI ZA
+1897   MONGOLIAN LETTER ALI GALI AH
+1898   MONGOLIAN LETTER TODO ALI GALI TA
+1899   MONGOLIAN LETTER TODO ALI GALI ZHA
+189A   MONGOLIAN LETTER MANCHU ALI GALI GHA
+189B   MONGOLIAN LETTER MANCHU ALI GALI NGA
+189C   MONGOLIAN LETTER MANCHU ALI GALI CA
+189D   MONGOLIAN LETTER MANCHU ALI GALI JHA
+189E   MONGOLIAN LETTER MANCHU ALI GALI TTA
+189F   MONGOLIAN LETTER MANCHU ALI GALI DDHA
+18A0   MONGOLIAN LETTER MANCHU ALI GALI TA
+18A1   MONGOLIAN LETTER MANCHU ALI GALI DHA
+18A2   MONGOLIAN LETTER MANCHU ALI GALI SSA
+18A3   MONGOLIAN LETTER MANCHU ALI GALI CYA
+18A4   MONGOLIAN LETTER MANCHU ALI GALI ZHA
+18A5   MONGOLIAN LETTER MANCHU ALI GALI ZA
+18A6   MONGOLIAN LETTER ALI GALI HALF U
+18A7   MONGOLIAN LETTER ALI GALI HALF YA
+18A8   MONGOLIAN LETTER MANCHU ALI GALI BHA
+18A9   MONGOLIAN LETTER ALI GALI DAGALGA
 @@     1E00    Latin Extended Additional       1EFF
-@              Latin extended additional
+@              Latin general use extensions
 1E00   LATIN CAPITAL LETTER A WITH RING BELOW
-       : 0041 + 0325
+       : 0041 0325
 1E01   LATIN SMALL LETTER A WITH RING BELOW
-       : 0061 + 0325
+       : 0061 0325
 1E02   LATIN CAPITAL LETTER B WITH DOT ABOVE
-       : 0042 + 0307
+       : 0042 0307
 1E03   LATIN SMALL LETTER B WITH DOT ABOVE
-       : 0062 + 0307
+       * Irish Gaelic (old orthography)
+       : 0062 0307
 1E04   LATIN CAPITAL LETTER B WITH DOT BELOW
-       : 0042 + 0323
+       : 0042 0323
 1E05   LATIN SMALL LETTER B WITH DOT BELOW
-       : 0062 + 0323
+       : 0062 0323
 1E06   LATIN CAPITAL LETTER B WITH LINE BELOW
-       : 0042 + 0331
+       : 0042 0331
 1E07   LATIN SMALL LETTER B WITH LINE BELOW
-       : 0062 + 0331
+       : 0062 0331
 1E08   LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
-       : 00C7 + 0301
+       : 00C7 0301
 1E09   LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
-       : 00E7 + 0301
+       : 00E7 0301
 1E0A   LATIN CAPITAL LETTER D WITH DOT ABOVE
-       : 0044 + 0307
+       : 0044 0307
 1E0B   LATIN SMALL LETTER D WITH DOT ABOVE
-       : 0064 + 0307
+       * Irish Gaelic (old orthography)
+       : 0064 0307
 1E0C   LATIN CAPITAL LETTER D WITH DOT BELOW
-       : 0044 + 0323
+       : 0044 0323
 1E0D   LATIN SMALL LETTER D WITH DOT BELOW
-       : 0064 + 0323
+       * Indic transliteration
+       : 0064 0323
 1E0E   LATIN CAPITAL LETTER D WITH LINE BELOW
-       : 0044 + 0331
+       : 0044 0331
 1E0F   LATIN SMALL LETTER D WITH LINE BELOW
-       : 0064 + 0331
+       : 0064 0331
 1E10   LATIN CAPITAL LETTER D WITH CEDILLA
-       : 0044 + 0327
+       : 0044 0327
 1E11   LATIN SMALL LETTER D WITH CEDILLA
-       : 0064 + 0327
+       * Livonian
+       : 0064 0327
 1E12   LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW
-       : 0044 + 032D
+       : 0044 032D
 1E13   LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW
-       : 0064 + 032D
+       : 0064 032D
 1E14   LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
-       : 0112 + 0300
+       : 0112 0300
 1E15   LATIN SMALL LETTER E WITH MACRON AND GRAVE
-       : 0113 + 0300
+       : 0113 0300
 1E16   LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
-       : 0112 + 0301
+       : 0112 0301
 1E17   LATIN SMALL LETTER E WITH MACRON AND ACUTE
-       : 0113 + 0301
+       : 0113 0301
 1E18   LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
-       : 0045 + 032D
+       : 0045 032D
 1E19   LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW
-       : 0065 + 032D
+       : 0065 032D
 1E1A   LATIN CAPITAL LETTER E WITH TILDE BELOW
-       : 0045 + 0330
+       : 0045 0330
 1E1B   LATIN SMALL LETTER E WITH TILDE BELOW
-       : 0065 + 0330
+       : 0065 0330
 1E1C   LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
-       : 0114 + 0327
+       : 0228 0306
 1E1D   LATIN SMALL LETTER E WITH CEDILLA AND BREVE
-       : 0115 + 0327
+       : 0229 0306
 1E1E   LATIN CAPITAL LETTER F WITH DOT ABOVE
-       : 0046 + 0307
+       : 0046 0307
 1E1F   LATIN SMALL LETTER F WITH DOT ABOVE
-       : 0066 + 0307
+       * Irish Gaelic (old orthography)
+       : 0066 0307
 1E20   LATIN CAPITAL LETTER G WITH MACRON
-       : 0047 + 0304
+       : 0047 0304
 1E21   LATIN SMALL LETTER G WITH MACRON
-       : 0067 + 0304
+       : 0067 0304
 1E22   LATIN CAPITAL LETTER H WITH DOT ABOVE
-       : 0048 + 0307
+       : 0048 0307
 1E23   LATIN SMALL LETTER H WITH DOT ABOVE
-       : 0068 + 0307
+       : 0068 0307
 1E24   LATIN CAPITAL LETTER H WITH DOT BELOW
-       : 0048 + 0323
+       : 0048 0323
 1E25   LATIN SMALL LETTER H WITH DOT BELOW
-       : 0068 + 0323
+       * Indic transliteration
+       : 0068 0323
 1E26   LATIN CAPITAL LETTER H WITH DIAERESIS
-       : 0048 + 0308
+       : 0048 0308
 1E27   LATIN SMALL LETTER H WITH DIAERESIS
-       : 0068 + 0308
+       : 0068 0308
 1E28   LATIN CAPITAL LETTER H WITH CEDILLA
-       : 0048 + 0327
+       : 0048 0327
 1E29   LATIN SMALL LETTER H WITH CEDILLA
-       : 0068 + 0327
+       : 0068 0327
 1E2A   LATIN CAPITAL LETTER H WITH BREVE BELOW
-       : 0048 + 032E
+       : 0048 032E
 1E2B   LATIN SMALL LETTER H WITH BREVE BELOW
-       : 0068 + 032E
+       * Semitic transliteration
+       : 0068 032E
 1E2C   LATIN CAPITAL LETTER I WITH TILDE BELOW
-       : 0049 + 0330
+       : 0049 0330
 1E2D   LATIN SMALL LETTER I WITH TILDE BELOW
-       : 0069 + 0330
+       : 0069 0330
 1E2E   LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
-       : 00CF + 0301
+       : 00CF 0301
 1E2F   LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
-       : 00EF + 0301
+       : 00EF 0301
 1E30   LATIN CAPITAL LETTER K WITH ACUTE
-       : 004B + 0301
+       : 004B 0301
 1E31   LATIN SMALL LETTER K WITH ACUTE
-       : 006B + 0301
+       : 006B 0301
 1E32   LATIN CAPITAL LETTER K WITH DOT BELOW
-       : 004B + 0323
+       : 004B 0323
 1E33   LATIN SMALL LETTER K WITH DOT BELOW
-       : 006B + 0323
+       : 006B 0323
 1E34   LATIN CAPITAL LETTER K WITH LINE BELOW
-       : 004B + 0331
+       : 004B 0331
 1E35   LATIN SMALL LETTER K WITH LINE BELOW
-       : 006B + 0331
+       : 006B 0331
 1E36   LATIN CAPITAL LETTER L WITH DOT BELOW
-       : 004C + 0323
+       : 004C 0323
 1E37   LATIN SMALL LETTER L WITH DOT BELOW
-       : 006C + 0323
+       * Indic transliteration
+       : 006C 0323
 1E38   LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
-       : 1E36 + 0304
+       : 1E36 0304
 1E39   LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
-       : 1E37 + 0304
+       * Indic transliteration
+       : 1E37 0304
 1E3A   LATIN CAPITAL LETTER L WITH LINE BELOW
-       : 004C + 0331
+       : 004C 0331
 1E3B   LATIN SMALL LETTER L WITH LINE BELOW
-       : 006C + 0331
+       * Indic transliteration
+       : 006C 0331
 1E3C   LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW
-       : 004C + 032D
+       : 004C 032D
 1E3D   LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW
-       : 006C + 032D
+       : 006C 032D
 1E3E   LATIN CAPITAL LETTER M WITH ACUTE
-       : 004D + 0301
+       : 004D 0301
 1E3F   LATIN SMALL LETTER M WITH ACUTE
-       : 006D + 0301
+       : 006D 0301
 1E40   LATIN CAPITAL LETTER M WITH DOT ABOVE
-       : 004D + 0307
+       : 004D 0307
 1E41   LATIN SMALL LETTER M WITH DOT ABOVE
-       : 006D + 0307
+       * Irish Gaelic (old orthography)
+       : 006D 0307
 1E42   LATIN CAPITAL LETTER M WITH DOT BELOW
-       : 004D + 0323
+       : 004D 0323
 1E43   LATIN SMALL LETTER M WITH DOT BELOW
-       : 006D + 0323
+       * Indic transliteration
+       : 006D 0323
 1E44   LATIN CAPITAL LETTER N WITH DOT ABOVE
-       : 004E + 0307
+       : 004E 0307
 1E45   LATIN SMALL LETTER N WITH DOT ABOVE
-       : 006E + 0307
+       * Indic transliteration
+       : 006E 0307
 1E46   LATIN CAPITAL LETTER N WITH DOT BELOW
-       : 004E + 0323
+       : 004E 0323
 1E47   LATIN SMALL LETTER N WITH DOT BELOW
-       : 006E + 0323
+       * Indic transliteration
+       : 006E 0323
 1E48   LATIN CAPITAL LETTER N WITH LINE BELOW
-       : 004E + 0331
+       : 004E 0331
 1E49   LATIN SMALL LETTER N WITH LINE BELOW
-       : 006E + 0331
+       * Indic transliteration
+       : 006E 0331
 1E4A   LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW
-       : 004E + 032D
+       : 004E 032D
 1E4B   LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW
-       : 006E + 032D
+       : 006E 032D
 1E4C   LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
-       : 00D5 + 0301
+       : 00D5 0301
 1E4D   LATIN SMALL LETTER O WITH TILDE AND ACUTE
-       : 00F5 + 0301
+       : 00F5 0301
 1E4E   LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
-       : 00D5 + 0308
+       : 00D5 0308
 1E4F   LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
-       : 00F5 + 0308
+       : 00F5 0308
 1E50   LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
-       : 014C + 0300
+       : 014C 0300
 1E51   LATIN SMALL LETTER O WITH MACRON AND GRAVE
-       : 014D + 0300
+       : 014D 0300
 1E52   LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
-       : 014C + 0301
+       : 014C 0301
 1E53   LATIN SMALL LETTER O WITH MACRON AND ACUTE
-       : 014D + 0301
+       : 014D 0301
 1E54   LATIN CAPITAL LETTER P WITH ACUTE
-       : 0050 + 0301
+       : 0050 0301
 1E55   LATIN SMALL LETTER P WITH ACUTE
-       : 0070 + 0301
+       : 0070 0301
 1E56   LATIN CAPITAL LETTER P WITH DOT ABOVE
-       : 0050 + 0307
+       : 0050 0307
 1E57   LATIN SMALL LETTER P WITH DOT ABOVE
-       : 0070 + 0307
+       * Irish Gaelic (old orthography)
+       : 0070 0307
 1E58   LATIN CAPITAL LETTER R WITH DOT ABOVE
-       : 0052 + 0307
+       : 0052 0307
 1E59   LATIN SMALL LETTER R WITH DOT ABOVE
-       : 0072 + 0307
+       : 0072 0307
 1E5A   LATIN CAPITAL LETTER R WITH DOT BELOW
-       : 0052 + 0323
+       : 0052 0323
 1E5B   LATIN SMALL LETTER R WITH DOT BELOW
-       : 0072 + 0323
+       * Indic transliteration
+       : 0072 0323
 1E5C   LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
-       : 1E5A + 0304
+       : 1E5A 0304
 1E5D   LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
-       : 1E5B + 0304
+       * Indic transliteration
+       : 1E5B 0304
 1E5E   LATIN CAPITAL LETTER R WITH LINE BELOW
-       : 0052 + 0331
+       : 0052 0331
 1E5F   LATIN SMALL LETTER R WITH LINE BELOW
-       : 0072 + 0331
+       * Indic transliteration
+       : 0072 0331
 1E60   LATIN CAPITAL LETTER S WITH DOT ABOVE
-       : 0053 + 0307
+       : 0053 0307
 1E61   LATIN SMALL LETTER S WITH DOT ABOVE
-       : 0073 + 0307
+       * Irish Gaelic (old orthography)
+       : 0073 0307
 1E62   LATIN CAPITAL LETTER S WITH DOT BELOW
-       : 0053 + 0323
+       : 0053 0323
 1E63   LATIN SMALL LETTER S WITH DOT BELOW
-       : 0073 + 0323
+       * Indic transliteration
+       : 0073 0323
 1E64   LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
-       : 015A + 0307
+       : 015A 0307
 1E65   LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
-       : 015B + 0307
+       : 015B 0307
 1E66   LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
-       : 0160 + 0307
+       : 0160 0307
 1E67   LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
-       : 0161 + 0307
+       : 0161 0307
 1E68   LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
-       : 1E62 + 0307
+       : 1E62 0307
 1E69   LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
-       : 1E63 + 0307
+       : 1E63 0307
 1E6A   LATIN CAPITAL LETTER T WITH DOT ABOVE
-       : 0054 + 0307
+       : 0054 0307
 1E6B   LATIN SMALL LETTER T WITH DOT ABOVE
-       : 0074 + 0307
+       * Irish Gaelic (old orthography)
+       : 0074 0307
 1E6C   LATIN CAPITAL LETTER T WITH DOT BELOW
-       : 0054 + 0323
+       : 0054 0323
 1E6D   LATIN SMALL LETTER T WITH DOT BELOW
-       : 0074 + 0323
+       * Indic transliteration
+       : 0074 0323
 1E6E   LATIN CAPITAL LETTER T WITH LINE BELOW
-       : 0054 + 0331
+       : 0054 0331
 1E6F   LATIN SMALL LETTER T WITH LINE BELOW
-       : 0074 + 0331
+       * Semitic transliteration
+       : 0074 0331
 1E70   LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW
-       : 0054 + 032D
+       : 0054 032D
 1E71   LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW
-       : 0074 + 032D
+       : 0074 032D
 1E72   LATIN CAPITAL LETTER U WITH DIAERESIS BELOW
-       : 0055 + 0324
+       : 0055 0324
 1E73   LATIN SMALL LETTER U WITH DIAERESIS BELOW
-       : 0075 + 0324
+       : 0075 0324
 1E74   LATIN CAPITAL LETTER U WITH TILDE BELOW
-       : 0055 + 0330
+       : 0055 0330
 1E75   LATIN SMALL LETTER U WITH TILDE BELOW
-       : 0075 + 0330
+       : 0075 0330
 1E76   LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW
-       : 0055 + 032D
+       : 0055 032D
 1E77   LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW
-       : 0075 + 032D
+       : 0075 032D
 1E78   LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
-       : 0168 + 0301
+       : 0168 0301
 1E79   LATIN SMALL LETTER U WITH TILDE AND ACUTE
-       : 0169 + 0301
+       : 0169 0301
 1E7A   LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
-       : 016A + 0308
+       : 016A 0308
 1E7B   LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
-       : 016B + 0308
+       : 016B 0308
 1E7C   LATIN CAPITAL LETTER V WITH TILDE
-       : 0056 + 0303
+       : 0056 0303
 1E7D   LATIN SMALL LETTER V WITH TILDE
-       : 0076 + 0303
+       : 0076 0303
 1E7E   LATIN CAPITAL LETTER V WITH DOT BELOW
-       : 0056 + 0323
+       : 0056 0323
 1E7F   LATIN SMALL LETTER V WITH DOT BELOW
-       : 0076 + 0323
+       : 0076 0323
 1E80   LATIN CAPITAL LETTER W WITH GRAVE
-       : 0057 + 0300
+       : 0057 0300
 1E81   LATIN SMALL LETTER W WITH GRAVE
-       : 0077 + 0300
+       * Welsh
+       : 0077 0300
 1E82   LATIN CAPITAL LETTER W WITH ACUTE
-       : 0057 + 0301
+       : 0057 0301
 1E83   LATIN SMALL LETTER W WITH ACUTE
-       : 0077 + 0301
+       * Welsh
+       : 0077 0301
 1E84   LATIN CAPITAL LETTER W WITH DIAERESIS
-       : 0057 + 0308
+       : 0057 0308
 1E85   LATIN SMALL LETTER W WITH DIAERESIS
-       : 0077 + 0308
+       * Welsh
+       : 0077 0308
 1E86   LATIN CAPITAL LETTER W WITH DOT ABOVE
-       : 0057 + 0307
+       : 0057 0307
 1E87   LATIN SMALL LETTER W WITH DOT ABOVE
-       : 0077 + 0307
+       : 0077 0307
 1E88   LATIN CAPITAL LETTER W WITH DOT BELOW
-       : 0057 + 0323
+       : 0057 0323
 1E89   LATIN SMALL LETTER W WITH DOT BELOW
-       : 0077 + 0323
+       : 0077 0323
 1E8A   LATIN CAPITAL LETTER X WITH DOT ABOVE
-       : 0058 + 0307
+       : 0058 0307
 1E8B   LATIN SMALL LETTER X WITH DOT ABOVE
-       : 0078 + 0307
+       : 0078 0307
 1E8C   LATIN CAPITAL LETTER X WITH DIAERESIS
-       : 0058 + 0308
+       : 0058 0308
 1E8D   LATIN SMALL LETTER X WITH DIAERESIS
-       : 0078 + 0308
+       : 0078 0308
 1E8E   LATIN CAPITAL LETTER Y WITH DOT ABOVE
-       : 0059 + 0307
+       : 0059 0307
 1E8F   LATIN SMALL LETTER Y WITH DOT ABOVE
-       : 0079 + 0307
+       : 0079 0307
 1E90   LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
-       : 005A + 0302
+       : 005A 0302
 1E91   LATIN SMALL LETTER Z WITH CIRCUMFLEX
-       : 007A + 0302
+       : 007A 0302
 1E92   LATIN CAPITAL LETTER Z WITH DOT BELOW
-       : 005A + 0323
+       : 005A 0323
 1E93   LATIN SMALL LETTER Z WITH DOT BELOW
-       : 007A + 0323
+       * Indic transliteration
+       : 007A 0323
 1E94   LATIN CAPITAL LETTER Z WITH LINE BELOW
-       : 005A + 0331
+       : 005A 0331
 1E95   LATIN SMALL LETTER Z WITH LINE BELOW
-       : 007A + 0331
+       * Semitic transliteration
+       : 007A 0331
 1E96   LATIN SMALL LETTER H WITH LINE BELOW
-       : 0068 + 0331
+       * Semitic transliteration
+       : 0068 0331
 1E97   LATIN SMALL LETTER T WITH DIAERESIS
-       : 0074 + 0308
+       : 0074 0308
 1E98   LATIN SMALL LETTER W WITH RING ABOVE
-       : 0077 + 030A
+       : 0077 030A
 1E99   LATIN SMALL LETTER Y WITH RING ABOVE
-       : 0079 + 030A
+       : 0079 030A
 1E9A   LATIN SMALL LETTER A WITH RIGHT HALF RING
+       # 0061 02BE
 1E9B   LATIN SMALL LETTER LONG S WITH DOT ABOVE
-       : 017F + 0307
-1E9C   <reserved>
-1E9D   <reserved>
-1E9E   <reserved>
-1E9F   <reserved>
+       * in current use in Gaelic types (as glyph variant of 1E61)
+       : 017F 0307
+@              Latin extensions for Vietnamese
 1EA0   LATIN CAPITAL LETTER A WITH DOT BELOW
-       : 0041 + 0323
+       : 0041 0323
 1EA1   LATIN SMALL LETTER A WITH DOT BELOW
-       : 0061 + 0323
+       : 0061 0323
 1EA2   LATIN CAPITAL LETTER A WITH HOOK ABOVE
-       : 0041 + 0309
+       : 0041 0309
 1EA3   LATIN SMALL LETTER A WITH HOOK ABOVE
-       : 0061 + 0309
+       : 0061 0309
 1EA4   LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
-       : 00C2 + 0301
+       : 00C2 0301
 1EA5   LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
-       : 00E2 + 0301
+       : 00E2 0301
 1EA6   LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
-       : 00C2 + 0300
+       : 00C2 0300
 1EA7   LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
-       : 00E2 + 0300
+       : 00E2 0300
 1EA8   LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-       : 00C2 + 0309
+       : 00C2 0309
 1EA9   LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-       : 00E2 + 0309
+       : 00E2 0309
 1EAA   LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
-       : 00C2 + 0303
+       : 00C2 0303
 1EAB   LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
-       : 00E2 + 0303
+       : 00E2 0303
 1EAC   LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-       : 00C2 + 0323
+       : 1EA0 0302
 1EAD   LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-       : 00E2 + 0323
+       : 1EA1 0302
 1EAE   LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
-       : 0102 + 0301
+       : 0102 0301
 1EAF   LATIN SMALL LETTER A WITH BREVE AND ACUTE
-       : 0103 + 0301
+       : 0103 0301
 1EB0   LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
-       : 0102 + 0300
+       : 0102 0300
 1EB1   LATIN SMALL LETTER A WITH BREVE AND GRAVE
-       : 0103 + 0300
+       : 0103 0300
 1EB2   LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
-       : 0102 + 0309
+       : 0102 0309
 1EB3   LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
-       : 0103 + 0309
+       : 0103 0309
 1EB4   LATIN CAPITAL LETTER A WITH BREVE AND TILDE
-       : 0102 + 0303
+       : 0102 0303
 1EB5   LATIN SMALL LETTER A WITH BREVE AND TILDE
-       : 0103 + 0303
+       : 0103 0303
 1EB6   LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
-       : 0102 + 0323
+       : 1EA0 0306
 1EB7   LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
-       : 0103 + 0323
+       : 1EA1 0306
 1EB8   LATIN CAPITAL LETTER E WITH DOT BELOW
-       : 0045 + 0323
+       : 0045 0323
 1EB9   LATIN SMALL LETTER E WITH DOT BELOW
-       : 0065 + 0323
+       : 0065 0323
 1EBA   LATIN CAPITAL LETTER E WITH HOOK ABOVE
-       : 0045 + 0309
+       : 0045 0309
 1EBB   LATIN SMALL LETTER E WITH HOOK ABOVE
-       : 0065 + 0309
+       : 0065 0309
 1EBC   LATIN CAPITAL LETTER E WITH TILDE
-       : 0045 + 0303
+       : 0045 0303
 1EBD   LATIN SMALL LETTER E WITH TILDE
-       : 0065 + 0303
+       : 0065 0303
 1EBE   LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-       : 00CA + 0301
+       : 00CA 0301
 1EBF   LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-       : 00EA + 0301
+       : 00EA 0301
 1EC0   LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-       : 00CA + 0300
+       : 00CA 0300
 1EC1   LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-       : 00EA + 0300
+       : 00EA 0300
 1EC2   LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-       : 00CA + 0309
+       : 00CA 0309
 1EC3   LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-       : 00EA + 0309
+       : 00EA 0309
 1EC4   LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-       : 00CA + 0303
+       : 00CA 0303
 1EC5   LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-       : 00EA + 0303
+       : 00EA 0303
 1EC6   LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-       : 00CA + 0323
+       : 1EB8 0302
 1EC7   LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-       : 00EA + 0323
+       : 1EB9 0302
 1EC8   LATIN CAPITAL LETTER I WITH HOOK ABOVE
-       : 0049 + 0309
+       : 0049 0309
 1EC9   LATIN SMALL LETTER I WITH HOOK ABOVE
-       : 0069 + 0309
+       : 0069 0309
 1ECA   LATIN CAPITAL LETTER I WITH DOT BELOW
-       : 0049 + 0323
+       : 0049 0323
 1ECB   LATIN SMALL LETTER I WITH DOT BELOW
-       : 0069 + 0323
+       : 0069 0323
 1ECC   LATIN CAPITAL LETTER O WITH DOT BELOW
-       : 004F + 0323
+       : 004F 0323
 1ECD   LATIN SMALL LETTER O WITH DOT BELOW
-       : 006F + 0323
+       : 006F 0323
 1ECE   LATIN CAPITAL LETTER O WITH HOOK ABOVE
-       : 004F + 0309
+       : 004F 0309
 1ECF   LATIN SMALL LETTER O WITH HOOK ABOVE
-       : 006F + 0309
+       : 006F 0309
 1ED0   LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
-       : 00D4 + 0301
+       : 00D4 0301
 1ED1   LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
-       : 00F4 + 0301
+       : 00F4 0301
 1ED2   LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
-       : 00D4 + 0300
+       : 00D4 0300
 1ED3   LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
-       : 00F4 + 0300
+       : 00F4 0300
 1ED4   LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-       : 00D4 + 0309
+       : 00D4 0309
 1ED5   LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-       : 00F4 + 0309
+       : 00F4 0309
 1ED6   LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
-       : 00D4 + 0303
+       : 00D4 0303
 1ED7   LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
-       : 00F4 + 0303
+       : 00F4 0303
 1ED8   LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-       : 00D4 + 0323
+       : 1ECC 0302
 1ED9   LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-       : 00F4 + 0323
+       : 1ECD 0302
 1EDA   LATIN CAPITAL LETTER O WITH HORN AND ACUTE
-       : 01A0 + 0301
+       : 01A0 0301
 1EDB   LATIN SMALL LETTER O WITH HORN AND ACUTE
-       : 01A1 + 0301
+       : 01A1 0301
 1EDC   LATIN CAPITAL LETTER O WITH HORN AND GRAVE
-       : 01A0 + 0300
+       : 01A0 0300
 1EDD   LATIN SMALL LETTER O WITH HORN AND GRAVE
-       : 01A1 + 0300
+       : 01A1 0300
 1EDE   LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
-       : 01A0 + 0309
+       : 01A0 0309
 1EDF   LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
-       : 01A1 + 0309
+       : 01A1 0309
 1EE0   LATIN CAPITAL LETTER O WITH HORN AND TILDE
-       : 01A0 + 0303
+       : 01A0 0303
 1EE1   LATIN SMALL LETTER O WITH HORN AND TILDE
-       : 01A1 + 0303
+       : 01A1 0303
 1EE2   LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
-       : 01A0 + 0323
+       : 01A0 0323
 1EE3   LATIN SMALL LETTER O WITH HORN AND DOT BELOW
-       : 01A1 + 0323
+       : 01A1 0323
 1EE4   LATIN CAPITAL LETTER U WITH DOT BELOW
-       : 0055 + 0323
+       : 0055 0323
 1EE5   LATIN SMALL LETTER U WITH DOT BELOW
-       : 0075 + 0323
+       : 0075 0323
 1EE6   LATIN CAPITAL LETTER U WITH HOOK ABOVE
-       : 0055 + 0309
+       : 0055 0309
 1EE7   LATIN SMALL LETTER U WITH HOOK ABOVE
-       : 0075 + 0309
+       : 0075 0309
 1EE8   LATIN CAPITAL LETTER U WITH HORN AND ACUTE
-       : 01AF + 0301
+       : 01AF 0301
 1EE9   LATIN SMALL LETTER U WITH HORN AND ACUTE
-       : 01B0 + 0301
+       : 01B0 0301
 1EEA   LATIN CAPITAL LETTER U WITH HORN AND GRAVE
-       : 01AF + 0300
+       : 01AF 0300
 1EEB   LATIN SMALL LETTER U WITH HORN AND GRAVE
-       : 01B0 + 0300
+       : 01B0 0300
 1EEC   LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
-       : 01AF + 0309
+       : 01AF 0309
 1EED   LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
-       : 01B0 + 0309
+       : 01B0 0309
 1EEE   LATIN CAPITAL LETTER U WITH HORN AND TILDE
-       : 01AF + 0303
+       : 01AF 0303
 1EEF   LATIN SMALL LETTER U WITH HORN AND TILDE
-       : 01B0 + 0303
+       : 01B0 0303
 1EF0   LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
-       : 01AF + 0323
+       : 01AF 0323
 1EF1   LATIN SMALL LETTER U WITH HORN AND DOT BELOW
-       : 01B0 + 0323
+       : 01B0 0323
 1EF2   LATIN CAPITAL LETTER Y WITH GRAVE
-       : 0059 + 0300
+       : 0059 0300
 1EF3   LATIN SMALL LETTER Y WITH GRAVE
-       : 0079 + 0300
+       * Welsh
+       : 0079 0300
 1EF4   LATIN CAPITAL LETTER Y WITH DOT BELOW
-       : 0059 + 0323
+       : 0059 0323
 1EF5   LATIN SMALL LETTER Y WITH DOT BELOW
-       : 0079 + 0323
+       : 0079 0323
 1EF6   LATIN CAPITAL LETTER Y WITH HOOK ABOVE
-       : 0059 + 0309
+       : 0059 0309
 1EF7   LATIN SMALL LETTER Y WITH HOOK ABOVE
-       : 0079 + 0309
+       : 0079 0309
 1EF8   LATIN CAPITAL LETTER Y WITH TILDE
-       : 0059 + 0303
+       : 0059 0303
 1EF9   LATIN SMALL LETTER Y WITH TILDE
-       : 0079 + 0303
+       : 0079 0303
 @@     1F00    Greek Extended  1FFF
-@              Greek extended
+@              Precomposed polytonic Greek
 1F00   GREEK SMALL LETTER ALPHA WITH PSILI
-       : 03B1 + 0313
+       : 03B1 0313
 1F01   GREEK SMALL LETTER ALPHA WITH DASIA
-       : 03B1 + 0314
+       : 03B1 0314
 1F02   GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
-       : 1F00 + 0300
+       : 1F00 0300
 1F03   GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
-       : 1F01 + 0300
+       : 1F01 0300
 1F04   GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
-       : 1F00 + 0301
+       : 1F00 0301
 1F05   GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
-       : 1F01 + 0301
+       : 1F01 0301
 1F06   GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
-       : 1F00 + 0342
+       : 1F00 0342
 1F07   GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
-       : 1F01 + 0342
+       : 1F01 0342
 1F08   GREEK CAPITAL LETTER ALPHA WITH PSILI
-       : 0391 + 0313
+       : 0391 0313
 1F09   GREEK CAPITAL LETTER ALPHA WITH DASIA
-       : 0391 + 0314
+       : 0391 0314
 1F0A   GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
-       : 1F08 + 0300
+       : 1F08 0300
 1F0B   GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
-       : 1F09 + 0300
+       : 1F09 0300
 1F0C   GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
-       : 1F08 + 0301
+       : 1F08 0301
 1F0D   GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
-       : 1F09 + 0301
+       : 1F09 0301
 1F0E   GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
-       : 1F08 + 0342
+       : 1F08 0342
 1F0F   GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
-       : 1F09 + 0342
+       : 1F09 0342
 1F10   GREEK SMALL LETTER EPSILON WITH PSILI
-       : 03B5 + 0313
+       : 03B5 0313
 1F11   GREEK SMALL LETTER EPSILON WITH DASIA
-       : 03B5 + 0314
+       : 03B5 0314
 1F12   GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
-       : 1F10 + 0300
+       : 1F10 0300
 1F13   GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
-       : 1F11 + 0300
+       : 1F11 0300
 1F14   GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
-       : 1F10 + 0301
+       : 1F10 0301
 1F15   GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
-       : 1F11 + 0301
-1F16   <reserved>
-1F17   <reserved>
+       : 1F11 0301
 1F18   GREEK CAPITAL LETTER EPSILON WITH PSILI
-       : 0395 + 0313
+       : 0395 0313
 1F19   GREEK CAPITAL LETTER EPSILON WITH DASIA
-       : 0395 + 0314
+       : 0395 0314
 1F1A   GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
-       : 1F18 + 0300
+       : 1F18 0300
 1F1B   GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
-       : 1F19 + 0300
+       : 1F19 0300
 1F1C   GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
-       : 1F18 + 0301
+       : 1F18 0301
 1F1D   GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
-       : 1F19 + 0301
-1F1E   <reserved>
-1F1F   <reserved>
+       : 1F19 0301
 1F20   GREEK SMALL LETTER ETA WITH PSILI
-       : 03B7 + 0313
+       : 03B7 0313
 1F21   GREEK SMALL LETTER ETA WITH DASIA
-       : 03B7 + 0314
+       : 03B7 0314
 1F22   GREEK SMALL LETTER ETA WITH PSILI AND VARIA
-       : 1F20 + 0300
+       : 1F20 0300
 1F23   GREEK SMALL LETTER ETA WITH DASIA AND VARIA
-       : 1F21 + 0300
+       : 1F21 0300
 1F24   GREEK SMALL LETTER ETA WITH PSILI AND OXIA
-       : 1F20 + 0301
+       : 1F20 0301
 1F25   GREEK SMALL LETTER ETA WITH DASIA AND OXIA
-       : 1F21 + 0301
+       : 1F21 0301
 1F26   GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
-       : 1F20 + 0342
+       : 1F20 0342
 1F27   GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
-       : 1F21 + 0342
+       : 1F21 0342
 1F28   GREEK CAPITAL LETTER ETA WITH PSILI
-       : 0397 + 0313
+       : 0397 0313
 1F29   GREEK CAPITAL LETTER ETA WITH DASIA
-       : 0397 + 0314
+       : 0397 0314
 1F2A   GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
-       : 1F28 + 0300
+       : 1F28 0300
 1F2B   GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
-       : 1F29 + 0300
+       : 1F29 0300
 1F2C   GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
-       : 1F28 + 0301
+       : 1F28 0301
 1F2D   GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
-       : 1F29 + 0301
+       : 1F29 0301
 1F2E   GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
-       : 1F28 + 0342
+       : 1F28 0342
 1F2F   GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
-       : 1F29 + 0342
+       : 1F29 0342
 1F30   GREEK SMALL LETTER IOTA WITH PSILI
-       : 03B9 + 0313
+       : 03B9 0313
 1F31   GREEK SMALL LETTER IOTA WITH DASIA
-       : 03B9 + 0314
+       : 03B9 0314
 1F32   GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
-       : 1F30 + 0300
+       : 1F30 0300
 1F33   GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
-       : 1F31 + 0300
+       : 1F31 0300
 1F34   GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
-       : 1F30 + 0301
+       : 1F30 0301
 1F35   GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
-       : 1F31 + 0301
+       : 1F31 0301
 1F36   GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
-       : 1F30 + 0342
+       : 1F30 0342
 1F37   GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
-       : 1F31 + 0342
+       : 1F31 0342
 1F38   GREEK CAPITAL LETTER IOTA WITH PSILI
-       : 0399 + 0313
+       : 0399 0313
 1F39   GREEK CAPITAL LETTER IOTA WITH DASIA
-       : 0399 + 0314
+       : 0399 0314
 1F3A   GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
-       : 1F38 + 0300
+       : 1F38 0300
 1F3B   GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
-       : 1F39 + 0300
+       : 1F39 0300
 1F3C   GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
-       : 1F38 + 0301
+       : 1F38 0301
 1F3D   GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
-       : 1F39 + 0301
+       : 1F39 0301
 1F3E   GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
-       : 1F38 + 0342
+       : 1F38 0342
 1F3F   GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
-       : 1F39 + 0342
+       : 1F39 0342
 1F40   GREEK SMALL LETTER OMICRON WITH PSILI
-       : 03BF + 0313
+       : 03BF 0313
 1F41   GREEK SMALL LETTER OMICRON WITH DASIA
-       : 03BF + 0314
+       : 03BF 0314
 1F42   GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
-       : 1F40 + 0300
+       : 1F40 0300
 1F43   GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
-       : 1F41 + 0300
+       : 1F41 0300
 1F44   GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
-       : 1F40 + 0301
+       : 1F40 0301
 1F45   GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
-       : 1F41 + 0301
-1F46   <reserved>
-1F47   <reserved>
+       : 1F41 0301
 1F48   GREEK CAPITAL LETTER OMICRON WITH PSILI
-       : 039F + 0313
+       : 039F 0313
 1F49   GREEK CAPITAL LETTER OMICRON WITH DASIA
-       : 039F + 0314
+       : 039F 0314
 1F4A   GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
-       : 1F48 + 0300
+       : 1F48 0300
 1F4B   GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
-       : 1F49 + 0300
+       : 1F49 0300
 1F4C   GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
-       : 1F48 + 0301
+       : 1F48 0301
 1F4D   GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
-       : 1F49 + 0301
-1F4E   <reserved>
-1F4F   <reserved>
+       : 1F49 0301
 1F50   GREEK SMALL LETTER UPSILON WITH PSILI
-       : 03C5 + 0313
+       : 03C5 0313
 1F51   GREEK SMALL LETTER UPSILON WITH DASIA
-       : 03C5 + 0314
+       : 03C5 0314
 1F52   GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
-       : 1F50 + 0300
+       : 1F50 0300
 1F53   GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
-       : 1F51 + 0300
+       : 1F51 0300
 1F54   GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
-       : 1F50 + 0301
+       : 1F50 0301
 1F55   GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
-       : 1F51 + 0301
+       : 1F51 0301
 1F56   GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
-       : 1F50 + 0342
+       : 1F50 0342
 1F57   GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
-       : 1F51 + 0342
-1F58   <reserved>
+       : 1F51 0342
 1F59   GREEK CAPITAL LETTER UPSILON WITH DASIA
-       : 03A5 + 0314
-1F5A   <reserved>
+       : 03A5 0314
 1F5B   GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
-       : 1F59 + 0300
-1F5C   <reserved>
+       : 1F59 0300
 1F5D   GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
-       : 1F59 + 0301
-1F5E   <reserved>
+       : 1F59 0301
 1F5F   GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
-       : 1F59 + 0342
+       : 1F59 0342
 1F60   GREEK SMALL LETTER OMEGA WITH PSILI
-       : 03C9 + 0313
+       : 03C9 0313
 1F61   GREEK SMALL LETTER OMEGA WITH DASIA
-       : 03C9 + 0314
+       : 03C9 0314
 1F62   GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
-       : 1F60 + 0300
+       : 1F60 0300
 1F63   GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
-       : 1F61 + 0300
+       : 1F61 0300
 1F64   GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
-       : 1F60 + 0301
+       : 1F60 0301
 1F65   GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
-       : 1F61 + 0301
+       : 1F61 0301
 1F66   GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
-       : 1F60 + 0342
+       : 1F60 0342
 1F67   GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
-       : 1F61 + 0342
+       : 1F61 0342
 1F68   GREEK CAPITAL LETTER OMEGA WITH PSILI
-       : 03A9 + 0313
+       : 03A9 0313
 1F69   GREEK CAPITAL LETTER OMEGA WITH DASIA
-       : 03A9 + 0314
+       : 03A9 0314
 1F6A   GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
-       : 1F68 + 0300
+       : 1F68 0300
 1F6B   GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
-       : 1F69 + 0300
+       : 1F69 0300
 1F6C   GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
-       : 1F68 + 0301
+       : 1F68 0301
 1F6D   GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
-       : 1F69 + 0301
+       : 1F69 0301
 1F6E   GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
-       : 1F68 + 0342
+       : 1F68 0342
 1F6F   GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
-       : 1F69 + 0342
+       : 1F69 0342
 1F70   GREEK SMALL LETTER ALPHA WITH VARIA
-       : 03B1 + 0300
+       : 03B1 0300
 1F71   GREEK SMALL LETTER ALPHA WITH OXIA
-       : 03B1 + 0301
+       : 03AC greek small letter alpha with tonos
 1F72   GREEK SMALL LETTER EPSILON WITH VARIA
-       : 03B5 + 0300
+       : 03B5 0300
 1F73   GREEK SMALL LETTER EPSILON WITH OXIA
-       : 03B5 + 0301
+       : 03AD greek small letter epsilon with tonos
 1F74   GREEK SMALL LETTER ETA WITH VARIA
-       : 03B7 + 0300
+       : 03B7 0300
 1F75   GREEK SMALL LETTER ETA WITH OXIA
-       : 03B7 + 0301
+       : 03AE greek small letter eta with tonos
 1F76   GREEK SMALL LETTER IOTA WITH VARIA
-       : 03B9 + 0300
+       : 03B9 0300
 1F77   GREEK SMALL LETTER IOTA WITH OXIA
-       : 03B9 + 0301
+       : 03AF greek small letter iota with tonos
 1F78   GREEK SMALL LETTER OMICRON WITH VARIA
-       : 03BF + 0300
+       : 03BF 0300
 1F79   GREEK SMALL LETTER OMICRON WITH OXIA
-       : 03BF + 0301
+       : 03CC greek small letter omicron with tonos
 1F7A   GREEK SMALL LETTER UPSILON WITH VARIA
-       : 03C5 + 0300
+       : 03C5 0300
 1F7B   GREEK SMALL LETTER UPSILON WITH OXIA
-       : 03C5 + 0301
+       : 03CD greek small letter upsilon with tonos
 1F7C   GREEK SMALL LETTER OMEGA WITH VARIA
-       : 03C9 + 0300
+       : 03C9 0300
 1F7D   GREEK SMALL LETTER OMEGA WITH OXIA
-       : 03C9 + 0301
-1F7E   <reserved>
-1F7F   <reserved>
+       : 03CE greek small letter omega with tonos
 1F80   GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
-       : 1F00 + 0345
+       : 1F00 0345
 1F81   GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
-       : 1F01 + 0345
+       : 1F01 0345
 1F82   GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
-       : 1F02 + 0345
+       : 1F02 0345
 1F83   GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
-       : 1F03 + 0345
+       : 1F03 0345
 1F84   GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
-       : 1F04 + 0345
+       : 1F04 0345
 1F85   GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
-       : 1F05 + 0345
+       : 1F05 0345
 1F86   GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
-       : 1F06 + 0345
+       : 1F06 0345
 1F87   GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
-       : 1F07 + 0345
+       : 1F07 0345
 1F88   GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
-       : 1F08 + 0345
+       : 1F08 0345
 1F89   GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
-       : 1F09 + 0345
+       : 1F09 0345
 1F8A   GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
-       : 1F0A + 0345
+       : 1F0A 0345
 1F8B   GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
-       : 1F0B + 0345
+       : 1F0B 0345
 1F8C   GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
-       : 1F0C + 0345
+       : 1F0C 0345
 1F8D   GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
-       : 1F0D + 0345
+       : 1F0D 0345
 1F8E   GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
-       : 1F0E + 0345
+       : 1F0E 0345
 1F8F   GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
-       : 1F0F + 0345
+       : 1F0F 0345
 1F90   GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
-       : 1F20 + 0345
+       : 1F20 0345
 1F91   GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
-       : 1F21 + 0345
+       : 1F21 0345
 1F92   GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
-       : 1F22 + 0345
+       : 1F22 0345
 1F93   GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
-       : 1F23 + 0345
+       : 1F23 0345
 1F94   GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
-       : 1F24 + 0345
+       : 1F24 0345
 1F95   GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
-       : 1F25 + 0345
+       : 1F25 0345
 1F96   GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
-       : 1F26 + 0345
+       : 1F26 0345
 1F97   GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
-       : 1F27 + 0345
+       : 1F27 0345
 1F98   GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
-       : 1F28 + 0345
+       : 1F28 0345
 1F99   GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
-       : 1F29 + 0345
+       : 1F29 0345
 1F9A   GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
-       : 1F2A + 0345
+       : 1F2A 0345
 1F9B   GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
-       : 1F2B + 0345
+       : 1F2B 0345
 1F9C   GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
-       : 1F2C + 0345
+       : 1F2C 0345
 1F9D   GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
-       : 1F2D + 0345
+       : 1F2D 0345
 1F9E   GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
-       : 1F2E + 0345
+       : 1F2E 0345
 1F9F   GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
-       : 1F2F + 0345
+       : 1F2F 0345
 1FA0   GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
-       : 1F60 + 0345
+       : 1F60 0345
 1FA1   GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
-       : 1F61 + 0345
+       : 1F61 0345
 1FA2   GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
-       : 1F62 + 0345
+       : 1F62 0345
 1FA3   GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
-       : 1F63 + 0345
+       : 1F63 0345
 1FA4   GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
-       : 1F64 + 0345
+       : 1F64 0345
 1FA5   GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
-       : 1F65 + 0345
+       : 1F65 0345
 1FA6   GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
-       : 1F66 + 0345
+       : 1F66 0345
 1FA7   GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
-       : 1F67 + 0345
+       : 1F67 0345
 1FA8   GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
-       : 1F68 + 0345
+       : 1F68 0345
 1FA9   GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
-       : 1F69 + 0345
+       : 1F69 0345
 1FAA   GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
-       : 1F6A + 0345
+       : 1F6A 0345
 1FAB   GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
-       : 1F6B + 0345
+       : 1F6B 0345
 1FAC   GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
-       : 1F6C + 0345
+       : 1F6C 0345
 1FAD   GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
-       : 1F6D + 0345
+       : 1F6D 0345
 1FAE   GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
-       : 1F6E + 0345
+       : 1F6E 0345
 1FAF   GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
-       : 1F6F + 0345
+       : 1F6F 0345
 1FB0   GREEK SMALL LETTER ALPHA WITH VRACHY
-       : 03B1 + 0306
+       : 03B1 0306
 1FB1   GREEK SMALL LETTER ALPHA WITH MACRON
-       : 03B1 + 0304
+       : 03B1 0304
 1FB2   GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
-       : 1F70 + 0345
+       : 1F70 0345
 1FB3   GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI
-       : 03B1 + 0345
+       : 03B1 0345
 1FB4   GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
-       : 1F71 + 0345
-1FB5   <reserved>
+       : 03AC 0345
 1FB6   GREEK SMALL LETTER ALPHA WITH PERISPOMENI
-       : 03B1 + 0342
+       : 03B1 0342
 1FB7   GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
-       : 1FB6 + 0345
+       : 1FB6 0345
 1FB8   GREEK CAPITAL LETTER ALPHA WITH VRACHY
-       : 0391 + 0306
+       : 0391 0306
 1FB9   GREEK CAPITAL LETTER ALPHA WITH MACRON
-       : 0391 + 0304
+       : 0391 0304
 1FBA   GREEK CAPITAL LETTER ALPHA WITH VARIA
-       : 0391 + 0300
+       : 0391 0300
 1FBB   GREEK CAPITAL LETTER ALPHA WITH OXIA
-       : 0391 + 0301
+       : 0386 greek capital letter alpha with tonos
 1FBC   GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
-       : 0391 + 0345
+       : 0391 0345
 1FBD   GREEK KORONIS
-       # 0020 + 0313
+       # 0020 0313
 1FBE   GREEK PROSGEGRAMMENI
-       : 0399
+       : 03B9 greek small letter iota
 1FBF   GREEK PSILI
-       # 0020 + 0313
+       # 0020 0313
 1FC0   GREEK PERISPOMENI
-       # 0020 + 0342
+       # 0020 0342
 1FC1   GREEK DIALYTIKA AND PERISPOMENI
-       : 00A8 + 0342
+       : 00A8 0342
 1FC2   GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
-       : 1F74 + 0345
+       : 1F74 0345
 1FC3   GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI
-       : 03B7 + 0345
+       : 03B7 0345
 1FC4   GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
-       : 1F75 + 0345
-1FC5   <reserved>
+       : 03AE 0345
 1FC6   GREEK SMALL LETTER ETA WITH PERISPOMENI
-       : 03B7 + 0342
+       : 03B7 0342
 1FC7   GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
-       : 1FC6 + 0345
+       : 1FC6 0345
 1FC8   GREEK CAPITAL LETTER EPSILON WITH VARIA
-       : 0395 + 0300
+       : 0395 0300
 1FC9   GREEK CAPITAL LETTER EPSILON WITH OXIA
-       : 0395 + 0301
+       : 0388 greek capital letter epsilon with tonos
 1FCA   GREEK CAPITAL LETTER ETA WITH VARIA
-       : 0397 + 0300
+       : 0397 0300
 1FCB   GREEK CAPITAL LETTER ETA WITH OXIA
-       : 0397 + 0301
+       : 0389 greek capital letter eta with tonos
 1FCC   GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
-       : 0397 + 0345
+       : 0397 0345
 1FCD   GREEK PSILI AND VARIA
-       : 1FBF + 0300
+       : 1FBF 0300
 1FCE   GREEK PSILI AND OXIA
-       : 1FBF + 0301
+       : 1FBF 0301
 1FCF   GREEK PSILI AND PERISPOMENI
-       : 1FBF + 0342
+       : 1FBF 0342
 1FD0   GREEK SMALL LETTER IOTA WITH VRACHY
-       : 03B9 + 0306
+       : 03B9 0306
 1FD1   GREEK SMALL LETTER IOTA WITH MACRON
-       : 03B9 + 0304
+       : 03B9 0304
 1FD2   GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
-       : 03CA + 0300
+       : 03CA 0300
 1FD3   GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
-       : 03CA + 0301
-1FD4   <reserved>
-1FD5   <reserved>
+       : 0390 greek small letter iota with dialytika and tonos
 1FD6   GREEK SMALL LETTER IOTA WITH PERISPOMENI
-       : 03B9 + 0342
+       : 03B9 0342
 1FD7   GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
-       : 03CA + 0342
+       : 03CA 0342
 1FD8   GREEK CAPITAL LETTER IOTA WITH VRACHY
-       : 0399 + 0306
+       : 0399 0306
 1FD9   GREEK CAPITAL LETTER IOTA WITH MACRON
-       : 0399 + 0304
+       : 0399 0304
 1FDA   GREEK CAPITAL LETTER IOTA WITH VARIA
-       : 0399 + 0300
+       : 0399 0300
 1FDB   GREEK CAPITAL LETTER IOTA WITH OXIA
-       : 0399 + 0301
-1FDC   <reserved>
+       : 038A greek capital letter iota with tonos
 1FDD   GREEK DASIA AND VARIA
-       : 1FFE + 0300
+       : 1FFE 0300
 1FDE   GREEK DASIA AND OXIA
-       : 1FFE + 0301
+       : 1FFE 0301
 1FDF   GREEK DASIA AND PERISPOMENI
-       : 1FFE + 0342
+       : 1FFE 0342
 1FE0   GREEK SMALL LETTER UPSILON WITH VRACHY
-       : 03C5 + 0306
+       : 03C5 0306
 1FE1   GREEK SMALL LETTER UPSILON WITH MACRON
-       : 03C5 + 0304
+       : 03C5 0304
 1FE2   GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
-       : 03CB + 0300
+       : 03CB 0300
 1FE3   GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
-       : 03CB + 0301
+       : 03B0 greek small letter upsilon with dialytika and tonos
 1FE4   GREEK SMALL LETTER RHO WITH PSILI
-       : 03C1 + 0313
+       : 03C1 0313
 1FE5   GREEK SMALL LETTER RHO WITH DASIA
-       : 03C1 + 0314
+       : 03C1 0314
 1FE6   GREEK SMALL LETTER UPSILON WITH PERISPOMENI
-       : 03C5 + 0342
+       : 03C5 0342
 1FE7   GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
-       : 03CB + 0342
+       : 03CB 0342
 1FE8   GREEK CAPITAL LETTER UPSILON WITH VRACHY
-       : 03A5 + 0306
+       : 03A5 0306
 1FE9   GREEK CAPITAL LETTER UPSILON WITH MACRON
-       : 03A5 + 0304
+       : 03A5 0304
 1FEA   GREEK CAPITAL LETTER UPSILON WITH VARIA
-       : 03A5 + 0300
+       : 03A5 0300
 1FEB   GREEK CAPITAL LETTER UPSILON WITH OXIA
-       : 03A5 + 0301
+       : 038E greek capital letter upsilon with tonos
 1FEC   GREEK CAPITAL LETTER RHO WITH DASIA
-       : 03A1 + 0314
+       : 03A1 0314
 1FED   GREEK DIALYTIKA AND VARIA
-       : 00A8 + 0300
+       : 00A8 0300
 1FEE   GREEK DIALYTIKA AND OXIA
-       : 00A8 + 0301
+       : 0385 greek dialytika tonos
 1FEF   GREEK VARIA
-       : 0060
-1FF0   <reserved>
-1FF1   <reserved>
+       : 0060 grave accent
 1FF2   GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
-       : 1F7C + 0345
+       : 1F7C 0345
 1FF3   GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI
-       : 03C9 + 0345
+       : 03C9 0345
 1FF4   GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
-       : 1F79 + 0345
-1FF5   <reserved>
+       : 03CE 0345
 1FF6   GREEK SMALL LETTER OMEGA WITH PERISPOMENI
-       : 03C9 + 0342
+       : 03C9 0342
 1FF7   GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
-       : 1FF6 + 0345
+       : 1FF6 0345
 1FF8   GREEK CAPITAL LETTER OMICRON WITH VARIA
-       : 039F + 0300
+       : 039F 0300
 1FF9   GREEK CAPITAL LETTER OMICRON WITH OXIA
-       : 039F + 0301
+       : 038C greek capital letter omicron with tonos
 1FFA   GREEK CAPITAL LETTER OMEGA WITH VARIA
-       : 03A9 + 0300
+       : 03A9 0300
 1FFB   GREEK CAPITAL LETTER OMEGA WITH OXIA
-       : 03A9 + 0301
+       : 038F greek capital letter omega with tonos
 1FFC   GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
-       : 03A9 + 0345
+       : 03A9 0345
 1FFD   GREEK OXIA
-       : 00B4
+       : 00B4 acute accent
 1FFE   GREEK DASIA
-       # 0020 + 0314
+       # 0020 0314
 @@     2000    General Punctuation     206F
-@              General punctuation
+@              Spaces
 2000   EN QUAD
-       : 2002
+       : 2002 en space
 2001   EM QUAD
-       : 2003
+       = mutton quad
+       : 2003 em space
 2002   EN SPACE
-       # 0020
+       = nut
+       * half an em
+       # 0020 space
 2003   EM SPACE
-       # 0020
+       = mutton
+       * nominally, a space equal to the type size in points
+       * may scale by the condensation factor of a font
+       # 0020 space
 2004   THREE-PER-EM SPACE
-       # 0020
+       = thick space
+       # 0020 space
 2005   FOUR-PER-EM SPACE
-       # 0020
+       = mid space
+       # 0020 space
 2006   SIX-PER-EM SPACE
-       # 0020
+       * in computer typography sometimes equated to thin space
+       # 0020 space
 2007   FIGURE SPACE
-       # <noBreak> + 0020
+       * space equal to tabular width of a font
+       * this is equivalent to the digit width of fonts with fixed-width digits
+       # <noBreak> 0020
 2008   PUNCTUATION SPACE
-       # 0020
+       * space equal to narrow punctuation of a font
+       # 0020 space
 2009   THIN SPACE
-       # 0020
+       * a fifth of an em (or sometimes a sixth)
+       # 0020 space
 200A   HAIR SPACE
-       # 0020
+       * thinner than a thin space
+       * in traditional typography, the thinnest space available
+       # 0020 space
 200B   ZERO WIDTH SPACE
+       * nominally zero width, but may expand in justification
+@              Formatting characters
 200C   ZERO WIDTH NON-JOINER
-       = ZWNJ ("zwinj")
+       = ZWNJ
 200D   ZERO WIDTH JOINER
-       = ZWJ ("zawj")
+       = ZWJ
 200E   LEFT-TO-RIGHT MARK
        = LRM
 200F   RIGHT-TO-LEFT MARK
        = RLM
+@              Dashes
 2010   HYPHEN
        x (hyphen-minus - 002D)
 2011   NON-BREAKING HYPHEN
        x (hyphen-minus - 002D)
-       # <noBreak> + 2010
+       # <noBreak> 2010
 2012   FIGURE DASH
 2013   EN DASH
 2014   EM DASH
+       * may be used in pairs to offset parenthetical text
        x (katakana-hiragana prolonged sound mark - 30FC)
 2015   HORIZONTAL BAR
        = QUOTATION DASH
        * long dash introducing quoted text
+@              General punctuation
 2016   DOUBLE VERTICAL LINE
        * used in pairs to indicate norm of a matrix
        x (parallel to - 2225)
 2017   DOUBLE LOW LINE
-       = SPACING DOUBLE UNDERSCORE
        * this is a spacing character
        x (low line - 005F)
        x (combining double low line - 0333)
-       # 0020 + 0333
+       # 0020 0333
 2018   LEFT SINGLE QUOTATION MARK
        = SINGLE TURNED COMMA QUOTATION MARK
-       * this is the preferred character for opening single quotation mark
+       * this is the preferred glyph (as opposed to 201B)
        x (apostrophe - 0027)
        x (modifier letter turned comma - 02BB)
        x (heavy single turned comma quotation mark ornament - 275B)
 2019   RIGHT SINGLE QUOTATION MARK
        = SINGLE COMMA QUOTATION MARK
-       * this is the preferred character for closing single quotation mark
+       * this is the preferred character to use for apostrophe
        x (apostrophe - 0027)
        x (modifier letter apostrophe - 02BC)
        x (heavy single comma quotation mark ornament - 275C)
 201A   SINGLE LOW-9 QUOTATION MARK
        = LOW SINGLE COMMA QUOTATION MARK
-       * usually opening, sometimes closing, in European usage
+       * used as opening single quotation mark in some languages
 201B   SINGLE HIGH-REVERSED-9 QUOTATION MARK
        = SINGLE REVERSED COMMA QUOTATION MARK
        * glyph variant of 2018
        x (modifier letter reversed comma - 02BD)
 201C   LEFT DOUBLE QUOTATION MARK
        = DOUBLE TURNED COMMA QUOTATION MARK
-       * this is the preferred character for opening quotation mark
+       * this is the preferred glyph (as opposed to 201F)
        x (quotation mark - 0022)
        x (heavy double turned comma quotation mark ornament - 275D)
        x (reversed double prime quotation mark - 301D)
 201D   RIGHT DOUBLE QUOTATION MARK
        = DOUBLE COMMA QUOTATION MARK
-       * this is the preferred character for closing quotation mark
        x (quotation mark - 0022)
        x (double prime - 2033)
        x (heavy double comma quotation mark ornament - 275E)
        x (double prime quotation mark - 301E)
 201E   DOUBLE LOW-9 QUOTATION MARK
        = LOW DOUBLE COMMA QUOTATION MARK
-       * usually opening, sometimes closing, in European usage
+       * used as opening double quotation mark in some languages
        x (low double prime quotation mark - 301F)
 201F   DOUBLE HIGH-REVERSED-9 QUOTATION MARK
        = DOUBLE REVERSED COMMA QUOTATION MARK
        * glyph variant of 201C
 2020   DAGGER
+       = obelisk, obelus, long cross
 2021   DOUBLE DAGGER
+       = diesis, double obelisk
 2022   BULLET
        = black small circle
        x (middle dot - 00B7)
        x (middle dot - 00B7)
        x (bullet - 2022)
        x (bullet operator - 2219)
-       # 002E
+       # 002E full stop
 2025   TWO DOT LEADER
-       # 002E + 002E
+       # 002E 002E
 2026   HORIZONTAL ELLIPSIS
        = three dot leader
        x (vertical ellipsis - 22EE)
-       # 002E + 002E + 002E
+       # 002E 002E 002E
 2027   HYPHENATION POINT
+@              Formatting characters
 2028   LINE SEPARATOR
        * may be used to represent this semantic unambiguously
 2029   PARAGRAPH SEPARATOR
        = LRO
 202E   RIGHT-TO-LEFT OVERRIDE
        = RLO
-202F   <reserved>
+202F   NARROW NO-BREAK SPACE
+       x (no-break space - 00A0)
+       # <noBreak> 0020
+@              General punctuation
 2030   PER MILLE SIGN
        x (percent sign - 0025)
 2031   PER TEN THOUSAND SIGN
        x (percent sign - 0025)
 2032   PRIME
-       = minutes
-       = feet
+       = minutes, feet
        x (apostrophe - 0027)
        x (acute accent - 00B4)
        x (modifier letter prime - 02B9)
 2033   DOUBLE PRIME
-       = seconds
-       = inches
+       = seconds, inches
        x (quotation mark - 0022)
        x (modifier letter double prime - 02BA)
        x (right double quotation mark - 201D)
        x (ditto mark - 3003)
        x (double prime quotation mark - 301E)
-       # 2032 + 2032
+       # 2032 2032
 2034   TRIPLE PRIME
-       # 2032 + 2032 + 2032
+       # 2032 2032 2032
 2035   REVERSED PRIME
        x (grave accent - 0060)
 2036   REVERSED DOUBLE PRIME
        x (reversed double prime quotation mark - 301D)
-       # 2035 + 2035
+       # 2035 2035
 2037   REVERSED TRIPLE PRIME
-       # 2035 + 2035 + 2035
+       # 2035 2035 2035
 2038   CARET
+       x (up arrowhead - 2303)
 2039   SINGLE LEFT-POINTING ANGLE QUOTATION MARK
        = LEFT POINTING SINGLE GUILLEMET
        * usually opening, sometimes closing
 203B   REFERENCE MARK
        = Japanese kome
        = Urdu paragraph separator
+       x (tibetan ku ru kha bzhi mig can - 0FBF)
 203C   DOUBLE EXCLAMATION MARK
        x (exclamation mark - 0021)
-       # 0021 + 0021
+       # 0021 0021
 203D   INTERROBANG
+       x (exclamation mark - 0021)
        x (question mark - 003F)
 203E   OVERLINE
        = SPACING OVERSCORE
-       # 0020 + 0305
-203F   UNDERTIE
+       # 0020 0305
+203F   UNDERTIE (Enotikon)
        = Greek enotikon
+       x (smile - 2323)
 2040   CHARACTER TIE
+       x (frown - 2322)
 2041   CARET INSERTION POINT
        * proofreader's mark: insert here
        x (right semidirect product - 22CC)
 2042   ASTERISM
 2043   HYPHEN BULLET
 2044   FRACTION SLASH
+       = solidus (in typography)
        * for composing arbitrary fractions
        x (solidus - 002F)
        x (division slash - 2215)
 2045   LEFT SQUARE BRACKET WITH QUILL
 2046   RIGHT SQUARE BRACKET WITH QUILL
-2047   <reserved>
-2048   <reserved>
-2049   <reserved>
-204A   <reserved>
-204B   <reserved>
-204C   <reserved>
-204D   <reserved>
-204E   <reserved>
-204F   <reserved>
-2050   <reserved>
-2051   <reserved>
-2052   <reserved>
-2053   <reserved>
-2054   <reserved>
-2055   <reserved>
-2056   <reserved>
-2057   <reserved>
-2058   <reserved>
-2059   <reserved>
-205A   <reserved>
-205B   <reserved>
-205C   <reserved>
-205D   <reserved>
-205E   <reserved>
-205F   <reserved>
-2060   <reserved>
-2061   <reserved>
-2062   <reserved>
-2063   <reserved>
-2064   <reserved>
-2065   <reserved>
-2066   <reserved>
-2067   <reserved>
-2068   <reserved>
-2069   <reserved>
+2048   QUESTION EXCLAMATION MARK
+       * designed for use in vertical text
+       # 003F 0021
+2049   EXCLAMATION QUESTION MARK
+       * designed for use in vertical text
+       # 0021 003F
+204A   TIRONIAN SIGN ET
+       * Irish Gaelic, ...
+204B   REVERSED PILCROW SIGN
+       x (pilcrow sign - 00B6)
+204C   BLACK LEFTWARDS BULLET
+204D   BLACK RIGHTWARDS BULLET
+@              Deprecated
 206A   INHIBIT SYMMETRIC SWAPPING
 206B   ACTIVATE SYMMETRIC SWAPPING
 206C   INHIBIT ARABIC FORM SHAPING
 206E   NATIONAL DIGIT SHAPES
 206F   NOMINAL DIGIT SHAPES
 @@     2070    Superscripts and Subscripts     209F
-@              Superscripts and subscripts
+@              Superscripts
 2070   SUPERSCRIPT ZERO
-       # <super> + 0030
+       # <super> 0030
 2071   <reserved>
        x (superscript one - 00B9)
 2072   <reserved>
 2073   <reserved>
        x (superscript three - 00B3)
 2074   SUPERSCRIPT FOUR
-       # <super> + 0034
+       # <super> 0034
 2075   SUPERSCRIPT FIVE
-       # <super> + 0035
+       # <super> 0035
 2076   SUPERSCRIPT SIX
-       # <super> + 0036
+       # <super> 0036
 2077   SUPERSCRIPT SEVEN
-       # <super> + 0037
+       # <super> 0037
 2078   SUPERSCRIPT EIGHT
-       # <super> + 0038
+       # <super> 0038
 2079   SUPERSCRIPT NINE
-       # <super> + 0039
+       # <super> 0039
 207A   SUPERSCRIPT PLUS SIGN
-       # <super> + 002B
+       # <super> 002B
 207B   SUPERSCRIPT MINUS
-       # <super> + 2212
+       # <super> 2212
 207C   SUPERSCRIPT EQUALS SIGN
-       # <super> + 003D
+       # <super> 003D
 207D   SUPERSCRIPT LEFT PARENTHESIS
-       # <super> + 0028
+       # <super> 0028
 207E   SUPERSCRIPT RIGHT PARENTHESIS
-       # <super> + 0029
+       # <super> 0029
 207F   SUPERSCRIPT LATIN SMALL LETTER N
-       # <super> + 006E
+       # <super> 006E
+@              Subscripts
 2080   SUBSCRIPT ZERO
-       # <sub> + 0030
+       # <sub> 0030
 2081   SUBSCRIPT ONE
-       # <sub> + 0031
+       # <sub> 0031
 2082   SUBSCRIPT TWO
-       # <sub> + 0032
+       # <sub> 0032
 2083   SUBSCRIPT THREE
-       # <sub> + 0033
+       # <sub> 0033
 2084   SUBSCRIPT FOUR
-       # <sub> + 0034
+       # <sub> 0034
 2085   SUBSCRIPT FIVE
-       # <sub> + 0035
+       # <sub> 0035
 2086   SUBSCRIPT SIX
-       # <sub> + 0036
+       # <sub> 0036
 2087   SUBSCRIPT SEVEN
-       # <sub> + 0037
+       # <sub> 0037
 2088   SUBSCRIPT EIGHT
-       # <sub> + 0038
+       # <sub> 0038
 2089   SUBSCRIPT NINE
-       # <sub> + 0039
+       # <sub> 0039
 208A   SUBSCRIPT PLUS SIGN
-       # <sub> + 002B
+       # <sub> 002B
 208B   SUBSCRIPT MINUS
-       # <sub> + 2212
+       # <sub> 2212
 208C   SUBSCRIPT EQUALS SIGN
-       # <sub> + 003D
+       # <sub> 003D
 208D   SUBSCRIPT LEFT PARENTHESIS
-       # <sub> + 0028
+       # <sub> 0028
 208E   SUBSCRIPT RIGHT PARENTHESIS
-       # <sub> + 0029
+       # <sub> 0029
 @@     20A0    Currency Symbols        20CF
 @              Currency symbols
+@+             A number of currency symbols are found in other blocks.
                x (dollar sign - 0024)
                x (cent sign - 00A2)
                x (pound sign - 00A3)
                x (bengali rupee mark - 09F2)
                x (bengali rupee sign - 09F3)
                x (thai currency symbol baht - 0E3F)
+               x (khmer currency symbol riel - 17DB)
 20A0   EURO-CURRENCY SIGN
+       * intended for ECU, but not widely used
+       * historical character, this is NOT the euro!
+       x (euro sign - 20AC)
 20A1   COLON SIGN
        * Costa Rica, El Salvador
 20A2   CRUZEIRO SIGN
        * Spain
 20A8   RUPEE SIGN
        * India
-       # 0052 + 0073
+       # 0052 0073
 20A9   WON SIGN
        * Korea
 20AA   NEW SHEQEL SIGN
        * Israel
 20AB   DONG SIGN
        * Vietnam
+20AC   EURO SIGN
+       * currency sign for the European Monetary Union
+       * euro, not ECU
+       x (euro-currency sign - 20A0)
+20AD   KIP SIGN
+       * Laos
+20AE   TUGRIK SIGN
+       * Mongolia
+       * also transliterated as tugrug, tugric, tugrog, togrog
+20AF   DRACHMA SIGN
+       * Greece
 @@     20D0    Combining Diacritical Marks for Symbols 20FF
 @              Combining diacritical marks for symbols
 20D0   COMBINING LEFT HARPOON ABOVE
        x (large circle - 25EF)
        x (ideographic number zero - 3007)
 20DE   COMBINING ENCLOSING SQUARE
+       x (white square - 25A1)
 20DF   COMBINING ENCLOSING DIAMOND
+       x (white diamond - 25C7)
 20E0   COMBINING ENCLOSING CIRCLE BACKSLASH
        * prohibition
-@              Additional diacritics
+@              Additional diacritical mark for symbols
 20E1   COMBINING LEFT RIGHT ARROW ABOVE
        * tensor
+@              Additional enclosing diacritics
+20E2   COMBINING ENCLOSING SCREEN
+       x (clear screen symbol - 239A)
+20E3   COMBINING ENCLOSING KEYCAP
 @@     2100    Letterlike Symbols      214F
 @              Letterlike symbols
 2100   ACCOUNT OF
+       # 0061 002F 0063
 2101   ADDRESSED TO THE SUBJECT
+       # 0061 002F 0073
 2102   DOUBLE-STRUCK CAPITAL C
        = the set of complex numbers
-       x (latin capital letter c - 0043)
-       # <font> + 0043
+       # <font> 0043 latin capital letter c
 2103   DEGREE CELSIUS
        = degrees Centigrade
-       # 00B0 + 0043
+       # 00B0 0043
 2104   CENTRE LINE SYMBOL
        = clone
 2105   CARE OF
+       # 0063 002F 006F
 2106   CADA UNA
+       # 0063 002F 0075
 2107   EULER CONSTANT
        x (latin capital letter e - 0045)
-       x (latin capital letter open e - 0190)
-       # 0190
+       # 0190 latin capital letter open e
 2108   SCRUPLE
 2109   DEGREE FAHRENHEIT
-       # 00B0 + 0046
+       # 00B0 0046
 210A   SCRIPT SMALL G
        = real number symbol
-       x (latin small letter g - 0067)
-       # <font> + 0067
+       # <font> 0067 latin small letter g
 210B   SCRIPT CAPITAL H
        = Hamiltonian function
-       x (latin capital letter h - 0048)
-       # <font> + 0048
+       # <font> 0048 latin capital letter h
 210C   BLACK-LETTER CAPITAL H
-       x (latin capital letter h - 0048)
-       # <font> + 0048
+       = Hilbert space
+       # <font> 0048 latin capital letter h
 210D   DOUBLE-STRUCK CAPITAL H
-       x (latin capital letter h - 0048)
-       # <font> + 0048
+       # <font> 0048 latin capital letter h
 210E   PLANCK CONSTANT
-       x (latin small letter h - 0068)
-       # <font> + 0068
+       # <font> 0068 latin small letter h
 210F   PLANCK CONSTANT OVER TWO PI
-       x (latin small letter h with stroke - 0127)
        x (cyrillic small letter tshe - 045B)
-       # <font> + 0127
+       # <font> 0127 latin small letter h with stroke
 2110   SCRIPT CAPITAL I
-       x (latin capital letter i - 0049)
-       # <font> + 0049
+       # <font> 0049 latin capital letter i
 2111   BLACK-LETTER CAPITAL I
        = imaginary part
-       x (latin capital letter i - 0049)
-       # <font> + 0049
+       # <font> 0049 latin capital letter i
 2112   SCRIPT CAPITAL L
        = Laplace symbol
-       x (latin capital letter l - 004C)
-       # <font> + 004C
+       # <font> 004C latin capital letter l
 2113   SCRIPT SMALL L
-       = liter
-       x (latin small letter l - 006C)
-       # <font> + 006C
+       = liter (not an official SI recommendation)
+       # <font> 006C latin small letter l
 2114   L B BAR SYMBOL
        = pounds
 2115   DOUBLE-STRUCK CAPITAL N
        = natural number
-       x (latin capital letter n - 004E)
-       # <font> + 004E
+       # <font> 004E latin capital letter n
 2116   NUMERO SIGN
-       # 004E + 006F
+       # 004E 006F
 2117   SOUND RECORDING COPYRIGHT
        = published
+       = phonorecord sign
        x (copyright sign - 00A9)
 2118   SCRIPT CAPITAL P
-       = per
-       = power set
        = Weierstrass elliptic function
-       x (latin capital letter p - 0050)
-       # <font> + 0050
+       * actually this has the form of a lowercase calligraphic p, despite its name
 2119   DOUBLE-STRUCK CAPITAL P
-       x (latin capital letter p - 0050)
-       # <font> + 0050
+       # <font> 0050 latin capital letter p
 211A   DOUBLE-STRUCK CAPITAL Q
        = the set of rational numbers
-       x (latin capital letter q - 0051)
-       # <font> + 0051
+       # <font> 0051 latin capital letter q
 211B   SCRIPT CAPITAL R
        = Riemann Integral
-       x (latin capital letter r - 0052)
-       # <font> + 0052
+       # <font> 0052 latin capital letter r
 211C   BLACK-LETTER CAPITAL R
-       = REAL PART SYMBOL
-       x (latin capital letter r - 0052)
-       # <font> + 0052
+       = real part
+       # <font> 0052 latin capital letter r
 211D   DOUBLE-STRUCK CAPITAL R
        = the set of real numbers
-       x (latin capital letter r - 0052)
-       # <font> + 0052
+       # <font> 0052 latin capital letter r
 211E   PRESCRIPTION TAKE
        = recipe
        = cross ratio
 211F   RESPONSE
 2120   SERVICE MARK
-       # <super> + 0053 + 004D
+       # <super> 0053 004D
 2121   TELEPHONE SIGN
-       # <super> + 0054 + 0045 + 004C
+       # 0054 0045 004C
 2122   TRADE MARK SIGN
-       # <super> + 0054 + 004D
+       # <super> 0054 004D
 2123   VERSICLE
 2124   DOUBLE-STRUCK CAPITAL Z
        = the set of integers
-       x (latin capital letter z - 005A)
-       # <font> + 005A
+       # <font> 005A latin capital letter z
 2125   OUNCE SIGN
-       x (latin small letter ezh - 0292)
+       x (latin small letter yogh - 021D)
 2126   OHM SIGN
        = resistance
-       x (greek capital letter omega - 03A9)
-       : 03A9
+       : 03A9 greek capital letter omega
 2127   INVERTED OHM SIGN
+       = MHO
        = conductance
        * typographically a turned greek capital letter omega
        x (latin capital letter upsilon - 01B1)
        x (greek capital letter omega - 03A9)
 2128   BLACK-LETTER CAPITAL Z
-       x (latin capital letter z - 005A)
-       # <font> + 005A
+       # <font> 005A latin capital letter z
 2129   TURNED GREEK SMALL LETTER IOTA
        * unique element fulfilling a description (logic)
        x (greek small letter iota - 03B9)
 212A   KELVIN SIGN
-       = degrees Kelvin
-       x (latin capital letter k - 004B)
-       : 004B
+       : 004B latin capital letter k
 212B   ANGSTROM SIGN
-       x (latin capital letter a with ring above - 00C5)
-       : 00C5
+       : 00C5 latin capital letter a with ring above
 212C   SCRIPT CAPITAL B
        = Bernoulli function
-       x (latin capital letter b - 0042)
-       # <font> + 0042
+       # <font> 0042 latin capital letter b
 212D   BLACK-LETTER CAPITAL C
-       x (latin capital letter c - 0043)
-       # <font> + 0043
+       # <font> 0043 latin capital letter c
 212E   ESTIMATED SYMBOL
        * used in European packaging
        x (latin small letter e - 0065)
 212F   SCRIPT SMALL E
        = error
-       x (latin small letter e - 0065)
-       # <font> + 0065
+       # <font> 0065 latin small letter e
 2130   SCRIPT CAPITAL E
        = EMF (Electro-Magnetic Force)
-       x (latin capital letter e - 0045)
-       # <font> + 0045
+       # <font> 0045 latin capital letter e
 2131   SCRIPT CAPITAL F
        = Fourier transform
-       x (latin capital letter f - 0046)
-       # <font> + 0046
+       # <font> 0046 latin capital letter f
 2132   TURNED CAPITAL F
        x (latin capital letter f - 0046)
 2133   SCRIPT CAPITAL M
        = M-matrix (physics)
-       x (latin capital letter m - 004D)
-       # <font> + 004D
+       = German Mark (not the current Deutsche Mark)
+       # <font> 004D latin capital letter m
 2134   SCRIPT SMALL O
-       = order; of inferior order to
-       x (latin small letter o - 006F)
-       # <font> + 006F
+       = order, of inferior order to
+       # <font> 006F latin small letter o
+@              Hebrew letterlike math symbols (left-to-right)
 2135   ALEF SYMBOL
        = first transfinite cardinal (countable)
-       x (hebrew letter alef - 05D0)
-       # 05D0
+       # 05D0 hebrew letter alef
 2136   BET SYMBOL
        = second transfinite cardinal (the continuum)
-       x (hebrew letter bet - 05D1)
-       # 05D1
+       # 05D1 hebrew letter bet
 2137   GIMEL SYMBOL
        = third transfinite cardinal (functions of a real variable)
-       x (hebrew letter gimel - 05D2)
-       # 05D2
+       # 05D2 hebrew letter gimel
 2138   DALET SYMBOL
        = fourth transfinite cardinal
-       x (hebrew letter dalet - 05D3)
-       # 05D3
+       # 05D3 hebrew letter dalet
+@              Additional letterlike symbols
+2139   INFORMATION SOURCE
+       * intended for use with 20DD
+       # <font> 0069 latin small letter i
+213A   ROTATED CAPITAL Q
+       * a binding signature mark
 @@     2150    Number Forms    218F
-@              Number forms
-2150   <reserved>
+@              Fractions
+@+             Other fraction number forms are found in the Latin-1 Supplement block.
        x (vulgar fraction one quarter - 00BC)
-2151   <reserved>
        x (vulgar fraction one half - 00BD)
-2152   <reserved>
        x (vulgar fraction three quarters - 00BE)
 2153   VULGAR FRACTION ONE THIRD
-       # <fraction> + 0031 + 2044 + 0033
+       # 0031 2044 0033
 2154   VULGAR FRACTION TWO THIRDS
-       # <fraction> + 0032 + 2044 + 0033
+       # 0032 2044 0033
 2155   VULGAR FRACTION ONE FIFTH
-       # <fraction> + 0031 + 2044 + 0035
+       # 0031 2044 0035
 2156   VULGAR FRACTION TWO FIFTHS
-       # <fraction> + 0032 + 2044 + 0035
+       # 0032 2044 0035
 2157   VULGAR FRACTION THREE FIFTHS
-       # <fraction> + 0033 + 2044 + 0035
+       # 0033 2044 0035
 2158   VULGAR FRACTION FOUR FIFTHS
-       # <fraction> + 0034 + 2044 + 0035
+       # 0034 2044 0035
 2159   VULGAR FRACTION ONE SIXTH
-       # <fraction> + 0031 + 2044 + 0036
+       # 0031 2044 0036
 215A   VULGAR FRACTION FIVE SIXTHS
-       # <fraction> + 0035 + 2044 + 0036
+       # 0035 2044 0036
 215B   VULGAR FRACTION ONE EIGHTH
-       # <fraction> + 0031 + 2044 + 0038
+       # 0031 2044 0038
 215C   VULGAR FRACTION THREE EIGHTHS
-       # <fraction> + 0033 + 2044 + 0038
+       # 0033 2044 0038
 215D   VULGAR FRACTION FIVE EIGHTHS
-       # <fraction> + 0035 + 2044 + 0038
+       # 0035 2044 0038
 215E   VULGAR FRACTION SEVEN EIGHTHS
-       # <fraction> + 0037 + 2044 + 0038
+       # 0037 2044 0038
 215F   FRACTION NUMERATOR ONE
-       # <fraction> + 0031 + 2044
+       # 0031 2044
+@              Roman numerals
 2160   ROMAN NUMERAL ONE
-       # 0049
+       # 0049 latin capital letter i
 2161   ROMAN NUMERAL TWO
-       # 0049 + 0049
+       # 0049 0049
 2162   ROMAN NUMERAL THREE
-       # 0049 + 0049 + 0049
+       # 0049 0049 0049
 2163   ROMAN NUMERAL FOUR
-       # 0049 + 0056
+       # 0049 0056
 2164   ROMAN NUMERAL FIVE
-       # 0056
+       # 0056 latin capital letter v
 2165   ROMAN NUMERAL SIX
-       # 0056 + 0049
+       # 0056 0049
 2166   ROMAN NUMERAL SEVEN
-       # 0056 + 0049 + 0049
+       # 0056 0049 0049
 2167   ROMAN NUMERAL EIGHT
-       # 0056 + 0049 + 0049 + 0049
+       # 0056 0049 0049 0049
 2168   ROMAN NUMERAL NINE
-       # 0049 + 0058
+       # 0049 0058
 2169   ROMAN NUMERAL TEN
-       # 0058
+       # 0058 latin capital letter x
 216A   ROMAN NUMERAL ELEVEN
-       # 0058 + 0049
+       # 0058 0049
 216B   ROMAN NUMERAL TWELVE
-       # 0058 + 0049 + 0049
+       # 0058 0049 0049
 216C   ROMAN NUMERAL FIFTY
-       # 004C
+       # 004C latin capital letter l
 216D   ROMAN NUMERAL ONE HUNDRED
-       # 0043
+       # 0043 latin capital letter c
 216E   ROMAN NUMERAL FIVE HUNDRED
-       # 0044
+       # 0044 latin capital letter d
 216F   ROMAN NUMERAL ONE THOUSAND
-       # 004D
+       # 004D latin capital letter m
 2170   SMALL ROMAN NUMERAL ONE
-       # 0069
+       # 0069 latin small letter i
 2171   SMALL ROMAN NUMERAL TWO
-       # 0069 + 0069
+       # 0069 0069
 2172   SMALL ROMAN NUMERAL THREE
-       # 0069 + 0069 + 0069
+       # 0069 0069 0069
 2173   SMALL ROMAN NUMERAL FOUR
-       # 0069 + 0076
+       # 0069 0076
 2174   SMALL ROMAN NUMERAL FIVE
-       # 0076
+       # 0076 latin small letter v
 2175   SMALL ROMAN NUMERAL SIX
-       # 0076 + 0069
+       # 0076 0069
 2176   SMALL ROMAN NUMERAL SEVEN
-       # 0076 + 0069 + 0069
+       # 0076 0069 0069
 2177   SMALL ROMAN NUMERAL EIGHT
-       # 0076 + 0069 + 0069 + 0069
+       # 0076 0069 0069 0069
 2178   SMALL ROMAN NUMERAL NINE
-       # 0069 + 0078
+       # 0069 0078
 2179   SMALL ROMAN NUMERAL TEN
-       # 0078
+       # 0078 latin small letter x
 217A   SMALL ROMAN NUMERAL ELEVEN
-       # 0078 + 0069
+       # 0078 0069
 217B   SMALL ROMAN NUMERAL TWELVE
-       # 0078 + 0069 + 0069
+       # 0078 0069 0069
 217C   SMALL ROMAN NUMERAL FIFTY
-       # 006C
+       # 006C latin small letter l
 217D   SMALL ROMAN NUMERAL ONE HUNDRED
-       # 0063
+       # 0063 latin small letter c
 217E   SMALL ROMAN NUMERAL FIVE HUNDRED
-       # 0064
+       # 0064 latin small letter d
 217F   SMALL ROMAN NUMERAL ONE THOUSAND
-       # 006D
+       # 006D latin small letter m
 2180   ROMAN NUMERAL ONE THOUSAND C D
 2181   ROMAN NUMERAL FIVE THOUSAND
 2182   ROMAN NUMERAL TEN THOUSAND
+2183   ROMAN NUMERAL REVERSED ONE HUNDRED
+       * used in combination with C and I to form large numbers
 @@     2190    Arrows  21FF
 @              Arrows
 2190   LEFTWARDS ARROW
 2191   UPWARDS ARROW
+       * IPA: egressive airflow
 2192   RIGHTWARDS ARROW
+       = z notation total function
 2193   DOWNWARDS ARROW
+       * IPA: ingressive airflow
 2194   LEFT RIGHT ARROW
+       = z notation relation
 2195   UP DOWN ARROW
 2196   NORTH WEST ARROW
 2197   NORTH EAST ARROW
 2198   SOUTH EAST ARROW
 2199   SOUTH WEST ARROW
 219A   LEFTWARDS ARROW WITH STROKE
+       * negation of 2190
+       : 2190 0338
 219B   RIGHTWARDS ARROW WITH STROKE
+       * negation of 2192
+       : 2192 0338
 219C   LEFTWARDS WAVE ARROW
 219D   RIGHTWARDS WAVE ARROW
 219E   LEFTWARDS TWO HEADED ARROW
 219F   UPWARDS TWO HEADED ARROW
 21A0   RIGHTWARDS TWO HEADED ARROW
+       = z notation total surjection
 21A1   DOWNWARDS TWO HEADED ARROW
        = form feed
 21A2   LEFTWARDS ARROW WITH TAIL
 21A3   RIGHTWARDS ARROW WITH TAIL
+       = z notation total injection
 21A4   LEFTWARDS ARROW FROM BAR
 21A5   UPWARDS ARROW FROM BAR
 21A6   RIGHTWARDS ARROW FROM BAR
+       = z notation maplet
 21A7   DOWNWARDS ARROW FROM BAR
        = depth symbol
 21A8   UP DOWN ARROW WITH BASE
 21AC   RIGHTWARDS ARROW WITH LOOP
 21AD   LEFT RIGHT WAVE ARROW
 21AE   LEFT RIGHT ARROW WITH STROKE
+       * negation of 2194
+       : 2194 0338
 21AF   DOWNWARDS ZIGZAG ARROW
        = electrolysis
 21B0   UPWARDS ARROW WITH TIP LEFTWARDS
 21B4   RIGHTWARDS ARROW WITH CORNER DOWNWARDS
        = line feed
 21B5   DOWNWARDS ARROW WITH CORNER LEFTWARDS
-       = carriage return
-       = new line
+       = carriage return, new line
 21B6   ANTICLOCKWISE TOP SEMICIRCLE ARROW
 21B7   CLOCKWISE TOP SEMICIRCLE ARROW
 21B8   NORTH WEST ARROW TO LONG BAR
 21CB   LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
 21CC   RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
 21CD   LEFTWARDS DOUBLE ARROW WITH STROKE
+       * negation of 21D0
+       : 21D0 0338
 21CE   LEFT RIGHT DOUBLE ARROW WITH STROKE
+       * negation of 21D4
+       : 21D4 0338
 21CF   RIGHTWARDS DOUBLE ARROW WITH STROKE
+       * negation of 21D2
+       : 21D2 0338
 21D0   LEFTWARDS DOUBLE ARROW
 21D1   UPWARDS DOUBLE ARROW
 21D2   RIGHTWARDS DOUBLE ARROW
 21E9   DOWNWARDS WHITE ARROW
 21EA   UPWARDS WHITE ARROW FROM BAR
        = caps lock
+21EB   UPWARDS WHITE ARROW ON PEDESTAL
+       = level 2 lock
+21EC   UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR
+       = caps lock
+21ED   UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR
+       = numerics lock
+21EE   UPWARDS WHITE DOUBLE ARROW
+       = level 3 select
+21EF   UPWARDS WHITE DOUBLE ARROW ON PEDESTAL
+       = level 3 lock
+21F0   RIGHTWARDS WHITE ARROW FROM WALL
+       = group lock
+21F1   NORTH WEST ARROW TO CORNER
+       = home
+21F2   SOUTH EAST ARROW TO CORNER
+       = end
+21F3   UP DOWN WHITE ARROW
+       = scrolling
 @@     2200    Mathematical Operators  22FF
 @              Mathematical operators
 2200   FOR ALL
 2202   PARTIAL DIFFERENTIAL
 2203   THERE EXISTS
 2204   THERE DOES NOT EXIST
-       : 2203 + 0338
+       : 2203 0338
 2205   EMPTY SET
        = null set
-       = diameter symbol
        x (latin capital letter o with stroke - 00D8)
+       x (diameter sign - 2300)
 2206   INCREMENT
        = Laplace operator
        = forward difference
        x (white down-pointing triangle - 25BD)
 2208   ELEMENT OF
 2209   NOT AN ELEMENT OF
-       : 2208 + 0338
+       : 2208 0338
 220A   SMALL ELEMENT OF
+       * originates in math pi fonts; not the straight epsilon
 220B   CONTAINS AS MEMBER
        = such that
 220C   DOES NOT CONTAIN AS MEMBER
-       : 220B + 0338
+       : 220B 0338
 220D   SMALL CONTAINS AS MEMBER
 220E   END OF PROOF
-       = qed
+       = Q.E.D.
        x (triangular bullet - 2023)
+       x (black vertical rectangle - 25AE)
 220F   N-ARY PRODUCT
        = product sign
        x (greek capital letter pi - 03A0)
        x (vertical line - 007C)
        x (latin letter dental click - 01C0)
 2224   DOES NOT DIVIDE
-       : 2223 + 0338
+       : 2223 0338
 2225   PARALLEL TO
        x (latin letter lateral click - 01C1)
        x (double vertical line - 2016)
 2226   NOT PARALLEL TO
-       : 2225 + 0338
+       : 2225 0338
 2227   LOGICAL AND
-       = wedge
+       = wedge, conjunction
+       x (n-ary logical and - 22C0)
+       x (up arrowhead - 2303)
 2228   LOGICAL OR
-       = vee
+       = vee, disjunction
+       x (n-ary logical or - 22C1)
+       x (down arrowhead - 2304)
 2229   INTERSECTION
-       = cap
+       = cap, hat
+       x (n-ary intersection - 22C2)
 222A   UNION
        = cup
+       x (n-ary union - 22C3)
 222B   INTEGRAL
        x (latin small letter esh - 0283)
 222C   DOUBLE INTEGRAL
-       # 222B + 222B
+       # 222B 222B
 222D   TRIPLE INTEGRAL
-       # 222B + 222B + 222B
+       # 222B 222B 222B
 222E   CONTOUR INTEGRAL
 222F   SURFACE INTEGRAL
-       # 222E + 222E
+       # 222E 222E
 2230   VOLUME INTEGRAL
-       # 222E + 222E + 222E
+       # 222E 222E 222E
 2231   CLOCKWISE INTEGRAL
 2232   CLOCKWISE CONTOUR INTEGRAL
 2233   ANTICLOCKWISE CONTOUR INTEGRAL
+       * clockwise or anticlockwise arrows do not reverse during layout mirroring
 2234   THEREFORE
 2235   BECAUSE
 2236   RATIO
        = varies with (proportional to)
        = difference between
        = similar to
-       = APL tilde
-       = cycle
        = not
+       = cycle
+       = APL tilde
        x (tilde - 007E)
+       x (not sign - 00AC)
        x (small tilde - 02DC)
-223D   REVERSED TILDE
+223D   REVERSED TILDE (lazy S)
        = lazy S
        * reversed tilde and lazy S are glyph variants
 223E   INVERTED LAZY S
        = alternating current
 2240   WREATH PRODUCT
 2241   NOT TILDE
-       : 007E + 0338
+       : 223C 0338
 2242   MINUS TILDE
 2243   ASYMPTOTICALLY EQUAL TO
 2244   NOT ASYMPTOTICALLY EQUAL TO
-       : 2243 + 0338
+       : 2243 0338
 2245   APPROXIMATELY EQUAL TO
 2246   APPROXIMATELY BUT NOT ACTUALLY EQUAL TO
 2247   NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
-       : 2245 + 0338
+       : 2245 0338
 2248   ALMOST EQUAL TO
        = asymptotic to
 2249   NOT ALMOST EQUAL TO
-       : 2248 + 0338
+       : 2248 0338
 224A   ALMOST EQUAL OR EQUAL TO
 224B   TRIPLE TILDE
 224C   ALL EQUAL TO
 2260   NOT EQUAL TO
        x (equals sign - 003D)
        x (latin letter alveolar click - 01C2)
-       : 003D + 0338
+       : 003D 0338
 2261   IDENTICAL TO
 2262   NOT IDENTICAL TO
-       : 2261 + 0338
+       : 2261 0338
 2263   STRICTLY EQUIVALENT TO
 2264   LESS-THAN OR EQUAL TO
 2265   GREATER-THAN OR EQUAL TO
 226B   MUCH GREATER-THAN
        x (right-pointing double angle quotation mark - 00BB)
 226C   BETWEEN
-       = plaintiff
-       = quantic
+       = plaintiff, quantic
 226D   NOT EQUIVALENT TO
-       : 224D + 0338
+       : 224D 0338
 226E   NOT LESS-THAN
-       : 003C + 0338
+       : 003C 0338
 226F   NOT GREATER-THAN
-       : 003E + 0338
+       : 003E 0338
 2270   NEITHER LESS-THAN NOR EQUAL TO
-       : 2264 + 0338
+       : 2264 0338
 2271   NEITHER GREATER-THAN NOR EQUAL TO
-       : 2265 + 0338
+       : 2265 0338
 2272   LESS-THAN OR EQUIVALENT TO
 2273   GREATER-THAN OR EQUIVALENT TO
 2274   NEITHER LESS-THAN NOR EQUIVALENT TO
-       : 2272 + 0338
+       : 2272 0338
 2275   NEITHER GREATER-THAN NOR EQUIVALENT TO
-       : 2273 + 0338
+       : 2273 0338
 2276   LESS-THAN OR GREATER-THAN
 2277   GREATER-THAN OR LESS-THAN
 2278   NEITHER LESS-THAN NOR GREATER-THAN
-       : 2276 + 0338
+       : 2276 0338
 2279   NEITHER GREATER-THAN NOR LESS-THAN
-       : 2277 + 0338
+       : 2277 0338
 227A   PRECEDES
        = lower rank than
        x (precedes under relation - 22B0)
 227E   PRECEDES OR EQUIVALENT TO
 227F   SUCCEEDS OR EQUIVALENT TO
 2280   DOES NOT PRECEDE
-       : 227A + 0338
+       : 227A 0338
 2281   DOES NOT SUCCEED
-       : 227B + 0338
+       : 227B 0338
 2282   SUBSET OF
+       = included in set
 2283   SUPERSET OF
+       = includes in set
 2284   NOT A SUBSET OF
-       : 2282 + 0338
+       : 2282 0338
 2285   NOT A SUPERSET OF
-       : 2283 + 0338
+       : 2283 0338
 2286   SUBSET OF OR EQUAL TO
 2287   SUPERSET OF OR EQUAL TO
 2288   NEITHER A SUBSET OF NOR EQUAL TO
-       : 2286 + 0338
+       : 2286 0338
 2289   NEITHER A SUPERSET OF NOR EQUAL TO
-       : 2287 + 0338
+       : 2287 0338
 228A   SUBSET OF WITH NOT EQUAL TO
 228B   SUPERSET OF WITH NOT EQUAL TO
 228C   MULTISET
 228D   MULTISET MULTIPLICATION
 228E   MULTISET UNION
+       = z notation bag addition
 228F   SQUARE IMAGE OF
 2290   SQUARE ORIGINAL OF
 2291   SQUARE IMAGE OF OR EQUAL TO
 2299   CIRCLED DOT OPERATOR
        = direct product
        = vector pointing out of page
-       x (latin letter BILABIAL CLICK - 0298)
+       x (latin letter bilabial click - 0298)
        x (sun - 2609)
 229A   CIRCLED RING OPERATOR
+       x (apl functional symbol circle jot - 233E)
        x (bullseye - 25CE)
 229B   CIRCLED ASTERISK OPERATOR
 229C   CIRCLED EQUALS
        = reverse turnstile
        = non-theorem, does not yield
 22A4   DOWN TACK
+       = top
+       * called up tack in APL
 22A5   UP TACK
        = orthogonal to
        = perpendicular
-       * APL and other uses
+       = base
+       * called down tack in APL
 22A6   ASSERTION
        = reduces to
 22A7   MODELS
 22AA   TRIPLE VERTICAL BAR RIGHT TURNSTILE
 22AB   DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
 22AC   DOES NOT PROVE
-       : 22A2 + 0338
+       : 22A2 0338
 22AD   NOT TRUE
-       : 22A8 + 0338
+       : 22A8 0338
 22AE   DOES NOT FORCE
-       : 22A9 + 0338
+       : 22A9 0338
 22AF   NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
-       : 22AB + 0338
+       : 22AB 0338
 22B0   PRECEDES UNDER RELATION
        x (precedes - 227A)
 22B1   SUCCEEDS UNDER RELATION
        x (succeeds - 227B)
 22B2   NORMAL SUBGROUP OF
+       x (white left-pointing pointer - 25C5)
 22B3   CONTAINS AS NORMAL SUBGROUP
+       x (white right-pointing pointer - 25BB)
 22B4   NORMAL SUBGROUP OF OR EQUAL TO
 22B5   CONTAINS AS NORMAL SUBGROUP OR EQUAL TO
 22B6   ORIGINAL OF
 22BA   INTERCALATE
 22BB   XOR
 22BC   NAND
+       x (projective - 2305)
 22BD   NOR
 22BE   RIGHT ANGLE WITH ARC
 22BF   RIGHT TRIANGLE
 22C0   N-ARY LOGICAL AND
+       x (logical and - 2227)
 22C1   N-ARY LOGICAL OR
+       x (logical or - 2228)
 22C2   N-ARY INTERSECTION
+       = z notation generalised intersection
+       x (intersection - 2229)
 22C3   N-ARY UNION
+       = z notation generalised union
+       x (union - 222A)
 22C4   DIAMOND OPERATOR
        x (white diamond - 25C7)
 22C5   DOT OPERATOR
        x (middle dot - 00B7)
 22C6   STAR OPERATOR
        * APL
+       x (arabic five pointed star - 066D)
        x (black star - 2605)
 22C7   DIVISION TIMES
 22C8   BOWTIE
 22DE   EQUAL TO OR PRECEDES
 22DF   EQUAL TO OR SUCCEEDS
 22E0   DOES NOT PRECEDE OR EQUAL
-       : 227C + 0338
+       : 227C 0338
 22E1   DOES NOT SUCCEED OR EQUAL
-       : 227D + 0338
+       : 227D 0338
 22E2   NOT SQUARE IMAGE OF OR EQUAL TO
-       : 2291 + 0338
+       : 2291 0338
 22E3   NOT SQUARE ORIGINAL OF OR EQUAL TO
-       : 2292 + 0338
+       : 2292 0338
 22E4   SQUARE IMAGE OF OR NOT EQUAL TO
 22E5   SQUARE ORIGINAL OF OR NOT EQUAL TO
 22E6   LESS-THAN BUT NOT EQUIVALENT TO
 22E8   PRECEDES BUT NOT EQUIVALENT TO
 22E9   SUCCEEDS BUT NOT EQUIVALENT TO
 22EA   NOT NORMAL SUBGROUP OF
-       : 22B2 + 0338
+       : 22B2 0338
 22EB   DOES NOT CONTAIN AS NORMAL SUBGROUP
-       : 22B3 + 0338
+       : 22B3 0338
 22EC   NOT NORMAL SUBGROUP OF OR EQUAL TO
-       : 22B4 + 0338
+       : 22B4 0338
 22ED   DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
-       : 22B5 + 0338
+       : 22B5 0338
 22EE   VERTICAL ELLIPSIS
-       * these four ellipses are used for matrix row/column ellision
+       * these four ellipses are used for matrix row/column elision
        x (horizontal ellipsis - 2026)
 22EF   MIDLINE HORIZONTAL ELLIPSIS
 22F0   UP RIGHT DIAGONAL ELLIPSIS
 @@     2300    Miscellaneous Technical 23FF
 @              Miscellaneous technical
 2300   DIAMETER SIGN
-2301   <reserved>
+       x (empty set - 2205)
+2301   ELECTRIC ARROW
+       * from ISO 2047
+       * symbol for End of Transmission
 2302   HOUSE
 2303   UP ARROWHEAD
        x (circumflex accent - 005E)
        x (modifier letter up arrowhead - 02C4)
+       x (caret - 2038)
+       x (logical and - 2227)
 2304   DOWN ARROWHEAD
+       x (modifier letter down arrowhead - 02C5)
+       x (logical or - 2228)
+       x (countersink - 2335)
 2305   PROJECTIVE
+       x (nand - 22BC)
 2306   PERSPECTIVE
 2307   WAVY LINE
        x (wavy dash - 3030)
 2308   LEFT CEILING
        = APL upstile
+       x (left corner bracket - 300C)
 2309   RIGHT CEILING
 230A   LEFT FLOOR
        = APL downstile
 230B   RIGHT FLOOR
+       x (right corner bracket - 300D)
 230C   BOTTOM RIGHT CROP
        * set of four "crop" corners, arranged facing outward
 230D   BOTTOM LEFT CROP
        x (not sign - 00AC)
 2311   SQUARE LOZENGE
 2312   ARC
+       x (upper half circle - 25E0)
 2313   SEGMENT
 2314   SECTOR
 2315   TELEPHONE RECORDER
 2320   TOP HALF INTEGRAL
 2321   BOTTOM HALF INTEGRAL
 2322   FROWN
+       x (character tie - 2040)
 2323   SMILE
+       x (undertie - 203F)
 2324   UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS
        = ENTER KEY
 2325   OPTION KEY
 2328   KEYBOARD
 2329   LEFT-POINTING ANGLE BRACKET
        = BRA
+       = z notation left sequence bracket
        x (less-than sign - 003C)
        x (single left-pointing angle quotation mark - 2039)
-       x (left angle bracket - 3008)
-       : 3008
+       : 3008 left angle bracket
 232A   RIGHT-POINTING ANGLE BRACKET
        = KET
+       = z notation right sequence bracket
        x (greater-than sign - 003E)
        x (single right-pointing angle quotation mark - 203A)
-       x (right angle bracket - 3009)
-       : 3009
+       : 3009 right angle bracket
 232B   ERASE TO THE LEFT
        = DELETE TO THE LEFT KEY
 232C   BENZENE RING
 2332   CONICAL TAPER
 2333   SLOPE
 2334   COUNTERBORE
+       x (open box - 2423)
 2335   COUNTERSINK
+       x (down arrowhead - 2304)
 @              APL
 2336   APL FUNCTIONAL SYMBOL I-BEAM
 2337   APL FUNCTIONAL SYMBOL SQUISH QUAD
+       x (apl functional symbol quad - 2395)
+       x (white vertical rectangle - 25AF)
 2338   APL FUNCTIONAL SYMBOL QUAD EQUAL
 2339   APL FUNCTIONAL SYMBOL QUAD DIVIDE
 233A   APL FUNCTIONAL SYMBOL QUAD DIAMOND
 233C   APL FUNCTIONAL SYMBOL QUAD CIRCLE
 233D   APL FUNCTIONAL SYMBOL CIRCLE STILE
 233E   APL FUNCTIONAL SYMBOL CIRCLE JOT
+       x (circled ring operator - 229A)
 233F   APL FUNCTIONAL SYMBOL SLASH BAR
 2340   APL FUNCTIONAL SYMBOL BACKSLASH BAR
 2341   APL FUNCTIONAL SYMBOL QUAD SLASH
 2347   APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW
 2348   APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW
 2349   APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH
-234A   APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR
+234A   APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR *
+       x (up tack - 22A5)
 234B   APL FUNCTIONAL SYMBOL DELTA STILE
 234C   APL FUNCTIONAL SYMBOL QUAD DOWN CARET
 234D   APL FUNCTIONAL SYMBOL QUAD DELTA
-234E   APL FUNCTIONAL SYMBOL DOWN TACK JOT
+234E   APL FUNCTIONAL SYMBOL DOWN TACK JOT *
 234F   APL FUNCTIONAL SYMBOL UPWARDS VANE
 2350   APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW
-2351   APL FUNCTIONAL SYMBOL UP TACK OVERBAR
+2351   APL FUNCTIONAL SYMBOL UP TACK OVERBAR *
+       x (down tack - 22A4)
+       x (postal mark - 3012)
 2352   APL FUNCTIONAL SYMBOL DEL STILE
 2353   APL FUNCTIONAL SYMBOL QUAD UP CARET
 2354   APL FUNCTIONAL SYMBOL QUAD DEL
-2355   APL FUNCTIONAL SYMBOL UP TACK JOT
+2355   APL FUNCTIONAL SYMBOL UP TACK JOT *
 2356   APL FUNCTIONAL SYMBOL DOWNWARDS VANE
 2357   APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW
 2358   APL FUNCTIONAL SYMBOL QUOTE UNDERBAR
 235E   APL FUNCTIONAL SYMBOL QUOTE QUAD
 235F   APL FUNCTIONAL SYMBOL CIRCLE STAR
 2360   APL FUNCTIONAL SYMBOL QUAD COLON
-2361   APL FUNCTIONAL SYMBOL UP TACK DIAERESIS
+2361   APL FUNCTIONAL SYMBOL UP TACK DIAERESIS *
 2362   APL FUNCTIONAL SYMBOL DEL DIAERESIS
 2363   APL FUNCTIONAL SYMBOL STAR DIAERESIS
 2364   APL FUNCTIONAL SYMBOL JOT DIAERESIS
 2378   APL FUNCTIONAL SYMBOL IOTA UNDERBAR
 2379   APL FUNCTIONAL SYMBOL OMEGA UNDERBAR
 237A   APL FUNCTIONAL SYMBOL ALPHA
+@              Graphics for control codes
+237B   NOT CHECK MARK
+       * from ISO 2047
+       * symbol for Negative Acknowledge
+237D   SHOULDERED OPEN BOX
+       * from ISO 9995-7
+       * keyboard symbol for No Break Space
+237E   BELL SYMBOL
+       * from ISO 2047
+237F   VERTICAL LINE WITH MIDDLE DOT
+       * from ISO 2047
+       * symbol for End of Medium
+@              Keyboard symbols from ISO 9995-7
+2380   INSERTION SYMBOL
+2381   CONTINUOUS UNDERLINE SYMBOL
+2382   DISCONTINUOUS UNDERLINE SYMBOL
+2383   EMPHASIS SYMBOL
+2384   COMPOSITION SYMBOL
+2385   WHITE SQUARE WITH CENTRE VERTICAL LINE
+2386   ENTER SYMBOL
+2387   ALTERNATIVE KEY SYMBOL
+2388   HELM SYMBOL
+       = control
+       x (wheel of dharma - 2638)
+2389   CIRCLED HORIZONTAL BAR WITH NOTCH (pause)
+238A   CIRCLED TRIANGLE DOWN (break)
+238B   BROKEN CIRCLE WITH NORTHWEST ARROW (escape)
+238C   UNDO SYMBOL
+@              Electrotechnical symbols from IR 181
+238D   MONOSTABLE SYMBOL
+238E   HYSTERESIS SYMBOL
+238F   OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL
+2390   OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL
+2391   PASSIVE-PULL-DOWN-OUTPUT SYMBOL
+2392   PASSIVE-PULL-UP-OUTPUT SYMBOL
+2393   DIRECT CURRENT SYMBOL FORM TWO
+2394   SOFTWARE-FUNCTION SYMBOL
+@              APL
+2395   APL FUNCTIONAL SYMBOL QUAD
+       x (apl functional symbol squish quad - 2337)
+       x (white vertical rectangle - 25AF)
+@              Keyboard symbols from ISO 9995-7
+2396   DECIMAL SEPARATOR KEY SYMBOL
+2397   PREVIOUS PAGE
+2398   NEXT PAGE
+2399   PRINT SCREEN SYMBOL
+239A   CLEAR SCREEN SYMBOL
+       x (combining enclosing screen - 20E2)
 @@     2400    Control Pictures        243F
 @              Graphic pictures for control codes
 2400   SYMBOL FOR NULL
        x (latin small letter b with stroke - 0180)
 2423   OPEN BOX
        * graphic for space
+       x (counterbore - 2334)
 2424   SYMBOL FOR NEWLINE
+2425   SYMBOL FOR DELETE FORM TWO
+       * from ISO 9995-7
+       * keyboard symbol for undoable delete
+2426   SYMBOL FOR SUBSTITUTE FORM TWO
+       * from ISO 2047
+       x (arabic question mark - 061F)
 @@     2440    Optical Character Recognition   245F
 @              OCR
 2440   OCR HOOK
 @@     2460    Enclosed Alphanumerics  24FF
 @              Circled numbers
 2460   CIRCLED DIGIT ONE
-       # <circle> + 0031
+       # <circle> 0031
 2461   CIRCLED DIGIT TWO
-       # <circle> + 0032
+       # <circle> 0032
 2462   CIRCLED DIGIT THREE
-       # <circle> + 0033
+       # <circle> 0033
 2463   CIRCLED DIGIT FOUR
-       # <circle> + 0034
+       # <circle> 0034
 2464   CIRCLED DIGIT FIVE
-       # <circle> + 0035
+       # <circle> 0035
 2465   CIRCLED DIGIT SIX
-       # <circle> + 0036
+       # <circle> 0036
 2466   CIRCLED DIGIT SEVEN
-       # <circle> + 0037
+       # <circle> 0037
 2467   CIRCLED DIGIT EIGHT
-       # <circle> + 0038
+       # <circle> 0038
 2468   CIRCLED DIGIT NINE
-       # <circle> + 0039
+       # <circle> 0039
 2469   CIRCLED NUMBER TEN
-       # <circle> + 0031
+       # <circle> 0031 0030
 246A   CIRCLED NUMBER ELEVEN
-       # <circle> + 0031 + 0030
+       # <circle> 0031 0031
 246B   CIRCLED NUMBER TWELVE
-       # <circle> + 0031 + 0032
+       # <circle> 0031 0032
 246C   CIRCLED NUMBER THIRTEEN
-       # <circle> + 0031 + 0033
+       # <circle> 0031 0033
 246D   CIRCLED NUMBER FOURTEEN
-       # <circle> + 0031 + 0034
+       # <circle> 0031 0034
 246E   CIRCLED NUMBER FIFTEEN
-       # <circle> + 0031 + 0035
+       # <circle> 0031 0035
 246F   CIRCLED NUMBER SIXTEEN
-       # <circle> + 0031 + 0036
+       # <circle> 0031 0036
 2470   CIRCLED NUMBER SEVENTEEN
-       # <circle> + 0031 + 0037
+       # <circle> 0031 0037
 2471   CIRCLED NUMBER EIGHTEEN
-       # <circle> + 0031 + 0038
+       # <circle> 0031 0038
 2472   CIRCLED NUMBER NINETEEN
-       # <circle> + 0031 + 0039
+       # <circle> 0031 0039
 2473   CIRCLED NUMBER TWENTY
-       # <circle> + 0032 + 0030
+       # <circle> 0032 0030
 @              Parenthesized numbers
 2474   PARENTHESIZED DIGIT ONE
-       : 0028 + 0031 + 0029
+       # 0028 0031 0029
 2475   PARENTHESIZED DIGIT TWO
-       : 0028 + 0032 + 0029
+       # 0028 0032 0029
 2476   PARENTHESIZED DIGIT THREE
-       : 0028 + 0033 + 0029
+       # 0028 0033 0029
 2477   PARENTHESIZED DIGIT FOUR
-       : 0028 + 0034 + 0029
+       # 0028 0034 0029
 2478   PARENTHESIZED DIGIT FIVE
-       : 0028 + 0035 + 0029
+       # 0028 0035 0029
 2479   PARENTHESIZED DIGIT SIX
-       : 0028 + 0036 + 0029
+       # 0028 0036 0029
 247A   PARENTHESIZED DIGIT SEVEN
-       : 0028 + 0037 + 0029
+       # 0028 0037 0029
 247B   PARENTHESIZED DIGIT EIGHT
-       : 0028 + 0038 + 0029
+       # 0028 0038 0029
 247C   PARENTHESIZED DIGIT NINE
-       : 0028 + 0039 + 0029
+       # 0028 0039 0029
 247D   PARENTHESIZED NUMBER TEN
-       : 0028 + 0031 + 0030 + 0029
+       # 0028 0031 0030 0029
 247E   PARENTHESIZED NUMBER ELEVEN
-       : 0028 + 0031 + 0031 + 0029
+       # 0028 0031 0031 0029
 247F   PARENTHESIZED NUMBER TWELVE
-       : 0028 + 0031 + 0032 + 0029
+       # 0028 0031 0032 0029
 2480   PARENTHESIZED NUMBER THIRTEEN
-       : 0028 + 0031 + 0033 + 0029
+       # 0028 0031 0033 0029
 2481   PARENTHESIZED NUMBER FOURTEEN
-       : 0028 + 0031 + 0034 + 0029
+       # 0028 0031 0034 0029
 2482   PARENTHESIZED NUMBER FIFTEEN
-       : 0028 + 0031 + 0035 + 0029
+       # 0028 0031 0035 0029
 2483   PARENTHESIZED NUMBER SIXTEEN
-       : 0028 + 0031 + 0036 + 0029
+       # 0028 0031 0036 0029
 2484   PARENTHESIZED NUMBER SEVENTEEN
-       : 0028 + 0031 + 0037 + 0029
+       # 0028 0031 0037 0029
 2485   PARENTHESIZED NUMBER EIGHTEEN
-       : 0028 + 0031 + 0038 + 0029
+       # 0028 0031 0038 0029
 2486   PARENTHESIZED NUMBER NINETEEN
-       : 0028 + 0031 + 0039 + 0029
+       # 0028 0031 0039 0029
 2487   PARENTHESIZED NUMBER TWENTY
-       : 0028 + 0032 + 0030 + 0029
+       # 0028 0032 0030 0029
 @              Numbers period
 2488   DIGIT ONE FULL STOP
-       : 0031 + 002E
+       # 0031 002E
 2489   DIGIT TWO FULL STOP
-       : 0032 + 002E
+       # 0032 002E
 248A   DIGIT THREE FULL STOP
-       : 0033 + 002E
+       # 0033 002E
 248B   DIGIT FOUR FULL STOP
-       : 0034 + 002E
+       # 0034 002E
 248C   DIGIT FIVE FULL STOP
-       : 0035 + 002E
+       # 0035 002E
 248D   DIGIT SIX FULL STOP
-       : 0036 + 002E
+       # 0036 002E
 248E   DIGIT SEVEN FULL STOP
-       : 0037 + 002E
+       # 0037 002E
 248F   DIGIT EIGHT FULL STOP
-       : 0038 + 002E
+       # 0038 002E
 2490   DIGIT NINE FULL STOP
-       : 0039 + 002E
+       # 0039 002E
 2491   NUMBER TEN FULL STOP
-       : 0031 + 0030 + 002E
+       # 0031 0030 002E
 2492   NUMBER ELEVEN FULL STOP
-       : 0031 + 0031 + 002E
+       # 0031 0031 002E
 2493   NUMBER TWELVE FULL STOP
-       : 0031 + 0032 + 002E
+       # 0031 0032 002E
 2494   NUMBER THIRTEEN FULL STOP
-       : 0031 + 0033 + 002E
+       # 0031 0033 002E
 2495   NUMBER FOURTEEN FULL STOP
-       : 0031 + 0034 + 002E
+       # 0031 0034 002E
 2496   NUMBER FIFTEEN FULL STOP
-       : 0031 + 0035 + 002E
+       # 0031 0035 002E
 2497   NUMBER SIXTEEN FULL STOP
-       : 0031 + 0036 + 002E
+       # 0031 0036 002E
 2498   NUMBER SEVENTEEN FULL STOP
-       : 0031 + 0037 + 002E
+       # 0031 0037 002E
 2499   NUMBER EIGHTEEN FULL STOP
-       : 0031 + 0038 + 002E
+       # 0031 0038 002E
 249A   NUMBER NINETEEN FULL STOP
-       : 0031 + 0039 + 002E
+       # 0031 0039 002E
 249B   NUMBER TWENTY FULL STOP
-       : 0032 + 0030 + 002E
+       # 0032 0030 002E
 @              Parenthesized Latin letters
 249C   PARENTHESIZED LATIN SMALL LETTER A
-       : 0028 + 0061 + 0029
+       # 0028 0061 0029
 249D   PARENTHESIZED LATIN SMALL LETTER B
-       : 0028 + 0062 + 0029
+       # 0028 0062 0029
 249E   PARENTHESIZED LATIN SMALL LETTER C
-       : 0028 + 0063 + 0029
+       # 0028 0063 0029
 249F   PARENTHESIZED LATIN SMALL LETTER D
-       : 0028 + 0064 + 0029
+       # 0028 0064 0029
 24A0   PARENTHESIZED LATIN SMALL LETTER E
-       : 0028 + 0065 + 0029
+       # 0028 0065 0029
 24A1   PARENTHESIZED LATIN SMALL LETTER F
-       : 0028 + 0066 + 0029
+       # 0028 0066 0029
 24A2   PARENTHESIZED LATIN SMALL LETTER G
-       : 0028 + 0067 + 0029
+       # 0028 0067 0029
 24A3   PARENTHESIZED LATIN SMALL LETTER H
-       : 0028 + 0068 + 0029
+       # 0028 0068 0029
 24A4   PARENTHESIZED LATIN SMALL LETTER I
-       : 0028 + 0069 + 0029
+       # 0028 0069 0029
 24A5   PARENTHESIZED LATIN SMALL LETTER J
-       : 0028 + 006A + 0029
+       # 0028 006A 0029
 24A6   PARENTHESIZED LATIN SMALL LETTER K
-       : 0028 + 006B + 0029
+       # 0028 006B 0029
 24A7   PARENTHESIZED LATIN SMALL LETTER L
-       : 0028 + 006C + 0029
+       # 0028 006C 0029
 24A8   PARENTHESIZED LATIN SMALL LETTER M
-       : 0028 + 006D + 0029
+       # 0028 006D 0029
 24A9   PARENTHESIZED LATIN SMALL LETTER N
-       : 0028 + 006E + 0029
+       # 0028 006E 0029
 24AA   PARENTHESIZED LATIN SMALL LETTER O
-       : 0028 + 006F + 0029
+       # 0028 006F 0029
 24AB   PARENTHESIZED LATIN SMALL LETTER P
-       : 0028 + 0070 + 0029
+       # 0028 0070 0029
 24AC   PARENTHESIZED LATIN SMALL LETTER Q
-       : 0028 + 0071 + 0029
+       # 0028 0071 0029
 24AD   PARENTHESIZED LATIN SMALL LETTER R
-       : 0028 + 0072 + 0029
+       # 0028 0072 0029
 24AE   PARENTHESIZED LATIN SMALL LETTER S
-       : 0028 + 0073 + 0029
+       # 0028 0073 0029
 24AF   PARENTHESIZED LATIN SMALL LETTER T
-       : 0028 + 0074 + 0029
+       # 0028 0074 0029
 24B0   PARENTHESIZED LATIN SMALL LETTER U
-       : 0028 + 0075 + 0029
+       # 0028 0075 0029
 24B1   PARENTHESIZED LATIN SMALL LETTER V
-       : 0028 + 0076 + 0029
+       # 0028 0076 0029
 24B2   PARENTHESIZED LATIN SMALL LETTER W
-       : 0028 + 0077 + 0029
+       # 0028 0077 0029
 24B3   PARENTHESIZED LATIN SMALL LETTER X
-       : 0028 + 0078 + 0029
+       # 0028 0078 0029
 24B4   PARENTHESIZED LATIN SMALL LETTER Y
-       : 0028 + 0079 + 0029
+       # 0028 0079 0029
 24B5   PARENTHESIZED LATIN SMALL LETTER Z
-       : 0028 + 007A + 0029
+       # 0028 007A 0029
 @              Circled Latin letters
 24B6   CIRCLED LATIN CAPITAL LETTER A
-       # <circle> + 0041
+       # <circle> 0041
 24B7   CIRCLED LATIN CAPITAL LETTER B
-       # <circle> + 0042
+       # <circle> 0042
 24B8   CIRCLED LATIN CAPITAL LETTER C
-       # <circle> + 0043
+       # <circle> 0043
 24B9   CIRCLED LATIN CAPITAL LETTER D
-       # <circle> + 0044
+       # <circle> 0044
 24BA   CIRCLED LATIN CAPITAL LETTER E
-       # <circle> + 0045
+       # <circle> 0045
 24BB   CIRCLED LATIN CAPITAL LETTER F
-       # <circle> + 0046
+       # <circle> 0046
 24BC   CIRCLED LATIN CAPITAL LETTER G
-       # <circle> + 0047
+       # <circle> 0047
 24BD   CIRCLED LATIN CAPITAL LETTER H
-       # <circle> + 0048
+       # <circle> 0048
 24BE   CIRCLED LATIN CAPITAL LETTER I
-       # <circle> + 0049
+       # <circle> 0049
 24BF   CIRCLED LATIN CAPITAL LETTER J
-       # <circle> + 004A
+       # <circle> 004A
 24C0   CIRCLED LATIN CAPITAL LETTER K
-       # <circle> + 004B
+       # <circle> 004B
 24C1   CIRCLED LATIN CAPITAL LETTER L
-       # <circle> + 004C
+       # <circle> 004C
 24C2   CIRCLED LATIN CAPITAL LETTER M
-       # <circle> + 004D
+       # <circle> 004D
 24C3   CIRCLED LATIN CAPITAL LETTER N
-       # <circle> + 004E
+       # <circle> 004E
 24C4   CIRCLED LATIN CAPITAL LETTER O
-       # <circle> + 004F
+       # <circle> 004F
 24C5   CIRCLED LATIN CAPITAL LETTER P
-       # <circle> + 0050
+       # <circle> 0050
 24C6   CIRCLED LATIN CAPITAL LETTER Q
-       # <circle> + 0051
+       # <circle> 0051
 24C7   CIRCLED LATIN CAPITAL LETTER R
-       # <circle> + 0052
+       # <circle> 0052
 24C8   CIRCLED LATIN CAPITAL LETTER S
-       # <circle> + 0053
+       # <circle> 0053
 24C9   CIRCLED LATIN CAPITAL LETTER T
-       # <circle> + 0054
+       # <circle> 0054
 24CA   CIRCLED LATIN CAPITAL LETTER U
-       # <circle> + 0055
+       # <circle> 0055
 24CB   CIRCLED LATIN CAPITAL LETTER V
-       # <circle> + 0056
+       # <circle> 0056
 24CC   CIRCLED LATIN CAPITAL LETTER W
-       # <circle> + 0057
+       # <circle> 0057
 24CD   CIRCLED LATIN CAPITAL LETTER X
-       # <circle> + 0058
+       # <circle> 0058
 24CE   CIRCLED LATIN CAPITAL LETTER Y
-       # <circle> + 0059
+       # <circle> 0059
 24CF   CIRCLED LATIN CAPITAL LETTER Z
-       # <circle> + 005A
+       # <circle> 005A
 24D0   CIRCLED LATIN SMALL LETTER A
-       # <circle> + 0061
+       # <circle> 0061
 24D1   CIRCLED LATIN SMALL LETTER B
-       # <circle> + 0062
+       # <circle> 0062
 24D2   CIRCLED LATIN SMALL LETTER C
-       # <circle> + 0063
+       # <circle> 0063
 24D3   CIRCLED LATIN SMALL LETTER D
-       # <circle> + 0064
+       # <circle> 0064
 24D4   CIRCLED LATIN SMALL LETTER E
-       # <circle> + 0065
+       # <circle> 0065
 24D5   CIRCLED LATIN SMALL LETTER F
-       # <circle> + 0066
+       # <circle> 0066
 24D6   CIRCLED LATIN SMALL LETTER G
-       # <circle> + 0067
+       # <circle> 0067
 24D7   CIRCLED LATIN SMALL LETTER H
-       # <circle> + 0068
+       # <circle> 0068
 24D8   CIRCLED LATIN SMALL LETTER I
-       # <circle> + 0069
+       # <circle> 0069
 24D9   CIRCLED LATIN SMALL LETTER J
-       # <circle> + 006A
+       # <circle> 006A
 24DA   CIRCLED LATIN SMALL LETTER K
-       # <circle> + 006B
+       # <circle> 006B
 24DB   CIRCLED LATIN SMALL LETTER L
-       # <circle> + 006C
+       # <circle> 006C
 24DC   CIRCLED LATIN SMALL LETTER M
-       # <circle> + 006D
+       # <circle> 006D
 24DD   CIRCLED LATIN SMALL LETTER N
-       # <circle> + 006E
+       # <circle> 006E
 24DE   CIRCLED LATIN SMALL LETTER O
-       # <circle> + 006F
+       # <circle> 006F
 24DF   CIRCLED LATIN SMALL LETTER P
-       # <circle> + 0070
+       # <circle> 0070
 24E0   CIRCLED LATIN SMALL LETTER Q
-       # <circle> + 0071
+       # <circle> 0071
 24E1   CIRCLED LATIN SMALL LETTER R
-       # <circle> + 0072
+       # <circle> 0072
 24E2   CIRCLED LATIN SMALL LETTER S
-       # <circle> + 0073
+       # <circle> 0073
 24E3   CIRCLED LATIN SMALL LETTER T
-       # <circle> + 0074
+       # <circle> 0074
 24E4   CIRCLED LATIN SMALL LETTER U
-       # <circle> + 0075
+       # <circle> 0075
 24E5   CIRCLED LATIN SMALL LETTER V
-       # <circle> + 0076
+       # <circle> 0076
 24E6   CIRCLED LATIN SMALL LETTER W
-       # <circle> + 0077
+       # <circle> 0077
 24E7   CIRCLED LATIN SMALL LETTER X
-       # <circle> + 0078
+       # <circle> 0078
 24E8   CIRCLED LATIN SMALL LETTER Y
-       # <circle> + 0079
+       # <circle> 0079
 24E9   CIRCLED LATIN SMALL LETTER Z
-       # <circle> + 007A
+       # <circle> 007A
 @              Additional circled numbers
 24EA   CIRCLED DIGIT ZERO
-       # <circle> + 0030
+       # <circle> 0030
 @@     2500    Box Drawing     257F
 @              Form and chart components
 2500   BOX DRAWINGS LIGHT HORIZONTAL
 2587   LOWER SEVEN EIGHTHS BLOCK
 2588   FULL BLOCK
        = solid
+       x (black square - 25A0)
 2589   LEFT SEVEN EIGHTHS BLOCK
 258A   LEFT THREE QUARTERS BLOCK
 258B   LEFT FIVE EIGHTHS BLOCK
 258E   LEFT ONE QUARTER BLOCK
 258F   LEFT ONE EIGHTH BLOCK
 2590   RIGHT HALF BLOCK
+@              Shade characters
 2591   LIGHT SHADE
        * 25%
 2592   MEDIUM SHADE
        * 50%
 2593   DARK SHADE
        * 75%
+@              Block elements
 2594   UPPER ONE EIGHTH BLOCK
 2595   RIGHT ONE EIGHTH BLOCK
 @@     25A0    Geometric Shapes        25FF
 @              Geometric shapes
 25A0   BLACK SQUARE
+       x (full block - 2588)
 25A1   WHITE SQUARE
        = quadrature
+       x (combining enclosing square - 20DE)
        x (ballot box - 2610)
 25A2   WHITE SQUARE WITH ROUNDED CORNERS
 25A3   WHITE SQUARE CONTAINING BLACK SMALL SQUARE
 25AD   WHITE RECTANGLE
 25AE   BLACK VERTICAL RECTANGLE
        = histogram marker
+       x (end of proof - 220E)
 25AF   WHITE VERTICAL RECTANGLE
+       x (apl functional symbol squish quad - 2337)
+       x (apl functional symbol quad - 2395)
 25B0   BLACK PARALLELOGRAM
 25B1   WHITE PARALLELOGRAM
 25B2   BLACK UP-POINTING TRIANGLE
 25B5   WHITE UP-POINTING SMALL TRIANGLE
 25B6   BLACK RIGHT-POINTING TRIANGLE
 25B7   WHITE RIGHT-POINTING TRIANGLE
+       = z notation range restriction
 25B8   BLACK RIGHT-POINTING SMALL TRIANGLE
        x (triangular bullet - 2023)
 25B9   WHITE RIGHT-POINTING SMALL TRIANGLE
 25BA   BLACK RIGHT-POINTING POINTER
 25BB   WHITE RIGHT-POINTING POINTER
        = forward arrow indicator
+       x (contains as normal subgroup - 22B3)
 25BC   BLACK DOWN-POINTING TRIANGLE
 25BD   WHITE DOWN-POINTING TRIANGLE
        x (nabla - 2207)
 25BF   WHITE DOWN-POINTING SMALL TRIANGLE
 25C0   BLACK LEFT-POINTING TRIANGLE
 25C1   WHITE LEFT-POINTING TRIANGLE
+       = z notation domain restriction
 25C2   BLACK LEFT-POINTING SMALL TRIANGLE
 25C3   WHITE LEFT-POINTING SMALL TRIANGLE
 25C4   BLACK LEFT-POINTING POINTER
 25C5   WHITE LEFT-POINTING POINTER
        = backward arrow indicator
+       x (normal subgroup of - 22B2)
 25C6   BLACK DIAMOND
        x (black diamond suit - 2666)
 25C7   WHITE DIAMOND
+       x (combining enclosing diamond - 20DF)
        x (diamond operator - 22C4)
        x (white diamond suit - 2662)
 25C8   WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND
 25DE   LOWER RIGHT QUADRANT CIRCULAR ARC
 25DF   LOWER LEFT QUADRANT CIRCULAR ARC
 25E0   UPPER HALF CIRCLE
+       x (arc - 2312)
 25E1   LOWER HALF CIRCLE
 25E2   BLACK LOWER RIGHT TRIANGLE
 25E3   BLACK LOWER LEFT TRIANGLE
        x (combining enclosing circle - 20DD)
        x (white circle - 25CB)
        x (ideographic number zero - 3007)
+@              Control code graphics
+25F0   WHITE SQUARE WITH UPPER LEFT QUADRANT
+25F1   WHITE SQUARE WITH LOWER LEFT QUADRANT
+25F2   WHITE SQUARE WITH LOWER RIGHT QUADRANT
+25F3   WHITE SQUARE WITH UPPER RIGHT QUADRANT
+25F4   WHITE CIRCLE WITH UPPER LEFT QUADRANT
+25F5   WHITE CIRCLE WITH LOWER LEFT QUADRANT
+25F6   WHITE CIRCLE WITH LOWER RIGHT QUADRANT
+25F7   WHITE CIRCLE WITH UPPER RIGHT QUADRANT
 @@     2600    Miscellaneous Symbols   26FF
-@              Miscellaneous symbols
+@              Weather and astrological symbols
 2600   BLACK SUN WITH RAYS
        = clear weather
        x (sun - 2609)
 260B   DESCENDING NODE
 260C   CONJUNCTION
 260D   OPPOSITION
+@              Miscellaneous symbols
 260E   BLACK TELEPHONE
 260F   WHITE TELEPHONE
 2610   BALLOT BOX
 2613   SALTIRE
        = St. Andrew's Cross
        x (ballot x - 2717)
-2614   <reserved>
-2615   <reserved>
-2616   <reserved>
-2617   <reserved>
-2618   <reserved>
-2619   <reserved>
+2619   REVERSED ROTATED FLORAL HEART BULLET
+       * a binding signature mark
+       x (rotated floral heart bullet - 2767)
+@              Pointing hand symbols
 261A   BLACK LEFT POINTING INDEX
 261B   BLACK RIGHT POINTING INDEX
 261C   WHITE LEFT POINTING INDEX
 261D   WHITE UP POINTING INDEX
 261E   WHITE RIGHT POINTING INDEX
+       = fist (typographic term)
 261F   WHITE DOWN POINTING INDEX
+@              Warning signs
 2620   SKULL AND CROSSBONES
        = poison
 2621   CAUTION SIGN
 2622   RADIOACTIVE SIGN
 2623   BIOHAZARD SIGN
+@              Medical and healing symbols
 2624   CADUCEUS
 2625   ANKH
+@              Religious and political symbols
 2626   ORTHODOX CROSS
 2627   CHI RHO
 2628   CROSS OF LORRAINE
 262D   HAMMER AND SICKLE
 262E   PEACE SYMBOL
 262F   YIN YANG
+       x (tibetan symbol nor bu nyis -khyil - 0FCA)
+@              Yijing trigram symbols
 2630   TRIGRAM FOR HEAVEN
        = qian2
 2631   TRIGRAM FOR LAKE
        = gen4
 2637   TRIGRAM FOR EARTH
        = kun1
+@              Miscellaneous symbols
 2638   WHEEL OF DHARMA
+       x (helm symbol - 2388)
 2639   WHITE FROWNING FACE
 263A   WHITE SMILING FACE
        = have a nice day!
 263C   WHITE SUN WITH RAYS
        = compass
        x (sun - 2609)
+@              Astrological symbols
 263D   FIRST QUARTER MOON
 263E   LAST QUARTER MOON
 263F   MERCURY
 2645   URANUS
 2646   NEPTUNE
 2647   PLUTO
+@              Zodiacal symbols
 2648   ARIES
 2649   TAURUS
 264A   GEMINI
 2651   CAPRICORN
 2652   AQUARIUS
 2653   PISCES
+@              Chess symbols
 2654   WHITE CHESS KING
 2655   WHITE CHESS QUEEN
 2656   WHITE CHESS ROOK
 265D   BLACK CHESS BISHOP
 265E   BLACK CHESS KNIGHT
 265F   BLACK CHESS PAWN
+@              Playing card symbols
 2660   BLACK SPADE SUIT
 2661   WHITE HEART SUIT
 2662   WHITE DIAMOND SUIT
 2666   BLACK DIAMOND SUIT
        x (black diamond - 25C6)
 2667   WHITE CLUB SUIT
+@              Miscellaneous symbol
 2668   HOT SPRINGS
+@              Musical symbols
 2669   QUARTER NOTE
 266A   EIGHTH NOTE
 266B   BEAMED EIGHTH NOTES
 266D   MUSIC FLAT SIGN
 266E   MUSIC NATURAL SIGN
 266F   MUSIC SHARP SIGN
+       = z notation infix bag count
+@              Syriac cross symbols
+@+             These symbols are used in liturgical texts of Syriac-speaking churches.
+2670   WEST SYRIAC CROSS
+2671   EAST SYRIAC CROSS
 @@     2700    Dingbats        27BF
-@              Zapf dingbats
-2700   <reserved>
+@+             ITC Zapf dingbats series 100
+@              Miscellaneous
 2701   UPPER BLADE SCISSORS
 2702   BLACK SCISSORS
 2703   LOWER BLADE SCISSORS
        x (square root - 221A)
 2714   HEAVY CHECK MARK
 2715   MULTIPLICATION X
+       x (multiplication sign - 00D7)
+       x (box drawings light diagonal cross - 2573)
 2716   HEAVY MULTIPLICATION X
 2717   BALLOT X
        x (saltire - 2613)
 2718   HEAVY BALLOT X
+@              Crosses
 2719   OUTLINED GREEK CROSS
 271A   HEAVY GREEK CROSS
 271B   OPEN CENTRE CROSS
 271E   SHADOWED WHITE LATIN CROSS
 271F   OUTLINED LATIN CROSS
 2720   MALTESE CROSS
+@              Stars, asterisks and snowflakes
 2721   STAR OF DAVID
 2722   FOUR TEARDROP-SPOKED ASTERISK
 2723   FOUR BALLOON-SPOKED ASTERISK
 274A   EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
 274B   HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
        = turbofan
+@              Miscellaneous
 274C   <reserved>
        x (black circle - 25CF)
 274D   SHADOWED WHITE CIRCLE
        x (vertical line - 007C)
 2759   MEDIUM VERTICAL BAR
 275A   HEAVY VERTICAL BAR
+@              Punctuation ornaments
 275B   HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT
        x (left single quotation mark - 2018)
 275C   HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT
        x (left double quotation mark - 201C)
 275E   HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
        x (right double quotation mark - 201D)
-275F   <reserved>
-2760   <reserved>
 2761   CURVED STEM PARAGRAPH SIGN ORNAMENT
        x (pilcrow sign - 00B6)
 2762   HEAVY EXCLAMATION MARK ORNAMENT
        x (black heart suit - 2665)
 2765   ROTATED HEAVY BLACK HEART BULLET
 2766   FLORAL HEART
+       = Aldus leaf
 2767   ROTATED FLORAL HEART BULLET
+       = hedera, ivy leaf
+       x (reversed rotated floral heart bullet - 2619)
 2768   <reserved>
        x (black club suit - 2663)
 2769   <reserved>
        x (black heart suit - 2665)
 276B   <reserved>
        x (black spade suit - 2660)
+@              Dingbat circled digits
 276C   <reserved>
        x (circled digit one - 2460)
 276D   <reserved>
 2791   DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT
 2792   DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE
 2793   DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
+@              Dingbat arrows
 2794   HEAVY WIDE-HEADED RIGHTWARDS ARROW
 2795   <reserved>
        x (rightwards arrow - 2192)
 27AD   HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
 27AE   HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
 27AF   NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
-27B0   <reserved>
 27B1   NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
 27B2   CIRCLED HEAVY WHITE RIGHTWARDS ARROW
 27B3   WHITE-FEATHERED RIGHTWARDS ARROW
 27BC   WEDGE-TAILED RIGHTWARDS ARROW
 27BD   HEAVY WEDGE-TAILED RIGHTWARDS ARROW
 27BE   OPEN-OUTLINED RIGHTWARDS ARROW
-@@     27C0    Unassigned      2FFF
+@@     2800    Braille Patterns        28FF
+@              Braille patterns
+2800   BRAILLE PATTERN BLANK
+2801   BRAILLE PATTERN DOTS-1
+2802   BRAILLE PATTERN DOTS-2
+2803   BRAILLE PATTERN DOTS-12
+2804   BRAILLE PATTERN DOTS-3
+2805   BRAILLE PATTERN DOTS-13
+2806   BRAILLE PATTERN DOTS-23
+2807   BRAILLE PATTERN DOTS-123
+2808   BRAILLE PATTERN DOTS-4
+2809   BRAILLE PATTERN DOTS-14
+280A   BRAILLE PATTERN DOTS-24
+280B   BRAILLE PATTERN DOTS-124
+280C   BRAILLE PATTERN DOTS-34
+280D   BRAILLE PATTERN DOTS-134
+280E   BRAILLE PATTERN DOTS-234
+280F   BRAILLE PATTERN DOTS-1234
+2810   BRAILLE PATTERN DOTS-5
+2811   BRAILLE PATTERN DOTS-15
+2812   BRAILLE PATTERN DOTS-25
+2813   BRAILLE PATTERN DOTS-125
+2814   BRAILLE PATTERN DOTS-35
+2815   BRAILLE PATTERN DOTS-135
+2816   BRAILLE PATTERN DOTS-235
+2817   BRAILLE PATTERN DOTS-1235
+2818   BRAILLE PATTERN DOTS-45
+2819   BRAILLE PATTERN DOTS-145
+281A   BRAILLE PATTERN DOTS-245
+281B   BRAILLE PATTERN DOTS-1245
+281C   BRAILLE PATTERN DOTS-345
+281D   BRAILLE PATTERN DOTS-1345
+281E   BRAILLE PATTERN DOTS-2345
+281F   BRAILLE PATTERN DOTS-12345
+2820   BRAILLE PATTERN DOTS-6
+2821   BRAILLE PATTERN DOTS-16
+2822   BRAILLE PATTERN DOTS-26
+2823   BRAILLE PATTERN DOTS-126
+2824   BRAILLE PATTERN DOTS-36
+2825   BRAILLE PATTERN DOTS-136
+2826   BRAILLE PATTERN DOTS-236
+2827   BRAILLE PATTERN DOTS-1236
+2828   BRAILLE PATTERN DOTS-46
+2829   BRAILLE PATTERN DOTS-146
+282A   BRAILLE PATTERN DOTS-246
+282B   BRAILLE PATTERN DOTS-1246
+282C   BRAILLE PATTERN DOTS-346
+282D   BRAILLE PATTERN DOTS-1346
+282E   BRAILLE PATTERN DOTS-2346
+282F   BRAILLE PATTERN DOTS-12346
+2830   BRAILLE PATTERN DOTS-56
+2831   BRAILLE PATTERN DOTS-156
+2832   BRAILLE PATTERN DOTS-256
+2833   BRAILLE PATTERN DOTS-1256
+2834   BRAILLE PATTERN DOTS-356
+2835   BRAILLE PATTERN DOTS-1356
+2836   BRAILLE PATTERN DOTS-2356
+2837   BRAILLE PATTERN DOTS-12356
+2838   BRAILLE PATTERN DOTS-456
+2839   BRAILLE PATTERN DOTS-1456
+283A   BRAILLE PATTERN DOTS-2456
+283B   BRAILLE PATTERN DOTS-12456
+283C   BRAILLE PATTERN DOTS-3456
+283D   BRAILLE PATTERN DOTS-13456
+283E   BRAILLE PATTERN DOTS-23456
+283F   BRAILLE PATTERN DOTS-123456
+2840   BRAILLE PATTERN DOTS-7
+2841   BRAILLE PATTERN DOTS-17
+2842   BRAILLE PATTERN DOTS-27
+2843   BRAILLE PATTERN DOTS-127
+2844   BRAILLE PATTERN DOTS-37
+2845   BRAILLE PATTERN DOTS-137
+2846   BRAILLE PATTERN DOTS-237
+2847   BRAILLE PATTERN DOTS-1237
+2848   BRAILLE PATTERN DOTS-47
+2849   BRAILLE PATTERN DOTS-147
+284A   BRAILLE PATTERN DOTS-247
+284B   BRAILLE PATTERN DOTS-1247
+284C   BRAILLE PATTERN DOTS-347
+284D   BRAILLE PATTERN DOTS-1347
+284E   BRAILLE PATTERN DOTS-2347
+284F   BRAILLE PATTERN DOTS-12347
+2850   BRAILLE PATTERN DOTS-57
+2851   BRAILLE PATTERN DOTS-157
+2852   BRAILLE PATTERN DOTS-257
+2853   BRAILLE PATTERN DOTS-1257
+2854   BRAILLE PATTERN DOTS-357
+2855   BRAILLE PATTERN DOTS-1357
+2856   BRAILLE PATTERN DOTS-2357
+2857   BRAILLE PATTERN DOTS-12357
+2858   BRAILLE PATTERN DOTS-457
+2859   BRAILLE PATTERN DOTS-1457
+285A   BRAILLE PATTERN DOTS-2457
+285B   BRAILLE PATTERN DOTS-12457
+285C   BRAILLE PATTERN DOTS-3457
+285D   BRAILLE PATTERN DOTS-13457
+285E   BRAILLE PATTERN DOTS-23457
+285F   BRAILLE PATTERN DOTS-123457
+2860   BRAILLE PATTERN DOTS-67
+2861   BRAILLE PATTERN DOTS-167
+2862   BRAILLE PATTERN DOTS-267
+2863   BRAILLE PATTERN DOTS-1267
+2864   BRAILLE PATTERN DOTS-367
+2865   BRAILLE PATTERN DOTS-1367
+2866   BRAILLE PATTERN DOTS-2367
+2867   BRAILLE PATTERN DOTS-12367
+2868   BRAILLE PATTERN DOTS-467
+2869   BRAILLE PATTERN DOTS-1467
+286A   BRAILLE PATTERN DOTS-2467
+286B   BRAILLE PATTERN DOTS-12467
+286C   BRAILLE PATTERN DOTS-3467
+286D   BRAILLE PATTERN DOTS-13467
+286E   BRAILLE PATTERN DOTS-23467
+286F   BRAILLE PATTERN DOTS-123467
+2870   BRAILLE PATTERN DOTS-567
+2871   BRAILLE PATTERN DOTS-1567
+2872   BRAILLE PATTERN DOTS-2567
+2873   BRAILLE PATTERN DOTS-12567
+2874   BRAILLE PATTERN DOTS-3567
+2875   BRAILLE PATTERN DOTS-13567
+2876   BRAILLE PATTERN DOTS-23567
+2877   BRAILLE PATTERN DOTS-123567
+2878   BRAILLE PATTERN DOTS-4567
+2879   BRAILLE PATTERN DOTS-14567
+287A   BRAILLE PATTERN DOTS-24567
+287B   BRAILLE PATTERN DOTS-124567
+287C   BRAILLE PATTERN DOTS-34567
+287D   BRAILLE PATTERN DOTS-134567
+287E   BRAILLE PATTERN DOTS-234567
+287F   BRAILLE PATTERN DOTS-1234567
+2880   BRAILLE PATTERN DOTS-8
+2881   BRAILLE PATTERN DOTS-18
+2882   BRAILLE PATTERN DOTS-28
+2883   BRAILLE PATTERN DOTS-128
+2884   BRAILLE PATTERN DOTS-38
+2885   BRAILLE PATTERN DOTS-138
+2886   BRAILLE PATTERN DOTS-238
+2887   BRAILLE PATTERN DOTS-1238
+2888   BRAILLE PATTERN DOTS-48
+2889   BRAILLE PATTERN DOTS-148
+288A   BRAILLE PATTERN DOTS-248
+288B   BRAILLE PATTERN DOTS-1248
+288C   BRAILLE PATTERN DOTS-348
+288D   BRAILLE PATTERN DOTS-1348
+288E   BRAILLE PATTERN DOTS-2348
+288F   BRAILLE PATTERN DOTS-12348
+2890   BRAILLE PATTERN DOTS-58
+2891   BRAILLE PATTERN DOTS-158
+2892   BRAILLE PATTERN DOTS-258
+2893   BRAILLE PATTERN DOTS-1258
+2894   BRAILLE PATTERN DOTS-358
+2895   BRAILLE PATTERN DOTS-1358
+2896   BRAILLE PATTERN DOTS-2358
+2897   BRAILLE PATTERN DOTS-12358
+2898   BRAILLE PATTERN DOTS-458
+2899   BRAILLE PATTERN DOTS-1458
+289A   BRAILLE PATTERN DOTS-2458
+289B   BRAILLE PATTERN DOTS-12458
+289C   BRAILLE PATTERN DOTS-3458
+289D   BRAILLE PATTERN DOTS-13458
+289E   BRAILLE PATTERN DOTS-23458
+289F   BRAILLE PATTERN DOTS-123458
+28A0   BRAILLE PATTERN DOTS-68
+28A1   BRAILLE PATTERN DOTS-168
+28A2   BRAILLE PATTERN DOTS-268
+28A3   BRAILLE PATTERN DOTS-1268
+28A4   BRAILLE PATTERN DOTS-368
+28A5   BRAILLE PATTERN DOTS-1368
+28A6   BRAILLE PATTERN DOTS-2368
+28A7   BRAILLE PATTERN DOTS-12368
+28A8   BRAILLE PATTERN DOTS-468
+28A9   BRAILLE PATTERN DOTS-1468
+28AA   BRAILLE PATTERN DOTS-2468
+28AB   BRAILLE PATTERN DOTS-12468
+28AC   BRAILLE PATTERN DOTS-3468
+28AD   BRAILLE PATTERN DOTS-13468
+28AE   BRAILLE PATTERN DOTS-23468
+28AF   BRAILLE PATTERN DOTS-123468
+28B0   BRAILLE PATTERN DOTS-568
+28B1   BRAILLE PATTERN DOTS-1568
+28B2   BRAILLE PATTERN DOTS-2568
+28B3   BRAILLE PATTERN DOTS-12568
+28B4   BRAILLE PATTERN DOTS-3568
+28B5   BRAILLE PATTERN DOTS-13568
+28B6   BRAILLE PATTERN DOTS-23568
+28B7   BRAILLE PATTERN DOTS-123568
+28B8   BRAILLE PATTERN DOTS-4568
+28B9   BRAILLE PATTERN DOTS-14568
+28BA   BRAILLE PATTERN DOTS-24568
+28BB   BRAILLE PATTERN DOTS-124568
+28BC   BRAILLE PATTERN DOTS-34568
+28BD   BRAILLE PATTERN DOTS-134568
+28BE   BRAILLE PATTERN DOTS-234568
+28BF   BRAILLE PATTERN DOTS-1234568
+28C0   BRAILLE PATTERN DOTS-78
+28C1   BRAILLE PATTERN DOTS-178
+28C2   BRAILLE PATTERN DOTS-278
+28C3   BRAILLE PATTERN DOTS-1278
+28C4   BRAILLE PATTERN DOTS-378
+28C5   BRAILLE PATTERN DOTS-1378
+28C6   BRAILLE PATTERN DOTS-2378
+28C7   BRAILLE PATTERN DOTS-12378
+28C8   BRAILLE PATTERN DOTS-478
+28C9   BRAILLE PATTERN DOTS-1478
+28CA   BRAILLE PATTERN DOTS-2478
+28CB   BRAILLE PATTERN DOTS-12478
+28CC   BRAILLE PATTERN DOTS-3478
+28CD   BRAILLE PATTERN DOTS-13478
+28CE   BRAILLE PATTERN DOTS-23478
+28CF   BRAILLE PATTERN DOTS-123478
+28D0   BRAILLE PATTERN DOTS-578
+28D1   BRAILLE PATTERN DOTS-1578
+28D2   BRAILLE PATTERN DOTS-2578
+28D3   BRAILLE PATTERN DOTS-12578
+28D4   BRAILLE PATTERN DOTS-3578
+28D5   BRAILLE PATTERN DOTS-13578
+28D6   BRAILLE PATTERN DOTS-23578
+28D7   BRAILLE PATTERN DOTS-123578
+28D8   BRAILLE PATTERN DOTS-4578
+28D9   BRAILLE PATTERN DOTS-14578
+28DA   BRAILLE PATTERN DOTS-24578
+28DB   BRAILLE PATTERN DOTS-124578
+28DC   BRAILLE PATTERN DOTS-34578
+28DD   BRAILLE PATTERN DOTS-134578
+28DE   BRAILLE PATTERN DOTS-234578
+28DF   BRAILLE PATTERN DOTS-1234578
+28E0   BRAILLE PATTERN DOTS-678
+28E1   BRAILLE PATTERN DOTS-1678
+28E2   BRAILLE PATTERN DOTS-2678
+28E3   BRAILLE PATTERN DOTS-12678
+28E4   BRAILLE PATTERN DOTS-3678
+28E5   BRAILLE PATTERN DOTS-13678
+28E6   BRAILLE PATTERN DOTS-23678
+28E7   BRAILLE PATTERN DOTS-123678
+28E8   BRAILLE PATTERN DOTS-4678
+28E9   BRAILLE PATTERN DOTS-14678
+28EA   BRAILLE PATTERN DOTS-24678
+28EB   BRAILLE PATTERN DOTS-124678
+28EC   BRAILLE PATTERN DOTS-34678
+28ED   BRAILLE PATTERN DOTS-134678
+28EE   BRAILLE PATTERN DOTS-234678
+28EF   BRAILLE PATTERN DOTS-1234678
+28F0   BRAILLE PATTERN DOTS-5678
+28F1   BRAILLE PATTERN DOTS-15678
+28F2   BRAILLE PATTERN DOTS-25678
+28F3   BRAILLE PATTERN DOTS-125678
+28F4   BRAILLE PATTERN DOTS-35678
+28F5   BRAILLE PATTERN DOTS-135678
+28F6   BRAILLE PATTERN DOTS-235678
+28F7   BRAILLE PATTERN DOTS-1235678
+28F8   BRAILLE PATTERN DOTS-45678
+28F9   BRAILLE PATTERN DOTS-145678
+28FA   BRAILLE PATTERN DOTS-245678
+28FB   BRAILLE PATTERN DOTS-1245678
+28FC   BRAILLE PATTERN DOTS-345678
+28FD   BRAILLE PATTERN DOTS-1345678
+28FE   BRAILLE PATTERN DOTS-2345678
+28FF   BRAILLE PATTERN DOTS-12345678
+@@     2E80    CJK Radicals Supplement 2EFF
+@              CJK radicals supplement
+2E80   CJK RADICAL REPEAT
+2E81   CJK RADICAL CLIFF
+2E82   CJK RADICAL SECOND ONE
+2E83   CJK RADICAL SECOND TWO
+2E84   CJK RADICAL SECOND THREE
+2E85   CJK RADICAL PERSON
+2E86   CJK RADICAL BOX
+2E87   CJK RADICAL TABLE
+2E88   CJK RADICAL KNIFE ONE
+2E89   CJK RADICAL KNIFE TWO
+2E8A   CJK RADICAL DIVINATION
+2E8B   CJK RADICAL SEAL
+2E8C   CJK RADICAL SMALL ONE
+2E8D   CJK RADICAL SMALL TWO
+2E8E   CJK RADICAL LAME ONE
+2E8F   CJK RADICAL LAME TWO
+2E90   CJK RADICAL LAME THREE
+2E91   CJK RADICAL LAME FOUR
+2E92   CJK RADICAL SNAKE
+2E93   CJK RADICAL THREAD
+2E94   CJK RADICAL SNOUT ONE
+2E95   CJK RADICAL SNOUT TWO
+2E96   CJK RADICAL HEART ONE
+2E97   CJK RADICAL HEART TWO
+2E98   CJK RADICAL HAND
+2E99   CJK RADICAL RAP
+2E9B   CJK RADICAL CHOKE
+2E9C   CJK RADICAL SUN
+2E9D   CJK RADICAL MOON
+2E9E   CJK RADICAL DEATH
+2E9F   CJK RADICAL MOTHER
+       # 6BCD
+2EA0   CJK RADICAL CIVILIAN
+2EA1   CJK RADICAL WATER ONE
+2EA2   CJK RADICAL WATER TWO
+2EA3   CJK RADICAL FIRE
+2EA4   CJK RADICAL PAW ONE
+2EA5   CJK RADICAL PAW TWO
+2EA6   CJK RADICAL SIMPLIFIED HALF TREE TRUNK
+2EA7   CJK RADICAL COW
+2EA8   CJK RADICAL DOG
+2EA9   CJK RADICAL JADE
+2EAA   CJK RADICAL BOLT OF CLOTH
+2EAB   CJK RADICAL EYE
+2EAC   CJK RADICAL SPIRIT ONE
+2EAD   CJK RADICAL SPIRIT TWO
+2EAE   CJK RADICAL BAMBOO
+2EAF   CJK RADICAL SILK
+2EB0   CJK RADICAL C-SIMPLIFIED SILK
+2EB1   CJK RADICAL NET ONE
+2EB2   CJK RADICAL NET TWO
+2EB3   CJK RADICAL NET THREE
+2EB4   CJK RADICAL NET FOUR
+2EB5   CJK RADICAL MESH
+2EB6   CJK RADICAL SHEEP
+2EB7   CJK RADICAL RAM
+2EB8   CJK RADICAL EWE
+2EB9   CJK RADICAL OLD
+2EBA   CJK RADICAL BRUSH ONE
+2EBB   CJK RADICAL BRUSH TWO
+2EBC   CJK RADICAL MEAT
+2EBD   CJK RADICAL MORTAR
+2EBE   CJK RADICAL GRASS ONE
+2EBF   CJK RADICAL GRASS TWO
+2EC0   CJK RADICAL GRASS THREE
+2EC1   CJK RADICAL TIGER
+2EC2   CJK RADICAL CLOTHES
+2EC3   CJK RADICAL WEST ONE
+2EC4   CJK RADICAL WEST TWO
+2EC5   CJK RADICAL C-SIMPLIFIED SEE
+2EC6   CJK RADICAL SIMPLIFIED HORN
+2EC7   CJK RADICAL HORN
+2EC8   CJK RADICAL C-SIMPLIFIED SPEECH
+2EC9   CJK RADICAL C-SIMPLIFIED SHELL
+2ECA   CJK RADICAL FOOT
+2ECB   CJK RADICAL C-SIMPLIFIED CART
+2ECC   CJK RADICAL SIMPLIFIED WALK
+2ECD   CJK RADICAL WALK ONE
+2ECE   CJK RADICAL WALK TWO
+2ECF   CJK RADICAL CITY
+2ED0   CJK RADICAL C-SIMPLIFIED GOLD
+2ED1   CJK RADICAL LONG ONE
+2ED2   CJK RADICAL LONG TWO
+2ED3   CJK RADICAL C-SIMPLIFIED LONG
+2ED4   CJK RADICAL C-SIMPLIFIED GATE
+2ED5   CJK RADICAL MOUND ONE
+2ED6   CJK RADICAL MOUND TWO
+2ED7   CJK RADICAL RAIN
+2ED8   CJK RADICAL BLUE
+2ED9   CJK RADICAL C-SIMPLIFIED TANNED LEATHER
+2EDA   CJK RADICAL C-SIMPLIFIED LEAF
+2EDB   CJK RADICAL C-SIMPLIFIED WIND
+2EDC   CJK RADICAL C-SIMPLIFIED FLY
+2EDD   CJK RADICAL EAT ONE
+2EDE   CJK RADICAL EAT TWO
+2EDF   CJK RADICAL EAT THREE
+2EE0   CJK RADICAL C-SIMPLIFIED EAT
+2EE1   CJK RADICAL HEAD
+2EE2   CJK RADICAL C-SIMPLIFIED HORSE
+2EE3   CJK RADICAL BONE
+2EE4   CJK RADICAL GHOST
+2EE5   CJK RADICAL C-SIMPLIFIED FISH
+2EE6   CJK RADICAL C-SIMPLIFIED BIRD
+2EE7   CJK RADICAL C-SIMPLIFIED SALT
+2EE8   CJK RADICAL SIMPLIFIED WHEAT
+2EE9   CJK RADICAL SIMPLIFIED YELLOW
+2EEA   CJK RADICAL C-SIMPLIFIED FROG
+2EEB   CJK RADICAL J-SIMPLIFIED EVEN
+2EEC   CJK RADICAL C-SIMPLIFIED EVEN
+2EED   CJK RADICAL J-SIMPLIFIED TOOTH
+2EEE   CJK RADICAL C-SIMPLIFIED TOOTH
+2EEF   CJK RADICAL J-SIMPLIFIED DRAGON
+2EF0   CJK RADICAL C-SIMPLIFIED DRAGON
+2EF1   CJK RADICAL TURTLE
+2EF2   CJK RADICAL J-SIMPLIFIED TURTLE
+2EF3   CJK RADICAL C-SIMPLIFIED TURTLE
+       # 9F9F
+@@     2F00    Kangxi Radicals 2FDF
+@              Kangxi radicals
+2F00   KANGXI RADICAL ONE
+       # 4E00
+2F01   KANGXI RADICAL LINE
+       # 4E28
+2F02   KANGXI RADICAL DOT
+       # 4E36
+2F03   KANGXI RADICAL SLASH
+       # 4E3F
+2F04   KANGXI RADICAL SECOND
+       # 4E59
+2F05   KANGXI RADICAL HOOK
+       # 4E85
+2F06   KANGXI RADICAL TWO
+       # 4E8C
+2F07   KANGXI RADICAL LID
+       # 4EA0
+2F08   KANGXI RADICAL MAN
+       # 4EBA
+2F09   KANGXI RADICAL LEGS
+       # 513F
+2F0A   KANGXI RADICAL ENTER
+       # 5165
+2F0B   KANGXI RADICAL EIGHT
+       # 516B
+2F0C   KANGXI RADICAL DOWN BOX
+       # 5182
+2F0D   KANGXI RADICAL COVER
+       # 5196
+2F0E   KANGXI RADICAL ICE
+       # 51AB
+2F0F   KANGXI RADICAL TABLE
+       # 51E0
+2F10   KANGXI RADICAL OPEN BOX
+       # 51F5
+2F11   KANGXI RADICAL KNIFE
+       # 5200
+2F12   KANGXI RADICAL POWER
+       # 529B
+2F13   KANGXI RADICAL WRAP
+       # 52F9
+2F14   KANGXI RADICAL SPOON
+       # 5315
+2F15   KANGXI RADICAL RIGHT OPEN BOX
+       # 531A
+2F16   KANGXI RADICAL HIDING ENCLOSURE
+       # 5338
+2F17   KANGXI RADICAL TEN
+       # 5341
+2F18   KANGXI RADICAL DIVINATION
+       # 535C
+2F19   KANGXI RADICAL SEAL
+       # 5369
+2F1A   KANGXI RADICAL CLIFF
+       # 5382
+2F1B   KANGXI RADICAL PRIVATE
+       # 53B6
+2F1C   KANGXI RADICAL AGAIN
+       # 53C8
+2F1D   KANGXI RADICAL MOUTH
+       # 53E3
+2F1E   KANGXI RADICAL ENCLOSURE
+       # 56D7
+2F1F   KANGXI RADICAL EARTH
+       # 571F
+2F20   KANGXI RADICAL SCHOLAR
+       # 58EB
+2F21   KANGXI RADICAL GO
+       # 5902
+2F22   KANGXI RADICAL GO SLOWLY
+       # 590A
+2F23   KANGXI RADICAL EVENING
+       # 5915
+2F24   KANGXI RADICAL BIG
+       # 5927
+2F25   KANGXI RADICAL WOMAN
+       # 5973
+2F26   KANGXI RADICAL CHILD
+       # 5B50
+2F27   KANGXI RADICAL ROOF
+       # 5B80
+2F28   KANGXI RADICAL INCH
+       # 5BF8
+2F29   KANGXI RADICAL SMALL
+       # 5C0F
+2F2A   KANGXI RADICAL LAME
+       # 5C22
+2F2B   KANGXI RADICAL CORPSE
+       # 5C38
+2F2C   KANGXI RADICAL SPROUT
+       # 5C6E
+2F2D   KANGXI RADICAL MOUNTAIN
+       # 5C71
+2F2E   KANGXI RADICAL RIVER
+       # 5DDB
+2F2F   KANGXI RADICAL WORK
+       # 5DE5
+2F30   KANGXI RADICAL ONESELF
+       # 5DF1
+2F31   KANGXI RADICAL TURBAN
+       # 5DFE
+2F32   KANGXI RADICAL DRY
+       # 5E72
+2F33   KANGXI RADICAL SHORT THREAD
+       # 5E7A
+2F34   KANGXI RADICAL DOTTED CLIFF
+       # 5E7F
+2F35   KANGXI RADICAL LONG STRIDE
+       # 5EF4
+2F36   KANGXI RADICAL TWO HANDS
+       # 5EFE
+2F37   KANGXI RADICAL SHOOT
+       # 5F0B
+2F38   KANGXI RADICAL BOW
+       # 5F13
+2F39   KANGXI RADICAL SNOUT
+       # 5F50
+2F3A   KANGXI RADICAL BRISTLE
+       # 5F61
+2F3B   KANGXI RADICAL STEP
+       # 5F73
+2F3C   KANGXI RADICAL HEART
+       # 5FC3
+2F3D   KANGXI RADICAL HALBERD
+       # 6208
+2F3E   KANGXI RADICAL DOOR
+       # 6236
+2F3F   KANGXI RADICAL HAND
+       # 624B
+2F40   KANGXI RADICAL BRANCH
+       # 652F
+2F41   KANGXI RADICAL RAP
+       # 6534
+2F42   KANGXI RADICAL SCRIPT
+       # 6587
+2F43   KANGXI RADICAL DIPPER
+       # 6597
+2F44   KANGXI RADICAL AXE
+       # 65A4
+2F45   KANGXI RADICAL SQUARE
+       # 65B9
+2F46   KANGXI RADICAL NOT
+       # 65E0
+2F47   KANGXI RADICAL SUN
+       # 65E5
+2F48   KANGXI RADICAL SAY
+       # 66F0
+2F49   KANGXI RADICAL MOON
+       # 6708
+2F4A   KANGXI RADICAL TREE
+       # 6728
+2F4B   KANGXI RADICAL LACK
+       # 6B20
+2F4C   KANGXI RADICAL STOP
+       # 6B62
+2F4D   KANGXI RADICAL DEATH
+       # 6B79
+2F4E   KANGXI RADICAL WEAPON
+       # 6BB3
+2F4F   KANGXI RADICAL DO NOT
+       # 6BCB
+2F50   KANGXI RADICAL COMPARE
+       # 6BD4
+2F51   KANGXI RADICAL FUR
+       # 6BDB
+2F52   KANGXI RADICAL CLAN
+       # 6C0F
+2F53   KANGXI RADICAL STEAM
+       # 6C14
+2F54   KANGXI RADICAL WATER
+       # 6C34
+2F55   KANGXI RADICAL FIRE
+       # 706B
+2F56   KANGXI RADICAL CLAW
+       # 722A
+2F57   KANGXI RADICAL FATHER
+       # 7236
+2F58   KANGXI RADICAL DOUBLE X
+       # 723B
+2F59   KANGXI RADICAL HALF TREE TRUNK
+       # 723F
+2F5A   KANGXI RADICAL SLICE
+       # 7247
+2F5B   KANGXI RADICAL FANG
+       # 7259
+2F5C   KANGXI RADICAL COW
+       # 725B
+2F5D   KANGXI RADICAL DOG
+       # 72AC
+2F5E   KANGXI RADICAL PROFOUND
+       # 7384
+2F5F   KANGXI RADICAL JADE
+       # 7389
+2F60   KANGXI RADICAL MELON
+       # 74DC
+2F61   KANGXI RADICAL TILE
+       # 74E6
+2F62   KANGXI RADICAL SWEET
+       # 7518
+2F63   KANGXI RADICAL LIFE
+       # 751F
+2F64   KANGXI RADICAL USE
+       # 7528
+2F65   KANGXI RADICAL FIELD
+       # 7530
+2F66   KANGXI RADICAL BOLT OF CLOTH
+       # 758B
+2F67   KANGXI RADICAL SICKNESS
+       # 7592
+2F68   KANGXI RADICAL DOTTED TENT
+       # 7676
+2F69   KANGXI RADICAL WHITE
+       # 767D
+2F6A   KANGXI RADICAL SKIN
+       # 76AE
+2F6B   KANGXI RADICAL DISH
+       # 76BF
+2F6C   KANGXI RADICAL EYE
+       # 76EE
+2F6D   KANGXI RADICAL SPEAR
+       # 77DB
+2F6E   KANGXI RADICAL ARROW
+       # 77E2
+2F6F   KANGXI RADICAL STONE
+       # 77F3
+2F70   KANGXI RADICAL SPIRIT
+       # 793A
+2F71   KANGXI RADICAL TRACK
+       # 79B8
+2F72   KANGXI RADICAL GRAIN
+       # 79BE
+2F73   KANGXI RADICAL CAVE
+       # 7A74
+2F74   KANGXI RADICAL STAND
+       # 7ACB
+2F75   KANGXI RADICAL BAMBOO
+       # 7AF9
+2F76   KANGXI RADICAL RICE
+       # 7C73
+2F77   KANGXI RADICAL SILK
+       # 7CF8
+2F78   KANGXI RADICAL JAR
+       # 7F36
+2F79   KANGXI RADICAL NET
+       # 7F51
+2F7A   KANGXI RADICAL SHEEP
+       # 7F8A
+2F7B   KANGXI RADICAL FEATHER
+       # 7FBD
+2F7C   KANGXI RADICAL OLD
+       # 8001
+2F7D   KANGXI RADICAL AND
+       # 800C
+2F7E   KANGXI RADICAL PLOW
+       # 8012
+2F7F   KANGXI RADICAL EAR
+       # 8033
+2F80   KANGXI RADICAL BRUSH
+       # 807F
+2F81   KANGXI RADICAL MEAT
+       # 8089
+2F82   KANGXI RADICAL MINISTER
+       # 81E3
+2F83   KANGXI RADICAL SELF
+       # 81EA
+2F84   KANGXI RADICAL ARRIVE
+       # 81F3
+2F85   KANGXI RADICAL MORTAR
+       # 81FC
+2F86   KANGXI RADICAL TONGUE
+       # 820C
+2F87   KANGXI RADICAL OPPOSE
+       # 821B
+2F88   KANGXI RADICAL BOAT
+       # 821F
+2F89   KANGXI RADICAL STOPPING
+       # 826E
+2F8A   KANGXI RADICAL COLOR
+       # 8272
+2F8B   KANGXI RADICAL GRASS
+       # 8278
+2F8C   KANGXI RADICAL TIGER
+       # 864D
+2F8D   KANGXI RADICAL INSECT
+       # 866B
+2F8E   KANGXI RADICAL BLOOD
+       # 8840
+2F8F   KANGXI RADICAL WALK ENCLOSURE
+       # 884C
+2F90   KANGXI RADICAL CLOTHES
+       # 8863
+2F91   KANGXI RADICAL WEST
+       # 897E
+2F92   KANGXI RADICAL SEE
+       # 898B
+2F93   KANGXI RADICAL HORN
+       # 89D2
+2F94   KANGXI RADICAL SPEECH
+       # 8A00
+2F95   KANGXI RADICAL VALLEY
+       # 8C37
+2F96   KANGXI RADICAL BEAN
+       # 8C46
+2F97   KANGXI RADICAL PIG
+       # 8C55
+2F98   KANGXI RADICAL BADGER
+       # 8C78
+2F99   KANGXI RADICAL SHELL
+       # 8C9D
+2F9A   KANGXI RADICAL RED
+       # 8D64
+2F9B   KANGXI RADICAL RUN
+       # 8D70
+2F9C   KANGXI RADICAL FOOT
+       # 8DB3
+2F9D   KANGXI RADICAL BODY
+       # 8EAB
+2F9E   KANGXI RADICAL CART
+       # 8ECA
+2F9F   KANGXI RADICAL BITTER
+       # 8F9B
+2FA0   KANGXI RADICAL MORNING
+       # 8FB0
+2FA1   KANGXI RADICAL WALK
+       # 8FB5
+2FA2   KANGXI RADICAL CITY
+       # 9091
+2FA3   KANGXI RADICAL WINE
+       # 9149
+2FA4   KANGXI RADICAL DISTINGUISH
+       # 91C6
+2FA5   KANGXI RADICAL VILLAGE
+       # 91CC
+2FA6   KANGXI RADICAL GOLD
+       # 91D1
+2FA7   KANGXI RADICAL LONG
+       # 9577
+2FA8   KANGXI RADICAL GATE
+       # 9580
+2FA9   KANGXI RADICAL MOUND
+       # 961C
+2FAA   KANGXI RADICAL SLAVE
+       # 96B6
+2FAB   KANGXI RADICAL SHORT TAILED BIRD
+       # 96B9
+2FAC   KANGXI RADICAL RAIN
+       # 96E8
+2FAD   KANGXI RADICAL BLUE
+       # 9751
+2FAE   KANGXI RADICAL WRONG
+       # 975E
+2FAF   KANGXI RADICAL FACE
+       # 9762
+2FB0   KANGXI RADICAL LEATHER
+       # 9769
+2FB1   KANGXI RADICAL TANNED LEATHER
+       # 97CB
+2FB2   KANGXI RADICAL LEEK
+       # 97ED
+2FB3   KANGXI RADICAL SOUND
+       # 97F3
+2FB4   KANGXI RADICAL LEAF
+       # 9801
+2FB5   KANGXI RADICAL WIND
+       # 98A8
+2FB6   KANGXI RADICAL FLY
+       # 98DB
+2FB7   KANGXI RADICAL EAT
+       # 98DF
+2FB8   KANGXI RADICAL HEAD
+       # 9996
+2FB9   KANGXI RADICAL FRAGRANT
+       # 9999
+2FBA   KANGXI RADICAL HORSE
+       # 99AC
+2FBB   KANGXI RADICAL BONE
+       # 9AA8
+2FBC   KANGXI RADICAL TALL
+       # 9AD8
+2FBD   KANGXI RADICAL HAIR
+       # 9ADF
+2FBE   KANGXI RADICAL FIGHT
+       # 9B25
+2FBF   KANGXI RADICAL SACRIFICIAL WINE
+       # 9B2F
+2FC0   KANGXI RADICAL CAULDRON
+       # 9B32
+2FC1   KANGXI RADICAL GHOST
+       # 9B3C
+2FC2   KANGXI RADICAL FISH
+       # 9B5A
+2FC3   KANGXI RADICAL BIRD
+       # 9CE5
+2FC4   KANGXI RADICAL SALT
+       # 9E75
+2FC5   KANGXI RADICAL DEER
+       # 9E7F
+2FC6   KANGXI RADICAL WHEAT
+       # 9EA5
+2FC7   KANGXI RADICAL HEMP
+       # 9EBB
+2FC8   KANGXI RADICAL YELLOW
+       # 9EC3
+2FC9   KANGXI RADICAL MILLET
+       # 9ECD
+2FCA   KANGXI RADICAL BLACK
+       # 9ED1
+2FCB   KANGXI RADICAL EMBROIDERY
+       # 9EF9
+2FCC   KANGXI RADICAL FROG
+       # 9EFD
+2FCD   KANGXI RADICAL TRIPOD
+       # 9F0E
+2FCE   KANGXI RADICAL DRUM
+       # 9F13
+2FCF   KANGXI RADICAL RAT
+       # 9F20
+2FD0   KANGXI RADICAL NOSE
+       # 9F3B
+2FD1   KANGXI RADICAL EVEN
+       # 9F4A
+2FD2   KANGXI RADICAL TOOTH
+       # 9F52
+2FD3   KANGXI RADICAL DRAGON
+       # 9F8D
+2FD4   KANGXI RADICAL TURTLE
+       # 9F9C
+2FD5   KANGXI RADICAL FLUTE
+       # 9FA0
+@@     2FF0    Ideographic Description Characters      2FFF
+@              Ideographic description characters
+@+             These are visibly displayed graphic characters, not invisible composition controls.
+2FF0   IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT
+2FF1   IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW
+2FF2   IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT
+2FF3   IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW
+2FF4   IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND
+2FF5   IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE
+2FF6   IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW
+2FF7   IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT
+2FF8   IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT
+2FF9   IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT
+2FFA   IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT
+2FFB   IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
 @@     3000    CJK Symbols and Punctuation     303F
 @              CJK symbols and punctuation
 3000   IDEOGRAPHIC SPACE
        x (space - 0020)
-       # <wide> + 0020
+       # <wide> 0020
 3001   IDEOGRAPHIC COMMA
        x (comma - 002C)
 3002   IDEOGRAPHIC FULL STOP
        x (single right-pointing angle quotation mark - 203A)
        x (right-pointing angle bracket - 232A)
 300A   LEFT DOUBLE ANGLE BRACKET
+       = z notation left chevron bracket
        x (left-pointing double angle quotation mark - 00AB)
 300B   RIGHT DOUBLE ANGLE BRACKET
+       = z notation right chevron bracket
        x (right-pointing double angle quotation mark - 00BB)
 300C   LEFT CORNER BRACKET
+       x (left ceiling - 2308)
 300D   RIGHT CORNER BRACKET
        * used as quotation marks
+       x (right floor - 230B)
 300E   LEFT WHITE CORNER BRACKET
 300F   RIGHT WHITE CORNER BRACKET
        * used as quotation marks
 3018   LEFT WHITE TORTOISE SHELL BRACKET
 3019   RIGHT WHITE TORTOISE SHELL BRACKET
 301A   LEFT WHITE SQUARE BRACKET
+       = z notation left bag bracket
 301B   RIGHT WHITE SQUARE BRACKET
+       = z notation right bag bracket
 301C   WAVE DASH
-       * JIS punctuation
+@+             * This character was encoded to match JIS C 6226-1978 1-33 "wave dash". Subsequent revisions of the JIS standard and industry practice have settled on JIS 1-33 as being the fullwidth tilde character.
        x (wavy dash - 3030)
+       x (fullwidth tilde - FF5E)
 301D   REVERSED DOUBLE PRIME QUOTATION MARK
+       * sometimes depicted as double prime quotation mark
        x (left double quotation mark - 201C)
        x (reversed double prime - 2036)
 301E   DOUBLE PRIME QUOTATION MARK
+       * this is a mistaken analogue to 201D; 301F is preferred
        x (right double quotation mark - 201D)
        x (double prime - 2033)
 301F   LOW DOUBLE PRIME QUOTATION MARK
-       x (double low-9 quotation mark - 201E)
+       * may be depicted as low inverse double prime quotation mark
 3020   POSTAL MARK FACE
 @              Hangzhou-style numerals
 3021   HANGZHOU NUMERAL ONE
 302C   IDEOGRAPHIC DEPARTING TONE MARK
 302D   IDEOGRAPHIC ENTERING TONE MARK
 302E   HANGUL SINGLE DOT TONE MARK
+       = single dot Bangjeom
 302F   HANGUL DOUBLE DOT TONE MARK
+       = double dot Bangjeom
 @              Other CJK symbols
 3030   WAVY DASH
        x (wavy line - 2307)
        * the preceding two are glyphs used in conjunction with the following glyph
 3035   VERTICAL KANA REPEAT MARK LOWER HALF
 3036   CIRCLED POSTAL MARK
-       # 3012
+       # 3012 postal mark
 3037   IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL
-3038   <reserved>
-3039   <reserved>
-303A   <reserved>
-303B   <reserved>
-303C   <reserved>
-303D   <reserved>
-303E   <reserved>
+@              Additional Hangzhou-style numerals
+3038   HANGZHOU NUMERAL TEN
+       # 5341
+3039   HANGZHOU NUMERAL TWENTY
+       # 5344
+303A   HANGZHOU NUMERAL THIRTY
+       # 5345
+@              Special CJK indicators
+@+             These are visibly displayed graphic characters, not invisible formatting controls.
+303E   IDEOGRAPHIC VARIATION INDICATOR
+       * visual indicator that the following ideograph is to be taken as a variant of the intended character
 303F   IDEOGRAPHIC HALF FILL SPACE
+       * visual indicator of a screen space for half of an ideograph
 @@     3040    Hiragana        309F
 @              Based on JIS X 0208
-3040   <reserved>
 3041   HIRAGANA LETTER SMALL A
 3042   HIRAGANA LETTER A
 3043   HIRAGANA LETTER SMALL I
 304A   HIRAGANA LETTER O
 304B   HIRAGANA LETTER KA
 304C   HIRAGANA LETTER GA
-       : 304B + 3099
+       : 304B 3099
 304D   HIRAGANA LETTER KI
 304E   HIRAGANA LETTER GI
-       : 304D + 3099
+       : 304D 3099
 304F   HIRAGANA LETTER KU
 3050   HIRAGANA LETTER GU
-       : 304F + 3099
+       : 304F 3099
 3051   HIRAGANA LETTER KE
 3052   HIRAGANA LETTER GE
-       : 3051 + 3099
+       : 3051 3099
 3053   HIRAGANA LETTER KO
 3054   HIRAGANA LETTER GO
-       : 3053 + 3099
+       : 3053 3099
 3055   HIRAGANA LETTER SA
 3056   HIRAGANA LETTER ZA
-       : 3055 + 3099
+       : 3055 3099
 3057   HIRAGANA LETTER SI
        = SHI
 3058   HIRAGANA LETTER ZI
        = JI (not unique)
-       : 3057 + 3099
+       : 3057 3099
 3059   HIRAGANA LETTER SU
 305A   HIRAGANA LETTER ZU
-       : 3059 + 3099
+       : 3059 3099
 305B   HIRAGANA LETTER SE
 305C   HIRAGANA LETTER ZE
-       : 305B + 3099
+       : 305B 3099
 305D   HIRAGANA LETTER SO
 305E   HIRAGANA LETTER ZO
-       : 305D + 3099
+       : 305D 3099
 305F   HIRAGANA LETTER TA
 3060   HIRAGANA LETTER DA
-       : 305F + 3099
+       : 305F 3099
 3061   HIRAGANA LETTER TI
        = CHI
 3062   HIRAGANA LETTER DI
        = JI (not unique)
-       : 3061 + 3099
+       : 3061 3099
 3063   HIRAGANA LETTER SMALL TU
        = SMALL TSU
 3064   HIRAGANA LETTER TU
        = TSU
 3065   HIRAGANA LETTER DU
        = ZU (not unique)
-       : 3064 + 3099
+       : 3064 3099
 3066   HIRAGANA LETTER TE
 3067   HIRAGANA LETTER DE
-       : 3066 + 3099
+       : 3066 3099
 3068   HIRAGANA LETTER TO
 3069   HIRAGANA LETTER DO
-       : 3068 + 3099
+       : 3068 3099
 306A   HIRAGANA LETTER NA
 306B   HIRAGANA LETTER NI
 306C   HIRAGANA LETTER NU
 306E   HIRAGANA LETTER NO
 306F   HIRAGANA LETTER HA
 3070   HIRAGANA LETTER BA
-       : 306F + 3099
+       : 306F 3099
 3071   HIRAGANA LETTER PA
-       : 306F + 309A
+       : 306F 309A
 3072   HIRAGANA LETTER HI
 3073   HIRAGANA LETTER BI
-       : 3072 + 3099
+       : 3072 3099
 3074   HIRAGANA LETTER PI
-       : 3072 + 309A
+       : 3072 309A
 3075   HIRAGANA LETTER HU
        = FU
 3076   HIRAGANA LETTER BU
-       : 3075 + 3099
+       : 3075 3099
 3077   HIRAGANA LETTER PU
-       : 3075 + 309A
+       : 3075 309A
 3078   HIRAGANA LETTER HE
 3079   HIRAGANA LETTER BE
-       : 3078 + 3099
+       : 3078 3099
 307A   HIRAGANA LETTER PE
-       : 3078 + 309A
+       : 3078 309A
 307B   HIRAGANA LETTER HO
 307C   HIRAGANA LETTER BO
-       : 307B + 3099
+       : 307B 3099
 307D   HIRAGANA LETTER PO
-       : 307B + 309A
+       : 307B 309A
 307E   HIRAGANA LETTER MA
 307F   HIRAGANA LETTER MI
 3080   HIRAGANA LETTER MU
 3092   HIRAGANA LETTER WO
 3093   HIRAGANA LETTER N
 3094   HIRAGANA LETTER VU
-       : 3046 + 3099
-3095   <reserved>
-3096   <reserved>
-3097   <reserved>
-3098   <reserved>
+       : 3046 3099
+@              Voicing marks
 3099   COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
 309A   COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
 309B   KATAKANA-HIRAGANA VOICED SOUND MARK
-       # 0020 + 3099
+       # 0020 3099
 309C   KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
-       # 0020 + 309A
+       # 0020 309A
+@              Iteration marks
 309D   HIRAGANA ITERATION MARK
 309E   HIRAGANA VOICED ITERATION MARK
-       : 309D + 3099
+       : 309D 3099
 @@     30A0    Katakana        30FF
 @              Based on JIS X 0208
-30A0   <reserved>
 30A1   KATAKANA LETTER SMALL A
 30A2   KATAKANA LETTER A
 30A3   KATAKANA LETTER SMALL I
 30AA   KATAKANA LETTER O
 30AB   KATAKANA LETTER KA
 30AC   KATAKANA LETTER GA
-       : 30AB + 3099
+       : 30AB 3099
 30AD   KATAKANA LETTER KI
 30AE   KATAKANA LETTER GI
-       : 30AD + 3099
+       : 30AD 3099
 30AF   KATAKANA LETTER KU
 30B0   KATAKANA LETTER GU
-       : 30AF + 3099
+       : 30AF 3099
 30B1   KATAKANA LETTER KE
 30B2   KATAKANA LETTER GE
-       : 30B1 + 3099
+       : 30B1 3099
 30B3   KATAKANA LETTER KO
 30B4   KATAKANA LETTER GO
-       : 30B3 + 3099
+       : 30B3 3099
 30B5   KATAKANA LETTER SA
 30B6   KATAKANA LETTER ZA
-       : 30B5 + 3099
+       : 30B5 3099
 30B7   KATAKANA LETTER SI
        = SHI
 30B8   KATAKANA LETTER ZI
        = JI (not unique)
-       : 30B7 + 3099
+       : 30B7 3099
 30B9   KATAKANA LETTER SU
 30BA   KATAKANA LETTER ZU
-       : 30B9 + 3099
+       : 30B9 3099
 30BB   KATAKANA LETTER SE
 30BC   KATAKANA LETTER ZE
-       : 30BB + 3099
+       : 30BB 3099
 30BD   KATAKANA LETTER SO
 30BE   KATAKANA LETTER ZO
-       : 30BD + 3099
+       : 30BD 3099
 30BF   KATAKANA LETTER TA
 30C0   KATAKANA LETTER DA
-       : 30BF + 3099
+       : 30BF 3099
 30C1   KATAKANA LETTER TI
        = CHI
 30C2   KATAKANA LETTER DI
        = JI (not unique)
-       : 30C1 + 3099
+       : 30C1 3099
 30C3   KATAKANA LETTER SMALL TU
        = SMALL TSU
 30C4   KATAKANA LETTER TU
        = TSU
 30C5   KATAKANA LETTER DU
        = ZU (not unique)
-       : 30C4 + 3099
+       : 30C4 3099
 30C6   KATAKANA LETTER TE
 30C7   KATAKANA LETTER DE
-       : 30C6 + 3099
+       : 30C6 3099
 30C8   KATAKANA LETTER TO
 30C9   KATAKANA LETTER DO
-       : 30C8 + 3099
+       : 30C8 3099
 30CA   KATAKANA LETTER NA
 30CB   KATAKANA LETTER NI
 30CC   KATAKANA LETTER NU
 30CE   KATAKANA LETTER NO
 30CF   KATAKANA LETTER HA
 30D0   KATAKANA LETTER BA
-       : 30CF + 3099
+       : 30CF 3099
 30D1   KATAKANA LETTER PA
-       : 30CF + 309A
+       : 30CF 309A
 30D2   KATAKANA LETTER HI
 30D3   KATAKANA LETTER BI
-       : 30D2 + 3099
+       : 30D2 3099
 30D4   KATAKANA LETTER PI
-       : 30D2 + 309A
+       : 30D2 309A
 30D5   KATAKANA LETTER HU
        = FU
 30D6   KATAKANA LETTER BU
-       : 30D5 + 3099
+       : 30D5 3099
 30D7   KATAKANA LETTER PU
-       : 30D5 + 309A
+       : 30D5 309A
 30D8   KATAKANA LETTER HE
 30D9   KATAKANA LETTER BE
-       : 30D8 + 3099
+       : 30D8 3099
 30DA   KATAKANA LETTER PE
-       : 30D8 + 309A
+       : 30D8 309A
 30DB   KATAKANA LETTER HO
 30DC   KATAKANA LETTER BO
-       : 30DB + 3099
+       : 30DB 3099
 30DD   KATAKANA LETTER PO
-       : 30DB + 309A
+       : 30DB 309A
 30DE   KATAKANA LETTER MA
 30DF   KATAKANA LETTER MI
 30E0   KATAKANA LETTER MU
 30F2   KATAKANA LETTER WO
 30F3   KATAKANA LETTER N
 30F4   KATAKANA LETTER VU
-       : 30A6 + 3099
+       : 30A6 3099
 30F5   KATAKANA LETTER SMALL KA
 30F6   KATAKANA LETTER SMALL KE
 30F7   KATAKANA LETTER VA
-       : 30EF + 3099
+       : 30EF 3099
 30F8   KATAKANA LETTER VI
-       : 30F0 + 3099
+       : 30F0 3099
 30F9   KATAKANA LETTER VE
-       : 30F1 + 3099
+       : 30F1 3099
 30FA   KATAKANA LETTER VO
-       : 30F2 + 3099
+       : 30F2 3099
+@              Conjunction and length marks
 30FB   KATAKANA MIDDLE DOT
        x (middle dot - 00B7)
 30FC   KATAKANA-HIRAGANA PROLONGED SOUND MARK
        x (em dash - 2014)
+@              Iteration marks
 30FD   KATAKANA ITERATION MARK
 30FE   KATAKANA VOICED ITERATION MARK
-       : 30FD + 3099
+       : 30FD 3099
 @@     3100    Bopomofo        312F
+@+             See also the Bopomofo Extended block
 @              Based on GB 2312
-               x (caron - 02C7)
-               x (modifier letter macron - 02C9)
-               x (modifier letter acute accent - 02CA)
-               x (modifier letter grave accent - 02CB)
-               x (dot above - 02D9)
-3100   <reserved>
-3101   <reserved>
-3102   <reserved>
-3103   <reserved>
-3104   <reserved>
 3105   BOPOMOFO LETTER B
 3106   BOPOMOFO LETTER P
 3107   BOPOMOFO LETTER M
 312B   BOPOMOFO LETTER NG
 312C   BOPOMOFO LETTER GN
 @@     3130    Hangul Compatibility Jamo       318F
-@              Based on KS C 5601
 @              Modern letters
-3130   <reserved>
 3131   HANGUL LETTER KIYEOK
-       # 1100
+       # 1100 hangul choseong kiyeok
 3132   HANGUL LETTER SSANGKIYEOK
-       # 1101
+       # 1101 hangul choseong ssangkiyeok
 3133   HANGUL LETTER KIYEOK-SIOS
-       # 11AA
+       # 11AA hangul jongseong kiyeok-sios
 3134   HANGUL LETTER NIEUN
-       # 1102
+       # 1102 hangul choseong nieun
 3135   HANGUL LETTER NIEUN-CIEUC
-       # 11AC
+       # 11AC hangul jongseong nieun-cieuc
 3136   HANGUL LETTER NIEUN-HIEUH
-       # 11AD
+       # 11AD hangul jongseong nieun-hieuh
 3137   HANGUL LETTER TIKEUT
-       # 1103
+       # 1103 hangul choseong tikeut
 3138   HANGUL LETTER SSANGTIKEUT
-       # 1104
+       # 1104 hangul choseong ssangtikeut
 3139   HANGUL LETTER RIEUL
-       # 1105
+       # 1105 hangul choseong rieul
 313A   HANGUL LETTER RIEUL-KIYEOK
-       # 11B0
+       # 11B0 hangul jongseong rieul-kiyeok
 313B   HANGUL LETTER RIEUL-MIEUM
-       # 11B1
+       # 11B1 hangul jongseong rieul-mieum
 313C   HANGUL LETTER RIEUL-PIEUP
-       # 11B2
+       # 11B2 hangul jongseong rieul-pieup
 313D   HANGUL LETTER RIEUL-SIOS
-       # 11B3
+       # 11B3 hangul jongseong rieul-sios
 313E   HANGUL LETTER RIEUL-THIEUTH
-       # 11B4
+       # 11B4 hangul jongseong rieul-thieuth
 313F   HANGUL LETTER RIEUL-PHIEUPH
-       # 11B5
+       # 11B5 hangul jongseong rieul-phieuph
 3140   HANGUL LETTER RIEUL-HIEUH
-       # 111A
+       # 111A hangul choseong rieul-hieuh
 3141   HANGUL LETTER MIEUM
-       # 1106
+       # 1106 hangul choseong mieum
 3142   HANGUL LETTER PIEUP
-       # 1107
+       # 1107 hangul choseong pieup
 3143   HANGUL LETTER SSANGPIEUP
-       # 1108
+       # 1108 hangul choseong ssangpieup
 3144   HANGUL LETTER PIEUP-SIOS
-       # 1121
+       # 1121 hangul choseong pieup-sios
 3145   HANGUL LETTER SIOS
-       # 1109
+       # 1109 hangul choseong sios
 3146   HANGUL LETTER SSANGSIOS
-       # 110A
+       # 110A hangul choseong ssangsios
 3147   HANGUL LETTER IEUNG
-       # 110B
+       # 110B hangul choseong ieung
 3148   HANGUL LETTER CIEUC
-       # 110C
+       # 110C hangul choseong cieuc
 3149   HANGUL LETTER SSANGCIEUC
-       # 110D
+       # 110D hangul choseong ssangcieuc
 314A   HANGUL LETTER CHIEUCH
-       # 110E
+       # 110E hangul choseong chieuch
 314B   HANGUL LETTER KHIEUKH
-       # 110F
+       # 110F hangul choseong khieukh
 314C   HANGUL LETTER THIEUTH
-       # 1110
+       # 1110 hangul choseong thieuth
 314D   HANGUL LETTER PHIEUPH
-       # 1111
+       # 1111 hangul choseong phieuph
 314E   HANGUL LETTER HIEUH
-       # 1112
+       # 1112 hangul choseong hieuh
 314F   HANGUL LETTER A
-       # 1161
+       # 1161 hangul jungseong a
 3150   HANGUL LETTER AE
-       # 1162
+       # 1162 hangul jungseong ae
 3151   HANGUL LETTER YA
-       # 1163
+       # 1163 hangul jungseong ya
 3152   HANGUL LETTER YAE
-       # 1164
+       # 1164 hangul jungseong yae
 3153   HANGUL LETTER EO
-       # 1165
+       # 1165 hangul jungseong eo
 3154   HANGUL LETTER E
-       # 1166
+       # 1166 hangul jungseong e
 3155   HANGUL LETTER YEO
-       # 1167
+       # 1167 hangul jungseong yeo
 3156   HANGUL LETTER YE
-       # 1168
+       # 1168 hangul jungseong ye
 3157   HANGUL LETTER O
-       # 1169
+       # 1169 hangul jungseong o
 3158   HANGUL LETTER WA
-       # 116A
+       # 116A hangul jungseong wa
 3159   HANGUL LETTER WAE
-       # 116B
+       # 116B hangul jungseong wae
 315A   HANGUL LETTER OE
-       # 116C
+       # 116C hangul jungseong oe
 315B   HANGUL LETTER YO
-       # 116D
+       # 116D hangul jungseong yo
 315C   HANGUL LETTER U
-       # 116E
+       # 116E hangul jungseong u
 315D   HANGUL LETTER WEO
-       # 116F
+       # 116F hangul jungseong weo
 315E   HANGUL LETTER WE
-       # 1170
+       # 1170 hangul jungseong we
 315F   HANGUL LETTER WI
-       # 1171
+       # 1171 hangul jungseong wi
 3160   HANGUL LETTER YU
-       # 1172
+       # 1172 hangul jungseong yu
 3161   HANGUL LETTER EU
-       # 1173
+       # 1173 hangul jungseong eu
 3162   HANGUL LETTER YI
-       # 1174
+       # 1174 hangul jungseong yi
 3163   HANGUL LETTER I
-       # 1175
+       # 1175 hangul jungseong i
 @              Special character
 3164   HANGUL FILLER
        = HANGUL CAE OM
-       # 1160
+       # 1160 hangul jungseong filler
 @              Archaic letters
 3165   HANGUL LETTER SSANGNIEUN
-       # 1114
+       # 1114 hangul choseong ssangnieun
 3166   HANGUL LETTER NIEUN-TIKEUT
-       # 1115
+       # 1115 hangul choseong nieun-tikeut
 3167   HANGUL LETTER NIEUN-SIOS
-       # 11C7
+       # 11C7 hangul jongseong nieun-sios
 3168   HANGUL LETTER NIEUN-PANSIOS
-       # 11C8
+       # 11C8 hangul jongseong nieun-pansios
 3169   HANGUL LETTER RIEUL-KIYEOK-SIOS
-       # 11CC
+       # 11CC hangul jongseong rieul-kiyeok-sios
 316A   HANGUL LETTER RIEUL-TIKEUT
-       # 11CE
+       # 11CE hangul jongseong rieul-tikeut
 316B   HANGUL LETTER RIEUL-PIEUP-SIOS
-       # 11D3
+       # 11D3 hangul jongseong rieul-pieup-sios
 316C   HANGUL LETTER RIEUL-PANSIOS
-       # 11D7
+       # 11D7 hangul jongseong rieul-pansios
 316D   HANGUL LETTER RIEUL-YEORINHIEUH
-       # 11D9
+       # 11D9 hangul jongseong rieul-yeorinhieuh
 316E   HANGUL LETTER MIEUM-PIEUP
-       # 111C
+       # 111C hangul choseong mieum-pieup
 316F   HANGUL LETTER MIEUM-SIOS
-       # 11DD
+       # 11DD hangul jongseong mieum-sios
 3170   HANGUL LETTER MIEUM-PANSIOS
-       # 11DF
+       # 11DF hangul jongseong mieum-pansios
 3171   HANGUL LETTER KAPYEOUNMIEUM
-       # 111D
+       # 111D hangul choseong kapyeounmieum
 3172   HANGUL LETTER PIEUP-KIYEOK
-       # 111E
+       # 111E hangul choseong pieup-kiyeok
 3173   HANGUL LETTER PIEUP-TIKEUT
-       # 1120
+       # 1120 hangul choseong pieup-tikeut
 3174   HANGUL LETTER PIEUP-SIOS-KIYEOK
-       # 1122
+       # 1122 hangul choseong pieup-sios-kiyeok
 3175   HANGUL LETTER PIEUP-SIOS-TIKEUT
-       # 1123
+       # 1123 hangul choseong pieup-sios-tikeut
 3176   HANGUL LETTER PIEUP-CIEUC
-       # 1127
+       # 1127 hangul choseong pieup-cieuc
 3177   HANGUL LETTER PIEUP-THIEUTH
-       # 1129
+       # 1129 hangul choseong pieup-thieuth
 3178   HANGUL LETTER KAPYEOUNPIEUP
-       # 112B
+       # 112B hangul choseong kapyeounpieup
 3179   HANGUL LETTER KAPYEOUNSSANGPIEUP
-       # 112C
+       # 112C hangul choseong kapyeounssangpieup
 317A   HANGUL LETTER SIOS-KIYEOK
-       # 112D
+       # 112D hangul choseong sios-kiyeok
 317B   HANGUL LETTER SIOS-NIEUN
-       # 112E
+       # 112E hangul choseong sios-nieun
 317C   HANGUL LETTER SIOS-TIKEUT
-       # 112F
+       # 112F hangul choseong sios-tikeut
 317D   HANGUL LETTER SIOS-PIEUP
-       # 1132
+       # 1132 hangul choseong sios-pieup
 317E   HANGUL LETTER SIOS-CIEUC
-       # 1136
+       # 1136 hangul choseong sios-cieuc
 317F   HANGUL LETTER PANSIOS
-       # 1140
+       # 1140 hangul choseong pansios
 3180   HANGUL LETTER SSANGIEUNG
-       # 1147
+       # 1147 hangul choseong ssangieung
 3181   HANGUL LETTER YESIEUNG
        * archaic velar nasal
-       # 114C
+       # 114C hangul choseong yesieung
 3182   HANGUL LETTER YESIEUNG-SIOS
-       # 11F1
+       # 11F1 hangul jongseong yesieung-sios
 3183   HANGUL LETTER YESIEUNG-PANSIOS
-       # 11F2
+       # 11F2 hangul jongseong yesieung-pansios
 3184   HANGUL LETTER KAPYEOUNPHIEUPH
-       # 1157
+       # 1157 hangul choseong kapyeounphieuph
 3185   HANGUL LETTER SSANGHIEUH
-       # 1158
+       # 1158 hangul choseong ssanghieuh
 3186   HANGUL LETTER YEORINHIEUH
        * archaic glottal stop
-       # 1159
+       # 1159 hangul choseong yeorinhieuh
 3187   HANGUL LETTER YO-YA
-       # 1184
+       # 1184 hangul jungseong yo-ya
 3188   HANGUL LETTER YO-YAE
-       # 1185
+       # 1185 hangul jungseong yo-yae
 3189   HANGUL LETTER YO-I
-       # 1188
+       # 1188 hangul jungseong yo-i
 318A   HANGUL LETTER YU-YEO
-       # 1191
+       # 1191 hangul jungseong yu-yeo
 318B   HANGUL LETTER YU-YE
-       # 1192
+       # 1192 hangul jungseong yu-ye
 318C   HANGUL LETTER YU-I
-       # 1194
+       # 1194 hangul jungseong yu-i
 318D   HANGUL LETTER ARAEA
-       # 119E
+       # 119E hangul jungseong araea
 318E   HANGUL LETTER ARAEAE
-       # 11A1
+       # 11A1 hangul jungseong araea-i
 @@     3190    Kanbun  319F
 @              Kanbun
-3190   IDEOGRAPHIC ANNOTATION LINKING MARK
-3191   IDEOGRAPHIC ANNOTATION REVERSE MARK
-3192   IDEOGRAPHIC ANNOTATION ONE MARK
-       # <super> + 4E00
-3193   IDEOGRAPHIC ANNOTATION TWO MARK
-       # <super> + 4E8C
-3194   IDEOGRAPHIC ANNOTATION THREE MARK
-       # <super> + 4E09
-3195   IDEOGRAPHIC ANNOTATION FOUR MARK
-       # <super> + 56DB
-3196   IDEOGRAPHIC ANNOTATION TOP MARK
-       # <super> + 4E0A
-3197   IDEOGRAPHIC ANNOTATION MIDDLE MARK
-       # <super> + 4E2D
-3198   IDEOGRAPHIC ANNOTATION BOTTOM MARK
-       # <super> + 4E0B
-3199   IDEOGRAPHIC ANNOTATION FIRST MARK
-       # <super> + 7532
-319A   IDEOGRAPHIC ANNOTATION SECOND MARK
-       # <super> + 4E59
-319B   IDEOGRAPHIC ANNOTATION THIRD MARK
-       # <super> + 4E19
-319C   IDEOGRAPHIC ANNOTATION FOURTH MARK
-       # <super> + 4E01
-319D   IDEOGRAPHIC ANNOTATION HEAVEN MARK
-       # <super> + 5929
-319E   IDEOGRAPHIC ANNOTATION EARTH MARK
-       # <super> + 5730
-319F   IDEOGRAPHIC ANNOTATION MAN MARK
-       # <super> + 4EBA
-@@     31A0    Unassigned      31FF
+3190   IDEOGRAPHIC ANNOTATION LINKING MARK (Kanbun Tateten)
+       = KANBUN TATETEN
+3191   IDEOGRAPHIC ANNOTATION REVERSE MARK (Kaeriten)
+       = KAERITEN RE
+3192   IDEOGRAPHIC ANNOTATION ONE MARK (Kaeriten)
+       # <super> 4E00
+3193   IDEOGRAPHIC ANNOTATION TWO MARK (Kaeriten)
+       # <super> 4E8C
+3194   IDEOGRAPHIC ANNOTATION THREE MARK (Kaeriten)
+       # <super> 4E09
+3195   IDEOGRAPHIC ANNOTATION FOUR MARK (Kaeriten)
+       # <super> 56DB
+3196   IDEOGRAPHIC ANNOTATION TOP MARK (Kaeriten)
+       # <super> 4E0A
+3197   IDEOGRAPHIC ANNOTATION MIDDLE MARK (Kaeriten)
+       # <super> 4E2D
+3198   IDEOGRAPHIC ANNOTATION BOTTOM MARK (Kaeriten)
+       # <super> 4E0B
+3199   IDEOGRAPHIC ANNOTATION FIRST MARK (Kaeriten)
+       # <super> 7532
+319A   IDEOGRAPHIC ANNOTATION SECOND MARK (Kaeriten)
+       # <super> 4E59
+319B   IDEOGRAPHIC ANNOTATION THIRD MARK (Kaeriten)
+       # <super> 4E19
+319C   IDEOGRAPHIC ANNOTATION FOURTH MARK (Kaeriten)
+       # <super> 4E01
+319D   IDEOGRAPHIC ANNOTATION HEAVEN MARK (Kaeriten)
+       # <super> 5929
+319E   IDEOGRAPHIC ANNOTATION EARTH MARK (Kaeriten)
+       # <super> 5730
+319F   IDEOGRAPHIC ANNOTATION MAN MARK (Kaeriten)
+       # <super> 4EBA
+@@     31A0    Bopomofo Extended       31BF
+@+             See also the Bopomofo block
+@              Extended Bopomofo for Minnan and Hakka
+31A0   BOPOMOFO LETTER BU
+31A1   BOPOMOFO LETTER ZI
+31A2   BOPOMOFO LETTER JI
+31A3   BOPOMOFO LETTER GU
+31A4   BOPOMOFO LETTER EE
+31A5   BOPOMOFO LETTER ENN
+31A6   BOPOMOFO LETTER OO
+31A7   BOPOMOFO LETTER ONN
+31A8   BOPOMOFO LETTER IR
+31A9   BOPOMOFO LETTER ANN
+31AA   BOPOMOFO LETTER INN
+31AB   BOPOMOFO LETTER UNN
+31AC   BOPOMOFO LETTER IM
+31AD   BOPOMOFO LETTER NGG
+31AE   BOPOMOFO LETTER AINN
+31AF   BOPOMOFO LETTER AUNN
+31B0   BOPOMOFO LETTER AM
+31B1   BOPOMOFO LETTER OM
+31B2   BOPOMOFO LETTER ONG
+31B3   BOPOMOFO LETTER INNN
+31B4   BOPOMOFO FINAL LETTER P
+31B5   BOPOMOFO FINAL LETTER T
+31B6   BOPOMOFO FINAL LETTER K
+31B7   BOPOMOFO FINAL LETTER H
 @@     3200    Enclosed CJK Letters and Months 32FF
 @              Parenthesized Hangul elements
 3200   PARENTHESIZED HANGUL KIYEOK
-       # 0028 + 1100 + 0029
+       # 0028 1100 0029
 3201   PARENTHESIZED HANGUL NIEUN
-       # 0028 + 1102 + 0029
+       # 0028 1102 0029
 3202   PARENTHESIZED HANGUL TIKEUT
-       # 0028 + 1103 + 0029
+       # 0028 1103 0029
 3203   PARENTHESIZED HANGUL RIEUL
-       # 0028 + 1105 + 0029
+       # 0028 1105 0029
 3204   PARENTHESIZED HANGUL MIEUM
-       # 0028 + 1106 + 0029
+       # 0028 1106 0029
 3205   PARENTHESIZED HANGUL PIEUP
-       # 0028 + 1107 + 0029
+       # 0028 1107 0029
 3206   PARENTHESIZED HANGUL SIOS
-       # 0028 + 1109 + 0029
+       # 0028 1109 0029
 3207   PARENTHESIZED HANGUL IEUNG
-       # 0028 + 110B + 0029
+       # 0028 110B 0029
 3208   PARENTHESIZED HANGUL CIEUC
-       # 0028 + 110C + 0029
+       # 0028 110C 0029
 3209   PARENTHESIZED HANGUL CHIEUCH
-       # 0028 + 110E + 0029
+       # 0028 110E 0029
 320A   PARENTHESIZED HANGUL KHIEUKH
-       # 0028 + 110F + 0029
+       # 0028 110F 0029
 320B   PARENTHESIZED HANGUL THIEUTH
-       # 0028 + 1110 + 0029
+       # 0028 1110 0029
 320C   PARENTHESIZED HANGUL PHIEUPH
-       # 0028 + 1111 + 0029
+       # 0028 1111 0029
 320D   PARENTHESIZED HANGUL HIEUH
-       # 0028 + 1112 + 0029
+       # 0028 1112 0029
 @              Parenthesized Hangul syllables
 320E   PARENTHESIZED HANGUL KIYEOK A
-       # 0028 + 1100 + 1161 + 0029
+       # 0028 1100 1161 0029
 320F   PARENTHESIZED HANGUL NIEUN A
-       # 0028 + 1102 + 1161 + 0029
+       # 0028 1102 1161 0029
 3210   PARENTHESIZED HANGUL TIKEUT A
-       # 0028 + 1103 + 1161 + 0029
+       # 0028 1103 1161 0029
 3211   PARENTHESIZED HANGUL RIEUL A
-       # 0028 + 1105 + 1161 + 0029
+       # 0028 1105 1161 0029
 3212   PARENTHESIZED HANGUL MIEUM A
-       # 0028 + 1106 + 1161 + 0029
+       # 0028 1106 1161 0029
 3213   PARENTHESIZED HANGUL PIEUP A
-       # 0028 + 1107 + 1161 + 0029
+       # 0028 1107 1161 0029
 3214   PARENTHESIZED HANGUL SIOS A
-       # 0028 + 1109 + 1161 + 0029
+       # 0028 1109 1161 0029
 3215   PARENTHESIZED HANGUL IEUNG A
-       # 0028 + 110B + 1161 + 0029
+       # 0028 110B 1161 0029
 3216   PARENTHESIZED HANGUL CIEUC A
-       # 0028 + 110C + 1161 + 0029
+       # 0028 110C 1161 0029
 3217   PARENTHESIZED HANGUL CHIEUCH A
-       # 0028 + 110E + 1161 + 0029
+       # 0028 110E 1161 0029
 3218   PARENTHESIZED HANGUL KHIEUKH A
-       # 0028 + 110F + 1161 + 0029
+       # 0028 110F 1161 0029
 3219   PARENTHESIZED HANGUL THIEUTH A
-       # 0028 + 1110 + 1161 + 0029
+       # 0028 1110 1161 0029
 321A   PARENTHESIZED HANGUL PHIEUPH A
-       # 0028 + 1111 + 1161 + 0029
+       # 0028 1111 1161 0029
 321B   PARENTHESIZED HANGUL HIEUH A
-       # 0028 + 1112 + 1161 + 0029
+       # 0028 1112 1161 0029
 321C   PARENTHESIZED HANGUL CIEUC U
-       # 0028 + 110C + 116E + 0029
-321D   <reserved>
-321E   <reserved>
-321F   <reserved>
+       # 0028 110C 116E 0029
 @              Parenthesized ideographs
 3220   PARENTHESIZED IDEOGRAPH ONE
-       # 0028 + 4E00 + 0029
+       # 0028 4E00 0029
 3221   PARENTHESIZED IDEOGRAPH TWO
-       # 0028 + 4E8C + 0029
+       # 0028 4E8C 0029
 3222   PARENTHESIZED IDEOGRAPH THREE
-       # 0028 + 4E09 + 0029
+       # 0028 4E09 0029
 3223   PARENTHESIZED IDEOGRAPH FOUR
-       # 0028 + 56DB + 0029
+       # 0028 56DB 0029
 3224   PARENTHESIZED IDEOGRAPH FIVE
-       # 0028 + 4E94 + 0029
+       # 0028 4E94 0029
 3225   PARENTHESIZED IDEOGRAPH SIX
-       # 0028 + 516D + 0029
+       # 0028 516D 0029
 3226   PARENTHESIZED IDEOGRAPH SEVEN
-       # 0028 + 4E03 + 0029
+       # 0028 4E03 0029
 3227   PARENTHESIZED IDEOGRAPH EIGHT
-       # 0028 + 516B + 0029
+       # 0028 516B 0029
 3228   PARENTHESIZED IDEOGRAPH NINE
-       # 0028 + 4E5D + 0029
+       # 0028 4E5D 0029
 3229   PARENTHESIZED IDEOGRAPH TEN
-       # 0028 + 5341 + 0029
+       # 0028 5341 0029
 322A   PARENTHESIZED IDEOGRAPH MOON
        * Monday
-       # 0028 + 6708 + 0029
+       # 0028 6708 0029
 322B   PARENTHESIZED IDEOGRAPH FIRE
        * Tuesday
-       # 0028 + 706B + 0029
+       # 0028 706B 0029
 322C   PARENTHESIZED IDEOGRAPH WATER
        * Wednesday
-       # 0028 + 6C34 + 0029
+       # 0028 6C34 0029
 322D   PARENTHESIZED IDEOGRAPH WOOD
        * Thursday
-       # 0028 + 6728 + 0029
+       # 0028 6728 0029
 322E   PARENTHESIZED IDEOGRAPH METAL
        * Friday
-       # 0028 + 91D1 + 0029
+       # 0028 91D1 0029
 322F   PARENTHESIZED IDEOGRAPH EARTH
        * Saturday
-       # 0028 + 571F + 0029
+       # 0028 571F 0029
 3230   PARENTHESIZED IDEOGRAPH SUN
        * Sunday
-       # 0028 + 65E5 + 0029
+       # 0028 65E5 0029
 3231   PARENTHESIZED IDEOGRAPH STOCK
        * incorporated
-       # 0028 + 682A + 0029
+       # 0028 682A 0029
 3232   PARENTHESIZED IDEOGRAPH HAVE
        * limited
-       # 0028 + 6709 + 0029
+       # 0028 6709 0029
 3233   PARENTHESIZED IDEOGRAPH SOCIETY
        * company
-       # 0028 + 793E + 0029
+       # 0028 793E 0029
 3234   PARENTHESIZED IDEOGRAPH NAME
-       # 0028 + 540D + 0029
+       # 0028 540D 0029
 3235   PARENTHESIZED IDEOGRAPH SPECIAL
-       # 0028 + 7279 + 0029
+       # 0028 7279 0029
 3236   PARENTHESIZED IDEOGRAPH FINANCIAL
-       # 0028 + 8CA1 + 0029
+       # 0028 8CA1 0029
 3237   PARENTHESIZED IDEOGRAPH CONGRATULATION
-       # 0028 + 795D + 0029
+       # 0028 795D 0029
 3238   PARENTHESIZED IDEOGRAPH LABOR
-       # 0028 + 52B4 + 0029
+       # 0028 52B4 0029
 3239   PARENTHESIZED IDEOGRAPH REPRESENT
-       # 0028 + 4EE3 + 0029
+       # 0028 4EE3 0029
 323A   PARENTHESIZED IDEOGRAPH CALL
-       # 0028 + 547C + 0029
+       # 0028 547C 0029
 323B   PARENTHESIZED IDEOGRAPH STUDY
-       # 0028 + 5B66 + 0029
+       # 0028 5B66 0029
 323C   PARENTHESIZED IDEOGRAPH SUPERVISE
-       # 0028 + 76E3 + 0029
+       # 0028 76E3 0029
 323D   PARENTHESIZED IDEOGRAPH ENTERPRISE
-       # 0028 + 4F01 + 0029
+       # 0028 4F01 0029
 323E   PARENTHESIZED IDEOGRAPH RESOURCE
-       # 0028 + 8CC7 + 0029
+       # 0028 8CC7 0029
 323F   PARENTHESIZED IDEOGRAPH ALLIANCE
-       # 0028 + 5354 + 0029
+       # 0028 5354 0029
 3240   PARENTHESIZED IDEOGRAPH FESTIVAL
-       # 0028 + 796D + 0029
+       # 0028 796D 0029
 3241   PARENTHESIZED IDEOGRAPH REST
-       # 0028 + 4F11 + 0029
+       # 0028 4F11 0029
 3242   PARENTHESIZED IDEOGRAPH SELF
        * from
-       # 0028 + 81EA + 0029
+       # 0028 81EA 0029
 3243   PARENTHESIZED IDEOGRAPH REACH
        * to
-       # 0028 + 81F3 + 0029
-3244   <reserved>
-3245   <reserved>
-3246   <reserved>
-3247   <reserved>
-3248   <reserved>
-3249   <reserved>
-324A   <reserved>
-324B   <reserved>
-324C   <reserved>
-324D   <reserved>
-324E   <reserved>
-324F   <reserved>
-3250   <reserved>
-3251   <reserved>
-3252   <reserved>
-3253   <reserved>
-3254   <reserved>
-3255   <reserved>
-3256   <reserved>
-3257   <reserved>
-3258   <reserved>
-3259   <reserved>
-325A   <reserved>
-325B   <reserved>
-325C   <reserved>
-325D   <reserved>
-325E   <reserved>
-325F   <reserved>
+       # 0028 81F3 0029
 @              Circled Hangul elements
 3260   CIRCLED HANGUL KIYEOK
-       # <circle> + 1100
+       # <circle> 1100
 3261   CIRCLED HANGUL NIEUN
-       # <circle> + 1102
+       # <circle> 1102
 3262   CIRCLED HANGUL TIKEUT
-       # <circle> + 1103
+       # <circle> 1103
 3263   CIRCLED HANGUL RIEUL
-       # <circle> + 1105
+       # <circle> 1105
 3264   CIRCLED HANGUL MIEUM
-       # <circle> + 1106
+       # <circle> 1106
 3265   CIRCLED HANGUL PIEUP
-       # <circle> + 1107
+       # <circle> 1107
 3266   CIRCLED HANGUL SIOS
-       # <circle> + 1109
+       # <circle> 1109
 3267   CIRCLED HANGUL IEUNG
-       # <circle> + 110B
+       # <circle> 110B
 3268   CIRCLED HANGUL CIEUC
-       # <circle> + 110C
+       # <circle> 110C
 3269   CIRCLED HANGUL CHIEUCH
-       # <circle> + 110E
+       # <circle> 110E
 326A   CIRCLED HANGUL KHIEUKH
-       # <circle> + 110F
+       # <circle> 110F
 326B   CIRCLED HANGUL THIEUTH
-       # <circle> + 1110
+       # <circle> 1110
 326C   CIRCLED HANGUL PHIEUPH
-       # <circle> + 1111
+       # <circle> 1111
 326D   CIRCLED HANGUL HIEUH
-       # <circle> + 1112
+       # <circle> 1112
 @              Circled Hangul syllables
 326E   CIRCLED HANGUL KIYEOK A
-       # <circle> + 1100 + 1161
+       # <circle> 1100 1161
 326F   CIRCLED HANGUL NIEUN A
-       # <circle> + 1102 + 1161
+       # <circle> 1102 1161
 3270   CIRCLED HANGUL TIKEUT A
-       # <circle> + 1103 + 1161
+       # <circle> 1103 1161
 3271   CIRCLED HANGUL RIEUL A
-       # <circle> + 1105 + 1161
+       # <circle> 1105 1161
 3272   CIRCLED HANGUL MIEUM A
-       # <circle> + 1106 + 1161
+       # <circle> 1106 1161
 3273   CIRCLED HANGUL PIEUP A
-       # <circle> + 1107 + 1161
+       # <circle> 1107 1161
 3274   CIRCLED HANGUL SIOS A
-       # <circle> + 1109 + 1161
+       # <circle> 1109 1161
 3275   CIRCLED HANGUL IEUNG A
-       # <circle> + 110B + 1161
+       # <circle> 110B 1161
 3276   CIRCLED HANGUL CIEUC A
-       # <circle> + 110C + 1161
+       # <circle> 110C 1161
 3277   CIRCLED HANGUL CHIEUCH A
-       # <circle> + 110E + 1161
+       # <circle> 110E 1161
 3278   CIRCLED HANGUL KHIEUKH A
-       # <circle> + 110F + 1161
+       # <circle> 110F 1161
 3279   CIRCLED HANGUL THIEUTH A
-       # <circle> + 1110 + 1161
+       # <circle> 1110 1161
 327A   CIRCLED HANGUL PHIEUPH A
-       # <circle> + 1111 + 1161
+       # <circle> 1111 1161
 327B   CIRCLED HANGUL HIEUH A
-       # <circle> + 1112 + 1161
-327C   <reserved>
-327D   <reserved>
-327E   <reserved>
+       # <circle> 1112 1161
 @              Symbol
 327F   KOREAN STANDARD SYMBOL
 @              Circled ideographs
 3280   CIRCLED IDEOGRAPH ONE
        = maru-iti, symbol of unification
-       # <circle> + 4E00
+       # <circle> 4E00
 3281   CIRCLED IDEOGRAPH TWO
-       # <circle> + 4E8C
+       # <circle> 4E8C
 3282   CIRCLED IDEOGRAPH THREE
-       # <circle> + 4E09
+       # <circle> 4E09
 3283   CIRCLED IDEOGRAPH FOUR
-       # <circle> + 56DB
+       # <circle> 56DB
 3284   CIRCLED IDEOGRAPH FIVE
-       # <circle> + 4E94
+       # <circle> 4E94
 3285   CIRCLED IDEOGRAPH SIX
-       # <circle> + 516D
+       # <circle> 516D
 3286   CIRCLED IDEOGRAPH SEVEN
-       # <circle> + 4E03
+       # <circle> 4E03
 3287   CIRCLED IDEOGRAPH EIGHT
-       # <circle> + 516B
+       # <circle> 516B
 3288   CIRCLED IDEOGRAPH NINE
-       # <circle> + 4E5D
+       # <circle> 4E5D
 3289   CIRCLED IDEOGRAPH TEN
-       # <circle> + 5341
+       # <circle> 5341
 328A   CIRCLED IDEOGRAPH MOON
        * Monday
-       # <circle> + 6708
+       # <circle> 6708
 328B   CIRCLED IDEOGRAPH FIRE
        * Tuesday
-       # <circle> + 706B
+       # <circle> 706B
 328C   CIRCLED IDEOGRAPH WATER
        * Wednesday
-       # <circle> + 6C34
+       # <circle> 6C34
 328D   CIRCLED IDEOGRAPH WOOD
        * Thursday
-       # <circle> + 6728
+       # <circle> 6728
 328E   CIRCLED IDEOGRAPH METAL
        * Friday
-       # <circle> + 91D1
+       # <circle> 91D1
 328F   CIRCLED IDEOGRAPH EARTH
        * Saturday
-       # <circle> + 571F
+       # <circle> 571F
 3290   CIRCLED IDEOGRAPH SUN
        * Sunday
-       # <circle> + 65E5
+       # <circle> 65E5
 3291   CIRCLED IDEOGRAPH STOCK
        * incorporated
-       # <circle> + 682A
+       # <circle> 682A
 3292   CIRCLED IDEOGRAPH HAVE
        * limited
-       # <circle> + 6709
+       # <circle> 6709
 3293   CIRCLED IDEOGRAPH SOCIETY
        * company
-       # <circle> + 793E
+       # <circle> 793E
 3294   CIRCLED IDEOGRAPH NAME
-       # <circle> + 540D
+       # <circle> 540D
 3295   CIRCLED IDEOGRAPH SPECIAL
-       # <circle> + 7279
+       # <circle> 7279
 3296   CIRCLED IDEOGRAPH FINANCIAL
-       # <circle> + 8CA1
+       # <circle> 8CA1
 3297   CIRCLED IDEOGRAPH CONGRATULATION
-       # <circle> + 795D
+       # <circle> 795D
 3298   CIRCLED IDEOGRAPH LABOR
-       # <circle> + 52B4
+       # <circle> 52B4
 3299   CIRCLED IDEOGRAPH SECRET
-       # <circle> + 79D8
+       # <circle> 79D8
 329A   CIRCLED IDEOGRAPH MALE
-       # <circle> + 7537
+       # <circle> 7537
 329B   CIRCLED IDEOGRAPH FEMALE
-       # <circle> + 5973
+       # <circle> 5973
 329C   CIRCLED IDEOGRAPH SUITABLE
-       # <circle> + 9069
+       # <circle> 9069
 329D   CIRCLED IDEOGRAPH EXCELLENT
-       # <circle> + 512A
+       # <circle> 512A
 329E   CIRCLED IDEOGRAPH PRINT
        * name seal
-       # <circle> + 5370
+       # <circle> 5370
 329F   CIRCLED IDEOGRAPH ATTENTION
-       # <circle> + 6CE8
+       # <circle> 6CE8
 32A0   CIRCLED IDEOGRAPH ITEM
-       # <circle> + 9805
+       # <circle> 9805
 32A1   CIRCLED IDEOGRAPH REST
        * holiday
-       # <circle> + 4F11
+       # <circle> 4F11
 32A2   CIRCLED IDEOGRAPH COPY
-       # <circle> + 5199
+       # <circle> 5199
 32A3   CIRCLED IDEOGRAPH CORRECT
-       # <circle> + 6B63
+       # <circle> 6B63
 32A4   CIRCLED IDEOGRAPH HIGH
-       # <circle> + 4E0A
+       # <circle> 4E0A
 32A5   CIRCLED IDEOGRAPH CENTRE
-       # <circle> + 4E2D
+       # <circle> 4E2D
 32A6   CIRCLED IDEOGRAPH LOW
-       # <circle> + 4E0B
+       # <circle> 4E0B
 32A7   CIRCLED IDEOGRAPH LEFT
-       # <circle> + 5DE6
+       # <circle> 5DE6
 32A8   CIRCLED IDEOGRAPH RIGHT
-       # <circle> + 53F3
+       # <circle> 53F3
 32A9   CIRCLED IDEOGRAPH MEDICINE
-       # <circle> + 533B
+       # <circle> 533B
 32AA   CIRCLED IDEOGRAPH RELIGION
-       # <circle> + 5B97
+       # <circle> 5B97
 32AB   CIRCLED IDEOGRAPH STUDY
-       # <circle> + 5B66
+       # <circle> 5B66
 32AC   CIRCLED IDEOGRAPH SUPERVISE
-       # <circle> + 76E3
+       # <circle> 76E3
 32AD   CIRCLED IDEOGRAPH ENTERPRISE
-       # <circle> + 4F01
+       # <circle> 4F01
 32AE   CIRCLED IDEOGRAPH RESOURCE
-       # <circle> + 8CC7
+       # <circle> 8CC7
 32AF   CIRCLED IDEOGRAPH ALLIANCE
-       # <circle> + 5354
+       # <circle> 5354
 32B0   CIRCLED IDEOGRAPH NIGHT
-       # <circle> + 591C
-32B1   <reserved>
-32B2   <reserved>
-32B3   <reserved>
-32B4   <reserved>
-32B5   <reserved>
-32B6   <reserved>
-32B7   <reserved>
-32B8   <reserved>
-32B9   <reserved>
-32BA   <reserved>
-32BB   <reserved>
-32BC   <reserved>
-32BD   <reserved>
-32BE   <reserved>
-32BF   <reserved>
+       # <circle> 591C
+@              Telegraph symbols for months
 32C0   IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY
-       # 0031 + 6708
+       # 0031 6708
 32C1   IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY
-       # 0032 + 6708
+       # 0032 6708
 32C2   IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH
-       # 0033 + 6708
+       # 0033 6708
 32C3   IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL
-       # 0034 + 6708
+       # 0034 6708
 32C4   IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY
-       # 0035 + 6708
+       # 0035 6708
 32C5   IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE
-       # 0036 + 6708
+       # 0036 6708
 32C6   IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY
-       # 0037 + 6708
+       # 0037 6708
 32C7   IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST
-       # 0038 + 6708
+       # 0038 6708
 32C8   IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER
-       # 0039 + 6708
+       # 0039 6708
 32C9   IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER
-       # 0031 + 0030 + 6708
+       # 0031 0030 6708
 32CA   IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER
-       # 0031 + 0031 + 6708
+       # 0031 0031 6708
 32CB   IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
-       # 0031 + 0032 + 6708
-32CC   <reserved>
-32CD   <reserved>
-32CE   <reserved>
-32CF   <reserved>
+       # 0031 0032 6708
 @              Circled Katakana
 32D0   CIRCLED KATAKANA A
-       # <circle> + 30A2
+       # <circle> 30A2
 32D1   CIRCLED KATAKANA I
-       # <circle> + 30A4
+       # <circle> 30A4
 32D2   CIRCLED KATAKANA U
-       # <circle> + 30A6
+       # <circle> 30A6
 32D3   CIRCLED KATAKANA E
-       # <circle> + 30A8
+       # <circle> 30A8
 32D4   CIRCLED KATAKANA O
-       # <circle> + 30AA
+       # <circle> 30AA
 32D5   CIRCLED KATAKANA KA
-       # <circle> + 30AB
+       # <circle> 30AB
 32D6   CIRCLED KATAKANA KI
-       # <circle> + 30AD
+       # <circle> 30AD
 32D7   CIRCLED KATAKANA KU
-       # <circle> + 30AF
+       # <circle> 30AF
 32D8   CIRCLED KATAKANA KE
-       # <circle> + 30B1
+       # <circle> 30B1
 32D9   CIRCLED KATAKANA KO
-       # <circle> + 30B3
+       # <circle> 30B3
 32DA   CIRCLED KATAKANA SA
-       # <circle> + 30B5
+       # <circle> 30B5
 32DB   CIRCLED KATAKANA SI
-       # <circle> + 30B7
+       # <circle> 30B7
 32DC   CIRCLED KATAKANA SU
-       # <circle> + 30B9
+       # <circle> 30B9
 32DD   CIRCLED KATAKANA SE
-       # <circle> + 30BB
+       # <circle> 30BB
 32DE   CIRCLED KATAKANA SO
-       # <circle> + 30BD
+       # <circle> 30BD
 32DF   CIRCLED KATAKANA TA
-       # <circle> + 30BF
+       # <circle> 30BF
 32E0   CIRCLED KATAKANA TI
-       # <circle> + 30C1
+       # <circle> 30C1
 32E1   CIRCLED KATAKANA TU
-       # <circle> + 30C4
+       # <circle> 30C4
 32E2   CIRCLED KATAKANA TE
-       # <circle> + 30C6
+       # <circle> 30C6
 32E3   CIRCLED KATAKANA TO
-       # <circle> + 30C8
+       # <circle> 30C8
 32E4   CIRCLED KATAKANA NA
-       # <circle> + 30CA
+       # <circle> 30CA
 32E5   CIRCLED KATAKANA NI
-       # <circle> + 30CB
+       # <circle> 30CB
 32E6   CIRCLED KATAKANA NU
-       # <circle> + 30CC
+       # <circle> 30CC
 32E7   CIRCLED KATAKANA NE
-       # <circle> + 30CD
+       # <circle> 30CD
 32E8   CIRCLED KATAKANA NO
-       # <circle> + 30CE
+       # <circle> 30CE
 32E9   CIRCLED KATAKANA HA
-       # <circle> + 30CF
+       # <circle> 30CF
 32EA   CIRCLED KATAKANA HI
-       # <circle> + 30D2
+       # <circle> 30D2
 32EB   CIRCLED KATAKANA HU
-       # <circle> + 30D5
+       # <circle> 30D5
 32EC   CIRCLED KATAKANA HE
-       # <circle> + 30D8
+       # <circle> 30D8
 32ED   CIRCLED KATAKANA HO
-       # <circle> + 30DB
+       # <circle> 30DB
 32EE   CIRCLED KATAKANA MA
-       # <circle> + 30DE
+       # <circle> 30DE
 32EF   CIRCLED KATAKANA MI
-       # <circle> + 30DF
+       # <circle> 30DF
 32F0   CIRCLED KATAKANA MU
-       # <circle> + 30E0
+       # <circle> 30E0
 32F1   CIRCLED KATAKANA ME
-       # <circle> + 30E1
+       # <circle> 30E1
 32F2   CIRCLED KATAKANA MO
-       # <circle> + 30E2
+       # <circle> 30E2
 32F3   CIRCLED KATAKANA YA
-       # <circle> + 30E4
+       # <circle> 30E4
 32F4   CIRCLED KATAKANA YU
-       # <circle> + 30E6
+       # <circle> 30E6
 32F5   CIRCLED KATAKANA YO
-       # <circle> + 30E8
+       # <circle> 30E8
 32F6   CIRCLED KATAKANA RA
-       # <circle> + 30E9
+       # <circle> 30E9
 32F7   CIRCLED KATAKANA RI
-       # <circle> + 30EA
+       # <circle> 30EA
 32F8   CIRCLED KATAKANA RU
-       # <circle> + 30EB
+       # <circle> 30EB
 32F9   CIRCLED KATAKANA RE
-       # <circle> + 30EC
+       # <circle> 30EC
 32FA   CIRCLED KATAKANA RO
-       # <circle> + 30ED
+       # <circle> 30ED
 32FB   CIRCLED KATAKANA WA
-       # <circle> + 30EF
+       # <circle> 30EF
 32FC   CIRCLED KATAKANA WI
-       # <circle> + 30F0
+       # <circle> 30F0
 32FD   CIRCLED KATAKANA WE
-       # <circle> + 30F1
+       # <circle> 30F1
 32FE   CIRCLED KATAKANA WO
-       # <circle> + 30F2
+       # <circle> 30F2
 @@     3300    CJK Compatibility       33FF
 @              Squared Katakana words
 3300   SQUARE APAATO
        * apartment
-       # <square> + 30A2 + 30D1 + 30FC + 30C8
+       # <square> 30A2 30D1 30FC 30C8
 3301   SQUARE ARUHUA
        * alpha
-       # <square> + 30A2 + 30EB + 30D5 + 30A1
+       # <square> 30A2 30EB 30D5 30A1
 3302   SQUARE ANPEA
        * ampere
-       # <square> + 30A2 + 30F3 + 30DA + 30A2
+       # <square> 30A2 30F3 30DA 30A2
 3303   SQUARE AARU
        * are (unit of area)
-       # <square> + 30A2 + 30FC + 30EB
+       # <square> 30A2 30FC 30EB
 3304   SQUARE ININGU
        * inning
-       # <square> + 30A4 + 30CB + 30F3 + 30B0
+       # <square> 30A4 30CB 30F3 30B0
 3305   SQUARE INTI
        * inch
-       # <square> + 30A4 + 30F3 + 30C1
+       # <square> 30A4 30F3 30C1
 3306   SQUARE UON
        * won (Korean currency)
-       # <square> + 30A6 + 30A9 + 30F3
+       # <square> 30A6 30A9 30F3
 3307   SQUARE ESUKUUDO
        * escudo (Portuguese currency)
-       # <square> + 30A8 + 30B9 + 30AF + 30FC + 30C9
+       # <square> 30A8 30B9 30AF 30FC 30C9
 3308   SQUARE EEKAA
        * acre
-       # <square> + 30A8 + 30FC + 30AB + 30FC
+       # <square> 30A8 30FC 30AB 30FC
 3309   SQUARE ONSU
        * ounce
-       # <square> + 30AA + 30F3 + 30B9
+       # <square> 30AA 30F3 30B9
 330A   SQUARE OOMU
        * ohm
-       # <square> + 30AA + 30FC + 30E0
+       # <square> 30AA 30FC 30E0
 330B   SQUARE KAIRI
        * kai-ri: nautical mile
-       # <square> + 30AB + 30A4 + 30EA
+       # <square> 30AB 30A4 30EA
 330C   SQUARE KARATTO
        * carat
-       # <square> + 30AB + 30E9 + 30C3 + 30C8
+       # <square> 30AB 30E9 30C3 30C8
 330D   SQUARE KARORII
        * calorie
-       # <square> + 30AB + 30ED + 30EA + 30FC
+       # <square> 30AB 30ED 30EA 30FC
 330E   SQUARE GARON
        * gallon
-       # <square> + 30AC + 30ED + 30F3
+       # <square> 30AC 30ED 30F3
 330F   SQUARE GANMA
        * gamma
-       # <square> + 30AC + 30F3 + 30DE
+       # <square> 30AC 30F3 30DE
 3310   SQUARE GIGA
        * giga-
-       # <square> + 30AE + 30AC
+       # <square> 30AE 30AC
 3311   SQUARE GINII
        * guinea
-       # <square> + 30AE + 30CB + 30FC
+       # <square> 30AE 30CB 30FC
 3312   SQUARE KYURII
        * curie
-       # <square> + 30AD + 30E5 + 30EA + 30FC
+       # <square> 30AD 30E5 30EA 30FC
 3313   SQUARE GIRUDAA
        * guilder
-       # <square> + 30AE + 30EB + 30C0 + 30FC
+       # <square> 30AE 30EB 30C0 30FC
 3314   SQUARE KIRO
        * kilo-
-       # <square> + 30AD + 30ED
+       # <square> 30AD 30ED
 3315   SQUARE KIROGURAMU
        * kilogram
-       # <square> + 30AD + 30ED + 30B0 + 30E9 + 30E0
+       # <square> 30AD 30ED 30B0 30E9 30E0
 3316   SQUARE KIROMEETORU
        * kilometer
-       # <square> + 30AD + 30ED + 30E1 + 30FC + 30C8 + 30EB
+       # <square> 30AD 30ED 30E1 30FC 30C8 30EB
 3317   SQUARE KIROWATTO
        * kilowatt
-       # <square> + 30AD + 30ED + 30EF + 30C3 + 30C8
+       # <square> 30AD 30ED 30EF 30C3 30C8
 3318   SQUARE GURAMU
        * gram
-       # <square> + 30B0 + 30E9 + 30E0
+       # <square> 30B0 30E9 30E0
 3319   SQUARE GURAMUTON
        * gram ton
-       # <square> + 30B0 + 30E9 + 30E0 + 30C8 + 30F3
+       # <square> 30B0 30E9 30E0 30C8 30F3
 331A   SQUARE KURUZEIRO
        * cruzeiro (Brazilian currency)
-       # <square> + 30AF + 30EB + 30BC + 30A4 + 30ED
+       # <square> 30AF 30EB 30BC 30A4 30ED
 331B   SQUARE KUROONE
        * krone
-       # <square> + 30AF + 30ED + 30FC + 30CD
+       # <square> 30AF 30ED 30FC 30CD
 331C   SQUARE KEESU
        * case
-       # <square> + 30B1 + 30FC + 30B9
+       # <square> 30B1 30FC 30B9
 331D   SQUARE KORUNA
        * koruna (Czech currency)
-       # <square> + 30B3 + 30EB + 30CA
+       # <square> 30B3 30EB 30CA
 331E   SQUARE KOOPO
        * co-op
-       # <square> + 30B3 + 30FC + 30DD
+       # <square> 30B3 30FC 30DD
 331F   SQUARE SAIKURU
        * cycle
-       # <square> + 30B5 + 30A4 + 30AF + 30EB
+       # <square> 30B5 30A4 30AF 30EB
 3320   SQUARE SANTIIMU
        * centime
-       # <square> + 30B5 + 30F3 + 30C1 + 30FC + 30E0
+       # <square> 30B5 30F3 30C1 30FC 30E0
 3321   SQUARE SIRINGU
        * shilling
-       # <square> + 30B7 + 30EA + 30F3 + 30B0
+       # <square> 30B7 30EA 30F3 30B0
 3322   SQUARE SENTI
        * centi-
-       # <square> + 30BB + 30F3 + 30C1
+       # <square> 30BB 30F3 30C1
 3323   SQUARE SENTO
        * cent
-       # <square> + 30BB + 30F3 + 30C8
+       # <square> 30BB 30F3 30C8
 3324   SQUARE DAASU
        * dozen
-       # <square> + 30C0 + 30FC + 30B9
+       # <square> 30C0 30FC 30B9
 3325   SQUARE DESI
        * deci-
-       # <square> + 30C7 + 30B7
+       # <square> 30C7 30B7
 3326   SQUARE DORU
        * dollar
-       # <square> + 30C9 + 30EB
+       # <square> 30C9 30EB
 3327   SQUARE TON
        * ton
-       # <square> + 30C8 + 30F3
+       # <square> 30C8 30F3
 3328   SQUARE NANO
        * nano-
-       # <square> + 30CA + 30CE
+       # <square> 30CA 30CE
 3329   SQUARE NOTTO
        * knot, nautical mile
-       # <square> + 30CE + 30C3 + 30C8
+       # <square> 30CE 30C3 30C8
 332A   SQUARE HAITU
        * heights
-       # <square> + 30CF + 30A4 + 30C4
+       # <square> 30CF 30A4 30C4
 332B   SQUARE PAASENTO
        * percent
-       # <square> + 30D1 + 30FC + 30BB + 30F3 + 30C8
+       # <square> 30D1 30FC 30BB 30F3 30C8
 332C   SQUARE PAATU
        * parts
-       # <square> + 30D1 + 30FC + 30C4
+       # <square> 30D1 30FC 30C4
 332D   SQUARE BAARERU
        * barrel
-       # <square> + 30D0 + 30FC + 30EC + 30EB
+       # <square> 30D0 30FC 30EC 30EB
 332E   SQUARE PIASUTORU
        * piaster
-       # <square> + 30D4 + 30A2 + 30B9 + 30C8 + 30EB
+       # <square> 30D4 30A2 30B9 30C8 30EB
 332F   SQUARE PIKURU
        * picul (unit of weight)
-       # <square> + 30D4 + 30AF + 30EB
+       # <square> 30D4 30AF 30EB
 3330   SQUARE PIKO
        * pico-
-       # <square> + 30D4 + 30B3
+       # <square> 30D4 30B3
 3331   SQUARE BIRU
        * building
-       # <square> + 30D3 + 30EB
+       # <square> 30D3 30EB
 3332   SQUARE HUARADDO
        * farad
-       # <square> + 30D5 + 30A1 + 30E9 + 30C3 + 30C9
+       # <square> 30D5 30A1 30E9 30C3 30C9
 3333   SQUARE HUIITO
        * feet
-       # <square> + 30D5 + 30A3 + 30FC + 30C8
+       # <square> 30D5 30A3 30FC 30C8
 3334   SQUARE BUSSYERU
        * bushel
-       # <square> + 30D6 + 30C3 + 30B7 + 30A7 + 30EB
+       # <square> 30D6 30C3 30B7 30A7 30EB
 3335   SQUARE HURAN
        * franc
-       # <square> + 30D5 + 30E9 + 30F3
+       # <square> 30D5 30E9 30F3
 3336   SQUARE HEKUTAARU
        * hectare
-       # <square> + 30D8 + 30AF + 30BF + 30FC + 30EB
+       # <square> 30D8 30AF 30BF 30FC 30EB
 3337   SQUARE PESO
        * peso
-       # <square> + 30DA + 30BD
+       # <square> 30DA 30BD
 3338   SQUARE PENIHI
        * pfennig
-       # <square> + 30DA + 30CB + 30D2
+       # <square> 30DA 30CB 30D2
 3339   SQUARE HERUTU
        * hertz
-       # <square> + 30D8 + 30EB + 30C4
+       # <square> 30D8 30EB 30C4
 333A   SQUARE PENSU
        * pence
-       # <square> + 30DA + 30F3 + 30B9
+       # <square> 30DA 30F3 30B9
 333B   SQUARE PEEZI
        * page
-       # <square> + 30DA + 30FC + 30B8
+       # <square> 30DA 30FC 30B8
 333C   SQUARE BEETA
        * beta
-       # <square> + 30D9 + 30FC + 30BF
+       # <square> 30D9 30FC 30BF
 333D   SQUARE POINTO
        * point
-       # <square> + 30DD + 30A4 + 30F3 + 30C8
+       # <square> 30DD 30A4 30F3 30C8
 333E   SQUARE BORUTO
        * volt, bolt
-       # <square> + 30DC + 30EB + 30C8
+       # <square> 30DC 30EB 30C8
 333F   SQUARE HON
        * hon: volume
-       # <square> + 30DB + 30F3
+       # <square> 30DB 30F3
 3340   SQUARE PONDO
        * pound
-       # <square> + 30DD + 30F3 + 30C9
+       # <square> 30DD 30F3 30C9
 3341   SQUARE HOORU
        * hall
-       # <square> + 30DB + 30FC + 30EB
+       # <square> 30DB 30FC 30EB
 3342   SQUARE HOON
        * horn
-       # <square> + 30DB + 30FC + 30F3
+       # <square> 30DB 30FC 30F3
 3343   SQUARE MAIKURO
        * micro-
-       # <square> + 30DE + 30A4 + 30AF + 30ED
+       # <square> 30DE 30A4 30AF 30ED
 3344   SQUARE MAIRU
        * mile
-       # <square> + 30DE + 30A4 + 30EB
+       # <square> 30DE 30A4 30EB
 3345   SQUARE MAHHA
        * mach
-       # <square> + 30DE + 30C3 + 30CF
+       # <square> 30DE 30C3 30CF
 3346   SQUARE MARUKU
        * mark
-       # <square> + 30DE + 30EB + 30AF
+       # <square> 30DE 30EB 30AF
 3347   SQUARE MANSYON
-       * mansion
-       # <square> + 30DE + 30F3 + 30B7 + 30E7 + 30F3
+       * mansion (i.e. better quality apartment)
+       # <square> 30DE 30F3 30B7 30E7 30F3
 3348   SQUARE MIKURON
        * micron
-       # <square> + 30DF + 30AF + 30ED + 30F3
+       # <square> 30DF 30AF 30ED 30F3
 3349   SQUARE MIRI
        * milli-
-       # <square> + 30DF + 30EA
+       # <square> 30DF 30EA
 334A   SQUARE MIRIBAARU
        * millibar
-       # <square> + 30DF + 30EA + 30D0 + 30FC + 30EB
+       # <square> 30DF 30EA 30D0 30FC 30EB
 334B   SQUARE MEGA
        * mega-
-       # <square> + 30E1 + 30AC
+       # <square> 30E1 30AC
 334C   SQUARE MEGATON
        * megaton
-       # <square> + 30E1 + 30AC + 30C8 + 30F3
+       # <square> 30E1 30AC 30C8 30F3
 334D   SQUARE MEETORU
        * meter
-       # <square> + 30E1 + 30FC + 30C8 + 30EB
+       # <square> 30E1 30FC 30C8 30EB
 334E   SQUARE YAADO
        * yard
-       # <square> + 30E4 + 30FC + 30C9
+       # <square> 30E4 30FC 30C9
 334F   SQUARE YAARU
        * yard
-       # <square> + 30E4 + 30FC + 30EB
+       # <square> 30E4 30FC 30EB
 3350   SQUARE YUAN
        * yuan (Chinese currency)
-       # <square> + 30E6 + 30A2 + 30F3
+       # <square> 30E6 30A2 30F3
 3351   SQUARE RITTORU
        * liter
-       # <square> + 30EA + 30C3 + 30C8 + 30EB
+       # <square> 30EA 30C3 30C8 30EB
 3352   SQUARE RIRA
        * lira
-       # <square> + 30EA + 30E9
+       # <square> 30EA 30E9
 3353   SQUARE RUPII
        * rupee
-       # <square> + 30EB + 30D4 + 30FC
+       # <square> 30EB 30D4 30FC
 3354   SQUARE RUUBURU
        * ruble
-       # <square> + 30EB + 30FC + 30D6 + 30EB
+       # <square> 30EB 30FC 30D6 30EB
 3355   SQUARE REMU
        * rem (unit of radiation)
-       # <square> + 30EC + 30E0
+       # <square> 30EC 30E0
 3356   SQUARE RENTOGEN
        * roentgen
-       # <square> + 30EC + 30F3 + 30C8 + 30B2 + 30F3
+       # <square> 30EC 30F3 30C8 30B2 30F3
 3357   SQUARE WATTO
        * watt
-       # <square> + 30EF + 30C3 + 30C8
+       # <square> 30EF 30C3 30C8
+@              Telegraph symbols for hours
 3358   IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO
-       # <square> + 0030 + 70B9
+       # 0030 70B9
 3359   IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE
-       # 0031 + 70B9
+       # 0031 70B9
 335A   IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO
-       # 0032 + 70B9
+       # 0032 70B9
 335B   IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE
-       # 0033 + 70B9
+       # 0033 70B9
 335C   IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR
-       # 0034 + 70B9
+       # 0034 70B9
 335D   IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE
-       # 0035 + 70B9
+       # 0035 70B9
 335E   IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX
-       # 0036 + 70B9
+       # 0036 70B9
 335F   IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN
-       # 0037 + 70B9
+       # 0037 70B9
 3360   IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT
-       # 0038 + 70B9
+       # 0038 70B9
 3361   IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE
-       # 0039 + 70B9
+       # 0039 70B9
 3362   IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN
-       # 0031 + 0030 + 70B9
+       # 0031 0030 70B9
 3363   IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN
-       # 0031 + 0031 + 70B9
+       # 0031 0031 70B9
 3364   IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE
-       # 0031 + 0032 + 70B9
+       # 0031 0032 70B9
 3365   IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN
-       # 0031 + 0033 + 70B9
+       # 0031 0033 70B9
 3366   IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN
-       # 0031 + 0034 + 70B9
+       # 0031 0034 70B9
 3367   IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN
-       # 0031 + 0035 + 70B9
+       # 0031 0035 70B9
 3368   IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN
-       # 0031 + 0036 + 70B9
+       # 0031 0036 70B9
 3369   IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN
-       # 0031 + 0037 + 70B9
+       # 0031 0037 70B9
 336A   IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN
-       # 0031 + 0038 + 70B9
+       # 0031 0038 70B9
 336B   IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN
-       # 0031 + 0039 + 70B9
+       # 0031 0039 70B9
 336C   IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY
-       # 0032 + 0030 + 70B9
+       # 0032 0030 70B9
 336D   IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE
-       # 0032 + 0031 + 70B9
+       # 0032 0031 70B9
 336E   IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO
-       # 0032 + 0032 + 70B9
+       # 0032 0032 70B9
 336F   IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE
-       # 0032 + 0033 + 70B9
+       # 0032 0033 70B9
 3370   IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
-       # 0032 + 0034 + 70B9
+       # 0032 0034 70B9
+@              Squared Latin abbreviations
 3371   SQUARE HPA
-       # <square> + 0068 + 0050 + 0061
+       # <square> 0068 0050 0061
 3372   SQUARE DA
-       # <square> + 0064 + 0061
+       # <square> 0064 0061
 3373   SQUARE AU
-       # <square> + 0041 + 0055
+       # <square> 0041 0055
 3374   SQUARE BAR
-       # <square> + 0062 + 0061 + 0072
+       # <square> 0062 0061 0072
 3375   SQUARE OV
-       # <square> + 006F + 0056
+       # <square> 006F 0056
 3376   SQUARE PC
-       # <square> + 0070 + 0063
-3377   <reserved>
-3378   <reserved>
-3379   <reserved>
-337A   <reserved>
+       # <square> 0070 0063
 @              Japanese era names
 337B   SQUARE ERA NAME HEISEI
-       # <square> + 5E73 + 6210
+       # <square> 5E73 6210
 337C   SQUARE ERA NAME SYOUWA
-       # <square> + 662D + 548C
+       # <square> 662D 548C
 337D   SQUARE ERA NAME TAISYOU
-       # <square> + 5927 + 6B63
+       # <square> 5927 6B63
 337E   SQUARE ERA NAME MEIZI
-       # <square> + 660E + 6CBB
+       # <square> 660E 6CBB
 @              Japanese corporation
 337F   SQUARE CORPORATION
        = kabusiki-gaisya
        * incorporated
-       # <square> + 682A + 5F0F + 4F1A + 793E
+       # <square> 682A 5F0F 4F1A 793E
 @              Squared Latin abbreviations
 3380   SQUARE PA AMPS
-       # <square> + 0070 + 0041
+       # <square> 0070 0041
 3381   SQUARE NA
-       # <square> + 006E + 0041
+       # <square> 006E 0041
 3382   SQUARE MU A
-       # <square> + 03BC + 0041
+       # <square> 03BC 0041
 3383   SQUARE MA
-       # <square> + 006D + 0041
+       # <square> 006D 0041
 3384   SQUARE KA
-       # <square> + 006B + 0041
+       # <square> 006B 0041
 3385   SQUARE KB
-       # <square> + 004B + 0042
+       # <square> 004B 0042
 3386   SQUARE MB
-       # <square> + 004D + 0042
+       # <square> 004D 0042
 3387   SQUARE GB
-       # <square> + 0047 + 0042
+       # <square> 0047 0042
 3388   SQUARE CAL
-       # <square> + 0063 + 0061 + 006C
+       # <square> 0063 0061 006C
 3389   SQUARE KCAL
-       # <square> + 006B + 0063 + 0061 + 006C
+       # <square> 006B 0063 0061 006C
 338A   SQUARE PF
-       # <square> + 0070 + 0046
+       # <square> 0070 0046
 338B   SQUARE NF
-       # <square> + 006E + 0046
+       # <square> 006E 0046
 338C   SQUARE MU F
-       # <square> + 03BC + 0046
+       # <square> 03BC 0046
 338D   SQUARE MU G
-       # <square> + 03BC + 0067
+       # <square> 03BC 0067
 338E   SQUARE MG
-       # <square> + 006D + 0067
+       # <square> 006D 0067
 338F   SQUARE KG
-       # <square> + 006B + 0067
+       # <square> 006B 0067
 3390   SQUARE HZ
-       # <square> + 0048 + 007A
+       # <square> 0048 007A
 3391   SQUARE KHZ
-       # <square> + 006B + 0048 + 007A
+       # <square> 006B 0048 007A
 3392   SQUARE MHZ
-       # <square> + 004D + 0048 + 007A
+       # <square> 004D 0048 007A
 3393   SQUARE GHZ
-       # <square> + 0047 + 0048 + 007A
+       # <square> 0047 0048 007A
 3394   SQUARE THZ
-       # <square> + 0054 + 0048 + 007A
+       # <square> 0054 0048 007A
 3395   SQUARE MU L
-       # <square> + 03BC + 2113
+       # <square> 03BC 2113
 3396   SQUARE ML
-       # <square> + 006D + 2113
+       # <square> 006D 2113
 3397   SQUARE DL
-       # <square> + 0064 + 2113
+       # <square> 0064 2113
 3398   SQUARE KL
-       # <square> + 006B + 2113
+       # <square> 006B 2113
 3399   SQUARE FM
-       # <square> + 0066 + 006D
+       # <square> 0066 006D
 339A   SQUARE NM
-       # <square> + 006E + 006D
+       # <square> 006E 006D
 339B   SQUARE MU M
-       # <square> + 03BC + 006D
+       # <square> 03BC 006D
 339C   SQUARE MM
-       # <square> + 006D + 006D
+       # <square> 006D 006D
 339D   SQUARE CM
-       # <square> + 0063 + 006D
+       # <square> 0063 006D
 339E   SQUARE KM
-       # <square> + 006B + 006D
+       # <square> 006B 006D
 339F   SQUARE MM SQUARED
-       # <square> + 006D + 006D + 00B2
+       # <square> 006D 006D 00B2
 33A0   SQUARE CM SQUARED
-       # <square> + 0063 + 006D + 00B2
+       # <square> 0063 006D 00B2
 33A1   SQUARE M SQUARED
-       # <square> + 006D + 00B2
+       # <square> 006D 00B2
 33A2   SQUARE KM SQUARED
-       # <square> + 006B + 006D + 00B2
+       # <square> 006B 006D 00B2
 33A3   SQUARE MM CUBED
-       # <square> + 006D + 006D + 00B3
+       # <square> 006D 006D 00B3
 33A4   SQUARE CM CUBED
-       # <square> + 0063 + 006D + 00B3
+       # <square> 0063 006D 00B3
 33A5   SQUARE M CUBED
-       # <square> + 006D + 00B3
+       # <square> 006D 00B3
 33A6   SQUARE KM CUBED
-       # <square> + 006B + 006D + 00B3
+       # <square> 006B 006D 00B3
 33A7   SQUARE M OVER S
-       # <square> + 006D + 2215 + 0073
+       # <square> 006D 2215 0073
 33A8   SQUARE M OVER S SQUARED
-       # <square> + 006D + 2215 + 0073 + 00B2
+       # <square> 006D 2215 0073 00B2
 33A9   SQUARE PA
-       # <square> + 0050 + 0061
+       # <square> 0050 0061
 33AA   SQUARE KPA
-       # <square> + 006B + 0050 + 0061
+       # <square> 006B 0050 0061
 33AB   SQUARE MPA
-       # <square> + 004D + 0050 + 0061
+       # <square> 004D 0050 0061
 33AC   SQUARE GPA
-       # <square> + 0047 + 0050 + 0061
+       # <square> 0047 0050 0061
 33AD   SQUARE RAD
-       # <square> + 0072 + 0061 + 0064
+       # <square> 0072 0061 0064
 33AE   SQUARE RAD OVER S
-       # <square> + 0072 + 0061 + 0064 + 2215 + 0073
+       # <square> 0072 0061 0064 2215 0073
 33AF   SQUARE RAD OVER S SQUARED
-       # <square> + 0072 + 0061 + 0064 + 2215 + 0073 + 00B2
+       # <square> 0072 0061 0064 2215 0073 00B2
 33B0   SQUARE PS
-       # <square> + 0070 + 0073
+       # <square> 0070 0073
 33B1   SQUARE NS
-       # <square> + 006E + 0073
+       # <square> 006E 0073
 33B2   SQUARE MU S
-       # <square> + 03BC + 0073
+       # <square> 03BC 0073
 33B3   SQUARE MS
-       # <square> + 006D + 0073
+       # <square> 006D 0073
 33B4   SQUARE PV
-       # <square> + 0070 + 0056
+       # <square> 0070 0056
 33B5   SQUARE NV
-       # <square> + 006E + 0056
+       # <square> 006E 0056
 33B6   SQUARE MU V
-       # <square> + 03BC + 0056
+       # <square> 03BC 0056
 33B7   SQUARE MV
-       # <square> + 006D + 0056
+       # <square> 006D 0056
 33B8   SQUARE KV
-       # <square> + 006B + 0056
+       # <square> 006B 0056
 33B9   SQUARE MV MEGA
-       # <square> + 004D + 0056
+       # <square> 004D 0056
 33BA   SQUARE PW
-       # <square> + 0070 + 0057
+       # <square> 0070 0057
 33BB   SQUARE NW
-       # <square> + 006E + 0057
+       # <square> 006E 0057
 33BC   SQUARE MU W
-       # <square> + 03BC + 0057
+       # <square> 03BC 0057
 33BD   SQUARE MW
-       # <square> + 006D + 0057
+       # <square> 006D 0057
 33BE   SQUARE KW
-       # <square> + 006B + 0057
+       # <square> 006B 0057
 33BF   SQUARE MW MEGA
-       # <square> + 004D + 0057
+       # <square> 004D 0057
 33C0   SQUARE K OHM
-       # <square> + 006B + 03A9
+       # <square> 006B 03A9
 33C1   SQUARE M OHM
-       # <square> + 004D + 03A9
+       # <square> 004D 03A9
 33C2   SQUARE AM
-       # <square> + 0061 + 002E + 006D + 002E
+       # <square> 0061 002E 006D 002E
 33C3   SQUARE BQ
-       # <square> + 0042 + 0071
+       # <square> 0042 0071
 33C4   SQUARE CC
-       # <square> + 0063 + 0063
+       # <square> 0063 0063
 33C5   SQUARE CD
-       # <square> + 0063 + 0064
+       # <square> 0063 0064
 33C6   SQUARE C OVER KG
-       # <square> + 0043 + 2215 + 006B + 0067
+       # <square> 0043 2215 006B 0067
 33C7   SQUARE CO
-       # <square> + 0043 + 006F + 002E
+       # <square> 0043 006F 002E
 33C8   SQUARE DB
-       # <square> + 0064 + 0042
+       # <square> 0064 0042
 33C9   SQUARE GY
-       # <square> + 0047 + 0079
+       # <square> 0047 0079
 33CA   SQUARE HA
-       # <square> + 0068 + 0061
+       # <square> 0068 0061
 33CB   SQUARE HP
-       # <square> + 0048 + 0050
+       # <square> 0048 0050
 33CC   SQUARE IN
-       # <square> + 0069 + 006E
+       # <square> 0069 006E
 33CD   SQUARE KK
-       # <square> + 004B + 004B
+       # <square> 004B 004B
 33CE   SQUARE KM CAPITAL
-       # <square> + 004B + 004D
+       # <square> 004B 004D
 33CF   SQUARE KT
-       # <square> + 006B + 0074
+       # <square> 006B 0074
 33D0   SQUARE LM
-       # <square> + 006C + 006D
+       # <square> 006C 006D
 33D1   SQUARE LN
-       # <square> + 006C + 006E
+       # <square> 006C 006E
 33D2   SQUARE LOG
-       # <square> + 006C + 006F + 0067
+       # <square> 006C 006F 0067
 33D3   SQUARE LX
-       # <square> + 006C + 0078
+       # <square> 006C 0078
 33D4   SQUARE MB SMALL
-       # <square> + 006D + 0062
+       # <square> 006D 0062
 33D5   SQUARE MIL
-       # <square> + 006D + 0069 + 006C
+       # <square> 006D 0069 006C
 33D6   SQUARE MOL
-       # <square> + 006D + 006F + 006C
+       # <square> 006D 006F 006C
 33D7   SQUARE PH
-       # <square> + 0050 + 0048
+       # <square> 0050 0048
 33D8   SQUARE PM
-       # <square> + 0070 + 002E + 006D + 002E
+       # <square> 0070 002E 006D 002E
 33D9   SQUARE PPM
-       # <square> + 0050 + 0050 + 004D
+       # <square> 0050 0050 004D
 33DA   SQUARE PR
-       # <square> + 0050 + 0052
+       # <square> 0050 0052
 33DB   SQUARE SR
-       # <square> + 0073 + 0072
+       # <square> 0073 0072
 33DC   SQUARE SV
-       # <square> + 0053 + 0076
+       # <square> 0053 0076
 33DD   SQUARE WB
-       # <square> + 0057 + 0062
-33DE   <reserved>
-33DF   <reserved>
+       # <square> 0057 0062
+@              Telegraph symbols for days
 33E0   IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE
-       # 0031 + 65E5
+       # 0031 65E5
 33E1   IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO
-       # 0032 + 65E5
+       # 0032 65E5
 33E2   IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE
-       # 0033 + 65E5
+       # 0033 65E5
 33E3   IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR
-       # 0034 + 65E5
+       # 0034 65E5
 33E4   IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE
-       # 0035 + 65E5
+       # 0035 65E5
 33E5   IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX
-       # 0036 + 65E5
+       # 0036 65E5
 33E6   IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN
-       # 0037 + 65E5
+       # 0037 65E5
 33E7   IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT
-       # 0038 + 65E5
+       # 0038 65E5
 33E8   IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE
-       # 0039 + 65E5
+       # 0039 65E5
 33E9   IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN
-       # 0031 + 0030 + 65E5
+       # 0031 0030 65E5
 33EA   IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN
-       # 0031 + 0031 + 65E5
+       # 0031 0031 65E5
 33EB   IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE
-       # 0031 + 0032 + 65E5
+       # 0031 0032 65E5
 33EC   IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN
-       # 0031 + 0033 + 65E5
+       # 0031 0033 65E5
 33ED   IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN
-       # 0031 + 0034 + 65E5
+       # 0031 0034 65E5
 33EE   IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN
-       # 0031 + 0035 + 65E5
+       # 0031 0035 65E5
 33EF   IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN
-       # 0031 + 0036 + 65E5
+       # 0031 0036 65E5
 33F0   IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN
-       # 0031 + 0037 + 65E5
+       # 0031 0037 65E5
 33F1   IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN
-       # 0031 + 0038 + 65E5
+       # 0031 0038 65E5
 33F2   IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN
-       # 0031 + 0039 + 65E5
+       # 0031 0039 65E5
 33F3   IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY
-       # 0032 + 0030 + 65E5
+       # 0032 0030 65E5
 33F4   IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE
-       # 0032 + 0031 + 65E5
+       # 0032 0031 65E5
 33F5   IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO
-       # 0032 + 0032 + 65E5
+       # 0032 0032 65E5
 33F6   IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE
-       # 0032 + 0033 + 65E5
+       # 0032 0033 65E5
 33F7   IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR
-       # 0032 + 0034 + 65E5
+       # 0032 0034 65E5
 33F8   IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE
-       # 0032 + 0035 + 65E5
+       # 0032 0035 65E5
 33F9   IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX
-       # 0032 + 0036 + 65E5
+       # 0032 0036 65E5
 33FA   IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN
-       # 0032 + 0037 + 65E5
+       # 0032 0037 65E5
 33FB   IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT
-       # 0032 + 0038 + 65E5
+       # 0032 0038 65E5
 33FC   IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE
-       # 0032 + 0039 + 65E5
+       # 0032 0039 65E5
 33FD   IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY
-       # 0033 + 0030 + 65E5
+       # 0033 0030 65E5
 33FE   IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
-       # 0033 + 0031 + 65E5
-@@     3400    Unassigned      4DFF
+       # 0033 0031 65E5
+@@     3400    CJK Unified Ideographs Extension A      4DB5
 @@     4E00    CJK Unified Ideographs  9FA5
-@@     9FA6    Unassigned      ABFF
+@@     A000    Yi Syllables    A48F
+@              Syllables
+A000   YI SYLLABLE IT
+A001   YI SYLLABLE IX
+A002   YI SYLLABLE I
+A003   YI SYLLABLE IP
+A004   YI SYLLABLE IET
+A005   YI SYLLABLE IEX
+A006   YI SYLLABLE IE
+A007   YI SYLLABLE IEP
+A008   YI SYLLABLE AT
+A009   YI SYLLABLE AX
+A00A   YI SYLLABLE A
+A00B   YI SYLLABLE AP
+A00C   YI SYLLABLE UOX
+A00D   YI SYLLABLE UO
+A00E   YI SYLLABLE UOP
+A00F   YI SYLLABLE OT
+A010   YI SYLLABLE OX
+A011   YI SYLLABLE O
+A012   YI SYLLABLE OP
+A013   YI SYLLABLE EX
+A014   YI SYLLABLE E
+A015   YI SYLLABLE WU
+A016   YI SYLLABLE BIT
+A017   YI SYLLABLE BIX
+A018   YI SYLLABLE BI
+A019   YI SYLLABLE BIP
+A01A   YI SYLLABLE BIET
+A01B   YI SYLLABLE BIEX
+A01C   YI SYLLABLE BIE
+A01D   YI SYLLABLE BIEP
+A01E   YI SYLLABLE BAT
+A01F   YI SYLLABLE BAX
+A020   YI SYLLABLE BA
+A021   YI SYLLABLE BAP
+A022   YI SYLLABLE BUOX
+A023   YI SYLLABLE BUO
+A024   YI SYLLABLE BUOP
+A025   YI SYLLABLE BOT
+A026   YI SYLLABLE BOX
+A027   YI SYLLABLE BO
+A028   YI SYLLABLE BOP
+A029   YI SYLLABLE BEX
+A02A   YI SYLLABLE BE
+A02B   YI SYLLABLE BEP
+A02C   YI SYLLABLE BUT
+A02D   YI SYLLABLE BUX
+A02E   YI SYLLABLE BU
+A02F   YI SYLLABLE BUP
+A030   YI SYLLABLE BURX
+A031   YI SYLLABLE BUR
+A032   YI SYLLABLE BYT
+A033   YI SYLLABLE BYX
+A034   YI SYLLABLE BY
+A035   YI SYLLABLE BYP
+A036   YI SYLLABLE BYRX
+A037   YI SYLLABLE BYR
+A038   YI SYLLABLE PIT
+A039   YI SYLLABLE PIX
+A03A   YI SYLLABLE PI
+A03B   YI SYLLABLE PIP
+A03C   YI SYLLABLE PIEX
+A03D   YI SYLLABLE PIE
+A03E   YI SYLLABLE PIEP
+A03F   YI SYLLABLE PAT
+A040   YI SYLLABLE PAX
+A041   YI SYLLABLE PA
+A042   YI SYLLABLE PAP
+A043   YI SYLLABLE PUOX
+A044   YI SYLLABLE PUO
+A045   YI SYLLABLE PUOP
+A046   YI SYLLABLE POT
+A047   YI SYLLABLE POX
+A048   YI SYLLABLE PO
+A049   YI SYLLABLE POP
+A04A   YI SYLLABLE PUT
+A04B   YI SYLLABLE PUX
+A04C   YI SYLLABLE PU
+A04D   YI SYLLABLE PUP
+A04E   YI SYLLABLE PURX
+A04F   YI SYLLABLE PUR
+A050   YI SYLLABLE PYT
+A051   YI SYLLABLE PYX
+A052   YI SYLLABLE PY
+A053   YI SYLLABLE PYP
+A054   YI SYLLABLE PYRX
+A055   YI SYLLABLE PYR
+A056   YI SYLLABLE BBIT
+A057   YI SYLLABLE BBIX
+A058   YI SYLLABLE BBI
+A059   YI SYLLABLE BBIP
+A05A   YI SYLLABLE BBIET
+A05B   YI SYLLABLE BBIEX
+A05C   YI SYLLABLE BBIE
+A05D   YI SYLLABLE BBIEP
+A05E   YI SYLLABLE BBAT
+A05F   YI SYLLABLE BBAX
+A060   YI SYLLABLE BBA
+A061   YI SYLLABLE BBAP
+A062   YI SYLLABLE BBUOX
+A063   YI SYLLABLE BBUO
+A064   YI SYLLABLE BBUOP
+A065   YI SYLLABLE BBOT
+A066   YI SYLLABLE BBOX
+A067   YI SYLLABLE BBO
+A068   YI SYLLABLE BBOP
+A069   YI SYLLABLE BBEX
+A06A   YI SYLLABLE BBE
+A06B   YI SYLLABLE BBEP
+A06C   YI SYLLABLE BBUT
+A06D   YI SYLLABLE BBUX
+A06E   YI SYLLABLE BBU
+A06F   YI SYLLABLE BBUP
+A070   YI SYLLABLE BBURX
+A071   YI SYLLABLE BBUR
+A072   YI SYLLABLE BBYT
+A073   YI SYLLABLE BBYX
+A074   YI SYLLABLE BBY
+A075   YI SYLLABLE BBYP
+A076   YI SYLLABLE NBIT
+A077   YI SYLLABLE NBIX
+A078   YI SYLLABLE NBI
+A079   YI SYLLABLE NBIP
+A07A   YI SYLLABLE NBIEX
+A07B   YI SYLLABLE NBIE
+A07C   YI SYLLABLE NBIEP
+A07D   YI SYLLABLE NBAT
+A07E   YI SYLLABLE NBAX
+A07F   YI SYLLABLE NBA
+A080   YI SYLLABLE NBAP
+A081   YI SYLLABLE NBOT
+A082   YI SYLLABLE NBOX
+A083   YI SYLLABLE NBO
+A084   YI SYLLABLE NBOP
+A085   YI SYLLABLE NBUT
+A086   YI SYLLABLE NBUX
+A087   YI SYLLABLE NBU
+A088   YI SYLLABLE NBUP
+A089   YI SYLLABLE NBURX
+A08A   YI SYLLABLE NBUR
+A08B   YI SYLLABLE NBYT
+A08C   YI SYLLABLE NBYX
+A08D   YI SYLLABLE NBY
+A08E   YI SYLLABLE NBYP
+A08F   YI SYLLABLE NBYRX
+A090   YI SYLLABLE NBYR
+A091   YI SYLLABLE HMIT
+A092   YI SYLLABLE HMIX
+A093   YI SYLLABLE HMI
+A094   YI SYLLABLE HMIP
+A095   YI SYLLABLE HMIEX
+A096   YI SYLLABLE HMIE
+A097   YI SYLLABLE HMIEP
+A098   YI SYLLABLE HMAT
+A099   YI SYLLABLE HMAX
+A09A   YI SYLLABLE HMA
+A09B   YI SYLLABLE HMAP
+A09C   YI SYLLABLE HMUOX
+A09D   YI SYLLABLE HMUO
+A09E   YI SYLLABLE HMUOP
+A09F   YI SYLLABLE HMOT
+A0A0   YI SYLLABLE HMOX
+A0A1   YI SYLLABLE HMO
+A0A2   YI SYLLABLE HMOP
+A0A3   YI SYLLABLE HMUT
+A0A4   YI SYLLABLE HMUX
+A0A5   YI SYLLABLE HMU
+A0A6   YI SYLLABLE HMUP
+A0A7   YI SYLLABLE HMURX
+A0A8   YI SYLLABLE HMUR
+A0A9   YI SYLLABLE HMYX
+A0AA   YI SYLLABLE HMY
+A0AB   YI SYLLABLE HMYP
+A0AC   YI SYLLABLE HMYRX
+A0AD   YI SYLLABLE HMYR
+A0AE   YI SYLLABLE MIT
+A0AF   YI SYLLABLE MIX
+A0B0   YI SYLLABLE MI
+A0B1   YI SYLLABLE MIP
+A0B2   YI SYLLABLE MIEX
+A0B3   YI SYLLABLE MIE
+A0B4   YI SYLLABLE MIEP
+A0B5   YI SYLLABLE MAT
+A0B6   YI SYLLABLE MAX
+A0B7   YI SYLLABLE MA
+A0B8   YI SYLLABLE MAP
+A0B9   YI SYLLABLE MUOT
+A0BA   YI SYLLABLE MUOX
+A0BB   YI SYLLABLE MUO
+A0BC   YI SYLLABLE MUOP
+A0BD   YI SYLLABLE MOT
+A0BE   YI SYLLABLE MOX
+A0BF   YI SYLLABLE MO
+A0C0   YI SYLLABLE MOP
+A0C1   YI SYLLABLE MEX
+A0C2   YI SYLLABLE ME
+A0C3   YI SYLLABLE MUT
+A0C4   YI SYLLABLE MUX
+A0C5   YI SYLLABLE MU
+A0C6   YI SYLLABLE MUP
+A0C7   YI SYLLABLE MURX
+A0C8   YI SYLLABLE MUR
+A0C9   YI SYLLABLE MYT
+A0CA   YI SYLLABLE MYX
+A0CB   YI SYLLABLE MY
+A0CC   YI SYLLABLE MYP
+A0CD   YI SYLLABLE FIT
+A0CE   YI SYLLABLE FIX
+A0CF   YI SYLLABLE FI
+A0D0   YI SYLLABLE FIP
+A0D1   YI SYLLABLE FAT
+A0D2   YI SYLLABLE FAX
+A0D3   YI SYLLABLE FA
+A0D4   YI SYLLABLE FAP
+A0D5   YI SYLLABLE FOX
+A0D6   YI SYLLABLE FO
+A0D7   YI SYLLABLE FOP
+A0D8   YI SYLLABLE FUT
+A0D9   YI SYLLABLE FUX
+A0DA   YI SYLLABLE FU
+A0DB   YI SYLLABLE FUP
+A0DC   YI SYLLABLE FURX
+A0DD   YI SYLLABLE FUR
+A0DE   YI SYLLABLE FYT
+A0DF   YI SYLLABLE FYX
+A0E0   YI SYLLABLE FY
+A0E1   YI SYLLABLE FYP
+A0E2   YI SYLLABLE VIT
+A0E3   YI SYLLABLE VIX
+A0E4   YI SYLLABLE VI
+A0E5   YI SYLLABLE VIP
+A0E6   YI SYLLABLE VIET
+A0E7   YI SYLLABLE VIEX
+A0E8   YI SYLLABLE VIE
+A0E9   YI SYLLABLE VIEP
+A0EA   YI SYLLABLE VAT
+A0EB   YI SYLLABLE VAX
+A0EC   YI SYLLABLE VA
+A0ED   YI SYLLABLE VAP
+A0EE   YI SYLLABLE VOT
+A0EF   YI SYLLABLE VOX
+A0F0   YI SYLLABLE VO
+A0F1   YI SYLLABLE VOP
+A0F2   YI SYLLABLE VEX
+A0F3   YI SYLLABLE VEP
+A0F4   YI SYLLABLE VUT
+A0F5   YI SYLLABLE VUX
+A0F6   YI SYLLABLE VU
+A0F7   YI SYLLABLE VUP
+A0F8   YI SYLLABLE VURX
+A0F9   YI SYLLABLE VUR
+A0FA   YI SYLLABLE VYT
+A0FB   YI SYLLABLE VYX
+A0FC   YI SYLLABLE VY
+A0FD   YI SYLLABLE VYP
+A0FE   YI SYLLABLE VYRX
+A0FF   YI SYLLABLE VYR
+A100   YI SYLLABLE DIT
+A101   YI SYLLABLE DIX
+A102   YI SYLLABLE DI
+A103   YI SYLLABLE DIP
+A104   YI SYLLABLE DIEX
+A105   YI SYLLABLE DIE
+A106   YI SYLLABLE DIEP
+A107   YI SYLLABLE DAT
+A108   YI SYLLABLE DAX
+A109   YI SYLLABLE DA
+A10A   YI SYLLABLE DAP
+A10B   YI SYLLABLE DUOX
+A10C   YI SYLLABLE DUO
+A10D   YI SYLLABLE DOT
+A10E   YI SYLLABLE DOX
+A10F   YI SYLLABLE DO
+A110   YI SYLLABLE DOP
+A111   YI SYLLABLE DEX
+A112   YI SYLLABLE DE
+A113   YI SYLLABLE DEP
+A114   YI SYLLABLE DUT
+A115   YI SYLLABLE DUX
+A116   YI SYLLABLE DU
+A117   YI SYLLABLE DUP
+A118   YI SYLLABLE DURX
+A119   YI SYLLABLE DUR
+A11A   YI SYLLABLE TIT
+A11B   YI SYLLABLE TIX
+A11C   YI SYLLABLE TI
+A11D   YI SYLLABLE TIP
+A11E   YI SYLLABLE TIEX
+A11F   YI SYLLABLE TIE
+A120   YI SYLLABLE TIEP
+A121   YI SYLLABLE TAT
+A122   YI SYLLABLE TAX
+A123   YI SYLLABLE TA
+A124   YI SYLLABLE TAP
+A125   YI SYLLABLE TUOT
+A126   YI SYLLABLE TUOX
+A127   YI SYLLABLE TUO
+A128   YI SYLLABLE TUOP
+A129   YI SYLLABLE TOT
+A12A   YI SYLLABLE TOX
+A12B   YI SYLLABLE TO
+A12C   YI SYLLABLE TOP
+A12D   YI SYLLABLE TEX
+A12E   YI SYLLABLE TE
+A12F   YI SYLLABLE TEP
+A130   YI SYLLABLE TUT
+A131   YI SYLLABLE TUX
+A132   YI SYLLABLE TU
+A133   YI SYLLABLE TUP
+A134   YI SYLLABLE TURX
+A135   YI SYLLABLE TUR
+A136   YI SYLLABLE DDIT
+A137   YI SYLLABLE DDIX
+A138   YI SYLLABLE DDI
+A139   YI SYLLABLE DDIP
+A13A   YI SYLLABLE DDIEX
+A13B   YI SYLLABLE DDIE
+A13C   YI SYLLABLE DDIEP
+A13D   YI SYLLABLE DDAT
+A13E   YI SYLLABLE DDAX
+A13F   YI SYLLABLE DDA
+A140   YI SYLLABLE DDAP
+A141   YI SYLLABLE DDUOX
+A142   YI SYLLABLE DDUO
+A143   YI SYLLABLE DDUOP
+A144   YI SYLLABLE DDOT
+A145   YI SYLLABLE DDOX
+A146   YI SYLLABLE DDO
+A147   YI SYLLABLE DDOP
+A148   YI SYLLABLE DDEX
+A149   YI SYLLABLE DDE
+A14A   YI SYLLABLE DDEP
+A14B   YI SYLLABLE DDUT
+A14C   YI SYLLABLE DDUX
+A14D   YI SYLLABLE DDU
+A14E   YI SYLLABLE DDUP
+A14F   YI SYLLABLE DDURX
+A150   YI SYLLABLE DDUR
+A151   YI SYLLABLE NDIT
+A152   YI SYLLABLE NDIX
+A153   YI SYLLABLE NDI
+A154   YI SYLLABLE NDIP
+A155   YI SYLLABLE NDIEX
+A156   YI SYLLABLE NDIE
+A157   YI SYLLABLE NDAT
+A158   YI SYLLABLE NDAX
+A159   YI SYLLABLE NDA
+A15A   YI SYLLABLE NDAP
+A15B   YI SYLLABLE NDOT
+A15C   YI SYLLABLE NDOX
+A15D   YI SYLLABLE NDO
+A15E   YI SYLLABLE NDOP
+A15F   YI SYLLABLE NDEX
+A160   YI SYLLABLE NDE
+A161   YI SYLLABLE NDEP
+A162   YI SYLLABLE NDUT
+A163   YI SYLLABLE NDUX
+A164   YI SYLLABLE NDU
+A165   YI SYLLABLE NDUP
+A166   YI SYLLABLE NDURX
+A167   YI SYLLABLE NDUR
+A168   YI SYLLABLE HNIT
+A169   YI SYLLABLE HNIX
+A16A   YI SYLLABLE HNI
+A16B   YI SYLLABLE HNIP
+A16C   YI SYLLABLE HNIET
+A16D   YI SYLLABLE HNIEX
+A16E   YI SYLLABLE HNIE
+A16F   YI SYLLABLE HNIEP
+A170   YI SYLLABLE HNAT
+A171   YI SYLLABLE HNAX
+A172   YI SYLLABLE HNA
+A173   YI SYLLABLE HNAP
+A174   YI SYLLABLE HNUOX
+A175   YI SYLLABLE HNUO
+A176   YI SYLLABLE HNOT
+A177   YI SYLLABLE HNOX
+A178   YI SYLLABLE HNOP
+A179   YI SYLLABLE HNEX
+A17A   YI SYLLABLE HNE
+A17B   YI SYLLABLE HNEP
+A17C   YI SYLLABLE HNUT
+A17D   YI SYLLABLE NIT
+A17E   YI SYLLABLE NIX
+A17F   YI SYLLABLE NI
+A180   YI SYLLABLE NIP
+A181   YI SYLLABLE NIEX
+A182   YI SYLLABLE NIE
+A183   YI SYLLABLE NIEP
+A184   YI SYLLABLE NAX
+A185   YI SYLLABLE NA
+A186   YI SYLLABLE NAP
+A187   YI SYLLABLE NUOX
+A188   YI SYLLABLE NUO
+A189   YI SYLLABLE NUOP
+A18A   YI SYLLABLE NOT
+A18B   YI SYLLABLE NOX
+A18C   YI SYLLABLE NO
+A18D   YI SYLLABLE NOP
+A18E   YI SYLLABLE NEX
+A18F   YI SYLLABLE NE
+A190   YI SYLLABLE NEP
+A191   YI SYLLABLE NUT
+A192   YI SYLLABLE NUX
+A193   YI SYLLABLE NU
+A194   YI SYLLABLE NUP
+A195   YI SYLLABLE NURX
+A196   YI SYLLABLE NUR
+A197   YI SYLLABLE HLIT
+A198   YI SYLLABLE HLIX
+A199   YI SYLLABLE HLI
+A19A   YI SYLLABLE HLIP
+A19B   YI SYLLABLE HLIEX
+A19C   YI SYLLABLE HLIE
+A19D   YI SYLLABLE HLIEP
+A19E   YI SYLLABLE HLAT
+A19F   YI SYLLABLE HLAX
+A1A0   YI SYLLABLE HLA
+A1A1   YI SYLLABLE HLAP
+A1A2   YI SYLLABLE HLUOX
+A1A3   YI SYLLABLE HLUO
+A1A4   YI SYLLABLE HLUOP
+A1A5   YI SYLLABLE HLOX
+A1A6   YI SYLLABLE HLO
+A1A7   YI SYLLABLE HLOP
+A1A8   YI SYLLABLE HLEX
+A1A9   YI SYLLABLE HLE
+A1AA   YI SYLLABLE HLEP
+A1AB   YI SYLLABLE HLUT
+A1AC   YI SYLLABLE HLUX
+A1AD   YI SYLLABLE HLU
+A1AE   YI SYLLABLE HLUP
+A1AF   YI SYLLABLE HLURX
+A1B0   YI SYLLABLE HLUR
+A1B1   YI SYLLABLE HLYT
+A1B2   YI SYLLABLE HLYX
+A1B3   YI SYLLABLE HLY
+A1B4   YI SYLLABLE HLYP
+A1B5   YI SYLLABLE HLYRX
+A1B6   YI SYLLABLE HLYR
+A1B7   YI SYLLABLE LIT
+A1B8   YI SYLLABLE LIX
+A1B9   YI SYLLABLE LI
+A1BA   YI SYLLABLE LIP
+A1BB   YI SYLLABLE LIET
+A1BC   YI SYLLABLE LIEX
+A1BD   YI SYLLABLE LIE
+A1BE   YI SYLLABLE LIEP
+A1BF   YI SYLLABLE LAT
+A1C0   YI SYLLABLE LAX
+A1C1   YI SYLLABLE LA
+A1C2   YI SYLLABLE LAP
+A1C3   YI SYLLABLE LUOT
+A1C4   YI SYLLABLE LUOX
+A1C5   YI SYLLABLE LUO
+A1C6   YI SYLLABLE LUOP
+A1C7   YI SYLLABLE LOT
+A1C8   YI SYLLABLE LOX
+A1C9   YI SYLLABLE LO
+A1CA   YI SYLLABLE LOP
+A1CB   YI SYLLABLE LEX
+A1CC   YI SYLLABLE LE
+A1CD   YI SYLLABLE LEP
+A1CE   YI SYLLABLE LUT
+A1CF   YI SYLLABLE LUX
+A1D0   YI SYLLABLE LU
+A1D1   YI SYLLABLE LUP
+A1D2   YI SYLLABLE LURX
+A1D3   YI SYLLABLE LUR
+A1D4   YI SYLLABLE LYT
+A1D5   YI SYLLABLE LYX
+A1D6   YI SYLLABLE LY
+A1D7   YI SYLLABLE LYP
+A1D8   YI SYLLABLE LYRX
+A1D9   YI SYLLABLE LYR
+A1DA   YI SYLLABLE GIT
+A1DB   YI SYLLABLE GIX
+A1DC   YI SYLLABLE GI
+A1DD   YI SYLLABLE GIP
+A1DE   YI SYLLABLE GIET
+A1DF   YI SYLLABLE GIEX
+A1E0   YI SYLLABLE GIE
+A1E1   YI SYLLABLE GIEP
+A1E2   YI SYLLABLE GAT
+A1E3   YI SYLLABLE GAX
+A1E4   YI SYLLABLE GA
+A1E5   YI SYLLABLE GAP
+A1E6   YI SYLLABLE GUOT
+A1E7   YI SYLLABLE GUOX
+A1E8   YI SYLLABLE GUO
+A1E9   YI SYLLABLE GUOP
+A1EA   YI SYLLABLE GOT
+A1EB   YI SYLLABLE GOX
+A1EC   YI SYLLABLE GO
+A1ED   YI SYLLABLE GOP
+A1EE   YI SYLLABLE GET
+A1EF   YI SYLLABLE GEX
+A1F0   YI SYLLABLE GE
+A1F1   YI SYLLABLE GEP
+A1F2   YI SYLLABLE GUT
+A1F3   YI SYLLABLE GUX
+A1F4   YI SYLLABLE GU
+A1F5   YI SYLLABLE GUP
+A1F6   YI SYLLABLE GURX
+A1F7   YI SYLLABLE GUR
+A1F8   YI SYLLABLE KIT
+A1F9   YI SYLLABLE KIX
+A1FA   YI SYLLABLE KI
+A1FB   YI SYLLABLE KIP
+A1FC   YI SYLLABLE KIEX
+A1FD   YI SYLLABLE KIE
+A1FE   YI SYLLABLE KIEP
+A1FF   YI SYLLABLE KAT
+A200   YI SYLLABLE KAX
+A201   YI SYLLABLE KA
+A202   YI SYLLABLE KAP
+A203   YI SYLLABLE KUOX
+A204   YI SYLLABLE KUO
+A205   YI SYLLABLE KUOP
+A206   YI SYLLABLE KOT
+A207   YI SYLLABLE KOX
+A208   YI SYLLABLE KO
+A209   YI SYLLABLE KOP
+A20A   YI SYLLABLE KET
+A20B   YI SYLLABLE KEX
+A20C   YI SYLLABLE KE
+A20D   YI SYLLABLE KEP
+A20E   YI SYLLABLE KUT
+A20F   YI SYLLABLE KUX
+A210   YI SYLLABLE KU
+A211   YI SYLLABLE KUP
+A212   YI SYLLABLE KURX
+A213   YI SYLLABLE KUR
+A214   YI SYLLABLE GGIT
+A215   YI SYLLABLE GGIX
+A216   YI SYLLABLE GGI
+A217   YI SYLLABLE GGIEX
+A218   YI SYLLABLE GGIE
+A219   YI SYLLABLE GGIEP
+A21A   YI SYLLABLE GGAT
+A21B   YI SYLLABLE GGAX
+A21C   YI SYLLABLE GGA
+A21D   YI SYLLABLE GGAP
+A21E   YI SYLLABLE GGUOT
+A21F   YI SYLLABLE GGUOX
+A220   YI SYLLABLE GGUO
+A221   YI SYLLABLE GGUOP
+A222   YI SYLLABLE GGOT
+A223   YI SYLLABLE GGOX
+A224   YI SYLLABLE GGO
+A225   YI SYLLABLE GGOP
+A226   YI SYLLABLE GGET
+A227   YI SYLLABLE GGEX
+A228   YI SYLLABLE GGE
+A229   YI SYLLABLE GGEP
+A22A   YI SYLLABLE GGUT
+A22B   YI SYLLABLE GGUX
+A22C   YI SYLLABLE GGU
+A22D   YI SYLLABLE GGUP
+A22E   YI SYLLABLE GGURX
+A22F   YI SYLLABLE GGUR
+A230   YI SYLLABLE MGIEX
+A231   YI SYLLABLE MGIE
+A232   YI SYLLABLE MGAT
+A233   YI SYLLABLE MGAX
+A234   YI SYLLABLE MGA
+A235   YI SYLLABLE MGAP
+A236   YI SYLLABLE MGUOX
+A237   YI SYLLABLE MGUO
+A238   YI SYLLABLE MGUOP
+A239   YI SYLLABLE MGOT
+A23A   YI SYLLABLE MGOX
+A23B   YI SYLLABLE MGO
+A23C   YI SYLLABLE MGOP
+A23D   YI SYLLABLE MGEX
+A23E   YI SYLLABLE MGE
+A23F   YI SYLLABLE MGEP
+A240   YI SYLLABLE MGUT
+A241   YI SYLLABLE MGUX
+A242   YI SYLLABLE MGU
+A243   YI SYLLABLE MGUP
+A244   YI SYLLABLE MGURX
+A245   YI SYLLABLE MGUR
+A246   YI SYLLABLE HXIT
+A247   YI SYLLABLE HXIX
+A248   YI SYLLABLE HXI
+A249   YI SYLLABLE HXIP
+A24A   YI SYLLABLE HXIET
+A24B   YI SYLLABLE HXIEX
+A24C   YI SYLLABLE HXIE
+A24D   YI SYLLABLE HXIEP
+A24E   YI SYLLABLE HXAT
+A24F   YI SYLLABLE HXAX
+A250   YI SYLLABLE HXA
+A251   YI SYLLABLE HXAP
+A252   YI SYLLABLE HXUOT
+A253   YI SYLLABLE HXUOX
+A254   YI SYLLABLE HXUO
+A255   YI SYLLABLE HXUOP
+A256   YI SYLLABLE HXOT
+A257   YI SYLLABLE HXOX
+A258   YI SYLLABLE HXO
+A259   YI SYLLABLE HXOP
+A25A   YI SYLLABLE HXEX
+A25B   YI SYLLABLE HXE
+A25C   YI SYLLABLE HXEP
+A25D   YI SYLLABLE NGIEX
+A25E   YI SYLLABLE NGIE
+A25F   YI SYLLABLE NGIEP
+A260   YI SYLLABLE NGAT
+A261   YI SYLLABLE NGAX
+A262   YI SYLLABLE NGA
+A263   YI SYLLABLE NGAP
+A264   YI SYLLABLE NGUOT
+A265   YI SYLLABLE NGUOX
+A266   YI SYLLABLE NGUO
+A267   YI SYLLABLE NGOT
+A268   YI SYLLABLE NGOX
+A269   YI SYLLABLE NGO
+A26A   YI SYLLABLE NGOP
+A26B   YI SYLLABLE NGEX
+A26C   YI SYLLABLE NGE
+A26D   YI SYLLABLE NGEP
+A26E   YI SYLLABLE HIT
+A26F   YI SYLLABLE HIEX
+A270   YI SYLLABLE HIE
+A271   YI SYLLABLE HAT
+A272   YI SYLLABLE HAX
+A273   YI SYLLABLE HA
+A274   YI SYLLABLE HAP
+A275   YI SYLLABLE HUOT
+A276   YI SYLLABLE HUOX
+A277   YI SYLLABLE HUO
+A278   YI SYLLABLE HUOP
+A279   YI SYLLABLE HOT
+A27A   YI SYLLABLE HOX
+A27B   YI SYLLABLE HO
+A27C   YI SYLLABLE HOP
+A27D   YI SYLLABLE HEX
+A27E   YI SYLLABLE HE
+A27F   YI SYLLABLE HEP
+A280   YI SYLLABLE WAT
+A281   YI SYLLABLE WAX
+A282   YI SYLLABLE WA
+A283   YI SYLLABLE WAP
+A284   YI SYLLABLE WUOX
+A285   YI SYLLABLE WUO
+A286   YI SYLLABLE WUOP
+A287   YI SYLLABLE WOX
+A288   YI SYLLABLE WO
+A289   YI SYLLABLE WOP
+A28A   YI SYLLABLE WEX
+A28B   YI SYLLABLE WE
+A28C   YI SYLLABLE WEP
+A28D   YI SYLLABLE ZIT
+A28E   YI SYLLABLE ZIX
+A28F   YI SYLLABLE ZI
+A290   YI SYLLABLE ZIP
+A291   YI SYLLABLE ZIEX
+A292   YI SYLLABLE ZIE
+A293   YI SYLLABLE ZIEP
+A294   YI SYLLABLE ZAT
+A295   YI SYLLABLE ZAX
+A296   YI SYLLABLE ZA
+A297   YI SYLLABLE ZAP
+A298   YI SYLLABLE ZUOX
+A299   YI SYLLABLE ZUO
+A29A   YI SYLLABLE ZUOP
+A29B   YI SYLLABLE ZOT
+A29C   YI SYLLABLE ZOX
+A29D   YI SYLLABLE ZO
+A29E   YI SYLLABLE ZOP
+A29F   YI SYLLABLE ZEX
+A2A0   YI SYLLABLE ZE
+A2A1   YI SYLLABLE ZEP
+A2A2   YI SYLLABLE ZUT
+A2A3   YI SYLLABLE ZUX
+A2A4   YI SYLLABLE ZU
+A2A5   YI SYLLABLE ZUP
+A2A6   YI SYLLABLE ZURX
+A2A7   YI SYLLABLE ZUR
+A2A8   YI SYLLABLE ZYT
+A2A9   YI SYLLABLE ZYX
+A2AA   YI SYLLABLE ZY
+A2AB   YI SYLLABLE ZYP
+A2AC   YI SYLLABLE ZYRX
+A2AD   YI SYLLABLE ZYR
+A2AE   YI SYLLABLE CIT
+A2AF   YI SYLLABLE CIX
+A2B0   YI SYLLABLE CI
+A2B1   YI SYLLABLE CIP
+A2B2   YI SYLLABLE CIET
+A2B3   YI SYLLABLE CIEX
+A2B4   YI SYLLABLE CIE
+A2B5   YI SYLLABLE CIEP
+A2B6   YI SYLLABLE CAT
+A2B7   YI SYLLABLE CAX
+A2B8   YI SYLLABLE CA
+A2B9   YI SYLLABLE CAP
+A2BA   YI SYLLABLE CUOX
+A2BB   YI SYLLABLE CUO
+A2BC   YI SYLLABLE CUOP
+A2BD   YI SYLLABLE COT
+A2BE   YI SYLLABLE COX
+A2BF   YI SYLLABLE CO
+A2C0   YI SYLLABLE COP
+A2C1   YI SYLLABLE CEX
+A2C2   YI SYLLABLE CE
+A2C3   YI SYLLABLE CEP
+A2C4   YI SYLLABLE CUT
+A2C5   YI SYLLABLE CUX
+A2C6   YI SYLLABLE CU
+A2C7   YI SYLLABLE CUP
+A2C8   YI SYLLABLE CURX
+A2C9   YI SYLLABLE CUR
+A2CA   YI SYLLABLE CYT
+A2CB   YI SYLLABLE CYX
+A2CC   YI SYLLABLE CY
+A2CD   YI SYLLABLE CYP
+A2CE   YI SYLLABLE CYRX
+A2CF   YI SYLLABLE CYR
+A2D0   YI SYLLABLE ZZIT
+A2D1   YI SYLLABLE ZZIX
+A2D2   YI SYLLABLE ZZI
+A2D3   YI SYLLABLE ZZIP
+A2D4   YI SYLLABLE ZZIET
+A2D5   YI SYLLABLE ZZIEX
+A2D6   YI SYLLABLE ZZIE
+A2D7   YI SYLLABLE ZZIEP
+A2D8   YI SYLLABLE ZZAT
+A2D9   YI SYLLABLE ZZAX
+A2DA   YI SYLLABLE ZZA
+A2DB   YI SYLLABLE ZZAP
+A2DC   YI SYLLABLE ZZOX
+A2DD   YI SYLLABLE ZZO
+A2DE   YI SYLLABLE ZZOP
+A2DF   YI SYLLABLE ZZEX
+A2E0   YI SYLLABLE ZZE
+A2E1   YI SYLLABLE ZZEP
+A2E2   YI SYLLABLE ZZUX
+A2E3   YI SYLLABLE ZZU
+A2E4   YI SYLLABLE ZZUP
+A2E5   YI SYLLABLE ZZURX
+A2E6   YI SYLLABLE ZZUR
+A2E7   YI SYLLABLE ZZYT
+A2E8   YI SYLLABLE ZZYX
+A2E9   YI SYLLABLE ZZY
+A2EA   YI SYLLABLE ZZYP
+A2EB   YI SYLLABLE ZZYRX
+A2EC   YI SYLLABLE ZZYR
+A2ED   YI SYLLABLE NZIT
+A2EE   YI SYLLABLE NZIX
+A2EF   YI SYLLABLE NZI
+A2F0   YI SYLLABLE NZIP
+A2F1   YI SYLLABLE NZIEX
+A2F2   YI SYLLABLE NZIE
+A2F3   YI SYLLABLE NZIEP
+A2F4   YI SYLLABLE NZAT
+A2F5   YI SYLLABLE NZAX
+A2F6   YI SYLLABLE NZA
+A2F7   YI SYLLABLE NZAP
+A2F8   YI SYLLABLE NZUOX
+A2F9   YI SYLLABLE NZUO
+A2FA   YI SYLLABLE NZOX
+A2FB   YI SYLLABLE NZOP
+A2FC   YI SYLLABLE NZEX
+A2FD   YI SYLLABLE NZE
+A2FE   YI SYLLABLE NZUX
+A2FF   YI SYLLABLE NZU
+A300   YI SYLLABLE NZUP
+A301   YI SYLLABLE NZURX
+A302   YI SYLLABLE NZUR
+A303   YI SYLLABLE NZYT
+A304   YI SYLLABLE NZYX
+A305   YI SYLLABLE NZY
+A306   YI SYLLABLE NZYP
+A307   YI SYLLABLE NZYRX
+A308   YI SYLLABLE NZYR
+A309   YI SYLLABLE SIT
+A30A   YI SYLLABLE SIX
+A30B   YI SYLLABLE SI
+A30C   YI SYLLABLE SIP
+A30D   YI SYLLABLE SIEX
+A30E   YI SYLLABLE SIE
+A30F   YI SYLLABLE SIEP
+A310   YI SYLLABLE SAT
+A311   YI SYLLABLE SAX
+A312   YI SYLLABLE SA
+A313   YI SYLLABLE SAP
+A314   YI SYLLABLE SUOX
+A315   YI SYLLABLE SUO
+A316   YI SYLLABLE SUOP
+A317   YI SYLLABLE SOT
+A318   YI SYLLABLE SOX
+A319   YI SYLLABLE SO
+A31A   YI SYLLABLE SOP
+A31B   YI SYLLABLE SEX
+A31C   YI SYLLABLE SE
+A31D   YI SYLLABLE SEP
+A31E   YI SYLLABLE SUT
+A31F   YI SYLLABLE SUX
+A320   YI SYLLABLE SU
+A321   YI SYLLABLE SUP
+A322   YI SYLLABLE SURX
+A323   YI SYLLABLE SUR
+A324   YI SYLLABLE SYT
+A325   YI SYLLABLE SYX
+A326   YI SYLLABLE SY
+A327   YI SYLLABLE SYP
+A328   YI SYLLABLE SYRX
+A329   YI SYLLABLE SYR
+A32A   YI SYLLABLE SSIT
+A32B   YI SYLLABLE SSIX
+A32C   YI SYLLABLE SSI
+A32D   YI SYLLABLE SSIP
+A32E   YI SYLLABLE SSIEX
+A32F   YI SYLLABLE SSIE
+A330   YI SYLLABLE SSIEP
+A331   YI SYLLABLE SSAT
+A332   YI SYLLABLE SSAX
+A333   YI SYLLABLE SSA
+A334   YI SYLLABLE SSAP
+A335   YI SYLLABLE SSOT
+A336   YI SYLLABLE SSOX
+A337   YI SYLLABLE SSO
+A338   YI SYLLABLE SSOP
+A339   YI SYLLABLE SSEX
+A33A   YI SYLLABLE SSE
+A33B   YI SYLLABLE SSEP
+A33C   YI SYLLABLE SSUT
+A33D   YI SYLLABLE SSUX
+A33E   YI SYLLABLE SSU
+A33F   YI SYLLABLE SSUP
+A340   YI SYLLABLE SSYT
+A341   YI SYLLABLE SSYX
+A342   YI SYLLABLE SSY
+A343   YI SYLLABLE SSYP
+A344   YI SYLLABLE SSYRX
+A345   YI SYLLABLE SSYR
+A346   YI SYLLABLE ZHAT
+A347   YI SYLLABLE ZHAX
+A348   YI SYLLABLE ZHA
+A349   YI SYLLABLE ZHAP
+A34A   YI SYLLABLE ZHUOX
+A34B   YI SYLLABLE ZHUO
+A34C   YI SYLLABLE ZHUOP
+A34D   YI SYLLABLE ZHOT
+A34E   YI SYLLABLE ZHOX
+A34F   YI SYLLABLE ZHO
+A350   YI SYLLABLE ZHOP
+A351   YI SYLLABLE ZHET
+A352   YI SYLLABLE ZHEX
+A353   YI SYLLABLE ZHE
+A354   YI SYLLABLE ZHEP
+A355   YI SYLLABLE ZHUT
+A356   YI SYLLABLE ZHUX
+A357   YI SYLLABLE ZHU
+A358   YI SYLLABLE ZHUP
+A359   YI SYLLABLE ZHURX
+A35A   YI SYLLABLE ZHUR
+A35B   YI SYLLABLE ZHYT
+A35C   YI SYLLABLE ZHYX
+A35D   YI SYLLABLE ZHY
+A35E   YI SYLLABLE ZHYP
+A35F   YI SYLLABLE ZHYRX
+A360   YI SYLLABLE ZHYR
+A361   YI SYLLABLE CHAT
+A362   YI SYLLABLE CHAX
+A363   YI SYLLABLE CHA
+A364   YI SYLLABLE CHAP
+A365   YI SYLLABLE CHUOT
+A366   YI SYLLABLE CHUOX
+A367   YI SYLLABLE CHUO
+A368   YI SYLLABLE CHUOP
+A369   YI SYLLABLE CHOT
+A36A   YI SYLLABLE CHOX
+A36B   YI SYLLABLE CHO
+A36C   YI SYLLABLE CHOP
+A36D   YI SYLLABLE CHET
+A36E   YI SYLLABLE CHEX
+A36F   YI SYLLABLE CHE
+A370   YI SYLLABLE CHEP
+A371   YI SYLLABLE CHUX
+A372   YI SYLLABLE CHU
+A373   YI SYLLABLE CHUP
+A374   YI SYLLABLE CHURX
+A375   YI SYLLABLE CHUR
+A376   YI SYLLABLE CHYT
+A377   YI SYLLABLE CHYX
+A378   YI SYLLABLE CHY
+A379   YI SYLLABLE CHYP
+A37A   YI SYLLABLE CHYRX
+A37B   YI SYLLABLE CHYR
+A37C   YI SYLLABLE RRAX
+A37D   YI SYLLABLE RRA
+A37E   YI SYLLABLE RRUOX
+A37F   YI SYLLABLE RRUO
+A380   YI SYLLABLE RROT
+A381   YI SYLLABLE RROX
+A382   YI SYLLABLE RRO
+A383   YI SYLLABLE RROP
+A384   YI SYLLABLE RRET
+A385   YI SYLLABLE RREX
+A386   YI SYLLABLE RRE
+A387   YI SYLLABLE RREP
+A388   YI SYLLABLE RRUT
+A389   YI SYLLABLE RRUX
+A38A   YI SYLLABLE RRU
+A38B   YI SYLLABLE RRUP
+A38C   YI SYLLABLE RRURX
+A38D   YI SYLLABLE RRUR
+A38E   YI SYLLABLE RRYT
+A38F   YI SYLLABLE RRYX
+A390   YI SYLLABLE RRY
+A391   YI SYLLABLE RRYP
+A392   YI SYLLABLE RRYRX
+A393   YI SYLLABLE RRYR
+A394   YI SYLLABLE NRAT
+A395   YI SYLLABLE NRAX
+A396   YI SYLLABLE NRA
+A397   YI SYLLABLE NRAP
+A398   YI SYLLABLE NROX
+A399   YI SYLLABLE NRO
+A39A   YI SYLLABLE NROP
+A39B   YI SYLLABLE NRET
+A39C   YI SYLLABLE NREX
+A39D   YI SYLLABLE NRE
+A39E   YI SYLLABLE NREP
+A39F   YI SYLLABLE NRUT
+A3A0   YI SYLLABLE NRUX
+A3A1   YI SYLLABLE NRU
+A3A2   YI SYLLABLE NRUP
+A3A3   YI SYLLABLE NRURX
+A3A4   YI SYLLABLE NRUR
+A3A5   YI SYLLABLE NRYT
+A3A6   YI SYLLABLE NRYX
+A3A7   YI SYLLABLE NRY
+A3A8   YI SYLLABLE NRYP
+A3A9   YI SYLLABLE NRYRX
+A3AA   YI SYLLABLE NRYR
+A3AB   YI SYLLABLE SHAT
+A3AC   YI SYLLABLE SHAX
+A3AD   YI SYLLABLE SHA
+A3AE   YI SYLLABLE SHAP
+A3AF   YI SYLLABLE SHUOX
+A3B0   YI SYLLABLE SHUO
+A3B1   YI SYLLABLE SHUOP
+A3B2   YI SYLLABLE SHOT
+A3B3   YI SYLLABLE SHOX
+A3B4   YI SYLLABLE SHO
+A3B5   YI SYLLABLE SHOP
+A3B6   YI SYLLABLE SHET
+A3B7   YI SYLLABLE SHEX
+A3B8   YI SYLLABLE SHE
+A3B9   YI SYLLABLE SHEP
+A3BA   YI SYLLABLE SHUT
+A3BB   YI SYLLABLE SHUX
+A3BC   YI SYLLABLE SHU
+A3BD   YI SYLLABLE SHUP
+A3BE   YI SYLLABLE SHURX
+A3BF   YI SYLLABLE SHUR
+A3C0   YI SYLLABLE SHYT
+A3C1   YI SYLLABLE SHYX
+A3C2   YI SYLLABLE SHY
+A3C3   YI SYLLABLE SHYP
+A3C4   YI SYLLABLE SHYRX
+A3C5   YI SYLLABLE SHYR
+A3C6   YI SYLLABLE RAT
+A3C7   YI SYLLABLE RAX
+A3C8   YI SYLLABLE RA
+A3C9   YI SYLLABLE RAP
+A3CA   YI SYLLABLE RUOX
+A3CB   YI SYLLABLE RUO
+A3CC   YI SYLLABLE RUOP
+A3CD   YI SYLLABLE ROT
+A3CE   YI SYLLABLE ROX
+A3CF   YI SYLLABLE RO
+A3D0   YI SYLLABLE ROP
+A3D1   YI SYLLABLE REX
+A3D2   YI SYLLABLE RE
+A3D3   YI SYLLABLE REP
+A3D4   YI SYLLABLE RUT
+A3D5   YI SYLLABLE RUX
+A3D6   YI SYLLABLE RU
+A3D7   YI SYLLABLE RUP
+A3D8   YI SYLLABLE RURX
+A3D9   YI SYLLABLE RUR
+A3DA   YI SYLLABLE RYT
+A3DB   YI SYLLABLE RYX
+A3DC   YI SYLLABLE RY
+A3DD   YI SYLLABLE RYP
+A3DE   YI SYLLABLE RYRX
+A3DF   YI SYLLABLE RYR
+A3E0   YI SYLLABLE JIT
+A3E1   YI SYLLABLE JIX
+A3E2   YI SYLLABLE JI
+A3E3   YI SYLLABLE JIP
+A3E4   YI SYLLABLE JIET
+A3E5   YI SYLLABLE JIEX
+A3E6   YI SYLLABLE JIE
+A3E7   YI SYLLABLE JIEP
+A3E8   YI SYLLABLE JUOT
+A3E9   YI SYLLABLE JUOX
+A3EA   YI SYLLABLE JUO
+A3EB   YI SYLLABLE JUOP
+A3EC   YI SYLLABLE JOT
+A3ED   YI SYLLABLE JOX
+A3EE   YI SYLLABLE JO
+A3EF   YI SYLLABLE JOP
+A3F0   YI SYLLABLE JUT
+A3F1   YI SYLLABLE JUX
+A3F2   YI SYLLABLE JU
+A3F3   YI SYLLABLE JUP
+A3F4   YI SYLLABLE JURX
+A3F5   YI SYLLABLE JUR
+A3F6   YI SYLLABLE JYT
+A3F7   YI SYLLABLE JYX
+A3F8   YI SYLLABLE JY
+A3F9   YI SYLLABLE JYP
+A3FA   YI SYLLABLE JYRX
+A3FB   YI SYLLABLE JYR
+A3FC   YI SYLLABLE QIT
+A3FD   YI SYLLABLE QIX
+A3FE   YI SYLLABLE QI
+A3FF   YI SYLLABLE QIP
+A400   YI SYLLABLE QIET
+A401   YI SYLLABLE QIEX
+A402   YI SYLLABLE QIE
+A403   YI SYLLABLE QIEP
+A404   YI SYLLABLE QUOT
+A405   YI SYLLABLE QUOX
+A406   YI SYLLABLE QUO
+A407   YI SYLLABLE QUOP
+A408   YI SYLLABLE QOT
+A409   YI SYLLABLE QOX
+A40A   YI SYLLABLE QO
+A40B   YI SYLLABLE QOP
+A40C   YI SYLLABLE QUT
+A40D   YI SYLLABLE QUX
+A40E   YI SYLLABLE QU
+A40F   YI SYLLABLE QUP
+A410   YI SYLLABLE QURX
+A411   YI SYLLABLE QUR
+A412   YI SYLLABLE QYT
+A413   YI SYLLABLE QYX
+A414   YI SYLLABLE QY
+A415   YI SYLLABLE QYP
+A416   YI SYLLABLE QYRX
+A417   YI SYLLABLE QYR
+A418   YI SYLLABLE JJIT
+A419   YI SYLLABLE JJIX
+A41A   YI SYLLABLE JJI
+A41B   YI SYLLABLE JJIP
+A41C   YI SYLLABLE JJIET
+A41D   YI SYLLABLE JJIEX
+A41E   YI SYLLABLE JJIE
+A41F   YI SYLLABLE JJIEP
+A420   YI SYLLABLE JJUOX
+A421   YI SYLLABLE JJUO
+A422   YI SYLLABLE JJUOP
+A423   YI SYLLABLE JJOT
+A424   YI SYLLABLE JJOX
+A425   YI SYLLABLE JJO
+A426   YI SYLLABLE JJOP
+A427   YI SYLLABLE JJUT
+A428   YI SYLLABLE JJUX
+A429   YI SYLLABLE JJU
+A42A   YI SYLLABLE JJUP
+A42B   YI SYLLABLE JJURX
+A42C   YI SYLLABLE JJUR
+A42D   YI SYLLABLE JJYT
+A42E   YI SYLLABLE JJYX
+A42F   YI SYLLABLE JJY
+A430   YI SYLLABLE JJYP
+A431   YI SYLLABLE NJIT
+A432   YI SYLLABLE NJIX
+A433   YI SYLLABLE NJI
+A434   YI SYLLABLE NJIP
+A435   YI SYLLABLE NJIET
+A436   YI SYLLABLE NJIEX
+A437   YI SYLLABLE NJIE
+A438   YI SYLLABLE NJIEP
+A439   YI SYLLABLE NJUOX
+A43A   YI SYLLABLE NJUO
+A43B   YI SYLLABLE NJOT
+A43C   YI SYLLABLE NJOX
+A43D   YI SYLLABLE NJO
+A43E   YI SYLLABLE NJOP
+A43F   YI SYLLABLE NJUX
+A440   YI SYLLABLE NJU
+A441   YI SYLLABLE NJUP
+A442   YI SYLLABLE NJURX
+A443   YI SYLLABLE NJUR
+A444   YI SYLLABLE NJYT
+A445   YI SYLLABLE NJYX
+A446   YI SYLLABLE NJY
+A447   YI SYLLABLE NJYP
+A448   YI SYLLABLE NJYRX
+A449   YI SYLLABLE NJYR
+A44A   YI SYLLABLE NYIT
+A44B   YI SYLLABLE NYIX
+A44C   YI SYLLABLE NYI
+A44D   YI SYLLABLE NYIP
+A44E   YI SYLLABLE NYIET
+A44F   YI SYLLABLE NYIEX
+A450   YI SYLLABLE NYIE
+A451   YI SYLLABLE NYIEP
+A452   YI SYLLABLE NYUOX
+A453   YI SYLLABLE NYUO
+A454   YI SYLLABLE NYUOP
+A455   YI SYLLABLE NYOT
+A456   YI SYLLABLE NYOX
+A457   YI SYLLABLE NYO
+A458   YI SYLLABLE NYOP
+A459   YI SYLLABLE NYUT
+A45A   YI SYLLABLE NYUX
+A45B   YI SYLLABLE NYU
+A45C   YI SYLLABLE NYUP
+A45D   YI SYLLABLE XIT
+A45E   YI SYLLABLE XIX
+A45F   YI SYLLABLE XI
+A460   YI SYLLABLE XIP
+A461   YI SYLLABLE XIET
+A462   YI SYLLABLE XIEX
+A463   YI SYLLABLE XIE
+A464   YI SYLLABLE XIEP
+A465   YI SYLLABLE XUOX
+A466   YI SYLLABLE XUO
+A467   YI SYLLABLE XOT
+A468   YI SYLLABLE XOX
+A469   YI SYLLABLE XO
+A46A   YI SYLLABLE XOP
+A46B   YI SYLLABLE XYT
+A46C   YI SYLLABLE XYX
+A46D   YI SYLLABLE XY
+A46E   YI SYLLABLE XYP
+A46F   YI SYLLABLE XYRX
+A470   YI SYLLABLE XYR
+A471   YI SYLLABLE YIT
+A472   YI SYLLABLE YIX
+A473   YI SYLLABLE YI
+A474   YI SYLLABLE YIP
+A475   YI SYLLABLE YIET
+A476   YI SYLLABLE YIEX
+A477   YI SYLLABLE YIE
+A478   YI SYLLABLE YIEP
+A479   YI SYLLABLE YUOT
+A47A   YI SYLLABLE YUOX
+A47B   YI SYLLABLE YUO
+A47C   YI SYLLABLE YUOP
+A47D   YI SYLLABLE YOT
+A47E   YI SYLLABLE YOX
+A47F   YI SYLLABLE YO
+A480   YI SYLLABLE YOP
+A481   YI SYLLABLE YUT
+A482   YI SYLLABLE YUX
+A483   YI SYLLABLE YU
+A484   YI SYLLABLE YUP
+A485   YI SYLLABLE YURX
+A486   YI SYLLABLE YUR
+A487   YI SYLLABLE YYT
+A488   YI SYLLABLE YYX
+A489   YI SYLLABLE YY
+A48A   YI SYLLABLE YYP
+A48B   YI SYLLABLE YYRX
+A48C   YI SYLLABLE YYR
+@@     A490    Yi Radicals     A4CF
+@              Yi radicals
+A490   YI RADICAL QOT
+A491   YI RADICAL LI
+A492   YI RADICAL KIT
+A493   YI RADICAL NYIP
+A494   YI RADICAL CYP
+A495   YI RADICAL SSI
+A496   YI RADICAL GGOP
+A497   YI RADICAL GEP
+A498   YI RADICAL MI
+A499   YI RADICAL HXIT
+A49A   YI RADICAL LYR
+A49B   YI RADICAL BBUT
+A49C   YI RADICAL MOP
+A49D   YI RADICAL YO
+A49E   YI RADICAL PUT
+A49F   YI RADICAL HXUO
+A4A0   YI RADICAL TAT
+A4A1   YI RADICAL GA
+A4A4   YI RADICAL DDUR
+A4A5   YI RADICAL BUR
+A4A6   YI RADICAL GGUO
+A4A7   YI RADICAL NYOP
+A4A8   YI RADICAL TU
+A4A9   YI RADICAL OP
+A4AA   YI RADICAL JJUT
+A4AB   YI RADICAL ZOT
+A4AC   YI RADICAL PYT
+A4AD   YI RADICAL HMO
+A4AE   YI RADICAL YIT
+A4AF   YI RADICAL VUR
+A4B0   YI RADICAL SHY
+A4B1   YI RADICAL VEP
+A4B2   YI RADICAL ZA
+A4B3   YI RADICAL JO
+A4B5   YI RADICAL JJY
+A4B6   YI RADICAL GOT
+A4B7   YI RADICAL JJIE
+A4B8   YI RADICAL WO
+A4B9   YI RADICAL DU
+A4BA   YI RADICAL SHUR
+A4BB   YI RADICAL LIE
+A4BC   YI RADICAL CY
+A4BD   YI RADICAL CUOP
+A4BE   YI RADICAL CIP
+A4BF   YI RADICAL HXOP
+A4C0   YI RADICAL SHAT
+A4C2   YI RADICAL SHOP
+A4C3   YI RADICAL CHE
+A4C4   YI RADICAL ZZIET
+A4C6   YI RADICAL KE
 @@     AC00    Hangul Syllables        D7A3
-@@     D7A4    Unassigned      D7FF
 @@     D800    High Surrogates DB7F
-@@     DB80    Private Use High Surrogates     DBFF
+@@     DB80    High Private Use Surrogates     DBFF
 @@     DC00    Low Surrogates  DFFF
 @@     E000    Private Use Area        F8FF
 @@     F900    CJK Compatibility Ideographs    FAFF
+@              Pronunciation variants from KS C 5601-1987
+F900   CJK COMPATIBILITY IDEOGRAPH-F900
+       : 8C48
+F901   CJK COMPATIBILITY IDEOGRAPH-F901
+       : 66F4
+F902   CJK COMPATIBILITY IDEOGRAPH-F902
+       : 8ECA
+F903   CJK COMPATIBILITY IDEOGRAPH-F903
+       : 8CC8
+F904   CJK COMPATIBILITY IDEOGRAPH-F904
+       : 6ED1
+F905   CJK COMPATIBILITY IDEOGRAPH-F905
+       : 4E32
+F906   CJK COMPATIBILITY IDEOGRAPH-F906
+       : 53E5
+F907   CJK COMPATIBILITY IDEOGRAPH-F907
+       : 9F9C
+F908   CJK COMPATIBILITY IDEOGRAPH-F908
+       : 9F9C
+F909   CJK COMPATIBILITY IDEOGRAPH-F909
+       : 5951
+F90A   CJK COMPATIBILITY IDEOGRAPH-F90A
+       : 91D1
+F90B   CJK COMPATIBILITY IDEOGRAPH-F90B
+       : 5587
+F90C   CJK COMPATIBILITY IDEOGRAPH-F90C
+       : 5948
+F90D   CJK COMPATIBILITY IDEOGRAPH-F90D
+       : 61F6
+F90E   CJK COMPATIBILITY IDEOGRAPH-F90E
+       : 7669
+F90F   CJK COMPATIBILITY IDEOGRAPH-F90F
+       : 7F85
+F910   CJK COMPATIBILITY IDEOGRAPH-F910
+       : 863F
+F911   CJK COMPATIBILITY IDEOGRAPH-F911
+       : 87BA
+F912   CJK COMPATIBILITY IDEOGRAPH-F912
+       : 88F8
+F913   CJK COMPATIBILITY IDEOGRAPH-F913
+       : 908F
+F914   CJK COMPATIBILITY IDEOGRAPH-F914
+       : 6A02
+F915   CJK COMPATIBILITY IDEOGRAPH-F915
+       : 6D1B
+F916   CJK COMPATIBILITY IDEOGRAPH-F916
+       : 70D9
+F917   CJK COMPATIBILITY IDEOGRAPH-F917
+       : 73DE
+F918   CJK COMPATIBILITY IDEOGRAPH-F918
+       : 843D
+F919   CJK COMPATIBILITY IDEOGRAPH-F919
+       : 916A
+F91A   CJK COMPATIBILITY IDEOGRAPH-F91A
+       : 99F1
+F91B   CJK COMPATIBILITY IDEOGRAPH-F91B
+       : 4E82
+F91C   CJK COMPATIBILITY IDEOGRAPH-F91C
+       : 5375
+F91D   CJK COMPATIBILITY IDEOGRAPH-F91D
+       : 6B04
+F91E   CJK COMPATIBILITY IDEOGRAPH-F91E
+       : 721B
+F91F   CJK COMPATIBILITY IDEOGRAPH-F91F
+       : 862D
+F920   CJK COMPATIBILITY IDEOGRAPH-F920
+       : 9E1E
+F921   CJK COMPATIBILITY IDEOGRAPH-F921
+       : 5D50
+F922   CJK COMPATIBILITY IDEOGRAPH-F922
+       : 6FEB
+F923   CJK COMPATIBILITY IDEOGRAPH-F923
+       : 85CD
+F924   CJK COMPATIBILITY IDEOGRAPH-F924
+       : 8964
+F925   CJK COMPATIBILITY IDEOGRAPH-F925
+       : 62C9
+F926   CJK COMPATIBILITY IDEOGRAPH-F926
+       : 81D8
+F927   CJK COMPATIBILITY IDEOGRAPH-F927
+       : 881F
+F928   CJK COMPATIBILITY IDEOGRAPH-F928
+       : 5ECA
+F929   CJK COMPATIBILITY IDEOGRAPH-F929
+       : 6717
+F92A   CJK COMPATIBILITY IDEOGRAPH-F92A
+       : 6D6A
+F92B   CJK COMPATIBILITY IDEOGRAPH-F92B
+       : 72FC
+F92C   CJK COMPATIBILITY IDEOGRAPH-F92C
+       : 90CE
+F92D   CJK COMPATIBILITY IDEOGRAPH-F92D
+       : 4F86
+F92E   CJK COMPATIBILITY IDEOGRAPH-F92E
+       : 51B7
+F92F   CJK COMPATIBILITY IDEOGRAPH-F92F
+       : 52DE
+F930   CJK COMPATIBILITY IDEOGRAPH-F930
+       : 64C4
+F931   CJK COMPATIBILITY IDEOGRAPH-F931
+       : 6AD3
+F932   CJK COMPATIBILITY IDEOGRAPH-F932
+       : 7210
+F933   CJK COMPATIBILITY IDEOGRAPH-F933
+       : 76E7
+F934   CJK COMPATIBILITY IDEOGRAPH-F934
+       : 8001
+F935   CJK COMPATIBILITY IDEOGRAPH-F935
+       : 8606
+F936   CJK COMPATIBILITY IDEOGRAPH-F936
+       : 865C
+F937   CJK COMPATIBILITY IDEOGRAPH-F937
+       : 8DEF
+F938   CJK COMPATIBILITY IDEOGRAPH-F938
+       : 9732
+F939   CJK COMPATIBILITY IDEOGRAPH-F939
+       : 9B6F
+F93A   CJK COMPATIBILITY IDEOGRAPH-F93A
+       : 9DFA
+F93B   CJK COMPATIBILITY IDEOGRAPH-F93B
+       : 788C
+F93C   CJK COMPATIBILITY IDEOGRAPH-F93C
+       : 797F
+F93D   CJK COMPATIBILITY IDEOGRAPH-F93D
+       : 7DA0
+F93E   CJK COMPATIBILITY IDEOGRAPH-F93E
+       : 83C9
+F93F   CJK COMPATIBILITY IDEOGRAPH-F93F
+       : 9304
+F940   CJK COMPATIBILITY IDEOGRAPH-F940
+       : 9E7F
+F941   CJK COMPATIBILITY IDEOGRAPH-F941
+       : 8AD6
+F942   CJK COMPATIBILITY IDEOGRAPH-F942
+       : 58DF
+F943   CJK COMPATIBILITY IDEOGRAPH-F943
+       : 5F04
+F944   CJK COMPATIBILITY IDEOGRAPH-F944
+       : 7C60
+F945   CJK COMPATIBILITY IDEOGRAPH-F945
+       : 807E
+F946   CJK COMPATIBILITY IDEOGRAPH-F946
+       : 7262
+F947   CJK COMPATIBILITY IDEOGRAPH-F947
+       : 78CA
+F948   CJK COMPATIBILITY IDEOGRAPH-F948
+       : 8CC2
+F949   CJK COMPATIBILITY IDEOGRAPH-F949
+       : 96F7
+F94A   CJK COMPATIBILITY IDEOGRAPH-F94A
+       : 58D8
+F94B   CJK COMPATIBILITY IDEOGRAPH-F94B
+       : 5C62
+F94C   CJK COMPATIBILITY IDEOGRAPH-F94C
+       : 6A13
+F94D   CJK COMPATIBILITY IDEOGRAPH-F94D
+       : 6DDA
+F94E   CJK COMPATIBILITY IDEOGRAPH-F94E
+       : 6F0F
+F94F   CJK COMPATIBILITY IDEOGRAPH-F94F
+       : 7D2F
+F950   CJK COMPATIBILITY IDEOGRAPH-F950
+       : 7E37
+F951   CJK COMPATIBILITY IDEOGRAPH-F951
+       : 96FB
+F952   CJK COMPATIBILITY IDEOGRAPH-F952
+       : 52D2
+F953   CJK COMPATIBILITY IDEOGRAPH-F953
+       : 808B
+F954   CJK COMPATIBILITY IDEOGRAPH-F954
+       : 51DC
+F955   CJK COMPATIBILITY IDEOGRAPH-F955
+       : 51CC
+F956   CJK COMPATIBILITY IDEOGRAPH-F956
+       : 7A1C
+F957   CJK COMPATIBILITY IDEOGRAPH-F957
+       : 7DBE
+F958   CJK COMPATIBILITY IDEOGRAPH-F958
+       : 83F1
+F959   CJK COMPATIBILITY IDEOGRAPH-F959
+       : 9675
+F95A   CJK COMPATIBILITY IDEOGRAPH-F95A
+       : 8B80
+F95B   CJK COMPATIBILITY IDEOGRAPH-F95B
+       : 62CF
+F95C   CJK COMPATIBILITY IDEOGRAPH-F95C
+       : 6A02
+F95D   CJK COMPATIBILITY IDEOGRAPH-F95D
+       : 8AFE
+F95E   CJK COMPATIBILITY IDEOGRAPH-F95E
+       : 4E39
+F95F   CJK COMPATIBILITY IDEOGRAPH-F95F
+       : 5BE7
+F960   CJK COMPATIBILITY IDEOGRAPH-F960
+       : 6012
+F961   CJK COMPATIBILITY IDEOGRAPH-F961
+       : 7387
+F962   CJK COMPATIBILITY IDEOGRAPH-F962
+       : 7570
+F963   CJK COMPATIBILITY IDEOGRAPH-F963
+       : 5317
+F964   CJK COMPATIBILITY IDEOGRAPH-F964
+       : 78FB
+F965   CJK COMPATIBILITY IDEOGRAPH-F965
+       : 4FBF
+F966   CJK COMPATIBILITY IDEOGRAPH-F966
+       : 5FA9
+F967   CJK COMPATIBILITY IDEOGRAPH-F967
+       : 4E0D
+F968   CJK COMPATIBILITY IDEOGRAPH-F968
+       : 6CCC
+F969   CJK COMPATIBILITY IDEOGRAPH-F969
+       : 6578
+F96A   CJK COMPATIBILITY IDEOGRAPH-F96A
+       : 7D22
+F96B   CJK COMPATIBILITY IDEOGRAPH-F96B
+       : 53C3
+F96C   CJK COMPATIBILITY IDEOGRAPH-F96C
+       : 585E
+F96D   CJK COMPATIBILITY IDEOGRAPH-F96D
+       : 7701
+F96E   CJK COMPATIBILITY IDEOGRAPH-F96E
+       : 8449
+F96F   CJK COMPATIBILITY IDEOGRAPH-F96F
+       : 8AAA
+F970   CJK COMPATIBILITY IDEOGRAPH-F970
+       : 6BBA
+F971   CJK COMPATIBILITY IDEOGRAPH-F971
+       : 8FB0
+F972   CJK COMPATIBILITY IDEOGRAPH-F972
+       : 6C88
+F973   CJK COMPATIBILITY IDEOGRAPH-F973
+       : 62FE
+F974   CJK COMPATIBILITY IDEOGRAPH-F974
+       : 82E5
+F975   CJK COMPATIBILITY IDEOGRAPH-F975
+       : 63A0
+F976   CJK COMPATIBILITY IDEOGRAPH-F976
+       : 7565
+F977   CJK COMPATIBILITY IDEOGRAPH-F977
+       : 4EAE
+F978   CJK COMPATIBILITY IDEOGRAPH-F978
+       : 5169
+F979   CJK COMPATIBILITY IDEOGRAPH-F979
+       : 51C9
+F97A   CJK COMPATIBILITY IDEOGRAPH-F97A
+       : 6881
+F97B   CJK COMPATIBILITY IDEOGRAPH-F97B
+       : 7CE7
+F97C   CJK COMPATIBILITY IDEOGRAPH-F97C
+       : 826F
+F97D   CJK COMPATIBILITY IDEOGRAPH-F97D
+       : 8AD2
+F97E   CJK COMPATIBILITY IDEOGRAPH-F97E
+       : 91CF
+F97F   CJK COMPATIBILITY IDEOGRAPH-F97F
+       : 52F5
+F980   CJK COMPATIBILITY IDEOGRAPH-F980
+       : 5442
+F981   CJK COMPATIBILITY IDEOGRAPH-F981
+       : 5973
+F982   CJK COMPATIBILITY IDEOGRAPH-F982
+       : 5EEC
+F983   CJK COMPATIBILITY IDEOGRAPH-F983
+       : 65C5
+F984   CJK COMPATIBILITY IDEOGRAPH-F984
+       : 6FFE
+F985   CJK COMPATIBILITY IDEOGRAPH-F985
+       : 792A
+F986   CJK COMPATIBILITY IDEOGRAPH-F986
+       : 95AD
+F987   CJK COMPATIBILITY IDEOGRAPH-F987
+       : 9A6A
+F988   CJK COMPATIBILITY IDEOGRAPH-F988
+       : 9E97
+F989   CJK COMPATIBILITY IDEOGRAPH-F989
+       : 9ECE
+F98A   CJK COMPATIBILITY IDEOGRAPH-F98A
+       : 529B
+F98B   CJK COMPATIBILITY IDEOGRAPH-F98B
+       : 66C6
+F98C   CJK COMPATIBILITY IDEOGRAPH-F98C
+       : 6B77
+F98D   CJK COMPATIBILITY IDEOGRAPH-F98D
+       : 8F62
+F98E   CJK COMPATIBILITY IDEOGRAPH-F98E
+       : 5E74
+F98F   CJK COMPATIBILITY IDEOGRAPH-F98F
+       : 6190
+F990   CJK COMPATIBILITY IDEOGRAPH-F990
+       : 6200
+F991   CJK COMPATIBILITY IDEOGRAPH-F991
+       : 649A
+F992   CJK COMPATIBILITY IDEOGRAPH-F992
+       : 6F23
+F993   CJK COMPATIBILITY IDEOGRAPH-F993
+       : 7149
+F994   CJK COMPATIBILITY IDEOGRAPH-F994
+       : 7489
+F995   CJK COMPATIBILITY IDEOGRAPH-F995
+       : 79CA
+F996   CJK COMPATIBILITY IDEOGRAPH-F996
+       : 7DF4
+F997   CJK COMPATIBILITY IDEOGRAPH-F997
+       : 806F
+F998   CJK COMPATIBILITY IDEOGRAPH-F998
+       : 8F26
+F999   CJK COMPATIBILITY IDEOGRAPH-F999
+       : 84EE
+F99A   CJK COMPATIBILITY IDEOGRAPH-F99A
+       : 9023
+F99B   CJK COMPATIBILITY IDEOGRAPH-F99B
+       : 934A
+F99C   CJK COMPATIBILITY IDEOGRAPH-F99C
+       : 5217
+F99D   CJK COMPATIBILITY IDEOGRAPH-F99D
+       : 52A3
+F99E   CJK COMPATIBILITY IDEOGRAPH-F99E
+       : 54BD
+F99F   CJK COMPATIBILITY IDEOGRAPH-F99F
+       : 70C8
+F9A0   CJK COMPATIBILITY IDEOGRAPH-F9A0
+       : 88C2
+F9A1   CJK COMPATIBILITY IDEOGRAPH-F9A1
+       : 8AAA
+F9A2   CJK COMPATIBILITY IDEOGRAPH-F9A2
+       : 5EC9
+F9A3   CJK COMPATIBILITY IDEOGRAPH-F9A3
+       : 5FF5
+F9A4   CJK COMPATIBILITY IDEOGRAPH-F9A4
+       : 637B
+F9A5   CJK COMPATIBILITY IDEOGRAPH-F9A5
+       : 6BAE
+F9A6   CJK COMPATIBILITY IDEOGRAPH-F9A6
+       : 7C3E
+F9A7   CJK COMPATIBILITY IDEOGRAPH-F9A7
+       : 7375
+F9A8   CJK COMPATIBILITY IDEOGRAPH-F9A8
+       : 4EE4
+F9A9   CJK COMPATIBILITY IDEOGRAPH-F9A9
+       : 56F9
+F9AA   CJK COMPATIBILITY IDEOGRAPH-F9AA
+       : 5BE7
+F9AB   CJK COMPATIBILITY IDEOGRAPH-F9AB
+       : 5DBA
+F9AC   CJK COMPATIBILITY IDEOGRAPH-F9AC
+       : 601C
+F9AD   CJK COMPATIBILITY IDEOGRAPH-F9AD
+       : 73B2
+F9AE   CJK COMPATIBILITY IDEOGRAPH-F9AE
+       : 7469
+F9AF   CJK COMPATIBILITY IDEOGRAPH-F9AF
+       : 7F9A
+F9B0   CJK COMPATIBILITY IDEOGRAPH-F9B0
+       : 8046
+F9B1   CJK COMPATIBILITY IDEOGRAPH-F9B1
+       : 9234
+F9B2   CJK COMPATIBILITY IDEOGRAPH-F9B2
+       : 96F6
+F9B3   CJK COMPATIBILITY IDEOGRAPH-F9B3
+       : 9748
+F9B4   CJK COMPATIBILITY IDEOGRAPH-F9B4
+       : 9818
+F9B5   CJK COMPATIBILITY IDEOGRAPH-F9B5
+       : 4F8B
+F9B6   CJK COMPATIBILITY IDEOGRAPH-F9B6
+       : 79AE
+F9B7   CJK COMPATIBILITY IDEOGRAPH-F9B7
+       : 91B4
+F9B8   CJK COMPATIBILITY IDEOGRAPH-F9B8
+       : 96B8
+F9B9   CJK COMPATIBILITY IDEOGRAPH-F9B9
+       : 60E1
+F9BA   CJK COMPATIBILITY IDEOGRAPH-F9BA
+       : 4E86
+F9BB   CJK COMPATIBILITY IDEOGRAPH-F9BB
+       : 50DA
+F9BC   CJK COMPATIBILITY IDEOGRAPH-F9BC
+       : 5BEE
+F9BD   CJK COMPATIBILITY IDEOGRAPH-F9BD
+       : 5C3F
+F9BE   CJK COMPATIBILITY IDEOGRAPH-F9BE
+       : 6599
+F9BF   CJK COMPATIBILITY IDEOGRAPH-F9BF
+       : 6A02
+F9C0   CJK COMPATIBILITY IDEOGRAPH-F9C0
+       : 71CE
+F9C1   CJK COMPATIBILITY IDEOGRAPH-F9C1
+       : 7642
+F9C2   CJK COMPATIBILITY IDEOGRAPH-F9C2
+       : 84FC
+F9C3   CJK COMPATIBILITY IDEOGRAPH-F9C3
+       : 907C
+F9C4   CJK COMPATIBILITY IDEOGRAPH-F9C4
+       : 9F8D
+F9C5   CJK COMPATIBILITY IDEOGRAPH-F9C5
+       : 6688
+F9C6   CJK COMPATIBILITY IDEOGRAPH-F9C6
+       : 962E
+F9C7   CJK COMPATIBILITY IDEOGRAPH-F9C7
+       : 5289
+F9C8   CJK COMPATIBILITY IDEOGRAPH-F9C8
+       : 677B
+F9C9   CJK COMPATIBILITY IDEOGRAPH-F9C9
+       : 67F3
+F9CA   CJK COMPATIBILITY IDEOGRAPH-F9CA
+       : 6D41
+F9CB   CJK COMPATIBILITY IDEOGRAPH-F9CB
+       : 6E9C
+F9CC   CJK COMPATIBILITY IDEOGRAPH-F9CC
+       : 7409
+F9CD   CJK COMPATIBILITY IDEOGRAPH-F9CD
+       : 7559
+F9CE   CJK COMPATIBILITY IDEOGRAPH-F9CE
+       : 786B
+F9CF   CJK COMPATIBILITY IDEOGRAPH-F9CF
+       : 7D10
+F9D0   CJK COMPATIBILITY IDEOGRAPH-F9D0
+       : 985E
+F9D1   CJK COMPATIBILITY IDEOGRAPH-F9D1
+       : 516D
+F9D2   CJK COMPATIBILITY IDEOGRAPH-F9D2
+       : 622E
+F9D3   CJK COMPATIBILITY IDEOGRAPH-F9D3
+       : 9678
+F9D4   CJK COMPATIBILITY IDEOGRAPH-F9D4
+       : 502B
+F9D5   CJK COMPATIBILITY IDEOGRAPH-F9D5
+       : 5D19
+F9D6   CJK COMPATIBILITY IDEOGRAPH-F9D6
+       : 6DEA
+F9D7   CJK COMPATIBILITY IDEOGRAPH-F9D7
+       : 8F2A
+F9D8   CJK COMPATIBILITY IDEOGRAPH-F9D8
+       : 5F8B
+F9D9   CJK COMPATIBILITY IDEOGRAPH-F9D9
+       : 6144
+F9DA   CJK COMPATIBILITY IDEOGRAPH-F9DA
+       : 6817
+F9DB   CJK COMPATIBILITY IDEOGRAPH-F9DB
+       : 7387
+F9DC   CJK COMPATIBILITY IDEOGRAPH-F9DC
+       : 9686
+F9DD   CJK COMPATIBILITY IDEOGRAPH-F9DD
+       : 5229
+F9DE   CJK COMPATIBILITY IDEOGRAPH-F9DE
+       : 540F
+F9DF   CJK COMPATIBILITY IDEOGRAPH-F9DF
+       : 5C65
+F9E0   CJK COMPATIBILITY IDEOGRAPH-F9E0
+       : 6613
+F9E1   CJK COMPATIBILITY IDEOGRAPH-F9E1
+       : 674E
+F9E2   CJK COMPATIBILITY IDEOGRAPH-F9E2
+       : 68A8
+F9E3   CJK COMPATIBILITY IDEOGRAPH-F9E3
+       : 6CE5
+F9E4   CJK COMPATIBILITY IDEOGRAPH-F9E4
+       : 7406
+F9E5   CJK COMPATIBILITY IDEOGRAPH-F9E5
+       : 75E2
+F9E6   CJK COMPATIBILITY IDEOGRAPH-F9E6
+       : 7F79
+F9E7   CJK COMPATIBILITY IDEOGRAPH-F9E7
+       : 88CF
+F9E8   CJK COMPATIBILITY IDEOGRAPH-F9E8
+       : 88E1
+F9E9   CJK COMPATIBILITY IDEOGRAPH-F9E9
+       : 91CC
+F9EA   CJK COMPATIBILITY IDEOGRAPH-F9EA
+       : 96E2
+F9EB   CJK COMPATIBILITY IDEOGRAPH-F9EB
+       : 533F
+F9EC   CJK COMPATIBILITY IDEOGRAPH-F9EC
+       : 6EBA
+F9ED   CJK COMPATIBILITY IDEOGRAPH-F9ED
+       : 541D
+F9EE   CJK COMPATIBILITY IDEOGRAPH-F9EE
+       : 71D0
+F9EF   CJK COMPATIBILITY IDEOGRAPH-F9EF
+       : 7498
+F9F0   CJK COMPATIBILITY IDEOGRAPH-F9F0
+       : 85FA
+F9F1   CJK COMPATIBILITY IDEOGRAPH-F9F1
+       : 96A3
+F9F2   CJK COMPATIBILITY IDEOGRAPH-F9F2
+       : 9C57
+F9F3   CJK COMPATIBILITY IDEOGRAPH-F9F3
+       : 9E9F
+F9F4   CJK COMPATIBILITY IDEOGRAPH-F9F4
+       : 6797
+F9F5   CJK COMPATIBILITY IDEOGRAPH-F9F5
+       : 6DCB
+F9F6   CJK COMPATIBILITY IDEOGRAPH-F9F6
+       : 81E8
+F9F7   CJK COMPATIBILITY IDEOGRAPH-F9F7
+       : 7ACB
+F9F8   CJK COMPATIBILITY IDEOGRAPH-F9F8
+       : 7B20
+F9F9   CJK COMPATIBILITY IDEOGRAPH-F9F9
+       : 7C92
+F9FA   CJK COMPATIBILITY IDEOGRAPH-F9FA
+       : 72C0
+F9FB   CJK COMPATIBILITY IDEOGRAPH-F9FB
+       : 7099
+F9FC   CJK COMPATIBILITY IDEOGRAPH-F9FC
+       : 8B58
+F9FD   CJK COMPATIBILITY IDEOGRAPH-F9FD
+       : 4EC0
+F9FE   CJK COMPATIBILITY IDEOGRAPH-F9FE
+       : 8336
+F9FF   CJK COMPATIBILITY IDEOGRAPH-F9FF
+       : 523A
+FA00   CJK COMPATIBILITY IDEOGRAPH-FA00
+       : 5207
+FA01   CJK COMPATIBILITY IDEOGRAPH-FA01
+       : 5EA6
+FA02   CJK COMPATIBILITY IDEOGRAPH-FA02
+       : 62D3
+FA03   CJK COMPATIBILITY IDEOGRAPH-FA03
+       : 7CD6
+FA04   CJK COMPATIBILITY IDEOGRAPH-FA04
+       : 5B85
+FA05   CJK COMPATIBILITY IDEOGRAPH-FA05
+       : 6D1E
+FA06   CJK COMPATIBILITY IDEOGRAPH-FA06
+       : 66B4
+FA07   CJK COMPATIBILITY IDEOGRAPH-FA07
+       : 8F3B
+FA08   CJK COMPATIBILITY IDEOGRAPH-FA08
+       : 884C
+FA09   CJK COMPATIBILITY IDEOGRAPH-FA09
+       : 964D
+FA0A   CJK COMPATIBILITY IDEOGRAPH-FA0A
+       : 898B
+FA0B   CJK COMPATIBILITY IDEOGRAPH-FA0B
+       : 5ED3
+@              Duplicates from Big 5
+FA0C   CJK COMPATIBILITY IDEOGRAPH-FA0C
+       : 5140
+FA0D   CJK COMPATIBILITY IDEOGRAPH-FA0D
+       : 55C0
+@              The IBM 32 compatibility additions
+FA0E   CJK COMPATIBILITY IDEOGRAPH-FA0E
+       * in the set of unified ideographs
+FA0F   CJK COMPATIBILITY IDEOGRAPH-FA0F
+       * in the set of unified ideographs
+FA10   CJK COMPATIBILITY IDEOGRAPH-FA10
+       : 585A
+FA11   CJK COMPATIBILITY IDEOGRAPH-FA11
+       * in the set of unified ideographs
+FA12   CJK COMPATIBILITY IDEOGRAPH-FA12
+       : 6674
+FA13   CJK COMPATIBILITY IDEOGRAPH-FA13
+       * in the set of unified ideographs
+FA14   CJK COMPATIBILITY IDEOGRAPH-FA14
+       * in the set of unified ideographs
+FA15   CJK COMPATIBILITY IDEOGRAPH-FA15
+       : 51DE
+FA16   CJK COMPATIBILITY IDEOGRAPH-FA16
+       : 732A
+FA17   CJK COMPATIBILITY IDEOGRAPH-FA17
+       : 76CA
+FA18   CJK COMPATIBILITY IDEOGRAPH-FA18
+       : 793C
+FA19   CJK COMPATIBILITY IDEOGRAPH-FA19
+       : 795E
+FA1A   CJK COMPATIBILITY IDEOGRAPH-FA1A
+       : 7965
+FA1B   CJK COMPATIBILITY IDEOGRAPH-FA1B
+       : 798F
+FA1C   CJK COMPATIBILITY IDEOGRAPH-FA1C
+       : 9756
+FA1D   CJK COMPATIBILITY IDEOGRAPH-FA1D
+       : 7CBE
+FA1E   CJK COMPATIBILITY IDEOGRAPH-FA1E
+       : 7FBD
+FA1F   CJK COMPATIBILITY IDEOGRAPH-FA1F *
+       * in the set of unified ideographs
+FA20   CJK COMPATIBILITY IDEOGRAPH-FA20
+       : 8612
+FA21   CJK COMPATIBILITY IDEOGRAPH-FA21
+       * in the set of unified ideographs
+FA22   CJK COMPATIBILITY IDEOGRAPH-FA22
+       : 8AF8
+FA23   CJK COMPATIBILITY IDEOGRAPH-FA23 *
+       * in the set of unified ideographs
+FA24   CJK COMPATIBILITY IDEOGRAPH-FA24
+       * in the set of unified ideographs
+FA25   CJK COMPATIBILITY IDEOGRAPH-FA25
+       : 9038
+FA26   CJK COMPATIBILITY IDEOGRAPH-FA26
+       : 90FD
+FA27   CJK COMPATIBILITY IDEOGRAPH-FA27
+       * in the set of unified ideographs
+FA28   CJK COMPATIBILITY IDEOGRAPH-FA28
+       * in the set of unified ideographs
+FA29   CJK COMPATIBILITY IDEOGRAPH-FA29
+       * in the set of unified ideographs
+FA2A   CJK COMPATIBILITY IDEOGRAPH-FA2A
+       : 98EF
+FA2B   CJK COMPATIBILITY IDEOGRAPH-FA2B
+       : 98FC
+FA2C   CJK COMPATIBILITY IDEOGRAPH-FA2C
+       : 9928
+FA2D   CJK COMPATIBILITY IDEOGRAPH-FA2D
+       : 9DB4
 @@     FB00    Alphabetic Presentation Forms   FB4F
-@              Alphabetic presentation forms
+@              Latin ligatures
+@+             See the Basic Latin block starting at 0020
 FB00   LATIN SMALL LIGATURE FF
-       # 0066 + 0066
+       # 0066 0066
 FB01   LATIN SMALL LIGATURE FI
-       # 0066 + 0069
+       # 0066 0069
 FB02   LATIN SMALL LIGATURE FL
-       # 0066 + 006C
+       # 0066 006C
 FB03   LATIN SMALL LIGATURE FFI
-       # 0066 + 0066 + 0069
+       # 0066 0066 0069
 FB04   LATIN SMALL LIGATURE FFL
-       # 0066 + 0066 + 006C
+       # 0066 0066 006C
 FB05   LATIN SMALL LIGATURE LONG S T
-       # 017F + 0074
+       # 017F 0074
 FB06   LATIN SMALL LIGATURE ST
-       # 0073 + 0074
+       # 0073 0074
+@              Armenian ligatures
+@+             See the Armenian block starting at 0530
 FB13   ARMENIAN SMALL LIGATURE MEN NOW
-       # 0574 + 0576
+       # 0574 0576
 FB14   ARMENIAN SMALL LIGATURE MEN ECH
-       # 0574 + 0565
+       # 0574 0565
 FB15   ARMENIAN SMALL LIGATURE MEN INI
-       # 0574 + 056B
+       # 0574 056B
 FB16   ARMENIAN SMALL LIGATURE VEW NOW
-       # 057E + 0576
+       # 057E 0576
 FB17   ARMENIAN SMALL LIGATURE MEN XEH
-       # 0574 + 056D
+       # 0574 056D
+@              Hebrew presentation forms
+@+             See the Hebrew block starting at 0590
+FB1D   HEBREW LETTER YOD WITH HIRIQ
+       : 05D9 05B4
 FB1E   HEBREW POINT JUDEO-SPANISH VARIKA
 FB1F   HEBREW LIGATURE YIDDISH YOD YOD PATAH
-       # 05F2 + 05B7
+       : 05F2 05B7
 FB20   HEBREW LETTER ALTERNATIVE AYIN
-       # <font> + 05E2
+       # <font> 05E2 hebrew letter ayin
 FB21   HEBREW LETTER WIDE ALEF
-       # <font> + 05D0
+       # <font> 05D0 hebrew letter alef
 FB22   HEBREW LETTER WIDE DALET
-       # <font> + 05D3
+       # <font> 05D3 hebrew letter dalet
 FB23   HEBREW LETTER WIDE HE
-       # <font> + 05D4
+       # <font> 05D4 hebrew letter he
 FB24   HEBREW LETTER WIDE KAF
-       # <font> + 05DB
+       # <font> 05DB hebrew letter kaf
 FB25   HEBREW LETTER WIDE LAMED
-       # <font> + 05DC
+       # <font> 05DC hebrew letter lamed
 FB26   HEBREW LETTER WIDE FINAL MEM
-       # <font> + 05DD
+       # <font> 05DD hebrew letter final mem
 FB27   HEBREW LETTER WIDE RESH
-       # <font> + 05E8
+       # <font> 05E8 hebrew letter resh
 FB28   HEBREW LETTER WIDE TAV
-       # <font> + 05EA
+       # <font> 05EA hebrew letter tav
 FB29   HEBREW LETTER ALTERNATIVE PLUS SIGN
-       # <font> + 002B
+       # <font> 002B plus sign
 FB2A   HEBREW LETTER SHIN WITH SHIN DOT
-       : 05E9 + 05C1
+       : 05E9 05C1
 FB2B   HEBREW LETTER SHIN WITH SIN DOT
-       : 05E9 + 05C2
+       : 05E9 05C2
 FB2C   HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT
-       : 05E9 + 05BC + 05C1
+       : FB49 05C1
 FB2D   HEBREW LETTER SHIN WITH DAGESH AND SIN DOT
-       : 05E9 + 05BC + 05C2
+       : FB49 05C2
 FB2E   HEBREW LETTER ALEF WITH PATAH
-       : 05D0 + 05B7
+       : 05D0 05B7
 FB2F   HEBREW LETTER ALEF WITH QAMATS
-       : 05D0 + 05B8
+       : 05D0 05B8
 FB30   HEBREW LETTER ALEF WITH MAPIQ
-       : 05D0 + 05BC
+       : 05D0 05BC
 FB31   HEBREW LETTER BET WITH DAGESH
-       : 05D1 + 05BC
+       : 05D1 05BC
 FB32   HEBREW LETTER GIMEL WITH DAGESH
-       : 05D2 + 05BC
+       : 05D2 05BC
 FB33   HEBREW LETTER DALET WITH DAGESH
-       : 05D3 + 05BC
+       : 05D3 05BC
 FB34   HEBREW LETTER HE WITH MAPIQ
-       : 05D4 + 05BC
+       : 05D4 05BC
 FB35   HEBREW LETTER VAV WITH DAGESH
-       : 05D5 + 05BC
+       : 05D5 05BC
 FB36   HEBREW LETTER ZAYIN WITH DAGESH
-       : 05D6 + 05BC
+       : 05D6 05BC
 FB38   HEBREW LETTER TET WITH DAGESH
-       : 05D8 + 05BC
+       : 05D8 05BC
 FB39   HEBREW LETTER YOD WITH DAGESH
-       : 05D9 + 05BC
+       : 05D9 05BC
 FB3A   HEBREW LETTER FINAL KAF WITH DAGESH
-       : 05DA + 05BC
+       : 05DA 05BC
 FB3B   HEBREW LETTER KAF WITH DAGESH
-       : 05DB + 05BC
+       : 05DB 05BC
 FB3C   HEBREW LETTER LAMED WITH DAGESH
-       : 05DC + 05BC
+       : 05DC 05BC
 FB3E   HEBREW LETTER MEM WITH DAGESH
-       : 05DE + 05BC
+       : 05DE 05BC
 FB40   HEBREW LETTER NUN WITH DAGESH
-       : 05E0 + 05BC
+       : 05E0 05BC
 FB41   HEBREW LETTER SAMEKH WITH DAGESH
-       : 05E1 + 05BC
+       : 05E1 05BC
 FB43   HEBREW LETTER FINAL PE WITH DAGESH
-       : 05E3 + 05BC
+       : 05E3 05BC
 FB44   HEBREW LETTER PE WITH DAGESH
-       : 05E4 + 05BC
+       : 05E4 05BC
 FB46   HEBREW LETTER TSADI WITH DAGESH
-       : 05E6 + 05BC
+       : 05E6 05BC
 FB47   HEBREW LETTER QOF WITH DAGESH
-       : 05E7 + 05BC
+       : 05E7 05BC
 FB48   HEBREW LETTER RESH WITH DAGESH
-       : 05E8 + 05BC
+       : 05E8 05BC
 FB49   HEBREW LETTER SHIN WITH DAGESH
-       : 05E9 + 05BC
+       : 05E9 05BC
 FB4A   HEBREW LETTER TAV WITH DAGESH
-       : 05EA + 05BC
+       : 05EA 05BC
 FB4B   HEBREW LETTER VAV WITH HOLAM
-       : 05D5 + 05B9
+       : 05D5 05B9
 FB4C   HEBREW LETTER BET WITH RAFE
-       : 05D1 + 05BF
+       : 05D1 05BF
 FB4D   HEBREW LETTER KAF WITH RAFE
-       : 05DB + 05BF
+       : 05DB 05BF
 FB4E   HEBREW LETTER PE WITH RAFE
-       : 05E4 + 05BF
+       : 05E4 05BF
 FB4F   HEBREW LIGATURE ALEF LAMED
-       # 05D0 + 05DC
+       # 05D0 05DC
 @@     FB50    Arabic Presentation Forms-A     FDFF
-@              Arabic presentation forms-A
+@+             Preferred characters are found in the Arabic block 0600 - 06FF.
+@              Glyphs for contextual forms of letters for Persian, Urdu, Sindhi, etc.
 FB50   ARABIC LETTER ALEF WASLA ISOLATED FORM
-       # <isolated> + 0671
+       # <isolated> 0671
 FB51   ARABIC LETTER ALEF WASLA FINAL FORM
-       # <final> + 0671
+       # <final> 0671
 FB52   ARABIC LETTER BEEH ISOLATED FORM
-       # <isolated> + 067B
+       # <isolated> 067B
 FB53   ARABIC LETTER BEEH FINAL FORM
-       # <final> + 067B
+       # <final> 067B
 FB54   ARABIC LETTER BEEH INITIAL FORM
-       # <initial> + 067B
+       # <initial> 067B
 FB55   ARABIC LETTER BEEH MEDIAL FORM
-       # <medial> + 067B
+       # <medial> 067B
 FB56   ARABIC LETTER PEH ISOLATED FORM
-       # <isolated> + 067E
+       # <isolated> 067E
 FB57   ARABIC LETTER PEH FINAL FORM
-       # <final> + 067E
+       # <final> 067E
 FB58   ARABIC LETTER PEH INITIAL FORM
-       # <initial> + 067E
+       # <initial> 067E
 FB59   ARABIC LETTER PEH MEDIAL FORM
-       # <medial> + 067E
+       # <medial> 067E
 FB5A   ARABIC LETTER BEHEH ISOLATED FORM
-       # <isolated> + 0680
+       # <isolated> 0680
 FB5B   ARABIC LETTER BEHEH FINAL FORM
-       # <final> + 0680
+       # <final> 0680
 FB5C   ARABIC LETTER BEHEH INITIAL FORM
-       # <initial> + 0680
+       # <initial> 0680
 FB5D   ARABIC LETTER BEHEH MEDIAL FORM
-       # <medial> + 0680
+       # <medial> 0680
 FB5E   ARABIC LETTER TTEHEH ISOLATED FORM
-       # <isolated> + 067A
+       # <isolated> 067A
 FB5F   ARABIC LETTER TTEHEH FINAL FORM
-       # <final> + 067A
+       # <final> 067A
 FB60   ARABIC LETTER TTEHEH INITIAL FORM
-       # <initial> + 067A
+       # <initial> 067A
 FB61   ARABIC LETTER TTEHEH MEDIAL FORM
-       # <medial> + 067A
+       # <medial> 067A
 FB62   ARABIC LETTER TEHEH ISOLATED FORM
-       # <isolated> + 067F
+       # <isolated> 067F
 FB63   ARABIC LETTER TEHEH FINAL FORM
-       # <final> + 067F
+       # <final> 067F
 FB64   ARABIC LETTER TEHEH INITIAL FORM
-       # <initial> + 067F
+       # <initial> 067F
 FB65   ARABIC LETTER TEHEH MEDIAL FORM
-       # <medial> + 067F
+       # <medial> 067F
 FB66   ARABIC LETTER TTEH ISOLATED FORM
-       # <isolated> + 0679
+       # <isolated> 0679
 FB67   ARABIC LETTER TTEH FINAL FORM
-       # <final> + 0679
+       # <final> 0679
 FB68   ARABIC LETTER TTEH INITIAL FORM
-       # <initial> + 0679
+       # <initial> 0679
 FB69   ARABIC LETTER TTEH MEDIAL FORM
-       # <medial> + 0679
+       # <medial> 0679
 FB6A   ARABIC LETTER VEH ISOLATED FORM
-       # <isolated> + 06A4
+       # <isolated> 06A4
 FB6B   ARABIC LETTER VEH FINAL FORM
-       # <final> + 06A4
+       # <final> 06A4
 FB6C   ARABIC LETTER VEH INITIAL FORM
-       # <initial> + 06A4
+       # <initial> 06A4
 FB6D   ARABIC LETTER VEH MEDIAL FORM
-       # <medial> + 06A4
+       # <medial> 06A4
 FB6E   ARABIC LETTER PEHEH ISOLATED FORM
-       # <isolated> + 06A6
+       # <isolated> 06A6
 FB6F   ARABIC LETTER PEHEH FINAL FORM
-       # <final> + 06A6
+       # <final> 06A6
 FB70   ARABIC LETTER PEHEH INITIAL FORM
-       # <initial> + 06A6
+       # <initial> 06A6
 FB71   ARABIC LETTER PEHEH MEDIAL FORM
-       # <medial> + 06A6
+       # <medial> 06A6
 FB72   ARABIC LETTER DYEH ISOLATED FORM
-       # <isolated> + 0684
+       # <isolated> 0684
 FB73   ARABIC LETTER DYEH FINAL FORM
-       # <final> + 0684
+       # <final> 0684
 FB74   ARABIC LETTER DYEH INITIAL FORM
-       # <initial> + 0684
+       # <initial> 0684
 FB75   ARABIC LETTER DYEH MEDIAL FORM
-       # <medial> + 0684
+       # <medial> 0684
 FB76   ARABIC LETTER NYEH ISOLATED FORM
-       # <isolated> + 0683
+       # <isolated> 0683
 FB77   ARABIC LETTER NYEH FINAL FORM
-       # <final> + 0683
+       # <final> 0683
 FB78   ARABIC LETTER NYEH INITIAL FORM
-       # <initial> + 0683
+       # <initial> 0683
 FB79   ARABIC LETTER NYEH MEDIAL FORM
-       # <medial> + 0683
+       # <medial> 0683
 FB7A   ARABIC LETTER TCHEH ISOLATED FORM
-       # <isolated> + 0686
+       # <isolated> 0686
 FB7B   ARABIC LETTER TCHEH FINAL FORM
-       # <final> + 0686
+       # <final> 0686
 FB7C   ARABIC LETTER TCHEH INITIAL FORM
-       # <initial> + 0686
+       # <initial> 0686
 FB7D   ARABIC LETTER TCHEH MEDIAL FORM
-       # <medial> + 0686
+       # <medial> 0686
 FB7E   ARABIC LETTER TCHEHEH ISOLATED FORM
-       # <isolated> + 0687
+       # <isolated> 0687
 FB7F   ARABIC LETTER TCHEHEH FINAL FORM
-       # <final> + 0687
+       # <final> 0687
 FB80   ARABIC LETTER TCHEHEH INITIAL FORM
-       # <initial> + 0687
+       # <initial> 0687
 FB81   ARABIC LETTER TCHEHEH MEDIAL FORM
-       # <medial> + 0687
+       # <medial> 0687
 FB82   ARABIC LETTER DDAHAL ISOLATED FORM
-       # <isolated> + 068D
+       # <isolated> 068D
 FB83   ARABIC LETTER DDAHAL FINAL FORM
-       # <final> + 068D
+       # <final> 068D
 FB84   ARABIC LETTER DAHAL ISOLATED FORM
-       # <isolated> + 068C
+       # <isolated> 068C
 FB85   ARABIC LETTER DAHAL FINAL FORM
-       # <final> + 068C
+       # <final> 068C
 FB86   ARABIC LETTER DUL ISOLATED FORM
-       # <isolated> + 068E
+       # <isolated> 068E
 FB87   ARABIC LETTER DUL FINAL FORM
-       # <final> + 068E
+       # <final> 068E
 FB88   ARABIC LETTER DDAL ISOLATED FORM
-       # <isolated> + 0688
+       # <isolated> 0688
 FB89   ARABIC LETTER DDAL FINAL FORM
-       # <final> + 0688
+       # <final> 0688
 FB8A   ARABIC LETTER JEH ISOLATED FORM
-       # <isolated> + 0698
+       # <isolated> 0698
 FB8B   ARABIC LETTER JEH FINAL FORM
-       # <final> + 0698
+       # <final> 0698
 FB8C   ARABIC LETTER RREH ISOLATED FORM
-       # <isolated> + 0691
+       # <isolated> 0691
 FB8D   ARABIC LETTER RREH FINAL FORM
-       # <final> + 0691
+       # <final> 0691
 FB8E   ARABIC LETTER KEHEH ISOLATED FORM
-       # <isolated> + 06A9
+       # <isolated> 06A9
 FB8F   ARABIC LETTER KEHEH FINAL FORM
-       # <final> + 06A9
+       # <final> 06A9
 FB90   ARABIC LETTER KEHEH INITIAL FORM
-       # <initial> + 06A9
+       # <initial> 06A9
 FB91   ARABIC LETTER KEHEH MEDIAL FORM
-       # <medial> + 06A9
+       # <medial> 06A9
 FB92   ARABIC LETTER GAF ISOLATED FORM
-       # <isolated> + 06AF
+       # <isolated> 06AF
 FB93   ARABIC LETTER GAF FINAL FORM
-       # <final> + 06AF
+       # <final> 06AF
 FB94   ARABIC LETTER GAF INITIAL FORM
-       # <initial> + 06AF
+       # <initial> 06AF
 FB95   ARABIC LETTER GAF MEDIAL FORM
-       # <medial> + 06AF
+       # <medial> 06AF
 FB96   ARABIC LETTER GUEH ISOLATED FORM
-       # <isolated> + 06B3
+       # <isolated> 06B3
 FB97   ARABIC LETTER GUEH FINAL FORM
-       # <final> + 06B3
+       # <final> 06B3
 FB98   ARABIC LETTER GUEH INITIAL FORM
-       # <initial> + 06B3
+       # <initial> 06B3
 FB99   ARABIC LETTER GUEH MEDIAL FORM
-       # <medial> + 06B3
+       # <medial> 06B3
 FB9A   ARABIC LETTER NGOEH ISOLATED FORM
-       # <isolated> + 06B1
+       # <isolated> 06B1
 FB9B   ARABIC LETTER NGOEH FINAL FORM
-       # <final> + 06B1
+       # <final> 06B1
 FB9C   ARABIC LETTER NGOEH INITIAL FORM
-       # <initial> + 06B1
+       # <initial> 06B1
 FB9D   ARABIC LETTER NGOEH MEDIAL FORM
-       # <medial> + 06B1
+       # <medial> 06B1
 FB9E   ARABIC LETTER NOON GHUNNA ISOLATED FORM
-       # <isolated> + 06BA
+       # <isolated> 06BA
 FB9F   ARABIC LETTER NOON GHUNNA FINAL FORM
-       # <final> + 06BA
+       # <final> 06BA
 FBA0   ARABIC LETTER RNOON ISOLATED FORM
-       # <isolated> + 06BB
+       # <isolated> 06BB
 FBA1   ARABIC LETTER RNOON FINAL FORM
-       # <final> + 06BB
+       # <final> 06BB
 FBA2   ARABIC LETTER RNOON INITIAL FORM
-       # <initial> + 06BB
+       # <initial> 06BB
 FBA3   ARABIC LETTER RNOON MEDIAL FORM
-       # <medial> + 06BB
+       # <medial> 06BB
 FBA4   ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM
-       # <isolated> + 06C0
+       # <isolated> 06C0
 FBA5   ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM
-       # <final> + 06C0
+       # <final> 06C0
 FBA6   ARABIC LETTER HEH GOAL ISOLATED FORM
-       # <isolated> + 06C1
+       # <isolated> 06C1
 FBA7   ARABIC LETTER HEH GOAL FINAL FORM
-       # <final> + 06C1
+       # <final> 06C1
 FBA8   ARABIC LETTER HEH GOAL INITIAL FORM
-       # <initial> + 06C1
+       # <initial> 06C1
 FBA9   ARABIC LETTER HEH GOAL MEDIAL FORM
-       # <medial> + 06C1
+       # <medial> 06C1
 FBAA   ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM
-       # <isolated> + 06BE
+       # <isolated> 06BE
 FBAB   ARABIC LETTER HEH DOACHASHMEE FINAL FORM
-       # <final> + 06BE
+       # <final> 06BE
 FBAC   ARABIC LETTER HEH DOACHASHMEE INITIAL FORM
-       # <initial> + 06BE
+       # <initial> 06BE
 FBAD   ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM
-       # <medial> + 06BE
+       # <medial> 06BE
 FBAE   ARABIC LETTER YEH BARREE ISOLATED FORM
-       # <isolated> + 06D2
+       # <isolated> 06D2
 FBAF   ARABIC LETTER YEH BARREE FINAL FORM
-       # <final> + 06D2
+       # <final> 06D2
 FBB0   ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM
-       # <isolated> + 06D3
+       # <isolated> 06D3
 FBB1   ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
-       # <final> + 06D3
-FBB2   <reserved>
-FBB3   <reserved>
-FBB4   <reserved>
-FBB5   <reserved>
-FBB6   <reserved>
-FBB7   <reserved>
-FBB8   <reserved>
-FBB9   <reserved>
-FBBA   <reserved>
-FBBB   <reserved>
-FBBC   <reserved>
-FBBD   <reserved>
-FBBE   <reserved>
-FBBF   <reserved>
-FBC0   <reserved>
-FBC1   <reserved>
-FBC2   <reserved>
-FBC3   <reserved>
-FBC4   <reserved>
-FBC5   <reserved>
-FBC6   <reserved>
-FBC7   <reserved>
-FBC8   <reserved>
-FBC9   <reserved>
-FBCA   <reserved>
-FBCB   <reserved>
-FBCC   <reserved>
-FBCD   <reserved>
-FBCE   <reserved>
-FBCF   <reserved>
-FBD0   <reserved>
-FBD1   <reserved>
-FBD2   <reserved>
+       # <final> 06D3
+@              Glyphs for contextual forms of letters for Central Asian languages
 FBD3   ARABIC LETTER NG ISOLATED FORM
-       # <isolated> + 06AD
+       # <isolated> 06AD
 FBD4   ARABIC LETTER NG FINAL FORM
-       # <final> + 06AD
+       # <final> 06AD
 FBD5   ARABIC LETTER NG INITIAL FORM
-       # <initial> + 06AD
+       # <initial> 06AD
 FBD6   ARABIC LETTER NG MEDIAL FORM
-       # <medial> + 06AD
+       # <medial> 06AD
 FBD7   ARABIC LETTER U ISOLATED FORM
-       # <isolated> + 06C7
+       # <isolated> 06C7
 FBD8   ARABIC LETTER U FINAL FORM
-       # <final> + 06C7
+       # <final> 06C7
 FBD9   ARABIC LETTER OE ISOLATED FORM
-       # <isolated> + 06C6
+       # <isolated> 06C6
 FBDA   ARABIC LETTER OE FINAL FORM
-       # <final> + 06C6
+       # <final> 06C6
 FBDB   ARABIC LETTER YU ISOLATED FORM
-       # <isolated> + 06C8
+       # <isolated> 06C8
 FBDC   ARABIC LETTER YU FINAL FORM
-       # <final> + 06C8
+       # <final> 06C8
 FBDD   ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM
-       # <isolated> + 0677
+       # <isolated> 0677
 FBDE   ARABIC LETTER VE ISOLATED FORM
-       # <isolated> + 06CB
+       # <isolated> 06CB
 FBDF   ARABIC LETTER VE FINAL FORM
-       # <final> + 06CB
+       # <final> 06CB
 FBE0   ARABIC LETTER KIRGHIZ OE ISOLATED FORM
-       # <isolated> + 06C5
+       # <isolated> 06C5
 FBE1   ARABIC LETTER KIRGHIZ OE FINAL FORM
-       # <final> + 06C5
+       # <final> 06C5
 FBE2   ARABIC LETTER KIRGHIZ YU ISOLATED FORM
-       # <isolated> + 06C9
+       # <isolated> 06C9
 FBE3   ARABIC LETTER KIRGHIZ YU FINAL FORM
-       # <final> + 06C9
+       # <final> 06C9
 FBE4   ARABIC LETTER E ISOLATED FORM
-       # <isolated> + 06D0
+       # <isolated> 06D0
 FBE5   ARABIC LETTER E FINAL FORM
-       # <final> + 06D0
+       # <final> 06D0
 FBE6   ARABIC LETTER E INITIAL FORM
-       # <initial> + 06D0
+       # <initial> 06D0
 FBE7   ARABIC LETTER E MEDIAL FORM
-       # <medial> + 06D0
+       # <medial> 06D0
 FBE8   ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM
+       # <initial> 0649
 FBE9   ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM
+       # <medial> 0649
+@              Ligatures (two elements)
 FBEA   ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM
-       # <isolated> + 0626 + 0627
+       # <isolated> 0626 0627
 FBEB   ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM
-       # <final> + 0626 + 0627
+       # <final> 0626 0627
 FBEC   ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM
-       # <isolated> + 0626 + 06D5
+       # <isolated> 0626 06D5
 FBED   ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM
-       # <final> + 0626 + 06D5
+       # <final> 0626 06D5
 FBEE   ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM
-       # <isolated> + 0626 + 0648
+       # <isolated> 0626 0648
 FBEF   ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM
-       # <final> + 0626 + 0648
+       # <final> 0626 0648
 FBF0   ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM
-       # <isolated> + 0626 + 06C7
+       # <isolated> 0626 06C7
 FBF1   ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM
-       # <final> + 0626 + 06C7
+       # <final> 0626 06C7
 FBF2   ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM
-       # <isolated> + 0626 + 06C6
+       # <isolated> 0626 06C6
 FBF3   ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM
-       # <final> + 0626 + 06C6
+       # <final> 0626 06C6
 FBF4   ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM
-       # <isolated> + 0626 + 06C8
+       # <isolated> 0626 06C8
 FBF5   ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM
-       # <final> + 0626 + 06C8
+       # <final> 0626 06C8
 FBF6   ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM
-       # <isolated> + 0626 + 06D0
+       # <isolated> 0626 06D0
 FBF7   ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM
-       # <final> + 0626 + 06D0
+       # <final> 0626 06D0
 FBF8   ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM
-       # <initial> + 0626 + 06D0
+       # <initial> 0626 06D0
 FBF9   ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
+       # <isolated> 0626 0649
 FBFA   ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM
+       # <final> 0626 0649
 FBFB   ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM
+       # <initial> 0626 0649
 FBFC   ARABIC LETTER FARSI YEH ISOLATED FORM
-       # <isolated> + 06CC
+       # <isolated> 06CC
 FBFD   ARABIC LETTER FARSI YEH FINAL FORM
-       # <final> + 06CC
+       # <final> 06CC
 FBFE   ARABIC LETTER FARSI YEH INITIAL FORM
-       # <initial> + 06CC
+       # <initial> 06CC
 FBFF   ARABIC LETTER FARSI YEH MEDIAL FORM
-       # <medial> + 06CC
+       # <medial> 06CC
 FC00   ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM
-       # <isolated> + 0626 + 062C
+       # <isolated> 0626 062C
 FC01   ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM
-       # <isolated> + 0626 + 062D
+       # <isolated> 0626 062D
 FC02   ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM
-       # <isolated> + 0626 + 0645
+       # <isolated> 0626 0645
 FC03   ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
-       # <isolated> + 0626 + 0649
+       # <isolated> 0626 0649
 FC04   ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM
-       # <isolated> + 0626 + 064A
+       # <isolated> 0626 064A
 FC05   ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM
-       # <isolated> + 0628 + 062C
+       # <isolated> 0628 062C
 FC06   ARABIC LIGATURE BEH WITH HAH ISOLATED FORM
-       # <isolated> + 0628 + 062D
+       # <isolated> 0628 062D
 FC07   ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM
-       # <isolated> + 0628 + 062E
+       # <isolated> 0628 062E
 FC08   ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM
-       # <isolated> + 0628 + 0645
+       # <isolated> 0628 0645
 FC09   ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM
-       # <isolated> + 0628 + 0649
+       # <isolated> 0628 0649
 FC0A   ARABIC LIGATURE BEH WITH YEH ISOLATED FORM
-       # <isolated> + 0628 + 064A
+       # <isolated> 0628 064A
 FC0B   ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM
-       # <isolated> + 062A + 062C
+       # <isolated> 062A 062C
 FC0C   ARABIC LIGATURE TEH WITH HAH ISOLATED FORM
-       # <isolated> + 062A + 062D
+       # <isolated> 062A 062D
 FC0D   ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM
-       # <isolated> + 062A + 062E
+       # <isolated> 062A 062E
 FC0E   ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM
-       # <isolated> + 062A + 0645
+       # <isolated> 062A 0645
 FC0F   ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM
-       # <isolated> + 062A + 0649
+       # <isolated> 062A 0649
 FC10   ARABIC LIGATURE TEH WITH YEH ISOLATED FORM
-       # <isolated> + 062A + 064A
+       # <isolated> 062A 064A
 FC11   ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM
-       # <isolated> + 062B + 062C
+       # <isolated> 062B 062C
 FC12   ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM
-       # <isolated> + 062B + 0645
+       # <isolated> 062B 0645
 FC13   ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM
-       # <isolated> + 062B + 0649
+       # <isolated> 062B 0649
 FC14   ARABIC LIGATURE THEH WITH YEH ISOLATED FORM
-       # <isolated> + 062B + 064A
+       # <isolated> 062B 064A
 FC15   ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM
-       # <isolated> + 062C + 062D
+       # <isolated> 062C 062D
 FC16   ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM
-       # <isolated> + 062C + 0645
+       # <isolated> 062C 0645
 FC17   ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM
-       # <isolated> + 062D + 062C
+       # <isolated> 062D 062C
 FC18   ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM
-       # <isolated> + 062D + 0645
+       # <isolated> 062D 0645
 FC19   ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM
-       # <isolated> + 062E + 062C
+       # <isolated> 062E 062C
 FC1A   ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM
-       # <isolated> + 062E + 062D
+       # <isolated> 062E 062D
 FC1B   ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM
-       # <isolated> + 062E + 0645
+       # <isolated> 062E 0645
 FC1C   ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM
-       # <isolated> + 0633 + 062C
+       # <isolated> 0633 062C
 FC1D   ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM
-       # <isolated> + 0633 + 062D
+       # <isolated> 0633 062D
 FC1E   ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM
-       # <isolated> + 0633 + 062E
+       # <isolated> 0633 062E
 FC1F   ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM
-       # <isolated> + 0633 + 0645
+       # <isolated> 0633 0645
 FC20   ARABIC LIGATURE SAD WITH HAH ISOLATED FORM
-       # <isolated> + 0635 + 062D
+       # <isolated> 0635 062D
 FC21   ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM
-       # <isolated> + 0635 + 0645
+       # <isolated> 0635 0645
 FC22   ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM
-       # <isolated> + 0636 + 062C
+       # <isolated> 0636 062C
 FC23   ARABIC LIGATURE DAD WITH HAH ISOLATED FORM
-       # <isolated> + 0636 + 062D
+       # <isolated> 0636 062D
 FC24   ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM
-       # <isolated> + 0636 + 062E
+       # <isolated> 0636 062E
 FC25   ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM
-       # <isolated> + 0636 + 0645
+       # <isolated> 0636 0645
 FC26   ARABIC LIGATURE TAH WITH HAH ISOLATED FORM
-       # <isolated> + 0637 + 062D
+       # <isolated> 0637 062D
 FC27   ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM
-       # <isolated> + 0637 + 0645
+       # <isolated> 0637 0645
 FC28   ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM
-       # <isolated> + 0638 + 0645
+       # <isolated> 0638 0645
 FC29   ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM
-       # <isolated> + 0639 + 062C
+       # <isolated> 0639 062C
 FC2A   ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM
-       # <isolated> + 0639 + 0645
+       # <isolated> 0639 0645
 FC2B   ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM
-       # <isolated> + 063A + 062C
+       # <isolated> 063A 062C
 FC2C   ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM
-       # <isolated> + 063A + 0645
+       # <isolated> 063A 0645
 FC2D   ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM
-       # <isolated> + 0641 + 062C
+       # <isolated> 0641 062C
 FC2E   ARABIC LIGATURE FEH WITH HAH ISOLATED FORM
-       # <isolated> + 0641 + 062D
+       # <isolated> 0641 062D
 FC2F   ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM
-       # <isolated> + 0641 + 062E
+       # <isolated> 0641 062E
 FC30   ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM
-       # <isolated> + 0641 + 0645
+       # <isolated> 0641 0645
 FC31   ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM
-       # <isolated> + 0641 + 0649
+       # <isolated> 0641 0649
 FC32   ARABIC LIGATURE FEH WITH YEH ISOLATED FORM
-       # <isolated> + 0641 + 064A
+       # <isolated> 0641 064A
 FC33   ARABIC LIGATURE QAF WITH HAH ISOLATED FORM
-       # <isolated> + 0642 + 062D
+       # <isolated> 0642 062D
 FC34   ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM
-       # <isolated> + 0642 + 0645
+       # <isolated> 0642 0645
 FC35   ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM
-       # <isolated> + 0642 + 0649
+       # <isolated> 0642 0649
 FC36   ARABIC LIGATURE QAF WITH YEH ISOLATED FORM
-       # <isolated> + 0642 + 064A
+       # <isolated> 0642 064A
 FC37   ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM
-       # <isolated> + 0643 + 0627
+       # <isolated> 0643 0627
 FC38   ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM
-       # <isolated> + 0643 + 062C
+       # <isolated> 0643 062C
 FC39   ARABIC LIGATURE KAF WITH HAH ISOLATED FORM
-       # <isolated> + 0643 + 062D
+       # <isolated> 0643 062D
 FC3A   ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM
-       # <isolated> + 0643 + 062E
+       # <isolated> 0643 062E
 FC3B   ARABIC LIGATURE KAF WITH LAM ISOLATED FORM
-       # <isolated> + 0643 + 0644
+       # <isolated> 0643 0644
 FC3C   ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM
-       # <isolated> + 0643 + 0645
+       # <isolated> 0643 0645
 FC3D   ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM
-       # <isolated> + 0643 + 0649
+       # <isolated> 0643 0649
 FC3E   ARABIC LIGATURE KAF WITH YEH ISOLATED FORM
-       # <isolated> + 0643 + 064A
+       # <isolated> 0643 064A
 FC3F   ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM
-       # <isolated> + 0644 + 062C
+       # <isolated> 0644 062C
 FC40   ARABIC LIGATURE LAM WITH HAH ISOLATED FORM
-       # <isolated> + 0644 + 062D
+       # <isolated> 0644 062D
 FC41   ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM
-       # <isolated> + 0644 + 062E
+       # <isolated> 0644 062E
 FC42   ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM
-       # <isolated> + 0644 + 0645
+       # <isolated> 0644 0645
 FC43   ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM
-       # <isolated> + 0644 + 0649
+       # <isolated> 0644 0649
 FC44   ARABIC LIGATURE LAM WITH YEH ISOLATED FORM
-       # <isolated> + 0644 + 064A
+       # <isolated> 0644 064A
 FC45   ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM
-       # <isolated> + 0645 + 062C
+       # <isolated> 0645 062C
 FC46   ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM
-       # <isolated> + 0645 + 062D
+       # <isolated> 0645 062D
 FC47   ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM
-       # <isolated> + 0645 + 062E
+       # <isolated> 0645 062E
 FC48   ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM
-       # <isolated> + 0645 + 0645
+       # <isolated> 0645 0645
 FC49   ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM
-       # <isolated> + 0645 + 0649
+       # <isolated> 0645 0649
 FC4A   ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM
-       # <isolated> + 0645 + 064A
+       # <isolated> 0645 064A
 FC4B   ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM
-       # <isolated> + 0646 + 062C
+       # <isolated> 0646 062C
 FC4C   ARABIC LIGATURE NOON WITH HAH ISOLATED FORM
-       # <isolated> + 0646 + 062D
+       # <isolated> 0646 062D
 FC4D   ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM
-       # <isolated> + 0646 + 062E
+       # <isolated> 0646 062E
 FC4E   ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM
-       # <isolated> + 0646 + 0645
+       # <isolated> 0646 0645
 FC4F   ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM
-       # <isolated> + 0646 + 0649
+       # <isolated> 0646 0649
 FC50   ARABIC LIGATURE NOON WITH YEH ISOLATED FORM
-       # <isolated> + 0646 + 064A
+       # <isolated> 0646 064A
 FC51   ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM
-       # <isolated> + 0647 + 062C
+       # <isolated> 0647 062C
 FC52   ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM
-       # <isolated> + 0647 + 0645
+       # <isolated> 0647 0645
 FC53   ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM
-       # <isolated> + 0647 + 0649
+       # <isolated> 0647 0649
 FC54   ARABIC LIGATURE HEH WITH YEH ISOLATED FORM
-       # <isolated> + 0647 + 064A
+       # <isolated> 0647 064A
 FC55   ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM
-       # <isolated> + 064A + 062C
+       # <isolated> 064A 062C
 FC56   ARABIC LIGATURE YEH WITH HAH ISOLATED FORM
-       # <isolated> + 064A + 062D
+       # <isolated> 064A 062D
 FC57   ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM
-       # <isolated> + 064A + 062E
+       # <isolated> 064A 062E
 FC58   ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM
-       # <isolated> + 064A + 0645
+       # <isolated> 064A 0645
 FC59   ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM
-       # <isolated> + 064A + 0649
+       # <isolated> 064A 0649
 FC5A   ARABIC LIGATURE YEH WITH YEH ISOLATED FORM
-       # <isolated> + 064A + 064A
+       # <isolated> 064A 064A
 FC5B   ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM
-       # <isolated> + 0630 + 0670
+       # <isolated> 0630 0670
 FC5C   ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM
-       # <isolated> + 0631 + 0670
+       # <isolated> 0631 0670
 FC5D   ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM
-       # <isolated> + 0649 + 0670
+       # <isolated> 0649 0670
 FC5E   ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM
-       # <isolated> + 0020 + 0651 + 064C
+       # <isolated> 0020 064C 0651
 FC5F   ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM
-       # <isolated> + 0020 + 0651 + 064D
+       # <isolated> 0020 064D 0651
 FC60   ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM
-       # <isolated> + 0020 + 0651 + 064E
+       # <isolated> 0020 064E 0651
 FC61   ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM
-       # <isolated> + 0020 + 0651 + 064F
+       # <isolated> 0020 064F 0651
 FC62   ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM
-       # <isolated> + 0020 + 0651 + 0650
+       # <isolated> 0020 0650 0651
 FC63   ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM
-       # <isolated> + 0020 + 0651 + 0670
+       # <isolated> 0020 0651 0670
 FC64   ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM
-       # <final> + 0626 + 0631
+       # <final> 0626 0631
 FC65   ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM
-       # <final> + 0626 + 0632
+       # <final> 0626 0632
 FC66   ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM
-       # <final> + 0626 + 0645
+       # <final> 0626 0645
 FC67   ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM
-       # <final> + 0626 + 0646
+       # <final> 0626 0646
 FC68   ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM
-       # <final> + 0626 + 0649
+       # <final> 0626 0649
 FC69   ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM
-       # <final> + 0626 + 064A
+       # <final> 0626 064A
 FC6A   ARABIC LIGATURE BEH WITH REH FINAL FORM
-       # <final> + 0628 + 0631
+       # <final> 0628 0631
 FC6B   ARABIC LIGATURE BEH WITH ZAIN FINAL FORM
-       # <final> + 0628 + 0632
+       # <final> 0628 0632
 FC6C   ARABIC LIGATURE BEH WITH MEEM FINAL FORM
-       # <final> + 0628 + 0645
+       # <final> 0628 0645
 FC6D   ARABIC LIGATURE BEH WITH NOON FINAL FORM
-       # <final> + 0628 + 0646
+       # <final> 0628 0646
 FC6E   ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM
-       # <final> + 0628 + 0649
+       # <final> 0628 0649
 FC6F   ARABIC LIGATURE BEH WITH YEH FINAL FORM
-       # <final> + 0628 + 064A
+       # <final> 0628 064A
 FC70   ARABIC LIGATURE TEH WITH REH FINAL FORM
-       # <final> + 062A + 0631
+       # <final> 062A 0631
 FC71   ARABIC LIGATURE TEH WITH ZAIN FINAL FORM
-       # <final> + 062A + 0632
+       # <final> 062A 0632
 FC72   ARABIC LIGATURE TEH WITH MEEM FINAL FORM
-       # <final> + 062A + 0645
+       # <final> 062A 0645
 FC73   ARABIC LIGATURE TEH WITH NOON FINAL FORM
-       # <final> + 062A + 0646
+       # <final> 062A 0646
 FC74   ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM
-       # <final> + 062A + 0649
+       # <final> 062A 0649
 FC75   ARABIC LIGATURE TEH WITH YEH FINAL FORM
-       # <final> + 062A + 064A
+       # <final> 062A 064A
 FC76   ARABIC LIGATURE THEH WITH REH FINAL FORM
-       # <final> + 062B + 0631
+       # <final> 062B 0631
 FC77   ARABIC LIGATURE THEH WITH ZAIN FINAL FORM
-       # <final> + 062B + 0632
+       # <final> 062B 0632
 FC78   ARABIC LIGATURE THEH WITH MEEM FINAL FORM
-       # <final> + 062B + 0645
+       # <final> 062B 0645
 FC79   ARABIC LIGATURE THEH WITH NOON FINAL FORM
-       # <final> + 062B + 0646
+       # <final> 062B 0646
 FC7A   ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM
-       # <final> + 062B + 0649
+       # <final> 062B 0649
 FC7B   ARABIC LIGATURE THEH WITH YEH FINAL FORM
-       # <final> + 062B + 064A
+       # <final> 062B 064A
 FC7C   ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM
-       # <final> + 0641 + 0649
+       # <final> 0641 0649
 FC7D   ARABIC LIGATURE FEH WITH YEH FINAL FORM
-       # <final> + 0641 + 064A
+       # <final> 0641 064A
 FC7E   ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM
-       # <final> + 0642 + 0649
+       # <final> 0642 0649
 FC7F   ARABIC LIGATURE QAF WITH YEH FINAL FORM
-       # <final> + 0642 + 064A
+       # <final> 0642 064A
 FC80   ARABIC LIGATURE KAF WITH ALEF FINAL FORM
-       # <final> + 0643 + 0627
+       # <final> 0643 0627
 FC81   ARABIC LIGATURE KAF WITH LAM FINAL FORM
-       # <final> + 0643 + 0644
+       # <final> 0643 0644
 FC82   ARABIC LIGATURE KAF WITH MEEM FINAL FORM
-       # <final> + 0643 + 0645
+       # <final> 0643 0645
 FC83   ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM
-       # <final> + 0643 + 0649
+       # <final> 0643 0649
 FC84   ARABIC LIGATURE KAF WITH YEH FINAL FORM
-       # <final> + 0643 + 064A
+       # <final> 0643 064A
 FC85   ARABIC LIGATURE LAM WITH MEEM FINAL FORM
-       # <final> + 0644 + 0645
+       # <final> 0644 0645
 FC86   ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM
-       # <final> + 0644 + 0649
+       # <final> 0644 0649
 FC87   ARABIC LIGATURE LAM WITH YEH FINAL FORM
-       # <final> + 0644 + 064A
+       # <final> 0644 064A
 FC88   ARABIC LIGATURE MEEM WITH ALEF FINAL FORM
-       # <final> + 0645 + 0627
+       # <final> 0645 0627
 FC89   ARABIC LIGATURE MEEM WITH MEEM FINAL FORM
-       # <final> + 0645 + 0645
+       # <final> 0645 0645
 FC8A   ARABIC LIGATURE NOON WITH REH FINAL FORM
-       # <final> + 0646 + 0631
+       # <final> 0646 0631
 FC8B   ARABIC LIGATURE NOON WITH ZAIN FINAL FORM
-       # <final> + 0646 + 0632
+       # <final> 0646 0632
 FC8C   ARABIC LIGATURE NOON WITH MEEM FINAL FORM
-       # <final> + 0646 + 0645
+       # <final> 0646 0645
 FC8D   ARABIC LIGATURE NOON WITH NOON FINAL FORM
-       # <final> + 0646 + 0646
+       # <final> 0646 0646
 FC8E   ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM
-       # <final> + 0646 + 0649
+       # <final> 0646 0649
 FC8F   ARABIC LIGATURE NOON WITH YEH FINAL FORM
-       # <final> + 0646 + 064A
+       # <final> 0646 064A
 FC90   ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM
-       # <final> + 0649 + 0670
+       # <final> 0649 0670
 FC91   ARABIC LIGATURE YEH WITH REH FINAL FORM
-       # <final> + 064A + 0631
+       # <final> 064A 0631
 FC92   ARABIC LIGATURE YEH WITH ZAIN FINAL FORM
-       # <final> + 064A + 0632
+       # <final> 064A 0632
 FC93   ARABIC LIGATURE YEH WITH MEEM FINAL FORM
-       # <final> + 064A + 0645
+       # <final> 064A 0645
 FC94   ARABIC LIGATURE YEH WITH NOON FINAL FORM
-       # <final> + 064A + 0646
+       # <final> 064A 0646
 FC95   ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM
-       # <final> + 064A + 0649
+       # <final> 064A 0649
 FC96   ARABIC LIGATURE YEH WITH YEH FINAL FORM
-       # <final> + 064A + 064A
+       # <final> 064A 064A
 FC97   ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM
-       # <initial> + 0626 + 062C
+       # <initial> 0626 062C
 FC98   ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM
-       # <initial> + 0626 + 062D
+       # <initial> 0626 062D
 FC99   ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM
-       # <initial> + 0626 + 062E
+       # <initial> 0626 062E
 FC9A   ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM
-       # <initial> + 0626 + 0645
+       # <initial> 0626 0645
 FC9B   ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM
-       # <initial> + 0626 + 0647
+       # <initial> 0626 0647
 FC9C   ARABIC LIGATURE BEH WITH JEEM INITIAL FORM
-       # <initial> + 0628 + 062C
+       # <initial> 0628 062C
 FC9D   ARABIC LIGATURE BEH WITH HAH INITIAL FORM
-       # <initial> + 0628 + 062D
+       # <initial> 0628 062D
 FC9E   ARABIC LIGATURE BEH WITH KHAH INITIAL FORM
-       # <initial> + 0628 + 062E
+       # <initial> 0628 062E
 FC9F   ARABIC LIGATURE BEH WITH MEEM INITIAL FORM
-       # <initial> + 0628 + 0645
+       # <initial> 0628 0645
 FCA0   ARABIC LIGATURE BEH WITH HEH INITIAL FORM
-       # <initial> + 0628 + 0647
+       # <initial> 0628 0647
 FCA1   ARABIC LIGATURE TEH WITH JEEM INITIAL FORM
-       # <initial> + 062A + 062C
+       # <initial> 062A 062C
 FCA2   ARABIC LIGATURE TEH WITH HAH INITIAL FORM
-       # <initial> + 062A + 062D
+       # <initial> 062A 062D
 FCA3   ARABIC LIGATURE TEH WITH KHAH INITIAL FORM
-       # <initial> + 062A + 062E
+       # <initial> 062A 062E
 FCA4   ARABIC LIGATURE TEH WITH MEEM INITIAL FORM
-       # <initial> + 062A + 0645
+       # <initial> 062A 0645
 FCA5   ARABIC LIGATURE TEH WITH HEH INITIAL FORM
-       # <initial> + 062A + 0647
+       # <initial> 062A 0647
 FCA6   ARABIC LIGATURE THEH WITH MEEM INITIAL FORM
-       # <initial> + 062B + 0645
+       # <initial> 062B 0645
 FCA7   ARABIC LIGATURE JEEM WITH HAH INITIAL FORM
-       # <initial> + 062C + 062D
+       # <initial> 062C 062D
 FCA8   ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM
-       # <initial> + 062C + 0645
+       # <initial> 062C 0645
 FCA9   ARABIC LIGATURE HAH WITH JEEM INITIAL FORM
-       # <initial> + 062D + 062C
+       # <initial> 062D 062C
 FCAA   ARABIC LIGATURE HAH WITH MEEM INITIAL FORM
-       # <initial> + 062D + 0645
+       # <initial> 062D 0645
 FCAB   ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM
-       # <initial> + 062E + 062C
+       # <initial> 062E 062C
 FCAC   ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM
-       # <initial> + 062E + 0645
+       # <initial> 062E 0645
 FCAD   ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM
-       # <initial> + 0633 + 062C
+       # <initial> 0633 062C
 FCAE   ARABIC LIGATURE SEEN WITH HAH INITIAL FORM
-       # <initial> + 0633 + 062D
+       # <initial> 0633 062D
 FCAF   ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM
-       # <initial> + 0633 + 062E
+       # <initial> 0633 062E
 FCB0   ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM
-       # <initial> + 0633 + 0645
+       # <initial> 0633 0645
 FCB1   ARABIC LIGATURE SAD WITH HAH INITIAL FORM
-       # <initial> + 0635 + 062D
+       # <initial> 0635 062D
 FCB2   ARABIC LIGATURE SAD WITH KHAH INITIAL FORM
-       # <initial> + 0635 + 062E
+       # <initial> 0635 062E
 FCB3   ARABIC LIGATURE SAD WITH MEEM INITIAL FORM
-       # <initial> + 0635 + 0645
+       # <initial> 0635 0645
 FCB4   ARABIC LIGATURE DAD WITH JEEM INITIAL FORM
-       # <initial> + 0636 + 062C
+       # <initial> 0636 062C
 FCB5   ARABIC LIGATURE DAD WITH HAH INITIAL FORM
-       # <initial> + 0636 + 062D
+       # <initial> 0636 062D
 FCB6   ARABIC LIGATURE DAD WITH KHAH INITIAL FORM
-       # <initial> + 0636 + 062E
+       # <initial> 0636 062E
 FCB7   ARABIC LIGATURE DAD WITH MEEM INITIAL FORM
-       # <initial> + 0636 + 0645
+       # <initial> 0636 0645
 FCB8   ARABIC LIGATURE TAH WITH HAH INITIAL FORM
-       # <initial> + 0637 + 062D
+       # <initial> 0637 062D
 FCB9   ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM
-       # <initial> + 0638 + 0645
+       # <initial> 0638 0645
 FCBA   ARABIC LIGATURE AIN WITH JEEM INITIAL FORM
-       # <initial> + 0639 + 062C
+       # <initial> 0639 062C
 FCBB   ARABIC LIGATURE AIN WITH MEEM INITIAL FORM
-       # <initial> + 0639 + 0645
+       # <initial> 0639 0645
 FCBC   ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM
-       # <initial> + 063A + 062C
+       # <initial> 063A 062C
 FCBD   ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM
-       # <initial> + 063A + 0645
+       # <initial> 063A 0645
 FCBE   ARABIC LIGATURE FEH WITH JEEM INITIAL FORM
-       # <initial> + 0641 + 062C
+       # <initial> 0641 062C
 FCBF   ARABIC LIGATURE FEH WITH HAH INITIAL FORM
-       # <initial> + 0641 + 062D
+       # <initial> 0641 062D
 FCC0   ARABIC LIGATURE FEH WITH KHAH INITIAL FORM
-       # <initial> + 0641 + 062E
+       # <initial> 0641 062E
 FCC1   ARABIC LIGATURE FEH WITH MEEM INITIAL FORM
-       # <initial> + 0641 + 0645
+       # <initial> 0641 0645
 FCC2   ARABIC LIGATURE QAF WITH HAH INITIAL FORM
-       # <initial> + 0642 + 062D
+       # <initial> 0642 062D
 FCC3   ARABIC LIGATURE QAF WITH MEEM INITIAL FORM
-       # <initial> + 0642 + 0645
+       # <initial> 0642 0645
 FCC4   ARABIC LIGATURE KAF WITH JEEM INITIAL FORM
-       # <initial> + 0643 + 062C
+       # <initial> 0643 062C
 FCC5   ARABIC LIGATURE KAF WITH HAH INITIAL FORM
-       # <initial> + 0643 + 062D
+       # <initial> 0643 062D
 FCC6   ARABIC LIGATURE KAF WITH KHAH INITIAL FORM
-       # <initial> + 0643 + 062E
+       # <initial> 0643 062E
 FCC7   ARABIC LIGATURE KAF WITH LAM INITIAL FORM
-       # <initial> + 0643 + 0644
+       # <initial> 0643 0644
 FCC8   ARABIC LIGATURE KAF WITH MEEM INITIAL FORM
-       # <initial> + 0643 + 0645
+       # <initial> 0643 0645
 FCC9   ARABIC LIGATURE LAM WITH JEEM INITIAL FORM
-       # <initial> + 0644 + 062C
+       # <initial> 0644 062C
 FCCA   ARABIC LIGATURE LAM WITH HAH INITIAL FORM
-       # <initial> + 0644 + 062D
+       # <initial> 0644 062D
 FCCB   ARABIC LIGATURE LAM WITH KHAH INITIAL FORM
-       # <initial> + 0644 + 062E
+       # <initial> 0644 062E
 FCCC   ARABIC LIGATURE LAM WITH MEEM INITIAL FORM
-       # <initial> + 0644 + 0645
+       # <initial> 0644 0645
 FCCD   ARABIC LIGATURE LAM WITH HEH INITIAL FORM
-       # <initial> + 0644 + 0647
+       # <initial> 0644 0647
 FCCE   ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM
-       # <initial> + 0645 + 062C
+       # <initial> 0645 062C
 FCCF   ARABIC LIGATURE MEEM WITH HAH INITIAL FORM
-       # <initial> + 0645 + 062D
+       # <initial> 0645 062D
 FCD0   ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM
-       # <initial> + 0645 + 062E
+       # <initial> 0645 062E
 FCD1   ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM
-       # <initial> + 0645 + 0645
+       # <initial> 0645 0645
 FCD2   ARABIC LIGATURE NOON WITH JEEM INITIAL FORM
-       # <initial> + 0646 + 062C
+       # <initial> 0646 062C
 FCD3   ARABIC LIGATURE NOON WITH HAH INITIAL FORM
-       # <initial> + 0646 + 062D
+       # <initial> 0646 062D
 FCD4   ARABIC LIGATURE NOON WITH KHAH INITIAL FORM
-       # <initial> + 0646 + 062E
+       # <initial> 0646 062E
 FCD5   ARABIC LIGATURE NOON WITH MEEM INITIAL FORM
-       # <initial> + 0646 + 0645
+       # <initial> 0646 0645
 FCD6   ARABIC LIGATURE NOON WITH HEH INITIAL FORM
-       # <initial> + 0646 + 0647
+       # <initial> 0646 0647
 FCD7   ARABIC LIGATURE HEH WITH JEEM INITIAL FORM
-       # <initial> + 0647 + 062C
+       # <initial> 0647 062C
 FCD8   ARABIC LIGATURE HEH WITH MEEM INITIAL FORM
-       # <initial> + 0647 + 0645
+       # <initial> 0647 0645
 FCD9   ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM
-       # <initial> + 0647 + 0670
+       # <initial> 0647 0670
 FCDA   ARABIC LIGATURE YEH WITH JEEM INITIAL FORM
-       # <initial> + 064A + 062C
+       # <initial> 064A 062C
 FCDB   ARABIC LIGATURE YEH WITH HAH INITIAL FORM
-       # <initial> + 064A + 062D
+       # <initial> 064A 062D
 FCDC   ARABIC LIGATURE YEH WITH KHAH INITIAL FORM
-       # <initial> + 064A + 062E
+       # <initial> 064A 062E
 FCDD   ARABIC LIGATURE YEH WITH MEEM INITIAL FORM
-       # <initial> + 064A + 0645
+       # <initial> 064A 0645
 FCDE   ARABIC LIGATURE YEH WITH HEH INITIAL FORM
-       # <initial> + 064A + 0647
+       # <initial> 064A 0647
 FCDF   ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM
-       # <medial> + 0626 + 0645
+       # <medial> 0626 0645
 FCE0   ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM
-       # <medial> + 0626 + 0647
+       # <medial> 0626 0647
 FCE1   ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM
-       # <medial> + 0628 + 0645
+       # <medial> 0628 0645
 FCE2   ARABIC LIGATURE BEH WITH HEH MEDIAL FORM
-       # <medial> + 0628 + 0647
+       # <medial> 0628 0647
 FCE3   ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM
-       # <medial> + 062A + 0645
+       # <medial> 062A 0645
 FCE4   ARABIC LIGATURE TEH WITH HEH MEDIAL FORM
-       # <medial> + 062A + 0647
+       # <medial> 062A 0647
 FCE5   ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM
-       # <medial> + 062B + 0645
+       # <medial> 062B 0645
 FCE6   ARABIC LIGATURE THEH WITH HEH MEDIAL FORM
-       # <medial> + 062B + 0647
+       # <medial> 062B 0647
 FCE7   ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM
-       # <medial> + 0633 + 0645
+       # <medial> 0633 0645
 FCE8   ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM
-       # <medial> + 0633 + 0647
+       # <medial> 0633 0647
 FCE9   ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM
-       # <medial> + 0634 + 0645
+       # <medial> 0634 0645
 FCEA   ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM
-       # <medial> + 0634 + 0647
+       # <medial> 0634 0647
 FCEB   ARABIC LIGATURE KAF WITH LAM MEDIAL FORM
-       # <medial> + 0643 + 0644
+       # <medial> 0643 0644
 FCEC   ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM
-       # <medial> + 0643 + 0645
+       # <medial> 0643 0645
 FCED   ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM
-       # <medial> + 0644 + 0645
+       # <medial> 0644 0645
 FCEE   ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM
-       # <medial> + 0646 + 0645
+       # <medial> 0646 0645
 FCEF   ARABIC LIGATURE NOON WITH HEH MEDIAL FORM
-       # <medial> + 0646 + 0647
+       # <medial> 0646 0647
 FCF0   ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM
-       # <medial> + 064A + 0645
+       # <medial> 064A 0645
 FCF1   ARABIC LIGATURE YEH WITH HEH MEDIAL FORM
-       # <medial> + 064A + 0647
+       # <medial> 064A 0647
 FCF2   ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM
-       # <medial> + 0020 + 0651 + 064E
+       # <medial> 0640 064E 0651
 FCF3   ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM
-       # <medial> + 0020 + 0651 + 064F
+       # <medial> 0640 064F 0651
 FCF4   ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM
-       # <medial> + 0020 + 0651 + 0650
+       # <medial> 0640 0650 0651
 FCF5   ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM
-       # <isolated> + 0637 + 0649
+       # <isolated> 0637 0649
 FCF6   ARABIC LIGATURE TAH WITH YEH ISOLATED FORM
-       # <isolated> + 0637 + 064A
+       # <isolated> 0637 064A
 FCF7   ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM
-       # <isolated> + 0639 + 0649
+       # <isolated> 0639 0649
 FCF8   ARABIC LIGATURE AIN WITH YEH ISOLATED FORM
-       # <isolated> + 0639 + 064A
+       # <isolated> 0639 064A
 FCF9   ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM
-       # <isolated> + 063A + 0649
+       # <isolated> 063A 0649
 FCFA   ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM
-       # <isolated> + 063A + 064A
+       # <isolated> 063A 064A
 FCFB   ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM
-       # <isolated> + 0633 + 0649
+       # <isolated> 0633 0649
 FCFC   ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM
-       # <isolated> + 0633 + 064A
+       # <isolated> 0633 064A
 FCFD   ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM
-       # <isolated> + 0634 + 0649
+       # <isolated> 0634 0649
 FCFE   ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM
-       # <isolated> + 0634 + 064A
+       # <isolated> 0634 064A
 FCFF   ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM
-       # <isolated> + 062D + 0649
+       # <isolated> 062D 0649
 FD00   ARABIC LIGATURE HAH WITH YEH ISOLATED FORM
-       # <isolated> + 062D + 064A
+       # <isolated> 062D 064A
 FD01   ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM
-       # <isolated> + 062C + 0649
+       # <isolated> 062C 0649
 FD02   ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM
-       # <isolated> + 062C + 064A
+       # <isolated> 062C 064A
 FD03   ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM
-       # <isolated> + 062E + 0649
+       # <isolated> 062E 0649
 FD04   ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM
-       # <isolated> + 062E + 064A
+       # <isolated> 062E 064A
 FD05   ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM
-       # <isolated> + 0635 + 0649
+       # <isolated> 0635 0649
 FD06   ARABIC LIGATURE SAD WITH YEH ISOLATED FORM
-       # <isolated> + 0635 + 064A
+       # <isolated> 0635 064A
 FD07   ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM
-       # <isolated> + 0636 + 0649
+       # <isolated> 0636 0649
 FD08   ARABIC LIGATURE DAD WITH YEH ISOLATED FORM
-       # <isolated> + 0636 + 064A
+       # <isolated> 0636 064A
 FD09   ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM
-       # <isolated> + 0634 + 062C
+       # <isolated> 0634 062C
 FD0A   ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM
-       # <isolated> + 0634 + 062D
+       # <isolated> 0634 062D
 FD0B   ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM
-       # <isolated> + 0634 + 062E
+       # <isolated> 0634 062E
 FD0C   ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM
-       # <isolated> + 0634 + 0645
+       # <isolated> 0634 0645
 FD0D   ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM
-       # <isolated> + 0634 + 0631
+       # <isolated> 0634 0631
 FD0E   ARABIC LIGATURE SEEN WITH REH ISOLATED FORM
-       # <isolated> + 0633 + 0631
+       # <isolated> 0633 0631
 FD0F   ARABIC LIGATURE SAD WITH REH ISOLATED FORM
-       # <isolated> + 0635 + 0631
+       # <isolated> 0635 0631
 FD10   ARABIC LIGATURE DAD WITH REH ISOLATED FORM
-       # <isolated> + 0636 + 0631
+       # <isolated> 0636 0631
 FD11   ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM
-       # <final> + 0637 + 0649
+       # <final> 0637 0649
 FD12   ARABIC LIGATURE TAH WITH YEH FINAL FORM
-       # <final> + 0637 + 064A
+       # <final> 0637 064A
 FD13   ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM
-       # <final> + 0639 + 0649
+       # <final> 0639 0649
 FD14   ARABIC LIGATURE AIN WITH YEH FINAL FORM
-       # <final> + 0639 + 064A
+       # <final> 0639 064A
 FD15   ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM
-       # <final> + 063A + 0649
+       # <final> 063A 0649
 FD16   ARABIC LIGATURE GHAIN WITH YEH FINAL FORM
-       # <final> + 063A + 064A
+       # <final> 063A 064A
 FD17   ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM
-       # <final> + 0633 + 0649
+       # <final> 0633 0649
 FD18   ARABIC LIGATURE SEEN WITH YEH FINAL FORM
-       # <final> + 0633 + 064A
+       # <final> 0633 064A
 FD19   ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM
-       # <final> + 0634 + 0649
+       # <final> 0634 0649
 FD1A   ARABIC LIGATURE SHEEN WITH YEH FINAL FORM
-       # <final> + 0634 + 064A
+       # <final> 0634 064A
 FD1B   ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM
-       # <final> + 062D + 0649
+       # <final> 062D 0649
 FD1C   ARABIC LIGATURE HAH WITH YEH FINAL FORM
-       # <final> + 062D + 064A
+       # <final> 062D 064A
 FD1D   ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM
-       # <final> + 062C + 0649
+       # <final> 062C 0649
 FD1E   ARABIC LIGATURE JEEM WITH YEH FINAL FORM
-       # <final> + 062C + 064A
+       # <final> 062C 064A
 FD1F   ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM
-       # <final> + 062E + 0649
+       # <final> 062E 0649
 FD20   ARABIC LIGATURE KHAH WITH YEH FINAL FORM
-       # <final> + 062E + 064A
+       # <final> 062E 064A
 FD21   ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM
-       # <final> + 0635 + 0649
+       # <final> 0635 0649
 FD22   ARABIC LIGATURE SAD WITH YEH FINAL FORM
-       # <final> + 0635 + 064A
+       # <final> 0635 064A
 FD23   ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM
-       # <final> + 0636 + 0649
+       # <final> 0636 0649
 FD24   ARABIC LIGATURE DAD WITH YEH FINAL FORM
-       # <final> + 0636 + 064A
+       # <final> 0636 064A
 FD25   ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM
-       # <final> + 0634 + 062C
+       # <final> 0634 062C
 FD26   ARABIC LIGATURE SHEEN WITH HAH FINAL FORM
-       # <final> + 0634 + 062D
+       # <final> 0634 062D
 FD27   ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM
-       # <final> + 0634 + 062E
+       # <final> 0634 062E
 FD28   ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM
-       # <final> + 0634 + 0645
+       # <final> 0634 0645
 FD29   ARABIC LIGATURE SHEEN WITH REH FINAL FORM
-       # <final> + 0634 + 0631
+       # <final> 0634 0631
 FD2A   ARABIC LIGATURE SEEN WITH REH FINAL FORM
-       # <final> + 0633 + 0631
+       # <final> 0633 0631
 FD2B   ARABIC LIGATURE SAD WITH REH FINAL FORM
-       # <final> + 0635 + 0631
+       # <final> 0635 0631
 FD2C   ARABIC LIGATURE DAD WITH REH FINAL FORM
-       # <final> + 0636 + 0631
+       # <final> 0636 0631
 FD2D   ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM
-       # <initial> + 0634 + 062C
+       # <initial> 0634 062C
 FD2E   ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM
-       # <initial> + 0634 + 062D
+       # <initial> 0634 062D
 FD2F   ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM
-       # <initial> + 0634 + 062E
+       # <initial> 0634 062E
 FD30   ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM
-       # <initial> + 0634 + 0645
+       # <initial> 0634 0645
 FD31   ARABIC LIGATURE SEEN WITH HEH INITIAL FORM
-       # <initial> + 0633 + 0647
+       # <initial> 0633 0647
 FD32   ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM
-       # <initial> + 0634 + 0647
+       # <initial> 0634 0647
 FD33   ARABIC LIGATURE TAH WITH MEEM INITIAL FORM
-       # <initial> + 0637 + 0645
+       # <initial> 0637 0645
 FD34   ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM
-       # <medial> + 0633 + 062C
+       # <medial> 0633 062C
 FD35   ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM
-       # <medial> + 0633 + 062D
+       # <medial> 0633 062D
 FD36   ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM
-       # <medial> + 0633 + 062E
+       # <medial> 0633 062E
 FD37   ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM
-       # <medial> + 0634 + 062C
+       # <medial> 0634 062C
 FD38   ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM
-       # <medial> + 0634 + 062D
+       # <medial> 0634 062D
 FD39   ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM
-       # <medial> + 0634 + 062E
+       # <medial> 0634 062E
 FD3A   ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM
-       # <medial> + 0637 + 0645
+       # <medial> 0637 0645
 FD3B   ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM
-       # <medial> + 0638 + 0645
+       # <medial> 0638 0645
 FD3C   ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM
-       # <final> + 0627 + 064B
+       # <final> 0627 064B
 FD3D   ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
-       # <isolated> + 0627 + 064B
+       # <isolated> 0627 064B
+@              Punctuation
 FD3E   ORNATE LEFT PARENTHESIS
 FD3F   ORNATE RIGHT PARENTHESIS
-FD40   <reserved>
-FD41   <reserved>
-FD42   <reserved>
-FD43   <reserved>
-FD44   <reserved>
-FD45   <reserved>
-FD46   <reserved>
-FD47   <reserved>
-FD48   <reserved>
-FD49   <reserved>
-FD4A   <reserved>
-FD4B   <reserved>
-FD4C   <reserved>
-FD4D   <reserved>
-FD4E   <reserved>
-FD4F   <reserved>
+@              Ligatures (three elements)
 FD50   ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM
-       # <initial> + 062A + 062C + 0645
+       # <initial> 062A 062C 0645
 FD51   ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM
-       # <final> + 062A + 062D + 062C
+       # <final> 062A 062D 062C
 FD52   ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM
-       # <initial> + 062A + 062D + 062C
+       # <initial> 062A 062D 062C
 FD53   ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM
-       # <initial> + 062A + 062D + 0645
+       # <initial> 062A 062D 0645
 FD54   ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM
-       # <initial> + 062A + 062E + 0645
+       # <initial> 062A 062E 0645
 FD55   ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM
-       # <initial> + 062A + 0645 + 062C
+       # <initial> 062A 0645 062C
 FD56   ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM
-       # <initial> + 062A + 0645 + 062D
+       # <initial> 062A 0645 062D
 FD57   ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM
-       # <initial> + 062A + 0645 + 062E
+       # <initial> 062A 0645 062E
 FD58   ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM
-       # <final> + 062C + 0645 + 062D
+       # <final> 062C 0645 062D
 FD59   ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM
-       # <initial> + 062C + 0645 + 062D
+       # <initial> 062C 0645 062D
 FD5A   ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM
-       # <final> + 062D + 0645 + 064A
+       # <final> 062D 0645 064A
 FD5B   ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM
-       # <final> + 062D + 0645 + 0649
+       # <final> 062D 0645 0649
 FD5C   ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM
-       # <initial> + 0633 + 062D + 062C
+       # <initial> 0633 062D 062C
 FD5D   ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM
-       # <initial> + 0633 + 062C + 062D
+       # <initial> 0633 062C 062D
 FD5E   ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM
-       # <final> + 0633 + 062C + 0649
+       # <final> 0633 062C 0649
 FD5F   ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM
-       # <final> + 0633 + 0645 + 062D
+       # <final> 0633 0645 062D
 FD60   ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM
-       # <initial> + 0633 + 0645 + 062D
+       # <initial> 0633 0645 062D
 FD61   ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM
-       # <initial> + 0633 + 0645 + 062C
+       # <initial> 0633 0645 062C
 FD62   ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM
-       # <final> + 0633 + 0645 + 0645
+       # <final> 0633 0645 0645
 FD63   ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM
-       # <initial> + 0633 + 0645 + 0645
+       # <initial> 0633 0645 0645
 FD64   ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM
-       # <final> + 0635 + 062D + 062D
+       # <final> 0635 062D 062D
 FD65   ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM
-       # <initial> + 0635 + 062D + 062D
+       # <initial> 0635 062D 062D
 FD66   ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM
-       # <final> + 0635 + 0645 + 0645
+       # <final> 0635 0645 0645
 FD67   ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM
-       # <final> + 0634 + 062D + 0645
+       # <final> 0634 062D 0645
 FD68   ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM
-       # <initial> + 0634 + 062D + 0645
+       # <initial> 0634 062D 0645
 FD69   ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM
-       # <final> + 0634 + 062C + 064A
+       # <final> 0634 062C 064A
 FD6A   ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM
-       # <final> + 0634 + 0645 + 062E
+       # <final> 0634 0645 062E
 FD6B   ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM
-       # <initial> + 0634 + 0645 + 062E
+       # <initial> 0634 0645 062E
 FD6C   ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM
-       # <final> + 0634 + 0645 + 0645
+       # <final> 0634 0645 0645
 FD6D   ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM
-       # <initial> + 0634 + 0645 + 0645
+       # <initial> 0634 0645 0645
 FD6E   ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM
-       # <final> + 0636 + 062D + 0649
+       # <final> 0636 062D 0649
 FD6F   ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM
-       # <final> + 0636 + 062E + 0645
+       # <final> 0636 062E 0645
 FD70   ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM
-       # <initial> + 0636 + 062E + 0645
+       # <initial> 0636 062E 0645
 FD71   ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM
-       # <final> + 0637 + 0645 + 062D
+       # <final> 0637 0645 062D
 FD72   ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM
-       # <initial> + 0637 + 0645 + 062D
+       # <initial> 0637 0645 062D
 FD73   ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM
-       # <initial> + 0637 + 0645 + 0645
+       # <initial> 0637 0645 0645
 FD74   ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM
-       # <final> + 0637 + 0645 + 064A
+       # <final> 0637 0645 064A
 FD75   ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM
-       # <final> + 0639 + 062C + 0645
+       # <final> 0639 062C 0645
 FD76   ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM
-       # <final> + 0639 + 0645 + 0645
+       # <final> 0639 0645 0645
 FD77   ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM
-       # <initial> + 0639 + 0645 + 0645
+       # <initial> 0639 0645 0645
 FD78   ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
-       # <final> + 0639 + 0645 + 0649
+       # <final> 0639 0645 0649
 FD79   ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM
-       # <final> + 063A + 0645 + 0645
+       # <final> 063A 0645 0645
 FD7A   ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM
-       # <final> + 063A + 0645 + 064A
+       # <final> 063A 0645 064A
 FD7B   ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
-       # <final> + 063A + 0645 + 0649
+       # <final> 063A 0645 0649
 FD7C   ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM
-       # <final> + 0641 + 062E + 0645
+       # <final> 0641 062E 0645
 FD7D   ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM
-       # <initial> + 0641 + 062E + 0645
+       # <initial> 0641 062E 0645
 FD7E   ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM
-       # <final> + 0642 + 0645 + 062D
+       # <final> 0642 0645 062D
 FD7F   ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM
-       # <final> + 0642 + 0645 + 0645
+       # <final> 0642 0645 0645
 FD80   ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM
-       # <final> + 0644 + 062D + 0645
+       # <final> 0644 062D 0645
 FD81   ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM
-       # <final> + 0644 + 062D + 064A
+       # <final> 0644 062D 064A
 FD82   ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM
-       # <final> + 0644 + 062D + 0649
+       # <final> 0644 062D 0649
 FD83   ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM
-       # <initial> + 0644 + 062C + 062C
+       # <initial> 0644 062C 062C
 FD84   ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM
-       # <final> + 0644 + 062C + 062C
+       # <final> 0644 062C 062C
 FD85   ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM
-       # <final> + 0644 + 062E + 0645
+       # <final> 0644 062E 0645
 FD86   ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM
-       # <initial> + 0644 + 062E + 0645
+       # <initial> 0644 062E 0645
 FD87   ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM
-       # <final> + 0644 + 0645 + 062D
+       # <final> 0644 0645 062D
 FD88   ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM
-       # <initial> + 0644 + 0645 + 062D
+       # <initial> 0644 0645 062D
 FD89   ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM
-       # <initial> + 0645 + 062D + 062C
+       # <initial> 0645 062D 062C
 FD8A   ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM
-       # <initial> + 0645 + 062D + 0645
+       # <initial> 0645 062D 0645
 FD8B   ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM
-       # <final> + 0645 + 062D + 064A
+       # <final> 0645 062D 064A
 FD8C   ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM
-       # <initial> + 0645 + 062C + 062D
+       # <initial> 0645 062C 062D
 FD8D   ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM
-       # <initial> + 0645 + 062C + 0645
+       # <initial> 0645 062C 0645
 FD8E   ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM
-       # <initial> + 0645 + 062E + 062C
+       # <initial> 0645 062E 062C
 FD8F   ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
-       # <initial> + 0645 + 062E + 0645
-FD90   <reserved>
-FD91   <reserved>
+       # <initial> 0645 062E 0645
 FD92   ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM
-       # <initial> + 0645 + 062C + 062E
+       # <initial> 0645 062C 062E
 FD93   ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM
-       # <initial> + 0647 + 0645 + 062C
+       # <initial> 0647 0645 062C
 FD94   ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM
-       # <initial> + 0647 + 0645 + 0645
+       # <initial> 0647 0645 0645
 FD95   ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM
-       # <initial> + 0646 + 062D + 0645
+       # <initial> 0646 062D 0645
 FD96   ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM
-       # <final> + 0646 + 062D + 0649
+       # <final> 0646 062D 0649
 FD97   ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM
-       # <final> + 0646 + 062C + 0645
+       # <final> 0646 062C 0645
 FD98   ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM
-       # <initial> + 0646 + 062C + 0645
+       # <initial> 0646 062C 0645
 FD99   ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM
-       # <final> + 0646 + 062C + 0649
+       # <final> 0646 062C 0649
 FD9A   ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM
-       # <final> + 0646 + 0645 + 064A
+       # <final> 0646 0645 064A
 FD9B   ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM
-       # <final> + 0646 + 0645 + 0649
+       # <final> 0646 0645 0649
 FD9C   ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM
-       # <final> + 064A + 0645 + 0645
+       # <final> 064A 0645 0645
 FD9D   ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM
-       # <initial> + 064A + 0645 + 0645
+       # <initial> 064A 0645 0645
 FD9E   ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM
-       # <final> + 0628 + 062E + 064A
+       # <final> 0628 062E 064A
 FD9F   ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM
-       # <final> + 062A + 062C + 064A
+       # <final> 062A 062C 064A
 FDA0   ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM
-       # <final> + 062A + 062C + 0649
+       # <final> 062A 062C 0649
 FDA1   ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM
-       # <final> + 062A + 062E + 064A
+       # <final> 062A 062E 064A
 FDA2   ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM
-       # <final> + 062A + 062E + 0649
+       # <final> 062A 062E 0649
 FDA3   ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM
-       # <final> + 062A + 0645 + 064A
+       # <final> 062A 0645 064A
 FDA4   ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM
-       # <final> + 062A + 0645 + 0649
+       # <final> 062A 0645 0649
 FDA5   ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM
-       # <final> + 062C + 0645 + 064A
+       # <final> 062C 0645 064A
 FDA6   ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM
-       # <final> + 062C + 062D + 0649
+       # <final> 062C 062D 0649
 FDA7   ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM
-       # <final> + 062C + 0645 + 0649
+       # <final> 062C 0645 0649
 FDA8   ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM
-       # <final> + 0633 + 062E + 0649
+       # <final> 0633 062E 0649
 FDA9   ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM
-       # <final> + 0635 + 062D + 064A
+       # <final> 0635 062D 064A
 FDAA   ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM
-       # <final> + 0634 + 062D + 064A
+       # <final> 0634 062D 064A
 FDAB   ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM
-       # <final> + 0636 + 062D + 064A
+       # <final> 0636 062D 064A
 FDAC   ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM
-       # <final> + 0644 + 062C + 064A
+       # <final> 0644 062C 064A
 FDAD   ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM
-       # <final> + 0644 + 0645 + 064A
+       # <final> 0644 0645 064A
 FDAE   ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM
-       # <final> + 064A + 062D + 064A
+       # <final> 064A 062D 064A
 FDAF   ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM
-       # <final> + 064A + 062C + 064A
+       # <final> 064A 062C 064A
 FDB0   ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM
-       # <final> + 064A + 0645 + 064A
+       # <final> 064A 0645 064A
 FDB1   ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM
-       # <final> + 0645 + 0645 + 064A
+       # <final> 0645 0645 064A
 FDB2   ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM
-       # <final> + 0642 + 0645 + 064A
+       # <final> 0642 0645 064A
 FDB3   ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM
-       # <final> + 0646 + 062D + 064A
+       # <final> 0646 062D 064A
 FDB4   ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM
-       # <initial> + 0642 + 0645 + 062D
+       # <initial> 0642 0645 062D
 FDB5   ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM
-       # <initial> + 0644 + 062D + 0645
+       # <initial> 0644 062D 0645
 FDB6   ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM
-       # <final> + 0639 + 0645 + 064A
+       # <final> 0639 0645 064A
 FDB7   ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM
-       # <final> + 0643 + 0645 + 064A
+       # <final> 0643 0645 064A
 FDB8   ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM
-       # <initial> + 0646 + 062C + 062D
+       # <initial> 0646 062C 062D
 FDB9   ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM
-       # <final> + 0645 + 062E + 064A
+       # <final> 0645 062E 064A
 FDBA   ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM
-       # <initial> + 0644 + 062C + 0645
+       # <initial> 0644 062C 0645
 FDBB   ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM
-       # <final> + 0643 + 0645 + 0645
+       # <final> 0643 0645 0645
 FDBC   ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM
-       # <final> + 0644 + 062C + 0645
+       # <final> 0644 062C 0645
 FDBD   ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM
-       # <final> + 0646 + 062C + 062D
+       # <final> 0646 062C 062D
 FDBE   ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM
-       # <final> + 062C + 062D + 064A
+       # <final> 062C 062D 064A
 FDBF   ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM
-       # <final> + 062D + 062C + 064A
+       # <final> 062D 062C 064A
 FDC0   ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM
-       # <final> + 0645 + 062C + 064A
+       # <final> 0645 062C 064A
 FDC1   ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM
-       # <final> + 0641 + 0645 + 064A
+       # <final> 0641 0645 064A
 FDC2   ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM
-       # <final> + 0628 + 062D + 064A
+       # <final> 0628 062D 064A
 FDC3   ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM
-       # <initial> + 0643 + 0645 + 0645
+       # <initial> 0643 0645 0645
 FDC4   ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM
-       # <initial> + 0639 + 062C + 0645
+       # <initial> 0639 062C 0645
 FDC5   ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM
-       # <initial> + 0635 + 0645 + 0645
+       # <initial> 0635 0645 0645
 FDC6   ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM
-       # <final> + 0633 + 062E + 064A
+       # <final> 0633 062E 064A
 FDC7   ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
-       # <final> + 0646 + 062C + 064A
-FDC8   <reserved>
-FDC9   <reserved>
-FDCA   <reserved>
-FDCB   <reserved>
-FDCC   <reserved>
-FDCD   <reserved>
-FDCE   <reserved>
-FDCF   <reserved>
-FDD0   <reserved>
-FDD1   <reserved>
-FDD2   <reserved>
-FDD3   <reserved>
-FDD4   <reserved>
-FDD5   <reserved>
-FDD6   <reserved>
-FDD7   <reserved>
-FDD8   <reserved>
-FDD9   <reserved>
-FDDA   <reserved>
-FDDB   <reserved>
-FDDC   <reserved>
-FDDD   <reserved>
-FDDE   <reserved>
-FDDF   <reserved>
-FDE0   <reserved>
-FDE1   <reserved>
-FDE2   <reserved>
-FDE3   <reserved>
-FDE4   <reserved>
-FDE5   <reserved>
-FDE6   <reserved>
-FDE7   <reserved>
-FDE8   <reserved>
-FDE9   <reserved>
-FDEA   <reserved>
-FDEB   <reserved>
-FDEC   <reserved>
-FDED   <reserved>
-FDEE   <reserved>
-FDEF   <reserved>
+       # <final> 0646 062C 064A
+@              Word ligatures
 FDF0   ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM
-       # <isolated> + 0635 + 0644 + 06D2
+       # <isolated> 0635 0644 06D2
 FDF1   ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM
-       # <isolated> + 0642 + 0644 + 06D2
+       # <isolated> 0642 0644 06D2
 FDF2   ARABIC LIGATURE ALLAH ISOLATED FORM
-       # <isolated> + 0627 + 0644 + 0644 + 0647
+       # <isolated> 0627 0644 0644 0647
 FDF3   ARABIC LIGATURE AKBAR ISOLATED FORM
-       # <isolated> + 0627 + 0643 + 0628 + 0631
+       # <isolated> 0627 0643 0628 0631
 FDF4   ARABIC LIGATURE MOHAMMAD ISOLATED FORM
-       # <isolated> + 0645 + 062D + 0645 + 062F
+       # <isolated> 0645 062D 0645 062F
 FDF5   ARABIC LIGATURE SALAM ISOLATED FORM
-       # <isolated> + 0635 + 0644 + 0639 + 0645
+       # <isolated> 0635 0644 0639 0645
 FDF6   ARABIC LIGATURE RASOUL ISOLATED FORM
-       # <isolated> + 0631 + 0633 + 0648 + 0644
+       # <isolated> 0631 0633 0648 0644
 FDF7   ARABIC LIGATURE ALAYHE ISOLATED FORM
-       # <isolated> + 0639 + 0644 + 064A + 0647
+       # <isolated> 0639 0644 064A 0647
 FDF8   ARABIC LIGATURE WASALLAM ISOLATED FORM
-       # <isolated> + 0648 + 0633 + 0644 + 0645
+       # <isolated> 0648 0633 0644 0645
 FDF9   ARABIC LIGATURE SALLA ISOLATED FORM
-       # <isolated> + 0635 + 0644 + 0649
+       # <isolated> 0635 0644 0649
 FDFA   ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM
-       # <isolated> + 0635 + 0644 + 0649 + 0020 + 0627 + 0644 + 0644 + 0647 + 0020 + 0639 + 0644 + 064A + 0647 + 0020 + 0648 + 0633 + 0644 + 0645
+       # <isolated> 0635 0644 0649 0020 0627 0644 0644 0647 0020 0639 0644 064A 0647 0020 0648 0633 0644 0645
 FDFB   ARABIC LIGATURE JALLAJALALOUHOU
-       # <isolated> + 062C + 0644 + 0020 + 062C + 0644 + 0627 + 0644 + 0647
+       # <isolated> 062C 0644 0020 062C 0644 0627 0644 0647
 @@     FE20    Combining Half Marks    FE2F
 @              Combining half marks
 FE20   COMBINING LIGATURE LEFT HALF
@@ -11998,901 +16386,882 @@ FE23        COMBINING DOUBLE TILDE RIGHT HALF
 @@     FE30    CJK Compatibility Forms FE4F
 @              Glyphs for vertical variants
 FE30   PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
-       # <vertical> + 2025
+       # <vertical> 2025
 FE31   PRESENTATION FORM FOR VERTICAL EM DASH
-       # <vertical> + 2014
+       # <vertical> 2014
 FE32   PRESENTATION FORM FOR VERTICAL EN DASH
-       # <vertical> + 2013
+       # <vertical> 2013
 FE33   PRESENTATION FORM FOR VERTICAL LOW LINE
-       # <vertical> + 005F
+       # <vertical> 005F
 FE34   PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
-       # <vertical> + 005F
+       # <vertical> 005F
 FE35   PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
-       # <vertical> + 0028
+       # <vertical> 0028
 FE36   PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
-       # <vertical> + 0029
+       # <vertical> 0029
 FE37   PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
-       # <vertical> + 007B
+       # <vertical> 007B
 FE38   PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
-       # <vertical> + 007D
+       # <vertical> 007D
 FE39   PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
-       # <vertical> + 3014
+       # <vertical> 3014
 FE3A   PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
-       # <vertical> + 3015
+       # <vertical> 3015
 FE3B   PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
-       # <vertical> + 3010
+       # <vertical> 3010
 FE3C   PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
-       # <vertical> + 3011
+       # <vertical> 3011
 FE3D   PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
-       # <vertical> + 300A
+       # <vertical> 300A
 FE3E   PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
-       # <vertical> + 300B
+       # <vertical> 300B
 FE3F   PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
-       # <vertical> + 3008
+       # <vertical> 3008
 FE40   PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
-       # <vertical> + 3009
+       # <vertical> 3009
 FE41   PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
-       # <vertical> + 300C
+       # <vertical> 300C
 FE42   PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
-       # <vertical> + 300D
+       # <vertical> 300D
 FE43   PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
-       # <vertical> + 300E
+       # <vertical> 300E
 FE44   PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
-       # <vertical> + 300F
-FE45   <reserved>
-FE46   <reserved>
-FE47   <reserved>
-FE48   <reserved>
+       # <vertical> 300F
 @              Overscores and underscores
 FE49   DASHED OVERLINE
-       # 203E
+       # 203E overline
 FE4A   CENTRELINE OVERLINE
-       # 203E
+       # 203E overline
 FE4B   WAVY OVERLINE
-       # 203E
+       # 203E overline
 FE4C   DOUBLE WAVY OVERLINE
-       # 203E
+       # 203E overline
 FE4D   DASHED LOW LINE
-       # 005F
+       # 005F low line
 FE4E   CENTRELINE LOW LINE
-       # 005F
+       # 005F low line
 FE4F   WAVY LOW LINE
-       # 005F
+       # 005F low line
 @@     FE50    Small Form Variants     FE6F
 @              Small form variants
 FE50   SMALL COMMA
-       # <small> + 002C
+       # <small> 002C
 FE51   SMALL IDEOGRAPHIC COMMA
-       # <small> + 3001
+       # <small> 3001
 FE52   SMALL FULL STOP
-       # <small> + 002E
+       # <small> 002E
 FE53   <reserved>
        x (middle dot - 00B7)
 FE54   SMALL SEMICOLON
-       # <small> + 003B
+       # <small> 003B
 FE55   SMALL COLON
-       # <small> + 003A
+       # <small> 003A
 FE56   SMALL QUESTION MARK
-       # <small> + 003F
+       # <small> 003F
 FE57   SMALL EXCLAMATION MARK
-       # <small> + 0021
+       # <small> 0021
 FE58   SMALL EM DASH
-       # <small> + 2014
+       # <small> 2014
 FE59   SMALL LEFT PARENTHESIS
-       # <small> + 0028
+       # <small> 0028
 FE5A   SMALL RIGHT PARENTHESIS
-       # <small> + 0029
+       # <small> 0029
 FE5B   SMALL LEFT CURLY BRACKET
-       # <small> + 007B
+       # <small> 007B
 FE5C   SMALL RIGHT CURLY BRACKET
-       # <small> + 007D
+       # <small> 007D
 FE5D   SMALL LEFT TORTOISE SHELL BRACKET
-       # <small> + 3014
+       # <small> 3014
 FE5E   SMALL RIGHT TORTOISE SHELL BRACKET
-       # <small> + 3015
+       # <small> 3015
 FE5F   SMALL NUMBER SIGN
-       # <small> + 0023
+       # <small> 0023
 FE60   SMALL AMPERSAND
-       # <small> + 0026
+       # <small> 0026
 FE61   SMALL ASTERISK
-       # <small> + 002A
+       # <small> 002A
 FE62   SMALL PLUS SIGN
-       # <small> + 002B
+       # <small> 002B
 FE63   SMALL HYPHEN-MINUS
-       # <small> + 002D
+       # <small> 002D
 FE64   SMALL LESS-THAN SIGN
-       # <small> + 003C
+       # <small> 003C
 FE65   SMALL GREATER-THAN SIGN
-       # <small> + 003E
+       # <small> 003E
 FE66   SMALL EQUALS SIGN
-       # <small> + 003D
+       # <small> 003D
 FE67   <reserved>
        x (division slash - 2215)
 FE68   SMALL REVERSE SOLIDUS
-       # <small> + 005C
+       # <small> 005C
 FE69   SMALL DOLLAR SIGN
-       # <small> + 0024
+       # <small> 0024
 FE6A   SMALL PERCENT SIGN
-       # <small> + 0025
+       # <small> 0025
 FE6B   SMALL COMMERCIAL AT
-       # <small> + 0040
+       # <small> 0040
 @@     FE70    Arabic Presentation Forms-B     FEFF
 @              Glyphs for spacing forms of Arabic points
 FE70   ARABIC FATHATAN ISOLATED FORM
-       # <isolated> + 0020 + 064B
+       # <isolated> 0020 064B
 FE71   ARABIC TATWEEL WITH FATHATAN ABOVE
-       # <medial> + 0640 + 064B
+       # <medial> 0640 064B
 FE72   ARABIC DAMMATAN ISOLATED FORM
-       # <isolated> + 0020 + 064C
-FE73   <reserved>
+       # <isolated> 0020 064C
 FE74   ARABIC KASRATAN ISOLATED FORM
-       # <isolated> + 0020 + 064D
-FE75   <reserved>
+       # <isolated> 0020 064D
 FE76   ARABIC FATHA ISOLATED FORM
-       # <isolated> + 0020 + 064E
+       # <isolated> 0020 064E
 FE77   ARABIC FATHA MEDIAL FORM
-       # <medial> + 0640 + 064E
+       # <medial> 0640 064E
 FE78   ARABIC DAMMA ISOLATED FORM
-       # <isolated> + 0020 + 064F
+       # <isolated> 0020 064F
 FE79   ARABIC DAMMA MEDIAL FORM
-       # <medial> + 0640 + 064F
+       # <medial> 0640 064F
 FE7A   ARABIC KASRA ISOLATED FORM
-       # <isolated> + 0020 + 0650
+       # <isolated> 0020 0650
 FE7B   ARABIC KASRA MEDIAL FORM
-       # <medial> + 0640 + 0650
+       # <medial> 0640 0650
 FE7C   ARABIC SHADDA ISOLATED FORM
-       # <isolated> + 0020 + 0651
+       # <isolated> 0020 0651
 FE7D   ARABIC SHADDA MEDIAL FORM
-       # <medial> + 0640 + 0651
+       # <medial> 0640 0651
 FE7E   ARABIC SUKUN ISOLATED FORM
-       # <isolated> + 0020 + 0652
+       # <isolated> 0020 0652
 FE7F   ARABIC SUKUN MEDIAL FORM
-       # <medial> + 0640 + 0652
+       # <medial> 0640 0652
 @              Basic glyphs for Arabic language contextual forms
 FE80   ARABIC LETTER HAMZA ISOLATED FORM
-       # <isolated> + 0621
+       # <isolated> 0621
 FE81   ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
-       # <isolated> + 0622
+       # <isolated> 0622
 FE82   ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM
-       # <final> + 0622
+       # <final> 0622
 FE83   ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM
-       # <isolated> + 0623
+       # <isolated> 0623
 FE84   ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM
-       # <final> + 0623
+       # <final> 0623
 FE85   ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
-       # <isolated> + 0624
+       # <isolated> 0624
 FE86   ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM
-       # <final> + 0624
+       # <final> 0624
 FE87   ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM
-       # <isolated> + 0625
+       # <isolated> 0625
 FE88   ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM
-       # <final> + 0625
+       # <final> 0625
 FE89   ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM
-       # <isolated> + 0626
+       # <isolated> 0626
 FE8A   ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM
-       # <final> + 0626
+       # <final> 0626
 FE8B   ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
-       # <initial> + 0626
+       # <initial> 0626
 FE8C   ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM
-       # <medial> + 0626
+       # <medial> 0626
 FE8D   ARABIC LETTER ALEF ISOLATED FORM
-       # <isolated> + 0627
+       # <isolated> 0627
 FE8E   ARABIC LETTER ALEF FINAL FORM
-       # <final> + 0627
+       # <final> 0627
 FE8F   ARABIC LETTER BEH ISOLATED FORM
-       # <isolated> + 0628
+       # <isolated> 0628
 FE90   ARABIC LETTER BEH FINAL FORM
-       # <final> + 0628
+       # <final> 0628
 FE91   ARABIC LETTER BEH INITIAL FORM
-       # <initial> + 0628
+       # <initial> 0628
 FE92   ARABIC LETTER BEH MEDIAL FORM
-       # <medial> + 0628
+       # <medial> 0628
 FE93   ARABIC LETTER TEH MARBUTA ISOLATED FORM
-       # <isolated> + 0629
+       # <isolated> 0629
 FE94   ARABIC LETTER TEH MARBUTA FINAL FORM
-       # <final> + 0629
+       # <final> 0629
 FE95   ARABIC LETTER TEH ISOLATED FORM
-       # <isolated> + 062A
+       # <isolated> 062A
 FE96   ARABIC LETTER TEH FINAL FORM
-       # <final> + 062A
+       # <final> 062A
 FE97   ARABIC LETTER TEH INITIAL FORM
-       # <initial> + 062A
+       # <initial> 062A
 FE98   ARABIC LETTER TEH MEDIAL FORM
-       # <medial> + 062A
+       # <medial> 062A
 FE99   ARABIC LETTER THEH ISOLATED FORM
-       # <isolated> + 062B
+       # <isolated> 062B
 FE9A   ARABIC LETTER THEH FINAL FORM
-       # <final> + 062B
+       # <final> 062B
 FE9B   ARABIC LETTER THEH INITIAL FORM
-       # <initial> + 062B
+       # <initial> 062B
 FE9C   ARABIC LETTER THEH MEDIAL FORM
-       # <medial> + 062B
+       # <medial> 062B
 FE9D   ARABIC LETTER JEEM ISOLATED FORM
-       # <isolated> + 062C
+       # <isolated> 062C
 FE9E   ARABIC LETTER JEEM FINAL FORM
-       # <final> + 062C
+       # <final> 062C
 FE9F   ARABIC LETTER JEEM INITIAL FORM
-       # <initial> + 062C
+       # <initial> 062C
 FEA0   ARABIC LETTER JEEM MEDIAL FORM
-       # <medial> + 062C
+       # <medial> 062C
 FEA1   ARABIC LETTER HAH ISOLATED FORM
-       # <isolated> + 062D
+       # <isolated> 062D
 FEA2   ARABIC LETTER HAH FINAL FORM
-       # <final> + 062D
+       # <final> 062D
 FEA3   ARABIC LETTER HAH INITIAL FORM
-       # <initial> + 062D
+       # <initial> 062D
 FEA4   ARABIC LETTER HAH MEDIAL FORM
-       # <medial> + 062D
+       # <medial> 062D
 FEA5   ARABIC LETTER KHAH ISOLATED FORM
-       # <isolated> + 062E
+       # <isolated> 062E
 FEA6   ARABIC LETTER KHAH FINAL FORM
-       # <final> + 062E
+       # <final> 062E
 FEA7   ARABIC LETTER KHAH INITIAL FORM
-       # <initial> + 062E
+       # <initial> 062E
 FEA8   ARABIC LETTER KHAH MEDIAL FORM
-       # <medial> + 062E
+       # <medial> 062E
 FEA9   ARABIC LETTER DAL ISOLATED FORM
-       # <isolated> + 062F
+       # <isolated> 062F
 FEAA   ARABIC LETTER DAL FINAL FORM
-       # <final> + 062F
+       # <final> 062F
 FEAB   ARABIC LETTER THAL ISOLATED FORM
-       # <isolated> + 0630
+       # <isolated> 0630
 FEAC   ARABIC LETTER THAL FINAL FORM
-       # <final> + 0630
+       # <final> 0630
 FEAD   ARABIC LETTER REH ISOLATED FORM
-       # <isolated> + 0631
+       # <isolated> 0631
 FEAE   ARABIC LETTER REH FINAL FORM
-       # <final> + 0631
+       # <final> 0631
 FEAF   ARABIC LETTER ZAIN ISOLATED FORM
-       # <isolated> + 0632
+       # <isolated> 0632
 FEB0   ARABIC LETTER ZAIN FINAL FORM
-       # <final> + 0632
+       # <final> 0632
 FEB1   ARABIC LETTER SEEN ISOLATED FORM
-       # <isolated> + 0633
+       # <isolated> 0633
 FEB2   ARABIC LETTER SEEN FINAL FORM
-       # <final> + 0633
+       # <final> 0633
 FEB3   ARABIC LETTER SEEN INITIAL FORM
-       # <initial> + 0633
+       # <initial> 0633
 FEB4   ARABIC LETTER SEEN MEDIAL FORM
-       # <medial> + 0633
+       # <medial> 0633
 FEB5   ARABIC LETTER SHEEN ISOLATED FORM
-       # <isolated> + 0634
+       # <isolated> 0634
 FEB6   ARABIC LETTER SHEEN FINAL FORM
-       # <final> + 0634
+       # <final> 0634
 FEB7   ARABIC LETTER SHEEN INITIAL FORM
-       # <initial> + 0634
+       # <initial> 0634
 FEB8   ARABIC LETTER SHEEN MEDIAL FORM
-       # <medial> + 0634
+       # <medial> 0634
 FEB9   ARABIC LETTER SAD ISOLATED FORM
-       # <isolated> + 0635
+       # <isolated> 0635
 FEBA   ARABIC LETTER SAD FINAL FORM
-       # <final> + 0635
+       # <final> 0635
 FEBB   ARABIC LETTER SAD INITIAL FORM
-       # <initial> + 0635
+       # <initial> 0635
 FEBC   ARABIC LETTER SAD MEDIAL FORM
-       # <medial> + 0635
+       # <medial> 0635
 FEBD   ARABIC LETTER DAD ISOLATED FORM
-       # <isolated> + 0636
+       # <isolated> 0636
 FEBE   ARABIC LETTER DAD FINAL FORM
-       # <final> + 0636
+       # <final> 0636
 FEBF   ARABIC LETTER DAD INITIAL FORM
-       # <initial> + 0636
+       # <initial> 0636
 FEC0   ARABIC LETTER DAD MEDIAL FORM
-       # <medial> + 0636
+       # <medial> 0636
 FEC1   ARABIC LETTER TAH ISOLATED FORM
-       # <isolated> + 0637
+       # <isolated> 0637
 FEC2   ARABIC LETTER TAH FINAL FORM
-       # <final> + 0637
+       # <final> 0637
 FEC3   ARABIC LETTER TAH INITIAL FORM
-       # <initial> + 0637
+       # <initial> 0637
 FEC4   ARABIC LETTER TAH MEDIAL FORM
-       # <medial> + 0637
+       # <medial> 0637
 FEC5   ARABIC LETTER ZAH ISOLATED FORM
-       # <isolated> + 0638
+       # <isolated> 0638
 FEC6   ARABIC LETTER ZAH FINAL FORM
-       # <final> + 0638
+       # <final> 0638
 FEC7   ARABIC LETTER ZAH INITIAL FORM
-       # <initial> + 0638
+       # <initial> 0638
 FEC8   ARABIC LETTER ZAH MEDIAL FORM
-       # <medial> + 0638
+       # <medial> 0638
 FEC9   ARABIC LETTER AIN ISOLATED FORM
-       # <isolated> + 0639
+       # <isolated> 0639
 FECA   ARABIC LETTER AIN FINAL FORM
-       # <final> + 0639
+       # <final> 0639
 FECB   ARABIC LETTER AIN INITIAL FORM
-       # <initial> + 0639
+       # <initial> 0639
 FECC   ARABIC LETTER AIN MEDIAL FORM
-       # <medial> + 0639
+       # <medial> 0639
 FECD   ARABIC LETTER GHAIN ISOLATED FORM
-       # <isolated> + 063A
+       # <isolated> 063A
 FECE   ARABIC LETTER GHAIN FINAL FORM
-       # <final> + 063A
+       # <final> 063A
 FECF   ARABIC LETTER GHAIN INITIAL FORM
-       # <initial> + 063A
+       # <initial> 063A
 FED0   ARABIC LETTER GHAIN MEDIAL FORM
-       # <medial> + 063A
+       # <medial> 063A
 FED1   ARABIC LETTER FEH ISOLATED FORM
-       # <isolated> + 0641
+       # <isolated> 0641
 FED2   ARABIC LETTER FEH FINAL FORM
-       # <final> + 0641
+       # <final> 0641
 FED3   ARABIC LETTER FEH INITIAL FORM
-       # <initial> + 0641
+       # <initial> 0641
 FED4   ARABIC LETTER FEH MEDIAL FORM
-       # <medial> + 0641
+       # <medial> 0641
 FED5   ARABIC LETTER QAF ISOLATED FORM
-       # <isolated> + 0642
+       # <isolated> 0642
 FED6   ARABIC LETTER QAF FINAL FORM
-       # <final> + 0642
+       # <final> 0642
 FED7   ARABIC LETTER QAF INITIAL FORM
-       # <initial> + 0642
+       # <initial> 0642
 FED8   ARABIC LETTER QAF MEDIAL FORM
-       # <medial> + 0642
+       # <medial> 0642
 FED9   ARABIC LETTER KAF ISOLATED FORM
-       # <isolated> + 0643
+       # <isolated> 0643
 FEDA   ARABIC LETTER KAF FINAL FORM
-       # <final> + 0643
+       # <final> 0643
 FEDB   ARABIC LETTER KAF INITIAL FORM
-       # <initial> + 0643
+       # <initial> 0643
 FEDC   ARABIC LETTER KAF MEDIAL FORM
-       # <medial> + 0643
+       # <medial> 0643
 FEDD   ARABIC LETTER LAM ISOLATED FORM
-       # <isolated> + 0644
+       # <isolated> 0644
 FEDE   ARABIC LETTER LAM FINAL FORM
-       # <final> + 0644
+       # <final> 0644
 FEDF   ARABIC LETTER LAM INITIAL FORM
-       # <initial> + 0644
+       # <initial> 0644
 FEE0   ARABIC LETTER LAM MEDIAL FORM
-       # <medial> + 0644
+       # <medial> 0644
 FEE1   ARABIC LETTER MEEM ISOLATED FORM
-       # <isolated> + 0645
+       # <isolated> 0645
 FEE2   ARABIC LETTER MEEM FINAL FORM
-       # <final> + 0645
+       # <final> 0645
 FEE3   ARABIC LETTER MEEM INITIAL FORM
-       # <initial> + 0645
+       # <initial> 0645
 FEE4   ARABIC LETTER MEEM MEDIAL FORM
-       # <medial> + 0645
+       # <medial> 0645
 FEE5   ARABIC LETTER NOON ISOLATED FORM
-       # <isolated> + 0646
+       # <isolated> 0646
 FEE6   ARABIC LETTER NOON FINAL FORM
-       # <final> + 0646
+       # <final> 0646
 FEE7   ARABIC LETTER NOON INITIAL FORM
-       # <initial> + 0646
+       # <initial> 0646
 FEE8   ARABIC LETTER NOON MEDIAL FORM
-       # <medial> + 0646
+       # <medial> 0646
 FEE9   ARABIC LETTER HEH ISOLATED FORM
-       # <isolated> + 0647
+       # <isolated> 0647
 FEEA   ARABIC LETTER HEH FINAL FORM
-       # <final> + 0647
+       # <final> 0647
 FEEB   ARABIC LETTER HEH INITIAL FORM
-       # <initial> + 0647
+       # <initial> 0647
 FEEC   ARABIC LETTER HEH MEDIAL FORM
-       # <medial> + 0647
+       # <medial> 0647
 FEED   ARABIC LETTER WAW ISOLATED FORM
-       # <isolated> + 0648
+       # <isolated> 0648
 FEEE   ARABIC LETTER WAW FINAL FORM
-       # <final> + 0648
+       # <final> 0648
 FEEF   ARABIC LETTER ALEF MAKSURA ISOLATED FORM
-       # <isolated> + 0649
+       # <isolated> 0649
 FEF0   ARABIC LETTER ALEF MAKSURA FINAL FORM
-       # <final> + 0649
+       # <final> 0649
 FEF1   ARABIC LETTER YEH ISOLATED FORM
-       # <isolated> + 064A
+       # <isolated> 064A
 FEF2   ARABIC LETTER YEH FINAL FORM
-       # <final> + 064A
+       # <final> 064A
 FEF3   ARABIC LETTER YEH INITIAL FORM
-       # <initial> + 064A
+       # <initial> 064A
 FEF4   ARABIC LETTER YEH MEDIAL FORM
-       # <medial> + 064A
+       # <medial> 064A
 FEF5   ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
-       # <isolated> + 0644 + 0622
+       # <isolated> 0644 0622
 FEF6   ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM
-       # <final> + 0644 + 0622
+       # <final> 0644 0622
 FEF7   ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
-       # <isolated> + 0644 + 0623
+       # <isolated> 0644 0623
 FEF8   ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM
-       # <final> + 0644 + 0623
+       # <final> 0644 0623
 FEF9   ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM
-       # <isolated> + 0644 + 0625
+       # <isolated> 0644 0625
 FEFA   ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM
-       # <final> + 0644 + 0625
+       # <final> 0644 0625
 FEFB   ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
-       # <isolated> + 0644 + 0627
+       # <isolated> 0644 0627
 FEFC   ARABIC LIGATURE LAM WITH ALEF FINAL FORM
-       # <final> + 0644 + 0627
-FEFD   <reserved>
-FEFE   <reserved>
+       # <final> 0644 0627
 @              Special
 FEFF   ZERO WIDTH NO-BREAK SPACE
-       = BYTE ORDER MARK
-       = BOM
+       = BYTE ORDER MARK (BOM)
        * may be used to detect byte order by contrast with FFFE which is not a character
-       * may also be used as zero width no-break space
        x (<not a character> - FFFE)
+       x (zero width space - 200B)
 @@     FF00    Halfwidth and Fullwidth Forms   FFEF
 @              Fullwidth ASCII variants
-FF00   <reserved>
+@+             See ASCII 0020 - 007E
 FF01   FULLWIDTH EXCLAMATION MARK
-       # <wide> + 0021
+       # <wide> 0021
 FF02   FULLWIDTH QUOTATION MARK
-       # <wide> + 0022
+       # <wide> 0022
 FF03   FULLWIDTH NUMBER SIGN
-       # <wide> + 0023
+       # <wide> 0023
 FF04   FULLWIDTH DOLLAR SIGN
-       # <wide> + 0024
+       # <wide> 0024
 FF05   FULLWIDTH PERCENT SIGN
-       # <wide> + 0025
+       # <wide> 0025
 FF06   FULLWIDTH AMPERSAND
-       # <wide> + 0026
+       # <wide> 0026
 FF07   FULLWIDTH APOSTROPHE
-       # <wide> + 0027
+       # <wide> 0027
 FF08   FULLWIDTH LEFT PARENTHESIS
-       # <wide> + 0028
+       # <wide> 0028
 FF09   FULLWIDTH RIGHT PARENTHESIS
-       # <wide> + 0029
+       # <wide> 0029
 FF0A   FULLWIDTH ASTERISK
-       # <wide> + 002A
+       # <wide> 002A
 FF0B   FULLWIDTH PLUS SIGN
-       # <wide> + 002B
+       # <wide> 002B
 FF0C   FULLWIDTH COMMA
-       # <wide> + 002C
+       # <wide> 002C
 FF0D   FULLWIDTH HYPHEN-MINUS
-       # <wide> + 002D
+       # <wide> 002D
 FF0E   FULLWIDTH FULL STOP
-       # <wide> + 002E
+       # <wide> 002E
 FF0F   FULLWIDTH SOLIDUS
-       # <wide> + 002F
+       # <wide> 002F
 FF10   FULLWIDTH DIGIT ZERO
-       # <wide> + 0030
+       # <wide> 0030
 FF11   FULLWIDTH DIGIT ONE
-       # <wide> + 0031
+       # <wide> 0031
 FF12   FULLWIDTH DIGIT TWO
-       # <wide> + 0032
+       # <wide> 0032
 FF13   FULLWIDTH DIGIT THREE
-       # <wide> + 0033
+       # <wide> 0033
 FF14   FULLWIDTH DIGIT FOUR
-       # <wide> + 0034
+       # <wide> 0034
 FF15   FULLWIDTH DIGIT FIVE
-       # <wide> + 0035
+       # <wide> 0035
 FF16   FULLWIDTH DIGIT SIX
-       # <wide> + 0036
+       # <wide> 0036
 FF17   FULLWIDTH DIGIT SEVEN
-       # <wide> + 0037
+       # <wide> 0037
 FF18   FULLWIDTH DIGIT EIGHT
-       # <wide> + 0038
+       # <wide> 0038
 FF19   FULLWIDTH DIGIT NINE
-       # <wide> + 0039
+       # <wide> 0039
 FF1A   FULLWIDTH COLON
-       # <wide> + 003A
+       # <wide> 003A
 FF1B   FULLWIDTH SEMICOLON
-       # <wide> + 003B
+       # <wide> 003B
 FF1C   FULLWIDTH LESS-THAN SIGN
-       # <wide> + 003C
+       # <wide> 003C
 FF1D   FULLWIDTH EQUALS SIGN
-       # <wide> + 003D
+       # <wide> 003D
 FF1E   FULLWIDTH GREATER-THAN SIGN
-       # <wide> + 003E
+       # <wide> 003E
 FF1F   FULLWIDTH QUESTION MARK
-       # <wide> + 003F
+       # <wide> 003F
 FF20   FULLWIDTH COMMERCIAL AT
-       # <wide> + 0040
+       # <wide> 0040
 FF21   FULLWIDTH LATIN CAPITAL LETTER A
-       # <wide> + 0041
+       # <wide> 0041
 FF22   FULLWIDTH LATIN CAPITAL LETTER B
-       # <wide> + 0042
+       # <wide> 0042
 FF23   FULLWIDTH LATIN CAPITAL LETTER C
-       # <wide> + 0043
+       # <wide> 0043
 FF24   FULLWIDTH LATIN CAPITAL LETTER D
-       # <wide> + 0044
+       # <wide> 0044
 FF25   FULLWIDTH LATIN CAPITAL LETTER E
-       # <wide> + 0045
+       # <wide> 0045
 FF26   FULLWIDTH LATIN CAPITAL LETTER F
-       # <wide> + 0046
+       # <wide> 0046
 FF27   FULLWIDTH LATIN CAPITAL LETTER G
-       # <wide> + 0047
+       # <wide> 0047
 FF28   FULLWIDTH LATIN CAPITAL LETTER H
-       # <wide> + 0048
+       # <wide> 0048
 FF29   FULLWIDTH LATIN CAPITAL LETTER I
-       # <wide> + 0049
+       # <wide> 0049
 FF2A   FULLWIDTH LATIN CAPITAL LETTER J
-       # <wide> + 004A
+       # <wide> 004A
 FF2B   FULLWIDTH LATIN CAPITAL LETTER K
-       # <wide> + 004B
+       # <wide> 004B
 FF2C   FULLWIDTH LATIN CAPITAL LETTER L
-       # <wide> + 004C
+       # <wide> 004C
 FF2D   FULLWIDTH LATIN CAPITAL LETTER M
-       # <wide> + 004D
+       # <wide> 004D
 FF2E   FULLWIDTH LATIN CAPITAL LETTER N
-       # <wide> + 004E
+       # <wide> 004E
 FF2F   FULLWIDTH LATIN CAPITAL LETTER O
-       # <wide> + 004F
+       # <wide> 004F
 FF30   FULLWIDTH LATIN CAPITAL LETTER P
-       # <wide> + 0050
+       # <wide> 0050
 FF31   FULLWIDTH LATIN CAPITAL LETTER Q
-       # <wide> + 0051
+       # <wide> 0051
 FF32   FULLWIDTH LATIN CAPITAL LETTER R
-       # <wide> + 0052
+       # <wide> 0052
 FF33   FULLWIDTH LATIN CAPITAL LETTER S
-       # <wide> + 0053
+       # <wide> 0053
 FF34   FULLWIDTH LATIN CAPITAL LETTER T
-       # <wide> + 0054
+       # <wide> 0054
 FF35   FULLWIDTH LATIN CAPITAL LETTER U
-       # <wide> + 0055
+       # <wide> 0055
 FF36   FULLWIDTH LATIN CAPITAL LETTER V
-       # <wide> + 0056
+       # <wide> 0056
 FF37   FULLWIDTH LATIN CAPITAL LETTER W
-       # <wide> + 0057
+       # <wide> 0057
 FF38   FULLWIDTH LATIN CAPITAL LETTER X
-       # <wide> + 0058
+       # <wide> 0058
 FF39   FULLWIDTH LATIN CAPITAL LETTER Y
-       # <wide> + 0059
+       # <wide> 0059
 FF3A   FULLWIDTH LATIN CAPITAL LETTER Z
-       # <wide> + 005A
+       # <wide> 005A
 FF3B   FULLWIDTH LEFT SQUARE BRACKET
-       # <wide> + 005B
+       # <wide> 005B
 FF3C   FULLWIDTH REVERSE SOLIDUS
-       # <wide> + 005C
+       # <wide> 005C
 FF3D   FULLWIDTH RIGHT SQUARE BRACKET
-       # <wide> + 005D
+       # <wide> 005D
 FF3E   FULLWIDTH CIRCUMFLEX ACCENT
-       # <wide> + 005E
+       # <wide> 005E
 FF3F   FULLWIDTH LOW LINE
-       # <wide> + 005F
+       # <wide> 005F
 FF40   FULLWIDTH GRAVE ACCENT
-       # <wide> + 0060
+       # <wide> 0060
 FF41   FULLWIDTH LATIN SMALL LETTER A
-       # <wide> + 0061
+       # <wide> 0061
 FF42   FULLWIDTH LATIN SMALL LETTER B
-       # <wide> + 0062
+       # <wide> 0062
 FF43   FULLWIDTH LATIN SMALL LETTER C
-       # <wide> + 0063
+       # <wide> 0063
 FF44   FULLWIDTH LATIN SMALL LETTER D
-       # <wide> + 0064
+       # <wide> 0064
 FF45   FULLWIDTH LATIN SMALL LETTER E
-       # <wide> + 0065
+       # <wide> 0065
 FF46   FULLWIDTH LATIN SMALL LETTER F
-       # <wide> + 0066
+       # <wide> 0066
 FF47   FULLWIDTH LATIN SMALL LETTER G
-       # <wide> + 0067
+       # <wide> 0067
 FF48   FULLWIDTH LATIN SMALL LETTER H
-       # <wide> + 0068
+       # <wide> 0068
 FF49   FULLWIDTH LATIN SMALL LETTER I
-       # <wide> + 0069
+       # <wide> 0069
 FF4A   FULLWIDTH LATIN SMALL LETTER J
-       # <wide> + 006A
+       # <wide> 006A
 FF4B   FULLWIDTH LATIN SMALL LETTER K
-       # <wide> + 006B
+       # <wide> 006B
 FF4C   FULLWIDTH LATIN SMALL LETTER L
-       # <wide> + 006C
+       # <wide> 006C
 FF4D   FULLWIDTH LATIN SMALL LETTER M
-       # <wide> + 006D
+       # <wide> 006D
 FF4E   FULLWIDTH LATIN SMALL LETTER N
-       # <wide> + 006E
+       # <wide> 006E
 FF4F   FULLWIDTH LATIN SMALL LETTER O
-       # <wide> + 006F
+       # <wide> 006F
 FF50   FULLWIDTH LATIN SMALL LETTER P
-       # <wide> + 0070
+       # <wide> 0070
 FF51   FULLWIDTH LATIN SMALL LETTER Q
-       # <wide> + 0071
+       # <wide> 0071
 FF52   FULLWIDTH LATIN SMALL LETTER R
-       # <wide> + 0072
+       # <wide> 0072
 FF53   FULLWIDTH LATIN SMALL LETTER S
-       # <wide> + 0073
+       # <wide> 0073
 FF54   FULLWIDTH LATIN SMALL LETTER T
-       # <wide> + 0074
+       # <wide> 0074
 FF55   FULLWIDTH LATIN SMALL LETTER U
-       # <wide> + 0075
+       # <wide> 0075
 FF56   FULLWIDTH LATIN SMALL LETTER V
-       # <wide> + 0076
+       # <wide> 0076
 FF57   FULLWIDTH LATIN SMALL LETTER W
-       # <wide> + 0077
+       # <wide> 0077
 FF58   FULLWIDTH LATIN SMALL LETTER X
-       # <wide> + 0078
+       # <wide> 0078
 FF59   FULLWIDTH LATIN SMALL LETTER Y
-       # <wide> + 0079
+       # <wide> 0079
 FF5A   FULLWIDTH LATIN SMALL LETTER Z
-       # <wide> + 007A
+       # <wide> 007A
 FF5B   FULLWIDTH LEFT CURLY BRACKET
-       # <wide> + 007B
+       # <wide> 007B
 FF5C   FULLWIDTH VERTICAL LINE
-       # <wide> + 007C
+       # <wide> 007C
 FF5D   FULLWIDTH RIGHT CURLY BRACKET
-       # <wide> + 007D
+       # <wide> 007D
 FF5E   FULLWIDTH TILDE
-       # <wide> + 007E
-FF5F   <reserved>
-@              Halfwidth Katakana variants
-FF60   <reserved>
+       # <wide> 007E
+@              Halfwidth CJK punctuation
+@+             See CJK punctuation 3000 - 303F
 FF61   HALFWIDTH IDEOGRAPHIC FULL STOP
-       # <narrow> + 3002
+       # <narrow> 3002
 FF62   HALFWIDTH LEFT CORNER BRACKET
-       # <narrow> + 300C
+       # <narrow> 300C
 FF63   HALFWIDTH RIGHT CORNER BRACKET
-       # <narrow> + 300D
+       # <narrow> 300D
 FF64   HALFWIDTH IDEOGRAPHIC COMMA
-       # <narrow> + 3001
+       # <narrow> 3001
+@              Halfwidth Katakana variants
+@+             See Katakana 30A0 - 30FF
 FF65   HALFWIDTH KATAKANA MIDDLE DOT
-       # <narrow> + 30FB
+       # <narrow> 30FB
 FF66   HALFWIDTH KATAKANA LETTER WO
-       # <narrow> + 30F2
+       # <narrow> 30F2
 FF67   HALFWIDTH KATAKANA LETTER SMALL A
-       # <narrow> + 30A1
+       # <narrow> 30A1
 FF68   HALFWIDTH KATAKANA LETTER SMALL I
-       # <narrow> + 30A3
+       # <narrow> 30A3
 FF69   HALFWIDTH KATAKANA LETTER SMALL U
-       # <narrow> + 30A5
+       # <narrow> 30A5
 FF6A   HALFWIDTH KATAKANA LETTER SMALL E
-       # <narrow> + 30A7
+       # <narrow> 30A7
 FF6B   HALFWIDTH KATAKANA LETTER SMALL O
-       # <narrow> + 30A9
+       # <narrow> 30A9
 FF6C   HALFWIDTH KATAKANA LETTER SMALL YA
-       # <narrow> + 30E3
+       # <narrow> 30E3
 FF6D   HALFWIDTH KATAKANA LETTER SMALL YU
-       # <narrow> + 30E5
+       # <narrow> 30E5
 FF6E   HALFWIDTH KATAKANA LETTER SMALL YO
-       # <narrow> + 30E7
+       # <narrow> 30E7
 FF6F   HALFWIDTH KATAKANA LETTER SMALL TU
-       # <narrow> + 30C3
+       # <narrow> 30C3
 FF70   HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
-       # <narrow> + 30FC
+       # <narrow> 30FC
 FF71   HALFWIDTH KATAKANA LETTER A
-       # <narrow> + 30A2
+       # <narrow> 30A2
 FF72   HALFWIDTH KATAKANA LETTER I
-       # <narrow> + 30A4
+       # <narrow> 30A4
 FF73   HALFWIDTH KATAKANA LETTER U
-       # <narrow> + 30A6
+       # <narrow> 30A6
 FF74   HALFWIDTH KATAKANA LETTER E
-       # <narrow> + 30A8
+       # <narrow> 30A8
 FF75   HALFWIDTH KATAKANA LETTER O
-       # <narrow> + 30AA
+       # <narrow> 30AA
 FF76   HALFWIDTH KATAKANA LETTER KA
-       # <narrow> + 30AB
+       # <narrow> 30AB
 FF77   HALFWIDTH KATAKANA LETTER KI
-       # <narrow> + 30AD
+       # <narrow> 30AD
 FF78   HALFWIDTH KATAKANA LETTER KU
-       # <narrow> + 30AF
+       # <narrow> 30AF
 FF79   HALFWIDTH KATAKANA LETTER KE
-       # <narrow> + 30B1
+       # <narrow> 30B1
 FF7A   HALFWIDTH KATAKANA LETTER KO
-       # <narrow> + 30B3
+       # <narrow> 30B3
 FF7B   HALFWIDTH KATAKANA LETTER SA
-       # <narrow> + 30B5
+       # <narrow> 30B5
 FF7C   HALFWIDTH KATAKANA LETTER SI
-       # <narrow> + 30B7
+       # <narrow> 30B7
 FF7D   HALFWIDTH KATAKANA LETTER SU
-       # <narrow> + 30B9
+       # <narrow> 30B9
 FF7E   HALFWIDTH KATAKANA LETTER SE
-       # <narrow> + 30BB
+       # <narrow> 30BB
 FF7F   HALFWIDTH KATAKANA LETTER SO
-       # <narrow> + 30BD
+       # <narrow> 30BD
 FF80   HALFWIDTH KATAKANA LETTER TA
-       # <narrow> + 30BF
+       # <narrow> 30BF
 FF81   HALFWIDTH KATAKANA LETTER TI
-       # <narrow> + 30C1
+       # <narrow> 30C1
 FF82   HALFWIDTH KATAKANA LETTER TU
-       # <narrow> + 30C4
+       # <narrow> 30C4
 FF83   HALFWIDTH KATAKANA LETTER TE
-       # <narrow> + 30C6
+       # <narrow> 30C6
 FF84   HALFWIDTH KATAKANA LETTER TO
-       # <narrow> + 30C8
+       # <narrow> 30C8
 FF85   HALFWIDTH KATAKANA LETTER NA
-       # <narrow> + 30CA
+       # <narrow> 30CA
 FF86   HALFWIDTH KATAKANA LETTER NI
-       # <narrow> + 30CB
+       # <narrow> 30CB
 FF87   HALFWIDTH KATAKANA LETTER NU
-       # <narrow> + 30CC
+       # <narrow> 30CC
 FF88   HALFWIDTH KATAKANA LETTER NE
-       # <narrow> + 30CD
+       # <narrow> 30CD
 FF89   HALFWIDTH KATAKANA LETTER NO
-       # <narrow> + 30CE
+       # <narrow> 30CE
 FF8A   HALFWIDTH KATAKANA LETTER HA
-       # <narrow> + 30CF
+       # <narrow> 30CF
 FF8B   HALFWIDTH KATAKANA LETTER HI
-       # <narrow> + 30D2
+       # <narrow> 30D2
 FF8C   HALFWIDTH KATAKANA LETTER HU
-       # <narrow> + 30D5
+       # <narrow> 30D5
 FF8D   HALFWIDTH KATAKANA LETTER HE
-       # <narrow> + 30D8
+       # <narrow> 30D8
 FF8E   HALFWIDTH KATAKANA LETTER HO
-       # <narrow> + 30DB
+       # <narrow> 30DB
 FF8F   HALFWIDTH KATAKANA LETTER MA
-       # <narrow> + 30DE
+       # <narrow> 30DE
 FF90   HALFWIDTH KATAKANA LETTER MI
-       # <narrow> + 30DF
+       # <narrow> 30DF
 FF91   HALFWIDTH KATAKANA LETTER MU
-       # <narrow> + 30E0
+       # <narrow> 30E0
 FF92   HALFWIDTH KATAKANA LETTER ME
-       # <narrow> + 30E1
+       # <narrow> 30E1
 FF93   HALFWIDTH KATAKANA LETTER MO
-       # <narrow> + 30E2
+       # <narrow> 30E2
 FF94   HALFWIDTH KATAKANA LETTER YA
-       # <narrow> + 30E4
+       # <narrow> 30E4
 FF95   HALFWIDTH KATAKANA LETTER YU
-       # <narrow> + 30E6
+       # <narrow> 30E6
 FF96   HALFWIDTH KATAKANA LETTER YO
-       # <narrow> + 30E8
+       # <narrow> 30E8
 FF97   HALFWIDTH KATAKANA LETTER RA
-       # <narrow> + 30E9
+       # <narrow> 30E9
 FF98   HALFWIDTH KATAKANA LETTER RI
-       # <narrow> + 30EA
+       # <narrow> 30EA
 FF99   HALFWIDTH KATAKANA LETTER RU
-       # <narrow> + 30EB
+       # <narrow> 30EB
 FF9A   HALFWIDTH KATAKANA LETTER RE
-       # <narrow> + 30EC
+       # <narrow> 30EC
 FF9B   HALFWIDTH KATAKANA LETTER RO
-       # <narrow> + 30ED
+       # <narrow> 30ED
 FF9C   HALFWIDTH KATAKANA LETTER WA
-       # <narrow> + 30EF
+       # <narrow> 30EF
 FF9D   HALFWIDTH KATAKANA LETTER N
-       # <narrow> + 30F3
-FF9E   HALFWIDTH KATAKANA VOICED SOUND MARK
-       # <narrow> + 309B
-FF9F   HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
-       # <narrow> + 309C
+       # <narrow> 30F3
+FF9E   HALFWIDTH KATAKANA VOICED SOUND MARK (halfwidth katakana-hiragana voiced sound mark)
+       # <narrow> 3099
+FF9F   HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK (halfwidth katakana-hiragana semi-voiced sound mark)
+       # <narrow> 309A
 @              Halfwidth Hangul variants
+@+             See Hangul Compatibility Jamo 3130 - 318F
 FFA0   HALFWIDTH HANGUL FILLER
-       # <narrow> + 3164
+       # <narrow> 3164
 FFA1   HALFWIDTH HANGUL LETTER KIYEOK
-       # <narrow> + 3131
+       # <narrow> 3131
 FFA2   HALFWIDTH HANGUL LETTER SSANGKIYEOK
-       # <narrow> + 3132
+       # <narrow> 3132
 FFA3   HALFWIDTH HANGUL LETTER KIYEOK-SIOS
-       # <narrow> + 3133
+       # <narrow> 3133
 FFA4   HALFWIDTH HANGUL LETTER NIEUN
-       # <narrow> + 3134
+       # <narrow> 3134
 FFA5   HALFWIDTH HANGUL LETTER NIEUN-CIEUC
-       # <narrow> + 3135
+       # <narrow> 3135
 FFA6   HALFWIDTH HANGUL LETTER NIEUN-HIEUH
-       # <narrow> + 3136
+       # <narrow> 3136
 FFA7   HALFWIDTH HANGUL LETTER TIKEUT
-       # <narrow> + 3137
+       # <narrow> 3137
 FFA8   HALFWIDTH HANGUL LETTER SSANGTIKEUT
-       # <narrow> + 3138
+       # <narrow> 3138
 FFA9   HALFWIDTH HANGUL LETTER RIEUL
-       # <narrow> + 3139
+       # <narrow> 3139
 FFAA   HALFWIDTH HANGUL LETTER RIEUL-KIYEOK
-       # <narrow> + 313A
+       # <narrow> 313A
 FFAB   HALFWIDTH HANGUL LETTER RIEUL-MIEUM
-       # <narrow> + 313B
+       # <narrow> 313B
 FFAC   HALFWIDTH HANGUL LETTER RIEUL-PIEUP
-       # <narrow> + 313C
+       # <narrow> 313C
 FFAD   HALFWIDTH HANGUL LETTER RIEUL-SIOS
-       # <narrow> + 313D
+       # <narrow> 313D
 FFAE   HALFWIDTH HANGUL LETTER RIEUL-THIEUTH
-       # <narrow> + 313E
+       # <narrow> 313E
 FFAF   HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH
-       # <narrow> + 313F
+       # <narrow> 313F
 FFB0   HALFWIDTH HANGUL LETTER RIEUL-HIEUH
-       # <narrow> + 3140
+       # <narrow> 3140
 FFB1   HALFWIDTH HANGUL LETTER MIEUM
-       # <narrow> + 3141
+       # <narrow> 3141
 FFB2   HALFWIDTH HANGUL LETTER PIEUP
-       # <narrow> + 3142
+       # <narrow> 3142
 FFB3   HALFWIDTH HANGUL LETTER SSANGPIEUP
-       # <narrow> + 3143
+       # <narrow> 3143
 FFB4   HALFWIDTH HANGUL LETTER PIEUP-SIOS
-       # <narrow> + 3144
+       # <narrow> 3144
 FFB5   HALFWIDTH HANGUL LETTER SIOS
-       # <narrow> + 3145
+       # <narrow> 3145
 FFB6   HALFWIDTH HANGUL LETTER SSANGSIOS
-       # <narrow> + 3146
+       # <narrow> 3146
 FFB7   HALFWIDTH HANGUL LETTER IEUNG
-       # <narrow> + 3147
+       # <narrow> 3147
 FFB8   HALFWIDTH HANGUL LETTER CIEUC
-       # <narrow> + 3148
+       # <narrow> 3148
 FFB9   HALFWIDTH HANGUL LETTER SSANGCIEUC
-       # <narrow> + 3149
+       # <narrow> 3149
 FFBA   HALFWIDTH HANGUL LETTER CHIEUCH
-       # <narrow> + 314A
+       # <narrow> 314A
 FFBB   HALFWIDTH HANGUL LETTER KHIEUKH
-       # <narrow> + 314B
+       # <narrow> 314B
 FFBC   HALFWIDTH HANGUL LETTER THIEUTH
-       # <narrow> + 314C
+       # <narrow> 314C
 FFBD   HALFWIDTH HANGUL LETTER PHIEUPH
-       # <narrow> + 314D
+       # <narrow> 314D
 FFBE   HALFWIDTH HANGUL LETTER HIEUH
-       # <narrow> + 314E
-FFBF   <reserved>
-FFC0   <reserved>
-FFC1   <reserved>
+       # <narrow> 314E
 FFC2   HALFWIDTH HANGUL LETTER A
-       # <narrow> + 314F
+       # <narrow> 314F
 FFC3   HALFWIDTH HANGUL LETTER AE
-       # <narrow> + 3150
+       # <narrow> 3150
 FFC4   HALFWIDTH HANGUL LETTER YA
-       # <narrow> + 3151
+       # <narrow> 3151
 FFC5   HALFWIDTH HANGUL LETTER YAE
-       # <narrow> + 3152
+       # <narrow> 3152
 FFC6   HALFWIDTH HANGUL LETTER EO
-       # <narrow> + 3153
+       # <narrow> 3153
 FFC7   HALFWIDTH HANGUL LETTER E
-       # <narrow> + 3154
-FFC8   <reserved>
-FFC9   <reserved>
+       # <narrow> 3154
 FFCA   HALFWIDTH HANGUL LETTER YEO
-       # <narrow> + 3155
+       # <narrow> 3155
 FFCB   HALFWIDTH HANGUL LETTER YE
-       # <narrow> + 3156
+       # <narrow> 3156
 FFCC   HALFWIDTH HANGUL LETTER O
-       # <narrow> + 3157
+       # <narrow> 3157
 FFCD   HALFWIDTH HANGUL LETTER WA
-       # <narrow> + 3158
+       # <narrow> 3158
 FFCE   HALFWIDTH HANGUL LETTER WAE
-       # <narrow> + 3159
+       # <narrow> 3159
 FFCF   HALFWIDTH HANGUL LETTER OE
-       # <narrow> + 315A
-FFD0   <reserved>
-FFD1   <reserved>
+       # <narrow> 315A
 FFD2   HALFWIDTH HANGUL LETTER YO
-       # <narrow> + 315B
+       # <narrow> 315B
 FFD3   HALFWIDTH HANGUL LETTER U
-       # <narrow> + 315C
+       # <narrow> 315C
 FFD4   HALFWIDTH HANGUL LETTER WEO
-       # <narrow> + 315D
+       # <narrow> 315D
 FFD5   HALFWIDTH HANGUL LETTER WE
-       # <narrow> + 315E
+       # <narrow> 315E
 FFD6   HALFWIDTH HANGUL LETTER WI
-       # <narrow> + 315F
+       # <narrow> 315F
 FFD7   HALFWIDTH HANGUL LETTER YU
-       # <narrow> + 3160
-FFD8   <reserved>
-FFD9   <reserved>
+       # <narrow> 3160
 FFDA   HALFWIDTH HANGUL LETTER EU
-       # <narrow> + 3161
+       # <narrow> 3161
 FFDB   HALFWIDTH HANGUL LETTER YI
-       # <narrow> + 3162
+       # <narrow> 3162
 FFDC   HALFWIDTH HANGUL LETTER I
-       # <narrow> + 3163
-FFDD   <reserved>
-FFDE   <reserved>
-FFDF   <reserved>
+       # <narrow> 3163
 @              Fullwidth symbol variants
+@+             See Latin-1 00A0 - 00FF
 FFE0   FULLWIDTH CENT SIGN
-       # <wide> + 00A2
+       # <wide> 00A2
 FFE1   FULLWIDTH POUND SIGN
-       # <wide> + 00A3
+       # <wide> 00A3
 FFE2   FULLWIDTH NOT SIGN
-       # <wide> + 00AC
-FFE3   FULLWIDTH MACRON
-       # <wide> + 00AF
+       # <wide> 00AC
+FFE3   FULLWIDTH MACRON *
+       * sometimes treated as fullwidth overline
+       x (overline - 203E)
+       # <wide> 00AF
 FFE4   FULLWIDTH BROKEN BAR
-       # <wide> + 00A6
+       # <wide> 00A6
 FFE5   FULLWIDTH YEN SIGN
-       # <wide> + 00A5
+       # <wide> 00A5
 FFE6   FULLWIDTH WON SIGN
-       # <wide> + 20A9
-FFE7   <reserved>
+       # <wide> 20A9
+@              Halfwidth symbol variants
 FFE8   HALFWIDTH FORMS LIGHT VERTICAL
-       # <narrow> + 2502
+       # <narrow> 2502
 FFE9   HALFWIDTH LEFTWARDS ARROW
-       # <narrow> + 2190
+       # <narrow> 2190
 FFEA   HALFWIDTH UPWARDS ARROW
-       # <narrow> + 2191
+       # <narrow> 2191
 FFEB   HALFWIDTH RIGHTWARDS ARROW
-       # <narrow> + 2192
+       # <narrow> 2192
 FFEC   HALFWIDTH DOWNWARDS ARROW
-       # <narrow> + 2193
+       # <narrow> 2193
 FFED   HALFWIDTH BLACK SQUARE
-       # <narrow> + 25A0
+       # <narrow> 25A0
 FFEE   HALFWIDTH WHITE CIRCLE
-       # <narrow> + 25CB
+       # <narrow> 25CB
 @@     FFF0    Specials        FFFF
-@              Specials
-FFF0   <reserved>
-FFF1   <reserved>
-FFF2   <reserved>
-FFF3   <reserved>
-FFF4   <reserved>
-FFF5   <reserved>
-FFF6   <reserved>
-FFF7   <reserved>
-FFF8   <reserved>
-FFF9   <reserved>
-FFFA   <reserved>
-FFFB   <reserved>
-FFFC   <reserved>
+@              Interlinear annotation
+@+             Used internally for Japanese Ruby (furigana), etc.
+FFF9   INTERLINEAR ANNOTATION ANCHOR
+       * marks start of annotated text
+FFFA   INTERLINEAR ANNOTATION SEPARATOR
+       * marks start of annotating character(s)
+FFFB   INTERLINEAR ANNOTATION TERMINATOR
+       * marks end of annotation block
+@              Replacement characters
+FFFC   OBJECT REPLACEMENT CHARACTER
+       * used as placeholder in text for an otherwise unspecified object
 FFFD   REPLACEMENT CHARACTER
-       * used to replace incoming characters whose values are unknown or unrepresentable in Unicode
-       x (substitute - 001A)
+       * used to replace an incoming character whose value is unknown or unrepresentable in Unicode
+       * compare the use of 001A as a control character to indicate the substitute function
 @              Not character codes
 FFFE   <not a character>
        * the value FFFE is guaranteed not to be a Unicode character at all
diff --git a/lib/unicode/Props.txt b/lib/unicode/Props.txt
new file mode 100644 (file)
index 0000000..b3548e1
--- /dev/null
@@ -0,0 +1,3640 @@
+Property dump: UnicodeData-3.0.0.txt
+
+*******************************************
+
+Property dump for: 0x10000001 (Zero-width)
+
+070F
+180B..180E  (4 chars)
+200B..200F  (5 chars)
+202A..202E  (5 chars)
+206A..206F  (6 chars)
+FEFF
+FFF9..FFFB  (3 chars)
+
+*******************************************
+
+Property dump for: 0x10000002 (Space)
+
+0020
+00A0
+1680
+2000..200B  (12 chars)
+202F
+3000
+
+*******************************************
+
+Property dump for: 0x10000004 (White space)
+
+0009..000D  (5 chars)
+0020
+0085
+00A0
+1680
+2000..200B  (12 chars)
+2028..2029  (2 chars)
+202F
+3000
+
+*******************************************
+
+Property dump for: 0x00400000 (Non-break)
+
+00A0
+0F0C
+2007
+2011
+202F
+FEFF
+
+*******************************************
+
+Property dump for: 0x10000008 (ISO Control)
+
+0000..001F  (32 chars)
+007F..009F  (33 chars)
+
+*******************************************
+
+Property dump for: 0x10000090 (Bidi Control)
+
+200E..200F  (2 chars)
+202A..202E  (5 chars)
+
+*******************************************
+
+Property dump for: 0x100000A0 (Join Control)
+
+200C..200D  (2 chars)
+
+*******************************************
+
+Property dump for: 0x100000C0 (Format Control)
+
+070F
+180B..180E  (4 chars)
+206A..206F  (6 chars)
+FFF9..FFFB  (3 chars)
+
+*******************************************
+
+Property dump for: 0x20000400 (Dash)
+
+002D
+00AD
+058A
+1806
+2010..2015  (6 chars)
+207B
+208B
+2212
+301C
+3030
+FE31..FE32  (2 chars)
+FE58
+FE63
+FF0D
+
+*******************************************
+
+Property dump for: 0x20000800 (Hyphen)
+
+002D
+00AD
+058A
+1806
+2010..2011  (2 chars)
+30FB
+FE63
+FF0D
+FF65
+
+*******************************************
+
+Property dump for: 0x20001000 (Punctuation)
+
+0021..0023  (3 chars)
+0025..002A  (6 chars)
+002C..002F  (4 chars)
+003A..003B  (2 chars)
+003F..0040  (2 chars)
+005B..005D  (3 chars)
+005F
+007B
+007D
+00A1
+00AB
+00AD
+00B7
+00BB
+00BF
+037E
+0387
+055A..055F  (6 chars)
+0589..058A  (2 chars)
+05BE
+05C0
+05C3
+05F3..05F4  (2 chars)
+060C
+061B
+061F
+066A..066D  (4 chars)
+06D4
+0700..070D  (14 chars)
+0964..0965  (2 chars)
+0970
+0DF4
+0E4F
+0E5A..0E5B  (2 chars)
+0F04..0F12  (15 chars)
+0F3A..0F3D  (4 chars)
+0F85
+104A..104F  (6 chars)
+10FB
+1361..1368  (8 chars)
+166D..166E  (2 chars)
+169B..169C  (2 chars)
+16EB..16ED  (3 chars)
+17D4..17DA  (7 chars)
+17DC
+1800..180A  (11 chars)
+2010..2027  (24 chars)
+2030..2043  (20 chars)
+2045..2046  (2 chars)
+2048..204D  (6 chars)
+207D..207E  (2 chars)
+208D..208E  (2 chars)
+2329..232A  (2 chars)
+3001..3003  (3 chars)
+3008..3011  (10 chars)
+3014..301F  (12 chars)
+3030
+30FB
+FD3E..FD3F  (2 chars)
+FE30..FE44  (21 chars)
+FE49..FE52  (10 chars)
+FE54..FE61  (14 chars)
+FE63
+FE68
+FE6A..FE6B  (2 chars)
+FF01..FF03  (3 chars)
+FF05..FF0A  (6 chars)
+FF0C..FF0F  (4 chars)
+FF1A..FF1B  (2 chars)
+FF1F..FF20  (2 chars)
+FF3B..FF3D  (3 chars)
+FF3F
+FF5B
+FF5D
+FF61..FF65  (5 chars)
+
+*******************************************
+
+Property dump for: 0x00800000 (Delimiter)
+
+0000
+0009..000D  (5 chars)
+001C..0023  (8 chars)
+0028..0029  (2 chars)
+002C
+002E..002F  (2 chars)
+003A..003B  (2 chars)
+003F
+005B..005D  (3 chars)
+007B..007D  (3 chars)
+0085
+00A0..00A1  (2 chars)
+00A6..00A7  (2 chars)
+00AB
+00B6
+00BB
+00BF
+037E
+0387
+055C..055E  (3 chars)
+0589
+060C
+061B
+061F
+066B..066C  (2 chars)
+06D4
+0700..0709  (10 chars)
+070B..070D  (3 chars)
+0964..0965  (2 chars)
+0DF4
+0E5A..0E5B  (2 chars)
+0F0B
+0F0D..0F12  (6 chars)
+0F3A..0F3D  (4 chars)
+104A..104B  (2 chars)
+10FB
+1361..1368  (8 chars)
+166D..166E  (2 chars)
+1680
+169B..169C  (2 chars)
+16EB..16ED  (3 chars)
+17D4..17D6  (3 chars)
+17DA
+1802..1805  (4 chars)
+1808..1809  (2 chars)
+2000..200B  (12 chars)
+2016
+2018..201F  (8 chars)
+2028..2029  (2 chars)
+202F
+2039..203A  (2 chars)
+203C..203D  (2 chars)
+2045..2046  (2 chars)
+2048..2049  (2 chars)
+207D..207E  (2 chars)
+208D..208E  (2 chars)
+2329..232A  (2 chars)
+3000..3002  (3 chars)
+3008..3011  (10 chars)
+3014..301B  (8 chars)
+301D..301F  (3 chars)
+30FB
+FD3E..FD3F  (2 chars)
+FE35..FE44  (16 chars)
+FE50..FE52  (3 chars)
+FE54..FE57  (4 chars)
+FE59..FE5F  (7 chars)
+FE68
+FF01..FF03  (3 chars)
+FF08..FF09  (2 chars)
+FF0C
+FF0E..FF0F  (2 chars)
+FF1A..FF1B  (2 chars)
+FF1F
+FF3B..FF3D  (3 chars)
+FF5B..FF5D  (3 chars)
+FF61..FF65  (5 chars)
+FFE4
+
+*******************************************
+
+Property dump for: 0x80000003 (Line Separator)
+
+2028
+
+*******************************************
+
+Property dump for: 0x80000004 (Paragraph Separator)
+
+2029
+
+*******************************************
+
+Property dump for: 0x20002000 (Quotation Mark)
+
+0022
+0027
+00AB
+00BB
+2018..201F  (8 chars)
+2039..203A  (2 chars)
+300C..300F  (4 chars)
+301D..301F  (3 chars)
+FE41..FE44  (4 chars)
+FF02
+FF07
+FF62..FF63  (2 chars)
+
+*******************************************
+
+Property dump for: 0x20004000 (Terminal Punctuation)
+
+0021
+002C
+002E
+003A..003B  (2 chars)
+003F
+037E
+0387
+0589
+060C
+061B
+061F
+06D4
+0700..070A  (11 chars)
+070C
+0964..0965  (2 chars)
+0E5A..0E5B  (2 chars)
+104A..104B  (2 chars)
+1361..1368  (8 chars)
+166D..166E  (2 chars)
+16EB..16ED  (3 chars)
+17D4..17D6  (3 chars)
+17DA
+1802..1805  (4 chars)
+1808..1809  (2 chars)
+203C..203D  (2 chars)
+2048..2049  (2 chars)
+3001..3002  (2 chars)
+FE50..FE52  (3 chars)
+FE54..FE57  (4 chars)
+FF01
+FF0C
+FF0E
+FF1A..FF1B  (2 chars)
+FF1F
+FF61
+FF64
+
+*******************************************
+
+Property dump for: 0x20008000 (Currency Symbol)
+
+0024
+00A2..00A5  (4 chars)
+09F2..09F3  (2 chars)
+0E3F
+17DB
+20A0..20AF  (16 chars)
+FE69
+FF04
+FFE0..FFE1  (2 chars)
+FFE5..FFE6  (2 chars)
+
+*******************************************
+
+Property dump for: 0x20080000 (Math)
+
+0028..002B  (4 chars)
+002D
+002F
+003C..003E  (3 chars)
+005B..005E  (4 chars)
+007B..007E  (4 chars)
+00AC
+00B1
+00D7
+00F7
+2016
+2032..2034  (3 chars)
+2044
+207A..207E  (5 chars)
+208A..208E  (5 chars)
+20D0..20DC  (13 chars)
+20E1
+2190..2194  (5 chars)
+219A..219B  (2 chars)
+21A0
+21A3
+21A6
+21AE
+21CE..21CF  (2 chars)
+21D2
+21D4
+2200..22F1  (242 chars)
+2308..230B  (4 chars)
+2320..2321  (2 chars)
+2329..232A  (2 chars)
+25B7
+25C1
+266F
+300A..300B  (2 chars)
+301A..301B  (2 chars)
+FB29
+FE35..FE38  (4 chars)
+FE59..FE5C  (4 chars)
+FE61..FE66  (6 chars)
+FE68
+FF08..FF0B  (4 chars)
+FF0D
+FF0F
+FF1C..FF1E  (3 chars)
+FF3B..FF3E  (4 chars)
+FF5B..FF5E  (4 chars)
+FFE2
+FFE9..FFEC  (4 chars)
+
+*******************************************
+
+Property dump for: 0x20000100 (Paired Punctuation)
+
+0028..0029  (2 chars)
+005B
+005D
+007B
+007D
+00AB
+00BB
+0F3A..0F3D  (4 chars)
+169B..169C  (2 chars)
+2018..201F  (8 chars)
+2039..203A  (2 chars)
+2045..2046  (2 chars)
+207D..207E  (2 chars)
+208D..208E  (2 chars)
+2329..232A  (2 chars)
+3008..3011  (10 chars)
+3014..301B  (8 chars)
+301D..301F  (3 chars)
+FD3E..FD3F  (2 chars)
+FE35..FE44  (16 chars)
+FE59..FE5E  (6 chars)
+FF08..FF09  (2 chars)
+FF3B
+FF3D
+FF5B
+FF5D
+FF62..FF63  (2 chars)
+
+*******************************************
+
+Property dump for: 0x20000300 (Left of Pair)
+
+0028
+005B
+007B
+00AB
+0F3A
+0F3C
+169B
+2018
+201A..201C  (3 chars)
+201E..201F  (2 chars)
+2039
+2045
+207D
+208D
+2329
+3008
+300A
+300C
+300E
+3010
+3014
+3016
+3018
+301A
+301D
+FD3E
+FE35
+FE37
+FE39
+FE3B
+FE3D
+FE3F
+FE41
+FE43
+FE59
+FE5B
+FE5D
+FF08
+FF3B
+FF5B
+FF62
+
+*******************************************
+
+Property dump for: 0x20000004 (Combining)
+
+0300..034E  (79 chars)
+0360..0362  (3 chars)
+0483..0486  (4 chars)
+0488..0489  (2 chars)
+0591..05A1  (17 chars)
+05A3..05B9  (23 chars)
+05BB..05BD  (3 chars)
+05BF
+05C1..05C2  (2 chars)
+05C4
+064B..0655  (11 chars)
+0670
+06D6..06E4  (15 chars)
+06E7..06E8  (2 chars)
+06EA..06ED  (4 chars)
+0711
+0730..074A  (27 chars)
+07A6..07B0  (11 chars)
+0901..0903  (3 chars)
+093C
+093E..094D  (16 chars)
+0951..0954  (4 chars)
+0962..0963  (2 chars)
+0981..0983  (3 chars)
+09BC
+09BE..09C4  (7 chars)
+09C7..09C8  (2 chars)
+09CB..09CD  (3 chars)
+09D7
+09E2..09E3  (2 chars)
+0A02
+0A3C
+0A3E..0A42  (5 chars)
+0A47..0A48  (2 chars)
+0A4B..0A4D  (3 chars)
+0A70..0A71  (2 chars)
+0A81..0A83  (3 chars)
+0ABC
+0ABE..0AC5  (8 chars)
+0AC7..0AC9  (3 chars)
+0ACB..0ACD  (3 chars)
+0B01..0B03  (3 chars)
+0B3C
+0B3E..0B43  (6 chars)
+0B47..0B48  (2 chars)
+0B4B..0B4D  (3 chars)
+0B56..0B57  (2 chars)
+0B82..0B83  (2 chars)
+0BBE..0BC2  (5 chars)
+0BC6..0BC8  (3 chars)
+0BCA..0BCD  (4 chars)
+0BD7
+0C01..0C03  (3 chars)
+0C3E..0C44  (7 chars)
+0C46..0C48  (3 chars)
+0C4A..0C4D  (4 chars)
+0C55..0C56  (2 chars)
+0C82..0C83  (2 chars)
+0CBE..0CC4  (7 chars)
+0CC6..0CC8  (3 chars)
+0CCA..0CCD  (4 chars)
+0CD5..0CD6  (2 chars)
+0D02..0D03  (2 chars)
+0D3E..0D43  (6 chars)
+0D46..0D48  (3 chars)
+0D4A..0D4D  (4 chars)
+0D57
+0D82..0D83  (2 chars)
+0DCA
+0DCF..0DD4  (6 chars)
+0DD6
+0DD8..0DDF  (8 chars)
+0DF2..0DF3  (2 chars)
+0E31
+0E34..0E3A  (7 chars)
+0E47..0E4E  (8 chars)
+0EB1
+0EB4..0EB9  (6 chars)
+0EBB..0EBC  (2 chars)
+0EC8..0ECD  (6 chars)
+0F18..0F19  (2 chars)
+0F35
+0F37
+0F39
+0F3E..0F3F  (2 chars)
+0F71..0F84  (20 chars)
+0F86..0F87  (2 chars)
+0F90..0F97  (8 chars)
+0F99..0FBC  (36 chars)
+0FC6
+102C..1032  (7 chars)
+1036..1039  (4 chars)
+1056..1059  (4 chars)
+17B4..17D3  (32 chars)
+18A9
+20D0..20E3  (20 chars)
+302A..302F  (6 chars)
+3099..309A  (2 chars)
+F8F0..F8FF  (16 chars)
+FB1E
+FE20..FE23  (4 chars)
+
+*******************************************
+
+Property dump for: 0x20040000 (Non-spacing)
+
+0300..034E  (79 chars)
+0360..0362  (3 chars)
+0483..0486  (4 chars)
+0488..0489  (2 chars)
+0591..05A1  (17 chars)
+05A3..05B9  (23 chars)
+05BB..05BD  (3 chars)
+05BF
+05C1..05C2  (2 chars)
+05C4
+064B..0655  (11 chars)
+0670
+06D6..06E4  (15 chars)
+06E7..06E8  (2 chars)
+06EA..06ED  (4 chars)
+0711
+0730..074A  (27 chars)
+07A6..07B0  (11 chars)
+0901..0902  (2 chars)
+093C
+0941..0948  (8 chars)
+094D
+0951..0954  (4 chars)
+0962..0963  (2 chars)
+0981
+09BC
+09C1..09C4  (4 chars)
+09CD
+09E2..09E3  (2 chars)
+0A02
+0A3C
+0A41..0A42  (2 chars)
+0A47..0A48  (2 chars)
+0A4B..0A4D  (3 chars)
+0A70..0A71  (2 chars)
+0A81..0A82  (2 chars)
+0ABC
+0AC1..0AC5  (5 chars)
+0AC7..0AC8  (2 chars)
+0ACD
+0B01
+0B3C
+0B3F
+0B41..0B43  (3 chars)
+0B4D
+0B56
+0B82
+0BC0
+0BCD
+0C3E..0C40  (3 chars)
+0C46..0C48  (3 chars)
+0C4A..0C4D  (4 chars)
+0C55..0C56  (2 chars)
+0CBF
+0CC6
+0CCC..0CCD  (2 chars)
+0D41..0D43  (3 chars)
+0D4D
+0DCA
+0DD2..0DD4  (3 chars)
+0DD6
+0E31
+0E34..0E3A  (7 chars)
+0E47..0E4E  (8 chars)
+0EB1
+0EB4..0EB9  (6 chars)
+0EBB..0EBC  (2 chars)
+0EC8..0ECD  (6 chars)
+0F18..0F19  (2 chars)
+0F35
+0F37
+0F39
+0F71..0F7E  (14 chars)
+0F80..0F84  (5 chars)
+0F86..0F87  (2 chars)
+0F90..0F97  (8 chars)
+0F99..0FBC  (36 chars)
+0FC6
+102D..1030  (4 chars)
+1032
+1036..1037  (2 chars)
+1039
+1058..1059  (2 chars)
+17B7..17BD  (7 chars)
+17C6
+17C9..17D3  (11 chars)
+18A9
+20D0..20E3  (20 chars)
+302A..302F  (6 chars)
+3099..309A  (2 chars)
+F8F0..F8FF  (16 chars)
+FB1E
+FE20..FE23  (4 chars)
+
+*******************************************
+
+Property dump for: 0x20000008 (Composite)
+
+00C0..00C5  (6 chars)
+00C7..00CF  (9 chars)
+00D1..00D6  (6 chars)
+00D9..00DD  (5 chars)
+00E0..00E5  (6 chars)
+00E7..00EF  (9 chars)
+00F1..00F6  (6 chars)
+00F9..00FD  (5 chars)
+00FF..0130  (50 chars)
+0132..0137  (6 chars)
+0139..0149  (17 chars)
+014C..0151  (6 chars)
+0154..017E  (43 chars)
+01A0..01A1  (2 chars)
+01AF..01B0  (2 chars)
+01C4..01DC  (25 chars)
+01DE..01E3  (6 chars)
+01E6..01F5  (16 chars)
+01F8..0209  (18 chars)
+020C..021B  (16 chars)
+021E..021F  (2 chars)
+0226..0233  (14 chars)
+0344
+0385..0386  (2 chars)
+0388..038A  (3 chars)
+038C
+038E..0390  (3 chars)
+03AA..03B0  (7 chars)
+03CA..03CE  (5 chars)
+03D3..03D5  (3 chars)
+0400..0401  (2 chars)
+0403
+0407
+040C..040E  (3 chars)
+0419
+0439
+0450..0451  (2 chars)
+0453
+0457
+045C..045E  (3 chars)
+0476..0477  (2 chars)
+04BE..04BF  (2 chars)
+04C1..04C2  (2 chars)
+04D0..04D3  (4 chars)
+04D6..04D7  (2 chars)
+04DA..04E7  (14 chars)
+04EA..04F5  (12 chars)
+04F8..04F9  (2 chars)
+0587
+0622..0626  (5 chars)
+06C0
+06C2
+06D6..06D7  (2 chars)
+0929
+0931
+0934
+0950
+0958..095F  (8 chars)
+09CB..09CC  (2 chars)
+09DC..09DD  (2 chars)
+09DF
+0A33
+0A36
+0A59..0A5B  (3 chars)
+0A5E
+0A74
+0AD0
+0B01
+0B48
+0B4B..0B4C  (2 chars)
+0B5C..0B5D  (2 chars)
+0B94
+0BCA..0BCC  (3 chars)
+0C48
+0CC0
+0CC7..0CC8  (2 chars)
+0CCA..0CCB  (2 chars)
+0D4A..0D4C  (3 chars)
+0DDA
+0DDC..0DDE  (3 chars)
+0E33
+0EB3
+0EDC..0EDD  (2 chars)
+0F00
+0F43
+0F4D
+0F52
+0F57
+0F5C
+0F69
+0F73
+0F75..0F79  (5 chars)
+0F81
+0F93
+0F9D
+0FA2
+0FA7
+0FAC
+0FB9
+1026
+1E00..1E9B  (156 chars)
+1EA0..1EF9  (90 chars)
+1F00..1F15  (22 chars)
+1F18..1F1D  (6 chars)
+1F20..1F45  (38 chars)
+1F48..1F4D  (6 chars)
+1F50..1F57  (8 chars)
+1F59
+1F5B
+1F5D
+1F5F..1F7D  (31 chars)
+1F80..1FB4  (53 chars)
+1FB6..1FBC  (7 chars)
+1FC1..1FC4  (4 chars)
+1FC6..1FD3  (14 chars)
+1FD6..1FDB  (6 chars)
+1FDD..1FEE  (18 chars)
+1FF2..1FF4  (3 chars)
+1FF6..1FFC  (7 chars)
+203C
+2048..2049  (2 chars)
+2161..2163  (3 chars)
+2165..2168  (4 chars)
+216A..216B  (2 chars)
+2171..2173  (3 chars)
+2175..2178  (4 chars)
+217A..217B  (2 chars)
+2204
+2209
+220C
+2226
+222C..222D  (2 chars)
+222F..2230  (2 chars)
+2247
+2249
+2260
+2262
+226D..2271  (5 chars)
+2274..2275  (2 chars)
+2278..2279  (2 chars)
+2280..2281  (2 chars)
+2284..2285  (2 chars)
+2288..2289  (2 chars)
+22AC..22AF  (4 chars)
+22E0..22E3  (4 chars)
+22EA..22ED  (4 chars)
+2460..24B5  (86 chars)
+24EA
+304C
+304E
+3050
+3052
+3054
+3056
+3058
+305A
+305C
+305E
+3060
+3062
+3065
+3067
+3069
+3070..3071  (2 chars)
+3073..3074  (2 chars)
+3076..3077  (2 chars)
+3079..307A  (2 chars)
+307C..307D  (2 chars)
+3094
+309E
+30AC
+30AE
+30B0
+30B2
+30B4
+30B6
+30B8
+30BA
+30BC
+30BE
+30C0
+30C2
+30C5
+30C7
+30C9
+30D0..30D1  (2 chars)
+30D3..30D4  (2 chars)
+30D6..30D7  (2 chars)
+30D9..30DA  (2 chars)
+30DC..30DD  (2 chars)
+30F4
+30FE
+3200..321C  (29 chars)
+3220..3243  (36 chars)
+32C0..32CB  (12 chars)
+3300..3376  (119 chars)
+337B..33DD  (99 chars)
+33E0..33FE  (31 chars)
+AC00..D7A3  (11172 chars)
+FB00..FB06  (7 chars)
+FB13..FB17  (5 chars)
+FB1D
+FB1F
+FB2A..FB36  (13 chars)
+FB38..FB3C  (5 chars)
+FB3E
+FB40..FB41  (2 chars)
+FB43..FB44  (2 chars)
+FB46..FB4F  (10 chars)
+FBEA..FBFB  (18 chars)
+FC00..FD3D  (318 chars)
+FD50..FD8F  (64 chars)
+FD92..FDC7  (54 chars)
+FDF0..FDFB  (12 chars)
+FE70..FE72  (3 chars)
+FE74
+FE76..FE7F  (10 chars)
+
+*******************************************
+
+Property dump for: 0x20000080 (Hex Digit)
+
+0030..0039  (10 chars)
+0041..0046  (6 chars)
+0061..0066  (6 chars)
+FF10..FF19  (10 chars)
+FF21..FF26  (6 chars)
+FF41..FF46  (6 chars)
+
+*******************************************
+
+Property dump for: 0x20000030 (Decimal Digit)
+
+0030..0039  (10 chars)
+0660..0669  (10 chars)
+06F0..06F9  (10 chars)
+0966..096F  (10 chars)
+09E6..09EF  (10 chars)
+0A66..0A6F  (10 chars)
+0AE6..0AEF  (10 chars)
+0B66..0B6F  (10 chars)
+0BE7..0BEF  (9 chars)
+0C66..0C6F  (10 chars)
+0CE6..0CEF  (10 chars)
+0D66..0D6F  (10 chars)
+0E50..0E59  (10 chars)
+0ED0..0ED9  (10 chars)
+0F20..0F29  (10 chars)
+1040..1049  (10 chars)
+1369..1371  (9 chars)
+17E0..17E9  (10 chars)
+1810..1819  (10 chars)
+FF10..FF19  (10 chars)
+
+*******************************************
+
+Property dump for: 0x20000010 (Numeric)
+
+0030..0039  (10 chars)
+00B2..00B3  (2 chars)
+00B9
+00BC..00BE  (3 chars)
+0660..0669  (10 chars)
+06F0..06F9  (10 chars)
+0966..096F  (10 chars)
+09E6..09EF  (10 chars)
+09F4..09F9  (6 chars)
+0A66..0A6F  (10 chars)
+0AE6..0AEF  (10 chars)
+0B66..0B6F  (10 chars)
+0BE7..0BF2  (12 chars)
+0C66..0C6F  (10 chars)
+0CE6..0CEF  (10 chars)
+0D66..0D6F  (10 chars)
+0E50..0E59  (10 chars)
+0ED0..0ED9  (10 chars)
+0F20..0F33  (20 chars)
+1040..1049  (10 chars)
+1369..137C  (20 chars)
+16EE..16F0  (3 chars)
+17E0..17E9  (10 chars)
+1810..1819  (10 chars)
+2070
+2074..2079  (6 chars)
+2080..2089  (10 chars)
+2153..2183  (49 chars)
+2460..249B  (60 chars)
+24EA
+2776..2793  (30 chars)
+3007
+3021..3029  (9 chars)
+3038..303A  (3 chars)
+3192..3195  (4 chars)
+3220..3229  (10 chars)
+3280..3289  (10 chars)
+FF10..FF19  (10 chars)
+
+*******************************************
+
+Property dump for: 0x20000001 (Alphabetic)
+
+0041..005A  (26 chars)
+0061..007A  (26 chars)
+00AA
+00B5
+00BA
+00C0..00D6  (23 chars)
+00D8..00F6  (31 chars)
+00F8..021F  (296 chars)
+0222..0233  (18 chars)
+0250..02AD  (94 chars)
+02B0..02B8  (9 chars)
+02BB..02C1  (7 chars)
+02E0..02E4  (5 chars)
+02EE
+0345
+037A
+0386
+0388..038A  (3 chars)
+038C
+038E..03A1  (20 chars)
+03A3..03CE  (44 chars)
+03D0..03D7  (8 chars)
+03DA..03F3  (26 chars)
+0400..0481  (130 chars)
+048C..04C4  (57 chars)
+04C7..04C8  (2 chars)
+04CB..04CC  (2 chars)
+04D0..04F5  (38 chars)
+04F8..04F9  (2 chars)
+0531..0556  (38 chars)
+0559
+0561..0587  (39 chars)
+05D0..05EA  (27 chars)
+05F0..05F2  (3 chars)
+0621..063A  (26 chars)
+0641..0655  (21 chars)
+0670..06D3  (100 chars)
+06D5..06DC  (8 chars)
+06E1..06E8  (8 chars)
+06ED
+06FA..06FC  (3 chars)
+0710..072C  (29 chars)
+0730..073F  (16 chars)
+0780..07B0  (49 chars)
+0901..0903  (3 chars)
+0905..0939  (53 chars)
+093D..094C  (16 chars)
+0950
+0958..0963  (12 chars)
+0981..0983  (3 chars)
+0985..098C  (8 chars)
+098F..0990  (2 chars)
+0993..09A8  (22 chars)
+09AA..09B0  (7 chars)
+09B2
+09B6..09B9  (4 chars)
+09BE..09C4  (7 chars)
+09C7..09C8  (2 chars)
+09CB..09CC  (2 chars)
+09D7
+09DC..09DD  (2 chars)
+09DF..09E3  (5 chars)
+09F0..09F1  (2 chars)
+0A02
+0A05..0A0A  (6 chars)
+0A0F..0A10  (2 chars)
+0A13..0A28  (22 chars)
+0A2A..0A30  (7 chars)
+0A32..0A33  (2 chars)
+0A35..0A36  (2 chars)
+0A38..0A39  (2 chars)
+0A3E..0A42  (5 chars)
+0A47..0A48  (2 chars)
+0A4B..0A4C  (2 chars)
+0A59..0A5C  (4 chars)
+0A5E
+0A70..0A74  (5 chars)
+0A81..0A83  (3 chars)
+0A85..0A8B  (7 chars)
+0A8D
+0A8F..0A91  (3 chars)
+0A93..0AA8  (22 chars)
+0AAA..0AB0  (7 chars)
+0AB2..0AB3  (2 chars)
+0AB5..0AB9  (5 chars)
+0ABD..0AC5  (9 chars)
+0AC7..0AC9  (3 chars)
+0ACB..0ACC  (2 chars)
+0AD0
+0AE0
+0B01..0B03  (3 chars)
+0B05..0B0C  (8 chars)
+0B0F..0B10  (2 chars)
+0B13..0B28  (22 chars)
+0B2A..0B30  (7 chars)
+0B32..0B33  (2 chars)
+0B36..0B39  (4 chars)
+0B3D..0B43  (7 chars)
+0B47..0B48  (2 chars)
+0B4B..0B4C  (2 chars)
+0B56..0B57  (2 chars)
+0B5C..0B5D  (2 chars)
+0B5F..0B61  (3 chars)
+0B82..0B83  (2 chars)
+0B85..0B8A  (6 chars)
+0B8E..0B90  (3 chars)
+0B92..0B95  (4 chars)
+0B99..0B9A  (2 chars)
+0B9C
+0B9E..0B9F  (2 chars)
+0BA3..0BA4  (2 chars)
+0BA8..0BAA  (3 chars)
+0BAE..0BB5  (8 chars)
+0BB7..0BB9  (3 chars)
+0BBE..0BC2  (5 chars)
+0BC6..0BC8  (3 chars)
+0BCA..0BCC  (3 chars)
+0BD7
+0C01..0C03  (3 chars)
+0C05..0C0C  (8 chars)
+0C0E..0C10  (3 chars)
+0C12..0C28  (23 chars)
+0C2A..0C33  (10 chars)
+0C35..0C39  (5 chars)
+0C3E..0C44  (7 chars)
+0C46..0C48  (3 chars)
+0C4A..0C4C  (3 chars)
+0C55..0C56  (2 chars)
+0C60..0C61  (2 chars)
+0C82..0C83  (2 chars)
+0C85..0C8C  (8 chars)
+0C8E..0C90  (3 chars)
+0C92..0CA8  (23 chars)
+0CAA..0CB3  (10 chars)
+0CB5..0CB9  (5 chars)
+0CBE..0CC4  (7 chars)
+0CC6..0CC8  (3 chars)
+0CCA..0CCC  (3 chars)
+0CD5..0CD6  (2 chars)
+0CDE
+0CE0..0CE1  (2 chars)
+0D02..0D03  (2 chars)
+0D05..0D0C  (8 chars)
+0D0E..0D10  (3 chars)
+0D12..0D28  (23 chars)
+0D2A..0D39  (16 chars)
+0D3E..0D43  (6 chars)
+0D46..0D48  (3 chars)
+0D4A..0D4C  (3 chars)
+0D57
+0D60..0D61  (2 chars)
+0D82..0D83  (2 chars)
+0D85..0D96  (18 chars)
+0D9A..0DB1  (24 chars)
+0DB3..0DBB  (9 chars)
+0DBD
+0DC0..0DC6  (7 chars)
+0DCF..0DD4  (6 chars)
+0DD6
+0DD8..0DDF  (8 chars)
+0DF2..0DF3  (2 chars)
+0E01..0E3A  (58 chars)
+0E40..0E45  (6 chars)
+0E47
+0E4D
+0E81..0E82  (2 chars)
+0E84
+0E87..0E88  (2 chars)
+0E8A
+0E8D
+0E94..0E97  (4 chars)
+0E99..0E9F  (7 chars)
+0EA1..0EA3  (3 chars)
+0EA5
+0EA7
+0EAA..0EAB  (2 chars)
+0EAD..0EB9  (13 chars)
+0EBB..0EBD  (3 chars)
+0EC0..0EC4  (5 chars)
+0ECD
+0EDC..0EDD  (2 chars)
+0F00
+0F40..0F47  (8 chars)
+0F49..0F6A  (34 chars)
+0F71..0F81  (17 chars)
+0F88..0F8B  (4 chars)
+0F90..0F97  (8 chars)
+0F99..0FBC  (36 chars)
+1000..1021  (34 chars)
+1023..1027  (5 chars)
+1029..102A  (2 chars)
+102C..1032  (7 chars)
+1036
+1038
+1050..1059  (10 chars)
+10A0..10C5  (38 chars)
+10D0..10F6  (39 chars)
+1100..1159  (90 chars)
+115F..11A2  (68 chars)
+11A8..11F9  (82 chars)
+1200..1206  (7 chars)
+1208..1246  (63 chars)
+1248
+124A..124D  (4 chars)
+1250..1256  (7 chars)
+1258
+125A..125D  (4 chars)
+1260..1286  (39 chars)
+1288
+128A..128D  (4 chars)
+1290..12AE  (31 chars)
+12B0
+12B2..12B5  (4 chars)
+12B8..12BE  (7 chars)
+12C0
+12C2..12C5  (4 chars)
+12C8..12CE  (7 chars)
+12D0..12D6  (7 chars)
+12D8..12EE  (23 chars)
+12F0..130E  (31 chars)
+1310
+1312..1315  (4 chars)
+1318..131E  (7 chars)
+1320..1346  (39 chars)
+1348..135A  (19 chars)
+13A0..13F4  (85 chars)
+1401..166C  (620 chars)
+166F..1676  (8 chars)
+1681..169A  (26 chars)
+16A0..16EA  (75 chars)
+1780..17C8  (73 chars)
+1820..1842  (35 chars)
+1844..1877  (52 chars)
+1880..18A9  (42 chars)
+1E00..1E9B  (156 chars)
+1EA0..1EF9  (90 chars)
+1F00..1F15  (22 chars)
+1F18..1F1D  (6 chars)
+1F20..1F45  (38 chars)
+1F48..1F4D  (6 chars)
+1F50..1F57  (8 chars)
+1F59
+1F5B
+1F5D
+1F5F..1F7D  (31 chars)
+1F80..1FB4  (53 chars)
+1FB6..1FBC  (7 chars)
+1FBE
+1FC2..1FC4  (3 chars)
+1FC6..1FCC  (7 chars)
+1FD0..1FD3  (4 chars)
+1FD6..1FDB  (6 chars)
+1FE0..1FEC  (13 chars)
+1FF2..1FF4  (3 chars)
+1FF6..1FFC  (7 chars)
+207F
+2102
+2107
+210A..2113  (10 chars)
+2115
+2119..211D  (5 chars)
+2124
+2126
+2128
+212A..212D  (4 chars)
+212F..2131  (3 chars)
+2133..2139  (7 chars)
+2160..2183  (36 chars)
+3041..3094  (84 chars)
+30A1..30FA  (90 chars)
+3105..312C  (40 chars)
+3131..318E  (94 chars)
+31A0..31B7  (24 chars)
+A000..A48C  (1165 chars)
+AC00..D7A3  (11172 chars)
+FB00..FB06  (7 chars)
+FB13..FB17  (5 chars)
+FB1D
+FB1F..FB28  (10 chars)
+FB2A..FB36  (13 chars)
+FB38..FB3C  (5 chars)
+FB3E
+FB40..FB41  (2 chars)
+FB43..FB44  (2 chars)
+FB46..FBB1  (108 chars)
+FBD3..FD3D  (363 chars)
+FD50..FD8F  (64 chars)
+FD92..FDC7  (54 chars)
+FDF0..FDFB  (12 chars)
+FE70..FE72  (3 chars)
+FE74
+FE76..FEFC  (135 chars)
+FF21..FF3A  (26 chars)
+FF41..FF5A  (26 chars)
+FF66..FF6F  (10 chars)
+FF71..FF9D  (45 chars)
+FFA0..FFBE  (31 chars)
+FFC2..FFC7  (6 chars)
+FFCA..FFCF  (6 chars)
+FFD2..FFD7  (6 chars)
+FFDA..FFDC  (3 chars)
+
+*******************************************
+
+Property dump for: 0x20000002 (Ideographic)
+
+3006..3007  (2 chars)
+3021..3029  (9 chars)
+3038..303A  (3 chars)
+3400..4DB5  (6582 chars)
+4E00..9FA5  (20902 chars)
+F900..FA2D  (302 chars)
+
+*******************************************
+
+Property dump for: 0x20010000 (Diacritic)
+
+005E
+0060
+00A8
+00AF
+00B4
+00B7..00B8  (2 chars)
+02B0..02EE  (63 chars)
+0300..034E  (79 chars)
+0360..0362  (3 chars)
+0374..0375  (2 chars)
+037A
+0384..0385  (2 chars)
+0483..0486  (4 chars)
+0559
+0591..05A1  (17 chars)
+05A3..05B9  (23 chars)
+05BB..05BD  (3 chars)
+05BF
+05C1..05C2  (2 chars)
+05C4
+06DF..06E0  (2 chars)
+06E5..06E6  (2 chars)
+06EA..06EC  (3 chars)
+0740..074A  (11 chars)
+093C
+094D
+0951..0954  (4 chars)
+09BC
+09CD
+0A3C
+0A4D
+0ABC
+0ACD
+0B3C
+0B4D
+0BCD
+0C4D
+0CCD
+0D4D
+0DCA
+0E48..0E4C  (5 chars)
+0E4E
+0EC8..0ECC  (5 chars)
+0F18..0F19  (2 chars)
+0F35
+0F37
+0F39
+0F3E..0F3F  (2 chars)
+0F82..0F84  (3 chars)
+0F86..0F87  (2 chars)
+0FC6
+1037
+1039
+17C9..17D3  (11 chars)
+1FBD
+1FBF..1FC1  (3 chars)
+1FCD..1FCF  (3 chars)
+1FDD..1FDF  (3 chars)
+1FED..1FEF  (3 chars)
+1FFD..1FFE  (2 chars)
+302A..302F  (6 chars)
+3099..309C  (4 chars)
+30FC
+FB1E
+FE20..FE23  (4 chars)
+FF3E
+FF40
+FF70
+FF9E..FF9F  (2 chars)
+FFE3
+
+*******************************************
+
+Property dump for: 0x20000040 (Extender)
+
+00B7
+02D0..02D1  (2 chars)
+0640
+0E46
+0EC6
+1843
+3005
+3031..3035  (5 chars)
+309D..309E  (2 chars)
+30FC..30FE  (3 chars)
+FF70
+
+*******************************************
+
+Property dump for: 0x20020000 (Identifier Part)
+
+0030..0039  (10 chars)
+0041..005A  (26 chars)
+005F
+0061..007A  (26 chars)
+00AA
+00B5
+00BA
+00C0..00D6  (23 chars)
+00D8..00F6  (31 chars)
+00F8..021F  (296 chars)
+0222..0233  (18 chars)
+0250..02AD  (94 chars)
+02B0..02B8  (9 chars)
+02BB..02C1  (7 chars)
+02D0..02D1  (2 chars)
+02E0..02E4  (5 chars)
+02EE
+0300..034E  (79 chars)
+0360..0362  (3 chars)
+037A
+0386
+0388..038A  (3 chars)
+038C
+038E..03A1  (20 chars)
+03A3..03CE  (44 chars)
+03D0..03D7  (8 chars)
+03DA..03F3  (26 chars)
+0400..0481  (130 chars)
+0483..0486  (4 chars)
+048C..04C4  (57 chars)
+04C7..04C8  (2 chars)
+04CB..04CC  (2 chars)
+04D0..04F5  (38 chars)
+04F8..04F9  (2 chars)
+0531..0556  (38 chars)
+0559
+0561..0587  (39 chars)
+0591..05A1  (17 chars)
+05A3..05B9  (23 chars)
+05BB..05BD  (3 chars)
+05BF
+05C1..05C2  (2 chars)
+05C4
+05D0..05EA  (27 chars)
+05F0..05F2  (3 chars)
+0621..063A  (26 chars)
+0640..0655  (22 chars)
+0660..0669  (10 chars)
+0670..06D3  (100 chars)
+06D5..06DC  (8 chars)
+06DF..06E8  (10 chars)
+06EA..06ED  (4 chars)
+06F0..06FC  (13 chars)
+0710..072C  (29 chars)
+0730..074A  (27 chars)
+0780..07B0  (49 chars)
+0901..0903  (3 chars)
+0905..0939  (53 chars)
+093C..094D  (18 chars)
+0950..0954  (5 chars)
+0958..0963  (12 chars)
+0966..096F  (10 chars)
+0981..0983  (3 chars)
+0985..098C  (8 chars)
+098F..0990  (2 chars)
+0993..09A8  (22 chars)
+09AA..09B0  (7 chars)
+09B2
+09B6..09B9  (4 chars)
+09BC
+09BE..09C4  (7 chars)
+09C7..09C8  (2 chars)
+09CB..09CD  (3 chars)
+09D7
+09DC..09DD  (2 chars)
+09DF..09E3  (5 chars)
+09E6..09F1  (12 chars)
+0A02
+0A05..0A0A  (6 chars)
+0A0F..0A10  (2 chars)
+0A13..0A28  (22 chars)
+0A2A..0A30  (7 chars)
+0A32..0A33  (2 chars)
+0A35..0A36  (2 chars)
+0A38..0A39  (2 chars)
+0A3C
+0A3E..0A42  (5 chars)
+0A47..0A48  (2 chars)
+0A4B..0A4D  (3 chars)
+0A59..0A5C  (4 chars)
+0A5E
+0A66..0A74  (15 chars)
+0A81..0A83  (3 chars)
+0A85..0A8B  (7 chars)
+0A8D
+0A8F..0A91  (3 chars)
+0A93..0AA8  (22 chars)
+0AAA..0AB0  (7 chars)
+0AB2..0AB3  (2 chars)
+0AB5..0AB9  (5 chars)
+0ABC..0AC5  (10 chars)
+0AC7..0AC9  (3 chars)
+0ACB..0ACD  (3 chars)
+0AD0
+0AE0
+0AE6..0AEF  (10 chars)
+0B01..0B03  (3 chars)
+0B05..0B0C  (8 chars)
+0B0F..0B10  (2 chars)
+0B13..0B28  (22 chars)
+0B2A..0B30  (7 chars)
+0B32..0B33  (2 chars)
+0B36..0B39  (4 chars)
+0B3C..0B43  (8 chars)
+0B47..0B48  (2 chars)
+0B4B..0B4D  (3 chars)
+0B56..0B57  (2 chars)
+0B5C..0B5D  (2 chars)
+0B5F..0B61  (3 chars)
+0B66..0B6F  (10 chars)
+0B82..0B83  (2 chars)
+0B85..0B8A  (6 chars)
+0B8E..0B90  (3 chars)
+0B92..0B95  (4 chars)
+0B99..0B9A  (2 chars)
+0B9C
+0B9E..0B9F  (2 chars)
+0BA3..0BA4  (2 chars)
+0BA8..0BAA  (3 chars)
+0BAE..0BB5  (8 chars)
+0BB7..0BB9  (3 chars)
+0BBE..0BC2  (5 chars)
+0BC6..0BC8  (3 chars)
+0BCA..0BCD  (4 chars)
+0BD7
+0BE7..0BEF  (9 chars)
+0C01..0C03  (3 chars)
+0C05..0C0C  (8 chars)
+0C0E..0C10  (3 chars)
+0C12..0C28  (23 chars)
+0C2A..0C33  (10 chars)
+0C35..0C39  (5 chars)
+0C3E..0C44  (7 chars)
+0C46..0C48  (3 chars)
+0C4A..0C4D  (4 chars)
+0C55..0C56  (2 chars)
+0C60..0C61  (2 chars)
+0C66..0C6F  (10 chars)
+0C82..0C83  (2 chars)
+0C85..0C8C  (8 chars)
+0C8E..0C90  (3 chars)
+0C92..0CA8  (23 chars)
+0CAA..0CB3  (10 chars)
+0CB5..0CB9  (5 chars)
+0CBE..0CC4  (7 chars)
+0CC6..0CC8  (3 chars)
+0CCA..0CCD  (4 chars)
+0CD5..0CD6  (2 chars)
+0CDE
+0CE0..0CE1  (2 chars)
+0CE6..0CEF  (10 chars)
+0D02..0D03  (2 chars)
+0D05..0D0C  (8 chars)
+0D0E..0D10  (3 chars)
+0D12..0D28  (23 chars)
+0D2A..0D39  (16 chars)
+0D3E..0D43  (6 chars)
+0D46..0D48  (3 chars)
+0D4A..0D4D  (4 chars)
+0D57
+0D60..0D61  (2 chars)
+0D66..0D6F  (10 chars)
+0D82..0D83  (2 chars)
+0D85..0D96  (18 chars)
+0D9A..0DB1  (24 chars)
+0DB3..0DBB  (9 chars)
+0DBD
+0DC0..0DC6  (7 chars)
+0DCA
+0DCF..0DD4  (6 chars)
+0DD6
+0DD8..0DDF  (8 chars)
+0DF2..0DF3  (2 chars)
+0E01..0E3A  (58 chars)
+0E40..0E4E  (15 chars)
+0E50..0E59  (10 chars)
+0E81..0E82  (2 chars)
+0E84
+0E87..0E88  (2 chars)
+0E8A
+0E8D
+0E94..0E97  (4 chars)
+0E99..0E9F  (7 chars)
+0EA1..0EA3  (3 chars)
+0EA5
+0EA7
+0EAA..0EAB  (2 chars)
+0EAD..0EB9  (13 chars)
+0EBB..0EBD  (3 chars)
+0EC0..0EC4  (5 chars)
+0EC6
+0EC8..0ECD  (6 chars)
+0ED0..0ED9  (10 chars)
+0EDC..0EDD  (2 chars)
+0F00
+0F18..0F19  (2 chars)
+0F20..0F29  (10 chars)
+0F35
+0F37
+0F39
+0F3E..0F47  (10 chars)
+0F49..0F6A  (34 chars)
+0F71..0F84  (20 chars)
+0F86..0F8B  (6 chars)
+0F90..0F97  (8 chars)
+0F99..0FBC  (36 chars)
+0FC6
+1000..1021  (34 chars)
+1023..1027  (5 chars)
+1029..102A  (2 chars)
+102C..1032  (7 chars)
+1036..1039  (4 chars)
+1040..1049  (10 chars)
+1050..1059  (10 chars)
+10A0..10C5  (38 chars)
+10D0..10F6  (39 chars)
+1100..1159  (90 chars)
+115F..11A2  (68 chars)
+11A8..11F9  (82 chars)
+1200..1206  (7 chars)
+1208..1246  (63 chars)
+1248
+124A..124D  (4 chars)
+1250..1256  (7 chars)
+1258
+125A..125D  (4 chars)
+1260..1286  (39 chars)
+1288
+128A..128D  (4 chars)
+1290..12AE  (31 chars)
+12B0
+12B2..12B5  (4 chars)
+12B8..12BE  (7 chars)
+12C0
+12C2..12C5  (4 chars)
+12C8..12CE  (7 chars)
+12D0..12D6  (7 chars)
+12D8..12EE  (23 chars)
+12F0..130E  (31 chars)
+1310
+1312..1315  (4 chars)
+1318..131E  (7 chars)
+1320..1346  (39 chars)
+1348..135A  (19 chars)
+1369..1371  (9 chars)
+13A0..13F4  (85 chars)
+1401..166C  (620 chars)
+166F..1676  (8 chars)
+1681..169A  (26 chars)
+16A0..16EA  (75 chars)
+1780..17D3  (84 chars)
+17E0..17E9  (10 chars)
+1810..1819  (10 chars)
+1820..1877  (88 chars)
+1880..18A9  (42 chars)
+1E00..1E9B  (156 chars)
+1EA0..1EF9  (90 chars)
+1F00..1F15  (22 chars)
+1F18..1F1D  (6 chars)
+1F20..1F45  (38 chars)
+1F48..1F4D  (6 chars)
+1F50..1F57  (8 chars)
+1F59
+1F5B
+1F5D
+1F5F..1F7D  (31 chars)
+1F80..1FB4  (53 chars)
+1FB6..1FBC  (7 chars)
+1FBE
+1FC2..1FC4  (3 chars)
+1FC6..1FCC  (7 chars)
+1FD0..1FD3  (4 chars)
+1FD6..1FDB  (6 chars)
+1FE0..1FEC  (13 chars)
+1FF2..1FF4  (3 chars)
+1FF6..1FFC  (7 chars)
+203F..2040  (2 chars)
+207F
+20D0..20DC  (13 chars)
+20E1
+2102
+2107
+210A..2113  (10 chars)
+2115
+2119..211D  (5 chars)
+2124
+2126
+2128
+212A..212D  (4 chars)
+212F..2131  (3 chars)
+2133..2139  (7 chars)
+2160..2183  (36 chars)
+3005..3007  (3 chars)
+3021..302F  (15 chars)
+3031..3035  (5 chars)
+3038..303A  (3 chars)
+3041..3094  (84 chars)
+3099..309A  (2 chars)
+309D..309E  (2 chars)
+30A1..30FE  (94 chars)
+3105..312C  (40 chars)
+3131..318E  (94 chars)
+31A0..31B7  (24 chars)
+3400..4DB5  (6582 chars)
+4E00..9FA5  (20902 chars)
+A000..A48C  (1165 chars)
+AC00..D7A3  (11172 chars)
+F900..FA2D  (302 chars)
+FB00..FB06  (7 chars)
+FB13..FB17  (5 chars)
+FB1D..FB28  (12 chars)
+FB2A..FB36  (13 chars)
+FB38..FB3C  (5 chars)
+FB3E
+FB40..FB41  (2 chars)
+FB43..FB44  (2 chars)
+FB46..FBB1  (108 chars)
+FBD3..FD3D  (363 chars)
+FD50..FD8F  (64 chars)
+FD92..FDC7  (54 chars)
+FDF0..FDFB  (12 chars)
+FE20..FE23  (4 chars)
+FE33..FE34  (2 chars)
+FE4D..FE4F  (3 chars)
+FE70..FE72  (3 chars)
+FE74
+FE76..FEFC  (135 chars)
+FF10..FF19  (10 chars)
+FF21..FF3A  (26 chars)
+FF3F
+FF41..FF5A  (26 chars)
+FF65..FFBE  (90 chars)
+FFC2..FFC7  (6 chars)
+FFCA..FFCF  (6 chars)
+FFD2..FFD7  (6 chars)
+FFDA..FFDC  (3 chars)
+
+*******************************************
+
+Property dump for: 0x10000080 (Ignorable Control)
+
+0001..0008  (8 chars)
+000E..001B  (14 chars)
+007F..0084  (6 chars)
+0086..009F  (26 chars)
+070F
+180B..180E  (4 chars)
+200C..200F  (4 chars)
+202A..202E  (5 chars)
+206A..206F  (6 chars)
+FEFF
+FFF9..FFFB  (3 chars)
+
+*******************************************
+
+Property dump for: 0x01000000 (Bidi: Left-to-Right)
+
+0041..005A  (26 chars)
+0061..007A  (26 chars)
+00AA
+00B5
+00BA
+00C0..00D6  (23 chars)
+00D8..00F6  (31 chars)
+00F8..021F  (296 chars)
+0222..0233  (18 chars)
+0250..02AD  (94 chars)
+02B0..02B8  (9 chars)
+02BB..02C1  (7 chars)
+02D0..02D1  (2 chars)
+02E0..02E4  (5 chars)
+02EE
+037A
+0386
+0388..038A  (3 chars)
+038C
+038E..03A1  (20 chars)
+03A3..03CE  (44 chars)
+03D0..03D7  (8 chars)
+03DA..03F3  (26 chars)
+0400..0482  (131 chars)
+048C..04C4  (57 chars)
+04C7..04C8  (2 chars)
+04CB..04CC  (2 chars)
+04D0..04F5  (38 chars)
+04F8..04F9  (2 chars)
+0531..0556  (38 chars)
+0559..055F  (7 chars)
+0561..0587  (39 chars)
+0589
+0903
+0905..0939  (53 chars)
+093D..0940  (4 chars)
+0949..094C  (4 chars)
+0950
+0958..0961  (10 chars)
+0964..0970  (13 chars)
+0982..0983  (2 chars)
+0985..098C  (8 chars)
+098F..0990  (2 chars)
+0993..09A8  (22 chars)
+09AA..09B0  (7 chars)
+09B2
+09B6..09B9  (4 chars)
+09BE..09C0  (3 chars)
+09C7..09C8  (2 chars)
+09CB..09CC  (2 chars)
+09D7
+09DC..09DD  (2 chars)
+09DF..09E1  (3 chars)
+09E6..09F1  (12 chars)
+09F4..09FA  (7 chars)
+0A05..0A0A  (6 chars)
+0A0F..0A10  (2 chars)
+0A13..0A28  (22 chars)
+0A2A..0A30  (7 chars)
+0A32..0A33  (2 chars)
+0A35..0A36  (2 chars)
+0A38..0A39  (2 chars)
+0A3E..0A40  (3 chars)
+0A59..0A5C  (4 chars)
+0A5E
+0A66..0A6F  (10 chars)
+0A72..0A74  (3 chars)
+0A83
+0A85..0A8B  (7 chars)
+0A8D
+0A8F..0A91  (3 chars)
+0A93..0AA8  (22 chars)
+0AAA..0AB0  (7 chars)
+0AB2..0AB3  (2 chars)
+0AB5..0AB9  (5 chars)
+0ABD..0AC0  (4 chars)
+0AC9
+0ACB..0ACC  (2 chars)
+0AD0
+0AE0
+0AE6..0AEF  (10 chars)
+0B02..0B03  (2 chars)
+0B05..0B0C  (8 chars)
+0B0F..0B10  (2 chars)
+0B13..0B28  (22 chars)
+0B2A..0B30  (7 chars)
+0B32..0B33  (2 chars)
+0B36..0B39  (4 chars)
+0B3D..0B3E  (2 chars)
+0B40
+0B47..0B48  (2 chars)
+0B4B..0B4C  (2 chars)
+0B57
+0B5C..0B5D  (2 chars)
+0B5F..0B61  (3 chars)
+0B66..0B70  (11 chars)
+0B83
+0B85..0B8A  (6 chars)
+0B8E..0B90  (3 chars)
+0B92..0B95  (4 chars)
+0B99..0B9A  (2 chars)
+0B9C
+0B9E..0B9F  (2 chars)
+0BA3..0BA4  (2 chars)
+0BA8..0BAA  (3 chars)
+0BAE..0BB5  (8 chars)
+0BB7..0BB9  (3 chars)
+0BBE..0BBF  (2 chars)
+0BC1..0BC2  (2 chars)
+0BC6..0BC8  (3 chars)
+0BCA..0BCC  (3 chars)
+0BD7
+0BE7..0BF2  (12 chars)
+0C01..0C03  (3 chars)
+0C05..0C0C  (8 chars)
+0C0E..0C10  (3 chars)
+0C12..0C28  (23 chars)
+0C2A..0C33  (10 chars)
+0C35..0C39  (5 chars)
+0C41..0C44  (4 chars)
+0C60..0C61  (2 chars)
+0C66..0C6F  (10 chars)
+0C82..0C83  (2 chars)
+0C85..0C8C  (8 chars)
+0C8E..0C90  (3 chars)
+0C92..0CA8  (23 chars)
+0CAA..0CB3  (10 chars)
+0CB5..0CB9  (5 chars)
+0CBE
+0CC0..0CC4  (5 chars)
+0CC7..0CC8  (2 chars)
+0CCA..0CCB  (2 chars)
+0CD5..0CD6  (2 chars)
+0CDE
+0CE0..0CE1  (2 chars)
+0CE6..0CEF  (10 chars)
+0D02..0D03  (2 chars)
+0D05..0D0C  (8 chars)
+0D0E..0D10  (3 chars)
+0D12..0D28  (23 chars)
+0D2A..0D39  (16 chars)
+0D3E..0D40  (3 chars)
+0D46..0D48  (3 chars)
+0D4A..0D4C  (3 chars)
+0D57
+0D60..0D61  (2 chars)
+0D66..0D6F  (10 chars)
+0D82..0D83  (2 chars)
+0D85..0D96  (18 chars)
+0D9A..0DB1  (24 chars)
+0DB3..0DBB  (9 chars)
+0DBD
+0DC0..0DC6  (7 chars)
+0DCF..0DD1  (3 chars)
+0DD8..0DDF  (8 chars)
+0DF2..0DF4  (3 chars)
+0E01..0E30  (48 chars)
+0E32..0E33  (2 chars)
+0E40..0E46  (7 chars)
+0E4F..0E5B  (13 chars)
+0E81..0E82  (2 chars)
+0E84
+0E87..0E88  (2 chars)
+0E8A
+0E8D
+0E94..0E97  (4 chars)
+0E99..0E9F  (7 chars)
+0EA1..0EA3  (3 chars)
+0EA5
+0EA7
+0EAA..0EAB  (2 chars)
+0EAD..0EB0  (4 chars)
+0EB2..0EB3  (2 chars)
+0EBD
+0EC0..0EC4  (5 chars)
+0EC6
+0ED0..0ED9  (10 chars)
+0EDC..0EDD  (2 chars)
+0F00..0F17  (24 chars)
+0F1A..0F34  (27 chars)
+0F36
+0F38
+0F3E..0F47  (10 chars)
+0F49..0F6A  (34 chars)
+0F7F
+0F85
+0F88..0F8B  (4 chars)
+0FBE..0FC5  (8 chars)
+0FC7..0FCC  (6 chars)
+0FCF
+1000..1021  (34 chars)
+1023..1027  (5 chars)
+1029..102A  (2 chars)
+102C
+1031
+1038
+1040..1057  (24 chars)
+10A0..10C5  (38 chars)
+10D0..10F6  (39 chars)
+10FB
+1100..1159  (90 chars)
+115F..11A2  (68 chars)
+11A8..11F9  (82 chars)
+1200..1206  (7 chars)
+1208..1246  (63 chars)
+1248
+124A..124D  (4 chars)
+1250..1256  (7 chars)
+1258
+125A..125D  (4 chars)
+1260..1286  (39 chars)
+1288
+128A..128D  (4 chars)
+1290..12AE  (31 chars)
+12B0
+12B2..12B5  (4 chars)
+12B8..12BE  (7 chars)
+12C0
+12C2..12C5  (4 chars)
+12C8..12CE  (7 chars)
+12D0..12D6  (7 chars)
+12D8..12EE  (23 chars)
+12F0..130E  (31 chars)
+1310
+1312..1315  (4 chars)
+1318..131E  (7 chars)
+1320..1346  (39 chars)
+1348..135A  (19 chars)
+1361..137C  (28 chars)
+13A0..13F4  (85 chars)
+1401..1676  (630 chars)
+1681..169A  (26 chars)
+16A0..16F0  (81 chars)
+1780..17B6  (55 chars)
+17BE..17C5  (8 chars)
+17C7..17C8  (2 chars)
+17D4..17DA  (7 chars)
+17DC
+17E0..17E9  (10 chars)
+1810..1819  (10 chars)
+1820..1877  (88 chars)
+1880..18A8  (41 chars)
+1E00..1E9B  (156 chars)
+1EA0..1EF9  (90 chars)
+1F00..1F15  (22 chars)
+1F18..1F1D  (6 chars)
+1F20..1F45  (38 chars)
+1F48..1F4D  (6 chars)
+1F50..1F57  (8 chars)
+1F59
+1F5B
+1F5D
+1F5F..1F7D  (31 chars)
+1F80..1FB4  (53 chars)
+1FB6..1FBC  (7 chars)
+1FBE
+1FC2..1FC4  (3 chars)
+1FC6..1FCC  (7 chars)
+1FD0..1FD3  (4 chars)
+1FD6..1FDB  (6 chars)
+1FE0..1FEC  (13 chars)
+1FF2..1FF4  (3 chars)
+1FF6..1FFC  (7 chars)
+200E
+207F
+2102
+2107
+210A..2113  (10 chars)
+2115
+2119..211D  (5 chars)
+2124
+2126
+2128
+212A..212D  (4 chars)
+212F..2131  (3 chars)
+2133..2139  (7 chars)
+2160..2183  (36 chars)
+2336..237A  (69 chars)
+2395
+249C..24E9  (78 chars)
+3005..3007  (3 chars)
+3021..3029  (9 chars)
+3031..3035  (5 chars)
+3038..303A  (3 chars)
+3041..3094  (84 chars)
+309D..309E  (2 chars)
+30A1..30FA  (90 chars)
+30FC..30FE  (3 chars)
+3105..312C  (40 chars)
+3131..318E  (94 chars)
+3190..31B7  (40 chars)
+3200..321C  (29 chars)
+3220..3243  (36 chars)
+3260..327B  (28 chars)
+327F..32B0  (50 chars)
+32C0..32CB  (12 chars)
+32D0..32FE  (47 chars)
+3300..3376  (119 chars)
+337B..33DD  (99 chars)
+33E0..33FE  (31 chars)
+3400..4DB5  (6582 chars)
+4E00..9FA5  (20902 chars)
+A000..A48C  (1165 chars)
+AC00..D7A3  (11172 chars)
+D800..F7FF  (8192 chars)
+F900..FA2D  (302 chars)
+FB00..FB06  (7 chars)
+FB13..FB17  (5 chars)
+FF21..FF3A  (26 chars)
+FF41..FF5A  (26 chars)
+FF66..FFBE  (89 chars)
+FFC2..FFC7  (6 chars)
+FFCA..FFCF  (6 chars)
+FFD2..FFD7  (6 chars)
+FFDA..FFDC  (3 chars)
+
+*******************************************
+
+Property dump for: 0x02000000 (Bidi: (Hebrew) Right-to-Left)
+
+05BE
+05C0
+05C3
+05D0..05EA  (27 chars)
+05F0..05F4  (5 chars)
+200F
+FB1D
+FB1F..FB28  (10 chars)
+FB2A..FB36  (13 chars)
+FB38..FB3C  (5 chars)
+FB3E
+FB40..FB41  (2 chars)
+FB43..FB44  (2 chars)
+FB46..FB4F  (10 chars)
+
+*******************************************
+
+Property dump for: 0x0B000000 (Bidi: Arabic Right-to-Left)
+
+061B
+061F
+0621..063A  (26 chars)
+0640..064A  (11 chars)
+066D
+0671..06D5  (101 chars)
+06E5..06E6  (2 chars)
+06FA..06FE  (5 chars)
+0700..070D  (14 chars)
+0710
+0712..072C  (27 chars)
+0780..07A5  (38 chars)
+FB50..FBB1  (98 chars)
+FBD3..FD3D  (363 chars)
+FD50..FD8F  (64 chars)
+FD92..FDC7  (54 chars)
+FDF0..FDFB  (12 chars)
+FE70..FE72  (3 chars)
+FE74
+FE76..FEFC  (135 chars)
+
+*******************************************
+
+Property dump for: 0x03000000 (Bidi: European Digit)
+
+0030..0039  (10 chars)
+00B2..00B3  (2 chars)
+00B9
+06F0..06F9  (10 chars)
+2070
+2074..2079  (6 chars)
+2080..2089  (10 chars)
+2460..249B  (60 chars)
+24EA
+FF10..FF19  (10 chars)
+
+*******************************************
+
+Property dump for: 0x04000000 (Bidi: Eur Num Separator)
+
+002F
+FF0F
+
+*******************************************
+
+Property dump for: 0x05000000 (Bidi: Eur Num Terminator)
+
+0023..0025  (3 chars)
+002B
+002D
+00A2..00A5  (4 chars)
+00B0..00B1  (2 chars)
+066A
+09F2..09F3  (2 chars)
+0E3F
+17DB
+2030..2034  (5 chars)
+207A..207B  (2 chars)
+208A..208B  (2 chars)
+20A0..20AF  (16 chars)
+212E
+2212..2213  (2 chars)
+FB29
+FE5F
+FE62..FE63  (2 chars)
+FE69..FE6A  (2 chars)
+FF03..FF05  (3 chars)
+FF0B
+FF0D
+FFE0..FFE1  (2 chars)
+FFE5..FFE6  (2 chars)
+
+*******************************************
+
+Property dump for: 0x06000000 (Bidi: Arabic Digit)
+
+0660..0669  (10 chars)
+066B..066C  (2 chars)
+
+*******************************************
+
+Property dump for: 0x07000000 (Bidi: Common Separator)
+
+002C
+002E
+003A
+00A0
+060C
+FE50
+FE52
+FE55
+FF0C
+FF0E
+FF1A
+
+*******************************************
+
+Property dump for: 0x08000000 (Bidi: Block Separator)
+
+000A
+000D
+001C..001E  (3 chars)
+0085
+2029
+
+*******************************************
+
+Property dump for: 0x09000000 (Bidi: Segment Separator)
+
+0009
+000B
+001F
+
+*******************************************
+
+Property dump for: 0x0A000000 (Bidi: Whitespace)
+
+000C
+0020
+1680
+2000..200A  (11 chars)
+2028
+202F
+3000
+
+*******************************************
+
+Property dump for: 0x0C000000 (Bidi: Non-spacing Mark)
+
+0300..034E  (79 chars)
+0360..0362  (3 chars)
+0483..0486  (4 chars)
+0488..0489  (2 chars)
+0591..05A1  (17 chars)
+05A3..05B9  (23 chars)
+05BB..05BD  (3 chars)
+05BF
+05C1..05C2  (2 chars)
+05C4
+064B..0655  (11 chars)
+0670
+06D6..06E4  (15 chars)
+06E7..06E8  (2 chars)
+06EA..06ED  (4 chars)
+0711
+0730..074A  (27 chars)
+07A6..07B0  (11 chars)
+0901..0902  (2 chars)
+093C
+0941..0948  (8 chars)
+094D
+0951..0954  (4 chars)
+0962..0963  (2 chars)
+0981
+09BC
+09C1..09C4  (4 chars)
+09CD
+09E2..09E3  (2 chars)
+0A02
+0A3C
+0A41..0A42  (2 chars)
+0A47..0A48  (2 chars)
+0A4B..0A4D  (3 chars)
+0A70..0A71  (2 chars)
+0A81..0A82  (2 chars)
+0ABC
+0AC1..0AC5  (5 chars)
+0AC7..0AC8  (2 chars)
+0ACD
+0B01
+0B3C
+0B3F
+0B41..0B43  (3 chars)
+0B4D
+0B56
+0B82
+0BC0
+0BCD
+0C3E..0C40  (3 chars)
+0C46..0C48  (3 chars)
+0C4A..0C4D  (4 chars)
+0C55..0C56  (2 chars)
+0CBF
+0CC6
+0CCC..0CCD  (2 chars)
+0D41..0D43  (3 chars)
+0D4D
+0DCA
+0DD2..0DD4  (3 chars)
+0DD6
+0E31
+0E34..0E3A  (7 chars)
+0E47..0E4E  (8 chars)
+0EB1
+0EB4..0EB9  (6 chars)
+0EBB..0EBC  (2 chars)
+0EC8..0ECD  (6 chars)
+0F18..0F19  (2 chars)
+0F35
+0F37
+0F39
+0F71..0F7E  (14 chars)
+0F80..0F84  (5 chars)
+0F86..0F87  (2 chars)
+0F90..0F97  (8 chars)
+0F99..0FBC  (36 chars)
+0FC6
+102D..1030  (4 chars)
+1032
+1036..1037  (2 chars)
+1039
+1058..1059  (2 chars)
+17B7..17BD  (7 chars)
+17C6
+17C9..17D3  (11 chars)
+18A9
+20D0..20E3  (20 chars)
+302A..302F  (6 chars)
+3099..309A  (2 chars)
+F8F0..F8FF  (16 chars)
+FB1E
+FE20..FE23  (4 chars)
+
+*******************************************
+
+Property dump for: 0x0D000000 (Bidi: Boundary Neutral)
+
+0000..0008  (9 chars)
+000E..001B  (14 chars)
+007F..0084  (6 chars)
+0086..009F  (26 chars)
+070F
+180B..180E  (4 chars)
+200B..200D  (3 chars)
+206A..206F  (6 chars)
+FEFF
+FFF9..FFFB  (3 chars)
+
+*******************************************
+
+Property dump for: 0x0E000000 (Bidi: PDF)
+
+202C
+
+*******************************************
+
+Property dump for: 0x0F000000 (Bidi: Embedding or Override)
+
+202A..202B  (2 chars)
+202D..202E  (2 chars)
+
+*******************************************
+
+Property dump for: 0x80000009 (Bidi: Other Neutral)
+
+0021..0022  (2 chars)
+0026..002A  (5 chars)
+003B..0040  (6 chars)
+005B..0060  (6 chars)
+007B..007E  (4 chars)
+00A1
+00A6..00A9  (4 chars)
+00AB..00AF  (5 chars)
+00B4
+00B6..00B8  (3 chars)
+00BB..00BF  (5 chars)
+00D7
+00F7
+02B9..02BA  (2 chars)
+02C2..02CF  (14 chars)
+02D2..02DF  (14 chars)
+02E5..02ED  (9 chars)
+0374..0375  (2 chars)
+037E
+0384..0385  (2 chars)
+0387
+058A
+06E9
+0F3A..0F3D  (4 chars)
+169B..169C  (2 chars)
+1800..180A  (11 chars)
+1FBD
+1FBF..1FC1  (3 chars)
+1FCD..1FCF  (3 chars)
+1FDD..1FDF  (3 chars)
+1FED..1FEF  (3 chars)
+1FFD..1FFE  (2 chars)
+2010..2027  (24 chars)
+2035..2046  (18 chars)
+2048..204D  (6 chars)
+207C..207E  (3 chars)
+208C..208E  (3 chars)
+2100..2101  (2 chars)
+2103..2106  (4 chars)
+2108..2109  (2 chars)
+2114
+2116..2118  (3 chars)
+211E..2123  (6 chars)
+2125
+2127
+2129
+2132
+213A
+2153..215F  (13 chars)
+2190..21F3  (100 chars)
+2200..2211  (18 chars)
+2214..22F1  (222 chars)
+2300..2335  (54 chars)
+237B
+237D..2394  (24 chars)
+2396..239A  (5 chars)
+2400..2426  (39 chars)
+2440..244A  (11 chars)
+2500..2595  (150 chars)
+25A0..25F7  (88 chars)
+2600..2613  (20 chars)
+2619..2671  (89 chars)
+2701..2704  (4 chars)
+2706..2709  (4 chars)
+270C..2727  (28 chars)
+2729..274B  (35 chars)
+274D
+274F..2752  (4 chars)
+2756
+2758..275E  (7 chars)
+2761..2767  (7 chars)
+2776..2794  (31 chars)
+2798..27AF  (24 chars)
+27B1..27BE  (14 chars)
+2800..28FF  (256 chars)
+2E80..2E99  (26 chars)
+2E9B..2EF3  (89 chars)
+2F00..2FD5  (214 chars)
+2FF0..2FFB  (12 chars)
+3001..3004  (4 chars)
+3008..3020  (25 chars)
+3030
+3036..3037  (2 chars)
+303E..303F  (2 chars)
+309B..309C  (2 chars)
+30FB
+A490..A4A1  (18 chars)
+A4A4..A4B3  (16 chars)
+A4B5..A4C0  (12 chars)
+A4C2..A4C4  (3 chars)
+A4C6
+FD3E..FD3F  (2 chars)
+FE30..FE44  (21 chars)
+FE49..FE4F  (7 chars)
+FE51
+FE54
+FE56..FE5E  (9 chars)
+FE60..FE61  (2 chars)
+FE64..FE66  (3 chars)
+FE68
+FE6B
+FF01..FF02  (2 chars)
+FF06..FF0A  (5 chars)
+FF1B..FF20  (6 chars)
+FF3B..FF40  (6 chars)
+FF5B..FF5E  (4 chars)
+FF61..FF65  (5 chars)
+FFE2..FFE4  (3 chars)
+FFE8..FFEE  (7 chars)
+FFFC..FFFD  (2 chars)
+
+*******************************************
+
+Property dump for: 0x80000005 (Private Use)
+
+E000..F8FF  (6400 chars)
+
+*******************************************
+
+Property dump for: 0x80000000 (Uppercase)
+
+0041..005A  (26 chars)
+00C0..00D6  (23 chars)
+00D8..00DE  (7 chars)
+0100
+0102
+0104
+0106
+0108
+010A
+010C
+010E
+0110
+0112
+0114
+0116
+0118
+011A
+011C
+011E
+0120
+0122
+0124
+0126
+0128
+012A
+012C
+012E
+0130
+0132
+0134
+0136
+0139
+013B
+013D
+013F
+0141
+0143
+0145
+0147
+014A
+014C
+014E
+0150
+0152
+0154
+0156
+0158
+015A
+015C
+015E
+0160
+0162
+0164
+0166
+0168
+016A
+016C
+016E
+0170
+0172
+0174
+0176
+0178..0179  (2 chars)
+017B
+017D
+0181..0182  (2 chars)
+0184
+0186..0187  (2 chars)
+0189..018B  (3 chars)
+018E..0191  (4 chars)
+0193..0194  (2 chars)
+0196..0198  (3 chars)
+019C..019D  (2 chars)
+019F..01A0  (2 chars)
+01A2
+01A4
+01A6..01A7  (2 chars)
+01A9
+01AC
+01AE..01AF  (2 chars)
+01B1..01B3  (3 chars)
+01B5
+01B7..01B8  (2 chars)
+01BC
+01C4
+01C7
+01CA
+01CD
+01CF
+01D1
+01D3
+01D5
+01D7
+01D9
+01DB
+01DE
+01E0
+01E2
+01E4
+01E6
+01E8
+01EA
+01EC
+01EE
+01F1
+01F4
+01F6..01F8  (3 chars)
+01FA
+01FC
+01FE
+0200
+0202
+0204
+0206
+0208
+020A
+020C
+020E
+0210
+0212
+0214
+0216
+0218
+021A
+021C
+021E
+0222
+0224
+0226
+0228
+022A
+022C
+022E
+0230
+0232
+0386
+0388..038A  (3 chars)
+038C
+038E..038F  (2 chars)
+0391..03A1  (17 chars)
+03A3..03AB  (9 chars)
+03D2..03D4  (3 chars)
+03DA
+03DC
+03DE
+03E0
+03E2
+03E4
+03E6
+03E8
+03EA
+03EC
+03EE
+0400..042F  (48 chars)
+0460
+0462
+0464
+0466
+0468
+046A
+046C
+046E
+0470
+0472
+0474
+0476
+0478
+047A
+047C
+047E
+0480
+048C
+048E
+0490
+0492
+0494
+0496
+0498
+049A
+049C
+049E
+04A0
+04A2
+04A4
+04A6
+04A8
+04AA
+04AC
+04AE
+04B0
+04B2
+04B4
+04B6
+04B8
+04BA
+04BC
+04BE
+04C0..04C1  (2 chars)
+04C3
+04C7
+04CB
+04D0
+04D2
+04D4
+04D6
+04D8
+04DA
+04DC
+04DE
+04E0
+04E2
+04E4
+04E6
+04E8
+04EA
+04EC
+04EE
+04F0
+04F2
+04F4
+04F8
+0531..0556  (38 chars)
+10A0..10C5  (38 chars)
+1E00
+1E02
+1E04
+1E06
+1E08
+1E0A
+1E0C
+1E0E
+1E10
+1E12
+1E14
+1E16
+1E18
+1E1A
+1E1C
+1E1E
+1E20
+1E22
+1E24
+1E26
+1E28
+1E2A
+1E2C
+1E2E
+1E30
+1E32
+1E34
+1E36
+1E38
+1E3A
+1E3C
+1E3E
+1E40
+1E42
+1E44
+1E46
+1E48
+1E4A
+1E4C
+1E4E
+1E50
+1E52
+1E54
+1E56
+1E58
+1E5A
+1E5C
+1E5E
+1E60
+1E62
+1E64
+1E66
+1E68
+1E6A
+1E6C
+1E6E
+1E70
+1E72
+1E74
+1E76
+1E78
+1E7A
+1E7C
+1E7E
+1E80
+1E82
+1E84
+1E86
+1E88
+1E8A
+1E8C
+1E8E
+1E90
+1E92
+1E94
+1EA0
+1EA2
+1EA4
+1EA6
+1EA8
+1EAA
+1EAC
+1EAE
+1EB0
+1EB2
+1EB4
+1EB6
+1EB8
+1EBA
+1EBC
+1EBE
+1EC0
+1EC2
+1EC4
+1EC6
+1EC8
+1ECA
+1ECC
+1ECE
+1ED0
+1ED2
+1ED4
+1ED6
+1ED8
+1EDA
+1EDC
+1EDE
+1EE0
+1EE2
+1EE4
+1EE6
+1EE8
+1EEA
+1EEC
+1EEE
+1EF0
+1EF2
+1EF4
+1EF6
+1EF8
+1F08..1F0F  (8 chars)
+1F18..1F1D  (6 chars)
+1F28..1F2F  (8 chars)
+1F38..1F3F  (8 chars)
+1F48..1F4D  (6 chars)
+1F59
+1F5B
+1F5D
+1F5F
+1F68..1F6F  (8 chars)
+1FB8..1FBB  (4 chars)
+1FC8..1FCB  (4 chars)
+1FD8..1FDB  (4 chars)
+1FE8..1FEC  (5 chars)
+1FF8..1FFB  (4 chars)
+2102
+2107
+210B..210D  (3 chars)
+2110..2112  (3 chars)
+2115
+2119..211D  (5 chars)
+2124
+2126
+2128
+212A..212D  (4 chars)
+2130..2131  (2 chars)
+2133
+2160..216F  (16 chars)
+24B6..24CF  (26 chars)
+FF21..FF3A  (26 chars)
+
+*******************************************
+
+Property dump for: 0x80000001 (Lowercase)
+
+0061..007A  (26 chars)
+00AA
+00B5
+00BA
+00DF..00F6  (24 chars)
+00F8..00FF  (8 chars)
+0101
+0103
+0105
+0107
+0109
+010B
+010D
+010F
+0111
+0113
+0115
+0117
+0119
+011B
+011D
+011F
+0121
+0123
+0125
+0127
+0129
+012B
+012D
+012F
+0131
+0133
+0135
+0137..0138  (2 chars)
+013A
+013C
+013E
+0140
+0142
+0144
+0146
+0148..0149  (2 chars)
+014B
+014D
+014F
+0151
+0153
+0155
+0157
+0159
+015B
+015D
+015F
+0161
+0163
+0165
+0167
+0169
+016B
+016D
+016F
+0171
+0173
+0175
+0177
+017A
+017C
+017E..0180  (3 chars)
+0183
+0185
+0188
+018C..018D  (2 chars)
+0192
+0195
+0199..019B  (3 chars)
+019E
+01A1
+01A3
+01A5
+01A8
+01AA..01AB  (2 chars)
+01AD
+01B0
+01B4
+01B6
+01B9..01BA  (2 chars)
+01BD..01BF  (3 chars)
+01C6
+01C9
+01CC
+01CE
+01D0
+01D2
+01D4
+01D6
+01D8
+01DA
+01DC..01DD  (2 chars)
+01DF
+01E1
+01E3
+01E5
+01E7
+01E9
+01EB
+01ED
+01EF..01F0  (2 chars)
+01F3
+01F5
+01F9
+01FB
+01FD
+01FF
+0201
+0203
+0205
+0207
+0209
+020B
+020D
+020F
+0211
+0213
+0215
+0217
+0219
+021B
+021D
+021F
+0223
+0225
+0227
+0229
+022B
+022D
+022F
+0231
+0233
+0250..02AD  (94 chars)
+02B0..02B8  (9 chars)
+02C0..02C1  (2 chars)
+02E0..02E4  (5 chars)
+0390
+03AC..03CE  (35 chars)
+03D0..03D1  (2 chars)
+03D5..03D7  (3 chars)
+03DB
+03DD
+03DF
+03E1
+03E3
+03E5
+03E7
+03E9
+03EB
+03ED
+03EF..03F3  (5 chars)
+0430..045F  (48 chars)
+0461
+0463
+0465
+0467
+0469
+046B
+046D
+046F
+0471
+0473
+0475
+0477
+0479
+047B
+047D
+047F
+0481
+048D
+048F
+0491
+0493
+0495
+0497
+0499
+049B
+049D
+049F
+04A1
+04A3
+04A5
+04A7
+04A9
+04AB
+04AD
+04AF
+04B1
+04B3
+04B5
+04B7
+04B9
+04BB
+04BD
+04BF
+04C2
+04C4
+04C8
+04CC
+04D1
+04D3
+04D5
+04D7
+04D9
+04DB
+04DD
+04DF
+04E1
+04E3
+04E5
+04E7
+04E9
+04EB
+04ED
+04EF
+04F1
+04F3
+04F5
+04F9
+0561..0587  (39 chars)
+1E01
+1E03
+1E05
+1E07
+1E09
+1E0B
+1E0D
+1E0F
+1E11
+1E13
+1E15
+1E17
+1E19
+1E1B
+1E1D
+1E1F
+1E21
+1E23
+1E25
+1E27
+1E29
+1E2B
+1E2D
+1E2F
+1E31
+1E33
+1E35
+1E37
+1E39
+1E3B
+1E3D
+1E3F
+1E41
+1E43
+1E45
+1E47
+1E49
+1E4B
+1E4D
+1E4F
+1E51
+1E53
+1E55
+1E57
+1E59
+1E5B
+1E5D
+1E5F
+1E61
+1E63
+1E65
+1E67
+1E69
+1E6B
+1E6D
+1E6F
+1E71
+1E73
+1E75
+1E77
+1E79
+1E7B
+1E7D
+1E7F
+1E81
+1E83
+1E85
+1E87
+1E89
+1E8B
+1E8D
+1E8F
+1E91
+1E93
+1E95..1E9B  (7 chars)
+1EA1
+1EA3
+1EA5
+1EA7
+1EA9
+1EAB
+1EAD
+1EAF
+1EB1
+1EB3
+1EB5
+1EB7
+1EB9
+1EBB
+1EBD
+1EBF
+1EC1
+1EC3
+1EC5
+1EC7
+1EC9
+1ECB
+1ECD
+1ECF
+1ED1
+1ED3
+1ED5
+1ED7
+1ED9
+1EDB
+1EDD
+1EDF
+1EE1
+1EE3
+1EE5
+1EE7
+1EE9
+1EEB
+1EED
+1EEF
+1EF1
+1EF3
+1EF5
+1EF7
+1EF9
+1F00..1F07  (8 chars)
+1F10..1F15  (6 chars)
+1F20..1F27  (8 chars)
+1F30..1F37  (8 chars)
+1F40..1F45  (6 chars)
+1F50..1F57  (8 chars)
+1F60..1F67  (8 chars)
+1F70..1F7D  (14 chars)
+1F80..1F87  (8 chars)
+1F90..1F97  (8 chars)
+1FA0..1FA7  (8 chars)
+1FB0..1FB4  (5 chars)
+1FB6..1FB7  (2 chars)
+1FBE
+1FC2..1FC4  (3 chars)
+1FC6..1FC7  (2 chars)
+1FD0..1FD3  (4 chars)
+1FD6..1FD7  (2 chars)
+1FE0..1FE7  (8 chars)
+1FF2..1FF4  (3 chars)
+1FF6..1FF7  (2 chars)
+207F
+210A
+210E..210F  (2 chars)
+2113
+212F
+2134
+2139
+2170..217F  (16 chars)
+24D0..24E9  (26 chars)
+FB00..FB06  (7 chars)
+FB13..FB17  (5 chars)
+FF41..FF5A  (26 chars)
+
+*******************************************
+
+Property dump for: 0x80000002 (Titlecase)
+
+01C5
+01C8
+01CB
+01F2
+1F88..1F8F  (8 chars)
+1F98..1F9F  (8 chars)
+1FA8..1FAF  (8 chars)
+1FBC
+1FCC
+1FFC
+
+*******************************************
+
+Property dump for: 0x80000006 (Low Surrogate)
+
+DC00..DFFF  (1024 chars)
+
+*******************************************
+
+Property dump for: 0x80000007 (High Surrogate)
+
+D800..DB7F  (896 chars)
+
+*******************************************
+
+Property dump for: 0x80000008 (Private Use High Surrogate)
+
+DB80..DBFF  (128 chars)
+
+*******************************************
+
+Property dump for: 0x00000000 (Unassigned Code Value)
+
+0220..0221  (2 chars)
+0234..024F  (28 chars)
+02AE..02AF  (2 chars)
+02EF..02FF  (17 chars)
+034F..035F  (17 chars)
+0363..0373  (17 chars)
+0376..0379  (4 chars)
+037B..037D  (3 chars)
+037F..0383  (5 chars)
+038B
+038D
+03A2
+03CF
+03D8..03D9  (2 chars)
+03F4..03FF  (12 chars)
+0487
+048A..048B  (2 chars)
+04C5..04C6  (2 chars)
+04C9..04CA  (2 chars)
+04CD..04CF  (3 chars)
+04F6..04F7  (2 chars)
+04FA..0530  (55 chars)
+0557..0558  (2 chars)
+0560
+0588
+058B..0590  (6 chars)
+05A2
+05BA
+05C5..05CF  (11 chars)
+05EB..05EF  (5 chars)
+05F5..060B  (23 chars)
+060D..061A  (14 chars)
+061C..061E  (3 chars)
+0620
+063B..063F  (5 chars)
+0656..065F  (10 chars)
+066E..066F  (2 chars)
+06EE..06EF  (2 chars)
+06FF
+070E
+072D..072F  (3 chars)
+074B..077F  (53 chars)
+07B1..0900  (336 chars)
+0904
+093A..093B  (2 chars)
+094E..094F  (2 chars)
+0955..0957  (3 chars)
+0971..0980  (16 chars)
+0984
+098D..098E  (2 chars)
+0991..0992  (2 chars)
+09A9
+09B1
+09B3..09B5  (3 chars)
+09BA..09BB  (2 chars)
+09BD
+09C5..09C6  (2 chars)
+09C9..09CA  (2 chars)
+09CE..09D6  (9 chars)
+09D8..09DB  (4 chars)
+09DE
+09E4..09E5  (2 chars)
+09FB..0A01  (7 chars)
+0A03..0A04  (2 chars)
+0A0B..0A0E  (4 chars)
+0A11..0A12  (2 chars)
+0A29
+0A31
+0A34
+0A37
+0A3A..0A3B  (2 chars)
+0A3D
+0A43..0A46  (4 chars)
+0A49..0A4A  (2 chars)
+0A4E..0A58  (11 chars)
+0A5D
+0A5F..0A65  (7 chars)
+0A75..0A80  (12 chars)
+0A84
+0A8C
+0A8E
+0A92
+0AA9
+0AB1
+0AB4
+0ABA..0ABB  (2 chars)
+0AC6
+0ACA
+0ACE..0ACF  (2 chars)
+0AD1..0ADF  (15 chars)
+0AE1..0AE5  (5 chars)
+0AF0..0B00  (17 chars)
+0B04
+0B0D..0B0E  (2 chars)
+0B11..0B12  (2 chars)
+0B29
+0B31
+0B34..0B35  (2 chars)
+0B3A..0B3B  (2 chars)
+0B44..0B46  (3 chars)
+0B49..0B4A  (2 chars)
+0B4E..0B55  (8 chars)
+0B58..0B5B  (4 chars)
+0B5E
+0B62..0B65  (4 chars)
+0B71..0B81  (17 chars)
+0B84
+0B8B..0B8D  (3 chars)
+0B91
+0B96..0B98  (3 chars)
+0B9B
+0B9D
+0BA0..0BA2  (3 chars)
+0BA5..0BA7  (3 chars)
+0BAB..0BAD  (3 chars)
+0BB6
+0BBA..0BBD  (4 chars)
+0BC3..0BC5  (3 chars)
+0BC9
+0BCE..0BD6  (9 chars)
+0BD8..0BE6  (15 chars)
+0BF3..0C00  (14 chars)
+0C04
+0C0D
+0C11
+0C29
+0C34
+0C3A..0C3D  (4 chars)
+0C45
+0C49
+0C4E..0C54  (7 chars)
+0C57..0C5F  (9 chars)
+0C62..0C65  (4 chars)
+0C70..0C81  (18 chars)
+0C84
+0C8D
+0C91
+0CA9
+0CB4
+0CBA..0CBD  (4 chars)
+0CC5
+0CC9
+0CCE..0CD4  (7 chars)
+0CD7..0CDD  (7 chars)
+0CDF
+0CE2..0CE5  (4 chars)
+0CF0..0D01  (18 chars)
+0D04
+0D0D
+0D11
+0D29
+0D3A..0D3D  (4 chars)
+0D44..0D45  (2 chars)
+0D49
+0D4E..0D56  (9 chars)
+0D58..0D5F  (8 chars)
+0D62..0D65  (4 chars)
+0D70..0D81  (18 chars)
+0D84
+0D97..0D99  (3 chars)
+0DB2
+0DBC
+0DBE..0DBF  (2 chars)
+0DC7..0DC9  (3 chars)
+0DCB..0DCE  (4 chars)
+0DD5
+0DD7
+0DE0..0DF1  (18 chars)
+0DF5..0E00  (12 chars)
+0E3B..0E3E  (4 chars)
+0E5C..0E80  (37 chars)
+0E83
+0E85..0E86  (2 chars)
+0E89
+0E8B..0E8C  (2 chars)
+0E8E..0E93  (6 chars)
+0E98
+0EA0
+0EA4
+0EA6
+0EA8..0EA9  (2 chars)
+0EAC
+0EBA
+0EBE..0EBF  (2 chars)
+0EC5
+0EC7
+0ECE..0ECF  (2 chars)
+0EDA..0EDB  (2 chars)
+0EDE..0EFF  (34 chars)
+0F48
+0F6B..0F70  (6 chars)
+0F8C..0F8F  (4 chars)
+0F98
+0FBD
+0FCD..0FCE  (2 chars)
+0FD0..0FFF  (48 chars)
+1022
+1028
+102B
+1033..1035  (3 chars)
+103A..103F  (6 chars)
+105A..109F  (70 chars)
+10C6..10CF  (10 chars)
+10F7..10FA  (4 chars)
+10FC..10FF  (4 chars)
+115A..115E  (5 chars)
+11A3..11A7  (5 chars)
+11FA..11FF  (6 chars)
+1207
+1247
+1249
+124E..124F  (2 chars)
+1257
+1259
+125E..125F  (2 chars)
+1287
+1289
+128E..128F  (2 chars)
+12AF
+12B1
+12B6..12B7  (2 chars)
+12BF
+12C1
+12C6..12C7  (2 chars)
+12CF
+12D7
+12EF
+130F
+1311
+1316..1317  (2 chars)
+131F
+1347
+135B..1360  (6 chars)
+137D..139F  (35 chars)
+13F5..1400  (12 chars)
+1677..167F  (9 chars)
+169D..169F  (3 chars)
+16F1..177F  (143 chars)
+17DD..17DF  (3 chars)
+17EA..17FF  (22 chars)
+180F
+181A..181F  (6 chars)
+1878..187F  (8 chars)
+18AA..1DFF  (1366 chars)
+1E9C..1E9F  (4 chars)
+1EFA..1EFF  (6 chars)
+1F16..1F17  (2 chars)
+1F1E..1F1F  (2 chars)
+1F46..1F47  (2 chars)
+1F4E..1F4F  (2 chars)
+1F58
+1F5A
+1F5C
+1F5E
+1F7E..1F7F  (2 chars)
+1FB5
+1FC5
+1FD4..1FD5  (2 chars)
+1FDC
+1FF0..1FF1  (2 chars)
+1FF5
+1FFF
+2047
+204E..2069  (28 chars)
+2071..2073  (3 chars)
+208F..209F  (17 chars)
+20B0..20CF  (32 chars)
+20E4..20FF  (28 chars)
+213B..2152  (24 chars)
+2184..218F  (12 chars)
+21F4..21FF  (12 chars)
+22F2..22FF  (14 chars)
+237C
+239B..23FF  (101 chars)
+2427..243F  (25 chars)
+244B..245F  (21 chars)
+24EB..24FF  (21 chars)
+2596..259F  (10 chars)
+25F8..25FF  (8 chars)
+2614..2618  (5 chars)
+2672..2700  (143 chars)
+2705
+270A..270B  (2 chars)
+2728
+274C
+274E
+2753..2755  (3 chars)
+2757
+275F..2760  (2 chars)
+2768..2775  (14 chars)
+2795..2797  (3 chars)
+27B0
+27BF..27FF  (65 chars)
+2900..2E7F  (1408 chars)
+2E9A
+2EF4..2EFF  (12 chars)
+2FD6..2FEF  (26 chars)
+2FFC..2FFF  (4 chars)
+303B..303D  (3 chars)
+3040
+3095..3098  (4 chars)
+309F..30A0  (2 chars)
+30FF..3104  (6 chars)
+312D..3130  (4 chars)
+318F
+31B8..31FF  (72 chars)
+321D..321F  (3 chars)
+3244..325F  (28 chars)
+327C..327E  (3 chars)
+32B1..32BF  (15 chars)
+32CC..32CF  (4 chars)
+32FF
+3377..337A  (4 chars)
+33DE..33DF  (2 chars)
+33FF
+4DB6..4DFF  (74 chars)
+9FA6..9FFF  (90 chars)
+A48D..A48F  (3 chars)
+A4A2..A4A3  (2 chars)
+A4B4
+A4C1
+A4C5
+A4C7..ABFF  (1849 chars)
+D7A4..D7FF  (92 chars)
+FA2E..FAFF  (210 chars)
+FB07..FB12  (12 chars)
+FB18..FB1C  (5 chars)
+FB37
+FB3D
+FB3F
+FB42
+FB45
+FBB2..FBD2  (33 chars)
+FD40..FD4F  (16 chars)
+FD90..FD91  (2 chars)
+FDC8..FDEF  (40 chars)
+FDFC..FE1F  (36 chars)
+FE24..FE2F  (12 chars)
+FE45..FE48  (4 chars)
+FE53
+FE67
+FE6C..FE6F  (4 chars)
+FE73
+FE75
+FEFD..FEFE  (2 chars)
+FF00
+FF5F..FF60  (2 chars)
+FFBF..FFC1  (3 chars)
+FFC8..FFC9  (2 chars)
+FFD0..FFD1  (2 chars)
+FFD8..FFD9  (2 chars)
+FFDD..FFDF  (3 chars)
+FFE7
+FFEF..FFF8  (10 chars)
+
diff --git a/lib/unicode/ReadMe.txt b/lib/unicode/ReadMe.txt
new file mode 100644 (file)
index 0000000..889c325
--- /dev/null
@@ -0,0 +1,28 @@
+June 23, 1999
+
+This directory contains the initial release for Unicode 3.0.
+
+This release consists of corrections and additions to the
+Unicode Character Database, to match the publication of
+The Unicode Standard, Version 3.0.
+
+Detailed documentation of the files constituting the
+Unicode Character Database (contributory data files for
+the standard itself) can now be found in
+UnicodeCharacterDatabase.html.
+
+--------------------------------------------------------------------------
+NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE 
+
+The files have been copied 1999-Sep-14 from
+
+       ftp://ftp.unicode.org/Public/3.0-Update/
+
+and renamed to better fit 8.3 filename limitations.
+
+For example, the UnicodeCharacterDatabase.html referred above is
+now called Unicode.html.
+
+jhi@iki.fi
+
+
diff --git a/lib/unicode/SpecCase.txt b/lib/unicode/SpecCase.txt
new file mode 100644 (file)
index 0000000..af002ef
--- /dev/null
@@ -0,0 +1,219 @@
+# SpecialCasing-2.txt
+#
+# Special Casing Properties
+#
+# This file is a supplement to the UnicodeData file.
+# It contains additional information about the casing of Unicode characters.
+# (For compatibility, the UnicodeData.txt file only contains case mappings for
+# characters where they are 1-1, and does not have locale-specific mappings.)
+# These are informative character properties.
+#
+# Send comments to mark@unicode.org
+#
+# ================================================================================
+# Format
+# ================================================================================
+# The entries in this file are in the following machine-readable format:
+#
+# <entry> := <case_mapping> <condition_list>? (<s>* "#" <comment>)?
+#
+# <case_mapping> := <source> <sep> <lower> <sep> <title> <sep> <upper> <sep>
+#
+# <source> := <code_point>
+# <sep> := <s>* ";" <s>*
+# <lower> := <code_point_list>
+# <title> := <code_point_list>
+# <upper> := <code_point_list>
+# <code_point_list> := <code_point> (<s>+ <code_point>)*
+# <code_point> := <hex><hex><hex><hex>
+# <hex> := [0-1A-Fa-f]
+# <s> := <space>
+#
+# <condition_list> := <locale>? (<s>+ <context>)*
+# <locale> := <ISO_3166_code> ( "_" <ISO_639_code> )? ( "_" <variant> )?
+# <ISO_3166_code> := 2-letter country code,
+#                    as in http://www.unicode.org/unicode/onlinedat/countries.html
+# <ISO_639_code> :=  2-letter code,
+#                    as in http://www.unicode.org/unicode/onlinedat/languages.html
+# <context> := "FINAL" | "NON_FINAL" | "MODERN" | "NON_MODERN"
+#
+#  A condition list overrides the normal behavior if any of the listed conditions is true.
+#   FINAL:  The letter is not followed by a letter of category L* (e.g. Ll, Lt, Lu, Lm, or Lo).
+#   MODERN: The mapping is only used for modern text.
+#  Conditions preceded by "NON_" represent the negation of the condition
+#
+# New contexts may be added in the future.
+# Parsers of this file must be prepared to deal with that situation.
+# Additional whitespace around elements is optional. Blank lines are ignored in parsing.
+# On any line, all text following "#" is a comment, and are ignored in parsing.
+# ================================================================================
+
+# ================================================================================
+# Unconditional mappings
+# ================================================================================
+
+# The German es-zed is special--the normal mapping is to SS.
+# Note: the titlecase should never occur in practice. It is equal to titlecase(uppercase(<es-zed>))
+
+00DF; 00DF; 0053 0073; 0053 0053; # LATIN SMALL LETTER SHARP S
+
+# Ligatures
+
+FB00; FB00; 0046 0066; 0046 0046; # LATIN SMALL LIGATURE FF
+FB01; FB01; 0046 0069; 0046 0049; # LATIN SMALL LIGATURE FI
+FB02; FB02; 0046 006C; 0046 004C; # LATIN SMALL LIGATURE FL
+FB03; FB03; 0046 0066 0069; 0046 0046 0049; # LATIN SMALL LIGATURE FFI
+FB04; FB04; 0046 0066 006C; 0046 0046 004C; # LATIN SMALL LIGATURE FFL
+FB05; FB05; 0053 0074; 0053 0054; # LATIN SMALL LIGATURE LONG S T
+FB06; FB06; 0053 0074; 0053 0054; # LATIN SMALL LIGATURE ST
+
+0587; 0587; 0535 0582; 0535 0552; # ARMENIAN SMALL LIGATURE ECH YIWN
+FB13; FB13; 0544 0576; 0544 0546; # ARMENIAN SMALL LIGATURE MEN NOW
+FB14; FB14; 0544 0565; 0544 0535; # ARMENIAN SMALL LIGATURE MEN ECH
+FB15; FB15; 0544 056B; 0544 053B; # ARMENIAN SMALL LIGATURE MEN INI
+FB16; FB16; 054E 0576; 054E 0546; # ARMENIAN SMALL LIGATURE VEW NOW
+FB17; FB17; 0544 056D; 0544 053D; # ARMENIAN SMALL LIGATURE MEN XEH
+
+# No corresponding uppercase precomposed character
+
+0149; 0149; 02BC 006E; 02BC 004E; # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
+0390; 0390; 0399 0308 0301; 0399 0308 0301; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+03B0; 03B0; 03A5 0308 0301; 03A5 0308 0301; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+01F0; 01F0; 004A 030C; 004A 030C; # LATIN SMALL LETTER J WITH CARON
+1E96; 1E96; 0048 0331; 0048 0331; # LATIN SMALL LETTER H WITH LINE BELOW
+1E97; 1E97; 0054 0308; 0054 0308; # LATIN SMALL LETTER T WITH DIAERESIS
+1E98; 1E98; 0057 030A; 0057 030A; # LATIN SMALL LETTER W WITH RING ABOVE
+1E99; 1E99; 0059 030A; 0059 030A; # LATIN SMALL LETTER Y WITH RING ABOVE
+1E9A; 1E9A; 0041 02BE; 0041 02BE; # LATIN SMALL LETTER A WITH RIGHT HALF RING
+1F50; 1F50; 03A5 0313; 03A5 0313; # GREEK SMALL LETTER UPSILON WITH PSILI
+1F52; 1F52; 03A5 0313 0300; 03A5 0313 0300; # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
+1F54; 1F54; 03A5 0313 0301; 03A5 0313 0301; # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
+1F56; 1F56; 03A5 0313 0342; 03A5 0313 0342; # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
+1FB6; 1FB6; 0391 0342; 0391 0342; # GREEK SMALL LETTER ALPHA WITH PERISPOMENI
+1FC6; 1FC6; 0397 0342; 0397 0342; # GREEK SMALL LETTER ETA WITH PERISPOMENI
+1FD2; 1FD2; 0399 0308 0300; 0399 0308 0300; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
+1FD3; 1FD3; 0399 0308 0301; 0399 0308 0301; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
+1FD6; 1FD6; 0399 0342; 0399 0342; # GREEK SMALL LETTER IOTA WITH PERISPOMENI
+1FD7; 1FD7; 0399 0308 0342; 0399 0308 0342; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
+1FE2; 1FE2; 03A5 0308 0300; 03A5 0308 0300; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
+1FE3; 1FE3; 03A5 0308 0301; 03A5 0308 0301; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
+1FE4; 1FE4; 03A1 0313; 03A1 0313; # GREEK SMALL LETTER RHO WITH PSILI
+1FE6; 1FE6; 03A5 0342; 03A5 0342; # GREEK SMALL LETTER UPSILON WITH PERISPOMENI
+1FE7; 1FE7; 03A5 0308 0342; 03A5 0308 0342; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
+1FF6; 1FF6; 03A9 0342; 03A9 0342; # GREEK SMALL LETTER OMEGA WITH PERISPOMENI
+
+# IMPORTANT-when capitalizing iota-subscript (0345)
+#  It MUST be in normalized form--moved to the end of any sequence of combining marks.
+#  This is because logically it represents a following base character!
+#  E.g. <iota_subscript> (<Mn> | <Mc> | <Me>)+ => (<Mn> | <Mc> | <Me>)+ <iota_subscript>
+# It should never be the first character in a word, so in titlecasing it can be left as is.
+
+# The following cases are already in the UnicodeData file, so are only commented here.
+
+# 0345; 0345; 0345; 0399; # COMBINING GREEK YPOGEGRAMMENI
+
+# All letters with YPOGEGRAMMENI (iota-subscript) or PROSGEGRAMMENI (iota adscript)
+# have special uppercases.
+# Note: characters with PROSGEGRAMMENI are actually titlecase, not uppercase!
+
+1F80; 1F80; 1F88; 1F08 0399; # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
+1F81; 1F81; 1F89; 1F09 0399; # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
+1F82; 1F82; 1F8A; 1F0A 0399; # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+1F83; 1F83; 1F8B; 1F0B 0399; # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+1F84; 1F84; 1F8C; 1F0C 0399; # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+1F85; 1F85; 1F8D; 1F0D 0399; # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+1F86; 1F86; 1F8E; 1F0E 0399; # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+1F87; 1F87; 1F8F; 1F0F 0399; # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+1F88; 1F80; 1F88; 1F08 0399; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
+1F89; 1F81; 1F89; 1F09 0399; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
+1F8A; 1F82; 1F8A; 1F0A 0399; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+1F8B; 1F83; 1F8B; 1F0B 0399; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+1F8C; 1F84; 1F8C; 1F0C 0399; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+1F8D; 1F85; 1F8D; 1F0D 0399; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+1F8E; 1F86; 1F8E; 1F0E 0399; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+1F8F; 1F87; 1F8F; 1F0F 0399; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+1F90; 1F90; 1F98; 1F28 0399; # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
+1F91; 1F91; 1F99; 1F29 0399; # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
+1F92; 1F92; 1F9A; 1F2A 0399; # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+1F93; 1F93; 1F9B; 1F2B 0399; # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+1F94; 1F94; 1F9C; 1F2C 0399; # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+1F95; 1F95; 1F9D; 1F2D 0399; # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+1F96; 1F96; 1F9E; 1F2E 0399; # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+1F97; 1F97; 1F9F; 1F2F 0399; # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+1F98; 1F90; 1F98; 1F28 0399; # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
+1F99; 1F91; 1F99; 1F29 0399; # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
+1F9A; 1F92; 1F9A; 1F2A 0399; # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+1F9B; 1F93; 1F9B; 1F2B 0399; # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+1F9C; 1F94; 1F9C; 1F2C 0399; # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+1F9D; 1F95; 1F9D; 1F2D 0399; # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+1F9E; 1F96; 1F9E; 1F2E 0399; # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+1F9F; 1F97; 1F9F; 1F2F 0399; # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+1FA0; 1FA0; 1FA8; 1F68 0399; # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
+1FA1; 1FA1; 1FA9; 1F69 0399; # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
+1FA2; 1FA2; 1FAA; 1F6A 0399; # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+1FA3; 1FA3; 1FAB; 1F6B 0399; # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+1FA4; 1FA4; 1FAC; 1F6C 0399; # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+1FA5; 1FA5; 1FAD; 1F6D 0399; # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+1FA6; 1FA6; 1FAE; 1F6E 0399; # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+1FA7; 1FA7; 1FAF; 1F6F 0399; # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+1FA8; 1FA0; 1FA8; 1F68 0399; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
+1FA9; 1FA1; 1FA9; 1F69 0399; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
+1FAA; 1FA2; 1FAA; 1F6A 0399; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+1FAB; 1FA3; 1FAB; 1F6B 0399; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+1FAC; 1FA4; 1FAC; 1F6C 0399; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+1FAD; 1FA5; 1FAD; 1F6D 0399; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+1FAE; 1FA6; 1FAE; 1F6E 0399; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+1FAF; 1FA7; 1FAF; 1F6F 0399; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+
+1FB3; 1FB3; 1FBC; 0391 0399; # GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI
+1FBC; 1FB3; 1FBC; 0391 0399; # GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
+1FC3; 1FC3; 1FCC; 0397 0399; # GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI
+1FCC; 1FC3; 1FCC; 0397 0399; # GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
+1FF3; 1FF3; 1FFC; 03A9 0399; # GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI
+1FFC; 1FF3; 1FFC; 03A9 0399; # GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
+
+# Some characters with YPOGEGRAMMENI are also have no corresponding titlecases
+
+1FB2; 1FB2; 1FBA 0345; 1FBA 0399; # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
+1FB4; 1FB4; 0386 0345; 0386 0399; # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+1FC2; 1FC2; 1FCA 0345; 1FCA 0399; # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
+1FC4; 1FC4; 0389 0345; 0389 0399; # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+1FF2; 1FF2; 1FFA 0345; 1FFA 0399; # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
+1FF4; 1FF4; 038F 0345; 038F 0399; # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+
+1FB7; 1FB7; 0391 0342 0345; 0391 0342 0399; # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
+1FC7; 1FC7; 0397 0342 0345; 0397 0342 0399; # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
+1FF7; 1FF7; 03A9 0342 0345; 03A9 0342 0399; # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
+
+# ================================================================================
+# Conditional mappings
+# ================================================================================
+
+# Special case for final form of sigma
+
+03A3; 03C2; 03A3; 03A3; FINAL; # GREEK CAPITAL LETTER SIGMA
+
+# Note: the following cases for non-final are already in the UnicodeData file.
+
+# 03A3; 03C3; 03A3; 03A3; # GREEK CAPITAL LETTER SIGMA
+# 03C3; 03C3; 03A3; 03A3; # GREEK SMALL LETTER SIGMA
+# 03C2; 03C2; 03A3; 03A3; # GREEK SMALL LETTER FINAL SIGMA
+
+# Note: the following cases are not included, since they would normalize in lowercasing
+
+# 03C3; 03C2; 03A3; 03A3; FINAL; # GREEK SMALL LETTER SIGMA
+# 03C2; 03C3; 03A3; 03A3; NON_FINAL; # GREEK SMALL LETTER FINAL SIGMA
+
+# ================================================================================
+# Locale-sensitive mappings
+# ================================================================================
+
+# Turkish
+
+0049; 0131; 0049; 0049; TR; # LATIN CAPITAL LETTER I
+0069; 0069; 0130; 0130; TR; # LATIN SMALL LETTER I
+
+# Note: the following cases are already in the UnicodeData file.
+
+# 0131; 0131; 0049; 0049; TR; # LATIN SMALL LETTER DOTLESS I
+# 0130; 0069; 0130; 0130; TR; # LATIN CAPITAL LETTER I WITH DOT ABOVE
index a4e4be5..6a54d3d 100644 (file)
@@ -92,9 +92,9 @@
 005B;LEFT SQUARE BRACKET;Ps;0;ON;;;;;Y;OPENING SQUARE BRACKET;;;;
 005C;REVERSE SOLIDUS;Po;0;ON;;;;;N;BACKSLASH;;;;
 005D;RIGHT SQUARE BRACKET;Pe;0;ON;;;;;Y;CLOSING SQUARE BRACKET;;;;
-005E;CIRCUMFLEX ACCENT;Sk;0;ON;<compat> 0020 0302;;;;N;SPACING CIRCUMFLEX;;;;
-005F;LOW LINE;Pc;0;ON;<compat> 0020 0332;;;;N;SPACING UNDERSCORE;;;;
-0060;GRAVE ACCENT;Sk;0;ON;<compat> 0020 0300;;;;N;SPACING GRAVE;;;;
+005E;CIRCUMFLEX ACCENT;Sk;0;ON;;;;;N;SPACING CIRCUMFLEX;;;;
+005F;LOW LINE;Pc;0;ON;;;;;N;SPACING UNDERSCORE;;;;
+0060;GRAVE ACCENT;Sk;0;ON;;;;;N;SPACING GRAVE;;;;
 0061;LATIN SMALL LETTER A;Ll;0;L;;;;;N;;;0041;;0041
 0062;LATIN SMALL LETTER B;Ll;0;L;;;;;N;;;0042;;0042
 0063;LATIN SMALL LETTER C;Ll;0;L;;;;;N;;;0043;;0043
 01A7;LATIN CAPITAL LETTER TONE TWO;Lu;0;L;;;;;N;;;;01A8;
 01A8;LATIN SMALL LETTER TONE TWO;Ll;0;L;;;;;N;;;01A7;;01A7
 01A9;LATIN CAPITAL LETTER ESH;Lu;0;L;;;;;N;;;;0283;
-01AA;LATIN LETTER REVERSED ESH LOOP;Lo;0;L;;;;;N;;;;;
+01AA;LATIN LETTER REVERSED ESH LOOP;Ll;0;L;;;;;N;;;;;
 01AB;LATIN SMALL LETTER T WITH PALATAL HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T PALATAL HOOK;;;;
 01AC;LATIN CAPITAL LETTER T WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER T HOOK;;;01AD;
 01AD;LATIN SMALL LETTER T WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T HOOK;;01AC;;01AC
 01BB;LATIN LETTER TWO WITH STROKE;Lo;0;L;;;;;N;LATIN LETTER TWO BAR;;;;
 01BC;LATIN CAPITAL LETTER TONE FIVE;Lu;0;L;;;;;N;;;;01BD;
 01BD;LATIN SMALL LETTER TONE FIVE;Ll;0;L;;;;;N;;;01BC;;01BC
-01BE;LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE;Lo;0;L;;;;;N;LATIN LETTER INVERTED GLOTTAL STOP BAR;;;;
+01BE;LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER INVERTED GLOTTAL STOP BAR;;;;
 01BF;LATIN LETTER WYNN;Ll;0;L;;;;;N;;;01F7;;01F7
 01C0;LATIN LETTER DENTAL CLICK;Lo;0;L;;;;;N;LATIN LETTER PIPE;;;;
 01C1;LATIN LETTER LATERAL CLICK;Lo;0;L;;;;;N;LATIN LETTER DOUBLE PIPE;;;;
 03F0;GREEK KAPPA SYMBOL;Ll;0;L;<compat> 03BA;;;;N;GREEK SMALL LETTER SCRIPT KAPPA;;039A;;039A
 03F1;GREEK RHO SYMBOL;Ll;0;L;<compat> 03C1;;;;N;GREEK SMALL LETTER TAILED RHO;;03A1;;03A1
 03F2;GREEK LUNATE SIGMA SYMBOL;Ll;0;L;<compat> 03C2;;;;N;GREEK SMALL LETTER LUNATE SIGMA;;03A3;;03A3
-03F3;GREEK LETTER YOT;Lo;0;L;;;;;N;;;;;
+03F3;GREEK LETTER YOT;Ll;0;L;;;;;N;;;;;
 0400;CYRILLIC CAPITAL LETTER IE WITH GRAVE;Lu;0;L;0415 0300;;;;N;;;;0450;
 0401;CYRILLIC CAPITAL LETTER IO;Lu;0;L;0415 0308;;;;N;;;;0451;
 0402;CYRILLIC CAPITAL LETTER DJE;Lu;0;L;;;;;N;;Serbocroatian;;0452;
 04BD;CYRILLIC SMALL LETTER ABKHASIAN CHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IE HOOK;;04BC;;04BC
 04BE;CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IE HOOK OGONEK;;;04BF;
 04BF;CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IE HOOK OGONEK;;04BE;;04BE
-04C0;CYRILLIC LETTER PALOCHKA;Lo;0;L;;;;;N;CYRILLIC LETTER I;;;;
+04C0;CYRILLIC LETTER PALOCHKA;Lu;0;L;;;;;N;CYRILLIC LETTER I;;;;
 04C1;CYRILLIC CAPITAL LETTER ZHE WITH BREVE;Lu;0;L;0416 0306;;;;N;CYRILLIC CAPITAL LETTER SHORT ZHE;;;04C2;
 04C2;CYRILLIC SMALL LETTER ZHE WITH BREVE;Ll;0;L;0436 0306;;;;N;CYRILLIC SMALL LETTER SHORT ZHE;;04C1;;04C1
 04C3;CYRILLIC CAPITAL LETTER KA WITH HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA HOOK;;;04C4;
 0E30;THAI CHARACTER SARA A;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA A;;;;
 0E31;THAI CHARACTER MAI HAN-AKAT;Mn;0;NSM;;;;;N;THAI VOWEL SIGN MAI HAN-AKAT;;;;
 0E32;THAI CHARACTER SARA AA;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA AA;;;;
-0E33;THAI CHARACTER SARA AM;Lo;0;L;0E4D 0E32;;;;N;THAI VOWEL SIGN SARA AM;;;;
+0E33;THAI CHARACTER SARA AM;Lo;0;L;<compat> 0E4D 0E32;;;;N;THAI VOWEL SIGN SARA AM;;;;
 0E34;THAI CHARACTER SARA I;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA I;;;;
 0E35;THAI CHARACTER SARA II;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA II;;;;
 0E36;THAI CHARACTER SARA UE;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA UE;;;;
 0E4A;THAI CHARACTER MAI TRI;Mn;107;NSM;;;;;N;THAI TONE MAI TRI;;;;
 0E4B;THAI CHARACTER MAI CHATTAWA;Mn;107;NSM;;;;;N;THAI TONE MAI CHATTAWA;;;;
 0E4C;THAI CHARACTER THANTHAKHAT;Mn;0;NSM;;;;;N;THAI THANTHAKHAT;;;;
-0E4D;THAI CHARACTER NIKHAHIT;Mn;107;NSM;;;;;N;THAI NIKKHAHIT;nikkhahit;;;
+0E4D;THAI CHARACTER NIKHAHIT;Mn;0;NSM;;;;;N;THAI NIKKHAHIT;nikkhahit;;;
 0E4E;THAI CHARACTER YAMAKKAN;Mn;0;NSM;;;;;N;THAI YAMAKKAN;;;;
 0E4F;THAI CHARACTER FONGMAN;Po;0;L;;;;;N;THAI FONGMAN;;;;
 0E50;THAI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
 0EB0;LAO VOWEL SIGN A;Lo;0;L;;;;;N;;;;;
 0EB1;LAO VOWEL SIGN MAI KAN;Mn;0;NSM;;;;;N;;;;;
 0EB2;LAO VOWEL SIGN AA;Lo;0;L;;;;;N;;;;;
-0EB3;LAO VOWEL SIGN AM;Lo;0;L;0ECD 0EB2;;;;N;;;;;
+0EB3;LAO VOWEL SIGN AM;Lo;0;L;<compat> 0ECD 0EB2;;;;N;;;;;
 0EB4;LAO VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
 0EB5;LAO VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
 0EB6;LAO VOWEL SIGN Y;Mn;0;NSM;;;;;N;;;;;
 0ECA;LAO TONE MAI TI;Mn;122;NSM;;;;;N;;;;;
 0ECB;LAO TONE MAI CATAWA;Mn;122;NSM;;;;;N;;;;;
 0ECC;LAO CANCELLATION MARK;Mn;0;NSM;;;;;N;;;;;
-0ECD;LAO NIGGAHITA;Mn;122;NSM;;;;;N;;;;;
+0ECD;LAO NIGGAHITA;Mn;0;NSM;;;;;N;;;;;
 0ED0;LAO DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
 0ED1;LAO DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
 0ED2;LAO DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
 1803;MONGOLIAN FULL STOP;Po;0;ON;;;;;N;;;;;
 1804;MONGOLIAN COLON;Po;0;ON;;;;;N;;;;;
 1805;MONGOLIAN FOUR DOTS;Po;0;ON;;;;;N;;;;;
-1806;MONGOLIAN TODO SOFT HYPHEN;Po;0;ON;;;;;N;;;;;
+1806;MONGOLIAN TODO SOFT HYPHEN;Pd;0;ON;;;;;N;;;;;
 1807;MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER;Po;0;ON;;;;;N;;;;;
 1808;MONGOLIAN MANCHU COMMA;Po;0;ON;;;;;N;;;;;
 1809;MONGOLIAN MANCHU FULL STOP;Po;0;ON;;;;;N;;;;;
 202C;POP DIRECTIONAL FORMATTING;Cf;0;PDF;;;;;N;;;;;
 202D;LEFT-TO-RIGHT OVERRIDE;Cf;0;LRO;;;;;N;;;;;
 202E;RIGHT-TO-LEFT OVERRIDE;Cf;0;RLO;;;;;N;;;;;
-202F;NARROW NO-BREAK SPACE;Zs;0;CS;<noBreak> 0020;;;;N;;;;;
+202F;NARROW NO-BREAK SPACE;Zs;0;WS;<noBreak> 0020;;;;N;;;;;
 2030;PER MILLE SIGN;Po;0;ET;;;;;N;;;;;
 2031;PER TEN THOUSAND SIGN;Po;0;ET;;;;;N;;;;;
 2032;PRIME;Po;0;ET;;;;;N;;;;;
 2197;NORTH EAST ARROW;So;0;ON;;;;;N;UPPER RIGHT ARROW;;;;
 2198;SOUTH EAST ARROW;So;0;ON;;;;;N;LOWER RIGHT ARROW;;;;
 2199;SOUTH WEST ARROW;So;0;ON;;;;;N;LOWER LEFT ARROW;;;;
-219A;LEFTWARDS ARROW WITH STROKE;So;0;ON;2190 0338;;;;N;LEFT ARROW WITH STROKE;;;;
-219B;RIGHTWARDS ARROW WITH STROKE;So;0;ON;2192 0338;;;;N;RIGHT ARROW WITH STROKE;;;;
+219A;LEFTWARDS ARROW WITH STROKE;Sm;0;ON;2190 0338;;;;N;LEFT ARROW WITH STROKE;;;;
+219B;RIGHTWARDS ARROW WITH STROKE;Sm;0;ON;2192 0338;;;;N;RIGHT ARROW WITH STROKE;;;;
 219C;LEFTWARDS WAVE ARROW;So;0;ON;;;;;N;LEFT WAVE ARROW;;;;
 219D;RIGHTWARDS WAVE ARROW;So;0;ON;;;;;N;RIGHT WAVE ARROW;;;;
 219E;LEFTWARDS TWO HEADED ARROW;So;0;ON;;;;;N;LEFT TWO HEADED ARROW;;;;
 219F;UPWARDS TWO HEADED ARROW;So;0;ON;;;;;N;UP TWO HEADED ARROW;;;;
-21A0;RIGHTWARDS TWO HEADED ARROW;So;0;ON;;;;;N;RIGHT TWO HEADED ARROW;;;;
+21A0;RIGHTWARDS TWO HEADED ARROW;Sm;0;ON;;;;;N;RIGHT TWO HEADED ARROW;;;;
 21A1;DOWNWARDS TWO HEADED ARROW;So;0;ON;;;;;N;DOWN TWO HEADED ARROW;;;;
 21A2;LEFTWARDS ARROW WITH TAIL;So;0;ON;;;;;N;LEFT ARROW WITH TAIL;;;;
-21A3;RIGHTWARDS ARROW WITH TAIL;So;0;ON;;;;;N;RIGHT ARROW WITH TAIL;;;;
+21A3;RIGHTWARDS ARROW WITH TAIL;Sm;0;ON;;;;;N;RIGHT ARROW WITH TAIL;;;;
 21A4;LEFTWARDS ARROW FROM BAR;So;0;ON;;;;;N;LEFT ARROW FROM BAR;;;;
 21A5;UPWARDS ARROW FROM BAR;So;0;ON;;;;;N;UP ARROW FROM BAR;;;;
-21A6;RIGHTWARDS ARROW FROM BAR;So;0;ON;;;;;N;RIGHT ARROW FROM BAR;;;;
+21A6;RIGHTWARDS ARROW FROM BAR;Sm;0;ON;;;;;N;RIGHT ARROW FROM BAR;;;;
 21A7;DOWNWARDS ARROW FROM BAR;So;0;ON;;;;;N;DOWN ARROW FROM BAR;;;;
 21A8;UP DOWN ARROW WITH BASE;So;0;ON;;;;;N;;;;;
 21A9;LEFTWARDS ARROW WITH HOOK;So;0;ON;;;;;N;LEFT ARROW WITH HOOK;;;;
 21AB;LEFTWARDS ARROW WITH LOOP;So;0;ON;;;;;N;LEFT ARROW WITH LOOP;;;;
 21AC;RIGHTWARDS ARROW WITH LOOP;So;0;ON;;;;;N;RIGHT ARROW WITH LOOP;;;;
 21AD;LEFT RIGHT WAVE ARROW;So;0;ON;;;;;N;;;;;
-21AE;LEFT RIGHT ARROW WITH STROKE;So;0;ON;2194 0338;;;;N;;;;;
+21AE;LEFT RIGHT ARROW WITH STROKE;Sm;0;ON;2194 0338;;;;N;;;;;
 21AF;DOWNWARDS ZIGZAG ARROW;So;0;ON;;;;;N;DOWN ZIGZAG ARROW;;;;
 21B0;UPWARDS ARROW WITH TIP LEFTWARDS;So;0;ON;;;;;N;UP ARROW WITH TIP LEFT;;;;
 21B1;UPWARDS ARROW WITH TIP RIGHTWARDS;So;0;ON;;;;;N;UP ARROW WITH TIP RIGHT;;;;
 21CB;LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON;So;0;ON;;;;;N;LEFT HARPOON OVER RIGHT HARPOON;;;;
 21CC;RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON;So;0;ON;;;;;N;RIGHT HARPOON OVER LEFT HARPOON;;;;
 21CD;LEFTWARDS DOUBLE ARROW WITH STROKE;So;0;ON;21D0 0338;;;;N;LEFT DOUBLE ARROW WITH STROKE;;;;
-21CE;LEFT RIGHT DOUBLE ARROW WITH STROKE;So;0;ON;21D4 0338;;;;N;;;;;
-21CF;RIGHTWARDS DOUBLE ARROW WITH STROKE;So;0;ON;21D2 0338;;;;N;RIGHT DOUBLE ARROW WITH STROKE;;;;
+21CE;LEFT RIGHT DOUBLE ARROW WITH STROKE;Sm;0;ON;21D4 0338;;;;N;;;;;
+21CF;RIGHTWARDS DOUBLE ARROW WITH STROKE;Sm;0;ON;21D2 0338;;;;N;RIGHT DOUBLE ARROW WITH STROKE;;;;
 21D0;LEFTWARDS DOUBLE ARROW;So;0;ON;;;;;N;LEFT DOUBLE ARROW;;;;
 21D1;UPWARDS DOUBLE ARROW;So;0;ON;;;;;N;UP DOUBLE ARROW;;;;
 21D2;RIGHTWARDS DOUBLE ARROW;Sm;0;ON;;;;;N;RIGHT DOUBLE ARROW;;;;
 2392;PASSIVE-PULL-UP-OUTPUT SYMBOL;So;0;ON;;;;;N;;;;;
 2393;DIRECT CURRENT SYMBOL FORM TWO;So;0;ON;;;;;N;;;;;
 2394;SOFTWARE-FUNCTION SYMBOL;So;0;ON;;;;;N;;;;;
-2395;APL FUNCTIONAL SYMBOL QUAD;So;0;ON;;;;;N;;;;;
+2395;APL FUNCTIONAL SYMBOL QUAD;So;0;L;;;;;N;;;;;
 2396;DECIMAL SEPARATOR KEY SYMBOL;So;0;ON;;;;;N;;;;;
 2397;PREVIOUS PAGE;So;0;ON;;;;;N;;;;;
 2398;NEXT PAGE;So;0;ON;;;;;N;;;;;
 25B4;BLACK UP-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK UP POINTING SMALL TRIANGLE;;;;
 25B5;WHITE UP-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE UP POINTING SMALL TRIANGLE;;;;
 25B6;BLACK RIGHT-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK RIGHT POINTING TRIANGLE;;;;
-25B7;WHITE RIGHT-POINTING TRIANGLE;So;0;ON;;;;;N;WHITE RIGHT POINTING TRIANGLE;;;;
+25B7;WHITE RIGHT-POINTING TRIANGLE;Sm;0;ON;;;;;N;WHITE RIGHT POINTING TRIANGLE;;;;
 25B8;BLACK RIGHT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK RIGHT POINTING SMALL TRIANGLE;;;;
 25B9;WHITE RIGHT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE RIGHT POINTING SMALL TRIANGLE;;;;
 25BA;BLACK RIGHT-POINTING POINTER;So;0;ON;;;;;N;BLACK RIGHT POINTING POINTER;;;;
 25BE;BLACK DOWN-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK DOWN POINTING SMALL TRIANGLE;;;;
 25BF;WHITE DOWN-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE DOWN POINTING SMALL TRIANGLE;;;;
 25C0;BLACK LEFT-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK LEFT POINTING TRIANGLE;;;;
-25C1;WHITE LEFT-POINTING TRIANGLE;So;0;ON;;;;;N;WHITE LEFT POINTING TRIANGLE;;;;
+25C1;WHITE LEFT-POINTING TRIANGLE;Sm;0;ON;;;;;N;WHITE LEFT POINTING TRIANGLE;;;;
 25C2;BLACK LEFT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK LEFT POINTING SMALL TRIANGLE;;;;
 25C3;WHITE LEFT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE LEFT POINTING SMALL TRIANGLE;;;;
 25C4;BLACK LEFT-POINTING POINTER;So;0;ON;;;;;N;BLACK LEFT POINTING POINTER;;;;
 266C;BEAMED SIXTEENTH NOTES;So;0;ON;;;;;N;BARRED SIXTEENTH NOTES;;;;
 266D;MUSIC FLAT SIGN;So;0;ON;;;;;N;FLAT;;;;
 266E;MUSIC NATURAL SIGN;So;0;ON;;;;;N;NATURAL;;;;
-266F;MUSIC SHARP SIGN;So;0;ON;;;;;N;SHARP;;;;
+266F;MUSIC SHARP SIGN;Sm;0;ON;;;;;N;SHARP;;;;
 2670;WEST SYRIAC CROSS;So;0;ON;;;;;N;;;;;
 2671;EAST SYRIAC CROSS;So;0;ON;;;;;N;;;;;
 2701;UPPER BLADE SCISSORS;So;0;ON;;;;;N;;;;;
@@ -9176,56 +9176,56 @@ A489;YI SYLLABLE YY;Lo;0;L;;;;;N;;;;;
 A48A;YI SYLLABLE YYP;Lo;0;L;;;;;N;;;;;
 A48B;YI SYLLABLE YYRX;Lo;0;L;;;;;N;;;;;
 A48C;YI SYLLABLE YYR;Lo;0;L;;;;;N;;;;;
-A490;YI RADICAL QOT;Lo;0;L;;;;;N;;;;;
-A491;YI RADICAL LI;Lo;0;L;;;;;N;;;;;
-A492;YI RADICAL KIT;Lo;0;L;;;;;N;;;;;
-A493;YI RADICAL NYIP;Lo;0;L;;;;;N;;;;;
-A494;YI RADICAL CYP;Lo;0;L;;;;;N;;;;;
-A495;YI RADICAL SSI;Lo;0;L;;;;;N;;;;;
-A496;YI RADICAL GGOP;Lo;0;L;;;;;N;;;;;
-A497;YI RADICAL GEP;Lo;0;L;;;;;N;;;;;
-A498;YI RADICAL MI;Lo;0;L;;;;;N;;;;;
-A499;YI RADICAL HXIT;Lo;0;L;;;;;N;;;;;
-A49A;YI RADICAL LYR;Lo;0;L;;;;;N;;;;;
-A49B;YI RADICAL BBUT;Lo;0;L;;;;;N;;;;;
-A49C;YI RADICAL MOP;Lo;0;L;;;;;N;;;;;
-A49D;YI RADICAL YO;Lo;0;L;;;;;N;;;;;
-A49E;YI RADICAL PUT;Lo;0;L;;;;;N;;;;;
-A49F;YI RADICAL HXUO;Lo;0;L;;;;;N;;;;;
-A4A0;YI RADICAL TAT;Lo;0;L;;;;;N;;;;;
-A4A1;YI RADICAL GA;Lo;0;L;;;;;N;;;;;
-A4A4;YI RADICAL DDUR;Lo;0;L;;;;;N;;;;;
-A4A5;YI RADICAL BUR;Lo;0;L;;;;;N;;;;;
-A4A6;YI RADICAL GGUO;Lo;0;L;;;;;N;;;;;
-A4A7;YI RADICAL NYOP;Lo;0;L;;;;;N;;;;;
-A4A8;YI RADICAL TU;Lo;0;L;;;;;N;;;;;
-A4A9;YI RADICAL OP;Lo;0;L;;;;;N;;;;;
-A4AA;YI RADICAL JJUT;Lo;0;L;;;;;N;;;;;
-A4AB;YI RADICAL ZOT;Lo;0;L;;;;;N;;;;;
-A4AC;YI RADICAL PYT;Lo;0;L;;;;;N;;;;;
-A4AD;YI RADICAL HMO;Lo;0;L;;;;;N;;;;;
-A4AE;YI RADICAL YIT;Lo;0;L;;;;;N;;;;;
-A4AF;YI RADICAL VUR;Lo;0;L;;;;;N;;;;;
-A4B0;YI RADICAL SHY;Lo;0;L;;;;;N;;;;;
-A4B1;YI RADICAL VEP;Lo;0;L;;;;;N;;;;;
-A4B2;YI RADICAL ZA;Lo;0;L;;;;;N;;;;;
-A4B3;YI RADICAL JO;Lo;0;L;;;;;N;;;;;
-A4B5;YI RADICAL JJY;Lo;0;L;;;;;N;;;;;
-A4B6;YI RADICAL GOT;Lo;0;L;;;;;N;;;;;
-A4B7;YI RADICAL JJIE;Lo;0;L;;;;;N;;;;;
-A4B8;YI RADICAL WO;Lo;0;L;;;;;N;;;;;
-A4B9;YI RADICAL DU;Lo;0;L;;;;;N;;;;;
-A4BA;YI RADICAL SHUR;Lo;0;L;;;;;N;;;;;
-A4BB;YI RADICAL LIE;Lo;0;L;;;;;N;;;;;
-A4BC;YI RADICAL CY;Lo;0;L;;;;;N;;;;;
-A4BD;YI RADICAL CUOP;Lo;0;L;;;;;N;;;;;
-A4BE;YI RADICAL CIP;Lo;0;L;;;;;N;;;;;
-A4BF;YI RADICAL HXOP;Lo;0;L;;;;;N;;;;;
-A4C0;YI RADICAL SHAT;Lo;0;L;;;;;N;;;;;
-A4C2;YI RADICAL SHOP;Lo;0;L;;;;;N;;;;;
-A4C3;YI RADICAL CHE;Lo;0;L;;;;;N;;;;;
-A4C4;YI RADICAL ZZIET;Lo;0;L;;;;;N;;;;;
-A4C6;YI RADICAL KE;Lo;0;L;;;;;N;;;;;
+A490;YI RADICAL QOT;So;0;ON;;;;;N;;;;;
+A491;YI RADICAL LI;So;0;ON;;;;;N;;;;;
+A492;YI RADICAL KIT;So;0;ON;;;;;N;;;;;
+A493;YI RADICAL NYIP;So;0;ON;;;;;N;;;;;
+A494;YI RADICAL CYP;So;0;ON;;;;;N;;;;;
+A495;YI RADICAL SSI;So;0;ON;;;;;N;;;;;
+A496;YI RADICAL GGOP;So;0;ON;;;;;N;;;;;
+A497;YI RADICAL GEP;So;0;ON;;;;;N;;;;;
+A498;YI RADICAL MI;So;0;ON;;;;;N;;;;;
+A499;YI RADICAL HXIT;So;0;ON;;;;;N;;;;;
+A49A;YI RADICAL LYR;So;0;ON;;;;;N;;;;;
+A49B;YI RADICAL BBUT;So;0;ON;;;;;N;;;;;
+A49C;YI RADICAL MOP;So;0;ON;;;;;N;;;;;
+A49D;YI RADICAL YO;So;0;ON;;;;;N;;;;;
+A49E;YI RADICAL PUT;So;0;ON;;;;;N;;;;;
+A49F;YI RADICAL HXUO;So;0;ON;;;;;N;;;;;
+A4A0;YI RADICAL TAT;So;0;ON;;;;;N;;;;;
+A4A1;YI RADICAL GA;So;0;ON;;;;;N;;;;;
+A4A4;YI RADICAL DDUR;So;0;ON;;;;;N;;;;;
+A4A5;YI RADICAL BUR;So;0;ON;;;;;N;;;;;
+A4A6;YI RADICAL GGUO;So;0;ON;;;;;N;;;;;
+A4A7;YI RADICAL NYOP;So;0;ON;;;;;N;;;;;
+A4A8;YI RADICAL TU;So;0;ON;;;;;N;;;;;
+A4A9;YI RADICAL OP;So;0;ON;;;;;N;;;;;
+A4AA;YI RADICAL JJUT;So;0;ON;;;;;N;;;;;
+A4AB;YI RADICAL ZOT;So;0;ON;;;;;N;;;;;
+A4AC;YI RADICAL PYT;So;0;ON;;;;;N;;;;;
+A4AD;YI RADICAL HMO;So;0;ON;;;;;N;;;;;
+A4AE;YI RADICAL YIT;So;0;ON;;;;;N;;;;;
+A4AF;YI RADICAL VUR;So;0;ON;;;;;N;;;;;
+A4B0;YI RADICAL SHY;So;0;ON;;;;;N;;;;;
+A4B1;YI RADICAL VEP;So;0;ON;;;;;N;;;;;
+A4B2;YI RADICAL ZA;So;0;ON;;;;;N;;;;;
+A4B3;YI RADICAL JO;So;0;ON;;;;;N;;;;;
+A4B5;YI RADICAL JJY;So;0;ON;;;;;N;;;;;
+A4B6;YI RADICAL GOT;So;0;ON;;;;;N;;;;;
+A4B7;YI RADICAL JJIE;So;0;ON;;;;;N;;;;;
+A4B8;YI RADICAL WO;So;0;ON;;;;;N;;;;;
+A4B9;YI RADICAL DU;So;0;ON;;;;;N;;;;;
+A4BA;YI RADICAL SHUR;So;0;ON;;;;;N;;;;;
+A4BB;YI RADICAL LIE;So;0;ON;;;;;N;;;;;
+A4BC;YI RADICAL CY;So;0;ON;;;;;N;;;;;
+A4BD;YI RADICAL CUOP;So;0;ON;;;;;N;;;;;
+A4BE;YI RADICAL CIP;So;0;ON;;;;;N;;;;;
+A4BF;YI RADICAL HXOP;So;0;ON;;;;;N;;;;;
+A4C0;YI RADICAL SHAT;So;0;ON;;;;;N;;;;;
+A4C2;YI RADICAL SHOP;So;0;ON;;;;;N;;;;;
+A4C3;YI RADICAL CHE;So;0;ON;;;;;N;;;;;
+A4C4;YI RADICAL ZZIET;So;0;ON;;;;;N;;;;;
+A4C6;YI RADICAL KE;So;0;ON;;;;;N;;;;;
 AC00;<Hangul Syllable, First>;Lo;0;L;;;;;N;;;;;
 D7A3;<Hangul Syllable, Last>;Lo;0;L;;;;;N;;;;;
 D800;<Non Private Use High Surrogate, First>;Cs;0;L;;;;;N;;;;;
diff --git a/lib/unicode/arabshp.txt b/lib/unicode/arabshp.txt
deleted file mode 100755 (executable)
index 82f2220..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-# Unicode; Name; Link; Link  Group
-0622; MADDAH ON ALEF; R; ALEF
-0623; HAMZAH ON ALEF; R; ALEF
-0624; HAMZAH ON WAW; R; WAW
-0625; HAMZAH UNDER ALEF; R; ALEF
-0626; HAMZAH ON YA; D; YA
-0627; ALEF; R; ALEF
-0628; BAA; D; BAA
-0629; TAA MARBUTAH; R; TAA MARBUTAH
-062A; TAA; D; BAA
-062B; THAA; D; BAA
-062C; JEEM; D; HAA
-062D; HAA; D; HAA
-062E; KHAA; D; HAA
-062F; DAL; R; DAL
-0630; THAL; R; DAL
-0631; RA; R; RA
-0632; ZAIN; R; RA
-0633; SEEN; D; SEEN
-0634; SHEEN; D; SEEN
-0635; SAD; D; SAD
-0636; DAD; D; SAD
-0637; TAH; D; TAH
-0638; DHAH; D; TAH
-0639; AIN; D; AIN
-063A; GHAIN; D; AIN
-0640; TATWEEL; C; <no shaping>
-0641; FA; D; FA
-0642; QAF; D; QAF
-0643; CAF; D; CAF
-0644; LAM; D; LAM
-0645; MEEM; D; MEEM
-0646; NOON; D; NOON
-0647; HA; D; HA
-0648; WAW; R; WAW
-0649; ALEF MAQSURAH; R; ALEF MAQSURAH
-064A; YA; D; YA
-0671; HAMZAT WASL ON ALEF; U; <no shaping>
-0672; WAVY HAMZAH ON ALEF; R; ALEF
-0673; WAVY HAMZAH UNDER ALEF; R; ALEF
-0674; HIGH HAMZAH; U; <no shaping>
-0675; HIGH HAMZAH ALEF; R; ALEF
-0676; HIGH HAMZAH WAW; R; WAW
-0677; HIGH HAMZAH WAW WITH DAMMAH; R; WAW
-0678; HIGH HAMZAH YA; D; YA
-0679; TAA WITH SMALL TAH; D; BAA
-067A; TAA WITH 2 DOTS VERTICAL ABOVE; D; BAA
-067B; BAA WITH 2 DOTS VERTICAL BELOW; D; BAA
-067C; TAA WITH RING; D; BAA
-067D; TAA WITH 3 DOTS ABOVE DOWNWARD; D; BAA
-067E; TAA WITH 3 DOTS BELOW; D; BAA
-067F; TAA WITH 4 DOTS ABOVE; D; BAA
-0680; BAA WITH 4 DOTS BELOW; D; BAA
-0681; HAMZAH ON HAA; D; HAA
-0682; HAA WITH 2 DOTS VERTICAL ABOVE; D; HAA
-0683; HAA WITH MIDDLE 2 DOTS; D; HAA
-0684; HAA WITH MIDDLE 2 DOTS VERTICAL; D; HAA
-0685; HAA WITH 3 DOTS ABOVE; D; HAA
-0686; HAA WITH MIDDLE 3 DOTS DOWNWARD; D; HAA
-0687; HAA WITH MIDDLE 4 DOTS; D; HAA
-0688; DAL WITH SMALL TAH; R; DAL
-0689; DAL WITH RING; R; DAL
-068A; DAL WITH DOT BELOW; R; DAL
-068B; DAL WITH DOT BELOW AND SMALL TAH; R; DAL
-068C; DAL WITH 2 DOTS ABOVE; R; DAL
-068D; DAL WITH 2 DOTS BELOW; R; DAL
-068E; DAL WITH 3 DOTS ABOVE; R; DAL
-068F; DAL WITH 3 DOTS ABOVE DOWNWARD; R; DAL
-0690; DAL WITH 4 DOTS ABOVE; R; DAL
-0691; RA WITH SMALL TAH; R; RA
-0692; RA WITH SMALL V; R; RA
-0693; RA WITH RING; R; RA
-0694; RA WITH DOT BELOW; R; RA
-0695; RA WITH SMALL V BELOW; R; RA
-0696; RA WITH DOT BELOW AND DOT ABOVE; R; RA
-0697; RA WITH 2 DOTS ABOVE; R; RA
-0698; RA WITH 3 DOTS ABOVE; R; RA
-0699; RA WITH 4 DOTS ABOVE; R; RA
-069A; SEEN WITH DOT BELOW AND DOT ABOVE; D; SEEN
-069B; SEEN WITH 3 DOTS BELOW; D; SEEN
-069C; SEEN WITH 3 DOTS BELOW AND 3 DOTS ABOVE; D; SEEN
-069D; SAD WITH 2 DOTS BELOW; D; SAD
-069E; SAD WITH 3 DOTS ABOVE; D; SAD
-069F; TAH WITH 3 DOTS ABOVE; D; TAH
-06A0; AIN WITH 3 DOTS ABOVE; D; AIN
-06A1; DOTLESS FA; D; FA
-06A2; FA WITH DOT MOVED BELOW; D; FA
-06A3; FA WITH DOT BELOW; D; FA
-06A4; FA WITH 3 DOTS ABOVE; D; FA
-06A5; FA WITH 3 DOTS BELOW; D; FA
-06A6; FA WITH 4 DOTS ABOVE; D; FA
-06A7; QAF WITH DOT ABOVE; D; QAF
-06A8; QAF WITH 3 DOTS ABOVE; D; QAF
-06A9; OPEN CAF; D; GAF
-06AA; SWASH CAF; D; SWASH CAF
-06AB; CAF WITH RING; D; GAF
-06AC; CAF WITH DOT ABOVE; D; CAF
-06AD; CAF WITH 3 DOTS ABOVE; D; CAF
-06AE; CAF WITH 3 DOTS BELOW; D; CAF
-06AF; GAF; D; GAF
-06B0; GAF WITH RING; D; GAF
-06B1; GAF WITH 2 DOTS ABOVE; D; GAF
-06B2; GAF WITH 2 DOTS BELOW; D; GAF
-06B3; GAF WITH 2 DOTS VERTICAL BELOW; D; GAF
-06B4; GAF WITH 3 DOTS ABOVE; D; GAF
-06B5; LAM WITH SMALL V; D; LAM
-06B6; LAM WITH DOT ABOVE; D; LAM
-06B7; LAM WITH 3 DOTS ABOVE; D; LAM
-06BA; DOTLESS NOON; D; NOON
-06BB; DOTLESS NOON WITH SMALL TAH; D; NOON
-06BC; NOON WITH RING; D; NOON
-06BD; NOON WITH 3 DOTS ABOVE; D; NOON
-06BE; KNOTTED HA; D; KNOTTED HA
-06C0; HAMZAH ON HA; R; TAA MARBUTAH
-06C1; HA GOAL; D; HA GOAL
-06C2; HAMZAH ON HA GOAL; R; HAMZAH ON HA GOAL
-06C3; TAA MARBUTAH GOAL; R; HAMZAH ON HA GOAL
-06C4; WAW WITH RING; R; WAW
-06C5; WAW WITH BAR; R; WAW
-06C6; WAW WITH SMALL V; R; WAW
-06C7; WAW WITH DAMMAH; R; WAW
-06C8; WAW WITH ALEF ABOVE; R; WAW
-06C9; WAW WITH INVERTED SMALL V; R; WAW
-06CA; WAW WITH 2 DOTS ABOVE; R; WAW
-06CB; WAW WITH 3 DOTS ABOVE; R; WAW
-06CC; DOTLESS YA; D; YA
-06CD; YA WITH TAIL; R; ALEF MAQSURAH
-06CE; YA WITH SMALL V; D; YA
-06D0; YA WITH 2 DOTS VERTICAL BELOW; D; YA
-06D1; YA WITH 3 DOTS BELOW; D; YA
-06D2; YA BARREE; R; YA BARREE
-06D3; HAMZAH ON YA BARREE; R; YA BARREE
-06D5; AE; U; <no shaping>
-
index 801dbff..9458a95 100755 (executable)
@@ -193,7 +193,7 @@ END
 
 exit if @ARGV and not grep { $_ eq Block } @ARGV;
 print "Block\n";
-open(UD, 'blocks.txt') or die "Can't open blocks.txt: $!\n";
+open(UD, 'Blocks.txt') or die "Can't open blocks.txt: $!\n";
 open(OUT, ">Block.pl") or die "Can't create $table.pl: $!\n";
 print OUT <<"END";
 return <<'END';
@@ -229,12 +229,12 @@ sub proplist {
     my $split;
 
     if ($table =~ /^Arab/) {
-       open(UD, "arabshp.txt") or warn "Can't open $table: $!";
+       open(UD, "ArabShap.txt") or warn "Can't open $table: $!";
 
        $split = '($code, $name, $link, $linkgroup) = split(/; */);';
     }
     elsif ($table =~ /^Jamo/) {
-       open(UD, "jamo2.txt") or warn "Can't open $table: $!";
+       open(UD, "Jamo-2.txt") or warn "Can't open $table: $!";
 
        $split = '($code, $short, $name) = split(/; */); $code =~ s/^U\+//;';
     }
diff --git a/lib/unicode/props2.txt b/lib/unicode/props2.txt
deleted file mode 100755 (executable)
index 3909bff..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-# Alphabetic
-0041..005A, 0061..007A, 00AA      , 00B5      , 00BA      , 00C0..00D6, 
-00D8..00F6, 00F8..01F5, 01FA..0217, 0250..02A8, 02B0..02B8, 02BB..02C1, 
-02E0..02E4, 037A      , 0386      , 0388..038A, 038C      , 038E..03A1, 
-03A3..03CE, 03D0..03D6, 03DA      , 03DC      , 03DE      , 03E0      , 
-03E2..03F3, 0401..040C, 040E..044F, 0451..045C, 045E..0481, 0490..04C4, 
-04C7..04C8, 04CB..04CC, 04D0..04EB, 04EE..04F5, 04F8..04F9, 0531..0556, 
-0559..055A, 0561..0587, 05D0..05EA, 05F0..05F2, 0621..063A, 0641..0652, 
-0670..06B7, 06BA..06BE, 06C0..06CE, 06D0..06D3, 06D5..06DC, 06E1..06E8, 
-06ED      , 0901..0903, 0905..0939, 093D..094C, 0958..0963, 0981..0983, 
-0985..098C, 098F..0990, 0993..09A8, 09AA..09B0, 09B2      , 09B6..09B9, 
-09BE..09C4, 09C7..09C8, 09CB..09CC, 09D7      , 09DC..09DD, 09DF..09E3, 
-09F0..09F1, 0A02      , 0A05..0A0A, 0A0F..0A10, 0A13..0A28, 0A2A..0A30, 
-0A32..0A33, 0A35..0A36, 0A38..0A39, 0A3E..0A42, 0A47..0A48, 0A4B..0A4C, 
-0A8F..0A91, 0A93..0AA8, 0AAA..0AB0, 0AB2..0AB3, 0AB5..0AB9, 0ABD..0AC5, 
-0AC7..0AC9, 0ACB..0ACC, 0AE0      , 0B01..0B03, 0B05..0B0C, 0B0F..0B10, 
-0B13..0B28, 0B2A..0B30, 0B32..0B33, 0B36..0B39, 0B3D..0B43, 0B47..0B48, 
-0B4B..0B4C, 0B56..0B57, 0B5C..0B5D, 0B5F..0B61, 0B82..0B83, 0B85..0B8A, 
-0B8E..0B90, 0B92..0B95, 0B99..0B9A, 0B9C      , 0B9E..0B9F, 0BA3..0BA4, 
-0BA8..0BAA, 0BAE..0BB5, 0BB7..0BB9, 0BBE..0BC2, 0BC6..0BC8, 0BCA..0BCC, 
-0BD7      , 0C01..0C03, 0C05..0C0C, 0C0E..0C10, 0C12..0C28, 0C2A..0C33, 
-0C35..0C39, 0C3E..0C44, 0C46..0C48, 0C4A..0C4C, 0C55..0C56, 0C60..0C61, 
-0C82..0C83, 0C85..0C8C, 0C8E..0C90, 0C92..0CA8, 0CAA..0CB3, 0CB5..0CB9, 
-0CBE..0CC4, 0CC6..0CC8, 0CCA..0CCC, 0CD5..0CD6, 0CDE      , 0CE0..0CE1, 
-0D02..0D03, 0D05..0D0C, 0D0E..0D10, 0D12..0D28, 0D2A..0D39, 0D3E..0D43, 
-0D46..0D48, 0D4A..0D4C, 0D57      , 0D60..0D61, 0E01..0E2E, 0E30..0E3A, 
-0E40..0E45, 0E47      , 0E4D      , 0E81..0E82, 0E84      , 0E87..0E88, 
-0E8A      , 0E8D      , 0E94..0E97, 0E99..0E9F, 0EA1..0EA3, 0EA5      , 
-0EA7      , 0EAA..0EAB, 0EAD..0EAE, 0EB0..0EB9, 0EBB..0EBD, 0EC0..0EC4, 
-0ECD      , 0EDC..0EDD, 0F40..0F47, 0F49..0F69, 0F71..0F81, 0F90..0F95, 
-0F97      , 0F99..0FAD, 0FB1..0FB7, 0FB9      , 10A0..10C5, 10D0..10F6, 
-1100..1159, 115F..11A2, 11A8..11F9, 1E00..1E9B, 1EA0..1EF9, 1F00..1F15, 
-1F18..1F1D, 1F20..1F45, 1F48..1F4D, 1F50..1F57, 1F59      , 1F5B      , 
-1F5D      , 1F5F..1F7D, 1F80..1FB4, 1FB6..1FBC, 1FBE      , 1FC2..1FC4, 
-1FC6..1FCC, 1FD0..1FD3, 1FD6..1FDB, 1FE0..1FEC, 1FF2..1FF4, 1FF6..1FFC, 
-207F      , 2102      , 2107      , 210A..2113, 2115      , 2118..211D, 
-2124      , 2126      , 2128      , 212A..212D, 212F..2131, 2133..2138, 
-2160..2182, 3041..3094, 30A1..30FA, 3105..312C, 3131..318E, AC00..D7A3, 
-FB00..FB06, FB13..FB17, FB1F..FB28, FB2A..FB36, FB38..FB3C, FB3E      , 
-FB40..FB41, FB43..FB44, FB46..FBB1, FBD3..FD3D, FD50..FD8F, FD92..FDC7, 
-FDF0..FDFB, FE70..FE72, FE74      , FE76..FEFC, FF21..FF3A, FF41..FF5A, 
-FF66..FF6F, FF71..FF9D, FFA0..FFBE, FFC2..FFC7, FFCA..FFCF, FFD2..FFD7, 
-FFDA..FFDC
-
-# Ideographic
-4E00..9FA5, F900..FA2D, 3007, 3021..3029
-
-# Mathematical
-0028..002B, 002D, 002F, 003C..003E, 005B..005E, 007B..007E, 00AC, 00B1, 
-00D7, 00F7, 20A6, 2032..2034, 2044, 20D2..20E1, 2190..2194, 21D2, 21D4, 
-2200..22F1, 2308..230B, 2320..2321, 2329..232A
diff --git a/lib/unicode/readme.txt b/lib/unicode/readme.txt
deleted file mode 100755 (executable)
index 5f908d3..0000000
+++ /dev/null
@@ -1,301 +0,0 @@
-
-UNICODE 2.0 CHARACTER DATABASE
-
-Copyright (c) 1991-1996 Unicode, Inc.
-All Rights reserved.
-
-DISCLAIMER
-
-The Unicode Character Database "UNIDATA2.TXT" is provided as-is by
-Unicode, Inc. (The Unicode Consortium). No claims are made as to fitness for any
-particular purpose. No warranties of any kind are expressed or implied. The
-recipient agrees to determine applicability of information provided. If this
-file has been purchased on magnetic or optical media from Unicode, Inc.,
-the sole remedy for any claim will be exchange of defective media within
-90 days of receipt.
-
-This disclaimer is applicable for all other data files accompanying the
-Unicode Character Database, some of which have been compiled by the
-Unicode Consortium, and some of which have been supplied by other vendors.
-
-LIMITATIONS ON RIGHTS TO REDISTRIBUTE THIS DATA
-
-Recipient is granted the right to make copies in any form for internal
-distribution and to freely use the information supplied in the creation of
-products supporting the Unicode (TM) Standard. This file can be redistributed
-to third parties or other organizations (whether for profit or not) as long
-as this notice and the disclaimer notice are retained.
-
-EXPLANATORY INFORMATION
-
-The Unicode Character Database defines the default Unicode character
-properties, and internal mappings. Particular implementations may choose to
-override the properties and mappings that are not normative. If that is done,
-it is up to the implementer to establish a protocol to convey that
-information. For more information about character properties and mappings,
-see "The Unicode Standard, Worldwide Character Encoding, Version 2.0",
-published by Addison-Wesley. For information about other data files
-accompanying the Unicode Character Database, see the section of the
-Unicode Standard they were extracted from, or the explanatory readme
-files and/or header sections with those files.
-
-The Unicode Character Database is a plain ASCII text file consisting of lines
-containing fields terminated by semicolons. Each line represents the data for
-one encoded character in the Unicode Standard, Version 2.0. Every encoded
-character has a data entry, with the exception of certain special ranges, as
-detailed below.
-
-There are five special ranges of characters that are represented only by
-their start and end characters, since the properties in the file are uniform,
-except for code values (which are all sequential and assigned). The names of CJK
-ideograph characters and Hangul syllable characters are algorithmically
-derivable. (See the Unicode Standard for more information). Surrogate
-characters and private use characters have no names.
-
-The exact ranges represented by start and end characters are:
-
-   The CJK Ideographs Area (U+4E00 - U+9FFF)
-   The Hangul Syllables Area (U+AC00 - U+D7A3)
-   The Surrogates Area (U+D800 - U+DFFF)
-   The Private Use Area (U+E000 - U+F8FF)
-   CJK Compatibility Ideographs (U+F900 - U+FAFF)
-
-The following table describes the format and meaning of each field in a
-data entry in the Unicode Character Database. Fields which contain
-normative information are so indicated.
-
-Field  Explanation
------  -----------
-
-  0    Code value in 4-digit hexadecimal format.
-       This field is normative.
-
-  1    Unicode 2.0 Character Name. These names match exactly the
-       names published in Chapter 7 of the Unicode Standard.
-       This field is normative.
-
-  2    General Category. This is a useful breakdown into various "character
-       types" which can be used as a default categorization in implementations.
-       Some of the values are normative, and some are informative.
-       See below for a brief explanation.
-
-  3    Canonical Combining Classes. The classes used for the
-       Canonical Ordering Algorithm in the Unicode Standard. These
-       classes are also printed in Chapter 4 of the Unicode Standard.
-        This field is normative. See below for a brief explanation.
-
-  4    Bidirectional Category. See the list below for an explanation of the
-       abbreviations used in this field. These are the categories required
-       by the Bidirectional Behavior Algorithm in the Unicode Standard.
-       These categories are summarized in Chapter 4 of the Unicode Standard.
-       This field is normative.
-
-  5    Character Decomposition. In the Unicode Standard, Version 2.0, not all of
-       the decompositions are full decompositions. Recursive
-       application of look-up for decompositions will, in all cases, lead to
-       a maximal decomposition. The decompositions match exactly the
-       decompositions published with the character names in Chapter 7
-       of the Unicode Standard. This field is normative.
-
-  6    Decimal digit value. This is a numeric field. If the character
-       has the decimal digit property, as specified in Chapter 4 of
-       the Unicode Standard, the value of that digit is represented
-       with an integer value in this field. This field is normative.
-
-  7    Digit value. This is a numeric field. If the character represents a
-       digit, not necessarily a decimal digit, the value is here. This
-       covers digits which do not form decimal radix forms, such as the
-       compatibility superscript digits. This field is informative.
-
-  8    Numeric value. This is a numeric field. If the character has the
-       numeric property, as specified in Chapter 4 of the Unicode
-       Standard, the value of that character is represented with an
-       integer or rational number in this field. This includes fractions as,
-       e.g., "1/5" for U+2155 VULGAR FRACTION ONE FIFTH.
-       Also included are numerical values for compatibility characters
-       such as circled numbers. This field is normative.
-
-  9    If the characters has been identified as a "mirrored" character in
-        bidirectional text, this field has the value "Y"; otherwise "N".
-       The list of mirrored characters is also printed in Chapter 4 of
-       the Unicode Standard. This field is normative.
-
- 10    Unicode 1.0 Name. This is the old name as published in Unicode 1.0.
-       This name is only provided when it is significantly different from
-       the Unicode 2.0 name for the character. This field is informative.
-
- 11    10646 Comment field. This field is informative.
-
- 12    Upper case equivalent mapping. If a character is part of an
-       alphabet with case distinctions, and has an upper case equivalent,
-       then the upper case equivalent is in this field. See the explanation
-       below on case distinctions. These mappings are always one-to-one,
-       not one-to-many or many-to-one. This field is informative.
-
- 13    Lower case equivalent mapping. Similar to 12. This field is informative.
-
- 14    Title case equivalent mapping. Similar to 12. This field is informative. 
-
-GENERAL CATEGORY
-
-The values in this field are abbreviations for the following. Some of the
-values are normative, and some are informative. For more information, see
-the Unicode Standard.
-
-Normative
-    Mn = Mark, Non-Spacing 
-    Mc = Mark, Combining
-    Nd = Number, Decimal Digit
-    No = Number, Other
-    Zs = Separator, Space
-    Zl = Separator, Line
-    Zp = Separator, Paragraph
-    Cc = Other, Control or Format
-    Co = Other, Private Use
-    Cn = Other, Not Assigned
-
-Informative
-    Lu = Letter, Uppercase
-    Ll = Letter, Lowercase
-    Lt = Letter, Titlecase 
-    Lm = Letter, Modifier
-    Lo = Letter, Other 
-    Pd = Punctuation, Dash
-    Ps = Punctuation, Open
-    Pe = Punctuation, Close
-    Po = Punctuation, Other
-    Sm = Symbol, Math
-    Sc = Symbol, Currency
-    So = Symbol, Other
-
-BIDIRECTIONAL PROPERTIES
-
-Please refer to the Unicode Standard for an explanation of the algorithm for
-Bidirectional Behavior and an explanation of the sigificance of these categories.
-These values are normative.
-
-Strong types:
-       L       Left-Right; Most alphabetic, syllabic, and logographic
-                       characters (e.g., CJK ideographs)
-       R       Right-Left; Arabic, Hebrew, and
-                       punctuation specific to those scripts
-Weak types:
-       EN      European Number
-       ES      European Number Separator
-       ET      European Number Terminator
-       AN      Arabic Number
-       CS      Common Number Separator
-
-Separators:
-       B       Block Separator
-       S       Segment Separator
-
-Neutrals:
-       WS      Whitespace
-       ON      Other Neutrals ; All other characters: punctuation, symbols
-
-CHARACTER DECOMPOSITION TAGS
-
-The decomposition is a normative property of a character. The tags supplied
-with certain decompositions generally indicate formatting information.
-Where no such tag is given, the decomposition is designated as canonical.
-Conversely, the presence of a formatting tag also indicates
-that the decomposition is a compatibility decomposition and not a canonical
-decomposition. In the absence of other formatting information in a
-compatibility decomposition, the tag <compat> is used to distinguish it from
-canonical decompositions.
-
-In some instances a canonical decomposition or a compatibility decomposition
-may consist of a single character. For a canonical decomposition, this
-indicates that the character is a canonical equivalent of another single
-character. For a compatibility decomposition, this indicates that the
-character is a compatibility equivalent of another single character.
-
-The compatibility formatting tags used are:
-
-       <font>          A font variant (e.g. a blackletter form).
-       <noBreak>       A no-break version of a space or hyphen.
-       <initial>       An initial presentation form (Arabic).
-       <medial>        A medial presentation form (Arabic).
-       <final>         A final presentation form (Arabic).
-       <isolated>      An isolated presentation form (Arabic).
-       <circle>        An encircled form.
-       <super>         A superscript form.
-       <sub>           A subscript form.
-       <vertical>      A vertical layout presentation form.
-       <wide>          A wide (or zenkaku) compatibility character.
-       <narrow>        A narrow (or hankaku) compatibility character.
-       <small>         A small variant form (CNS compatibility).
-       <square>        A CJK squared font variant.
-       <compat>        Otherwise unspecified compatibility character.
-
-CANONICAL COMBINING CLASSES
-
-  0: Spacing, enclosing, reordrant, and surrounding
-  1: Overlays and interior
-  6: Tibetan subjoined Letters
-  7: Nuktas
-  8: Hiragana/Katakana voiced marks
-  9: Viramas
- 10: Start of fixed position classes
-199: End of fixed position classes
-200: Below left attached
-202: Below attached
-204: Below right attached
-208: Left attached (reordrant around single base character)
-210: Right attached
-212: Above left attached
-214: Above attached
-216: Above right attached
-218: Below left
-220: Below
-222: Below right
-224: Left (reordrant around single base character)
-226: Right
-228: Above left
-230: Above
-232: Above right
-234: Double above
-
-Note: some of the combining classes in this list do not currently have
-members but are specified here for completeness.
-
-CASE MAPPINGS
-
-In addition to uppercase and lowercase, because of the inclusion of certain
-composite characters for compatibility, such as "01F1;LATIN CAPITAL LETTER
-DZ", there is a third case, called titlecase, which is used where the first
-character of a word is to be capitalized (e.g. UPPERCASE, Titlecase,
-lowercase). An example of such a character is "01F2;LATIN CAPITAL LETTER D
-WITH SMALL LETTER Z".
-
-The uppercase, titlecase and lowercase fields are only included for characters
-that have a single corresponding character of that type. Composite characters
-(such as "339D;SQUARE CM") that do not have a single corresponding character
-of that type can be cased by decomposition.
-
-The case mapping is an informative, default mapping. Certain languages, such
-as Turkish, German, French, or Greek may have small deviations from the
-default mappings listed in the Unicode Character Database.
-
-MODIFICATION HISTORY
-
-Some of the modifications made in updating the Unicode Character Database
-for the Unicode Standard, Version 2.0 are:
-* Fixed decompositions with TONOS to use correct NSM: 030D.
-* Removed old Hangul Syllables; mapping to new characters are
-       in a separate table.
-* Marked compability decompositions with additional tags.
-* Changed old tag names for clarity.
-* Revision of decompositions to use first-level decomposition, instead
-       of maximal decomposition.
-* Correction of all known errors in decompositions from earlier versions.
-* Added control code names (as old Unicode names).
-* Added Hangul Jamo decompositions.
-* Added Number category to match properties list in book.
-* Fixed categories of Koranic Arabic marks.
-* Fixed categories of precomposed characters to match decomposition where possible.
-* Added Hebrew cantillation marks and the Tibetan script.
-* Added place holders for ranges such as CJK Ideographic Area and the
-       Private Use Area.
-* Eliminated "Nd" as a category.
index 908d7a7..778f70e 100644 (file)
--- a/malloc.c
+++ b/malloc.c
 
 #define u_char unsigned char
 #define u_int unsigned int
-
-#ifdef HAS_QUAD
-#  define u_bigint UV                  /* Needs to eat *void. */
-#else  /* needed? */
-#  define u_bigint unsigned long       /* Needs to eat *void. */
-#endif
-
+/* 
+ * I removed the definition of u_bigint which appeared to be u_bigint = UV
+ * u_bigint was only used in TWOK_MASKED and TWOK_SHIFT 
+ * where I have used PTR2UV.  RMB
+ */
 #define u_short unsigned short
 
 /* 286 and atarist like big chunks, which gives too much overhead. */
@@ -516,9 +514,9 @@ static u_short buck_size[MAX_BUCKET_BY_TABLE + 1] =
 #  define MAX_PACKED (MAX_PACKED_POW2 * BUCKETS_PER_POW2 + BUCKET_POW2_SHIFT)
 #  define MAX_POW2_ALGO ((1<<(MAX_PACKED_POW2 + 1)) - M_OVERHEAD)
 #  define TWOK_MASK ((1<<LOG_OF_MIN_ARENA) - 1)
-#  define TWOK_MASKED(x) ((u_bigint)PTR_CAST(x) & ~TWOK_MASK)
-#  define TWOK_SHIFT(x) ((u_bigint)PTR_CAST(x) & TWOK_MASK)
-#  define OV_INDEXp(block) ((u_char*)PTR_CAST(TWOK_MASKED(block)))
+#  define TWOK_MASKED(x) (PTR2UV(x) & ~TWOK_MASK)
+#  define TWOK_SHIFT(x) (PTR2UV(x) & TWOK_MASK)
+#  define OV_INDEXp(block) (INT2PTR(u_char*,TWOK_MASKED(block)))
 #  define OV_INDEX(block) (*OV_INDEXp(block))
 #  define OV_MAGIC(block,bucket) (*(OV_INDEXp(block) +                 \
                                    (TWOK_SHIFT(block)>>                \
@@ -781,7 +779,7 @@ emergency_sbrk(MEM_SIZE size)
        /* Got it, now detach SvPV: */
        pv = SvPV(sv, n_a);
        /* Check alignment: */
-       if (((UV)PTR_CAST (pv - sizeof(union overhead))) & (NEEDED_ALIGNMENT - 1)) {
+       if ((PTR2UV(pv) - sizeof(union overhead)) & (NEEDED_ALIGNMENT - 1)) {
            PerlIO_puts(PerlIO_stderr(),"Bad alignment of $^M!\n");
            return (char *)-1;          /* die die die */
        }
@@ -924,7 +922,7 @@ Perl_malloc(register size_t nbytes)
 
        /* remove from linked list */
 #if defined(RCHECK)
-       if (((UV)PTR_CAST p) & (MEM_ALIGNBYTES - 1))
+       if ((PTR2UV(p)) & (MEM_ALIGNBYTES - 1))
            PerlIO_printf(PerlIO_stderr(), "Corrupt malloc ptr 0x%lx at 0x%lx\n",
                (unsigned long)*((int*)p),(unsigned long)p);
 #endif
@@ -1121,8 +1119,8 @@ getpages(int needed, int *nblksp, int bucket)
 #  ifndef I286         /* The sbrk(0) call on the I286 always returns the next segment */
        /* WANTED_ALIGNMENT may be more than NEEDED_ALIGNMENT, but this may
           improve performance of memory access. */
-       if ((UV)PTR_CAST cp & (WANTED_ALIGNMENT - 1)) { /* Not aligned. */
-           slack = WANTED_ALIGNMENT - ((UV)PTR_CAST cp & (WANTED_ALIGNMENT - 1));
+       if (PTR2UV(cp) & (WANTED_ALIGNMENT - 1)) { /* Not aligned. */
+           slack = WANTED_ALIGNMENT - (PTR2UV(cp) & (WANTED_ALIGNMENT - 1));
            add += slack;
        }
 #  endif
@@ -1183,16 +1181,16 @@ getpages(int needed, int *nblksp, int bucket)
         */
 
 #  if NEEDED_ALIGNMENT > MEM_ALIGNBYTES
-       if ((UV)PTR_CAST ovp & (NEEDED_ALIGNMENT - 1))
+       if (PTR2UV(ovp) & (NEEDED_ALIGNMENT - 1))
            fatalcroak("Misalignment of sbrk()\n");
        else
 #  endif
 #ifndef I286   /* Again, this should always be ok on an 80286 */
-       if ((UV)PTR_CAST ovp & (MEM_ALIGNBYTES - 1)) {
+       if (PTR2UV(ovp) & (MEM_ALIGNBYTES - 1)) {
            DEBUG_m(PerlIO_printf(Perl_debug_log, 
                                  "fixing sbrk(): %d bytes off machine alignement\n",
-                                 (int)((UV)PTR_CAST ovp & (MEM_ALIGNBYTES - 1))));
-           ovp = (union overhead *)PTR_CAST (((UV)PTR_CAST ovp + MEM_ALIGNBYTES) &
+                                 (int)(PTR2UV(ovp) & (MEM_ALIGNBYTES - 1))));
+           ovp = INT2PTR(union overhead *,(PTR2UV(ovp) + MEM_ALIGNBYTES) &
                                     (MEM_ALIGNBYTES - 1));
            (*nblksp)--;
 # if defined(DEBUGGING_MSTATS)
index 437a219..9f6bc55 100644 (file)
--- a/objXSUB.h
+++ b/objXSUB.h
 #define PL_dowarn              (*Perl_Idowarn_ptr(aTHXo))
 #undef  PL_e_script
 #define PL_e_script            (*Perl_Ie_script_ptr(aTHXo))
-#undef  PL_efloatbuf
-#define PL_efloatbuf           (*Perl_Iefloatbuf_ptr(aTHXo))
-#undef  PL_efloatsize
-#define PL_efloatsize          (*Perl_Iefloatsize_ptr(aTHXo))
 #undef  PL_egid
 #define PL_egid                        (*Perl_Iegid_ptr(aTHXo))
 #undef  PL_endav
 #define PL_dirty               (*Perl_Tdirty_ptr(aTHXo))
 #undef  PL_dumpindent
 #define PL_dumpindent          (*Perl_Tdumpindent_ptr(aTHXo))
+#undef  PL_efloatbuf
+#define PL_efloatbuf           (*Perl_Tefloatbuf_ptr(aTHXo))
+#undef  PL_efloatsize
+#define PL_efloatsize          (*Perl_Tefloatsize_ptr(aTHXo))
 #undef  PL_extralen
 #define PL_extralen            (*Perl_Textralen_ptr(aTHXo))
 #undef  PL_firstgv
 #define Perl_sv_2pv            pPerl->Perl_sv_2pv
 #undef  sv_2pv
 #define sv_2pv                 Perl_sv_2pv
+#undef  Perl_sv_2pvutf8
+#define Perl_sv_2pvutf8                pPerl->Perl_sv_2pvutf8
+#undef  sv_2pvutf8
+#define sv_2pvutf8             Perl_sv_2pvutf8
+#undef  Perl_sv_2pvbyte
+#define Perl_sv_2pvbyte                pPerl->Perl_sv_2pvbyte
+#undef  sv_2pvbyte
+#define sv_2pvbyte             Perl_sv_2pvbyte
 #undef  Perl_sv_2uv
 #define Perl_sv_2uv            pPerl->Perl_sv_2uv
 #undef  sv_2uv
 #define Perl_sv_pvn            pPerl->Perl_sv_pvn
 #undef  sv_pvn
 #define sv_pvn                 Perl_sv_pvn
+#undef  Perl_sv_pvutf8n
+#define Perl_sv_pvutf8n                pPerl->Perl_sv_pvutf8n
+#undef  sv_pvutf8n
+#define sv_pvutf8n             Perl_sv_pvutf8n
+#undef  Perl_sv_pvbyten
+#define Perl_sv_pvbyten                pPerl->Perl_sv_pvbyten
+#undef  sv_pvbyten
+#define sv_pvbyten             Perl_sv_pvbyten
 #undef  Perl_sv_true
 #define Perl_sv_true           pPerl->Perl_sv_true
 #undef  sv_true
 #define Perl_sv_pvn_force      pPerl->Perl_sv_pvn_force
 #undef  sv_pvn_force
 #define sv_pvn_force           Perl_sv_pvn_force
+#undef  Perl_sv_pvutf8n_force
+#define Perl_sv_pvutf8n_force  pPerl->Perl_sv_pvutf8n_force
+#undef  sv_pvutf8n_force
+#define sv_pvutf8n_force       Perl_sv_pvutf8n_force
+#undef  Perl_sv_pvbyten_force
+#define Perl_sv_pvbyten_force  pPerl->Perl_sv_pvbyten_force
+#undef  sv_pvbyten_force
+#define sv_pvbyten_force       Perl_sv_pvbyten_force
 #undef  Perl_sv_reftype
 #define Perl_sv_reftype                pPerl->Perl_sv_reftype
 #undef  sv_reftype
 #define Perl_sv_2pv_nolen      pPerl->Perl_sv_2pv_nolen
 #undef  sv_2pv_nolen
 #define sv_2pv_nolen           Perl_sv_2pv_nolen
+#undef  Perl_sv_2pvutf8_nolen
+#define Perl_sv_2pvutf8_nolen  pPerl->Perl_sv_2pvutf8_nolen
+#undef  sv_2pvutf8_nolen
+#define sv_2pvutf8_nolen       Perl_sv_2pvutf8_nolen
+#undef  Perl_sv_2pvbyte_nolen
+#define Perl_sv_2pvbyte_nolen  pPerl->Perl_sv_2pvbyte_nolen
+#undef  sv_2pvbyte_nolen
+#define sv_2pvbyte_nolen       Perl_sv_2pvbyte_nolen
 #undef  Perl_sv_pv
 #define Perl_sv_pv             pPerl->Perl_sv_pv
 #undef  sv_pv
 #define sv_pv                  Perl_sv_pv
+#undef  Perl_sv_pvutf8
+#define Perl_sv_pvutf8         pPerl->Perl_sv_pvutf8
+#undef  sv_pvutf8
+#define sv_pvutf8              Perl_sv_pvutf8
+#undef  Perl_sv_pvbyte
+#define Perl_sv_pvbyte         pPerl->Perl_sv_pvbyte
+#undef  sv_pvbyte
+#define sv_pvbyte              Perl_sv_pvbyte
 #undef  Perl_sv_force_normal
 #define Perl_sv_force_normal   pPerl->Perl_sv_force_normal
 #undef  sv_force_normal
index 9527638..b4d6537 100644 (file)
--- a/opcode.h
+++ b/opcode.h
@@ -385,7 +385,7 @@ EXT char *PL_op_desc[] = {
        "private variable",
        "private array",
        "private hash",
-       "private something",
+       "private value",
        "push regexp",
        "ref-to-glob cast",
        "scalar deref",
@@ -397,80 +397,80 @@ EXT char *PL_op_desc[] = {
        "single ref constructor",
        "reference-type operator",
        "bless",
-       "backticks",
+       "backticks (``, qx)",
        "glob",
        "<HANDLE>",
        "append I/O operator",
-       "regexp comp once",
-       "regexp reset interpolation flag",
+       "regexp internal guard",
+       "regexp internal reset",
        "regexp compilation",
-       "pattern match",
-       "pattern quote",
-       "substitution",
-       "substitution cont",
-       "character translation",
+       "pattern match (m//)",
+       "pattern quote (qr//)",
+       "substitution (s///)",
+       "substitution iterator",
+       "transliteration (tr///)",
        "scalar assignment",
        "list assignment",
        "chop",
        "scalar chop",
-       "safe chop",
-       "scalar safe chop",
+       "chomp",
+       "scalar chomp",
        "defined operator",
        "undef operator",
        "study",
        "match position",
-       "preincrement",
-       "integer preincrement",
-       "predecrement",
-       "integer predecrement",
-       "postincrement",
-       "integer postincrement",
-       "postdecrement",
-       "integer postdecrement",
-       "exponentiation",
-       "multiplication",
-       "integer multiplication",
-       "division",
-       "integer division",
-       "modulus",
-       "integer modulus",
-       "repeat",
-       "addition",
-       "integer addition",
-       "subtraction",
-       "integer subtraction",
-       "concatenation",
+       "preincrement (++)",
+       "integer preincrement (++)",
+       "predecrement (--)",
+       "integer predecrement (--)",
+       "postincrement (++)",
+       "integer postincrement (++)",
+       "postdecrement (--)",
+       "integer postdecrement (--)",
+       "exponentiation (**)",
+       "multiplication (*)",
+       "integer multiplication (*)",
+       "division (/)",
+       "integer division (/)",
+       "modulus (%)",
+       "integer modulus (%)",
+       "repeat (x)",
+       "addition (+)",
+       "integer addition (+)",
+       "subtraction (-)",
+       "integer subtraction (-)",
+       "concatenation (.)",
        "string",
-       "left bitshift",
-       "right bitshift",
-       "numeric lt",
-       "integer lt",
-       "numeric gt",
-       "integer gt",
-       "numeric le",
-       "integer le",
-       "numeric ge",
-       "integer ge",
-       "numeric eq",
-       "integer eq",
-       "numeric ne",
-       "integer ne",
-       "spaceship operator",
-       "integer spaceship",
+       "left bitshift (<<)",
+       "right bitshift (>>)",
+       "numeric lt (<)",
+       "integer lt (<)",
+       "numeric gt (>)",
+       "integer gt (>)",
+       "numeric le (<=)",
+       "integer le (<=)",
+       "numeric ge (>=)",
+       "integer ge (>=)",
+       "numeric eq (==)",
+       "integer eq (==)",
+       "numeric ne (!=)",
+       "integer ne (!=)",
+       "numeric comparison (<=>)",
+       "integer comparison (<=>)",
        "string lt",
        "string gt",
        "string le",
        "string ge",
        "string eq",
        "string ne",
-       "string comparison",
-       "bitwise and",
-       "bitwise xor",
-       "bitwise or",
-       "negate",
-       "integer negate",
+       "string comparison (cmp)",
+       "bitwise and (&)",
+       "bitwise xor (^)",
+       "bitwise or (|)",
+       "negation (-)",
+       "integer negation (-)",
        "not",
-       "1's complement",
+       "1's complement (~)",
        "atan2",
        "sin",
        "cos",
@@ -493,22 +493,22 @@ EXT char *PL_op_desc[] = {
        "ord",
        "chr",
        "crypt",
-       "upper case first",
-       "lower case first",
-       "upper case",
-       "lower case",
-       "quote metachars",
-       "array deref",
-       "known array element",
+       "ucfirst",
+       "lcfirst",
+       "uc",
+       "lc",
+       "quotemeta",
+       "array dereference",
+       "constant array element",
        "array element",
        "array slice",
        "each",
        "values",
        "keys",
        "delete",
-       "exists operator",
-       "hash deref",
-       "hash elem",
+       "exists",
+       "hash dereference",
+       "hash element",
        "hash slice",
        "unpack",
        "pack",
@@ -516,8 +516,8 @@ EXT char *PL_op_desc[] = {
        "join",
        "list",
        "list slice",
-       "anonymous list",
-       "anonymous hash",
+       "anonymous list ([])",
+       "anonymous hash ({})",
        "splice",
        "push",
        "pop",
@@ -532,12 +532,12 @@ EXT char *PL_op_desc[] = {
        "flipflop",
        "range (or flip)",
        "range (or flop)",
-       "logical and",
-       "logical or",
+       "logical and (&&)",
+       "logical or (||)",
        "logical xor",
        "conditional expression",
-       "logical and assignment",
-       "logical or assignment",
+       "logical and assignment (&&=)",
+       "logical or assignment (||=)",
        "method lookup",
        "subroutine entry",
        "subroutine exit",
@@ -545,7 +545,7 @@ EXT char *PL_op_desc[] = {
        "caller",
        "warn",
        "die",
-       "reset",
+       "symbol reset",
        "line sequence",
        "next statement",
        "debug next statement",
@@ -684,10 +684,10 @@ EXT char *PL_op_desc[] = {
        "semop",
        "require",
        "do 'file'",
-       "eval string",
-       "eval exit",
-       "eval block",
-       "eval block exit",
+       "eval 'string'",
+       "eval 'string' exit",
+       "eval {block}",
+       "eval {block} exit",
        "gethostbyname",
        "gethostbyaddr",
        "gethostent",
@@ -721,7 +721,7 @@ EXT char *PL_op_desc[] = {
        "getlogin",
        "syscall",
        "lock",
-       "per-thread variable",
+       "per-thread value",
        "set statement info",
        "method with known name",
 };
index 8eadbe7..9e96cd1 100755 (executable)
--- a/opcode.pl
+++ b/opcode.pl
@@ -88,7 +88,12 @@ EXT char *PL_op_desc[] = {
 END
 
 for (@ops) {
-    print qq(\t"$desc{$_}",\n);
+    my($safe_desc) = $desc{$_};
+
+    # Have to escape double quotes and escape characters.    
+    $safe_desc =~ s/(^|[^\\])([\\"])/$1\\$2/g;
+
+    print qq(\t"$safe_desc",\n);
 }
 
 print <<END;
@@ -333,7 +338,7 @@ gelem               glob elem               ck_null         d2      S S
 padsv          private variable        ck_null         ds0
 padav          private array           ck_null         d0
 padhv          private hash            ck_null         d0
-padany         private something       ck_null         d0
+padany         private value           ck_null         d0
 
 pushre         push regexp             ck_null         d/
 
@@ -352,7 +357,7 @@ bless               bless                   ck_fun          s@      S S?
 
 # Pushy I/O.
 
-backtick       backticks               ck_null         t%      
+backtick       backticks (``, qx)      ck_null         t%      
 # glob defaults its first arg to $_
 glob           glob                    ck_glob         t@      S? S?
 readline       <HANDLE>                ck_null         t%      
@@ -360,14 +365,14 @@ rcatline  append I/O operator     ck_null         t%
 
 # Bindable operators.
 
-regcmaybe      regexp comp once        ck_fun          s1      S
-regcreset      regexp reset interpolation flag ck_fun          s1      S
+regcmaybe      regexp internal guard   ck_fun          s1      S
+regcreset      regexp internal reset   ck_fun          s1      S
 regcomp                regexp compilation      ck_null         s|      S
-match          pattern match           ck_match        d/
-qr             pattern quote           ck_match        s/
-subst          substitution            ck_null         dis/    S
-substcont      substitution cont       ck_null         dis|    
-trans          character translation   ck_null         is"     S
+match          pattern match (m//)     ck_match        d/
+qr             pattern quote (qr//)    ck_match        s/
+subst          substitution (s///)     ck_null         dis/    S
+substcont      substitution iterator   ck_null         dis|    
+trans          transliteration (tr///) ck_null         is"     S
 
 # Lvalue operators.
 # sassign is special-cased for op class
@@ -377,58 +382,58 @@ aassign           list assignment         ck_null         t2      L L
 
 chop           chop                    ck_spair        mTs%    L
 schop          scalar chop             ck_null         sTu%    S?
-chomp          safe chop               ck_spair        mTs%    L
-schomp         scalar safe chop        ck_null         sTu%    S?
+chomp          chomp                   ck_spair        mTs%    L
+schomp         scalar chomp            ck_null         sTu%    S?
 defined                defined operator        ck_defined      isu%    S?
 undef          undef operator          ck_lfun         s%      S?
 study          study                   ck_fun          su%     S?
 pos            match position          ck_lfun         stu%    S?
 
-preinc         preincrement            ck_lfun         dIs1    S
-i_preinc       integer preincrement    ck_lfun         dis1    S
-predec         predecrement            ck_lfun         dIs1    S
-i_predec       integer predecrement    ck_lfun         dis1    S
-postinc                postincrement           ck_lfun         dIsT1   S
-i_postinc      integer postincrement   ck_lfun         disT1   S
-postdec                postdecrement           ck_lfun         dIsT1   S
-i_postdec      integer postdecrement   ck_lfun         disT1   S
+preinc         preincrement (++)               ck_lfun         dIs1    S
+i_preinc       integer preincrement (++)       ck_lfun         dis1    S
+predec         predecrement (--)               ck_lfun         dIs1    S
+i_predec       integer predecrement (--)       ck_lfun         dis1    S
+postinc                postincrement (++)              ck_lfun         dIsT1   S
+i_postinc      integer postincrement (++)      ck_lfun         disT1   S
+postdec                postdecrement (--)              ck_lfun         dIsT1   S
+i_postdec      integer postdecrement (--)      ck_lfun         disT1   S
 
 # Ordinary operators.
 
-pow            exponentiation          ck_null         fsT2    S S
-
-multiply       multiplication          ck_null         IfsT2   S S
-i_multiply     integer multiplication  ck_null         ifsT2   S S
-divide         division                ck_null         IfsT2   S S
-i_divide       integer division        ck_null         ifsT2   S S
-modulo         modulus                 ck_null         IifsT2  S S
-i_modulo       integer modulus         ck_null         ifsT2   S S
-repeat         repeat                  ck_repeat       mt2     L S
-
-add            addition                ck_null         IfsT2   S S
-i_add          integer addition        ck_null         ifsT2   S S
-subtract       subtraction             ck_null         IfsT2   S S
-i_subtract     integer subtraction     ck_null         ifsT2   S S
-concat         concatenation           ck_concat       fsT2    S S
+pow            exponentiation (**)     ck_null         fsT2    S S
+
+multiply       multiplication (*)      ck_null         IfsT2   S S
+i_multiply     integer multiplication (*)      ck_null         ifsT2   S S
+divide         division (/)            ck_null         IfsT2   S S
+i_divide       integer division (/)    ck_null         ifsT2   S S
+modulo         modulus (%)             ck_null         IifsT2  S S
+i_modulo       integer modulus (%)     ck_null         ifsT2   S S
+repeat         repeat (x)              ck_repeat       mt2     L S
+
+add            addition (+)            ck_null         IfsT2   S S
+i_add          integer addition (+)    ck_null         ifsT2   S S
+subtract       subtraction (-)         ck_null         IfsT2   S S
+i_subtract     integer subtraction (-) ck_null         ifsT2   S S
+concat         concatenation (.)       ck_concat       fsT2    S S
 stringify      string                  ck_fun          fsT@    S
 
-left_shift     left bitshift           ck_bitop        fsT2    S S
-right_shift    right bitshift          ck_bitop        fsT2    S S
-
-lt             numeric lt              ck_null         Iifs2   S S
-i_lt           integer lt              ck_null         ifs2    S S
-gt             numeric gt              ck_null         Iifs2   S S
-i_gt           integer gt              ck_null         ifs2    S S
-le             numeric le              ck_null         Iifs2   S S
-i_le           integer le              ck_null         ifs2    S S
-ge             numeric ge              ck_null         Iifs2   S S
-i_ge           integer ge              ck_null         ifs2    S S
-eq             numeric eq              ck_null         Iifs2   S S
-i_eq           integer eq              ck_null         ifs2    S S
-ne             numeric ne              ck_null         Iifs2   S S
-i_ne           integer ne              ck_null         ifs2    S S
-ncmp           spaceship operator      ck_null         Iifst2  S S
-i_ncmp         integer spaceship       ck_null         ifst2   S S
+left_shift     left bitshift (<<)      ck_bitop        fsT2    S S
+right_shift    right bitshift (>>)     ck_bitop        fsT2    S S
+
+lt             numeric lt (<)          ck_null         Iifs2   S S
+i_lt           integer lt (<)          ck_null         ifs2    S S
+gt             numeric gt (>)          ck_null         Iifs2   S S
+i_gt           integer gt (>)          ck_null         ifs2    S S
+le             numeric le (<=)         ck_null         Iifs2   S S
+i_le           integer le (<=)         ck_null         ifs2    S S
+ge             numeric ge (>=)         ck_null         Iifs2   S S
+i_ge           integer ge (>=)         ck_null         ifs2    S S
+eq             numeric eq (==)         ck_null         Iifs2   S S
+i_eq           integer eq (==)         ck_null         ifs2    S S
+ne             numeric ne (!=)         ck_null         Iifs2   S S
+i_ne           integer ne (!=)         ck_null         ifs2    S S
+ncmp           numeric comparison (<=>)        ck_null         Iifst2  S S
+i_ncmp         integer comparison (<=>)        ck_null         ifst2   S S
 
 slt            string lt               ck_scmp         ifs2    S S
 sgt            string gt               ck_scmp         ifs2    S S
@@ -436,16 +441,16 @@ sle               string le               ck_scmp         ifs2    S S
 sge            string ge               ck_scmp         ifs2    S S
 seq            string eq               ck_null         ifs2    S S
 sne            string ne               ck_null         ifs2    S S
-scmp           string comparison       ck_scmp         ifst2   S S
+scmp           string comparison (cmp) ck_scmp         ifst2   S S
 
-bit_and                bitwise and             ck_bitop        fsT2    S S
-bit_xor                bitwise xor             ck_bitop        fsT2    S S
-bit_or         bitwise or              ck_bitop        fsT2    S S
+bit_and                bitwise and (&)         ck_bitop        fsT2    S S
+bit_xor                bitwise xor (^)         ck_bitop        fsT2    S S
+bit_or         bitwise or (|)          ck_bitop        fsT2    S S
 
-negate         negate                  ck_null         IfsT1   S
-i_negate       integer negate          ck_null         ifsT1   S
+negate         negation (-)            ck_null         IfsT1   S
+i_negate       integer negation (-)    ck_null         ifsT1   S
 not            not                     ck_null         ifs1    S
-complement     1's complement          ck_bitop        fsT1    S
+complement     1's complement (~)      ck_bitop        fsT1    S
 
 # High falutin' math.
 
@@ -479,16 +484,16 @@ formline  formline                ck_fun          ms@     S L
 ord            ord                     ck_fun          ifsTu%  S?
 chr            chr                     ck_fun          fsTu%   S?
 crypt          crypt                   ck_fun          fsT@    S S
-ucfirst                upper case first        ck_fun_locale   fstu%   S?
-lcfirst                lower case first        ck_fun_locale   fstu%   S?
-uc             upper case              ck_fun_locale   fstu%   S?
-lc             lower case              ck_fun_locale   fstu%   S?
-quotemeta      quote metachars         ck_fun          fsTu%   S?
+ucfirst                ucfirst                 ck_fun_locale   fstu%   S?
+lcfirst                lcfirst                 ck_fun_locale   fstu%   S?
+uc             uc                      ck_fun_locale   fstu%   S?
+lc             lc                      ck_fun_locale   fstu%   S?
+quotemeta      quotemeta               ck_fun          fsTu%   S?
 
 # Arrays.
 
-rv2av          array deref             ck_rvconst      dt1     
-aelemfast      known array element     ck_null         s*      A S
+rv2av          array dereference       ck_rvconst      dt1     
+aelemfast      constant array element  ck_null         s*      A S
 aelem          array element           ck_null         s2      A S
 aslice         array slice             ck_null         m@      A L
 
@@ -498,9 +503,9 @@ each                each                    ck_fun          %       H
 values         values                  ck_fun          t%      H
 keys           keys                    ck_fun          t%      H
 delete         delete                  ck_delete       %       S
-exists         exists operator         ck_exists       is%     S
-rv2hv          hash deref              ck_rvconst      dt1     
-helem          hash elem               ck_null         s2@     H S
+exists         exists                  ck_exists       is%     S
+rv2hv          hash dereference        ck_rvconst      dt1     
+helem          hash element            ck_null         s2@     H S
 hslice         hash slice              ck_null         m@      H L
 
 # Explosives and implosives.
@@ -514,8 +519,8 @@ join                join                    ck_join         msT@    S L
 
 list           list                    ck_null         m@      L
 lslice         list slice              ck_null         2       H L L
-anonlist       anonymous list          ck_fun          ms@     L
-anonhash       anonymous hash          ck_fun          ms@     L
+anonlist       anonymous list ([])     ck_fun          ms@     L
+anonhash       anonymous hash ({})     ck_fun          ms@     L
 
 splice         splice                  ck_fun          m@      A S? S? L
 push           push                    ck_fun          imsT@   A L
@@ -539,12 +544,12 @@ flop              range (or flop)         ck_null         1
 
 # Control.
 
-and            logical and             ck_null         |       
-or             logical or              ck_null         |       
-xor            logical xor             ck_null         fs2     S S     
-cond_expr      conditional expression  ck_null         d|      
-andassign      logical and assignment  ck_null         s|      
-orassign       logical or assignment   ck_null         s|      
+and            logical and (&&)                ck_null         |       
+or             logical or (||)                 ck_null         |       
+xor            logical xor                     ck_null         fs2     S S     
+cond_expr      conditional expression          ck_null         d|      
+andassign      logical and assignment (&&=)    ck_null         s|      
+orassign       logical or assignment (||=)     ck_null         s|      
 
 method         method lookup           ck_method       d1
 entersub       subroutine entry        ck_subr         dmt1    L
@@ -553,7 +558,7 @@ leavesublv  lvalue subroutine exit  ck_null         1
 caller         caller                  ck_fun          t%      S?
 warn           warn                    ck_fun          imst@   L
 die            die                     ck_fun          dimst@  L
-reset          reset                   ck_fun          is%     S?
+reset          symbol reset            ck_fun          is%     S?
 
 lineseq                line sequence           ck_null         @       
 nextstate      next statement          ck_null         s;      
@@ -575,8 +580,8 @@ goto                goto                    ck_null         ds}
 exit           exit                    ck_fun          ds%     S?
 # continued below
 
-#nswitch               numeric switch          ck_null         d       
-#cswitch               character switch        ck_null         d       
+#nswitch       numeric switch          ck_null         d       
+#cswitch       character switch        ck_null         d       
 
 # I/O.
 
@@ -743,11 +748,11 @@ semop             semop                   ck_fun          imst@   S S
 
 require                require                 ck_require      du%     S?
 dofile         do 'file'               ck_fun          d1      S
-entereval      eval string             ck_eval         d%      S
-leaveeval      eval exit               ck_null         1       S
+entereval      eval 'string'           ck_eval         d%      S
+leaveeval      eval 'string' exit      ck_null         1       S
 #evalonce      eval constant string    ck_null         d1      S
-entertry       eval block              ck_null         |       
-leavetry       eval block exit         ck_null         @       
+entertry       eval {block}            ck_null         |       
+leavetry       eval {block} exit       ck_null         @       
 
 # Get system info.
 
@@ -789,7 +794,7 @@ syscall             syscall                 ck_fun          imst@   S L
 
 # For multi-threading
 lock           lock                    ck_rfun         s%      S
-threadsv       per-thread variable     ck_null         ds0
+threadsv       per-thread value        ck_null         ds0
 
 # Control (contd.)
 setstate       set statement info      ck_null         s;
diff --git a/perl.c b/perl.c
index ed88bc3..de91ed4 100644 (file)
--- a/perl.c
+++ b/perl.c
@@ -409,6 +409,11 @@ perl_destruct(pTHXx)
     Safefree(PL_screamnext);
     PL_screamnext  = 0;
 
+    /* float buffer */
+    Safefree(PL_efloatbuf);
+    PL_efloatbuf = Nullch;
+    PL_efloatsize = 0;
+
     /* startup and shutdown function lists */
     SvREFCNT_dec(PL_beginav);
     SvREFCNT_dec(PL_endav);
diff --git a/perl.h b/perl.h
index 94af360..1375770 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -389,7 +389,7 @@ register struct op *Perl_op asm(stringify(OP_IN_REGISTER));
 /* HP-UX 10.X CMA (Common Multithreaded Architecure) insists that
    pthread.h must be included before all other header files.
 */
-#if defined(USE_THREADS) && defined(PTHREAD_H_FIRST)
+#if defined(USE_THREADS) && defined(PTHREAD_H_FIRST) && defined(I_PTHREAD)
 #  include <pthread.h>
 #endif
 
@@ -1046,17 +1046,31 @@ Free_t   Perl_mfree (Malloc_t where);
 #define IV_DIG (BIT_DIGITS(IVSIZE * 8))
 #define UV_DIG (BIT_DIGITS(UVSIZE * 8))
 
-#if (IVSIZE > PTRSIZE) || (UVSIZE > PTRSIZE)
+/*   
+ *  The macros INT2PTR and NUM2PTR are (despite their names)
+ *  bi-directional: they will convert int/float to or from pointers.
+ *  However the conversion to int/float are named explicitly:
+ *  PTR2IV, PTR2UV, PTR2NV.
+ *
+ *  For int conversions we do not need two casts if pointers are
+ *  the same size as IV and UV.   Otherwise we need an explicit
+ *  cast (PTRV) to avoid compiler warnings.
+ */
+#if (IVSIZE == PTRSIZE) && (UVSIZE == PTRSIZE)
+#  define PTRV                 UV
+#  define INT2PTR(any,d)       (any)(d)
+#else
 #  if PTRSIZE == LONGSIZE 
-#    define PTRV       unsigned long
+#    define PTRV               unsigned long
 #  else
-#    define PTRV       unsigned
+#    define PTRV               unsigned
 #  endif
-#  define PTR_CAST     (PTRV)
-#else
-#  define PTRV         UV
-#  define PTR_CAST 
+#  define INT2PTR(any,d)       (any)(PTRV)(d)
 #endif
+#define NUM2PTR(any,d) (any)(PTRV)(d)
+#define PTR2IV(p)      INT2PTR(IV,p)
+#define PTR2UV(p)      INT2PTR(UV,p)
+#define PTR2NV(p)      NUM2PTR(NV,p)
   
 #ifdef USE_LONG_DOUBLE
 #  if defined(HAS_LONG_DOUBLE) && (LONG_DOUBLESIZE > DOUBLESIZE)
@@ -1602,7 +1616,9 @@ typedef mutex_t           perl_mutex;
 typedef condition_t    perl_cond;
 typedef void *         perl_key;
 #        else /* Posix threads */
-#          include <pthread.h>
+#          ifdef I_PTHREAD
+#            include <pthread.h>
+#          endif
 typedef pthread_t      perl_os_thread;
 typedef pthread_mutex_t        perl_mutex;
 typedef pthread_cond_t perl_cond;
@@ -2517,7 +2533,7 @@ enum {            /* pass one of these to get_vtbl */
 #define HINT_STRICT_REFS       0x00000002
 /* #define HINT_notused4       0x00000004 */
 #define HINT_UTF8              0x00000008
-/* #define HINT_notused10      0x00000010 */
+#define HINT_BYTE              0x00000010
                                /* Note: 20,40,80 used for NATIVE_HINTS */
 
 #define HINT_BLOCK_SCOPE       0x00000100
index f04706c..7013fd4 100644 (file)
--- a/perlapi.c
+++ b/perlapi.c
@@ -3648,6 +3648,20 @@ Perl_sv_2pv(pTHXo_ SV* sv, STRLEN* lp)
     return ((CPerlObj*)pPerl)->Perl_sv_2pv(sv, lp);
 }
 
+#undef  Perl_sv_2pvutf8
+char*
+Perl_sv_2pvutf8(pTHXo_ SV* sv, STRLEN* lp)
+{
+    return ((CPerlObj*)pPerl)->Perl_sv_2pvutf8(sv, lp);
+}
+
+#undef  Perl_sv_2pvbyte
+char*
+Perl_sv_2pvbyte(pTHXo_ SV* sv, STRLEN* lp)
+{
+    return ((CPerlObj*)pPerl)->Perl_sv_2pvbyte(sv, lp);
+}
+
 #undef  Perl_sv_2uv
 UV
 Perl_sv_2uv(pTHXo_ SV* sv)
@@ -3683,6 +3697,20 @@ Perl_sv_pvn(pTHXo_ SV *sv, STRLEN *len)
     return ((CPerlObj*)pPerl)->Perl_sv_pvn(sv, len);
 }
 
+#undef  Perl_sv_pvutf8n
+char*
+Perl_sv_pvutf8n(pTHXo_ SV *sv, STRLEN *len)
+{
+    return ((CPerlObj*)pPerl)->Perl_sv_pvutf8n(sv, len);
+}
+
+#undef  Perl_sv_pvbyten
+char*
+Perl_sv_pvbyten(pTHXo_ SV *sv, STRLEN *len)
+{
+    return ((CPerlObj*)pPerl)->Perl_sv_pvbyten(sv, len);
+}
+
 #undef  Perl_sv_true
 I32
 Perl_sv_true(pTHXo_ SV *sv)
@@ -3961,6 +3989,20 @@ Perl_sv_pvn_force(pTHXo_ SV* sv, STRLEN* lp)
     return ((CPerlObj*)pPerl)->Perl_sv_pvn_force(sv, lp);
 }
 
+#undef  Perl_sv_pvutf8n_force
+char*
+Perl_sv_pvutf8n_force(pTHXo_ SV* sv, STRLEN* lp)
+{
+    return ((CPerlObj*)pPerl)->Perl_sv_pvutf8n_force(sv, lp);
+}
+
+#undef  Perl_sv_pvbyten_force
+char*
+Perl_sv_pvbyten_force(pTHXo_ SV* sv, STRLEN* lp)
+{
+    return ((CPerlObj*)pPerl)->Perl_sv_pvbyten_force(sv, lp);
+}
+
 #undef  Perl_sv_reftype
 char*
 Perl_sv_reftype(pTHXo_ SV* sv, int ob)
@@ -4134,16 +4176,16 @@ Perl_sv_usepvn(pTHXo_ SV* sv, char* ptr, STRLEN len)
 
 #undef  Perl_sv_vcatpvfn
 void
-Perl_sv_vcatpvfn(pTHXo_ SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *used_locale)
+Perl_sv_vcatpvfn(pTHXo_ SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *maybe_tainted)
 {
-    ((CPerlObj*)pPerl)->Perl_sv_vcatpvfn(sv, pat, patlen, args, svargs, svmax, used_locale);
+    ((CPerlObj*)pPerl)->Perl_sv_vcatpvfn(sv, pat, patlen, args, svargs, svmax, maybe_tainted);
 }
 
 #undef  Perl_sv_vsetpvfn
 void
-Perl_sv_vsetpvfn(pTHXo_ SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *used_locale)
+Perl_sv_vsetpvfn(pTHXo_ SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *maybe_tainted)
 {
-    ((CPerlObj*)pPerl)->Perl_sv_vsetpvfn(sv, pat, patlen, args, svargs, svmax, used_locale);
+    ((CPerlObj*)pPerl)->Perl_sv_vsetpvfn(sv, pat, patlen, args, svargs, svmax, maybe_tainted);
 }
 
 #undef  Perl_swash_init
@@ -4745,6 +4787,20 @@ Perl_sv_2pv_nolen(pTHXo_ SV* sv)
     return ((CPerlObj*)pPerl)->Perl_sv_2pv_nolen(sv);
 }
 
+#undef  Perl_sv_2pvutf8_nolen
+char*
+Perl_sv_2pvutf8_nolen(pTHXo_ SV* sv)
+{
+    return ((CPerlObj*)pPerl)->Perl_sv_2pvutf8_nolen(sv);
+}
+
+#undef  Perl_sv_2pvbyte_nolen
+char*
+Perl_sv_2pvbyte_nolen(pTHXo_ SV* sv)
+{
+    return ((CPerlObj*)pPerl)->Perl_sv_2pvbyte_nolen(sv);
+}
+
 #undef  Perl_sv_pv
 char*
 Perl_sv_pv(pTHXo_ SV *sv)
@@ -4752,6 +4808,20 @@ Perl_sv_pv(pTHXo_ SV *sv)
     return ((CPerlObj*)pPerl)->Perl_sv_pv(sv);
 }
 
+#undef  Perl_sv_pvutf8
+char*
+Perl_sv_pvutf8(pTHXo_ SV *sv)
+{
+    return ((CPerlObj*)pPerl)->Perl_sv_pvutf8(sv);
+}
+
+#undef  Perl_sv_pvbyte
+char*
+Perl_sv_pvbyte(pTHXo_ SV *sv)
+{
+    return ((CPerlObj*)pPerl)->Perl_sv_pvbyte(sv);
+}
+
 #undef  Perl_sv_force_normal
 void
 Perl_sv_force_normal(pTHXo_ SV *sv)
index f4c660d..067c6d9 100644 (file)
@@ -327,15 +327,24 @@ The special literals __FILE__, __LINE__, and __PACKAGE__
 represent the current filename, line number, and package name at that
 point in your program.  They may be used only as separate tokens; they
 will not be interpolated into strings.  If there is no current package
-(due to an empty C<package;> directive), __PACKAGE__ is the undefined value.
-
-The tokens __END__ and __DATA__ may be used to indicate the logical
-end of the script before the actual end of file.  Any following
-text is ignored, but may be read via a DATA filehandle: main::DATA
-for __END__, or PACKNAME::DATA (where PACKNAME is the current
-package) for __DATA__.  The two control characters ^D and ^Z are
-synonyms for __END__ in the main program, __DATA__ in a separate
-module.  See L<SelfLoader> for more description of __DATA__, and
+(due to an empty C<package;> directive), __PACKAGE__ is the undefined
+value.
+
+The two control characters ^D and ^Z, and the tokens __END__ and __DATA__
+may be used to indicate the logical end of the script before the actual
+end of file.  Any following text is ignored.
+
+Text after __DATA__ but may be read via the filehandle C<PACKNAME::DATA>,
+where C<PACKNAME> is the package that was current when the __DATA__
+token was encountered.  The filehandle is left open pointing to the
+contents after __DATA__.  It is the program's responsibility to
+C<close DATA> when it is done reading from it.  For compatibility with
+older scripts written before __DATA__ was introduced, __END__ behaves
+like __DATA__ in the toplevel script (but not in files loaded with
+C<require> or C<do>) and leaves the remaining contents of the
+file accessible via C<main::DATA>.
+
+See L<SelfLoader> for more description of __DATA__, and
 an example of its use.  Note that you cannot read from the DATA
 filehandle in a BEGIN block: the BEGIN block is executed as soon
 as it is seen (during compilation), at which point the corresponding
index 94b4635..772a464 100644 (file)
@@ -150,15 +150,17 @@ use "quads" (64-integers) as follows:
 
 =over 4
 
-=item constants in the code 
+=item constants (decimal, hexadecimal, octal, binary) in the code 
 
 =item arguments to oct() and hex()
 
-=item arguments to print(), printf() and sprintf()
+=item arguments to print(), printf() and sprintf() (flag prefixes ll, L, q)
 
-=item pack() and unpack() "q" format
+=item printed as such
 
-=item in basic arithmetics
+=item pack() and unpack() "q" and "Q" formats
+
+=item in basic arithmetics: + - * / %
 
 =item vec() (but see the below note about bit arithmetics)
     
@@ -167,7 +169,9 @@ use "quads" (64-integers) as follows:
 Note that unless you have the case (a) you will have to configure
 and compile Perl using the -Duse64bits Configure flag.
 
-Unfortunately bit arithmetics (&, |, ^, ~, <<, >>) are not 64-bit clean.
+Unfortunately bit arithmetics (&, |, ^, ~, <<, >>) for numbers are not
+64-bit clean, they are explictly forced to be 32-bit.  Bit arithmetics
+for bit vectors (created by vec()) are not limited in their width.
 
 Last but not least: note that due to Perl's habit of always using
 floating point numbers the quads are still not true integers.
@@ -181,18 +185,25 @@ start losing precision (their lower digits).
 If you have filesystems that support "large files" (files larger than
 2 gigabytes), you may now also be able to create and access them from Perl.
 
-Note that in addition to requiring a proper file system to do this you
-may also need to adjust your per-process (or even your per-system)
-maximum filesize limits before running Perl scripts that try to handle
-large files, especially if you intend to write such files.
-
-Adjusting your file system/system limits is outside the scope of Perl.
-For process limits, you may try to increase the limits using your
-shell's limit/ulimit command before running Perl.  The BSD::Resource
-extension (not included with the standard Perl distribution) may also
-be of use.
+Note that in addition to requiring a proper file system to do large
+files you may also need to adjust your per-process (or your
+per-system, or per-process-group, or per-user-group) maximum filesize
+limits before running Perl scripts that try to handle large files,
+especially if you intend to write such files.
+
+Finally, in addition to your process/process group maximum filesize
+limits, you may have quota limits on your filesystems that stop you
+(your user id or your user group id) from using large files.
+
+Adjusting your process/user/group/file system/operating system limits
+is outside the scope of Perl core language.  For process limits, you
+may try increasing the limits using your shell's limits/limit/ulimit
+command before running Perl.  The BSD::Resource extension (not
+included with the standard Perl distribution) may also be of use, it
+offers the getrlimit/setrlimit interface that can be used to adjust
+process resource usage limits, including the maximum filesize limit.
  
-(Large file support is also related to 64-bit support, for obvious reasons)
+(Large file support is related to 64-bit support, for obvious reasons.)
 
 =head2 Better syntax checks on parenthesized unary operators
 
@@ -527,7 +538,9 @@ runtime error.
 
 The timelocal() and timegm() functions used to silently return bogus
 results when the date exceeded the machine's integer range.  They
-now consistently croak() if the date falls in an unsupported range.
+now consistently croak() if the date falls in an unsupported range--
+but on the other hand they now accept "out-of-limits" day-of-month
+to make "Julian date" conversions easier.
 
 =item Win32
 
@@ -704,6 +717,16 @@ elements of a subroutine attribute list.  If the previous attribute
 had a parenthesised parameter list, perhaps that list was terminated
 too soon.
 
+=item Possible Y2K bug: %s
+
+(W) You are concatenating the number 19 with another number, which
+could be a potential Year 2000 problem.
+
+=item Possible Y2K bug: %s
+
+(W) You are concatenating the number 19 with another number, which
+could be a potential Year 2000 problem.
+
 =item Unterminated attribute parameter in subroutine attribute list
 
 (F) The lexer saw an opening (left) parenthesis character while parsing a
@@ -750,6 +773,13 @@ because many scripts assume to find Perl in /usr/bin/perl.
 You can use "Configure -Dusesocks" which causes Perl to probe
 for the SOCKS proxy protocol library, http://www.socks.nec.com/
 
+=head2 -A flag
+
+You can "post-edit" the Configure variables using the Configure -A
+flag.  The editing happens immediately after the platform specific
+hints files have been processed but before the actual configuration
+process starts.  Run Configure -h to find out the full -A syntax.
+
 =head1 BUGS
 
 If you find what you think is a bug, you might check the headers of
index 1c07a31..607a410 100644 (file)
@@ -1240,6 +1240,10 @@ just use C<if (%hash) { # not empty }> for example.
 C<FOO> is too long for Perl to handle.  You have to be seriously
 twisted to write code that triggers this error.
 
+=item Did not produce a valid header
+
+See Server error.
+
 =item Did you mean &%s instead?
 
 (W) You probably referred to an imported subroutine &FOO as $FOO or some such.
@@ -1266,6 +1270,10 @@ to define the subroutine or package before the current location.  You
 can use an empty "sub foo;" or "package FOO;" to enter a "forward"
 declaration.
 
+=item Document contains no data
+
+See Server error.
+
 =item Don't know how to handle magic of type '%s'
 
 (P) The internal handling of magical variables has been cursed.
@@ -1742,6 +1750,10 @@ See L<perlsub/"Lvalue subroutines">.
 (F) An attempt was made to specify an entry in an overloading table that
 doesn't resolve to a valid subroutine.  See L<overload>.
 
+=item Method %s not permitted
+
+See Server error.
+
 =item Might be a runaway multi-line %s string starting on line %d
 
 (S) An advisory indicating that the previous error may have been caused
@@ -2348,6 +2360,11 @@ perspective, it's probably not what you intended.
 (F) Your C compiler uses POSIX getpgrp(), which takes no argument, unlike
 the BSD version, which takes a pid.
 
+=item Possible Y2K bug: %s
+
+(W) You are concatenating the number 19 with another number, which
+could be a potential Year 2000 problem.
+
 =item Possible attempt to put comments in qw() list
 
 (W) qw() lists contain items separated by whitespace; as with literal
@@ -2415,6 +2432,10 @@ and list operators.  (The old open was a little of both.)  You must
 put parentheses around the filehandle, or use the new "or" operator
 instead of "||".
 
+=item Premature end of script headers
+
+See Server error.
+
 =item print on closed filehandle %s
 
 (W) The filehandle you're printing on got itself closed sometime before now.
@@ -2608,7 +2629,12 @@ See L<perlre>.
 
 =item Server error
 
-Also known as "500 Server error".
+This is the error message generally seen in a browser window when trying
+to run a CGI program (including SSI) over the web. The actual error
+text varies widely from server to server. The most frequently-seen
+variants are "500 Server error", "Method (something) not permitted",
+"Document contains no data", "Premature end of script headers", and
+"Did not produce a valid header".
 
 B<This is a CGI error, not a Perl error>.
 
@@ -3310,6 +3336,12 @@ variables.
 of Perl.  Check the #! line, or manually feed your script into
 Perl yourself.
 
+=item Version number must be a constant number
+
+(P) The attempt to translate a C<use Module n.n LIST> statement into
+its equivalent C<BEGIN> block found an internal inconsistency with
+the version number.
+
 =item perl: warning: Setting locale failed.
 
 (S) The whole warning message will look something like:
index 0d47260..995a671 100644 (file)
@@ -4120,6 +4120,13 @@ If C<use locale> is in effect, the character used for the decimal
 point in formatted real numbers is affected by the LC_NUMERIC locale.
 See L<perllocale>.
 
+To cope with broken systems that allow the standard locales to be
+overridden by malicious users, the return value may be tainted
+if any of the floating point formats are used and the conversion
+yields something that doesn't look like a normal C-locale floating
+point number.  This happens regardless of whether C<use locale> is
+in effect or not.
+
 If Perl understands "quads" (64-bit integers) (this requires
 either that the platform natively supports quads or that Perl
 has been specifically compiled to support quads), the characters
index 93d4bd7..af12297 100644 (file)
@@ -3649,24 +3649,26 @@ Like C<sv_usepvn>, but also handles 'set' magic.
 
        void    sv_usepvn_mg (SV* sv, char* ptr, STRLEN len)
 
-=item sv_vcatpvfn(sv, pat, patlen, args, svargs, svmax, used_locale)
+=item sv_vcatpvfn
 
 Processes its arguments like C<vsprintf> and appends the formatted output
 to an SV.  Uses an array of SVs if the C style variable argument list is
-missing (NULL).  Indicates if locale information has been used for formatting.
+missing (NULL).  When running with taint checks enabled, indicates via
+C<maybe_tainted> if results are untrustworthy (often due to the use of
+locales).
 
        void    sv_catpvfn (SV* sv, const char* pat, STRLEN patlen,
                            va_list *args, SV **svargs, I32 svmax,
-                           bool *used_locale);
+                           bool *maybe_tainted);
 
-=item sv_vsetpvfn(sv, pat, patlen, args, svargs, svmax, used_locale)
+=item sv_vsetpvfn
 
 Works like C<vcatpvfn> but copies the text into the SV instead of
 appending it.
 
        void    sv_setpvfn (SV* sv, const char* pat, STRLEN patlen,
                            va_list *args, SV **svargs, I32 svmax,
-                           bool *used_locale);
+                           bool *maybe_tainted);
 
 =item SvUV
 
index 6a171d3..f39117e 100644 (file)
@@ -119,16 +119,16 @@ the strings?).
           5.000alpha4   1993-???-??
           5.000alpha5   1993-???-??
           5.000alpha6   1994-Mar-18
-          5.003alpha7   1994-Mar-25
+          5.000alpha7   1994-Mar-25
  Andy     5.000alpha8   1994-Apr-04
  Larry    5.000alpha9   1994-May-05     ext appears.
-          5.000alpha10  1994-???-??
-          5.000alpha11  1994-???-??
+          5.000alpha10  1994-Jun-11
+          5.000alpha11  1994-Jul-01
  Andy     5.000a11a     1994-Jul-07     To fit 14.
           5.000a11b     1994-Jul-14
           5.000a11c     1994-Jul-19
           5.000a11d     1994-Jul-22
- Larry    5.000alpha12  1994-???-??
+ Larry    5.000alpha12  1994-Aug-04
  Andy     5.000a12a     1994-Aug-08
           5.000a12b     1994-Aug-15
           5.000a12c     1994-Aug-22
@@ -137,8 +137,8 @@ the strings?).
           5.000a12f     1994-Aug-24
           5.000a12g     1994-Aug-24
           5.000a12h     1994-Aug-24
- Larry    5.000beta1    1994-???-??
- Andy     5.000b1a      1994-???-??
+ Larry    5.000beta1    1994-Aug-30
+ Andy     5.000b1a      1994-Sep-06
  Larry    5.000beta2    1994-Sep-14     Core slushified.
  Andy     5.000b2a      1994-Sep-14
           5.000b2b      1994-Sep-17
@@ -152,6 +152,7 @@ the strings?).
           5.000b3f      1994-Sep-30
           5.000b3g      1994-Oct-04
  Andy     5.000b3h      1994-Oct-07
+ Larry?   5.000gamma    1994-Oct-13?
 
  Larry   5.000          1994-Oct-17
 
@@ -167,8 +168,9 @@ the strings?).
           5.000j        1995-Feb-07
           5.000k        1995-Feb-11
           5.000l        1995-Feb-21
-          5.000m        1995-???-??
+          5.000m        1995-Feb-28
           5.000n        1995-Mar-07
+          5.000o        1995-Mar-13?
 
  Larry   5.001          1995-Mar-13
 
@@ -187,7 +189,7 @@ the strings?).
           5.001m        1995-Jul-02     Very stable.
           5.001n        1995-Oct-31     Very unstable.
           5.002beta1    1995-Nov-21
-          5.002b1a      1995-Nov-??
+          5.002b1a      1995-Dec-04
           5.002b1b      1995-Dec-04
           5.002b1c      1995-Dec-04
           5.002b1d      1995-Dec-04
@@ -549,7 +551,7 @@ Jarkko Hietaniemi <F<jhi@iki.fi>>.
 
 Thanks to the collective memory of the Perlfolk.  In addition to the
 Keepers of the Pumpkin also Alan Champion, Andreas König, John
-Macdonald, Matthias Neeracher, Michael Peppler, Randal Schwartz, and
-Paul D. Smith sent corrections and additions.
+Macdonald, Matthias Neeracher, Jeff Okamoto, Michael Peppler,
+Randal Schwartz, and Paul D. Smith sent corrections and additions.
 
 =cut
index 8dbae0d..32fc210 100644 (file)
@@ -313,6 +313,10 @@ produce a fatal error.
  
 The experimental features need bottomed out.
 
+  perldiag.pod
+    Need to add warning class information and notes on
+    how to use the class info with the warnings pragma.
+
   perl5db.pl
     The debugger saves and restores C<$^W> at runtime. I haven't checked
     whether the debugger will still work with the lexical warnings
index 680ecb9..0dd842d 100644 (file)
@@ -155,7 +155,7 @@ C<if> an C<else> goes with.  If you use C<unless> in place of C<if>,
 the sense of the test is reversed.
 
 The C<while> statement executes the block as long as the expression is
-true (does not evaluate to the null string (C<""> or C<0> or C<"0">).
+true (does not evaluate to the null string C<""> or C<0> or C<"0">).
 The LABEL is optional, and if present, consists of an identifier followed
 by a colon.  The LABEL identifies the loop for the loop control
 statements C<next>, C<last>, and C<redo>.
diff --git a/pp.c b/pp.c
index 6b71e8c..07bb33d 100644 (file)
--- a/pp.c
+++ b/pp.c
@@ -1778,9 +1778,9 @@ S_seed(pTHX)
 #  endif
 #endif
     u += SEED_C3 * (U32)getpid();
-    u += SEED_C4 * (U32)(UV)PTR_CAST PL_stack_sp;
+    u += SEED_C4 * (U32)PTR2UV(PL_stack_sp);
 #ifndef PLAN9           /* XXX Plan9 assembler chokes on this; fix needed  */
-    u += SEED_C5 * (U32)(UV)PTR_CAST &when;
+    u += SEED_C5 * (U32)PTR2UV(&when);
 #endif
     return u;
 }
index 7a65ec0..c9afbb6 100644 (file)
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -223,12 +223,12 @@ Perl_rxres_save(pTHX_ void **rsp, REGEXP *rx)
        *rsp = (void*)p;
     }
 
-    *p++ = (UV)PTR_CAST (RX_MATCH_COPIED(rx) ? rx->subbeg : Nullch);
+    *p++ = PTR2UV(RX_MATCH_COPIED(rx) ? rx->subbeg : Nullch);
     RX_MATCH_COPIED_off(rx);
 
     *p++ = rx->nparens;
 
-    *p++ = (UV)PTR_CAST rx->subbeg;
+    *p++ = PTR2UV(rx->subbeg);
     *p++ = (UV)rx->sublen;
     for (i = 0; i <= rx->nparens; ++i) {
        *p++ = (UV)rx->startp[i];
@@ -249,7 +249,7 @@ Perl_rxres_restore(pTHX_ void **rsp, REGEXP *rx)
 
     rx->nparens = *p++;
 
-    rx->subbeg = (char*)PTR_CAST (*p++);
+    rx->subbeg = INT2PTR(char*,*p++);
     rx->sublen = (I32)(*p++);
     for (i = 0; i <= rx->nparens; ++i) {
        rx->startp[i] = (I32)(*p++);
@@ -263,7 +263,7 @@ Perl_rxres_free(pTHX_ void **rsp)
     UV *p = (UV*)*rsp;
 
     if (p) {
-       Safefree((char*)PTR_CAST (*p));
+       Safefree(INT2PTR(char*,*p));
        Safefree(p);
        *rsp = Null(void*);
     }
@@ -2199,7 +2199,7 @@ PP(pp_goto)
                    CV *gotocv;
                    
                    if (PERLDB_SUB_NN) {
-                       SvIVX(sv) = (IV)PTR_CAST cv; /* Already upgraded, saved */
+                       SvIVX(sv) = PTR2IV(cv); /* Already upgraded, saved */
                    } else {
                        save_item(sv);
                        gv_efullname3(sv, CvGV(cv), Nullch);
index de0434e..389d510 100644 (file)
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -29,7 +29,6 @@
 #include <sys/file.h>
 #endif
 
-#define HOP(pos,off) (IN_UTF8 ? utf8_hop(pos, off) : (pos + off))
 
 /* Hot code. */
 
@@ -164,8 +163,21 @@ PP(pp_concat)
        s = SvPV_force(TARG, len);
     }
     s = SvPV(right,len);
-    if (SvOK(TARG))
+    if (SvOK(TARG)) {
+#if defined(PERL_Y2KWARN)
+       if ((SvIOK(right) || SvNOK(right)) && ckWARN(WARN_MISC)) {
+           STRLEN n;
+           char *s = SvPV(TARG,n);
+           if (n >= 2 && s[n-2] == '1' && s[n-1] == '9'
+               && (n == 2 || !isDIGIT(s[n-3])))
+           {
+               Perl_warner(aTHX_ WARN_MISC, "Possible Y2K bug: %s",
+                           "about to append an integer to '19'");
+           }
+       }
+#endif
        sv_catpvn(TARG,s,len);
+    }
     else
        sv_setpvn(TARG,s,len);  /* suppress warning */
     SETTARG;
@@ -2112,7 +2124,7 @@ S_get_db_sub(pTHX_ SV **svp, CV *cv)
        SvUPGRADE(dbsv, SVt_PVIV);
        SvIOK_on(dbsv);
        SAVEIV(SvIVX(dbsv));
-       SvIVX(dbsv) = (IV)PTR_CAST cv;  /* Do it the quickest way  */
+       SvIVX(dbsv) = PTR2IV(cv);       /* Do it the quickest way  */
     }
 
     if (CvXSUB(cv))
index 5271a86..2a0ec38 100644 (file)
--- a/pp_sys.c
+++ b/pp_sys.c
 /* Shadow password support for solaris - pdo@cs.umd.edu
  * Not just Solaris: at least HP-UX, IRIX, Linux.
  * the API is from SysV. --jhi */
+#ifdef __hpux__
+/* There is a MAXINT coming from <shadow.h> <- <hpsecurity.h> <- <values.h>
+ * and another MAXINT from "perl.h" <- <sys/param.h>. */ 
+#undef MAXINT
+#endif
 #include <shadow.h>
 #endif
 
@@ -1898,7 +1903,7 @@ PP(pp_ioctl)
     }
     else {
        retval = SvIV(argsv);
-       s = (char*)PTR_CAST retval;             /* ouch */
+       s = INT2PTR(char*,retval);              /* ouch */
     }
 
     TAINT_PROPER(optype == OP_IOCTL ? "ioctl" : "fcntl");
diff --git a/proto.h b/proto.h
index ddb3142..9ca65d9 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -560,11 +560,15 @@ VIRTUAL IV        Perl_sv_2iv(pTHX_ SV* sv);
 VIRTUAL SV*    Perl_sv_2mortal(pTHX_ SV* sv);
 VIRTUAL NV     Perl_sv_2nv(pTHX_ SV* sv);
 VIRTUAL char*  Perl_sv_2pv(pTHX_ SV* sv, STRLEN* lp);
+VIRTUAL char*  Perl_sv_2pvutf8(pTHX_ SV* sv, STRLEN* lp);
+VIRTUAL char*  Perl_sv_2pvbyte(pTHX_ SV* sv, STRLEN* lp);
 VIRTUAL UV     Perl_sv_2uv(pTHX_ SV* sv);
 VIRTUAL IV     Perl_sv_iv(pTHX_ SV* sv);
 VIRTUAL UV     Perl_sv_uv(pTHX_ SV* sv);
 VIRTUAL NV     Perl_sv_nv(pTHX_ SV* sv);
 VIRTUAL char*  Perl_sv_pvn(pTHX_ SV *sv, STRLEN *len);
+VIRTUAL char*  Perl_sv_pvutf8n(pTHX_ SV *sv, STRLEN *len);
+VIRTUAL char*  Perl_sv_pvbyten(pTHX_ SV *sv, STRLEN *len);
 VIRTUAL I32    Perl_sv_true(pTHX_ SV *sv);
 VIRTUAL void   Perl_sv_add_arena(pTHX_ char* ptr, U32 size, U32 flags);
 VIRTUAL int    Perl_sv_backoff(pTHX_ SV* sv);
@@ -606,6 +610,8 @@ VIRTUAL char*       Perl_sv_peek(pTHX_ SV* sv);
 VIRTUAL void   Perl_sv_pos_u2b(pTHX_ SV* sv, I32* offsetp, I32* lenp);
 VIRTUAL void   Perl_sv_pos_b2u(pTHX_ SV* sv, I32* offsetp);
 VIRTUAL char*  Perl_sv_pvn_force(pTHX_ SV* sv, STRLEN* lp);
+VIRTUAL char*  Perl_sv_pvutf8n_force(pTHX_ SV* sv, STRLEN* lp);
+VIRTUAL char*  Perl_sv_pvbyten_force(pTHX_ SV* sv, STRLEN* lp);
 VIRTUAL char*  Perl_sv_reftype(pTHX_ SV* sv, int ob);
 VIRTUAL void   Perl_sv_replace(pTHX_ SV* sv, SV* nsv);
 VIRTUAL void   Perl_sv_report_used(pTHX);
@@ -630,8 +636,8 @@ VIRTUAL void        Perl_sv_unref(pTHX_ SV* sv);
 VIRTUAL void   Perl_sv_untaint(pTHX_ SV* sv);
 VIRTUAL bool   Perl_sv_upgrade(pTHX_ SV* sv, U32 mt);
 VIRTUAL void   Perl_sv_usepvn(pTHX_ SV* sv, char* ptr, STRLEN len);
-VIRTUAL void   Perl_sv_vcatpvfn(pTHX_ SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *used_locale);
-VIRTUAL void   Perl_sv_vsetpvfn(pTHX_ SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *used_locale);
+VIRTUAL void   Perl_sv_vcatpvfn(pTHX_ SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *maybe_tainted);
+VIRTUAL void   Perl_sv_vsetpvfn(pTHX_ SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *maybe_tainted);
 VIRTUAL SV*    Perl_swash_init(pTHX_ char* pkg, char* name, SV* listsv, I32 minbits, I32 none);
 VIRTUAL UV     Perl_swash_fetch(pTHX_ SV *sv, U8 *ptr);
 VIRTUAL void   Perl_taint_env(pTHX);
@@ -724,7 +730,11 @@ VIRTUAL void*      Perl_default_protect(pTHX_ int *excpt, protect_body_t body, ...);
 VIRTUAL void*  Perl_vdefault_protect(pTHX_ int *excpt, protect_body_t body, va_list *args);
 VIRTUAL void   Perl_reginitcolors(pTHX);
 VIRTUAL char*  Perl_sv_2pv_nolen(pTHX_ SV* sv);
+VIRTUAL char*  Perl_sv_2pvutf8_nolen(pTHX_ SV* sv);
+VIRTUAL char*  Perl_sv_2pvbyte_nolen(pTHX_ SV* sv);
 VIRTUAL char*  Perl_sv_pv(pTHX_ SV *sv);
+VIRTUAL char*  Perl_sv_pvutf8(pTHX_ SV *sv);
+VIRTUAL char*  Perl_sv_pvbyte(pTHX_ SV *sv);
 VIRTUAL void   Perl_sv_force_normal(pTHX_ SV *sv);
 VIRTUAL void   Perl_tmps_grow(pTHX_ I32 n);
 VIRTUAL SV*    Perl_sv_rvweaken(pTHX_ SV *sv);
index 3fb1826..d55c5be 100644 (file)
--- a/regexec.c
+++ b/regexec.c
@@ -278,7 +278,16 @@ S_cache_re(pTHX_ regexp *prog)
 /* A failure to find a constant substring means that there is no need to make
    an expensive call to REx engine, thus we celebrate a failure.  Similarly,
    finding a substring too deep into the string means that less calls to
-   regtry() should be needed. */
+   regtry() should be needed.
+
+   REx compiler's optimizer found 4 possible hints:
+       a) Anchored substring;
+       b) Fixed substring;
+       c) Whether we are anchored (beginning-of-line or \G);
+       d) First node (of those at offset 0) which may distingush positions;
+   We use 'a', 'b', multiline-part of 'c', and try to find a position in the
+   string which does not contradict any of them.
+ */
 
 char *
 Perl_re_intuit_start(pTHX_ regexp *prog, SV *sv, char *strpos,
@@ -293,6 +302,9 @@ Perl_re_intuit_start(pTHX_ regexp *prog, SV *sv, char *strpos,
     I32 ml_anch;
     char *tmp;
     register char *other_last = Nullch;
+#ifdef DEBUGGING
+    char *i_strpos = strpos;
+#endif
 
     DEBUG_r( if (!PL_colorset) reginitcolors() );
     DEBUG_r(PerlIO_printf(Perl_debug_log,
@@ -420,7 +432,7 @@ Perl_re_intuit_start(pTHX_ regexp *prog, SV *sv, char *strpos,
        goto fail_finish;
 
     /* Finish the diagnostic message */
-    DEBUG_r(PerlIO_printf(Perl_debug_log, "%ld...\n", (long)(s - strpos)) );
+    DEBUG_r(PerlIO_printf(Perl_debug_log, "%ld...\n", (long)(s - i_strpos)) );
 
     /* Got a candidate.  Check MBOL anchoring, and the *other* substr.
        Start with the other substr.
@@ -431,11 +443,13 @@ Perl_re_intuit_start(pTHX_ regexp *prog, SV *sv, char *strpos,
      */
 
     if (prog->float_substr && prog->anchored_substr) {
-       /* Take into account the anchored substring. */
+       /* Take into account the "other" substring. */
        /* XXXX May be hopelessly wrong for UTF... */
        if (!other_last)
            other_last = strpos - 1;
        if (check == prog->float_substr) {
+         do_other_anchored:
+           {
                char *last = s - start_shift, *last1, *last2;
                char *s1 = s;
 
@@ -446,7 +460,7 @@ Perl_re_intuit_start(pTHX_ regexp *prog, SV *sv, char *strpos,
                        || (PL_bostr = strpos, /* Used in regcopmaybe() */
                            (t = reghopmaybe_c(s, -(prog->check_offset_max)))
                            && t > strpos)))
-                   ;
+                   /* EMPTY */;
                else
                    t = strpos;
                t += prog->anchored_offset;
@@ -478,7 +492,7 @@ Perl_re_intuit_start(pTHX_ regexp *prog, SV *sv, char *strpos,
                    }
                    DEBUG_r(PerlIO_printf(Perl_debug_log,
                        ", trying floating at offset %ld...\n",
-                       (long)(s1 + 1 - strpos)));
+                       (long)(s1 + 1 - i_strpos)));
                    PL_regeol = strend;                 /* Used in HOP() */
                    other_last = last1 + prog->anchored_offset;
                    s = HOPc(last, 1);
@@ -486,14 +500,15 @@ Perl_re_intuit_start(pTHX_ regexp *prog, SV *sv, char *strpos,
                }
                else {
                    DEBUG_r(PerlIO_printf(Perl_debug_log, " at offset %ld...\n",
-                         (long)(s - strpos)));
+                         (long)(s - i_strpos)));
                    t = s - prog->anchored_offset;
                    other_last = s - 1;
+                   s = s1;
                    if (t == strpos)
                        goto try_at_start;
-                   s = s1;
                    goto try_at_offset;
                }
+           }
        }
        else {          /* Take into account the floating substring. */
                char *last, *last1;
@@ -529,7 +544,7 @@ Perl_re_intuit_start(pTHX_ regexp *prog, SV *sv, char *strpos,
                    }
                    DEBUG_r(PerlIO_printf(Perl_debug_log,
                        ", trying anchored starting at offset %ld...\n",
-                       (long)(s1 + 1 - strpos)));
+                       (long)(s1 + 1 - i_strpos)));
                    other_last = last;
                    PL_regeol = strend;                 /* Used in HOP() */
                    s = HOPc(t, 1);
@@ -537,11 +552,11 @@ Perl_re_intuit_start(pTHX_ regexp *prog, SV *sv, char *strpos,
                }
                else {
                    DEBUG_r(PerlIO_printf(Perl_debug_log, " at offset %ld...\n",
-                         (long)(s - strpos)));
+                         (long)(s - i_strpos)));
                    other_last = s - 1;
+                   s = s1;
                    if (t == strpos)
                        goto try_at_start;
-                   s = s1;
                    goto try_at_offset;
                }
        }
@@ -559,18 +574,36 @@ Perl_re_intuit_start(pTHX_ regexp *prog, SV *sv, char *strpos,
           cannot start at strpos. */
       try_at_offset:
        if (ml_anch && t[-1] != '\n') {
-         find_anchor:          /* Eventually fbm_*() should handle this */
+           /* Eventually fbm_*() should handle this, but often
+              anchored_offset is not 0, so this check will not be wasted. */
+           /* XXXX In the code below we prefer to look for "^" even in
+              presence of anchored substrings.  And we search even
+              beyond the found float position.  These pessimizations
+              are historical artefacts only.  */
+         find_anchor:
            while (t < strend - prog->minlen) {
                if (*t == '\n') {
                    if (t < s - prog->check_offset_min) {
+                       if (prog->anchored_substr) {
+                           /* We definitely contradict the found anchored
+                              substr.  Due to the above check we do not
+                              contradict "check" substr.
+                              Thus we can arrive here only if check substr
+                              is float.  Redo checking for "other"=="fixed".
+                            */
+                           strpos = t + 1;                         
+                           DEBUG_r(PerlIO_printf(Perl_debug_log, "Found /%s^%s/m at offset %ld, rescanning for anchored from offset %ld...\n",
+                               PL_colors[0],PL_colors[1], (long)(strpos - i_strpos), (long)(strpos - i_strpos + prog->anchored_offset)));
+                           goto do_other_anchored;
+                       }
                        s = t + 1;
                        DEBUG_r(PerlIO_printf(Perl_debug_log, "Found /%s^%s/m at offset %ld...\n",
-                           PL_colors[0],PL_colors[1], (long)(s - strpos)));
+                           PL_colors[0],PL_colors[1], (long)(s - i_strpos)));
                        goto set_useful;
                    }
                    DEBUG_r(PerlIO_printf(Perl_debug_log, "Found /%s^%s/m, restarting at offset %ld...\n",
-                       PL_colors[0],PL_colors[1], (long)(t + 1 - strpos)));
-                   s = t + 1;
+                       PL_colors[0],PL_colors[1], (long)(t + 1 - i_strpos)));
+                   strpos = s = t + 1;
                    goto restart;
                }
                t++;
@@ -596,8 +629,12 @@ Perl_re_intuit_start(pTHX_ regexp *prog, SV *sv, char *strpos,
            t = strpos;
            goto find_anchor;
        }
+       DEBUG_r( if (ml_anch)
+           PerlIO_printf(Perl_debug_log, "Does not contradict /%s^%s/m...\n",
+                       PL_colors[0],PL_colors[1]);
+       );
       success_at_start:
-       if (!(prog->reganch & ROPT_NAUGHTY)
+       if (!(prog->reganch & ROPT_NAUGHTY)     /* XXXX If strpos moved? */
            && --BmUSEFUL(prog->check_substr) < 0
            && prog->check_substr == prog->float_substr) { /* boo */
            /* If flags & SOMETHING - do not do it many times on the same match */
@@ -612,7 +649,7 @@ Perl_re_intuit_start(pTHX_ regexp *prog, SV *sv, char *strpos,
     }
 
     DEBUG_r(PerlIO_printf(Perl_debug_log, "%sGuessed:%s match at offset %ld\n",
-                         PL_colors[4], PL_colors[5], (long)(s - strpos)) );
+                         PL_colors[4], PL_colors[5], (long)(s - i_strpos)) );
     return s;
 
   fail_finish:                         /* Substring not found */
@@ -642,7 +679,6 @@ Perl_regexec_flags(pTHX_ register regexp *prog, char *stringarg, register char *
     register I32 tmp;
     I32 minlen;                /* must match at least this many chars */
     I32 dontbother = 0;        /* how many characters not to try at end */
-    CURCUR cc;
     I32 start_shift = 0;               /* Offset of the start to find
                                         constant substr. */            /* CC */
     I32 end_shift = 0;                 /* Same for the end. */         /* CC */
@@ -650,9 +686,7 @@ Perl_regexec_flags(pTHX_ register regexp *prog, char *stringarg, register char *
     char *scream_olds;
     SV* oreplsv = GvSV(PL_replgv);
 
-    cc.cur = 0;
-    cc.oldcc = 0;
-    PL_regcc = &cc;
+    PL_regcc = 0;
 
     cache_re(prog);
 #ifdef DEBUGGING
@@ -758,9 +792,12 @@ Perl_regexec_flags(pTHX_ register regexp *prog, char *stringarg, register char *
            end = HOPc(strend, -dontbother) - 1;
            /* for multiline we only have to try after newlines */
            if (prog->check_substr) {
+               if (s == startpos)
+                   goto after_try;
                while (1) {
                    if (regtry(prog, s))
                        goto got_it;
+                 after_try:
                    if (s >= end)
                        goto phooey;
                    s = re_intuit_start(prog, sv, s + 1, strend, flags, NULL);
@@ -2109,7 +2146,6 @@ S_regmatch(pTHX_ regnode *prog)
                    regexp *re;
                    MAGIC *mg = Null(MAGIC*);
                    re_cc_state state;
-                   CURCUR cctmp;
                    CHECKPOINT cp, lastcp;
 
                    if(SvROK(ret) || SvRMAGICAL(ret)) {
@@ -2152,9 +2188,7 @@ S_regmatch(pTHX_ regnode *prog)
                    state.cc = PL_regcc;
                    state.re = PL_reg_re;
 
-                   cctmp.cur = 0;
-                   cctmp.oldcc = 0;
-                   PL_regcc = &cctmp;
+                   PL_regcc = 0;
                    
                    cp = regcppush(0);  /* Save *all* the positions. */
                    REGCP_SET;
@@ -2168,6 +2202,20 @@ S_regmatch(pTHX_ regnode *prog)
                    PL_reg_maxiter = 0;
 
                    if (regmatch(re->program + 1)) {
+                       /* Even though we succeeded, we need to restore
+                          global variables, since we may be wrapped inside
+                          SUSPEND, thus the match may be not finished yet. */
+
+                       /* XXXX Do this only if SUSPENDed? */
+                       PL_reg_call_cc = state.prev;
+                       PL_regcc = state.cc;
+                       PL_reg_re = state.re;
+                       cache_re(PL_reg_re);
+
+                       /* XXXX This is too dramatic a measure... */
+                       PL_reg_maxiter = 0;
+
+                       /* These are needed even if not SUSPEND. */
                        ReREFCNT_dec(re);
                        regcpblow(cp);
                        sayYES;
@@ -2227,6 +2275,81 @@ S_regmatch(pTHX_ regnode *prog)
        case LOGICAL:
            logical = scan->flags;
            break;
+/*******************************************************************
+ PL_regcc contains infoblock about the innermost (...)* loop, and
+ a pointer to the next outer infoblock.
+
+ Here is how Y(A)*Z is processed (if it is compiled into CURLYX/WHILEM):
+
+   1) After matching X, regnode for CURLYX is processed;
+
+   2) This regnode creates infoblock on the stack, and calls 
+      regmatch() recursively with the starting point at WHILEM node;
+
+   3) Each hit of WHILEM node tries to match A and Z (in the order
+      depending on the current iteration, min/max of {min,max} and
+      greediness).  The information about where are nodes for "A"
+      and "Z" is read from the infoblock, as is info on how many times "A"
+      was already matched, and greediness.
+
+   4) After A matches, the same WHILEM node is hit again.
+
+   5) Each time WHILEM is hit, PL_regcc is the infoblock created by CURLYX
+      of the same pair.  Thus when WHILEM tries to match Z, it temporarily
+      resets PL_regcc, since this Y(A)*Z can be a part of some other loop:
+      as in (Y(A)*Z)*.  If Z matches, the automaton will hit the WHILEM node
+      of the external loop.
+
+ Currently present infoblocks form a tree with a stem formed by PL_curcc
+ and whatever it mentions via ->next, and additional attached trees
+ corresponding to temporarily unset infoblocks as in "5" above.
+
+ In the following picture infoblocks for outer loop of 
+ (Y(A)*?Z)*?T are denoted O, for inner I.  NULL starting block
+ is denoted by x.  The matched string is YAAZYAZT.  Temporarily postponed
+ infoblocks are drawn below the "reset" infoblock.
+
+ In fact in the picture below we do not show failed matches for Z and T
+ by WHILEM blocks.  [We illustrate minimal matches, since for them it is
+ more obvious *why* one needs to *temporary* unset infoblocks.]
+
+  Matched      REx position    InfoBlocks      Comment
+               (Y(A)*?Z)*?T    x
+               Y(A)*?Z)*?T     x <- O
+  Y            (A)*?Z)*?T      x <- O
+  Y            A)*?Z)*?T       x <- O <- I
+  YA           )*?Z)*?T        x <- O <- I
+  YA           A)*?Z)*?T       x <- O <- I
+  YAA          )*?Z)*?T        x <- O <- I
+  YAA          Z)*?T           x <- O          # Temporary unset I
+                                    I
+
+  YAAZ         Y(A)*?Z)*?T     x <- O
+                                    I
+
+  YAAZY                (A)*?Z)*?T      x <- O
+                                    I
+
+  YAAZY                A)*?Z)*?T       x <- O <- I
+                                    I
+
+  YAAZYA       )*?Z)*?T        x <- O <- I     
+                                    I
+
+  YAAZYA       Z)*?T           x <- O          # Temporary unset I
+                                    I,I
+
+  YAAZYAZ      )*?T            x <- O
+                                    I,I
+
+  YAAZYAZ      T               x               # Temporary unset O
+                               O
+                               I,I
+
+  YAAZYAZT                     x
+                               O
+                               I,I
+ *******************************************************************/
        case CURLYX: {
                CURCUR cc;
                CHECKPOINT cp = PL_savestack_ix;
@@ -2279,7 +2402,8 @@ S_regmatch(pTHX_ regnode *prog)
 
                if (locinput == cc->lastloc && n >= cc->min) {
                    PL_regcc = cc->oldcc;
-                   ln = PL_regcc->cur;
+                   if (PL_regcc)
+                       ln = PL_regcc->cur;
                    DEBUG_r(
                        PerlIO_printf(Perl_debug_log,
                           "%*s  empty match detected, try continuation...\n",
@@ -2292,7 +2416,8 @@ S_regmatch(pTHX_ regnode *prog)
                                      "%*s  failed...\n",
                                      REPORT_CODE_OFF+PL_regindent*2, "")
                        );
-                   PL_regcc->cur = ln;
+                   if (PL_regcc)
+                       PL_regcc->cur = ln;
                    PL_regcc = cc;
                    sayNO;
                }
@@ -2363,7 +2488,8 @@ S_regmatch(pTHX_ regnode *prog)
 
                if (cc->minmod) {
                    PL_regcc = cc->oldcc;
-                   ln = PL_regcc->cur;
+                   if (PL_regcc)
+                       ln = PL_regcc->cur;
                    cp = regcppush(cc->parenfloor);
                    REGCP_SET;
                    if (regmatch(cc->next)) {
@@ -2372,7 +2498,8 @@ S_regmatch(pTHX_ regnode *prog)
                    }
                    REGCP_UNWIND;
                    regcppop();
-                   PL_regcc->cur = ln;
+                   if (PL_regcc)
+                       PL_regcc->cur = ln;
                    PL_regcc = cc;
 
                    if (n >= cc->max) { /* Maximum greed exceeded? */
@@ -2443,14 +2570,16 @@ S_regmatch(pTHX_ regnode *prog)
 
                /* Failed deeper matches of scan, so see if this one works. */
                PL_regcc = cc->oldcc;
-               ln = PL_regcc->cur;
+               if (PL_regcc)
+                   ln = PL_regcc->cur;
                if (regmatch(cc->next))
                    sayYES;
                DEBUG_r(
                    PerlIO_printf(Perl_debug_log, "%*s  failed...\n",
                                  REPORT_CODE_OFF+PL_regindent*2, "")
                    );
-               PL_regcc->cur = ln;
+               if (PL_regcc)
+                   PL_regcc->cur = ln;
                PL_regcc = cc;
                cc->cur = n - 1;
                cc->lastloc = lastloc;
diff --git a/sv.c b/sv.c
index 956f3b9..6327ef0 100644 (file)
--- a/sv.c
+++ b/sv.c
@@ -612,8 +612,8 @@ Perl_sv_upgrade(pTHX_ register SV *sv, U32 mt)
        pv      = (char*)SvRV(sv);
        cur     = 0;
        len     = 0;
-       iv      = (IV)PTR_CAST pv;
-       nv      = (NV)(PTRV)pv;
+       iv      = PTR2IV(pv);
+       nv      = PTR2NV(pv);
        del_XRV(SvANY(sv));
        magic   = 0;
        stash   = 0;
@@ -1034,10 +1034,12 @@ S_not_a_number(pTHX_ SV *sv)
     *d = '\0';
 
     if (PL_op)
-       Perl_warner(aTHX_ WARN_NUMERIC, "Argument \"%s\" isn't numeric in %s", tmpbuf,
-               PL_op_name[PL_op->op_type]);
+       Perl_warner(aTHX_ WARN_NUMERIC,
+                   "Argument \"%s\" isn't numeric in %s", tmpbuf,
+               PL_op_desc[PL_op->op_type]);
     else
-       Perl_warner(aTHX_ WARN_NUMERIC, "Argument \"%s\" isn't numeric", tmpbuf);
+       Perl_warner(aTHX_ WARN_NUMERIC,
+                   "Argument \"%s\" isn't numeric", tmpbuf);
 }
 
 /* the number can be converted to integer with atol() or atoll() */
@@ -1077,7 +1079,7 @@ Perl_sv_2iv(pTHX_ register SV *sv)
          SV* tmpstr;
          if (SvAMAGIC(sv) && (tmpstr=AMG_CALLun(sv, numer)))
              return SvIV(tmpstr);
-         return (IV)PTR_CAST SvRV(sv);
+         return PTR2IV(SvRV(sv));
        }
        if (SvREADONLY(sv) && !SvOK(sv)) {
            dTHR;
@@ -1113,7 +1115,7 @@ Perl_sv_2iv(pTHX_ register SV *sv)
 #ifdef IV_IS_QUAD
            DEBUG_c(PerlIO_printf(Perl_debug_log, 
                                  "0x%" PERL_PRIx64 " 2iv(%" PERL_PRIu64 " => %" PERL_PRId64 ") (as unsigned)\n",
-                                 (UV)PTR_CAST sv,
+                                 PTR2UV(sv),
                                  (UV)SvUVX(sv), (IV)SvUVX(sv)));
 #else
            DEBUG_c(PerlIO_printf(Perl_debug_log, 
@@ -1222,7 +1224,7 @@ Perl_sv_2uv(pTHX_ register SV *sv)
          SV* tmpstr;
          if (SvAMAGIC(sv) && (tmpstr=AMG_CALLun(sv, numer)))
              return SvUV(tmpstr);
-         return (UV)PTR_CAST SvRV(sv);
+         return PTR2UV(SvRV(sv));
        }
        if (SvREADONLY(sv) && !SvOK(sv)) {
            dTHR;
@@ -1393,7 +1395,7 @@ Perl_sv_2nv(pTHX_ register SV *sv)
          SV* tmpstr;
          if (SvAMAGIC(sv) && (tmpstr=AMG_CALLun(sv,numer)))
              return SvNV(tmpstr);
-         return (NV)(PTRV)SvRV(sv);
+         return PTR2NV(SvRV(sv));
        }
        if (SvREADONLY(sv) && !SvOK(sv)) {
            dTHR;
@@ -1777,7 +1779,7 @@ Perl_sv_2pv(pTHX_ register SV *sv, STRLEN *lp)
                else
                    sv_setpv(tsv, s);
 #ifdef IV_IS_QUAD
-               Perl_sv_catpvf(aTHX_ tsv, "(0x%" PERL_PRIx64")", (UV)PTR_CAST sv);
+               Perl_sv_catpvf(aTHX_ tsv, "(0x%" PERL_PRIx64")", PTR2UV(sv));
 #else
                Perl_sv_catpvf(aTHX_ tsv, "(0x%lx)", (unsigned long)sv);
 #endif
@@ -3691,7 +3693,7 @@ Perl_sv_inc(pTHX_ register SV *sv)
            IV i;
            if (SvAMAGIC(sv) && AMG_CALLun(sv,inc))
                return;
-           i = (IV)PTR_CAST SvRV(sv);
+           i = PTR2IV(SvRV(sv));
            sv_unref(sv);
            sv_setiv(sv, i);
        }
@@ -3791,7 +3793,7 @@ Perl_sv_dec(pTHX_ register SV *sv)
            IV i;
            if (SvAMAGIC(sv) && AMG_CALLun(sv,dec))
                return;
-           i = (IV)PTR_CAST SvRV(sv);
+           i = PTR2IV(SvRV(sv));
            sv_unref(sv);
            sv_setiv(sv, i);
        }
@@ -4395,7 +4397,7 @@ Perl_sv_setref_pv(pTHX_ SV *rv, const char *classname, void *pv)
        SvSETMAGIC(rv);
     }
     else
-       sv_setiv(newSVrv(rv,classname), (IV)PTR_CAST pv);
+       sv_setiv(newSVrv(rv,classname), PTR2IV(pv));
     return rv;
 }
 
@@ -4645,14 +4647,14 @@ Perl_sv_vcatpvf_mg(pTHX_ SV *sv, const char* pat, va_list* args)
 }
 
 void
-Perl_sv_vsetpvfn(pTHX_ SV *sv, const char *pat, STRLEN patlen, va_list *args, SV **svargs, I32 svmax, bool *used_locale)
+Perl_sv_vsetpvfn(pTHX_ SV *sv, const char *pat, STRLEN patlen, va_list *args, SV **svargs, I32 svmax, bool *maybe_tainted)
 {
     sv_setpvn(sv, "", 0);
-    sv_vcatpvfn(sv, pat, patlen, args, svargs, svmax, used_locale);
+    sv_vcatpvfn(sv, pat, patlen, args, svargs, svmax, maybe_tainted);
 }
 
 void
-Perl_sv_vcatpvfn(pTHX_ SV *sv, const char *pat, STRLEN patlen, va_list *args, SV **svargs, I32 svmax, bool *used_locale)
+Perl_sv_vcatpvfn(pTHX_ SV *sv, const char *pat, STRLEN patlen, va_list *args, SV **svargs, I32 svmax, bool *maybe_tainted)
 {
     dTHR;
     char *p;
@@ -4898,9 +4900,9 @@ Perl_sv_vcatpvfn(pTHX_ SV *sv, const char *pat, STRLEN patlen, va_list *args, SV
 
        case 'p':
            if (args)
-               uv = (UV)PTR_CAST va_arg(*args, void*);
+               uv = PTR2UV(va_arg(*args, void*));
            else
-               uv = (svix < svmax) ? (UV)PTR_CAST svargs[svix++] : 0;
+               uv = (svix < svmax) ? PTR2UV(svargs[svix++]) : 0;
            base = 16;
            goto integer;
 
@@ -5033,10 +5035,25 @@ Perl_sv_vcatpvfn(pTHX_ SV *sv, const char *pat, STRLEN patlen, va_list *args, SV
                    dig = uv & 1;
                    *--eptr = '0' + dig;
                } while (uv >>= 1);
-               if (alt && *eptr != '0')
-                   *--eptr = '0';
+               if (alt) {
+                   esignbuf[esignlen++] = '0';
+                   esignbuf[esignlen++] = 'b';
+               }
                break;
            default:            /* it had better be ten or less */
+#if defined(PERL_Y2KWARN)
+               if (ckWARN(WARN_MISC)) {
+                   STRLEN n;
+                   char *s = SvPV(sv,n);
+                   if (n >= 2 && s[n-2] == '1' && s[n-1] == '9'
+                       && (n == 2 || !isDIGIT(s[n-3])))
+                   {
+                       Perl_warner(aTHX_ WARN_MISC,
+                                   "Possible Y2K bug: %%%c %s",
+                                   c, "format string following '19'");
+                   }
+               }
+#endif
                do {
                    dig = uv % base;
                    *--eptr = '0' + dig;
@@ -5086,6 +5103,7 @@ Perl_sv_vcatpvfn(pTHX_ SV *sv, const char *pat, STRLEN patlen, va_list *args, SV
                Safefree(PL_efloatbuf);
                PL_efloatsize = need + 20; /* more fudge */
                New(906, PL_efloatbuf, PL_efloatsize, char);
+               PL_efloatbuf[0] = '\0';
            }
 
            eptr = ebuf + sizeof ebuf;
@@ -5125,15 +5143,36 @@ Perl_sv_vcatpvfn(pTHX_ SV *sv, const char *pat, STRLEN patlen, va_list *args, SV
            eptr = PL_efloatbuf;
            elen = strlen(PL_efloatbuf);
 
-#ifdef LC_NUMERIC
+#ifdef USE_LOCALE_NUMERIC
            /*
             * User-defined locales may include arbitrary characters.
-            * And, unfortunately, some system may alloc the "C" locale
-            * to be overridden by a malicious user.
+            * And, unfortunately, some (broken) systems may allow the
+            * "C" locale to be overridden by a malicious user.
+            * XXX This is an extreme way to cope with broken systems.
             */
-           if (used_locale)
-               *used_locale = TRUE;
-#endif /* LC_NUMERIC */
+           if (maybe_tainted && PL_tainting) {
+               /* safe if it matches /[-+]?\d*(\.\d*)?([eE][-+]?\d*)?/ */
+               if (*eptr == '-' || *eptr == '+')
+                   ++eptr;
+               while (isDIGIT(*eptr))
+                   ++eptr;
+               if (*eptr == '.') {
+                   ++eptr;
+                   while (isDIGIT(*eptr))
+                       ++eptr;
+               }
+               if (*eptr == 'e' || *eptr == 'E') {
+                   ++eptr;
+                   if (*eptr == '-' || *eptr == '+')
+                       ++eptr;
+                   while (isDIGIT(*eptr))
+                       ++eptr;
+               }
+               if (*eptr)
+                   *maybe_tainted = TRUE;      /* results are suspect */
+               eptr = PL_efloatbuf;
+           }
+#endif /* USE_LOCALE_NUMERIC */
 
            break;
 
diff --git a/sv.h b/sv.h
index 1aab997..f6e3c39 100644 (file)
--- a/sv.h
+++ b/sv.h
@@ -137,13 +137,16 @@ struct io {
 #define SVf_BREAK      0x00400000      /* refcnt is artificially low */
 #define SVf_READONLY   0x00800000      /* may not be modified */
 
-#define SVf_THINKFIRST (SVf_READONLY|SVf_ROK|SVf_FAKE)
 
 #define SVp_IOK                0x01000000      /* has valid non-public integer value */
 #define SVp_NOK                0x02000000      /* has valid non-public numeric value */
 #define SVp_POK                0x04000000      /* has valid non-public pointer value */
 #define SVp_SCREAM     0x08000000      /* has been studied? */
 
+#define SVf_UTF8        0x20000000      /* SvPVX is UTF-8 encoded */
+
+#define SVf_THINKFIRST (SVf_READONLY|SVf_ROK|SVf_FAKE|SVf_UTF8)
+
 #define SVf_OK         (SVf_IOK|SVf_NOK|SVf_POK|SVf_ROK| \
                         SVp_IOK|SVp_NOK|SVp_POK)
 
@@ -367,12 +370,16 @@ struct xpvio {
 #define SvNOK_only(sv)         (SvOK_off(sv), \
                                    SvFLAGS(sv) |= (SVf_NOK|SVp_NOK))
 
+#define SvUTF8(sv)             (SvFLAGS(sv) & SVf_ISUTF8)          
+#define SvUTF8_on(sv)          (SvFLAGS(sv) |= (SVf_ISUTF8))
+#define SvUTF8_off(sv)         (SvFLAGS(sv) &= ~(SVf_ISUTF8))
+
 #define SvPOK(sv)              (SvFLAGS(sv) & SVf_POK)
 #define SvPOK_on(sv)           (SvFLAGS(sv) |= (SVf_POK|SVp_POK))
 #define SvPOK_off(sv)          (SvFLAGS(sv) &= ~(SVf_POK|SVp_POK))
 #define SvPOK_only(sv)         (SvFLAGS(sv) &= ~(SVf_OK|SVf_AMAGIC|SVf_IVisUV),        \
                                    SvFLAGS(sv) |= (SVf_POK|SVp_POK))
-
+                                   
 #define SvOOK(sv)              (SvFLAGS(sv) & SVf_OOK)
 #define SvOOK_on(sv)           (SvIOK_off(sv), SvFLAGS(sv) |= SVf_OOK)
 #define SvOOK_off(sv)          (SvOOK(sv) && sv_backoff(sv))
@@ -542,11 +549,26 @@ struct xpvio {
 #define SvPV_force(sv, lp) sv_pvn_force(sv, &lp)
 #define SvPV(sv, lp) sv_pvn(sv, &lp)
 #define SvPV_nolen(sv) sv_pv(sv)
+
+#define SvPVutf8_force(sv, lp) sv_pvutf8n_force(sv, &lp)
+#define SvPVutf8(sv, lp) sv_pvutf8n(sv, &lp)
+#define SvPVutf8_nolen(sv) sv_pvutf8(sv)
+
+#define SvPVbyte_force(sv, lp) sv_pvbyte_force(sv, &lp)
+#define SvPVbyte(sv, lp) sv_pvbyten(sv, &lp)
+#define SvPVbyte_nolen(sv) sv_pvbyte(sv)
+
+#define SvPVx(sv, lp) sv_pvn(sv, &lp)
+#define SvPVx_force(sv, lp) sv_pvn_force(sv, &lp)
+#define SvPVutf8x(sv, lp) sv_pvutf8n(sv, &lp)
+#define SvPVutf8x_force(sv, lp) sv_pvutf8n_force(sv, &lp)
+#define SvPVbytex(sv, lp) sv_pvbyten(sv, &lp)
+#define SvPVbytex_force(sv, lp) sv_pvbyten_force(sv, &lp)
+
 #define SvIVx(sv) sv_iv(sv)
 #define SvUVx(sv) sv_uv(sv)
 #define SvNVx(sv) sv_nv(sv)
-#define SvPVx(sv, lp) sv_pvn(sv, &lp)
-#define SvPVx_force(sv, lp) sv_pvn_force(sv, &lp)
+
 #define SvTRUEx(sv) sv_true(sv)
 
 #define SvIV(sv) SvIVx(sv)
@@ -569,7 +591,9 @@ struct xpvio {
 
 #undef SvPV
 #define SvPV(sv, lp) \
-    (SvPOK(sv) ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv(sv, &lp))
+    ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
+     ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv(sv, &lp))
+     
 
 #undef SvPV_force
 #define SvPV_force(sv, lp) \
@@ -578,19 +602,70 @@ struct xpvio {
 
 #undef SvPV_nolen
 #define SvPV_nolen(sv) \
-    (SvPOK(sv) ? SvPVX(sv) : sv_2pv_nolen(sv))
+    ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
+     ? SvPVX(sv) : sv_2pv_nolen(sv))
+     
+#undef SvPVutf8
+#define SvPVutf8(sv, lp) \
+    ((SvFLAGS(sv) & (SVf_POK|SVf_UTF8)) == (SVf_POK|SVf_UTF8) \
+     ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pvutf8(sv, &lp))
+     
+#undef SvPVutf8_force
+#define SvPVutf8_force(sv, lp) \
+    ((SvFLAGS(sv) & (SVf_POK|SVf_THINKFIRST)) == (SVf_POK||SVf_UTF8) \
+     ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_pvutf8n_force(sv, &lp))
+
+#undef SvPVutf8_nolen
+#define SvPVutf8_nolen(sv) \
+    ((SvFLAGS(sv) & (SVf_POK|SVf_UTF8)) == (SVf_POK||SVf_UTF8)\
+     ? SvPVX(sv) : sv_2pvutf8_nolen(sv))
+     
+#undef SvPVutf8
+#define SvPVutf8(sv, lp) \
+    ((SvFLAGS(sv) & (SVf_POK|SVf_UTF8)) == (SVf_POK|SVf_UTF8) \
+     ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pvutf8(sv, &lp))
+     
+#undef SvPVutf8_force
+#define SvPVutf8_force(sv, lp) \
+    ((SvFLAGS(sv) & (SVf_POK|SVf_THINKFIRST)) == (SVf_POK||SVf_UTF8) \
+     ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_pvutf8n_force(sv, &lp))
+
+#undef SvPVutf8_nolen
+#define SvPVutf8_nolen(sv) \
+    ((SvFLAGS(sv) & (SVf_POK|SVf_UTF8)) == (SVf_POK|SVf_UTF8)\
+     ? SvPVX(sv) : sv_2pvutf8_nolen(sv))
+     
+#undef SvPVbyte
+#define SvPVbyte(sv, lp) \
+    ((SvFLAGS(sv) & (SVf_POK|SVf_UTF8)) == (SVf_POK) \
+     ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pvbyte(sv, &lp))
+     
+#undef SvPVbyte_force
+#define SvPVbyte_force(sv, lp) \
+    ((SvFLAGS(sv) & (SVf_POK|SVf_UTF8|SVf_THINKFIRST)) == (SVf_POK) \
+     ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_pvbyte_force(sv, &lp))
+
+#undef SvPVbyte_nolen
+#define SvPVbyte_nolen(sv) \
+    ((SvFLAGS(sv) & (SVf_POK|SVf_UTF8)) == (SVf_POK)\
+     ? SvPVX(sv) : sv_2pvbyte_nolen(sv))
+     
 
 #ifdef __GNUC__
 #  undef SvIVx
 #  undef SvUVx
 #  undef SvNVx
 #  undef SvPVx
+#  undef SvPVutf8x
+#  undef SvPVbytex
 #  undef SvTRUE
 #  undef SvTRUEx
 #  define SvIVx(sv) ({SV *nsv = (SV*)(sv); SvIV(nsv); })
 #  define SvUVx(sv) ({SV *nsv = (SV*)(sv); SvUV(nsv); })
 #  define SvNVx(sv) ({SV *nsv = (SV*)(sv); SvNV(nsv); })
 #  define SvPVx(sv, lp) ({SV *nsv = (sv); SvPV(nsv, lp); })
+#  define SvPVutf8x(sv, lp) ({SV *nsv = (sv); SvPVutf8(nsv, lp); })
+#  define SvPVbytex(sv, lp) ({SV *nsv = (sv); SvPVbyte(nsv, lp); })
 #  define SvTRUE(sv) (                                         \
     !sv                                                                \
     ? 0                                                                \
@@ -618,12 +693,16 @@ struct xpvio {
 #  undef SvUVx
 #  undef SvNVx
 #  undef SvPVx
+#  undef SvPVutf8x
+#  undef SvPVbytex
 #  undef SvTRUE
 #  undef SvTRUEx
 #  define SvIVx(sv) ((PL_Sv = (sv)), SvIV(PL_Sv))
 #  define SvUVx(sv) ((PL_Sv = (sv)), SvUV(PL_Sv))
 #  define SvNVx(sv) ((PL_Sv = (sv)), SvNV(PL_Sv))
 #  define SvPVx(sv, lp) ((PL_Sv = (sv)), SvPV(PL_Sv, lp))
+#  define SvPVutf8x(sv, lp) ((PL_Sv = (sv)), SvPVutf8(PL_Sv, lp))
+#  define SvPVutf8x(sv, lp) ((PL_Sv = (sv)), SvPVbyte(PL_Sv, lp))
 #  define SvTRUE(sv) (                                         \
     !sv                                                                \
     ? 0                                                                \
index 9ad823f..af13d4d 100755 (executable)
@@ -2,7 +2,7 @@
 
 # $RCSfile: dup.t,v $$Revision: 4.1 $$Date: 92/08/07 18:27:27 $
 
-print "1..7\n";
+print "1..6\n";
 
 print "ok 1\n";
 
@@ -38,16 +38,3 @@ unlink 'Io.dup';
 
 print STDOUT "ok 6\n";
 
-# 7  # 19990811 mjd@plover.com
-my ($out1, $out2) = ("Line 1\n", "Line 2\n");
-open(W, "> Io.dup") || die "Can't open stdout";
-print W $out1, $out2;
-close W;
-open(R1, "< Io.dup") || die "Can't read temp file";
-$in1 = <R1>;
-open(R2, "<&R1") || die "Can't dup";
-$in2 = <R2>;
-print "not " unless $in1 eq $out1 && $in2 eq $out2;
-print "ok 7\n";
-
-unlink("Io.dup");
index 12d32f4..418edac 100755 (executable)
@@ -3,6 +3,7 @@
 # $RCSfile$    
 $|  = 1;
 $^W = 1;
+$Is_VMS = $^O eq 'VMS';
 
 print "1..32\n";
 
@@ -78,7 +79,8 @@ print "ok 23\n";
 
 unlink("afile");     
 }
-{
+if ($Is_VMS) { for (24..46) { print "ok $_ # skipped: not Unix fork\n"; } }
+else {
 print "# \$!='$!'\nnot " unless open(my $f, '-|', <<'EOC');
 ./perl -e "print qq(a row\n); print qq(another row\n)"
 EOC
@@ -89,7 +91,8 @@ print "ok 25\n";
 print "not " unless close($f);
 print "ok 26\n";
 }
-{
+if ($Is_VMS) { for (27..30) { print "OK $_ # skipped: not Unix fork\n"; } }
+else {
 print "# \$!='$!'\nnot " unless open(my $f, '|-', <<'EOC');
 ./perl -pe "s/^not //"
 EOC
similarity index 100%
rename from t/lib/bigfloatpm.t
rename to t/lib/bigfltpm.t
index cea8163..b13e50e 100755 (executable)
@@ -82,6 +82,8 @@ sub docat_del
 }   
 
 
+$db185mode =  ($DB_File::db_version == 1 && ! $DB_File::db_185_compat) ;
+
 my $Dfile = "dbbtree.tmp";
 unlink $Dfile;
 
@@ -933,7 +935,7 @@ EOM
     unlink $filename ;
   }  
 
-  ok(150, docat_del($file) eq ($DB_File::db_version == 1 ? <<'EOM' : <<'EOM') ) ;
+  ok(150, docat_del($file) eq ($db185mode ? <<'EOM' : <<'EOM') ) ;
 Smith  -> John
 Wall   -> Brick
 Wall   -> Brick
@@ -987,7 +989,7 @@ EOM
     untie %h ;
   }
 
-  ok(151, docat_del($file) eq ($DB_File::db_version == 1 ? <<'EOM' : <<'EOM') ) ;
+  ok(151, docat_del($file) eq ($db185mode == 1 ? <<'EOM' : <<'EOM') ) ;
 Smith  -> John
 Wall   -> Brick
 Wall   -> Brick
index 4d38a8e..4619e11 100644 (file)
@@ -30,13 +30,15 @@ sub explain {
     print <<EOM;
 #
 # If the lfs (large file support: large meaning larger than two gigabytes)
-# tests are skipped or fail, it may mean either that your process is not
-# allowed to write large files or that the file system you are running
-# the tests on doesn't support large files, or both.  You may also need
-# to reconfigure your kernel. (This is all very system-dependent.)
+# tests are skipped or fail, it may mean either that your process
+# (or process group) is not allowed to write large files (resource
+# limits) or that the file system you are running the tests on doesn't
+# let your user/group have large files (quota) or the filesystem simply
+# doesn't support large files.  You may even need to reconfigure your kernel.
+# (This is all very operating system and site-dependent.)
 #
 # Perl may still be able to support large files, once you have
-# such a process and such a (file) system.
+# such a process, enough quota, and such a (file) system.
 #
 EOM
 }
@@ -47,6 +49,13 @@ if ($^O eq 'win32' || $^O eq 'vms') {
     bye();
 }
 
+# Known haves that have problems running this test
+# (for example because they do not support sparse files, like UNICOS)
+if ($^O eq 'unicos') {
+    print "1..0\n# large files known to work but unable to test them here\n";
+    bye();
+}
+
 # Then try to deduce whether we have sparse files.
 
 # We'll start off by creating a one megabyte file which has
@@ -66,7 +75,7 @@ my @s;
 
 print "# @s\n";
 
-my $BLOCKSIZE = 512; # is this really correct everywhere?
+my $BLOCKSIZE = $s[11] || 512;
 
 unless (@s == 13 &&
        $s[7] == 1_000_003 &&
@@ -79,19 +88,29 @@ unless (@s == 13 &&
 # By now we better be sure that we do have sparse files:
 # if we are not, the following will hog 5 gigabytes of disk.  Ooops.
 
+$ENV{LC_ALL} = "C";
+
 sysopen(BIG, "big", O_WRONLY|O_CREAT|O_TRUNC) or
        do { warn "sysopen failed: $!\n"; bye };
 sysseek(BIG, 5_000_000_000, SEEK_SET);
+
 # The syswrite will fail if there are are filesize limitations (process or fs).
-unless(syswrite(BIG, "big") == 3) {
-    $ENV{LC_ALL} = "C";
-    if ($! =~/File too large/) {
-       print "1..0\n# writing past 2GB failed\n";
-       explain();
-       bye();
+my $syswrite = syswrite(BIG, "big") == 3;
+my $close   = close BIG if $syswrite;
+unless($syswrite && $close) {
+    unless ($syswrite) {
+        print "# syswrite failed: $!\n"
+    } else {
+        print "# close failed: $!\n"
+    }
+    if ($! =~/too large/i) {
+       print "1..0\n# writing past 2GB failed: process limits?\n";
+    } elsif ($! =~ /quota/i) {
+       print "1..0\n# filesystem quota limits?\n";
     }
+    explain();
+    bye();
 }
-close BIG;
 
 @s = stat("big");
 
index f1bd827..fe2f0f4 100755 (executable)
@@ -10,7 +10,14 @@ try 1,  13 %  4 ==  1;
 try 2, -13 %  4 ==  3;
 try 3,  13 % -4 == -3;
 try 4, -13 % -4 == -1;
-try 5, abs( 13e21 %  4e21 -  1e21) < 1e6;
-try 6, abs(-13e21 %  4e21 -  3e21) < 1e6;
-try 7, abs( 13e21 % -4e21 - -3e21) < 1e6;
-try 8, abs(-13e21 % -4e21 - -1e21) < 1e6;
+
+my $limit = 1e6;
+
+# Division (and modulo) of floating point numbers
+# seem to be rather sloppy in Cray.
+$limit = 1e8 if $^O eq 'unicos';
+
+try 5, abs( 13e21 %  4e21 -  1e21) < $limit;
+try 6, abs(-13e21 %  4e21 -  3e21) < $limit;
+try 7, abs( 13e21 % -4e21 - -3e21) < $limit;
+try 8, abs(-13e21 % -4e21 - -1e21) < $limit;
index f46af93..a8f9fe8 100755 (executable)
@@ -79,11 +79,11 @@ if ($groups =~ /groups=(.+)( [ug]id=|$)/) {
     # prefer names over numbers
     for (@g0) {
         # 42(zot me)
-       if (/^(\d+)(?:\(([^)]+)\))?$/) {
+       if (/^(\d+)(?:\(([^)]+)\))?/) {
            push @g1, ($2 || $1);
        }
         # zot me(42)
-       elsif (/^([^(]*)\((\d+)\)$/) {
+       elsif (/^([^(]*)\((\d+)\)/) {
            push @g1, ($1 || $2);
        }
        else {
index ae6aac6..129752b 100644 (file)
@@ -29,13 +29,15 @@ sub explain {
     print <<EOM;
 #
 # If the lfs (large file support: large meaning larger than two gigabytes)
-# tests are skipped or fail, it may mean either that your process is not
-# allowed to write large files or that the file system you are running
-# the tests on doesn't support large files, or both.  You may also need
-# to reconfigure your kernel. (This is all very system-dependent.)
+# tests are skipped or fail, it may mean either that your process
+# (or process group) is not allowed to write large files (resource
+# limits) or that the file system you are running the tests on doesn't
+# let your user/group have large files (quota) or the filesystem simply
+# doesn't support large files.  You may even need to reconfigure your kernel.
+# (This is all very operating system and site-dependent.)
 #
 # Perl may still be able to support large files, once you have
-# such a process and such a (file) system.
+# such a process, enough quota, and such a (file) system.
 #
 EOM
 }
@@ -46,6 +48,13 @@ if ($^O eq 'win32' || $^O eq 'vms') {
     bye();
 }
 
+# Known haves that have problems running this test
+# (for example because they do not support sparse files, like UNICOS)
+if ($^O eq 'unicos') {
+    print "1..0\n# large files known to work but unable to test them here\n";
+    bye();
+}
+
 # Then try to deduce whether we have sparse files.
 
 # Let's not depend on Fcntl or any other extension.
@@ -69,7 +78,7 @@ my @s;
 
 print "# @s\n";
 
-my $BLOCKSIZE = 512; # is this really correct everywhere?
+my $BLOCKSIZE = $s[11] || 512;
 
 unless (@s == 13 &&
        $s[7] == 1_000_003 &&
@@ -82,19 +91,28 @@ unless (@s == 13 &&
 # By now we better be sure that we do have sparse files:
 # if we are not, the following will hog 5 gigabytes of disk.  Ooops.
 
+$ENV{LC_ALL} = "C";
+
 open(BIG, ">big") or do { warn "open failed: $!\n"; bye };
 binmode BIG;
 seek(BIG, 5_000_000_000, $SEEK_SET);
+
 # Either the print or (more likely, thanks to buffering) the close will
 # fail if there are are filesize limitations (process or fs).
 my $print = print BIG "big";
 my $close = close BIG if $print;
 unless ($print && $close) {
-    $ENV{LC_ALL} = "C";
-    if ($! =~/File too large/) {
-       print "1..0\n# writing past 2GB failed\n";
-       explain();
+    unless ($print) {
+        print "# print failed: $!\n"
+    } else {
+        print "# close failed: $!\n"
+    }
+    if ($! =~/too large/i) {
+       print "1..0\n# writing past 2GB failed: process limits?\n";
+    } elsif ($! =~ /quota/i) {
+       print "1..0\n# filesystem quota limits?\n";
     }
+    explain();
     bye();
 }
 
index 926c7f3..adfcd17 100755 (executable)
@@ -104,7 +104,7 @@ EXPECT
 ########
 %@x=0;
 EXPECT
-Can't modify hash deref in repeat at - line 1, near "0;"
+Can't modify hash dereference in repeat (x) at - line 1, near "0;"
 Execution of - aborted due to compilation errors.
 ########
 $_="foo";
index 6312c75..89cc2bb 100755 (executable)
@@ -4,7 +4,7 @@
 # the format supported by op/regexp.t.  If you want to add a test
 # that does fit that format, add it to op/re_tests, not here.
 
-print "1..188\n";
+print "1..192\n";
 
 BEGIN {
     chdir 't' if -d 't';
@@ -865,3 +865,25 @@ print "not " unless("@a" eq ",f,,o,,o, ,b,,a,,r,");
 print "ok $test\n";
 $test++;
 
+$brackets = qr{
+                {  (?> [^{}]+ | (?p{ $brackets }) )* }
+             }x;
+
+"{{}" =~ $brackets;
+print "ok $test\n";            # Did we survive?
+$test++;
+
+"something { long { and } hairy" =~ $brackets;
+print "ok $test\n";            # Did we survive?
+$test++;
+
+"something { long { and } hairy" =~ m/((?p{ $brackets }))/;
+print "not " unless $1 eq "{ and }";
+print "ok $test\n";
+$test++;
+
+$_ = "a-a\nxbb";
+pos=1;
+m/^-.*bb/mg and print "not ";
+print "ok $test\n";
+$test++;
index ef5b94c..70e55cb 100755 (executable)
@@ -14,8 +14,8 @@ $SIG{__WARN__} = sub {
 };
 
 $w = 0;
-$x = sprintf("%3s %-4s%%foo %.0d%5d %#x%c%3.1f %b","hi",123,0,456,0,ord('A'),3.0999,11);
-if ($x eq ' hi 123 %foo   456 0A3.1 1011' && $w == 0) {
+$x = sprintf("%3s %-4s%%foo %.0d%5d %#x%c%3.1f %b %x %X %#b %#x %#X","hi",123,0,456,0,ord('A'),3.0999,11,171,171,11,171,171);
+if ($x eq ' hi 123 %foo   456 0A3.1 1011 ab AB 0b1011 0xab 0XAB' && $w == 0) {
     print "ok 1\n";
 } else {
     print "not ok 1 '$x'\n";
index 82adcf3..c453c47 100755 (executable)
@@ -78,9 +78,9 @@ check_taint       7, "\L$a";
 check_taint       8, lcfirst($a);
 check_taint       9, "\l$a";
 
-check_taint      10, sprintf('%e', 123.456);
-check_taint      11, sprintf('%f', 123.456);
-check_taint      12, sprintf('%g', 123.456);
+check_taint_not  10, sprintf('%e', 123.456);
+check_taint_not  11, sprintf('%f', 123.456);
+check_taint_not  12, sprintf('%g', 123.456);
 check_taint_not  13, sprintf('%d', 123.456);
 check_taint_not  14, sprintf('%x', 123.456);
 
index e50420a..950c0c8 100644 (file)
@@ -247,7 +247,7 @@ eval { getgrgid 1 };        # OP_GGRGID
 eval { getpwnam 1 };   # OP_GPWNAM
 eval { getpwuid 1 };   # OP_GPWUID
 EXPECT
-Useless use of repeat in void context at - line 3.
+Useless use of repeat (x) in void context at - line 3.
 Useless use of wantarray in void context at - line 5.
 Useless use of reference-type operator in void context at - line 12.
 Useless use of reference constructor in void context at - line 13.
@@ -263,7 +263,7 @@ Useless use of rindex in void context at - line 22.
 Useless use of sprintf in void context at - line 23.
 Useless use of array element in void context at - line 24.
 Useless use of array slice in void context at - line 26.
-Useless use of hash elem in void context at - line 29.
+Useless use of hash element in void context at - line 29.
 Useless use of hash slice in void context at - line 30.
 Useless use of unpack in void context at - line 31.
 Useless use of pack in void context at - line 32.
@@ -590,19 +590,19 @@ my $a ; my @a = () ; my %a = () ; my $b = \@a ; my $c = \%a ;
 %$c =~ tr/a/b/ ;
 }
 EXPECT
-Applying pattern match to @array will act on scalar(@array) at - line 5.
-Applying substitution to @array will act on scalar(@array) at - line 6.
-Can't modify private array in substitution at - line 6, near "s/a/b/ ;"
-Applying character translation to @array will act on scalar(@array) at - line 7.
-Applying pattern match to @array will act on scalar(@array) at - line 8.
-Applying substitution to @array will act on scalar(@array) at - line 9.
-Applying character translation to @array will act on scalar(@array) at - line 10.
-Applying pattern match to %hash will act on scalar(%hash) at - line 11.
-Applying substitution to %hash will act on scalar(%hash) at - line 12.
-Applying character translation to %hash will act on scalar(%hash) at - line 13.
-Applying pattern match to %hash will act on scalar(%hash) at - line 14.
-Applying substitution to %hash will act on scalar(%hash) at - line 15.
-Applying character translation to %hash will act on scalar(%hash) at - line 16.
+Applying pattern match (m//) to @array will act on scalar(@array) at - line 5.
+Applying substitution (s///) to @array will act on scalar(@array) at - line 6.
+Can't modify private array in substitution (s///) at - line 6, near "s/a/b/ ;"
+Applying transliteration (tr///) to @array will act on scalar(@array) at - line 7.
+Applying pattern match (m//) to @array will act on scalar(@array) at - line 8.
+Applying substitution (s///) to @array will act on scalar(@array) at - line 9.
+Applying transliteration (tr///) to @array will act on scalar(@array) at - line 10.
+Applying pattern match (m//) to %hash will act on scalar(%hash) at - line 11.
+Applying substitution (s///) to %hash will act on scalar(%hash) at - line 12.
+Applying transliteration (tr///) to %hash will act on scalar(%hash) at - line 13.
+Applying pattern match (m//) to %hash will act on scalar(%hash) at - line 14.
+Applying substitution (s///) to %hash will act on scalar(%hash) at - line 15.
+Applying transliteration (tr///) to %hash will act on scalar(%hash) at - line 16.
 BEGIN not safe after errors--compilation aborted at - line 18.
 ########
 # op.c
@@ -627,7 +627,7 @@ print (ABC || 1) ;
 no warnings 'syntax' ;
 print (ABC || 1) ;
 EXPECT
-Probable precedence problem on logical or at - line 3.
+Probable precedence problem on logical or (||) at - line 3.
 ########
 --FILE-- abc
 
index 6bd3151..9a4b0a0 100644 (file)
   glob failed (child exited with status %d%s)  [Perl_do_readline] <<TODO
 
   Deep recursion on subroutine \"%s\"          [Perl_sub_crush_depth]
-     sub fred { fred() if $a++ < 200} fred()
+    sub fred { fred() if $a++ < 200} fred()
 
   Deep recursion on anonymous subroutine       [Perl_sub_crush_depth]
-     $a = sub { &$a if $a++ < 200} &$a
+    $a = sub { &$a if $a++ < 200} &$a
 
+  Possible Y2K bug: about to append an integer to '19' [pp_concat]
+    $x     = "19$yy\n";
 
 __END__
 # pp_hot.c [pp_print]
@@ -189,4 +191,25 @@ $b = sub
 
 &$b ;
 EXPECT
-
+########
+# pp_hot.c [pp_concat]
+use warnings 'misc';
+use Config;
+BEGIN {
+    unless ($Config{ccflags} =~ /Y2KWARN/) {
+       print "SKIPPED\n# perl not built with -DPERL_Y2KWARN";
+       exit 0;
+    }
+}
+my $x;
+my $yy = 78;
+$x     = "19$yy\n";
+$x     = "19" . $yy . "\n";
+$x     = "319$yy\n";
+$x     = "319" . $yy . "\n";
+no warnings 'misc';
+$x     = "19$yy\n";
+$x     = "19" . $yy . "\n";
+EXPECT
+Possible Y2K bug: about to append an integer to '19' at - line 12.
+Possible Y2K bug: about to append an integer to '19' at - line 13.
index bac2c42..c02ff01 100644 (file)
@@ -32,6 +32,8 @@
 
   Undefined value assigned to typeglob
 
+  Possible Y2K bug: %d format string following '19'
+
   Reference is already weak                    [Perl_sv_rvweaken] <<TODO
 
   Mandatory Warnings
@@ -187,7 +189,7 @@ my $b = 1 + $a;
 no warnings 'numeric' ;
 my $c = 1 + $a;
 EXPECT
-Argument "def" isn't numeric in add at - line 6.
+Argument "def" isn't numeric in addition (+) at - line 6.
 ########
 # sv.c
 use warnings 'numeric' ;
@@ -195,7 +197,7 @@ my $x = 1 + "def" ;
 no warnings 'numeric' ;
 my $z = 1 + "def" ;
 EXPECT
-Argument "def" isn't numeric in add at - line 3.
+Argument "def" isn't numeric in addition (+) at - line 3.
 ########
 # sv.c
 use warnings 'numeric' ;
@@ -204,7 +206,7 @@ my $x = 1 + $a ;
 no warnings 'numeric' ;
 my $y = 1 + $a ;
 EXPECT
-Argument "def" isn't numeric in add at - line 4.
+Argument "def" isn't numeric in addition (+) at - line 4.
 ########
 # sv.c
 use warnings 'numeric' ; use integer ;
@@ -213,7 +215,7 @@ my $x = 1 + $a ;
 no warnings 'numeric' ;
 my $z = 1 + $a ;
 EXPECT
-Argument "def" isn't numeric in i_add at - line 4.
+Argument "def" isn't numeric in integer addition (+) at - line 4.
 ########
 # sv.c
 use warnings 'numeric' ;
@@ -221,7 +223,7 @@ my $x = 1 & "def" ;
 no warnings 'numeric' ;
 my $z = 1 & "def" ;
 EXPECT
-Argument "def" isn't numeric in bit_and at - line 3.
+Argument "def" isn't numeric in bitwise and (&) at - line 3.
 ########
 # sv.c
 use warnings 'redefine' ;
@@ -280,3 +282,37 @@ EXPECT
 \xff will produce malformed UTF-8 character; use \x{ff} for that at - line 6.
 Malformed UTF-8 character at - line 6.
 Malformed UTF-8 character at - line 10.
+########
+# sv.c
+use warnings 'misc';
+use Config;
+BEGIN {
+    unless ($Config{ccflags} =~ /Y2KWARN/) {
+       print "SKIPPED\n# perl not built with -DPERL_Y2KWARN";
+       exit 0;
+    }
+    $|=1;
+}
+my $x;
+my $yy = 78;
+$x     = printf  "19%02d\n", $yy;
+$x     = sprintf "#19%02d\n", $yy;
+$x     = printf  " 19%02d\n", 78;
+$x     = sprintf "19%02d\n", 78;
+$x     = printf  "319%02d\n", $yy;
+$x     = sprintf "319%02d\n", $yy;
+no warnings 'misc';
+$x     = printf  "19%02d\n", $yy;
+$x     = sprintf "19%02d\n", $yy;
+$x     = printf  "19%02d\n", 78;
+$x     = sprintf "19%02d\n", 78;
+EXPECT
+Possible Y2K bug: %d format string following '19' at - line 16.
+Possible Y2K bug: %d format string following '19' at - line 13.
+1978
+Possible Y2K bug: %d format string following '19' at - line 14.
+Possible Y2K bug: %d format string following '19' at - line 15.
+ 1978
+31978
+1978
+1978
index 4434b5d..06bcb5b 100644 (file)
--- a/thrdvar.h
+++ b/thrdvar.h
@@ -119,6 +119,10 @@ PERLVAR(Tfirstgv,  GV *)           /* $a */
 PERLVAR(Tsecondgv,     GV *)           /* $b */
 PERLVAR(Tsortcxix,     I32)            /* from pp_ctl.c */
 
+/* float buffer */
+PERLVAR(Tefloatbuf,    char*)
+PERLVAR(Tefloatsize,   STRLEN)
+
 /* regex stuff */
 
 PERLVAR(Tscreamfirst,  I32 *)
diff --git a/toke.c b/toke.c
index df965a3..3c098a2 100644 (file)
--- a/toke.c
+++ b/toke.c
@@ -213,8 +213,12 @@ S_no_op(pTHX_ char *what, char *s)
     char *oldbp = PL_bufptr;
     bool is_first = (PL_oldbufptr == PL_linestart);
 
-    assert(s >= oldbp);
-    PL_bufptr = s;
+    if (!s)
+       s = oldbp;
+    else {
+       assert(s >= oldbp);
+       PL_bufptr = s;
+    }
     yywarn(Perl_form(aTHX_ "%s found where operator expected", what));
     if (is_first)
        Perl_warn(aTHX_ "\t(Missing semicolon on previous line?)\n");
diff --git a/utf8.h b/utf8.h
index 698c687..e71264c 100644 (file)
--- a/utf8.h
+++ b/utf8.h
@@ -27,5 +27,6 @@ EXTCONST unsigned char PL_utf8skip[];
 END_EXTERN_C
 
 #define IN_UTF8 (PL_curcop->op_private & HINT_UTF8)
+#define IN_BYTE (PL_curcop->op_private & HINT_BYTE)
 
 #define UTF8SKIP(s) PL_utf8skip[*(U8*)s]
index 7d86f24..3f91940 100644 (file)
@@ -59,8 +59,8 @@ OBJVAL = $(MMS$TARGET_NAME)$(O)
 PERL_VERSION = ~PV~
 
 .ifdef MALLOC
-MALLOC_O = ,malloc$(O)
-MALLOC_C = ,malloc$(C)
+MALLOC_O = malloc$(O)
+MALLOC_C = malloc$(C)
 .endif
 
 .ifdef DECC_SOCKETS
@@ -176,17 +176,15 @@ SOCKLIB = SocketShr/Share
 # these files in the current default directory.
 SOCKC = sockadapt.c
 SOCKH = sockadapt.h
-SOCKCLIS = ,$(SOCKC)
-SOCKHLIS = ,$(SOCKH)
-SOCKOBJ = ,sockadapt$(O)
+SOCKARCH = $(ARCHCORE)$(SOCKH)
+SOCKOBJ = sockadapt$(O)
 SOCKPM = [.lib]Socket.pm
 .else
 SOCKDEF =
 SOCKLIB =
 SOCKC =
 SOCKH =
-SOCKCLIS =
-SOCKHLIS =
+SOCKARCH =
 SOCKOBJ =
 SOCKPM =
 .endif
@@ -278,44 +276,42 @@ FULLLIBS2 = $(LIBS2)|$(THRLIBS1)|$(THRLIBS2)
 
 #### End of system configuration section. ####
 
-
-h1 = EXTERN.h, INTERN.h, XSUB.h, av.h, config.h, cop.h, cv.h
-h2 = embed.h, form.h, gv.h, handy.h, hv.h, keywords.h, mg.h, op.h, thread.h
-h3 = opcode.h, patchlevel.h, perl.h, perly.h, pp.h, proto.h, regcomp.h
-h4 = regexp.h, scope.h, sv.h, vmsish.h, util.h, perlsdio.h, perlio.h
-h5 = embedvar.h, intrpvar.h, perlvars.h, thrdvar.h, iperlsys.h
-h6 = pp_proto.h, regnodes.h, warning.h
-h = $(h1), $(h2), $(h3), $(h4), $(h5), $(h6) $(SOCKHLIS) $(THREADH)
-
-c1 = av.c, scope.c, op.c, doop.c, doio.c, dump.c, hv.c, mg.c, universal.c, perlio.c, utf8.c
-c2 = perl.c, perly.c, pp.c, pp_hot.c, pp_ctl.c, pp_sys.c, regcomp.c, regexec.c $(MALLOC_C)
-c3 = gv.c, sv.c, taint.c, toke.c, utf8.c, util.c, deb.c, run.c, globals.c, vms.c $(SOCKCLIS)
-
-c = $(c1), $(c2), $(c3), miniperlmain.c, perlmain.c
-
-obj1 = perl$(O), gv$(O), toke$(O), perly$(O), op$(O), regcomp$(O), dump$(O), utf8$(O), util$(O), mg$(O), perlio$(O) $(MALLOC_O)
-obj2 = hv$(O), av$(O), run$(O), pp_hot$(O), sv$(O), pp$(O), scope$(O), pp_ctl$(O), pp_sys$(O), utf8$(O)
-obj3 = doop$(O), doio$(O), regexec$(O), taint$(O), deb$(O), universal$(O), globals$(O), vms$(O) $(SOCKOBJ)
-
-obj = $(obj1), $(obj2), $(obj3)
-
-ac1 = $(ARCHCORE)EXTERN.h $(ARCHCORE)INTERN.h  $(ARCHCORE)XSUB.h $(ARCHCORE)av.h
-ac2 = $(ARCHCORE)config.h $(ARCHCORE)cop.h $(ARCHCORE)cv.h $(ARCHCORE)embed.h
-ac3 = $(ARCHCORE)form.h $(ARCHCORE)gv.h $(ARCHCORE)handy.h $(ARCHCORE)hv.h $(ARCHCORE)utf8.h
-ac4 = $(ARCHCORE)keywords.h $(ARCHCORE)mg.h $(ARCHCORE)op.h $(ARCHCORE)opcode.h
-ac5 = $(ARCHCORE)patchlevel.h $(ARCHCORE)perl.h $(ARCHCORE)perly.h $(ARCHCORE)thread.h $(ARCHCORE)iperlsys.h
-ac6 = $(ARCHCORE)pp.h $(ARCHCORE)pp_proto.h $(ARCHCORE)proto.h $(ARCHCORE)regcomp.h $(ARCHCORE)perlsdio.h $(ARCHCORE)perlio.h
-ac7 = $(ARCHCORE)regexp.h $(ARCHCORE)scope.h $(ARCHCORE)sv.h $(ARCHCORE)util.h
-ac8  = $(ARCHCORE)embedvar.h $(ARCHCORE)intrpvar.h $(ARCHCORE)perlvars.h $(ARCHCORE)thrdvar.h
-ac9  = $(ARCHCORE)vmsish.h $(ARCHCORE)warning.h $(ARCHCORE)$(DBG)libperl$(OLB) $(ARCHCORE)perlshr_attr.opt
-ac10 = $(ARCHCORE)$(DBG)perlshr_bld.opt  
-ac11 = $(ARCHCORE)cc_runtime.h
-.ifdef SOCKET
-acs = $(ARCHCORE)$(SOCKH)
-.else
-acs =
-.endif
-
+c0 = $(MALLOC_C) $(SOCKC) av.c deb.c doio.c doop.c dump.c globals.c gv.c
+c1 = hv.c mg.c miniperlmain.c op.c perl.c perlio.c perly.c pp.c pp_ctl.c
+c2 = pp_hot.c pp_sys.c regcomp.c regexec.c run.c scope.c sockadapt.c sv.c
+c3 = taint.c toke.c universal.c utf8.c util.c vms.c
+c = $(c0) $(c1) $(c2) $(c3)
+
+obj0 = $(MALLOC_O) $(SOCKOBJ) av$(O) deb$(O) doio$(O) doop$(O) dump$(O)
+obj1 = globals$(O) gv$(O) hv$(O) mg$(O) miniperlmain$(O) op$(O) perl$(O)
+obj2 = perlio$(O) perly$(O) pp$(O) pp_ctl$(O) pp_hot$(O) pp_sys$(O) 
+obj3 = regcomp$(O) regexec$(O) run$(O) scope$(O) sockadapt$(O) sv$(O)
+obj4 = taint$(O) toke$(O) universal$(O) utf8$(O) util$(O) vms$(O)
+obj = $(obj0) $(obj1) $(obj2) $(obj3) $(obj4)
+
+h0 = $(SOCKH) av.h cc_runtime.h config.h cop.h cv.h embed.h embedvar.h
+h1 = extern.h $(THREADH) form.h gv.h handy.h hv.h intern.h intrpvar.h
+h2 = iperlsys.h keywords.h mg.h nostdio.h op.h opcode.h patchlevel.h perl.h
+h3 = perlio.h perlsdio.h perlvars.h perly.h pp.h pp_proto.h proto.h
+h4 = regcomp.h regexp.h regnodes.h scope.h sv.h thrdvar.h
+h5 = thread.h utf8.h util.h vmsish.h warnings.h xsub.h opnames.h
+h = $(h0) $(h1) $(h2) $(h3) $(h4) $(h5)
+
+ac0 = $(SOCKARCH) $(ARCHCORE)av.h $(ARCHCORE)cc_runtime.h
+ac1 = $(ARCHCORE)config.h $(ARCHCORE)cop.h $(ARCHCORE)cv.h $(ARCHCORE)embed.h
+ac2 = $(ARCHCORE)embedvar.h $(ARCHCORE)extern.h $(acth)
+ac3 = $(ARCHCORE)form.h $(ARCHCORE)gv.h $(ARCHCORE)handy.h $(ARCHCORE)hv.h
+ac4 = $(ARCHCORE)intern.h $(ARCHCORE)intrpvar.h $(ARCHCORE)iperlsys.h
+ac5 = $(ARCHCORE)keywords.h $(ARCHCORE)mg.h $(ARCHCORE)nostdio.h
+ac6 = $(ARCHCORE)op.h $(ARCHCORE)opcode.h $(ARCHCORE)patchlevel.h
+ac7 = $(ARCHCORE)perl.h $(ARCHCORE)perlio.h $(ARCHCORE)perlsdio.h
+ac8 = $(ARCHCORE)perlvars.h $(ARCHCORE)perly.h $(ARCHCORE)pp.h
+ac9 = $(ARCHCORE)pp_proto.h $(ARCHCORE)proto.h $(ARCHCORE)regcomp.h
+ac10 = $(ARCHCORE)regexp.h $(ARCHCORE)regnodes.h $(ARCHCORE)scope.h
+ac11 = $(ARCHCORE)sv.h $(ARCHCORE)thrdvar.h $(ARCHCORE)opnames.h
+ac12 = $(ARCHCORE)thread.h $(ARCHCORE)utf8.h $(ARCHCORE)util.h
+ac13 = $(ARCHCORE)vmsish.h $(ARCHCORE)warnings.h $(ARCHCORE)xsub.h
+ac = $(ac0) $(ac1) $(ac2) $(ac3) $(ac4) $(ac5) $(ac6) $(ac7) $(ac8) $(ac9) $(ac10) $(ac11) $(ac12) $(ac13)
 
 CRTL = []crtl.opt
 CRTLOPTS =,$(CRTL)/Options
@@ -395,7 +391,6 @@ $(DBG)libperl$(OLB) : $(obj)
 perlmain.c : miniperlmain.c $(MINIPERL_EXE) [.vms]writemain.pl
        $(MINIPERL) [.VMS]Writemain.pl "$(EXT)"
 
-
 .ifdef __DEBUG__
 # Link an extra perl that doesn't invoke the debugger
 perl : $(DBG)perl$(E)
@@ -528,7 +523,7 @@ dynext : $(LIBPREREQ) $(DBG)perlshr$(E)
 # Accomodate buggy cpp in some version of DECC, which chokes on illegal
 # filespec "y.tab.c", and broken gcc cpp, which doesn't start #include ""
 # search in same dir as source file
-[.x2p]a2p$(O) : [.x2p]a2p.c $(MINIPERL_EXE)
+[.x2p]a2p$(O) : [.x2p]a2p.c [.x2p]a2py.c [.x2p]INTERN.h [.x2p]a2p.h [.x2p]hash.h [.x2p]str.h config.h handy.h vmsish.h $(SOCKH) $(MINIPERL_EXE)
        $(MINIPERL) -pe "s/^#line\s+(\d+)\s+\Q""y.tab.c""/#line $1 ""y_tab.c""/;" $(MMS$SOURCE) >$(MMS$TARGET_NAME)_vms.c
        $(CC) $(X2PCFLAGS) /Object=$(MMS$TARGET)/Include=([.x2p],[]) $(MMS$TARGET_NAME)_vms.c
        Delete/Log/NoConfirm $(MMS$TARGET_NAME)_vms.c;
@@ -738,7 +733,7 @@ printconfig :
 
 vmsish.h : $(SOCKH)
 
-$(SOCKOBJ) : $(SOCKC) EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h perlio.h
+$(SOCKOBJ) : $(SOCKC) EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h opnames.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h perlio.h
 
 $(SOCKC) : [.vms]$(SOCKC)
        Copy/Log/NoConfirm [.vms]$(SOCKC) []$(SOCKC)
@@ -750,10 +745,20 @@ $(SOCKH) : [.vms]$(SOCKH)
        Copy/Log/NoConfirm $(MMS$SOURCE) $(MMS$TARGET)
 .endif
 
-# The following three header files are generated automatically
-#      keywords.h :    keywords.pl
-#      opcode.h :      opcode.pl
-#      embed.h :       embed.pl global.sym interp.sym
+# The following files are generated automatically
+#      keywords.h:     keywords.pl
+#      opcode.h:       opcode.pl
+#      opnames.h:      opcode.pl
+#      pp_proto.h:     opcode.pl
+#      pp.sym:         opcode.pl
+#      embed.h:        embed.pl  [* needs pp.sym generated by opcode.pl! *]
+#      embedvar.h:     embed.pl  [* needs pp.sym generated by opcode.pl! *]
+#      ext/ByteLoader/byterun.h:       bytecode.pl
+#      ext/ByteLoader/byterun.c:       bytecode.pl
+#      ext/B/Asmdata.pm:       bytecode.pl
+#      global.sym:     embed.pl
+#      regnodes.h:     regcomp.pl
+#      warnings.h lib/warnings.pm:     warnings.pl
 # The correct versions should be already supplied with the perl kit,
 # in case you don't have perl available.
 # To force them to run, type
@@ -764,7 +769,7 @@ regen_headers :
        $(INSTPERL) embed.pl
        $(INSTPERL) bytecode.pl
        $(INSTPERL) regcomp.pl
-       $(INSTPERL) warning.pl
+       $(INSTPERL) warnings.pl
 
 # VMS uses modified perly.[ch] with tags for globaldefs if using DEC compiler
 perly.c : [.vms]perly_c.vms
@@ -806,16 +811,15 @@ archify : all
 
 # CORE subset for MakeMaker, so we can build Perl without sources
 # Should move to VMS installperl when we get one
-$(ARCHCORE)EXTERN.h : EXTERN.h
-       @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
-       Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
-$(ARCHCORE)INTERN.h : INTERN.h
+.ifdef SOCKET
+$(ARCHCORE)$(sockh) : $(sockh)
        @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
-$(ARCHCORE)XSUB.h : XSUB.h
+.endif
+$(ARCHCORE)av.h : av.h
        @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
-$(ARCHCORE)av.h : av.h
+$(ARCHCORE)cc_runtime.h : cc_runtime.h
        @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
 $(ARCHCORE)config.h : config.h
@@ -824,9 +828,6 @@ $(ARCHCORE)config.h : config.h
 $(ARCHCORE)cop.h : cop.h
        @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
-$(ARCHCORE)cc_runtime.h : cc_runtime.h
-       @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
-       Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
 $(ARCHCORE)cv.h : cv.h
        @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
@@ -836,6 +837,9 @@ $(ARCHCORE)embed.h : embed.h
 $(ARCHCORE)embedvar.h : embedvar.h
        @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
+$(ARCHCORE)extern.h : extern.h
+       @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
+       Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
 .ifdef FAKETHREADED
 $(ARCHCORE)fakethr.h : fakethr.h
        @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
@@ -853,36 +857,45 @@ $(ARCHCORE)handy.h : handy.h
 $(ARCHCORE)hv.h : hv.h
        @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
+$(ARCHCORE)intern.h : intern.h
+       @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
+       Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
 $(ARCHCORE)intrpvar.h : intrpvar.h
        @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
+$(ARCHCORE)iperlsys.h : iperlsys.h
+       @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
+       Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
 $(ARCHCORE)keywords.h : keywords.h
        @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
 $(ARCHCORE)mg.h : mg.h
        @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
+$(ARCHCORE)nostdio.h : nostdio.h
+       @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
+       Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
 $(ARCHCORE)op.h : op.h
        @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
 $(ARCHCORE)opcode.h : opcode.h
        @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
+$(ARCHCORE)opnames.h : opnames.h
+       @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
+       Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
 $(ARCHCORE)patchlevel.h : patchlevel.h
        @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
 $(ARCHCORE)perl.h : perl.h
        @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
-$(ARCHCORE)iperlsys.h : iperlsys.h
+$(ARCHCORE)perlio.h : perlio.h
        @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
 $(ARCHCORE)perlsdio.h : perlsdio.h
        @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
-$(ARCHCORE)perlio.h : perlio.h
-       @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
-       Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
 $(ARCHCORE)perlvars.h : perlvars.h
        @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
@@ -904,6 +917,9 @@ $(ARCHCORE)regcomp.h : regcomp.h
 $(ARCHCORE)regexp.h : regexp.h
        @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
+$(ARCHCORE)regnodes.h : regnodes.h
+       @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
+       Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
 $(ARCHCORE)scope.h : scope.h
        @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
@@ -916,23 +932,21 @@ $(ARCHCORE)thrdvar.h : thrdvar.h
 $(ARCHCORE)thread.h : thread.h
        @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
-$(ARCHCORE)util.h : util.h
+$(ARCHCORE)utf8.h : utf8.h
        @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
-$(ARCHCORE)utf8.h : utf8.h
+$(ARCHCORE)util.h : util.h
        @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
 $(ARCHCORE)vmsish.h : vmsish.h
        @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
-$(ARCHCORE)warning.h : warning.h
+$(ARCHCORE)warnings.h : warnings.h
        @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
-.ifdef SOCKET
-$(ARCHCORE)$(SOCKH) : $(SOCKH)
+$(ARCHCORE)xsub.h : xsub.h
        @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
-.endif
 $(ARCHCORE)$(DBG)libperl$(OLB) : $(DBG)libperl$(OLB) $(DBG)perlshr_xtras.ts
        @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
@@ -953,112 +967,81 @@ $(ARCHAUTO)time.stamp :
 #util$(O) : util.c
 #      $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 # AUTOMATICALLY GENERATED MAKE DEPENDENCIES--PUT NOTHING BELOW THIS LINE
-av$(O) : av.c EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h iperlsys.h pp_proto.h warning.h
+.ifdef SOCKET
+$(SOCKOBJ) : $(SOCKC) extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-
-deb$(O) : deb.c EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h iperlsys.h pp_proto.h warning.h
+.endif
+av$(O) : av.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-
-doio$(O) : doio.c EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h iperlsys.h pp_proto.h warning.h
+deb$(O) : deb.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-
-doop$(O) : doop.c EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h iperlsys.h pp_proto.h warning.h
+doio$(O) : doio.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-
-dump$(O) : dump.c EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h iperlsys.h pp_proto.h warning.h
+doop$(O) : doop.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-
-globals$(O) : globals.c INTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h iperlsys.h pp_proto.h warning.h
+dump$(O) : dump.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h regcomp.h regnodes.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-
-gv$(O) : gv.c EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h iperlsys.h pp_proto.h warning.h
+globals$(O) : globals.c intern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-
-hv$(O) : hv.c EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h iperlsys.h pp_proto.h warning.h
+gv$(O) : gv.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-
-malloc$(O) : malloc.c EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h iperlsys.h pp_proto.h warning.h
+hv$(O) : hv.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-
-mg$(O) : mg.c EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h iperlsys.h pp_proto.h warning.h
+mg$(O) : mg.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-
-miniperlmain$(O) : miniperlmain.c EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h iperlsys.h pp_proto.h warning.h
+miniperlmain$(O) : miniperlmain.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-
-op$(O) : op.c EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h iperlsys.h pp_proto.h warning.h
+op$(O) : op.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-
-perl$(O) : perl.c EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h patchlevel.h iperlsys.h pp_proto.h warning.h
+perl$(O) : perl.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h intrpvar.h thrdvar.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-
-perlio$(O) : perlio.c config.h EXTERN.h perl.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h iperlsys.h pp_proto.h warning.h
+perlio$(O) : perlio.c config.h extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-
-perlmain$(O) : perlmain.c EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h iperlsys.h pp_proto.h warning.h
+perlmain$(O) : perlmain.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-
-perly$(O) : perly.c EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h iperlsys.h pp_proto.h warning.h
+perly$(O) : perly.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-
-pp$(O) : pp.c EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h iperlsys.h pp_proto.h warning.h
+pp$(O) : pp.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-
-pp_ctl$(O) : pp_ctl.c EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h iperlsys.h pp_proto.h warning.h
+pp_ctl$(O) : pp_ctl.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-
-pp_hot$(O) : pp_hot.c EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h iperlsys.h pp_proto.h warning.h
+pp_hot$(O) : pp_hot.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-
-pp_sys$(O) : pp_sys.c EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h iperlsys.h pp_proto.h warning.h
+pp_sys$(O) : pp_sys.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-
-regcomp$(O) : regcomp.c EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h INTERN.h regcomp.h regnodes.h iperlsys.h pp_proto.h warning.h
+regcomp$(O) : regcomp.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h intern.h regcomp.h regnodes.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-
-regexec$(O) : regexec.c EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h regcomp.h regnodes.h iperlsys.h pp_proto.h warning.h
+regexec$(O) : regexec.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h regcomp.h regnodes.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-
-run$(O) : run.c EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h iperlsys.h pp_proto.h warning.h
+run$(O) : run.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-
-scope$(O) : scope.c EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h iperlsys.h pp_proto.h warning.h
+scope$(O) : scope.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-
-sv$(O) : sv.c EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h iperlsys.h pp_proto.h warning.h
+sv$(O) : sv.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-
-taint$(O) : taint.c EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h iperlsys.h pp_proto.h warning.h
+taint$(O) : taint.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-
-toke$(O) : toke.c EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h keywords.h iperlsys.h pp_proto.h warning.h
+toke$(O) : toke.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h keywords.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-
-universal$(O) : universal.c EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h XSUB.h iperlsys.h pp_proto.h warning.h
+universal$(O) : universal.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h xsub.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-
-utf8$(O) : utf8.c EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h iperlsys.h pp_proto.h warning.h
+utf8$(O) : utf8.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-
-util$(O) : util.c EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h iperlsys.h pp_proto.h warning.h
+util$(O) : util.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-
-vms$(O) : vms.c EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h XSUB.h iperlsys.h pp_proto.h warning.h
+vms$(O) : vms.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h xsub.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 
-#[.x2p]a2p$(O) : [.x2p]a2p.c [.x2p]a2py.c [.x2p]INTERN.h [.x2p]a2p.h [.x2p]hash.h [.x2p]str.h config.h handy.h
-#      $(CC) $(X2PCFLAGS) $(MMS$SOURCE)
-
-[.x2p]hash$(O) : [.x2p]hash.c [.x2p]EXTERN.h [.x2p]a2p.h [.x2p]hash.h [.x2p]str.h [.x2p]util.h config.h handy.h
+[.x2p]hash$(O) : [.x2p]hash.c [.x2p]EXTERN.h [.x2p]a2p.h [.x2p]hash.h [.x2p]str.h [.x2p]util.h config.h handy.h vmsish.h $(SOCKH)
        $(CC) $(X2PCFLAGS) $(MMS$SOURCE)
 
-[.x2p]str$(O) : [.x2p]str.c [.x2p]EXTERN.h [.x2p]a2p.h [.x2p]hash.h [.x2p]str.h [.x2p]util.h config.h handy.h
+[.x2p]str$(O) : [.x2p]str.c [.x2p]EXTERN.h [.x2p]a2p.h [.x2p]hash.h [.x2p]str.h [.x2p]util.h config.h handy.h vmsish.h $(SOCKH)
        $(CC) $(X2PCFLAGS) $(MMS$SOURCE)
 
-[.x2p]util$(O) : [.x2p]util.c [.x2p]EXTERN.h [.x2p]INTERN.h [.x2p]a2p.h [.x2p]hash.h [.x2p]str.h [.x2p]util.h config.h handy.h
+[.x2p]util$(O) : [.x2p]util.c [.x2p]EXTERN.h [.x2p]INTERN.h [.x2p]a2p.h [.x2p]hash.h [.x2p]str.h [.x2p]util.h config.h handy.h vmsish.h $(SOCKH)
        $(CC) $(X2PCFLAGS) $(MMS$SOURCE)
 
-[.x2p]walk$(O) : [.x2p]walk.c [.x2p]EXTERN.h [.x2p]a2p.h [.x2p]hash.h [.x2p]str.h [.x2p]util.h config.h handy.h
+[.x2p]walk$(O) : [.x2p]walk.c [.x2p]EXTERN.h [.x2p]a2p.h [.x2p]hash.h [.x2p]str.h [.x2p]util.h config.h handy.h vmsish.h $(SOCKH)
        $(CC) $(X2PCFLAGS) $(MMS$SOURCE)
 
 # End of automatically generated make dependencies
@@ -1121,7 +1104,9 @@ clean : tidy
        - If F$Search(F$Parse("Sys$Disk:[]","$(SOCKH)")).nes."" Then Delete/NoConfirm/Log $(SOCKH);*
        - If F$Search(F$Parse("Sys$Disk:[]","$(SOCKC)")).nes."" Then Delete/NoConfirm/Log $(SOCKC);*
        - If F$Search("perly.c").nes."" Then Delete/NoConfirm/Log perly.c;*
+       - Copy [.vms]perly_c.vms []perly.c
        - If F$Search("perly.h").nes."" Then Delete/NoConfirm/Log perly.h;*
+       - Copy [.vms]perly_h.vms []perly.h
        - If F$Search("VMSish.H").nes."" Then Delete/NoConfirm/Log VMSish.H;*
        - If F$Search("VMS.C")   .nes."" Then Delete/NoConfirm/Log VMS.C;*
        - If F$Search("Perlmain.C")   .nes."" Then Delete/NoConfirm/Log Perlmain.C;*
@@ -1129,6 +1114,7 @@ clean : tidy
        - If F$Search("*.TS").nes."" Then Delete/NoConfirm/Log *.TS;*
        - If F$Search("[.Ext.DynaLoader]DL_VMS$(O)").nes."" Then Delete/NoConfirm/Log [.Ext.DynaLoader]DL_VMS$(O);*
        - If F$Search("[.Ext.DynaLoader]DL_VMS.C").nes."" Then Delete/NoConfirm/Log [.Ext.DynaLoader]DL_VMS.C;*
+       - If F$Search("[.Ext.DynaLoader]DynaLoader.pm").nes."" Then Delete/NoConfirm/Log [.Ext.DynaLoader]DynaLoader.pm;*
        - If F$Search("[.Ext.Socket]Socket$(O)").nes."" Then Delete/NoConfirm/Log [.Ext.Socket]Socket$(O);*
        - If F$Search("[.Ext.Socket]Socket.C").nes."" Then Delete/NoConfirm/Log [.Ext.Socket]Socket.C;*
        - If F$Search("[.VMS.Ext...]*.C").nes."" Then Delete/NoConfirm/Log [.VMS.Ext...]*.C;*
@@ -1141,6 +1127,7 @@ realclean : clean
        - If F$Search("*.Opt").nes."" Then Delete/NoConfirm/Log *.Opt;*
        - If F$Search("Config.H").nes."" Then Delete/NoConfirm/Log Config.H;*
        - If F$Search("Config.SH").nes."" Then Delete/NoConfirm/Log Config.SH;*
+       - $(MINIPERL) -e "use File::Path; rmtree(\@ARGV,1,0);" config
        - If F$Search("Descrip.MMS").nes."" Then Delete/NoConfirm/Log Descrip.MMS;*
        - If F$Search("Build_Ext.Com").nes."" Then Delete/NoConfirm/Log Build_Ext.Com;*
        - $(MINIPERL) -e "use File::Path; rmtree(['lib/auto','lib/VMS','lib/$(ARCH)'],1,0);"
@@ -1148,6 +1135,7 @@ realclean : clean
        - If F$Search("[.Lib]Socket.pm").nes."" Then Delete/NoConfirm/Log [.Lib]Socket.pm;*
        - If F$Search("[.Lib]Config.pm").nes."" Then Delete/NoConfirm/Log [.Lib]Config.pm;*
        - If F$Search("[.Lib]*.com").nes."" Then Delete/NoConfirm/Log [.Lib]*.com;*
+       - If F$Search("[.pod]*.com").nes."" Then Delete/NoConfirm/Log [.pod]*.com;*
        - If F$Search("[.utils]*.com").nes."" Then Delete/NoConfirm/Log [.utils]*.com;*
        - If F$Search("[.x2p]*.com").nes."" Then Delete/NoConfirm/Log [.x2p]*.com;*
        - If F$Search("$(ARCHDIR)Config.pm").nes."" Then Delete/NoConfirm/Log $(ARCHDIR)Config.pm;*
@@ -1158,6 +1146,7 @@ realclean : clean
        - If F$Search("[.lib.pod]pod2*.com").nes."" Then Delete/NoConfirm/Log [.lib.pod]pod2*.com;*
        - If F$Search("[.t.lib]vms*.t").nes."" Then Delete/NoConfirm/Log [.t.lib]vms*.t;*
        - If F$Search("[...]*$(E)").nes."" Then Delete/NoConfirm/Log [...]*$(E);*
+       - If F$Search("[.vms]Perl_Setup.Com").nes."" Then Delete/NoConfirm/Log [.vms]Perl_Setup.Com;*
 
 cleansrc : clean
 !GROK!THIS!
index ef76a68..caba95c 100644 (file)
@@ -190,7 +190,7 @@ sub scan_func {
   my($line) = @_;
 
   print "\tchecking for global routine\n" if $debug > 1;
-  if ( $line =~ /(\w+)\s+\(/ ) {
+  if ( $line =~ /(\w+)\s*\(/ ) {
     print "\troutine name is \\$1\\\n" if $debug > 1;
     if ($1 eq 'main' || $1 eq 'perl_init_ext') {
       print "\tskipped\n" if $debug > 1;
@@ -199,13 +199,6 @@ sub scan_func {
   }
 }
 
-open FUNCS, "LIBR/CROSS=SYMB LIBPERL.OLB/OUT=SYS\$OUTPUT |";
-foreach (<FUNCS>) {
-    chomp;
-    next unless /(perl_\w+)/i;
-    $fcns{uc($1)}++;
-}
-
 # Go add some right up front if we need 'em
 if ($use_mymalloc) {
   $fcns{uc('Perl_malloc')}++;
@@ -214,8 +207,6 @@ if ($use_mymalloc) {
   $fcns{uc('Perl_mfree')}++;
 }
 
-delete $fcns{PERL_DESTRUCT_LEVEL} if exists $fcns{PERL_DESTRUCT_LEVEL};
-
 $used_expectation_enum = $used_opcode_enum = 0; # avoid warnings
 if ($docc) {
   open(CPP,"${cc_cmd}/NoObj/PreProc=Sys\$Output ${dir}perl.h|")
@@ -318,21 +309,6 @@ if ($isvax) {
   print MAR "\t.title perlshr_gbl$marord\n";
 }
 
-($ver, $sub) = $] =~ /\.(\d\d\d)(\d\d)/;
-$gsmatch = ($sub >= 50) ? "equal" : "lequal";  # Force an equal match for
-                                               # dev, but be more forgiving
-                                               # for releases
-
-# Build up a major ID. Since it can only be 8 bits, we encode the version
-# number in the top four bits and use the bottom four for build options
-# that'll cause incompatibilities
-$ver *=16;
-$ver += 8 if $debugging_enabled;       # If DEBUGGING is set
-$ver += 4 if $use_threads;             # if we're threaded
-$ver += 2 if $use_mymalloc;            # if we're using perl's malloc
-
-print OPTBLD "GSMATCH=$gsmatch,$ver,$sub\n";
-
 unless ($isgcc) {
   print OPTBLD "PSECT_ATTR=\$GLOBAL_RO_VARS,PIC,NOEXE,RD,NOWRT,SHR\n";
   print OPTBLD "PSECT_ATTR=\$GLOBAL_RW_VARS,PIC,NOEXE,RD,WRT,NOSHR\n";
@@ -418,9 +394,26 @@ if ($isvax) {
 # Initial hack to permit building of compatible shareable images for a
 # given version of Perl.
 if ($ENV{PERLSHR_USE_GSMATCH}) {
-  my $major = int($] * 1000)                        & 0xFF;  # range 0..255
-  my $minor = int(($] * 1000 - $major) * 100 + 0.5) & 0xFF;  # range 0..255
-  print OPTBLD "GSMATCH=LEQUAL,$major,$minor\n";
+  if ($ENV{PERLSHR_USE_GSMATCH} eq 'INCLUDE_COMPILE_OPTIONS') {
+    # Build up a major ID. Since it can only be 8 bits, we encode the version
+    # number in the top four bits and use the bottom four for build options
+    # that'll cause incompatibilities
+    ($ver, $sub) = $] =~ /\.(\d\d\d)(\d\d)/;
+    $gsmatch = ($sub >= 50) ? "equal" : "lequal"; # Force an equal match for
+                                                 # dev, but be more forgiving
+                                                 # for releases
+
+    $ver *=16;
+    $ver += 8 if $debugging_enabled;   # If DEBUGGING is set
+    $ver += 4 if $use_threads;         # if we're threaded
+    $ver += 2 if $use_mymalloc;                # if we're using perl's malloc
+    print OPTBLD "GSMATCH=$gsmatch,$ver,$sub\n";
+  }
+  else {
+    my $major = int($] * 1000)                        & 0xFF;  # range 0..255
+    my $minor = int(($] * 1000 - $major) * 100 + 0.5) & 0xFF;  # range 0..255
+    print OPTBLD "GSMATCH=LEQUAL,$major,$minor\n";
+  }
   print OPTBLD 'CLUSTER=$$TRANSFER_VECTOR,,',
                map(",$_$objsuffix",@symfiles), "\n";
 }
index ad94f1e..08fa561 100644 (file)
@@ -48,7 +48,7 @@ typedef union {
 #define YYLEX_PARAM (&yychar)
 #endif
 
-#line 52 "perly.c"
+#line 51 "perly.c"
 #define YYERRCODE 256
 static short yylhs[] = {                                        -1,
    50,    0,    8,    6,    9,    7,   10,   10,   10,   11,
@@ -1368,7 +1368,7 @@ static char *yyrule[] = {
 #endif
 #define yyparse() Perl_yyparse(pTHX)
 
-#line 1372 "perly.c"
+#line 1371 "perly.c"
 #define YYABORT goto yyabort
 #define YYACCEPT goto yyaccept
 #define YYERROR goto yyerrlab
@@ -2410,7 +2410,7 @@ case 193:
 #line 723 "perly.y"
 { yyval.opval = yyvsp[0].opval; }
 break;
-#line 2414 "perly.c"
+#line 2412 "perly.c"
     }
     yyssp -= yym;
     yystate = *yyssp;
index 86f4c36..febce77 100644 (file)
@@ -63,6 +63,7 @@ $ myname = myhostname
 $ if "''myname'" .eqs. "" THEN myname = f$trnlnm("SYS$NODE")
 $!
 $! ##ADD NEW CONSTANTS HERE##
+$ perl_d_llseek="undef"
 $ perl_d_madvise="undef"
 $ perl_selectminbits=32
 $ perl_d_msync="undef"
@@ -444,7 +445,6 @@ $   perl_sPRIu64 = ""
 $   perl_sPRIo64 = ""
 $   perl_sPRIx64 = ""
 $ ENDIF
-$ perl_d_llsekk="undef"
 $!
 $!
 $! Now some that we build up
@@ -3312,7 +3312,7 @@ $ WC "d_chown='" + perl_d_chown + "'"
 $ WC "d_chroot='" + perl_d_chroot + "'"
 $ WC "d_cuserid='" + perl_d_cuserid + "'"
 $ WC "d_dbl_dig='" + perl_d_dbl_dig + "'"
-$ WC "d_ldbl_dig='" + perl_d_dbl_dig + "'"
+$ WC "d_ldbl_dig='" + perl_d_ldbl_dig + "'"
 $ WC "d_difftime='" + perl_d_difftime + "'"
 $ WC "d_fork='" + perl_d_fork + "'"
 $ WC "d_getlogin='" + perl_d_getlogin + "'"
@@ -3576,7 +3576,7 @@ $!
 $ Close CONFIGSH
 $
 $! Okay, we've gotten here. Build munchconfig and run it
-$ 'Perl_CC'/debug munchconfig.c
+$ 'Perl_CC' munchconfig.c
 $ If (Needs_Opt.eqs."Yes")
 $ THEN
 $   open/write OPTCHAN []munchconfig.opt
index 29634a5..ab24000 100644 (file)
--- a/vms/vms.c
+++ b/vms/vms.c
@@ -2,8 +2,8 @@
  *
  * VMS-specific routines for perl5
  *
- * Last revised: 24-Apr-1999 by Charles Bailey  bailey@newman.upenn.edu
- * Version: 5.5.58
+ * Last revised: 15-Aug-1999 by Charles Bailey  bailey@newman.upenn.edu
+ * Version: 5.5.60
  */
 
 #include <acedef.h>
@@ -95,6 +95,10 @@ static bool will_taint = FALSE;  /* tainting active, but no PL_curinterp yet */
 /* munching */ 
 static int no_translate_barewords;
 
+/* True if we shouldn't treat barewords as logicals during directory */
+/* munching */ 
+static int no_translate_barewords;
+
 /*{{{int vmstrnenv(const char *lnm, char *eqv, unsigned long int idx, struct dsc$descriptor_s **tabvec, unsigned long int flags) */
 int
 vmstrnenv(const char *lnm, char *eqv, unsigned long int idx,
index 1f7e2c9..261a506 100644 (file)
@@ -75,8 +75,8 @@
   /* getenv used for regular logical names */
 #  define getenv(v) my_getenv(v,TRUE)
 #endif
-#if defined(getenv_len)
-#undef getenv_len
+#ifdef getenv_len
+#  undef getenv_len
 #endif
 #define getenv_len(v,l) my_getenv_len(v,l,TRUE)
 
index fc0daf0..3edc20b 100644 (file)
@@ -36,12 +36,13 @@ while (<>)
  {
   s/~([\w_]+)~/$opt{$1}/g;
   if (/^([\w_]+)=(.*)$/) {
+    my($k,$v) = ($1,$2);
     # this depends on cf_time being empty in the template (or we'll get a loop)
-    if ($1 eq 'cf_time') {
-      $_ = "$1='" . localtime(time) . "'\n" if $2 =~ /^\s*'\s*'/;
+    if ($k eq 'cf_time') {
+      $_ = "$k='" . localtime(time) . "'\n" if $v =~ /^\s*'\s*'/;
     }
-    elsif (exists $opt{$1}) {
-      $_ = "$1='$opt{$1}'\n";
+    elsif (exists $opt{$k}) {
+      $_ = "$k='$opt{$k}'\n";
     }
   }
   print;