diff --git a/Cargo.lock b/Cargo.lock index 86899ddff4..4f477ceb4d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1524,7 +1524,6 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" dependencies = [ - "phf_macros", "phf_shared", ] @@ -1548,19 +1547,6 @@ dependencies = [ "rand", ] -[[package]] -name = "phf_macros" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" -dependencies = [ - "phf_generator", - "phf_shared", - "proc-macro2", - "quote", - "syn 2.0.23", -] - [[package]] name = "phf_shared" version = "0.11.2" @@ -1916,7 +1902,6 @@ dependencies = [ "path-absolutize", "pathdiff", "pep440_rs", - "phf", "pretty_assertions", "pyproject-toml", "quick-junit", diff --git a/crates/ruff/Cargo.toml b/crates/ruff/Cargo.toml index 101b419c16..31f80dd093 100644 --- a/crates/ruff/Cargo.toml +++ b/crates/ruff/Cargo.toml @@ -55,7 +55,6 @@ path-absolutize = { workspace = true, features = [ ] } pathdiff = { version = "0.2.1" } pep440_rs = { version = "0.3.1", features = ["serde"] } -phf = { version = "0.11", features = ["macros"] } pyproject-toml = { version = "0.6.0" } quick-junit = { version = "0.3.2" } regex = { workspace = true } diff --git a/crates/ruff/src/rules/ruff/rules/ambiguous_unicode_character.rs b/crates/ruff/src/rules/ruff/rules/ambiguous_unicode_character.rs index 132814af1b..e9bdca4adf 100644 --- a/crates/ruff/src/rules/ruff/rules/ambiguous_unicode_character.rs +++ b/crates/ruff/src/rules/ruff/rules/ambiguous_unicode_character.rs @@ -7,7 +7,7 @@ use ruff_macros::{derive_message_formats, violation}; use ruff_python_ast::source_code::Locator; use crate::registry::AsRule; -use crate::rules::ruff::rules::confusables::CONFUSABLES; +use crate::rules::ruff::rules::confusables::confusable; use crate::rules::ruff::rules::Context; use crate::settings::Settings; @@ -193,7 +193,7 @@ pub(crate) fn ambiguous_unicode_character( // Check if the boundary character is itself an ambiguous unicode character, in which // case, it's always included as a diagnostic. if !current_char.is_ascii() { - if let Some(representant) = CONFUSABLES.get(&(current_char as u32)).copied() { + if let Some(representant) = confusable(current_char as u32) { let candidate = Candidate::new( TextSize::try_from(relative_offset).unwrap() + range.start(), current_char, @@ -207,7 +207,7 @@ pub(crate) fn ambiguous_unicode_character( } else if current_char.is_ascii() { // The current word contains at least one ASCII character. word_flags |= WordFlags::ASCII; - } else if let Some(representant) = CONFUSABLES.get(&(current_char as u32)).copied() { + } else if let Some(representant) = confusable(current_char as u32) { // The current word contains an ambiguous unicode character. word_candidates.push(Candidate::new( TextSize::try_from(relative_offset).unwrap() + range.start(), diff --git a/crates/ruff/src/rules/ruff/rules/confusables.rs b/crates/ruff/src/rules/ruff/rules/confusables.rs index c007fdc327..74ed6ce936 100644 --- a/crates/ruff/src/rules/ruff/rules/confusables.rs +++ b/crates/ruff/src/rules/ruff/rules/confusables.rs @@ -1,1590 +1,1592 @@ -/// This file is auto-generated by `scripts/update_ambiguous_characters.py`. -use phf::phf_map; +//! This file is auto-generated by `scripts/update_ambiguous_characters.py`. /// Via: /// See: -#[allow(clippy::unreadable_literal)] -pub(crate) static CONFUSABLES: phf::Map = phf_map! { - 160u32 => 32, - 180u32 => 96, - 184u32 => 44, - 215u32 => 120, - 305u32 => 105, - 383u32 => 102, - 388u32 => 98, - 397u32 => 103, - 422u32 => 82, - 423u32 => 50, - 439u32 => 51, - 444u32 => 53, - 445u32 => 115, - 448u32 => 73, - 451u32 => 33, - 540u32 => 51, - 546u32 => 56, - 547u32 => 56, - 577u32 => 63, - 593u32 => 97, - 609u32 => 103, - 611u32 => 121, - 617u32 => 105, - 618u32 => 105, - 623u32 => 119, - 651u32 => 117, - 655u32 => 121, - 660u32 => 63, - 697u32 => 96, - 699u32 => 96, - 700u32 => 96, - 701u32 => 96, - 702u32 => 96, - 706u32 => 60, - 707u32 => 62, - 708u32 => 94, - 710u32 => 94, - 712u32 => 96, - 714u32 => 96, - 715u32 => 96, - 720u32 => 58, - 727u32 => 45, - 731u32 => 105, - 732u32 => 126, - 756u32 => 96, - 760u32 => 58, - 884u32 => 96, - 890u32 => 105, - 894u32 => 59, - 895u32 => 74, - 900u32 => 96, - 913u32 => 65, - 914u32 => 66, - 917u32 => 69, - 918u32 => 90, - 919u32 => 72, - 921u32 => 73, - 922u32 => 75, - 924u32 => 77, - 925u32 => 78, - 927u32 => 79, - 929u32 => 80, - 932u32 => 84, - 933u32 => 89, - 935u32 => 88, - 945u32 => 97, - 947u32 => 121, - 953u32 => 105, - 957u32 => 118, - 959u32 => 111, - 961u32 => 112, - 963u32 => 111, - 965u32 => 117, - 978u32 => 89, - 988u32 => 70, - 1000u32 => 50, - 1009u32 => 112, - 1010u32 => 99, - 1011u32 => 106, - 1017u32 => 67, - 1018u32 => 77, - 1029u32 => 83, - 1030u32 => 73, - 1032u32 => 74, - 1040u32 => 65, - 1042u32 => 66, - 1045u32 => 69, - 1047u32 => 51, - 1050u32 => 75, - 1052u32 => 77, - 1053u32 => 72, - 1054u32 => 79, - 1056u32 => 80, - 1057u32 => 67, - 1058u32 => 84, - 1059u32 => 89, - 1061u32 => 88, - 1068u32 => 98, - 1072u32 => 97, - 1073u32 => 54, - 1075u32 => 114, - 1077u32 => 101, - 1086u32 => 111, - 1088u32 => 112, - 1089u32 => 99, - 1091u32 => 121, - 1093u32 => 120, - 1109u32 => 115, - 1110u32 => 105, - 1112u32 => 106, - 1121u32 => 119, - 1140u32 => 86, - 1141u32 => 118, - 1198u32 => 89, - 1199u32 => 121, - 1211u32 => 104, - 1213u32 => 101, - 1216u32 => 73, - 1231u32 => 105, - 1248u32 => 51, - 1281u32 => 100, - 1292u32 => 71, - 1307u32 => 113, - 1308u32 => 87, - 1309u32 => 119, - 1357u32 => 85, - 1359u32 => 83, - 1365u32 => 79, - 1370u32 => 96, - 1373u32 => 96, - 1377u32 => 119, - 1379u32 => 113, - 1382u32 => 113, - 1392u32 => 104, - 1400u32 => 110, - 1404u32 => 110, - 1405u32 => 117, - 1409u32 => 103, - 1412u32 => 102, - 1413u32 => 111, - 1417u32 => 58, - 1472u32 => 108, - 1475u32 => 58, - 1493u32 => 108, - 1496u32 => 118, - 1497u32 => 96, - 1503u32 => 108, - 1505u32 => 111, - 1523u32 => 96, - 1549u32 => 44, - 1575u32 => 108, - 1607u32 => 111, - 1632u32 => 46, - 1633u32 => 108, - 1637u32 => 111, - 1639u32 => 86, - 1643u32 => 44, - 1645u32 => 42, - 1726u32 => 111, - 1729u32 => 111, - 1748u32 => 45, - 1749u32 => 111, - 1776u32 => 46, - 1777u32 => 73, - 1781u32 => 111, - 1783u32 => 86, - 1793u32 => 46, - 1794u32 => 46, - 1795u32 => 58, - 1796u32 => 58, - 1984u32 => 79, - 1994u32 => 108, - 2036u32 => 96, - 2037u32 => 96, - 2042u32 => 95, - 2307u32 => 58, - 2406u32 => 111, - 2429u32 => 63, - 2534u32 => 79, - 2538u32 => 56, - 2541u32 => 57, - 2662u32 => 111, - 2663u32 => 57, - 2666u32 => 56, - 2691u32 => 58, - 2790u32 => 111, - 2819u32 => 56, - 2848u32 => 79, - 2918u32 => 79, - 2920u32 => 57, - 3046u32 => 111, - 3074u32 => 111, - 3174u32 => 111, - 3202u32 => 111, - 3302u32 => 111, - 3330u32 => 111, - 3360u32 => 111, - 3430u32 => 111, - 3437u32 => 57, - 3458u32 => 111, - 3664u32 => 111, - 3792u32 => 111, - 4125u32 => 111, - 4160u32 => 111, - 4327u32 => 121, - 4351u32 => 111, - 4608u32 => 85, - 4816u32 => 79, - 5024u32 => 68, - 5025u32 => 82, - 5026u32 => 84, - 5029u32 => 105, - 5033u32 => 89, - 5034u32 => 65, - 5035u32 => 74, - 5036u32 => 69, - 5038u32 => 63, - 5043u32 => 87, - 5047u32 => 77, - 5051u32 => 72, - 5053u32 => 89, - 5056u32 => 71, - 5058u32 => 104, - 5059u32 => 90, - 5070u32 => 52, - 5071u32 => 98, - 5074u32 => 82, - 5076u32 => 87, - 5077u32 => 83, - 5081u32 => 86, - 5082u32 => 83, - 5086u32 => 76, - 5087u32 => 67, - 5090u32 => 80, - 5094u32 => 75, - 5095u32 => 100, - 5102u32 => 54, - 5107u32 => 71, - 5108u32 => 66, - 5120u32 => 61, - 5167u32 => 86, - 5171u32 => 62, - 5176u32 => 60, - 5194u32 => 96, - 5196u32 => 85, - 5229u32 => 80, - 5231u32 => 100, - 5234u32 => 98, - 5261u32 => 74, - 5290u32 => 76, - 5311u32 => 50, - 5441u32 => 120, - 5500u32 => 72, - 5501u32 => 120, - 5511u32 => 82, - 5551u32 => 98, - 5556u32 => 70, - 5573u32 => 65, - 5598u32 => 68, - 5610u32 => 68, - 5616u32 => 77, - 5623u32 => 66, - 5741u32 => 88, - 5742u32 => 120, - 5760u32 => 32, - 5810u32 => 60, - 5815u32 => 88, - 5825u32 => 73, - 5836u32 => 96, - 5845u32 => 75, - 5846u32 => 77, - 5868u32 => 58, - 5869u32 => 43, - 5941u32 => 47, - 6147u32 => 58, - 6153u32 => 58, - 7428u32 => 99, - 7439u32 => 111, - 7441u32 => 111, - 7452u32 => 117, - 7456u32 => 118, - 7457u32 => 119, - 7458u32 => 122, - 7462u32 => 114, - 7555u32 => 103, - 7564u32 => 121, - 7837u32 => 102, - 7935u32 => 121, - 8125u32 => 96, - 8126u32 => 105, - 8127u32 => 96, - 8128u32 => 126, - 8175u32 => 96, - 8189u32 => 96, - 8190u32 => 96, - 8192u32 => 32, - 8193u32 => 32, - 8194u32 => 32, - 8195u32 => 32, - 8196u32 => 32, - 8197u32 => 32, - 8198u32 => 32, - 8199u32 => 32, - 8200u32 => 32, - 8201u32 => 32, - 8202u32 => 32, - 8208u32 => 45, - 8209u32 => 45, - 8210u32 => 45, - 8211u32 => 45, - 8216u32 => 96, - 8217u32 => 96, - 8218u32 => 44, - 8219u32 => 96, - 8228u32 => 46, - 8232u32 => 32, - 8233u32 => 32, - 8239u32 => 32, - 8242u32 => 96, - 8245u32 => 96, - 8249u32 => 60, - 8250u32 => 62, - 8257u32 => 47, - 8259u32 => 45, - 8260u32 => 47, - 8270u32 => 42, - 8275u32 => 126, - 8282u32 => 58, - 8287u32 => 32, - 8450u32 => 67, - 8458u32 => 103, - 8459u32 => 72, - 8460u32 => 72, - 8461u32 => 72, - 8462u32 => 104, - 8464u32 => 73, - 8465u32 => 73, - 8466u32 => 76, - 8467u32 => 108, - 8469u32 => 78, - 8473u32 => 80, - 8474u32 => 81, - 8475u32 => 82, - 8476u32 => 82, - 8477u32 => 82, - 8484u32 => 90, - 8488u32 => 90, - 8490u32 => 75, - 8492u32 => 66, - 8493u32 => 67, - 8494u32 => 101, - 8495u32 => 101, - 8496u32 => 69, - 8497u32 => 70, - 8499u32 => 77, - 8500u32 => 111, - 8505u32 => 105, - 8509u32 => 121, - 8517u32 => 68, - 8518u32 => 100, - 8519u32 => 101, - 8520u32 => 105, - 8521u32 => 106, - 8544u32 => 73, - 8548u32 => 86, - 8553u32 => 88, - 8556u32 => 76, - 8557u32 => 67, - 8558u32 => 68, - 8559u32 => 77, - 8560u32 => 105, - 8564u32 => 118, - 8569u32 => 120, - 8572u32 => 73, - 8573u32 => 99, - 8574u32 => 100, - 8722u32 => 45, - 8725u32 => 47, - 8726u32 => 92, - 8727u32 => 42, - 8739u32 => 73, - 8744u32 => 118, - 8746u32 => 85, - 8758u32 => 58, - 8764u32 => 126, - 8868u32 => 84, - 8897u32 => 118, - 8899u32 => 85, - 8959u32 => 69, - 9075u32 => 105, - 9076u32 => 112, - 9082u32 => 97, - 9213u32 => 73, - 9585u32 => 47, - 9587u32 => 88, - 10088u32 => 40, - 10089u32 => 41, - 10094u32 => 60, - 10095u32 => 62, - 10098u32 => 40, - 10099u32 => 41, - 10100u32 => 123, - 10101u32 => 125, - 10133u32 => 43, - 10134u32 => 45, - 10187u32 => 47, - 10189u32 => 92, - 10201u32 => 84, - 10539u32 => 120, - 10540u32 => 120, - 10741u32 => 92, - 10744u32 => 47, - 10745u32 => 92, - 10799u32 => 120, - 11397u32 => 114, - 11406u32 => 72, - 11410u32 => 73, - 11412u32 => 75, - 11416u32 => 77, - 11418u32 => 78, - 11422u32 => 79, - 11423u32 => 111, - 11426u32 => 80, - 11427u32 => 112, - 11428u32 => 67, - 11429u32 => 99, - 11430u32 => 84, - 11432u32 => 89, - 11436u32 => 88, - 11450u32 => 45, - 11462u32 => 47, - 11466u32 => 57, - 11468u32 => 51, - 11472u32 => 76, - 11474u32 => 54, - 11576u32 => 86, - 11577u32 => 69, - 11599u32 => 73, - 11601u32 => 33, - 11604u32 => 79, - 11605u32 => 81, - 11613u32 => 88, - 11840u32 => 61, - 12034u32 => 92, - 12035u32 => 47, - 12295u32 => 79, - 12308u32 => 40, - 12309u32 => 41, - 12339u32 => 47, - 12448u32 => 61, - 12494u32 => 47, - 12755u32 => 47, - 12756u32 => 92, - 20022u32 => 92, - 20031u32 => 47, - 42192u32 => 66, - 42193u32 => 80, - 42194u32 => 100, - 42195u32 => 68, - 42196u32 => 84, - 42198u32 => 71, - 42199u32 => 75, - 42201u32 => 74, - 42202u32 => 67, - 42204u32 => 90, - 42205u32 => 70, - 42207u32 => 77, - 42208u32 => 78, - 42209u32 => 76, - 42210u32 => 83, - 42211u32 => 82, - 42214u32 => 86, - 42215u32 => 72, - 42218u32 => 87, - 42219u32 => 88, - 42220u32 => 89, - 42222u32 => 65, - 42224u32 => 69, - 42226u32 => 73, - 42227u32 => 79, - 42228u32 => 85, - 42232u32 => 46, - 42233u32 => 44, - 42237u32 => 58, - 42239u32 => 61, - 42510u32 => 46, - 42564u32 => 50, - 42567u32 => 105, - 42719u32 => 86, - 42731u32 => 63, - 42735u32 => 50, - 42801u32 => 115, - 42842u32 => 50, - 42858u32 => 51, - 42862u32 => 57, - 42872u32 => 38, - 42889u32 => 58, - 42892u32 => 96, - 42904u32 => 70, - 42905u32 => 102, - 42911u32 => 117, - 42923u32 => 51, - 42930u32 => 74, - 42931u32 => 88, - 42932u32 => 66, - 43826u32 => 101, - 43829u32 => 102, - 43837u32 => 111, - 43847u32 => 114, - 43848u32 => 114, - 43854u32 => 117, - 43858u32 => 117, - 43866u32 => 121, - 43893u32 => 105, - 43905u32 => 114, - 43907u32 => 119, - 43923u32 => 122, - 43945u32 => 118, - 43946u32 => 115, - 43951u32 => 99, - 64422u32 => 111, - 64423u32 => 111, - 64424u32 => 111, - 64425u32 => 111, - 64426u32 => 111, - 64427u32 => 111, - 64428u32 => 111, - 64429u32 => 111, - 64830u32 => 40, - 64831u32 => 41, - 65072u32 => 58, - 65101u32 => 95, - 65102u32 => 95, - 65103u32 => 95, - 65112u32 => 45, - 65128u32 => 92, - 65165u32 => 108, - 65166u32 => 108, - 65257u32 => 111, - 65258u32 => 111, - 65259u32 => 111, - 65260u32 => 111, - 65281u32 => 33, - 65282u32 => 34, - 65283u32 => 35, - 65284u32 => 36, - 65285u32 => 37, - 65286u32 => 38, - 65287u32 => 96, - 65288u32 => 40, - 65289u32 => 41, - 65290u32 => 42, - 65291u32 => 43, - 65292u32 => 44, - 65293u32 => 45, - 65294u32 => 46, - 65295u32 => 47, - 65296u32 => 48, - 65297u32 => 49, - 65298u32 => 50, - 65299u32 => 51, - 65300u32 => 52, - 65301u32 => 53, - 65302u32 => 54, - 65303u32 => 55, - 65304u32 => 56, - 65305u32 => 57, - 65306u32 => 58, - 65307u32 => 59, - 65308u32 => 60, - 65309u32 => 61, - 65310u32 => 62, - 65311u32 => 63, - 65312u32 => 64, - 65313u32 => 65, - 65314u32 => 66, - 65315u32 => 67, - 65316u32 => 68, - 65317u32 => 69, - 65318u32 => 70, - 65319u32 => 71, - 65320u32 => 72, - 65321u32 => 73, - 65322u32 => 74, - 65323u32 => 75, - 65324u32 => 76, - 65325u32 => 77, - 65326u32 => 78, - 65327u32 => 79, - 65328u32 => 80, - 65329u32 => 81, - 65330u32 => 82, - 65331u32 => 83, - 65332u32 => 84, - 65333u32 => 85, - 65334u32 => 86, - 65335u32 => 87, - 65336u32 => 88, - 65337u32 => 89, - 65338u32 => 90, - 65339u32 => 91, - 65340u32 => 92, - 65341u32 => 93, - 65342u32 => 94, - 65343u32 => 95, - 65344u32 => 96, - 65345u32 => 97, - 65346u32 => 98, - 65347u32 => 99, - 65348u32 => 100, - 65349u32 => 101, - 65350u32 => 102, - 65351u32 => 103, - 65352u32 => 104, - 65353u32 => 105, - 65354u32 => 106, - 65355u32 => 107, - 65356u32 => 108, - 65357u32 => 109, - 65358u32 => 110, - 65359u32 => 111, - 65360u32 => 112, - 65361u32 => 113, - 65362u32 => 114, - 65363u32 => 115, - 65364u32 => 116, - 65365u32 => 117, - 65366u32 => 118, - 65367u32 => 119, - 65368u32 => 120, - 65369u32 => 121, - 65370u32 => 122, - 65371u32 => 123, - 65372u32 => 124, - 65373u32 => 125, - 65374u32 => 126, - 65512u32 => 73, - 66178u32 => 66, - 66182u32 => 69, - 66183u32 => 70, - 66186u32 => 124, - 66192u32 => 88, - 66194u32 => 79, - 66197u32 => 80, - 66198u32 => 83, - 66199u32 => 84, - 66203u32 => 43, - 66208u32 => 65, - 66209u32 => 66, - 66210u32 => 67, - 66213u32 => 70, - 66219u32 => 79, - 66224u32 => 77, - 66225u32 => 84, - 66226u32 => 89, - 66228u32 => 88, - 66255u32 => 72, - 66293u32 => 90, - 66305u32 => 66, - 66306u32 => 67, - 66313u32 => 124, - 66321u32 => 77, - 66325u32 => 84, - 66327u32 => 88, - 66330u32 => 56, - 66335u32 => 42, - 66336u32 => 108, - 66338u32 => 88, - 66564u32 => 79, - 66581u32 => 67, - 66587u32 => 76, - 66592u32 => 83, - 66604u32 => 111, - 66621u32 => 99, - 66632u32 => 115, - 66740u32 => 82, - 66754u32 => 79, - 66766u32 => 85, - 66770u32 => 55, - 66794u32 => 111, - 66806u32 => 117, - 66835u32 => 78, - 66838u32 => 79, - 66840u32 => 75, - 66844u32 => 67, - 66845u32 => 86, - 66853u32 => 70, - 66854u32 => 76, - 66855u32 => 88, - 68176u32 => 46, - 70864u32 => 79, - 71430u32 => 118, - 71434u32 => 119, - 71438u32 => 119, - 71439u32 => 119, - 71840u32 => 86, - 71842u32 => 70, - 71843u32 => 76, - 71844u32 => 89, - 71846u32 => 69, - 71849u32 => 90, - 71852u32 => 57, - 71854u32 => 69, - 71855u32 => 52, - 71858u32 => 76, - 71861u32 => 79, - 71864u32 => 85, - 71867u32 => 53, - 71868u32 => 84, - 71872u32 => 118, - 71873u32 => 115, - 71874u32 => 70, - 71875u32 => 105, - 71876u32 => 122, - 71878u32 => 55, - 71880u32 => 111, - 71882u32 => 51, - 71884u32 => 57, - 71893u32 => 54, - 71894u32 => 57, - 71895u32 => 111, - 71896u32 => 117, - 71900u32 => 121, - 71904u32 => 79, - 71909u32 => 90, - 71910u32 => 87, - 71913u32 => 67, - 71916u32 => 88, - 71919u32 => 87, - 71922u32 => 67, - 93960u32 => 86, - 93962u32 => 84, - 93974u32 => 76, - 93992u32 => 73, - 94005u32 => 82, - 94010u32 => 83, - 94011u32 => 51, - 94015u32 => 62, - 94016u32 => 65, - 94018u32 => 85, - 94019u32 => 89, - 94033u32 => 96, - 94034u32 => 96, - 119060u32 => 123, - 119149u32 => 46, - 119302u32 => 51, - 119309u32 => 86, - 119311u32 => 92, - 119314u32 => 55, - 119315u32 => 70, - 119318u32 => 82, - 119338u32 => 76, - 119350u32 => 60, - 119351u32 => 62, - 119354u32 => 47, - 119355u32 => 92, - 119808u32 => 65, - 119809u32 => 66, - 119810u32 => 67, - 119811u32 => 68, - 119812u32 => 69, - 119813u32 => 70, - 119814u32 => 71, - 119815u32 => 72, - 119816u32 => 73, - 119817u32 => 74, - 119818u32 => 75, - 119819u32 => 76, - 119820u32 => 77, - 119821u32 => 78, - 119822u32 => 79, - 119823u32 => 80, - 119824u32 => 81, - 119825u32 => 82, - 119826u32 => 83, - 119827u32 => 84, - 119828u32 => 85, - 119829u32 => 86, - 119830u32 => 87, - 119831u32 => 88, - 119832u32 => 89, - 119833u32 => 90, - 119834u32 => 97, - 119835u32 => 98, - 119836u32 => 99, - 119837u32 => 100, - 119838u32 => 101, - 119839u32 => 102, - 119840u32 => 103, - 119841u32 => 104, - 119842u32 => 105, - 119843u32 => 106, - 119844u32 => 107, - 119845u32 => 108, - 119846u32 => 109, - 119847u32 => 110, - 119848u32 => 111, - 119849u32 => 112, - 119850u32 => 113, - 119851u32 => 114, - 119852u32 => 115, - 119853u32 => 116, - 119854u32 => 117, - 119855u32 => 118, - 119856u32 => 119, - 119857u32 => 120, - 119858u32 => 121, - 119859u32 => 122, - 119860u32 => 65, - 119861u32 => 66, - 119862u32 => 67, - 119863u32 => 68, - 119864u32 => 69, - 119865u32 => 70, - 119866u32 => 71, - 119867u32 => 72, - 119868u32 => 73, - 119869u32 => 74, - 119870u32 => 75, - 119871u32 => 76, - 119872u32 => 77, - 119873u32 => 78, - 119874u32 => 79, - 119875u32 => 80, - 119876u32 => 81, - 119877u32 => 82, - 119878u32 => 83, - 119879u32 => 84, - 119880u32 => 85, - 119881u32 => 86, - 119882u32 => 87, - 119883u32 => 88, - 119884u32 => 89, - 119885u32 => 90, - 119886u32 => 97, - 119887u32 => 98, - 119888u32 => 99, - 119889u32 => 100, - 119890u32 => 101, - 119891u32 => 102, - 119892u32 => 103, - 119894u32 => 105, - 119895u32 => 106, - 119896u32 => 107, - 119897u32 => 108, - 119899u32 => 110, - 119900u32 => 111, - 119901u32 => 112, - 119902u32 => 113, - 119903u32 => 114, - 119904u32 => 115, - 119905u32 => 116, - 119906u32 => 117, - 119907u32 => 118, - 119908u32 => 119, - 119909u32 => 120, - 119910u32 => 121, - 119911u32 => 122, - 119912u32 => 65, - 119913u32 => 66, - 119914u32 => 67, - 119915u32 => 68, - 119916u32 => 69, - 119917u32 => 70, - 119918u32 => 71, - 119919u32 => 72, - 119920u32 => 73, - 119921u32 => 74, - 119922u32 => 75, - 119923u32 => 76, - 119924u32 => 77, - 119925u32 => 78, - 119926u32 => 79, - 119927u32 => 80, - 119928u32 => 81, - 119929u32 => 82, - 119930u32 => 83, - 119931u32 => 84, - 119932u32 => 85, - 119933u32 => 86, - 119934u32 => 87, - 119935u32 => 88, - 119936u32 => 89, - 119937u32 => 90, - 119938u32 => 97, - 119939u32 => 98, - 119940u32 => 99, - 119941u32 => 100, - 119942u32 => 101, - 119943u32 => 102, - 119944u32 => 103, - 119945u32 => 104, - 119946u32 => 105, - 119947u32 => 106, - 119948u32 => 107, - 119949u32 => 108, - 119951u32 => 110, - 119952u32 => 111, - 119953u32 => 112, - 119954u32 => 113, - 119955u32 => 114, - 119956u32 => 115, - 119957u32 => 116, - 119958u32 => 117, - 119959u32 => 118, - 119960u32 => 119, - 119961u32 => 120, - 119962u32 => 121, - 119963u32 => 122, - 119964u32 => 65, - 119966u32 => 67, - 119967u32 => 68, - 119970u32 => 71, - 119973u32 => 74, - 119974u32 => 75, - 119977u32 => 78, - 119978u32 => 79, - 119979u32 => 80, - 119980u32 => 81, - 119982u32 => 83, - 119983u32 => 84, - 119984u32 => 85, - 119985u32 => 86, - 119986u32 => 87, - 119987u32 => 88, - 119988u32 => 89, - 119989u32 => 90, - 119990u32 => 97, - 119991u32 => 98, - 119992u32 => 99, - 119993u32 => 100, - 119995u32 => 102, - 119997u32 => 104, - 119998u32 => 105, - 119999u32 => 106, - 120000u32 => 107, - 120001u32 => 108, - 120003u32 => 110, - 120005u32 => 112, - 120006u32 => 113, - 120007u32 => 114, - 120008u32 => 115, - 120009u32 => 116, - 120010u32 => 117, - 120011u32 => 118, - 120012u32 => 119, - 120013u32 => 120, - 120014u32 => 121, - 120015u32 => 122, - 120016u32 => 65, - 120017u32 => 66, - 120018u32 => 67, - 120019u32 => 68, - 120020u32 => 69, - 120021u32 => 70, - 120022u32 => 71, - 120023u32 => 72, - 120024u32 => 73, - 120025u32 => 74, - 120026u32 => 75, - 120027u32 => 76, - 120028u32 => 77, - 120029u32 => 78, - 120030u32 => 79, - 120031u32 => 80, - 120032u32 => 81, - 120033u32 => 82, - 120034u32 => 83, - 120035u32 => 84, - 120036u32 => 85, - 120037u32 => 86, - 120038u32 => 87, - 120039u32 => 88, - 120040u32 => 89, - 120041u32 => 90, - 120042u32 => 97, - 120043u32 => 98, - 120044u32 => 99, - 120045u32 => 100, - 120046u32 => 101, - 120047u32 => 102, - 120048u32 => 103, - 120049u32 => 104, - 120050u32 => 105, - 120051u32 => 106, - 120052u32 => 107, - 120053u32 => 108, - 120055u32 => 110, - 120056u32 => 111, - 120057u32 => 112, - 120058u32 => 113, - 120059u32 => 114, - 120060u32 => 115, - 120061u32 => 116, - 120062u32 => 117, - 120063u32 => 118, - 120064u32 => 119, - 120065u32 => 120, - 120066u32 => 121, - 120067u32 => 122, - 120068u32 => 65, - 120069u32 => 66, - 120071u32 => 68, - 120072u32 => 69, - 120073u32 => 70, - 120074u32 => 71, - 120077u32 => 74, - 120078u32 => 75, - 120079u32 => 76, - 120080u32 => 77, - 120081u32 => 78, - 120082u32 => 79, - 120083u32 => 80, - 120084u32 => 81, - 120086u32 => 83, - 120087u32 => 84, - 120088u32 => 85, - 120089u32 => 86, - 120090u32 => 87, - 120091u32 => 88, - 120092u32 => 89, - 120094u32 => 97, - 120095u32 => 98, - 120096u32 => 99, - 120097u32 => 100, - 120098u32 => 101, - 120099u32 => 102, - 120100u32 => 103, - 120101u32 => 104, - 120102u32 => 105, - 120103u32 => 106, - 120104u32 => 107, - 120105u32 => 73, - 120107u32 => 110, - 120108u32 => 111, - 120109u32 => 112, - 120110u32 => 113, - 120111u32 => 114, - 120112u32 => 115, - 120113u32 => 116, - 120114u32 => 117, - 120115u32 => 118, - 120116u32 => 119, - 120117u32 => 120, - 120118u32 => 121, - 120119u32 => 122, - 120120u32 => 65, - 120121u32 => 66, - 120123u32 => 68, - 120124u32 => 69, - 120125u32 => 70, - 120126u32 => 71, - 120128u32 => 73, - 120129u32 => 74, - 120130u32 => 75, - 120131u32 => 76, - 120132u32 => 77, - 120134u32 => 79, - 120138u32 => 83, - 120139u32 => 84, - 120140u32 => 85, - 120141u32 => 86, - 120142u32 => 87, - 120143u32 => 88, - 120144u32 => 89, - 120146u32 => 97, - 120147u32 => 98, - 120148u32 => 99, - 120149u32 => 100, - 120150u32 => 101, - 120151u32 => 102, - 120152u32 => 103, - 120153u32 => 104, - 120154u32 => 105, - 120155u32 => 106, - 120156u32 => 107, - 120157u32 => 73, - 120159u32 => 110, - 120160u32 => 111, - 120161u32 => 112, - 120162u32 => 113, - 120163u32 => 114, - 120164u32 => 115, - 120165u32 => 116, - 120166u32 => 117, - 120167u32 => 118, - 120168u32 => 119, - 120169u32 => 120, - 120170u32 => 121, - 120171u32 => 122, - 120172u32 => 65, - 120173u32 => 66, - 120174u32 => 67, - 120175u32 => 68, - 120176u32 => 69, - 120177u32 => 70, - 120178u32 => 71, - 120179u32 => 72, - 120180u32 => 73, - 120181u32 => 74, - 120182u32 => 75, - 120183u32 => 76, - 120184u32 => 77, - 120185u32 => 78, - 120186u32 => 79, - 120187u32 => 80, - 120188u32 => 81, - 120189u32 => 82, - 120190u32 => 83, - 120191u32 => 84, - 120192u32 => 85, - 120193u32 => 86, - 120194u32 => 87, - 120195u32 => 88, - 120196u32 => 89, - 120197u32 => 90, - 120198u32 => 97, - 120199u32 => 98, - 120200u32 => 99, - 120201u32 => 100, - 120202u32 => 101, - 120203u32 => 102, - 120204u32 => 103, - 120205u32 => 104, - 120206u32 => 105, - 120207u32 => 106, - 120208u32 => 107, - 120209u32 => 73, - 120211u32 => 110, - 120212u32 => 111, - 120213u32 => 112, - 120214u32 => 113, - 120215u32 => 114, - 120216u32 => 115, - 120217u32 => 116, - 120218u32 => 117, - 120219u32 => 118, - 120220u32 => 119, - 120221u32 => 120, - 120222u32 => 121, - 120223u32 => 122, - 120224u32 => 65, - 120225u32 => 66, - 120226u32 => 67, - 120227u32 => 68, - 120228u32 => 69, - 120229u32 => 70, - 120230u32 => 71, - 120231u32 => 72, - 120232u32 => 73, - 120233u32 => 74, - 120234u32 => 75, - 120235u32 => 76, - 120236u32 => 77, - 120237u32 => 78, - 120238u32 => 79, - 120239u32 => 80, - 120240u32 => 81, - 120241u32 => 82, - 120242u32 => 83, - 120243u32 => 84, - 120244u32 => 85, - 120245u32 => 86, - 120246u32 => 87, - 120247u32 => 88, - 120248u32 => 89, - 120249u32 => 90, - 120250u32 => 97, - 120251u32 => 98, - 120252u32 => 99, - 120253u32 => 100, - 120254u32 => 101, - 120255u32 => 102, - 120256u32 => 103, - 120257u32 => 104, - 120258u32 => 105, - 120259u32 => 106, - 120260u32 => 107, - 120261u32 => 73, - 120263u32 => 110, - 120264u32 => 111, - 120265u32 => 112, - 120266u32 => 113, - 120267u32 => 114, - 120268u32 => 115, - 120269u32 => 116, - 120270u32 => 117, - 120271u32 => 118, - 120272u32 => 119, - 120273u32 => 120, - 120274u32 => 121, - 120275u32 => 122, - 120276u32 => 65, - 120277u32 => 66, - 120278u32 => 67, - 120279u32 => 68, - 120280u32 => 69, - 120281u32 => 70, - 120282u32 => 71, - 120283u32 => 72, - 120284u32 => 73, - 120285u32 => 74, - 120286u32 => 75, - 120287u32 => 76, - 120288u32 => 77, - 120289u32 => 78, - 120290u32 => 79, - 120291u32 => 80, - 120292u32 => 81, - 120293u32 => 82, - 120294u32 => 83, - 120295u32 => 84, - 120296u32 => 85, - 120297u32 => 86, - 120298u32 => 87, - 120299u32 => 88, - 120300u32 => 89, - 120301u32 => 90, - 120302u32 => 97, - 120303u32 => 98, - 120304u32 => 99, - 120305u32 => 100, - 120306u32 => 101, - 120307u32 => 102, - 120308u32 => 103, - 120309u32 => 104, - 120310u32 => 105, - 120311u32 => 106, - 120312u32 => 107, - 120313u32 => 73, - 120315u32 => 110, - 120316u32 => 111, - 120317u32 => 112, - 120318u32 => 113, - 120319u32 => 114, - 120320u32 => 115, - 120321u32 => 116, - 120322u32 => 117, - 120323u32 => 118, - 120324u32 => 119, - 120325u32 => 120, - 120326u32 => 121, - 120327u32 => 122, - 120328u32 => 65, - 120329u32 => 66, - 120330u32 => 67, - 120331u32 => 68, - 120332u32 => 69, - 120333u32 => 70, - 120334u32 => 71, - 120335u32 => 72, - 120336u32 => 73, - 120337u32 => 74, - 120338u32 => 75, - 120339u32 => 76, - 120340u32 => 77, - 120341u32 => 78, - 120342u32 => 79, - 120343u32 => 80, - 120344u32 => 81, - 120345u32 => 82, - 120346u32 => 83, - 120347u32 => 84, - 120348u32 => 85, - 120349u32 => 86, - 120350u32 => 87, - 120351u32 => 88, - 120352u32 => 89, - 120353u32 => 90, - 120354u32 => 97, - 120355u32 => 98, - 120356u32 => 99, - 120357u32 => 100, - 120358u32 => 101, - 120359u32 => 102, - 120360u32 => 103, - 120361u32 => 104, - 120362u32 => 105, - 120363u32 => 106, - 120364u32 => 107, - 120365u32 => 73, - 120367u32 => 110, - 120368u32 => 111, - 120369u32 => 112, - 120370u32 => 113, - 120371u32 => 114, - 120372u32 => 115, - 120373u32 => 116, - 120374u32 => 117, - 120375u32 => 118, - 120376u32 => 119, - 120377u32 => 120, - 120378u32 => 121, - 120379u32 => 122, - 120380u32 => 65, - 120381u32 => 66, - 120382u32 => 67, - 120383u32 => 68, - 120384u32 => 69, - 120385u32 => 70, - 120386u32 => 71, - 120387u32 => 72, - 120388u32 => 73, - 120389u32 => 74, - 120390u32 => 75, - 120391u32 => 76, - 120392u32 => 77, - 120393u32 => 78, - 120394u32 => 79, - 120395u32 => 80, - 120396u32 => 81, - 120397u32 => 82, - 120398u32 => 83, - 120399u32 => 84, - 120400u32 => 85, - 120401u32 => 86, - 120402u32 => 87, - 120403u32 => 88, - 120404u32 => 89, - 120405u32 => 90, - 120406u32 => 97, - 120407u32 => 98, - 120408u32 => 99, - 120409u32 => 100, - 120410u32 => 101, - 120411u32 => 102, - 120412u32 => 103, - 120413u32 => 104, - 120414u32 => 105, - 120415u32 => 106, - 120416u32 => 107, - 120417u32 => 73, - 120419u32 => 110, - 120420u32 => 111, - 120421u32 => 112, - 120422u32 => 113, - 120423u32 => 114, - 120424u32 => 115, - 120425u32 => 116, - 120426u32 => 117, - 120427u32 => 118, - 120428u32 => 119, - 120429u32 => 120, - 120430u32 => 121, - 120431u32 => 122, - 120432u32 => 65, - 120433u32 => 66, - 120434u32 => 67, - 120435u32 => 68, - 120436u32 => 69, - 120437u32 => 70, - 120438u32 => 71, - 120439u32 => 72, - 120440u32 => 73, - 120441u32 => 74, - 120442u32 => 75, - 120443u32 => 76, - 120444u32 => 77, - 120445u32 => 78, - 120446u32 => 79, - 120447u32 => 80, - 120448u32 => 81, - 120449u32 => 82, - 120450u32 => 83, - 120451u32 => 84, - 120452u32 => 85, - 120453u32 => 86, - 120454u32 => 87, - 120455u32 => 88, - 120456u32 => 89, - 120457u32 => 90, - 120458u32 => 97, - 120459u32 => 98, - 120460u32 => 99, - 120461u32 => 100, - 120462u32 => 101, - 120463u32 => 102, - 120464u32 => 103, - 120465u32 => 104, - 120466u32 => 105, - 120467u32 => 106, - 120468u32 => 107, - 120469u32 => 73, - 120471u32 => 110, - 120472u32 => 111, - 120473u32 => 112, - 120474u32 => 113, - 120475u32 => 114, - 120476u32 => 115, - 120477u32 => 116, - 120478u32 => 117, - 120479u32 => 118, - 120480u32 => 119, - 120481u32 => 120, - 120482u32 => 121, - 120483u32 => 122, - 120484u32 => 105, - 120488u32 => 65, - 120489u32 => 66, - 120492u32 => 69, - 120493u32 => 90, - 120494u32 => 72, - 120496u32 => 73, - 120497u32 => 75, - 120499u32 => 77, - 120500u32 => 78, - 120502u32 => 79, - 120504u32 => 80, - 120507u32 => 84, - 120508u32 => 89, - 120510u32 => 88, - 120514u32 => 97, - 120516u32 => 121, - 120522u32 => 105, - 120526u32 => 118, - 120528u32 => 111, - 120530u32 => 112, - 120532u32 => 111, - 120534u32 => 117, - 120544u32 => 112, - 120546u32 => 65, - 120547u32 => 66, - 120550u32 => 69, - 120551u32 => 90, - 120552u32 => 72, - 120554u32 => 73, - 120555u32 => 75, - 120557u32 => 77, - 120558u32 => 78, - 120560u32 => 79, - 120562u32 => 80, - 120565u32 => 84, - 120566u32 => 89, - 120568u32 => 88, - 120572u32 => 97, - 120574u32 => 121, - 120580u32 => 105, - 120584u32 => 118, - 120586u32 => 111, - 120588u32 => 112, - 120590u32 => 111, - 120592u32 => 117, - 120602u32 => 112, - 120604u32 => 65, - 120605u32 => 66, - 120608u32 => 69, - 120609u32 => 90, - 120610u32 => 72, - 120612u32 => 73, - 120613u32 => 75, - 120615u32 => 77, - 120616u32 => 78, - 120618u32 => 79, - 120620u32 => 80, - 120623u32 => 84, - 120624u32 => 89, - 120626u32 => 88, - 120630u32 => 97, - 120632u32 => 121, - 120638u32 => 105, - 120642u32 => 118, - 120644u32 => 111, - 120646u32 => 112, - 120648u32 => 111, - 120650u32 => 117, - 120660u32 => 112, - 120662u32 => 65, - 120663u32 => 66, - 120666u32 => 69, - 120667u32 => 90, - 120668u32 => 72, - 120670u32 => 73, - 120671u32 => 75, - 120673u32 => 77, - 120674u32 => 78, - 120676u32 => 79, - 120678u32 => 80, - 120681u32 => 84, - 120682u32 => 89, - 120684u32 => 88, - 120688u32 => 97, - 120690u32 => 121, - 120696u32 => 105, - 120700u32 => 118, - 120702u32 => 111, - 120704u32 => 112, - 120706u32 => 111, - 120708u32 => 117, - 120718u32 => 112, - 120720u32 => 65, - 120721u32 => 66, - 120724u32 => 69, - 120725u32 => 90, - 120726u32 => 72, - 120728u32 => 73, - 120729u32 => 75, - 120731u32 => 77, - 120732u32 => 78, - 120734u32 => 79, - 120736u32 => 80, - 120739u32 => 84, - 120740u32 => 89, - 120742u32 => 88, - 120746u32 => 97, - 120748u32 => 121, - 120754u32 => 105, - 120758u32 => 118, - 120760u32 => 111, - 120762u32 => 112, - 120764u32 => 111, - 120766u32 => 117, - 120776u32 => 112, - 120778u32 => 70, - 120782u32 => 79, - 120783u32 => 73, - 120784u32 => 50, - 120785u32 => 51, - 120786u32 => 52, - 120787u32 => 53, - 120788u32 => 54, - 120789u32 => 55, - 120790u32 => 56, - 120791u32 => 57, - 120792u32 => 79, - 120793u32 => 73, - 120794u32 => 50, - 120795u32 => 51, - 120796u32 => 52, - 120797u32 => 53, - 120798u32 => 54, - 120799u32 => 55, - 120800u32 => 56, - 120801u32 => 57, - 120802u32 => 79, - 120803u32 => 73, - 120804u32 => 50, - 120805u32 => 51, - 120806u32 => 52, - 120807u32 => 53, - 120808u32 => 54, - 120809u32 => 55, - 120810u32 => 56, - 120811u32 => 57, - 120812u32 => 79, - 120813u32 => 73, - 120814u32 => 50, - 120815u32 => 51, - 120816u32 => 52, - 120817u32 => 53, - 120818u32 => 54, - 120819u32 => 55, - 120820u32 => 56, - 120821u32 => 57, - 120822u32 => 79, - 120823u32 => 73, - 120824u32 => 50, - 120825u32 => 51, - 120826u32 => 52, - 120827u32 => 53, - 120828u32 => 54, - 120829u32 => 55, - 120830u32 => 56, - 120831u32 => 57, - 125127u32 => 108, - 125131u32 => 56, - 126464u32 => 108, - 126500u32 => 111, - 126564u32 => 111, - 126592u32 => 108, - 126596u32 => 111, - 128844u32 => 67, - 128872u32 => 84, - 130032u32 => 79, - 130033u32 => 73, - 130034u32 => 50, - 130035u32 => 51, - 130036u32 => 52, - 130037u32 => 53, - 130038u32 => 54, - 130039u32 => 55, - 130040u32 => 56, - 130041u32 => 57, -}; +pub(crate) fn confusable(c: u32) -> Option { + let result = match c { + 160u32 => 32, + 180u32 => 96, + 184u32 => 44, + 215u32 => 120, + 305u32 => 105, + 383u32 => 102, + 388u32 => 98, + 397u32 => 103, + 422u32 => 82, + 423u32 => 50, + 439u32 => 51, + 444u32 => 53, + 445u32 => 115, + 448u32 => 73, + 451u32 => 33, + 540u32 => 51, + 546u32 => 56, + 547u32 => 56, + 577u32 => 63, + 593u32 => 97, + 609u32 => 103, + 611u32 => 121, + 617u32 => 105, + 618u32 => 105, + 623u32 => 119, + 651u32 => 117, + 655u32 => 121, + 660u32 => 63, + 697u32 => 96, + 699u32 => 96, + 700u32 => 96, + 701u32 => 96, + 702u32 => 96, + 706u32 => 60, + 707u32 => 62, + 708u32 => 94, + 710u32 => 94, + 712u32 => 96, + 714u32 => 96, + 715u32 => 96, + 720u32 => 58, + 727u32 => 45, + 731u32 => 105, + 732u32 => 126, + 756u32 => 96, + 760u32 => 58, + 884u32 => 96, + 890u32 => 105, + 894u32 => 59, + 895u32 => 74, + 900u32 => 96, + 913u32 => 65, + 914u32 => 66, + 917u32 => 69, + 918u32 => 90, + 919u32 => 72, + 921u32 => 73, + 922u32 => 75, + 924u32 => 77, + 925u32 => 78, + 927u32 => 79, + 929u32 => 80, + 932u32 => 84, + 933u32 => 89, + 935u32 => 88, + 945u32 => 97, + 947u32 => 121, + 953u32 => 105, + 957u32 => 118, + 959u32 => 111, + 961u32 => 112, + 963u32 => 111, + 965u32 => 117, + 978u32 => 89, + 988u32 => 70, + 1000u32 => 50, + 1009u32 => 112, + 1010u32 => 99, + 1011u32 => 106, + 1017u32 => 67, + 1018u32 => 77, + 1029u32 => 83, + 1030u32 => 73, + 1032u32 => 74, + 1040u32 => 65, + 1042u32 => 66, + 1045u32 => 69, + 1047u32 => 51, + 1050u32 => 75, + 1052u32 => 77, + 1053u32 => 72, + 1054u32 => 79, + 1056u32 => 80, + 1057u32 => 67, + 1058u32 => 84, + 1059u32 => 89, + 1061u32 => 88, + 1068u32 => 98, + 1072u32 => 97, + 1073u32 => 54, + 1075u32 => 114, + 1077u32 => 101, + 1086u32 => 111, + 1088u32 => 112, + 1089u32 => 99, + 1091u32 => 121, + 1093u32 => 120, + 1109u32 => 115, + 1110u32 => 105, + 1112u32 => 106, + 1121u32 => 119, + 1140u32 => 86, + 1141u32 => 118, + 1198u32 => 89, + 1199u32 => 121, + 1211u32 => 104, + 1213u32 => 101, + 1216u32 => 73, + 1231u32 => 105, + 1248u32 => 51, + 1281u32 => 100, + 1292u32 => 71, + 1307u32 => 113, + 1308u32 => 87, + 1309u32 => 119, + 1357u32 => 85, + 1359u32 => 83, + 1365u32 => 79, + 1370u32 => 96, + 1373u32 => 96, + 1377u32 => 119, + 1379u32 => 113, + 1382u32 => 113, + 1392u32 => 104, + 1400u32 => 110, + 1404u32 => 110, + 1405u32 => 117, + 1409u32 => 103, + 1412u32 => 102, + 1413u32 => 111, + 1417u32 => 58, + 1472u32 => 108, + 1475u32 => 58, + 1493u32 => 108, + 1496u32 => 118, + 1497u32 => 96, + 1503u32 => 108, + 1505u32 => 111, + 1523u32 => 96, + 1549u32 => 44, + 1575u32 => 108, + 1607u32 => 111, + 1632u32 => 46, + 1633u32 => 108, + 1637u32 => 111, + 1639u32 => 86, + 1643u32 => 44, + 1645u32 => 42, + 1726u32 => 111, + 1729u32 => 111, + 1748u32 => 45, + 1749u32 => 111, + 1776u32 => 46, + 1777u32 => 73, + 1781u32 => 111, + 1783u32 => 86, + 1793u32 => 46, + 1794u32 => 46, + 1795u32 => 58, + 1796u32 => 58, + 1984u32 => 79, + 1994u32 => 108, + 2036u32 => 96, + 2037u32 => 96, + 2042u32 => 95, + 2307u32 => 58, + 2406u32 => 111, + 2429u32 => 63, + 2534u32 => 79, + 2538u32 => 56, + 2541u32 => 57, + 2662u32 => 111, + 2663u32 => 57, + 2666u32 => 56, + 2691u32 => 58, + 2790u32 => 111, + 2819u32 => 56, + 2848u32 => 79, + 2918u32 => 79, + 2920u32 => 57, + 3046u32 => 111, + 3074u32 => 111, + 3174u32 => 111, + 3202u32 => 111, + 3302u32 => 111, + 3330u32 => 111, + 3360u32 => 111, + 3430u32 => 111, + 3437u32 => 57, + 3458u32 => 111, + 3664u32 => 111, + 3792u32 => 111, + 4125u32 => 111, + 4160u32 => 111, + 4327u32 => 121, + 4351u32 => 111, + 4608u32 => 85, + 4816u32 => 79, + 5024u32 => 68, + 5025u32 => 82, + 5026u32 => 84, + 5029u32 => 105, + 5033u32 => 89, + 5034u32 => 65, + 5035u32 => 74, + 5036u32 => 69, + 5038u32 => 63, + 5043u32 => 87, + 5047u32 => 77, + 5051u32 => 72, + 5053u32 => 89, + 5056u32 => 71, + 5058u32 => 104, + 5059u32 => 90, + 5070u32 => 52, + 5071u32 => 98, + 5074u32 => 82, + 5076u32 => 87, + 5077u32 => 83, + 5081u32 => 86, + 5082u32 => 83, + 5086u32 => 76, + 5087u32 => 67, + 5090u32 => 80, + 5094u32 => 75, + 5095u32 => 100, + 5102u32 => 54, + 5107u32 => 71, + 5108u32 => 66, + 5120u32 => 61, + 5167u32 => 86, + 5171u32 => 62, + 5176u32 => 60, + 5194u32 => 96, + 5196u32 => 85, + 5229u32 => 80, + 5231u32 => 100, + 5234u32 => 98, + 5261u32 => 74, + 5290u32 => 76, + 5311u32 => 50, + 5441u32 => 120, + 5500u32 => 72, + 5501u32 => 120, + 5511u32 => 82, + 5551u32 => 98, + 5556u32 => 70, + 5573u32 => 65, + 5598u32 => 68, + 5610u32 => 68, + 5616u32 => 77, + 5623u32 => 66, + 5741u32 => 88, + 5742u32 => 120, + 5760u32 => 32, + 5810u32 => 60, + 5815u32 => 88, + 5825u32 => 73, + 5836u32 => 96, + 5845u32 => 75, + 5846u32 => 77, + 5868u32 => 58, + 5869u32 => 43, + 5941u32 => 47, + 6147u32 => 58, + 6153u32 => 58, + 7428u32 => 99, + 7439u32 => 111, + 7441u32 => 111, + 7452u32 => 117, + 7456u32 => 118, + 7457u32 => 119, + 7458u32 => 122, + 7462u32 => 114, + 7555u32 => 103, + 7564u32 => 121, + 7837u32 => 102, + 7935u32 => 121, + 8125u32 => 96, + 8126u32 => 105, + 8127u32 => 96, + 8128u32 => 126, + 8175u32 => 96, + 8189u32 => 96, + 8190u32 => 96, + 8192u32 => 32, + 8193u32 => 32, + 8194u32 => 32, + 8195u32 => 32, + 8196u32 => 32, + 8197u32 => 32, + 8198u32 => 32, + 8199u32 => 32, + 8200u32 => 32, + 8201u32 => 32, + 8202u32 => 32, + 8208u32 => 45, + 8209u32 => 45, + 8210u32 => 45, + 8211u32 => 45, + 8216u32 => 96, + 8217u32 => 96, + 8218u32 => 44, + 8219u32 => 96, + 8228u32 => 46, + 8232u32 => 32, + 8233u32 => 32, + 8239u32 => 32, + 8242u32 => 96, + 8245u32 => 96, + 8249u32 => 60, + 8250u32 => 62, + 8257u32 => 47, + 8259u32 => 45, + 8260u32 => 47, + 8270u32 => 42, + 8275u32 => 126, + 8282u32 => 58, + 8287u32 => 32, + 8450u32 => 67, + 8458u32 => 103, + 8459u32 => 72, + 8460u32 => 72, + 8461u32 => 72, + 8462u32 => 104, + 8464u32 => 73, + 8465u32 => 73, + 8466u32 => 76, + 8467u32 => 108, + 8469u32 => 78, + 8473u32 => 80, + 8474u32 => 81, + 8475u32 => 82, + 8476u32 => 82, + 8477u32 => 82, + 8484u32 => 90, + 8488u32 => 90, + 8490u32 => 75, + 8492u32 => 66, + 8493u32 => 67, + 8494u32 => 101, + 8495u32 => 101, + 8496u32 => 69, + 8497u32 => 70, + 8499u32 => 77, + 8500u32 => 111, + 8505u32 => 105, + 8509u32 => 121, + 8517u32 => 68, + 8518u32 => 100, + 8519u32 => 101, + 8520u32 => 105, + 8521u32 => 106, + 8544u32 => 73, + 8548u32 => 86, + 8553u32 => 88, + 8556u32 => 76, + 8557u32 => 67, + 8558u32 => 68, + 8559u32 => 77, + 8560u32 => 105, + 8564u32 => 118, + 8569u32 => 120, + 8572u32 => 73, + 8573u32 => 99, + 8574u32 => 100, + 8722u32 => 45, + 8725u32 => 47, + 8726u32 => 92, + 8727u32 => 42, + 8739u32 => 73, + 8744u32 => 118, + 8746u32 => 85, + 8758u32 => 58, + 8764u32 => 126, + 8868u32 => 84, + 8897u32 => 118, + 8899u32 => 85, + 8959u32 => 69, + 9075u32 => 105, + 9076u32 => 112, + 9082u32 => 97, + 9213u32 => 73, + 9585u32 => 47, + 9587u32 => 88, + 10088u32 => 40, + 10089u32 => 41, + 10094u32 => 60, + 10095u32 => 62, + 10098u32 => 40, + 10099u32 => 41, + 10100u32 => 123, + 10101u32 => 125, + 10133u32 => 43, + 10134u32 => 45, + 10187u32 => 47, + 10189u32 => 92, + 10201u32 => 84, + 10539u32 => 120, + 10540u32 => 120, + 10741u32 => 92, + 10744u32 => 47, + 10745u32 => 92, + 10799u32 => 120, + 11397u32 => 114, + 11406u32 => 72, + 11410u32 => 73, + 11412u32 => 75, + 11416u32 => 77, + 11418u32 => 78, + 11422u32 => 79, + 11423u32 => 111, + 11426u32 => 80, + 11427u32 => 112, + 11428u32 => 67, + 11429u32 => 99, + 11430u32 => 84, + 11432u32 => 89, + 11436u32 => 88, + 11450u32 => 45, + 11462u32 => 47, + 11466u32 => 57, + 11468u32 => 51, + 11472u32 => 76, + 11474u32 => 54, + 11576u32 => 86, + 11577u32 => 69, + 11599u32 => 73, + 11601u32 => 33, + 11604u32 => 79, + 11605u32 => 81, + 11613u32 => 88, + 11840u32 => 61, + 12034u32 => 92, + 12035u32 => 47, + 12295u32 => 79, + 12308u32 => 40, + 12309u32 => 41, + 12339u32 => 47, + 12448u32 => 61, + 12494u32 => 47, + 12755u32 => 47, + 12756u32 => 92, + 20022u32 => 92, + 20031u32 => 47, + 42192u32 => 66, + 42193u32 => 80, + 42194u32 => 100, + 42195u32 => 68, + 42196u32 => 84, + 42198u32 => 71, + 42199u32 => 75, + 42201u32 => 74, + 42202u32 => 67, + 42204u32 => 90, + 42205u32 => 70, + 42207u32 => 77, + 42208u32 => 78, + 42209u32 => 76, + 42210u32 => 83, + 42211u32 => 82, + 42214u32 => 86, + 42215u32 => 72, + 42218u32 => 87, + 42219u32 => 88, + 42220u32 => 89, + 42222u32 => 65, + 42224u32 => 69, + 42226u32 => 73, + 42227u32 => 79, + 42228u32 => 85, + 42232u32 => 46, + 42233u32 => 44, + 42237u32 => 58, + 42239u32 => 61, + 42510u32 => 46, + 42564u32 => 50, + 42567u32 => 105, + 42719u32 => 86, + 42731u32 => 63, + 42735u32 => 50, + 42801u32 => 115, + 42842u32 => 50, + 42858u32 => 51, + 42862u32 => 57, + 42872u32 => 38, + 42889u32 => 58, + 42892u32 => 96, + 42904u32 => 70, + 42905u32 => 102, + 42911u32 => 117, + 42923u32 => 51, + 42930u32 => 74, + 42931u32 => 88, + 42932u32 => 66, + 43826u32 => 101, + 43829u32 => 102, + 43837u32 => 111, + 43847u32 => 114, + 43848u32 => 114, + 43854u32 => 117, + 43858u32 => 117, + 43866u32 => 121, + 43893u32 => 105, + 43905u32 => 114, + 43907u32 => 119, + 43923u32 => 122, + 43945u32 => 118, + 43946u32 => 115, + 43951u32 => 99, + 64422u32 => 111, + 64423u32 => 111, + 64424u32 => 111, + 64425u32 => 111, + 64426u32 => 111, + 64427u32 => 111, + 64428u32 => 111, + 64429u32 => 111, + 64830u32 => 40, + 64831u32 => 41, + 65072u32 => 58, + 65101u32 => 95, + 65102u32 => 95, + 65103u32 => 95, + 65112u32 => 45, + 65128u32 => 92, + 65165u32 => 108, + 65166u32 => 108, + 65257u32 => 111, + 65258u32 => 111, + 65259u32 => 111, + 65260u32 => 111, + 65281u32 => 33, + 65282u32 => 34, + 65283u32 => 35, + 65284u32 => 36, + 65285u32 => 37, + 65286u32 => 38, + 65287u32 => 96, + 65288u32 => 40, + 65289u32 => 41, + 65290u32 => 42, + 65291u32 => 43, + 65292u32 => 44, + 65293u32 => 45, + 65294u32 => 46, + 65295u32 => 47, + 65296u32 => 48, + 65297u32 => 49, + 65298u32 => 50, + 65299u32 => 51, + 65300u32 => 52, + 65301u32 => 53, + 65302u32 => 54, + 65303u32 => 55, + 65304u32 => 56, + 65305u32 => 57, + 65306u32 => 58, + 65307u32 => 59, + 65308u32 => 60, + 65309u32 => 61, + 65310u32 => 62, + 65311u32 => 63, + 65312u32 => 64, + 65313u32 => 65, + 65314u32 => 66, + 65315u32 => 67, + 65316u32 => 68, + 65317u32 => 69, + 65318u32 => 70, + 65319u32 => 71, + 65320u32 => 72, + 65321u32 => 73, + 65322u32 => 74, + 65323u32 => 75, + 65324u32 => 76, + 65325u32 => 77, + 65326u32 => 78, + 65327u32 => 79, + 65328u32 => 80, + 65329u32 => 81, + 65330u32 => 82, + 65331u32 => 83, + 65332u32 => 84, + 65333u32 => 85, + 65334u32 => 86, + 65335u32 => 87, + 65336u32 => 88, + 65337u32 => 89, + 65338u32 => 90, + 65339u32 => 91, + 65340u32 => 92, + 65341u32 => 93, + 65342u32 => 94, + 65343u32 => 95, + 65344u32 => 96, + 65345u32 => 97, + 65346u32 => 98, + 65347u32 => 99, + 65348u32 => 100, + 65349u32 => 101, + 65350u32 => 102, + 65351u32 => 103, + 65352u32 => 104, + 65353u32 => 105, + 65354u32 => 106, + 65355u32 => 107, + 65356u32 => 108, + 65357u32 => 109, + 65358u32 => 110, + 65359u32 => 111, + 65360u32 => 112, + 65361u32 => 113, + 65362u32 => 114, + 65363u32 => 115, + 65364u32 => 116, + 65365u32 => 117, + 65366u32 => 118, + 65367u32 => 119, + 65368u32 => 120, + 65369u32 => 121, + 65370u32 => 122, + 65371u32 => 123, + 65372u32 => 124, + 65373u32 => 125, + 65374u32 => 126, + 65512u32 => 73, + 66178u32 => 66, + 66182u32 => 69, + 66183u32 => 70, + 66186u32 => 124, + 66192u32 => 88, + 66194u32 => 79, + 66197u32 => 80, + 66198u32 => 83, + 66199u32 => 84, + 66203u32 => 43, + 66208u32 => 65, + 66209u32 => 66, + 66210u32 => 67, + 66213u32 => 70, + 66219u32 => 79, + 66224u32 => 77, + 66225u32 => 84, + 66226u32 => 89, + 66228u32 => 88, + 66255u32 => 72, + 66293u32 => 90, + 66305u32 => 66, + 66306u32 => 67, + 66313u32 => 124, + 66321u32 => 77, + 66325u32 => 84, + 66327u32 => 88, + 66330u32 => 56, + 66335u32 => 42, + 66336u32 => 108, + 66338u32 => 88, + 66564u32 => 79, + 66581u32 => 67, + 66587u32 => 76, + 66592u32 => 83, + 66604u32 => 111, + 66621u32 => 99, + 66632u32 => 115, + 66740u32 => 82, + 66754u32 => 79, + 66766u32 => 85, + 66770u32 => 55, + 66794u32 => 111, + 66806u32 => 117, + 66835u32 => 78, + 66838u32 => 79, + 66840u32 => 75, + 66844u32 => 67, + 66845u32 => 86, + 66853u32 => 70, + 66854u32 => 76, + 66855u32 => 88, + 68176u32 => 46, + 70864u32 => 79, + 71430u32 => 118, + 71434u32 => 119, + 71438u32 => 119, + 71439u32 => 119, + 71840u32 => 86, + 71842u32 => 70, + 71843u32 => 76, + 71844u32 => 89, + 71846u32 => 69, + 71849u32 => 90, + 71852u32 => 57, + 71854u32 => 69, + 71855u32 => 52, + 71858u32 => 76, + 71861u32 => 79, + 71864u32 => 85, + 71867u32 => 53, + 71868u32 => 84, + 71872u32 => 118, + 71873u32 => 115, + 71874u32 => 70, + 71875u32 => 105, + 71876u32 => 122, + 71878u32 => 55, + 71880u32 => 111, + 71882u32 => 51, + 71884u32 => 57, + 71893u32 => 54, + 71894u32 => 57, + 71895u32 => 111, + 71896u32 => 117, + 71900u32 => 121, + 71904u32 => 79, + 71909u32 => 90, + 71910u32 => 87, + 71913u32 => 67, + 71916u32 => 88, + 71919u32 => 87, + 71922u32 => 67, + 93960u32 => 86, + 93962u32 => 84, + 93974u32 => 76, + 93992u32 => 73, + 94005u32 => 82, + 94010u32 => 83, + 94011u32 => 51, + 94015u32 => 62, + 94016u32 => 65, + 94018u32 => 85, + 94019u32 => 89, + 94033u32 => 96, + 94034u32 => 96, + 119_060_u32 => 123, + 119_149_u32 => 46, + 119_302_u32 => 51, + 119_309_u32 => 86, + 119_311_u32 => 92, + 119_314_u32 => 55, + 119_315_u32 => 70, + 119_318_u32 => 82, + 119_338_u32 => 76, + 119_350_u32 => 60, + 119_351_u32 => 62, + 119_354_u32 => 47, + 119_355_u32 => 92, + 119_808_u32 => 65, + 119_809_u32 => 66, + 119_810_u32 => 67, + 119_811_u32 => 68, + 119_812_u32 => 69, + 119_813_u32 => 70, + 119_814_u32 => 71, + 119_815_u32 => 72, + 119_816_u32 => 73, + 119_817_u32 => 74, + 119_818_u32 => 75, + 119_819_u32 => 76, + 119_820_u32 => 77, + 119_821_u32 => 78, + 119_822_u32 => 79, + 119_823_u32 => 80, + 119_824_u32 => 81, + 119_825_u32 => 82, + 119_826_u32 => 83, + 119_827_u32 => 84, + 119_828_u32 => 85, + 119_829_u32 => 86, + 119_830_u32 => 87, + 119_831_u32 => 88, + 119_832_u32 => 89, + 119_833_u32 => 90, + 119_834_u32 => 97, + 119_835_u32 => 98, + 119_836_u32 => 99, + 119_837_u32 => 100, + 119_838_u32 => 101, + 119_839_u32 => 102, + 119_840_u32 => 103, + 119_841_u32 => 104, + 119_842_u32 => 105, + 119_843_u32 => 106, + 119_844_u32 => 107, + 119_845_u32 => 108, + 119_846_u32 => 109, + 119_847_u32 => 110, + 119_848_u32 => 111, + 119_849_u32 => 112, + 119_850_u32 => 113, + 119_851_u32 => 114, + 119_852_u32 => 115, + 119_853_u32 => 116, + 119_854_u32 => 117, + 119_855_u32 => 118, + 119_856_u32 => 119, + 119_857_u32 => 120, + 119_858_u32 => 121, + 119_859_u32 => 122, + 119_860_u32 => 65, + 119_861_u32 => 66, + 119_862_u32 => 67, + 119_863_u32 => 68, + 119_864_u32 => 69, + 119_865_u32 => 70, + 119_866_u32 => 71, + 119_867_u32 => 72, + 119_868_u32 => 73, + 119_869_u32 => 74, + 119_870_u32 => 75, + 119_871_u32 => 76, + 119_872_u32 => 77, + 119_873_u32 => 78, + 119_874_u32 => 79, + 119_875_u32 => 80, + 119_876_u32 => 81, + 119_877_u32 => 82, + 119_878_u32 => 83, + 119_879_u32 => 84, + 119_880_u32 => 85, + 119_881_u32 => 86, + 119_882_u32 => 87, + 119_883_u32 => 88, + 119_884_u32 => 89, + 119_885_u32 => 90, + 119_886_u32 => 97, + 119_887_u32 => 98, + 119_888_u32 => 99, + 119_889_u32 => 100, + 119_890_u32 => 101, + 119_891_u32 => 102, + 119_892_u32 => 103, + 119_894_u32 => 105, + 119_895_u32 => 106, + 119_896_u32 => 107, + 119_897_u32 => 108, + 119_899_u32 => 110, + 119_900_u32 => 111, + 119_901_u32 => 112, + 119_902_u32 => 113, + 119_903_u32 => 114, + 119_904_u32 => 115, + 119_905_u32 => 116, + 119_906_u32 => 117, + 119_907_u32 => 118, + 119_908_u32 => 119, + 119_909_u32 => 120, + 119_910_u32 => 121, + 119_911_u32 => 122, + 119_912_u32 => 65, + 119_913_u32 => 66, + 119_914_u32 => 67, + 119_915_u32 => 68, + 119_916_u32 => 69, + 119_917_u32 => 70, + 119_918_u32 => 71, + 119_919_u32 => 72, + 119_920_u32 => 73, + 119_921_u32 => 74, + 119_922_u32 => 75, + 119_923_u32 => 76, + 119_924_u32 => 77, + 119_925_u32 => 78, + 119_926_u32 => 79, + 119_927_u32 => 80, + 119_928_u32 => 81, + 119_929_u32 => 82, + 119_930_u32 => 83, + 119_931_u32 => 84, + 119_932_u32 => 85, + 119_933_u32 => 86, + 119_934_u32 => 87, + 119_935_u32 => 88, + 119_936_u32 => 89, + 119_937_u32 => 90, + 119_938_u32 => 97, + 119_939_u32 => 98, + 119_940_u32 => 99, + 119_941_u32 => 100, + 119_942_u32 => 101, + 119_943_u32 => 102, + 119_944_u32 => 103, + 119_945_u32 => 104, + 119_946_u32 => 105, + 119_947_u32 => 106, + 119_948_u32 => 107, + 119_949_u32 => 108, + 119_951_u32 => 110, + 119_952_u32 => 111, + 119_953_u32 => 112, + 119_954_u32 => 113, + 119_955_u32 => 114, + 119_956_u32 => 115, + 119_957_u32 => 116, + 119_958_u32 => 117, + 119_959_u32 => 118, + 119_960_u32 => 119, + 119_961_u32 => 120, + 119_962_u32 => 121, + 119_963_u32 => 122, + 119_964_u32 => 65, + 119_966_u32 => 67, + 119_967_u32 => 68, + 119_970_u32 => 71, + 119_973_u32 => 74, + 119_974_u32 => 75, + 119_977_u32 => 78, + 119_978_u32 => 79, + 119_979_u32 => 80, + 119_980_u32 => 81, + 119_982_u32 => 83, + 119_983_u32 => 84, + 119_984_u32 => 85, + 119_985_u32 => 86, + 119_986_u32 => 87, + 119_987_u32 => 88, + 119_988_u32 => 89, + 119_989_u32 => 90, + 119_990_u32 => 97, + 119_991_u32 => 98, + 119_992_u32 => 99, + 119_993_u32 => 100, + 119_995_u32 => 102, + 119_997_u32 => 104, + 119_998_u32 => 105, + 119_999_u32 => 106, + 120_000_u32 => 107, + 120_001_u32 => 108, + 120_003_u32 => 110, + 120_005_u32 => 112, + 120_006_u32 => 113, + 120_007_u32 => 114, + 120_008_u32 => 115, + 120_009_u32 => 116, + 120_010_u32 => 117, + 120_011_u32 => 118, + 120_012_u32 => 119, + 120_013_u32 => 120, + 120_014_u32 => 121, + 120_015_u32 => 122, + 120_016_u32 => 65, + 120_017_u32 => 66, + 120_018_u32 => 67, + 120_019_u32 => 68, + 120_020_u32 => 69, + 120_021_u32 => 70, + 120_022_u32 => 71, + 120_023_u32 => 72, + 120_024_u32 => 73, + 120_025_u32 => 74, + 120_026_u32 => 75, + 120_027_u32 => 76, + 120_028_u32 => 77, + 120_029_u32 => 78, + 120_030_u32 => 79, + 120_031_u32 => 80, + 120_032_u32 => 81, + 120_033_u32 => 82, + 120_034_u32 => 83, + 120_035_u32 => 84, + 120_036_u32 => 85, + 120_037_u32 => 86, + 120_038_u32 => 87, + 120_039_u32 => 88, + 120_040_u32 => 89, + 120_041_u32 => 90, + 120_042_u32 => 97, + 120_043_u32 => 98, + 120_044_u32 => 99, + 120_045_u32 => 100, + 120_046_u32 => 101, + 120_047_u32 => 102, + 120_048_u32 => 103, + 120_049_u32 => 104, + 120_050_u32 => 105, + 120_051_u32 => 106, + 120_052_u32 => 107, + 120_053_u32 => 108, + 120_055_u32 => 110, + 120_056_u32 => 111, + 120_057_u32 => 112, + 120_058_u32 => 113, + 120_059_u32 => 114, + 120_060_u32 => 115, + 120_061_u32 => 116, + 120_062_u32 => 117, + 120_063_u32 => 118, + 120_064_u32 => 119, + 120_065_u32 => 120, + 120_066_u32 => 121, + 120_067_u32 => 122, + 120_068_u32 => 65, + 120_069_u32 => 66, + 120_071_u32 => 68, + 120_072_u32 => 69, + 120_073_u32 => 70, + 120_074_u32 => 71, + 120_077_u32 => 74, + 120_078_u32 => 75, + 120_079_u32 => 76, + 120_080_u32 => 77, + 120_081_u32 => 78, + 120_082_u32 => 79, + 120_083_u32 => 80, + 120_084_u32 => 81, + 120_086_u32 => 83, + 120_087_u32 => 84, + 120_088_u32 => 85, + 120_089_u32 => 86, + 120_090_u32 => 87, + 120_091_u32 => 88, + 120_092_u32 => 89, + 120_094_u32 => 97, + 120_095_u32 => 98, + 120_096_u32 => 99, + 120_097_u32 => 100, + 120_098_u32 => 101, + 120_099_u32 => 102, + 120_100_u32 => 103, + 120_101_u32 => 104, + 120_102_u32 => 105, + 120_103_u32 => 106, + 120_104_u32 => 107, + 120_105_u32 => 73, + 120_107_u32 => 110, + 120_108_u32 => 111, + 120_109_u32 => 112, + 120_110_u32 => 113, + 120_111_u32 => 114, + 120_112_u32 => 115, + 120_113_u32 => 116, + 120_114_u32 => 117, + 120_115_u32 => 118, + 120_116_u32 => 119, + 120_117_u32 => 120, + 120_118_u32 => 121, + 120_119_u32 => 122, + 120_120_u32 => 65, + 120_121_u32 => 66, + 120_123_u32 => 68, + 120_124_u32 => 69, + 120_125_u32 => 70, + 120_126_u32 => 71, + 120_128_u32 => 73, + 120_129_u32 => 74, + 120_130_u32 => 75, + 120_131_u32 => 76, + 120_132_u32 => 77, + 120_134_u32 => 79, + 120_138_u32 => 83, + 120_139_u32 => 84, + 120_140_u32 => 85, + 120_141_u32 => 86, + 120_142_u32 => 87, + 120_143_u32 => 88, + 120_144_u32 => 89, + 120_146_u32 => 97, + 120_147_u32 => 98, + 120_148_u32 => 99, + 120_149_u32 => 100, + 120_150_u32 => 101, + 120_151_u32 => 102, + 120_152_u32 => 103, + 120_153_u32 => 104, + 120_154_u32 => 105, + 120_155_u32 => 106, + 120_156_u32 => 107, + 120_157_u32 => 73, + 120_159_u32 => 110, + 120_160_u32 => 111, + 120_161_u32 => 112, + 120_162_u32 => 113, + 120_163_u32 => 114, + 120_164_u32 => 115, + 120_165_u32 => 116, + 120_166_u32 => 117, + 120_167_u32 => 118, + 120_168_u32 => 119, + 120_169_u32 => 120, + 120_170_u32 => 121, + 120_171_u32 => 122, + 120_172_u32 => 65, + 120_173_u32 => 66, + 120_174_u32 => 67, + 120_175_u32 => 68, + 120_176_u32 => 69, + 120_177_u32 => 70, + 120_178_u32 => 71, + 120_179_u32 => 72, + 120_180_u32 => 73, + 120_181_u32 => 74, + 120_182_u32 => 75, + 120_183_u32 => 76, + 120_184_u32 => 77, + 120_185_u32 => 78, + 120_186_u32 => 79, + 120_187_u32 => 80, + 120_188_u32 => 81, + 120_189_u32 => 82, + 120_190_u32 => 83, + 120_191_u32 => 84, + 120_192_u32 => 85, + 120_193_u32 => 86, + 120_194_u32 => 87, + 120_195_u32 => 88, + 120_196_u32 => 89, + 120_197_u32 => 90, + 120_198_u32 => 97, + 120_199_u32 => 98, + 120_200_u32 => 99, + 120_201_u32 => 100, + 120_202_u32 => 101, + 120_203_u32 => 102, + 120_204_u32 => 103, + 120_205_u32 => 104, + 120_206_u32 => 105, + 120_207_u32 => 106, + 120_208_u32 => 107, + 120_209_u32 => 73, + 120_211_u32 => 110, + 120_212_u32 => 111, + 120_213_u32 => 112, + 120_214_u32 => 113, + 120_215_u32 => 114, + 120_216_u32 => 115, + 120_217_u32 => 116, + 120_218_u32 => 117, + 120_219_u32 => 118, + 120_220_u32 => 119, + 120_221_u32 => 120, + 120_222_u32 => 121, + 120_223_u32 => 122, + 120_224_u32 => 65, + 120_225_u32 => 66, + 120_226_u32 => 67, + 120_227_u32 => 68, + 120_228_u32 => 69, + 120_229_u32 => 70, + 120_230_u32 => 71, + 120_231_u32 => 72, + 120_232_u32 => 73, + 120_233_u32 => 74, + 120_234_u32 => 75, + 120_235_u32 => 76, + 120_236_u32 => 77, + 120_237_u32 => 78, + 120_238_u32 => 79, + 120_239_u32 => 80, + 120_240_u32 => 81, + 120_241_u32 => 82, + 120_242_u32 => 83, + 120_243_u32 => 84, + 120_244_u32 => 85, + 120_245_u32 => 86, + 120_246_u32 => 87, + 120_247_u32 => 88, + 120_248_u32 => 89, + 120_249_u32 => 90, + 120_250_u32 => 97, + 120_251_u32 => 98, + 120_252_u32 => 99, + 120_253_u32 => 100, + 120_254_u32 => 101, + 120_255_u32 => 102, + 120_256_u32 => 103, + 120_257_u32 => 104, + 120_258_u32 => 105, + 120_259_u32 => 106, + 120_260_u32 => 107, + 120_261_u32 => 73, + 120_263_u32 => 110, + 120_264_u32 => 111, + 120_265_u32 => 112, + 120_266_u32 => 113, + 120_267_u32 => 114, + 120_268_u32 => 115, + 120_269_u32 => 116, + 120_270_u32 => 117, + 120_271_u32 => 118, + 120_272_u32 => 119, + 120_273_u32 => 120, + 120_274_u32 => 121, + 120_275_u32 => 122, + 120_276_u32 => 65, + 120_277_u32 => 66, + 120_278_u32 => 67, + 120_279_u32 => 68, + 120_280_u32 => 69, + 120_281_u32 => 70, + 120_282_u32 => 71, + 120_283_u32 => 72, + 120_284_u32 => 73, + 120_285_u32 => 74, + 120_286_u32 => 75, + 120_287_u32 => 76, + 120_288_u32 => 77, + 120_289_u32 => 78, + 120_290_u32 => 79, + 120_291_u32 => 80, + 120_292_u32 => 81, + 120_293_u32 => 82, + 120_294_u32 => 83, + 120_295_u32 => 84, + 120_296_u32 => 85, + 120_297_u32 => 86, + 120_298_u32 => 87, + 120_299_u32 => 88, + 120_300_u32 => 89, + 120_301_u32 => 90, + 120_302_u32 => 97, + 120_303_u32 => 98, + 120_304_u32 => 99, + 120_305_u32 => 100, + 120_306_u32 => 101, + 120_307_u32 => 102, + 120_308_u32 => 103, + 120_309_u32 => 104, + 120_310_u32 => 105, + 120_311_u32 => 106, + 120_312_u32 => 107, + 120_313_u32 => 73, + 120_315_u32 => 110, + 120_316_u32 => 111, + 120_317_u32 => 112, + 120_318_u32 => 113, + 120_319_u32 => 114, + 120_320_u32 => 115, + 120_321_u32 => 116, + 120_322_u32 => 117, + 120_323_u32 => 118, + 120_324_u32 => 119, + 120_325_u32 => 120, + 120_326_u32 => 121, + 120_327_u32 => 122, + 120_328_u32 => 65, + 120_329_u32 => 66, + 120_330_u32 => 67, + 120_331_u32 => 68, + 120_332_u32 => 69, + 120_333_u32 => 70, + 120_334_u32 => 71, + 120_335_u32 => 72, + 120_336_u32 => 73, + 120_337_u32 => 74, + 120_338_u32 => 75, + 120_339_u32 => 76, + 120_340_u32 => 77, + 120_341_u32 => 78, + 120_342_u32 => 79, + 120_343_u32 => 80, + 120_344_u32 => 81, + 120_345_u32 => 82, + 120_346_u32 => 83, + 120_347_u32 => 84, + 120_348_u32 => 85, + 120_349_u32 => 86, + 120_350_u32 => 87, + 120_351_u32 => 88, + 120_352_u32 => 89, + 120_353_u32 => 90, + 120_354_u32 => 97, + 120_355_u32 => 98, + 120_356_u32 => 99, + 120_357_u32 => 100, + 120_358_u32 => 101, + 120_359_u32 => 102, + 120_360_u32 => 103, + 120_361_u32 => 104, + 120_362_u32 => 105, + 120_363_u32 => 106, + 120_364_u32 => 107, + 120_365_u32 => 73, + 120_367_u32 => 110, + 120_368_u32 => 111, + 120_369_u32 => 112, + 120_370_u32 => 113, + 120_371_u32 => 114, + 120_372_u32 => 115, + 120_373_u32 => 116, + 120_374_u32 => 117, + 120_375_u32 => 118, + 120_376_u32 => 119, + 120_377_u32 => 120, + 120_378_u32 => 121, + 120_379_u32 => 122, + 120_380_u32 => 65, + 120_381_u32 => 66, + 120_382_u32 => 67, + 120_383_u32 => 68, + 120_384_u32 => 69, + 120_385_u32 => 70, + 120_386_u32 => 71, + 120_387_u32 => 72, + 120_388_u32 => 73, + 120_389_u32 => 74, + 120_390_u32 => 75, + 120_391_u32 => 76, + 120_392_u32 => 77, + 120_393_u32 => 78, + 120_394_u32 => 79, + 120_395_u32 => 80, + 120_396_u32 => 81, + 120_397_u32 => 82, + 120_398_u32 => 83, + 120_399_u32 => 84, + 120_400_u32 => 85, + 120_401_u32 => 86, + 120_402_u32 => 87, + 120_403_u32 => 88, + 120_404_u32 => 89, + 120_405_u32 => 90, + 120_406_u32 => 97, + 120_407_u32 => 98, + 120_408_u32 => 99, + 120_409_u32 => 100, + 120_410_u32 => 101, + 120_411_u32 => 102, + 120_412_u32 => 103, + 120_413_u32 => 104, + 120_414_u32 => 105, + 120_415_u32 => 106, + 120_416_u32 => 107, + 120_417_u32 => 73, + 120_419_u32 => 110, + 120_420_u32 => 111, + 120_421_u32 => 112, + 120_422_u32 => 113, + 120_423_u32 => 114, + 120_424_u32 => 115, + 120_425_u32 => 116, + 120_426_u32 => 117, + 120_427_u32 => 118, + 120_428_u32 => 119, + 120_429_u32 => 120, + 120_430_u32 => 121, + 120_431_u32 => 122, + 120_432_u32 => 65, + 120_433_u32 => 66, + 120_434_u32 => 67, + 120_435_u32 => 68, + 120_436_u32 => 69, + 120_437_u32 => 70, + 120_438_u32 => 71, + 120_439_u32 => 72, + 120_440_u32 => 73, + 120_441_u32 => 74, + 120_442_u32 => 75, + 120_443_u32 => 76, + 120_444_u32 => 77, + 120_445_u32 => 78, + 120_446_u32 => 79, + 120_447_u32 => 80, + 120_448_u32 => 81, + 120_449_u32 => 82, + 120_450_u32 => 83, + 120_451_u32 => 84, + 120_452_u32 => 85, + 120_453_u32 => 86, + 120_454_u32 => 87, + 120_455_u32 => 88, + 120_456_u32 => 89, + 120_457_u32 => 90, + 120_458_u32 => 97, + 120_459_u32 => 98, + 120_460_u32 => 99, + 120_461_u32 => 100, + 120_462_u32 => 101, + 120_463_u32 => 102, + 120_464_u32 => 103, + 120_465_u32 => 104, + 120_466_u32 => 105, + 120_467_u32 => 106, + 120_468_u32 => 107, + 120_469_u32 => 73, + 120_471_u32 => 110, + 120_472_u32 => 111, + 120_473_u32 => 112, + 120_474_u32 => 113, + 120_475_u32 => 114, + 120_476_u32 => 115, + 120_477_u32 => 116, + 120_478_u32 => 117, + 120_479_u32 => 118, + 120_480_u32 => 119, + 120_481_u32 => 120, + 120_482_u32 => 121, + 120_483_u32 => 122, + 120_484_u32 => 105, + 120_488_u32 => 65, + 120_489_u32 => 66, + 120_492_u32 => 69, + 120_493_u32 => 90, + 120_494_u32 => 72, + 120_496_u32 => 73, + 120_497_u32 => 75, + 120_499_u32 => 77, + 120_500_u32 => 78, + 120_502_u32 => 79, + 120_504_u32 => 80, + 120_507_u32 => 84, + 120_508_u32 => 89, + 120_510_u32 => 88, + 120_514_u32 => 97, + 120_516_u32 => 121, + 120_522_u32 => 105, + 120_526_u32 => 118, + 120_528_u32 => 111, + 120_530_u32 => 112, + 120_532_u32 => 111, + 120_534_u32 => 117, + 120_544_u32 => 112, + 120_546_u32 => 65, + 120_547_u32 => 66, + 120_550_u32 => 69, + 120_551_u32 => 90, + 120_552_u32 => 72, + 120_554_u32 => 73, + 120_555_u32 => 75, + 120_557_u32 => 77, + 120_558_u32 => 78, + 120_560_u32 => 79, + 120_562_u32 => 80, + 120_565_u32 => 84, + 120_566_u32 => 89, + 120_568_u32 => 88, + 120_572_u32 => 97, + 120_574_u32 => 121, + 120_580_u32 => 105, + 120_584_u32 => 118, + 120_586_u32 => 111, + 120_588_u32 => 112, + 120_590_u32 => 111, + 120_592_u32 => 117, + 120_602_u32 => 112, + 120_604_u32 => 65, + 120_605_u32 => 66, + 120_608_u32 => 69, + 120_609_u32 => 90, + 120_610_u32 => 72, + 120_612_u32 => 73, + 120_613_u32 => 75, + 120_615_u32 => 77, + 120_616_u32 => 78, + 120_618_u32 => 79, + 120_620_u32 => 80, + 120_623_u32 => 84, + 120_624_u32 => 89, + 120_626_u32 => 88, + 120_630_u32 => 97, + 120_632_u32 => 121, + 120_638_u32 => 105, + 120_642_u32 => 118, + 120_644_u32 => 111, + 120_646_u32 => 112, + 120_648_u32 => 111, + 120_650_u32 => 117, + 120_660_u32 => 112, + 120_662_u32 => 65, + 120_663_u32 => 66, + 120_666_u32 => 69, + 120_667_u32 => 90, + 120_668_u32 => 72, + 120_670_u32 => 73, + 120_671_u32 => 75, + 120_673_u32 => 77, + 120_674_u32 => 78, + 120_676_u32 => 79, + 120_678_u32 => 80, + 120_681_u32 => 84, + 120_682_u32 => 89, + 120_684_u32 => 88, + 120_688_u32 => 97, + 120_690_u32 => 121, + 120_696_u32 => 105, + 120_700_u32 => 118, + 120_702_u32 => 111, + 120_704_u32 => 112, + 120_706_u32 => 111, + 120_708_u32 => 117, + 120_718_u32 => 112, + 120_720_u32 => 65, + 120_721_u32 => 66, + 120_724_u32 => 69, + 120_725_u32 => 90, + 120_726_u32 => 72, + 120_728_u32 => 73, + 120_729_u32 => 75, + 120_731_u32 => 77, + 120_732_u32 => 78, + 120_734_u32 => 79, + 120_736_u32 => 80, + 120_739_u32 => 84, + 120_740_u32 => 89, + 120_742_u32 => 88, + 120_746_u32 => 97, + 120_748_u32 => 121, + 120_754_u32 => 105, + 120_758_u32 => 118, + 120_760_u32 => 111, + 120_762_u32 => 112, + 120_764_u32 => 111, + 120_766_u32 => 117, + 120_776_u32 => 112, + 120_778_u32 => 70, + 120_782_u32 => 79, + 120_783_u32 => 73, + 120_784_u32 => 50, + 120_785_u32 => 51, + 120_786_u32 => 52, + 120_787_u32 => 53, + 120_788_u32 => 54, + 120_789_u32 => 55, + 120_790_u32 => 56, + 120_791_u32 => 57, + 120_792_u32 => 79, + 120_793_u32 => 73, + 120_794_u32 => 50, + 120_795_u32 => 51, + 120_796_u32 => 52, + 120_797_u32 => 53, + 120_798_u32 => 54, + 120_799_u32 => 55, + 120_800_u32 => 56, + 120_801_u32 => 57, + 120_802_u32 => 79, + 120_803_u32 => 73, + 120_804_u32 => 50, + 120_805_u32 => 51, + 120_806_u32 => 52, + 120_807_u32 => 53, + 120_808_u32 => 54, + 120_809_u32 => 55, + 120_810_u32 => 56, + 120_811_u32 => 57, + 120_812_u32 => 79, + 120_813_u32 => 73, + 120_814_u32 => 50, + 120_815_u32 => 51, + 120_816_u32 => 52, + 120_817_u32 => 53, + 120_818_u32 => 54, + 120_819_u32 => 55, + 120_820_u32 => 56, + 120_821_u32 => 57, + 120_822_u32 => 79, + 120_823_u32 => 73, + 120_824_u32 => 50, + 120_825_u32 => 51, + 120_826_u32 => 52, + 120_827_u32 => 53, + 120_828_u32 => 54, + 120_829_u32 => 55, + 120_830_u32 => 56, + 120_831_u32 => 57, + 125_127_u32 => 108, + 125_131_u32 => 56, + 126_464_u32 => 108, + 126_500_u32 => 111, + 126_564_u32 => 111, + 126_592_u32 => 108, + 126_596_u32 => 111, + 128_844_u32 => 67, + 128_872_u32 => 84, + 130_032_u32 => 79, + 130_033_u32 => 73, + 130_034_u32 => 50, + 130_035_u32 => 51, + 130_036_u32 => 52, + 130_037_u32 => 53, + 130_038_u32 => 54, + 130_039_u32 => 55, + 130_040_u32 => 56, + 130_041_u32 => 57, + _ => return None, + }; + Some(result) +} diff --git a/scripts/update_ambiguous_characters.py b/scripts/update_ambiguous_characters.py index cf165af585..bfd6920e2b 100644 --- a/scripts/update_ambiguous_characters.py +++ b/scripts/update_ambiguous_characters.py @@ -9,16 +9,16 @@ CONFUSABLES_RS_PATH = "crates/ruff/src/rules/ruff/rules/confusables.rs" AMBIGUOUS_JSON_URL = "https://raw.githubusercontent.com/hediet/vscode-unicode-data/main/out/ambiguous.json" prelude = """ -/// This file is auto-generated by `scripts/update_ambiguous_characters.py`. -use phf::phf_map; +//! This file is auto-generated by `scripts/update_ambiguous_characters.py`. /// Via: /// See: -#[allow(clippy::unreadable_literal)] -pub(crate) static CONFUSABLES: phf::Map = phf_map! { +pub(crate) fn confusable(c: u32) -> Option { + let result = match c { + """.lstrip() -postlude = """};""" +postlude = """_ => return None, }; Some(result)}""" def get_mapping_data() -> dict: