This is an automated email from the git hooks/post-receive script.
richard pushed a commit to branch tor-browser-91.11.0esr-11.5-1 in repository tor-browser.
commit 4c1df013d6a2c76a6e5887a51b7005f5e143e3e4 Author: Richard Pospesel richard@torproject.org AuthorDate: Mon Sep 16 15:25:39 2019 -0700
Bug 31286: Implementation of bridge, proxy, and firewall settings in about:preferences#connection
This patch adds a new about:preferences#connection page which allows modifying bridge, proxy, and firewall settings from within Tor Browser. All of the functionality present in tor-launcher's Network Configuration panel is present:
- Setting built-in bridges - Requesting bridges from BridgeDB via moat - Using user-provided bridges - Configuring SOCKS4, SOCKS5, and HTTP/HTTPS proxies - Setting firewall ports - Viewing and Copying Tor's logs - The Networking Settings in General preferences has been removed
Bug 40774: Update about:preferences page to match new UI designs --- browser/components/moz.build | 1 + browser/components/preferences/main.inc.xhtml | 54 - browser/components/preferences/main.js | 14 - browser/components/preferences/preferences.js | 9 + browser/components/preferences/preferences.xhtml | 6 + .../torpreferences/content/bridgeQrDialog.jsm | 51 + .../torpreferences/content/bridgeQrDialog.xhtml | 23 + .../content/bridgemoji-annotations.json | 8774 ++++++++++++++++++++ .../torpreferences/content/bridgemoji/1f300.svg | 1 + .../torpreferences/content/bridgemoji/1f308.svg | 1 + .../torpreferences/content/bridgemoji/1f30a.svg | 1 + .../torpreferences/content/bridgemoji/1f30b.svg | 1 + .../torpreferences/content/bridgemoji/1f319.svg | 1 + .../torpreferences/content/bridgemoji/1f31f.svg | 1 + .../torpreferences/content/bridgemoji/1f321.svg | 1 + .../torpreferences/content/bridgemoji/1f32d.svg | 1 + .../torpreferences/content/bridgemoji/1f32e.svg | 1 + .../torpreferences/content/bridgemoji/1f332.svg | 1 + .../torpreferences/content/bridgemoji/1f333.svg | 1 + .../torpreferences/content/bridgemoji/1f334.svg | 1 + .../torpreferences/content/bridgemoji/1f335.svg | 1 + .../torpreferences/content/bridgemoji/1f336.svg | 1 + .../torpreferences/content/bridgemoji/1f337.svg | 1 + .../torpreferences/content/bridgemoji/1f339.svg | 1 + .../torpreferences/content/bridgemoji/1f33a.svg | 1 + .../torpreferences/content/bridgemoji/1f33b.svg | 1 + .../torpreferences/content/bridgemoji/1f33d.svg | 1 + .../torpreferences/content/bridgemoji/1f33f.svg | 1 + .../torpreferences/content/bridgemoji/1f341.svg | 1 + .../torpreferences/content/bridgemoji/1f344.svg | 1 + .../torpreferences/content/bridgemoji/1f345.svg | 1 + .../torpreferences/content/bridgemoji/1f346.svg | 1 + .../torpreferences/content/bridgemoji/1f347.svg | 1 + .../torpreferences/content/bridgemoji/1f348.svg | 1 + .../torpreferences/content/bridgemoji/1f349.svg | 1 + .../torpreferences/content/bridgemoji/1f34a.svg | 1 + .../torpreferences/content/bridgemoji/1f34b.svg | 1 + .../torpreferences/content/bridgemoji/1f34c.svg | 1 + .../torpreferences/content/bridgemoji/1f34d.svg | 1 + .../torpreferences/content/bridgemoji/1f34f.svg | 1 + .../torpreferences/content/bridgemoji/1f350.svg | 1 + .../torpreferences/content/bridgemoji/1f351.svg | 1 + .../torpreferences/content/bridgemoji/1f352.svg | 1 + .../torpreferences/content/bridgemoji/1f353.svg | 1 + .../torpreferences/content/bridgemoji/1f354.svg | 1 + .../torpreferences/content/bridgemoji/1f355.svg | 1 + .../torpreferences/content/bridgemoji/1f368.svg | 1 + .../torpreferences/content/bridgemoji/1f369.svg | 1 + .../torpreferences/content/bridgemoji/1f36a.svg | 1 + .../torpreferences/content/bridgemoji/1f36b.svg | 1 + .../torpreferences/content/bridgemoji/1f36c.svg | 1 + .../torpreferences/content/bridgemoji/1f36d.svg | 1 + .../torpreferences/content/bridgemoji/1f37f.svg | 1 + .../torpreferences/content/bridgemoji/1f380.svg | 1 + .../torpreferences/content/bridgemoji/1f381.svg | 1 + .../torpreferences/content/bridgemoji/1f382.svg | 1 + .../torpreferences/content/bridgemoji/1f383.svg | 1 + .../torpreferences/content/bridgemoji/1f388.svg | 1 + .../torpreferences/content/bridgemoji/1f389.svg | 1 + .../torpreferences/content/bridgemoji/1f38f.svg | 1 + .../torpreferences/content/bridgemoji/1f392.svg | 1 + .../torpreferences/content/bridgemoji/1f399.svg | 1 + .../torpreferences/content/bridgemoji/1f39f.svg | 1 + .../torpreferences/content/bridgemoji/1f3a0.svg | 1 + .../torpreferences/content/bridgemoji/1f3a1.svg | 1 + .../torpreferences/content/bridgemoji/1f3a2.svg | 1 + .../torpreferences/content/bridgemoji/1f3a8.svg | 1 + .../torpreferences/content/bridgemoji/1f3ac.svg | 1 + .../torpreferences/content/bridgemoji/1f3af.svg | 1 + .../torpreferences/content/bridgemoji/1f3b2.svg | 1 + .../torpreferences/content/bridgemoji/1f3b6.svg | 1 + .../torpreferences/content/bridgemoji/1f3b7.svg | 1 + .../torpreferences/content/bridgemoji/1f3b8.svg | 1 + .../torpreferences/content/bridgemoji/1f3ba.svg | 1 + .../torpreferences/content/bridgemoji/1f3bb.svg | 1 + .../torpreferences/content/bridgemoji/1f3be.svg | 1 + .../torpreferences/content/bridgemoji/1f3c0.svg | 1 + .../torpreferences/content/bridgemoji/1f3c6.svg | 1 + .../torpreferences/content/bridgemoji/1f3c8.svg | 1 + .../torpreferences/content/bridgemoji/1f3d3.svg | 1 + .../torpreferences/content/bridgemoji/1f3d4.svg | 1 + .../torpreferences/content/bridgemoji/1f3d5.svg | 1 + .../torpreferences/content/bridgemoji/1f3dd.svg | 1 + .../torpreferences/content/bridgemoji/1f3e1.svg | 1 + .../torpreferences/content/bridgemoji/1f3ee.svg | 1 + .../torpreferences/content/bridgemoji/1f3f7.svg | 1 + .../torpreferences/content/bridgemoji/1f3f8.svg | 1 + .../torpreferences/content/bridgemoji/1f3f9.svg | 1 + .../torpreferences/content/bridgemoji/1f40a.svg | 1 + .../torpreferences/content/bridgemoji/1f40c.svg | 1 + .../torpreferences/content/bridgemoji/1f40d.svg | 1 + .../torpreferences/content/bridgemoji/1f417.svg | 1 + .../torpreferences/content/bridgemoji/1f418.svg | 1 + .../torpreferences/content/bridgemoji/1f419.svg | 1 + .../torpreferences/content/bridgemoji/1f41a.svg | 1 + .../torpreferences/content/bridgemoji/1f41b.svg | 1 + .../torpreferences/content/bridgemoji/1f41d.svg | 1 + .../torpreferences/content/bridgemoji/1f41e.svg | 1 + .../torpreferences/content/bridgemoji/1f41f.svg | 1 + .../torpreferences/content/bridgemoji/1f420.svg | 1 + .../torpreferences/content/bridgemoji/1f422.svg | 1 + .../torpreferences/content/bridgemoji/1f425.svg | 1 + .../torpreferences/content/bridgemoji/1f426.svg | 1 + .../torpreferences/content/bridgemoji/1f428.svg | 1 + .../torpreferences/content/bridgemoji/1f42a.svg | 1 + .../torpreferences/content/bridgemoji/1f42c.svg | 1 + .../torpreferences/content/bridgemoji/1f42d.svg | 1 + .../torpreferences/content/bridgemoji/1f42e.svg | 1 + .../torpreferences/content/bridgemoji/1f42f.svg | 1 + .../torpreferences/content/bridgemoji/1f430.svg | 1 + .../torpreferences/content/bridgemoji/1f431.svg | 1 + .../torpreferences/content/bridgemoji/1f432.svg | 1 + .../torpreferences/content/bridgemoji/1f433.svg | 1 + .../torpreferences/content/bridgemoji/1f434.svg | 1 + .../torpreferences/content/bridgemoji/1f435.svg | 1 + .../torpreferences/content/bridgemoji/1f436.svg | 1 + .../torpreferences/content/bridgemoji/1f437.svg | 1 + .../torpreferences/content/bridgemoji/1f43a.svg | 1 + .../torpreferences/content/bridgemoji/1f43b.svg | 1 + .../torpreferences/content/bridgemoji/1f43f.svg | 1 + .../torpreferences/content/bridgemoji/1f441.svg | 1 + .../torpreferences/content/bridgemoji/1f451.svg | 1 + .../torpreferences/content/bridgemoji/1f455.svg | 1 + .../torpreferences/content/bridgemoji/1f457.svg | 1 + .../torpreferences/content/bridgemoji/1f45f.svg | 1 + .../torpreferences/content/bridgemoji/1f47d.svg | 1 + .../torpreferences/content/bridgemoji/1f484.svg | 1 + .../torpreferences/content/bridgemoji/1f488.svg | 1 + .../torpreferences/content/bridgemoji/1f48d.svg | 1 + .../torpreferences/content/bridgemoji/1f48e.svg | 1 + .../torpreferences/content/bridgemoji/1f490.svg | 1 + .../torpreferences/content/bridgemoji/1f4a1.svg | 1 + .../torpreferences/content/bridgemoji/1f4a7.svg | 1 + .../torpreferences/content/bridgemoji/1f4b3.svg | 1 + .../torpreferences/content/bridgemoji/1f4bf.svg | 1 + .../torpreferences/content/bridgemoji/1f4cc.svg | 1 + .../torpreferences/content/bridgemoji/1f4ce.svg | 1 + .../torpreferences/content/bridgemoji/1f4d5.svg | 1 + .../torpreferences/content/bridgemoji/1f4e1.svg | 1 + .../torpreferences/content/bridgemoji/1f4e2.svg | 1 + .../torpreferences/content/bridgemoji/1f4fb.svg | 1 + .../torpreferences/content/bridgemoji/1f50b.svg | 1 + .../torpreferences/content/bridgemoji/1f511.svg | 1 + .../torpreferences/content/bridgemoji/1f525.svg | 1 + .../torpreferences/content/bridgemoji/1f526.svg | 1 + .../torpreferences/content/bridgemoji/1f52c.svg | 1 + .../torpreferences/content/bridgemoji/1f52d.svg | 1 + .../torpreferences/content/bridgemoji/1f52e.svg | 1 + .../torpreferences/content/bridgemoji/1f54a.svg | 1 + .../torpreferences/content/bridgemoji/1f58c.svg | 1 + .../torpreferences/content/bridgemoji/1f58d.svg | 1 + .../torpreferences/content/bridgemoji/1f5ff.svg | 1 + .../torpreferences/content/bridgemoji/1f680.svg | 1 + .../torpreferences/content/bridgemoji/1f681.svg | 1 + .../torpreferences/content/bridgemoji/1f686.svg | 1 + .../torpreferences/content/bridgemoji/1f68b.svg | 1 + .../torpreferences/content/bridgemoji/1f68d.svg | 1 + .../torpreferences/content/bridgemoji/1f695.svg | 1 + .../torpreferences/content/bridgemoji/1f697.svg | 1 + .../torpreferences/content/bridgemoji/1f69a.svg | 1 + .../torpreferences/content/bridgemoji/1f69c.svg | 1 + .../torpreferences/content/bridgemoji/1f6a0.svg | 1 + .../torpreferences/content/bridgemoji/1f6a2.svg | 1 + .../torpreferences/content/bridgemoji/1f6a4.svg | 1 + .../torpreferences/content/bridgemoji/1f6f0.svg | 1 + .../torpreferences/content/bridgemoji/1f6f4.svg | 1 + .../torpreferences/content/bridgemoji/1f6f5.svg | 1 + .../torpreferences/content/bridgemoji/1f6f6.svg | 1 + .../torpreferences/content/bridgemoji/1f6f8.svg | 1 + .../torpreferences/content/bridgemoji/1f6f9.svg | 1 + .../torpreferences/content/bridgemoji/1f6fa.svg | 1 + .../torpreferences/content/bridgemoji/1f6fc.svg | 1 + .../torpreferences/content/bridgemoji/1f916.svg | 1 + .../torpreferences/content/bridgemoji/1f93f.svg | 1 + .../torpreferences/content/bridgemoji/1f941.svg | 1 + .../torpreferences/content/bridgemoji/1f94c.svg | 1 + .../torpreferences/content/bridgemoji/1f94f.svg | 1 + .../torpreferences/content/bridgemoji/1f950.svg | 1 + .../torpreferences/content/bridgemoji/1f951.svg | 1 + .../torpreferences/content/bridgemoji/1f955.svg | 1 + .../torpreferences/content/bridgemoji/1f956.svg | 1 + .../torpreferences/content/bridgemoji/1f95c.svg | 1 + .../torpreferences/content/bridgemoji/1f95d.svg | 1 + .../torpreferences/content/bridgemoji/1f95e.svg | 1 + .../torpreferences/content/bridgemoji/1f965.svg | 1 + .../torpreferences/content/bridgemoji/1f966.svg | 1 + .../torpreferences/content/bridgemoji/1f968.svg | 1 + .../torpreferences/content/bridgemoji/1f96c.svg | 1 + .../torpreferences/content/bridgemoji/1f96d.svg | 1 + .../torpreferences/content/bridgemoji/1f96f.svg | 1 + .../torpreferences/content/bridgemoji/1f980.svg | 1 + .../torpreferences/content/bridgemoji/1f981.svg | 1 + .../torpreferences/content/bridgemoji/1f984.svg | 1 + .../torpreferences/content/bridgemoji/1f986.svg | 1 + .../torpreferences/content/bridgemoji/1f987.svg | 1 + .../torpreferences/content/bridgemoji/1f988.svg | 1 + .../torpreferences/content/bridgemoji/1f989.svg | 1 + .../torpreferences/content/bridgemoji/1f98a.svg | 1 + .../torpreferences/content/bridgemoji/1f98b.svg | 1 + .../torpreferences/content/bridgemoji/1f98c.svg | 1 + .../torpreferences/content/bridgemoji/1f98e.svg | 1 + .../torpreferences/content/bridgemoji/1f98f.svg | 1 + .../torpreferences/content/bridgemoji/1f992.svg | 1 + .../torpreferences/content/bridgemoji/1f993.svg | 1 + .../torpreferences/content/bridgemoji/1f994.svg | 1 + .../torpreferences/content/bridgemoji/1f995.svg | 1 + .../torpreferences/content/bridgemoji/1f998.svg | 1 + .../torpreferences/content/bridgemoji/1f999.svg | 1 + .../torpreferences/content/bridgemoji/1f99a.svg | 1 + .../torpreferences/content/bridgemoji/1f99c.svg | 1 + .../torpreferences/content/bridgemoji/1f99d.svg | 1 + .../torpreferences/content/bridgemoji/1f99e.svg | 1 + .../torpreferences/content/bridgemoji/1f9a3.svg | 1 + .../torpreferences/content/bridgemoji/1f9a4.svg | 1 + .../torpreferences/content/bridgemoji/1f9a5.svg | 1 + .../torpreferences/content/bridgemoji/1f9a6.svg | 1 + .../torpreferences/content/bridgemoji/1f9a7.svg | 1 + .../torpreferences/content/bridgemoji/1f9a9.svg | 1 + .../torpreferences/content/bridgemoji/1f9ad.svg | 1 + .../torpreferences/content/bridgemoji/1f9c1.svg | 1 + .../torpreferences/content/bridgemoji/1f9c3.svg | 1 + .../torpreferences/content/bridgemoji/1f9c5.svg | 1 + .../torpreferences/content/bridgemoji/1f9c7.svg | 1 + .../torpreferences/content/bridgemoji/1f9c9.svg | 1 + .../torpreferences/content/bridgemoji/1f9d9.svg | 1 + .../torpreferences/content/bridgemoji/1f9da.svg | 1 + .../torpreferences/content/bridgemoji/1f9dc.svg | 1 + .../torpreferences/content/bridgemoji/1f9e0.svg | 1 + .../torpreferences/content/bridgemoji/1f9e2.svg | 1 + .../torpreferences/content/bridgemoji/1f9e6.svg | 1 + .../torpreferences/content/bridgemoji/1f9e9.svg | 1 + .../torpreferences/content/bridgemoji/1f9ea.svg | 1 + .../torpreferences/content/bridgemoji/1f9ec.svg | 1 + .../torpreferences/content/bridgemoji/1f9ed.svg | 1 + .../torpreferences/content/bridgemoji/1f9ee.svg | 1 + .../torpreferences/content/bridgemoji/1f9f2.svg | 1 + .../torpreferences/content/bridgemoji/1f9f5.svg | 1 + .../torpreferences/content/bridgemoji/1f9f9.svg | 1 + .../torpreferences/content/bridgemoji/1fa73.svg | 1 + .../torpreferences/content/bridgemoji/1fa80.svg | 1 + .../torpreferences/content/bridgemoji/1fa81.svg | 1 + .../torpreferences/content/bridgemoji/1fa83.svg | 1 + .../torpreferences/content/bridgemoji/1fa90.svg | 1 + .../torpreferences/content/bridgemoji/1fa91.svg | 1 + .../torpreferences/content/bridgemoji/1fa95.svg | 1 + .../torpreferences/content/bridgemoji/1fa97.svg | 1 + .../torpreferences/content/bridgemoji/1fab6.svg | 1 + .../torpreferences/content/bridgemoji/1fad0.svg | 1 + .../torpreferences/content/bridgemoji/1fad2.svg | 1 + .../torpreferences/content/bridgemoji/1fad6.svg | 1 + .../torpreferences/content/bridgemoji/23f0.svg | 1 + .../torpreferences/content/bridgemoji/2600.svg | 1 + .../torpreferences/content/bridgemoji/2602.svg | 1 + .../torpreferences/content/bridgemoji/2604.svg | 1 + .../torpreferences/content/bridgemoji/260e.svg | 1 + .../torpreferences/content/bridgemoji/2693.svg | 1 + .../torpreferences/content/bridgemoji/2696.svg | 1 + .../torpreferences/content/bridgemoji/26bd.svg | 1 + .../torpreferences/content/bridgemoji/26f2.svg | 1 + .../torpreferences/content/bridgemoji/26f5.svg | 1 + .../torpreferences/content/bridgemoji/2708.svg | 1 + .../torpreferences/content/bridgemoji/270f.svg | 1 + .../torpreferences/content/bridgemoji/2728.svg | 1 + .../torpreferences/content/bridgemoji/2744.svg | 1 + .../torpreferences/content/builtinBridgeDialog.jsm | 120 + .../content/builtinBridgeDialog.xhtml | 31 + .../content/connectionCategory.inc.xhtml | 9 + .../torpreferences/content/connectionPane.js | 1150 +++ .../torpreferences/content/connectionPane.xhtml | 195 + .../content/connectionSettingsDialog.jsm | 397 + .../content/connectionSettingsDialog.xhtml | 60 + .../components/torpreferences/content/network.svg | 6 + .../torpreferences/content/provideBridgeDialog.jsm | 75 + .../content/provideBridgeDialog.xhtml | 21 + .../torpreferences/content/requestBridgeDialog.jsm | 211 + .../content/requestBridgeDialog.xhtml | 35 + .../torpreferences/content/torLogDialog.jsm | 84 + .../torpreferences/content/torLogDialog.xhtml | 23 + .../torpreferences/content/torPreferences.css | 684 ++ .../torpreferences/content/torPreferencesIcon.svg | 8 + browser/components/torpreferences/jar.mn | 21 + browser/components/torpreferences/moz.build | 1 + tools/torbrowser/update_bridgemoiji.py | 114 + 283 files changed, 12365 insertions(+), 68 deletions(-)
diff --git a/browser/components/moz.build b/browser/components/moz.build index 1bc09f4093fb7..66de87290bd83 100644 --- a/browser/components/moz.build +++ b/browser/components/moz.build @@ -53,6 +53,7 @@ DIRS += [ "syncedtabs", "uitour", "urlbar", + "torpreferences", "translation", ]
diff --git a/browser/components/preferences/main.inc.xhtml b/browser/components/preferences/main.inc.xhtml index a89b89f723a80..594711e614747 100644 --- a/browser/components/preferences/main.inc.xhtml +++ b/browser/components/preferences/main.inc.xhtml @@ -671,58 +671,4 @@ <label id="cfrFeaturesLearnMore" class="learnMore" data-l10n-id="browsing-cfr-recommendations-learn-more" is="text-link"/> </hbox> </groupbox> - -<hbox id="networkProxyCategory" - class="subcategory" - hidden="true" - data-category="paneGeneral"> - <html:h1 data-l10n-id="network-settings-title"/> -</hbox> - -<!-- Network Settings--> -<groupbox id="connectionGroup" data-category="paneGeneral" hidden="true"> - <label class="search-header" hidden="true"><html:h2 data-l10n-id="network-settings-title"/></label> - - <hbox align="center"> - <hbox align="center" flex="1"> - <description id="connectionSettingsDescription" control="connectionSettings"/> - <spacer width="5"/> - <label id="connectionSettingsLearnMore" class="learnMore" is="text-link" - data-l10n-id="network-proxy-connection-learn-more"> - </label> - <separator orient="vertical"/> - </hbox> - - <!-- Please don't remove the wrapping hbox/vbox/box for these elements. It's used to properly compute the search tooltip position. --> - <hbox> - <button id="connectionSettings" - is="highlightable-button" - class="accessory-button" - data-l10n-id="network-proxy-connection-settings" - searchkeywords="doh trr" - search-l10n-ids=" - connection-window.title, - connection-proxy-option-no.label, - connection-proxy-option-auto.label, - connection-proxy-option-system.label, - connection-proxy-option-manual.label, - connection-proxy-http, - connection-proxy-https, - connection-proxy-http-port, - connection-proxy-socks, - connection-proxy-socks4, - connection-proxy-socks5, - connection-proxy-noproxy, - connection-proxy-noproxy-desc, - connection-proxy-https-sharing.label, - connection-proxy-autotype.label, - connection-proxy-reload.label, - connection-proxy-autologin.label, - connection-proxy-socks-remote-dns.label, - connection-dns-over-https.label, - connection-dns-over-https-url-custom.label, - " /> - </hbox> - </hbox> -</groupbox> </html:template> diff --git a/browser/components/preferences/main.js b/browser/components/preferences/main.js index 2a6ba4a3d8e42..501ba9144a314 100644 --- a/browser/components/preferences/main.js +++ b/browser/components/preferences/main.js @@ -368,15 +368,6 @@ var gMainPane = { }); this.updatePerformanceSettingsBox({ duringChangeEvent: false }); this.displayUseSystemLocale(); - let connectionSettingsLink = document.getElementById( - "connectionSettingsLearnMore" - ); - let connectionSettingsUrl = - Services.urlFormatter.formatURLPref("app.support.baseURL") + - "prefs-connection-settings"; - connectionSettingsLink.setAttribute("href", connectionSettingsUrl); - this.updateProxySettingsUI(); - initializeProxyUI(gMainPane);
if (Services.prefs.getBoolPref("intl.multilingual.enabled")) { gMainPane.initBrowserLocale(); @@ -510,11 +501,6 @@ var gMainPane = { "change", gMainPane.updateHardwareAcceleration.bind(gMainPane) ); - setEventListener( - "connectionSettings", - "command", - gMainPane.showConnections - ); setEventListener( "browserContainersCheckbox", "command", diff --git a/browser/components/preferences/preferences.js b/browser/components/preferences/preferences.js index a3656f827ffc6..5981bcd38fc83 100644 --- a/browser/components/preferences/preferences.js +++ b/browser/components/preferences/preferences.js @@ -13,6 +13,7 @@ /* import-globals-from findInPage.js */ /* import-globals-from ../../base/content/utilityOverlay.js */ /* import-globals-from ../../../toolkit/content/preferencesBindings.js */ +/* import-globals-from ../torpreferences/content/connectionPane.js */
"use strict";
@@ -136,6 +137,14 @@ function init_all() { register_module("paneSync", gSyncPane); } register_module("paneSearchResults", gSearchResultsPane); + if (gConnectionPane.enabled) { + document.getElementById("category-connection").hidden = false; + register_module("paneConnection", gConnectionPane); + } else { + // Remove the pane from the DOM so it doesn't get incorrectly included in search results. + document.getElementById("template-paneConnection").remove(); + } + gSearchResultsPane.init(); gMainPane.preInit();
diff --git a/browser/components/preferences/preferences.xhtml b/browser/components/preferences/preferences.xhtml index 32184867ac179..9ee09581de32a 100644 --- a/browser/components/preferences/preferences.xhtml +++ b/browser/components/preferences/preferences.xhtml @@ -6,12 +6,14 @@ <?xml-stylesheet href="chrome://global/skin/global.css"?>
<?xml-stylesheet href="chrome://global/skin/in-content/common.css"?> +<?xml-stylesheet href="chrome://global/skin/in-content/toggle-button.css"?> <?xml-stylesheet href="chrome://browser/skin/preferences/preferences.css"?> <?xml-stylesheet href="chrome://browser/content/preferences/dialogs/handlers.css"?> <?xml-stylesheet href="chrome://browser/skin/preferences/applications.css"?> <?xml-stylesheet href="chrome://browser/skin/preferences/search.css"?> <?xml-stylesheet href="chrome://browser/skin/preferences/containers.css"?> <?xml-stylesheet href="chrome://browser/skin/preferences/privacy.css"?> +<?xml-stylesheet href="chrome://browser/content/torpreferences/torPreferences.css"?>
<!DOCTYPE html [ <!ENTITY % aboutTorDTD SYSTEM "chrome://torbutton/locale/aboutTor.dtd"> @@ -154,6 +156,9 @@ <image class="category-icon"/> <label class="category-name" flex="1" data-l10n-id="pane-experimental-title"></label> </richlistitem> + +#include ../torpreferences/content/connectionCategory.inc.xhtml + </richlistbox>
<spacer flex="1"/> @@ -207,6 +212,7 @@ #include containers.inc.xhtml #include sync.inc.xhtml #include experimental.inc.xhtml +#include ../torpreferences/content/connectionPane.xhtml </vbox> </vbox> </vbox> diff --git a/browser/components/torpreferences/content/bridgeQrDialog.jsm b/browser/components/torpreferences/content/bridgeQrDialog.jsm new file mode 100644 index 0000000000000..e63347742ea50 --- /dev/null +++ b/browser/components/torpreferences/content/bridgeQrDialog.jsm @@ -0,0 +1,51 @@ +"use strict"; + +var EXPORTED_SYMBOLS = ["BridgeQrDialog"]; + +const { QRCode } = ChromeUtils.import("resource://gre/modules/QRCode.jsm"); + +const { TorStrings } = ChromeUtils.import("resource:///modules/TorStrings.jsm"); + +class BridgeQrDialog { + constructor() { + this._bridgeString = ""; + } + + static get selectors() { + return { + target: "#bridgeQr-target", + }; + } + + _populateXUL(window, dialog) { + dialog.parentElement.setAttribute("title", TorStrings.settings.scanQrTitle); + const target = dialog.querySelector(BridgeQrDialog.selectors.target); + const style = window.getComputedStyle(target); + const width = style.width.substr(0, style.width.length - 2); + const height = style.height.substr(0, style.height.length - 2); + new QRCode(target, { + text: this._bridgeString, + width, + height, + colorDark: style.color, + colorLight: style.backgroundColor, + document: window.document, + }); + } + + init(window, dialog) { + // Defer to later until Firefox has populated the dialog with all our elements + window.setTimeout(() => { + this._populateXUL(window, dialog); + }, 0); + } + + openDialog(gSubDialog, bridgeString) { + this._bridgeString = bridgeString; + gSubDialog.open( + "chrome://browser/content/torpreferences/bridgeQrDialog.xhtml", + { features: "resizable=yes" }, + this + ); + } +} diff --git a/browser/components/torpreferences/content/bridgeQrDialog.xhtml b/browser/components/torpreferences/content/bridgeQrDialog.xhtml new file mode 100644 index 0000000000000..2a49e4c0e7d9e --- /dev/null +++ b/browser/components/torpreferences/content/bridgeQrDialog.xhtml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?xml-stylesheet href="chrome://global/skin/" type="text/css"?> +<?xml-stylesheet href="chrome://browser/skin/preferences/preferences.css"?> +<?xml-stylesheet href="chrome://browser/content/torpreferences/torPreferences.css"?> + +<window type="child" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" + xmlns:html="http://www.w3.org/1999/xhtml%22%3E +<dialog id="bridgeQr-dialog" buttons="accept"> + <html:div id="bridgeQr-container"> + <html:div id="bridgeQr-target"/> + <html:div id="bridgeQr-onionBox"/> + <html:div id="bridgeQr-onion"/> + </html:div> + <script type="application/javascript"><![CDATA[ + "use strict"; + + let dialogObject = window.arguments[0]; + let dialogElement = document.getElementById("bridgeQr-dialog"); + dialogObject.init(window, dialogElement); + ]]></script> +</dialog> +</window> diff --git a/browser/components/torpreferences/content/bridgemoji-annotations.json b/browser/components/torpreferences/content/bridgemoji-annotations.json new file mode 100644 index 0000000000000..2099a47276c11 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji-annotations.json @@ -0,0 +1,8774 @@ +{ + "ar": { + "👽️": "كائن فضائي", + "🤖": "وجه روبوت", + "🧠": "دماغ", + "👁️": "عين", + "🧙": "سحرة", + "🧚": "جنيّة خيالية", + "🧜": "مخلوق بحري بجسد بشري وذيل سمكة", + "🐵": "وجه قرد", + "🦧": "إنسان الغاب", + "🐶": "وجه كلب", + "🐺": "وجه ذئب", + "🦊": "وجه ثعلب", + "🦝": "راكون", + "🐱": "وجه قطة", + "🦁": "وجه أسد", + "🐯": "وجه نمر", + "🐴": "وجه حصان", + "🦄": "وجه أحادي قرن", + "🦓": "حمار وحشي", + "🦌": "غزال", + "🐮": "وجه بقرة", + "🐷": "وجه خنزير", + "🐗": "خنزير بري", + "🐪": "جمل وحيد السنام", + "🦙": "لاما", + "🦒": "زرافة", + "🐘": "فيل", + "🦣": "ماموث", + "🦏": "وحيد القرن", + "🐭": "وجه فأر", + "🐰": "وجه أرنب", + "🐿️": "سنجاب", + "🦔": "قنفد", + "🦇": "خفاش", + "🐻": "وجه دب", + "🐨": "دب كوالا", + "🦥": "كسلان", + "🦦": "قندس", + "🦘": "كنغر", + "🐥": "كتكوت صغير بوجه للأمام", + "🐦️": "طائر", + "🕊️": "حمامة", + "🦆": "بطة", + "🦉": "بومة", + "🦤": "طائر الدودو", + "🪶": "ريشة", + "🦩": "فلامينغو", + "🦚": "طاووس", + "🦜": "ببغاء", + "🐊": "تمساح", + "🐢": "سلحفاة", + "🦎": "سحلية", + "🐍": "ثعبان", + "🐲": "وجه تنين", + "🦕": "ديناصور صوروبودا", + "🐳": "حوت بنافورة", + "🐬": "دولفين", + "🦭": "فقمة", + "🐟️": "سمكة", + "🐠": "سمكة استوائية", + "🦈": "سمكة قرش", + "🐙": "أخطبوط", + "🐚": "صدفة حلزونية", + "🐌": "حلزون", + "🦋": "فراشة", + "🐛": "بق", + "🐝": "نحلة", + "🐞": "دعسوقة", + "💐": "باقة زهور", + "🌹": "وردة", + "🌺": "كركديه", + "🌻": "دوار الشمس", + "🌷": "زهرة التوليب", + "🌲": "شجرة دائمة الخضرة", + "🌳": "شجرة زائلة الخضرة", + "🌴": "نخلة", + "🌵": "صبار", + "🌿": "عشب", + "🍁": "ورقة شجر القيقب", + "🍇": "عنب", + "🍈": "شمام", + "🍉": "بطيخ", + "🍊": "يوسفي", + "🍋": "ليمون", + "🍌": "موز", + "🍍": "أناناس", + "🥭": "مانجو", + "🍏": "تفاح أخضر", + "🍐": "كمثرى", + "🍑": "خوخ", + "🍒": "كرز", + "🍓": "فراولة", + "🫐": "توت برّي", + "🥝": "كيوي", + "🍅": "طماطم", + "🫒": "زيتون", + "🥥": "جوز الهند", + "🥑": "أفوكادو", + "🍆": "باذنجان", + "🥕": "جزر", + "🌽": "ذرة", + "🌶️": "فلفل حار", + "🥬": "خضار ورقي", + "🥦": "بروكولي", + "🧅": "بصل", + "🍄": "عيش الغراب", + "🥜": "فول سوداني", + "🥐": "كرواسون", + "🥖": "الخبز الفرنسي", + "🥨": "بريتزل", + "🥯": "خبز البيغل", + "🥞": "فطائر", + "🧇": "وافل", + "🍔": "همبرغر", + "🍕": "بيتزا", + "🌭": "هوت دوغ", + "🌮": "تاكو", + "🍿": "فشار", + "🦀": "سرطان", + "🦞": "كركند", + "🍨": "آيس كريم", + "🍩": "كعكة محلاة", + "🍪": "كعكة", + "🎂": "كعكة عيد ميلاد", + "🧁": "كعكة صغيرة", + "🍫": "لوح شوكولاتة", + "🍬": "حلوى", + "🍭": "مصاصة", + "🫖": "إبريق شاي", + "🧃": "علبة عصير", + "🧉": "متة", + "🧭": "بوصلة", + "🏔️": "جبل بقمة ثلجية", + "🌋": "بركان", + "🏕️": "تخييم", + "🏝️": "جزيرة صحراوية", + "🏡": "منزل بحديقة", + "⛲️": "نافورة", + "🎠": "حصان الدوامة", + "🎡": "عجلة دوارة", + "🎢": "قطار ملاهي", + "💈": "محل حلاقة", + "🚆": "قطار", + "🚋": "سيارة ترام", + "🚍️": "حافلة مقتربة", + "🚕": "تاكسي", + "🚗": "سيارة", + "🚚": "شاحنة توصيل طلبات", + "🚜": "جرار", + "🛵": "سكوتر بمحرك", + "🛺": "توكتوك", + "🛴": "سكوتر بدون محرك", + "🛹": "لوح التزلج", + "🛼": "حذاء مع عجلات", + "⚓️": "مرساة", + "⛵️": "مركب شراعي", + "🛶": "زورق", + "🚤": "قارب سريع", + "🚢": "سفينة", + "✈️": "طائرة", + "🚁": "هليكوبتر", + "🚠": "قطار جبلي", + "🛰️": "قمر صناعي", + "🚀": "صاروخ", + "🛸": "صحن طائر", + "⏰": "ساعة منبه", + "🌙": "هلال", + "🌡️": "ترمومتر", + "☀️": "شمس", + "🪐": "كوكب داخل حلقة", + "🌟": "نجم ساطع", + "🌀": "عاصفة", + "🌈": "ألوان الطيف", + "☂️": "شمسية", + "❄️": "كتلة ثلج", + "☄️": "مذنّب", + "🔥": "حريق", + "💧": "قطرة", + "🌊": "موجة", + "🎃": "هالوين", + "✨": "ومضات", + "🎈": "بالون", + "🎉": "فرقعة حفلة", + "🎏": "قصاصات ملونة", + "🎀": "شريط", + "🎁": "هدية ملفوفة", + "🎟️": "تذكرتا دخول", + "🏆️": "كأس", + "⚽️": "كرة قدم", + "🏀": "كرة سلة", + "🏈": "كرة قدم أمريكية", + "🎾": "تنس", + "🥏": "قرص طائر", + "🏓": "تنس الطاولة", + "🏸": "تنس الريشة", + "🤿": "قناع غطس", + "🥌": "حجرة لعبة الكرلنغ", + "🎯": "نشان", + "🪀": "يويو", + "🪁": "طائرة ورقية", + "🔮": "كرة كريستال", + "🎲": "زهر", + "🧩": "أحجية الصور المقطوعة", + "🎨": "لوحة ألوان الرسام", + "🧵": "بكرة خيط", + "👕": "تي شيرت", + "🧦": "جورب", + "👗": "فستان", + "🩳": "شورت", + "🎒": "حقيبة مدرسة", + "👟": "حذاء رياضي", + "👑": "تاج", + "🧢": "قبعة رياضية", + "💄": "أحمر شفاه", + "💍": "خاتم", + "💎": "جوهرة", + "📢": "مكبر صوت", + "🎶": "نوتات موسيقية", + "🎙️": "ميكروفون استوديو", + "📻️": "راديو", + "🎷": "ساكسفون", + "🪗": "أكورديون", + "🎸": "غيتار", + "🎺": "آلة نفخ", + "🎻": "كمان", + "🪕": "آلة بانجو", + "🥁": "طبلة", + "☎️": "هاتف أرضي", + "🔋": "بطارية", + "💿️": "سي دي", + "🧮": "معداد", + "🎬️": "كلاكيت", + "💡": "مصباح مضاء", + "🔦": "ضوء فلاش", + "🏮": "فانوس بورق أحمر", + "📕": "كتاب مغلق", + "🏷️": "ملصق", + "💳️": "بطاقة ائتمان", + "✏️": "قلم رصاص", + "🖌️": "فرشاة ألوان", + "🖍️": "قلم شمع ملون", + "📌": "دبوس ضغط", + "📎": "مشبك ورق", + "🔑": "مفتاح", + "🪃": "خذوف مرتد", + "🏹": "قوس وسهم", + "⚖️": "ميزان", + "🧲": "مغناطيس", + "🧪": "أنبوب اختبار", + "🧬": "الحامض النووي", + "🔬": "ميكروسكوب", + "🔭": "تليسكوب", + "📡": "طبق قمر صناعي", + "🪑": "كرسي", + "🧹": "مكنسة", + "🗿": "تمثال" + }, + "ca": { + "👽️": "alienígena", + "🤖": "robot", + "🧠": "cervell", + "👁️": "ull", + "🧙": "mag", + "🧚": "fada", + "🧜": "persona sirena", + "🐵": "cara de mona", + "🦧": "orangutan", + "🐶": "cara de gos", + "🐺": "llop", + "🦊": "guineu", + "🦝": "os rentador", + "🐱": "cara de gat", + "🦁": "cara de lleó", + "🐯": "cara de tigre", + "🐴": "cara de cavall", + "🦄": "unicorn", + "🦓": "zebra", + "🦌": "cérvol", + "🐮": "cara de vaca", + "🐷": "cara de porc", + "🐗": "senglar", + "🐪": "dromedari", + "🦙": "llama", + "🦒": "girafa", + "🐘": "elefant", + "🦣": "mamut", + "🦏": "rinoceront", + "🐭": "cara de ratolí", + "🐰": "cara de conill", + "🐿️": "esquirol", + "🦔": "eriçó", + "🦇": "ratapinyada", + "🐻": "cara d’os", + "🐨": "coala", + "🦥": "peresós", + "🦦": "llúdria", + "🦘": "cangur", + "🐥": "pollet de cara", + "🐦️": "ocell", + "🕊️": "colom", + "🦆": "ànec", + "🦉": "mussol", + "🦤": "dodo", + "🪶": "ploma", + "🦩": "flamenc", + "🦚": "paó", + "🦜": "lloro", + "🐊": "cocodril", + "🐢": "tortuga", + "🦎": "llangardaix", + "🐍": "serp", + "🐲": "cara de drac", + "🦕": "sauròpode", + "🐳": "balena que treu aigua", + "🐬": "dofí", + "🦭": "foca", + "🐟️": "peix", + "🐠": "peix tropical", + "🦈": "tauró", + "🐙": "pop", + "🐚": "cargol de mar", + "🐌": "cargol", + "🦋": "papallona", + "🐛": "eruga", + "🐝": "abella", + "🐞": "marieta", + "💐": "ram de flors", + "🌹": "rosa", + "🌺": "hibisc", + "🌻": "gira-sol", + "🌷": "tulipa", + "🌲": "arbre de fulla perenne", + "🌳": "arbre de fulla caduca", + "🌴": "palmera", + "🌵": "cactus", + "🌿": "herba", + "🍁": "fulla d’auró", + "🍇": "raïm", + "🍈": "meló", + "🍉": "síndria", + "🍊": "mandarina", + "🍋": "llimona", + "🍌": "plàtan", + "🍍": "pinya", + "🥭": "mango", + "🍏": "poma verda", + "🍐": "pera", + "🍑": "préssec", + "🍒": "cireres", + "🍓": "maduixa", + "🫐": "nabius", + "🥝": "kiwi", + "🍅": "tomàquet", + "🫒": "oliva", + "🥥": "coco", + "🥑": "alvocat", + "🍆": "albergínia", + "🥕": "pastanaga", + "🌽": "panotxa", + "🌶️": "bitxo", + "🥬": "fulla verda", + "🥦": "bròcoli", + "🧅": "ceba", + "🍄": "bolet", + "🥜": "cacauets", + "🥐": "croissant", + "🥖": "baguet", + "🥨": "brètzel", + "🥯": "bagel", + "🥞": "creps americanes", + "🧇": "gofra", + "🍔": "hamburguesa", + "🍕": "pizza", + "🌭": "frankfurt", + "🌮": "taco", + "🍿": "crispetes", + "🦀": "cranc", + "🦞": "llagosta", + "🍨": "gelat", + "🍩": "dònut", + "🍪": "galeta", + "🎂": "pastís d’aniversari", + "🧁": "cupcake", + "🍫": "rajola de xocolata", + "🍬": "caramel", + "🍭": "piruleta", + "🫖": "tetera", + "🧃": "bric", + "🧉": "mate", + "🧭": "brúixola", + "🏔️": "muntanya amb neu al cim", + "🌋": "volcà", + "🏕️": "acampada", + "🏝️": "illa deserta", + "🏡": "casa amb jardí", + "⛲️": "font", + "🎠": "cavallets", + "🎡": "roda de fira", + "🎢": "muntanya russa", + "💈": "barberia", + "🚆": "tren", + "🚋": "vagó de tramvia", + "🚍️": "autobús que arriba", + "🚕": "taxi", + "🚗": "automòbil", + "🚚": "camió de repartiment", + "🚜": "tractor", + "🛵": "escúter", + "🛺": "bicitaxi amb motor", + "🛴": "patinet", + "🛹": "monopatí", + "🛼": "patí de rodes", + "⚓️": "àncora", + "⛵️": "veler", + "🛶": "canoa", + "🚤": "llanxa ràpida", + "🚢": "vaixell", + "✈️": "avió", + "🚁": "helicòpter", + "🚠": "telefèric de muntanya", + "🛰️": "satèl·lit", + "🚀": "coet", + "🛸": "plat volador", + "⏰": "despertador", + "🌙": "lluna creixent", + "🌡️": "termòmetre", + "☀️": "sol", + "🪐": "planeta amb anell", + "🌟": "estrella brillant", + "🌀": "cicló", + "🌈": "arc de Sant Martí", + "☂️": "paraigua", + "❄️": "floc de neu", + "☄️": "cometa", + "🔥": "foc", + "💧": "gota", + "🌊": "onada", + "🎃": "carabassa de Halloween", + "✨": "espurnes", + "🎈": "globus", + "🎉": "tub de confeti", + "🎏": "banderins de carpes", + "🎀": "llaç", + "🎁": "regal embolicat", + "🎟️": "bitllet d’entrada", + "🏆️": "trofeu", + "⚽️": "pilota de futbol", + "🏀": "pilota de bàsquet", + "🏈": "pilota de futbol americà", + "🎾": "tennis", + "🥏": "disc volador", + "🏓": "tennis de taula", + "🏸": "bàdminton", + "🤿": "ulleres de busseig", + "🥌": "pedra de cúrling", + "🎯": "dards", + "🪀": "io-io", + "🪁": "estel", + "🔮": "bola de vidre", + "🎲": "daus", + "🧩": "peces de trencaclosques", + "🎨": "paleta d’artista", + "🧵": "fil", + "👕": "samarreta", + "🧦": "mitjons", + "👗": "vestit", + "🩳": "pantalons curts", + "🎒": "motxilla d’escola", + "👟": "sabatilla de córrer", + "👑": "corona", + "🧢": "gorra", + "💄": "pintallavis", + "💍": "anell", + "💎": "gemma", + "📢": "altaveu de megafonia", + "🎶": "notes musicals", + "🎙️": "micròfon d’estudi", + "📻️": "ràdio", + "🎷": "saxofon", + "🪗": "acordió", + "🎸": "guitarra", + "🎺": "trompeta", + "🎻": "violí", + "🪕": "banjo", + "🥁": "tambor", + "☎️": "telèfon", + "🔋": "bateria", + "💿️": "disc òptic", + "🧮": "àbac", + "🎬️": "claqueta", + "💡": "bombeta", + "🔦": "llanterna", + "🏮": "fanal de paper vermell", + "📕": "llibre tancat", + "🏷️": "etiqueta", + "💳️": "targeta de crèdit", + "✏️": "llapis", + "🖌️": "pinzell", + "🖍️": "llapis de color", + "📌": "xinxeta", + "📎": "clip", + "🔑": "clau", + "🪃": "bumerang", + "🏹": "arc i fletxa", + "⚖️": "balança (aparell)", + "🧲": "imant", + "🧪": "tub d’assaig", + "🧬": "adn", + "🔬": "microscopi", + "🔭": "telescopi", + "📡": "antena de satèl·lit", + "🪑": "cadira", + "🧹": "escombra", + "🗿": "moai" + }, + "cs": { + "👽️": "mimozemšťan", + "🤖": "obličej robota", + "🧠": "mozek", + "👁️": "oko", + "🧙": "mág", + "🧚": "víla", + "🧜": "mořská bytost", + "🐵": "hlava opice", + "🦧": "orangutan", + "🐶": "hlava psa", + "🐺": "hlava vlka", + "🦊": "hlava lišky", + "🦝": "mýval", + "🐱": "hlava kočky", + "🦁": "hlava lva", + "🐯": "hlava tygra", + "🐴": "hlava koně", + "🦄": "hlava jednorožce", + "🦓": "zebra", + "🦌": "jelen", + "🐮": "hlava krávy", + "🐷": "hlava prasete", + "🐗": "kanec", + "🐪": "velbloud jednohrbý", + "🦙": "lama", + "🦒": "žirafa", + "🐘": "slon", + "🦣": "mamut", + "🦏": "nosorožec", + "🐭": "hlava myši", + "🐰": "hlava králíka", + "🐿️": "veverka", + "🦔": "ježek", + "🦇": "netopýr", + "🐻": "hlava medvěda", + "🐨": "koala", + "🦥": "lenochod", + "🦦": "vydra", + "🦘": "klokan", + "🐥": "kuřátko zepředu", + "🐦️": "pták", + "🕊️": "holubice", + "🦆": "kachna", + "🦉": "sova", + "🦤": "dodo", + "🪶": "pírko", + "🦩": "plameňák", + "🦚": "páv", + "🦜": "papoušek", + "🐊": "krokodýl", + "🐢": "želva", + "🦎": "ještěrka", + "🐍": "had", + "🐲": "hlava draka", + "🦕": "brontosaurus", + "🐳": "velryba stříkající vodu", + "🐬": "delfín", + "🦭": "tuleň", + "🐟️": "ryba", + "🐠": "tropická ryba", + "🦈": "žralok", + "🐙": "chobotnice", + "🐚": "ulita", + "🐌": "hlemýžď", + "🦋": "motýl", + "🐛": "housenka", + "🐝": "včela", + "🐞": "beruška", + "💐": "kytice", + "🌹": "růže", + "🌺": "ibišek", + "🌻": "slunečnice", + "🌷": "tulipán", + "🌲": "jehličnatý strom", + "🌳": "listnatý strom", + "🌴": "palma", + "🌵": "kaktus", + "🌿": "bylina", + "🍁": "javorový list", + "🍇": "hrozny", + "🍈": "cukrový meloun", + "🍉": "meloun", + "🍊": "mandarinka", + "🍋": "citron", + "🍌": "banán", + "🍍": "ananas", + "🥭": "mango", + "🍏": "zelené jablko", + "🍐": "hruška", + "🍑": "broskev", + "🍒": "třešně", + "🍓": "jahoda", + "🫐": "borůvky", + "🥝": "kiwi", + "🍅": "rajče", + "🫒": "oliva", + "🥥": "kokos", + "🥑": "avokádo", + "🍆": "lilek", + "🥕": "mrkev", + "🌽": "kukuřičný klas", + "🌶️": "feferonka", + "🥬": "salátové listy", + "🥦": "brokolice", + "🧅": "cibule", + "🍄": "houba", + "🥜": "arašídy", + "🥐": "croissant", + "🥖": "bageta", + "🥨": "preclík", + "🥯": "bagel", + "🥞": "palačinky", + "🧇": "vafle", + "🍔": "hamburger", + "🍕": "pizza", + "🌭": "párek v rohlíku", + "🌮": "taco", + "🍿": "popcorn", + "🦀": "krab", + "🦞": "humr", + "🍨": "kopečková zmrzlina", + "🍩": "donut", + "🍪": "koláček", + "🎂": "narozeninový dort", + "🧁": "košíček", + "🍫": "tabulka čokolády", + "🍬": "bonbon", + "🍭": "lízátko", + "🫖": "čajová konvice", + "🧃": "nápoj v krabičce", + "🧉": "maté", + "🧭": "kompas", + "🏔️": "zasněžená hora", + "🌋": "sopka", + "🏕️": "tábor", + "🏝️": "pustý ostrov", + "🏡": "domek se zahradou", + "⛲️": "fontána", + "🎠": "kolotočový kůň", + "🎡": "ruské kolo", + "🎢": "horská dráha", + "💈": "značka holičství", + "🚆": "vlak", + "🚋": "vagón tramvaje", + "🚍️": "přijíždějící autobus", + "🚕": "taxík", + "🚗": "auto", + "🚚": "dodávka", + "🚜": "traktor", + "🛵": "skútr", + "🛺": "autorikša", + "🛴": "koloběžka", + "🛹": "skateboard", + "🛼": "kolečková brusle", + "⚓️": "kotva", + "⛵️": "plachetnice", + "🛶": "kánoe", + "🚤": "motorový člun", + "🚢": "loď", + "✈️": "letadlo", + "🚁": "vrtulník", + "🚠": "horská lanovka", + "🛰️": "satelit", + "🚀": "raketa", + "🛸": "létající talíř", + "⏰": "budík", + "🌙": "srpek měsíce", + "🌡️": "teploměr", + "☀️": "slunce", + "🪐": "planeta s prstencem", + "🌟": "zářící hvězda", + "🌀": "cyklóna", + "🌈": "duha", + "☂️": "deštník", + "❄️": "sněhová vločka", + "☄️": "kometa", + "🔥": "oheň", + "💧": "kapka", + "🌊": "vodní vlna", + "🎃": "dýňová lucerna", + "✨": "jiskry", + "🎈": "balónek", + "🎉": "vystřelovací konfety", + "🎏": "koinobori", + "🎀": "mašle", + "🎁": "zabalený dárek", + "🎟️": "vstupenky", + "🏆️": "trofejní pohár", + "⚽️": "fotbalový míč", + "🏀": "basketbalový míč", + "🏈": "míč na americký fotbal", + "🎾": "tenis", + "🥏": "frisbee", + "🏓": "stolní tenis", + "🏸": "badminton", + "🤿": "potápěčská maska", + "🥌": "curlingový kámen", + "🎯": "přesný zásah do terče", + "🪀": "jojo", + "🪁": "papírový drak", + "🔮": "křišťálová koule", + "🎲": "hrací kostka", + "🧩": "puzzle", + "🎨": "malířská paleta", + "🧵": "cívka nití", + "👕": "tričko", + "🧦": "ponožky", + "👗": "šaty", + "🩳": "šortky", + "🎒": "školní batoh", + "👟": "běžecká bota", + "👑": "koruna", + "🧢": "kšiltovka", + "💄": "rtěnka", + "💍": "prsten", + "💎": "drahokam", + "📢": "tlampač", + "🎶": "noty", + "🎙️": "studiový mikrofon", + "📻️": "rádio", + "🎷": "saxofon", + "🪗": "akordeon", + "🎸": "kytara", + "🎺": "trubka", + "🎻": "housle", + "🪕": "banjo", + "🥁": "buben", + "☎️": "telefon", + "🔋": "baterie", + "💿️": "optický disk", + "🧮": "počitadlo", + "🎬️": "filmová klapka", + "💡": "žárovka", + "🔦": "baterka", + "🏮": "červený lampion", + "📕": "zavřená kniha", + "🏷️": "visačka", + "💳️": "platební karta", + "✏️": "tužka", + "🖌️": "štětec", + "🖍️": "pastelka", + "📌": "připínáček", + "📎": "kancelářská sponka", + "🔑": "klíč", + "🪃": "bumerang", + "🏹": "luk a šíp", + "⚖️": "miskové váhy", + "🧲": "magnet", + "🧪": "zkumavka", + "🧬": "DNA", + "🔬": "mikroskop", + "🔭": "teleskop", + "📡": "satelitní anténa", + "🪑": "židle", + "🧹": "koště", + "🗿": "socha moai" + }, + "da": { + "👽️": "rumvæsen", + "🤖": "robot", + "🧠": "hjerne", + "👁️": "øje", + "🧙": "magiker", + "🧚": "fe", + "🧜": "havvæsen", + "🐵": "abehoved", + "🦧": "orangutang", + "🐶": "hundehoved", + "🐺": "ulvehoved", + "🦊": "rævehoved", + "🦝": "vaskebjørn", + "🐱": "kattehoved", + "🦁": "løvehoved", + "🐯": "tigerhoved", + "🐴": "hestehoved", + "🦄": "enhjørningehoved", + "🦓": "zebra", + "🦌": "hjort", + "🐮": "kohoved", + "🐷": "grisehoved", + "🐗": "vildsvin", + "🐪": "dromedar", + "🦙": "lama", + "🦒": "giraf", + "🐘": "elefant", + "🦣": "mammut", + "🦏": "næsehorn", + "🐭": "musehoved", + "🐰": "kaninhoved", + "🐿️": "jordegern", + "🦔": "pindsvin", + "🦇": "flagermus", + "🐻": "bjørnehoved", + "🐨": "koala", + "🦥": "dovendyr", + "🦦": "odder", + "🦘": "kænguru", + "🐥": "kylling forfra", + "🐦️": "fugl", + "🕊️": "due", + "🦆": "and", + "🦉": "ugle", + "🦤": "dronte", + "🪶": "fjer", + "🦩": "flamingo", + "🦚": "påfugl", + "🦜": "papegøje", + "🐊": "krokodille", + "🐢": "skildpadde", + "🦎": "firben", + "🐍": "slange", + "🐲": "dragehoved", + "🦕": "sauropod", + "🐳": "hval med vandsprøjt", + "🐬": "delfin", + "🦭": "sæl", + "🐟️": "fisk", + "🐠": "tropisk fisk", + "🦈": "haj", + "🐙": "blæksprutte", + "🐚": "konkylie", + "🐌": "snegl", + "🦋": "sommerfugl", + "🐛": "larve", + "🐝": "honningbi", + "🐞": "mariehøne", + "💐": "blomsterbuket", + "🌹": "rose", + "🌺": "hibiscus", + "🌻": "solsikke", + "🌷": "tulipan", + "🌲": "nåletræ", + "🌳": "løvtræ", + "🌴": "palme", + "🌵": "kaktus", + "🌿": "urt", + "🍁": "ahornblad", + "🍇": "vindruer", + "🍈": "melon", + "🍉": "vandmelon", + "🍊": "appelsin", + "🍋": "citron", + "🍌": "banan", + "🍍": "ananas", + "🥭": "mango", + "🍏": "grønt æble", + "🍐": "pære", + "🍑": "fersken", + "🍒": "kirsebær", + "🍓": "jordbær", + "🫐": "blåbær", + "🥝": "kiwifrugt", + "🍅": "tomat", + "🫒": "oliven", + "🥥": "kokosnød", + "🥑": "avokado", + "🍆": "aubergine", + "🥕": "gulerod", + "🌽": "majs", + "🌶️": "chili", + "🥬": "bladgrønt", + "🥦": "broccoli", + "🧅": "løg", + "🍄": "svamp", + "🥜": "jordnødder", + "🥐": "croissant", + "🥖": "flute", + "🥨": "kringle", + "🥯": "bagel", + "🥞": "pandekager", + "🧇": "vaffel", + "🍔": "hamburger", + "🍕": "pizza", + "🌭": "hotdog", + "🌮": "taco", + "🍿": "popcorn", + "🦀": "krabbe", + "🦞": "hummer", + "🍨": "is", + "🍩": "donut", + "🍪": "småkage", + "🎂": "fødselsdagskage", + "🧁": "cupcake", + "🍫": "chokolade", + "🍬": "bolsje", + "🍭": "slikkepind", + "🫖": "tekande", + "🧃": "brik", + "🧉": "mate", + "🧭": "kompas", + "🏔️": "sneklædt bjerg", + "🌋": "vulkan", + "🏕️": "camping", + "🏝️": "øde ø", + "🏡": "hus med have", + "⛲️": "springvand", + "🎠": "karrusel", + "🎡": "pariserhjul", + "🎢": "rutsjebane", + "💈": "barber", + "🚆": "tog", + "🚋": "vogn", + "🚍️": "bus forfra", + "🚕": "taxa", + "🚗": "bil", + "🚚": "lastbil", + "🚜": "traktor", + "🛵": "scooter", + "🛺": "motor-rickshaw", + "🛴": "løbehjul", + "🛹": "skateboard", + "🛼": "rulleskøjte", + "⚓️": "anker", + "⛵️": "sejlbåd", + "🛶": "kano", + "🚤": "speedbåd", + "🚢": "skib", + "✈️": "fly", + "🚁": "helikopter", + "🚠": "kabelbane", + "🛰️": "satellit", + "🚀": "raket", + "🛸": "ufo", + "⏰": "vækkeur", + "🌙": "halvmåne", + "🌡️": "termometer", + "☀️": "sol", + "🪐": "planet med ringe", + "🌟": "blinkende stjerne", + "🌀": "cyklon", + "🌈": "regnbue", + "☂️": "paraply", + "❄️": "snefnug", + "☄️": "komet", + "🔥": "ild", + "💧": "dråbe", + "🌊": "bølge", + "🎃": "græskarmand", + "✨": "stjerner", + "🎈": "ballon", + "🎉": "bordbombe", + "🎏": "karpevimpel", + "🎀": "sløjfe", + "🎁": "gave", + "🎟️": "adgangsbillet", + "🏆️": "pokal", + "⚽️": "fodbold", + "🏀": "basketball", + "🏈": "amerikansk fodbold", + "🎾": "tennis", + "🥏": "frisbee", + "🏓": "bordtennis", + "🏸": "badminton", + "🤿": "dykkermaske", + "🥌": "curlingsten", + "🎯": "pletskud", + "🪀": "yoyo", + "🪁": "legetøjsdrage", + "🔮": "krystalkugle", + "🎲": "terning", + "🧩": "brik til puslespil", + "🎨": "palet", + "🧵": "tråd", + "👕": "T-shirt", + "🧦": "sokker", + "👗": "kjole", + "🩳": "shorts", + "🎒": "rygsæk", + "👟": "løbesko", + "👑": "krone", + "🧢": "kasket", + "💄": "læbestift", + "💍": "ring", + "💎": "ædelsten", + "📢": "elektrisk megafon", + "🎶": "noder", + "🎙️": "studiemikrofon", + "📻️": "radio", + "🎷": "saxofon", + "🪗": "akkordeon", + "🎸": "guitar", + "🎺": "trompet", + "🎻": "violin", + "🪕": "banjo", + "🥁": "tromme", + "☎️": "telefon", + "🔋": "batteri", + "💿️": "cd", + "🧮": "kugleramme", + "🎬️": "klaptræ", + "💡": "elpære", + "🔦": "lommelygte", + "🏮": "papirlanterne", + "📕": "lukket bog", + "🏷️": "mærkat", + "💳️": "kreditkort", + "✏️": "blyant", + "🖌️": "malerpensel", + "🖍️": "farvekridt", + "📌": "tegnestift", + "📎": "papirclips", + "🔑": "nøgle", + "🪃": "boomerang", + "🏹": "bue og pil", + "⚖️": "vægt", + "🧲": "magnet", + "🧪": "reagensglas", + "🧬": "dna", + "🔬": "mikroskop", + "🔭": "teleskop", + "📡": "parabolantenne", + "🪑": "stol", + "🧹": "kost", + "🗿": "statue" + }, + "de": { + "👽️": "Außerirdischer", + "🤖": "Roboter", + "🧠": "Gehirn", + "👁️": "Auge", + "🧙": "Magier(in)", + "🧚": "Märchenfee", + "🧜": "Wassermensch", + "🐵": "Affengesicht", + "🦧": "Orang-Utan", + "🐶": "Hundegesicht", + "🐺": "Wolf", + "🦊": "Fuchs", + "🦝": "Waschbär", + "🐱": "Katzengesicht", + "🦁": "Löwe", + "🐯": "Tigergesicht", + "🐴": "Pferdegesicht", + "🦄": "Einhorn", + "🦓": "Zebra", + "🦌": "Hirsch", + "🐮": "Kuhgesicht", + "🐷": "Schweinegesicht", + "🐗": "Wildschwein", + "🐪": "Dromedar", + "🦙": "Lama", + "🦒": "Giraffe", + "🐘": "Elefant", + "🦣": "Mammut", + "🦏": "Nashorn", + "🐭": "Mäusegesicht", + "🐰": "Hasengesicht", + "🐿️": "Streifenhörnchen", + "🦔": "Igel", + "🦇": "Fledermaus", + "🐻": "Bär", + "🐨": "Koala", + "🦥": "Faultier", + "🦦": "Otter", + "🦘": "Känguru", + "🐥": "Küken von vorne", + "🐦️": "Vogel", + "🕊️": "Taube", + "🦆": "Ente", + "🦉": "Eule", + "🦤": "Dodo", + "🪶": "Feder", + "🦩": "Flamingo", + "🦚": "Pfau", + "🦜": "Papagei", + "🐊": "Krokodil", + "🐢": "Schildkröte", + "🦎": "Eidechse", + "🐍": "Schlange", + "🐲": "Drachengesicht", + "🦕": "Sauropode", + "🐳": "blasender Wal", + "🐬": "Delfin", + "🦭": "Seehund", + "🐟️": "Fisch", + "🐠": "Tropenfisch", + "🦈": "Hai", + "🐙": "Oktopus", + "🐚": "Schneckenhaus", + "🐌": "Schnecke", + "🦋": "Schmetterling", + "🐛": "Raupe", + "🐝": "Biene", + "🐞": "Marienkäfer", + "💐": "Blumenstrauß", + "🌹": "Rose", + "🌺": "Hibiskus", + "🌻": "Sonnenblume", + "🌷": "Tulpe", + "🌲": "Nadelbaum", + "🌳": "Laubbaum", + "🌴": "Palme", + "🌵": "Kaktus", + "🌿": "Kräuter", + "🍁": "Ahornblatt", + "🍇": "Trauben", + "🍈": "Honigmelone", + "🍉": "Wassermelone", + "🍊": "Mandarine", + "🍋": "Zitrone", + "🍌": "Banane", + "🍍": "Ananas", + "🥭": "Mango", + "🍏": "grüner Apfel", + "🍐": "Birne", + "🍑": "Pfirsich", + "🍒": "Kirschen", + "🍓": "Erdbeere", + "🫐": "Blaubeeren", + "🥝": "Kiwi", + "🍅": "Tomate", + "🫒": "Olive", + "🥥": "Kokosnuss", + "🥑": "Avocado", + "🍆": "Aubergine", + "🥕": "Karotte", + "🌽": "Maiskolben", + "🌶️": "Peperoni", + "🥬": "Blattgemüse", + "🥦": "Brokkoli", + "🧅": "Zwiebel", + "🍄": "Fliegenpilz", + "🥜": "Erdnuss", + "🥐": "Croissant", + "🥖": "Baguette", + "🥨": "Brezel", + "🥯": "Bagel", + "🥞": "Pfannkuchen", + "🧇": "Waffel", + "🍔": "Hamburger", + "🍕": "Pizza", + "🌭": "Hotdog", + "🌮": "Taco", + "🍿": "Popcorn", + "🦀": "Krebs", + "🦞": "Hummer", + "🍨": "Eiscreme", + "🍩": "Donut", + "🍪": "Keks", + "🎂": "Geburtstagskuchen", + "🧁": "Cupcake", + "🍫": "Schokoladentafel", + "🍬": "Bonbon", + "🍭": "Lutscher", + "🫖": "Teekanne", + "🧃": "Trinkpäckchen", + "🧉": "Mate-Tee", + "🧭": "Kompass", + "🏔️": "schneebedeckter Berg", + "🌋": "Vulkan", + "🏕️": "Camping", + "🏝️": "einsame Insel", + "🏡": "Haus mit Garten", + "⛲️": "Springbrunnen", + "🎠": "Karussellpferd", + "🎡": "Riesenrad", + "🎢": "Achterbahn", + "💈": "Barbershop-Säule", + "🚆": "Zug", + "🚋": "Straßenbahnwagen", + "🚍️": "Bus von vorne", + "🚕": "Taxi", + "🚗": "Auto", + "🚚": "Lieferwagen", + "🚜": "Traktor", + "🛵": "Motorroller", + "🛺": "Autorikscha", + "🛴": "Tretroller", + "🛹": "Skateboard", + "🛼": "Rollschuh", + "⚓️": "Anker", + "⛵️": "Segelboot", + "🛶": "Kanu", + "🚤": "Schnellboot", + "🚢": "Schiff", + "✈️": "Flugzeug", + "🚁": "Hubschrauber", + "🚠": "Bergschwebebahn", + "🛰️": "Satellit", + "🚀": "Rakete", + "🛸": "fliegende Untertasse", + "⏰": "Wecker", + "🌙": "Mondsichel", + "🌡️": "Thermometer", + "☀️": "Sonne", + "🪐": "Ringplanet", + "🌟": "funkelnder Stern", + "🌀": "Wirbel", + "🌈": "Regenbogen", + "☂️": "Regenschirm", + "❄️": "Schneeflocke", + "☄️": "Komet", + "🔥": "Feuer", + "💧": "Tropfen", + "🌊": "Welle", + "🎃": "Halloweenkürbis", + "✨": "funkelnde Sterne", + "🎈": "Luftballon", + "🎉": "Konfettibombe", + "🎏": "traditionelle japanische Windsäcke", + "🎀": "pinke Schleife", + "🎁": "Geschenk", + "🎟️": "Eintrittskarten", + "🏆️": "Pokal", + "⚽️": "Fußball", + "🏀": "Basketball", + "🏈": "Football", + "🎾": "Tennisball", + "🥏": "Frisbee", + "🏓": "Tischtennis", + "🏸": "Badminton", + "🤿": "Tauchmaske", + "🥌": "Curlingstein", + "🎯": "Darts", + "🪀": "Jo-Jo", + "🪁": "Drachen", + "🔮": "Kristallkugel", + "🎲": "Spielwürfel", + "🧩": "Puzzleteil", + "🎨": "Mischpalette", + "🧵": "Faden", + "👕": "T-Shirt", + "🧦": "Socken", + "👗": "Kleid", + "🩳": "Shorts", + "🎒": "Schulranzen", + "👟": "Sportschuh", + "👑": "Krone", + "🧢": "Baseballmütze", + "💄": "Lippenstift", + "💍": "Ring", + "💎": "Edelstein", + "📢": "Lautsprecher", + "🎶": "Musiknoten", + "🎙️": "Studiomikrofon", + "📻️": "Radio", + "🎷": "Saxofon", + "🪗": "Akkordeon", + "🎸": "Gitarre", + "🎺": "Trompete", + "🎻": "Geige", + "🪕": "Banjo", + "🥁": "Trommel", + "☎️": "Telefon", + "🔋": "Batterie", + "💿️": "CD", + "🧮": "Abakus", + "🎬️": "Filmklappe", + "💡": "Glühbirne", + "🔦": "Taschenlampe", + "🏮": "rote Papierlaterne", + "📕": "geschlossenes Buch", + "🏷️": "Etikett", + "💳️": "Kreditkarte", + "✏️": "Bleistift", + "🖌️": "Pinsel", + "🖍️": "Wachsmalstift", + "📌": "Reißzwecke", + "📎": "Büroklammer", + "🔑": "Schlüssel", + "🪃": "Bumerang", + "🏹": "Pfeil und Bogen", + "⚖️": "Waage", + "🧲": "Magnet", + "🧪": "Reagenzglas", + "🧬": "DNA", + "🔬": "Mikroskop", + "🔭": "Teleskop", + "📡": "Satellitenschüssel", + "🪑": "Stuhl", + "🧹": "Besen", + "🗿": "Statue" + }, + "el": { + "👽️": "εξωγήινος", + "🤖": "ρομπότ", + "🧠": "μυαλό", + "👁️": "μάτι", + "🧙": "μάγος", + "🧚": "νεράιδα", + "🧜": "γοργόνα", + "🐵": "πρόσωπο μαϊμούς", + "🦧": "ουρακοτάγκος", + "🐶": "πρόσωπο σκύλου", + "🐺": "λύκος", + "🦊": "αλεπού", + "🦝": "ρακούν", + "🐱": "πρόσωπο γάτας", + "🦁": "λιοντάρι", + "🐯": "πρόσωπο τίγρης", + "🐴": "πρόσωπο αλόγου", + "🦄": "μονόκερος", + "🦓": "ζέβρα", + "🦌": "ελάφι", + "🐮": "πρόσωπο αγελάδας", + "🐷": "πρόσωπο γουρουνιού", + "🐗": "αγριογούρουνο", + "🐪": "καμήλα", + "🦙": "λάμα", + "🦒": "καμηλοπάρδαλη", + "🐘": "ελέφαντας", + "🦣": "μαμούθ", + "🦏": "ρινόκερος", + "🐭": "πρόσωπο ποντικιού", + "🐰": "πρόσωπο κουνελιού", + "🐿️": "σκιουράκι", + "🦔": "σκαντζόχοιρος", + "🦇": "νυχτερίδα", + "🐻": "αρκούδα", + "🐨": "κοάλα", + "🦥": "βραδύπους", + "🦦": "βίδρα", + "🦘": "καγκουρό", + "🐥": "κοτοπουλάκι που κοιτά μπροστά", + "🐦️": "πουλί", + "🕊️": "περιστέρι", + "🦆": "πάπια", + "🦉": "κουκουβάγια", + "🦤": "ντόντο", + "🪶": "φτερό", + "🦩": "φλαμίνγκο", + "🦚": "παγώνι", + "🦜": "παπαγάλος", + "🐊": "κροκόδειλος", + "🐢": "χελώνα", + "🦎": "σαύρα", + "🐍": "φίδι", + "🐲": "πρόσωπο δράκου", + "🦕": "σαυρόποδο", + "🐳": "φάλαινα που πετά νερό", + "🐬": "δελφίνι", + "🦭": "φώκια", + "🐟️": "ψάρι", + "🐠": "τροπικό ψάρι", + "🦈": "καρχαρίας", + "🐙": "χταπόδι", + "🐚": "σπειροειδές κοχύλι", + "🐌": "σαλιγκάρι", + "🦋": "πεταλούδα", + "🐛": "κάμπια", + "🐝": "μέλισσα", + "🐞": "πασχαλίτσα", + "💐": "μπουκέτο λουλούδια", + "🌹": "τριαντάφυλλο", + "🌺": "ιβίσκος", + "🌻": "ηλιοτρόπιο", + "🌷": "τουλίπα", + "🌲": "αειθαλές δέντρο", + "🌳": "φυλλοβόλο δέντρο", + "🌴": "φοίνικας", + "🌵": "κάκτος", + "🌿": "βότανο", + "🍁": "φύλλο σφενδάμου", + "🍇": "σταφύλι", + "🍈": "πεπόνι", + "🍉": "καρπούζι", + "🍊": "μανταρίνι", + "🍋": "λεμόνι", + "🍌": "μπανάνα", + "🍍": "ανανάς", + "🥭": "μάνγκο", + "🍏": "πράσινο μήλο", + "🍐": "αχλάδι", + "🍑": "ροδάκινο", + "🍒": "κεράσια", + "🍓": "φράουλα", + "🫐": "μύρτιλο", + "🥝": "ακτινίδιο", + "🍅": "ντομάτα", + "🫒": "ελιά", + "🥥": "καρύδα", + "🥑": "αβοκάντο", + "🍆": "μελιτζάνα", + "🥕": "καρότο", + "🌽": "καλαμπόκι", + "🌶️": "καυτερή πιπεριά", + "🥬": "πράσινο φυλλώδες", + "🥦": "μπρόκολο", + "🧅": "κρεμμύδι", + "🍄": "μανιτάρι", + "🥜": "φιστίκια", + "🥐": "κρουασάν", + "🥖": "μπαγκέτα", + "🥨": "πρέτσελ", + "🥯": "μπέιγκελ", + "🥞": "τηγανίτες", + "🧇": "βάφλα", + "🍔": "χάμπουργκερ", + "🍕": "πίτσα", + "🌭": "χοτ ντογκ", + "🌮": "τάκο", + "🍿": "ποπ-κορν", + "🦀": "κάβουρας", + "🦞": "αστακός", + "🍨": "παγωτό", + "🍩": "ντόνατ", + "🍪": "μπισκότο", + "🎂": "τούρτα γενεθλίων", + "🧁": "κεκάκι", + "🍫": "σοκολάτα", + "🍬": "καραμέλα", + "🍭": "γλειφιτζούρι", + "🫖": "τσαγιέρα", + "🧃": "κουτί ροφήματος", + "🧉": "μάτε", + "🧭": "πυξίδα", + "🏔️": "χιονισμένο βουνό", + "🌋": "ηφαίστειο", + "🏕️": "κατασκήνωση", + "🏝️": "ερημονήσι", + "🏡": "σπίτι με κήπο", + "⛲️": "σιντριβάνι", + "🎠": "αλογάκι καρουσέλ", + "🎡": "ρόδα λούνα-παρκ", + "🎢": "τρενάκι", + "💈": "σύμβολο κουρείου", + "🚆": "τρένο", + "🚋": "βαγόνι τραμ", + "🚍️": "διερχόμενο λεωφορείο", + "🚕": "ταξί", + "🚗": "αυτοκίνητο", + "🚚": "φορτηγό", + "🚜": "τρακτέρ", + "🛵": "σκουτεράκι", + "🛺": "ποδήλατο-ταξί", + "🛴": "πατίνι", + "🛹": "σκέιτμπορντ", + "🛼": "πατίνια", + "⚓️": "άγκυρα", + "⛵️": "ιστιοφόρο", + "🛶": "κανό", + "🚤": "ταχύπλοο", + "🚢": "πλοίο", + "✈️": "αεροπλάνο", + "🚁": "ελικόπτερο", + "🚠": "τελεφερίκ", + "🛰️": "δορυφόρος", + "🚀": "πύραυλος", + "🛸": "ιπτάμενος δίσκος", + "⏰": "ξυπνητήρι", + "🌙": "ημισέληνος", + "🌡️": "θερμόμετρο", + "☀️": "ήλιος", + "🪐": "πλανήτης με δακτύλιο", + "🌟": "λαμπερό αστέρι", + "🌀": "κυκλώνας", + "🌈": "ουράνιο τόξο", + "☂️": "ομπρέλα", + "❄️": "χιονονιφάδα", + "☄️": "κομήτης", + "🔥": "φωτιά", + "💧": "σταγόνα", + "🌊": "θαλάσσιο κύμα", + "🎃": "φανάρι από κολοκύθα", + "✨": "αστράκια", + "🎈": "μπαλόνι", + "🎉": "χαρτοπόλεμος", + "🎏": "διακοσμητικοί κυπρίνοι", + "🎀": "κορδέλα", + "🎁": "τυλιγμένο δώρο", + "🎟️": "κάρτες εισόδου", + "🏆️": "τρόπαιο", + "⚽️": "μπάλα ποδοσφαίρου", + "🏀": "μπάλα μπάσκετ", + "🏈": "μπάλα αμερικάνικου ποδοσφαίρου", + "🎾": "μπάλα τένις", + "🥏": "φρίσμπι", + "🏓": "πινγκ πονγκ", + "🏸": "μπάντμιντον", + "🤿": "μάσκα κατάδυσης", + "🥌": "πέτρα κέρλινγκ", + "🎯": "βελάκια", + "🪀": "γιογιό", + "🪁": "χαρταετός", + "🔮": "κρυστάλλινη σφαίρα", + "🎲": "ζάρι", + "🧩": "κομμάτι παζλ", + "🎨": "παλέτα ζωγράφου", + "🧵": "κλωστή", + "👕": "μπλουζάκι", + "🧦": "κάλτσες", + "👗": "φόρεμα", + "🩳": "σορτσάκι", + "🎒": "σχολική σάκα", + "👟": "αθλητικό παπούτσι", + "👑": "στέμμα", + "🧢": "καπελάκι", + "💄": "κραγιόν", + "💍": "δαχτυλίδι", + "💎": "διαμάντι", + "📢": "ντουντούκα", + "🎶": "νότες μουσικής", + "🎙️": "μικρόφωνο στούντιο", + "📻️": "ραδιόφωνο", + "🎷": "σαξόφωνο", + "🪗": "ακορντεόν", + "🎸": "κιθάρα", + "🎺": "τρομπέτα", + "🎻": "βιολί", + "🪕": "μπάντζο", + "🥁": "τύμπανο", + "☎️": "τηλέφωνο", + "🔋": "μπαταρία", + "💿️": "οπτικός δίσκος", + "🧮": "άβακας", + "🎬️": "κλακέτα φιλμ", + "💡": "λαμπτήρας", + "🔦": "φακός", + "🏮": "κόκκινο χάρτινο φανάρι", + "📕": "κλειστό βιβλίο", + "🏷️": "ετικέτα", + "💳️": "πιστωτική κάρτα", + "✏️": "μολύβι", + "🖌️": "πινέλο", + "🖍️": "κηρομπογιά", + "📌": "πινέζα", + "📎": "συνδετήρας", + "🔑": "κλειδί", + "🪃": "μπούμερανγκ", + "🏹": "τόξο και βέλος", + "⚖️": "ζυγαριά", + "🧲": "μαγνήτης", + "🧪": "δοκιμαστικός σωλήνας", + "🧬": "dna", + "🔬": "μικροσκόπιο", + "🔭": "τηλεσκόπιο", + "📡": "δορυφορική κεραία", + "🪑": "καρέκλα", + "🧹": "σκούπα", + "🗿": "μοάι" + }, + "en": { + "👽️": "alien", + "🤖": "robot", + "🧠": "brain", + "👁️": "eye", + "🧙": "mage", + "🧚": "fairy", + "🧜": "merperson", + "🐵": "monkey face", + "🦧": "orangutan", + "🐶": "dog face", + "🐺": "wolf", + "🦊": "fox", + "🦝": "raccoon", + "🐱": "cat face", + "🦁": "lion", + "🐯": "tiger face", + "🐴": "horse face", + "🦄": "unicorn", + "🦓": "zebra", + "🦌": "deer", + "🐮": "cow face", + "🐷": "pig face", + "🐗": "boar", + "🐪": "camel", + "🦙": "llama", + "🦒": "giraffe", + "🐘": "elephant", + "🦣": "mammoth", + "🦏": "rhinoceros", + "🐭": "mouse face", + "🐰": "rabbit face", + "🐿️": "chipmunk", + "🦔": "hedgehog", + "🦇": "bat", + "🐻": "bear", + "🐨": "koala", + "🦥": "sloth", + "🦦": "otter", + "🦘": "kangaroo", + "🐥": "front-facing baby chick", + "🐦️": "bird", + "🕊️": "dove", + "🦆": "duck", + "🦉": "owl", + "🦤": "dodo", + "🪶": "feather", + "🦩": "flamingo", + "🦚": "peacock", + "🦜": "parrot", + "🐊": "crocodile", + "🐢": "turtle", + "🦎": "lizard", + "🐍": "snake", + "🐲": "dragon face", + "🦕": "sauropod", + "🐳": "spouting whale", + "🐬": "dolphin", + "🦭": "seal", + "🐟️": "fish", + "🐠": "tropical fish", + "🦈": "shark", + "🐙": "octopus", + "🐚": "spiral shell", + "🐌": "snail", + "🦋": "butterfly", + "🐛": "bug", + "🐝": "honeybee", + "🐞": "lady beetle", + "💐": "bouquet", + "🌹": "rose", + "🌺": "hibiscus", + "🌻": "sunflower", + "🌷": "tulip", + "🌲": "evergreen tree", + "🌳": "deciduous tree", + "🌴": "palm tree", + "🌵": "cactus", + "🌿": "herb", + "🍁": "maple leaf", + "🍇": "grapes", + "🍈": "melon", + "🍉": "watermelon", + "🍊": "tangerine", + "🍋": "lemon", + "🍌": "banana", + "🍍": "pineapple", + "🥭": "mango", + "🍏": "green apple", + "🍐": "pear", + "🍑": "peach", + "🍒": "cherries", + "🍓": "strawberry", + "🫐": "blueberries", + "🥝": "kiwi fruit", + "🍅": "tomato", + "🫒": "olive", + "🥥": "coconut", + "🥑": "avocado", + "🍆": "eggplant", + "🥕": "carrot", + "🌽": "ear of corn", + "🌶️": "hot pepper", + "🥬": "leafy green", + "🥦": "broccoli", + "🧅": "onion", + "🍄": "mushroom", + "🥜": "peanuts", + "🥐": "croissant", + "🥖": "baguette bread", + "🥨": "pretzel", + "🥯": "bagel", + "🥞": "pancakes", + "🧇": "waffle", + "🍔": "hamburger", + "🍕": "pizza", + "🌭": "hot dog", + "🌮": "taco", + "🍿": "popcorn", + "🦀": "crab", + "🦞": "lobster", + "🍨": "ice cream", + "🍩": "doughnut", + "🍪": "cookie", + "🎂": "birthday cake", + "🧁": "cupcake", + "🍫": "chocolate bar", + "🍬": "candy", + "🍭": "lollipop", + "🫖": "teapot", + "🧃": "beverage box", + "🧉": "mate", + "🧭": "compass", + "🏔️": "snow-capped mountain", + "🌋": "volcano", + "🏕️": "camping", + "🏝️": "desert island", + "🏡": "house with garden", + "⛲️": "fountain", + "🎠": "carousel horse", + "🎡": "ferris wheel", + "🎢": "roller coaster", + "💈": "barber pole", + "🚆": "train", + "🚋": "tram car", + "🚍️": "oncoming bus", + "🚕": "taxi", + "🚗": "automobile", + "🚚": "delivery truck", + "🚜": "tractor", + "🛵": "motor scooter", + "🛺": "auto rickshaw", + "🛴": "kick scooter", + "🛹": "skateboard", + "🛼": "roller skate", + "⚓️": "anchor", + "⛵️": "sailboat", + "🛶": "canoe", + "🚤": "speedboat", + "🚢": "ship", + "✈️": "airplane", + "🚁": "helicopter", + "🚠": "mountain cableway", + "🛰️": "satellite", + "🚀": "rocket", + "🛸": "flying saucer", + "⏰": "alarm clock", + "🌙": "crescent moon", + "🌡️": "thermometer", + "☀️": "sun", + "🪐": "ringed planet", + "🌟": "glowing star", + "🌀": "cyclone", + "🌈": "rainbow", + "☂️": "umbrella", + "❄️": "snowflake", + "☄️": "comet", + "🔥": "fire", + "💧": "droplet", + "🌊": "water wave", + "🎃": "jack-o-lantern", + "✨": "sparkles", + "🎈": "balloon", + "🎉": "party popper", + "🎏": "carp streamer", + "🎀": "ribbon", + "🎁": "wrapped gift", + "🎟️": "admission tickets", + "🏆️": "trophy", + "⚽️": "soccer ball", + "🏀": "basketball", + "🏈": "american football", + "🎾": "tennis", + "🥏": "flying disc", + "🏓": "ping pong", + "🏸": "badminton", + "🤿": "diving mask", + "🥌": "curling stone", + "🎯": "bullseye", + "🪀": "yo-yo", + "🪁": "kite", + "🔮": "crystal ball", + "🎲": "game die", + "🧩": "puzzle piece", + "🎨": "artist palette", + "🧵": "thread", + "👕": "t-shirt", + "🧦": "socks", + "👗": "dress", + "🩳": "shorts", + "🎒": "backpack", + "👟": "running shoe", + "👑": "crown", + "🧢": "billed cap", + "💄": "lipstick", + "💍": "ring", + "💎": "gem stone", + "📢": "loudspeaker", + "🎶": "musical notes", + "🎙️": "studio microphone", + "📻️": "radio", + "🎷": "saxophone", + "🪗": "accordion", + "🎸": "guitar", + "🎺": "trumpet", + "🎻": "violin", + "🪕": "banjo", + "🥁": "drum", + "☎️": "telephone", + "🔋": "battery", + "💿️": "optical disk", + "🧮": "abacus", + "🎬️": "clapper board", + "💡": "light bulb", + "🔦": "flashlight", + "🏮": "red paper lantern", + "📕": "closed book", + "🏷️": "label", + "💳️": "credit card", + "✏️": "pencil", + "🖌️": "paintbrush", + "🖍️": "crayon", + "📌": "pushpin", + "📎": "paperclip", + "🔑": "key", + "🪃": "boomerang", + "🏹": "bow and arrow", + "⚖️": "balance scale", + "🧲": "magnet", + "🧪": "test tube", + "🧬": "dna", + "🔬": "microscope", + "🔭": "telescope", + "📡": "satellite antenna", + "🪑": "chair", + "🧹": "broom", + "🗿": "moai" + }, + "es": { + "👽️": "alienígena", + "🤖": "robot", + "🧠": "cerebro", + "👁️": "ojo", + "🧙": "persona maga", + "🧚": "hada", + "🧜": "persona sirena", + "🐵": "cara de mono", + "🦧": "orangután", + "🐶": "cara de perro", + "🐺": "lobo", + "🦊": "zorro", + "🦝": "mapache", + "🐱": "cara de gato", + "🦁": "león", + "🐯": "cara de tigre", + "🐴": "cara de caballo", + "🦄": "unicornio", + "🦓": "cebra", + "🦌": "ciervo", + "🐮": "cara de vaca", + "🐷": "cara de cerdo", + "🐗": "jabalí", + "🐪": "dromedario", + "🦙": "llama", + "🦒": "jirafa", + "🐘": "elefante", + "🦣": "mamut", + "🦏": "rinoceronte", + "🐭": "cara de ratón", + "🐰": "cara de conejo", + "🐿️": "ardilla", + "🦔": "erizo", + "🦇": "murciélago", + "🐻": "oso", + "🐨": "koala", + "🦥": "perezoso", + "🦦": "nutria", + "🦘": "canguro", + "🐥": "pollito de frente", + "🐦️": "pájaro", + "🕊️": "paloma", + "🦆": "pato", + "🦉": "búho", + "🦤": "dodo", + "🪶": "pluma", + "🦩": "flamenco", + "🦚": "pavo real", + "🦜": "loro", + "🐊": "cocodrilo", + "🐢": "tortuga", + "🦎": "lagarto", + "🐍": "serpiente", + "🐲": "cara de dragón", + "🦕": "saurópodo", + "🐳": "ballena soltando un chorro", + "🐬": "delfín", + "🦭": "foca", + "🐟️": "pez", + "🐠": "pez tropical", + "🦈": "tiburón", + "🐙": "pulpo", + "🐚": "concha de mar", + "🐌": "caracol", + "🦋": "mariposa", + "🐛": "insecto", + "🐝": "abeja", + "🐞": "mariquita", + "💐": "ramo de flores", + "🌹": "rosa", + "🌺": "flor de hibisco", + "🌻": "girasol", + "🌷": "tulipán", + "🌲": "árbol de hoja perenne", + "🌳": "árbol de hoja caduca", + "🌴": "palmera", + "🌵": "cactus", + "🌿": "hierba", + "🍁": "hoja de arce", + "🍇": "uvas", + "🍈": "melón", + "🍉": "sandía", + "🍊": "mandarina", + "🍋": "limón", + "🍌": "plátano", + "🍍": "piña", + "🥭": "mango", + "🍏": "manzana verde", + "🍐": "pera", + "🍑": "melocotón", + "🍒": "cerezas", + "🍓": "fresa", + "🫐": "arándanos", + "🥝": "kiwi", + "🍅": "tomate", + "🫒": "aceituna", + "🥥": "coco", + "🥑": "aguacate", + "🍆": "berenjena", + "🥕": "zanahoria", + "🌽": "espiga de maíz", + "🌶️": "chile picante", + "🥬": "verdura de hoja verde", + "🥦": "brócoli", + "🧅": "cebolla", + "🍄": "champiñón", + "🥜": "cacahuetes", + "🥐": "cruasán", + "🥖": "baguete", + "🥨": "bretzel", + "🥯": "bagel", + "🥞": "tortitas", + "🧇": "gofre", + "🍔": "hamburguesa", + "🍕": "pizza", + "🌭": "perrito caliente", + "🌮": "taco", + "🍿": "palomitas", + "🦀": "cangrejo", + "🦞": "bogavante", + "🍨": "helado", + "🍩": "dónut", + "🍪": "galleta", + "🎂": "tarta de cumpleaños", + "🧁": "magdalena", + "🍫": "tableta de chocolate", + "🍬": "caramelo", + "🍭": "piruleta", + "🫖": "tetera", + "🧃": "tetrabrik", + "🧉": "mate", + "🧭": "brújula", + "🏔️": "montaña con nieve", + "🌋": "volcán", + "🏕️": "camping", + "🏝️": "isla desierta", + "🏡": "casa con jardín", + "⛲️": "fuente", + "🎠": "caballo de tiovivo", + "🎡": "noria de feria", + "🎢": "montaña rusa", + "💈": "poste de barbero", + "🚆": "tren", + "🚋": "vagón de tranvía", + "🚍️": "autobús próximo", + "🚕": "taxi", + "🚗": "coche", + "🚚": "camión de reparto", + "🚜": "tractor", + "🛵": "scooter", + "🛺": "mototaxi", + "🛴": "patinete", + "🛹": "monopatín", + "🛼": "patines", + "⚓️": "ancla", + "⛵️": "velero", + "🛶": "canoa", + "🚤": "lancha motora", + "🚢": "barco", + "✈️": "avión", + "🚁": "helicóptero", + "🚠": "teleférico de montaña", + "🛰️": "satélite", + "🚀": "cohete", + "🛸": "platillo volante", + "⏰": "reloj despertador", + "🌙": "luna", + "🌡️": "termómetro", + "☀️": "sol", + "🪐": "planeta con anillos", + "🌟": "estrella brillante", + "🌀": "ciclón", + "🌈": "arcoíris", + "☂️": "paraguas", + "❄️": "copo de nieve", + "☄️": "meteorito", + "🔥": "fuego", + "💧": "gota", + "🌊": "ola de mar", + "🎃": "calabaza de Halloween", + "✨": "chispas", + "🎈": "globo", + "🎉": "cañón de confeti", + "🎏": "banderín de carpas", + "🎀": "lazo", + "🎁": "regalo", + "🎟️": "entradas", + "🏆️": "trofeo", + "⚽️": "balón de fútbol", + "🏀": "balón de baloncesto", + "🏈": "balón de fútbol americano", + "🎾": "pelota de tenis", + "🥏": "disco volador", + "🏓": "tenis de mesa", + "🏸": "bádminton", + "🤿": "máscara de buceo", + "🥌": "piedra de curling", + "🎯": "diana", + "🪀": "yoyó", + "🪁": "cometa", + "🔮": "bola de cristal", + "🎲": "dado", + "🧩": "pieza de puzle", + "🎨": "paleta de pintor", + "🧵": "hilo", + "👕": "camiseta", + "🧦": "calcetines", + "👗": "vestido", + "🩳": "pantalones cortos", + "🎒": "mochila escolar", + "👟": "zapatilla deportiva", + "👑": "corona", + "🧢": "gorra con visera", + "💄": "pintalabios", + "💍": "anillo", + "💎": "piedra preciosa", + "📢": "altavoz de mano", + "🎶": "notas musicales", + "🎙️": "micrófono de estudio", + "📻️": "radio", + "🎷": "saxofón", + "🪗": "acordeón", + "🎸": "guitarra", + "🎺": "trompeta", + "🎻": "violín", + "🪕": "banjo", + "🥁": "tambor", + "☎️": "teléfono", + "🔋": "pila", + "💿️": "disco óptico", + "🧮": "ábaco", + "🎬️": "claqueta", + "💡": "bombilla", + "🔦": "linterna", + "🏮": "lámpara japonesa", + "📕": "libro cerrado", + "🏷️": "etiqueta", + "💳️": "tarjeta de crédito", + "✏️": "lápiz", + "🖌️": "pincel", + "🖍️": "lápiz de cera", + "📌": "chincheta", + "📎": "clip", + "🔑": "llave", + "🪃": "bumerán", + "🏹": "arco y flecha", + "⚖️": "balanza", + "🧲": "imán", + "🧪": "tubo de ensayo", + "🧬": "adn", + "🔬": "microscopio", + "🔭": "telescopio", + "📡": "antena de satélite", + "🪑": "silla", + "🧹": "escoba", + "🗿": "estatua moái" + }, + "fa": { + "👽️": "موجود فضایی", + "🤖": "روبات", + "🧠": "مغز", + "👁️": "چشم", + "🧙": "ساحر", + "🧚": "پری", + "🧜": "دریامردمان", + "🐵": "صورت میمون", + "🦧": "اورانگوتان", + "🐶": "صورت سگ", + "🐺": "گرگ", + "🦊": "روباه", + "🦝": "راکون", + "🐱": "صورت گربه", + "🦁": "شیر", + "🐯": "صورت ببر", + "🐴": "صورت اسب", + "🦄": "تکشاخ", + "🦓": "گورخر", + "🦌": "گوزن", + "🐮": "صورت گاو", + "🐷": "صورت خوک", + "🐗": "گراز نر", + "🐪": "شتر", + "🦙": "لاما", + "🦒": "زرافه", + "🐘": "فیل", + "🦣": "ماموت", + "🦏": "کرگدن", + "🐭": "صورت موش", + "🐰": "صورت خرگوش", + "🐿️": "سنجاب راهراه", + "🦔": "جوجهتیغی", + "🦇": "خفاش", + "🐻": "خرس", + "🐨": "کوآلا", + "🦥": "تنبل", + "🦦": "سمور آبی", + "🦘": "کانگورو", + "🐥": "جوجه از روبرو", + "🐦️": "پرنده", + "🕊️": "کبوتر", + "🦆": "مرغابی", + "🦉": "جغد", + "🦤": "دودو", + "🪶": "پَر", + "🦩": "فلامینگو", + "🦚": "طاووس", + "🦜": "طوطی", + "🐊": "تمساح", + "🐢": "لاکپشت", + "🦎": "مارمولک", + "🐍": "مار", + "🐲": "صورت اژدها", + "🦕": "سوسمار", + "🐳": "نهنگ در حال آبفشانی", + "🐬": "دلفین", + "🦭": "فُک", + "🐟️": "ماهی", + "🐠": "ماهی استوایی", + "🦈": "کوسه", + "🐙": "هشتپا", + "🐚": "صدف مارپیچی", + "🐌": "حلزون", + "🦋": "پروانه", + "🐛": "حشره", + "🐝": "زنبور عسل", + "🐞": "کفشدوزک", + "💐": "دسته گل", + "🌹": "رز", + "🌺": "گل ختمی", + "🌻": "گل آفتابگردان", + "🌷": "لاله", + "🌲": "همیشهسبز", + "🌳": "درخت سبز", + "🌴": "نخل", + "🌵": "کاکتوس", + "🌿": "گیاه دارویی", + "🍁": "برگ افرا", + "🍇": "انگور", + "🍈": "طالبی", + "🍉": "هندوانه", + "🍊": "نارنگی", + "🍋": "لیمو ترش", + "🍌": "موز", + "🍍": "آناناس", + "🥭": "انبه", + "🍏": "سیب سبز", + "🍐": "گلابی", + "🍑": "هلو", + "🍒": "گیلاس", + "🍓": "توتفرنگی", + "🫐": "توت آبی", + "🥝": "کیوی", + "🍅": "گوجهفرنگی", + "🫒": "زیتون", + "🥥": "نارگیل", + "🥑": "آووکادو", + "🍆": "بادمجان", + "🥕": "هویج", + "🌽": "بلال ذرت", + "🌶️": "فلفل قرمز", + "🥬": "برگسبز", + "🥦": "بروکلی", + "🧅": "پیاز", + "🍄": "قارچ", + "🥜": "بادام زمینی", + "🥐": "کرواسان", + "🥖": "نان باگت", + "🥨": "چوبشور", + "🥯": "نان بیگل", + "🥞": "پنکیک", + "🧇": "وافل", + "🍔": "همبرگر", + "🍕": "پیتزا", + "🌭": "هات داگ", + "🌮": "تاکو", + "🍿": "ذرت بوداده", + "🦀": "خرچنگ", + "🦞": "لابستر", + "🍨": "بستنی", + "🍩": "دونات", + "🍪": "کلوچه", + "🎂": "کیک تولد", + "🧁": "کیک فنجانی", + "🍫": "تخته شکلات", + "🍬": "آبنبات", + "🍭": "آبنباتچوبی", + "🫖": "قوری", + "🧃": "پاکت نوشیدنی", + "🧉": "ماته", + "🧭": "قطبنما", + "🏔️": "قلهٔ برفی", + "🌋": "آتشفشان", + "🏕️": "چادرزنی", + "🏝️": "جزیرهٔ خالی از سکنه", + "🏡": "خانهٔ حیاطدار", + "⛲️": "فواره", + "🎠": "چرخوفلک اسبی", + "🎡": "چرخوفلک", + "🎢": "ترن هوایی", + "💈": "چراغ سلمانی", + "🚆": "قطار", + "🚋": "قطار خیابانی", + "🚍️": "اتوبوس روبهجلو", + "🚕": "تاکسی", + "🚗": "خودرو", + "🚚": "کامیون پخش", + "🚜": "تراکتور", + "🛵": "اسکوتر", + "🛺": "اتوریکشا", + "🛴": "چرخ پایی", + "🛹": "تختهٔ اسکیت", + "🛼": "کفش اسکیت", + "⚓️": "لنگر", + "⛵️": "قایق بادبانی", + "🛶": "بلم", + "🚤": "قایق تندرو", + "🚢": "کشتی", + "✈️": "هواپیما", + "🚁": "هلیکوپتر", + "🚠": "تلهکابین کوهستانی", + "🛰️": "ماهواره", + "🚀": "موشک", + "🛸": "بشقابپرنده", + "⏰": "ساعت رومیزی", + "🌙": "هلال ماه", + "🌡️": "دماسنج", + "☀️": "خورشید", + "🪐": "سیاره حلقهدار", + "🌟": "ستاره درخشان", + "🌀": "چرخند", + "🌈": "رنگین کمان", + "☂️": "چتر", + "❄️": "برفدانه", + "☄️": "ستاره دنبالهدار", + "🔥": "آتش", + "💧": "قطره", + "🌊": "موج آب", + "🎃": "فانوس کدو تنبل", + "✨": "درخشش", + "🎈": "بادکنک", + "🎉": "بمب کاغذ رنگی", + "🎏": "پرچمهای ماهی در باد", + "🎀": "روبان", + "🎁": "هدیهٔ کادوشده", + "🎟️": "بلیت ورود", + "🏆️": "جام ورزشی", + "⚽️": "توپ فوتبال", + "🏀": "بسکتبال", + "🏈": "فوتبال امریکایی", + "🎾": "تنیس", + "🥏": "فریزبی", + "🏓": "پینگپونگ", + "🏸": "بدمینتون", + "🤿": "ماسک غواصی", + "🥌": "سنگ کرلینگ", + "🎯": "پیکان در قلب هدف", + "🪀": "یویو", + "🪁": "بادبادک", + "🔮": "گوی", + "🎲": "تاس بازی", + "🧩": "قطعه پازل", + "🎨": "پالت نقاشی", + "🧵": "نخ", + "👕": "تیشرت", + "🧦": "جوراب", + "👗": "پیراهن زنانه", + "🩳": "شلوارک", + "🎒": "کولهپشتی", + "👟": "کفش دویدن", + "👑": "تاج", + "🧢": "کلاه لبهدار", + "💄": "رژلب", + "💍": "حلقه", + "💎": "جواهر", + "📢": "بلندگو", + "🎶": "نتهای موسیقی", + "🎙️": "میکروفون استودیویی", + "📻️": "رادیو", + "🎷": "ساکسیفون", + "🪗": "آکوردئون", + "🎸": "گیتار", + "🎺": "ترومپت", + "🎻": "ویولن", + "🪕": "بانجو", + "🥁": "طبل", + "☎️": "تلفن", + "🔋": "باتری", + "💿️": "سیدی", + "🧮": "چرتکه", + "🎬️": "کلاکت", + "💡": "لامپ", + "🔦": "چراغقوه", + "🏮": "فانوس کاغذی قرمز", + "📕": "کتاب بسته", + "🏷️": "برچسب", + "💳️": "کارت اعتباری", + "✏️": "مداد", + "🖌️": "قلممو", + "🖍️": "مدادشمعی", + "📌": "سنجاق", + "📎": "گیرهٔ کاغذ", + "🔑": "کلید", + "🪃": "بومرنگ", + "🏹": "تیر و کمان", + "⚖️": "ترازو", + "🧲": "آهنربا", + "🧪": "لولهٔ آزمایشگاه", + "🧬": "دیانای", + "🔬": "میکروسکوپ", + "🔭": "تلسکوپ", + "📡": "آنتن ماهواره", + "🪑": "صندلی", + "🧹": "جارو", + "🗿": "سردیس موآی" + }, + "fr": { + "👽️": "alien", + "🤖": "robot", + "🧠": "cerveau", + "👁️": "œil", + "🧙": "mage", + "🧚": "personnage féérique", + "🧜": "créature aquatique", + "🐵": "tête de singe", + "🦧": "orang-outan", + "🐶": "tête de chien", + "🐺": "loup", + "🦊": "renard", + "🦝": "raton laveur", + "🐱": "tête de chat", + "🦁": "tête de lion", + "🐯": "tête de tigre", + "🐴": "tête de cheval", + "🦄": "licorne", + "🦓": "zèbre", + "🦌": "cerf", + "🐮": "tête de vache", + "🐷": "tête de cochon", + "🐗": "sanglier", + "🐪": "dromadaire", + "🦙": "lama", + "🦒": "girafe", + "🐘": "éléphant", + "🦣": "mammouth", + "🦏": "rhinocéros", + "🐭": "tête de souris", + "🐰": "tête de lapin", + "🐿️": "écureuil", + "🦔": "hérisson", + "🦇": "chauve-souris", + "🐻": "ours", + "🐨": "koala", + "🦥": "paresseux", + "🦦": "loutre", + "🦘": "kangourou", + "🐥": "poussin de face", + "🐦️": "oiseau", + "🕊️": "colombe", + "🦆": "canard", + "🦉": "chouette", + "🦤": "dodo", + "🪶": "plume", + "🦩": "flamant", + "🦚": "paon", + "🦜": "perroquet", + "🐊": "crocodile", + "🐢": "tortue", + "🦎": "lézard", + "🐍": "serpent", + "🐲": "tête de dragon", + "🦕": "sauropode", + "🐳": "baleine soufflant par son évent", + "🐬": "dauphin", + "🦭": "phoque", + "🐟️": "poisson", + "🐠": "poisson tropical", + "🦈": "requin", + "🐙": "pieuvre", + "🐚": "coquille en spirale", + "🐌": "escargot", + "🦋": "papillon", + "🐛": "chenille", + "🐝": "abeille", + "🐞": "coccinelle", + "💐": "bouquet", + "🌹": "rose", + "🌺": "hibiscus", + "🌻": "tournesol", + "🌷": "tulipe", + "🌲": "conifère", + "🌳": "arbre à feuilles caduques", + "🌴": "palmier", + "🌵": "cactus", + "🌿": "feuille", + "🍁": "feuille d’érable", + "🍇": "raisin", + "🍈": "melon", + "🍉": "pastèque", + "🍊": "mandarine", + "🍋": "citron", + "🍌": "banane", + "🍍": "ananas", + "🥭": "mangue", + "🍏": "pomme verte", + "🍐": "poire", + "🍑": "pêche", + "🍒": "cerises", + "🍓": "fraise", + "🫐": "myrtilles", + "🥝": "kiwi", + "🍅": "tomate", + "🫒": "olive", + "🥥": "noix de coco", + "🥑": "avocat", + "🍆": "aubergine", + "🥕": "carotte", + "🌽": "épi de maïs", + "🌶️": "piment rouge", + "🥬": "légume à feuilles vertes", + "🥦": "brocoli", + "🧅": "oignon", + "🍄": "champignon", + "🥜": "cacahuètes", + "🥐": "croissant", + "🥖": "baguette", + "🥨": "bretzel", + "🥯": "bagel", + "🥞": "pancakes", + "🧇": "gaufre", + "🍔": "hamburger", + "🍕": "pizza", + "🌭": "hot dog", + "🌮": "taco", + "🍿": "pop-corn", + "🦀": "crabe", + "🦞": "homard", + "🍨": "glace", + "🍩": "doughnut", + "🍪": "cookie", + "🎂": "gâteau d’anniversaire", + "🧁": "cupcake", + "🍫": "barre chocolatée", + "🍬": "bonbon", + "🍭": "sucette", + "🫖": "théière", + "🧃": "briquette de jus", + "🧉": "maté", + "🧭": "boussole", + "🏔️": "montagne enneigée", + "🌋": "volcan", + "🏕️": "camping", + "🏝️": "île déserte", + "🏡": "maison avec jardin", + "⛲️": "fontaine", + "🎠": "cheval de manège", + "🎡": "grande roue", + "🎢": "montagnes russes", + "💈": "enseigne de barbier", + "🚆": "train", + "🚋": "wagon de tramway", + "🚍️": "bus de face", + "🚕": "taxi", + "🚗": "voiture", + "🚚": "camion de livraison", + "🚜": "tracteur", + "🛵": "scooter", + "🛺": "tuk tuk", + "🛴": "trottinette", + "🛹": "planche à roulettes", + "🛼": "patin à roulettes", + "⚓️": "ancre", + "⛵️": "voilier", + "🛶": "canoë", + "🚤": "hors-bord", + "🚢": "navire", + "✈️": "avion", + "🚁": "hélicoptère", + "🚠": "téléphérique", + "🛰️": "satellite", + "🚀": "fusée", + "🛸": "soucoupe volante", + "⏰": "réveil", + "🌙": "croissant de lune", + "🌡️": "thermomètre", + "☀️": "soleil", + "🪐": "planète à anneaux", + "🌟": "étoile brillante", + "🌀": "cyclone", + "🌈": "arc-en-ciel", + "☂️": "parapluie ouvert", + "❄️": "flocon", + "☄️": "comète", + "🔥": "feu", + "💧": "goutte d’eau", + "🌊": "vague", + "🎃": "citrouille", + "✨": "étincelles", + "🎈": "ballon gonflable", + "🎉": "cotillons", + "🎏": "koinobori", + "🎀": "ruban", + "🎁": "cadeau", + "🎟️": "billet d’entrée", + "🏆️": "trophée", + "⚽️": "ballon de football", + "🏀": "basket", + "🏈": "football américain", + "🎾": "tennis", + "🥏": "disque volant", + "🏓": "ping-pong", + "🏸": "badminton", + "🤿": "masque de plongée", + "🥌": "pierre de curling", + "🎯": "dans le mille", + "🪀": "yoyo", + "🪁": "cerf-volant", + "🔮": "boule de cristal", + "🎲": "dés", + "🧩": "pièce de puzzle", + "🎨": "palette de peinture", + "🧵": "bobine de fil", + "👕": "T-shirt", + "🧦": "chaussettes", + "👗": "robe", + "🩳": "short", + "🎒": "cartable", + "👟": "chaussure de sport", + "👑": "couronne", + "🧢": "casquette américaine", + "💄": "rouge à lèvres", + "💍": "bague", + "💎": "pierre précieuse", + "📢": "haut-parleur", + "🎶": "notes de musique", + "🎙️": "micro de studio", + "📻️": "radio", + "🎷": "saxophone", + "🪗": "accordéon", + "🎸": "guitare", + "🎺": "trompette", + "🎻": "violon", + "🪕": "banjo", + "🥁": "batterie", + "☎️": "téléphone", + "🔋": "pile", + "💿️": "CD", + "🧮": "abaque", + "🎬️": "clap", + "💡": "ampoule", + "🔦": "torche", + "🏮": "lampion rouge", + "📕": "livre fermé", + "🏷️": "étiquette", + "💳️": "carte bancaire", + "✏️": "crayon", + "🖌️": "pinceau", + "🖍️": "crayon pastel", + "📌": "punaise", + "📎": "trombone", + "🔑": "clé", + "🪃": "boomerang", + "🏹": "arc et flèche", + "⚖️": "balance à poids", + "🧲": "aimant", + "🧪": "tube à essai", + "🧬": "adn", + "🔬": "microscope", + "🔭": "télescope", + "📡": "antenne satellite", + "🪑": "chaise", + "🧹": "balai", + "🗿": "moai" + }, + "ga": { + "👽️": "eachtrán", + "🤖": "róbat", + "🧠": "inchinn", + "👁️": "súil", + "🧙": "duine draíochta", + "🧚": "síog", + "🧜": "duine murúch", + "🐵": "aghaidh moncaí", + "🦧": "órang-útan", + "🐶": "aghaidh madra", + "🐺": "aghaidh mic tíre", + "🦊": "aghaidh sionnaigh", + "🦝": "racún", + "🐱": "aghaidh cait", + "🦁": "aghaidh leoin", + "🐯": "aghaidh tíogair", + "🐴": "aghaidh capaill", + "🦄": "aghaidh aonbheannaigh", + "🦓": "séabra", + "🦌": "fia", + "🐮": "aghaidh bó", + "🐷": "aghaidh muice", + "🐗": "torc", + "🐪": "camall", + "🦙": "láma", + "🦒": "sioráf", + "🐘": "eilifint", + "🦣": "mamat", + "🦏": "srónbheannach", + "🐭": "aghaidh luiche", + "🐰": "aghaidh coinín", + "🐿️": "iora talún", + "🦔": "gráinneog", + "🦇": "ialtóg", + "🐻": "aghaidh béair", + "🐨": "cóála", + "🦥": "spadán", + "🦦": "madra uisce", + "🦘": "cangarú", + "🐥": "gearrshicín éadain", + "🐦️": "éan", + "🕊️": "colm", + "🦆": "lacha", + "🦉": "ulchabhán", + "🦤": "dódó", + "🪶": "cleite", + "🦩": "lasairéan", + "🦚": "péacóg", + "🦜": "pearóid", + "🐊": "crogall", + "🐢": "turtar", + "🦎": "earc luachra", + "🐍": "nathair", + "🐲": "aghaidh dragain", + "🦕": "sárapód", + "🐳": "míol mór ag séideadh", + "🐬": "deilf", + "🦭": "rón", + "🐟️": "iasc", + "🐠": "iasc teochreasa", + "🦈": "siorc", + "🐙": "ochtapas", + "🐚": "sliogán", + "🐌": "seilide", + "🦋": "féileacán", + "🐛": "míol", + "🐝": "beach mheala", + "🐞": "bóín", + "💐": "crobhaing bláthanna", + "🌹": "rós", + "🌺": "roiseog", + "🌻": "lus na gréine", + "🌷": "tiúilip", + "🌲": "crann síorghlas", + "🌳": "crann duillsilteach", + "🌴": "pailm", + "🌵": "cachtas", + "🌿": "luibh", + "🍁": "duilleog mhailpe", + "🍇": "caora fíniúna", + "🍈": "mealbhacán", + "🍉": "mealbhacán uisce", + "🍊": "táinséirín", + "🍋": "líomóid", + "🍌": "banana", + "🍍": "anann", + "🥭": "mangó", + "🍏": "úll glas", + "🍐": "piorra", + "🍑": "péitseog", + "🍒": "silíní", + "🍓": "sú talún", + "🫐": "fraochán", + "🥝": "cíobhaí", + "🍅": "tráta", + "🫒": "ológ", + "🥥": "cnó cócó", + "🥑": "abhacád", + "🍆": "ubhthoradh", + "🥕": "meacan dearg", + "🌽": "dias arbhair", + "🌶️": "píobar te", + "🥬": "glasra duilleach", + "🥦": "brocailí", + "🧅": "oiniún", + "🍄": "beacán", + "🥜": "pis talún", + "🥐": "croissant", + "🥖": "baguette", + "🥨": "preatsal", + "🥯": "béigeal", + "🥞": "pancóga", + "🧇": "vaifeal", + "🍔": "burgar", + "🍕": "píotsa", + "🌭": "brocaire te", + "🌮": "taco", + "🍿": "grán rósta", + "🦀": "portán", + "🦞": "gliomach", + "🍨": "uachtar reoite", + "🍩": "taoschnó", + "🍪": "briosca", + "🎂": "cáca breithe", + "🧁": "cístín cupa", + "🍫": "seacláid", + "🍬": "milseán", + "🍭": "líreacán", + "🫖": "taephota", + "🧃": "bosca dí", + "🧉": "maité", + "🧭": "compás", + "🏔️": "sliabh le sneachta", + "🌋": "bolcán", + "🏕️": "ag campáil", + "🏝️": "oileán díthreibhe", + "🏡": "teach le gairdín", + "⛲️": "scairdeán", + "🎠": "capall an roithleagáin ró", + "🎡": "roth Ferris", + "🎢": "rollchóstóir", + "💈": "cuaille bearbóra", + "🚆": "traein", + "🚋": "carráiste tram", + "🚍️": "bus atá ag teacht", + "🚕": "tacsaí", + "🚗": "gluaisteán", + "🚚": "trucail seachadta", + "🚜": "tarracóir", + "🛵": "scútar", + "🛺": "ricseá uathoibríoch", + "🛴": "scútar gan inneall", + "🛹": "clár scátála", + "🛼": "scáta rothach", + "⚓️": "ancaire", + "⛵️": "bád seoil", + "🛶": "canú", + "🚤": "luasbhád", + "🚢": "long", + "✈️": "eitleán", + "🚁": "héileacaptar", + "🚠": "cáblabhealach sléibhe", + "🛰️": "satailít", + "🚀": "roicéad", + "🛸": "sásar eitilte", + "⏰": "clog aláraim", + "🌙": "corrán gealaí", + "🌡️": "teirmiméadar", + "☀️": "grian", + "🪐": "pláinéad le fáinne", + "🌟": "réalta ag lonrú", + "🌀": "cioclón", + "🌈": "bogha báistí", + "☂️": "scáth báistí", + "❄️": "calóg shneachta", + "☄️": "cóiméad", + "🔥": "tine", + "💧": "braoinín", + "🌊": "tonn san uisce", + "🎃": "Seán na gealaí", + "✨": "drithlí", + "🎈": "balún", + "🎉": "pléiscín cóisire", + "🎏": "sraoilleán éisc", + "🎀": "ribín", + "🎁": "bronntanas", + "🎟️": "ticéid cead isteach", + "🏆️": "corn", + "⚽️": "liathróid sacair", + "🏀": "cispheil", + "🏈": "peil Mheiriceánach", + "🎾": "leadóg", + "🥏": "diosca eitilte", + "🏓": "ping pang", + "🏸": "badmantan", + "🤿": "masc tumadóireachta", + "🥌": "cloch churlála", + "🎯": "buille díreach", + "🪀": "yó-yó", + "🪁": "eitleog", + "🔮": "cruinneog chriostail", + "🎲": "dísle", + "🧩": "mír mearaí", + "🎨": "pailéad dathanna", + "🧵": "snáth", + "👕": "t-léine", + "🧦": "stocaí", + "👗": "gúna", + "🩳": "brístí gearra", + "🎒": "mála scoile", + "👟": "bróg reatha", + "👑": "coróin", + "🧢": "caipín speiceach", + "💄": "béaldath", + "💍": "fáinne", + "💎": "geamchloch", + "📢": "callaire", + "🎶": "nótaí ceoil", + "🎙️": "micreafón stiúideo", + "📻️": "raidió", + "🎷": "sacsafón", + "🪗": "bosca ceoil", + "🎸": "giotár", + "🎺": "trumpa", + "🎻": "veidhlín", + "🪕": "bainseó", + "🥁": "druma", + "☎️": "teileafón", + "🔋": "ceallra", + "💿️": "diosca optúil", + "🧮": "abacas", + "🎬️": "clabaire", + "💡": "bolgán solais", + "🔦": "tóirse", + "🏮": "laindéar dearg", + "📕": "leabhar dúnta", + "🏷️": "lipéad", + "💳️": "cárta creidmheasa", + "✏️": "peann luaidhe", + "🖌️": "scuab phéinteála", + "🖍️": "crián", + "📌": "tacóid ordóige", + "📎": "fáiscín páipéir", + "🔑": "eochair", + "🪃": "búmarang", + "🏹": "saighead is bogha", + "⚖️": "scála", + "🧲": "maighnéad", + "🧪": "triaileadán", + "🧬": "ADN", + "🔬": "micreascóp", + "🔭": "teileascóp", + "📡": "aeróg satailíte", + "🪑": "cathaoir", + "🧹": "scruab", + "🗿": "dealbh Oileán na Cásca" + }, + "he": { + "👽️": "חייזר", + "🤖": "רובוט", + "🧠": "מוח", + "👁️": "עין", + "🧙": "קוסם", + "🧚": "פיה", + "🧜": "בתולת ים", + "🐵": "פני קוף", + "🦧": "אורנגאוטן", + "🐶": "פני כלב", + "🐺": "זאב", + "🦊": "שועל", + "🦝": "רקון", + "🐱": "פני חתול", + "🦁": "אריה", + "🐯": "פני טיגריס", + "🐴": "פני סוס", + "🦄": "חד קרן", + "🦓": "זברה", + "🦌": "אייל", + "🐮": "פני פרה", + "🐷": "פני חזיר", + "🐗": "חזיר בר", + "🐪": "גמל", + "🦙": "למה", + "🦒": "ג׳ירף", + "🐘": "פיל", + "🦣": "ממותה", + "🦏": "קרנף", + "🐭": "פני עכבר", + "🐰": "פני ארנב", + "🐿️": "סנאי", + "🦔": "קיפוד", + "🦇": "עטלף", + "🐻": "דוב", + "🐨": "קואלה", + "🦥": "עצלן", + "🦦": "לוטרה", + "🦘": "קנגורו", + "🐥": "אפרוח מלפנים", + "🐦️": "ציפור", + "🕊️": "יונה", + "🦆": "ברווז", + "🦉": "ינשוף", + "🦤": "ציפור דודו", + "🪶": "נוצה", + "🦩": "פלמינגו", + "🦚": "טווס", + "🦜": "תוכי", + "🐊": "תנין", + "🐢": "צב", + "🦎": "לטאה", + "🐍": "נחש", + "🐲": "פני דרקון", + "🦕": "סרופוד", + "🐳": "לווייתן מתיז סילון מים", + "🐬": "דולפין", + "🦭": "כלב ים", + "🐟️": "דג", + "🐠": "דג טרופי", + "🦈": "כריש", + "🐙": "תמנון", + "🐚": "צדף מסולסל", + "🐌": "חלזון", + "🦋": "פרפר", + "🐛": "זחל", + "🐝": "דבורה", + "🐞": "פרת משה רבנו", + "💐": "זר פרחים", + "🌹": "ורד", + "🌺": "היביסקוס", + "🌻": "חמניה", + "🌷": "צבעוני", + "🌲": "עץ ירוק-עד", + "🌳": "עץ נשיר", + "🌴": "עץ דקל", + "🌵": "קקטוס", + "🌿": "צמח תבלין", + "🍁": "עלה מייפל", + "🍇": "ענבים", + "🍈": "מלון", + "🍉": "אבטיח", + "🍊": "קלמנטינה", + "🍋": "לימון", + "🍌": "בננה", + "🍍": "אננס", + "🥭": "מנגו", + "🍏": "תפוח ירוק", + "🍐": "אגס", + "🍑": "אפרסק", + "🍒": "דובדבנים", + "🍓": "תות שדה", + "🫐": "אוכמניות", + "🥝": "קיווי", + "🍅": "עגבנייה", + "🫒": "זית", + "🥥": "קוקוס", + "🥑": "אבוקדו", + "🍆": "חציל", + "🥕": "גזר", + "🌽": "קלח תירס", + "🌶️": "פלפל חריף", + "🥬": "עלים ירוקים", + "🥦": "ברוקולי", + "🧅": "בצל", + "🍄": "פטריה", + "🥜": "בוטנים", + "🥐": "קרואסון", + "🥖": "באגט", + "🥨": "בייגלה", + "🥯": "בייגל", + "🥞": "פנקייקס", + "🧇": "וופל", + "🍔": "המבורגר", + "🍕": "פיצה", + "🌭": "נקניקייה בלחמניה", + "🌮": "טאקו", + "🍿": "פופקורן", + "🦀": "סרטן", + "🦞": "לובסטר", + "🍨": "גלידה", + "🍩": "סופגניה", + "🍪": "עוגיה", + "🎂": "עוגת יום הולדת", + "🧁": "קפקייק", + "🍫": "חפיסת שוקולד", + "🍬": "סוכריה", + "🍭": "סוכריה על מקל", + "🫖": "קנקן תה", + "🧃": "קופסת מיץ", + "🧉": "מאטה", + "🧭": "מצפן", + "🏔️": "הר עם פסגה מושלגת", + "🌋": "הר געש", + "🏕️": "מחנאות", + "🏝️": "אי בודד", + "🏡": "בית עם גינה", + "⛲️": "מזרקה", + "🎠": "סוס בקרוסלה", + "🎡": "גלגל ענק", + "🎢": "רכבת הרים", + "💈": "עמוד מספרה", + "🚆": "רכבת", + "🚋": "קרון חשמלית", + "🚍️": "אוטובוס מלפנים", + "🚕": "מונית", + "🚗": "מכונית", + "🚚": "משאית", + "🚜": "טרקטור", + "🛵": "קטנוע", + "🛺": "ריקשה ממונעת", + "🛴": "קורקינט", + "🛹": "סקייטבורד", + "🛼": "גלגיליות", + "⚓️": "עוגן", + "⛵️": "סירת מפרש", + "🛶": "קאנו", + "🚤": "סירת מירוץ", + "🚢": "ספינה", + "✈️": "מטוס", + "🚁": "מסוק", + "🚠": "קרון רכבל", + "🛰️": "לוויין", + "🚀": "טיל", + "🛸": "צלחת מעופפת", + "⏰": "שעון מעורר", + "🌙": "סהר", + "🌡️": "מדחום", + "☀️": "שמש", + "🪐": "כוכב לכת עם טבעות", + "🌟": "כוכב זוהר", + "🌀": "הוריקן", + "🌈": "קשת בענן", + "☂️": "מטריה", + "❄️": "פתית שלג", + "☄️": "שביט", + "🔥": "אש", + "💧": "טיפה", + "🌊": "גל", + "🎃": "מנורת דלעת", + "✨": "נצנוץ", + "🎈": "בלון", + "🎉": "פצצת קונפטי", + "🎏": "דגלים בצורת דגי קוי", + "🎀": "סרט מתנה", + "🎁": "קופסת מתנה", + "🎟️": "כרטיס כניסה", + "🏆️": "גביע", + "⚽️": "כדורגל", + "🏀": "כדור סל", + "🏈": "פוטבול אמריקאי", + "🎾": "כדור טניס", + "🥏": "פריזבי", + "🏓": "פינג פונג", + "🏸": "בדמינטון", + "🤿": "מסיכת צלילה", + "🥌": "אבן קרלינג", + "🎯": "פגיעה בול", + "🪀": "יו-יו", + "🪁": "עפיפון", + "🔮": "כדור בדולח", + "🎲": "קוביית משחק", + "🧩": "חלק בפאזל", + "🎨": "פלטת צבעים", + "🧵": "חוט", + "👕": "חולצת טי", + "🧦": "גרביים", + "👗": "שמלה", + "🩳": "מכנסיים קצרים", + "🎒": "ילקוט", + "👟": "נעל ריצה", + "👑": "כתר", + "🧢": "כובע מצחייה", + "💄": "שפתון", + "💍": "טבעת", + "💎": "יהלום", + "📢": "מגפון", + "🎶": "תווים מוזיקליים", + "🎙️": "מיקרופון אולפן", + "📻️": "רדיו", + "🎷": "סקסופון", + "🪗": "אקורדיון", + "🎸": "גיטרה", + "🎺": "חצוצרה", + "🎻": "כינור", + "🪕": "בנג׳ו", + "🥁": "תוף", + "☎️": "טלפון רגיל", + "🔋": "סוללה", + "💿️": "דיסק אופטי", + "🧮": "חשבונייה", + "🎬️": "קלאפר", + "💡": "נורה", + "🔦": "פנס", + "🏮": "פנס נייר אדום", + "📕": "ספר סגור", + "🏷️": "תווית", + "💳️": "כרטיס אשראי", + "✏️": "עיפרון", + "🖌️": "מכחול", + "🖍️": "צבע פנדה", + "📌": "נעץ", + "📎": "אטב נייר", + "🔑": "מפתח", + "🪃": "בומרנג", + "🏹": "חץ וקשת", + "⚖️": "מאזניים", + "🧲": "מגנט", + "🧪": "מבחנה", + "🧬": "די אנ איי", + "🔬": "מיקרוסקופ", + "🔭": "טלסקופ", + "📡": "צלחת לוויין", + "🪑": "כיסא", + "🧹": "מטאטא", + "🗿": "פסל מאיי הפסחא" + }, + "hu": { + "👽️": "földönkívüli", + "🤖": "robot", + "🧠": "agy", + "👁️": "szem", + "🧙": "varázsló", + "🧚": "tündér", + "🧜": "sellő", + "🐵": "majomfej", + "🦧": "orangután", + "🐶": "kutyafej", + "🐺": "farkasfej", + "🦊": "rókafej", + "🦝": "mosómedve", + "🐱": "macskafej", + "🦁": "oroszlánfej", + "🐯": "tigrisfej", + "🐴": "lófej", + "🦄": "unikornisfej", + "🦓": "zebra", + "🦌": "szarvas", + "🐮": "tehénfej", + "🐷": "malacfej", + "🐗": "vaddisznó", + "🐪": "teve", + "🦙": "láma", + "🦒": "zsiráf", + "🐘": "elefánt", + "🦣": "mamut", + "🦏": "orrszarvú", + "🐭": "egérfej", + "🐰": "nyúlfej", + "🐿️": "mókus", + "🦔": "sün", + "🦇": "denevér", + "🐻": "medvefej", + "🐨": "koala", + "🦥": "lajhár", + "🦦": "vidra", + "🦘": "kenguru", + "🐥": "előre néző kiscsibe", + "🐦️": "madár", + "🕊️": "galamb", + "🦆": "kacsa", + "🦉": "bagoly", + "🦤": "dodó", + "🪶": "madártoll", + "🦩": "flamingó", + "🦚": "páva", + "🦜": "papagáj", + "🐊": "krokodil", + "🐢": "teknős", + "🦎": "gyík", + "🐍": "kígyó", + "🐲": "sárkányfej", + "🦕": "sauropoda", + "🐳": "fröcskölő bálna", + "🐬": "delfin", + "🦭": "fóka", + "🐟️": "hal", + "🐠": "trópusi hal", + "🦈": "cápa", + "🐙": "polip", + "🐚": "tengeri csiga", + "🐌": "csiga", + "🦋": "pillangó", + "🐛": "rovar", + "🐝": "méh", + "🐞": "katica", + "💐": "csokor", + "🌹": "rózsa", + "🌺": "hibiszkusz", + "🌻": "napraforgó", + "🌷": "tulipán", + "🌲": "örökzöld", + "🌳": "lombhullató fa", + "🌴": "pálmafa", + "🌵": "kaktusz", + "🌿": "gyógynövény", + "🍁": "juharlevél", + "🍇": "szőlő", + "🍈": "sárgadinnye", + "🍉": "görögdinnye", + "🍊": "mandarin", + "🍋": "citrom", + "🍌": "banán", + "🍍": "ananász", + "🥭": "mangó", + "🍏": "zöld alma", + "🍐": "körte", + "🍑": "őszibarack", + "🍒": "cseresznye", + "🍓": "eper", + "🫐": "áfonya", + "🥝": "kivi", + "🍅": "paradicsom", + "🫒": "olajbogyó", + "🥥": "kókuszdió", + "🥑": "avokádó", + "🍆": "padlizsán", + "🥕": "sárgarépa", + "🌽": "kukoricacső", + "🌶️": "erőspaprika", + "🥬": "leveles zöldség", + "🥦": "brokkoli", + "🧅": "hagyma", + "🍄": "gomba", + "🥜": "földimogyoró", + "🥐": "croissant", + "🥖": "bagett", + "🥨": "perec", + "🥯": "bagel", + "🥞": "palacsinta", + "🧇": "gofri", + "🍔": "hamburger", + "🍕": "pizza", + "🌭": "hot dog", + "🌮": "taco", + "🍿": "pattogatott kukorica", + "🦀": "rák", + "🦞": "homár", + "🍨": "fagylalt", + "🍩": "fánk", + "🍪": "sütemény", + "🎂": "születésnapi torta", + "🧁": "cupcake", + "🍫": "csokoládé", + "🍬": "cukorka", + "🍭": "nyalóka", + "🫖": "teáskanna", + "🧃": "italos doboz", + "🧉": "maté", + "🧭": "iránytű", + "🏔️": "hegy hótakaróval", + "🌋": "vulkán", + "🏕️": "sátorozás", + "🏝️": "lakatlan sziget", + "🏡": "ház kerttel", + "⛲️": "szökőkút", + "🎠": "ló a körhintáról", + "🎡": "óriáskerék", + "🎢": "hullámvasút", + "💈": "fodrászcégér", + "🚆": "vonat", + "🚋": "villamoskocsi", + "🚍️": "érkező busz", + "🚕": "taxi", + "🚗": "autó", + "🚚": "teherautó", + "🚜": "traktor", + "🛵": "robogó", + "🛺": "motoros riksa", + "🛴": "roller", + "🛹": "gördeszka", + "🛼": "görkorcsolya", + "⚓️": "vasmacska", + "⛵️": "vitorlás hajó", + "🛶": "kenu", + "🚤": "motoros siklócsónak", + "🚢": "hajó", + "✈️": "repülőgép", + "🚁": "helikopter", + "🚠": "hegyi felvonó", + "🛰️": "műhold", + "🚀": "rakéta", + "🛸": "repülő csészealj", + "⏰": "ébresztőóra", + "🌙": "növekvő hold", + "🌡️": "hőmérő", + "☀️": "nap", + "🪐": "gyűrűs bolygó", + "🌟": "fénylő csillag", + "🌀": "ciklon", + "🌈": "szivárvány", + "☂️": "esernyő", + "❄️": "hópehely", + "☄️": "üstökös", + "🔥": "tűz", + "💧": "csepp", + "🌊": "vízhullám", + "🎃": "töklámpás", + "✨": "szikrák", + "🎈": "léggömb", + "🎉": "partikellékek", + "🎏": "rizspapír pontyok", + "🎀": "szalag", + "🎁": "becsomagolt ajándék", + "🎟️": "belépőjegyek", + "🏆️": "kupa", + "⚽️": "foci", + "🏀": "kosárlabda", + "🏈": "amerikai foci", + "🎾": "tenisz", + "🥏": "frizbi", + "🏓": "pingpong", + "🏸": "tollaslabda", + "🤿": "búvármaszk", + "🥌": "curlingkő", + "🎯": "telitalálat", + "🪀": "jojó", + "🪁": "papírsárkány", + "🔮": "kristálygömb", + "🎲": "dobókocka", + "🧩": "kirakó", + "🎨": "festőpaletta", + "🧵": "cérna", + "👕": "póló", + "🧦": "zokni", + "👗": "ruha", + "🩳": "rövidnadrág", + "🎒": "iskolatáska", + "👟": "futócipő", + "👑": "korona", + "🧢": "sildes sapka", + "💄": "ajakrúzs", + "💍": "gyűrű", + "💎": "ékkő", + "📢": "hangosbeszélő", + "🎶": "hangjegyek", + "🎙️": "stúdiómikrofon", + "📻️": "rádió", + "🎷": "szaxofon", + "🪗": "harmonika", + "🎸": "gitár", + "🎺": "trombita", + "🎻": "hegedű", + "🪕": "bendzsó", + "🥁": "dob", + "☎️": "telefon", + "🔋": "elem", + "💿️": "optikai lemez", + "🧮": "abakusz", + "🎬️": "csapó", + "💡": "villanykörte", + "🔦": "zseblámpa", + "🏮": "piros papírlámpa", + "📕": "becsukott könyv", + "🏷️": "címke", + "💳️": "hitelkártya", + "✏️": "ceruza", + "🖌️": "ecset", + "🖍️": "zsírkréta", + "📌": "rajzszög", + "📎": "gemkapocs", + "🔑": "kulcs", + "🪃": "bumeráng", + "🏹": "íj és nyíl", + "⚖️": "kétkarú mérleg", + "🧲": "mágnes", + "🧪": "kémcső", + "🧬": "DNS", + "🔬": "mikroszkóp", + "🔭": "távcső", + "📡": "parabolaantenna", + "🪑": "szék", + "🧹": "seprű", + "🗿": "moai" + }, + "id": { + "👽️": "alien", + "🤖": "robot", + "🧠": "otak", + "👁️": "satu mata", + "🧙": "magi", + "🧚": "peri", + "🧜": "orang duyung", + "🐵": "wajah monyet", + "🦧": "orangutan", + "🐶": "wajah anjing", + "🐺": "serigala", + "🦊": "rubah", + "🦝": "rakun", + "🐱": "wajah kucing", + "🦁": "singa", + "🐯": "wajah harimau", + "🐴": "wajah kuda", + "🦄": "unicorn", + "🦓": "zebra", + "🦌": "rusa", + "🐮": "wajah sapi", + "🐷": "wajah babi", + "🐗": "babi hutan", + "🐪": "unta", + "🦙": "llama", + "🦒": "jerapah", + "🐘": "gajah", + "🦣": "mamut", + "🦏": "badak", + "🐭": "wajah tikus", + "🐰": "wajah kelinci", + "🐿️": "tupai", + "🦔": "landak", + "🦇": "kelelawar", + "🐻": "beruang", + "🐨": "koala", + "🦥": "kungkang", + "🦦": "berang-berang", + "🦘": "kanguru", + "🐥": "itik bayi menghadap ke depan", + "🐦️": "burung", + "🕊️": "merpati", + "🦆": "bebek", + "🦉": "burung hantu", + "🦤": "dodo", + "🪶": "bulu", + "🦩": "flamingo", + "🦚": "merak", + "🦜": "nuri", + "🐊": "buaya", + "🐢": "kura-kura", + "🦎": "kadal", + "🐍": "ular", + "🐲": "wajah naga", + "🦕": "sauropod", + "🐳": "ikan paus menyembur", + "🐬": "lumba-lumba", + "🦭": "anjing laut", + "🐟️": "ikan", + "🐠": "ikan tropis", + "🦈": "hiu", + "🐙": "gurita", + "🐚": "cangkang spiral", + "🐌": "siput", + "🦋": "kupu-kupu", + "🐛": "serangga kecil", + "🐝": "lebah madu", + "🐞": "kumbang betina", + "💐": "karangan bunga", + "🌹": "mawar", + "🌺": "kembang sepatu", + "🌻": "bunga matahari", + "🌷": "tulip", + "🌲": "pohon hijau abadi", + "🌳": "pohon meranggas", + "🌴": "pohon palem", + "🌵": "kaktus", + "🌿": "herba", + "🍁": "daun maple", + "🍇": "anggur", + "🍈": "melon", + "🍉": "semangka", + "🍊": "buah jeruk", + "🍋": "lemon", + "🍌": "pisang", + "🍍": "nanas", + "🥭": "mangga", + "🍏": "apel hijau", + "🍐": "pir", + "🍑": "persik", + "🍒": "ceri", + "🍓": "stroberi", + "🫐": "blueberry", + "🥝": "buah kiwi", + "🍅": "tomat", + "🫒": "zaitun", + "🥥": "kelapa", + "🥑": "alpukat", + "🍆": "terung", + "🥕": "wortel", + "🌽": "bonggol jagung", + "🌶️": "cabai pedas", + "🥬": "selada hijau", + "🥦": "brokoli", + "🧅": "bawang bombay", + "🍄": "jamur", + "🥜": "kacang tanah", + "🥐": "croissant", + "🥖": "roti baguette", + "🥨": "pretzel", + "🥯": "bagel", + "🥞": "panekuk", + "🧇": "wafel", + "🍔": "hamburger", + "🍕": "pizza", + "🌭": "hot dog", + "🌮": "taco", + "🍿": "popcorn", + "🦀": "kepiting", + "🦞": "lobster", + "🍨": "es krim", + "🍩": "donat", + "🍪": "biskuit", + "🎂": "kue ulang tahun", + "🧁": "kue mangkuk", + "🍫": "sebatang cokelat", + "🍬": "permen", + "🍭": "permen lolipop", + "🫖": "teko", + "🧃": "kotak minuman", + "🧉": "teh mate", + "🧭": "kompas", + "🏔️": "gunung dengan puncak bersalju", + "🌋": "gunung berapi", + "🏕️": "berkemah", + "🏝️": "pulau terpencil", + "🏡": "rumah dengan taman", + "⛲️": "air mancur", + "🎠": "komidi putar", + "🎡": "kincir ria", + "🎢": "roller coaster", + "💈": "tanda salon", + "🚆": "kereta", + "🚋": "gerbong trem", + "🚍️": "bus datang", + "🚕": "taksi", + "🚗": "mobil", + "🚚": "truk pengiriman", + "🚜": "traktor", + "🛵": "motor skuter", + "🛺": "bajaj", + "🛴": "otoped", + "🛹": "papan luncur", + "🛼": "sepatu roda", + "⚓️": "jangkar", + "⛵️": "perahu layar", + "🛶": "kano", + "🚤": "perahu cepat", + "🚢": "kapal", + "✈️": "pesawat", + "🚁": "helikopter", + "🚠": "kereta gantung", + "🛰️": "satelit", + "🚀": "roket", + "🛸": "piring terbang", + "⏰": "jam weker", + "🌙": "bulan sabit", + "🌡️": "termometer", + "☀️": "matahari", + "🪐": "planet bercincin", + "🌟": "bintang bersinar", + "🌀": "topan", + "🌈": "pelangi", + "☂️": "payung", + "❄️": "serpihan salju", + "☄️": "komet", + "🔥": "api", + "💧": "tetesan air", + "🌊": "ombak", + "🎃": "jack-o-lantern", + "✨": "berkilau", + "🎈": "balon", + "🎉": "party popper", + "🎏": "bendera ikan koi", + "🎀": "pita", + "🎁": "kado", + "🎟️": "tiket masuk", + "🏆️": "piala", + "⚽️": "bola sepak", + "🏀": "bola basket", + "🏈": "American football", + "🎾": "tenis", + "🥏": "lempar cakram", + "🏓": "ping pong", + "🏸": "bulu tangkis", + "🤿": "kacamata selam", + "🥌": "batu curling", + "🎯": "dart", + "🪀": "yo-yo", + "🪁": "layang-layang", + "🔮": "bola kristal", + "🎲": "dadu", + "🧩": "keping puzzle", + "🎨": "palet pelukis", + "🧵": "benang", + "👕": "kaos", + "🧦": "kaus kaki", + "👗": "gaun", + "🩳": "celana pendek", + "🎒": "tas sekolah", + "👟": "sepatu lari", + "👑": "mahkota", + "🧢": "topi berlidah", + "💄": "lipstik", + "💍": "cincin", + "💎": "batu permata", + "📢": "pengeras suara", + "🎶": "not-not musik", + "🎙️": "mikrofon studio", + "📻️": "radio", + "🎷": "saksofon", + "🪗": "akordeon", + "🎸": "gitar", + "🎺": "trompet", + "🎻": "biola", + "🪕": "banjo", + "🥁": "drum", + "☎️": "telepon", + "🔋": "baterai", + "💿️": "disk optik", + "🧮": "sempoa", + "🎬️": "papan sutradara", + "💡": "bohlam", + "🔦": "lampu senter", + "🏮": "lampion merah", + "📕": "buku tertutup", + "🏷️": "label", + "💳️": "kartu kredit", + "✏️": "pensil", + "🖌️": "kuas", + "🖍️": "krayon", + "📌": "paku penanda", + "📎": "klip kertas", + "🔑": "kunci", + "🪃": "bumerang", + "🏹": "busur dan panah", + "⚖️": "timbangan gantung", + "🧲": "magnet", + "🧪": "tabung uji", + "🧬": "dna", + "🔬": "mikroskop", + "🔭": "teleskop", + "📡": "antena satelit", + "🪑": "bangku", + "🧹": "sapu", + "🗿": "moai" + }, + "is": { + "👽️": "geimvera", + "🤖": "vélmennisandlit", + "🧠": "heili", + "👁️": "auga", + "🧙": "galdramaður", + "🧚": "álfur", + "🧜": "sæbúi", + "🐵": "apahöfuð", + "🦧": "órangútan", + "🐶": "hundshöfuð", + "🐺": "úlfur", + "🦊": "refur", + "🦝": "þvottabjörn", + "🐱": "kattarhöfuð", + "🦁": "ljón", + "🐯": "tígrisdýrshöfuð", + "🐴": "hestshöfuð", + "🦄": "einhyrningur", + "🦓": "sebrahestur", + "🦌": "´hjartardýr", + "🐮": "kýrhöfuð", + "🐷": "svínshöfuð", + "🐗": "villisvín", + "🐪": "drómedari", + "🦙": "lamadýr", + "🦒": "gíraffi", + "🐘": "fíll", + "🦣": "loðfíll", + "🦏": "nashyrningur", + "🐭": "músarhöfuð", + "🐰": "kanínuhöfuð", + "🐿️": "jarðíkorni", + "🦔": "broddgöltur", + "🦇": "leðurblaka", + "🐻": "björn", + "🐨": "kóalabjörn", + "🦥": "letidýr", + "🦦": "otur", + "🦘": "kengúra", + "🐥": "framhlið hænuunga", + "🐦️": "fugl", + "🕊️": "dúfa", + "🦆": "önd", + "🦉": "ugla", + "🦤": "dúdúfugl", + "🪶": "fjöður", + "🦩": "flamingói", + "🦚": "páfugl", + "🦜": "páfagaukur", + "🐊": "krókódíll", + "🐢": "skjaldbaka", + "🦎": "eðla", + "🐍": "snákur", + "🐲": "drekahöfuð", + "🦕": "graseðla", + "🐳": "blásandi hvalur", + "🐬": "höfrungur", + "🦭": "selur", + "🐟️": "fiskur", + "🐠": "hitabeltisfiskur", + "🦈": "hákarl", + "🐙": "kolkrabbi", + "🐚": "kuðungur", + "🐌": "snigill", + "🦋": "fiðrildi", + "🐛": "skordýr", + "🐝": "hunangsfluga", + "🐞": "maríuhæna", + "💐": "blómvöndur", + "🌹": "rós", + "🌺": "Havaírós", + "🌻": "sólblóm", + "🌷": "túlípani", + "🌲": "sígrænt tré", + "🌳": "sumargrænt tré", + "🌴": "pálmatré", + "🌵": "kaktus", + "🌿": "kryddjurt", + "🍁": "hlynslauf", + "🍇": "vínber", + "🍈": "melóna", + "🍉": "vatnsmelóna", + "🍊": "mandarína", + "🍋": "sítróna", + "🍌": "banani", + "🍍": "ananas", + "🥭": "mangó", + "🍏": "grænt epli", + "🍐": "pera", + "🍑": "ferskja", + "🍒": "kirsuber", + "🍓": "jarðarber", + "🫐": "bláber", + "🥝": "kíví", + "🍅": "tómatur", + "🫒": "ólífa", + "🥥": "kókoshneta", + "🥑": "avókadó", + "🍆": "eggaldin", + "🥕": "gulrót", + "🌽": "maís", + "🌶️": "chilipipar", + "🥬": "kál", + "🥦": "brokkólí", + "🧅": "laukur", + "🍄": "sveppur", + "🥜": "jarðhneta", + "🥐": "Croissant", + "🥖": "fransbrauð", + "🥨": "saltkringla", + "🥯": "beygla", + "🥞": "pönnukökur", + "🧇": "vaffla", + "🍔": "hamborgari", + "🍕": "pítsusneið", + "🌭": "pylsa í brauði", + "🌮": "takó", + "🍿": "popp", + "🦀": "krabbi", + "🦞": "humar", + "🍨": "kúluís", + "🍩": "kleinuhringur", + "🍪": "smákaka", + "🎂": "afmæliskaka", + "🧁": "bollakaka", + "🍫": "súkkulaði", + "🍬": "nammi", + "🍭": "sleikibrjóstsykur", + "🫖": "tekanna", + "🧃": "ferna", + "🧉": "mate", + "🧭": "áttaviti", + "🏔️": "snæviþakinn fjallstindur", + "🌋": "eldfjall", + "🏕️": "tjaldstæði", + "🏝️": "eyðieyja", + "🏡": "hús með garði", + "⛲️": "gosbrunnur", + "🎠": "hringekjuhestur", + "🎡": "parísarhjól", + "🎢": "rússíbani", + "💈": "rakarastofa", + "🚆": "lest", + "🚋": "sporvagn", + "🚍️": "strætó á móti", + "🚕": "leigubíll", + "🚗": "bíll", + "🚚": "flutningabíll", + "🚜": "dráttarvél", + "🛵": "vespa", + "🛺": "vélknúinn léttvagn", + "🛴": "hlaupahjól", + "🛹": "hjólabretti", + "🛼": "hjólaskautar", + "⚓️": "akkeri", + "⛵️": "seglskúta", + "🛶": "kanó", + "🚤": "hraðbátur", + "🚢": "skip", + "✈️": "flugvél", + "🚁": "þyrla", + "🚠": "kláfferja í fjalli", + "🛰️": "gervihnöttur", + "🚀": "eldflaug", + "🛸": "fljúgandi diskur", + "⏰": "vekjaraklukka", + "🌙": "hálfmáni", + "🌡️": "hitamælir", + "☀️": "sól", + "🪐": "pláneta með hringi", + "🌟": "skínandi stjarna", + "🌀": "fellibylur", + "🌈": "regnbogi", + "☂️": "regnhlíf", + "❄️": "snjókorn", + "☄️": "halastjarna", + "🔥": "eldur", + "💧": "dropi", + "🌊": "alda", + "🎃": "hrekkjavökugrasker", + "✨": "stjörnur", + "🎈": "blaðra", + "🎉": "knall", + "🎏": "fiskveifur", + "🎀": "borði", + "🎁": "gjöf", + "🎟️": "aðgöngumiðar", + "🏆️": "verðlaunabikar", + "⚽️": "fótbolti", + "🏀": "körfubolti", + "🏈": "amerískur fótbolti", + "🎾": "tennis", + "🥏": "frisbídiskur", + "🏓": "borðtennis", + "🏸": "badminton", + "🤿": "köfunargríma", + "🥌": "krullusteinn", + "🎯": "skotmark", + "🪀": "jójó", + "🪁": "flugdreki", + "🔮": "kristalskúla", + "🎲": "teningur", + "🧩": "púsl", + "🎨": "litapalletta", + "🧵": "tvinni", + "👕": "stuttermabolur", + "🧦": "sokkar", + "👗": "kjóll", + "🩳": "stuttbuxur", + "🎒": "skólataska", + "👟": "íþróttaskór", + "👑": "kóróna", + "🧢": "derhúfa", + "💄": "varalitur", + "💍": "hringur", + "💎": "gimsteinn", + "📢": "Almannavarnahátalari", + "🎶": "nótur", + "🎙️": "hljóðnemi í hljóðveri", + "📻️": "útvarp", + "🎷": "saxófónn", + "🪗": "harmonika", + "🎸": "gítar", + "🎺": "trompet", + "🎻": "fiðla", + "🪕": "banjó", + "🥁": "tromma", + "☎️": "sími", + "🔋": "rafhlaða", + "💿️": "blu-ray", + "🧮": "talnagrind", + "🎬️": "klapptré", + "💡": "ljósapera", + "🔦": "vasaljós", + "🏮": "rauður lampi", + "📕": "lokuð bók", + "🏷️": "merkimiði", + "💳️": "kreditkort", + "✏️": "blýantur", + "🖌️": "málningarpensill", + "🖍️": "vaxlitur", + "📌": "teiknibóla", + "📎": "bréfaklemma", + "🔑": "lykill", + "🪃": "búmerang", + "🏹": "bogi og ör", + "⚖️": "vog", + "🧲": "segull", + "🧪": "tilraunaglas", + "🧬": "dna", + "🔬": "smásjá", + "🔭": "sjónauki", + "📡": "gervihnattaloftnet", + "🪑": "stóll", + "🧹": "kústur", + "🗿": "moyai-stytta" + }, + "it": { + "👽️": "alieno", + "🤖": "faccina di robot", + "🧠": "cervello", + "👁️": "occhio", + "🧙": "mago", + "🧚": "fata", + "🧜": "sirena", + "🐵": "muso di scimmia", + "🦧": "orangotango", + "🐶": "muso di cane", + "🐺": "lupo", + "🦊": "volpe", + "🦝": "procione", + "🐱": "muso di gatto", + "🦁": "leone", + "🐯": "muso di tigre", + "🐴": "muso di cavallo", + "🦄": "unicorno", + "🦓": "zebra", + "🦌": "cervo", + "🐮": "muso di mucca", + "🐷": "muso di maiale", + "🐗": "cinghiale", + "🐪": "dromedario", + "🦙": "lama", + "🦒": "giraffa", + "🐘": "elefante", + "🦣": "mammut", + "🦏": "rinoceronte", + "🐭": "muso di topo", + "🐰": "muso di coniglio", + "🐿️": "scoiattolo", + "🦔": "riccio", + "🦇": "pipistrello", + "🐻": "orso", + "🐨": "koala", + "🦥": "bradipo", + "🦦": "lontra", + "🦘": "canguro", + "🐥": "pulcino visto di fronte", + "🐦️": "uccello", + "🕊️": "colomba", + "🦆": "anatra", + "🦉": "gufo", + "🦤": "dodo", + "🪶": "piuma", + "🦩": "fenicottero", + "🦚": "pavone", + "🦜": "pappagallo", + "🐊": "coccodrillo", + "🐢": "tartaruga", + "🦎": "lucertola", + "🐍": "serpente", + "🐲": "testa di drago", + "🦕": "sauropode", + "🐳": "balena che spruzza acqua", + "🐬": "delfino", + "🦭": "foca", + "🐟️": "pesce", + "🐠": "pesce tropicale", + "🦈": "squalo", + "🐙": "polpo", + "🐚": "conchiglia", + "🐌": "lumaca", + "🦋": "farfalla", + "🐛": "insetto", + "🐝": "ape", + "🐞": "coccinella", + "💐": "mazzo di fiori", + "🌹": "rosa", + "🌺": "ibisco", + "🌻": "girasole", + "🌷": "tulipano", + "🌲": "albero sempreverde", + "🌳": "albero deciduo", + "🌴": "palma", + "🌵": "cactus", + "🌿": "pianta", + "🍁": "foglia d’acero", + "🍇": "uva", + "🍈": "melone", + "🍉": "anguria", + "🍊": "mandarino", + "🍋": "limone", + "🍌": "banana", + "🍍": "ananas", + "🥭": "mango", + "🍏": "mela verde", + "🍐": "pera", + "🍑": "pesca", + "🍒": "ciliegie", + "🍓": "fragola", + "🫐": "mirtilli", + "🥝": "kiwi", + "🍅": "pomodoro", + "🫒": "oliva", + "🥥": "cocco", + "🥑": "avocado", + "🍆": "melanzana", + "🥕": "carota", + "🌽": "pannocchia", + "🌶️": "peperoncino", + "🥬": "verdure a foglia", + "🥦": "broccoli", + "🧅": "cipolla", + "🍄": "fungo", + "🥜": "arachidi", + "🥐": "croissant", + "🥖": "baguette", + "🥨": "pretzel", + "🥯": "bagel", + "🥞": "pancake", + "🧇": "waffle", + "🍔": "hamburger", + "🍕": "pizza", + "🌭": "hot dog", + "🌮": "taco", + "🍿": "popcorn", + "🦀": "granchio", + "🦞": "aragosta", + "🍨": "coppa di gelato", + "🍩": "ciambella", + "🍪": "biscotto", + "🎂": "torta di compleanno", + "🧁": "cupcake", + "🍫": "cioccolato", + "🍬": "caramella", + "🍭": "lecca lecca", + "🫖": "teiera", + "🧃": "bevanda monodose", + "🧉": "mate", + "🧭": "bussola", + "🏔️": "montagna innevata", + "🌋": "vulcano", + "🏕️": "campeggio", + "🏝️": "isola deserta", + "🏡": "casa con giardino", + "⛲️": "fontana", + "🎠": "cavallo da giostra", + "🎡": "ruota panoramica", + "🎢": "montagne russe", + "💈": "barbiere", + "🚆": "treno", + "🚋": "vagone del tram", + "🚍️": "bus in arrivo", + "🚕": "taxi", + "🚗": "auto", + "🚚": "camion", + "🚜": "trattore", + "🛵": "scooter", + "🛺": "risciò a motore", + "🛴": "monopattino", + "🛹": "skateboard", + "🛼": "pattini a rotelle", + "⚓️": "ancora", + "⛵️": "barca a vela", + "🛶": "canoa", + "🚤": "motoscafo", + "🚢": "nave", + "✈️": "aeroplano", + "🚁": "elicottero", + "🚠": "funivia", + "🛰️": "satellite", + "🚀": "razzo", + "🛸": "disco volante", + "⏰": "sveglia", + "🌙": "spicchio di luna", + "🌡️": "termometro", + "☀️": "sole", + "🪐": "pianeta con satellite", + "🌟": "stella che brilla", + "🌀": "ciclone", + "🌈": "arcobaleno", + "☂️": "ombrello", + "❄️": "fiocco di neve", + "☄️": "cometa", + "🔥": "fuoco", + "💧": "goccia", + "🌊": "onda", + "🎃": "zucca di Halloween", + "✨": "stelline", + "🎈": "palloncino", + "🎉": "spara coriandoli", + "🎏": "aquilone a forma di carpa", + "🎀": "fiocco", + "🎁": "regalo", + "🎟️": "biglietto d’ingresso", + "🏆️": "coppa", + "⚽️": "pallone da calcio", + "🏀": "palla da pallacanestro", + "🏈": "football americano", + "🎾": "tennis", + "🥏": "frisbee", + "🏓": "ping pong", + "🏸": "badminton", + "🤿": "maschera da sub", + "🥌": "stone da curling", + "🎯": "bersaglio", + "🪀": "yo-yo", + "🪁": "aquilone", + "🔮": "sfera di cristallo", + "🎲": "dado", + "🧩": "pezzo di puzzle", + "🎨": "tavolozza", + "🧵": "filo", + "👕": "t-shirt", + "🧦": "calzini", + "👗": "vestito", + "🩳": "pantaloncini", + "🎒": "zaino", + "👟": "scarpa sportiva", + "👑": "corona", + "🧢": "cappello con visiera", + "💄": "rossetto", + "💍": "anello", + "💎": "gemma", + "📢": "altoparlante", + "🎶": "note musicali", + "🎙️": "microfono radiofonico", + "📻️": "radio", + "🎷": "sassofono", + "🪗": "fisarmonica", + "🎸": "chitarra", + "🎺": "tromba", + "🎻": "violino", + "🪕": "banjo", + "🥁": "tamburo", + "☎️": "telefono fisso", + "🔋": "batteria", + "💿️": "disco ottico", + "🧮": "abaco", + "🎬️": "ciak", + "💡": "lampadina", + "🔦": "torcia", + "🏮": "lanterna rossa", + "📕": "libro chiuso", + "🏷️": "etichetta", + "💳️": "carta di credito", + "✏️": "matita", + "🖌️": "pennello", + "🖍️": "pastello a cera", + "📌": "puntina", + "📎": "graffetta", + "🔑": "chiave", + "🪃": "boomerang", + "🏹": "arco e freccia", + "⚖️": "bilancia a doppio piatto", + "🧲": "calamita", + "🧪": "provetta", + "🧬": "dna", + "🔬": "microscopio", + "🔭": "telescopio", + "📡": "antenna satellitare", + "🪑": "sedia", + "🧹": "scopa", + "🗿": "Moai" + }, + "ja": { + "👽️": "エイリアン", + "🤖": "ロボット", + "🧠": "脳", + "👁️": "片目", + "🧙": "魔法使い", + "🧚": "妖精", + "🧜": "人魚", + "🐵": "サルの顔", + "🦧": "オランウータン", + "🐶": "イヌの顔", + "🐺": "オオカミの顔", + "🦊": "キツネの顔", + "🦝": "アライグマ", + "🐱": "ネコの顔", + "🦁": "ライオンの顔", + "🐯": "トラの顔", + "🐴": "馬の顔", + "🦄": "ユニコーンの顔", + "🦓": "シマウマ", + "🦌": "シカ", + "🐮": "牛の顔", + "🐷": "ブタの顔", + "🐗": "イノシシ", + "🐪": "ラクダ", + "🦙": "ラマ", + "🦒": "キリン", + "🐘": "ゾウ", + "🦣": "マンモス", + "🦏": "サイ", + "🐭": "ネズミの顔", + "🐰": "ウサギの顔", + "🐿️": "リス", + "🦔": "ハリネズミ", + "🦇": "コウモリ", + "🐻": "クマの顔", + "🐨": "コアラ", + "🦥": "ナマケモノ", + "🦦": "カワウソ", + "🦘": "カンガルー", + "🐥": "前を向いているひよこ", + "🐦️": "鳥", + "🕊️": "ハト", + "🦆": "カモ", + "🦉": "フクロウ", + "🦤": "ドードー", + "🪶": "羽", + "🦩": "フラミンゴ", + "🦚": "クジャク", + "🦜": "オウム", + "🐊": "ワニ", + "🐢": "カメ", + "🦎": "トカゲ", + "🐍": "ヘビ", + "🐲": "ドラゴンの顔", + "🦕": "草食恐竜", + "🐳": "潮吹きクジラ", + "🐬": "イルカ", + "🦭": "アザラシ", + "🐟️": "魚", + "🐠": "熱帯魚", + "🦈": "サメ", + "🐙": "タコ", + "🐚": "巻き貝", + "🐌": "かたつむり", + "🦋": "チョウ", + "🐛": "毛虫", + "🐝": "ミツバチ", + "🐞": "テントウムシ", + "💐": "花束", + "🌹": "バラ", + "🌺": "ハイビスカス", + "🌻": "ヒマワリ", + "🌷": "チューリップ", + "🌲": "常緑樹", + "🌳": "落葉樹", + "🌴": "ヤシの木", + "🌵": "サボテン", + "🌿": "ハーブ", + "🍁": "かえで", + "🍇": "ぶどう", + "🍈": "メロン", + "🍉": "スイカ", + "🍊": "みかん", + "🍋": "レモン", + "🍌": "バナナ", + "🍍": "パイナップル", + "🥭": "マンゴー", + "🍏": "青リンゴ", + "🍐": "洋ナシ", + "🍑": "桃", + "🍒": "さくらんぼ", + "🍓": "いちご", + "🫐": "ブルーベリー", + "🥝": "キウイフルーツ", + "🍅": "トマト", + "🫒": "オリーブ", + "🥥": "ココナツ", + "🥑": "アボカド", + "🍆": "ナス", + "🥕": "人参", + "🌽": "とうもろこし", + "🌶️": "とうがらし", + "🥬": "葉野菜", + "🥦": "ブロッコリー", + "🧅": "タマネギ", + "🍄": "キノコ", + "🥜": "ピーナッツ", + "🥐": "クロワッサン", + "🥖": "バゲット", + "🥨": "プレッツェル", + "🥯": "ベーグル", + "🥞": "パンケーキ", + "🧇": "ワッフル", + "🍔": "ハンバーガー", + "🍕": "ピザ", + "🌭": "ホットドッグ", + "🌮": "タコス", + "🍿": "ポップコーン", + "🦀": "カニ", + "🦞": "ザリガニ", + "🍨": "アイスクリーム", + "🍩": "ドーナツ", + "🍪": "クッキー", + "🎂": "バースデーケーキ", + "🧁": "カップケーキ", + "🍫": "チョコレート", + "🍬": "キャンディ", + "🍭": "ぺろぺろキャンディ", + "🫖": "ティーポット", + "🧃": "紙パック飲料", + "🧉": "マテ茶", + "🧭": "コンパス", + "🏔️": "雪山", + "🌋": "火山", + "🏕️": "キャンプ", + "🏝️": "無人島", + "🏡": "庭付きの家", + "⛲️": "噴水", + "🎠": "メリーゴーランド", + "🎡": "観覧車", + "🎢": "ジェットコースター", + "💈": "床屋", + "🚆": "電車正面", + "🚋": "路面電車", + "🚍️": "バス正面", + "🚕": "タクシー", + "🚗": "自動車", + "🚚": "トラック", + "🚜": "トラクター", + "🛵": "スクーター", + "🛺": "三輪タクシー", + "🛴": "キックボード", + "🛹": "スケートボード", + "🛼": "ローラースケート", + "⚓️": "錨", + "⛵️": "ヨット", + "🛶": "カヌー", + "🚤": "スピードボート", + "🚢": "船", + "✈️": "飛行機", + "🚁": "ヘリコプター", + "🚠": "ケーブルカー", + "🛰️": "人工衛星", + "🚀": "ロケット", + "🛸": "空飛ぶ円盤", + "⏰": "目覚まし時計", + "🌙": "三日月", + "🌡️": "温度計", + "☀️": "太陽", + "🪐": "環のある惑星", + "🌟": "きらきら星", + "🌀": "渦巻き", + "🌈": "虹", + "☂️": "傘", + "❄️": "雪の結晶", + "☄️": "彗星", + "🔥": "火", + "💧": "水滴", + "🌊": "波", + "🎃": "ハロウィンかぼちゃ", + "✨": "きらきら", + "🎈": "風船", + "🎉": "クラッカー", + "🎏": "こいのぼり", + "🎀": "リボン", + "🎁": "プレゼント", + "🎟️": "入場券", + "🏆️": "トロフィー", + "⚽️": "サッカー", + "🏀": "バスケットボール", + "🏈": "アメフト", + "🎾": "テニス", + "🥏": "フリスビー", + "🏓": "卓球", + "🏸": "バドミントン", + "🤿": "ダイビング マスク", + "🥌": "カーリング", + "🎯": "的", + "🪀": "ヨーヨー", + "🪁": "たこ", + "🔮": "水晶玉", + "🎲": "サイコロ", + "🧩": "ジグソーパズル", + "🎨": "絵の具パレット", + "🧵": "糸", + "👕": "Tシャツ", + "🧦": "ソックス", + "👗": "ワンピース", + "🩳": "ショーツ", + "🎒": "バックパック", + "👟": "スニーカー", + "👑": "王冠", + "🧢": "キャップ", + "💄": "口紅", + "💍": "指輪", + "💎": "宝石", + "📢": "拡声器", + "🎶": "複数の音符", + "🎙️": "スタジオマイク", + "📻️": "ラジオ", + "🎷": "サックス", + "🪗": "アコーディオン", + "🎸": "ギター", + "🎺": "トランペット", + "🎻": "バイオリン", + "🪕": "バンジョー", + "🥁": "ドラム", + "☎️": "固定電話", + "🔋": "電池", + "💿️": "CD", + "🧮": "そろばん", + "🎬️": "カチンコ", + "💡": "電球", + "🔦": "懐中電灯", + "🏮": "赤ちょうちん", + "📕": "閉じた本", + "🏷️": "荷札", + "💳️": "クレジットカード", + "✏️": "鉛筆", + "🖌️": "絵筆", + "🖍️": "クレヨン", + "📌": "押しピン", + "📎": "クリップ", + "🔑": "鍵", + "🪃": "ブーメラン", + "🏹": "弓矢", + "⚖️": "天秤", + "🧲": "U字型磁石", + "🧪": "試験管", + "🧬": "DNA", + "🔬": "顕微鏡", + "🔭": "望遠鏡", + "📡": "パラボラアンテナ", + "🪑": "椅子", + "🧹": "ほうき", + "🗿": "モアイ" + }, + "ka": { + "👽️": "უცხოპლანეტელი", + "🤖": "რობოტის სახე", + "🧠": "ტვინი", + "👁️": "თვალი", + "🧙": "ჯადოქარი", + "🧚": "ფერია", + "🧜": "ადამიანთევზა", + "🐵": "მაიმუნის სახე", + "🦧": "ორანგუტანი", + "🐶": "ძაღლის სახე", + "🐺": "მგლის სახე", + "🦊": "მელიის თავი", + "🦝": "ენოტი", + "🐱": "კატის სახე", + "🦁": "ლომის სახე", + "🐯": "ვეფხვის სახე", + "🐴": "ცხენის სახე", + "🦄": "ზღაპრული მარტორქის სახე", + "🦓": "ზებრა", + "🦌": "ირემი", + "🐮": "ძროხის სახე", + "🐷": "ღორის სახე", + "🐗": "ტახი", + "🐪": "აქლემი", + "🦙": "ლამა", + "🦒": "ჟირაფი", + "🐘": "სპილო", + "🦣": "მამონტი", + "🦏": "მარტორქა", + "🐭": "თაგვის სახე", + "🐰": "კურდღლის სახე", + "🐿️": "ციყვი", + "🦔": "ზღარბი", + "🦇": "ღამურა", + "🐻": "დათვის სახე", + "🐨": "კოალა", + "🦥": "ზარმაცა", + "🦦": "წავი", + "🦘": "კენგურუ", + "🐥": "პატარა წიწილა წინიდან", + "🐦️": "ჩიტი", + "🕊️": "მტრედი", + "🦆": "იხვი", + "🦉": "ბუ", + "🦤": "დოდო", + "🪶": "ბუმბული", + "🦩": "ფლამინგო", + "🦚": "ფარშევანგი", + "🦜": "თუთიყუში", + "🐊": "ნიანგი", + "🐢": "კუ", + "🦎": "ხვლიკი", + "🐍": "გველი", + "🐲": "დრაკონის სახე", + "🦕": "ზაუროპოდი", + "🐳": "ვეშაპი ჭავლით", + "🐬": "დელფინი", + "🦭": "სელაპი", + "🐟️": "თევზი", + "🐠": "ტროპიკული თევზი", + "🦈": "ზვიგენი", + "🐙": "რვაფეხა", + "🐚": "სპირალური ნიჟარა", + "🐌": "ლოკოკინა", + "🦋": "პეპელა", + "🐛": "ბაღლინჯო", + "🐝": "ფუტკარი", + "🐞": "ჭიამაია", + "💐": "თაიგული", + "🌹": "ვარდი", + "🌺": "ჰიბისკუსი", + "🌻": "მზესუმზირა", + "🌷": "ტიტა", + "🌲": "მარადმწვანე", + "🌳": "ფოთლოვანი ხე", + "🌴": "პალმა", + "🌵": "კაქტუსი", + "🌿": "სამკურნალო მცენარე", + "🍁": "ნეკერჩხლის ფოთოლი", + "🍇": "ყურძენი", + "🍈": "ნესვი", + "🍉": "საზამთრო", + "🍊": "მანდარინი", + "🍋": "ლიმონი", + "🍌": "ბანანი", + "🍍": "ანანასი", + "🥭": "მანგო", + "🍏": "მწვანე ვაშლი", + "🍐": "მსხალი", + "🍑": "ატამი", + "🍒": "ალუბალი", + "🍓": "მარწყვი", + "🫐": "მოცვი", + "🥝": "კივი", + "🍅": "პამიდორი", + "🫒": "ზეითუნი", + "🥥": "ქოქოსი", + "🥑": "ავოკადო", + "🍆": "ბადრიჯანი", + "🥕": "სტაფილო", + "🌽": "სიმინდის ტარო", + "🌶️": "ცხარე წიწაკა", + "🥬": "სალათის ფოთოლი", + "🥦": "ბროკოლი", + "🧅": "ხახვი", + "🍄": "სოკო", + "🥜": "მიწის თხილი", + "🥐": "კრუასანი", + "🥖": "ბაგეტი", + "🥨": "პრეცელი", + "🥯": "ბეიგელი", + "🥞": "ბლინები", + "🧇": "ვაფლი", + "🍔": "ჰამბურგერი", + "🍕": "პიცა", + "🌭": "ჰოთდოგი", + "🌮": "ტაკო", + "🍿": "ბატი-ბუტი", + "🦀": "კიბორჩხალა", + "🦞": "კიბო", + "🍨": "ნაყინი", + "🍩": "დონატი", + "🍪": "ფხვიერი ნამცხვარი", + "🎂": "დაბადების დღის ტორტი", + "🧁": "ქაფქეიქი", + "🍫": "შოკოლადის ფილა", + "🍬": "კანფეტი", + "🍭": "კანფეტი ჯოხზე", + "🫖": "ჩაიდანი", + "🧃": "წვენი პაკეტში", + "🧉": "მატე", + "🧭": "კომპასი", + "🏔️": "თოვლით დაფარული მთა", + "🌋": "ვულკანი", + "🏕️": "კემპინგი", + "🏝️": "უკაცრიელი კუნძული", + "🏡": "სახლი ბაღით", + "⛲️": "შადრევანი", + "🎠": "კარუსელის ცხენი", + "🎡": "ეშმაკის ბორბალი", + "🎢": "ამერიკული გორაკები", + "💈": "დალაქის სვეტი", + "🚆": "მატარებელი", + "🚋": "ტრამვაის ვაგონი", + "🚍️": "მომავალი ავტობუსი", + "🚕": "ტაქსი", + "🚗": "ავტომობილი", + "🚚": "მიმწოდებელი სატვირთო მანქანა", + "🚜": "ტრაქტორი", + "🛵": "სკუტერი ძრავით", + "🛺": "ავტორიქშა", + "🛴": "ფეხის სკუტერი", + "🛹": "სკეიტბორდი", + "🛼": "გორგოლაჭიანი ციგურები", + "⚓️": "ღუზა", + "⛵️": "იალქნიანი ნავი", + "🛶": "კანოე", + "🚤": "გლისერი", + "🚢": "გემი", + "✈️": "თვითმფრინავი", + "🚁": "ვერტმფრენი", + "🚠": "მთის საბაგირო", + "🛰️": "თანამგზავრი", + "🚀": "რაკეტა", + "🛸": "მფრინავი თეფში", + "⏰": "მაღვიძარა", + "🌙": "ნამგალა მთვარე", + "🌡️": "თერმომეტრი", + "☀️": "მზე", + "🪐": "პლანეტა სარტყელით", + "🌟": "მბრწყინავი ვარსკვლავი", + "🌀": "ციკლონი", + "🌈": "ცისარტყელა", + "☂️": "ქოლგა", + "❄️": "თოვლის ფანტელი", + "☄️": "კომეტა", + "🔥": "ცეცხლი", + "💧": "წვეთი", + "🌊": "წყლის ტალღა", + "🎃": "ჰელოუინის გოგრა", + "✨": "ნაპერწკლები", + "🎈": "ბუშტი", + "🎉": "ტკაცუნა", + "🎏": "კობრებიანი ალამი", + "🎀": "ლენტი", + "🎁": "შეფუთული საჩუქარი", + "🎟️": "ბილეთები", + "🏆️": "პრიზი", + "⚽️": "ფეხბურთი", + "🏀": "კალათბურთი", + "🏈": "ამერიკული ფეხბურთი", + "🎾": "ჩოგბურთი", + "🥏": "მფრინავი დისკი", + "🏓": "მაგიდის ჩოგბურთი", + "🏸": "ბადმინტონი", + "🤿": "წყლის ნიღაბი", + "🥌": "კერლინგის ქვა", + "🎯": "პირდაპირი მოხვედრა", + "🪀": "იო-იო", + "🪁": "ფრანი", + "🔮": "კრისტალის ბურთი", + "🎲": "კამათელი", + "🧩": "პაზლი", + "🎨": "მხატვრის პალიტრა", + "🧵": "ძაფის კოჭა", + "👕": "მაისური", + "🧦": "წინდები", + "👗": "კაბა", + "🩳": "შორტები", + "🎒": "სკოლის ზურგჩანთა", + "👟": "ბოტასი", + "👑": "გვირგვინი", + "🧢": "ბეისბოლის კეპი", + "💄": "ტუჩის პომადა", + "💍": "ბეჭედი", + "💎": "ძვირფასი ქვა", + "📢": "რუპორი", + "🎶": "მუსიკალური ნოტები", + "🎙️": "სტუდიური მიკროფონი", + "📻️": "რადიო", + "🎷": "საქსოფონი", + "🪗": "აკორდეონი", + "🎸": "გიტარა", + "🎺": "საყვირი", + "🎻": "ვიოლინო", + "🪕": "ბანჯო", + "🥁": "ბარაბანი", + "☎️": "ტელეფონი", + "🔋": "ბატარეა", + "💿️": "ოპტიკური დისკი", + "🧮": "საანგარიშო დაფა", + "🎬️": "ნუმერატორი ტკაცუნათი", + "💡": "ნათურა", + "🔦": "ფანარი", + "🏮": "ქაღალდის წითელი ფარანი", + "📕": "დახურული წიგნი", + "🏷️": "იარლიყი", + "💳️": "საკრედიტო ბარათი", + "✏️": "ფანქარი", + "🖌️": "სახატავი ფუნჯი", + "🖍️": "ფერადი ფანქარი", + "📌": "ჭიკარტი", + "📎": "ქაღალდის სამაგრი", + "🔑": "გასაღები", + "🪃": "ბუმერანგი", + "🏹": "მშვილდ-ისარი", + "⚖️": "ბერკეტიანი სასწორი", + "🧲": "მაგნიტი", + "🧪": "სინჯარა", + "🧬": "დნმ", + "🔬": "მიკროსკოპი", + "🔭": "ტელესკოპი", + "📡": "თანამგზავრული ანტენა", + "🪑": "სკამი", + "🧹": "ცოცხი", + "🗿": "მოაი" + }, + "ko": { + "👽️": "외계인", + "🤖": "로봇 얼굴", + "🧠": "뇌", + "👁️": "눈", + "🧙": "마법사", + "🧚": "요정", + "🧜": "인어", + "🐵": "원숭이 얼굴", + "🦧": "오랑우탄", + "🐶": "강아지 얼굴", + "🐺": "늑대 얼굴", + "🦊": "여우 얼굴", + "🦝": "너구리", + "🐱": "고양이 얼굴", + "🦁": "사자 얼굴", + "🐯": "호랑이 얼굴", + "🐴": "말 얼굴", + "🦄": "유니콘 얼굴", + "🦓": "얼룩말", + "🦌": "사슴", + "🐮": "소 얼굴", + "🐷": "돼지 얼굴", + "🐗": "멧돼지", + "🐪": "낙타", + "🦙": "라마", + "🦒": "기린", + "🐘": "코끼리", + "🦣": "매머드", + "🦏": "코뿔소", + "🐭": "쥐 얼굴", + "🐰": "토끼 얼굴", + "🐿️": "얼룩다람쥐", + "🦔": "고슴도치", + "🦇": "박쥐", + "🐻": "곰 얼굴", + "🐨": "코알라", + "🦥": "나무늘보", + "🦦": "수달", + "🦘": "캥거루", + "🐥": "정면을 향해 날개를 편 병아리", + "🐦️": "새", + "🕊️": "비둘기", + "🦆": "오리", + "🦉": "부엉이", + "🦤": "도도새", + "🪶": "깃털", + "🦩": "홍학", + "🦚": "공작", + "🦜": "앵무새", + "🐊": "악어", + "🐢": "거북이", + "🦎": "도마뱀", + "🐍": "뱀", + "🐲": "용 얼굴", + "🦕": "초식 공룡", + "🐳": "물 뿜는 고래", + "🐬": "돌고래", + "🦭": "물개", + "🐟️": "물고기", + "🐠": "열대어", + "🦈": "상어", + "🐙": "문어", + "🐚": "달팽이집", + "🐌": "달팽이", + "🦋": "나비", + "🐛": "송충이", + "🐝": "꿀벌", + "🐞": "무당벌레", + "💐": "꽃다발", + "🌹": "장미꽃", + "🌺": "무궁화", + "🌻": "해바라기", + "🌷": "튤립", + "🌲": "소나무", + "🌳": "나무", + "🌴": "야자수", + "🌵": "선인장", + "🌿": "풀", + "🍁": "단풍잎", + "🍇": "포도", + "🍈": "멜론", + "🍉": "수박", + "🍊": "귤", + "🍋": "레몬", + "🍌": "바나나", + "🍍": "파인애플", + "🥭": "망고", + "🍏": "초록 사과", + "🍐": "배", + "🍑": "복숭아", + "🍒": "체리", + "🍓": "딸기", + "🫐": "블루베리", + "🥝": "키위", + "🍅": "토마토", + "🫒": "올리브", + "🥥": "코코넛", + "🥑": "아보카도", + "🍆": "가지", + "🥕": "당근", + "🌽": "옥수수", + "🌶️": "홍고추", + "🥬": "녹색 채소", + "🥦": "브로콜리", + "🧅": "양파", + "🍄": "버섯", + "🥜": "땅콩", + "🥐": "크루아상", + "🥖": "바게트", + "🥨": "프레첼", + "🥯": "베이글", + "🥞": "팬케이크", + "🧇": "와플", + "🍔": "햄버거", + "🍕": "피자", + "🌭": "핫도그", + "🌮": "타코", + "🍿": "팝콘", + "🦀": "꽃게", + "🦞": "바닷가재", + "🍨": "아이스크림", + "🍩": "도넛", + "🍪": "쿠키", + "🎂": "생일 케이크", + "🧁": "컵케이크", + "🍫": "초콜렛", + "🍬": "사탕", + "🍭": "롤리팝", + "🫖": "찻주전자", + "🧃": "음료 팩", + "🧉": "마테차", + "🧭": "나침반", + "🏔️": "눈 덮인 산", + "🌋": "화산", + "🏕️": "캠핑", + "🏝️": "사막 섬", + "🏡": "정원이 있는 집", + "⛲️": "분수", + "🎠": "회전 목마", + "🎡": "관람차", + "🎢": "롤러코스터", + "💈": "이발소", + "🚆": "기차", + "🚋": "트램 차량", + "🚍️": "오고 있는 버스", + "🚕": "택시", + "🚗": "자동차", + "🚚": "운송 트럭", + "🚜": "트랙터", + "🛵": "스쿠터", + "🛺": "경삼륜차", + "🛴": "킥보드", + "🛹": "스케이트보드", + "🛼": "롤러스케이트", + "⚓️": "닻", + "⛵️": "돛단배", + "🛶": "카누", + "🚤": "쾌속정", + "🚢": "선박", + "✈️": "비행기", + "🚁": "헬리콥터", + "🚠": "산악 케이블카", + "🛰️": "인공위성", + "🚀": "로켓", + "🛸": "비행접시", + "⏰": "알람 시계", + "🌙": "초승달", + "🌡️": "온도계", + "☀️": "태양", + "🪐": "고리가 있는 행성", + "🌟": "반짝이는 별", + "🌀": "태풍", + "🌈": "무지개", + "☂️": "우산", + "❄️": "눈송이", + "☄️": "혜성", + "🔥": "불", + "💧": "물방울", + "🌊": "파도", + "🎃": "할로윈", + "✨": "블링블링", + "🎈": "풍선", + "🎉": "파티", + "🎏": "물고기 깃발", + "🎀": "리본", + "🎁": "선물", + "🎟️": "입장 티켓", + "🏆️": "트로피", + "⚽️": "축구공", + "🏀": "농구", + "🏈": "미식축구공", + "🎾": "테니스", + "🥏": "원반", + "🏓": "탁구", + "🏸": "배드민턴", + "🤿": "다이빙 마스크", + "🥌": "컬링 스톤", + "🎯": "과녁 명중", + "🪀": "요요", + "🪁": "연", + "🔮": "수정 구슬", + "🎲": "주사위", + "🧩": "퍼즐", + "🎨": "팔레트", + "🧵": "실타래", + "👕": "티셔츠", + "🧦": "양말", + "👗": "원피스", + "🩳": "반바지", + "🎒": "학교 가방", + "👟": "운동화", + "👑": "왕관", + "🧢": "야구모자", + "💄": "립스틱", + "💍": "반지", + "💎": "원석", + "📢": "확성기", + "🎶": "노래 음표", + "🎙️": "스튜디오 마이크", + "📻️": "라디오", + "🎷": "색소폰", + "🪗": "아코디언", + "🎸": "기타", + "🎺": "트럼펫", + "🎻": "바이올린", + "🪕": "밴조", + "🥁": "드럼", + "☎️": "전화기", + "🔋": "배터리", + "💿️": "씨디", + "🧮": "주판", + "🎬️": "슬레이트", + "💡": "전구", + "🔦": "손전등", + "🏮": "일본식 등", + "📕": "펼치지 않은 책", + "🏷️": "라벨", + "💳️": "신용카드", + "✏️": "연필", + "🖌️": "붓", + "🖍️": "크레용", + "📌": "압정", + "📎": "클립", + "🔑": "열쇠", + "🪃": "부메랑", + "🏹": "활과 화살", + "⚖️": "접시저울", + "🧲": "자석", + "🧪": "시험관", + "🧬": "DNA", + "🔬": "현미경", + "🔭": "망원경", + "📡": "위성 안테나", + "🪑": "의자", + "🧹": "빗자루", + "🗿": "모아이" + }, + "lt": { + "👽️": "ateivis", + "🤖": "roboto veidas", + "🧠": "smegenys", + "👁️": "akis", + "🧙": "magas", + "🧚": "fėja", + "🧜": "undinius", + "🐵": "beždžionės snukutis", + "🦧": "orangutangas", + "🐶": "šuns snukutis", + "🐺": "vilko snukis", + "🦊": "lapės snukis", + "🦝": "meškėnas", + "🐱": "katės snukutis", + "🦁": "liūto snukis", + "🐯": "tigro snukis", + "🐴": "arklio snukis", + "🦄": "vienaragio snukis", + "🦓": "zebras", + "🦌": "elnias", + "🐮": "karvės snukis", + "🐷": "kiaulės snukis", + "🐗": "šernas", + "🐪": "kupranugaris", + "🦙": "lama", + "🦒": "žirafa", + "🐘": "dramblys", + "🦣": "mamutas", + "🦏": "raganosis", + "🐭": "pelės snukutis", + "🐰": "triušio snukutis", + "🐿️": "voverė", + "🦔": "ežys", + "🦇": "šikšnosparnis", + "🐻": "meškos snukis", + "🐨": "koala", + "🦥": "tinginys", + "🦦": "ūdra", + "🦘": "kengūra", + "🐥": "atsisukęs snapu viščiukas", + "🐦️": "paukštis", + "🕊️": "balandis", + "🦆": "antis", + "🦉": "pelėda", + "🦤": "drontas", + "🪶": "plunksna", + "🦩": "flamingas", + "🦚": "povas", + "🦜": "papūga", + "🐊": "krokodilas", + "🐢": "vėžlys", + "🦎": "driežas", + "🐍": "gyvatė", + "🐲": "drakono snukis", + "🦕": "sauropodas", + "🐳": "purškiantis banginis", + "🐬": "delfinas", + "🦭": "ruonis", + "🐟️": "žuvis", + "🐠": "tropinė žuvis", + "🦈": "ryklys", + "🐙": "aštuonkojis", + "🐚": "susisukusi kriauklė", + "🐌": "sraigė", + "🦋": "drugelis", + "🐛": "vabalas", + "🐝": "bitė", + "🐞": "boružė", + "💐": "puokštė", + "🌹": "rožė", + "🌺": "kinrožė", + "🌻": "saulėgrąža", + "🌷": "tulpė", + "🌲": "amžinai žaliuojantis medis", + "🌳": "lapuotis", + "🌴": "palmė", + "🌵": "kaktusas", + "🌿": "žolelė", + "🍁": "klevo lapas", + "🍇": "vynuogės", + "🍈": "melionas", + "🍉": "arbūzas", + "🍊": "mandarinas", + "🍋": "citrina", + "🍌": "bananas", + "🍍": "ananasas", + "🥭": "mangas", + "🍏": "žalias obuolys", + "🍐": "kriaušė", + "🍑": "persikas", + "🍒": "vyšnios", + "🍓": "braškė", + "🫐": "mėlynės", + "🥝": "kivis", + "🍅": "pomidoras", + "🫒": "alyvuogė", + "🥥": "kokosas", + "🥑": "avokadas", + "🍆": "baklažanas", + "🥕": "morka", + "🌽": "kukurūzo burbuolė", + "🌶️": "aštrusis pipiras", + "🥬": "lapinė daržovė", + "🥦": "brokolis", + "🧅": "svogūnas", + "🍄": "grybas", + "🥜": "žemės riešutas", + "🥐": "raguolis", + "🥖": "ilgas batonas", + "🥨": "riestainis", + "🥯": "apvalus riestainis", + "🥞": "blynai", + "🧇": "vaflis", + "🍔": "mėsainis", + "🍕": "pica", + "🌭": "dešrainis", + "🌮": "meksikietiškas paplotėlis", + "🍿": "spragėsiai", + "🦀": "krabas", + "🦞": "omaras", + "🍨": "ledai", + "🍩": "spurga", + "🍪": "sausainis", + "🎂": "gimtadienio tortas", + "🧁": "keksiukas", + "🍫": "šokolado batonėlis", + "🍬": "saldainis", + "🍭": "ledinukas ant pagaliuko", + "🫖": "arbatinukas", + "🧃": "gėrimo pakelis", + "🧉": "matė", + "🧭": "kompasas", + "🏔️": "kalnas su snieguota viršūne", + "🌋": "ugnikalnis", + "🏕️": "stovyklavimas", + "🏝️": "atoki sala", + "🏡": "namas su sodu", + "⛲️": "fontanas", + "🎠": "karuselės arkliukas", + "🎡": "apžvalgos ratas", + "🎢": "linksmieji kalneliai", + "💈": "kirpėjo suktukas", + "🚆": "traukinys", + "🚋": "tramvajaus vagonas", + "🚍️": "artėjantis autobusas", + "🚕": "taksi", + "🚗": "automobilis", + "🚚": "krovininis sunkvežimis", + "🚜": "traktorius", + "🛵": "motoroleris", + "🛺": "autorikša", + "🛴": "paspirtukas", + "🛹": "riedlentė", + "🛼": "riedučiai", + "⚓️": "inkaras", + "⛵️": "burlaivis", + "🛶": "kanoja", + "🚤": "motorinis kateris", + "🚢": "laivas", + "✈️": "lėktuvas", + "🚁": "sraigstasparnis", + "🚠": "kalnų keltuvas", + "🛰️": "palydovas", + "🚀": "raketa", + "🛸": "skraidanti lėkštė", + "⏰": "žadintuvas", + "🌙": "pusmėnulis", + "🌡️": "termometras", + "☀️": "saulė", + "🪐": "planeta su žiedu", + "🌟": "žėrinti žvaigždė", + "🌀": "ciklonas", + "🌈": "vaivorykštė", + "☂️": "skėtis", + "❄️": "snaigė", + "☄️": "kometa", + "🔥": "ugnis", + "💧": "lašas", + "🌊": "vandens banga", + "🎃": "žibintas iš moliūgo", + "✨": "kibirkštėlės", + "🎈": "balionas", + "🎉": "konfeti šaudyklė", + "🎏": "karpio vėtrungė", + "🎀": "kaspinas", + "🎁": "supakuota dovana", + "🎟️": "įėjimo bilietai", + "🏆️": "trofėjus", + "⚽️": "futbolo kamuolys", + "🏀": "krepšinio kamuolys", + "🏈": "amerikietiškojo futbolo kamuolys", + "🎾": "teniso kamuoliukas", + "🥏": "skraidantis diskas", + "🏓": "stalo tenisas", + "🏸": "badmintonas", + "🤿": "nardymo kaukė", + "🥌": "akmenslydis", + "🎯": "smūgis tiesiai į taikinį", + "🪀": "jo-jo", + "🪁": "aitvaras", + "🔮": "krištolinis rutulys", + "🎲": "kauliukas", + "🧩": "dėlionė", + "🎨": "dailininko paletė", + "🧵": "siūlas", + "👕": "marškinėliai", + "🧦": "kojinės", + "👗": "suknelė", + "🩳": "šortai", + "🎒": "mokyklinė kuprinė", + "👟": "bėgimo batelis", + "👑": "karūna", + "🧢": "reklaminė kepurė", + "💄": "lūpų dažai", + "💍": "žiedas", + "💎": "brangakmenis", + "📢": "garsiakalbio simbolis", + "🎶": "muzikos natos", + "🎙️": "studijos mikrofonas", + "📻️": "radijas", + "🎷": "saksofonas", + "🪗": "akordeonas", + "🎸": "gitara", + "🎺": "trimitas", + "🎻": "smuikas", + "🪕": "bandža", + "🥁": "būgnas", + "☎️": "telefonas", + "🔋": "baterija", + "💿️": "optinis diskas", + "🧮": "skaitytuvai", + "🎬️": "pliauškė", + "💡": "lemputė", + "🔦": "žibintuvėlis", + "🏮": "raudonas popierinis žibintas", + "📕": "užversta knyga", + "🏷️": "etiketė", + "💳️": "kredito kortelė", + "✏️": "pieštukas", + "🖌️": "teptukas", + "🖍️": "kreidelė", + "📌": "smeigtukas", + "📎": "sąvaržėlė", + "🔑": "raktas", + "🪃": "bumerangas", + "🏹": "lankas ir strėlė", + "⚖️": "svarstyklės su lėkštėmis", + "🧲": "magnetas", + "🧪": "mėgintuvėlis", + "🧬": "DNR", + "🔬": "mikroskopas", + "🔭": "teleskopas", + "📡": "palydovinė antena", + "🪑": "kėdė", + "🧹": "šluota", + "🗿": "moai" + }, + "mk": { + "👽️": "вонземјанин", + "🤖": "робот", + "🧠": "мозок", + "👁️": "око", + "🧙": "магичар", + "🧚": "самовила", + "🧜": "морско лице", + "🐵": "глава на мајмун", + "🦧": "орангутан", + "🐶": "глава на куче", + "🐺": "волк", + "🦊": "лисица", + "🦝": "ракун", + "🐱": "глава на мачка", + "🦁": "лав", + "🐯": "глава на тигар", + "🐴": "глава на коњ", + "🦄": "еднорог", + "🦓": "зебра", + "🦌": "елен", + "🐮": "глава на крава", + "🐷": "глава на прасе", + "🐗": "дива свиња", + "🐪": "камила", + "🦙": "лама", + "🦒": "жирафа", + "🐘": "слон", + "🦣": "мамут", + "🦏": "носорог", + "🐭": "глава на глушец", + "🐰": "глава на зајак", + "🐿️": "верверица", + "🦔": "еж", + "🦇": "лилјак", + "🐻": "мечка", + "🐨": "коала", + "🦥": "мрзливец", + "🦦": "видра", + "🦘": "кенгур", + "🐥": "пиле свртено нанапред", + "🐦️": "птица", + "🕊️": "гулабица", + "🦆": "патка", + "🦉": "був", + "🦤": "додо", + "🪶": "пердув", + "🦩": "фламинго", + "🦚": "паун", + "🦜": "папагал", + "🐊": "крокодил", + "🐢": "желка", + "🦎": "гуштер", + "🐍": "змија", + "🐲": "глава на змеј", + "🦕": "сауропод", + "🐳": "кит што прска вода", + "🐬": "делфин", + "🦭": "фока", + "🐟️": "риба", + "🐠": "тропска риба", + "🦈": "ајкула", + "🐙": "октопод", + "🐚": "спирална школка", + "🐌": "полжав", + "🦋": "пеперутка", + "🐛": "бубачка", + "🐝": "пчела", + "🐞": "бубамара", + "💐": "букет", + "🌹": "роза", + "🌺": "хибискус", + "🌻": "сончоглед", + "🌷": "лале", + "🌲": "зимзелено дрво", + "🌳": "листопадно дрво", + "🌴": "палма", + "🌵": "кактус", + "🌿": "билка", + "🍁": "јаворов лист", + "🍇": "грозје", + "🍈": "диња", + "🍉": "лубеница", + "🍊": "мандарина", + "🍋": "лимон", + "🍌": "банана", + "🍍": "ананас", + "🥭": "манго", + "🍏": "зелено јаболко", + "🍐": "круша", + "🍑": "праска", + "🍒": "цреши", + "🍓": "јагода", + "🫐": "боровинки", + "🥝": "киви", + "🍅": "домат", + "🫒": "маслинка", + "🥥": "кокосов орев", + "🥑": "авокадо", + "🍆": "модар патлиџан", + "🥕": "морков", + "🌽": "клас пченка", + "🌶️": "лута пиперка", + "🥬": "зелени листови", + "🥦": "брокола", + "🧅": "кромид", + "🍄": "печурка", + "🥜": "кикиритки", + "🥐": "кроасан", + "🥖": "багет", + "🥨": "перек", + "🥯": "ѓеврек", + "🥞": "палачинки", + "🧇": "вафла", + "🍔": "хамбургер", + "🍕": "пица", + "🌭": "хот дог", + "🌮": "тако", + "🍿": "пуканки", + "🦀": "рак", + "🦞": "јастог", + "🍨": "сладолед", + "🍩": "крофна", + "🍪": "колаче", + "🎂": "роденденска торта", + "🧁": "тортичка", + "🍫": "чоколадо", + "🍬": "бонбона", + "🍭": "лижалче", + "🫖": "чајник", + "🧃": "сокче во тетрапак", + "🧉": "мате", + "🧭": "компас", + "🏔️": "планина со снежен врв", + "🌋": "вулкан", + "🏕️": "кампување", + "🏝️": "пуст остров", + "🏡": "куќа со градина", + "⛲️": "фонтана", + "🎠": "коњче од вртелешка", + "🎡": "панорамско тркало", + "🎢": "тобоган", + "💈": "столб пред берберница", + "🚆": "воз", + "🚋": "вагон на трамвај", + "🚍️": "автобус што пристигнува", + "🚕": "такси", + "🚗": "автомобил", + "🚚": "камион за испорака", + "🚜": "трактор", + "🛵": "скутер", + "🛺": "авто-рикша", + "🛴": "тротинет", + "🛹": "скејтборд", + "🛼": "ролшуи", + "⚓️": "сидро", + "⛵️": "едреник", + "🛶": "кајак", + "🚤": "глисер", + "🚢": "брод", + "✈️": "авион", + "🚁": "хеликоптер", + "🚠": "планинска жичарница", + "🛰️": "сателит", + "🚀": "ракета", + "🛸": "летечка чинија", + "⏰": "часовник со аларм", + "🌙": "месечев срп", + "🌡️": "термометар", + "☀️": "сонце", + "🪐": "планета со прстени", + "🌟": "светлечка ѕвезда", + "🌀": "циклон", + "🌈": "виножито", + "☂️": "чадор", + "❄️": "снегулка", + "☄️": "комета", + "🔥": "оган", + "💧": "капка", + "🌊": "бран", + "🎃": "фенер од тиква", + "✨": "светки", + "🎈": "балон", + "🎉": "прскалка со конфети", + "🎏": "летало со крапови", + "🎀": "панделка", + "🎁": "завиткан подарок", + "🎟️": "влезни билети", + "🏆️": "трофеј", + "⚽️": "фудбалска топка", + "🏀": "баскет", + "🏈": "топка за американски фудбал", + "🎾": "тениско топче", + "🥏": "летечки диск", + "🏓": "пинг понг", + "🏸": "бадминтон", + "🤿": "нуркачка маска", + "🥌": "камен за карлинг", + "🎯": "пикадо", + "🪀": "јојо", + "🪁": "летечки змеј", + "🔮": "кристална топка", + "🎲": "коцка", + "🧩": "сложувалка", + "🎨": "сликарска палета", + "🧵": "конец", + "👕": "маица", + "🧦": "чорапи", + "👗": "фустан", + "🩳": "шорцеви", + "🎒": "училишен ранец", + "👟": "патика", + "👑": "круна", + "🧢": "капче", + "💄": "кармин", + "💍": "прстен", + "💎": "скапоцен камен", + "📢": "разглас", + "🎶": "музички ноти", + "🎙️": "студиски микрофон", + "📻️": "радио", + "🎷": "саксофон", + "🪗": "хармоника", + "🎸": "гитара", + "🎺": "труба", + "🎻": "виолина", + "🪕": "бенџо", + "🥁": "тапан", + "☎️": "телефон", + "🔋": "батерија", + "💿️": "цд", + "🧮": "сметалка", + "🎬️": "филмска клапа", + "💡": "светилка", + "🔦": "батериска ламба", + "🏮": "црвен фенер", + "📕": "затворена книга", + "🏷️": "етикета", + "💳️": "кредитна картичка", + "✏️": "молив", + "🖌️": "четка за боење", + "🖍️": "креон", + "📌": "притискач", + "📎": "спојувалка", + "🔑": "клуч", + "🪃": "бумеранг", + "🏹": "лак и стрела", + "⚖️": "механичка вага", + "🧲": "магнет", + "🧪": "епрувета", + "🧬": "днк", + "🔬": "микроскоп", + "🔭": "телескоп", + "📡": "сателитска антена", + "🪑": "стол", + "🧹": "метла", + "🗿": "монолитни статуи" + }, + "ms": { + "👽️": "makhluk asing", + "🤖": "robot", + "🧠": "otak", + "👁️": "mata", + "🧙": "ahli silap mata", + "🧚": "pari-pari", + "🧜": "manusia duyung", + "🐵": "muka monyet", + "🦧": "orang utan", + "🐶": "muka anjing", + "🐺": "serigala", + "🦊": "rubah", + "🦝": "rakun", + "🐱": "muka kucing", + "🦁": "singa", + "🐯": "muka harimau", + "🐴": "muka kuda", + "🦄": "unikorn", + "🦓": "zebra", + "🦌": "rusa", + "🐮": "muka lembu", + "🐷": "muka khinzir", + "🐗": "babi hutan", + "🐪": "unta", + "🦙": "llama", + "🦒": "zirafah", + "🐘": "gajah", + "🦣": "mamot", + "🦏": "badak sumbu", + "🐭": "muka tikus", + "🐰": "muka arnab", + "🐿️": "tupai tanah", + "🦔": "landak kecil", + "🦇": "kelawar", + "🐻": "beruang", + "🐨": "koala", + "🦥": "sloth", + "🦦": "memerang", + "🦘": "kanggaru", + "🐥": "anak ayam menghadap depan", + "🐦️": "burung", + "🕊️": "burung merpati", + "🦆": "itik", + "🦉": "burung hantu", + "🦤": "dodo", + "🪶": "bulu pelepah", + "🦩": "flamingo", + "🦚": "merak", + "🦜": "kakak tua", + "🐊": "buaya", + "🐢": "penyu", + "🦎": "cicak", + "🐍": "ular", + "🐲": "muka naga", + "🦕": "sauropod", + "🐳": "ikan paus memancutkan air", + "🐬": "ikan lumba-lumba", + "🦭": "anjing laut", + "🐟️": "ikan", + "🐠": "ikan tropika", + "🦈": "jerung", + "🐙": "sotong kurita", + "🐚": "kulit kerang berpilin", + "🐌": "siput", + "🦋": "rama-rama", + "🐛": "ulat", + "🐝": "lebah madu", + "🐞": "kumbang kura-kura", + "💐": "sejambak bunga", + "🌹": "bunga mawar", + "🌺": "bunga raya", + "🌻": "bunga matahari", + "🌷": "bunga tulip", + "🌲": "malar hijau", + "🌳": "pokok daun luruh", + "🌴": "pokok palma", + "🌵": "kaktus", + "🌿": "herba", + "🍁": "daun mapel", + "🍇": "anggur", + "🍈": "tembikai susu", + "🍉": "tembikai", + "🍊": "limau tangerin", + "🍋": "lemon", + "🍌": "pisang", + "🍍": "nanas", + "🥭": "mangga", + "🍏": "epal hijau", + "🍐": "buah pear", + "🍑": "buah pic", + "🍒": "buah ceri", + "🍓": "buah strawberi", + "🫐": "beri biru", + "🥝": "buah kiwi", + "🍅": "tomato", + "🫒": "buah zaitun", + "🥥": "kelapa", + "🥑": "avokado", + "🍆": "terung", + "🥕": "lobak merah", + "🌽": "tongkol jagung", + "🌶️": "cili api", + "🥬": "sayuran hijau", + "🥦": "brokoli", + "🧅": "bawang", + "🍄": "cendawan", + "🥜": "kacang tanah", + "🥐": "kroisan", + "🥖": "roti baguette", + "🥨": "pretzel", + "🥯": "bagel", + "🥞": "penkek", + "🧇": "wafel", + "🍔": "hamburger", + "🍕": "piza", + "🌭": "hot dog", + "🌮": "tako", + "🍿": "bertih jagung", + "🦀": "ketam", + "🦞": "udang karang", + "🍨": "ais krim", + "🍩": "donat", + "🍪": "biskut", + "🎂": "kek hari jadi", + "🧁": "kek cawan", + "🍫": "sekeping coklat", + "🍬": "gula-gula", + "🍭": "lolipop", + "🫖": "teko teh", + "🧃": "minuman air kotak", + "🧉": "mate", + "🧭": "kompas", + "🏔️": "gunung dengan puncak bersalji", + "🌋": "gunung berapi", + "🏕️": "berkhemah", + "🏝️": "pulau padang pasir", + "🏡": "rumah dengan taman", + "⛲️": "air pancut", + "🎠": "kuda karusel", + "🎡": "roda ferris", + "🎢": "roller coaster", + "💈": "jalur kedai gunting rambut", + "🚆": "kereta api", + "🚋": "gerabak trem", + "🚍️": "bas dari arah depan", + "🚕": "teksi", + "🚗": "kereta", + "🚚": "trak penghantaran", + "🚜": "traktor", + "🛵": "skuter bermotor", + "🛺": "lanca auto", + "🛴": "skuter tolak", + "🛹": "papan luncur", + "🛼": "kasut roda", + "⚓️": "sauh", + "⛵️": "perahu layar", + "🛶": "kanu", + "🚤": "bot laju", + "🚢": "kapal", + "✈️": "kapal terbang", + "🚁": "helikopter", + "🚠": "jalan kabel gunung", + "🛰️": "satelit", + "🚀": "roket", + "🛸": "piring terbang", + "⏰": "jam loceng", + "🌙": "bulan sabit", + "🌡️": "termometer", + "☀️": "matahari", + "🪐": "planet bergelang", + "🌟": "bintang bersinar", + "🌀": "taufan", + "🌈": "pelangi", + "☂️": "payung", + "❄️": "emping salji", + "☄️": "komet", + "🔥": "api", + "💧": "titisan air", + "🌊": "ombak laut", + "🎃": "tanglung labu", + "✨": "berkilauan", + "🎈": "belon", + "🎉": "pencetus bunyi parti", + "🎏": "panji-panji kap", + "🎀": "reben", + "🎁": "bungkusan hadiah", + "🎟️": "tiket masuk", + "🏆️": "piala", + "⚽️": "bola sepak", + "🏀": "bola keranjang", + "🏈": "bola sepak amerika", + "🎾": "tenis", + "🥏": "cakera terbang", + "🏓": "ping pong", + "🏸": "badminton", + "🤿": "topeng menyelam", + "🥌": "batu curling", + "🎯": "balingan tepat", + "🪀": "yo-yo", + "🪁": "layang-layang", + "🔮": "bola kristal", + "🎲": "dadu permainan", + "🧩": "kepingan suai gambar", + "🎨": "palet artis", + "🧵": "benang", + "👕": "kemeja-t", + "🧦": "stoking", + "👗": "gaun", + "🩳": "seluar pendek", + "🎒": "beg galas sekolah", + "👟": "kasut lari", + "👑": "mahkota", + "🧢": "kep berbil", + "💄": "gincu", + "💍": "cincin", + "💎": "batu permata", + "📢": "corong pembesar suara", + "🎶": "nota-nota muzik", + "🎙️": "mikrofon studio", + "📻️": "radio", + "🎷": "saksofon", + "🪗": "akordion", + "🎸": "gitar", + "🎺": "trompet", + "🎻": "biola", + "🪕": "banjo", + "🥁": "dram", + "☎️": "telefon", + "🔋": "bateri", + "💿️": "cakera optik", + "🧮": "sempua", + "🎬️": "papan pengetap", + "💡": "mentol lampu", + "🔦": "lampu suluh", + "🏮": "tanglung kertas merah", + "📕": "buku tertutup", + "🏷️": "label", + "💳️": "kad kredit", + "✏️": "pensel", + "🖌️": "berus cat", + "🖍️": "krayon", + "📌": "paku tekan", + "📎": "klip kertas", + "🔑": "kunci", + "🪃": "bumerang", + "🏹": "panah dan busur", + "⚖️": "neraca timbang", + "🧲": "magnet", + "🧪": "tabung uji", + "🧬": "dna", + "🔬": "mikroskop", + "🔭": "teleskop", + "📡": "antena satelit", + "🪑": "kerusi", + "🧹": "penyapu", + "🗿": "moyai" + }, + "my": { + "👽️": "ဂြိုဟ်သား", + "🤖": "စက်ရုပ် မျက်နှာ", + "🧠": "ဦးနှောက်", + "👁️": "မျက်လုံး", + "🧙": "မှော်ဆရာ", + "🧚": "နတ်သမီး", + "🧜": "ရေလူ", + "🐵": "မျောက်ရုပ်", + "🦧": "အိုရန်အူတန်", + "🐶": "ခွေးရုပ်", + "🐺": "ဝံပုလွေရုပ်", + "🦊": "မြေခွေးရုပ်", + "🦝": "ရက်ကွန်းဝံ", + "🐱": "ကြောင်ရုပ်", + "🦁": "ခြင်္သေ့ရုပ်", + "🐯": "ကျားရုပ်", + "🐴": "မြင်းရုပ်", + "🦄": "ချိုတစ်ချောင်းမြင်းရုပ်", + "🦓": "မြင်းကျား", + "🦌": "သမင်", + "🐮": "နွားမရုပ်", + "🐷": "ဝက်ရုပ်", + "🐗": "တောဝက်", + "🐪": "ကုလားအုတ်", + "🦙": "လာမာ ကုလားအုတ်", + "🦒": "သစ်ကုလားအုတ်", + "🐘": "ဆင်", + "🦣": "ရှေးဆင်", + "🦏": "ကြံ့", + "🐭": "ကြွက် မျက်နှာ", + "🐰": "ယုန်ရုပ်", + "🐿️": "ကျောရိုးတွင် အဖြူအနက်စင်းပါ ရှဥ့်ငယ်တမျိုး", + "🦔": "ဖြူငယ်", + "🦇": "လင်းနို့", + "🐻": "ဝက်ဝံရုပ်", + "🐨": "ကိုအာလာ", + "🦥": "မျောက်မောင်းမ", + "🦦": "ဖျံ", + "🦘": "သားပိုက်ကောင်", + "🐥": "ရှေ့သို့မျက်နှာမူထားသည့် ကြက်ပေါက်စ", + "🐦️": "ငှက်", + "🕊️": "ချိုးငှက်", + "🦆": "ဘဲ", + "🦉": "ဇီးကွက်", + "🦤": "ဒိုဒို", + "🪶": "အတောင်", + "🦩": "ကြိုးကြာနီ", + "🦚": "ဒေါင်း", + "🦜": "ကြက်တူရွေး", + "🐊": "မိကျောင်း", + "🐢": "လိပ်", + "🦎": "အိမ်မြှောင်", + "🐍": "မြွေ", + "🐲": "နဂါးရုပ်", + "🦕": "ဆော်ရိုပေါ့ဒ်", + "🐳": "ရေမှုတ်ထုတ်နေသည့် ဝေလငါး", + "🐬": "လင်းပိုင်", + "🦭": "ပင်လယ်ဖျံ", + "🐟️": "ငါး", + "🐠": "အပူပိုင်း ငါး", + "🦈": "ငါးမန်း", + "🐙": "ဘဝဲ", + "🐚": "ခရုခွံ", + "🐌": "ခရု", + "🦋": "လိပ်ပြာ", + "🐛": "ပိုးကောင်ကလေး", + "🐝": "ပျား", + "🐞": "ပိုးတောင်မာ", + "💐": "ပန်းစည်း", + "🌹": "နှင်းဆီပန်း", + "🌺": "ခေါင်ရန်းပန်း", + "🌻": "နေကြာပန်း", + "🌷": "ကျူးလစ်ပန်း", + "🌲": "အမြဲစိမ်း သစ်ပင်", + "🌳": "ရွက်ပြတ်ပင်", + "🌴": "ထန်းပင်", + "🌵": "ရှားစောင်းပင်", + "🌿": "ဆေးဖက်ဝင်အပင်", + "🍁": "မေပယ်ရွက်", + "🍇": "စပျစ်သီး", + "🍈": "သခွားမွှေး", + "🍉": "ဖရဲသီး", + "🍊": "အခွံပွလိမ္မော်သီး", + "🍋": "ရှောက်သီး", + "🍌": "ငှက်ပျောသီး", + "🍍": "နာနတ်သီး", + "🥭": "သရက်သီး", + "🍏": "ပန်းသီးစိမ်း", + "🍐": "သစ်တော်သီး", + "🍑": "မက်မွန်သီး", + "🍒": "ချယ်ရီသီးများ", + "🍓": "စတော်ဘယ်ရီ", + "🫐": "ဘလူးဘယ်ရီ", + "🥝": "ကီဝီသီး", + "🍅": "ခရမ်းချဉ်သီး", + "🫒": "သံလွင်", + "🥥": "အုန်းသီး", + "🥑": "ထောပတ်သီး", + "🍆": "ခရမ်းသီး", + "🥕": "မုန်လာဥ", + "🌽": "ပြောင်းနှံ", + "🌶️": "ငရုတ်သီး", + "🥬": "အရွက်ဖားဖား သစ်ရွက်စိမ်း", + "🥦": "ပန်းဂေါ်ဖီစိမ်း", + "🧅": "ကြက်သွန်နီ", + "🍄": "မှို", + "🥜": "မြေပဲ", + "🥐": "လခြမ်းကွေးပေါင်မုန့်", + "🥖": "ပြင်သစ်ပေါင်မုန့်", + "🥨": "မုန့်ကြိုးလိမ်", + "🥯": "ပေါင်မုန့်အကွင်း", + "🥞": "မုန့်အိုးကင်းကြော်", + "🧇": "ဒေါင်းဖန်ဝါ မုန့်", + "🍔": "ဟမ်ဘာဂါ", + "🍕": "ပီဇာ", + "🌭": "ဟော့ဒေါ့", + "🌮": "တာကို", + "🍿": "ပြောင်းဖူးပေါက်ပေါက်", + "🦀": "ကဏန်း", + "🦞": "ကျောက်ပုစွန်", + "🍨": "ရေခဲမုန့်", + "🍩": "ဒိုးနတ်", + "🍪": "ကွတ်ကီး", + "🎂": "မွေးနေ့ ကိတ်မုန့်", + "🧁": "ကြက်ဥမုန့်", + "🍫": "ချောကလက် အချောင်း", + "🍬": "သကြားလုံး", + "🍭": "ချိုချဉ်ပလုတ်တုတ်", + "🫖": "ခရား", + "🧃": "အဖျော်ရေ ဘူး", + "🧉": "ချီမာရအို", + "🧭": "သံလိုက်အိမ်မြှောင်", + "🏔️": "ဆီးနှင်းဖုံးနေသည့် တောင်", + "🌋": "မီးတောင်", + "🏕️": "စခန်းချနေခြင်း", + "🏝️": "လူသူမဲ့ကျွန်း", + "🏡": "ပန်းခြံနှင့် အိမ်", + "⛲️": "အလှပြ ရေပန်း", + "🎠": "ချားရဟတ် မြင်း", + "🎡": "ချားရဟတ်", + "🎢": "သည်းဖိုရထား", + "💈": "ဆံပင်ညှပ်ဆိုင် တိုင်", + "🚆": "ရထား", + "🚋": "ဓာတ်ရထားတွဲ", + "🚍️": "လာနေသည့် ဘတ်စ်ကား", + "🚕": "တက်ကစီ", + "🚗": "မော်တော်ကား", + "🚚": "ပစ္စည်းပို့သည့် ထရပ်ကား", + "🚜": "လယ်ထွန်စက်", + "🛵": "မော်တာစက်တပ် စကူတာ", + "🛺": "သုံးဘီး", + "🛴": "စကူတာ", + "🛹": "စကိတ်လျှောပြား", + "🛼": "ရိုလာ စကိတ်", + "⚓️": "ကျောက်ဆူး", + "⛵️": "ရွက်လှေ", + "🛶": "ကနူး", + "🚤": "အမြန်စက်လှေ", + "🚢": "သင်္ဘော", + "✈️": "လေယာဉ်", + "🚁": "ရဟတ်ယာဉ်", + "🚠": "တောင်တက် ဓာတ်ကြိုးရထားလမ်း", + "🛰️": "ဂြိုဟ်တု", + "🚀": "ဒုံးယာဉ်", + "🛸": "ပန်းကန်ပြားပျံ", + "⏰": "နှိုးစက်နာရီ", + "🌙": "လခြမ်း", + "🌡️": "သာမိုမီတာ", + "☀️": "နေ", + "🪐": "ကွင်းပါရှိသည့် ဂြိုဟ်", + "🌟": "တောက်ပသည့် ကြယ်", + "🌀": "ဆိုင်ကလုန်း", + "🌈": "သက်တံ", + "☂️": "ထီး", + "❄️": "နှင်းပွင့်", + "☄️": "ကြယ်တံခွန်", + "🔥": "မီး", + "💧": "အစက်ကလေး", + "🌊": "ရေလှိုင်း", + "🎃": "ဖရုံသီး မီးအိမ်", + "✨": "မီးပွင့်များ", + "🎈": "လေပူဖောင်း", + "🎉": "ပါတီဗြောက်အိုး", + "🎏": "ငါးကြင်း တံခွန်", + "🎀": "ဖဲကြိုး", + "🎁": "ထုပ်ပိုးထားသည့် လက်ဆောင်", + "🎟️": "ဝင်ခွင့် လက်မှတ်များ", + "🏆️": "ဖလားဆု", + "⚽️": "ဘောလုံး", + "🏀": "ဘတ်စကက်ဘော", + "🏈": "အမေရိကန် ဘောလုံး", + "🎾": "တင်းနစ်", + "🥏": "ချပ်ပြားဝိုင်း ပစ်", + "🏓": "စားပွဲတင် တင်းနစ်", + "🏸": "ကြက်တောင်ရိုက်ခြင်း", + "🤿": "ရေငုပ် မျက်နှာဖုံး", + "🥌": "ရေခဲပြင်ကျောက်ပြားဝိုင်း", + "🎯": "ဗဟိုချက်ထိမှန်ခြင်း", + "🪀": "ယိုယို", + "🪁": "စွန်", + "🔮": "ကသိုဏ်းဖန်လုံး", + "🎲": "အန်စာတုံး", + "🧩": "ဂျစ်စော အပိုင်းအစ", + "🎨": "ဆေးစပ်ရာ အပြား", + "🧵": "အပ်ချည်", + "👕": "တီရှပ်", + "🧦": "ခြေအိတ်", + "👗": "ဝတ်စုံ", + "🩳": "ဘောင်းဘီတို", + "🎒": "ကျောင်းသား ကျောပိုးအိတ်", + "👟": "အပြေး ဖိနပ်", + "👑": "သရဖူ", + "🧢": "ကက်ဦးထုတ်", + "💄": "နှုတ်ခမ်းနီ", + "💍": "လက်စွပ်", + "💎": "ကျောက်မျက် ရတနာ", + "📢": "အသံချဲ့စက်", + "🎶": "ဂီတ သင်္ကေတများ", + "🎙️": "စတူဒီယို မိုက်ကရိုဖုန်း", + "📻️": "ရေဒီယို", + "🎷": "ဆက်ဆိုဖုန်း", + "🪗": "အကော်ဒီယံ", + "🎸": "ဂစ်တာ", + "🎺": "ခရာ", + "🎻": "တယော", + "🪕": "ဘင်ဂျို", + "🥁": "ဗုံ", + "☎️": "တယ်လီဖုန်း", + "🔋": "ဘက်ထရီ", + "💿️": "အလင်းသုံးဒစ်", + "🧮": "ပေသီးတွက်ခုံ", + "🎬️": "ရုပ်ရှင် ကလက်ဘုတ်", + "💡": "မီးလုံး", + "🔦": "ဓာတ်မီး", + "🏮": "စက္ကူမီးအိမ် အနီ", + "📕": "ပိတ်ထားသည့် စာအုပ်", + "🏷️": "တံဆိပ်", + "💳️": "ခရက်ဒစ်ကတ်", + "✏️": "ခဲတံ", + "🖌️": "စုတ်တံ", + "🖍️": "ရောင်စုံဖယောင်းခဲတံ", + "📌": "ဖိထိုးရသည့် ပင်အပ်", + "📎": "စက္ကူညှပ်", + "🔑": "သော့", + "🪃": "ထိကပြန်", + "🏹": "လေးနှင့် မြား", + "⚖️": "ချိန်ခွင်", + "🧲": "သံလိုက်", + "🧪": "ဖန်ပြွန်", + "🧬": "မျိုးရိုးဗီဇ", + "🔬": "အဏုကြည့်မှန်ပြောင်း", + "🔭": "အဝေးကြည့်မှန်ပြောင်း", + "📡": "ဂြိုဟ်တု စလောင်း", + "🪑": "ကုလားထိုင်", + "🧹": "တံမြက်စည်း", + "🗿": "မိုအိုင်" + }, + "nl": { + "👽️": "buitenaards wezen", + "🤖": "robot", + "🧠": "brein", + "👁️": "oog", + "🧙": "magiër", + "🧚": "elfje", + "🧜": "zeemeermin", + "🐵": "apengezicht", + "🦧": "orang-oetang", + "🐶": "hondengezicht", + "🐺": "wolf", + "🦊": "vos", + "🦝": "wasbeer", + "🐱": "kattengezicht", + "🦁": "leeuw", + "🐯": "tijgergezicht", + "🐴": "paardengezicht", + "🦄": "eenhoorn", + "🦓": "zebra", + "🦌": "hert", + "🐮": "koeiengezicht", + "🐷": "varkensgezicht", + "🐗": "zwijn", + "🐪": "dromedaris", + "🦙": "lama", + "🦒": "giraffe", + "🐘": "olifant", + "🦣": "mammoet", + "🦏": "neushoorn", + "🐭": "muizengezicht", + "🐰": "konijnengezicht", + "🐿️": "eekhoorn", + "🦔": "egel", + "🦇": "vleermuis", + "🐻": "beer", + "🐨": "koala", + "🦥": "luiaard", + "🦦": "otter", + "🦘": "kangoeroe", + "🐥": "naar voren kijkend kuikentje", + "🐦️": "vogel", + "🕊️": "duif", + "🦆": "eend", + "🦉": "uil", + "🦤": "dodo", + "🪶": "veer", + "🦩": "flamingo", + "🦚": "pauw", + "🦜": "papegaai", + "🐊": "krokodil", + "🐢": "schildpad", + "🦎": "hagedis", + "🐍": "slang", + "🐲": "drakengezicht", + "🦕": "sauropode", + "🐳": "spuitende walvis", + "🐬": "dolfijn", + "🦭": "zeehond", + "🐟️": "vis", + "🐠": "tropische vis", + "🦈": "haai", + "🐙": "octopus", + "🐚": "schelp", + "🐌": "slak", + "🦋": "vlinder", + "🐛": "insect", + "🐝": "honingbij", + "🐞": "lieveheersbeestje", + "💐": "boeket", + "🌹": "roos", + "🌺": "hibiscus", + "🌻": "zonnebloem", + "🌷": "tulp", + "🌲": "naaldboom", + "🌳": "loofboom", + "🌴": "palmboom", + "🌵": "cactus", + "🌿": "kruid", + "🍁": "esdoornblad", + "🍇": "druiven", + "🍈": "meloen", + "🍉": "watermeloen", + "🍊": "mandarijn", + "🍋": "citroen", + "🍌": "banaan", + "🍍": "ananas", + "🥭": "mango", + "🍏": "groene appel", + "🍐": "peer", + "🍑": "perzik", + "🍒": "kersen", + "🍓": "aardbei", + "🫐": "bosbessen", + "🥝": "kiwi", + "🍅": "tomaat", + "🫒": "olijf", + "🥥": "kokosnoot", + "🥑": "avocado", + "🍆": "aubergine", + "🥕": "wortel", + "🌽": "maïskolf", + "🌶️": "hete peper", + "🥬": "bladgroente", + "🥦": "broccoli", + "🧅": "ui", + "🍄": "paddenstoel", + "🥜": "pinda’s", + "🥐": "croissant", + "🥖": "stokbrood", + "🥨": "pretzel", + "🥯": "bagel", + "🥞": "pannenkoeken", + "🧇": "wafel", + "🍔": "hamburger", + "🍕": "pizzapunt", + "🌭": "hotdog", + "🌮": "taco", + "🍿": "popcorn", + "🦀": "krab", + "🦞": "kreeft", + "🍨": "ijs", + "🍩": "donut", + "🍪": "koekje", + "🎂": "verjaardagstaart", + "🧁": "cupcake", + "🍫": "chocoladereep", + "🍬": "snoep", + "🍭": "lolly", + "🫖": "theepot", + "🧃": "pakje drinken", + "🧉": "maté", + "🧭": "kompas", + "🏔️": "berg met besneeuwde toppen", + "🌋": "vulkaan", + "🏕️": "kamperen", + "🏝️": "onbewoond eiland", + "🏡": "huis met tuin", + "⛲️": "fontein", + "🎠": "draaimolenpaard", + "🎡": "reuzenrad", + "🎢": "achtbaan", + "💈": "kapperspaal", + "🚆": "trein", + "🚋": "tramwagon", + "🚍️": "naderende bus", + "🚕": "taxi", + "🚗": "auto", + "🚚": "bestelbus", + "🚜": "tractor", + "🛵": "scooter", + "🛺": "riksja", + "🛴": "step", + "🛹": "skateboard", + "🛼": "rolschaats", + "⚓️": "anker", + "⛵️": "zeilboot", + "🛶": "kano", + "🚤": "speedboot", + "🚢": "schip", + "✈️": "vliegtuig", + "🚁": "helikopter", + "🚠": "bergkabelbaan", + "🛰️": "satelliet", + "🚀": "raket", + "🛸": "vliegende schotel", + "⏰": "wekker", + "🌙": "maansikkel", + "🌡️": "thermometer", + "☀️": "zon", + "🪐": "planeet met ringen", + "🌟": "stralende ster", + "🌀": "cycloon", + "🌈": "regenboog", + "☂️": "paraplu", + "❄️": "sneeuwvlok", + "☄️": "komeet", + "🔥": "vuur", + "💧": "druppel", + "🌊": "golf", + "🎃": "halloweenlantaarn", + "✨": "sterretjes", + "🎈": "ballon", + "🎉": "feestknaller", + "🎏": "karperslinger", + "🎀": "strik", + "🎁": "ingepakt cadeau", + "🎟️": "entreekaartjes", + "🏆️": "trofee", + "⚽️": "voetbal", + "🏀": "basketbal", + "🏈": "american football", + "🎾": "tennis", + "🥏": "frisbee", + "🏓": "pingpong", + "🏸": "badminton", + "🤿": "duikbril", + "🥌": "curlingsteen", + "🎯": "directe treffer", + "🪀": "jojo", + "🪁": "vlieger", + "🔮": "kristallen bol", + "🎲": "dobbelsteen", + "🧩": "puzzelstukje", + "🎨": "schilderspalet", + "🧵": "garen", + "👕": "T-shirt", + "🧦": "sokken", + "👗": "jurk", + "🩳": "korte broek", + "🎒": "schooltas", + "👟": "sportschoen", + "👑": "kroon", + "🧢": "pet", + "💄": "lippenstift", + "💍": "ring", + "💎": "edelsteen", + "📢": "luidspreker", + "🎶": "muzieknoten", + "🎙️": "studiomicrofoon", + "📻️": "radio", + "🎷": "saxofoon", + "🪗": "accordeon", + "🎸": "gitaar", + "🎺": "trompet", + "🎻": "viool", + "🪕": "banjo", + "🥁": "trommel", + "☎️": "telefoon", + "🔋": "batterij", + "💿️": "optische schijf", + "🧮": "abacus", + "🎬️": "klapbord", + "💡": "gloeilamp", + "🔦": "zaklamp", + "🏮": "rode papieren lantaarn", + "📕": "gesloten boek", + "🏷️": "label", + "💳️": "creditcard", + "✏️": "potlood", + "🖌️": "kwast", + "🖍️": "krijtje", + "📌": "punaise", + "📎": "paperclip", + "🔑": "sleutel", + "🪃": "boemerang", + "🏹": "pijl en boog", + "⚖️": "weegschaal", + "🧲": "magneet", + "🧪": "reageerbuis", + "🧬": "DNA", + "🔬": "microscoop", + "🔭": "telescoop", + "📡": "satellietschotel", + "🪑": "hoge stoel", + "🧹": "bezem", + "🗿": "moai-beeld" + }, + "pl": { + "👽️": "ufoludek", + "🤖": "głowa robota", + "🧠": "mózg", + "👁️": "oko", + "🧙": "mag", + "🧚": "wróżka", + "🧜": "syrena", + "🐵": "głowa małpy", + "🦧": "orangutan", + "🐶": "głowa psa", + "🐺": "głowa wilka", + "🦊": "głowa lisa", + "🦝": "szop", + "🐱": "głowa kota", + "🦁": "głowa lwa", + "🐯": "głowa tygrysa", + "🐴": "głowa konia", + "🦄": "głowa jednorożca", + "🦓": "zebra", + "🦌": "jeleń", + "🐮": "głowa krowy", + "🐷": "głowa świni", + "🐗": "dzik", + "🐪": "wielbłąd", + "🦙": "lama", + "🦒": "żyrafa", + "🐘": "słoń", + "🦣": "mamut", + "🦏": "nosorożec", + "🐭": "głowa myszy", + "🐰": "głowa królika", + "🐿️": "pręgowiec", + "🦔": "jeż", + "🦇": "nietoperz", + "🐻": "głowa niedźwiedzia", + "🐨": "koala", + "🦥": "leniwiec", + "🦦": "wydra", + "🦘": "kangur", + "🐥": "kurczątko od przodu", + "🐦️": "ptak", + "🕊️": "gołąb", + "🦆": "kaczka", + "🦉": "sowa", + "🦤": "dodo", + "🪶": "pióro", + "🦩": "flaming", + "🦚": "paw", + "🦜": "papuga", + "🐊": "krokodyl", + "🐢": "żółw", + "🦎": "jaszczurka", + "🐍": "wąż", + "🐲": "głowa smoka", + "🦕": "zauropod", + "🐳": "wieloryb tryskający wodą", + "🐬": "delfin", + "🦭": "foka", + "🐟️": "ryba", + "🐠": "ryba tropikalna", + "🦈": "rekin", + "🐙": "ośmiornica", + "🐚": "muszla spiralna", + "🐌": "ślimak", + "🦋": "motyl", + "🐛": "gąsienica", + "🐝": "pszczoła", + "🐞": "biedronka", + "💐": "bukiet kwiatów", + "🌹": "róża", + "🌺": "kwiat hibiskusa", + "🌻": "słonecznik", + "🌷": "tulipan", + "🌲": "wiecznie zielone drzewo", + "🌳": "drzewo liściaste", + "🌴": "palma", + "🌵": "kaktus", + "🌿": "zioło", + "🍁": "liść klonowy", + "🍇": "winogrona", + "🍈": "melon", + "🍉": "arbuz", + "🍊": "mandarynka", + "🍋": "cytryna", + "🍌": "banan", + "🍍": "ananas", + "🥭": "mango", + "🍏": "zielone jabłko", + "🍐": "gruszka", + "🍑": "brzoskwinia", + "🍒": "wiśnie", + "🍓": "truskawka", + "🫐": "borówka amerykańska", + "🥝": "owoc kiwi", + "🍅": "pomidor", + "🫒": "oliwka", + "🥥": "kokos", + "🥑": "awokado", + "🍆": "bakłażan", + "🥕": "marchew", + "🌽": "kolba kukurydzy", + "🌶️": "ostra papryka", + "🥬": "zielenina liściasta", + "🥦": "brokuł", + "🧅": "cebula", + "🍄": "grzyb", + "🥜": "orzeszki ziemne", + "🥐": "rogalik", + "🥖": "bagietka", + "🥨": "precel", + "🥯": "bajgiel", + "🥞": "naleśniki", + "🧇": "gofr", + "🍔": "hamburger", + "🍕": "pizza", + "🌭": "hot dog", + "🌮": "taco", + "🍿": "popcorn", + "🦀": "krab", + "🦞": "homar", + "🍨": "lody", + "🍩": "pączek z dziurką", + "🍪": "ciastko", + "🎂": "tort urodzinowy", + "🧁": "babeczka", + "🍫": "tabliczka czekolady", + "🍬": "cukierek", + "🍭": "lizak", + "🫖": "czajniczek", + "🧃": "napój w kartoniku", + "🧉": "yerba mate", + "🧭": "kompas", + "🏔️": "góra z czapą lodową", + "🌋": "wulkan", + "🏕️": "kemping", + "🏝️": "bezludna wyspa", + "🏡": "dom z ogrodem", + "⛲️": "fontanna", + "🎠": "koń z karuzeli", + "🎡": "diabelski młyn", + "🎢": "kolejka górska", + "💈": "słup fryzjerski", + "🚆": "pociąg", + "🚋": "wagon tramwajowy", + "🚍️": "nadjeżdżający autobus", + "🚕": "taksówka", + "🚗": "samochód", + "🚚": "samochód dostawczy", + "🚜": "ciągnik", + "🛵": "skuter", + "🛺": "autoriksza", + "🛴": "hulajnoga", + "🛹": "deskorolka", + "🛼": "wrotka", + "⚓️": "kotwica", + "⛵️": "żaglówka", + "🛶": "kajak", + "🚤": "ścigacz wodny", + "🚢": "statek", + "✈️": "samolot", + "🚁": "helikopter", + "🚠": "górska kolej linowa", + "🛰️": "satelita", + "🚀": "rakieta", + "🛸": "latający talerz", + "⏰": "budzik", + "🌙": "półksiężyc", + "🌡️": "termometr", + "☀️": "słońce", + "🪐": "planeta z pierścieniami", + "🌟": "błyszcząca gwiazda", + "🌀": "cyklon", + "🌈": "tęcza", + "☂️": "parasol", + "❄️": "płatek śniegu", + "☄️": "kometa", + "🔥": "ogień", + "💧": "kropla", + "🌊": "fala", + "🎃": "dynia na halloween", + "✨": "gwiazdki", + "🎈": "balon", + "🎉": "tuba z konfetti", + "🎏": "flaga w kształcie karpia", + "🎀": "wstążka", + "🎁": "zapakowany prezent", + "🎟️": "bilety wstępu", + "🏆️": "puchar", + "⚽️": "piłka nożna", + "🏀": "koszykówka", + "🏈": "futbol amerykański", + "🎾": "tenis", + "🥏": "frisbee", + "🏓": "tenis stołowy", + "🏸": "badminton", + "🤿": "maska do nurkowania", + "🥌": "kamień do curlingu", + "🎯": "strzał w 10", + "🪀": "jojo", + "🪁": "latawiec", + "🔮": "kryształowa kula", + "🎲": "kostka do gry", + "🧩": "element układanki", + "🎨": "paleta malarska", + "🧵": "nić", + "👕": "koszulka", + "🧦": "skarpetki", + "👗": "sukienka", + "🩳": "szorty", + "🎒": "tornister", + "👟": "but do biegania", + "👑": "korona", + "🧢": "bejsbolówka", + "💄": "szminka", + "💍": "pierścionek", + "💎": "kamień szlachetny", + "📢": "głośnik", + "🎶": "nuty", + "🎙️": "mikrofon studyjny", + "📻️": "radio", + "🎷": "saksofon", + "🪗": "akordeon", + "🎸": "gitara", + "🎺": "trąbka", + "🎻": "skrzypce", + "🪕": "banjo", + "🥁": "bęben", + "☎️": "telefon", + "🔋": "bateria", + "💿️": "dysk optyczny", + "🧮": "liczydło", + "🎬️": "klaps", + "💡": "żarówka", + "🔦": "latarka", + "🏮": "czerwony lampion", + "📕": "zamknięta książka", + "🏷️": "przywieszka do kluczy", + "💳️": "karta kredytowa", + "✏️": "ołówek", + "🖌️": "pędzel", + "🖍️": "kredka", + "📌": "pinezka", + "📎": "spinacz", + "🔑": "klucz", + "🪃": "bumerang", + "🏹": "łuk i strzała", + "⚖️": "waga szalkowa", + "🧲": "magnes", + "🧪": "probówka", + "🧬": "dna", + "🔬": "mikroskop", + "🔭": "teleskop", + "📡": "antena satelitarna", + "🪑": "krzesło", + "🧹": "miotła", + "🗿": "moai" + }, + "pt": { + "👽️": "alienígena", + "🤖": "rosto de robô", + "🧠": "cérebro", + "👁️": "olho", + "🧙": "mago", + "🧚": "fada", + "🧜": "pessoa sereia", + "🐵": "rosto de macaco", + "🦧": "orangotango", + "🐶": "rosto de cachorro", + "🐺": "rosto de lobo", + "🦊": "rosto de raposa", + "🦝": "guaxinim", + "🐱": "rosto de gato", + "🦁": "rosto de leão", + "🐯": "rosto de tigre", + "🐴": "rosto de cavalo", + "🦄": "rosto de unicórnio", + "🦓": "zebra", + "🦌": "cervo", + "🐮": "rosto de vaca", + "🐷": "rosto de porco", + "🐗": "javali", + "🐪": "camelo", + "🦙": "lhama", + "🦒": "girafa", + "🐘": "elefante", + "🦣": "mamute", + "🦏": "rinoceronte", + "🐭": "rosto de camundongo", + "🐰": "rosto de coelho", + "🐿️": "esquilo", + "🦔": "porco-espinho", + "🦇": "morcego", + "🐻": "rosto de urso", + "🐨": "coala", + "🦥": "preguiça", + "🦦": "lontra", + "🦘": "canguru", + "🐥": "pintinho de frente", + "🐦️": "pássaro", + "🕊️": "pomba branca", + "🦆": "pato", + "🦉": "coruja", + "🦤": "dodô", + "🪶": "pena", + "🦩": "flamingo", + "🦚": "pavão", + "🦜": "papagaio", + "🐊": "crocodilo", + "🐢": "tartaruga", + "🦎": "lagartixa", + "🐍": "cobra", + "🐲": "rosto de dragão", + "🦕": "saurópode", + "🐳": "baleia esguichando água", + "🐬": "golfinho", + "🦭": "foca", + "🐟️": "peixe", + "🐠": "peixe tropical", + "🦈": "tubarão", + "🐙": "polvo", + "🐚": "caramujo", + "🐌": "caracol", + "🦋": "borboleta", + "🐛": "inseto", + "🐝": "abelha", + "🐞": "joaninha", + "💐": "buquê", + "🌹": "rosa", + "🌺": "hibisco", + "🌻": "girassol", + "🌷": "tulipa", + "🌲": "conífera", + "🌳": "árvore caidiça", + "🌴": "palmeira", + "🌵": "cacto", + "🌿": "erva", + "🍁": "folha de bordo", + "🍇": "uvas", + "🍈": "melão", + "🍉": "melancia", + "🍊": "tangerina", + "🍋": "limão", + "🍌": "banana", + "🍍": "abacaxi", + "🥭": "manga", + "🍏": "maçã verde", + "🍐": "pera", + "🍑": "pêssego", + "🍒": "cereja", + "🍓": "morango", + "🫐": "mirtilos", + "🥝": "kiwi", + "🍅": "tomate", + "🫒": "azeitona", + "🥥": "coco", + "🥑": "abacate", + "🍆": "berinjela", + "🥕": "cenoura", + "🌽": "milho", + "🌶️": "pimenta", + "🥬": "verdura", + "🥦": "brócolis", + "🧅": "cebola", + "🍄": "cogumelo", + "🥜": "amendoim", + "🥐": "croissant", + "🥖": "baguete", + "🥨": "pretzel", + "🥯": "rosca", + "🥞": "panquecas", + "🧇": "waffle", + "🍔": "hambúrguer", + "🍕": "pizza", + "🌭": "cachorro-quente", + "🌮": "taco", + "🍿": "pipoca", + "🦀": "caranguejo", + "🦞": "lagosta", + "🍨": "sorvete", + "🍩": "donut", + "🍪": "biscoito", + "🎂": "bolo de aniversário", + "🧁": "cupcake", + "🍫": "chocolate", + "🍬": "bala", + "🍭": "pirulito", + "🫖": "bule", + "🧃": "suco de caixa", + "🧉": "mate", + "🧭": "bússola", + "🏔️": "montanha com neve", + "🌋": "vulcão", + "🏕️": "acampamento", + "🏝️": "ilha deserta", + "🏡": "casa com jardim", + "⛲️": "fonte", + "🎠": "carrossel", + "🎡": "roda gigante", + "🎢": "montanha russa", + "💈": "barbearia", + "🚆": "trem", + "🚋": "bonde", + "🚍️": "ônibus se aproximando", + "🚕": "táxi", + "🚗": "carro", + "🚚": "caminhão de entrega", + "🚜": "trator", + "🛵": "scooter", + "🛺": "automóvel riquixá", + "🛴": "patinete", + "🛹": "skate", + "🛼": "patins de rodas", + "⚓️": "âncora", + "⛵️": "barco a vela", + "🛶": "canoa", + "🚤": "lancha", + "🚢": "navio", + "✈️": "avião", + "🚁": "helicóptero", + "🚠": "cabo suspenso usado em teleféricos nas montanhas", + "🛰️": "satélite", + "🚀": "foguete", + "🛸": "disco voador", + "⏰": "despertador", + "🌙": "lua crescente", + "🌡️": "termômetro", + "☀️": "sol", + "🪐": "planeta com anéis", + "🌟": "estrela brilhante", + "🌀": "ciclone", + "🌈": "arco-íris", + "☂️": "guarda-chuva", + "❄️": "floco de neve", + "☄️": "cometa", + "🔥": "fogo", + "💧": "gota", + "🌊": "onda", + "🎃": "abóbora de halloween", + "✨": "brilhos", + "🎈": "balão", + "🎉": "cone de festa", + "🎏": "bandeira de carpas", + "🎀": "laço de fita", + "🎁": "presente", + "🎟️": "ingresso de cinema", + "🏆️": "troféu", + "⚽️": "bola de futebol", + "🏀": "bola de basquete", + "🏈": "bola de futebol americano", + "🎾": "tênis", + "🥏": "frisbee", + "🏓": "pingue-pongue", + "🏸": "badminton", + "🤿": "máscara de mergulho", + "🥌": "pedra de curling", + "🎯": "no alvo", + "🪀": "ioiô", + "🪁": "pipa", + "🔮": "bola de cristal", + "🎲": "jogo de dado", + "🧩": "quebra-cabeça", + "🎨": "paleta de tintas", + "🧵": "carretel", + "👕": "camiseta", + "🧦": "meias", + "👗": "vestido", + "🩳": "shorts", + "🎒": "mochila", + "👟": "tênis de corrida", + "👑": "coroa", + "🧢": "boné", + "💄": "batom", + "💍": "anel", + "💎": "pedra preciosa", + "📢": "buzina", + "🎶": "notas musicais", + "🎙️": "microfone de estúdio", + "📻️": "rádio", + "🎷": "saxofone", + "🪗": "acordeão", + "🎸": "guitarra", + "🎺": "trompete", + "🎻": "violino", + "🪕": "banjo", + "🥁": "tambor", + "☎️": "telefone no gancho", + "🔋": "pilha", + "💿️": "cd", + "🧮": "ábaco", + "🎬️": "claquete", + "💡": "lâmpada", + "🔦": "lanterna", + "🏮": "lanterna vermelha de papel", + "📕": "livro fechado", + "🏷️": "etiqueta", + "💳️": "cartão de crédito", + "✏️": "lápis", + "🖌️": "pincel", + "🖍️": "giz de cera", + "📌": "tacha", + "📎": "clipe de papel", + "🔑": "chave", + "🪃": "bumerangue", + "🏹": "arco e flecha", + "⚖️": "balança", + "🧲": "ímã", + "🧪": "tubo de ensaio", + "🧬": "dna", + "🔬": "microscópio", + "🔭": "telescópio", + "📡": "antena parabólica", + "🪑": "cadeira", + "🧹": "vassoura", + "🗿": "moai" + }, + "ro": { + "👽️": "extraterestru", + "🤖": "robot", + "🧠": "creier", + "👁️": "un ochi", + "🧙": "mag", + "🧚": "zână", + "🧜": "persoană sirenă", + "🐵": "față de maimuță", + "🦧": "urangutan", + "🐶": "față de câine", + "🐺": "lup", + "🦊": "vulpe", + "🦝": "raton", + "🐱": "față de pisică", + "🦁": "leu", + "🐯": "față de tigru", + "🐴": "față de cal", + "🦄": "unicorn", + "🦓": "zebră", + "🦌": "cerb", + "🐮": "cap de vacă", + "🐷": "cap de porc", + "🐗": "mistreț", + "🐪": "dromader", + "🦙": "lamă", + "🦒": "girafă", + "🐘": "elefant", + "🦣": "mamut", + "🦏": "rinocer", + "🐭": "față de șoarece", + "🐰": "față de iepure", + "🐿️": "veveriță", + "🦔": "arici", + "🦇": "liliac", + "🐻": "urs", + "🐨": "koala", + "🦥": "leneș", + "🦦": "vidră", + "🦘": "cangur", + "🐥": "pui de găină din față", + "🐦️": "pasăre", + "🕊️": "porumbiță", + "🦆": "rață", + "🦉": "bufniță", + "🦤": "dodo", + "🪶": "pană", + "🦩": "flamingo", + "🦚": "păun", + "🦜": "papagal mare", + "🐊": "crocodil", + "🐢": "broască țestoasă", + "🦎": "șopârlă", + "🐍": "șarpe", + "🐲": "față de dragon", + "🦕": "sauropod", + "🐳": "balenă împroșcând apă", + "🐬": "delfin", + "🦭": "focă", + "🐟️": "pește", + "🐠": "pește tropical", + "🦈": "rechin", + "🐙": "caracatiță", + "🐚": "cochilie spiralată", + "🐌": "melc", + "🦋": "fluture", + "🐛": "gândac", + "🐝": "albină", + "🐞": "buburuză", + "💐": "buchet de flori", + "🌹": "trandafir", + "🌺": "hibiscus", + "🌻": "floarea soarelui", + "🌷": "lalea", + "🌲": "arbore conifer", + "🌳": "arbore foios", + "🌴": "palmier", + "🌵": "cactus", + "🌿": "plantă aromatică", + "🍁": "frunză de arțar", + "🍇": "struguri", + "🍈": "pepene galben", + "🍉": "pepene verde", + "🍊": "mandarină", + "🍋": "lămâie", + "🍌": "banană", + "🍍": "ananas", + "🥭": "mango", + "🍏": "măr verde", + "🍐": "pară", + "🍑": "piersică", + "🍒": "cireșe", + "🍓": "căpșună", + "🫐": "afine", + "🥝": "kiwi", + "🍅": "roșie", + "🫒": "măslină", + "🥥": "nucă de cocos", + "🥑": "avocado", + "🍆": "vânătă", + "🥕": "morcov", + "🌽": "știulete de porumb", + "🌶️": "ardei iute", + "🥬": "verdețuri", + "🥦": "broccoli", + "🧅": "ceapă", + "🍄": "ciupercă", + "🥜": "arahide", + "🥐": "croasant", + "🥖": "baghetă de pâine", + "🥨": "covrig", + "🥯": "bagel", + "🥞": "clătite", + "🧇": "gofră", + "🍔": "hamburger", + "🍕": "pizza", + "🌭": "hot dog", + "🌮": "taco", + "🍿": "floricele de porumb", + "🦀": "rac", + "🦞": "homar", + "🍨": "înghețată", + "🍩": "gogoașă americană", + "🍪": "fursec", + "🎂": "tort aniversar", + "🧁": "brioșă", + "🍫": "baton de ciocolată", + "🍬": "bomboană", + "🍭": "acadea", + "🫖": "ceainic", + "🧃": "cutie de băutură", + "🧉": "mate", + "🧭": "busolă", + "🏔️": "vârf de munte înzăpezit", + "🌋": "vulcan", + "🏕️": "camping", + "🏝️": "insulă pustie", + "🏡": "casă cu grădină", + "⛲️": "fântână arteziană", + "🎠": "căluț de carusel", + "🎡": "roata mare", + "🎢": "montagne russe", + "💈": "semn de frizerie", + "🚆": "tren", + "🚋": "vagon de tramvai", + "🚍️": "autobuz care se apropie", + "🚕": "taxi", + "🚗": "automobil", + "🚚": "camion de marfă", + "🚜": "tractor", + "🛵": "scuter", + "🛺": "autoricșă", + "🛴": "trotinetă", + "🛹": "skateboard", + "🛼": "patină cu rotile", + "⚓️": "ancoră", + "⛵️": "barcă cu pânze", + "🛶": "canoe", + "🚤": "barcă de viteză", + "🚢": "vapor", + "✈️": "avion", + "🚁": "elicopter", + "🚠": "telecabină montană", + "🛰️": "satelit", + "🚀": "rachetă", + "🛸": "farfurie zburătoare", + "⏰": "ceas deșteptător", + "🌙": "semilună", + "🌡️": "termometru", + "☀️": "soare", + "🪐": "planetă cu inele", + "🌟": "stea strălucitoare", + "🌀": "ciclon", + "🌈": "curcubeu", + "☂️": "umbrelă", + "❄️": "fulg de nea", + "☄️": "cometă", + "🔥": "foc", + "💧": "picătură", + "🌊": "val", + "🎃": "dovleac cu felinar", + "✨": "steluțe", + "🎈": "balon", + "🎉": "tun cu confetti", + "🎏": "crap decorativ în vânt", + "🎀": "fundă", + "🎁": "cadou împachetat", + "🎟️": "bilete de intrare", + "🏆️": "trofeu", + "⚽️": "minge de fotbal", + "🏀": "baschet", + "🏈": "fotbal american", + "🎾": "tenis", + "🥏": "disc zburător", + "🏓": "ping pong", + "🏸": "badminton", + "🤿": "mască de scufundări", + "🥌": "piatră de curling", + "🎯": "fix la țintă", + "🪀": "yo-yo", + "🪁": "zmeu", + "🔮": "glob de cristal", + "🎲": "zar", + "🧩": "piesă de puzzle", + "🎨": "paletă de pictor", + "🧵": "ață", + "👕": "tricou", + "🧦": "șosete", + "👗": "rochie", + "🩳": "șort", + "🎒": "rucsac", + "👟": "pantof sport", + "👑": "coroană", + "🧢": "șapcă", + "💄": "ruj", + "💍": "inel", + "💎": "piatră prețioasă", + "📢": "portavoce", + "🎶": "note muzicale", + "🎙️": "microfon de studio", + "📻️": "radio", + "🎷": "saxofon", + "🪗": "acordeon", + "🎸": "chitară", + "🎺": "trompetă", + "🎻": "vioară", + "🪕": "banjo", + "🥁": "tobă", + "☎️": "telefon", + "🔋": "baterie", + "💿️": "cd", + "🧮": "abac", + "🎬️": "clachetă", + "💡": "bec", + "🔦": "lanternă", + "🏮": "felinar din hârtie roșie", + "📕": "carte închisă", + "🏷️": "etichetă", + "💳️": "card de credit", + "✏️": "creion", + "🖌️": "pensulă", + "🖍️": "creion colorat", + "📌": "piuneză", + "📎": "agrafă de hârtie", + "🔑": "cheie", + "🪃": "bumerang", + "🏹": "arc și săgeată", + "⚖️": "balanță", + "🧲": "magnet", + "🧪": "eprubetă", + "🧬": "ADN", + "🔬": "microscop", + "🔭": "telescop", + "📡": "antenă satelit", + "🪑": "scaun", + "🧹": "mătură", + "🗿": "statuie moai" + }, + "ru": { + "👽️": "инопланетянин", + "🤖": "робот", + "🧠": "мозг", + "👁️": "глаз", + "🧙": "маг", + "🧚": "фея", + "🧜": "русалка", + "🐵": "морда обезьяны", + "🦧": "орангутан", + "🐶": "морда собаки", + "🐺": "морда волка", + "🦊": "морда лисицы", + "🦝": "морда енота", + "🐱": "морда кошки", + "🦁": "морда льва", + "🐯": "морда тигра", + "🐴": "морда лошади", + "🦄": "голова единорога", + "🦓": "зебра", + "🦌": "олень", + "🐮": "морда коровы", + "🐷": "морда свиньи", + "🐗": "кабан", + "🐪": "одногорбый верблюд", + "🦙": "лама", + "🦒": "жираф", + "🐘": "слон", + "🦣": "мамонт", + "🦏": "носорог", + "🐭": "морда мыши", + "🐰": "морда кролика", + "🐿️": "бурундук", + "🦔": "еж", + "🦇": "летучая мышь", + "🐻": "морда медведя", + "🐨": "морда коалы", + "🦥": "ленивец", + "🦦": "выдра", + "🦘": "кенгуру", + "🐥": "цыпленок", + "🐦️": "птица", + "🕊️": "голубь", + "🦆": "утка", + "🦉": "сова", + "🦤": "дронт", + "🪶": "перо", + "🦩": "фламинго", + "🦚": "павлин", + "🦜": "попугай", + "🐊": "крокодил", + "🐢": "черепаха", + "🦎": "ящерица", + "🐍": "змея", + "🐲": "голова дракона", + "🦕": "зауропод", + "🐳": "кит с фонтанчиком", + "🐬": "дельфин", + "🦭": "тюлень", + "🐟️": "рыба", + "🐠": "тропическая рыба", + "🦈": "акула", + "🐙": "осьминог", + "🐚": "раковина", + "🐌": "улитка", + "🦋": "бабочка", + "🐛": "гусеница", + "🐝": "пчела", + "🐞": "божья коровка", + "💐": "букет", + "🌹": "роза", + "🌺": "гибискус", + "🌻": "подсолнух", + "🌷": "тюльпан", + "🌲": "елка", + "🌳": "дерево", + "🌴": "пальма", + "🌵": "кактус", + "🌿": "веточка", + "🍁": "кленовый лист", + "🍇": "виноград", + "🍈": "дыня", + "🍉": "арбуз", + "🍊": "мандарин", + "🍋": "лимон", + "🍌": "банан", + "🍍": "ананас", + "🥭": "манго", + "🍏": "зеленое яблоко", + "🍐": "груша", + "🍑": "персик", + "🍒": "вишня", + "🍓": "клубника", + "🫐": "голубика", + "🥝": "киви", + "🍅": "помидор", + "🫒": "оливка", + "🥥": "кокос", + "🥑": "авокадо", + "🍆": "баклажан", + "🥕": "морковь", + "🌽": "кукурузный початок", + "🌶️": "острый перец", + "🥬": "зеленый салат", + "🥦": "брокколи", + "🧅": "лук", + "🍄": "гриб", + "🥜": "арахис", + "🥐": "круассан", + "🥖": "багет", + "🥨": "крендель", + "🥯": "бублик", + "🥞": "блины", + "🧇": "вафля", + "🍔": "гамбургер", + "🍕": "пицца", + "🌭": "хот-дог", + "🌮": "тако", + "🍿": "попкорн", + "🦀": "краб", + "🦞": "омар", + "🍨": "мороженое", + "🍩": "пончик", + "🍪": "печенье", + "🎂": "торт ко дню рождения", + "🧁": "капкейк", + "🍫": "шоколад", + "🍬": "конфета", + "🍭": "леденец", + "🫖": "чайник", + "🧃": "пакетик сока", + "🧉": "мате", + "🧭": "компас", + "🏔️": "гора со снежной шапкой", + "🌋": "вулкан", + "🏕️": "кемпинг", + "🏝️": "остров", + "🏡": "дом с садом", + "⛲️": "фонтан", + "🎠": "лошадь на карусели", + "🎡": "колесо обозрения", + "🎢": "американские горки", + "💈": "парикмахерская", + "🚆": "поезд", + "🚋": "трамвайный вагон", + "🚍️": "автобус спереди", + "🚕": "такси", + "🚗": "автомобиль", + "🚚": "грузовик", + "🚜": "трактор", + "🛵": "скутер", + "🛺": "авторикша", + "🛴": "самокат", + "🛹": "скейтборд", + "🛼": "роликовые коньки", + "⚓️": "якорь", + "⛵️": "парусник", + "🛶": "каноэ", + "🚤": "катер", + "🚢": "корабль", + "✈️": "самолет", + "🚁": "вертолет", + "🚠": "вагон фуникулера", + "🛰️": "спутник", + "🚀": "ракета", + "🛸": "летающая тарелка", + "⏰": "будильник", + "🌙": "полумесяц", + "🌡️": "термометр", + "☀️": "солнце", + "🪐": "планета с кольцом", + "🌟": "сияющая звезда", + "🌀": "циклон", + "🌈": "радуга", + "☂️": "зонт", + "❄️": "снежинка", + "☄️": "комета", + "🔥": "огонь", + "💧": "капля", + "🌊": "волна", + "🎃": "тыква-фонарь", + "✨": "блестки", + "🎈": "воздушный шарик", + "🎉": "хлопушка", + "🎏": "вымпелы в виде карпов", + "🎀": "бантик", + "🎁": "подарок", + "🎟️": "билеты", + "🏆️": "кубок", + "⚽️": "футбол", + "🏀": "баскетбол", + "🏈": "американский футбол", + "🎾": "теннис", + "🥏": "летающий диск", + "🏓": "настольный теннис", + "🏸": "бадминтон", + "🤿": "маска с трубкой", + "🥌": "керлинг", + "🎯": "мишень", + "🪀": "йо-йо", + "🪁": "воздушный змей", + "🔮": "хрустальный шар", + "🎲": "игральная кость", + "🧩": "пазл", + "🎨": "палитра с красками", + "🧵": "катушка ниток", + "👕": "футболка", + "🧦": "носки", + "👗": "платье", + "🩳": "шорты", + "🎒": "ранец", + "👟": "кроссовки", + "👑": "корона", + "🧢": "бейсболка", + "💄": "помада", + "💍": "кольцо", + "💎": "драгоценный камень", + "📢": "громкоговоритель", + "🎶": "ноты", + "🎙️": "студийный микрофон", + "📻️": "радио", + "🎷": "саксофон", + "🪗": "аккордеон", + "🎸": "гитара", + "🎺": "труба", + "🎻": "скрипка", + "🪕": "банджо", + "🥁": "барабан", + "☎️": "телефон", + "🔋": "батарейка", + "💿️": "CD", + "🧮": "счеты", + "🎬️": "хлопушка-нумератор", + "💡": "лампочка", + "🔦": "фонарик", + "🏮": "красный бумажный фонарик", + "📕": "закрытая книга", + "🏷️": "бирка", + "💳️": "кредитная карта", + "✏️": "карандаш", + "🖌️": "кисточка", + "🖍️": "восковой мелок", + "📌": "канцелярская кнопка", + "📎": "скрепка", + "🔑": "ключ", + "🪃": "бумеранг", + "🏹": "лук со стрелой", + "⚖️": "весы", + "🧲": "магнит", + "🧪": "пробирка", + "🧬": "ДНК", + "🔬": "микроскоп", + "🔭": "телескоп", + "📡": "спутниковая антенна", + "🪑": "стул", + "🧹": "метла", + "🗿": "истукан" + }, + "sv": { + "👽️": "utomjording", + "🤖": "robotansikte", + "🧠": "hjärna", + "👁️": "öga", + "🧙": "magiker", + "🧚": "fé", + "🧜": "vattenväsen", + "🐵": "apansikte", + "🦧": "orangutang", + "🐶": "hundansikte", + "🐺": "vargansikte", + "🦊": "rävansikte", + "🦝": "tvättbjörn", + "🐱": "kattansikte", + "🦁": "lejonansikte", + "🐯": "tigeransikte", + "🐴": "hästansikte", + "🦄": "enhörningsansikte", + "🦓": "zebra", + "🦌": "hjort", + "🐮": "koansikte", + "🐷": "grisansikte", + "🐗": "vildsvin", + "🐪": "dromedar", + "🦙": "lama", + "🦒": "giraff", + "🐘": "elefant", + "🦣": "mammut", + "🦏": "noshörning", + "🐭": "musansikte", + "🐰": "kaninansikte", + "🐿️": "jordekorre", + "🦔": "igelkott", + "🦇": "fladdermus", + "🐻": "björnansikte", + "🐨": "koala", + "🦥": "sengångare", + "🦦": "utter", + "🦘": "känguru", + "🐥": "kyckling framifrån", + "🐦️": "fågel", + "🕊️": "duva", + "🦆": "and", + "🦉": "uggla", + "🦤": "dront", + "🪶": "fågelfjäder", + "🦩": "flamingo", + "🦚": "påfågel", + "🦜": "papegoja", + "🐊": "krokodil", + "🐢": "sköldpadda", + "🦎": "ödla", + "🐍": "orm", + "🐲": "drakansikte", + "🦕": "sauropod", + "🐳": "val som sprutar vatten", + "🐬": "delfin", + "🦭": "säl", + "🐟️": "fisk", + "🐠": "tropisk fisk", + "🦈": "haj", + "🐙": "bläckfisk", + "🐚": "snäcka", + "🐌": "snigel", + "🦋": "fjäril", + "🐛": "tusenfoting", + "🐝": "bi", + "🐞": "nyckelpiga", + "💐": "blombukett", + "🌹": "ros", + "🌺": "hibiskus", + "🌻": "solros", + "🌷": "tulpan", + "🌲": "barrträd", + "🌳": "lövträd", + "🌴": "palm", + "🌵": "kaktus", + "🌿": "ört", + "🍁": "lönnlöv", + "🍇": "vindruvor", + "🍈": "melon", + "🍉": "vattenmelon", + "🍊": "mandarin", + "🍋": "citron", + "🍌": "banan", + "🍍": "ananas", + "🥭": "mango", + "🍏": "grönt äpple", + "🍐": "päron", + "🍑": "persika", + "🍒": "körsbär", + "🍓": "jordgubbe", + "🫐": "blåbär", + "🥝": "kiwifrukt", + "🍅": "tomat", + "🫒": "oliv", + "🥥": "kokosnöt", + "🥑": "avokado", + "🍆": "aubergine", + "🥕": "morot", + "🌽": "majskolv", + "🌶️": "chili", + "🥬": "sallat", + "🥦": "broccoli", + "🧅": "lök", + "🍄": "svamp", + "🥜": "jordnötter", + "🥐": "croissant", + "🥖": "baguette", + "🥨": "pretzel", + "🥯": "bagel", + "🥞": "pannkakor", + "🧇": "våffla", + "🍔": "hamburgare", + "🍕": "pizzabit", + "🌭": "varmkorv", + "🌮": "taco", + "🍿": "popcorn", + "🦀": "krabba", + "🦞": "hummer", + "🍨": "glass", + "🍩": "munk", + "🍪": "kaka", + "🎂": "födelsedagstårta", + "🧁": "muffin", + "🍫": "chokladkaka", + "🍬": "godis", + "🍭": "klubba", + "🫖": "tekanna", + "🧃": "dryckeskartong", + "🧉": "mate-te", + "🧭": "kompass", + "🏔️": "snöklätt berg", + "🌋": "vulkan", + "🏕️": "camping", + "🏝️": "öde ö", + "🏡": "hus med trädgård", + "⛲️": "fontän", + "🎠": "karusellhäst", + "🎡": "pariserhjul", + "🎢": "berg- och dalbana", + "💈": "barberarstolpe", + "🚆": "tåg", + "🚋": "spårvagnsvagn", + "🚍️": "mötande buss", + "🚕": "taxi", + "🚗": "bil", + "🚚": "budbil", + "🚜": "traktor", + "🛵": "skoter", + "🛺": "automatisk riksha", + "🛴": "sparkcykel", + "🛹": "skateboard", + "🛼": "rullskridsko", + "⚓️": "ankare", + "⛵️": "segelbåt", + "🛶": "kanot", + "🚤": "racerbåt", + "🚢": "fartyg", + "✈️": "flygplan", + "🚁": "helikopter", + "🚠": "linbana", + "🛰️": "satellit", + "🚀": "raket", + "🛸": "flygande tefat", + "⏰": "väckarklocka", + "🌙": "månskära", + "🌡️": "termometer", + "☀️": "sol", + "🪐": "planet med ringar", + "🌟": "blänkande stjärna", + "🌀": "cyklon", + "🌈": "regnbåge", + "☂️": "paraply", + "❄️": "snöflinga", + "☄️": "komet", + "🔥": "eld", + "💧": "droppe", + "🌊": "våg", + "🎃": "lyktgubbe", + "✨": "gnistrande stjärnor", + "🎈": "ballong", + "🎉": "konfettismällare", + "🎏": "karpvindstrut", + "🎀": "rosett", + "🎁": "inslagen present", + "🎟️": "inträdesbiljetter", + "🏆️": "pokal", + "⚽️": "fotboll", + "🏀": "basketboll", + "🏈": "amerikansk fotboll", + "🎾": "tennis", + "🥏": "frisbee", + "🏓": "bordtennis", + "🏸": "badminton", + "🤿": "dykmask", + "🥌": "curlingsten", + "🎯": "mitt i prick", + "🪀": "jojo", + "🪁": "flygande drake", + "🔮": "kristallkula", + "🎲": "speltärning", + "🧩": "pusselbit", + "🎨": "färgpalett", + "🧵": "tråd", + "👕": "t-shirt", + "🧦": "sockor", + "👗": "klänning", + "🩳": "shorts", + "🎒": "ryggsäck", + "👟": "gympasko", + "👑": "krona", + "🧢": "skärmmössa", + "💄": "läppstift", + "💍": "ring", + "💎": "ädelsten", + "📢": "handhögtalare", + "🎶": "musiknoter", + "🎙️": "studiomikrofon", + "📻️": "radio", + "🎷": "saxofon", + "🪗": "dragspel", + "🎸": "gitarr", + "🎺": "trumpet", + "🎻": "fiol", + "🪕": "banjo", + "🥁": "trumma", + "☎️": "telefon", + "🔋": "batteri", + "💿️": "optisk skiva", + "🧮": "kulram", + "🎬️": "filmklappa", + "💡": "glödlampa", + "🔦": "ficklampa", + "🏮": "röd papperslykta", + "📕": "stängd bok", + "🏷️": "etikett", + "💳️": "kreditkort", + "✏️": "blyertspenna", + "🖌️": "målarpensel", + "🖍️": "krita", + "📌": "kartnål", + "📎": "gem", + "🔑": "nyckel", + "🪃": "boomerang", + "🏹": "pil och båge", + "⚖️": "balansvåg", + "🧲": "magnet", + "🧪": "provrör", + "🧬": "DNA", + "🔬": "mikroskop", + "🔭": "teleskop", + "📡": "tv-satellit", + "🪑": "stol", + "🧹": "kvast", + "🗿": "staty" + }, + "th": { + "👽️": "เอเลี่ยน", + "🤖": "หุ่นยนต์", + "🧠": "สมอง", + "👁️": "ตาข้างเดียว", + "🧙": "นักเวทย์", + "🧚": "นางฟ้า", + "🧜": "ครึ่งคนครึ่งปลา", + "🐵": "หน้าลิง", + "🦧": "อุรังอุตัง", + "🐶": "หน้าสุนัข", + "🐺": "หมาป่า", + "🦊": "จิ้งจอก", + "🦝": "แรคคูน", + "🐱": "หน้าแมว", + "🦁": "สิงโต", + "🐯": "หน้าเสือ", + "🐴": "หน้าม้า", + "🦄": "ยูนิคอร์น", + "🦓": "ม้าลาย", + "🦌": "กวาง", + "🐮": "หน้าวัว", + "🐷": "หน้าหมู", + "🐗": "หมูป่าตัวผู้", + "🐪": "อูฐโหนกเดียว", + "🦙": "ลามะ", + "🦒": "ยีราฟ", + "🐘": "ช้าง", + "🦣": "ช้างแมมมอธ", + "🦏": "แรด", + "🐭": "หน้าหนู", + "🐰": "หน้ากระต่าย", + "🐿️": "ชิปมังก์", + "🦔": "เฮดจ์ฮ็อก", + "🦇": "ค้างคาว", + "🐻": "หมี", + "🐨": "โคอาล่า", + "🦥": "สลอธ", + "🦦": "ตัวนาก", + "🦘": "จิงโจ้", + "🐥": "ลูกเจี๊ยบยืนหันหน้า", + "🐦️": "นก", + "🕊️": "นกพิราบขาว", + "🦆": "เป็ด", + "🦉": "นกฮูก", + "🦤": "นกโดโด", + "🪶": "ขนนก", + "🦩": "นกฟลามิงโก", + "🦚": "นกยูง", + "🦜": "นกแก้ว", + "🐊": "จระเข้", + "🐢": "เต่า", + "🦎": "จิ้งจก", + "🐍": "งู", + "🐲": "หน้ามังกร", + "🦕": "ไดโนเสาร์", + "🐳": "ปลาวาฬพ่นน้ำ", + "🐬": "ปลาโลมา", + "🦭": "แมวน้ำ", + "🐟️": "ปลา", + "🐠": "ปลาเขตร้อน", + "🦈": "ฉลาม", + "🐙": "ปลาหมึกยักษ์", + "🐚": "หอย", + "🐌": "หอยทาก", + "🦋": "ผีเสื้อ", + "🐛": "แมลง", + "🐝": "ผึ้ง", + "🐞": "เต่าทอง", + "💐": "ช่อดอกไม้", + "🌹": "ดอกกุหลาบ", + "🌺": "ดอกชบา", + "🌻": "ดอกทานตะวัน", + "🌷": "ทิวลิป", + "🌲": "ต้นสน", + "🌳": "ต้นไม้ร่มรื่น", + "🌴": "ต้นมะพร้าว", + "🌵": "ตะบองเพชร", + "🌿": "สมุนไพร", + "🍁": "ใบเมเปิ้ล", + "🍇": "องุ่น", + "🍈": "เมลอน", + "🍉": "แตงโม", + "🍊": "ส้ม", + "🍋": "เลมอน", + "🍌": "กล้วย", + "🍍": "สับปะรด", + "🥭": "มะม่วง", + "🍏": "แอปเปิ้ลเขียว", + "🍐": "ลูกแพร์", + "🍑": "ลูกพีช", + "🍒": "เชอร์รี่", + "🍓": "สตรอว์เบอร์รี่", + "🫐": "บลูเบอร์รี่", + "🥝": "กีวี", + "🍅": "มะเขือเทศ", + "🫒": "มะกอก", + "🥥": "มะพร้าว", + "🥑": "อาโวคาโด", + "🍆": "มะเขือยาว", + "🥕": "แครอท", + "🌽": "ข้าวโพด", + "🌶️": "พริก", + "🥬": "ผักใบเขียว", + "🥦": "บรอกโคลี", + "🧅": "หอมหัวใหญ่", + "🍄": "เห็ด", + "🥜": "ถั่ว", + "🥐": "ครัวซอง", + "🥖": "ขนมปังฝรั่งเศส", + "🥨": "เพรตเซล", + "🥯": "เบเกิล", + "🥞": "แพนเค้ก", + "🧇": "วาฟเฟิล", + "🍔": "แฮมเบอร์เกอร์", + "🍕": "พิซซ่า 1 ชิ้น", + "🌭": "ฮอทด็อก", + "🌮": "ทาโก้", + "🍿": "ป๊อปคอร์น", + "🦀": "ปู", + "🦞": "กุ้งมังกร", + "🍨": "ไอศกรีม", + "🍩": "โดนัท", + "🍪": "คุกกี้", + "🎂": "เค้กวันเกิด", + "🧁": "คัพเค้ก", + "🍫": "ช็อกโกแลต", + "🍬": "ลูกอม", + "🍭": "อมยิ้ม", + "🫖": "กาน้ำชา", + "🧃": "เครื่องดื่มแบบกล่อง", + "🧉": "ชามาเต", + "🧭": "เข็มทิศ", + "🏔️": "ภูเขามีหิมะ", + "🌋": "ภูเขาไฟ", + "🏕️": "ตั้งแคมป์", + "🏝️": "เกาะ", + "🏡": "บ้านพร้อมสวน", + "⛲️": "น้ำพุ", + "🎠": "ม้าหมุน", + "🎡": "ชิงช้าสวรรค์", + "🎢": "รถไฟเหาะ", + "💈": "ร้านตัดผม", + "🚆": "รถไฟ", + "🚋": "ตู้รถราง", + "🚍️": "รถบัสกำลังมา", + "🚕": "แท็กซี่", + "🚗": "รถ", + "🚚": "รถขนส่ง", + "🚜": "แทร็กเตอร์", + "🛵": "รถสกู๊ตเตอร์", + "🛺": "รถสามล้อ", + "🛴": "สกู๊ตเตอร์", + "🛹": "สเก็ตบอร์ด", + "🛼": "รองเท้าสเก็ต", + "⚓️": "สมอเรือ", + "⛵️": "เรือใบ", + "🛶": "แคนู", + "🚤": "เรือด่วน", + "🚢": "เรือ", + "✈️": "เครื่องบิน", + "🚁": "เฮลิคอปเตอร์", + "🚠": "เคเบิลคาร์", + "🛰️": "ดาวเทียม", + "🚀": "จรวด", + "🛸": "จานบิน", + "⏰": "นาฬิกาปลุก", + "🌙": "พระจันทร์เสี้ยว", + "🌡️": "เครื่องวัดอุณหภูมิ", + "☀️": "พระอาทิตย์", + "🪐": "ดาวเคราะห์ที่มีวงแหวน", + "🌟": "ดาวส่องแสง", + "🌀": "ไซโคลน", + "🌈": "รุ้ง", + "☂️": "ร่ม", + "❄️": "เกล็ดหิมะ", + "☄️": "ดาวหาง", + "🔥": "ไฟ", + "💧": "หยดน้ำ", + "🌊": "คลื่น", + "🎃": "ฟักทองฮาโลวีน", + "✨": "ประกายวิบวับ", + "🎈": "ลูกโป่ง", + "🎉": "ปาร์ตี้", + "🎏": "ธงปลาคาร์พ", + "🎀": "ริบบิ้น", + "🎁": "ของขวัญ", + "🎟️": "ตั๋วเข้าชม", + "🏆️": "ถ้วยรางวัล", + "⚽️": "ลูกฟุตบอล", + "🏀": "บาสเกตบอล", + "🏈": "อเมริกันฟุตบอล", + "🎾": "เทนนิส", + "🥏": "จานร่อน", + "🏓": "ปิงปอง", + "🏸": "แบดมินตัน", + "🤿": "หน้ากากดำน้ำ", + "🥌": "ลูกกลิ้งหิน", + "🎯": "กลางเป้า", + "🪀": "โยโย่", + "🪁": "ว่าว", + "🔮": "ลูกแก้ววิเศษ", + "🎲": "ลูกเต๋า", + "🧩": "จิ๊กซอว์", + "🎨": "จานสีวาดรูป", + "🧵": "ด้าย", + "👕": "เสื้อยืด", + "🧦": "ถุงเท้า", + "👗": "ชุดกระโปรง", + "🩳": "กางเกงขาสั้น", + "🎒": "เป้นักเรียน", + "👟": "รองเท้ากีฬา", + "👑": "มงกุฎ", + "🧢": "หมวกแก๊ป", + "💄": "ลิปสติก", + "💍": "แหวน", + "💎": "อัญมณี", + "📢": "เครื่องขยายเสียง", + "🎶": "โน้ตดนตรีหลายตัว", + "🎙️": "ไมค์สตูดิโอ", + "📻️": "วิทยุ", + "🎷": "แซ็กโซโฟน", + "🪗": "แอคคอร์เดียน", + "🎸": "กีต้าร์", + "🎺": "ทรัมเป็ต", + "🎻": "ไวโอลิน", + "🪕": "แบนโจ", + "🥁": "กลอง", + "☎️": "โทรศัพท์", + "🔋": "แบตเตอรี่", + "💿️": "บลูเรย์", + "🧮": "ลูกคิด", + "🎬️": "สเลท", + "💡": "หลอดไฟ", + "🔦": "ไฟฉาย", + "🏮": "โคมไฟแดง", + "📕": "หนังสือปิด", + "🏷️": "ป้าย", + "💳️": "บัตรเครดิต", + "✏️": "ดินสอ", + "🖌️": "แปรงทาสี", + "🖍️": "ดินสอสี", + "📌": "หมุดปัก", + "📎": "คลิปหนีบกระดาษ", + "🔑": "กุญแจ", + "🪃": "บูมเมอแรง", + "🏹": "ธนูและลูกศร", + "⚖️": "ตราชั่ง", + "🧲": "แม่เหล็ก", + "🧪": "หลอดทดลอง", + "🧬": "ดีเอ็นเอ", + "🔬": "กล้องจุลทรรศน์", + "🔭": "กล้องโทรทรรศน์", + "📡": "จานดาวเทียม", + "🪑": "เก้าอี้", + "🧹": "ไม้กวาด", + "🗿": "รูปปั้นโมไอ" + }, + "tr": { + "👽️": "uzaylı", + "🤖": "robot", + "🧠": "beyin", + "👁️": "göz", + "🧙": "büyücü", + "🧚": "peri", + "🧜": "balık insan", + "🐵": "maymun yüzü", + "🦧": "orangutan", + "🐶": "köpek yüzü", + "🐺": "kurt", + "🦊": "tilki", + "🦝": "rakun", + "🐱": "kedi yüzü", + "🦁": "aslan", + "🐯": "kaplan yüzü", + "🐴": "at yüzü", + "🦄": "tek boynuzlu at", + "🦓": "zebra", + "🦌": "geyik", + "🐮": "inek yüzü", + "🐷": "domuz yüzü", + "🐗": "yaban domuzu", + "🐪": "deve", + "🦙": "lama", + "🦒": "zürafa", + "🐘": "fil", + "🦣": "mamut", + "🦏": "gergedan", + "🐭": "fare yüzü", + "🐰": "tavşan yüzü", + "🐿️": "sincap", + "🦔": "kirpi", + "🦇": "yarasa", + "🐻": "ayı", + "🐨": "koala", + "🦥": "tembel hayvan", + "🦦": "su samuru", + "🦘": "kanguru", + "🐥": "önden civciv", + "🐦️": "kuş", + "🕊️": "güvercin", + "🦆": "ördek", + "🦉": "baykuş", + "🦤": "dodo kuşu", + "🪶": "kuş tüyü", + "🦩": "flamingo", + "🦚": "tavus kuşu", + "🦜": "papağan", + "🐊": "timsah", + "🐢": "kaplumbağa", + "🦎": "kertenkele", + "🐍": "yılan", + "🐲": "ejderha yüzü", + "🦕": "soropod", + "🐳": "su püskürten balina", + "🐬": "yunus", + "🦭": "fok", + "🐟️": "balık", + "🐠": "tropikal balık", + "🦈": "köpek balığı", + "🐙": "ahtapot", + "🐚": "deniz kabuğu", + "🐌": "salyangoz", + "🦋": "kelebek", + "🐛": "tırtıl", + "🐝": "bal arısı", + "🐞": "uğur böceği", + "💐": "buket", + "🌹": "gül", + "🌺": "çingülü", + "🌻": "ayçiçeği", + "🌷": "lale", + "🌲": "yaprak dökmeyen ağaç", + "🌳": "yaprak döken ağaç", + "🌴": "palmiye ağacı", + "🌵": "kaktüs", + "🌿": "ot", + "🍁": "akçaağaç yaprağı", + "🍇": "üzüm", + "🍈": "kavun", + "🍉": "karpuz", + "🍊": "mandalina", + "🍋": "limon", + "🍌": "muz", + "🍍": "ananas", + "🥭": "mango", + "🍏": "yeşil elma", + "🍐": "armut", + "🍑": "şeftali", + "🍒": "kiraz", + "🍓": "çilek", + "🫐": "yaban mersini", + "🥝": "kivi", + "🍅": "domates", + "🫒": "zeytin", + "🥥": "Hindistan cevizi", + "🥑": "avokado", + "🍆": "patlıcan", + "🥕": "havuç", + "🌽": "mısır koçanı", + "🌶️": "acı biber", + "🥬": "yeşil yapraklı sebze", + "🥦": "brokoli", + "🧅": "soğan", + "🍄": "mantar", + "🥜": "yer fıstığı", + "🥐": "kruvasan", + "🥖": "baget ekmek", + "🥨": "pretzel", + "🥯": "simit", + "🥞": "krep", + "🧇": "waffle", + "🍔": "hamburger", + "🍕": "pizza dilimi", + "🌭": "sosisli sandviç", + "🌮": "tako", + "🍿": "patlamış mısır", + "🦀": "yengeç", + "🦞": "ıstakoz", + "🍨": "dondurma", + "🍩": "donut", + "🍪": "kurabiye", + "🎂": "doğum günü pastası", + "🧁": "cupcake", + "🍫": "çikolata", + "🍬": "şekerleme", + "🍭": "lolipop", + "🫖": "demlik", + "🧃": "içecek kutusu", + "🧉": "mate çayı", + "🧭": "pusula", + "🏔️": "karla kaplı dağ", + "🌋": "yanardağ", + "🏕️": "kamp", + "🏝️": "ıssız ada", + "🏡": "bahçeli ev", + "⛲️": "fıskiye", + "🎠": "atlıkarınca", + "🎡": "dönme dolap", + "🎢": "hız treni", + "💈": "berber dükkanı", + "🚆": "tren", + "🚋": "tramvay vagonu", + "🚍️": "yaklaşan otobüs", + "🚕": "taksi", + "🚗": "araba", + "🚚": "nakliye kamyonu", + "🚜": "traktör", + "🛵": "motorlu skuter", + "🛺": "elektrikli çekçek", + "🛴": "ayakla sürülen skuter", + "🛹": "kaykay", + "🛼": "paten", + "⚓️": "çıpa", + "⛵️": "yelkenli tekne", + "🛶": "kano", + "🚤": "sürat teknesi", + "🚢": "gemi", + "✈️": "uçak", + "🚁": "helikopter", + "🚠": "dağ teleferik hattı", + "🛰️": "uydu", + "🚀": "roket", + "🛸": "uçan daire", + "⏰": "çalar saat", + "🌙": "hilal", + "🌡️": "termometre", + "☀️": "güneş", + "🪐": "halkalı gezegen", + "🌟": "parıldayan yıldız", + "🌀": "siklon", + "🌈": "gökkuşağı", + "☂️": "şemsiye", + "❄️": "kar tanesi", + "☄️": "kuyruklu yıldız", + "🔥": "ateş", + "💧": "damlacık", + "🌊": "dalga", + "🎃": "kabak fener", + "✨": "parıltılar", + "🎈": "balon", + "🎉": "parti konfetisi", + "🎏": "sazan şekilli flama", + "🎀": "kurdele", + "🎁": "paketlenmiş hediye", + "🎟️": "giriş bileti", + "🏆️": "zafer kupası", + "⚽️": "futbol topu", + "🏀": "basketbol", + "🏈": "amerikan futbolu", + "🎾": "tenis", + "🥏": "frizbi", + "🏓": "masa tenisi", + "🏸": "badminton", + "🤿": "dalgıç maskesi", + "🥌": "curling taşı", + "🎯": "tam isabet", + "🪀": "yoyo", + "🪁": "uçurtma", + "🔮": "kristal küre", + "🎲": "oyun zarı", + "🧩": "yapboz parçası", + "🎨": "boya paleti", + "🧵": "iplik", + "👕": "tişört", + "🧦": "çorap", + "👗": "elbise", + "🩳": "şort", + "🎒": "okul çantası", + "👟": "koşu ayakkabısı", + "👑": "taç", + "🧢": "siperli şapka", + "💄": "ruj", + "💍": "yüzük", + "💎": "mücevher", + "📢": "hoparlör", + "🎶": "müzik notaları", + "🎙️": "stüdyo mikrofonu", + "📻️": "radyo", + "🎷": "saksafon", + "🪗": "akordiyon", + "🎸": "gitar", + "🎺": "trompet", + "🎻": "keman", + "🪕": "banjo", + "🥁": "davul", + "☎️": "telefon", + "🔋": "pil", + "💿️": "optik disk", + "🧮": "abaküs", + "🎬️": "film tahtası", + "💡": "ampul", + "🔦": "el feneri", + "🏮": "kırmızı kağıt fener", + "📕": "kapalı kitap", + "🏷️": "etiket", + "💳️": "kredi kartı", + "✏️": "kurşun kalem", + "🖌️": "boya fırçası", + "🖍️": "pastel boya", + "📌": "raptiye", + "📎": "ataş", + "🔑": "anahtar", + "🪃": "bumerang", + "🏹": "ok ve yay", + "⚖️": "terazi", + "🧲": "mıknatıs", + "🧪": "deney tüpü", + "🧬": "dna", + "🔬": "mikroskop", + "🔭": "teleskop", + "📡": "uydu anteni", + "🪑": "sandalye", + "🧹": "süpürge", + "🗿": "moyai heykeli" + }, + "vi": { + "👽️": "người ngoài hành tinh", + "🤖": "mặt rô-bốt", + "🧠": "não", + "👁️": "mắt", + "🧙": "pháp sư", + "🧚": "tiên", + "🧜": "người cá", + "🐵": "mặt khỉ", + "🦧": "đười ươi", + "🐶": "mặt cún", + "🐺": "mặt chó sói", + "🦊": "mặt cáo", + "🦝": "gấu trúc", + "🐱": "mặt mèo", + "🦁": "mặt sư tử", + "🐯": "mặt hổ", + "🐴": "mặt ngựa", + "🦄": "mặt kỳ lân", + "🦓": "ngựa vằn", + "🦌": "hươu", + "🐮": "mặt bò", + "🐷": "mặt lợn", + "🐗": "lợn rừng", + "🐪": "lạc đà", + "🦙": "lạc đà không bướu", + "🦒": "hươu cao cổ", + "🐘": "voi", + "🦣": "voi ma mút", + "🦏": "tê giác", + "🐭": "mặt chuột", + "🐰": "mặt thỏ", + "🐿️": "sóc chuột", + "🦔": "nhím", + "🦇": "dơi", + "🐻": "mặt gấu", + "🐨": "gấu túi", + "🦥": "con lười", + "🦦": "rái cá", + "🦘": "chuột túi", + "🐥": "mặt trước gà con", + "🐦️": "chim", + "🕊️": "bồ câu", + "🦆": "vịt", + "🦉": "cú", + "🦤": "chim cưu", + "🪶": "lông chim", + "🦩": "hồng hạc", + "🦚": "con công", + "🦜": "con vẹt", + "🐊": "cá sấu", + "🐢": "rùa", + "🦎": "thằn lằn", + "🐍": "rắn", + "🐲": "mặt rồng", + "🦕": "khủng long chân thằn lằn", + "🐳": "cá voi đang phun nước", + "🐬": "cá heo", + "🦭": "chó biển", + "🐟️": "cá", + "🐠": "cá nhiệt đới", + "🦈": "cá mập", + "🐙": "bạch tuộc", + "🐚": "vỏ xoắn ốc", + "🐌": "ốc sên", + "🦋": "bướm", + "🐛": "con bọ", + "🐝": "ong mật", + "🐞": "bọ rùa", + "💐": "bó hoa", + "🌹": "hoa hồng", + "🌺": "hoa dâm bụt", + "🌻": "hoa hướng dương", + "🌷": "hoa tulip", + "🌲": "cây thường xanh", + "🌳": "cây rụng lá", + "🌴": "cây cọ", + "🌵": "cây xương rồng", + "🌿": "thảo mộc", + "🍁": "lá phong", + "🍇": "chùm nho", + "🍈": "dưa", + "🍉": "dưa hấu", + "🍊": "quýt", + "🍋": "chanh", + "🍌": "chuối", + "🍍": "dứa", + "🥭": "xoài", + "🍏": "táo xanh", + "🍐": "lê", + "🍑": "đào", + "🍒": "anh đào", + "🍓": "dâu tây", + "🫐": "quả việt quất", + "🥝": "quả kiwi", + "🍅": "cà chua", + "🫒": "ôliu", + "🥥": "dừa", + "🥑": "quả bơ", + "🍆": "cà tím", + "🥕": "cà rốt", + "🌽": "bắp ngô", + "🌶️": "quả ớt", + "🥬": "xanh lá", + "🥦": "xúp lơ xanh", + "🧅": "hành", + "🍄": "nấm", + "🥜": "đậu phộng", + "🥐": "bánh sừng bò", + "🥖": "bánh mì que", + "🥨": "bánh quy xoắn", + "🥯": "bánh mỳ vòng", + "🥞": "bánh kếp", + "🧇": "bánh quế", + "🍔": "bánh hamburger", + "🍕": "bánh pizza", + "🌭": "bánh mì xúc xích", + "🌮": "bánh taco", + "🍿": "bỏng ngô", + "🦀": "cua", + "🦞": "tôm hùm", + "🍨": "kem", + "🍩": "bánh rán vòng", + "🍪": "bánh quy", + "🎂": "bánh sinh nhật", + "🧁": "bánh nướng nhỏ", + "🍫": "thanh sô cô la", + "🍬": "kẹo", + "🍭": "kẹo mút", + "🫖": "ấm trà", + "🧃": "hộp đồ uống", + "🧉": "trà nhựa ruồi", + "🧭": "la bàn", + "🏔️": "đỉnh núi phủ tuyết", + "🌋": "núi lửa", + "🏕️": "cắm trại", + "🏝️": "đảo hoang", + "🏡": "nhà có vườn", + "⛲️": "đài phun nước", + "🎠": "ngựa đu quay", + "🎡": "vòng đu quay", + "🎢": "tàu lượn siêu tốc", + "💈": "biển hiệu của thợ cắt tóc", + "🚆": "tàu hỏa", + "🚋": "tàu điện", + "🚍️": "xe buýt đang tới", + "🚕": "taxi", + "🚗": "ô tô", + "🚚": "xe tải giao hàng", + "🚜": "máy kéo", + "🛵": "xe tay ga", + "🛺": "xe lam", + "🛴": "xe hẩy", + "🛹": "ván trượt", + "🛼": "giày trượt patin", + "⚓️": "mỏ neo", + "⛵️": "thuyền buồm", + "🛶": "xuồng", + "🚤": "xuồng cao tốc", + "🚢": "tàu thủy", + "✈️": "máy bay", + "🚁": "máy bay trực thăng", + "🚠": "cáp treo trên núi", + "🛰️": "vệ tinh", + "🚀": "tên lửa", + "🛸": "đĩa bay", + "⏰": "đồng hồ báo thức", + "🌙": "trăng lưỡi liềm", + "🌡️": "nhiệt kế", + "☀️": "mặt trời", + "🪐": "hành tinh có vành đai bao quanh", + "🌟": "ngôi sao lấp lánh", + "🌀": "hình lốc xoáy", + "🌈": "cầu vồng", + "☂️": "cái ô", + "❄️": "bông tuyết", + "☄️": "sao chổi", + "🔥": "lửa", + "💧": "giọt nước", + "🌊": "sóng nước", + "🎃": "đèn lồng bí ngô", + "✨": "ánh lấp lánh", + "🎈": "bóng bay", + "🎉": "pháo giấy buổi tiệc", + "🎏": "cờ cá chép", + "🎀": "ruy băng", + "🎁": "gói quà", + "🎟️": "vé vào cửa", + "🏆️": "cúp", + "⚽️": "bóng đá", + "🏀": "bóng rổ", + "🏈": "bóng bầu dục Mỹ", + "🎾": "quần vợt", + "🥏": "đĩa bay trò chơi", + "🏓": "bóng bàn", + "🏸": "cầu lông", + "🤿": "mặt nạ lặn", + "🥌": "bi đá trên băng", + "🎯": "trúng đích", + "🪀": "yo-yo", + "🪁": "diều", + "🔮": "quả cầu pha lê", + "🎲": "trò xúc xắc", + "🧩": "ghép hình", + "🎨": "bảng màu", + "🧵": "sợi chỉ", + "👕": "áo phông", + "🧦": "tất", + "👗": "váy", + "🩳": "quần soóc", + "🎒": "ba lô đi học", + "👟": "giày chạy", + "👑": "vương miện", + "🧢": "mũ lưỡi trai", + "💄": "son môi", + "💍": "nhẫn", + "💎": "đá quý", + "📢": "loa phát thanh", + "🎶": "các nốt nhạc", + "🎙️": "micrô phòng thu âm", + "📻️": "radio", + "🎷": "kèn saxophone", + "🪗": "phong cầm", + "🎸": "đàn ghi-ta", + "🎺": "kèn trumpet", + "🎻": "đàn violin", + "🪕": "đàn banjo", + "🥁": "trống", + "☎️": "điện thoại bàn", + "🔋": "pin", + "💿️": "đĩa quang", + "🧮": "bàn tính", + "🎬️": "bảng clapper", + "💡": "bóng đèn", + "🔦": "đèn pin", + "🏮": "đèn lồng giấy màu đỏ", + "📕": "sách đóng", + "🏷️": "nhãn", + "💳️": "thẻ tín dụng", + "✏️": "bút chì", + "🖌️": "cọ vẽ tranh", + "🖍️": "bút sáp màu", + "📌": "đinh ghim", + "📎": "kẹp giấy", + "🔑": "chìa khóa", + "🪃": "bumơrang", + "🏹": "cung tên", + "⚖️": "cân thăng bằng", + "🧲": "nam châm", + "🧪": "ống nghiệm", + "🧬": "adn", + "🔬": "kính hiển vi", + "🔭": "kính viễn vọng", + "📡": "ăng-ten vệ tinh", + "🪑": "ghế", + "🧹": "cây chổi", + "🗿": "tượng moai" + }, + "zh-CN": { + "👽️": "外星人", + "🤖": "机器人", + "🧠": "脑", + "👁️": "眼睛", + "🧙": "法师", + "🧚": "精灵", + "🧜": "人鱼", + "🐵": "猴头", + "🦧": "红毛猩猩", + "🐶": "狗脸", + "🐺": "狼", + "🦊": "狐狸", + "🦝": "浣熊", + "🐱": "猫脸", + "🦁": "狮子", + "🐯": "老虎头", + "🐴": "马头", + "🦄": "独角兽", + "🦓": "斑马", + "🦌": "鹿", + "🐮": "奶牛头", + "🐷": "猪头", + "🐗": "野猪", + "🐪": "骆驼", + "🦙": "美洲鸵", + "🦒": "长颈鹿", + "🐘": "大象", + "🦣": "猛犸", + "🦏": "犀牛", + "🐭": "老鼠头", + "🐰": "兔子头", + "🐿️": "松鼠", + "🦔": "刺猬", + "🦇": "蝙蝠", + "🐻": "熊", + "🐨": "考拉", + "🦥": "树懒", + "🦦": "水獭", + "🦘": "袋鼠", + "🐥": "正面朝向的小鸡", + "🐦️": "鸟", + "🕊️": "鸽", + "🦆": "鸭子", + "🦉": "猫头鹰", + "🦤": "渡渡鸟", + "🪶": "羽毛", + "🦩": "火烈鸟", + "🦚": "孔雀", + "🦜": "鹦鹉", + "🐊": "鳄鱼", + "🐢": "龟", + "🦎": "蜥蜴", + "🐍": "蛇", + "🐲": "龙头", + "🦕": "蜥蜴类", + "🐳": "喷水的鲸", + "🐬": "海豚", + "🦭": "海豹", + "🐟️": "鱼", + "🐠": "热带鱼", + "🦈": "鲨鱼", + "🐙": "章鱼", + "🐚": "海螺", + "🐌": "蜗牛", + "🦋": "蝴蝶", + "🐛": "毛毛虫", + "🐝": "蜜蜂", + "🐞": "瓢虫", + "💐": "花束", + "🌹": "玫瑰", + "🌺": "芙蓉", + "🌻": "向日葵", + "🌷": "郁金香", + "🌲": "松树", + "🌳": "落叶树", + "🌴": "棕榈树", + "🌵": "仙人掌", + "🌿": "药草", + "🍁": "枫叶", + "🍇": "葡萄", + "🍈": "甜瓜", + "🍉": "西瓜", + "🍊": "橘子", + "🍋": "柠檬", + "🍌": "香蕉", + "🍍": "菠萝", + "🥭": "芒果", + "🍏": "青苹果", + "🍐": "梨", + "🍑": "桃", + "🍒": "樱桃", + "🍓": "草莓", + "🫐": "蓝莓", + "🥝": "猕猴桃", + "🍅": "西红柿", + "🫒": "橄榄", + "🥥": "椰子", + "🥑": "鳄梨", + "🍆": "茄子", + "🥕": "胡萝卜", + "🌽": "玉米", + "🌶️": "红辣椒", + "🥬": "绿叶蔬菜", + "🥦": "西兰花", + "🧅": "洋葱", + "🍄": "蘑菇", + "🥜": "花生", + "🥐": "羊角面包", + "🥖": "法式长棍面包", + "🥨": "椒盐卷饼", + "🥯": "面包圈", + "🥞": "烙饼", + "🧇": "华夫饼", + "🍔": "汉堡", + "🍕": "披萨", + "🌭": "热狗", + "🌮": "墨西哥卷饼", + "🍿": "爆米花", + "🦀": "蟹", + "🦞": "龙虾", + "🍨": "冰淇淋", + "🍩": "甜甜圈", + "🍪": "饼干", + "🎂": "生日蛋糕", + "🧁": "纸杯蛋糕", + "🍫": "巧克力", + "🍬": "糖", + "🍭": "棒棒糖", + "🫖": "茶壶", + "🧃": "饮料盒", + "🧉": "马黛茶", + "🧭": "指南针", + "🏔️": "雪山", + "🌋": "火山", + "🏕️": "露营", + "🏝️": "无人荒岛", + "🏡": "别墅", + "⛲️": "喷泉", + "🎠": "旋转木马", + "🎡": "摩天轮", + "🎢": "过山车", + "💈": "理发店", + "🚆": "火车", + "🚋": "有轨电车", + "🚍️": "迎面驶来的公交车", + "🚕": "出租车", + "🚗": "汽车", + "🚚": "货车", + "🚜": "拖拉机", + "🛵": "小型摩托车", + "🛺": "三轮摩托车", + "🛴": "滑板车", + "🛹": "滑板", + "🛼": "四轮滑冰鞋", + "⚓️": "锚", + "⛵️": "帆船", + "🛶": "独木舟", + "🚤": "快艇", + "🚢": "船", + "✈️": "飞机", + "🚁": "直升机", + "🚠": "缆车", + "🛰️": "卫星", + "🚀": "火箭", + "🛸": "飞碟", + "⏰": "闹钟", + "🌙": "弯月", + "🌡️": "温度计", + "☀️": "太阳", + "🪐": "有环行星", + "🌟": "闪亮的星星", + "🌀": "台风", + "🌈": "彩虹", + "☂️": "伞", + "❄️": "雪花", + "☄️": "彗星", + "🔥": "火焰", + "💧": "水滴", + "🌊": "浪花", + "🎃": "南瓜灯", + "✨": "闪亮", + "🎈": "气球", + "🎉": "拉炮彩带", + "🎏": "鲤鱼旗", + "🎀": "蝴蝶结", + "🎁": "礼物", + "🎟️": "入场券", + "🏆️": "奖杯", + "⚽️": "足球", + "🏀": "篮球", + "🏈": "美式橄榄球", + "🎾": "网球", + "🥏": "飞盘", + "🏓": "乒乓球", + "🏸": "羽毛球", + "🤿": "潜水面罩", + "🥌": "冰壶", + "🎯": "正中靶心的飞镖", + "🪀": "悠悠球", + "🪁": "风筝", + "🔮": "水晶球", + "🎲": "骰子", + "🧩": "拼图", + "🎨": "调色盘", + "🧵": "线", + "👕": "T恤", + "🧦": "袜子", + "👗": "连衣裙", + "🩳": "短裤", + "🎒": "书包", + "👟": "跑鞋", + "👑": "皇冠", + "🧢": "鸭舌帽", + "💄": "唇膏", + "💍": "戒指", + "💎": "宝石", + "📢": "喇叭", + "🎶": "多个音符", + "🎙️": "录音室麦克风", + "📻️": "收音机", + "🎷": "萨克斯管", + "🪗": "手风琴", + "🎸": "吉他", + "🎺": "小号", + "🎻": "小提琴", + "🪕": "班卓琴", + "🥁": "鼓", + "☎️": "电话", + "🔋": "电池", + "💿️": "光盘", + "🧮": "算盘", + "🎬️": "场记板", + "💡": "灯泡", + "🔦": "手电筒", + "🏮": "红灯笼", + "📕": "合上的书本", + "🏷️": "标签", + "💳️": "信用卡", + "✏️": "铅笔", + "🖌️": "画笔", + "🖍️": "蜡笔", + "📌": "图钉", + "📎": "回形针", + "🔑": "钥匙", + "🪃": "回旋镖", + "🏹": "弓和箭", + "⚖️": "天平", + "🧲": "磁铁", + "🧪": "试管", + "🧬": "DNA", + "🔬": "显微镜", + "🔭": "望远镜", + "📡": "卫星天线", + "🪑": "椅子", + "🧹": "扫帚", + "🗿": "摩埃" + }, + "zh-TW": { + "👽️": "外星人", + "🤖": "機器人", + "🧠": "腦", + "👁️": "眼睛", + "🧙": "魔術師", + "🧚": "仙女", + "🧜": "人魚", + "🐵": "猴子頭", + "🦧": "猩猩", + "🐶": "狗頭", + "🐺": "狼", + "🦊": "狐狸", + "🦝": "浣熊", + "🐱": "貓頭", + "🦁": "獅子", + "🐯": "老虎頭", + "🐴": "馬頭", + "🦄": "獨角獸", + "🦓": "斑馬", + "🦌": "鹿", + "🐮": "牛頭", + "🐷": "豬頭", + "🐗": "野豬", + "🐪": "單峰駱駝", + "🦙": "羊駝", + "🦒": "長頸鹿", + "🐘": "大象", + "🦣": "毛象", + "🦏": "犀牛", + "🐭": "老鼠頭", + "🐰": "兔子頭", + "🐿️": "松鼠", + "🦔": "刺蝟", + "🦇": "蝙蝠", + "🐻": "熊", + "🐨": "無尾熊", + "🦥": "樹懶", + "🦦": "水獺", + "🦘": "袋鼠", + "🐥": "小雞", + "🐦️": "鳥", + "🕊️": "飛鳥", + "🦆": "鴨子", + "🦉": "貓頭鷹", + "🦤": "渡渡鳥", + "🪶": "羽毛", + "🦩": "紅鶴", + "🦚": "孔雀", + "🦜": "鸚鵡", + "🐊": "鱷魚", + "🐢": "烏龜", + "🦎": "蜥蜴", + "🐍": "蛇", + "🐲": "龍頭", + "🦕": "蜥腳類恐龍", + "🐳": "鯨魚", + "🐬": "海豚", + "🦭": "海豹", + "🐟️": "魚", + "🐠": "熱帶魚", + "🦈": "鯊魚", + "🐙": "章魚", + "🐚": "海螺", + "🐌": "蝸牛", + "🦋": "蝴蝶", + "🐛": "毛毛蟲", + "🐝": "蜜蜂", + "🐞": "瓢蟲", + "💐": "花束", + "🌹": "玫瑰", + "🌺": "芙蓉", + "🌻": "向日葵", + "🌷": "鬱金香", + "🌲": "常青樹", + "🌳": "落葉樹", + "🌴": "棕櫚樹", + "🌵": "仙人掌", + "🌿": "草藥", + "🍁": "楓葉", + "🍇": "葡萄", + "🍈": "瓜", + "🍉": "西瓜", + "🍊": "橘子", + "🍋": "檸檬", + "🍌": "香蕉", + "🍍": "鳳梨", + "🥭": "芒果", + "🍏": "青蘋果", + "🍐": "梨子", + "🍑": "桃子", + "🍒": "櫻桃", + "🍓": "草莓", + "🫐": "藍莓", + "🥝": "奇異果", + "🍅": "番茄", + "🫒": "橄欖", + "🥥": "椰子", + "🥑": "酪梨", + "🍆": "茄子", + "🥕": "胡蘿蔔", + "🌽": "玉米", + "🌶️": "辣椒", + "🥬": "綠葉蔬菜", + "🥦": "花椰菜", + "🧅": "洋蔥", + "🍄": "蘑菇", + "🥜": "花生", + "🥐": "可頌", + "🥖": "法國麵包", + "🥨": "蝴蝶餅", + "🥯": "貝果", + "🥞": "鬆餅", + "🧇": "格子鬆餅", + "🍔": "漢堡", + "🍕": "披薩", + "🌭": "熱狗", + "🌮": "夾餅", + "🍿": "爆米花", + "🦀": "螃蟹", + "🦞": "龍蝦", + "🍨": "冰淇淋", + "🍩": "甜甜圈", + "🍪": "餅乾", + "🎂": "生日蛋糕", + "🧁": "杯子蛋糕", + "🍫": "巧克力", + "🍬": "糖", + "🍭": "棒棒糖", + "🫖": "茶壺", + "🧃": "鋁箔包", + "🧉": "瑪黛茶", + "🧭": "指南針", + "🏔️": "雪山", + "🌋": "火山", + "🏕️": "露營", + "🏝️": "熱帶小島", + "🏡": "別墅", + "⛲️": "噴泉", + "🎠": "旋轉木馬", + "🎡": "摩天輪", + "🎢": "雲霄飛車", + "💈": "理髮店", + "🚆": "火車", + "🚋": "電纜車", + "🚍️": "公共汽車", + "🚕": "計程車", + "🚗": "汽車", + "🚚": "貨車", + "🚜": "拖弋機", + "🛵": "摩托車", + "🛺": "嘟嘟車", + "🛴": "滑板車", + "🛹": "滑板", + "🛼": "輪式溜冰鞋", + "⚓️": "錨", + "⛵️": "帆船", + "🛶": "獨木舟", + "🚤": "快艇", + "🚢": "船", + "✈️": "飛機", + "🚁": "直升機", + "🚠": "纜車", + "🛰️": "衛星", + "🚀": "火箭", + "🛸": "飛碟", + "⏰": "鬧鐘", + "🌙": "彎月", + "🌡️": "溫度計", + "☀️": "太陽", + "🪐": "帶行星環的行星", + "🌟": "閃爍的星星", + "🌀": "颱風", + "🌈": "彩虹", + "☂️": "雨傘", + "❄️": "雪花", + "☄️": "慧星", + "🔥": "火", + "💧": "水滴", + "🌊": "波浪", + "🎃": "南瓜燈", + "✨": "閃爍", + "🎈": "氣球", + "🎉": "拉炮", + "🎏": "鯉魚旗", + "🎀": "蝴蝶結", + "🎁": "禮物", + "🎟️": "入場券", + "🏆️": "獎盃", + "⚽️": "足球", + "🏀": "籃球", + "🏈": "美式足球", + "🎾": "網球", + "🥏": "飛盤", + "🏓": "桌球", + "🏸": "羽毛球", + "🤿": "潛水面罩", + "🥌": "冰石壺", + "🎯": "命中", + "🪀": "溜溜球", + "🪁": "風箏", + "🔮": "水晶球", + "🎲": "骰子", + "🧩": "拼圖", + "🎨": "調色板", + "🧵": "線", + "👕": "T卹", + "🧦": "襪子", + "👗": "洋裝", + "🩳": "短泳褲", + "🎒": "書包", + "👟": "運動鞋", + "👑": "皇冠", + "🧢": "鴨舌帽", + "💄": "口紅", + "💍": "戒指", + "💎": "鑽石", + "📢": "大聲公", + "🎶": "樂符", + "🎙️": "錄音室麥克風", + "📻️": "收音機", + "🎷": "薩克斯風", + "🪗": "手風琴", + "🎸": "吉他", + "🎺": "小號", + "🎻": "小提琴", + "🪕": "斑鳩琴", + "🥁": "鼓", + "☎️": "電話", + "🔋": "電池", + "💿️": "光碟", + "🧮": "算盤", + "🎬️": "場記板", + "💡": "燈泡", + "🔦": "手電筒", + "🏮": "燈籠", + "📕": "合起來的書本", + "🏷️": "吊牌", + "💳️": "信用卡", + "✏️": "鉛筆", + "🖌️": "畫筆", + "🖍️": "蠟筆", + "📌": "圖釘", + "📎": "迴紋針", + "🔑": "鑰匙", + "🪃": "迴力鏢", + "🏹": "弓箭", + "⚖️": "天平", + "🧲": "磁鐵", + "🧪": "試管", + "🧬": "DNA", + "🔬": "顯微鏡", + "🔭": "望遠鏡", + "📡": "衛星天線", + "🪑": "椅子", + "🧹": "掃帚", + "🗿": "復活節島" + } +} diff --git a/browser/components/torpreferences/content/bridgemoji/1f300.svg b/browser/components/torpreferences/content/bridgemoji/1f300.svg new file mode 100644 index 0000000000000..1de6f256cb52c --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f300.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#55ACEE" d="M35.782 24.518c-.13-.438-.422-.799-.821-1.016-.802-.436-1.879-.116-2.316.683-1.797 3.296-4.771 5.695-8.372 6.757-3.563 1.051-7.437.634-10.698-1.144-2.558-1.394-4.419-3.699-5.242-6.493-.74-2.514-.495-5.016.552-7.033-.363 1.605-.313 3.285.164 4.908.737 2.507 2.407 4.575 4.701 5.823 2.733 1.492 5.989 1.841 8.979.961 3.025-.892 5.521-2.906 7.026-5.672 1.832-3.358 2.246-7.228 1.165-10.898-1.08-3.669-3.524-6.69 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f308.svg b/browser/components/torpreferences/content/bridgemoji/1f308.svg new file mode 100644 index 0000000000000..ffe6a12398cf0 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f308.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#8767AC" d="M36 1C16.118 1 1 16.118 1 36h17.042c0-9.917 8.042-17.958 17.958-17.958V1z"/><path fill="#EB2027" d="M0 35.999h3.042c0-18.189 14.734-32.935 32.917-32.957V0C16.095.023 0 16.131 0 35.999z"/><path fill="#F19020" d="M3.083 36h3C6.083 19.468 19.473 6.065 36 6.043v-3C17.817 3.065 3.083 17.811 3.083 36z"/><path fill="#FFCB4C" d="M6.083 36h3C9.083 21.125 21.13 9.065 36 9.043v-3C19.473 6.065 6.083 19.468 6.083 36z" [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f30a.svg b/browser/components/torpreferences/content/bridgemoji/1f30a.svg new file mode 100644 index 0000000000000..0e68ec3614f89 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f30a.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#269" d="M33.398 23.678c-7.562 4.875-20.062-.438-18.375-8.062 1.479-6.684 9.419-4.763 11.225-3.861 1.806.902.713-3.889-3.475-5.327C17.1 4.48 10.156 4.893 7.961 14.678c-1.5 6.687 1.438 16.062 12.719 16.187 11.281.125 12.718-7.187 12.718-7.187z"/><path fill="#55ACEE" d="M35.988 25.193c0-2.146-2.754-2.334-4-1.119-2.994 2.919-7.402 4.012-13.298 2.861-10.25-2-10.341-14.014-3.333-17.441 3.791-1.854 8.289.341 9.999 1.655 1. [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f30b.svg b/browser/components/torpreferences/content/bridgemoji/1f30b.svg new file mode 100644 index 0000000000000..88d989d73c53d --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f30b.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#292F33" d="M12 36V16s-1.17 1.053-2.354 1.929c-.313.231-1.977.79-2.312 1.04-1.762 1.315-2.552 3.841-2.792 4.167C4.083 23.76 0 36 0 36h12z"/><path fill="#4B545D" d="M32 36l-5.5-17.75-8.5-5.656-6.458 2.208C11.135 15.583 10 18.25 10 18.25L8.75 22 0 36h32z"/><path fill="#292F33" d="M18.135 25.726c-.145-.513-.026-.97-.177-1.476-.148-.499-.566-1.047-.693-1.478-.265-.899-.454-1.583-.445-1.772.024-.469.894-.401 1.102.469.293 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f319.svg b/browser/components/torpreferences/content/bridgemoji/1f319.svg new file mode 100644 index 0000000000000..d98dc2f9f42ff --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f319.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFD983" d="M30.312.776C32 19 20 32 .776 30.312c8.199 7.717 21.091 7.588 29.107-.429C37.9 21.867 38.03 8.975 30.312.776z"/><path d="M30.705 15.915c-.453.454-.453 1.189 0 1.644.454.453 1.189.453 1.643 0 .454-.455.455-1.19 0-1.644-.453-.454-1.189-.454-1.643 0zm-16.022 14.38c-.682.681-.682 1.783 0 2.465.68.682 1.784.682 2.464 0 .681-.682.681-1.784 0-2.465-.68-.682-1.784-.682-2.464 0zm13.968-2.147c-1.135 1.135-2.974 1.13 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f31f.svg b/browser/components/torpreferences/content/bridgemoji/1f31f.svg new file mode 100644 index 0000000000000..a4695dd6df575 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f31f.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFAC33" d="M28.84 17.638c-.987 1.044-1.633 3.067-1.438 4.493l.892 6.441c.197 1.427-.701 2.087-1.996 1.469l-5.851-2.796c-1.295-.62-3.408-.611-4.7.018l-5.826 2.842c-1.291.629-2.193-.026-2.007-1.452l.843-6.449c.186-1.427-.475-3.444-1.47-4.481l-4.494-4.688c-.996-1.037-.655-2.102.755-2.365l6.37-1.188c1.41-.263 3.116-1.518 3.793-2.789L16.762.956c.675-1.271 1.789-1.274 2.473-.009L22.33 6.66c.686 1.265 2.4 2.507 3.814 2.758 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f321.svg b/browser/components/torpreferences/content/bridgemoji/1f321.svg new file mode 100644 index 0000000000000..95a75984e1ff2 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f321.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#CCD6DD" d="M33.536 2.464c-1.953-1.953-5.118-1.953-7.071 0l-1.197 1.199 2.842 2.843c.391.391.391 1.024 0 1.414-.195.195-.451.293-.707.293s-.512-.098-.707-.293l-2.841-2.842-2.11 2.112 2.841 2.84c.391.39.391 1.023 0 1.414-.195.195-.451.293-.707.293s-.512-.098-.707-.293l-2.84-2.839-2.12 2.122 2.837 2.838c.391.391.391 1.024 0 1.414-.195.195-.451.293-.707.293s-.512-.098-.707-.293l-2.837-2.837-2.12 2.123 2.836 2.836c.391.3 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f32d.svg b/browser/components/torpreferences/content/bridgemoji/1f32d.svg new file mode 100644 index 0000000000000..a450dbba085ec --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f32d.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#D99E82" d="M31.42 31.471c-3.515 3.515-9.213 3.515-12.728 0L4.55 17.328c-3.515-3.515-3.515-9.213 0-12.728 3.515-3.515 9.213-3.515 12.728 0L31.42 18.743c3.515 3.514 3.515 9.213 0 12.728z"/><path fill="#F7BBA6" d="M29.335 20.9c3.515 3.515 4.609 8.119 2.475 10.253-2.135 2.134-6.739 1.039-10.253-2.475L7.414 14.536c-3.515-3.515-4.609-8.12-2.475-10.253 2.134-2.134 6.738-1.04 10.253 2.475L29.335 20.9z"/><path fill="#DD2E44" [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f32e.svg b/browser/components/torpreferences/content/bridgemoji/1f32e.svg new file mode 100644 index 0000000000000..5b08f1f7d1997 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f32e.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFE8B6" d="M12 7C5.374 7 0 14.164 0 23h6v6h17.119c.564-1.854.881-3.877.881-6 0-8.836-5.373-16-12-16z"/><path fill="#FFE8B6" d="M29 21h4.896C33.156 13.11 28.118 7 22 7c-6.627 0-12 7.164-12 16 0 2.123.317 4.146.88 6H29v-8z"/><path fill="#FFAC33" d="M36 23c0-8.836-5.373-16-12-16-6.626 0-12 7.164-12 16 0 2.123.317 4.146.88 6H30c3.314 0 6-2.685 6-6z"/><path fill="#FFAC33" d="M6 23h10v6H6z"/><path fill="#FFE8B6" d="M0 23c [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f332.svg b/browser/components/torpreferences/content/bridgemoji/1f332.svg new file mode 100644 index 0000000000000..540f1860cc166 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f332.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#662113" d="M22 33c0 2.209-1.791 3-4 3s-4-.791-4-3l1-9c0-2.209.791-2 3-2s3-.209 3 2l1 9z"/><path fill="#5C913B" d="M31.406 27.297C24.443 21.332 21.623 12.791 18 12.791c-3.623 0-6.443 8.541-13.405 14.506-2.926 2.507-1.532 3.957 2.479 3.667 3.576-.258 6.919-1.069 10.926-1.069s7.352.812 10.926 1.069c4.012.29 5.405-1.16 2.48-3.667z"/><path fill="#3E721D" d="M29.145 24.934C23.794 20.027 20.787 13 18 13c-2.785 0-5.793 7.02 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f333.svg b/browser/components/torpreferences/content/bridgemoji/1f333.svg new file mode 100644 index 0000000000000..3937fc499f8b5 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f333.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#662113" d="M22 33c0 2.209-1.791 3-4 3s-4-.791-4-3l1-9c0-2.209.791-2 3-2s3-.209 3 2l1 9z"/><path fill="#5C913B" d="M34 17c0 8.837-7.163 12-16 12-8.836 0-16-3.163-16-12C2 8.164 11 0 18 0s16 8.164 16 17z"/><g fill="#3E721D"><ellipse cx="6" cy="21" rx="2" ry="1"/><ellipse cx="30" cy="21" rx="2" ry="1"/><ellipse cx="10" cy="25" rx="2" ry="1"/><ellipse cx="14" cy="22" rx="2" ry="1"/><ellipse cx="10" cy="16" rx="2" ry="1"/ [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f334.svg b/browser/components/torpreferences/content/bridgemoji/1f334.svg new file mode 100644 index 0000000000000..55d246a2fe7a0 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f334.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#C1694F" d="M21.978 20.424c-.054-.804-.137-1.582-.247-2.325-.133-.89-.299-1.728-.485-2.513-.171-.723-.356-1.397-.548-2.017-.288-.931-.584-1.738-.852-2.4-.527-1.299-.943-2.043-.943-2.043l-3.613.466s.417.87.868 2.575c.183.692.371 1.524.54 2.495.086.49.166 1.012.238 1.573.1.781.183 1.632.242 2.549.034.518.058 1.058.074 1.619.006.204.015.401.018.611.01.656-.036 1.323-.118 1.989-.074.6-.182 1.197-.311 1.789-.185.848-.413 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f335.svg b/browser/components/torpreferences/content/bridgemoji/1f335.svg new file mode 100644 index 0000000000000..097dc13c440eb --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f335.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#77B255" d="M30 4c-2.209 0-4 1.791-4 4v9.125c0 1.086-.887 1.96-2 2.448V6c0-3.313-2.687-6-6-6s-6 2.687-6 6v17.629c-1.122-.475-2-1.371-2-2.504V16c0-2.209-1.791-4-4-4s-4 1.791-4 4v7c0 2.209 1.75 3.875 3.375 4.812 1.244.718 4.731 1.6 6.625 1.651V33c0 3.313 12 3.313 12 0v-7.549c1.981-.119 5.291-.953 6.479-1.639C32.104 22.875 34 21.209 34 19V8c0-2.209-1.791-4-4-4z"/><g fill="#3E721D"><circle cx="12" cy="6" r="1"/><circle c [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f336.svg b/browser/components/torpreferences/content/bridgemoji/1f336.svg new file mode 100644 index 0000000000000..eaeef864dc485 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f336.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DA2F47" d="M4.042 27.916c4.89.551 9.458-1.625 13.471-5.946 4.812-5.182 5-13 5-14s11.31-3.056 11 5c-.43 11.196-7.43 20.946-19.917 21.916-5.982.465-9.679-.928-11.387-2.345-2.69-2.231-.751-4.916 1.833-4.625z"/><path fill="#77B255" d="M30.545 6.246c.204-1.644.079-3.754-.747-4.853-1.111-1.479-4.431-.765-3.569.113.96.979 2.455 2.254 2.401 4.151-.044-.01-.085-.022-.13-.032-3.856-.869-6.721 1.405-7.167 2.958-.782 2.722 4.06 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f337.svg b/browser/components/torpreferences/content/bridgemoji/1f337.svg new file mode 100644 index 0000000000000..86a1a36f99dba --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f337.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#77B255" d="M34.751 22c-3.382 0-11.9 3.549-15.751 7.158V17c0-.553-.447-1-1-1-.552 0-1 .447-1 1v12.341C13.247 25.669 4.491 22 1.052 22 .123 22 11.913 35.992 17 34.599V35c0 .553.448 1 1 1 .553 0 1-.447 1-1v-.356C24.188 35.638 35.668 22 34.751 22z"/><path fill="#EA596E" d="M25 13.417C25 19.768 23.293 23 18 23s-7-3.232-7-9.583S16 0 18 0s7 7.066 7 13.417z"/><path fill="#F4ABBA" d="M22.795 2c-.48 0-4.106 14.271-4.803 19.27 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f339.svg b/browser/components/torpreferences/content/bridgemoji/1f339.svg new file mode 100644 index 0000000000000..500d9257cece8 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f339.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#3E721D" d="M19.32 25.358c-.113 0-.217.003-.32.005v-.415c4.805-.479 8.548-4.264 8.548-7.301 0-3.249 0 1.47-9.562 1.47-9.558 0-9.558-4.719-9.558-1.47 0 3.043 3.757 6.838 8.572 7.305v.411c-.104-.002-.207-.005-.321-.005-2.553 0-6.603-2.05-6.603-1.32 0 .646 4.187 4.017 6.924 4.796V35c0 .553.447 1 1 1s1-.447 1-1v-6.166c2.738-.779 6.924-4.15 6.924-4.796 0-.729-4.05 1.32-6.604 1.32z"/><path fill="#A0041E" d="M26.527 7.353c- [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f33a.svg b/browser/components/torpreferences/content/bridgemoji/1f33a.svg new file mode 100644 index 0000000000000..19c2f896020e1 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f33a.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#77B255" d="M19.602 32.329c6.509 6.506 17.254-7.669 15.72-7.669-7.669 0-22.227 1.161-15.72 7.669z"/><path fill="#77B255" d="M15.644 33.372C9.612 39.404-.07 26.263 1.352 26.263c3.81 0 9.374-.348 12.79.867 2.958 1.052 4.304 3.442 1.502 6.242z"/><path fill="#F4ABBA" d="M34.613 15.754c-.052-.901-.175-2.585-1.398-4.227-1.16-1.549-3.805-3.371-5.534-2.585.516-1.676-.264-4.125-1.191-5.49-1.179-1.736-4.262-3.843-8.146-3.026-1 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f33b.svg b/browser/components/torpreferences/content/bridgemoji/1f33b.svg new file mode 100644 index 0000000000000..413e6fcbf87b6 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f33b.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#3E721D" d="M28 27c-8 0-8 6-8 6V22h-4v11s0-6-8-6c-4 0-7-2-7-2s0 9 9 9h6s0 2 2 2 2-2 2-2h6c9 0 9-9 9-9s-3 2-7 2z"/><path fill="#FFAC33" d="M21.125 27.662c-.328 0-.651-.097-.927-.283l-2.323-1.575-2.322 1.575c-.277.186-.601.283-.929.283-.143 0-.287-.018-.429-.057-.462-.123-.851-.441-1.06-.874l-1.225-2.527-2.797.204c-.04.002-.079.004-.119.004-.438 0-.86-.174-1.17-.484-.34-.342-.516-.81-.481-1.288l.201-2.8-2.523-1.225c-.4 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f33d.svg b/browser/components/torpreferences/content/bridgemoji/1f33d.svg new file mode 100644 index 0000000000000..6c4ae3bf53b02 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f33d.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#5C913B" d="M15.373 1.022C13.71 2.686 8.718 9.34 11.214 15.164c2.495 5.823 5.909 2.239 7.486-2.495.832-2.496.832-5.824-.831-10.815-.832-2.496-2.496-.832-2.496-.832zm19.304 19.304c-1.663 1.663-8.319 6.655-14.142 4.159-5.824-2.496-2.241-5.909 2.495-7.486 2.497-.832 5.823-.833 10.814.832 2.496.831.833 2.495.833 2.495z"/><path fill="#F4900C" d="M32.314 6.317s-.145-1.727-.781-2.253c-.435-.546-2.018-.546-2.018-.546-1.664 0 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f33f.svg b/browser/components/torpreferences/content/bridgemoji/1f33f.svg new file mode 100644 index 0000000000000..9243e96857bf6 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f33f.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#77B255" d="M20.917 22.502c-2.706-.331-3.895-1.852-6.273-4.889 3.039-2.376 4.559-3.565 7.266-3.235 2.71.332 5.25 2.016 6.273 4.889-1.683 2.543-4.557 3.563-7.266 3.235zm-5.959 8.814c-2.549-.187-3.733-1.553-6.098-4.288 2.735-2.364 4.102-3.547 6.652-3.364 2.551.185 5.009 1.644 6.098 4.287-1.459 2.458-4.1 3.548-6.652 3.365zm-6.22-15.707c1.338 1.631 1.191 3.117.898 6.088-2.97-.294-4.456-.44-5.795-2.071-1.339-1.634-1.861-3 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f341.svg b/browser/components/torpreferences/content/bridgemoji/1f341.svg new file mode 100644 index 0000000000000..7cd7ad977b13b --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f341.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DD2E44" d="M36 20.917c0-.688-2.895-.5-3.125-1s3.208-4.584 2.708-5.5-5.086 1.167-5.375.708c-.288-.458.292-3.5-.208-3.875s-5.25 4.916-5.917 4.292c-.666-.625 1.542-10.5 1.086-10.698-.456-.198-3.419 1.365-3.793 1.282C21.002 6.042 18.682 0 18 0s-3.002 6.042-3.376 6.125c-.374.083-3.337-1.48-3.793-1.282-.456.198 1.752 10.073 1.085 10.698C11.25 16.166 6.5 10.875 6 11.25s.08 3.417-.208 3.875c-.289.458-4.875-1.625-5.375-.708s [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f344.svg b/browser/components/torpreferences/content/bridgemoji/1f344.svg new file mode 100644 index 0000000000000..0cf7a79142409 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f344.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#99AAB5" d="M27 33c0 2.209-1.791 3-4 3H13c-2.209 0-4-.791-4-3s3-7 3-13 12-6 12 0 3 10.791 3 13z"/><path fill="#DD2E44" d="M34.666 11.189l-.001-.002c-.96-2.357-2.404-4.453-4.208-6.182h-.003C27.222 1.904 22.839 0 18 0 13.638 0 9.639 1.541 6.524 4.115c-2.19 1.809-3.941 4.13-5.076 6.785C.518 13.075 0 15.473 0 18c0 2.209 1.791 4 4 4h28c2.209 0 4-1.791 4-4 0-2.417-.48-4.713-1.334-6.811z"/><g fill="#F4ABBA"><path d="M7.708 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f345.svg b/browser/components/torpreferences/content/bridgemoji/1f345.svg new file mode 100644 index 0000000000000..411c2a50e38b2 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f345.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DD2E44" d="M22.494 5.344c-.687 0-1.352.066-1.991.177-.819-.104-2.74-.231-3.591-.231-8.473 0-15.886 3.177-15.886 14.298 0 9.036 7.049 16.361 16.976 16.361s17.974-7.325 17.974-16.361C35.975 8.339 26.59 5.344 22.494 5.344z"/><path fill="#77B255" d="M8.439.091c1.637 1.636 2.77 2.266 3.274 4.91.298 1.564 2.266 1.51 2.266 1.51s-3.903 1.763-5.54 3.4c0 0 4.91-1.637 6.547-1.637 0 0 3.273 1.637 3.273 3.273 0 0 0-3.273-1.636-3 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f346.svg b/browser/components/torpreferences/content/bridgemoji/1f346.svg new file mode 100644 index 0000000000000..14688a6dd5fa2 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f346.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#744EAA" d="M6 4c3 0 5 2 8 6s7.957 7.191 12 8c5 1 9 5 9 11 0 4.897-3.846 7-9 7-5 0-9-3-14-8S2 14 2 10s1-6 4-6z"/><path fill="#77B255" d="M3.515 0c1.248 0 1.248 1.248 1.248 2.495 0 1.764 1.248 1.129 2.496 1.129C8.505 3.624 11 6 11 6H7.258c-1.248 0 0 2.614-1.248 2.614S4.762 7.426 3.515 7.426 2 11 2 11s-1.604-4.153.267-6.024C3.515 3.728 1.02 0 3.515 0z"/></svg> \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f347.svg b/browser/components/torpreferences/content/bridgemoji/1f347.svg new file mode 100644 index 0000000000000..e52e2f851970b --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f347.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#77B255" d="M9.999 12c-.15 0-.303-.034-.446-.106-4.38-2.19-7.484-7.526-8.501-10.578C.876.792 1.16.226 1.684.051c.525-.176 1.091.109 1.265.632.877 2.632 3.688 7.517 7.499 9.422.494.247.694.848.447 1.342-.176.351-.529.553-.896.553z"/><circle fill="#553788" cx="19" cy="29" r="7"/><circle fill="#9266CC" cx="10" cy="15" r="7"/><circle fill="#AA8DD8" cx="19" cy="12" r="7"/><circle fill="#744EAA" cx="27" cy="18" r="7"/><cir [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f348.svg b/browser/components/torpreferences/content/bridgemoji/1f348.svg new file mode 100644 index 0000000000000..f3482735105c8 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f348.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#A6D388" d="M31.924 10.982c4.418 7.652 1.99 17.326-5.424 21.607-7.414 4.28-16.505 2.413-20.924-5.241C.577 18.688 3.086 9.156 10.5 4.876c7.414-4.28 17.924.044 21.424 6.106z"/><path fill="#77B255" d="M24 6c3 1 6 4 8 7 .836 1.254.729-.078-.294-2.348C28.02 4.768 17.777.675 10.5 4.876c-3.01 1.738-5.194 4.349-6.413 7.408C4.808 11.471 5.52 11 6 11c1 0-1.896 3.279 1 11 3 8 3 4 3 4s-2-9-1-12 2-5 3-4 5 9 7 14c2.259 5.647 2-1-1 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f349.svg b/browser/components/torpreferences/content/bridgemoji/1f349.svg new file mode 100644 index 0000000000000..0f5ec06a4d403 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f349.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#5C913B" d="M2.472 6.572C1.528 8.698 1 11.038 1 13.5 1 23.165 9.059 31 19 31c7.746 0 14.33-4.767 16.868-11.44L2.472 6.572z"/><path fill="#FFE8B6" d="M4.332 7.295C3.479 9.197 3 11.293 3 13.5c0 8.591 7.164 15.556 16 15.556 6.904 0 12.77-4.26 15.013-10.218L4.332 7.295z"/><path fill="#DD2E44" d="M6.191 8.019C5.43 9.697 5 11.548 5 13.5c0 7.518 6.268 13.611 14 13.611 6.062 0 11.21-3.753 13.156-8.995L6.191 8.019z"/><path d= [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f34a.svg b/browser/components/torpreferences/content/bridgemoji/1f34a.svg new file mode 100644 index 0000000000000..82c0c52b1d0de --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f34a.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F4900C" d="M3 19.5C3 10.388 10.387 3 19.499 3c9.113 0 16.5 7.387 16.5 16.5S28.612 36 19.499 36C10.387 36 3 28.613 3 19.5z"/><path fill="#662113" d="M11.414 7.585c-.267-.267-.797-.197-1.355.12-3.3-2.732-8.653-3.652-8.895-3.692-.546-.089-1.059.277-1.15.821-.091.544.276 1.06.821 1.151.053.009 4.934.854 7.821 3.16-.275.525-.324 1.015-.07 1.268.39.391 1.34.074 2.121-.707.781-.78 1.097-1.73.707-2.121z"/><path fill="#5C913 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f34b.svg b/browser/components/torpreferences/content/bridgemoji/1f34b.svg new file mode 100644 index 0000000000000..ffbdc0886c9e7 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f34b.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#5C913B" d="M11.405 3.339c6.48-1.275 8.453 1.265 11.655.084 3.202-1.181.093 2.82-.745 3.508-.84.688-8.141 4.809-11.307 3.298-3.166-1.511-3.182-6.186.397-6.89z"/><path fill="#77B255" d="M15.001 16c-.304 0-.605-.138-.801-.4-.687-.916-1.308-1.955-1.965-3.056C9.967 8.749 7.396 4.446.783 2.976c-.539-.12-.879-.654-.759-1.193.12-.54.654-.878 1.193-.759C8.671 2.68 11.599 7.581 13.952 11.519c.63 1.054 1.224 2.049 1.848 2.881. [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f34c.svg b/browser/components/torpreferences/content/bridgemoji/1f34c.svg new file mode 100644 index 0000000000000..b4120ba34cbf2 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f34c.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFE8B6" d="M28 2c2.684-1.342 5 4 3 13-1.106 4.977-5 9-9 12s-11-1-7-5 8-7 10-13c1.304-3.912 1-6 3-7z"/><path fill="#FFD983" d="M31 8c0 3-1 9-4 13s-7 5-4 1 5-7 6-11 2-7 2-3z"/><path fill="#FFCC4D" d="M22 20c-.296.592 1.167-3.833-3-6-1.984-1.032-10 1-4 1 3 0 4 2 2 4-.291.292-.489.603-.622.912-.417.346-.873.709-1.378 1.088-2.263 1.697-5.84 4.227-10 7-3 2-4 3-4 4 0 3 9 3 14 1s10-7 10-7l4-4c-3-4-7-2-7-2z"/><path fill="#FF [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f34d.svg b/browser/components/torpreferences/content/bridgemoji/1f34d.svg new file mode 100644 index 0000000000000..e96999db7a0e9 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f34d.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#5C913B" d="M18.241 9.633c-.277-3.307 2.17-4.72 2.17-4.72-3.199.113-4.894 2.826-4.894 2.826-.752-1.3.946-4.012 2.169-4.719-3.198.113-3.67 2.12-3.67 2.12-1.503-2.601-1.03-4.607-1.03-4.607-1.121.647-1.767 2.113-2.141 3.512l-2.318-2.67c-.23 1.044.157 3.174.573 4.959-3.055-1.79-5.903-.15-5.903-.15 3.95 1.188 5.45 3.788 5.45 3.788s-3.948-1.187-5.646 1.526c2.597-.092 4.5.499 5.856 1.23-1.163.289-3.145-.236-4.355 1.371 0 0 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f34f.svg b/browser/components/torpreferences/content/bridgemoji/1f34f.svg new file mode 100644 index 0000000000000..1423d8aa8e2cb --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f34f.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#77B255" d="M24 7c-3 0-3 1-6 1s-3-1-6-1c-4 0-9 2-9 9 0 11 6 20 10 20 3 0 3-1 5-1s2 1 5 1c4 0 10-9 10-20 0-7.001-5-9-9-9z"/><path fill="#3E721D" d="M17.311 7.88s-1.775-4.674-6.58-6.06c-3.843-1.108-6.318.26-6.318.26s3.012 3.991 5.895 4.822c2.882.83 7.003.978 7.003.978z"/><path fill="#662113" d="M18 10c-.552 0-1-.448-1-1 0-3.441 1.2-6.615 3.293-8.707.391-.391 1.023-.391 1.414 0s.391 1.024 0 1.414C19.986 3.427 19 6.085 1 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f350.svg b/browser/components/torpreferences/content/bridgemoji/1f350.svg new file mode 100644 index 0000000000000..2888963f457ac --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f350.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#A6D388" d="M7.681 9.097c1.587-3.151 7.698-1.916 11.958 2.171 2.697 2.586 8.056 1.498 11.498 4.804 3.493 3.354 3.259 9.361-3.053 15.767C23 37 16 37 11.835 33.384c-4.388-3.811-2.476-8.61-4.412-13.585C5.487 14.823 3.1 9.375 7.681 9.097z"/><path fill="#662113" d="M8.178 9.534c-.43.448-1.114.489-1.527.093-3.208-3.079-3.918-7.544-3.946-7.776-.074-.586.348-1.157.939-1.278.592-.121 1.131.257 1.205.842.006.05.657 3.997 3.359 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f351.svg b/browser/components/torpreferences/content/bridgemoji/1f351.svg new file mode 100644 index 0000000000000..84e81f5e6ee2c --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f351.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#5C913B" d="M1.062 5.125s4.875-5 10-5C17.188.125 19 5.062 19 5.062s.625-4 5-4 6.938 3.125 6.938 3.125-3.562 2.125-4.625 2.562c-2.801 1.153-11.375 3.562-15.375 2.562S1.062 5.125 1.062 5.125z"/><path fill="#FF886C" d="M18 6s1.042-.896 6-.896c6.542 0 12 4.812 12 12.927 0 11.531-14.958 17.881-14.958 17.881S1 34.833 1 17.977C1 8.018 7.75 5 12 5c4.958 0 6 1 6 1z"/><path fill="#77B255" d="M1.062 5.125s4.875-5 10-5C17.188.12 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f352.svg b/browser/components/torpreferences/content/bridgemoji/1f352.svg new file mode 100644 index 0000000000000..bdba6bd679c56 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f352.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#77B255" d="M25.999 24c-.198 0-.397-.059-.572-.181-6.543-4.58-12.166-12.366-15.397-17.439 1.699 10.528.997 16.458.962 16.744-.068.548-.562.93-1.115.868-.548-.068-.937-.567-.869-1.115.009-.079.936-8.033-1.986-21.668-.105-.487.166-.978.634-1.148.466-.172.991.028 1.226.468.079.148 8.007 14.873 17.691 21.652.453.316.562.94.246 1.392-.194.279-.504.427-.82.427z"/><path fill="#5C913B" d="M26.547 8.818c-3.476.96-5.051 2.546- [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f353.svg b/browser/components/torpreferences/content/bridgemoji/1f353.svg new file mode 100644 index 0000000000000..26a41ee246bf0 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f353.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#BE1931" d="M22.614 34.845c3.462-1.154 6.117-3.034 6.12-9.373C28.736 21.461 33 17 32.999 12.921 32.998 9 28.384 2.537 17.899 3.635 7.122 4.764 3 8 2.999 15.073c0 4.927 5.304 8.381 8.127 13.518C13 32 18.551 38.187 22.614 34.845z"/><path fill="#77B255" d="M26.252 3.572c-1.278-1.044-3.28-1.55-5.35-1.677.273-.037.542-.076.82-.094.973-.063 3.614-1.232 1.4-1.087-.969.063-1.901.259-2.837.423.237-.154.479-.306.74-.442C21 0 1 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f354.svg b/browser/components/torpreferences/content/bridgemoji/1f354.svg new file mode 100644 index 0000000000000..a129dccb3ba42 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f354.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#D99E82" d="M18 20.411c-9.371 0-16.967-.225-16.967 6.427C1.033 33.487 8.629 35 18 35c9.371 0 16.967-1.513 16.967-8.162 0-6.651-7.596-6.427-16.967-6.427z"/><path fill="#662113" d="M34.47 20.916S26.251 19.932 18 19.89c-8.251.042-16.47 1.026-16.47 1.026C.717 27.39 7.467 30.057 18 30.057s17.283-2.667 16.47-9.141z"/><path fill="#FFCC4D" d="M33.886 18.328l-31.855.646c-1.1 0-2.021 2.229-.854 2.812 8.708 2.708 15.708 5.448 1 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f355.svg b/browser/components/torpreferences/content/bridgemoji/1f355.svg new file mode 100644 index 0000000000000..3a44bba9a045b --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f355.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F4900C" d="M18 4c7.257 0 13 4 14.699 2 .197-.323.301-.657.301-1 0-2-6.716-5-15-5C9.716 0 3 3 3 5c0 .343.104.677.301 1C5 8 10.743 4 18 4z"/><path fill="#FFCC4D" d="M18 3C11.787 3 7.384 4.81 5.727 5.618c-.477.233-.539.84-.415 1.278S16 34 16 34s.896 2 2 2 2-2 2-2L30.704 6.779s.213-.842-.569-1.229C28.392 4.689 24.047 3 18 3z"/><g fill="#BE1931"><path d="M18 31c0-2.208-1.791-4-4-4-.254 0-.5.029-.741.075L16 34s.071.14.19. [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f368.svg b/browser/components/torpreferences/content/bridgemoji/1f368.svg new file mode 100644 index 0000000000000..187b2f4c9a417 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f368.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#55ACEE" d="M20 28.625S30.661 25.9 33.356 15.72c.396-1.495-1.518-2.72-3.868-2.72H5.999c-1.175 0-3.74.493-3.072 2.894C5.711 25.9 16 28.625 16 28.625v1.173s-4.634 2.443-5.588 3.01c-1.027.588-.268 1.526.144 1.689.684.269 2.39 1.15 7.116 1.15 4.847 0 7.497-.954 8.083-1.15.226-.075 1.197-.973-.198-1.799-2.484-1.47-5.557-2.9-5.557-2.9v-1.173z"/><path fill="#3B88C3" d="M33.291 15.248c0 1.692-6.835 3.064-15.269 3.064-8.432 0 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f369.svg b/browser/components/torpreferences/content/bridgemoji/1f369.svg new file mode 100644 index 0000000000000..3c2aa5826ec6d --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f369.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFAC33" d="M35.337 23.549C34.291 29.819 27.615 34 18.092 34S1.894 29.819.849 23.549c-.247-1.479.156-8.12 1.054-9.406 2.559-3.664 3.474 10.365 16.189 10.365 13.847 0 13.64-14.028 16.199-10.365.898 1.286 1.292 7.927 1.046 9.406z"/><path fill="#8A4B38" d="M18.092 5.995c-9.331 0-16.895 4.584-16.895 10.239 0 5.655 7.564 10.24 16.895 10.24 9.33 0 16.895-4.585 16.895-10.24S27.422 5.995 18.092 5.995zm0 13.374c-3.174 0-5.748 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f36a.svg b/browser/components/torpreferences/content/bridgemoji/1f36a.svg new file mode 100644 index 0000000000000..4f5368a41dd26 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f36a.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DA9F83" d="M34.966 17.87c.414 4.649-2.082 8.731-4.831 12.206-2.304 2.554-5.602 3.631-8.901 4.285-3.198 1.089-6.766.739-9.716-.895-1.034-.43-2.248-.559-3.167-1.176-2.879-1.846-4.524-4.927-5.779-8.029-1.627-2.916-1.74-6.483-1.414-9.742.219-1.107.967-2.032 1.388-3.051.729-2.127 1.916-3.963 3.569-5.475.786-.787 1.377-1.823 2.303-2.444.919-.617 2.103-.758 3.137-1.188 1.016-.422 1.968-1.08 3.072-1.299 1.072-.213 2.201.106 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f36b.svg b/browser/components/torpreferences/content/bridgemoji/1f36b.svg new file mode 100644 index 0000000000000..a993c9b4b7f8e --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f36b.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#C1694F" d="M26.339 33.496c-1.562 1.561-4.095 1.561-5.657 0L1.59 14.404c-1.562-1.562-1.562-2.681 0-4.243l8.485-8.485c1.562-1.562 2.681-1.562 4.243 0L33.41 20.768c1.562 1.562 1.562 4.095 0 5.657l-7.071 7.071z"/><path fill="#8A4B38" d="M16.582 15.253l-4.885-4.885 5.657-5.657-1.415-1.414-5.656 5.657L6.54 5.211 5.126 6.626l3.743 3.742-5.657 5.657 1.414 1.414 5.657-5.657 4.885 4.885z"/><path fill="#DD2E44" d="M26.339 34.9 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f36c.svg b/browser/components/torpreferences/content/bridgemoji/1f36c.svg new file mode 100644 index 0000000000000..f6fbf3b70bba8 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f36c.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DD2E44" d="M13.298 3.538c-.531-4.075-5.627-4.3-6.248-2.125l-.933 4.041-4.041.933c-2.175.621-1.949 5.717 2.125 6.248l3.054.399c4.074.531 6.973-2.367 6.441-6.441l-.398-3.055zm18.993 18.991c4.074.531 4.299 5.629 2.125 6.249l-4.041.933-.934 4.042c-.62 2.174-5.717 1.948-6.248-2.126l-.398-3.055c-.531-4.074 2.367-6.973 6.441-6.441l3.055.398z"/><path fill="#BE1931" d="M30.49 22.294l-1.254-.164c-4.074-.531-6.973 2.367-6.441 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f36d.svg b/browser/components/torpreferences/content/bridgemoji/1f36d.svg new file mode 100644 index 0000000000000..e13447edec3c8 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f36d.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFAC33" d="M35.066 35.066c-.766.766-2.006.766-2.771 0L12.198 14.97c-.766-.766-.766-2.007 0-2.773.766-.765 2.007-.765 2.772 0l20.096 20.098c.766.764.766 2.006 0 2.771z"/><path fill="#DD2E44" d="M27.8 14.08c0 7.576-6.142 13.72-13.72 13.72C6.503 27.8.36 21.656.36 14.08.36 6.502 6.503.36 14.08.36c7.578 0 13.72 6.142 13.72 13.72z"/><path fill="#F4900C" d="M17.411 27.376c-1.459.092-2.938-.066-4.379-.503-3.156-.961-5.748-3 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f37f.svg b/browser/components/torpreferences/content/bridgemoji/1f37f.svg new file mode 100644 index 0000000000000..ddbff6d95f16f --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f37f.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#E1E8ED" d="M31.301 11H4.668c-1.657 0-3 1.343-3 3s1.343 3 3 3c.182 0 .357-.023.53-.053L5.182 17l.637 14.004C5.918 33.202 7.8 35 10 35h16c2.2 0 4.082-1.798 4.182-3.996L30.818 17l-.015-.05c.163.027.327.05.498.05 1.657 0 3-1.343 3-3s-1.344-3-3-3z"/><path d="M28.668 17v16.989c.863-.734 1.444-1.796 1.492-2.986L30.84 17h-2.172zm-6 0h3v18h-3zm-6 18V17h3v18zm-6-18h3v18h-3zM5.16 17l.68 14.003c.054 1.342.776 2.528 1.828 3.254V [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f380.svg b/browser/components/torpreferences/content/bridgemoji/1f380.svg new file mode 100644 index 0000000000000..03d4a75106524 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f380.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DD2E44" d="M19.281 6.392c0 .405-2.37.405-2.37 0 0-.9-14.911-9.899-14.911-2.7v13.499c0 2.487 3.476 1.947 7.193.361-1.429 3.525-4.498 9.68-7.05 13.934-.229.382-.178.868.124 1.194.303.325.783.415 1.181.215l5.258-2.629c.441.726.931 1.868 1.376 2.906.333.778.678 1.582 1.024 2.275.144.287.417.488.734.54.053.009.107.013.16.013.263 0 .518-.104.707-.293 1.42-1.419 3.429-8.395 4.793-14.093 1.364 5.698 3.373 12.674 4.793 14.09 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f381.svg b/browser/components/torpreferences/content/bridgemoji/1f381.svg new file mode 100644 index 0000000000000..1ab82981c0572 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f381.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FDD888" d="M33 31c0 2.2-1.8 4-4 4H7c-2.2 0-4-1.8-4-4V14c0-2.2 1.8-4 4-4h22c2.2 0 4 1.8 4 4v17z"/><path fill="#FDD888" d="M36 11c0 2.2-1.8 4-4 4H4c-2.2 0-4-1.8-4-4s1.8-4 4-4h28c2.2 0 4 1.8 4 4z"/><path fill="#FCAB40" d="M3 15h30v2H3z"/><path fill="#DA2F47" d="M19 3h-2c-1.657 0-3 1.343-3 3v29h8V6c0-1.656-1.343-3-3-3z"/><path fill="#DA2F47" d="M16 7c1.1 0 1.263-.516.361-1.147L9.639 1.147c-.902-.631-2.085-.366-2.631.589 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f382.svg b/browser/components/torpreferences/content/bridgemoji/1f382.svg new file mode 100644 index 0000000000000..35f9a002a9a7c --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f382.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><ellipse fill="#8899A6" cx="18" cy="26" rx="18" ry="10"/><ellipse fill="#CCD6DD" cx="18" cy="24.25" rx="18" ry="10"/><path fill="#DD2E44" d="M32.675 23.685c0 4.26-6.57 7.712-14.675 7.712S3.325 27.945 3.325 23.685c0-4.258 6.57-7.711 14.675-7.711 8.104 0 14.675 3.453 14.675 7.711z"/><path fill="#F4ABBA" d="M32.233 22.543c0 9.854-28.466 9.854-28.466 0v-8.759h28.466v8.759z"/><path fill="#DD2E44" d="M17.984 18.166c-8.984 0-14.218-4.1 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f383.svg b/browser/components/torpreferences/content/bridgemoji/1f383.svg new file mode 100644 index 0000000000000..591fc66a439db --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f383.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F4900C" d="M32.664 8.519C29.364 5.134 23.42 4.75 18 4.75S6.636 5.134 3.336 8.519C.582 11.344 0 15.751 0 19.791c0 5.263 1.982 11.311 6.357 14.244C9.364 36.051 13.95 35.871 18 35.871s8.636.18 11.643-1.836C34.018 31.101 36 25.054 36 19.791c0-4.04-.582-8.447-3.336-11.272z"/><path fill="#3F7123" d="M20.783 5.444c.069.42-.222.764-.647.764h-4.451c-.426 0-.717-.344-.647-.764l.745-4.472c.07-.421.476-.764.902-.764h2.451c.426 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f388.svg b/browser/components/torpreferences/content/bridgemoji/1f388.svg new file mode 100644 index 0000000000000..6d431bc8568de --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f388.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FCAB40" d="M27.999 36c-.448 0-.855-.303-.969-.758-.036-.136-.926-3.436-4.273-4.272C18.054 29.794 18 23.277 18 23c0-.552.447-.998.998-.999.554.034 1 .445 1.002.997 0 .053.054 5.234 3.242 6.032 4.53 1.132 5.682 5.54 5.727 5.728.135.535-.191 1.078-.727 1.212-.081.02-.163.03-.243.03z"/><path fill="#BB1A34" d="M18 25c-1.1 0-1.598-.805-1.105-1.789l1.211-2.422c.492-.984 1.297-.984 1.789 0l1.211 2.422C21.598 24.195 21.1 25 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f389.svg b/browser/components/torpreferences/content/bridgemoji/1f389.svg new file mode 100644 index 0000000000000..a4b8305af6be3 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f389.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DD2E44" d="M11.626 7.488c-.112.112-.197.247-.268.395l-.008-.008L.134 33.141l.011.011c-.208.403.14 1.223.853 1.937.713.713 1.533 1.061 1.936.853l.01.01L28.21 24.735l-.008-.009c.147-.07.282-.155.395-.269 1.562-1.562-.971-6.627-5.656-11.313-4.687-4.686-9.752-7.218-11.315-5.656z"/><path fill="#EA596E" d="M13 12L.416 32.506l-.282.635.011.011c-.208.403.14 1.223.853 1.937.232.232.473.408.709.557L17 17l-4-5z"/><path fill="# [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f38f.svg b/browser/components/torpreferences/content/bridgemoji/1f38f.svg new file mode 100644 index 0000000000000..5457d1e8d5f12 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f38f.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#CCD6DD" d="M3 3h2v33H3z"/><circle fill="#F4900C" cx="4" cy="3" r="3"/><path fill="#66757F" d="M9 28H4c-.552 0-1-.447-1-1s.448-1 1-1h5c.552 0 1 .447 1 1s-.448 1-1 1z"/><path fill="#DD2E44" d="M31 27c0-2.209 6.209-6 4-6h-8.447c-1.203-1.464-4.595-3-7.053-3-2.459 0-3.23 1.536-3.435 3H10c-2.209 0-3 1.791-3 4v4c0 2.209.791 4 3 4h25c2.209 0-4-3.791-4-6z"/><circle fill="#FFF" cx="12" cy="25" r="3"/><circle cx="11.5" cy="24. [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f392.svg b/browser/components/torpreferences/content/bridgemoji/1f392.svg new file mode 100644 index 0000000000000..f44d568064f51 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f392.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path d="M11.946 27C-1.036 7.876 7.524 2.752 9.114 2c.149-.07.242-.105.245-.107.418-.209.638-.675.529-1.125C9.779.318 9.372 0 8.903 0H4.847C1.054 0-4.282 11 5.859 28c.151.253 5.073 0 5.073 0 .559 0 1.324-.541 1.014-1zM31.229 0h-4c-.462 0-.863.318-.971.768-.107.45.109.916.521 1.125.004.002.095.037.242.107 1.568.752 10.01 5.876-2.792 25-.307.459.448 1 1 1 0 0 4.854.253 5.002 0 10-17 4.739-28 .998-28z" fill="#C1694F"/><path d="M6.8 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f399.svg b/browser/components/torpreferences/content/bridgemoji/1f399.svg new file mode 100644 index 0000000000000..07881e4aabe6a --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f399.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#292F33" d="M6 15h24v2H6zm15 15c0 2.208-.792 4-3 4-2.209 0-3-1.792-3-4s.791-2 3-2c2.208 0 3-.208 3 2z"/><path fill="#66757F" d="M18 31c-6.627 0-10 1.343-10 3v2h20v-2c0-1.657-3.373-3-10-3z"/><path fill="#99AAB5" d="M18 0c-4.971 0-9 4.029-9 9v7h18V9c0-4.971-4.029-9-9-9z"/><g fill="#292F33"><circle cx="15.5" cy="2.5" r="1.5"/><circle cx="20.5" cy="2.5" r="1.5"/><circle cx="17.5" cy="6.5" r="1.5"/><circle cx="22.5" cy="6 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f39f.svg b/browser/components/torpreferences/content/bridgemoji/1f39f.svg new file mode 100644 index 0000000000000..984f270649422 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f39f.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#EA596E" d="M26.751 8.007c1.364 1.365 3.364 1.708 5.046 1.032l3.613 3.611c.737.74.738 1.938-.004 2.68L15.319 35.405c-.743.739-1.94.737-2.681 0l-3.606-3.612c.672-1.684.33-3.682-1.032-5.047-1.367-1.365-3.364-1.707-5.047-1.032l-2.359-2.36c-.74-.737-.742-1.938 0-2.68L20.678.596c.739-.74 1.936-.741 2.679.002l2.361 2.361c-.677 1.683-.331 3.681 1.033 5.048z"/><path fill="#BE1931" d="M5.42 18.527l-2.149 2.148c-.739.739-.741 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f3a0.svg b/browser/components/torpreferences/content/bridgemoji/1f3a0.svg new file mode 100644 index 0000000000000..35c75b6970344 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f3a0.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DD2E44" d="M24.357 16.337s2.248-3.959 4.805-4.169c2.557-.21 3.929.934 4.144 3.432.287 3.334-.878 3.802-.033 7.53 0 0-3.546-2.414-2.421-6.07 1.172-3.806-4.81-3.095-3.835.316l-2.66-1.039z"/><path fill="#FFCC4D" d="M14.31 20.375c-.553 0-1 .448-1 1v13.563c0 .552.447 1 1 1s1-.448 1-1V21.375c0-.552-.448-1-1-1z"/><path fill="#F4900C" d="M15.31 25.77l-2 1.047v2.257l2-1.047zm-2 8.054l2-1.047V30.52l-2 1.047z"/><path fill="#88 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f3a1.svg b/browser/components/torpreferences/content/bridgemoji/1f3a1.svg new file mode 100644 index 0000000000000..c35744ab8c82f --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f3a1.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#CCD6DD" d="M30.806 15.347H19.201l8.205-8.205-.707-.707-8.205 8.205V3.036h-1V14.64L9.288 6.435l-.707.707 8.206 8.205H5.182v1h11.605l-8.206 8.206.707.707 8.206-8.206v11.605h1V17.055l8.205 8.205.707-.707-8.205-8.206h11.605z"/><path fill="#AAB8C2" d="M17.994 1.394c-7.982 0-14.453 6.471-14.453 14.453 0 7.982 6.471 14.453 14.453 14.453 7.983 0 14.454-6.471 14.454-14.453-.001-7.982-6.472-14.453-14.454-14.453zm0 26.683c-6.7 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f3a2.svg b/browser/components/torpreferences/content/bridgemoji/1f3a2.svg new file mode 100644 index 0000000000000..256d8afb7df44 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f3a2.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#E1E8ED" d="M32.612 16.645v-1h-4.083V8.333h-1v7.312h-3.11v1h3.11v4H18.55v-4.604h-1v4.604H12.8v1h4.75v4H8.612v-3.208h-1v3.208H2.205v1h5.407v4H2.205v1h5.407V36h1v-4.355h8.938V36h1v-4.355h8.979V36h1v-4.355h4.083v-1h-4.083v-4h4.083v-1h-4.083v-4h4.083v-1h-4.083v-4h4.083zm-24 14v-4h8.938v4H8.612zm18.917 0H18.55v-4h8.979v4zm0-5H18.55v-4h8.979v4z"/><path fill="#CCD6DD" d="M31.05 6.595h4V36h-4z"/><path fill="#8899A6" d="M34.0 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f3a8.svg b/browser/components/torpreferences/content/bridgemoji/1f3a8.svg new file mode 100644 index 0000000000000..3bfdea0c95bfd --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f3a8.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#D99E82" d="M18 3.143c-9.941 0-18 6.908-18 15.428 0 1.066.126 2.107.367 3.112C2.146 24.744 3.377 22.812 9 20c5.727-2.864 0 4-2 8-.615 1.23-.282 2.271.56 3.124C10.506 32.928 14.104 34 18 34c9.941 0 18-6.907 18-15.429 0-8.52-8.059-15.428-18-15.428zm2.849 24.447c-.395 1.346-2.46 1.924-4.613 1.291-2.153-.632-3.578-2.234-3.183-3.581.395-1.346 2.46-1.924 4.613-1.29 2.153.631 3.578 2.233 3.183 3.58z"/><circle fill="#5C913B" [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f3ac.svg b/browser/components/torpreferences/content/bridgemoji/1f3ac.svg new file mode 100644 index 0000000000000..3a326766110ef --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f3ac.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#3F7123" d="M35.845 32c0 2.2-1.8 4-4 4h-26c-2.2 0-4-1.8-4-4V19c0-2.2 1.8-4 4-4h26c2.2 0 4 1.8 4 4v13z"/><path fill="#3F7123" d="M1.845 15h34v6h-34z"/><path fill="#CCD6DD" d="M1.845 15h34v7h-34z"/><path fill="#292F33" d="M1.845 15h4l-4 7v-7zm11 0l-4 7h7l4-7h-7zm14 0l-4 7h7l4-7h-7z"/><path fill="#CCD6DD" d="M.155 8.207L33.148 0l1.69 6.792L1.845 15z"/><path fill="#292F33" d="M.155 8.207l5.572 5.827L1.845 15 .155 8.207zm [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f3af.svg b/browser/components/torpreferences/content/bridgemoji/1f3af.svg new file mode 100644 index 0000000000000..073817f2f3163 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f3af.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><circle fill="#DD2E44" cx="18" cy="18" r="18"/><circle fill="#FFF" cx="18" cy="18" r="13.5"/><circle fill="#DD2E44" cx="18" cy="18" r="10"/><circle fill="#FFF" cx="18" cy="18" r="6"/><circle fill="#DD2E44" cx="18" cy="18" r="3"/><path opacity=".2" d="M18.24 18.282l13.144 11.754s-2.647 3.376-7.89 5.109L17.579 18.42l.661-.138z"/><path fill="#FFAC33" d="M18.294 19c-.255 0-.509-.097-.704-.292-.389-.389-.389-1.018 0-1.407l.563-.563c. [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f3b2.svg b/browser/components/torpreferences/content/bridgemoji/1f3b2.svg new file mode 100644 index 0000000000000..408f2f9206f7a --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f3b2.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#A0041E" d="M4 11v.137c0-.042.011-.084.015-.126L4 11zm13 11.137c-.146-.067-.287-.145-.412-.246L4.565 12.245C4.188 11.94 4 11.539 4 11.137v12.238c0 2.042 1.093 2.484 1.093 2.484l11.574 9.099c.205.161.377.259.528.318-.114-.174-.195-.375-.195-.604V22.137zm-8.773.363c-.994 0-2.033-1.007-2.319-2.25-.287-1.242.287-2.249 1.28-2.249.994 0 2.033 1.007 2.319 2.249.287 1.243-.286 2.25-1.28 2.25zM13.81 30c-.994 0-2.033-1.008-2.3 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f3b6.svg b/browser/components/torpreferences/content/bridgemoji/1f3b6.svg new file mode 100644 index 0000000000000..f13b3b8bfb9a7 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f3b6.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#5DADEC" d="M14.182.168L7.818 1.469C7.368 1.561 7 2.012 7 2.471v15.857C6.387 18.12 5.712 18 5 18c-2.762 0-5 1.741-5 3.889 0 2.147 2.238 3.889 5 3.889 2.713 0 4.908-1.683 4.985-3.777H10V6.477l4.182-.855c.45-.092.818-.543.818-1.002V.835c0-.459-.368-.76-.818-.667zm21 4l-6.363 1.301c-.451.092-.819.543-.819 1.002v15.857c-.613-.209-1.288-.328-2-.328-2.762 0-5 1.741-5 3.889 0 2.147 2.238 3.889 5 3.889 2.713 0 4.908-1.683 4. [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f3b7.svg b/browser/components/torpreferences/content/bridgemoji/1f3b7.svg new file mode 100644 index 0000000000000..ed0f849e0d997 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f3b7.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill-rule="evenodd" clip-rule="evenodd" fill="#FCAB40" d="M14 16L9 26s-1 2 1 2c1 0 2-2 2-2L26 7s2-4 8-1v2c-3-1-4 1-4 1L15 33s-2 3-7 3c-6 0-7-5-7-8 0-2 1-4 2-6s-2-6-2-6h13z"/><path fill="#FDCB58" d="M7.5 20C4.04 20 0 18.952 0 16c0-2.953 4.04-4 7.5-4s7.5 1.047 7.5 4c0 2.952-4.04 4-7.5 4z"/><circle fill="#CCD6DD" cx="19" cy="17" r="2"/><circle fill="#CCD6DD" cx="22" cy="13" r="2"/><circle fill="#CCD6DD" cx="25" cy="9" r="2"/> [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f3b8.svg b/browser/components/torpreferences/content/bridgemoji/1f3b8.svg new file mode 100644 index 0000000000000..22074a11f3f0d --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f3b8.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#BB1A34" d="M21.828 20.559C19.707 21.266 19 17.731 19 17.731s.965-.968.235-1.829c1.138-1.137.473-1.707.473-1.707-1.954-1.953-5.119-1.953-7.071 0-.246.246-.414.467-.553.678-.061.086-.115.174-.17.262l-.014.027c-.285.475-.491.982-.605 1.509-.156.319-.379.659-.779 1.06-1.414 1.414-4.949-.707-7.778 2.121-.029.029-.045.069-.069.104-.094.084-.193.158-.284.25-3.319 3.319-3.003 9.018.708 12.728 3.524 3.525 8.84 3.979 12.209 1 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f3ba.svg b/browser/components/torpreferences/content/bridgemoji/1f3ba.svg new file mode 100644 index 0000000000000..454ab7818ac24 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f3ba.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FCAB40" d="M5.622 33.051l-2.674-2.673L23.337 9.987c3.344-3.343 1.337-8.021 2.007-8.689.666-.67 1.335-.002 1.335-.002l8.023 8.023c.668.668 0 1.336 0 1.336-.669.67-5.778-.908-8.692 2.006L5.622 33.051z"/><path fill="#CCD6DD" d="M5.457 33.891c.925-.925.925-2.424 0-3.35-.924-.924-2.424-.924-3.349 0l.087.087c-.371-.334-.938-.331-1.296.027-.369.368-.369.968 0 1.336L4.008 35.1c.37.369.968.369 1.337 0 .355-.356.36-.919.032-1 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f3bb.svg b/browser/components/torpreferences/content/bridgemoji/1f3bb.svg new file mode 100644 index 0000000000000..efb7d5da7eeb5 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f3bb.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F18F26" d="M23.912 12.087C22.219 10.394 20.318 9.5 18.415 9.5c-1.626 0-3.189.667-4.402 1.88-1.519 1.519-1.727 2.39-1.865 2.966-.071.295-.106.421-.255.57-.106.106-.155.256-.14.406.015.149.1.286.225.369.013.009.324.22.368.651.039.394-.13 1.08-1.16 2.11-.629.629-1.252.948-1.85.948-.981 0-1.649-.87-1.654-.877-.11-.15-.295-.226-.48-.197-.185.029-.337.159-.396.335-.221.663-.251.668-.535.709-.59.086-1.578.229-3.624 2.275C. [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f3be.svg b/browser/components/torpreferences/content/bridgemoji/1f3be.svg new file mode 100644 index 0000000000000..323e5c462ecfb --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f3be.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><circle fill="#77B255" cx="18" cy="18" r="18"/><path fill="#A6D388" d="M26 18c0 6.048 2.792 10.221 5.802 11.546C34.42 26.42 36 22.396 36 18c0-4.396-1.58-8.42-4.198-11.546C28.792 7.779 26 11.952 26 18z"/><path fill="#FFF" d="M27 18c0-6.048 1.792-10.221 4.802-11.546-.445-.531-.926-1.028-1.428-1.504C27.406 6.605 25 10.578 25 18c0 7.421 2.406 11.395 5.374 13.05.502-.476.984-.973 1.428-1.504C28.792 28.221 27 24.048 27 18z"/><path fil [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f3c0.svg b/browser/components/torpreferences/content/bridgemoji/1f3c0.svg new file mode 100644 index 0000000000000..24693956f6f9b --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f3c0.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><circle fill="#F4900C" cx="18" cy="18" r="18"/><path fill="#231F20" d="M36 17h-8.981c.188-5.506 1.943-9.295 4.784-10.546-.445-.531-.926-1.027-1.428-1.504-2.83 1.578-5.145 5.273-5.354 12.049H19V0h-2v17h-6.021c-.208-6.776-2.523-10.471-5.353-12.049-.502.476-.984.972-1.428 1.503C7.039 7.705 8.793 11.494 8.981 17H0v2h8.981c-.188 5.506-1.942 9.295-4.783 10.546.445.531.926 1.027 1.428 1.504 2.831-1.578 5.145-5.273 5.353-12.05H17v17h2V1 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f3c6.svg b/browser/components/torpreferences/content/bridgemoji/1f3c6.svg new file mode 100644 index 0000000000000..00457c31ea308 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f3c6.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFAC33" d="M5.123 5h6C12.227 5 13 4.896 13 6V4c0-1.104-.773-2-1.877-2h-8c-2 0-3.583 2.125-3 5 0 0 1.791 9.375 1.917 9.958C2.373 18.5 4.164 20 6.081 20h6.958c1.105 0-.039-1.896-.039-3v-2c0 1.104-.773 2-1.877 2h-4c-1.104 0-1.833-1.042-2-2S3.539 7.667 3.539 7.667C3.206 5.75 4.018 5 5.123 5zm25.812 0h-6C23.831 5 22 4.896 22 6V4c0-1.104 1.831-2 2.935-2h8c2 0 3.584 2.125 3 5 0 0-1.633 9.419-1.771 10-.354 1.5-2.042 3-4 3h- [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f3c8.svg b/browser/components/torpreferences/content/bridgemoji/1f3c8.svg new file mode 100644 index 0000000000000..4f5530d29087a --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f3c8.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#662113" d="M7.754 7.754C4.068 11.44 1.64 16.37.843 21.335l13.822 13.822c4.965-.797 9.895-3.225 13.581-6.911s6.114-8.616 6.911-13.581L21.335.843C16.37 1.64 11.44 4.068 7.754 7.754zm25.615-5.123C30.707 1.152 27.634.51 24.472.564l10.965 10.964c.053-3.162-.589-6.235-2.068-8.897zM2.631 33.369c2.662 1.479 5.736 2.121 8.898 2.067L.564 24.472c-.054 3.161.588 6.235 2.067 8.897z"/><path fill="#E1E8ED" d="M22.828 11.757l-2.414 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f3d3.svg b/browser/components/torpreferences/content/bridgemoji/1f3d3.svg new file mode 100644 index 0000000000000..6201ef5ae20b7 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f3d3.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DD2E44" d="M23.106 5.971C17.615.48 8.384-.521 3.307 4.557-1.77 9.634-.77 18.865 4.721 24.356c3.554 3.554 7.785 4.323 11.707 3.058l-.015.013.13-.052c.264-.088.527-.179.788-.284.698-.238 1.734-.558 2.942-.806 1.848-.38 3.541 1.606 4.955 3.021 1.414 1.414 4.242 5.657 4.949 6.364.707.707 1.414 0 2.122-.707l.707-.707.707-.707c.707-.708 1.414-1.415.707-2.122-.707-.707-4.95-3.535-6.364-4.949-1.414-1.414-3.4-3.107-3.021-4.9 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f3d4.svg b/browser/components/torpreferences/content/bridgemoji/1f3d4.svg new file mode 100644 index 0000000000000..8b78f31e4c642 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f3d4.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#292F33" d="M19.083 35.5L12.25 12.292s-1.42.761-2.604 1.637c-.313.231-1.977 2.79-2.312 3.04-1.762 1.315-3.552 2.841-3.792 3.167C3.083 20.76 0 36 0 36l19.083-.5z"/><path fill="#4B545D" d="M32 35l-5.5-19.75L18 4.542l-5.373 4.193-.971 1.172C11.25 10.688 10 15.25 10 15.25L8.75 20 3.252 30.054.917 34.791 32 35z"/><path fill="#FFF" d="M3.252 30.054s7.873-10.783 7.894-11.388C11.167 18.062 10 15.25 10 15.25L8.75 20 3.252 30. [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f3d5.svg b/browser/components/torpreferences/content/bridgemoji/1f3d5.svg new file mode 100644 index 0000000000000..7a2fb80eddb76 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f3d5.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#78B159" d="M18 25.18C3.438 25.18 0 29.844 0 32s1.791 4 4 4h28c2.209 0 4-1.851 4-4s-3.438-6.82-18-6.82z"/><path fill="#662113" d="M28.804 28.15c0 1.531-1.242 2.08-2.773 2.08-1.531 0-2.773-.548-2.773-2.08l.693-6.239c0-1.531.548-1.387 2.08-1.387 1.531 0 2.08-.145 2.08 1.387l.693 6.239z"/><path fill="#5C913B" d="M34.868 19.717c-4.59-4.135-6.449-10.056-8.837-10.056s-4.247 5.921-8.836 10.056c-1.929 1.738-1.01 2.743 1.634 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f3dd.svg b/browser/components/torpreferences/content/bridgemoji/1f3dd.svg new file mode 100644 index 0000000000000..d66d8d477b43a --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f3dd.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><ellipse fill="#3B88C3" cx="18" cy="30.54" rx="18" ry="5.36"/><path fill="#88C9F9" d="M33.812 28.538c0 1.616-2.5 2.587-14.482 2.587-10.925 0-13.612-.971-13.612-2.587s5.683-2.926 13.612-2.926 14.482 1.31 14.482 2.926z"/><path fill="#F4900C" d="M7 28.25c0-1 1-5 11-5 12 0 15 4 15 5s0 2-14 2c-12 0-12-1-12-2z"/><circle fill="#FFCC4D" cx="7" cy="6.25" r="5"/><circle fill="#FFAC33" cx="7" cy="6.25" r="4"/><path fill="#C1694F" d="M26.94 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f3e1.svg b/browser/components/torpreferences/content/bridgemoji/1f3e1.svg new file mode 100644 index 0000000000000..b44b7288b1d66 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f3e1.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#5C913B" d="M36 33.5c0 .828-.672 1.5-1.5 1.5h-33C.672 35 0 34.328 0 33.5S.672 32 1.5 32h33c.828 0 1.5.672 1.5 1.5z"/><path fill="#A0041E" d="M12.344 14.702h-2c-.276 0-.5-.224-.5-.5v-7c0-.276.224-.5.5-.5h2c.276 0 .5.224.5.5v7c0 .276-.224.5-.5.5z"/><path fill="#FFCC4D" d="M5.942 32c-.137-4.657-.506-8-.942-8-.435 0-.804 3.343-.941 8h1.883z"/><path fill="#77B255" d="M10 18.731C10 24.306 7.762 26 5 26c-2.761 0-5-1.694-5-7 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f3ee.svg b/browser/components/torpreferences/content/bridgemoji/1f3ee.svg new file mode 100644 index 0000000000000..a825f2b79b1c3 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f3ee.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#292F33" d="M29 34c0 1.104-.896 2-2 2H9c-1.104 0-2-.896-2-2V2c0-1.104.896-2 2-2h18c1.104 0 2 .896 2 2v32z"/><path fill="#BE1931" d="M6.699 32h22.602C33.383 28.7 35 23.658 35 18c0-5.658-1.616-10.7-5.698-14H6.698C2.615 7.3 1 12.342 1 18c0 5.658 1.616 10.7 5.699 14z"/><path d="M1.301 22c.108.682.245 1.35.415 2h32.568c.17-.65.307-1.318.415-2H1.301zm-.229-2h33.855c.049-.657.073-1.324.073-2H1c0 .676.024 1.343.072 2zm31.605 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f3f7.svg b/browser/components/torpreferences/content/bridgemoji/1f3f7.svg new file mode 100644 index 0000000000000..60462664ebd6c --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f3f7.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFD983" d="M32.017 20.181L17.345 5.746C16.687 5.087 15.823 5 14.96 5H4.883C3.029 5 2 6.029 2 7.883v10.082c0 .861.089 1.723.746 2.38L17.3 35.017c1.311 1.31 3.378 1.31 4.688 0l10.059-10.088c1.31-1.312 1.28-3.438-.03-4.748zm-23.596-8.76c-.585.585-1.533.585-2.118 0s-.586-1.533 0-2.118c.585-.586 1.533-.585 2.118 0 .585.586.586 1.533 0 2.118z"/><path fill="#D99E82" d="M9.952 7.772c-1.43-1.431-3.749-1.431-5.179 0-1.431 1.4 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f3f8.svg b/browser/components/torpreferences/content/bridgemoji/1f3f8.svg new file mode 100644 index 0000000000000..143f8eaedb2dc --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f3f8.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#55ACEE" d="M30.385 29c.382.382.382 1.002 0 1.385-.383.382-1.003.382-1.385 0L15.5 16.884c-.382-.382-.382-1.002 0-1.384.382-.382 1.001-.382 1.384 0L30.385 29z"/><path fill="#292F33" d="M35.561 33.439c.586.586.586 1.536 0 2.121-.585.586-1.535.586-2.121 0l-5.656-5.656c-.586-.586-.586-1.536 0-2.121.585-.586 1.535-.586 2.121 0l5.656 5.656z"/><g fill="#99AAB5"><path d="M2.447 5.2l.707-.707L15.178 16.51l-.707.707zm1.417-2.8 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f3f9.svg b/browser/components/torpreferences/content/bridgemoji/1f3f9.svg new file mode 100644 index 0000000000000..37922127ee965 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f3f9.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#C1694F" d="M21.279 4.28c-9 0-10.5 1.5-13 4s-4 4-4 13c0 11.181-2 14-1 14s3-2 3-4-2-13 5-20h-.001c7-6.999 18-5 20-5s4-2 4-3-2.818 1-13.999 1z"/><path fill="#D99E82" d="M29.5 29.779c0 .276-.224.5-.5.5H3.78c-.276 0-.5-.224-.5-.5s.224-.5.5-.5H29c.276 0 .5.224.5.5zm.279-.279c-.277 0-.5-.225-.5-.5V3.779c0-.276.223-.5.5-.5.275 0 .5.224.5.5V29c0 .275-.224.5-.5.5z"/><path fill="#99AAB5" d="M0 0l2.793 8.52L4.93 4.955l3.52-2.09 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f40a.svg b/browser/components/torpreferences/content/bridgemoji/1f40a.svg new file mode 100644 index 0000000000000..a9a6debcc432f --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f40a.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#3E721D" d="M19 32c0 1-1.723 3-3.334 3C14.056 35 14 33.657 14 32s1.306-3 2.916-3C18.527 29 19 30.343 19 32zm11 0c0 1-1.723 3-3.334 3C25.056 35 25 33.657 25 32s1.306-3 2.916-3C29.527 29 30 30.343 30 32z"/><path fill="#5C913B" d="M36 25c0-6-3.172-9.171-6-12-1-1-1.399.321-1 1 .508.862 3 8-2 8h-2c-5 0-6.172-1.172-9-4-4.5-4.5-7 0-9 0-6 0-7-1.812-7 2 0 3 3 4 6 4s3 1 5 4c1.071 1.606 2.836 3.211 5.023 4.155.232 1.119 2.774 3 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f40c.svg b/browser/components/torpreferences/content/bridgemoji/1f40c.svg new file mode 100644 index 0000000000000..2c63658289aed --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f40c.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#9266CC" d="M9 15.561c0-4 2-8 0-10s-3 2-2 2c1.414 0 2 2 1 5s1 3.999 1 3zm-3.875 0c0-4 2-8 0-10s-3 2-2 2c1.414 0 2 2 1 5s1 3.999 1 3z"/><path fill="#AA8DD8" d="M36 34.936c0 1-1 1-2 1H11c-5 0-7.272-3.09-8-6-1-4 2-11 0-12s-3-1-3-3 4.47-5.265 7-4c4 2 2.767 6.932 2 10-.88 3.522 1.115 3.594 5 5 4.94 1.787 12.32 4.44 14 5 3 1 8 3 8 4z"/><path fill="#FFCC4D" d="M10.925 24.935c2.887 1 3.849 9 13.472 9 6.377 0 8.66-5.479 8.66- [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f40d.svg b/browser/components/torpreferences/content/bridgemoji/1f40d.svg new file mode 100644 index 0000000000000..17531783ba93d --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f40d.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DD2E44" d="M11.84 7.634c-.719 0-2.295 2.243-3.567 1.029-.44-.419 1.818-1.278 1.727-2.017-.075-.607-2.842-1.52-1.875-2.099.967-.578 2.418.841 3.513.866 2.382.055 4.212-.853 4.238-.866.541-.274 1.195-.052 1.464.496.27.547.051 1.213-.488 1.486-.131.066-2.225 1.105-5.012 1.105z"/><path fill="#77B255" d="M27.818 36c-3.967 0-8.182-2.912-8.182-8.308 0-1.374-.89-1.661-1.637-1.661-.746 0-1.636.287-1.636 1.661 0 5.396-4.216 8 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f417.svg b/browser/components/torpreferences/content/bridgemoji/1f417.svg new file mode 100644 index 0000000000000..ad7a77db82d7c --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f417.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#C1694F" d="M33.359 13.254c1.434-3.462 2.06-11.534 1.262-12.004-.704-.416-5.641 1.084-8.34 3.205C23.883 2.909 21.085 2 18 2c-3.085 0-5.883.91-8.281 2.455C7.02 2.334 2.082.834 1.378 1.25c-.797.47-.171 8.543 1.263 12.004C1.59 15.818 1 18.623 1 21.479 1 31.468 2 36 18 36s17-4.532 17-14.521c0-2.856-.59-5.662-1.641-8.225z"/><path fill="#662113" d="M32.878 12.157c.929-3.252 1.081-7.708.524-8.037-.411-.243-2.78.633-5.009 1. [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f418.svg b/browser/components/torpreferences/content/bridgemoji/1f418.svg new file mode 100644 index 0000000000000..fb9656cd18f0b --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f418.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#99AAB5" d="M34.453 15.573c-.864-7.3-5.729-10.447-13.93-10.447-.391 0-.763.017-1.139.031-.013-.01-.022-.021-.035-.031C14.655 1.605 4.091 2.779 1.745 6.3c-3.255 4.883-1.174 22.3 0 24.646 1.173 2.35 4.694 3.521 5.868 2.35 1.174-1.176 0-1.176-1.173-3.521-.85-1.701-.466-5.859.255-8.471.028.168.068.322.1.486.39 2.871 1.993 7.412 1.993 9.744 0 3.564 2.102 4.107 4.694 4.107 2.593 0 4.695-.543 4.695-4.107 0-.24-.008-.463-.01 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f419.svg b/browser/components/torpreferences/content/bridgemoji/1f419.svg new file mode 100644 index 0000000000000..d915a8fd2e6b6 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f419.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#553788" d="M10 12c3 5 0 10.692-3 9.692s-4 2-1 3 9.465-.465 13-4c1-1 2-1 2-1L10 12z"/><path fill="#553788" d="M26 12c-3 5 0 10.692 3 9.692s4 2 1 3-9.465-.465-13-4c-1-1-2-1-2-1L26 12z"/><path fill="#744EAA" d="M30.188 16c-3 5 0 10.692 3 9.692s4 2 1 3-9.465-.465-13-4c-1-1-2-1-2-1l11-7.692zM5.812 16c3 5 0 10.692-3 9.692s-4 2-1 3 9.465-.465 13-4c1-1 2-1 2-1L5.812 16z"/><path fill="#9266CC" d="M33.188 31.375c-2.729.91-6.4 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f41a.svg b/browser/components/torpreferences/content/bridgemoji/1f41a.svg new file mode 100644 index 0000000000000..804ece8811a33 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f41a.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#CCD6DD" d="M29.049 7.033c-.07-.07-.141-.126-.211-.188-1.08-1.087-2.497-1.564-4.008-1.373l-3.812.483c-.382-3.003-2.25-4.446-4.351-4.181l-4.24.536C12.075.767 11.011.034 9.827.185L5.033.79C3.71.958 2.773 2.438 2.94 4.097l.606 6.007c.152 1.501 1.425 2.591 2.403 2.693l.514 5.093c.258 2.553 2.509 4.365 4.117 4.38l.498 4.926c.164 1.622.928 3.027 1.917 4.063.23.339.471.656.737.922 4.423 4.423 12.183 5.064 16.607.64 4.42-4.4 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f41b.svg b/browser/components/torpreferences/content/bridgemoji/1f41b.svg new file mode 100644 index 0000000000000..f8986dd7818b9 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f41b.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#AA8DD8" d="M7.415 4c1-1 .25-4-1.438-4s-1.562 2-.562 2 1 2 1 3 1-1 1-1zM3.232 5.72c1-1 .25-4-1.438-4s-1.562 2-.562 2 1 2 1 3 1-1 1-1z"/><path fill="#744EAA" d="M29.607 32.856c.189.808 1.227 2.28 2.032 2.091.806-.19 1.077-1.971.888-2.777-.189-.808-.998-1.307-1.804-1.117-.805.19-1.306.997-1.116 1.803zm-5.434.649c.003.83.681 2.498 1.509 2.495.828-.004 1.494-1.677 1.491-2.506-.003-.829-.677-1.497-1.505-1.495-.828.004-1.4 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f41d.svg b/browser/components/torpreferences/content/bridgemoji/1f41d.svg new file mode 100644 index 0000000000000..31e78828044a0 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f41d.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#31373D" d="M27.816 23.464c.299-1.148.465-2.318.465-3.464 0-4.161-2.122-6.779-5.258-8.035.417-1.008.665-2.108.665-3.2 0-1.581-.495-2.498-1.315-3.032 1.091-.482 2.517-1.5 3.027-2.011.781-.781.94-1.889.354-2.475-.586-.586-1.693-.428-2.475.354-.611.611-1.948 2.53-2.223 3.619C20.172 5.025 19.126 5 18 5c-1.125 0-2.172.025-3.055.219-.275-1.089-1.612-3.007-2.223-3.619-.781-.781-1.889-.94-2.475-.354-.585.587-.427 1.694.354 2 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f41e.svg b/browser/components/torpreferences/content/bridgemoji/1f41e.svg new file mode 100644 index 0000000000000..f314ca9a208e7 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f41e.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path d="M35 21H1c-.552 0-1-.447-1-1s.448-1 1-1h34c.553 0 1 .447 1 1s-.447 1-1 1zm-22.177-2l-.069-.002c-.092-.007-9.214-.714-10.734-8.235-.109-.542.241-1.069.782-1.178.543-.113 1.069.241 1.178.782 1.221 6.044 8.833 6.631 8.91 6.636.551.038.967.515.93 1.066-.036.527-.476.931-.997.931zM3 31c-.142 0-.286-.03-.423-.094-.5-.234-.716-.829-.482-1.33 3.166-6.77 11.038-7.721 11.372-7.758.548-.056 1.042.334 1.103.882.062.548-.332 1.043-.8 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f41f.svg b/browser/components/torpreferences/content/bridgemoji/1f41f.svg new file mode 100644 index 0000000000000..7d9ef4108b41a --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f41f.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#3B88C3" d="M32.153 24c0-1 1.523-6.212 3.047-7.735 1.522-1.523 0-3.166-1.523-3.166-3.405 0-9.139 6.901-9.139 10.901 0 5 5.733 10.424 9.139 10.424 1.523 0 3.046-1.404 1.523-2.928C33.677 29.974 32.153 26 32.153 24z"/><path fill="#3B88C3" d="M9.021 14.384c0-3.046 1.497-6.093 3.02-6.093 4.569 0 13.322 4.823 14.845 12.439 1.524 7.616-17.865-6.346-17.865-6.346zm4.854 18.278c1.523 1.523 4.57 3.047 7.617 3.047 3.046 0-3.111- [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f420.svg b/browser/components/torpreferences/content/bridgemoji/1f420.svg new file mode 100644 index 0000000000000..ccc11c48d0243 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f420.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFAC33" d="M8.231 10c6-8 14-10 18-10 1 0 1 1 0 1s-6 2-7 9-11 0-11 0zm-1 18c4 3 13 8 18 8 3 0 2-1 1-1s-9-3-10-7-9 0-9 0z"/><path fill="#FFCC4D" d="M35 9c-1.611 0-4.059 2.972-5.268 6.294-1.475-5.62-6.166-10.739-12.945-10.739-8.273 0-12.061 10.216-14.524 14.479-.629 1.091-4.091 1.034-.989 3.103-3.103 2.068.449 2.243 1.222 3.103 2.625 2.92 8.997 6.205 14.291 6.205 5.655 0 11.12-3.786 12.863-8.958C30.828 25.896 33.353 29 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f422.svg b/browser/components/torpreferences/content/bridgemoji/1f422.svg new file mode 100644 index 0000000000000..fe4b659ee0fcc --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f422.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#77B255" d="M9.842 19.922c0 9.842 6.575 9.673 5.158 10.078-7 2-8.803-7.618-9.464-7.618-2.378 0-5.536-.423-5.536-2.46C0 17.883 2.46 15 6.151 15c2.379 0 3.691 2.883 3.691 4.922zM36 28.638c0 1.104-3.518-.741-5 0-2 1-2-.896-2-2s1.343-1 3-1 4 1.895 4 3z"/><path fill="#77B255" d="M16.715 33.143c0 2.761-1.279 2.857-2.857 2.857S11 35.903 11 33.143c0-.489.085-1.029.234-1.587.69-2.59 2.754-5.556 4.052-5.556 1.578 0 1.429 4.382 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f425.svg b/browser/components/torpreferences/content/bridgemoji/1f425.svg new file mode 100644 index 0000000000000..bcbd2181bb0a6 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f425.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFAC33" d="M17.38 33.098c-.097-.18-.25-.302-.417-.391C15.366 31.001 16.5 29 16.5 29c0-.553 1-2 0-2l-1 1c-1 1-1 4-1 4h-2c-.553 0-1 .447-1 1s.447 1 1 1h1.108l-.222.12c-.486.263-.667.869-.404 1.355s.869.667 1.356.404l2.639-1.427c.485-.262.666-.868.403-1.354zM23.5 32h-2s0-3-1-4l-1-1c-1 0 0 1.447 0 2 0 0 1.135 2.001-.462 3.707-.168.089-.32.211-.418.391-.263.486-.082 1.093.404 1.355l2.639 1.427c.486.263 1.093.082 1.356-.4 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f426.svg b/browser/components/torpreferences/content/bridgemoji/1f426.svg new file mode 100644 index 0000000000000..06d93a9162da3 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f426.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFAC33" d="M8.916 12.88c-.111 1.652 1.768 3.126-.712 2.959-2.48-.167-7.836-2.533-7.768-3.53s3.708-2.757 6.188-2.59c2.48.166 2.404 1.508 2.292 3.161zm20.122 16.049c-.202-.032-.392.015-.564.095-2.325.232-3.225-1.885-3.225-1.885-.439-.336-.981-2.009-1.589-1.215l.187 1.402c.187 1.402 2.57 3.224 2.57 3.224l-1.215 1.589c-.336.439-.252 1.066.187 1.402.439.336 1.066.252 1.402-.187l.673-.88-.039.249c-.087.546.285 1.058.831 1 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f428.svg b/browser/components/torpreferences/content/bridgemoji/1f428.svg new file mode 100644 index 0000000000000..1da7190a6813b --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f428.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#99AAB5" d="M36 13.533C36 8.867 32.866 7 29 7c-1.621 0-3.285.354-4.676 1.027C22.523 6.798 20.405 6.062 18 6.062s-4.523.736-6.324 1.965C10.285 7.354 8.621 7 7 7c-3.866 0-7 1.867-7 6.533 0 3.844 2.128 6.417 5.038 7.206-.043.536-.068 1.073-.068 1.611 0 5.729 4.52 7.675 8.581 8.326C14.649 31.487 16.232 32 18 32s3.351-.513 4.449-1.323c4.062-.651 8.581-2.597 8.581-8.326 0-.538-.025-1.075-.068-1.611 2.91-.79 5.038-3.363 5.0 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f42a.svg b/browser/components/torpreferences/content/bridgemoji/1f42a.svg new file mode 100644 index 0000000000000..278e144ffd3dc --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f42a.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#C1694F" d="M31.595 15.007c-1.75-3.623-5.934-9.053-9.531-9.053-4.071 0-8.228 7.259-10.071 10.378-.176.299-.321.578-.464.857-3.371-1.182-.536-6.631-.536-10.463 0-.957-.138-1.637-.44-2.119.489-.606.586-1.347.192-1.699-.413-.367-1.195-.163-1.745.456-.08.089-.129.186-.189.28-.424-.067-.903-.102-1.472-.102-.565 0-2.916.266-4.229.791C-.007 5.582.993 9 1.993 9h4c1 0 .756 2.31 0 4.726-.83 2.654-1.439 5.145-1 6.606.808 2.687 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f42c.svg b/browser/components/torpreferences/content/bridgemoji/1f42c.svg new file mode 100644 index 0000000000000..ee782f2f20e25 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f42c.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#4292E0" d="M30.584 7.854c.27-1.729 1.028-3.908 2.975-5.854.704-.704.25-2-1-2 0 0-6.061.007-9.893 3.327C21.663 3.115 20.625 3 19.559 3c-8 0-12 4-14 12-.444 1.778-.865 1.399-3 3-1.195.896-2.117 3 1 3 3 0 5 .954 9 1 3.629.042 9.504-3.229 11.087-1.292 2.211 2.706 1.396 5.438.597 6.666-2.904 3.396-5.939.541-8.685-.374-3-1-1 1 0 2s1.312 4 0 6 3 0 5-3c.011-.017.022-.028.032-.045C28.392 31.5 34.559 25.936 34.559 18c0-3.918- [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f42d.svg b/browser/components/torpreferences/content/bridgemoji/1f42d.svg new file mode 100644 index 0000000000000..91e126242bda5 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f42d.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><circle fill="#99AAB5" cx="8.5" cy="9.5" r="8.5"/><circle fill="#99AAB5" cx="27.5" cy="9.5" r="8.5"/><path fill="#F4ABBA" d="M13.812 10.031c0 3.228-2.617 5.844-5.844 5.844s-5.844-2.616-5.844-5.844c0-3.227 2.617-5.844 5.844-5.844s5.844 2.617 5.844 5.844zm20.063 0c0 3.228-2.617 5.844-5.844 5.844-3.227 0-5.844-2.616-5.844-5.844 0-3.227 2.617-5.844 5.844-5.844 3.227.001 5.844 2.617 5.844 5.844z"/><path fill="#99AAB5" d="M30 18c0 7.1 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f42e.svg b/browser/components/torpreferences/content/bridgemoji/1f42e.svg new file mode 100644 index 0000000000000..40fede032f581 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f42e.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#99AAB5" d="M4 8s-4 2-4 11c0 0 6-1 7-3 0 0 2-12.25-3-8zm27.995.043s4 2 4 11c0 0-6-.999-7-2.999 0 0-2-12.251 3-8.001z"/><path fill="#FFE8B6" d="M1 1c-1.01.99 1 8 5 9s4-5 3-5C5 5 3.042-1 1 1zm34.297 0c1.011.99-1 8-5 9s-4-5-3-5c4 0 5.959-6 8-4z"/><path fill="#CCD6DD" d="M21.976 31h-7.951C8.488 31 4 26.512 4 20.976v-8.951C4 6.488 8.488 2 14.025 2h7.951C27.512 2 32 6.488 32 12.025v8.951C32 26.512 27.512 31 21.976 31z"/><p [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f42f.svg b/browser/components/torpreferences/content/bridgemoji/1f42f.svg new file mode 100644 index 0000000000000..5ecd980c51305 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f42f.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><circle fill="#FFCC4D" cx="7" cy="6" r="6"/><circle fill="#FFCC4D" cx="18" cy="30" r="6"/><circle fill="#DD2E44" cx="18" cy="30" r="4"/><circle fill="#FFCC4D" cx="29" cy="6" r="6"/><circle fill="#E6AAAA" cx="7" cy="6" r="4"/><circle fill="#E6AAAA" cx="29" cy="6" r="4"/><path fill="#FFCC4D" d="M34 22c0 7-4.923 7-4.923 7H6.923S2 29 2 22C2 22 3.231 0 18 0c14.77 0 16 22 16 22z"/><path fill="#272B2B" d="M11 17s0-2 2-2 2 2 2 2v2s0 2-2 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f430.svg b/browser/components/torpreferences/content/bridgemoji/1f430.svg new file mode 100644 index 0000000000000..2f70f9669ff74 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f430.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#99AAB5" d="M33.799.005c-.467-.178-7.998 3.971-9.969 9.131-1.166 3.052-1.686 6.058-1.652 8.112C20.709 16.459 19.257 16 18 16s-2.709.458-4.178 1.249c.033-2.055-.486-5.061-1.652-8.112C10.2 3.977 2.668-.173 2.201.005c-.455.174 4.268 16.044 7.025 20.838C6.805 23.405 5 26.661 5 29.828c0 3.234 1.635 5.14 4 5.94 2.531.857 5-.94 9-.94s6.469 1.798 9 .94c2.365-.801 4-2.706 4-5.94 0-3.166-1.805-6.423-4.225-8.984C29.53 16.049 34 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f431.svg b/browser/components/torpreferences/content/bridgemoji/1f431.svg new file mode 100644 index 0000000000000..cc75dcc68f5a8 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f431.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M32.348 13.999s3.445-8.812 1.651-11.998c-.604-1.073-8 1.998-10.723 5.442 0 0-2.586-.86-5.276-.86s-5.276.86-5.276.86C10.001 3.999 2.605.928 2.001 2.001.207 5.187 3.652 13.999 3.652 13.999c-.897 1.722-1.233 4.345-1.555 7.16-.354 3.086.35 5.546.658 6.089.35.617 2.123 2.605 4.484 4.306 3.587 2.583 8.967 3.445 10.761 3.445s7.174-.861 10.761-3.445c2.361-1.701 4.134-3.689 4.484-4.306.308-.543 1.012-3.003.659-6.0 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f432.svg b/browser/components/torpreferences/content/bridgemoji/1f432.svg new file mode 100644 index 0000000000000..1c1b4347daa1c --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f432.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#3E721D" d="M35.125 13.344c0-1 .771-2.327.771-2.635 0-.656-1.553-.421-1.626-1.046-.209-1.794 1.887-3.318-1.745-3.312-1.352.002-.274-1.768-.274-2.725 0-.957-2.596-.145-3.552-.145-.957 0-.957-2.87-1.913-2.87-2.87 0-3.827 2.87-4.783 2.87-.957 0-1.744-3.621-2.87-2.87-2.87 1.913-3.826 7.653-3.826 7.653s4.783-3.826 10.522-2.87c5.345.891 4.79 10.821 5.641 16.888L24.609 36h3.359c.344-1.5 1.939-.529 2.375-1.688.381-1.016-.67- [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f433.svg b/browser/components/torpreferences/content/bridgemoji/1f433.svg new file mode 100644 index 0000000000000..f00ea1033e029 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f433.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#3B88C3" d="M32 12c2.122-2.122 5 14.312-3 21-2.757 2.305-6 2.969-8 2.969-2.371 0-10.029.031-13 .031-7.18 0-8-4.925-8-11s.82-11 8-11c6 0 10 2 13 3.996 4.977 3.312 5.992 3.861 8 2.004 3.213-2.97 1-6 3-8z"/><path fill="#55ACEE" d="M34.003 23c-.465 3.727-2.041 7.523-5.003 10-2.757 2.305-6 2.969-8 2.969-2.371 0-10.029.031-13 .031-4.035 0-6.062-1.555-7.062-3.996C.157 30.102 4 33 15 33c14 0 17-5 19.003-10z"/><path fill="#3B [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f434.svg b/browser/components/torpreferences/content/bridgemoji/1f434.svg new file mode 100644 index 0000000000000..9aa7d69356ae7 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f434.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#C1694F" d="M23.283 23.275s1.374 1.635 2.733 10.047c.143.883.201 1.775.217 2.678H36V7.448C31.613 3.975 25.601 3.259 18.322 5.69c0 0-5.408-3-6.147-3.739-.719-.72-1.857-1.556-1.235.35.364 1.112.764 2.373 2.358 4.862-3.436 2.036-4.513 4.68-8.558 13.341C1.652 27.12.08 29.269.937 31.797c1.13 3.337 5.316 5.595 8.844 3.021 1.919-1.4 2.246-3.913 6.225-6.223 3.653-.065 7.277-1.604 7.277-5.32z"/><path fill="#292F33" d="M36 6.0 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f435.svg b/browser/components/torpreferences/content/bridgemoji/1f435.svg new file mode 100644 index 0000000000000..ee6c57cf9e41a --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f435.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><ellipse transform="rotate(-14.999 5.05 17.456)" fill="#D79E84" cx="5.05" cy="17.455" rx="3.818" ry="5.455"/><ellipse transform="rotate(-75.001 31.05 17.455)" fill="#D79E84" cx="31.05" cy="17.455" rx="5.455" ry="3.818"/><path fill="#BF6952" d="M19.018 36h-2.036C10.264 36 3.75 30.848 3.75 23.636c0-4.121 1.527-6.182 1.527-6.182s-.509-2.061-.509-4.121C4.768 7.152 11.282 2 18 2c6.718 0 13.232 6.182 13.232 11.333 0 2.061-.509 4.121-. [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f436.svg b/browser/components/torpreferences/content/bridgemoji/1f436.svg new file mode 100644 index 0000000000000..8b2e685804d95 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f436.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DD2E44" d="M15 27v6s0 3 3 3 3-3 3-3v-6h-6z"/><path fill="#BE1931" d="M15 33l.001.037c1.041-.035 2.016-.274 2.632-1.286.171-.281.563-.281.735 0 .616 1.011 1.591 1.251 2.632 1.286V27h-6v6z"/><path fill="#D99E82" d="M31.954 21.619c0 6.276-5 6.276-5 6.276h-18s-5 0-5-6.276c0-6.724 5-18.619 14-18.619s14 12.895 14 18.619z"/><path fill="#F4C7B5" d="M18 20c-7 0-10 3.527-10 6.395 0 3.037 2.462 5.5 5.5 5.5 1.605 0 3.042-.664 4 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f437.svg b/browser/components/torpreferences/content/bridgemoji/1f437.svg new file mode 100644 index 0000000000000..49175ea42aa23 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f437.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F4ABBA" d="M34.193 13.329c.387-.371.733-.795 1.019-1.28 1.686-2.854.27-10.292-.592-10.8-.695-.411-5.529 1.05-8.246 3.132C23.876 2.884 21.031 2 18 2c-3.021 0-5.856.879-8.349 2.367C6.93 2.293 2.119.839 1.424 1.249c-.861.508-2.276 7.947-.592 10.8.278.471.615.884.989 1.249C.666 15.85 0 18.64 0 21.479 0 31.468 8.011 34 18 34s18-2.532 18-12.521c0-2.828-.66-5.606-1.807-8.15z"/><path fill="#EA596E" d="M7.398 5.965c-2.166-1. [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f43a.svg b/browser/components/torpreferences/content/bridgemoji/1f43a.svg new file mode 100644 index 0000000000000..af402057ef411 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f43a.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#66757F" d="M14.858 9.497c.475 2.326-.182 4.236-2.921 4.638-2.741.403-6.7 3.898-8.848-1.798C1.844 9.038 1.092 2.234 2.628 2.009c1.537-.226 11.756 5.162 12.23 7.488z"/><path fill="#CCD6DD" d="M12.784 9.851c.865 1.392-2.205 3.833-3.844 4.568-1.639.736-2.915-.66-4.173-4.1-.55-1.503-1.234-5.532-.634-5.802.599-.268 7.785 3.942 8.651 5.334z"/><path fill="#66757F" d="M21.372 9.497c-.458 2.326.176 4.236 2.818 4.638 2.644.403 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f43b.svg b/browser/components/torpreferences/content/bridgemoji/1f43b.svg new file mode 100644 index 0000000000000..50224417b0cef --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f43b.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><circle fill="#C1694F" cx="7" cy="6" r="6"/><circle fill="#C1694F" cx="29" cy="6" r="6"/><circle fill="#E6AAAA" cx="7" cy="6" r="4"/><circle fill="#E6AAAA" cx="29" cy="6" r="4"/><path fill="#C1694F" d="M35 22S33.692 0 18 0 1 22 1 22c0 5.872 4.499 10.323 12.216 11.61C14.311 35.06 16.044 36 18 36s3.688-.94 4.784-2.39C30.501 32.323 35 27.872 35 22z"/><circle fill="#DD2E44" cx="18" cy="30" r="4"/><path fill="#D99E82" d="M18 20S7 23. [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f43f.svg b/browser/components/torpreferences/content/bridgemoji/1f43f.svg new file mode 100644 index 0000000000000..3676874901703 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f43f.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#AD743D" d="M35.432 22.773c-.195.858-.638 1.773-1.022 2.159 1.399-4.418 1.399-9.111-2.25-11.167.112 1.107-.11 1.691-.265 2.153-.21-2.219-.578-3.744-2.158-4.927-1.82-1.363-2.611-.452-.736 3.765 2.2 4.945 1.475 8.603.827 11.216-.038.154-.08.29-.12.439.804-5.765-.989-11.722-6.825-14.915-2.989-1.636-5.211-1.852-5.329-3.037-.135-1.377-1.218-3.698-3.811-5.327.444-1.309-.485-2.787-1.117-2.841-.631-.054-2.024 1.039-2.16 2.52 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f441.svg b/browser/components/torpreferences/content/bridgemoji/1f441.svg new file mode 100644 index 0000000000000..bd1a45e4e6e44 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f441.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#E1E8ED" d="M35.059 18c0 3.304-7.642 11-17.067 11C8.566 29 .925 22.249.925 18c0-3.314 34.134-3.314 34.134 0z"/><path fill="#292F33" d="M35.059 18H.925c0-3.313 7.642-11 17.067-11s17.067 7.686 17.067 11z"/><path fill="#F5F8FA" d="M33.817 18c0 2.904-7.087 9.667-15.826 9.667-8.74 0-15.825-5.935-15.825-9.667 0-2.912 7.085-9.666 15.825-9.666C26.73 8.333 33.817 15.088 33.817 18z"/><circle fill="#8B5E3C" cx="18" cy="18" r="8 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f451.svg b/browser/components/torpreferences/content/bridgemoji/1f451.svg new file mode 100644 index 0000000000000..4db8d2bc357e6 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f451.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F4900C" d="M14.174 17.075L6.75 7.594l-3.722 9.481z"/><path fill="#F4900C" d="M17.938 5.534l-6.563 12.389H24.5z"/><path fill="#F4900C" d="M21.826 17.075l7.424-9.481 3.722 9.481z"/><path fill="#FFCC4D" d="M28.669 15.19L23.887 3.523l-5.88 11.668-.007.003-.007-.004-5.88-11.668L7.331 15.19C4.197 10.833 1.28 8.042 1.28 8.042S3 20.75 3 33h30c0-12.25 1.72-24.958 1.72-24.958s-2.917 2.791-6.051 7.148z"/><circle fill="#5C913B" [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f455.svg b/browser/components/torpreferences/content/bridgemoji/1f455.svg new file mode 100644 index 0000000000000..1db482028323c --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f455.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#3B88C3" d="M11 2C8 2 0 4 0 6s1 7 2 9 8 0 9-1 2-12 0-12z"/><path fill="#55ACEE" d="M1 4.717C.352 5.088 0 5.565 0 6c0 2 1 7 2 9 .281.562 1.039.777 2 .85C3 13 2 9 1 4.717z"/><path fill="#3B88C3" d="M25 2c3 0 11 2 11 4s-1 7-2 9-8 0-9-1-2-12 0-12z"/><path fill="#55ACEE" d="M35 4.717c.648.371 1 .848 1 1.283 0 2-1 7-2 9-.281.562-1.039.777-2 .85C33 13 34 9 35 4.717z"/><path fill="#3B88C3" d="M25 2h-1.068C23.515 3.695 21.021 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f457.svg b/browser/components/torpreferences/content/bridgemoji/1f457.svg new file mode 100644 index 0000000000000..29cc45c742cf0 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f457.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#55ACEE" d="M22.42 11.847L26 2s-.398.002-1 .034V0h-2v2.219c-2.271.302-5 1.028-5 2.781 0-1.753-2.729-2.479-5-2.781V0h-2v2.034C10.398 2.002 10 2 10 2l3.581 9.847L1 25.643S7 36 18 36s17-10.357 17-10.357L22.42 11.847z"/><path fill="#BBDDF5" d="M13 11h10v2H13z"/><path fill="#3B88C3" d="M15 13s-6.734 8.106-5.051 9.006C11.633 22.907 15 13 15 13zm6.096 0s6.734 8.105 5.051 9.007c-1.684.9-5.051-9.007-5.051-9.007zM18 13s-2 11 0 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f45f.svg b/browser/components/torpreferences/content/bridgemoji/1f45f.svg new file mode 100644 index 0000000000000..f0c998c631359 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f45f.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#8899A6" d="M24.161 10.166l-.676-2.034c-.134-.302-.49-.43-.781-.275-.918.487-2.944 1.318-3.684 1.575 1.419.505 3.499 1.503 4.511 1.396.384-.04.787-.308.63-.662zm10.21 24.574c-.399.225-6.509 1.692-18.621-8.906C12.083 22.625 1.2 12.879 1.341 12.547c0 0-.329.36-.602.736-.197.271-.319.559-.274.848.31 1.967 3.112 3.819 6.962 6.781l.549.422.363.279c.588.452 2.316 1.815 4.329 3.403 2.753 2.171 8.284 6.49 8.445 6.61 2.12 1.5 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f47d.svg b/browser/components/torpreferences/content/bridgemoji/1f47d.svg new file mode 100644 index 0000000000000..f6e98d1c1403d --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f47d.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#CCD6DD" d="M35 17c0 9.389-13.223 19-17 19-3.778 0-17-9.611-17-19S8.611 0 18 0s17 7.611 17 17z"/><path fill="#292F33" d="M13.503 14.845c3.124 3.124 4.39 6.923 2.828 8.485-1.562 1.562-5.361.297-8.485-2.828-3.125-3.124-4.391-6.923-2.828-8.485s5.361-.296 8.485 2.828zm8.994 0c-3.124 3.124-4.39 6.923-2.828 8.485 1.562 1.562 5.361.297 8.485-2.828 3.125-3.125 4.391-6.923 2.828-8.485-1.562-1.562-5.361-.297-8.485 2.828zM18 31 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f484.svg b/browser/components/torpreferences/content/bridgemoji/1f484.svg new file mode 100644 index 0000000000000..af7e861693285 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f484.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#EA596E" d="M16.522.232c2.246 0 4.832 1.375 6.703 3.249C25.098 5.355 27 7.408 27 9.479v17.204l-15.974.031V9.582c-.093-1.506 1.075-9.35 5.496-9.35"/><path fill="#DD2E44" d="M19 11.378V28c0 1.104.896 0 2 0v2c1.104 0 2-.896 2-2V12.333c-1.258-.104-2.65-.262-4-.955z"/><path fill="#F4ABBA" d="M22.072 3.455c2.664 2.391 4.277 5.236 2.961 6.699-1.314 1.463-5.06.991-7.721-1.4-2.661-2.39-3.753-5.516-2.439-6.979 1.316-1.463 4.53 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f488.svg b/browser/components/torpreferences/content/bridgemoji/1f488.svg new file mode 100644 index 0000000000000..33ed332874ddf --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f488.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><circle fill="#CCD6DD" cx="18" cy="6" r="6"/><path fill="#FFF" d="M11 12h14v21H11z"/><path fill="#DD2E44" d="M11 28.487L20.251 33H25v-2.134l-14-6.83z"/><path fill="#55ACEE" d="M11 19.585l14 6.83v-4.45l-14-6.831z"/><path fill="#DD2E44" d="M13.697 12L25 17.514V12z"/><path fill="#99AAB5" d="M27 11c0 1.104-.896 2-2 2H11c-1.104 0-2-.896-2-2s.896-2 2-2h14c1.104 0 2 .896 2 2zm0 23c0 1.104-.896 2-2 2H11c-1.104 0-2-.896-2-2s.896-2 2-2h14 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f48d.svg b/browser/components/torpreferences/content/bridgemoji/1f48d.svg new file mode 100644 index 0000000000000..0834165960a70 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f48d.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#9AAAB4" d="M18 12c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm0 20c-4.418 0-8-3.582-8-8s3.582-8 8-8 8 3.582 8 8-3.582 8-8 8z"/><path fill="#5DADEC" d="M29 5l-4-5H11L7 5l11 9z"/><path fill="#8CCAF7" d="M29 5l-4-5H11L7 5h11z"/><path fill="#5DADEC" d="M29 5l-4-5h-7v5h1z"/><path fill="#8CCAF7" d="M18 5h11l-11 9z"/><path fill="#9AAAB4" d="M25 13c0 1.657-1.343 3-3 3h-8c-1.657 0-3-1.343-3-3s1.343- [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f48e.svg b/browser/components/torpreferences/content/bridgemoji/1f48e.svg new file mode 100644 index 0000000000000..a379f7195f971 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f48e.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#BDDDF4" d="M13 3H7l-7 9h10z"/><path fill="#5DADEC" d="M36 12l-7-9h-6l3 9z"/><path fill="#4289C1" d="M26 12h10L18 33z"/><path fill="#8CCAF7" d="M10 12H0l18 21zm3-9l-3 9h16l-3-9z"/><path fill="#5DADEC" d="M18 33l-8-21h16z"/></svg> \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f490.svg b/browser/components/torpreferences/content/bridgemoji/1f490.svg new file mode 100644 index 0000000000000..f080ef7f15932 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f490.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#3E721D" d="M35.01 30.967c-1.385-2.226-3.34-5.001-5.265-7.888-5.141-8.772-1.513-18.411-2.893-21.511-.56-1.259-3.879.966-5.555 4.563-.356-.106-.747-.156-1.17-.148.155-2.397.293-4.31-.193-5.403-.71-1.599-5.867 2.418-6.463 7.729-1.848 1.006-3.223 1.957-3.223 1.957s-.95 1.375-1.954 3.223c-5.312.594-9.331 5.753-7.732 6.464 1.097.488 3.015.349 5.421.192-.006.42.046.807.154 1.159-3.61 1.674-5.848 5.006-4.586 5.567 3.282 1.4 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f4a1.svg b/browser/components/torpreferences/content/bridgemoji/1f4a1.svg new file mode 100644 index 0000000000000..88b62e387aea1 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f4a1.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFD983" d="M29 11.06c0 6.439-5 7.439-5 13.44 0 3.098-3.123 3.359-5.5 3.359-2.053 0-6.586-.779-6.586-3.361C11.914 18.5 7 17.5 7 11.06 7 5.029 12.285.14 18.083.14 23.883.14 29 5.029 29 11.06z"/><path fill="#CCD6DD" d="M22.167 32.5c0 .828-2.234 2.5-4.167 2.5-1.933 0-4.167-1.672-4.167-2.5 0-.828 2.233-.5 4.167-.5 1.933 0 4.167-.328 4.167.5z"/><path fill="#FFCC4D" d="M22.707 10.293c-.391-.391-1.023-.391-1.414 0L18 13.586 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f4a7.svg b/browser/components/torpreferences/content/bridgemoji/1f4a7.svg new file mode 100644 index 0000000000000..3116ec31793c1 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f4a7.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#5DADEC" d="M28.344 17.768L18.148 1.09 8.7 17.654c-2.2 3.51-2.392 8.074-.081 11.854 3.285 5.373 10.363 7.098 15.811 3.857 5.446-3.24 7.199-10.22 3.914-15.597z"/></svg> \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f4b3.svg b/browser/components/torpreferences/content/bridgemoji/1f4b3.svg new file mode 100644 index 0000000000000..97641af46a3e9 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f4b3.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFAC33" d="M4 5C1.791 5 0 6.791 0 9v18c0 2.209 1.791 4 4 4h28c2.209 0 4-1.791 4-4V9s0-4-4-4H4z"/><path fill="#292F33" d="M0 10h36v5H0z"/><path fill="#F4F7F9" d="M4 19h28v6H4z"/><path fill="#8899A6" d="M19 24c-1.703 0-2.341-1.21-2.469-1.801-.547.041-1.08.303-1.805.764C13.961 23.449 13.094 24 12 24c-1.197 0-1.924-.675-2-2-.003-.056.038-.188.021-.188-1.858 0-3.202 1.761-3.215 1.779-.195.267-.499.409-.806.409-.206 0-.41 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f4bf.svg b/browser/components/torpreferences/content/bridgemoji/1f4bf.svg new file mode 100644 index 0000000000000..6824a06417d6f --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f4bf.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#8899A6" d="M36 18c0 9.941-8.059 18-18 18S0 27.941 0 18 8.059 0 18 0s18 8.059 18 18zm-18-3c-1.657 0-3 1.343-3 3s1.343 3 3 3 3-1.343 3-3-1.343-3-3-3z"/><path fill="#CCD6DD" d="M13.288 17.476c.122-1.104.598-2.101 1.343-2.846L6.686 6.686C4.182 9.19 2.51 12.521 2.102 16.233l11.186 1.243zm9.425 1.048c-.122 1.104-.598 2.101-1.343 2.846l7.944 7.944c2.504-2.504 4.176-5.835 4.584-9.547l-11.185-1.243z"/><path fill="#F5F8FA" d= [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f4cc.svg b/browser/components/torpreferences/content/bridgemoji/1f4cc.svg new file mode 100644 index 0000000000000..2ab6da3e14729 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f4cc.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#BE1931" d="M23.651 23.297L12.702 12.348l9.386-7.821 9.385 9.385z"/><path fill="#DD2E44" d="M34.6 13.912c-1.727 1.729-4.528 1.729-6.255 0l-6.257-6.256c-1.729-1.727-1.729-4.53 0-6.258 1.726-1.727 4.528-1.727 6.257 0L34.6 7.656c1.728 1.727 1.728 4.529 0 6.256z"/><path fill="#99AAB5" d="M14 17.823S-.593 35.029.188 35.813C.97 36.596 18.177 22 18.177 22L14 17.823z"/><path fill="#DD2E44" d="M25.215 27.991c-1.726 1.729-4.52 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f4ce.svg b/browser/components/torpreferences/content/bridgemoji/1f4ce.svg new file mode 100644 index 0000000000000..284cf6674b654 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f4ce.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#99AAB5" d="M35.354 25.254c.217-2.391-.513-4.558-2.057-6.102L17.033 2.89c-.391-.391-1.024-.391-1.414 0-.391.391-.391 1.024 0 1.414l16.264 16.263c1.116 1.117 1.642 2.717 1.479 4.506-.159 1.748-.957 3.456-2.188 4.686-1.23 1.23-2.938 2.027-4.685 2.187-1.781.161-3.39-.362-4.506-1.479L3.598 12.082c-.98-.98-1.059-2.204-.953-3.058.15-1.196.755-2.401 1.66-3.307 1.7-1.7 4.616-2.453 6.364-.707l14.85 14.849c1.119 1.12.026 2.803 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f4d5.svg b/browser/components/torpreferences/content/bridgemoji/1f4d5.svg new file mode 100644 index 0000000000000..701ff017c5049 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f4d5.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#A0041E" d="M35 26c0 2.209-1.791 4-4 4H5c-2.209 0-4-1.791-4-4V6.313C1 4.104 6.791 0 9 0h20.625C32.719 0 35 2.312 35 5.375V26z"/><path fill="#CCD6DD" d="M33 30c0 2.209-1.791 4-4 4H7c-2.209 0-4-1.791-4-4V6c0-4.119-.021-4 5-4h21c2.209 0 4 1.791 4 4v24z"/><path fill="#E1E8ED" d="M31 31c0 1.657-1.343 3-3 3H4c-1.657 0-3-1.343-3-3V7c0-1.657 1.343-3 3-3h24c1.657 0 3 1.343 3 3v24z"/><path fill="#BE1931" d="M31 32c0 2.209-1.79 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f4e1.svg b/browser/components/torpreferences/content/bridgemoji/1f4e1.svg new file mode 100644 index 0000000000000..dcb02946d303e --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f4e1.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#99AAB5" d="M10.746 21.521c1.668 0 7.43 4.345 7.427 9.701.003 5.358-14.853 5.358-14.854-.001.001-5.356 5.759-9.7 7.427-9.7z"/><path fill="#CCD6DD" d="M8.541 25.182c8.839 8.84 17.337 5.163 20.033 2.469 2.695-2.696-.158-9.916-6.371-16.129C15.988 5.308 8.767 2.455 6.072 5.15 3.377 7.845-.299 16.343 8.541 25.182z"/><path fill="#66757F" d="M12.443 21.278c6.214 6.214 13.434 9.066 16.13 6.372 2.695-2.696-.158-9.916-6.371-16 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f4e2.svg b/browser/components/torpreferences/content/bridgemoji/1f4e2.svg new file mode 100644 index 0000000000000..8bd0c94fb602a --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f4e2.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#BE1931" d="M12.908 30.75c-.276 2.209-2.291 3-4.5 3s-3.776-1.791-3.5-4l1-9c.276-2.209 2.291-4 4.5-4s6.468 0 3.5 4-1 10-1 10z"/><path fill="#CCD6DD" d="M35.825 14.75c0 6.902-1.544 12.5-3.45 12.5-1.905 0-20.45-5.598-20.45-12.5 0-6.903 18.545-12.5 20.45-12.5 1.906 0 3.45 5.597 3.45 12.5z"/><ellipse fill="#66757F" cx="32.375" cy="14.75" rx="3.45" ry="12.5"/><path fill="#DD2E44" d="M17.925 21.75l-14-1c-5 0-5-12 0-12l14-1c [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f4fb.svg b/browser/components/torpreferences/content/bridgemoji/1f4fb.svg new file mode 100644 index 0000000000000..33808ad72ba8f --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f4fb.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#292F33" d="M2.697 12.389c-.391.391-.391 1.023 0 1.414s1.023.391 1.414 0l9.192-9.192c.391-.391.391-1.023 0-1.414s-1.023-.391-1.414 0l-9.192 9.192z"/><path fill="#99AAB5" d="M36 32c0 4-4 4-4 4H4s-4 0-4-4V14s0-4 4-4h28c4 0 4 4 4 4v18z"/><path fill="#292F33" d="M15.561 3.061c-.391.391-1.023.391-1.414 0l-.707-.707c-.391-.391-.391-1.023 0-1.414s1.023-.391 1.414 0l.707.707c.39.39.39 1.023 0 1.414z"/><circle fill="#292F33" [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f50b.svg b/browser/components/torpreferences/content/bridgemoji/1f50b.svg new file mode 100644 index 0000000000000..66d420fc301e9 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f50b.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#CCD6DD" d="M24 4c0 2.209-1.791 4-4 4h-4c-2.209 0-4-1.791-4-4s1.791-4 4-4h4c2.209 0 4 1.791 4 4z"/><path fill="#E1E8ED" d="M30 32c0 2.209-1.791 4-4 4H10c-2.209 0-4-1.791-4-4V8c0-2.209 1.791-4 4-4h16c2.209 0 4 1.791 4 4v24z"/><path fill="#77B255" d="M6 8h24v24H6z"/><path fill="#F5F8FA" d="M23 14h-3v-3c0-.552-.447-1-1-1h-2c-.552 0-1 .448-1 1v3h-3c-.553 0-1 .448-1 1v2c0 .553.447 1 1 1h3v3c0 .553.448 1 1 1h2c.553 0 1-.44 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f511.svg b/browser/components/torpreferences/content/bridgemoji/1f511.svg new file mode 100644 index 0000000000000..7b4dc2a73dc75 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f511.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#C1694F" d="M32.614 3.414C28.31-.89 21.332-.89 17.027 3.414c-3.391 3.392-4.098 8.439-2.144 12.535l-3.916 3.915c-.64.641-.841 1.543-.625 2.359l-1.973 1.972c-.479-.48-1.252-.48-1.731 0l-1.731 1.732c-.479.479-.479 1.253 0 1.732l-.867.864c-.479-.478-1.253-.478-1.731 0l-.866.867c-.479.479-.479 1.253 0 1.732.015.016.036.02.051.033-.794 1.189-.668 2.812.382 3.863 1.195 1.195 3.134 1.195 4.329 0L20.08 21.144c4.097 1.955 9.14 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f525.svg b/browser/components/torpreferences/content/bridgemoji/1f525.svg new file mode 100644 index 0000000000000..e7dee6dd270be --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f525.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F4900C" d="M35 19c0-2.062-.367-4.039-1.04-5.868-.46 5.389-3.333 8.157-6.335 6.868-2.812-1.208-.917-5.917-.777-8.164.236-3.809-.012-8.169-6.931-11.794 2.875 5.5.333 8.917-2.333 9.125-2.958.231-5.667-2.542-4.667-7.042-3.238 2.386-3.332 6.402-2.333 9 1.042 2.708-.042 4.958-2.583 5.208-2.84.28-4.418-3.041-2.963-8.333C2.52 10.965 1 14.805 1 19c0 9.389 7.611 17 17 17s17-7.611 17-17z"/><path fill="#FFCC4D" d="M28.394 23.99 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f526.svg b/browser/components/torpreferences/content/bridgemoji/1f526.svg new file mode 100644 index 0000000000000..1aff8ae2c0d7f --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f526.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#66757F" d="M23 17l1-1s1-1 2 0l2 2s1 1 0 2l-1 1-4-4z"/><path fill="#8899A6" d="M34.879 27.879c1.166 1.166 1.166 3.076 0 4.242l-2.758 2.758c-1.166 1.166-3.076 1.166-4.242 0L9.121 16.121c-1.167-1.166-1.167-3.076 0-4.242l2.758-2.758c1.167-1.167 3.076-1.167 4.242 0l18.758 18.758z"/><path fill="#66757F" d="M20.879 10.879c1.166 1.167 1.166 3.076 0 4.242l-5.758 5.758c-1.167 1.166-3.076 1.166-4.242 0L6 16s-1-1 0-2l8-8c1-1 2 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f52c.svg b/browser/components/torpreferences/content/bridgemoji/1f52c.svg new file mode 100644 index 0000000000000..e910ee894e4a8 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f52c.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><g fill="#66757F"><path d="M19.78 21.345l-6.341-6.342-.389 4.38 2.35 2.351z"/><path d="M15.4 22.233c-.132 0-.259-.053-.354-.146l-2.351-2.351c-.104-.104-.158-.25-.145-.397l.389-4.38c.017-.193.145-.359.327-.425.182-.067.388-.021.524.116l6.341 6.342c.138.138.183.342.116.524s-.232.31-.426.327l-4.379.389-.042.001zm-1.832-3.039l2.021 2.021 3.081-.273-4.828-4.828-.274 3.08z"/></g><path fill="#8899A6" d="M31 32h-3c0-3.314-2.63-6-5.875-6 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f52d.svg b/browser/components/torpreferences/content/bridgemoji/1f52d.svg new file mode 100644 index 0000000000000..113c0330a8f3e --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f52d.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><circle fill="#9AAAB4" cx="17" cy="20" r="3"/><path fill="#DA2F47" d="M19.235 17.059c-.259.485-.868.671-1.353.412L5.529 10.883c-.485-.259-.67-.868-.412-1.353L7.94 4.235c.259-.485.868-.67 1.353-.412l12.353 6.588c.485.259.671.868.412 1.353l-2.823 5.295z"/><path fill="#DA2F47" d="M31.177 22.293c-.259.485-.868.671-1.354.412l-9.705-5.176c-.485-.259-.671-.868-.412-1.354l1.882-3.529c.259-.485.868-.67 1.354-.412l9.705 5.176c.485.259.671 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f52e.svg b/browser/components/torpreferences/content/bridgemoji/1f52e.svg new file mode 100644 index 0000000000000..d7e09232d7e87 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f52e.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#BF6952" d="M28.736 28.767l-21.458.076-1.649 4.835c-.062.187-.101.387-.073.582.145.984.993 1.74 2.017 1.74h20.894c1.024 0 1.872-.756 2.017-1.74.029-.195-.01-.395-.073-.582l-1.675-4.911z"/><path fill="#854836" d="M28.736 28.767l-.19-.556c-.199-.598-.759-1.001-1.389-1.001H8.883c-.63 0-1.19.403-1.389 1.001l-.216.632c2.928 2.344 6.636 3.754 10.678 3.754 4.088 0 7.837-1.438 10.78-3.83z"/><circle fill="#AA8DD8" cx="17.956" [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f54a.svg b/browser/components/torpreferences/content/bridgemoji/1f54a.svg new file mode 100644 index 0000000000000..613e4956d71d0 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f54a.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#5C913B" d="M.794 16.112c1 0 5.875 1.344 6.5 2.312L6.013 18.3s-3.906-1.25-4.906-1.25c-1.001 0-.313-.938-.313-.938z"/><path fill="#99AAB5" d="M11 2c1 1 3 7 3 10s-2 6 2 8 5.001-1 5.001-5S20 7 19 5s-2 0-2 0-1-4-2-4-1 2-1 2-2-2-3-2 0 1 0 1z"/><path fill="#CCD6DD" d="M10 15c3 0 4 4 6 4s1-3 3-3 10-5 10-11 3-3 3-1c1 0 2 1.586 2 3 0 1 0 2-1 3 1 0 2 2 1 3 1 3-1 6-3 7 0 1-2 3-4 2 0 0-1 3-3 2 0 0 3.052 1.684 4 2 3 1 7 1 7 1s0 1 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f58c.svg b/browser/components/torpreferences/content/bridgemoji/1f58c.svg new file mode 100644 index 0000000000000..b39bcbc9dd7e6 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f58c.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#3B88C3" d="M14.57 27.673c2.814-1.692 6.635-3.807 9.899-7.071 7.03-7.029 12.729-16.97 11.314-18.385C34.369.803 24.428 6.502 17.398 13.531c-3.265 3.265-5.379 7.085-7.071 9.899l4.243 4.243z"/><path fill="#C1694F" d="M.428 34.744s7.071 1.414 12.021-3.536c2.121-2.121 2.121-4.949 2.121-4.949l-2.829-2.829s-3.535.708-4.95 2.122c-1.414 1.414-2.518 4.232-2.888 5.598-.676 2.502-3.475 3.594-3.475 3.594z"/><path fill="#CCD6DD" d [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f58d.svg b/browser/components/torpreferences/content/bridgemoji/1f58d.svg new file mode 100644 index 0000000000000..5a4cbe8e1a8c3 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f58d.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DD2E44" d="M35.702 7.477L28.522.298c-.396-.397-1.038-.397-1.436 0L3.395 23.989c-.397.397-.397 1.038 0 1.437.72.719-3.14 7.959-3.395 8.496L2.068 36c.536-.255 7.785-4.115 8.506-3.395.397.397 1.039.397 1.436 0L35.702 8.913c.397-.396.397-1.039 0-1.436z"/><path fill="#EA596E" d="M4.139 23.24L26.407.972l8.62 8.62L12.759 31.86z"/><path fill="#292F33" d="M23.534 3.846l1.437-1.436 8.62 8.62-1.437 1.436zM5.576 21.803l1.436-1. [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f5ff.svg b/browser/components/torpreferences/content/bridgemoji/1f5ff.svg new file mode 100644 index 0000000000000..5ba18be1f9340 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f5ff.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#66757F" d="M8 27s-2 4-2 6 4 3 12 3 12-1 12-3-2-6-2-6H8zM9 6C6 6 6 7 5 16c-.994 8.945 0 10 4 10 2 0 2-20 0-20zm18 0c3 0 3 1 4 10 .994 8.945 0 10-4 10-2 0-2-20 0-20z"/><path fill="#CCD6DD" d="M8 3s1-3 10-3 10 3 10 3 1 6 1 14-1 14-1 14-1 2-10 2-10-2-10-2-1-3-1-14S8 3 8 3z"/><path fill="#66757F" d="M28 8c0-1-3-4-10-4S8 7 8 8c0 .807 4.548 1.612 6.311 1.894C14.999 12.548 15 18 15 18c.805-3.218.315-7.079.093-8.467C15.295 8 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f680.svg b/browser/components/torpreferences/content/bridgemoji/1f680.svg new file mode 100644 index 0000000000000..8658d4397b8cb --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f680.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#A0041E" d="M1 17l8-7 16 1 1 16-7 8s.001-5.999-6-12-12-6-12-6z"/><path fill="#FFAC33" d="M.973 35s-.036-7.979 2.985-11S15 21.187 15 21.187 14.999 29 11.999 32c-3 3-11.026 3-11.026 3z"/><circle fill="#FFCC4D" cx="8.999" cy="27" r="4"/><path fill="#55ACEE" d="M35.999 0s-10 0-22 10c-6 5-6 14-4 16s11 2 16-4c10-12 10-22 10-22z"/><path d="M26.999 5c-1.623 0-3.013.971-3.641 2.36.502-.227 1.055-.36 1.641-.36 2.209 0 4 1.791 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f681.svg b/browser/components/torpreferences/content/bridgemoji/1f681.svg new file mode 100644 index 0000000000000..8b7a40320cb31 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f681.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#66757F" d="M16.26 26h2v5h-2zm-8 0h2v5h-2z"/><ellipse fill="#99AAB5" cx="6.259" cy="3" rx="6" ry="1"/><ellipse fill="#99AAB5" cx="20.259" cy="3" rx="6" ry="1"/><path fill="#99AAB5" d="M12.26 3h2v6h-2z"/><ellipse fill="#66757F" cx="13.259" cy="3" rx="2" ry="1"/><path fill="#FFCC4D" d="M34.259 10c0-3 0-7-1-7s-3 4-4 6 5 1 5 1z"/><path fill="#FFCC4D" d="M34.259 10c0-2.209-8-3-19-3h-2C6.632 7 .509 12.451.509 18.25S4.259 2 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f686.svg b/browser/components/torpreferences/content/bridgemoji/1f686.svg new file mode 100644 index 0000000000000..3f5f5b85617cc --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f686.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#A7A9AC" d="M2 36h32L23 19H13z"/><path fill="#58595B" d="M5 36h26L21 19h-6z"/><path fill="#808285" d="M8 36h20l-9-17h-2z"/><path fill="#A7A9AC" d="M28 35c0 .553-.447 1-1 1H9c-.552 0-1-.447-1-1 0-.553.448-1 1-1h18c.553 0 1 .447 1 1zm-2-4c0 .553-.447 1-1 1H11c-.552 0-1-.447-1-1 0-.553.448-1 1-1h14c.553 0 1 .447 1 1z"/><path fill="#58595B" d="M27.076 25.3L23 19H13l-4.076 6.3c1.889 2.517 4.798 4.699 9.076 4.699 4.277 0 7 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f68b.svg b/browser/components/torpreferences/content/bridgemoji/1f68b.svg new file mode 100644 index 0000000000000..da204b81a3b09 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f68b.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#939598" d="M0 34h36v2H0z"/><path fill="#58595B" d="M10 32c0-1.657-1.344-3-3-3s-3 1.343-3 3 1.343 3 3 3 3-1.343 3-3z"/><path fill="#292F33" d="M9 32c0-1.105-.896-2-2-2s-2 .895-2 2 .896 2 2 2 2-.895 2-2z"/><circle fill="#58595B" cx="29" cy="32" r="3"/><circle fill="#292F33" cx="29" cy="32" r="2"/><path fill="#E6E7E8" d="M34 2H2c-.552 0-1-.448-1-1s.448-1 1-1h32c.553 0 1 .448 1 1s-.447 1-1 1z"/><path fill="#66757F" d="M [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f68d.svg b/browser/components/torpreferences/content/bridgemoji/1f68d.svg new file mode 100644 index 0000000000000..68ca65faa0734 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f68d.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#292F33" d="M11 34c0 1.104-.896 2-2 2H7c-1.104 0-2-.896-2-2v-7c0-1.104.896-2 2-2h2c1.104 0 2 .896 2 2v7zm20 0c0 1.104-.896 2-2 2h-2c-1.104 0-2-.896-2-2v-7c0-1.104.896-2 2-2h2c1.104 0 2 .896 2 2v7z"/><path fill="#99AAB5" d="M3 17c0 .553-.448 1-1 1H1c-.552 0-1-.447-1-1v-7c0-.552.448-1 1-1h1c.552 0 1 .448 1 1v7zm33 0c0 .553-.447 1-1 1h-1c-.553 0-1-.447-1-1v-7c0-.552.447-1 1-1h1c.553 0 1 .448 1 1v7z"/><path fill="#99AAB5 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f695.svg b/browser/components/torpreferences/content/bridgemoji/1f695.svg new file mode 100644 index 0000000000000..5446414a25448 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f695.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#CCD6DD" d="M21.377 15.449c.089.816-.83 1.495-2.053 1.515-1.223.02-2.095-.635-1.947-1.463l.356-2c.147-.829.938-1.5 1.767-1.5.828 0 1.572.662 1.661 1.478l.216 1.97z"/><path fill="#FFCC4D" d="M32.246 21h-.135l-.444-3c-.327-2.209-1.864-4-3.433-4H16.162c-1.569 0-3.574 1.791-4.478 4l-1.228 3H6.911c-2.073 0-4.104 1.791-4.538 4l-.588 3c-.001.008 0 .015-.002.021C.782 28.132 0 28.97 0 30c0 1.104.896 2 2 2h30c2.209 0 4-1.791 4 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f697.svg b/browser/components/torpreferences/content/bridgemoji/1f697.svg new file mode 100644 index 0000000000000..97b5f10d4c5a0 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f697.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DD2E44" d="M13 32h20s3 0 3-4c0-2 0-6-1-7s-8-7-11-7h-6c-3 0-10 7-10 7l-4 1s-3 1-3 3v3s-1 .338-1 1.957C0 32 2 32 2 32h11z"/><path fill="#BBDDF5" d="M20 16h-2c-2 0-8 6-8 6s4.997-.263 10-.519V16zm10 3c-1-1-5-3-7-3h-1v5.379c4.011-.204 7.582-.379 8-.379 1 0 1-1 0-2z"/><circle fill="#292F33" cx="10" cy="31" r="4"/><circle fill="#CCD6DD" cx="10" cy="31" r="2"/><circle fill="#292F33" cx="27" cy="31" r="4"/><circle fill="#CCD [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f69a.svg b/browser/components/torpreferences/content/bridgemoji/1f69a.svg new file mode 100644 index 0000000000000..7441d1bba8047 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f69a.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DD2E44" d="M36 27c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4v-3c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v3z"/><path fill="#FFCC4D" d="M19 13l-.979-1H7.146C4 12 3 14 3 14l-3 5.959V25h19V13z"/><path fill="#55ACEE" d="M9 20H2l2-4s1-2 3-2h2v6z"/><circle fill="#292F33" cx="9" cy="31" r="4"/><circle fill="#CCD6DD" cx="9" cy="31" r="2"/><circle fill="#292F33" cx="27" cy="31" r="4"/><circle fill="#CCD6DD" cx="27" cy="31" [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f69c.svg b/browser/components/torpreferences/content/bridgemoji/1f69c.svg new file mode 100644 index 0000000000000..014ca11d340ab --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f69c.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#CCD6DD" d="M11 11h3v9h-3z"/><path fill="#77B255" d="M24 26.157C24 28.832 22.354 31 20.325 31H4.709c-2.029 0-3.488-1.565-3.258-3.494l.625-5.241c.23-1.93 1.992-3.808 3.928-4.199l14.628-3.21C22.496 14.413 24 16.219 24 18.893v7.264z"/><path fill="#292F33" d="M16.535 24.167C16.239 26.283 17.791 28 20 28h9c2.209 0 4-1.717 4-3.833V8.833C33 6.716 31.547 5 29.755 5h-7.303c-1.792 0-3.484 1.716-3.78 3.833l-2.137 15.334z"/><pat [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f6a0.svg b/browser/components/torpreferences/content/bridgemoji/1f6a0.svg new file mode 100644 index 0000000000000..8510956dc2af6 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f6a0.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#58595B" d="M19 12V5h-2v7h-5v5h12v-5z"/><path fill="#FFD983" d="M34 28V18c0-2.209-1.791-4-4-4H6c-2.209 0-4 1.791-4 4v10h32z"/><path fill="#269" d="M2 22v6c0 4.418 3.582 8 8 8h16c4.418 0 8-3.582 8-8v-6H2z"/><path fill="#88C9F9" d="M2 18h6v9H2zm8 0h7v9h-7zm9 0h7v9h-7zm9 0h6v9h-6z"/><path fill="#6D6E71" d="M33.213 10.977L3.27 2.954c-.533-.144-.85-.691-.707-1.226.143-.533.691-.85 1.225-.707L33.73 9.045c.534.144.851.691.7 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f6a2.svg b/browser/components/torpreferences/content/bridgemoji/1f6a2.svg new file mode 100644 index 0000000000000..79077f00a46c9 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f6a2.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#292F33" d="M16 0h4v5h-4z"/><path fill="#D1D3D4" d="M16 2h4v4h-4z"/><path fill="#A7A9AC" d="M18 2h2v4h-2z"/><path fill="#66757F" d="M18 19H5s1.355 8 4.875 14C13.394 39 18 33 18 33s4.606 6 8.125 0C29.645 27 31 19 31 19H18z"/><path fill="#99AAB5" d="M18 19H5s1.355 8 4.875 14C13.394 39 18 33 18 33V19z"/><path fill="#55ACEE" d="M0 30h36v6H0z"/><path fill="#E6E7E8" d="M30 9h-2.45l-.242-4H8.692l-.241 4H6v6h2.088l-.242 4h20 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f6a4.svg b/browser/components/torpreferences/content/bridgemoji/1f6a4.svg new file mode 100644 index 0000000000000..7dfe5a6b81b24 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f6a4.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#5C913B" d="M33 27h-2l1-8h2z"/><path fill="#DD2E44" d="M1 14c9.055.053 11 1 17 2 2.959.493 7 1 11 1 2 0 4 1 4 4 0 2 .534 3.187-5.433 3.815C23.59 25.233 13 23 9 21c-6-3-9-7.005-8-7z"/><path fill="#55ACEE" d="M0 24h36v12H0z"/><path fill="#FFCC4D" d="M5 13c4 0 11 0 18 1s10 1 10 3v3c0 1.414-6.869.447-10 0-7-1-14-3-18-4-4.047-1.011-7-3 0-3z"/><path fill="#A0041E" d="M30.592 24.322c2.122-.539 2.403-1.307 2.418-2.361-1.263. [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f6f0.svg b/browser/components/torpreferences/content/bridgemoji/1f6f0.svg new file mode 100644 index 0000000000000..6d9bb3d2eaf15 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f6f0.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#99AAB5" d="M8.514 19.828L19.122 9.223l2.121 2.121L10.635 21.95z"/><path fill="#55ACEE" d="M8.515 29.728c-.781.781-2.047.781-2.828 0l-4.95-4.949c-.781-.781-.781-2.048 0-2.828L5.687 17c.781-.781 2.047-.781 2.828 0l4.95 4.95c.781.78.781 2.047 0 2.828l-4.95 4.95zm16.262-16.263c-.78.781-2.047.781-2.827 0L17 8.515c-.781-.781-.781-2.047 0-2.828l4.951-4.95c.781-.781 2.047-.781 2.828 0l4.949 4.95c.781.781.781 2.047.001 2.828 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f6f4.svg b/browser/components/torpreferences/content/bridgemoji/1f6f4.svg new file mode 100644 index 0000000000000..e217dc436402c --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f6f4.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><circle fill="#292F33" cx="4.5" cy="31.5" r="4.5"/><circle fill="#DD2E44" cx="4.5" cy="31.5" r="3"/><circle fill="#292F33" cx="31.5" cy="31.5" r="4.5"/><circle fill="#DD2E44" cx="31.5" cy="31.5" r="3"/><path fill="#55ACEE" d="M31.5 33h-20c-.825 0-1.5-.675-1.5-1.5s.675-1.5 1.5-1.5h20c.825 0 1.5.675 1.5 1.5s-.675 1.5-1.5 1.5z"/><path fill="#55ACEE" d="M26.012 31.746c-.003-.082-.012-.163-.012-.246 0-3.038 2.462-5.5 5.5-5.5 1.21 0 2 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f6f5.svg b/browser/components/torpreferences/content/bridgemoji/1f6f5.svg new file mode 100644 index 0000000000000..a1e0f4b99e20b --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f6f5.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F4900C" d="M32 24h-1c-.55 0-1-.45-1-1s.45-1 1-1h1c.55 0 1 .45 1 1s-.45 1-1 1"/><path fill="#292F33" d="M10 31.5c0 2.485-2.015 4.5-4.5 4.5S1 33.985 1 31.5 3.015 27 5.5 27s4.5 2.015 4.5 4.5m24 0c0 2.485-2.015 4.5-4.5 4.5S25 33.985 25 31.5s2.015-4.5 4.5-4.5 4.5 2.015 4.5 4.5"/><path fill="#99AAB5" d="M8 31.5C8 32.881 6.881 34 5.5 34S3 32.881 3 31.5 4.119 29 5.5 29 8 30.119 8 31.5m24 0c0 1.381-1.119 2.5-2.5 2.5S27 32.88 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f6f6.svg b/browser/components/torpreferences/content/bridgemoji/1f6f6.svg new file mode 100644 index 0000000000000..b6a2165254a33 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f6f6.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DD2E44" d="M33.793 17S32.476 20 18 20C3.523 20 1.973 17 1.973 17S-1 22.117 4.802 25c4.238 2.105 10.916-.131 12.723-.814 1.991.683 9.274 2.824 13.557.814 5.862-2.751 2.711-8 2.711-8z"/><path fill="#55ACEE" d="M0 24h36v12H0z"/><path fill="#FFAC33" d="M27.005 25.389c.206 0 .412-.079.569-.236.315-.315.315-.824 0-1.139l-8.861-8.86c-.315-.315-.824-.315-1.139 0-.315.315-.315.824 0 1.139l8.861 8.86c.158.157.364.236.57.236z" [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f6f8.svg b/browser/components/torpreferences/content/bridgemoji/1f6f8.svg new file mode 100644 index 0000000000000..5f015fe792bb0 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f6f8.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFD983" d="M32.831 20.425c-.689 3.241-9.21 6.221-17.314 4.499S.841 17.013 1.53 13.772s8.587-3.287 16.69-1.564 15.3 4.976 14.611 8.217z"/><path fill="#FFD983" d="M27 36l-2-14-17-5-8 19z"/><ellipse transform="rotate(-78 17.482 15.686)" fill="#67757F" cx="17.481" cy="15.685" rx="7.556" ry="17"/><path fill="#67757F" d="M.414 10.977l.414 2.315 32.866 6.986 1.412-2.126z"/><ellipse transform="rotate(-78 18.013 13.186)" fil [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f6f9.svg b/browser/components/torpreferences/content/bridgemoji/1f6f9.svg new file mode 100644 index 0000000000000..1ee4bfec4ac72 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f6f9.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#A0041E" d="M32.436 2.821c1.801 1.799 3.779 2.737 0 6.517L12.884 28.889c-4.594 4.595-5.463 7.571-11.405 1.63-3.258-3.258.284-3.543 4.888-8.148l19.552-19.55c1.8-1.8 4.718-1.8 6.517 0z"/><path fill="#DD2E44" d="M33.936 4.321c1.801 1.799 1.801 4.717 0 6.517L14.385 30.389c-4.073 4.073-8.342 4.693-11.405 1.63-3.258-3.258.284-3.543 4.888-8.148L27.42 4.321c1.799-1.8 4.717-1.8 6.516 0z"/><path fill="#3B88C3" d="M15.301 33.18 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f6fa.svg b/browser/components/torpreferences/content/bridgemoji/1f6fa.svg new file mode 100644 index 0000000000000..aae4e94ac5a0f --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f6fa.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#99AAB5" d="M19 9h2v11h-2z"/><path fill="#55ACEE" d="M10 9c-2 2-4 5-4 7 0 4 5 1 5 1V9h-1z"/><circle fill="#292F33" cx="5" cy="32" r="4"/><circle fill="#99AAB5" cx="5" cy="32" r="2"/><path fill="#1E5200" d="M29 23h-2c-1.105 0-2 .895-2 2v5c0 1.105.895 2 2 2h2c1.105 0 2-.895 2-2v-5c0-1.105-.895-2-2-2zm-10 0h-2c-1.105 0-2 .895-2 2v5c0 1.105.895 2 2 2h2c1.105 0 2-.895 2-2v-5c0-1.105-.895-2-2-2z"/><path fill="#5C913B" d="M [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f6fc.svg b/browser/components/torpreferences/content/bridgemoji/1f6fc.svg new file mode 100644 index 0000000000000..091d51ef63eb8 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f6fc.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#292F33" d="M10 27.5c0 1.381-2.567 3.5-4.5 3.5S1 28.881 1 27.5 3.567 26 5.5 26s4.5.119 4.5 1.5zm19 0c0 1.381-2.567 3.5-4.5 3.5S20 28.881 20 27.5s2.567-1.5 4.5-1.5 4.5.119 4.5 1.5zm0-.5c0 1 0 2 2 3s2-3 2-3h-4z"/><path fill="#F4900C" d="M34.787 28.795c1.332 1.332.729 1.683-.603 3.016-1.332 1.332-1.683 1.935-3.016.603-1.332-1.332-1.935-2.889-.603-4.222 1.332-1.333 2.889-.73 4.222.603z"/><path fill="#662113" d="M33.299 2 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f916.svg b/browser/components/torpreferences/content/bridgemoji/1f916.svg new file mode 100644 index 0000000000000..1dbe6d68de79c --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f916.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><ellipse fill="#F4900C" cx="33.5" cy="14.5" rx="2.5" ry="3.5"/><ellipse fill="#F4900C" cx="2.5" cy="14.5" rx="2.5" ry="3.5"/><path fill="#FFAC33" d="M34 19c0 .553-.447 1-1 1h-3c-.553 0-1-.447-1-1v-9c0-.552.447-1 1-1h3c.553 0 1 .448 1 1v9zM7 19c0 .553-.448 1-1 1H3c-.552 0-1-.447-1-1v-9c0-.552.448-1 1-1h3c.552 0 1 .448 1 1v9z"/><path fill="#FFCC4D" d="M28 5c0 2.761-4.478 4-10 4C12.477 9 8 7.761 8 5s4.477-5 10-5c5.522 0 10 2.239 10 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f93f.svg b/browser/components/torpreferences/content/bridgemoji/1f93f.svg new file mode 100644 index 0000000000000..01239db878463 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f93f.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#66757F" d="M21 25c-2.556 0-4.062-3.128-5.161-4.676-.412-.58-1.266-.58-1.677 0C13.062 21.872 11.557 25 9 25c-4.551 0-7.923-3.033-8.784-7.619C-.804 11.955 3.589 7 9.11 7h11.78c5.521 0 9.914 4.955 8.894 10.381C28.923 21.967 25.551 25 21 25z"/><path fill="#292F33" d="M18 22l-3-3-3 3-2 2c2 0 3 3 5 3s3-3 5-3l-2-2z"/><path fill="#4E9322" d="M21 25c-2.556 0-4.062-3.128-5.161-4.676-.412-.58-1.266-.58-1.677 0C13.062 21.872 11 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f941.svg b/browser/components/torpreferences/content/bridgemoji/1f941.svg new file mode 100644 index 0000000000000..e197d16c3e092 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f941.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F18F26" d="M0 18h36v9H0z"/><ellipse fill="#F18F26" cx="18" cy="26" rx="18" ry="9"/><ellipse fill="#F18F26" cx="18" cy="27" rx="18" ry="9"/><path fill="#9D0522" d="M0 10v16h.117c.996 4.499 8.619 8 17.883 8s16.887-3.501 17.883-8H36V10H0z"/><ellipse fill="#F18F26" cx="18" cy="11" rx="18" ry="9"/><ellipse fill="#F18F26" cx="18" cy="12" rx="18" ry="9"/><path fill="#F18F26" d="M0 10h1v2H0zm35 0h1v2h-1z"/><ellipse fill="#F [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f94c.svg b/browser/components/torpreferences/content/bridgemoji/1f94c.svg new file mode 100644 index 0000000000000..9bc8f8a58d421 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f94c.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#BE1931" d="M28 12H13V8c0-.552.448-1 1-1h11c1.104 0 2-.896 2-2s-.896-2-2-2H14c-2.761 0-5 2.239-5 5v4H8c-1.104 0-2 .896-2 2s.896 2 2 2h20c1.104 0 2-.896 2-2s-.896-2-2-2z"/><path fill="#66757F" d="M36 25c0 3.313-2.687 6-6 6H6c-3.313 0-6-2.687-6-6v-5c0-3.313 2.687-6 6-6h24c3.313 0 6 2.687 6 6v5z"/><path fill="#99AAB5" d="M0 20h36v5H0z"/></svg> \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f94f.svg b/browser/components/torpreferences/content/bridgemoji/1f94f.svg new file mode 100644 index 0000000000000..84fdba474f0ab --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f94f.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F4900C" d="M35 21.526C35 26.758 27.389 31 18 31S1 26.758 1 21.526 7.625 11 18 11s17 5.294 17 10.526z"/><ellipse fill="#FFAC33" cx="18" cy="19.502" rx="16" ry="8.5"/><path fill="#FFD983" d="M18 11.331c-6.449 0-11.5 2.491-11.5 5.672 0 3.18 5.051 5.671 11.5 5.671 6.448 0 11.5-2.491 11.5-5.671 0-3.181-5.052-5.672-11.5-5.672z"/><ellipse fill="#FFAC33" cx="18" cy="18.002" rx="12" ry="6"/><path fill="#F4900C" d="M29 18.002 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f950.svg b/browser/components/torpreferences/content/bridgemoji/1f950.svg new file mode 100644 index 0000000000000..eef4358d88ee4 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f950.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F4900C" d="M11.569 35.41c-2.223-.63-5.362-4.11-6.86-7.331-.183-.391-1.101-.673-1.265-1.084C.953 20.775.637 12.54 6.342 6.834 12.751.425 20.537-.295 26.817 1.757c.45.147.837 1.114 1.286 1.199 5.917 1.115 8.322 7.549 5.759 6.816-1.199-.342-2.657-.557-3.814-.428-.437.049-1.051.892-1.544.962-.767.11-2.64.212-3.564.305-9.159.916-12.395 6.971-12.811 14.256-.046.808-.617.623-.73 1.283-.344 1.992 1.089 4.884 1.772 6.939.594 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f951.svg b/browser/components/torpreferences/content/bridgemoji/1f951.svg new file mode 100644 index 0000000000000..ed1d9f9f633cb --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f951.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#3E721D" d="M35 5.904c2.394 6.042-1.438 20.543-10.5 26.5-9.06 5.957-20.395 3.573-23.097-6.443-1.669-6.186 2.79-10.721 11.851-16.677C22.315 3.327 32.64-.053 35 5.904z"/><path fill="#3E721D" d="M20.605 26.03c-6.523 4.546-15.287 5.15-18.469.582-3.183-4.566.418-12.578 6.943-17.124 6.522-4.545 21.951-9.796 25.134-5.23 3.183 4.57-7.085 17.226-13.608 21.772"/><path fill="#A6D388" d="M19.815 26.578c-5.757 4.013-13.482 3.097- [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f955.svg b/browser/components/torpreferences/content/bridgemoji/1f955.svg new file mode 100644 index 0000000000000..b949554ff7a1c --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f955.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#77B255" d="M31.096 8.933c3.535-2.122 4.408-8.32 3.701-7.613.707-.707-5.657 0-7.778 3.536 0-1.414-1.414-7.071-3.535-2.121-2.122 4.95-1.415 5.657-1.415 7.071 0 1.414 2.829 1.414 2.829 1.414s-.125 2.704 1.29 2.704c1.414 0 1.997.583 6.946-1.538 4.95-2.122-.624-3.453-2.038-3.453z"/><path fill="#F4900C" d="M22.422 23.594C14.807 31.209 2.27 36.675.502 34.907c-1.768-1.768 3.699-14.305 11.313-21.92 7.615-7.615 11.53-7.562 14 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f956.svg b/browser/components/torpreferences/content/bridgemoji/1f956.svg new file mode 100644 index 0000000000000..8da10427ff0f0 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f956.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#EDB980" d="M12.697 31.165c-3.785 3.785-8.273 3.838-9.841 2.271-1.568-1.568-1.514-6.056 2.271-9.841L24.052 4.67c3.785-3.784 8.271-3.838 9.84-2.271 1.567 1.568 1.515 6.056-2.271 9.841L12.697 31.165z"/><path d="M24.322 7.969c1.568 1.568 2.758 2.917 3.595 2.082.152-.152.241-.349.301-.565-.018-.043-.036-.087-.041-.136-.128-1.148-2.41-3.641-4.08-4.721l-.045.042-1.474 1.474c.438.539 1.064 1.144 1.744 1.824zm-4.543 4.542c1. [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f95c.svg b/browser/components/torpreferences/content/bridgemoji/1f95c.svg new file mode 100644 index 0000000000000..c809689a05365 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f95c.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#D99E82" d="M17.256 31.519c-4.754 4.754-11.207 5.573-14.683 2.097C-.902 30.141.056 23.55 4.672 18.934c3.355-3.356 6.711-3.356 9.228-5.873 2.517-2.516 1.678-5.033 5.454-8.809C23.968-.361 29.84-1.201 33.616 2.574c3.774 3.776 2.832 9.754-1.678 14.263-3.775 3.775-6.292 2.936-8.809 5.452-2.518 2.518-2.518 5.873-5.873 9.23z"/><path fill="#C1694F" d="M8.211 21.397c-.324 0-.643-.157-.835-.448-.305-.46-.179-1.081.282-1.386.68 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f95d.svg b/browser/components/torpreferences/content/bridgemoji/1f95d.svg new file mode 100644 index 0000000000000..4007a720a2803 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f95d.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#C1694F" d="M25.94 15.188c2.045 8.239-1.642 16.246-8.235 17.881-6.592 1.636-13.593-3.719-15.638-11.958-2.044-8.24 1.642-16.246 8.236-17.882 6.59-1.636 13.593 3.718 15.637 11.959z"/><path fill="#C1694F" d="M34.146 13.151c2.391 9.635-6.295 17.402-14.948 19.548-8.653 2.146-14.34-3.532-16.385-11.773-2.044-8.24.328-15.92 8.98-18.066 8.652-2.148 19.801.005 22.353 10.291z"/><path fill="#77B255" d="M24.448 15.558c1.789 7.211 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f95e.svg b/browser/components/torpreferences/content/bridgemoji/1f95e.svg new file mode 100644 index 0000000000000..795fb134113d3 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f95e.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><ellipse fill="#929497" cx="18" cy="23.949" rx="18" ry="10"/><ellipse fill="#CCD6DC" cx="18" cy="22.199" rx="18" ry="10"/><path fill="#F19020" d="M32 20.393c0 4.295-6.268 7.778-14 7.778S4 24.688 4 20.393s6.268-7.778 14-7.778 14 3.483 14 7.778z"/><path fill="#FAAA35" d="M32 18.239c0 4.295-6.268 7.778-14 7.778S4 22.534 4 18.239s6.268-7.778 14-7.778 14 3.483 14 7.778z"/><path fill="#F19020" d="M32 16.085c0 4.295-6.268 7.778-14 7.77 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f965.svg b/browser/components/torpreferences/content/bridgemoji/1f965.svg new file mode 100644 index 0000000000000..7f1692794b5e5 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f965.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#8B5E3C" d="M5.506 30.167c-7.03-7.029-6.397-19.059 1.414-26.87l25.456 25.456c-7.811 7.811-19.841 8.443-26.87 1.414z"/><path fill="#603913" d="M6.92 3.297c-3.905 3.905-1.373 12.77 5.656 19.8 7.031 7.029 15.895 9.561 19.799 5.656 3.905-3.904 1.374-12.769-5.657-19.799C19.69 1.924 10.825-.607 6.92 3.297z"/><path fill="#F5F8FA" d="M31.591 24.217c.229.229.56.336.887.276.387-.071.696-.362.79-.745.067-.269 1.575-6.67-3.013-1 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f966.svg b/browser/components/torpreferences/content/bridgemoji/1f966.svg new file mode 100644 index 0000000000000..ee2bc1cb1092e --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f966.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#77B255" d="M23.013 24.322l-5.546-5.546-5.547-5.546S12.375 24.413.737 27.323c0 0 1.032 2.487 3.364 4.819s4.819 3.364 4.819 3.364c2.91-11.639 14.093-11.184 14.093-11.184z"/><path fill="#5C913B" d="M13.83 16.594c-.727 3.637-5.092 9.456-5.092 9.456l8.728-8.728c2.909-2.909-3.636-.728-3.636-.728zm12.365 6.546s-10.91.727-17.457 5.819c8.001-8.001 11.638-8.728 11.638-8.728l5.819 2.909z"/><path fill="#3E721D" d="M30.156 28.19 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f968.svg b/browser/components/torpreferences/content/bridgemoji/1f968.svg new file mode 100644 index 0000000000000..10bd682b6834c --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f968.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F4900C" d="M35 16c0-8-6-11-12-11-1.738 0-3.472.371-5 1.097C16.472 5.371 14.738 5 13 5 7 5 1 8 1 16c0 3 1.314 5.662 3 8 .434.602.903 1.146 1.4 1.647-.357.603-.616 1.091-.779 1.353C4 28 5 29 6 29c.69 0 1.205-.617 1.745-1.482C10.552 29.273 14.023 30 18 30s7.448-.727 10.255-2.482C28.795 28.383 29.31 29 30 29c1 0 2-1 1.379-2-.163-.262-.422-.75-.779-1.353.497-.501.967-1.046 1.4-1.647 1.686-2.338 3-5 3-8zm-17 1.207C16.578 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f96c.svg b/browser/components/torpreferences/content/bridgemoji/1f96c.svg new file mode 100644 index 0000000000000..6ef36cb221f1a --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f96c.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#5C913B" d="M29.866 24.625c2.522-.841 5.884-4.203 5.884-5.884s-2.522-.841-1.681-3.362 1.681-5.043 0-6.724-3.362 0-5.043-1.681 0-3.362-1.681-5.043-4.203-.841-6.724 0S18.939.25 17.258.25s-5.043 3.362-5.884 5.884-2.521.84-3.361 3.362c-.78 2.341.177 4.823-1.972 9.748-1.026 1.621-1.995 3.178-2.899 4.543C-.836 29.792.449 35.552.449 35.552s5.76 1.285 11.765-2.693c1.365-.904 2.922-1.873 4.543-2.899 4.925-2.15 7.407-1.192 9.7 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f96d.svg b/browser/components/torpreferences/content/bridgemoji/1f96d.svg new file mode 100644 index 0000000000000..b5607c107cc4d --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f96d.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#77B255" d="M26.38 3.539c.483-.039 1.259-.655 1.664-.595.405.06 1.573 1.078 1.67 1.283.097.205-.637 1.178-.746 1.48-.109.302-.64.239-1.51-.543-.869-.782-1.078-1.625-1.078-1.625z"/><path fill="#EA564B" d="M12.3 3.139c4.545-2.66 11.267-2.611 13.685-.58 1.617 1.358 2.942 2.401 4.474 3.011 2.022.804 3.692 3.154 4.415 5.384.981 3.023 1.68 12.579-8.029 18.516-6.233 3.812-17.656 5.363-18.961 4.723-.984-.483-4.621-2.09-6.675 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f96f.svg b/browser/components/torpreferences/content/bridgemoji/1f96f.svg new file mode 100644 index 0000000000000..6a65f4c19330d --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f96f.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#C1694F" d="M18.09 9.295C7.847 9.295.573 13.188.573 18.053c0 7.569 5.839 15.57 17.517 15.57 11.678 0 17.517-8.001 17.517-15.57 0-4.865-7.274-8.758-17.517-8.758z"/><path fill="#D99E82" d="M18.09 8.322C7.847 8.322.573 11.961.573 17.927c0 5.966 7.273 9.858 17.517 9.858 10.243 0 17.517-4.146 17.517-9.858S28.333 8.322 18.09 8.322z"/><path fill="#CCD6DD" d="M2.519 20.973c-.973.973 4.866 6.812 7.785 3.893 2.919-2.919 5.942 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f980.svg b/browser/components/torpreferences/content/bridgemoji/1f980.svg new file mode 100644 index 0000000000000..8f45b53dd4f91 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f980.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#A0041E" d="M6.96 20.637c.068.639-.543 1.228-1.368 1.315-.824.089-1.547-.357-1.615-.995-.068-.639.544-1.227 1.368-1.314.824-.089 1.547.356 1.615.994zm2.087 2.717c.125.818-1.756 2.544-2.576 2.669-.819.125-1.584-.438-1.708-1.257-.125-.818.58-1.14 1.398-1.265.819-.124 2.761-.965 2.886-.147zm1.783 2.104c.173.81-1.628 3.927-2.438 4.1-.811.173-1.645.146-1.817-.665-.173-.81.306-1.688 1.116-1.861.81-.174 2.966-2.384 3.139-1. [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f981.svg b/browser/components/torpreferences/content/bridgemoji/1f981.svg new file mode 100644 index 0000000000000..674ff24e628ae --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f981.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#662113" d="M32.325 10.958s2.315.024 3.511 1.177c-.336-4.971-2.104-8.249-5.944-10.13-3.141-1.119-6.066 1.453-6.066 1.453s.862-1.99 2.19-2.746C23.789.236 21.146 0 18 0c-3.136 0-5.785.227-8.006.701 1.341.745 2.215 2.758 2.215 2.758S9.194.803 6 2.053C2.221 3.949.481 7.223.158 12.174c1.183-1.19 3.55-1.215 3.55-1.215S-.105 13.267.282 16.614c.387 2.947 1.394 5.967 2.879 8.722C3.039 22.15 5.917 20 5.917 20s-2.492 5.96-.581 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f984.svg b/browser/components/torpreferences/content/bridgemoji/1f984.svg new file mode 100644 index 0000000000000..19d9ff1613d2b --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f984.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#C1CDD5" d="M36 19.854C33.518 9.923 25.006 1.909 16.031 6.832c0 0-4.522-1.496-5.174-1.948-.635-.44-1.635-.904-.912.436.423.782.875 1.672 2.403 3.317C8 12.958 9.279 18.262 7.743 21.75c-1.304 2.962-2.577 4.733-1.31 6.976 1.317 2.33 4.729 3.462 7.018 1.06 1.244-1.307.471-1.937 3.132-4.202 2.723-.543 4.394-1.791 4.394-4.375 0 0 .795-.382 1.826 6.009.456 2.818-.157 5.632-.039 8.783H36V19.854z"/><path fill="#60379A" d="M31 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f986.svg b/browser/components/torpreferences/content/bridgemoji/1f986.svg new file mode 100644 index 0000000000000..085c900634683 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f986.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#D99E82" d="M12.75 17.75c1.226 2.195 1.856-1.361 9.312-2.625s13.729 4.454 13.859 5.413c.132.958-4.447 9.462-9.462 9.462H10.75c-4.143 0-7.022-7.224-4-11.438 0 0 4.5-3.5 6-.812z"/><path fill="#C1694F" d="M13.008 18.136C8.02 25.073 6.969 30 10.75 30c-4.143 0-6.578-6.188-4.468-11.031.463-1.064 1.758-2.492 1.758-2.492l4.179-.008c.162.32.599 1.365.789 1.667z"/><path fill="#E1E8ED" d="M20.062 22.75c6.672-2.682 15.729-3.171 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f987.svg b/browser/components/torpreferences/content/bridgemoji/1f987.svg new file mode 100644 index 0000000000000..4ebb5ad4c15f5 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f987.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#66757F" d="M23 21c0 6.352-3 10-5 10s-5-3.648-5-10 2.239-7 5-7c2.762 0 5 .648 5 7z"/><circle fill="#66757F" cx="18" cy="11" r="4"/><path fill="#66757F" d="M14 11c-2-5 1-7 1-7s2 1 2 4-3 3-3 3z"/><path fill="#546066" d="M14.668 9.904c-.776-2.457-.119-3.896.403-4.58C15.486 5.773 16 6.608 16 8c0 1.268-.739 1.734-1.332 1.904z"/><path fill="#66757F" d="M22 11c2-5-1-7-1-7s-2 1-2 4 3 3 3 3zm-5.984 3c-1.62 1.157-10 2-9-5 .142 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f988.svg b/browser/components/torpreferences/content/bridgemoji/1f988.svg new file mode 100644 index 0000000000000..f6381c521eaf5 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f988.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#66757F" d="M36 21c0 5-3 9-11 11-7.062 1.766-21-.934-21-2 0-1.129 2.503-1.371 6.812-1.125 10.938.625 13.75-3.857 12-5.25-3.062-2.437-6.437.375-12.062-.125C3.782 22.881 0 17.472 0 16c0-2 11.716-8 20-8s16 4.25 16 13z"/><path fill="#292F33" d="M15 12.5c0 .829-.671 1.5-1.5 1.5s-1.5-.671-1.5-1.5.671-.5 1.5-.5 1.5-.329 1.5.5z"/><path fill="#66757F" d="M14 9c2-5 5.291-9 7.958-9S21 2 26 10 14 9 14 9zM3 30c0-4-1.04-6 .146-6s6 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f989.svg b/browser/components/torpreferences/content/bridgemoji/1f989.svg new file mode 100644 index 0000000000000..bb0d461ab47a7 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f989.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#662113" d="M7.317 11c-5.723 9.083.958 18 .958 18s2.874-.442 6.875-5.2c4-4.758-7.833-12.8-7.833-12.8zm21.342 0c5.723 9.083-.958 18-.958 18s-2.874-.442-6.875-5.2C16.825 19.042 28.659 11 28.659 11z"/><path fill="#FFAC33" d="M15.203 31.557c-.123-.229-.317-.384-.531-.496-2.032-2.172-.589-4.717-.589-4.717 0-.703 1.271-2.544 0-2.544l-1.272 1.272c-1.272 1.271-1.272 5.089-1.272 5.089H8.995c-.703 0-1.272.568-1.272 1.272 0 .70 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f98a.svg b/browser/components/torpreferences/content/bridgemoji/1f98a.svg new file mode 100644 index 0000000000000..2cb2f986dfa21 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f98a.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F4900C" d="M13.431 9.802c.658 2.638-8.673 10.489-11.244 4.098C.696 10.197-.606 2.434.874 2.065c1.48-.368 11.9 5.098 12.557 7.737z"/><path fill="#A0041E" d="M11.437 10.355c.96 1.538-1.831 4.561-3.368 5.522-1.538.961-2.899-.552-4.414-4.414-.662-1.689-1.666-6.27-1.103-6.622.562-.351 7.924 3.976 8.885 5.514z"/><path fill="#F4900C" d="M22.557 9.802C21.9 12.441 31.23 20.291 33.802 13.9c1.49-3.703 2.792-11.466 1.312-11.835 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f98b.svg b/browser/components/torpreferences/content/bridgemoji/1f98b.svg new file mode 100644 index 0000000000000..22c6ead8ffcf6 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f98b.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#1C6399" d="M20.004 20.243c-.426 0-.858.01-1.294.031-.436 1.268-.468 2.747 0 5.097.328 1.646 2.659 6.299 4.584 7.933.683.58 1.638.884 2.69.884 2.144 0 4.691-1.265 6.157-4.034 3.001-5.671-3.474-9.911-12.137-9.911z"/><path fill="#1C6399" d="M33.666 1.973c-.204 0-.425.021-.663.066-3.182.601-9.302 5.126-14.287 11.771 0 0-.789 5.16-.789 6.194 0 .336 1.264.5 3.058.5 3.717 0 9.709-.705 11.424-2.041 1.898-1.479 3.65-9.804 3. [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f98c.svg b/browser/components/torpreferences/content/bridgemoji/1f98c.svg new file mode 100644 index 0000000000000..86623680c2432 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f98c.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#662113" d="M15.971 15.083c-1.458-2.333-.667-7.708 0-8.958s-.542-2.458-1.5-.458-.996 3-3.162 2.458-1.088-3.292-.379-5.625c.729-2.4-.917-1.959-1.667-.458-.75 1.5-1.254 5.693-2.901 5.984-1.647.291-6.099.599-2.851-5.651C4.818-.139 2.773-.656 1.68 1.459.361 4.007-.404 7.25.221 8.625c1.113 2.448 3.483 2.95 6.983 2.284s6.101-.634 6.101 1.133c0 1.872.208 3.458 1.042 3.625s1.624-.584 1.624-.584zm4.057 0c1.458-2.333.667-7.708 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f98e.svg b/browser/components/torpreferences/content/bridgemoji/1f98e.svg new file mode 100644 index 0000000000000..1164a73b64f12 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f98e.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#3E721D" d="M15.66 6.844c.485-2.03.384-3.139-.553-3.677-.936-.537.337-2.666 1.977-.793 1.641 1.873 1.428 3.618.662 4.853-.767 1.234-2.336.66-2.086-.383zm-.48 2.951c-.916 1.877-1.699 2.668-2.764 2.487-1.064-.18-1.435 2.272 1.023 1.869 2.457-.403 3.401-1.886 3.595-3.326.193-1.44-1.383-1.994-1.854-1.03zm11.336 6.261c-2.072-1.377-5.382 1.43-5.699 2.28-.317.85 1.721 3.461 1.146 4.94-.577 1.477 1.142 1.768 1.92.491.778-1.2 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f98f.svg b/browser/components/torpreferences/content/bridgemoji/1f98f.svg new file mode 100644 index 0000000000000..0d07017ab4fdc --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f98f.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#66757F" d="M27.295 7.526c-1.152-3.054-2.65-6.8-8.299-6.915-1.759-.036-1.52.539-.347 1.02 2.248.922-2.474 5.438 4.759 7.4 5.648 1.531 5.039 1.549 3.887-1.505z"/><path fill="#99AAB5" d="M36.004 3.903c-7.737 0-14.411 2.514-18.105 5.757-4.875 4.28-5.38 10.306-14.034 15.66-2.847 1.761-.423 7.517 1.153 9.618 1.908 2.544 28.617.238 30.987-8.777l-.001-22.258z"/><path fill="#66757F" d="M8.676 29.652c1.011.507 1.787 1.051 1.3 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f992.svg b/browser/components/torpreferences/content/bridgemoji/1f992.svg new file mode 100644 index 0000000000000..233e3c989dc0e --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f992.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path d="M22.217 35.615h-.002c-.804-.142-1.34-.908-1.198-1.712l.59-3.344s.68-3.165-1.076-5.449c1.259-1.171 5.024.085 5.024.085l-1.626 9.221c-.142.804-.908 1.34-1.712 1.199zm-12.692-.021h-.002c-.804-.142-1.34-.908-1.198-1.712l1.312-7.025s.503-2.419.503-4.439c1.142-.439 2.723 2.757 2.723 2.757l-1.626 9.221c-.143.803-.909 1.339-1.712 1.198zm21.277-9.823c-.537 0-.977-.431-.985-.969-.012-.723-.304-4.326-4.925-4.326-.545 0-.985-.441-. [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f993.svg b/browser/components/torpreferences/content/bridgemoji/1f993.svg new file mode 100644 index 0000000000000..2cb4b9eb2e8bc --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f993.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#E1E8ED" d="M23.283 23.275s1.374 1.635 2.733 10.047c.143.883.201 1.775.217 2.678H36V7.448C31.613 3.975 25.601 3.259 18.322 5.69c0 0-5.408-3-6.147-3.739-.719-.72-1.857-1.556-1.235.35.364 1.112.764 2.373 2.358 4.862-3.436 2.036-4.513 4.68-8.558 13.341C1.652 27.12.08 29.269.937 31.797c1.13 3.337 5.316 5.595 8.844 3.021 1.919-1.4 2.246-3.913 6.225-6.223 3.653-.065 7.277-1.604 7.277-5.32z"/><path fill="#292F33" d="M36 6.0 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f994.svg b/browser/components/torpreferences/content/bridgemoji/1f994.svg new file mode 100644 index 0000000000000..ebbfc2ad25cd8 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f994.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#6D6E71" d="M28.688 20.312C28.688 26.217 23.904 31 18 31c-5.903 0-10.688-4.783-10.688-10.688 0-5.903 4.786-10.689 10.688-10.689 5.904.001 10.688 4.786 10.688 10.689z"/><path fill="#662113" d="M26 33.5H10c-1.665 0-2.479-1.339-2.763-2.31l-2.664-.056c-.153-.003-.297-.077-.389-.2-.092-.122-.123-.281-.083-.43l.594-2.216-2.446-.651c-.152-.041-.276-.15-.335-.296s-.046-.311.035-.445l1.199-1.993-2.156-1.192c-.139-.077-.233-.2 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f995.svg b/browser/components/torpreferences/content/bridgemoji/1f995.svg new file mode 100644 index 0000000000000..fb046c69c7bc8 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f995.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#3E721D" d="M17.68 22s1.937 7.873 1.187 9.373c-2.373 4.746-1.187 4.627 0 4.627h2.373c2.373 0-1.187-14-1.187-14H17.68zM5.255 19.387s-.436 7.993-1.187 9.493C1.695 33.626 1.695 36 2.882 36h2.373c1.186 0 1.187-4.154 1.187-5.34 0-1.187 1.187-8.603 1.187-8.603l-2.374-2.67z"/><path fill="#77B255" d="M12.374 5.251c-2.068.017-4.209-.435-5.523 2.099-1.404 2.709-2.065 8.579.776 9.664 2.479.947 7.933-1.187 13.866 1.187 5.933 2.3 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f998.svg b/browser/components/torpreferences/content/bridgemoji/1f998.svg new file mode 100644 index 0000000000000..8a72b40a7af20 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f998.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#BF6952" d="M6.513.886c0 .984.649 3.926 1.153 5.047s-.505.35-1.442-.771-1.657-2.244-1.225-3.435S6.513-.446 6.513.886z"/><path fill="#D99E82" d="M.314 10.699c-.004.961 1.22 2.097 2.883 1.682 1.333-.332 3.234-1.359 3.316-.561.082.798-1.179 3.471-.629 6.276.93 4.74 2.379 8.873 7.201 10.095 0 0 .723 2.775 1.479 3.986.694 1.111 1.029 2.022.45 2.215-.579.193-3.472.386-4.694.579C9.099 35.164 8.906 36 10.256 36H17.2c.707 0 . [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f999.svg b/browser/components/torpreferences/content/bridgemoji/1f999.svg new file mode 100644 index 0000000000000..b505faf82d7a7 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f999.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#C1694F" d="M6.755 2.246c-.443-.368-1.05-.976-1.629-1.299-.497-.277-.247.918.173 1.391.421.473 1.824 1.342 2.455 1.815.631.473.936.398.315-.473-.649-.911-1.314-1.434-1.314-1.434z"/><path fill="#D99E82" d="M8.191.736c.328.339.735 2.394.735 2.394s1.282.092 2.407.786c4.5 2.776 2.542 9.542 3.944 11.102.432.48 9.681-1.643 14.222.544 3.844 1.852 3.083 4.646 4.083 5.271.758.474-2 1.25-2.578-2.313-.506 11.147-1.072 13.867-1. [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f99a.svg b/browser/components/torpreferences/content/bridgemoji/1f99a.svg new file mode 100644 index 0000000000000..7606d382ac63e --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f99a.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#292F33" d="M14.5 36c-.128 0-.256-.049-.354-.146-.195-.195-.195-.512 0-.707L16 33.293V31.5c0-.276.224-.5.5-.5s.5.224.5.5v2.207l-2.146 2.146c-.098.098-.226.147-.354.147z"/><path fill="#292F33" d="M16.5 34h-3c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h3c.276 0 .5.224.5.5s-.224.5-.5.5zm5 2c-.128 0-.256-.049-.354-.146L19 33.707V31.5c0-.276.224-.5.5-.5s.5.224.5.5v1.793l1.854 1.854c.195.195.195.512 0 .707-.098.097-.226.146-.354.14 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f99c.svg b/browser/components/torpreferences/content/bridgemoji/1f99c.svg new file mode 100644 index 0000000000000..f7f743c52258f --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f99c.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#66757F" d="M17.5 35c-.128 0-.256-.049-.354-.146-.195-.195-.195-.512 0-.707L19 32.293V29.5c0-.276.224-.5.5-.5s.5.224.5.5v3.207l-2.146 2.146c-.098.098-.226.147-.354.147z"/><path fill="#66757F" d="M19.5 33h-3c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h3c.276 0 .5.224.5.5s-.224.5-.5.5zm3 2c-.128 0-.256-.049-.354-.146-.195-.195-.195-.512 0-.707L24 32.293V29.5c0-.276.224-.5.5-.5s.5.224.5.5v3.207l-2.146 2.146c-.098.098-.226.147-.3 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f99d.svg b/browser/components/torpreferences/content/bridgemoji/1f99d.svg new file mode 100644 index 0000000000000..30c88720fb800 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f99d.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#99AAB5" d="M10.668 5.616C9.032 2.479 4.439 1.005 3.584 2.298s.707 10.152 1.757 9.967c1.051-.185 5.327-6.649 5.327-6.649z"/><path fill="#292F33" d="M9.841 7.674c-1.27-2.68-4.696-4.82-5.304-3.745-.435.771.122 5.263.757 7.696l4.547-3.951z"/><path fill="#99AAB5" d="M25.284 5.616c1.636-3.137 6.228-4.611 7.084-3.318s-.708 10.152-1.758 9.967c-1.051-.185-5.326-6.649-5.326-6.649z"/><path fill="#292F33" d="M26.36 7.674c1.231- [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f99e.svg b/browser/components/torpreferences/content/bridgemoji/1f99e.svg new file mode 100644 index 0000000000000..8df2a7467606b --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f99e.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><g fill="#BE1931"><path d="M14.847 22.402h-.064c-2.117-.069-4.919-1.006-6.246-5.077-.135-.413.089-.864.503-.999.414-.135.857.085.992.499l.003.011c.312.959 1.263 3.876 4.8 3.991.435.015.776.378.762.812-.014.415-.344.743-.75.763zm-5.348 5.637c.151-.221.411-.359.698-.342 3.034.181 4.578-1.938 5.086-2.634.256-.352.749-.429 1.1-.173.352.256.414.747.173 1.1-1.698 2.33-3.869 3.434-6.453 3.28-.434-.026-.766-.399-.74-.834.01-.148.059-.28 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f9a3.svg b/browser/components/torpreferences/content/bridgemoji/1f9a3.svg new file mode 100644 index 0000000000000..1aa87190b9ea1 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f9a3.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#662113" d="M9.396 20.496s2.053 6.29 2.053 8.144.023 3.271-.374 4.463c-.397 1.192-.066 1.523 1.523 1.589 1.589.066 3.774 0 3.973-1.192.199-1.192-.156-1.55-.089-2.742.066-1.192.331-4.37.53-4.701.199-.331 3.906.662 4.635.927s3.046.265 3.112 1.059c.066.795.487 4.86.288 5.655-.199.795.397.993 2.251.927 1.986-.071 3.112-.463 2.979-1.324-.132-.861-.222-2.146.043-3.139s1.258-3.84 1.324-4.767c0 0 .927-2.053.861-3.575-.066-1. [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f9a4.svg b/browser/components/torpreferences/content/bridgemoji/1f9a4.svg new file mode 100644 index 0000000000000..1dbac1e3177b3 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f9a4.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#E08110" d="M17.338 26.109c0 1.515-.032 2.456-.771 2.813-.739.357-3.354.065-3.805.339-.45.274-.845.792-.42.78.425-.012 1.004.13 1.004.13s-.821.222-1.127.531-.464.961-.148.923c.316-.038 1.869-.427 2.177-.429 0 0-.386.482-.429.816-.043.335.229.478.229.478s1.118-.495 1.551-.697c.433-.202 1.161-.83 1.504-.977.343-.147.768-.158 2.126.249 0 0 .016-.655-.51-.859-.526-.205-.915-.058-.802-.847.134-.936.436-2.834.713-3.342.278 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f9a5.svg b/browser/components/torpreferences/content/bridgemoji/1f9a5.svg new file mode 100644 index 0000000000000..7371a8ed19f1c --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f9a5.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#7A5C44" d="M6 21c-1.105 0-2-.895-2-2V4c0-1.105.895-1 2-1s2-.105 2 1c0 0-.606 6.424 0 11.997C8.54 20.971 12 22 12 22c0 1.105-4.895-1-6-1zm14 4.999c-1.105 0-2-.895-2-2v-21c0-1.105.895-1 2-1s2-.105 2 1c0 0-.446 5.108-.125 9.297.32 4.187.125 11.703.125 11.703 0 1.104-.895 2-2 2z"/><path fill="#662113" d="M36 4L0 8V4l36-2z"/><path fill="#A78E81" d="M22.644 18.406c-.633 1.126-1.363 1.809-2.16 2.193-.402.041-1.132-.085-1.4 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f9a6.svg b/browser/components/torpreferences/content/bridgemoji/1f9a6.svg new file mode 100644 index 0000000000000..5ea0173a5008b --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f9a6.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#A78E81" d="M2.381 8.671c-1.573 0-2.359.786-1.573 1.573 1.573 1.573 3.145 1.573 3.931.786L2.381 8.671zm6.29-6.29c0-1.573.786-2.359 1.573-1.573 1.573 1.573 1.573 3.145.786 3.931L8.671 2.381zm-4.717 9.435s8.547 14.433 14.939 16.512c3.344 1.087 5.692.599 7.863-1.573s2.406-4.447 1.573-7.863C26.937 13.188 11.816 3.954 11.816 3.954l-7.862 7.862z"/><path fill="#A78E81" d="M16.129 26.852c4.231 5.36 8.793 7.807 10.465 6.519 1 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f9a7.svg b/browser/components/torpreferences/content/bridgemoji/1f9a7.svg new file mode 100644 index 0000000000000..0382845585341 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f9a7.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#E26000" d="M36 32c0-12-2-28-18-28S0 20 0 32h8v-5c0-1 1-1 1 0 0 7 4 6 4 6l2 2 1-1c0-.552 1.448-1 2-1s2 .448 2 1l1 1 2-2s4 1 4-6c0-1 1-1 1 0v5h8z"/><circle fill="#E26000" cx="18" cy="13.5" r="11.5"/><path fill="#D9B981" d="M32 31c-3 0-4 1-4 1v1c0 .552.448 1 1 1s1-.448 1-1c0 .552.448 1 1 1s1-.448 1-1c0 .552.448 1 1 1s1-.448 1-1c0 .552.448 1 1 1s1-.448 1-1v-1s-1-1-4-1zM4 31c-3 0-4 1-4 1v1c0 .552.448 1 1 1s1-.448 1-1c0 . [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f9a9.svg b/browser/components/torpreferences/content/bridgemoji/1f9a9.svg new file mode 100644 index 0000000000000..aaa5cfa26d386 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f9a9.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#EA596E" d="M22.903 27.55c1.218-.812 2.232-.783 3.073-.058-.435-1.131-2.348-3.624-2.348-3.624l-.725 3.682z"/><path fill="#F4ABBA" d="M22.949 27.679c-.03 0-.06-.002-.091-.006-.401-.05-.686-.415-.637-.816l.426-3.448c.023-.188.117-.358.264-.478l4.448-3.624-7.108-3.833c-.356-.192-.488-.636-.296-.992.193-.356.636-.489.992-.297l8.072 4.353c.214.116.357.332.381.575.023.244-.077.482-.267.636l-5.07 4.13-.39 3.156c-.044.373-.3 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f9ad.svg b/browser/components/torpreferences/content/bridgemoji/1f9ad.svg new file mode 100644 index 0000000000000..6904e81a57331 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f9ad.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><g fill="#99AAB5"><path d="M3.016 5.201c-.062 0-.116-.043-.128-.105-.105-.555-.092-1.586.168-1.875.047-.053.129-.058.184-.01.053.048.058.13.01.184-.159.176-.216 1.072-.106 1.652.013.071-.033.139-.104.152-.008.002-.016.002-.024.002zm.517.9c-.057 0-.109-.038-.125-.096-.203-.74-.075-1.858-.008-2.097.019-.068.093-.107.16-.09.069.019.109.091.09.16-.069.246-.172 1.299.008 1.959.019.069-.022.141-.091.16-.011.003-.023.004-.034.004z"/><p [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f9c1.svg b/browser/components/torpreferences/content/bridgemoji/1f9c1.svg new file mode 100644 index 0000000000000..1f966c363b0f5 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f9c1.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#BBDDF5" d="M5 21.875s1.589 5.727 2 8.482c.464 3.111 3.571 5.571 11 5.571s10.536-2.461 11-5.571c.411-2.755 2-8.482 2-8.482H5z"/><path fill="#662113" d="M5.094 21.969c.25 1.219.694 1.994 1.344 1.594.65-.4 1.65-.193 1.344.625-.281.75.969 1.094 1.5.656.509-.419 1.555-.881 1.656.062.094.875 1.168 1.11 1.656.469.5-.656 1.875-.394 2.125.406s1.594.688 1.969.125c.355-.533.713-.885 1.312-.885V25c.6 0 .957.373 1.312.906.375.56 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f9c3.svg b/browser/components/torpreferences/content/bridgemoji/1f9c3.svg new file mode 100644 index 0000000000000..51a3f26d4d9d5 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f9c3.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#E3A919" d="M28.337 32.563l-2.579 3.082c-.552.553-1.758.007-1.758-.545V12.001c0-.552 2.372-4.501 5-4.501l-.028 23.007c0 1.134-.093 1.308-.635 2.056z"/><path fill="#FFD983" d="M26 10.454H9l.194-.348L12.74 7.5c.486-.379.831-.5 1.383-.5h14.363c.188 0 .514.277.344.47L26 10.454z"/><path fill="#FFCC4D" d="M25 36H10c-.552 0-1-.448-1-1V10.454S9.448 10 10 10h15c.552 0 1 .454 1 .454V35c0 .552-.448 1-1 1z"/><circle fill="#F4900 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f9c5.svg b/browser/components/torpreferences/content/bridgemoji/1f9c5.svg new file mode 100644 index 0000000000000..ab68cb1d6c197 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f9c5.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#D39954" d="M26.617 32.441c-.02-.039-.373-.678-1.025-1.172.103-.421.056-.835-.307-1.103-.9-.662-8.82.226-9.386 3.057-.234 1.171.588 1.171 1.038.809-.137.499-.212 1.011-.169 1.49.024.269.261.467.531.444.029-.002.057-.007.084-.015.225-.06.381-.275.36-.516-.03-.334.022-.694.111-1.051.201.18.424.327.686.269.312-.07.51-.378.64-.712.015.212.046.348.05.363.069.259.333.411.593.345l.006-.002c.257-.069.411-.333.348-.591-.004-. [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f9c7.svg b/browser/components/torpreferences/content/bridgemoji/1f9c7.svg new file mode 100644 index 0000000000000..cc92a9d18792e --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f9c7.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><ellipse fill="#939598" cx="18" cy="26" rx="18" ry="10"/><ellipse fill="#CCD6DD" cx="18" cy="24" rx="18" ry="10"/><path fill="#F4900C" d="M15.714 32.54L2.575 24.857c-1.262-.738-.929-3.558-.929-4.785l14.069-6.657c1.262-.738 3.308-.738 4.57 0L34.37 20.26c0 1.689.316 3.859-.947 4.597L20.285 32.54c-1.262.738-3.309.738-4.571 0z"/><path fill="#FFAC33" d="M15.714 29.279L2.575 21.596c-1.262-.738-1.262-1.934 0-2.672l13.139-7.683c1.262-.7 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f9c9.svg b/browser/components/torpreferences/content/bridgemoji/1f9c9.svg new file mode 100644 index 0000000000000..16b0db823d27a --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f9c9.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#8A4B38" d="M26.875 14.6C25.1 12.778 21.55 12.778 18 12.778s-7.1 0-8.875 1.822c-2.663 2.733-5.325 9.72-3.55 15.186C7.35 35.252 15.132 35.814 18 35.814s10.65-.562 12.425-6.028c1.775-5.465-.887-12.453-3.55-15.186z"/><path fill="#A5503C" d="M25.58 14.412c-1.516-1.556-4.548-1.556-7.58-1.556s-6.064 0-7.58 1.556c-2.274 2.334-4.548 8.302-3.032 12.969C8.904 32.049 15.55 32.529 18 32.529s9.096-.48 10.611-5.148c1.516-4.668-.75 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f9d9.svg b/browser/components/torpreferences/content/bridgemoji/1f9d9.svg new file mode 100644 index 0000000000000..553708315577b --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f9d9.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><ellipse fill="#C63900" cx="18" cy="19.024" rx="15" ry="3.529"/><path fill="#FA743E" d="M26.276 28.276h-16c-2.486 0-4.774 1.443-5.762 3.449-.368-.415-.907-.619-1.514-.619-1.1 0-2 .935-2 1.998V36h31v-1.931c0-3.199-2.411-5.793-5.724-5.793z"/><path fill="#FFDC5D" d="M14 25v3.234c0 .004.011.007.015.011.132.237 3.737 6.739 3.989 6.739.253 0 3.854-6.502 3.985-6.739.004-.004.01-.007.01-.011V25H14z"/><path fill="#F9CA55" d="M14 27.598c1 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f9da.svg b/browser/components/torpreferences/content/bridgemoji/1f9da.svg new file mode 100644 index 0000000000000..5c9ea3625c0a9 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f9da.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#ABDFFF" d="M20.769 20.273c-4.558 6.089-5.676 12.675-2.497 14.71 3.179 2.035 9.451-1.252 14.008-7.341 4.558-6.089 2.752-17.029 2.497-16.631-1.777 2.774-9.45 3.173-14.008 9.262z"/><path fill="#ABDFFF" d="M15.255 20.273c4.558 6.089 5.676 12.675 2.498 14.71-3.179 2.035-9.451-1.252-14.009-7.341S.904 10.673 1.247 11.011C5 14.71 10.698 14.184 15.255 20.273z"/><path fill="#55ACEE" d="M4.598 17.829c-.484-.808-1.158-1.652-.77 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f9dc.svg b/browser/components/torpreferences/content/bridgemoji/1f9dc.svg new file mode 100644 index 0000000000000..52f120c41f499 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f9dc.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFDC5D" d="M7.399 17.278c-1.878 1.035-3.24 2.455-3.336 2.617-.239.404-.437 1.592-.276 2.415.145.741.177 2.238.66 2.915.198.277.107.759-.032 1.208-.419 1.353.306 3.199-.145 2.882-.918-.644-1.074-1.83-1.047-2.528.015-.393-.166-.884-.257-1.138-.059-.16-1.245-3.203-1.518-4.54-.148-.722-.333-1.302.275-2.155.903-1.266 2.094-2.996 3.311-3.885 2.012-1.471 3.936-1.687 3.936-1.687s-.911 3.532-1.571 3.896zm23-6.626c-.084.009-. [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f9e0.svg b/browser/components/torpreferences/content/bridgemoji/1f9e0.svg new file mode 100644 index 0000000000000..653427da92a85 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f9e0.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#EA596E" d="M29.896 26.667c.003.283-.07.653-.146.958-.531 2.145-2.889 4.552-6.208 4.333-3.008-.198-5.458-1.642-5.458-3.667s2.444-3.667 5.458-3.667 6.335.018 6.354 2.043z"/><path fill="#DD2E44" d="M23.542 24.964c-1.619 0-5.314.448-6.162.448-1.498 0-2.713.94-2.713 2.1 0 .558.286 1.062.744 1.438 0 0 1.006 1.009 2.818.525.793-.212 2.083-1.786 4.354-2.036 1.131-.125 3.25.75 6.974.771.16-.344.193-.583.193-.583 0-2.027-3.19 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f9e2.svg b/browser/components/torpreferences/content/bridgemoji/1f9e2.svg new file mode 100644 index 0000000000000..c2dd6c6f2f1e6 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f9e2.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><ellipse transform="rotate(-87.495 21.25 5.018)" fill="#2B7BB9" cx="21.249" cy="5.018" rx=".944" ry="1.565"/><path fill="#292F33" d="M29.831 27.74s3.523 1.385 5.185.088c.125-1.17-3.311-2.035-3.311-2.035l-1.874 1.947zM7.527 25.549S2.271 33.375.77 32.031c0 0-.425-1.397 1.23-4.218 1.656-2.822 5.527-2.264 5.527-2.264z"/><path fill="#1C6399" d="M19.766 4.82s-8.537.43-13.735 16.348c7.494 0 16.785.555 16.785.555s7.799 3.982 8.889 4.469 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f9e6.svg b/browser/components/torpreferences/content/bridgemoji/1f9e6.svg new file mode 100644 index 0000000000000..44fc31080aaa6 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f9e6.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#55ACEE" d="M27 19.276c-.983 0-1.893.294-2.667.784v4.549h-2.3c.175 2.603 2.319 4.667 4.966 4.667 2.761 0 5-2.239 5-5v-5H27z"/><path fill="#1C6399" d="M22.995 22.999l.005-16 9 .003-.005 16z"/><path fill="#1C6399" d="M24.202 21.451l6.354 6.354-6.878 6.878-6.354-6.354z"/><path fill="#55ACEE" d="M30 4h-5c-1.1 0-2 .9-2 2v2h9V6c0-1.1-.9-2-2-2zM15 15.276c-.983 0-1.893.294-2.667.784v4.549h-2.3c.175 2.603 2.319 4.667 4.966 4. [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f9e9.svg b/browser/components/torpreferences/content/bridgemoji/1f9e9.svg new file mode 100644 index 0000000000000..ae4bf566814b6 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f9e9.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#78B159" d="M26.093 4.612c-.498.498-.629.839-.728 1.029-.66 1.266-1.455 1.676-2.78.351-.13-.13-4.087-4.267-4.741-5.017-.427-.49-1.081-.64-1.584-.262-.38.286-4.035 3.273-5.035 4.507-.774.955-.8 2.134-.079 2.856.326.326.727.449 1.151.578.552.169 1.763.068 2.47.775 1.133 1.133.54 2.924-.917 4.421-1.497 1.457-3.288 2.05-4.421.917-.708-.708-.606-1.918-.775-2.47-.129-.424-.252-.824-.578-1.151-.721-.721-1.9-.694-2.856.079-1 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f9ea.svg b/browser/components/torpreferences/content/bridgemoji/1f9ea.svg new file mode 100644 index 0000000000000..8116cfa1ca017 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f9ea.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#CCD6DD" d="M14.563 14.414L25.47 3.505l6.961 6.962-10.908 10.908z"/><path fill="#68E090" d="M8.103 34.399C2.5 34 1.5 30.062 1.635 27.932c.322-5.07 15.601-16.551 15.601-16.551l12.517 1.93c.001 0-17.389 21.392-21.65 21.088z"/><path fill="#8899A6" d="M32.326 3.708C29.405.787 26.104-.649 24.954.502c-.013.013-.022.031-.034.044-.006.006-.015.008-.021.014L2.295 23.164c-1.412 1.412-2.19 3.29-2.19 5.288 0 1.997.778 3.875 2.19 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f9ec.svg b/browser/components/torpreferences/content/bridgemoji/1f9ec.svg new file mode 100644 index 0000000000000..689cc3e440fad --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f9ec.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#77B255" d="M3.019 26.246l3.432 3.432-.923.922-3.432-3.431z"/><path fill="#FFD983" d="M6.362 29.587l3.431 3.432-.923.923-3.43-3.432z"/><path fill="#FFAC33" d="M6.273 24.237l3.432 3.432-.923.923L5.35 25.16z"/><path fill="#EA596E" d="M8.998 26.962l3.432 3.432-.923.923-3.431-3.432zm3.909-9.359l3.431 3.432-.923.923-3.431-3.432z"/><path fill="#FFAC33" d="M15.631 20.329l3.432 3.431-.923.923-3.432-3.431z"/><path fill="#77B2 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f9ed.svg b/browser/components/torpreferences/content/bridgemoji/1f9ed.svg new file mode 100644 index 0000000000000..fd3d583e58a96 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f9ed.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><circle fill="#F4900C" cx="18" cy="18" r="18"/><circle fill="#FFD983" cx="18" cy="18" r="14.5"/><circle fill="#F5F8FA" cx="18" cy="18" r="13"/><path fill="#CCD6DD" d="M18 8l1.531 6.304 5.54-3.375-3.375 5.54L28 18l-6.304 1.531 3.375 5.54-5.54-3.375L18 28l-1.531-6.304-5.54 3.375 3.375-5.54L8 18l6.304-1.531-3.375-5.54 5.54 3.375z"/><path fill="#292F33" d="M17.343 20.748l8.777 5.381-5.379-8.778z"/><path fill="#DD2E44" d="M18.657 15. [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f9ee.svg b/browser/components/torpreferences/content/bridgemoji/1f9ee.svg new file mode 100644 index 0000000000000..c619bb0eb5e78 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f9ee.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#CCD6DD" d="M3 16v-2h30v2zm0 7v-2h30v2zm0 7v-2h30v2zM3 9V7h30v2z"/><path fill="#D5AB88" d="M35 33V1c0-.552-.448-1-1-1h-1c-.552 0-1 .448-1 1H4c0-.552-.448-1-1-1H2c-.552 0-1 .448-1 1v32h34zM4 4h28v29H4V4z"/><path fill="#3B94D9" d="M19 5.5c-.829 0-1.5.671-1.5 1.5 0-.829-.671-1.5-1.5-1.5s-1.5.671-1.5 1.5c0-.829-.671-1.5-1.5-1.5s-1.5.671-1.5 1.5c0-.829-.671-1.5-1.5-1.5S8.5 6.171 8.5 7c0-.829-.671-1.5-1.5-1.5S5.5 6.171 5.5 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f9f2.svg b/browser/components/torpreferences/content/bridgemoji/1f9f2.svg new file mode 100644 index 0000000000000..e81b4644e2930 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f9f2.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#CCD6DD" d="M19.469 8.319l-3.854-4.671c-.355-.43-.991-.491-1.421-.136l-3.376 2.785 5.138 6.228 3.376-2.785c.431-.355.492-.991.137-1.421z"/><path fill="#BE1931" d="M29.543 25.021l-6.228-5.138s-2.395 3.132-5.006 6.152c-1.986 2.298-6.093 2.215-8.406-.098s-2.395-6.42-.098-8.406c3.02-2.611 6.152-5.006 6.152-5.006l-5.138-6.228s-5.122 3.928-6.613 5.43c-5.468 5.508-5.487 14.418.001 19.906s14.398 5.468 19.906.001c1.502-1.491 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f9f5.svg b/browser/components/torpreferences/content/bridgemoji/1f9f5.svg new file mode 100644 index 0000000000000..3210fbeb543ab --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f9f5.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#553788" d="M35 36c-.419 0-.809-.265-.948-.684C33.388 33.326 31.595 32 25 32c-.553 0-1-.447-1-1s.447-1 1-1c5.635 0 9.653.797 10.948 4.684.175.524-.108 1.091-.632 1.265-.105.034-.212.051-.316.051z"/><path fill="#553788" d="M3 3h22v30H3z"/><path fill="#C1694F" d="M26 4H2c-.55 0-2-3-2-3 0-.55.45-1 1-1h26c.55 0 1 .45 1 1 0 0-1.45 3-2 3zm0 28H2c-.55 0-2 3-2 3 0 .55.45 1 1 1h26c.55 0 1-.45 1-1 0 0-1.45-3-2-3z"/><path fill= [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1f9f9.svg b/browser/components/torpreferences/content/bridgemoji/1f9f9.svg new file mode 100644 index 0000000000000..2bcbda87e3e86 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1f9f9.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#C1694F" d="M19.175 16.825c-.706-.706-.706-1.861 0-2.567L32.433 1C33.139.294 34.294.294 35 1c.706.706.706 1.861 0 2.567L21.742 16.825c-.706.706-1.861.706-2.567 0z"/><path fill="#66757F" d="M8.839 27.365l-.204-.204c-.941-.941-.941-2.48 0-3.42l8.35-8.35c.941-.941 2.48-.941 3.42 0l.204.204c.941.941.941 2.48 0 3.42l-8.35 8.35c-.94.941-2.48.941-3.42 0z"/><path fill="#FFCC4D" d="M19.389 26.341c1.688-1.688.671-5.441-1.809-7 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1fa73.svg b/browser/components/torpreferences/content/bridgemoji/1fa73.svg new file mode 100644 index 0000000000000..03e70ca89e718 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1fa73.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#78B159" d="M31 6V1.955c0-.527-.428-.955-.955-.955H5.955C5.428 1 5 1.428 5 1.955V6L0 31l14 4 4-10.545L22 35l14-4-5-25z"/><g fill="#5D9040"><path d="M5 4h26v2H5zm8.782 2h-2.074c-1.378 4.107-5.46 5.399-7.87 5.807l-.421 2.107c3.606-.408 8.9-2.403 10.365-7.914z"/><path d="M32.583 13.914l-.421-2.107c-2.41-.408-6.491-1.701-7.87-5.807h-2.074c1.464 5.511 6.759 7.506 10.365 7.914zM17 6v21.091l1-2.636 1 2.636V6z"/><path d="M18 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1fa80.svg b/browser/components/torpreferences/content/bridgemoji/1fa80.svg new file mode 100644 index 0000000000000..fc9af9be9d2d8 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1fa80.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><ellipse fill="#BE1931" cx="17.722" cy="21.507" rx="12.917" ry="13.993"/><ellipse fill="#A0041E" cx="15.569" cy="21.507" rx="12.917" ry="13.993"/><path fill="#99AAB5" d="M28.298 13.741c-1.643 0-3.457-.825-5.227-1.629-2.124-.966-4.322-1.966-5.46-1.113l-1.167-1.555c2.06-1.544 4.79-.303 7.431.898 2.023.92 4.117 1.868 5.327 1.263.664-.331 1.155-1.195 1.459-2.566l1.899.422c-.444 2-1.259 3.27-2.49 3.885-.558.278-1.153.395-1.772.395z"/ [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1fa81.svg b/browser/components/torpreferences/content/bridgemoji/1fa81.svg new file mode 100644 index 0000000000000..fd8605e468471 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1fa81.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#55ACEE" d="M22.45 32.289L.592 18.752 6.55.711l18.042 5.958z"/><path fill="#269" d="M20.543 29.5c-.366 0-.719-.201-.895-.551L6.929 3.687c-.249-.493-.05-1.095.443-1.343.494-.249 1.095-.05 1.343.443l12.72 25.264c.248.493.05 1.094-.444 1.343-.143.072-.297.106-.448.106z"/><path fill="#269" d="M3.12 18.48c-.366 0-.718-.201-.894-.55-.249-.493-.05-1.095.443-1.343l18.947-9.54c.49-.25 1.094-.05 1.343.443.248.493.05 1.095-.443 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1fa83.svg b/browser/components/torpreferences/content/bridgemoji/1fa83.svg new file mode 100644 index 0000000000000..3de58a8f2cc51 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1fa83.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#CCD6DD" d="M31.497 6.06s.244-4.293-6.702-3.83c-8.617.574-18.599 9.155-18.95 17.159-.267 6.089 8.109 1.203 11.139-1.96-.045-.045 3.282 1.426 4.752 4.545-3.267 2.733-8.047 4.803-11.644 5.109-6.282.535-8.546-2.727-7.557-9.15C3.758 10 13.588.858 24.604.795c8.377-.048 6.893 5.265 6.893 5.265z"/><path fill="#662113" d="M32.19 32.317c.351-1.768-.27-19.086-4.411-22.615S5.541 7.73 3.881 8.435c-2.24.95-1.352 3.835.184 3.93 5. [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1fa90.svg b/browser/components/torpreferences/content/bridgemoji/1fa90.svg new file mode 100644 index 0000000000000..46a0c53cea531 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1fa90.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><circle fill="#FFCC4D" cx="18" cy="18" r="10.694"/><path fill="#F4900C" d="M10.229 22.751c-.985.067-1.689-.308-2.203-.917.214.557.487 1.081.788 1.588.771.289 1.591.41 2.54-.272-.463-.227-.88-.415-1.125-.399zM23.086 8.608c.045.328-.187.5-.75.363-.955-.232-1.793.776-2.274 1.619-.947 1.657-4.854 3.524-4.857 2.087-.001-.679-3.452.843-3.893.161-.417-.644-1.663-.396-1.921-1.168-1.135 1.544-1.869 3.402-2.04 5.422.377.718.864 1.282 1.35 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1fa91.svg b/browser/components/torpreferences/content/bridgemoji/1fa91.svg new file mode 100644 index 0000000000000..8db580193f882 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1fa91.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#A4523A" d="M12 20c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2s2-.9 2-2V22c0-1.1-.9-2-2-2zm18 0c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2s2-.9 2-2V22c0-1.1-.9-2-2-2z"/><path fill="#C1694F" d="M13 2h16v8H13z"/><path fill="#C1694F" d="M16 9h2v13h-2zm4 0h2v13h-2zm4 0h2v13h-2zM7 23c-1.1 0-2 .9-2 2v9c0 1.1.9 2 2 2s2-.9 2-2v-9c0-1.1-.9-2-2-2z"/><path fill="#C1694F" d="M25 21c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2s2-.9 2-2V23c0-1.1-.9-2-2-2zM12 0c-1 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1fa95.svg b/browser/components/torpreferences/content/bridgemoji/1fa95.svg new file mode 100644 index 0000000000000..da6e25d06b84f --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1fa95.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><circle fill="#67757F" cx="10.047" cy="16.953" r="1"/><circle fill="#67757F" cx="1.047" cy="25.953" r="1"/><circle fill="#67757F" cx="19.047" cy="25.953" r="1"/><circle fill="#67757F" cx="10.047" cy="34.953" r="1"/><circle fill="#67757F" cx="3.547" cy="19.828" r="1"/><circle fill="#67757F" cx="16.214" cy="32.495" r="1"/><path fill="#292F33" d="M32.339 5.338l-15.45 17.334-3.561-3.56L30.66 3.66z"/><ellipse transform="rotate(-52.01 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1fa97.svg b/browser/components/torpreferences/content/bridgemoji/1fa97.svg new file mode 100644 index 0000000000000..c9c21ca2a2965 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1fa97.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFE8B6" d="M17.483 30.971c-.574.051-1.099-.36-1.168-.93L13.427 5.136c-.069-.57.676-1.133 1.657-1.22.981-.087 1.811.336 1.844.909l1.541 25.024c.031.574-.412 1.07-.986 1.122zm4.199-.146c-.574-.011-1.051-.476-1.058-1.051l-.192-25.071c-.007-.574.791-1.054 1.773-1.034.982.019 1.76.528 1.731 1.102l-1.157 25.045c-.029.574-.522 1.02-1.097 1.009zm4.185.306c-.57-.073-.993-.586-.939-1.158l2.501-24.947c.054-.572.899-.963 1.873- [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1fab6.svg b/browser/components/torpreferences/content/bridgemoji/1fab6.svg new file mode 100644 index 0000000000000..8e70d6cd5c39b --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1fab6.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#C1694F" d="M4.048 29.644c-.811-.558-1.541-4.073-.936-4.404.738-.402.686.835 2.255 2.362 1.569 1.528 6.47.913 7.708 1.326 1.363.455-6.385 2.533-9.027.716z"/><path fill="#D99E82" d="M5.367 27.603C4 22 4.655 18.919 5.433 16.861 6.8 13.24 16.699 5.169 23.8 2.637 25.678 1.967 31.62 1 35 1c.589 2.332-1.174 6.717-1.62 7.518-1.009 1.81-3.564 4.273-8.646 9.482-.252.258-5.119-.46-5.376-.191-.283.296 4.044 1.579 3.755 1.889-.7 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1fad0.svg b/browser/components/torpreferences/content/bridgemoji/1fad0.svg new file mode 100644 index 0000000000000..34e68d6b49b17 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1fad0.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#5C913B" d="M8.089 1s5.858.616 8.54 4.06c3.206 4.117.891 7.962.891 7.962s-4.825-.425-7.03-3.157C7.287 5.896 8.089 1 8.089 1z"/><path fill="#77B255" d="M21.901 1s.913 4.617-1.006 7.47c-2.293 3.41-5.676 2.54-5.676 2.54s-.813-3.784.691-6.106C18.096 1.53 21.901 1 21.901 1z"/><ellipse fill="#5864B7" cx="23.737" cy="11.536" rx="6.916" ry="6.027"/><path fill="#334372" d="M19.34 16.996c0-.851-.124-1.64-.34-2.373 1.231-.409 2 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1fad2.svg b/browser/components/torpreferences/content/bridgemoji/1fad2.svg new file mode 100644 index 0000000000000..b84ce6a1f4800 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1fad2.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#909B50" d="M13.241 23.993c1.274-1.617 4.455-.891 6.416.535s3.089 4.337 1.901 5.941-4.158 1.96-6.416.416c-2.258-1.545-3.446-4.931-1.901-6.892zm4.455-20.792c2.802.342 3.208 2.97 2.792 5.703-.416 2.733-2.436 5.347-4.693 5.228-2.257-.119-3.149-3.446-2.792-6.238s2.258-4.99 4.693-4.693z"/><path fill="#C1694F" d="M1.3 32.876c-.08 0-.161-.016-.239-.048-.319-.133-.47-.498-.337-.817 2.393-5.756 6.062-8.645 8.72-10.055 1.57-.8 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/1fad6.svg b/browser/components/torpreferences/content/bridgemoji/1fad6.svg new file mode 100644 index 0000000000000..9e6894dafeee6 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/1fad6.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><ellipse fill="#269" cx="17.5" cy="31.5" rx="8" ry="2"/><path fill="#3B88C3" d="M11.173 31.777s3.297.757 6.371.668c2.539-.074 5.614-.356 6.505-.757 0 0-1.069 1.381-6.416 1.381s-6.46-1.292-6.46-1.292z"/><ellipse fill="#269" cx="17.5" cy="15.25" rx="8.5" ry="2.25"/><path fill="#3B88C3" d="M33.582 16.654c3.518-.202 2.185 1.133 1.072 1.712-.505.262-1.515 1.738-2.098 4.234-.455 1.948-.847 5.658-5.213 5.391-2.994-.183-.045-7.084-.045- [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/23f0.svg b/browser/components/torpreferences/content/bridgemoji/23f0.svg new file mode 100644 index 0000000000000..ea9ad14316615 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/23f0.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M20 6.042c0 1.112-.903 2.014-2 2.014s-2-.902-2-2.014V2.014C16 .901 16.903 0 18 0s2 .901 2 2.014v4.028z"/><path fill="#FFAC33" d="M9.18 36c-.224 0-.452-.052-.666-.159-.736-.374-1.035-1.28-.667-2.027l8.94-18.127c.252-.512.768-.835 1.333-.835s1.081.323 1.333.835l8.941 18.127c.368.747.07 1.653-.666 2.027-.736.372-1.631.07-1.999-.676L18.121 19.74l-7.607 15.425c-.262.529-.788.835-1.334.835z"/><path fill="#58595 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/2600.svg b/browser/components/torpreferences/content/bridgemoji/2600.svg new file mode 100644 index 0000000000000..8602baef7e5aa --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/2600.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFAC33" d="M16 2s0-2 2-2 2 2 2 2v2s0 2-2 2-2-2-2-2V2zm18 14s2 0 2 2-2 2-2 2h-2s-2 0-2-2 2-2 2-2h2zM4 16s2 0 2 2-2 2-2 2H2s-2 0-2-2 2-2 2-2h2zm5.121-8.707s1.414 1.414 0 2.828-2.828 0-2.828 0L4.878 8.708s-1.414-1.414 0-2.829c1.415-1.414 2.829 0 2.829 0l1.414 1.414zm21 21s1.414 1.414 0 2.828-2.828 0-2.828 0l-1.414-1.414s-1.414-1.414 0-2.828 2.828 0 2.828 0l1.414 1.414zm-.413-18.172s-1.414 1.414-2.828 0 0-2.828 0-2.828l [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/2602.svg b/browser/components/torpreferences/content/bridgemoji/2602.svg new file mode 100644 index 0000000000000..7c633302e7e8f --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/2602.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#66757F" d="M9 28.5c0-.828.672-1.5 1.5-1.5s1.5.672 1.5 1.5v.5s0 3 3 3 3-3 3-3V3.5c0-.829.671-1.5 1.5-1.5s1.5.671 1.5 1.5V29s0 6-6 6-6-6-6-6v-.5z"/><path fill="#744EAA" d="M19.5 4C28.612 4 36 9.82 36 17c0 0 0 2-1 2s-3-2-3-2H7s-2 2-3 2-1-2-1-2C3 9.82 10.387 4 19.5 4z"/><path fill="#9266CC" d="M19.5 4C26.403 4 32 9.82 32 17c0 0 0 2-2 2s-5-2-5-2H14s-3 2-5 2-2-2-2-2C7 9.82 12.596 4 19.5 4z"/><path fill="#744EAA" d="M19.5 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/2604.svg b/browser/components/torpreferences/content/bridgemoji/2604.svg new file mode 100644 index 0000000000000..07df915c4f9b6 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/2604.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#5DADEC" d="M33.662.049c-1.148-.077-5.869-.75-17.522 6.665C4.488 14.129-1.646 26.609 3.604 33.329c1.104 1.413 5.518 4.283 10.682.53 3.247-2.359 4.242-7.52 7.15-14.434 1.986-4.723 6.444-13.594 12.668-17.611 1.942-.97.22-1.72-.442-1.765z"/><path fill="#8CCAF7" d="M16.625 13.651c-.265-1.059.971-4.281 1.324-5.164-6.437 2.929-12.509 11.616-12.47 13.18.006.227.139.305.42.193 5.398-2.166 8.882 1.07 9.807 3.751.095.274.214.4 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/260e.svg b/browser/components/torpreferences/content/bridgemoji/260e.svg new file mode 100644 index 0000000000000..e65124faa5485 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/260e.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#BE1931" d="M36 11.5C36 8.462 33 4 18 4S0 8.462 0 11.5c0 .045.019.076.022.119-.012.196-.022.402-.022.631C0 14.873 2.239 16 5 16s5-1.127 5-3.75c0-.218-.021-.412-.051-.597C12.374 11.302 15.102 11 18 11s5.626.302 8.051.653c-.03.185-.051.379-.051.597 0 2.623 2.238 3.75 5 3.75s5-1.127 5-3.75c0-.225-.009-.429-.024-.621.004-.046.024-.08.024-.129z"/><path fill="#DD2E44" d="M34.934 23c-.482-1.031-2.31-4.19-3.968-7.007C29.408 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/2693.svg b/browser/components/torpreferences/content/bridgemoji/2693.svg new file mode 100644 index 0000000000000..09f3fe4162e12 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/2693.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#269" d="M30.5 18.572L26 25h2.575c-1.13 3.988-4.445 7.05-8.575 7.81V17h3c1.104 0 2-.896 2-2s-.896-2-2-2h-3v-1.349h-4V13h-3c-1.104 0-2 .896-2 2s.896 2 2 2h3v15.81c-4.13-.76-7.445-3.821-8.575-7.81H10l-4.5-6.428L1 25h3.33C5.705 31.289 11.299 36 18 36s12.295-4.711 13.67-11H35l-4.5-6.428z"/><path fill="#269" d="M18 0c-3.314 0-6 2.686-6 6s2.686 6 6 6 6-2.686 6-6-2.686-6-6-6zm0 9c-1.657 0-3-1.343-3-3s1.343-3 3-3 3 1.343 3 3 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/2696.svg b/browser/components/torpreferences/content/bridgemoji/2696.svg new file mode 100644 index 0000000000000..61af8441c5a75 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/2696.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#66757F" d="M3.923 22.923c-.212.511-.798.751-1.308.539-.51-.213-.751-.798-.539-1.308L6.693 9.616c.212-.51.798-.751 1.307-.539.51.213.751.798.539 1.308L3.923 22.923z"/><path fill="#66757F" d="M13.923 22.154c.212.51-.029 1.095-.539 1.308-.51.212-1.095-.028-1.308-.539L7.461 10.385c-.212-.51.029-1.095.539-1.308.51-.212 1.095.029 1.308.539l4.615 12.538zm10.001.769c-.213.511-.799.751-1.309.539-.51-.213-.75-.798-.538-1.308l [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/26bd.svg b/browser/components/torpreferences/content/bridgemoji/26bd.svg new file mode 100644 index 0000000000000..f24749cb5eab3 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/26bd.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><circle fill="#F5F8FA" cx="18" cy="18" r="18"/><path d="M18 11c-.552 0-1-.448-1-1V3c0-.552.448-1 1-1s1 .448 1 1v7c0 .552-.448 1-1 1zm-6.583 4.5c-.1 0-.202-.015-.302-.047l-8.041-2.542c-.527-.167-.819-.728-.652-1.255.166-.527.73-.818 1.255-.652l8.042 2.542c.527.167.819.729.652 1.255-.136.426-.53.699-.954.699zm13.625-.291c-.434 0-.833-.285-.96-.722-.154-.531.151-1.085.682-1.239l6.75-1.958c.531-.153 1.085.153 1.238.682.154.531-.151 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/26f2.svg b/browser/components/torpreferences/content/bridgemoji/26f2.svg new file mode 100644 index 0000000000000..659c22850c5d3 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/26f2.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#99AAB5" d="M1 22.923v6.538C1 33.073 8.611 36 18 36s17-2.927 17-6.538v-6.538H1z"/><ellipse fill="#E1E8ED" cx="18" cy="22.923" rx="17" ry="6.538"/><path fill="#AAB8C2" d="M18 20.308c6.7 0 12.314 1.668 13.913 3.923.297-.419.472-.855.472-1.308 0-2.889-6.44-5.231-14.385-5.231S3.615 20.034 3.615 22.923c0 .452.175.889.472 1.308C5.686 21.976 11.3 20.308 18 20.308z"/><ellipse fill="#3B88C3" cx="18" cy="24.231" rx="13.913" ry [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/26f5.svg b/browser/components/torpreferences/content/bridgemoji/26f5.svg new file mode 100644 index 0000000000000..c76c0dedfb1f1 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/26f5.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#A7A9AC" d="M20 26c0 .553-.447 1-1 1-.552 0-1-.447-1-1V1c0-.552.448-1 1-1 .553 0 1 .448 1 1v25z"/><path fill="#D1D3D4" d="M3 24h31v8H12c-6 0-9-8-9-8z"/><path fill="#55ACEE" d="M0 30h36v6H0z"/><path fill="#FFAC33" d="M5 22s2-5 5-9 8-8 8-8-1 11-1 16v1s-3-1-6-1-6 1-6 1z"/><path fill="#F4900C" d="M20 2s6 6 9 11c2.771 4.618 4 9 4 9s-3-1-6-1-6 1-6 1v-1c0-9-1-19-1-19z"/><path fill="#E6E7E8" d="M2 24c-.552 0-1 .447-1 1s.448 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/2708.svg b/browser/components/torpreferences/content/bridgemoji/2708.svg new file mode 100644 index 0000000000000..ebce3afbc7832 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/2708.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#66757F" d="M30 23.828c-.391.392-1.023.392-1.414 0l-1.414-1.414c-.392-.391-.392-1.024 0-1.414L30 18.172c.391-.391 1.023-.391 1.414 0l1.414 1.414c.392.391.392 1.024 0 1.414L30 23.828zm-15-15c-.391.392-1.023.392-1.414 0l-1.414-1.414c-.392-.391-.392-1.023 0-1.414L15 3.172c.391-.391 1.023-.391 1.414 0l1.414 1.414c.392.391.392 1.023 0 1.414L15 8.828z"/><path fill="#55ACEE" d="M2 22c2 0 11 1 11 1s1 9 1 11-2 2-3 1-4-6-4-6-5 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/270f.svg b/browser/components/torpreferences/content/bridgemoji/270f.svg new file mode 100644 index 0000000000000..a9b69e1b29529 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/270f.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#D99E82" d="M35.222 33.598c-.647-2.101-1.705-6.059-2.325-7.566-.501-1.216-.969-2.438-1.544-3.014-.575-.575-1.553-.53-2.143.058 0 0-2.469 1.675-3.354 2.783-1.108.882-2.785 3.357-2.785 3.357-.59.59-.635 1.567-.06 2.143.576.575 1.798 1.043 3.015 1.544 1.506.62 5.465 1.676 7.566 2.325.359.11 1.74-1.271 1.63-1.63z"/><path fill="#EA596E" d="M13.643 5.308c1.151 1.151 1.151 3.016 0 4.167l-4.167 4.168c-1.151 1.15-3.018 1.15-4 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/2728.svg b/browser/components/torpreferences/content/bridgemoji/2728.svg new file mode 100644 index 0000000000000..347ad12abbd7b --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/2728.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFAC33" d="M34.347 16.893l-8.899-3.294-3.323-10.891c-.128-.42-.517-.708-.956-.708-.439 0-.828.288-.956.708l-3.322 10.891-8.9 3.294c-.393.146-.653.519-.653.938 0 .418.26.793.653.938l8.895 3.293 3.324 11.223c.126.424.516.715.959.715.442 0 .833-.291.959-.716l3.324-11.223 8.896-3.293c.391-.144.652-.518.652-.937 0-.418-.261-.792-.653-.938z"/><path fill="#FFCC4D" d="M14.347 27.894l-2.314-.856-.9-3.3c-.118-.436-.513-.738-. [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/bridgemoji/2744.svg b/browser/components/torpreferences/content/bridgemoji/2744.svg new file mode 100644 index 0000000000000..258c161bb9bb8 --- /dev/null +++ b/browser/components/torpreferences/content/bridgemoji/2744.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#88C9F9" d="M19 27.586V8.415l4.828-4.829s.707-.707 0-1.415c-.707-.707-1.414 0-1.414 0L19 5.586V1s0-1-1-1-1 1-1 1v4.586l-3.414-3.415s-.707-.707-1.414 0c-.707.708 0 1.415 0 1.415L17 8.415v19.171l-4.828 4.828s-.707.707 0 1.414 1.414 0 1.414 0L17 30.414V35s0 1 1 1 1-1 1-1v-4.586l3.414 3.414s.707.707 1.414 0 0-1.414 0-1.414L19 27.586z"/><path fill="#88C9F9" d="M34.622 20.866c-.259-.966-1.225-.707-1.225-.707l-6.595 1.767-1 [...] \ No newline at end of file diff --git a/browser/components/torpreferences/content/builtinBridgeDialog.jsm b/browser/components/torpreferences/content/builtinBridgeDialog.jsm new file mode 100644 index 0000000000000..5b5e1560cd466 --- /dev/null +++ b/browser/components/torpreferences/content/builtinBridgeDialog.jsm @@ -0,0 +1,120 @@ +"use strict"; + +var EXPORTED_SYMBOLS = ["BuiltinBridgeDialog"]; + +const { TorStrings } = ChromeUtils.import("resource:///modules/TorStrings.jsm"); + +const { + TorSettings, + TorBridgeSource, + TorBuiltinBridgeTypes, +} = ChromeUtils.import("resource:///modules/TorSettings.jsm"); + +class BuiltinBridgeDialog { + constructor() { + this._dialog = null; + this._bridgeType = ""; + } + + static get selectors() { + return { + header: "#torPreferences-builtinBridge-header", + description: "#torPreferences-builtinBridge-description", + radiogroup: "#torPreferences-builtinBridge-typeSelection", + obfsRadio: "#torPreferences-builtinBridges-radioObfs", + obfsDescr: "#torPreferences-builtinBridges-descrObfs", + snowflakeRadio: "#torPreferences-builtinBridges-radioSnowflake", + snowflakeDescr: "#torPreferences-builtinBridges-descrSnowflake", + meekAzureRadio: "#torPreferences-builtinBridges-radioMeekAzure", + meekAzureDescr: "#torPreferences-builtinBridges-descrMeekAzure", + }; + } + + _populateXUL(window, aDialog) { + const selectors = BuiltinBridgeDialog.selectors; + + this._dialog = aDialog; + const dialogWin = this._dialog.parentElement; + dialogWin.setAttribute("title", TorStrings.settings.builtinBridgeTitle); + + this._dialog.querySelector(selectors.header).textContent = + TorStrings.settings.builtinBridgeHeader; + this._dialog.querySelector(selectors.description).textContent = + TorStrings.settings.builtinBridgeDescription; + let radioGroup = this._dialog.querySelector(selectors.radiogroup); + + let types = { + obfs4: { + elemRadio: this._dialog.querySelector(selectors.obfsRadio), + elemDescr: this._dialog.querySelector(selectors.obfsDescr), + label: TorStrings.settings.builtinBridgeObfs4, + descr: TorStrings.settings.builtinBridgeObfs4Description, + }, + snowflake: { + elemRadio: this._dialog.querySelector(selectors.snowflakeRadio), + elemDescr: this._dialog.querySelector(selectors.snowflakeDescr), + label: TorStrings.settings.builtinBridgeSnowflake, + descr: TorStrings.settings.builtinBridgeSnowflakeDescription, + }, + "meek-azure": { + elemRadio: this._dialog.querySelector(selectors.meekAzureRadio), + elemDescr: this._dialog.querySelector(selectors.meekAzureDescr), + label: TorStrings.settings.builtinBridgeMeekAzure, + descr: TorStrings.settings.builtinBridgeMeekAzureDescription, + }, + }; + + TorBuiltinBridgeTypes.forEach(type => { + types[type].elemRadio.setAttribute("label", types[type].label); + types[type].elemRadio.setAttribute("hidden", "false"); + types[type].elemDescr.textContent = types[type].descr; + types[type].elemDescr.removeAttribute("hidden"); + }); + + if ( + TorSettings.bridges.enabled && + TorSettings.bridges.source == TorBridgeSource.BuiltIn + ) { + radioGroup.selectedItem = + types[TorSettings.bridges.builtin_type]?.elemRadio; + this._bridgeType = TorSettings.bridges.builtin_type; + } else { + radioGroup.selectedItem = null; + this._bridgeType = ""; + } + + this._dialog.addEventListener("dialogaccept", e => { + this._bridgeType = radioGroup.value; + }); + this._dialog.addEventListener("dialoghelp", e => { + window.top.openTrustedLinkIn( + TorStrings.settings.learnMoreCircumventionURL, + "tab" + ); + }); + + // Hack: see the CSS + this._dialog.style.minWidth = '0'; + this._dialog.style.minHeight = '0'; + } + + init(window, aDialog) { + // defer to later until firefox has populated the dialog with all our elements + window.setTimeout(() => { + this._populateXUL(window, aDialog); + }, 0); + } + + openDialog(gSubDialog, aCloseCallback) { + gSubDialog.open( + "chrome://browser/content/torpreferences/builtinBridgeDialog.xhtml", + { + features: "resizable=yes", + closingCallback: () => { + aCloseCallback(this._bridgeType); + }, + }, + this + ); + } +} diff --git a/browser/components/torpreferences/content/builtinBridgeDialog.xhtml b/browser/components/torpreferences/content/builtinBridgeDialog.xhtml new file mode 100644 index 0000000000000..61c6110f327a7 --- /dev/null +++ b/browser/components/torpreferences/content/builtinBridgeDialog.xhtml @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?xml-stylesheet href="chrome://global/skin/" type="text/css"?> +<?xml-stylesheet href="chrome://browser/skin/preferences/preferences.css"?> +<?xml-stylesheet href="chrome://browser/content/torpreferences/torPreferences.css"?> + +<window type="child" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" + xmlns:html="http://www.w3.org/1999/xhtml%22%3E +<dialog id="torPreferences-builtinBridge-dialog" + buttons="help,accept,cancel"> + <html:h3 id="torPreferences-builtinBridge-header">​</html:h3> + <description> + <html:div id="torPreferences-builtinBridge-description">​<br/>​</html:div> + </description> + <radiogroup id="torPreferences-builtinBridge-typeSelection"> + <radio id="torPreferences-builtinBridges-radioObfs" value="obfs4" hidden="true"/> + <html:div id="torPreferences-builtinBridges-descrObfs" class="indent" hidden="true">​</html:div> + <radio id="torPreferences-builtinBridges-radioSnowflake" value="snowflake" hidden="true"/> + <html:div id="torPreferences-builtinBridges-descrSnowflake" class="indent" hidden="true">​</html:div> + <radio id="torPreferences-builtinBridges-radioMeekAzure" value="meek-azure" hidden="true"/> + <html:div id="torPreferences-builtinBridges-descrMeekAzure" class="indent" hidden="true">​</html:div> + </radiogroup> + <script type="application/javascript"><![CDATA[ + "use strict"; + + let builtinBridgeDialog = window.arguments[0]; + let dialog = document.getElementById("torPreferences-builtinBridge-dialog"); + builtinBridgeDialog.init(window, dialog); + ]]></script> +</dialog> +</window> diff --git a/browser/components/torpreferences/content/connectionCategory.inc.xhtml b/browser/components/torpreferences/content/connectionCategory.inc.xhtml new file mode 100644 index 0000000000000..15cf24cfe6950 --- /dev/null +++ b/browser/components/torpreferences/content/connectionCategory.inc.xhtml @@ -0,0 +1,9 @@ +<richlistitem id="category-connection" + class="category" + value="paneConnection" + helpTopic="prefs-connection" + align="center" + hidden="true"> + <image class="category-icon"/> + <label id="torPreferences-labelCategory" class="category-name" flex="1" value="Connection"/> +</richlistitem> diff --git a/browser/components/torpreferences/content/connectionPane.js b/browser/components/torpreferences/content/connectionPane.js new file mode 100644 index 0000000000000..644b13dc9cb8e --- /dev/null +++ b/browser/components/torpreferences/content/connectionPane.js @@ -0,0 +1,1150 @@ +"use strict"; + +/* global Services, gSubDialog */ + +const { setTimeout, clearTimeout } = ChromeUtils.import( + "resource://gre/modules/Timer.jsm" +); + +const { + TorSettings, + TorSettingsTopics, + TorSettingsData, + TorBridgeSource, +} = ChromeUtils.import("resource:///modules/TorSettings.jsm"); + +const { TorProtocolService } = ChromeUtils.import( + "resource:///modules/TorProtocolService.jsm" +); + +const { + TorConnect, + TorConnectTopics, + TorConnectState, + TorCensorshipLevel, +} = ChromeUtils.import("resource:///modules/TorConnect.jsm"); + +const { TorLogDialog } = ChromeUtils.import( + "chrome://browser/content/torpreferences/torLogDialog.jsm" +); + +const { ConnectionSettingsDialog } = ChromeUtils.import( + "chrome://browser/content/torpreferences/connectionSettingsDialog.jsm" +); + +const { BridgeQrDialog } = ChromeUtils.import( + "chrome://browser/content/torpreferences/bridgeQrDialog.jsm" +); + +const { BuiltinBridgeDialog } = ChromeUtils.import( + "chrome://browser/content/torpreferences/builtinBridgeDialog.jsm" +); + +const { RequestBridgeDialog } = ChromeUtils.import( + "chrome://browser/content/torpreferences/requestBridgeDialog.jsm" +); + +const { ProvideBridgeDialog } = ChromeUtils.import( + "chrome://browser/content/torpreferences/provideBridgeDialog.jsm" +); + +const { MoatRPC } = ChromeUtils.import("resource:///modules/Moat.jsm"); + +const { QRCode } = ChromeUtils.import("resource://gre/modules/QRCode.jsm"); + +ChromeUtils.defineModuleGetter( + this, + "TorStrings", + "resource:///modules/TorStrings.jsm" +); + +const InternetStatus = Object.freeze({ + Unknown: 0, + Online: 1, + Offline: -1, +}); + +/* + Connection Pane + + Code for populating the XUL in about:preferences#connection, handling input events, interfacing with tor-launcher +*/ +const gConnectionPane = (function() { + /* CSS selectors for all of the Tor Network DOM elements we need to access */ + const selectors = { + category: { + title: "label#torPreferences-labelCategory", + }, + messageBox: { + box: "div#torPreferences-connectMessageBox", + message: "td#torPreferences-connectMessageBox-message", + button: "button#torPreferences-connectMessageBox-button", + }, + torPreferences: { + header: "h1#torPreferences-header", + description: "span#torPreferences-description", + learnMore: "label#torPreferences-learnMore", + }, + status: { + internetLabel: "#torPreferences-status-internet-label", + internetTest: "#torPreferences-status-internet-test", + internetIcon: "#torPreferences-status-internet-statusIcon", + internetStatus: "#torPreferences-status-internet-status", + torLabel: "#torPreferences-status-tor-label", + torIcon: "#torPreferences-status-tor-statusIcon", + torStatus: "#torPreferences-status-tor-status", + }, + quickstart: { + header: "h2#torPreferences-quickstart-header", + description: "span#torPreferences-quickstart-description", + enableQuickstartCheckbox: "checkbox#torPreferences-quickstart-toggle", + }, + bridges: { + header: "h1#torPreferences-bridges-header", + description: "span#torPreferences-bridges-description", + learnMore: "label#torPreferences-bridges-learnMore", + locationGroup: "#torPreferences-bridges-locationGroup", + locationLabel: "#torPreferences-bridges-locationLabel", + location: "#torPreferences-bridges-location", + locationEntries: "#torPreferences-bridges-locationEntries", + chooseForMe: "#torPreferences-bridges-buttonChooseBridgeForMe", + currentHeader: "#torPreferences-currentBridges-header", + currentHeaderText: "#torPreferences-currentBridges-headerText", + currentDescriptionText: "#torPreferences-currentBridges-description", + switch: "#torPreferences-currentBridges-switch", + cards: "#torPreferences-currentBridges-cards", + cardTemplate: "#torPreferences-bridgeCard-template", + card: ".torPreferences-bridgeCard", + cardId: ".torPreferences-bridgeCard-id", + cardHeadingAddr: ".torPreferences-bridgeCard-headingAddr", + cardConnectedLabel: ".torPreferences-bridgeCard-connectedLabel", + cardOptions: ".torPreferences-bridgeCard-options", + cardMenu: "#torPreferences-bridgeCard-menu", + cardQrGrid: ".torPreferences-bridgeCard-grid", + cardQrContainer: ".torPreferences-bridgeCard-qr", + cardQr: ".torPreferences-bridgeCard-qrCode", + cardShare: ".torPreferences-bridgeCard-share", + cardAddr: ".torPreferences-bridgeCard-addr", + cardLearnMore: ".torPreferences-bridgeCard-learnMore", + cardCopy: ".torPreferences-bridgeCard-copyButton", + showAll: "#torPreferences-currentBridges-showAll", + removeAll: "#torPreferences-currentBridges-removeAll", + addHeader: "#torPreferences-addBridge-header", + addBuiltinLabel: "#torPreferences-addBridge-labelBuiltinBridge", + addBuiltinButton: "#torPreferences-addBridge-buttonBuiltinBridge", + requestLabel: "#torPreferences-addBridge-labelRequestBridge", + requestButton: "#torPreferences-addBridge-buttonRequestBridge", + enterLabel: "#torPreferences-addBridge-labelEnterBridge", + enterButton: "#torPreferences-addBridge-buttonEnterBridge", + removeOverlay: "#bridge-remove-overlay", + removeModal: "#bridge-remove-modal", + removeDismiss: "#bridge-remove-dismiss", + removeQuestion: "#bridge-remove-question", + removeWarning: "#bridge-remove-warning", + removeConfirm: "#bridge-remove-confirm", + removeCancel: "#bridge-remove-cancel", + }, + advanced: { + header: "h1#torPreferences-advanced-header", + label: "#torPreferences-advanced-label", + button: "#torPreferences-advanced-button", + torLogsLabel: "label#torPreferences-torLogs", + torLogsButton: "button#torPreferences-buttonTorLogs", + }, + }; /* selectors */ + + let retval = { + // cached frequently accessed DOM elements + _enableQuickstartCheckbox: null, + + _internetStatus: InternetStatus.Unknown, + + _controller: null, + + _currentBridge: "", + + // disables the provided list of elements + _setElementsDisabled(elements, disabled) { + for (let currentElement of elements) { + currentElement.disabled = disabled; + } + }, + + // populate xul with strings and cache the relevant elements + _populateXUL() { + // saves tor settings to disk when navigate away from about:preferences + window.addEventListener("blur", val => { + TorProtocolService.flushSettings(); + }); + + document + .querySelector(selectors.category.title) + .setAttribute("value", TorStrings.settings.categoryTitle); + + let prefpane = document.getElementById("mainPrefPane"); + + // 'Connect to Tor' Message Bar + + const messageBox = prefpane.querySelector(selectors.messageBox.box); + const messageBoxMessage = prefpane.querySelector( + selectors.messageBox.message + ); + const messageBoxButton = prefpane.querySelector( + selectors.messageBox.button + ); + // wire up connect button + messageBoxButton.addEventListener("click", () => { + TorConnect.beginBootstrap(); + TorConnect.openTorConnect(); + }); + + this._populateMessagebox = () => { + if ( + TorConnect.shouldShowTorConnect && + TorConnect.state === TorConnectState.Configuring + ) { + // set messagebox style and text + if (TorProtocolService.torBootstrapErrorOccurred()) { + messageBox.parentNode.style.display = null; + messageBox.className = "error"; + messageBoxMessage.innerText = TorStrings.torConnect.tryAgainMessage; + messageBoxButton.innerText = TorStrings.torConnect.tryAgain; + } else { + messageBox.parentNode.style.display = null; + messageBox.className = "warning"; + messageBoxMessage.innerText = TorStrings.torConnect.connectMessage; + messageBoxButton.innerText = TorStrings.torConnect.torConnectButton; + } + } else { + // we need to explicitly hide the groupbox, as switching between + // the tor pane and other panes will 'unhide' (via the 'hidden' + // attribute) the groupbox, offsetting all of the content down + // by the groupbox's margin (even if content is 0 height) + messageBox.parentNode.style.display = "none"; + messageBox.className = "hidden"; + messageBoxMessage.innerText = ""; + messageBoxButton.innerText = ""; + } + }; + this._populateMessagebox(); + + // Heading + prefpane.querySelector(selectors.torPreferences.header).innerText = + TorStrings.settings.categoryTitle; + prefpane.querySelector(selectors.torPreferences.description).textContent = + TorStrings.settings.torPreferencesDescription; + { + let learnMore = prefpane.querySelector( + selectors.torPreferences.learnMore + ); + learnMore.setAttribute("value", TorStrings.settings.learnMore); + learnMore.setAttribute( + "href", + TorStrings.settings.learnMoreTorBrowserURL + ); + if (TorStrings.settings.learnMoreTorBrowserURL.startsWith("about:")) { + learnMore.setAttribute("useoriginprincipal", "true"); + } + } + + // Internet and Tor status + prefpane.querySelector(selectors.status.internetLabel).textContent = + TorStrings.settings.statusInternetLabel; + prefpane.querySelector(selectors.status.torLabel).textContent = + TorStrings.settings.statusTorLabel; + const internetTest = prefpane.querySelector( + selectors.status.internetTest + ); + internetTest.setAttribute( + "label", + TorStrings.settings.statusInternetTest + ); + internetTest.addEventListener("command", async () => { + this.onInternetTest(); + }); + const internetIcon = prefpane.querySelector( + selectors.status.internetIcon + ); + const internetStatus = prefpane.querySelector( + selectors.status.internetStatus + ); + const torIcon = prefpane.querySelector(selectors.status.torIcon); + const torStatus = prefpane.querySelector(selectors.status.torStatus); + this._populateStatus = () => { + switch (this._internetStatus) { + case InternetStatus.Unknown: + internetTest.removeAttribute("hidden"); + break; + case InternetStatus.Online: + internetTest.setAttribute("hidden", "true"); + internetIcon.className = "online"; + internetStatus.textContent = + TorStrings.settings.statusInternetOnline; + break; + case InternetStatus.Offline: + internetTest.setAttribute("hidden", "true"); + internetIcon.className = "offline"; + internetStatus.textContent = + TorStrings.settings.statusInternetOffline; + break; + } + if (TorConnect.state === TorConnectState.Bootstrapped) { + torIcon.className = "connected"; + torStatus.textContent = TorStrings.settings.statusTorConnected; + } else if (TorConnect.hasBootstrapEverFailed) { + torIcon.className = "blocked"; + torStatus.textContent = TorStrings.settings.statusTorBlocked; + } else { + torIcon.className = ""; + torStatus.textContent = TorStrings.settings.statusTorNotConnected; + } + }; + this._populateStatus(); + + // Quickstart + prefpane.querySelector(selectors.quickstart.header).innerText = + TorStrings.settings.quickstartHeading; + prefpane.querySelector(selectors.quickstart.description).textContent = + TorStrings.settings.quickstartDescription; + + this._enableQuickstartCheckbox = prefpane.querySelector( + selectors.quickstart.enableQuickstartCheckbox + ); + this._enableQuickstartCheckbox.setAttribute( + "label", + TorStrings.settings.quickstartCheckbox + ); + this._enableQuickstartCheckbox.addEventListener("command", e => { + const checked = this._enableQuickstartCheckbox.checked; + TorSettings.quickstart.enabled = checked; + TorSettings.saveToPrefs().applySettings(); + }); + this._enableQuickstartCheckbox.checked = TorSettings.quickstart.enabled; + Services.obs.addObserver(this, TorSettingsTopics.SettingChanged); + + // Bridge setup + prefpane.querySelector(selectors.bridges.header).innerText = + TorStrings.settings.bridgesHeading; + prefpane.querySelector(selectors.bridges.description).textContent = + TorStrings.settings.bridgesDescription; + { + let learnMore = prefpane.querySelector(selectors.bridges.learnMore); + learnMore.setAttribute("value", TorStrings.settings.learnMore); + learnMore.setAttribute("href", TorStrings.settings.learnMoreBridgesURL); + if (TorStrings.settings.learnMoreBridgesURL.startsWith("about:")) { + learnMore.setAttribute("useoriginprincipal", "true"); + } + } + + // Location + { + const locationGroup = prefpane.querySelector( + selectors.bridges.locationGroup + ); + prefpane.querySelector(selectors.bridges.locationLabel).textContent = + TorStrings.settings.bridgeLocation; + const location = prefpane.querySelector(selectors.bridges.location); + const locationEntries = prefpane.querySelector( + selectors.bridges.locationEntries + ); + const chooseForMe = prefpane.querySelector( + selectors.bridges.chooseForMe + ); + chooseForMe.setAttribute( + "label", + TorStrings.settings.bridgeChooseForMe + ); + chooseForMe.addEventListener("command", e => { + TorConnect.beginAutoBootstrap(location.value); + }); + this._populateLocations = () => { + const currentValue = location.value; + locationEntries.textContent = ""; + const createItem = (value, label, disabled) => { + const item = document.createXULElement("menuitem"); + item.setAttribute("value", value); + item.setAttribute("label", label); + if (disabled) { + item.setAttribute("disabled", "true"); + } + return item; + }; + const addLocations = codes => { + const items = []; + for (const code of codes) { + items.push( + createItem( + code, + TorConnect.countryNames[code] + ? TorConnect.countryNames[code] + : code + ) + ); + } + items.sort((left, right) => left.label.localeCompare(right.label)); + locationEntries.append(...items); + }; + locationEntries.append( + createItem("", TorStrings.settings.bridgeLocationAutomatic) + ); + if (TorConnect.countryCodes.length) { + locationEntries.append( + createItem("", TorStrings.settings.bridgeLocationFrequent, true) + ); + addLocations(TorConnect.countryCodes); + locationEntries.append( + createItem("", TorStrings.settings.bridgeLocationOther, true) + ); + } + addLocations(Object.keys(TorConnect.countryNames)); + location.value = currentValue; + }; + this._showAutoconfiguration = () => { + if ( + !TorConnect.shouldShowTorConnect || + !TorProtocolService.torBootstrapErrorOccurred() + ) { + locationGroup.setAttribute("hidden", "true"); + return; + } + // Populate locations, even though we will show only the automatic + // item for a moment. In my opinion showing the button immediately is + // better then waiting for the Moat query to finish (after a while) + // and showing the controls only after that. + this._populateLocations(); + locationGroup.removeAttribute("hidden"); + if (!TorConnect.countryCodes.length) { + TorConnect.getCountryCodes().then(() => this._populateLocations()); + } + }; + this._showAutoconfiguration(); + } + + // Bridge cards + const bridgeHeader = prefpane.querySelector( + selectors.bridges.currentHeader + ); + bridgeHeader.querySelector( + selectors.bridges.currentHeaderText + ).textContent = TorStrings.settings.bridgeCurrent; + const bridgeSwitch = bridgeHeader.querySelector(selectors.bridges.switch); + bridgeSwitch.addEventListener("change", () => { + TorSettings.bridges.enabled = bridgeSwitch.checked; + TorSettings.saveToPrefs(); + TorSettings.applySettings().then(result => { + this._populateBridgeCards(); + }); + }); + prefpane.querySelector( + selectors.bridges.currentDescriptionText + ).textContent = TorStrings.settings.bridgeCurrentDescription; + const bridgeTemplate = prefpane.querySelector( + selectors.bridges.cardTemplate + ); + { + const learnMore = bridgeTemplate.querySelector( + selectors.bridges.cardLearnMore + ); + learnMore.setAttribute("value", TorStrings.settings.learnMore); + learnMore.setAttribute( + "href", + TorStrings.settings.learnMoreBridgesCardURL + ); + if (TorStrings.settings.learnMoreBridgesCardURL.startsWith("about:")) { + learnMore.setAttribute("useoriginprincipal", "true"); + } + } + bridgeTemplate.querySelector( + selectors.bridges.cardConnectedLabel + ).textContent = TorStrings.settings.statusTorConnected; + bridgeTemplate + .querySelector(selectors.bridges.cardCopy) + .setAttribute("label", TorStrings.settings.bridgeCopy); + bridgeTemplate.querySelector(selectors.bridges.cardShare).textContent = + TorStrings.settings.bridgeShare; + const bridgeCards = prefpane.querySelector(selectors.bridges.cards); + const bridgeMenu = prefpane.querySelector(selectors.bridges.cardMenu); + + let emojiAnnotations; + this._addBridgeCard = bridgeString => { + const card = bridgeTemplate.cloneNode(true); + card.removeAttribute("id"); + const grid = card.querySelector(selectors.bridges.cardQrGrid); + card.addEventListener("click", e => { + if ( + card.classList.contains("currently-connected") || + bridgeCards.classList.contains("single-card") + ) { + return; + } + let target = e.target; + let apply = true; + while (target !== null && target !== card && apply) { + // Deal with mixture of "command" and "click" events + apply = !target.classList?.contains("stop-click"); + target = target.parentElement; + } + if (apply) { + if (card.classList.toggle("expanded")) { + grid.classList.add("to-animate"); + grid.style.height = `${grid.scrollHeight}px`; + } else { + // Be sure we still have the to-animate class + grid.classList.add("to-animate"); + grid.style.height = ""; + } + } + }); + const emojis = makeBridgeId(bridgeString).map(e => { + const img = document.createElement("img"); + const cp = e.codePointAt(0).toString(16); + img.setAttribute( + "src", + `chrome://browser/content/torpreferences/bridgemoji/${cp}.svg` + ); + img.setAttribute("alt", e); + img.setAttribute("title", emojiAnnotations[e]); + img.className = "emoji"; + return img; + }); + const idString = TorStrings.settings.bridgeId; + const id = card.querySelector(selectors.bridges.cardId); + const details = parseBridgeLine(bridgeString); + if (details && details.id !== undefined) { + card.setAttribute("data-bridge-id", details.id); + } + // TODO: properly handle "vanilla" bridges? + const type = + details && details.transport !== undefined + ? details.transport + : "vanilla"; + for (const piece of idString.split(/(#[12])/)) { + if (piece == "#1") { + id.append(type); + } else if (piece == "#2") { + id.append(...emojis); + } else { + id.append(piece); + } + } + card.querySelector( + selectors.bridges.cardHeadingAddr + ).textContent = bridgeString; + const optionsButton = card.querySelector(selectors.bridges.cardOptions); + if (TorSettings.bridges.source === TorBridgeSource.BuiltIn) { + optionsButton.setAttribute("hidden", "true"); + } else { + // Cloning the menupopup element does not work as expected. + // Therefore, we use only one, and just before opening it, we remove + // its previous items, and add the ones relative to the bridge whose + // button has been pressed. + optionsButton.addEventListener("click", () => { + const menuItem = document.createXULElement("menuitem"); + menuItem.setAttribute("label", TorStrings.settings.remove); + menuItem.classList.add("menuitem-iconic"); + menuItem.image = "chrome://global/skin/icons/delete.svg"; + menuItem.addEventListener("command", e => { + const strings = TorSettings.bridges.bridge_strings; + const index = strings.indexOf(bridgeString); + if (index !== -1) { + strings.splice(index, 1); + } + TorSettings.bridges.enabled = + bridgeSwitch.checked && !!strings.length; + TorSettings.bridges.bridge_strings = strings.join("\n"); + TorSettings.saveToPrefs(); + TorSettings.applySettings().then(result => { + this._populateBridgeCards(); + }); + }); + if (bridgeMenu.firstChild) { + bridgeMenu.firstChild.remove(); + } + bridgeMenu.append(menuItem); + bridgeMenu.openPopup(optionsButton, { + position: "bottomleft topleft", + }); + }); + } + const bridgeAddr = card.querySelector(selectors.bridges.cardAddr); + bridgeAddr.setAttribute("value", bridgeString); + const bridgeCopy = card.querySelector(selectors.bridges.cardCopy); + let restoreTimeout = null; + bridgeCopy.addEventListener("command", e => { + this.onCopyBridgeAddress(bridgeAddr); + const label = bridgeCopy.querySelector("label"); + label.setAttribute("value", TorStrings.settings.copied); + bridgeCopy.classList.add("primary"); + + const RESTORE_TIME = 1200; + if (restoreTimeout !== null) { + clearTimeout(restoreTimeout); + } + restoreTimeout = setTimeout(() => { + label.setAttribute("value", TorStrings.settings.bridgeCopy); + bridgeCopy.classList.remove("primary"); + restoreTimeout = null; + }, RESTORE_TIME); + }); + if (details && details.id === this._currentBridge) { + card.classList.add("currently-connected"); + bridgeCards.prepend(card); + } else { + bridgeCards.append(card); + } + // Add the QR only after appending the card, to have the computed style + try { + const container = card.querySelector(selectors.bridges.cardQr); + const style = getComputedStyle(container); + const width = style.width.substr(0, style.width.length - 2); + const height = style.height.substr(0, style.height.length - 2); + new QRCode(container, { + text: bridgeString, + width, + height, + colorDark: style.color, + colorLight: style.backgroundColor, + document, + }); + container.parentElement.addEventListener("click", () => { + this.onShowQr(bridgeString); + }); + } catch (err) { + // TODO: Add a generic image in case of errors such as code overflow. + // It should never happen with correct codes, but after all this + // content can be generated by users... + console.error("Could not generate the QR code for the bridge:", err); + } + }; + this._checkBridgeCardsHeight = () => { + for (const card of bridgeCards.children) { + // Expanded cards have the height set manually to their details for + // the CSS animation. However, when resizing the window, we may need + // to adjust their height. + if (card.classList.contains("expanded")) { + const grid = card.querySelector(selectors.bridges.cardQrGrid); + // Reset it first, to avoid having a height that is higher than + // strictly needed. Also, remove the to-animate class, because the + // animation interferes with this process! + grid.classList.remove("to-animate"); + grid.style.height = ""; + grid.style.height = `${grid.scrollHeight}px`; + } + } + }; + this._currentBridgesExpanded = false; + const showAll = prefpane.querySelector(selectors.bridges.showAll); + showAll.setAttribute("label", TorStrings.settings.bridgeShowAll); + showAll.addEventListener("command", () => { + this._currentBridgesExpanded = true; + this._populateBridgeCards(); + }); + const removeAll = prefpane.querySelector(selectors.bridges.removeAll); + removeAll.setAttribute("label", TorStrings.settings.bridgeRemoveAll); + removeAll.addEventListener("command", () => { + this._confirmBridgeRemoval(); + }); + this._populateBridgeCards = async () => { + const collapseThreshold = 4; + + let newStrings = new Set(TorSettings.bridges.bridge_strings); + const numBridges = newStrings.size; + if (!newStrings.size) { + bridgeHeader.setAttribute("hidden", "true"); + bridgeCards.setAttribute("hidden", "true"); + showAll.setAttribute("hidden", "true"); + removeAll.setAttribute("hidden", "true"); + bridgeCards.textContent = ""; + return; + } + bridgeHeader.removeAttribute("hidden"); + bridgeCards.removeAttribute("hidden"); + bridgeSwitch.checked = TorSettings.bridges.enabled; + bridgeCards.classList.toggle("disabled", !TorSettings.bridges.enabled); + bridgeCards.classList.toggle("single-card", numBridges === 1); + + let shownCards = 0; + const toShow = this._currentBridgesExpanded + ? numBridges + : collapseThreshold; + + // Do not remove all the old cards, because it makes scrollbar "jump" + const currentCards = bridgeCards.querySelectorAll( + selectors.bridges.card + ); + for (const card of currentCards) { + const string = card.querySelector(selectors.bridges.cardAddr).value; + const hadString = newStrings.delete(string); + if (!hadString || shownCards == toShow) { + card.remove(); + } else { + shownCards++; + } + } + + // Add only the new strings that remained in the set + for (const bridge of newStrings) { + if (shownCards >= toShow) { + if (this._currentBridge === "") { + break; + } else if (!bridge.includes(this._currentBridge)) { + continue; + } + } + this._addBridgeCard(bridge); + shownCards++; + } + + // If we know the connected bridge, we may have added more than the ones + // we should actually show (but the connected ones have been prepended, + // if needed). So, remove any exceeding ones. + while (shownCards > toShow) { + bridgeCards.lastElementChild.remove(); + shownCards--; + } + + // And finally update the buttons + if (numBridges > collapseThreshold && !this._currentBridgesExpanded) { + showAll.removeAttribute("hidden"); + if (TorSettings.bridges.enabled) { + showAll.classList.add("primary"); + } else { + showAll.classList.remove("primary"); + } + removeAll.setAttribute("hidden", "true"); + if (TorSettings.bridges.enabled) { + // We do not want both collapsed and disabled at the same time, + // because we use collapsed only to display a gradient on the list. + bridgeCards.classList.add("list-collapsed"); + } + } else { + showAll.setAttribute("hidden", "true"); + removeAll.removeAttribute("hidden"); + bridgeCards.classList.remove("list-collapsed"); + } + }; + // Use a promise to avoid blocking the population of the page + // FIXME: Stop using a JSON file, and switch to properties + fetch( + "chrome://browser/content/torpreferences/bridgemoji-annotations.json" + ).then(async res => { + const annotations = await res.json(); + const bcp47 = Services.locale.appLocaleAsBCP47; + const dash = bcp47.indexOf("-"); + const lang = dash !== -1 ? bcp47.substr(dash) : lang; + if (bcp47 in annotations) { + emojiAnnotations = annotations[bcp47]; + } else if (lang in annotations) { + emojiAnnotations = annotations[lang]; + } else { + // At the moment, nb does not have annotations! + emojiAnnotations = annotations.en; + } + this._populateBridgeCards(); + }); + this._updateConnectedBridges = () => { + for (const card of bridgeCards.querySelectorAll( + ".currently-connected" + )) { + card.classList.remove("currently-connected"); + } + if (this._currentBridge === "") { + return; + } + // Make sure we have the connected bridge in the list + this._populateBridgeCards(); + // At the moment, IDs do not have to be unique (and it is a concrete + // case also with built-in bridges!). E.g., one line for the IPv4 + // address and one for the IPv6 address, so use querySelectorAll + const cards = bridgeCards.querySelectorAll( + `[data-bridge-id="${this._currentBridge}"]` + ); + for (const card of cards) { + card.classList.add("currently-connected"); + } + const placeholder = document.createElement("span"); + bridgeCards.prepend(placeholder); + placeholder.replaceWith(...cards); + }; + try { + const { controller } = ChromeUtils.import( + "resource://torbutton/modules/tor-control-port.js", + {} + ); + // Avoid the cache because we set our custom event watcher, and at the + // moment, watchers cannot be removed from a controller. + controller(true).then(aController => { + this._controller = aController; + // Getting the circuits may be enough, if we have bootstrapped for a + // while, but at the beginning it gives many bridges as connected, + // because tor pokes all the bridges to find the best one. + // Also, watching circuit events does not work, at the moment, but in + // any case, checking the stream has the advantage that we can see if + // it really used for a connection, rather than tor having created + // this circuit to check if the bridge can be used. We do this by + // checking if the stream has SOCKS username, which actually contains + // the destination of the stream. + this._controller.watchEvent( + "STREAM", + event => + event.StreamStatus === "SUCCEEDED" && "SOCKS_USERNAME" in event, + async event => { + const circuitStatuses = await this._controller.getInfo( + "circuit-status" + ); + if (!circuitStatuses) { + return; + } + for (const status of circuitStatuses) { + if (status.id === event.CircuitID && status.circuit.length) { + // The id in the circuit begins with a $ sign + const bridgeId = status.circuit[0][0].substr(1); + if (bridgeId !== this._currentBridge) { + this._currentBridge = bridgeId; + this._updateConnectedBridges(); + } + break; + } + } + } + ); + }); + } catch (err) { + console.warn( + "We could not load torbutton, bridge statuses will not be updated", + err + ); + } + + // Add a new bridge + prefpane.querySelector(selectors.bridges.addHeader).textContent = + TorStrings.settings.bridgeAdd; + prefpane + .querySelector(selectors.bridges.addBuiltinLabel) + .setAttribute("value", TorStrings.settings.bridgeSelectBrowserBuiltin); + { + let button = prefpane.querySelector(selectors.bridges.addBuiltinButton); + button.setAttribute("label", TorStrings.settings.bridgeSelectBuiltin); + button.addEventListener("command", e => { + this.onAddBuiltinBridge(); + }); + } + prefpane + .querySelector(selectors.bridges.requestLabel) + .setAttribute("value", TorStrings.settings.bridgeRequestFromTorProject); + { + let button = prefpane.querySelector(selectors.bridges.requestButton); + button.setAttribute("label", TorStrings.settings.bridgeRequest); + button.addEventListener("command", e => { + this.onRequestBridge(); + }); + } + prefpane + .querySelector(selectors.bridges.enterLabel) + .setAttribute("value", TorStrings.settings.bridgeEnterKnown); + { + const button = prefpane.querySelector(selectors.bridges.enterButton); + button.setAttribute("label", TorStrings.settings.bridgeAddManually); + button.addEventListener("command", e => { + this.onAddBridgeManually(); + }); + } + + { + const overlay = prefpane.querySelector(selectors.bridges.removeOverlay); + this._confirmBridgeRemoval = () => { + overlay.classList.remove("hidden"); + }; + const closeDialog = () => { + overlay.classList.add("hidden"); + }; + overlay.addEventListener("click", closeDialog); + const modal = prefpane.querySelector(selectors.bridges.removeModal); + modal.addEventListener("click", e => { + e.stopPropagation(); + }); + const dismiss = prefpane.querySelector(selectors.bridges.removeDismiss); + dismiss.addEventListener("click", closeDialog); + const question = prefpane.querySelector( + selectors.bridges.removeQuestion + ); + question.textContent = TorStrings.settings.removeBridgesQuestion; + const warning = prefpane.querySelector(selectors.bridges.removeWarning); + warning.textContent = TorStrings.settings.removeBridgesWarning; + const confirm = prefpane.querySelector(selectors.bridges.removeConfirm); + confirm.setAttribute("label", TorStrings.settings.remove); + confirm.addEventListener("command", () => { + this.onRemoveAllBridges(); + closeDialog(); + }); + const cancel = prefpane.querySelector(selectors.bridges.removeCancel); + cancel.setAttribute("label", TorStrings.settings.cancel); + cancel.addEventListener("command", closeDialog); + } + + // Advanced setup + prefpane.querySelector(selectors.advanced.header).innerText = + TorStrings.settings.advancedHeading; + prefpane.querySelector(selectors.advanced.label).textContent = + TorStrings.settings.advancedLabel; + { + let settingsButton = prefpane.querySelector(selectors.advanced.button); + settingsButton.setAttribute( + "label", + TorStrings.settings.advancedButton + ); + settingsButton.addEventListener("command", () => { + this.onAdvancedSettings(); + }); + } + + // Tor logs + prefpane + .querySelector(selectors.advanced.torLogsLabel) + .setAttribute("value", TorStrings.settings.showTorDaemonLogs); + let torLogsButton = prefpane.querySelector( + selectors.advanced.torLogsButton + ); + torLogsButton.setAttribute("label", TorStrings.settings.showLogs); + torLogsButton.addEventListener("command", () => { + this.onViewTorLogs(); + }); + + Services.obs.addObserver(this, TorConnectTopics.StateChange); + }, + + init() { + this._populateXUL(); + + let onUnload = () => { + window.removeEventListener("unload", onUnload); + gConnectionPane.uninit(); + }; + window.addEventListener("unload", onUnload); + + window.addEventListener("resize", () => { + this._checkBridgeCardsHeight(); + }); + }, + + uninit() { + // unregister our observer topics + Services.obs.removeObserver(this, TorSettingsTopics.SettingChanged); + Services.obs.removeObserver(this, TorConnectTopics.StateChange); + + if (this._controller !== null) { + this._controller.close(); + this._controller = null; + } + }, + + // whether the page should be present in about:preferences + get enabled() { + return TorProtocolService.ownsTorDaemon; + }, + + // + // Callbacks + // + + observe(subject, topic, data) { + switch (topic) { + // triggered when a TorSettings param has changed + case TorSettingsTopics.SettingChanged: { + let obj = subject?.wrappedJSObject; + switch (data) { + case TorSettingsData.QuickStartEnabled: { + this._enableQuickstartCheckbox.checked = obj.value; + break; + } + } + break; + } + // triggered when tor connect state changes and we may + // need to update the messagebox + case TorConnectTopics.StateChange: { + this.onStateChange(); + break; + } + } + }, + + async onInternetTest() { + const mrpc = new MoatRPC(); + let status = null; + try { + await mrpc.init(); + status = await mrpc.testInternetConnection(); + } catch (err) { + console.log("Error while checking the Internet connection", err); + } finally { + mrpc.uninit(); + } + if (status) { + this._internetStatus = status.successful + ? InternetStatus.Online + : InternetStatus.Offline; + this._populateStatus(); + } + }, + + onStateChange() { + this._populateMessagebox(); + this._populateStatus(); + this._showAutoconfiguration(); + this._populateBridgeCards(); + }, + + onShowQr(bridgeString) { + const dialog = new BridgeQrDialog(); + dialog.openDialog(gSubDialog, bridgeString); + }, + + onCopyBridgeAddress(addressElem) { + let clipboard = Cc["@mozilla.org/widget/clipboardhelper;1"].getService( + Ci.nsIClipboardHelper + ); + clipboard.copyString(addressElem.value); + }, + + onRemoveAllBridges() { + TorSettings.bridges.enabled = false; + TorSettings.bridges.bridge_strings = ""; + if (TorSettings.bridges.source == TorBridgeSource.BuiltIn) { + TorSettings.bridges.builtin_type = ""; + } + TorSettings.saveToPrefs(); + TorSettings.applySettings().then(result => { + this._populateBridgeCards(); + }); + }, + + onAddBuiltinBridge() { + const builtinBridgeDialog = new BuiltinBridgeDialog(); + builtinBridgeDialog.openDialog(gSubDialog, aBridgeType => { + if (!aBridgeType) { + TorSettings.bridges.enabled = false; + TorSettings.bridges.builtin_type = ""; + } else { + TorSettings.bridges.enabled = true; + TorSettings.bridges.source = TorBridgeSource.BuiltIn; + TorSettings.bridges.builtin_type = aBridgeType; + } + TorSettings.saveToPrefs(); + TorSettings.applySettings().then(result => { + this._populateBridgeCards(); + }); + }); + }, + + // called when the request bridge button is activated + onRequestBridge() { + let requestBridgeDialog = new RequestBridgeDialog(); + requestBridgeDialog.openDialog(gSubDialog, aBridges => { + if (aBridges.length) { + let bridgeStrings = aBridges.join("\n"); + TorSettings.bridges.enabled = true; + TorSettings.bridges.source = TorBridgeSource.BridgeDB; + TorSettings.bridges.bridge_strings = bridgeStrings; + TorSettings.saveToPrefs(); + TorSettings.applySettings().then(result => { + this._populateBridgeCards(); + }); + } else { + TorSettings.bridges.enabled = false; + } + }); + }, + + onAddBridgeManually() { + let provideBridgeDialog = new ProvideBridgeDialog(); + provideBridgeDialog.openDialog(gSubDialog, aBridgeString => { + if (aBridgeString.length) { + TorSettings.bridges.enabled = true; + TorSettings.bridges.source = TorBridgeSource.UserProvided; + TorSettings.bridges.bridge_strings = aBridgeString; + TorSettings.saveToPrefs(); + TorSettings.applySettings().then(result => { + this._populateBridgeCards(); + }); + } else { + TorSettings.bridges.enabled = false; + TorSettings.bridges.source = TorBridgeSource.Invalid; + } + }); + }, + + onAdvancedSettings() { + let connectionSettingsDialog = new ConnectionSettingsDialog(); + connectionSettingsDialog.openDialog(gSubDialog); + }, + + onViewTorLogs() { + let torLogDialog = new TorLogDialog(); + torLogDialog.openDialog(gSubDialog); + }, + }; + return retval; +})(); /* gConnectionPane */ + +function makeBridgeId(bridgeString) { + // JS uses UTF-16. While most of these emojis are surrogate pairs, a few + // ones fit one UTF-16 character. So we could not use neither indices, + // nor substr, nor some function to split the string. + /* eslint-disable */ + const emojis = [ + "👽️", "🤖", "🧠", "👁️", "🧙", "🧚", "🧜", "🐵", "🦧", "🐶", "🐺", "🦊", "🦝", "🐱", "🦁", "🐯", + "🐴", "🦄", "🦓", "🦌", "🐮", "🐷", "🐗", "🐪", "🦙", "🦒", "🐘", "🦣", "🦏", "🐭", "🐰", "🐿️", + "🦔", "🦇", "🐻", "🐨", "🦥", "🦦", "🦘", "🐥", "🐦️", "🕊️", "🦆", "🦉", "🦤", "🪶", "🦩", "🦚", + "🦜", "🐊", "🐢", "🦎", "🐍", "🐲", "🦕", "🐳", "🐬", "🦭", "🐟️", "🐠", "🦈", "🐙", "🐚", "🐌", + "🦋", "🐛", "🐝", "🐞", "💐", "🌹", "🌺", "🌻", "🌷", "🌲", "🌳", "🌴", "🌵", "🌿", "🍁", "🍇", + "🍈", "🍉", "🍊", "🍋", "🍌", "🍍", "🥭", "🍏", "🍐", "🍑", "🍒", "🍓", "🫐", "🥝", "🍅", "🫒", + "🥥", "🥑", "🍆", "🥕", "🌽", "🌶️", "🥬", "🥦", "🧅", "🍄", "🥜", "🥐", "🥖", "🥨", "🥯", "🥞", + "🧇", "🍔", "🍕", "🌭", "🌮", "🍿", "🦀", "🦞", "🍨", "🍩", "🍪", "🎂", "🧁", "🍫", "🍬", "🍭", + "🫖", "🧃", "🧉", "🧭", "🏔️", "🌋", "🏕️", "🏝️", "🏡", "⛲️", "🎠", "🎡", "🎢", "💈", "🚆", "🚋", + "🚍️", "🚕", "🚗", "🚚", "🚜", "🛵", "🛺", "🛴", "🛹", "🛼", "⚓️", "⛵️", "🛶", "🚤", "🚢", "✈️", + "🚁", "🚠", "🛰️", "🚀", "🛸", "⏰", "🌙", "🌡️", "☀️", "🪐", "🌟", "🌀", "🌈", "☂️", "❄️", "☄️", + "🔥", "💧", "🌊", "🎃", "✨", "🎈", "🎉", "🎏", "🎀", "🎁", "🎟️", "🏆️", "⚽️", "🏀", "🏈", "🎾", + "🥏", "🏓", "🏸", "🤿", "🥌", "🎯", "🪀", "🪁", "🔮", "🎲", "🧩", "🎨", "🧵", "👕", "🧦", "👗", + "🩳", "🎒", "👟", "👑", "🧢", "💄", "💍", "💎", "📢", "🎶", "🎙️", "📻️", "🎷", "🪗", "🎸", "🎺", + "🎻", "🪕", "🥁", "☎️", "🔋", "💿️", "🧮", "🎬️", "💡", "🔦", "🏮", "📕", "🏷️", "💳️", "✏️", "🖌️", + "🖍️", "📌", "📎", "🔑", "🪃", "🏹", "⚖️", "🧲", "🧪", "🧬", "🔬", "🔭", "📡", "🪑", "🧹", "🗿", + ]; + /* eslint-enable */ + + // FNV-1a implementation that is compatible with other languages + const prime = 0x01000193; + const offset = 0x811c9dc5; + let hash = offset; + const encoder = new TextEncoder(); + for (const byte of encoder.encode(bridgeString)) { + hash = Math.imul(hash ^ byte, prime); + } + + const hashBytes = [ + ((hash & 0x7f000000) >> 24) | (hash < 0 ? 0x80 : 0), + (hash & 0x00ff0000) >> 16, + (hash & 0x0000ff00) >> 8, + hash & 0x000000ff, + ]; + return hashBytes.map(b => emojis[b]); +} + +function parseBridgeLine(line) { + const re = /^([^\s]+\s+)?([0-9a-fA-F.[]:]+:[0-9]{1,5})\s*([0-9a-fA-F]{40})(\s+.+)?/; + const matches = line.match(re); + if (!matches) { + return null; + } + let bridge = { addr: matches[2] }; + if (matches[1] !== undefined) { + bridge.transport = matches[1].trim(); + } + if (matches[3] !== undefined) { + bridge.id = matches[3].toUpperCase(); + } + if (matches[4] !== undefined) { + bridge.args = matches[4].trim(); + } + return bridge; +} diff --git a/browser/components/torpreferences/content/connectionPane.xhtml b/browser/components/torpreferences/content/connectionPane.xhtml new file mode 100644 index 0000000000000..860f3c233cb6c --- /dev/null +++ b/browser/components/torpreferences/content/connectionPane.xhtml @@ -0,0 +1,195 @@ +<!-- Tor panel --> + +<script type="application/javascript" + src="chrome://browser/content/torpreferences/connectionPane.js"/> +<html:template id="template-paneConnection"> + +<!-- Tor Connect Message Box --> +<groupbox data-category="paneConnection" hidden="true"> + <html:div id="torPreferences-connectMessageBox" + class="subcategory" + data-category="paneConnection" + hidden="true"> + html:table + html:tr + html:td + <html:div id="torPreferences-connectMessageBox-icon"/> + </html:td> + <html:td id="torPreferences-connectMessageBox-message"> + </html:td> + html:td + <html:button id="torPreferences-connectMessageBox-button"> + </html:button> + </html:td> + </html:tr> + </html:table> + </html:div> +</groupbox> + +<hbox id="torPreferencesCategory" + class="subcategory" + data-category="paneConnection" + hidden="true"> + <html:h1 id="torPreferences-header"/> +</hbox> + +<groupbox data-category="paneConnection" + hidden="true"> + <description flex="1"> + <html:span id="torPreferences-description" class="tail-with-learn-more"/> + <label id="torPreferences-learnMore" class="learnMore text-link" is="text-link"/> + </description> +</groupbox> + +<groupbox id="torPreferences-status-group" + data-category="paneConnection" + hidden="true"> + <hbox id="torPreferences-status-box"> + <image id="torPreferences-status-internet-icon"/> + <html:span id="torPreferences-status-internet-label"/> + <button id="torPreferences-status-internet-test"/> + <image id="torPreferences-status-internet-statusIcon"/> + <html:span id="torPreferences-status-internet-status"/> + <image id="torPreferences-status-tor-icon"/> + <html:span id="torPreferences-status-tor-label"/> + <image id="torPreferences-status-tor-statusIcon"/> + <html:span id="torPreferences-status-tor-status"/> + </hbox> +</groupbox> + +<!-- Quickstart --> +<groupbox id="torPreferences-quickstart-group" + data-category="paneConnection" + hidden="true"> + <html:h2 id="torPreferences-quickstart-header"/> + <description flex="1"> + <html:span id="torPreferences-quickstart-description"/> + </description> + <checkbox id="torPreferences-quickstart-toggle"/> +</groupbox> + +<!-- Bridges --> +<hbox class="subcategory" + data-category="paneConnection" + hidden="true"> + <html:h1 id="torPreferences-bridges-header"/> +</hbox> +<groupbox id="torPreferences-bridges-group" + data-category="paneConnection" + hidden="true"> + <description flex="1"> + <html:span id="torPreferences-bridges-description" class="tail-with-learn-more"/> + <label id="torPreferences-bridges-learnMore" class="learnMore text-link" is="text-link"/> + </description> + <hbox align="center" id="torPreferences-bridges-locationGroup" hidden="true"> + <label id="torPreferences-bridges-locationLabel" + control="torPreferences-bridges-location"/> + <spacer flex="1"/> + <menulist id="torPreferences-bridges-location"> + <menupopup id="torPreferences-bridges-locationEntries"/> + </menulist> + <button id="torPreferences-bridges-buttonChooseBridgeForMe" class="torMarginFix primary"/> + </hbox> + <html:h2 id="torPreferences-currentBridges-header"> + <html:span id="torPreferences-currentBridges-headerText"/> + <html:input type="checkbox" id="torPreferences-currentBridges-switch" class="toggle-button"/> + </html:h2> + <description flex="1"> + <html:span id="torPreferences-currentBridges-description"/> + </description> + <menupopup id="torPreferences-bridgeCard-menu"/> + <vbox id="torPreferences-bridgeCard-template" class="torPreferences-bridgeCard"> + <hbox class="torPreferences-bridgeCard-heading"> + <html:div class="torPreferences-bridgeCard-id"/> + <html:div class="torPreferences-bridgeCard-headingAddr"/> + <html:div class="torPreferences-bridgeCard-buttons"> + <html:span class="torPreferences-bridgeCard-connectedBadge"> + <image class="torPreferences-bridgeCard-connectedIcon"/> + <html:span class="torPreferences-bridgeCard-connectedLabel"/> + </html:span> + <html:button class="torPreferences-bridgeCard-options stop-click"/> + </html:div> + </hbox> + <box class="torPreferences-bridgeCard-grid"> + <box class="torPreferences-bridgeCard-qrWrapper"> + <box class="torPreferences-bridgeCard-qr stop-click"> + <html:div class="torPreferences-bridgeCard-qrCode"/> + <html:div class="torPreferences-bridgeCard-qrOnionBox"/> + <html:div class="torPreferences-bridgeCard-qrOnion"/> + </box> + <html:div class="torPreferences-bridgeCard-filler"/> + </box> + <description class="torPreferences-bridgeCard-share"></description> + <hbox class="torPreferences-bridgeCard-addrBox"> + <html:input class="torPreferences-bridgeCard-addr torMarginFix stop-click" type="text" readonly="readonly"/> + </hbox> + <hbox class="torPreferences-bridgeCard-learnMoreBox" align="center"> + <label class="torPreferences-bridgeCard-learnMore learnMore text-link stop-click" is="text-link"/> + </hbox> + <hbox class="torPreferences-bridgeCard-copy" align="center"> + <button class="torPreferences-bridgeCard-copyButton stop-click"/> + </hbox> + </box> + </vbox> + <vbox id="torPreferences-currentBridges-cards"></vbox> + <vbox align="center"> + <button id="torPreferences-currentBridges-showAll"/> + <button id="torPreferences-currentBridges-removeAll" class="primary danger-button"/> + </vbox> + <html:h2 id="torPreferences-addBridge-header"></html:h2> + <hbox align="center"> + <label id="torPreferences-addBridge-labelBuiltinBridge"/> + <space flex="1"/> + <button id="torPreferences-addBridge-buttonBuiltinBridge" class="torMarginFix"/> + </hbox> + <hbox align="center"> + <label id="torPreferences-addBridge-labelRequestBridge"/> + <space flex="1"/> + <button id="torPreferences-addBridge-buttonRequestBridge" class="torMarginFix"/> + </hbox> + <hbox align="center"> + <label id="torPreferences-addBridge-labelEnterBridge"/> + <space flex="1"/> + <button id="torPreferences-addBridge-buttonEnterBridge" class="torMarginFix"/> + </hbox> +</groupbox> + +<!-- Advanced --> +<hbox class="subcategory" + data-category="paneConnection" + hidden="true"> + <html:h1 id="torPreferences-advanced-header"/> +</hbox> +<groupbox id="torPreferences-advanced-group" + data-category="paneConnection" + hidden="true"> + <box id="torPreferences-advanced-grid"> + <hbox id="torPreferences-advanced-hbox" align="center"> + <label id="torPreferences-advanced-label"/> + </hbox> + <hbox align="center"> + <button id="torPreferences-advanced-button"/> + </hbox> + <hbox id="torPreferences-torDaemon-hbox" align="center"> + <label id="torPreferences-torLogs"/> + </hbox> + <hbox align="center" data-subcategory="viewlogs"> + <button id="torPreferences-buttonTorLogs"/> + </hbox> + </box> +</groupbox> + +<html:div id="bridge-remove-overlay" class="hidden"> + <html:div id="bridge-remove-modal"> + <html:img id="bridge-remove-dismiss" src="chrome://global/skin/icons/close.svg"/> + <html:div id="bridge-remove-icon"/> + <html:p id="bridge-remove-question"/> + <html:p id="bridge-remove-warning"/> + <html:div id="bridge-remove-buttonbar"> + <button id="bridge-remove-cancel"/> + <button id="bridge-remove-confirm"/> + </html:div> + </html:div> +</html:div> + +</html:template> diff --git a/browser/components/torpreferences/content/connectionSettingsDialog.jsm b/browser/components/torpreferences/content/connectionSettingsDialog.jsm new file mode 100644 index 0000000000000..41b9565780dcc --- /dev/null +++ b/browser/components/torpreferences/content/connectionSettingsDialog.jsm @@ -0,0 +1,397 @@ +"use strict"; + +var EXPORTED_SYMBOLS = ["ConnectionSettingsDialog"]; + +const { TorSettings, TorProxyType } = ChromeUtils.import( + "resource:///modules/TorSettings.jsm" +); + +const { TorStrings } = ChromeUtils.import("resource:///modules/TorStrings.jsm"); + +class ConnectionSettingsDialog { + constructor() { + this._dialog = null; + this._useProxyCheckbox = null; + this._proxyTypeLabel = null; + this._proxyTypeMenulist = null; + this._proxyAddressLabel = null; + this._proxyAddressTextbox = null; + this._proxyPortLabel = null; + this._proxyPortTextbox = null; + this._proxyUsernameLabel = null; + this._proxyUsernameTextbox = null; + this._proxyPasswordLabel = null; + this._proxyPasswordTextbox = null; + this._useFirewallCheckbox = null; + this._allowedPortsLabel = null; + this._allowedPortsTextbox = null; + } + + static get selectors() { + return { + header: "#torPreferences-connection-header", + useProxyCheckbox: "checkbox#torPreferences-connection-toggleProxy", + proxyTypeLabel: "label#torPreferences-localProxy-type", + proxyTypeList: "menulist#torPreferences-localProxy-builtinList", + proxyAddressLabel: "label#torPreferences-localProxy-address", + proxyAddressTextbox: "input#torPreferences-localProxy-textboxAddress", + proxyPortLabel: "label#torPreferences-localProxy-port", + proxyPortTextbox: "input#torPreferences-localProxy-textboxPort", + proxyUsernameLabel: "label#torPreferences-localProxy-username", + proxyUsernameTextbox: "input#torPreferences-localProxy-textboxUsername", + proxyPasswordLabel: "label#torPreferences-localProxy-password", + proxyPasswordTextbox: "input#torPreferences-localProxy-textboxPassword", + useFirewallCheckbox: "checkbox#torPreferences-connection-toggleFirewall", + firewallAllowedPortsLabel: "label#torPreferences-connection-allowedPorts", + firewallAllowedPortsTextbox: + "input#torPreferences-connection-textboxAllowedPorts", + }; + } + + // disables the provided list of elements + _setElementsDisabled(elements, disabled) { + for (let currentElement of elements) { + currentElement.disabled = disabled; + } + } + + _populateXUL(window, aDialog) { + const selectors = ConnectionSettingsDialog.selectors; + + this._dialog = aDialog; + const dialogWin = this._dialog.parentElement; + dialogWin.setAttribute( + "title", + TorStrings.settings.connectionSettingsDialogTitle + ); + this._dialog.querySelector(selectors.header).textContent = + TorStrings.settings.connectionSettingsDialogHeader; + + // Local Proxy + this._useProxyCheckbox = this._dialog.querySelector( + selectors.useProxyCheckbox + ); + this._useProxyCheckbox.setAttribute( + "label", + TorStrings.settings.useLocalProxy + ); + this._useProxyCheckbox.addEventListener("command", e => { + const checked = this._useProxyCheckbox.checked; + this.onToggleProxy(checked); + }); + this._proxyTypeLabel = this._dialog.querySelector(selectors.proxyTypeLabel); + this._proxyTypeLabel.setAttribute("value", TorStrings.settings.proxyType); + + let mockProxies = [ + { + value: TorProxyType.Socks4, + label: TorStrings.settings.proxyTypeSOCKS4, + }, + { + value: TorProxyType.Socks5, + label: TorStrings.settings.proxyTypeSOCKS5, + }, + { value: TorProxyType.HTTPS, label: TorStrings.settings.proxyTypeHTTP }, + ]; + this._proxyTypeMenulist = this._dialog.querySelector( + selectors.proxyTypeList + ); + this._proxyTypeMenulist.addEventListener("command", e => { + const value = this._proxyTypeMenulist.value; + this.onSelectProxyType(value); + }); + for (let currentProxy of mockProxies) { + let menuEntry = window.document.createXULElement("menuitem"); + menuEntry.setAttribute("value", currentProxy.value); + menuEntry.setAttribute("label", currentProxy.label); + this._proxyTypeMenulist.querySelector("menupopup").appendChild(menuEntry); + } + + this._proxyAddressLabel = this._dialog.querySelector( + selectors.proxyAddressLabel + ); + this._proxyAddressLabel.setAttribute( + "value", + TorStrings.settings.proxyAddress + ); + this._proxyAddressTextbox = this._dialog.querySelector( + selectors.proxyAddressTextbox + ); + this._proxyAddressTextbox.setAttribute( + "placeholder", + TorStrings.settings.proxyAddressPlaceholder + ); + this._proxyAddressTextbox.addEventListener("blur", e => { + let value = this._proxyAddressTextbox.value.trim(); + let colon = value.lastIndexOf(":"); + if (colon != -1) { + let maybePort = parseInt(value.substr(colon + 1)); + if (!isNaN(maybePort) && maybePort > 0 && maybePort < 65536) { + this._proxyAddressTextbox.value = value.substr(0, colon); + this._proxyPortTextbox.value = maybePort; + } + } + }); + this._proxyPortLabel = this._dialog.querySelector(selectors.proxyPortLabel); + this._proxyPortLabel.setAttribute("value", TorStrings.settings.proxyPort); + this._proxyPortTextbox = this._dialog.querySelector( + selectors.proxyPortTextbox + ); + this._proxyUsernameLabel = this._dialog.querySelector( + selectors.proxyUsernameLabel + ); + this._proxyUsernameLabel.setAttribute( + "value", + TorStrings.settings.proxyUsername + ); + this._proxyUsernameTextbox = this._dialog.querySelector( + selectors.proxyUsernameTextbox + ); + this._proxyUsernameTextbox.setAttribute( + "placeholder", + TorStrings.settings.proxyUsernamePasswordPlaceholder + ); + this._proxyPasswordLabel = this._dialog.querySelector( + selectors.proxyPasswordLabel + ); + this._proxyPasswordLabel.setAttribute( + "value", + TorStrings.settings.proxyPassword + ); + this._proxyPasswordTextbox = this._dialog.querySelector( + selectors.proxyPasswordTextbox + ); + this._proxyPasswordTextbox.setAttribute( + "placeholder", + TorStrings.settings.proxyUsernamePasswordPlaceholder + ); + + this.onToggleProxy(false); + if (TorSettings.proxy.enabled) { + this.onToggleProxy(true); + this.onSelectProxyType(TorSettings.proxy.type); + this._proxyAddressTextbox.value = TorSettings.proxy.address; + this._proxyPortTextbox.value = TorSettings.proxy.port; + this._proxyUsernameTextbox.value = TorSettings.proxy.username; + this._proxyPasswordTextbox.value = TorSettings.proxy.password; + } + + // Local firewall + this._useFirewallCheckbox = this._dialog.querySelector( + selectors.useFirewallCheckbox + ); + this._useFirewallCheckbox.setAttribute( + "label", + TorStrings.settings.useFirewall + ); + this._useFirewallCheckbox.addEventListener("command", e => { + const checked = this._useFirewallCheckbox.checked; + this.onToggleFirewall(checked); + }); + this._allowedPortsLabel = this._dialog.querySelector( + selectors.firewallAllowedPortsLabel + ); + this._allowedPortsLabel.setAttribute( + "value", + TorStrings.settings.allowedPorts + ); + this._allowedPortsTextbox = this._dialog.querySelector( + selectors.firewallAllowedPortsTextbox + ); + this._allowedPortsTextbox.setAttribute( + "placeholder", + TorStrings.settings.allowedPortsPlaceholder + ); + + this.onToggleFirewall(false); + if (TorSettings.firewall.enabled) { + this.onToggleFirewall(true); + this._allowedPortsTextbox.value = TorSettings.firewall.allowed_ports.join( + ", " + ); + } + + this._dialog.addEventListener("dialogaccept", e => { + this._applySettings(); + }); + + // Hack: see the CSS + this._dialog.style.minWidth = '0'; + this._dialog.style.minHeight = '0'; + } + + // callback when proxy is toggled + onToggleProxy(enabled) { + this._useProxyCheckbox.checked = enabled; + let disabled = !enabled; + + this._setElementsDisabled( + [ + this._proxyTypeLabel, + this._proxyTypeMenulist, + this._proxyAddressLabel, + this._proxyAddressTextbox, + this._proxyPortLabel, + this._proxyPortTextbox, + this._proxyUsernameLabel, + this._proxyUsernameTextbox, + this._proxyPasswordLabel, + this._proxyPasswordTextbox, + ], + disabled + ); + if (enabled) { + this.onSelectProxyType(this._proxyTypeMenulist.value); + } + } + + // callback when proxy type is changed + onSelectProxyType(value) { + if (typeof value === "string") { + value = parseInt(value); + } + + this._proxyTypeMenulist.value = value; + switch (value) { + case TorProxyType.Invalid: { + this._setElementsDisabled( + [ + this._proxyAddressLabel, + this._proxyAddressTextbox, + this._proxyPortLabel, + this._proxyPortTextbox, + this._proxyUsernameLabel, + this._proxyUsernameTextbox, + this._proxyPasswordLabel, + this._proxyPasswordTextbox, + ], + true + ); // DISABLE + + this._proxyAddressTextbox.value = ""; + this._proxyPortTextbox.value = ""; + this._proxyUsernameTextbox.value = ""; + this._proxyPasswordTextbox.value = ""; + break; + } + case TorProxyType.Socks4: { + this._setElementsDisabled( + [ + this._proxyAddressLabel, + this._proxyAddressTextbox, + this._proxyPortLabel, + this._proxyPortTextbox, + ], + false + ); // ENABLE + this._setElementsDisabled( + [ + this._proxyUsernameLabel, + this._proxyUsernameTextbox, + this._proxyPasswordLabel, + this._proxyPasswordTextbox, + ], + true + ); // DISABLE + + this._proxyUsernameTextbox.value = ""; + this._proxyPasswordTextbox.value = ""; + break; + } + case TorProxyType.Socks5: + case TorProxyType.HTTPS: { + this._setElementsDisabled( + [ + this._proxyAddressLabel, + this._proxyAddressTextbox, + this._proxyPortLabel, + this._proxyPortTextbox, + this._proxyUsernameLabel, + this._proxyUsernameTextbox, + this._proxyPasswordLabel, + this._proxyPasswordTextbox, + ], + false + ); // ENABLE + break; + } + } + } + + // callback when firewall proxy is toggled + onToggleFirewall(enabled) { + this._useFirewallCheckbox.checked = enabled; + let disabled = !enabled; + + this._setElementsDisabled( + [this._allowedPortsLabel, this._allowedPortsTextbox], + disabled + ); + } + + // pushes settings from UI to tor + _applySettings() { + const type = this._useProxyCheckbox.checked + ? parseInt(this._proxyTypeMenulist.value) + : TorProxyType.Invalid; + const address = this._proxyAddressTextbox.value; + const port = this._proxyPortTextbox.value; + const username = this._proxyUsernameTextbox.value; + const password = this._proxyPasswordTextbox.value; + switch (type) { + case TorProxyType.Invalid: + TorSettings.proxy.enabled = false; + break; + case TorProxyType.Socks4: + TorSettings.proxy.enabled = true; + TorSettings.proxy.type = type; + TorSettings.proxy.address = address; + TorSettings.proxy.port = port; + break; + case TorProxyType.Socks5: + TorSettings.proxy.enabled = true; + TorSettings.proxy.type = type; + TorSettings.proxy.address = address; + TorSettings.proxy.port = port; + TorSettings.proxy.username = username; + TorSettings.proxy.password = password; + break; + case TorProxyType.HTTPS: + TorSettings.proxy.enabled = true; + TorSettings.proxy.type = type; + TorSettings.proxy.address = address; + TorSettings.proxy.port = port; + TorSettings.proxy.username = username; + TorSettings.proxy.password = password; + break; + } + + let portListString = this._useFirewallCheckbox.checked + ? this._allowedPortsTextbox.value + : ""; + if (portListString) { + TorSettings.firewall.enabled = true; + TorSettings.firewall.allowed_ports = portListString; + } else { + TorSettings.firewall.enabled = false; + } + + TorSettings.saveToPrefs(); + TorSettings.applySettings(); + } + + init(window, aDialog) { + // defer to later until firefox has populated the dialog with all our elements + window.setTimeout(() => { + this._populateXUL(window, aDialog); + }, 0); + } + + openDialog(gSubDialog) { + gSubDialog.open( + "chrome://browser/content/torpreferences/connectionSettingsDialog.xhtml", + { features: "resizable=yes" }, + this + ); + } +} diff --git a/browser/components/torpreferences/content/connectionSettingsDialog.xhtml b/browser/components/torpreferences/content/connectionSettingsDialog.xhtml new file mode 100644 index 0000000000000..8265cdd71c2f8 --- /dev/null +++ b/browser/components/torpreferences/content/connectionSettingsDialog.xhtml @@ -0,0 +1,60 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?xml-stylesheet href="chrome://global/skin/" type="text/css"?> +<?xml-stylesheet href="chrome://browser/skin/preferences/preferences.css"?> +<?xml-stylesheet href="chrome://browser/content/torpreferences/torPreferences.css"?> + +<window type="child" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" + xmlns:html="http://www.w3.org/1999/xhtml%22%3E +<dialog id="torPreferences-connection-dialog" + buttons="accept,cancel"> + <html:h3 id="torPreferences-connection-header">​</html:h3> + <!-- Local Proxy --> + <checkbox id="torPreferences-connection-toggleProxy" label="​"/> + <box id="torPreferences-connection-grid"> + <hbox class="indent" align="center"> + <label id="torPreferences-localProxy-type"/> + </hbox> + <hbox align="center"> + <spacer flex="1"/> + <menulist id="torPreferences-localProxy-builtinList" class="torMarginFix"> + <menupopup/> + </menulist> + </hbox> + <hbox class="indent" align="center"> + <label id="torPreferences-localProxy-address"/> + </hbox> + <hbox align="center"> + <html:input id="torPreferences-localProxy-textboxAddress" type="text" class="torMarginFix"/> + <label id="torPreferences-localProxy-port"/> + <!-- proxy-port-input class style pulled from preferences.css and used in the vanilla proxy setup menu --> + <html:input id="torPreferences-localProxy-textboxPort" class="proxy-port-input torMarginFix" hidespinbuttons="true" type="number" min="0" max="65535" maxlength="5"/> + </hbox> + <hbox class="indent" align="center"> + <label id="torPreferences-localProxy-username"/> + </hbox> + <hbox align="center"> + <html:input id="torPreferences-localProxy-textboxUsername" type="text" class="torMarginFix"/> + <label id="torPreferences-localProxy-password"/> + <html:input id="torPreferences-localProxy-textboxPassword" class="torMarginFix" type="password"/> + </hbox> + </box> + <!-- Firewall --> + <checkbox id="torPreferences-connection-toggleFirewall" label="​"/> + <box id="torPreferences-connection-firewall"> + <hbox class="indent" align="center"> + <label id="torPreferences-connection-allowedPorts"/> + </hbox> + <hbox id="torPreferences-connection-hboxAllowedPorts" align="center"> + <html:input id="torPreferences-connection-textboxAllowedPorts" type="text" class="torMarginFix" value="80,443"/> + </hbox> + </box> + <script type="application/javascript"><![CDATA[ + "use strict"; + + let connectionSettingsDialog = window.arguments[0]; + let dialog = document.getElementById("torPreferences-connection-dialog"); + connectionSettingsDialog.init(window, dialog); + ]]></script> +</dialog> +</window> diff --git a/browser/components/torpreferences/content/network.svg b/browser/components/torpreferences/content/network.svg new file mode 100644 index 0000000000000..e1689b5e6d649 --- /dev/null +++ b/browser/components/torpreferences/content/network.svg @@ -0,0 +1,6 @@ +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16" fill="context-fill" fill-opacity="context-fill-opacity"> + <path d="M8.5 1a7.5 7.5 0 1 0 0 15 7.5 7.5 0 0 0 0-15zm2.447 1.75a6.255 6.255 0 0 1 3.756 5.125l-2.229 0A9.426 9.426 0 0 0 10.54 2.75l.407 0zm-2.049 0a8.211 8.211 0 0 1 2.321 5.125l-5.438 0A8.211 8.211 0 0 1 8.102 2.75l.796 0zm-2.846 0 .408 0a9.434 9.434 0 0 0-1.934 5.125l-2.229 0A6.254 6.254 0 0 1 6.052 2.75zm0 11.5a6.252 6.252 0 0 1-3.755-5.125l2.229 0A9.426 9.426 0 0 0 6.46 14.25l-.408 0zm2.05 0a8.211 8.211 0 0 1-2.321-5.125l5.437 0a8.211 8.211 0 0 1-2.321 5.125l-.795 0zm2.846 0-.40 [...] +</svg> diff --git a/browser/components/torpreferences/content/provideBridgeDialog.jsm b/browser/components/torpreferences/content/provideBridgeDialog.jsm new file mode 100644 index 0000000000000..f20cf9ddd925d --- /dev/null +++ b/browser/components/torpreferences/content/provideBridgeDialog.jsm @@ -0,0 +1,75 @@ +"use strict"; + +var EXPORTED_SYMBOLS = ["ProvideBridgeDialog"]; + +const { TorStrings } = ChromeUtils.import("resource:///modules/TorStrings.jsm"); + +const { TorSettings, TorBridgeSource } = ChromeUtils.import( + "resource:///modules/TorSettings.jsm" +); + +class ProvideBridgeDialog { + constructor() { + this._dialog = null; + this._textarea = null; + this._bridgeString = ""; + } + + static get selectors() { + return { + header: "#torPreferences-provideBridge-header", + textarea: "#torPreferences-provideBridge-textarea", + }; + } + + _populateXUL(window, aDialog) { + const selectors = ProvideBridgeDialog.selectors; + + this._dialog = aDialog; + const dialogWin = this._dialog.parentElement; + dialogWin.setAttribute("title", TorStrings.settings.provideBridgeTitle); + this._dialog.querySelector(selectors.header).textContent = + TorStrings.settings.provideBridgeHeader; + this._textarea = this._dialog.querySelector(selectors.textarea); + this._textarea.setAttribute( + "placeholder", + TorStrings.settings.provideBridgePlaceholder + ); + if ( + TorSettings.bridges.enabled && + TorSettings.bridges.source == TorBridgeSource.UserProvided + ) { + this._textarea.value = TorSettings.bridges.bridge_strings.join("\n"); + } + + this._dialog.addEventListener("dialogaccept", e => { + this._bridgeString = this._textarea.value; + }); + this._dialog.addEventListener("dialoghelp", e => { + window.top.openTrustedLinkIn( + TorStrings.settings.learnMoreBridgesURL, + "tab" + ); + }); + } + + init(window, aDialog) { + // defer to later until firefox has populated the dialog with all our elements + window.setTimeout(() => { + this._populateXUL(window, aDialog); + }, 0); + } + + openDialog(gSubDialog, aCloseCallback) { + gSubDialog.open( + "chrome://browser/content/torpreferences/provideBridgeDialog.xhtml", + { + features: "resizable=yes", + closingCallback: () => { + aCloseCallback(this._bridgeString); + }, + }, + this + ); + } +} diff --git a/browser/components/torpreferences/content/provideBridgeDialog.xhtml b/browser/components/torpreferences/content/provideBridgeDialog.xhtml new file mode 100644 index 0000000000000..28d19cadaf9c9 --- /dev/null +++ b/browser/components/torpreferences/content/provideBridgeDialog.xhtml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?xml-stylesheet href="chrome://global/skin/" type="text/css"?> +<?xml-stylesheet href="chrome://browser/skin/preferences/preferences.css"?> +<?xml-stylesheet href="chrome://browser/content/torpreferences/torPreferences.css"?> + +<window type="child" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" + xmlns:html="http://www.w3.org/1999/xhtml%22%3E +<dialog id="torPreferences-provideBridge-dialog" + buttons="help,accept,cancel"> + <html:h3 id="torPreferences-provideBridge-header">​</html:h3> + <html:textarea id="torPreferences-provideBridge-textarea" multiline="true" rows="3"/> + <script type="application/javascript"><![CDATA[ + "use strict"; + + let provideBridgeDialog = window.arguments[0]; + let dialog = document.getElementById("torPreferences-provideBridge-dialog"); + provideBridgeDialog.init(window, dialog); + ]]></script> +</dialog> +</window> diff --git a/browser/components/torpreferences/content/requestBridgeDialog.jsm b/browser/components/torpreferences/content/requestBridgeDialog.jsm new file mode 100644 index 0000000000000..9b8cd6db0a9b9 --- /dev/null +++ b/browser/components/torpreferences/content/requestBridgeDialog.jsm @@ -0,0 +1,211 @@ +"use strict"; + +var EXPORTED_SYMBOLS = ["RequestBridgeDialog"]; + +const { BridgeDB } = ChromeUtils.import("resource:///modules/BridgeDB.jsm"); +const { TorStrings } = ChromeUtils.import("resource:///modules/TorStrings.jsm"); + +class RequestBridgeDialog { + constructor() { + this._dialog = null; + this._submitButton = null; + this._dialogHeader = null; + this._captchaImage = null; + this._captchaEntryTextbox = null; + this._captchaRefreshButton = null; + this._incorrectCaptchaHbox = null; + this._incorrectCaptchaLabel = null; + this._bridges = []; + } + + static get selectors() { + return { + submitButton: + "accept" /* not really a selector but a key for dialog's getButton */, + dialogHeader: "h3#torPreferences-requestBridge-header", + captchaImage: "image#torPreferences-requestBridge-captchaImage", + captchaEntryTextbox: "input#torPreferences-requestBridge-captchaTextbox", + refreshCaptchaButton: + "button#torPreferences-requestBridge-refreshCaptchaButton", + incorrectCaptchaHbox: + "hbox#torPreferences-requestBridge-incorrectCaptchaHbox", + incorrectCaptchaLabel: + "label#torPreferences-requestBridge-incorrectCaptchaError", + }; + } + + _populateXUL(window, dialog) { + const selectors = RequestBridgeDialog.selectors; + + this._dialog = dialog; + const dialogWin = dialog.parentElement; + dialogWin.setAttribute( + "title", + TorStrings.settings.requestBridgeDialogTitle + ); + // user may have opened a Request Bridge dialog in another tab, so update the + // CAPTCHA image or close out the dialog if we have a bridge list + this._dialog.addEventListener("focusin", () => { + const uri = BridgeDB.currentCaptchaImage; + const bridges = BridgeDB.currentBridges; + + // new captcha image + if (uri) { + this._setcaptchaImage(uri); + } else if (bridges) { + this._bridges = bridges; + this._submitButton.disabled = false; + this._dialog.cancelDialog(); + } + }); + + this._submitButton = this._dialog.getButton(selectors.submitButton); + this._submitButton.setAttribute("label", TorStrings.settings.submitCaptcha); + this._submitButton.disabled = true; + this._dialog.addEventListener("dialogaccept", e => { + e.preventDefault(); + this.onSubmitCaptcha(); + }); + this._dialog.addEventListener("dialoghelp", e => { + window.top.openTrustedLinkIn( + TorStrings.settings.learnMoreBridgesURL, + "tab" + ); + }); + + this._dialogHeader = this._dialog.querySelector(selectors.dialogHeader); + this._dialogHeader.textContent = TorStrings.settings.contactingBridgeDB; + + this._captchaImage = this._dialog.querySelector(selectors.captchaImage); + + // request captcha from bridge db + BridgeDB.requestNewCaptchaImage().then(uri => { + this._setcaptchaImage(uri); + }); + + this._captchaEntryTextbox = this._dialog.querySelector( + selectors.captchaEntryTextbox + ); + this._captchaEntryTextbox.setAttribute( + "placeholder", + TorStrings.settings.captchaTextboxPlaceholder + ); + this._captchaEntryTextbox.disabled = true; + // disable submit if entry textbox is empty + this._captchaEntryTextbox.oninput = () => { + this._submitButton.disabled = this._captchaEntryTextbox.value == ""; + }; + + this._captchaRefreshButton = this._dialog.querySelector( + selectors.refreshCaptchaButton + ); + this._captchaRefreshButton.disabled = true; + + this._incorrectCaptchaHbox = this._dialog.querySelector( + selectors.incorrectCaptchaHbox + ); + this._incorrectCaptchaLabel = this._dialog.querySelector( + selectors.incorrectCaptchaLabel + ); + this._incorrectCaptchaLabel.setAttribute( + "value", + TorStrings.settings.incorrectCaptcha + ); + + return true; + } + + _setcaptchaImage(uri) { + if (uri != this._captchaImage.src) { + this._captchaImage.src = uri; + this._dialogHeader.textContent = TorStrings.settings.solveTheCaptcha; + this._setUIDisabled(false); + this._captchaEntryTextbox.focus(); + this._captchaEntryTextbox.select(); + } + } + + _setUIDisabled(disabled) { + this._submitButton.disabled = this._captchaGuessIsEmpty() || disabled; + this._captchaEntryTextbox.disabled = disabled; + this._captchaRefreshButton.disabled = disabled; + } + + _captchaGuessIsEmpty() { + return this._captchaEntryTextbox.value == ""; + } + + init(window, dialog) { + // defer to later until firefox has populated the dialog with all our elements + window.setTimeout(() => { + this._populateXUL(window, dialog); + }, 0); + } + + close() { + BridgeDB.close(); + } + + /* + Event Handlers + */ + onSubmitCaptcha() { + let captchaText = this._captchaEntryTextbox.value.trim(); + // noop if the field is empty + if (captchaText == "") { + return; + } + + // freeze ui while we make request + this._setUIDisabled(true); + this._incorrectCaptchaHbox.style.visibility = "hidden"; + + BridgeDB.submitCaptchaGuess(captchaText) + .then(aBridges => { + if (aBridges) { + this._bridges = aBridges; + this._submitButton.disabled = false; + // This was successful, but use cancelDialog() to close, since + // we intercept the `dialogaccept` event. + this._dialog.cancelDialog(); + } else { + this._bridges = []; + this._setUIDisabled(false); + this._incorrectCaptchaHbox.style.visibility = "visible"; + } + }) + .catch(aError => { + // TODO: handle other errors properly here when we do the bridge settings re-design + this._bridges = []; + this._setUIDisabled(false); + this._incorrectCaptchaHbox.style.visibility = "visible"; + console.log(aError); + }); + } + + onRefreshCaptcha() { + this._setUIDisabled(true); + this._captchaImage.src = ""; + this._dialogHeader.textContent = TorStrings.settings.contactingBridgeDB; + this._captchaEntryTextbox.value = ""; + this._incorrectCaptchaHbox.style.visibility = "hidden"; + + BridgeDB.requestNewCaptchaImage().then(uri => { + this._setcaptchaImage(uri); + }); + } + + openDialog(gSubDialog, aCloseCallback) { + gSubDialog.open( + "chrome://browser/content/torpreferences/requestBridgeDialog.xhtml", + { + features: "resizable=yes", + closingCallback: () => { + this.close(); + aCloseCallback(this._bridges); + }, + }, + this + ); + } +} diff --git a/browser/components/torpreferences/content/requestBridgeDialog.xhtml b/browser/components/torpreferences/content/requestBridgeDialog.xhtml new file mode 100644 index 0000000000000..b7286528a8a5a --- /dev/null +++ b/browser/components/torpreferences/content/requestBridgeDialog.xhtml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?xml-stylesheet href="chrome://global/skin/" type="text/css"?> +<?xml-stylesheet href="chrome://browser/skin/preferences/preferences.css"?> +<?xml-stylesheet href="chrome://browser/content/torpreferences/torPreferences.css"?> + +<window type="child" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" + xmlns:html="http://www.w3.org/1999/xhtml%22%3E +<dialog id="torPreferences-requestBridge-dialog" + buttons="help,accept,cancel"> + <!-- ok, so ​ is a zero-width space. We need to have *something* in the innerText so that XUL knows how tall the + title node is so that it can determine how large to make the dialog element's inner draw area. If we have nothing + in the innerText, then it collapse to 0 height, and the contents of the dialog ends up partially hidden >:( --> + <html:h3 id="torPreferences-requestBridge-header">​</html:h3> + <!-- init to transparent 400x125 png --> + <image id="torPreferences-requestBridge-captchaImage" flex="1"/> + <hbox id="torPreferences-requestBridge-inputHbox"> + <html:input id="torPreferences-requestBridge-captchaTextbox" type="text" style="-moz-box-flex: 1;"/> + <button id="torPreferences-requestBridge-refreshCaptchaButton" + image="chrome://browser/skin/reload.svg" + oncommand="requestBridgeDialog.onRefreshCaptcha();"/> + </hbox> + <hbox id="torPreferences-requestBridge-incorrectCaptchaHbox" align="center"> + <image id="torPreferences-requestBridge-errorIcon" /> + <label id="torPreferences-requestBridge-incorrectCaptchaError" flex="1"/> + </hbox> + <script type="application/javascript"><![CDATA[ + "use strict"; + + let requestBridgeDialog = window.arguments[0]; + let dialog = document.getElementById("torPreferences-requestBridge-dialog"); + requestBridgeDialog.init(window, dialog); + ]]></script> +</dialog> +</window> diff --git a/browser/components/torpreferences/content/torLogDialog.jsm b/browser/components/torpreferences/content/torLogDialog.jsm new file mode 100644 index 0000000000000..94a57b9b165ee --- /dev/null +++ b/browser/components/torpreferences/content/torLogDialog.jsm @@ -0,0 +1,84 @@ +"use strict"; + +var EXPORTED_SYMBOLS = ["TorLogDialog"]; + +const { setTimeout, clearTimeout } = ChromeUtils.import( + "resource://gre/modules/Timer.jsm" +); + +const { TorProtocolService } = ChromeUtils.import( + "resource:///modules/TorProtocolService.jsm" +); +const { TorStrings } = ChromeUtils.import("resource:///modules/TorStrings.jsm"); + +class TorLogDialog { + constructor() { + this._dialog = null; + this._logTextarea = null; + this._copyLogButton = null; + this._restoreButtonTimeout = null; + } + + static get selectors() { + return { + copyLogButton: "extra1", + logTextarea: "textarea#torPreferences-torDialog-textarea", + }; + } + + _populateXUL(aDialog) { + this._dialog = aDialog; + const dialogWin = this._dialog.parentElement; + dialogWin.setAttribute("title", TorStrings.settings.torLogDialogTitle); + + this._logTextarea = this._dialog.querySelector( + TorLogDialog.selectors.logTextarea + ); + + this._copyLogButton = this._dialog.getButton( + TorLogDialog.selectors.copyLogButton + ); + this._copyLogButton.setAttribute("label", TorStrings.settings.copyLog); + this._copyLogButton.addEventListener("command", () => { + this.copyTorLog(); + const label = this._copyLogButton.querySelector("label"); + label.setAttribute("value", TorStrings.settings.copied); + this._copyLogButton.classList.add("primary"); + + const RESTORE_TIME = 1200; + if (this._restoreButtonTimeout !== null) { + clearTimeout(this._restoreButtonTimeout); + } + this._restoreButtonTimeout = setTimeout(() => { + label.setAttribute("value", TorStrings.settings.copyLog); + this._copyLogButton.classList.remove("primary"); + this._restoreButtonTimeout = null; + }, RESTORE_TIME); + }); + + this._logTextarea.value = TorProtocolService.getLog(); + } + + init(window, aDialog) { + // defer to later until firefox has populated the dialog with all our elements + window.setTimeout(() => { + this._populateXUL(aDialog); + }, 0); + } + + copyTorLog() { + // Copy tor log messages to the system clipboard. + let clipboard = Cc["@mozilla.org/widget/clipboardhelper;1"].getService( + Ci.nsIClipboardHelper + ); + clipboard.copyString(this._logTextarea.value); + } + + openDialog(gSubDialog) { + gSubDialog.open( + "chrome://browser/content/torpreferences/torLogDialog.xhtml", + { features: "resizable=yes" }, + this + ); + } +} diff --git a/browser/components/torpreferences/content/torLogDialog.xhtml b/browser/components/torpreferences/content/torLogDialog.xhtml new file mode 100644 index 0000000000000..9c17f8132978d --- /dev/null +++ b/browser/components/torpreferences/content/torLogDialog.xhtml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?xml-stylesheet href="chrome://global/skin/" type="text/css"?> +<?xml-stylesheet href="chrome://browser/skin/preferences/preferences.css"?> +<?xml-stylesheet href="chrome://browser/content/torpreferences/torPreferences.css"?> + +<window type="child" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" + xmlns:html="http://www.w3.org/1999/xhtml%22%3E +<dialog id="torPreferences-torLog-dialog" + buttons="accept,extra1"> + <html:textarea + id="torPreferences-torDialog-textarea" + multiline="true" + readonly="true"/> + <script type="application/javascript"><![CDATA[ + "use strict"; + + let torLogDialog = window.arguments[0]; + let dialog = document.getElementById("torPreferences-torLog-dialog"); + torLogDialog.init(window, dialog); + ]]></script> +</dialog> +</window> \ No newline at end of file diff --git a/browser/components/torpreferences/content/torPreferences.css b/browser/components/torpreferences/content/torPreferences.css new file mode 100644 index 0000000000000..a39bd4b4767cb --- /dev/null +++ b/browser/components/torpreferences/content/torPreferences.css @@ -0,0 +1,684 @@ +@import url("chrome://branding/content/tor-styles.css"); + +#category-connection > .category-icon { + list-style-image: url("chrome://browser/content/torpreferences/torPreferencesIcon.svg"); +} + +html:dir(rtl) input[type="checkbox"].toggle-button::before { + /* For some reason, the rule from toggle-button.css is not applied... */ + scale: -1; +} + +/* Connect Message Box */ + +#torPreferences-connectMessageBox { + display: block; + position: relative; + + width: auto; + min-height: 32px; + border-radius: 4px; + padding: 8px; +} + +#torPreferences-connectMessageBox.hidden { + display: none; +} + +#torPreferences-connectMessageBox.error { + background-color: var(--red-60); + color: white; +} + +#torPreferences-connectMessageBox.warning { + background-color: var(--purple-50); + color: white; +} + +#torPreferences-connectMessageBox table { + border-collapse: collapse; +} + +#torPreferences-connectMessageBox td { + vertical-align: middle; +} + +#torPreferences-connectMessageBox td:first-child { + width: 16px; +} + +#torPreferences-connectMessageBox-icon { + width: 16px; + height: 16px; + + mask-repeat: no-repeat !important; + mask-size: 16px !important; +} + +#torPreferences-connectMessageBox.error #torPreferences-connectMessageBox-icon +{ + mask: url("chrome://browser/skin/onion-slash.svg"); + background-color: white; +} + +#torPreferences-connectMessageBox.warning #torPreferences-connectMessageBox-icon +{ + mask: url("chrome://browser/skin/onion.svg"); + background-color: white; +} + +#torPreferences-connectMessageBox-message { + line-height: 16px; + padding-inline-start: 8px; +} + +#torPreferences-connectMessageBox-button { + display: block; + width: auto; + + border-radius: 4px; + border: 0; + + padding-inline: 18px; + padding-block: 8px; + margin-block: 0px; + margin-inline-start: 8px; + margin-inline-end: 0px; + + font-size: 1.0em; + font-weight: 600; + white-space: nowrap; + + color: white; +} + +#torPreferences-connectMessageBox.error #torPreferences-connectMessageBox-button { + background-color: var(--red-70); +} + +#torPreferences-connectMessageBox.error #torPreferences-connectMessageBox-button:hover { + background-color: var(--red-80); +} + +#torPreferences-connectMessageBox.error #torPreferences-connectMessageBox-button:active { + background-color: var(--red-90); +} + +#torPreferences-connectMessageBox.warning #torPreferences-connectMessageBox-button { + background-color: var(--purple-70); +} + +#torPreferences-connectMessageBox.warning #torPreferences-connectMessageBox-button:hover { + background-color: var(--purple-80); +} + +#torPreferences-connectMessageBox.warning #torPreferences-connectMessageBox-button:active { + background-color: var(--purple-90); +} + +/* Status */ +#torPreferences-status-box { + display: flex; + align-items: center; +} + +#torPreferences-status-internet-icon, #torPreferences-status-tor-icon { + width: 18px; + height: 18px; + margin-inline-end: 8px; +} + +#torPreferences-status-internet-label, #torPreferences-status-tor-label { + font-weight: bold; +} + +#torPreferences-status-internet-icon { + list-style-image: url("chrome://devtools/skin/images/globe.svg"); +} + +#torPreferences-status-internet-statusIcon.online, +#torPreferences-status-internet-statusIcon.offline, +#torPreferences-status-tor-statusIcon { + margin-inline-start: 12px; + margin-inline-end: 9px; +} + +#torPreferences-status-internet-statusIcon.online, #torPreferences-status-tor-statusIcon.connected { + list-style-image: url("chrome://devtools/skin/images/check.svg"); + -moz-context-properties: fill; + fill: var(--purple-60); +} + +#torPreferences-status-internet-status { + margin-inline-end: 32px; +} + +#torPreferences-status-tor-icon { + list-style-image: url("chrome://browser/skin/onion.svg"); +} + +#torPreferences-status-internet-icon, #torPreferences-status-tor-icon { + -moz-context-properties: fill; + fill: var(--in-content-text-color); +} + +#torPreferences-status-tor-statusIcon, #torPreferences-status-internet-statusIcon.offline { + list-style-image: url("chrome://browser/skin/warning.svg"); +} + +#torPreferences-status-tor-statusIcon.blocked { + -moz-context-properties: fill; + fill: var(--red-60); +} + +/* Bridge settings */ +#torPreferences-bridges-location { + width: 280px; +} + +#torPreferences-bridges-location menuitem[disabled="true"] { + color: var(--in-content-button-text-color, inherit); + font-weight: 700; +} + +/* Bridge cards */ +:root { + --bridgeCard-animation-time: 0.25s; +} + +#torPreferences-currentBridges-cards { + /* The padding is needed because the mask-image creates an unexpected result + otherwise... */ + padding: 24px 4px; +} + +#torPreferences-currentBridges-cards.list-collapsed { + mask-image: linear-gradient(rgb(0, 0, 0) 0% 75%, rgba(0, 0, 0, 0.1)); +} + +#torPreferences-currentBridges-cards.disabled { + opacity: 0.4; +} + +.torPreferences-bridgeCard { + padding: 16px 12px; + /* define border-radius here because of the transition */ + border-radius: 4px; + transition: margin var(--bridgeCard-animation-time), box-shadow 150ms; + cursor: pointer; +} + +.torPreferences-bridgeCard.expanded, +.torPreferences-bridgeCard.currently-connected, +.single-card .torPreferences-bridgeCard { + margin: 12px 0; + background: var(--in-content-box-background); + box-shadow: var(--card-shadow); +} + +.torPreferences-bridgeCard:hover { + background: var(--in-content-box-background); + box-shadow: var(--card-shadow-hover); +} + +.single-card .torPreferences-bridgeCard, +.torPreferences-bridgeCard.currently-connected { + cursor: default; +} + +.torPreferences-bridgeCard-heading { + display: flex; + align-items: center; +} + +.torPreferences-bridgeCard-id { + display: flex; + align-items: center; + font-weight: 700; +} + +.torPreferences-bridgeCard-id .emoji { + width: 20px; + height: 20px; + margin-inline-start: 4px; + padding: 4px; + font-size: 20px; + border-radius: 4px; + background: var(--in-content-box-background-odd); +} + +.torPreferences-bridgeCard-headingAddr { + /* flex extends the element when needed, but without setting a width (any) the + overflow + ellipses does not work. */ + width: 20px; + flex: 1; + margin: 0 8px; + overflow: hidden; + color: var(--in-content-deemphasized-text); + white-space: nowrap; + text-overflow: ellipsis; +} + +.expanded .torPreferences-bridgeCard-headingAddr, +.currently-connected .torPreferences-bridgeCard-headingAddr, +.single-card .torPreferences-bridgeCard-headingAddr { + display: none; +} + +.torPreferences-bridgeCard-buttons { + display: flex; + align-items: center; + margin-inline-start: auto; + align-self: center; +} + +.torPreferences-bridgeCard-connectedBadge { + display: none; + padding: 8px 12px; + border-radius: 16px; + background: rgba(128, 0, 215, 0.1); + color: var(--purple-60); +} + +.currently-connected .torPreferences-bridgeCard-connectedBadge { + display: flex; +} + +.torPreferences-bridgeCard-connectedIcon { + margin-inline-start: 1px; + margin-inline-end: 7px; + list-style-image: url("chrome://devtools/skin/images/check.svg"); + -moz-context-properties: fill; + fill: var(--purple-60); +} + +.torPreferences-bridgeCard-options { + width: 24px; + min-width: 0; + height: 24px; + min-height: 0; + margin-inline-start: 8px; + padding: 1px; + background-image: url("chrome://global/skin/icons/more.svg"); + background-repeat: no-repeat; + background-position: center center; + fill: currentColor; + -moz-context-properties: fill; +} + +.torPreferences-bridgeCard-qrWrapper { + grid-area: bridge-qr; + display: flex; + flex-direction: column; +} + +.torPreferences-bridgeCard-qr { + width: 126px; + position: relative; +} + +.torPreferences-bridgeCard-qrCode { + width: 112px; + height: 112px; + /* Define these colors, as they will be passed to the QR code library */ + background: var(--in-content-box-background); + color: var(--in-content-text-color); +} + +.torPreferences-bridgeCard-qrOnionBox { + width: 28px; + height: 28px; + position: absolute; + top: 42px; + inset-inline-start: 42px; + background: var(--in-content-box-background); +} + +.torPreferences-bridgeCard-qrOnion { + width: 16px; + height: 16px; + position: absolute; + top: 48px; + inset-inline-start: 48px; + + mask: url("chrome://browser/skin/onion.svg"); + mask-repeat: no-repeat; + mask-size: 16px; + background: var(--in-content-text-color); +} + +.torPreferences-bridgeCard-qr:hover .torPreferences-bridgeCard-qrOnionBox { + background: var(--in-content-text-color); +} + +.torPreferences-bridgeCard-qr:hover .torPreferences-bridgeCard-qrOnion { + mask: url("chrome://global/skin/icons/search-glass.svg"); + background: var(--in-content-box-background); +} + +.torPreferences-bridgeCard-filler { + flex: 1; +} + +.torPreferences-bridgeCard-grid { + height: 0; /* We will set it in JS when expanding it! */ + display: grid; + grid-template-rows: auto 1fr; + grid-template-columns: auto 1fr auto; + grid-template-areas: + 'bridge-qr bridge-share bridge-share' + 'bridge-qr bridge-address bridge-address' + 'bridge-qr bridge-learn-more bridge-copy'; + padding-top: 12px; + visibility: hidden; +} + +.expanded .torPreferences-bridgeCard-grid, +.currently-connected .torPreferences-bridgeCard-grid, +.single-card .torPreferences-bridgeCard-grid { + visibility: visible; +} + +.currently-connected .torPreferences-bridgeCard-grid, +.single-card .torPreferences-bridgeCard-grid { + height: auto; +} + +.torPreferences-bridgeCard-grid.to-animate { + transition: height var(--bridgeCard-animation-time) ease-out, visibility var(--bridgeCard-animation-time); + overflow: hidden; +} + +.torPreferences-bridgeCard-share { + grid-area: bridge-share; +} + +.torPreferences-bridgeCard-addrBox { + grid-area: bridge-address; + display: flex; + align-items: center; + justify-content: center; + margin: 8px 0; +} + +input.torPreferences-bridgeCard-addr { + width: 100%; + color: var(--in-content-deemphasized-text); +} + +.torPreferences-bridgeCard-leranMoreBox { + grid-area: bridge-learn-more; +} + +.torPreferences-bridgeCard-copy { + grid-area: bridge-copy; +} + +#torPreferences-bridgeCard-template { + display: none; +} + +/* Advanced Settings */ +#torPreferences-advanced-grid { + display: grid; + grid-template-columns: 1fr auto; +} + +#torPreferences-advanced-group button { + min-width: 150px; +} + +#torPreferences-advanced-hbox, #torPreferences-torDaemon-hbox { + padding-inline-end: 15px; +} + +h3#torPreferences-requestBridge-header { + margin: 0; +} + +image#torPreferences-requestBridge-captchaImage { + margin: 16px 0 8px 0; + min-height: 140px; +} + +button#torPreferences-requestBridge-refreshCaptchaButton { + min-width: initial; +} + +dialog#torPreferences-requestBridge-dialog > hbox { + margin-bottom: 1em; +} + +/* + Various elements that really should be lining up don't because they have inconsistent margins +*/ +.torMarginFix { + margin-left : 4px; + margin-right : 4px; +} + +/* Show bridge QR dialog */ +#bridgeQr-container { + position: relative; + height: 300px; +} + +#bridgeQr-target { + position: absolute; + width: 300px; + height: 300px; + left: calc(50% - 150px); + background: var(--in-content-box-background); + color: var(--in-content-text-color); +} + +#bridgeQr-onionBox { + position: absolute; + width: 70px; + height: 70px; + top: 115px; + left: calc(50% - 35px); + background-color: var(--in-content-box-background); +} + +#bridgeQr-onion { + position: absolute; + width: 38px; + height: 38px; + top: 131px; + left: calc(50% - 19px); + mask: url("chrome://browser/skin/onion.svg"); + mask-repeat: no-repeat; + mask-size: 38px; + background: var(--in-content-text-color); +} + +/* Builtin bridge dialog */ +#torPreferences-builtinBridge-dialog { + /* Hack: ask XUL to load with a lot of space, then we will remove the minimum + sizes after we populate the string. Users with high resolutions should see a + big dialog, but with all the needed buttons, users with small resolutions + should see scrollbars. + Known problems: + 1) the hack works only if a window is *already* small: if it is big, and then + it is resized, the dialog will not shrink; + 2) horizontal scrollbars are never added. + The proper solution for this will be loading the localized string with + Mozilla's way. + See also https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41044 */ + min-width: 700px; + min-height: 550px; +} + +#torPreferences-builtinBridge-header { + margin: 8px 0 10px 0; +} + +#torPreferences-builtinBridge-description { + margin-bottom: 18px; +} + +#torPreferences-builtinBridge-typeSelection { + margin-bottom: 16px; +} + +#torPreferences-builtinBridge-typeSelection radio label { + font-weight: 700; +} + +/* Request bridge dialog */ +/* + This hbox is hidden by css here by default so that the + xul dialog allocates enough screen space for the error message + element, otherwise it gets cut off since dialog's overflow is hidden +*/ +hbox#torPreferences-requestBridge-incorrectCaptchaHbox { + visibility: hidden; +} + +image#torPreferences-requestBridge-errorIcon { + list-style-image: url("chrome://browser/skin/warning.svg"); +} + +groupbox#torPreferences-bridges-group textarea { + white-space: pre; + overflow: auto; +} + +/* Provide bridge dialog */ +#torPreferences-provideBridge-header { + margin-top: 8px; +} + +/* Connection settings dialog */ +#torPreferences-connection-dialog { + /* Hack: like the built-in dialog */ + min-width: 700px; + min-height: 550px; +} + +#torPreferences-connection-header { + margin: 4px 0 14px 0; +} + +#torPreferences-connection-grid { + display: grid; + grid-template-columns: auto 1fr; +} + +#torPreferences-localProxy-textboxAddress, +#torPreferences-localProxy-textboxUsername, +#torPreferences-localProxy-textboxPassword, +#torPreferences-connection-textboxAllowedPorts { + -moz-box-flex: 1; +} + +#torPreferences-connection-firewall { + display: flex; +} + +#torPreferences-connection-hboxAllowedPorts { + flex: 1; +} + +/* Tor logs dialog */ +textarea#torPreferences-torDialog-textarea { + -moz-box-flex: 1; + font-family: monospace; + font-size: 0.8em; + white-space: pre; + overflow: auto; + /* 10 lines */ + min-height: 20em; +} + +/* Bridge remove overlay */ +#bridge-remove-overlay { + position: fixed; + display: flex; + align-items: center; + justify-content: center; + top: 0; + inset: 0; + width: 100%; + height: 100%; + z-index: 1; + background-color: rgba(0, 0, 0, 0.5); +} + +#bridge-remove-overlay.hidden { + display: none; +} + +#bridge-remove-modal { + position: relative; + min-width: 250px; + max-width: 500px; + min-height: 200px; + z-index: 2; + text-align: center; + background: var(--in-content-page-background); + box-shadow: var(--shadow-30); +} + +#bridge-remove-dismiss { + position: absolute; + top: 16px; + inset-inline-end: 16px; + width: 16px; + height: 16px; + fill: currentColor; + -moz-context-properties: fill; +} + +#bridge-remove-dismiss:hover { + background-color: var(--in-content-button-background-hover); + color: var(--in-content-button-text-color-hover); + border: 1px solid var(--in-content-button-border-color-hover); + border-radius: 4px; +} + +#bridge-remove-dismiss:hover:active { + background-color: var(--in-content-button-background-active); +} + +#bridge-remove-icon { + width: 40px; + height: 40px; + background-image: url("chrome://global/skin/icons/warning.svg"); + background-size: 40px; + margin: 16px auto; + fill: currentColor; + -moz-context-properties: fill; +} + +#bridge-remove-question { + font-size: 150%; +} + +#bridge-remove-warning { + color: var(--in-content-deemphasized-text); +} + +#bridge-remove-buttonbar { + padding: 16px 32px; +} + +#bridge-remove-buttonbar button { + min-width: 140px; +} + +#bridge-remove-confirm { + background: var(--in-content-danger-button-background); + color: var(--in-content-primary-button-text-color); +} + +#bridge-remove-confirm:hover { + background: var(--in-content-danger-button-background-hover); + color: var(--in-content-primary-button-text-color-hover); + border-color: var(--in-content-primary-button-border-hover); +} + +#bridge-remove-confirm:hover:active { + background: var(--in-content-danger-button-background-active); +} diff --git a/browser/components/torpreferences/content/torPreferencesIcon.svg b/browser/components/torpreferences/content/torPreferencesIcon.svg new file mode 100644 index 0000000000000..382a061774aaa --- /dev/null +++ b/browser/components/torpreferences/content/torPreferencesIcon.svg @@ -0,0 +1,8 @@ +<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 16 16" width="16" height="16" xmlns="http://www.w3.org/2000/svg"> + <g clip-rule="evenodd" fill-rule="evenodd"> + <path d="m11 8c0 1.65686-1.34314 3-3 3-1.65685 0-3-1.34314-3-3 0-1.65685 1.34315-3 3-3 1.65686 0 3 1.34315 3 3zm-1.17187 0c0 1.00965-.81848 1.82813-1.82813 1.82813-1.00964 0-1.82812-.81848-1.82812-1.82813 0-1.00964.81848-1.82812 1.82812-1.82812 1.00965 0 1.82813.81848 1.82813 1.82812z"/> + <path d="m7.99999 13.25c2.89951 0 5.25001-2.3505 5.25001-5.25001 0-2.89949-2.3505-5.25-5.25001-5.25-2.89949 0-5.25 2.35051-5.25 5.25 0 2.89951 2.35051 5.25001 5.25 5.25001zm0-1.1719c2.25231 0 4.07811-1.8258 4.07811-4.07811 0-2.25228-1.8258-4.07812-4.07811-4.07812-2.25228 0-4.07812 1.82584-4.07812 4.07812 0 2.25231 1.82584 4.07811 4.07812 4.07811z"/> + <path d="m8 15.5c4.1421 0 7.5-3.3579 7.5-7.5 0-4.14214-3.3579-7.5-7.5-7.5-4.14214 0-7.5 3.35786-7.5 7.5 0 4.1421 3.35786 7.5 7.5 7.5zm0-1.1719c3.4949 0 6.3281-2.8332 6.3281-6.3281 0-3.49493-2.8332-6.32812-6.3281-6.32812-3.49493 0-6.32812 2.83319-6.32812 6.32812 0 3.4949 2.83319 6.3281 6.32812 6.3281z"/> + </g> + <path d="m.5 8c0 4.1421 3.35786 7.5 7.5 7.5v-15c-4.14214 0-7.5 3.35786-7.5 7.5z"/> +</svg> \ No newline at end of file diff --git a/browser/components/torpreferences/jar.mn b/browser/components/torpreferences/jar.mn new file mode 100644 index 0000000000000..4d82268f3c8d6 --- /dev/null +++ b/browser/components/torpreferences/jar.mn @@ -0,0 +1,21 @@ +browser.jar: + content/browser/torpreferences/bridgeQrDialog.xhtml (content/bridgeQrDialog.xhtml) + content/browser/torpreferences/bridgeQrDialog.jsm (content/bridgeQrDialog.jsm) + content/browser/torpreferences/builtinBridgeDialog.xhtml (content/builtinBridgeDialog.xhtml) + content/browser/torpreferences/builtinBridgeDialog.jsm (content/builtinBridgeDialog.jsm) + content/browser/torpreferences/connectionSettingsDialog.xhtml (content/connectionSettingsDialog.xhtml) + content/browser/torpreferences/connectionSettingsDialog.jsm (content/connectionSettingsDialog.jsm) + content/browser/torpreferences/network.svg (content/network.svg) + content/browser/torpreferences/provideBridgeDialog.xhtml (content/provideBridgeDialog.xhtml) + content/browser/torpreferences/provideBridgeDialog.jsm (content/provideBridgeDialog.jsm) + content/browser/torpreferences/requestBridgeDialog.xhtml (content/requestBridgeDialog.xhtml) + content/browser/torpreferences/requestBridgeDialog.jsm (content/requestBridgeDialog.jsm) + content/browser/torpreferences/connectionCategory.inc.xhtml (content/connectionCategory.inc.xhtml) + content/browser/torpreferences/torLogDialog.jsm (content/torLogDialog.jsm) + content/browser/torpreferences/torLogDialog.xhtml (content/torLogDialog.xhtml) + content/browser/torpreferences/connectionPane.js (content/connectionPane.js) + content/browser/torpreferences/connectionPane.xhtml (content/connectionPane.xhtml) + content/browser/torpreferences/torPreferences.css (content/torPreferences.css) + content/browser/torpreferences/torPreferencesIcon.svg (content/torPreferencesIcon.svg) + content/browser/torpreferences/bridgemoji/ (content/bridgemoji/*.svg) + content/browser/torpreferences/bridgemoji-annotations.json (content/bridgemoji-annotations.json) diff --git a/browser/components/torpreferences/moz.build b/browser/components/torpreferences/moz.build new file mode 100644 index 0000000000000..2661ad7cb9f3d --- /dev/null +++ b/browser/components/torpreferences/moz.build @@ -0,0 +1 @@ +JAR_MANIFESTS += ["jar.mn"] diff --git a/tools/torbrowser/update_bridgemoiji.py b/tools/torbrowser/update_bridgemoiji.py new file mode 100755 index 0000000000000..251a0bb5d013c --- /dev/null +++ b/tools/torbrowser/update_bridgemoiji.py @@ -0,0 +1,114 @@ +#!/usr/bin/env python3 +# Script to update bridgemoji files from Twemoji, and from Unicode +# datasets. +# Please be sure to grab and extract twe-svg.zip from +# https://github.com/mozilla/twemoji-colr, and to get the latest +# version of https://github.com/unicode-org/cldr.git. + +import json +from pathlib import Path +from shutil import copyfile +import sys +from xml.dom.minidom import parse + + +if len(sys.argv) < 3: + print(f'Usage: {sys.argv[0]} twemoji-svg-dir cldr-dir') + sys.exit(1) +twemoji_dir = Path(sys.argv[1]) +cldr_dir = Path(sys.argv[2]) + +LANGS = [ + "ar", + "ca", + "cs", + "da", + "de", + "el", + "en", + "es", + "fa", + "fr", + "ga", + "he", + "hu", + "id", + "is", + "it", + "ja", + "ka", + "ko", + "lt", + "mk", + "ms", + "my", + # "nb", # Empty file, currently!! + "nl", + "pl", + "pt", + "ro", + "ru", + "sv", + "th", + "tr", + "vi", + "zh", # zh-CN, zh-hans + "zh_Hant", # zh-TW, zh-hant +] + +# Currently the script is in tools/torbrowser/ +firefox_root = Path(__file__).parents[2] +panel_dir = firefox_root / 'browser/components/torpreferences/content' + +with (panel_dir / 'connectionPane.js').open() as f: + pane_js = f.read() +make_id_offset = pane_js.find('function makeBridgeId(bridgeString) {') +emojis_var = 'const emojis = ' +emojis_offset = pane_js.find(emojis_var, make_id_offset) + len(emojis_var) +close_offset = pane_js.find(']', emojis_offset) +emojis_str = pane_js[emojis_offset:close_offset].strip('\t \n,') +emojis_str += ']' +emojis = json.loads(emojis_str) +codepoints = [] +for idx, e in enumerate(emojis): + if len(e) > 2 or (len(e) == 2 and ord(e[1]) != 0xfe0f): + # U+FE0F is "VARIATION SELECTOR-16" and tells the emoji to be + # colored, or something like that. + print(f'Unsupported emoji {e}: too many codepoints') + sys.exit(2) + codepoints.append(ord(e[0])) + +emojis_dest = panel_dir / 'bridgemoji' +emojis_dest.mkdir(exist_ok=True) +for f in emojis_dest.iterdir(): + f.unlink() +for cp in codepoints: + src = twemoji_dir / f'{cp:x}.svg' + dst = emojis_dest / f'{cp:x}.svg' + copyfile(src, dst) + +data = {l: {} for l in LANGS} + +for l in LANGS: + with (cldr_dir / f'common/annotations/{l}.xml').open() as f: + doc = parse(f) + anns = doc.getElementsByTagName('annotation') + for ann in anns: + cp = ann.getAttribute('cp') + if len(cp) != 1: + continue + try: + idx = codepoints.index(ord(cp)) + if ann.getAttribute('type') == 'tts': + ann.normalize() + data[l][emojis[idx]] = ann.firstChild.data + except ValueError: + pass + if len(data[l]) != len(emojis): + print(f'Lang {l} doesn't have all the emoji descriptions!') + +data['zh-CN'] = data.pop('zh') +data['zh-TW'] = data.pop('zh_Hant') + +with (panel_dir / 'bridgemoji-annotations.json').open('w') as f: + json.dump(data, f, ensure_ascii=False, indent=2)