fonttools 4.55.4__cp313-cp313-musllinux_1_2_aarch64.whl → 4.61.1__cp313-cp313-musllinux_1_2_aarch64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. fontTools/__init__.py +1 -1
  2. fontTools/annotations.py +30 -0
  3. fontTools/cffLib/CFF2ToCFF.py +65 -10
  4. fontTools/cffLib/__init__.py +61 -26
  5. fontTools/cffLib/specializer.py +4 -1
  6. fontTools/cffLib/transforms.py +11 -6
  7. fontTools/config/__init__.py +15 -0
  8. fontTools/cu2qu/cu2qu.c +6567 -5579
  9. fontTools/cu2qu/cu2qu.cpython-313-aarch64-linux-musl.so +0 -0
  10. fontTools/cu2qu/cu2qu.py +36 -4
  11. fontTools/cu2qu/ufo.py +14 -0
  12. fontTools/designspaceLib/__init__.py +8 -3
  13. fontTools/designspaceLib/statNames.py +14 -7
  14. fontTools/feaLib/ast.py +24 -15
  15. fontTools/feaLib/builder.py +139 -66
  16. fontTools/feaLib/error.py +1 -1
  17. fontTools/feaLib/lexer.c +7038 -7995
  18. fontTools/feaLib/lexer.cpython-313-aarch64-linux-musl.so +0 -0
  19. fontTools/feaLib/parser.py +75 -40
  20. fontTools/feaLib/variableScalar.py +6 -1
  21. fontTools/fontBuilder.py +50 -44
  22. fontTools/merge/__init__.py +1 -1
  23. fontTools/merge/cmap.py +33 -1
  24. fontTools/merge/tables.py +12 -1
  25. fontTools/misc/bezierTools.c +14913 -17013
  26. fontTools/misc/bezierTools.cpython-313-aarch64-linux-musl.so +0 -0
  27. fontTools/misc/bezierTools.py +4 -1
  28. fontTools/misc/configTools.py +3 -1
  29. fontTools/misc/enumTools.py +23 -0
  30. fontTools/misc/etree.py +4 -27
  31. fontTools/misc/filesystem/__init__.py +68 -0
  32. fontTools/misc/filesystem/_base.py +134 -0
  33. fontTools/misc/filesystem/_copy.py +45 -0
  34. fontTools/misc/filesystem/_errors.py +54 -0
  35. fontTools/misc/filesystem/_info.py +75 -0
  36. fontTools/misc/filesystem/_osfs.py +164 -0
  37. fontTools/misc/filesystem/_path.py +67 -0
  38. fontTools/misc/filesystem/_subfs.py +92 -0
  39. fontTools/misc/filesystem/_tempfs.py +34 -0
  40. fontTools/misc/filesystem/_tools.py +34 -0
  41. fontTools/misc/filesystem/_walk.py +55 -0
  42. fontTools/misc/filesystem/_zipfs.py +204 -0
  43. fontTools/misc/fixedTools.py +1 -1
  44. fontTools/misc/loggingTools.py +1 -1
  45. fontTools/misc/psCharStrings.py +17 -2
  46. fontTools/misc/sstruct.py +2 -6
  47. fontTools/misc/symfont.py +6 -8
  48. fontTools/misc/testTools.py +5 -1
  49. fontTools/misc/textTools.py +4 -2
  50. fontTools/misc/visitor.py +32 -16
  51. fontTools/misc/xmlWriter.py +44 -8
  52. fontTools/mtiLib/__init__.py +1 -3
  53. fontTools/otlLib/builder.py +402 -155
  54. fontTools/otlLib/optimize/gpos.py +49 -63
  55. fontTools/pens/filterPen.py +218 -26
  56. fontTools/pens/momentsPen.c +5514 -5584
  57. fontTools/pens/momentsPen.cpython-313-aarch64-linux-musl.so +0 -0
  58. fontTools/pens/pointPen.py +61 -18
  59. fontTools/pens/roundingPen.py +2 -2
  60. fontTools/pens/t2CharStringPen.py +31 -11
  61. fontTools/qu2cu/qu2cu.c +6581 -6168
  62. fontTools/qu2cu/qu2cu.cpython-313-aarch64-linux-musl.so +0 -0
  63. fontTools/subset/__init__.py +283 -25
  64. fontTools/subset/svg.py +2 -3
  65. fontTools/ttLib/__init__.py +4 -0
  66. fontTools/ttLib/__main__.py +47 -8
  67. fontTools/ttLib/removeOverlaps.py +7 -5
  68. fontTools/ttLib/reorderGlyphs.py +8 -7
  69. fontTools/ttLib/sfnt.py +11 -9
  70. fontTools/ttLib/tables/D__e_b_g.py +20 -2
  71. fontTools/ttLib/tables/G_V_A_R_.py +5 -0
  72. fontTools/ttLib/tables/S__i_l_f.py +2 -2
  73. fontTools/ttLib/tables/T_S_I__0.py +14 -3
  74. fontTools/ttLib/tables/T_S_I__1.py +2 -5
  75. fontTools/ttLib/tables/T_S_I__5.py +18 -7
  76. fontTools/ttLib/tables/__init__.py +1 -0
  77. fontTools/ttLib/tables/_a_v_a_r.py +12 -3
  78. fontTools/ttLib/tables/_c_m_a_p.py +20 -7
  79. fontTools/ttLib/tables/_c_v_t.py +3 -2
  80. fontTools/ttLib/tables/_f_p_g_m.py +3 -1
  81. fontTools/ttLib/tables/_g_l_y_f.py +45 -21
  82. fontTools/ttLib/tables/_g_v_a_r.py +67 -19
  83. fontTools/ttLib/tables/_h_d_m_x.py +4 -4
  84. fontTools/ttLib/tables/_h_m_t_x.py +7 -3
  85. fontTools/ttLib/tables/_l_o_c_a.py +2 -2
  86. fontTools/ttLib/tables/_n_a_m_e.py +11 -6
  87. fontTools/ttLib/tables/_p_o_s_t.py +9 -7
  88. fontTools/ttLib/tables/otBase.py +5 -12
  89. fontTools/ttLib/tables/otConverters.py +5 -2
  90. fontTools/ttLib/tables/otData.py +1 -1
  91. fontTools/ttLib/tables/otTables.py +33 -30
  92. fontTools/ttLib/tables/otTraverse.py +2 -1
  93. fontTools/ttLib/tables/sbixStrike.py +3 -3
  94. fontTools/ttLib/ttFont.py +666 -120
  95. fontTools/ttLib/ttGlyphSet.py +0 -10
  96. fontTools/ttLib/woff2.py +10 -13
  97. fontTools/ttx.py +13 -1
  98. fontTools/ufoLib/__init__.py +300 -202
  99. fontTools/ufoLib/converters.py +103 -30
  100. fontTools/ufoLib/errors.py +8 -0
  101. fontTools/ufoLib/etree.py +1 -1
  102. fontTools/ufoLib/filenames.py +171 -106
  103. fontTools/ufoLib/glifLib.py +303 -205
  104. fontTools/ufoLib/kerning.py +98 -48
  105. fontTools/ufoLib/utils.py +46 -15
  106. fontTools/ufoLib/validators.py +121 -99
  107. fontTools/unicodedata/Blocks.py +35 -20
  108. fontTools/unicodedata/Mirrored.py +446 -0
  109. fontTools/unicodedata/ScriptExtensions.py +63 -37
  110. fontTools/unicodedata/Scripts.py +173 -152
  111. fontTools/unicodedata/__init__.py +10 -2
  112. fontTools/varLib/__init__.py +198 -109
  113. fontTools/varLib/avar/__init__.py +0 -0
  114. fontTools/varLib/avar/__main__.py +72 -0
  115. fontTools/varLib/avar/build.py +79 -0
  116. fontTools/varLib/avar/map.py +108 -0
  117. fontTools/varLib/avar/plan.py +1004 -0
  118. fontTools/varLib/{avar.py → avar/unbuild.py} +70 -59
  119. fontTools/varLib/avarPlanner.py +3 -999
  120. fontTools/varLib/featureVars.py +21 -7
  121. fontTools/varLib/hvar.py +113 -0
  122. fontTools/varLib/instancer/__init__.py +180 -65
  123. fontTools/varLib/interpolatableHelpers.py +3 -0
  124. fontTools/varLib/iup.c +7564 -6903
  125. fontTools/varLib/iup.cpython-313-aarch64-linux-musl.so +0 -0
  126. fontTools/varLib/models.py +17 -2
  127. fontTools/varLib/mutator.py +11 -0
  128. fontTools/varLib/varStore.py +10 -38
  129. fontTools/voltLib/__main__.py +206 -0
  130. fontTools/voltLib/ast.py +4 -0
  131. fontTools/voltLib/parser.py +16 -8
  132. fontTools/voltLib/voltToFea.py +347 -166
  133. {fonttools-4.55.4.dist-info → fonttools-4.61.1.dist-info}/METADATA +269 -1410
  134. {fonttools-4.55.4.dist-info → fonttools-4.61.1.dist-info}/RECORD +318 -294
  135. {fonttools-4.55.4.dist-info → fonttools-4.61.1.dist-info}/WHEEL +1 -1
  136. fonttools-4.61.1.dist-info/licenses/LICENSE.external +388 -0
  137. {fonttools-4.55.4.data → fonttools-4.61.1.data}/data/share/man/man1/ttx.1 +0 -0
  138. {fonttools-4.55.4.dist-info → fonttools-4.61.1.dist-info}/entry_points.txt +0 -0
  139. {fonttools-4.55.4.dist-info → fonttools-4.61.1.dist-info/licenses}/LICENSE +0 -0
  140. {fonttools-4.55.4.dist-info → fonttools-4.61.1.dist-info}/top_level.txt +0 -0
@@ -4,9 +4,9 @@
4
4
  # Source: https://unicode.org/Public/UNIDATA/Blocks.txt
5
5
  # License: http://unicode.org/copyright.html#License
6
6
  #
7
- # Blocks-16.0.0.txt
8
- # Date: 2024-02-02
9
- # © 2024 Unicode®, Inc.
7
+ # Blocks-17.0.0.txt
8
+ # Date: 2025-08-01
9
+ # © 2025 Unicode®, Inc.
10
10
  # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
11
11
  # For terms of use and license, see https://www.unicode.org/terms_of_use.html
12
12
  #
@@ -16,7 +16,6 @@
16
16
  # Format:
17
17
  # Start Code..End Code; Block Name
18
18
 
19
-
20
19
  RANGES = [
21
20
  0x0000, # .. 0x007F ; Basic Latin
22
21
  0x0080, # .. 0x00FF ; Latin-1 Supplement
@@ -218,7 +217,8 @@ RANGES = [
218
217
  0x108E0, # .. 0x108FF ; Hatran
219
218
  0x10900, # .. 0x1091F ; Phoenician
220
219
  0x10920, # .. 0x1093F ; Lydian
221
- 0x10940, # .. 0x1097F ; No_Block
220
+ 0x10940, # .. 0x1095F ; Sidetic
221
+ 0x10960, # .. 0x1097F ; No_Block
222
222
  0x10980, # .. 0x1099F ; Meroitic Hieroglyphs
223
223
  0x109A0, # .. 0x109FF ; Meroitic Cursive
224
224
  0x10A00, # .. 0x10A5F ; Kharoshthi
@@ -279,14 +279,16 @@ RANGES = [
279
279
  0x11AB0, # .. 0x11ABF ; Unified Canadian Aboriginal Syllabics Extended-A
280
280
  0x11AC0, # .. 0x11AFF ; Pau Cin Hau
281
281
  0x11B00, # .. 0x11B5F ; Devanagari Extended-A
282
- 0x11B60, # .. 0x11BBF ; No_Block
282
+ 0x11B60, # .. 0x11B7F ; Sharada Supplement
283
+ 0x11B80, # .. 0x11BBF ; No_Block
283
284
  0x11BC0, # .. 0x11BFF ; Sunuwar
284
285
  0x11C00, # .. 0x11C6F ; Bhaiksuki
285
286
  0x11C70, # .. 0x11CBF ; Marchen
286
287
  0x11CC0, # .. 0x11CFF ; No_Block
287
288
  0x11D00, # .. 0x11D5F ; Masaram Gondi
288
289
  0x11D60, # .. 0x11DAF ; Gunjala Gondi
289
- 0x11DB0, # .. 0x11EDF ; No_Block
290
+ 0x11DB0, # .. 0x11DEF ; Tolong Siki
291
+ 0x11DF0, # .. 0x11EDF ; No_Block
290
292
  0x11EE0, # .. 0x11EFF ; Makasar
291
293
  0x11F00, # .. 0x11F5F ; Kawi
292
294
  0x11F60, # .. 0x11FAF ; No_Block
@@ -313,7 +315,8 @@ RANGES = [
313
315
  0x16D40, # .. 0x16D7F ; Kirat Rai
314
316
  0x16D80, # .. 0x16E3F ; No_Block
315
317
  0x16E40, # .. 0x16E9F ; Medefaidrin
316
- 0x16EA0, # .. 0x16EFF ; No_Block
318
+ 0x16EA0, # .. 0x16EDF ; Beria Erfe
319
+ 0x16EE0, # .. 0x16EFF ; No_Block
317
320
  0x16F00, # .. 0x16F9F ; Miao
318
321
  0x16FA0, # .. 0x16FDF ; No_Block
319
322
  0x16FE0, # .. 0x16FFF ; Ideographic Symbols and Punctuation
@@ -321,7 +324,8 @@ RANGES = [
321
324
  0x18800, # .. 0x18AFF ; Tangut Components
322
325
  0x18B00, # .. 0x18CFF ; Khitan Small Script
323
326
  0x18D00, # .. 0x18D7F ; Tangut Supplement
324
- 0x18D80, # .. 0x1AFEF ; No_Block
327
+ 0x18D80, # .. 0x18DFF ; Tangut Components Supplement
328
+ 0x18E00, # .. 0x1AFEF ; No_Block
325
329
  0x1AFF0, # .. 0x1AFFF ; Kana Extended-B
326
330
  0x1B000, # .. 0x1B0FF ; Kana Supplement
327
331
  0x1B100, # .. 0x1B12F ; Kana Extended-A
@@ -332,7 +336,7 @@ RANGES = [
332
336
  0x1BCA0, # .. 0x1BCAF ; Shorthand Format Controls
333
337
  0x1BCB0, # .. 0x1CBFF ; No_Block
334
338
  0x1CC00, # .. 0x1CEBF ; Symbols for Legacy Computing Supplement
335
- 0x1CEC0, # .. 0x1CEFF ; No_Block
339
+ 0x1CEC0, # .. 0x1CEFF ; Miscellaneous Symbols Supplement
336
340
  0x1CF00, # .. 0x1CFCF ; Znamenny Musical Notation
337
341
  0x1CFD0, # .. 0x1CFFF ; No_Block
338
342
  0x1D000, # .. 0x1D0FF ; Byzantine Musical Symbols
@@ -359,7 +363,9 @@ RANGES = [
359
363
  0x1E4D0, # .. 0x1E4FF ; Nag Mundari
360
364
  0x1E500, # .. 0x1E5CF ; No_Block
361
365
  0x1E5D0, # .. 0x1E5FF ; Ol Onal
362
- 0x1E600, # .. 0x1E7DF ; No_Block
366
+ 0x1E600, # .. 0x1E6BF ; No_Block
367
+ 0x1E6C0, # .. 0x1E6FF ; Tai Yo
368
+ 0x1E700, # .. 0x1E7DF ; No_Block
363
369
  0x1E7E0, # .. 0x1E7FF ; Ethiopic Extended-B
364
370
  0x1E800, # .. 0x1E8DF ; Mende Kikakui
365
371
  0x1E8E0, # .. 0x1E8FF ; No_Block
@@ -400,7 +406,8 @@ RANGES = [
400
406
  0x2FA20, # .. 0x2FFFF ; No_Block
401
407
  0x30000, # .. 0x3134F ; CJK Unified Ideographs Extension G
402
408
  0x31350, # .. 0x323AF ; CJK Unified Ideographs Extension H
403
- 0x323B0, # .. 0xDFFFF ; No_Block
409
+ 0x323B0, # .. 0x3347F ; CJK Unified Ideographs Extension J
410
+ 0x33480, # .. 0xDFFFF ; No_Block
404
411
  0xE0000, # .. 0xE007F ; Tags
405
412
  0xE0080, # .. 0xE00FF ; No_Block
406
413
  0xE0100, # .. 0xE01EF ; Variation Selectors Supplement
@@ -610,7 +617,8 @@ VALUES = [
610
617
  "Hatran", # 108E0..108FF
611
618
  "Phoenician", # 10900..1091F
612
619
  "Lydian", # 10920..1093F
613
- "No_Block", # 10940..1097F
620
+ "Sidetic", # 10940..1095F
621
+ "No_Block", # 10960..1097F
614
622
  "Meroitic Hieroglyphs", # 10980..1099F
615
623
  "Meroitic Cursive", # 109A0..109FF
616
624
  "Kharoshthi", # 10A00..10A5F
@@ -671,14 +679,16 @@ VALUES = [
671
679
  "Unified Canadian Aboriginal Syllabics Extended-A", # 11AB0..11ABF
672
680
  "Pau Cin Hau", # 11AC0..11AFF
673
681
  "Devanagari Extended-A", # 11B00..11B5F
674
- "No_Block", # 11B60..11BBF
682
+ "Sharada Supplement", # 11B60..11B7F
683
+ "No_Block", # 11B80..11BBF
675
684
  "Sunuwar", # 11BC0..11BFF
676
685
  "Bhaiksuki", # 11C00..11C6F
677
686
  "Marchen", # 11C70..11CBF
678
687
  "No_Block", # 11CC0..11CFF
679
688
  "Masaram Gondi", # 11D00..11D5F
680
689
  "Gunjala Gondi", # 11D60..11DAF
681
- "No_Block", # 11DB0..11EDF
690
+ "Tolong Siki", # 11DB0..11DEF
691
+ "No_Block", # 11DF0..11EDF
682
692
  "Makasar", # 11EE0..11EFF
683
693
  "Kawi", # 11F00..11F5F
684
694
  "No_Block", # 11F60..11FAF
@@ -705,7 +715,8 @@ VALUES = [
705
715
  "Kirat Rai", # 16D40..16D7F
706
716
  "No_Block", # 16D80..16E3F
707
717
  "Medefaidrin", # 16E40..16E9F
708
- "No_Block", # 16EA0..16EFF
718
+ "Beria Erfe", # 16EA0..16EDF
719
+ "No_Block", # 16EE0..16EFF
709
720
  "Miao", # 16F00..16F9F
710
721
  "No_Block", # 16FA0..16FDF
711
722
  "Ideographic Symbols and Punctuation", # 16FE0..16FFF
@@ -713,7 +724,8 @@ VALUES = [
713
724
  "Tangut Components", # 18800..18AFF
714
725
  "Khitan Small Script", # 18B00..18CFF
715
726
  "Tangut Supplement", # 18D00..18D7F
716
- "No_Block", # 18D80..1AFEF
727
+ "Tangut Components Supplement", # 18D80..18DFF
728
+ "No_Block", # 18E00..1AFEF
717
729
  "Kana Extended-B", # 1AFF0..1AFFF
718
730
  "Kana Supplement", # 1B000..1B0FF
719
731
  "Kana Extended-A", # 1B100..1B12F
@@ -724,7 +736,7 @@ VALUES = [
724
736
  "Shorthand Format Controls", # 1BCA0..1BCAF
725
737
  "No_Block", # 1BCB0..1CBFF
726
738
  "Symbols for Legacy Computing Supplement", # 1CC00..1CEBF
727
- "No_Block", # 1CEC0..1CEFF
739
+ "Miscellaneous Symbols Supplement", # 1CEC0..1CEFF
728
740
  "Znamenny Musical Notation", # 1CF00..1CFCF
729
741
  "No_Block", # 1CFD0..1CFFF
730
742
  "Byzantine Musical Symbols", # 1D000..1D0FF
@@ -751,7 +763,9 @@ VALUES = [
751
763
  "Nag Mundari", # 1E4D0..1E4FF
752
764
  "No_Block", # 1E500..1E5CF
753
765
  "Ol Onal", # 1E5D0..1E5FF
754
- "No_Block", # 1E600..1E7DF
766
+ "No_Block", # 1E600..1E6BF
767
+ "Tai Yo", # 1E6C0..1E6FF
768
+ "No_Block", # 1E700..1E7DF
755
769
  "Ethiopic Extended-B", # 1E7E0..1E7FF
756
770
  "Mende Kikakui", # 1E800..1E8DF
757
771
  "No_Block", # 1E8E0..1E8FF
@@ -792,7 +806,8 @@ VALUES = [
792
806
  "No_Block", # 2FA20..2FFFF
793
807
  "CJK Unified Ideographs Extension G", # 30000..3134F
794
808
  "CJK Unified Ideographs Extension H", # 31350..323AF
795
- "No_Block", # 323B0..DFFFF
809
+ "CJK Unified Ideographs Extension J", # 323B0..3347F
810
+ "No_Block", # 33480..DFFFF
796
811
  "Tags", # E0000..E007F
797
812
  "No_Block", # E0080..E00FF
798
813
  "Variation Selectors Supplement", # E0100..E01EF
@@ -0,0 +1,446 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # NOTE: The mappings in this file were generated from the command line:
4
+ # cat BidiMirroring.txt | grep "^[0-9A-F]" | sed "s/;//" | awk '{print " 0x"$1": 0x"$2","}'
5
+ #
6
+ # Source: http://www.unicode.org/Public/UNIDATA/BidiMirroring.txt
7
+ # License: http://unicode.org/copyright.html#License
8
+ #
9
+ # BidiMirroring-16.0.0.txt
10
+ # Date: 2024-01-30
11
+ # © 2024 Unicode®, Inc.
12
+ # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
13
+ # For terms of use and license, see https://www.unicode.org/terms_of_use.html
14
+ #
15
+ # Unicode Character Database
16
+ # For documentation, see https://www.unicode.org/reports/tr44/
17
+ MIRRORED = {
18
+ 0x0028: 0x0029,
19
+ 0x0029: 0x0028,
20
+ 0x003C: 0x003E,
21
+ 0x003E: 0x003C,
22
+ 0x005B: 0x005D,
23
+ 0x005D: 0x005B,
24
+ 0x007B: 0x007D,
25
+ 0x007D: 0x007B,
26
+ 0x00AB: 0x00BB,
27
+ 0x00BB: 0x00AB,
28
+ 0x0F3A: 0x0F3B,
29
+ 0x0F3B: 0x0F3A,
30
+ 0x0F3C: 0x0F3D,
31
+ 0x0F3D: 0x0F3C,
32
+ 0x169B: 0x169C,
33
+ 0x169C: 0x169B,
34
+ 0x2039: 0x203A,
35
+ 0x203A: 0x2039,
36
+ 0x2045: 0x2046,
37
+ 0x2046: 0x2045,
38
+ 0x207D: 0x207E,
39
+ 0x207E: 0x207D,
40
+ 0x208D: 0x208E,
41
+ 0x208E: 0x208D,
42
+ 0x2208: 0x220B,
43
+ 0x2209: 0x220C,
44
+ 0x220A: 0x220D,
45
+ 0x220B: 0x2208,
46
+ 0x220C: 0x2209,
47
+ 0x220D: 0x220A,
48
+ 0x2215: 0x29F5,
49
+ 0x221F: 0x2BFE,
50
+ 0x2220: 0x29A3,
51
+ 0x2221: 0x299B,
52
+ 0x2222: 0x29A0,
53
+ 0x2224: 0x2AEE,
54
+ 0x223C: 0x223D,
55
+ 0x223D: 0x223C,
56
+ 0x2243: 0x22CD,
57
+ 0x2245: 0x224C,
58
+ 0x224C: 0x2245,
59
+ 0x2252: 0x2253,
60
+ 0x2253: 0x2252,
61
+ 0x2254: 0x2255,
62
+ 0x2255: 0x2254,
63
+ 0x2264: 0x2265,
64
+ 0x2265: 0x2264,
65
+ 0x2266: 0x2267,
66
+ 0x2267: 0x2266,
67
+ 0x2268: 0x2269,
68
+ 0x2269: 0x2268,
69
+ 0x226A: 0x226B,
70
+ 0x226B: 0x226A,
71
+ 0x226E: 0x226F,
72
+ 0x226F: 0x226E,
73
+ 0x2270: 0x2271,
74
+ 0x2271: 0x2270,
75
+ 0x2272: 0x2273,
76
+ 0x2273: 0x2272,
77
+ 0x2274: 0x2275,
78
+ 0x2275: 0x2274,
79
+ 0x2276: 0x2277,
80
+ 0x2277: 0x2276,
81
+ 0x2278: 0x2279,
82
+ 0x2279: 0x2278,
83
+ 0x227A: 0x227B,
84
+ 0x227B: 0x227A,
85
+ 0x227C: 0x227D,
86
+ 0x227D: 0x227C,
87
+ 0x227E: 0x227F,
88
+ 0x227F: 0x227E,
89
+ 0x2280: 0x2281,
90
+ 0x2281: 0x2280,
91
+ 0x2282: 0x2283,
92
+ 0x2283: 0x2282,
93
+ 0x2284: 0x2285,
94
+ 0x2285: 0x2284,
95
+ 0x2286: 0x2287,
96
+ 0x2287: 0x2286,
97
+ 0x2288: 0x2289,
98
+ 0x2289: 0x2288,
99
+ 0x228A: 0x228B,
100
+ 0x228B: 0x228A,
101
+ 0x228F: 0x2290,
102
+ 0x2290: 0x228F,
103
+ 0x2291: 0x2292,
104
+ 0x2292: 0x2291,
105
+ 0x2298: 0x29B8,
106
+ 0x22A2: 0x22A3,
107
+ 0x22A3: 0x22A2,
108
+ 0x22A6: 0x2ADE,
109
+ 0x22A8: 0x2AE4,
110
+ 0x22A9: 0x2AE3,
111
+ 0x22AB: 0x2AE5,
112
+ 0x22B0: 0x22B1,
113
+ 0x22B1: 0x22B0,
114
+ 0x22B2: 0x22B3,
115
+ 0x22B3: 0x22B2,
116
+ 0x22B4: 0x22B5,
117
+ 0x22B5: 0x22B4,
118
+ 0x22B6: 0x22B7,
119
+ 0x22B7: 0x22B6,
120
+ 0x22B8: 0x27DC,
121
+ 0x22C9: 0x22CA,
122
+ 0x22CA: 0x22C9,
123
+ 0x22CB: 0x22CC,
124
+ 0x22CC: 0x22CB,
125
+ 0x22CD: 0x2243,
126
+ 0x22D0: 0x22D1,
127
+ 0x22D1: 0x22D0,
128
+ 0x22D6: 0x22D7,
129
+ 0x22D7: 0x22D6,
130
+ 0x22D8: 0x22D9,
131
+ 0x22D9: 0x22D8,
132
+ 0x22DA: 0x22DB,
133
+ 0x22DB: 0x22DA,
134
+ 0x22DC: 0x22DD,
135
+ 0x22DD: 0x22DC,
136
+ 0x22DE: 0x22DF,
137
+ 0x22DF: 0x22DE,
138
+ 0x22E0: 0x22E1,
139
+ 0x22E1: 0x22E0,
140
+ 0x22E2: 0x22E3,
141
+ 0x22E3: 0x22E2,
142
+ 0x22E4: 0x22E5,
143
+ 0x22E5: 0x22E4,
144
+ 0x22E6: 0x22E7,
145
+ 0x22E7: 0x22E6,
146
+ 0x22E8: 0x22E9,
147
+ 0x22E9: 0x22E8,
148
+ 0x22EA: 0x22EB,
149
+ 0x22EB: 0x22EA,
150
+ 0x22EC: 0x22ED,
151
+ 0x22ED: 0x22EC,
152
+ 0x22F0: 0x22F1,
153
+ 0x22F1: 0x22F0,
154
+ 0x22F2: 0x22FA,
155
+ 0x22F3: 0x22FB,
156
+ 0x22F4: 0x22FC,
157
+ 0x22F6: 0x22FD,
158
+ 0x22F7: 0x22FE,
159
+ 0x22FA: 0x22F2,
160
+ 0x22FB: 0x22F3,
161
+ 0x22FC: 0x22F4,
162
+ 0x22FD: 0x22F6,
163
+ 0x22FE: 0x22F7,
164
+ 0x2308: 0x2309,
165
+ 0x2309: 0x2308,
166
+ 0x230A: 0x230B,
167
+ 0x230B: 0x230A,
168
+ 0x2329: 0x232A,
169
+ 0x232A: 0x2329,
170
+ 0x2768: 0x2769,
171
+ 0x2769: 0x2768,
172
+ 0x276A: 0x276B,
173
+ 0x276B: 0x276A,
174
+ 0x276C: 0x276D,
175
+ 0x276D: 0x276C,
176
+ 0x276E: 0x276F,
177
+ 0x276F: 0x276E,
178
+ 0x2770: 0x2771,
179
+ 0x2771: 0x2770,
180
+ 0x2772: 0x2773,
181
+ 0x2773: 0x2772,
182
+ 0x2774: 0x2775,
183
+ 0x2775: 0x2774,
184
+ 0x27C3: 0x27C4,
185
+ 0x27C4: 0x27C3,
186
+ 0x27C5: 0x27C6,
187
+ 0x27C6: 0x27C5,
188
+ 0x27C8: 0x27C9,
189
+ 0x27C9: 0x27C8,
190
+ 0x27CB: 0x27CD,
191
+ 0x27CD: 0x27CB,
192
+ 0x27D5: 0x27D6,
193
+ 0x27D6: 0x27D5,
194
+ 0x27DC: 0x22B8,
195
+ 0x27DD: 0x27DE,
196
+ 0x27DE: 0x27DD,
197
+ 0x27E2: 0x27E3,
198
+ 0x27E3: 0x27E2,
199
+ 0x27E4: 0x27E5,
200
+ 0x27E5: 0x27E4,
201
+ 0x27E6: 0x27E7,
202
+ 0x27E7: 0x27E6,
203
+ 0x27E8: 0x27E9,
204
+ 0x27E9: 0x27E8,
205
+ 0x27EA: 0x27EB,
206
+ 0x27EB: 0x27EA,
207
+ 0x27EC: 0x27ED,
208
+ 0x27ED: 0x27EC,
209
+ 0x27EE: 0x27EF,
210
+ 0x27EF: 0x27EE,
211
+ 0x2983: 0x2984,
212
+ 0x2984: 0x2983,
213
+ 0x2985: 0x2986,
214
+ 0x2986: 0x2985,
215
+ 0x2987: 0x2988,
216
+ 0x2988: 0x2987,
217
+ 0x2989: 0x298A,
218
+ 0x298A: 0x2989,
219
+ 0x298B: 0x298C,
220
+ 0x298C: 0x298B,
221
+ 0x298D: 0x2990,
222
+ 0x298E: 0x298F,
223
+ 0x298F: 0x298E,
224
+ 0x2990: 0x298D,
225
+ 0x2991: 0x2992,
226
+ 0x2992: 0x2991,
227
+ 0x2993: 0x2994,
228
+ 0x2994: 0x2993,
229
+ 0x2995: 0x2996,
230
+ 0x2996: 0x2995,
231
+ 0x2997: 0x2998,
232
+ 0x2998: 0x2997,
233
+ 0x299B: 0x2221,
234
+ 0x29A0: 0x2222,
235
+ 0x29A3: 0x2220,
236
+ 0x29A4: 0x29A5,
237
+ 0x29A5: 0x29A4,
238
+ 0x29A8: 0x29A9,
239
+ 0x29A9: 0x29A8,
240
+ 0x29AA: 0x29AB,
241
+ 0x29AB: 0x29AA,
242
+ 0x29AC: 0x29AD,
243
+ 0x29AD: 0x29AC,
244
+ 0x29AE: 0x29AF,
245
+ 0x29AF: 0x29AE,
246
+ 0x29B8: 0x2298,
247
+ 0x29C0: 0x29C1,
248
+ 0x29C1: 0x29C0,
249
+ 0x29C4: 0x29C5,
250
+ 0x29C5: 0x29C4,
251
+ 0x29CF: 0x29D0,
252
+ 0x29D0: 0x29CF,
253
+ 0x29D1: 0x29D2,
254
+ 0x29D2: 0x29D1,
255
+ 0x29D4: 0x29D5,
256
+ 0x29D5: 0x29D4,
257
+ 0x29D8: 0x29D9,
258
+ 0x29D9: 0x29D8,
259
+ 0x29DA: 0x29DB,
260
+ 0x29DB: 0x29DA,
261
+ 0x29E8: 0x29E9,
262
+ 0x29E9: 0x29E8,
263
+ 0x29F5: 0x2215,
264
+ 0x29F8: 0x29F9,
265
+ 0x29F9: 0x29F8,
266
+ 0x29FC: 0x29FD,
267
+ 0x29FD: 0x29FC,
268
+ 0x2A2B: 0x2A2C,
269
+ 0x2A2C: 0x2A2B,
270
+ 0x2A2D: 0x2A2E,
271
+ 0x2A2E: 0x2A2D,
272
+ 0x2A34: 0x2A35,
273
+ 0x2A35: 0x2A34,
274
+ 0x2A3C: 0x2A3D,
275
+ 0x2A3D: 0x2A3C,
276
+ 0x2A64: 0x2A65,
277
+ 0x2A65: 0x2A64,
278
+ 0x2A79: 0x2A7A,
279
+ 0x2A7A: 0x2A79,
280
+ 0x2A7B: 0x2A7C,
281
+ 0x2A7C: 0x2A7B,
282
+ 0x2A7D: 0x2A7E,
283
+ 0x2A7E: 0x2A7D,
284
+ 0x2A7F: 0x2A80,
285
+ 0x2A80: 0x2A7F,
286
+ 0x2A81: 0x2A82,
287
+ 0x2A82: 0x2A81,
288
+ 0x2A83: 0x2A84,
289
+ 0x2A84: 0x2A83,
290
+ 0x2A85: 0x2A86,
291
+ 0x2A86: 0x2A85,
292
+ 0x2A87: 0x2A88,
293
+ 0x2A88: 0x2A87,
294
+ 0x2A89: 0x2A8A,
295
+ 0x2A8A: 0x2A89,
296
+ 0x2A8B: 0x2A8C,
297
+ 0x2A8C: 0x2A8B,
298
+ 0x2A8D: 0x2A8E,
299
+ 0x2A8E: 0x2A8D,
300
+ 0x2A8F: 0x2A90,
301
+ 0x2A90: 0x2A8F,
302
+ 0x2A91: 0x2A92,
303
+ 0x2A92: 0x2A91,
304
+ 0x2A93: 0x2A94,
305
+ 0x2A94: 0x2A93,
306
+ 0x2A95: 0x2A96,
307
+ 0x2A96: 0x2A95,
308
+ 0x2A97: 0x2A98,
309
+ 0x2A98: 0x2A97,
310
+ 0x2A99: 0x2A9A,
311
+ 0x2A9A: 0x2A99,
312
+ 0x2A9B: 0x2A9C,
313
+ 0x2A9C: 0x2A9B,
314
+ 0x2A9D: 0x2A9E,
315
+ 0x2A9E: 0x2A9D,
316
+ 0x2A9F: 0x2AA0,
317
+ 0x2AA0: 0x2A9F,
318
+ 0x2AA1: 0x2AA2,
319
+ 0x2AA2: 0x2AA1,
320
+ 0x2AA6: 0x2AA7,
321
+ 0x2AA7: 0x2AA6,
322
+ 0x2AA8: 0x2AA9,
323
+ 0x2AA9: 0x2AA8,
324
+ 0x2AAA: 0x2AAB,
325
+ 0x2AAB: 0x2AAA,
326
+ 0x2AAC: 0x2AAD,
327
+ 0x2AAD: 0x2AAC,
328
+ 0x2AAF: 0x2AB0,
329
+ 0x2AB0: 0x2AAF,
330
+ 0x2AB1: 0x2AB2,
331
+ 0x2AB2: 0x2AB1,
332
+ 0x2AB3: 0x2AB4,
333
+ 0x2AB4: 0x2AB3,
334
+ 0x2AB5: 0x2AB6,
335
+ 0x2AB6: 0x2AB5,
336
+ 0x2AB7: 0x2AB8,
337
+ 0x2AB8: 0x2AB7,
338
+ 0x2AB9: 0x2ABA,
339
+ 0x2ABA: 0x2AB9,
340
+ 0x2ABB: 0x2ABC,
341
+ 0x2ABC: 0x2ABB,
342
+ 0x2ABD: 0x2ABE,
343
+ 0x2ABE: 0x2ABD,
344
+ 0x2ABF: 0x2AC0,
345
+ 0x2AC0: 0x2ABF,
346
+ 0x2AC1: 0x2AC2,
347
+ 0x2AC2: 0x2AC1,
348
+ 0x2AC3: 0x2AC4,
349
+ 0x2AC4: 0x2AC3,
350
+ 0x2AC5: 0x2AC6,
351
+ 0x2AC6: 0x2AC5,
352
+ 0x2AC7: 0x2AC8,
353
+ 0x2AC8: 0x2AC7,
354
+ 0x2AC9: 0x2ACA,
355
+ 0x2ACA: 0x2AC9,
356
+ 0x2ACB: 0x2ACC,
357
+ 0x2ACC: 0x2ACB,
358
+ 0x2ACD: 0x2ACE,
359
+ 0x2ACE: 0x2ACD,
360
+ 0x2ACF: 0x2AD0,
361
+ 0x2AD0: 0x2ACF,
362
+ 0x2AD1: 0x2AD2,
363
+ 0x2AD2: 0x2AD1,
364
+ 0x2AD3: 0x2AD4,
365
+ 0x2AD4: 0x2AD3,
366
+ 0x2AD5: 0x2AD6,
367
+ 0x2AD6: 0x2AD5,
368
+ 0x2ADE: 0x22A6,
369
+ 0x2AE3: 0x22A9,
370
+ 0x2AE4: 0x22A8,
371
+ 0x2AE5: 0x22AB,
372
+ 0x2AEC: 0x2AED,
373
+ 0x2AED: 0x2AEC,
374
+ 0x2AEE: 0x2224,
375
+ 0x2AF7: 0x2AF8,
376
+ 0x2AF8: 0x2AF7,
377
+ 0x2AF9: 0x2AFA,
378
+ 0x2AFA: 0x2AF9,
379
+ 0x2BFE: 0x221F,
380
+ 0x2E02: 0x2E03,
381
+ 0x2E03: 0x2E02,
382
+ 0x2E04: 0x2E05,
383
+ 0x2E05: 0x2E04,
384
+ 0x2E09: 0x2E0A,
385
+ 0x2E0A: 0x2E09,
386
+ 0x2E0C: 0x2E0D,
387
+ 0x2E0D: 0x2E0C,
388
+ 0x2E1C: 0x2E1D,
389
+ 0x2E1D: 0x2E1C,
390
+ 0x2E20: 0x2E21,
391
+ 0x2E21: 0x2E20,
392
+ 0x2E22: 0x2E23,
393
+ 0x2E23: 0x2E22,
394
+ 0x2E24: 0x2E25,
395
+ 0x2E25: 0x2E24,
396
+ 0x2E26: 0x2E27,
397
+ 0x2E27: 0x2E26,
398
+ 0x2E28: 0x2E29,
399
+ 0x2E29: 0x2E28,
400
+ 0x2E55: 0x2E56,
401
+ 0x2E56: 0x2E55,
402
+ 0x2E57: 0x2E58,
403
+ 0x2E58: 0x2E57,
404
+ 0x2E59: 0x2E5A,
405
+ 0x2E5A: 0x2E59,
406
+ 0x2E5B: 0x2E5C,
407
+ 0x2E5C: 0x2E5B,
408
+ 0x3008: 0x3009,
409
+ 0x3009: 0x3008,
410
+ 0x300A: 0x300B,
411
+ 0x300B: 0x300A,
412
+ 0x300C: 0x300D,
413
+ 0x300D: 0x300C,
414
+ 0x300E: 0x300F,
415
+ 0x300F: 0x300E,
416
+ 0x3010: 0x3011,
417
+ 0x3011: 0x3010,
418
+ 0x3014: 0x3015,
419
+ 0x3015: 0x3014,
420
+ 0x3016: 0x3017,
421
+ 0x3017: 0x3016,
422
+ 0x3018: 0x3019,
423
+ 0x3019: 0x3018,
424
+ 0x301A: 0x301B,
425
+ 0x301B: 0x301A,
426
+ 0xFE59: 0xFE5A,
427
+ 0xFE5A: 0xFE59,
428
+ 0xFE5B: 0xFE5C,
429
+ 0xFE5C: 0xFE5B,
430
+ 0xFE5D: 0xFE5E,
431
+ 0xFE5E: 0xFE5D,
432
+ 0xFE64: 0xFE65,
433
+ 0xFE65: 0xFE64,
434
+ 0xFF08: 0xFF09,
435
+ 0xFF09: 0xFF08,
436
+ 0xFF1C: 0xFF1E,
437
+ 0xFF1E: 0xFF1C,
438
+ 0xFF3B: 0xFF3D,
439
+ 0xFF3D: 0xFF3B,
440
+ 0xFF5B: 0xFF5D,
441
+ 0xFF5D: 0xFF5B,
442
+ 0xFF5F: 0xFF60,
443
+ 0xFF60: 0xFF5F,
444
+ 0xFF62: 0xFF63,
445
+ 0xFF63: 0xFF62,
446
+ }