Update Unicode-Collate to CPAN version 0.66
authorChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Sun, 7 Nov 2010 13:31:59 +0000 (13:31 +0000)
committerChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Sun, 7 Nov 2010 13:32:48 +0000 (13:32 +0000)
  [DELTA]

  0.66  Sun Nov  7 10:47:30 2010
    - U::C::Locale newly supports locale: ko.
    - added Unicode::Collate::CJK::Korean for ko.
    - added t/loc_ko.t.
    - 12 compat. ideographs (e.g. U+FA0E) are treated as unified ideographs.
     (though DUCET also does it, now Unicode::Collate does it without DUCET.)
    - added t/compatui.t.
    ! Ideographs Ext.B (U+20000..U+2A6D6) can be overrided with UCA_Version 8.
      This is a long-standing behavior from Unicode::Collate 0.11 to 0.63.
      A wrong fix at 0.64 should be abandoned.

15 files changed:
MANIFEST
Porting/Maintainers.pl
cpan/Unicode-Collate/Changes
cpan/Unicode-Collate/Collate.pm
cpan/Unicode-Collate/Collate/CJK/Korean.pm [new file with mode: 0644]
cpan/Unicode-Collate/Collate/Locale.pm
cpan/Unicode-Collate/Collate/Locale/ko.pl [new file with mode: 0644]
cpan/Unicode-Collate/README
cpan/Unicode-Collate/t/cjkrange.t
cpan/Unicode-Collate/t/compatui.t [new file with mode: 0644]
cpan/Unicode-Collate/t/loc_ja.t
cpan/Unicode-Collate/t/loc_ko.t [new file with mode: 0644]
cpan/Unicode-Collate/t/loc_zhpy.t
cpan/Unicode-Collate/t/overcjk0.t
pod/perldelta.pod

index a6530cc..d7e129a 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -2384,6 +2384,7 @@ cpan/Unicode-Collate/Collate/allkeys.txt  Unicode::Collate
 cpan/Unicode-Collate/Collate/CJK/Big5.pm                       Unicode::Collate
 cpan/Unicode-Collate/Collate/CJK/GB2312.pm                     Unicode::Collate
 cpan/Unicode-Collate/Collate/CJK/JISX0208.pm                   Unicode::Collate
+cpan/Unicode-Collate/Collate/CJK/Korean.pm                     Unicode::Collate
 cpan/Unicode-Collate/Collate/CJK/Pinyin.pm                     Unicode::Collate
 cpan/Unicode-Collate/Collate/CJK/Stroke.pm                     Unicode::Collate
 cpan/Unicode-Collate/Collate/keys.txt          Unicode::Collate
@@ -2413,6 +2414,7 @@ cpan/Unicode-Collate/Collate/Locale/is.pl                 Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/ja.pl                      Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/kk.pl                      Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/kl.pl                      Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/ko.pl                      Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/lt.pl                      Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/lv.pl                      Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/mt.pl                      Unicode::Collate
@@ -2446,6 +2448,7 @@ cpan/Unicode-Collate/Collate.pm                   Unicode::Collate
 cpan/Unicode-Collate/README                    Unicode::Collate
 cpan/Unicode-Collate/t/altern.t                        Unicode::Collate
 cpan/Unicode-Collate/t/cjkrange.t              Unicode::Collate
+cpan/Unicode-Collate/t/compatui.t              Unicode::Collate
 cpan/Unicode-Collate/t/contract.t              Unicode::Collate
 cpan/Unicode-Collate/t/default.t               Unicode::Collate
 cpan/Unicode-Collate/t/hangtype.t              Unicode::Collate
@@ -2486,6 +2489,7 @@ cpan/Unicode-Collate/t/loc_japr.t                 Unicode::Collate
 cpan/Unicode-Collate/t/loc_ja.t                        Unicode::Collate
 cpan/Unicode-Collate/t/loc_kk.t                        Unicode::Collate
 cpan/Unicode-Collate/t/loc_kl.t                        Unicode::Collate
+cpan/Unicode-Collate/t/loc_ko.t                        Unicode::Collate
 cpan/Unicode-Collate/t/loc_lt.t                        Unicode::Collate
 cpan/Unicode-Collate/t/loc_lv.t                        Unicode::Collate
 cpan/Unicode-Collate/t/loc_mk.t                        Unicode::Collate
index f48cdc8..64dc98d 100755 (executable)
@@ -1488,7 +1488,7 @@ use File::Glob qw(:case);
     'Unicode::Collate' =>
        {
        'MAINTAINER'    => 'sadahiro',
-       'DISTRIBUTION'  => 'SADAHIRO/Unicode-Collate-0.65-withoutworldwriteables.tar.gz',
+       'DISTRIBUTION'  => 'SADAHIRO/Unicode-Collate-0.66-withoutworldwriteables.tar.gz',
        'FILES'         => q[cpan/Unicode-Collate],
                            # ignore experimental XS version
        'EXCLUDED'      => [ qr{X$},
index 4f02427..263208b 100644 (file)
@@ -1,34 +1,53 @@
 Revision history for Perl module Unicode::Collate.
 
+0.66  Sun Nov  7 10:47:30 2010
+    - U::C::Locale newly supports locale: ko.
+    - added Unicode::Collate::CJK::Korean for ko.
+    - added t/loc_ko.t.
+    - 12 compat. ideographs (e.g. U+FA0E) are treated as unified ideographs.
+     (though DUCET also does it, now Unicode::Collate does it without DUCET.)
+    - added t/compatui.t.
+    ! Ideographs Ext.B (U+20000..U+2A6D6) can be overrided with UCA_Version 8.
+      This is a long-standing behavior from Unicode::Collate 0.11 to 0.63.
+      A wrong fix at 0.64 should be abandoned.
+
 0.65  Wed Nov  3 13:10:20 2010
     - U::C::Locale newly supports locale: zh and its some variants.
-             (zh__big5han, zh__gb2312han, zh__pinyin, zh__stroke)
+     (zh__big5han, zh__gb2312han, zh__pinyin, zh__stroke)
     - added Unicode::Collate::CJK::Big5   for zh__big5han.
     - added Unicode::Collate::CJK::GB2312 for zh__gb2312han.
     - added Unicode::Collate::CJK::Pinyin for zh__pinyin.
     - added Unicode::Collate::CJK::Stroke for zh__stroke.
+    - added loc_zh.t, loc_zhb5.t, loc_zhgb.t, loc_zhpy.t, loc_zhst.t in t.
 
 0.64  Sun Oct 31 14:17:29 2010
     - U::C::Locale newly supports locale: ja.
     - added Unicode::Collate::CJK::JISX0208 for ja.
+    - added loc_ja.t, loc_jait.t, loc_japr.t in t.
     - a subroutine specified in 'overrideCJK' or 'overrideHangul' is allowed
       to return an integer or undef value.
-    - fix: Ideographs Ext.A are assigned since UCA Version 9 (Unicode 3.1).
-           This fix should affect only the case of (UCA_Version => 8).
+    - fix: Ideographs Ext.B (U+20000..U+2A6D6) are assigned in Unicode 3.1,
+           then 'overrideCJK' should not override them with UCA_Version 8.
+      !! sorry, this fix is based on a wrong idea. reverted at 0.66. !!
+    - separated t/overcjk0.t and t/overcjk1.t from t/override.t.
 
 0.63  Sun Oct 10 22:13:21 2010
     - supported suppress contractions (see 'suppress' in POD).
     - internal for 'hangul_terminator' in getSortKey().
     - U::C::Locale newly supports locales: be, bg, kk, mk, ru, sr.
+    - added loc_be.t, loc_bg.t, loc_cyrl.t, loc_kk.t, loc_mk.t, loc_ru.t,
+      loc_sr.t in t.
     - added tailoring with U+0340 or U+0341 instead of U+0300 or U+0301.
         (affected locales: hr, is, pl, se, to, wo)
 
 0.62  Wed Oct  6 21:35:54 2010
     - U::C::Locale newly supports locales: ar, hu, hy, se, to, uk.
+    - added loc_ar.t, loc_hu.t, loc_hy.t, loc_se.t, loc_to.t, loc_uk.t in t.
     - Vietnamese (vi): added tailoring for U+0340 and U+0341.
 
 0.61  Sat Oct  2 11:41:29 2010
     - U::C::Locale newly supports locales: hr, ig, sq.
+    - added loc_hr.t, loc_ig.t, loc_sq.t in t.
     - precomposites of e-dot-below, o-dot-below, o-tilde are tailored as well.
         (affected locales: et, yo)
     - Vietnamese (vi): added contractions for non-blocked decompositions
@@ -42,29 +61,38 @@ Revision history for Perl module Unicode::Collate.
   http://www.xray.mpe.mpg.de/mailing-lists/perl-unicode/2010-09/msg00014.html
 
     - U::C::Locale newly supports locales: de__phonebook, nso, om, tn, vi.
+    - added loc_de.t, loc_deph.t, loc_nso.t, loc_om.t, loc_tn.t, loc_vi.t in t.
     - precomposites of a-breve, a-circ, e-circ, o-circ are tailored as well.
         (affected locales: ro, sk, sv)
 
 0.59  Sun Sep  5 17:03:52 2010
     - U::C::Locale newly supports locales: az, fil, ha, lt, mt, tr, wo, yo.
+    - added loc_az.t, loc_fil.t, loc_ha.t, loc_lt.t, loc_mt.t, loc_tr.t,
+      loc_wo.t, loc_yo.t in t.
     - precomposites of a-uml, o-uml, and u-uml are tailored as well.
         (affected locales: da, et, fi, fo, is, kl, nb, nn, sk, sv)
 
 0.58  Sun Aug 29 19:56:50 2010
     - U::C::Locale newly supports locales: af, cy, da, fo, haw, is, kl, sw.
+    - added loc_af.t, loc_cy.t, loc_da.t, loc_fo.t, loc_haw.t, loc_is.t,
+      loc_kl.t, loc_sw.t in t.
 
 0.57  Sun Aug 22 22:39:58 2010
     - U::C::Locale newly supports locales: ca, et, fi, lv, sk, sl.
+    - added loc_ca.t, loc_et.t, loc_fi.t, loc_lv.t, loc_sk.t, loc_sl.t in t.
 
 0.56  Sun Aug  8 20:24:03 2010
     - Unicode::Collate::Locale newly supports locales: eo, nb, ro, sv.
+    - added loc_eo.t, loc_es.t, loc_estr.t, loc_nb.t, loc_ro.t, loc_sv.t in t.
     ! renamed t/locale_{xy}.t to t/loc_{xy}.t (for safer 8.3 names)
+     (loc_cs.t, loc_fr.t, loc_nn.t, loc_pl.t, loc_test.t)
 
 0.55  Sun Aug  1 21:21:23 2010
     - incorporated Unicode::Collate::Locale with some changes. see:
   http://www.xray.mpe.mpg.de/mailing-lists/perl-unicode/2004-03/msg00030.html
     - supported locales: cs, es, es__traditional, fr, nn, pl.
     ! added t/locale*.t that uses DUCET.
+     (locale_cs.t, locale_fr.t, locale_nn.t, locale_pl.t, locale_test.t)
 
 0.54  Sun Jul 25 21:37:04 2010
     - Now UCA Revision 20 (based on Unicode 5.2.0).
@@ -103,7 +131,7 @@ Revision history for Perl module Unicode::Collate.
 0.50  Sun May  8 20:26:39 2005
     - Now UCA Revision 14 (based on Unicode 4.1.0).
     - Some tests are modified.
-    - Added cjkrange.t, ignor.t, override.t.
+    - Added cjkrange.t, ignor.t, override.t in t.
     - Added META.yml.
 
 0.40  Sat Apr 24 06:54:40 2004
@@ -116,9 +144,9 @@ Revision history for Perl module Unicode::Collate.
     - A matching part from index(), match() etc. will include illegal
       code points (as well as ignorable characters) following a grapheme.
     - Contraction with illegal code point will be invalid.
-    - Added view.t.
-    - Added some tests in illegal.t.
-    - Some tests are separated from test.t into altern.t and rearrang.t.
+    - Added t/view.t.
+    - Added some tests in t/illegal.t.
+    - Separated t/altern.t and t/rearrang.t from t/test.t.
     - modified XSUB internals.
 
 0.31  Sun Nov 16 15:40:15 2003
@@ -127,7 +155,7 @@ Revision history for Perl module Unicode::Collate.
       but porting is not successful in the case of ((Pure Perl) and
       (Perl 5.7.3 or before)). If perl 5.6.X is used, XSUB may help it
       in place of broken CORE::unpack('U*') in older perl.
-    - added illegal.t and illegalp.t.
+    - added illegal.t and illegalp.t in t.
     - added XSUB (EXPERIMENTAL!) where some functions are implemented
       in XSUB. Pure Perl is also supported.
 
@@ -136,7 +164,7 @@ Revision history for Perl module Unicode::Collate.
       by non-ignorable in entry.
     - fix: Maximum length for contraction must not be shortened
       by a shorter contraction following in table and/or entry.
-    - added normal.t.
+    - added t/normal.t.
     - some doc fixes
 
 0.29  Mon Oct 13 12:18:23 2003
@@ -147,14 +175,14 @@ Revision history for Perl module Unicode::Collate.
     - For variable weighting, 'variable' is recommended
       and 'alternate' is deprecated.
     - added version() method.
-    - added hangtype.t, trailwt.t, variable.t, and version.t.
+    - added hangtype.t, trailwt.t, variable.t, and version.t in t.
 
 0.28  Sat Sep 06 20:16:01 2003
     - Fixed another inconsistency under (normalization => undef):
       Non-contiguous contraction is always neglected.
     - Fixed: according to S2.1 in UTS #10, a blocked combining character
-      should not be contracted. One test in test.t was wrong, then removed.
-    - Added contract.t.
+      should not be contracted. One test in t/test.t was wrong, then removed.
+    - Added t/contract.t.
     - (normalization => "prenormalized") is able to be used.
 
 0.27  Sun Aug 31 22:23:17 2003
@@ -169,7 +197,8 @@ Revision history for Perl module Unicode::Collate.
       or UAX #15 may be changed/enhanced in future.
     - When Hangul syllables are decomposed under <normalization => undef>,
       contraction among jamo (LV, VT, LVT) derived from the same
-      Hangul syllable is allowed.  Added hangul.t.
+      Hangul syllable is allowed.
+    - Added t/hangul.t.
 
 0.26  Sun Aug 03 22:23:17 2003
     - fix: an expansion in which a CE is level 3 ignorable and others are not
@@ -191,8 +220,8 @@ Revision history for Perl module Unicode::Collate.
       and completely ignorable characters.
 
 0.22  Mon Sep 02 23:15:14 2002
-    - New File: index.t.
-      (The new test.t excludes tests for index.)
+    - New File: t/index.t.
+      (The new t/test.t excludes tests for index.)
     - tweak on index(). POSITION is supported.
     - add match, gmatch, subst, gsubst methods.
     - fix: ignorable after variable in 'shift'-variable weight.
index 0133ab4..4345d7d 100644 (file)
@@ -14,7 +14,7 @@ use File::Spec;
 
 no warnings 'utf8';
 
-our $VERSION = '0.65';
+our $VERSION = '0.66';
 our $PACKAGE = __PACKAGE__;
 
 my @Path = qw(Unicode Collate);
@@ -108,6 +108,11 @@ use constant CJK_ExtBFin   => 0x2A6D6; # Unicode 3.1.0
 use constant CJK_ExtCIni   => 0x2A700; # Unicode 5.2.0
 use constant CJK_ExtCFin   => 0x2B734; # Unicode 5.2.0
 
+my %CompatUI = map +($_ => 1), (
+    0xFA0E, 0xFA0F, 0xFA11, 0xFA13, 0xFA14, 0xFA1F,
+    0xFA21, 0xFA23, 0xFA24, 0xFA27, 0xFA28, 0xFA29,
+);
+
 # Logical_Order_Exception in PropList.txt
 my $DefaultRearrange = [ 0x0E40..0x0E44, 0x0EC0..0x0EC4 ];
 
@@ -667,13 +672,16 @@ sub getWt
                } @decH);
        }
        return map _varCE($vbl, $_), @hangulCE;
-    } elsif (_isUIdeo($u, $self->{UCA_Version})) {
-       my $cjk  = $self->{overrideCJK};
-       my @cjkCE = $cjk ? map(_pack_override($_, $u, $der), $cjk->($u))
-               : defined $cjk && $self->{UCA_Version} <= 8
-                   ? _uideoCE_8($u) : $der->($u);
-       return map _varCE($vbl, $_), @cjkCE;
     } else {
+       my $cjk  = $self->{overrideCJK};
+       my $vers = $self->{UCA_Version};
+       if ($cjk && _isUIdeo($u, $vers)) {
+           my @cjkCE = map _pack_override($_, $u, $der), $cjk->($u);
+           return map _varCE($vbl, $_), @cjkCE;
+       }
+       if ($vers == 8 && defined $cjk && _isUIdeo($u, 0)) {
+           return map _varCE($vbl, $_), _uideoCE_8($u);
+       }
        return map _varCE($vbl, $_), $der->($u);
     }
 }
@@ -790,11 +798,13 @@ sub sort {
 
 sub _derivCE_20 {
     my $u = shift;
-    my $base = (CJK_UidIni  <= $u && $u <= CJK_UidF52) ? 0xFB40 : # CJK
+    my $base = (CJK_UidIni  <= $u && $u <= CJK_UidF52 || $CompatUI{$u})
+               ? 0xFB40 : # CJK
               (CJK_ExtAIni <= $u && $u <= CJK_ExtAFin ||
                CJK_ExtBIni <= $u && $u <= CJK_ExtBFin ||
-               CJK_ExtCIni <= $u && $u <= CJK_ExtCFin) ? 0xFB80  # CJK ext.
-                                                       : 0xFBC0; # others
+               CJK_ExtCIni <= $u && $u <= CJK_ExtCFin)
+               ? 0xFB80  # CJK ext.
+               : 0xFBC0; # others
     my $aaaa = $base + ($u >> 15);
     my $bbbb = ($u & 0x7FFF) | 0x8000;
     return pack(VCE_TEMPLATE, NON_VAR, $aaaa, Min2Wt, Min3Wt, $u),
@@ -803,10 +813,12 @@ sub _derivCE_20 {
 
 sub _derivCE_18 {
     my $u = shift;
-    my $base = (CJK_UidIni  <= $u && $u <= CJK_UidF51) ? 0xFB40 : # CJK
+    my $base = (CJK_UidIni  <= $u && $u <= CJK_UidF51 || $CompatUI{$u})
+               ? 0xFB40 : # CJK
               (CJK_ExtAIni <= $u && $u <= CJK_ExtAFin ||
-               CJK_ExtBIni <= $u && $u <= CJK_ExtBFin) ? 0xFB80  # CJK ext.
-                                                       : 0xFBC0; # others
+               CJK_ExtBIni <= $u && $u <= CJK_ExtBFin)
+               ? 0xFB80  # CJK ext.
+               : 0xFBC0; # others
     my $aaaa = $base + ($u >> 15);
     my $bbbb = ($u & 0x7FFF) | 0x8000;
     return pack(VCE_TEMPLATE, NON_VAR, $aaaa, Min2Wt, Min3Wt, $u),
@@ -815,10 +827,12 @@ sub _derivCE_18 {
 
 sub _derivCE_14 {
     my $u = shift;
-    my $base = (CJK_UidIni  <= $u && $u <= CJK_UidF41) ? 0xFB40 : # CJK
+    my $base = (CJK_UidIni  <= $u && $u <= CJK_UidF41 || $CompatUI{$u})
+               ? 0xFB40 : # CJK
               (CJK_ExtAIni <= $u && $u <= CJK_ExtAFin ||
-               CJK_ExtBIni <= $u && $u <= CJK_ExtBFin) ? 0xFB80  # CJK ext.
-                                                       : 0xFBC0; # others
+               CJK_ExtBIni <= $u && $u <= CJK_ExtBFin)
+               ? 0xFB80  # CJK ext.
+               : 0xFBC0; # others
     my $aaaa = $base + ($u >> 15);
     my $bbbb = ($u & 0x7FFF) | 0x8000;
     return pack(VCE_TEMPLATE, NON_VAR, $aaaa, Min2Wt, Min3Wt, $u),
@@ -827,10 +841,12 @@ sub _derivCE_14 {
 
 sub _derivCE_9 {
     my $u = shift;
-    my $base = (CJK_UidIni  <= $u && $u <= CJK_UidFin) ? 0xFB40 : # CJK
+    my $base = (CJK_UidIni  <= $u && $u <= CJK_UidFin || $CompatUI{$u})
+               ? 0xFB40 : # CJK
               (CJK_ExtAIni <= $u && $u <= CJK_ExtAFin ||
-               CJK_ExtBIni <= $u && $u <= CJK_ExtBFin) ? 0xFB80  # CJK ext.
-                                                       : 0xFBC0; # others
+               CJK_ExtBIni <= $u && $u <= CJK_ExtBFin)
+               ? 0xFB80  # CJK ext.
+               : 0xFBC0; # others
     my $aaaa = $base + ($u >> 15);
     my $bbbb = ($u & 0x7FFF) | 0x8000;
     return pack(VCE_TEMPLATE, NON_VAR, $aaaa, Min2Wt, Min3Wt, $u),
@@ -841,9 +857,8 @@ sub _derivCE_8 {
     my $code = shift;
     my $aaaa =  0xFF80 + ($code >> 15);
     my $bbbb = ($code & 0x7FFF) | 0x8000;
-    return
-       pack(VCE_TEMPLATE, NON_VAR, $aaaa, 2, 1, $code),
-       pack(VCE_TEMPLATE, NON_VAR, $bbbb, 0, 0, $code);
+    return pack(VCE_TEMPLATE, NON_VAR, $aaaa, 2, 1, $code),
+          pack(VCE_TEMPLATE, NON_VAR, $bbbb, 0, 0, $code);
 }
 
 sub _uideoCE_8 {
@@ -852,16 +867,17 @@ sub _uideoCE_8 {
 }
 
 sub _isUIdeo {
+    # $uca_vers = 0 for _uideoCE_8()
     my ($u, $uca_vers) = @_;
     return((CJK_UidIni <= $u && (
            $uca_vers >= 20 ? ($u <= CJK_UidF52) :
            $uca_vers >= 18 ? ($u <= CJK_UidF51) :
            $uca_vers >= 14 ? ($u <= CJK_UidF41) :
-                             ($u <= CJK_UidFin)))
+                             ($u <= CJK_UidFin))) || $CompatUI{$u}
                ||
        (CJK_ExtAIni <= $u && $u <= CJK_ExtAFin)
                ||
-       ($uca_vers >=  9 && CJK_ExtBIni <= $u && $u <= CJK_ExtBFin)
+       ($uca_vers >=  8 && CJK_ExtBIni <= $u && $u <= CJK_ExtBFin)
                ||
        ($uca_vers >= 20 && CJK_ExtCIni <= $u && $u <= CJK_ExtCFin)
     );
@@ -1432,24 +1448,24 @@ B<Unicode::Normalize> is required (see also B<CAVEAT>).
 
 -- see 7.1 Derived Collation Elements, UTS #10.
 
-By default, CJK Unified Ideographs are ordered in Unicode codepoint
-order but C<CJK Unified Ideographs> are lesser than
-C<CJK Unified Ideographs Extension>.
+By default, CJK unified ideographs are ordered in Unicode codepoint
+order, but those in the CJK Unified Ideographs block are lesser than
+those in the CJK Unified Ideographs Extension A etc.
 
-    CJK Unified Ideographs:
+    In CJK Unified Ideographs block:
     U+4E00..U+9FA5 if UCA_Version is 8 to 11;
     U+4E00..U+9FBB if UCA_Version is 14 to 16;
     U+4E00..U+9FC3 if UCA_Version is 18;
     U+4E00..U+9FCB if UCA_Version is 20.
 
-    CJK Unified Ideographs Extension:
-    Ext.A (U+3400..U+4DB5)   if UCA_Version is 9 or greater;
-    Ext.B (U+20000..U+2A6D6) if UCA_Version is 9 or greater;
+    In CJK Unified Ideographs Extension blocks:
+    Ext.A (U+3400..U+4DB5) and Ext.B (U+20000..U+2A6D6) in any UCA_Version;
     Ext.C (U+2A700..U+2B734) if UCA_Version is 20.
 
-Through C<overrideCJK>, ordering of CJK Unified Ideographs can be overrided.
+Through C<overrideCJK>, ordering of CJK unified ideographs (including
+extensions) can be overrided.
 
-ex. CJK Unified Ideographs in the JIS code point order.
+ex. CJK unified ideographs in the JIS code point order.
 
   overrideCJK => sub {
       my $u = shift;             # get a Unicode codepoint
@@ -1475,37 +1491,45 @@ collation element will be used.
 The return value may be a list containing zero or more of
 an arrayref, an integer, or C<undef>.
 
-ex. ignores all CJK Unified Ideographs.
+ex. ignores all CJK unified ideographs.
 
   overrideCJK => sub {()}, # CODEREF returning empty list
 
    # where ->eq("Pe\x{4E00}rl", "Perl") is true
-   # as U+4E00 is a CJK Unified Ideograph and to be ignorable.
+   # as U+4E00 is a CJK unified ideograph and to be ignorable.
 
 If C<undef> is passed explicitly as the value for this key,
-weights for CJK Unified Ideographs are treated as undefined.
-But assignment of weight for CJK Unified Ideographs
-in <table> or C<entry> is still valid.
+weights for CJK unified ideographs are treated as undefined.
+But assignment of weight for CJK unified ideographs
+in C<table> or C<entry> is still valid.
+
+B<Note:> In addition to them, 12 CJK compatibility ideographs (C<U+FA0E>,
+C<U+FA0F>, C<U+FA11>, C<U+FA13>, C<U+FA14>, C<U+FA1F>, C<U+FA21>, C<U+FA23>,
+C<U+FA24>, C<U+FA27>, C<U+FA28>, C<U+FA29>) are also treated as CJK unified
+ideographs. But they can't be overrided via C<overrideCJK> when you use
+DUCET, as the table includes weights for them. C<table> or C<entry> has
+priority over C<overrideCJK>.
 
 =item overrideHangul
 
 -- see 7.1 Derived Collation Elements, UTS #10.
 
-By default, Hangul Syllables are decomposed into Hangul Jamo,
+By default, Hangul syllables are decomposed into Hangul Jamo,
 even if C<(normalization =E<gt> undef)>.
-But the mapping of Hangul Syllables may be overrided.
+But the mapping of Hangul syllables may be overrided.
 
 This parameter works like C<overrideCJK>, so see there for examples.
 
-If you want to override the mapping of Hangul Syllables,
-NFD, NFKD, and FCD are not appropriate,
-since they will decompose Hangul Syllables before overriding.
+If you want to override the mapping of Hangul syllables,
+NFD and NFKD are not appropriate, since NFD and NFKD will decompose
+Hangul syllables before overriding. FCD may decompose Hangul syllables
+as the case may be.
 
 If C<undef> is passed explicitly as the value for this key,
-weight for Hangul Syllables is treated as undefined
+weight for Hangul syllables is treated as undefined
 without decomposition into Hangul Jamo.
-But definition of weight for Hangul Syllables
-in <table> or C<entry> is still valid.
+But definition of weight for Hangul syllables
+in C<table> or C<entry> is still valid.
 
 =item preprocess
 
@@ -1560,7 +1584,7 @@ but it is not warned at present.>
 UTS #35 (LDML).
 
 Contractions beginning with the specified characters are suppressed,
-even if those contractions are defined in <table> or C<entry>.
+even if those contractions are defined in C<table> or C<entry>.
 
 An example for Russian and some languages using the Cyrillic script:
 
@@ -1615,7 +1639,7 @@ specified as a comment (following C<#>) on each line.
 
 -- see 6.3.4 Reducing the Repertoire, UTS #10.
 
-Undefines the collation element as if it were unassigned in the <table>.
+Undefines the collation element as if it were unassigned in the C<table>.
 This reduces the size of the table.
 If an unassigned character appears in the string to be collated,
 the sort key is made from its codepoint
diff --git a/cpan/Unicode-Collate/Collate/CJK/Korean.pm b/cpan/Unicode-Collate/Collate/CJK/Korean.pm
new file mode 100644 (file)
index 0000000..f4ae730
--- /dev/null
@@ -0,0 +1,1556 @@
+package Unicode::Collate::CJK::Korean;
+
+use 5.006;
+use strict;
+use Unicode::Collate;
+
+our $VERSION = '0.66';
+
+my %jamo2prim = (
+    0x1100, 0x29B0,   0x1101, 0x29B1,   0x1102, 0x29B2,   0x1103, 0x29B3,
+    0x1105, 0x29B5,   0x1106, 0x29B6,   0x1107, 0x29B7,   0x1109, 0x29B9,
+    0x110A, 0x29BA,   0x110B, 0x29BB,   0x110C, 0x29BC,   0x110E, 0x29BE,
+    0x110F, 0x29BF,   0x1110, 0x29C0,   0x1111, 0x29C1,   0x1112, 0x29C2,
+    0x1161, 0x2A2E,   0x1162, 0x2A2F,   0x1163, 0x2A30,   0x1165, 0x2A32,
+    0x1166, 0x2A33,   0x1167, 0x2A34,   0x1168, 0x2A35,   0x1169, 0x2A36,
+    0x116A, 0x2A37,   0x116B, 0x2A38,   0x116C, 0x2A39,   0x116D, 0x2A3A,
+    0x116E, 0x2A3B,   0x116F, 0x2A3C,   0x1170, 0x2A3D,   0x1171, 0x2A3E,
+    0x1172, 0x2A3F,   0x1173, 0x2A40,   0x1174, 0x2A41,   0x1175, 0x2A42,
+    0x11A8, 0x2A8C,   0x11AB, 0x2A8F,   0x11AF, 0x2A93,   0x11B7, 0x2A9B,
+    0x11B8, 0x2A9C,   0x11BC, 0x2AA0,   0x11BD, 0x2AA1,
+); # for DUCET v5.2.0
+
+my(%u2e, $prim, $wt);
+while (<DATA>) {
+    last if /^__END__/;
+    my @c = split;
+    if (@c == 1 && $c[0] =~ /^[A-D]/) {
+       my $u = hex $c[0];
+       my @h = Unicode::Collate::_decompHangul($u);
+       $prim = [ map $jamo2prim{$_}, @h ];
+       $wt = 0x20;
+    } else {
+       for my $c (@c) {
+           next if !$c;
+           $wt++;
+           $u2e{hex($c)} = [ $wt, @$prim ];
+       }
+    }
+}
+
+sub weightKorean {
+    my $u = shift;
+    return undef if !exists $u2e{$u};
+    my @a = @{ $u2e{$u} };
+    my $s = shift @a;
+    my $p = shift @a;
+    return([ $p, $s, 0x2, $u ], @a);
+}
+
+1;
+__DATA__
+AC00
+4F3D 4F73 5047 50F9 52A0 53EF 5475 54E5 5609 5AC1
+5BB6 6687 67B6 67B7 67EF 6B4C 73C2 75C2 7A3C 82DB
+8304 8857 8888 8A36 8CC8 8DCF 8EFB 8FE6 99D5 4EEE
+50A2 5496 54FF 5777 5B8A 659D 698E 6A9F 73C8 7B33
+801E 8238 846D 8B0C
+AC01
+523B 5374 5404 606A 6164 6BBC 73CF 811A 89BA 89D2
+95A3 537B 54AF 57C6 6409 64F1 6877
+AC04
+4F83 520A 58BE 5978 59E6 5E72 5E79 61C7 63C0 6746
+67EC 687F 6F97 764E 770B 78F5 7A08 7AFF 7C21 809D
+826E 8271 8AEB 9593 5058 6173 681E 69A6 7395 79C6
+831B 884E 8D76 8FC0 9F66
+AC08
+4E6B 559D 66F7 6E34 78A3 7AED 845B 8910 874E 97A8
+5676 696C 79F8 7FAF 880D 9DA1
+AC10
+52D8 574E 582A 5D4C 611F 61BE 6221 6562 67D1 6A44
+6E1B 7518 75B3 76E3 77B0 7D3A 90AF 9451 9452 9F95
+5769 57F3 5D41 5F07 61A8 64BC 6B3F 6B5B 6CD4 6DE6
+6F89 77D9 8F57 9163 9E7B
+AC11
+5323 5CAC 7532 80DB 9240 9598 97D0
+AC15
+525B 5808 59DC 5CA1 5D17 5EB7 5F3A 5F4A 6177 6C5F
+757A 7586 7CE0 7D73 7DB1 7F8C 8154 8221 8591 8941
+8B1B 92FC 964D 9C47 508B 50F5 58C3 5FFC 625B 6760
+6A7F 6BAD 77FC 7A45 7E48 7F61 7F97 7FAB 8333 8C47
+97C1
+AC1C
+4ECB 4EF7 500B 51F1 584F 6137 613E 6168 6539 69EA
+6F11 75A5 7686 76D6 7B87 82A5 84CB 93A7 958B 5274
+5303 63E9 69E9 73A0 78D5 95D3
+AC1D
+5580 5BA2
+AC31
+5751 7CB3 7FB9 785C 8CE1 93D7
+AC39
+91B5
+AC70
+5028 53BB 5C45 5DE8 62D2 636E 64DA 64E7 6E20 70AC
+795B 8DDD 8E1E 907D 9245 92F8 547F 661B 79EC 7B65
+7C67 80E0 8152 82E3 8392 8556 8627 88AA 88FE 99CF
+AC74
+4E7E 4EF6 5065 5DFE 5EFA 6106 6957 8171 8654 8E47
+9375 9A2B 63F5 728D 7777 8930 8B07 97AC
+AC78
+4E5E 5091 6770 6840 4E6C 6705 69A4
+AC80
+5109 528D 5292 6AA2 77BC 9210 9ED4 64BF 82A1
+AC81
+52AB 602F 8FF2 5226 5227
+AC8C
+5048 61A9 63ED
+ACA9
+64CA 683C 6A84 6FC0 8188 89A1 9694 630C 6BC4 95C3
+9ABC 9B32 9D03
+ACAC
+5805 727D 72AC 7504 7D79 7E6D 80A9 898B 8B74 9063
+9D51 6A2B 72F7 754E 7B67 7E33 7E7E 7F82 8832 9C39
+ACB0
+6289 6C7A 6F54 7D50 7F3A 8A23 73A6 89D6 95CB
+ACB8
+517C 614A 7B9D 8B19 9257 938C 5094 55DB 5C92 62D1
+6B49 7E11 84B9 9EDA 9F38
+ACBD
+4EAC 4FD3 501E 50BE 5106 52C1 52CD 537F 5770 5883
+5E9A 5F91 6176 61AC 64CE 656C 666F 66BB 66F4 6897
+6D87 7085 70F1 749F 74A5 74CA 75D9 786C 78EC 7ADF
+7AF6 7D45 7D93 8015 803F 811B 8396 8B66 8F15 9015
+93E1 9803 9838 9A5A 9BE8 518F 5244 54FD 60F8 61BC
+6243 6AA0 7162 712D 71B2 754A 7AF8 7D86 9848 7F44
+8927 8B26 99C9 9BC1 9EE5
+ACC4
+4FC2 5553 583A 5951 5B63 5C46 60B8 6212 6842 68B0
+68E8 6EAA 754C 7678 78CE 7A3D 7CFB 7E6B 7E7C 8A08
+8AA1 8C3F 968E 9DC4 5826 70D3 7608 798A 7B53 7DAE
+7E18 7F7D 846A 858A 96DE 9AFB
+ACE0
+53E4 53E9 544A 5471 56FA 59D1 5B64 5C3B 5EAB 62F7
+6537 6545 6572 66A0 67AF 69C1 6CBD 75FC 7690 777E
+7A3F 7F94 8003 80A1 818F 82E6 82FD 83F0 85C1 8831
+88B4 8AA5 8F9C 932E 96C7 9867 9AD8 9F13 4F30 51C5
+5233 5859 6772 6832 69C0 69F9 6ADC 726F 768B 76EC
+77BD 7A01 7B8D 7BD9 7CD5 7F5F 7F96 7FFA 80EF 89DA
+8A41 90DC 9164 9237 9760 9D23 9DF1
+ACE1
+54ED 659B 66F2 688F 7A40 8C37 9D60 56B3 69F2 7E20
+89F3 8F42
+ACE4
+56F0 5764 5D11 6606 68B1 68CD 6EFE 7428 889E 9BE4
+5803 5D10 6083 6346 7DC4 886E 88CD 890C 9315 95AB
+9AE1 9D7E 9DA4 9F6B
+ACE8
+6C68 9AA8 6430 69BE 77FB 9DBB
+ACF5
+4F9B 516C 5171 529F 5B54 5DE5 6050 606D 62F1 63A7
+653B 73D9 7A7A 86A3 8CA2 978F 5025 5D06 60BE 6831
+69D3 7B9C 86E9 86EC 8D1B 8DEB 91ED 9F94
+ACF6
+4E32
+ACFC
+5BE1 6208 679C 74DC 79D1 83D3 8A87 8AB2 8DE8 904E
+934B 9846 4F89 581D 5925 5938 64BE 7313 7A1E 7AA0
+874C 88F9 8E1D 9299 9A0D
+ACFD
+5ED3 69E8 85FF 90ED 6901 7668 8EA9 970D 97B9
+AD00
+51A0 5B98 5BEC 6163 68FA 6B3E 704C 742F 74D8 7BA1
+7F50 83C5 89C0 8CAB 95DC 9928 4E31 6DAB 721F 76E5
+797C 7ABE 7B66 7DB0 8F28 9327 9475 96DA 9874 9AD6
+9E1B
+AD04
+522E 605D 62EC 9002 4F78 681D 7B48 8052 9AFA 9D30
+AD11
+4F8A 5149 5321 58D9 5EE3 66E0 6D38 709A 72C2 73D6
+7B50 80F1 945B 6047 6844 6846 720C 7377 78FA 7D56
+7E8A 832A 8A86 8A91
+AD18
+5366 639B 7F6B 54BC 6302 7F63 8A7F
+AD34
+4E56 5080 584A 58DE 602A 6127 62D0 69D0 9B41 5ABF
+5EE5 6060 7470 749D 84AF 8958
+AD35
+9998
+AD49
+5B8F 7D18 80B1 8F5F 6D64 89E5 8A07 958E
+AD50
+4EA4 50D1 54AC 55AC 5B0C 5DA0 5DE7 652A 654E 6821
+6A4B 72E1 768E 77EF 7D5E 7FF9 81A0 854E 86DF 8F03
+8F4E 90CA 9903 9A55 9BAB 4F7C 5604 5610 566D 5699
+59E3 618D 649F 6648 669E 69B7 78FD 7A96 8DAB 8E7B
+9278 9AB9 9D41 9F69
+AD6C
+4E18 4E45 4E5D 4EC7 4FF1 5177 52FE 5340 53E3 53E5
+548E 5614 5775 57A2 5BC7 5D87 5ED0 61FC 62D8 6551
+67B8 67E9 69CB 6B50 6BC6 6BEC 6C42 6E9D 7078 72D7
+7396 7403 77BF 77E9 7A76 7D7F 8009 81FC 8205 820A
+82DF 8862 8B33 8CFC 8EC0 9011 90B1 9264 92B6 99D2
+9A45 9CE9 9DD7 9F9C 4F49 4F5D 4FC5 50B4 5193 52AC
+5336 53B9 53F4 5778 59E4 5ABE 5AD7 5C68 5CA3 5F40
+6235 6263 6344 6406 6473 662B 6998 6F1A 7486 750C
+759A 75C0 766F 7A9B 7AB6 7BDD 7CD7 80CA 849F 86AF
+88D8 89AF 8A6C 9058 91E6 97DD 97ED 97EE 98B6 99C8
+9B2E 9DC7 9E1C
+AD6D
+570B 5C40 83CA 97A0 97AB 9EB4 530A 63AC 8DFC 9EAF
+AD70
+541B 7A98 7FA4 88D9 8ECD 90E1 6343 687E 76B8
+AD74
+5800 5C48 6398 7A9F 5014 5D1B 6DC8 8A58
+AD81
+5BAE 5F13 7A79 7AAE 828E 8EAC 8EB3
+AD8C
+5026 5238 52F8 5377 5708 62F3 6372 6B0A 6DC3 7737
+52CC 60D3 68EC 7760 7DA3 8737
+AD90
+53A5 7357 8568 8E76 95D5
+ADA4
+673A 6AC3 6F70 8A6D 8ECC 994B 4F79 51E0 5282 5331
+6192 6485 6A3B 6C3F 7C0B 7E62 8DEA 95E0 993D 9E82
+ADC0
+6677 6B78 8CB4 9B3C
+ADDC
+53EB 572D 594E 63C6 69FB 73EA 7845 7ABA 7AC5 7CFE
+8475 898F 8D73 9035 95A8 5232 5AE2 5B00 5DCB 668C
+694F 6A1B 6F59 777D 7CFA 866C 866F 8DEC 90BD 95DA
+980D 9997
+ADE0
+52FB 5747 7547 7B60 83CC 921E 56F7 9E8F
+ADE4
+6A58
+ADF9
+514B 524B 5287 621F 68D8 6975 9699 4E9F 5C05 5C50
+90C4
+ADFC
+50C5 52A4 52E4 61C3 65A4 6839 69FF 747E 7B4B 82B9
+83EB 89B2 8B39 8FD1 9949 537A 53AA 5890 5DF9 5ED1
+6F0C 89D4 8DDF 91FF 9773
+AE08
+4ECA 5997 64D2 6611 6A8E 7434 7981 79BD 82A9 887E
+887F 895F 9326 552B 5664 5D94 7B12 9EC5
+AE09
+4F0B 53CA 6025 6271 6C72 7D1A 7D66 573E 5C8C 7680
+790F 7B08 82A8
+AE0D
+4E98 5162 77DC 80AF 4E99 6B91
+AE30
+4F01 4F0E 5176 5180 55DC 5668 573B 57FA 57FC 5914
+5947 5993 5BC4 5C90 5D0E 5DF1 5E7E 5FCC 6280 65D7
+65E3 671E 671F 675E 68CB 68C4 6A5F 6B3A 6C23 6C7D
+6C82 6DC7 7398 7426 742A 7482 74A3 7578 757F 7881
+78EF 7941 7947 7948 797A 7B95 7D00 7DBA 7F88 8006
+802D 808C 8A18 8B4F 8C48 8D77 9321 9324 98E2 9951
+9A0E 9A0F 9A65 9E92 50DB 525E 588D 5C7A 5E8B 5F03
+5FEE 612D 638E 6532 65C2 66A3 66C1 68CA 6B67 7081
+7309 79A8 7DA5 7DA6 7F87 80B5 82AA 82B0 8604 8641
+871D 87E3 8989 89AC 8DC2 9691 980E 9B10 9C2D 9ED6
+AE34
+7DCA
+AE38
+4F76 5409 62EE 6854 59DE 86E3
+AE40
+91D1
+B07D
+55AB
+B098
+513A 5A1C 61E6 62CF 62FF 90A3 6310 632A 689B 7CE5
+7CEF
+B099
+8AFE
+B09C
+6696 7156 96E3 5044 7157 8D67 992A
+B0A0
+634F 637A
+B0A8
+5357 678F 6960 6E73 7537 5583 67DF
+B0A9
+7D0D 8872
+B0AD
+56CA 5A18 66E9
+B0B4
+4E43 5167 5948 67F0 8010 5302 5976 5B2D 8FFA 9F10
+B140
+5973
+B141
+60C4
+B144
+5E74 649A 79CA 78BE
+B150
+5FF5 606C 62C8 637B
+B155
+5BE7 5BD7 4F5E 511C 5680 6FD8
+B178
+52AA 5974 5F29 6012 7459 99D1 5476 5B65 5CF1 7331
+7B2F 81D1
+B18D
+6FC3 81BF 8FB2 5102 5665 7A60 91B2
+B1CC
+60F1 8166 9912
+B1E8
+5C3F 5ACB 5B32 6DD6 78E0 88CA 9403
+B204
+5542 8028
+B208
+5AE9
+B20C
+8A25 5436 80AD
+B274
+677B 7D10 5FF8 9775
+B275
+8844
+B2A5
+80FD
+B2C8
+5C3C 6CE5 5462 6029 67C5 7962 79B0 81A9
+B2C9
+533F 6EBA 6635 66B1
+B2E4
+591A 8336 7239
+B2E8
+4E39 4EB6 4F46 55AE 5718 58C7 5F56 65B7 65E6 6A80
+6BB5 6E4D 77ED 7AEF 7C1E 7DDE 86CB 8892 9132 935B
+6171 62C5 6934 6F19 7649 8011 80C6 8176 8711
+B2EC
+64BB 6FBE 737A 75B8 9054 59B2 601B 95E5 977C 97C3
+B2F4
+5556 574D 61BA 64D4 66C7 6DE1 6E5B 6F6D 6FB9 75F0
+8043 81BD 8541 8983 8AC7 8B5A 931F 510B 5557 5649
+58B0 58DC 6BEF 79AB 7F4E 859D 90EF 9EEE 9EF5
+B2F5
+6C93 7553 7B54 8E0F 905D
+B2F9
+5510 5802 5858 5E62 6207 649E 68E0 7576 7CD6 87B3
+9EE8 5018 513B 515A 642A 6A94 6E8F 746D 74AB 77A0
+7911 87F7 8960 8B9C 93DC 943A 9933 9939
+B300
+4EE3 5788 576E 5927 5C0D 5CB1 5E36 5F85 6234 64E1
+73B3 81FA 888B 8CB8 968A 9EDB 5113 61DF 65F2 6C4F
+7893 9413
+B301
+5B85
+B355
+5FB7 60B3
+B3C4
+5012 5200 5230 5716 5835 5857 5C0E 5C60 5CF6 5D8B
+5EA6 5F92 60BC 6311 6389 6417 6843 68F9 6AC2 6DD8
+6E21 6ED4 6FE4 71FE 76DC 7779 79B1 7A3B 8404 89A9
+8CED 8DF3 8E48 9003 9014 9053 90FD 934D 9676 97DC
+53E8 58D4 5F22 5FC9 6146 638F 642F 64E3 6AAE 6D2E
+6D82 7A0C 83DF 9174 95CD 9780 97B1 9955 9F17
+B3C5
+6BD2 7006 7258 72A2 7368 7763 79BF 7BE4 7E9B 8B80
+6ADD 9EF7
+B3C8
+58A9 60C7 6566 65FD 66BE 6C8C 711E 71C9 8C5A 9813
+5F34 6F61 8E89
+B3CC
+4E6D 7A81 5484 5817
+B3D9
+4EDD 51AC 51CD 52D5 540C 61A7 6771 6850 68DF 6D1E
+6F7C 75BC 77B3 7AE5 80F4 8463 9285 4F97 50EE 54C3
+578C 5CD2 5F64 6723 6A66 6DB7 825F 82F3 833C 856B
+8740 932C 9B97
+B450
+515C 6597 675C 6793 75D8 7AC7 8373 8C46 9017 982D
+6296 6581 809A 8130 86AA 8839 9661
+B454
+5C6F 81C0 829A 9041 906F 920D 7A80 8FCD
+B458
+4E67
+B4DD
+5F97
+B4F1
+5D9D 6A59 71C8 767B 7B49 85E4 8B04 9127 9A30 51F3
+58B1 6ED5 78F4 7C50 7E22 87A3 9419
+B77C
+5587 61F6 7669 7F85 863F 87BA 88F8 908F 502E 56C9
+66EA 7630 7822 81DD 947C 9A3E 9A58
+B77D
+6D1B 70D9 73DE 7D61 843D 916A 99F1 55E0 7296
+B780
+4E82 5375 6B04 6B12 703E 721B 862D 9E1E 5B3E 5E71
+6514 7053 8974 947E 95CC
+B784
+524C 8FA3 57D2 8FA2
+B78C
+5D50 64E5 652C 6B16 6FEB 7C43 7E9C 85CD 8964 89BD
+5A6A 60CF
+B78D
+62C9 81D8 881F 945E
+B791
+5ECA 6717 6D6A 72FC 7405 746F 8782 90DE 6994 7860
+7A02 83A8 870B 95AC
+B798
+4F86 5D0D 5FA0 840A 6DF6 9A0B
+B7AD
+51B7
+B7B5
+63A0 7565 7567
+B7C9
+4EAE 5006 5169 51C9 6881 6A11 7CAE 7CB1 7CE7 826F
+8AD2 8F1B 91CF 55A8 60A2 690B 6DBC 8E09 9B4E
+B824
+4FB6 5137 52F5 5442 5EEC 616E 623E 65C5 6ADA 6FFE
+792A 85DC 8823 95AD 9A62 9A6A 9E97 9ECE 5122 53B2
+5533 68A0 7658 7CF2 8182 81DA 8821 908C 9462
+B825
+529B 66C6 6B77 701D 792B 8F62 9742 650A 6ADF 6AEA
+7667 8F63 9148
+B828
+6190 6200 6523 6F23 7149 7489 7DF4 806F 84EE 8F26
+9023 934A 5B4C 695D 6E45 81E0 93C8 9C0A 9C31
+B82C
+51BD 5217 52A3 6D0C 70C8 88C2 6312 6369 98B2
+B834
+5EC9 6582 6BAE 6FC2 7C3E 5969 7032 78CF
+B835
+7375 8E90 9B23
+B839
+4EE4 4F36 56F9 5CBA 5DBA 601C 73B2 7B2D 7F9A 7FCE
+8046 901E 9234 96F6 9748 9818 9F61 53E6 5464 59C8
+5CAD 6624 6B1E 6CE0 79E2 82D3 86C9 8EE8 9D12 9E77
+B840
+4F8B 6FA7 79AE 91B4 96B7 96B8 9C67
+B85C
+52DE 6488 64C4 6AD3 6F5E 7018 7210 76E7 8001 8606
+865C 8DEF 8F05 9732 9B6F 9DFA 9E75 58DA 6EF7 7388
+7646 7A82 826A 826B 8F64 942A 946A 9871 9AD7 9C78
+9E15
+B85D
+788C 797F 7DA0 83C9 9304 9E7F 9E93 5725 5F54 6DE5
+6F09 7C0F 8F46 9A04
+B860
+8AD6
+B871
+58DF 5F04 6727 7027 74CF 7C60 807E 5131 650F 66E8
+7931 8622 96B4 9F8E
+B8B0
+5121 7028 7262 78CA 8CC2 8CDA 8CF4 96F7 6502 790C
+7927 7C5F 7E87 7F4D 8012 857E 8A84 9179 9842
+B8CC
+4E86 50DA 5BEE 5ED6 6599 71CE 7642 77AD 804A 84FC
+907C 9B27 5639 5AFD 64A9 66B8 6F66 7360 7E5A 818B
+91AA 9410 98C2 98C9
+B8E1
+9F8D 9F92
+B8E8
+58D8 5A41 5C62 6A13 6DDA 6F0F 763B 7D2F 7E37 851E
+8938 93E4 964B 50C2 560D 5D81 617A 802C 87BB 9ACF
+B958
+5289 65D2 67F3 69B4 6D41 6E9C 700F 7409 7460 7559
+7624 786B 8B2C 985E 6A4A 7E32 7E8D 905B 9DB9
+B959
+516D 622E 9678 52E0
+B95C
+4F96 502B 5D19 6DEA 7DB8 8F2A 6384
+B960
+5F8B 6144 6817 5D42 6EA7
+B96D
+9686 7643 7ABF
+B975
+52D2 808B 6CD0
+B984
+51DC 51DB 5EE9 6F9F
+B989
+51CC 695E 7A1C 7DBE 83F1 9675 5030 8506
+B9AC
+4FDA 5229 5398 540F 550E 5C65 60A7 674E 68A8 6D6C
+7281 72F8 7406 7483 75E2 7C6C 7F79 7FB8 8389 88CF
+88E1 91CC 91D0 96E2 9BC9 4FD0 527A 54E9 5AE0 6D96
+6F13 79BB 8385 870A 87AD 8C8D 9090 9B51 9ED0
+B9B0
+541D 6F7E 71D0 7498 85FA 8EAA 96A3 9C57 9E9F 5D99
+608B 735C 78F7 7CA6 7CBC 7E57 8E99 8F54 9130 93FB
+9A4E
+B9BC
+6797 6DCB 7433 81E8 9716 75F3
+B9BD
+782C 7ACB 7B20 7C92 5CA6
+B9C8
+6469 746A 75F2 78BC 78E8 99AC 9B54 9EBB 5298 5ABD
+879E 87C7 9EBD 9EBF
+B9C9
+5BDE 5E55 6F20 819C 83AB 9088 7799 93CC
+B9CC
+4E07 534D 5A29 5DD2 5F4E 6162 633D 6669 66FC 6EFF
+6F2B 7063 779E 842C 8513 883B 8F13 9945 9C3B 5881
+5ADA 5E54 7E35 8B3E 8E63 93CB 93DD 9B18
+B9D0
+551C 62B9 672B 6CAB 8309 896A 977A 5E15 79E3
+B9DD
+4EA1 5984 5FD8 5FD9 671B 7DB2 7F54 8292 832B 83BD
+8F1E 9099 60D8 6C52 6F2D 83BE 87D2 9B4D
+B9E4
+57CB 59B9 5A92 5BD0 6627 679A 6885 6BCF 7164 7F75
+8CB7 8CE3 9081 9B45 5446 6973 6CAC 73AB 771B 82FA
+8393 9176 9709
+B9E5
+8108 8C8A 964C 9A40 9EA5 8109 8C83 8C98
+B9F9
+5B5F 6C13 731B 76F2 76DF 840C 511A 750D 753F 867B
+BA71
+51AA 8993 5E4E 7CF8
+BA74
+514D 5195 52C9 68C9 6C94 7704 7720 7DBF 7DEC 9762
+9EB5 4FDB 6E4E 7CC6 7DDC 9EAA
+BA78
+6EC5 8511 7BFE 884A
+BA85
+51A5 540D 547D 660E 669D 6927 6E9F 76BF 7791 8317
+84C2 879F 9169 9298 9CF4 6D3A
+BA8C
+8882
+BAA8
+4FAE 5192 52DF 59C6 5E3D 6155 6478 6479 66AE 67D0
+6A21 6BCD 6BDB 725F 7261 7441 7738 77DB 8017 82BC
+8305 8B00 8B28 8C8C 4F94 59E5 5AA2 5AEB 6048 65C4
+7683 770A 7C8D 7CE2 8004 8765 87CA 927E 9AE6
+BAA9
+6728 6C90 7267 76EE 7766 7A46 9DA9 51E9 82DC
+BAB0
+6B7F 6C92
+BABD
+5922 6726 8499 5E6A 61DE 66DA 6E95 6FDB 77A2 77C7
+8268 96FA 9E0F
+BB18
+536F 5893 5999 5EDF 63CF 6634 6773 6E3A 732B 7AD7
+82D7 9328 6DFC 7707 85D0 8C93
+BB34
+52D9 5DEB 61AE 61CB 620A 62C7 64AB 65E0 6959 6B66
+6BCB 7121 73F7 755D 7E46 821E 8302 856A 8AA3 8CBF
+9727 9D61 511B 5638 5EE1 81B4 9A16
+BB35
+58A8 9ED8 563F
+BB38
+5011 520E 543B 554F 6587 6C76 7D0A 7D0B 805E 868A
+9580 96EF 5301 6097 61E3 6286 636B 7086 748A
+BB3C
+52FF 6C95 7269
+BBF8
+5473 5A9A 5C3E 5D4B 5F4C 5FAE 672A 68B6 6963 6E3C
+6E44 7709 7C73 7F8E 8587 8B0E 8FF7 9761 9EF4 4EB9
+5A13 5A84 5ABA 5F25 5F2D 6549 7030 737C 7CDC 7E3B
+82FF 863C 9E8B
+BBFC
+5CB7 60B6 610D 61AB 654F 65FB 65FC 6C11 6CEF 739F
+73C9 7DE1 9594 5FDE 5FDF 668B 6E63 7DCD 7F60 82E0
+95A9 9C35 9EFD
+BC00
+5BC6 871C 8B10 6A12 6EF5
+BC15
+525D 535A 62CD 640F 64B2 6734 6A38 6CCA 73C0 749E
+7B94 7C95 7E1B 818A 8236 8584 8FEB 96F9 99C1 4EB3
+6B02 7254 939B 99EE 9AC6
+BC18
+4F34 534A 53CD 53DB 62CC 642C 6500 6591 69C3 6CEE
+6F58 73ED 7554 7622 76E4 76FC 78D0 78FB 792C 7D46
+822C 87E0 8FD4 9812 98EF 5ABB 6273 642B 653D 670C
+80D6 878C 9816
+BC1C
+52C3 62D4 64A5 6E24 6F51 767C 8DCB 91B1 9262 9AEE
+9B43 54F1 6D61 8116 9238 9D53
+BC29
+5023 508D 574A 59A8 5C28 5E47 5F77 623F 653E 65B9
+65C1 6609 678B 699C 6EC2 78C5 7D21 80AA 8180 822B
+82B3 84A1 868C 8A2A 8B17 90A6 9632 9F90 4EFF 5396
+5E6B 5FAC 6412 65CA 6886 7253 823D 8783 938A 9AE3
+9B74
+BC30
+500D 4FF3 57F9 5F98 62DC 6392 676F 6E43 7119 76C3
+80CC 80DA 88F4 88F5 8919 8CE0 8F29 914D 966A 574F
+576F 6252 7432 84D3
+BC31
+4F2F 4F70 5E1B 67CF 6822 767D 767E 9B44 7CA8
+BC88
+5E61 6A0A 7169 71D4 756A 7E41 8543 85E9 98DC 7E59
+7FFB 81B0 8629 88A2
+BC8C
+4F10 7B4F 7F70 95A5 6A43 7F78
+BC94
+51E1 5E06 68B5 6C3E 6C4E 6CDB 72AF 7BC4 8303 7B35
+8A09 98BF
+BC95
+6CD5 743A
+BCBD
+50FB 5288 58C1 64D8 6A97 74A7 7656 78A7 8617 95E2
+9739 64D7 7513 7588 895E 9DFF 9F0A
+BCC0
+535E 5F01 8B8A 8FA8 8FAF 908A 5FED 6283 7C69 8FAE
+8141 8CC6 99E2 9ABF 9D18
+BCC4
+5225 77A5 9C49 9F08 5F46 9DE9
+BCD1
+4E19 5002 5175 5C5B 5E77 661E 663A 67C4 68C5 70B3
+7501 75C5 79C9 7ADD 8F27 9920 9A08 4E26 5840 7D63
+7F3E 8FF8 9235 92F2 927C
+BCF4
+4FDD 5821 5831 5BF6 666E 6B65 6D11 6E7A 6F7D 73E4
+752B 83E9 88DC 8913 8B5C 8F14 4FCC 76D9 7C20 8446
+974C 9D07 9EFC
+BCF5
+4F0F 50D5 5310 535C 5B93 5FA9 670D 798F 8179 832F
+8514 8907 8986 8F39 8F3B 99A5 9C12 58A3 5E5E 6251
+6FEE 7B99 83D4 8760 876E 9D69
+BCF8
+672C
+BCFC
+4E76
+BD09
+4FF8 5949 5C01 5CEF 5CF0 6367 68D2 70FD 71A2 742B
+7E2B 84EC 8702 9022 92D2 9CF3 4E30 5906 7BF7 7D98
+83F6 9D0C
+BD80
+4E0D 4ED8 4FEF 5085 5256 526F 5426 5490 57E0 592B
+5A66 5B5A 5B75 5BCC 5E9C 6276 6577 65A7 6D6E 6EA5
+7236 7B26 7C3F 7F36 8150 8151 819A 8240 8299 83A9
+8A03 8CA0 8CE6 8CFB 8D74 8DBA 90E8 91DC 961C 9644
+99D9 9CE7 4EC6 4FD8 5A8D 6294 62CA 638A 6874 6991
+6DAA 739E 7954 7B5F 7F58 7F66 80D5 82A3 82FB 8500
+86A8 8709 889D 88D2 8DD7 9207 982B 9B92 9EA9
+BD81
+5317
+BD84
+5206 5429 5674 58B3 5954 596E 5FFF 61A4 626E 6610
+6C7E 711A 76C6 7C89 7CDE 7D1B 82AC 8CC1 96F0 4F53
+574C 5E09 678C 68FB 68FC 6C1B 6E53 6FC6 7287 755A
+780F 7B28 80A6 81B9 8561 8F52 9EFA 9F22
+BD88
+4F5B 5F17 5F7F 62C2 5CAA 7953 7D31 8274 8300 97CD
+9AF4 9EFB
+BD95
+5D29 670B 68DA 787C 7E43 9D6C 580B 6F30 9B05
+BE44
+4E15 5099 5315 532A 5351 5983 5A62 5E87 60B2 618A
+6249 6279 6590 6787 69A7 6BD4 6BD6 6BD7 6BD8 6CB8
+7435 75FA 7812 7891 79D5 79D8 7C83 7DCB 7FE1 80A5
+813E 81C2 83F2 871A 88E8 8AB9 8B6C 8CBB 9119 975E
+98DB 9F3B 4EF3 4FFE 5255 572E 57E4 59A3 5C41 5EB3
+60B1 68D0 6911 6C98 6DDD 6DE0 6FDE 72C9 72D2 75DE
+75F9 7765 7955 7BE6 7D15 7F86 8153 8298 82BE 8406
+84D6 868D 8C94 8D14 8F61 90B3 90EB 959F 9674 970F
+97B4 9A11 9A1B 9AC0 9F19
+BE48
+56AC 5B2A 5F6C 658C 6AB3 6BAF 6D5C 6FF1 7015 725D
+73AD 8CA7 8CD3 983B 5110 64EF 77C9 7E7D 81CF 860B
+8C73 90A0 944C 9726 9870 9B02 9B22
+BE59
+6191 6C37 8058 9A01 51B0 51ED 51F4 5A09
+C0AC
+4E4D 4E8B 4E9B 4ED5 4F3A 4F3C 4F7F 4FDF 50FF 53F2
+53F8 5506 55E3 56DB 58EB 5962 5A11 5BEB 5BFA 5C04
+5DF3 5E2B 5F99 601D 6368 659C 65AF 67F6 67FB 68AD
+6B7B 6C99 6CD7 6E23 7009 7345 7802 793E 7940 7960
+79C1 7BE9 7D17 7D72 8086 820D 838E 84D1 86C7 88DF
+8A50 8A5E 8B1D 8CDC 8D66 8FAD 90AA 98FC 99DF 9E9D
+509E 525A 5378 548B 59D2 6942 69AD 6C5C 75E7 76B6
+7AE2 7B25 7F37 8721 8997 99DB 9B66 9BCA 9C24
+C0AD
+524A 6714 69CA 720D 84B4 9460
+C0B0
+5098 522A 5C71 6563 6C55 73CA 7523 759D 7B97 849C
+9178 9730 5277 59CD 5B7F 6A75 6F78 6F98 72FB 7E56
+8A15 93DF 958A 6BFF
+C0B4
+4E77 6492 6BBA 715E 85A9
+C0BC
+4E09 6749 68EE 6E17 829F 8518 886B 7CDD 91E4 9B16
+C0BD
+63F7 6F81 9212 98AF 5345 553C 6B43 7FE3 9364 9705
+970E
+C0C1
+4E0A 50B7 50CF 511F 5546 55AA 5617 5B40 5C19 5CE0
+5E38 5E8A 5EA0 5EC2 60F3 6851 6A61 6E58 723D 7240
+72C0 76F8 7965 7BB1 7FD4 88F3 89F4 8A73 8C61 8CDE
+971C 587D 5F9C 664C 6BA4 751E 7DD7 939F 9859 9B3A
+C0C8
+585E 74BD 8CFD 9C13
+C0C9
+55C7 7A61 7D22 8272 69ED 6FC7 7012
+C0DD
+7272 751F 7525 7B19 771A 924E
+C11C
+5885 58FB 5DBC 5E8F 5EB6 5F90 6055 6292 637F 654D
+6691 66D9 66F8 6816 68F2 7280 745E 7B6E 7D6E 7DD6
+7F72 80E5 8212 85AF 897F 8A93 901D 92E4 9ECD 9F20
+566C 5A7F 63DF 6495 6E51 6FA8 7D13 8021 82A7 924F
+C11D
+5915 596D 5E2D 60DC 6614 6673 6790 6C50 6DC5 6F5F
+77F3 78A9 84C6 91CB 932B 6670 77FD 814A 8203 8725
+9250 9F2B
+C120
+4ED9 50CA 5148 5584 5B0B 5BA3 6247 657E 65CB 6E32
+717D 7401 7444 7487 74BF 766C 79AA 7DDA 7E55 7FA8
+817A 81B3 8239 861A 87EC 8A75 8DE3 9078 9291 9425
+994D 9BAE 58A1 5AD9 5C1F 5C20 5C73 6103 6B5A 71AF
+7B45 7DAB 8B54 8B71 93C7 9A38 9C53 9C7B
+C124
+5368 5C51 6954 6CC4 6D29 6E2B 820C 859B 893B 8A2D
+8AAA 96EA 9F67 5070 5A9F 63F2 66AC 7207 789F 7A27
+7D32
+C12C
+5261 66B9 6BB2 7E96 87FE 8D0D 9583 965D 5B45 61B8
+647B 7752 8B6B 929B 97F1
+C12D
+651D 6D89 71EE 56C1 61FE 7044 8076 8EA1 9477 9873
+C131
+57CE 59D3 5BAC 6027 60FA 6210 661F 665F 7329 73F9
+76DB 7701 7B6C 8056 8072 8165 8AA0 9192 7446 9A02
+C138
+4E16 52E2 6B72 6D17 7A05 7B39 7D30 8CB0 5E28 6D12
+7E50 86FB
+C18C
+53EC 562F 5851 5BB5 5C0F 5C11 5DE2 6240 6383 6414
+662D 68B3 6CBC 6D88 6EAF 701F 70A4 71D2 7526 758F
+758E 7619 7B11 7BE0 7C2B 7D20 7D39 852C 856D 8607
+8A34 900D 9061 90B5 92B7 97F6 9A37 4F4B 4FCF 5372
+55C9 57FD 5850 612C 634E 6A14 6CDD 7B71 7BBE 7E45
+7FDB 8186 8258 86F8 8E08 9165 9704 9B48 9BB9 9C3A
+C18D
+4FD7 5C6C 675F 6D91 7C9F 7E8C 8B16 8D16 901F 6D2C
+906C
+C190
+5B6B 5DFD 640D 84C0 905C 98E1 98E7 98F1
+C194
+7387 7AA3 87C0
+C1A1
+5B8B 609A 677E 6DDE 8A1F 8AA6 9001 980C 67D7 7AE6
+9B06
+C1C4
+5237 7051 788E 9396 60E2 66EC 7463
+C1E0
+8870 91D7
+C218
+4FEE 53D7 55FD 56DA 5782 58FD 5AC2 5B88 5CAB 5CC0
+5E25 6101 620D 624B 6388 641C 6536 6578 6A39 6B8A
+6C34 6D19 6F31 71E7 72E9 7378 7407 74B2 7626 7761
+79C0 7A57 7AEA 7CB9 7D8F 7DAC 7E61 7F9E 8129 8331
+8490 84DA 85EA 8896 8AB0 8B90 8F38 9042 9083 916C
+9296 92B9 968B 96A7 96A8 96D6 9700 9808 9996 9AD3
+9B1A 53DF 552E 5ECB 666C 6BB3 6CC5 6EB2 6FC9 775F
+7762 778D 795F 7C54 813A 8184 81B8 8B8E 8C4E 9672
+98BC 9948
+C219
+53D4 587E 5919 5B70 5BBF 6DD1 6F5A 719F 7421 74B9
+8085 83FD 4FF6 500F 5135 5A4C 6A5A 9A4C 9DEB
+C21C
+5DE1 5F87 5FAA 6042 65EC 6812 696F 6A53 6B89 6D35
+6DF3 73E3 76FE 77AC 7B4D 7D14 8123 821C 8340 84F4
+8563 8A62 8AC4 9187 931E 9806 99B4 4F9A 72E5 76F9
+7734 7D03 80AB 99E8 9B0A 9D89
+C220
+620C 8853 8FF0 9265 7D49
+C22D
+5D07 5D27 5D69 83D8
+C26C
+5005 6DEC 7120
+C2AC
+745F 819D 8768 8671
+C2B5
+6FD5 62FE 7FD2 8936 8972 6174 71A0 96B0
+C2B9
+4E1E 4E58 50E7 52DD 5347 627F 6607 7E69 8805 965E
+584D 9B19
+C2DC
+4F8D 5319 5636 59CB 5AA4 5C38 5C4E 5C4D 5E02 5F11
+6043 65BD 662F 6642 67BE 67F4 731C 77E2 793A 7FC5
+8494 84CD 8996 8A66 8A69 8AE1 8C55 8C7A 5072 5155
+53AE 557B 5852 5EDD 67B2 67F9 6F8C 7DE6 7FE4 8ADF
+8AF0 8C49 91C3 9349 984B
+C2DD
+57F4 5BD4 5F0F 606F 62ED 690D 6B96 6E5C 7184 7BD2
+8755 8B58 8EFE 98DF 98FE 55B0 5AB3 683B
+C2E0
+4F38 4F81 4FE1 547B 5A20 5BB8 613C 65B0 6668 71FC
+7533 795E 7D33 814E 81E3 8398 85AA 85CE 8703 8A0A
+8EAB 8F9B 8FC5 54C2 567A 56DF 59FA 6C5B 77E7 8124
+8D10 9823 99EA
+C2E4
+5931 5BA4 5BE6 6089 87CB 98CB
+C2EC
+5BE9 5C0B 5FC3 6C81 6DF1 700B 751A 82AF 8AF6 68A3
+6F6F 71D6 845A 9414 9C4F
+C2ED
+4EC0 5341 8FBB
+C30D
+96D9
+C528
+6C0F
+C544
+4E9E 4FC4 5152 555E 5A25 5CE8 6211 7259 82BD 83AA
+86FE 8859 8A1D 963F 96C5 9913 9D09 9D5D 4E2B 54E6
+5A3F 5A40 5CE9 75B4 7811 7B0C 8FD3 930F 9D5E
+C545
+580A 5CB3 5DBD 5E44 60E1 6115 63E1 6A02 6E25 9102
+9354 984E 9C10 9F77 5053 537E 54A2 5594 5669 816D
+843C 89A8 8AE4 9D9A 9F76
+C548
+5B89 5CB8 6309 664F 6848 773C 96C1 978D 9854 9B9F
+6849 72B4 8D0B 9D08
+C54C
+65A1 8B01 8ECB 95BC 560E 621E 63E0 7A75 8A10 904F
+981E 9D36
+C554
+5535 5CA9 5DD6 5EB5 6697 764C 83F4 95C7 557D 5A95
+5D53 667B 8164 844A 84ED 8AF3 9837 99A3 9EEF
+C555
+58D3 62BC 72CE 9D28
+C559
+4EF0 592E 600F 663B 6B83 79E7 9D26 536C 5771 6CF1
+76CE 9785
+C560
+5393 54C0 57C3 5D16 611B 66D6 6DAF 788D 827E 9698
+9744 50FE 5509 5540 566F 5A2D 5D15 6328 6371 6B38
+6F04 7343 769A 775A 77B9 78D1 7919 8586 85F9 9749
+9A03
+C561
+5384 627C 6396 6DB2 7E0A 814B 984D 545D 6239 6424
+9628
+C575
+6AFB 7F4C 9DAF 9E1A 56B6 5AC8 7F43 9DEA
+C57C
+4E5F 503B 51B6 591C 60F9 63F6 6930 723A 8036 91CE
+57DC
+C57D
+5F31 7D04 82E5 846F 84BB 85E5 8E8D 721A 79B4 7BDB
+7C65 9470 9C2F 9DB8 9FA0
+C591
+4F6F 58E4 5B43 6059 63DA 6518 656D 6698 694A 6A23
+6D0B 7001 716C 75D2 760D 79B3 7A70 7F8A 8944 8B93
+91C0 967D 990A 5F89 6F3E 703C 70CA 7662 773B 8618
+8F30 9472 98BA 9A64
+C5B4
+5704 5FA1 65BC 6F01 7600 79A6 8A9E 99AD 9B5A 9F6C
+5709 6554 6DE4 98EB
+C5B5
+5104 61B6 6291 6A8D 81C6 7E76
+C5B8
+5043 5830 5F66 7109 8A00 8AFA 50BF 533D 5AE3 8B9E
+9122 9F34 9F39
+C5BC
+5B7C 8616 81EC
+C5C4
+4FFA 513C 56B4 5944 63A9 6DF9 5D26 5E7F 66EE 7F68
+9183 95B9
+C5C5
+5DAA 696D 5DAB 9134
+C5D0
+605A 66C0
+C5D4
+5186
+C5EC
+4E88 4F59 5982 6B5F 6C5D 74B5 7916 8207 8245 8339
+8F3F 8F5D 9918 8201
+C5ED
+4EA6 57DF 5F79 6613 75AB 7E79 8B6F 9006 9A5B 5DA7
+61CC 6DE2 95BE
+C5F0
+56A5 5827 59F8 5A1F 5BB4 5EF6 6350 633B 693D 6C87
+6CBF 6D8E 6D93 6DF5 6F14 70DF 7136 7159 71C3 71D5
+784F 786F 7B75 7DE3 7E2F 884D 8EDF 925B 9CF6 5157
+56E6 57CF 5B3F 6081 63BE 66E3 6ADE 6E37 81D9 839A
+8735 8815 8B8C 9DF0
+C5F4
+6085 6D85 71B1 95B1 564E
+C5FC
+53AD 67D3 708E 7130 7430 8276 82D2 95BB 9AE5 9E7D
+5189 5869 61D5 624A 6ABF 6AB6 704E 7069 91C5 995C
+9B58 9EF6
+C5FD
+66C4 71C1 8449 66C5 7180 7217 9768
+C601
+584B 5DB8 5F71 6620 668E 6979 69AE 6C38 6CF3 6E36
+6F41 6FDA 701B 702F 7150 71DF 7370 745B 74D4 76C8
+7A4E 7E93 82F1 8A60 8FCE 9348 9719 548F 5B34 5B30
+6D67 6FF4 766D 78A4 7E08 8811 8D0F 90E2 97FA
+C608
+4E42 502A 5208 53E1 66F3 6C6D 6FCA 730A 777F 7A62
+82AE 85DD 8602 88D4 8A63 8B7D 8C6B 92B3 9713 9810
+56C8 5ADB 62FD 639C 6798 7369 7768 7796 7E44 7FF3
+82C5 854A 854B 8589 868B 873A 9BE2 9DD6 9E91
+C624
+4E94 4F0D 4FC9 50B2 5348 543E 5433 55DA 5862 58BA
+5967 5A1B 5BE4 609F 61CA 6556 65FF 6664 68A7 6C5A
+6FB3 70CF 71AC 7352 7B7D 8708 8AA4 9C32 9F07 4EF5
+4FE3 5514 55F7 5641 572C 5AAA 5AEF 5FE4 6160 6342
+6C59 7AB9 8071 8323 8956 8B37 8FC3 8FD5 9068 93CA
+93D6 96A9 9A41 9F2F
+C625
+5C4B 6C83 7344 7389 923A
+C628
+6EAB 7465 761F 7A69 7E15 860A 5ABC 614D 6637 6C33
+7185 8580 8F40 919E 97DE 9942 9C2E
+C62C
+5140 55E2 8183
+C639
+58C5 64C1 74EE 7515 7670 7FC1 9095 96CD 9954 5581
+5EF1 6EC3 7655 79BA 7F4B 84CA 96DD 9852
+C640
+6E26 74E6 7AA9 7AAA 81E5 86D9 8778 8A1B 54C7 56EE
+5A50 6799 6D3C 7327 7A8A 8435 8B4C
+C644
+5A49 5B8C 5B9B 68A1 6900 6D63 73A9 7413 742C 7897
+7DE9 7FEB 8118 8155 839E 8C4C 962E 9811 5213 57B8
+59A7 5C8F 5FE8 60CB 6DB4 76CC
+C648
+66F0
+C655
+5F80 65FA 6789 6C6A 738B 5C2B 7007 8FEC
+C65C
+502D 5A03 6B6A 77EE 5AA7
+C678
+5916 5D6C 5DCD 7325 754F 504E 5D34 5D54 6E28 7168
+78A8 78C8 8075 9697
+C694
+50E5 51F9 582F 592D 5996 59DA 5BE5 5DA2 62D7 6416
+6493 64FE 66DC 6A48 71FF 7464 7A88 7AAF 7E47 7E5E
+8000 8170 87EF 8981 8B20 9059 9080 9952 5060 5593
+5773 589D 5B08 5E7A 5FAD 5FBC 6B80 6F86 7945 7A7E
+7A85 8558 9076 9DC2
+C695
+617E 6B32 6D74 7E1F 8925 8FB1 6EBD 84D0
+C6A9
+4FD1 50AD 5197 52C7 57C7 5889 5BB9 5EB8 6142 6995
+6D8C 6E67 6EB6 7194 7462 7528 752C 8073 8338 84C9
+8E0A 9394 93DE 509B 5B82 5D71 6175 6183 69E6 7867
+8202 86F9 8E34
+C6B0
+4E8E 4F51 5076 512A 53C8 53CB 53F3 5B87 5BD3 5C24
+611A 6182 65F4 725B 7397 7440 76C2 7950 7991 79B9
+7D06 7FBD 828B 85D5 865E 8FC2 9047 90F5 91EA 9685
+96E8 96E9 4E8F 4EB4 4FC1 504A 5401 5823 5D4E 5EBD
+6745 75A3 76F1 7AFD 8026 8030 8B23 8E3D 935D 9E80
+9E8C 9F72
+C6B1
+52D6 5F67 65ED 6631 682F 715C 7A36 90C1 980A 71E0
+C6B4
+4E91 6A52 6B9E 6F90 7189 8018 82B8 8553 904B 9695
+96F2 97FB 60F2 6C84 7BD4 7D1C 9723 97F5
+C6B8
+851A 9B31 4E90
+C6C5
+718A 96C4
+C6D0
+5143 539F 54E1 5713 5712 57A3 5A9B 5AC4 5BC3 6028
+613F 63F4 6C85 6D39 6E72 6E90 7230 733F 7457 82D1
+8881 8F45 9060 9662 9858 9D1B 51A4 571C 676C 6965
+7328 7DA9 82AB 8597 873F 8B1C 92FA 9A35 9D77 9EFF
+C6D4
+6708 8D8A 925E 5216 7CA4
+C704
+4F4D 5049 50DE 5371 570D 59D4 5A01 5C09 6170 6690
+6E2D 7232 744B 7DEF 80C3 840E 8466 853F 875F 885B
+8918 8B02 9055 97CB 9B4F 559F 5E43 7152 71A8 75FF
+8473 885E 8AC9 9036 95C8 97D9 97E1 9927 9AAA
+C720
+4E73 4F91 5112 516A 552F 55A9 5B7A 5BA5 5E7C 5E7D
+5EBE 60A0 60DF 6108 6109 63C4 6538 6709 67D4 67DA
+6961 6962 6CB9 6D27 6E38 6FE1 7336 7337 745C 7531
+7652 7DAD 81FE 8438 88D5 8A98 8ADB 8AED 8E30 8E42
+904A 903E 907A 9149 91C9 936E 5198 5466 56FF 58DD
+5E37 63C9 65BF 6CD1 7256 7609 7610 7AAC 7AB3 7C72
+7CC5 7DCC 8174 83A0 8555 8564 86B0 86B4 8764 8915
+8B89 900C 97A3 9BAA 9EDD 9F2C 9FA5
+C721
+5809 6BD3 8089 80B2 5125
+C724
+5141 596B 5C39 6F64 73A7 80E4 8D07 9217 958F 6600
+92C6
+C728
+807F 6F4F 77DE
+C735
+620E 701C 7D68 878D 72E8
+C740
+57A0 6069 6147 6BB7 8ABE 9280 96B1 542C 569A 5701
+57BD 6196 6ABC 6EB5 72FA 73E2 766E 8A14 911E 9F57
+C744
+4E59 9CE6
+C74C
+541F 6DEB 852D 9670 97F3 98EE 5591 5D1F 5ED5 6114
+972A
+C74D
+63D6 6CE3 9091 6092 6339 6D65
+C751
+51DD 61C9 81BA 9DF9
+C758
+4F9D 501A 5100 5B9C 610F 61FF 64EC 6905 6BC5 7591
+77E3 7FA9 8264 858F 87FB 8863 8ABC 8B70 91AB 5117
+51D2 5293 5DB7 6B39 6F2A 7317 7912 8798 9950
+C774
+4E8C 4EE5 4F0A 5937 59E8 5DF2 5F1B 5F5B 6021 723E
+73E5 7570 75CD 79FB 800C 8033 8084 82E1 8351 8CBD
+8CB3 9087 98F4 990C 54BF 5768 5C14 5F5D 682E 6D1F
+73C6 8A11 8A51 8FE4 96B6
+C775
+7037 76CA 7FCA 7FCC 7FFC 8B1A 5F0B 71A4 9DC1
+C778
+4EBA 4EC1 5203 5370 54BD 56E0 59FB 5BC5 5F15 5FCD
+6E6E 7D6A 8335 8693 8A8D 976D 9777 4EDE 5819 5924
+5A63 6268 6C24 6D07 798B 7C7E 82A2 88C0
+C77C
+4E00 4F5A 4F7E 58F9 65E5 6EA2 9038 93B0 99B9 6CC6
+8EFC
+C784
+4EFB 58EC 598A 59D9 6041 7A14 834F 8CC3 7D4D 887D
+928B 98EA
+C785
+5165 5344 5EFF
+C789
+4ECD 5269 5B55 82BF 5AB5
+C790
+4ED4 523A 54A8 59C9 59FF 5B50 5B57 5B5C 6063 6148
+6ECB 7099 716E 7386 74F7 75B5 78C1 7D2B 8005 81EA
+8328 8517 85C9 8AEE 8CC7 96CC 5470 5B28 5B56 5B76
+67D8 6CDA 7278 7725 7726 7CA2 8014 80FE 8308 8332
+83BF 8678 89DC 8A3E 8CB2 8D6D 93A1 983F 9AED 9B93
+9DBF 9DD3
+C791
+4F5C 52FA 56BC 65AB 6628 707C 70B8 7235 7DBD 828D
+914C 96C0 9D72 5C9D 600D 65B1 67DE 6C4B 712F 72B3
+788F
+C794
+5B71 68E7 6B98 6F7A 76DE 5257 6214 9A4F
+C7A0
+5C91 66AB 6F5B 7BB4 7C2A 8836 6D94 6F5C 6FF3
+C7A1
+96DC 5361 56C3 7728 78FC 894D
+C7A5
+4E08 4ED7 5320 5834 58BB 58EF 596C 5C07 5E33 5E84
+5F35 638C 66B2 6756 6A1F 6AA3 6B0C 6F3F 7246 7350
+748B 7AE0 7CA7 8178 81DF 81E7 838A 846C 8523 8594
+85CF 88DD 8D13 91AC 9577 969C 50BD 5958 599D 5B19
+5D82 5EE7 6215 6F33 7242 7634 7CDA 7F98 8407 88C5
+8CEC 9123 93D8 9926 9E9E
+C7AC
+518D 54C9 5728 5BB0 624D 6750 683D 6893 6E3D 6ED3
+707D 7E21 88C1 8CA1 8F09 9F4B 9F4E 5908 5D3D 6257
+699F 707E 7E94
+C7C1
+722D 7B8F 8ACD 931A 5D22 7319 7424 9397
+C800
+4F47 4F4E 5132 5480 59D0 5E95 62B5 6775 696E 6A17
+6CAE 6E1A 72D9 732A 75BD 7BB8 7D35 82E7 83F9 8457
+85F7 8A5B 8CAF 8E87 9019 90B8 96CE 9F5F 5B81 5CA8
+677C 67E2 6C10 6F74 7026 7274 7F5D 7F9D 82F4 86C6
+889B 891A 89DD 8A46 8C6C 967C
+C801
+52E3 540A 5AE1 5BC2 6458 6575 6EF4 72C4 7684 7A4D
+7B1B 7C4D 7E3E 7FDF 837B 8B2B 8CCA 8D64 8DE1 8E5F
+8FEA 8FF9 9069 93D1 6A00 78E7 7CF4 83C2 89BF 9016
+99B0
+C804
+4F43 4F7A 50B3 5168 5178 524D 526A 5861 587C 5960
+5C08 5C55 5EDB 609B 6230 6813 6BBF 6C08 6FB1 714E
+7420 7530 7538 7551 7672 7B4C 7B8B 7BAD 7BC6 7E8F
+8A6E 8F3E 8F49 923F 9293 9322 942B 96FB 985A 986B
+991E 542E 56C0 5AE5 5C47 5DD3 6229 63C3 65C3 6834
+69C7 6E54 6FB6 724B 7471 750E 754B 7560 75CA 765C
+78DA 7C5B 7FB6 7FE6 8146 819E 8343 8E94 8F07 9085
+913D 92D1 932A 975B 9766 9853 98E6 9930 9B0B 9C63
+9E07
+C808
+5207 622A 6298 6D59 7664 7ACA 7BC0 7D76 5C8A 6662
+7A83
+C810
+5360 5CBE 5E97 6F38 70B9 7C98 9711 9B8E 9EDE 4F54
+588A 73B7 7B18 7C1F 82EB 852A 86C5 8998 98AD 9ECF
+C811
+63A5 647A 8776 6904 696A 8728 8DD5 8E40 9C08
+C815
+4E01 4E95 4EAD 505C 5075 5448 59C3 5B9A 5E40 5EAD
+5EF7 5F81 60C5 633A 653F 6574 65CC 6676 6678 67FE
+6968 6A89 6B63 6C40 6DC0 6DE8 6E1F 6E5E 701E 70A1
+738E 73FD 753A 775B 7887 798E 7A0B 7A7D 7CBE 7D8E
+8247 8A02 8AEA 8C9E 912D 914A 91D8 9266 92CC 9320
+9706 9756 975C 9802 9F0E 4F42 53EE 5A67 5A77 6014
+639F 686F 6883 68D6 706F 73F5 7594 7B73 839B 8A3C
+9049 9172 92E5 975A
+C81C
+5236 5291 557C 5824 5E1D 5F1F 608C 63D0 68AF 6FDF
+796D 7B2C 81CD 85BA 88FD 8AF8 8E44 918D 9664 969B
+973D 984C 9F4A 5115 5A23 64E0 7318 7445 7747 7994
+7A0A 7DF9 8E36 8E4F 8E8B 9357 9684 97F2 9BA7 9BF7
+C870
+4FCE 5146 51CB 52A9 5632 5F14 5F6B 63AA 64CD 65E9
+6641 66FA 66F9 671D 689D 68D7 69FD 6F15 6F6E 7167
+71E5 722A 74AA 773A 7956 795A 79DF 7A20 7A95 7C97
+7CDF 7D44 7E70 8087 85FB 86A4 8A54 8ABF 8D99 8E81
+9020 906D 91E3 963B 96D5 9CE5 4F7B 50AE 5201 539D
+5608 566A 5B25 5F82 61C6 627E 6B82 6FA1 7431 7681
+7967 7AC8 7B0A 7CD9 7CF6 7D69 7D5B 80D9 81CA 825A
+8526 8729 8A82 8B5F 921F 929A 92FD 9BDB 9D70 9F02
+C871
+65CF 7C07 8DB3 93C3 762F
+C874
+5B58 5C0A 62F5
+C878
+5352 62D9 731D
+C885
+5027 5B97 5F9E 60B0 616B 68D5 6DD9 742E 7A2E 7D42
+7D9C 7E31 816B 8E2A 8E35 937E 9418 4F00 6152 67CA
+6936 6A05 747D 7607 7CBD 87BD 8E64
+C88C
+4F50 5750 5DE6 5EA7 632B 5249 75E4 839D 9AFD
+C8C4
+7F6A
+C8FC
+4E3B 4F4F 4F8F 505A 59DD 80C4 546A 5468 55FE 594F
+5B99 5DDE 5EDA 665D 6731 67F1 682A 6CE8 6D32 6E4A
+6F8D 70B7 73E0 7587 7C4C 7D02 7D2C 7DA2 821F 86DB
+8A3B 8A85 8D70 8E8A 8F33 9031 914E 9152 9444 99D0
+4E1F 4F9C 5114 5C0C 5E6C 62C4 7843 7C52 8098 8160
+851F 86C0 88EF 8A4B 8CD9 8D8E 8F08 9052 9252 970C
+9714 9F04
+C8FD
+7AF9 7CA5
+C900
+4FCA 5101 51C6 57C8 5BEF 5CFB 6659 6A3D 6D5A 6E96
+6FEC 710C 756F 7AE3 8822 9021 9075 96CB 99FF 5642
+57FB 58AB 60F7 6499 76B4 7DA7 7F47 8E06 8E72 940F
+96BC 9915 9C52 9D54
+C904
+8301 4E7C
+C911
+4E2D 4EF2 8846 91CD 773E
+C989
+537D 5373 559E
+C990
+6ADB 9A2D
+C999
+696B 6C41 847A 6A9D 857A
+C99D
+589E 618E 66FE 62EF 70DD 7511 75C7 7E52 84B8 8B49
+8D08 5D92 77F0 7F7E
+C9C0
+4E4B 53EA 54AB 5730 5740 5FD7 6301 6307 646F 652F
+65E8 667A 679D 67B3 6B62 6C60 6C9A 6F2C 77E5 7825
+7949 7957 7D19 80A2 8102 81F3 829D 82B7 8718 8A8C
+8D04 8DBE 9072 577B 5880 627A 69B0 6CDC 75E3 79EA
+7BEA 8210 8E1F 8E93 8EF9 962F 9BA8 9DD9
+C9C1
+76F4 7A19 7A37 7E54 8077 799D
+C9C4
+5507 55D4 5875 632F 6422 6649 664B 686D 699B 6B84
+6D25 6EB1 73CD 7468 74A1 755B 75B9 76E1 771E 778B
+79E6 7E09 7E1D 81FB 852F 8897 8A3A 8CD1 8EEB 8FB0
+9032 93AD 9663 9673 9707 4FB2 5118 73D2 7A39 84C1
+87B4 8D81 9241 9B12
+C9C8
+4F84 53F1 59EA 5AC9 5E19 684E 74C6 75BE 79E9 7A92
+81A3 86ED 8CEA 8DCC 8FED 57A4 7D70 84BA 90C5 9455
+C9D0
+659F 6715 9D06
+C9D1
+57F7 6F57 7DDD 8F2F 93F6 96C6 54A0 6222
+C9D5
+5FB5 61F2 6F84 6F82 7013 7665 77AA
+CC28
+4E14 4F98 501F 53C9 55DF 5D6F 5DEE 6B21 6B64 78CB
+7B9A 8E49 8ECA 906E 4F7D 5056 5953 5C94 5FA3 69CE
+7473 7868
+CC29
+6349 643E 7740 7A84 932F 947F 9F6A 6233 64C9 65B2
+CC2C
+64B0 6FAF 71E6 74A8 74DA 7AC4 7C12 7E82 7CB2 7E98
+8B9A 8D0A 947D 9910 994C 5127 5139 5297 5DD1 6522
+6B11 7228 8DB2
+CC30
+5239 5BDF 64E6 672D 7D2E 624E 62F6
+CC38
+50ED 53C3 5879 6158 6159 61FA 65AC 7AD9 8B92 8B96
+5133 53C5 5D84 5DC9 615A 61AF 6519 69E7 6B03 6BDA
+8B56 93E8 9471 995E 9A42 9EF2
+CC3D
+5009 5021 5275 5531 5A3C 5EE0 5F70 6134 655E 660C
+6636 66A2 69CD 6EC4 6F32 7316 7621 7A93 8139 8259
+83D6 84BC 5000 5096 51D4 5231 60B5 60DD 6227 6436
+6919 6C05 7472 7A97 7ABB 8E4C 92F9 9306 95B6 9B2F
+9DAC
+CC44
+50B5 57F0 5BC0 5BE8 5F69 63A1 7826 7DB5 83DC 8521
+91C7 91F5 68CC 831D
+CC45
+518A 67F5 7B56 8CAC 5616 5E58 78D4 7B27 7C00 86B1
+CC98
+51C4 59BB 60BD 8655 6DD2 840B 8904 89B7 90EA
+CC99
+501C 5254 5C3A 617D 621A 62D3 64F2 65A5 6ECC 7620
+810A 8E60 965F 96BB 544E 5767 5849 60D5 6357 646D
+8734 8DD6 8E91
+CC9C
+4EDF 5343 5598 5929 5DDD 64C5 6CC9 6DFA 7394 7A7F
+821B 85A6 8CE4 8E10 9077 91E7 95E1 9621 97C6 4FF4
+5029 50E2 5103 6D0A 6FFA 74E9 7946 7C81 81F6 828A
+831C 8350 84A8 8546 8695 8FBF 975D
+CCA0
+51F8 54F2 5586 5FB9 64A4 6F88 7DB4 8F1F 8F4D 9435
+525F 555C 57D1 60D9 6387 6B60 9295 9323 98FB 992E
+CCA8
+50C9 5C16 6CBE 6DFB 751B 77BB 7C3D 7C64 8A79 8AC2
+5E68 5FDD 60C9 6A90 6AFC 7038 7C37 895C
+CCA9
+581E 59BE 5E16 6377 7252 758A 776B 8ADC 8CBC 8F12
+5022 546B 558B 6017 893A
+CCAD
+5EF3 6674 6DF8 807D 83C1 8ACB 9751 9BD6 51CA 570A
+873B 9D84
+CCB4
+5243 66FF 6D95 6EEF 7DE0 8AE6 902E 905E 9AD4 568F
+5F58 68E3 6BA2 780C 8482 8515 855E 8EC6 9746 9AF0
+CD08
+521D 527F 54E8 6194 6284 62DB 68A2 6912 695A 6A35
+7092 7126 785D 7901 790E 79D2 7A0D 8096 8278 82D5
+8349 8549 8C82 8D85 9162 918B 91AE 5062 50EC 52AD
+52E6 564D 5AF6 5CA7 5CED 5D95 600A 6084 6100 676A
+71CB 7D83 8016 8A9A 8B59 8DA0 8EFA 8FE2 9214 936B
+936C 9798 9866 9AEB 9DE6 9F60
+CD09
+4FC3 56D1 71ED 77D7 8700 89F8 66EF 7225 77DA 85A5
+8E85 9AD1
+CD0C
+5BF8 5FD6 6751 90A8 540B
+CD1D
+53E2 585A 5BF5 60A4 6181 6460 7E3D 8070 8525 9283
+8471 84EF 93E6 9A18 9A44
+CD2C
+64AE
+CD5C
+50AC 5D14 6700 562C 6467 69B1 6F3C 7480 78EA 7E17
+8127
+CD94
+589C 62BD 63A8 690E 6978 6A1E 6E6B 76BA 79CB 82BB
+8429 8ACF 8DA8 8FFD 9112 914B 919C 9310 9318 939A
+96DB 9A36 9C0D 50E6 557E 5A35 5E1A 60C6 6376 63EB
+6425 7503 7633 9F9D 7B92 7BA0 7C09 7E0B 7E10 84AD
+966C 96B9 97A6 9A05 9B4B 9C0C 9D7B 9D96 9DB5 9E84
+9EA4
+CD95
+4E11 755C 795D 7AFA 7B51 7BC9 7E2E 84C4 8E59 8E74
+8EF8 9010 59AF 8233 8C56 8E5C 9F00
+CD98
+6625 693F 7443
+CD9C
+51FA 672E 9EDC 79EB
+CDA9
+5145 5FE0 6C96 87F2 885D 8877 51B2 5FE1 73EB
+CDCC
+60B4 81B5 8403 8D05 60F4 63E3 75A9 7601 9847
+CDE8
+53D6 5439 5634 5A36 5C31 708A 7FE0 805A 8106 81ED
+8DA3 9189 9A5F 9DF2 51A3 6A47 6BF3
+CE21
+5074 4EC4 53A0 60FB 6E2C 5EC1 6603
+CE35
+5C64
+CE58
+4F88 5024 55E4 5CD9 5E5F 6065 6894 6CBB 6DC4 71BE
+75D4 75F4 7661 7A1A 7A49 7DC7 7DFB 7F6E 81F4 86A9
+8F1C 96C9 99B3 9F52 536E 54C6 5BD8 5DF5 7564 75D3
+7D7A 83D1 8599 892B 8C78 8DF1 9319 9624 9BD4 9D19
+9D1F 9D44
+CE59
+5247 52C5 98ED 6555
+CE5C
+89AA 6AEC 85FD 896F 9F54
+CE60
+4E03 67D2 6F06
+CE68
+4FB5 5BE2 6795 6C88 6D78 741B 7827 91DD 937C 5BD6
+5FF1 6939 6C89 90F4 92DF 99F8
+CE69
+87C4
+CE6D
+79E4 7A31
+CF8C
+5FEB 5672 592C
+D0C0
+4ED6 54A4 553E 58AE 59A5 60F0 6253 62D6 6736 6955
+8235 9640 99B1 99DD 4F57 579E 62D5 67C1 6A62 6CB1
+8A6B 8DCE 8EB1 99DE 9B80 9D15 9F09
+D0C1
+502C 5353 5544 577C 6258 64E2 666B 67DD 6FC1 6FEF
+7422 7438 8A17 9438 62C6 6A50 6CB0 6DBF 77FA 7C5C
+8600 8E14 9034
+D0C4
+5451 5606 5766 5F48 619A 6B4E 7058 70AD 7DBB 8A95
+61BB 6524 6BAB 7671 9A52
+D0C8
+596A 812B 4FBB
+D0D0
+63A2 7708 803D 8CAA 55FF 5FD0 9156
+D0D1
+5854 642D 69BB 509D 584C 6428
+D0D5
+5B95 5E11 6E6F 8569 71D9 76EA 78AD 862F
+D0DC
+514C 53F0 592A 6020 614B 6B86 6C70 6CF0 7B1E 80CE
+82D4 8DC6 90B0 98B1 57ED 5A27 5B61 62AC 8FE8 99C4
+99D8
+D0DD
+64C7 6FA4
+D0F1
+6491 6490 725A
+D130
+6504
+D1A0
+514E 5410 571F 8A0E
+D1A4
+564B 5678 74F2
+D1B5
+615F 6876 75DB 7B52 7D71 901A 606B 6A0B 7B69
+D1F4
+5806 69CC 817F 892A 9000 9839 96A4
+D22C
+5078 5957 59AC 6295 900F 9B2A 5992 6E1D 9AB0
+D241
+4F5F
+D2B9
+615D 7279 5FD2
+D2C8
+95D6
+D30C
+5761 5A46 5DF4 628A 64AD 64FA 6777 6CE2 6D3E 722C
+7436 7834 7F77 82AD 8DDB 9817 53F5 5991 5CA5 6015
+705E 7238 73BB 76A4 7B06 7C38 8019 83E0 8469 9131
+D310
+5224 5742 677F 7248 74E3 8CA9 8FA6 9211 962A 6C74
+D314
+516B 53ED 634C 6733 6C43
+D328
+4F69 5504 6096 6557 6C9B 6D7F 724C 72FD 7A17 8987
+8C9D 5B5B 65C6 73EE 9708 9738
+D33D
+5F6D 6F8E 70F9 81A8 7830 794A 87DA 87DB
+D345
+610E
+D3B8
+4FBF 504F 6241 7247 7BC7 7DE8 7FE9 904D 97AD 9A19
+533E 5FA7 60FC 7DF6 8251 8439 8759 890A 8ADE
+D3C4
+8CB6 782D 7A86
+D3C9
+576A 5E73 67B0 840D 8A55 6026 62A8 6CD9 82F9 84F1
+9B83
+D3D0
+5420 5B16 5E63 5EE2 5F0A 6583 80BA 853D 9589 965B
+655D 72F4 7358 7648
+D3EC
+4F48 5305 530D 530F 5486 54FA 5703 5E03 6016 629B
+62B1 6355 6CE1 6D66 75B1 7832 80DE 812F 82DE 8461
+84B2 888D 8912 900B 92EA 98FD 9B91 5124 5E96 6661
+66D3 70AE 70B0 8216 8AA7 924B 9784 9914 9BC6
+D3ED
+5E45 66B4 66DD 7011 7206
+D45C
+4FF5 527D 5F6A 6153 6753 6A19 6F02 74E2 7968 8868
+8C79 98C7 98C4 9A43 50C4 52E1 560C 5AD6 647D 6B8D
+719B 7E39 88F1 93E2 9463 9ADF 9C3E
+D488
+54C1 7A1F 7980
+D48D
+6953 8AF7 8C4A 98A8 99AE 760B 8451
+D53C
+5F7C 62AB 75B2 76AE 88AB 907F 9642 8A56 8F9F 9781
+9AF2
+D53D
+8177
+D544
+5339 5F3C 5FC5 6CCC 73CC 7562 758B 7B46 82FE 999D
+4F56 5487 6EED 7BF3 7F7C 84FD 89F1 8E55 97B8 97E0
+99DC 9D6F
+D54D
+4E4F 903C 506A
+D558
+4E0B 4F55 53A6 590F 5EC8 6630 6CB3 7455 8377 8766
+8CC0 9050 971E 9C15 5440 5687 5C88 61D7 7146 7615
+7F45 935C
+D559
+58D1 5B78 8650 8B14 9DB4 72E2 7627 76AC 786E 90DD
+9DFD
+D55C
+5BD2 6068 608D 65F1 6C57 6F22 6FA3 701A 7F55 7FF0
+9591 9592 9650 97D3 50E9 5AFA 5AFB 634D 66B5 9588
+99FB 9DF3 9F3E
+D560
+5272 8F44 778E
+D568
+51FD 542B 54B8 5563 558A 6ABB 6DB5 7DD8 8266 929C
+9677 9E79 839F 83E1 8AF4 8F5E 95DE
+D569
+5408 54C8 76D2 86E4 95A4 95D4 965C 530C 55D1 67D9
+69BC 6E98 76CD 90C3
+D56D
+4EA2 4F09 59EE 5AE6 5DF7 6052 6297 676D 6841 6C86
+6E2F 7F38 809B 822A 9805 592F 6046 7095 7F3F 980F
+D574
+4EA5 5055 54B3 5793 595A 5B69 5BB3 61C8 6977 6D77
+7023 87F9 89E3 8A72 8AE7 9082 99ED 9AB8 548D 5DB0
+5EE8 6B2C 736C 744E 75CE 85A4 91A2 9826 9BAD
+D575
+52BE 6838 7FEE 8988
+D589
+5016 5E78 674F 8347 884C 60BB
+D5A5
+4EAB 5411 56AE 73E6 9115 97FF 9909 9957 9999 858C
+D5C8
+5653 589F 865B 8A31 6B54
+D5CC
+61B2 6AF6 737B 8ED2 5DDA 5E70 6507
+D5D0
+6B47
+D5D8
+96AA 9A57 5DAE 736B 7381
+D601
+5955 7200 8D6B 9769 5F08 6D2B 7131 9B29
+D604
+4FD4 5CF4 5F26 61F8 665B 6CEB 70AB 7384 73B9 73FE
+7729 774D 7D43 7D62 7E23 8237 8852 8CE2 9249 986F
+5107 5B1B 6621 7404 75C3 770C 7E6F 7FFE 8706 8AA2
+92D7 99FD
+D608
+5B51 7A74 8840 9801 7D5C 8D90
+D610
+5ACC
+D611
+4FE0 5354 593E 5CFD 633E 6D79 72F9 8105 8107 83A2
+92CF 9830 5327 53F6 57C9 604A 608F 611C 7BCB
+D615
+4EA8 5144 5211 578B 5F62 6CC2 6ECE 7005 7050 70AF
+7192 73E9 7469 834A 87A2 8861 9008 90A2 93A3 99A8
+5910 5A19 8A57 8FE5 9658
+D61C
+516E 5F57 60E0 6167 66B3 8559 8E4A 91AF 978B 5092
+5612 5BED 5FAF 69E5 76FB 8B11 8B7F
+D638
+4E4E 4E92 547C 58D5 58FA 597D 5CB5 5F27 6236 6248
+660A 6667 6BEB 6D69 6DCF 6E56 6EF8 6F94 6FE0 6FE9
+705D 72D0 7425 745A 74E0 7693 795C 7CCA 7E1E 80E1
+82A6 846B 84BF 864E 865F 8774 8B77 8C6A 93AC 9800
+9865 512B 51B1 5637 5AED 5AEE 6019 6C8D 6EC8 6EEC
+7292 7322 769C 769E 7B8E 8055 9190 992C 9B0D
+D639
+60D1 6216 9177
+D63C
+5A5A 660F 6DF7 6E3E 743F 9B42 5702 60DB 6EB7 711C
+95BD
+D640
+5FFD 60DA 7B0F 56EB
+D64D
+54C4 5F18 6C5E 6CD3 6D2A 70D8 7D05 8679 8A0C 9D3B
+664E 6F92 7BCA 9277 9B28
+D654
+5316 548C 5B05 6A3A 706B 7575 798D 79BE 82B1 83EF
+8A71 8B41 8CA8 9774 4FF0 5629 5A72 64ED 756B 9A4A
+9FA2
+D655
+64F4 652B 78BA 78BB 7A6B 77CD 77E1 792D 944A
+D658
+4E38 559A 5950 5BA6 5E7B 60A3 63DB 6B61 6665 6853
+6E19 7165 74B0 7D08 9084 9A69 9C25 5BF0 61FD 64D0
+74DB 7696 7746 7D59 8C62 8F58 9370 9436 9B1F
+D65C
+6D3B 6ED1 733E 8C41 95CA 86DE
+D669
+51F0 5E4C 5FA8 604D 60F6 6130 614C 6643 6644 69A5
+6CC1 6E5F 6EC9 6F62 714C 749C 7687 7BC1 7C27 8352
+8757 9051 968D 9EC3 55A4 5A93 6033 745D 8093 8CBA
+93A4
+D68C
+532F 56DE 5EFB 5F8A 6062 6094 61F7 6666 6703 6A9C
+6DEE 6FAE 7070 736A 7E6A 81BE 8334 86D4 8AA8 8CC4
+4F6A 6803 6D04 6ED9 76D4 8A7C 8FF4 982E 9C60
+D68D
+5283 7372 5684
+D6A1
+5B96 6A6B 9404 6F8B 921C 9ECC
+D6A8
+54EE 5686 5B5D 6548 6585 66C9 689F 6D8D 6DC6 723B
+80B4 9175 9A4D 509A 56C2 5D24 6BBD 7187 769B 8653
+991A
+D6C4
+4FAF 5019 539A 540E 543C 5589 55C5 5E3F 5F8C 673D
+7166 73DD 9005 543D 55A3 5795 5820 6DB8 7334 7BCC
+8A61 8B43 9157 9931
+D6C8
+52DB 52F3 5864 58CE 7104 718F 71FB 85B0 8A13 6688
+66DB 720B 736F 7E81 8477 9442
+D6CC
+6B3B
+D6D9
+85A8
+D6E4
+55A7 6684 714A 8431 70DC 8AE0 8AFC
+D6FC
+5349 5599 6BC1 71EC 8294 866B 867A
+D718
+5F59 5FBD 63EE 6689 7147 8AF1 8F1D 9EBE 649D 7FEC
+D734
+4F11 643A 70CB 7566 8667 54BB 64D5 96B3 9AF9 9D42
+D73C
+6064 8B4E 9DF8 5379
+D749
+5147 51F6 5308 6D36 80F8 605F 80F7
+D751
+9ED1
+D754
+6615 6B23 7098 75D5 5F88 5FFB 6380 712E 8A22 91C1
+D758
+5403 5C79 7D07 8A16 4EE1 6C54 7599 8FC4 9F55
+D760
+6B20 6B3D 6B46 5EDE
+D761
+5438 6070 6D3D 7FD5 564F 6B59 6F5D 7FD6
+D765
+8208
+D76C
+50D6 51DE 559C 566B 56CD 59EC 5B09 5E0C 6199 6198
+6231 665E 66E6 7199 71B9 71BA 72A7 79A7 7A00 7FB2
+54A5 550F 563B 6095 6232 66BF 6B37 71F9 7214 8C68
+993C
+D790
+8A70 72B5 7E88 896D 9821 9EE0
+__END__
+
+=head1 NAME
+
+Unicode::Collate::CJK::Korean - weighting CJK Unified Ideographs
+for Unicode::Collate
+
+=head1 SYNOPSIS
+
+    use Unicode::Collate;
+    use Unicode::Collate::CJK::Korean;
+
+    my $collator = Unicode::Collate->new(
+        overrideCJK => \&Unicode::Collate::CJK::Korean::weightKorean
+    );
+
+=head1 DESCRIPTION
+
+C<Unicode::Collate::CJK::Korean> provides C<weightKorean()>,
+that is adequate for C<overrideCJK> of C<Unicode::Collate>
+and makes tailoring of CJK Unified Ideographs in the order
+of CLDR's Korean ordering.
+
+=head1 SEE ALSO
+
+=over 4
+
+=item CLDR - Unicode Common Locale Data Repository
+
+L<http://cldr.unicode.org/>
+
+=item Unicode Locale Data Markup Language (LDML) - UTS #35
+
+L<http://www.unicode.org/reports/tr35/>
+
+=item L<Unicode::Collate>
+
+=item L<Unicode::Collate::Locale>
+
+=back
+
+=cut
index 16148f2..c73a5de 100644 (file)
@@ -4,7 +4,7 @@ use strict;
 use Carp;
 use base qw(Unicode::Collate);
 
-our $VERSION = '0.65';
+our $VERSION = '0.66';
 
 use File::Spec;
 
@@ -14,7 +14,7 @@ my $PL_EXT  = '.pl';
 
 my %LocaleFile = map { ($_, $_) } qw(
    af ar az ca cs cy da eo es et fi fil fo fr ha haw
-   hr hu hy ig is ja kk kl lt lv mt nb nn nso om pl ro ru
+   hr hu hy ig is ja kk kl ko lt lv mt nb nn nso om pl ro ru
    se sk sl sq sv sw tn to tr uk vi wo yo zh
 );
    $LocaleFile{'default'}         = '';
@@ -204,6 +204,7 @@ this method returns a string C<'default'> meaning no special tailoring.
       ja                Japanese [1]
       kk                Kazakh
       kl                Kalaallisut
+      ko                Korean [2]
       lt                Lithuanian
       lv                Latvian
       mk                Macedonian
@@ -259,6 +260,10 @@ The difference between hiragana and katakana is at the 4th level,
 the comparison also requires C<(variable =E<gt> 'Non-ignorable')>,
 and then C<katakana_before_hiragana> has no effect.
 
+[2] ko: Plenty of ideographs are sorted by their reading. Such
+an ideograph is primary (level 1) equal to, and secondary (level 2)
+greater than, the corresponding hangul syllable.
+
 =head1 INSTALL
 
 Installation of C<Unicode::Collate::Locale> requires F<Collate/Locale.pm>,
diff --git a/cpan/Unicode-Collate/Collate/Locale/ko.pl b/cpan/Unicode-Collate/Collate/Locale/ko.pl
new file mode 100644 (file)
index 0000000..a5d91e2
--- /dev/null
@@ -0,0 +1,4 @@
+use Unicode::Collate::CJK::Korean;
++{
+   overrideCJK => \&Unicode::Collate::CJK::Korean::weightKorean,
+};
index 191bdd0..12dc5d4 100644 (file)
@@ -1,4 +1,4 @@
-Unicode/Collate version 0.65
+Unicode/Collate version 0.66
 ===============================
 
 NAME
index d9178b4..a6118d8 100644 (file)
@@ -29,9 +29,9 @@ my $Collator = Unicode::Collate->new(
 # U+9FBC..U+9FC3 are CJK UI since Unicode 5.1.0.
 # U+9FA6..U+9FBB are CJK UI since Unicode 4.1.0.
 # CJK UI Ext are greater than any CJK UI.
-# U+3400 ..U+4DB5  are CJK UI ExtA since Unicode 3.0.0.
-# U+20000..U+2A6D6 are CJK UI ExtB since Unicode 3.1.0.
-# U+2A700..U+2B734 are CJK UI ExtC since Unicode 5.2.0.
+# U+3400 ..U+4DB5  are CJK UI Ext.A since Unicode 3.0.0.
+# U+20000..U+2A6D6 are CJK UI Ext.B since Unicode 3.1.0.
+# U+2A700..U+2B734 are CJK UI Ext.C since Unicode 5.2.0.
 
 ##### 2..13
 $Collator->change(UCA_Version => 8);
diff --git a/cpan/Unicode-Collate/t/compatui.t b/cpan/Unicode-Collate/t/compatui.t
new file mode 100644 (file)
index 0000000..7169fa3
--- /dev/null
@@ -0,0 +1,115 @@
+
+BEGIN {
+    unless ("A" eq pack('U', 0x41)) {
+       print "1..0 # Unicode::Collate " .
+           "cannot stringify a Unicode code point\n";
+       exit 0;
+    }
+    if ($ENV{PERL_CORE}) {
+       chdir('t') if -d 't';
+       @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
+    }
+}
+
+use Test;
+BEGIN { plan tests => 491 };
+
+use strict;
+use warnings;
+use Unicode::Collate;
+
+ok(1);
+
+my @Versions = (8, 9, 11, 14, 16, 18, 20);
+
+# 12 compatibility ideographs are treated as unified ideographs:
+# FA0E, FA0F, FA11, FA13, FA14, FA1F, FA21, FA23, FA24, FA27, FA28, FA29.
+
+my $Collator = Unicode::Collate->new(
+  table => 'keys.txt',
+  normalization => undef,
+);
+
+for my $v (@Versions) {
+$Collator->change(UCA_Version => $v);
+ok($Collator->lt("\x{4E00}", "\x{1FFF}"));
+ok($Collator->lt("\x{9FA5}", "\x{1FFF}"));
+ok($Collator->gt("\x{FA00}", "\x{1FFF}"));
+ok($Collator->gt("\x{FA0D}", "\x{1FFF}"));
+ok($Collator->lt("\x{FA0E}", "\x{1FFF}"));
+ok($Collator->lt("\x{FA0F}", "\x{1FFF}"));
+ok($Collator->gt("\x{FA10}", "\x{1FFF}"));
+ok($Collator->lt("\x{FA11}", "\x{1FFF}"));
+ok($Collator->gt("\x{FA12}", "\x{1FFF}"));
+ok($Collator->lt("\x{FA13}", "\x{1FFF}"));
+ok($Collator->lt("\x{FA14}", "\x{1FFF}"));
+ok($Collator->gt("\x{FA15}", "\x{1FFF}"));
+ok($Collator->gt("\x{FA16}", "\x{1FFF}"));
+ok($Collator->gt("\x{FA17}", "\x{1FFF}"));
+ok($Collator->gt("\x{FA18}", "\x{1FFF}"));
+ok($Collator->gt("\x{FA19}", "\x{1FFF}"));
+ok($Collator->gt("\x{FA1A}", "\x{1FFF}"));
+ok($Collator->gt("\x{FA1B}", "\x{1FFF}"));
+ok($Collator->gt("\x{FA1C}", "\x{1FFF}"));
+ok($Collator->gt("\x{FA1D}", "\x{1FFF}"));
+ok($Collator->gt("\x{FA1E}", "\x{1FFF}"));
+ok($Collator->lt("\x{FA1F}", "\x{1FFF}"));
+ok($Collator->gt("\x{FA20}", "\x{1FFF}"));
+ok($Collator->lt("\x{FA21}", "\x{1FFF}"));
+ok($Collator->gt("\x{FA22}", "\x{1FFF}"));
+ok($Collator->lt("\x{FA23}", "\x{1FFF}"));
+ok($Collator->lt("\x{FA24}", "\x{1FFF}"));
+ok($Collator->gt("\x{FA25}", "\x{1FFF}"));
+ok($Collator->gt("\x{FA26}", "\x{1FFF}"));
+ok($Collator->lt("\x{FA27}", "\x{1FFF}"));
+ok($Collator->lt("\x{FA28}", "\x{1FFF}"));
+ok($Collator->lt("\x{FA29}", "\x{1FFF}"));
+ok($Collator->gt("\x{FA2A}", "\x{1FFF}"));
+ok($Collator->gt("\x{FA30}", "\x{1FFF}"));
+ok($Collator->gt("\x{FAFF}", "\x{1FFF}"));
+}
+
+my $IgnoreCJK = Unicode::Collate->new(
+  table => 'keys.txt',
+  normalization => undef,
+  overrideCJK => sub {()},
+);
+
+for my $v (@Versions) {
+$IgnoreCJK->change(UCA_Version => $v);
+ok($IgnoreCJK->eq("\x{4E00}", ""));
+ok($IgnoreCJK->eq("\x{9FA5}", ""));
+ok($IgnoreCJK->gt("\x{FA00}", "\x{1FFF}"));
+ok($IgnoreCJK->gt("\x{FA0D}", "\x{1FFF}"));
+ok($IgnoreCJK->eq("\x{FA0E}", ""));
+ok($IgnoreCJK->eq("\x{FA0F}", ""));
+ok($IgnoreCJK->gt("\x{FA10}", "\x{1FFF}"));
+ok($IgnoreCJK->eq("\x{FA11}", ""));
+ok($IgnoreCJK->gt("\x{FA12}", "\x{1FFF}"));
+ok($IgnoreCJK->eq("\x{FA13}", ""));
+ok($IgnoreCJK->eq("\x{FA14}", ""));
+ok($IgnoreCJK->gt("\x{FA15}", "\x{1FFF}"));
+ok($IgnoreCJK->gt("\x{FA16}", "\x{1FFF}"));
+ok($IgnoreCJK->gt("\x{FA17}", "\x{1FFF}"));
+ok($IgnoreCJK->gt("\x{FA18}", "\x{1FFF}"));
+ok($IgnoreCJK->gt("\x{FA19}", "\x{1FFF}"));
+ok($IgnoreCJK->gt("\x{FA1A}", "\x{1FFF}"));
+ok($IgnoreCJK->gt("\x{FA1B}", "\x{1FFF}"));
+ok($IgnoreCJK->gt("\x{FA1C}", "\x{1FFF}"));
+ok($IgnoreCJK->gt("\x{FA1D}", "\x{1FFF}"));
+ok($IgnoreCJK->gt("\x{FA1E}", "\x{1FFF}"));
+ok($IgnoreCJK->eq("\x{FA1F}", ""));
+ok($IgnoreCJK->gt("\x{FA20}", "\x{1FFF}"));
+ok($IgnoreCJK->eq("\x{FA21}", ""));
+ok($IgnoreCJK->gt("\x{FA22}", "\x{1FFF}"));
+ok($IgnoreCJK->eq("\x{FA23}", ""));
+ok($IgnoreCJK->eq("\x{FA24}", ""));
+ok($IgnoreCJK->gt("\x{FA25}", "\x{1FFF}"));
+ok($IgnoreCJK->gt("\x{FA26}", "\x{1FFF}"));
+ok($IgnoreCJK->eq("\x{FA27}", ""));
+ok($IgnoreCJK->eq("\x{FA28}", ""));
+ok($IgnoreCJK->eq("\x{FA29}", ""));
+ok($IgnoreCJK->gt("\x{FA2A}", "\x{1FFF}"));
+ok($IgnoreCJK->gt("\x{FA30}", "\x{1FFF}"));
+ok($IgnoreCJK->gt("\x{FAFF}", "\x{1FFF}"));
+}
index 8dbffc0..3e02520 100644 (file)
@@ -191,7 +191,7 @@ ok($objJa->eq("\x{FF3B}", "\["));
 ok($objJa->eq("\x{FF3C}", "\'"));
 ok($objJa->eq("\x{FF3D}", "\]"));
 ok($objJa->eq("\x{FF3E}", "\^"));
-ok($objJa->eq("\x{FF3F}", "\_"));
+ok($objJa->eq("\x{FF3F}", "_"));
 ok($objJa->eq("\x{FF40}", "\`"));
 ok($objJa->eq("\x{FF41}", "a"));
 ok($objJa->eq("\x{FF42}", "b"));
diff --git a/cpan/Unicode-Collate/t/loc_ko.t b/cpan/Unicode-Collate/t/loc_ko.t
new file mode 100644 (file)
index 0000000..268eb3b
--- /dev/null
@@ -0,0 +1,69 @@
+#!perl
+use strict;
+use warnings;
+use Unicode::Collate::Locale;
+
+use Test;
+plan tests => 42;
+
+my $objKo = Unicode::Collate::Locale->
+    new(locale => 'KO', normalization => undef);
+
+ok(1);
+ok($objKo->getlocale, 'ko');
+
+$objKo->change(level => 1);
+
+ok($objKo->eq("\x{AC00}", "\x{4F3D}"));
+ok($objKo->eq("\x{4F3D}", "\x{4F73}"));
+ok($objKo->eq("\x{4F73}", "\x{5047}"));
+ok($objKo->eq("\x{5047}", "\x{50F9}"));
+ok($objKo->eq("\x{50F9}", "\x{52A0}"));
+ok($objKo->eq("\x{52A0}", "\x{53EF}"));
+ok($objKo->lt("\x{53EF}", "\x{AC01}"));
+
+ok($objKo->eq("\x{AC1D}", "\x{5580}"));
+ok($objKo->eq("\x{5580}", "\x{5BA2}"));
+ok($objKo->lt("\x{5BA2}", "\x{AC31}"));
+
+ok($objKo->eq("\x{C77C}", "\x{4E00}"));
+ok($objKo->eq("\x{4E00}", "\x{4F5A}"));
+ok($objKo->eq("\x{4F5A}", "\x{4F7E}"));
+
+ok($objKo->lt("\x{993C}", "\x{D790}"));
+ok($objKo->eq("\x{D790}", "\x{8A70}"));
+ok($objKo->eq("\x{8A70}", "\x{72B5}"));
+ok($objKo->eq("\x{72B5}", "\x{7E88}"));
+ok($objKo->eq("\x{7E88}", "\x{896D}"));
+ok($objKo->eq("\x{896D}", "\x{9821}"));
+ok($objKo->eq("\x{9821}", "\x{9EE0}"));
+
+# 22
+
+$objKo->change(level => 2);
+
+ok($objKo->lt("\x{AC00}", "\x{4F3D}"));
+ok($objKo->lt("\x{4F3D}", "\x{4F73}"));
+ok($objKo->lt("\x{4F73}", "\x{5047}"));
+ok($objKo->lt("\x{5047}", "\x{50F9}"));
+ok($objKo->lt("\x{50F9}", "\x{52A0}"));
+ok($objKo->lt("\x{52A0}", "\x{53EF}"));
+ok($objKo->lt("\x{53EF}", "\x{AC01}"));
+
+ok($objKo->lt("\x{AC1D}", "\x{5580}"));
+ok($objKo->lt("\x{5580}", "\x{5BA2}"));
+ok($objKo->lt("\x{5BA2}", "\x{AC31}"));
+
+ok($objKo->lt("\x{C77C}", "\x{4E00}"));
+ok($objKo->lt("\x{4E00}", "\x{4F5A}"));
+ok($objKo->lt("\x{4F5A}", "\x{4F7E}"));
+
+ok($objKo->lt("\x{993C}", "\x{D790}"));
+ok($objKo->lt("\x{D790}", "\x{8A70}"));
+ok($objKo->lt("\x{8A70}", "\x{72B5}"));
+ok($objKo->lt("\x{72B5}", "\x{7E88}"));
+ok($objKo->lt("\x{7E88}", "\x{896D}"));
+ok($objKo->lt("\x{896D}", "\x{9821}"));
+ok($objKo->lt("\x{9821}", "\x{9EE0}"));
+
+#42
index 81c0fb2..b65ae52 100644 (file)
@@ -4,7 +4,7 @@ use warnings;
 use Unicode::Collate::Locale;
 
 use Test;
-plan tests => 300;
+plan tests => 302;
 
 my $objZhP = Unicode::Collate::Locale->
     new(locale => 'ZH__pinyin', normalization => undef);
@@ -325,6 +325,9 @@ ok($objZhP->lt("\x{54CE}", "\x{54C0}"));
 ok($objZhP->lt("\x{54C0}", "\x{5509}"));
 ok($objZhP->lt("\x{5509}", "\x{57C3}"));
 
+ok($objZhP->lt("\x{6FED}", "\x{FA1F}"));
+ok($objZhP->lt("\x{FA1F}", "\x{85F9}"));
+
 ok($objZhP->lt("\x{57C3}", "\x{4E00}"));
 ok($objZhP->lt("\x{4E00}", "\x{8331}"));
 
@@ -341,4 +344,4 @@ ok($objZhP->lt("\x{84D9}", "\x{98F5}"));
 ok($objZhP->lt("\x{98F5}", "\x{7CF3}"));
 ok($objZhP->lt("\x{7CF3}", "\x{5497}"));
 
-# 300
+# 302
index b1c92af..2eec339 100644 (file)
@@ -49,8 +49,8 @@ ok($ignoreCJK->eq("\x{9FC3}", "")); # UI since Unicode 5.1.0
 ok($ignoreCJK->eq("\x{9FC4}", "")); # UI since Unicode 5.2.0
 ok($ignoreCJK->eq("\x{9FCB}", "")); # UI since Unicode 5.2.0
 ok($ignoreCJK->gt("\x{9FCC}", "Perl"));
-ok($ignoreCJK->eq("\x{20000}", ""));
-ok($ignoreCJK->eq("\x{2A6D6}", ""));
+ok($ignoreCJK->eq("\x{20000}", "")); # ExtB since Unicode 3.1.0
+ok($ignoreCJK->eq("\x{2A6D6}", "")); # ExtB since Unicode 3.1.0
 ok($ignoreCJK->eq("\x{2A700}", "")); # ExtC since Unicode 5.2.0
 ok($ignoreCJK->eq("\x{2B734}", "")); # ExtC since Unicode 5.2.0
 
@@ -64,8 +64,8 @@ ok($ignoreCJK->gt("\x{9FBB}", "Perl"));
 ok($ignoreCJK->gt("\x{9FBC}", "Perl"));
 ok($ignoreCJK->gt("\x{9FC3}", "Perl"));
 ok($ignoreCJK->gt("\x{9FC4}", "Perl"));
-ok($ignoreCJK->gt("\x{20000}","Perl"));
-ok($ignoreCJK->gt("\x{2A6D6}","Perl"));
+ok($ignoreCJK->eq("\x{20000}", "")); # ExtB since Unicode 3.1.0
+ok($ignoreCJK->eq("\x{2A6D6}", "")); # ExtB since Unicode 3.1.0
 
 ##### 31..40
 $ignoreCJK->change(UCA_Version => 9);
@@ -90,8 +90,8 @@ ok($ignoreCJK->eq("\x{9FBB}", "")); # UI since Unicode 4.1.0
 ok($ignoreCJK->gt("\x{9FBC}", "Perl"));
 ok($ignoreCJK->gt("\x{9FC3}", "Perl"));
 ok($ignoreCJK->gt("\x{9FC4}", "Perl"));
-ok($ignoreCJK->eq("\x{20000}", ""));
-ok($ignoreCJK->eq("\x{2A6D6}", ""));
+ok($ignoreCJK->eq("\x{20000}", "")); # ExtB since Unicode 3.1.0
+ok($ignoreCJK->eq("\x{2A6D6}", "")); # ExtB since Unicode 3.1.0
 ok($ignoreCJK->gt("\x{2A700}", "Perl"));
 ok($ignoreCJK->gt("\x{2B734}", "Perl"));
 
@@ -107,8 +107,8 @@ ok($ignoreCJK->eq("\x{9FC3}", "")); # UI since Unicode 5.1.0
 ok($ignoreCJK->gt("\x{9FC4}", "Perl"));
 ok($ignoreCJK->gt("\x{9FCB}", "Perl"));
 ok($ignoreCJK->gt("\x{9FCC}", "Perl"));
-ok($ignoreCJK->eq("\x{20000}", ""));
-ok($ignoreCJK->eq("\x{2A6D6}", ""));
+ok($ignoreCJK->eq("\x{20000}", "")); # ExtB since Unicode 3.1.0
+ok($ignoreCJK->eq("\x{2A6D6}", "")); # ExtB since Unicode 3.1.0
 ok($ignoreCJK->gt("\x{2A700}", "Perl"));
 ok($ignoreCJK->gt("\x{2B734}", "Perl"));
 
index c9912d2..ada95f1 100644 (file)
@@ -231,11 +231,13 @@ cribbed.
 The following modules were added by the C<Unicode::Collate> 
 upgrade from 0.63 to 0.65. See below for details.
 
-C<Unicode::Collate::CJK::Big5> 
+C<Unicode::Collate::CJK::Big5>
 
 C<Unicode::Collate::CJK::GB2312>
 
-C<Unicode::Collate::CJK::JISX0208> 
+C<Unicode::Collate::CJK::JISX0208>
+
+C<Unicode::Collate::CJK::Korean>
 
 C<Unicode::Collate::CJK::Pinyin>
 
@@ -387,22 +389,25 @@ C<Sys::Hostname> has been upgraded from 1.13 to 1.14.
 
 =item *
 
-C<Unicode::Collate> has been upgraded from 0.63 to 0.65
+C<Unicode::Collate> has been upgraded from 0.63 to 0.66
 
-This release newly adds locale C<ja> and C<zh> and its variants 
+This release newly adds locales C<ja> C<ko> and C<zh> and its variants 
 ( C<zh__big5han>, C<zh__gb2312han>, C<zh__pinyin>, C<zh__stroke> ).
 
 The following modules have been added:
 
-C<Unicode::Collate::CJK::JISX0208> which makes tailoring of 6355 kanji 
-(CJK Unified Ideographs) in the JIS X 0208 order.
-
 C<Unicode::Collate::CJK::Big5> for C<zh__big5han> which makes 
 tailoring of CJK Unified Ideographs in the order of CLDR's big5han ordering.
 
 C<Unicode::Collate::CJK::GB2312> for C<zh__gb2312han> which makes
 tailoring of CJK Unified Ideographs in the order of CLDR's gb2312han ordering.
 
+C<Unicode::Collate::CJK::JISX0208> which makes tailoring of 6355 kanji 
+(CJK Unified Ideographs) in the JIS X 0208 order.
+
+C<Unicode::Collate::CJK::Korean> which makes tailoring of CJK Unified Ideographs 
+in the order of CLDR's Korean ordering.
+
 C<Unicode::Collate::CJK::Pinyin> for C<zh__pinyin> which makes
 tailoring of CJK Unified Ideographs in the order of CLDR's pinyin ordering.