Ignore:
Timestamp:
Aug 6, 2008, 10:20:02 AM (11 years ago)
Author:
gb
Message:

Do Unicode case-folding in linear time; make the image a few 100KB (of readonly
ivectors) bigger in the process.

This is a little tricky to bootstrap, and needs some compiler macros to make it
more viable.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/level-1/l1-aprims.lisp

    r10359 r10372  
    401401)
    402402
     403
    403404(defun check-sequence-bounds (seq start end)
     405  (flet ((bad-sequence-interval (seq start end)
     406           (unless (typep start 'unsigned-byte)
     407             (report-bad-arg start 'unsigned-byte))
     408           (if (and end (not (typep end 'unsigned-byte)))
     409             (report-bad-arg end '(or null unsigned-byte)))
     410           (error "Bad interval for sequence operation on ~s : start = ~s, end = ~s" seq start end)))
    404411  (let* ((length (length seq)))
    405412    (declare (fixnum length))
    406     (if (not end)
    407       (setq end length)
    408       (unless (typep end 'fixnum)
    409         (report-bad-arg end 'fixnum)))
    410     (unless (typep start 'fixnum)
    411       (report-bad-arg start 'fixnum))
    412     (locally (declare (fixnum start end))
    413       (cond ((> end length)
    414              (report-bad-arg end `(integer 0 (,length))))
    415             ((< start 0)
    416              (report-bad-arg start `(integer 0)))
    417             ((< end 0)
    418              (report-bad-arg end `(integer 0 (,length))))
    419             ((> start end)
    420              (report-bad-arg start `(integer 0 ,end)))
    421             (t end)))))
     413    (if (and (typep start 'fixnum)
     414             (<= 0 (the fixnum start))
     415             (if (null end)
     416               (<= (the fixnum start) (the fixnum (setq end length)))
     417               (and (typep end 'fixnum)
     418                    (<= (the fixnum start) (the fixnum end))
     419                    (<= (the fixnum end) (the fixnum length)))))
     420
     421      end
     422      (bad-sequence-interval seq start end)))))
     423
    422424 
    423425
     
    899901(defun char-downcase (c)
    900902  "Return CHAR converted to lower-case if that is possible."
    901   (let* ((code (char-code c)))
    902     (declare (type (mod #x110000) code))
    903     (if (and (>= code (char-code #\A))(<= code (char-code #\Z)))
    904       (%code-char (%i+ code #.(- (char-code #\a)(char-code #\A))))
    905       (or (and (>= code #x80)
    906                (%non-standard-lower-case-equivalent c))
    907           c))))
     903  (declare (optimize (speed 3))) ; open-code the %CHAR-CODE-DOWNCASE here.
     904  (code-char (the valid-char-code (%char-code-downcase (char-code c)))))
    908905
    909906
     
    934931
    935932
    936 (defun char-upcase (c)
    937   "Return CHAR converted to upper-case if that is possible.  Don't convert
    938    lowercase eszet (U+DF)."
    939   (let* ((code (char-code c)))
    940     (declare (type (mod #x110000) code))
    941     (if (and (>= code (char-code #\a))(<= code (char-code #\z)))
    942       (%code-char (%i- code #.(- (char-code #\a)(char-code #\A))))
    943       (or (and (>= code #x80) (%non-standard-upper-case-equivalent c))
    944           c))))
    945 
    946 (defun %non-standard-char-code-upcase (code)
    947   (declare (type (mod #x110000) code))
    948   (if (>= code #x80)
    949     (let* ((upper (%non-standard-upper-case-equivalent (code-char code))))
    950       (if upper
    951         (char-code upper)
    952         code))
    953     code))
    954933
    955934
     
    1000979             (and (not (logbitp $lfbits-gfn-bit bits))
    1001980                  (not (logbitp $lfbits-cm-bit bits))))
    1002         (nth-immediate lfun 1))))
     981        (nth-immediate lfun 1))))
    1003982
    1004983
     
    11851164       (= (uvsize p) target::xmacptr.element-count)))
    11861165
    1187 (defstatic *non-standard-lower-to-upper* (make-hash-table :test #'eq)
    1188   "Maps non-STANDARD-CHAR lowercase chars to uppercase equivalents")
    1189 
    1190 (defstatic *non-standard-upper-to-lower* (make-hash-table :test #'eq)
    1191   "Maps non-STANDARD-CHAR uppercase chars to lowercase equivalents")
    1192 
    1193 ;;; This alist is automatically (and not to cleverly ...) generated.
     1166(defstatic *upper-to-lower* nil)
     1167(defstatic *lower-to-upper*  nil)
     1168
     1169
     1170
     1171;;; This alist is automatically (and not too cleverly ...) generated.
    11941172;;; The (upper . lower) pairs have the property that UPPER is the
    11951173;;; value "simple uppercase equivalent" entry for LOWER in the
    11961174;;; UnicodeData.txt file and LOWER is the corresponding entry for
    1197 ;;; UPPER.
    1198 (dolist (pair '((#\Latin_Capital_Letter_A_With_Grave . #\Latin_Small_Letter_A_With_Grave)
     1175;;; UPPER,
     1176(let* ((mapping
     1177        '((#\Latin_Capital_Letter_A_With_Grave . #\Latin_Small_Letter_A_With_Grave)
    11991178                (#\Latin_Capital_Letter_A_With_Acute . #\Latin_Small_Letter_A_With_Acute)
    12001179                (#\Latin_Capital_Letter_A_With_Circumflex
     
    12051184                (#\Latin_Capital_Letter_A_With_Ring_Above
    12061185                 . #\Latin_Small_Letter_A_With_Ring_Above)
     1186         
    12071187                (#\Latin_Capital_Letter_Ae . #\Latin_Small_Letter_Ae)
     1188         
    12081189                (#\Latin_Capital_Letter_C_With_Cedilla . #\Latin_Small_Letter_C_With_Cedilla)
     1190         
    12091191                (#\Latin_Capital_Letter_E_With_Grave . #\Latin_Small_Letter_E_With_Grave)
     1192         
    12101193                (#\Latin_Capital_Letter_E_With_Acute . #\Latin_Small_Letter_E_With_Acute)
     1194         
    12111195                (#\Latin_Capital_Letter_E_With_Circumflex
    12121196                 . #\Latin_Small_Letter_E_With_Circumflex)
     1197         
    12131198                (#\Latin_Capital_Letter_E_With_Diaeresis
    12141199                 . #\Latin_Small_Letter_E_With_Diaeresis)
     1200         
    12151201                (#\Latin_Capital_Letter_I_With_Grave . #\Latin_Small_Letter_I_With_Grave)
     1202         
    12161203                (#\Latin_Capital_Letter_I_With_Acute . #\Latin_Small_Letter_I_With_Acute)
     1204         
    12171205                (#\Latin_Capital_Letter_I_With_Circumflex
    12181206                 . #\Latin_Small_Letter_I_With_Circumflex)
     1207         
    12191208                (#\Latin_Capital_Letter_I_With_Diaeresis
    12201209                 . #\Latin_Small_Letter_I_With_Diaeresis)
     1210         
    12211211                (#\Latin_Capital_Letter_Eth . #\Latin_Small_Letter_Eth)
     1212         
    12221213                (#\Latin_Capital_Letter_N_With_Tilde . #\Latin_Small_Letter_N_With_Tilde)
     1214         
    12231215                (#\Latin_Capital_Letter_O_With_Grave . #\Latin_Small_Letter_O_With_Grave)
     1216         
    12241217                (#\Latin_Capital_Letter_O_With_Acute . #\Latin_Small_Letter_O_With_Acute)
     1218         
    12251219                (#\Latin_Capital_Letter_O_With_Circumflex
    12261220                 . #\Latin_Small_Letter_O_With_Circumflex)
     1221         
    12271222                (#\Latin_Capital_Letter_O_With_Tilde . #\Latin_Small_Letter_O_With_Tilde)
     1223         
    12281224                (#\Latin_Capital_Letter_O_With_Diaeresis
    12291225                 . #\Latin_Small_Letter_O_With_Diaeresis)
     1226         
    12301227                (#\Latin_Capital_Letter_O_With_Stroke . #\Latin_Small_Letter_O_With_Stroke)
     1228         
    12311229                (#\Latin_Capital_Letter_U_With_Grave . #\Latin_Small_Letter_U_With_Grave)
     1230         
    12321231                (#\Latin_Capital_Letter_U_With_Acute . #\Latin_Small_Letter_U_With_Acute)
     1232         
    12331233                (#\Latin_Capital_Letter_U_With_Circumflex
    12341234                 . #\Latin_Small_Letter_U_With_Circumflex)
     1235         
    12351236                (#\Latin_Capital_Letter_U_With_Diaeresis
    12361237                 . #\Latin_Small_Letter_U_With_Diaeresis)
     1238         
    12371239                (#\Latin_Capital_Letter_Y_With_Acute . #\Latin_Small_Letter_Y_With_Acute)
     1240         
    12381241                (#\Latin_Capital_Letter_Thorn . #\Latin_Small_Letter_Thorn)
     1242         
    12391243                (#\Latin_Capital_Letter_A_With_Macron . #\Latin_Small_Letter_A_With_Macron)
     1244         
    12401245                (#\Latin_Capital_Letter_A_With_Breve . #\Latin_Small_Letter_A_With_Breve)
     1246         
    12411247                (#\Latin_Capital_Letter_A_With_Ogonek . #\Latin_Small_Letter_A_With_Ogonek)
     1248         
    12421249                (#\Latin_Capital_Letter_C_With_Acute . #\Latin_Small_Letter_C_With_Acute)
     1250         
    12431251                (#\Latin_Capital_Letter_C_With_Circumflex
    12441252                 . #\Latin_Small_Letter_C_With_Circumflex)
     1253         
    12451254                (#\Latin_Capital_Letter_C_With_Dot_Above
    12461255                 . #\Latin_Small_Letter_C_With_Dot_Above)
     1256         
    12471257                (#\Latin_Capital_Letter_C_With_Caron . #\Latin_Small_Letter_C_With_Caron)
     1258         
    12481259                (#\Latin_Capital_Letter_D_With_Caron . #\Latin_Small_Letter_D_With_Caron)
     1260         
    12491261                (#\Latin_Capital_Letter_D_With_Stroke . #\Latin_Small_Letter_D_With_Stroke)
     1262         
    12501263                (#\Latin_Capital_Letter_E_With_Macron . #\Latin_Small_Letter_E_With_Macron)
     1264         
    12511265                (#\Latin_Capital_Letter_E_With_Breve . #\Latin_Small_Letter_E_With_Breve)
     1266         
    12521267                (#\Latin_Capital_Letter_E_With_Dot_Above
    12531268                 . #\Latin_Small_Letter_E_With_Dot_Above)
     1269         
    12541270                (#\Latin_Capital_Letter_E_With_Ogonek . #\Latin_Small_Letter_E_With_Ogonek)
     1271         
    12551272                (#\Latin_Capital_Letter_E_With_Caron . #\Latin_Small_Letter_E_With_Caron)
     1273         
    12561274                (#\Latin_Capital_Letter_G_With_Circumflex
    12571275                 . #\Latin_Small_Letter_G_With_Circumflex)
     1276         
    12581277                (#\Latin_Capital_Letter_G_With_Breve . #\Latin_Small_Letter_G_With_Breve)
     1278         
    12591279                (#\Latin_Capital_Letter_G_With_Dot_Above
    12601280                 . #\Latin_Small_Letter_G_With_Dot_Above)
     1281         
    12611282                (#\Latin_Capital_Letter_G_With_Cedilla . #\Latin_Small_Letter_G_With_Cedilla)
     1283         
    12621284                (#\Latin_Capital_Letter_H_With_Circumflex
    12631285                 . #\Latin_Small_Letter_H_With_Circumflex)
     1286         
    12641287                (#\Latin_Capital_Letter_H_With_Stroke . #\Latin_Small_Letter_H_With_Stroke)
     1288         
    12651289                (#\Latin_Capital_Letter_I_With_Tilde . #\Latin_Small_Letter_I_With_Tilde)
     1290         
    12661291                (#\Latin_Capital_Letter_I_With_Macron . #\Latin_Small_Letter_I_With_Macron)
     1292         
    12671293                (#\Latin_Capital_Letter_I_With_Breve . #\Latin_Small_Letter_I_With_Breve)
     1294         
    12681295                (#\Latin_Capital_Letter_I_With_Ogonek . #\Latin_Small_Letter_I_With_Ogonek)
     1296         
    12691297                (#\Latin_Capital_Ligature_Ij . #\Latin_Small_Ligature_Ij)
     1298         
    12701299                (#\Latin_Capital_Letter_J_With_Circumflex
    12711300                 . #\Latin_Small_Letter_J_With_Circumflex)
     1301         
    12721302                (#\Latin_Capital_Letter_K_With_Cedilla . #\Latin_Small_Letter_K_With_Cedilla)
     1303         
    12731304                (#\Latin_Capital_Letter_L_With_Acute . #\Latin_Small_Letter_L_With_Acute)
     1305         
    12741306                (#\Latin_Capital_Letter_L_With_Cedilla . #\Latin_Small_Letter_L_With_Cedilla)
     1307         
    12751308                (#\Latin_Capital_Letter_L_With_Caron . #\Latin_Small_Letter_L_With_Caron)
     1309         
    12761310                (#\Latin_Capital_Letter_L_With_Middle_Dot
    12771311                 . #\Latin_Small_Letter_L_With_Middle_Dot)
     1312         
    12781313                (#\Latin_Capital_Letter_L_With_Stroke . #\Latin_Small_Letter_L_With_Stroke)
     1314         
    12791315                (#\Latin_Capital_Letter_N_With_Acute . #\Latin_Small_Letter_N_With_Acute)
     1316         
    12801317                (#\Latin_Capital_Letter_N_With_Cedilla . #\Latin_Small_Letter_N_With_Cedilla)
     1318         
    12811319                (#\Latin_Capital_Letter_N_With_Caron . #\Latin_Small_Letter_N_With_Caron)
     1320         
    12821321                (#\Latin_Capital_Letter_Eng . #\Latin_Small_Letter_Eng)
     1322         
    12831323                (#\Latin_Capital_Letter_O_With_Macron . #\Latin_Small_Letter_O_With_Macron)
     1324         
    12841325                (#\Latin_Capital_Letter_O_With_Breve . #\Latin_Small_Letter_O_With_Breve)
     1326         
    12851327                (#\Latin_Capital_Letter_O_With_Double_Acute
    12861328                 . #\Latin_Small_Letter_O_With_Double_Acute)
     1329         
    12871330                (#\Latin_Capital_Ligature_Oe . #\Latin_Small_Ligature_Oe)
     1331         
    12881332                (#\Latin_Capital_Letter_R_With_Acute . #\Latin_Small_Letter_R_With_Acute)
     1333         
    12891334                (#\Latin_Capital_Letter_R_With_Cedilla . #\Latin_Small_Letter_R_With_Cedilla)
     1335         
    12901336                (#\Latin_Capital_Letter_R_With_Caron . #\Latin_Small_Letter_R_With_Caron)
     1337         
    12911338                (#\Latin_Capital_Letter_S_With_Acute . #\Latin_Small_Letter_S_With_Acute)
     1339         
    12921340                (#\Latin_Capital_Letter_S_With_Circumflex
    12931341                 . #\Latin_Small_Letter_S_With_Circumflex)
     1342         
    12941343                (#\Latin_Capital_Letter_S_With_Cedilla . #\Latin_Small_Letter_S_With_Cedilla)
     1344         
    12951345                (#\Latin_Capital_Letter_S_With_Caron . #\Latin_Small_Letter_S_With_Caron)
     1346         
    12961347                (#\Latin_Capital_Letter_T_With_Cedilla . #\Latin_Small_Letter_T_With_Cedilla)
     1348         
    12971349                (#\Latin_Capital_Letter_T_With_Caron . #\Latin_Small_Letter_T_With_Caron)
     1350         
    12981351                (#\Latin_Capital_Letter_T_With_Stroke . #\Latin_Small_Letter_T_With_Stroke)
     1352         
    12991353                (#\Latin_Capital_Letter_U_With_Tilde . #\Latin_Small_Letter_U_With_Tilde)
     1354         
    13001355                (#\Latin_Capital_Letter_U_With_Macron . #\Latin_Small_Letter_U_With_Macron)
     1356         
    13011357                (#\Latin_Capital_Letter_U_With_Breve . #\Latin_Small_Letter_U_With_Breve)
     1358         
    13021359                (#\Latin_Capital_Letter_U_With_Ring_Above
    13031360                 . #\Latin_Small_Letter_U_With_Ring_Above)
     1361         
    13041362                (#\Latin_Capital_Letter_U_With_Double_Acute
    13051363                 . #\Latin_Small_Letter_U_With_Double_Acute)
     1364         
    13061365                (#\Latin_Capital_Letter_U_With_Ogonek . #\Latin_Small_Letter_U_With_Ogonek)
     1366         
    13071367                (#\Latin_Capital_Letter_W_With_Circumflex
    13081368                 . #\Latin_Small_Letter_W_With_Circumflex)
     1369         
    13091370                (#\Latin_Capital_Letter_Y_With_Circumflex
    13101371                 . #\Latin_Small_Letter_Y_With_Circumflex)
     1372         
    13111373                (#\Latin_Capital_Letter_Y_With_Diaeresis
    13121374                 . #\Latin_Small_Letter_Y_With_Diaeresis)
     1375         
    13131376                (#\Latin_Capital_Letter_Z_With_Acute . #\Latin_Small_Letter_Z_With_Acute)
     1377         
    13141378                (#\Latin_Capital_Letter_Z_With_Dot_Above
    13151379                 . #\Latin_Small_Letter_Z_With_Dot_Above)
     1380         
    13161381                (#\Latin_Capital_Letter_Z_With_Caron . #\Latin_Small_Letter_Z_With_Caron)
     1382         
    13171383                (#\Latin_Capital_Letter_B_With_Hook . #\Latin_Small_Letter_B_With_Hook)
     1384         
    13181385                (#\Latin_Capital_Letter_B_With_Topbar . #\Latin_Small_Letter_B_With_Topbar)
     1386         
    13191387                (#\Latin_Capital_Letter_Tone_Six . #\Latin_Small_Letter_Tone_Six)
     1388         
    13201389                (#\Latin_Capital_Letter_Open_O . #\Latin_Small_Letter_Open_O)
     1390         
    13211391                (#\Latin_Capital_Letter_C_With_Hook . #\Latin_Small_Letter_C_With_Hook)
     1392         
    13221393                (#\Latin_Capital_Letter_African_D . #\Latin_Small_Letter_D_With_Tail)
     1394         
    13231395                (#\Latin_Capital_Letter_D_With_Hook . #\Latin_Small_Letter_D_With_Hook)
     1396         
    13241397                (#\Latin_Capital_Letter_D_With_Topbar . #\Latin_Small_Letter_D_With_Topbar)
     1398         
    13251399                (#\Latin_Capital_Letter_Reversed_E . #\Latin_Small_Letter_Turned_E)
     1400         
    13261401                (#\Latin_Capital_Letter_Schwa . #\Latin_Small_Letter_Schwa)
     1402         
    13271403                (#\Latin_Capital_Letter_Open_E . #\Latin_Small_Letter_Open_E)
     1404         
    13281405                (#\Latin_Capital_Letter_F_With_Hook . #\Latin_Small_Letter_F_With_Hook)
     1406         
    13291407                (#\Latin_Capital_Letter_G_With_Hook . #\Latin_Small_Letter_G_With_Hook)
     1408         
    13301409                (#\Latin_Capital_Letter_Gamma . #\Latin_Small_Letter_Gamma)
     1410         
    13311411                (#\Latin_Capital_Letter_Iota . #\Latin_Small_Letter_Iota)
     1412         
    13321413                (#\Latin_Capital_Letter_I_With_Stroke . #\Latin_Small_Letter_I_With_Stroke)
     1414         
    13331415                (#\Latin_Capital_Letter_K_With_Hook . #\Latin_Small_Letter_K_With_Hook)
     1416         
    13341417                (#\Latin_Capital_Letter_Turned_M . #\Latin_Small_Letter_Turned_M)
     1418         
    13351419                (#\Latin_Capital_Letter_N_With_Left_Hook
    13361420                 . #\Latin_Small_Letter_N_With_Left_Hook)
     1421         
    13371422                (#\Latin_Capital_Letter_O_With_Middle_Tilde . #\Latin_Small_Letter_Barred_O)
     1423         
    13381424                (#\Latin_Capital_Letter_O_With_Horn . #\Latin_Small_Letter_O_With_Horn)
     1425         
    13391426                (#\Latin_Capital_Letter_Oi . #\Latin_Small_Letter_Oi)
     1427         
    13401428                (#\Latin_Capital_Letter_P_With_Hook . #\Latin_Small_Letter_P_With_Hook)
     1429         
    13411430                (#\Latin_Letter_Yr . #\Latin_Letter_Small_Capital_R)
     1431         
    13421432                (#\Latin_Capital_Letter_Tone_Two . #\Latin_Small_Letter_Tone_Two)
     1433         
    13431434                (#\Latin_Capital_Letter_Esh . #\Latin_Small_Letter_Esh)
     1435         
    13441436                (#\Latin_Capital_Letter_T_With_Hook . #\Latin_Small_Letter_T_With_Hook)
     1437         
    13451438                (#\Latin_Capital_Letter_T_With_Retroflex_Hook
    13461439                 . #\Latin_Small_Letter_T_With_Retroflex_Hook)
     1440         
    13471441                (#\Latin_Capital_Letter_U_With_Horn . #\Latin_Small_Letter_U_With_Horn)
     1442         
    13481443                (#\Latin_Capital_Letter_Upsilon . #\Latin_Small_Letter_Upsilon)
     1444         
    13491445                (#\Latin_Capital_Letter_V_With_Hook . #\Latin_Small_Letter_V_With_Hook)
     1446         
    13501447                (#\Latin_Capital_Letter_Y_With_Hook . #\Latin_Small_Letter_Y_With_Hook)
     1448         
    13511449                (#\Latin_Capital_Letter_Z_With_Stroke . #\Latin_Small_Letter_Z_With_Stroke)
     1450         
    13521451                (#\Latin_Capital_Letter_Ezh . #\Latin_Small_Letter_Ezh)
     1452         
    13531453                (#\Latin_Capital_Letter_Ezh_Reversed . #\Latin_Small_Letter_Ezh_Reversed)
     1454         
    13541455                (#\Latin_Capital_Letter_Tone_Five . #\Latin_Small_Letter_Tone_Five)
     1456         
    13551457                (#\Latin_Capital_Letter_Dz_With_Caron . #\Latin_Small_Letter_Dz_With_Caron)
     1458         
    13561459                (#\Latin_Capital_Letter_Lj . #\Latin_Small_Letter_Lj)
     1460         
    13571461                (#\Latin_Capital_Letter_Nj . #\Latin_Small_Letter_Nj)
     1462         
    13581463                (#\Latin_Capital_Letter_A_With_Caron . #\Latin_Small_Letter_A_With_Caron)
     1464         
    13591465                (#\Latin_Capital_Letter_I_With_Caron . #\Latin_Small_Letter_I_With_Caron)
     1466         
    13601467                (#\Latin_Capital_Letter_O_With_Caron . #\Latin_Small_Letter_O_With_Caron)
     1468         
    13611469                (#\Latin_Capital_Letter_U_With_Caron . #\Latin_Small_Letter_U_With_Caron)
     1470         
    13621471                (#\Latin_Capital_Letter_U_With_Diaeresis_And_Macron
    13631472                 . #\Latin_Small_Letter_U_With_Diaeresis_And_Macron)
     1473         
    13641474                (#\Latin_Capital_Letter_U_With_Diaeresis_And_Acute
    13651475                 . #\Latin_Small_Letter_U_With_Diaeresis_And_Acute)
     1476         
    13661477                (#\Latin_Capital_Letter_U_With_Diaeresis_And_Caron
    13671478                 . #\Latin_Small_Letter_U_With_Diaeresis_And_Caron)
     1479         
    13681480                (#\Latin_Capital_Letter_U_With_Diaeresis_And_Grave
    13691481                 . #\Latin_Small_Letter_U_With_Diaeresis_And_Grave)
     1482         
    13701483                (#\Latin_Capital_Letter_A_With_Diaeresis_And_Macron
    13711484                 . #\Latin_Small_Letter_A_With_Diaeresis_And_Macron)
     1485         
    13721486                (#\Latin_Capital_Letter_A_With_Dot_Above_And_Macron
    13731487                 . #\Latin_Small_Letter_A_With_Dot_Above_And_Macron)
     1488         
    13741489                (#\Latin_Capital_Letter_Ae_With_Macron . #\Latin_Small_Letter_Ae_With_Macron)
     1490         
    13751491                (#\Latin_Capital_Letter_G_With_Stroke . #\Latin_Small_Letter_G_With_Stroke)
     1492         
    13761493                (#\Latin_Capital_Letter_G_With_Caron . #\Latin_Small_Letter_G_With_Caron)
     1494         
    13771495                (#\Latin_Capital_Letter_K_With_Caron . #\Latin_Small_Letter_K_With_Caron)
     1496         
    13781497                (#\Latin_Capital_Letter_O_With_Ogonek . #\Latin_Small_Letter_O_With_Ogonek)
     1498         
    13791499                (#\Latin_Capital_Letter_O_With_Ogonek_And_Macron
    13801500                 . #\Latin_Small_Letter_O_With_Ogonek_And_Macron)
     1501         
    13811502                (#\Latin_Capital_Letter_Ezh_With_Caron . #\Latin_Small_Letter_Ezh_With_Caron)
     1503         
    13821504                (#\Latin_Capital_Letter_Dz . #\Latin_Small_Letter_Dz)
     1505         
    13831506                (#\Latin_Capital_Letter_G_With_Acute . #\Latin_Small_Letter_G_With_Acute)
     1507         
    13841508                (#\Latin_Capital_Letter_Hwair . #\Latin_Small_Letter_Hv)
     1509         
    13851510                (#\Latin_Capital_Letter_Wynn . #\Latin_Letter_Wynn)
     1511         
    13861512                (#\Latin_Capital_Letter_N_With_Grave . #\Latin_Small_Letter_N_With_Grave)
     1513         
    13871514                (#\Latin_Capital_Letter_A_With_Ring_Above_And_Acute
    13881515                 . #\Latin_Small_Letter_A_With_Ring_Above_And_Acute)
     1516         
    13891517                (#\Latin_Capital_Letter_Ae_With_Acute . #\Latin_Small_Letter_Ae_With_Acute)
     1518         
    13901519                (#\Latin_Capital_Letter_O_With_Stroke_And_Acute
    13911520                 . #\Latin_Small_Letter_O_With_Stroke_And_Acute)
     1521         
    13921522                (#\Latin_Capital_Letter_A_With_Double_Grave
    13931523                 . #\Latin_Small_Letter_A_With_Double_Grave)
     1524         
    13941525                (#\Latin_Capital_Letter_A_With_Inverted_Breve
    13951526                 . #\Latin_Small_Letter_A_With_Inverted_Breve)
     1527         
    13961528                (#\Latin_Capital_Letter_E_With_Double_Grave
    13971529                 . #\Latin_Small_Letter_E_With_Double_Grave)
     1530         
    13981531                (#\Latin_Capital_Letter_E_With_Inverted_Breve
    13991532                 . #\Latin_Small_Letter_E_With_Inverted_Breve)
     1533         
    14001534                (#\Latin_Capital_Letter_I_With_Double_Grave
    14011535                 . #\Latin_Small_Letter_I_With_Double_Grave)
     1536         
    14021537                (#\Latin_Capital_Letter_I_With_Inverted_Breve
    14031538                 . #\Latin_Small_Letter_I_With_Inverted_Breve)
     1539         
    14041540                (#\Latin_Capital_Letter_O_With_Double_Grave
    14051541                 . #\Latin_Small_Letter_O_With_Double_Grave)
     1542         
    14061543                (#\Latin_Capital_Letter_O_With_Inverted_Breve
    14071544                 . #\Latin_Small_Letter_O_With_Inverted_Breve)
     1545         
    14081546                (#\Latin_Capital_Letter_R_With_Double_Grave
    14091547                 . #\Latin_Small_Letter_R_With_Double_Grave)
     1548         
    14101549                (#\Latin_Capital_Letter_R_With_Inverted_Breve
    14111550                 . #\Latin_Small_Letter_R_With_Inverted_Breve)
     1551         
    14121552                (#\Latin_Capital_Letter_U_With_Double_Grave
    14131553                 . #\Latin_Small_Letter_U_With_Double_Grave)
     1554         
    14141555                (#\Latin_Capital_Letter_U_With_Inverted_Breve
    14151556                 . #\Latin_Small_Letter_U_With_Inverted_Breve)
     1557         
    14161558                (#\Latin_Capital_Letter_S_With_Comma_Below
    14171559                 . #\Latin_Small_Letter_S_With_Comma_Below)
     1560         
    14181561                (#\Latin_Capital_Letter_T_With_Comma_Below
    14191562                 . #\Latin_Small_Letter_T_With_Comma_Below)
     1563         
    14201564                (#\Latin_Capital_Letter_Yogh . #\Latin_Small_Letter_Yogh)
     1565         
    14211566                (#\Latin_Capital_Letter_H_With_Caron . #\Latin_Small_Letter_H_With_Caron)
     1567         
    14221568                (#\Latin_Capital_Letter_N_With_Long_Right_Leg
    14231569                 . #\Latin_Small_Letter_N_With_Long_Right_Leg)
     1570         
    14241571                (#\Latin_Capital_Letter_Ou . #\Latin_Small_Letter_Ou)
     1572         
    14251573                (#\Latin_Capital_Letter_Z_With_Hook . #\Latin_Small_Letter_Z_With_Hook)
     1574         
    14261575                (#\Latin_Capital_Letter_A_With_Dot_Above
    14271576                 . #\Latin_Small_Letter_A_With_Dot_Above)
     1577         
    14281578                (#\Latin_Capital_Letter_E_With_Cedilla . #\Latin_Small_Letter_E_With_Cedilla)
     1579         
    14291580                (#\Latin_Capital_Letter_O_With_Diaeresis_And_Macron
    14301581                 . #\Latin_Small_Letter_O_With_Diaeresis_And_Macron)
     1582         
    14311583                (#\Latin_Capital_Letter_O_With_Tilde_And_Macron
    14321584                 . #\Latin_Small_Letter_O_With_Tilde_And_Macron)
     1585         
    14331586                (#\Latin_Capital_Letter_O_With_Dot_Above
    14341587                 . #\Latin_Small_Letter_O_With_Dot_Above)
     1588         
    14351589                (#\Latin_Capital_Letter_O_With_Dot_Above_And_Macron
    14361590                 . #\Latin_Small_Letter_O_With_Dot_Above_And_Macron)
     1591         
    14371592                (#\Latin_Capital_Letter_Y_With_Macron . #\Latin_Small_Letter_Y_With_Macron)
     1593         
    14381594                (#\Latin_Capital_Letter_A_With_Stroke . #\U+2C65)
     1595         
    14391596                (#\Latin_Capital_Letter_C_With_Stroke . #\Latin_Small_Letter_C_With_Stroke)
     1597         
    14401598                (#\Latin_Capital_Letter_L_With_Bar . #\Latin_Small_Letter_L_With_Bar)
     1599         
    14411600                (#\Latin_Capital_Letter_T_With_Diagonal_Stroke . #\U+2C66)
     1601         
    14421602                (#\Latin_Capital_Letter_Glottal_Stop . #\Latin_Small_Letter_Glottal_Stop)
     1603         
    14431604                (#\Latin_Capital_Letter_B_With_Stroke . #\Latin_Small_Letter_B_With_Stroke)
     1605         
    14441606                (#\Latin_Capital_Letter_U_Bar . #\Latin_Small_Letter_U_Bar)
     1607         
    14451608                (#\Latin_Capital_Letter_Turned_V . #\Latin_Small_Letter_Turned_V)
     1609         
    14461610                (#\Latin_Capital_Letter_E_With_Stroke . #\Latin_Small_Letter_E_With_Stroke)
     1611         
    14471612                (#\Latin_Capital_Letter_J_With_Stroke . #\Latin_Small_Letter_J_With_Stroke)
     1613         
    14481614                (#\Latin_Capital_Letter_Small_Q_With_Hook_Tail
    14491615                 . #\Latin_Small_Letter_Q_With_Hook_Tail)
     1616         
    14501617                (#\Latin_Capital_Letter_R_With_Stroke . #\Latin_Small_Letter_R_With_Stroke)
     1618         
    14511619                (#\Latin_Capital_Letter_Y_With_Stroke . #\Latin_Small_Letter_Y_With_Stroke)
     1620         
    14521621                (#\Greek_Capital_Letter_Alpha_With_Tonos
    14531622                 . #\Greek_Small_Letter_Alpha_With_Tonos)
     1623         
    14541624                (#\Greek_Capital_Letter_Epsilon_With_Tonos
    14551625                 . #\Greek_Small_Letter_Epsilon_With_Tonos)
     1626         
    14561627                (#\Greek_Capital_Letter_Eta_With_Tonos . #\Greek_Small_Letter_Eta_With_Tonos)
     1628         
    14571629                (#\Greek_Capital_Letter_Iota_With_Tonos
    14581630                 . #\Greek_Small_Letter_Iota_With_Tonos)
     1631         
    14591632                (#\Greek_Capital_Letter_Omicron_With_Tonos
    14601633                 . #\Greek_Small_Letter_Omicron_With_Tonos)
     1634         
    14611635                (#\Greek_Capital_Letter_Upsilon_With_Tonos
    14621636                 . #\Greek_Small_Letter_Upsilon_With_Tonos)
     1637         
    14631638                (#\Greek_Capital_Letter_Omega_With_Tonos
    14641639                 . #\Greek_Small_Letter_Omega_With_Tonos)
     1640         
    14651641                (#\Greek_Capital_Letter_Alpha . #\Greek_Small_Letter_Alpha)
     1642         
    14661643                (#\Greek_Capital_Letter_Beta . #\Greek_Small_Letter_Beta)
     1644         
    14671645                (#\Greek_Capital_Letter_Gamma . #\Greek_Small_Letter_Gamma)
     1646         
    14681647                (#\Greek_Capital_Letter_Delta . #\Greek_Small_Letter_Delta)
     1648         
    14691649                (#\Greek_Capital_Letter_Epsilon . #\Greek_Small_Letter_Epsilon)
     1650         
    14701651                (#\Greek_Capital_Letter_Zeta . #\Greek_Small_Letter_Zeta)
     1652         
    14711653                (#\Greek_Capital_Letter_Eta . #\Greek_Small_Letter_Eta)
     1654         
    14721655                (#\Greek_Capital_Letter_Theta . #\Greek_Small_Letter_Theta)
     1656         
    14731657                (#\Greek_Capital_Letter_Iota . #\Greek_Small_Letter_Iota)
     1658         
    14741659                (#\Greek_Capital_Letter_Kappa . #\Greek_Small_Letter_Kappa)
     1660         
    14751661                (#\Greek_Capital_Letter_Lamda . #\Greek_Small_Letter_Lamda)
     1662         
    14761663                (#\Greek_Capital_Letter_Mu . #\Greek_Small_Letter_Mu)
     1664         
    14771665                (#\Greek_Capital_Letter_Nu . #\Greek_Small_Letter_Nu)
     1666         
    14781667                (#\Greek_Capital_Letter_Xi . #\Greek_Small_Letter_Xi)
     1668         
    14791669                (#\Greek_Capital_Letter_Omicron . #\Greek_Small_Letter_Omicron)
     1670         
    14801671                (#\Greek_Capital_Letter_Pi . #\Greek_Small_Letter_Pi)
     1672         
    14811673                (#\Greek_Capital_Letter_Rho . #\Greek_Small_Letter_Rho)
     1674         
    14821675                (#\Greek_Capital_Letter_Sigma . #\Greek_Small_Letter_Sigma)
     1676         
    14831677                (#\Greek_Capital_Letter_Tau . #\Greek_Small_Letter_Tau)
     1678         
    14841679                (#\Greek_Capital_Letter_Upsilon . #\Greek_Small_Letter_Upsilon)
     1680         
    14851681                (#\Greek_Capital_Letter_Phi . #\Greek_Small_Letter_Phi)
     1682         
    14861683                (#\Greek_Capital_Letter_Chi . #\Greek_Small_Letter_Chi)
     1684         
    14871685                (#\Greek_Capital_Letter_Psi . #\Greek_Small_Letter_Psi)
     1686         
    14881687                (#\Greek_Capital_Letter_Omega . #\Greek_Small_Letter_Omega)
     1688         
    14891689                (#\Greek_Capital_Letter_Iota_With_Dialytika
    14901690                 . #\Greek_Small_Letter_Iota_With_Dialytika)
     1691         
    14911692                (#\Greek_Capital_Letter_Upsilon_With_Dialytika
    14921693                 . #\Greek_Small_Letter_Upsilon_With_Dialytika)
     1694         
    14931695                (#\Greek_Letter_Archaic_Koppa . #\Greek_Small_Letter_Archaic_Koppa)
     1696         
    14941697                (#\Greek_Letter_Stigma . #\Greek_Small_Letter_Stigma)
     1698         
    14951699                (#\Greek_Letter_Digamma . #\Greek_Small_Letter_Digamma)
     1700         
    14961701                (#\Greek_Letter_Koppa . #\Greek_Small_Letter_Koppa)
     1702         
    14971703                (#\Greek_Letter_Sampi . #\Greek_Small_Letter_Sampi)
     1704         
    14981705                (#\Coptic_Capital_Letter_Shei . #\Coptic_Small_Letter_Shei)
     1706         
    14991707                (#\Coptic_Capital_Letter_Fei . #\Coptic_Small_Letter_Fei)
     1708         
    15001709                (#\Coptic_Capital_Letter_Khei . #\Coptic_Small_Letter_Khei)
     1710         
    15011711                (#\Coptic_Capital_Letter_Hori . #\Coptic_Small_Letter_Hori)
     1712         
    15021713                (#\Coptic_Capital_Letter_Gangia . #\Coptic_Small_Letter_Gangia)
     1714         
    15031715                (#\Coptic_Capital_Letter_Shima . #\Coptic_Small_Letter_Shima)
     1716         
    15041717                (#\Coptic_Capital_Letter_Dei . #\Coptic_Small_Letter_Dei)
     1718         
    15051719                (#\Greek_Capital_Letter_Sho . #\Greek_Small_Letter_Sho)
     1720         
    15061721                (#\Greek_Capital_Lunate_Sigma_Symbol . #\Greek_Lunate_Sigma_Symbol)
     1722         
    15071723                (#\Greek_Capital_Letter_San . #\Greek_Small_Letter_San)
     1724         
    15081725                (#\Greek_Capital_Reversed_Lunate_Sigma_Symbol
    15091726                 . #\Greek_Small_Reversed_Lunate_Sigma_Symbol)
     1727         
    15101728                (#\Greek_Capital_Dotted_Lunate_Sigma_Symbol
    15111729                 . #\Greek_Small_Dotted_Lunate_Sigma_Symbol)
     1730         
    15121731                (#\Greek_Capital_Reversed_Dotted_Lunate_Sigma_Symbol
    15131732                 . #\Greek_Small_Reversed_Dotted_Lunate_Sigma_Symbol)
     1733         
    15141734                (#\Cyrillic_Capital_Letter_Ie_With_Grave
    15151735                 . #\Cyrillic_Small_Letter_Ie_With_Grave)
     1736         
    15161737                (#\Cyrillic_Capital_Letter_Io . #\Cyrillic_Small_Letter_Io)
     1738         
    15171739                (#\Cyrillic_Capital_Letter_Dje . #\Cyrillic_Small_Letter_Dje)
     1740         
    15181741                (#\Cyrillic_Capital_Letter_Gje . #\Cyrillic_Small_Letter_Gje)
     1742         
    15191743                (#\Cyrillic_Capital_Letter_Ukrainian_Ie
    15201744                 . #\Cyrillic_Small_Letter_Ukrainian_Ie)
     1745         
    15211746                (#\Cyrillic_Capital_Letter_Dze . #\Cyrillic_Small_Letter_Dze)
     1747         
    15221748                (#\Cyrillic_Capital_Letter_Byelorussian-Ukrainian_I
    15231749                 . #\Cyrillic_Small_Letter_Byelorussian-Ukrainian_I)
     1750         
    15241751                (#\Cyrillic_Capital_Letter_Yi . #\Cyrillic_Small_Letter_Yi)
     1752         
    15251753                (#\Cyrillic_Capital_Letter_Je . #\Cyrillic_Small_Letter_Je)
     1754         
    15261755                (#\Cyrillic_Capital_Letter_Lje . #\Cyrillic_Small_Letter_Lje)
     1756         
    15271757                (#\Cyrillic_Capital_Letter_Nje . #\Cyrillic_Small_Letter_Nje)
     1758         
    15281759                (#\Cyrillic_Capital_Letter_Tshe . #\Cyrillic_Small_Letter_Tshe)
     1760         
    15291761                (#\Cyrillic_Capital_Letter_Kje . #\Cyrillic_Small_Letter_Kje)
     1762         
    15301763                (#\Cyrillic_Capital_Letter_I_With_Grave
    15311764                 . #\Cyrillic_Small_Letter_I_With_Grave)
     1765         
    15321766                (#\Cyrillic_Capital_Letter_Short_U . #\Cyrillic_Small_Letter_Short_U)
     1767         
    15331768                (#\Cyrillic_Capital_Letter_Dzhe . #\Cyrillic_Small_Letter_Dzhe)
     1769         
    15341770                (#\Cyrillic_Capital_Letter_A . #\Cyrillic_Small_Letter_A)
     1771         
    15351772                (#\Cyrillic_Capital_Letter_Be . #\Cyrillic_Small_Letter_Be)
     1773         
    15361774                (#\Cyrillic_Capital_Letter_Ve . #\Cyrillic_Small_Letter_Ve)
     1775         
    15371776                (#\Cyrillic_Capital_Letter_Ghe . #\Cyrillic_Small_Letter_Ghe)
     1777         
    15381778                (#\Cyrillic_Capital_Letter_De . #\Cyrillic_Small_Letter_De)
     1779         
    15391780                (#\Cyrillic_Capital_Letter_Ie . #\Cyrillic_Small_Letter_Ie)
     1781         
    15401782                (#\Cyrillic_Capital_Letter_Zhe . #\Cyrillic_Small_Letter_Zhe)
     1783         
    15411784                (#\Cyrillic_Capital_Letter_Ze . #\Cyrillic_Small_Letter_Ze)
     1785         
    15421786                (#\Cyrillic_Capital_Letter_I . #\Cyrillic_Small_Letter_I)
     1787         
    15431788                (#\Cyrillic_Capital_Letter_Short_I . #\Cyrillic_Small_Letter_Short_I)
     1789         
    15441790                (#\Cyrillic_Capital_Letter_Ka . #\Cyrillic_Small_Letter_Ka)
     1791         
    15451792                (#\Cyrillic_Capital_Letter_El . #\Cyrillic_Small_Letter_El)
     1793         
    15461794                (#\Cyrillic_Capital_Letter_Em . #\Cyrillic_Small_Letter_Em)
     1795         
    15471796                (#\Cyrillic_Capital_Letter_En . #\Cyrillic_Small_Letter_En)
     1797         
    15481798                (#\Cyrillic_Capital_Letter_O . #\Cyrillic_Small_Letter_O)
     1799         
    15491800                (#\Cyrillic_Capital_Letter_Pe . #\Cyrillic_Small_Letter_Pe)
     1801         
    15501802                (#\Cyrillic_Capital_Letter_Er . #\Cyrillic_Small_Letter_Er)
     1803         
    15511804                (#\Cyrillic_Capital_Letter_Es . #\Cyrillic_Small_Letter_Es)
     1805         
    15521806                (#\Cyrillic_Capital_Letter_Te . #\Cyrillic_Small_Letter_Te)
     1807         
    15531808                (#\Cyrillic_Capital_Letter_U . #\Cyrillic_Small_Letter_U)
     1809         
    15541810                (#\Cyrillic_Capital_Letter_Ef . #\Cyrillic_Small_Letter_Ef)
     1811         
    15551812                (#\Cyrillic_Capital_Letter_Ha . #\Cyrillic_Small_Letter_Ha)
     1813         
    15561814                (#\Cyrillic_Capital_Letter_Tse . #\Cyrillic_Small_Letter_Tse)
     1815         
    15571816                (#\Cyrillic_Capital_Letter_Che . #\Cyrillic_Small_Letter_Che)
     1817         
    15581818                (#\Cyrillic_Capital_Letter_Sha . #\Cyrillic_Small_Letter_Sha)
     1819         
    15591820                (#\Cyrillic_Capital_Letter_Shcha . #\Cyrillic_Small_Letter_Shcha)
     1821         
    15601822                (#\Cyrillic_Capital_Letter_Hard_Sign . #\Cyrillic_Small_Letter_Hard_Sign)
     1823         
    15611824                (#\Cyrillic_Capital_Letter_Yeru . #\Cyrillic_Small_Letter_Yeru)
     1825         
    15621826                (#\Cyrillic_Capital_Letter_Soft_Sign . #\Cyrillic_Small_Letter_Soft_Sign)
     1827         
    15631828                (#\Cyrillic_Capital_Letter_E . #\Cyrillic_Small_Letter_E)
     1829         
    15641830                (#\Cyrillic_Capital_Letter_Yu . #\Cyrillic_Small_Letter_Yu)
     1831         
    15651832                (#\Cyrillic_Capital_Letter_Ya . #\Cyrillic_Small_Letter_Ya)
     1833         
    15661834                (#\Cyrillic_Capital_Letter_Omega . #\Cyrillic_Small_Letter_Omega)
     1835         
    15671836                (#\Cyrillic_Capital_Letter_Yat . #\Cyrillic_Small_Letter_Yat)
     1837         
    15681838                (#\Cyrillic_Capital_Letter_Iotified_E . #\Cyrillic_Small_Letter_Iotified_E)
     1839         
    15691840                (#\Cyrillic_Capital_Letter_Little_Yus . #\Cyrillic_Small_Letter_Little_Yus)
     1841         
    15701842                (#\Cyrillic_Capital_Letter_Iotified_Little_Yus
    15711843                 . #\Cyrillic_Small_Letter_Iotified_Little_Yus)
     1844         
    15721845                (#\Cyrillic_Capital_Letter_Big_Yus . #\Cyrillic_Small_Letter_Big_Yus)
     1846         
    15731847                (#\Cyrillic_Capital_Letter_Iotified_Big_Yus
    15741848                 . #\Cyrillic_Small_Letter_Iotified_Big_Yus)
     1849         
    15751850                (#\Cyrillic_Capital_Letter_Ksi . #\Cyrillic_Small_Letter_Ksi)
     1851         
    15761852                (#\Cyrillic_Capital_Letter_Psi . #\Cyrillic_Small_Letter_Psi)
     1853         
    15771854                (#\Cyrillic_Capital_Letter_Fita . #\Cyrillic_Small_Letter_Fita)
     1855         
    15781856                (#\Cyrillic_Capital_Letter_Izhitsa . #\Cyrillic_Small_Letter_Izhitsa)
     1857         
    15791858                (#\Cyrillic_Capital_Letter_Izhitsa_With_Double_Grave_Accent
    15801859                 . #\Cyrillic_Small_Letter_Izhitsa_With_Double_Grave_Accent)
     1860         
    15811861                (#\Cyrillic_Capital_Letter_Uk . #\Cyrillic_Small_Letter_Uk)
     1862         
    15821863                (#\Cyrillic_Capital_Letter_Round_Omega . #\Cyrillic_Small_Letter_Round_Omega)
     1864         
    15831865                (#\Cyrillic_Capital_Letter_Omega_With_Titlo
    15841866                 . #\Cyrillic_Small_Letter_Omega_With_Titlo)
     1867         
    15851868                (#\Cyrillic_Capital_Letter_Ot . #\Cyrillic_Small_Letter_Ot)
     1869         
    15861870                (#\Cyrillic_Capital_Letter_Koppa . #\Cyrillic_Small_Letter_Koppa)
     1871         
    15871872                (#\Cyrillic_Capital_Letter_Short_I_With_Tail
    15881873                 . #\Cyrillic_Small_Letter_Short_I_With_Tail)
     1874         
    15891875                (#\Cyrillic_Capital_Letter_Semisoft_Sign
    15901876                 . #\Cyrillic_Small_Letter_Semisoft_Sign)
     1877         
    15911878                (#\Cyrillic_Capital_Letter_Er_With_Tick
    15921879                 . #\Cyrillic_Small_Letter_Er_With_Tick)
     1880         
    15931881                (#\Cyrillic_Capital_Letter_Ghe_With_Upturn
    15941882                 . #\Cyrillic_Small_Letter_Ghe_With_Upturn)
     1883         
    15951884                (#\Cyrillic_Capital_Letter_Ghe_With_Stroke
    15961885                 . #\Cyrillic_Small_Letter_Ghe_With_Stroke)
     1886         
    15971887                (#\Cyrillic_Capital_Letter_Ghe_With_Middle_Hook
    15981888                 . #\Cyrillic_Small_Letter_Ghe_With_Middle_Hook)
     1889         
    15991890                (#\Cyrillic_Capital_Letter_Zhe_With_Descender
    16001891                 . #\Cyrillic_Small_Letter_Zhe_With_Descender)
     1892         
    16011893                (#\Cyrillic_Capital_Letter_Ze_With_Descender
    16021894                 . #\Cyrillic_Small_Letter_Ze_With_Descender)
     1895         
    16031896                (#\Cyrillic_Capital_Letter_Ka_With_Descender
    16041897                 . #\Cyrillic_Small_Letter_Ka_With_Descender)
     1898         
    16051899                (#\Cyrillic_Capital_Letter_Ka_With_Vertical_Stroke
    16061900                 . #\Cyrillic_Small_Letter_Ka_With_Vertical_Stroke)
     1901         
    16071902                (#\Cyrillic_Capital_Letter_Ka_With_Stroke
    16081903                 . #\Cyrillic_Small_Letter_Ka_With_Stroke)
     1904         
    16091905                (#\Cyrillic_Capital_Letter_Bashkir_Ka . #\Cyrillic_Small_Letter_Bashkir_Ka)
     1906         
    16101907                (#\Cyrillic_Capital_Letter_En_With_Descender
    16111908                 . #\Cyrillic_Small_Letter_En_With_Descender)
     1909         
    16121910                (#\Cyrillic_Capital_Ligature_En_Ghe . #\Cyrillic_Small_Ligature_En_Ghe)
     1911         
    16131912                (#\Cyrillic_Capital_Letter_Pe_With_Middle_Hook
    16141913                 . #\Cyrillic_Small_Letter_Pe_With_Middle_Hook)
     1914         
    16151915                (#\Cyrillic_Capital_Letter_Abkhasian_Ha
    16161916                 . #\Cyrillic_Small_Letter_Abkhasian_Ha)
     1917         
    16171918                (#\Cyrillic_Capital_Letter_Es_With_Descender
    16181919                 . #\Cyrillic_Small_Letter_Es_With_Descender)
     1920         
    16191921                (#\Cyrillic_Capital_Letter_Te_With_Descender
    16201922                 . #\Cyrillic_Small_Letter_Te_With_Descender)
     1923         
    16211924                (#\Cyrillic_Capital_Letter_Straight_U . #\Cyrillic_Small_Letter_Straight_U)
     1925         
    16221926                (#\Cyrillic_Capital_Letter_Straight_U_With_Stroke
    16231927                 . #\Cyrillic_Small_Letter_Straight_U_With_Stroke)
     1928         
    16241929                (#\Cyrillic_Capital_Letter_Ha_With_Descender
    16251930                 . #\Cyrillic_Small_Letter_Ha_With_Descender)
     1931         
    16261932                (#\Cyrillic_Capital_Ligature_Te_Tse . #\Cyrillic_Small_Ligature_Te_Tse)
     1933         
    16271934                (#\Cyrillic_Capital_Letter_Che_With_Descender
    16281935                 . #\Cyrillic_Small_Letter_Che_With_Descender)
     1936         
    16291937                (#\Cyrillic_Capital_Letter_Che_With_Vertical_Stroke
    16301938                 . #\Cyrillic_Small_Letter_Che_With_Vertical_Stroke)
     1939         
    16311940                (#\Cyrillic_Capital_Letter_Shha . #\Cyrillic_Small_Letter_Shha)
     1941         
    16321942                (#\Cyrillic_Capital_Letter_Abkhasian_Che
    16331943                 . #\Cyrillic_Small_Letter_Abkhasian_Che)
     1944         
    16341945                (#\Cyrillic_Capital_Letter_Abkhasian_Che_With_Descender
    16351946                 . #\Cyrillic_Small_Letter_Abkhasian_Che_With_Descender)
     1947         
    16361948                (#\Cyrillic_Letter_Palochka . #\Cyrillic_Small_Letter_Palochka)
     1949         
    16371950                (#\Cyrillic_Capital_Letter_Zhe_With_Breve
    16381951                 . #\Cyrillic_Small_Letter_Zhe_With_Breve)
     1952         
    16391953                (#\Cyrillic_Capital_Letter_Ka_With_Hook
    16401954                 . #\Cyrillic_Small_Letter_Ka_With_Hook)
     1955         
    16411956                (#\Cyrillic_Capital_Letter_El_With_Tail
    16421957                 . #\Cyrillic_Small_Letter_El_With_Tail)
     1958         
    16431959                (#\Cyrillic_Capital_Letter_En_With_Hook
    16441960                 . #\Cyrillic_Small_Letter_En_With_Hook)
     1961         
    16451962                (#\Cyrillic_Capital_Letter_En_With_Tail
    16461963                 . #\Cyrillic_Small_Letter_En_With_Tail)
     1964         
    16471965                (#\Cyrillic_Capital_Letter_Khakassian_Che
    16481966                 . #\Cyrillic_Small_Letter_Khakassian_Che)
     1967         
    16491968                (#\Cyrillic_Capital_Letter_Em_With_Tail
    16501969                 . #\Cyrillic_Small_Letter_Em_With_Tail)
     1970         
    16511971                (#\Cyrillic_Capital_Letter_A_With_Breve
    16521972                 . #\Cyrillic_Small_Letter_A_With_Breve)
     1973         
    16531974                (#\Cyrillic_Capital_Letter_A_With_Diaeresis
    16541975                 . #\Cyrillic_Small_Letter_A_With_Diaeresis)
     1976         
    16551977                (#\Cyrillic_Capital_Ligature_A_Ie . #\Cyrillic_Small_Ligature_A_Ie)
     1978         
    16561979                (#\Cyrillic_Capital_Letter_Ie_With_Breve
    16571980                 . #\Cyrillic_Small_Letter_Ie_With_Breve)
     1981         
    16581982                (#\Cyrillic_Capital_Letter_Schwa . #\Cyrillic_Small_Letter_Schwa)
     1983         
    16591984                (#\Cyrillic_Capital_Letter_Schwa_With_Diaeresis
    16601985                 . #\Cyrillic_Small_Letter_Schwa_With_Diaeresis)
     1986         
    16611987                (#\Cyrillic_Capital_Letter_Zhe_With_Diaeresis
    16621988                 . #\Cyrillic_Small_Letter_Zhe_With_Diaeresis)
     1989         
    16631990                (#\Cyrillic_Capital_Letter_Ze_With_Diaeresis
    16641991                 . #\Cyrillic_Small_Letter_Ze_With_Diaeresis)
     1992         
    16651993                (#\Cyrillic_Capital_Letter_Abkhasian_Dze
    16661994                 . #\Cyrillic_Small_Letter_Abkhasian_Dze)
     1995         
    16671996                (#\Cyrillic_Capital_Letter_I_With_Macron
    16681997                 . #\Cyrillic_Small_Letter_I_With_Macron)
     1998         
    16691999                (#\Cyrillic_Capital_Letter_I_With_Diaeresis
    16702000                 . #\Cyrillic_Small_Letter_I_With_Diaeresis)
     2001         
    16712002                (#\Cyrillic_Capital_Letter_O_With_Diaeresis
    16722003                 . #\Cyrillic_Small_Letter_O_With_Diaeresis)
     2004         
    16732005                (#\Cyrillic_Capital_Letter_Barred_O . #\Cyrillic_Small_Letter_Barred_O)
     2006         
    16742007                (#\Cyrillic_Capital_Letter_Barred_O_With_Diaeresis
    16752008                 . #\Cyrillic_Small_Letter_Barred_O_With_Diaeresis)
     2009         
    16762010                (#\Cyrillic_Capital_Letter_E_With_Diaeresis
    16772011                 . #\Cyrillic_Small_Letter_E_With_Diaeresis)
     2012         
    16782013                (#\Cyrillic_Capital_Letter_U_With_Macron
    16792014                 . #\Cyrillic_Small_Letter_U_With_Macron)
     2015         
    16802016                (#\Cyrillic_Capital_Letter_U_With_Diaeresis
    16812017                 . #\Cyrillic_Small_Letter_U_With_Diaeresis)
     2018         
    16822019                (#\Cyrillic_Capital_Letter_U_With_Double_Acute
    16832020                 . #\Cyrillic_Small_Letter_U_With_Double_Acute)
     2021         
    16842022                (#\Cyrillic_Capital_Letter_Che_With_Diaeresis
    16852023                 . #\Cyrillic_Small_Letter_Che_With_Diaeresis)
     2024         
    16862025                (#\Cyrillic_Capital_Letter_Ghe_With_Descender
    16872026                 . #\Cyrillic_Small_Letter_Ghe_With_Descender)
     2027         
    16882028                (#\Cyrillic_Capital_Letter_Yeru_With_Diaeresis
    16892029                 . #\Cyrillic_Small_Letter_Yeru_With_Diaeresis)
     2030         
    16902031                (#\Cyrillic_Capital_Letter_Ghe_With_Stroke_And_Hook
    16912032                 . #\Cyrillic_Small_Letter_Ghe_With_Stroke_And_Hook)
     2033         
    16922034                (#\Cyrillic_Capital_Letter_Ha_With_Hook
    16932035                 . #\Cyrillic_Small_Letter_Ha_With_Hook)
     2036         
    16942037                (#\Cyrillic_Capital_Letter_Ha_With_Stroke
    16952038                 . #\Cyrillic_Small_Letter_Ha_With_Stroke)
     2039         
    16962040                (#\Cyrillic_Capital_Letter_Komi_De . #\Cyrillic_Small_Letter_Komi_De)
     2041         
    16972042                (#\Cyrillic_Capital_Letter_Komi_Dje . #\Cyrillic_Small_Letter_Komi_Dje)
     2043         
    16982044                (#\Cyrillic_Capital_Letter_Komi_Zje . #\Cyrillic_Small_Letter_Komi_Zje)
     2045         
    16992046                (#\Cyrillic_Capital_Letter_Komi_Dzje . #\Cyrillic_Small_Letter_Komi_Dzje)
     2047         
    17002048                (#\Cyrillic_Capital_Letter_Komi_Lje . #\Cyrillic_Small_Letter_Komi_Lje)
     2049         
    17012050                (#\Cyrillic_Capital_Letter_Komi_Nje . #\Cyrillic_Small_Letter_Komi_Nje)
     2051         
    17022052                (#\Cyrillic_Capital_Letter_Komi_Sje . #\Cyrillic_Small_Letter_Komi_Sje)
     2053         
    17032054                (#\Cyrillic_Capital_Letter_Komi_Tje . #\Cyrillic_Small_Letter_Komi_Tje)
     2055         
    17042056                (#\Cyrillic_Capital_Letter_Reversed_Ze . #\Cyrillic_Small_Letter_Reversed_Ze)
     2057         
    17052058                (#\Cyrillic_Capital_Letter_El_With_Hook
    17062059                 . #\Cyrillic_Small_Letter_El_With_Hook)
     2060         
    17072061                (#\Armenian_Capital_Letter_Ayb . #\Armenian_Small_Letter_Ayb)
     2062         
    17082063                (#\Armenian_Capital_Letter_Ben . #\Armenian_Small_Letter_Ben)
     2064         
    17092065                (#\Armenian_Capital_Letter_Gim . #\Armenian_Small_Letter_Gim)
     2066         
    17102067                (#\Armenian_Capital_Letter_Da . #\Armenian_Small_Letter_Da)
     2068         
    17112069                (#\Armenian_Capital_Letter_Ech . #\Armenian_Small_Letter_Ech)
     2070         
    17122071                (#\Armenian_Capital_Letter_Za . #\Armenian_Small_Letter_Za)
     2072         
    17132073                (#\Armenian_Capital_Letter_Eh . #\Armenian_Small_Letter_Eh)
     2074         
    17142075                (#\Armenian_Capital_Letter_Et . #\Armenian_Small_Letter_Et)
     2076         
    17152077                (#\Armenian_Capital_Letter_To . #\Armenian_Small_Letter_To)
     2078         
    17162079                (#\Armenian_Capital_Letter_Zhe . #\Armenian_Small_Letter_Zhe)
     2080         
    17172081                (#\Armenian_Capital_Letter_Ini . #\Armenian_Small_Letter_Ini)
     2082         
    17182083                (#\Armenian_Capital_Letter_Liwn . #\Armenian_Small_Letter_Liwn)
     2084         
    17192085                (#\Armenian_Capital_Letter_Xeh . #\Armenian_Small_Letter_Xeh)
     2086         
    17202087                (#\Armenian_Capital_Letter_Ca . #\Armenian_Small_Letter_Ca)
     2088         
    17212089                (#\Armenian_Capital_Letter_Ken . #\Armenian_Small_Letter_Ken)
     2090         
    17222091                (#\Armenian_Capital_Letter_Ho . #\Armenian_Small_Letter_Ho)
     2092         
    17232093                (#\Armenian_Capital_Letter_Ja . #\Armenian_Small_Letter_Ja)
     2094         
    17242095                (#\Armenian_Capital_Letter_Ghad . #\Armenian_Small_Letter_Ghad)
     2096         
    17252097                (#\Armenian_Capital_Letter_Cheh . #\Armenian_Small_Letter_Cheh)
     2098         
    17262099                (#\Armenian_Capital_Letter_Men . #\Armenian_Small_Letter_Men)
     2100         
    17272101                (#\Armenian_Capital_Letter_Yi . #\Armenian_Small_Letter_Yi)
     2102         
    17282103                (#\Armenian_Capital_Letter_Now . #\Armenian_Small_Letter_Now)
     2104         
    17292105                (#\Armenian_Capital_Letter_Sha . #\Armenian_Small_Letter_Sha)
     2106         
    17302107                (#\Armenian_Capital_Letter_Vo . #\Armenian_Small_Letter_Vo)
     2108         
    17312109                (#\Armenian_Capital_Letter_Cha . #\Armenian_Small_Letter_Cha)
     2110         
    17322111                (#\Armenian_Capital_Letter_Peh . #\Armenian_Small_Letter_Peh)
     2112         
    17332113                (#\Armenian_Capital_Letter_Jheh . #\Armenian_Small_Letter_Jheh)
     2114         
    17342115                (#\Armenian_Capital_Letter_Ra . #\Armenian_Small_Letter_Ra)
     2116         
    17352117                (#\Armenian_Capital_Letter_Seh . #\Armenian_Small_Letter_Seh)
     2118         
    17362119                (#\Armenian_Capital_Letter_Vew . #\Armenian_Small_Letter_Vew)
     2120         
    17372121                (#\Armenian_Capital_Letter_Tiwn . #\Armenian_Small_Letter_Tiwn)
     2122         
    17382123                (#\Armenian_Capital_Letter_Reh . #\Armenian_Small_Letter_Reh)
     2124         
    17392125                (#\Armenian_Capital_Letter_Co . #\Armenian_Small_Letter_Co)
     2126         
    17402127                (#\Armenian_Capital_Letter_Yiwn . #\Armenian_Small_Letter_Yiwn)
     2128         
    17412129                (#\Armenian_Capital_Letter_Piwr . #\Armenian_Small_Letter_Piwr)
     2130         
    17422131                (#\Armenian_Capital_Letter_Keh . #\Armenian_Small_Letter_Keh)
     2132         
    17432133                (#\Armenian_Capital_Letter_Oh . #\Armenian_Small_Letter_Oh)
     2134         
    17442135                (#\Armenian_Capital_Letter_Feh . #\Armenian_Small_Letter_Feh)
    1745                 (#\U+10A0 . #\U+2D00) (#\U+10A1 . #\U+2D01) (#\U+10A2 . #\U+2D02)
    1746                 (#\U+10A3 . #\U+2D03) (#\U+10A4 . #\U+2D04) (#\U+10A5 . #\U+2D05)
    1747                 (#\U+10A6 . #\U+2D06) (#\U+10A7 . #\U+2D07) (#\U+10A8 . #\U+2D08)
    1748                 (#\U+10A9 . #\U+2D09) (#\U+10AA . #\U+2D0A) (#\U+10AB . #\U+2D0B)
    1749                 (#\U+10AC . #\U+2D0C) (#\U+10AD . #\U+2D0D) (#\U+10AE . #\U+2D0E)
    1750                 (#\U+10AF . #\U+2D0F) (#\U+10B0 . #\U+2D10) (#\U+10B1 . #\U+2D11)
    1751                 (#\U+10B2 . #\U+2D12) (#\U+10B3 . #\U+2D13) (#\U+10B4 . #\U+2D14)
    1752                 (#\U+10B5 . #\U+2D15) (#\U+10B6 . #\U+2D16) (#\U+10B7 . #\U+2D17)
    1753                 (#\U+10B8 . #\U+2D18) (#\U+10B9 . #\U+2D19) (#\U+10BA . #\U+2D1A)
    1754                 (#\U+10BB . #\U+2D1B) (#\U+10BC . #\U+2D1C) (#\U+10BD . #\U+2D1D)
    1755                 (#\U+10BE . #\U+2D1E) (#\U+10BF . #\U+2D1F) (#\U+10C0 . #\U+2D20)
    1756                 (#\U+10C1 . #\U+2D21) (#\U+10C2 . #\U+2D22) (#\U+10C3 . #\U+2D23)
    1757                 (#\U+10C4 . #\U+2D24) (#\U+10C5 . #\U+2D25) (#\U+1E00 . #\U+1E01)
    1758                 (#\U+1E02 . #\U+1E03) (#\U+1E04 . #\U+1E05) (#\U+1E06 . #\U+1E07)
    1759                 (#\U+1E08 . #\U+1E09) (#\U+1E0A . #\U+1E0B) (#\U+1E0C . #\U+1E0D)
    1760                 (#\U+1E0E . #\U+1E0F) (#\U+1E10 . #\U+1E11) (#\U+1E12 . #\U+1E13)
    1761                 (#\U+1E14 . #\U+1E15) (#\U+1E16 . #\U+1E17) (#\U+1E18 . #\U+1E19)
    1762                 (#\U+1E1A . #\U+1E1B) (#\U+1E1C . #\U+1E1D) (#\U+1E1E . #\U+1E1F)
    1763                 (#\U+1E20 . #\U+1E21) (#\U+1E22 . #\U+1E23) (#\U+1E24 . #\U+1E25)
    1764                 (#\U+1E26 . #\U+1E27) (#\U+1E28 . #\U+1E29) (#\U+1E2A . #\U+1E2B)
    1765                 (#\U+1E2C . #\U+1E2D) (#\U+1E2E . #\U+1E2F) (#\U+1E30 . #\U+1E31)
    1766                 (#\U+1E32 . #\U+1E33) (#\U+1E34 . #\U+1E35) (#\U+1E36 . #\U+1E37)
    1767                 (#\U+1E38 . #\U+1E39) (#\U+1E3A . #\U+1E3B) (#\U+1E3C . #\U+1E3D)
    1768                 (#\U+1E3E . #\U+1E3F) (#\U+1E40 . #\U+1E41) (#\U+1E42 . #\U+1E43)
    1769                 (#\U+1E44 . #\U+1E45) (#\U+1E46 . #\U+1E47) (#\U+1E48 . #\U+1E49)
    1770                 (#\U+1E4A . #\U+1E4B) (#\U+1E4C . #\U+1E4D) (#\U+1E4E . #\U+1E4F)
    1771                 (#\U+1E50 . #\U+1E51) (#\U+1E52 . #\U+1E53) (#\U+1E54 . #\U+1E55)
    1772                 (#\U+1E56 . #\U+1E57) (#\U+1E58 . #\U+1E59) (#\U+1E5A . #\U+1E5B)
    1773                 (#\U+1E5C . #\U+1E5D) (#\U+1E5E . #\U+1E5F) (#\U+1E60 . #\U+1E61)
    1774                 (#\U+1E62 . #\U+1E63) (#\U+1E64 . #\U+1E65) (#\U+1E66 . #\U+1E67)
    1775                 (#\U+1E68 . #\U+1E69) (#\U+1E6A . #\U+1E6B) (#\U+1E6C . #\U+1E6D)
    1776                 (#\U+1E6E . #\U+1E6F) (#\U+1E70 . #\U+1E71) (#\U+1E72 . #\U+1E73)
    1777                 (#\U+1E74 . #\U+1E75) (#\U+1E76 . #\U+1E77) (#\U+1E78 . #\U+1E79)
    1778                 (#\U+1E7A . #\U+1E7B) (#\U+1E7C . #\U+1E7D) (#\U+1E7E . #\U+1E7F)
    1779                 (#\U+1E80 . #\U+1E81) (#\U+1E82 . #\U+1E83) (#\U+1E84 . #\U+1E85)
    1780                 (#\U+1E86 . #\U+1E87) (#\U+1E88 . #\U+1E89) (#\U+1E8A . #\U+1E8B)
    1781                 (#\U+1E8C . #\U+1E8D) (#\U+1E8E . #\U+1E8F) (#\U+1E90 . #\U+1E91)
    1782                 (#\U+1E92 . #\U+1E93) (#\U+1E94 . #\U+1E95) (#\U+1EA0 . #\U+1EA1)
    1783                 (#\U+1EA2 . #\U+1EA3) (#\U+1EA4 . #\U+1EA5) (#\U+1EA6 . #\U+1EA7)
    1784                 (#\U+1EA8 . #\U+1EA9) (#\U+1EAA . #\U+1EAB) (#\U+1EAC . #\U+1EAD)
    1785                 (#\U+1EAE . #\U+1EAF) (#\U+1EB0 . #\U+1EB1) (#\U+1EB2 . #\U+1EB3)
    1786                 (#\U+1EB4 . #\U+1EB5) (#\U+1EB6 . #\U+1EB7) (#\U+1EB8 . #\U+1EB9)
    1787                 (#\U+1EBA . #\U+1EBB) (#\U+1EBC . #\U+1EBD) (#\U+1EBE . #\U+1EBF)
    1788                 (#\U+1EC0 . #\U+1EC1) (#\U+1EC2 . #\U+1EC3) (#\U+1EC4 . #\U+1EC5)
    1789                 (#\U+1EC6 . #\U+1EC7) (#\U+1EC8 . #\U+1EC9) (#\U+1ECA . #\U+1ECB)
    1790                 (#\U+1ECC . #\U+1ECD) (#\U+1ECE . #\U+1ECF) (#\U+1ED0 . #\U+1ED1)
    1791                 (#\U+1ED2 . #\U+1ED3) (#\U+1ED4 . #\U+1ED5) (#\U+1ED6 . #\U+1ED7)
    1792                 (#\U+1ED8 . #\U+1ED9) (#\U+1EDA . #\U+1EDB) (#\U+1EDC . #\U+1EDD)
    1793                 (#\U+1EDE . #\U+1EDF) (#\U+1EE0 . #\U+1EE1) (#\U+1EE2 . #\U+1EE3)
    1794                 (#\U+1EE4 . #\U+1EE5) (#\U+1EE6 . #\U+1EE7) (#\U+1EE8 . #\U+1EE9)
    1795                 (#\U+1EEA . #\U+1EEB) (#\U+1EEC . #\U+1EED) (#\U+1EEE . #\U+1EEF)
    1796                 (#\U+1EF0 . #\U+1EF1) (#\U+1EF2 . #\U+1EF3) (#\U+1EF4 . #\U+1EF5)
    1797                 (#\U+1EF6 . #\U+1EF7) (#\U+1EF8 . #\U+1EF9) (#\U+1F08 . #\U+1F00)
    1798                 (#\U+1F09 . #\U+1F01) (#\U+1F0A . #\U+1F02) (#\U+1F0B . #\U+1F03)
    1799                 (#\U+1F0C . #\U+1F04) (#\U+1F0D . #\U+1F05) (#\U+1F0E . #\U+1F06)
    1800                 (#\U+1F0F . #\U+1F07) (#\U+1F18 . #\U+1F10) (#\U+1F19 . #\U+1F11)
    1801                 (#\U+1F1A . #\U+1F12) (#\U+1F1B . #\U+1F13) (#\U+1F1C . #\U+1F14)
    1802                 (#\U+1F1D . #\U+1F15) (#\U+1F28 . #\U+1F20) (#\U+1F29 . #\U+1F21)
    1803                 (#\U+1F2A . #\U+1F22) (#\U+1F2B . #\U+1F23) (#\U+1F2C . #\U+1F24)
    1804                 (#\U+1F2D . #\U+1F25) (#\U+1F2E . #\U+1F26) (#\U+1F2F . #\U+1F27)
    1805                 (#\U+1F38 . #\U+1F30) (#\U+1F39 . #\U+1F31) (#\U+1F3A . #\U+1F32)
    1806                 (#\U+1F3B . #\U+1F33) (#\U+1F3C . #\U+1F34) (#\U+1F3D . #\U+1F35)
    1807                 (#\U+1F3E . #\U+1F36) (#\U+1F3F . #\U+1F37) (#\U+1F48 . #\U+1F40)
    1808                 (#\U+1F49 . #\U+1F41) (#\U+1F4A . #\U+1F42) (#\U+1F4B . #\U+1F43)
    1809                 (#\U+1F4C . #\U+1F44) (#\U+1F4D . #\U+1F45) (#\U+1F59 . #\U+1F51)
    1810                 (#\U+1F5B . #\U+1F53) (#\U+1F5D . #\U+1F55) (#\U+1F5F . #\U+1F57)
    1811                 (#\U+1F68 . #\U+1F60) (#\U+1F69 . #\U+1F61) (#\U+1F6A . #\U+1F62)
    1812                 (#\U+1F6B . #\U+1F63) (#\U+1F6C . #\U+1F64) (#\U+1F6D . #\U+1F65)
    1813                 (#\U+1F6E . #\U+1F66) (#\U+1F6F . #\U+1F67) (#\U+1F88 . #\U+1F80)
    1814                 (#\U+1F89 . #\U+1F81) (#\U+1F8A . #\U+1F82) (#\U+1F8B . #\U+1F83)
    1815                 (#\U+1F8C . #\U+1F84) (#\U+1F8D . #\U+1F85) (#\U+1F8E . #\U+1F86)
    1816                 (#\U+1F8F . #\U+1F87) (#\U+1F98 . #\U+1F90) (#\U+1F99 . #\U+1F91)
    1817                 (#\U+1F9A . #\U+1F92) (#\U+1F9B . #\U+1F93) (#\U+1F9C . #\U+1F94)
    1818                 (#\U+1F9D . #\U+1F95) (#\U+1F9E . #\U+1F96) (#\U+1F9F . #\U+1F97)
    1819                 (#\U+1FA8 . #\U+1FA0) (#\U+1FA9 . #\U+1FA1) (#\U+1FAA . #\U+1FA2)
    1820                 (#\U+1FAB . #\U+1FA3) (#\U+1FAC . #\U+1FA4) (#\U+1FAD . #\U+1FA5)
    1821                 (#\U+1FAE . #\U+1FA6) (#\U+1FAF . #\U+1FA7) (#\U+1FB8 . #\U+1FB0)
    1822                 (#\U+1FB9 . #\U+1FB1) (#\U+1FBA . #\U+1F70) (#\U+1FBB . #\U+1F71)
    1823                 (#\U+1FBC . #\U+1FB3) (#\U+1FC8 . #\U+1F72) (#\U+1FC9 . #\U+1F73)
    1824                 (#\U+1FCA . #\U+1F74) (#\U+1FCB . #\U+1F75) (#\U+1FCC . #\U+1FC3)
    1825                 (#\U+1FD8 . #\U+1FD0) (#\U+1FD9 . #\U+1FD1) (#\U+1FDA . #\U+1F76)
    1826                 (#\U+1FDB . #\U+1F77) (#\U+1FE8 . #\U+1FE0) (#\U+1FE9 . #\U+1FE1)
    1827                 (#\U+1FEA . #\U+1F7A) (#\U+1FEB . #\U+1F7B) (#\U+1FEC . #\U+1FE5)
    1828                 (#\U+1FF8 . #\U+1F78) (#\U+1FF9 . #\U+1F79) (#\U+1FFA . #\U+1F7C)
    1829                 (#\U+1FFB . #\U+1F7D) (#\U+1FFC . #\U+1FF3) (#\U+2132 . #\U+214E)
    1830                 (#\U+2160 . #\U+2170) (#\U+2161 . #\U+2171) (#\U+2162 . #\U+2172)
    1831                 (#\U+2163 . #\U+2173) (#\U+2164 . #\U+2174) (#\U+2165 . #\U+2175)
    1832                 (#\U+2166 . #\U+2176) (#\U+2167 . #\U+2177) (#\U+2168 . #\U+2178)
    1833                 (#\U+2169 . #\U+2179) (#\U+216A . #\U+217A) (#\U+216B . #\U+217B)
    1834                 (#\U+216C . #\U+217C) (#\U+216D . #\U+217D) (#\U+216E . #\U+217E)
    1835                 (#\U+216F . #\U+217F) (#\U+2183 . #\U+2184) (#\U+24B6 . #\U+24D0)
    1836                 (#\U+24B7 . #\U+24D1) (#\U+24B8 . #\U+24D2) (#\U+24B9 . #\U+24D3)
    1837                 (#\U+24BA . #\U+24D4) (#\U+24BB . #\U+24D5) (#\U+24BC . #\U+24D6)
    1838                 (#\U+24BD . #\U+24D7) (#\U+24BE . #\U+24D8) (#\U+24BF . #\U+24D9)
    1839                 (#\U+24C0 . #\U+24DA) (#\U+24C1 . #\U+24DB) (#\U+24C2 . #\U+24DC)
    1840                 (#\U+24C3 . #\U+24DD) (#\U+24C4 . #\U+24DE) (#\U+24C5 . #\U+24DF)
    1841                 (#\U+24C6 . #\U+24E0) (#\U+24C7 . #\U+24E1) (#\U+24C8 . #\U+24E2)
    1842                 (#\U+24C9 . #\U+24E3) (#\U+24CA . #\U+24E4) (#\U+24CB . #\U+24E5)
    1843                 (#\U+24CC . #\U+24E6) (#\U+24CD . #\U+24E7) (#\U+24CE . #\U+24E8)
    1844                 (#\U+24CF . #\U+24E9) (#\U+2C00 . #\U+2C30) (#\U+2C01 . #\U+2C31)
    1845                 (#\U+2C02 . #\U+2C32) (#\U+2C03 . #\U+2C33) (#\U+2C04 . #\U+2C34)
    1846                 (#\U+2C05 . #\U+2C35) (#\U+2C06 . #\U+2C36) (#\U+2C07 . #\U+2C37)
    1847                 (#\U+2C08 . #\U+2C38) (#\U+2C09 . #\U+2C39) (#\U+2C0A . #\U+2C3A)
    1848                 (#\U+2C0B . #\U+2C3B) (#\U+2C0C . #\U+2C3C) (#\U+2C0D . #\U+2C3D)
    1849                 (#\U+2C0E . #\U+2C3E) (#\U+2C0F . #\U+2C3F) (#\U+2C10 . #\U+2C40)
    1850                 (#\U+2C11 . #\U+2C41) (#\U+2C12 . #\U+2C42) (#\U+2C13 . #\U+2C43)
    1851                 (#\U+2C14 . #\U+2C44) (#\U+2C15 . #\U+2C45) (#\U+2C16 . #\U+2C46)
    1852                 (#\U+2C17 . #\U+2C47) (#\U+2C18 . #\U+2C48) (#\U+2C19 . #\U+2C49)
    1853                 (#\U+2C1A . #\U+2C4A) (#\U+2C1B . #\U+2C4B) (#\U+2C1C . #\U+2C4C)
    1854                 (#\U+2C1D . #\U+2C4D) (#\U+2C1E . #\U+2C4E) (#\U+2C1F . #\U+2C4F)
    1855                 (#\U+2C20 . #\U+2C50) (#\U+2C21 . #\U+2C51) (#\U+2C22 . #\U+2C52)
    1856                 (#\U+2C23 . #\U+2C53) (#\U+2C24 . #\U+2C54) (#\U+2C25 . #\U+2C55)
    1857                 (#\U+2C26 . #\U+2C56) (#\U+2C27 . #\U+2C57) (#\U+2C28 . #\U+2C58)
    1858                 (#\U+2C29 . #\U+2C59) (#\U+2C2A . #\U+2C5A) (#\U+2C2B . #\U+2C5B)
    1859                 (#\U+2C2C . #\U+2C5C) (#\U+2C2D . #\U+2C5D) (#\U+2C2E . #\U+2C5E)
    1860                 (#\U+2C60 . #\U+2C61) (#\U+2C62 . #\Latin_Small_Letter_L_With_Middle_Tilde)
    1861                 (#\U+2C63 . #\U+1D7D) (#\U+2C64 . #\Latin_Small_Letter_R_With_Tail)
    1862                 (#\U+2C67 . #\U+2C68) (#\U+2C69 . #\U+2C6A) (#\U+2C6B . #\U+2C6C)
    1863                 (#\U+2C75 . #\U+2C76) (#\U+2C80 . #\U+2C81) (#\U+2C82 . #\U+2C83)
    1864                 (#\U+2C84 . #\U+2C85) (#\U+2C86 . #\U+2C87) (#\U+2C88 . #\U+2C89)
    1865                 (#\U+2C8A . #\U+2C8B) (#\U+2C8C . #\U+2C8D) (#\U+2C8E . #\U+2C8F)
    1866                 (#\U+2C90 . #\U+2C91) (#\U+2C92 . #\U+2C93) (#\U+2C94 . #\U+2C95)
    1867                 (#\U+2C96 . #\U+2C97) (#\U+2C98 . #\U+2C99) (#\U+2C9A . #\U+2C9B)
    1868                 (#\U+2C9C . #\U+2C9D) (#\U+2C9E . #\U+2C9F) (#\U+2CA0 . #\U+2CA1)
    1869                 (#\U+2CA2 . #\U+2CA3) (#\U+2CA4 . #\U+2CA5) (#\U+2CA6 . #\U+2CA7)
    1870                 (#\U+2CA8 . #\U+2CA9) (#\U+2CAA . #\U+2CAB) (#\U+2CAC . #\U+2CAD)
    1871                 (#\U+2CAE . #\U+2CAF) (#\U+2CB0 . #\U+2CB1) (#\U+2CB2 . #\U+2CB3)
    1872                 (#\U+2CB4 . #\U+2CB5) (#\U+2CB6 . #\U+2CB7) (#\U+2CB8 . #\U+2CB9)
    1873                 (#\U+2CBA . #\U+2CBB) (#\U+2CBC . #\U+2CBD) (#\U+2CBE . #\U+2CBF)
    1874                 (#\U+2CC0 . #\U+2CC1) (#\U+2CC2 . #\U+2CC3) (#\U+2CC4 . #\U+2CC5)
    1875                 (#\U+2CC6 . #\U+2CC7) (#\U+2CC8 . #\U+2CC9) (#\U+2CCA . #\U+2CCB)
    1876                 (#\U+2CCC . #\U+2CCD) (#\U+2CCE . #\U+2CCF) (#\U+2CD0 . #\U+2CD1)
    1877                 (#\U+2CD2 . #\U+2CD3) (#\U+2CD4 . #\U+2CD5) (#\U+2CD6 . #\U+2CD7)
    1878                 (#\U+2CD8 . #\U+2CD9) (#\U+2CDA . #\U+2CDB) (#\U+2CDC . #\U+2CDD)
    1879                 (#\U+2CDE . #\U+2CDF) (#\U+2CE0 . #\U+2CE1) (#\U+2CE2 . #\U+2CE3)
    1880                 (#\U+FF21 . #\U+FF41) (#\U+FF22 . #\U+FF42) (#\U+FF23 . #\U+FF43)
    1881                 (#\U+FF24 . #\U+FF44) (#\U+FF25 . #\U+FF45) (#\U+FF26 . #\U+FF46)
    1882                 (#\U+FF27 . #\U+FF47) (#\U+FF28 . #\U+FF48) (#\U+FF29 . #\U+FF49)
    1883                 (#\U+FF2A . #\U+FF4A) (#\U+FF2B . #\U+FF4B) (#\U+FF2C . #\U+FF4C)
    1884                 (#\U+FF2D . #\U+FF4D) (#\U+FF2E . #\U+FF4E) (#\U+FF2F . #\U+FF4F)
    1885                 (#\U+FF30 . #\U+FF50) (#\U+FF31 . #\U+FF51) (#\U+FF32 . #\U+FF52)
    1886                 (#\U+FF33 . #\U+FF53) (#\U+FF34 . #\U+FF54) (#\U+FF35 . #\U+FF55)
    1887                 (#\U+FF36 . #\U+FF56) (#\U+FF37 . #\U+FF57) (#\U+FF38 . #\U+FF58)
    1888                 (#\U+FF39 . #\U+FF59) (#\U+FF3A . #\U+FF5A) (#\U+10400 . #\U+10428)
    1889                 (#\U+10401 . #\U+10429) (#\U+10402 . #\U+1042A) (#\U+10403 . #\U+1042B)
    1890                 (#\U+10404 . #\U+1042C) (#\U+10405 . #\U+1042D) (#\U+10406 . #\U+1042E)
    1891                 (#\U+10407 . #\U+1042F) (#\U+10408 . #\U+10430) (#\U+10409 . #\U+10431)
    1892                 (#\U+1040A . #\U+10432) (#\U+1040B . #\U+10433) (#\U+1040C . #\U+10434)
    1893                 (#\U+1040D . #\U+10435) (#\U+1040E . #\U+10436) (#\U+1040F . #\U+10437)
    1894                 (#\U+10410 . #\U+10438) (#\U+10411 . #\U+10439) (#\U+10412 . #\U+1043A)
    1895                 (#\U+10413 . #\U+1043B) (#\U+10414 . #\U+1043C) (#\U+10415 . #\U+1043D)
    1896                 (#\U+10416 . #\U+1043E) (#\U+10417 . #\U+1043F) (#\U+10418 . #\U+10440)
    1897                 (#\U+10419 . #\U+10441) (#\U+1041A . #\U+10442) (#\U+1041B . #\U+10443)
    1898                 (#\U+1041C . #\U+10444) (#\U+1041D . #\U+10445) (#\U+1041E . #\U+10446)
    1899                 (#\U+1041F . #\U+10447) (#\U+10420 . #\U+10448) (#\U+10421 . #\U+10449)
    1900                 (#\U+10422 . #\U+1044A) (#\U+10423 . #\U+1044B) (#\U+10424 . #\U+1044C)
    1901                 (#\U+10425 . #\U+1044D) (#\U+10426 . #\U+1044E) (#\U+10427 . #\U+1044F)))
    1902   (destructuring-bind (upper . lower) pair
    1903     (setf (gethash upper *non-standard-upper-to-lower*) lower
    1904           (gethash lower *non-standard-lower-to-upper*) upper)))
    1905 
    1906 (assert-hash-table-readonly *non-standard-upper-to-lower*)
    1907 (assert-hash-table-readonly *non-standard-lower-to-upper*)
     2136         
     2137                (#\U+10A0 . #\U+2D00)
     2138          (#\U+10A1 . #\U+2D01)
     2139          (#\U+10A2 . #\U+2D02)
     2140         
     2141                (#\U+10A3 . #\U+2D03)
     2142          (#\U+10A4 . #\U+2D04)
     2143          (#\U+10A5 . #\U+2D05)
     2144         
     2145                (#\U+10A6 . #\U+2D06)
     2146          (#\U+10A7 . #\U+2D07)
     2147          (#\U+10A8 . #\U+2D08)
     2148         
     2149                (#\U+10A9 . #\U+2D09)
     2150          (#\U+10AA . #\U+2D0A)
     2151          (#\U+10AB . #\U+2D0B)
     2152         
     2153                (#\U+10AC . #\U+2D0C)
     2154          (#\U+10AD . #\U+2D0D)
     2155          (#\U+10AE . #\U+2D0E)
     2156         
     2157                (#\U+10AF . #\U+2D0F)
     2158          (#\U+10B0 . #\U+2D10)
     2159          (#\U+10B1 . #\U+2D11)
     2160         
     2161                (#\U+10B2 . #\U+2D12)
     2162          (#\U+10B3 . #\U+2D13)
     2163          (#\U+10B4 . #\U+2D14)
     2164         
     2165                (#\U+10B5 . #\U+2D15)
     2166          (#\U+10B6 . #\U+2D16)
     2167          (#\U+10B7 . #\U+2D17)
     2168         
     2169                (#\U+10B8 . #\U+2D18)
     2170          (#\U+10B9 . #\U+2D19)
     2171          (#\U+10BA . #\U+2D1A)
     2172         
     2173                (#\U+10BB . #\U+2D1B)
     2174          (#\U+10BC . #\U+2D1C)
     2175          (#\U+10BD . #\U+2D1D)
     2176         
     2177                (#\U+10BE . #\U+2D1E)
     2178          (#\U+10BF . #\U+2D1F)
     2179          (#\U+10C0 . #\U+2D20)
     2180         
     2181                (#\U+10C1 . #\U+2D21)
     2182          (#\U+10C2 . #\U+2D22)
     2183          (#\U+10C3 . #\U+2D23)
     2184         
     2185                (#\U+10C4 . #\U+2D24)
     2186          (#\U+10C5 . #\U+2D25)
     2187          (#\U+1E00 . #\U+1E01)
     2188         
     2189                (#\U+1E02 . #\U+1E03)
     2190          (#\U+1E04 . #\U+1E05)
     2191          (#\U+1E06 . #\U+1E07)
     2192         
     2193                (#\U+1E08 . #\U+1E09)
     2194          (#\U+1E0A . #\U+1E0B)
     2195          (#\U+1E0C . #\U+1E0D)
     2196         
     2197                (#\U+1E0E . #\U+1E0F)
     2198          (#\U+1E10 . #\U+1E11)
     2199          (#\U+1E12 . #\U+1E13)
     2200         
     2201                (#\U+1E14 . #\U+1E15)
     2202          (#\U+1E16 . #\U+1E17)
     2203          (#\U+1E18 . #\U+1E19)
     2204         
     2205                (#\U+1E1A . #\U+1E1B)
     2206          (#\U+1E1C . #\U+1E1D)
     2207          (#\U+1E1E . #\U+1E1F)
     2208         
     2209                (#\U+1E20 . #\U+1E21)
     2210          (#\U+1E22 . #\U+1E23)
     2211          (#\U+1E24 . #\U+1E25)
     2212         
     2213                (#\U+1E26 . #\U+1E27)
     2214          (#\U+1E28 . #\U+1E29)
     2215          (#\U+1E2A . #\U+1E2B)
     2216         
     2217                (#\U+1E2C . #\U+1E2D)
     2218          (#\U+1E2E . #\U+1E2F)
     2219          (#\U+1E30 . #\U+1E31)
     2220         
     2221                (#\U+1E32 . #\U+1E33)
     2222          (#\U+1E34 . #\U+1E35)
     2223          (#\U+1E36 . #\U+1E37)
     2224         
     2225                (#\U+1E38 . #\U+1E39)
     2226          (#\U+1E3A . #\U+1E3B)
     2227          (#\U+1E3C . #\U+1E3D)
     2228         
     2229                (#\U+1E3E . #\U+1E3F)
     2230          (#\U+1E40 . #\U+1E41)
     2231          (#\U+1E42 . #\U+1E43)
     2232         
     2233                (#\U+1E44 . #\U+1E45)
     2234          (#\U+1E46 . #\U+1E47)
     2235          (#\U+1E48 . #\U+1E49)
     2236         
     2237                (#\U+1E4A . #\U+1E4B)
     2238          (#\U+1E4C . #\U+1E4D)
     2239          (#\U+1E4E . #\U+1E4F)
     2240         
     2241                (#\U+1E50 . #\U+1E51)
     2242          (#\U+1E52 . #\U+1E53)
     2243          (#\U+1E54 . #\U+1E55)
     2244         
     2245                (#\U+1E56 . #\U+1E57)
     2246          (#\U+1E58 . #\U+1E59)
     2247          (#\U+1E5A . #\U+1E5B)
     2248         
     2249                (#\U+1E5C . #\U+1E5D)
     2250          (#\U+1E5E . #\U+1E5F)
     2251          (#\U+1E60 . #\U+1E61)
     2252         
     2253                (#\U+1E62 . #\U+1E63)
     2254          (#\U+1E64 . #\U+1E65)
     2255          (#\U+1E66 . #\U+1E67)
     2256         
     2257                (#\U+1E68 . #\U+1E69)
     2258          (#\U+1E6A . #\U+1E6B)
     2259          (#\U+1E6C . #\U+1E6D)
     2260         
     2261                (#\U+1E6E . #\U+1E6F)
     2262          (#\U+1E70 . #\U+1E71)
     2263          (#\U+1E72 . #\U+1E73)
     2264         
     2265                (#\U+1E74 . #\U+1E75)
     2266          (#\U+1E76 . #\U+1E77)
     2267          (#\U+1E78 . #\U+1E79)
     2268         
     2269                (#\U+1E7A . #\U+1E7B)
     2270          (#\U+1E7C . #\U+1E7D)
     2271          (#\U+1E7E . #\U+1E7F)
     2272         
     2273                (#\U+1E80 . #\U+1E81)
     2274          (#\U+1E82 . #\U+1E83)
     2275          (#\U+1E84 . #\U+1E85)
     2276         
     2277                (#\U+1E86 . #\U+1E87)
     2278          (#\U+1E88 . #\U+1E89)
     2279          (#\U+1E8A . #\U+1E8B)
     2280         
     2281                (#\U+1E8C . #\U+1E8D)
     2282          (#\U+1E8E . #\U+1E8F)
     2283          (#\U+1E90 . #\U+1E91)
     2284         
     2285                (#\U+1E92 . #\U+1E93)
     2286          (#\U+1E94 . #\U+1E95)
     2287          (#\U+1EA0 . #\U+1EA1)
     2288         
     2289                (#\U+1EA2 . #\U+1EA3)
     2290          (#\U+1EA4 . #\U+1EA5)
     2291          (#\U+1EA6 . #\U+1EA7)
     2292         
     2293                (#\U+1EA8 . #\U+1EA9)
     2294          (#\U+1EAA . #\U+1EAB)
     2295          (#\U+1EAC . #\U+1EAD)
     2296         
     2297                (#\U+1EAE . #\U+1EAF)
     2298          (#\U+1EB0 . #\U+1EB1)
     2299          (#\U+1EB2 . #\U+1EB3)
     2300         
     2301                (#\U+1EB4 . #\U+1EB5)
     2302          (#\U+1EB6 . #\U+1EB7)
     2303          (#\U+1EB8 . #\U+1EB9)
     2304         
     2305                (#\U+1EBA . #\U+1EBB)
     2306          (#\U+1EBC . #\U+1EBD)
     2307          (#\U+1EBE . #\U+1EBF)
     2308         
     2309                (#\U+1EC0 . #\U+1EC1)
     2310          (#\U+1EC2 . #\U+1EC3)
     2311          (#\U+1EC4 . #\U+1EC5)
     2312         
     2313                (#\U+1EC6 . #\U+1EC7)
     2314          (#\U+1EC8 . #\U+1EC9)
     2315          (#\U+1ECA . #\U+1ECB)
     2316         
     2317                (#\U+1ECC . #\U+1ECD)
     2318          (#\U+1ECE . #\U+1ECF)
     2319          (#\U+1ED0 . #\U+1ED1)
     2320         
     2321                (#\U+1ED2 . #\U+1ED3)
     2322          (#\U+1ED4 . #\U+1ED5)
     2323          (#\U+1ED6 . #\U+1ED7)
     2324         
     2325                (#\U+1ED8 . #\U+1ED9)
     2326          (#\U+1EDA . #\U+1EDB)
     2327          (#\U+1EDC . #\U+1EDD)
     2328         
     2329                (#\U+1EDE . #\U+1EDF)
     2330          (#\U+1EE0 . #\U+1EE1)
     2331          (#\U+1EE2 . #\U+1EE3)
     2332         
     2333                (#\U+1EE4 . #\U+1EE5)
     2334          (#\U+1EE6 . #\U+1EE7)
     2335          (#\U+1EE8 . #\U+1EE9)
     2336         
     2337                (#\U+1EEA . #\U+1EEB)
     2338          (#\U+1EEC . #\U+1EED)
     2339          (#\U+1EEE . #\U+1EEF)
     2340         
     2341                (#\U+1EF0 . #\U+1EF1)
     2342          (#\U+1EF2 . #\U+1EF3)
     2343          (#\U+1EF4 . #\U+1EF5)
     2344         
     2345                (#\U+1EF6 . #\U+1EF7)
     2346          (#\U+1EF8 . #\U+1EF9)
     2347          (#\U+1F08 . #\U+1F00)
     2348         
     2349                (#\U+1F09 . #\U+1F01)
     2350          (#\U+1F0A . #\U+1F02)
     2351          (#\U+1F0B . #\U+1F03)
     2352         
     2353                (#\U+1F0C . #\U+1F04)
     2354          (#\U+1F0D . #\U+1F05)
     2355          (#\U+1F0E . #\U+1F06)
     2356         
     2357                (#\U+1F0F . #\U+1F07)
     2358          (#\U+1F18 . #\U+1F10)
     2359          (#\U+1F19 . #\U+1F11)
     2360         
     2361                (#\U+1F1A . #\U+1F12)
     2362          (#\U+1F1B . #\U+1F13)
     2363          (#\U+1F1C . #\U+1F14)
     2364         
     2365                (#\U+1F1D . #\U+1F15)
     2366          (#\U+1F28 . #\U+1F20)
     2367          (#\U+1F29 . #\U+1F21)
     2368         
     2369                (#\U+1F2A . #\U+1F22)
     2370          (#\U+1F2B . #\U+1F23)
     2371          (#\U+1F2C . #\U+1F24)
     2372         
     2373                (#\U+1F2D . #\U+1F25)
     2374          (#\U+1F2E . #\U+1F26)
     2375          (#\U+1F2F . #\U+1F27)
     2376         
     2377                (#\U+1F38 . #\U+1F30)
     2378          (#\U+1F39 . #\U+1F31)
     2379          (#\U+1F3A . #\U+1F32)
     2380         
     2381                (#\U+1F3B . #\U+1F33)
     2382          (#\U+1F3C . #\U+1F34)
     2383          (#\U+1F3D . #\U+1F35)
     2384         
     2385                (#\U+1F3E . #\U+1F36)
     2386          (#\U+1F3F . #\U+1F37)
     2387          (#\U+1F48 . #\U+1F40)
     2388         
     2389                (#\U+1F49 . #\U+1F41)
     2390          (#\U+1F4A . #\U+1F42)
     2391          (#\U+1F4B . #\U+1F43)
     2392         
     2393                (#\U+1F4C . #\U+1F44)
     2394          (#\U+1F4D . #\U+1F45)
     2395          (#\U+1F59 . #\U+1F51)
     2396         
     2397                (#\U+1F5B . #\U+1F53)
     2398          (#\U+1F5D . #\U+1F55)
     2399          (#\U+1F5F . #\U+1F57)
     2400         
     2401                (#\U+1F68 . #\U+1F60)
     2402          (#\U+1F69 . #\U+1F61)
     2403          (#\U+1F6A . #\U+1F62)
     2404         
     2405                (#\U+1F6B . #\U+1F63)
     2406          (#\U+1F6C . #\U+1F64)
     2407          (#\U+1F6D . #\U+1F65)
     2408         
     2409                (#\U+1F6E . #\U+1F66)
     2410          (#\U+1F6F . #\U+1F67)
     2411          (#\U+1F88 . #\U+1F80)
     2412         
     2413                (#\U+1F89 . #\U+1F81)
     2414          (#\U+1F8A . #\U+1F82)
     2415          (#\U+1F8B . #\U+1F83)
     2416         
     2417                (#\U+1F8C . #\U+1F84)
     2418          (#\U+1F8D . #\U+1F85)
     2419          (#\U+1F8E . #\U+1F86)
     2420         
     2421                (#\U+1F8F . #\U+1F87)
     2422          (#\U+1F98 . #\U+1F90)
     2423          (#\U+1F99 . #\U+1F91)
     2424         
     2425                (#\U+1F9A . #\U+1F92)
     2426          (#\U+1F9B . #\U+1F93)
     2427          (#\U+1F9C . #\U+1F94)
     2428         
     2429                (#\U+1F9D . #\U+1F95)
     2430          (#\U+1F9E . #\U+1F96)
     2431          (#\U+1F9F . #\U+1F97)
     2432         
     2433                (#\U+1FA8 . #\U+1FA0)
     2434          (#\U+1FA9 . #\U+1FA1)
     2435          (#\U+1FAA . #\U+1FA2)
     2436         
     2437                (#\U+1FAB . #\U+1FA3)
     2438          (#\U+1FAC . #\U+1FA4)
     2439          (#\U+1FAD . #\U+1FA5)
     2440         
     2441                (#\U+1FAE . #\U+1FA6)
     2442          (#\U+1FAF . #\U+1FA7)
     2443          (#\U+1FB8 . #\U+1FB0)
     2444         
     2445                (#\U+1FB9 . #\U+1FB1)
     2446          (#\U+1FBA . #\U+1F70)
     2447          (#\U+1FBB . #\U+1F71)
     2448         
     2449                (#\U+1FBC . #\U+1FB3)
     2450          (#\U+1FC8 . #\U+1F72)
     2451          (#\U+1FC9 . #\U+1F73)
     2452         
     2453                (#\U+1FCA . #\U+1F74)
     2454          (#\U+1FCB . #\U+1F75)
     2455          (#\U+1FCC . #\U+1FC3)
     2456         
     2457                (#\U+1FD8 . #\U+1FD0)
     2458          (#\U+1FD9 . #\U+1FD1)
     2459          (#\U+1FDA . #\U+1F76)
     2460         
     2461                (#\U+1FDB . #\U+1F77)
     2462          (#\U+1FE8 . #\U+1FE0)
     2463          (#\U+1FE9 . #\U+1FE1)
     2464         
     2465                (#\U+1FEA . #\U+1F7A)
     2466          (#\U+1FEB . #\U+1F7B)
     2467          (#\U+1FEC . #\U+1FE5)
     2468         
     2469                (#\U+1FF8 . #\U+1F78)
     2470          (#\U+1FF9 . #\U+1F79)
     2471          (#\U+1FFA . #\U+1F7C)
     2472         
     2473                (#\U+1FFB . #\U+1F7D)
     2474          (#\U+1FFC . #\U+1FF3)
     2475          (#\U+2132 . #\U+214E)
     2476         
     2477                (#\U+2160 . #\U+2170)
     2478          (#\U+2161 . #\U+2171)
     2479          (#\U+2162 . #\U+2172)
     2480         
     2481                (#\U+2163 . #\U+2173)
     2482          (#\U+2164 . #\U+2174)
     2483          (#\U+2165 . #\U+2175)
     2484         
     2485                (#\U+2166 . #\U+2176)
     2486          (#\U+2167 . #\U+2177)
     2487          (#\U+2168 . #\U+2178)
     2488         
     2489                (#\U+2169 . #\U+2179)
     2490          (#\U+216A . #\U+217A)
     2491          (#\U+216B . #\U+217B)
     2492         
     2493                (#\U+216C . #\U+217C)
     2494          (#\U+216D . #\U+217D)
     2495          (#\U+216E . #\U+217E)
     2496         
     2497                (#\U+216F . #\U+217F)
     2498          (#\U+2183 . #\U+2184)
     2499          (#\U+24B6 . #\U+24D0)
     2500         
     2501                (#\U+24B7 . #\U+24D1)
     2502          (#\U+24B8 . #\U+24D2)
     2503          (#\U+24B9 . #\U+24D3)
     2504         
     2505                (#\U+24BA . #\U+24D4)
     2506          (#\U+24BB . #\U+24D5)
     2507          (#\U+24BC . #\U+24D6)
     2508         
     2509                (#\U+24BD . #\U+24D7)
     2510          (#\U+24BE . #\U+24D8)
     2511          (#\U+24BF . #\U+24D9)
     2512         
     2513                (#\U+24C0 . #\U+24DA)
     2514          (#\U+24C1 . #\U+24DB)
     2515          (#\U+24C2 . #\U+24DC)
     2516         
     2517                (#\U+24C3 . #\U+24DD)
     2518          (#\U+24C4 . #\U+24DE)
     2519          (#\U+24C5 . #\U+24DF)
     2520         
     2521                (#\U+24C6 . #\U+24E0)
     2522          (#\U+24C7 . #\U+24E1)
     2523          (#\U+24C8 . #\U+24E2)
     2524         
     2525                (#\U+24C9 . #\U+24E3)
     2526          (#\U+24CA . #\U+24E4)
     2527          (#\U+24CB . #\U+24E5)
     2528         
     2529                (#\U+24CC . #\U+24E6)
     2530          (#\U+24CD . #\U+24E7)
     2531          (#\U+24CE . #\U+24E8)
     2532         
     2533                (#\U+24CF . #\U+24E9)
     2534          (#\U+2C00 . #\U+2C30)
     2535          (#\U+2C01 . #\U+2C31)
     2536         
     2537                (#\U+2C02 . #\U+2C32)
     2538          (#\U+2C03 . #\U+2C33)
     2539          (#\U+2C04 . #\U+2C34)
     2540         
     2541                (#\U+2C05 . #\U+2C35)
     2542          (#\U+2C06 . #\U+2C36)
     2543          (#\U+2C07 . #\U+2C37)
     2544         
     2545                (#\U+2C08 . #\U+2C38)
     2546          (#\U+2C09 . #\U+2C39)
     2547          (#\U+2C0A . #\U+2C3A)
     2548         
     2549                (#\U+2C0B . #\U+2C3B)
     2550          (#\U+2C0C . #\U+2C3C)
     2551          (#\U+2C0D . #\U+2C3D)
     2552         
     2553                (#\U+2C0E . #\U+2C3E)
     2554          (#\U+2C0F . #\U+2C3F)
     2555          (#\U+2C10 . #\U+2C40)
     2556         
     2557                (#\U+2C11 . #\U+2C41)
     2558          (#\U+2C12 . #\U+2C42)
     2559          (#\U+2C13 . #\U+2C43)
     2560         
     2561                (#\U+2C14 . #\U+2C44)
     2562          (#\U+2C15 . #\U+2C45)
     2563          (#\U+2C16 . #\U+2C46)
     2564         
     2565                (#\U+2C17 . #\U+2C47)
     2566          (#\U+2C18 . #\U+2C48)
     2567          (#\U+2C19 . #\U+2C49)
     2568         
     2569                (#\U+2C1A . #\U+2C4A)
     2570          (#\U+2C1B . #\U+2C4B)
     2571          (#\U+2C1C . #\U+2C4C)
     2572         
     2573                (#\U+2C1D . #\U+2C4D)
     2574          (#\U+2C1E . #\U+2C4E)
     2575          (#\U+2C1F . #\U+2C4F)
     2576         
     2577                (#\U+2C20 . #\U+2C50)
     2578          (#\U+2C21 . #\U+2C51)
     2579          (#\U+2C22 . #\U+2C52)
     2580         
     2581                (#\U+2C23 . #\U+2C53)
     2582          (#\U+2C24 . #\U+2C54)
     2583          (#\U+2C25 . #\U+2C55)
     2584         
     2585                (#\U+2C26 . #\U+2C56)
     2586          (#\U+2C27 . #\U+2C57)
     2587          (#\U+2C28 . #\U+2C58)
     2588         
     2589                (#\U+2C29 . #\U+2C59)
     2590          (#\U+2C2A . #\U+2C5A)
     2591          (#\U+2C2B . #\U+2C5B)
     2592         
     2593                (#\U+2C2C . #\U+2C5C)
     2594          (#\U+2C2D . #\U+2C5D)
     2595          (#\U+2C2E . #\U+2C5E)
     2596         
     2597                (#\U+2C60 . #\U+2C61)
     2598          (#\U+2C62 . #\Latin_Small_Letter_L_With_Middle_Tilde)
     2599         
     2600                (#\U+2C63 . #\U+1D7D)
     2601          (#\U+2C64 . #\Latin_Small_Letter_R_With_Tail)
     2602         
     2603                (#\U+2C67 . #\U+2C68)
     2604          (#\U+2C69 . #\U+2C6A)
     2605          (#\U+2C6B . #\U+2C6C)
     2606         
     2607                (#\U+2C75 . #\U+2C76)
     2608          (#\U+2C80 . #\U+2C81)
     2609          (#\U+2C82 . #\U+2C83)
     2610         
     2611                (#\U+2C84 . #\U+2C85)
     2612          (#\U+2C86 . #\U+2C87)
     2613          (#\U+2C88 . #\U+2C89)
     2614         
     2615                (#\U+2C8A . #\U+2C8B)
     2616          (#\U+2C8C . #\U+2C8D)
     2617          (#\U+2C8E . #\U+2C8F)
     2618         
     2619                (#\U+2C90 . #\U+2C91)
     2620          (#\U+2C92 . #\U+2C93)
     2621          (#\U+2C94 . #\U+2C95)
     2622         
     2623                (#\U+2C96 . #\U+2C97)
     2624          (#\U+2C98 . #\U+2C99)
     2625          (#\U+2C9A . #\U+2C9B)
     2626         
     2627                (#\U+2C9C . #\U+2C9D)
     2628          (#\U+2C9E . #\U+2C9F)
     2629          (#\U+2CA0 . #\U+2CA1)
     2630         
     2631                (#\U+2CA2 . #\U+2CA3)
     2632          (#\U+2CA4 . #\U+2CA5)
     2633          (#\U+2CA6 . #\U+2CA7)
     2634         
     2635                (#\U+2CA8 . #\U+2CA9)
     2636          (#\U+2CAA . #\U+2CAB)
     2637          (#\U+2CAC . #\U+2CAD)
     2638         
     2639                (#\U+2CAE . #\U+2CAF)
     2640          (#\U+2CB0 . #\U+2CB1)
     2641          (#\U+2CB2 . #\U+2CB3)
     2642         
     2643                (#\U+2CB4 . #\U+2CB5)
     2644          (#\U+2CB6 . #\U+2CB7)
     2645          (#\U+2CB8 . #\U+2CB9)
     2646         
     2647                (#\U+2CBA . #\U+2CBB)
     2648          (#\U+2CBC . #\U+2CBD)
     2649          (#\U+2CBE . #\U+2CBF)
     2650         
     2651                (#\U+2CC0 . #\U+2CC1)
     2652          (#\U+2CC2 . #\U+2CC3)
     2653          (#\U+2CC4 . #\U+2CC5)
     2654         
     2655                (#\U+2CC6 . #\U+2CC7)
     2656          (#\U+2CC8 . #\U+2CC9)
     2657          (#\U+2CCA . #\U+2CCB)
     2658         
     2659                (#\U+2CCC . #\U+2CCD)
     2660          (#\U+2CCE . #\U+2CCF)
     2661          (#\U+2CD0 . #\U+2CD1)
     2662         
     2663                (#\U+2CD2 . #\U+2CD3)
     2664          (#\U+2CD4 . #\U+2CD5)
     2665          (#\U+2CD6 . #\U+2CD7)
     2666         
     2667                (#\U+2CD8 . #\U+2CD9)
     2668          (#\U+2CDA . #\U+2CDB)
     2669          (#\U+2CDC . #\U+2CDD)
     2670         
     2671                (#\U+2CDE . #\U+2CDF)
     2672          (#\U+2CE0 . #\U+2CE1)
     2673          (#\U+2CE2 . #\U+2CE3)
     2674         
     2675                (#\U+FF21 . #\U+FF41)
     2676          (#\U+FF22 . #\U+FF42)
     2677          (#\U+FF23 . #\U+FF43)
     2678         
     2679                (#\U+FF24 . #\U+FF44)
     2680          (#\U+FF25 . #\U+FF45)
     2681          (#\U+FF26 . #\U+FF46)
     2682         
     2683                (#\U+FF27 . #\U+FF47)
     2684          (#\U+FF28 . #\U+FF48)
     2685          (#\U+FF29 . #\U+FF49)
     2686         
     2687                (#\U+FF2A . #\U+FF4A)
     2688          (#\U+FF2B . #\U+FF4B)
     2689          (#\U+FF2C . #\U+FF4C)
     2690         
     2691                (#\U+FF2D . #\U+FF4D)
     2692          (#\U+FF2E . #\U+FF4E)
     2693          (#\U+FF2F . #\U+FF4F)
     2694         
     2695                (#\U+FF30 . #\U+FF50)
     2696          (#\U+FF31 . #\U+FF51)
     2697          (#\U+FF32 . #\U+FF52)
     2698         
     2699                (#\U+FF33 . #\U+FF53)
     2700          (#\U+FF34 . #\U+FF54)
     2701          (#\U+FF35 . #\U+FF55)
     2702         
     2703                (#\U+FF36 . #\U+FF56)
     2704          (#\U+FF37 . #\U+FF57)
     2705          (#\U+FF38 . #\U+FF58)
     2706         
     2707                (#\U+FF39 . #\U+FF59)
     2708          (#\U+FF3A . #\U+FF5A)
     2709          (#\U+10400 . #\U+10428)
     2710         
     2711                (#\U+10401 . #\U+10429)
     2712          (#\U+10402 . #\U+1042A)
     2713          (#\U+10403 . #\U+1042B)
     2714         
     2715                (#\U+10404 . #\U+1042C)
     2716          (#\U+10405 . #\U+1042D)
     2717          (#\U+10406 . #\U+1042E)
     2718         
     2719                (#\U+10407 . #\U+1042F)
     2720          (#\U+10408 . #\U+10430)
     2721          (#\U+10409 . #\U+10431)
     2722         
     2723                (#\U+1040A . #\U+10432)
     2724          (#\U+1040B . #\U+10433)
     2725          (#\U+1040C . #\U+10434)
     2726         
     2727                (#\U+1040D . #\U+10435)
     2728          (#\U+1040E . #\U+10436)
     2729          (#\U+1040F . #\U+10437)
     2730         
     2731                (#\U+10410 . #\U+10438)
     2732          (#\U+10411 . #\U+10439)
     2733          (#\U+10412 . #\U+1043A)
     2734         
     2735                (#\U+10413 . #\U+1043B)
     2736          (#\U+10414 . #\U+1043C)
     2737          (#\U+10415 . #\U+1043D)
     2738         
     2739                (#\U+10416 . #\U+1043E)
     2740          (#\U+10417 . #\U+1043F)
     2741          (#\U+10418 . #\U+10440)
     2742         
     2743                (#\U+10419 . #\U+10441)
     2744          (#\U+1041A . #\U+10442)
     2745          (#\U+1041B . #\U+10443)
     2746         
     2747                (#\U+1041C . #\U+10444)
     2748          (#\U+1041D . #\U+10445)
     2749          (#\U+1041E . #\U+10446)
     2750         
     2751                (#\U+1041F . #\U+10447)
     2752          (#\U+10420 . #\U+10448)
     2753          (#\U+10421 . #\U+10449)
     2754         
     2755                (#\U+10422 . #\U+1044A)
     2756          (#\U+10423 . #\U+1044B)
     2757          (#\U+10424 . #\U+1044C)
     2758         
     2759                (#\U+10425 . #\U+1044D)
     2760          (#\U+10426 . #\U+1044E)
     2761          (#\U+10427 . #\U+1044F)
     2762          ))
     2763       (max-upper #\u+0000)
     2764       (max-lower #\u+0000))
     2765  (dolist (pair mapping)
     2766    (destructuring-bind (upper . lower) pair
     2767      (when (char> upper max-upper)
     2768        (setq max-upper upper))
     2769      (when (char> lower max-lower)
     2770        (setq max-lower lower))))
     2771  (let* ((upper-to-lower (make-array (the fixnum (1+ (the fixnum (char-code max-upper)))) :element-type '(signed-byte 16)))
     2772         (lower-to-upper (make-array (the fixnum (1+ (the fixnum (char-code max-lower)))) :element-type '(signed-byte 16))))
     2773  (dolist (pair mapping)
     2774    (destructuring-bind (upper . lower) pair
     2775      (let* ((upper-code (char-code upper))
     2776             (lower-code (char-code lower))
     2777             (diff (- lower-code upper-code)))
     2778        (declare (type (mod #x110000) upper-code lower-code)
     2779                 (type (signed-byte 16) diff))
     2780        (setf (aref upper-to-lower upper-code) diff
     2781              (aref lower-to-upper lower-code) (the fixnum (- diff))))))
     2782  (do* ((upper (char-code #\A) (1+ upper))
     2783        (lower (char-code #\a) (1+ lower)))
     2784       ((> upper (char-code #\Z)))
     2785    (setf (aref upper-to-lower upper) (- lower upper)
     2786          (aref lower-to-upper lower) (- upper lower)))
     2787  (setq *lower-to-upper* lower-to-upper
     2788        *upper-to-lower* upper-to-lower)
     2789  nil))
     2790
     2791(eval-when (:compile-toplevel)
     2792  (declaim (inline %char-code-case-fold)))
     2793
     2794(defun %char-code-case-fold (code table)
     2795  (declare (type (mod #x110000) code)
     2796           (type (simple-array (signed-byte 16) (*)) table))
     2797  (if (>= code (length table))
     2798    code
     2799    (locally (declare (optimize (speed 3) (safety 0)))
     2800      (the fixnum (+ code (the (signed-byte 16) (aref table code)))))))
     2801
     2802(defun %char-code-upcase (code)
     2803  (%char-code-case-fold code *lower-to-upper*))
     2804
     2805(defun char-upcase (c)
     2806  "Return CHAR converted to upper-case if that is possible.  Don't convert
     2807   lowercase eszet (U+DF)."
     2808  (declare (optimize speed))            ; so that %char-code-case-fold inlines
     2809  (code-char (the valid-char-code (%char-code-case-fold (char-code c) *lower-to-upper*))))
     2810
     2811(defun %non-standard-char-code-upcase (code)
     2812  (declare (type (mod #x110000) code))
     2813  (%char-code-upcase code))
     2814
     2815
     2816(defun %char-code-downcase (code)
     2817  (declare (type (mod #x110000) code))
     2818  (let* ((table *upper-to-lower*))
     2819    (declare (type (simple-array (signed-byte 16) (*)) table))
     2820    (if (>= code (length table))
     2821      code
     2822      (locally (declare (optimize (speed 3) (safety 0)))
     2823        (the fixnum (+ code (the (signed-byte 16) (aref table code))))))))
     2824
    19082825
    19092826(defun %non-standard-upper-case-equivalent (char)
    1910   (gethash char *non-standard-lower-to-upper*))
     2827  (let* ((code (char-code char))
     2828         (table *lower-to-upper*)
     2829         (disp 0))
     2830    (declare (type (mod #x110000) code)
     2831             (type (simple-array (signed-byte 16) (*)))
     2832             (type (signed-byte 16) disp))
     2833    (if (< code (length table))
     2834      (setq disp (aref table code)))
     2835    (unless (zerop disp)
     2836      (code-char (+ code disp)))))
     2837   
     2838
     2839
     2840(defun %non-standard-lower-case-equivalent (char)
     2841  (let* ((code (char-code char))
     2842         (table *upper-to-lower*)
     2843         (disp 0))
     2844    (declare (type (mod #x110000) code)
     2845             (type (simple-array (signed-byte 16) (*)))
     2846             (type (signed-byte 16) disp))
     2847    (if (< code (length table))
     2848      (setq disp (aref table code)))
     2849    (unless (zerop disp)
     2850      (code-char (+ code disp)))))
    19112851
    19122852;;;True for a-z, and maybe other things.
     
    19142854  "The argument must be a character object; LOWER-CASE-P returns T if the
    19152855   argument is a lower-case character, NIL otherwise."
    1916   (let ((code (char-code c)))
    1917     (if (< code #x80)
    1918       (and (>= code (char-code #\a))
    1919            (<= code (char-code #\z)))
    1920      (not (null (%non-standard-upper-case-equivalent c))))))
     2856  (let* ((code (char-code c))
     2857         (table *lower-to-upper*))
     2858    (declare (type (mod #x110000) code)
     2859             (type (simple-array (signed-byte 16) (*)) table))
     2860    (if (< code (length table))
     2861      (not (eql 0 (the (signed-byte 16) (aref table code)))))))
     2862
    19212863
    19222864
     
    19272869  "The argument must be a character object. ALPHA-CHAR-P returns T if the
    19282870   argument is an alphabetic character; otherwise NIL."
    1929   (let* ((code (char-code c)))
    1930     (declare (fixnum code))
    1931     (or (and (>= code (char-code #\A)) (<= code (char-code #\Z)))
    1932         (and (>= code (char-code #\a)) (<= code (char-code #\z)))
    1933         (and (>= code #x80)
    1934              (or (not (null (%non-standard-upper-case-equivalent c)))
    1935                  (not (null (%non-standard-lower-case-equivalent c))))))))
     2871  (let* ((code (char-code c))
     2872         (upper *upper-to-lower*)
     2873         (lower *lower-to-upper*))
     2874    (declare (type (mod #x110000 code))
     2875             (type (simple-array (signed-byte 16) (*)) upper lower))
     2876    (or (and (< code (length upper))
     2877             (not (zerop (the (signed-byte 16) (aref upper code)))))
     2878        (and (< code (length lower))
     2879             (not (zerop (the (signed-byte 16) (aref lower code))))))))
    19362880
    19372881
     
    20382982  resource)
    20392983
    2040 
    20412984(defun valid-char-code-p (code)
    20422985  (and (typep code 'fixnum)
Note: See TracChangeset for help on using the changeset viewer.