You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1660 lines
93KB

  1. /*
  2. * ATRAC3+ compatible decoder
  3. *
  4. * Copyright (c) 2010-2013 Maxim Poliakovski
  5. *
  6. * This file is part of FFmpeg.
  7. *
  8. * FFmpeg is free software; you can redistribute it and/or
  9. * modify it under the terms of the GNU Lesser General Public
  10. * License as published by the Free Software Foundation; either
  11. * version 2.1 of the License, or (at your option) any later version.
  12. *
  13. * FFmpeg is distributed in the hope that it will be useful,
  14. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  16. * Lesser General Public License for more details.
  17. *
  18. * You should have received a copy of the GNU Lesser General Public
  19. * License along with FFmpeg; if not, write to the Free Software
  20. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  21. */
  22. #ifndef AVCODEC_ATRAC3PLUS_DATA_H
  23. #define AVCODEC_ATRAC3PLUS_DATA_H
  24. #include <stddef.h>
  25. #include <stdint.h>
  26. /** VLC tables for wordlen */
  27. static const uint8_t atrac3p_wl_cbs[][12] = {
  28. { 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  29. { 1, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  30. { 1, 0, 2, 3, 2, 0, 0, 0, 0, 0, 0, 0 },
  31. { 1, 0, 2, 3, 2, 0, 0, 0, 0, 0, 0, 0 },
  32. };
  33. /** VLC tables for code table indexes */
  34. static const uint8_t atrac3p_ct_cbs[][12] = {
  35. { 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  36. { 0, 1, 5, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
  37. { 0, 1, 5, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
  38. { 1, 0, 1, 6, 0, 0, 0, 0, 0, 0, 0, 0 },
  39. };
  40. /* Symbols for wordlen interleaved with symbols for code table */
  41. static const uint8_t atrac3p_wl_ct_xlats[] = {
  42. /* wordlen table 1 - 3 entries */
  43. 0, 1, 7,
  44. /* code table 1 - 4 entries */
  45. 0, 1, 2, 3,
  46. /* wordlen table 2 - 5 entries */
  47. 0, 1, 2, 6, 7,
  48. /* code table 2 - 8 entries */
  49. 0, 1, 2, 3, 4, 5, 6, 7,
  50. /* wordlen table 3 - 8 entries */
  51. 0, 1, 7, 2, 5, 6, 3, 4,
  52. /* code table 3 - 8 entries */
  53. 0, 1, 2, 3, 6, 7, 4, 5,
  54. /* wordlen table 4 - 8 entries */
  55. 0, 1, 7, 2, 3, 6, 4, 5,
  56. /* code table 4 - 8 entries */
  57. 0, 1, 2, 3, 4, 5, 6, 7,
  58. };
  59. /** VLC tables for scale factor indexes */
  60. static const uint8_t atrac3p_sf_cbs[][12] = {
  61. { 0, 1, 4, 2, 0, 0, 0, 7, 50, 0, 0, 0 },
  62. { 0, 1, 4, 2, 0, 0, 0, 7, 50, 0, 0, 0 },
  63. { 1, 0, 2, 0, 4, 0, 2, 1, 54, 0, 0, 0 },
  64. { 0, 1, 4, 0, 4, 0, 3, 0, 52, 0, 0, 0 },
  65. { 0, 1, 4, 2, 0, 8, 0, 0, 0, 0, 0, 0 },
  66. { 0, 1, 4, 2, 0, 8, 0, 0, 0, 0, 0, 0 },
  67. { 1, 0, 2, 2, 2, 0, 8, 0, 0, 0, 0, 0 },
  68. { 0, 1, 4, 2, 2, 2, 4, 0, 0, 0, 0, 0 },
  69. };
  70. static const uint8_t atrac3p_sf_xlats[] = {
  71. /* Scale factor index 1 - 64 entries */
  72. 0, 1, 61, 62, 63, 2, 60, 3, 4, 5, 6, 57, 58, 59, 7, 8,
  73. 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
  74. 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
  75. 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
  76. /* Scale factor index 2 - 64 entries */
  77. 0, 1, 2, 62, 63, 3, 61, 4, 5, 6, 57, 58, 59, 60, 7, 8,
  78. 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
  79. 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
  80. 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
  81. /* Scale factor index 3 - 64 entries */
  82. 0, 1, 63, 2, 3, 61, 62, 4, 60, 59, 5, 6, 7, 8, 9, 10,
  83. 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
  84. 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
  85. 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
  86. /* Scale factor index 4 - 64 entries */
  87. 0, 1, 2, 62, 63, 3, 4, 60, 61, 5, 58, 59, 6, 7, 8, 9,
  88. 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
  89. 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
  90. 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
  91. /* Scale factor index 5 - 15 entries */
  92. 0, 1, 13, 14, 15, 2, 12, 3, 4, 5, 6, 7, 9, 10, 11,
  93. /* Scale factor index 6 - 15 entries */
  94. 0, 1, 2, 14, 15, 3, 13, 4, 5, 6, 7, 9, 10, 11, 12,
  95. /* Scale factor index 7 - 15 entries */
  96. 0, 1, 15, 2, 14, 3, 13, 4, 5, 6, 7, 9, 10, 11, 12,
  97. /* Scale factor index 8 - 15 entries */
  98. 0, 1, 2, 14, 15, 3, 13, 4, 12, 5, 11, 6, 7, 9, 10,
  99. };
  100. /* weights for quantized word lengths */
  101. static const int8_t atrac3p_wl_weights[6][32] = {
  102. { 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0,
  103. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  104. { 5, 5, 5, 4, 4, 4, 3, 3, 3, 2, 2, 2, 1, 1, 1, 0,
  105. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  106. { 6, 5, 5, 5, 4, 4, 4, 4, 3, 3, 3, 3, 2, 2, 1, 1,
  107. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 },
  108. { 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0,
  109. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  110. { 5, 5, 5, 4, 4, 4, 3, 3, 3, 2, 2, 2, 1, 1, 1, 0,
  111. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  112. { 6, 5, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 2, 2, 1, 1,
  113. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
  114. };
  115. /* weights for quantized scale factors
  116. * sf_weights[i] = i / (tab_idx + 1)
  117. * where tab_idx = [1,2] */
  118. static const int8_t atrac3p_sf_weights[2][32] = {
  119. { 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
  120. 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15 },
  121. { 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5,
  122. 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10 }
  123. };
  124. /** Ungroup table for word length segments.
  125. * Numbers in this table tell which coeff belongs to which segment. */
  126. static const uint8_t atrac3p_qu_num_to_seg[32] = {
  127. 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5,
  128. 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9
  129. };
  130. /** Map quant unit number to subband number */
  131. static const uint8_t atrac3p_qu_to_subband[32] = {
  132. 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2,
  133. 3, 3, 4, 4, 5, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
  134. };
  135. /** Map subband number to number of power compensation groups */
  136. static const int atrac3p_subband_to_num_powgrps[16] = {
  137. 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5
  138. };
  139. /** 3D base shape tables. The values are grouped together as follows:
  140. * [num_start_values = 8][num_shape_tables = 16][num_seg_coeffs = 9]
  141. * For each of the 8 start values there are 16 different shapes each
  142. * 9 coefficients long. */
  143. static const int8_t atrac3p_wl_shapes[8][16][9] = {
  144. { { 0, 0, 0, 0, 0, 0, 0, -2, -1 },
  145. { 0, 0, 0, 0, 0, 0, 0, -5, -1 },
  146. { 0, 0, 0, -7, 0, 0, 0, 0, 0 },
  147. { 0, 0, 0, 0, 0, -7, 0, 0, 0 },
  148. { 0, 0, 0, 0, 0, 0, -5, 0, 0 },
  149. { 0, 0, 0, 0, -5, 0, 0, 0, 0 },
  150. { -7, -7, 0, 0, 0, 0, 0, 0, 0 },
  151. { 0, -7, 0, 0, 0, 0, 0, 0, 0 },
  152. { -2, -2, -5, 0, 0, 0, 0, 0, 0 },
  153. { 0, 0, 0, -2, -5, 0, 0, 0, 0 },
  154. { 0, 0, 0, 0, 0, -2, -5, 0, 0 },
  155. { 0, 0, 0, -5, 0, 0, 0, 0, 0 },
  156. { 0, -2, -7, -2, 0, 0, 0, 0, 0 },
  157. { 0, 0, 0, 0, -2, -5, 0, 0, 0 },
  158. { 0, 0, 0, -5, -5, 0, 0, 0, 0 },
  159. { 0, 0, 0, -5, -2, 0, 0, 0, 0 } },
  160. { { -1, -5, -3, -2, -1, -1, 0, 0, 0 },
  161. { -2, -5, -3, -3, -2, -1, -1, 0, 0 },
  162. { 0, -1, -1, -1, 0, 0, 0, 0, 0 },
  163. { -1, -3, 0, 0, 0, 0, 0, 0, 0 },
  164. { -1, -2, 0, 0, 0, 0, 0, 0, 0 },
  165. { -1, -3, -1, 0, 0, 0, 0, 1, 1 },
  166. { -1, -5, -3, -3, -2, -1, 0, 0, 0 },
  167. { -1, -1, -4, -2, -2, -1, -1, 0, 0 },
  168. { -1, -1, -3, -2, -3, -1, -1, -1, 0 },
  169. { -1, -4, -2, -3, -1, 0, 0, 0, 0 },
  170. { 0, -1, -2, -2, -1, -1, 0, 0, 0 },
  171. { 0, -2, -1, 0, 0, 0, 0, 0, 0 },
  172. { -1, -1, 0, 0, 0, 0, 0, 0, 0 },
  173. { -1, -1, -3, -2, -2, -1, -1, -1, 0 },
  174. { 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  175. { 0, -1, -3, -2, -2, -1, -1, -1, 0 }, },
  176. { { -1, -2, 0, 1, 1, 1, 1, 1, 1 },
  177. { 0, -1, 1, 1, 1, 1, 1, 1, 1 },
  178. { 0, -2, 1, 1, 1, 1, 1, 1, 1 },
  179. { 0, -2, 0, 1, 1, 1, 1, 1, 1 },
  180. { -1, -1, 0, 1, 1, 1, 1, 1, 1 },
  181. { 0, 0, -1, 0, 1, 1, 1, 1, 1 },
  182. { -1, -1, 1, 1, 1, 1, 1, 1, 1 },
  183. { 0, 0, -1, 1, 1, 1, 1, 1, 1 },
  184. { 0, -1, 0, 1, 1, 1, 1, 1, 1 },
  185. { -1, -1, -1, 1, 1, 1, 1, 1, 1 },
  186. { 0, 0, 0, 0, 1, 1, 1, 1, 1 },
  187. { 0, 0, 0, 1, 1, 1, 1, 1, 1 },
  188. { 0, -1, -1, 1, 1, 1, 1, 1, 1 },
  189. { 0, 1, 0, 1, 1, 1, 1, 1, 1 },
  190. { 0, -3, -2, 1, 1, 1, 1, 2, 2 },
  191. { -3, -5, -3, 2, 2, 2, 2, 2, 2 }, },
  192. { { -1, -2, 0, 2, 2, 2, 2, 2, 2 },
  193. { -1, -2, 0, 1, 2, 2, 2, 2, 2 },
  194. { 0, -2, 0, 2, 2, 2, 2, 2, 2 },
  195. { -1, 0, 1, 2, 2, 2, 2, 2, 2 },
  196. { 0, 0, 1, 2, 2, 2, 2, 2, 2 },
  197. { 0, -2, 0, 1, 2, 2, 2, 2, 2 },
  198. { 0, -1, 1, 2, 2, 2, 2, 2, 2 },
  199. { -1, -1, 0, 2, 2, 2, 2, 2, 2 },
  200. { -1, -1, 0, 1, 2, 2, 2, 2, 2 },
  201. { -1, -2, -1, 2, 2, 2, 2, 2, 2 },
  202. { 0, -1, 0, 2, 2, 2, 2, 2, 2 },
  203. { 1, 1, 0, 1, 2, 2, 2, 2, 2 },
  204. { 0, 1, 2, 2, 2, 2, 2, 2, 2 },
  205. { 1, 0, 0, 1, 2, 2, 2, 2, 2 },
  206. { 0, 0, 0, 1, 2, 2, 2, 2, 2 },
  207. { -1, -1, -1, 1, 2, 2, 2, 2, 2 }, },
  208. { { 0, 1, 2, 3, 3, 3, 3, 3, 3 },
  209. { 1, 1, 2, 3, 3, 3, 3, 3, 3 },
  210. { -1, 0, 1, 2, 3, 3, 3, 3, 3 },
  211. { 0, 0, 2, 3, 3, 3, 3, 3, 3 },
  212. { -1, 0, 1, 3, 3, 3, 3, 3, 3 },
  213. { 0, 0, 1, 3, 3, 3, 3, 3, 3 },
  214. { 1, 2, 3, 3, 3, 3, 3, 3, 3 },
  215. { 1, 2, 2, 3, 3, 3, 3, 3, 3 },
  216. { 0, 1, 1, 3, 3, 3, 3, 3, 3 },
  217. { 0, 0, 1, 2, 3, 3, 3, 3, 3 },
  218. { -1, 1, 2, 3, 3, 3, 3, 3, 3 },
  219. { -1, 0, 2, 3, 3, 3, 3, 3, 3 },
  220. { 2, 2, 3, 3, 3, 3, 3, 3, 3 },
  221. { 1, 1, 3, 3, 3, 3, 3, 3, 3 },
  222. { 0, 2, 3, 3, 3, 3, 3, 3, 3 },
  223. { 0, 1, 1, 2, 3, 3, 3, 3, 3 }, },
  224. { { 0, 1, 2, 3, 4, 4, 4, 4, 4 },
  225. { 1, 2, 3, 4, 4, 4, 4, 4, 4 },
  226. { 0, 0, 2, 3, 4, 4, 4, 4, 4 },
  227. { 1, 1, 2, 4, 4, 4, 4, 4, 4 },
  228. { 0, 1, 2, 4, 4, 4, 4, 4, 4 },
  229. { -1, 0, 1, 3, 4, 4, 4, 4, 4 },
  230. { 0, 0, 1, 3, 4, 4, 4, 4, 4 },
  231. { 1, 1, 2, 3, 4, 4, 4, 4, 4 },
  232. { 0, 1, 1, 3, 4, 4, 4, 4, 4 },
  233. { 2, 2, 3, 4, 4, 4, 4, 4, 4 },
  234. { 1, 1, 3, 4, 4, 4, 4, 4, 4 },
  235. { 1, 2, 2, 4, 4, 4, 4, 4, 4 },
  236. { -1, 0, 2, 3, 4, 4, 4, 4, 4 },
  237. { 0, 1, 3, 4, 4, 4, 4, 4, 4 },
  238. { 1, 2, 2, 3, 4, 4, 4, 4, 4 },
  239. { 0, 2, 3, 4, 4, 4, 4, 4, 4 }, },
  240. { { 1, 2, 3, 4, 5, 5, 5, 5, 5 },
  241. { 0, 1, 2, 3, 4, 5, 5, 5, 5 },
  242. { 0, 1, 2, 3, 5, 5, 5, 5, 5 },
  243. { 1, 1, 3, 4, 5, 5, 5, 5, 5 },
  244. { 1, 1, 2, 4, 5, 5, 5, 5, 5 },
  245. { 1, 2, 2, 4, 5, 5, 5, 5, 5 },
  246. { 1, 1, 2, 3, 5, 5, 5, 5, 5 },
  247. { 2, 2, 3, 4, 5, 5, 5, 5, 5 },
  248. { 0, 1, 2, 4, 5, 5, 5, 5, 5 },
  249. { 2, 2, 3, 5, 5, 5, 5, 5, 5 },
  250. { 1, 2, 3, 5, 5, 5, 5, 5, 5 },
  251. { 0, 1, 3, 4, 5, 5, 5, 5, 5 },
  252. { 1, 2, 2, 3, 5, 5, 5, 5, 5 },
  253. { 2, 3, 4, 5, 5, 5, 5, 5, 5 },
  254. { 0, 2, 3, 4, 5, 5, 5, 5, 5 },
  255. { 1, 1, 1, 3, 4, 5, 5, 5, 5 }, },
  256. { { 1, 2, 3, 4, 5, 5, 5, 6, 6 },
  257. { 1, 2, 3, 4, 5, 6, 6, 6, 6 },
  258. { 2, 3, 4, 5, 6, 6, 6, 6, 6 },
  259. { 1, 2, 3, 4, 6, 6, 6, 6, 6 },
  260. { 2, 2, 3, 4, 5, 5, 5, 6, 6 },
  261. { 1, 2, 3, 4, 5, 5, 6, 6, 6 },
  262. { 2, 2, 3, 4, 6, 6, 6, 6, 6 },
  263. { 2, 2, 3, 4, 5, 6, 6, 6, 6 },
  264. { 2, 2, 4, 5, 6, 6, 6, 6, 6 },
  265. { 2, 2, 3, 5, 6, 6, 6, 6, 6 },
  266. { 1, 2, 3, 5, 6, 6, 6, 6, 6 },
  267. { 2, 3, 3, 5, 6, 6, 6, 6, 6 },
  268. { 1, 2, 4, 5, 6, 6, 6, 6, 6 },
  269. { 2, 2, 3, 4, 5, 5, 6, 6, 6 },
  270. { 2, 3, 3, 4, 6, 6, 6, 6, 6 },
  271. { 1, 3, 4, 5, 6, 6, 6, 6, 6 } }
  272. };
  273. /** 2D base shape tables for scale factor coding.
  274. * The values are grouped together as follows:
  275. * [num_shape_tables = 64][num_seg_coeffs = 9] */
  276. static const int8_t atrac3p_sf_shapes[64][9] = {
  277. { -3, -2, -1, 0, 3, 5, 6, 8, 40 },
  278. { -3, -2, 0, 1, 7, 9, 11, 13, 20 },
  279. { -1, 0, 0, 1, 6, 8, 10, 13, 41 },
  280. { 0, 0, 0, 2, 5, 5, 6, 8, 14 },
  281. { 0, 0, 0, 2, 6, 7, 8, 11, 47 },
  282. { 0, 0, 1, 2, 5, 7, 8, 10, 32 },
  283. { 0, 0, 1, 3, 8, 10, 12, 14, 47 },
  284. { 0, 0, 2, 4, 9, 10, 12, 14, 40 },
  285. { 0, 0, 3, 5, 9, 10, 12, 14, 22 },
  286. { 0, 1, 3, 5, 10, 14, 18, 22, 31 },
  287. { 0, 2, 5, 6, 10, 10, 10, 12, 46 },
  288. { 0, 2, 5, 7, 12, 14, 15, 18, 44 },
  289. { 1, 1, 4, 5, 7, 7, 8, 9, 15 },
  290. { 1, 2, 2, 2, 4, 5, 7, 9, 26 },
  291. { 1, 2, 2, 3, 6, 7, 7, 8, 47 },
  292. { 1, 2, 2, 3, 6, 8, 10, 13, 22 },
  293. { 1, 3, 4, 7, 13, 17, 21, 24, 41 },
  294. { 1, 4, 0, 4, 10, 12, 13, 14, 17 },
  295. { 2, 3, 3, 3, 6, 8, 10, 13, 48 },
  296. { 2, 3, 3, 4, 9, 12, 14, 17, 47 },
  297. { 2, 3, 3, 5, 10, 12, 14, 17, 25 },
  298. { 2, 3, 5, 7, 8, 9, 9, 9, 13 },
  299. { 2, 3, 5, 9, 16, 21, 25, 28, 33 },
  300. { 2, 4, 5, 8, 12, 14, 17, 19, 26 },
  301. { 2, 4, 6, 8, 12, 13, 13, 15, 20 },
  302. { 2, 4, 7, 12, 20, 26, 30, 32, 35 },
  303. { 3, 3, 5, 6, 12, 14, 16, 19, 34 },
  304. { 3, 4, 4, 5, 7, 9, 10, 11, 48 },
  305. { 3, 4, 5, 6, 8, 9, 10, 11, 16 },
  306. { 3, 5, 5, 5, 7, 9, 10, 13, 35 },
  307. { 3, 5, 5, 7, 10, 12, 13, 15, 49 },
  308. { 3, 5, 7, 7, 8, 7, 9, 12, 21 },
  309. { 3, 5, 7, 8, 12, 14, 15, 15, 24 },
  310. { 3, 5, 7, 10, 16, 21, 24, 27, 44 },
  311. { 3, 5, 8, 14, 21, 26, 28, 29, 42 },
  312. { 3, 6, 10, 13, 18, 19, 20, 22, 27 },
  313. { 3, 6, 11, 16, 24, 27, 28, 29, 31 },
  314. { 4, 5, 4, 3, 4, 6, 8, 11, 18 },
  315. { 4, 6, 5, 6, 9, 10, 12, 14, 20 },
  316. { 4, 6, 7, 6, 6, 6, 7, 8, 46 },
  317. { 4, 6, 7, 9, 13, 16, 18, 20, 48 },
  318. { 4, 6, 7, 9, 14, 17, 20, 23, 31 },
  319. { 4, 6, 9, 11, 14, 15, 15, 17, 21 },
  320. { 4, 8, 13, 20, 27, 32, 35, 36, 38 },
  321. { 5, 6, 6, 4, 5, 6, 7, 6, 6 },
  322. { 5, 7, 7, 8, 9, 9, 10, 12, 49 },
  323. { 5, 8, 9, 9, 10, 11, 12, 13, 42 },
  324. { 5, 8, 10, 12, 15, 16, 17, 19, 42 },
  325. { 5, 8, 12, 17, 26, 31, 32, 33, 44 },
  326. { 5, 9, 13, 16, 20, 22, 23, 23, 35 },
  327. { 6, 8, 8, 7, 6, 5, 6, 8, 15 },
  328. { 6, 8, 8, 8, 9, 10, 12, 16, 24 },
  329. { 6, 8, 8, 9, 10, 10, 11, 11, 13 },
  330. { 6, 8, 10, 13, 19, 21, 24, 26, 32 },
  331. { 6, 9, 10, 11, 13, 13, 14, 16, 49 },
  332. { 7, 9, 9, 10, 13, 14, 16, 19, 27 },
  333. { 7, 10, 12, 13, 16, 16, 17, 17, 27 },
  334. { 7, 10, 12, 14, 17, 19, 20, 22, 48 },
  335. { 8, 9, 10, 9, 10, 11, 11, 11, 19 },
  336. { 8, 11, 12, 12, 13, 13, 13, 13, 17 },
  337. { 8, 11, 13, 14, 16, 17, 19, 20, 27 },
  338. { 8, 12, 17, 22, 26, 28, 29, 30, 33 },
  339. { 10, 14, 16, 19, 21, 22, 22, 24, 28 },
  340. { 10, 15, 17, 18, 21, 22, 23, 25, 43 }
  341. };
  342. static const uint8_t atrac3p_ct_restricted_to_full[2][7][4] = {
  343. { { 0, 5, 4, 1 },
  344. { 0, 1, 2, 3 },
  345. { 3, 0, 4, 2 },
  346. { 4, 0, 1, 2 },
  347. { 1, 0, 4, 3 },
  348. { 3, 0, 2, 1 },
  349. { 0, 3, 1, 2 } },
  350. { { 4, 0, 1, 2 },
  351. { 0, 3, 2, 1 },
  352. { 0, 1, 2, 3 },
  353. { 0, 1, 2, 4 },
  354. { 0, 1, 2, 3 },
  355. { 1, 4, 2, 0 },
  356. { 0, 1, 2, 3 } }
  357. };
  358. /** Tables for spectrum coding */
  359. /* If the first entry of a subtable is negative, it means
  360. * that another VLC is to be reused. */
  361. static const int8_t atrac3p_spectra_cbs[][12] = {
  362. { 1, 0, 0, 1, 7, 0, 19, 5, 13, 21, 6, 8 },
  363. { 0, 1, 0, 4, 11, 0, 1, 29, 6, 20, 7, 2 },
  364. { 0, 0, 1, 8, 0, 13, 18, 7, 2, 0, 0, 0 },
  365. { 0, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  366. { 0, 0, 1, 3, 5, 8, 12, 23, 72, 68, 31, 2 },
  367. { 0, 1, 3, 2, 6, 4, 0, 0, 0, 0, 0, 0 },
  368. { 0, 1, 2, 2, 2, 6, 14, 21, 13, 2, 0, 0 },
  369. { 1, 0, 0, 0, 8, 1, 18, 9, 22, 10, 12, 0 },
  370. { 0, 0, 0, 0, 16, 11, 32, 19, 1, 2, 0, 0 },
  371. { 1, 0, 0, 4, 2, 2, 9, 15, 12, 4, 0, 0 },
  372. { 0, 1, 0, 4, 3, 5, 16, 28, 34, 26, 4, 0 },
  373. { 0, 0, 0, 0, 9, 12, 16, 44, 98, 42, 4, 0 },
  374. { 0, 1, 1, 2, 2, 5, 7, 21, 54, 85, 62, 16 },
  375. { 0, 0, 3, 2, 5, 7, 17, 23, 6, 0, 0, 0 },
  376. { 1, 0, 0, 2, 6, 0, 7, 21, 15, 17, 8, 4 },
  377. { 0, 1, 4, 0, 4, 3, 8, 3, 2, 0, 0, 0 },
  378. { 0, 0, 5, 0, 4, 6, 10, 16, 8, 0, 0, 0 },
  379. { 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
  380. { 0, 1, 5, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
  381. { 0, 0, 0, 3, 4, 12, 15, 34, 83, 75, 30, 0 },
  382. { 0, 0, 0, 3, 14, 10, 20, 16, 0, 0, 0, 0 },
  383. { 1, 0, 3, 1, 0, 4, 0, 0, 0, 0, 0, 0 },
  384. { 1, 0, 0, 2, 2, 6, 12, 18, 19, 15, 6, 0 },
  385. { 0, 0, 1, 1, 13, 1, 14, 28, 33, 81, 32, 52 },
  386. { 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0 },
  387. { 0, 1, 0, 2, 3, 6, 19, 9, 75, 110, 0, 0 },
  388. { 0, 0, 1, 3, 5, 5, 13, 27, 69, 96, 35, 2 },
  389. { 0, 0, 0, 7, 6, 8, 22, 20, 0, 0, 0, 0 },
  390. { 1, 0, 0, 6, 2, 0, 0, 0, 19, 9, 24, 20 },
  391. { 0, 0, 1, 2, 13, 1, 31, 13, 16, 4, 0, 0 },
  392. { 0, 2, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
  393. { 0, 0, 0, 5, 4, 12, 17, 47, 24, 12, 0, 0 },
  394. { 0, 2, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0 },
  395. { 0, 0, 0, 0, 1, 16, 31, 36, 172, 0, 0, 0 },
  396. { 0, 0, 0, 5, 12, 9, 12, 15, 10, 0, 0, 0 },
  397. { 0, 1, 0, 6, 2, 6, 18, 4, 26, 6, 12, 0 },
  398. { 1, 0, 2, 2, 0, 4, 3, 8, 3, 2, 0, 0 },
  399. { 0, 2, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
  400. { 0, 0, 0, 4, 7, 12, 19, 21, 58, 0, 0, 0 },
  401. { 1, 1, 1, 0, 3, 2, 0, 0, 0, 0, 0, 0 },
  402. { 0, 0, 1, 8, 6, 8, 8, 0, 0, 0, 0, 0 },
  403. { 0, 0, 1, 5, 7, 8, 16, 22, 4, 0, 0, 0 },
  404. { 0, 1, 0, 8, 0, 1, 16, 10, 29, 12, 4, 0 },
  405. { 0, 0, 5, 2, 2, 9, 5, 2, 0, 0, 0, 0 },
  406. { 0, 0, 1, 1, 10, 4, 16, 29, 46, 75, 74, 0 },
  407. { 0, 0, 0, 1, 7, 12, 36, 63, 2, 0, 0, 0 },
  408. { 0, 3, 0, 1, 3, 4, 4, 0, 0, 0, 0, 0 },
  409. { 0, 1, 2, 2, 6, 8, 6, 3, 1, 2, 0, 0 },
  410. { 0, 1, 1, 3, 4, 6, 13, 25, 10, 0, 0, 0 },
  411. { 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  412. { 0, 1, 0, 4, 8, 3, 8, 24, 17, 12, 4, 0 },
  413. { 0, 1, 1, 5, 2, 8, 7, 13, 8, 4, 0, 0 },
  414. { 1, 0, 0, 4, 0, 4, 5, 9, 30, 45, 21, 2 },
  415. { 0, 1, 3, 3, 4, 4, 0, 0, 0, 0, 0, 0 },
  416. { 0, 0, 1, 3, 4, 8, 10, 36, 60, 78, 48, 8 },
  417. { -6 },
  418. { 1, 0, 0, 2, 6, 0, 11, 13, 12, 24, 4, 8 },
  419. { 1, 0, 0, 4, 0, 8, 4, 9, 19, 13, 13, 10 },
  420. { 1, 0, 0, 4, 0, 5, 12, 13, 14, 0, 0, 0 },
  421. { 0, 1, 0, 4, 4, 5, 9, 30, 45, 21, 2, 0 },
  422. { 0, 0, 1, 4, 4, 4, 12, 30, 73, 75, 22, 0 },
  423. { -5 },
  424. { 0, 0, 3, 2, 4, 8, 23, 13, 10, 0, 0, 0 },
  425. { -14 },
  426. { 0, 0, 1, 3, 12, 0, 30, 9, 18, 8, 0, 0 },
  427. { -9 },
  428. { 1, 0, 0, 4, 0, 3, 5, 16, 28, 34, 26, 4 },
  429. { -11 },
  430. { 0, 0, 0, 4, 4, 9, 13, 37, 76, 72, 39, 2 },
  431. { -6 },
  432. { -28 },
  433. { -22 },
  434. { -2 },
  435. { -31 },
  436. { -60 },
  437. { 0, 0, 2, 2, 4, 5, 11, 26, 67, 78, 51, 10 },
  438. { -6 },
  439. { -35 },
  440. { 0, 1, 0, 4, 6, 7, 10, 22, 11, 16, 4, 0 },
  441. { 0, 1, 0, 0, 4, 11, 8, 28, 92, 97, 13, 2 },
  442. { -59 },
  443. { 1, 0, 0, 0, 4, 6, 6, 14, 42, 63, 59, 30 },
  444. { -75 },
  445. { 1, 0, 2, 0, 2, 2, 6, 17, 14, 13, 6, 0 },
  446. { 1, 0, 0, 1, 7, 0, 20, 4, 10, 24, 2, 12 },
  447. { 1, 0, 1, 3, 2, 3, 7, 4, 4, 0, 0, 0 },
  448. { 0, 1, 1, 3, 4, 9, 15, 12, 4, 0, 0, 0 },
  449. { -66 },
  450. { -32 },
  451. { -12 },
  452. { 0, 1, 1, 3, 4, 6, 14, 22, 12, 0, 0, 0 },
  453. { -42 },
  454. { 1, 0, 1, 3, 2, 3, 7, 4, 4, 0, 0, 0 },
  455. { 1, 1, 1, 0, 4, 0, 0, 0, 0, 0, 0, 0 },
  456. { -17 },
  457. { -39 },
  458. { 1, 0, 2, 0, 2, 4, 11, 9, 2, 0, 0, 0 },
  459. { -62 },
  460. { -28 },
  461. { 1, 0, 0, 2, 3, 5, 12, 14, 18, 15, 9, 2 },
  462. { 1, 1, 1, 0, 4, 0, 0, 0, 0, 0, 0, 0 },
  463. { 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0 },
  464. { 1, 0, 0, 2, 2, 2, 6, 12, 34, 92, 54, 20 },
  465. { 1, 0, 0, 3, 0, 3, 3, 10, 40, 85, 61, 50 },
  466. { 0, 1, 2, 1, 4, 7, 10, 26, 12, 0, 0, 0 },
  467. { 1, 0, 0, 1, 7, 0, 19, 5, 13, 23, 0, 12 },
  468. { -78 },
  469. { 1, 0, 0, 0, 1, 4, 9, 4, 103, 110, 24, 0 },
  470. { 1, 0, 2, 2, 2, 4, 0, 0, 0, 0, 0, 0 },
  471. { 0, 1, 4, 0, 0, 0, 8, 11, 24, 53, 64, 60 },
  472. { -47 },
  473. { 0, 1, 0, 4, 6, 10, 12, 7, 15, 4, 4, 0 },
  474. };
  475. static const uint8_t atrac3p_spectra_xlats[] = {
  476. /* Table set A, code table 0, wordlen 1 - 81 entries */
  477. 0x00, 0x03, 0x40, 0xC0, 0x10, 0x30, 0x04, 0x0C, 0x01, 0x50, 0xD0, 0x70,
  478. 0xF0, 0xC4, 0x14, 0x34, 0x4C, 0x1C, 0x3C, 0x41, 0xC1, 0x31, 0x05, 0x0D,
  479. 0xC3, 0x13, 0x07, 0x0F, 0x44, 0xCC, 0x11, 0x43, 0x33, 0x54, 0x74, 0xDC,
  480. 0xFC, 0x71, 0x15, 0x4D, 0xCD, 0x1D, 0xD3, 0xC7, 0x37, 0x3F, 0xD4, 0xF4,
  481. 0x5C, 0x7C, 0x51, 0xD1, 0xF1, 0x45, 0xC5, 0x35, 0xDD, 0x3D, 0x53, 0x73,
  482. 0xF3, 0x47, 0x17, 0x77, 0x4F, 0xCF, 0x1F, 0x55, 0xF5, 0x7D, 0xD7, 0x5F,
  483. 0xFF, 0xD5, 0x75, 0x5D, 0xFD, 0x57, 0xF7, 0xDF, 0x7F,
  484. /* Table set A, code table 0, wordlen 2 - 81 entries */
  485. 0x00, 0x40, 0x10, 0x04, 0x01, 0x50, 0x44, 0x14, 0x54, 0x41, 0x11, 0x51,
  486. 0x05, 0x45, 0x15, 0x55, 0x90, 0x80, 0x20, 0x60, 0x84, 0x94, 0x24, 0x64,
  487. 0x08, 0x48, 0x18, 0x58, 0x81, 0x91, 0x21, 0x85, 0x95, 0x65, 0x09, 0x49,
  488. 0x19, 0x59, 0x02, 0x42, 0x12, 0x52, 0x06, 0x46, 0x16, 0x56, 0x88, 0x61,
  489. 0x25, 0x29, 0x69, 0x5A, 0xA0, 0xA4, 0x98, 0x28, 0x68, 0xA1, 0xA5, 0x89,
  490. 0x99, 0xA9, 0x82, 0x92, 0x22, 0x62, 0x96, 0x26, 0x66, 0x0A, 0x4A, 0x1A,
  491. 0xA8, 0x86, 0xA6, 0x8A, 0x9A, 0x2A, 0x6A, 0xA2, 0xAA,
  492. /* Table set A, code table 0, wordlen 3 - 49 entries */
  493. 0x00, 0x08, 0x38, 0x01, 0x09, 0x39, 0x07, 0x0F, 0x3F, 0x10, 0x30, 0x11,
  494. 0x31, 0x02, 0x0A, 0x3A, 0x05, 0x06, 0x0E, 0x3E, 0x17, 0x37, 0x18, 0x28,
  495. 0x19, 0x29, 0x2A, 0x32, 0x03, 0x0B, 0x33, 0x3B, 0x0D, 0x15, 0x3D, 0x16,
  496. 0x1E, 0x36, 0x1F, 0x2F, 0x12, 0x1A, 0x13, 0x2B, 0x1D, 0x35, 0x2E, 0x1B,
  497. 0x2D,
  498. /* Table set A, code table 0, wordlen 4 - 6 entries */
  499. 0x01, 0x02, 0x00, 0x03, 0x04, 0x05,
  500. /* Table set A, code table 0, wordlen 5 - 225 entries */
  501. 0x00, 0x10, 0xF0, 0x01, 0x11, 0xF1, 0x0F, 0x1F, 0xFF, 0x20, 0xE0, 0xE1,
  502. 0x02, 0xF2, 0x0E, 0x1E, 0x2F, 0x30, 0xD0, 0x21, 0x12, 0x22, 0xE2, 0x03,
  503. 0x0D, 0x2E, 0xEE, 0xFE, 0xEF, 0x40, 0xC0, 0x31, 0xC1, 0xD1, 0x32, 0xD2,
  504. 0x13, 0x23, 0xE3, 0xF3, 0x04, 0xF4, 0x0C, 0x1C, 0x1D, 0x2D, 0xED, 0xFD,
  505. 0x3E, 0xDE, 0x3F, 0xDF, 0x50, 0x60, 0x70, 0x90, 0xA0, 0xB0, 0x41, 0x51,
  506. 0x61, 0x71, 0x91, 0xA1, 0xB1, 0x42, 0x62, 0x92, 0xA2, 0xC2, 0x33, 0xC3,
  507. 0xD3, 0x14, 0x24, 0x34, 0xD4, 0xE4, 0x05, 0x15, 0xF5, 0x06, 0x16, 0x26,
  508. 0xE6, 0xF6, 0x07, 0x17, 0xE7, 0xF7, 0x09, 0x19, 0x29, 0xF9, 0x0A, 0x1A,
  509. 0x2A, 0xEA, 0xFA, 0x0B, 0x1B, 0xFB, 0x2C, 0x3C, 0xDC, 0xEC, 0xFC, 0x3D,
  510. 0x4D, 0xCD, 0xDD, 0x4E, 0x6E, 0x7E, 0xAE, 0xCE, 0x4F, 0x5F, 0x6F, 0x7F,
  511. 0x9F, 0xAF, 0xBF, 0xCF, 0x52, 0x72, 0xB2, 0x43, 0x53, 0x63, 0x73, 0x93,
  512. 0xA3, 0xB3, 0x44, 0x64, 0x74, 0x94, 0xA4, 0xB4, 0xC4, 0x25, 0x35, 0xA5,
  513. 0xC5, 0xD5, 0xE5, 0x36, 0x46, 0xB6, 0xC6, 0xD6, 0x27, 0x37, 0x47, 0xB7,
  514. 0xC7, 0xD7, 0x39, 0x49, 0x59, 0xC9, 0xD9, 0xE9, 0x3A, 0x4A, 0x5A, 0xCA,
  515. 0xDA, 0x2B, 0x3B, 0x4B, 0x6B, 0x7B, 0xDB, 0xEB, 0x4C, 0x5C, 0x6C, 0x7C,
  516. 0x9C, 0xAC, 0xCC, 0x5D, 0x6D, 0x7D, 0x9D, 0xAD, 0xBD, 0x5E, 0x9E, 0xBE,
  517. 0x54, 0x45, 0x55, 0x65, 0x75, 0x95, 0xB5, 0x56, 0x66, 0x76, 0x96, 0xA6,
  518. 0x57, 0x67, 0x97, 0xA7, 0x69, 0x79, 0xA9, 0xB9, 0x6A, 0x7A, 0x9A, 0xAA,
  519. 0xBA, 0x5B, 0x9B, 0xAB, 0xBB, 0xCB, 0xBC, 0x77, 0x99,
  520. /* Table set A, code table 0, wordlen 6 - 16 entries */
  521. 0x01, 0x00, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0D, 0x0E,
  522. 0x0A, 0x0B, 0x0C, 0x0F,
  523. /* Table set A, code table 0, wordlen 7 - 63 entries */
  524. 0x00, 0x01, 0x3F, 0x02, 0x3E, 0x03, 0x3D, 0x04, 0x05, 0x06, 0x3A, 0x3B,
  525. 0x3C, 0x07, 0x08, 0x09, 0x0A, 0x1A, 0x1B, 0x1C, 0x24, 0x25, 0x26, 0x36,
  526. 0x37, 0x38, 0x39, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x19, 0x1D, 0x1E,
  527. 0x1F, 0x21, 0x22, 0x23, 0x27, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35,
  528. 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x29, 0x2A, 0x2B, 0x2C, 0x2D,
  529. 0x2E, 0x18, 0x28,
  530. /* Table set A, code table 1, wordlen 1 - 81 entries */
  531. 0x00, 0x40, 0xC0, 0x10, 0x30, 0x04, 0x0C, 0x01, 0x03, 0xD0, 0x50, 0x70,
  532. 0xF0, 0xC4, 0x34, 0x4C, 0xCC, 0x1C, 0x41, 0xC1, 0x31, 0x05, 0x0D, 0x43,
  533. 0xC3, 0x13, 0x07, 0x0F, 0x44, 0x14, 0x74, 0xDC, 0x3C, 0x11, 0x1D, 0x33,
  534. 0x37, 0x54, 0xD4, 0xF4, 0x5C, 0x7C, 0xFC, 0xD1, 0x71, 0xF1, 0x15, 0x35,
  535. 0x4D, 0xCD, 0xDD, 0x3D, 0xD3, 0x73, 0x47, 0xC7, 0x17, 0x77, 0x3F, 0x51,
  536. 0x45, 0xC5, 0x55, 0x53, 0xF3, 0x4F, 0xCF, 0x1F, 0xFF, 0xD5, 0x75, 0xF5,
  537. 0x5D, 0x7D, 0xFD, 0x57, 0xD7, 0xF7, 0x5F, 0xDF, 0x7F,
  538. /* Table set A, code table 1, wordlen 2 - 81 entries */
  539. 0x00, 0x40, 0x10, 0x50, 0x04, 0x44, 0x14, 0x54, 0x01, 0x41, 0x11, 0x51,
  540. 0x05, 0x45, 0x15, 0x55, 0x90, 0x94, 0x58, 0x91, 0x95, 0x19, 0x59, 0x06,
  541. 0x46, 0x16, 0x56, 0x80, 0x60, 0x84, 0x24, 0x64, 0xA4, 0x08, 0x48, 0x18,
  542. 0x68, 0x81, 0x21, 0x61, 0xA1, 0x85, 0x25, 0x65, 0xA5, 0x09, 0x49, 0x99,
  543. 0x69, 0xA9, 0x02, 0x42, 0x12, 0x52, 0x96, 0x26, 0x66, 0x1A, 0x5A, 0x20,
  544. 0xA0, 0x88, 0x98, 0x28, 0xA8, 0x89, 0x29, 0x82, 0x92, 0x22, 0x62, 0x86,
  545. 0xA6, 0x0A, 0x4A, 0x9A, 0x6A, 0xAA, 0xA2, 0x8A, 0x2A,
  546. /* Table set A, code table 1, wordlen 3 - 49 entries */
  547. 0x00, 0x08, 0x38, 0x01, 0x07, 0x39, 0x0F, 0x09, 0x3F, 0x10, 0x30, 0x31,
  548. 0x02, 0x3A, 0x06, 0x0E, 0x3E, 0x17, 0x18, 0x28, 0x11, 0x29, 0x0A, 0x32,
  549. 0x03, 0x0B, 0x3B, 0x05, 0x0D, 0x3D, 0x16, 0x1F, 0x37, 0x19, 0x12, 0x1A,
  550. 0x2A, 0x13, 0x33, 0x15, 0x35, 0x1E, 0x2E, 0x36, 0x2F, 0x1B, 0x2B, 0x1D,
  551. 0x2D,
  552. /* Table set A, code table 1, wordlen 4 - 121 entries */
  553. 0x00, 0x10, 0xF0, 0x01, 0x0F, 0xF1, 0x1F, 0xFF, 0x20, 0xE0, 0x11, 0x02,
  554. 0x0E, 0x30, 0x50, 0xB0, 0xD0, 0x21, 0xE1, 0x12, 0xF2, 0x03, 0x05, 0x0B,
  555. 0x0D, 0x1E, 0xFE, 0x2F, 0xEF, 0x40, 0xC0, 0x31, 0x51, 0xB1, 0xC1, 0xD1,
  556. 0x22, 0x52, 0xE2, 0x13, 0xF3, 0x04, 0x15, 0xF5, 0x1B, 0xEB, 0xFB, 0x0C,
  557. 0x1D, 0xFD, 0x2E, 0x5E, 0xEE, 0x3F, 0x5F, 0xBF, 0xDF, 0x41, 0x32, 0x42,
  558. 0xB2, 0xD2, 0x23, 0x53, 0xB3, 0xE3, 0x14, 0x24, 0xE4, 0xF4, 0x25, 0x35,
  559. 0xD5, 0xE5, 0x2B, 0x3B, 0xDB, 0x1C, 0x2C, 0xBC, 0xEC, 0xFC, 0x2D, 0xBD,
  560. 0xED, 0x3E, 0x4E, 0xBE, 0xDE, 0x4F, 0xCF, 0xC2, 0x33, 0x43, 0xC3, 0xD3,
  561. 0x34, 0x44, 0x54, 0xB4, 0xD4, 0x45, 0x55, 0xC5, 0x4B, 0xCB, 0x3C, 0x4C,
  562. 0x5C, 0xCC, 0xDC, 0x3D, 0x4D, 0x5D, 0xCD, 0xDD, 0xCE, 0xC4, 0xB5, 0x5B,
  563. 0xBB,
  564. /* Table set A, code table 1, wordlen 5 - 225 entries */
  565. 0x00, 0x10, 0xF0, 0x01, 0x11, 0xF1, 0x0F, 0x1F, 0xFF, 0x20, 0xE0, 0x21,
  566. 0xE1, 0x02, 0x12, 0xF2, 0x0E, 0x1E, 0xFE, 0x2F, 0xEF, 0x30, 0xD0, 0x31,
  567. 0xD1, 0x22, 0xE2, 0x03, 0x13, 0xF3, 0x0D, 0x1D, 0xFD, 0x2E, 0xEE, 0x3F,
  568. 0xDF, 0x40, 0x60, 0x70, 0x90, 0xA0, 0xC0, 0x41, 0xC1, 0x32, 0x42, 0xC2,
  569. 0xD2, 0x23, 0x33, 0xD3, 0xE3, 0x04, 0x14, 0x24, 0xE4, 0xF4, 0x06, 0x16,
  570. 0xF6, 0x07, 0x09, 0x0A, 0x1A, 0xFA, 0x0C, 0x1C, 0x2C, 0xEC, 0xFC, 0x2D,
  571. 0x3D, 0xDD, 0xED, 0x3E, 0x4E, 0xCE, 0xDE, 0x4F, 0xCF, 0x50, 0xB0, 0x51,
  572. 0x61, 0x71, 0x91, 0xA1, 0xB1, 0x52, 0x62, 0x72, 0x92, 0xA2, 0xB2, 0x43,
  573. 0x53, 0x63, 0x73, 0x93, 0xA3, 0xC3, 0x34, 0x44, 0x64, 0xA4, 0xC4, 0xD4,
  574. 0x05, 0x15, 0x25, 0x35, 0xD5, 0xE5, 0xF5, 0x26, 0x36, 0x46, 0xC6, 0xD6,
  575. 0xE6, 0x17, 0x27, 0x37, 0xC7, 0xD7, 0xE7, 0xF7, 0x19, 0x29, 0x39, 0xC9,
  576. 0xD9, 0xE9, 0xF9, 0x2A, 0x3A, 0x4A, 0x5A, 0xCA, 0xDA, 0xEA, 0x0B, 0x1B,
  577. 0x2B, 0x3B, 0xCB, 0xDB, 0xEB, 0xFB, 0x3C, 0x4C, 0x6C, 0x7C, 0x9C, 0xAC,
  578. 0xBC, 0xCC, 0xDC, 0x4D, 0x5D, 0x6D, 0x7D, 0x9D, 0xAD, 0xBD, 0xCD, 0x5E,
  579. 0x6E, 0x7E, 0x9E, 0xAE, 0xBE, 0x5F, 0x6F, 0x7F, 0x9F, 0xAF, 0xBF, 0xB3,
  580. 0x54, 0x74, 0x94, 0xB4, 0x45, 0x55, 0x65, 0x75, 0x95, 0xA5, 0xB5, 0xC5,
  581. 0x56, 0x66, 0x76, 0x96, 0xA6, 0xB6, 0x47, 0x57, 0x67, 0xA7, 0xB7, 0x49,
  582. 0x59, 0x69, 0xA9, 0xB9, 0x6A, 0x7A, 0x9A, 0xAA, 0xBA, 0x4B, 0x5B, 0x6B,
  583. 0x7B, 0x9B, 0xAB, 0xBB, 0x5C, 0x77, 0x97, 0x79, 0x99,
  584. /* Table set A, code table 1, wordlen 6 - 256 entries */
  585. 0x00, 0x01, 0x10, 0x11, 0x21, 0x12, 0x20, 0x31, 0x02, 0x22, 0x13, 0x30,
  586. 0x41, 0x32, 0x03, 0x23, 0x14, 0x24, 0x40, 0x51, 0x61, 0xD1, 0xE1, 0x42,
  587. 0x52, 0xD2, 0x33, 0x43, 0xD3, 0x04, 0x34, 0x05, 0x15, 0x25, 0x16, 0x1D,
  588. 0x2D, 0x1E, 0x2E, 0x50, 0x60, 0xD0, 0xE0, 0xF0, 0x71, 0x81, 0xF1, 0x62,
  589. 0x72, 0xE2, 0xF2, 0x53, 0x63, 0xE3, 0xF3, 0x44, 0x54, 0xD4, 0xE4, 0xF4,
  590. 0x35, 0x45, 0x55, 0xD5, 0xE5, 0xF5, 0x06, 0x26, 0x36, 0xD6, 0x07, 0x17,
  591. 0x27, 0x37, 0xD7, 0x18, 0x28, 0x1C, 0x0D, 0x3D, 0x4D, 0x5D, 0x6D, 0x8D,
  592. 0x0E, 0x3E, 0x4E, 0x5E, 0x0F, 0x1F, 0x2F, 0x3F, 0x5F, 0x70, 0x80, 0x90,
  593. 0xC0, 0x91, 0xA1, 0xB1, 0xC1, 0x82, 0x92, 0xA2, 0xC2, 0x73, 0x83, 0x93,
  594. 0xA3, 0xC3, 0x64, 0x74, 0x84, 0x94, 0xA4, 0xC4, 0x65, 0x75, 0x85, 0x46,
  595. 0x56, 0x66, 0xC6, 0xE6, 0xF6, 0x47, 0x57, 0xE7, 0xF7, 0x08, 0x38, 0x48,
  596. 0x58, 0x68, 0xD8, 0xE8, 0xF8, 0x09, 0x19, 0x29, 0x39, 0x59, 0xD9, 0xE9,
  597. 0xF9, 0x1A, 0x2A, 0x3A, 0xDA, 0xEA, 0xFA, 0x1B, 0x2B, 0xDB, 0xEB, 0xFB,
  598. 0x0C, 0x2C, 0x3C, 0xDC, 0xEC, 0x7D, 0x9D, 0xAD, 0xBD, 0xCD, 0x6E, 0x7E,
  599. 0x8E, 0x9E, 0xAE, 0xBE, 0xCE, 0x4F, 0x6F, 0x7F, 0x8F, 0xAF, 0xA0, 0xB2,
  600. 0xB3, 0xB4, 0x95, 0xA5, 0xB5, 0xC5, 0x76, 0x86, 0x96, 0xA6, 0xB6, 0x67,
  601. 0x77, 0x87, 0x97, 0xC7, 0x78, 0x88, 0x98, 0xC8, 0x49, 0x69, 0x79, 0x89,
  602. 0x99, 0xC9, 0x0A, 0x4A, 0x5A, 0x6A, 0x7A, 0xCA, 0x0B, 0x3B, 0x4B, 0x5B,
  603. 0x6B, 0xCB, 0x4C, 0x5C, 0x6C, 0x7C, 0x8C, 0x9C, 0xAC, 0xBC, 0xCC, 0xFC,
  604. 0xDD, 0xED, 0xFD, 0xDE, 0xEE, 0xFE, 0x9F, 0xBF, 0xCF, 0xDF, 0xEF, 0xFF,
  605. 0xB0, 0xA7, 0xB7, 0xA8, 0xB8, 0xA9, 0xB9, 0x8A, 0x9A, 0xAA, 0xBA, 0x7B,
  606. 0x8B, 0x9B, 0xAB, 0xBB,
  607. /* Table set A, code table 1, wordlen 7 - 63 entries */
  608. 0x00, 0x01, 0x3F, 0x02, 0x3E, 0x03, 0x04, 0x3B, 0x3C, 0x3D, 0x05, 0x06,
  609. 0x07, 0x08, 0x38, 0x39, 0x3A, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x1A,
  610. 0x1B, 0x24, 0x25, 0x26, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x0F, 0x10,
  611. 0x11, 0x12, 0x13, 0x14, 0x15, 0x19, 0x1C, 0x1D, 0x1E, 0x1F, 0x21, 0x22,
  612. 0x23, 0x27, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x16, 0x17, 0x18,
  613. 0x28, 0x29, 0x2A,
  614. /* Table set A, code table 2, wordlen 1 - 81 entries */
  615. 0x00, 0x40, 0xC0, 0x10, 0x30, 0x04, 0x0C, 0x01, 0x03, 0xD0, 0x70, 0x34,
  616. 0x1C, 0x0D, 0x13, 0x07, 0x50, 0xF0, 0x44, 0xC4, 0x14, 0x74, 0x4C, 0xCC,
  617. 0xDC, 0x3C, 0x41, 0xC1, 0x11, 0x31, 0x05, 0x1D, 0x43, 0xC3, 0x33, 0x37,
  618. 0x0F, 0x54, 0xF4, 0xFC, 0xD1, 0x71, 0x15, 0x4D, 0xCD, 0xDD, 0xD3, 0x73,
  619. 0x47, 0xC7, 0x77, 0x3F, 0xD4, 0x5C, 0x7C, 0x51, 0xF1, 0x45, 0xC5, 0x55,
  620. 0x35, 0x3D, 0x53, 0xF3, 0x17, 0x4F, 0xCF, 0x1F, 0xFF, 0x75, 0xF5, 0x5D,
  621. 0x7D, 0xD7, 0xF7, 0x5F, 0xDF, 0xD5, 0xFD, 0x57, 0x7F,
  622. /* Table set A, code table 2, wordlen 2 - 25 entries */
  623. 0x00, 0x08, 0x38, 0x01, 0x07, 0x09, 0x39, 0x0F, 0x3F, 0x10, 0x02, 0x06,
  624. 0x30, 0x11, 0x31, 0x0A, 0x3A, 0x0E, 0x17, 0x37, 0x32, 0x16, 0x3E, 0x12,
  625. 0x36,
  626. /* Table set A, code table 2, wordlen 3 - 49 entries */
  627. 0x00, 0x08, 0x38, 0x01, 0x07, 0x09, 0x39, 0x0F, 0x3F, 0x10, 0x30, 0x02,
  628. 0x3A, 0x06, 0x0E, 0x18, 0x28, 0x11, 0x31, 0x0A, 0x03, 0x05, 0x3E, 0x17,
  629. 0x37, 0x19, 0x29, 0x12, 0x2A, 0x32, 0x0B, 0x33, 0x3B, 0x0D, 0x15, 0x3D,
  630. 0x16, 0x1E, 0x36, 0x1F, 0x2F, 0x1A, 0x13, 0x1B, 0x2B, 0x1D, 0x2D, 0x35,
  631. 0x2E,
  632. /* Table set A, code table 2, wordlen 4 - 6 entries */
  633. 0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
  634. /* Table set A, code table 2, wordlen 5 - 8 entries */
  635. 0x01, 0x00, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
  636. /* Table set A, code table 2, wordlen 6 - 256 entries */
  637. 0x00, 0x01, 0x11, 0x10, 0x21, 0x12, 0x22, 0x20, 0x30, 0x31, 0x41, 0x02,
  638. 0x32, 0x03, 0x13, 0x23, 0x33, 0x14, 0x24, 0x40, 0x51, 0x61, 0x42, 0x52,
  639. 0x43, 0x53, 0x04, 0x34, 0x44, 0x15, 0x25, 0x35, 0x16, 0x26, 0x50, 0x60,
  640. 0x71, 0x81, 0xD1, 0x62, 0x72, 0x82, 0xD2, 0x63, 0x73, 0xD3, 0x54, 0x64,
  641. 0x05, 0x45, 0x55, 0x65, 0x06, 0x36, 0x46, 0x56, 0x17, 0x27, 0x37, 0x47,
  642. 0x18, 0x28, 0x38, 0x19, 0x1D, 0x2D, 0x3D, 0x1E, 0x70, 0x80, 0x90, 0xD0,
  643. 0xE0, 0x91, 0xA1, 0xB1, 0xC1, 0xE1, 0xF1, 0x92, 0xA2, 0xC2, 0xE2, 0xF2,
  644. 0x83, 0x93, 0xA3, 0xC3, 0xE3, 0xF3, 0x74, 0x84, 0x94, 0xA4, 0xC4, 0xD4,
  645. 0xE4, 0xF4, 0x75, 0x85, 0x95, 0xD5, 0xE5, 0x66, 0x76, 0x86, 0xD6, 0xE6,
  646. 0x07, 0x57, 0x67, 0x77, 0xD7, 0x08, 0x48, 0x58, 0x68, 0xD8, 0x09, 0x29,
  647. 0x39, 0x49, 0x59, 0x69, 0x1A, 0x2A, 0x3A, 0x4A, 0x1B, 0x2B, 0x1C, 0x2C,
  648. 0x3C, 0x4C, 0x0D, 0x4D, 0x5D, 0x6D, 0x7D, 0x8D, 0x0E, 0x2E, 0x3E, 0x4E,
  649. 0x5E, 0x6E, 0x1F, 0x2F, 0x3F, 0x4F, 0x5F, 0xA0, 0xB0, 0xC0, 0xF0, 0xB2,
  650. 0xB3, 0xB4, 0xA5, 0xB5, 0xC5, 0xF5, 0x96, 0xA6, 0xB6, 0xC6, 0xF6, 0x87,
  651. 0x97, 0xA7, 0xB7, 0xC7, 0xE7, 0xF7, 0x78, 0x88, 0x98, 0xA8, 0xC8, 0xE8,
  652. 0xF8, 0x79, 0x89, 0x99, 0xC9, 0xD9, 0xE9, 0xF9, 0x0A, 0x5A, 0x6A, 0x7A,
  653. 0x8A, 0xDA, 0xEA, 0xFA, 0x0B, 0x3B, 0x4B, 0x5B, 0x6B, 0x7B, 0x8B, 0xDB,
  654. 0x0C, 0x5C, 0x6C, 0x7C, 0x8C, 0x9C, 0xDC, 0x9D, 0xAD, 0xBD, 0xCD, 0x7E,
  655. 0x8E, 0x9E, 0xAE, 0xBE, 0x0F, 0x6F, 0x7F, 0x8F, 0x9F, 0xAF, 0xB8, 0xA9,
  656. 0xB9, 0x9A, 0xAA, 0xBA, 0xCA, 0x9B, 0xAB, 0xBB, 0xCB, 0xEB, 0xFB, 0xAC,
  657. 0xBC, 0xCC, 0xEC, 0xFC, 0xDD, 0xED, 0xFD, 0xCE, 0xDE, 0xEE, 0xFE, 0xBF,
  658. 0xCF, 0xDF, 0xEF, 0xFF,
  659. /* Table set A, code table 2, wordlen 7 - 63 entries */
  660. 0x00, 0x02, 0x03, 0x01, 0x05, 0x06, 0x07, 0x09, 0x36, 0x37, 0x38, 0x3A,
  661. 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, 0x04, 0x08, 0x0A, 0x0B, 0x0C, 0x0E, 0x31,
  662. 0x34, 0x35, 0x39, 0x0D, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x16, 0x17, 0x19,
  663. 0x1A, 0x1E, 0x27, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x32, 0x33, 0x14,
  664. 0x15, 0x18, 0x1B, 0x1C, 0x1D, 0x1F, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26,
  665. 0x28, 0x29, 0x2A,
  666. /* Table set A, code table 3, wordlen 1 - 9 entries */
  667. 0x00, 0x04, 0x0C, 0x01, 0x03, 0x05, 0x0D, 0x07, 0x0F,
  668. /* Table set A, code table 3, wordlen 2 - 81 entries */
  669. 0x00, 0x40, 0x01, 0x10, 0x04, 0x80, 0x50, 0x20, 0x14, 0x05, 0x02, 0x90,
  670. 0x60, 0x44, 0x54, 0x24, 0x08, 0x18, 0x41, 0x11, 0x15, 0x09, 0x06, 0xA0,
  671. 0x84, 0x94, 0x64, 0xA4, 0x48, 0x58, 0x28, 0x51, 0x21, 0x45, 0x55, 0x25,
  672. 0x19, 0x12, 0x16, 0x0A, 0x1A, 0x68, 0xA8, 0x81, 0x91, 0x61, 0xA1, 0x85,
  673. 0x95, 0x65, 0xA5, 0x49, 0x59, 0x29, 0x69, 0x42, 0x52, 0x46, 0x56, 0x2A,
  674. 0x88, 0x98, 0x89, 0x99, 0xA9, 0x82, 0x92, 0x22, 0x62, 0x86, 0x26, 0x66,
  675. 0x4A, 0x5A, 0x6A, 0xA2, 0x96, 0xA6, 0x8A, 0x9A, 0xAA,
  676. /* Table set A, code table 3, wordlen 3 - 256 entries */
  677. 0x00, 0x10, 0x40, 0x50, 0x04, 0x44, 0x14, 0x54, 0x01, 0x41, 0x11, 0x51,
  678. 0x05, 0x45, 0x15, 0x55, 0x90, 0x20, 0x94, 0x64, 0x18, 0x21, 0x95, 0x19,
  679. 0x69, 0x02, 0x52, 0x06, 0x46, 0x16, 0x80, 0x60, 0x84, 0xD4, 0x24, 0x08,
  680. 0x48, 0x58, 0x68, 0x81, 0x91, 0x61, 0x85, 0x25, 0x65, 0xA5, 0x09, 0x49,
  681. 0x59, 0x29, 0x42, 0x12, 0x56, 0x96, 0xA6, 0x0A, 0x17, 0x1B, 0xD0, 0xC4,
  682. 0x74, 0xF4, 0x88, 0xC8, 0x28, 0xA1, 0x71, 0xC5, 0xD5, 0x75, 0x99, 0xB9,
  683. 0x4D, 0x1D, 0x2D, 0x6D, 0x22, 0x62, 0x66, 0x4A, 0x1A, 0x9A, 0x6A, 0x8E,
  684. 0x5E, 0x43, 0x23, 0x07, 0x47, 0x57, 0x6B, 0xC0, 0xA0, 0xE0, 0x70, 0xB0,
  685. 0xA4, 0xE4, 0x34, 0xB4, 0x98, 0xD8, 0xA8, 0x38, 0x78, 0x0C, 0x4C, 0x1C,
  686. 0x5C, 0x9C, 0x6C, 0x7C, 0xC1, 0xD1, 0xE1, 0x31, 0xE5, 0x35, 0xB5, 0xF5,
  687. 0x89, 0xA9, 0x79, 0xF9, 0x0D, 0xCD, 0x9D, 0xDD, 0xAD, 0x3D, 0x7D, 0x82,
  688. 0xC2, 0x92, 0xD2, 0xE2, 0x72, 0xF2, 0x86, 0xD6, 0xE6, 0x76, 0xB6, 0x8A,
  689. 0x5A, 0xDA, 0xEA, 0xFA, 0x4E, 0x1E, 0x9E, 0xEE, 0x03, 0x13, 0x53, 0x97,
  690. 0xB7, 0x0B, 0x4B, 0x8B, 0x5B, 0x9B, 0xEB, 0x7B, 0x0F, 0x4F, 0x1F, 0x5F,
  691. 0x9F, 0x2F, 0x3F, 0xBF, 0xE8, 0xB8, 0xF8, 0x8C, 0x2C, 0x3C, 0xFC, 0xB1,
  692. 0xC9, 0xD9, 0xE9, 0x39, 0x5D, 0xED, 0xBD, 0xA2, 0x32, 0x26, 0x36, 0x2A,
  693. 0xAA, 0xBA, 0x0E, 0x2E, 0x6E, 0x83, 0xC3, 0x93, 0x63, 0xB3, 0xA7, 0x37,
  694. 0x30, 0xF0, 0xCC, 0xDC, 0xAC, 0xEC, 0xBC, 0xF1, 0x8D, 0xFD, 0xB2, 0xC6,
  695. 0xF6, 0xCA, 0x3A, 0x7A, 0xCE, 0xDE, 0xAE, 0x3E, 0x7E, 0xBE, 0xFE, 0xD3,
  696. 0xA3, 0xE3, 0x33, 0x73, 0xF3, 0x87, 0xC7, 0xD7, 0x27, 0x67, 0xE7, 0x77,
  697. 0xF7, 0xCB, 0xDB, 0x2B, 0xAB, 0x3B, 0xBB, 0xFB, 0x8F, 0xCF, 0xDF, 0x6F,
  698. 0xAF, 0xEF, 0x7F, 0xFF,
  699. /* Table set A, code table 3, wordlen 4 - 6 entries */
  700. 0x01, 0x00, 0x02, 0x03, 0x04, 0x05,
  701. /* Table set A, code table 3, wordlen 5 - 225 entries */
  702. 0x00, 0xF0, 0x0F, 0x10, 0x01, 0xFF, 0x20, 0xE0, 0x11, 0xF1, 0x0E, 0x1F,
  703. 0x30, 0x40, 0xD0, 0x21, 0xE1, 0x02, 0x12, 0x22, 0xE2, 0xF2, 0x03, 0x13,
  704. 0x1E, 0x2E, 0x3E, 0xEE, 0xFE, 0x2F, 0xEF, 0xD2, 0x43, 0xF3, 0x04, 0x0D,
  705. 0x2D, 0x3D, 0x3F, 0xDF, 0x50, 0x60, 0x70, 0x90, 0xB0, 0x31, 0x41, 0x91,
  706. 0xA1, 0xC1, 0xD1, 0x42, 0xA2, 0xC2, 0x23, 0x33, 0xE3, 0x24, 0x34, 0xB4,
  707. 0xD4, 0xF4, 0x05, 0x15, 0x45, 0xE5, 0x16, 0x36, 0x56, 0xA6, 0xC6, 0xD6,
  708. 0xF6, 0x57, 0xC7, 0xF7, 0x09, 0x29, 0x49, 0x59, 0x69, 0xF9, 0x0A, 0x2A,
  709. 0x3A, 0x4A, 0xDA, 0xEA, 0xFA, 0x0B, 0x2B, 0xAB, 0xEB, 0xFB, 0x0C, 0x1C,
  710. 0x2C, 0x3C, 0x4C, 0x5C, 0xCC, 0xDC, 0xFC, 0x1D, 0x4D, 0x6D, 0xBD, 0xCD,
  711. 0xED, 0xFD, 0x4E, 0x6E, 0xCE, 0xDE, 0x7F, 0xA0, 0xC0, 0x51, 0x61, 0x71,
  712. 0xB1, 0x32, 0x52, 0x62, 0x72, 0x92, 0xB2, 0x53, 0x63, 0x73, 0x93, 0xA3,
  713. 0xB3, 0xC3, 0xD3, 0x14, 0x44, 0x54, 0x64, 0x74, 0x94, 0xA4, 0xC4, 0xE4,
  714. 0x25, 0x35, 0x55, 0x65, 0x75, 0x95, 0xA5, 0xB5, 0xC5, 0xD5, 0xF5, 0x06,
  715. 0x26, 0x46, 0x66, 0x76, 0x96, 0xB6, 0xE6, 0x07, 0x17, 0x27, 0x37, 0x47,
  716. 0x67, 0x77, 0x97, 0xA7, 0xB7, 0xD7, 0xE7, 0x19, 0x39, 0x79, 0x99, 0xA9,
  717. 0xB9, 0xC9, 0xD9, 0xE9, 0x1A, 0x5A, 0x6A, 0x7A, 0x9A, 0xAA, 0xBA, 0xCA,
  718. 0x1B, 0x3B, 0x4B, 0x5B, 0x6B, 0x7B, 0x9B, 0xBB, 0xCB, 0xDB, 0x6C, 0x7C,
  719. 0x9C, 0xAC, 0xBC, 0xEC, 0x5D, 0x7D, 0x9D, 0xAD, 0xDD, 0x5E, 0x7E, 0x9E,
  720. 0xAE, 0xBE, 0x4F, 0x5F, 0x6F, 0x9F, 0xAF, 0xBF, 0xCF,
  721. /* Table set A, code table 3, wordlen 6 - 256 entries */
  722. 0x00, 0x10, 0x01, 0x11, 0x20, 0x21, 0x02, 0x12, 0x22, 0x31, 0x41, 0x32,
  723. 0x13, 0x23, 0x30, 0x40, 0x51, 0x42, 0x03, 0x33, 0x43, 0x04, 0x14, 0x24,
  724. 0x34, 0x15, 0x25, 0x50, 0x61, 0x71, 0xD1, 0x52, 0x62, 0x72, 0xD2, 0x53,
  725. 0x63, 0xD3, 0x44, 0x54, 0x64, 0x05, 0x35, 0x45, 0x55, 0x16, 0x26, 0x36,
  726. 0x46, 0x17, 0x27, 0x1D, 0x2D, 0x3D, 0x60, 0x70, 0xD0, 0x81, 0x91, 0xA1,
  727. 0xC1, 0xE1, 0xF1, 0x82, 0x92, 0xC2, 0xE2, 0xF2, 0x73, 0x83, 0xE3, 0xF3,
  728. 0x74, 0x84, 0xC4, 0xD4, 0xE4, 0xF4, 0x65, 0x75, 0x85, 0xD5, 0xE5, 0x06,
  729. 0x56, 0x66, 0xD6, 0xE6, 0x07, 0x37, 0x47, 0x57, 0x67, 0xD7, 0xE7, 0x18,
  730. 0x28, 0x38, 0x48, 0x58, 0xD8, 0x19, 0x29, 0x2A, 0x1C, 0x2C, 0x0D, 0x4D,
  731. 0x5D, 0x6D, 0x7D, 0x8D, 0x9D, 0x1E, 0x2E, 0x3E, 0x4E, 0x5E, 0x6E, 0x7E,
  732. 0x1F, 0x2F, 0x3F, 0x80, 0x90, 0xA0, 0xC0, 0xE0, 0xF0, 0xB1, 0xA2, 0xB2,
  733. 0x93, 0xA3, 0xB3, 0xC3, 0x94, 0xA4, 0xB4, 0x95, 0xA5, 0xB5, 0xC5, 0xF5,
  734. 0x76, 0x86, 0x96, 0xA6, 0xC6, 0xF6, 0x77, 0x87, 0x97, 0xA7, 0xC7, 0xF7,
  735. 0x08, 0x68, 0x78, 0x88, 0x98, 0xC8, 0xE8, 0xF8, 0x09, 0x39, 0x49, 0x59,
  736. 0x69, 0x79, 0x89, 0xD9, 0xE9, 0xF9, 0x0A, 0x1A, 0x3A, 0x4A, 0x5A, 0x6A,
  737. 0xDA, 0xEA, 0xFA, 0x1B, 0x2B, 0x3B, 0x4B, 0x5B, 0xDB, 0xEB, 0xFB, 0x0C,
  738. 0x3C, 0x4C, 0x5C, 0x6C, 0x7C, 0x8C, 0x9C, 0xDC, 0xEC, 0xAD, 0xBD, 0xCD,
  739. 0xDD, 0xED, 0x0E, 0x8E, 0x9E, 0xAE, 0xBE, 0x0F, 0x4F, 0x5F, 0x6F, 0x7F,
  740. 0x8F, 0x9F, 0xAF, 0xB0, 0xB6, 0xB7, 0xA8, 0xB8, 0x99, 0xA9, 0xB9, 0xC9,
  741. 0x7A, 0x8A, 0x9A, 0xAA, 0xBA, 0xCA, 0x0B, 0x6B, 0x7B, 0x8B, 0x9B, 0xCB,
  742. 0xAC, 0xBC, 0xCC, 0xFC, 0xFD, 0xCE, 0xDE, 0xEE, 0xFE, 0xBF, 0xCF, 0xDF,
  743. 0xEF, 0xFF, 0xAB, 0xBB,
  744. /* Table set A, code table 3, wordlen 7 - 63 entries */
  745. 0x00, 0x01, 0x02, 0x03, 0x3D, 0x3E, 0x3F, 0x04, 0x05, 0x06, 0x3A, 0x3B,
  746. 0x3C, 0x07, 0x08, 0x09, 0x0A, 0x36, 0x37, 0x38, 0x39, 0x0B, 0x0C, 0x0D,
  747. 0x0E, 0x0F, 0x10, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x23, 0x24, 0x25,
  748. 0x26, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x11, 0x12, 0x13, 0x14, 0x15,
  749. 0x16, 0x17, 0x18, 0x1F, 0x21, 0x22, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C,
  750. 0x2D, 0x2E, 0x2F,
  751. /* Table set A, code table 4, wordlen 1 - 81 entries */
  752. 0x00, 0x40, 0xC0, 0x10, 0x30, 0x04, 0x0C, 0x01, 0x03, 0x50, 0xD0, 0x70,
  753. 0xF0, 0xC4, 0x34, 0x4C, 0xCC, 0x1C, 0x41, 0xC1, 0x31, 0x05, 0x0D, 0x43,
  754. 0xC3, 0x13, 0x07, 0x0F, 0x44, 0x14, 0x74, 0xDC, 0x3C, 0x11, 0x1D, 0x33,
  755. 0x37, 0x54, 0xD4, 0xF4, 0x5C, 0x7C, 0xFC, 0xD1, 0x71, 0xF1, 0xC5, 0x15,
  756. 0x35, 0x4D, 0xCD, 0xDD, 0x3D, 0xD3, 0x73, 0x47, 0xC7, 0x17, 0x77, 0x1F,
  757. 0x3F, 0x51, 0x45, 0x55, 0xD5, 0x75, 0xF5, 0x5D, 0x7D, 0xFD, 0x53, 0xF3,
  758. 0x57, 0xD7, 0xF7, 0x4F, 0xCF, 0x5F, 0xDF, 0x7F, 0xFF,
  759. /* Table set A, code table 4, wordlen 2 - 81 entries */
  760. 0x00, 0x40, 0x01, 0x10, 0x50, 0x04, 0x44, 0x14, 0x54, 0x41, 0x11, 0x51,
  761. 0x05, 0x45, 0x15, 0x55, 0x59, 0x80, 0x90, 0x20, 0x60, 0x84, 0x94, 0x24,
  762. 0x64, 0x08, 0x48, 0x18, 0x58, 0x81, 0x91, 0x21, 0x61, 0x85, 0x95, 0x25,
  763. 0x65, 0x09, 0x49, 0x19, 0x02, 0x42, 0x12, 0x52, 0x06, 0x46, 0x16, 0x56,
  764. 0xA0, 0xA4, 0x68, 0xA1, 0xA5, 0x99, 0x29, 0x69, 0x96, 0x66, 0x4A, 0x1A,
  765. 0x5A, 0x88, 0x98, 0x28, 0x89, 0xA9, 0x82, 0x92, 0x22, 0x62, 0x86, 0x26,
  766. 0xA6, 0x0A, 0x9A, 0x2A, 0x6A, 0xA8, 0xA2, 0x8A, 0xAA,
  767. /* Table set A, code table 4, wordlen 3 - 7 entries */
  768. 0x00, 0x07, 0x01, 0x02, 0x06, 0x03, 0x05,
  769. /* Table set A, code table 4, wordlen 4 - 121 entries */
  770. 0x00, 0x10, 0xF0, 0x01, 0x0F, 0x11, 0xF1, 0x1F, 0xFF, 0x20, 0xE0, 0x21,
  771. 0xE1, 0x02, 0x12, 0xF2, 0x0E, 0x1E, 0xFE, 0x2F, 0xEF, 0x30, 0x50, 0xD0,
  772. 0xD1, 0x22, 0xE2, 0x03, 0x13, 0xF3, 0x0D, 0x1D, 0x2D, 0xFD, 0x2E, 0xEE,
  773. 0x3F, 0xDF, 0x40, 0xB0, 0xC0, 0x31, 0x41, 0x51, 0xB1, 0xC1, 0x32, 0xB2,
  774. 0xC2, 0xD2, 0x23, 0xB3, 0xD3, 0xE3, 0x04, 0x14, 0xE4, 0xF4, 0x05, 0x15,
  775. 0xD5, 0xE5, 0xF5, 0x0B, 0x1B, 0x2B, 0x3B, 0xEB, 0xFB, 0x0C, 0x1C, 0x2C,
  776. 0xFC, 0x3D, 0x5D, 0xED, 0x3E, 0x4E, 0x5E, 0xBE, 0xDE, 0x4F, 0x5F, 0xBF,
  777. 0xCF, 0x42, 0x52, 0x33, 0x53, 0xC3, 0x24, 0xB4, 0xD4, 0x25, 0x35, 0xC5,
  778. 0x4B, 0xCB, 0xDB, 0x3C, 0x4C, 0x5C, 0xDC, 0xEC, 0x4D, 0xBD, 0xCD, 0xDD,
  779. 0xCE, 0x43, 0x34, 0x44, 0x54, 0xC4, 0x45, 0x55, 0xB5, 0x5B, 0xBB, 0xBC,
  780. 0xCC,
  781. /* Table set A, code table 4, wordlen 5 - 8 entries */
  782. 0x01, 0x02, 0x00, 0x03, 0x04, 0x05, 0x06, 0x07,
  783. /* Table set A, code table 4, wordlen 6 - 256 entries */
  784. 0x02, 0x00, 0x30, 0x21, 0x31, 0x41, 0x61, 0x12, 0x22, 0x42, 0x62, 0x43,
  785. 0x53, 0x24, 0x45, 0x26, 0x27, 0x10, 0x40, 0xB0, 0x01, 0x11, 0x81, 0x32,
  786. 0x52, 0x72, 0x92, 0x03, 0x13, 0x33, 0x63, 0x14, 0x34, 0x54, 0x64, 0x74,
  787. 0x05, 0x15, 0x25, 0x35, 0x55, 0x65, 0x06, 0x46, 0x56, 0x57, 0x67, 0x88,
  788. 0x20, 0x51, 0x91, 0xD1, 0xF2, 0x23, 0x83, 0x93, 0x04, 0x44, 0x84, 0x94,
  789. 0x75, 0x85, 0xC5, 0x36, 0x66, 0x96, 0xB6, 0x07, 0x37, 0x97, 0x08, 0x28,
  790. 0x38, 0x48, 0x68, 0x09, 0x69, 0x79, 0x0A, 0x2A, 0x1B, 0x9B, 0x2C, 0x4D,
  791. 0x50, 0x60, 0x70, 0x80, 0x90, 0xA0, 0xC0, 0xD0, 0xE0, 0xF0, 0x71, 0xA1,
  792. 0xB1, 0xC1, 0xE1, 0xF1, 0x82, 0xA2, 0xB2, 0xC2, 0xD2, 0xE2, 0x73, 0xA3,
  793. 0xB3, 0xC3, 0xD3, 0xE3, 0xF3, 0xA4, 0xB4, 0xC4, 0xD4, 0xE4, 0xF4, 0x95,
  794. 0xA5, 0xB5, 0xD5, 0xE5, 0xF5, 0x16, 0x76, 0x86, 0xA6, 0xC6, 0xD6, 0xE6,
  795. 0xF6, 0x17, 0x47, 0x77, 0x87, 0xA7, 0xB7, 0xC7, 0xD7, 0xE7, 0xF7, 0x18,
  796. 0x58, 0x78, 0x98, 0xA8, 0xB8, 0xC8, 0xD8, 0xE8, 0xF8, 0x19, 0x29, 0x39,
  797. 0x49, 0x59, 0x89, 0x99, 0xA9, 0xB9, 0xC9, 0xD9, 0xE9, 0xF9, 0x1A, 0x3A,
  798. 0x4A, 0x5A, 0x6A, 0x7A, 0x8A, 0x9A, 0xAA, 0xBA, 0xCA, 0xDA, 0xEA, 0xFA,
  799. 0x0B, 0x2B, 0x3B, 0x4B, 0x5B, 0x6B, 0x7B, 0x8B, 0xAB, 0xBB, 0xCB, 0xDB,
  800. 0xEB, 0xFB, 0x0C, 0x1C, 0x3C, 0x4C, 0x5C, 0x6C, 0x7C, 0x8C, 0x9C, 0xAC,
  801. 0xBC, 0xCC, 0xDC, 0xEC, 0xFC, 0x0D, 0x1D, 0x2D, 0x3D, 0x5D, 0x6D, 0x7D,
  802. 0x8D, 0x9D, 0xAD, 0xBD, 0xCD, 0xDD, 0xED, 0xFD, 0x0E, 0x1E, 0x2E, 0x3E,
  803. 0x4E, 0x5E, 0x6E, 0x7E, 0x8E, 0x9E, 0xAE, 0xBE, 0xCE, 0xDE, 0xEE, 0xFE,
  804. 0x0F, 0x1F, 0x2F, 0x3F, 0x4F, 0x5F, 0x6F, 0x7F, 0x8F, 0x9F, 0xAF, 0xBF,
  805. 0xCF, 0xDF, 0xEF, 0xFF,
  806. /* Table set A, code table 4, wordlen 7 - 63 entries */
  807. 0x00, 0x01, 0x02, 0x3E, 0x3F, 0x03, 0x04, 0x05, 0x06, 0x08, 0x36, 0x38,
  808. 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x07, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E,
  809. 0x35, 0x37, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x24, 0x25, 0x27,
  810. 0x2A, 0x34, 0x16, 0x19, 0x1C, 0x23, 0x26, 0x28, 0x29, 0x2B, 0x2D, 0x2E,
  811. 0x2F, 0x30, 0x31, 0x32, 0x33, 0x17, 0x18, 0x1A, 0x1B, 0x1D, 0x1E, 0x1F,
  812. 0x21, 0x22, 0x2C,
  813. /* Table set A, code table 5, wordlen 1 - 81 entries */
  814. 0x00, 0x40, 0xC0, 0x30, 0x04, 0x01, 0x03, 0x10, 0x0C, 0xD0, 0x70, 0x34,
  815. 0x1C, 0x0D, 0x07, 0x50, 0xF0, 0x44, 0xC4, 0x14, 0x4C, 0xCC, 0x3C, 0x41,
  816. 0xC1, 0x11, 0x31, 0x05, 0x43, 0xC3, 0x13, 0x33, 0x0F, 0x74, 0xDC, 0x1D,
  817. 0x37, 0x54, 0xD4, 0xF4, 0x5C, 0x7C, 0xFC, 0xD1, 0x71, 0xF1, 0xC5, 0x15,
  818. 0x35, 0x4D, 0xCD, 0xDD, 0x3D, 0x53, 0xD3, 0x73, 0x47, 0xC7, 0x17, 0x77,
  819. 0x4F, 0x1F, 0x3F, 0x51, 0x45, 0x55, 0xF3, 0xCF, 0xFF, 0xD5, 0x75, 0xF5,
  820. 0x5D, 0x7D, 0xFD, 0x57, 0xD7, 0xF7, 0x5F, 0xDF, 0x7F,
  821. /* Table set A, code table 5, wordlen 2 - 25 entries */
  822. 0x00, 0x08, 0x38, 0x01, 0x07, 0x09, 0x39, 0x0F, 0x3F, 0x10, 0x02, 0x06,
  823. 0x30, 0x11, 0x31, 0x0A, 0x3A, 0x0E, 0x17, 0x37, 0x32, 0x16, 0x3E, 0x12,
  824. 0x36,
  825. /* Table set A, code table 5, wordlen 3 - 7 entries */
  826. 0x00, 0x01, 0x02, 0x06, 0x07, 0x03, 0x05,
  827. /* Table set A, code table 5, wordlen 4 - 121 entries */
  828. 0x00, 0x01, 0x0F, 0x1F, 0x10, 0xE0, 0xF0, 0x11, 0xF1, 0x2F, 0xFF, 0x20,
  829. 0x21, 0xE1, 0x02, 0x12, 0xF2, 0x03, 0xF3, 0x0E, 0x2E, 0xFE, 0x3F, 0x30,
  830. 0x40, 0xD0, 0xC1, 0xD1, 0x22, 0xC2, 0x33, 0xE3, 0x0C, 0xCC, 0x0D, 0x1D,
  831. 0x2D, 0xFD, 0x1E, 0x3E, 0x5E, 0xEF, 0xC0, 0x52, 0xB2, 0xD2, 0x43, 0xC3,
  832. 0xD3, 0x24, 0x45, 0xF5, 0x4B, 0x5B, 0xFB, 0x1C, 0x3D, 0xBD, 0xDD, 0xEE,
  833. 0xBF, 0xCF, 0xDF, 0x50, 0xB0, 0x31, 0x41, 0x51, 0xB1, 0x32, 0x42, 0xE2,
  834. 0x13, 0x23, 0x53, 0xB3, 0x04, 0x14, 0x34, 0x44, 0x54, 0xB4, 0xC4, 0xD4,
  835. 0xE4, 0xF4, 0x05, 0x15, 0x25, 0x35, 0x55, 0xB5, 0xC5, 0xD5, 0xE5, 0x0B,
  836. 0x1B, 0x2B, 0x3B, 0xBB, 0xCB, 0xDB, 0xEB, 0x2C, 0x3C, 0x4C, 0x5C, 0xBC,
  837. 0xDC, 0xEC, 0xFC, 0x4D, 0x5D, 0xCD, 0xED, 0x4E, 0xBE, 0xCE, 0xDE, 0x4F,
  838. 0x5F,
  839. /* Table set A, code table 5, wordlen 5 - 8 entries */
  840. 0x00, 0x01, 0x02, 0x03, 0x06, 0x07, 0x04, 0x05,
  841. /* Table set A, code table 5, wordlen 6 - 31 entries */
  842. 0x04, 0x00, 0x01, 0x02, 0x03, 0x1C, 0x1D, 0x1E, 0x1F, 0x05, 0x06, 0x07,
  843. 0x18, 0x19, 0x1B, 0x08, 0x09, 0x0E, 0x13, 0x15, 0x16, 0x17, 0x1A, 0x0A,
  844. 0x0B, 0x0C, 0x0D, 0x0F, 0x11, 0x12, 0x14,
  845. /* Table set A, code table 5, wordlen 7 - 63 entries */
  846. 0x00, 0x01, 0x02, 0x3D, 0x3E, 0x3F, 0x03, 0x04, 0x05, 0x06, 0x3A, 0x3B,
  847. 0x3C, 0x07, 0x08, 0x09, 0x0A, 0x36, 0x37, 0x38, 0x39, 0x0B, 0x0C, 0x0D,
  848. 0x0E, 0x0F, 0x1A, 0x1B, 0x1C, 0x24, 0x25, 0x26, 0x31, 0x32, 0x33, 0x34,
  849. 0x35, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x17, 0x18, 0x19, 0x1D, 0x1E,
  850. 0x1F, 0x21, 0x22, 0x23, 0x27, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x16,
  851. 0x28, 0x29, 0x2A,
  852. /* Table set A, code table 6, wordlen 1 - 81 entries */
  853. 0x00, 0x40, 0xC0, 0x10, 0x30, 0x04, 0x0C, 0x01, 0x03, 0x70, 0x50, 0xD0,
  854. 0xF0, 0x44, 0xC4, 0x14, 0x34, 0x4C, 0x1C, 0x3C, 0x31, 0x05, 0x0D, 0x13,
  855. 0x07, 0x0F, 0x74, 0xCC, 0xDC, 0xFC, 0x41, 0xC1, 0x11, 0x43, 0xC3, 0x33,
  856. 0x54, 0xD4, 0xF4, 0x5C, 0x7C, 0x51, 0xD1, 0x71, 0xF1, 0x45, 0xC5, 0x15,
  857. 0x35, 0x4D, 0xCD, 0x1D, 0x3D, 0x53, 0xD3, 0x73, 0xF3, 0x47, 0xC7, 0x17,
  858. 0x37, 0x4F, 0xCF, 0x1F, 0x3F, 0x55, 0xD5, 0x75, 0xF5, 0x5D, 0xDD, 0xFD,
  859. 0x57, 0xD7, 0x77, 0xF7, 0xFF, 0x7D, 0x5F, 0xDF, 0x7F,
  860. /* Table set A, code table 6, wordlen 2 - 25 entries */
  861. 0x00, 0x08, 0x38, 0x01, 0x07, 0x39, 0x0F, 0x09, 0x3F, 0x10, 0x30, 0x31,
  862. 0x02, 0x3A, 0x06, 0x0E, 0x17, 0x37, 0x11, 0x0A, 0x32, 0x16, 0x3E, 0x12,
  863. 0x36,
  864. /* Table set A, code table 6, wordlen 3 - 256 entries */
  865. 0x00, 0x40, 0x10, 0x50, 0x04, 0x44, 0x14, 0x01, 0x41, 0x05, 0x45, 0x55,
  866. 0x54, 0x11, 0x51, 0x15, 0x80, 0x90, 0x60, 0x24, 0x64, 0xA4, 0x48, 0x61,
  867. 0x95, 0x25, 0xA5, 0x02, 0x42, 0x52, 0x16, 0x56, 0x20, 0x84, 0x94, 0x18,
  868. 0x58, 0x81, 0x91, 0x85, 0x65, 0x09, 0x49, 0x19, 0x59, 0x99, 0x29, 0x69,
  869. 0x79, 0x5D, 0x12, 0x62, 0x06, 0x46, 0x86, 0x66, 0x1A, 0x5A, 0x6A, 0x47,
  870. 0x17, 0xC0, 0xA0, 0xE0, 0xC4, 0xD4, 0x74, 0x08, 0x78, 0x0C, 0x4C, 0x1C,
  871. 0x5C, 0xD1, 0x21, 0xE1, 0x71, 0xC5, 0xE5, 0x75, 0xB5, 0x89, 0xBD, 0x92,
  872. 0x22, 0x96, 0xA6, 0x36, 0x0A, 0x4A, 0x8A, 0x9A, 0x2A, 0x7A, 0xDE, 0x6E,
  873. 0x43, 0x13, 0x53, 0x23, 0x07, 0x77, 0x4B, 0x1B, 0x9B, 0x6B, 0x2F, 0xD0,
  874. 0x30, 0x70, 0xE4, 0x34, 0xF4, 0xC8, 0x98, 0x28, 0x68, 0xA8, 0xE8, 0x38,
  875. 0xB8, 0xF8, 0x9C, 0x2C, 0x6C, 0x7C, 0xA1, 0xB1, 0xD5, 0x35, 0xC9, 0xD9,
  876. 0xA9, 0xE9, 0x39, 0xB9, 0xF9, 0xCD, 0x1D, 0x2D, 0xAD, 0x7D, 0xC2, 0xD2,
  877. 0xA2, 0xB2, 0xF2, 0xC6, 0x26, 0x76, 0xB6, 0xDA, 0xAA, 0xEA, 0x3A, 0xFA,
  878. 0x0E, 0x4E, 0x2E, 0x7E, 0xBE, 0xFE, 0x03, 0x83, 0x63, 0xA3, 0xB3, 0x87,
  879. 0x57, 0x97, 0xD7, 0x27, 0x0B, 0x8B, 0x5B, 0x2B, 0xAB, 0xCF, 0x1F, 0x9F,
  880. 0x7F, 0xBF, 0xB0, 0xF0, 0xB4, 0x88, 0xD8, 0x8C, 0xCC, 0xDC, 0xAC, 0xEC,
  881. 0x3C, 0xBC, 0xFC, 0xC1, 0x31, 0xF1, 0xF5, 0x0D, 0x4D, 0x8D, 0x9D, 0xDD,
  882. 0x6D, 0xED, 0x3D, 0xFD, 0x82, 0xE2, 0x32, 0x72, 0xD6, 0xE6, 0xF6, 0xCA,
  883. 0xBA, 0x8E, 0xCE, 0x1E, 0x5E, 0x9E, 0xAE, 0xEE, 0x3E, 0xC3, 0x93, 0xD3,
  884. 0xE3, 0x33, 0x73, 0xF3, 0xC7, 0x67, 0xA7, 0xE7, 0x37, 0xB7, 0xF7, 0xCB,
  885. 0xDB, 0xEB, 0x3B, 0x7B, 0xBB, 0xFB, 0x0F, 0x4F, 0x8F, 0x5F, 0xDF, 0x6F,
  886. 0xAF, 0xEF, 0x3F, 0xFF,
  887. /* Table set A, code table 6, wordlen 4 - 121 entries */
  888. 0x00, 0x10, 0x20, 0xE0, 0xF0, 0x02, 0x0E, 0xEF, 0x30, 0x01, 0x11, 0x21,
  889. 0x31, 0xF1, 0x12, 0xF2, 0x1E, 0xEE, 0xDF, 0xFF, 0x40, 0xC0, 0xD0, 0xD1,
  890. 0xE1, 0x22, 0x32, 0x42, 0xD2, 0xE2, 0x03, 0x13, 0x23, 0xB3, 0xC3, 0xE3,
  891. 0xF3, 0xE4, 0x05, 0xF5, 0x2B, 0x0C, 0xFC, 0x1D, 0x2D, 0xBD, 0xDD, 0xFD,
  892. 0x2E, 0x4E, 0xDE, 0xFE, 0x0F, 0x1F, 0x2F, 0x3F, 0x50, 0xB0, 0x41, 0x51,
  893. 0xB1, 0xC1, 0x52, 0xB2, 0xC2, 0x33, 0x43, 0x53, 0xD3, 0x04, 0x14, 0x24,
  894. 0x34, 0x44, 0x54, 0xB4, 0xC4, 0xD4, 0xF4, 0x15, 0x25, 0x35, 0x45, 0x55,
  895. 0xB5, 0xC5, 0xD5, 0xE5, 0x0B, 0x1B, 0x3B, 0x4B, 0x5B, 0xBB, 0xCB, 0xDB,
  896. 0xEB, 0xFB, 0x1C, 0x2C, 0x3C, 0x4C, 0x5C, 0xBC, 0xCC, 0xDC, 0xEC, 0x0D,
  897. 0x3D, 0x4D, 0x5D, 0xCD, 0xED, 0x3E, 0x5E, 0xBE, 0xCE, 0x4F, 0xCF, 0x5F,
  898. 0xBF,
  899. /* Table set A, code table 6, wordlen 5 - 15 entries */
  900. 0x00, 0x01, 0x0F, 0x0E, 0x02, 0x03, 0x0D, 0x04, 0x06, 0x0A, 0x0C, 0x05,
  901. 0x07, 0x09, 0x0B,
  902. /* Table set A, code table 6, wordlen 6 - 31 entries */
  903. 0x00, 0x01, 0x1F, 0x02, 0x1E, 0x03, 0x04, 0x0F, 0x11, 0x1C, 0x1D, 0x05,
  904. 0x06, 0x07, 0x08, 0x18, 0x19, 0x1A, 0x1B, 0x09, 0x0A, 0x0B, 0x15, 0x16,
  905. 0x17, 0x0C, 0x13, 0x14, 0x0D, 0x0E, 0x12,
  906. /* Table set A, code table 6, wordlen 7 - 63 entries */
  907. 0x00, 0x01, 0x02, 0x3E, 0x3F, 0x03, 0x04, 0x3C, 0x3D, 0x05, 0x06, 0x07,
  908. 0x39, 0x3A, 0x3B, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x1A, 0x26, 0x34,
  909. 0x35, 0x36, 0x37, 0x38, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x19, 0x1B,
  910. 0x1C, 0x1D, 0x1E, 0x1F, 0x21, 0x22, 0x23, 0x24, 0x25, 0x27, 0x2D, 0x2E,
  911. 0x2F, 0x30, 0x31, 0x32, 0x33, 0x14, 0x15, 0x16, 0x17, 0x18, 0x28, 0x29,
  912. 0x2A, 0x2B, 0x2C,
  913. /* Table set A, code table 7, wordlen 1 - 4 entries */
  914. 0x00, 0x01, 0x02, 0x03,
  915. /* Table set A, code table 7, wordlen 2 - 81 entries */
  916. 0x00, 0x40, 0x10, 0x04, 0x01, 0x50, 0x44, 0x14, 0x54, 0x41, 0x11, 0x05,
  917. 0x15, 0x51, 0x45, 0x55, 0x80, 0x90, 0x20, 0x64, 0x08, 0x19, 0x02, 0x06,
  918. 0x60, 0x84, 0x94, 0x24, 0x48, 0x18, 0x58, 0x81, 0x91, 0x21, 0x61, 0x85,
  919. 0x95, 0x25, 0x65, 0x09, 0x49, 0x59, 0x42, 0x12, 0x52, 0x46, 0x16, 0x56,
  920. 0xA0, 0xA4, 0x98, 0x28, 0x68, 0xA1, 0xA5, 0x99, 0x29, 0x69, 0x96, 0x26,
  921. 0x66, 0x0A, 0x4A, 0x1A, 0x5A, 0x88, 0xA8, 0x89, 0xA9, 0x82, 0x92, 0x22,
  922. 0x62, 0x86, 0xA6, 0x2A, 0x6A, 0xA2, 0x8A, 0x9A, 0xAA,
  923. /* Table set A, code table 7, wordlen 3 - 49 entries */
  924. 0x00, 0x08, 0x38, 0x01, 0x39, 0x07, 0x0F, 0x09, 0x3F, 0x10, 0x30, 0x31,
  925. 0x02, 0x3A, 0x06, 0x0E, 0x17, 0x11, 0x0A, 0x32, 0x0D, 0x16, 0x3E, 0x37,
  926. 0x18, 0x28, 0x19, 0x29, 0x12, 0x2A, 0x03, 0x3B, 0x05, 0x15, 0x1E, 0x1F,
  927. 0x2F, 0x1A, 0x0B, 0x2B, 0x33, 0x35, 0x3D, 0x2E, 0x36, 0x13, 0x1B, 0x1D,
  928. 0x2D,
  929. /* Table set A, code table 7, wordlen 4 - 121 entries */
  930. 0x00, 0x10, 0xF0, 0x01, 0x0F, 0x11, 0xF1, 0x1F, 0xFF, 0x20, 0xE0, 0x02,
  931. 0xF2, 0x0E, 0x21, 0xE1, 0x12, 0xE2, 0x1E, 0x2E, 0xFE, 0x2F, 0xEF, 0x30,
  932. 0x50, 0xB0, 0xC0, 0xD0, 0x31, 0xB1, 0xD1, 0x22, 0xD2, 0x03, 0x13, 0xE3,
  933. 0xF3, 0xF4, 0x05, 0xE5, 0xF5, 0x0B, 0x1B, 0x0C, 0x0D, 0x1D, 0x2D, 0xFD,
  934. 0x3E, 0xEE, 0x3F, 0x5F, 0xDF, 0x40, 0x41, 0x51, 0xC1, 0x32, 0x42, 0x52,
  935. 0xB2, 0xC2, 0x23, 0x33, 0xB3, 0xC3, 0xD3, 0x04, 0x14, 0x24, 0xD4, 0xE4,
  936. 0x15, 0x25, 0xC5, 0xD5, 0x2B, 0x3B, 0xEB, 0xFB, 0x1C, 0x2C, 0x3C, 0x5C,
  937. 0xEC, 0xFC, 0x3D, 0x5D, 0xDD, 0xED, 0x4E, 0x5E, 0xBE, 0xCE, 0xDE, 0x4F,
  938. 0xBF, 0xCF, 0x43, 0x53, 0x34, 0x54, 0xB4, 0xC4, 0x35, 0x45, 0x55, 0xB5,
  939. 0x4B, 0x5B, 0xCB, 0xDB, 0x4C, 0xBC, 0xCC, 0xDC, 0x4D, 0xBD, 0xCD, 0x44,
  940. 0xBB,
  941. /* Table set A, code table 7, wordlen 5 - 15 entries */
  942. 0x00, 0x01, 0x0E, 0x0F, 0x02, 0x03, 0x0D, 0x04, 0x06, 0x0A, 0x0C, 0x05,
  943. 0x07, 0x09, 0x0B,
  944. /* Table set A, code table 7, wordlen 6 - 256 entries */
  945. 0x00, 0x10, 0x01, 0x11, 0x20, 0x21, 0x02, 0x12, 0x30, 0x31, 0x41, 0x22,
  946. 0x03, 0x13, 0x23, 0x14, 0x40, 0x51, 0x61, 0x32, 0x42, 0x33, 0x04, 0x24,
  947. 0x15, 0x16, 0x50, 0x60, 0xD0, 0x71, 0x81, 0xD1, 0xE1, 0xF1, 0x52, 0x62,
  948. 0x72, 0xD2, 0x43, 0x53, 0x63, 0xD3, 0x34, 0x44, 0x54, 0x05, 0x25, 0x35,
  949. 0x45, 0x06, 0x26, 0x36, 0x17, 0x27, 0x18, 0x0D, 0x1D, 0x2D, 0x3D, 0x1E,
  950. 0x2E, 0x1F, 0x70, 0x80, 0xE0, 0xF0, 0x91, 0xA1, 0xC1, 0x82, 0x92, 0xC2,
  951. 0xE2, 0xF2, 0x73, 0x83, 0x93, 0xE3, 0xF3, 0x64, 0x74, 0x84, 0xD4, 0xE4,
  952. 0xF4, 0x55, 0x65, 0xD5, 0xE5, 0xF5, 0x46, 0x56, 0x66, 0xD6, 0x07, 0x37,
  953. 0x47, 0x57, 0x08, 0x28, 0x38, 0x48, 0x19, 0x29, 0x39, 0x1A, 0x2A, 0x1B,
  954. 0x1C, 0x2C, 0x3C, 0x4D, 0x5D, 0x6D, 0x0E, 0x3E, 0x4E, 0x5E, 0x0F, 0x2F,
  955. 0x3F, 0x4F, 0x90, 0xA0, 0xB0, 0xC0, 0xB1, 0xA2, 0xB2, 0xA3, 0xB3, 0xC3,
  956. 0x94, 0xA4, 0xB4, 0xC4, 0x75, 0x85, 0x95, 0xA5, 0xC5, 0x76, 0x86, 0x96,
  957. 0xE6, 0xF6, 0x67, 0x77, 0x87, 0xD7, 0xE7, 0xF7, 0x58, 0x68, 0x78, 0x88,
  958. 0xD8, 0xE8, 0xF8, 0x09, 0x49, 0x59, 0x69, 0xD9, 0xE9, 0xF9, 0x0A, 0x3A,
  959. 0x4A, 0x5A, 0xDA, 0xEA, 0x0B, 0x2B, 0x3B, 0x4B, 0xDB, 0x0C, 0x4C, 0x5C,
  960. 0x6C, 0xDC, 0x7D, 0x8D, 0x9D, 0xAD, 0xBD, 0xCD, 0x6E, 0x7E, 0x8E, 0x9E,
  961. 0xAE, 0xBE, 0x5F, 0x6F, 0x7F, 0x8F, 0x9F, 0xAF, 0xB5, 0xA6, 0xB6, 0xC6,
  962. 0x97, 0xA7, 0xC7, 0x98, 0xA8, 0xB8, 0xC8, 0x79, 0x89, 0x99, 0xA9, 0xB9,
  963. 0xC9, 0x6A, 0x7A, 0x8A, 0x9A, 0xAA, 0xCA, 0xFA, 0x5B, 0x6B, 0x7B, 0x8B,
  964. 0xCB, 0xEB, 0xFB, 0x7C, 0x8C, 0x9C, 0xAC, 0xBC, 0xEC, 0xFC, 0xDD, 0xED,
  965. 0xFD, 0xCE, 0xDE, 0xEE, 0xFE, 0xBF, 0xCF, 0xDF, 0xB7, 0xBA, 0x9B, 0xAB,
  966. 0xBB, 0xCC, 0xEF, 0xFF,
  967. /* Table set B, code table 0, wordlen 1 - 81 entries */
  968. 0x00, 0x01, 0x03, 0x40, 0xC0, 0x10, 0x30, 0x04, 0x0C, 0x50, 0xD0, 0x70,
  969. 0xF0, 0x34, 0x1C, 0x05, 0x0D, 0x13, 0x07, 0x0F, 0x44, 0xC4, 0x14, 0x4C,
  970. 0xCC, 0x3C, 0x41, 0xC1, 0x11, 0x31, 0x43, 0xC3, 0x33, 0x54, 0x74, 0xDC,
  971. 0xFC, 0x71, 0x15, 0x4D, 0x1D, 0xD3, 0xC7, 0x37, 0x3F, 0xD4, 0xF4, 0x5C,
  972. 0x7C, 0x51, 0xD1, 0xF1, 0x45, 0xC5, 0x55, 0x35, 0xCD, 0xDD, 0x3D, 0x53,
  973. 0x73, 0xF3, 0x47, 0x17, 0x77, 0x4F, 0xCF, 0x1F, 0xFF, 0xF5, 0x7D, 0xD7,
  974. 0x5F, 0xD5, 0x75, 0x5D, 0xFD, 0x57, 0xF7, 0xDF, 0x7F,
  975. /* Table set B, code table 0, wordlen 2 - 81 entries */
  976. 0x00, 0x40, 0x10, 0x04, 0x01, 0x50, 0x44, 0x14, 0x54, 0x41, 0x11, 0x05,
  977. 0x15, 0x80, 0x51, 0x45, 0x55, 0x90, 0x20, 0x60, 0x24, 0x08, 0x18, 0x09,
  978. 0x02, 0x06, 0x84, 0x94, 0x64, 0x48, 0x58, 0x81, 0x91, 0x21, 0x61, 0x95,
  979. 0x25, 0x65, 0x19, 0x59, 0x42, 0x12, 0x46, 0x16, 0x56, 0xA0, 0xA4, 0x28,
  980. 0x68, 0x85, 0xA5, 0x49, 0x29, 0x69, 0x52, 0x0A, 0x1A, 0x5A, 0x88, 0x98,
  981. 0xA1, 0x89, 0x99, 0xA9, 0x22, 0x62, 0x96, 0x26, 0x66, 0x4A, 0x6A, 0xA8,
  982. 0x82, 0x92, 0xA2, 0x86, 0xA6, 0x8A, 0x9A, 0x2A, 0xAA,
  983. /* Table set B, code table 0, wordlen 3 - 49 entries */
  984. 0x00, 0x08, 0x38, 0x01, 0x07, 0x30, 0x09, 0x39, 0x0F, 0x3F, 0x10, 0x18,
  985. 0x28, 0x31, 0x02, 0x3A, 0x03, 0x05, 0x06, 0x0E, 0x17, 0x37, 0x11, 0x19,
  986. 0x29, 0x0A, 0x32, 0x0B, 0x3B, 0x0D, 0x15, 0x3D, 0x3E, 0x1F, 0x2F, 0x12,
  987. 0x1A, 0x2A, 0x13, 0x1B, 0x2B, 0x33, 0x1D, 0x2D, 0x35, 0x16, 0x1E, 0x2E,
  988. 0x36,
  989. /* Table set B, code table 0, wordlen 4 - 121 entries */
  990. 0x00, 0x10, 0xF0, 0x01, 0x0F, 0x11, 0xF1, 0x1F, 0xFF, 0x20, 0xE0, 0x02,
  991. 0xF2, 0x0E, 0x21, 0xE1, 0x12, 0xE2, 0x1E, 0x2E, 0xFE, 0x2F, 0xEF, 0x30,
  992. 0x50, 0xB0, 0xC0, 0xD0, 0x31, 0xB1, 0xD1, 0x22, 0xD2, 0x03, 0x13, 0xE3,
  993. 0xF3, 0xF4, 0x05, 0xE5, 0xF5, 0x0B, 0x1B, 0x0C, 0x0D, 0x1D, 0x2D, 0xFD,
  994. 0x3E, 0xEE, 0x3F, 0x5F, 0xDF, 0x40, 0x41, 0x51, 0xC1, 0x32, 0x42, 0x52,
  995. 0xB2, 0xC2, 0x23, 0x33, 0xB3, 0xC3, 0xD3, 0x04, 0x14, 0x24, 0xD4, 0xE4,
  996. 0x15, 0x25, 0xC5, 0xD5, 0x2B, 0x3B, 0xEB, 0xFB, 0x1C, 0x2C, 0x3C, 0x5C,
  997. 0xEC, 0xFC, 0x3D, 0x5D, 0xDD, 0xED, 0x4E, 0x5E, 0xBE, 0xCE, 0xDE, 0x4F,
  998. 0xBF, 0xCF, 0x43, 0x53, 0x34, 0x54, 0xB4, 0xC4, 0x35, 0x45, 0x55, 0xB5,
  999. 0x4B, 0x5B, 0xCB, 0xDB, 0x4C, 0xBC, 0xCC, 0xDC, 0x4D, 0xBD, 0xCD, 0x44,
  1000. 0xBB,
  1001. /* Table set B, code table 0, wordlen 5 - 225 entries */
  1002. 0x00, 0x10, 0xF0, 0x01, 0x0F, 0x11, 0xF1, 0x1F, 0xFF, 0x20, 0xE0, 0x02,
  1003. 0x0E, 0x30, 0xD0, 0x21, 0xE1, 0x12, 0xF2, 0x03, 0x0D, 0x1E, 0xFE, 0x2F,
  1004. 0xEF, 0x40, 0x60, 0x70, 0x90, 0xA0, 0xC0, 0x31, 0xD1, 0x22, 0x32, 0xD2,
  1005. 0xE2, 0x13, 0x23, 0xE3, 0xF3, 0x04, 0x06, 0x07, 0x09, 0x0A, 0x0C, 0x1D,
  1006. 0x2D, 0xFD, 0x2E, 0x3E, 0xEE, 0x3F, 0xDF, 0x50, 0xB0, 0x41, 0x51, 0x61,
  1007. 0x71, 0x91, 0xA1, 0xB1, 0xC1, 0x42, 0x62, 0x72, 0x92, 0xA2, 0xC2, 0x33,
  1008. 0x93, 0xA3, 0xD3, 0x14, 0x24, 0xE4, 0xF4, 0x05, 0x15, 0xF5, 0x16, 0x26,
  1009. 0xD6, 0xE6, 0xF6, 0x17, 0x27, 0xD7, 0xE7, 0xF7, 0x19, 0x29, 0x39, 0xE9,
  1010. 0xF9, 0x1A, 0x2A, 0xEA, 0xFA, 0x0B, 0x1B, 0xFB, 0x1C, 0x2C, 0xEC, 0xFC,
  1011. 0x3D, 0x7D, 0x9D, 0xDD, 0xED, 0x4E, 0x6E, 0x7E, 0x9E, 0xAE, 0xCE, 0xDE,
  1012. 0x4F, 0x5F, 0x6F, 0x7F, 0x9F, 0xAF, 0xBF, 0xCF, 0x52, 0xB2, 0x43, 0x53,
  1013. 0x63, 0x73, 0xB3, 0xC3, 0x34, 0x44, 0x64, 0x74, 0x94, 0xA4, 0xB4, 0xC4,
  1014. 0xD4, 0x25, 0x35, 0x65, 0x75, 0x95, 0xA5, 0xD5, 0xE5, 0x36, 0x46, 0x56,
  1015. 0x66, 0xA6, 0xB6, 0xC6, 0x37, 0x47, 0x57, 0xB7, 0xC7, 0x49, 0x59, 0x69,
  1016. 0xB9, 0xC9, 0xD9, 0x3A, 0x4A, 0x5A, 0x6A, 0xAA, 0xBA, 0xCA, 0xDA, 0x2B,
  1017. 0x3B, 0x6B, 0x7B, 0x9B, 0xAB, 0xDB, 0xEB, 0x3C, 0x4C, 0x6C, 0x7C, 0x9C,
  1018. 0xAC, 0xCC, 0xDC, 0x4D, 0x5D, 0x6D, 0xAD, 0xBD, 0xCD, 0x5E, 0xBE, 0x54,
  1019. 0x45, 0x55, 0xB5, 0xC5, 0x76, 0x96, 0x67, 0x77, 0x97, 0xA7, 0x79, 0x99,
  1020. 0xA9, 0x7A, 0x9A, 0x4B, 0x5B, 0xBB, 0xCB, 0x5C, 0xBC,
  1021. /* Table set B, code table 0, wordlen 7 - 63 entries */
  1022. 0x00, 0x01, 0x3F, 0x02, 0x3E, 0x03, 0x04, 0x3C, 0x3D, 0x05, 0x06, 0x07,
  1023. 0x08, 0x38, 0x39, 0x3A, 0x3B, 0x09, 0x0A, 0x0B, 0x0C, 0x19, 0x1A, 0x1B,
  1024. 0x1C, 0x1D, 0x1E, 0x1F, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x33,
  1025. 0x34, 0x35, 0x36, 0x37, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x2D,
  1026. 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x14, 0x15, 0x16, 0x17, 0x18, 0x28, 0x29,
  1027. 0x2A, 0x2B, 0x2C,
  1028. /* Table set B, code table 1, wordlen 2 - 81 entries */
  1029. 0x00, 0x40, 0x04, 0x01, 0x10, 0x50, 0x44, 0x14, 0x54, 0x41, 0x11, 0x51,
  1030. 0x05, 0x45, 0x15, 0x55, 0x80, 0x90, 0x20, 0x60, 0x84, 0x94, 0x24, 0x64,
  1031. 0x08, 0x48, 0x18, 0x81, 0x91, 0x61, 0x85, 0x95, 0x25, 0x65, 0x09, 0x49,
  1032. 0x19, 0x59, 0x02, 0x42, 0x12, 0x52, 0x06, 0x46, 0x16, 0x56, 0xA4, 0x58,
  1033. 0x68, 0x21, 0xA5, 0x29, 0x69, 0x1A, 0x5A, 0xA0, 0x88, 0x98, 0x28, 0xA1,
  1034. 0x89, 0x99, 0xA9, 0x92, 0x22, 0x62, 0x86, 0x96, 0x26, 0x66, 0x0A, 0x4A,
  1035. 0x6A, 0xA8, 0x82, 0xA2, 0xA6, 0x8A, 0x9A, 0x2A, 0xAA,
  1036. /* Table set B, code table 1, wordlen 4 - 121 entries */
  1037. 0x00, 0x10, 0xF0, 0x01, 0x0F, 0xF1, 0x1F, 0xFF, 0x20, 0xE0, 0x11, 0x02,
  1038. 0x0E, 0x30, 0x50, 0xB0, 0xD0, 0x21, 0xE1, 0x12, 0xF2, 0x03, 0x05, 0x0B,
  1039. 0x0D, 0x1E, 0xFE, 0x2F, 0xEF, 0x40, 0xC0, 0x31, 0x51, 0xB1, 0xC1, 0xD1,
  1040. 0x22, 0x52, 0xE2, 0x13, 0xF3, 0x04, 0x15, 0xF5, 0x1B, 0xEB, 0xFB, 0x0C,
  1041. 0x1D, 0xFD, 0x2E, 0x5E, 0xEE, 0x3F, 0x5F, 0xBF, 0xDF, 0x41, 0x32, 0x42,
  1042. 0xB2, 0xD2, 0x23, 0x53, 0xB3, 0xE3, 0x14, 0x24, 0xE4, 0xF4, 0x25, 0x35,
  1043. 0xD5, 0xE5, 0x2B, 0x3B, 0xDB, 0x1C, 0x2C, 0xBC, 0xEC, 0xFC, 0x2D, 0xBD,
  1044. 0xED, 0x3E, 0x4E, 0xBE, 0xDE, 0x4F, 0xCF, 0xC2, 0x33, 0x43, 0xC3, 0xD3,
  1045. 0x34, 0x44, 0x54, 0xB4, 0xD4, 0x45, 0x55, 0xC5, 0x4B, 0xCB, 0x3C, 0x4C,
  1046. 0x5C, 0xCC, 0xDC, 0x3D, 0x4D, 0x5D, 0xCD, 0xDD, 0xCE, 0xC4, 0xB5, 0x5B,
  1047. 0xBB,
  1048. /* Table set B, code table 1, wordlen 6 - 256 entries */
  1049. 0x00, 0x10, 0x01, 0x11, 0x20, 0x21, 0x02, 0x12, 0x30, 0x31, 0x41, 0x22,
  1050. 0x32, 0x03, 0x13, 0x23, 0x14, 0x40, 0x51, 0x61, 0x42, 0x52, 0x33, 0x43,
  1051. 0x04, 0x24, 0x34, 0x15, 0x25, 0x16, 0x50, 0x60, 0x70, 0x71, 0x81, 0xD1,
  1052. 0xE1, 0x62, 0x72, 0x82, 0xD2, 0x53, 0x63, 0x73, 0xD3, 0x44, 0x54, 0x05,
  1053. 0x35, 0x45, 0x55, 0x06, 0x26, 0x36, 0x07, 0x17, 0x27, 0x37, 0x18, 0x28,
  1054. 0x19, 0x1D, 0x2D, 0x3D, 0x1E, 0x2E, 0x1F, 0x80, 0x90, 0xD0, 0xE0, 0xF0,
  1055. 0x91, 0xA1, 0xB1, 0xC1, 0xF1, 0x92, 0xA2, 0xB2, 0xC2, 0xE2, 0xF2, 0x83,
  1056. 0x93, 0xA3, 0xC3, 0xE3, 0xF3, 0x64, 0x74, 0x84, 0x94, 0xD4, 0xE4, 0xF4,
  1057. 0x65, 0x75, 0x85, 0xD5, 0xE5, 0x46, 0x56, 0x66, 0x76, 0xD6, 0xE6, 0x47,
  1058. 0x57, 0x67, 0xD7, 0x08, 0x38, 0x48, 0x58, 0x09, 0x29, 0x39, 0x49, 0x0A,
  1059. 0x1A, 0x2A, 0x3A, 0x1B, 0x2B, 0x0C, 0x1C, 0x2C, 0x3C, 0x0D, 0x4D, 0x5D,
  1060. 0x6D, 0x7D, 0x0E, 0x3E, 0x4E, 0x5E, 0x6E, 0x0F, 0x2F, 0x3F, 0x4F, 0xA0,
  1061. 0xB0, 0xC0, 0xB3, 0xA4, 0xB4, 0xC4, 0x95, 0xA5, 0xB5, 0xC5, 0xF5, 0x86,
  1062. 0x96, 0xA6, 0xB6, 0xC6, 0xF6, 0x77, 0x87, 0x97, 0xA7, 0xC7, 0xE7, 0xF7,
  1063. 0x68, 0x78, 0x88, 0x98, 0xD8, 0xE8, 0xF8, 0x59, 0x69, 0x79, 0x89, 0xD9,
  1064. 0xE9, 0xF9, 0x4A, 0x5A, 0x6A, 0x7A, 0xDA, 0xEA, 0x0B, 0x3B, 0x4B, 0x5B,
  1065. 0xDB, 0xEB, 0x4C, 0x5C, 0x6C, 0x7C, 0x8C, 0xDC, 0x8D, 0x9D, 0xAD, 0xBD,
  1066. 0xCD, 0x7E, 0x8E, 0x9E, 0xAE, 0xBE, 0x5F, 0x6F, 0x7F, 0x8F, 0x9F, 0xB7,
  1067. 0xA8, 0xB8, 0xC8, 0x99, 0xA9, 0xB9, 0xC9, 0x8A, 0x9A, 0xAA, 0xBA, 0xCA,
  1068. 0xFA, 0x6B, 0x7B, 0x8B, 0x9B, 0xAB, 0xBB, 0xCB, 0xFB, 0x9C, 0xAC, 0xBC,
  1069. 0xCC, 0xEC, 0xFC, 0xDD, 0xED, 0xFD, 0xCE, 0xDE, 0xEE, 0xFE, 0xAF, 0xBF,
  1070. 0xCF, 0xDF, 0xEF, 0xFF,
  1071. /* Table set B, code table 2, wordlen 6 - 256 entries */
  1072. 0x00, 0x01, 0x10, 0x11, 0x20, 0x21, 0x02, 0x12, 0x30, 0x31, 0x22, 0x03,
  1073. 0x13, 0x40, 0x41, 0x51, 0x32, 0x42, 0x23, 0x33, 0x04, 0x14, 0x24, 0x15,
  1074. 0x50, 0x61, 0x71, 0xD1, 0xE1, 0x52, 0x62, 0xD2, 0x43, 0x53, 0xD3, 0x34,
  1075. 0x44, 0x05, 0x25, 0x35, 0x06, 0x16, 0x26, 0x17, 0x18, 0x1D, 0x2D, 0x3D,
  1076. 0x1E, 0x2E, 0x60, 0x70, 0x80, 0xD0, 0xE0, 0xF0, 0x81, 0x91, 0xA1, 0xC1,
  1077. 0xF1, 0x72, 0x82, 0x92, 0xC2, 0xE2, 0xF2, 0x63, 0x73, 0xE3, 0xF3, 0x54,
  1078. 0x64, 0x74, 0xD4, 0xE4, 0xF4, 0x45, 0x55, 0x65, 0xD5, 0xE5, 0xF5, 0x36,
  1079. 0x46, 0x56, 0xD6, 0xE6, 0x07, 0x27, 0x37, 0x47, 0xD7, 0x08, 0x28, 0x38,
  1080. 0x19, 0x29, 0x1A, 0x1B, 0x1C, 0x2C, 0x0D, 0x4D, 0x5D, 0x6D, 0x7D, 0x0E,
  1081. 0x3E, 0x4E, 0x5E, 0x6E, 0x0F, 0x1F, 0x2F, 0x3F, 0x4F, 0x90, 0xA0, 0xC0,
  1082. 0xB1, 0xA2, 0xB2, 0x83, 0x93, 0xA3, 0xB3, 0xC3, 0x84, 0x94, 0xA4, 0xC4,
  1083. 0x75, 0x85, 0x95, 0xC5, 0x66, 0x76, 0x86, 0x96, 0xC6, 0xF6, 0x57, 0x67,
  1084. 0x77, 0xE7, 0xF7, 0x48, 0x58, 0x68, 0x78, 0xD8, 0xE8, 0xF8, 0x09, 0x39,
  1085. 0x49, 0x59, 0xD9, 0xE9, 0xF9, 0x0A, 0x2A, 0x3A, 0x4A, 0xDA, 0xEA, 0x0B,
  1086. 0x2B, 0x3B, 0xDB, 0xEB, 0x0C, 0x3C, 0x4C, 0x5C, 0x6C, 0xDC, 0x8D, 0x9D,
  1087. 0xAD, 0xBD, 0xCD, 0x7E, 0x8E, 0x9E, 0xAE, 0xBE, 0xCE, 0x5F, 0x6F, 0x7F,
  1088. 0x8F, 0x9F, 0xAF, 0xB0, 0xB4, 0xA5, 0xB5, 0xA6, 0xB6, 0x87, 0x97, 0xA7,
  1089. 0xB7, 0xC7, 0x88, 0x98, 0xA8, 0xC8, 0x69, 0x79, 0x89, 0x99, 0xA9, 0xC9,
  1090. 0x5A, 0x6A, 0x7A, 0x9A, 0xCA, 0xFA, 0x4B, 0x5B, 0x6B, 0x7B, 0xCB, 0xFB,
  1091. 0x7C, 0x8C, 0x9C, 0xAC, 0xBC, 0xCC, 0xEC, 0xFC, 0xDD, 0xED, 0xFD, 0xDE,
  1092. 0xEE, 0xFE, 0xBF, 0xCF, 0xDF, 0xEF, 0xB8, 0xB9, 0x8A, 0xAA, 0xBA, 0x8B,
  1093. 0x9B, 0xAB, 0xBB, 0xFF,
  1094. /* Table set B, code table 3, wordlen 2 - 81 entries */
  1095. 0x00, 0x40, 0x10, 0x04, 0x01, 0x50, 0x44, 0x14, 0x41, 0x11, 0x05, 0x80,
  1096. 0x54, 0x51, 0x45, 0x15, 0x55, 0x02, 0x90, 0x20, 0x60, 0x84, 0x24, 0x08,
  1097. 0x18, 0x09, 0x12, 0x06, 0xA0, 0x94, 0x64, 0x48, 0x58, 0x81, 0x91, 0x21,
  1098. 0x61, 0x85, 0x95, 0x25, 0x65, 0x49, 0x19, 0x59, 0x42, 0x52, 0x46, 0x16,
  1099. 0x56, 0x0A, 0xA4, 0x28, 0x68, 0xA1, 0xA5, 0x29, 0x69, 0x26, 0x4A, 0x1A,
  1100. 0x5A, 0x88, 0x98, 0xA8, 0x89, 0x99, 0xA9, 0x82, 0x92, 0x22, 0x62, 0x86,
  1101. 0x96, 0x66, 0x9A, 0x2A, 0x6A, 0xA2, 0xA6, 0x8A, 0xAA,
  1102. /* Table set B, code table 3, wordlen 3 - 256 entries */
  1103. 0x00, 0x40, 0x10, 0x04, 0x01, 0x50, 0x44, 0x14, 0x54, 0x41, 0x11, 0x51,
  1104. 0x05, 0x45, 0x15, 0x55, 0x20, 0x95, 0x65, 0x49, 0x59, 0x52, 0x46, 0x16,
  1105. 0x80, 0x90, 0x60, 0x84, 0x94, 0x24, 0x64, 0xA4, 0x08, 0x48, 0x18, 0x58,
  1106. 0x81, 0x91, 0x21, 0x61, 0x85, 0x25, 0x09, 0x19, 0x69, 0x02, 0x42, 0x12,
  1107. 0x06, 0x56, 0x5A, 0x57, 0xD0, 0x74, 0x68, 0x5C, 0xC1, 0xD5, 0xA5, 0xE5,
  1108. 0x75, 0xB5, 0xF5, 0x99, 0xD9, 0xA9, 0xE9, 0x79, 0xB9, 0xF9, 0x1D, 0x5D,
  1109. 0x9D, 0xDD, 0x6D, 0xAD, 0xED, 0x7D, 0xBD, 0xFD, 0x82, 0x92, 0xD2, 0x62,
  1110. 0x96, 0xD6, 0x26, 0x66, 0xA6, 0xE6, 0x76, 0xB6, 0xF6, 0x0A, 0x4A, 0x1A,
  1111. 0x9A, 0xDA, 0x2A, 0x6A, 0xAA, 0xEA, 0x7A, 0xBA, 0xFA, 0x5E, 0x9E, 0xDE,
  1112. 0x6E, 0xAE, 0xEE, 0x7E, 0xBE, 0xFE, 0x03, 0x13, 0x53, 0x17, 0x97, 0xD7,
  1113. 0x67, 0xA7, 0xE7, 0x77, 0xB7, 0xF7, 0x5B, 0x9B, 0xDB, 0x6B, 0xAB, 0xEB,
  1114. 0x7B, 0xBB, 0xFB, 0x5F, 0x9F, 0xDF, 0x6F, 0xAF, 0xEF, 0x7F, 0xBF, 0xFF,
  1115. 0xC0, 0xA0, 0xE0, 0x30, 0xC4, 0xD4, 0xE4, 0x34, 0xB4, 0xF4, 0x88, 0xC8,
  1116. 0x98, 0xD8, 0x28, 0xA8, 0xE8, 0x38, 0x78, 0xB8, 0xF8, 0x0C, 0x4C, 0x1C,
  1117. 0x9C, 0xDC, 0x6C, 0xAC, 0xEC, 0x7C, 0xBC, 0xFC, 0xD1, 0xA1, 0xE1, 0x31,
  1118. 0x71, 0xB1, 0xF1, 0xC5, 0x35, 0x89, 0xC9, 0x29, 0x39, 0x0D, 0x4D, 0x8D,
  1119. 0xCD, 0x2D, 0x3D, 0x22, 0xA2, 0xE2, 0x72, 0xB2, 0xF2, 0x86, 0xC6, 0x36,
  1120. 0x8A, 0xCA, 0x3A, 0x0E, 0x4E, 0x8E, 0xCE, 0x1E, 0x2E, 0x3E, 0x43, 0x83,
  1121. 0x93, 0xD3, 0x23, 0x63, 0xA3, 0xE3, 0x73, 0xB3, 0xF3, 0x07, 0x47, 0x87,
  1122. 0xC7, 0x27, 0x37, 0x4B, 0x8B, 0xCB, 0x1B, 0x2B, 0x3B, 0x4F, 0x8F, 0xCF,
  1123. 0x1F, 0x70, 0xB0, 0xF0, 0x8C, 0xCC, 0x2C, 0x3C, 0xC2, 0x32, 0xC3, 0x0F,
  1124. 0x2F, 0x3F, 0x33, 0x0B,
  1125. /* Table set B, code table 3, wordlen 5 - 225 entries */
  1126. 0x00, 0x10, 0xF0, 0x01, 0x0F, 0x11, 0xF1, 0x02, 0x0E, 0x1F, 0xFF, 0x20,
  1127. 0xE0, 0x21, 0xF2, 0xFE, 0xEF, 0x30, 0xD0, 0xE1, 0x12, 0x22, 0xE2, 0x03,
  1128. 0x0D, 0x1D, 0x1E, 0x2E, 0xEE, 0x2F, 0xDF, 0x40, 0x60, 0x70, 0x90, 0xA0,
  1129. 0xB0, 0xC0, 0x31, 0x71, 0x91, 0xC1, 0xD1, 0x32, 0xD2, 0x13, 0xE3, 0xF3,
  1130. 0x04, 0x05, 0x06, 0x07, 0x17, 0xF7, 0x09, 0x19, 0x0A, 0x1A, 0xFA, 0x0C,
  1131. 0x1C, 0x2D, 0xED, 0xFD, 0x3E, 0x7E, 0xDE, 0x3F, 0x6F, 0x7F, 0x9F, 0xAF,
  1132. 0xCF, 0x50, 0x41, 0x51, 0x61, 0xA1, 0xB1, 0x62, 0x72, 0x92, 0xA2, 0xC2,
  1133. 0x23, 0x33, 0x63, 0x73, 0x93, 0xA3, 0xD3, 0x14, 0x24, 0x34, 0xD4, 0xE4,
  1134. 0xF4, 0x15, 0xF5, 0x16, 0x26, 0xD6, 0xE6, 0xF6, 0x27, 0x37, 0x47, 0xE7,
  1135. 0x29, 0x39, 0xC9, 0xD9, 0xE9, 0xF9, 0x2A, 0xEA, 0x0B, 0x1B, 0xFB, 0x2C,
  1136. 0x7C, 0xEC, 0xFC, 0x3D, 0x4D, 0x6D, 0x7D, 0xDD, 0x4E, 0x5E, 0x6E, 0x9E,
  1137. 0xAE, 0xCE, 0x4F, 0x5F, 0x42, 0x52, 0xB2, 0x43, 0xB3, 0xC3, 0x44, 0x64,
  1138. 0x74, 0x94, 0xA4, 0x25, 0x35, 0x65, 0x75, 0x95, 0xA5, 0xE5, 0x36, 0x46,
  1139. 0x66, 0x76, 0x96, 0xA6, 0xB6, 0xC6, 0x57, 0xA7, 0xB7, 0xC7, 0xD7, 0x59,
  1140. 0xA9, 0xB9, 0x3A, 0x4A, 0x6A, 0xCA, 0xDA, 0x2B, 0x3B, 0x6B, 0x9B, 0xAB,
  1141. 0xDB, 0xEB, 0x3C, 0x6C, 0x9C, 0xAC, 0xCC, 0xDC, 0x5D, 0x9D, 0xAD, 0xBD,
  1142. 0xCD, 0xBE, 0xBF, 0x53, 0x54, 0xB4, 0xC4, 0x45, 0x55, 0xB5, 0xC5, 0xD5,
  1143. 0x56, 0x67, 0x77, 0x97, 0x49, 0x69, 0x79, 0x99, 0x5A, 0x7A, 0x9A, 0xAA,
  1144. 0xBA, 0x4B, 0x5B, 0x7B, 0xBB, 0xCB, 0x4C, 0x5C, 0xBC,
  1145. /* Table set B, code table 3, wordlen 7 - 63 entries */
  1146. 0x00, 0x01, 0x3F, 0x02, 0x3E, 0x03, 0x3D, 0x04, 0x05, 0x06, 0x3A, 0x3B,
  1147. 0x3C, 0x07, 0x08, 0x09, 0x0A, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x22, 0x23,
  1148. 0x25, 0x26, 0x27, 0x37, 0x38, 0x39, 0x0B, 0x0D, 0x0E, 0x0F, 0x1E, 0x1F,
  1149. 0x21, 0x24, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x0C, 0x10, 0x11, 0x12,
  1150. 0x13, 0x15, 0x29, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x14, 0x16, 0x17,
  1151. 0x18, 0x28, 0x2A,
  1152. /* Table set B, code table 4, wordlen 1 - 81 entries */
  1153. 0x00, 0x01, 0x40, 0xC0, 0x10, 0x30, 0x04, 0x0C, 0x03, 0x50, 0xD0, 0x70,
  1154. 0xF0, 0xC4, 0x14, 0x34, 0x4C, 0x1C, 0x3C, 0xC1, 0x11, 0x31, 0x05, 0x0D,
  1155. 0xC3, 0x13, 0x33, 0x07, 0x0F, 0x44, 0xCC, 0x41, 0x43, 0x54, 0x74, 0xDC,
  1156. 0xFC, 0x71, 0x15, 0x4D, 0x1D, 0x37, 0x3F, 0xD4, 0xF4, 0x5C, 0x7C, 0x51,
  1157. 0xD1, 0xF1, 0x45, 0xC5, 0x35, 0xCD, 0xDD, 0x3D, 0x53, 0xD3, 0x73, 0xF3,
  1158. 0x47, 0xC7, 0x17, 0x77, 0x4F, 0xCF, 0x1F, 0x55, 0xFF, 0xD5, 0x75, 0xF5,
  1159. 0x5D, 0x7D, 0xFD, 0x57, 0xD7, 0xF7, 0x5F, 0xDF, 0x7F,
  1160. /* Table set B, code table 4, wordlen 2 - 25 entries */
  1161. 0x00, 0x07, 0x08, 0x38, 0x01, 0x39, 0x0F, 0x10, 0x09, 0x3F, 0x30, 0x31,
  1162. 0x02, 0x3A, 0x06, 0x0E, 0x17, 0x11, 0x0A, 0x3E, 0x37, 0x12, 0x32, 0x16,
  1163. 0x36,
  1164. /* Table set B, code table 4, wordlen 3 - 49 entries */
  1165. 0x00, 0x07, 0x08, 0x38, 0x01, 0x09, 0x39, 0x0F, 0x3F, 0x10, 0x30, 0x31,
  1166. 0x02, 0x3A, 0x06, 0x0E, 0x17, 0x37, 0x18, 0x28, 0x11, 0x19, 0x29, 0x0A,
  1167. 0x03, 0x0B, 0x3B, 0x05, 0x0D, 0x3D, 0x3E, 0x1F, 0x2F, 0x12, 0x1A, 0x2A,
  1168. 0x32, 0x13, 0x33, 0x15, 0x35, 0x16, 0x1E, 0x2E, 0x36, 0x1B, 0x2B, 0x1D,
  1169. 0x2D,
  1170. /* Table set B, code table 4, wordlen 7 - 63 entries */
  1171. 0x00, 0x01, 0x02, 0x3E, 0x3F, 0x03, 0x04, 0x3C, 0x3D, 0x05, 0x06, 0x07,
  1172. 0x39, 0x3A, 0x3B, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x1A, 0x1B, 0x25, 0x26,
  1173. 0x34, 0x35, 0x36, 0x37, 0x38, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x19,
  1174. 0x1C, 0x1D, 0x1E, 0x1F, 0x21, 0x22, 0x23, 0x24, 0x27, 0x2E, 0x2F, 0x30,
  1175. 0x31, 0x32, 0x33, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x28, 0x29, 0x2A,
  1176. 0x2B, 0x2C, 0x2D,
  1177. /* Table set B, code table 5, wordlen 2 - 25 entries */
  1178. 0x00, 0x01, 0x08, 0x38, 0x07, 0x39, 0x0F, 0x30, 0x09, 0x3F, 0x10, 0x31,
  1179. 0x02, 0x3A, 0x06, 0x0E, 0x17, 0x11, 0x0A, 0x3E, 0x37, 0x12, 0x32, 0x16,
  1180. 0x36,
  1181. /* Table set B, code table 5, wordlen 3 - 7 entries */
  1182. 0x00, 0x07, 0x01, 0x02, 0x03, 0x05, 0x06,
  1183. /* Table set B, code table 5, wordlen 6 - 31 entries */
  1184. 0x00, 0x01, 0x1F, 0x02, 0x1E, 0x03, 0x04, 0x0D, 0x1D, 0x05, 0x06, 0x07,
  1185. 0x0E, 0x0F, 0x11, 0x12, 0x13, 0x1A, 0x1B, 0x1C, 0x08, 0x09, 0x0C, 0x14,
  1186. 0x15, 0x16, 0x17, 0x18, 0x19, 0x0A, 0x0B,
  1187. /* Table set B, code table 6, wordlen 2 - 81 entries */
  1188. 0x00, 0x40, 0x01, 0x10, 0x04, 0x02, 0x80, 0x50, 0x90, 0x05, 0x06, 0x20,
  1189. 0x60, 0x44, 0x14, 0x54, 0x24, 0x08, 0x18, 0x41, 0x11, 0x15, 0x09, 0xA0,
  1190. 0x84, 0x94, 0x64, 0xA4, 0x28, 0x51, 0x45, 0x55, 0x19, 0x12, 0x16, 0x0A,
  1191. 0x1A, 0x48, 0x58, 0x68, 0x81, 0x91, 0x21, 0x61, 0x85, 0x95, 0x25, 0x65,
  1192. 0x49, 0x59, 0x29, 0x69, 0x42, 0x46, 0x56, 0x88, 0x98, 0xA8, 0xA1, 0xA5,
  1193. 0x99, 0xA9, 0x52, 0x22, 0x26, 0x66, 0x4A, 0x5A, 0x2A, 0x6A, 0x89, 0x82,
  1194. 0x92, 0x62, 0x86, 0x96, 0xA6, 0x8A, 0xAA, 0xA2, 0x9A,
  1195. /* Table set B, code table 6, wordlen 3 - 7 entries */
  1196. 0x00, 0x01, 0x07, 0x02, 0x03, 0x05, 0x06,
  1197. /* Table set B, code table 6, wordlen 4 - 6 entries */
  1198. 0x01, 0x00, 0x02, 0x05, 0x03, 0x04,
  1199. /* Table set B, code table 6, wordlen 5 - 225 entries */
  1200. 0x00, 0xF0, 0x01, 0x10, 0x0F, 0x11, 0xF1, 0x20, 0xE0, 0x02, 0x0E, 0x1F,
  1201. 0xFF, 0xD0, 0x21, 0xE1, 0x12, 0xF2, 0x07, 0x0A, 0x0D, 0x1E, 0xFE, 0x2F,
  1202. 0xEF, 0x30, 0x70, 0x90, 0xA0, 0xC0, 0x71, 0x91, 0xC1, 0xD1, 0x32, 0x92,
  1203. 0xE2, 0x03, 0x13, 0x63, 0x04, 0x06, 0xE6, 0xE7, 0xF7, 0x09, 0x19, 0x39,
  1204. 0xFA, 0x0C, 0x1C, 0xDD, 0xED, 0xFD, 0x2E, 0x7E, 0x9E, 0x3F, 0x9F, 0x40,
  1205. 0x50, 0x60, 0xB0, 0x31, 0x41, 0x61, 0xA1, 0xB1, 0x22, 0x42, 0x72, 0xA2,
  1206. 0xB2, 0xC2, 0xD2, 0x23, 0x33, 0x73, 0xA3, 0xC3, 0xD3, 0xE3, 0xF3, 0x14,
  1207. 0x24, 0x34, 0x44, 0x74, 0xD4, 0xE4, 0x05, 0x25, 0x45, 0x65, 0x95, 0xA5,
  1208. 0x16, 0x26, 0x46, 0x76, 0xA6, 0xB6, 0xC6, 0xD6, 0xF6, 0x17, 0x27, 0x37,
  1209. 0x47, 0x67, 0xA7, 0xD7, 0x29, 0x69, 0xB9, 0xD9, 0xE9, 0xF9, 0x1A, 0x2A,
  1210. 0x3A, 0x9A, 0xCA, 0xDA, 0xEA, 0x0B, 0x1B, 0x3B, 0x6B, 0xEB, 0xFB, 0x2C,
  1211. 0x6C, 0xEC, 0xFC, 0x1D, 0x2D, 0x4D, 0x6D, 0x9D, 0xAD, 0x3E, 0x4E, 0x6E,
  1212. 0xAE, 0xCE, 0xEE, 0x4F, 0x5F, 0x6F, 0xDF, 0x51, 0x52, 0x62, 0x43, 0x93,
  1213. 0xB3, 0x54, 0x94, 0xA4, 0xF4, 0x15, 0x75, 0xB5, 0xE5, 0xF5, 0x36, 0x56,
  1214. 0x66, 0x96, 0x57, 0x77, 0x49, 0x59, 0xA9, 0xC9, 0x4A, 0x5A, 0x6A, 0x7A,
  1215. 0xAA, 0xBA, 0x2B, 0x4B, 0x7B, 0x9B, 0xAB, 0xDB, 0x3C, 0x4C, 0x7C, 0x9C,
  1216. 0xAC, 0xBC, 0xCC, 0x3D, 0x5D, 0x7D, 0xBD, 0xCD, 0x5E, 0xBE, 0xDE, 0xBF,
  1217. 0xCF, 0x53, 0x64, 0xB4, 0xC4, 0x35, 0x55, 0xC5, 0xD5, 0x97, 0xB7, 0xC7,
  1218. 0x79, 0x99, 0x5B, 0xBB, 0xCB, 0x5C, 0xDC, 0x7F, 0xAF,
  1219. /* Table set B, code table 6, wordlen 6 - 256 entries */
  1220. 0x00, 0x10, 0x01, 0x11, 0x21, 0x02, 0x12, 0x20, 0x22, 0x13, 0x30, 0x31,
  1221. 0x41, 0xD1, 0xE1, 0x32, 0x52, 0x03, 0x23, 0x2D, 0x40, 0x50, 0x60, 0x80,
  1222. 0xD0, 0xE0, 0x51, 0x61, 0xF1, 0x42, 0x62, 0xD2, 0xE2, 0xF2, 0x33, 0x43,
  1223. 0xC3, 0xD3, 0xE3, 0x04, 0x14, 0xD4, 0xF4, 0x25, 0x35, 0x16, 0x17, 0xF7,
  1224. 0xD8, 0x1C, 0x3C, 0x0D, 0x1D, 0x3D, 0x5D, 0x0E, 0x1E, 0x2E, 0x7E, 0x2F,
  1225. 0xC0, 0xF0, 0x71, 0x81, 0x91, 0xC1, 0x72, 0x82, 0x92, 0xB2, 0xC2, 0x53,
  1226. 0x63, 0x73, 0x93, 0xA3, 0xF3, 0x24, 0x44, 0x64, 0x84, 0xA4, 0xB4, 0x05,
  1227. 0x15, 0x95, 0xD5, 0x06, 0x26, 0x36, 0x46, 0x96, 0xD6, 0xE6, 0xF6, 0x07,
  1228. 0x27, 0x37, 0xD7, 0xE7, 0x08, 0x18, 0x28, 0x38, 0xE8, 0xF8, 0x09, 0x19,
  1229. 0x29, 0xE9, 0xF9, 0x0A, 0x1A, 0xCA, 0xDA, 0xEA, 0x0B, 0x1B, 0xDB, 0xEB,
  1230. 0xFB, 0x2C, 0x4C, 0x5C, 0x7C, 0x8C, 0x4D, 0x6D, 0x8D, 0x9D, 0xFD, 0x3E,
  1231. 0x5E, 0x6E, 0x8E, 0x9E, 0xEE, 0x0F, 0x1F, 0x3F, 0x4F, 0x5F, 0x6F, 0x7F,
  1232. 0xCF, 0x70, 0xA1, 0xA2, 0x83, 0xB3, 0x34, 0x74, 0xC4, 0xE4, 0x55, 0x65,
  1233. 0x85, 0xA5, 0xC5, 0xE5, 0xF5, 0x56, 0x66, 0x76, 0x86, 0xA6, 0xC6, 0x57,
  1234. 0x67, 0x77, 0x97, 0xA7, 0x48, 0x88, 0x98, 0x49, 0x59, 0x79, 0x99, 0x3A,
  1235. 0x4A, 0x8A, 0xBA, 0xFA, 0x2B, 0x7B, 0x0C, 0xAC, 0xBC, 0xCC, 0xEC, 0x7D,
  1236. 0xAD, 0xBD, 0xDD, 0x4E, 0xBE, 0xCE, 0xFE, 0x8F, 0x9F, 0xAF, 0xBF, 0xDF,
  1237. 0xEF, 0xFF, 0x90, 0xA0, 0xB0, 0xB1, 0x54, 0x94, 0x45, 0x75, 0xB5, 0xB6,
  1238. 0x47, 0x87, 0xB7, 0xC7, 0x58, 0x68, 0x78, 0xA8, 0xB8, 0xC8, 0x39, 0x69,
  1239. 0x89, 0xA9, 0xB9, 0xC9, 0xD9, 0x2A, 0x5A, 0x6A, 0x7A, 0x9A, 0xAA, 0x3B,
  1240. 0x4B, 0x5B, 0x6B, 0x8B, 0x9B, 0xAB, 0xBB, 0xCB, 0x6C, 0x9C, 0xDC, 0xFC,
  1241. 0xCD, 0xED, 0xAE, 0xDE,
  1242. /* Table set B, code table 6, wordlen 7 - 63 entries */
  1243. 0x00, 0x01, 0x3F, 0x3E, 0x02, 0x03, 0x3C, 0x3D, 0x04, 0x05, 0x06, 0x07,
  1244. 0x39, 0x3A, 0x3B, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x34, 0x35, 0x36, 0x37,
  1245. 0x38, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x19, 0x1A, 0x1B, 0x1C, 0x1D,
  1246. 0x1E, 0x1F, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x2E, 0x2F, 0x30,
  1247. 0x31, 0x32, 0x33, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x28, 0x29, 0x2A,
  1248. 0x2B, 0x2C, 0x2D,
  1249. /* Table set B, code table 7, wordlen 1 - 81 entries */
  1250. 0x00, 0x03, 0x40, 0xC0, 0x10, 0x30, 0x04, 0x0C, 0x01, 0x50, 0xD0, 0x70,
  1251. 0xF0, 0xC4, 0x14, 0x34, 0x4C, 0x1C, 0x3C, 0xC1, 0x11, 0x31, 0x05, 0x0D,
  1252. 0x13, 0x33, 0x07, 0x0F, 0x44, 0xCC, 0x41, 0x43, 0xC3, 0x54, 0x74, 0xDC,
  1253. 0xFC, 0xF1, 0xC5, 0x15, 0x1D, 0x53, 0xC7, 0x37, 0x4F, 0x3F, 0xD4, 0xF4,
  1254. 0x5C, 0x7C, 0x51, 0xD1, 0x71, 0x45, 0x55, 0x35, 0x4D, 0xCD, 0xDD, 0x3D,
  1255. 0xD3, 0x73, 0xF3, 0x47, 0x17, 0x77, 0xCF, 0x1F, 0xFF, 0xD5, 0x75, 0xF5,
  1256. 0x5D, 0x7D, 0xFD, 0x57, 0xD7, 0xF7, 0x5F, 0xDF, 0x7F,
  1257. /* Table set B, code table 7, wordlen 3 - 256 entries */
  1258. 0x00, 0x40, 0x10, 0x04, 0x01, 0x05, 0x50, 0x14, 0x54, 0x41, 0x11, 0x51,
  1259. 0x45, 0x15, 0x55, 0x44, 0x95, 0x6A, 0x03, 0x80, 0xC0, 0x90, 0xD0, 0x94,
  1260. 0xD4, 0x24, 0x64, 0x58, 0x91, 0xA1, 0x85, 0xD5, 0x25, 0x65, 0xA5, 0xE5,
  1261. 0x75, 0xB5, 0xF5, 0x19, 0x59, 0x99, 0xD9, 0x69, 0xA9, 0xE9, 0x79, 0xB9,
  1262. 0xF9, 0x4D, 0x5D, 0x9D, 0xDD, 0x6D, 0xAD, 0xED, 0x7D, 0xBD, 0xFD, 0x02,
  1263. 0x42, 0x52, 0x06, 0x46, 0x16, 0x56, 0x96, 0xD6, 0x26, 0x66, 0xA6, 0xE6,
  1264. 0x76, 0xB6, 0xF6, 0x1A, 0x5A, 0x9A, 0xDA, 0xAA, 0xEA, 0x7A, 0xBA, 0xFA,
  1265. 0x5E, 0x9E, 0xDE, 0x6E, 0xAE, 0xEE, 0x7E, 0xBE, 0xFE, 0x07, 0x47, 0x57,
  1266. 0x97, 0xD7, 0x67, 0xA7, 0xE7, 0x77, 0xB7, 0xF7, 0x5B, 0x9B, 0xDB, 0x6B,
  1267. 0xAB, 0xEB, 0x7B, 0xBB, 0xFB, 0x5F, 0x9F, 0xDF, 0x6F, 0xAF, 0xEF, 0x7F,
  1268. 0xBF, 0xFF, 0x20, 0x60, 0x70, 0xB0, 0xF0, 0x84, 0xC4, 0xA4, 0xE4, 0x74,
  1269. 0xB4, 0xF4, 0x08, 0x88, 0x18, 0x98, 0xD8, 0x68, 0xA8, 0xE8, 0x78, 0xB8,
  1270. 0xF8, 0x1C, 0x5C, 0x9C, 0xDC, 0x6C, 0xAC, 0xEC, 0x3C, 0x7C, 0xBC, 0xFC,
  1271. 0x81, 0xD1, 0x21, 0x61, 0xE1, 0x71, 0xB1, 0xF1, 0xC5, 0x35, 0x09, 0x49,
  1272. 0x89, 0xC9, 0x29, 0x39, 0x0D, 0x8D, 0xCD, 0x1D, 0x2D, 0x3D, 0x92, 0xD2,
  1273. 0x22, 0x62, 0xA2, 0xE2, 0x72, 0xB2, 0xF2, 0x86, 0xC6, 0x36, 0x0A, 0x4A,
  1274. 0x8A, 0xCA, 0x2A, 0x3A, 0x0E, 0x4E, 0x8E, 0xCE, 0x1E, 0x2E, 0x3E, 0x13,
  1275. 0x53, 0x93, 0xD3, 0x63, 0xA3, 0xE3, 0x73, 0xB3, 0xF3, 0x87, 0xC7, 0x17,
  1276. 0x27, 0x37, 0x0B, 0x4B, 0x8B, 0xCB, 0x1B, 0x2B, 0x3B, 0x0F, 0x4F, 0x8F,
  1277. 0xCF, 0x1F, 0x2F, 0x3F, 0xA0, 0xE0, 0x30, 0x34, 0x48, 0xC8, 0x28, 0x38,
  1278. 0x0C, 0x4C, 0x8C, 0xCC, 0x2C, 0xC1, 0x31, 0x82, 0xC2, 0x12, 0x32, 0x43,
  1279. 0x83, 0xC3, 0x23, 0x33,
  1280. /* Table set B, code table 7, wordlen 4 - 11 entries */
  1281. 0x00, 0x01, 0x0F, 0x02, 0x0E, 0x05, 0x0D, 0x03, 0x04, 0x0B, 0x0C,
  1282. /* Table set B, code table 7, wordlen 5 - 225 entries */
  1283. 0x00, 0x10, 0xF0, 0x01, 0x0F, 0x20, 0xE0, 0x11, 0xF1, 0x02, 0x0E, 0x1F,
  1284. 0xFF, 0xD0, 0x21, 0xE1, 0x12, 0xF2, 0x03, 0x0D, 0x1E, 0xFE, 0x2F, 0xEF,
  1285. 0x30, 0x40, 0x60, 0x70, 0x90, 0xA0, 0xC0, 0x31, 0xD1, 0x22, 0xE2, 0x13,
  1286. 0xF3, 0x04, 0x06, 0x07, 0x09, 0x0C, 0x1D, 0xFD, 0x2E, 0xEE, 0x3F, 0xDF,
  1287. 0x50, 0xB0, 0x41, 0x61, 0x71, 0x91, 0xA1, 0xC1, 0x32, 0x62, 0x72, 0x92,
  1288. 0xA2, 0xD2, 0x23, 0xD3, 0xE3, 0x14, 0xF4, 0x05, 0x16, 0x26, 0xE6, 0xF6,
  1289. 0x17, 0x27, 0xE7, 0xF7, 0x19, 0x29, 0xF9, 0x0A, 0x1A, 0x2A, 0xFA, 0x0B,
  1290. 0x1C, 0x2C, 0xFC, 0x2D, 0x3D, 0xED, 0x3E, 0x4E, 0x7E, 0x9E, 0xDE, 0x4F,
  1291. 0x6F, 0x7F, 0x9F, 0xAF, 0xCF, 0x51, 0xB1, 0x42, 0x52, 0xB2, 0xC2, 0x33,
  1292. 0x63, 0x73, 0x93, 0xA3, 0xB3, 0xC3, 0x24, 0x34, 0x74, 0xA4, 0xD4, 0xE4,
  1293. 0x15, 0x25, 0x65, 0x95, 0xE5, 0xF5, 0x36, 0xD6, 0x37, 0x47, 0xC7, 0xD7,
  1294. 0x39, 0x59, 0xB9, 0xC9, 0xD9, 0xE9, 0x3A, 0x6A, 0xDA, 0xEA, 0x1B, 0x2B,
  1295. 0x9B, 0xAB, 0xEB, 0xFB, 0x6C, 0x7C, 0x9C, 0xAC, 0xEC, 0x4D, 0x6D, 0x7D,
  1296. 0x9D, 0xAD, 0xBD, 0xDD, 0x5E, 0x6E, 0xAE, 0xCE, 0x5F, 0x43, 0x53, 0x44,
  1297. 0x54, 0x64, 0x94, 0xB4, 0xC4, 0x35, 0x45, 0x55, 0x75, 0xA5, 0xB5, 0xC5,
  1298. 0xD5, 0x46, 0x56, 0x66, 0x76, 0x96, 0xA6, 0xB6, 0xC6, 0x57, 0x67, 0x77,
  1299. 0x97, 0xA7, 0xB7, 0x49, 0x69, 0x79, 0x99, 0xA9, 0x4A, 0x5A, 0x7A, 0x9A,
  1300. 0xAA, 0xBA, 0xCA, 0x3B, 0x4B, 0x5B, 0x6B, 0x7B, 0xBB, 0xCB, 0xDB, 0x3C,
  1301. 0x4C, 0x5C, 0xBC, 0xCC, 0xDC, 0x5D, 0xCD, 0xBE, 0xBF,
  1302. /* Table set B, code table 7, wordlen 7 - 63 entries */
  1303. 0x00, 0x01, 0x02, 0x3E, 0x3F, 0x03, 0x04, 0x05, 0x3B, 0x3C, 0x3D, 0x06,
  1304. 0x07, 0x08, 0x09, 0x0A, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x0B, 0x0C, 0x0D,
  1305. 0x0E, 0x0F, 0x10, 0x2F, 0x31, 0x32, 0x33, 0x34, 0x35, 0x11, 0x12, 0x13,
  1306. 0x14, 0x2D, 0x2E, 0x30, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x25,
  1307. 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x1C, 0x1D, 0x1E, 0x23, 0x1F,
  1308. 0x21, 0x22, 0x24,
  1309. /* Table set B, code table 7, wordlen 7 - 8 entries */
  1310. 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
  1311. /* Table set B, code table 7, wordlen 7 - 8 entries */
  1312. 0x00, 0x01, 0x07, 0x02, 0x06, 0x03, 0x04, 0x05,
  1313. /* Table set B, code table 7, wordlen 7 - 16 entries */
  1314. 0x07, 0x05, 0x08, 0x06, 0x09, 0x04, 0x0A, 0x0B, 0x00, 0x01, 0x02, 0x03,
  1315. 0x0C, 0x0D, 0x0E, 0x0F,
  1316. /* Table set B, code table 7, wordlen 7 - 15 entries */
  1317. 0x0F, 0x0E, 0x01, 0x0D, 0x02, 0x03, 0x0C, 0x04, 0x05, 0x06, 0x07, 0x08,
  1318. 0x09, 0x0A, 0x0B,
  1319. /* Table set B, code table 7, wordlen 7 - 16 entries */
  1320. 0x00, 0x01, 0x0E, 0x0F, 0x02, 0x0D, 0x03, 0x0C, 0x04, 0x05, 0x06, 0x07,
  1321. 0x08, 0x09, 0x0A, 0x0B,
  1322. /* Table set B, code table 7, wordlen 7 - 16 entries */
  1323. 0x00, 0x01, 0x0F, 0x0E, 0x02, 0x0D, 0x03, 0x0C, 0x04, 0x05, 0x06, 0x07,
  1324. 0x08, 0x09, 0x0A, 0x0B,
  1325. /* Table set B, code table 7, wordlen 7 - 32 entries */
  1326. 0x00, 0x01, 0x1F, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x1A, 0x1B, 0x1C,
  1327. 0x1D, 0x1E, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11,
  1328. 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19,
  1329. /* Table set B, code table 7, wordlen 7 - 31 entries */
  1330. 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C,
  1331. 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,
  1332. 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
  1333. /* Table set B, code table 7, wordlen 7 - 32 entries */
  1334. 0x00, 0x1C, 0x1D, 0x01, 0x02, 0x03, 0x04, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
  1335. 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B,
  1336. 0x1E, 0x1F, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A,
  1337. /* Table set B, code table 7, wordlen 7 - 31 entries */
  1338. 0x02, 0x03, 0x04, 0x05, 0x06, 0x01, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C,
  1339. 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,
  1340. 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
  1341. /* Table set B, code table 7, wordlen 7 - 32 entries */
  1342. 0x00, 0x01, 0x02, 0x1F, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x1D, 0x1E,
  1343. 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14,
  1344. 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C,
  1345. /* Table set B, code table 7, wordlen 7 - 16 entries */
  1346. 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B,
  1347. 0x0C, 0x0D, 0x0E, 0x0F,
  1348. /* Table set B, code table 7, wordlen 7 - 8 entries */
  1349. 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
  1350. /* Table set B, code table 7, wordlen 7 - 8 entries */
  1351. 0x00, 0x01, 0x07, 0x02, 0x03, 0x04, 0x05, 0x06,
  1352. /* Table set B, code table 7, wordlen 7 - 32 entries */
  1353. 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x05, 0x06,
  1354. 0x07, 0x12, 0x13, 0x14, 0x15, 0x16, 0x04, 0x17, 0x18, 0x19, 0x1A, 0x1B,
  1355. 0x00, 0x01, 0x02, 0x03, 0x1C, 0x1D, 0x1E, 0x1F,
  1356. /* Table set B, code table 7, wordlen 7 - 32 entries */
  1357. 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x0E,
  1358. 0x0F, 0x10, 0x11, 0x1D, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x1E, 0x04, 0x05,
  1359. 0x06, 0x07, 0x08, 0x1F, 0x00, 0x01, 0x02, 0x03,
  1360. /* Table set B, code table 7, wordlen 7 - 32 entries */
  1361. 0x00, 0x01, 0x02, 0x1F, 0x03, 0x1D, 0x1E, 0x04, 0x05, 0x06, 0x1B, 0x1C,
  1362. 0x07, 0x18, 0x19, 0x1A, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
  1363. 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
  1364. /* Table set B, code table 7, wordlen 7 - 256 entries */
  1365. 0x00, 0x01, 0xFF, 0x02, 0xFE, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0xFB,
  1366. 0xFC, 0xFD, 0x09, 0x0A, 0x0B, 0x0C, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0x0D,
  1367. 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19,
  1368. 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25,
  1369. 0x26, 0xF3, 0xF4, 0xF5, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E,
  1370. 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A,
  1371. 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46,
  1372. 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52,
  1373. 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0xC2,
  1374. 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE,
  1375. 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA,
  1376. 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6,
  1377. 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2,
  1378. 0x5E, 0x5F, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
  1379. 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75,
  1380. 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, 0x80, 0x81,
  1381. 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D,
  1382. 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99,
  1383. 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5,
  1384. 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1,
  1385. 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD,
  1386. 0xBE, 0xBF, 0xC0, 0xC1,
  1387. };
  1388. /** Tables for spectrum coding. */
  1389. typedef struct Atrac3pSpecCodeTab {
  1390. uint8_t group_size; ///< number of coefficients grouped together
  1391. uint8_t num_coeffs; ///< 1 - map index to a single value, > 1 - map index to a vector of values
  1392. uint8_t bits; ///< number of bits a single coefficient occupy
  1393. uint8_t is_signed; ///< 1 - values in that table are signed ones, otherwise - absolute ones
  1394. } Atrac3pSpecCodeTab;
  1395. static const Atrac3pSpecCodeTab atrac3p_spectra_tabs[112] = {
  1396. /* table set = A */
  1397. /* code table = 0 */
  1398. { 1, 4, 2, 1 }, // wordlen = 1
  1399. { 1, 4, 2, 0 }, // wordlen = 2
  1400. { 1, 2, 3, 1 }, // wordlen = 3
  1401. { 1, 1, 3, 0 }, // wordlen = 4
  1402. { 1, 2, 4, 1 }, // wordlen = 5
  1403. { 1, 1, 4, 0 }, // wordlen = 6
  1404. { 1, 1, 6, 1 }, // wordlen = 7
  1405. /* code table = 1 */
  1406. { 4, 4, 2, 1 }, // wordlen = 1
  1407. { 1, 4, 2, 0 }, // wordlen = 2
  1408. { 1, 2, 3, 1 }, // wordlen = 3
  1409. { 1, 2, 4, 1 }, // wordlen = 4
  1410. { 1, 2, 4, 1 }, // wordlen = 5
  1411. { 1, 2, 4, 0 }, // wordlen = 6
  1412. { 1, 1, 6, 1 }, // wordlen = 7
  1413. /* code table = 2 */
  1414. { 1, 4, 2, 1 }, // wordlen = 1
  1415. { 1, 2, 3, 1 }, // wordlen = 2
  1416. { 1, 2, 3, 1 }, // wordlen = 3
  1417. { 1, 1, 3, 0 }, // wordlen = 4
  1418. { 1, 1, 3, 0 }, // wordlen = 5
  1419. { 1, 2, 4, 0 }, // wordlen = 6
  1420. { 1, 1, 6, 1 }, // wordlen = 7
  1421. /* code table = 3 */
  1422. { 1, 2, 2, 1 }, // wordlen = 1
  1423. { 1, 4, 2, 0 }, // wordlen = 2
  1424. { 1, 4, 2, 0 }, // wordlen = 3
  1425. { 1, 1, 3, 0 }, // wordlen = 4
  1426. { 1, 2, 4, 1 }, // wordlen = 5
  1427. { 1, 2, 4, 0 }, // wordlen = 6
  1428. { 1, 1, 6, 1 }, // wordlen = 7
  1429. /* code table = 4 */
  1430. { 1, 4, 2, 1 }, // wordlen = 1
  1431. { 1, 4, 2, 0 }, // wordlen = 2
  1432. { 1, 1, 3, 1 }, // wordlen = 3
  1433. { 1, 2, 4, 1 }, // wordlen = 4
  1434. { 1, 1, 3, 0 }, // wordlen = 5
  1435. { 1, 2, 4, 0 }, // wordlen = 6
  1436. { 1, 1, 6, 1 }, // wordlen = 7
  1437. /* code table = 5 */
  1438. { 1, 4, 2, 1 }, // wordlen = 1
  1439. { 1, 2, 3, 1 }, // wordlen = 2
  1440. { 1, 1, 3, 1 }, // wordlen = 3
  1441. { 1, 2, 4, 1 }, // wordlen = 4
  1442. { 1, 1, 3, 0 }, // wordlen = 5
  1443. { 1, 1, 5, 1 }, // wordlen = 6
  1444. { 1, 1, 6, 1 }, // wordlen = 7
  1445. /* code table = 6 */
  1446. { 2, 4, 2, 1 }, // wordlen = 1
  1447. { 1, 2, 3, 1 }, // wordlen = 2
  1448. { 1, 4, 2, 0 }, // wordlen = 3
  1449. { 1, 2, 4, 1 }, // wordlen = 4
  1450. { 1, 1, 4, 1 }, // wordlen = 5
  1451. { 1, 1, 5, 1 }, // wordlen = 6
  1452. { 1, 1, 6, 1 }, // wordlen = 7
  1453. /* code table = 7 */
  1454. { 1, 2, 1, 0 }, // wordlen = 1
  1455. { 2, 4, 2, 0 }, // wordlen = 2
  1456. { 1, 2, 3, 1 }, // wordlen = 3
  1457. { 1, 2, 4, 1 }, // wordlen = 4
  1458. { 1, 1, 4, 1 }, // wordlen = 5
  1459. { 2, 2, 4, 0 }, // wordlen = 6
  1460. { 4, 1, 6, 1 }, // wordlen = 7
  1461. /* table set = B */
  1462. /* code table = 0 */
  1463. { 4, 4, 2, 1 }, // wordlen = 1
  1464. { 1, 4, 2, 0 }, // wordlen = 2
  1465. { 4, 2, 3, 1 }, // wordlen = 3
  1466. { 1, 2, 4, 1 }, // wordlen = 4
  1467. { 1, 2, 4, 1 }, // wordlen = 5
  1468. { 1, 1, 4, 0 }, // wordlen = 6
  1469. { 1, 1, 6, 1 }, // wordlen = 7
  1470. /* code table = 1 */
  1471. { 1, 4, 2, 1 }, // wordlen = 1
  1472. { 1, 4, 2, 0 }, // wordlen = 2
  1473. { 1, 2, 3, 1 }, // wordlen = 3
  1474. { 1, 2, 4, 1 }, // wordlen = 4
  1475. { 1, 2, 4, 1 }, // wordlen = 5
  1476. { 1, 2, 4, 0 }, // wordlen = 6
  1477. { 1, 1, 6, 1 }, // wordlen = 7
  1478. /* code table = 2 */
  1479. { 4, 4, 2, 1 }, // wordlen = 1
  1480. { 4, 4, 2, 0 }, // wordlen = 2
  1481. { 1, 2, 3, 1 }, // wordlen = 3
  1482. { 1, 2, 4, 1 }, // wordlen = 4
  1483. { 2, 2, 4, 1 }, // wordlen = 5
  1484. { 2, 2, 4, 0 }, // wordlen = 6
  1485. { 4, 1, 6, 1 }, // wordlen = 7
  1486. /* code table = 3 */
  1487. { 1, 4, 2, 1 }, // wordlen = 1
  1488. { 1, 4, 2, 0 }, // wordlen = 2
  1489. { 1, 4, 2, 0 }, // wordlen = 3
  1490. { 2, 2, 4, 1 }, // wordlen = 4
  1491. { 1, 2, 4, 1 }, // wordlen = 5
  1492. { 1, 2, 4, 0 }, // wordlen = 6
  1493. { 1, 1, 6, 1 }, // wordlen = 7
  1494. /* code table = 4 */
  1495. { 1, 4, 2, 1 }, // wordlen = 1
  1496. { 4, 2, 3, 1 }, // wordlen = 2
  1497. { 1, 2, 3, 1 }, // wordlen = 3
  1498. { 4, 2, 4, 1 }, // wordlen = 4
  1499. { 1, 1, 3, 0 }, // wordlen = 5
  1500. { 1, 2, 4, 0 }, // wordlen = 6
  1501. { 1, 1, 6, 1 }, // wordlen = 7
  1502. /* code table = 5 */
  1503. { 2, 4, 2, 1 }, // wordlen = 1
  1504. { 1, 2, 3, 1 }, // wordlen = 2
  1505. { 4, 1, 3, 1 }, // wordlen = 3
  1506. { 1, 1, 3, 0 }, // wordlen = 4
  1507. { 1, 1, 3, 0 }, // wordlen = 5
  1508. { 1, 1, 5, 1 }, // wordlen = 6
  1509. { 2, 1, 6, 1 }, // wordlen = 7
  1510. /* code table = 6 */
  1511. { 1, 4, 2, 1 }, // wordlen = 1
  1512. { 1, 4, 2, 0 }, // wordlen = 2
  1513. { 1, 1, 3, 1 }, // wordlen = 3
  1514. { 1, 1, 3, 0 }, // wordlen = 4
  1515. { 4, 2, 4, 1 }, // wordlen = 5
  1516. { 1, 2, 4, 0 }, // wordlen = 6
  1517. { 1, 1, 6, 1 }, // wordlen = 7
  1518. /* code table = 7 */
  1519. { 1, 4, 2, 1 }, // wordlen = 1
  1520. { 4, 4, 2, 0 }, // wordlen = 2
  1521. { 4, 4, 2, 0 }, // wordlen = 3
  1522. { 1, 1, 4, 1 }, // wordlen = 4
  1523. { 1, 2, 4, 1 }, // wordlen = 5
  1524. { 1, 1, 5, 1 }, // wordlen = 6
  1525. { 1, 1, 6, 1 }, // wordlen = 7
  1526. };
  1527. /* Huffman tables for gain control data. */
  1528. static const uint8_t atrac3p_gain_cbs[][12] = {
  1529. { 1, 1, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0 },
  1530. { 1, 1, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0 },
  1531. { 1, 0, 2, 2, 1, 2, 8, 0, 0, 0, 0, 0 },
  1532. { 1, 1, 1, 1, 1, 0, 2, 0, 8, 0, 0, 0 },
  1533. { 1, 0, 3, 1, 1, 0, 2, 0, 8, 0, 0, 0 },
  1534. { 1, 1, 1, 1, 1, 0, 1, 2, 8, 0, 0, 0 },
  1535. { 0, 1, 0, 2, 11, 18, 0, 0, 0, 0, 0, 0 },
  1536. { 0, 1, 2, 4, 4, 4, 0, 16, 0, 0, 0, 0 },
  1537. { 0, 0, 0, 3, 23, 6, 0, 0, 0, 0, 0, 0 },
  1538. { 0, 0, 5, 3, 2, 3, 2, 16, 0, 0, 0, 0 },
  1539. { 1, 0, 0, 3, 2, 6, 20, 0, 0, 0, 0, 0 },
  1540. };
  1541. static const uint8_t atrac3p_gain_xlats[] = {
  1542. /* Number of gain control points 1 - 8 entries */
  1543. 0, 1, 2, 3, 4, 5, 6, 7,
  1544. /* Number of gain control points 2 - 8 entries */
  1545. 0, 1, 7, 2, 6, 3, 4, 5,
  1546. /* Gain compensation level 1 - 16 entries */
  1547. 7, 5, 8, 6, 9, 4, 10, 11, 0, 1, 2, 3, 12, 13, 14, 15,
  1548. /* Gain compensation level 2 - 15 entries */
  1549. 15, 14, 1, 13, 2, 3, 12, 4, 5, 6, 7, 8, 9, 10, 11,
  1550. /* Gain compensation level 3 - 16 entries */
  1551. 0, 1, 14, 15, 2, 13, 3, 12, 4, 5, 6, 7, 8, 9, 10, 11,
  1552. /* Gain compensation level 4 - 16 entries */
  1553. 0, 1, 15, 14, 2, 13, 3, 12, 4, 5, 6, 7, 8, 9, 10, 11,
  1554. /* Gain compensation location 3 - 32 entries */
  1555. 0, 1, 31, 2, 3, 4, 5, 6, 7, 26, 27, 28, 29, 30, 8, 9, 10, 11, 12,
  1556. 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
  1557. /* Gain compensation location 1 - 31 entries */
  1558. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
  1559. 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
  1560. /* Gain compensation location 4 - 32 entries */
  1561. 0, 28, 29, 1, 2, 3, 4, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
  1562. 23, 24, 25, 26, 27, 30, 31, 5, 6, 7, 8, 9, 10,
  1563. /* Gain compensation location 2 - 31 entries */
  1564. 2, 3, 4, 5, 6, 1, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
  1565. 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
  1566. /* Gain compensation location 5 - 32 entries */
  1567. 0, 1, 2, 31, 3, 4, 5, 6, 7, 8, 29, 30, 9, 10, 11, 12, 13, 14, 15,
  1568. 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
  1569. };
  1570. /* Huffman tables for GHA waves data. */
  1571. static const uint8_t atrac3p_tone_cbs[][12] = {
  1572. { 1, 0, 1, 2, 4, 8, 0, 0, 0, 0, 0, 0 },
  1573. { 1, 1, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0 },
  1574. { 1, 1, 1, 1, 0, 4, 0, 0, 0, 0, 0, 0 },
  1575. { 0, 0, 0, 10, 8, 6, 0, 8, 0, 0, 0, 0 },
  1576. { 0, 0, 0, 11, 5, 6, 6, 4, 0, 0, 0, 0 },
  1577. { 0, 1, 3, 3, 1, 4, 4, 16, 0, 0, 0, 0 },
  1578. { 1, 0, 0, 2, 2, 0, 9, 9, 29,104, 100, 0 },
  1579. };
  1580. static const uint8_t atrac3p_tone_xlats[] = {
  1581. /* Number of tone bands - 16 entries */
  1582. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
  1583. 15,
  1584. /* Number of tones 1 - 8 entries */
  1585. 0, 1, 2, 3, 4, 5, 6, 7,
  1586. /* Number of tones 2 - 8 entries */
  1587. 0, 1, 7, 2, 3, 4, 5, 6,
  1588. /* Amplitude information 1 - 32 entries */
  1589. 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 5, 6, 7, 18, 19,
  1590. 20, 21, 22, 4, 23, 24, 25, 26, 27, 0, 1, 2, 3, 28, 29,
  1591. 30, 31,
  1592. /* Amplitude information 2 - 32 entries */
  1593. 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 14, 15, 16, 17,
  1594. 29, 9, 10, 11, 12, 13, 30, 4, 5, 6, 7, 8, 31, 0, 1,
  1595. 2, 3,
  1596. /* Amplitude information 3 - 32 entries */
  1597. 0, 1, 2, 31, 3, 29, 30, 4, 5, 6, 27, 28, 7, 24, 25,
  1598. 26, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
  1599. 22, 23,
  1600. /* Frequencies - 256 entries */
  1601. 0, 1, 255, 2, 254, 3, 4, 5, 6, 7, 8, 251, 252, 253, 9,
  1602. 10, 11, 12, 246, 247, 248, 249, 250, 13, 14, 15, 16, 17, 18, 19,
  1603. 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
  1604. 35, 36, 37, 38, 243, 244, 245, 39, 40, 41, 42, 43, 44, 45, 46,
  1605. 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
  1606. 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
  1607. 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
  1608. 92, 93, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
  1609. 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
  1610. 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
  1611. 237, 238, 239, 240, 241, 242, 94, 95, 96, 97, 98, 99, 100, 101, 102,
  1612. 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
  1613. 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
  1614. 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
  1615. 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
  1616. 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
  1617. 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
  1618. 193,
  1619. };
  1620. #endif /* AVCODEC_ATRAC3PLUS_DATA_H */