"Fossies" - the Fresh Open Source Software Archive

Member "xorriso-1.5.4/libisofs/hfsplus_decompose_old.c" (30 Jan 2021, 40531 Bytes) of package /linux/misc/xorriso-1.5.4.pl02.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "hfsplus_decompose_old.c" see the Fossies "Dox" file reference documentation.

    1 #ifdef HAVE_CONFIG_H
    2 #include "../config.h"
    3 #endif
    4 
    5 #include "hfsplus.h"
    6 
    7 /*
    8   Cased on tn1150 (HFS+ format specification)
    9 */
   10 
   11 
   12 static uint16_t page00[256][HFSPLUS_MAX_DECOMPOSE_LEN + 1] = {
   13   [0xc0] = { 0x0041, 0x0300, 0x0000 },
   14   [0xc1] = { 0x0041, 0x0301, 0x0000 },
   15   [0xc2] = { 0x0041, 0x0302, 0x0000 },
   16   [0xc3] = { 0x0041, 0x0303, 0x0000 },
   17   [0xc4] = { 0x0041, 0x0308, 0x0000 },
   18   [0xc5] = { 0x0041, 0x030A, 0x0000 },
   19   [0xc7] = { 0x0043, 0x0327, 0x0000 },
   20   [0xc8] = { 0x0045, 0x0300, 0x0000 },
   21   [0xc9] = { 0x0045, 0x0301, 0x0000 },
   22   [0xca] = { 0x0045, 0x0302, 0x0000 },
   23   [0xcb] = { 0x0045, 0x0308, 0x0000 },
   24   [0xcc] = { 0x0049, 0x0300, 0x0000 },
   25   [0xcd] = { 0x0049, 0x0301, 0x0000 },
   26   [0xce] = { 0x0049, 0x0302, 0x0000 },
   27   [0xcf] = { 0x0049, 0x0308, 0x0000 },
   28   [0xd1] = { 0x004E, 0x0303, 0x0000 },
   29   [0xd2] = { 0x004F, 0x0300, 0x0000 },
   30   [0xd3] = { 0x004F, 0x0301, 0x0000 },
   31   [0xd4] = { 0x004F, 0x0302, 0x0000 },
   32   [0xd5] = { 0x004F, 0x0303, 0x0000 },
   33   [0xd6] = { 0x004F, 0x0308, 0x0000 },
   34   [0xd9] = { 0x0055, 0x0300, 0x0000 },
   35   [0xda] = { 0x0055, 0x0301, 0x0000 },
   36   [0xdb] = { 0x0055, 0x0302, 0x0000 },
   37   [0xdc] = { 0x0055, 0x0308, 0x0000 },
   38   [0xdd] = { 0x0059, 0x0301, 0x0000 },
   39   [0xe0] = { 0x0061, 0x0300, 0x0000 },
   40   [0xe1] = { 0x0061, 0x0301, 0x0000 },
   41   [0xe2] = { 0x0061, 0x0302, 0x0000 },
   42   [0xe3] = { 0x0061, 0x0303, 0x0000 },
   43   [0xe4] = { 0x0061, 0x0308, 0x0000 },
   44   [0xe5] = { 0x0061, 0x030A, 0x0000 },
   45   [0xe7] = { 0x0063, 0x0327, 0x0000 },
   46   [0xe8] = { 0x0065, 0x0300, 0x0000 },
   47   [0xe9] = { 0x0065, 0x0301, 0x0000 },
   48   [0xea] = { 0x0065, 0x0302, 0x0000 },
   49   [0xeb] = { 0x0065, 0x0308, 0x0000 },
   50   [0xec] = { 0x0069, 0x0300, 0x0000 },
   51   [0xed] = { 0x0069, 0x0301, 0x0000 },
   52   [0xee] = { 0x0069, 0x0302, 0x0000 },
   53   [0xef] = { 0x0069, 0x0308, 0x0000 },
   54   [0xf1] = { 0x006E, 0x0303, 0x0000 },
   55   [0xf2] = { 0x006F, 0x0300, 0x0000 },
   56   [0xf3] = { 0x006F, 0x0301, 0x0000 },
   57   [0xf4] = { 0x006F, 0x0302, 0x0000 },
   58   [0xf5] = { 0x006F, 0x0303, 0x0000 },
   59   [0xf6] = { 0x006F, 0x0308, 0x0000 },
   60   [0xf9] = { 0x0075, 0x0300, 0x0000 },
   61   [0xfa] = { 0x0075, 0x0301, 0x0000 },
   62   [0xfb] = { 0x0075, 0x0302, 0x0000 },
   63   [0xfc] = { 0x0075, 0x0308, 0x0000 },
   64   [0xfd] = { 0x0079, 0x0301, 0x0000 },
   65   [0xff] = { 0x0079, 0x0308, 0x0000 },
   66 };
   67 
   68 static uint16_t page01[256][HFSPLUS_MAX_DECOMPOSE_LEN + 1] = {
   69   [0x00] = { 0x0041, 0x0304, 0x0000 },
   70   [0x01] = { 0x0061, 0x0304, 0x0000 },
   71   [0x02] = { 0x0041, 0x0306, 0x0000 },
   72   [0x03] = { 0x0061, 0x0306, 0x0000 },
   73   [0x04] = { 0x0041, 0x0328, 0x0000 },
   74   [0x05] = { 0x0061, 0x0328, 0x0000 },
   75   [0x06] = { 0x0043, 0x0301, 0x0000 },
   76   [0x07] = { 0x0063, 0x0301, 0x0000 },
   77   [0x08] = { 0x0043, 0x0302, 0x0000 },
   78   [0x09] = { 0x0063, 0x0302, 0x0000 },
   79   [0x0a] = { 0x0043, 0x0307, 0x0000 },
   80   [0x0b] = { 0x0063, 0x0307, 0x0000 },
   81   [0x0c] = { 0x0043, 0x030C, 0x0000 },
   82   [0x0d] = { 0x0063, 0x030C, 0x0000 },
   83   [0x0e] = { 0x0044, 0x030C, 0x0000 },
   84   [0x0f] = { 0x0064, 0x030C, 0x0000 },
   85   [0x12] = { 0x0045, 0x0304, 0x0000 },
   86   [0x13] = { 0x0065, 0x0304, 0x0000 },
   87   [0x14] = { 0x0045, 0x0306, 0x0000 },
   88   [0x15] = { 0x0065, 0x0306, 0x0000 },
   89   [0x16] = { 0x0045, 0x0307, 0x0000 },
   90   [0x17] = { 0x0065, 0x0307, 0x0000 },
   91   [0x18] = { 0x0045, 0x0328, 0x0000 },
   92   [0x19] = { 0x0065, 0x0328, 0x0000 },
   93   [0x1a] = { 0x0045, 0x030C, 0x0000 },
   94   [0x1b] = { 0x0065, 0x030C, 0x0000 },
   95   [0x1c] = { 0x0047, 0x0302, 0x0000 },
   96   [0x1d] = { 0x0067, 0x0302, 0x0000 },
   97   [0x1e] = { 0x0047, 0x0306, 0x0000 },
   98   [0x1f] = { 0x0067, 0x0306, 0x0000 },
   99   [0x20] = { 0x0047, 0x0307, 0x0000 },
  100   [0x21] = { 0x0067, 0x0307, 0x0000 },
  101   [0x22] = { 0x0047, 0x0327, 0x0000 },
  102   [0x23] = { 0x0067, 0x0327, 0x0000 },
  103   [0x24] = { 0x0048, 0x0302, 0x0000 },
  104   [0x25] = { 0x0068, 0x0302, 0x0000 },
  105   [0x28] = { 0x0049, 0x0303, 0x0000 },
  106   [0x29] = { 0x0069, 0x0303, 0x0000 },
  107   [0x2a] = { 0x0049, 0x0304, 0x0000 },
  108   [0x2b] = { 0x0069, 0x0304, 0x0000 },
  109   [0x2c] = { 0x0049, 0x0306, 0x0000 },
  110   [0x2d] = { 0x0069, 0x0306, 0x0000 },
  111   [0x2e] = { 0x0049, 0x0328, 0x0000 },
  112   [0x2f] = { 0x0069, 0x0328, 0x0000 },
  113   [0x30] = { 0x0049, 0x0307, 0x0000 },
  114   [0x34] = { 0x004A, 0x0302, 0x0000 },
  115   [0x35] = { 0x006A, 0x0302, 0x0000 },
  116   [0x36] = { 0x004B, 0x0327, 0x0000 },
  117   [0x37] = { 0x006B, 0x0327, 0x0000 },
  118   [0x39] = { 0x004C, 0x0301, 0x0000 },
  119   [0x3a] = { 0x006C, 0x0301, 0x0000 },
  120   [0x3b] = { 0x004C, 0x0327, 0x0000 },
  121   [0x3c] = { 0x006C, 0x0327, 0x0000 },
  122   [0x3d] = { 0x004C, 0x030C, 0x0000 },
  123   [0x3e] = { 0x006C, 0x030C, 0x0000 },
  124   [0x43] = { 0x004E, 0x0301, 0x0000 },
  125   [0x44] = { 0x006E, 0x0301, 0x0000 },
  126   [0x45] = { 0x004E, 0x0327, 0x0000 },
  127   [0x46] = { 0x006E, 0x0327, 0x0000 },
  128   [0x47] = { 0x004E, 0x030C, 0x0000 },
  129   [0x48] = { 0x006E, 0x030C, 0x0000 },
  130   [0x4c] = { 0x004F, 0x0304, 0x0000 },
  131   [0x4d] = { 0x006F, 0x0304, 0x0000 },
  132   [0x4e] = { 0x004F, 0x0306, 0x0000 },
  133   [0x4f] = { 0x006F, 0x0306, 0x0000 },
  134   [0x50] = { 0x004F, 0x030B, 0x0000 },
  135   [0x51] = { 0x006F, 0x030B, 0x0000 },
  136   [0x54] = { 0x0052, 0x0301, 0x0000 },
  137   [0x55] = { 0x0072, 0x0301, 0x0000 },
  138   [0x56] = { 0x0052, 0x0327, 0x0000 },
  139   [0x57] = { 0x0072, 0x0327, 0x0000 },
  140   [0x58] = { 0x0052, 0x030C, 0x0000 },
  141   [0x59] = { 0x0072, 0x030C, 0x0000 },
  142   [0x5a] = { 0x0053, 0x0301, 0x0000 },
  143   [0x5b] = { 0x0073, 0x0301, 0x0000 },
  144   [0x5c] = { 0x0053, 0x0302, 0x0000 },
  145   [0x5d] = { 0x0073, 0x0302, 0x0000 },
  146   [0x5e] = { 0x0053, 0x0327, 0x0000 },
  147   [0x5f] = { 0x0073, 0x0327, 0x0000 },
  148   [0x60] = { 0x0053, 0x030C, 0x0000 },
  149   [0x61] = { 0x0073, 0x030C, 0x0000 },
  150   [0x62] = { 0x0054, 0x0327, 0x0000 },
  151   [0x63] = { 0x0074, 0x0327, 0x0000 },
  152   [0x64] = { 0x0054, 0x030C, 0x0000 },
  153   [0x65] = { 0x0074, 0x030C, 0x0000 },
  154   [0x68] = { 0x0055, 0x0303, 0x0000 },
  155   [0x69] = { 0x0075, 0x0303, 0x0000 },
  156   [0x6a] = { 0x0055, 0x0304, 0x0000 },
  157   [0x6b] = { 0x0075, 0x0304, 0x0000 },
  158   [0x6c] = { 0x0055, 0x0306, 0x0000 },
  159   [0x6d] = { 0x0075, 0x0306, 0x0000 },
  160   [0x6e] = { 0x0055, 0x030A, 0x0000 },
  161   [0x6f] = { 0x0075, 0x030A, 0x0000 },
  162   [0x70] = { 0x0055, 0x030B, 0x0000 },
  163   [0x71] = { 0x0075, 0x030B, 0x0000 },
  164   [0x72] = { 0x0055, 0x0328, 0x0000 },
  165   [0x73] = { 0x0075, 0x0328, 0x0000 },
  166   [0x74] = { 0x0057, 0x0302, 0x0000 },
  167   [0x75] = { 0x0077, 0x0302, 0x0000 },
  168   [0x76] = { 0x0059, 0x0302, 0x0000 },
  169   [0x77] = { 0x0079, 0x0302, 0x0000 },
  170   [0x78] = { 0x0059, 0x0308, 0x0000 },
  171   [0x79] = { 0x005A, 0x0301, 0x0000 },
  172   [0x7a] = { 0x007A, 0x0301, 0x0000 },
  173   [0x7b] = { 0x005A, 0x0307, 0x0000 },
  174   [0x7c] = { 0x007A, 0x0307, 0x0000 },
  175   [0x7d] = { 0x005A, 0x030C, 0x0000 },
  176   [0x7e] = { 0x007A, 0x030C, 0x0000 },
  177   [0xa0] = { 0x004F, 0x031B, 0x0000 },
  178   [0xa1] = { 0x006F, 0x031B, 0x0000 },
  179   [0xaf] = { 0x0055, 0x031B, 0x0000 },
  180   [0xb0] = { 0x0075, 0x031B, 0x0000 },
  181   [0xcd] = { 0x0041, 0x030C, 0x0000 },
  182   [0xce] = { 0x0061, 0x030C, 0x0000 },
  183   [0xcf] = { 0x0049, 0x030C, 0x0000 },
  184   [0xd0] = { 0x0069, 0x030C, 0x0000 },
  185   [0xd1] = { 0x004F, 0x030C, 0x0000 },
  186   [0xd2] = { 0x006F, 0x030C, 0x0000 },
  187   [0xd3] = { 0x0055, 0x030C, 0x0000 },
  188   [0xd4] = { 0x0075, 0x030C, 0x0000 },
  189   [0xd5] = { 0x0055, 0x0308, 0x0304, 0x0000 },
  190   [0xd6] = { 0x0075, 0x0308, 0x0304, 0x0000 },
  191   [0xd7] = { 0x0055, 0x0308, 0x0301, 0x0000 },
  192   [0xd8] = { 0x0075, 0x0308, 0x0301, 0x0000 },
  193   [0xd9] = { 0x0055, 0x0308, 0x030C, 0x0000 },
  194   [0xda] = { 0x0075, 0x0308, 0x030C, 0x0000 },
  195   [0xdb] = { 0x0055, 0x0308, 0x0300, 0x0000 },
  196   [0xdc] = { 0x0075, 0x0308, 0x0300, 0x0000 },
  197   [0xde] = { 0x0041, 0x0308, 0x0304, 0x0000 },
  198   [0xdf] = { 0x0061, 0x0308, 0x0304, 0x0000 },
  199   [0xe0] = { 0x0041, 0x0307, 0x0304, 0x0000 },
  200   [0xe1] = { 0x0061, 0x0307, 0x0304, 0x0000 },
  201   [0xe2] = { 0x00C6, 0x0304, 0x0000 },
  202   [0xe3] = { 0x00E6, 0x0304, 0x0000 },
  203   [0xe6] = { 0x0047, 0x030C, 0x0000 },
  204   [0xe7] = { 0x0067, 0x030C, 0x0000 },
  205   [0xe8] = { 0x004B, 0x030C, 0x0000 },
  206   [0xe9] = { 0x006B, 0x030C, 0x0000 },
  207   [0xea] = { 0x004F, 0x0328, 0x0000 },
  208   [0xeb] = { 0x006F, 0x0328, 0x0000 },
  209   [0xec] = { 0x004F, 0x0328, 0x0304, 0x0000 },
  210   [0xed] = { 0x006F, 0x0328, 0x0304, 0x0000 },
  211   [0xee] = { 0x01B7, 0x030C, 0x0000 },
  212   [0xef] = { 0x0292, 0x030C, 0x0000 },
  213   [0xf0] = { 0x006A, 0x030C, 0x0000 },
  214   [0xf4] = { 0x0047, 0x0301, 0x0000 },
  215   [0xf5] = { 0x0067, 0x0301, 0x0000 },
  216   [0xfa] = { 0x0041, 0x030A, 0x0301, 0x0000 },
  217   [0xfb] = { 0x0061, 0x030A, 0x0301, 0x0000 },
  218   [0xfc] = { 0x00C6, 0x0301, 0x0000 },
  219   [0xfd] = { 0x00E6, 0x0301, 0x0000 },
  220   [0xfe] = { 0x00D8, 0x0301, 0x0000 },
  221   [0xff] = { 0x00F8, 0x0301, 0x0000 },
  222 };
  223 
  224 static uint16_t page02[256][HFSPLUS_MAX_DECOMPOSE_LEN + 1] = {
  225   [0x00] = { 0x0041, 0x030F, 0x0000 },
  226   [0x01] = { 0x0061, 0x030F, 0x0000 },
  227   [0x02] = { 0x0041, 0x0311, 0x0000 },
  228   [0x03] = { 0x0061, 0x0311, 0x0000 },
  229   [0x04] = { 0x0045, 0x030F, 0x0000 },
  230   [0x05] = { 0x0065, 0x030F, 0x0000 },
  231   [0x06] = { 0x0045, 0x0311, 0x0000 },
  232   [0x07] = { 0x0065, 0x0311, 0x0000 },
  233   [0x08] = { 0x0049, 0x030F, 0x0000 },
  234   [0x09] = { 0x0069, 0x030F, 0x0000 },
  235   [0x0a] = { 0x0049, 0x0311, 0x0000 },
  236   [0x0b] = { 0x0069, 0x0311, 0x0000 },
  237   [0x0c] = { 0x004F, 0x030F, 0x0000 },
  238   [0x0d] = { 0x006F, 0x030F, 0x0000 },
  239   [0x0e] = { 0x004F, 0x0311, 0x0000 },
  240   [0x0f] = { 0x006F, 0x0311, 0x0000 },
  241   [0x10] = { 0x0052, 0x030F, 0x0000 },
  242   [0x11] = { 0x0072, 0x030F, 0x0000 },
  243   [0x12] = { 0x0052, 0x0311, 0x0000 },
  244   [0x13] = { 0x0072, 0x0311, 0x0000 },
  245   [0x14] = { 0x0055, 0x030F, 0x0000 },
  246   [0x15] = { 0x0075, 0x030F, 0x0000 },
  247   [0x16] = { 0x0055, 0x0311, 0x0000 },
  248   [0x17] = { 0x0075, 0x0311, 0x0000 },
  249 };
  250 
  251 static uint16_t page03[256][HFSPLUS_MAX_DECOMPOSE_LEN + 1] = {
  252   [0x10] = { 0x0306, 0x0307, 0x0000 },
  253   [0x40] = { 0x0300, 0x0000 },
  254   [0x41] = { 0x0301, 0x0000 },
  255   [0x43] = { 0x0313, 0x0000 },
  256   [0x44] = { 0x0308, 0x030D, 0x0000 },
  257   [0x74] = { 0x02B9, 0x0000 },
  258   [0x7e] = { 0x003B, 0x0000 },
  259   [0x85] = { 0x00A8, 0x030D, 0x0000 },
  260   [0x86] = { 0x0391, 0x030D, 0x0000 },
  261   [0x87] = { 0x00B7, 0x0000 },
  262   [0x88] = { 0x0395, 0x030D, 0x0000 },
  263   [0x89] = { 0x0397, 0x030D, 0x0000 },
  264   [0x8a] = { 0x0399, 0x030D, 0x0000 },
  265   [0x8c] = { 0x039F, 0x030D, 0x0000 },
  266   [0x8e] = { 0x03A5, 0x030D, 0x0000 },
  267   [0x8f] = { 0x03A9, 0x030D, 0x0000 },
  268   [0x90] = { 0x03B9, 0x0308, 0x030D, 0x0000 },
  269   [0xaa] = { 0x0399, 0x0308, 0x0000 },
  270   [0xab] = { 0x03A5, 0x0308, 0x0000 },
  271   [0xac] = { 0x03B1, 0x030D, 0x0000 },
  272   [0xad] = { 0x03B5, 0x030D, 0x0000 },
  273   [0xae] = { 0x03B7, 0x030D, 0x0000 },
  274   [0xaf] = { 0x03B9, 0x030D, 0x0000 },
  275   [0xb0] = { 0x03C5, 0x0308, 0x030D, 0x0000 },
  276   [0xca] = { 0x03B9, 0x0308, 0x0000 },
  277   [0xcb] = { 0x03C5, 0x0308, 0x0000 },
  278   [0xcc] = { 0x03BF, 0x030D, 0x0000 },
  279   [0xcd] = { 0x03C5, 0x030D, 0x0000 },
  280   [0xce] = { 0x03C9, 0x030D, 0x0000 },
  281   [0xd3] = { 0x03D2, 0x030D, 0x0000 },
  282   [0xd4] = { 0x03D2, 0x0308, 0x0000 },
  283 };
  284 
  285 static uint16_t page04[256][HFSPLUS_MAX_DECOMPOSE_LEN + 1] = {
  286   [0x01] = { 0x0415, 0x0308, 0x0000 },
  287   [0x03] = { 0x0413, 0x0301, 0x0000 },
  288   [0x07] = { 0x0406, 0x0308, 0x0000 },
  289   [0x0c] = { 0x041A, 0x0301, 0x0000 },
  290   [0x0e] = { 0x0423, 0x0306, 0x0000 },
  291   [0x19] = { 0x0418, 0x0306, 0x0000 },
  292   [0x39] = { 0x0438, 0x0306, 0x0000 },
  293   [0x51] = { 0x0435, 0x0308, 0x0000 },
  294   [0x53] = { 0x0433, 0x0301, 0x0000 },
  295   [0x57] = { 0x0456, 0x0308, 0x0000 },
  296   [0x5c] = { 0x043A, 0x0301, 0x0000 },
  297   [0x5e] = { 0x0443, 0x0306, 0x0000 },
  298   [0x76] = { 0x0474, 0x030F, 0x0000 },
  299   [0x77] = { 0x0475, 0x030F, 0x0000 },
  300   [0xc1] = { 0x0416, 0x0306, 0x0000 },
  301   [0xc2] = { 0x0436, 0x0306, 0x0000 },
  302   [0xd0] = { 0x0410, 0x0306, 0x0000 },
  303   [0xd1] = { 0x0430, 0x0306, 0x0000 },
  304   [0xd2] = { 0x0410, 0x0308, 0x0000 },
  305   [0xd3] = { 0x0430, 0x0308, 0x0000 },
  306   [0xd4] = { 0x00C6, 0x0000 },
  307   [0xd5] = { 0x00E6, 0x0000 },
  308   [0xd6] = { 0x0415, 0x0306, 0x0000 },
  309   [0xd7] = { 0x0435, 0x0306, 0x0000 },
  310   [0xd8] = { 0x018F, 0x0000 },
  311   [0xd9] = { 0x0259, 0x0000 },
  312   [0xda] = { 0x018F, 0x0308, 0x0000 },
  313   [0xdb] = { 0x0259, 0x0308, 0x0000 },
  314   [0xdc] = { 0x0416, 0x0308, 0x0000 },
  315   [0xdd] = { 0x0436, 0x0308, 0x0000 },
  316   [0xde] = { 0x0417, 0x0308, 0x0000 },
  317   [0xdf] = { 0x0437, 0x0308, 0x0000 },
  318   [0xe0] = { 0x01B7, 0x0000 },
  319   [0xe1] = { 0x0292, 0x0000 },
  320   [0xe2] = { 0x0418, 0x0304, 0x0000 },
  321   [0xe3] = { 0x0438, 0x0304, 0x0000 },
  322   [0xe4] = { 0x0418, 0x0308, 0x0000 },
  323   [0xe5] = { 0x0438, 0x0308, 0x0000 },
  324   [0xe6] = { 0x041E, 0x0308, 0x0000 },
  325   [0xe7] = { 0x043E, 0x0308, 0x0000 },
  326   [0xe8] = { 0x019F, 0x0000 },
  327   [0xe9] = { 0x0275, 0x0000 },
  328   [0xea] = { 0x019F, 0x0308, 0x0000 },
  329   [0xeb] = { 0x0275, 0x0308, 0x0000 },
  330   [0xee] = { 0x0423, 0x0304, 0x0000 },
  331   [0xef] = { 0x0443, 0x0304, 0x0000 },
  332   [0xf0] = { 0x0423, 0x0308, 0x0000 },
  333   [0xf1] = { 0x0443, 0x0308, 0x0000 },
  334   [0xf2] = { 0x0423, 0x030B, 0x0000 },
  335   [0xf3] = { 0x0443, 0x030B, 0x0000 },
  336   [0xf4] = { 0x0427, 0x0308, 0x0000 },
  337   [0xf5] = { 0x0447, 0x0308, 0x0000 },
  338   [0xf8] = { 0x042B, 0x0308, 0x0000 },
  339   [0xf9] = { 0x044B, 0x0308, 0x0000 },
  340 };
  341 
  342 static uint16_t page09[256][HFSPLUS_MAX_DECOMPOSE_LEN + 1] = {
  343   [0x29] = { 0x0928, 0x093C, 0x0000 },
  344   [0x31] = { 0x0930, 0x093C, 0x0000 },
  345   [0x34] = { 0x0933, 0x093C, 0x0000 },
  346   [0x58] = { 0x0915, 0x093C, 0x0000 },
  347   [0x59] = { 0x0916, 0x093C, 0x0000 },
  348   [0x5a] = { 0x0917, 0x093C, 0x0000 },
  349   [0x5b] = { 0x091C, 0x093C, 0x0000 },
  350   [0x5c] = { 0x0921, 0x093C, 0x0000 },
  351   [0x5d] = { 0x0922, 0x093C, 0x0000 },
  352   [0x5e] = { 0x092B, 0x093C, 0x0000 },
  353   [0x5f] = { 0x092F, 0x093C, 0x0000 },
  354   [0xb0] = { 0x09AC, 0x09BC, 0x0000 },
  355   [0xcb] = { 0x09C7, 0x09BE, 0x0000 },
  356   [0xcc] = { 0x09C7, 0x09D7, 0x0000 },
  357   [0xdc] = { 0x09A1, 0x09BC, 0x0000 },
  358   [0xdd] = { 0x09A2, 0x09BC, 0x0000 },
  359   [0xdf] = { 0x09AF, 0x09BC, 0x0000 },
  360 };
  361 
  362 static uint16_t page0a[256][HFSPLUS_MAX_DECOMPOSE_LEN + 1] = {
  363   [0x59] = { 0x0A16, 0x0A3C, 0x0000 },
  364   [0x5a] = { 0x0A17, 0x0A3C, 0x0000 },
  365   [0x5b] = { 0x0A1C, 0x0A3C, 0x0000 },
  366   [0x5c] = { 0x0A21, 0x0A3C, 0x0000 },
  367   [0x5e] = { 0x0A2B, 0x0A3C, 0x0000 },
  368 };
  369 
  370 static uint16_t page0b[256][HFSPLUS_MAX_DECOMPOSE_LEN + 1] = {
  371   [0x48] = { 0x0B47, 0x0B56, 0x0000 },
  372   [0x4b] = { 0x0B47, 0x0B3E, 0x0000 },
  373   [0x4c] = { 0x0B47, 0x0B57, 0x0000 },
  374   [0x5c] = { 0x0B21, 0x0B3C, 0x0000 },
  375   [0x5d] = { 0x0B22, 0x0B3C, 0x0000 },
  376   [0x5f] = { 0x0B2F, 0x0B3C, 0x0000 },
  377   [0x94] = { 0x0B92, 0x0BD7, 0x0000 },
  378   [0xca] = { 0x0BC6, 0x0BBE, 0x0000 },
  379   [0xcb] = { 0x0BC7, 0x0BBE, 0x0000 },
  380   [0xcc] = { 0x0BC6, 0x0BD7, 0x0000 },
  381 };
  382 
  383 static uint16_t page0c[256][HFSPLUS_MAX_DECOMPOSE_LEN + 1] = {
  384   [0x48] = { 0x0C46, 0x0C56, 0x0000 },
  385   [0xc0] = { 0x0CBF, 0x0CD5, 0x0000 },
  386   [0xc7] = { 0x0CC6, 0x0CD5, 0x0000 },
  387   [0xc8] = { 0x0CC6, 0x0CD6, 0x0000 },
  388   [0xca] = { 0x0CC6, 0x0CC2, 0x0000 },
  389   [0xcb] = { 0x0CC6, 0x0CC2, 0x0CD5, 0x0000 },
  390 };
  391 
  392 static uint16_t page0d[256][HFSPLUS_MAX_DECOMPOSE_LEN + 1] = {
  393   [0x4a] = { 0x0D46, 0x0D3E, 0x0000 },
  394   [0x4b] = { 0x0D47, 0x0D3E, 0x0000 },
  395   [0x4c] = { 0x0D46, 0x0D57, 0x0000 },
  396 };
  397 
  398 static uint16_t page0e[256][HFSPLUS_MAX_DECOMPOSE_LEN + 1] = {
  399   [0x33] = { 0x0E4D, 0x0E32, 0x0000 },
  400   [0xb3] = { 0x0ECD, 0x0EB2, 0x0000 },
  401 };
  402 
  403 static uint16_t page0f[256][HFSPLUS_MAX_DECOMPOSE_LEN + 1] = {
  404   [0x43] = { 0x0F42, 0x0FB7, 0x0000 },
  405   [0x4d] = { 0x0F4C, 0x0FB7, 0x0000 },
  406   [0x52] = { 0x0F51, 0x0FB7, 0x0000 },
  407   [0x57] = { 0x0F56, 0x0FB7, 0x0000 },
  408   [0x5c] = { 0x0F5B, 0x0FB7, 0x0000 },
  409   [0x69] = { 0x0F40, 0x0FB5, 0x0000 },
  410   [0x73] = { 0x0F72, 0x0F71, 0x0000 },
  411   [0x75] = { 0x0F74, 0x0F71, 0x0000 },
  412   [0x76] = { 0x0FB2, 0x0F80, 0x0000 },
  413   [0x77] = { 0x0FB2, 0x0F80, 0x0F71, 0x0000 },
  414   [0x78] = { 0x0FB3, 0x0F80, 0x0000 },
  415   [0x79] = { 0x0FB3, 0x0F80, 0x0F71, 0x0000 },
  416   [0x81] = { 0x0F80, 0x0F71, 0x0000 },
  417   [0x93] = { 0x0F92, 0x0FB7, 0x0000 },
  418   [0x9d] = { 0x0F9C, 0x0FB7, 0x0000 },
  419   [0xa2] = { 0x0FA1, 0x0FB7, 0x0000 },
  420   [0xa7] = { 0x0FA6, 0x0FB7, 0x0000 },
  421   [0xac] = { 0x0FAB, 0x0FB7, 0x0000 },
  422   [0xb9] = { 0x0F90, 0x0FB5, 0x0000 },
  423 };
  424 
  425 static uint16_t page1e[256][HFSPLUS_MAX_DECOMPOSE_LEN + 1] = {
  426   [0x00] = { 0x0041, 0x0325, 0x0000 },
  427   [0x01] = { 0x0061, 0x0325, 0x0000 },
  428   [0x02] = { 0x0042, 0x0307, 0x0000 },
  429   [0x03] = { 0x0062, 0x0307, 0x0000 },
  430   [0x04] = { 0x0042, 0x0323, 0x0000 },
  431   [0x05] = { 0x0062, 0x0323, 0x0000 },
  432   [0x06] = { 0x0042, 0x0331, 0x0000 },
  433   [0x07] = { 0x0062, 0x0331, 0x0000 },
  434   [0x08] = { 0x0043, 0x0327, 0x0301, 0x0000 },
  435   [0x09] = { 0x0063, 0x0327, 0x0301, 0x0000 },
  436   [0x0a] = { 0x0044, 0x0307, 0x0000 },
  437   [0x0b] = { 0x0064, 0x0307, 0x0000 },
  438   [0x0c] = { 0x0044, 0x0323, 0x0000 },
  439   [0x0d] = { 0x0064, 0x0323, 0x0000 },
  440   [0x0e] = { 0x0044, 0x0331, 0x0000 },
  441   [0x0f] = { 0x0064, 0x0331, 0x0000 },
  442   [0x10] = { 0x0044, 0x0327, 0x0000 },
  443   [0x11] = { 0x0064, 0x0327, 0x0000 },
  444   [0x12] = { 0x0044, 0x032D, 0x0000 },
  445   [0x13] = { 0x0064, 0x032D, 0x0000 },
  446   [0x14] = { 0x0045, 0x0304, 0x0300, 0x0000 },
  447   [0x15] = { 0x0065, 0x0304, 0x0300, 0x0000 },
  448   [0x16] = { 0x0045, 0x0304, 0x0301, 0x0000 },
  449   [0x17] = { 0x0065, 0x0304, 0x0301, 0x0000 },
  450   [0x18] = { 0x0045, 0x032D, 0x0000 },
  451   [0x19] = { 0x0065, 0x032D, 0x0000 },
  452   [0x1a] = { 0x0045, 0x0330, 0x0000 },
  453   [0x1b] = { 0x0065, 0x0330, 0x0000 },
  454   [0x1c] = { 0x0045, 0x0327, 0x0306, 0x0000 },
  455   [0x1d] = { 0x0065, 0x0327, 0x0306, 0x0000 },
  456   [0x1e] = { 0x0046, 0x0307, 0x0000 },
  457   [0x1f] = { 0x0066, 0x0307, 0x0000 },
  458   [0x20] = { 0x0047, 0x0304, 0x0000 },
  459   [0x21] = { 0x0067, 0x0304, 0x0000 },
  460   [0x22] = { 0x0048, 0x0307, 0x0000 },
  461   [0x23] = { 0x0068, 0x0307, 0x0000 },
  462   [0x24] = { 0x0048, 0x0323, 0x0000 },
  463   [0x25] = { 0x0068, 0x0323, 0x0000 },
  464   [0x26] = { 0x0048, 0x0308, 0x0000 },
  465   [0x27] = { 0x0068, 0x0308, 0x0000 },
  466   [0x28] = { 0x0048, 0x0327, 0x0000 },
  467   [0x29] = { 0x0068, 0x0327, 0x0000 },
  468   [0x2a] = { 0x0048, 0x032E, 0x0000 },
  469   [0x2b] = { 0x0068, 0x032E, 0x0000 },
  470   [0x2c] = { 0x0049, 0x0330, 0x0000 },
  471   [0x2d] = { 0x0069, 0x0330, 0x0000 },
  472   [0x2e] = { 0x0049, 0x0308, 0x0301, 0x0000 },
  473   [0x2f] = { 0x0069, 0x0308, 0x0301, 0x0000 },
  474   [0x30] = { 0x004B, 0x0301, 0x0000 },
  475   [0x31] = { 0x006B, 0x0301, 0x0000 },
  476   [0x32] = { 0x004B, 0x0323, 0x0000 },
  477   [0x33] = { 0x006B, 0x0323, 0x0000 },
  478   [0x34] = { 0x004B, 0x0331, 0x0000 },
  479   [0x35] = { 0x006B, 0x0331, 0x0000 },
  480   [0x36] = { 0x004C, 0x0323, 0x0000 },
  481   [0x37] = { 0x006C, 0x0323, 0x0000 },
  482   [0x38] = { 0x004C, 0x0323, 0x0304, 0x0000 },
  483   [0x39] = { 0x006C, 0x0323, 0x0304, 0x0000 },
  484   [0x3a] = { 0x004C, 0x0331, 0x0000 },
  485   [0x3b] = { 0x006C, 0x0331, 0x0000 },
  486   [0x3c] = { 0x004C, 0x032D, 0x0000 },
  487   [0x3d] = { 0x006C, 0x032D, 0x0000 },
  488   [0x3e] = { 0x004D, 0x0301, 0x0000 },
  489   [0x3f] = { 0x006D, 0x0301, 0x0000 },
  490   [0x40] = { 0x004D, 0x0307, 0x0000 },
  491   [0x41] = { 0x006D, 0x0307, 0x0000 },
  492   [0x42] = { 0x004D, 0x0323, 0x0000 },
  493   [0x43] = { 0x006D, 0x0323, 0x0000 },
  494   [0x44] = { 0x004E, 0x0307, 0x0000 },
  495   [0x45] = { 0x006E, 0x0307, 0x0000 },
  496   [0x46] = { 0x004E, 0x0323, 0x0000 },
  497   [0x47] = { 0x006E, 0x0323, 0x0000 },
  498   [0x48] = { 0x004E, 0x0331, 0x0000 },
  499   [0x49] = { 0x006E, 0x0331, 0x0000 },
  500   [0x4a] = { 0x004E, 0x032D, 0x0000 },
  501   [0x4b] = { 0x006E, 0x032D, 0x0000 },
  502   [0x4c] = { 0x004F, 0x0303, 0x0301, 0x0000 },
  503   [0x4d] = { 0x006F, 0x0303, 0x0301, 0x0000 },
  504   [0x4e] = { 0x004F, 0x0303, 0x0308, 0x0000 },
  505   [0x4f] = { 0x006F, 0x0303, 0x0308, 0x0000 },
  506   [0x50] = { 0x004F, 0x0304, 0x0300, 0x0000 },
  507   [0x51] = { 0x006F, 0x0304, 0x0300, 0x0000 },
  508   [0x52] = { 0x004F, 0x0304, 0x0301, 0x0000 },
  509   [0x53] = { 0x006F, 0x0304, 0x0301, 0x0000 },
  510   [0x54] = { 0x0050, 0x0301, 0x0000 },
  511   [0x55] = { 0x0070, 0x0301, 0x0000 },
  512   [0x56] = { 0x0050, 0x0307, 0x0000 },
  513   [0x57] = { 0x0070, 0x0307, 0x0000 },
  514   [0x58] = { 0x0052, 0x0307, 0x0000 },
  515   [0x59] = { 0x0072, 0x0307, 0x0000 },
  516   [0x5a] = { 0x0052, 0x0323, 0x0000 },
  517   [0x5b] = { 0x0072, 0x0323, 0x0000 },
  518   [0x5c] = { 0x0052, 0x0323, 0x0304, 0x0000 },
  519   [0x5d] = { 0x0072, 0x0323, 0x0304, 0x0000 },
  520   [0x5e] = { 0x0052, 0x0331, 0x0000 },
  521   [0x5f] = { 0x0072, 0x0331, 0x0000 },
  522   [0x60] = { 0x0053, 0x0307, 0x0000 },
  523   [0x61] = { 0x0073, 0x0307, 0x0000 },
  524   [0x62] = { 0x0053, 0x0323, 0x0000 },
  525   [0x63] = { 0x0073, 0x0323, 0x0000 },
  526   [0x64] = { 0x0053, 0x0301, 0x0307, 0x0000 },
  527   [0x65] = { 0x0073, 0x0301, 0x0307, 0x0000 },
  528   [0x66] = { 0x0053, 0x030C, 0x0307, 0x0000 },
  529   [0x67] = { 0x0073, 0x030C, 0x0307, 0x0000 },
  530   [0x68] = { 0x0053, 0x0323, 0x0307, 0x0000 },
  531   [0x69] = { 0x0073, 0x0323, 0x0307, 0x0000 },
  532   [0x6a] = { 0x0054, 0x0307, 0x0000 },
  533   [0x6b] = { 0x0074, 0x0307, 0x0000 },
  534   [0x6c] = { 0x0054, 0x0323, 0x0000 },
  535   [0x6d] = { 0x0074, 0x0323, 0x0000 },
  536   [0x6e] = { 0x0054, 0x0331, 0x0000 },
  537   [0x6f] = { 0x0074, 0x0331, 0x0000 },
  538   [0x70] = { 0x0054, 0x032D, 0x0000 },
  539   [0x71] = { 0x0074, 0x032D, 0x0000 },
  540   [0x72] = { 0x0055, 0x0324, 0x0000 },
  541   [0x73] = { 0x0075, 0x0324, 0x0000 },
  542   [0x74] = { 0x0055, 0x0330, 0x0000 },
  543   [0x75] = { 0x0075, 0x0330, 0x0000 },
  544   [0x76] = { 0x0055, 0x032D, 0x0000 },
  545   [0x77] = { 0x0075, 0x032D, 0x0000 },
  546   [0x78] = { 0x0055, 0x0303, 0x0301, 0x0000 },
  547   [0x79] = { 0x0075, 0x0303, 0x0301, 0x0000 },
  548   [0x7a] = { 0x0055, 0x0304, 0x0308, 0x0000 },
  549   [0x7b] = { 0x0075, 0x0304, 0x0308, 0x0000 },
  550   [0x7c] = { 0x0056, 0x0303, 0x0000 },
  551   [0x7d] = { 0x0076, 0x0303, 0x0000 },
  552   [0x7e] = { 0x0056, 0x0323, 0x0000 },
  553   [0x7f] = { 0x0076, 0x0323, 0x0000 },
  554   [0x80] = { 0x0057, 0x0300, 0x0000 },
  555   [0x81] = { 0x0077, 0x0300, 0x0000 },
  556   [0x82] = { 0x0057, 0x0301, 0x0000 },
  557   [0x83] = { 0x0077, 0x0301, 0x0000 },
  558   [0x84] = { 0x0057, 0x0308, 0x0000 },
  559   [0x85] = { 0x0077, 0x0308, 0x0000 },
  560   [0x86] = { 0x0057, 0x0307, 0x0000 },
  561   [0x87] = { 0x0077, 0x0307, 0x0000 },
  562   [0x88] = { 0x0057, 0x0323, 0x0000 },
  563   [0x89] = { 0x0077, 0x0323, 0x0000 },
  564   [0x8a] = { 0x0058, 0x0307, 0x0000 },
  565   [0x8b] = { 0x0078, 0x0307, 0x0000 },
  566   [0x8c] = { 0x0058, 0x0308, 0x0000 },
  567   [0x8d] = { 0x0078, 0x0308, 0x0000 },
  568   [0x8e] = { 0x0059, 0x0307, 0x0000 },
  569   [0x8f] = { 0x0079, 0x0307, 0x0000 },
  570   [0x90] = { 0x005A, 0x0302, 0x0000 },
  571   [0x91] = { 0x007A, 0x0302, 0x0000 },
  572   [0x92] = { 0x005A, 0x0323, 0x0000 },
  573   [0x93] = { 0x007A, 0x0323, 0x0000 },
  574   [0x94] = { 0x005A, 0x0331, 0x0000 },
  575   [0x95] = { 0x007A, 0x0331, 0x0000 },
  576   [0x96] = { 0x0068, 0x0331, 0x0000 },
  577   [0x97] = { 0x0074, 0x0308, 0x0000 },
  578   [0x98] = { 0x0077, 0x030A, 0x0000 },
  579   [0x99] = { 0x0079, 0x030A, 0x0000 },
  580   [0x9b] = { 0x017F, 0x0307, 0x0000 },
  581   [0xa0] = { 0x0041, 0x0323, 0x0000 },
  582   [0xa1] = { 0x0061, 0x0323, 0x0000 },
  583   [0xa2] = { 0x0041, 0x0309, 0x0000 },
  584   [0xa3] = { 0x0061, 0x0309, 0x0000 },
  585   [0xa4] = { 0x0041, 0x0302, 0x0301, 0x0000 },
  586   [0xa5] = { 0x0061, 0x0302, 0x0301, 0x0000 },
  587   [0xa6] = { 0x0041, 0x0302, 0x0300, 0x0000 },
  588   [0xa7] = { 0x0061, 0x0302, 0x0300, 0x0000 },
  589   [0xa8] = { 0x0041, 0x0302, 0x0309, 0x0000 },
  590   [0xa9] = { 0x0061, 0x0302, 0x0309, 0x0000 },
  591   [0xaa] = { 0x0041, 0x0302, 0x0303, 0x0000 },
  592   [0xab] = { 0x0061, 0x0302, 0x0303, 0x0000 },
  593   [0xac] = { 0x0041, 0x0323, 0x0302, 0x0000 },
  594   [0xad] = { 0x0061, 0x0323, 0x0302, 0x0000 },
  595   [0xae] = { 0x0041, 0x0306, 0x0301, 0x0000 },
  596   [0xaf] = { 0x0061, 0x0306, 0x0301, 0x0000 },
  597   [0xb0] = { 0x0041, 0x0306, 0x0300, 0x0000 },
  598   [0xb1] = { 0x0061, 0x0306, 0x0300, 0x0000 },
  599   [0xb2] = { 0x0041, 0x0306, 0x0309, 0x0000 },
  600   [0xb3] = { 0x0061, 0x0306, 0x0309, 0x0000 },
  601   [0xb4] = { 0x0041, 0x0306, 0x0303, 0x0000 },
  602   [0xb5] = { 0x0061, 0x0306, 0x0303, 0x0000 },
  603   [0xb6] = { 0x0041, 0x0323, 0x0306, 0x0000 },
  604   [0xb7] = { 0x0061, 0x0323, 0x0306, 0x0000 },
  605   [0xb8] = { 0x0045, 0x0323, 0x0000 },
  606   [0xb9] = { 0x0065, 0x0323, 0x0000 },
  607   [0xba] = { 0x0045, 0x0309, 0x0000 },
  608   [0xbb] = { 0x0065, 0x0309, 0x0000 },
  609   [0xbc] = { 0x0045, 0x0303, 0x0000 },
  610   [0xbd] = { 0x0065, 0x0303, 0x0000 },
  611   [0xbe] = { 0x0045, 0x0302, 0x0301, 0x0000 },
  612   [0xbf] = { 0x0065, 0x0302, 0x0301, 0x0000 },
  613   [0xc0] = { 0x0045, 0x0302, 0x0300, 0x0000 },
  614   [0xc1] = { 0x0065, 0x0302, 0x0300, 0x0000 },
  615   [0xc2] = { 0x0045, 0x0302, 0x0309, 0x0000 },
  616   [0xc3] = { 0x0065, 0x0302, 0x0309, 0x0000 },
  617   [0xc4] = { 0x0045, 0x0302, 0x0303, 0x0000 },
  618   [0xc5] = { 0x0065, 0x0302, 0x0303, 0x0000 },
  619   [0xc6] = { 0x0045, 0x0323, 0x0302, 0x0000 },
  620   [0xc7] = { 0x0065, 0x0323, 0x0302, 0x0000 },
  621   [0xc8] = { 0x0049, 0x0309, 0x0000 },
  622   [0xc9] = { 0x0069, 0x0309, 0x0000 },
  623   [0xca] = { 0x0049, 0x0323, 0x0000 },
  624   [0xcb] = { 0x0069, 0x0323, 0x0000 },
  625   [0xcc] = { 0x004F, 0x0323, 0x0000 },
  626   [0xcd] = { 0x006F, 0x0323, 0x0000 },
  627   [0xce] = { 0x004F, 0x0309, 0x0000 },
  628   [0xcf] = { 0x006F, 0x0309, 0x0000 },
  629   [0xd0] = { 0x004F, 0x0302, 0x0301, 0x0000 },
  630   [0xd1] = { 0x006F, 0x0302, 0x0301, 0x0000 },
  631   [0xd2] = { 0x004F, 0x0302, 0x0300, 0x0000 },
  632   [0xd3] = { 0x006F, 0x0302, 0x0300, 0x0000 },
  633   [0xd4] = { 0x004F, 0x0302, 0x0309, 0x0000 },
  634   [0xd5] = { 0x006F, 0x0302, 0x0309, 0x0000 },
  635   [0xd6] = { 0x004F, 0x0302, 0x0303, 0x0000 },
  636   [0xd7] = { 0x006F, 0x0302, 0x0303, 0x0000 },
  637   [0xd8] = { 0x004F, 0x0323, 0x0302, 0x0000 },
  638   [0xd9] = { 0x006F, 0x0323, 0x0302, 0x0000 },
  639   [0xda] = { 0x004F, 0x031B, 0x0301, 0x0000 },
  640   [0xdb] = { 0x006F, 0x031B, 0x0301, 0x0000 },
  641   [0xdc] = { 0x004F, 0x031B, 0x0300, 0x0000 },
  642   [0xdd] = { 0x006F, 0x031B, 0x0300, 0x0000 },
  643   [0xde] = { 0x004F, 0x031B, 0x0309, 0x0000 },
  644   [0xdf] = { 0x006F, 0x031B, 0x0309, 0x0000 },
  645   [0xe0] = { 0x004F, 0x031B, 0x0303, 0x0000 },
  646   [0xe1] = { 0x006F, 0x031B, 0x0303, 0x0000 },
  647   [0xe2] = { 0x004F, 0x031B, 0x0323, 0x0000 },
  648   [0xe3] = { 0x006F, 0x031B, 0x0323, 0x0000 },
  649   [0xe4] = { 0x0055, 0x0323, 0x0000 },
  650   [0xe5] = { 0x0075, 0x0323, 0x0000 },
  651   [0xe6] = { 0x0055, 0x0309, 0x0000 },
  652   [0xe7] = { 0x0075, 0x0309, 0x0000 },
  653   [0xe8] = { 0x0055, 0x031B, 0x0301, 0x0000 },
  654   [0xe9] = { 0x0075, 0x031B, 0x0301, 0x0000 },
  655   [0xea] = { 0x0055, 0x031B, 0x0300, 0x0000 },
  656   [0xeb] = { 0x0075, 0x031B, 0x0300, 0x0000 },
  657   [0xec] = { 0x0055, 0x031B, 0x0309, 0x0000 },
  658   [0xed] = { 0x0075, 0x031B, 0x0309, 0x0000 },
  659   [0xee] = { 0x0055, 0x031B, 0x0303, 0x0000 },
  660   [0xef] = { 0x0075, 0x031B, 0x0303, 0x0000 },
  661   [0xf0] = { 0x0055, 0x031B, 0x0323, 0x0000 },
  662   [0xf1] = { 0x0075, 0x031B, 0x0323, 0x0000 },
  663   [0xf2] = { 0x0059, 0x0300, 0x0000 },
  664   [0xf3] = { 0x0079, 0x0300, 0x0000 },
  665   [0xf4] = { 0x0059, 0x0323, 0x0000 },
  666   [0xf5] = { 0x0079, 0x0323, 0x0000 },
  667   [0xf6] = { 0x0059, 0x0309, 0x0000 },
  668   [0xf7] = { 0x0079, 0x0309, 0x0000 },
  669   [0xf8] = { 0x0059, 0x0303, 0x0000 },
  670   [0xf9] = { 0x0079, 0x0303, 0x0000 },
  671 };
  672 
  673 static uint16_t page1f[256][HFSPLUS_MAX_DECOMPOSE_LEN + 1] = {
  674   [0x00] = { 0x03B1, 0x0313, 0x0000 },
  675   [0x01] = { 0x03B1, 0x0314, 0x0000 },
  676   [0x02] = { 0x03B1, 0x0313, 0x0300, 0x0000 },
  677   [0x03] = { 0x03B1, 0x0314, 0x0300, 0x0000 },
  678   [0x04] = { 0x03B1, 0x0313, 0x0301, 0x0000 },
  679   [0x05] = { 0x03B1, 0x0314, 0x0301, 0x0000 },
  680   [0x06] = { 0x03B1, 0x0313, 0x0342, 0x0000 },
  681   [0x07] = { 0x03B1, 0x0314, 0x0342, 0x0000 },
  682   [0x08] = { 0x0391, 0x0313, 0x0000 },
  683   [0x09] = { 0x0391, 0x0314, 0x0000 },
  684   [0x0a] = { 0x0391, 0x0313, 0x0300, 0x0000 },
  685   [0x0b] = { 0x0391, 0x0314, 0x0300, 0x0000 },
  686   [0x0c] = { 0x0391, 0x0313, 0x0301, 0x0000 },
  687   [0x0d] = { 0x0391, 0x0314, 0x0301, 0x0000 },
  688   [0x0e] = { 0x0391, 0x0313, 0x0342, 0x0000 },
  689   [0x0f] = { 0x0391, 0x0314, 0x0342, 0x0000 },
  690   [0x10] = { 0x03B5, 0x0313, 0x0000 },
  691   [0x11] = { 0x03B5, 0x0314, 0x0000 },
  692   [0x12] = { 0x03B5, 0x0313, 0x0300, 0x0000 },
  693   [0x13] = { 0x03B5, 0x0314, 0x0300, 0x0000 },
  694   [0x14] = { 0x03B5, 0x0313, 0x0301, 0x0000 },
  695   [0x15] = { 0x03B5, 0x0314, 0x0301, 0x0000 },
  696   [0x18] = { 0x0395, 0x0313, 0x0000 },
  697   [0x19] = { 0x0395, 0x0314, 0x0000 },
  698   [0x1a] = { 0x0395, 0x0313, 0x0300, 0x0000 },
  699   [0x1b] = { 0x0395, 0x0314, 0x0300, 0x0000 },
  700   [0x1c] = { 0x0395, 0x0313, 0x0301, 0x0000 },
  701   [0x1d] = { 0x0395, 0x0314, 0x0301, 0x0000 },
  702   [0x20] = { 0x03B7, 0x0313, 0x0000 },
  703   [0x21] = { 0x03B7, 0x0314, 0x0000 },
  704   [0x22] = { 0x03B7, 0x0313, 0x0300, 0x0000 },
  705   [0x23] = { 0x03B7, 0x0314, 0x0300, 0x0000 },
  706   [0x24] = { 0x03B7, 0x0313, 0x0301, 0x0000 },
  707   [0x25] = { 0x03B7, 0x0314, 0x0301, 0x0000 },
  708   [0x26] = { 0x03B7, 0x0313, 0x0342, 0x0000 },
  709   [0x27] = { 0x03B7, 0x0314, 0x0342, 0x0000 },
  710   [0x28] = { 0x0397, 0x0313, 0x0000 },
  711   [0x29] = { 0x0397, 0x0314, 0x0000 },
  712   [0x2a] = { 0x0397, 0x0313, 0x0300, 0x0000 },
  713   [0x2b] = { 0x0397, 0x0314, 0x0300, 0x0000 },
  714   [0x2c] = { 0x0397, 0x0313, 0x0301, 0x0000 },
  715   [0x2d] = { 0x0397, 0x0314, 0x0301, 0x0000 },
  716   [0x2e] = { 0x0397, 0x0313, 0x0342, 0x0000 },
  717   [0x2f] = { 0x0397, 0x0314, 0x0342, 0x0000 },
  718   [0x30] = { 0x03B9, 0x0313, 0x0000 },
  719   [0x31] = { 0x03B9, 0x0314, 0x0000 },
  720   [0x32] = { 0x03B9, 0x0313, 0x0300, 0x0000 },
  721   [0x33] = { 0x03B9, 0x0314, 0x0300, 0x0000 },
  722   [0x34] = { 0x03B9, 0x0313, 0x0301, 0x0000 },
  723   [0x35] = { 0x03B9, 0x0314, 0x0301, 0x0000 },
  724   [0x36] = { 0x03B9, 0x0313, 0x0342, 0x0000 },
  725   [0x37] = { 0x03B9, 0x0314, 0x0342, 0x0000 },
  726   [0x38] = { 0x0399, 0x0313, 0x0000 },
  727   [0x39] = { 0x0399, 0x0314, 0x0000 },
  728   [0x3a] = { 0x0399, 0x0313, 0x0300, 0x0000 },
  729   [0x3b] = { 0x0399, 0x0314, 0x0300, 0x0000 },
  730   [0x3c] = { 0x0399, 0x0313, 0x0301, 0x0000 },
  731   [0x3d] = { 0x0399, 0x0314, 0x0301, 0x0000 },
  732   [0x3e] = { 0x0399, 0x0313, 0x0342, 0x0000 },
  733   [0x3f] = { 0x0399, 0x0314, 0x0342, 0x0000 },
  734   [0x40] = { 0x03BF, 0x0313, 0x0000 },
  735   [0x41] = { 0x03BF, 0x0314, 0x0000 },
  736   [0x42] = { 0x03BF, 0x0313, 0x0300, 0x0000 },
  737   [0x43] = { 0x03BF, 0x0314, 0x0300, 0x0000 },
  738   [0x44] = { 0x03BF, 0x0313, 0x0301, 0x0000 },
  739   [0x45] = { 0x03BF, 0x0314, 0x0301, 0x0000 },
  740   [0x48] = { 0x039F, 0x0313, 0x0000 },
  741   [0x49] = { 0x039F, 0x0314, 0x0000 },
  742   [0x4a] = { 0x039F, 0x0313, 0x0300, 0x0000 },
  743   [0x4b] = { 0x039F, 0x0314, 0x0300, 0x0000 },
  744   [0x4c] = { 0x039F, 0x0313, 0x0301, 0x0000 },
  745   [0x4d] = { 0x039F, 0x0314, 0x0301, 0x0000 },
  746   [0x50] = { 0x03C5, 0x0313, 0x0000 },
  747   [0x51] = { 0x03C5, 0x0314, 0x0000 },
  748   [0x52] = { 0x03C5, 0x0313, 0x0300, 0x0000 },
  749   [0x53] = { 0x03C5, 0x0314, 0x0300, 0x0000 },
  750   [0x54] = { 0x03C5, 0x0313, 0x0301, 0x0000 },
  751   [0x55] = { 0x03C5, 0x0314, 0x0301, 0x0000 },
  752   [0x56] = { 0x03C5, 0x0313, 0x0342, 0x0000 },
  753   [0x57] = { 0x03C5, 0x0314, 0x0342, 0x0000 },
  754   [0x59] = { 0x03A5, 0x0314, 0x0000 },
  755   [0x5b] = { 0x03A5, 0x0314, 0x0300, 0x0000 },
  756   [0x5d] = { 0x03A5, 0x0314, 0x0301, 0x0000 },
  757   [0x5f] = { 0x03A5, 0x0314, 0x0342, 0x0000 },
  758   [0x60] = { 0x03C9, 0x0313, 0x0000 },
  759   [0x61] = { 0x03C9, 0x0314, 0x0000 },
  760   [0x62] = { 0x03C9, 0x0313, 0x0300, 0x0000 },
  761   [0x63] = { 0x03C9, 0x0314, 0x0300, 0x0000 },
  762   [0x64] = { 0x03C9, 0x0313, 0x0301, 0x0000 },
  763   [0x65] = { 0x03C9, 0x0314, 0x0301, 0x0000 },
  764   [0x66] = { 0x03C9, 0x0313, 0x0342, 0x0000 },
  765   [0x67] = { 0x03C9, 0x0314, 0x0342, 0x0000 },
  766   [0x68] = { 0x03A9, 0x0313, 0x0000 },
  767   [0x69] = { 0x03A9, 0x0314, 0x0000 },
  768   [0x6a] = { 0x03A9, 0x0313, 0x0300, 0x0000 },
  769   [0x6b] = { 0x03A9, 0x0314, 0x0300, 0x0000 },
  770   [0x6c] = { 0x03A9, 0x0313, 0x0301, 0x0000 },
  771   [0x6d] = { 0x03A9, 0x0314, 0x0301, 0x0000 },
  772   [0x6e] = { 0x03A9, 0x0313, 0x0342, 0x0000 },
  773   [0x6f] = { 0x03A9, 0x0314, 0x0342, 0x0000 },
  774   [0x70] = { 0x03B1, 0x0300, 0x0000 },
  775   [0x71] = { 0x03B1, 0x0301, 0x0000 },
  776   [0x72] = { 0x03B5, 0x0300, 0x0000 },
  777   [0x73] = { 0x03B5, 0x0301, 0x0000 },
  778   [0x74] = { 0x03B7, 0x0300, 0x0000 },
  779   [0x75] = { 0x03B7, 0x0301, 0x0000 },
  780   [0x76] = { 0x03B9, 0x0300, 0x0000 },
  781   [0x77] = { 0x03B9, 0x0301, 0x0000 },
  782   [0x78] = { 0x03BF, 0x0300, 0x0000 },
  783   [0x79] = { 0x03BF, 0x0301, 0x0000 },
  784   [0x7a] = { 0x03C5, 0x0300, 0x0000 },
  785   [0x7b] = { 0x03C5, 0x0301, 0x0000 },
  786   [0x7c] = { 0x03C9, 0x0300, 0x0000 },
  787   [0x7d] = { 0x03C9, 0x0301, 0x0000 },
  788   [0x80] = { 0x03B1, 0x0345, 0x0313, 0x0000 },
  789   [0x81] = { 0x03B1, 0x0345, 0x0314, 0x0000 },
  790   [0x82] = { 0x03B1, 0x0345, 0x0313, 0x0300, 0x0000 },
  791   [0x83] = { 0x03B1, 0x0345, 0x0314, 0x0300, 0x0000 },
  792   [0x84] = { 0x03B1, 0x0345, 0x0313, 0x0301, 0x0000 },
  793   [0x85] = { 0x03B1, 0x0345, 0x0314, 0x0301, 0x0000 },
  794   [0x86] = { 0x03B1, 0x0345, 0x0313, 0x0342, 0x0000 },
  795   [0x87] = { 0x03B1, 0x0345, 0x0314, 0x0342, 0x0000 },
  796   [0x88] = { 0x0391, 0x0345, 0x0313, 0x0000 },
  797   [0x89] = { 0x0391, 0x0345, 0x0314, 0x0000 },
  798   [0x8a] = { 0x0391, 0x0345, 0x0313, 0x0300, 0x0000 },
  799   [0x8b] = { 0x0391, 0x0345, 0x0314, 0x0300, 0x0000 },
  800   [0x8c] = { 0x0391, 0x0345, 0x0313, 0x0301, 0x0000 },
  801   [0x8d] = { 0x0391, 0x0345, 0x0314, 0x0301, 0x0000 },
  802   [0x8e] = { 0x0391, 0x0345, 0x0313, 0x0342, 0x0000 },
  803   [0x8f] = { 0x0391, 0x0345, 0x0314, 0x0342, 0x0000 },
  804   [0x90] = { 0x03B7, 0x0345, 0x0313, 0x0000 },
  805   [0x91] = { 0x03B7, 0x0345, 0x0314, 0x0000 },
  806   [0x92] = { 0x03B7, 0x0345, 0x0313, 0x0300, 0x0000 },
  807   [0x93] = { 0x03B7, 0x0345, 0x0314, 0x0300, 0x0000 },
  808   [0x94] = { 0x03B7, 0x0345, 0x0313, 0x0301, 0x0000 },
  809   [0x95] = { 0x03B7, 0x0345, 0x0314, 0x0301, 0x0000 },
  810   [0x96] = { 0x03B7, 0x0345, 0x0313, 0x0342, 0x0000 },
  811   [0x97] = { 0x03B7, 0x0345, 0x0314, 0x0342, 0x0000 },
  812   [0x98] = { 0x0397, 0x0345, 0x0313, 0x0000 },
  813   [0x99] = { 0x0397, 0x0345, 0x0314, 0x0000 },
  814   [0x9a] = { 0x0397, 0x0345, 0x0313, 0x0300, 0x0000 },
  815   [0x9b] = { 0x0397, 0x0345, 0x0314, 0x0300, 0x0000 },
  816   [0x9c] = { 0x0397, 0x0345, 0x0313, 0x0301, 0x0000 },
  817   [0x9d] = { 0x0397, 0x0345, 0x0314, 0x0301, 0x0000 },
  818   [0x9e] = { 0x0397, 0x0345, 0x0313, 0x0342, 0x0000 },
  819   [0x9f] = { 0x0397, 0x0345, 0x0314, 0x0342, 0x0000 },
  820   [0xa0] = { 0x03C9, 0x0345, 0x0313, 0x0000 },
  821   [0xa1] = { 0x03C9, 0x0345, 0x0314, 0x0000 },
  822   [0xa2] = { 0x03C9, 0x0345, 0x0313, 0x0300, 0x0000 },
  823   [0xa3] = { 0x03C9, 0x0345, 0x0314, 0x0300, 0x0000 },
  824   [0xa4] = { 0x03C9, 0x0345, 0x0313, 0x0301, 0x0000 },
  825   [0xa5] = { 0x03C9, 0x0345, 0x0314, 0x0301, 0x0000 },
  826   [0xa6] = { 0x03C9, 0x0345, 0x0313, 0x0342, 0x0000 },
  827   [0xa7] = { 0x03C9, 0x0345, 0x0314, 0x0342, 0x0000 },
  828   [0xa8] = { 0x03A9, 0x0345, 0x0313, 0x0000 },
  829   [0xa9] = { 0x03A9, 0x0345, 0x0314, 0x0000 },
  830   [0xaa] = { 0x03A9, 0x0345, 0x0313, 0x0300, 0x0000 },
  831   [0xab] = { 0x03A9, 0x0345, 0x0314, 0x0300, 0x0000 },
  832   [0xac] = { 0x03A9, 0x0345, 0x0313, 0x0301, 0x0000 },
  833   [0xad] = { 0x03A9, 0x0345, 0x0314, 0x0301, 0x0000 },
  834   [0xae] = { 0x03A9, 0x0345, 0x0313, 0x0342, 0x0000 },
  835   [0xaf] = { 0x03A9, 0x0345, 0x0314, 0x0342, 0x0000 },
  836   [0xb0] = { 0x03B1, 0x0306, 0x0000 },
  837   [0xb1] = { 0x03B1, 0x0304, 0x0000 },
  838   [0xb2] = { 0x03B1, 0x0345, 0x0300, 0x0000 },
  839   [0xb3] = { 0x03B1, 0x0345, 0x0000 },
  840   [0xb4] = { 0x03B1, 0x0345, 0x0301, 0x0000 },
  841   [0xb6] = { 0x03B1, 0x0342, 0x0000 },
  842   [0xb7] = { 0x03B1, 0x0345, 0x0342, 0x0000 },
  843   [0xb8] = { 0x0391, 0x0306, 0x0000 },
  844   [0xb9] = { 0x0391, 0x0304, 0x0000 },
  845   [0xba] = { 0x0391, 0x0300, 0x0000 },
  846   [0xbb] = { 0x0391, 0x0301, 0x0000 },
  847   [0xbc] = { 0x0391, 0x0345, 0x0000 },
  848   [0xbe] = { 0x03B9, 0x0000 },
  849   [0xc1] = { 0x00A8, 0x0342, 0x0000 },
  850   [0xc2] = { 0x03B7, 0x0345, 0x0300, 0x0000 },
  851   [0xc3] = { 0x03B7, 0x0345, 0x0000 },
  852   [0xc4] = { 0x03B7, 0x0345, 0x0301, 0x0000 },
  853   [0xc6] = { 0x03B7, 0x0342, 0x0000 },
  854   [0xc7] = { 0x03B7, 0x0345, 0x0342, 0x0000 },
  855   [0xc8] = { 0x0395, 0x0300, 0x0000 },
  856   [0xc9] = { 0x0395, 0x0301, 0x0000 },
  857   [0xca] = { 0x0397, 0x0300, 0x0000 },
  858   [0xcb] = { 0x0397, 0x0301, 0x0000 },
  859   [0xcc] = { 0x0397, 0x0345, 0x0000 },
  860   [0xcd] = { 0x1FBF, 0x0300, 0x0000 },
  861   [0xce] = { 0x1FBF, 0x0301, 0x0000 },
  862   [0xcf] = { 0x1FBF, 0x0342, 0x0000 },
  863   [0xd0] = { 0x03B9, 0x0306, 0x0000 },
  864   [0xd1] = { 0x03B9, 0x0304, 0x0000 },
  865   [0xd2] = { 0x03B9, 0x0308, 0x0300, 0x0000 },
  866   [0xd3] = { 0x03B9, 0x0308, 0x0301, 0x0000 },
  867   [0xd6] = { 0x03B9, 0x0342, 0x0000 },
  868   [0xd7] = { 0x03B9, 0x0308, 0x0342, 0x0000 },
  869   [0xd8] = { 0x0399, 0x0306, 0x0000 },
  870   [0xd9] = { 0x0399, 0x0304, 0x0000 },
  871   [0xda] = { 0x0399, 0x0300, 0x0000 },
  872   [0xdb] = { 0x0399, 0x0301, 0x0000 },
  873   [0xdd] = { 0x1FFE, 0x0300, 0x0000 },
  874   [0xde] = { 0x1FFE, 0x0301, 0x0000 },
  875   [0xdf] = { 0x1FFE, 0x0342, 0x0000 },
  876   [0xe0] = { 0x03C5, 0x0306, 0x0000 },
  877   [0xe1] = { 0x03C5, 0x0304, 0x0000 },
  878   [0xe2] = { 0x03C5, 0x0308, 0x0300, 0x0000 },
  879   [0xe3] = { 0x03C5, 0x0308, 0x0301, 0x0000 },
  880   [0xe4] = { 0x03C1, 0x0313, 0x0000 },
  881   [0xe5] = { 0x03C1, 0x0314, 0x0000 },
  882   [0xe6] = { 0x03C5, 0x0342, 0x0000 },
  883   [0xe7] = { 0x03C5, 0x0308, 0x0342, 0x0000 },
  884   [0xe8] = { 0x03A5, 0x0306, 0x0000 },
  885   [0xe9] = { 0x03A5, 0x0304, 0x0000 },
  886   [0xea] = { 0x03A5, 0x0300, 0x0000 },
  887   [0xeb] = { 0x03A5, 0x0301, 0x0000 },
  888   [0xec] = { 0x03A1, 0x0314, 0x0000 },
  889   [0xed] = { 0x00A8, 0x0300, 0x0000 },
  890   [0xee] = { 0x00A8, 0x0301, 0x0000 },
  891   [0xef] = { 0x0060, 0x0000 },
  892   [0xf2] = { 0x03C9, 0x0345, 0x0300, 0x0000 },
  893   [0xf3] = { 0x03C9, 0x0345, 0x0000 },
  894   [0xf4] = { 0x03BF, 0x0345, 0x0301, 0x0000 },
  895   [0xf6] = { 0x03C9, 0x0342, 0x0000 },
  896   [0xf7] = { 0x03C9, 0x0345, 0x0342, 0x0000 },
  897   [0xf8] = { 0x039F, 0x0300, 0x0000 },
  898   [0xf9] = { 0x039F, 0x0301, 0x0000 },
  899   [0xfa] = { 0x03A9, 0x0300, 0x0000 },
  900   [0xfb] = { 0x03A9, 0x0301, 0x0000 },
  901   [0xfc] = { 0x03A9, 0x0345, 0x0000 },
  902   [0xfd] = { 0x00B4, 0x0000 },
  903 };
  904 
  905 static uint16_t page30[256][HFSPLUS_MAX_DECOMPOSE_LEN + 1] = {
  906   [0x4c] = { 0x304B, 0x3099, 0x0000 },
  907   [0x4e] = { 0x304D, 0x3099, 0x0000 },
  908   [0x50] = { 0x304F, 0x3099, 0x0000 },
  909   [0x52] = { 0x3051, 0x3099, 0x0000 },
  910   [0x54] = { 0x3053, 0x3099, 0x0000 },
  911   [0x56] = { 0x3055, 0x3099, 0x0000 },
  912   [0x58] = { 0x3057, 0x3099, 0x0000 },
  913   [0x5a] = { 0x3059, 0x3099, 0x0000 },
  914   [0x5c] = { 0x305B, 0x3099, 0x0000 },
  915   [0x5e] = { 0x305D, 0x3099, 0x0000 },
  916   [0x60] = { 0x305F, 0x3099, 0x0000 },
  917   [0x62] = { 0x3061, 0x3099, 0x0000 },
  918   [0x65] = { 0x3064, 0x3099, 0x0000 },
  919   [0x67] = { 0x3066, 0x3099, 0x0000 },
  920   [0x69] = { 0x3068, 0x3099, 0x0000 },
  921   [0x70] = { 0x306F, 0x3099, 0x0000 },
  922   [0x71] = { 0x306F, 0x309A, 0x0000 },
  923   [0x73] = { 0x3072, 0x3099, 0x0000 },
  924   [0x74] = { 0x3072, 0x309A, 0x0000 },
  925   [0x76] = { 0x3075, 0x3099, 0x0000 },
  926   [0x77] = { 0x3075, 0x309A, 0x0000 },
  927   [0x79] = { 0x3078, 0x3099, 0x0000 },
  928   [0x7a] = { 0x3078, 0x309A, 0x0000 },
  929   [0x7c] = { 0x307B, 0x3099, 0x0000 },
  930   [0x7d] = { 0x307B, 0x309A, 0x0000 },
  931   [0x94] = { 0x3046, 0x3099, 0x0000 },
  932   [0x9e] = { 0x309D, 0x3099, 0x0000 },
  933   [0xac] = { 0x30AB, 0x3099, 0x0000 },
  934   [0xae] = { 0x30AD, 0x3099, 0x0000 },
  935   [0xb0] = { 0x30AF, 0x3099, 0x0000 },
  936   [0xb2] = { 0x30B1, 0x3099, 0x0000 },
  937   [0xb4] = { 0x30B3, 0x3099, 0x0000 },
  938   [0xb6] = { 0x30B5, 0x3099, 0x0000 },
  939   [0xb8] = { 0x30B7, 0x3099, 0x0000 },
  940   [0xba] = { 0x30B9, 0x3099, 0x0000 },
  941   [0xbc] = { 0x30BB, 0x3099, 0x0000 },
  942   [0xbe] = { 0x30BD, 0x3099, 0x0000 },
  943   [0xc0] = { 0x30BF, 0x3099, 0x0000 },
  944   [0xc2] = { 0x30C1, 0x3099, 0x0000 },
  945   [0xc5] = { 0x30C4, 0x3099, 0x0000 },
  946   [0xc7] = { 0x30C6, 0x3099, 0x0000 },
  947   [0xc9] = { 0x30C8, 0x3099, 0x0000 },
  948   [0xd0] = { 0x30CF, 0x3099, 0x0000 },
  949   [0xd1] = { 0x30CF, 0x309A, 0x0000 },
  950   [0xd3] = { 0x30D2, 0x3099, 0x0000 },
  951   [0xd4] = { 0x30D2, 0x309A, 0x0000 },
  952   [0xd6] = { 0x30D5, 0x3099, 0x0000 },
  953   [0xd7] = { 0x30D5, 0x309A, 0x0000 },
  954   [0xd9] = { 0x30D8, 0x3099, 0x0000 },
  955   [0xda] = { 0x30D8, 0x309A, 0x0000 },
  956   [0xdc] = { 0x30DB, 0x3099, 0x0000 },
  957   [0xdd] = { 0x30DB, 0x309A, 0x0000 },
  958   [0xf4] = { 0x30A6, 0x3099, 0x0000 },
  959   [0xf7] = { 0x30EF, 0x3099, 0x0000 },
  960   [0xf8] = { 0x30F0, 0x3099, 0x0000 },
  961   [0xf9] = { 0x30F1, 0x3099, 0x0000 },
  962   [0xfa] = { 0x30F2, 0x3099, 0x0000 },
  963   [0xfe] = { 0x30FD, 0x3099, 0x0000 },
  964 };
  965 
  966 static uint16_t pagefb[256][HFSPLUS_MAX_DECOMPOSE_LEN + 1] = {
  967   [0x1f] = { 0x05F2, 0x05B7, 0x0000 },
  968   [0x2a] = { 0x05E9, 0x05C1, 0x0000 },
  969   [0x2b] = { 0x05E9, 0x05C2, 0x0000 },
  970   [0x2c] = { 0x05E9, 0x05BC, 0x05C1, 0x0000 },
  971   [0x2d] = { 0x05E9, 0x05BC, 0x05C2, 0x0000 },
  972   [0x2e] = { 0x05D0, 0x05B7, 0x0000 },
  973   [0x2f] = { 0x05D0, 0x05B8, 0x0000 },
  974   [0x30] = { 0x05D0, 0x05BC, 0x0000 },
  975   [0x31] = { 0x05D1, 0x05BC, 0x0000 },
  976   [0x32] = { 0x05D2, 0x05BC, 0x0000 },
  977   [0x33] = { 0x05D3, 0x05BC, 0x0000 },
  978   [0x34] = { 0x05D4, 0x05BC, 0x0000 },
  979   [0x35] = { 0x05D5, 0x05BC, 0x0000 },
  980   [0x36] = { 0x05D6, 0x05BC, 0x0000 },
  981   [0x38] = { 0x05D8, 0x05BC, 0x0000 },
  982   [0x39] = { 0x05D9, 0x05BC, 0x0000 },
  983   [0x3a] = { 0x05DA, 0x05BC, 0x0000 },
  984   [0x3b] = { 0x05DB, 0x05BC, 0x0000 },
  985   [0x3c] = { 0x05DC, 0x05BC, 0x0000 },
  986   [0x3e] = { 0x05DE, 0x05BC, 0x0000 },
  987   [0x40] = { 0x05E0, 0x05BC, 0x0000 },
  988   [0x41] = { 0x05E1, 0x05BC, 0x0000 },
  989   [0x43] = { 0x05E3, 0x05BC, 0x0000 },
  990   [0x44] = { 0x05E4, 0x05BC, 0x0000 },
  991   [0x46] = { 0x05E6, 0x05BC, 0x0000 },
  992   [0x47] = { 0x05E7, 0x05BC, 0x0000 },
  993   [0x48] = { 0x05E8, 0x05BC, 0x0000 },
  994   [0x49] = { 0x05E9, 0x05BC, 0x0000 },
  995   [0x4a] = { 0x05EA, 0x05BC, 0x0000 },
  996   [0x4b] = { 0x05D5, 0x05B9, 0x0000 },
  997   [0x4c] = { 0x05D1, 0x05BF, 0x0000 },
  998   [0x4d] = { 0x05DB, 0x05BF, 0x0000 },
  999   [0x4e] = { 0x05E4, 0x05BF, 0x0000 },
 1000 };
 1001 
 1002 uint16_t (*hfsplus_decompose_pages[256])[HFSPLUS_MAX_DECOMPOSE_LEN + 1] = {
 1003   [0x00] = page00,
 1004   [0x01] = page01,
 1005   [0x02] = page02,
 1006   [0x03] = page03,
 1007   [0x04] = page04,
 1008   [0x09] = page09,
 1009   [0x0a] = page0a,
 1010   [0x0b] = page0b,
 1011   [0x0c] = page0c,
 1012   [0x0d] = page0d,
 1013   [0x0e] = page0e,
 1014   [0x0f] = page0f,
 1015   [0x1e] = page1e,
 1016   [0x1f] = page1f,
 1017   [0x30] = page30,
 1018   [0xfb] = pagefb,
 1019 };
 1020 
 1021 void make_hfsplus_decompose_pages()
 1022 {
 1023  return;
 1024 }