File: conv2.sml

package info (click to toggle)
mlton 20130715-3
  • links: PTS
  • area: main
  • in suites: stretch
  • size: 60,900 kB
  • ctags: 69,386
  • sloc: xml: 34,418; ansic: 17,399; lisp: 2,879; makefile: 1,605; sh: 1,254; pascal: 256; python: 143; asm: 97
file content (507 lines) | stat: -rw-r--r-- 50,656 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
val arg: { v: IntInf.int, b: string, oc: string, d: string, x: string} list = [
        {v = 0, b = "0", oc = "0", d = "0", x = "0"},
        {v = ~0, b = "~0", oc = "~0", d = "~0", x = "~0"},
        {v = 1, b = "1", oc = "1", d = "1", x = "1"},
        {v = ~1, b = "~1", oc = "~1", d = "~1", x = "~1"},
        {v = 2, b = "10", oc = "2", d = "2", x = "2"},
        {v = ~2, b = "~10", oc = "~2", d = "~2", x = "~2"},
        {v = 3, b = "11", oc = "3", d = "3", x = "3"},
        {v = ~3, b = "~11", oc = "~3", d = "~3", x = "~3"},
        {v = 4, b = "100", oc = "4", d = "4", x = "4"},
        {v = ~4, b = "~100", oc = "~4", d = "~4", x = "~4"},
        {v = 5, b = "101", oc = "5", d = "5", x = "5"},
        {v = ~5, b = "~101", oc = "~5", d = "~5", x = "~5"},
        {v = 6, b = "110", oc = "6", d = "6", x = "6"},
        {v = ~6, b = "~110", oc = "~6", d = "~6", x = "~6"},
        {v = 7, b = "111", oc = "7", d = "7", x = "7"},
        {v = ~7, b = "~111", oc = "~7", d = "~7", x = "~7"},
        {v = 8, b = "1000", oc = "10", d = "8", x = "8"},
        {v = ~8, b = "~1000", oc = "~10", d = "~8", x = "~8"},
        {v = 9, b = "1001", oc = "11", d = "9", x = "9"},
        {v = ~9, b = "~1001", oc = "~11", d = "~9", x = "~9"},
        {v = 10, b = "1010", oc = "12", d = "10", x = "A"},
        {v = ~10, b = "~1010", oc = "~12", d = "~10", x = "~A"},
        {v = 11, b = "1011", oc = "13", d = "11", x = "B"},
        {v = ~11, b = "~1011", oc = "~13", d = "~11", x = "~B"},
        {v = 12, b = "1100", oc = "14", d = "12", x = "C"},
        {v = ~12, b = "~1100", oc = "~14", d = "~12", x = "~C"},
        {v = 13, b = "1101", oc = "15", d = "13", x = "D"},
        {v = ~13, b = "~1101", oc = "~15", d = "~13", x = "~D"},
        {v = 14, b = "1110", oc = "16", d = "14", x = "E"},
        {v = ~14, b = "~1110", oc = "~16", d = "~14", x = "~E"},
        {v = 15, b = "1111", oc = "17", d = "15", x = "F"},
        {v = ~15, b = "~1111", oc = "~17", d = "~15", x = "~F"},
        {v = 16, b = "10000", oc = "20", d = "16", x = "10"},
        {v = ~16, b = "~10000", oc = "~20", d = "~16", x = "~10"},
        {v = 17, b = "10001", oc = "21", d = "17", x = "11"},
        {v = ~17, b = "~10001", oc = "~21", d = "~17", x = "~11"},
        {v = 18, b = "10010", oc = "22", d = "18", x = "12"},
        {v = ~18, b = "~10010", oc = "~22", d = "~18", x = "~12"},
        {v = 19, b = "10011", oc = "23", d = "19", x = "13"},
        {v = ~19, b = "~10011", oc = "~23", d = "~19", x = "~13"},
        {v = 20, b = "10100", oc = "24", d = "20", x = "14"},
        {v = ~20, b = "~10100", oc = "~24", d = "~20", x = "~14"},
        {v = 21, b = "10101", oc = "25", d = "21", x = "15"},
        {v = ~21, b = "~10101", oc = "~25", d = "~21", x = "~15"},
        {v = 22, b = "10110", oc = "26", d = "22", x = "16"},
        {v = ~22, b = "~10110", oc = "~26", d = "~22", x = "~16"},
        {v = 23, b = "10111", oc = "27", d = "23", x = "17"},
        {v = ~23, b = "~10111", oc = "~27", d = "~23", x = "~17"},
        {v = 24, b = "11000", oc = "30", d = "24", x = "18"},
        {v = ~24, b = "~11000", oc = "~30", d = "~24", x = "~18"},
        {v = 25, b = "11001", oc = "31", d = "25", x = "19"},
        {v = ~25, b = "~11001", oc = "~31", d = "~25", x = "~19"},
        {v = 26, b = "11010", oc = "32", d = "26", x = "1A"},
        {v = ~26, b = "~11010", oc = "~32", d = "~26", x = "~1A"},
        {v = 27, b = "11011", oc = "33", d = "27", x = "1B"},
        {v = ~27, b = "~11011", oc = "~33", d = "~27", x = "~1B"},
        {v = 28, b = "11100", oc = "34", d = "28", x = "1C"},
        {v = ~28, b = "~11100", oc = "~34", d = "~28", x = "~1C"},
        {v = 29, b = "11101", oc = "35", d = "29", x = "1D"},
        {v = ~29, b = "~11101", oc = "~35", d = "~29", x = "~1D"},
        {v = 30, b = "11110", oc = "36", d = "30", x = "1E"},
        {v = ~30, b = "~11110", oc = "~36", d = "~30", x = "~1E"},
        {v = 31, b = "11111", oc = "37", d = "31", x = "1F"},
        {v = ~31, b = "~11111", oc = "~37", d = "~31", x = "~1F"},
        {v = 32, b = "100000", oc = "40", d = "32", x = "20"},
        {v = ~32, b = "~100000", oc = "~40", d = "~32", x = "~20"},
        {v = 33, b = "100001", oc = "41", d = "33", x = "21"},
        {v = ~33, b = "~100001", oc = "~41", d = "~33", x = "~21"},
        {v = 34, b = "100010", oc = "42", d = "34", x = "22"},
        {v = ~34, b = "~100010", oc = "~42", d = "~34", x = "~22"},
        {v = 35, b = "100011", oc = "43", d = "35", x = "23"},
        {v = ~35, b = "~100011", oc = "~43", d = "~35", x = "~23"},
        {v = 36, b = "100100", oc = "44", d = "36", x = "24"},
        {v = ~36, b = "~100100", oc = "~44", d = "~36", x = "~24"},
        {v = 37, b = "100101", oc = "45", d = "37", x = "25"},
        {v = ~37, b = "~100101", oc = "~45", d = "~37", x = "~25"},
        {v = 38, b = "100110", oc = "46", d = "38", x = "26"},
        {v = ~38, b = "~100110", oc = "~46", d = "~38", x = "~26"},
        {v = 39, b = "100111", oc = "47", d = "39", x = "27"},
        {v = ~39, b = "~100111", oc = "~47", d = "~39", x = "~27"},
        {v = 40, b = "101000", oc = "50", d = "40", x = "28"},
        {v = ~40, b = "~101000", oc = "~50", d = "~40", x = "~28"},
        {v = 41, b = "101001", oc = "51", d = "41", x = "29"},
        {v = ~41, b = "~101001", oc = "~51", d = "~41", x = "~29"},
        {v = 42, b = "101010", oc = "52", d = "42", x = "2A"},
        {v = ~42, b = "~101010", oc = "~52", d = "~42", x = "~2A"},
        {v = 43, b = "101011", oc = "53", d = "43", x = "2B"},
        {v = ~43, b = "~101011", oc = "~53", d = "~43", x = "~2B"},
        {v = 44, b = "101100", oc = "54", d = "44", x = "2C"},
        {v = ~44, b = "~101100", oc = "~54", d = "~44", x = "~2C"},
        {v = 45, b = "101101", oc = "55", d = "45", x = "2D"},
        {v = ~45, b = "~101101", oc = "~55", d = "~45", x = "~2D"},
        {v = 46, b = "101110", oc = "56", d = "46", x = "2E"},
        {v = ~46, b = "~101110", oc = "~56", d = "~46", x = "~2E"},
        {v = 47, b = "101111", oc = "57", d = "47", x = "2F"},
        {v = ~47, b = "~101111", oc = "~57", d = "~47", x = "~2F"},
        {v = 48, b = "110000", oc = "60", d = "48", x = "30"},
        {v = ~48, b = "~110000", oc = "~60", d = "~48", x = "~30"},
        {v = 49, b = "110001", oc = "61", d = "49", x = "31"},
        {v = ~49, b = "~110001", oc = "~61", d = "~49", x = "~31"},
        {v = 50, b = "110010", oc = "62", d = "50", x = "32"},
        {v = ~50, b = "~110010", oc = "~62", d = "~50", x = "~32"},
        {v = 51, b = "110011", oc = "63", d = "51", x = "33"},
        {v = ~51, b = "~110011", oc = "~63", d = "~51", x = "~33"},
        {v = 52, b = "110100", oc = "64", d = "52", x = "34"},
        {v = ~52, b = "~110100", oc = "~64", d = "~52", x = "~34"},
        {v = 53, b = "110101", oc = "65", d = "53", x = "35"},
        {v = ~53, b = "~110101", oc = "~65", d = "~53", x = "~35"},
        {v = 54, b = "110110", oc = "66", d = "54", x = "36"},
        {v = ~54, b = "~110110", oc = "~66", d = "~54", x = "~36"},
        {v = 55, b = "110111", oc = "67", d = "55", x = "37"},
        {v = ~55, b = "~110111", oc = "~67", d = "~55", x = "~37"},
        {v = 56, b = "111000", oc = "70", d = "56", x = "38"},
        {v = ~56, b = "~111000", oc = "~70", d = "~56", x = "~38"},
        {v = 57, b = "111001", oc = "71", d = "57", x = "39"},
        {v = ~57, b = "~111001", oc = "~71", d = "~57", x = "~39"},
        {v = 58, b = "111010", oc = "72", d = "58", x = "3A"},
        {v = ~58, b = "~111010", oc = "~72", d = "~58", x = "~3A"},
        {v = 59, b = "111011", oc = "73", d = "59", x = "3B"},
        {v = ~59, b = "~111011", oc = "~73", d = "~59", x = "~3B"},
        {v = 60, b = "111100", oc = "74", d = "60", x = "3C"},
        {v = ~60, b = "~111100", oc = "~74", d = "~60", x = "~3C"},
        {v = 61, b = "111101", oc = "75", d = "61", x = "3D"},
        {v = ~61, b = "~111101", oc = "~75", d = "~61", x = "~3D"},
        {v = 62, b = "111110", oc = "76", d = "62", x = "3E"},
        {v = ~62, b = "~111110", oc = "~76", d = "~62", x = "~3E"},
        {v = 63, b = "111111", oc = "77", d = "63", x = "3F"},
        {v = ~63, b = "~111111", oc = "~77", d = "~63", x = "~3F"},
        {v = 64, b = "1000000", oc = "100", d = "64", x = "40"},
        {v = ~64, b = "~1000000", oc = "~100", d = "~64", x = "~40"},
        {v = 65, b = "1000001", oc = "101", d = "65", x = "41"},
        {v = ~65, b = "~1000001", oc = "~101", d = "~65", x = "~41"},
        {v = 66, b = "1000010", oc = "102", d = "66", x = "42"},
        {v = ~66, b = "~1000010", oc = "~102", d = "~66", x = "~42"},
        {v = 67, b = "1000011", oc = "103", d = "67", x = "43"},
        {v = ~67, b = "~1000011", oc = "~103", d = "~67", x = "~43"},
        {v = 68, b = "1000100", oc = "104", d = "68", x = "44"},
        {v = ~68, b = "~1000100", oc = "~104", d = "~68", x = "~44"},
        {v = 69, b = "1000101", oc = "105", d = "69", x = "45"},
        {v = ~69, b = "~1000101", oc = "~105", d = "~69", x = "~45"},
        {v = 70, b = "1000110", oc = "106", d = "70", x = "46"},
        {v = ~70, b = "~1000110", oc = "~106", d = "~70", x = "~46"},
        {v = 71, b = "1000111", oc = "107", d = "71", x = "47"},
        {v = ~71, b = "~1000111", oc = "~107", d = "~71", x = "~47"},
        {v = 72, b = "1001000", oc = "110", d = "72", x = "48"},
        {v = ~72, b = "~1001000", oc = "~110", d = "~72", x = "~48"},
        {v = 73, b = "1001001", oc = "111", d = "73", x = "49"},
        {v = ~73, b = "~1001001", oc = "~111", d = "~73", x = "~49"},
        {v = 74, b = "1001010", oc = "112", d = "74", x = "4A"},
        {v = ~74, b = "~1001010", oc = "~112", d = "~74", x = "~4A"},
        {v = 75, b = "1001011", oc = "113", d = "75", x = "4B"},
        {v = ~75, b = "~1001011", oc = "~113", d = "~75", x = "~4B"},
        {v = 76, b = "1001100", oc = "114", d = "76", x = "4C"},
        {v = ~76, b = "~1001100", oc = "~114", d = "~76", x = "~4C"},
        {v = 77, b = "1001101", oc = "115", d = "77", x = "4D"},
        {v = ~77, b = "~1001101", oc = "~115", d = "~77", x = "~4D"},
        {v = 78, b = "1001110", oc = "116", d = "78", x = "4E"},
        {v = ~78, b = "~1001110", oc = "~116", d = "~78", x = "~4E"},
        {v = 79, b = "1001111", oc = "117", d = "79", x = "4F"},
        {v = ~79, b = "~1001111", oc = "~117", d = "~79", x = "~4F"},
        {v = 80, b = "1010000", oc = "120", d = "80", x = "50"},
        {v = ~80, b = "~1010000", oc = "~120", d = "~80", x = "~50"},
        {v = 81, b = "1010001", oc = "121", d = "81", x = "51"},
        {v = ~81, b = "~1010001", oc = "~121", d = "~81", x = "~51"},
        {v = 82, b = "1010010", oc = "122", d = "82", x = "52"},
        {v = ~82, b = "~1010010", oc = "~122", d = "~82", x = "~52"},
        {v = 83, b = "1010011", oc = "123", d = "83", x = "53"},
        {v = ~83, b = "~1010011", oc = "~123", d = "~83", x = "~53"},
        {v = 84, b = "1010100", oc = "124", d = "84", x = "54"},
        {v = ~84, b = "~1010100", oc = "~124", d = "~84", x = "~54"},
        {v = 85, b = "1010101", oc = "125", d = "85", x = "55"},
        {v = ~85, b = "~1010101", oc = "~125", d = "~85", x = "~55"},
        {v = 86, b = "1010110", oc = "126", d = "86", x = "56"},
        {v = ~86, b = "~1010110", oc = "~126", d = "~86", x = "~56"},
        {v = 87, b = "1010111", oc = "127", d = "87", x = "57"},
        {v = ~87, b = "~1010111", oc = "~127", d = "~87", x = "~57"},
        {v = 88, b = "1011000", oc = "130", d = "88", x = "58"},
        {v = ~88, b = "~1011000", oc = "~130", d = "~88", x = "~58"},
        {v = 89, b = "1011001", oc = "131", d = "89", x = "59"},
        {v = ~89, b = "~1011001", oc = "~131", d = "~89", x = "~59"},
        {v = 90, b = "1011010", oc = "132", d = "90", x = "5A"},
        {v = ~90, b = "~1011010", oc = "~132", d = "~90", x = "~5A"},
        {v = 91, b = "1011011", oc = "133", d = "91", x = "5B"},
        {v = ~91, b = "~1011011", oc = "~133", d = "~91", x = "~5B"},
        {v = 92, b = "1011100", oc = "134", d = "92", x = "5C"},
        {v = ~92, b = "~1011100", oc = "~134", d = "~92", x = "~5C"},
        {v = 93, b = "1011101", oc = "135", d = "93", x = "5D"},
        {v = ~93, b = "~1011101", oc = "~135", d = "~93", x = "~5D"},
        {v = 94, b = "1011110", oc = "136", d = "94", x = "5E"},
        {v = ~94, b = "~1011110", oc = "~136", d = "~94", x = "~5E"},
        {v = 95, b = "1011111", oc = "137", d = "95", x = "5F"},
        {v = ~95, b = "~1011111", oc = "~137", d = "~95", x = "~5F"},
        {v = 96, b = "1100000", oc = "140", d = "96", x = "60"},
        {v = ~96, b = "~1100000", oc = "~140", d = "~96", x = "~60"},
        {v = 97, b = "1100001", oc = "141", d = "97", x = "61"},
        {v = ~97, b = "~1100001", oc = "~141", d = "~97", x = "~61"},
        {v = 98, b = "1100010", oc = "142", d = "98", x = "62"},
        {v = ~98, b = "~1100010", oc = "~142", d = "~98", x = "~62"},
        {v = 99, b = "1100011", oc = "143", d = "99", x = "63"},
        {v = ~99, b = "~1100011", oc = "~143", d = "~99", x = "~63"},
        {v = 128, b = "10000000", oc = "200", d = "128", x = "80"},
        {v = ~128, b = "~10000000", oc = "~200", d = "~128", x = "~80"},
        {v = 256, b = "100000000", oc = "400", d = "256", x = "100"},
        {v = ~256, b = "~100000000", oc = "~400", d = "~256", x = "~100"},
        {v = 512, b = "1000000000", oc = "1000", d = "512", x = "200"},
        {v = ~512, b = "~1000000000", oc = "~1000", d = "~512", x = "~200"},
        {v = 1024, b = "10000000000", oc = "2000", d = "1024", x = "400"},
        {v = ~1024, b = "~10000000000", oc = "~2000", d = "~1024", x = "~400"},
        {v = 2048, b = "100000000000", oc = "4000", d = "2048", x = "800"},
        {v = ~2048, b = "~100000000000", oc = "~4000", d = "~2048", x = "~800"},
        {v = 4096, b = "1000000000000", oc = "10000", d = "4096", x = "1000"},
        {v = ~4096, b = "~1000000000000", oc = "~10000", d = "~4096", x = "~1000"},
        {v = 8192, b = "10000000000000", oc = "20000", d = "8192", x = "2000"},
        {v = ~8192, b = "~10000000000000", oc = "~20000", d = "~8192", x = "~2000"},
        {v = 16384, b = "100000000000000", oc = "40000", d = "16384", x = "4000"},
        {v = ~16384, b = "~100000000000000", oc = "~40000", d = "~16384", x = "~4000"},
        {v = 32768, b = "1000000000000000", oc = "100000", d = "32768", x = "8000"},
        {v = ~32768, b = "~1000000000000000", oc = "~100000", d = "~32768", x = "~8000"},
        {v = 65536, b = "10000000000000000", oc = "200000", d = "65536", x = "10000"},
        {v = ~65536, b = "~10000000000000000", oc = "~200000", d = "~65536", x = "~10000"},
        {v = 131072, b = "100000000000000000", oc = "400000", d = "131072", x = "20000"},
        {v = ~131072, b = "~100000000000000000", oc = "~400000", d = "~131072", x = "~20000"},
        {v = 262144, b = "1000000000000000000", oc = "1000000", d = "262144", x = "40000"},
        {v = ~262144, b = "~1000000000000000000", oc = "~1000000", d = "~262144", x = "~40000"},
        {v = 524288, b = "10000000000000000000", oc = "2000000", d = "524288", x = "80000"},
        {v = ~524288, b = "~10000000000000000000", oc = "~2000000", d = "~524288", x = "~80000"},
        {v = 1048576, b = "100000000000000000000", oc = "4000000", d = "1048576", x = "100000"},
        {v = ~1048576, b = "~100000000000000000000", oc = "~4000000", d = "~1048576", x = "~100000"},
        {v = 2097152, b = "1000000000000000000000", oc = "10000000", d = "2097152", x = "200000"},
        {v = ~2097152, b = "~1000000000000000000000", oc = "~10000000", d = "~2097152", x = "~200000"},
        {v = 4194304, b = "10000000000000000000000", oc = "20000000", d = "4194304", x = "400000"},
        {v = ~4194304, b = "~10000000000000000000000", oc = "~20000000", d = "~4194304", x = "~400000"},
        {v = 8388608, b = "100000000000000000000000", oc = "40000000", d = "8388608", x = "800000"},
        {v = ~8388608, b = "~100000000000000000000000", oc = "~40000000", d = "~8388608", x = "~800000"},
        {v = 16777216, b = "1000000000000000000000000", oc = "100000000", d = "16777216", x = "1000000"},
        {v = ~16777216, b = "~1000000000000000000000000", oc = "~100000000", d = "~16777216", x = "~1000000"},
        {v = 33554432, b = "10000000000000000000000000", oc = "200000000", d = "33554432", x = "2000000"},
        {v = ~33554432, b = "~10000000000000000000000000", oc = "~200000000", d = "~33554432", x = "~2000000"},
        {v = 67108864, b = "100000000000000000000000000", oc = "400000000", d = "67108864", x = "4000000"},
        {v = ~67108864, b = "~100000000000000000000000000", oc = "~400000000", d = "~67108864", x = "~4000000"},
        {v = 100000000, b = "101111101011110000100000000", oc = "575360400", d = "100000000", x = "5F5E100"},
        {v = ~100000000, b = "~101111101011110000100000000", oc = "~575360400", d = "~100000000", x = "~5F5E100"},
        {v = 134217728, b = "1000000000000000000000000000", oc = "1000000000", d = "134217728", x = "8000000"},
        {v = ~134217728, b = "~1000000000000000000000000000", oc = "~1000000000", d = "~134217728", x = "~8000000"},
        {v = 268435456, b = "10000000000000000000000000000", oc = "2000000000", d = "268435456", x = "10000000"},
        {v = ~268435456, b = "~10000000000000000000000000000", oc = "~2000000000", d = "~268435456", x = "~10000000"},
        {v = 536870912, b = "100000000000000000000000000000", oc = "4000000000", d = "536870912", x = "20000000"},
        {v = ~536870912, b = "~100000000000000000000000000000", oc = "~4000000000", d = "~536870912", x = "~20000000"},
        {v = 1073741822, b = "111111111111111111111111111110", oc = "7777777776", d = "1073741822", x = "3FFFFFFE"},
        {v = ~1073741822, b = "~111111111111111111111111111110", oc = "~7777777776", d = "~1073741822", x = "~3FFFFFFE"},
        {v = 1073741823, b = "111111111111111111111111111111", oc = "7777777777", d = "1073741823", x = "3FFFFFFF"},
        {v = ~1073741823, b = "~111111111111111111111111111111", oc = "~7777777777", d = "~1073741823", x = "~3FFFFFFF"},
        {v = 1073741824, b = "1000000000000000000000000000000", oc = "10000000000", d = "1073741824", x = "40000000"},
        {v = ~1073741824, b = "~1000000000000000000000000000000", oc = "~10000000000", d = "~1073741824", x = "~40000000"},
        {v = 1073741825, b = "1000000000000000000000000000001", oc = "10000000001", d = "1073741825", x = "40000001"},
        {v = ~1073741825, b = "~1000000000000000000000000000001", oc = "~10000000001", d = "~1073741825", x = "~40000001"},
        {v = 1073741826, b = "1000000000000000000000000000010", oc = "10000000002", d = "1073741826", x = "40000002"},
        {v = ~1073741826, b = "~1000000000000000000000000000010", oc = "~10000000002", d = "~1073741826", x = "~40000002"},
        {v = 2147483648, b = "10000000000000000000000000000000", oc = "20000000000", d = "2147483648", x = "80000000"},
        {v = ~2147483648, b = "~10000000000000000000000000000000", oc = "~20000000000", d = "~2147483648", x = "~80000000"},
        {v = 4294967296, b = "100000000000000000000000000000000", oc = "40000000000", d = "4294967296", x = "100000000"},
        {v = ~4294967296, b = "~100000000000000000000000000000000", oc = "~40000000000", d = "~4294967296", x = "~100000000"},
        {v = 4304967296, b = "100000000100110001001011010000000", oc = "40046113200", d = "4304967296", x = "100989680"},
        {v = ~4304967296, b = "~100000000100110001001011010000000", oc = "~40046113200", d = "~4304967296", x = "~100989680"},
        {v = 8589934592, b = "1000000000000000000000000000000000", oc = "100000000000", d = "8589934592", x = "200000000"},
        {v = ~8589934592, b = "~1000000000000000000000000000000000", oc = "~100000000000", d = "~8589934592", x = "~200000000"},
        {v = 17179869184, b = "10000000000000000000000000000000000", oc = "200000000000", d = "17179869184", x = "400000000"},
        {v = ~17179869184, b = "~10000000000000000000000000000000000", oc = "~200000000000", d = "~17179869184", x = "~400000000"},
        {v = 34359738368, b = "100000000000000000000000000000000000", oc = "400000000000", d = "34359738368", x = "800000000"},
        {v = ~34359738368, b = "~100000000000000000000000000000000000", oc = "~400000000000", d = "~34359738368", x = "~800000000"},
        {v = 68719476736, b = "1000000000000000000000000000000000000", oc = "1000000000000", d = "68719476736", x = "1000000000"},
        {v = ~68719476736, b = "~1000000000000000000000000000000000000", oc = "~1000000000000", d = "~68719476736", x = "~1000000000"},
        {v = 137438953472, b = "10000000000000000000000000000000000000", oc = "2000000000000", d = "137438953472", x = "2000000000"},
        {v = ~137438953472, b = "~10000000000000000000000000000000000000", oc = "~2000000000000", d = "~137438953472", x = "~2000000000"},
        {v = 274877906944, b = "100000000000000000000000000000000000000", oc = "4000000000000", d = "274877906944", x = "4000000000"},
        {v = ~274877906944, b = "~100000000000000000000000000000000000000", oc = "~4000000000000", d = "~274877906944", x = "~4000000000"},
        {v = 549755813888, b = "1000000000000000000000000000000000000000", oc = "10000000000000", d = "549755813888", x = "8000000000"},
        {v = ~549755813888, b = "~1000000000000000000000000000000000000000", oc = "~10000000000000", d = "~549755813888", x = "~8000000000"},
        {v = 1099511627776, b = "10000000000000000000000000000000000000000", oc = "20000000000000", d = "1099511627776", x = "10000000000"},
        {v = ~1099511627776, b = "~10000000000000000000000000000000000000000", oc = "~20000000000000", d = "~1099511627776", x = "~10000000000"},
        {v = 2199023255552, b = "100000000000000000000000000000000000000000", oc = "40000000000000", d = "2199023255552", x = "20000000000"},
        {v = ~2199023255552, b = "~100000000000000000000000000000000000000000", oc = "~40000000000000", d = "~2199023255552", x = "~20000000000"},
        {v = 4398046511104, b = "1000000000000000000000000000000000000000000", oc = "100000000000000", d = "4398046511104", x = "40000000000"},
        {v = ~4398046511104, b = "~1000000000000000000000000000000000000000000", oc = "~100000000000000", d = "~4398046511104", x = "~40000000000"},
        {v = 8796093022208, b = "10000000000000000000000000000000000000000000", oc = "200000000000000", d = "8796093022208", x = "80000000000"},
        {v = ~8796093022208, b = "~10000000000000000000000000000000000000000000", oc = "~200000000000000", d = "~8796093022208", x = "~80000000000"},
        {v = 17592186044416, b = "100000000000000000000000000000000000000000000", oc = "400000000000000", d = "17592186044416", x = "100000000000"},
        {v = ~17592186044416, b = "~100000000000000000000000000000000000000000000", oc = "~400000000000000", d = "~17592186044416", x = "~100000000000"},
        {v = 35184372088832, b = "1000000000000000000000000000000000000000000000", oc = "1000000000000000", d = "35184372088832", x = "200000000000"},
        {v = ~35184372088832, b = "~1000000000000000000000000000000000000000000000", oc = "~1000000000000000", d = "~35184372088832", x = "~200000000000"},
        {v = 70368744177664, b = "10000000000000000000000000000000000000000000000", oc = "2000000000000000", d = "70368744177664", x = "400000000000"},
        {v = ~70368744177664, b = "~10000000000000000000000000000000000000000000000", oc = "~2000000000000000", d = "~70368744177664", x = "~400000000000"},
        {v = 140737488355328, b = "100000000000000000000000000000000000000000000000", oc = "4000000000000000", d = "140737488355328", x = "800000000000"},
        {v = ~140737488355328, b = "~100000000000000000000000000000000000000000000000", oc = "~4000000000000000", d = "~140737488355328", x = "~800000000000"},
        {v = 281474976710656, b = "1000000000000000000000000000000000000000000000000", oc = "10000000000000000", d = "281474976710656", x = "1000000000000"},
        {v = ~281474976710656, b = "~1000000000000000000000000000000000000000000000000", oc = "~10000000000000000", d = "~281474976710656", x = "~1000000000000"},
        {v = 562949953421312, b = "10000000000000000000000000000000000000000000000000", oc = "20000000000000000", d = "562949953421312", x = "2000000000000"},
        {v = ~562949953421312, b = "~10000000000000000000000000000000000000000000000000", oc = "~20000000000000000", d = "~562949953421312", x = "~2000000000000"},
        {v = 1125899906842624, b = "100000000000000000000000000000000000000000000000000", oc = "40000000000000000", d = "1125899906842624", x = "4000000000000"},
        {v = ~1125899906842624, b = "~100000000000000000000000000000000000000000000000000", oc = "~40000000000000000", d = "~1125899906842624", x = "~4000000000000"},
        {v = 2251799813685248, b = "1000000000000000000000000000000000000000000000000000", oc = "100000000000000000", d = "2251799813685248", x = "8000000000000"},
        {v = ~2251799813685248, b = "~1000000000000000000000000000000000000000000000000000", oc = "~100000000000000000", d = "~2251799813685248", x = "~8000000000000"},
        {v = 4503599627370496, b = "10000000000000000000000000000000000000000000000000000", oc = "200000000000000000", d = "4503599627370496", x = "10000000000000"},
        {v = ~4503599627370496, b = "~10000000000000000000000000000000000000000000000000000", oc = "~200000000000000000", d = "~4503599627370496", x = "~10000000000000"},
        {v = 9007199254740992, b = "100000000000000000000000000000000000000000000000000000", oc = "400000000000000000", d = "9007199254740992", x = "20000000000000"},
        {v = ~9007199254740992, b = "~100000000000000000000000000000000000000000000000000000", oc = "~400000000000000000", d = "~9007199254740992", x = "~20000000000000"},
        {v = 18014398509481984, b = "1000000000000000000000000000000000000000000000000000000", oc = "1000000000000000000", d = "18014398509481984", x = "40000000000000"},
        {v = ~18014398509481984, b = "~1000000000000000000000000000000000000000000000000000000", oc = "~1000000000000000000", d = "~18014398509481984", x = "~40000000000000"},
        {v = 36028797018963968, b = "10000000000000000000000000000000000000000000000000000000", oc = "2000000000000000000", d = "36028797018963968", x = "80000000000000"},
        {v = ~36028797018963968, b = "~10000000000000000000000000000000000000000000000000000000", oc = "~2000000000000000000", d = "~36028797018963968", x = "~80000000000000"},
        {v = 72057594037927936, b = "100000000000000000000000000000000000000000000000000000000", oc = "4000000000000000000", d = "72057594037927936", x = "100000000000000"},
        {v = ~72057594037927936, b = "~100000000000000000000000000000000000000000000000000000000", oc = "~4000000000000000000", d = "~72057594037927936", x = "~100000000000000"},
        {v = 144115188075855872, b = "1000000000000000000000000000000000000000000000000000000000", oc = "10000000000000000000", d = "144115188075855872", x = "200000000000000"},
        {v = ~144115188075855872, b = "~1000000000000000000000000000000000000000000000000000000000", oc = "~10000000000000000000", d = "~144115188075855872", x = "~200000000000000"},
        {v = 288230376151711744, b = "10000000000000000000000000000000000000000000000000000000000", oc = "20000000000000000000", d = "288230376151711744", x = "400000000000000"},
        {v = ~288230376151711744, b = "~10000000000000000000000000000000000000000000000000000000000", oc = "~20000000000000000000", d = "~288230376151711744", x = "~400000000000000"},
        {v = 576460752303423488, b = "100000000000000000000000000000000000000000000000000000000000", oc = "40000000000000000000", d = "576460752303423488", x = "800000000000000"},
        {v = ~576460752303423488, b = "~100000000000000000000000000000000000000000000000000000000000", oc = "~40000000000000000000", d = "~576460752303423488", x = "~800000000000000"},
        {v = 1152921504606846976, b = "1000000000000000000000000000000000000000000000000000000000000", oc = "100000000000000000000", d = "1152921504606846976", x = "1000000000000000"},
        {v = ~1152921504606846976, b = "~1000000000000000000000000000000000000000000000000000000000000", oc = "~100000000000000000000", d = "~1152921504606846976", x = "~1000000000000000"},
        {v = 2305843009213693952, b = "10000000000000000000000000000000000000000000000000000000000000", oc = "200000000000000000000", d = "2305843009213693952", x = "2000000000000000"},
        {v = ~2305843009213693952, b = "~10000000000000000000000000000000000000000000000000000000000000", oc = "~200000000000000000000", d = "~2305843009213693952", x = "~2000000000000000"},
        {v = 4611686018427387904, b = "100000000000000000000000000000000000000000000000000000000000000", oc = "400000000000000000000", d = "4611686018427387904", x = "4000000000000000"},
        {v = ~4611686018427387904, b = "~100000000000000000000000000000000000000000000000000000000000000", oc = "~400000000000000000000", d = "~4611686018427387904", x = "~4000000000000000"},
        {v = 9223372036854775808, b = "1000000000000000000000000000000000000000000000000000000000000000", oc = "1000000000000000000000", d = "9223372036854775808", x = "8000000000000000"},
        {v = ~9223372036854775808, b = "~1000000000000000000000000000000000000000000000000000000000000000", oc = "~1000000000000000000000", d = "~9223372036854775808", x = "~8000000000000000"},
        {v = 18446744073709551616, b = "10000000000000000000000000000000000000000000000000000000000000000", oc = "2000000000000000000000", d = "18446744073709551616", x = "10000000000000000"},
        {v = ~18446744073709551616, b = "~10000000000000000000000000000000000000000000000000000000000000000", oc = "~2000000000000000000000", d = "~18446744073709551616", x = "~10000000000000000"},
        {v = 36893488147419103232, b = "100000000000000000000000000000000000000000000000000000000000000000", oc = "4000000000000000000000", d = "36893488147419103232", x = "20000000000000000"},
        {v = ~36893488147419103232, b = "~100000000000000000000000000000000000000000000000000000000000000000", oc = "~4000000000000000000000", d = "~36893488147419103232", x = "~20000000000000000"},
        {v = 73786976294838206464, b = "1000000000000000000000000000000000000000000000000000000000000000000", oc = "10000000000000000000000", d = "73786976294838206464", x = "40000000000000000"},
        {v = ~73786976294838206464, b = "~1000000000000000000000000000000000000000000000000000000000000000000", oc = "~10000000000000000000000", d = "~73786976294838206464", x = "~40000000000000000"},
        {v = 147573952589676412928, b = "10000000000000000000000000000000000000000000000000000000000000000000", oc = "20000000000000000000000", d = "147573952589676412928", x = "80000000000000000"},
        {v = ~147573952589676412928, b = "~10000000000000000000000000000000000000000000000000000000000000000000", oc = "~20000000000000000000000", d = "~147573952589676412928", x = "~80000000000000000"},
        {v = 295147905179352825856, b = "100000000000000000000000000000000000000000000000000000000000000000000", oc = "40000000000000000000000", d = "295147905179352825856", x = "100000000000000000"},
        {v = ~295147905179352825856, b = "~100000000000000000000000000000000000000000000000000000000000000000000", oc = "~40000000000000000000000", d = "~295147905179352825856", x = "~100000000000000000"},
        {v = 590295810358705651712, b = "1000000000000000000000000000000000000000000000000000000000000000000000", oc = "100000000000000000000000", d = "590295810358705651712", x = "200000000000000000"},
        {v = ~590295810358705651712, b = "~1000000000000000000000000000000000000000000000000000000000000000000000", oc = "~100000000000000000000000", d = "~590295810358705651712", x = "~200000000000000000"},
        {v = 1180591620717411303424, b = "10000000000000000000000000000000000000000000000000000000000000000000000", oc = "200000000000000000000000", d = "1180591620717411303424", x = "400000000000000000"},
        {v = ~1180591620717411303424, b = "~10000000000000000000000000000000000000000000000000000000000000000000000", oc = "~200000000000000000000000", d = "~1180591620717411303424", x = "~400000000000000000"},
        {v = 2361183241434822606848, b = "100000000000000000000000000000000000000000000000000000000000000000000000", oc = "400000000000000000000000", d = "2361183241434822606848", x = "800000000000000000"},
        {v = ~2361183241434822606848, b = "~100000000000000000000000000000000000000000000000000000000000000000000000", oc = "~400000000000000000000000", d = "~2361183241434822606848", x = "~800000000000000000"},
        {v = 4722366482869645213696, b = "1000000000000000000000000000000000000000000000000000000000000000000000000", oc = "1000000000000000000000000", d = "4722366482869645213696", x = "1000000000000000000"},
        {v = ~4722366482869645213696, b = "~1000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~1000000000000000000000000", d = "~4722366482869645213696", x = "~1000000000000000000"},
        {v = 9444732965739290427392, b = "10000000000000000000000000000000000000000000000000000000000000000000000000", oc = "2000000000000000000000000", d = "9444732965739290427392", x = "2000000000000000000"},
        {v = ~9444732965739290427392, b = "~10000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~2000000000000000000000000", d = "~9444732965739290427392", x = "~2000000000000000000"},
        {v = 18889465931478580854784, b = "100000000000000000000000000000000000000000000000000000000000000000000000000", oc = "4000000000000000000000000", d = "18889465931478580854784", x = "4000000000000000000"},
        {v = ~18889465931478580854784, b = "~100000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~4000000000000000000000000", d = "~18889465931478580854784", x = "~4000000000000000000"},
        {v = 37778931862957161709568, b = "1000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "10000000000000000000000000", d = "37778931862957161709568", x = "8000000000000000000"},
        {v = ~37778931862957161709568, b = "~1000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~10000000000000000000000000", d = "~37778931862957161709568", x = "~8000000000000000000"},
        {v = 75557863725914323419136, b = "10000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "20000000000000000000000000", d = "75557863725914323419136", x = "10000000000000000000"},
        {v = ~75557863725914323419136, b = "~10000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~20000000000000000000000000", d = "~75557863725914323419136", x = "~10000000000000000000"},
        {v = 151115727451828646838272, b = "100000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "40000000000000000000000000", d = "151115727451828646838272", x = "20000000000000000000"},
        {v = ~151115727451828646838272, b = "~100000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~40000000000000000000000000", d = "~151115727451828646838272", x = "~20000000000000000000"},
        {v = 302231454903657293676544, b = "1000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "100000000000000000000000000", d = "302231454903657293676544", x = "40000000000000000000"},
        {v = ~302231454903657293676544, b = "~1000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~100000000000000000000000000", d = "~302231454903657293676544", x = "~40000000000000000000"},
        {v = 604462909807314587353088, b = "10000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "200000000000000000000000000", d = "604462909807314587353088", x = "80000000000000000000"},
        {v = ~604462909807314587353088, b = "~10000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~200000000000000000000000000", d = "~604462909807314587353088", x = "~80000000000000000000"},
        {v = 1208925819614629174706176, b = "100000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "400000000000000000000000000", d = "1208925819614629174706176", x = "100000000000000000000"},
        {v = ~1208925819614629174706176, b = "~100000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~400000000000000000000000000", d = "~1208925819614629174706176", x = "~100000000000000000000"},
        {v = 2417851639229258349412352, b = "1000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "1000000000000000000000000000", d = "2417851639229258349412352", x = "200000000000000000000"},
        {v = ~2417851639229258349412352, b = "~1000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~1000000000000000000000000000", d = "~2417851639229258349412352", x = "~200000000000000000000"},
        {v = 4835703278458516698824704, b = "10000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "2000000000000000000000000000", d = "4835703278458516698824704", x = "400000000000000000000"},
        {v = ~4835703278458516698824704, b = "~10000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~2000000000000000000000000000", d = "~4835703278458516698824704", x = "~400000000000000000000"},
        {v = 9671406556917033397649408, b = "100000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "4000000000000000000000000000", d = "9671406556917033397649408", x = "800000000000000000000"},
        {v = ~9671406556917033397649408, b = "~100000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~4000000000000000000000000000", d = "~9671406556917033397649408", x = "~800000000000000000000"},
        {v = 19342813113834066795298816, b = "1000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "10000000000000000000000000000", d = "19342813113834066795298816", x = "1000000000000000000000"},
        {v = ~19342813113834066795298816, b = "~1000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~10000000000000000000000000000", d = "~19342813113834066795298816", x = "~1000000000000000000000"},
        {v = 38685626227668133590597632, b = "10000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "20000000000000000000000000000", d = "38685626227668133590597632", x = "2000000000000000000000"},
        {v = ~38685626227668133590597632, b = "~10000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~20000000000000000000000000000", d = "~38685626227668133590597632", x = "~2000000000000000000000"},
        {v = 77371252455336267181195264, b = "100000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "40000000000000000000000000000", d = "77371252455336267181195264", x = "4000000000000000000000"},
        {v = ~77371252455336267181195264, b = "~100000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~40000000000000000000000000000", d = "~77371252455336267181195264", x = "~4000000000000000000000"},
        {v = 154742504910672534362390528, b = "1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "100000000000000000000000000000", d = "154742504910672534362390528", x = "8000000000000000000000"},
        {v = ~154742504910672534362390528, b = "~1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~100000000000000000000000000000", d = "~154742504910672534362390528", x = "~8000000000000000000000"},
        {v = 309485009821345068724781056, b = "10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "200000000000000000000000000000", d = "309485009821345068724781056", x = "10000000000000000000000"},
        {v = ~309485009821345068724781056, b = "~10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~200000000000000000000000000000", d = "~309485009821345068724781056", x = "~10000000000000000000000"},
        {v = 618970019642690137449562112, b = "100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "400000000000000000000000000000", d = "618970019642690137449562112", x = "20000000000000000000000"},
        {v = ~618970019642690137449562112, b = "~100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~400000000000000000000000000000", d = "~618970019642690137449562112", x = "~20000000000000000000000"},
        {v = 1237940039285380274899124224, b = "1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "1000000000000000000000000000000", d = "1237940039285380274899124224", x = "40000000000000000000000"},
        {v = ~1237940039285380274899124224, b = "~1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~1000000000000000000000000000000", d = "~1237940039285380274899124224", x = "~40000000000000000000000"},
        {v = 2475880078570760549798248448, b = "10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "2000000000000000000000000000000", d = "2475880078570760549798248448", x = "80000000000000000000000"},
        {v = ~2475880078570760549798248448, b = "~10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~2000000000000000000000000000000", d = "~2475880078570760549798248448", x = "~80000000000000000000000"},
        {v = 4951760157141521099596496896, b = "100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "4000000000000000000000000000000", d = "4951760157141521099596496896", x = "100000000000000000000000"},
        {v = ~4951760157141521099596496896, b = "~100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~4000000000000000000000000000000", d = "~4951760157141521099596496896", x = "~100000000000000000000000"},
        {v = 9903520314283042199192993792, b = "1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "10000000000000000000000000000000", d = "9903520314283042199192993792", x = "200000000000000000000000"},
        {v = ~9903520314283042199192993792, b = "~1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~10000000000000000000000000000000", d = "~9903520314283042199192993792", x = "~200000000000000000000000"},
        {v = 19807040628566084398385987584, b = "10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "20000000000000000000000000000000", d = "19807040628566084398385987584", x = "400000000000000000000000"},
        {v = ~19807040628566084398385987584, b = "~10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~20000000000000000000000000000000", d = "~19807040628566084398385987584", x = "~400000000000000000000000"},
        {v = 39614081257132168796771975168, b = "100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "40000000000000000000000000000000", d = "39614081257132168796771975168", x = "800000000000000000000000"},
        {v = ~39614081257132168796771975168, b = "~100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~40000000000000000000000000000000", d = "~39614081257132168796771975168", x = "~800000000000000000000000"},
        {v = 79228162514264337593543950336, b = "1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "100000000000000000000000000000000", d = "79228162514264337593543950336", x = "1000000000000000000000000"},
        {v = ~79228162514264337593543950336, b = "~1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~100000000000000000000000000000000", d = "~79228162514264337593543950336", x = "~1000000000000000000000000"},
        {v = 158456325028528675187087900672, b = "10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "200000000000000000000000000000000", d = "158456325028528675187087900672", x = "2000000000000000000000000"},
        {v = ~158456325028528675187087900672, b = "~10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~200000000000000000000000000000000", d = "~158456325028528675187087900672", x = "~2000000000000000000000000"},
        {v = 316912650057057350374175801344, b = "100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "400000000000000000000000000000000", d = "316912650057057350374175801344", x = "4000000000000000000000000"},
        {v = ~316912650057057350374175801344, b = "~100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~400000000000000000000000000000000", d = "~316912650057057350374175801344", x = "~4000000000000000000000000"},
        {v = 633825300114114700748351602688, b = "1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "1000000000000000000000000000000000", d = "633825300114114700748351602688", x = "8000000000000000000000000"},
        {v = ~633825300114114700748351602688, b = "~1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~1000000000000000000000000000000000", d = "~633825300114114700748351602688", x = "~8000000000000000000000000"}
]

fun makeReader str =
        let val len = String.size str
            fun reader pos =
                   if pos = String.size str
                   then NONE
                   else SOME (String.sub (str, pos), pos + 1)
        in reader
        end

exception FailRead of StringCvt.radix * string
exception FailWrite of StringCvt.radix * IntInf.int

fun read2 str = case IntInf.scan StringCvt.BIN (makeReader str) 0 of
                    NONE => raise (FailRead (StringCvt.BIN, str))
                    | SOME (v, p) => if p = String.size str
                                        then v
                                        else raise (FailRead (StringCvt.BIN,
                                                              str))

fun read8 str = case IntInf.scan StringCvt.OCT (makeReader str) 0 of
                    NONE => raise (FailRead (StringCvt.OCT, str))
                    | SOME (v, p) => if p = String.size str
                                        then v
                                        else raise (FailRead (StringCvt.OCT,
                                                              str))

fun read10 str = case IntInf.scan StringCvt.DEC (makeReader str) 0 of
                    NONE => raise (FailRead (StringCvt.DEC, str))
                    | SOME (v, p) => if p = String.size str
                                        then v
                                        else raise (FailRead (StringCvt.DEC,
                                                              str))

fun read16 str = case IntInf.scan StringCvt.HEX (makeReader str) 0 of
                    NONE => raise (FailRead (StringCvt.HEX, str))
                    | SOME (v, p) => if p = String.size str
                                        then v
                                        else raise (FailRead (StringCvt.HEX,
                                                              str))

fun read str = case IntInf.fromString str of
                    NONE => raise (FailRead (StringCvt.DEC, str))
                    | SOME v => v

fun toStr2 v = IntInf.fmt StringCvt.BIN v

fun toStr8 v = IntInf.fmt StringCvt.OCT v

fun toStr10 v = IntInf.fmt StringCvt.DEC v

fun toStr16 v = IntInf.fmt StringCvt.HEX v

fun toStr v = IntInf.toString v

fun baseToStr (base: StringCvt.radix): string =
       case base of
       StringCvt.BIN => "BIN"
       | StringCvt.OCT => "OCT"
       | StringCvt.DEC => "DEC"
       | StringCvt.HEX => "HEX"

fun f ({ v: IntInf.int, b: string, oc: string, d: string, x: string}): unit =
       let val bv = read2 b
           val ov = read8 oc
           val dv = read10 d
           val xv = read16 x
           val vv = read d
       in if bv <> v
             then raise (FailRead (StringCvt.BIN, b))
          else if ov <> v
             then raise (FailRead (StringCvt.OCT, oc))
          else if dv <> v
             then raise (FailRead (StringCvt.DEC, d))
          else if xv <> v
             then raise (FailRead (StringCvt.HEX, x))
          else if vv <> v
             then raise (FailRead (StringCvt.DEC, d))
          else let val vb = toStr2 v
                   val vo = toStr8 v
                   val vd = toStr10 v
                   val vx = toStr16 v
                   val vv = toStr v
                   val (b, oc, d, x) = if v = 0 andalso String.sub (d, 0) = #"~"
                                         then ("0", "0", "0", "0")
                                         else (b, oc, d, x)
               in if vb <> b
                     then raise (FailWrite (StringCvt.BIN, v))
                  else if vo <> oc
                     then raise (FailWrite (StringCvt.OCT, v))
                  else if vd <> d
                     then raise (FailWrite (StringCvt.DEC, v))
                  else if vx <> x
                     then raise (FailWrite (StringCvt.HEX, v))
                  else if vv <> d
                     then raise (FailWrite (StringCvt.DEC, v))
                  else ()
               end
       end handle FailRead (base, str) =>
                     print ("FailRead, base = " ^ (baseToStr base)
                            ^ ", str = |" ^ str ^ "|\n")
                  | FailWrite (base, v) =>
                     print ("FailWrite, base = " ^ (baseToStr base)
                            ^ ", d = |" ^ d ^ "|\n")

val _ = List.app f arg
val _ = print "All ok\n"