[tbb-commits] [tor-browser] 57/72: Bug 31286: Implementation of bridge, proxy, and firewall settings in about:preferences#connection

gitolite role git at cupani.torproject.org
Fri Jul 8 22:29:42 UTC 2022


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 at 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">
+<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",
+    "🛺": "rik­sja",
+    "🛴": "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">
+<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">
+<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">
+<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">
+<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">
+<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 @@
+ at 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)

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the tbb-commits mailing list