-
Notifications
You must be signed in to change notification settings - Fork 0
/
iso_8859.gleam
707 lines (684 loc) · 45.2 KB
/
iso_8859.gleam
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
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
//// This library decodes ISO/IEC 8859 binary data into a native string. All 15
//// ISO/IEC 8859 encodings are supported.
import gleam/bit_array
import gleam/list
import gleam/string
/// The ISO/IEC 8859 encodings that can be decoded. All 15 ISO/IEC 8859
/// encodings are supported.
///
pub type Encoding {
Part1
Part2
Part3
Part4
Part5
Part6
Part7
Part8
Part9
Part10
Part11
Part13
Part14
Part15
Part16
}
/// Converts ISO/IEC 8859 binary data to a UTF-8 string. Any bytes that are not
/// valid for the specified encoding are replaced with the `U+FFFD` character:
/// �.
///
@external(javascript, "./text_decoder.mjs", "decode_bytes")
pub fn decode_bytes(bytes: BitArray, encoding: Encoding) -> String {
let lut = case encoding {
Part1 -> part_1_lut
Part2 -> part_2_lut
Part3 -> part_3_lut
Part4 -> part_4_lut
Part5 -> part_5_lut
Part6 -> part_6_lut
Part7 -> part_7_lut
Part8 -> part_8_lut
Part9 -> part_9_lut
Part10 -> part_10_lut
Part11 -> part_11_lut
Part13 -> part_13_lut
Part14 -> part_14_lut
Part15 -> part_15_lut
Part16 -> part_16_lut
}
bits_to_codepoints(bytes, lut, [])
|> list.reverse
|> string.from_utf_codepoints
}
fn bits_to_codepoints(
bytes: BitArray,
lut: BitArray,
acc: List(UtfCodepoint),
) -> List(UtfCodepoint) {
case bytes {
<<next_byte:size(8), rest:bytes>> -> {
// Read the 16-bit code point value out of the LUT
let assert Ok(<<cp:size(16)>>) = bit_array.slice(lut, next_byte * 2, 2)
// Convert to a native code point. This will always succeed because there
// is no invalid code point data in the LUTs.
let assert Ok(cp) = string.utf_codepoint(cp)
bits_to_codepoints(rest, lut, [cp, ..acc])
}
_ -> acc
}
}
/// Lookup table for ISO/IEC 8859 Part 1.
///
const part_1_lut = <<
0x0000:16, 0x0001:16, 0x0002:16, 0x0003:16, 0x0004:16, 0x0005:16, 0x0006:16,
0x0007:16, 0x0008:16, 0x0009:16, 0x000A:16, 0x000B:16, 0x000C:16, 0x000D:16,
0x000E:16, 0x000F:16, 0x0010:16, 0x0011:16, 0x0012:16, 0x0013:16, 0x0014:16,
0x0015:16, 0x0016:16, 0x0017:16, 0x0018:16, 0x0019:16, 0x001A:16, 0x001B:16,
0x001C:16, 0x001D:16, 0x001E:16, 0x001F:16, 0x0020:16, 0x0021:16, 0x0022:16,
0x0023:16, 0x0024:16, 0x0025:16, 0x0026:16, 0x0027:16, 0x0028:16, 0x0029:16,
0x002A:16, 0x002B:16, 0x002C:16, 0x002D:16, 0x002E:16, 0x002F:16, 0x0030:16,
0x0031:16, 0x0032:16, 0x0033:16, 0x0034:16, 0x0035:16, 0x0036:16, 0x0037:16,
0x0038:16, 0x0039:16, 0x003A:16, 0x003B:16, 0x003C:16, 0x003D:16, 0x003E:16,
0x003F:16, 0x0040:16, 0x0041:16, 0x0042:16, 0x0043:16, 0x0044:16, 0x0045:16,
0x0046:16, 0x0047:16, 0x0048:16, 0x0049:16, 0x004A:16, 0x004B:16, 0x004C:16,
0x004D:16, 0x004E:16, 0x004F:16, 0x0050:16, 0x0051:16, 0x0052:16, 0x0053:16,
0x0054:16, 0x0055:16, 0x0056:16, 0x0057:16, 0x0058:16, 0x0059:16, 0x005A:16,
0x005B:16, 0x005C:16, 0x005D:16, 0x005E:16, 0x005F:16, 0x0060:16, 0x0061:16,
0x0062:16, 0x0063:16, 0x0064:16, 0x0065:16, 0x0066:16, 0x0067:16, 0x0068:16,
0x0069:16, 0x006A:16, 0x006B:16, 0x006C:16, 0x006D:16, 0x006E:16, 0x006F:16,
0x0070:16, 0x0071:16, 0x0072:16, 0x0073:16, 0x0074:16, 0x0075:16, 0x0076:16,
0x0077:16, 0x0078:16, 0x0079:16, 0x007A:16, 0x007B:16, 0x007C:16, 0x007D:16,
0x007E:16, 0x007F:16, 0x0080:16, 0x0081:16, 0x0082:16, 0x0083:16, 0x0084:16,
0x0085:16, 0x0086:16, 0x0087:16, 0x0088:16, 0x0089:16, 0x008A:16, 0x008B:16,
0x008C:16, 0x008D:16, 0x008E:16, 0x008F:16, 0x0090:16, 0x0091:16, 0x0092:16,
0x0093:16, 0x0094:16, 0x0095:16, 0x0096:16, 0x0097:16, 0x0098:16, 0x0099:16,
0x009A:16, 0x009B:16, 0x009C:16, 0x009D:16, 0x009E:16, 0x009F:16, 0x00A0:16,
0x00A1:16, 0x00A2:16, 0x00A3:16, 0x00A4:16, 0x00A5:16, 0x00A6:16, 0x00A7:16,
0x00A8:16, 0x00A9:16, 0x00AA:16, 0x00AB:16, 0x00AC:16, 0x00AD:16, 0x00AE:16,
0x00AF:16, 0x00B0:16, 0x00B1:16, 0x00B2:16, 0x00B3:16, 0x00B4:16, 0x00B5:16,
0x00B6:16, 0x00B7:16, 0x00B8:16, 0x00B9:16, 0x00BA:16, 0x00BB:16, 0x00BC:16,
0x00BD:16, 0x00BE:16, 0x00BF:16, 0x00C0:16, 0x00C1:16, 0x00C2:16, 0x00C3:16,
0x00C4:16, 0x00C5:16, 0x00C6:16, 0x00C7:16, 0x00C8:16, 0x00C9:16, 0x00CA:16,
0x00CB:16, 0x00CC:16, 0x00CD:16, 0x00CE:16, 0x00CF:16, 0x00D0:16, 0x00D1:16,
0x00D2:16, 0x00D3:16, 0x00D4:16, 0x00D5:16, 0x00D6:16, 0x00D7:16, 0x00D8:16,
0x00D9:16, 0x00DA:16, 0x00DB:16, 0x00DC:16, 0x00DD:16, 0x00DE:16, 0x00DF:16,
0x00E0:16, 0x00E1:16, 0x00E2:16, 0x00E3:16, 0x00E4:16, 0x00E5:16, 0x00E6:16,
0x00E7:16, 0x00E8:16, 0x00E9:16, 0x00EA:16, 0x00EB:16, 0x00EC:16, 0x00ED:16,
0x00EE:16, 0x00EF:16, 0x00F0:16, 0x00F1:16, 0x00F2:16, 0x00F3:16, 0x00F4:16,
0x00F5:16, 0x00F6:16, 0x00F7:16, 0x00F8:16, 0x00F9:16, 0x00FA:16, 0x00FB:16,
0x00FC:16, 0x00FD:16, 0x00FE:16, 0x00FF:16,
>>
/// Lookup table for ISO/IEC 8859 Part 2.
///
const part_2_lut = <<
0x0000:16, 0x0001:16, 0x0002:16, 0x0003:16, 0x0004:16, 0x0005:16, 0x0006:16,
0x0007:16, 0x0008:16, 0x0009:16, 0x000A:16, 0x000B:16, 0x000C:16, 0x000D:16,
0x000E:16, 0x000F:16, 0x0010:16, 0x0011:16, 0x0012:16, 0x0013:16, 0x0014:16,
0x0015:16, 0x0016:16, 0x0017:16, 0x0018:16, 0x0019:16, 0x001A:16, 0x001B:16,
0x001C:16, 0x001D:16, 0x001E:16, 0x001F:16, 0x0020:16, 0x0021:16, 0x0022:16,
0x0023:16, 0x0024:16, 0x0025:16, 0x0026:16, 0x0027:16, 0x0028:16, 0x0029:16,
0x002A:16, 0x002B:16, 0x002C:16, 0x002D:16, 0x002E:16, 0x002F:16, 0x0030:16,
0x0031:16, 0x0032:16, 0x0033:16, 0x0034:16, 0x0035:16, 0x0036:16, 0x0037:16,
0x0038:16, 0x0039:16, 0x003A:16, 0x003B:16, 0x003C:16, 0x003D:16, 0x003E:16,
0x003F:16, 0x0040:16, 0x0041:16, 0x0042:16, 0x0043:16, 0x0044:16, 0x0045:16,
0x0046:16, 0x0047:16, 0x0048:16, 0x0049:16, 0x004A:16, 0x004B:16, 0x004C:16,
0x004D:16, 0x004E:16, 0x004F:16, 0x0050:16, 0x0051:16, 0x0052:16, 0x0053:16,
0x0054:16, 0x0055:16, 0x0056:16, 0x0057:16, 0x0058:16, 0x0059:16, 0x005A:16,
0x005B:16, 0x005C:16, 0x005D:16, 0x005E:16, 0x005F:16, 0x0060:16, 0x0061:16,
0x0062:16, 0x0063:16, 0x0064:16, 0x0065:16, 0x0066:16, 0x0067:16, 0x0068:16,
0x0069:16, 0x006A:16, 0x006B:16, 0x006C:16, 0x006D:16, 0x006E:16, 0x006F:16,
0x0070:16, 0x0071:16, 0x0072:16, 0x0073:16, 0x0074:16, 0x0075:16, 0x0076:16,
0x0077:16, 0x0078:16, 0x0079:16, 0x007A:16, 0x007B:16, 0x007C:16, 0x007D:16,
0x007E:16, 0x007F:16, 0x0080:16, 0x0081:16, 0x0082:16, 0x0083:16, 0x0084:16,
0x0085:16, 0x0086:16, 0x0087:16, 0x0088:16, 0x0089:16, 0x008A:16, 0x008B:16,
0x008C:16, 0x008D:16, 0x008E:16, 0x008F:16, 0x0090:16, 0x0091:16, 0x0092:16,
0x0093:16, 0x0094:16, 0x0095:16, 0x0096:16, 0x0097:16, 0x0098:16, 0x0099:16,
0x009A:16, 0x009B:16, 0x009C:16, 0x009D:16, 0x009E:16, 0x009F:16, 0x00A0:16,
0x0104:16, 0x02D8:16, 0x0141:16, 0x00A4:16, 0x013D:16, 0x015A:16, 0x00A7:16,
0x00A8:16, 0x0160:16, 0x015E:16, 0x0164:16, 0x0179:16, 0x00AD:16, 0x017D:16,
0x017B:16, 0x00B0:16, 0x0105:16, 0x02DB:16, 0x0142:16, 0x00B4:16, 0x013E:16,
0x015B:16, 0x02C7:16, 0x00B8:16, 0x0161:16, 0x015F:16, 0x0165:16, 0x017A:16,
0x02DD:16, 0x017E:16, 0x017C:16, 0x0154:16, 0x00C1:16, 0x00C2:16, 0x0102:16,
0x00C4:16, 0x0139:16, 0x0106:16, 0x00C7:16, 0x010C:16, 0x00C9:16, 0x0118:16,
0x00CB:16, 0x011A:16, 0x00CD:16, 0x00CE:16, 0x010E:16, 0x0110:16, 0x0143:16,
0x0147:16, 0x00D3:16, 0x00D4:16, 0x0150:16, 0x00D6:16, 0x00D7:16, 0x0158:16,
0x016E:16, 0x00DA:16, 0x0170:16, 0x00DC:16, 0x00DD:16, 0x0162:16, 0x00DF:16,
0x0155:16, 0x00E1:16, 0x00E2:16, 0x0103:16, 0x00E4:16, 0x013A:16, 0x0107:16,
0x00E7:16, 0x010D:16, 0x00E9:16, 0x0119:16, 0x00EB:16, 0x011B:16, 0x00ED:16,
0x00EE:16, 0x010F:16, 0x0111:16, 0x0144:16, 0x0148:16, 0x00F3:16, 0x00F4:16,
0x0151:16, 0x00F6:16, 0x00F7:16, 0x0159:16, 0x016F:16, 0x00FA:16, 0x0171:16,
0x00FC:16, 0x00FD:16, 0x0163:16, 0x02D9:16,
>>
/// Lookup table for ISO/IEC 8859 Part 3.
///
const part_3_lut = <<
0x0000:16, 0x0001:16, 0x0002:16, 0x0003:16, 0x0004:16, 0x0005:16, 0x0006:16,
0x0007:16, 0x0008:16, 0x0009:16, 0x000A:16, 0x000B:16, 0x000C:16, 0x000D:16,
0x000E:16, 0x000F:16, 0x0010:16, 0x0011:16, 0x0012:16, 0x0013:16, 0x0014:16,
0x0015:16, 0x0016:16, 0x0017:16, 0x0018:16, 0x0019:16, 0x001A:16, 0x001B:16,
0x001C:16, 0x001D:16, 0x001E:16, 0x001F:16, 0x0020:16, 0x0021:16, 0x0022:16,
0x0023:16, 0x0024:16, 0x0025:16, 0x0026:16, 0x0027:16, 0x0028:16, 0x0029:16,
0x002A:16, 0x002B:16, 0x002C:16, 0x002D:16, 0x002E:16, 0x002F:16, 0x0030:16,
0x0031:16, 0x0032:16, 0x0033:16, 0x0034:16, 0x0035:16, 0x0036:16, 0x0037:16,
0x0038:16, 0x0039:16, 0x003A:16, 0x003B:16, 0x003C:16, 0x003D:16, 0x003E:16,
0x003F:16, 0x0040:16, 0x0041:16, 0x0042:16, 0x0043:16, 0x0044:16, 0x0045:16,
0x0046:16, 0x0047:16, 0x0048:16, 0x0049:16, 0x004A:16, 0x004B:16, 0x004C:16,
0x004D:16, 0x004E:16, 0x004F:16, 0x0050:16, 0x0051:16, 0x0052:16, 0x0053:16,
0x0054:16, 0x0055:16, 0x0056:16, 0x0057:16, 0x0058:16, 0x0059:16, 0x005A:16,
0x005B:16, 0x005C:16, 0x005D:16, 0x005E:16, 0x005F:16, 0x0060:16, 0x0061:16,
0x0062:16, 0x0063:16, 0x0064:16, 0x0065:16, 0x0066:16, 0x0067:16, 0x0068:16,
0x0069:16, 0x006A:16, 0x006B:16, 0x006C:16, 0x006D:16, 0x006E:16, 0x006F:16,
0x0070:16, 0x0071:16, 0x0072:16, 0x0073:16, 0x0074:16, 0x0075:16, 0x0076:16,
0x0077:16, 0x0078:16, 0x0079:16, 0x007A:16, 0x007B:16, 0x007C:16, 0x007D:16,
0x007E:16, 0x007F:16, 0x0080:16, 0x0081:16, 0x0082:16, 0x0083:16, 0x0084:16,
0x0085:16, 0x0086:16, 0x0087:16, 0x0088:16, 0x0089:16, 0x008A:16, 0x008B:16,
0x008C:16, 0x008D:16, 0x008E:16, 0x008F:16, 0x0090:16, 0x0091:16, 0x0092:16,
0x0093:16, 0x0094:16, 0x0095:16, 0x0096:16, 0x0097:16, 0x0098:16, 0x0099:16,
0x009A:16, 0x009B:16, 0x009C:16, 0x009D:16, 0x009E:16, 0x009F:16, 0x00A0:16,
0x0126:16, 0x02D8:16, 0x00A3:16, 0x00A4:16, 0xFFFD:16, 0x0124:16, 0x00A7:16,
0x00A8:16, 0x0130:16, 0x015E:16, 0x011E:16, 0x0134:16, 0x00AD:16, 0xFFFD:16,
0x017B:16, 0x00B0:16, 0x0127:16, 0x00B2:16, 0x00B3:16, 0x00B4:16, 0x00B5:16,
0x0125:16, 0x00B7:16, 0x00B8:16, 0x0131:16, 0x015F:16, 0x011F:16, 0x0135:16,
0x00BD:16, 0xFFFD:16, 0x017C:16, 0x00C0:16, 0x00C1:16, 0x00C2:16, 0xFFFD:16,
0x00C4:16, 0x010A:16, 0x0108:16, 0x00C7:16, 0x00C8:16, 0x00C9:16, 0x00CA:16,
0x00CB:16, 0x00CC:16, 0x00CD:16, 0x00CE:16, 0x00CF:16, 0xFFFD:16, 0x00D1:16,
0x00D2:16, 0x00D3:16, 0x00D4:16, 0x0120:16, 0x00D6:16, 0x00D7:16, 0x011C:16,
0x00D9:16, 0x00DA:16, 0x00DB:16, 0x00DC:16, 0x016C:16, 0x015C:16, 0x00DF:16,
0x00E0:16, 0x00E1:16, 0x00E2:16, 0xFFFD:16, 0x00E4:16, 0x010B:16, 0x0109:16,
0x00E7:16, 0x00E8:16, 0x00E9:16, 0x00EA:16, 0x00EB:16, 0x00EC:16, 0x00ED:16,
0x00EE:16, 0x00EF:16, 0xFFFD:16, 0x00F1:16, 0x00F2:16, 0x00F3:16, 0x00F4:16,
0x0121:16, 0x00F6:16, 0x00F7:16, 0x011D:16, 0x00F9:16, 0x00FA:16, 0x00FB:16,
0x00FC:16, 0x016D:16, 0x015D:16, 0x02D9:16,
>>
/// Lookup table for ISO/IEC 8859 Part 4.
///
const part_4_lut = <<
0x0000:16, 0x0001:16, 0x0002:16, 0x0003:16, 0x0004:16, 0x0005:16, 0x0006:16,
0x0007:16, 0x0008:16, 0x0009:16, 0x000A:16, 0x000B:16, 0x000C:16, 0x000D:16,
0x000E:16, 0x000F:16, 0x0010:16, 0x0011:16, 0x0012:16, 0x0013:16, 0x0014:16,
0x0015:16, 0x0016:16, 0x0017:16, 0x0018:16, 0x0019:16, 0x001A:16, 0x001B:16,
0x001C:16, 0x001D:16, 0x001E:16, 0x001F:16, 0x0020:16, 0x0021:16, 0x0022:16,
0x0023:16, 0x0024:16, 0x0025:16, 0x0026:16, 0x0027:16, 0x0028:16, 0x0029:16,
0x002A:16, 0x002B:16, 0x002C:16, 0x002D:16, 0x002E:16, 0x002F:16, 0x0030:16,
0x0031:16, 0x0032:16, 0x0033:16, 0x0034:16, 0x0035:16, 0x0036:16, 0x0037:16,
0x0038:16, 0x0039:16, 0x003A:16, 0x003B:16, 0x003C:16, 0x003D:16, 0x003E:16,
0x003F:16, 0x0040:16, 0x0041:16, 0x0042:16, 0x0043:16, 0x0044:16, 0x0045:16,
0x0046:16, 0x0047:16, 0x0048:16, 0x0049:16, 0x004A:16, 0x004B:16, 0x004C:16,
0x004D:16, 0x004E:16, 0x004F:16, 0x0050:16, 0x0051:16, 0x0052:16, 0x0053:16,
0x0054:16, 0x0055:16, 0x0056:16, 0x0057:16, 0x0058:16, 0x0059:16, 0x005A:16,
0x005B:16, 0x005C:16, 0x005D:16, 0x005E:16, 0x005F:16, 0x0060:16, 0x0061:16,
0x0062:16, 0x0063:16, 0x0064:16, 0x0065:16, 0x0066:16, 0x0067:16, 0x0068:16,
0x0069:16, 0x006A:16, 0x006B:16, 0x006C:16, 0x006D:16, 0x006E:16, 0x006F:16,
0x0070:16, 0x0071:16, 0x0072:16, 0x0073:16, 0x0074:16, 0x0075:16, 0x0076:16,
0x0077:16, 0x0078:16, 0x0079:16, 0x007A:16, 0x007B:16, 0x007C:16, 0x007D:16,
0x007E:16, 0x007F:16, 0x0080:16, 0x0081:16, 0x0082:16, 0x0083:16, 0x0084:16,
0x0085:16, 0x0086:16, 0x0087:16, 0x0088:16, 0x0089:16, 0x008A:16, 0x008B:16,
0x008C:16, 0x008D:16, 0x008E:16, 0x008F:16, 0x0090:16, 0x0091:16, 0x0092:16,
0x0093:16, 0x0094:16, 0x0095:16, 0x0096:16, 0x0097:16, 0x0098:16, 0x0099:16,
0x009A:16, 0x009B:16, 0x009C:16, 0x009D:16, 0x009E:16, 0x009F:16, 0x00A0:16,
0x0104:16, 0x0138:16, 0x0156:16, 0x00A4:16, 0x0128:16, 0x013B:16, 0x00A7:16,
0x00A8:16, 0x0160:16, 0x0112:16, 0x0122:16, 0x0166:16, 0x00AD:16, 0x017D:16,
0x00AF:16, 0x00B0:16, 0x0105:16, 0x02DB:16, 0x0157:16, 0x00B4:16, 0x0129:16,
0x013C:16, 0x02C7:16, 0x00B8:16, 0x0161:16, 0x0113:16, 0x0123:16, 0x0167:16,
0x014A:16, 0x017E:16, 0x014B:16, 0x0100:16, 0x00C1:16, 0x00C2:16, 0x00C3:16,
0x00C4:16, 0x00C5:16, 0x00C6:16, 0x012E:16, 0x010C:16, 0x00C9:16, 0x0118:16,
0x00CB:16, 0x0116:16, 0x00CD:16, 0x00CE:16, 0x012A:16, 0x0110:16, 0x0145:16,
0x014C:16, 0x0136:16, 0x00D4:16, 0x00D5:16, 0x00D6:16, 0x00D7:16, 0x00D8:16,
0x0172:16, 0x00DA:16, 0x00DB:16, 0x00DC:16, 0x0168:16, 0x016A:16, 0x00DF:16,
0x0101:16, 0x00E1:16, 0x00E2:16, 0x00E3:16, 0x00E4:16, 0x00E5:16, 0x00E6:16,
0x012F:16, 0x010D:16, 0x00E9:16, 0x0119:16, 0x00EB:16, 0x0117:16, 0x00ED:16,
0x00EE:16, 0x012B:16, 0x0111:16, 0x0146:16, 0x014D:16, 0x0137:16, 0x00F4:16,
0x00F5:16, 0x00F6:16, 0x00F7:16, 0x00F8:16, 0x0173:16, 0x00FA:16, 0x00FB:16,
0x00FC:16, 0x0169:16, 0x016B:16, 0x02D9:16,
>>
/// Lookup table for ISO/IEC 8859 Part 5.
///
const part_5_lut = <<
0x0000:16, 0x0001:16, 0x0002:16, 0x0003:16, 0x0004:16, 0x0005:16, 0x0006:16,
0x0007:16, 0x0008:16, 0x0009:16, 0x000A:16, 0x000B:16, 0x000C:16, 0x000D:16,
0x000E:16, 0x000F:16, 0x0010:16, 0x0011:16, 0x0012:16, 0x0013:16, 0x0014:16,
0x0015:16, 0x0016:16, 0x0017:16, 0x0018:16, 0x0019:16, 0x001A:16, 0x001B:16,
0x001C:16, 0x001D:16, 0x001E:16, 0x001F:16, 0x0020:16, 0x0021:16, 0x0022:16,
0x0023:16, 0x0024:16, 0x0025:16, 0x0026:16, 0x0027:16, 0x0028:16, 0x0029:16,
0x002A:16, 0x002B:16, 0x002C:16, 0x002D:16, 0x002E:16, 0x002F:16, 0x0030:16,
0x0031:16, 0x0032:16, 0x0033:16, 0x0034:16, 0x0035:16, 0x0036:16, 0x0037:16,
0x0038:16, 0x0039:16, 0x003A:16, 0x003B:16, 0x003C:16, 0x003D:16, 0x003E:16,
0x003F:16, 0x0040:16, 0x0041:16, 0x0042:16, 0x0043:16, 0x0044:16, 0x0045:16,
0x0046:16, 0x0047:16, 0x0048:16, 0x0049:16, 0x004A:16, 0x004B:16, 0x004C:16,
0x004D:16, 0x004E:16, 0x004F:16, 0x0050:16, 0x0051:16, 0x0052:16, 0x0053:16,
0x0054:16, 0x0055:16, 0x0056:16, 0x0057:16, 0x0058:16, 0x0059:16, 0x005A:16,
0x005B:16, 0x005C:16, 0x005D:16, 0x005E:16, 0x005F:16, 0x0060:16, 0x0061:16,
0x0062:16, 0x0063:16, 0x0064:16, 0x0065:16, 0x0066:16, 0x0067:16, 0x0068:16,
0x0069:16, 0x006A:16, 0x006B:16, 0x006C:16, 0x006D:16, 0x006E:16, 0x006F:16,
0x0070:16, 0x0071:16, 0x0072:16, 0x0073:16, 0x0074:16, 0x0075:16, 0x0076:16,
0x0077:16, 0x0078:16, 0x0079:16, 0x007A:16, 0x007B:16, 0x007C:16, 0x007D:16,
0x007E:16, 0x007F:16, 0x0080:16, 0x0081:16, 0x0082:16, 0x0083:16, 0x0084:16,
0x0085:16, 0x0086:16, 0x0087:16, 0x0088:16, 0x0089:16, 0x008A:16, 0x008B:16,
0x008C:16, 0x008D:16, 0x008E:16, 0x008F:16, 0x0090:16, 0x0091:16, 0x0092:16,
0x0093:16, 0x0094:16, 0x0095:16, 0x0096:16, 0x0097:16, 0x0098:16, 0x0099:16,
0x009A:16, 0x009B:16, 0x009C:16, 0x009D:16, 0x009E:16, 0x009F:16, 0x00A0:16,
0x0401:16, 0x0402:16, 0x0403:16, 0x0404:16, 0x0405:16, 0x0406:16, 0x0407:16,
0x0408:16, 0x0409:16, 0x040A:16, 0x040B:16, 0x040C:16, 0x00AD:16, 0x040E:16,
0x040F:16, 0x0410:16, 0x0411:16, 0x0412:16, 0x0413:16, 0x0414:16, 0x0415:16,
0x0416:16, 0x0417:16, 0x0418:16, 0x0419:16, 0x041A:16, 0x041B:16, 0x041C:16,
0x041D:16, 0x041E:16, 0x041F:16, 0x0420:16, 0x0421:16, 0x0422:16, 0x0423:16,
0x0424:16, 0x0425:16, 0x0426:16, 0x0427:16, 0x0428:16, 0x0429:16, 0x042A:16,
0x042B:16, 0x042C:16, 0x042D:16, 0x042E:16, 0x042F:16, 0x0430:16, 0x0431:16,
0x0432:16, 0x0433:16, 0x0434:16, 0x0435:16, 0x0436:16, 0x0437:16, 0x0438:16,
0x0439:16, 0x043A:16, 0x043B:16, 0x043C:16, 0x043D:16, 0x043E:16, 0x043F:16,
0x0440:16, 0x0441:16, 0x0442:16, 0x0443:16, 0x0444:16, 0x0445:16, 0x0446:16,
0x0447:16, 0x0448:16, 0x0449:16, 0x044A:16, 0x044B:16, 0x044C:16, 0x044D:16,
0x044E:16, 0x044F:16, 0x2116:16, 0x0451:16, 0x0452:16, 0x0453:16, 0x0454:16,
0x0455:16, 0x0456:16, 0x0457:16, 0x0458:16, 0x0459:16, 0x045A:16, 0x045B:16,
0x045C:16, 0x00A7:16, 0x045E:16, 0x045F:16,
>>
/// Lookup table for ISO/IEC 8859 Part 6.
///
const part_6_lut = <<
0x0000:16, 0x0001:16, 0x0002:16, 0x0003:16, 0x0004:16, 0x0005:16, 0x0006:16,
0x0007:16, 0x0008:16, 0x0009:16, 0x000A:16, 0x000B:16, 0x000C:16, 0x000D:16,
0x000E:16, 0x000F:16, 0x0010:16, 0x0011:16, 0x0012:16, 0x0013:16, 0x0014:16,
0x0015:16, 0x0016:16, 0x0017:16, 0x0018:16, 0x0019:16, 0x001A:16, 0x001B:16,
0x001C:16, 0x001D:16, 0x001E:16, 0x001F:16, 0x0020:16, 0x0021:16, 0x0022:16,
0x0023:16, 0x0024:16, 0x0025:16, 0x0026:16, 0x0027:16, 0x0028:16, 0x0029:16,
0x002A:16, 0x002B:16, 0x002C:16, 0x002D:16, 0x002E:16, 0x002F:16, 0x0030:16,
0x0031:16, 0x0032:16, 0x0033:16, 0x0034:16, 0x0035:16, 0x0036:16, 0x0037:16,
0x0038:16, 0x0039:16, 0x003A:16, 0x003B:16, 0x003C:16, 0x003D:16, 0x003E:16,
0x003F:16, 0x0040:16, 0x0041:16, 0x0042:16, 0x0043:16, 0x0044:16, 0x0045:16,
0x0046:16, 0x0047:16, 0x0048:16, 0x0049:16, 0x004A:16, 0x004B:16, 0x004C:16,
0x004D:16, 0x004E:16, 0x004F:16, 0x0050:16, 0x0051:16, 0x0052:16, 0x0053:16,
0x0054:16, 0x0055:16, 0x0056:16, 0x0057:16, 0x0058:16, 0x0059:16, 0x005A:16,
0x005B:16, 0x005C:16, 0x005D:16, 0x005E:16, 0x005F:16, 0x0060:16, 0x0061:16,
0x0062:16, 0x0063:16, 0x0064:16, 0x0065:16, 0x0066:16, 0x0067:16, 0x0068:16,
0x0069:16, 0x006A:16, 0x006B:16, 0x006C:16, 0x006D:16, 0x006E:16, 0x006F:16,
0x0070:16, 0x0071:16, 0x0072:16, 0x0073:16, 0x0074:16, 0x0075:16, 0x0076:16,
0x0077:16, 0x0078:16, 0x0079:16, 0x007A:16, 0x007B:16, 0x007C:16, 0x007D:16,
0x007E:16, 0x007F:16, 0x0080:16, 0x0081:16, 0x0082:16, 0x0083:16, 0x0084:16,
0x0085:16, 0x0086:16, 0x0087:16, 0x0088:16, 0x0089:16, 0x008A:16, 0x008B:16,
0x008C:16, 0x008D:16, 0x008E:16, 0x008F:16, 0x0090:16, 0x0091:16, 0x0092:16,
0x0093:16, 0x0094:16, 0x0095:16, 0x0096:16, 0x0097:16, 0x0098:16, 0x0099:16,
0x009A:16, 0x009B:16, 0x009C:16, 0x009D:16, 0x009E:16, 0x009F:16, 0x00A0:16,
0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0x00A4:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16,
0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0x060C:16, 0x00AD:16, 0xFFFD:16,
0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16,
0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0x061B:16, 0xFFFD:16,
0xFFFD:16, 0xFFFD:16, 0x061F:16, 0xFFFD:16, 0x0621:16, 0x0622:16, 0x0623:16,
0x0624:16, 0x0625:16, 0x0626:16, 0x0627:16, 0x0628:16, 0x0629:16, 0x062A:16,
0x062B:16, 0x062C:16, 0x062D:16, 0x062E:16, 0x062F:16, 0x0630:16, 0x0631:16,
0x0632:16, 0x0633:16, 0x0634:16, 0x0635:16, 0x0636:16, 0x0637:16, 0x0638:16,
0x0639:16, 0x063A:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16,
0x0640:16, 0x0641:16, 0x0642:16, 0x0643:16, 0x0644:16, 0x0645:16, 0x0646:16,
0x0647:16, 0x0648:16, 0x0649:16, 0x064A:16, 0x064B:16, 0x064C:16, 0x064D:16,
0x064E:16, 0x064F:16, 0x0650:16, 0x0651:16, 0x0652:16, 0xFFFD:16, 0xFFFD:16,
0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16,
0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16,
>>
/// Lookup table for ISO/IEC 8859 Part 7.
///
const part_7_lut = <<
0x0000:16, 0x0001:16, 0x0002:16, 0x0003:16, 0x0004:16, 0x0005:16, 0x0006:16,
0x0007:16, 0x0008:16, 0x0009:16, 0x000A:16, 0x000B:16, 0x000C:16, 0x000D:16,
0x000E:16, 0x000F:16, 0x0010:16, 0x0011:16, 0x0012:16, 0x0013:16, 0x0014:16,
0x0015:16, 0x0016:16, 0x0017:16, 0x0018:16, 0x0019:16, 0x001A:16, 0x001B:16,
0x001C:16, 0x001D:16, 0x001E:16, 0x001F:16, 0x0020:16, 0x0021:16, 0x0022:16,
0x0023:16, 0x0024:16, 0x0025:16, 0x0026:16, 0x0027:16, 0x0028:16, 0x0029:16,
0x002A:16, 0x002B:16, 0x002C:16, 0x002D:16, 0x002E:16, 0x002F:16, 0x0030:16,
0x0031:16, 0x0032:16, 0x0033:16, 0x0034:16, 0x0035:16, 0x0036:16, 0x0037:16,
0x0038:16, 0x0039:16, 0x003A:16, 0x003B:16, 0x003C:16, 0x003D:16, 0x003E:16,
0x003F:16, 0x0040:16, 0x0041:16, 0x0042:16, 0x0043:16, 0x0044:16, 0x0045:16,
0x0046:16, 0x0047:16, 0x0048:16, 0x0049:16, 0x004A:16, 0x004B:16, 0x004C:16,
0x004D:16, 0x004E:16, 0x004F:16, 0x0050:16, 0x0051:16, 0x0052:16, 0x0053:16,
0x0054:16, 0x0055:16, 0x0056:16, 0x0057:16, 0x0058:16, 0x0059:16, 0x005A:16,
0x005B:16, 0x005C:16, 0x005D:16, 0x005E:16, 0x005F:16, 0x0060:16, 0x0061:16,
0x0062:16, 0x0063:16, 0x0064:16, 0x0065:16, 0x0066:16, 0x0067:16, 0x0068:16,
0x0069:16, 0x006A:16, 0x006B:16, 0x006C:16, 0x006D:16, 0x006E:16, 0x006F:16,
0x0070:16, 0x0071:16, 0x0072:16, 0x0073:16, 0x0074:16, 0x0075:16, 0x0076:16,
0x0077:16, 0x0078:16, 0x0079:16, 0x007A:16, 0x007B:16, 0x007C:16, 0x007D:16,
0x007E:16, 0x007F:16, 0x0080:16, 0x0081:16, 0x0082:16, 0x0083:16, 0x0084:16,
0x0085:16, 0x0086:16, 0x0087:16, 0x0088:16, 0x0089:16, 0x008A:16, 0x008B:16,
0x008C:16, 0x008D:16, 0x008E:16, 0x008F:16, 0x0090:16, 0x0091:16, 0x0092:16,
0x0093:16, 0x0094:16, 0x0095:16, 0x0096:16, 0x0097:16, 0x0098:16, 0x0099:16,
0x009A:16, 0x009B:16, 0x009C:16, 0x009D:16, 0x009E:16, 0x009F:16, 0x00A0:16,
0x2018:16, 0x2019:16, 0x00A3:16, 0x20AC:16, 0x20AF:16, 0x00A6:16, 0x00A7:16,
0x00A8:16, 0x00A9:16, 0x037A:16, 0x00AB:16, 0x00AC:16, 0x00AD:16, 0xFFFD:16,
0x2015:16, 0x00B0:16, 0x00B1:16, 0x00B2:16, 0x00B3:16, 0x0384:16, 0x0385:16,
0x0386:16, 0x00B7:16, 0x0388:16, 0x0389:16, 0x038A:16, 0x00BB:16, 0x038C:16,
0x00BD:16, 0x038E:16, 0x038F:16, 0x0390:16, 0x0391:16, 0x0392:16, 0x0393:16,
0x0394:16, 0x0395:16, 0x0396:16, 0x0397:16, 0x0398:16, 0x0399:16, 0x039A:16,
0x039B:16, 0x039C:16, 0x039D:16, 0x039E:16, 0x039F:16, 0x03A0:16, 0x03A1:16,
0xFFFD:16, 0x03A3:16, 0x03A4:16, 0x03A5:16, 0x03A6:16, 0x03A7:16, 0x03A8:16,
0x03A9:16, 0x03AA:16, 0x03AB:16, 0x03AC:16, 0x03AD:16, 0x03AE:16, 0x03AF:16,
0x03B0:16, 0x03B1:16, 0x03B2:16, 0x03B3:16, 0x03B4:16, 0x03B5:16, 0x03B6:16,
0x03B7:16, 0x03B8:16, 0x03B9:16, 0x03BA:16, 0x03BB:16, 0x03BC:16, 0x03BD:16,
0x03BE:16, 0x03BF:16, 0x03C0:16, 0x03C1:16, 0x03C2:16, 0x03C3:16, 0x03C4:16,
0x03C5:16, 0x03C6:16, 0x03C7:16, 0x03C8:16, 0x03C9:16, 0x03CA:16, 0x03CB:16,
0x03CC:16, 0x03CD:16, 0x03CE:16, 0xFFFD:16,
>>
/// Lookup table for ISO/IEC 8859 Part 8.
///
const part_8_lut = <<
0x0000:16, 0x0001:16, 0x0002:16, 0x0003:16, 0x0004:16, 0x0005:16, 0x0006:16,
0x0007:16, 0x0008:16, 0x0009:16, 0x000A:16, 0x000B:16, 0x000C:16, 0x000D:16,
0x000E:16, 0x000F:16, 0x0010:16, 0x0011:16, 0x0012:16, 0x0013:16, 0x0014:16,
0x0015:16, 0x0016:16, 0x0017:16, 0x0018:16, 0x0019:16, 0x001A:16, 0x001B:16,
0x001C:16, 0x001D:16, 0x001E:16, 0x001F:16, 0x0020:16, 0x0021:16, 0x0022:16,
0x0023:16, 0x0024:16, 0x0025:16, 0x0026:16, 0x0027:16, 0x0028:16, 0x0029:16,
0x002A:16, 0x002B:16, 0x002C:16, 0x002D:16, 0x002E:16, 0x002F:16, 0x0030:16,
0x0031:16, 0x0032:16, 0x0033:16, 0x0034:16, 0x0035:16, 0x0036:16, 0x0037:16,
0x0038:16, 0x0039:16, 0x003A:16, 0x003B:16, 0x003C:16, 0x003D:16, 0x003E:16,
0x003F:16, 0x0040:16, 0x0041:16, 0x0042:16, 0x0043:16, 0x0044:16, 0x0045:16,
0x0046:16, 0x0047:16, 0x0048:16, 0x0049:16, 0x004A:16, 0x004B:16, 0x004C:16,
0x004D:16, 0x004E:16, 0x004F:16, 0x0050:16, 0x0051:16, 0x0052:16, 0x0053:16,
0x0054:16, 0x0055:16, 0x0056:16, 0x0057:16, 0x0058:16, 0x0059:16, 0x005A:16,
0x005B:16, 0x005C:16, 0x005D:16, 0x005E:16, 0x005F:16, 0x0060:16, 0x0061:16,
0x0062:16, 0x0063:16, 0x0064:16, 0x0065:16, 0x0066:16, 0x0067:16, 0x0068:16,
0x0069:16, 0x006A:16, 0x006B:16, 0x006C:16, 0x006D:16, 0x006E:16, 0x006F:16,
0x0070:16, 0x0071:16, 0x0072:16, 0x0073:16, 0x0074:16, 0x0075:16, 0x0076:16,
0x0077:16, 0x0078:16, 0x0079:16, 0x007A:16, 0x007B:16, 0x007C:16, 0x007D:16,
0x007E:16, 0x007F:16, 0x0080:16, 0x0081:16, 0x0082:16, 0x0083:16, 0x0084:16,
0x0085:16, 0x0086:16, 0x0087:16, 0x0088:16, 0x0089:16, 0x008A:16, 0x008B:16,
0x008C:16, 0x008D:16, 0x008E:16, 0x008F:16, 0x0090:16, 0x0091:16, 0x0092:16,
0x0093:16, 0x0094:16, 0x0095:16, 0x0096:16, 0x0097:16, 0x0098:16, 0x0099:16,
0x009A:16, 0x009B:16, 0x009C:16, 0x009D:16, 0x009E:16, 0x009F:16, 0x00A0:16,
0xFFFD:16, 0x00A2:16, 0x00A3:16, 0x00A4:16, 0x00A5:16, 0x00A6:16, 0x00A7:16,
0x00A8:16, 0x00A9:16, 0x00D7:16, 0x00AB:16, 0x00AC:16, 0x00AD:16, 0x00AE:16,
0x00AF:16, 0x00B0:16, 0x00B1:16, 0x00B2:16, 0x00B3:16, 0x00B4:16, 0x00B5:16,
0x00B6:16, 0x00B7:16, 0x00B8:16, 0x00B9:16, 0x00F7:16, 0x00BB:16, 0x00BC:16,
0x00BD:16, 0x00BE:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16,
0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16,
0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16,
0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16,
0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0x2017:16,
0x05D0:16, 0x05D1:16, 0x05D2:16, 0x05D3:16, 0x05D4:16, 0x05D5:16, 0x05D6:16,
0x05D7:16, 0x05D8:16, 0x05D9:16, 0x05DA:16, 0x05DB:16, 0x05DC:16, 0x05DD:16,
0x05DE:16, 0x05DF:16, 0x05E0:16, 0x05E1:16, 0x05E2:16, 0x05E3:16, 0x05E4:16,
0x05E5:16, 0x05E6:16, 0x05E7:16, 0x05E8:16, 0x05E9:16, 0x05EA:16, 0xFFFD:16,
0xFFFD:16, 0x200E:16, 0x200F:16, 0xFFFD:16,
>>
/// Lookup table for ISO/IEC 8859 Part 9.
///
const part_9_lut = <<
0x0000:16, 0x0001:16, 0x0002:16, 0x0003:16, 0x0004:16, 0x0005:16, 0x0006:16,
0x0007:16, 0x0008:16, 0x0009:16, 0x000A:16, 0x000B:16, 0x000C:16, 0x000D:16,
0x000E:16, 0x000F:16, 0x0010:16, 0x0011:16, 0x0012:16, 0x0013:16, 0x0014:16,
0x0015:16, 0x0016:16, 0x0017:16, 0x0018:16, 0x0019:16, 0x001A:16, 0x001B:16,
0x001C:16, 0x001D:16, 0x001E:16, 0x001F:16, 0x0020:16, 0x0021:16, 0x0022:16,
0x0023:16, 0x0024:16, 0x0025:16, 0x0026:16, 0x0027:16, 0x0028:16, 0x0029:16,
0x002A:16, 0x002B:16, 0x002C:16, 0x002D:16, 0x002E:16, 0x002F:16, 0x0030:16,
0x0031:16, 0x0032:16, 0x0033:16, 0x0034:16, 0x0035:16, 0x0036:16, 0x0037:16,
0x0038:16, 0x0039:16, 0x003A:16, 0x003B:16, 0x003C:16, 0x003D:16, 0x003E:16,
0x003F:16, 0x0040:16, 0x0041:16, 0x0042:16, 0x0043:16, 0x0044:16, 0x0045:16,
0x0046:16, 0x0047:16, 0x0048:16, 0x0049:16, 0x004A:16, 0x004B:16, 0x004C:16,
0x004D:16, 0x004E:16, 0x004F:16, 0x0050:16, 0x0051:16, 0x0052:16, 0x0053:16,
0x0054:16, 0x0055:16, 0x0056:16, 0x0057:16, 0x0058:16, 0x0059:16, 0x005A:16,
0x005B:16, 0x005C:16, 0x005D:16, 0x005E:16, 0x005F:16, 0x0060:16, 0x0061:16,
0x0062:16, 0x0063:16, 0x0064:16, 0x0065:16, 0x0066:16, 0x0067:16, 0x0068:16,
0x0069:16, 0x006A:16, 0x006B:16, 0x006C:16, 0x006D:16, 0x006E:16, 0x006F:16,
0x0070:16, 0x0071:16, 0x0072:16, 0x0073:16, 0x0074:16, 0x0075:16, 0x0076:16,
0x0077:16, 0x0078:16, 0x0079:16, 0x007A:16, 0x007B:16, 0x007C:16, 0x007D:16,
0x007E:16, 0x007F:16, 0x0080:16, 0x0081:16, 0x0082:16, 0x0083:16, 0x0084:16,
0x0085:16, 0x0086:16, 0x0087:16, 0x0088:16, 0x0089:16, 0x008A:16, 0x008B:16,
0x008C:16, 0x008D:16, 0x008E:16, 0x008F:16, 0x0090:16, 0x0091:16, 0x0092:16,
0x0093:16, 0x0094:16, 0x0095:16, 0x0096:16, 0x0097:16, 0x0098:16, 0x0099:16,
0x009A:16, 0x009B:16, 0x009C:16, 0x009D:16, 0x009E:16, 0x009F:16, 0x00A0:16,
0x00A1:16, 0x00A2:16, 0x00A3:16, 0x00A4:16, 0x00A5:16, 0x00A6:16, 0x00A7:16,
0x00A8:16, 0x00A9:16, 0x00AA:16, 0x00AB:16, 0x00AC:16, 0x00AD:16, 0x00AE:16,
0x00AF:16, 0x00B0:16, 0x00B1:16, 0x00B2:16, 0x00B3:16, 0x00B4:16, 0x00B5:16,
0x00B6:16, 0x00B7:16, 0x00B8:16, 0x00B9:16, 0x00BA:16, 0x00BB:16, 0x00BC:16,
0x00BD:16, 0x00BE:16, 0x00BF:16, 0x00C0:16, 0x00C1:16, 0x00C2:16, 0x00C3:16,
0x00C4:16, 0x00C5:16, 0x00C6:16, 0x00C7:16, 0x00C8:16, 0x00C9:16, 0x00CA:16,
0x00CB:16, 0x00CC:16, 0x00CD:16, 0x00CE:16, 0x00CF:16, 0x011E:16, 0x00D1:16,
0x00D2:16, 0x00D3:16, 0x00D4:16, 0x00D5:16, 0x00D6:16, 0x00D7:16, 0x00D8:16,
0x00D9:16, 0x00DA:16, 0x00DB:16, 0x00DC:16, 0x0130:16, 0x015E:16, 0x00DF:16,
0x00E0:16, 0x00E1:16, 0x00E2:16, 0x00E3:16, 0x00E4:16, 0x00E5:16, 0x00E6:16,
0x00E7:16, 0x00E8:16, 0x00E9:16, 0x00EA:16, 0x00EB:16, 0x00EC:16, 0x00ED:16,
0x00EE:16, 0x00EF:16, 0x011F:16, 0x00F1:16, 0x00F2:16, 0x00F3:16, 0x00F4:16,
0x00F5:16, 0x00F6:16, 0x00F7:16, 0x00F8:16, 0x00F9:16, 0x00FA:16, 0x00FB:16,
0x00FC:16, 0x0131:16, 0x015F:16, 0x00FF:16,
>>
/// Lookup table for ISO/IEC 8859 Part 10.
///
const part_10_lut = <<
0x0000:16, 0x0001:16, 0x0002:16, 0x0003:16, 0x0004:16, 0x0005:16, 0x0006:16,
0x0007:16, 0x0008:16, 0x0009:16, 0x000A:16, 0x000B:16, 0x000C:16, 0x000D:16,
0x000E:16, 0x000F:16, 0x0010:16, 0x0011:16, 0x0012:16, 0x0013:16, 0x0014:16,
0x0015:16, 0x0016:16, 0x0017:16, 0x0018:16, 0x0019:16, 0x001A:16, 0x001B:16,
0x001C:16, 0x001D:16, 0x001E:16, 0x001F:16, 0x0020:16, 0x0021:16, 0x0022:16,
0x0023:16, 0x0024:16, 0x0025:16, 0x0026:16, 0x0027:16, 0x0028:16, 0x0029:16,
0x002A:16, 0x002B:16, 0x002C:16, 0x002D:16, 0x002E:16, 0x002F:16, 0x0030:16,
0x0031:16, 0x0032:16, 0x0033:16, 0x0034:16, 0x0035:16, 0x0036:16, 0x0037:16,
0x0038:16, 0x0039:16, 0x003A:16, 0x003B:16, 0x003C:16, 0x003D:16, 0x003E:16,
0x003F:16, 0x0040:16, 0x0041:16, 0x0042:16, 0x0043:16, 0x0044:16, 0x0045:16,
0x0046:16, 0x0047:16, 0x0048:16, 0x0049:16, 0x004A:16, 0x004B:16, 0x004C:16,
0x004D:16, 0x004E:16, 0x004F:16, 0x0050:16, 0x0051:16, 0x0052:16, 0x0053:16,
0x0054:16, 0x0055:16, 0x0056:16, 0x0057:16, 0x0058:16, 0x0059:16, 0x005A:16,
0x005B:16, 0x005C:16, 0x005D:16, 0x005E:16, 0x005F:16, 0x0060:16, 0x0061:16,
0x0062:16, 0x0063:16, 0x0064:16, 0x0065:16, 0x0066:16, 0x0067:16, 0x0068:16,
0x0069:16, 0x006A:16, 0x006B:16, 0x006C:16, 0x006D:16, 0x006E:16, 0x006F:16,
0x0070:16, 0x0071:16, 0x0072:16, 0x0073:16, 0x0074:16, 0x0075:16, 0x0076:16,
0x0077:16, 0x0078:16, 0x0079:16, 0x007A:16, 0x007B:16, 0x007C:16, 0x007D:16,
0x007E:16, 0x007F:16, 0x0080:16, 0x0081:16, 0x0082:16, 0x0083:16, 0x0084:16,
0x0085:16, 0x0086:16, 0x0087:16, 0x0088:16, 0x0089:16, 0x008A:16, 0x008B:16,
0x008C:16, 0x008D:16, 0x008E:16, 0x008F:16, 0x0090:16, 0x0091:16, 0x0092:16,
0x0093:16, 0x0094:16, 0x0095:16, 0x0096:16, 0x0097:16, 0x0098:16, 0x0099:16,
0x009A:16, 0x009B:16, 0x009C:16, 0x009D:16, 0x009E:16, 0x009F:16, 0x00A0:16,
0x0104:16, 0x0112:16, 0x0122:16, 0x012A:16, 0x0128:16, 0x0136:16, 0x00A7:16,
0x013B:16, 0x0110:16, 0x0160:16, 0x0166:16, 0x017D:16, 0x00AD:16, 0x016A:16,
0x014A:16, 0x00B0:16, 0x0105:16, 0x0113:16, 0x0123:16, 0x012B:16, 0x0129:16,
0x0137:16, 0x00B7:16, 0x013C:16, 0x0111:16, 0x0161:16, 0x0167:16, 0x017E:16,
0x2015:16, 0x016B:16, 0x014B:16, 0x0100:16, 0x00C1:16, 0x00C2:16, 0x00C3:16,
0x00C4:16, 0x00C5:16, 0x00C6:16, 0x012E:16, 0x010C:16, 0x00C9:16, 0x0118:16,
0x00CB:16, 0x0116:16, 0x00CD:16, 0x00CE:16, 0x00CF:16, 0x00D0:16, 0x0145:16,
0x014C:16, 0x00D3:16, 0x00D4:16, 0x00D5:16, 0x00D6:16, 0x0168:16, 0x00D8:16,
0x0172:16, 0x00DA:16, 0x00DB:16, 0x00DC:16, 0x00DD:16, 0x00DE:16, 0x00DF:16,
0x0101:16, 0x00E1:16, 0x00E2:16, 0x00E3:16, 0x00E4:16, 0x00E5:16, 0x00E6:16,
0x012F:16, 0x010D:16, 0x00E9:16, 0x0119:16, 0x00EB:16, 0x0117:16, 0x00ED:16,
0x00EE:16, 0x00EF:16, 0x00F0:16, 0x0146:16, 0x014D:16, 0x00F3:16, 0x00F4:16,
0x00F5:16, 0x00F6:16, 0x0169:16, 0x00F8:16, 0x0173:16, 0x00FA:16, 0x00FB:16,
0x00FC:16, 0x00FD:16, 0x00FE:16, 0x0138:16,
>>
/// Lookup table for ISO/IEC 8859 Part 11.
///
const part_11_lut = <<
0x0000:16, 0x0001:16, 0x0002:16, 0x0003:16, 0x0004:16, 0x0005:16, 0x0006:16,
0x0007:16, 0x0008:16, 0x0009:16, 0x000A:16, 0x000B:16, 0x000C:16, 0x000D:16,
0x000E:16, 0x000F:16, 0x0010:16, 0x0011:16, 0x0012:16, 0x0013:16, 0x0014:16,
0x0015:16, 0x0016:16, 0x0017:16, 0x0018:16, 0x0019:16, 0x001A:16, 0x001B:16,
0x001C:16, 0x001D:16, 0x001E:16, 0x001F:16, 0x0020:16, 0x0021:16, 0x0022:16,
0x0023:16, 0x0024:16, 0x0025:16, 0x0026:16, 0x0027:16, 0x0028:16, 0x0029:16,
0x002A:16, 0x002B:16, 0x002C:16, 0x002D:16, 0x002E:16, 0x002F:16, 0x0030:16,
0x0031:16, 0x0032:16, 0x0033:16, 0x0034:16, 0x0035:16, 0x0036:16, 0x0037:16,
0x0038:16, 0x0039:16, 0x003A:16, 0x003B:16, 0x003C:16, 0x003D:16, 0x003E:16,
0x003F:16, 0x0040:16, 0x0041:16, 0x0042:16, 0x0043:16, 0x0044:16, 0x0045:16,
0x0046:16, 0x0047:16, 0x0048:16, 0x0049:16, 0x004A:16, 0x004B:16, 0x004C:16,
0x004D:16, 0x004E:16, 0x004F:16, 0x0050:16, 0x0051:16, 0x0052:16, 0x0053:16,
0x0054:16, 0x0055:16, 0x0056:16, 0x0057:16, 0x0058:16, 0x0059:16, 0x005A:16,
0x005B:16, 0x005C:16, 0x005D:16, 0x005E:16, 0x005F:16, 0x0060:16, 0x0061:16,
0x0062:16, 0x0063:16, 0x0064:16, 0x0065:16, 0x0066:16, 0x0067:16, 0x0068:16,
0x0069:16, 0x006A:16, 0x006B:16, 0x006C:16, 0x006D:16, 0x006E:16, 0x006F:16,
0x0070:16, 0x0071:16, 0x0072:16, 0x0073:16, 0x0074:16, 0x0075:16, 0x0076:16,
0x0077:16, 0x0078:16, 0x0079:16, 0x007A:16, 0x007B:16, 0x007C:16, 0x007D:16,
0x007E:16, 0x007F:16, 0x0080:16, 0x0081:16, 0x0082:16, 0x0083:16, 0x0084:16,
0x0085:16, 0x0086:16, 0x0087:16, 0x0088:16, 0x0089:16, 0x008A:16, 0x008B:16,
0x008C:16, 0x008D:16, 0x008E:16, 0x008F:16, 0x0090:16, 0x0091:16, 0x0092:16,
0x0093:16, 0x0094:16, 0x0095:16, 0x0096:16, 0x0097:16, 0x0098:16, 0x0099:16,
0x009A:16, 0x009B:16, 0x009C:16, 0x009D:16, 0x009E:16, 0x009F:16, 0x00A0:16,
0x0E01:16, 0x0E02:16, 0x0E03:16, 0x0E04:16, 0x0E05:16, 0x0E06:16, 0x0E07:16,
0x0E08:16, 0x0E09:16, 0x0E0A:16, 0x0E0B:16, 0x0E0C:16, 0x0E0D:16, 0x0E0E:16,
0x0E0F:16, 0x0E10:16, 0x0E11:16, 0x0E12:16, 0x0E13:16, 0x0E14:16, 0x0E15:16,
0x0E16:16, 0x0E17:16, 0x0E18:16, 0x0E19:16, 0x0E1A:16, 0x0E1B:16, 0x0E1C:16,
0x0E1D:16, 0x0E1E:16, 0x0E1F:16, 0x0E20:16, 0x0E21:16, 0x0E22:16, 0x0E23:16,
0x0E24:16, 0x0E25:16, 0x0E26:16, 0x0E27:16, 0x0E28:16, 0x0E29:16, 0x0E2A:16,
0x0E2B:16, 0x0E2C:16, 0x0E2D:16, 0x0E2E:16, 0x0E2F:16, 0x0E30:16, 0x0E31:16,
0x0E32:16, 0x0E33:16, 0x0E34:16, 0x0E35:16, 0x0E36:16, 0x0E37:16, 0x0E38:16,
0x0E39:16, 0x0E3A:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0x0E3F:16,
0x0E40:16, 0x0E41:16, 0x0E42:16, 0x0E43:16, 0x0E44:16, 0x0E45:16, 0x0E46:16,
0x0E47:16, 0x0E48:16, 0x0E49:16, 0x0E4A:16, 0x0E4B:16, 0x0E4C:16, 0x0E4D:16,
0x0E4E:16, 0x0E4F:16, 0x0E50:16, 0x0E51:16, 0x0E52:16, 0x0E53:16, 0x0E54:16,
0x0E55:16, 0x0E56:16, 0x0E57:16, 0x0E58:16, 0x0E59:16, 0x0E5A:16, 0x0E5B:16,
0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16,
>>
/// Lookup table for ISO/IEC 8859 Part 13.
///
const part_13_lut = <<
0x0000:16, 0x0001:16, 0x0002:16, 0x0003:16, 0x0004:16, 0x0005:16, 0x0006:16,
0x0007:16, 0x0008:16, 0x0009:16, 0x000A:16, 0x000B:16, 0x000C:16, 0x000D:16,
0x000E:16, 0x000F:16, 0x0010:16, 0x0011:16, 0x0012:16, 0x0013:16, 0x0014:16,
0x0015:16, 0x0016:16, 0x0017:16, 0x0018:16, 0x0019:16, 0x001A:16, 0x001B:16,
0x001C:16, 0x001D:16, 0x001E:16, 0x001F:16, 0x0020:16, 0x0021:16, 0x0022:16,
0x0023:16, 0x0024:16, 0x0025:16, 0x0026:16, 0x0027:16, 0x0028:16, 0x0029:16,
0x002A:16, 0x002B:16, 0x002C:16, 0x002D:16, 0x002E:16, 0x002F:16, 0x0030:16,
0x0031:16, 0x0032:16, 0x0033:16, 0x0034:16, 0x0035:16, 0x0036:16, 0x0037:16,
0x0038:16, 0x0039:16, 0x003A:16, 0x003B:16, 0x003C:16, 0x003D:16, 0x003E:16,
0x003F:16, 0x0040:16, 0x0041:16, 0x0042:16, 0x0043:16, 0x0044:16, 0x0045:16,
0x0046:16, 0x0047:16, 0x0048:16, 0x0049:16, 0x004A:16, 0x004B:16, 0x004C:16,
0x004D:16, 0x004E:16, 0x004F:16, 0x0050:16, 0x0051:16, 0x0052:16, 0x0053:16,
0x0054:16, 0x0055:16, 0x0056:16, 0x0057:16, 0x0058:16, 0x0059:16, 0x005A:16,
0x005B:16, 0x005C:16, 0x005D:16, 0x005E:16, 0x005F:16, 0x0060:16, 0x0061:16,
0x0062:16, 0x0063:16, 0x0064:16, 0x0065:16, 0x0066:16, 0x0067:16, 0x0068:16,
0x0069:16, 0x006A:16, 0x006B:16, 0x006C:16, 0x006D:16, 0x006E:16, 0x006F:16,
0x0070:16, 0x0071:16, 0x0072:16, 0x0073:16, 0x0074:16, 0x0075:16, 0x0076:16,
0x0077:16, 0x0078:16, 0x0079:16, 0x007A:16, 0x007B:16, 0x007C:16, 0x007D:16,
0x007E:16, 0x007F:16, 0x0080:16, 0x0081:16, 0x0082:16, 0x0083:16, 0x0084:16,
0x0085:16, 0x0086:16, 0x0087:16, 0x0088:16, 0x0089:16, 0x008A:16, 0x008B:16,
0x008C:16, 0x008D:16, 0x008E:16, 0x008F:16, 0x0090:16, 0x0091:16, 0x0092:16,
0x0093:16, 0x0094:16, 0x0095:16, 0x0096:16, 0x0097:16, 0x0098:16, 0x0099:16,
0x009A:16, 0x009B:16, 0x009C:16, 0x009D:16, 0x009E:16, 0x009F:16, 0x00A0:16,
0x201D:16, 0x00A2:16, 0x00A3:16, 0x00A4:16, 0x201E:16, 0x00A6:16, 0x00A7:16,
0x00D8:16, 0x00A9:16, 0x0156:16, 0x00AB:16, 0x00AC:16, 0x00AD:16, 0x00AE:16,
0x00C6:16, 0x00B0:16, 0x00B1:16, 0x00B2:16, 0x00B3:16, 0x201C:16, 0x00B5:16,
0x00B6:16, 0x00B7:16, 0x00F8:16, 0x00B9:16, 0x0157:16, 0x00BB:16, 0x00BC:16,
0x00BD:16, 0x00BE:16, 0x00E6:16, 0x0104:16, 0x012E:16, 0x0100:16, 0x0106:16,
0x00C4:16, 0x00C5:16, 0x0118:16, 0x0112:16, 0x010C:16, 0x00C9:16, 0x0179:16,
0x0116:16, 0x0122:16, 0x0136:16, 0x012A:16, 0x013B:16, 0x0160:16, 0x0143:16,
0x0145:16, 0x00D3:16, 0x014C:16, 0x00D5:16, 0x00D6:16, 0x00D7:16, 0x0172:16,
0x0141:16, 0x015A:16, 0x016A:16, 0x00DC:16, 0x017B:16, 0x017D:16, 0x00DF:16,
0x0105:16, 0x012F:16, 0x0101:16, 0x0107:16, 0x00E4:16, 0x00E5:16, 0x0119:16,
0x0113:16, 0x010D:16, 0x00E9:16, 0x017A:16, 0x0117:16, 0x0123:16, 0x0137:16,
0x012B:16, 0x013C:16, 0x0161:16, 0x0144:16, 0x0146:16, 0x00F3:16, 0x014D:16,
0x00F5:16, 0x00F6:16, 0x00F7:16, 0x0173:16, 0x0142:16, 0x015B:16, 0x016B:16,
0x00FC:16, 0x017C:16, 0x017E:16, 0x2019:16,
>>
/// Lookup table for ISO/IEC 8859 Part 14.
///
const part_14_lut = <<
0x0000:16, 0x0001:16, 0x0002:16, 0x0003:16, 0x0004:16, 0x0005:16, 0x0006:16,
0x0007:16, 0x0008:16, 0x0009:16, 0x000A:16, 0x000B:16, 0x000C:16, 0x000D:16,
0x000E:16, 0x000F:16, 0x0010:16, 0x0011:16, 0x0012:16, 0x0013:16, 0x0014:16,
0x0015:16, 0x0016:16, 0x0017:16, 0x0018:16, 0x0019:16, 0x001A:16, 0x001B:16,
0x001C:16, 0x001D:16, 0x001E:16, 0x001F:16, 0x0020:16, 0x0021:16, 0x0022:16,
0x0023:16, 0x0024:16, 0x0025:16, 0x0026:16, 0x0027:16, 0x0028:16, 0x0029:16,
0x002A:16, 0x002B:16, 0x002C:16, 0x002D:16, 0x002E:16, 0x002F:16, 0x0030:16,
0x0031:16, 0x0032:16, 0x0033:16, 0x0034:16, 0x0035:16, 0x0036:16, 0x0037:16,
0x0038:16, 0x0039:16, 0x003A:16, 0x003B:16, 0x003C:16, 0x003D:16, 0x003E:16,
0x003F:16, 0x0040:16, 0x0041:16, 0x0042:16, 0x0043:16, 0x0044:16, 0x0045:16,
0x0046:16, 0x0047:16, 0x0048:16, 0x0049:16, 0x004A:16, 0x004B:16, 0x004C:16,
0x004D:16, 0x004E:16, 0x004F:16, 0x0050:16, 0x0051:16, 0x0052:16, 0x0053:16,
0x0054:16, 0x0055:16, 0x0056:16, 0x0057:16, 0x0058:16, 0x0059:16, 0x005A:16,
0x005B:16, 0x005C:16, 0x005D:16, 0x005E:16, 0x005F:16, 0x0060:16, 0x0061:16,
0x0062:16, 0x0063:16, 0x0064:16, 0x0065:16, 0x0066:16, 0x0067:16, 0x0068:16,
0x0069:16, 0x006A:16, 0x006B:16, 0x006C:16, 0x006D:16, 0x006E:16, 0x006F:16,
0x0070:16, 0x0071:16, 0x0072:16, 0x0073:16, 0x0074:16, 0x0075:16, 0x0076:16,
0x0077:16, 0x0078:16, 0x0079:16, 0x007A:16, 0x007B:16, 0x007C:16, 0x007D:16,
0x007E:16, 0x007F:16, 0x0080:16, 0x0081:16, 0x0082:16, 0x0083:16, 0x0084:16,
0x0085:16, 0x0086:16, 0x0087:16, 0x0088:16, 0x0089:16, 0x008A:16, 0x008B:16,
0x008C:16, 0x008D:16, 0x008E:16, 0x008F:16, 0x0090:16, 0x0091:16, 0x0092:16,
0x0093:16, 0x0094:16, 0x0095:16, 0x0096:16, 0x0097:16, 0x0098:16, 0x0099:16,
0x009A:16, 0x009B:16, 0x009C:16, 0x009D:16, 0x009E:16, 0x009F:16, 0x00A0:16,
0x1E02:16, 0x1E03:16, 0x00A3:16, 0x010A:16, 0x010B:16, 0x1E0A:16, 0x00A7:16,
0x1E80:16, 0x00A9:16, 0x1E82:16, 0x1E0B:16, 0x1EF2:16, 0x00AD:16, 0x00AE:16,
0x0178:16, 0x1E1E:16, 0x1E1F:16, 0x0120:16, 0x0121:16, 0x1E40:16, 0x1E41:16,
0x00B6:16, 0x1E56:16, 0x1E81:16, 0x1E57:16, 0x1E83:16, 0x1E60:16, 0x1EF3:16,
0x1E84:16, 0x1E85:16, 0x1E61:16, 0x00C0:16, 0x00C1:16, 0x00C2:16, 0x00C3:16,
0x00C4:16, 0x00C5:16, 0x00C6:16, 0x00C7:16, 0x00C8:16, 0x00C9:16, 0x00CA:16,
0x00CB:16, 0x00CC:16, 0x00CD:16, 0x00CE:16, 0x00CF:16, 0x0174:16, 0x00D1:16,
0x00D2:16, 0x00D3:16, 0x00D4:16, 0x00D5:16, 0x00D6:16, 0x1E6A:16, 0x00D8:16,
0x00D9:16, 0x00DA:16, 0x00DB:16, 0x00DC:16, 0x00DD:16, 0x0176:16, 0x00DF:16,
0x00E0:16, 0x00E1:16, 0x00E2:16, 0x00E3:16, 0x00E4:16, 0x00E5:16, 0x00E6:16,
0x00E7:16, 0x00E8:16, 0x00E9:16, 0x00EA:16, 0x00EB:16, 0x00EC:16, 0x00ED:16,
0x00EE:16, 0x00EF:16, 0x0175:16, 0x00F1:16, 0x00F2:16, 0x00F3:16, 0x00F4:16,
0x00F5:16, 0x00F6:16, 0x1E6B:16, 0x00F8:16, 0x00F9:16, 0x00FA:16, 0x00FB:16,
0x00FC:16, 0x00FD:16, 0x0177:16, 0x00FF:16,
>>
/// Lookup table for ISO/IEC 8859 Part 15.
///
const part_15_lut = <<
0x0000:16, 0x0001:16, 0x0002:16, 0x0003:16, 0x0004:16, 0x0005:16, 0x0006:16,
0x0007:16, 0x0008:16, 0x0009:16, 0x000A:16, 0x000B:16, 0x000C:16, 0x000D:16,
0x000E:16, 0x000F:16, 0x0010:16, 0x0011:16, 0x0012:16, 0x0013:16, 0x0014:16,
0x0015:16, 0x0016:16, 0x0017:16, 0x0018:16, 0x0019:16, 0x001A:16, 0x001B:16,
0x001C:16, 0x001D:16, 0x001E:16, 0x001F:16, 0x0020:16, 0x0021:16, 0x0022:16,
0x0023:16, 0x0024:16, 0x0025:16, 0x0026:16, 0x0027:16, 0x0028:16, 0x0029:16,
0x002A:16, 0x002B:16, 0x002C:16, 0x002D:16, 0x002E:16, 0x002F:16, 0x0030:16,
0x0031:16, 0x0032:16, 0x0033:16, 0x0034:16, 0x0035:16, 0x0036:16, 0x0037:16,
0x0038:16, 0x0039:16, 0x003A:16, 0x003B:16, 0x003C:16, 0x003D:16, 0x003E:16,
0x003F:16, 0x0040:16, 0x0041:16, 0x0042:16, 0x0043:16, 0x0044:16, 0x0045:16,
0x0046:16, 0x0047:16, 0x0048:16, 0x0049:16, 0x004A:16, 0x004B:16, 0x004C:16,
0x004D:16, 0x004E:16, 0x004F:16, 0x0050:16, 0x0051:16, 0x0052:16, 0x0053:16,
0x0054:16, 0x0055:16, 0x0056:16, 0x0057:16, 0x0058:16, 0x0059:16, 0x005A:16,
0x005B:16, 0x005C:16, 0x005D:16, 0x005E:16, 0x005F:16, 0x0060:16, 0x0061:16,
0x0062:16, 0x0063:16, 0x0064:16, 0x0065:16, 0x0066:16, 0x0067:16, 0x0068:16,
0x0069:16, 0x006A:16, 0x006B:16, 0x006C:16, 0x006D:16, 0x006E:16, 0x006F:16,
0x0070:16, 0x0071:16, 0x0072:16, 0x0073:16, 0x0074:16, 0x0075:16, 0x0076:16,
0x0077:16, 0x0078:16, 0x0079:16, 0x007A:16, 0x007B:16, 0x007C:16, 0x007D:16,
0x007E:16, 0x007F:16, 0x0080:16, 0x0081:16, 0x0082:16, 0x0083:16, 0x0084:16,
0x0085:16, 0x0086:16, 0x0087:16, 0x0088:16, 0x0089:16, 0x008A:16, 0x008B:16,
0x008C:16, 0x008D:16, 0x008E:16, 0x008F:16, 0x0090:16, 0x0091:16, 0x0092:16,
0x0093:16, 0x0094:16, 0x0095:16, 0x0096:16, 0x0097:16, 0x0098:16, 0x0099:16,
0x009A:16, 0x009B:16, 0x009C:16, 0x009D:16, 0x009E:16, 0x009F:16, 0x00A0:16,
0x00A1:16, 0x00A2:16, 0x00A3:16, 0x20AC:16, 0x00A5:16, 0x0160:16, 0x00A7:16,
0x0161:16, 0x00A9:16, 0x00AA:16, 0x00AB:16, 0x00AC:16, 0x00AD:16, 0x00AE:16,
0x00AF:16, 0x00B0:16, 0x00B1:16, 0x00B2:16, 0x00B3:16, 0x017D:16, 0x00B5:16,
0x00B6:16, 0x00B7:16, 0x017E:16, 0x00B9:16, 0x00BA:16, 0x00BB:16, 0x0152:16,
0x0153:16, 0x0178:16, 0x00BF:16, 0x00C0:16, 0x00C1:16, 0x00C2:16, 0x00C3:16,
0x00C4:16, 0x00C5:16, 0x00C6:16, 0x00C7:16, 0x00C8:16, 0x00C9:16, 0x00CA:16,
0x00CB:16, 0x00CC:16, 0x00CD:16, 0x00CE:16, 0x00CF:16, 0x00D0:16, 0x00D1:16,
0x00D2:16, 0x00D3:16, 0x00D4:16, 0x00D5:16, 0x00D6:16, 0x00D7:16, 0x00D8:16,
0x00D9:16, 0x00DA:16, 0x00DB:16, 0x00DC:16, 0x00DD:16, 0x00DE:16, 0x00DF:16,
0x00E0:16, 0x00E1:16, 0x00E2:16, 0x00E3:16, 0x00E4:16, 0x00E5:16, 0x00E6:16,
0x00E7:16, 0x00E8:16, 0x00E9:16, 0x00EA:16, 0x00EB:16, 0x00EC:16, 0x00ED:16,
0x00EE:16, 0x00EF:16, 0x00F0:16, 0x00F1:16, 0x00F2:16, 0x00F3:16, 0x00F4:16,
0x00F5:16, 0x00F6:16, 0x00F7:16, 0x00F8:16, 0x00F9:16, 0x00FA:16, 0x00FB:16,
0x00FC:16, 0x00FD:16, 0x00FE:16, 0x00FF:16,
>>
/// Lookup table for ISO/IEC 8859 Part 16.
///
const part_16_lut = <<
0x0000:16, 0x0001:16, 0x0002:16, 0x0003:16, 0x0004:16, 0x0005:16, 0x0006:16,
0x0007:16, 0x0008:16, 0x0009:16, 0x000A:16, 0x000B:16, 0x000C:16, 0x000D:16,
0x000E:16, 0x000F:16, 0x0010:16, 0x0011:16, 0x0012:16, 0x0013:16, 0x0014:16,
0x0015:16, 0x0016:16, 0x0017:16, 0x0018:16, 0x0019:16, 0x001A:16, 0x001B:16,
0x001C:16, 0x001D:16, 0x001E:16, 0x001F:16, 0x0020:16, 0x0021:16, 0x0022:16,
0x0023:16, 0x0024:16, 0x0025:16, 0x0026:16, 0x0027:16, 0x0028:16, 0x0029:16,
0x002A:16, 0x002B:16, 0x002C:16, 0x002D:16, 0x002E:16, 0x002F:16, 0x0030:16,
0x0031:16, 0x0032:16, 0x0033:16, 0x0034:16, 0x0035:16, 0x0036:16, 0x0037:16,
0x0038:16, 0x0039:16, 0x003A:16, 0x003B:16, 0x003C:16, 0x003D:16, 0x003E:16,
0x003F:16, 0x0040:16, 0x0041:16, 0x0042:16, 0x0043:16, 0x0044:16, 0x0045:16,
0x0046:16, 0x0047:16, 0x0048:16, 0x0049:16, 0x004A:16, 0x004B:16, 0x004C:16,
0x004D:16, 0x004E:16, 0x004F:16, 0x0050:16, 0x0051:16, 0x0052:16, 0x0053:16,
0x0054:16, 0x0055:16, 0x0056:16, 0x0057:16, 0x0058:16, 0x0059:16, 0x005A:16,
0x005B:16, 0x005C:16, 0x005D:16, 0x005E:16, 0x005F:16, 0x0060:16, 0x0061:16,
0x0062:16, 0x0063:16, 0x0064:16, 0x0065:16, 0x0066:16, 0x0067:16, 0x0068:16,
0x0069:16, 0x006A:16, 0x006B:16, 0x006C:16, 0x006D:16, 0x006E:16, 0x006F:16,
0x0070:16, 0x0071:16, 0x0072:16, 0x0073:16, 0x0074:16, 0x0075:16, 0x0076:16,
0x0077:16, 0x0078:16, 0x0079:16, 0x007A:16, 0x007B:16, 0x007C:16, 0x007D:16,
0x007E:16, 0x007F:16, 0x0080:16, 0x0081:16, 0x0082:16, 0x0083:16, 0x0084:16,
0x0085:16, 0x0086:16, 0x0087:16, 0x0088:16, 0x0089:16, 0x008A:16, 0x008B:16,
0x008C:16, 0x008D:16, 0x008E:16, 0x008F:16, 0x0090:16, 0x0091:16, 0x0092:16,
0x0093:16, 0x0094:16, 0x0095:16, 0x0096:16, 0x0097:16, 0x0098:16, 0x0099:16,
0x009A:16, 0x009B:16, 0x009C:16, 0x009D:16, 0x009E:16, 0x009F:16, 0x00A0:16,
0x0104:16, 0x0105:16, 0x0141:16, 0x20AC:16, 0x201E:16, 0x0160:16, 0x00A7:16,
0x0161:16, 0x00A9:16, 0x0218:16, 0x00AB:16, 0x0179:16, 0x00AD:16, 0x017A:16,
0x017B:16, 0x00B0:16, 0x00B1:16, 0x010C:16, 0x0142:16, 0x017D:16, 0x201D:16,
0x00B6:16, 0x00B7:16, 0x017E:16, 0x010D:16, 0x0219:16, 0x00BB:16, 0x0152:16,
0x0153:16, 0x0178:16, 0x017C:16, 0x00C0:16, 0x00C1:16, 0x00C2:16, 0x0102:16,
0x00C4:16, 0x0106:16, 0x00C6:16, 0x00C7:16, 0x00C8:16, 0x00C9:16, 0x00CA:16,
0x00CB:16, 0x00CC:16, 0x00CD:16, 0x00CE:16, 0x00CF:16, 0x0110:16, 0x0143:16,
0x00D2:16, 0x00D3:16, 0x00D4:16, 0x0150:16, 0x00D6:16, 0x015A:16, 0x0170:16,
0x00D9:16, 0x00DA:16, 0x00DB:16, 0x00DC:16, 0x0118:16, 0x021A:16, 0x00DF:16,
0x00E0:16, 0x00E1:16, 0x00E2:16, 0x0103:16, 0x00E4:16, 0x0107:16, 0x00E6:16,
0x00E7:16, 0x00E8:16, 0x00E9:16, 0x00EA:16, 0x00EB:16, 0x00EC:16, 0x00ED:16,
0x00EE:16, 0x00EF:16, 0x0111:16, 0x0144:16, 0x00F2:16, 0x00F3:16, 0x00F4:16,
0x0151:16, 0x00F6:16, 0x015B:16, 0x0171:16, 0x00F9:16, 0x00FA:16, 0x00FB:16,
0x00FC:16, 0x0119:16, 0x021B:16, 0x00FF:16,
>>