FARGOS/VISTA Object Management Environment Core  ..
FARGOS/VISTA Object Management Environment Core Table of Contents
text2int_tbl.h
Go to the documentation of this file.
1 #ifndef _TEXT2INT_TBL_H_
2 #define _TEXT2INT_TBL_H_ "$Id: text2int_tbl.h 454 2020-07-23 20:22:23Z geoff $"
4 
6 /* Copyright (C) 2010 - 2020 FARGOS Development, LLC
7  * Author: Geoff Carpenter -- http://www.fargos.net/gcc.html
8  */
9 
27 #include <stdint.h>
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32 
37 const uint32_t powersOf10[10] = {
38  1, 10, 100, 1000, 10000, 100000,
39  1000000, 10000000, 100000000, 1000000000U
40 };
41 
46 const uint64_t powersOf10_64bit[16] = {
47  1, 10, 100, 1000, 10000, 100000,
48  1000000, 10000000, 100000000, 1000000000U,
49  static_cast<uint64_t>(1000000000U) * 10,
50  static_cast<uint64_t>(1000000000U) * 100,
51  static_cast<uint64_t>(1000000000U) * 1000,
52  static_cast<uint64_t>(1000000000U) * 10000,
53  static_cast<uint64_t>(1000000000U) * 100000,
54  static_cast<uint64_t>(1000000000U) * 1000000
55 };
56 
61 const double floatingPowersOf10[10] = {
62  1, 10, 100, 1000, 10000, 100000,
63  1000000, 10000000, 100000000, 1000000000
64 };
65 
66 
75 const double reciprocalPowersOf10[16] = {
76  1, 0.1, 0.01, 0.001, 0.0001,
77  0.00001, 0.000001, 0.0000001,
78  0.00000001, 0.000000001,
79  0.0000000001,
80  0.00000000001,
81  0.000000000001,
82  0.0000000000001,
83  0.00000000000001,
84  0.000000000000001,
85 };
86 
87 
95 const uint32_t text2int_table[256][10] = {
96  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 0 */
97  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 1 */
98  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 2 */
99  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 3 */
100  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 4 */
101  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 5 */
102  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 6 */
103  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 7 */
104  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 8 */
105  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 9 */
106  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 10 */
107  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 11 */
108  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 12 */
109  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 13 */
110  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 14 */
111  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 15 */
112  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 16 */
113  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 17 */
114  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 18 */
115  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 19 */
116  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 20 */
117  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 21 */
118  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 22 */
119  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 23 */
120  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 24 */
121  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 25 */
122  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 26 */
123  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 27 */
124  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 28 */
125  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 29 */
126  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 30 */
127  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 31 */
128  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 32 */
129  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 33 */
130  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 34 */
131  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 35 */
132  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 36 */
133  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 37 */
134  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 38 */
135  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 39 */
136  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 40 */
137  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 41 */
138  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 42 */
139  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 43 */
140  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 44 */
141  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 45 */
142  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 46 */
143  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 47 */
144  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 48 = "0"*/
145  {
146  1, 10, 100, 1000, 10000, 100000, /* 49 = "1"*/
147  1000000, 10000000, 100000000, 1000000000U
148  },
149  {
150  2, 20, 200, 2000, 20000, 200000, /* 50 = "2"*/
151  2000000, 20000000, 200000000, 2000000000U
152  },
153  {
154  3, 30, 300, 3000, 30000, 300000, /* 51 = "3"*/
155  3000000, 30000000, 300000000, 3000000000U
156  },
157  {
158  4, 40, 400, 4000, 40000, 400000, /* 52 = "4"*/
159  4000000, 40000000, 400000000, 4000000000U
160  },
161  {
162  5, 50, 500, 5000, 50000, 500000, /* 53 = "5"*/
163  5000000, 50000000, 500000000, ~0U
164  },
165  {
166  6, 60, 600, 6000, 60000, 600000, /* 54 = "6"*/
167  6000000, 60000000, 600000000, ~0U
168  },
169  {
170  7, 70, 700, 7000, 70000, 700000, /* 55 = "7"*/
171  7000000, 70000000, 700000000, ~0U
172  },
173  {
174  8, 80, 800, 8000, 80000, 800000, /* 56 = "8"*/
175  8000000, 80000000, 800000000, ~0U
176  },
177  {
178  9, 90, 900, 9000, 90000, 900000, /* 57 = "9"*/
179  9000000, 90000000, 900000000, ~0U
180  },
181  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 58 */
182  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 59 */
183  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 60 */
184  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 61 */
185  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 62 */
186  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 63 */
187  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 64 */
188  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 65 */
189  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 66 */
190  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 67 */
191  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 68 */
192  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 69 */
193  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 70 */
194  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 71 */
195  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 72 */
196  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 73 */
197  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 74 */
198  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 75 */
199  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 76 */
200  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 77 */
201  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 78 */
202  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 79 */
203  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 80 */
204  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 81 */
205  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 82 */
206  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 83 */
207  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 84 */
208  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 85 */
209  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 86 */
210  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 87 */
211  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 88 */
212  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 89 */
213  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 90 */
214  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 91 */
215  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 92 */
216  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 93 */
217  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 94 */
218  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 95 */
219  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 96 */
220  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 97 */
221  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 98 */
222  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 99 */
223  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 100 */
224  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 101 */
225  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 102 */
226  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 103 */
227  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 104 */
228  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 105 */
229  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 106 */
230  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 107 */
231  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 108 */
232  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 109 */
233  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 110 */
234  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 111 */
235  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 112 */
236  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 113 */
237  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 114 */
238  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 115 */
239  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 116 */
240  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 117 */
241  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 118 */
242  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 119 */
243  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 120 */
244  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 101 */
245  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 122 */
246  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 123 */
247  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 124 */
248  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 125 */
249  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 126 */
250  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 127 */
251  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 128 */
252  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 129 */
253  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 130 */
254  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 131 */
255  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 132 */
256  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 133 */
257  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 134 */
258  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 135 */
259  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 136 */
260  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 137 */
261  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 138 */
262  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 139 */
263  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 140 */
264  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 141 */
265  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 142 */
266  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 143 */
267  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 144 */
268  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 145 */
269  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 146 */
270  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 147 */
271  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 148 */
272  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 149 */
273  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 150 */
274  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 151 */
275  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 152 */
276  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 153 */
277  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 154 */
278  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 155 */
279  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 156 */
280  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 157 */
281  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 158 */
282  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 159 */
283  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 160 */
284  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 161 */
285  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 162 */
286  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 163 */
287  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 164 */
288  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 165 */
289  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 166 */
290  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 167 */
291  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 168 */
292  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 169 */
293  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 170 */
294  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 171 */
295  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 172 */
296  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 173 */
297  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 174 */
298  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 175 */
299  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 176 */
300  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 177 */
301  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 178 */
302  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 179 */
303  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 180 */
304  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 181 */
305  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 182 */
306  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 183 */
307  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 184 */
308  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 185 */
309  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 186 */
310  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 187 */
311  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 188 */
312  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 189 */
313  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 190 */
314  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 191 */
315  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 192 */
316  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 193 */
317  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 194 */
318  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 195 */
319  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 196 */
320  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 197 */
321  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 198 */
322  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 199 */
323  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 200 */
324  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 201 */
325  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 202 */
326  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 203 */
327  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 204 */
328  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 205 */
329  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 206 */
330  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 207 */
331  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 208 */
332  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 209 */
333  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 210 */
334  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 211 */
335  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 212 */
336  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 213 */
337  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 214 */
338  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 215 */
339  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 216 */
340  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 217 */
341  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 218 */
342  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 219 */
343  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 220 */
344  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 201 */
345  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 222 */
346  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 223 */
347  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 224 */
348  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 225 */
349  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 226 */
350  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 227 */
351  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 228 */
352  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 229 */
353  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 230 */
354  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 231 */
355  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 232 */
356  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 233 */
357  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 234 */
358  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 235 */
359  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 236 */
360  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 237 */
361  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 238 */
362  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 239 */
363  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 240 */
364  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 241 */
365  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 242 */
366  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 243 */
367  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 244 */
368  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 245 */
369  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 246 */
370  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 247 */
371  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 248 */
372  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 249 */
373  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 250 */
374  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 251 */
375  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 252 */
376  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 253 */
377  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* 254 */
378  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } /* 255 */
379 };
380 
384 const uint64_t text2int64_table[256][20] = {
385  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 0 */
386  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 1 */
387  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 2 */
388  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 3 */
389  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 4 */
390  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 5 */
391  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 6 */
392  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 7 */
393  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 8 */
394  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 9 */
395  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 10 */
396  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 11 */
397  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 12 */
398  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 13 */
399  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 14 */
400  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 15 */
401  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 16 */
402  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 17 */
403  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 18 */
404  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 19 */
405  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 20 */
406  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 21 */
407  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 22 */
408  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 23 */
409  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 24 */
410  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 25 */
411  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 26 */
412  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 27 */
413  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 28 */
414  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 29 */
415  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 30 */
416  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 31 */
417  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 32 */
418  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 33 */
419  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 34 */
420  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 35 */
421  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 36 */
422  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 37 */
423  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 38 */
424  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 39 */
425  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 40 */
426  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 41 */
427  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 42 */
428  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 43 */
429  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 44 */
430  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 45 */
431  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 46 */
432  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 47 */
433  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 48 */
434  {
435  1, 10, 100, 1000, 10000, 100000, /* 49 = '1' */
436  1000000, 10000000, 100000000, 1000000000,
437  10000000000U, 100000000000U, 1000000000000U, 10000000000000U,
438  100000000000000U, 1000000000000000U, 10000000000000000U,
439  100000000000000000U, 1000000000000000000U, 10000000000000000000U
440  },
441  {
442  2, 20, 200, 2000, 20000, 200000, /* 50 = '2' */
443  2000000, 20000000, 200000000, 2000000000U,
444  20000000000U, 200000000000U, 2000000000000U, 20000000000000U,
445  200000000000000U, 2000000000000000U, 20000000000000000U,
446  200000000000000000U, 2000000000000000000U, 1553255926290448384U
447  },
448  {
449  3, 30, 300, 3000, 30000, 300000, /* 51 = '3' */
450  3000000, 30000000, 300000000, 3000000000U,
451  30000000000U, 300000000000U, 3000000000000U, 30000000000000U,
452  300000000000000U, 3000000000000000U, 30000000000000000U,
453  300000000000000000U, 3000000000000000000U, 11553255926290448384U
454  },
455  {
456  4, 40, 400, 4000, 40000, 400000, /* 52 = '4' */
457  4000000, 40000000, 400000000, 4000000000U,
458  40000000000U, 400000000000U, 4000000000000U, 40000000000000U,
459  400000000000000U, 4000000000000000U, 40000000000000000U,
460  400000000000000000U, 4000000000000000000U, 3106511852580896768U
461  },
462  {
463  5, 50, 500, 5000, 50000, 500000, /* 53 = '5' */
464  5000000, 50000000, 500000000, 5000000000U,
465  50000000000U, 500000000000U, 5000000000000U, 50000000000000U,
466  500000000000000U, 5000000000000000U, 50000000000000000U,
467  500000000000000000U, 5000000000000000000U, 13106511852580896768U
468  },
469  {
470  6, 60, 600, 6000, 60000, 600000, /* 54 = '6' */
471  6000000, 60000000, 600000000, 6000000000U,
472  60000000000U, 600000000000U, 6000000000000U, 60000000000000U,
473  600000000000000U, 6000000000000000U, 60000000000000000U,
474  600000000000000000U, 6000000000000000000U, 4659767778871345152U
475  },
476  {
477  7, 70, 700, 7000, 70000, 700000, /* 55 = '7' */
478  7000000, 70000000, 700000000, 7000000000U,
479  70000000000U, 700000000000U, 7000000000000U, 70000000000000U,
480  700000000000000U, 7000000000000000U, 70000000000000000U,
481  700000000000000000U, 7000000000000000000U, 14659767778871345152U
482  },
483  {
484  8, 80, 800, 8000, 80000, 800000, /* 56 = '8' */
485  8000000, 80000000, 800000000, 8000000000U,
486  80000000000U, 800000000000U, 8000000000000U, 80000000000000U,
487  800000000000000U, 8000000000000000U, 80000000000000000U,
488  800000000000000000U, 8000000000000000000U, 6213023705161793536U
489  },
490  {
491  9, 90, 900, 9000, 90000, 900000, /* 57 = '9' */
492  9000000, 90000000, 900000000, 9000000000U,
493  90000000000U, 900000000000U, 9000000000000U, 90000000000000U,
494  900000000000000U, 9000000000000000U, 90000000000000000U,
495  900000000000000000U, 9000000000000000000U, ~0U
496  },
497  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 58 */
498  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 59 */
499  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 60 */
500  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 61 */
501  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 62 */
502  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 63 */
503  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 64 */
504  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 65 */
505  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 66 */
506  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 67 */
507  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 68 */
508  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 69 */
509  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 70 */
510  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 71 */
511  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 72 */
512  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 73 */
513  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 74 */
514  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 75 */
515  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 76 */
516  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 77 */
517  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 78 */
518  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 79 */
519  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 80 */
520  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 81 */
521  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 82 */
522  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 83 */
523  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 84 */
524  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 85 */
525  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 86 */
526  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 87 */
527  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 88 */
528  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 89 */
529  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 90 */
530  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 91 */
531  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 92 */
532  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 93 */
533  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 94 */
534  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 95 */
535  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 96 */
536  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 97 */
537  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 98 */
538  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 99 */
539  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 100 */
540  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 101 */
541  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 102 */
542  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 103 */
543  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 104 */
544  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 105 */
545  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 106 */
546  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 107 */
547  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 108 */
548  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 109 */
549  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 110 */
550  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 111 */
551  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 112 */
552  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 113 */
553  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 114 */
554  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 115 */
555  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 116 */
556  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 117 */
557  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 118 */
558  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 119 */
559  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 120 */
560  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 121 */
561  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 122 */
562  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 123 */
563  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 124 */
564  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 125 */
565  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 126 */
566  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 127 */
567  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 128 */
568  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 129 */
569  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 130 */
570  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 131 */
571  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 132 */
572  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 133 */
573  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 134 */
574  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 135 */
575  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 136 */
576  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 137 */
577  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 138 */
578  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 139 */
579  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 140 */
580  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 141 */
581  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 142 */
582  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 143 */
583  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 144 */
584  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 145 */
585  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 146 */
586  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 147 */
587  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 148 */
588  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 149 */
589  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 150 */
590  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 151 */
591  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 152 */
592  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 153 */
593  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 154 */
594  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 155 */
595  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 156 */
596  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 157 */
597  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 158 */
598  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 159 */
599  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 160 */
600  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 161 */
601  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 162 */
602  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 163 */
603  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 164 */
604  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 165 */
605  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 166 */
606  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 167 */
607  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 168 */
608  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 169 */
609  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 170 */
610  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 171 */
611  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 172 */
612  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 173 */
613  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 174 */
614  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 175 */
615  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 176 */
616  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 177 */
617  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 178 */
618  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 179 */
619  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 180 */
620  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 181 */
621  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 182 */
622  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 183 */
623  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 184 */
624  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 185 */
625  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 186 */
626  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 187 */
627  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 188 */
628  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 189 */
629  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 190 */
630  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 191 */
631  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 192 */
632  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 193 */
633  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 194 */
634  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 195 */
635  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 196 */
636  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 197 */
637  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 198 */
638  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 199 */
639  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 200 */
640  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 201 */
641  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 202 */
642  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 203 */
643  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 204 */
644  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 205 */
645  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 206 */
646  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 207 */
647  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 208 */
648  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 209 */
649  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 210 */
650  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 211 */
651  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 212 */
652  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 213 */
653  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 214 */
654  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 215 */
655  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 216 */
656  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 217 */
657  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 218 */
658  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 219 */
659  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 220 */
660  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 221 */
661  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 222 */
662  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 223 */
663  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 224 */
664  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 225 */
665  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 226 */
666  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 227 */
667  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 228 */
668  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 229 */
669  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 230 */
670  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 231 */
671  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 232 */
672  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 233 */
673  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 234 */
674  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 235 */
675  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 236 */
676  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 237 */
677  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 238 */
678  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 239 */
679  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 240 */
680  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 241 */
681  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 242 */
682  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 243 */
683  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 244 */
684  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 245 */
685  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 246 */
686  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 247 */
687  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 248 */
688  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 249 */
689  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 250 */
690  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 251 */
691  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 252 */
692  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 253 */
693  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 254 */
694  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} /* 255 */
695 };
696 
697 
699 extern const char byteAsLowercaseHexadecimal[256][3];
700 
702 extern const char byteAsUppercaseHexadecimal[256][3];
703 
705 extern const char numberAsTwoDigits[100][3];
706 
708 extern const union Aligned4Chars {
709  char digits[4];
710  uint32_t val;
711  struct {
712  char _zero[2];
713  uint16_t two_digits;
714  } lastTwoDigits;
715  struct {
716  char _zero[1];
717  char hundreds;
718  uint16_t two_digits;
719  } lastThreeDigits;
720 } numberAs4Digits[10000];
721 
722 #ifdef __cplusplus
723 }; /* close extern "C" scope */
724 #endif
725 
730 #endif
731 
732 /* vim: set expandtab shiftwidth=4 tabstop=4: */
Aligned4Chars::_zero
char _zero[2]
Definition: text2int_tbl.h:712
Aligned4Chars::two_digits
uint16_t two_digits
Definition: text2int_tbl.h:713
byteAsLowercaseHexadecimal
const char byteAsLowercaseHexadecimal[256][3]
Table of uppercase hexadecimal characters for each byte value.
Definition: text2int.cpp:38
Aligned4Chars::lastThreeDigits
struct Aligned4Chars::@4 lastThreeDigits
powersOf10_64bit
const uint64_t powersOf10_64bit[16]
Table of powers-of-10 constants as 64-bit unsigned integers.
Definition: text2int_tbl.h:46
Aligned4Chars
Table of word-aligned 4-character groups representing 0000-9999.
Definition: text2int_tbl.h:708
powersOf10
const uint32_t powersOf10[10]
Table of powers-of-10 constants as 32-bit unsigned integers.
Definition: text2int_tbl.h:37
reciprocalPowersOf10
const double reciprocalPowersOf10[16]
Table of reciprocal powers-of-10 divisors.
Definition: text2int_tbl.h:75
Aligned4Chars::hundreds
char hundreds
Definition: text2int_tbl.h:717
numberAs4Digits
const union Aligned4Chars numberAs4Digits[10000]
numberAsTwoDigits
const char numberAsTwoDigits[100][3]
Table of 2-character strings representing 00-99.
Definition: text2int.cpp:20
text2int_table
const uint32_t text2int_table[256][10]
Convert ASCII digit into corresponding 32-bit value.
Definition: text2int_tbl.h:95
Aligned4Chars::digits
char digits[4]
Definition: text2int_tbl.h:709
Aligned4Chars::val
uint32_t val
Definition: text2int_tbl.h:710
byteAsUppercaseHexadecimal
const char byteAsUppercaseHexadecimal[256][3]
Table of uppercase hexadecimal characters for each byte value.
Definition: text2int.cpp:78
text2int64_table
const uint64_t text2int64_table[256][20]
Convert ASCII digit into corresponding 64-bit value.
Definition: text2int_tbl.h:384
Aligned4Chars::lastTwoDigits
struct Aligned4Chars::@3 lastTwoDigits
floatingPowersOf10
const double floatingPowersOf10[10]
Table of powers-of-10 constants as floating-point values.
Definition: text2int_tbl.h:61
Generated: Tue Jul 28 2020 16:03:26
Support Information