You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			447 lines
		
	
	
		
			9.0 KiB
		
	
	
	
		
			Python
		
	
			
		
		
	
	
			447 lines
		
	
	
		
			9.0 KiB
		
	
	
	
		
			Python
		
	
# -*- coding: utf-8 -*-
 | 
						|
#
 | 
						|
# NOTE: The mappings in this file were generated from the command line:
 | 
						|
# cat BidiMirroring.txt | grep "^[0-9A-F]" | sed "s/;//" | awk '{print "    0x"$1": 0x"$2","}'
 | 
						|
#
 | 
						|
# Source: http://www.unicode.org/Public/UNIDATA/BidiMirroring.txt
 | 
						|
# License: http://unicode.org/copyright.html#License
 | 
						|
#
 | 
						|
# BidiMirroring-16.0.0.txt
 | 
						|
# Date: 2024-01-30
 | 
						|
# © 2024 Unicode®, Inc.
 | 
						|
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
 | 
						|
# For terms of use and license, see https://www.unicode.org/terms_of_use.html
 | 
						|
#
 | 
						|
# Unicode Character Database
 | 
						|
# For documentation, see https://www.unicode.org/reports/tr44/
 | 
						|
MIRRORED = {
 | 
						|
    0x0028: 0x0029,
 | 
						|
    0x0029: 0x0028,
 | 
						|
    0x003C: 0x003E,
 | 
						|
    0x003E: 0x003C,
 | 
						|
    0x005B: 0x005D,
 | 
						|
    0x005D: 0x005B,
 | 
						|
    0x007B: 0x007D,
 | 
						|
    0x007D: 0x007B,
 | 
						|
    0x00AB: 0x00BB,
 | 
						|
    0x00BB: 0x00AB,
 | 
						|
    0x0F3A: 0x0F3B,
 | 
						|
    0x0F3B: 0x0F3A,
 | 
						|
    0x0F3C: 0x0F3D,
 | 
						|
    0x0F3D: 0x0F3C,
 | 
						|
    0x169B: 0x169C,
 | 
						|
    0x169C: 0x169B,
 | 
						|
    0x2039: 0x203A,
 | 
						|
    0x203A: 0x2039,
 | 
						|
    0x2045: 0x2046,
 | 
						|
    0x2046: 0x2045,
 | 
						|
    0x207D: 0x207E,
 | 
						|
    0x207E: 0x207D,
 | 
						|
    0x208D: 0x208E,
 | 
						|
    0x208E: 0x208D,
 | 
						|
    0x2208: 0x220B,
 | 
						|
    0x2209: 0x220C,
 | 
						|
    0x220A: 0x220D,
 | 
						|
    0x220B: 0x2208,
 | 
						|
    0x220C: 0x2209,
 | 
						|
    0x220D: 0x220A,
 | 
						|
    0x2215: 0x29F5,
 | 
						|
    0x221F: 0x2BFE,
 | 
						|
    0x2220: 0x29A3,
 | 
						|
    0x2221: 0x299B,
 | 
						|
    0x2222: 0x29A0,
 | 
						|
    0x2224: 0x2AEE,
 | 
						|
    0x223C: 0x223D,
 | 
						|
    0x223D: 0x223C,
 | 
						|
    0x2243: 0x22CD,
 | 
						|
    0x2245: 0x224C,
 | 
						|
    0x224C: 0x2245,
 | 
						|
    0x2252: 0x2253,
 | 
						|
    0x2253: 0x2252,
 | 
						|
    0x2254: 0x2255,
 | 
						|
    0x2255: 0x2254,
 | 
						|
    0x2264: 0x2265,
 | 
						|
    0x2265: 0x2264,
 | 
						|
    0x2266: 0x2267,
 | 
						|
    0x2267: 0x2266,
 | 
						|
    0x2268: 0x2269,
 | 
						|
    0x2269: 0x2268,
 | 
						|
    0x226A: 0x226B,
 | 
						|
    0x226B: 0x226A,
 | 
						|
    0x226E: 0x226F,
 | 
						|
    0x226F: 0x226E,
 | 
						|
    0x2270: 0x2271,
 | 
						|
    0x2271: 0x2270,
 | 
						|
    0x2272: 0x2273,
 | 
						|
    0x2273: 0x2272,
 | 
						|
    0x2274: 0x2275,
 | 
						|
    0x2275: 0x2274,
 | 
						|
    0x2276: 0x2277,
 | 
						|
    0x2277: 0x2276,
 | 
						|
    0x2278: 0x2279,
 | 
						|
    0x2279: 0x2278,
 | 
						|
    0x227A: 0x227B,
 | 
						|
    0x227B: 0x227A,
 | 
						|
    0x227C: 0x227D,
 | 
						|
    0x227D: 0x227C,
 | 
						|
    0x227E: 0x227F,
 | 
						|
    0x227F: 0x227E,
 | 
						|
    0x2280: 0x2281,
 | 
						|
    0x2281: 0x2280,
 | 
						|
    0x2282: 0x2283,
 | 
						|
    0x2283: 0x2282,
 | 
						|
    0x2284: 0x2285,
 | 
						|
    0x2285: 0x2284,
 | 
						|
    0x2286: 0x2287,
 | 
						|
    0x2287: 0x2286,
 | 
						|
    0x2288: 0x2289,
 | 
						|
    0x2289: 0x2288,
 | 
						|
    0x228A: 0x228B,
 | 
						|
    0x228B: 0x228A,
 | 
						|
    0x228F: 0x2290,
 | 
						|
    0x2290: 0x228F,
 | 
						|
    0x2291: 0x2292,
 | 
						|
    0x2292: 0x2291,
 | 
						|
    0x2298: 0x29B8,
 | 
						|
    0x22A2: 0x22A3,
 | 
						|
    0x22A3: 0x22A2,
 | 
						|
    0x22A6: 0x2ADE,
 | 
						|
    0x22A8: 0x2AE4,
 | 
						|
    0x22A9: 0x2AE3,
 | 
						|
    0x22AB: 0x2AE5,
 | 
						|
    0x22B0: 0x22B1,
 | 
						|
    0x22B1: 0x22B0,
 | 
						|
    0x22B2: 0x22B3,
 | 
						|
    0x22B3: 0x22B2,
 | 
						|
    0x22B4: 0x22B5,
 | 
						|
    0x22B5: 0x22B4,
 | 
						|
    0x22B6: 0x22B7,
 | 
						|
    0x22B7: 0x22B6,
 | 
						|
    0x22B8: 0x27DC,
 | 
						|
    0x22C9: 0x22CA,
 | 
						|
    0x22CA: 0x22C9,
 | 
						|
    0x22CB: 0x22CC,
 | 
						|
    0x22CC: 0x22CB,
 | 
						|
    0x22CD: 0x2243,
 | 
						|
    0x22D0: 0x22D1,
 | 
						|
    0x22D1: 0x22D0,
 | 
						|
    0x22D6: 0x22D7,
 | 
						|
    0x22D7: 0x22D6,
 | 
						|
    0x22D8: 0x22D9,
 | 
						|
    0x22D9: 0x22D8,
 | 
						|
    0x22DA: 0x22DB,
 | 
						|
    0x22DB: 0x22DA,
 | 
						|
    0x22DC: 0x22DD,
 | 
						|
    0x22DD: 0x22DC,
 | 
						|
    0x22DE: 0x22DF,
 | 
						|
    0x22DF: 0x22DE,
 | 
						|
    0x22E0: 0x22E1,
 | 
						|
    0x22E1: 0x22E0,
 | 
						|
    0x22E2: 0x22E3,
 | 
						|
    0x22E3: 0x22E2,
 | 
						|
    0x22E4: 0x22E5,
 | 
						|
    0x22E5: 0x22E4,
 | 
						|
    0x22E6: 0x22E7,
 | 
						|
    0x22E7: 0x22E6,
 | 
						|
    0x22E8: 0x22E9,
 | 
						|
    0x22E9: 0x22E8,
 | 
						|
    0x22EA: 0x22EB,
 | 
						|
    0x22EB: 0x22EA,
 | 
						|
    0x22EC: 0x22ED,
 | 
						|
    0x22ED: 0x22EC,
 | 
						|
    0x22F0: 0x22F1,
 | 
						|
    0x22F1: 0x22F0,
 | 
						|
    0x22F2: 0x22FA,
 | 
						|
    0x22F3: 0x22FB,
 | 
						|
    0x22F4: 0x22FC,
 | 
						|
    0x22F6: 0x22FD,
 | 
						|
    0x22F7: 0x22FE,
 | 
						|
    0x22FA: 0x22F2,
 | 
						|
    0x22FB: 0x22F3,
 | 
						|
    0x22FC: 0x22F4,
 | 
						|
    0x22FD: 0x22F6,
 | 
						|
    0x22FE: 0x22F7,
 | 
						|
    0x2308: 0x2309,
 | 
						|
    0x2309: 0x2308,
 | 
						|
    0x230A: 0x230B,
 | 
						|
    0x230B: 0x230A,
 | 
						|
    0x2329: 0x232A,
 | 
						|
    0x232A: 0x2329,
 | 
						|
    0x2768: 0x2769,
 | 
						|
    0x2769: 0x2768,
 | 
						|
    0x276A: 0x276B,
 | 
						|
    0x276B: 0x276A,
 | 
						|
    0x276C: 0x276D,
 | 
						|
    0x276D: 0x276C,
 | 
						|
    0x276E: 0x276F,
 | 
						|
    0x276F: 0x276E,
 | 
						|
    0x2770: 0x2771,
 | 
						|
    0x2771: 0x2770,
 | 
						|
    0x2772: 0x2773,
 | 
						|
    0x2773: 0x2772,
 | 
						|
    0x2774: 0x2775,
 | 
						|
    0x2775: 0x2774,
 | 
						|
    0x27C3: 0x27C4,
 | 
						|
    0x27C4: 0x27C3,
 | 
						|
    0x27C5: 0x27C6,
 | 
						|
    0x27C6: 0x27C5,
 | 
						|
    0x27C8: 0x27C9,
 | 
						|
    0x27C9: 0x27C8,
 | 
						|
    0x27CB: 0x27CD,
 | 
						|
    0x27CD: 0x27CB,
 | 
						|
    0x27D5: 0x27D6,
 | 
						|
    0x27D6: 0x27D5,
 | 
						|
    0x27DC: 0x22B8,
 | 
						|
    0x27DD: 0x27DE,
 | 
						|
    0x27DE: 0x27DD,
 | 
						|
    0x27E2: 0x27E3,
 | 
						|
    0x27E3: 0x27E2,
 | 
						|
    0x27E4: 0x27E5,
 | 
						|
    0x27E5: 0x27E4,
 | 
						|
    0x27E6: 0x27E7,
 | 
						|
    0x27E7: 0x27E6,
 | 
						|
    0x27E8: 0x27E9,
 | 
						|
    0x27E9: 0x27E8,
 | 
						|
    0x27EA: 0x27EB,
 | 
						|
    0x27EB: 0x27EA,
 | 
						|
    0x27EC: 0x27ED,
 | 
						|
    0x27ED: 0x27EC,
 | 
						|
    0x27EE: 0x27EF,
 | 
						|
    0x27EF: 0x27EE,
 | 
						|
    0x2983: 0x2984,
 | 
						|
    0x2984: 0x2983,
 | 
						|
    0x2985: 0x2986,
 | 
						|
    0x2986: 0x2985,
 | 
						|
    0x2987: 0x2988,
 | 
						|
    0x2988: 0x2987,
 | 
						|
    0x2989: 0x298A,
 | 
						|
    0x298A: 0x2989,
 | 
						|
    0x298B: 0x298C,
 | 
						|
    0x298C: 0x298B,
 | 
						|
    0x298D: 0x2990,
 | 
						|
    0x298E: 0x298F,
 | 
						|
    0x298F: 0x298E,
 | 
						|
    0x2990: 0x298D,
 | 
						|
    0x2991: 0x2992,
 | 
						|
    0x2992: 0x2991,
 | 
						|
    0x2993: 0x2994,
 | 
						|
    0x2994: 0x2993,
 | 
						|
    0x2995: 0x2996,
 | 
						|
    0x2996: 0x2995,
 | 
						|
    0x2997: 0x2998,
 | 
						|
    0x2998: 0x2997,
 | 
						|
    0x299B: 0x2221,
 | 
						|
    0x29A0: 0x2222,
 | 
						|
    0x29A3: 0x2220,
 | 
						|
    0x29A4: 0x29A5,
 | 
						|
    0x29A5: 0x29A4,
 | 
						|
    0x29A8: 0x29A9,
 | 
						|
    0x29A9: 0x29A8,
 | 
						|
    0x29AA: 0x29AB,
 | 
						|
    0x29AB: 0x29AA,
 | 
						|
    0x29AC: 0x29AD,
 | 
						|
    0x29AD: 0x29AC,
 | 
						|
    0x29AE: 0x29AF,
 | 
						|
    0x29AF: 0x29AE,
 | 
						|
    0x29B8: 0x2298,
 | 
						|
    0x29C0: 0x29C1,
 | 
						|
    0x29C1: 0x29C0,
 | 
						|
    0x29C4: 0x29C5,
 | 
						|
    0x29C5: 0x29C4,
 | 
						|
    0x29CF: 0x29D0,
 | 
						|
    0x29D0: 0x29CF,
 | 
						|
    0x29D1: 0x29D2,
 | 
						|
    0x29D2: 0x29D1,
 | 
						|
    0x29D4: 0x29D5,
 | 
						|
    0x29D5: 0x29D4,
 | 
						|
    0x29D8: 0x29D9,
 | 
						|
    0x29D9: 0x29D8,
 | 
						|
    0x29DA: 0x29DB,
 | 
						|
    0x29DB: 0x29DA,
 | 
						|
    0x29E8: 0x29E9,
 | 
						|
    0x29E9: 0x29E8,
 | 
						|
    0x29F5: 0x2215,
 | 
						|
    0x29F8: 0x29F9,
 | 
						|
    0x29F9: 0x29F8,
 | 
						|
    0x29FC: 0x29FD,
 | 
						|
    0x29FD: 0x29FC,
 | 
						|
    0x2A2B: 0x2A2C,
 | 
						|
    0x2A2C: 0x2A2B,
 | 
						|
    0x2A2D: 0x2A2E,
 | 
						|
    0x2A2E: 0x2A2D,
 | 
						|
    0x2A34: 0x2A35,
 | 
						|
    0x2A35: 0x2A34,
 | 
						|
    0x2A3C: 0x2A3D,
 | 
						|
    0x2A3D: 0x2A3C,
 | 
						|
    0x2A64: 0x2A65,
 | 
						|
    0x2A65: 0x2A64,
 | 
						|
    0x2A79: 0x2A7A,
 | 
						|
    0x2A7A: 0x2A79,
 | 
						|
    0x2A7B: 0x2A7C,
 | 
						|
    0x2A7C: 0x2A7B,
 | 
						|
    0x2A7D: 0x2A7E,
 | 
						|
    0x2A7E: 0x2A7D,
 | 
						|
    0x2A7F: 0x2A80,
 | 
						|
    0x2A80: 0x2A7F,
 | 
						|
    0x2A81: 0x2A82,
 | 
						|
    0x2A82: 0x2A81,
 | 
						|
    0x2A83: 0x2A84,
 | 
						|
    0x2A84: 0x2A83,
 | 
						|
    0x2A85: 0x2A86,
 | 
						|
    0x2A86: 0x2A85,
 | 
						|
    0x2A87: 0x2A88,
 | 
						|
    0x2A88: 0x2A87,
 | 
						|
    0x2A89: 0x2A8A,
 | 
						|
    0x2A8A: 0x2A89,
 | 
						|
    0x2A8B: 0x2A8C,
 | 
						|
    0x2A8C: 0x2A8B,
 | 
						|
    0x2A8D: 0x2A8E,
 | 
						|
    0x2A8E: 0x2A8D,
 | 
						|
    0x2A8F: 0x2A90,
 | 
						|
    0x2A90: 0x2A8F,
 | 
						|
    0x2A91: 0x2A92,
 | 
						|
    0x2A92: 0x2A91,
 | 
						|
    0x2A93: 0x2A94,
 | 
						|
    0x2A94: 0x2A93,
 | 
						|
    0x2A95: 0x2A96,
 | 
						|
    0x2A96: 0x2A95,
 | 
						|
    0x2A97: 0x2A98,
 | 
						|
    0x2A98: 0x2A97,
 | 
						|
    0x2A99: 0x2A9A,
 | 
						|
    0x2A9A: 0x2A99,
 | 
						|
    0x2A9B: 0x2A9C,
 | 
						|
    0x2A9C: 0x2A9B,
 | 
						|
    0x2A9D: 0x2A9E,
 | 
						|
    0x2A9E: 0x2A9D,
 | 
						|
    0x2A9F: 0x2AA0,
 | 
						|
    0x2AA0: 0x2A9F,
 | 
						|
    0x2AA1: 0x2AA2,
 | 
						|
    0x2AA2: 0x2AA1,
 | 
						|
    0x2AA6: 0x2AA7,
 | 
						|
    0x2AA7: 0x2AA6,
 | 
						|
    0x2AA8: 0x2AA9,
 | 
						|
    0x2AA9: 0x2AA8,
 | 
						|
    0x2AAA: 0x2AAB,
 | 
						|
    0x2AAB: 0x2AAA,
 | 
						|
    0x2AAC: 0x2AAD,
 | 
						|
    0x2AAD: 0x2AAC,
 | 
						|
    0x2AAF: 0x2AB0,
 | 
						|
    0x2AB0: 0x2AAF,
 | 
						|
    0x2AB1: 0x2AB2,
 | 
						|
    0x2AB2: 0x2AB1,
 | 
						|
    0x2AB3: 0x2AB4,
 | 
						|
    0x2AB4: 0x2AB3,
 | 
						|
    0x2AB5: 0x2AB6,
 | 
						|
    0x2AB6: 0x2AB5,
 | 
						|
    0x2AB7: 0x2AB8,
 | 
						|
    0x2AB8: 0x2AB7,
 | 
						|
    0x2AB9: 0x2ABA,
 | 
						|
    0x2ABA: 0x2AB9,
 | 
						|
    0x2ABB: 0x2ABC,
 | 
						|
    0x2ABC: 0x2ABB,
 | 
						|
    0x2ABD: 0x2ABE,
 | 
						|
    0x2ABE: 0x2ABD,
 | 
						|
    0x2ABF: 0x2AC0,
 | 
						|
    0x2AC0: 0x2ABF,
 | 
						|
    0x2AC1: 0x2AC2,
 | 
						|
    0x2AC2: 0x2AC1,
 | 
						|
    0x2AC3: 0x2AC4,
 | 
						|
    0x2AC4: 0x2AC3,
 | 
						|
    0x2AC5: 0x2AC6,
 | 
						|
    0x2AC6: 0x2AC5,
 | 
						|
    0x2AC7: 0x2AC8,
 | 
						|
    0x2AC8: 0x2AC7,
 | 
						|
    0x2AC9: 0x2ACA,
 | 
						|
    0x2ACA: 0x2AC9,
 | 
						|
    0x2ACB: 0x2ACC,
 | 
						|
    0x2ACC: 0x2ACB,
 | 
						|
    0x2ACD: 0x2ACE,
 | 
						|
    0x2ACE: 0x2ACD,
 | 
						|
    0x2ACF: 0x2AD0,
 | 
						|
    0x2AD0: 0x2ACF,
 | 
						|
    0x2AD1: 0x2AD2,
 | 
						|
    0x2AD2: 0x2AD1,
 | 
						|
    0x2AD3: 0x2AD4,
 | 
						|
    0x2AD4: 0x2AD3,
 | 
						|
    0x2AD5: 0x2AD6,
 | 
						|
    0x2AD6: 0x2AD5,
 | 
						|
    0x2ADE: 0x22A6,
 | 
						|
    0x2AE3: 0x22A9,
 | 
						|
    0x2AE4: 0x22A8,
 | 
						|
    0x2AE5: 0x22AB,
 | 
						|
    0x2AEC: 0x2AED,
 | 
						|
    0x2AED: 0x2AEC,
 | 
						|
    0x2AEE: 0x2224,
 | 
						|
    0x2AF7: 0x2AF8,
 | 
						|
    0x2AF8: 0x2AF7,
 | 
						|
    0x2AF9: 0x2AFA,
 | 
						|
    0x2AFA: 0x2AF9,
 | 
						|
    0x2BFE: 0x221F,
 | 
						|
    0x2E02: 0x2E03,
 | 
						|
    0x2E03: 0x2E02,
 | 
						|
    0x2E04: 0x2E05,
 | 
						|
    0x2E05: 0x2E04,
 | 
						|
    0x2E09: 0x2E0A,
 | 
						|
    0x2E0A: 0x2E09,
 | 
						|
    0x2E0C: 0x2E0D,
 | 
						|
    0x2E0D: 0x2E0C,
 | 
						|
    0x2E1C: 0x2E1D,
 | 
						|
    0x2E1D: 0x2E1C,
 | 
						|
    0x2E20: 0x2E21,
 | 
						|
    0x2E21: 0x2E20,
 | 
						|
    0x2E22: 0x2E23,
 | 
						|
    0x2E23: 0x2E22,
 | 
						|
    0x2E24: 0x2E25,
 | 
						|
    0x2E25: 0x2E24,
 | 
						|
    0x2E26: 0x2E27,
 | 
						|
    0x2E27: 0x2E26,
 | 
						|
    0x2E28: 0x2E29,
 | 
						|
    0x2E29: 0x2E28,
 | 
						|
    0x2E55: 0x2E56,
 | 
						|
    0x2E56: 0x2E55,
 | 
						|
    0x2E57: 0x2E58,
 | 
						|
    0x2E58: 0x2E57,
 | 
						|
    0x2E59: 0x2E5A,
 | 
						|
    0x2E5A: 0x2E59,
 | 
						|
    0x2E5B: 0x2E5C,
 | 
						|
    0x2E5C: 0x2E5B,
 | 
						|
    0x3008: 0x3009,
 | 
						|
    0x3009: 0x3008,
 | 
						|
    0x300A: 0x300B,
 | 
						|
    0x300B: 0x300A,
 | 
						|
    0x300C: 0x300D,
 | 
						|
    0x300D: 0x300C,
 | 
						|
    0x300E: 0x300F,
 | 
						|
    0x300F: 0x300E,
 | 
						|
    0x3010: 0x3011,
 | 
						|
    0x3011: 0x3010,
 | 
						|
    0x3014: 0x3015,
 | 
						|
    0x3015: 0x3014,
 | 
						|
    0x3016: 0x3017,
 | 
						|
    0x3017: 0x3016,
 | 
						|
    0x3018: 0x3019,
 | 
						|
    0x3019: 0x3018,
 | 
						|
    0x301A: 0x301B,
 | 
						|
    0x301B: 0x301A,
 | 
						|
    0xFE59: 0xFE5A,
 | 
						|
    0xFE5A: 0xFE59,
 | 
						|
    0xFE5B: 0xFE5C,
 | 
						|
    0xFE5C: 0xFE5B,
 | 
						|
    0xFE5D: 0xFE5E,
 | 
						|
    0xFE5E: 0xFE5D,
 | 
						|
    0xFE64: 0xFE65,
 | 
						|
    0xFE65: 0xFE64,
 | 
						|
    0xFF08: 0xFF09,
 | 
						|
    0xFF09: 0xFF08,
 | 
						|
    0xFF1C: 0xFF1E,
 | 
						|
    0xFF1E: 0xFF1C,
 | 
						|
    0xFF3B: 0xFF3D,
 | 
						|
    0xFF3D: 0xFF3B,
 | 
						|
    0xFF5B: 0xFF5D,
 | 
						|
    0xFF5D: 0xFF5B,
 | 
						|
    0xFF5F: 0xFF60,
 | 
						|
    0xFF60: 0xFF5F,
 | 
						|
    0xFF62: 0xFF63,
 | 
						|
    0xFF63: 0xFF62,
 | 
						|
}
 |