This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Here are the long-expected Unicode/UTF-8 modifications.
authorLarry Wall <larry@wall.org>
Fri, 24 Jul 1998 05:44:33 +0000 (05:44 +0000)
committerLarry Wall <larry@wall.org>
Fri, 24 Jul 1998 05:44:33 +0000 (05:44 +0000)
p4raw-id: //depot/utfperl@1651

191 files changed:
Makefile.SH
doop.c
embed.h
embedvar.h
global.sym
handy.h
lib/unicode/ArabLink.pl [new file with mode: 0644]
lib/unicode/ArabLnkGrp.pl [new file with mode: 0644]
lib/unicode/Bidirectional.pl [new file with mode: 0644]
lib/unicode/Block.pl [new file with mode: 0644]
lib/unicode/Category.pl [new file with mode: 0644]
lib/unicode/CombiningClass.pl [new file with mode: 0644]
lib/unicode/Decomposition.pl [new file with mode: 0644]
lib/unicode/In/AlphabeticPresentationForms.pl [new file with mode: 0644]
lib/unicode/In/Arabic.pl [new file with mode: 0644]
lib/unicode/In/ArabicPresentationForms-A.pl [new file with mode: 0644]
lib/unicode/In/ArabicPresentationForms-B.pl [new file with mode: 0644]
lib/unicode/In/Armenian.pl [new file with mode: 0644]
lib/unicode/In/Arrows.pl [new file with mode: 0644]
lib/unicode/In/BasicLatin.pl [new file with mode: 0644]
lib/unicode/In/Bengali.pl [new file with mode: 0644]
lib/unicode/In/BlockElements.pl [new file with mode: 0644]
lib/unicode/In/Bopomofo.pl [new file with mode: 0644]
lib/unicode/In/BoxDrawing.pl [new file with mode: 0644]
lib/unicode/In/CJKCompatibility.pl [new file with mode: 0644]
lib/unicode/In/CJKCompatibilityForms.pl [new file with mode: 0644]
lib/unicode/In/CJKCompatibilityIdeographs.pl [new file with mode: 0644]
lib/unicode/In/CJKSymbolsandPunctuation.pl [new file with mode: 0644]
lib/unicode/In/CJKUnifiedIdeographs.pl [new file with mode: 0644]
lib/unicode/In/CombiningDiacriticalMarks.pl [new file with mode: 0644]
lib/unicode/In/CombiningHalfMarks.pl [new file with mode: 0644]
lib/unicode/In/CombiningMarksforSymbols.pl [new file with mode: 0644]
lib/unicode/In/ControlPictures.pl [new file with mode: 0644]
lib/unicode/In/CurrencySymbols.pl [new file with mode: 0644]
lib/unicode/In/Cyrillic.pl [new file with mode: 0644]
lib/unicode/In/Devanagari.pl [new file with mode: 0644]
lib/unicode/In/Dingbats.pl [new file with mode: 0644]
lib/unicode/In/EnclosedAlphanumerics.pl [new file with mode: 0644]
lib/unicode/In/EnclosedCJKLettersandMonths.pl [new file with mode: 0644]
lib/unicode/In/GeneralPunctuation.pl [new file with mode: 0644]
lib/unicode/In/GeometricShapes.pl [new file with mode: 0644]
lib/unicode/In/Georgian.pl [new file with mode: 0644]
lib/unicode/In/Greek.pl [new file with mode: 0644]
lib/unicode/In/GreekExtended.pl [new file with mode: 0644]
lib/unicode/In/Gujarati.pl [new file with mode: 0644]
lib/unicode/In/Gurmukhi.pl [new file with mode: 0644]
lib/unicode/In/HalfwidthandFullwidthForms.pl [new file with mode: 0644]
lib/unicode/In/HangulCompatibilityJamo.pl [new file with mode: 0644]
lib/unicode/In/HangulJamo.pl [new file with mode: 0644]
lib/unicode/In/HangulSyllables.pl [new file with mode: 0644]
lib/unicode/In/Hebrew.pl [new file with mode: 0644]
lib/unicode/In/HighPrivateUseSurrogates.pl [new file with mode: 0644]
lib/unicode/In/HighSurrogates.pl [new file with mode: 0644]
lib/unicode/In/Hiragana.pl [new file with mode: 0644]
lib/unicode/In/IPAExtensions.pl [new file with mode: 0644]
lib/unicode/In/Kanbun.pl [new file with mode: 0644]
lib/unicode/In/Kannada.pl [new file with mode: 0644]
lib/unicode/In/Katakana.pl [new file with mode: 0644]
lib/unicode/In/Lao.pl [new file with mode: 0644]
lib/unicode/In/Latin-1Supplement.pl [new file with mode: 0644]
lib/unicode/In/LatinExtended-A.pl [new file with mode: 0644]
lib/unicode/In/LatinExtended-B.pl [new file with mode: 0644]
lib/unicode/In/LatinExtendedAdditional.pl [new file with mode: 0644]
lib/unicode/In/LetterlikeSymbols.pl [new file with mode: 0644]
lib/unicode/In/LowSurrogates.pl [new file with mode: 0644]
lib/unicode/In/Malayalam.pl [new file with mode: 0644]
lib/unicode/In/MathematicalOperators.pl [new file with mode: 0644]
lib/unicode/In/MiscellaneousSymbols.pl [new file with mode: 0644]
lib/unicode/In/MiscellaneousTechnical.pl [new file with mode: 0644]
lib/unicode/In/NumberForms.pl [new file with mode: 0644]
lib/unicode/In/OpticalCharacterRecognition.pl [new file with mode: 0644]
lib/unicode/In/Oriya.pl [new file with mode: 0644]
lib/unicode/In/PrivateUse.pl [new file with mode: 0644]
lib/unicode/In/SmallFormVariants.pl [new file with mode: 0644]
lib/unicode/In/SpacingModifierLetters.pl [new file with mode: 0644]
lib/unicode/In/Specials.pl [new file with mode: 0644]
lib/unicode/In/SuperscriptsandSubscripts.pl [new file with mode: 0644]
lib/unicode/In/Tamil.pl [new file with mode: 0644]
lib/unicode/In/Telugu.pl [new file with mode: 0644]
lib/unicode/In/Thai.pl [new file with mode: 0644]
lib/unicode/In/Tibetan.pl [new file with mode: 0644]
lib/unicode/Is/Alnum.pl [new file with mode: 0644]
lib/unicode/Is/Alpha.pl [new file with mode: 0644]
lib/unicode/Is/BidiAN.pl [new file with mode: 0644]
lib/unicode/Is/BidiB.pl [new file with mode: 0644]
lib/unicode/Is/BidiCS.pl [new file with mode: 0644]
lib/unicode/Is/BidiEN.pl [new file with mode: 0644]
lib/unicode/Is/BidiES.pl [new file with mode: 0644]
lib/unicode/Is/BidiET.pl [new file with mode: 0644]
lib/unicode/Is/BidiL.pl [new file with mode: 0644]
lib/unicode/Is/BidiON.pl [new file with mode: 0644]
lib/unicode/Is/BidiR.pl [new file with mode: 0644]
lib/unicode/Is/BidiS.pl [new file with mode: 0644]
lib/unicode/Is/BidiWS.pl [new file with mode: 0644]
lib/unicode/Is/C.pl [new file with mode: 0644]
lib/unicode/Is/Cc.pl [new file with mode: 0644]
lib/unicode/Is/Cn.pl [new file with mode: 0644]
lib/unicode/Is/Co.pl [new file with mode: 0644]
lib/unicode/Is/DCcircle.pl [new file with mode: 0644]
lib/unicode/Is/DCcompat.pl [new file with mode: 0644]
lib/unicode/Is/DCfinal.pl [new file with mode: 0644]
lib/unicode/Is/DCfont.pl [new file with mode: 0644]
lib/unicode/Is/DCinital.pl [new file with mode: 0644]
lib/unicode/Is/DCinitial.pl [new file with mode: 0644]
lib/unicode/Is/DCisolated.pl [new file with mode: 0644]
lib/unicode/Is/DCnarrow.pl [new file with mode: 0644]
lib/unicode/Is/DCnoBreak.pl [new file with mode: 0644]
lib/unicode/Is/DCsmall.pl [new file with mode: 0644]
lib/unicode/Is/DCsquare.pl [new file with mode: 0644]
lib/unicode/Is/DCsub.pl [new file with mode: 0644]
lib/unicode/Is/DCsuper.pl [new file with mode: 0644]
lib/unicode/Is/DCvertical.pl [new file with mode: 0644]
lib/unicode/Is/DCwide.pl [new file with mode: 0644]
lib/unicode/Is/DecoCanon.pl [new file with mode: 0644]
lib/unicode/Is/DecoCompat.pl [new file with mode: 0644]
lib/unicode/Is/Digit.pl [new file with mode: 0644]
lib/unicode/Is/L.pl [new file with mode: 0644]
lib/unicode/Is/Ll.pl [new file with mode: 0644]
lib/unicode/Is/Lm.pl [new file with mode: 0644]
lib/unicode/Is/Lo.pl [new file with mode: 0644]
lib/unicode/Is/Lower.pl [new file with mode: 0644]
lib/unicode/Is/Lt.pl [new file with mode: 0644]
lib/unicode/Is/Lu.pl [new file with mode: 0644]
lib/unicode/Is/M.pl [new file with mode: 0644]
lib/unicode/Is/Mc.pl [new file with mode: 0644]
lib/unicode/Is/Mirrored.pl [new file with mode: 0644]
lib/unicode/Is/Mn.pl [new file with mode: 0644]
lib/unicode/Is/N.pl [new file with mode: 0644]
lib/unicode/Is/Nd.pl [new file with mode: 0644]
lib/unicode/Is/No.pl [new file with mode: 0644]
lib/unicode/Is/P.pl [new file with mode: 0644]
lib/unicode/Is/Pd.pl [new file with mode: 0644]
lib/unicode/Is/Pe.pl [new file with mode: 0644]
lib/unicode/Is/Po.pl [new file with mode: 0644]
lib/unicode/Is/Print.pl [new file with mode: 0644]
lib/unicode/Is/Ps.pl [new file with mode: 0644]
lib/unicode/Is/S.pl [new file with mode: 0644]
lib/unicode/Is/Sc.pl [new file with mode: 0644]
lib/unicode/Is/Sm.pl [new file with mode: 0644]
lib/unicode/Is/So.pl [new file with mode: 0644]
lib/unicode/Is/Space.pl [new file with mode: 0644]
lib/unicode/Is/Upper.pl [new file with mode: 0644]
lib/unicode/Is/Z.pl [new file with mode: 0644]
lib/unicode/Is/Zl.pl [new file with mode: 0644]
lib/unicode/Is/Zp.pl [new file with mode: 0644]
lib/unicode/Is/Zs.pl [new file with mode: 0644]
lib/unicode/JamoShort.pl [new file with mode: 0644]
lib/unicode/Makefile [new file with mode: 0644]
lib/unicode/Name.pl [new file with mode: 0644]
lib/unicode/Number.pl [new file with mode: 0644]
lib/unicode/To/Digit.pl [new file with mode: 0644]
lib/unicode/To/Lower.pl [new file with mode: 0644]
lib/unicode/To/Title.pl [new file with mode: 0644]
lib/unicode/To/Upper.pl [new file with mode: 0644]
lib/unicode/UnicodeData-Latest.txt [new file with mode: 0644]
lib/unicode/arabshp.txt [new file with mode: 0755]
lib/unicode/blocks.txt [new file with mode: 0755]
lib/unicode/index2.txt [new file with mode: 0755]
lib/unicode/jamo2.txt [new file with mode: 0755]
lib/unicode/mktables.PL [new file with mode: 0755]
lib/unicode/names2.txt [new file with mode: 0755]
lib/unicode/props2.txt [new file with mode: 0755]
lib/unicode/readme.txt [new file with mode: 0755]
lib/utf8.pm [new file with mode: 0644]
lib/utf8_heavy.pl [new file with mode: 0644]
mg.c
op.c
op.h
perl.h
perlvars.h
pod/perlfunc.pod
pod/perlop.pod
pod/perlre.pod
pp.c
pp_ctl.c
pp_hot.c
proto.h
regcomp.c
regcomp.h
regcomp.sym
regexec.c
regexp.h
regnodes.h
sv.c
t/UTEST [new file with mode: 0755]
t/op/vec.t
toke.c
utf8.c [new file with mode: 0644]
utf8.h [new file with mode: 0644]
util.c
vms/vmsish.h

index 050e471..34bf4c4 100644 (file)
@@ -210,18 +210,18 @@ h1 = EXTERN.h INTERN.h XSUB.h av.h config.h cop.h cv.h dosish.h
 h2 = embed.h form.h gv.h handy.h hv.h keywords.h mg.h op.h
 h3 = opcode.h patchlevel.h perl.h perly.h pp.h proto.h regcomp.h
 h4 = regexp.h scope.h sv.h unixish.h util.h iperlsys.h thread.h
-h5 = bytecode.h byterun.h
+h5 = bytecode.h byterun.h utf8.h
 h = $(h1) $(h2) $(h3) $(h4) $(h5)
 
 c1 = $(mallocsrc) av.c scope.c op.c doop.c doio.c dump.c hv.c mg.c byterun.c
-c2 = perl.c perly.c pp.c pp_hot.c pp_ctl.c pp_sys.c regcomp.c regexec.c
+c2 = perl.c perly.c pp.c pp_hot.c pp_ctl.c pp_sys.c regcomp.c regexec.c utf8.c
 c3 = gv.c sv.c taint.c toke.c util.c deb.c run.c universal.c globals.c perlio.c
 
 c = $(c1) $(c2) $(c3) miniperlmain.c perlmain.c
 
 obj1 = $(mallocobj) gv$(OBJ_EXT) toke$(OBJ_EXT) perly$(OBJ_EXT) op$(OBJ_EXT) regcomp$(OBJ_EXT) dump$(OBJ_EXT) util$(OBJ_EXT) mg$(OBJ_EXT) byterun$(OBJ_EXT)
 obj2 = hv$(OBJ_EXT) av$(OBJ_EXT) run$(OBJ_EXT) pp_hot$(OBJ_EXT) sv$(OBJ_EXT) pp$(OBJ_EXT) scope$(OBJ_EXT) pp_ctl$(OBJ_EXT) pp_sys$(OBJ_EXT)
-obj3 = doop$(OBJ_EXT) doio$(OBJ_EXT) regexec$(OBJ_EXT) taint$(OBJ_EXT) deb$(OBJ_EXT) universal$(OBJ_EXT) globals$(OBJ_EXT) perlio$(OBJ_EXT)
+obj3 = doop$(OBJ_EXT) doio$(OBJ_EXT) regexec$(OBJ_EXT) utf8$(OBJ_EXT) taint$(OBJ_EXT) deb$(OBJ_EXT) universal$(OBJ_EXT) globals$(OBJ_EXT) perlio$(OBJ_EXT)
 
 obj = $(obj1) $(obj2) $(obj3) $(ARCHOBJS)
 
@@ -581,6 +581,9 @@ test-prep: miniperl perl preplibrary utilities $(dynamic_ext) $(nonxs_ext)
 test check: test-prep
        cd t && $(LDLIBPTH) ./perl TEST </dev/tty
 
+utest ucheck: test-prep
+       cd t && $(LDLIBPTH) ./perl UTEST </dev/tty
+
 # For testing without a tty or controling terminal. See t/op/stat.t
 test-notty: test-prep
        cd t && PERL_SKIP_TTY_TEST=1 $(LDLIBPTH) ./perl TEST
diff --git a/doop.c b/doop.c
index e80fa48..9dc9b04 100644 (file)
--- a/doop.c
+++ b/doop.c
@@ -22,72 +22,320 @@ I32
 do_trans(SV *sv, OP *arg)
 {
     dTHR;
-    register short *tbl;
     register U8 *s;
     register U8 *send;
     register U8 *d;
-    register I32 ch;
     register I32 matches = 0;
     register I32 squash = PL_op->op_private & OPpTRANS_SQUASH;
-    register U8 *p;
     STRLEN len;
 
     if (SvREADONLY(sv) && !(PL_op->op_private & OPpTRANS_COUNTONLY))
        croak(no_modify);
-    tbl = (short*)cPVOP->op_pv;
-    s = (U8*)SvPV(sv, len);
-    if (!len)
-       return 0;
-    if (!SvPOKp(sv))
-       s = (U8*)SvPV_force(sv, len);
-    (void)SvPOK_only(sv);
-    send = s + len;
-    if (!tbl || !s)
-       croak("panic: do_trans");
-    DEBUG_t( deb("2.TBL\n"));
-    if (!PL_op->op_private) {
-       while (s < send) {
-           if ((ch = tbl[*s]) >= 0) {
-               matches++;
-               *s = ch;
+
+    if (PL_op->op_private & (OPpTRANS_FROM_UTF|OPpTRANS_TO_UTF)) {
+       SV* rv = (SV*)cSVOP->op_sv;
+       HV* hv = (HV*)SvRV(rv);
+       SV** svp = hv_fetch(hv, "NONE", 4, FALSE);
+       UV none = svp ? SvUV(*svp) : 0x7fffffff;
+       UV extra = none + 1;
+       I32 del = PL_op->op_private & OPpTRANS_DELETE;
+       UV final;
+       register UV uv;
+       UV puv;
+       char *dst;
+       register I32 from_utf = PL_op->op_private & OPpTRANS_FROM_UTF;
+       register I32 to_utf = PL_op->op_private & OPpTRANS_TO_UTF;
+
+       s = (U8*)SvPV(sv, len);
+       if (!len)
+           return 0;
+       if (!SvPOKp(sv))
+           s = (U8*)SvPV_force(sv, len);
+       (void)SvPOK_only(sv);
+       send = s + len;
+       DEBUG_t( deb("2.TBL\n"));
+       if (PL_op->op_private == (OPpTRANS_FROM_UTF|OPpTRANS_TO_UTF)) { /* no other flags */
+           svp = hv_fetch(hv, "FINAL", 5, FALSE);
+           if (svp)
+               final = SvUV(*svp);
+
+           d = s;
+           while (s < send) {
+               if ((uv = swash_fetch(rv, s)) < none) {
+                   s += UTF8SKIP(s);
+                   matches++;
+                   d = uv_to_utf8(d, uv);
+               }
+               else if (uv == none) {
+                   int i;
+                   for (i = UTF8SKIP(s); i; i--)
+                       *d++ = *s++;
+               }
+               else if (uv == extra) {
+                   s += UTF8SKIP(s);
+                   matches++;
+                   d = uv_to_utf8(d, final);
+               }
+               else
+                   s += UTF8SKIP(s);
            }
-           s++;
+           *d = '\0';
+           SvCUR_set(sv, d - (U8*)SvPVX(sv));
+           SvSETMAGIC(sv);
        }
-       SvSETMAGIC(sv);
-    }
-    else if (PL_op->op_private & OPpTRANS_COUNTONLY) {
-       while (s < send) {
-           if (tbl[*s] >= 0)
-               matches++;
-           s++;
+       else if (PL_op->op_private == OPpTRANS_FROM_UTF) {      /* no other flags */
+           svp = hv_fetch(hv, "FINAL", 5, FALSE);
+           if (svp)
+               final = SvUV(*svp);
+
+           d = s;
+           while (s < send) {
+               if ((uv = swash_fetch(rv, s)) < none) {
+                   s += UTF8SKIP(s);
+                   matches++;
+                   *d++ = (U8)uv;
+               }
+               else if (uv == none) {
+                   I32 ulen;
+                   uv = utf8_to_uv(s, &ulen);
+                   s += ulen;
+                   *d++ = (U8)uv;
+               }
+               else if (uv == extra) {
+                   s += UTF8SKIP(s);
+                   matches++;
+                   *d++ = (U8)final;
+               }
+               else
+                   s += UTF8SKIP(s);
+           }
+           *d = '\0';
+           SvCUR_set(sv, d - (U8*)SvPVX(sv));
+           SvSETMAGIC(sv);
+       }
+       else if (PL_op->op_private == OPpTRANS_TO_UTF) {        /* no other flags */
+           svp = hv_fetch(hv, "FINAL", 5, FALSE);
+           if (svp)
+               final = SvUV(*svp);
+
+           d = s;
+           while (s < send) {
+               U8 tmpbuf[10];
+               uv_to_utf8(tmpbuf, *s);         /* XXX suboptimal */
+               if ((uv = swash_fetch(rv, tmpbuf)) < none) {
+                   s += UTF8SKIP(s);
+                   matches++;
+                   d = uv_to_utf8(d, uv);
+               }
+               else if (uv == none) {
+                   I32 ulen;
+                   uv = utf8_to_uv(s, &ulen);
+                   s += ulen;
+                   d = uv_to_utf8(d, uv);
+               }
+               else if (uv == extra) {
+                   s += UTF8SKIP(s);
+                   matches++;
+                   d = uv_to_utf8(d, final);
+               }
+               else
+                   s += UTF8SKIP(s);
+           }
+           *d = '\0';
+           SvCUR_set(sv, d - (U8*)SvPVX(sv));
+           SvSETMAGIC(sv);
+       }
+       else if (PL_op->op_private & OPpTRANS_COUNTONLY) {
+           if (from_utf) {
+               while (s < send) {
+                   if (swash_fetch(rv, s) < none)
+                       matches++;
+                   s += UTF8SKIP(s);
+               }
+           }
+           else {
+               while (s < send) {
+                   char tmpbuf[10];
+                   uv_to_utf8(tmpbuf, *s);     /* XXX suboptimal */
+                   if (swash_fetch(rv, tmpbuf) < none)
+                       matches++;
+                   s += UTF8SKIP(s);
+               }
+           }
        }
+       else {
+           I32 bits = 16;
+           U8 *dst;
+
+           svp = hv_fetch(hv, "BITS", 4, FALSE);
+           if (svp)
+               bits = (I32)SvIV(*svp);
+
+           svp = hv_fetch(hv, "FINAL", 5, FALSE);
+           if (svp)
+               final = SvUV(*svp);
+
+           Newz(801, d, len * (bits >> 3) + 1, char);
+           dst = d;
+
+           puv = 0xfeedface;
+           if (squash) {
+               while (s < send) {
+                   if (from_utf)
+                       uv = swash_fetch(rv, s);
+                   else {
+                       char tmpbuf[10];
+                       uv_to_utf8(tmpbuf, *s); /* XXX suboptimal */
+                       uv = swash_fetch(rv, tmpbuf);
+                   }
+                   if (uv < none) {
+                       matches++;
+                       if (uv != puv) {
+                           if (to_utf)
+                               d = uv_to_utf8(d, uv);
+                           else
+                               *d++ = (U8)uv;
+                       }
+                       puv = uv;
+                       s += UTF8SKIP(s);
+                       continue;
+                   }
+                   else if (uv == none) {      /* "none" is unmapped character */
+                       int i;
+                       if (to_utf) {
+                           for (i = UTF8SKIP(s); i; --i)
+                               *d++ = *s++;
+                       }
+                       else {
+                           I32 ulen;
+                           *d++ = (U8)utf8_to_uv(s, &ulen);
+                           s += ulen;
+                       }
+                       puv = 0xfeedface;
+                       continue;
+                   }
+                   else if (uv == extra && !del) {
+                       matches++;
+                       if (to_utf)
+                           d = uv_to_utf8(d, final);
+                       else
+                           *d++ = (U8)final;
+                       s += UTF8SKIP(s);
+                       puv = 0xfeedface;
+                       continue;
+                   }
+                   matches++;          /* "none+1" is delete character */
+                   s += UTF8SKIP(s);
+               }
+           }
+           else {
+               while (s < send) {
+                   if (from_utf)
+                       uv = swash_fetch(rv, s);
+                   else {
+                       char tmpbuf[10];
+                       uv_to_utf8(tmpbuf, *s); /* XXX suboptimal */
+                       uv = swash_fetch(rv, tmpbuf);
+                   }
+                   if (uv < none) {
+                       if (to_utf)
+                           d = uv_to_utf8(d, uv);
+                       else
+                           *d++ = (U8)uv;
+                       matches++;
+                       s += UTF8SKIP(s);
+                       continue;
+                   }
+                   else if (uv == none) {      /* "none" is unmapped character */
+                       int i;
+                       if (to_utf) {
+                           for (i = UTF8SKIP(s); i; --i)
+                               *d++ = *s++;
+                       }
+                       else {
+                           I32 ulen;
+                           *d++ = (U8)utf8_to_uv(s, &ulen);
+                           s += ulen;
+                       }
+                       continue;
+                   }
+                   else if (uv == extra && !del) {
+                       matches++;
+                       if (to_utf)
+                           d = uv_to_utf8(d, final);
+                       else
+                           *d++ = (U8)final;
+                       s += UTF8SKIP(s);
+                       continue;
+                   }
+                   matches++;          /* "none+1" is delete character */
+                   s += UTF8SKIP(s);
+               }
+           }
+           sv_usepvn_mg(sv, dst, d - dst);
+       }
+       return matches;
     }
     else {
-       d = s;
-       p = send;
-       while (s < send) {
-           if ((ch = tbl[*s]) >= 0) {
-               *d = ch;
-               matches++;
-               if (squash) {
-                   if (p == d - 1 && *p == *d)
-                       matches--;
+       register short *tbl;
+       register I32 ch;
+       register U8 *p;
+
+       tbl = (short*)cPVOP->op_pv;
+       s = (U8*)SvPV(sv, len);
+       if (!len)
+           return 0;
+       if (!SvPOKp(sv))
+           s = (U8*)SvPV_force(sv, len);
+       (void)SvPOK_only(sv);
+       send = s + len;
+       if (!tbl || !s)
+           croak("panic: do_trans");
+       DEBUG_t( deb("2.TBL\n"));
+       if (!PL_op->op_private) {
+           while (s < send) {
+               if ((ch = tbl[*s]) >= 0) {
+                   matches++;
+                   *s = ch;
+               }
+               s++;
+           }
+           SvSETMAGIC(sv);
+       }
+       else if (PL_op->op_private & OPpTRANS_COUNTONLY) {
+           while (s < send) {
+               if (tbl[*s] >= 0)
+                   matches++;
+               s++;
+           }
+       }
+       else {
+           d = s;
+           p = send;
+           while (s < send) {
+               if ((ch = tbl[*s]) >= 0) {
+                   *d = ch;
+                   matches++;
+                   if (squash) {
+                       if (p == d - 1 && *p == *d)
+                           matches--;
+                       else
+                           p = d++;
+                   }
                    else
-                       p = d++;
+                       d++;
                }
-               else
-                   d++;
+               else if (ch == -1)              /* -1 is unmapped character */
+                   *d++ = *s;          /* -2 is delete character */
+               s++;
            }
-           else if (ch == -1)          /* -1 is unmapped character */
-               *d++ = *s;              /* -2 is delete character */
-           s++;
+           matches += send - d;        /* account for disappeared chars */
+           *d = '\0';
+           SvCUR_set(sv, d - (U8*)SvPVX(sv));
+           SvSETMAGIC(sv);
        }
-       matches += send - d;    /* account for disappeared chars */
-       *d = '\0';
-       SvCUR_set(sv, d - (U8*)SvPVX(sv));
-       SvSETMAGIC(sv);
+       return matches;
     }
-    return matches;
 }
 
 void
@@ -240,6 +488,24 @@ do_chop(register SV *astr, register SV *sv)
     s = SvPV(sv, len);
     if (len && !SvPOK(sv))
        s = SvPV_force(sv, len);
+    if (IN_UTF8) {
+       if (s && len) {
+           char *send = s + len;
+           char *start = s;
+           s = send - 1;
+           while ((*s & 0xc0) == 0x80)
+               --s;
+           if (UTF8SKIP(s) != send - s)
+               warn("Malformed UTF-8 character");
+           sv_setpvn(astr, s, send - s);
+           *s = '\0';
+           SvCUR_set(sv, s - start);
+           SvNIOK_off(sv);
+       }
+       else
+           sv_setpvn(astr, "", 0);
+    }
+    else
     if (s && len) {
        s += --len;
        sv_setpvn(astr, s, 1);
diff --git a/embed.h b/embed.h
index e7f8a50..6026c18 100644 (file)
--- a/embed.h
+++ b/embed.h
 #define intuit_more            Perl_intuit_more
 #define invert                 Perl_invert
 #define io_close               Perl_io_close
+#define is_uni_alnum           Perl_is_uni_alnum
+#define is_uni_alnum_lc                Perl_is_uni_alnum_lc
+#define is_uni_alpha           Perl_is_uni_alpha
+#define is_uni_alpha_lc                Perl_is_uni_alpha_lc
+#define is_uni_digit           Perl_is_uni_digit
+#define is_uni_digit_lc                Perl_is_uni_digit_lc
+#define is_uni_idfirst         Perl_is_uni_idfirst
+#define is_uni_idfirst_lc      Perl_is_uni_idfirst_lc
+#define is_uni_lower           Perl_is_uni_lower
+#define is_uni_lower_lc                Perl_is_uni_lower_lc
+#define is_uni_print           Perl_is_uni_print
+#define is_uni_print_lc                Perl_is_uni_print_lc
+#define is_uni_space           Perl_is_uni_space
+#define is_uni_space_lc                Perl_is_uni_space_lc
+#define is_uni_upper           Perl_is_uni_upper
+#define is_uni_upper_lc                Perl_is_uni_upper_lc
+#define is_utf8_alnum          Perl_is_utf8_alnum
+#define is_utf8_alpha          Perl_is_utf8_alpha
+#define is_utf8_digit          Perl_is_utf8_digit
+#define is_utf8_idfirst                Perl_is_utf8_idfirst
+#define is_utf8_lower          Perl_is_utf8_lower
+#define is_utf8_mark           Perl_is_utf8_mark
+#define is_utf8_print          Perl_is_utf8_print
+#define is_utf8_space          Perl_is_utf8_space
+#define is_utf8_upper          Perl_is_utf8_upper
 #define jmaybe                 Perl_jmaybe
 #define keyword                        Perl_keyword
 #define know_next              Perl_know_next
 #define sv_isobject            Perl_sv_isobject
 #define sv_iv                  Perl_sv_iv
 #define sv_len                 Perl_sv_len
+#define sv_len_utf8            Perl_sv_len_utf8
 #define sv_magic               Perl_sv_magic
 #define sv_mortalcopy          Perl_sv_mortalcopy
 #define sv_newmortal           Perl_sv_newmortal
 #define sv_uv                  Perl_sv_uv
 #define sv_vcatpvfn            Perl_sv_vcatpvfn
 #define sv_vsetpvfn            Perl_sv_vsetpvfn
+#define swash_fetch            Perl_swash_fetch
+#define swash_init             Perl_swash_init
 #define taint_env              Perl_taint_env
 #define taint_proper           Perl_taint_proper
+#define to_uni_lower           Perl_to_uni_lower
+#define to_uni_lower_lc                Perl_to_uni_lower_lc
+#define to_uni_title           Perl_to_uni_title
+#define to_uni_title_lc                Perl_to_uni_title_lc
+#define to_uni_upper           Perl_to_uni_upper
+#define to_uni_upper_lc                Perl_to_uni_upper_lc
+#define to_utf8_lower          Perl_to_utf8_lower
+#define to_utf8_title          Perl_to_utf8_title
+#define to_utf8_upper          Perl_to_utf8_upper
 #define too_few_arguments      Perl_too_few_arguments
 #define too_many_arguments     Perl_too_many_arguments
 #define unlnk                  Perl_unlnk
 #define unlock_condpair                Perl_unlock_condpair
 #define unshare_hek            Perl_unshare_hek
 #define unsharepvn             Perl_unsharepvn
+#define utf16_to_utf8          Perl_utf16_to_utf8
+#define utf16_to_utf8_reversed Perl_utf16_to_utf8_reversed
+#define utf8_distance          Perl_utf8_distance
+#define utf8_hop               Perl_utf8_hop
+#define utf8_to_uv             Perl_utf8_to_uv
 #define utilize                        Perl_utilize
+#define uv_to_utf8             Perl_uv_to_utf8
 #define varies                 Perl_varies
 #define vivify_defelem         Perl_vivify_defelem
 #define vivify_ref             Perl_vivify_ref
index 7a258b0..e1c9e9a 100644 (file)
 #define PL_in_my_stash         (PL_Vars.Gin_my_stash)
 #define PL_last_lop            (PL_Vars.Glast_lop)
 #define PL_last_lop_op         (PL_Vars.Glast_lop_op)
+#define PL_last_swash_hv       (PL_Vars.Glast_swash_hv)
+#define PL_last_swash_key      (PL_Vars.Glast_swash_key)
+#define PL_last_swash_klen     (PL_Vars.Glast_swash_klen)
+#define PL_last_swash_slen     (PL_Vars.Glast_swash_slen)
+#define PL_last_swash_tmps     (PL_Vars.Glast_swash_tmps)
 #define PL_last_uni            (PL_Vars.Glast_uni)
 #define PL_lex_brackets                (PL_Vars.Glex_brackets)
 #define PL_lex_brackstack      (PL_Vars.Glex_brackstack)
 #define PL_threadsv_names      (PL_Vars.Gthreadsv_names)
 #define PL_tokenbuf            (PL_Vars.Gtokenbuf)
 #define PL_uid                 (PL_Vars.Guid)
+#define PL_utf8_alnum          (PL_Vars.Gutf8_alnum)
+#define PL_utf8_alpha          (PL_Vars.Gutf8_alpha)
+#define PL_utf8_digit          (PL_Vars.Gutf8_digit)
+#define PL_utf8_lower          (PL_Vars.Gutf8_lower)
+#define PL_utf8_mark           (PL_Vars.Gutf8_mark)
+#define PL_utf8_print          (PL_Vars.Gutf8_print)
+#define PL_utf8_space          (PL_Vars.Gutf8_space)
+#define PL_utf8_tolower                (PL_Vars.Gutf8_tolower)
+#define PL_utf8_totitle                (PL_Vars.Gutf8_totitle)
+#define PL_utf8_toupper                (PL_Vars.Gutf8_toupper)
+#define PL_utf8_upper          (PL_Vars.Gutf8_upper)
 #define PL_xiv_arenaroot       (PL_Vars.Gxiv_arenaroot)
 #define PL_xiv_root            (PL_Vars.Gxiv_root)
 #define PL_xnv_root            (PL_Vars.Gxnv_root)
 #define PL_Gin_my_stash                PL_in_my_stash
 #define PL_Glast_lop           PL_last_lop
 #define PL_Glast_lop_op                PL_last_lop_op
+#define PL_Glast_swash_hv      PL_last_swash_hv
+#define PL_Glast_swash_key     PL_last_swash_key
+#define PL_Glast_swash_klen    PL_last_swash_klen
+#define PL_Glast_swash_slen    PL_last_swash_slen
+#define PL_Glast_swash_tmps    PL_last_swash_tmps
 #define PL_Glast_uni           PL_last_uni
 #define PL_Glex_brackets       PL_lex_brackets
 #define PL_Glex_brackstack     PL_lex_brackstack
 #define PL_Gthreadsv_names     PL_threadsv_names
 #define PL_Gtokenbuf           PL_tokenbuf
 #define PL_Guid                        PL_uid
+#define PL_Gutf8_alnum         PL_utf8_alnum
+#define PL_Gutf8_alpha         PL_utf8_alpha
+#define PL_Gutf8_digit         PL_utf8_digit
+#define PL_Gutf8_lower         PL_utf8_lower
+#define PL_Gutf8_mark          PL_utf8_mark
+#define PL_Gutf8_print         PL_utf8_print
+#define PL_Gutf8_space         PL_utf8_space
+#define PL_Gutf8_tolower       PL_utf8_tolower
+#define PL_Gutf8_totitle       PL_utf8_totitle
+#define PL_Gutf8_toupper       PL_utf8_toupper
+#define PL_Gutf8_upper         PL_utf8_upper
 #define PL_Gxiv_arenaroot      PL_xiv_arenaroot
 #define PL_Gxiv_root           PL_xiv_root
 #define PL_Gxnv_root           PL_xnv_root
index 9a9ada6..ac13e65 100644 (file)
@@ -362,6 +362,31 @@ instr
 intro_my
 intuit_more
 invert
+is_uni_alnum
+is_uni_alnum_lc
+is_uni_alpha
+is_uni_alpha_lc
+is_uni_digit
+is_uni_digit_lc
+is_uni_idfirst
+is_uni_idfirst_lc
+is_uni_lower
+is_uni_lower_lc
+is_uni_print
+is_uni_print_lc
+is_uni_space
+is_uni_space_lc
+is_uni_upper
+is_uni_upper_lc
+is_utf8_alnum
+is_utf8_alpha
+is_utf8_digit
+is_utf8_idfirst
+is_utf8_lower
+is_utf8_mark
+is_utf8_print
+is_utf8_space
+is_utf8_upper
 jmaybe
 keyword
 leave_scope
@@ -1006,6 +1031,7 @@ sv_isa
 sv_isobject
 sv_iv
 sv_len
+sv_len_utf8
 sv_magic
 sv_mortalcopy
 sv_newmortal
@@ -1052,15 +1078,32 @@ sv_usepvn_mg
 sv_uv
 sv_vcatpvfn
 sv_vsetpvfn
+swash_fetch
+swash_init
 taint_env
 taint_proper
+to_uni_lower
+to_uni_lower_lc
+to_uni_title
+to_uni_title_lc
+to_uni_upper
+to_uni_upper_lc
+to_utf8_lower
+to_utf8_title
+to_utf8_upper
 too_few_arguments
 too_many_arguments
 unlnk
 unlock_condpair
 unshare_hek
 unsharepvn
+utf16_to_utf8
+utf16_to_utf8_reversed
+utf8_distance
+utf8_hop
+utf8_to_uv
 utilize
+uv_to_utf8
 wait4pid
 warn
 watch
diff --git a/handy.h b/handy.h
index e74a306..bda9d5c 100644 (file)
--- a/handy.h
+++ b/handy.h
@@ -238,6 +238,54 @@ typedef unsigned short     U16;
 #  endif
 #endif /* USE_NEXT_CTYPE */
 
+#define isALNUM_uni(c)         is_uni_alnum(c)
+#define isIDFIRST_uni(c)       is_uni_idfirst(c)
+#define isALPHA_uni(c)         is_uni_alpha(c)
+#define isSPACE_uni(c)         is_uni_space(c)
+#define isDIGIT_uni(c)         is_uni_digit(c)
+#define isUPPER_uni(c)         is_uni_upper(c)
+#define isLOWER_uni(c)         is_uni_lower(c)
+#define isPRINT_uni(c)         is_uni_print(c)
+#define toUPPER_uni(c)         to_uni_upper(c)
+#define toTITLE_uni(c)         to_uni_title(c)
+#define toLOWER_uni(c)         to_uni_lower(c)
+
+#define isALNUM_LC_uni(c)      (c < 256 ? isALNUM_LC(c) : is_uni_alnum_lc(c))
+#define isIDFIRST_LC_uni(c)    (c < 256 ? isIDFIRST_LC(c) : is_uni_idfirst_lc(c))
+#define isALPHA_LC_uni(c)      (c < 256 ? isALPHA_LC(c) : is_uni_alpha_lc(c))
+#define isSPACE_LC_uni(c)      (c < 256 ? isSPACE_LC(c) : is_uni_space_lc(c))
+#define isDIGIT_LC_uni(c)      (c < 256 ? isDIGIT_LC(c) : is_uni_digit_lc(c))
+#define isUPPER_LC_uni(c)      (c < 256 ? isUPPER_LC(c) : is_uni_upper_lc(c))
+#define isLOWER_LC_uni(c)      (c < 256 ? isLOWER_LC(c) : is_uni_lower_lc(c))
+#define isPRINT_LC_uni(c)      (c < 256 ? isPRINT_LC(c) : is_uni_print_lc(c))
+#define toUPPER_LC_uni(c)      (c < 256 ? toUPPER_LC(c) : to_uni_upper_lc(c))
+#define toTITLE_LC_uni(c)      (c < 256 ? toUPPER_LC(c) : to_uni_title_lc(c))
+#define toLOWER_LC_uni(c)      (c < 256 ? toLOWER_LC(c) : to_uni_lower_lc(c))
+
+#define isALNUM_utf8(p)                is_utf8_alnum(p)
+#define isIDFIRST_utf8(p)      is_utf8_idfirst(p)
+#define isALPHA_utf8(p)                is_utf8_alpha(p)
+#define isSPACE_utf8(p)                is_utf8_space(p)
+#define isDIGIT_utf8(p)                is_utf8_digit(p)
+#define isUPPER_utf8(p)                is_utf8_upper(p)
+#define isLOWER_utf8(p)                is_utf8_lower(p)
+#define isPRINT_utf8(p)                is_utf8_print(p)
+#define toUPPER_utf8(p)                to_utf8_upper(p)
+#define toTITLE_utf8(p)                to_utf8_title(p)
+#define toLOWER_utf8(p)                to_utf8_lower(p)
+
+#define isALNUM_LC_utf8(p)     isALNUM_LC_uni(utf8_to_uv(p, 0))
+#define isIDFIRST_LC_utf8(p)   isIDFIRST_LC_uni(utf8_to_uv(p, 0))
+#define isALPHA_LC_utf8(p)     isALPHA_LC_uni(utf8_to_uv(p, 0))
+#define isSPACE_LC_utf8(p)     isSPACE_LC_uni(utf8_to_uv(p, 0))
+#define isDIGIT_LC_utf8(p)     isDIGIT_LC_uni(utf8_to_uv(p, 0))
+#define isUPPER_LC_utf8(p)     isUPPER_LC_uni(utf8_to_uv(p, 0))
+#define isLOWER_LC_utf8(p)     isLOWER_LC_uni(utf8_to_uv(p, 0))
+#define isPRINT_LC_utf8(p)     isPRINT_LC_uni(utf8_to_uv(p, 0))
+#define toUPPER_LC_utf8(p)     toUPPER_LC_uni(utf8_to_uv(p, 0))
+#define toTITLE_LC_utf8(p)     toTITLE_LC_uni(utf8_to_uv(p, 0))
+#define toLOWER_LC_utf8(p)     toLOWER_LC_uni(utf8_to_uv(p, 0))
+
 /* This conversion works both ways, strangely enough. */
 #define toCTRL(c)    (toUPPER(c) ^ 64)
 
diff --git a/lib/unicode/ArabLink.pl b/lib/unicode/ArabLink.pl
new file mode 100644 (file)
index 0000000..ee4630e
--- /dev/null
@@ -0,0 +1,31 @@
+return <<'END';
+0622   0625    R
+0626           D
+0627           R
+0628           D
+0629           R
+062a   062e    D
+062f   0632    R
+0633   063a    D
+0640           C
+0641   0647    D
+0648   0649    R
+064a           D
+0671           U
+0672   0673    R
+0674           U
+0675   0677    R
+0678   0687    D
+0688   0699    R
+069a   06b7    D
+06ba   06be    D
+06c0           R
+06c1           D
+06c2   06cb    R
+06cc           D
+06cd           R
+06ce           D
+06d0   06d1    D
+06d2   06d3    R
+06d5           U
+END
diff --git a/lib/unicode/ArabLnkGrp.pl b/lib/unicode/ArabLnkGrp.pl
new file mode 100644 (file)
index 0000000..e107eb7
--- /dev/null
@@ -0,0 +1,62 @@
+return <<'END';
+0622   0623    ALEF
+0624           WAW
+0625           ALEF
+0626           YA
+0627           ALEF
+0628           BAA
+0629           TAA MARBUTAH
+062a   062b    BAA
+062c   062e    HAA
+062f   0630    DAL
+0631   0632    RA
+0633   0634    SEEN
+0635   0636    SAD
+0637   0638    TAH
+0639   063a    AIN
+0640           <no shaping>
+0641           FA
+0642           QAF
+0643           CAF
+0644           LAM
+0645           MEEM
+0646           NOON
+0647           HA
+0648           WAW
+0649           ALEF MAQSURAH
+064a           YA
+0671           <no shaping>
+0672   0673    ALEF
+0674           <no shaping>
+0675           ALEF
+0676   0677    WAW
+0678           YA
+0679   0680    BAA
+0681   0687    HAA
+0688   0690    DAL
+0691   0699    RA
+069a   069c    SEEN
+069d   069e    SAD
+069f           TAH
+06a0           AIN
+06a1   06a6    FA
+06a7   06a8    QAF
+06a9           GAF
+06aa           SWASH CAF
+06ab           GAF
+06ac   06ae    CAF
+06af   06b4    GAF
+06b5   06b7    LAM
+06ba   06bd    NOON
+06be           KNOTTED HA
+06c0           TAA MARBUTAH
+06c1           HA GOAL
+06c2   06c3    HAMZAH ON HA GOAL
+06c4   06cb    WAW
+06cc           YA
+06cd           ALEF MAQSURAH
+06ce           YA
+06d0   06d1    YA
+06d2   06d3    YA BARREE
+06d5           <no shaping>
+END
diff --git a/lib/unicode/Bidirectional.pl b/lib/unicode/Bidirectional.pl
new file mode 100644 (file)
index 0000000..1523d50
--- /dev/null
@@ -0,0 +1,369 @@
+return <<'END';
+0000   0008    ON
+0009           S
+000a   001f    ON
+0020           WS
+0021   0022    ON
+0023   0025    ET
+0026   002a    ON
+002b           ET
+002c           CS
+002d           ET
+002e           CS
+002f           ES
+0030   0039    EN
+003a           CS
+003b   0040    ON
+0041   005a    L
+005b   0060    ON
+0061   007a    L
+007b   009f    ON
+00a0           WS
+00a1           ON
+00a2   00a5    ET
+00a6   00af    ON
+00b0   00b1    ET
+00b2   00b3    EN
+00b4   00b8    ON
+00b9           EN
+00ba   00bf    ON
+00c0   00d6    L
+00d7           ON
+00d8   00f6    L
+00f7           ON
+00f8   01f5    L
+01fa   0217    L
+0250   02a8    L
+02b0   02de    L
+02e0   02e9    L
+0300   0345    L
+0360   0361    L
+0374   0375    L
+037a           L
+037e           L
+0384   038a    L
+038c           L
+038e   03a1    L
+03a3   03ce    L
+03d0   03d6    L
+03da           L
+03dc           L
+03de           L
+03e0           L
+03e2   03f3    L
+0401   040c    L
+040e   044f    L
+0451   045c    L
+045e   0486    L
+0490   04c4    L
+04c7   04c8    L
+04cb   04cc    L
+04d0   04eb    L
+04ee   04f5    L
+04f8   04f9    L
+0531   0556    L
+0559   055f    L
+0561   0587    L
+0589           L
+0591   05a1    R
+05a3   05b9    R
+05bb   05c4    R
+05d0   05ea    R
+05f0   05f4    R
+060c           R
+061b           R
+061f           R
+0621   063a    R
+0640   0652    R
+0660   0669    AN
+066a           ET
+066b   066c    AN
+066d           R
+0670   06b7    R
+06ba   06be    R
+06c0   06ce    R
+06d0   06ed    R
+06f0   06f9    EN
+0901   0903    L
+0905   0939    L
+093c   094d    L
+0950   0954    L
+0958   0970    L
+0981   0983    L
+0985   098c    L
+098f   0990    L
+0993   09a8    L
+09aa   09b0    L
+09b2           L
+09b6   09b9    L
+09bc           L
+09be   09c4    L
+09c7   09c8    L
+09cb   09cd    L
+09d7           L
+09dc   09dd    L
+09df   09e3    L
+09e6   09fa    L
+0a02           L
+0a05   0a0a    L
+0a0f   0a10    L
+0a13   0a28    L
+0a2a   0a30    L
+0a32   0a33    L
+0a35   0a36    L
+0a38   0a39    L
+0a3c           L
+0a3e   0a42    L
+0a47   0a48    L
+0a4b   0a4d    L
+0a59   0a5c    L
+0a5e           L
+0a66   0a74    L
+0a81   0a83    L
+0a85   0a8b    L
+0a8d           L
+0a8f   0a91    L
+0a93   0aa8    L
+0aaa   0ab0    L
+0ab2   0ab3    L
+0ab5   0ab9    L
+0abc   0ac5    L
+0ac7   0ac9    L
+0acb   0acd    L
+0ad0           L
+0ae0           L
+0ae6   0aef    L
+0b01   0b03    L
+0b05   0b0c    L
+0b0f   0b10    L
+0b13   0b28    L
+0b2a   0b30    L
+0b32   0b33    L
+0b36   0b39    L
+0b3c   0b43    L
+0b47   0b48    L
+0b4b   0b4d    L
+0b56   0b57    L
+0b5c   0b5d    L
+0b5f   0b61    L
+0b66   0b70    L
+0b82   0b83    L
+0b85   0b8a    L
+0b8e   0b90    L
+0b92   0b95    L
+0b99   0b9a    L
+0b9c           L
+0b9e   0b9f    L
+0ba3   0ba4    L
+0ba8   0baa    L
+0bae   0bb5    L
+0bb7   0bb9    L
+0bbe   0bc2    L
+0bc6   0bc8    L
+0bca   0bcd    L
+0bd7           L
+0be7   0bf2    L
+0c01   0c03    L
+0c05   0c0c    L
+0c0e   0c10    L
+0c12   0c28    L
+0c2a   0c33    L
+0c35   0c39    L
+0c3e   0c44    L
+0c46   0c48    L
+0c4a   0c4d    L
+0c55   0c56    L
+0c60   0c61    L
+0c66   0c6f    L
+0c82   0c83    L
+0c85   0c8c    L
+0c8e   0c90    L
+0c92   0ca8    L
+0caa   0cb3    L
+0cb5   0cb9    L
+0cbe   0cc4    L
+0cc6   0cc8    L
+0cca   0ccd    L
+0cd5   0cd6    L
+0cde           L
+0ce0   0ce1    L
+0ce6   0cef    L
+0d02   0d03    L
+0d05   0d0c    L
+0d0e   0d10    L
+0d12   0d28    L
+0d2a   0d39    L
+0d3e   0d43    L
+0d46   0d48    L
+0d4a   0d4d    L
+0d57           L
+0d60   0d61    L
+0d66   0d6f    L
+0e01   0e3a    L
+0e3f   0e5b    L
+0e81   0e82    L
+0e84           L
+0e87   0e88    L
+0e8a           L
+0e8d           L
+0e94   0e97    L
+0e99   0e9f    L
+0ea1   0ea3    L
+0ea5           L
+0ea7           L
+0eaa   0eab    L
+0ead   0eb9    L
+0ebb   0ebd    L
+0ec0   0ec4    L
+0ec6           L
+0ec8   0ecd    L
+0ed0   0ed9    L
+0edc   0edd    L
+0f00   0f47    L
+0f49   0f69    L
+0f71   0f8b    L
+0f90   0f95    L
+0f97           L
+0f99   0fad    L
+0fb1   0fb7    L
+0fb9           L
+10a0   10c5    L
+10d0   10f6    L
+10fb           L
+1100   1159    L
+115f   11a2    L
+11a8   11f9    L
+1e00   1e9b    L
+1ea0   1ef9    L
+1f00   1f15    L
+1f18   1f1d    L
+1f20   1f45    L
+1f48   1f4d    L
+1f50   1f57    L
+1f59           L
+1f5b           L
+1f5d           L
+1f5f   1f7d    L
+1f80   1fb4    L
+1fb6   1fc4    L
+1fc6   1fd3    L
+1fd6   1fdb    L
+1fdd   1fef    L
+1ff2   1ff4    L
+1ff6   1ffe    L
+2000   2006    WS
+2007           CS
+2008   200b    WS
+200c   200d    ON
+200e           L
+200f           R
+2010   2027    ON
+2028   2029    B
+202a   202e    ON
+2030   2034    ET
+2035   2046    ON
+206a   206f    ON
+2070           EN
+2074   2079    EN
+207a   207b    ET
+207c   207f    ON
+2080   2089    EN
+208a   208b    ET
+208c   208e    ON
+20a0   20ac    ET
+20d0   20e1    L
+2100   2138    ON
+2153   215f    ON
+2160   2182    L
+2190   21ea    ON
+2200   2211    ON
+2212   2213    ET
+2214   22f1    ON
+2300           ON
+2302   2335    ON
+2336   237a    L
+2400   2424    ON
+2440   244a    ON
+2460   24ea    ON
+2500   2595    ON
+25a0   25ef    ON
+2600   2613    ON
+261a   266f    ON
+2701   2704    ON
+2706   2709    ON
+270c   2727    ON
+2729   274b    ON
+274d           ON
+274f   2752    ON
+2756           ON
+2758   275e    ON
+2761   2767    ON
+2776   2794    ON
+2798   27af    ON
+27b1   27be    ON
+3000           WS
+3001   3020    ON
+3021   302f    L
+3030   3037    ON
+303f           ON
+3041   3094    L
+3099   309e    L
+30a1   30fe    L
+3105   312c    L
+3131   318e    L
+3190   319f    L
+3200   321c    L
+3220   3243    L
+3260   327b    L
+327f   32b0    L
+32c0   32cb    L
+32d0   32fe    L
+3300   3376    L
+337b   33dd    L
+33e0   33fe    L
+4e00   9fa5    L
+ac00   d7a3    L
+d800   db7f    L
+db80   dbff    L
+dc00   dfff    L
+e000   f8ff    L
+f900   fa2d    L
+fb00   fb06    L
+fb13   fb17    L
+fb1e   fb36    R
+fb38   fb3c    R
+fb3e           R
+fb40   fb41    R
+fb43   fb44    R
+fb46   fbb1    R
+fbd3   fd3d    R
+fd3e   fd3f    ON
+fd50   fd8f    R
+fd92   fdc7    R
+fdf0   fdfb    R
+fe20   fe23    ON
+fe30   fe44    ON
+fe49   fe52    ON
+fe54   fe66    ON
+fe68   fe6b    ON
+fe70   fe72    R
+fe74           R
+fe76   fefc    R
+feff           ON
+ff01   ff0f    ON
+ff10   ff19    EN
+ff1a   ff20    ON
+ff21   ff3a    L
+ff3b   ff40    ON
+ff41   ff5a    L
+ff5b   ff5e    ON
+ff61   ff64    ON
+ff65   ffbe    L
+ffc2   ffc7    L
+ffca   ffcf    L
+ffd2   ffd7    L
+ffda   ffdc    L
+ffe0   ffe6    ON
+ffe8   ffee    ON
+fffc   fffd    ON
+END
diff --git a/lib/unicode/Block.pl b/lib/unicode/Block.pl
new file mode 100644 (file)
index 0000000..1c0b280
--- /dev/null
@@ -0,0 +1,71 @@
+return <<'END';
+0000   007F    Basic Latin
+0080   00FF    Latin-1 Supplement
+0100   017F    Latin Extended-A
+0180   024F    Latin Extended-B
+0250   02AF    IPA Extensions
+02B0   02FF    Spacing Modifier Letters
+0300   036F    Combining Diacritical Marks
+0370   03FF    Greek
+0400   04FF    Cyrillic
+0530   058F    Armenian
+0590   05FF    Hebrew
+0600   06FF    Arabic
+0900   097F    Devanagari
+0980   09FF    Bengali
+0A00   0A7F    Gurmukhi
+0A80   0AFF    Gujarati
+0B00   0B7F    Oriya
+0B80   0BFF    Tamil
+0C00   0C7F    Telugu
+0C80   0CFF    Kannada
+0D00   0D7F    Malayalam
+0E00   0E7F    Thai
+0E80   0EFF    Lao
+0F00   0FBF    Tibetan
+10A0   10FF    Georgian
+1100   11FF    Hangul Jamo
+1E00   1EFF    Latin Extended Additional
+1F00   1FFF    Greek Extended
+2000   206F    General Punctuation
+2070   209F    Superscripts and Subscripts
+20A0   20CF    Currency Symbols
+20D0   20FF    Combining Marks for Symbols
+2100   214F    Letterlike Symbols
+2150   218F    Number Forms
+2190   21FF    Arrows
+2200   22FF    Mathematical Operators
+2300   23FF    Miscellaneous Technical
+2400   243F    Control Pictures
+2440   245F    Optical Character Recognition
+2460   24FF    Enclosed Alphanumerics
+2500   257F    Box Drawing
+2580   259F    Block Elements
+25A0   25FF    Geometric Shapes
+2600   26FF    Miscellaneous Symbols
+2700   27BF    Dingbats
+3000   303F    CJK Symbols and Punctuation
+3040   309F    Hiragana
+30A0   30FF    Katakana
+3100   312F    Bopomofo
+3130   318F    Hangul Compatibility Jamo
+3190   319F    Kanbun
+3200   32FF    Enclosed CJK Letters and Months
+3300   33FF    CJK Compatibility
+4E00   9FFF    CJK Unified Ideographs
+AC00   D7A3    Hangul Syllables
+D800   DB7F    High Surrogates
+DB80   DBFF    High Private Use Surrogates
+DC00   DFFF    Low Surrogates
+E000   F8FF    Private Use
+F900   FAFF    CJK Compatibility Ideographs
+FB00   FB4F    Alphabetic Presentation Forms
+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
+FEFF   FEFF    Specials
+FFF0   FFFF    Specials
+END
diff --git a/lib/unicode/Category.pl b/lib/unicode/Category.pl
new file mode 100644 (file)
index 0000000..18d6ab5
--- /dev/null
@@ -0,0 +1,1326 @@
+return <<'END';
+0000   001f    Cc
+0020           Zs
+0021   0023    Po
+0024           Sc
+0025   0027    Po
+0028           Ps
+0029           Pe
+002a           Po
+002b           Sm
+002c           Po
+002d           Pd
+002e   002f    Po
+0030   0039    Nd
+003a   003b    Po
+003c   003e    Sm
+003f   0040    Po
+0041   005a    Lu
+005b           Ps
+005c           Po
+005d           Pe
+005e           Sk
+005f           Pc
+0060           Sk
+0061   007a    Ll
+007b           Ps
+007c           Sm
+007d           Pe
+007e           Sm
+007f   009f    Cc
+00a0           Zs
+00a1           Po
+00a2   00a5    Sc
+00a6   00a7    So
+00a8           Sk
+00a9           So
+00aa           Ll
+00ab           Ps
+00ac           Sm
+00ad           Pd
+00ae           So
+00af           Sk
+00b0           So
+00b1           Sm
+00b2   00b3    No
+00b4           Sk
+00b5           Ll
+00b6           So
+00b7           Po
+00b8           Sk
+00b9           No
+00ba           Ll
+00bb           Pe
+00bc   00be    No
+00bf           Po
+00c0   00d6    Lu
+00d7           Sm
+00d8   00de    Lu
+00df   00f6    Ll
+00f7           Sm
+00f8   00ff    Ll
+0100           Lu
+0101           Ll
+0102           Lu
+0103           Ll
+0104           Lu
+0105           Ll
+0106           Lu
+0107           Ll
+0108           Lu
+0109           Ll
+010a           Lu
+010b           Ll
+010c           Lu
+010d           Ll
+010e           Lu
+010f           Ll
+0110           Lu
+0111           Ll
+0112           Lu
+0113           Ll
+0114           Lu
+0115           Ll
+0116           Lu
+0117           Ll
+0118           Lu
+0119           Ll
+011a           Lu
+011b           Ll
+011c           Lu
+011d           Ll
+011e           Lu
+011f           Ll
+0120           Lu
+0121           Ll
+0122           Lu
+0123           Ll
+0124           Lu
+0125           Ll
+0126           Lu
+0127           Ll
+0128           Lu
+0129           Ll
+012a           Lu
+012b           Ll
+012c           Lu
+012d           Ll
+012e           Lu
+012f           Ll
+0130           Lu
+0131           Ll
+0132           Lu
+0133           Ll
+0134           Lu
+0135           Ll
+0136           Lu
+0137   0138    Ll
+0139           Lu
+013a           Ll
+013b           Lu
+013c           Ll
+013d           Lu
+013e           Ll
+013f           Lu
+0140           Ll
+0141           Lu
+0142           Ll
+0143           Lu
+0144           Ll
+0145           Lu
+0146           Ll
+0147           Lu
+0148   0149    Ll
+014a           Lu
+014b           Ll
+014c           Lu
+014d           Ll
+014e           Lu
+014f           Ll
+0150           Lu
+0151           Ll
+0152           Lu
+0153           Ll
+0154           Lu
+0155           Ll
+0156           Lu
+0157           Ll
+0158           Lu
+0159           Ll
+015a           Lu
+015b           Ll
+015c           Lu
+015d           Ll
+015e           Lu
+015f           Ll
+0160           Lu
+0161           Ll
+0162           Lu
+0163           Ll
+0164           Lu
+0165           Ll
+0166           Lu
+0167           Ll
+0168           Lu
+0169           Ll
+016a           Lu
+016b           Ll
+016c           Lu
+016d           Ll
+016e           Lu
+016f           Ll
+0170           Lu
+0171           Ll
+0172           Lu
+0173           Ll
+0174           Lu
+0175           Ll
+0176           Lu
+0177           Ll
+0178   0179    Lu
+017a           Ll
+017b           Lu
+017c           Ll
+017d           Lu
+017e   0180    Ll
+0181   0182    Lu
+0183           Ll
+0184           Lu
+0185           Ll
+0186   0187    Lu
+0188           Ll
+0189   018b    Lu
+018c   018d    Ll
+018e   0191    Lu
+0192           Ll
+0193   0194    Lu
+0195           Ll
+0196   0198    Lu
+0199   019b    Ll
+019c   019d    Lu
+019e           Ll
+019f   01a0    Lu
+01a1           Ll
+01a2           Lu
+01a3           Ll
+01a4           Lu
+01a5           Ll
+01a6   01a7    Lu
+01a8           Ll
+01a9           Lu
+01aa           Lo
+01ab           Ll
+01ac           Lu
+01ad           Ll
+01ae   01af    Lu
+01b0           Ll
+01b1   01b3    Lu
+01b4           Ll
+01b5           Lu
+01b6           Ll
+01b7   01b8    Lu
+01b9   01ba    Ll
+01bb           Lo
+01bc           Lu
+01bd           Ll
+01be   01c3    Lo
+01c4           Lu
+01c5           Lt
+01c6           Ll
+01c7           Lu
+01c8           Lt
+01c9           Ll
+01ca           Lu
+01cb           Lt
+01cc           Ll
+01cd           Lu
+01ce           Ll
+01cf           Lu
+01d0           Ll
+01d1           Lu
+01d2           Ll
+01d3           Lu
+01d4           Ll
+01d5           Lu
+01d6           Ll
+01d7           Lu
+01d8           Ll
+01d9           Lu
+01da           Ll
+01db           Lu
+01dc   01dd    Ll
+01de           Lu
+01df           Ll
+01e0           Lu
+01e1           Ll
+01e2           Lu
+01e3           Ll
+01e4           Lu
+01e5           Ll
+01e6           Lu
+01e7           Ll
+01e8           Lu
+01e9           Ll
+01ea           Lu
+01eb           Ll
+01ec           Lu
+01ed           Ll
+01ee           Lu
+01ef   01f0    Ll
+01f1           Lu
+01f2           Lt
+01f3           Ll
+01f4           Lu
+01f5           Ll
+01fa           Lu
+01fb           Ll
+01fc           Lu
+01fd           Ll
+01fe           Lu
+01ff           Ll
+0200           Lu
+0201           Ll
+0202           Lu
+0203           Ll
+0204           Lu
+0205           Ll
+0206           Lu
+0207           Ll
+0208           Lu
+0209           Ll
+020a           Lu
+020b           Ll
+020c           Lu
+020d           Ll
+020e           Lu
+020f           Ll
+0210           Lu
+0211           Ll
+0212           Lu
+0213           Ll
+0214           Lu
+0215           Ll
+0216           Lu
+0217           Ll
+0250   02a8    Ll
+02b0   02b8    Lm
+02b9   02ba    Sk
+02bb   02c1    Lm
+02c2   02cf    Sk
+02d0   02d1    Lm
+02d2   02de    Sk
+02e0   02e4    Lm
+02e5   02e9    Sk
+0300   0345    Mn
+0360   0361    Mn
+0374   0375    Po
+037a           Lm
+037e           Po
+0384   0385    Sk
+0386           Lu
+0387           Po
+0388   038a    Lu
+038c           Lu
+038e   038f    Lu
+0390           Ll
+0391   03a1    Lu
+03a3   03ab    Lu
+03ac   03ce    Ll
+03d0   03d1    Ll
+03d2   03d4    Lu
+03d5   03d6    Ll
+03da           Lu
+03dc           Lu
+03de           Lu
+03e0           Lu
+03e2           Lu
+03e3           Ll
+03e4           Lu
+03e5           Ll
+03e6           Lu
+03e7           Ll
+03e8           Lu
+03e9           Ll
+03ea           Lu
+03eb           Ll
+03ec           Lu
+03ed           Ll
+03ee           Lu
+03ef   03f2    Ll
+03f3           Lo
+0401   040c    Lu
+040e   042f    Lu
+0430   044f    Ll
+0451   045c    Ll
+045e   045f    Ll
+0460           Lu
+0461           Ll
+0462           Lu
+0463           Ll
+0464           Lu
+0465           Ll
+0466           Lu
+0467           Ll
+0468           Lu
+0469           Ll
+046a           Lu
+046b           Ll
+046c           Lu
+046d           Ll
+046e           Lu
+046f           Ll
+0470           Lu
+0471           Ll
+0472           Lu
+0473           Ll
+0474           Lu
+0475           Ll
+0476           Lu
+0477           Ll
+0478           Lu
+0479           Ll
+047a           Lu
+047b           Ll
+047c           Lu
+047d           Ll
+047e           Lu
+047f           Ll
+0480           Lu
+0481           Ll
+0482           So
+0483   0486    Mn
+0490           Lu
+0491           Ll
+0492           Lu
+0493           Ll
+0494           Lu
+0495           Ll
+0496           Lu
+0497           Ll
+0498           Lu
+0499           Ll
+049a           Lu
+049b           Ll
+049c           Lu
+049d           Ll
+049e           Lu
+049f           Ll
+04a0           Lu
+04a1           Ll
+04a2           Lu
+04a3           Ll
+04a4           Lu
+04a5           Ll
+04a6           Lu
+04a7           Ll
+04a8           Lu
+04a9           Ll
+04aa           Lu
+04ab           Ll
+04ac           Lu
+04ad           Ll
+04ae           Lu
+04af           Ll
+04b0           Lu
+04b1           Ll
+04b2           Lu
+04b3           Ll
+04b4           Lu
+04b5           Ll
+04b6           Lu
+04b7           Ll
+04b8           Lu
+04b9           Ll
+04ba           Lu
+04bb           Ll
+04bc           Lu
+04bd           Ll
+04be           Lu
+04bf           Ll
+04c0           Lo
+04c1           Lu
+04c2           Ll
+04c3           Lu
+04c4           Ll
+04c7           Lu
+04c8           Ll
+04cb           Lu
+04cc           Ll
+04d0           Lu
+04d1           Ll
+04d2           Lu
+04d3           Ll
+04d4           Lu
+04d5           Ll
+04d6           Lu
+04d7           Ll
+04d8           Lu
+04d9           Ll
+04da           Lu
+04db           Ll
+04dc           Lu
+04dd           Ll
+04de           Lu
+04df           Ll
+04e0           Lu
+04e1           Ll
+04e2           Lu
+04e3           Ll
+04e4           Lu
+04e5           Ll
+04e6           Lu
+04e7           Ll
+04e8           Lu
+04e9           Ll
+04ea           Lu
+04eb           Ll
+04ee           Lu
+04ef           Ll
+04f0           Lu
+04f1           Ll
+04f2           Lu
+04f3           Ll
+04f4           Lu
+04f5           Ll
+04f8           Lu
+04f9           Ll
+0531   0556    Lu
+0559           Lm
+055a   055f    Po
+0561   0587    Ll
+0589           Po
+0591   05a1    Mn
+05a3   05b9    Mn
+05bb   05bd    Mn
+05be           Po
+05bf           Mn
+05c0           Po
+05c1   05c2    Mn
+05c3           Po
+05c4           Mn
+05d0   05ea    Lo
+05f0   05f2    Lo
+05f3   05f4    Po
+060c           Po
+061b           Po
+061f           Po
+0621   063a    Lo
+0640           Lm
+0641   064a    Lo
+064b   0652    Mn
+0660   0669    Nd
+066a   066d    Po
+0670           Mn
+0671   06b7    Lo
+06ba   06be    Lo
+06c0   06ce    Lo
+06d0   06d3    Lo
+06d4           Po
+06d5           Lo
+06d6   06dc    Mn
+06dd   06de    Me
+06df   06e4    Mn
+06e5   06e6    Lm
+06e7   06e8    Mn
+06e9           So
+06ea   06ed    Mn
+06f0   06f9    Nd
+0901   0902    Mn
+0903           Mc
+0905   0939    Lo
+093c           Mn
+093d           Lo
+093e   0940    Mc
+0941   0948    Mn
+0949   094c    Mc
+094d           Mn
+0950           So
+0951   0954    Mn
+0958   0961    Lo
+0962   0963    Mn
+0964   0965    Po
+0966   096f    Nd
+0970           Po
+0981           Mn
+0982   0983    Mc
+0985   098c    Lo
+098f   0990    Lo
+0993   09a8    Lo
+09aa   09b0    Lo
+09b2           Lo
+09b6   09b9    Lo
+09bc           Mn
+09be   09c0    Mc
+09c1   09c4    Mn
+09c7   09c8    Mc
+09cb   09cc    Mc
+09cd           Mn
+09d7           Mc
+09dc   09dd    Lo
+09df   09e1    Lo
+09e2   09e3    Mn
+09e6   09ef    Nd
+09f0   09f1    Lo
+09f2   09f3    Sc
+09f4   09f9    No
+09fa           So
+0a02           Mn
+0a05   0a0a    Lo
+0a0f   0a10    Lo
+0a13   0a28    Lo
+0a2a   0a30    Lo
+0a32   0a33    Lo
+0a35   0a36    Lo
+0a38   0a39    Lo
+0a3c           Mn
+0a3e   0a40    Mc
+0a41   0a42    Mn
+0a47   0a48    Mn
+0a4b   0a4d    Mn
+0a59   0a5c    Lo
+0a5e           Lo
+0a66   0a6f    Nd
+0a70   0a71    Mn
+0a72   0a74    Lo
+0a81   0a82    Mn
+0a83           Mc
+0a85   0a8b    Lo
+0a8d           Lo
+0a8f   0a91    Lo
+0a93   0aa8    Lo
+0aaa   0ab0    Lo
+0ab2   0ab3    Lo
+0ab5   0ab9    Lo
+0abc           Mn
+0abd           Lo
+0abe   0ac0    Mc
+0ac1   0ac5    Mn
+0ac7   0ac8    Mn
+0ac9           Mc
+0acb   0acc    Mc
+0acd           Mn
+0ad0           So
+0ae0           Lo
+0ae6   0aef    Nd
+0b01           Mn
+0b02   0b03    Mc
+0b05   0b0c    Lo
+0b0f   0b10    Lo
+0b13   0b28    Lo
+0b2a   0b30    Lo
+0b32   0b33    Lo
+0b36   0b39    Lo
+0b3c           Mn
+0b3d           Lo
+0b3e           Mc
+0b3f           Mn
+0b40           Mc
+0b41   0b43    Mn
+0b47   0b48    Mc
+0b4b   0b4c    Mc
+0b4d           Mn
+0b56           Mn
+0b57           Mc
+0b5c   0b5d    Lo
+0b5f   0b61    Lo
+0b66   0b6f    Nd
+0b70           So
+0b82           Mn
+0b83           Mc
+0b85   0b8a    Lo
+0b8e   0b90    Lo
+0b92   0b95    Lo
+0b99   0b9a    Lo
+0b9c           Lo
+0b9e   0b9f    Lo
+0ba3   0ba4    Lo
+0ba8   0baa    Lo
+0bae   0bb5    Lo
+0bb7   0bb9    Lo
+0bbe   0bbf    Mc
+0bc0           Mn
+0bc1   0bc2    Mc
+0bc6   0bc8    Mc
+0bca   0bcc    Mc
+0bcd           Mn
+0bd7           Mc
+0be7   0bef    Nd
+0bf0   0bf2    No
+0c01   0c03    Mc
+0c05   0c0c    Lo
+0c0e   0c10    Lo
+0c12   0c28    Lo
+0c2a   0c33    Lo
+0c35   0c39    Lo
+0c3e   0c40    Mn
+0c41   0c44    Mc
+0c46   0c48    Mn
+0c4a   0c4d    Mn
+0c55   0c56    Mn
+0c60   0c61    Lo
+0c66   0c6f    Nd
+0c82   0c83    Mc
+0c85   0c8c    Lo
+0c8e   0c90    Lo
+0c92   0ca8    Lo
+0caa   0cb3    Lo
+0cb5   0cb9    Lo
+0cbe           Mc
+0cbf           Mn
+0cc0   0cc4    Mc
+0cc6           Mn
+0cc7   0cc8    Mc
+0cca   0ccb    Mc
+0ccc   0ccd    Mn
+0cd5   0cd6    Mc
+0cde           Lo
+0ce0   0ce1    Lo
+0ce6   0cef    Nd
+0d02   0d03    Mc
+0d05   0d0c    Lo
+0d0e   0d10    Lo
+0d12   0d28    Lo
+0d2a   0d39    Lo
+0d3e   0d40    Mc
+0d41   0d43    Mn
+0d46   0d48    Mc
+0d4a   0d4c    Mc
+0d4d           Mn
+0d57           Mc
+0d60   0d61    Lo
+0d66   0d6f    Nd
+0e01   0e2e    Lo
+0e2f           Po
+0e30           Lo
+0e31           Mn
+0e32   0e33    Lo
+0e34   0e3a    Mn
+0e3f           Sc
+0e40   0e45    Lo
+0e46           Lm
+0e47   0e4e    Mn
+0e4f           So
+0e50   0e59    Nd
+0e5a   0e5b    Po
+0e81   0e82    Lo
+0e84           Lo
+0e87   0e88    Lo
+0e8a           Lo
+0e8d           Lo
+0e94   0e97    Lo
+0e99   0e9f    Lo
+0ea1   0ea3    Lo
+0ea5           Lo
+0ea7           Lo
+0eaa   0eab    Lo
+0ead   0eae    Lo
+0eaf           Po
+0eb0           Lo
+0eb1           Mn
+0eb2   0eb3    Lo
+0eb4   0eb9    Mn
+0ebb   0ebc    Mn
+0ebd           Lo
+0ec0   0ec4    Lo
+0ec6           Lm
+0ec8   0ecd    Mn
+0ed0   0ed9    Nd
+0edc   0edd    Lo
+0f00   0f03    So
+0f04   0f12    Po
+0f13   0f17    So
+0f18   0f19    Mn
+0f1a   0f1f    So
+0f20   0f29    Nd
+0f2a   0f33    No
+0f34           So
+0f35           Mn
+0f36           So
+0f37           Mn
+0f38           So
+0f39           Mn
+0f3a           Ps
+0f3b           Pe
+0f3c           Ps
+0f3d           Pe
+0f3e   0f3f    Mc
+0f40   0f47    Lo
+0f49   0f69    Lo
+0f71   0f7e    Mn
+0f7f           Mc
+0f80   0f84    Mn
+0f85           Po
+0f86   0f8b    Mn
+0f90   0f95    Mn
+0f97           Mn
+0f99   0fad    Mn
+0fb1   0fb7    Mn
+0fb9           Mn
+10a0   10c5    Lu
+10d0   10f6    Ll
+10fb           Po
+1100   1159    Lo
+115f   11a2    Lo
+11a8   11f9    Lo
+1e00           Lu
+1e01           Ll
+1e02           Lu
+1e03           Ll
+1e04           Lu
+1e05           Ll
+1e06           Lu
+1e07           Ll
+1e08           Lu
+1e09           Ll
+1e0a           Lu
+1e0b           Ll
+1e0c           Lu
+1e0d           Ll
+1e0e           Lu
+1e0f           Ll
+1e10           Lu
+1e11           Ll
+1e12           Lu
+1e13           Ll
+1e14           Lu
+1e15           Ll
+1e16           Lu
+1e17           Ll
+1e18           Lu
+1e19           Ll
+1e1a           Lu
+1e1b           Ll
+1e1c           Lu
+1e1d           Ll
+1e1e           Lu
+1e1f           Ll
+1e20           Lu
+1e21           Ll
+1e22           Lu
+1e23           Ll
+1e24           Lu
+1e25           Ll
+1e26           Lu
+1e27           Ll
+1e28           Lu
+1e29           Ll
+1e2a           Lu
+1e2b           Ll
+1e2c           Lu
+1e2d           Ll
+1e2e           Lu
+1e2f           Ll
+1e30           Lu
+1e31           Ll
+1e32           Lu
+1e33           Ll
+1e34           Lu
+1e35           Ll
+1e36           Lu
+1e37           Ll
+1e38           Lu
+1e39           Ll
+1e3a           Lu
+1e3b           Ll
+1e3c           Lu
+1e3d           Ll
+1e3e           Lu
+1e3f           Ll
+1e40           Lu
+1e41           Ll
+1e42           Lu
+1e43           Ll
+1e44           Lu
+1e45           Ll
+1e46           Lu
+1e47           Ll
+1e48           Lu
+1e49           Ll
+1e4a           Lu
+1e4b           Ll
+1e4c           Lu
+1e4d           Ll
+1e4e           Lu
+1e4f           Ll
+1e50           Lu
+1e51           Ll
+1e52           Lu
+1e53           Ll
+1e54           Lu
+1e55           Ll
+1e56           Lu
+1e57           Ll
+1e58           Lu
+1e59           Ll
+1e5a           Lu
+1e5b           Ll
+1e5c           Lu
+1e5d           Ll
+1e5e           Lu
+1e5f           Ll
+1e60           Lu
+1e61           Ll
+1e62           Lu
+1e63           Ll
+1e64           Lu
+1e65           Ll
+1e66           Lu
+1e67           Ll
+1e68           Lu
+1e69           Ll
+1e6a           Lu
+1e6b           Ll
+1e6c           Lu
+1e6d           Ll
+1e6e           Lu
+1e6f           Ll
+1e70           Lu
+1e71           Ll
+1e72           Lu
+1e73           Ll
+1e74           Lu
+1e75           Ll
+1e76           Lu
+1e77           Ll
+1e78           Lu
+1e79           Ll
+1e7a           Lu
+1e7b           Ll
+1e7c           Lu
+1e7d           Ll
+1e7e           Lu
+1e7f           Ll
+1e80           Lu
+1e81           Ll
+1e82           Lu
+1e83           Ll
+1e84           Lu
+1e85           Ll
+1e86           Lu
+1e87           Ll
+1e88           Lu
+1e89           Ll
+1e8a           Lu
+1e8b           Ll
+1e8c           Lu
+1e8d           Ll
+1e8e           Lu
+1e8f           Ll
+1e90           Lu
+1e91           Ll
+1e92           Lu
+1e93           Ll
+1e94           Lu
+1e95   1e9b    Ll
+1ea0           Lu
+1ea1           Ll
+1ea2           Lu
+1ea3           Ll
+1ea4           Lu
+1ea5           Ll
+1ea6           Lu
+1ea7           Ll
+1ea8           Lu
+1ea9           Ll
+1eaa           Lu
+1eab           Ll
+1eac           Lu
+1ead           Ll
+1eae           Lu
+1eaf           Ll
+1eb0           Lu
+1eb1           Ll
+1eb2           Lu
+1eb3           Ll
+1eb4           Lu
+1eb5           Ll
+1eb6           Lu
+1eb7           Ll
+1eb8           Lu
+1eb9           Ll
+1eba           Lu
+1ebb           Ll
+1ebc           Lu
+1ebd           Ll
+1ebe           Lu
+1ebf           Ll
+1ec0           Lu
+1ec1           Ll
+1ec2           Lu
+1ec3           Ll
+1ec4           Lu
+1ec5           Ll
+1ec6           Lu
+1ec7           Ll
+1ec8           Lu
+1ec9           Ll
+1eca           Lu
+1ecb           Ll
+1ecc           Lu
+1ecd           Ll
+1ece           Lu
+1ecf           Ll
+1ed0           Lu
+1ed1           Ll
+1ed2           Lu
+1ed3           Ll
+1ed4           Lu
+1ed5           Ll
+1ed6           Lu
+1ed7           Ll
+1ed8           Lu
+1ed9           Ll
+1eda           Lu
+1edb           Ll
+1edc           Lu
+1edd           Ll
+1ede           Lu
+1edf           Ll
+1ee0           Lu
+1ee1           Ll
+1ee2           Lu
+1ee3           Ll
+1ee4           Lu
+1ee5           Ll
+1ee6           Lu
+1ee7           Ll
+1ee8           Lu
+1ee9           Ll
+1eea           Lu
+1eeb           Ll
+1eec           Lu
+1eed           Ll
+1eee           Lu
+1eef           Ll
+1ef0           Lu
+1ef1           Ll
+1ef2           Lu
+1ef3           Ll
+1ef4           Lu
+1ef5           Ll
+1ef6           Lu
+1ef7           Ll
+1ef8           Lu
+1ef9           Ll
+1f00   1f07    Ll
+1f08   1f0f    Lu
+1f10   1f15    Ll
+1f18   1f1d    Lu
+1f20   1f27    Ll
+1f28   1f2f    Lu
+1f30   1f37    Ll
+1f38   1f3f    Lu
+1f40   1f45    Ll
+1f48   1f4d    Lu
+1f50   1f57    Ll
+1f59           Lu
+1f5b           Lu
+1f5d           Lu
+1f5f           Lu
+1f60   1f67    Ll
+1f68   1f6f    Lu
+1f70   1f7d    Ll
+1f80   1f87    Ll
+1f88   1f8f    Lu
+1f90   1f97    Ll
+1f98   1f9f    Lu
+1fa0   1fa7    Ll
+1fa8   1faf    Lu
+1fb0   1fb4    Ll
+1fb6   1fb7    Ll
+1fb8   1fbc    Lu
+1fbd           Sk
+1fbe           Lu
+1fbf   1fc1    Sk
+1fc2   1fc4    Ll
+1fc6   1fc7    Ll
+1fc8   1fcc    Lu
+1fcd   1fcf    Sk
+1fd0   1fd3    Ll
+1fd6   1fd7    Ll
+1fd8   1fdb    Lu
+1fdd   1fdf    Sk
+1fe0   1fe7    Ll
+1fe8   1fec    Lu
+1fed   1fef    Sk
+1ff2   1ff4    Ll
+1ff6   1ff7    Ll
+1ff8   1ffc    Lu
+1ffd   1ffe    Sk
+2000   200b    Zs
+200c   200f    Cf
+2010   2015    Pd
+2016   2017    Po
+2018           Ps
+2019           Pe
+201a   201c    Ps
+201d           Pe
+201e   201f    Ps
+2020   2027    Po
+2028           Zl
+2029           Zp
+202a   202e    Cf
+2030   2038    Po
+2039           Ps
+203a           Pe
+203b   203e    Po
+203f   2040    Pc
+2041   2043    Po
+2044           Sm
+2045           Ps
+2046           Pe
+206a   206f    Cf
+2070           No
+2074   2079    No
+207a   207c    Sm
+207d           Ps
+207e           Pe
+207f           Ll
+2080   2089    No
+208a   208c    Sm
+208d           Ps
+208e           Pe
+20a0   20ac    Sc
+20d0   20dc    Mn
+20dd   20e0    Me
+20e1           Mn
+2100   2101    So
+2102           Lu
+2103   2106    So
+2107           Lu
+2108   2109    So
+210a           Ll
+210b   210d    Lu
+210e   210f    Ll
+2110   2112    Lu
+2113           Ll
+2114           So
+2115           Lu
+2116   2117    So
+2118   211d    Lu
+211e   2123    So
+2124           Lu
+2125           So
+2126           Lu
+2127           So
+2128           Lu
+2129           So
+212a   212d    Lu
+212e   212f    Ll
+2130   2131    Lu
+2132           So
+2133           Lu
+2134           Ll
+2135   2138    Lo
+2153   215f    No
+2160   2182    Nl
+2190   2194    Sm
+2195   21d1    So
+21d2           Sm
+21d3           So
+21d4           Sm
+21d5   21ea    So
+2200   22f1    Sm
+2300           So
+2302   2307    So
+2308   230b    Sm
+230c   231f    So
+2320   2321    Sm
+2322   2328    So
+2329           Ps
+232a           Pe
+232b   237a    So
+2400   2424    So
+2440   244a    So
+2460   249b    No
+249c   24e9    So
+24ea           No
+2500   2595    So
+25a0   25ef    So
+2600   2613    So
+261a   266f    So
+2701   2704    So
+2706   2709    So
+270c   2727    So
+2729   274b    So
+274d           So
+274f   2752    So
+2756           So
+2758   275e    So
+2761   2767    So
+2776   2793    No
+2794           So
+2798   27af    So
+27b1   27be    So
+3000           Zs
+3001   3003    Po
+3004           So
+3005           Lm
+3006           Po
+3007           Nl
+3008           Ps
+3009           Pe
+300a           Ps
+300b           Pe
+300c           Ps
+300d           Pe
+300e           Ps
+300f           Pe
+3010           Ps
+3011           Pe
+3012   3013    So
+3014           Ps
+3015           Pe
+3016           Ps
+3017           Pe
+3018           Ps
+3019           Pe
+301a           Ps
+301b           Pe
+301c           Pd
+301d           Ps
+301e   301f    Pe
+3020           So
+3021   3029    Nl
+302a   302f    Mn
+3030           Pd
+3031   3035    Lm
+3036   3037    So
+303f           So
+3041   3094    Lo
+3099   309a    Mn
+309b   309e    Lm
+30a1   30fa    Lo
+30fb           Po
+30fc   30fe    Lm
+3105   312c    Lo
+3131   318e    Lo
+3190   3191    So
+3192   3195    No
+3196   319f    So
+3200   321c    So
+3220   3229    No
+322a   3243    So
+3260   327b    So
+327f           So
+3280   3289    No
+328a   32b0    So
+32c0   32cb    So
+32d0   32fe    So
+3300   3376    So
+337b   33dd    So
+33e0   33fe    So
+4e00   9fa5    Lo
+ac00   d7a3    Lo
+d800   db7f    Cs
+db80   dbff    Cs
+dc00   dfff    Cs
+e000   f8ff    Co
+f900   fa2d    Lo
+fb00   fb06    Ll
+fb13   fb17    Ll
+fb1e           Mn
+fb1f   fb28    Lo
+fb29           Sm
+fb2a   fb36    Lo
+fb38   fb3c    Lo
+fb3e           Lo
+fb40   fb41    Lo
+fb43   fb44    Lo
+fb46   fbb1    Lo
+fbd3   fd3d    Lo
+fd3e           Ps
+fd3f           Pe
+fd50   fd8f    Lo
+fd92   fdc7    Lo
+fdf0   fdfb    Lo
+fe20   fe23    Mn
+fe30           Po
+fe31   fe32    Pd
+fe33   fe34    Pc
+fe35           Ps
+fe36           Pe
+fe37           Ps
+fe38           Pe
+fe39           Ps
+fe3a           Pe
+fe3b           Ps
+fe3c           Pe
+fe3d           Ps
+fe3e           Pe
+fe3f           Ps
+fe40           Pe
+fe41           Ps
+fe42           Pe
+fe43           Ps
+fe44           Pe
+fe49   fe4c    Po
+fe4d   fe4f    Pc
+fe50   fe52    Po
+fe54   fe57    Po
+fe58           Pd
+fe59           Ps
+fe5a           Pe
+fe5b           Ps
+fe5c           Pe
+fe5d           Ps
+fe5e           Pe
+fe5f   fe61    Po
+fe62           Sm
+fe63           Pd
+fe64   fe66    Sm
+fe68           Po
+fe69           Sc
+fe6a   fe6b    Po
+fe70   fe72    Lo
+fe74           Lo
+fe76   fefc    Lo
+feff           Cf
+ff01   ff03    Po
+ff04           Sc
+ff05   ff07    Po
+ff08           Ps
+ff09           Pe
+ff0a           Po
+ff0b           Sm
+ff0c           Po
+ff0d           Pd
+ff0e   ff0f    Po
+ff10   ff19    Nd
+ff1a   ff1b    Po
+ff1c   ff1e    Sm
+ff1f   ff20    Po
+ff21   ff3a    Lu
+ff3b           Ps
+ff3c           Po
+ff3d           Pe
+ff3e           Sk
+ff3f           Pc
+ff40           Sk
+ff41   ff5a    Ll
+ff5b           Ps
+ff5c           Sm
+ff5d           Pe
+ff5e           Sm
+ff61           Po
+ff62           Ps
+ff63           Pe
+ff64   ff65    Po
+ff66   ff6f    Lo
+ff70           Lm
+ff71   ff9d    Lo
+ff9e   ff9f    Lm
+ffa0   ffbe    Lo
+ffc2   ffc7    Lo
+ffca   ffcf    Lo
+ffd2   ffd7    Lo
+ffda   ffdc    Lo
+ffe0   ffe1    Sc
+ffe2           Sm
+ffe3           Sk
+ffe4           So
+ffe5   ffe6    Sc
+ffe8   ffec    Sm
+ffed   ffee    So
+fffc   fffd    So
+END
diff --git a/lib/unicode/CombiningClass.pl b/lib/unicode/CombiningClass.pl
new file mode 100644 (file)
index 0000000..f50c7bb
--- /dev/null
@@ -0,0 +1,217 @@
+return <<'END';
+0300   0314    230
+0315           232
+0316   0319    220
+031a           232
+031b           216
+031c   0320    220
+0321   0322    202
+0323   0326    220
+0327   0328    202
+0329   0333    220
+0334   0338    1
+0339   033c    220
+033d   0344    230
+0345           220
+0360   0361    234
+0483   0486    230
+0591           220
+0592   0595    230
+0596           220
+0597   0599    230
+059a           222
+059b           220
+059c   05a1    230
+05a3   05a7    220
+05a8   05a9    230
+05aa           220
+05ab   05ac    230
+05ad           222
+05ae   05af    230
+05b0           10
+05b1           11
+05b2           12
+05b3           13
+05b4           14
+05b5           15
+05b6           16
+05b7           17
+05b8           18
+05b9           19
+05bb           20
+05bc           21
+05bd           22
+05bf           23
+05c1           24
+05c2           25
+05c4           230
+064b           27
+064c           28
+064d           29
+064e           30
+064f           31
+0650           32
+0651           33
+0652           34
+0670           35
+06d6   06dc    230
+06df   06e2    230
+06e3           220
+06e4           230
+06e7   06e8    230
+06ea           220
+06eb   06ec    230
+06ed           220
+0901           37
+0902           36
+093c           7
+0941           38
+0942           39
+0943           40
+0944           41
+0945           42
+0946           43
+0947           44
+0948           45
+094d           9
+0951           46
+0952           47
+0953   0954    230
+0962           48
+0963           49
+0981           50
+09bc           7
+09c1           51
+09c2           52
+09c3           53
+09c4           54
+09cd           9
+09e2           55
+09e3           56
+0a02           57
+0a3c           7
+0a41           58
+0a42           59
+0a47           60
+0a48           61
+0a4b           62
+0a4c           63
+0a4d           9
+0a70           64
+0a71           65
+0a81           67
+0a82           66
+0abc           7
+0ac1           68
+0ac2           69
+0ac3           70
+0ac4           71
+0ac5           72
+0ac7           73
+0ac8           74
+0acd           9
+0b01           75
+0b3c           7
+0b3f           76
+0b41           77
+0b42           78
+0b43           79
+0b4d           9
+0b56           230
+0bc0           80
+0bcd           9
+0c3e           81
+0c3f           82
+0c40           83
+0c46           84
+0c47           85
+0c48           86
+0c4a           87
+0c4b           88
+0c4c           89
+0c4d           9
+0c55           90
+0c56           91
+0cbf           92
+0cc6           93
+0ccc           94
+0ccd           9
+0d41           95
+0d42           96
+0d43           97
+0d4d           9
+0e31           98
+0e34           99
+0e35           100
+0e36           101
+0e37           102
+0e38           103
+0e39           104
+0e3a           105
+0e47           106
+0e48           107
+0e49           108
+0e4a           109
+0e4b           110
+0e4c           111
+0e4d           112
+0e4e           128
+0eb1           113
+0eb4           114
+0eb5           115
+0eb6           116
+0eb7           117
+0eb8           118
+0eb9           119
+0ebb           120
+0ebc           121
+0ec8           122
+0ec9           123
+0eca           124
+0ecb           125
+0ecc           126
+0ecd           127
+0f18   0f19    220
+0f35           230
+0f37           230
+0f39           216
+0f3e   0f3f    220
+0f71           145
+0f72           130
+0f73           131
+0f74           132
+0f75           133
+0f76           134
+0f77           135
+0f78           136
+0f79           137
+0f7a           138
+0f7b           139
+0f7c           140
+0f7d           141
+0f7e           142
+0f80           143
+0f81           144
+0f82   0f83    230
+0f84           9
+0f86   0f8b    230
+0f90   0f95    6
+0f97           6
+0f99   0fad    6
+0fb1   0fb7    6
+0fb9           6
+20d0   20d1    230
+20d2   20d3    1
+20d4   20d7    230
+20d8   20da    1
+20db   20dc    230
+20e1           1
+302a           218
+302b           228
+302c           232
+302d           222
+302e   302f    224
+3099   309a    8
+fb1e           26
+fe20   fe23    230
+END
diff --git a/lib/unicode/Decomposition.pl b/lib/unicode/Decomposition.pl
new file mode 100644 (file)
index 0000000..4bb9852
--- /dev/null
@@ -0,0 +1,3089 @@
+return <<'END';
+005e           <compat> 0020 0302
+005f           <compat> 0020 0332
+0060           <compat> 0020 0300
+00a0           <noBreak> 0020
+00a8           <compat> 0020 0308
+00aa           <super> 0061
+00af           <compat> 0020 0304
+00b2           <super> 0032
+00b3           <super> 0033
+00b4           <compat> 0020 0301
+00b5           <compat> 03BC
+00b8           <compat> 0020 0327
+00b9           <super> 0031
+00ba           <super> 006F
+00bc           <fraction> 0031 2044 0034
+00bd           <fraction> 0031 2044 0032
+00be           <fraction> 0033 2044 0034
+00c0           0041 0300
+00c1           0041 0301
+00c2           0041 0302
+00c3           0041 0303
+00c4           0041 0308
+00c5           0041 030A
+00c7           0043 0327
+00c8           0045 0300
+00c9           0045 0301
+00ca           0045 0302
+00cb           0045 0308
+00cc           0049 0300
+00cd           0049 0301
+00ce           0049 0302
+00cf           0049 0308
+00d1           004E 0303
+00d2           004F 0300
+00d3           004F 0301
+00d4           004F 0302
+00d5           004F 0303
+00d6           004F 0308
+00d9           0055 0300
+00da           0055 0301
+00db           0055 0302
+00dc           0055 0308
+00dd           0059 0301
+00e0           0061 0300
+00e1           0061 0301
+00e2           0061 0302
+00e3           0061 0303
+00e4           0061 0308
+00e5           0061 030A
+00e7           0063 0327
+00e8           0065 0300
+00e9           0065 0301
+00ea           0065 0302
+00eb           0065 0308
+00ec           0069 0300
+00ed           0069 0301
+00ee           0069 0302
+00ef           0069 0308
+00f1           006E 0303
+00f2           006F 0300
+00f3           006F 0301
+00f4           006F 0302
+00f5           006F 0303
+00f6           006F 0308
+00f9           0075 0300
+00fa           0075 0301
+00fb           0075 0302
+00fc           0075 0308
+00fd           0079 0301
+00ff           0079 0308
+0100           0041 0304
+0101           0061 0304
+0102           0041 0306
+0103           0061 0306
+0104           0041 0328
+0105           0061 0328
+0106           0043 0301
+0107           0063 0301
+0108           0043 0302
+0109           0063 0302
+010a           0043 0307
+010b           0063 0307
+010c           0043 030C
+010d           0063 030C
+010e           0044 030C
+010f           0064 030C
+0112           0045 0304
+0113           0065 0304
+0114           0045 0306
+0115           0065 0306
+0116           0045 0307
+0117           0065 0307
+0118           0045 0328
+0119           0065 0328
+011a           0045 030C
+011b           0065 030C
+011c           0047 0302
+011d           0067 0302
+011e           0047 0306
+011f           0067 0306
+0120           0047 0307
+0121           0067 0307
+0122           0047 0327
+0123           0067 0327
+0124           0048 0302
+0125           0068 0302
+0128           0049 0303
+0129           0069 0303
+012a           0049 0304
+012b           0069 0304
+012c           0049 0306
+012d           0069 0306
+012e           0049 0328
+012f           0069 0328
+0130           0049 0307
+0132           <compat> 0049 004A
+0133           <compat> 0069 006A
+0134           004A 0302
+0135           006A 0302
+0136           004B 0327
+0137           006B 0327
+0139           004C 0301
+013a           006C 0301
+013b           004C 0327
+013c           006C 0327
+013d           004C 030C
+013e           006C 030C
+013f           <compat> 004C 00B7
+0140           <compat> 006C 00B7
+0143           004E 0301
+0144           006E 0301
+0145           004E 0327
+0146           006E 0327
+0147           004E 030C
+0148           006E 030C
+0149           <compat> 02BC 006E
+014c           004F 0304
+014d           006F 0304
+014e           004F 0306
+014f           006F 0306
+0150           004F 030B
+0151           006F 030B
+0154           0052 0301
+0155           0072 0301
+0156           0052 0327
+0157           0072 0327
+0158           0052 030C
+0159           0072 030C
+015a           0053 0301
+015b           0073 0301
+015c           0053 0302
+015d           0073 0302
+015e           0053 0327
+015f           0073 0327
+0160           0053 030C
+0161           0073 030C
+0162           0054 0327
+0163           0074 0327
+0164           0054 030C
+0165           0074 030C
+0168           0055 0303
+0169           0075 0303
+016a           0055 0304
+016b           0075 0304
+016c           0055 0306
+016d           0075 0306
+016e           0055 030A
+016f           0075 030A
+0170           0055 030B
+0171           0075 030B
+0172           0055 0328
+0173           0075 0328
+0174           0057 0302
+0175           0077 0302
+0176           0059 0302
+0177           0079 0302
+0178           0059 0308
+0179           005A 0301
+017a           007A 0301
+017b           005A 0307
+017c           007A 0307
+017d           005A 030C
+017e           007A 030C
+017f           <compat> 0073
+01a0           004F 031B
+01a1           006F 031B
+01af           0055 031B
+01b0           0075 031B
+01c4           <compat> 0044 017D
+01c5           <compat> 0044 017E
+01c6           <compat> 0064 017E
+01c7           <compat> 004C 004A
+01c8           <compat> 004C 006A
+01c9           <compat> 006C 006A
+01ca           <compat> 004E 004A
+01cb           <compat> 004E 006A
+01cc           <compat> 006E 006A
+01cd           0041 030C
+01ce           0061 030C
+01cf           0049 030C
+01d0           0069 030C
+01d1           004F 030C
+01d2           006F 030C
+01d3           0055 030C
+01d4           0075 030C
+01d5           00DC 0304
+01d6           00FC 0304
+01d7           00DC 0301
+01d8           00FC 0301
+01d9           00DC 030C
+01da           00FC 030C
+01db           00DC 0300
+01dc           00FC 0300
+01de           00C4 0304
+01df           00E4 0304
+01e0           0041 0307 0304
+01e1           0061 0307 0304
+01e2           00C6 0304
+01e3           00E6 0304
+01e6           0047 030C
+01e7           0067 030C
+01e8           004B 030C
+01e9           006B 030C
+01ea           004F 0328
+01eb           006F 0328
+01ec           01EA 0304
+01ed           01EB 0304
+01ee           01B7 030C
+01ef           0292 030C
+01f0           006A 030C
+01f1           <compat> 0044 005A
+01f2           <compat> 0044 007A
+01f3           <compat> 0064 007A
+01f4           0047 0301
+01f5           0067 0301
+01fa           00C5 0301
+01fb           00E5 0301
+01fc           00C6 0301
+01fd           00E6 0301
+01fe           00D8 0301
+01ff           00F8 0301
+0200           0041 030F
+0201           0061 030F
+0202           0041 0311
+0203           0061 0311
+0204           0045 030F
+0205           0065 030F
+0206           0045 0311
+0207           0065 0311
+0208           0049 030F
+0209           0069 030F
+020a           0049 0311
+020b           0069 0311
+020c           004F 030F
+020d           006F 030F
+020e           004F 0311
+020f           006F 0311
+0210           0052 030F
+0211           0072 030F
+0212           0052 0311
+0213           0072 0311
+0214           0055 030F
+0215           0075 030F
+0216           0055 0311
+0217           0075 0311
+02b0           <super> 0068
+02b1           <super> 0266
+02b2           <super> 006A
+02b3           <super> 0072
+02b4           <super> 0279
+02b5           <super> 027B
+02b6           <super> 0281
+02b7           <super> 0077
+02b8           <super> 0079
+02d8           <compat> 0020 0306
+02d9           <compat> 0020 0307
+02da           <compat> 0020 030A
+02db           <compat> 0020 0328
+02dc           <compat> 0020 0303
+02dd           <compat> 0020 030B
+02e0           <super> 0263
+02e1           <super> 006C
+02e2           <super> 0073
+02e3           <super> 0078
+02e4           <super> 0295
+0310           0306 0307
+0340           0300
+0341           0301
+0343           0313
+0344           0308 030D
+0374           02B9
+037a           <compat> 0020 0345
+037e           003B
+0384           <compat> 0020 030D
+0385           00A8 030D
+0386           0391 030D
+0387           00B7
+0388           0395 030D
+0389           0397 030D
+038a           0399 030D
+038c           039F 030D
+038e           03A5 030D
+038f           03A9 030D
+0390           03B9 0344
+03aa           0399 0308
+03ab           03A5 0308
+03ac           03B1 030D
+03ad           03B5 030D
+03ae           03B7 030D
+03af           03B9 030D
+03b0           03C5 0344
+03ca           03B9 0308
+03cb           03C5 0308
+03cc           03BF 030D
+03cd           03C5 030D
+03ce           03C9 030D
+03d3           03D2 030D
+03d4           03D2 0308
+0401           0415 0308
+0403           0413 0301
+0407           0406 0308
+040c           041A 0301
+040e           0423 0306
+0419           0418 0306
+0439           0438 0306
+0451           0435 0308
+0453           0433 0301
+0457           0456 0308
+045c           043A 0301
+045e           0443 0306
+0476           0474 030F
+0477           0475 030F
+04c1           0416 0306
+04c2           0436 0306
+04d0           0410 0306
+04d1           0430 0306
+04d2           0410 0308
+04d3           0430 0308
+04d4           00C6
+04d5           00E6
+04d6           0415 0306
+04d7           0435 0306
+04d8           018F
+04d9           0259
+04da           018F 0308
+04db           0259 0308
+04dc           0416 0308
+04dd           0436 0308
+04de           0417 0308
+04df           0437 0308
+04e0           01B7
+04e1           0292
+04e2           0418 0304
+04e3           0438 0304
+04e4           0418 0308
+04e5           0438 0308
+04e6           041E 0308
+04e7           043E 0308
+04e8           019F
+04e9           0275
+04ea           019F 0308
+04eb           0275 0308
+04ee           0423 0304
+04ef           0443 0304
+04f0           0423 0308
+04f1           0443 0308
+04f2           0423 030B
+04f3           0443 030B
+04f4           0427 0308
+04f5           0447 0308
+04f8           042B 0308
+04f9           044B 0308
+0587           <compat> 0565 0582
+0929           0928 093C
+0931           0930 093C
+0934           0933 093C
+0958           0915 093C
+0959           0916 093C
+095a           0917 093C
+095b           091C 093C
+095c           0921 093C
+095d           0922 093C
+095e           092B 093C
+095f           092F 093C
+09b0           09AC 09BC
+09cb           09C7 09BE
+09cc           09C7 09D7
+09dc           09A1 09BC
+09dd           09A2 09BC
+09df           09AF 09BC
+0a59           0A16 0A3C
+0a5a           0A17 0A3C
+0a5b           0A1C 0A3C
+0a5c           0A21 0A3C
+0a5e           0A2B 0A3C
+0b48           0B47 0B56
+0b4b           0B47 0B3E
+0b4c           0B47 0B57
+0b5c           0B21 0B3C
+0b5d           0B22 0B3C
+0b5f           0B2F 0B3C
+0b94           0B92 0BD7
+0bca           0BC6 0BBE
+0bcb           0BC7 0BBE
+0bcc           0BC6 0BD7
+0c48           0C46 0C56
+0cc0           0CBF 0CD5
+0cc7           0CC6 0CD5
+0cc8           0CC6 0CD6
+0cca           0CC6 0CC2
+0ccb           0CC6 0CC2 0CD5
+0d4a           0D46 0D3E
+0d4b           0D47 0D3E
+0d4c           0D46 0D57
+0e33           0E4D 0E32
+0eb3           0ECD 0EB2
+0edc           <compat> 0EAB 0E99
+0edd           <compat> 0EAB 0EA1
+0f43           0F42 0FB7
+0f4d           0F4C 0FB7
+0f52           0F51 0FB7
+0f57           0F56 0FB7
+0f5c           0F5B 0FB7
+0f69           0F40 0FB5
+0f73           0F72 0F71
+0f75           0F74 0F71
+0f76           0FB2 0F80
+0f77           0F76 0F71
+0f78           0FB3 0F80
+0f79           0F78 0F71
+0f81           0F80 0F71
+0f93           0F92 0FB7
+0f9d           0F9C 0FB7
+0fa2           0FA1 0FB7
+0fa7           0FA6 0FB7
+0fac           0FAB 0FB7
+0fb9           0F90 0FB5
+1101           <compat> 1100 1100
+1104           <compat> 1103 1103
+1108           <compat> 1107 1107
+110a           <compat> 1109 1109
+110d           <compat> 110C 110C
+1113           <compat> 1102 1100
+1114           <compat> 1102 1102
+1115           <compat> 1102 1103
+1116           <compat> 1102 1107
+1117           <compat> 1103 1100
+1118           <compat> 1105 1102
+1119           <compat> 1105 1105
+111a           <compat> 1105 1112
+111b           <compat> 1105 110B
+111c           <compat> 1106 1107
+111d           <compat> 1106 110B
+111e           <compat> 1107 1100
+111f           <compat> 1107 1102
+1120           <compat> 1107 1103
+1121           <compat> 1107 1109
+1122           <compat> 1107 1109 1100
+1123           <compat> 1107 1109 1103
+1124           <compat> 1107 1109 1107
+1125           <compat> 1107 1109 1109
+1126           <compat> 1107 1109 110C
+1127           <compat> 1107 110C
+1128           <compat> 1107 110E
+1129           <compat> 1107 1110
+112a           <compat> 1107 1111
+112b           <compat> 1107 110B
+112c           <compat> 1107 1107 110B
+112d           <compat> 1109 1100
+112e           <compat> 1109 1102
+112f           <compat> 1109 1103
+1130           <compat> 1109 1105
+1131           <compat> 1109 1106
+1132           <compat> 1109 1107
+1133           <compat> 1109 1107 1100
+1134           <compat> 1109 1109 1109
+1135           <compat> 1109 110B
+1136           <compat> 1109 110C
+1137           <compat> 1109 110E
+1138           <compat> 1109 110F
+1139           <compat> 1109 1110
+113a           <compat> 1109 1111
+113b           <compat> 1109 1112
+113d           <compat> 113C 113C
+113f           <compat> 113E 113E
+1141           <compat> 110B 1100
+1142           <compat> 110B 1103
+1143           <compat> 110B 1106
+1144           <compat> 110B 1107
+1145           <compat> 110B 1109
+1146           <compat> 110B 1140
+1147           <compat> 110B 110B
+1148           <compat> 110B 110C
+1149           <compat> 110B 110E
+114a           <compat> 110B 1110
+114b           <compat> 110B 1111
+114d           <compat> 110C 110B
+114f           <compat> 114E 114E
+1151           <compat> 1150 1150
+1152           <compat> 110E 110F
+1153           <compat> 110E 1112
+1156           <compat> 1111 1107
+1157           <compat> 1111 110B
+1158           <compat> 1112 1112
+1162           <compat> 1161 1175
+1164           <compat> 1163 1175
+1166           <compat> 1165 1175
+1168           <compat> 1167 1175
+116a           <compat> 1169 1161
+116b           <compat> 1169 1161 1175
+116c           <compat> 1169 1175
+116f           <compat> 116E 1165
+1170           <compat> 116E 1165 1175
+1171           <compat> 116E 1175
+1174           <compat> 1173 1175
+1176           <compat> 1161 1169
+1177           <compat> 1161 116E
+1178           <compat> 1163 1169
+1179           <compat> 1163 116D
+117a           <compat> 1165 1169
+117b           <compat> 1165 116E
+117c           <compat> 1165 1173
+117d           <compat> 1167 1169
+117e           <compat> 1167 116E
+117f           <compat> 1169 1165
+1180           <compat> 1169 1166
+1181           <compat> 1169 1168
+1182           <compat> 1169 1169
+1183           <compat> 1169 116E
+1184           <compat> 116D 1163
+1185           <compat> 116D 1164
+1186           <compat> 116D 1167
+1187           <compat> 116D 1169
+1188           <compat> 116D 1175
+1189           <compat> 116E 1161
+118a           <compat> 116E 1162
+118b           <compat> 116E 1165 1173
+118c           <compat> 116E 1168
+118d           <compat> 116E 116E
+118e           <compat> 1172 1161
+118f           <compat> 1172 1165
+1190           <compat> 1172 1166
+1191           <compat> 1172 1167
+1192           <compat> 1172 1168
+1193           <compat> 1172 116E
+1194           <compat> 1172 1175
+1195           <compat> 1173 116E
+1196           <compat> 1173 1173
+1197           <compat> 1174 116E
+1198           <compat> 1175 1161
+1199           <compat> 1175 1163
+119a           <compat> 1175 1169
+119b           <compat> 1175 116E
+119c           <compat> 1175 1173
+119d           <compat> 1175 119E
+119f           <compat> 119E 1165
+11a0           <compat> 119E 116E
+11a1           <compat> 119E 1175
+11a2           <compat> 119E 119E
+11a9           <compat> 11A8 11A8
+11aa           <compat> 11A8 11BA
+11ac           <compat> 11AB 11BD
+11ad           <compat> 11AB 11C2
+11b0           <compat> 11AF 11A8
+11b1           <compat> 11AF 11B7
+11b2           <compat> 11AF 11B8
+11b3           <compat> 11AF 11BA
+11b4           <compat> 11AF 11C0
+11b5           <compat> 11AF 11C1
+11b6           <compat> 11AF 11C2
+11b9           <compat> 11B8 11BA
+11bb           <compat> 11BA 11BA
+11c3           <compat> 11A8 11AF
+11c4           <compat> 11A8 11BA 11A8
+11c5           <compat> 11AB 11A8
+11c6           <compat> 11AB 11AE
+11c7           <compat> 11AB 11BA
+11c8           <compat> 11AB 11EB
+11c9           <compat> 11AB 11C0
+11ca           <compat> 11AE 11A8
+11cb           <compat> 11AE 11AF
+11cc           <compat> 11AF 11A8 11BA
+11cd           <compat> 11AF 11AB
+11ce           <compat> 11AF 11AE
+11cf           <compat> 11AF 11AE 11C2
+11d0           <compat> 11AF 11AF
+11d1           <compat> 11AF 11B7 11A8
+11d2           <compat> 11AF 11B7 11BA
+11d3           <compat> 11AF 11B8 11BA
+11d4           <compat> 11AF 11B8 11C2
+11d5           <compat> 11AF 11B8 11BC
+11d6           <compat> 11AF 11BA 11BA
+11d7           <compat> 11AF 11EB
+11d8           <compat> 11AF 11BF
+11d9           <compat> 11AF 11F9
+11da           <compat> 11B7 11A8
+11db           <compat> 11B7 11AF
+11dc           <compat> 11B7 11B8
+11dd           <compat> 11B7 11BA
+11de           <compat> 11B7 11BA 11BA
+11df           <compat> 11B7 11EB
+11e0           <compat> 11B7 11BE
+11e1           <compat> 11B7 11C2
+11e2           <compat> 11B7 11BC
+11e3           <compat> 11B8 11AF
+11e4           <compat> 11B8 11C1
+11e5           <compat> 11B8 11C2
+11e6           <compat> 11B8 11BC
+11e7           <compat> 11BA 11A8
+11e8           <compat> 11BA 11AE
+11e9           <compat> 11BA 11AF
+11ea           <compat> 11BA 11B8
+11ec           <compat> 11BC 11A8
+11ed           <compat> 11BC 11A8 11A8
+11ee           <compat> 11BC 11BC
+11ef           <compat> 11BC 11BF
+11f1           <compat> 11F0 11BA
+11f2           <compat> 11F0 11EB
+11f3           <compat> 11C1 11B8
+11f4           <compat> 11C1 11BC
+11f5           <compat> 11C2 11AB
+11f6           <compat> 11C2 11AF
+11f7           <compat> 11C2 11B7
+11f8           <compat> 11C2 11B8
+1e00           0041 0325
+1e01           0061 0325
+1e02           0042 0307
+1e03           0062 0307
+1e04           0042 0323
+1e05           0062 0323
+1e06           0042 0331
+1e07           0062 0331
+1e08           00C7 0301
+1e09           00E7 0301
+1e0a           0044 0307
+1e0b           0064 0307
+1e0c           0044 0323
+1e0d           0064 0323
+1e0e           0044 0331
+1e0f           0064 0331
+1e10           0044 0327
+1e11           0064 0327
+1e12           0044 032D
+1e13           0064 032D
+1e14           0112 0300
+1e15           0113 0300
+1e16           0112 0301
+1e17           0113 0301
+1e18           0045 032D
+1e19           0065 032D
+1e1a           0045 0330
+1e1b           0065 0330
+1e1c           0114 0327
+1e1d           0115 0327
+1e1e           0046 0307
+1e1f           0066 0307
+1e20           0047 0304
+1e21           0067 0304
+1e22           0048 0307
+1e23           0068 0307
+1e24           0048 0323
+1e25           0068 0323
+1e26           0048 0308
+1e27           0068 0308
+1e28           0048 0327
+1e29           0068 0327
+1e2a           0048 032E
+1e2b           0068 032E
+1e2c           0049 0330
+1e2d           0069 0330
+1e2e           00CF 0301
+1e2f           00EF 0301
+1e30           004B 0301
+1e31           006B 0301
+1e32           004B 0323
+1e33           006B 0323
+1e34           004B 0331
+1e35           006B 0331
+1e36           004C 0323
+1e37           006C 0323
+1e38           1E36 0304
+1e39           1E37 0304
+1e3a           004C 0331
+1e3b           006C 0331
+1e3c           004C 032D
+1e3d           006C 032D
+1e3e           004D 0301
+1e3f           006D 0301
+1e40           004D 0307
+1e41           006D 0307
+1e42           004D 0323
+1e43           006D 0323
+1e44           004E 0307
+1e45           006E 0307
+1e46           004E 0323
+1e47           006E 0323
+1e48           004E 0331
+1e49           006E 0331
+1e4a           004E 032D
+1e4b           006E 032D
+1e4c           00D5 0301
+1e4d           00F5 0301
+1e4e           00D5 0308
+1e4f           00F5 0308
+1e50           014C 0300
+1e51           014D 0300
+1e52           014C 0301
+1e53           014D 0301
+1e54           0050 0301
+1e55           0070 0301
+1e56           0050 0307
+1e57           0070 0307
+1e58           0052 0307
+1e59           0072 0307
+1e5a           0052 0323
+1e5b           0072 0323
+1e5c           1E5A 0304
+1e5d           1E5B 0304
+1e5e           0052 0331
+1e5f           0072 0331
+1e60           0053 0307
+1e61           0073 0307
+1e62           0053 0323
+1e63           0073 0323
+1e64           015A 0307
+1e65           015B 0307
+1e66           0160 0307
+1e67           0161 0307
+1e68           1E62 0307
+1e69           1E63 0307
+1e6a           0054 0307
+1e6b           0074 0307
+1e6c           0054 0323
+1e6d           0074 0323
+1e6e           0054 0331
+1e6f           0074 0331
+1e70           0054 032D
+1e71           0074 032D
+1e72           0055 0324
+1e73           0075 0324
+1e74           0055 0330
+1e75           0075 0330
+1e76           0055 032D
+1e77           0075 032D
+1e78           0168 0301
+1e79           0169 0301
+1e7a           016A 0308
+1e7b           016B 0308
+1e7c           0056 0303
+1e7d           0076 0303
+1e7e           0056 0323
+1e7f           0076 0323
+1e80           0057 0300
+1e81           0077 0300
+1e82           0057 0301
+1e83           0077 0301
+1e84           0057 0308
+1e85           0077 0308
+1e86           0057 0307
+1e87           0077 0307
+1e88           0057 0323
+1e89           0077 0323
+1e8a           0058 0307
+1e8b           0078 0307
+1e8c           0058 0308
+1e8d           0078 0308
+1e8e           0059 0307
+1e8f           0079 0307
+1e90           005A 0302
+1e91           007A 0302
+1e92           005A 0323
+1e93           007A 0323
+1e94           005A 0331
+1e95           007A 0331
+1e96           0068 0331
+1e97           0074 0308
+1e98           0077 030A
+1e99           0079 030A
+1e9b           017F 0307
+1ea0           0041 0323
+1ea1           0061 0323
+1ea2           0041 0309
+1ea3           0061 0309
+1ea4           00C2 0301
+1ea5           00E2 0301
+1ea6           00C2 0300
+1ea7           00E2 0300
+1ea8           00C2 0309
+1ea9           00E2 0309
+1eaa           00C2 0303
+1eab           00E2 0303
+1eac           00C2 0323
+1ead           00E2 0323
+1eae           0102 0301
+1eaf           0103 0301
+1eb0           0102 0300
+1eb1           0103 0300
+1eb2           0102 0309
+1eb3           0103 0309
+1eb4           0102 0303
+1eb5           0103 0303
+1eb6           0102 0323
+1eb7           0103 0323
+1eb8           0045 0323
+1eb9           0065 0323
+1eba           0045 0309
+1ebb           0065 0309
+1ebc           0045 0303
+1ebd           0065 0303
+1ebe           00CA 0301
+1ebf           00EA 0301
+1ec0           00CA 0300
+1ec1           00EA 0300
+1ec2           00CA 0309
+1ec3           00EA 0309
+1ec4           00CA 0303
+1ec5           00EA 0303
+1ec6           00CA 0323
+1ec7           00EA 0323
+1ec8           0049 0309
+1ec9           0069 0309
+1eca           0049 0323
+1ecb           0069 0323
+1ecc           004F 0323
+1ecd           006F 0323
+1ece           004F 0309
+1ecf           006F 0309
+1ed0           00D4 0301
+1ed1           00F4 0301
+1ed2           00D4 0300
+1ed3           00F4 0300
+1ed4           00D4 0309
+1ed5           00F4 0309
+1ed6           00D4 0303
+1ed7           00F4 0303
+1ed8           00D4 0323
+1ed9           00F4 0323
+1eda           01A0 0301
+1edb           01A1 0301
+1edc           01A0 0300
+1edd           01A1 0300
+1ede           01A0 0309
+1edf           01A1 0309
+1ee0           01A0 0303
+1ee1           01A1 0303
+1ee2           01A0 0323
+1ee3           01A1 0323
+1ee4           0055 0323
+1ee5           0075 0323
+1ee6           0055 0309
+1ee7           0075 0309
+1ee8           01AF 0301
+1ee9           01B0 0301
+1eea           01AF 0300
+1eeb           01B0 0300
+1eec           01AF 0309
+1eed           01B0 0309
+1eee           01AF 0303
+1eef           01B0 0303
+1ef0           01AF 0323
+1ef1           01B0 0323
+1ef2           0059 0300
+1ef3           0079 0300
+1ef4           0059 0323
+1ef5           0079 0323
+1ef6           0059 0309
+1ef7           0079 0309
+1ef8           0059 0303
+1ef9           0079 0303
+1f00           03B1 0313
+1f01           03B1 0314
+1f02           1F00 0300
+1f03           1F01 0300
+1f04           1F00 0301
+1f05           1F01 0301
+1f06           1F00 0342
+1f07           1F01 0342
+1f08           0391 0313
+1f09           0391 0314
+1f0a           1F08 0300
+1f0b           1F09 0300
+1f0c           1F08 0301
+1f0d           1F09 0301
+1f0e           1F08 0342
+1f0f           1F09 0342
+1f10           03B5 0313
+1f11           03B5 0314
+1f12           1F10 0300
+1f13           1F11 0300
+1f14           1F10 0301
+1f15           1F11 0301
+1f18           0395 0313
+1f19           0395 0314
+1f1a           1F18 0300
+1f1b           1F19 0300
+1f1c           1F18 0301
+1f1d           1F19 0301
+1f20           03B7 0313
+1f21           03B7 0314
+1f22           1F20 0300
+1f23           1F21 0300
+1f24           1F20 0301
+1f25           1F21 0301
+1f26           1F20 0342
+1f27           1F21 0342
+1f28           0397 0313
+1f29           0397 0314
+1f2a           1F28 0300
+1f2b           1F29 0300
+1f2c           1F28 0301
+1f2d           1F29 0301
+1f2e           1F28 0342
+1f2f           1F29 0342
+1f30           03B9 0313
+1f31           03B9 0314
+1f32           1F30 0300
+1f33           1F31 0300
+1f34           1F30 0301
+1f35           1F31 0301
+1f36           1F30 0342
+1f37           1F31 0342
+1f38           0399 0313
+1f39           0399 0314
+1f3a           1F38 0300
+1f3b           1F39 0300
+1f3c           1F38 0301
+1f3d           1F39 0301
+1f3e           1F38 0342
+1f3f           1F39 0342
+1f40           03BF 0313
+1f41           03BF 0314
+1f42           1F40 0300
+1f43           1F41 0300
+1f44           1F40 0301
+1f45           1F41 0301
+1f48           039F 0313
+1f49           039F 0314
+1f4a           1F48 0300
+1f4b           1F49 0300
+1f4c           1F48 0301
+1f4d           1F49 0301
+1f50           03C5 0313
+1f51           03C5 0314
+1f52           1F50 0300
+1f53           1F51 0300
+1f54           1F50 0301
+1f55           1F51 0301
+1f56           1F50 0342
+1f57           1F51 0342
+1f59           03A5 0314
+1f5b           1F59 0300
+1f5d           1F59 0301
+1f5f           1F59 0342
+1f60           03C9 0313
+1f61           03C9 0314
+1f62           1F60 0300
+1f63           1F61 0300
+1f64           1F60 0301
+1f65           1F61 0301
+1f66           1F60 0342
+1f67           1F61 0342
+1f68           03A9 0313
+1f69           03A9 0314
+1f6a           1F68 0300
+1f6b           1F69 0300
+1f6c           1F68 0301
+1f6d           1F69 0301
+1f6e           1F68 0342
+1f6f           1F69 0342
+1f70           03B1 0300
+1f71           03B1 0301
+1f72           03B5 0300
+1f73           03B5 0301
+1f74           03B7 0300
+1f75           03B7 0301
+1f76           03B9 0300
+1f77           03B9 0301
+1f78           03BF 0300
+1f79           03BF 0301
+1f7a           03C5 0300
+1f7b           03C5 0301
+1f7c           03C9 0300
+1f7d           03C9 0301
+1f80           1F00 0345
+1f81           1F01 0345
+1f82           1F02 0345
+1f83           1F03 0345
+1f84           1F04 0345
+1f85           1F05 0345
+1f86           1F06 0345
+1f87           1F07 0345
+1f88           1F08 0345
+1f89           1F09 0345
+1f8a           1F0A 0345
+1f8b           1F0B 0345
+1f8c           1F0C 0345
+1f8d           1F0D 0345
+1f8e           1F0E 0345
+1f8f           1F0F 0345
+1f90           1F20 0345
+1f91           1F21 0345
+1f92           1F22 0345
+1f93           1F23 0345
+1f94           1F24 0345
+1f95           1F25 0345
+1f96           1F26 0345
+1f97           1F27 0345
+1f98           1F28 0345
+1f99           1F29 0345
+1f9a           1F2A 0345
+1f9b           1F2B 0345
+1f9c           1F2C 0345
+1f9d           1F2D 0345
+1f9e           1F2E 0345
+1f9f           1F2F 0345
+1fa0           1F60 0345
+1fa1           1F61 0345
+1fa2           1F62 0345
+1fa3           1F63 0345
+1fa4           1F64 0345
+1fa5           1F65 0345
+1fa6           1F66 0345
+1fa7           1F67 0345
+1fa8           1F68 0345
+1fa9           1F69 0345
+1faa           1F6A 0345
+1fab           1F6B 0345
+1fac           1F6C 0345
+1fad           1F6D 0345
+1fae           1F6E 0345
+1faf           1F6F 0345
+1fb0           03B1 0306
+1fb1           03B1 0304
+1fb2           1F70 0345
+1fb3           03B1 0345
+1fb4           1F71 0345
+1fb6           03B1 0342
+1fb7           1FB6 0345
+1fb8           0391 0306
+1fb9           0391 0304
+1fba           0391 0300
+1fbb           0391 0301
+1fbc           0391 0345
+1fbd           <compat> 0020 0313
+1fbe           03B9
+1fbf           <compat> 0020 0313
+1fc0           <compat> 0020 0342
+1fc1           00A8 0342
+1fc2           1F74 0345
+1fc3           03B7 0345
+1fc4           1F75 0345
+1fc6           03B7 0342
+1fc7           1FC6 0345
+1fc8           0395 0300
+1fc9           0395 0301
+1fca           0397 0300
+1fcb           0397 0301
+1fcc           0397 0345
+1fcd           1FBF 0300
+1fce           1FBF 0301
+1fcf           1FBF 0342
+1fd0           03B9 0306
+1fd1           03B9 0304
+1fd2           03CA 0300
+1fd3           03CA 0301
+1fd6           03B9 0342
+1fd7           03CA 0342
+1fd8           0399 0306
+1fd9           0399 0304
+1fda           0399 0300
+1fdb           0399 0301
+1fdd           1FFE 0300
+1fde           1FFE 0301
+1fdf           1FFE 0342
+1fe0           03C5 0306
+1fe1           03C5 0304
+1fe2           03CB 0300
+1fe3           03CB 0301
+1fe4           03C1 0313
+1fe5           03C1 0314
+1fe6           03C5 0342
+1fe7           03CB 0342
+1fe8           03A5 0306
+1fe9           03A5 0304
+1fea           03A5 0300
+1feb           03A5 0301
+1fec           03A1 0314
+1fed           00A8 0300
+1fee           00A8 0301
+1fef           0060
+1ff2           1F7C 0345
+1ff3           03C9 0345
+1ff4           1F79 0345
+1ff6           03C9 0342
+1ff7           1FF6 0345
+1ff8           039F 0300
+1ff9           039F 0301
+1ffa           03A9 0300
+1ffb           03A9 0301
+1ffc           03A9 0345
+1ffd           00B4
+1ffe           <compat> 0020 0314
+2000           2002
+2001           2003
+2002   2006    <compat> 0020
+2007           <noBreak> 0020
+2008   200a    <compat> 0020
+2011           <noBreak> 2010
+2017           <compat> 0020 0333
+2024           <compat> 002E
+2025           <compat> 002E 002E
+2026           <compat> 002E 002E 002E
+2033           <compat> 2032 2032
+2034           <compat> 2032 2032 2032
+2036           <compat> 2035 2035
+2037           <compat> 2035 2035 2035
+203c           <compat> 0021 0021
+203e           <compat> 0020 0305
+2070           <super> 0030
+2074           <super> 0034
+2075           <super> 0035
+2076           <super> 0036
+2077           <super> 0037
+2078           <super> 0038
+2079           <super> 0039
+207a           <super> 002B
+207b           <super> 2212
+207c           <super> 003D
+207d           <super> 0028
+207e           <super> 0029
+207f           <super> 006E
+2080           <sub> 0030
+2081           <sub> 0031
+2082           <sub> 0032
+2083           <sub> 0033
+2084           <sub> 0034
+2085           <sub> 0035
+2086           <sub> 0036
+2087           <sub> 0037
+2088           <sub> 0038
+2089           <sub> 0039
+208a           <sub> 002B
+208b           <sub> 2212
+208c           <sub> 003D
+208d           <sub> 0028
+208e           <sub> 0029
+20a8           <compat> 0052 0073
+2102           <font> 0043
+2103           <compat> 00B0 0043
+2107           <compat> 0190
+2109           <compat> 00B0 0046
+210a           <font> 0067
+210b   210d    <font> 0048
+210e           <font> 0068
+210f           <font> 0127
+2110   2111    <font> 0049
+2112           <font> 004C
+2113           <font> 006C
+2115           <font> 004E
+2116           <compat> 004E 006F
+2118   2119    <font> 0050
+211a           <font> 0051
+211b   211d    <font> 0052
+2120           <super> 0053 004D
+2121           <super> 0054 0045 004C
+2122           <super> 0054 004D
+2124           <font> 005A
+2126           03A9
+2128           <font> 005A
+212a           004B
+212b           00C5
+212c           <font> 0042
+212d           <font> 0043
+212f           <font> 0065
+2130           <font> 0045
+2131           <font> 0046
+2133           <font> 004D
+2134           <font> 006F
+2135           <compat> 05D0
+2136           <compat> 05D1
+2137           <compat> 05D2
+2138           <compat> 05D3
+2153           <fraction> 0031 2044 0033
+2154           <fraction> 0032 2044 0033
+2155           <fraction> 0031 2044 0035
+2156           <fraction> 0032 2044 0035
+2157           <fraction> 0033 2044 0035
+2158           <fraction> 0034 2044 0035
+2159           <fraction> 0031 2044 0036
+215a           <fraction> 0035 2044 0036
+215b           <fraction> 0031 2044 0038
+215c           <fraction> 0033 2044 0038
+215d           <fraction> 0035 2044 0038
+215e           <fraction> 0037 2044 0038
+215f           <fraction> 0031 2044
+2160           <compat> 0049
+2161           <compat> 0049 0049
+2162           <compat> 0049 0049 0049
+2163           <compat> 0049 0056
+2164           <compat> 0056
+2165           <compat> 0056 0049
+2166           <compat> 0056 0049 0049
+2167           <compat> 0056 0049 0049 0049
+2168           <compat> 0049 0058
+2169           <compat> 0058
+216a           <compat> 0058 0049
+216b           <compat> 0058 0049 0049
+216c           <compat> 004C
+216d           <compat> 0043
+216e           <compat> 0044
+216f           <compat> 004D
+2170           <compat> 0069
+2171           <compat> 0069 0069
+2172           <compat> 0069 0069 0069
+2173           <compat> 0069 0076
+2174           <compat> 0076
+2175           <compat> 0076 0069
+2176           <compat> 0076 0069 0069
+2177           <compat> 0076 0069 0069 0069
+2178           <compat> 0069 0078
+2179           <compat> 0078
+217a           <compat> 0078 0069
+217b           <compat> 0078 0069 0069
+217c           <compat> 006C
+217d           <compat> 0063
+217e           <compat> 0064
+217f           <compat> 006D
+2204           2203 0338
+2209           2208 0338
+220c           220B 0338
+2224           2223 0338
+2226           2225 0338
+222c           <compat> 222B 222B
+222d           <compat> 222B 222B 222B
+222f           <compat> 222E 222E
+2230           <compat> 222E 222E 222E
+2241           007E 0338
+2244           2243 0338
+2247           2245 0338
+2249           2248 0338
+2260           003D 0338
+2262           2261 0338
+226d           224D 0338
+226e           003C 0338
+226f           003E 0338
+2270           2264 0338
+2271           2265 0338
+2274           2272 0338
+2275           2273 0338
+2278           2276 0338
+2279           2277 0338
+2280           227A 0338
+2281           227B 0338
+2284           2282 0338
+2285           2283 0338
+2288           2286 0338
+2289           2287 0338
+22ac           22A2 0338
+22ad           22A8 0338
+22ae           22A9 0338
+22af           22AB 0338
+22e0           227C 0338
+22e1           227D 0338
+22e2           2291 0338
+22e3           2292 0338
+22ea           22B2 0338
+22eb           22B3 0338
+22ec           22B4 0338
+22ed           22B5 0338
+2329           3008
+232a           3009
+2460           <circle> 0031
+2461           <circle> 0032
+2462           <circle> 0033
+2463           <circle> 0034
+2464           <circle> 0035
+2465           <circle> 0036
+2466           <circle> 0037
+2467           <circle> 0038
+2468           <circle> 0039
+2469           <circle> 0031 0030
+246a           <circle> 0031 0031
+246b           <circle> 0031 0032
+246c           <circle> 0031 0033
+246d           <circle> 0031 0034
+246e           <circle> 0031 0035
+246f           <circle> 0031 0036
+2470           <circle> 0031 0037
+2471           <circle> 0031 0038
+2472           <circle> 0031 0039
+2473           <circle> 0032 0030
+2474           <compat> 0028 0031 0029
+2475           <compat> 0028 0032 0029
+2476           <compat> 0028 0033 0029
+2477           <compat> 0028 0034 0029
+2478           <compat> 0028 0035 0029
+2479           <compat> 0028 0036 0029
+247a           <compat> 0028 0037 0029
+247b           <compat> 0028 0038 0029
+247c           <compat> 0028 0039 0029
+247d           <compat> 0028 0031 0030 0029
+247e           <compat> 0028 0031 0031 0029
+247f           <compat> 0028 0031 0032 0029
+2480           <compat> 0028 0031 0033 0029
+2481           <compat> 0028 0031 0034 0029
+2482           <compat> 0028 0031 0035 0029
+2483           <compat> 0028 0031 0036 0029
+2484           <compat> 0028 0031 0037 0029
+2485           <compat> 0028 0031 0038 0029
+2486           <compat> 0028 0031 0039 0029
+2487           <compat> 0028 0032 0030 0029
+2488           <compat> 0031 002E
+2489           <compat> 0032 002E
+248a           <compat> 0033 002E
+248b           <compat> 0034 002E
+248c           <compat> 0035 002E
+248d           <compat> 0036 002E
+248e           <compat> 0037 002E
+248f           <compat> 0038 002E
+2490           <compat> 0039 002E
+2491           <compat> 0031 0030 002E
+2492           <compat> 0031 0031 002E
+2493           <compat> 0031 0032 002E
+2494           <compat> 0031 0033 002E
+2495           <compat> 0031 0034 002E
+2496           <compat> 0031 0035 002E
+2497           <compat> 0031 0036 002E
+2498           <compat> 0031 0037 002E
+2499           <compat> 0031 0038 002E
+249a           <compat> 0031 0039 002E
+249b           <compat> 0032 0030 002E
+249c           <compat> 0028 0061 0029
+249d           <compat> 0028 0062 0029
+249e           <compat> 0028 0063 0029
+249f           <compat> 0028 0064 0029
+24a0           <compat> 0028 0065 0029
+24a1           <compat> 0028 0066 0029
+24a2           <compat> 0028 0067 0029
+24a3           <compat> 0028 0068 0029
+24a4           <compat> 0028 0069 0029
+24a5           <compat> 0028 006A 0029
+24a6           <compat> 0028 006B 0029
+24a7           <compat> 0028 006C 0029
+24a8           <compat> 0028 006D 0029
+24a9           <compat> 0028 006E 0029
+24aa           <compat> 0028 006F 0029
+24ab           <compat> 0028 0070 0029
+24ac           <compat> 0028 0071 0029
+24ad           <compat> 0028 0072 0029
+24ae           <compat> 0028 0073 0029
+24af           <compat> 0028 0074 0029
+24b0           <compat> 0028 0075 0029
+24b1           <compat> 0028 0076 0029
+24b2           <compat> 0028 0077 0029
+24b3           <compat> 0028 0078 0029
+24b4           <compat> 0028 0079 0029
+24b5           <compat> 0028 007A 0029
+24b6           <circle> 0041
+24b7           <circle> 0042
+24b8           <circle> 0043
+24b9           <circle> 0044
+24ba           <circle> 0045
+24bb           <circle> 0046
+24bc           <circle> 0047
+24bd           <circle> 0048
+24be           <circle> 0049
+24bf           <circle> 004A
+24c0           <circle> 004B
+24c1           <circle> 004C
+24c2           <circle> 004D
+24c3           <circle> 004E
+24c4           <circle> 004F
+24c5           <circle> 0050
+24c6           <circle> 0051
+24c7           <circle> 0052
+24c8           <circle> 0053
+24c9           <circle> 0054
+24ca           <circle> 0055
+24cb           <circle> 0056
+24cc           <circle> 0057
+24cd           <circle> 0058
+24ce           <circle> 0059
+24cf           <circle> 005A
+24d0           <circle> 0061
+24d1           <circle> 0062
+24d2           <circle> 0063
+24d3           <circle> 0064
+24d4           <circle> 0065
+24d5           <circle> 0066
+24d6           <circle> 0067
+24d7           <circle> 0068
+24d8           <circle> 0069
+24d9           <circle> 006A
+24da           <circle> 006B
+24db           <circle> 006C
+24dc           <circle> 006D
+24dd           <circle> 006E
+24de           <circle> 006F
+24df           <circle> 0070
+24e0           <circle> 0071
+24e1           <circle> 0072
+24e2           <circle> 0073
+24e3           <circle> 0074
+24e4           <circle> 0075
+24e5           <circle> 0076
+24e6           <circle> 0077
+24e7           <circle> 0078
+24e8           <circle> 0079
+24e9           <circle> 007A
+24ea           <circle> 0030
+3000           <wide> 0020
+3036           <compat> 3012
+304c           304B 3099
+304e           304D 3099
+3050           304F 3099
+3052           3051 3099
+3054           3053 3099
+3056           3055 3099
+3058           3057 3099
+305a           3059 3099
+305c           305B 3099
+305e           305D 3099
+3060           305F 3099
+3062           3061 3099
+3065           3064 3099
+3067           3066 3099
+3069           3068 3099
+3070           306F 3099
+3071           306F 309A
+3073           3072 3099
+3074           3072 309A
+3076           3075 3099
+3077           3075 309A
+3079           3078 3099
+307a           3078 309A
+307c           307B 3099
+307d           307B 309A
+3094           3046 3099
+309b           <compat> 0020 3099
+309c           <compat> 0020 309A
+309e           309D 3099
+30ac           30AB 3099
+30ae           30AD 3099
+30b0           30AF 3099
+30b2           30B1 3099
+30b4           30B3 3099
+30b6           30B5 3099
+30b8           30B7 3099
+30ba           30B9 3099
+30bc           30BB 3099
+30be           30BD 3099
+30c0           30BF 3099
+30c2           30C1 3099
+30c5           30C4 3099
+30c7           30C6 3099
+30c9           30C8 3099
+30d0           30CF 3099
+30d1           30CF 309A
+30d3           30D2 3099
+30d4           30D2 309A
+30d6           30D5 3099
+30d7           30D5 309A
+30d9           30D8 3099
+30da           30D8 309A
+30dc           30DB 3099
+30dd           30DB 309A
+30f4           30A6 3099
+30f7           30EF 3099
+30f8           30F0 3099
+30f9           30F1 3099
+30fa           30F2 3099
+30fe           30FD 3099
+3131           <compat> 1100
+3132           <compat> 1101
+3133           <compat> 11AA
+3134           <compat> 1102
+3135           <compat> 11AC
+3136           <compat> 11AD
+3137           <compat> 1103
+3138           <compat> 1104
+3139           <compat> 1105
+313a           <compat> 11B0
+313b           <compat> 11B1
+313c           <compat> 11B2
+313d           <compat> 11B3
+313e           <compat> 11B4
+313f           <compat> 11B5
+3140           <compat> 111A
+3141           <compat> 1106
+3142           <compat> 1107
+3143           <compat> 1108
+3144           <compat> 1121
+3145           <compat> 1109
+3146           <compat> 110A
+3147           <compat> 110B
+3148           <compat> 110C
+3149           <compat> 110D
+314a           <compat> 110E
+314b           <compat> 110F
+314c           <compat> 1110
+314d           <compat> 1111
+314e           <compat> 1112
+314f           <compat> 1161
+3150           <compat> 1162
+3151           <compat> 1163
+3152           <compat> 1164
+3153           <compat> 1165
+3154           <compat> 1166
+3155           <compat> 1167
+3156           <compat> 1168
+3157           <compat> 1169
+3158           <compat> 116A
+3159           <compat> 116B
+315a           <compat> 116C
+315b           <compat> 116D
+315c           <compat> 116E
+315d           <compat> 116F
+315e           <compat> 1170
+315f           <compat> 1171
+3160           <compat> 1172
+3161           <compat> 1173
+3162           <compat> 1174
+3163           <compat> 1175
+3164           <compat> 1160
+3165           <compat> 1114
+3166           <compat> 1115
+3167           <compat> 11C7
+3168           <compat> 11C8
+3169           <compat> 11CC
+316a           <compat> 11CE
+316b           <compat> 11D3
+316c           <compat> 11D7
+316d           <compat> 11D9
+316e           <compat> 111C
+316f           <compat> 11DD
+3170           <compat> 11DF
+3171           <compat> 111D
+3172           <compat> 111E
+3173           <compat> 1120
+3174           <compat> 1122
+3175           <compat> 1123
+3176           <compat> 1127
+3177           <compat> 1129
+3178           <compat> 112B
+3179           <compat> 112C
+317a           <compat> 112D
+317b           <compat> 112E
+317c           <compat> 112F
+317d           <compat> 1132
+317e           <compat> 1136
+317f           <compat> 1140
+3180           <compat> 1147
+3181           <compat> 114C
+3182           <compat> 11F1
+3183           <compat> 11F2
+3184           <compat> 1157
+3185           <compat> 1158
+3186           <compat> 1159
+3187           <compat> 1184
+3188           <compat> 1185
+3189           <compat> 1188
+318a           <compat> 1191
+318b           <compat> 1192
+318c           <compat> 1194
+318d           <compat> 119E
+318e           <compat> 11A1
+3192           <super> 4E00
+3193           <super> 4E8C
+3194           <super> 4E09
+3195           <super> 56DB
+3196           <super> 4E0A
+3197           <super> 4E2D
+3198           <super> 4E0B
+3199           <super> 7532
+319a           <super> 4E59
+319b           <super> 4E19
+319c           <super> 4E01
+319d           <super> 5929
+319e           <super> 5730
+319f           <super> 4EBA
+3200           <compat> 0028 1100 0029
+3201           <compat> 0028 1102 0029
+3202           <compat> 0028 1103 0029
+3203           <compat> 0028 1105 0029
+3204           <compat> 0028 1106 0029
+3205           <compat> 0028 1107 0029
+3206           <compat> 0028 1109 0029
+3207           <compat> 0028 110B 0029
+3208           <compat> 0028 110C 0029
+3209           <compat> 0028 110E 0029
+320a           <compat> 0028 110F 0029
+320b           <compat> 0028 1110 0029
+320c           <compat> 0028 1111 0029
+320d           <compat> 0028 1112 0029
+320e           <compat> 0028 1100 1161 0029
+320f           <compat> 0028 1102 1161 0029
+3210           <compat> 0028 1103 1161 0029
+3211           <compat> 0028 1105 1161 0029
+3212           <compat> 0028 1106 1161 0029
+3213           <compat> 0028 1107 1161 0029
+3214           <compat> 0028 1109 1161 0029
+3215           <compat> 0028 110B 1161 0029
+3216           <compat> 0028 110C 1161 0029
+3217           <compat> 0028 110E 1161 0029
+3218           <compat> 0028 110F 1161 0029
+3219           <compat> 0028 1110 1161 0029
+321a           <compat> 0028 1111 1161 0029
+321b           <compat> 0028 1112 1161 0029
+321c           <compat> 0028 110C 116E 0029
+3220           <compat> 0028 4E00 0029
+3221           <compat> 0028 4E8C 0029
+3222           <compat> 0028 4E09 0029
+3223           <compat> 0028 56DB 0029
+3224           <compat> 0028 4E94 0029
+3225           <compat> 0028 516D 0029
+3226           <compat> 0028 4E03 0029
+3227           <compat> 0028 516B 0029
+3228           <compat> 0028 4E5D 0029
+3229           <compat> 0028 5341 0029
+322a           <compat> 0028 6708 0029
+322b           <compat> 0028 706B 0029
+322c           <compat> 0028 6C34 0029
+322d           <compat> 0028 6728 0029
+322e           <compat> 0028 91D1 0029
+322f           <compat> 0028 571F 0029
+3230           <compat> 0028 65E5 0029
+3231           <compat> 0028 682A 0029
+3232           <compat> 0028 6709 0029
+3233           <compat> 0028 793E 0029
+3234           <compat> 0028 540D 0029
+3235           <compat> 0028 7279 0029
+3236           <compat> 0028 8CA1 0029
+3237           <compat> 0028 795D 0029
+3238           <compat> 0028 52B4 0029
+3239           <compat> 0028 4EE3 0029
+323a           <compat> 0028 547C 0029
+323b           <compat> 0028 5B66 0029
+323c           <compat> 0028 76E3 0029
+323d           <compat> 0028 4F01 0029
+323e           <compat> 0028 8CC7 0029
+323f           <compat> 0028 5354 0029
+3240           <compat> 0028 796D 0029
+3241           <compat> 0028 4F11 0029
+3242           <compat> 0028 81EA 0029
+3243           <compat> 0028 81F3 0029
+3260           <circle> 1100
+3261           <circle> 1102
+3262           <circle> 1103
+3263           <circle> 1105
+3264           <circle> 1106
+3265           <circle> 1107
+3266           <circle> 1109
+3267           <circle> 110B
+3268           <circle> 110C
+3269           <circle> 110E
+326a           <circle> 110F
+326b           <circle> 1110
+326c           <circle> 1111
+326d           <circle> 1112
+326e           <circle> 1100 1161
+326f           <circle> 1102 1161
+3270           <circle> 1103 1161
+3271           <circle> 1105 1161
+3272           <circle> 1106 1161
+3273           <circle> 1107 1161
+3274           <circle> 1109 1161
+3275           <circle> 110B 1161
+3276           <circle> 110C 1161
+3277           <circle> 110E 1161
+3278           <circle> 110F 1161
+3279           <circle> 1110 1161
+327a           <circle> 1111 1161
+327b           <circle> 1112 1161
+3280           <circle> 4E00
+3281           <circle> 4E8C
+3282           <circle> 4E09
+3283           <circle> 56DB
+3284           <circle> 4E94
+3285           <circle> 516D
+3286           <circle> 4E03
+3287           <circle> 516B
+3288           <circle> 4E5D
+3289           <circle> 5341
+328a           <circle> 6708
+328b           <circle> 706B
+328c           <circle> 6C34
+328d           <circle> 6728
+328e           <circle> 91D1
+328f           <circle> 571F
+3290           <circle> 65E5
+3291           <circle> 682A
+3292           <circle> 6709
+3293           <circle> 793E
+3294           <circle> 540D
+3295           <circle> 7279
+3296           <circle> 8CA1
+3297           <circle> 795D
+3298           <circle> 52B4
+3299           <circle> 79D8
+329a           <circle> 7537
+329b           <circle> 5973
+329c           <circle> 9069
+329d           <circle> 512A
+329e           <circle> 5370
+329f           <circle> 6CE8
+32a0           <circle> 9805
+32a1           <circle> 4F11
+32a2           <circle> 5199
+32a3           <circle> 6B63
+32a4           <circle> 4E0A
+32a5           <circle> 4E2D
+32a6           <circle> 4E0B
+32a7           <circle> 5DE6
+32a8           <circle> 53F3
+32a9           <circle> 533B
+32aa           <circle> 5B97
+32ab           <circle> 5B66
+32ac           <circle> 76E3
+32ad           <circle> 4F01
+32ae           <circle> 8CC7
+32af           <circle> 5354
+32b0           <circle> 591C
+32c0           <compat> 0031 6708
+32c1           <compat> 0032 6708
+32c2           <compat> 0033 6708
+32c3           <compat> 0034 6708
+32c4           <compat> 0035 6708
+32c5           <compat> 0036 6708
+32c6           <compat> 0037 6708
+32c7           <compat> 0038 6708
+32c8           <compat> 0039 6708
+32c9           <compat> 0031 0030 6708
+32ca           <compat> 0031 0031 6708
+32cb           <compat> 0031 0032 6708
+32d0           <circle> 30A2
+32d1           <circle> 30A4
+32d2           <circle> 30A6
+32d3           <circle> 30A8
+32d4           <circle> 30AA
+32d5           <circle> 30AB
+32d6           <circle> 30AD
+32d7           <circle> 30AF
+32d8           <circle> 30B1
+32d9           <circle> 30B3
+32da           <circle> 30B5
+32db           <circle> 30B7
+32dc           <circle> 30B9
+32dd           <circle> 30BB
+32de           <circle> 30BD
+32df           <circle> 30BF
+32e0           <circle> 30C1
+32e1           <circle> 30C4
+32e2           <circle> 30C6
+32e3           <circle> 30C8
+32e4           <circle> 30CA
+32e5           <circle> 30CB
+32e6           <circle> 30CC
+32e7           <circle> 30CD
+32e8           <circle> 30CE
+32e9           <circle> 30CF
+32ea           <circle> 30D2
+32eb           <circle> 30D5
+32ec           <circle> 30D8
+32ed           <circle> 30DB
+32ee           <circle> 30DE
+32ef           <circle> 30DF
+32f0           <circle> 30E0
+32f1           <circle> 30E1
+32f2           <circle> 30E2
+32f3           <circle> 30E4
+32f4           <circle> 30E6
+32f5           <circle> 30E8
+32f6           <circle> 30E9
+32f7           <circle> 30EA
+32f8           <circle> 30EB
+32f9           <circle> 30EC
+32fa           <circle> 30ED
+32fb           <circle> 30EF
+32fc           <circle> 30F0
+32fd           <circle> 30F1
+32fe           <circle> 30F2
+3300           <square> 30A2 30D1 30FC 30C8
+3301           <square> 30A2 30EB 30D5 30A1
+3302           <square> 30A2 30F3 30DA 30A2
+3303           <square> 30A2 30FC 30EB
+3304           <square> 30A4 30CB 30F3 30B0
+3305           <square> 30A4 30F3 30C1
+3306           <square> 30A6 30A9 30F3
+3307           <square> 30A8 30B9 30AF 30FC 30C9
+3308           <square> 30A8 30FC 30AB 30FC
+3309           <square> 30AA 30F3 30B9
+330a           <square> 30AA 30FC 30E0
+330b           <square> 30AB 30A4 30EA
+330c           <square> 30AB 30E9 30C3 30C8
+330d           <square> 30AB 30ED 30EA 30FC
+330e           <square> 30AC 30ED 30F3
+330f           <square> 30AC 30F3 30DE
+3310           <square> 30AE 30AC
+3311           <square> 30AE 30CB 30FC
+3312           <square> 30AD 30E5 30EA 30FC
+3313           <square> 30AE 30EB 30C0 30FC
+3314           <square> 30AD 30ED
+3315           <square> 30AD 30ED 30B0 30E9 30E0
+3316           <square> 30AD 30ED 30E1 30FC 30C8 30EB
+3317           <square> 30AD 30ED 30EF 30C3 30C8
+3318           <square> 30B0 30E9 30E0
+3319           <square> 30B0 30E9 30E0 30C8 30F3
+331a           <square> 30AF 30EB 30BC 30A4 30ED
+331b           <square> 30AF 30ED 30FC 30CD
+331c           <square> 30B1 30FC 30B9
+331d           <square> 30B3 30EB 30CA
+331e           <square> 30B3 30FC 30DD
+331f           <square> 30B5 30A4 30AF 30EB
+3320           <square> 30B5 30F3 30C1 30FC 30E0
+3321           <square> 30B7 30EA 30F3 30B0
+3322           <square> 30BB 30F3 30C1
+3323           <square> 30BB 30F3 30C8
+3324           <square> 30C0 30FC 30B9
+3325           <square> 30C7 30B7
+3326           <square> 30C9 30EB
+3327           <square> 30C8 30F3
+3328           <square> 30CA 30CE
+3329           <square> 30CE 30C3 30C8
+332a           <square> 30CF 30A4 30C4
+332b           <square> 30D1 30FC 30BB 30F3 30C8
+332c           <square> 30D1 30FC 30C4
+332d           <square> 30D0 30FC 30EC 30EB
+332e           <square> 30D4 30A2 30B9 30C8 30EB
+332f           <square> 30D4 30AF 30EB
+3330           <square> 30D4 30B3
+3331           <square> 30D3 30EB
+3332           <square> 30D5 30A1 30E9 30C3 30C9
+3333           <square> 30D5 30A3 30FC 30C8
+3334           <square> 30D6 30C3 30B7 30A7 30EB
+3335           <square> 30D5 30E9 30F3
+3336           <square> 30D8 30AF 30BF 30FC 30EB
+3337           <square> 30DA 30BD
+3338           <square> 30DA 30CB 30D2
+3339           <square> 30D8 30EB 30C4
+333a           <square> 30DA 30F3 30B9
+333b           <square> 30DA 30FC 30B8
+333c           <square> 30D9 30FC 30BF
+333d           <square> 30DD 30A4 30F3 30C8
+333e           <square> 30DC 30EB 30C8
+333f           <square> 30DB 30F3
+3340           <square> 30DD 30F3 30C9
+3341           <square> 30DB 30FC 30EB
+3342           <square> 30DB 30FC 30F3
+3343           <square> 30DE 30A4 30AF 30ED
+3344           <square> 30DE 30A4 30EB
+3345           <square> 30DE 30C3 30CF
+3346           <square> 30DE 30EB 30AF
+3347           <square> 30DE 30F3 30B7 30E7 30F3
+3348           <square> 30DF 30AF 30ED 30F3
+3349           <square> 30DF 30EA
+334a           <square> 30DF 30EA 30D0 30FC 30EB
+334b           <square> 30E1 30AC
+334c           <square> 30E1 30AC 30C8 30F3
+334d           <square> 30E1 30FC 30C8 30EB
+334e           <square> 30E4 30FC 30C9
+334f           <square> 30E4 30FC 30EB
+3350           <square> 30E6 30A2 30F3
+3351           <square> 30EA 30C3 30C8 30EB
+3352           <square> 30EA 30E9
+3353           <square> 30EB 30D4 30FC
+3354           <square> 30EB 30FC 30D6 30EB
+3355           <square> 30EC 30E0
+3356           <square> 30EC 30F3 30C8 30B2 30F3
+3357           <square> 30EF 30C3 30C8
+3358           <compat> 0030 70B9
+3359           <compat> 0031 70B9
+335a           <compat> 0032 70B9
+335b           <compat> 0033 70B9
+335c           <compat> 0034 70B9
+335d           <compat> 0035 70B9
+335e           <compat> 0036 70B9
+335f           <compat> 0037 70B9
+3360           <compat> 0038 70B9
+3361           <compat> 0039 70B9
+3362           <compat> 0031 0030 70B9
+3363           <compat> 0031 0031 70B9
+3364           <compat> 0031 0032 70B9
+3365           <compat> 0031 0033 70B9
+3366           <compat> 0031 0034 70B9
+3367           <compat> 0031 0035 70B9
+3368           <compat> 0031 0036 70B9
+3369           <compat> 0031 0037 70B9
+336a           <compat> 0031 0038 70B9
+336b           <compat> 0031 0039 70B9
+336c           <compat> 0032 0030 70B9
+336d           <compat> 0032 0031 70B9
+336e           <compat> 0032 0032 70B9
+336f           <compat> 0032 0033 70B9
+3370           <compat> 0032 0034 70B9
+3371           <square> 0068 0050 0061
+3372           <square> 0064 0061
+3373           <square> 0041 0055
+3374           <square> 0062 0061 0072
+3375           <square> 006F 0056
+3376           <square> 0070 0063
+337b           <square> 5E73 6210
+337c           <square> 662D 548C
+337d           <square> 5927 6B63
+337e           <square> 660E 6CBB
+337f           <square> 682A 5F0F 4F1A 793E
+3380           <square> 0070 0041
+3381           <square> 006E 0041
+3382           <square> 03BC 0041
+3383           <square> 006D 0041
+3384           <square> 006B 0041
+3385           <square> 004B 0042
+3386           <square> 004D 0042
+3387           <square> 0047 0042
+3388           <square> 0063 0061 006C
+3389           <square> 006B 0063 0061 006C
+338a           <square> 0070 0046
+338b           <square> 006E 0046
+338c           <square> 03BC 0046
+338d           <square> 03BC 0067
+338e           <square> 006D 0067
+338f           <square> 006B 0067
+3390           <square> 0048 007A
+3391           <square> 006B 0048 007A
+3392           <square> 004D 0048 007A
+3393           <square> 0047 0048 007A
+3394           <square> 0054 0048 007A
+3395           <square> 03BC 2113
+3396           <square> 006D 2113
+3397           <square> 0064 2113
+3398           <square> 006B 2113
+3399           <square> 0066 006D
+339a           <square> 006E 006D
+339b           <square> 03BC 006D
+339c           <square> 006D 006D
+339d           <square> 0063 006D
+339e           <square> 006B 006D
+339f           <square> 006D 006D 00B2
+33a0           <square> 0063 006D 00B2
+33a1           <square> 006D 00B2
+33a2           <square> 006B 006D 00B2
+33a3           <square> 006D 006D 00B3
+33a4           <square> 0063 006D 00B3
+33a5           <square> 006D 00B3
+33a6           <square> 006B 006D 00B3
+33a7           <square> 006D 2215 0073
+33a8           <square> 006D 2215 0073 00B2
+33a9           <square> 0050 0061
+33aa           <square> 006B 0050 0061
+33ab           <square> 004D 0050 0061
+33ac           <square> 0047 0050 0061
+33ad           <square> 0072 0061 0064
+33ae           <square> 0072 0061 0064 2215 0073
+33af           <square> 0072 0061 0064 2215 0073 00B2
+33b0           <square> 0070 0073
+33b1           <square> 006E 0073
+33b2           <square> 03BC 0073
+33b3           <square> 006D 0073
+33b4           <square> 0070 0056
+33b5           <square> 006E 0056
+33b6           <square> 03BC 0056
+33b7           <square> 006D 0056
+33b8           <square> 006B 0056
+33b9           <square> 004D 0056
+33ba           <square> 0070 0057
+33bb           <square> 006E 0057
+33bc           <square> 03BC 0057
+33bd           <square> 006D 0057
+33be           <square> 006B 0057
+33bf           <square> 004D 0057
+33c0           <square> 006B 03A9
+33c1           <square> 004D 03A9
+33c2           <square> 0061 002E 006D 002E
+33c3           <square> 0042 0071
+33c4           <square> 0063 0063
+33c5           <square> 0063 0064
+33c6           <square> 0043 2215 006B 0067
+33c7           <square> 0043 006F 002E
+33c8           <square> 0064 0042
+33c9           <square> 0047 0079
+33ca           <square> 0068 0061
+33cb           <square> 0048 0050
+33cc           <square> 0069 006E
+33cd           <square> 004B 004B
+33ce           <square> 004B 004D
+33cf           <square> 006B 0074
+33d0           <square> 006C 006D
+33d1           <square> 006C 006E
+33d2           <square> 006C 006F 0067
+33d3           <square> 006C 0078
+33d4           <square> 006D 0062
+33d5           <square> 006D 0069 006C
+33d6           <square> 006D 006F 006C
+33d7           <square> 0050 0048
+33d8           <square> 0070 002E 006D 002E
+33d9           <square> 0050 0050 004D
+33da           <square> 0050 0052
+33db           <square> 0073 0072
+33dc           <square> 0053 0076
+33dd           <square> 0057 0062
+33e0           <compat> 0031 65E5
+33e1           <compat> 0032 65E5
+33e2           <compat> 0033 65E5
+33e3           <compat> 0034 65E5
+33e4           <compat> 0035 65E5
+33e5           <compat> 0036 65E5
+33e6           <compat> 0037 65E5
+33e7           <compat> 0038 65E5
+33e8           <compat> 0039 65E5
+33e9           <compat> 0031 0030 65E5
+33ea           <compat> 0031 0031 65E5
+33eb           <compat> 0031 0032 65E5
+33ec           <compat> 0031 0033 65E5
+33ed           <compat> 0031 0034 65E5
+33ee           <compat> 0031 0035 65E5
+33ef           <compat> 0031 0036 65E5
+33f0           <compat> 0031 0037 65E5
+33f1           <compat> 0031 0038 65E5
+33f2           <compat> 0031 0039 65E5
+33f3           <compat> 0032 0030 65E5
+33f4           <compat> 0032 0031 65E5
+33f5           <compat> 0032 0032 65E5
+33f6           <compat> 0032 0033 65E5
+33f7           <compat> 0032 0034 65E5
+33f8           <compat> 0032 0035 65E5
+33f9           <compat> 0032 0036 65E5
+33fa           <compat> 0032 0037 65E5
+33fb           <compat> 0032 0038 65E5
+33fc           <compat> 0032 0039 65E5
+33fd           <compat> 0033 0030 65E5
+33fe           <compat> 0033 0031 65E5
+fb00           <compat> 0066 0066
+fb01           <compat> 0066 0069
+fb02           <compat> 0066 006C
+fb03           <compat> 0066 0066 0069
+fb04           <compat> 0066 0066 006C
+fb05           <compat> 017F 0074
+fb06           <compat> 0073 0074
+fb13           <compat> 0574 0576
+fb14           <compat> 0574 0565
+fb15           <compat> 0574 056B
+fb16           <compat> 057E 0576
+fb17           <compat> 0574 056D
+fb1f           05F2 05B7
+fb20           <font> 05E2
+fb21           <font> 05D0
+fb22           <font> 05D3
+fb23           <font> 05D4
+fb24           <font> 05DB
+fb25           <font> 05DC
+fb26           <font> 05DD
+fb27           <font> 05E8
+fb28           <font> 05EA
+fb29           <font> 002B
+fb2a           05E9 05C1
+fb2b           05E9 05C2
+fb2c           05E9 05BC 05C1
+fb2d           05E9 05BC 05C2
+fb2e           05D0 05B7
+fb2f           05D0 05B8
+fb30           05D0 05BC
+fb31           05D1 05BC
+fb32           05D2 05BC
+fb33           05D3 05BC
+fb34           05D4 05BC
+fb35           05D5 05BC
+fb36           05D6 05BC
+fb38           05D8 05BC
+fb39           05D9 05BC
+fb3a           05DA 05BC
+fb3b           05DB 05BC
+fb3c           05DC 05BC
+fb3e           05DE 05BC
+fb40           05E0 05BC
+fb41           05E1 05BC
+fb43           05E3 05BC
+fb44           05E4 05BC
+fb46           05E6 05BC
+fb47           05E7 05BC
+fb48           05E8 05BC
+fb49           05E9 05BC
+fb4a           05EA 05BC
+fb4b           05D5 05B9
+fb4c           05D1 05BF
+fb4d           05DB 05BF
+fb4e           05E4 05BF
+fb4f           <compat> 05D0 05DC
+fb50           <isolated> 0671
+fb51           <final> 0671
+fb52           <isolated> 067B
+fb53           <final> 067B
+fb54           <initial> 067B
+fb55           <medial> 067B
+fb56           <isolated> 067E
+fb57           <final> 067E
+fb58           <initial> 067E
+fb59           <medial> 067E
+fb5a           <isolated> 0680
+fb5b           <final> 0680
+fb5c           <initial> 0680
+fb5d           <medial> 0680
+fb5e           <isolated> 067A
+fb5f           <final> 067A
+fb60           <initial> 067A
+fb61           <medial> 067A
+fb62           <isolated> 067F
+fb63           <final> 067F
+fb64           <initial> 067F
+fb65           <medial> 067F
+fb66           <isolated> 0679
+fb67           <final> 0679
+fb68           <initial> 0679
+fb69           <medial> 0679
+fb6a           <isolated> 06A4
+fb6b           <final> 06A4
+fb6c           <initial> 06A4
+fb6d           <medial> 06A4
+fb6e           <isolated> 06A6
+fb6f           <final> 06A6
+fb70           <initial> 06A6
+fb71           <medial> 06A6
+fb72           <isolated> 0684
+fb73           <final> 0684
+fb74           <initial> 0684
+fb75           <medial> 0684
+fb76           <isolated> 0683
+fb77           <final> 0683
+fb78           <initial> 0683
+fb79           <medial> 0683
+fb7a           <isolated> 0686
+fb7b           <final> 0686
+fb7c           <initial> 0686
+fb7d           <medial> 0686
+fb7e           <isolated> 0687
+fb7f           <final> 0687
+fb80           <initial> 0687
+fb81           <medial> 0687
+fb82           <isolated> 068D
+fb83           <final> 068D
+fb84           <isolated> 068C
+fb85           <final> 068C
+fb86           <isolated> 068E
+fb87           <final> 068E
+fb88           <isolated> 0688
+fb89           <final> 0688
+fb8a           <isolated> 0698
+fb8b           <final> 0698
+fb8c           <isolated> 0691
+fb8d           <final> 0691
+fb8e           <isolated> 06A9
+fb8f           <final> 06A9
+fb90           <initial> 06A9
+fb91           <medial> 06A9
+fb92           <isolated> 06AF
+fb93           <final> 06AF
+fb94           <initial> 06AF
+fb95           <medial> 06AF
+fb96           <isolated> 06B3
+fb97           <final> 06B3
+fb98           <initial> 06B3
+fb99           <medial> 06B3
+fb9a           <isolated> 06B1
+fb9b           <final> 06B1
+fb9c           <initial> 06B1
+fb9d           <medial> 06B1
+fb9e           <isolated> 06BA
+fb9f           <final> 06BA
+fba0           <isolated> 06BB
+fba1           <final> 06BB
+fba2           <initial> 06BB
+fba3           <medial> 06BB
+fba4           <isolated> 06C0
+fba5           <final> 06C0
+fba6           <isolated> 06C1
+fba7           <final> 06C1
+fba8           <initial> 06C1
+fba9           <medial> 06C1
+fbaa           <isolated> 06BE
+fbab           <final> 06BE
+fbac           <initial> 06BE
+fbad           <medial> 06BE
+fbae           <isolated> 06D2
+fbaf           <final> 06D2
+fbb0           <isolated> 06D3
+fbb1           <final> 06D3
+fbd3           <isolated> 06AD
+fbd4           <final> 06AD
+fbd5           <initial> 06AD
+fbd6           <medial> 06AD
+fbd7           <isolated> 06C7
+fbd8           <final> 06C7
+fbd9           <isolated> 06C6
+fbda           <final> 06C6
+fbdb           <isolated> 06C8
+fbdc           <final> 06C8
+fbdd           <isolated> 0677
+fbde           <isolated> 06CB
+fbdf           <final> 06CB
+fbe0           <isolated> 06C5
+fbe1           <final> 06C5
+fbe2           <isolated> 06C9
+fbe3           <final> 06C9
+fbe4           <isolated> 06D0
+fbe5           <final> 06D0
+fbe6           <initial> 06D0
+fbe7           <medial> 06D0
+fbe8           <initial> 0649
+fbe9           <medial> 0649
+fbea           <isolated> 0626 0627
+fbeb           <final> 0626 0627
+fbec           <isolated> 0626 06D5
+fbed           <final> 0626 06D5
+fbee           <isolated> 0626 0648
+fbef           <final> 0626 0648
+fbf0           <isolated> 0626 06C7
+fbf1           <final> 0626 06C7
+fbf2           <isolated> 0626 06C6
+fbf3           <final> 0626 06C6
+fbf4           <isolated> 0626 06C8
+fbf5           <final> 0626 06C8
+fbf6           <isolated> 0626 06D0
+fbf7           <final> 0626 06D0
+fbf8           <initial> 0626 06D0
+fbf9           <isolated> 0626 0649
+fbfa           <final> 0626 0649
+fbfb           <initial> 0626 0649
+fbfc           <isolated> 06CC
+fbfd           <final> 06CC
+fbfe           <initial> 06CC
+fbff           <medial> 06CC
+fc00           <isolated> 0626 062C
+fc01           <isolated> 0626 062D
+fc02           <isolated> 0626 0645
+fc03           <isolated> 0626 0649
+fc04           <isolated> 0626 064A
+fc05           <isolated> 0628 062C
+fc06           <isolated> 0628 062D
+fc07           <isolated> 0628 062E
+fc08           <isolated> 0628 0645
+fc09           <isolated> 0628 0649
+fc0a           <isolated> 0628 064A
+fc0b           <isolated> 062A 062C
+fc0c           <isolated> 062A 062D
+fc0d           <isolated> 062A 062E
+fc0e           <isolated> 062A 0645
+fc0f           <isolated> 062A 0649
+fc10           <isolated> 062A 064A
+fc11           <isolated> 062B 062C
+fc12           <isolated> 062B 0645
+fc13           <isolated> 062B 0649
+fc14           <isolated> 062B 064A
+fc15           <isolated> 062C 062D
+fc16           <isolated> 062C 0645
+fc17           <isolated> 062D 062C
+fc18           <isolated> 062D 0645
+fc19           <isolated> 062E 062C
+fc1a           <isolated> 062E 062D
+fc1b           <isolated> 062E 0645
+fc1c           <isolated> 0633 062C
+fc1d           <isolated> 0633 062D
+fc1e           <isolated> 0633 062E
+fc1f           <isolated> 0633 0645
+fc20           <isolated> 0635 062D
+fc21           <isolated> 0635 0645
+fc22           <isolated> 0636 062C
+fc23           <isolated> 0636 062D
+fc24           <isolated> 0636 062E
+fc25           <isolated> 0636 0645
+fc26           <isolated> 0637 062D
+fc27           <isolated> 0637 0645
+fc28           <isolated> 0638 0645
+fc29           <isolated> 0639 062C
+fc2a           <isolated> 0639 0645
+fc2b           <isolated> 063A 062C
+fc2c           <isolated> 063A 0645
+fc2d           <isolated> 0641 062C
+fc2e           <isolated> 0641 062D
+fc2f           <isolated> 0641 062E
+fc30           <isolated> 0641 0645
+fc31           <isolated> 0641 0649
+fc32           <isolated> 0641 064A
+fc33           <isolated> 0642 062D
+fc34           <isolated> 0642 0645
+fc35           <isolated> 0642 0649
+fc36           <isolated> 0642 064A
+fc37           <isolated> 0643 0627
+fc38           <isolated> 0643 062C
+fc39           <isolated> 0643 062D
+fc3a           <isolated> 0643 062E
+fc3b           <isolated> 0643 0644
+fc3c           <isolated> 0643 0645
+fc3d           <isolated> 0643 0649
+fc3e           <isolated> 0643 064A
+fc3f           <isolated> 0644 062C
+fc40           <isolated> 0644 062D
+fc41           <isolated> 0644 062E
+fc42           <isolated> 0644 0645
+fc43           <isolated> 0644 0649
+fc44           <isolated> 0644 064A
+fc45           <isolated> 0645 062C
+fc46           <isolated> 0645 062D
+fc47           <isolated> 0645 062E
+fc48           <isolated> 0645 0645
+fc49           <isolated> 0645 0649
+fc4a           <isolated> 0645 064A
+fc4b           <isolated> 0646 062C
+fc4c           <isolated> 0646 062D
+fc4d           <isolated> 0646 062E
+fc4e           <isolated> 0646 0645
+fc4f           <isolated> 0646 0649
+fc50           <isolated> 0646 064A
+fc51           <isolated> 0647 062C
+fc52           <isolated> 0647 0645
+fc53           <isolated> 0647 0649
+fc54           <isolated> 0647 064A
+fc55           <isolated> 064A 062C
+fc56           <isolated> 064A 062D
+fc57           <isolated> 064A 062E
+fc58           <isolated> 064A 0645
+fc59           <isolated> 064A 0649
+fc5a           <isolated> 064A 064A
+fc5b           <isolated> 0630 0670
+fc5c           <isolated> 0631 0670
+fc5d           <isolated> 0649 0670
+fc5e           <isolated> 0020 0651 064C
+fc5f           <isolated> 0020 0651 064D
+fc60           <isolated> 0020 0651 064E
+fc61           <isolated> 0020 0651 064F
+fc62           <isolated> 0020 0651 0650
+fc63           <isolated> 0020 0651 0670
+fc64           <final> 0626 0631
+fc65           <final> 0626 0632
+fc66           <final> 0626 0645
+fc67           <final> 0626 0646
+fc68           <final> 0626 0649
+fc69           <final> 0626 064A
+fc6a           <final> 0628 0631
+fc6b           <final> 0628 0632
+fc6c           <final> 0628 0645
+fc6d           <final> 0628 0646
+fc6e           <final> 0628 0649
+fc6f           <final> 0628 064A
+fc70           <final> 062A 0631
+fc71           <final> 062A 0632
+fc72           <final> 062A 0645
+fc73           <final> 062A 0646
+fc74           <final> 062A 0649
+fc75           <final> 062A 064A
+fc76           <final> 062B 0631
+fc77           <final> 062B 0632
+fc78           <final> 062B 0645
+fc79           <final> 062B 0646
+fc7a           <final> 062B 0649
+fc7b           <final> 062B 064A
+fc7c           <final> 0641 0649
+fc7d           <final> 0641 064A
+fc7e           <final> 0642 0649
+fc7f           <final> 0642 064A
+fc80           <final> 0643 0627
+fc81           <final> 0643 0644
+fc82           <final> 0643 0645
+fc83           <final> 0643 0649
+fc84           <final> 0643 064A
+fc85           <final> 0644 0645
+fc86           <final> 0644 0649
+fc87           <final> 0644 064A
+fc88           <final> 0645 0627
+fc89           <final> 0645 0645
+fc8a           <final> 0646 0631
+fc8b           <final> 0646 0632
+fc8c           <final> 0646 0645
+fc8d           <final> 0646 0646
+fc8e           <final> 0646 0649
+fc8f           <final> 0646 064A
+fc90           <final> 0649 0670
+fc91           <final> 064A 0631
+fc92           <final> 064A 0632
+fc93           <final> 064A 0645
+fc94           <final> 064A 0646
+fc95           <final> 064A 0649
+fc96           <final> 064A 064A
+fc97           <initial> 0626 062C
+fc98           <initial> 0626 062D
+fc99           <initial> 0626 062E
+fc9a           <initial> 0626 0645
+fc9b           <initial> 0626 0647
+fc9c           <initial> 0628 062C
+fc9d           <initial> 0628 062D
+fc9e           <initial> 0628 062E
+fc9f           <initial> 0628 0645
+fca0           <initial> 0628 0647
+fca1           <initial> 062A 062C
+fca2           <initial> 062A 062D
+fca3           <initial> 062A 062E
+fca4           <initial> 062A 0645
+fca5           <initial> 062A 0647
+fca6           <initial> 062B 0645
+fca7           <initial> 062C 062D
+fca8           <initial> 062C 0645
+fca9           <initial> 062D 062C
+fcaa           <initial> 062D 0645
+fcab           <initial> 062E 062C
+fcac           <initial> 062E 0645
+fcad           <initial> 0633 062C
+fcae           <initial> 0633 062D
+fcaf           <initial> 0633 062E
+fcb0           <initial> 0633 0645
+fcb1           <initial> 0635 062D
+fcb2           <initial> 0635 062E
+fcb3           <initial> 0635 0645
+fcb4           <initial> 0636 062C
+fcb5           <initial> 0636 062D
+fcb6           <initial> 0636 062E
+fcb7           <initial> 0636 0645
+fcb8           <initial> 0637 062D
+fcb9           <initial> 0638 0645
+fcba           <initial> 0639 062C
+fcbb           <initial> 0639 0645
+fcbc           <initial> 063A 062C
+fcbd           <initial> 063A 0645
+fcbe           <initial> 0641 062C
+fcbf           <initial> 0641 062D
+fcc0           <initial> 0641 062E
+fcc1           <initial> 0641 0645
+fcc2           <initial> 0642 062D
+fcc3           <initial> 0642 0645
+fcc4           <initial> 0643 062C
+fcc5           <initial> 0643 062D
+fcc6           <initial> 0643 062E
+fcc7           <initial> 0643 0644
+fcc8           <initial> 0643 0645
+fcc9           <initial> 0644 062C
+fcca           <initial> 0644 062D
+fccb           <initial> 0644 062E
+fccc           <initial> 0644 0645
+fccd           <initial> 0644 0647
+fcce           <initial> 0645 062C
+fccf           <initial> 0645 062D
+fcd0           <initial> 0645 062E
+fcd1           <initial> 0645 0645
+fcd2           <initial> 0646 062C
+fcd3           <initial> 0646 062D
+fcd4           <initial> 0646 062E
+fcd5           <initial> 0646 0645
+fcd6           <initial> 0646 0647
+fcd7           <initial> 0647 062C
+fcd8           <initial> 0647 0645
+fcd9           <initial> 0647 0670
+fcda           <initial> 064A 062C
+fcdb           <initial> 064A 062D
+fcdc           <initial> 064A 062E
+fcdd           <initial> 064A 0645
+fcde           <initial> 064A 0647
+fcdf           <medial> 0626 0645
+fce0           <medial> 0626 0647
+fce1           <medial> 0628 0645
+fce2           <medial> 0628 0647
+fce3           <medial> 062A 0645
+fce4           <medial> 062A 0647
+fce5           <medial> 062B 0645
+fce6           <medial> 062B 0647
+fce7           <medial> 0633 0645
+fce8           <medial> 0633 0647
+fce9           <medial> 0634 0645
+fcea           <medial> 0634 0647
+fceb           <medial> 0643 0644
+fcec           <medial> 0643 0645
+fced           <medial> 0644 0645
+fcee           <medial> 0646 0645
+fcef           <medial> 0646 0647
+fcf0           <medial> 064A 0645
+fcf1           <medial> 064A 0647
+fcf2           <medial> 0640 0651 064E
+fcf3           <medial> 0640 0651 064F
+fcf4           <medial> 0640 0651 0650
+fcf5           <isolated> 0637 0649
+fcf6           <isolated> 0637 064A
+fcf7           <isolated> 0639 0649
+fcf8           <isolated> 0639 064A
+fcf9           <isolated> 063A 0649
+fcfa           <isolated> 063A 064A
+fcfb           <isolated> 0633 0649
+fcfc           <isolated> 0633 064A
+fcfd           <isolated> 0634 0649
+fcfe           <isolated> 0634 064A
+fcff           <isolated> 062D 0649
+fd00           <isolated> 062D 064A
+fd01           <isolated> 062C 0649
+fd02           <isolated> 062C 064A
+fd03           <isolated> 062E 0649
+fd04           <isolated> 062E 064A
+fd05           <isolated> 0635 0649
+fd06           <isolated> 0635 064A
+fd07           <isolated> 0636 0649
+fd08           <isolated> 0636 064A
+fd09           <isolated> 0634 062C
+fd0a           <isolated> 0634 062D
+fd0b           <isolated> 0634 062E
+fd0c           <isolated> 0634 0645
+fd0d           <isolated> 0634 0631
+fd0e           <isolated> 0633 0631
+fd0f           <isolated> 0635 0631
+fd10           <isolated> 0636 0631
+fd11           <final> 0637 0649
+fd12           <final> 0637 064A
+fd13           <final> 0639 0649
+fd14           <final> 0639 064A
+fd15           <final> 063A 0649
+fd16           <final> 063A 064A
+fd17           <final> 0633 0649
+fd18           <final> 0633 064A
+fd19           <final> 0634 0649
+fd1a           <final> 0634 064A
+fd1b           <final> 062D 0649
+fd1c           <final> 062D 064A
+fd1d           <final> 062C 0649
+fd1e           <final> 062C 064A
+fd1f           <final> 062E 0649
+fd20           <final> 062E 064A
+fd21           <final> 0635 0649
+fd22           <final> 0635 064A
+fd23           <final> 0636 0649
+fd24           <final> 0636 064A
+fd25           <final> 0634 062C
+fd26           <final> 0634 062D
+fd27           <final> 0634 062E
+fd28           <final> 0634 0645
+fd29           <final> 0634 0631
+fd2a           <final> 0633 0631
+fd2b           <final> 0635 0631
+fd2c           <final> 0636 0631
+fd2d           <initial> 0634 062C
+fd2e           <initial> 0634 062D
+fd2f           <initial> 0634 062E
+fd30           <initial> 0634 0645
+fd31           <initial> 0633 0647
+fd32           <initial> 0634 0647
+fd33           <initial> 0637 0645
+fd34           <medial> 0633 062C
+fd35           <medial> 0633 062D
+fd36           <medial> 0633 062E
+fd37           <medial> 0634 062C
+fd38           <medial> 0634 062D
+fd39           <medial> 0634 062E
+fd3a           <medial> 0637 0645
+fd3b           <medial> 0638 0645
+fd3c           <final> 0627 064B
+fd3d           <isolated> 0627 064B
+fd50           <initial> 062A 062C 0645
+fd51           <final> 062A 062D 062C
+fd52           <initial> 062A 062D 062C
+fd53           <initial> 062A 062D 0645
+fd54           <initial> 062A 062E 0645
+fd55           <initial> 062A 0645 062C
+fd56           <initial> 062A 0645 062D
+fd57           <initial> 062A 0645 062E
+fd58           <final> 062C 0645 062D
+fd59           <initial> 062C 0645 062D
+fd5a           <final> 062D 0645 064A
+fd5b           <final> 062D 0645 0649
+fd5c           <initial> 0633 062D 062C
+fd5d           <initial> 0633 062C 062D
+fd5e           <final> 0633 062C 0649
+fd5f           <final> 0633 0645 062D
+fd60           <initial> 0633 0645 062D
+fd61           <initial> 0633 0645 062C
+fd62           <final> 0633 0645 0645
+fd63           <initial> 0633 0645 0645
+fd64           <final> 0635 062D 062D
+fd65           <initial> 0635 062D 062D
+fd66           <final> 0635 0645 0645
+fd67           <final> 0634 062D 0645
+fd68           <initial> 0634 062D 0645
+fd69           <final> 0634 062C 064A
+fd6a           <final> 0634 0645 062E
+fd6b           <initial> 0634 0645 062E
+fd6c           <final> 0634 0645 0645
+fd6d           <initial> 0634 0645 0645
+fd6e           <final> 0636 062D 0649
+fd6f           <final> 0636 062E 0645
+fd70           <initial> 0636 062E 0645
+fd71           <final> 0637 0645 062D
+fd72           <initial> 0637 0645 062D
+fd73           <initial> 0637 0645 0645
+fd74           <final> 0637 0645 064A
+fd75           <final> 0639 062C 0645
+fd76           <final> 0639 0645 0645
+fd77           <initial> 0639 0645 0645
+fd78           <final> 0639 0645 0649
+fd79           <final> 063A 0645 0645
+fd7a           <final> 063A 0645 064A
+fd7b           <final> 063A 0645 0649
+fd7c           <final> 0641 062E 0645
+fd7d           <initial> 0641 062E 0645
+fd7e           <final> 0642 0645 062D
+fd7f           <final> 0642 0645 0645
+fd80           <final> 0644 062D 0645
+fd81           <final> 0644 062D 064A
+fd82           <final> 0644 062D 0649
+fd83           <initial> 0644 062C 062C
+fd84           <final> 0644 062C 062C
+fd85           <final> 0644 062E 0645
+fd86           <initial> 0644 062E 0645
+fd87           <final> 0644 0645 062D
+fd88           <initial> 0644 0645 062D
+fd89           <initial> 0645 062D 062C
+fd8a           <initial> 0645 062D 0645
+fd8b           <final> 0645 062D 064A
+fd8c           <initial> 0645 062C 062D
+fd8d           <initial> 0645 062C 0645
+fd8e           <initial> 0645 062E 062C
+fd8f           <initial> 0645 062E 0645
+fd92           <initial> 0645 062C 062E
+fd93           <initial> 0647 0645 062C
+fd94           <initial> 0647 0645 0645
+fd95           <initial> 0646 062D 0645
+fd96           <final> 0646 062D 0649
+fd97           <final> 0646 062C 0645
+fd98           <initial> 0646 062C 0645
+fd99           <final> 0646 062C 0649
+fd9a           <final> 0646 0645 064A
+fd9b           <final> 0646 0645 0649
+fd9c           <final> 064A 0645 0645
+fd9d           <initial> 064A 0645 0645
+fd9e           <final> 0628 062E 064A
+fd9f           <final> 062A 062C 064A
+fda0           <final> 062A 062C 0649
+fda1           <final> 062A 062E 064A
+fda2           <final> 062A 062E 0649
+fda3           <final> 062A 0645 064A
+fda4           <final> 062A 0645 0649
+fda5           <final> 062C 0645 064A
+fda6           <final> 062C 062D 0649
+fda7           <final> 062C 0645 0649
+fda8           <final> 0633 062E 0649
+fda9           <final> 0635 062D 064A
+fdaa           <final> 0634 062D 064A
+fdab           <final> 0636 062D 064A
+fdac           <final> 0644 062C 064A
+fdad           <final> 0644 0645 064A
+fdae           <final> 064A 062D 064A
+fdaf           <final> 064A 062C 064A
+fdb0           <final> 064A 0645 064A
+fdb1           <final> 0645 0645 064A
+fdb2           <final> 0642 0645 064A
+fdb3           <final> 0646 062D 064A
+fdb4           <initial> 0642 0645 062D
+fdb5           <initial> 0644 062D 0645
+fdb6           <final> 0639 0645 064A
+fdb7           <final> 0643 0645 064A
+fdb8           <initial> 0646 062C 062D
+fdb9           <final> 0645 062E 064A
+fdba           <initial> 0644 062C 0645
+fdbb           <final> 0643 0645 0645
+fdbc           <final> 0644 062C 0645
+fdbd           <final> 0646 062C 062D
+fdbe           <final> 062C 062D 064A
+fdbf           <final> 062D 062C 064A
+fdc0           <final> 0645 062C 064A
+fdc1           <final> 0641 0645 064A
+fdc2           <final> 0628 062D 064A
+fdc3           <initial> 0643 0645 0645
+fdc4           <initial> 0639 062C 0645
+fdc5           <initial> 0635 0645 0645
+fdc6           <final> 0633 062E 064A
+fdc7           <final> 0646 062C 064A
+fdf0           <isolated> 0635 0644 06D2
+fdf1           <isolated> 0642 0644 06D2
+fdf2           <isolated> 0627 0644 0644 0647
+fdf3           <isolated> 0627 0643 0628 0631
+fdf4           <isolated> 0645 062D 0645 062F
+fdf5           <isolated> 0635 0644 0639 0645
+fdf6           <isolated> 0631 0633 0648 0644
+fdf7           <isolated> 0639 0644 064A 0647
+fdf8           <isolated> 0648 0633 0644 0645
+fdf9           <isolated> 0635 0644 0649
+fdfa           <isolated> 0635 0644 0649 0020 0627 0644 0644 0647 0020 0639 0644 064A 0647 0020 0648 0633 0644 0645
+fdfb           <isolated> 062C 0644 0020 062C 0644 0627 0644 0647
+fe30           <vertical> 2025
+fe31           <vertical> 2014
+fe32           <vertical> 2013
+fe33   fe34    <vertical> 005F
+fe35           <vertical> 0028
+fe36           <vertical> 0029
+fe37           <vertical> 007B
+fe38           <vertical> 007D
+fe39           <vertical> 3014
+fe3a           <vertical> 3015
+fe3b           <vertical> 3010
+fe3c           <vertical> 3011
+fe3d           <vertical> 300A
+fe3e           <vertical> 300B
+fe3f           <vertical> 3008
+fe40           <vertical> 3009
+fe41           <vertical> 300C
+fe42           <vertical> 300D
+fe43           <vertical> 300E
+fe44           <vertical> 300F
+fe49   fe4c    <compat> 203E
+fe4d   fe4f    <compat> 005F
+fe50           <small> 002C
+fe51           <small> 3001
+fe52           <small> 002E
+fe54           <small> 003B
+fe55           <small> 003A
+fe56           <small> 003F
+fe57           <small> 0021
+fe58           <small> 2014
+fe59           <small> 0028
+fe5a           <small> 0029
+fe5b           <small> 007B
+fe5c           <small> 007D
+fe5d           <small> 3014
+fe5e           <small> 3015
+fe5f           <small> 0023
+fe60           <small> 0026
+fe61           <small> 002A
+fe62           <small> 002B
+fe63           <small> 002D
+fe64           <small> 003C
+fe65           <small> 003E
+fe66           <small> 003D
+fe68           <small> 005C
+fe69           <small> 0024
+fe6a           <small> 0025
+fe6b           <small> 0040
+fe70           <isolated> 0020 064B
+fe71           <medial> 0640 064B
+fe72           <isolated> 0020 064C
+fe74           <isolated> 0020 064D
+fe76           <isolated> 0020 064E
+fe77           <medial> 0640 064E
+fe78           <isolated> 0020 064F
+fe79           <medial> 0640 064F
+fe7a           <isolated> 0020 0650
+fe7b           <medial> 0640 0650
+fe7c           <isolated> 0020 0651
+fe7d           <medial> 0640 0651
+fe7e           <isolated> 0020 0652
+fe7f           <medial> 0640 0652
+fe80           <isolated> 0621
+fe81           <isolated> 0622
+fe82           <final> 0622
+fe83           <isolated> 0623
+fe84           <final> 0623
+fe85           <isolated> 0624
+fe86           <final> 0624
+fe87           <isolated> 0625
+fe88           <final> 0625
+fe89           <isolated> 0626
+fe8a           <final> 0626
+fe8b           <initial> 0626
+fe8c           <medial> 0626
+fe8d           <isolated> 0627
+fe8e           <final> 0627
+fe8f           <isolated> 0628
+fe90           <final> 0628
+fe91           <initial> 0628
+fe92           <medial> 0628
+fe93           <isolated> 0629
+fe94           <final> 0629
+fe95           <isolated> 062A
+fe96           <final> 062A
+fe97           <initial> 062A
+fe98           <medial> 062A
+fe99           <isolated> 062B
+fe9a           <final> 062B
+fe9b           <initial> 062B
+fe9c           <medial> 062B
+fe9d           <isolated> 062C
+fe9e           <final> 062C
+fe9f           <initial> 062C
+fea0           <medial> 062C
+fea1           <isolated> 062D
+fea2           <final> 062D
+fea3           <initial> 062D
+fea4           <medial> 062D
+fea5           <isolated> 062E
+fea6           <final> 062E
+fea7           <initial> 062E
+fea8           <medial> 062E
+fea9           <isolated> 062F
+feaa           <final> 062F
+feab           <isolated> 0630
+feac           <final> 0630
+fead           <isolated> 0631
+feae           <final> 0631
+feaf           <isolated> 0632
+feb0           <final> 0632
+feb1           <isolated> 0633
+feb2           <final> 0633
+feb3           <initial> 0633
+feb4           <medial> 0633
+feb5           <isolated> 0634
+feb6           <final> 0634
+feb7           <initial> 0634
+feb8           <medial> 0634
+feb9           <isolated> 0635
+feba           <final> 0635
+febb           <initial> 0635
+febc           <medial> 0635
+febd           <isolated> 0636
+febe           <final> 0636
+febf           <initial> 0636
+fec0           <medial> 0636
+fec1           <isolated> 0637
+fec2           <final> 0637
+fec3           <initial> 0637
+fec4           <medial> 0637
+fec5           <isolated> 0638
+fec6           <final> 0638
+fec7           <initial> 0638
+fec8           <medial> 0638
+fec9           <isolated> 0639
+feca           <final> 0639
+fecb           <initial> 0639
+fecc           <medial> 0639
+fecd           <isolated> 063A
+fece           <final> 063A
+fecf           <initial> 063A
+fed0           <medial> 063A
+fed1           <isolated> 0641
+fed2           <final> 0641
+fed3           <initial> 0641
+fed4           <medial> 0641
+fed5           <isolated> 0642
+fed6           <final> 0642
+fed7           <initial> 0642
+fed8           <medial> 0642
+fed9           <isolated> 0643
+feda           <final> 0643
+fedb           <initial> 0643
+fedc           <medial> 0643
+fedd           <isolated> 0644
+fede           <final> 0644
+fedf           <initial> 0644
+fee0           <medial> 0644
+fee1           <isolated> 0645
+fee2           <final> 0645
+fee3           <initial> 0645
+fee4           <medial> 0645
+fee5           <isolated> 0646
+fee6           <final> 0646
+fee7           <initial> 0646
+fee8           <medial> 0646
+fee9           <isolated> 0647
+feea           <final> 0647
+feeb           <initial> 0647
+feec           <medial> 0647
+feed           <isolated> 0648
+feee           <final> 0648
+feef           <isolated> 0649
+fef0           <final> 0649
+fef1           <isolated> 064A
+fef2           <final> 064A
+fef3           <initial> 064A
+fef4           <medial> 064A
+fef5           <isolated> 0644 0622
+fef6           <final> 0644 0622
+fef7           <isolated> 0644 0623
+fef8           <final> 0644 0623
+fef9           <isolated> 0644 0625
+fefa           <final> 0644 0625
+fefb           <isolated> 0644 0627
+fefc           <final> 0644 0627
+ff01           <wide> 0021
+ff02           <wide> 0022
+ff03           <wide> 0023
+ff04           <wide> 0024
+ff05           <wide> 0025
+ff06           <wide> 0026
+ff07           <wide> 0027
+ff08           <wide> 0028
+ff09           <wide> 0029
+ff0a           <wide> 002A
+ff0b           <wide> 002B
+ff0c           <wide> 002C
+ff0d           <wide> 002D
+ff0e           <wide> 002E
+ff0f           <wide> 002F
+ff10           <wide> 0030
+ff11           <wide> 0031
+ff12           <wide> 0032
+ff13           <wide> 0033
+ff14           <wide> 0034
+ff15           <wide> 0035
+ff16           <wide> 0036
+ff17           <wide> 0037
+ff18           <wide> 0038
+ff19           <wide> 0039
+ff1a           <wide> 003A
+ff1b           <wide> 003B
+ff1c           <wide> 003C
+ff1d           <wide> 003D
+ff1e           <wide> 003E
+ff1f           <wide> 003F
+ff20           <wide> 0040
+ff21           <wide> 0041
+ff22           <wide> 0042
+ff23           <wide> 0043
+ff24           <wide> 0044
+ff25           <wide> 0045
+ff26           <wide> 0046
+ff27           <wide> 0047
+ff28           <wide> 0048
+ff29           <wide> 0049
+ff2a           <wide> 004A
+ff2b           <wide> 004B
+ff2c           <wide> 004C
+ff2d           <wide> 004D
+ff2e           <wide> 004E
+ff2f           <wide> 004F
+ff30           <wide> 0050
+ff31           <wide> 0051
+ff32           <wide> 0052
+ff33           <wide> 0053
+ff34           <wide> 0054
+ff35           <wide> 0055
+ff36           <wide> 0056
+ff37           <wide> 0057
+ff38           <wide> 0058
+ff39           <wide> 0059
+ff3a           <wide> 005A
+ff3b           <wide> 005B
+ff3c           <wide> 005C
+ff3d           <wide> 005D
+ff3e           <wide> 005E
+ff3f           <wide> 005F
+ff40           <wide> 0060
+ff41           <wide> 0061
+ff42           <wide> 0062
+ff43           <wide> 0063
+ff44           <wide> 0064
+ff45           <wide> 0065
+ff46           <wide> 0066
+ff47           <wide> 0067
+ff48           <wide> 0068
+ff49           <wide> 0069
+ff4a           <wide> 006A
+ff4b           <wide> 006B
+ff4c           <wide> 006C
+ff4d           <wide> 006D
+ff4e           <wide> 006E
+ff4f           <wide> 006F
+ff50           <wide> 0070
+ff51           <wide> 0071
+ff52           <wide> 0072
+ff53           <wide> 0073
+ff54           <wide> 0074
+ff55           <wide> 0075
+ff56           <wide> 0076
+ff57           <wide> 0077
+ff58           <wide> 0078
+ff59           <wide> 0079
+ff5a           <wide> 007A
+ff5b           <wide> 007B
+ff5c           <wide> 007C
+ff5d           <wide> 007D
+ff5e           <wide> 007E
+ff61           <narrow> 3002
+ff62           <narrow> 300C
+ff63           <narrow> 300D
+ff64           <narrow> 3001
+ff65           <narrow> 30FB
+ff66           <narrow> 30F2
+ff67           <narrow> 30A1
+ff68           <narrow> 30A3
+ff69           <narrow> 30A5
+ff6a           <narrow> 30A7
+ff6b           <narrow> 30A9
+ff6c           <narrow> 30E3
+ff6d           <narrow> 30E5
+ff6e           <narrow> 30E7
+ff6f           <narrow> 30C3
+ff70           <narrow> 30FC
+ff71           <narrow> 30A2
+ff72           <narrow> 30A4
+ff73           <narrow> 30A6
+ff74           <narrow> 30A8
+ff75           <narrow> 30AA
+ff76           <narrow> 30AB
+ff77           <narrow> 30AD
+ff78           <narrow> 30AF
+ff79           <narrow> 30B1
+ff7a           <narrow> 30B3
+ff7b           <narrow> 30B5
+ff7c           <narrow> 30B7
+ff7d           <narrow> 30B9
+ff7e           <narrow> 30BB
+ff7f           <narrow> 30BD
+ff80           <narrow> 30BF
+ff81           <narrow> 30C1
+ff82           <narrow> 30C4
+ff83           <narrow> 30C6
+ff84           <narrow> 30C8
+ff85           <narrow> 30CA
+ff86           <narrow> 30CB
+ff87           <narrow> 30CC
+ff88           <narrow> 30CD
+ff89           <narrow> 30CE
+ff8a           <narrow> 30CF
+ff8b           <narrow> 30D2
+ff8c           <narrow> 30D5
+ff8d           <narrow> 30D8
+ff8e           <narrow> 30DB
+ff8f           <narrow> 30DE
+ff90           <narrow> 30DF
+ff91           <narrow> 30E0
+ff92           <narrow> 30E1
+ff93           <narrow> 30E2
+ff94           <narrow> 30E4
+ff95           <narrow> 30E6
+ff96           <narrow> 30E8
+ff97           <narrow> 30E9
+ff98           <narrow> 30EA
+ff99           <narrow> 30EB
+ff9a           <narrow> 30EC
+ff9b           <narrow> 30ED
+ff9c           <narrow> 30EF
+ff9d           <narrow> 30F3
+ff9e           <narrow> 309B
+ff9f           <narrow> 309C
+ffa0           <narrow> 3164
+ffa1           <narrow> 3131
+ffa2           <narrow> 3132
+ffa3           <narrow> 3133
+ffa4           <narrow> 3134
+ffa5           <narrow> 3135
+ffa6           <narrow> 3136
+ffa7           <narrow> 3137
+ffa8           <narrow> 3138
+ffa9           <narrow> 3139
+ffaa           <narrow> 313A
+ffab           <narrow> 313B
+ffac           <narrow> 313C
+ffad           <narrow> 313D
+ffae           <narrow> 313E
+ffaf           <narrow> 313F
+ffb0           <narrow> 3140
+ffb1           <narrow> 3141
+ffb2           <narrow> 3142
+ffb3           <narrow> 3143
+ffb4           <narrow> 3144
+ffb5           <narrow> 3145
+ffb6           <narrow> 3146
+ffb7           <narrow> 3147
+ffb8           <narrow> 3148
+ffb9           <narrow> 3149
+ffba           <narrow> 314A
+ffbb           <narrow> 314B
+ffbc           <narrow> 314C
+ffbd           <narrow> 314D
+ffbe           <narrow> 314E
+ffc2           <narrow> 314F
+ffc3           <narrow> 3150
+ffc4           <narrow> 3151
+ffc5           <narrow> 3152
+ffc6           <narrow> 3153
+ffc7           <narrow> 3154
+ffca           <narrow> 3155
+ffcb           <narrow> 3156
+ffcc           <narrow> 3157
+ffcd           <narrow> 3158
+ffce           <narrow> 3159
+ffcf           <narrow> 315A
+ffd2           <narrow> 315B
+ffd3           <narrow> 315C
+ffd4           <narrow> 315D
+ffd5           <narrow> 315E
+ffd6           <narrow> 315F
+ffd7           <narrow> 3160
+ffda           <narrow> 3161
+ffdb           <narrow> 3162
+ffdc           <narrow> 3163
+ffe0           <wide> 00A2
+ffe1           <wide> 00A3
+ffe2           <wide> 00AC
+ffe3           <wide> 00AF
+ffe4           <wide> 00A6
+ffe5           <wide> 00A5
+ffe6           <wide> 20A9
+ffe8           <narrow> 2502
+ffe9           <narrow> 2190
+ffea           <narrow> 2191
+ffeb           <narrow> 2192
+ffec           <narrow> 2193
+ffed           <narrow> 25A0
+ffee           <narrow> 25CB
+END
diff --git a/lib/unicode/In/AlphabeticPresentationForms.pl b/lib/unicode/In/AlphabeticPresentationForms.pl
new file mode 100644 (file)
index 0000000..93ded27
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+FB00   FB4F
+END
diff --git a/lib/unicode/In/Arabic.pl b/lib/unicode/In/Arabic.pl
new file mode 100644 (file)
index 0000000..a9645d5
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+0600   06FF
+END
diff --git a/lib/unicode/In/ArabicPresentationForms-A.pl b/lib/unicode/In/ArabicPresentationForms-A.pl
new file mode 100644 (file)
index 0000000..b872937
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+FB50   FDFF
+END
diff --git a/lib/unicode/In/ArabicPresentationForms-B.pl b/lib/unicode/In/ArabicPresentationForms-B.pl
new file mode 100644 (file)
index 0000000..0740d3b
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+FE70   FEFF
+END
diff --git a/lib/unicode/In/Armenian.pl b/lib/unicode/In/Armenian.pl
new file mode 100644 (file)
index 0000000..f86fd3c
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+0530   058F
+END
diff --git a/lib/unicode/In/Arrows.pl b/lib/unicode/In/Arrows.pl
new file mode 100644 (file)
index 0000000..3910c8d
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+2190   21FF
+END
diff --git a/lib/unicode/In/BasicLatin.pl b/lib/unicode/In/BasicLatin.pl
new file mode 100644 (file)
index 0000000..9ce83b3
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+0000   007F
+END
diff --git a/lib/unicode/In/Bengali.pl b/lib/unicode/In/Bengali.pl
new file mode 100644 (file)
index 0000000..0589b85
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+0980   09FF
+END
diff --git a/lib/unicode/In/BlockElements.pl b/lib/unicode/In/BlockElements.pl
new file mode 100644 (file)
index 0000000..a52c848
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+2580   259F
+END
diff --git a/lib/unicode/In/Bopomofo.pl b/lib/unicode/In/Bopomofo.pl
new file mode 100644 (file)
index 0000000..5af1356
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+3100   312F
+END
diff --git a/lib/unicode/In/BoxDrawing.pl b/lib/unicode/In/BoxDrawing.pl
new file mode 100644 (file)
index 0000000..c9c1d1e
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+2500   257F
+END
diff --git a/lib/unicode/In/CJKCompatibility.pl b/lib/unicode/In/CJKCompatibility.pl
new file mode 100644 (file)
index 0000000..66cbc54
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+3300   33FF
+END
diff --git a/lib/unicode/In/CJKCompatibilityForms.pl b/lib/unicode/In/CJKCompatibilityForms.pl
new file mode 100644 (file)
index 0000000..e65dbd3
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+FE30   FE4F
+END
diff --git a/lib/unicode/In/CJKCompatibilityIdeographs.pl b/lib/unicode/In/CJKCompatibilityIdeographs.pl
new file mode 100644 (file)
index 0000000..b682262
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+F900   FAFF
+END
diff --git a/lib/unicode/In/CJKSymbolsandPunctuation.pl b/lib/unicode/In/CJKSymbolsandPunctuation.pl
new file mode 100644 (file)
index 0000000..bdf4ab9
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+3000   303F
+END
diff --git a/lib/unicode/In/CJKUnifiedIdeographs.pl b/lib/unicode/In/CJKUnifiedIdeographs.pl
new file mode 100644 (file)
index 0000000..04d0a08
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+4E00   9FFF
+END
diff --git a/lib/unicode/In/CombiningDiacriticalMarks.pl b/lib/unicode/In/CombiningDiacriticalMarks.pl
new file mode 100644 (file)
index 0000000..2308c52
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+0300   036F
+END
diff --git a/lib/unicode/In/CombiningHalfMarks.pl b/lib/unicode/In/CombiningHalfMarks.pl
new file mode 100644 (file)
index 0000000..004d805
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+FE20   FE2F
+END
diff --git a/lib/unicode/In/CombiningMarksforSymbols.pl b/lib/unicode/In/CombiningMarksforSymbols.pl
new file mode 100644 (file)
index 0000000..b80f637
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+20D0   20FF
+END
diff --git a/lib/unicode/In/ControlPictures.pl b/lib/unicode/In/ControlPictures.pl
new file mode 100644 (file)
index 0000000..cfaa3c5
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+2400   243F
+END
diff --git a/lib/unicode/In/CurrencySymbols.pl b/lib/unicode/In/CurrencySymbols.pl
new file mode 100644 (file)
index 0000000..1a89d72
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+20A0   20CF
+END
diff --git a/lib/unicode/In/Cyrillic.pl b/lib/unicode/In/Cyrillic.pl
new file mode 100644 (file)
index 0000000..657824c
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+0400   04FF
+END
diff --git a/lib/unicode/In/Devanagari.pl b/lib/unicode/In/Devanagari.pl
new file mode 100644 (file)
index 0000000..1a0bffc
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+0900   097F
+END
diff --git a/lib/unicode/In/Dingbats.pl b/lib/unicode/In/Dingbats.pl
new file mode 100644 (file)
index 0000000..3800470
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+2700   27BF
+END
diff --git a/lib/unicode/In/EnclosedAlphanumerics.pl b/lib/unicode/In/EnclosedAlphanumerics.pl
new file mode 100644 (file)
index 0000000..760ebd1
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+2460   24FF
+END
diff --git a/lib/unicode/In/EnclosedCJKLettersandMonths.pl b/lib/unicode/In/EnclosedCJKLettersandMonths.pl
new file mode 100644 (file)
index 0000000..96a9d75
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+3200   32FF
+END
diff --git a/lib/unicode/In/GeneralPunctuation.pl b/lib/unicode/In/GeneralPunctuation.pl
new file mode 100644 (file)
index 0000000..a582d1f
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+2000   206F
+END
diff --git a/lib/unicode/In/GeometricShapes.pl b/lib/unicode/In/GeometricShapes.pl
new file mode 100644 (file)
index 0000000..46086b8
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+25A0   25FF
+END
diff --git a/lib/unicode/In/Georgian.pl b/lib/unicode/In/Georgian.pl
new file mode 100644 (file)
index 0000000..df1230d
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+10A0   10FF
+END
diff --git a/lib/unicode/In/Greek.pl b/lib/unicode/In/Greek.pl
new file mode 100644 (file)
index 0000000..10c1cf8
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+0370   03FF
+END
diff --git a/lib/unicode/In/GreekExtended.pl b/lib/unicode/In/GreekExtended.pl
new file mode 100644 (file)
index 0000000..f588406
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+1F00   1FFF
+END
diff --git a/lib/unicode/In/Gujarati.pl b/lib/unicode/In/Gujarati.pl
new file mode 100644 (file)
index 0000000..8a31d92
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+0A80   0AFF
+END
diff --git a/lib/unicode/In/Gurmukhi.pl b/lib/unicode/In/Gurmukhi.pl
new file mode 100644 (file)
index 0000000..1b6857e
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+0A00   0A7F
+END
diff --git a/lib/unicode/In/HalfwidthandFullwidthForms.pl b/lib/unicode/In/HalfwidthandFullwidthForms.pl
new file mode 100644 (file)
index 0000000..d7ff603
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+FF00   FFEF
+END
diff --git a/lib/unicode/In/HangulCompatibilityJamo.pl b/lib/unicode/In/HangulCompatibilityJamo.pl
new file mode 100644 (file)
index 0000000..e602d45
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+3130   318F
+END
diff --git a/lib/unicode/In/HangulJamo.pl b/lib/unicode/In/HangulJamo.pl
new file mode 100644 (file)
index 0000000..dd5df94
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+1100   11FF
+END
diff --git a/lib/unicode/In/HangulSyllables.pl b/lib/unicode/In/HangulSyllables.pl
new file mode 100644 (file)
index 0000000..95bc194
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+AC00   D7A3
+END
diff --git a/lib/unicode/In/Hebrew.pl b/lib/unicode/In/Hebrew.pl
new file mode 100644 (file)
index 0000000..e34e6fe
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+0590   05FF
+END
diff --git a/lib/unicode/In/HighPrivateUseSurrogates.pl b/lib/unicode/In/HighPrivateUseSurrogates.pl
new file mode 100644 (file)
index 0000000..000cb70
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+DB80   DBFF
+END
diff --git a/lib/unicode/In/HighSurrogates.pl b/lib/unicode/In/HighSurrogates.pl
new file mode 100644 (file)
index 0000000..95c7498
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+D800   DB7F
+END
diff --git a/lib/unicode/In/Hiragana.pl b/lib/unicode/In/Hiragana.pl
new file mode 100644 (file)
index 0000000..ce8c3ed
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+3040   309F
+END
diff --git a/lib/unicode/In/IPAExtensions.pl b/lib/unicode/In/IPAExtensions.pl
new file mode 100644 (file)
index 0000000..106d84b
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+0250   02AF
+END
diff --git a/lib/unicode/In/Kanbun.pl b/lib/unicode/In/Kanbun.pl
new file mode 100644 (file)
index 0000000..6d575a8
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+3190   319F
+END
diff --git a/lib/unicode/In/Kannada.pl b/lib/unicode/In/Kannada.pl
new file mode 100644 (file)
index 0000000..ad70ade
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+0C80   0CFF
+END
diff --git a/lib/unicode/In/Katakana.pl b/lib/unicode/In/Katakana.pl
new file mode 100644 (file)
index 0000000..cb0f30e
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+30A0   30FF
+END
diff --git a/lib/unicode/In/Lao.pl b/lib/unicode/In/Lao.pl
new file mode 100644 (file)
index 0000000..ff2d587
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+0E80   0EFF
+END
diff --git a/lib/unicode/In/Latin-1Supplement.pl b/lib/unicode/In/Latin-1Supplement.pl
new file mode 100644 (file)
index 0000000..3c8b04c
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+0080   00FF
+END
diff --git a/lib/unicode/In/LatinExtended-A.pl b/lib/unicode/In/LatinExtended-A.pl
new file mode 100644 (file)
index 0000000..872689f
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+0100   017F
+END
diff --git a/lib/unicode/In/LatinExtended-B.pl b/lib/unicode/In/LatinExtended-B.pl
new file mode 100644 (file)
index 0000000..be497d6
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+0180   024F
+END
diff --git a/lib/unicode/In/LatinExtendedAdditional.pl b/lib/unicode/In/LatinExtendedAdditional.pl
new file mode 100644 (file)
index 0000000..3f1cda1
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+1E00   1EFF
+END
diff --git a/lib/unicode/In/LetterlikeSymbols.pl b/lib/unicode/In/LetterlikeSymbols.pl
new file mode 100644 (file)
index 0000000..96ab07b
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+2100   214F
+END
diff --git a/lib/unicode/In/LowSurrogates.pl b/lib/unicode/In/LowSurrogates.pl
new file mode 100644 (file)
index 0000000..a30148c
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+DC00   DFFF
+END
diff --git a/lib/unicode/In/Malayalam.pl b/lib/unicode/In/Malayalam.pl
new file mode 100644 (file)
index 0000000..784bac9
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+0D00   0D7F
+END
diff --git a/lib/unicode/In/MathematicalOperators.pl b/lib/unicode/In/MathematicalOperators.pl
new file mode 100644 (file)
index 0000000..b1c2db4
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+2200   22FF
+END
diff --git a/lib/unicode/In/MiscellaneousSymbols.pl b/lib/unicode/In/MiscellaneousSymbols.pl
new file mode 100644 (file)
index 0000000..5c6dcd4
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+2600   26FF
+END
diff --git a/lib/unicode/In/MiscellaneousTechnical.pl b/lib/unicode/In/MiscellaneousTechnical.pl
new file mode 100644 (file)
index 0000000..0eb7d1e
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+2300   23FF
+END
diff --git a/lib/unicode/In/NumberForms.pl b/lib/unicode/In/NumberForms.pl
new file mode 100644 (file)
index 0000000..7d83d31
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+2150   218F
+END
diff --git a/lib/unicode/In/OpticalCharacterRecognition.pl b/lib/unicode/In/OpticalCharacterRecognition.pl
new file mode 100644 (file)
index 0000000..9168cc7
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+2440   245F
+END
diff --git a/lib/unicode/In/Oriya.pl b/lib/unicode/In/Oriya.pl
new file mode 100644 (file)
index 0000000..4d61ed3
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+0B00   0B7F
+END
diff --git a/lib/unicode/In/PrivateUse.pl b/lib/unicode/In/PrivateUse.pl
new file mode 100644 (file)
index 0000000..5b90e4d
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+E000   F8FF
+END
diff --git a/lib/unicode/In/SmallFormVariants.pl b/lib/unicode/In/SmallFormVariants.pl
new file mode 100644 (file)
index 0000000..4153052
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+FE50   FE6F
+END
diff --git a/lib/unicode/In/SpacingModifierLetters.pl b/lib/unicode/In/SpacingModifierLetters.pl
new file mode 100644 (file)
index 0000000..69179e6
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+02B0   02FF
+END
diff --git a/lib/unicode/In/Specials.pl b/lib/unicode/In/Specials.pl
new file mode 100644 (file)
index 0000000..f9d3943
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+FFF0   FFFF
+END
diff --git a/lib/unicode/In/SuperscriptsandSubscripts.pl b/lib/unicode/In/SuperscriptsandSubscripts.pl
new file mode 100644 (file)
index 0000000..c4041aa
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+2070   209F
+END
diff --git a/lib/unicode/In/Tamil.pl b/lib/unicode/In/Tamil.pl
new file mode 100644 (file)
index 0000000..27f61fa
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+0B80   0BFF
+END
diff --git a/lib/unicode/In/Telugu.pl b/lib/unicode/In/Telugu.pl
new file mode 100644 (file)
index 0000000..7342ec2
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+0C00   0C7F
+END
diff --git a/lib/unicode/In/Thai.pl b/lib/unicode/In/Thai.pl
new file mode 100644 (file)
index 0000000..c5c789c
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+0E00   0E7F
+END
diff --git a/lib/unicode/In/Tibetan.pl b/lib/unicode/In/Tibetan.pl
new file mode 100644 (file)
index 0000000..b46705d
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+0F00   0FBF
+END
diff --git a/lib/unicode/Is/Alnum.pl b/lib/unicode/Is/Alnum.pl
new file mode 100644 (file)
index 0000000..4d1570f
--- /dev/null
@@ -0,0 +1,224 @@
+return <<'END';
+0030   0039
+0041   005a
+005f   
+0061   007a
+00aa   
+00b5   
+00ba   
+00c0   00d6
+00d8   00f6
+00f8   01c4
+01c6   01c7
+01c9   01ca
+01cc   01f1
+01f3   01f5
+01fa   0217
+0250   02a8
+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
+0561   0587
+05d0   05ea
+05f0   05f2
+0621   063a
+0641   064a
+0660   0669
+0671   06b7
+06ba   06be
+06c0   06ce
+06d0   06d3
+06d5   
+06f0   06f9
+0905   0939
+093d   
+0958   0961
+0966   096f
+0985   098c
+098f   0990
+0993   09a8
+09aa   09b0
+09b2   
+09b6   09b9
+09dc   09dd
+09df   09e1
+09e6   09f1
+0a05   0a0a
+0a0f   0a10
+0a13   0a28
+0a2a   0a30
+0a32   0a33
+0a35   0a36
+0a38   0a39
+0a59   0a5c
+0a5e   
+0a66   0a6f
+0a72   0a74
+0a85   0a8b
+0a8d   
+0a8f   0a91
+0a93   0aa8
+0aaa   0ab0
+0ab2   0ab3
+0ab5   0ab9
+0abd   
+0ae0   
+0ae6   0aef
+0b05   0b0c
+0b0f   0b10
+0b13   0b28
+0b2a   0b30
+0b32   0b33
+0b36   0b39
+0b3d   
+0b5c   0b5d
+0b5f   0b61
+0b66   0b6f
+0b85   0b8a
+0b8e   0b90
+0b92   0b95
+0b99   0b9a
+0b9c   
+0b9e   0b9f
+0ba3   0ba4
+0ba8   0baa
+0bae   0bb5
+0bb7   0bb9
+0be7   0bef
+0c05   0c0c
+0c0e   0c10
+0c12   0c28
+0c2a   0c33
+0c35   0c39
+0c60   0c61
+0c66   0c6f
+0c85   0c8c
+0c8e   0c90
+0c92   0ca8
+0caa   0cb3
+0cb5   0cb9
+0cde   
+0ce0   0ce1
+0ce6   0cef
+0d05   0d0c
+0d0e   0d10
+0d12   0d28
+0d2a   0d39
+0d60   0d61
+0d66   0d6f
+0e01   0e2e
+0e30   
+0e32   0e33
+0e40   0e45
+0e50   0e59
+0e81   0e82
+0e84   
+0e87   0e88
+0e8a   
+0e8d   
+0e94   0e97
+0e99   0e9f
+0ea1   0ea3
+0ea5   
+0ea7   
+0eaa   0eab
+0ead   0eae
+0eb0   
+0eb2   0eb3
+0ebd   
+0ec0   0ec4
+0ed0   0ed9
+0edc   0edd
+0f20   0f29
+0f40   0f47
+0f49   0f69
+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   2131
+2133   2138
+3041   3094
+30a1   30fa
+3105   312c
+3131   318e
+4e00   9fa5
+ac00   d7a3
+f900   fa2d
+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
+ff10   ff19
+ff21   ff3a
+ff41   ff5a
+ff66   ff6f
+ff71   ff9d
+ffa0   ffbe
+ffc2   ffc7
+ffca   ffcf
+ffd2   ffd7
+ffda   ffdc
+END
diff --git a/lib/unicode/Is/Alpha.pl b/lib/unicode/Is/Alpha.pl
new file mode 100644 (file)
index 0000000..af8b9b6
--- /dev/null
@@ -0,0 +1,208 @@
+return <<'END';
+0041   005a
+0061   007a
+00aa   
+00b5   
+00ba   
+00c0   00d6
+00d8   00f6
+00f8   01c4
+01c6   01c7
+01c9   01ca
+01cc   01f1
+01f3   01f5
+01fa   0217
+0250   02a8
+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
+0561   0587
+05d0   05ea
+05f0   05f2
+0621   063a
+0641   064a
+0671   06b7
+06ba   06be
+06c0   06ce
+06d0   06d3
+06d5   
+0905   0939
+093d   
+0958   0961
+0985   098c
+098f   0990
+0993   09a8
+09aa   09b0
+09b2   
+09b6   09b9
+09dc   09dd
+09df   09e1
+09f0   09f1
+0a05   0a0a
+0a0f   0a10
+0a13   0a28
+0a2a   0a30
+0a32   0a33
+0a35   0a36
+0a38   0a39
+0a59   0a5c
+0a5e   
+0a72   0a74
+0a85   0a8b
+0a8d   
+0a8f   0a91
+0a93   0aa8
+0aaa   0ab0
+0ab2   0ab3
+0ab5   0ab9
+0abd   
+0ae0   
+0b05   0b0c
+0b0f   0b10
+0b13   0b28
+0b2a   0b30
+0b32   0b33
+0b36   0b39
+0b3d   
+0b5c   0b5d
+0b5f   0b61
+0b85   0b8a
+0b8e   0b90
+0b92   0b95
+0b99   0b9a
+0b9c   
+0b9e   0b9f
+0ba3   0ba4
+0ba8   0baa
+0bae   0bb5
+0bb7   0bb9
+0c05   0c0c
+0c0e   0c10
+0c12   0c28
+0c2a   0c33
+0c35   0c39
+0c60   0c61
+0c85   0c8c
+0c8e   0c90
+0c92   0ca8
+0caa   0cb3
+0cb5   0cb9
+0cde   
+0ce0   0ce1
+0d05   0d0c
+0d0e   0d10
+0d12   0d28
+0d2a   0d39
+0d60   0d61
+0e01   0e2e
+0e30   
+0e32   0e33
+0e40   0e45
+0e81   0e82
+0e84   
+0e87   0e88
+0e8a   
+0e8d   
+0e94   0e97
+0e99   0e9f
+0ea1   0ea3
+0ea5   
+0ea7   
+0eaa   0eab
+0ead   0eae
+0eb0   
+0eb2   0eb3
+0ebd   
+0ec0   0ec4
+0edc   0edd
+0f40   0f47
+0f49   0f69
+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   2131
+2133   2138
+3041   3094
+30a1   30fa
+3105   312c
+3131   318e
+4e00   9fa5
+ac00   d7a3
+f900   fa2d
+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
+END
diff --git a/lib/unicode/Is/BidiAN.pl b/lib/unicode/Is/BidiAN.pl
new file mode 100644 (file)
index 0000000..e3639ba
--- /dev/null
@@ -0,0 +1,4 @@
+return <<'END';
+0660   0669
+066b   066c
+END
diff --git a/lib/unicode/Is/BidiB.pl b/lib/unicode/Is/BidiB.pl
new file mode 100644 (file)
index 0000000..c40e3c4
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+2028   2029
+END
diff --git a/lib/unicode/Is/BidiCS.pl b/lib/unicode/Is/BidiCS.pl
new file mode 100644 (file)
index 0000000..e7cab2d
--- /dev/null
@@ -0,0 +1,6 @@
+return <<'END';
+002c   
+002e   
+003a   
+2007   
+END
diff --git a/lib/unicode/Is/BidiEN.pl b/lib/unicode/Is/BidiEN.pl
new file mode 100644 (file)
index 0000000..3e13986
--- /dev/null
@@ -0,0 +1,10 @@
+return <<'END';
+0030   0039
+00b2   00b3
+00b9   
+06f0   06f9
+2070   
+2074   2079
+2080   2089
+ff10   ff19
+END
diff --git a/lib/unicode/Is/BidiES.pl b/lib/unicode/Is/BidiES.pl
new file mode 100644 (file)
index 0000000..fb1fb2f
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+002f   
+END
diff --git a/lib/unicode/Is/BidiET.pl b/lib/unicode/Is/BidiET.pl
new file mode 100644 (file)
index 0000000..d3ea1c7
--- /dev/null
@@ -0,0 +1,13 @@
+return <<'END';
+0023   0025
+002b   
+002d   
+00a2   00a5
+00b0   00b1
+066a   
+2030   2034
+207a   207b
+208a   208b
+20a0   20ac
+2212   2213
+END
diff --git a/lib/unicode/Is/BidiL.pl b/lib/unicode/Is/BidiL.pl
new file mode 100644 (file)
index 0000000..85de325
--- /dev/null
@@ -0,0 +1,243 @@
+return <<'END';
+0041   005a
+0061   007a
+00c0   00d6
+00d8   00f6
+00f8   01f5
+01fa   0217
+0250   02a8
+02b0   02de
+02e0   02e9
+0300   0345
+0360   0361
+0374   0375
+037a   
+037e   
+0384   038a
+038c   
+038e   03a1
+03a3   03ce
+03d0   03d6
+03da   
+03dc   
+03de   
+03e0   
+03e2   03f3
+0401   040c
+040e   044f
+0451   045c
+045e   0486
+0490   04c4
+04c7   04c8
+04cb   04cc
+04d0   04eb
+04ee   04f5
+04f8   04f9
+0531   0556
+0559   055f
+0561   0587
+0589   
+0901   0903
+0905   0939
+093c   094d
+0950   0954
+0958   0970
+0981   0983
+0985   098c
+098f   0990
+0993   09a8
+09aa   09b0
+09b2   
+09b6   09b9
+09bc   
+09be   09c4
+09c7   09c8
+09cb   09cd
+09d7   
+09dc   09dd
+09df   09e3
+09e6   09fa
+0a02   
+0a05   0a0a
+0a0f   0a10
+0a13   0a28
+0a2a   0a30
+0a32   0a33
+0a35   0a36
+0a38   0a39
+0a3c   
+0a3e   0a42
+0a47   0a48
+0a4b   0a4d
+0a59   0a5c
+0a5e   
+0a66   0a74
+0a81   0a83
+0a85   0a8b
+0a8d   
+0a8f   0a91
+0a93   0aa8
+0aaa   0ab0
+0ab2   0ab3
+0ab5   0ab9
+0abc   0ac5
+0ac7   0ac9
+0acb   0acd
+0ad0   
+0ae0   
+0ae6   0aef
+0b01   0b03
+0b05   0b0c
+0b0f   0b10
+0b13   0b28
+0b2a   0b30
+0b32   0b33
+0b36   0b39
+0b3c   0b43
+0b47   0b48
+0b4b   0b4d
+0b56   0b57
+0b5c   0b5d
+0b5f   0b61
+0b66   0b70
+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   0bcd
+0bd7   
+0be7   0bf2
+0c01   0c03
+0c05   0c0c
+0c0e   0c10
+0c12   0c28
+0c2a   0c33
+0c35   0c39
+0c3e   0c44
+0c46   0c48
+0c4a   0c4d
+0c55   0c56
+0c60   0c61
+0c66   0c6f
+0c82   0c83
+0c85   0c8c
+0c8e   0c90
+0c92   0ca8
+0caa   0cb3
+0cb5   0cb9
+0cbe   0cc4
+0cc6   0cc8
+0cca   0ccd
+0cd5   0cd6
+0cde   
+0ce0   0ce1
+0ce6   0cef
+0d02   0d03
+0d05   0d0c
+0d0e   0d10
+0d12   0d28
+0d2a   0d39
+0d3e   0d43
+0d46   0d48
+0d4a   0d4d
+0d57   
+0d60   0d61
+0d66   0d6f
+0e01   0e3a
+0e3f   0e5b
+0e81   0e82
+0e84   
+0e87   0e88
+0e8a   
+0e8d   
+0e94   0e97
+0e99   0e9f
+0ea1   0ea3
+0ea5   
+0ea7   
+0eaa   0eab
+0ead   0eb9
+0ebb   0ebd
+0ec0   0ec4
+0ec6   
+0ec8   0ecd
+0ed0   0ed9
+0edc   0edd
+0f00   0f47
+0f49   0f69
+0f71   0f8b
+0f90   0f95
+0f97   
+0f99   0fad
+0fb1   0fb7
+0fb9   
+10a0   10c5
+10d0   10f6
+10fb   
+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   1fc4
+1fc6   1fd3
+1fd6   1fdb
+1fdd   1fef
+1ff2   1ff4
+1ff6   1ffe
+200e   
+20d0   20e1
+2160   2182
+2336   237a
+3021   302f
+3041   3094
+3099   309e
+30a1   30fe
+3105   312c
+3131   318e
+3190   319f
+3200   321c
+3220   3243
+3260   327b
+327f   32b0
+32c0   32cb
+32d0   32fe
+3300   3376
+337b   33dd
+33e0   33fe
+4e00   9fa5
+ac00   d7a3
+d800   db7f
+db80   dbff
+dc00   dfff
+e000   f8ff
+f900   fa2d
+fb00   fb06
+fb13   fb17
+ff21   ff3a
+ff41   ff5a
+ff65   ffbe
+ffc2   ffc7
+ffca   ffcf
+ffd2   ffd7
+ffda   ffdc
+END
diff --git a/lib/unicode/Is/BidiON.pl b/lib/unicode/Is/BidiON.pl
new file mode 100644 (file)
index 0000000..aa8ae8d
--- /dev/null
@@ -0,0 +1,66 @@
+return <<'END';
+0000   0008
+000a   001f
+0021   0022
+0026   002a
+003b   0040
+005b   0060
+007b   009f
+00a1   
+00a6   00af
+00b4   00b8
+00ba   00bf
+00d7   
+00f7   
+200c   200d
+2010   2027
+202a   202e
+2035   2046
+206a   206f
+207c   207f
+208c   208e
+2100   2138
+2153   215f
+2190   21ea
+2200   2211
+2214   22f1
+2300   
+2302   2335
+2400   2424
+2440   244a
+2460   24ea
+2500   2595
+25a0   25ef
+2600   2613
+261a   266f
+2701   2704
+2706   2709
+270c   2727
+2729   274b
+274d   
+274f   2752
+2756   
+2758   275e
+2761   2767
+2776   2794
+2798   27af
+27b1   27be
+3001   3020
+3030   3037
+303f   
+fd3e   fd3f
+fe20   fe23
+fe30   fe44
+fe49   fe52
+fe54   fe66
+fe68   fe6b
+feff   
+ff01   ff0f
+ff1a   ff20
+ff3b   ff40
+ff5b   ff5e
+ff61   ff64
+ffe0   ffe6
+ffe8   ffee
+fffc   fffd
+END
diff --git a/lib/unicode/Is/BidiR.pl b/lib/unicode/Is/BidiR.pl
new file mode 100644 (file)
index 0000000..e726bcb
--- /dev/null
@@ -0,0 +1,31 @@
+return <<'END';
+0591   05a1
+05a3   05b9
+05bb   05c4
+05d0   05ea
+05f0   05f4
+060c   
+061b   
+061f   
+0621   063a
+0640   0652
+066d   
+0670   06b7
+06ba   06be
+06c0   06ce
+06d0   06ed
+200f   
+fb1e   fb36
+fb38   fb3c
+fb3e   
+fb40   fb41
+fb43   fb44
+fb46   fbb1
+fbd3   fd3d
+fd50   fd8f
+fd92   fdc7
+fdf0   fdfb
+fe70   fe72
+fe74   
+fe76   fefc
+END
diff --git a/lib/unicode/Is/BidiS.pl b/lib/unicode/Is/BidiS.pl
new file mode 100644 (file)
index 0000000..17f19de
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+0009   
+END
diff --git a/lib/unicode/Is/BidiWS.pl b/lib/unicode/Is/BidiWS.pl
new file mode 100644 (file)
index 0000000..a459f2d
--- /dev/null
@@ -0,0 +1,7 @@
+return <<'END';
+0020   
+00a0   
+2000   2006
+2008   200b
+3000   
+END
diff --git a/lib/unicode/Is/C.pl b/lib/unicode/Is/C.pl
new file mode 100644 (file)
index 0000000..274239f
--- /dev/null
@@ -0,0 +1,12 @@
+return <<'END';
+0000   001f
+007f   009f
+200c   200f
+202a   202e
+206a   206f
+d800   db7f
+db80   dbff
+dc00   dfff
+e000   f8ff
+feff   
+END
diff --git a/lib/unicode/Is/Cc.pl b/lib/unicode/Is/Cc.pl
new file mode 100644 (file)
index 0000000..2894c68
--- /dev/null
@@ -0,0 +1,4 @@
+return <<'END';
+0000   001f
+007f   009f
+END
diff --git a/lib/unicode/Is/Cn.pl b/lib/unicode/Is/Cn.pl
new file mode 100644 (file)
index 0000000..3054fd6
--- /dev/null
@@ -0,0 +1,2 @@
+return <<'END';
+END
diff --git a/lib/unicode/Is/Co.pl b/lib/unicode/Is/Co.pl
new file mode 100644 (file)
index 0000000..3944537
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+e000   f8ff
+END
diff --git a/lib/unicode/Is/DCcircle.pl b/lib/unicode/Is/DCcircle.pl
new file mode 100644 (file)
index 0000000..a9d58a4
--- /dev/null
@@ -0,0 +1,7 @@
+return <<'END';
+2460   2473
+24b6   24ea
+3260   327b
+3280   32b0
+32d0   32fe
+END
diff --git a/lib/unicode/Is/DCcompat.pl b/lib/unicode/Is/DCcompat.pl
new file mode 100644 (file)
index 0000000..1c7eded
--- /dev/null
@@ -0,0 +1,81 @@
+return <<'END';
+005e   0060
+00a8   
+00af   
+00b4   00b5
+00b8   
+0132   0133
+013f   0140
+0149   
+017f   
+01c4   01cc
+01f1   01f3
+02d8   02dd
+037a   
+0384   
+0587   
+0edc   0edd
+1101   
+1104   
+1108   
+110a   
+110d   
+1113   113b
+113d   
+113f   
+1141   114b
+114d   
+114f   
+1151   1153
+1156   1158
+1162   
+1164   
+1166   
+1168   
+116a   116c
+116f   1171
+1174   
+1176   119d
+119f   11a2
+11a9   11aa
+11ac   11ad
+11b0   11b6
+11b9   
+11bb   
+11c3   11ea
+11ec   11ef
+11f1   11f8
+1fbd   
+1fbf   1fc0
+1ffe   
+2002   2006
+2008   200a
+2017   
+2024   2026
+2033   2034
+2036   2037
+203c   
+203e   
+20a8   
+2103   
+2107   
+2109   
+2116   
+2135   2138
+2160   217f
+222c   222d
+222f   2230
+2474   24b5
+3036   
+309b   309c
+3131   318e
+3200   321c
+3220   3243
+32c0   32cb
+3358   3370
+33e0   33fe
+fb00   fb06
+fb13   fb17
+fb4f   
+fe49   fe4f
+END
diff --git a/lib/unicode/Is/DCfinal.pl b/lib/unicode/Is/DCfinal.pl
new file mode 100644 (file)
index 0000000..091bd64
--- /dev/null
@@ -0,0 +1,115 @@
+return <<'END';
+fb51   
+fb53   
+fb57   
+fb5b   
+fb5f   
+fb63   
+fb67   
+fb6b   
+fb6f   
+fb73   
+fb77   
+fb7b   
+fb7f   
+fb83   
+fb85   
+fb87   
+fb89   
+fb8b   
+fb8d   
+fb8f   
+fb93   
+fb97   
+fb9b   
+fb9f   
+fba1   
+fba5   
+fba7   
+fbab   
+fbaf   
+fbb1   
+fbd4   
+fbd8   
+fbda   
+fbdc   
+fbdf   
+fbe1   
+fbe3   
+fbe5   
+fbeb   
+fbed   
+fbef   
+fbf1   
+fbf3   
+fbf5   
+fbf7   
+fbfa   
+fbfd   
+fc64   fc96
+fd11   fd2c
+fd3c   
+fd51   
+fd58   
+fd5a   fd5b
+fd5e   fd5f
+fd62   
+fd64   
+fd66   fd67
+fd69   fd6a
+fd6c   
+fd6e   fd6f
+fd71   
+fd74   fd76
+fd78   fd7c
+fd7e   fd82
+fd84   fd85
+fd87   
+fd8b   
+fd96   fd97
+fd99   fd9c
+fd9e   fdb3
+fdb6   fdb7
+fdb9   
+fdbb   fdc2
+fdc6   fdc7
+fe82   
+fe84   
+fe86   
+fe88   
+fe8a   
+fe8e   
+fe90   
+fe94   
+fe96   
+fe9a   
+fe9e   
+fea2   
+fea6   
+feaa   
+feac   
+feae   
+feb0   
+feb2   
+feb6   
+feba   
+febe   
+fec2   
+fec6   
+feca   
+fece   
+fed2   
+fed6   
+feda   
+fede   
+fee2   
+fee6   
+feea   
+feee   
+fef0   
+fef2   
+fef6   
+fef8   
+fefa   
+fefc   
+END
diff --git a/lib/unicode/Is/DCfont.pl b/lib/unicode/Is/DCfont.pl
new file mode 100644 (file)
index 0000000..9b0b86b
--- /dev/null
@@ -0,0 +1,12 @@
+return <<'END';
+2102   
+210a   2113
+2115   
+2118   211d
+2124   
+2128   
+212c   212d
+212f   2131
+2133   2134
+fb20   fb29
+END
diff --git a/lib/unicode/Is/DCinital.pl b/lib/unicode/Is/DCinital.pl
new file mode 100644 (file)
index 0000000..4faba29
--- /dev/null
@@ -0,0 +1,56 @@
+return <<'END';
+fb55   
+fb59   
+fb5d   
+fb61   
+fb65   
+fb69   
+fb6d   
+fb71   
+fb75   
+fb79   
+fb7d   
+fb81   
+fb91   
+fb95   
+fb99   
+fb9d   
+fba3   
+fba9   
+fbad   
+fbd6   
+fbe7   
+fbe9   
+fbff   
+fcdf   fcf4
+fd34   fd3b
+fe71   
+fe77   
+fe79   
+fe7b   
+fe7d   
+fe7f   
+fe8c   
+fe92   
+fe98   
+fe9c   
+fea0   
+fea4   
+fea8   
+feb4   
+feb8   
+febc   
+fec0   
+fec4   
+fec8   
+fecc   
+fed0   
+fed4   
+fed8   
+fedc   
+fee0   
+fee4   
+fee8   
+feec   
+fef4   
+END
diff --git a/lib/unicode/Is/DCinitial.pl b/lib/unicode/Is/DCinitial.pl
new file mode 100644 (file)
index 0000000..b4e2b33
--- /dev/null
@@ -0,0 +1,77 @@
+return <<'END';
+fb54   
+fb58   
+fb5c   
+fb60   
+fb64   
+fb68   
+fb6c   
+fb70   
+fb74   
+fb78   
+fb7c   
+fb80   
+fb90   
+fb94   
+fb98   
+fb9c   
+fba2   
+fba8   
+fbac   
+fbd5   
+fbe6   
+fbe8   
+fbf8   
+fbfb   
+fbfe   
+fc97   fcde
+fd2d   fd33
+fd50   
+fd52   fd57
+fd59   
+fd5c   fd5d
+fd60   fd61
+fd63   
+fd65   
+fd68   
+fd6b   
+fd6d   
+fd70   
+fd72   fd73
+fd77   
+fd7d   
+fd83   
+fd86   
+fd88   fd8a
+fd8c   fd8f
+fd92   fd95
+fd98   
+fd9d   
+fdb4   fdb5
+fdb8   
+fdba   
+fdc3   fdc5
+fe8b   
+fe91   
+fe97   
+fe9b   
+fe9f   
+fea3   
+fea7   
+feb3   
+feb7   
+febb   
+febf   
+fec3   
+fec7   
+fecb   
+fecf   
+fed3   
+fed7   
+fedb   
+fedf   
+fee3   
+fee7   
+feeb   
+fef3   
+END
diff --git a/lib/unicode/Is/DCisolated.pl b/lib/unicode/Is/DCisolated.pl
new file mode 100644 (file)
index 0000000..de75742
--- /dev/null
@@ -0,0 +1,100 @@
+return <<'END';
+fb50   
+fb52   
+fb56   
+fb5a   
+fb5e   
+fb62   
+fb66   
+fb6a   
+fb6e   
+fb72   
+fb76   
+fb7a   
+fb7e   
+fb82   
+fb84   
+fb86   
+fb88   
+fb8a   
+fb8c   
+fb8e   
+fb92   
+fb96   
+fb9a   
+fb9e   
+fba0   
+fba4   
+fba6   
+fbaa   
+fbae   
+fbb0   
+fbd3   
+fbd7   
+fbd9   
+fbdb   
+fbdd   fbde
+fbe0   
+fbe2   
+fbe4   
+fbea   
+fbec   
+fbee   
+fbf0   
+fbf2   
+fbf4   
+fbf6   
+fbf9   
+fbfc   
+fc00   fc63
+fcf5   fd10
+fd3d   
+fdf0   fdfb
+fe70   
+fe72   
+fe74   
+fe76   
+fe78   
+fe7a   
+fe7c   
+fe7e   
+fe80   fe81
+fe83   
+fe85   
+fe87   
+fe89   
+fe8d   
+fe8f   
+fe93   
+fe95   
+fe99   
+fe9d   
+fea1   
+fea5   
+fea9   
+feab   
+fead   
+feaf   
+feb1   
+feb5   
+feb9   
+febd   
+fec1   
+fec5   
+fec9   
+fecd   
+fed1   
+fed5   
+fed9   
+fedd   
+fee1   
+fee5   
+fee9   
+feed   
+feef   
+fef1   
+fef5   
+fef7   
+fef9   
+fefb   
+END
diff --git a/lib/unicode/Is/DCnarrow.pl b/lib/unicode/Is/DCnarrow.pl
new file mode 100644 (file)
index 0000000..a4f448a
--- /dev/null
@@ -0,0 +1,8 @@
+return <<'END';
+ff61   ffbe
+ffc2   ffc7
+ffca   ffcf
+ffd2   ffd7
+ffda   ffdc
+ffe8   ffee
+END
diff --git a/lib/unicode/Is/DCnoBreak.pl b/lib/unicode/Is/DCnoBreak.pl
new file mode 100644 (file)
index 0000000..0f9cac2
--- /dev/null
@@ -0,0 +1,5 @@
+return <<'END';
+00a0   
+2007   
+2011   
+END
diff --git a/lib/unicode/Is/DCsmall.pl b/lib/unicode/Is/DCsmall.pl
new file mode 100644 (file)
index 0000000..2e05334
--- /dev/null
@@ -0,0 +1,5 @@
+return <<'END';
+fe50   fe52
+fe54   fe66
+fe68   fe6b
+END
diff --git a/lib/unicode/Is/DCsquare.pl b/lib/unicode/Is/DCsquare.pl
new file mode 100644 (file)
index 0000000..76b4ad8
--- /dev/null
@@ -0,0 +1,5 @@
+return <<'END';
+3300   3357
+3371   3376
+337b   33dd
+END
diff --git a/lib/unicode/Is/DCsub.pl b/lib/unicode/Is/DCsub.pl
new file mode 100644 (file)
index 0000000..d446ad4
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+2080   208e
+END
diff --git a/lib/unicode/Is/DCsuper.pl b/lib/unicode/Is/DCsuper.pl
new file mode 100644 (file)
index 0000000..89dc6b8
--- /dev/null
@@ -0,0 +1,11 @@
+return <<'END';
+00aa   
+00b2   00b3
+00b9   00ba
+02b0   02b8
+02e0   02e4
+2070   
+2074   207f
+2120   2122
+3192   319f
+END
diff --git a/lib/unicode/Is/DCvertical.pl b/lib/unicode/Is/DCvertical.pl
new file mode 100644 (file)
index 0000000..1c00407
--- /dev/null
@@ -0,0 +1,3 @@
+return <<'END';
+fe30   fe44
+END
diff --git a/lib/unicode/Is/DCwide.pl b/lib/unicode/Is/DCwide.pl
new file mode 100644 (file)
index 0000000..b693b21
--- /dev/null
@@ -0,0 +1,5 @@
+return <<'END';
+3000   
+ff01   ff5e
+ffe0   ffe6
+END
diff --git a/lib/unicode/Is/DecoCanon.pl b/lib/unicode/Is/DecoCanon.pl
new file mode 100644 (file)
index 0000000..51cbb6c
--- /dev/null
@@ -0,0 +1,189 @@
+return <<'END';
+00c0   00c5
+00c7   00cf
+00d1   00d6
+00d9   00dd
+00e0   00e5
+00e7   00ef
+00f1   00f6
+00f9   00fd
+00ff   010f
+0112   0125
+0128   0130
+0134   0137
+0139   013e
+0143   0148
+014c   0151
+0154   0165
+0168   017e
+01a0   01a1
+01af   01b0
+01cd   01dc
+01de   01e3
+01e6   01f0
+01f4   01f5
+01fa   0217
+0310   
+0340   0341
+0343   0344
+0374   
+037e   
+0385   038a
+038c   
+038e   0390
+03aa   03b0
+03ca   03ce
+03d3   03d4
+0401   
+0403   
+0407   
+040c   
+040e   
+0419   
+0439   
+0451   
+0453   
+0457   
+045c   
+045e   
+0476   0477
+04c1   04c2
+04d0   04eb
+04ee   04f5
+04f8   04f9
+0929   
+0931   
+0934   
+0958   095f
+09b0   
+09cb   09cc
+09dc   09dd
+09df   
+0a59   0a5c
+0a5e   
+0b48   
+0b4b   0b4c
+0b5c   0b5d
+0b5f   
+0b94   
+0bca   0bcc
+0c48   
+0cc0   
+0cc7   0cc8
+0cca   0ccb
+0d4a   0d4c
+0e33   
+0eb3   
+0f43   
+0f4d   
+0f52   
+0f57   
+0f5c   
+0f69   
+0f73   
+0f75   0f79
+0f81   
+0f93   
+0f9d   
+0fa2   
+0fa7   
+0fac   
+0fb9   
+1e00   1e99
+1e9b   
+1ea0   1ef9
+1f00   1f15
+1f18   1f1d
+1f20   1f45
+1f48   1f4d
+1f50   1f57
+1f59   
+1f5b   
+1f5d   
+1f5f   1f7d
+1f80   1fb4
+1fb6   1fbc
+1fbe   
+1fc1   1fc4
+1fc6   1fd3
+1fd6   1fdb
+1fdd   1fef
+1ff2   1ff4
+1ff6   1ffd
+2000   2001
+2126   
+212a   212b
+2204   
+2209   
+220c   
+2224   
+2226   
+2241   
+2244   
+2247   
+2249   
+2260   
+2262   
+226d   2271
+2274   2275
+2278   2279
+2280   2281
+2284   2285
+2288   2289
+22ac   22af
+22e0   22e3
+22ea   22ed
+2329   232a
+304c   
+304e   
+3050   
+3052   
+3054   
+3056   
+3058   
+305a   
+305c   
+305e   
+3060   
+3062   
+3065   
+3067   
+3069   
+3070   3071
+3073   3074
+3076   3077
+3079   307a
+307c   307d
+3094   
+309e   
+30ac   
+30ae   
+30b0   
+30b2   
+30b4   
+30b6   
+30b8   
+30ba   
+30bc   
+30be   
+30c0   
+30c2   
+30c5   
+30c7   
+30c9   
+30d0   30d1
+30d3   30d4
+30d6   30d7
+30d9   30da
+30dc   30dd
+30f4   
+30f7   30fa
+30fe   
+fb1f   
+fb2a   fb36
+fb38   fb3c
+fb3e   
+fb40   fb41
+fb43   fb44
+fb46   fb4e
+END
diff --git a/lib/unicode/Is/DecoCompat.pl b/lib/unicode/Is/DecoCompat.pl
new file mode 100644 (file)
index 0000000..7eb8587
--- /dev/null
@@ -0,0 +1,119 @@
+return <<'END';
+005e   0060
+00a0   
+00a8   
+00aa   
+00af   
+00b2   00b5
+00b8   00ba
+00bc   00be
+0132   0133
+013f   0140
+0149   
+017f   
+01c4   01cc
+01f1   01f3
+02b0   02b8
+02d8   02dd
+02e0   02e4
+037a   
+0384   
+0587   
+0edc   0edd
+1101   
+1104   
+1108   
+110a   
+110d   
+1113   113b
+113d   
+113f   
+1141   114b
+114d   
+114f   
+1151   1153
+1156   1158
+1162   
+1164   
+1166   
+1168   
+116a   116c
+116f   1171
+1174   
+1176   119d
+119f   11a2
+11a9   11aa
+11ac   11ad
+11b0   11b6
+11b9   
+11bb   
+11c3   11ea
+11ec   11ef
+11f1   11f8
+1fbd   
+1fbf   1fc0
+1ffe   
+2002   200a
+2011   
+2017   
+2024   2026
+2033   2034
+2036   2037
+203c   
+203e   
+2070   
+2074   208e
+20a8   
+2102   2103
+2107   
+2109   2113
+2115   2116
+2118   211d
+2120   2122
+2124   
+2128   
+212c   212d
+212f   2131
+2133   2138
+2153   217f
+222c   222d
+222f   2230
+2460   24ea
+3000   
+3036   
+309b   309c
+3131   318e
+3192   319f
+3200   321c
+3220   3243
+3260   327b
+3280   32b0
+32c0   32cb
+32d0   32fe
+3300   3376
+337b   33dd
+33e0   33fe
+fb00   fb06
+fb13   fb17
+fb20   fb29
+fb4f   fbb1
+fbd3   fd3d
+fd50   fd8f
+fd92   fdc7
+fdf0   fdfb
+fe30   fe44
+fe49   fe52
+fe54   fe66
+fe68   fe6b
+fe70   fe72
+fe74   
+fe76   fefc
+ff01   ff5e
+ff61   ffbe
+ffc2   ffc7
+ffca   ffcf
+ffd2   ffd7
+ffda   ffdc
+ffe0   ffe6
+ffe8   ffee
+END
diff --git a/lib/unicode/Is/Digit.pl b/lib/unicode/Is/Digit.pl
new file mode 100644 (file)
index 0000000..1853270
--- /dev/null
@@ -0,0 +1,18 @@
+return <<'END';
+0030   0039
+0660   0669
+06f0   06f9
+0966   096f
+09e6   09ef
+0a66   0a6f
+0ae6   0aef
+0b66   0b6f
+0be7   0bef
+0c66   0c6f
+0ce6   0cef
+0d66   0d6f
+0e50   0e59
+0ed0   0ed9
+0f20   0f29
+ff10   ff19
+END
diff --git a/lib/unicode/Is/L.pl b/lib/unicode/Is/L.pl
new file mode 100644 (file)
index 0000000..a937c0c
--- /dev/null
@@ -0,0 +1,214 @@
+return <<'END';
+0041   005a
+0061   007a
+00aa   
+00b5   
+00ba   
+00c0   00d6
+00d8   00f6
+00f8   01f5
+01fa   0217
+0250   02a8
+02b0   02b8
+02bb   02c1
+02d0   02d1
+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   
+0561   0587
+05d0   05ea
+05f0   05f2
+0621   063a
+0640   064a
+0671   06b7
+06ba   06be
+06c0   06ce
+06d0   06d3
+06d5   
+06e5   06e6
+0905   0939
+093d   
+0958   0961
+0985   098c
+098f   0990
+0993   09a8
+09aa   09b0
+09b2   
+09b6   09b9
+09dc   09dd
+09df   09e1
+09f0   09f1
+0a05   0a0a
+0a0f   0a10
+0a13   0a28
+0a2a   0a30
+0a32   0a33
+0a35   0a36
+0a38   0a39
+0a59   0a5c
+0a5e   
+0a72   0a74
+0a85   0a8b
+0a8d   
+0a8f   0a91
+0a93   0aa8
+0aaa   0ab0
+0ab2   0ab3
+0ab5   0ab9
+0abd   
+0ae0   
+0b05   0b0c
+0b0f   0b10
+0b13   0b28
+0b2a   0b30
+0b32   0b33
+0b36   0b39
+0b3d   
+0b5c   0b5d
+0b5f   0b61
+0b85   0b8a
+0b8e   0b90
+0b92   0b95
+0b99   0b9a
+0b9c   
+0b9e   0b9f
+0ba3   0ba4
+0ba8   0baa
+0bae   0bb5
+0bb7   0bb9
+0c05   0c0c
+0c0e   0c10
+0c12   0c28
+0c2a   0c33
+0c35   0c39
+0c60   0c61
+0c85   0c8c
+0c8e   0c90
+0c92   0ca8
+0caa   0cb3
+0cb5   0cb9
+0cde   
+0ce0   0ce1
+0d05   0d0c
+0d0e   0d10
+0d12   0d28
+0d2a   0d39
+0d60   0d61
+0e01   0e2e
+0e30   
+0e32   0e33
+0e40   0e46
+0e81   0e82
+0e84   
+0e87   0e88
+0e8a   
+0e8d   
+0e94   0e97
+0e99   0e9f
+0ea1   0ea3
+0ea5   
+0ea7   
+0eaa   0eab
+0ead   0eae
+0eb0   
+0eb2   0eb3
+0ebd   
+0ec0   0ec4
+0ec6   
+0edc   0edd
+0f40   0f47
+0f49   0f69
+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   2131
+2133   2138
+3005   
+3031   3035
+3041   3094
+309b   309e
+30a1   30fa
+30fc   30fe
+3105   312c
+3131   318e
+4e00   9fa5
+ac00   d7a3
+f900   fa2d
+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   ffbe
+ffc2   ffc7
+ffca   ffcf
+ffd2   ffd7
+ffda   ffdc
+END
diff --git a/lib/unicode/Is/Ll.pl b/lib/unicode/Is/Ll.pl
new file mode 100644 (file)
index 0000000..7b34adf
--- /dev/null
@@ -0,0 +1,356 @@
+return <<'END';
+0061   007a
+00aa   
+00b5   
+00ba   
+00df   00f6
+00f8   00ff
+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
+013a   
+013c   
+013e   
+0140   
+0142   
+0144   
+0146   
+0148   0149
+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
+0183   
+0185   
+0188   
+018c   018d
+0192   
+0195   
+0199   019b
+019e   
+01a1   
+01a3   
+01a5   
+01a8   
+01ab   
+01ad   
+01b0   
+01b4   
+01b6   
+01b9   01ba
+01bd   
+01c6   
+01c9   
+01cc   
+01ce   
+01d0   
+01d2   
+01d4   
+01d6   
+01d8   
+01da   
+01dc   01dd
+01df   
+01e1   
+01e3   
+01e5   
+01e7   
+01e9   
+01eb   
+01ed   
+01ef   01f0
+01f3   
+01f5   
+01fb   
+01fd   
+01ff   
+0201   
+0203   
+0205   
+0207   
+0209   
+020b   
+020d   
+020f   
+0211   
+0213   
+0215   
+0217   
+0250   02a8
+0390   
+03ac   03ce
+03d0   03d1
+03d5   03d6
+03e3   
+03e5   
+03e7   
+03e9   
+03eb   
+03ed   
+03ef   03f2
+0430   044f
+0451   045c
+045e   045f
+0461   
+0463   
+0465   
+0467   
+0469   
+046b   
+046d   
+046f   
+0471   
+0473   
+0475   
+0477   
+0479   
+047b   
+047d   
+047f   
+0481   
+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   
+04ef   
+04f1   
+04f3   
+04f5   
+04f9   
+0561   0587
+10d0   10f6
+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
+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
+1f10   1f15
+1f20   1f27
+1f30   1f37
+1f40   1f45
+1f50   1f57
+1f60   1f67
+1f70   1f7d
+1f80   1f87
+1f90   1f97
+1fa0   1fa7
+1fb0   1fb4
+1fb6   1fb7
+1fc2   1fc4
+1fc6   1fc7
+1fd0   1fd3
+1fd6   1fd7
+1fe0   1fe7
+1ff2   1ff4
+1ff6   1ff7
+207f   
+210a   
+210e   210f
+2113   
+212e   212f
+2134   
+fb00   fb06
+fb13   fb17
+ff41   ff5a
+END
diff --git a/lib/unicode/Is/Lm.pl b/lib/unicode/Is/Lm.pl
new file mode 100644 (file)
index 0000000..9035aa5
--- /dev/null
@@ -0,0 +1,18 @@
+return <<'END';
+02b0   02b8
+02bb   02c1
+02d0   02d1
+02e0   02e4
+037a   
+0559   
+0640   
+06e5   06e6
+0e46   
+0ec6   
+3005   
+3031   3035
+309b   309e
+30fc   30fe
+ff70   
+ff9e   ff9f
+END
diff --git a/lib/unicode/Is/Lo.pl b/lib/unicode/Is/Lo.pl
new file mode 100644 (file)
index 0000000..8cd7e33
--- /dev/null
@@ -0,0 +1,139 @@
+return <<'END';
+01aa   
+01bb   
+01be   01c3
+03f3   
+04c0   
+05d0   05ea
+05f0   05f2
+0621   063a
+0641   064a
+0671   06b7
+06ba   06be
+06c0   06ce
+06d0   06d3
+06d5   
+0905   0939
+093d   
+0958   0961
+0985   098c
+098f   0990
+0993   09a8
+09aa   09b0
+09b2   
+09b6   09b9
+09dc   09dd
+09df   09e1
+09f0   09f1
+0a05   0a0a
+0a0f   0a10
+0a13   0a28
+0a2a   0a30
+0a32   0a33
+0a35   0a36
+0a38   0a39
+0a59   0a5c
+0a5e   
+0a72   0a74
+0a85   0a8b
+0a8d   
+0a8f   0a91
+0a93   0aa8
+0aaa   0ab0
+0ab2   0ab3
+0ab5   0ab9
+0abd   
+0ae0   
+0b05   0b0c
+0b0f   0b10
+0b13   0b28
+0b2a   0b30
+0b32   0b33
+0b36   0b39
+0b3d   
+0b5c   0b5d
+0b5f   0b61
+0b85   0b8a
+0b8e   0b90
+0b92   0b95
+0b99   0b9a
+0b9c   
+0b9e   0b9f
+0ba3   0ba4
+0ba8   0baa
+0bae   0bb5
+0bb7   0bb9
+0c05   0c0c
+0c0e   0c10
+0c12   0c28
+0c2a   0c33
+0c35   0c39
+0c60   0c61
+0c85   0c8c
+0c8e   0c90
+0c92   0ca8
+0caa   0cb3
+0cb5   0cb9
+0cde   
+0ce0   0ce1
+0d05   0d0c
+0d0e   0d10
+0d12   0d28
+0d2a   0d39
+0d60   0d61
+0e01   0e2e
+0e30   
+0e32   0e33
+0e40   0e45
+0e81   0e82
+0e84   
+0e87   0e88
+0e8a   
+0e8d   
+0e94   0e97
+0e99   0e9f
+0ea1   0ea3
+0ea5   
+0ea7   
+0eaa   0eab
+0ead   0eae
+0eb0   
+0eb2   0eb3
+0ebd   
+0ec0   0ec4
+0edc   0edd
+0f40   0f47
+0f49   0f69
+1100   1159
+115f   11a2
+11a8   11f9
+2135   2138
+3041   3094
+30a1   30fa
+3105   312c
+3131   318e
+4e00   9fa5
+ac00   d7a3
+f900   fa2d
+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
+ff66   ff6f
+ff71   ff9d
+ffa0   ffbe
+ffc2   ffc7
+ffca   ffcf
+ffd2   ffd7
+ffda   ffdc
+END
diff --git a/lib/unicode/Is/Lower.pl b/lib/unicode/Is/Lower.pl
new file mode 100644 (file)
index 0000000..7b34adf
--- /dev/null
@@ -0,0 +1,356 @@
+return <<'END';
+0061   007a
+00aa   
+00b5   
+00ba   
+00df   00f6
+00f8   00ff
+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
+013a   
+013c   
+013e   
+0140   
+0142   
+0144   
+0146   
+0148   0149
+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
+0183   
+0185   
+0188   
+018c   018d
+0192   
+0195   
+0199   019b
+019e   
+01a1   
+01a3   
+01a5   
+01a8   
+01ab   
+01ad   
+01b0   
+01b4   
+01b6   
+01b9   01ba
+01bd   
+01c6   
+01c9   
+01cc   
+01ce   
+01d0   
+01d2   
+01d4   
+01d6   
+01d8   
+01da   
+01dc   01dd
+01df   
+01e1   
+01e3   
+01e5   
+01e7   
+01e9   
+01eb   
+01ed   
+01ef   01f0
+01f3   
+01f5   
+01fb   
+01fd   
+01ff   
+0201   
+0203   
+0205   
+0207   
+0209   
+020b   
+020d   
+020f   
+0211   
+0213   
+0215   
+0217   
+0250   02a8
+0390   
+03ac   03ce
+03d0   03d1
+03d5   03d6
+03e3   
+03e5   
+03e7   
+03e9   
+03eb   
+03ed   
+03ef   03f2
+0430   044f
+0451   045c
+045e   045f
+0461   
+0463   
+0465   
+0467   
+0469   
+046b   
+046d   
+046f   
+0471   
+0473   
+0475   
+0477   
+0479   
+047b   
+047d   
+047f   
+0481   
+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   
+04ef   
+04f1   
+04f3   
+04f5   
+04f9   
+0561   0587
+10d0   10f6
+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
+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
+1f10   1f15
+1f20   1f27
+1f30   1f37
+1f40   1f45
+1f50   1f57
+1f60   1f67
+1f70   1f7d
+1f80   1f87
+1f90   1f97
+1fa0   1fa7
+1fb0   1fb4
+1fb6   1fb7
+1fc2   1fc4
+1fc6   1fc7
+1fd0   1fd3
+1fd6   1fd7
+1fe0   1fe7
+1ff2   1ff4
+1ff6   1ff7
+207f   
+210a   
+210e   210f
+2113   
+212e   212f
+2134   
+fb00   fb06
+fb13   fb17
+ff41   ff5a
+END
diff --git a/lib/unicode/Is/Lt.pl b/lib/unicode/Is/Lt.pl
new file mode 100644 (file)
index 0000000..282f31d
--- /dev/null
@@ -0,0 +1,6 @@
+return <<'END';
+01c5   
+01c8