From 93f22c78cde0e28365a0845e99ccd93cf706cbd3 Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Tue, 30 Apr 2024 23:05:37 +0200 Subject: Add even more 2-stage lookup tables --- lib/unicode/prop/uprop_get_equideo.c | 691 +++++++++++++++++------------------ 1 file changed, 333 insertions(+), 358 deletions(-) (limited to 'lib/unicode/prop/uprop_get_equideo.c') diff --git a/lib/unicode/prop/uprop_get_equideo.c b/lib/unicode/prop/uprop_get_equideo.c index 17d147b..04b7c4f 100644 --- a/lib/unicode/prop/uprop_get_equideo.c +++ b/lib/unicode/prop/uprop_get_equideo.c @@ -1,369 +1,344 @@ /* This file is autogenerated by gen/prop/equideo; DO NOT EDIT. */ -#include "_bsearch.h" -#include "macros.h" -#include "rune.h" #include "unicode/prop.h" -static const struct { - rune k, v; -} lookup[] = { - {RUNE_C(0x002E81), RUNE_C(0x005382)}, - {RUNE_C(0x002E82), RUNE_C(0x004E5B)}, - {RUNE_C(0x002E83), RUNE_C(0x004E5A)}, - {RUNE_C(0x002E84), RUNE_C(0x004E59)}, - {RUNE_C(0x002E85), RUNE_C(0x004EBB)}, - {RUNE_C(0x002E86), RUNE_C(0x005182)}, - {RUNE_C(0x002E87), RUNE_C(0x020628)}, - {RUNE_C(0x002E88), RUNE_C(0x005200)}, - {RUNE_C(0x002E89), RUNE_C(0x005202)}, - {RUNE_C(0x002E8A), RUNE_C(0x00535C)}, - {RUNE_C(0x002E8B), RUNE_C(0x00353E)}, - {RUNE_C(0x002E8C), RUNE_C(0x005C0F)}, - {RUNE_C(0x002E8D), RUNE_C(0x005C0F)}, - {RUNE_C(0x002E8E), RUNE_C(0x005140)}, - {RUNE_C(0x002E8F), RUNE_C(0x005C23)}, - {RUNE_C(0x002E90), RUNE_C(0x005C22)}, - {RUNE_C(0x002E91), RUNE_C(0x021BC2)}, - {RUNE_C(0x002E92), RUNE_C(0x005DF3)}, - {RUNE_C(0x002E93), RUNE_C(0x005E7A)}, - {RUNE_C(0x002E94), RUNE_C(0x005F51)}, - {RUNE_C(0x002E95), RUNE_C(0x02B739)}, - {RUNE_C(0x002E96), RUNE_C(0x005FC4)}, - {RUNE_C(0x002E97), RUNE_C(0x005FC3)}, - {RUNE_C(0x002E98), RUNE_C(0x00624C)}, - {RUNE_C(0x002E99), RUNE_C(0x006535)}, - {RUNE_C(0x002E9B), RUNE_C(0x0065E1)}, - {RUNE_C(0x002E9C), RUNE_C(0x0065E5)}, - {RUNE_C(0x002E9D), RUNE_C(0x006708)}, - {RUNE_C(0x002E9E), RUNE_C(0x006B7A)}, - {RUNE_C(0x002E9F), RUNE_C(0x006BCD)}, - {RUNE_C(0x002EA0), RUNE_C(0x006C11)}, - {RUNE_C(0x002EA1), RUNE_C(0x006C35)}, - {RUNE_C(0x002EA2), RUNE_C(0x006C3A)}, - {RUNE_C(0x002EA3), RUNE_C(0x00706C)}, - {RUNE_C(0x002EA4), RUNE_C(0x00722B)}, - {RUNE_C(0x002EA5), RUNE_C(0x00722B)}, - {RUNE_C(0x002EA6), RUNE_C(0x004E2C)}, - {RUNE_C(0x002EA7), RUNE_C(0x00725B)}, - {RUNE_C(0x002EA8), RUNE_C(0x0072AD)}, - {RUNE_C(0x002EA9), RUNE_C(0x00738B)}, - {RUNE_C(0x002EAA), RUNE_C(0x024D14)}, - {RUNE_C(0x002EAB), RUNE_C(0x0076EE)}, - {RUNE_C(0x002EAC), RUNE_C(0x00793A)}, - {RUNE_C(0x002EAD), RUNE_C(0x00793B)}, - {RUNE_C(0x002EAE), RUNE_C(0x025AD7)}, - {RUNE_C(0x002EAF), RUNE_C(0x007CF9)}, - {RUNE_C(0x002EB0), RUNE_C(0x007E9F)}, - {RUNE_C(0x002EB1), RUNE_C(0x007F53)}, - {RUNE_C(0x002EB2), RUNE_C(0x007F52)}, - {RUNE_C(0x002EB3), RUNE_C(0x0034C1)}, - {RUNE_C(0x002EB4), RUNE_C(0x005197)}, - {RUNE_C(0x002EB5), RUNE_C(0x02626B)}, - {RUNE_C(0x002EB6), RUNE_C(0x007F8A)}, - {RUNE_C(0x002EB7), RUNE_C(0x02634C)}, - {RUNE_C(0x002EB8), RUNE_C(0x02634B)}, - {RUNE_C(0x002EB9), RUNE_C(0x008002)}, - {RUNE_C(0x002EBA), RUNE_C(0x008080)}, - {RUNE_C(0x002EBB), RUNE_C(0x00807F)}, - {RUNE_C(0x002EBC), RUNE_C(0x008089)}, - {RUNE_C(0x002EBD), RUNE_C(0x026951)}, - {RUNE_C(0x002EBE), RUNE_C(0x008279)}, - {RUNE_C(0x002EBF), RUNE_C(0x008279)}, - {RUNE_C(0x002EC0), RUNE_C(0x008279)}, - {RUNE_C(0x002EC1), RUNE_C(0x00864E)}, - {RUNE_C(0x002EC2), RUNE_C(0x008864)}, - {RUNE_C(0x002EC3), RUNE_C(0x008980)}, - {RUNE_C(0x002EC4), RUNE_C(0x00897F)}, - {RUNE_C(0x002EC5), RUNE_C(0x0089C1)}, - {RUNE_C(0x002EC6), RUNE_C(0x0089D2)}, - {RUNE_C(0x002EC7), RUNE_C(0x0278B2)}, - {RUNE_C(0x002EC8), RUNE_C(0x008BA0)}, - {RUNE_C(0x002EC9), RUNE_C(0x008D1D)}, - {RUNE_C(0x002ECA), RUNE_C(0x027FB7)}, - {RUNE_C(0x002ECB), RUNE_C(0x008F66)}, - {RUNE_C(0x002ECC), RUNE_C(0x008FB6)}, - {RUNE_C(0x002ECD), RUNE_C(0x008FB6)}, - {RUNE_C(0x002ECE), RUNE_C(0x008FB6)}, - {RUNE_C(0x002ECF), RUNE_C(0x009091)}, - {RUNE_C(0x002ED0), RUNE_C(0x009485)}, - {RUNE_C(0x002ED1), RUNE_C(0x009577)}, - {RUNE_C(0x002ED2), RUNE_C(0x009578)}, - {RUNE_C(0x002ED3), RUNE_C(0x00957F)}, - {RUNE_C(0x002ED4), RUNE_C(0x0095E8)}, - {RUNE_C(0x002ED5), RUNE_C(0x028E0F)}, - {RUNE_C(0x002ED6), RUNE_C(0x00961D)}, - {RUNE_C(0x002ED7), RUNE_C(0x0096E8)}, - {RUNE_C(0x002ED8), RUNE_C(0x009752)}, - {RUNE_C(0x002ED9), RUNE_C(0x0097E6)}, - {RUNE_C(0x002EDA), RUNE_C(0x009875)}, - {RUNE_C(0x002EDB), RUNE_C(0x0098CE)}, - {RUNE_C(0x002EDC), RUNE_C(0x0098DE)}, - {RUNE_C(0x002EDD), RUNE_C(0x0098DF)}, - {RUNE_C(0x002EDE), RUNE_C(0x02967F)}, - {RUNE_C(0x002EDF), RUNE_C(0x0098E0)}, - {RUNE_C(0x002EE0), RUNE_C(0x009963)}, - {RUNE_C(0x002EE1), RUNE_C(0x029810)}, - {RUNE_C(0x002EE2), RUNE_C(0x009A6C)}, - {RUNE_C(0x002EE3), RUNE_C(0x009AA8)}, - {RUNE_C(0x002EE4), RUNE_C(0x009B3C)}, - {RUNE_C(0x002EE5), RUNE_C(0x009C7C)}, - {RUNE_C(0x002EE6), RUNE_C(0x009E1F)}, - {RUNE_C(0x002EE7), RUNE_C(0x005364)}, - {RUNE_C(0x002EE8), RUNE_C(0x009EA6)}, - {RUNE_C(0x002EE9), RUNE_C(0x009EC4)}, - {RUNE_C(0x002EEA), RUNE_C(0x009EFE)}, - {RUNE_C(0x002EEB), RUNE_C(0x006589)}, - {RUNE_C(0x002EEC), RUNE_C(0x009F50)}, - {RUNE_C(0x002EED), RUNE_C(0x006B6F)}, - {RUNE_C(0x002EEE), RUNE_C(0x009F7F)}, - {RUNE_C(0x002EEF), RUNE_C(0x007ADC)}, - {RUNE_C(0x002EF0), RUNE_C(0x009F99)}, - {RUNE_C(0x002EF1), RUNE_C(0x009F9C)}, - {RUNE_C(0x002EF2), RUNE_C(0x004E80)}, - {RUNE_C(0x002EF3), RUNE_C(0x009F9F)}, - {RUNE_C(0x002F00), RUNE_C(0x004E00)}, - {RUNE_C(0x002F01), RUNE_C(0x004E28)}, - {RUNE_C(0x002F02), RUNE_C(0x004E36)}, - {RUNE_C(0x002F03), RUNE_C(0x004E3F)}, - {RUNE_C(0x002F04), RUNE_C(0x004E59)}, - {RUNE_C(0x002F05), RUNE_C(0x004E85)}, - {RUNE_C(0x002F06), RUNE_C(0x004E8C)}, - {RUNE_C(0x002F07), RUNE_C(0x004EA0)}, - {RUNE_C(0x002F08), RUNE_C(0x004EBA)}, - {RUNE_C(0x002F09), RUNE_C(0x00513F)}, - {RUNE_C(0x002F0A), RUNE_C(0x005165)}, - {RUNE_C(0x002F0B), RUNE_C(0x00516B)}, - {RUNE_C(0x002F0C), RUNE_C(0x005182)}, - {RUNE_C(0x002F0D), RUNE_C(0x005196)}, - {RUNE_C(0x002F0E), RUNE_C(0x0051AB)}, - {RUNE_C(0x002F0F), RUNE_C(0x0051E0)}, - {RUNE_C(0x002F10), RUNE_C(0x0051F5)}, - {RUNE_C(0x002F11), RUNE_C(0x005200)}, - {RUNE_C(0x002F12), RUNE_C(0x00529B)}, - {RUNE_C(0x002F13), RUNE_C(0x0052F9)}, - {RUNE_C(0x002F14), RUNE_C(0x005315)}, - {RUNE_C(0x002F15), RUNE_C(0x00531A)}, - {RUNE_C(0x002F16), RUNE_C(0x005338)}, - {RUNE_C(0x002F17), RUNE_C(0x005341)}, - {RUNE_C(0x002F18), RUNE_C(0x00535C)}, - {RUNE_C(0x002F19), RUNE_C(0x005369)}, - {RUNE_C(0x002F1A), RUNE_C(0x005382)}, - {RUNE_C(0x002F1B), RUNE_C(0x0053B6)}, - {RUNE_C(0x002F1C), RUNE_C(0x0053C8)}, - {RUNE_C(0x002F1D), RUNE_C(0x0053E3)}, - {RUNE_C(0x002F1E), RUNE_C(0x0056D7)}, - {RUNE_C(0x002F1F), RUNE_C(0x00571F)}, - {RUNE_C(0x002F20), RUNE_C(0x0058EB)}, - {RUNE_C(0x002F21), RUNE_C(0x005902)}, - {RUNE_C(0x002F22), RUNE_C(0x00590A)}, - {RUNE_C(0x002F23), RUNE_C(0x005915)}, - {RUNE_C(0x002F24), RUNE_C(0x005927)}, - {RUNE_C(0x002F25), RUNE_C(0x005973)}, - {RUNE_C(0x002F26), RUNE_C(0x005B50)}, - {RUNE_C(0x002F27), RUNE_C(0x005B80)}, - {RUNE_C(0x002F28), RUNE_C(0x005BF8)}, - {RUNE_C(0x002F29), RUNE_C(0x005C0F)}, - {RUNE_C(0x002F2A), RUNE_C(0x005C22)}, - {RUNE_C(0x002F2B), RUNE_C(0x005C38)}, - {RUNE_C(0x002F2C), RUNE_C(0x005C6E)}, - {RUNE_C(0x002F2D), RUNE_C(0x005C71)}, - {RUNE_C(0x002F2E), RUNE_C(0x005DDB)}, - {RUNE_C(0x002F2F), RUNE_C(0x005DE5)}, - {RUNE_C(0x002F30), RUNE_C(0x005DF1)}, - {RUNE_C(0x002F31), RUNE_C(0x005DFE)}, - {RUNE_C(0x002F32), RUNE_C(0x005E72)}, - {RUNE_C(0x002F33), RUNE_C(0x005E7A)}, - {RUNE_C(0x002F34), RUNE_C(0x005E7F)}, - {RUNE_C(0x002F35), RUNE_C(0x005EF4)}, - {RUNE_C(0x002F36), RUNE_C(0x005EFE)}, - {RUNE_C(0x002F37), RUNE_C(0x005F0B)}, - {RUNE_C(0x002F38), RUNE_C(0x005F13)}, - {RUNE_C(0x002F39), RUNE_C(0x005F50)}, - {RUNE_C(0x002F3A), RUNE_C(0x005F61)}, - {RUNE_C(0x002F3B), RUNE_C(0x005F73)}, - {RUNE_C(0x002F3C), RUNE_C(0x005FC3)}, - {RUNE_C(0x002F3D), RUNE_C(0x006208)}, - {RUNE_C(0x002F3E), RUNE_C(0x006236)}, - {RUNE_C(0x002F3F), RUNE_C(0x00624B)}, - {RUNE_C(0x002F40), RUNE_C(0x00652F)}, - {RUNE_C(0x002F41), RUNE_C(0x006534)}, - {RUNE_C(0x002F42), RUNE_C(0x006587)}, - {RUNE_C(0x002F43), RUNE_C(0x006597)}, - {RUNE_C(0x002F44), RUNE_C(0x0065A4)}, - {RUNE_C(0x002F45), RUNE_C(0x0065B9)}, - {RUNE_C(0x002F46), RUNE_C(0x0065E0)}, - {RUNE_C(0x002F47), RUNE_C(0x0065E5)}, - {RUNE_C(0x002F48), RUNE_C(0x0066F0)}, - {RUNE_C(0x002F49), RUNE_C(0x006708)}, - {RUNE_C(0x002F4A), RUNE_C(0x006728)}, - {RUNE_C(0x002F4B), RUNE_C(0x006B20)}, - {RUNE_C(0x002F4C), RUNE_C(0x006B62)}, - {RUNE_C(0x002F4D), RUNE_C(0x006B79)}, - {RUNE_C(0x002F4E), RUNE_C(0x006BB3)}, - {RUNE_C(0x002F4F), RUNE_C(0x006BCB)}, - {RUNE_C(0x002F50), RUNE_C(0x006BD4)}, - {RUNE_C(0x002F51), RUNE_C(0x006BDB)}, - {RUNE_C(0x002F52), RUNE_C(0x006C0F)}, - {RUNE_C(0x002F53), RUNE_C(0x006C14)}, - {RUNE_C(0x002F54), RUNE_C(0x006C34)}, - {RUNE_C(0x002F55), RUNE_C(0x00706B)}, - {RUNE_C(0x002F56), RUNE_C(0x00722A)}, - {RUNE_C(0x002F57), RUNE_C(0x007236)}, - {RUNE_C(0x002F58), RUNE_C(0x00723B)}, - {RUNE_C(0x002F59), RUNE_C(0x00723F)}, - {RUNE_C(0x002F5A), RUNE_C(0x007247)}, - {RUNE_C(0x002F5B), RUNE_C(0x007259)}, - {RUNE_C(0x002F5C), RUNE_C(0x00725B)}, - {RUNE_C(0x002F5D), RUNE_C(0x0072AC)}, - {RUNE_C(0x002F5E), RUNE_C(0x007384)}, - {RUNE_C(0x002F5F), RUNE_C(0x007389)}, - {RUNE_C(0x002F60), RUNE_C(0x0074DC)}, - {RUNE_C(0x002F61), RUNE_C(0x0074E6)}, - {RUNE_C(0x002F62), RUNE_C(0x007518)}, - {RUNE_C(0x002F63), RUNE_C(0x00751F)}, - {RUNE_C(0x002F64), RUNE_C(0x007528)}, - {RUNE_C(0x002F65), RUNE_C(0x007530)}, - {RUNE_C(0x002F66), RUNE_C(0x00758B)}, - {RUNE_C(0x002F67), RUNE_C(0x007592)}, - {RUNE_C(0x002F68), RUNE_C(0x007676)}, - {RUNE_C(0x002F69), RUNE_C(0x00767D)}, - {RUNE_C(0x002F6A), RUNE_C(0x0076AE)}, - {RUNE_C(0x002F6B), RUNE_C(0x0076BF)}, - {RUNE_C(0x002F6C), RUNE_C(0x0076EE)}, - {RUNE_C(0x002F6D), RUNE_C(0x0077DB)}, - {RUNE_C(0x002F6E), RUNE_C(0x0077E2)}, - {RUNE_C(0x002F6F), RUNE_C(0x0077F3)}, - {RUNE_C(0x002F70), RUNE_C(0x00793A)}, - {RUNE_C(0x002F71), RUNE_C(0x0079B8)}, - {RUNE_C(0x002F72), RUNE_C(0x0079BE)}, - {RUNE_C(0x002F73), RUNE_C(0x007A74)}, - {RUNE_C(0x002F74), RUNE_C(0x007ACB)}, - {RUNE_C(0x002F75), RUNE_C(0x007AF9)}, - {RUNE_C(0x002F76), RUNE_C(0x007C73)}, - {RUNE_C(0x002F77), RUNE_C(0x007CF8)}, - {RUNE_C(0x002F78), RUNE_C(0x007F36)}, - {RUNE_C(0x002F79), RUNE_C(0x007F51)}, - {RUNE_C(0x002F7A), RUNE_C(0x007F8A)}, - {RUNE_C(0x002F7B), RUNE_C(0x007FBD)}, - {RUNE_C(0x002F7C), RUNE_C(0x008001)}, - {RUNE_C(0x002F7D), RUNE_C(0x00800C)}, - {RUNE_C(0x002F7E), RUNE_C(0x008012)}, - {RUNE_C(0x002F7F), RUNE_C(0x008033)}, - {RUNE_C(0x002F80), RUNE_C(0x00807F)}, - {RUNE_C(0x002F81), RUNE_C(0x008089)}, - {RUNE_C(0x002F82), RUNE_C(0x0081E3)}, - {RUNE_C(0x002F83), RUNE_C(0x0081EA)}, - {RUNE_C(0x002F84), RUNE_C(0x0081F3)}, - {RUNE_C(0x002F85), RUNE_C(0x0081FC)}, - {RUNE_C(0x002F86), RUNE_C(0x00820C)}, - {RUNE_C(0x002F87), RUNE_C(0x00821B)}, - {RUNE_C(0x002F88), RUNE_C(0x00821F)}, - {RUNE_C(0x002F89), RUNE_C(0x00826E)}, - {RUNE_C(0x002F8A), RUNE_C(0x008272)}, - {RUNE_C(0x002F8B), RUNE_C(0x008278)}, - {RUNE_C(0x002F8C), RUNE_C(0x00864D)}, - {RUNE_C(0x002F8D), RUNE_C(0x00866B)}, - {RUNE_C(0x002F8E), RUNE_C(0x008840)}, - {RUNE_C(0x002F8F), RUNE_C(0x00884C)}, - {RUNE_C(0x002F90), RUNE_C(0x008863)}, - {RUNE_C(0x002F91), RUNE_C(0x00897E)}, - {RUNE_C(0x002F92), RUNE_C(0x00898B)}, - {RUNE_C(0x002F93), RUNE_C(0x0089D2)}, - {RUNE_C(0x002F94), RUNE_C(0x008A00)}, - {RUNE_C(0x002F95), RUNE_C(0x008C37)}, - {RUNE_C(0x002F96), RUNE_C(0x008C46)}, - {RUNE_C(0x002F97), RUNE_C(0x008C55)}, - {RUNE_C(0x002F98), RUNE_C(0x008C78)}, - {RUNE_C(0x002F99), RUNE_C(0x008C9D)}, - {RUNE_C(0x002F9A), RUNE_C(0x008D64)}, - {RUNE_C(0x002F9B), RUNE_C(0x008D70)}, - {RUNE_C(0x002F9C), RUNE_C(0x008DB3)}, - {RUNE_C(0x002F9D), RUNE_C(0x008EAB)}, - {RUNE_C(0x002F9E), RUNE_C(0x008ECA)}, - {RUNE_C(0x002F9F), RUNE_C(0x008F9B)}, - {RUNE_C(0x002FA0), RUNE_C(0x008FB0)}, - {RUNE_C(0x002FA1), RUNE_C(0x008FB5)}, - {RUNE_C(0x002FA2), RUNE_C(0x009091)}, - {RUNE_C(0x002FA3), RUNE_C(0x009149)}, - {RUNE_C(0x002FA4), RUNE_C(0x0091C6)}, - {RUNE_C(0x002FA5), RUNE_C(0x0091CC)}, - {RUNE_C(0x002FA6), RUNE_C(0x0091D1)}, - {RUNE_C(0x002FA7), RUNE_C(0x009577)}, - {RUNE_C(0x002FA8), RUNE_C(0x009580)}, - {RUNE_C(0x002FA9), RUNE_C(0x00961C)}, - {RUNE_C(0x002FAA), RUNE_C(0x0096B6)}, - {RUNE_C(0x002FAB), RUNE_C(0x0096B9)}, - {RUNE_C(0x002FAC), RUNE_C(0x0096E8)}, - {RUNE_C(0x002FAD), RUNE_C(0x009751)}, - {RUNE_C(0x002FAE), RUNE_C(0x00975E)}, - {RUNE_C(0x002FAF), RUNE_C(0x009762)}, - {RUNE_C(0x002FB0), RUNE_C(0x009769)}, - {RUNE_C(0x002FB1), RUNE_C(0x0097CB)}, - {RUNE_C(0x002FB2), RUNE_C(0x0097ED)}, - {RUNE_C(0x002FB3), RUNE_C(0x0097F3)}, - {RUNE_C(0x002FB4), RUNE_C(0x009801)}, - {RUNE_C(0x002FB5), RUNE_C(0x0098A8)}, - {RUNE_C(0x002FB6), RUNE_C(0x0098DB)}, - {RUNE_C(0x002FB7), RUNE_C(0x0098DF)}, - {RUNE_C(0x002FB8), RUNE_C(0x009996)}, - {RUNE_C(0x002FB9), RUNE_C(0x009999)}, - {RUNE_C(0x002FBA), RUNE_C(0x0099AC)}, - {RUNE_C(0x002FBB), RUNE_C(0x009AA8)}, - {RUNE_C(0x002FBC), RUNE_C(0x009AD8)}, - {RUNE_C(0x002FBD), RUNE_C(0x009ADF)}, - {RUNE_C(0x002FBE), RUNE_C(0x009B25)}, - {RUNE_C(0x002FBF), RUNE_C(0x009B2F)}, - {RUNE_C(0x002FC0), RUNE_C(0x009B32)}, - {RUNE_C(0x002FC1), RUNE_C(0x009B3C)}, - {RUNE_C(0x002FC2), RUNE_C(0x009B5A)}, - {RUNE_C(0x002FC3), RUNE_C(0x009CE5)}, - {RUNE_C(0x002FC4), RUNE_C(0x009E75)}, - {RUNE_C(0x002FC5), RUNE_C(0x009E7F)}, - {RUNE_C(0x002FC6), RUNE_C(0x009EA5)}, - {RUNE_C(0x002FC7), RUNE_C(0x009EBB)}, - {RUNE_C(0x002FC8), RUNE_C(0x009EC3)}, - {RUNE_C(0x002FC9), RUNE_C(0x009ECD)}, - {RUNE_C(0x002FCA), RUNE_C(0x009ED1)}, - {RUNE_C(0x002FCB), RUNE_C(0x009EF9)}, - {RUNE_C(0x002FCC), RUNE_C(0x009EFD)}, - {RUNE_C(0x002FCD), RUNE_C(0x009F0E)}, - {RUNE_C(0x002FCE), RUNE_C(0x009F13)}, - {RUNE_C(0x002FCF), RUNE_C(0x009F20)}, - {RUNE_C(0x002FD0), RUNE_C(0x009F3B)}, - {RUNE_C(0x002FD1), RUNE_C(0x009F4A)}, - {RUNE_C(0x002FD2), RUNE_C(0x009F52)}, - {RUNE_C(0x002FD3), RUNE_C(0x009F8D)}, - {RUNE_C(0x002FD4), RUNE_C(0x009F9C)}, - {RUNE_C(0x002FD5), RUNE_C(0x009FA0)}, - {RUNE_C(0x0031C6), RUNE_C(0x0200CC)}, - {RUNE_C(0x0031CF), RUNE_C(0x004E40)}, - {RUNE_C(0x0031D0), RUNE_C(0x004E00)}, - {RUNE_C(0x0031D1), RUNE_C(0x004E28)}, - {RUNE_C(0x0031D2), RUNE_C(0x004E3F)}, - {RUNE_C(0x0031D3), RUNE_C(0x004E3F)}, - {RUNE_C(0x0031D4), RUNE_C(0x004E36)}, - {RUNE_C(0x0031D5), RUNE_C(0x0200CD)}, - {RUNE_C(0x0031D6), RUNE_C(0x004E5B)}, - {RUNE_C(0x0031D7), RUNE_C(0x0200CA)}, - {RUNE_C(0x0031D8), RUNE_C(0x0200CE)}, - {RUNE_C(0x0031D9), RUNE_C(0x02010C)}, - {RUNE_C(0x0031DA), RUNE_C(0x004E85)}, - {RUNE_C(0x0031DB), RUNE_C(0x021FE8)}, - {RUNE_C(0x0031DC), RUNE_C(0x0200CB)}, - {RUNE_C(0x0031DD), RUNE_C(0x004E40)}, - {RUNE_C(0x0031DE), RUNE_C(0x0200D1)}, - {RUNE_C(0x0031DF), RUNE_C(0x004E5A)}, - {RUNE_C(0x0031E0), RUNE_C(0x004E59)}, - {RUNE_C(0x0031E1), RUNE_C(0x02010E)}, +static constexpr uint8_t stage1[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; -_MLIB_DEFINE_BSEARCH_KV(rune, lookup, '\0') +static constexpr rune stage2[][512] = { + {0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, U'厂', U'乛', U'乚', U'乙', U'亻', U'冂', U'𠘨', + U'刀', U'刂', U'卜', U'㔾', U'小', U'小', U'兀', U'尣', + U'尢', U'𡯂', U'巳', U'幺', U'彑', U'𫜹', U'忄', U'心', + U'扌', U'攵', 0, U'旡', U'日', U'月', U'歺', U'母', + U'民', U'氵', U'氺', U'灬', U'爫', U'爫', U'丬', U'牛', + U'犭', U'王', U'𤴔', U'目', U'示', U'礻', U'𥫗', U'糹', + U'纟', U'罓', U'罒', U'㓁', U'冗', U'𦉫', U'羊', U'𦍌', + U'𦍋', U'耂', U'肀', U'聿', U'肉', U'𦥑', U'艹', U'艹', + U'艹', U'虎', U'衤', U'覀', U'西', U'见', U'角', U'𧢲', + U'讠', U'贝', U'𧾷', U'车', U'辶', U'辶', U'辶', U'邑', + U'钅', U'長', U'镸', U'长', U'门', U'𨸏', U'阝', U'雨', + U'青', U'韦', U'页', U'风', U'飞', U'食', U'𩙿', U'飠', + U'饣', U'𩠐', U'马', U'骨', U'鬼', U'鱼', U'鸟', U'卤', + U'麦', U'黄', U'黾', U'斉', U'齐', U'歯', U'齿', U'竜', + U'龙', U'龜', U'亀', U'龟', 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + U'一', U'丨', U'丶', U'丿', U'乙', U'亅', U'二', U'亠', + U'人', U'儿', U'入', U'八', U'冂', U'冖', U'冫', U'几', + U'凵', U'刀', U'力', U'勹', U'匕', U'匚', U'匸', U'十', + U'卜', U'卩', U'厂', U'厶', U'又', U'口', U'囗', U'土', + U'士', U'夂', U'夊', U'夕', U'大', U'女', U'子', U'宀', + U'寸', U'小', U'尢', U'尸', U'屮', U'山', U'巛', U'工', + U'己', U'巾', U'干', U'幺', U'广', U'廴', U'廾', U'弋', + U'弓', U'彐', U'彡', U'彳', U'心', U'戈', U'戶', U'手', + U'支', U'攴', U'文', U'斗', U'斤', U'方', U'无', U'日', + U'曰', U'月', U'木', U'欠', U'止', U'歹', U'殳', U'毋', + U'比', U'毛', U'氏', U'气', U'水', U'火', U'爪', U'父', + U'爻', U'爿', U'片', U'牙', U'牛', U'犬', U'玄', U'玉', + U'瓜', U'瓦', U'甘', U'生', U'用', U'田', U'疋', U'疒', + U'癶', U'白', U'皮', U'皿', U'目', U'矛', U'矢', U'石', + U'示', U'禸', U'禾', U'穴', U'立', U'竹', U'米', U'糸', + U'缶', U'网', U'羊', U'羽', U'老', U'而', U'耒', U'耳', + U'聿', U'肉', U'臣', U'自', U'至', U'臼', U'舌', U'舛', + U'舟', U'艮', U'色', U'艸', U'虍', U'虫', U'血', U'行', + U'衣', U'襾', U'見', U'角', U'言', U'谷', U'豆', U'豕', + U'豸', U'貝', U'赤', U'走', U'足', U'身', U'車', U'辛', + U'辰', U'辵', U'邑', U'酉', U'釆', U'里', U'金', U'長', + U'門', U'阜', U'隶', U'隹', U'雨', U'靑', U'非', U'面', + U'革', U'韋', U'韭', U'音', U'頁', U'風', U'飛', U'食', + U'首', U'香', U'馬', U'骨', U'高', U'髟', U'鬥', U'鬯', + U'鬲', U'鬼', U'魚', U'鳥', U'鹵', U'鹿', U'麥', U'麻', + U'黃', U'黍', U'黑', U'黹', U'黽', U'鼎', U'鼓', U'鼠', + U'鼻', U'齊', U'齒', U'龍', U'龜', U'龠', 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, U'𠃌', 0, + 0, 0, 0, 0, 0, 0, 0, U'乀', + U'一', U'丨', U'丿', U'丿', U'丶', U'𠃍', U'乛', U'𠃊', + U'𠃎', U'𠄌', U'亅', U'𡿨', U'𠃋', U'乀', U'𠃑', U'乚', + U'乙', U'𠄎', 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0}, +}; rune uprop_get_equideo(rune ch) { - return ch < lookup[0].k || ch > lookup[lengthof(lookup) - 1].k - ? '\0' - : mlib_lookup_kv(ch); + rune hc = stage2[stage1[ch / 512]][ch % 512]; + return hc == 0 ? ch : hc; } -- cgit v1.2.3