/
properties.cr
1526 lines (1520 loc) · 74.9 KB
/
properties.cr
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
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
# This file was automatically generated by running:
#
# scripts/generate_grapheme_properties.cr
#
# DO NOT EDIT
struct String::Grapheme
# :nodoc:
#
# The Grapheme Cluster Break Property values
# http://www.unicode.org/reports/tr29/#Grapheme_Cluster_Break_Property_Values
enum Property
Start
Any
Prepend
CR
LF
Control
Extend
RegionalIndicator
SpacingMark
L
V
T
LV
LVT
ZWJ
ExtendedPictographic
ExtendedPlusZeroWidth
# returns the Unicode property value (see `Codepoints` constants below)
# of the given code point
def self.from(char : Char)
r = char.ord
# run a binary search
f = 0
t = Grapheme.codepoints.size
while t > f
mid = (f + t) // 2
cp = Grapheme.codepoints[mid]
if r < cp[0]
t = mid
next
end
if r > cp[1]
f = mid + 1
next
end
return cp[2]
end
Property::Any
end
end
# Maps code point ranges to their properties. In the context of this package,
# any code point that is not contained may map to `Property::Any`. The code point
# ranges in this slice are numerically sorted.
#
# These ranges were taken from
# http://www.unicode.org/Public/15.1.0/ucd/auxiliary/GraphemeBreakProperty.txt
# as well as
# http://www.unicode.org/Public/15.1.0/ucd/emoji/emoji-data.txt
# ("Extended_Pictographic" only). See
# https://www.unicode.org/license.html for the Unicode license agreement.
@@codepoints : Array(Tuple(Int32, Int32, Property))?
# :nodoc:
protected def self.codepoints
@@codepoints ||= begin
data = Array(Tuple(Int32, Int32, Property)).new(1447)
put(data, {0x0000, 0x0009, Property::Control})
put(data, {0x000A, 0x000A, Property::LF})
put(data, {0x000B, 0x000C, Property::Control})
put(data, {0x000D, 0x000D, Property::CR})
put(data, {0x000E, 0x001F, Property::Control})
put(data, {0x007F, 0x009F, Property::Control})
put(data, {0x00AD, 0x00AD, Property::Control})
put(data, {0x0300, 0x036F, Property::Extend})
put(data, {0x0483, 0x0489, Property::Extend})
put(data, {0x0591, 0x05BD, Property::Extend})
put(data, {0x05BF, 0x05BF, Property::Extend})
put(data, {0x05C1, 0x05C2, Property::Extend})
put(data, {0x05C4, 0x05C5, Property::Extend})
put(data, {0x05C7, 0x05C7, Property::Extend})
put(data, {0x0600, 0x0605, Property::Prepend})
put(data, {0x0610, 0x061A, Property::Extend})
put(data, {0x061C, 0x061C, Property::Control})
put(data, {0x064B, 0x065F, Property::Extend})
put(data, {0x0670, 0x0670, Property::Extend})
put(data, {0x06D6, 0x06DC, Property::Extend})
put(data, {0x06DD, 0x06DD, Property::Prepend})
put(data, {0x06DF, 0x06E4, Property::Extend})
put(data, {0x06E7, 0x06E8, Property::Extend})
put(data, {0x06EA, 0x06ED, Property::Extend})
put(data, {0x070F, 0x070F, Property::Prepend})
put(data, {0x0711, 0x0711, Property::Extend})
put(data, {0x0730, 0x074A, Property::Extend})
put(data, {0x07A6, 0x07B0, Property::Extend})
put(data, {0x07EB, 0x07F3, Property::Extend})
put(data, {0x07FD, 0x07FD, Property::Extend})
put(data, {0x0816, 0x0819, Property::Extend})
put(data, {0x081B, 0x0823, Property::Extend})
put(data, {0x0825, 0x0827, Property::Extend})
put(data, {0x0829, 0x082D, Property::Extend})
put(data, {0x0859, 0x085B, Property::Extend})
put(data, {0x0890, 0x0891, Property::Prepend})
put(data, {0x0898, 0x089F, Property::Extend})
put(data, {0x08CA, 0x08E1, Property::Extend})
put(data, {0x08E2, 0x08E2, Property::Prepend})
put(data, {0x08E3, 0x0902, Property::Extend})
put(data, {0x0903, 0x0903, Property::SpacingMark})
put(data, {0x093A, 0x093A, Property::Extend})
put(data, {0x093B, 0x093B, Property::SpacingMark})
put(data, {0x093C, 0x093C, Property::Extend})
put(data, {0x093E, 0x0940, Property::SpacingMark})
put(data, {0x0941, 0x0948, Property::Extend})
put(data, {0x0949, 0x094C, Property::SpacingMark})
put(data, {0x094D, 0x094D, Property::Extend})
put(data, {0x094E, 0x094F, Property::SpacingMark})
put(data, {0x0951, 0x0957, Property::Extend})
put(data, {0x0962, 0x0963, Property::Extend})
put(data, {0x0981, 0x0981, Property::Extend})
put(data, {0x0982, 0x0983, Property::SpacingMark})
put(data, {0x09BC, 0x09BC, Property::Extend})
put(data, {0x09BE, 0x09BE, Property::Extend})
put(data, {0x09BF, 0x09C0, Property::SpacingMark})
put(data, {0x09C1, 0x09C4, Property::Extend})
put(data, {0x09C7, 0x09C8, Property::SpacingMark})
put(data, {0x09CB, 0x09CC, Property::SpacingMark})
put(data, {0x09CD, 0x09CD, Property::Extend})
put(data, {0x09D7, 0x09D7, Property::Extend})
put(data, {0x09E2, 0x09E3, Property::Extend})
put(data, {0x09FE, 0x09FE, Property::Extend})
put(data, {0x0A01, 0x0A02, Property::Extend})
put(data, {0x0A03, 0x0A03, Property::SpacingMark})
put(data, {0x0A3C, 0x0A3C, Property::Extend})
put(data, {0x0A3E, 0x0A40, Property::SpacingMark})
put(data, {0x0A41, 0x0A42, Property::Extend})
put(data, {0x0A47, 0x0A48, Property::Extend})
put(data, {0x0A4B, 0x0A4D, Property::Extend})
put(data, {0x0A51, 0x0A51, Property::Extend})
put(data, {0x0A70, 0x0A71, Property::Extend})
put(data, {0x0A75, 0x0A75, Property::Extend})
put(data, {0x0A81, 0x0A82, Property::Extend})
put(data, {0x0A83, 0x0A83, Property::SpacingMark})
put(data, {0x0ABC, 0x0ABC, Property::Extend})
put(data, {0x0ABE, 0x0AC0, Property::SpacingMark})
put(data, {0x0AC1, 0x0AC5, Property::Extend})
put(data, {0x0AC7, 0x0AC8, Property::Extend})
put(data, {0x0AC9, 0x0AC9, Property::SpacingMark})
put(data, {0x0ACB, 0x0ACC, Property::SpacingMark})
put(data, {0x0ACD, 0x0ACD, Property::Extend})
put(data, {0x0AE2, 0x0AE3, Property::Extend})
put(data, {0x0AFA, 0x0AFF, Property::Extend})
put(data, {0x0B01, 0x0B01, Property::Extend})
put(data, {0x0B02, 0x0B03, Property::SpacingMark})
put(data, {0x0B3C, 0x0B3C, Property::Extend})
put(data, {0x0B3E, 0x0B3F, Property::Extend})
put(data, {0x0B40, 0x0B40, Property::SpacingMark})
put(data, {0x0B41, 0x0B44, Property::Extend})
put(data, {0x0B47, 0x0B48, Property::SpacingMark})
put(data, {0x0B4B, 0x0B4C, Property::SpacingMark})
put(data, {0x0B4D, 0x0B4D, Property::Extend})
put(data, {0x0B55, 0x0B57, Property::Extend})
put(data, {0x0B62, 0x0B63, Property::Extend})
put(data, {0x0B82, 0x0B82, Property::Extend})
put(data, {0x0BBE, 0x0BBE, Property::Extend})
put(data, {0x0BBF, 0x0BBF, Property::SpacingMark})
put(data, {0x0BC0, 0x0BC0, Property::Extend})
put(data, {0x0BC1, 0x0BC2, Property::SpacingMark})
put(data, {0x0BC6, 0x0BC8, Property::SpacingMark})
put(data, {0x0BCA, 0x0BCC, Property::SpacingMark})
put(data, {0x0BCD, 0x0BCD, Property::Extend})
put(data, {0x0BD7, 0x0BD7, Property::Extend})
put(data, {0x0C00, 0x0C00, Property::Extend})
put(data, {0x0C01, 0x0C03, Property::SpacingMark})
put(data, {0x0C04, 0x0C04, Property::Extend})
put(data, {0x0C3C, 0x0C3C, Property::Extend})
put(data, {0x0C3E, 0x0C40, Property::Extend})
put(data, {0x0C41, 0x0C44, Property::SpacingMark})
put(data, {0x0C46, 0x0C48, Property::Extend})
put(data, {0x0C4A, 0x0C4D, Property::Extend})
put(data, {0x0C55, 0x0C56, Property::Extend})
put(data, {0x0C62, 0x0C63, Property::Extend})
put(data, {0x0C81, 0x0C81, Property::Extend})
put(data, {0x0C82, 0x0C83, Property::SpacingMark})
put(data, {0x0CBC, 0x0CBC, Property::Extend})
put(data, {0x0CBE, 0x0CBE, Property::SpacingMark})
put(data, {0x0CBF, 0x0CBF, Property::Extend})
put(data, {0x0CC0, 0x0CC1, Property::SpacingMark})
put(data, {0x0CC2, 0x0CC2, Property::Extend})
put(data, {0x0CC3, 0x0CC4, Property::SpacingMark})
put(data, {0x0CC6, 0x0CC6, Property::Extend})
put(data, {0x0CC7, 0x0CC8, Property::SpacingMark})
put(data, {0x0CCA, 0x0CCB, Property::SpacingMark})
put(data, {0x0CCC, 0x0CCD, Property::Extend})
put(data, {0x0CD5, 0x0CD6, Property::Extend})
put(data, {0x0CE2, 0x0CE3, Property::Extend})
put(data, {0x0CF3, 0x0CF3, Property::SpacingMark})
put(data, {0x0D00, 0x0D01, Property::Extend})
put(data, {0x0D02, 0x0D03, Property::SpacingMark})
put(data, {0x0D3B, 0x0D3C, Property::Extend})
put(data, {0x0D3E, 0x0D3E, Property::Extend})
put(data, {0x0D3F, 0x0D40, Property::SpacingMark})
put(data, {0x0D41, 0x0D44, Property::Extend})
put(data, {0x0D46, 0x0D48, Property::SpacingMark})
put(data, {0x0D4A, 0x0D4C, Property::SpacingMark})
put(data, {0x0D4D, 0x0D4D, Property::Extend})
put(data, {0x0D4E, 0x0D4E, Property::Prepend})
put(data, {0x0D57, 0x0D57, Property::Extend})
put(data, {0x0D62, 0x0D63, Property::Extend})
put(data, {0x0D81, 0x0D81, Property::Extend})
put(data, {0x0D82, 0x0D83, Property::SpacingMark})
put(data, {0x0DCA, 0x0DCA, Property::Extend})
put(data, {0x0DCF, 0x0DCF, Property::Extend})
put(data, {0x0DD0, 0x0DD1, Property::SpacingMark})
put(data, {0x0DD2, 0x0DD4, Property::Extend})
put(data, {0x0DD6, 0x0DD6, Property::Extend})
put(data, {0x0DD8, 0x0DDE, Property::SpacingMark})
put(data, {0x0DDF, 0x0DDF, Property::Extend})
put(data, {0x0DF2, 0x0DF3, Property::SpacingMark})
put(data, {0x0E31, 0x0E31, Property::Extend})
put(data, {0x0E33, 0x0E33, Property::SpacingMark})
put(data, {0x0E34, 0x0E3A, Property::Extend})
put(data, {0x0E47, 0x0E4E, Property::Extend})
put(data, {0x0EB1, 0x0EB1, Property::Extend})
put(data, {0x0EB3, 0x0EB3, Property::SpacingMark})
put(data, {0x0EB4, 0x0EBC, Property::Extend})
put(data, {0x0EC8, 0x0ECE, Property::Extend})
put(data, {0x0F18, 0x0F19, Property::Extend})
put(data, {0x0F35, 0x0F35, Property::Extend})
put(data, {0x0F37, 0x0F37, Property::Extend})
put(data, {0x0F39, 0x0F39, Property::Extend})
put(data, {0x0F3E, 0x0F3F, Property::SpacingMark})
put(data, {0x0F71, 0x0F7E, Property::Extend})
put(data, {0x0F7F, 0x0F7F, Property::SpacingMark})
put(data, {0x0F80, 0x0F84, Property::Extend})
put(data, {0x0F86, 0x0F87, Property::Extend})
put(data, {0x0F8D, 0x0F97, Property::Extend})
put(data, {0x0F99, 0x0FBC, Property::Extend})
put(data, {0x0FC6, 0x0FC6, Property::Extend})
put(data, {0x102D, 0x1030, Property::Extend})
put(data, {0x1031, 0x1031, Property::SpacingMark})
put(data, {0x1032, 0x1037, Property::Extend})
put(data, {0x1039, 0x103A, Property::Extend})
put(data, {0x103B, 0x103C, Property::SpacingMark})
put(data, {0x103D, 0x103E, Property::Extend})
put(data, {0x1056, 0x1057, Property::SpacingMark})
put(data, {0x1058, 0x1059, Property::Extend})
put(data, {0x105E, 0x1060, Property::Extend})
put(data, {0x1071, 0x1074, Property::Extend})
put(data, {0x1082, 0x1082, Property::Extend})
put(data, {0x1084, 0x1084, Property::SpacingMark})
put(data, {0x1085, 0x1086, Property::Extend})
put(data, {0x108D, 0x108D, Property::Extend})
put(data, {0x109D, 0x109D, Property::Extend})
put(data, {0x1100, 0x115F, Property::L})
put(data, {0x1160, 0x11A7, Property::V})
put(data, {0x11A8, 0x11FF, Property::T})
put(data, {0x135D, 0x135F, Property::Extend})
put(data, {0x1712, 0x1714, Property::Extend})
put(data, {0x1715, 0x1715, Property::SpacingMark})
put(data, {0x1732, 0x1733, Property::Extend})
put(data, {0x1734, 0x1734, Property::SpacingMark})
put(data, {0x1752, 0x1753, Property::Extend})
put(data, {0x1772, 0x1773, Property::Extend})
put(data, {0x17B4, 0x17B5, Property::Extend})
put(data, {0x17B6, 0x17B6, Property::SpacingMark})
put(data, {0x17B7, 0x17BD, Property::Extend})
put(data, {0x17BE, 0x17C5, Property::SpacingMark})
put(data, {0x17C6, 0x17C6, Property::Extend})
put(data, {0x17C7, 0x17C8, Property::SpacingMark})
put(data, {0x17C9, 0x17D3, Property::Extend})
put(data, {0x17DD, 0x17DD, Property::Extend})
put(data, {0x180B, 0x180D, Property::Extend})
put(data, {0x180E, 0x180E, Property::Control})
put(data, {0x180F, 0x180F, Property::Extend})
put(data, {0x1885, 0x1886, Property::Extend})
put(data, {0x18A9, 0x18A9, Property::Extend})
put(data, {0x1920, 0x1922, Property::Extend})
put(data, {0x1923, 0x1926, Property::SpacingMark})
put(data, {0x1927, 0x1928, Property::Extend})
put(data, {0x1929, 0x192B, Property::SpacingMark})
put(data, {0x1930, 0x1931, Property::SpacingMark})
put(data, {0x1932, 0x1932, Property::Extend})
put(data, {0x1933, 0x1938, Property::SpacingMark})
put(data, {0x1939, 0x193B, Property::Extend})
put(data, {0x1A17, 0x1A18, Property::Extend})
put(data, {0x1A19, 0x1A1A, Property::SpacingMark})
put(data, {0x1A1B, 0x1A1B, Property::Extend})
put(data, {0x1A55, 0x1A55, Property::SpacingMark})
put(data, {0x1A56, 0x1A56, Property::Extend})
put(data, {0x1A57, 0x1A57, Property::SpacingMark})
put(data, {0x1A58, 0x1A5E, Property::Extend})
put(data, {0x1A60, 0x1A60, Property::Extend})
put(data, {0x1A62, 0x1A62, Property::Extend})
put(data, {0x1A65, 0x1A6C, Property::Extend})
put(data, {0x1A6D, 0x1A72, Property::SpacingMark})
put(data, {0x1A73, 0x1A7C, Property::Extend})
put(data, {0x1A7F, 0x1A7F, Property::Extend})
put(data, {0x1AB0, 0x1ACE, Property::Extend})
put(data, {0x1B00, 0x1B03, Property::Extend})
put(data, {0x1B04, 0x1B04, Property::SpacingMark})
put(data, {0x1B34, 0x1B3A, Property::Extend})
put(data, {0x1B3B, 0x1B3B, Property::SpacingMark})
put(data, {0x1B3C, 0x1B3C, Property::Extend})
put(data, {0x1B3D, 0x1B41, Property::SpacingMark})
put(data, {0x1B42, 0x1B42, Property::Extend})
put(data, {0x1B43, 0x1B44, Property::SpacingMark})
put(data, {0x1B6B, 0x1B73, Property::Extend})
put(data, {0x1B80, 0x1B81, Property::Extend})
put(data, {0x1B82, 0x1B82, Property::SpacingMark})
put(data, {0x1BA1, 0x1BA1, Property::SpacingMark})
put(data, {0x1BA2, 0x1BA5, Property::Extend})
put(data, {0x1BA6, 0x1BA7, Property::SpacingMark})
put(data, {0x1BA8, 0x1BA9, Property::Extend})
put(data, {0x1BAA, 0x1BAA, Property::SpacingMark})
put(data, {0x1BAB, 0x1BAD, Property::Extend})
put(data, {0x1BE6, 0x1BE6, Property::Extend})
put(data, {0x1BE7, 0x1BE7, Property::SpacingMark})
put(data, {0x1BE8, 0x1BE9, Property::Extend})
put(data, {0x1BEA, 0x1BEC, Property::SpacingMark})
put(data, {0x1BED, 0x1BED, Property::Extend})
put(data, {0x1BEE, 0x1BEE, Property::SpacingMark})
put(data, {0x1BEF, 0x1BF1, Property::Extend})
put(data, {0x1BF2, 0x1BF3, Property::SpacingMark})
put(data, {0x1C24, 0x1C2B, Property::SpacingMark})
put(data, {0x1C2C, 0x1C33, Property::Extend})
put(data, {0x1C34, 0x1C35, Property::SpacingMark})
put(data, {0x1C36, 0x1C37, Property::Extend})
put(data, {0x1CD0, 0x1CD2, Property::Extend})
put(data, {0x1CD4, 0x1CE0, Property::Extend})
put(data, {0x1CE1, 0x1CE1, Property::SpacingMark})
put(data, {0x1CE2, 0x1CE8, Property::Extend})
put(data, {0x1CED, 0x1CED, Property::Extend})
put(data, {0x1CF4, 0x1CF4, Property::Extend})
put(data, {0x1CF7, 0x1CF7, Property::SpacingMark})
put(data, {0x1CF8, 0x1CF9, Property::Extend})
put(data, {0x1DC0, 0x1DFF, Property::Extend})
put(data, {0x200B, 0x200B, Property::Control})
put(data, {0x200C, 0x200C, Property::Extend})
put(data, {0x200D, 0x200D, Property::ZWJ})
put(data, {0x200E, 0x200F, Property::Control})
put(data, {0x2028, 0x202E, Property::Control})
put(data, {0x203C, 0x203C, Property::ExtendedPictographic})
put(data, {0x2049, 0x2049, Property::ExtendedPictographic})
put(data, {0x2060, 0x206F, Property::Control})
put(data, {0x20D0, 0x20F0, Property::Extend})
put(data, {0x2122, 0x2122, Property::ExtendedPictographic})
put(data, {0x2139, 0x2139, Property::ExtendedPictographic})
put(data, {0x2194, 0x2199, Property::ExtendedPictographic})
put(data, {0x21A9, 0x21AA, Property::ExtendedPictographic})
put(data, {0x231A, 0x231B, Property::ExtendedPictographic})
put(data, {0x2328, 0x2328, Property::ExtendedPictographic})
put(data, {0x2388, 0x2388, Property::ExtendedPictographic})
put(data, {0x23CF, 0x23CF, Property::ExtendedPictographic})
put(data, {0x23E9, 0x23F3, Property::ExtendedPictographic})
put(data, {0x23F8, 0x23FA, Property::ExtendedPictographic})
put(data, {0x24C2, 0x24C2, Property::ExtendedPictographic})
put(data, {0x25AA, 0x25AB, Property::ExtendedPictographic})
put(data, {0x25B6, 0x25B6, Property::ExtendedPictographic})
put(data, {0x25C0, 0x25C0, Property::ExtendedPictographic})
put(data, {0x25FB, 0x25FE, Property::ExtendedPictographic})
put(data, {0x2600, 0x2605, Property::ExtendedPictographic})
put(data, {0x2607, 0x2612, Property::ExtendedPictographic})
put(data, {0x2614, 0x2685, Property::ExtendedPictographic})
put(data, {0x2690, 0x2705, Property::ExtendedPictographic})
put(data, {0x2708, 0x2712, Property::ExtendedPictographic})
put(data, {0x2714, 0x2714, Property::ExtendedPictographic})
put(data, {0x2716, 0x2716, Property::ExtendedPictographic})
put(data, {0x271D, 0x271D, Property::ExtendedPictographic})
put(data, {0x2721, 0x2721, Property::ExtendedPictographic})
put(data, {0x2728, 0x2728, Property::ExtendedPictographic})
put(data, {0x2733, 0x2734, Property::ExtendedPictographic})
put(data, {0x2744, 0x2744, Property::ExtendedPictographic})
put(data, {0x2747, 0x2747, Property::ExtendedPictographic})
put(data, {0x274C, 0x274C, Property::ExtendedPictographic})
put(data, {0x274E, 0x274E, Property::ExtendedPictographic})
put(data, {0x2753, 0x2755, Property::ExtendedPictographic})
put(data, {0x2757, 0x2757, Property::ExtendedPictographic})
put(data, {0x2763, 0x2767, Property::ExtendedPictographic})
put(data, {0x2795, 0x2797, Property::ExtendedPictographic})
put(data, {0x27A1, 0x27A1, Property::ExtendedPictographic})
put(data, {0x27B0, 0x27B0, Property::ExtendedPictographic})
put(data, {0x27BF, 0x27BF, Property::ExtendedPictographic})
put(data, {0x2934, 0x2935, Property::ExtendedPictographic})
put(data, {0x2B05, 0x2B07, Property::ExtendedPictographic})
put(data, {0x2B1B, 0x2B1C, Property::ExtendedPictographic})
put(data, {0x2B50, 0x2B50, Property::ExtendedPictographic})
put(data, {0x2B55, 0x2B55, Property::ExtendedPictographic})
put(data, {0x2CEF, 0x2CF1, Property::Extend})
put(data, {0x2D7F, 0x2D7F, Property::Extend})
put(data, {0x2DE0, 0x2DFF, Property::Extend})
put(data, {0x302A, 0x302F, Property::Extend})
put(data, {0x3030, 0x3030, Property::ExtendedPictographic})
put(data, {0x303D, 0x303D, Property::ExtendedPictographic})
put(data, {0x3099, 0x309A, Property::Extend})
put(data, {0x3297, 0x3297, Property::ExtendedPictographic})
put(data, {0x3299, 0x3299, Property::ExtendedPictographic})
put(data, {0xA66F, 0xA672, Property::Extend})
put(data, {0xA674, 0xA67D, Property::Extend})
put(data, {0xA69E, 0xA69F, Property::Extend})
put(data, {0xA6F0, 0xA6F1, Property::Extend})
put(data, {0xA802, 0xA802, Property::Extend})
put(data, {0xA806, 0xA806, Property::Extend})
put(data, {0xA80B, 0xA80B, Property::Extend})
put(data, {0xA823, 0xA824, Property::SpacingMark})
put(data, {0xA825, 0xA826, Property::Extend})
put(data, {0xA827, 0xA827, Property::SpacingMark})
put(data, {0xA82C, 0xA82C, Property::Extend})
put(data, {0xA880, 0xA881, Property::SpacingMark})
put(data, {0xA8B4, 0xA8C3, Property::SpacingMark})
put(data, {0xA8C4, 0xA8C5, Property::Extend})
put(data, {0xA8E0, 0xA8F1, Property::Extend})
put(data, {0xA8FF, 0xA8FF, Property::Extend})
put(data, {0xA926, 0xA92D, Property::Extend})
put(data, {0xA947, 0xA951, Property::Extend})
put(data, {0xA952, 0xA953, Property::SpacingMark})
put(data, {0xA960, 0xA97C, Property::L})
put(data, {0xA980, 0xA982, Property::Extend})
put(data, {0xA983, 0xA983, Property::SpacingMark})
put(data, {0xA9B3, 0xA9B3, Property::Extend})
put(data, {0xA9B4, 0xA9B5, Property::SpacingMark})
put(data, {0xA9B6, 0xA9B9, Property::Extend})
put(data, {0xA9BA, 0xA9BB, Property::SpacingMark})
put(data, {0xA9BC, 0xA9BD, Property::Extend})
put(data, {0xA9BE, 0xA9C0, Property::SpacingMark})
put(data, {0xA9E5, 0xA9E5, Property::Extend})
put(data, {0xAA29, 0xAA2E, Property::Extend})
put(data, {0xAA2F, 0xAA30, Property::SpacingMark})
put(data, {0xAA31, 0xAA32, Property::Extend})
put(data, {0xAA33, 0xAA34, Property::SpacingMark})
put(data, {0xAA35, 0xAA36, Property::Extend})
put(data, {0xAA43, 0xAA43, Property::Extend})
put(data, {0xAA4C, 0xAA4C, Property::Extend})
put(data, {0xAA4D, 0xAA4D, Property::SpacingMark})
put(data, {0xAA7C, 0xAA7C, Property::Extend})
put(data, {0xAAB0, 0xAAB0, Property::Extend})
put(data, {0xAAB2, 0xAAB4, Property::Extend})
put(data, {0xAAB7, 0xAAB8, Property::Extend})
put(data, {0xAABE, 0xAABF, Property::Extend})
put(data, {0xAAC1, 0xAAC1, Property::Extend})
put(data, {0xAAEB, 0xAAEB, Property::SpacingMark})
put(data, {0xAAEC, 0xAAED, Property::Extend})
put(data, {0xAAEE, 0xAAEF, Property::SpacingMark})
put(data, {0xAAF5, 0xAAF5, Property::SpacingMark})
put(data, {0xAAF6, 0xAAF6, Property::Extend})
put(data, {0xABE3, 0xABE4, Property::SpacingMark})
put(data, {0xABE5, 0xABE5, Property::Extend})
put(data, {0xABE6, 0xABE7, Property::SpacingMark})
put(data, {0xABE8, 0xABE8, Property::Extend})
put(data, {0xABE9, 0xABEA, Property::SpacingMark})
put(data, {0xABEC, 0xABEC, Property::SpacingMark})
put(data, {0xABED, 0xABED, Property::Extend})
put(data, {0xAC00, 0xAC00, Property::LV})
put(data, {0xAC01, 0xAC1B, Property::LVT})
put(data, {0xAC1C, 0xAC1C, Property::LV})
put(data, {0xAC1D, 0xAC37, Property::LVT})
put(data, {0xAC38, 0xAC38, Property::LV})
put(data, {0xAC39, 0xAC53, Property::LVT})
put(data, {0xAC54, 0xAC54, Property::LV})
put(data, {0xAC55, 0xAC6F, Property::LVT})
put(data, {0xAC70, 0xAC70, Property::LV})
put(data, {0xAC71, 0xAC8B, Property::LVT})
put(data, {0xAC8C, 0xAC8C, Property::LV})
put(data, {0xAC8D, 0xACA7, Property::LVT})
put(data, {0xACA8, 0xACA8, Property::LV})
put(data, {0xACA9, 0xACC3, Property::LVT})
put(data, {0xACC4, 0xACC4, Property::LV})
put(data, {0xACC5, 0xACDF, Property::LVT})
put(data, {0xACE0, 0xACE0, Property::LV})
put(data, {0xACE1, 0xACFB, Property::LVT})
put(data, {0xACFC, 0xACFC, Property::LV})
put(data, {0xACFD, 0xAD17, Property::LVT})
put(data, {0xAD18, 0xAD18, Property::LV})
put(data, {0xAD19, 0xAD33, Property::LVT})
put(data, {0xAD34, 0xAD34, Property::LV})
put(data, {0xAD35, 0xAD4F, Property::LVT})
put(data, {0xAD50, 0xAD50, Property::LV})
put(data, {0xAD51, 0xAD6B, Property::LVT})
put(data, {0xAD6C, 0xAD6C, Property::LV})
put(data, {0xAD6D, 0xAD87, Property::LVT})
put(data, {0xAD88, 0xAD88, Property::LV})
put(data, {0xAD89, 0xADA3, Property::LVT})
put(data, {0xADA4, 0xADA4, Property::LV})
put(data, {0xADA5, 0xADBF, Property::LVT})
put(data, {0xADC0, 0xADC0, Property::LV})
put(data, {0xADC1, 0xADDB, Property::LVT})
put(data, {0xADDC, 0xADDC, Property::LV})
put(data, {0xADDD, 0xADF7, Property::LVT})
put(data, {0xADF8, 0xADF8, Property::LV})
put(data, {0xADF9, 0xAE13, Property::LVT})
put(data, {0xAE14, 0xAE14, Property::LV})
put(data, {0xAE15, 0xAE2F, Property::LVT})
put(data, {0xAE30, 0xAE30, Property::LV})
put(data, {0xAE31, 0xAE4B, Property::LVT})
put(data, {0xAE4C, 0xAE4C, Property::LV})
put(data, {0xAE4D, 0xAE67, Property::LVT})
put(data, {0xAE68, 0xAE68, Property::LV})
put(data, {0xAE69, 0xAE83, Property::LVT})
put(data, {0xAE84, 0xAE84, Property::LV})
put(data, {0xAE85, 0xAE9F, Property::LVT})
put(data, {0xAEA0, 0xAEA0, Property::LV})
put(data, {0xAEA1, 0xAEBB, Property::LVT})
put(data, {0xAEBC, 0xAEBC, Property::LV})
put(data, {0xAEBD, 0xAED7, Property::LVT})
put(data, {0xAED8, 0xAED8, Property::LV})
put(data, {0xAED9, 0xAEF3, Property::LVT})
put(data, {0xAEF4, 0xAEF4, Property::LV})
put(data, {0xAEF5, 0xAF0F, Property::LVT})
put(data, {0xAF10, 0xAF10, Property::LV})
put(data, {0xAF11, 0xAF2B, Property::LVT})
put(data, {0xAF2C, 0xAF2C, Property::LV})
put(data, {0xAF2D, 0xAF47, Property::LVT})
put(data, {0xAF48, 0xAF48, Property::LV})
put(data, {0xAF49, 0xAF63, Property::LVT})
put(data, {0xAF64, 0xAF64, Property::LV})
put(data, {0xAF65, 0xAF7F, Property::LVT})
put(data, {0xAF80, 0xAF80, Property::LV})
put(data, {0xAF81, 0xAF9B, Property::LVT})
put(data, {0xAF9C, 0xAF9C, Property::LV})
put(data, {0xAF9D, 0xAFB7, Property::LVT})
put(data, {0xAFB8, 0xAFB8, Property::LV})
put(data, {0xAFB9, 0xAFD3, Property::LVT})
put(data, {0xAFD4, 0xAFD4, Property::LV})
put(data, {0xAFD5, 0xAFEF, Property::LVT})
put(data, {0xAFF0, 0xAFF0, Property::LV})
put(data, {0xAFF1, 0xB00B, Property::LVT})
put(data, {0xB00C, 0xB00C, Property::LV})
put(data, {0xB00D, 0xB027, Property::LVT})
put(data, {0xB028, 0xB028, Property::LV})
put(data, {0xB029, 0xB043, Property::LVT})
put(data, {0xB044, 0xB044, Property::LV})
put(data, {0xB045, 0xB05F, Property::LVT})
put(data, {0xB060, 0xB060, Property::LV})
put(data, {0xB061, 0xB07B, Property::LVT})
put(data, {0xB07C, 0xB07C, Property::LV})
put(data, {0xB07D, 0xB097, Property::LVT})
put(data, {0xB098, 0xB098, Property::LV})
put(data, {0xB099, 0xB0B3, Property::LVT})
put(data, {0xB0B4, 0xB0B4, Property::LV})
put(data, {0xB0B5, 0xB0CF, Property::LVT})
put(data, {0xB0D0, 0xB0D0, Property::LV})
put(data, {0xB0D1, 0xB0EB, Property::LVT})
put(data, {0xB0EC, 0xB0EC, Property::LV})
put(data, {0xB0ED, 0xB107, Property::LVT})
put(data, {0xB108, 0xB108, Property::LV})
put(data, {0xB109, 0xB123, Property::LVT})
put(data, {0xB124, 0xB124, Property::LV})
put(data, {0xB125, 0xB13F, Property::LVT})
put(data, {0xB140, 0xB140, Property::LV})
put(data, {0xB141, 0xB15B, Property::LVT})
put(data, {0xB15C, 0xB15C, Property::LV})
put(data, {0xB15D, 0xB177, Property::LVT})
put(data, {0xB178, 0xB178, Property::LV})
put(data, {0xB179, 0xB193, Property::LVT})
put(data, {0xB194, 0xB194, Property::LV})
put(data, {0xB195, 0xB1AF, Property::LVT})
put(data, {0xB1B0, 0xB1B0, Property::LV})
put(data, {0xB1B1, 0xB1CB, Property::LVT})
put(data, {0xB1CC, 0xB1CC, Property::LV})
put(data, {0xB1CD, 0xB1E7, Property::LVT})
put(data, {0xB1E8, 0xB1E8, Property::LV})
put(data, {0xB1E9, 0xB203, Property::LVT})
put(data, {0xB204, 0xB204, Property::LV})
put(data, {0xB205, 0xB21F, Property::LVT})
put(data, {0xB220, 0xB220, Property::LV})
put(data, {0xB221, 0xB23B, Property::LVT})
put(data, {0xB23C, 0xB23C, Property::LV})
put(data, {0xB23D, 0xB257, Property::LVT})
put(data, {0xB258, 0xB258, Property::LV})
put(data, {0xB259, 0xB273, Property::LVT})
put(data, {0xB274, 0xB274, Property::LV})
put(data, {0xB275, 0xB28F, Property::LVT})
put(data, {0xB290, 0xB290, Property::LV})
put(data, {0xB291, 0xB2AB, Property::LVT})
put(data, {0xB2AC, 0xB2AC, Property::LV})
put(data, {0xB2AD, 0xB2C7, Property::LVT})
put(data, {0xB2C8, 0xB2C8, Property::LV})
put(data, {0xB2C9, 0xB2E3, Property::LVT})
put(data, {0xB2E4, 0xB2E4, Property::LV})
put(data, {0xB2E5, 0xB2FF, Property::LVT})
put(data, {0xB300, 0xB300, Property::LV})
put(data, {0xB301, 0xB31B, Property::LVT})
put(data, {0xB31C, 0xB31C, Property::LV})
put(data, {0xB31D, 0xB337, Property::LVT})
put(data, {0xB338, 0xB338, Property::LV})
put(data, {0xB339, 0xB353, Property::LVT})
put(data, {0xB354, 0xB354, Property::LV})
put(data, {0xB355, 0xB36F, Property::LVT})
put(data, {0xB370, 0xB370, Property::LV})
put(data, {0xB371, 0xB38B, Property::LVT})
put(data, {0xB38C, 0xB38C, Property::LV})
put(data, {0xB38D, 0xB3A7, Property::LVT})
put(data, {0xB3A8, 0xB3A8, Property::LV})
put(data, {0xB3A9, 0xB3C3, Property::LVT})
put(data, {0xB3C4, 0xB3C4, Property::LV})
put(data, {0xB3C5, 0xB3DF, Property::LVT})
put(data, {0xB3E0, 0xB3E0, Property::LV})
put(data, {0xB3E1, 0xB3FB, Property::LVT})
put(data, {0xB3FC, 0xB3FC, Property::LV})
put(data, {0xB3FD, 0xB417, Property::LVT})
put(data, {0xB418, 0xB418, Property::LV})
put(data, {0xB419, 0xB433, Property::LVT})
put(data, {0xB434, 0xB434, Property::LV})
put(data, {0xB435, 0xB44F, Property::LVT})
put(data, {0xB450, 0xB450, Property::LV})
put(data, {0xB451, 0xB46B, Property::LVT})
put(data, {0xB46C, 0xB46C, Property::LV})
put(data, {0xB46D, 0xB487, Property::LVT})
put(data, {0xB488, 0xB488, Property::LV})
put(data, {0xB489, 0xB4A3, Property::LVT})
put(data, {0xB4A4, 0xB4A4, Property::LV})
put(data, {0xB4A5, 0xB4BF, Property::LVT})
put(data, {0xB4C0, 0xB4C0, Property::LV})
put(data, {0xB4C1, 0xB4DB, Property::LVT})
put(data, {0xB4DC, 0xB4DC, Property::LV})
put(data, {0xB4DD, 0xB4F7, Property::LVT})
put(data, {0xB4F8, 0xB4F8, Property::LV})
put(data, {0xB4F9, 0xB513, Property::LVT})
put(data, {0xB514, 0xB514, Property::LV})
put(data, {0xB515, 0xB52F, Property::LVT})
put(data, {0xB530, 0xB530, Property::LV})
put(data, {0xB531, 0xB54B, Property::LVT})
put(data, {0xB54C, 0xB54C, Property::LV})
put(data, {0xB54D, 0xB567, Property::LVT})
put(data, {0xB568, 0xB568, Property::LV})
put(data, {0xB569, 0xB583, Property::LVT})
put(data, {0xB584, 0xB584, Property::LV})
put(data, {0xB585, 0xB59F, Property::LVT})
put(data, {0xB5A0, 0xB5A0, Property::LV})
put(data, {0xB5A1, 0xB5BB, Property::LVT})
put(data, {0xB5BC, 0xB5BC, Property::LV})
put(data, {0xB5BD, 0xB5D7, Property::LVT})
put(data, {0xB5D8, 0xB5D8, Property::LV})
put(data, {0xB5D9, 0xB5F3, Property::LVT})
put(data, {0xB5F4, 0xB5F4, Property::LV})
put(data, {0xB5F5, 0xB60F, Property::LVT})
put(data, {0xB610, 0xB610, Property::LV})
put(data, {0xB611, 0xB62B, Property::LVT})
put(data, {0xB62C, 0xB62C, Property::LV})
put(data, {0xB62D, 0xB647, Property::LVT})
put(data, {0xB648, 0xB648, Property::LV})
put(data, {0xB649, 0xB663, Property::LVT})
put(data, {0xB664, 0xB664, Property::LV})
put(data, {0xB665, 0xB67F, Property::LVT})
put(data, {0xB680, 0xB680, Property::LV})
put(data, {0xB681, 0xB69B, Property::LVT})
put(data, {0xB69C, 0xB69C, Property::LV})
put(data, {0xB69D, 0xB6B7, Property::LVT})
put(data, {0xB6B8, 0xB6B8, Property::LV})
put(data, {0xB6B9, 0xB6D3, Property::LVT})
put(data, {0xB6D4, 0xB6D4, Property::LV})
put(data, {0xB6D5, 0xB6EF, Property::LVT})
put(data, {0xB6F0, 0xB6F0, Property::LV})
put(data, {0xB6F1, 0xB70B, Property::LVT})
put(data, {0xB70C, 0xB70C, Property::LV})
put(data, {0xB70D, 0xB727, Property::LVT})
put(data, {0xB728, 0xB728, Property::LV})
put(data, {0xB729, 0xB743, Property::LVT})
put(data, {0xB744, 0xB744, Property::LV})
put(data, {0xB745, 0xB75F, Property::LVT})
put(data, {0xB760, 0xB760, Property::LV})
put(data, {0xB761, 0xB77B, Property::LVT})
put(data, {0xB77C, 0xB77C, Property::LV})
put(data, {0xB77D, 0xB797, Property::LVT})
put(data, {0xB798, 0xB798, Property::LV})
put(data, {0xB799, 0xB7B3, Property::LVT})
put(data, {0xB7B4, 0xB7B4, Property::LV})
put(data, {0xB7B5, 0xB7CF, Property::LVT})
put(data, {0xB7D0, 0xB7D0, Property::LV})
put(data, {0xB7D1, 0xB7EB, Property::LVT})
put(data, {0xB7EC, 0xB7EC, Property::LV})
put(data, {0xB7ED, 0xB807, Property::LVT})
put(data, {0xB808, 0xB808, Property::LV})
put(data, {0xB809, 0xB823, Property::LVT})
put(data, {0xB824, 0xB824, Property::LV})
put(data, {0xB825, 0xB83F, Property::LVT})
put(data, {0xB840, 0xB840, Property::LV})
put(data, {0xB841, 0xB85B, Property::LVT})
put(data, {0xB85C, 0xB85C, Property::LV})
put(data, {0xB85D, 0xB877, Property::LVT})
put(data, {0xB878, 0xB878, Property::LV})
put(data, {0xB879, 0xB893, Property::LVT})
put(data, {0xB894, 0xB894, Property::LV})
put(data, {0xB895, 0xB8AF, Property::LVT})
put(data, {0xB8B0, 0xB8B0, Property::LV})
put(data, {0xB8B1, 0xB8CB, Property::LVT})
put(data, {0xB8CC, 0xB8CC, Property::LV})
put(data, {0xB8CD, 0xB8E7, Property::LVT})
put(data, {0xB8E8, 0xB8E8, Property::LV})
put(data, {0xB8E9, 0xB903, Property::LVT})
put(data, {0xB904, 0xB904, Property::LV})
put(data, {0xB905, 0xB91F, Property::LVT})
put(data, {0xB920, 0xB920, Property::LV})
put(data, {0xB921, 0xB93B, Property::LVT})
put(data, {0xB93C, 0xB93C, Property::LV})
put(data, {0xB93D, 0xB957, Property::LVT})
put(data, {0xB958, 0xB958, Property::LV})
put(data, {0xB959, 0xB973, Property::LVT})
put(data, {0xB974, 0xB974, Property::LV})
put(data, {0xB975, 0xB98F, Property::LVT})
put(data, {0xB990, 0xB990, Property::LV})
put(data, {0xB991, 0xB9AB, Property::LVT})
put(data, {0xB9AC, 0xB9AC, Property::LV})
put(data, {0xB9AD, 0xB9C7, Property::LVT})
put(data, {0xB9C8, 0xB9C8, Property::LV})
put(data, {0xB9C9, 0xB9E3, Property::LVT})
put(data, {0xB9E4, 0xB9E4, Property::LV})
put(data, {0xB9E5, 0xB9FF, Property::LVT})
put(data, {0xBA00, 0xBA00, Property::LV})
put(data, {0xBA01, 0xBA1B, Property::LVT})
put(data, {0xBA1C, 0xBA1C, Property::LV})
put(data, {0xBA1D, 0xBA37, Property::LVT})
put(data, {0xBA38, 0xBA38, Property::LV})
put(data, {0xBA39, 0xBA53, Property::LVT})
put(data, {0xBA54, 0xBA54, Property::LV})
put(data, {0xBA55, 0xBA6F, Property::LVT})
put(data, {0xBA70, 0xBA70, Property::LV})
put(data, {0xBA71, 0xBA8B, Property::LVT})
put(data, {0xBA8C, 0xBA8C, Property::LV})
put(data, {0xBA8D, 0xBAA7, Property::LVT})
put(data, {0xBAA8, 0xBAA8, Property::LV})
put(data, {0xBAA9, 0xBAC3, Property::LVT})
put(data, {0xBAC4, 0xBAC4, Property::LV})
put(data, {0xBAC5, 0xBADF, Property::LVT})
put(data, {0xBAE0, 0xBAE0, Property::LV})
put(data, {0xBAE1, 0xBAFB, Property::LVT})
put(data, {0xBAFC, 0xBAFC, Property::LV})
put(data, {0xBAFD, 0xBB17, Property::LVT})
put(data, {0xBB18, 0xBB18, Property::LV})
put(data, {0xBB19, 0xBB33, Property::LVT})
put(data, {0xBB34, 0xBB34, Property::LV})
put(data, {0xBB35, 0xBB4F, Property::LVT})
put(data, {0xBB50, 0xBB50, Property::LV})
put(data, {0xBB51, 0xBB6B, Property::LVT})
put(data, {0xBB6C, 0xBB6C, Property::LV})
put(data, {0xBB6D, 0xBB87, Property::LVT})
put(data, {0xBB88, 0xBB88, Property::LV})
put(data, {0xBB89, 0xBBA3, Property::LVT})
put(data, {0xBBA4, 0xBBA4, Property::LV})
put(data, {0xBBA5, 0xBBBF, Property::LVT})
put(data, {0xBBC0, 0xBBC0, Property::LV})
put(data, {0xBBC1, 0xBBDB, Property::LVT})
put(data, {0xBBDC, 0xBBDC, Property::LV})
put(data, {0xBBDD, 0xBBF7, Property::LVT})
put(data, {0xBBF8, 0xBBF8, Property::LV})
put(data, {0xBBF9, 0xBC13, Property::LVT})
put(data, {0xBC14, 0xBC14, Property::LV})
put(data, {0xBC15, 0xBC2F, Property::LVT})
put(data, {0xBC30, 0xBC30, Property::LV})
put(data, {0xBC31, 0xBC4B, Property::LVT})
put(data, {0xBC4C, 0xBC4C, Property::LV})
put(data, {0xBC4D, 0xBC67, Property::LVT})
put(data, {0xBC68, 0xBC68, Property::LV})
put(data, {0xBC69, 0xBC83, Property::LVT})
put(data, {0xBC84, 0xBC84, Property::LV})
put(data, {0xBC85, 0xBC9F, Property::LVT})
put(data, {0xBCA0, 0xBCA0, Property::LV})
put(data, {0xBCA1, 0xBCBB, Property::LVT})
put(data, {0xBCBC, 0xBCBC, Property::LV})
put(data, {0xBCBD, 0xBCD7, Property::LVT})
put(data, {0xBCD8, 0xBCD8, Property::LV})
put(data, {0xBCD9, 0xBCF3, Property::LVT})
put(data, {0xBCF4, 0xBCF4, Property::LV})
put(data, {0xBCF5, 0xBD0F, Property::LVT})
put(data, {0xBD10, 0xBD10, Property::LV})
put(data, {0xBD11, 0xBD2B, Property::LVT})
put(data, {0xBD2C, 0xBD2C, Property::LV})
put(data, {0xBD2D, 0xBD47, Property::LVT})
put(data, {0xBD48, 0xBD48, Property::LV})
put(data, {0xBD49, 0xBD63, Property::LVT})
put(data, {0xBD64, 0xBD64, Property::LV})
put(data, {0xBD65, 0xBD7F, Property::LVT})
put(data, {0xBD80, 0xBD80, Property::LV})
put(data, {0xBD81, 0xBD9B, Property::LVT})
put(data, {0xBD9C, 0xBD9C, Property::LV})
put(data, {0xBD9D, 0xBDB7, Property::LVT})
put(data, {0xBDB8, 0xBDB8, Property::LV})
put(data, {0xBDB9, 0xBDD3, Property::LVT})
put(data, {0xBDD4, 0xBDD4, Property::LV})
put(data, {0xBDD5, 0xBDEF, Property::LVT})
put(data, {0xBDF0, 0xBDF0, Property::LV})
put(data, {0xBDF1, 0xBE0B, Property::LVT})
put(data, {0xBE0C, 0xBE0C, Property::LV})
put(data, {0xBE0D, 0xBE27, Property::LVT})
put(data, {0xBE28, 0xBE28, Property::LV})
put(data, {0xBE29, 0xBE43, Property::LVT})
put(data, {0xBE44, 0xBE44, Property::LV})
put(data, {0xBE45, 0xBE5F, Property::LVT})
put(data, {0xBE60, 0xBE60, Property::LV})
put(data, {0xBE61, 0xBE7B, Property::LVT})
put(data, {0xBE7C, 0xBE7C, Property::LV})
put(data, {0xBE7D, 0xBE97, Property::LVT})
put(data, {0xBE98, 0xBE98, Property::LV})
put(data, {0xBE99, 0xBEB3, Property::LVT})
put(data, {0xBEB4, 0xBEB4, Property::LV})
put(data, {0xBEB5, 0xBECF, Property::LVT})
put(data, {0xBED0, 0xBED0, Property::LV})
put(data, {0xBED1, 0xBEEB, Property::LVT})
put(data, {0xBEEC, 0xBEEC, Property::LV})
put(data, {0xBEED, 0xBF07, Property::LVT})
put(data, {0xBF08, 0xBF08, Property::LV})
put(data, {0xBF09, 0xBF23, Property::LVT})
put(data, {0xBF24, 0xBF24, Property::LV})
put(data, {0xBF25, 0xBF3F, Property::LVT})
put(data, {0xBF40, 0xBF40, Property::LV})
put(data, {0xBF41, 0xBF5B, Property::LVT})
put(data, {0xBF5C, 0xBF5C, Property::LV})
put(data, {0xBF5D, 0xBF77, Property::LVT})
put(data, {0xBF78, 0xBF78, Property::LV})
put(data, {0xBF79, 0xBF93, Property::LVT})
put(data, {0xBF94, 0xBF94, Property::LV})
put(data, {0xBF95, 0xBFAF, Property::LVT})
put(data, {0xBFB0, 0xBFB0, Property::LV})
put(data, {0xBFB1, 0xBFCB, Property::LVT})
put(data, {0xBFCC, 0xBFCC, Property::LV})
put(data, {0xBFCD, 0xBFE7, Property::LVT})
put(data, {0xBFE8, 0xBFE8, Property::LV})
put(data, {0xBFE9, 0xC003, Property::LVT})
put(data, {0xC004, 0xC004, Property::LV})
put(data, {0xC005, 0xC01F, Property::LVT})
put(data, {0xC020, 0xC020, Property::LV})
put(data, {0xC021, 0xC03B, Property::LVT})
put(data, {0xC03C, 0xC03C, Property::LV})
put(data, {0xC03D, 0xC057, Property::LVT})
put(data, {0xC058, 0xC058, Property::LV})
put(data, {0xC059, 0xC073, Property::LVT})
put(data, {0xC074, 0xC074, Property::LV})
put(data, {0xC075, 0xC08F, Property::LVT})
put(data, {0xC090, 0xC090, Property::LV})
put(data, {0xC091, 0xC0AB, Property::LVT})
put(data, {0xC0AC, 0xC0AC, Property::LV})
put(data, {0xC0AD, 0xC0C7, Property::LVT})
put(data, {0xC0C8, 0xC0C8, Property::LV})
put(data, {0xC0C9, 0xC0E3, Property::LVT})
put(data, {0xC0E4, 0xC0E4, Property::LV})
put(data, {0xC0E5, 0xC0FF, Property::LVT})
put(data, {0xC100, 0xC100, Property::LV})
put(data, {0xC101, 0xC11B, Property::LVT})
put(data, {0xC11C, 0xC11C, Property::LV})
put(data, {0xC11D, 0xC137, Property::LVT})
put(data, {0xC138, 0xC138, Property::LV})
put(data, {0xC139, 0xC153, Property::LVT})
put(data, {0xC154, 0xC154, Property::LV})
put(data, {0xC155, 0xC16F, Property::LVT})
put(data, {0xC170, 0xC170, Property::LV})
put(data, {0xC171, 0xC18B, Property::LVT})
put(data, {0xC18C, 0xC18C, Property::LV})
put(data, {0xC18D, 0xC1A7, Property::LVT})
put(data, {0xC1A8, 0xC1A8, Property::LV})
put(data, {0xC1A9, 0xC1C3, Property::LVT})
put(data, {0xC1C4, 0xC1C4, Property::LV})
put(data, {0xC1C5, 0xC1DF, Property::LVT})
put(data, {0xC1E0, 0xC1E0, Property::LV})
put(data, {0xC1E1, 0xC1FB, Property::LVT})
put(data, {0xC1FC, 0xC1FC, Property::LV})
put(data, {0xC1FD, 0xC217, Property::LVT})
put(data, {0xC218, 0xC218, Property::LV})
put(data, {0xC219, 0xC233, Property::LVT})
put(data, {0xC234, 0xC234, Property::LV})
put(data, {0xC235, 0xC24F, Property::LVT})
put(data, {0xC250, 0xC250, Property::LV})
put(data, {0xC251, 0xC26B, Property::LVT})
put(data, {0xC26C, 0xC26C, Property::LV})
put(data, {0xC26D, 0xC287, Property::LVT})
put(data, {0xC288, 0xC288, Property::LV})
put(data, {0xC289, 0xC2A3, Property::LVT})
put(data, {0xC2A4, 0xC2A4, Property::LV})
put(data, {0xC2A5, 0xC2BF, Property::LVT})
put(data, {0xC2C0, 0xC2C0, Property::LV})
put(data, {0xC2C1, 0xC2DB, Property::LVT})
put(data, {0xC2DC, 0xC2DC, Property::LV})
put(data, {0xC2DD, 0xC2F7, Property::LVT})
put(data, {0xC2F8, 0xC2F8, Property::LV})
put(data, {0xC2F9, 0xC313, Property::LVT})
put(data, {0xC314, 0xC314, Property::LV})
put(data, {0xC315, 0xC32F, Property::LVT})
put(data, {0xC330, 0xC330, Property::LV})
put(data, {0xC331, 0xC34B, Property::LVT})
put(data, {0xC34C, 0xC34C, Property::LV})
put(data, {0xC34D, 0xC367, Property::LVT})
put(data, {0xC368, 0xC368, Property::LV})
put(data, {0xC369, 0xC383, Property::LVT})
put(data, {0xC384, 0xC384, Property::LV})
put(data, {0xC385, 0xC39F, Property::LVT})
put(data, {0xC3A0, 0xC3A0, Property::LV})
put(data, {0xC3A1, 0xC3BB, Property::LVT})
put(data, {0xC3BC, 0xC3BC, Property::LV})
put(data, {0xC3BD, 0xC3D7, Property::LVT})
put(data, {0xC3D8, 0xC3D8, Property::LV})
put(data, {0xC3D9, 0xC3F3, Property::LVT})
put(data, {0xC3F4, 0xC3F4, Property::LV})
put(data, {0xC3F5, 0xC40F, Property::LVT})
put(data, {0xC410, 0xC410, Property::LV})
put(data, {0xC411, 0xC42B, Property::LVT})
put(data, {0xC42C, 0xC42C, Property::LV})
put(data, {0xC42D, 0xC447, Property::LVT})
put(data, {0xC448, 0xC448, Property::LV})
put(data, {0xC449, 0xC463, Property::LVT})
put(data, {0xC464, 0xC464, Property::LV})
put(data, {0xC465, 0xC47F, Property::LVT})
put(data, {0xC480, 0xC480, Property::LV})
put(data, {0xC481, 0xC49B, Property::LVT})
put(data, {0xC49C, 0xC49C, Property::LV})
put(data, {0xC49D, 0xC4B7, Property::LVT})
put(data, {0xC4B8, 0xC4B8, Property::LV})
put(data, {0xC4B9, 0xC4D3, Property::LVT})
put(data, {0xC4D4, 0xC4D4, Property::LV})
put(data, {0xC4D5, 0xC4EF, Property::LVT})
put(data, {0xC4F0, 0xC4F0, Property::LV})
put(data, {0xC4F1, 0xC50B, Property::LVT})
put(data, {0xC50C, 0xC50C, Property::LV})
put(data, {0xC50D, 0xC527, Property::LVT})
put(data, {0xC528, 0xC528, Property::LV})
put(data, {0xC529, 0xC543, Property::LVT})
put(data, {0xC544, 0xC544, Property::LV})
put(data, {0xC545, 0xC55F, Property::LVT})
put(data, {0xC560, 0xC560, Property::LV})
put(data, {0xC561, 0xC57B, Property::LVT})
put(data, {0xC57C, 0xC57C, Property::LV})
put(data, {0xC57D, 0xC597, Property::LVT})
put(data, {0xC598, 0xC598, Property::LV})
put(data, {0xC599, 0xC5B3, Property::LVT})
put(data, {0xC5B4, 0xC5B4, Property::LV})
put(data, {0xC5B5, 0xC5CF, Property::LVT})
put(data, {0xC5D0, 0xC5D0, Property::LV})
put(data, {0xC5D1, 0xC5EB, Property::LVT})
put(data, {0xC5EC, 0xC5EC, Property::LV})
put(data, {0xC5ED, 0xC607, Property::LVT})
put(data, {0xC608, 0xC608, Property::LV})
put(data, {0xC609, 0xC623, Property::LVT})
put(data, {0xC624, 0xC624, Property::LV})
put(data, {0xC625, 0xC63F, Property::LVT})
put(data, {0xC640, 0xC640, Property::LV})
put(data, {0xC641, 0xC65B, Property::LVT})
put(data, {0xC65C, 0xC65C, Property::LV})
put(data, {0xC65D, 0xC677, Property::LVT})
put(data, {0xC678, 0xC678, Property::LV})
put(data, {0xC679, 0xC693, Property::LVT})
put(data, {0xC694, 0xC694, Property::LV})
put(data, {0xC695, 0xC6AF, Property::LVT})
put(data, {0xC6B0, 0xC6B0, Property::LV})
put(data, {0xC6B1, 0xC6CB, Property::LVT})
put(data, {0xC6CC, 0xC6CC, Property::LV})
put(data, {0xC6CD, 0xC6E7, Property::LVT})
put(data, {0xC6E8, 0xC6E8, Property::LV})
put(data, {0xC6E9, 0xC703, Property::LVT})
put(data, {0xC704, 0xC704, Property::LV})
put(data, {0xC705, 0xC71F, Property::LVT})
put(data, {0xC720, 0xC720, Property::LV})
put(data, {0xC721, 0xC73B, Property::LVT})
put(data, {0xC73C, 0xC73C, Property::LV})
put(data, {0xC73D, 0xC757, Property::LVT})
put(data, {0xC758, 0xC758, Property::LV})
put(data, {0xC759, 0xC773, Property::LVT})
put(data, {0xC774, 0xC774, Property::LV})
put(data, {0xC775, 0xC78F, Property::LVT})
put(data, {0xC790, 0xC790, Property::LV})
put(data, {0xC791, 0xC7AB, Property::LVT})
put(data, {0xC7AC, 0xC7AC, Property::LV})
put(data, {0xC7AD, 0xC7C7, Property::LVT})
put(data, {0xC7C8, 0xC7C8, Property::LV})
put(data, {0xC7C9, 0xC7E3, Property::LVT})
put(data, {0xC7E4, 0xC7E4, Property::LV})
put(data, {0xC7E5, 0xC7FF, Property::LVT})
put(data, {0xC800, 0xC800, Property::LV})
put(data, {0xC801, 0xC81B, Property::LVT})
put(data, {0xC81C, 0xC81C, Property::LV})
put(data, {0xC81D, 0xC837, Property::LVT})
put(data, {0xC838, 0xC838, Property::LV})
put(data, {0xC839, 0xC853, Property::LVT})
put(data, {0xC854, 0xC854, Property::LV})
put(data, {0xC855, 0xC86F, Property::LVT})
put(data, {0xC870, 0xC870, Property::LV})
put(data, {0xC871, 0xC88B, Property::LVT})
put(data, {0xC88C, 0xC88C, Property::LV})
put(data, {0xC88D, 0xC8A7, Property::LVT})
put(data, {0xC8A8, 0xC8A8, Property::LV})
put(data, {0xC8A9, 0xC8C3, Property::LVT})
put(data, {0xC8C4, 0xC8C4, Property::LV})
put(data, {0xC8C5, 0xC8DF, Property::LVT})
put(data, {0xC8E0, 0xC8E0, Property::LV})
put(data, {0xC8E1, 0xC8FB, Property::LVT})
put(data, {0xC8FC, 0xC8FC, Property::LV})
put(data, {0xC8FD, 0xC917, Property::LVT})
put(data, {0xC918, 0xC918, Property::LV})
put(data, {0xC919, 0xC933, Property::LVT})
put(data, {0xC934, 0xC934, Property::LV})
put(data, {0xC935, 0xC94F, Property::LVT})
put(data, {0xC950, 0xC950, Property::LV})
put(data, {0xC951, 0xC96B, Property::LVT})
put(data, {0xC96C, 0xC96C, Property::LV})
put(data, {0xC96D, 0xC987, Property::LVT})
put(data, {0xC988, 0xC988, Property::LV})
put(data, {0xC989, 0xC9A3, Property::LVT})
put(data, {0xC9A4, 0xC9A4, Property::LV})
put(data, {0xC9A5, 0xC9BF, Property::LVT})
put(data, {0xC9C0, 0xC9C0, Property::LV})