diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fe3508d..c4fa7fa 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,4 +8,4 @@ jobs: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - run: cargo build - - run: cargo test + - run: cargo test --features=_test-unicode-conformance diff --git a/Cargo.lock b/Cargo.lock index 0efb2fd..b914a74 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,7 +1,350 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bytes" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" + +[[package]] +name = "cc" +version = "1.2.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3a42d84bb6b69d3a8b3eaacf0d88f179e1929695e1ad012b6cf64d9caaa5fd2" +dependencies = [ + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" [[package]] name = "codex" version = "0.1.1" +dependencies = [ + "ureq", +] + +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "flate2" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "getrandom" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "http" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "itoa" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + +[[package]] +name = "libc" +version = "0.2.174" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" + +[[package]] +name = "log" +version = "0.4.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" + +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", +] + +[[package]] +name = "once_cell" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "ring" +version = "0.17.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" +dependencies = [ + "cc", + "cfg-if", + "getrandom", + "libc", + "untrusted", + "windows-sys", +] + +[[package]] +name = "rustls" +version = "0.23.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc" +dependencies = [ + "log", + "once_cell", + "ring", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-pemfile" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" +dependencies = [ + "zeroize", +] + +[[package]] +name = "rustls-webpki" +version = "0.103.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "ureq" +version = "3.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f0fde9bc91026e381155f8c67cb354bcd35260b2f4a29bcc84639f762760c39" +dependencies = [ + "base64", + "flate2", + "log", + "percent-encoding", + "rustls", + "rustls-pemfile", + "rustls-pki-types", + "ureq-proto", + "utf-8", + "webpki-roots 0.26.11", +] + +[[package]] +name = "ureq-proto" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59db78ad1923f2b1be62b6da81fe80b173605ca0d57f85da2e005382adf693f7" +dependencies = [ + "base64", + "http", + "httparse", + "log", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "webpki-roots" +version = "0.26.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" +dependencies = [ + "webpki-roots 1.0.2", +] + +[[package]] +name = "webpki-roots" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" diff --git a/Cargo.toml b/Cargo.toml index c0d0258..5103eb1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,3 +13,7 @@ keywords = ["unicode", "symbols"] [features] default = ["styling"] styling = [] +_test-unicode-conformance = ["ureq"] + +[build-dependencies] +ureq = { version = "3.0.12", optional = true } diff --git a/build.rs b/build.rs index 2ef0bdd..2106372 100644 --- a/build.rs +++ b/build.rs @@ -68,6 +68,24 @@ fn main() { let out = std::env::var_os("OUT_DIR").unwrap(); let dest = Path::new(&out).join("out.rs"); std::fs::write(&dest, buf).unwrap(); + + #[cfg(feature = "_test-unicode-conformance")] + { + let emoji_vs_list = Path::new(&out).join("emoji-variation-sequences.txt"); + if !std::fs::read_to_string(&emoji_vs_list) + .is_ok_and(|text| text.contains("Emoji Version 16.0")) + { + let content = ureq::get( + "https://www.unicode.org/Public/16.0.0/ucd/emoji/emoji-variation-sequences.txt", + ) + .call() + .unwrap() + .body_mut() + .read_to_string() + .unwrap(); + std::fs::write(emoji_vs_list, content).unwrap(); + } + } } /// Processes a single file and turns it into a global module. diff --git a/src/lib.rs b/src/lib.rs index 0455ae7..d33b2d4 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -84,7 +84,8 @@ impl Symbol { /// Each variant is represented by a tuple `(modifiers, value, deprecation)`. pub fn variants( &self, - ) -> impl Iterator, &'static str, Option<&str>)> { + ) -> impl Iterator, &'static str, Option<&'static str>)> + { enum Variants { Single(std::iter::Once<&'static str>), Multi( @@ -125,6 +126,8 @@ include!(concat!(env!("OUT_DIR"), "/out.rs")); mod test { use super::*; use std::collections::BTreeSet; + #[cfg(feature = "_test-unicode-conformance")] + use std::collections::HashSet; #[test] fn all_modules_sorted() { @@ -187,4 +190,156 @@ mod test { assert_eq!(variants, control); } } + + /// https://www.unicode.org/reports/tr51/#def_text_presentation_selector. + const TEXT_PRESENTATION_SELECTOR: char = '\u{FE0E}'; + /// https://www.unicode.org/reports/tr51/#def_emoji_presentation_selector. + const EMOJI_PRESENTATION_SELECTOR: char = '\u{FE0F}'; + + #[test] + fn symbols_are_not_emojis() { + assert!( + are_all_variants_valid( + SYM, + |c| !c.contains(EMOJI_PRESENTATION_SELECTOR), + ) , + "unexpected use of emoji presentation selector (U+FE0F) in `sym` (see list above)", + ) + } + + #[test] + fn emojis_are_not_text() { + assert!( + are_all_variants_valid( + EMOJI, + |c| !c.contains(TEXT_PRESENTATION_SELECTOR), + ) , + "unexpected use of text presentation selector (U+FE0E) in `emoji` (see list above)", + ) + } + + /// Returns the list of presentation sequences defined by Unicode. + /// + /// See: https://www.unicode.org/reports/tr51/#Emoji_Variation_Sequences. + #[cfg(feature = "_test-unicode-conformance")] + fn get_valid_presentation_sequences() -> HashSet { + include_str!(concat!(env!("OUT_DIR"), "/emoji-variation-sequences.txt")) + .lines() + .filter_map(|l| { + let line = l.split('#').next().unwrap_or(l); + (!line.is_empty()).then_some(line) + }) + .map(|line| { + line.split(';') + .next() + .unwrap() + .split_whitespace() + .map(|cp| { + char::from_u32(u32::from_str_radix(cp, 0x10).unwrap()).unwrap() + }) + .collect() + }) + .collect() + } + + #[cfg(feature = "_test-unicode-conformance")] + #[test] + fn no_invalid_presentation_sequence() { + let sequences = get_valid_presentation_sequences(); + assert!( + are_all_variants_valid(ROOT, |c| { + if c.contains(TEXT_PRESENTATION_SELECTOR) + || c.contains(EMOJI_PRESENTATION_SELECTOR) + { + sequences.contains(c) + } else { + true + } + }), + "invalid presentation sequence(s) (see list above)", + ) + } + + #[cfg(feature = "_test-unicode-conformance")] + #[test] + fn symbols_have_text_presentation() { + let require_presentation_selector = get_valid_presentation_sequences() + .into_iter() + .map(|s| s.chars().next().unwrap()) + .collect::>(); + assert!( + are_all_variants_valid(SYM, |c| { + // All emoji variation sequences are exactly 2 codepoints long + // as of Unicode 16.0, so this doesn't miss anything. + !(c.chars().count() == 1 + && require_presentation_selector.contains(&c.chars().next().unwrap())) + }), + "missing text presentation selector(s) (U+FE0E) in `sym` (see list above)", + ) + } + + #[cfg(feature = "_test-unicode-conformance")] + #[test] + fn emojis_have_emoji_presentation() { + let require_presentation_selector = get_valid_presentation_sequences() + .into_iter() + .map(|s| s.chars().next().unwrap()) + .collect::>(); + assert!( + are_all_variants_valid(EMOJI, |c| { + // All emoji variation sequences are exactly 2 codepoints long + // as of Unicode 16.0, so this doesn't miss anything. + !(c.chars().count() == 1 + && require_presentation_selector.contains(&c.chars().next().unwrap())) + }), + "missing emoji presentation selector(s) (U+FE0F) in `emoji` (see list above)", + ) + } + + /// Returns `false` if, and only if, the predicate returned `false` for at least one variant + /// within the module. + /// + /// Prints all variants for which the predicate returns `false`. + fn are_all_variants_valid bool>( + module: Module, + mut predicate: P, + ) -> bool { + let mut all_valid = true; + fn aux bool>( + module: Module, + path: Vec<&'static str>, + all_valid: &mut bool, + predicate: &mut P, + ) { + for (name, binding) in module.iter() { + let mut new_path = path.clone(); + new_path.push(name); + match binding.def { + Def::Symbol(s) => { + for (modifiers, c, _) in s.variants() { + if !predicate(c) { + *all_valid = false; + eprintln!( + "- {}{}{} {} ({})", + new_path.join("."), + if modifiers.is_empty() { "" } else { "." }, + modifiers.as_str(), + c, + c.chars() + .map(|cp| format!("{:04X}", cp as u32)) + .collect::>() + .join(" "), + ) + } + } + } + Def::Module(m) => { + aux(m, new_path, all_valid, predicate); + } + } + } + } + aux(module, Vec::new(), &mut all_valid, &mut predicate); + all_valid + } } diff --git a/src/modules/emoji.txt b/src/modules/emoji.txt index 697b637..4e9acbd 100644 --- a/src/modules/emoji.txt +++ b/src/modules/emoji.txt @@ -3,17 +3,17 @@ abc ๐Ÿ”ค abcd ๐Ÿ”ก ABCD ๐Ÿ”  accordion ๐Ÿช— -aesculapius โš• -airplane โœˆ +aesculapius โš•\u{FE0F} +airplane โœˆ\u{FE0F} .landing ๐Ÿ›ฌ - .small ๐Ÿ›ฉ + .small ๐Ÿ›ฉ\u{FE0F} .takeoff ๐Ÿ›ซ -alembic โš— -alien ๐Ÿ‘ฝ +alembic โš—\u{FE0F} +alien ๐Ÿ‘ฝ\u{FE0F} .monster ๐Ÿ‘พ -ambulance ๐Ÿš‘ +ambulance ๐Ÿš‘\u{FE0F} amphora ๐Ÿบ -anchor โš“ +anchor โš“\u{FE0F} anger ๐Ÿ’ข ant ๐Ÿœ apple @@ -24,37 +24,37 @@ arm .muscle ๐Ÿ’ช .selfie ๐Ÿคณ arrow - .r.filled โžก - .r.hook โ†ช + .r.filled โžก\u{FE0F} + .r.hook โ†ช\u{FE0F} .r.soon ๐Ÿ”œ - .l.filled โฌ… - .l.hook โ†ฉ + .l.filled โฌ…\u{FE0F} + .l.hook โ†ฉ\u{FE0F} .l.back ๐Ÿ”™ .l.end ๐Ÿ”š - .t.filled โฌ† - .t.curve โคด + .t.filled โฌ†\u{FE0F} + .t.curve โคด\u{FE0F} .t.top ๐Ÿ” - .b.filled โฌ‡ - .b.curve โคต - .l.r โ†” + .b.filled โฌ‡\u{FE0F} + .b.curve โคต\u{FE0F} + .l.r โ†”\u{FE0F} .l.r.on ๐Ÿ”› - .t.b โ†• - .bl โ†™ - .br โ†˜ - .tl โ†– - .tr โ†— + .t.b โ†•\u{FE0F} + .bl โ†™\u{FE0F} + .br โ†˜\u{FE0F} + .tl โ†–\u{FE0F} + .tr โ†—\u{FE0F} arrows .cycle ๐Ÿ”„ -ast * - .box โœณ +ast *\u{FE0F} + .box โœณ\u{FE0F} atm ๐Ÿง -atom โš› +atom โš›\u{FE0F} aubergine ๐Ÿ† avocado ๐Ÿฅ‘ axe ๐Ÿช“ baby ๐Ÿ‘ถ .angel ๐Ÿ‘ผ - .box ๐Ÿšผ + .box ๐Ÿšผ\u{FE0F} babybottle ๐Ÿผ backpack ๐ŸŽ’ bacon ๐Ÿฅ“ @@ -65,16 +65,16 @@ baggageclaim ๐Ÿ›„ baguette ๐Ÿฅ– balloon ๐ŸŽˆ ballot - .check โ˜‘ -ballotbox ๐Ÿ—ณ + .check โ˜‘\u{FE0F} +ballotbox ๐Ÿ—ณ\u{FE0F} banana ๐ŸŒ banjo ๐Ÿช• bank ๐Ÿฆ barberpole ๐Ÿ’ˆ -baseball โšพ +baseball โšพ\u{FE0F} basecap ๐Ÿงข basket ๐Ÿงบ -basketball โ›น +basketball โ›น\u{FE0F} .ball ๐Ÿ€ bat ๐Ÿฆ‡ bathtub ๐Ÿ›€ @@ -82,13 +82,13 @@ bathtub ๐Ÿ›€ battery ๐Ÿ”‹ .low ๐Ÿชซ beach - .palm ๐Ÿ - .umbrella ๐Ÿ– + .palm ๐Ÿ\u{FE0F} + .umbrella ๐Ÿ–\u{FE0F} beads ๐Ÿ“ฟ beans ๐Ÿซ˜ bear ๐Ÿป beaver ๐Ÿฆซ -bed ๐Ÿ› +bed ๐Ÿ›\u{FE0F} .person ๐Ÿ›Œ bee ๐Ÿ beer ๐Ÿบ @@ -97,18 +97,18 @@ beet ๐Ÿซœ beetle ๐Ÿชฒ .lady ๐Ÿž bell ๐Ÿ”” - .ding ๐Ÿ›Ž + .ding ๐Ÿ›Ž\u{FE0F} .not ๐Ÿ”• bento ๐Ÿฑ bicyclist ๐Ÿšด .mountain ๐Ÿšต -bike ๐Ÿšฒ +bike ๐Ÿšฒ\u{FE0F} .not ๐Ÿšณ bikini ๐Ÿ‘™ billiards ๐ŸŽฑ -bin ๐Ÿ—‘ -biohazard โ˜ฃ -bird ๐Ÿฆ +bin ๐Ÿ—‘\u{FE0F} +biohazard โ˜ฃ\u{FE0F} +bird ๐Ÿฆ\u{FE0F} bison ๐Ÿฆฌ blood ๐Ÿฉธ blouse ๐Ÿ‘š @@ -116,13 +116,13 @@ blowfish ๐Ÿก blueberries ๐Ÿซ boar ๐Ÿ— boat - .sail โ›ต + .sail โ›ต\u{FE0F} .row ๐Ÿšฃ - .motor ๐Ÿ›ฅ + .motor ๐Ÿ›ฅ\u{FE0F} .speed ๐Ÿšค .canoe ๐Ÿ›ถ bolt ๐Ÿ”ฉ -bomb ๐Ÿ’ฃ +bomb ๐Ÿ’ฃ\u{FE0F} bone ๐Ÿฆด book .red ๐Ÿ“• @@ -132,7 +132,7 @@ book .spiral ๐Ÿ“’ .open ๐Ÿ“– bookmark ๐Ÿ”– -books ๐Ÿ“š +books ๐Ÿ“š\u{FE0F} boomerang ๐Ÿชƒ bordercontrol ๐Ÿ›‚ bouquet ๐Ÿ’ @@ -157,12 +157,12 @@ brightness .low ๐Ÿ”… broccoli ๐Ÿฅฆ broom ๐Ÿงน -brush ๐Ÿ–Œ +brush ๐Ÿ–Œ\u{FE0F} bubble .speech.r ๐Ÿ’ฌ - .speech.l ๐Ÿ—จ + .speech.l ๐Ÿ—จ\u{FE0F} .thought ๐Ÿ’ญ - .anger.r ๐Ÿ—ฏ + .anger.r ๐Ÿ—ฏ\u{FE0F} bubbles ๐Ÿซง bubbletea ๐Ÿง‹ bucket ๐Ÿชฃ @@ -173,7 +173,7 @@ builder ๐Ÿ‘ท burger ๐Ÿ” burrito ๐ŸŒฏ bus ๐ŸšŒ - .front ๐Ÿš + .front ๐Ÿš\u{FE0F} .small ๐Ÿš .stop ๐Ÿš .trolley ๐ŸšŽ @@ -183,7 +183,7 @@ button ๐Ÿ”ฒ .alt ๐Ÿ”ณ .radio ๐Ÿ”˜ cabinet - .file ๐Ÿ—„ + .file ๐Ÿ—„\u{FE0F} cablecar ๐Ÿš  .small ๐Ÿšก cactus ๐ŸŒต @@ -192,30 +192,30 @@ cake ๐ŸŽ‚ .moon ๐Ÿฅฎ .slice ๐Ÿฐ calendar ๐Ÿ“… - .spiral ๐Ÿ—“ + .spiral ๐Ÿ—“\u{FE0F} .tearoff ๐Ÿ“† camel ๐Ÿซ .dromedar ๐Ÿช -camera ๐Ÿ“ท +camera ๐Ÿ“ท\u{FE0F} .flash ๐Ÿ“ธ .movie ๐ŸŽฅ .movie.box ๐ŸŽฆ - .video ๐Ÿ“น -camping ๐Ÿ• + .video ๐Ÿ“น\u{FE0F} +camping ๐Ÿ•\u{FE0F} can ๐Ÿฅซ -candle ๐Ÿ•ฏ +candle ๐Ÿ•ฏ\u{FE0F} candy ๐Ÿฌ cane ๐Ÿฆฏ car ๐Ÿš— - .front ๐Ÿš˜ + .front ๐Ÿš˜\u{FE0F} .pickup ๐Ÿ›ป .police ๐Ÿš“ - .police.front ๐Ÿš” - .racing ๐ŸŽ + .police.front ๐Ÿš”\u{FE0F} + .racing ๐ŸŽ\u{FE0F} .rickshaw ๐Ÿ›บ .suv ๐Ÿš™ card - .credit ๐Ÿ’ณ + .credit ๐Ÿ’ณ\u{FE0F} .id ๐Ÿชช cardindex ๐Ÿ“‡ carrot ๐Ÿฅ• @@ -224,7 +224,7 @@ cassette ๐Ÿ“ผ castle .eu ๐Ÿฐ .jp ๐Ÿฏ -cat ๐Ÿˆ +cat ๐Ÿˆ\u{FE0F} .face ๐Ÿฑ .face.angry ๐Ÿ˜พ .face.cry ๐Ÿ˜ฟ @@ -236,7 +236,7 @@ cat ๐Ÿˆ .face.smile ๐Ÿ˜บ .face.smirk ๐Ÿ˜ผ chain ๐Ÿ”— -chains โ›“ +chains โ›“\u{FE0F} chair ๐Ÿช‘ champagne ๐Ÿพ chart @@ -245,11 +245,11 @@ chart .down ๐Ÿ“‰ .yen.up ๐Ÿ’น checkmark - .heavy โœ” - .box โœ… + .heavy โœ”\u{FE0F} + .box โœ…\u{FE0F} cheese ๐Ÿง€ cherries ๐Ÿ’ -chess โ™Ÿ +chess โ™Ÿ\u{FE0F} chestnut ๐ŸŒฐ chicken ๐Ÿ” .baby ๐Ÿฅ @@ -258,109 +258,109 @@ chicken ๐Ÿ” .leg ๐Ÿ— .male ๐Ÿ“ child ๐Ÿง’ -chipmunk ๐Ÿฟ +chipmunk ๐Ÿฟ\u{FE0F} chocolate ๐Ÿซ chopsticks ๐Ÿฅข -church โ›ช +church โ›ช\u{FE0F} .love ๐Ÿ’’ cigarette ๐Ÿšฌ - .not ๐Ÿšญ + .not ๐Ÿšญ\u{FE0F} circle - .black โšซ + .black โšซ\u{FE0F} .blue ๐Ÿ”ต .brown ๐ŸŸค .green ๐ŸŸข .orange ๐ŸŸ  .purple ๐ŸŸฃ - .white โšช + .white โšช\u{FE0F} .red ๐Ÿ”ด .yellow ๐ŸŸก - .stroked โญ• + .stroked โญ•\u{FE0F} circus ๐ŸŽช -city ๐Ÿ™ +city ๐Ÿ™\u{FE0F} .dusk ๐ŸŒ† .night ๐ŸŒƒ .sunset ๐ŸŒ‡ -clamp ๐Ÿ—œ -clapperboard ๐ŸŽฌ +clamp ๐Ÿ—œ\u{FE0F} +clapperboard ๐ŸŽฌ\u{FE0F} climbing ๐Ÿง— clip ๐Ÿ“Ž -clipboard ๐Ÿ“‹ -clips ๐Ÿ–‡ +clipboard ๐Ÿ“‹\u{FE0F} +clips ๐Ÿ–‡\u{FE0F} clock - .one ๐Ÿ• - .one.thirty ๐Ÿ•œ - .two ๐Ÿ•‘ - .two.thirty ๐Ÿ• - .three ๐Ÿ•’ - .three.thirty ๐Ÿ•ž - .four ๐Ÿ•“ - .four.thirty ๐Ÿ•Ÿ - .five ๐Ÿ•” - .five.thirty ๐Ÿ•  - .six ๐Ÿ•• - .six.thirty ๐Ÿ•ก - .seven ๐Ÿ•– - .seven.thirty ๐Ÿ•ข - .eight ๐Ÿ•— - .eight.thirty ๐Ÿ•ฃ - .nine ๐Ÿ•˜ - .nine.thirty ๐Ÿ•ค - .ten ๐Ÿ•™ - .ten.thirty ๐Ÿ•ฅ - .eleven ๐Ÿ•š - .eleven.thirty ๐Ÿ•ฆ - .twelve ๐Ÿ•› - .twelve.thirty ๐Ÿ•ง - .alarm โฐ - .old ๐Ÿ•ฐ - .timer โฒ -cloud โ˜ + .one ๐Ÿ•\u{FE0F} + .one.thirty ๐Ÿ•œ\u{FE0F} + .two ๐Ÿ•‘\u{FE0F} + .two.thirty ๐Ÿ•\u{FE0F} + .three ๐Ÿ•’\u{FE0F} + .three.thirty ๐Ÿ•ž\u{FE0F} + .four ๐Ÿ•“\u{FE0F} + .four.thirty ๐Ÿ•Ÿ\u{FE0F} + .five ๐Ÿ•”\u{FE0F} + .five.thirty ๐Ÿ• \u{FE0F} + .six ๐Ÿ••\u{FE0F} + .six.thirty ๐Ÿ•ก\u{FE0F} + .seven ๐Ÿ•–\u{FE0F} + .seven.thirty ๐Ÿ•ข\u{FE0F} + .eight ๐Ÿ•—\u{FE0F} + .eight.thirty ๐Ÿ•ฃ\u{FE0F} + .nine ๐Ÿ•˜\u{FE0F} + .nine.thirty ๐Ÿ•ค\u{FE0F} + .ten ๐Ÿ•™\u{FE0F} + .ten.thirty ๐Ÿ•ฅ\u{FE0F} + .eleven ๐Ÿ•š\u{FE0F} + .eleven.thirty ๐Ÿ•ฆ\u{FE0F} + .twelve ๐Ÿ•›\u{FE0F} + .twelve.thirty ๐Ÿ•ง\u{FE0F} + .alarm โฐ\u{FE0F} + .old ๐Ÿ•ฐ\u{FE0F} + .timer โฒ\u{FE0F} +cloud โ˜\u{FE0F} .dust ๐Ÿ’จ - .rain ๐ŸŒง - .snow ๐ŸŒจ - .storm โ›ˆ - .sun โ›… - .sun.hidden ๐ŸŒฅ - .sun.rain ๐ŸŒฆ - .thunder ๐ŸŒฉ + .rain ๐ŸŒง\u{FE0F} + .snow ๐ŸŒจ\u{FE0F} + .storm โ›ˆ\u{FE0F} + .sun โ›…\u{FE0F} + .sun.hidden ๐ŸŒฅ\u{FE0F} + .sun.rain ๐ŸŒฆ\u{FE0F} + .thunder ๐ŸŒฉ\u{FE0F} coat ๐Ÿงฅ .lab ๐Ÿฅผ cockroach ๐Ÿชณ cocktail - .martini ๐Ÿธ + .martini ๐Ÿธ\u{FE0F} .tropical ๐Ÿน coconut ๐Ÿฅฅ -coffee โ˜• -coffin โšฐ +coffee โ˜•\u{FE0F} +coffin โšฐ\u{FE0F} coin ๐Ÿช™ -comet โ˜„ +comet โ˜„\u{FE0F} compass ๐Ÿงญ -computer ๐Ÿ–ฅ -computermouse ๐Ÿ–ฑ +computer ๐Ÿ–ฅ\u{FE0F} +computermouse ๐Ÿ–ฑ\u{FE0F} confetti ๐ŸŽŠ construction ๐Ÿšง -controller ๐ŸŽฎ +controller ๐ŸŽฎ\u{FE0F} cookie ๐Ÿช .fortune ๐Ÿฅ  cooking ๐Ÿณ cool ๐Ÿ†’ -copyright ยฉ +copyright ยฉ\u{FE0F} coral ๐Ÿชธ corn ๐ŸŒฝ -couch ๐Ÿ›‹ +couch ๐Ÿ›‹\u{FE0F} couple ๐Ÿ’‘ cow ๐Ÿ„ .face ๐Ÿฎ crab ๐Ÿฆ€ -crane ๐Ÿ— -crayon ๐Ÿ– +crane ๐Ÿ—\u{FE0F} +crayon ๐Ÿ–\u{FE0F} cricket ๐Ÿฆ— cricketbat ๐Ÿ crocodile ๐ŸŠ croissant ๐Ÿฅ -crossmark โŒ - .box โŽ +crossmark โŒ\u{FE0F} + .box โŽ\u{FE0F} crown ๐Ÿ‘‘ crutch ๐Ÿฉผ crystal ๐Ÿ”ฎ @@ -380,10 +380,10 @@ dancing .women.bunny ๐Ÿ‘ฏ darts ๐ŸŽฏ dash - .wave.double ใ€ฐ + .wave.double ใ€ฐ\u{FE0F} deer ๐ŸฆŒ -desert ๐Ÿœ -detective ๐Ÿ•ต +desert ๐Ÿœ\u{FE0F} +detective ๐Ÿ•ต\u{FE0F} diamond .blue ๐Ÿ”ท .blue.small ๐Ÿ”น @@ -395,13 +395,13 @@ dino .pod ๐Ÿฆ• .rex ๐Ÿฆ– disc - .cd ๐Ÿ’ฟ + .cd ๐Ÿ’ฟ\u{FE0F} .dvd ๐Ÿ“€ .mini ๐Ÿ’ฝ discoball ๐Ÿชฉ diving ๐Ÿคฟ dodo ๐Ÿฆค -dog ๐Ÿ• +dog ๐Ÿ•\u{FE0F} .face ๐Ÿถ .guide ๐Ÿฆฎ .poodle ๐Ÿฉ @@ -411,7 +411,7 @@ donkey ๐Ÿซ donut ๐Ÿฉ door ๐Ÿšช dove - .peace ๐Ÿ•Š + .peace ๐Ÿ•Š\u{FE0F} dragon ๐Ÿ‰ .face ๐Ÿฒ dress ๐Ÿ‘— @@ -424,7 +424,7 @@ drum ๐Ÿฅ duck ๐Ÿฆ† dumpling ๐ŸฅŸ eagle ๐Ÿฆ… -ear ๐Ÿ‘‚ +ear ๐Ÿ‘‚\u{FE0F} .aid ๐Ÿฆป egg ๐Ÿฅš eighteen @@ -433,13 +433,13 @@ elephant ๐Ÿ˜ elevator ๐Ÿ›— elf ๐Ÿง email ๐Ÿ“ง -excl โ— - .white โ• - .double โ€ผ - .quest โ‰ +excl โ—\u{FE0F} + .white โ•\u{FE0F} + .double โ€ผ\u{FE0F} + .quest โ‰\u{FE0F} explosion ๐Ÿ’ฅ extinguisher ๐Ÿงฏ -eye ๐Ÿ‘ +eye ๐Ÿ‘\u{FE0F} eyes ๐Ÿ‘€ face .grin ๐Ÿ˜€ @@ -469,12 +469,12 @@ face .drool ๐Ÿคค .explode ๐Ÿคฏ .eyeroll ๐Ÿ™„ - .friendly โ˜บ + .friendly โ˜บ\u{FE0F} .fear ๐Ÿ˜จ .fear.sweat ๐Ÿ˜ฐ .fever ๐Ÿค’ .flush ๐Ÿ˜ณ - .frown โ˜น + .frown โ˜น\u{FE0F} .frown.slight ๐Ÿ™ .frust ๐Ÿ˜ฃ .goofy ๐Ÿคช @@ -499,7 +499,7 @@ face .monocle ๐Ÿง .nausea ๐Ÿคข .nerd ๐Ÿค“ - .neutral ๐Ÿ˜ + .neutral ๐Ÿ˜\u{FE0F} .open ๐Ÿ˜ƒ .party ๐Ÿฅณ .peek ๐Ÿซฃ @@ -546,38 +546,38 @@ face .wow ๐Ÿ˜ฎ .yawn ๐Ÿฅฑ .zip ๐Ÿค -factory ๐Ÿญ +factory ๐Ÿญ\u{FE0F} fairy ๐Ÿงš faith - .christ โœ - .dharma โ˜ธ + .christ โœ\u{FE0F} + .dharma โ˜ธ\u{FE0F} .khanda ๐Ÿชฏ - .islam โ˜ช - .judaism โœก + .islam โ˜ช\u{FE0F} + .judaism โœก\u{FE0F} .menorah ๐Ÿ•Ž - .om ๐Ÿ•‰ - .orthodox โ˜ฆ - .peace โ˜ฎ + .om ๐Ÿ•‰\u{FE0F} + .orthodox โ˜ฆ\u{FE0F} + .peace โ˜ฎ\u{FE0F} .star.dot ๐Ÿ”ฏ .worship ๐Ÿ› - .yinyang โ˜ฏ + .yinyang โ˜ฏ\u{FE0F} falafel ๐Ÿง† -family ๐Ÿ‘ช +family ๐Ÿ‘ช\u{FE0F} fax ๐Ÿ“  feather ๐Ÿชถ feeding .breast ๐Ÿคฑ fencing ๐Ÿคบ ferriswheel ๐ŸŽก -filebox ๐Ÿ—ƒ -filedividers ๐Ÿ—‚ -film ๐ŸŽž +filebox ๐Ÿ—ƒ\u{FE0F} +filedividers ๐Ÿ—‚\u{FE0F} +film ๐ŸŽž\u{FE0F} finger - .r ๐Ÿ‘‰ - .l ๐Ÿ‘ˆ - .t ๐Ÿ‘† - .t.alt โ˜ - .b ๐Ÿ‘‡ + .r ๐Ÿ‘‰\u{FE0F} + .l ๐Ÿ‘ˆ\u{FE0F} + .t ๐Ÿ‘†\u{FE0F} + .t.alt โ˜\u{FE0F} + .b ๐Ÿ‘‡\u{FE0F} .front ๐Ÿซต .m ๐Ÿ–• fingerprint ๐Ÿซ† @@ -589,26 +589,26 @@ fire ๐Ÿ”ฅ firecracker ๐Ÿงจ fireengine ๐Ÿš’ fireworks ๐ŸŽ† -fish ๐ŸŸ +fish ๐ŸŸ\u{FE0F} .tropical ๐Ÿ  fishing ๐ŸŽฃ fist .front ๐Ÿ‘Š .r ๐Ÿคœ .l ๐Ÿค› - .raised โœŠ + .raised โœŠ\u{FE0F} flag .black ๐Ÿด - .white ๐Ÿณ + .white ๐Ÿณ\u{FE0F} .goal ๐Ÿ - .golf โ›ณ + .golf โ›ณ\u{FE0F} .red ๐Ÿšฉ flags .jp.crossed ๐ŸŽŒ flamingo ๐Ÿฆฉ flashlight ๐Ÿ”ฆ flatbread ๐Ÿซ“ -fleur โšœ +fleur โšœ\u{FE0F} floppy ๐Ÿ’พ flower .hibiscus ๐ŸŒบ @@ -623,24 +623,24 @@ flower .yellow ๐ŸŒผ flute ๐Ÿชˆ fly ๐Ÿชฐ -fog ๐ŸŒซ +fog ๐ŸŒซ\u{FE0F} folder ๐Ÿ“ .open ๐Ÿ“‚ fondue ๐Ÿซ• foot ๐Ÿฆถ -football โšฝ +football โšฝ\u{FE0F} .am ๐Ÿˆ forex ๐Ÿ’ฑ -fountain โ›ฒ +fountain โ›ฒ\u{FE0F} fox ๐ŸฆŠ free ๐Ÿ†“ fries ๐ŸŸ frisbee ๐Ÿฅ frog .face ๐Ÿธ -fuelpump โ›ฝ +fuelpump โ›ฝ\u{FE0F} garlic ๐Ÿง„ -gear โš™ +gear โš™\u{FE0F} gem ๐Ÿ’Ž genie ๐Ÿงž ghost ๐Ÿ‘ป @@ -652,18 +652,18 @@ glass .milk ๐Ÿฅ› .pour ๐Ÿซ— .tumbler ๐Ÿฅƒ -glasses ๐Ÿ‘“ - .sun ๐Ÿ•ถ +glasses ๐Ÿ‘“\u{FE0F} + .sun ๐Ÿ•ถ\u{FE0F} globe - .am ๐ŸŒŽ - .as.au ๐ŸŒ - .eu.af ๐ŸŒ + .am ๐ŸŒŽ\u{FE0F} + .as.au ๐ŸŒ\u{FE0F} + .eu.af ๐ŸŒ\u{FE0F} .meridian ๐ŸŒ gloves ๐Ÿงค goal ๐Ÿฅ… goat ๐Ÿ goggles ๐Ÿฅฝ -golfing ๐ŸŒ +golfing ๐ŸŒ\u{FE0F} goose ๐Ÿชฟ gorilla ๐Ÿฆ grapes ๐Ÿ‡ @@ -674,13 +674,13 @@ gymnastics ๐Ÿคธ haircut ๐Ÿ’‡ hairpick ๐Ÿชฎ hammer ๐Ÿ”จ - .pick โš’ - .wrench ๐Ÿ›  + .pick โš’\u{FE0F} + .wrench ๐Ÿ› \u{FE0F} hamsa ๐Ÿชฌ hamster .face ๐Ÿน hand - .raised โœ‹ + .raised โœ‹\u{FE0F} .raised.alt ๐Ÿคš .r ๐Ÿซฑ .l ๐Ÿซฒ @@ -690,14 +690,14 @@ hand .call ๐Ÿค™ .love ๐ŸคŸ .part ๐Ÿ–– - .peace โœŒ + .peace โœŒ\u{FE0F} .pinch ๐Ÿค .pushing.l ๐Ÿซท .pushing.r ๐Ÿซธ .rock ๐Ÿค˜ - .splay ๐Ÿ– + .splay ๐Ÿ–\u{FE0F} .wave ๐Ÿ‘‹ - .write โœ + .write โœ\u{FE0F} handbag ๐Ÿ‘œ handball ๐Ÿคพ handfan ๐Ÿชญ @@ -714,12 +714,12 @@ hands .raised ๐Ÿ™Œ .shake ๐Ÿค harp ๐Ÿช‰ -hash # +hash #\u{FE0F} hat .ribbon ๐Ÿ‘’ .top ๐ŸŽฉ -headphone ๐ŸŽง -heart โค +headphone ๐ŸŽง\u{FE0F} +heart โค\u{FE0F} .arrow ๐Ÿ’˜ .beat ๐Ÿ’“ .black ๐Ÿ–ค @@ -728,7 +728,7 @@ heart โค .broken ๐Ÿ’” .brown ๐ŸคŽ .double ๐Ÿ’• - .excl โฃ + .excl โฃ\u{FE0F} .gray ๐Ÿฉถ .green ๐Ÿ’š .grow ๐Ÿ’— @@ -746,11 +746,11 @@ hedgehog ๐Ÿฆ” helicopter ๐Ÿš helix ๐Ÿงฌ helmet - .cross โ›‘ + .cross โ›‘\u{FE0F} .military ๐Ÿช– hippo ๐Ÿฆ› hockey ๐Ÿ‘ -hole ๐Ÿ•ณ +hole ๐Ÿ•ณ\u{FE0F} honey ๐Ÿฏ hongbao ๐Ÿงง hook ๐Ÿช @@ -764,13 +764,13 @@ hospital ๐Ÿฅ hotdog ๐ŸŒญ hotel ๐Ÿจ .love ๐Ÿฉ -hotspring โ™จ -hourglass โŒ› - .flow โณ -house ๐Ÿ  - .derelict ๐Ÿš +hotspring โ™จ\u{FE0F} +hourglass โŒ›\u{FE0F} + .flow โณ\u{FE0F} +house ๐Ÿ \u{FE0F} + .derelict ๐Ÿš\u{FE0F} .garden ๐Ÿก - .multiple ๐Ÿ˜ + .multiple ๐Ÿ˜\u{FE0F} hundred ๐Ÿ’ฏ hut ๐Ÿ›– ice ๐ŸงŠ @@ -779,69 +779,69 @@ icecream ๐Ÿจ .soft ๐Ÿฆ icehockey ๐Ÿ’ id ๐Ÿ†” -info โ„น +info โ„น\u{FE0F} izakaya ๐Ÿฎ jar ๐Ÿซ™ jellyfish ๐Ÿชผ jeans ๐Ÿ‘– jigsaw ๐Ÿงฉ -joystick ๐Ÿ•น +joystick ๐Ÿ•น\u{FE0F} juggling ๐Ÿคน juice ๐Ÿงƒ kaaba ๐Ÿ•‹ kadomatsu ๐ŸŽ kangaroo ๐Ÿฆ˜ -gachi ๐Ÿˆท +gachi ๐Ÿˆท\u{FE0F} go ๐Ÿˆด -hi ใŠ™ +hi ใŠ™\u{FE0F} ka ๐Ÿ‰‘ kachi ๐Ÿˆน kara ๐Ÿˆณ kon ๐Ÿˆฒ man ๐Ÿ‘จ - .box ๐Ÿšน + .box ๐Ÿšน\u{FE0F} .crown ๐Ÿคด .guapimao ๐Ÿ‘ฒ - .levitate ๐Ÿ•ด + .levitate ๐Ÿ•ด\u{FE0F} .old ๐Ÿ‘ด .pregnant ๐Ÿซƒ .turban ๐Ÿ‘ณ .tuxedo ๐Ÿคต -muryo ๐Ÿˆš +muryo ๐Ÿˆš\u{FE0F} shin ๐Ÿˆธ -shuku ใŠ— +shuku ใŠ—\u{FE0F} toku ๐Ÿ‰ yo ๐Ÿˆบ -yubi ๐Ÿˆฏ +yubi ๐Ÿˆฏ\u{FE0F} yuryo ๐Ÿˆถ koko ๐Ÿˆ -sa ๐Ÿˆ‚ +sa ๐Ÿˆ‚\u{FE0F} kebab ๐Ÿฅ™ key ๐Ÿ”‘ - .old ๐Ÿ— -keyboard โŒจ + .old ๐Ÿ—\u{FE0F} +keyboard โŒจ\u{FE0F} kiss ๐Ÿ’ kissmark ๐Ÿ’‹ kite ๐Ÿช kiwi ๐Ÿฅ knife ๐Ÿ”ช - .dagger ๐Ÿ—ก + .dagger ๐Ÿ—ก\u{FE0F} knot ๐Ÿชข koala ๐Ÿจ koinobori ๐ŸŽ -label ๐Ÿท +label ๐Ÿท\u{FE0F} lacrosse ๐Ÿฅ ladder ๐Ÿชœ lamp .diya ๐Ÿช” -laptop ๐Ÿ’ป -a ๐Ÿ…ฐ +laptop ๐Ÿ’ป\u{FE0F} +a ๐Ÿ…ฐ\u{FE0F} ab ๐Ÿ†Ž -b ๐Ÿ…ฑ +b ๐Ÿ…ฑ\u{FE0F} cl ๐Ÿ†‘ -o ๐Ÿ…พ +o ๐Ÿ…พ\u{FE0F} leaf - .clover.three โ˜˜ + .clover.three โ˜˜\u{FE0F} .clover.four ๐Ÿ€ .fall ๐Ÿ‚ .herb ๐ŸŒฟ @@ -856,7 +856,7 @@ letter .love ๐Ÿ’Œ liberty ๐Ÿ—ฝ lightbulb ๐Ÿ’ก -lightning โšก +lightning โšก\u{FE0F} lion ๐Ÿฆ lipstick ๐Ÿ’„ litter ๐Ÿšฎ @@ -864,9 +864,9 @@ litter ๐Ÿšฎ lizard ๐ŸฆŽ llama ๐Ÿฆ™ lobster ๐Ÿฆž -lock ๐Ÿ”’ +lock ๐Ÿ”’\u{FE0F} .key ๐Ÿ” - .open ๐Ÿ”“ + .open ๐Ÿ”“\u{FE0F} .pen ๐Ÿ” lollipop ๐Ÿญ lotion ๐Ÿงด @@ -876,24 +876,24 @@ mage ๐Ÿง™ magnet ๐Ÿงฒ magnify .r ๐Ÿ”Ž - .l ๐Ÿ” + .l ๐Ÿ”\u{FE0F} mahjong - .dragon.red ๐Ÿ€„ -mail โœ‰ + .dragon.red ๐Ÿ€„\u{FE0F} +mail โœ‰\u{FE0F} .arrow ๐Ÿ“ฉ mailbox - .closed.empty ๐Ÿ“ช - .closed.full ๐Ÿ“ซ - .open.empty ๐Ÿ“ญ - .open.full ๐Ÿ“ฌ + .closed.empty ๐Ÿ“ช\u{FE0F} + .closed.full ๐Ÿ“ซ\u{FE0F} + .open.empty ๐Ÿ“ญ\u{FE0F} + .open.full ๐Ÿ“ฌ\u{FE0F} mammoth ๐Ÿฆฃ mango ๐Ÿฅญ map - .world ๐Ÿ—บ + .world ๐Ÿ—บ\u{FE0F} .jp ๐Ÿ—พ maracas ๐Ÿช‡ martialarts ๐Ÿฅ‹ -masks ๐ŸŽญ +masks ๐ŸŽญ\u{FE0F} mate ๐Ÿง‰ matryoshka ๐Ÿช† meat ๐Ÿฅฉ @@ -903,21 +903,21 @@ medal .second ๐Ÿฅˆ .third ๐Ÿฅ‰ .sports ๐Ÿ… - .military ๐ŸŽ– + .military ๐ŸŽ–\u{FE0F} megaphone ๐Ÿ“ข .simple ๐Ÿ“ฃ melon ๐Ÿˆ merperson ๐Ÿงœ -metro โ“‚ +metro โ“‚\u{FE0F} microbe ๐Ÿฆ  microphone ๐ŸŽค - .studio ๐ŸŽ™ + .studio ๐ŸŽ™\u{FE0F} microscope ๐Ÿ”ฌ milkyway ๐ŸŒŒ mirror ๐Ÿชž -mixer ๐ŸŽ› +mixer ๐ŸŽ›\u{FE0F} money - .bag ๐Ÿ’ฐ + .bag ๐Ÿ’ฐ\u{FE0F} .dollar ๐Ÿ’ต .euro ๐Ÿ’ถ .pound ๐Ÿ’ท @@ -930,27 +930,27 @@ monkey ๐Ÿ’ .speak.not ๐Ÿ™Š moon .crescent ๐ŸŒ™ - .full ๐ŸŒ• + .full ๐ŸŒ•\u{FE0F} .full.face ๐ŸŒ .new ๐ŸŒ‘ .new.face ๐ŸŒš .wane.one ๐ŸŒ– .wane.two ๐ŸŒ— - .wane.three.face ๐ŸŒœ + .wane.three.face ๐ŸŒœ\u{FE0F} .wane.three ๐ŸŒ˜ .wax.one ๐ŸŒ’ .wax.two ๐ŸŒ“ .wax.two.face ๐ŸŒ› .wax.three ๐ŸŒ” moose ๐ŸซŽ -mortarboard ๐ŸŽ“ +mortarboard ๐ŸŽ“\u{FE0F} mosque ๐Ÿ•Œ mosquito ๐ŸฆŸ -motorcycle ๐Ÿ -motorway ๐Ÿ›ฃ -mountain โ›ฐ +motorcycle ๐Ÿ\u{FE0F} +motorway ๐Ÿ›ฃ\u{FE0F} +mountain โ›ฐ\u{FE0F} .fuji ๐Ÿ—ป - .snow ๐Ÿ” + .snow ๐Ÿ”\u{FE0F} .sunrise ๐ŸŒ„ mouse ๐Ÿ .face ๐Ÿญ @@ -958,7 +958,7 @@ mousetrap ๐Ÿชค mouth ๐Ÿ‘„ .bite ๐Ÿซฆ moyai ๐Ÿ—ฟ -museum ๐Ÿ› +museum ๐Ÿ›\u{FE0F} mushroom ๐Ÿ„ musicalscore ๐ŸŽผ nails @@ -972,21 +972,21 @@ nest .eggs ๐Ÿชบ new ๐Ÿ†• newspaper ๐Ÿ“ฐ - .rolled ๐Ÿ—ž + .rolled ๐Ÿ—ž\u{FE0F} ng ๐Ÿ†– ningyo ๐ŸŽŽ ninja ๐Ÿฅท -noentry โ›” +noentry โ›”\u{FE0F} nose ๐Ÿ‘ƒ notebook ๐Ÿ““ .deco ๐Ÿ“” -notepad ๐Ÿ—’ +notepad ๐Ÿ—’\u{FE0F} notes ๐ŸŽต .triple ๐ŸŽถ numbers ๐Ÿ”ข octopus ๐Ÿ™ office ๐Ÿข -oil ๐Ÿ›ข +oil ๐Ÿ›ข\u{FE0F} ok ๐Ÿ†— olive ๐Ÿซ’ oni ๐Ÿ‘น @@ -996,23 +996,23 @@ otter ๐Ÿฆฆ owl ๐Ÿฆ‰ ox ๐Ÿ‚ oyster ๐Ÿฆช -package ๐Ÿ“ฆ +package ๐Ÿ“ฆ\u{FE0F} paella ๐Ÿฅ˜ page ๐Ÿ“„ .curl ๐Ÿ“ƒ .pencil ๐Ÿ“ -pager ๐Ÿ“Ÿ +pager ๐Ÿ“Ÿ\u{FE0F} pages .tabs ๐Ÿ“‘ -painting ๐Ÿ–ผ +painting ๐Ÿ–ผ\u{FE0F} palette ๐ŸŽจ pancakes ๐Ÿฅž panda ๐Ÿผ parachute ๐Ÿช‚ -park ๐Ÿž -parking ๐Ÿ…ฟ +park ๐Ÿž\u{FE0F} +parking ๐Ÿ…ฟ\u{FE0F} parrot ๐Ÿฆœ -partalteration ใ€ฝ +partalteration ใ€ฝ\u{FE0F} party ๐ŸŽ‰ peach ๐Ÿ‘ peacock ๐Ÿฆš @@ -1022,12 +1022,12 @@ pear ๐Ÿ pedestrian ๐Ÿšถ .not ๐Ÿšท pen - .ball ๐Ÿ–Š - .fountain ๐Ÿ–‹ -pencil โœ + .ball ๐Ÿ–Š\u{FE0F} + .fountain ๐Ÿ–‹\u{FE0F} +pencil โœ\u{FE0F} penguin ๐Ÿง pepper ๐Ÿซ‘ - .hot ๐ŸŒถ + .hot ๐ŸŒถ\u{FE0F} person ๐Ÿง‘ .angry ๐Ÿ™Ž .beard ๐Ÿง” @@ -1053,14 +1053,14 @@ person ๐Ÿง‘ petri ๐Ÿงซ phone ๐Ÿ“ฑ .arrow ๐Ÿ“ฒ - .classic โ˜Ž + .classic โ˜Ž\u{FE0F} .not ๐Ÿ“ต .off ๐Ÿ“ด .receiver ๐Ÿ“ž .signal ๐Ÿ“ถ .vibrate ๐Ÿ“ณ piano ๐ŸŽน -pick โ› +pick โ›\u{FE0F} pie ๐Ÿฅง pig ๐Ÿ– .face ๐Ÿท @@ -1078,23 +1078,23 @@ planet ๐Ÿช plant ๐Ÿชด plaster ๐Ÿฉน plate - .cutlery ๐Ÿฝ + .cutlery ๐Ÿฝ\u{FE0F} playback - .down โฌ - .eject โ - .forward โฉ - .pause โธ - .record โบ + .down โฌ\u{FE0F} + .eject โ\u{FE0F} + .forward โฉ\u{FE0F} + .pause โธ\u{FE0F} + .record โบ\u{FE0F} .repeat ๐Ÿ” .repeat.once ๐Ÿ”‚ .repeat.v ๐Ÿ”ƒ - .restart โฎ - .rewind โช + .restart โฎ\u{FE0F} + .rewind โช\u{FE0F} .shuffle ๐Ÿ”€ - .skip โญ - .stop โน - .toggle โฏ - .up โซ + .skip โญ\u{FE0F} + .stop โน\u{FE0F} + .toggle โฏ\u{FE0F} + .up โซ\u{FE0F} playingcard .flower ๐ŸŽด .joker ๐Ÿƒ @@ -1112,34 +1112,34 @@ pouch ๐Ÿ‘ powerplug ๐Ÿ”Œ present ๐ŸŽ pretzel ๐Ÿฅจ -printer ๐Ÿ–จ +printer ๐Ÿ–จ\u{FE0F} prints .foot ๐Ÿ‘ฃ .paw ๐Ÿพ prohibited ๐Ÿšซ -projector ๐Ÿ“ฝ +projector ๐Ÿ“ฝ\u{FE0F} pumpkin .lantern ๐ŸŽƒ purse ๐Ÿ‘› -quest โ“ - .white โ” +quest โ“\u{FE0F} + .white โ”\u{FE0F} rabbit ๐Ÿ‡ .face ๐Ÿฐ raccoon ๐Ÿฆ -radio ๐Ÿ“ป -radioactive โ˜ข -railway ๐Ÿ›ค +radio ๐Ÿ“ป\u{FE0F} +radioactive โ˜ข\u{FE0F} +railway ๐Ÿ›ค\u{FE0F} rainbow ๐ŸŒˆ ram ๐Ÿ rat ๐Ÿ€ razor ๐Ÿช’ receipt ๐Ÿงพ -recycling โ™ป -reg ยฎ +recycling โ™ป\u{FE0F} +reg ยฎ\u{FE0F} restroom ๐Ÿšป rhino ๐Ÿฆ ribbon ๐ŸŽ€ - .remind ๐ŸŽ— + .remind ๐ŸŽ—\u{FE0F} rice ๐Ÿš .cracker ๐Ÿ˜ .ear ๐ŸŒพ @@ -1150,7 +1150,7 @@ robot ๐Ÿค– rock ๐Ÿชจ rocket ๐Ÿš€ rollercoaster ๐ŸŽข -rosette ๐Ÿต +rosette ๐Ÿต\u{FE0F} rugby ๐Ÿ‰ ruler ๐Ÿ“ .triangle ๐Ÿ“ @@ -1165,13 +1165,13 @@ santa .man ๐ŸŽ… .woman ๐Ÿคถ satdish ๐Ÿ“ก -satellite ๐Ÿ›ฐ +satellite ๐Ÿ›ฐ\u{FE0F} saw ๐Ÿชš saxophone ๐ŸŽท -scales โš– +scales โš–\u{FE0F} scarf ๐Ÿงฃ school ๐Ÿซ -scissors โœ‚ +scissors โœ‚\u{FE0F} scooter ๐Ÿ›ด .motor ๐Ÿ›ต scorpion ๐Ÿฆ‚ @@ -1184,10 +1184,10 @@ shark ๐Ÿฆˆ sheep ๐Ÿ‘ shell .spiral ๐Ÿš -shield ๐Ÿ›ก +shield ๐Ÿ›ก\u{FE0F} ship ๐Ÿšข - .cruise ๐Ÿ›ณ - .ferry โ›ด + .cruise ๐Ÿ›ณ\u{FE0F} + .ferry โ›ด\u{FE0F} shirt .sports ๐ŸŽฝ .t ๐Ÿ‘• @@ -1196,48 +1196,48 @@ shoe ๐Ÿ‘ž .flat ๐Ÿฅฟ .heel ๐Ÿ‘  .hike ๐Ÿฅพ - .ice โ›ธ + .ice โ›ธ\u{FE0F} .roller ๐Ÿ›ผ .sandal.heel ๐Ÿ‘ก .ski ๐ŸŽฟ .sneaker ๐Ÿ‘Ÿ .tall ๐Ÿ‘ข .thong ๐Ÿฉด -shopping ๐Ÿ› +shopping ๐Ÿ›\u{FE0F} shorts ๐Ÿฉณ shoshinsha ๐Ÿ”ฐ shovel ๐Ÿช shower ๐Ÿšฟ shrimp ๐Ÿฆ .fried ๐Ÿค -shrine โ›ฉ +shrine โ›ฉ\u{FE0F} sign .crossing ๐Ÿšธ .stop ๐Ÿ›‘ silhouette ๐Ÿ‘ค .double ๐Ÿ‘ฅ .hug ๐Ÿซ‚ - .speak ๐Ÿ—ฃ + .speak ๐Ÿ—ฃ\u{FE0F} siren ๐Ÿšจ skateboard ๐Ÿ›น skewer .dango ๐Ÿก .oden ๐Ÿข -skiing โ›ท +skiing โ›ท\u{FE0F} skull ๐Ÿ’€ - .bones โ˜  + .bones โ˜ \u{FE0F} skunk ๐Ÿฆจ sled ๐Ÿ›ท slide ๐Ÿ› -slider ๐ŸŽš +slider ๐ŸŽš\u{FE0F} sloth ๐Ÿฆฅ slots ๐ŸŽฐ snail ๐ŸŒ snake ๐Ÿ -snowboarding ๐Ÿ‚ -snowflake โ„ -snowman โ›„ - .snow โ˜ƒ +snowboarding ๐Ÿ‚\u{FE0F} +snowflake โ„\u{FE0F} +snowman โ›„\u{FE0F} + .snow โ˜ƒ\u{FE0F} soap ๐Ÿงผ socks ๐Ÿงฆ softball ๐ŸฅŽ @@ -1245,28 +1245,28 @@ sos ๐Ÿ†˜ soup ๐Ÿฒ spaghetti ๐Ÿ sparkle - .box โ‡ + .box โ‡\u{FE0F} sparkler ๐ŸŽ‡ -sparkles โœจ -speaker ๐Ÿ”ˆ +sparkles โœจ\u{FE0F} +speaker ๐Ÿ”ˆ\u{FE0F} .not ๐Ÿ”‡ .wave ๐Ÿ”‰ .waves ๐Ÿ”Š -spider ๐Ÿ•ท -spiderweb ๐Ÿ•ธ +spider ๐Ÿ•ท\u{FE0F} +spiderweb ๐Ÿ•ธ\u{FE0F} spinach ๐Ÿฅฌ splatter ๐ŸซŸ sponge ๐Ÿงฝ spoon ๐Ÿฅ„ square - .black โฌ› - .black.tiny โ–ช - .black.small โ—พ - .black.medium โ—ผ - .white โฌœ - .white.tiny โ–ซ - .white.small โ—ฝ - .white.medium โ—ป + .black โฌ›\u{FE0F} + .black.tiny โ–ช\u{FE0F} + .black.small โ—พ\u{FE0F} + .black.medium โ—ผ\u{FE0F} + .white โฌœ\u{FE0F} + .white.tiny โ–ซ\u{FE0F} + .white.small โ—ฝ\u{FE0F} + .white.medium โ—ป\u{FE0F} .blue ๐ŸŸฆ .brown ๐ŸŸซ .green ๐ŸŸฉ @@ -1275,10 +1275,10 @@ square .red ๐ŸŸฅ .yellow ๐ŸŸจ squid ๐Ÿฆ‘ -stadium ๐ŸŸ -star โญ +stadium ๐ŸŸ\u{FE0F} +star โญ\u{FE0F} .arc ๐Ÿ’ซ - .box โœด + .box โœด\u{FE0F} .glow ๐ŸŒŸ .shoot ๐ŸŒ  stethoscope ๐Ÿฉบ @@ -1287,22 +1287,22 @@ store .small ๐Ÿช strawberry ๐Ÿ“ suit - .club โ™ฃ - .diamond โ™ฆ - .heart โ™ฅ - .spade โ™  -sun โ˜€ - .cloud ๐ŸŒค + .club โ™ฃ\u{FE0F} + .diamond โ™ฆ\u{FE0F} + .heart โ™ฅ\u{FE0F} + .spade โ™ \u{FE0F} +sun โ˜€\u{FE0F} + .cloud ๐ŸŒค\u{FE0F} .face ๐ŸŒž sunrise ๐ŸŒ… superhero ๐Ÿฆธ supervillain ๐Ÿฆน -surfing ๐Ÿ„ +surfing ๐Ÿ„\u{FE0F} sushi ๐Ÿฃ swan ๐Ÿฆข -swimming ๐ŸŠ +swimming ๐ŸŠ\u{FE0F} swimsuit ๐Ÿฉฑ -swords โš” +swords โš”\u{FE0F} symbols ๐Ÿ”ฃ synagogue ๐Ÿ• syringe ๐Ÿ’‰ @@ -1323,19 +1323,19 @@ temple ๐Ÿ›• ten ๐Ÿ”Ÿ tengu ๐Ÿ‘บ tennis ๐ŸŽพ -tent โ›บ +tent โ›บ\u{FE0F} testtube ๐Ÿงช -thermometer ๐ŸŒก +thermometer ๐ŸŒก\u{FE0F} thread ๐Ÿงต thumb - .up ๐Ÿ‘ - .down ๐Ÿ‘Ž + .up ๐Ÿ‘\u{FE0F} + .down ๐Ÿ‘Ž\u{FE0F} ticket - .event ๐ŸŽŸ + .event ๐ŸŽŸ\u{FE0F} .travel ๐ŸŽซ tiger ๐Ÿ… .face ๐Ÿฏ -tm โ„ข +tm โ„ข\u{FE0F} toilet ๐Ÿšฝ toiletpaper ๐Ÿงป tomato ๐Ÿ… @@ -1344,10 +1344,10 @@ tongue ๐Ÿ‘… toolbox ๐Ÿงฐ tooth ๐Ÿฆท toothbrush ๐Ÿชฅ -tornado ๐ŸŒช +tornado ๐ŸŒช\u{FE0F} tower .tokyo ๐Ÿ—ผ -trackball ๐Ÿ–ฒ +trackball ๐Ÿ–ฒ\u{FE0F} tractor ๐Ÿšœ trafficlight .v ๐Ÿšฆ @@ -1355,7 +1355,7 @@ trafficlight train ๐Ÿš† .car ๐Ÿšƒ .light ๐Ÿšˆ - .metro ๐Ÿš‡ + .metro ๐Ÿš‡\u{FE0F} .mono ๐Ÿš .mountain ๐Ÿšž .speed ๐Ÿš„ @@ -1365,11 +1365,11 @@ train ๐Ÿš† .suspend ๐ŸšŸ .tram ๐ŸšŠ .tram.car ๐Ÿš‹ -transgender โšง +transgender โšง\u{FE0F} tray - .inbox ๐Ÿ“ฅ + .inbox ๐Ÿ“ฅ\u{FE0F} .mail ๐Ÿ“จ - .outbox ๐Ÿ“ค + .outbox ๐Ÿ“ค\u{FE0F} tree .deciduous ๐ŸŒณ .evergreen ๐ŸŒฒ @@ -1377,32 +1377,32 @@ tree .palm ๐ŸŒด .xmas ๐ŸŽ„ triangle - .r โ–ถ - .l โ—€ + .r โ–ถ\u{FE0F} + .l โ—€\u{FE0F} .t ๐Ÿ”ผ .b ๐Ÿ”ฝ .t.red ๐Ÿ”บ .b.red ๐Ÿ”ป trident ๐Ÿ”ฑ troll ๐ŸงŒ -trophy ๐Ÿ† +trophy ๐Ÿ†\u{FE0F} truck ๐Ÿšš .trailer ๐Ÿš› trumpet ๐ŸŽบ tsukimi ๐ŸŽ‘ turkey ๐Ÿฆƒ turtle ๐Ÿข -tv ๐Ÿ“บ +tv ๐Ÿ“บ\u{FE0F} ufo ๐Ÿ›ธ umbrella - .open โ˜‚ + .open โ˜‚\u{FE0F} .closed ๐ŸŒ‚ - .rain โ˜” - .sun โ›ฑ + .rain โ˜”\u{FE0F} + .sun โ›ฑ\u{FE0F} unicorn ๐Ÿฆ„ unknown ๐Ÿฆณ up ๐Ÿ†™ -urn โšฑ +urn โšฑ\u{FE0F} vampire ๐Ÿง› violin ๐ŸŽป volcano ๐ŸŒ‹ @@ -1410,21 +1410,21 @@ volleyball ๐Ÿ vs ๐Ÿ†š waffle ๐Ÿง‡ wand ๐Ÿช„ -warning โš  -watch โŒš - .stop โฑ +warning โš \u{FE0F} +watch โŒš\u{FE0F} + .stop โฑ\u{FE0F} watermelon ๐Ÿ‰ waterpolo ๐Ÿคฝ wave ๐ŸŒŠ wc ๐Ÿšพ -weightlifting ๐Ÿ‹ +weightlifting ๐Ÿ‹\u{FE0F} whale ๐Ÿ‹ .spout ๐Ÿณ wheel ๐Ÿ›ž wheelchair ๐Ÿฆฝ - .box โ™ฟ + .box โ™ฟ\u{FE0F} .motor ๐Ÿฆผ -wind ๐ŸŒฌ +wind ๐ŸŒฌ\u{FE0F} windchime ๐ŸŽ window ๐ŸชŸ wine ๐Ÿท @@ -1432,7 +1432,7 @@ wing ๐Ÿชฝ wireless ๐Ÿ›œ wolf ๐Ÿบ woman ๐Ÿ‘ฉ - .box ๐Ÿšบ + .box ๐Ÿšบ\u{FE0F} .crown ๐Ÿ‘ธ .old ๐Ÿ‘ต .pregnant ๐Ÿคฐ @@ -1445,18 +1445,18 @@ yarn ๐Ÿงถ yoyo ๐Ÿช€ zebra ๐Ÿฆ“ zodiac - .aquarius โ™’ - .aries โ™ˆ - .cancer โ™‹ - .capri โ™‘ - .gemini โ™Š - .leo โ™Œ - .libra โ™Ž - .ophi โ›Ž - .pisces โ™“ - .sagit โ™ - .scorpio โ™ - .taurus โ™‰ - .virgo โ™ + .aquarius โ™’\u{FE0F} + .aries โ™ˆ\u{FE0F} + .cancer โ™‹\u{FE0F} + .capri โ™‘\u{FE0F} + .gemini โ™Š\u{FE0F} + .leo โ™Œ\u{FE0F} + .libra โ™Ž\u{FE0F} + .ophi โ›Ž\u{FE0F} + .pisces โ™“\u{FE0F} + .sagit โ™\u{FE0F} + .scorpio โ™\u{FE0F} + .taurus โ™‰\u{FE0F} + .virgo โ™\u{FE0F} zombie ๐ŸงŸ zzz ๐Ÿ’ค diff --git a/src/modules/sym.txt b/src/modules/sym.txt index f5e08db..d426b67 100644 --- a/src/modules/sym.txt +++ b/src/modules/sym.txt @@ -121,7 +121,7 @@ amp & ast .op โˆ— .op.o โŠ› - .basic * + .basic *\u{FE0E} .low โŽ .double โ‘ .triple โ‚ @@ -159,12 +159,12 @@ dash .em.two โธบ .em.three โธป .fig โ€’ - .wave ใ€œ .colon โˆน .o โŠ @deprecated: `dash.circle` is deprecated, use `dash.o` instead .circle โŠ - .wave.double ใ€ฐ + .wave ใ€œ + .wave.double ใ€ฐ\u{FE0E} dot .op โ‹… .basic \u{2E} @@ -180,16 +180,16 @@ dot .triple \u{20DB} .quad \u{20DC} excl ! - .double โ€ผ + .double โ€ผ\u{FE0E} .inv ยก - .quest โ‰ + .quest โ‰\u{FE0E} quest ? .double โ‡ .excl โˆ .inv ยฟ interrobang โ€ฝ .inv โธ˜ -hash # +hash #\u{FE0E} hyph โ€ .minus \u{2D} .nobreak \u{2011} @@ -630,7 +630,7 @@ perp โŸ‚ earth ๐Ÿœจ .alt โ™ jupiter โ™ƒ -mars โ™‚ +mars โ™‚\u{FE0E} mercury โ˜ฟ neptune โ™† .alt โฏ‰ @@ -638,7 +638,7 @@ saturn โ™„ sun โ˜‰ uranus โ›ข .alt โ™… -venus โ™€ +venus โ™€\u{FE0E} // Miscellaneous Technical. diameter โŒ€ @@ -708,11 +708,11 @@ yuan ยฅ // Miscellaneous. ballot โ˜ .cross โ˜’ - .check โ˜‘ + .check โ˜‘\u{FE0E} .check.heavy ๐Ÿ—น checkmark โœ“ .light ๐Ÿ—ธ - .heavy โœ” + .heavy โœ”\u{FE0E} crossmark โœ— .heavy โœ˜ floral โฆ @@ -726,21 +726,21 @@ cc ๐Ÿ…ญ .public ๐Ÿ…ฎ .sa ๐Ÿ„Ž .zero ๐Ÿ„ -copyright ยฉ +copyright ยฉ\u{FE0E} .sound โ„— copyleft ๐Ÿ„ฏ -trademark โ„ข - .registered ยฎ +trademark โ„ข\u{FE0E} + .registered ยฎ\u{FE0E} .service โ„  maltese โœ  suit - .club.filled โ™ฃ + .club.filled โ™ฃ\u{FE0E} .club.stroked โ™ง - .diamond.filled โ™ฆ + .diamond.filled โ™ฆ\u{FE0E} .diamond.stroked โ™ข - .heart.filled โ™ฅ + .heart.filled โ™ฅ\u{FE0E} .heart.stroked โ™ก - .spade.filled โ™  + .spade.filled โ™ \u{FE0E} .spade.stroked โ™ค // Music. @@ -826,8 +826,8 @@ triangle .stroked.dot โ—ฌ .filled.t โ–ฒ .filled.b โ–ผ - .filled.r โ–ถ - .filled.l โ—€ + .filled.r โ–ถ\u{FE0E} + .filled.l โ—€\u{FE0E} .filled.bl โ—ฃ .filled.br โ—ข .filled.tl โ—ค @@ -838,17 +838,17 @@ triangle .filled.small.l โ—‚ square .stroked โ–ก - .stroked.tiny โ–ซ - .stroked.small โ—ฝ - .stroked.medium โ—ป - .stroked.big โฌœ + .stroked.tiny โ–ซ\u{FE0E} + .stroked.small โ—ฝ\u{FE0E} + .stroked.medium โ—ป\u{FE0E} + .stroked.big โฌœ\u{FE0E} .stroked.dotted โฌš .stroked.rounded โ–ข .filled โ–  - .filled.tiny โ–ช - .filled.small โ—พ - .filled.medium โ—ผ - .filled.big โฌ› + .filled.tiny โ–ช\u{FE0E} + .filled.small โ—พ\u{FE0E} + .filled.medium โ—ผ\u{FE0E} + .filled.big โฌ›\u{FE0E} rect .stroked.h โ–ญ .stroked.v โ–ฏ @@ -898,8 +898,8 @@ arrow .r.double.long.bar โŸพ .r.double.not โ‡ .r.double.struck โคƒ - .r.filled โžก - .r.hook โ†ช + .r.filled โžก\u{FE0E} + .r.hook โ†ช\u{FE0E} .r.long โŸถ .r.long.squiggly โŸฟ .r.loop โ†ฌ @@ -936,8 +936,8 @@ arrow .l.double.long.bar โŸฝ .l.double.not โ‡ .l.double.struck โค‚ - .l.filled โฌ… - .l.hook โ†ฉ + .l.filled โฌ…\u{FE0E} + .l.hook โ†ฉ\u{FE0E} .l.long โŸต .l.long.bar โŸป .l.long.squiggly โฌณ @@ -965,11 +965,11 @@ arrow .l.wave โ†œ .t โ†‘ .t.bar โ†ฅ - .t.curve โคด + .t.curve โคด\u{FE0E} .t.turn โฎ .t.dashed โ‡ก .t.double โ‡‘ - .t.filled โฌ† + .t.filled โฌ†\u{FE0E} .t.quad โŸฐ .t.stop โค’ .t.stroked โ‡ง @@ -979,11 +979,11 @@ arrow .t.twohead โ†Ÿ .b โ†“ .b.bar โ†ง - .b.curve โคต + .b.curve โคต\u{FE0E} .b.turn โฎ .b.dashed โ‡ฃ .b.double โ‡“ - .b.filled โฌ‡ + .b.filled โฌ‡\u{FE0E} .b.quad โŸฑ .b.stop โค“ .b.stroked โ‡ฉ @@ -991,7 +991,7 @@ arrow .b.dstruck โ‡Ÿ .b.triple โค‹ .b.twohead โ†ก - .l.r โ†” + .l.r โ†”\u{FE0E} .l.r.double โ‡” .l.r.double.long โŸบ .l.r.double.not โ‡Ž @@ -1004,26 +1004,26 @@ arrow .l.r.dstruck โ‡ผ .l.r.open โ‡ฟ .l.r.wave โ†ญ - .t.b โ†• + .t.b โ†•\u{FE0E} .t.b.double โ‡• .t.b.filled โฌ .t.b.stroked โ‡ณ - .tr โ†— + .tr โ†—\u{FE0E} .tr.double โ‡— .tr.filled โฌˆ .tr.hook โคค .tr.stroked โฌ€ - .br โ†˜ + .br โ†˜\u{FE0E} .br.double โ‡˜ .br.filled โฌŠ .br.hook โคฅ .br.stroked โฌ‚ - .tl โ†– + .tl โ†–\u{FE0E} .tl.double โ‡– .tl.filled โฌ‰ .tl.hook โคฃ .tl.stroked โฌ - .bl โ†™ + .bl โ†™\u{FE0E} .bl.double โ‡™ .bl.filled โฌ‹ .bl.hook โคฆ @@ -1269,16 +1269,16 @@ errorbar .circle.filled โงณ gender { - female โ™€ + female โ™€\u{FE0E} .double โšข .male โšค intersex โšฅ - male โ™‚ + male โ™‚\u{FE0E} .double โšฃ .female โšค .stroke โšฆ .stroke.t โšจ .stroke.r โšฉ neuter โšฒ - trans โšง + trans โšง\u{FE0E} }