diff --git a/.gitignore b/.gitignore index 632ce84ad8..719ebdbb1b 100644 --- a/.gitignore +++ b/.gitignore @@ -152,3 +152,6 @@ Temporary Items # jupyter .ipynb_checkpoints + +# VSCode +.vscode diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000000..70ba4fe970 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,226 @@ +# Changelog + +- October 7, 2022: Version 5 comes with many changes, both visible and + invisible ones. Some of those break the existing API, but if you are + using tests, you should be fine. Major changes include: + + - **New convergence controllers**: Checking whether a step has + converged can be tricky, so we made separate modules out of + these checks. This makes features like adaptivity easier to + implement. Also, the controllers have been streamlined a bit to + make them more readable/digestible. Thanks to + [\@brownbaerchen](https://github.com/brownbaerchen)! + - **Adaptivity and error estimators**: SDC now comes with + adaptivity and error estimation, leveraging the new convergence + controllers out of the box. Thanks to + [\@brownbaerchen](https://github.com/brownbaerchen)! + - **New collocation classes**: We completely rewrote the way + collocation nodes and weights are computed. It is now faster, + more reliable, shorter, better. But: this **breaks the API**, + since the old collocation classes do not exist anymore. The + projects, tutorials, tests and most of the playgrounds have been + adapted, so have a look over there to see [what to + change](https://github.com/Parallel-in-Time/pySDC/commit/01ffabf71a8d71d33b74809271e8ad5a7b03ac5e#diff-adf74297b6c64d320f4da0f1d5528eda6229803a6615baf5d54c418032543681). + Thanks to [\@tlunet](https://github.com/tlunet)! + - **New projects**: Resilience and energy grid simulations are + ready to play with and are waiting for more ideas! We used this + effort to condense and clean up the problem classes a bit, + reducing the number of files and classes with only marginal + differences significantly. This could potentially **break your + code**, too, if you rely on any of those affected ones. Thanks + to [\@brownbaerchen](https://github.com/brownbaerchen) and + [\@lisawim](https://github.com/lisawim)! + - **Toward GPU computing**: We included a new data type based on + [CuPy](https://cupy.dev/) making GPU computing possible. Thanks + to [\@timo2705](https://github.com/timo2705)! + - **Better testing**: The CI pipeline got a complete overhaul + (again), now enabling simultaneous tests, faster/earlier + linting, benchmarking (at least, in principal), separate + environments and so on. The code is tested under Ubuntu and + MacOS. + - **Better code formatting**: `pySDC` now uses + [black](https://black.readthedocs.io) and + [flakeheaven](https://flakeheaven.readthedocs.io) for cleaner + source code. After complaints here and there about linting + \"errors\" the recommended way now is to run `black` before + submission. + +- December 13, 2021: Version 4.2 brings compatibility with Python 3.9, + including some code cleanup. The CI test suite seems to run faster + now, since sorting out the dependencies is faster. Tested + [mamba](https://github.com/mamba-org/mamba), which for now makes the + CI pipeline much faster. Also, the CI workflow can now run locally + using [act](https://github.com/nektos/act). We introduced markers + for soem of the tests in preparation of distributed tests on + different platforms. And finally, a LaTeX installation is no longer + needed use plotting (but recommended). + +- August 11, 2021: Version 4.1 has some more changes under the hood, + most of them with no significant impact to users. The CI pipeline + has been completely rewritten, porting the code to [Github + Actions](https://github.com/features/actions) (away from [Travis + CI](https://travis-ci.com/)), to [flake8](https://flake8.pycqa.org) + and to [pytest](https://pytest.org) (away from + [nose](https://nose.readthedocs.io)). One thing that may have an + impact on users is that following the changes made in Version 4.0, + the PETSc data structures are now much easier, removing a lot of + unnecessary boilerplate code. + +- May 4, 2021: Long time, no see, but this major release 4.0 marks + some improvements under the hood: + + - **Rewrote `mesh` and `particle` data type**: + Creation of new arrays for each operation is now avoided by + directly subclassing Numpy\'s `ndarray`. Somewhat faster, + definitively better, less code, future-proof, but also breaking + the API. If you use `pySDC` for your project, make + sure you adapt to the new data types (or don\'t upgrade). + - **Faster quadrature**: Thanks to + [tlunet](https://github.com/tlunet) the computation of the + weights is now faster and (even) more reliable. No breaking of + any API here\... + - **Bugfixing and version pushes**: The code should run without + (many) complaints with Python 3.6, 3.7 and potentially above. + Also, the plotting routines have been adapted to work with + recent versions of `matplotlib`. + + This is not much (yet) and if it were not for the API changes, this + would have been a minor release. + +- August 30, 2019: Version 3.1 adds many more examples like the + nonlinear Schrödinger equation, more on Gray-Scott and in particular + Allen-Cahn. Those are many implemented using the parallel FFT + library + [mpi4pi-fft](https://bitbucket.org/mpi4py/mpi4py-fft/src/master/), + which can now be used with `pySDC`. There are now 8 + tutorials, where step 7 shows the usage of three external libraries + with `pySDC`: mpi4py, FEniCS and petsc4py. The MPI controller has + been improved after performaning a detailed performance analysis + using [Score-P](https://www.vi-hps.org/projects/score-p/) and + [Extrae](https://www.vi-hps.org/Tools/Extrae.html). Finally: first + steps towards error/iteration estimators are taken, too. + +- February 14, 2019: Released version 3 of `pySDC`. This + release is accompanied by the **ACM TOMS paper** + ["pySDC -- Prototyping spectral deferred corrections"](https://doi.org/10.1145/3310410). + It release contains some breaking changes to the API. In detail: + + - **Dropped Python 2 support**: Starting with this version, + `pySDC` relies on Python 3. Various incompabilities + led to inconsistent treatment of dependencies, so that parts of + the code had to use Python 2 while other relied on Python 3 or + could do both. We follow [A pledge to migrate to Python + 3](https://python3statement.org/) with this decision, as most + prominent dependencies of `pySDC` already do. + - **Unified controllers**: Instead of providing (and maintaining) + four different controllers, this release only has one for + emulated and one for MPI-based time-parallelization + (`controller_nonMPI` and `controller_MPI`). This should avoid + further confusion and makes the code easier to maintain. Both + controllers use the multigrid perspective for the algorithm + (first exchange data, than compute updates), but the classical + way of determining when to stop locally (each time-step is + stopped when ready, if the previous one is ready, too). The + complete multigrid behavior can be restored using a flag. All + included projects and tutorials have been adapted to this. + - **No more data types in the front-ends**: The redundant use of + data type specifications in the description dictionaries has + been removed. Data types are now declared within each problem + class (more precisely, in the header of the `__init__`-method to + allow inhertiance). All included projects and tutorials have + been adapted to this. + - **Renewed FEniCS support**: This release revives the deprecated + [FEniCS](https://fenicsproject.org/) support, now requiring at + least FEniCS 2018.1. The integration is tested using Travis-CI. + - **More consistent handling of local initial conditions**: The + treatment of `u[0]` and `f[0]` has been fixed and made + consistent throughout the code. + - As usual, many bugs have been discovered and fixed. + +- May 23, 3018: Version 2.4 adds support for + [petsc4py](https://bitbucket.org/petsc/petsc4py)! You can now use + [PETSc](http://www.mcs.anl.gov/petsc/) data types + (`pySDC` ships with DMDA for distributed structured + grids) and parallel solvers right from your examples and problem + classes. There is also a new tutorial (7.C) showing this in a bit + more detail, including communicator splitting for parallelization in + space and time. Warning: in order to get this to work you need to + install petsc4py and mpi4py first! Make sure both use MPICH3 + bindings. Downloading `pySDC` from PyPI does not include + these packages. + +- February 8, 2018: Ever got annoyed at `pySDC`\'s + incredibly slow setup phase when multiple time-steps are used? + Version 2.3 changes this by copying the data structure of the first + step to all other steps using the [dill + Package](https://pypi.python.org/pypi/dill). Setup times could be + reduced by 90% and more for certain problems. We also increase the + speed for certain calculations, in particular for the Penning trap + example. + +- November 7, 2017: Version 2.2 contains matrix-based versions of + PFASST within the project `matrixPFASST`. This involved quite a few + changes in more or less unexpected places, e.g. in the multigrid + controller and the transfer base class. The impact of these changes + on other projects should be negligible, though. + +- October 25, 2017: For the [6th Workshop on Parallel-in-Time + Integration](https://www.ics.usi.ch/index.php/6th-workshop-on-parallel-in-time-methods) + `pySDC` has been updated to version 2.1. It is now + available on PyPI - the Python Package Index, see + and can be installed simply by + using `pip install pySDC`. Naturally, this release contains a lot of + bugfixes and minor improvements. Most notably, the file structure + has been changed again to meet the standards for Python packaging + (at least a bit). + +- November 24, 2016: Released version 2 of `pySDC`. This + release contains major changes to the code and its structure: + + - **Complete redesign of code structure**: The `core` part of + `pySDC` only contains the core modules and classes, + while `implementations` contains the actual implementations + necessary to run something. This now includes separate files for + all collocation classes, as well as a collection of problems, + transfer classes and so on. Most examples have been ported to + either `tutorials`, `playgrounds` or `projects`. + - **Introduction of tutorials**: We added a tutorial (see below) + to explain many of pySDC\'s features in a step-by-step fashion. + We start with a simple spatial discretization and collocation + formulations and move step by step to SDC, MLSDC and PFASST. All + tutorials are accompanied by tests. + - **New all-inclusive controllers**: Instead of having two PFASST + controllers which could also do SDC and MLSDC (and more), we now + have four generic controllers which can do all these methods, + depending on the input. They are split into two by two class: + `MPI` and `NonMPI` for real or virtual + parallelisim as well as `classic` and + `multigrid` for the standard and multigrid-like + implementation of PFASST and the likes. Initialization has been + simplified a lot, too. + - **Collocation-based coarsening** As the standard PFASST + libraries [libpfasst](https://bitbucket.org/memmett/libpfasst) + and [PFASST++](https://github.com/Parallel-in-Time/PFASST) + `pySDC` now offers collocation-based coarsening, + i.e. the number of collocation nodes can be reduced during + coarsening. Also, time-step coarsening is in preparation, but + not implemented yet. + - **Testing and documentation** The core, implementations and + plugin packages and their subpackages are fully documented using + sphinx-apidoc, see below. This documentation as well as this + website are generated automatically using + [Travis-CI](https://travis-ci.org/Parallel-in-Time/pySDC). Most + of the code is supported by tests, mainly realized by using the + tutorial as the test routines with clearly defined results. + Also, projects are accompanied by tests. + - Further, minor changes: + - Switched to more stable barycentric interpolation for the + quadrature weights + - New collocation class: `EquidistantSpline_Right` + for spline-based quadrature + - Collocation tests are realized by generators and not by + classes + - Multi-step SDC (aka single-level PFASST) now works as + expected + - Reworked many of the internal structures for consistency and + simplicity diff --git a/CHANGELOG.rst b/CHANGELOG.rst deleted file mode 100644 index 56a97c88d6..0000000000 --- a/CHANGELOG.rst +++ /dev/null @@ -1,133 +0,0 @@ -Changelog ---------- - -- October 7, 2022: Version 5 comes with many changes, both visible and invisible ones. Some of those break the existing API, but - if you are using tests, you should be fine. Major changes include: - - - **New convergence controllers**: Checking whether a step has converged can be tricky, so we made separate modules out of these - checks. This makes features like adaptivity easier to implement. Also, the controllers have been streamlined a bit to make them more readable/digestible. - Thanks to `@brownbaerchen `_! - - **Adaptivity and error estimators**: SDC now comes with adaptivity and error estimation, leveraging the new convergence controllers out of the box. - Thanks to `@brownbaerchen `_! - - **New collocation classes**: We completely rewrote the way collocation nodes and weights are computed. It is now faster, more reliable, shorter, better. - But: this **breaks the API**, since the old collocation classes do not exist anymore. The projects, tutorials, tests and most of the playgrounds - have been adapted, so have a look over there to see `what to change `_. - Thanks to `@tlunet `_! - - **New projects**: Resilience and energy grid simulations are ready to play with and are waiting for more ideas! - We used this effort to condense and clean up the problem classes a bit, reducing the number of files and classes with only marginal differences significantly. - This could potentially **break your code**, too, if you rely on any of those affected ones. - Thanks to `@brownbaerchen `_ and `@lisawim `_! - - **Toward GPU computing**: We included a new data type based on `CuPy `_ making GPU computing possible. - Thanks to `@timo2705 `_! - - **Better testing**: The CI pipeline got a complete overhaul (again), now enabling simultaneous tests, faster/earlier linting, benchmarking (at least, in principal), separate environments and so on. - The code is tested under Ubuntu and MacOS. - - **Better code formatting**: `pySDC` now uses `black `_ and `flakeheaven `_ for cleaner source code. - After complaints here and there about linting "errors" the recommended way now is to run ``black`` before submission. - -- December 13, 2021: Version 4.2 brings compatibility with Python 3.9, including some code cleanup. The CI test - suite seems to run faster now, since sorting out the dependencies is faster. Tested `mamba `_, - which for now makes the CI pipeline much faster. Also, the CI workflow can now run locally using `act `_. - We introduced markers for soem of the tests in preparation of distributed tests on different platforms. And finally, a LaTeX - installation is no longer needed use plotting (but recommended). - -- August 11, 2021: Version 4.1 has some more changes under the hood, most of them with no significant impact to users. - The CI pipeline has been completely rewritten, porting the code to `Github Actions `_ - (away from `Travis CI `_), to `flake8 `_ and to `pytest `_ - (away from `nose `_). One thing that may have an impact on users is that following the changes - made in Version 4.0, the PETSc data structures are now much easier, removing a lot of unnecessary boilerplate code. - -- May 4, 2021: Long time, no see, but this major release 4.0 marks some improvements under the hood: - - - **Rewrote ``mesh`` and ``particle`` data type**: Creation of new arrays for each operation is now avoided by - directly subclassing Numpy's ``ndarray``. Somewhat faster, definitively better, less code, future-proof, but also breaking the API. If you use `pySDC` - for your project, make sure you adapt to the new data types (or don't upgrade). - - **Faster quadrature**: Thanks to `tlunet `_ the computation of the weights is now faster and - (even) more reliable. No breaking of any API here... - - **Bugfixing and version pushes**: The code should run without (many) complaints with Python 3.6, 3.7 and potentially above. - Also, the plotting routines have been adapted to work with recent versions of `matplotlib`. - - This is not much (yet) and if it were not for the API changes, this would have been a minor release. - -- August 30, 2019: Version 3.1 adds many more examples like the nonlinear Schrödinger equation, more on Gray-Scott and in particular Allen-Cahn. - Those are many implemented using the parallel FFT library `mpi4pi-fft `_, which can now be used with `pySDC`. - There are now 8 tutorials, where step 7 shows the usage of three external libraries with `pySDC`: mpi4py, FEniCS and petsc4py. - The MPI controller has been improved after performaning a detailed performance analysis using `Score-P `_ and `Extrae `_. - Finally: first steps towards error/iteration estimators are taken, too. - -- February 14, 2019: Released version 3 of `pySDC`. This release is accompanied by the **ACM TOMS paper** - `"pySDC -- Prototyping spectral deferred corrections" `_. - It release contains some breaking changes to the API. In detail: - - - **Dropped Python 2 support**: Starting with this version, `pySDC` relies on Python 3. Various incompabilities led - to inconsistent treatment of dependencies, so that parts of the code had to use Python 2 while other relied on - Python 3 or could do both. We follow `A pledge to migrate to Python 3 `_ with this decision, - as most prominent dependencies of `pySDC` already do. - - **Unified controllers**: Instead of providing (and maintaining) four different controllers, this release only has - one for emulated and one for MPI-based time-parallelization (``controller_nonMPI`` and ``controller_MPI``). - This should avoid further confusion and makes the code easier to maintain. Both controllers use the multigrid - perspective for the algorithm (first exchange data, than compute updates), but the classical way of determining - when to stop locally (each time-step is stopped when ready, if the previous one is ready, too). The complete multigrid - behavior can be restored using a flag. All included projects and tutorials have been adapted to this. - - **No more data types in the front-ends**: The redundant use of data type specifications in the description dictionaries - has been removed. Data types are now declared within each problem class (more precisely, in the header of the - ``__init__``-method to allow inhertiance). All included projects and tutorials have been adapted to this. - - **Renewed FEniCS support**: This release revives the deprecated `FEniCS `_ support, now requiring at least FEniCS 2018.1. - The integration is tested using Travis-CI. - - **More consistent handling of local initial conditions**: The treatment of ``u[0]`` and ``f[0]`` has been fixed and - made consistent throughout the code. - - As usual, many bugs have been discovered and fixed. - -- May 23, 3018: Version 2.4 adds support for `petsc4py `_! - You can now use `PETSc `_ data types (`pySDC` ships with DMDA for distributed structured grids) and parallel solvers right from your examples and problem classes. - There is also a new tutorial (7.C) showing this in a bit more detail, including communicator splitting for parallelization in space and time. - Warning: in order to get this to work you need to install petsc4py and mpi4py first! Make sure both use MPICH3 bindings. - Downloading `pySDC` from PyPI does not include these packages. - -- February 8, 2018: Ever got annoyed at `pySDC`'s incredibly slow setup phase when multiple time-steps are used? Version 2.3 - changes this by copying the data structure of the first step to all other steps using the `dill Package `_. - Setup times could be reduced by 90% and more for certain problems. We also increase the speed for certain calculations, - in particular for the Penning trap example. - -- November 7, 2017: Version 2.2 contains matrix-based versions of PFASST within the project ``matrixPFASST``. This involved quite a few - changes in more or less unexpected places, e.g. in the multigrid controller and the transfer base class. The impact - of these changes on other projects should be negligible, though. - -- October 25, 2017: For the `6th Workshop on Parallel-in-Time Integration `_ - `pySDC` has been updated to version 2.1. It is now available on PyPI - the Python Package Index, see `https://pypi.python.org/pypi/pySDC `_ - and can be installed simply by using ``pip install pySDC``. Naturally, this release contains a lot of bugfixes and minor improvements. - Most notably, the file structure has been changed again to meet the standards for Python packaging (at least a bit). - -- November 24, 2016: Released version 2 of `pySDC`. This release contains major changes to the code and its structure: - - - **Complete redesign of code structure**: The ``core`` part of `pySDC` only contains the core modules and classes, - while ``implementations`` contains the actual implementations necessary to run something. - This now includes separate files for all collocation classes, as well as a collection of problems, transfer classes and so on. - Most examples have been ported to either ``tutorials``, ``playgrounds`` or ``projects``. - - - **Introduction of tutorials**: We added a tutorial (see below) to explain many - of pySDC's features in a step-by-step fashion. We start with a simple spatial - discretization and collocation formulations and move step by step to SDC, MLSDC and PFASST. - All tutorials are accompanied by tests. - - - **New all-inclusive controllers**: Instead of having two PFASST controllers - which could also do SDC and MLSDC (and more), we now have four generic controllers - which can do all these methods, depending on the input. They are split into - two by two class: `MPI` and `NonMPI` for real or virtual parallelisim as well - as `classic` and `multigrid` for the standard and multigrid-like implementation - of PFASST and the likes. Initialization has been simplified a lot, too. - - - **Collocation-based coarsening** As the standard PFASST libraries `libpfasst `_ and `PFASST++ `_ - `pySDC` now offers collocation-based coarsening, i.e. the number of collocation nodes can be reduced during coarsening. - Also, time-step coarsening is in preparation, but not implemented yet. - - - **Testing and documentation** The core, implementations and plugin packages and their subpackages are fully documented using sphinx-apidoc, see below. - This documentation as well as this website are generated automatically using `Travis-CI `_. - Most of the code is supported by tests, mainly realized by using the tutorial as the test routines with clearly defined results. Also, projects are accompanied by tests. - - - Further, minor changes: - - - Switched to more stable barycentric interpolation for the quadrature weights - - New collocation class: `EquidistantSpline_Right` for spline-based quadrature - - Collocation tests are realized by generators and not by classes - - Multi-step SDC (aka single-level PFASST) now works as expected - - Reworked many of the internal structures for consistency and simplicity \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000000..4775d2298d --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,15 @@ +# How to contribute to pySDC + +1. [Pull Requests Recommendations](./docs/contrib/01_pull_requests.md) +2. [Continuous Integration](./docs/contrib/02_continuous_integration.md) +3. [Naming Conventions](./docs/contrib/03_naming_conventions.md) +4. [Custom Implementations](./docs/contrib/04_custom_implementations.md) + +Developments on the `pySDC` code use the classical approach of forks and pull requests from Github. +There is an [extended documentation](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/getting-started/about-collaborative-development-models) on this aspect (that you can skip if you are already used to it). In addition, some recommendations for pull requests are given [here](./docs/contrib/01_pull_requests.md). + +Additionally, a _few_ rules are set to enforce code readability, consistency and reliability. Some of them are automatically tested with each commit, and summarized in the page on [continuous integration (CI)](./docs/contrib/02_continuous_integration.md). +Others are specific conventions chosen for the pySDC library, that may follow Python standards (or not ...), detailed in the [naming conventions page](./docs/contrib/03_naming_conventions.md). + +Finally, while `pySDC` provides many base functionalities that implement classical flavors of SDC, it also allows problem-specific applications through Object-Oriented Programming (OOP) and the implementation of custom inherited classes. +This follows a specific OOP framework, for which more details are given [here](.(docs/contrib/../../docs/contrib/04_custom_implementations.md)). \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000000..eeb099f4af --- /dev/null +++ b/README.md @@ -0,0 +1,108 @@ +[![badge-ga](https://github.com/Parallel-in-Time/pySDC/actions/workflows/ci_pipeline.yml/badge.svg?branch=master)](https://github.com/Parallel-in-Time/pySDC/actions/workflows/ci_pipeline.yml) +[![badge-ossf](https://bestpractices.coreinfrastructure.org/projects/6909/badge)](https://bestpractices.coreinfrastructure.org/projects/6909) +[![badge-cc](https://codecov.io/gh/Parallel-in-Time/pySDC/branch/master/graph/badge.svg?token=hpP18dmtgS)](https://codecov.io/gh/Parallel-in-Time/pySDC) +[![zenodo](https://zenodo.org/badge/26165004.svg)](https://zenodo.org/badge/latestdoi/26165004) + +# Welcome to pySDC! + +The `pySDC` project is a Python implementation of the +spectral deferred correction (SDC) approach and its flavors, esp. the +multilevel extension MLSDC and PFASST. It is intended for rapid +prototyping and educational purposes. New ideas like e.g. sweepers or +predictors can be tested and first toy problems can be easily +implemented. + +## Features + +- Variants of SDC: explicit, implicit, IMEX, multi-implicit, Verlet, + multi-level, diagonal, multi-step +- Variants of PFASST: virtual parallel or MPI-based parallel, + classical of multigrid perspective +- 8 tutorials: from setting up a first collocation problem to SDC, + PFASST and advanced topics +- Projects: many documented projects with defined and tested outcomes +- Many different examples, collocation types, data types already + implemented +- Works with [FEniCS](https://fenicsproject.org/), + [mpi4py-fft](https://mpi4py-fft.readthedocs.io/en/latest/) and + [PETSc](http://www.mcs.anl.gov/petsc/) (through + [petsc4py](https://bitbucket.org/petsc/petsc4py)) +- Continuous integration via [GitHub + Actions](https://github.com/Parallel-in-Time/pySDC/actions) and + [Gitlab CI](https://gitlab.hzdr.de/r.speck/pysdc/-/pipelines) +- Fully compatible with Python 3.7 - 3.10, runs at least on Ubuntu and + MacOS + +## Getting started + +The code is hosted on GitHub, see +, and PyPI, see +. While using `pip install pySDC` +will give you a core version of `pySDC` to work with, +working with the developer version is most often the better choice. We +thus recommend to checkout the code from GitHub and install the +dependencies e.g. by using a [conda](https://conda.io/en/latest/) +environment. For this, `pySDC` ships with environment files +which can be found in the folder `etc/`. Use these as e.g. + +``` bash +conda env create --yes -f etc/environment-base.yml +``` + +To check your installation, run + +``` bash +pytest pySDC/tests -m NAME +``` + +where `NAME` corresponds to the environment you chose (`base` in the +example above). You may need to update your `PYTHONPATH` by running + +``` bash +export PYTHONPATH=$PYTHONPATH:/path/to/pySDC/root/folder +``` + +in particular if you want to run any of the playgrounds, projects or +tutorials. All `import` statements there assume that the +`pySDC`\'s base directory is part of `PYTHONPATH`. + +For many examples, `LaTeX` is used for the plots, i.e. a +decent installation of this is needed in order to run those examples. +When using `fenics` or `petsc4py`, a C++ +compiler is required (although installation may go through at first). + +For more details on `pySDC`, check out http://www.parallel-in-time.org/pySDC. + +## How to cite + +If you use pySDC or parts of it for your work, great! Let us know if we +can help you with this. Also, we would greatly appreciate a citation of +[this paper](https://doi.org/10.1145/3310410): + +> Robert Speck, **Algorithm 997: pySDC - Prototyping Spectral Deferred +> Corrections**, ACM Transactions on Mathematical Software (TOMS), +> Volume 45 Issue 3, August 2019, + +The current software release can be cited using Zenodo: +[![zenodo](https://zenodo.org/badge/26165004.svg)](https://zenodo.org/badge/latestdoi/26165004) + +## Contributing + +`pySDC` code was originally developed by [Robert Speck (@pancetta)](https://github.com/pancetta), +and is now maintained and developed by a small community of scientists interested in SDC methods, that dearly welcomes any contribution. +If you want to take part of this, please take the time to read our [Contribution Guidelines](./CONTRIBUTING.md) +(and don't forget to take a pick at our nice [Code of Conduct](./CODE_OF_CONDUCT.md) :wink:). + + +## Acknowledgements + +This project has received funding from the [European High-Performance +Computing Joint Undertaking](https://eurohpc-ju.europa.eu/) (JU) under +grant agreement No 955701 ([TIME-X](https://www.time-x-eurohpc.eu/)). +The JU receives support from the European Union's Horizon 2020 research +and innovation programme and Belgium, France, Germany, and Switzerland. +This project also received funding from the [German Federal Ministry of +Education and Research](https://www.bmbf.de/bmbf/en/home/home_node.html) +(BMBF) grant 16HPC047. The project also received help from the +[Helmholtz Platform for Research Software Engineering - Preparatory +Study (HiRSE_PS)](https://www.helmholtz-hirse.de/). diff --git a/README.rst b/README.rst deleted file mode 100644 index e420177c73..0000000000 --- a/README.rst +++ /dev/null @@ -1,89 +0,0 @@ -|badge-ga| -|badge-ossf| -|badge-cc| -|zenodo| - -Welcome to pySDC! -================= - -The `pySDC` project is a Python implementation of the spectral deferred correction (SDC) approach and its flavors, -esp. the multilevel extension MLSDC and PFASST. It is intended for rapid prototyping and educational purposes. -New ideas like e.g. sweepers or predictors can be tested and first toy problems can be easily implemented. - - -Features --------- - -- Variants of SDC: explicit, implicit, IMEX, multi-implicit, Verlet, multi-level, diagonal, multi-step -- Variants of PFASST: virtual parallel or MPI-based parallel, classical of multigrid perspective -- 8 tutorials: from setting up a first collocation problem to SDC, PFASST and advanced topics -- Projects: many documented projects with defined and tested outcomes -- Many different examples, collocation types, data types already implemented -- Works with `FEniCS `_, `mpi4py-fft `_ and `PETSc `_ (through `petsc4py `_) -- Continuous integration via `GitHub Actions `_ and `Gitlab CI `_ -- Fully compatible with Python 3.7 - 3.10, runs at least on Ubuntu and MacOS - - -Getting started ---------------- - -The code is hosted on GitHub, see `https://github.com/Parallel-in-Time/pySDC `_, and PyPI, see `https://pypi.python.org/pypi/pySDC `_. -While using ``pip install pySDC`` will give you a core version of `pySDC` to work with, working with the developer version -is most often the better choice. We thus recommend to checkout the code from GitHub and install the dependencies e.g. by using a `conda `_ environment. -For this, `pySDC` ships with environment files which can be found in the folder ``etc/``. Use these as e.g. - -.. code-block:: bash - - conda env create --yes -f etc/environment-base.yml - -To check your installation, run - -.. code-block:: bash - - pytest pySDC/tests -m NAME - -where ``NAME`` corresponds to the environment you chose (``base`` in the example above). -You may need to update your ``PYTHONPATH`` by running - -.. code-block:: bash - - export PYTHONPATH=$PYTHONPATH:/path/to/pySDC/root/folder - -in particular if you want to run any of the playgrounds, projects or tutorials. -All ``import`` statements there assume that the `pySDC`'s base directory is part of ``PYTHONPATH``. - -For many examples, `LaTeX` is used for the plots, i.e. a decent installation of this is needed in order to run those examples. -When using `fenics` or `petsc4py`, a C++ compiler is required (although installation may go through at first). - -For more details on `pySDC`, check out `http://www.parallel-in-time.org/pySDC `_. - - -How to cite ------------ - -If you use pySDC or parts of it for your work, great! Let us know if we can help you with this. Also, we would greatly appreciate a citation of `this paper `_: - - Robert Speck, **Algorithm 997: pySDC - Prototyping Spectral Deferred Corrections**, - ACM Transactions on Mathematical Software (TOMS), Volume 45 Issue 3, August 2019, - `https://doi.org/10.1145/3310410 `_ - -The current software release can be cited using Zenodo: |zenodo| - -.. |zenodo| image:: https://zenodo.org/badge/26165004.svg - :target: https://zenodo.org/badge/latestdoi/26165004 - -Acknowledgements ----------------- - -This project has received funding from the `European High-Performance Computing Joint Undertaking `_ (JU) under grant agreement No 955701 (`TIME-X `_). -The JU receives support from the European Union’s Horizon 2020 research and innovation programme and Belgium, France, Germany, and Switzerland. -This project also received funding from the `German Federal Ministry of Education and Research `_ (BMBF) grant 16HPC047. -The project also received help from the `Helmholtz Platform for Research Software Engineering - Preparatory Study (HiRSE_PS) `_. - - -.. |badge-ga| image:: https://github.com/Parallel-in-Time/pySDC/actions/workflows/ci_pipeline.yml/badge.svg?branch=master - :target: https://github.com/Parallel-in-Time/pySDC/actions/workflows/ci_pipeline.yml -.. |badge-ossf| image:: https://bestpractices.coreinfrastructure.org/projects/6909/badge - :target: https://bestpractices.coreinfrastructure.org/projects/6909 -.. |badge-cc| image:: https://codecov.io/gh/Parallel-in-Time/pySDC/branch/master/graph/badge.svg?token=hpP18dmtgS - :target: https://codecov.io/gh/Parallel-in-Time/pySDC diff --git a/docs/contrib/01_pull_requests.md b/docs/contrib/01_pull_requests.md new file mode 100644 index 0000000000..9cb2dc21f6 --- /dev/null +++ b/docs/contrib/01_pull_requests.md @@ -0,0 +1,60 @@ +# Recommendations for pull requests + +Contributions on the `pySDC` code is expected to be done through pull requests from personal (public) forked repositories. A few core developers can eventually push maintenance commits directly to the main repository. However (even for core developers), it is highly recommended to add specific contribution trough dedicated merge requests from forks. + +## Contributing to the main branch + +The main version of `pySDC` is hosted in the `master` branch, on which any contributor can propose pull requests. Those can consist on : + +- bug fixes and code corrections (_e.g_ solving one of the current [issues](https://github.com/Parallel-in-Time/pySDC/issues)) +- addition or improvement of documentation +- improvement of existing functionalities (performance, accuracy, usage, ...) +- addition of new functionalities and applications +- improvement of CI test routines + +Pull request should comes from forks branches with a name specific to the contribution. For instance : + +``` +# branch name : +issue214 # to solve issue 214 +awesome_new_project # to add a new project +some_feature # to add a new feature (implementation, ...) +``` + +> :scroll: Favor the use of _short name_ for branch, using _lower case_ and eventually underscores to ease readability. + +Those changes should be compatible with the existing API (_i.e_ not break it), and **avoid any change** in the current user interface. In particular, it should not modify default values for parameters or remove attributes of existing classes. But new attributes or parameters can be added with pre-set default values, and new classes can be added in the `pySDC.implementations` module. + +> :bell: During the revision of your pull request, it can happen that additional changes are done to the `upstream/master` branch (in parallel-in-time/pySDC repo). In that case, don't hesitate to regularly merge them into your local branch to solve eventual conflicts, for instance : +> +> ```bash +> # On your local repo, with the "my_feature" branch +> $ git fetch upstream # synchronize with parallel-in-time/pySDC +> $ git merge upstream/master # merge into my_feature +> $ git push # push local merges to your repository +> ``` +> +> The pull request will be updated with any merge changes on the `my_feature` branch of your repository. + + +## Release development branches + +Branches with name starting with `v[...]` are development branches for the next releases of `pySDC` (_e.g_ `v5`, `v6`, ...). Those may introduce API-breaking changes (user interface, structure of core classes) that would force re-writing application scripts using `pySDC` (_e.g_ tutorials, projects, ...). Contribution to those branches are done by core developers, but anyone can also propose pull requests on those branches once the roadmap and milestones for the associated release has been written down in a dedicated issue. +Such branches are merged to `master` when ready. + +> :scroll: Pull request to those branches can be done from fork branches using the **same name** as the release branch. + +> :bell: **Never** merge modifications on the `upstream/master` branch into your own local release branch. If some commit on the master branch have to be taken into account in the release branch (for instance, v6), then first request a merge of `upstream/master` into `upstream/v6`, merge `upstream/v6` into your local `v6` branch, then push into your own repository to update the pull request. + +## Feature development branches + +Additional branches starting with the prefix `dev/[...]` can be used to add new features, that cannot be added with only one pull request (for instance, when several developers work on it). +Those could eventually be merged into master if they don't break the API, or to the next release branch if they do. + +> :scroll: Pull request to those branches can be done from fork branches using the **same name** as the feature branch. + +> :bell: **Never** merge modifications on `upstream/master` or any release branch into your own local development branch (same comment and solution as for the release branches above). + + +:arrow_left: [Back to Contributing Summary](./../../CONTRIBUTING.md) --- +:arrow_right: [Next to Continuous Integration](./02_continuous_integration.md) \ No newline at end of file diff --git a/docs/contrib/02_continuous_integration.md b/docs/contrib/02_continuous_integration.md new file mode 100644 index 0000000000..da7b62cb71 --- /dev/null +++ b/docs/contrib/02_continuous_integration.md @@ -0,0 +1,51 @@ +# Continuous Integration in pySDC + +Any commit in `pySDC` are tested within by GitHub continuous integration (CI). You can see in in the [action panel](https://github.com/Parallel-in-Time/pySDC/actions) the tests for each branches. +Those tests can be divided in two main categories : code linting and code testing. + +## Code linting + +Code style linting is performed using [`black`](https://black.readthedocs.io/en/stable/) and [`flakeheaven`](https://flakeheaven.readthedocs.io/en/latest/) for code syntax checking. In particular, `black` is used to check compliance with (most of) [PEP-8 guidelines](https://peps.python.org/pep-0008/). + +Those tests are conducted for each commit (even for forks), but you can also run it locally in the root folder of `pySDC` before pushing any commit : + +```bash +# Install required packages (works also with conda/mamba) +pip install black flakeheaven flake8-comprehensions flake8-bugbear +# First : test code style linting with black +black pySDC --check --diff --color +# Second : test code syntax with flakeheaven +flakeheaven lint --benchmark pySDC +``` + +> :bell: To avoid any error about formatting (`black`), you can simply use this program to reformat directly your code using the command : +> +> ```bash +> black pySDC +> ``` + +Some style rules that are automatically enforced : + +- lines should be not longer than 120 characters +- arithmetic operators (`+`, `*`, ...) should be separated with variables by one empty space + +# Code testing + +This is done using[ `pytest`](https://docs.pytest.org/en/7.2.x/), and runs all the tests written in the `pySDC/tests` folder. You can run those locally in the root folder of `pySDC` using : + +```bash +# Install required packages (works also with conda/mamba) +pip install pytest<7.2.0 pytest-benchmark coverage[toml] +# Run tests +pytest -v pySDC/tests +``` + +> :bell: Many components are tested (core, implementations, projects, tutorials, etc ...) which make the testing quite long. +> When working on a single part of the code, you can run only the corresponding part of the test by specifying the test path, for instance : +> +> ```bash +> pytest -v pySDC/tests/test_nodes.py # only test nodes generation +> ``` + +:arrow_left: [Back to Pull Request Recommendation](./01_pull_requests.md) --- +:arrow_right: [Next to Naming Conventions](./03_naming_conventions.md) \ No newline at end of file diff --git a/docs/contrib/03_naming_conventions.md b/docs/contrib/03_naming_conventions.md new file mode 100644 index 0000000000..711852c182 --- /dev/null +++ b/docs/contrib/03_naming_conventions.md @@ -0,0 +1,143 @@ +# Naming conventions in pySDC + +> :scroll: Those rules may not be enforced by the current implementation of pySDC. However, they should be enforced for any contribution. + +Naming convention are mostly inspired from the [PEP-8 guidelines](https://peps.python.org/pep-0008/), even if some of them may be different. Of course, strictly following those rules is not always the best solution, as Guido Von Rossum's key insight states : + +> _A Foolish Consistency is the Hobgoblin of Little Minds_ + +The most important idea at the end is to find a optimal compromise between + +- readability : _Can someone else easily read and understand my code ?_ +- effectiveness : _Does my code avoid kilometers-long lines to do simple things ?_ + +Both aspects are interdependent to ease maintaining/development of any code and improve its attractiveness to potential users. + +## First definitions + +Possible Naming formats : + +- all-lowercase : `variablenamelikethis` +- snake_case : `variable_name_like_this` +- PascalCase : `VariableNameLikeThis` +- camelCase : `variableNameLikeThis` +- all-uppercase with underscore : `VARIABLE_NAME_LIKE_THIS` +- all-uppercase with minus : `VARIABLE-NAME-LIKE-THIS` + +## Packages and modules names + +Modules should have short, all-lowercase names. Underscores can be used in the module name if it improves readability (_i.e_ use snake_case only if it helps, +else try to stick to all-lowercase). +Python packages should also have short, all-lowercase names, although the use of underscores is discouraged. + +## Class names + +Class names should use PascalCase formatting, for instance : + +```python +class AdvectionDiffusion(Problem): + pass +``` + +The shorter, the better. Also, exception class names should end with the suffix `Error`, for instance + +```python +class ParameterError(Exception): + pass +``` + +## Function and variables names + +Function (or method) and variable names should use camelCase formatting, and same goes for function arguments. For instance : + +```python +tLeft = 1 +quadType = 'LEGENDRE' + +def computeFejerRule(nNodes): + # ... + +class NodeGenerator(): + def getOrthogPolyCoeffs(self, nCoeffs): + # ... +``` + +:scroll: A few additional notes : + +1. In general, shorter name (eventually with abbreviations) should be favored, **as long as it does not deteriorate understandability**. For instance `getOrthogPolyCoeffs` rather than `getOrthogonalPolynomialCoefficients`. +2. Suffix `s` for plural should be used even with abbreviations for consistency (_e.g_ `nCoeffs`, `nNodes`, ...). +3. Acronyms can be used to simplify variable names, but **try not to start with it**. For instance, favor `jacobiMSSDC` or `multiStepSDCJacobi` rather than `MSSDCJacobi`. In general, acronyms should be put at the end of variable names. +4. Underscore can exceptionally be used at the end of variable names when it make readability better and ease further developments. In that case, the characters after the underscore **should be all-uppercase with underscore** (minus is not allowed by Python syntax). For instance when defining the same method with different specializations : + +```python +class MySweeper(Sweeper): + + def __init__(self, initSweep): + try: + self.initSweep = getattr(self, f'_initSweep_{initSweep}') + except AttributeError: + raise NotImplementedError(f'initSweep={initSweep}') + + def _initSweep_COPY(self): + pass + + def _initSweep_SPREAD(self): + pass + + # ... other implementations for initSweep +``` + +## Private and public attributes + +There is no such thing as private or public attributes in Python. But some attributes, if uses only within the object methods, can be indicated as private using the `_` prefix. For instance : + +```python +class ChuckNorris(): + + def __init__(self, param): + self.param = param + + def _think(self): + print('...') + + def act(self): + if self.param == 'doubt': + self._think() + print('*?%&$?*§"$*$*§#{*') +``` + +:scroll: In general, variable name starting with double underscore `__` are usually left for Python built-in names, _e.g_ `__dict__`, `__init__`, ... + +## Constants + +Constants are usually defined on a module level and written in all-uppercase with underscores (all-uppercase with minus are not allowed by Python syntax). Examples : + +```python +NODE_TYPES = ['EQUID', 'LEGENDRE', 'CHEBY-1', 'CHEBY-2', 'CHEBY-3', 'CHEBY-4'] +QUAD_TYPES = ['GAUSS', 'RADAU-LEFT', 'RADAU-RIGHT', 'LOBATTO'] +``` + +For _constant string values_, however, favor the use of all uppercase with minus, _e.g_ `RADAU-RIGHT`, `LEGENDRE-NUMPY` to distinguish those from constants names. + +:bell: When constants are used, for instance, to select method specializations (with suffix using all-uppercase with underscore), it is probably better to keep all-uppercase with minus for constant string values and add a character replacement in between, for instance : + +```python +class MySweeper(Sweeper): + + def __init__(self, initSweep): + try: + self.initSweep = getattr(self, f'_initSweep_{initSweep.replace('-','_')}') + except AttributeError: + raise NotImplementedError(f'initSweep={initSweep}') + + def _initSweep_COPY_PASTE(self): + pass + + def _initSweep_SPREAD_OUT(self): + pass + + # ... other implementations for initSweep +``` + +:arrow_left: [Back to Continuous Integration](./02_continuous_integration.md) --- +:arrow_right: [Next to Custom Implementations](./04_custom_implementations.md) \ No newline at end of file diff --git a/docs/contrib/04_custom_implementations.md b/docs/contrib/04_custom_implementations.md new file mode 100644 index 0000000000..414cefa413 --- /dev/null +++ b/docs/contrib/04_custom_implementations.md @@ -0,0 +1,6 @@ +# Custom implementation guidelines + +... in construction ... + +:arrow_left: [Back to Naming Conventions](./03_naming_conventions.md) --- +:arrow_right: [Next to a cute picture of cat](https://www.vecteezy.com/photo/2098203-silver-tabby-cat-sitting-on-green-background) \ No newline at end of file diff --git a/docs/convert_markdown.py b/docs/convert_markdown.py new file mode 100755 index 0000000000..126071674d --- /dev/null +++ b/docs/convert_markdown.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Created on Tue Jan 17 19:47:56 2023 + +@author: telu +""" +import os +import glob +import json +import m2r2 + +mdFiles = [ + 'README.md', + 'CONTRIBUTING.md', + 'CHANGELOG.md', + 'CODE_OF_CONDUCT.md', + 'docs/contrib'] + +docSources = 'docs/source' + +with open('docs/emojis.json') as f: + emojis = set(json.load(f).keys()) + +def convert(md): + rst = m2r2.parse_from_file(md, parse_relative_links=True) + for emoji in emojis: + rst = rst.replace(emoji, f'|{emoji}|') + baseName = os.path.splitext(md)[0] + with open(f'{docSources}/{baseName}.rst', 'w') as f: + f.write(rst) + print(f'Converted {md} to {docSources}/{baseName}.rst') + +for md in mdFiles: + if os.path.isfile(md): + convert(md) + elif os.path.isdir(md): + os.makedirs(f'{docSources}/{md}', exist_ok=True) + for f in glob.glob(f'{md}/*.md'): + convert(f) + else: + raise ValueError('{md} is not a md file or a folder') diff --git a/docs/emojis.json b/docs/emojis.json new file mode 100644 index 0000000000..0c142f6bb7 --- /dev/null +++ b/docs/emojis.json @@ -0,0 +1,5983 @@ +{ + ":+1:": "👍", + ":+1_tone1:": "👍🏻", + ":+1_tone2:": "👍🏼", + ":+1_tone3:": "👍🏽", + ":+1_tone4:": "👍🏾", + ":+1_tone5:": "👍🏿", + ":-1:": "👎", + ":-1_tone1:": "👎🏻", + ":-1_tone2:": "👎🏼", + ":-1_tone3:": "👎🏽", + ":-1_tone4:": "👎🏾", + ":-1_tone5:": "👎🏿", + ":100:": "💯", + ":1234:": "🔢", + ":1st_place_medal:": "🥇", + ":2nd_place_medal:": "🥈", + ":3rd_place_medal:": "🥉", + ":8ball:": "🎱", + ":a:": "🅰️", + ":ab:": "🆎", + ":abacus:": "🧮", + ":abc:": "🔤", + ":abcd:": "🔡", + ":ac:": "🇦🇨", + ":accept:": "🉑", + ":accordion:": "🪗", + ":ad:": "🇦🇩", + ":adhesive_bandage:": "🩹", + ":admission_tickets:": "🎟️", + ":adult:": "🧑", + ":adult_dark_skin_tone:": "🧑🏿", + ":adult_light_skin_tone:": "🧑🏻", + ":adult_medium_dark_skin_tone:": "🧑🏾", + ":adult_medium_light_skin_tone:": "🧑🏼", + ":adult_medium_skin_tone:": "🧑🏽", + ":adult_tone1:": "🧑🏻", + ":adult_tone2:": "🧑🏼", + ":adult_tone3:": "🧑🏽", + ":adult_tone4:": "🧑🏾", + ":adult_tone5:": "🧑🏿", + ":ae:": "🇦🇪", + ":aerial_tramway:": "🚡", + ":af:": "🇦🇫", + ":afghanistan:": "🇦🇫", + ":ag:": "🇦🇬", + ":ai:": "🇦🇮", + ":airplane:": "✈️", + ":airplane_arriving:": "🛬", + ":airplane_departure:": "🛫", + ":airplane_small:": "🛩️", + ":al:": "🇦🇱", + ":aland_islands:": "🇦🇽", + ":alarm_clock:": "⏰", + ":albania:": "🇦🇱", + ":alembic:": "⚗️", + ":algeria:": "🇩🇿", + ":alien:": "👽", + ":am:": "🇦🇲", + ":ambulance:": "🚑", + ":american_samoa:": "🇦🇸", + ":amphora:": "🏺", + ":anatomical_heart:": "🫀", + ":anchor:": "⚓", + ":andorra:": "🇦🇩", + ":angel:": "👼", + ":angel_tone1:": "👼🏻", + ":angel_tone2:": "👼🏼", + ":angel_tone3:": "👼🏽", + ":angel_tone4:": "👼🏾", + ":angel_tone5:": "👼🏿", + ":anger:": "💢", + ":anger_right:": "🗯️", + ":angola:": "🇦🇴", + ":angry:": "😠", + ":anguilla:": "🇦🇮", + ":anguished:": "😧", + ":ant:": "🐜", + ":antarctica:": "🇦🇶", + ":antigua_barbuda:": "🇦🇬", + ":ao:": "🇦🇴", + ":apple:": "🍎", + ":aq:": "🇦🇶", + ":aquarius:": "♒", + ":ar:": "🇦🇷", + ":archery:": "🏹", + ":argentina:": "🇦🇷", + ":aries:": "♈", + ":armenia:": "🇦🇲", + ":arrow_backward:": "◀️", + ":arrow_double_down:": "⏬", + ":arrow_double_up:": "⏫", + ":arrow_down:": "⬇️", + ":arrow_down_small:": "🔽", + ":arrow_forward:": "▶️", + ":arrow_heading_down:": "⤵️", + ":arrow_heading_up:": "⤴️", + ":arrow_left:": "⬅️", + ":arrow_lower_left:": "↙️", + ":arrow_lower_right:": "↘️", + ":arrow_right:": "➡️", + ":arrow_right_hook:": "↪️", + ":arrow_up:": "⬆️", + ":arrow_up_down:": "↕️", + ":arrow_up_small:": "🔼", + ":arrow_upper_left:": "↖️", + ":arrow_upper_right:": "↗️", + ":arrows_clockwise:": "🔃", + ":arrows_counterclockwise:": "🔄", + ":art:": "🎨", + ":articulated_lorry:": "🚛", + ":artificial_satellite:": "🛰", + ":artist:": "🧑‍🎨", + ":artist_dark_skin_tone:": "🧑🏿‍🎨", + ":artist_light_skin_tone:": "🧑🏻‍🎨", + ":artist_medium_dark_skin_tone:": "🧑🏾‍🎨", + ":artist_medium_light_skin_tone:": "🧑🏼‍🎨", + ":artist_medium_skin_tone:": "🧑🏽‍🎨", + ":artist_tone1:": "🧑🏻‍🎨", + ":artist_tone2:": "🧑🏼‍🎨", + ":artist_tone3:": "🧑🏽‍🎨", + ":artist_tone4:": "🧑🏾‍🎨", + ":artist_tone5:": "🧑🏿‍🎨", + ":aruba:": "🇦🇼", + ":as:": "🇦🇸", + ":ascension:": "🇦🇨", + ":asterisk:": "*️⃣", + ":asterisk_symbol:": "*️", + ":astonished:": "😲", + ":astronaut:": "🧑‍🚀", + ":astronaut_dark_skin_tone:": "🧑🏿‍🚀", + ":astronaut_light_skin_tone:": "🧑🏻‍🚀", + ":astronaut_medium_dark_skin_tone:": "🧑🏾‍🚀", + ":astronaut_medium_light_skin_tone:": "🧑🏼‍🚀", + ":astronaut_medium_skin_tone:": "🧑🏽‍🚀", + ":astronaut_tone1:": "🧑🏻‍🚀", + ":astronaut_tone2:": "🧑🏼‍🚀", + ":astronaut_tone3:": "🧑🏽‍🚀", + ":astronaut_tone4:": "🧑🏾‍🚀", + ":astronaut_tone5:": "🧑🏿‍🚀", + ":at:": "🇦🇹", + ":athletic_shoe:": "👟", + ":atm:": "🏧", + ":atom:": "⚛️", + ":atom_symbol:": "⚛️", + ":au:": "🇦🇺", + ":australia:": "🇦🇺", + ":austria:": "🇦🇹", + ":auto_rickshaw:": "🛺", + ":avocado:": "🥑", + ":aw:": "🇦🇼", + ":ax:": "🇦🇽", + ":axe:": "🪓", + ":az:": "🇦🇿", + ":azerbaijan:": "🇦🇿", + ":b:": "🅱️", + ":ba:": "🇧🇦", + ":baby:": "👶", + ":baby_bottle:": "🍼", + ":baby_chick:": "🐤", + ":baby_symbol:": "🚼", + ":baby_tone1:": "👶🏻", + ":baby_tone2:": "👶🏼", + ":baby_tone3:": "👶🏽", + ":baby_tone4:": "👶🏾", + ":baby_tone5:": "👶🏿", + ":back:": "🔙", + ":back_of_hand:": "🤚", + ":back_of_hand_tone1:": "🤚🏻", + ":back_of_hand_tone2:": "🤚🏼", + ":back_of_hand_tone3:": "🤚🏽", + ":back_of_hand_tone4:": "🤚🏾", + ":back_of_hand_tone5:": "🤚🏿", + ":bacon:": "🥓", + ":badger:": "🦡", + ":badminton:": "🏸", + ":bagel:": "🥯", + ":baggage_claim:": "🛄", + ":baguette_bread:": "🥖", + ":bahamas:": "🇧🇸", + ":bahrain:": "🇧🇭", + ":balance_scale:": "⚖️", + ":bald:": "🦲", + ":ballet_shoes:": "🩰", + ":balloon:": "🎈", + ":ballot_box:": "🗳️", + ":ballot_box_with_ballot:": "🗳️", + ":ballot_box_with_check:": "☑️", + ":bamboo:": "🎍", + ":banana:": "🍌", + ":bangbang:": "‼️", + ":bangladesh:": "🇧🇩", + ":banjo:": "🪕", + ":bank:": "🏦", + ":bar_chart:": "📊", + ":barbados:": "🇧🇧", + ":barber:": "💈", + ":baseball:": "⚾", + ":basket:": "🧺", + ":basketball:": "🏀", + ":basketball_man:": "⛹️", + ":basketball_player:": "⛹", + ":basketball_player_tone1:": "⛹🏻", + ":basketball_player_tone2:": "⛹🏼", + ":basketball_player_tone3:": "⛹🏽", + ":basketball_player_tone4:": "⛹🏾", + ":basketball_player_tone5:": "⛹🏿", + ":basketball_woman:": "⛹️‍♀️", + ":bat:": "🦇", + ":bath:": "🛀", + ":bath_tone1:": "🛀🏻", + ":bath_tone2:": "🛀🏼", + ":bath_tone3:": "🛀🏽", + ":bath_tone4:": "🛀🏾", + ":bath_tone5:": "🛀🏿", + ":bathtub:": "🛁", + ":battery:": "🔋", + ":bb:": "🇧🇧", + ":bd:": "🇧🇩", + ":be:": "🇧🇪", + ":beach:": "🏖️", + ":beach_umbrella:": "⛱️", + ":beach_with_umbrella:": "🏖️", + ":bear:": "🐻", + ":bearded_person:": "🧔", + ":bearded_person_dark_skin_tone:": "🧔🏿", + ":bearded_person_light_skin_tone:": "🧔🏻", + ":bearded_person_medium_dark_skin_tone:": "🧔🏾", + ":bearded_person_medium_light_skin_tone:": "🧔🏼", + ":bearded_person_medium_skin_tone:": "🧔🏽", + ":bearded_person_tone1:": "🧔🏻", + ":bearded_person_tone2:": "🧔🏼", + ":bearded_person_tone3:": "🧔🏽", + ":bearded_person_tone4:": "🧔🏾", + ":bearded_person_tone5:": "🧔🏿", + ":beaver:": "🦫", + ":bed:": "🛏️", + ":bee:": "🐝", + ":beer:": "🍺", + ":beers:": "🍻", + ":beetle:": "🪲", + ":beginner:": "🔰", + ":belarus:": "🇧🇾", + ":belgium:": "🇧🇪", + ":belize:": "🇧🇿", + ":bell:": "🔔", + ":bell_pepper:": "🫑", + ":bellhop:": "🛎️", + ":bellhop_bell:": "🛎️", + ":benin:": "🇧🇯", + ":bento:": "🍱", + ":bermuda:": "🇧🇲", + ":beverage_box:": "🧃", + ":bf:": "🇧🇫", + ":bg:": "🇧🇬", + ":bh:": "🇧🇭", + ":bhutan:": "🇧🇹", + ":bi:": "🇧🇮", + ":bicyclist:": "🚴", + ":bicyclist_tone1:": "🚴🏻", + ":bicyclist_tone2:": "🚴🏼", + ":bicyclist_tone3:": "🚴🏽", + ":bicyclist_tone4:": "🚴🏾", + ":bicyclist_tone5:": "🚴🏿", + ":bike:": "🚲", + ":biking_man:": "🚴", + ":biking_woman:": "🚴‍♀️", + ":bikini:": "👙", + ":billed_cap:": "🧢", + ":biohazard:": "☣️", + ":biohazard_sign:": "☣️", + ":bird:": "🐦", + ":birthday:": "🎂", + ":bison:": "🦬", + ":bj:": "🇧🇯", + ":bl:": "🇧🇱", + ":black_cat:": "🐈‍⬛", + ":black_circle:": "⚫", + ":black_flag:": "🏴", + ":black_heart:": "🖤", + ":black_joker:": "🃏", + ":black_large_square:": "⬛", + ":black_medium_small_square:": "◾", + ":black_medium_square:": "◼️", + ":black_nib:": "✒️", + ":black_small_square:": "▪️", + ":black_square_button:": "🔲", + ":blond-haired_man:": "👱‍♂️", + ":blond-haired_man_dark_skin_tone:": "👱🏿‍♂️", + ":blond-haired_man_light_skin_tone:": "👱🏻‍♂️", + ":blond-haired_man_medium_dark_skin_tone:": "👱🏾‍♂️", + ":blond-haired_man_medium_light_skin_tone:": "👱🏼‍♂️", + ":blond-haired_man_medium_skin_tone:": "👱🏽‍♂️", + ":blond-haired_man_tone1:": "👱🏻‍♂️", + ":blond-haired_man_tone2:": "👱🏼‍♂️", + ":blond-haired_man_tone3:": "👱🏽‍♂️", + ":blond-haired_man_tone4:": "👱🏾‍♂️", + ":blond-haired_man_tone5:": "👱🏿‍♂️", + ":blond-haired_woman:": "👱‍♀️", + ":blond-haired_woman_dark_skin_tone:": "👱🏿‍♀️", + ":blond-haired_woman_light_skin_tone:": "👱🏻‍♀️", + ":blond-haired_woman_medium_dark_skin_tone:": "👱🏾‍♀️", + ":blond-haired_woman_medium_light_skin_tone:": "👱🏼‍♀️", + ":blond-haired_woman_medium_skin_tone:": "👱🏽‍♀️", + ":blond-haired_woman_tone1:": "👱🏻‍♀️", + ":blond-haired_woman_tone2:": "👱🏼‍♀️", + ":blond-haired_woman_tone3:": "👱🏽‍♀️", + ":blond-haired_woman_tone4:": "👱🏾‍♀️", + ":blond-haired_woman_tone5:": "👱🏿‍♀️", + ":blond_haired_person:": "👱", + ":blond_haired_person_tone1:": "👱🏻", + ":blond_haired_person_tone2:": "👱🏼", + ":blond_haired_person_tone3:": "👱🏽", + ":blond_haired_person_tone4:": "👱🏾", + ":blond_haired_person_tone5:": "👱🏿", + ":blonde_man:": "👱", + ":blonde_woman:": "👱‍♀️", + ":blossom:": "🌼", + ":blowfish:": "🐡", + ":blue_book:": "📘", + ":blue_car:": "🚙", + ":blue_circle:": "🔵", + ":blue_heart:": "💙", + ":blue_square:": "🟦", + ":blueberries:": "🫐", + ":blush:": "😊", + ":bm:": "🇧🇲", + ":bn:": "🇧🇳", + ":bo:": "🇧🇴", + ":boar:": "🐗", + ":boat:": "⛵️", + ":bolivia:": "🇧🇴", + ":bomb:": "💣", + ":bone:": "🦴", + ":book:": "📖", + ":bookmark:": "🔖", + ":bookmark_tabs:": "📑", + ":books:": "📚", + ":boom:": "💥", + ":boomerang:": "🪃", + ":boot:": "👢", + ":bosnia_herzegovina:": "🇧🇦", + ":botswana:": "🇧🇼", + ":bottle_with_popping_cork:": "🍾", + ":bouquet:": "💐", + ":bouvet_island:": "🇧🇻", + ":bow:": "🙇", + ":bow_and_arrow:": "🏹", + ":bow_tone1:": "🙇🏻", + ":bow_tone2:": "🙇🏼", + ":bow_tone3:": "🙇🏽", + ":bow_tone4:": "🙇🏾", + ":bow_tone5:": "🙇🏿", + ":bowing_man:": "🙇", + ":bowing_woman:": "🙇‍♀️", + ":bowl_with_spoon:": "🥣", + ":bowling:": "🎳", + ":boxing_glove:": "🥊", + ":boxing_gloves:": "🥊", + ":boy:": "👦", + ":boy_tone1:": "👦🏻", + ":boy_tone2:": "👦🏼", + ":boy_tone3:": "👦🏽", + ":boy_tone4:": "👦🏾", + ":boy_tone5:": "👦🏿", + ":bq:": "🇧🇶", + ":br:": "🇧🇷", + ":brain:": "🧠", + ":brazil:": "🇧🇷", + ":bread:": "🍞", + ":breast_feeding:": "🤱", + ":breast_feeding_dark_skin_tone:": "🤱🏿", + ":breast_feeding_light_skin_tone:": "🤱🏻", + ":breast_feeding_medium_dark_skin_tone:": "🤱🏾", + ":breast_feeding_medium_light_skin_tone:": "🤱🏼", + ":breast_feeding_medium_skin_tone:": "🤱🏽", + ":breast_feeding_tone1:": "🤱🏻", + ":breast_feeding_tone2:": "🤱🏼", + ":breast_feeding_tone3:": "🤱🏽", + ":breast_feeding_tone4:": "🤱🏾", + ":breast_feeding_tone5:": "🤱🏿", + ":bricks:": "🧱", + ":bride_with_veil:": "👰", + ":bride_with_veil_tone1:": "👰🏻", + ":bride_with_veil_tone2:": "👰🏼", + ":bride_with_veil_tone3:": "👰🏽", + ":bride_with_veil_tone4:": "👰🏾", + ":bride_with_veil_tone5:": "👰🏿", + ":bridge_at_night:": "🌉", + ":briefcase:": "💼", + ":briefs:": "🩲", + ":british_indian_ocean_territory:": "🇮🇴", + ":british_virgin_islands:": "🇻🇬", + ":broccoli:": "🥦", + ":broken_heart:": "💔", + ":broom:": "🧹", + ":brown_circle:": "🟤", + ":brown_heart:": "🤎", + ":brown_square:": "🟫", + ":brunei:": "🇧🇳", + ":bs:": "🇧🇸", + ":bt:": "🇧🇹", + ":bubble_tea:": "🧋", + ":bucket:": "🪣", + ":bug:": "🐛", + ":building_construction:": "🏗️", + ":bulb:": "💡", + ":bulgaria:": "🇧🇬", + ":bullettrain_front:": "🚅", + ":bullettrain_side:": "🚄", + ":burkina_faso:": "🇧🇫", + ":burrito:": "🌯", + ":burundi:": "🇧🇮", + ":bus:": "🚌", + ":business_suit_levitating:": "🕴", + ":busstop:": "🚏", + ":bust_in_silhouette:": "👤", + ":busts_in_silhouette:": "👥", + ":butter:": "🧈", + ":butterfly:": "🦋", + ":bv:": "🇧🇻", + ":bw:": "🇧🇼", + ":by:": "🇧🇾", + ":bz:": "🇧🇿", + ":ca:": "🇨🇦", + ":cactus:": "🌵", + ":cake:": "🍰", + ":calendar:": "📆", + ":calendar_spiral:": "🗓️", + ":call_me:": "🤙", + ":call_me_hand:": "🤙", + ":call_me_hand_tone1:": "🤙🏻", + ":call_me_hand_tone2:": "🤙🏼", + ":call_me_hand_tone3:": "🤙🏽", + ":call_me_hand_tone4:": "🤙🏾", + ":call_me_hand_tone5:": "🤙🏿", + ":call_me_tone1:": "🤙🏻", + ":call_me_tone2:": "🤙🏼", + ":call_me_tone3:": "🤙🏽", + ":call_me_tone4:": "🤙🏾", + ":call_me_tone5:": "🤙🏿", + ":calling:": "📲", + ":cambodia:": "🇰🇭", + ":camel:": "🐫", + ":camera:": "📷", + ":camera_flash:": "📸", + ":camera_with_flash:": "📸", + ":cameroon:": "🇨🇲", + ":camping:": "🏕️", + ":canada:": "🇨🇦", + ":canary_islands:": "🇮🇨", + ":cancer:": "♋", + ":candle:": "🕯️", + ":candy:": "🍬", + ":canned_food:": "🥫", + ":canoe:": "🛶", + ":cape_verde:": "🇨🇻", + ":capital_abcd:": "🔠", + ":capricorn:": "♑", + ":car:": "🚗", + ":card_box:": "🗃️", + ":card_file_box:": "🗃️", + ":card_index:": "📇", + ":card_index_dividers:": "🗂️", + ":caribbean_netherlands:": "🇧🇶", + ":carousel_horse:": "🎠", + ":carpentry_saw:": "🪚", + ":carrot:": "🥕", + ":cartwheel:": "🤸", + ":cartwheel_tone1:": "🤸🏻", + ":cartwheel_tone2:": "🤸🏼", + ":cartwheel_tone3:": "🤸🏽", + ":cartwheel_tone4:": "🤸🏾", + ":cartwheel_tone5:": "🤸🏿", + ":cat2:": "🐈", + ":cat:": "🐱", + ":cayman_islands:": "🇰🇾", + ":cc:": "🇨🇨", + ":cd:": "💿", + ":central_african_republic:": "🇨🇫", + ":ceuta_melilla:": "🇪🇦", + ":cf:": "🇨🇫", + ":cg:": "🇨🇬", + ":ch:": "🇨🇭", + ":chad:": "🇹🇩", + ":chains:": "⛓️", + ":chair:": "🪑", + ":champagne:": "🍾", + ":champagne_glass:": "🥂", + ":chart:": "💹", + ":chart_with_downwards_trend:": "📉", + ":chart_with_upwards_trend:": "📈", + ":checkered_flag:": "🏁", + ":cheese:": "🧀", + ":cheese_wedge:": "🧀", + ":cherries:": "🍒", + ":cherry_blossom:": "🌸", + ":chess_pawn:": "♟️", + ":chestnut:": "🌰", + ":chicken:": "🐔", + ":child:": "🧒", + ":child_dark_skin_tone:": "🧒🏿", + ":child_light_skin_tone:": "🧒🏻", + ":child_medium_dark_skin_tone:": "🧒🏾", + ":child_medium_light_skin_tone:": "🧒🏼", + ":child_medium_skin_tone:": "🧒🏽", + ":child_tone1:": "🧒🏻", + ":child_tone2:": "🧒🏼", + ":child_tone3:": "🧒🏽", + ":child_tone4:": "🧒🏾", + ":child_tone5:": "🧒🏿", + ":children_crossing:": "🚸", + ":chile:": "🇨🇱", + ":china:": "🇨🇳", + ":chipmunk:": "🐿️", + ":chocolate_bar:": "🍫", + ":chopsticks:": "🥢", + ":christmas_island:": "🇨🇽", + ":christmas_tree:": "🎄", + ":church:": "⛪", + ":ci:": "🇨🇮", + ":cinema:": "🎦", + ":circus_tent:": "🎪", + ":city_dusk:": "🌆", + ":city_sunrise:": "🌇", + ":city_sunset:": "🌇", + ":cityscape:": "🏙️", + ":ck:": "🇨🇰", + ":cl:": "🆑", + ":clamp:": "🗜", + ":clap:": "👏", + ":clap_tone1:": "👏🏻", + ":clap_tone2:": "👏🏼", + ":clap_tone3:": "👏🏽", + ":clap_tone4:": "👏🏾", + ":clap_tone5:": "👏🏿", + ":clapper:": "🎬", + ":classical_building:": "🏛️", + ":clinking_glass:": "🥂", + ":clinking_glasses:": "🥂", + ":clipboard:": "📋", + ":clipperton_island:": "🇨🇵", + ":clock1030:": "🕥", + ":clock10:": "🕙", + ":clock1130:": "🕦", + ":clock11:": "🕚", + ":clock1230:": "🕧", + ":clock12:": "🕛", + ":clock130:": "🕜", + ":clock1:": "🕐", + ":clock230:": "🕝", + ":clock2:": "🕑", + ":clock330:": "🕞", + ":clock3:": "🕒", + ":clock430:": "🕟", + ":clock4:": "🕓", + ":clock530:": "🕠", + ":clock5:": "🕔", + ":clock630:": "🕡", + ":clock6:": "🕕", + ":clock730:": "🕢", + ":clock7:": "🕖", + ":clock830:": "🕣", + ":clock8:": "🕗", + ":clock930:": "🕤", + ":clock9:": "🕘", + ":clock:": "🕰️", + ":closed_book:": "📕", + ":closed_lock_with_key:": "🔐", + ":closed_umbrella:": "🌂", + ":cloud:": "☁️", + ":cloud_lightning:": "🌩️", + ":cloud_rain:": "🌧️", + ":cloud_snow:": "🌨️", + ":cloud_tornado:": "🌪️", + ":cloud_with_lightning:": "🌩️", + ":cloud_with_lightning_and_rain:": "⛈", + ":cloud_with_rain:": "🌧️", + ":cloud_with_snow:": "🌨️", + ":cloud_with_tornado:": "🌪️", + ":clown:": "🤡", + ":clown_face:": "🤡", + ":clubs:": "♣️", + ":cm:": "🇨🇲", + ":cn:": "🇨🇳", + ":co:": "🇨🇴", + ":coat:": "🧥", + ":cockroach:": "🪳", + ":cocktail:": "🍸", + ":coconut:": "🥥", + ":cocos_islands:": "🇨🇨", + ":coffee:": "☕", + ":coffin:": "⚰️", + ":coin:": "🪙", + ":cold_face:": "🥶", + ":cold_sweat:": "😰", + ":colombia:": "🇨🇴", + ":comet:": "☄️", + ":comoros:": "🇰🇲", + ":compass:": "🧭", + ":compression:": "🗜️", + ":computer:": "💻", + ":computer_mouse:": "🖱", + ":confetti_ball:": "🎊", + ":confounded:": "😖", + ":confused:": "😕", + ":congo:": "🇨🇩", + ":congo_brazzaville:": "🇨🇬", + ":congo_kinshasa:": "🇨🇩", + ":congratulations:": "㊗️", + ":construction:": "🚧", + ":construction_site:": "🏗️", + ":construction_worker:": "👷", + ":construction_worker_man:": "👷", + ":construction_worker_tone1:": "👷🏻", + ":construction_worker_tone2:": "👷🏼", + ":construction_worker_tone3:": "👷🏽", + ":construction_worker_tone4:": "👷🏾", + ":construction_worker_tone5:": "👷🏿", + ":construction_worker_woman:": "👷‍♀️", + ":control_knobs:": "🎛️", + ":convenience_store:": "🏪", + ":cook:": "🧑‍🍳", + ":cook_dark_skin_tone:": "🧑🏿‍🍳", + ":cook_islands:": "🇨🇰", + ":cook_light_skin_tone:": "🧑🏻‍🍳", + ":cook_medium_dark_skin_tone:": "🧑🏾‍🍳", + ":cook_medium_light_skin_tone:": "🧑🏼‍🍳", + ":cook_medium_skin_tone:": "🧑🏽‍🍳", + ":cook_tone1:": "🧑🏻‍🍳", + ":cook_tone2:": "🧑🏼‍🍳", + ":cook_tone3:": "🧑🏽‍🍳", + ":cook_tone4:": "🧑🏾‍🍳", + ":cook_tone5:": "🧑🏿‍🍳", + ":cookie:": "🍪", + ":cooking:": "🍳", + ":cool:": "🆒", + ":cop:": "👮", + ":cop_tone1:": "👮🏻", + ":cop_tone2:": "👮🏼", + ":cop_tone3:": "👮🏽", + ":cop_tone4:": "👮🏾", + ":cop_tone5:": "👮🏿", + ":copyright:": "©️", + ":corn:": "🌽", + ":costa_rica:": "🇨🇷", + ":cote_divoire:": "🇨🇮", + ":couch:": "🛋️", + ":couch_and_lamp:": "🛋️", + ":couple:": "👫", + ":couple_mm:": "👨‍❤️‍👨", + ":couple_with_heart:": "💑", + ":couple_with_heart_dark_skin_tone:": "💑🏿", + ":couple_with_heart_light_skin_tone:": "💑🏻", + ":couple_with_heart_man_man:": "👨‍❤️‍👨", + ":couple_with_heart_man_man_dark_skin_tone:": "👨🏿‍❤️‍👨🏿", + ":couple_with_heart_man_man_dark_skin_tone_light_skin_tone:": "👨🏿‍❤️‍👨🏻", + ":couple_with_heart_man_man_dark_skin_tone_medium_dark_skin_tone:": "👨🏿‍❤️‍👨🏾", + ":couple_with_heart_man_man_dark_skin_tone_medium_light_skin_tone:": "👨🏿‍❤️‍👨🏼", + ":couple_with_heart_man_man_dark_skin_tone_medium_skin_tone:": "👨🏿‍❤️‍👨🏽", + ":couple_with_heart_man_man_light_skin_tone:": "👨🏻‍❤️‍👨🏻", + ":couple_with_heart_man_man_light_skin_tone_dark_skin_tone:": "👨🏻‍❤️‍👨🏿", + ":couple_with_heart_man_man_light_skin_tone_medium_dark_skin_tone:": "👨🏻‍❤️‍👨🏾", + ":couple_with_heart_man_man_light_skin_tone_medium_light_skin_tone:": "👨🏻‍❤️‍👨🏼", + ":couple_with_heart_man_man_light_skin_tone_medium_skin_tone:": "👨🏻‍❤️‍👨🏽", + ":couple_with_heart_man_man_medium_dark_skin_tone:": "👨🏾‍❤️‍👨🏾", + ":couple_with_heart_man_man_medium_dark_skin_tone_dark_skin_tone:": "👨🏾‍❤️‍👨🏿", + ":couple_with_heart_man_man_medium_dark_skin_tone_light_skin_tone:": "👨🏾‍❤️‍👨🏻", + ":couple_with_heart_man_man_medium_dark_skin_tone_medium_light_skin_tone:": "👨🏾‍❤️‍👨🏼", + ":couple_with_heart_man_man_medium_dark_skin_tone_medium_skin_tone:": "👨🏾‍❤️‍👨🏽", + ":couple_with_heart_man_man_medium_light_skin_tone:": "👨🏼‍❤️‍👨🏼", + ":couple_with_heart_man_man_medium_light_skin_tone_dark_skin_tone:": "👨🏼‍❤️‍👨🏿", + ":couple_with_heart_man_man_medium_light_skin_tone_light_skin_tone:": "👨🏼‍❤️‍👨🏻", + ":couple_with_heart_man_man_medium_light_skin_tone_medium_dark_skin_tone:": "👨🏼‍❤️‍👨🏾", + ":couple_with_heart_man_man_medium_light_skin_tone_medium_skin_tone:": "👨🏼‍❤️‍👨🏽", + ":couple_with_heart_man_man_medium_skin_tone:": "👨🏽‍❤️‍👨🏽", + ":couple_with_heart_man_man_medium_skin_tone_dark_skin_tone:": "👨🏽‍❤️‍👨🏿", + ":couple_with_heart_man_man_medium_skin_tone_light_skin_tone:": "👨🏽‍❤️‍👨🏻", + ":couple_with_heart_man_man_medium_skin_tone_medium_dark_skin_tone:": "👨🏽‍❤️‍👨🏾", + ":couple_with_heart_man_man_medium_skin_tone_medium_light_skin_tone:": "👨🏽‍❤️‍👨🏼", + ":couple_with_heart_man_man_tone1:": "👨🏻‍❤️‍👨🏻", + ":couple_with_heart_man_man_tone1_tone2:": "👨🏻‍❤️‍👨🏼", + ":couple_with_heart_man_man_tone1_tone3:": "👨🏻‍❤️‍👨🏽", + ":couple_with_heart_man_man_tone1_tone4:": "👨🏻‍❤️‍👨🏾", + ":couple_with_heart_man_man_tone1_tone5:": "👨🏻‍❤️‍👨🏿", + ":couple_with_heart_man_man_tone2:": "👨🏼‍❤️‍👨🏼", + ":couple_with_heart_man_man_tone2_tone1:": "👨🏼‍❤️‍👨🏻", + ":couple_with_heart_man_man_tone2_tone3:": "👨🏼‍❤️‍👨🏽", + ":couple_with_heart_man_man_tone2_tone4:": "👨🏼‍❤️‍👨🏾", + ":couple_with_heart_man_man_tone2_tone5:": "👨🏼‍❤️‍👨🏿", + ":couple_with_heart_man_man_tone3:": "👨🏽‍❤️‍👨🏽", + ":couple_with_heart_man_man_tone3_tone1:": "👨🏽‍❤️‍👨🏻", + ":couple_with_heart_man_man_tone3_tone2:": "👨🏽‍❤️‍👨🏼", + ":couple_with_heart_man_man_tone3_tone4:": "👨🏽‍❤️‍👨🏾", + ":couple_with_heart_man_man_tone3_tone5:": "👨🏽‍❤️‍👨🏿", + ":couple_with_heart_man_man_tone4:": "👨🏾‍❤️‍👨🏾", + ":couple_with_heart_man_man_tone4_tone1:": "👨🏾‍❤️‍👨🏻", + ":couple_with_heart_man_man_tone4_tone2:": "👨🏾‍❤️‍👨🏼", + ":couple_with_heart_man_man_tone4_tone3:": "👨🏾‍❤️‍👨🏽", + ":couple_with_heart_man_man_tone4_tone5:": "👨🏾‍❤️‍👨🏿", + ":couple_with_heart_man_man_tone5:": "👨🏿‍❤️‍👨🏿", + ":couple_with_heart_man_man_tone5_tone1:": "👨🏿‍❤️‍👨🏻", + ":couple_with_heart_man_man_tone5_tone2:": "👨🏿‍❤️‍👨🏼", + ":couple_with_heart_man_man_tone5_tone3:": "👨🏿‍❤️‍👨🏽", + ":couple_with_heart_man_man_tone5_tone4:": "👨🏿‍❤️‍👨🏾", + ":couple_with_heart_medium_dark_skin_tone:": "💑🏾", + ":couple_with_heart_medium_light_skin_tone:": "💑🏼", + ":couple_with_heart_medium_skin_tone:": "💑🏽", + ":couple_with_heart_mm:": "👨‍❤️‍👨", + ":couple_with_heart_person_person_dark_skin_tone_light_skin_tone:": "🧑🏿‍❤️‍🧑🏻", + ":couple_with_heart_person_person_dark_skin_tone_medium_dark_skin_tone:": "🧑🏿‍❤️‍🧑🏾", + ":couple_with_heart_person_person_dark_skin_tone_medium_light_skin_tone:": "🧑🏿‍❤️‍🧑🏼", + ":couple_with_heart_person_person_dark_skin_tone_medium_skin_tone:": "🧑🏿‍❤️‍🧑🏽", + ":couple_with_heart_person_person_light_skin_tone_dark_skin_tone:": "🧑🏻‍❤️‍🧑🏿", + ":couple_with_heart_person_person_light_skin_tone_medium_dark_skin_tone:": "🧑🏻‍❤️‍🧑🏾", + ":couple_with_heart_person_person_light_skin_tone_medium_light_skin_tone:": "🧑🏻‍❤️‍🧑🏼", + ":couple_with_heart_person_person_light_skin_tone_medium_skin_tone:": "🧑🏻‍❤️‍🧑🏽", + ":couple_with_heart_person_person_medium_dark_skin_tone_dark_skin_tone:": "🧑🏾‍❤️‍🧑🏿", + ":couple_with_heart_person_person_medium_dark_skin_tone_light_skin_tone:": "🧑🏾‍❤️‍🧑🏻", + ":couple_with_heart_person_person_medium_dark_skin_tone_medium_light_skin_tone:": "🧑🏾‍❤️‍🧑🏼", + ":couple_with_heart_person_person_medium_dark_skin_tone_medium_skin_tone:": "🧑🏾‍❤️‍🧑🏽", + ":couple_with_heart_person_person_medium_light_skin_tone_dark_skin_tone:": "🧑🏼‍❤️‍🧑🏿", + ":couple_with_heart_person_person_medium_light_skin_tone_light_skin_tone:": "🧑🏼‍❤️‍🧑🏻", + ":couple_with_heart_person_person_medium_light_skin_tone_medium_dark_skin_tone:": "🧑🏼‍❤️‍🧑🏾", + ":couple_with_heart_person_person_medium_light_skin_tone_medium_skin_tone:": "🧑🏼‍❤️‍🧑🏽", + ":couple_with_heart_person_person_medium_skin_tone_dark_skin_tone:": "🧑🏽‍❤️‍🧑🏿", + ":couple_with_heart_person_person_medium_skin_tone_light_skin_tone:": "🧑🏽‍❤️‍🧑🏻", + ":couple_with_heart_person_person_medium_skin_tone_medium_dark_skin_tone:": "🧑🏽‍❤️‍🧑🏾", + ":couple_with_heart_person_person_medium_skin_tone_medium_light_skin_tone:": "🧑🏽‍❤️‍🧑🏼", + ":couple_with_heart_person_person_tone1_tone2:": "🧑🏻‍❤️‍🧑🏼", + ":couple_with_heart_person_person_tone1_tone3:": "🧑🏻‍❤️‍🧑🏽", + ":couple_with_heart_person_person_tone1_tone4:": "🧑🏻‍❤️‍🧑🏾", + ":couple_with_heart_person_person_tone1_tone5:": "🧑🏻‍❤️‍🧑🏿", + ":couple_with_heart_person_person_tone2_tone1:": "🧑🏼‍❤️‍🧑🏻", + ":couple_with_heart_person_person_tone2_tone3:": "🧑🏼‍❤️‍🧑🏽", + ":couple_with_heart_person_person_tone2_tone4:": "🧑🏼‍❤️‍🧑🏾", + ":couple_with_heart_person_person_tone2_tone5:": "🧑🏼‍❤️‍🧑🏿", + ":couple_with_heart_person_person_tone3_tone1:": "🧑🏽‍❤️‍🧑🏻", + ":couple_with_heart_person_person_tone3_tone2:": "🧑🏽‍❤️‍🧑🏼", + ":couple_with_heart_person_person_tone3_tone4:": "🧑🏽‍❤️‍🧑🏾", + ":couple_with_heart_person_person_tone3_tone5:": "🧑🏽‍❤️‍🧑🏿", + ":couple_with_heart_person_person_tone4_tone1:": "🧑🏾‍❤️‍🧑🏻", + ":couple_with_heart_person_person_tone4_tone2:": "🧑🏾‍❤️‍🧑🏼", + ":couple_with_heart_person_person_tone4_tone3:": "🧑🏾‍❤️‍🧑🏽", + ":couple_with_heart_person_person_tone4_tone5:": "🧑🏾‍❤️‍🧑🏿", + ":couple_with_heart_person_person_tone5_tone1:": "🧑🏿‍❤️‍🧑🏻", + ":couple_with_heart_person_person_tone5_tone2:": "🧑🏿‍❤️‍🧑🏼", + ":couple_with_heart_person_person_tone5_tone3:": "🧑🏿‍❤️‍🧑🏽", + ":couple_with_heart_person_person_tone5_tone4:": "🧑🏿‍❤️‍🧑🏾", + ":couple_with_heart_tone1:": "💑🏻", + ":couple_with_heart_tone2:": "💑🏼", + ":couple_with_heart_tone3:": "💑🏽", + ":couple_with_heart_tone4:": "💑🏾", + ":couple_with_heart_tone5:": "💑🏿", + ":couple_with_heart_woman_man:": "👩‍❤️‍👨", + ":couple_with_heart_woman_man_dark_skin_tone:": "👩🏿‍❤️‍👨🏿", + ":couple_with_heart_woman_man_dark_skin_tone_light_skin_tone:": "👩🏿‍❤️‍👨🏻", + ":couple_with_heart_woman_man_dark_skin_tone_medium_dark_skin_tone:": "👩🏿‍❤️‍👨🏾", + ":couple_with_heart_woman_man_dark_skin_tone_medium_light_skin_tone:": "👩🏿‍❤️‍👨🏼", + ":couple_with_heart_woman_man_dark_skin_tone_medium_skin_tone:": "👩🏿‍❤️‍👨🏽", + ":couple_with_heart_woman_man_light_skin_tone:": "👩🏻‍❤️‍👨🏻", + ":couple_with_heart_woman_man_light_skin_tone_dark_skin_tone:": "👩🏻‍❤️‍👨🏿", + ":couple_with_heart_woman_man_light_skin_tone_medium_dark_skin_tone:": "👩🏻‍❤️‍👨🏾", + ":couple_with_heart_woman_man_light_skin_tone_medium_light_skin_tone:": "👩🏻‍❤️‍👨🏼", + ":couple_with_heart_woman_man_light_skin_tone_medium_skin_tone:": "👩🏻‍❤️‍👨🏽", + ":couple_with_heart_woman_man_medium_dark_skin_tone:": "👩🏾‍❤️‍👨🏾", + ":couple_with_heart_woman_man_medium_dark_skin_tone_dark_skin_tone:": "👩🏾‍❤️‍👨🏿", + ":couple_with_heart_woman_man_medium_dark_skin_tone_light_skin_tone:": "👩🏾‍❤️‍👨🏻", + ":couple_with_heart_woman_man_medium_dark_skin_tone_medium_light_skin_tone:": "👩🏾‍❤️‍👨🏼", + ":couple_with_heart_woman_man_medium_dark_skin_tone_medium_skin_tone:": "👩🏾‍❤️‍👨🏽", + ":couple_with_heart_woman_man_medium_light_skin_tone:": "👩🏼‍❤️‍👨🏼", + ":couple_with_heart_woman_man_medium_light_skin_tone_dark_skin_tone:": "👩🏼‍❤️‍👨🏿", + ":couple_with_heart_woman_man_medium_light_skin_tone_light_skin_tone:": "👩🏼‍❤️‍👨🏻", + ":couple_with_heart_woman_man_medium_light_skin_tone_medium_dark_skin_tone:": "👩🏼‍❤️‍👨🏾", + ":couple_with_heart_woman_man_medium_light_skin_tone_medium_skin_tone:": "👩🏼‍❤️‍👨🏽", + ":couple_with_heart_woman_man_medium_skin_tone:": "👩🏽‍❤️‍👨🏽", + ":couple_with_heart_woman_man_medium_skin_tone_dark_skin_tone:": "👩🏽‍❤️‍👨🏿", + ":couple_with_heart_woman_man_medium_skin_tone_light_skin_tone:": "👩🏽‍❤️‍👨🏻", + ":couple_with_heart_woman_man_medium_skin_tone_medium_dark_skin_tone:": "👩🏽‍❤️‍👨🏾", + ":couple_with_heart_woman_man_medium_skin_tone_medium_light_skin_tone:": "👩🏽‍❤️‍👨🏼", + ":couple_with_heart_woman_man_tone1:": "👩🏻‍❤️‍👨🏻", + ":couple_with_heart_woman_man_tone1_tone2:": "👩🏻‍❤️‍👨🏼", + ":couple_with_heart_woman_man_tone1_tone3:": "👩🏻‍❤️‍👨🏽", + ":couple_with_heart_woman_man_tone1_tone4:": "👩🏻‍❤️‍👨🏾", + ":couple_with_heart_woman_man_tone1_tone5:": "👩🏻‍❤️‍👨🏿", + ":couple_with_heart_woman_man_tone2:": "👩🏼‍❤️‍👨🏼", + ":couple_with_heart_woman_man_tone2_tone1:": "👩🏼‍❤️‍👨🏻", + ":couple_with_heart_woman_man_tone2_tone3:": "👩🏼‍❤️‍👨🏽", + ":couple_with_heart_woman_man_tone2_tone4:": "👩🏼‍❤️‍👨🏾", + ":couple_with_heart_woman_man_tone2_tone5:": "👩🏼‍❤️‍👨🏿", + ":couple_with_heart_woman_man_tone3:": "👩🏽‍❤️‍👨🏽", + ":couple_with_heart_woman_man_tone3_tone1:": "👩🏽‍❤️‍👨🏻", + ":couple_with_heart_woman_man_tone3_tone2:": "👩🏽‍❤️‍👨🏼", + ":couple_with_heart_woman_man_tone3_tone4:": "👩🏽‍❤️‍👨🏾", + ":couple_with_heart_woman_man_tone3_tone5:": "👩🏽‍❤️‍👨🏿", + ":couple_with_heart_woman_man_tone4:": "👩🏾‍❤️‍👨🏾", + ":couple_with_heart_woman_man_tone4_tone1:": "👩🏾‍❤️‍👨🏻", + ":couple_with_heart_woman_man_tone4_tone2:": "👩🏾‍❤️‍👨🏼", + ":couple_with_heart_woman_man_tone4_tone3:": "👩🏾‍❤️‍👨🏽", + ":couple_with_heart_woman_man_tone4_tone5:": "👩🏾‍❤️‍👨🏿", + ":couple_with_heart_woman_man_tone5:": "👩🏿‍❤️‍👨🏿", + ":couple_with_heart_woman_man_tone5_tone1:": "👩🏿‍❤️‍👨🏻", + ":couple_with_heart_woman_man_tone5_tone2:": "👩🏿‍❤️‍👨🏼", + ":couple_with_heart_woman_man_tone5_tone3:": "👩🏿‍❤️‍👨🏽", + ":couple_with_heart_woman_man_tone5_tone4:": "👩🏿‍❤️‍👨🏾", + ":couple_with_heart_woman_woman:": "👩‍❤️‍👩", + ":couple_with_heart_woman_woman_dark_skin_tone:": "👩🏿‍❤️‍👩🏿", + ":couple_with_heart_woman_woman_dark_skin_tone_light_skin_tone:": "👩🏿‍❤️‍👩🏻", + ":couple_with_heart_woman_woman_dark_skin_tone_medium_dark_skin_tone:": "👩🏿‍❤️‍👩🏾", + ":couple_with_heart_woman_woman_dark_skin_tone_medium_light_skin_tone:": "👩🏿‍❤️‍👩🏼", + ":couple_with_heart_woman_woman_dark_skin_tone_medium_skin_tone:": "👩🏿‍❤️‍👩🏽", + ":couple_with_heart_woman_woman_light_skin_tone:": "👩🏻‍❤️‍👩🏻", + ":couple_with_heart_woman_woman_light_skin_tone_dark_skin_tone:": "👩🏻‍❤️‍👩🏿", + ":couple_with_heart_woman_woman_light_skin_tone_medium_dark_skin_tone:": "👩🏻‍❤️‍👩🏾", + ":couple_with_heart_woman_woman_light_skin_tone_medium_light_skin_tone:": "👩🏻‍❤️‍👩🏼", + ":couple_with_heart_woman_woman_light_skin_tone_medium_skin_tone:": "👩🏻‍❤️‍👩🏽", + ":couple_with_heart_woman_woman_medium_dark_skin_tone:": "👩🏾‍❤️‍👩🏾", + ":couple_with_heart_woman_woman_medium_dark_skin_tone_dark_skin_tone:": "👩🏾‍❤️‍👩🏿", + ":couple_with_heart_woman_woman_medium_dark_skin_tone_light_skin_tone:": "👩🏾‍❤️‍👩🏻", + ":couple_with_heart_woman_woman_medium_dark_skin_tone_medium_light_skin_tone:": "👩🏾‍❤️‍👩🏼", + ":couple_with_heart_woman_woman_medium_dark_skin_tone_medium_skin_tone:": "👩🏾‍❤️‍👩🏽", + ":couple_with_heart_woman_woman_medium_light_skin_tone:": "👩🏼‍❤️‍👩🏼", + ":couple_with_heart_woman_woman_medium_light_skin_tone_dark_skin_tone:": "👩🏼‍❤️‍👩🏿", + ":couple_with_heart_woman_woman_medium_light_skin_tone_light_skin_tone:": "👩🏼‍❤️‍👩🏻", + ":couple_with_heart_woman_woman_medium_light_skin_tone_medium_dark_skin_tone:": "👩🏼‍❤️‍👩🏾", + ":couple_with_heart_woman_woman_medium_light_skin_tone_medium_skin_tone:": "👩🏼‍❤️‍👩🏽", + ":couple_with_heart_woman_woman_medium_skin_tone:": "👩🏽‍❤️‍👩🏽", + ":couple_with_heart_woman_woman_medium_skin_tone_dark_skin_tone:": "👩🏽‍❤️‍👩🏿", + ":couple_with_heart_woman_woman_medium_skin_tone_light_skin_tone:": "👩🏽‍❤️‍👩🏻", + ":couple_with_heart_woman_woman_medium_skin_tone_medium_dark_skin_tone:": "👩🏽‍❤️‍👩🏾", + ":couple_with_heart_woman_woman_medium_skin_tone_medium_light_skin_tone:": "👩🏽‍❤️‍👩🏼", + ":couple_with_heart_woman_woman_tone1:": "👩🏻‍❤️‍👩🏻", + ":couple_with_heart_woman_woman_tone1_tone2:": "👩🏻‍❤️‍👩🏼", + ":couple_with_heart_woman_woman_tone1_tone3:": "👩🏻‍❤️‍👩🏽", + ":couple_with_heart_woman_woman_tone1_tone4:": "👩🏻‍❤️‍👩🏾", + ":couple_with_heart_woman_woman_tone1_tone5:": "👩🏻‍❤️‍👩🏿", + ":couple_with_heart_woman_woman_tone2:": "👩🏼‍❤️‍👩🏼", + ":couple_with_heart_woman_woman_tone2_tone1:": "👩🏼‍❤️‍👩🏻", + ":couple_with_heart_woman_woman_tone2_tone3:": "👩🏼‍❤️‍👩🏽", + ":couple_with_heart_woman_woman_tone2_tone4:": "👩🏼‍❤️‍👩🏾", + ":couple_with_heart_woman_woman_tone2_tone5:": "👩🏼‍❤️‍👩🏿", + ":couple_with_heart_woman_woman_tone3:": "👩🏽‍❤️‍👩🏽", + ":couple_with_heart_woman_woman_tone3_tone1:": "👩🏽‍❤️‍👩🏻", + ":couple_with_heart_woman_woman_tone3_tone2:": "👩🏽‍❤️‍👩🏼", + ":couple_with_heart_woman_woman_tone3_tone4:": "👩🏽‍❤️‍👩🏾", + ":couple_with_heart_woman_woman_tone3_tone5:": "👩🏽‍❤️‍👩🏿", + ":couple_with_heart_woman_woman_tone4:": "👩🏾‍❤️‍👩🏾", + ":couple_with_heart_woman_woman_tone4_tone1:": "👩🏾‍❤️‍👩🏻", + ":couple_with_heart_woman_woman_tone4_tone2:": "👩🏾‍❤️‍👩🏼", + ":couple_with_heart_woman_woman_tone4_tone3:": "👩🏾‍❤️‍👩🏽", + ":couple_with_heart_woman_woman_tone4_tone5:": "👩🏾‍❤️‍👩🏿", + ":couple_with_heart_woman_woman_tone5:": "👩🏿‍❤️‍👩🏿", + ":couple_with_heart_woman_woman_tone5_tone1:": "👩🏿‍❤️‍👩🏻", + ":couple_with_heart_woman_woman_tone5_tone2:": "👩🏿‍❤️‍👩🏼", + ":couple_with_heart_woman_woman_tone5_tone3:": "👩🏿‍❤️‍👩🏽", + ":couple_with_heart_woman_woman_tone5_tone4:": "👩🏿‍❤️‍👩🏾", + ":couple_with_heart_ww:": "👩‍❤️‍👩", + ":couple_ww:": "👩‍❤️‍👩", + ":couplekiss:": "💏", + ":couplekiss_man_man:": "👨‍❤️‍💋‍👨", + ":couplekiss_man_woman:": "💏", + ":couplekiss_mm:": "👨‍❤️‍💋‍👨", + ":couplekiss_woman_woman:": "👩‍❤️‍💋‍👩", + ":couplekiss_ww:": "👩‍❤️‍💋‍👩", + ":cow2:": "🐄", + ":cow:": "🐮", + ":cowboy:": "🤠", + ":cowboy_hat_face:": "🤠", + ":cp:": "🇨🇵", + ":cr:": "🇨🇷", + ":crab:": "🦀", + ":crayon:": "🖍️", + ":credit_card:": "💳", + ":crescent_moon:": "🌙", + ":cricket:": "🦗", + ":cricket_bat_ball:": "🏏", + ":cricket_game:": "🏏", + ":croatia:": "🇭🇷", + ":crocodile:": "🐊", + ":croissant:": "🥐", + ":cross:": "✝️", + ":crossed_fingers:": "🤞", + ":crossed_flags:": "🎌", + ":crossed_swords:": "⚔️", + ":crown:": "👑", + ":cruise_ship:": "🛳️", + ":cry:": "😢", + ":crying_cat_face:": "😿", + ":crystal_ball:": "🔮", + ":cu:": "🇨🇺", + ":cuba:": "🇨🇺", + ":cucumber:": "🥒", + ":cup_with_straw:": "🥤", + ":cupcake:": "🧁", + ":cupid:": "💘", + ":curacao:": "🇨🇼", + ":curling_stone:": "🥌", + ":curly_haired:": "🦱", + ":curly_loop:": "➰", + ":currency_exchange:": "💱", + ":curry:": "🍛", + ":custard:": "🍮", + ":customs:": "🛃", + ":cut_of_meat:": "🥩", + ":cv:": "🇨🇻", + ":cw:": "🇨🇼", + ":cx:": "🇨🇽", + ":cy:": "🇨🇾", + ":cyclone:": "🌀", + ":cyprus:": "🇨🇾", + ":cz:": "🇨🇿", + ":czech_republic:": "🇨🇿", + ":dagger:": "🗡️", + ":dagger_knife:": "🗡️", + ":dancer:": "💃", + ":dancer_tone1:": "💃🏻", + ":dancer_tone2:": "💃🏼", + ":dancer_tone3:": "💃🏽", + ":dancer_tone4:": "💃🏾", + ":dancer_tone5:": "💃🏿", + ":dancers:": "👯", + ":dancing_men:": "👯‍♂️", + ":dancing_women:": "👯", + ":dango:": "🍡", + ":dark_sunglasses:": "🕶️", + ":dart:": "🎯", + ":dash:": "💨", + ":date:": "📅", + ":de:": "🇩🇪", + ":deaf_man:": "🧏‍♂️", + ":deaf_man_dark_skin_tone:": "🧏🏿‍♂️", + ":deaf_man_light_skin_tone:": "🧏🏻‍♂️", + ":deaf_man_medium_dark_skin_tone:": "🧏🏾‍♂️", + ":deaf_man_medium_light_skin_tone:": "🧏🏼‍♂️", + ":deaf_man_medium_skin_tone:": "🧏🏽‍♂️", + ":deaf_man_tone1:": "🧏🏻‍♂️", + ":deaf_man_tone2:": "🧏🏼‍♂️", + ":deaf_man_tone3:": "🧏🏽‍♂️", + ":deaf_man_tone4:": "🧏🏾‍♂️", + ":deaf_man_tone5:": "🧏🏿‍♂️", + ":deaf_person:": "🧏", + ":deaf_person_dark_skin_tone:": "🧏🏿", + ":deaf_person_light_skin_tone:": "🧏🏻", + ":deaf_person_medium_dark_skin_tone:": "🧏🏾", + ":deaf_person_medium_light_skin_tone:": "🧏🏼", + ":deaf_person_medium_skin_tone:": "🧏🏽", + ":deaf_person_tone1:": "🧏🏻", + ":deaf_person_tone2:": "🧏🏼", + ":deaf_person_tone3:": "🧏🏽", + ":deaf_person_tone4:": "🧏🏾", + ":deaf_person_tone5:": "🧏🏿", + ":deaf_woman:": "🧏‍♀️", + ":deaf_woman_dark_skin_tone:": "🧏🏿‍♀️", + ":deaf_woman_light_skin_tone:": "🧏🏻‍♀️", + ":deaf_woman_medium_dark_skin_tone:": "🧏🏾‍♀️", + ":deaf_woman_medium_light_skin_tone:": "🧏🏼‍♀️", + ":deaf_woman_medium_skin_tone:": "🧏🏽‍♀️", + ":deaf_woman_tone1:": "🧏🏻‍♀️", + ":deaf_woman_tone2:": "🧏🏼‍♀️", + ":deaf_woman_tone3:": "🧏🏽‍♀️", + ":deaf_woman_tone4:": "🧏🏾‍♀️", + ":deaf_woman_tone5:": "🧏🏿‍♀️", + ":deciduous_tree:": "🌳", + ":deer:": "🦌", + ":denmark:": "🇩🇰", + ":department_store:": "🏬", + ":derelict_house:": "🏚", + ":derelict_house_building:": "🏚️", + ":desert:": "🏜️", + ":desert_island:": "🏝️", + ":desktop:": "🖥️", + ":desktop_computer:": "🖥️", + ":detective:": "🕵", + ":detective_tone1:": "🕵🏻", + ":detective_tone2:": "🕵🏼", + ":detective_tone3:": "🕵🏽", + ":detective_tone4:": "🕵🏾", + ":detective_tone5:": "🕵🏿", + ":dg:": "🇩🇬", + ":diamond_shape_with_a_dot_inside:": "💠", + ":diamonds:": "♦️", + ":diego_garcia:": "🇩🇬", + ":digit_eight:": "8️", + ":digit_five:": "5️", + ":digit_four:": "4️", + ":digit_nine:": "9️", + ":digit_one:": "1️", + ":digit_seven:": "7️", + ":digit_six:": "6️", + ":digit_three:": "3️", + ":digit_two:": "2️", + ":digit_zero:": "0️", + ":disappointed:": "😞", + ":disappointed_relieved:": "😥", + ":disguised_face:": "🥸", + ":dividers:": "🗂️", + ":diving_mask:": "🤿", + ":diya_lamp:": "🪔", + ":dizzy:": "💫", + ":dizzy_face:": "😵", + ":dj:": "🇩🇯", + ":djibouti:": "🇩🇯", + ":dk:": "🇩🇰", + ":dm:": "🇩🇲", + ":dna:": "🧬", + ":do:": "🇩🇴", + ":do_not_litter:": "🚯", + ":dodo:": "🦤", + ":dog2:": "🐕", + ":dog:": "🐶", + ":dollar:": "💵", + ":dolls:": "🎎", + ":dolphin:": "🐬", + ":dominica:": "🇩🇲", + ":dominican_republic:": "🇩🇴", + ":door:": "🚪", + ":double_vertical_bar:": "⏸️", + ":doughnut:": "🍩", + ":dove:": "🕊️", + ":dove_of_peace:": "🕊️", + ":dragon:": "🐉", + ":dragon_face:": "🐲", + ":dress:": "👗", + ":dromedary_camel:": "🐪", + ":drool:": "🤤", + ":drooling_face:": "🤤", + ":drop_of_blood:": "🩸", + ":droplet:": "💧", + ":drum:": "🥁", + ":drum_with_drumsticks:": "🥁", + ":duck:": "🦆", + ":dumpling:": "🥟", + ":dvd:": "📀", + ":dz:": "🇩🇿", + ":e-mail:": "📧", + ":ea:": "🇪🇦", + ":eagle:": "🦅", + ":ear:": "👂", + ":ear_of_rice:": "🌾", + ":ear_tone1:": "👂🏻", + ":ear_tone2:": "👂🏼", + ":ear_tone3:": "👂🏽", + ":ear_tone4:": "👂🏾", + ":ear_tone5:": "👂🏿", + ":ear_with_hearing_aid:": "🦻", + ":ear_with_hearing_aid_dark_skin_tone:": "🦻🏿", + ":ear_with_hearing_aid_light_skin_tone:": "🦻🏻", + ":ear_with_hearing_aid_medium_dark_skin_tone:": "🦻🏾", + ":ear_with_hearing_aid_medium_light_skin_tone:": "🦻🏼", + ":ear_with_hearing_aid_medium_skin_tone:": "🦻🏽", + ":ear_with_hearing_aid_tone1:": "🦻🏻", + ":ear_with_hearing_aid_tone2:": "🦻🏼", + ":ear_with_hearing_aid_tone3:": "🦻🏽", + ":ear_with_hearing_aid_tone4:": "🦻🏾", + ":ear_with_hearing_aid_tone5:": "🦻🏿", + ":earth_africa:": "🌍", + ":earth_americas:": "🌎", + ":earth_asia:": "🌏", + ":ec:": "🇪🇨", + ":ecuador:": "🇪🇨", + ":ee:": "🇪🇪", + ":eg:": "🇪🇬", + ":egg:": "🥚", + ":eggplant:": "🍆", + ":egypt:": "🇪🇬", + ":eh:": "🇪🇭", + ":eight:": "8️⃣", + ":eight_pointed_black_star:": "✴️", + ":eight_spoked_asterisk:": "✳️", + ":eject:": "⏏️", + ":eject_symbol:": "⏏️", + ":el_salvador:": "🇸🇻", + ":electric_plug:": "🔌", + ":elephant:": "🐘", + ":elevator:": "🛗", + ":elf:": "🧝", + ":elf_dark_skin_tone:": "🧝🏿", + ":elf_light_skin_tone:": "🧝🏻", + ":elf_medium_dark_skin_tone:": "🧝🏾", + ":elf_medium_light_skin_tone:": "🧝🏼", + ":elf_medium_skin_tone:": "🧝🏽", + ":elf_tone1:": "🧝🏻", + ":elf_tone2:": "🧝🏼", + ":elf_tone3:": "🧝🏽", + ":elf_tone4:": "🧝🏾", + ":elf_tone5:": "🧝🏿", + ":email:": "📧", + ":end:": "🔚", + ":england:": "🏴󠁧󠁢󠁥󠁮󠁧󠁿", + ":envelope:": "✉️", + ":envelope_with_arrow:": "📩", + ":equatorial_guinea:": "🇬🇶", + ":er:": "🇪🇷", + ":eritrea:": "🇪🇷", + ":es:": "🇪🇸", + ":estonia:": "🇪🇪", + ":et:": "🇪🇹", + ":ethiopia:": "🇪🇹", + ":eu:": "🇪🇺", + ":euro:": "💶", + ":european_castle:": "🏰", + ":european_post_office:": "🏤", + ":european_union:": "🇪🇺", + ":evergreen_tree:": "🌲", + ":exclamation:": "❗", + ":expecting_woman:": "🤰", + ":expecting_woman_tone1:": "🤰🏻", + ":expecting_woman_tone2:": "🤰🏼", + ":expecting_woman_tone3:": "🤰🏽", + ":expecting_woman_tone4:": "🤰🏾", + ":expecting_woman_tone5:": "🤰🏿", + ":exploding_head:": "🤯", + ":expressionless:": "😑", + ":eye:": "👁️", + ":eye_in_speech_bubble:": "👁️‍🗨️", + ":eye_speech_bubble:": "👁‍🗨", + ":eyeglasses:": "👓", + ":eyes:": "👀", + ":face_exhaling:": "😮‍💨", + ":face_in_clouds:": "😶‍🌫️", + ":face_palm:": "🤦", + ":face_palm_tone1:": "🤦🏻", + ":face_palm_tone2:": "🤦🏼", + ":face_palm_tone3:": "🤦🏽", + ":face_palm_tone4:": "🤦🏾", + ":face_palm_tone5:": "🤦🏿", + ":face_vomiting:": "🤮", + ":face_with_cowboy_hat:": "🤠", + ":face_with_hand_over_mouth:": "🤭", + ":face_with_head_bandage:": "🤕", + ":face_with_monocle:": "🧐", + ":face_with_raised_eyebrow:": "🤨", + ":face_with_rolling_eyes:": "🙄", + ":face_with_spiral_eyes:": "😵‍💫", + ":face_with_symbols_over_mouth:": "🤬", + ":face_with_thermometer:": "🤒", + ":facepalm:": "🤦", + ":facepalm_tone1:": "🤦🏻", + ":facepalm_tone2:": "🤦🏼", + ":facepalm_tone3:": "🤦🏽", + ":facepalm_tone4:": "🤦🏾", + ":facepalm_tone5:": "🤦🏿", + ":factory:": "🏭", + ":factory_worker:": "🧑‍🏭", + ":factory_worker_dark_skin_tone:": "🧑🏿‍🏭", + ":factory_worker_light_skin_tone:": "🧑🏻‍🏭", + ":factory_worker_medium_dark_skin_tone:": "🧑🏾‍🏭", + ":factory_worker_medium_light_skin_tone:": "🧑🏼‍🏭", + ":factory_worker_medium_skin_tone:": "🧑🏽‍🏭", + ":factory_worker_tone1:": "🧑🏻‍🏭", + ":factory_worker_tone2:": "🧑🏼‍🏭", + ":factory_worker_tone3:": "🧑🏽‍🏭", + ":factory_worker_tone4:": "🧑🏾‍🏭", + ":factory_worker_tone5:": "🧑🏿‍🏭", + ":fairy:": "🧚", + ":fairy_dark_skin_tone:": "🧚🏿", + ":fairy_light_skin_tone:": "🧚🏻", + ":fairy_medium_dark_skin_tone:": "🧚🏾", + ":fairy_medium_light_skin_tone:": "🧚🏼", + ":fairy_medium_skin_tone:": "🧚🏽", + ":fairy_tone1:": "🧚🏻", + ":fairy_tone2:": "🧚🏼", + ":fairy_tone3:": "🧚🏽", + ":fairy_tone4:": "🧚🏾", + ":fairy_tone5:": "🧚🏿", + ":falafel:": "🧆", + ":falkland_islands:": "🇫🇰", + ":fallen_leaf:": "🍂", + ":family:": "👪", + ":family_man_boy:": "👨‍👦", + ":family_man_boy_boy:": "👨‍👦‍👦", + ":family_man_girl:": "👨‍👧", + ":family_man_girl_boy:": "👨‍👧‍👦", + ":family_man_girl_girl:": "👨‍👧‍👧", + ":family_man_man_boy:": "👨‍👨‍👦", + ":family_man_man_boy_boy:": "👨‍👨‍👦‍👦", + ":family_man_man_girl:": "👨‍👨‍👧", + ":family_man_man_girl_boy:": "👨‍👨‍👧‍👦", + ":family_man_man_girl_girl:": "👨‍👨‍👧‍👧", + ":family_man_woman_boy:": "👨‍👩‍👦", + ":family_man_woman_boy_boy:": "👨‍👩‍👦‍👦", + ":family_man_woman_girl:": "👨‍👩‍👧", + ":family_man_woman_girl_boy:": "👨‍👩‍👧‍👦", + ":family_man_woman_girl_girl:": "👨‍👩‍👧‍👧", + ":family_mmb:": "👨‍👨‍👦", + ":family_mmbb:": "👨‍👨‍👦‍👦", + ":family_mmg:": "👨‍👨‍👧", + ":family_mmgb:": "👨‍👨‍👧‍👦", + ":family_mmgg:": "👨‍👨‍👧‍👧", + ":family_mwbb:": "👨‍👩‍👦‍👦", + ":family_mwg:": "👨‍👩‍👧", + ":family_mwgb:": "👨‍👩‍👧‍👦", + ":family_mwgg:": "👨‍👩‍👧‍👧", + ":family_woman_boy:": "👩‍👦", + ":family_woman_boy_boy:": "👩‍👦‍👦", + ":family_woman_girl:": "👩‍👧", + ":family_woman_girl_boy:": "👩‍👧‍👦", + ":family_woman_girl_girl:": "👩‍👧‍👧", + ":family_woman_woman_boy:": "👩‍👩‍👦", + ":family_woman_woman_boy_boy:": "👩‍👩‍👦‍👦", + ":family_woman_woman_girl:": "👩‍👩‍👧", + ":family_woman_woman_girl_boy:": "👩‍👩‍👧‍👦", + ":family_woman_woman_girl_girl:": "👩‍👩‍👧‍👧", + ":family_wwb:": "👩‍👩‍👦", + ":family_wwbb:": "👩‍👩‍👦‍👦", + ":family_wwg:": "👩‍👩‍👧", + ":family_wwgb:": "👩‍👩‍👧‍👦", + ":family_wwgg:": "👩‍👩‍👧‍👧", + ":farmer:": "🧑‍🌾", + ":farmer_dark_skin_tone:": "🧑🏿‍🌾", + ":farmer_light_skin_tone:": "🧑🏻‍🌾", + ":farmer_medium_dark_skin_tone:": "🧑🏾‍🌾", + ":farmer_medium_light_skin_tone:": "🧑🏼‍🌾", + ":farmer_medium_skin_tone:": "🧑🏽‍🌾", + ":farmer_tone1:": "🧑🏻‍🌾", + ":farmer_tone2:": "🧑🏼‍🌾", + ":farmer_tone3:": "🧑🏽‍🌾", + ":farmer_tone4:": "🧑🏾‍🌾", + ":farmer_tone5:": "🧑🏿‍🌾", + ":faroe_islands:": "🇫🇴", + ":fast_forward:": "⏩", + ":fax:": "📠", + ":fearful:": "😨", + ":feather:": "🪶", + ":feet:": "🐾", + ":female_detective:": "🕵️‍♀️", + ":female_sign:": "♀️", + ":fencer:": "🤺", + ":fencing:": "🤺", + ":ferris_wheel:": "🎡", + ":ferry:": "⛴️", + ":fi:": "🇫🇮", + ":field_hockey:": "🏑", + ":fiji:": "🇫🇯", + ":file_cabinet:": "🗄️", + ":file_folder:": "📁", + ":film_frames:": "🎞️", + ":film_projector:": "📽️", + ":film_strip:": "🎞", + ":fingers_crossed:": "🤞", + ":fingers_crossed_tone1:": "🤞🏻", + ":fingers_crossed_tone2:": "🤞🏼", + ":fingers_crossed_tone3:": "🤞🏽", + ":fingers_crossed_tone4:": "🤞🏾", + ":fingers_crossed_tone5:": "🤞🏿", + ":finland:": "🇫🇮", + ":fire:": "🔥", + ":fire_engine:": "🚒", + ":fire_extinguisher:": "🧯", + ":firecracker:": "🧨", + ":firefighter:": "🧑‍🚒", + ":firefighter_dark_skin_tone:": "🧑🏿‍🚒", + ":firefighter_light_skin_tone:": "🧑🏻‍🚒", + ":firefighter_medium_dark_skin_tone:": "🧑🏾‍🚒", + ":firefighter_medium_light_skin_tone:": "🧑🏼‍🚒", + ":firefighter_medium_skin_tone:": "🧑🏽‍🚒", + ":firefighter_tone1:": "🧑🏻‍🚒", + ":firefighter_tone2:": "🧑🏼‍🚒", + ":firefighter_tone3:": "🧑🏽‍🚒", + ":firefighter_tone4:": "🧑🏾‍🚒", + ":firefighter_tone5:": "🧑🏿‍🚒", + ":fireworks:": "🎆", + ":first_place:": "🥇", + ":first_place_medal:": "🥇", + ":first_quarter_moon:": "🌓", + ":first_quarter_moon_with_face:": "🌛", + ":fish:": "🐟", + ":fish_cake:": "🍥", + ":fishing_pole_and_fish:": "🎣", + ":fist:": "✊", + ":fist_left:": "🤛", + ":fist_oncoming:": "👊", + ":fist_raised:": "✊", + ":fist_right:": "🤜", + ":fist_tone1:": "✊🏻", + ":fist_tone2:": "✊🏼", + ":fist_tone3:": "✊🏽", + ":fist_tone4:": "✊🏾", + ":fist_tone5:": "✊🏿", + ":five:": "5️⃣", + ":fj:": "🇫🇯", + ":fk:": "🇫🇰", + ":flag_ac:": "🇦🇨", + ":flag_ad:": "🇦🇩", + ":flag_ae:": "🇦🇪", + ":flag_af:": "🇦🇫", + ":flag_ag:": "🇦🇬", + ":flag_ai:": "🇦🇮", + ":flag_al:": "🇦🇱", + ":flag_am:": "🇦🇲", + ":flag_ao:": "🇦🇴", + ":flag_aq:": "🇦🇶", + ":flag_ar:": "🇦🇷", + ":flag_as:": "🇦🇸", + ":flag_at:": "🇦🇹", + ":flag_au:": "🇦🇺", + ":flag_aw:": "🇦🇼", + ":flag_ax:": "🇦🇽", + ":flag_az:": "🇦🇿", + ":flag_ba:": "🇧🇦", + ":flag_bb:": "🇧🇧", + ":flag_bd:": "🇧🇩", + ":flag_be:": "🇧🇪", + ":flag_bf:": "🇧🇫", + ":flag_bg:": "🇧🇬", + ":flag_bh:": "🇧🇭", + ":flag_bi:": "🇧🇮", + ":flag_bj:": "🇧🇯", + ":flag_bl:": "🇧🇱", + ":flag_black:": "🏴", + ":flag_bm:": "🇧🇲", + ":flag_bn:": "🇧🇳", + ":flag_bo:": "🇧🇴", + ":flag_bq:": "🇧🇶", + ":flag_br:": "🇧🇷", + ":flag_bs:": "🇧🇸", + ":flag_bt:": "🇧🇹", + ":flag_bv:": "🇧🇻", + ":flag_bw:": "🇧🇼", + ":flag_by:": "🇧🇾", + ":flag_bz:": "🇧🇿", + ":flag_ca:": "🇨🇦", + ":flag_cc:": "🇨🇨", + ":flag_cd:": "🇨🇩", + ":flag_cf:": "🇨🇫", + ":flag_cg:": "🇨🇬", + ":flag_ch:": "🇨🇭", + ":flag_ci:": "🇨🇮", + ":flag_ck:": "🇨🇰", + ":flag_cl:": "🇨🇱", + ":flag_cm:": "🇨🇲", + ":flag_cn:": "🇨🇳", + ":flag_co:": "🇨🇴", + ":flag_cp:": "🇨🇵", + ":flag_cr:": "🇨🇷", + ":flag_cu:": "🇨🇺", + ":flag_cv:": "🇨🇻", + ":flag_cw:": "🇨🇼", + ":flag_cx:": "🇨🇽", + ":flag_cy:": "🇨🇾", + ":flag_cz:": "🇨🇿", + ":flag_de:": "🇩🇪", + ":flag_dg:": "🇩🇬", + ":flag_dj:": "🇩🇯", + ":flag_dk:": "🇩🇰", + ":flag_dm:": "🇩🇲", + ":flag_do:": "🇩🇴", + ":flag_dz:": "🇩🇿", + ":flag_ea:": "🇪🇦", + ":flag_ec:": "🇪🇨", + ":flag_ee:": "🇪🇪", + ":flag_eg:": "🇪🇬", + ":flag_eh:": "🇪🇭", + ":flag_er:": "🇪🇷", + ":flag_es:": "🇪🇸", + ":flag_et:": "🇪🇹", + ":flag_eu:": "🇪🇺", + ":flag_fi:": "🇫🇮", + ":flag_fj:": "🇫🇯", + ":flag_fk:": "🇫🇰", + ":flag_fm:": "🇫🇲", + ":flag_fo:": "🇫🇴", + ":flag_fr:": "🇫🇷", + ":flag_ga:": "🇬🇦", + ":flag_gb:": "🇬🇧", + ":flag_gd:": "🇬🇩", + ":flag_ge:": "🇬🇪", + ":flag_gf:": "🇬🇫", + ":flag_gg:": "🇬🇬", + ":flag_gh:": "🇬🇭", + ":flag_gi:": "🇬🇮", + ":flag_gl:": "🇬🇱", + ":flag_gm:": "🇬🇲", + ":flag_gn:": "🇬🇳", + ":flag_gp:": "🇬🇵", + ":flag_gq:": "🇬🇶", + ":flag_gr:": "🇬🇷", + ":flag_gs:": "🇬🇸", + ":flag_gt:": "🇬🇹", + ":flag_gu:": "🇬🇺", + ":flag_gw:": "🇬🇼", + ":flag_gy:": "🇬🇾", + ":flag_hk:": "🇭🇰", + ":flag_hm:": "🇭🇲", + ":flag_hn:": "🇭🇳", + ":flag_hr:": "🇭🇷", + ":flag_ht:": "🇭🇹", + ":flag_hu:": "🇭🇺", + ":flag_ic:": "🇮🇨", + ":flag_id:": "🇮🇩", + ":flag_ie:": "🇮🇪", + ":flag_il:": "🇮🇱", + ":flag_im:": "🇮🇲", + ":flag_in:": "🇮🇳", + ":flag_io:": "🇮🇴", + ":flag_iq:": "🇮🇶", + ":flag_ir:": "🇮🇷", + ":flag_is:": "🇮🇸", + ":flag_it:": "🇮🇹", + ":flag_je:": "🇯🇪", + ":flag_jm:": "🇯🇲", + ":flag_jo:": "🇯🇴", + ":flag_jp:": "🇯🇵", + ":flag_ke:": "🇰🇪", + ":flag_kg:": "🇰🇬", + ":flag_kh:": "🇰🇭", + ":flag_ki:": "🇰🇮", + ":flag_km:": "🇰🇲", + ":flag_kn:": "🇰🇳", + ":flag_kp:": "🇰🇵", + ":flag_kr:": "🇰🇷", + ":flag_kw:": "🇰🇼", + ":flag_ky:": "🇰🇾", + ":flag_kz:": "🇰🇿", + ":flag_la:": "🇱🇦", + ":flag_lb:": "🇱🇧", + ":flag_lc:": "🇱🇨", + ":flag_li:": "🇱🇮", + ":flag_lk:": "🇱🇰", + ":flag_lr:": "🇱🇷", + ":flag_ls:": "🇱🇸", + ":flag_lt:": "🇱🇹", + ":flag_lu:": "🇱🇺", + ":flag_lv:": "🇱🇻", + ":flag_ly:": "🇱🇾", + ":flag_ma:": "🇲🇦", + ":flag_mc:": "🇲🇨", + ":flag_md:": "🇲🇩", + ":flag_me:": "🇲🇪", + ":flag_mf:": "🇲🇫", + ":flag_mg:": "🇲🇬", + ":flag_mh:": "🇲🇭", + ":flag_mk:": "🇲🇰", + ":flag_ml:": "🇲🇱", + ":flag_mm:": "🇲🇲", + ":flag_mn:": "🇲🇳", + ":flag_mo:": "🇲🇴", + ":flag_mp:": "🇲🇵", + ":flag_mq:": "🇲🇶", + ":flag_mr:": "🇲🇷", + ":flag_ms:": "🇲🇸", + ":flag_mt:": "🇲🇹", + ":flag_mu:": "🇲🇺", + ":flag_mv:": "🇲🇻", + ":flag_mw:": "🇲🇼", + ":flag_mx:": "🇲🇽", + ":flag_my:": "🇲🇾", + ":flag_mz:": "🇲🇿", + ":flag_na:": "🇳🇦", + ":flag_nc:": "🇳🇨", + ":flag_ne:": "🇳🇪", + ":flag_nf:": "🇳🇫", + ":flag_ng:": "🇳🇬", + ":flag_ni:": "🇳🇮", + ":flag_nl:": "🇳🇱", + ":flag_no:": "🇳🇴", + ":flag_np:": "🇳🇵", + ":flag_nr:": "🇳🇷", + ":flag_nu:": "🇳🇺", + ":flag_nz:": "🇳🇿", + ":flag_om:": "🇴🇲", + ":flag_pa:": "🇵🇦", + ":flag_pe:": "🇵🇪", + ":flag_pf:": "🇵🇫", + ":flag_pg:": "🇵🇬", + ":flag_ph:": "🇵🇭", + ":flag_pk:": "🇵🇰", + ":flag_pl:": "🇵🇱", + ":flag_pm:": "🇵🇲", + ":flag_pn:": "🇵🇳", + ":flag_pr:": "🇵🇷", + ":flag_ps:": "🇵🇸", + ":flag_pt:": "🇵🇹", + ":flag_pw:": "🇵🇼", + ":flag_py:": "🇵🇾", + ":flag_qa:": "🇶🇦", + ":flag_re:": "🇷🇪", + ":flag_ro:": "🇷🇴", + ":flag_rs:": "🇷🇸", + ":flag_ru:": "🇷🇺", + ":flag_rw:": "🇷🇼", + ":flag_sa:": "🇸🇦", + ":flag_sb:": "🇸🇧", + ":flag_sc:": "🇸🇨", + ":flag_sd:": "🇸🇩", + ":flag_se:": "🇸🇪", + ":flag_sg:": "🇸🇬", + ":flag_sh:": "🇸🇭", + ":flag_si:": "🇸🇮", + ":flag_sj:": "🇸🇯", + ":flag_sk:": "🇸🇰", + ":flag_sl:": "🇸🇱", + ":flag_sm:": "🇸🇲", + ":flag_sn:": "🇸🇳", + ":flag_so:": "🇸🇴", + ":flag_sr:": "🇸🇷", + ":flag_ss:": "🇸🇸", + ":flag_st:": "🇸🇹", + ":flag_sv:": "🇸🇻", + ":flag_sx:": "🇸🇽", + ":flag_sy:": "🇸🇾", + ":flag_sz:": "🇸🇿", + ":flag_ta:": "🇹🇦", + ":flag_tc:": "🇹🇨", + ":flag_td:": "🇹🇩", + ":flag_tf:": "🇹🇫", + ":flag_tg:": "🇹🇬", + ":flag_th:": "🇹🇭", + ":flag_tj:": "🇹🇯", + ":flag_tk:": "🇹🇰", + ":flag_tl:": "🇹🇱", + ":flag_tm:": "🇹🇲", + ":flag_tn:": "🇹🇳", + ":flag_to:": "🇹🇴", + ":flag_tr:": "🇹🇷", + ":flag_tt:": "🇹🇹", + ":flag_tv:": "🇹🇻", + ":flag_tw:": "🇹🇼", + ":flag_tz:": "🇹🇿", + ":flag_ua:": "🇺🇦", + ":flag_ug:": "🇺🇬", + ":flag_um:": "🇺🇲", + ":flag_us:": "🇺🇸", + ":flag_uy:": "🇺🇾", + ":flag_uz:": "🇺🇿", + ":flag_va:": "🇻🇦", + ":flag_vc:": "🇻🇨", + ":flag_ve:": "🇻🇪", + ":flag_vg:": "🇻🇬", + ":flag_vi:": "🇻🇮", + ":flag_vn:": "🇻🇳", + ":flag_vu:": "🇻🇺", + ":flag_wf:": "🇼🇫", + ":flag_white:": "🏳️", + ":flag_ws:": "🇼🇸", + ":flag_xk:": "🇽🇰", + ":flag_ye:": "🇾🇪", + ":flag_yt:": "🇾🇹", + ":flag_za:": "🇿🇦", + ":flag_zm:": "🇿🇲", + ":flag_zw:": "🇿🇼", + ":flags:": "🎏", + ":flame:": "🔥", + ":flamingo:": "🦩", + ":flan:": "🍮", + ":flashlight:": "🔦", + ":flatbread:": "🫓", + ":fleur-de-lis:": "⚜️", + ":fleur_de_lis:": "⚜️", + ":flight_arrival:": "🛬", + ":flight_departure:": "🛫", + ":floppy_disk:": "💾", + ":flower_playing_cards:": "🎴", + ":flushed:": "😳", + ":fly:": "🪰", + ":flying_disc:": "🥏", + ":flying_saucer:": "🛸", + ":fm:": "🇫🇲", + ":fo:": "🇫🇴", + ":fog:": "🌫️", + ":foggy:": "🌁", + ":fondue:": "🫕", + ":foot:": "🦶", + ":foot_dark_skin_tone:": "🦶🏿", + ":foot_light_skin_tone:": "🦶🏻", + ":foot_medium_dark_skin_tone:": "🦶🏾", + ":foot_medium_light_skin_tone:": "🦶🏼", + ":foot_medium_skin_tone:": "🦶🏽", + ":foot_tone1:": "🦶🏻", + ":foot_tone2:": "🦶🏼", + ":foot_tone3:": "🦶🏽", + ":foot_tone4:": "🦶🏾", + ":foot_tone5:": "🦶🏿", + ":football:": "🏈", + ":footprints:": "👣", + ":fork_and_knife:": "🍴", + ":fork_and_knife_with_plate:": "🍽️", + ":fork_knife_plate:": "🍽️", + ":fortune_cookie:": "🥠", + ":fountain:": "⛲", + ":fountain_pen:": "🖋", + ":four:": "4️⃣", + ":four_leaf_clover:": "🍀", + ":fox:": "🦊", + ":fox_face:": "🦊", + ":fr:": "🇫🇷", + ":frame_photo:": "🖼️", + ":frame_with_picture:": "🖼️", + ":framed_picture:": "🖼", + ":france:": "🇫🇷", + ":free:": "🆓", + ":french_bread:": "🥖", + ":french_guiana:": "🇬🇫", + ":french_polynesia:": "🇵🇫", + ":french_southern_territories:": "🇹🇫", + ":fried_egg:": "🍳", + ":fried_shrimp:": "🍤", + ":fries:": "🍟", + ":frog:": "🐸", + ":frowning2:": "☹️", + ":frowning:": "😦", + ":frowning_face:": "☹️", + ":frowning_man:": "🙍‍♂️", + ":frowning_woman:": "🙍", + ":fuelpump:": "⛽", + ":full_moon:": "🌕", + ":full_moon_with_face:": "🌝", + ":funeral_urn:": "⚱️", + ":ga:": "🇬🇦", + ":gabon:": "🇬🇦", + ":gambia:": "🇬🇲", + ":game_die:": "🎲", + ":garlic:": "🧄", + ":gay_pride_flag:": "🏳️‍🌈", + ":gb:": "🇬🇧", + ":gd:": "🇬🇩", + ":ge:": "🇬🇪", + ":gear:": "⚙️", + ":gem:": "💎", + ":gemini:": "♊", + ":genie:": "🧞", + ":georgia:": "🇬🇪", + ":germany:": "🇩🇪", + ":gf:": "🇬🇫", + ":gg:": "🇬🇬", + ":gh:": "🇬🇭", + ":ghana:": "🇬🇭", + ":ghost:": "👻", + ":gi:": "🇬🇮", + ":gibraltar:": "🇬🇮", + ":gift:": "🎁", + ":gift_heart:": "💝", + ":giraffe:": "🦒", + ":girl:": "👧", + ":girl_tone1:": "👧🏻", + ":girl_tone2:": "👧🏼", + ":girl_tone3:": "👧🏽", + ":girl_tone4:": "👧🏾", + ":girl_tone5:": "👧🏿", + ":gl:": "🇬🇱", + ":glass_of_milk:": "🥛", + ":globe_with_meridians:": "🌐", + ":gloves:": "🧤", + ":gm:": "🇬🇲", + ":gn:": "🇬🇳", + ":goal:": "🥅", + ":goal_net:": "🥅", + ":goat:": "🐐", + ":goggles:": "🥽", + ":golf:": "⛳", + ":golfer:": "🏌", + ":golfing_man:": "🏌️", + ":golfing_woman:": "🏌️‍♀️", + ":gorilla:": "🦍", + ":gp:": "🇬🇵", + ":gq:": "🇬🇶", + ":gr:": "🇬🇷", + ":grandma:": "👵", + ":grandma_tone1:": "👵🏻", + ":grandma_tone2:": "👵🏼", + ":grandma_tone3:": "👵🏽", + ":grandma_tone4:": "👵🏾", + ":grandma_tone5:": "👵🏿", + ":grapes:": "🍇", + ":great_britain:": "🇬🇧", + ":greece:": "🇬🇷", + ":green_apple:": "🍏", + ":green_book:": "📗", + ":green_circle:": "🟢", + ":green_heart:": "💚", + ":green_salad:": "🥗", + ":green_square:": "🟩", + ":greenland:": "🇬🇱", + ":grenada:": "🇬🇩", + ":grey_exclamation:": "❕", + ":grey_question:": "❔", + ":grimacing:": "😬", + ":grin:": "😁", + ":grinning:": "😀", + ":gs:": "🇬🇸", + ":gt:": "🇬🇹", + ":gu:": "🇬🇺", + ":guadeloupe:": "🇬🇵", + ":guam:": "🇬🇺", + ":guard:": "💂", + ":guard_tone1:": "💂🏻", + ":guard_tone2:": "💂🏼", + ":guard_tone3:": "💂🏽", + ":guard_tone4:": "💂🏾", + ":guard_tone5:": "💂🏿", + ":guardsman:": "💂", + ":guardsman_tone1:": "💂🏻", + ":guardsman_tone2:": "💂🏼", + ":guardsman_tone3:": "💂🏽", + ":guardsman_tone4:": "💂🏾", + ":guardsman_tone5:": "💂🏿", + ":guardswoman:": "💂‍♀️", + ":guatemala:": "🇬🇹", + ":guernsey:": "🇬🇬", + ":guide_dog:": "🦮", + ":guinea:": "🇬🇳", + ":guinea_bissau:": "🇬🇼", + ":guitar:": "🎸", + ":gun:": "🔫", + ":guyana:": "🇬🇾", + ":gw:": "🇬🇼", + ":gy:": "🇬🇾", + ":haircut:": "💇", + ":haircut_man:": "💇‍♂️", + ":haircut_tone1:": "💇🏻", + ":haircut_tone2:": "💇🏼", + ":haircut_tone3:": "💇🏽", + ":haircut_tone4:": "💇🏾", + ":haircut_tone5:": "💇🏿", + ":haircut_woman:": "💇", + ":haiti:": "🇭🇹", + ":hamburger:": "🍔", + ":hammer:": "🔨", + ":hammer_and_pick:": "⚒️", + ":hammer_and_wrench:": "🛠️", + ":hammer_pick:": "⚒️", + ":hamster:": "🐹", + ":hand:": "✋", + ":hand_splayed:": "🖐", + ":hand_splayed_tone1:": "🖐🏻", + ":hand_splayed_tone2:": "🖐🏼", + ":hand_splayed_tone3:": "🖐🏽", + ":hand_splayed_tone4:": "🖐🏾", + ":hand_splayed_tone5:": "🖐🏿", + ":hand_with_index_and_middle_finger_crossed:": "🤞", + ":hand_with_index_and_middle_fingers_crossed_tone1:": "🤞🏻", + ":hand_with_index_and_middle_fingers_crossed_tone2:": "🤞🏼", + ":hand_with_index_and_middle_fingers_crossed_tone3:": "🤞🏽", + ":hand_with_index_and_middle_fingers_crossed_tone4:": "🤞🏾", + ":hand_with_index_and_middle_fingers_crossed_tone5:": "🤞🏿", + ":handbag:": "👜", + ":handball:": "🤾", + ":handball_tone1:": "🤾🏻", + ":handball_tone2:": "🤾🏼", + ":handball_tone3:": "🤾🏽", + ":handball_tone4:": "🤾🏾", + ":handball_tone5:": "🤾🏿", + ":handshake:": "🤝", + ":handshake_tone1:": "🤝🏻", + ":handshake_tone2:": "🤝🏼", + ":handshake_tone3:": "🤝🏽", + ":handshake_tone4:": "🤝🏾", + ":handshake_tone5:": "🤝🏿", + ":hankey:": "💩", + ":hash:": "#️⃣", + ":hatched_chick:": "🐥", + ":hatching_chick:": "🐣", + ":head_bandage:": "🤕", + ":headphones:": "🎧", + ":headstone:": "🪦", + ":health_worker:": "🧑‍⚕️", + ":health_worker_dark_skin_tone:": "🧑🏿‍⚕️", + ":health_worker_light_skin_tone:": "🧑🏻‍⚕️", + ":health_worker_medium_dark_skin_tone:": "🧑🏾‍⚕️", + ":health_worker_medium_light_skin_tone:": "🧑🏼‍⚕️", + ":health_worker_medium_skin_tone:": "🧑🏽‍⚕️", + ":health_worker_tone1:": "🧑🏻‍⚕️", + ":health_worker_tone2:": "🧑🏼‍⚕️", + ":health_worker_tone3:": "🧑🏽‍⚕️", + ":health_worker_tone4:": "🧑🏾‍⚕️", + ":health_worker_tone5:": "🧑🏿‍⚕️", + ":hear_no_evil:": "🙉", + ":heart:": "❤️", + ":heart_decoration:": "💟", + ":heart_exclamation:": "❣️", + ":heart_eyes:": "😍", + ":heart_eyes_cat:": "😻", + ":heart_on_fire:": "❤️‍🔥", + ":heartbeat:": "💓", + ":heartpulse:": "💗", + ":hearts:": "♥️", + ":heavy_check_mark:": "✔️", + ":heavy_division_sign:": "➗", + ":heavy_dollar_sign:": "💲", + ":heavy_heart_exclamation:": "❣️", + ":heavy_heart_exclamation_mark_ornament:": "❣️", + ":heavy_minus_sign:": "➖", + ":heavy_multiplication_x:": "✖️", + ":heavy_plus_sign:": "➕", + ":hedgehog:": "🦔", + ":helicopter:": "🚁", + ":helmet_with_cross:": "⛑️", + ":helmet_with_white_cross:": "⛑️", + ":herb:": "🌿", + ":hibiscus:": "🌺", + ":high_brightness:": "🔆", + ":high_heel:": "👠", + ":hiking_boot:": "🥾", + ":hindu_temple:": "🛕", + ":hippopotamus:": "🦛", + ":hk:": "🇭🇰", + ":hm:": "🇭🇲", + ":hn:": "🇭🇳", + ":hocho:": "🔪", + ":hockey:": "🏒", + ":hole:": "🕳️", + ":homes:": "🏘️", + ":honduras:": "🇭🇳", + ":honey_pot:": "🍯", + ":hong_kong:": "🇭🇰", + ":hook:": "🪝", + ":horse:": "🐴", + ":horse_racing:": "🏇", + ":horse_racing_tone1:": "🏇🏻", + ":horse_racing_tone2:": "🏇🏼", + ":horse_racing_tone3:": "🏇🏽", + ":horse_racing_tone4:": "🏇🏾", + ":horse_racing_tone5:": "🏇🏿", + ":hospital:": "🏥", + ":hot_dog:": "🌭", + ":hot_face:": "🥵", + ":hot_pepper:": "🌶️", + ":hotdog:": "🌭", + ":hotel:": "🏨", + ":hotsprings:": "♨️", + ":hourglass:": "⌛", + ":hourglass_flowing_sand:": "⏳", + ":house:": "🏠", + ":house_abandoned:": "🏚️", + ":house_buildings:": "🏘️", + ":house_with_garden:": "🏡", + ":houses:": "🏘", + ":hr:": "🇭🇷", + ":ht:": "🇭🇹", + ":hu:": "🇭🇺", + ":hugging:": "🤗", + ":hugging_face:": "🤗", + ":hugs:": "🤗", + ":hungary:": "🇭🇺", + ":hushed:": "😯", + ":hut:": "🛖", + ":ic:": "🇮🇨", + ":ice_cream:": "🍨", + ":ice_cube:": "🧊", + ":ice_hockey:": "🏒", + ":ice_skate:": "⛸️", + ":icecream:": "🍦", + ":iceland:": "🇮🇸", + ":id:": "🆔", + ":ideograph_advantage:": "🉐", + ":ie:": "🇮🇪", + ":il:": "🇮🇱", + ":im:": "🇮🇲", + ":imp:": "👿", + ":in:": "🇮🇳", + ":inbox_tray:": "📥", + ":incoming_envelope:": "📨", + ":india:": "🇮🇳", + ":indonesia:": "🇮🇩", + ":infinity:": "♾️", + ":information_desk_person:": "💁", + ":information_desk_person_tone1:": "💁🏻", + ":information_desk_person_tone2:": "💁🏼", + ":information_desk_person_tone3:": "💁🏽", + ":information_desk_person_tone4:": "💁🏾", + ":information_desk_person_tone5:": "💁🏿", + ":information_source:": "ℹ️", + ":innocent:": "😇", + ":interrobang:": "⁉️", + ":io:": "🇮🇴", + ":iphone:": "📱", + ":iq:": "🇮🇶", + ":ir:": "🇮🇷", + ":iran:": "🇮🇷", + ":iraq:": "🇮🇶", + ":ireland:": "🇮🇪", + ":is:": "🇮🇸", + ":island:": "🏝️", + ":isle_of_man:": "🇮🇲", + ":israel:": "🇮🇱", + ":it:": "🇮🇹", + ":italy:": "🇮🇹", + ":izakaya_lantern:": "🏮", + ":jack_o_lantern:": "🎃", + ":jamaica:": "🇯🇲", + ":japan:": "🗾", + ":japanese_castle:": "🏯", + ":japanese_goblin:": "👺", + ":japanese_ogre:": "👹", + ":je:": "🇯🇪", + ":jeans:": "👖", + ":jersey:": "🇯🇪", + ":jigsaw:": "🧩", + ":jm:": "🇯🇲", + ":jo:": "🇯🇴", + ":jordan:": "🇯🇴", + ":joy:": "😂", + ":joy_cat:": "😹", + ":joystick:": "🕹️", + ":jp:": "🇯🇵", + ":judge:": "🧑‍⚖️", + ":judge_dark_skin_tone:": "🧑🏿‍⚖️", + ":judge_light_skin_tone:": "🧑🏻‍⚖️", + ":judge_medium_dark_skin_tone:": "🧑🏾‍⚖️", + ":judge_medium_light_skin_tone:": "🧑🏼‍⚖️", + ":judge_medium_skin_tone:": "🧑🏽‍⚖️", + ":judge_tone1:": "🧑🏻‍⚖️", + ":judge_tone2:": "🧑🏼‍⚖️", + ":judge_tone3:": "🧑🏽‍⚖️", + ":judge_tone4:": "🧑🏾‍⚖️", + ":judge_tone5:": "🧑🏿‍⚖️", + ":juggler:": "🤹", + ":juggler_tone1:": "🤹🏻", + ":juggler_tone2:": "🤹🏼", + ":juggler_tone3:": "🤹🏽", + ":juggler_tone4:": "🤹🏾", + ":juggler_tone5:": "🤹🏿", + ":juggling:": "🤹", + ":juggling_tone1:": "🤹🏻", + ":juggling_tone2:": "🤹🏼", + ":juggling_tone3:": "🤹🏽", + ":juggling_tone4:": "🤹🏾", + ":juggling_tone5:": "🤹🏿", + ":kaaba:": "🕋", + ":kangaroo:": "🦘", + ":karate_uniform:": "🥋", + ":kayak:": "🛶", + ":kazakhstan:": "🇰🇿", + ":ke:": "🇰🇪", + ":kenya:": "🇰🇪", + ":key2:": "🗝️", + ":key:": "🔑", + ":keyboard:": "⌨️", + ":keycap_asterisk:": "*️⃣", + ":keycap_ten:": "🔟", + ":kg:": "🇰🇬", + ":kh:": "🇰🇭", + ":ki:": "🇰🇮", + ":kick_scooter:": "🛴", + ":kimono:": "👘", + ":kiribati:": "🇰🇮", + ":kiss:": "💋", + ":kiss_dark_skin_tone:": "💏🏿", + ":kiss_light_skin_tone:": "💏🏻", + ":kiss_man_man_dark_skin_tone:": "👨🏿‍❤️‍💋‍👨🏿", + ":kiss_man_man_dark_skin_tone_light_skin_tone:": "👨🏿‍❤️‍💋‍👨🏻", + ":kiss_man_man_dark_skin_tone_medium_dark_skin_tone:": "👨🏿‍❤️‍💋‍👨🏾", + ":kiss_man_man_dark_skin_tone_medium_light_skin_tone:": "👨🏿‍❤️‍💋‍👨🏼", + ":kiss_man_man_dark_skin_tone_medium_skin_tone:": "👨🏿‍❤️‍💋‍👨🏽", + ":kiss_man_man_light_skin_tone:": "👨🏻‍❤️‍💋‍👨🏻", + ":kiss_man_man_light_skin_tone_dark_skin_tone:": "👨🏻‍❤️‍💋‍👨🏿", + ":kiss_man_man_light_skin_tone_medium_dark_skin_tone:": "👨🏻‍❤️‍💋‍👨🏾", + ":kiss_man_man_light_skin_tone_medium_light_skin_tone:": "👨🏻‍❤️‍💋‍👨🏼", + ":kiss_man_man_light_skin_tone_medium_skin_tone:": "👨🏻‍❤️‍💋‍👨🏽", + ":kiss_man_man_medium_dark_skin_tone:": "👨🏾‍❤️‍💋‍👨🏾", + ":kiss_man_man_medium_dark_skin_tone_dark_skin_tone:": "👨🏾‍❤️‍💋‍👨🏿", + ":kiss_man_man_medium_dark_skin_tone_light_skin_tone:": "👨🏾‍❤️‍💋‍👨🏻", + ":kiss_man_man_medium_dark_skin_tone_medium_light_skin_tone:": "👨🏾‍❤️‍💋‍👨🏼", + ":kiss_man_man_medium_dark_skin_tone_medium_skin_tone:": "👨🏾‍❤️‍💋‍👨🏽", + ":kiss_man_man_medium_light_skin_tone:": "👨🏼‍❤️‍💋‍👨🏼", + ":kiss_man_man_medium_light_skin_tone_dark_skin_tone:": "👨🏼‍❤️‍💋‍👨🏿", + ":kiss_man_man_medium_light_skin_tone_light_skin_tone:": "👨🏼‍❤️‍💋‍👨🏻", + ":kiss_man_man_medium_light_skin_tone_medium_dark_skin_tone:": "👨🏼‍❤️‍💋‍👨🏾", + ":kiss_man_man_medium_light_skin_tone_medium_skin_tone:": "👨🏼‍❤️‍💋‍👨🏽", + ":kiss_man_man_medium_skin_tone:": "👨🏽‍❤️‍💋‍👨🏽", + ":kiss_man_man_medium_skin_tone_dark_skin_tone:": "👨🏽‍❤️‍💋‍👨🏿", + ":kiss_man_man_medium_skin_tone_light_skin_tone:": "👨🏽‍❤️‍💋‍👨🏻", + ":kiss_man_man_medium_skin_tone_medium_dark_skin_tone:": "👨🏽‍❤️‍💋‍👨🏾", + ":kiss_man_man_medium_skin_tone_medium_light_skin_tone:": "👨🏽‍❤️‍💋‍👨🏼", + ":kiss_man_man_tone1:": "👨🏻‍❤️‍💋‍👨🏻", + ":kiss_man_man_tone1_tone2:": "👨🏻‍❤️‍💋‍👨🏼", + ":kiss_man_man_tone1_tone3:": "👨🏻‍❤️‍💋‍👨🏽", + ":kiss_man_man_tone1_tone4:": "👨🏻‍❤️‍💋‍👨🏾", + ":kiss_man_man_tone1_tone5:": "👨🏻‍❤️‍💋‍👨🏿", + ":kiss_man_man_tone2:": "👨🏼‍❤️‍💋‍👨🏼", + ":kiss_man_man_tone2_tone1:": "👨🏼‍❤️‍💋‍👨🏻", + ":kiss_man_man_tone2_tone3:": "👨🏼‍❤️‍💋‍👨🏽", + ":kiss_man_man_tone2_tone4:": "👨🏼‍❤️‍💋‍👨🏾", + ":kiss_man_man_tone2_tone5:": "👨🏼‍❤️‍💋‍👨🏿", + ":kiss_man_man_tone3:": "👨🏽‍❤️‍💋‍👨🏽", + ":kiss_man_man_tone3_tone1:": "👨🏽‍❤️‍💋‍👨🏻", + ":kiss_man_man_tone3_tone2:": "👨🏽‍❤️‍💋‍👨🏼", + ":kiss_man_man_tone3_tone4:": "👨🏽‍❤️‍💋‍👨🏾", + ":kiss_man_man_tone3_tone5:": "👨🏽‍❤️‍💋‍👨🏿", + ":kiss_man_man_tone4:": "👨🏾‍❤️‍💋‍👨🏾", + ":kiss_man_man_tone4_tone1:": "👨🏾‍❤️‍💋‍👨🏻", + ":kiss_man_man_tone4_tone2:": "👨🏾‍❤️‍💋‍👨🏼", + ":kiss_man_man_tone4_tone3:": "👨🏾‍❤️‍💋‍👨🏽", + ":kiss_man_man_tone4_tone5:": "👨🏾‍❤️‍💋‍👨🏿", + ":kiss_man_man_tone5:": "👨🏿‍❤️‍💋‍👨🏿", + ":kiss_man_man_tone5_tone1:": "👨🏿‍❤️‍💋‍👨🏻", + ":kiss_man_man_tone5_tone2:": "👨🏿‍❤️‍💋‍👨🏼", + ":kiss_man_man_tone5_tone3:": "👨🏿‍❤️‍💋‍👨🏽", + ":kiss_man_man_tone5_tone4:": "👨🏿‍❤️‍💋‍👨🏾", + ":kiss_medium_dark_skin_tone:": "💏🏾", + ":kiss_medium_light_skin_tone:": "💏🏼", + ":kiss_medium_skin_tone:": "💏🏽", + ":kiss_mm:": "👨‍❤️‍💋‍👨", + ":kiss_person_person_dark_skin_tone_light_skin_tone:": "🧑🏿‍❤️‍💋‍🧑🏻", + ":kiss_person_person_dark_skin_tone_medium_dark_skin_tone:": "🧑🏿‍❤️‍💋‍🧑🏾", + ":kiss_person_person_dark_skin_tone_medium_light_skin_tone:": "🧑🏿‍❤️‍💋‍🧑🏼", + ":kiss_person_person_dark_skin_tone_medium_skin_tone:": "🧑🏿‍❤️‍💋‍🧑🏽", + ":kiss_person_person_light_skin_tone_dark_skin_tone:": "🧑🏻‍❤️‍💋‍🧑🏿", + ":kiss_person_person_light_skin_tone_medium_dark_skin_tone:": "🧑🏻‍❤️‍💋‍🧑🏾", + ":kiss_person_person_light_skin_tone_medium_light_skin_tone:": "🧑🏻‍❤️‍💋‍🧑🏼", + ":kiss_person_person_light_skin_tone_medium_skin_tone:": "🧑🏻‍❤️‍💋‍🧑🏽", + ":kiss_person_person_medium_dark_skin_tone_dark_skin_tone:": "🧑🏾‍❤️‍💋‍🧑🏿", + ":kiss_person_person_medium_dark_skin_tone_light_skin_tone:": "🧑🏾‍❤️‍💋‍🧑🏻", + ":kiss_person_person_medium_dark_skin_tone_medium_light_skin_tone:": "🧑🏾‍❤️‍💋‍🧑🏼", + ":kiss_person_person_medium_dark_skin_tone_medium_skin_tone:": "🧑🏾‍❤️‍💋‍🧑🏽", + ":kiss_person_person_medium_light_skin_tone_dark_skin_tone:": "🧑🏼‍❤️‍💋‍🧑🏿", + ":kiss_person_person_medium_light_skin_tone_light_skin_tone:": "🧑🏼‍❤️‍💋‍🧑🏻", + ":kiss_person_person_medium_light_skin_tone_medium_dark_skin_tone:": "🧑🏼‍❤️‍💋‍🧑🏾", + ":kiss_person_person_medium_light_skin_tone_medium_skin_tone:": "🧑🏼‍❤️‍💋‍🧑🏽", + ":kiss_person_person_medium_skin_tone_dark_skin_tone:": "🧑🏽‍❤️‍💋‍🧑🏿", + ":kiss_person_person_medium_skin_tone_light_skin_tone:": "🧑🏽‍❤️‍💋‍🧑🏻", + ":kiss_person_person_medium_skin_tone_medium_dark_skin_tone:": "🧑🏽‍❤️‍💋‍🧑🏾", + ":kiss_person_person_medium_skin_tone_medium_light_skin_tone:": "🧑🏽‍❤️‍💋‍🧑🏼", + ":kiss_person_person_tone1_tone2:": "🧑🏻‍❤️‍💋‍🧑🏼", + ":kiss_person_person_tone1_tone3:": "🧑🏻‍❤️‍💋‍🧑🏽", + ":kiss_person_person_tone1_tone4:": "🧑🏻‍❤️‍💋‍🧑🏾", + ":kiss_person_person_tone1_tone5:": "🧑🏻‍❤️‍💋‍🧑🏿", + ":kiss_person_person_tone2_tone1:": "🧑🏼‍❤️‍💋‍🧑🏻", + ":kiss_person_person_tone2_tone3:": "🧑🏼‍❤️‍💋‍🧑🏽", + ":kiss_person_person_tone2_tone4:": "🧑🏼‍❤️‍💋‍🧑🏾", + ":kiss_person_person_tone2_tone5:": "🧑🏼‍❤️‍💋‍🧑🏿", + ":kiss_person_person_tone3_tone1:": "🧑🏽‍❤️‍💋‍🧑🏻", + ":kiss_person_person_tone3_tone2:": "🧑🏽‍❤️‍💋‍🧑🏼", + ":kiss_person_person_tone3_tone4:": "🧑🏽‍❤️‍💋‍🧑🏾", + ":kiss_person_person_tone3_tone5:": "🧑🏽‍❤️‍💋‍🧑🏿", + ":kiss_person_person_tone4_tone1:": "🧑🏾‍❤️‍💋‍🧑🏻", + ":kiss_person_person_tone4_tone2:": "🧑🏾‍❤️‍💋‍🧑🏼", + ":kiss_person_person_tone4_tone3:": "🧑🏾‍❤️‍💋‍🧑🏽", + ":kiss_person_person_tone4_tone5:": "🧑🏾‍❤️‍💋‍🧑🏿", + ":kiss_person_person_tone5_tone1:": "🧑🏿‍❤️‍💋‍🧑🏻", + ":kiss_person_person_tone5_tone2:": "🧑🏿‍❤️‍💋‍🧑🏼", + ":kiss_person_person_tone5_tone3:": "🧑🏿‍❤️‍💋‍🧑🏽", + ":kiss_person_person_tone5_tone4:": "🧑🏿‍❤️‍💋‍🧑🏾", + ":kiss_tone1:": "💏🏻", + ":kiss_tone2:": "💏🏼", + ":kiss_tone3:": "💏🏽", + ":kiss_tone4:": "💏🏾", + ":kiss_tone5:": "💏🏿", + ":kiss_woman_man:": "👩‍❤️‍💋‍👨", + ":kiss_woman_man_dark_skin_tone:": "👩🏿‍❤️‍💋‍👨🏿", + ":kiss_woman_man_dark_skin_tone_light_skin_tone:": "👩🏿‍❤️‍💋‍👨🏻", + ":kiss_woman_man_dark_skin_tone_medium_dark_skin_tone:": "👩🏿‍❤️‍💋‍👨🏾", + ":kiss_woman_man_dark_skin_tone_medium_light_skin_tone:": "👩🏿‍❤️‍💋‍👨🏼", + ":kiss_woman_man_dark_skin_tone_medium_skin_tone:": "👩🏿‍❤️‍💋‍👨🏽", + ":kiss_woman_man_light_skin_tone:": "👩🏻‍❤️‍💋‍👨🏻", + ":kiss_woman_man_light_skin_tone_dark_skin_tone:": "👩🏻‍❤️‍💋‍👨🏿", + ":kiss_woman_man_light_skin_tone_medium_dark_skin_tone:": "👩🏻‍❤️‍💋‍👨🏾", + ":kiss_woman_man_light_skin_tone_medium_light_skin_tone:": "👩🏻‍❤️‍💋‍👨🏼", + ":kiss_woman_man_light_skin_tone_medium_skin_tone:": "👩🏻‍❤️‍💋‍👨🏽", + ":kiss_woman_man_medium_dark_skin_tone:": "👩🏾‍❤️‍💋‍👨🏾", + ":kiss_woman_man_medium_dark_skin_tone_dark_skin_tone:": "👩🏾‍❤️‍💋‍👨🏿", + ":kiss_woman_man_medium_dark_skin_tone_light_skin_tone:": "👩🏾‍❤️‍💋‍👨🏻", + ":kiss_woman_man_medium_dark_skin_tone_medium_light_skin_tone:": "👩🏾‍❤️‍💋‍👨🏼", + ":kiss_woman_man_medium_dark_skin_tone_medium_skin_tone:": "👩🏾‍❤️‍💋‍👨🏽", + ":kiss_woman_man_medium_light_skin_tone:": "👩🏼‍❤️‍💋‍👨🏼", + ":kiss_woman_man_medium_light_skin_tone_dark_skin_tone:": "👩🏼‍❤️‍💋‍👨🏿", + ":kiss_woman_man_medium_light_skin_tone_light_skin_tone:": "👩🏼‍❤️‍💋‍👨🏻", + ":kiss_woman_man_medium_light_skin_tone_medium_dark_skin_tone:": "👩🏼‍❤️‍💋‍👨🏾", + ":kiss_woman_man_medium_light_skin_tone_medium_skin_tone:": "👩🏼‍❤️‍💋‍👨🏽", + ":kiss_woman_man_medium_skin_tone:": "👩🏽‍❤️‍💋‍👨🏽", + ":kiss_woman_man_medium_skin_tone_dark_skin_tone:": "👩🏽‍❤️‍💋‍👨🏿", + ":kiss_woman_man_medium_skin_tone_light_skin_tone:": "👩🏽‍❤️‍💋‍👨🏻", + ":kiss_woman_man_medium_skin_tone_medium_dark_skin_tone:": "👩🏽‍❤️‍💋‍👨🏾", + ":kiss_woman_man_medium_skin_tone_medium_light_skin_tone:": "👩🏽‍❤️‍💋‍👨🏼", + ":kiss_woman_man_tone1:": "👩🏻‍❤️‍💋‍👨🏻", + ":kiss_woman_man_tone1_tone2:": "👩🏻‍❤️‍💋‍👨🏼", + ":kiss_woman_man_tone1_tone3:": "👩🏻‍❤️‍💋‍👨🏽", + ":kiss_woman_man_tone1_tone4:": "👩🏻‍❤️‍💋‍👨🏾", + ":kiss_woman_man_tone1_tone5:": "👩🏻‍❤️‍💋‍👨🏿", + ":kiss_woman_man_tone2:": "👩🏼‍❤️‍💋‍👨🏼", + ":kiss_woman_man_tone2_tone1:": "👩🏼‍❤️‍💋‍👨🏻", + ":kiss_woman_man_tone2_tone3:": "👩🏼‍❤️‍💋‍👨🏽", + ":kiss_woman_man_tone2_tone4:": "👩🏼‍❤️‍💋‍👨🏾", + ":kiss_woman_man_tone2_tone5:": "👩🏼‍❤️‍💋‍👨🏿", + ":kiss_woman_man_tone3:": "👩🏽‍❤️‍💋‍👨🏽", + ":kiss_woman_man_tone3_tone1:": "👩🏽‍❤️‍💋‍👨🏻", + ":kiss_woman_man_tone3_tone2:": "👩🏽‍❤️‍💋‍👨🏼", + ":kiss_woman_man_tone3_tone4:": "👩🏽‍❤️‍💋‍👨🏾", + ":kiss_woman_man_tone3_tone5:": "👩🏽‍❤️‍💋‍👨🏿", + ":kiss_woman_man_tone4:": "👩🏾‍❤️‍💋‍👨🏾", + ":kiss_woman_man_tone4_tone1:": "👩🏾‍❤️‍💋‍👨🏻", + ":kiss_woman_man_tone4_tone2:": "👩🏾‍❤️‍💋‍👨🏼", + ":kiss_woman_man_tone4_tone3:": "👩🏾‍❤️‍💋‍👨🏽", + ":kiss_woman_man_tone4_tone5:": "👩🏾‍❤️‍💋‍👨🏿", + ":kiss_woman_man_tone5:": "👩🏿‍❤️‍💋‍👨🏿", + ":kiss_woman_man_tone5_tone1:": "👩🏿‍❤️‍💋‍👨🏻", + ":kiss_woman_man_tone5_tone2:": "👩🏿‍❤️‍💋‍👨🏼", + ":kiss_woman_man_tone5_tone3:": "👩🏿‍❤️‍💋‍👨🏽", + ":kiss_woman_man_tone5_tone4:": "👩🏿‍❤️‍💋‍👨🏾", + ":kiss_woman_woman_dark_skin_tone:": "👩🏿‍❤️‍💋‍👩🏿", + ":kiss_woman_woman_dark_skin_tone_light_skin_tone:": "👩🏿‍❤️‍💋‍👩🏻", + ":kiss_woman_woman_dark_skin_tone_medium_dark_skin_tone:": "👩🏿‍❤️‍💋‍👩🏾", + ":kiss_woman_woman_dark_skin_tone_medium_light_skin_tone:": "👩🏿‍❤️‍💋‍👩🏼", + ":kiss_woman_woman_dark_skin_tone_medium_skin_tone:": "👩🏿‍❤️‍💋‍👩🏽", + ":kiss_woman_woman_light_skin_tone:": "👩🏻‍❤️‍💋‍👩🏻", + ":kiss_woman_woman_light_skin_tone_dark_skin_tone:": "👩🏻‍❤️‍💋‍👩🏿", + ":kiss_woman_woman_light_skin_tone_medium_dark_skin_tone:": "👩🏻‍❤️‍💋‍👩🏾", + ":kiss_woman_woman_light_skin_tone_medium_light_skin_tone:": "👩🏻‍❤️‍💋‍👩🏼", + ":kiss_woman_woman_light_skin_tone_medium_skin_tone:": "👩🏻‍❤️‍💋‍👩🏽", + ":kiss_woman_woman_medium_dark_skin_tone:": "👩🏾‍❤️‍💋‍👩🏾", + ":kiss_woman_woman_medium_dark_skin_tone_dark_skin_tone:": "👩🏾‍❤️‍💋‍👩🏿", + ":kiss_woman_woman_medium_dark_skin_tone_light_skin_tone:": "👩🏾‍❤️‍💋‍👩🏻", + ":kiss_woman_woman_medium_dark_skin_tone_medium_light_skin_tone:": "👩🏾‍❤️‍💋‍👩🏼", + ":kiss_woman_woman_medium_dark_skin_tone_medium_skin_tone:": "👩🏾‍❤️‍💋‍👩🏽", + ":kiss_woman_woman_medium_light_skin_tone:": "👩🏼‍❤️‍💋‍👩🏼", + ":kiss_woman_woman_medium_light_skin_tone_dark_skin_tone:": "👩🏼‍❤️‍💋‍👩🏿", + ":kiss_woman_woman_medium_light_skin_tone_light_skin_tone:": "👩🏼‍❤️‍💋‍👩🏻", + ":kiss_woman_woman_medium_light_skin_tone_medium_dark_skin_tone:": "👩🏼‍❤️‍💋‍👩🏾", + ":kiss_woman_woman_medium_light_skin_tone_medium_skin_tone:": "👩🏼‍❤️‍💋‍👩🏽", + ":kiss_woman_woman_medium_skin_tone:": "👩🏽‍❤️‍💋‍👩🏽", + ":kiss_woman_woman_medium_skin_tone_dark_skin_tone:": "👩🏽‍❤️‍💋‍👩🏿", + ":kiss_woman_woman_medium_skin_tone_light_skin_tone:": "👩🏽‍❤️‍💋‍👩🏻", + ":kiss_woman_woman_medium_skin_tone_medium_dark_skin_tone:": "👩🏽‍❤️‍💋‍👩🏾", + ":kiss_woman_woman_medium_skin_tone_medium_light_skin_tone:": "👩🏽‍❤️‍💋‍👩🏼", + ":kiss_woman_woman_tone1:": "👩🏻‍❤️‍💋‍👩🏻", + ":kiss_woman_woman_tone1_tone2:": "👩🏻‍❤️‍💋‍👩🏼", + ":kiss_woman_woman_tone1_tone3:": "👩🏻‍❤️‍💋‍👩🏽", + ":kiss_woman_woman_tone1_tone4:": "👩🏻‍❤️‍💋‍👩🏾", + ":kiss_woman_woman_tone1_tone5:": "👩🏻‍❤️‍💋‍👩🏿", + ":kiss_woman_woman_tone2:": "👩🏼‍❤️‍💋‍👩🏼", + ":kiss_woman_woman_tone2_tone1:": "👩🏼‍❤️‍💋‍👩🏻", + ":kiss_woman_woman_tone2_tone3:": "👩🏼‍❤️‍💋‍👩🏽", + ":kiss_woman_woman_tone2_tone4:": "👩🏼‍❤️‍💋‍👩🏾", + ":kiss_woman_woman_tone2_tone5:": "👩🏼‍❤️‍💋‍👩🏿", + ":kiss_woman_woman_tone3:": "👩🏽‍❤️‍💋‍👩🏽", + ":kiss_woman_woman_tone3_tone1:": "👩🏽‍❤️‍💋‍👩🏻", + ":kiss_woman_woman_tone3_tone2:": "👩🏽‍❤️‍💋‍👩🏼", + ":kiss_woman_woman_tone3_tone4:": "👩🏽‍❤️‍💋‍👩🏾", + ":kiss_woman_woman_tone3_tone5:": "👩🏽‍❤️‍💋‍👩🏿", + ":kiss_woman_woman_tone4:": "👩🏾‍❤️‍💋‍👩🏾", + ":kiss_woman_woman_tone4_tone1:": "👩🏾‍❤️‍💋‍👩🏻", + ":kiss_woman_woman_tone4_tone2:": "👩🏾‍❤️‍💋‍👩🏼", + ":kiss_woman_woman_tone4_tone3:": "👩🏾‍❤️‍💋‍👩🏽", + ":kiss_woman_woman_tone4_tone5:": "👩🏾‍❤️‍💋‍👩🏿", + ":kiss_woman_woman_tone5:": "👩🏿‍❤️‍💋‍👩🏿", + ":kiss_woman_woman_tone5_tone1:": "👩🏿‍❤️‍💋‍👩🏻", + ":kiss_woman_woman_tone5_tone2:": "👩🏿‍❤️‍💋‍👩🏼", + ":kiss_woman_woman_tone5_tone3:": "👩🏿‍❤️‍💋‍👩🏽", + ":kiss_woman_woman_tone5_tone4:": "👩🏿‍❤️‍💋‍👩🏾", + ":kiss_ww:": "👩‍❤️‍💋‍👩", + ":kissing:": "😗", + ":kissing_cat:": "😽", + ":kissing_closed_eyes:": "😚", + ":kissing_heart:": "😘", + ":kissing_smiling_eyes:": "😙", + ":kite:": "🪁", + ":kiwi:": "🥝", + ":kiwi_fruit:": "🥝", + ":kiwifruit:": "🥝", + ":km:": "🇰🇲", + ":kn:": "🇰🇳", + ":knife:": "🔪", + ":knot:": "🪢", + ":koala:": "🐨", + ":koko:": "🈁", + ":korea:": "🇰🇷", + ":kosovo:": "🇽🇰", + ":kp:": "🇰🇵", + ":kr:": "🇰🇷", + ":kuwait:": "🇰🇼", + ":kw:": "🇰🇼", + ":ky:": "🇰🇾", + ":kyrgyzstan:": "🇰🇬", + ":kz:": "🇰🇿", + ":la:": "🇱🇦", + ":lab_coat:": "🥼", + ":label:": "🏷️", + ":lacrosse:": "🥍", + ":ladder:": "🪜", + ":lady_beetle:": "🐞", + ":laos:": "🇱🇦", + ":large_blue_circle:": "🔵", + ":large_blue_diamond:": "🔷", + ":large_orange_diamond:": "🔶", + ":last_quarter_moon:": "🌗", + ":last_quarter_moon_with_face:": "🌜", + ":latin_cross:": "✝️", + ":latvia:": "🇱🇻", + ":laughing:": "😆", + ":lb:": "🇱🇧", + ":lc:": "🇱🇨", + ":leafy_green:": "🥬", + ":leaves:": "🍃", + ":lebanon:": "🇱🇧", + ":ledger:": "📒", + ":left_facing_fist:": "🤛", + ":left_facing_fist_tone1:": "🤛🏻", + ":left_facing_fist_tone2:": "🤛🏼", + ":left_facing_fist_tone3:": "🤛🏽", + ":left_facing_fist_tone4:": "🤛🏾", + ":left_facing_fist_tone5:": "🤛🏿", + ":left_fist:": "🤛", + ":left_fist_tone1:": "🤛🏻", + ":left_fist_tone2:": "🤛🏼", + ":left_fist_tone3:": "🤛🏽", + ":left_fist_tone4:": "🤛🏾", + ":left_fist_tone5:": "🤛🏿", + ":left_luggage:": "🛅", + ":left_right_arrow:": "↔️", + ":left_speech_bubble:": "🗨️", + ":leftwards_arrow_with_hook:": "↩️", + ":leg:": "🦵", + ":leg_dark_skin_tone:": "🦵🏿", + ":leg_light_skin_tone:": "🦵🏻", + ":leg_medium_dark_skin_tone:": "🦵🏾", + ":leg_medium_light_skin_tone:": "🦵🏼", + ":leg_medium_skin_tone:": "🦵🏽", + ":leg_tone1:": "🦵🏻", + ":leg_tone2:": "🦵🏼", + ":leg_tone3:": "🦵🏽", + ":leg_tone4:": "🦵🏾", + ":leg_tone5:": "🦵🏿", + ":lemon:": "🍋", + ":leo:": "♌", + ":leopard:": "🐆", + ":lesotho:": "🇱🇸", + ":level_slider:": "🎚️", + ":levitate:": "🕴️", + ":levitate_tone1:": "🕴🏻", + ":levitate_tone2:": "🕴🏼", + ":levitate_tone3:": "🕴🏽", + ":levitate_tone4:": "🕴🏾", + ":levitate_tone5:": "🕴🏿", + ":li:": "🇱🇮", + ":liar:": "🤥", + ":liberia:": "🇱🇷", + ":libra:": "♎", + ":libya:": "🇱🇾", + ":liechtenstein:": "🇱🇮", + ":lifter:": "🏋", + ":lifter_tone1:": "🏋🏻", + ":lifter_tone2:": "🏋🏼", + ":lifter_tone3:": "🏋🏽", + ":lifter_tone4:": "🏋🏾", + ":lifter_tone5:": "🏋🏿", + ":light_rail:": "🚈", + ":link:": "🔗", + ":linked_paperclips:": "🖇️", + ":lion:": "🦁", + ":lion_face:": "🦁", + ":lips:": "👄", + ":lipstick:": "💄", + ":lithuania:": "🇱🇹", + ":lizard:": "🦎", + ":lk:": "🇱🇰", + ":llama:": "🦙", + ":lobster:": "🦞", + ":lock:": "🔒", + ":lock_with_ink_pen:": "🔏", + ":lollipop:": "🍭", + ":long_drum:": "🪘", + ":loop:": "➿", + ":loud_sound:": "🔊", + ":loudspeaker:": "📢", + ":love_hotel:": "🏩", + ":love_letter:": "💌", + ":love_you_gesture:": "🤟", + ":love_you_gesture_dark_skin_tone:": "🤟🏿", + ":love_you_gesture_light_skin_tone:": "🤟🏻", + ":love_you_gesture_medium_dark_skin_tone:": "🤟🏾", + ":love_you_gesture_medium_light_skin_tone:": "🤟🏼", + ":love_you_gesture_medium_skin_tone:": "🤟🏽", + ":love_you_gesture_tone1:": "🤟🏻", + ":love_you_gesture_tone2:": "🤟🏼", + ":love_you_gesture_tone3:": "🤟🏽", + ":love_you_gesture_tone4:": "🤟🏾", + ":love_you_gesture_tone5:": "🤟🏿", + ":low_brightness:": "🔅", + ":lower_left_ballpoint_pen:": "🖊️", + ":lower_left_crayon:": "🖍️", + ":lower_left_fountain_pen:": "🖋️", + ":lower_left_paintbrush:": "🖌️", + ":lr:": "🇱🇷", + ":ls:": "🇱🇸", + ":lt:": "🇱🇹", + ":lu:": "🇱🇺", + ":luggage:": "🧳", + ":lungs:": "🫁", + ":luxembourg:": "🇱🇺", + ":lv:": "🇱🇻", + ":ly:": "🇱🇾", + ":lying_face:": "🤥", + ":m:": "Ⓜ️", + ":ma:": "🇲🇦", + ":macau:": "🇲🇴", + ":macedonia:": "🇲🇰", + ":madagascar:": "🇲🇬", + ":mag:": "🔍", + ":mag_right:": "🔎", + ":mage:": "🧙", + ":mage_dark_skin_tone:": "🧙🏿", + ":mage_light_skin_tone:": "🧙🏻", + ":mage_medium_dark_skin_tone:": "🧙🏾", + ":mage_medium_light_skin_tone:": "🧙🏼", + ":mage_medium_skin_tone:": "🧙🏽", + ":mage_tone1:": "🧙🏻", + ":mage_tone2:": "🧙🏼", + ":mage_tone3:": "🧙🏽", + ":mage_tone4:": "🧙🏾", + ":mage_tone5:": "🧙🏿", + ":magic_wand:": "🪄", + ":magnet:": "🧲", + ":mahjong:": "🀄", + ":mailbox:": "📫", + ":mailbox_closed:": "📪", + ":mailbox_with_mail:": "📬", + ":mailbox_with_no_mail:": "📭", + ":malawi:": "🇲🇼", + ":malaysia:": "🇲🇾", + ":maldives:": "🇲🇻", + ":male_dancer:": "🕺", + ":male_dancer_tone1:": "🕺🏻", + ":male_dancer_tone2:": "🕺🏼", + ":male_dancer_tone3:": "🕺🏽", + ":male_dancer_tone4:": "🕺🏾", + ":male_dancer_tone5:": "🕺🏿", + ":male_detective:": "🕵️", + ":male_sign:": "♂️", + ":mali:": "🇲🇱", + ":malta:": "🇲🇹", + ":mammoth:": "🦣", + ":man:": "👨", + ":man_artist:": "👨‍🎨", + ":man_artist_dark_skin_tone:": "👨🏿‍🎨", + ":man_artist_light_skin_tone:": "👨🏻‍🎨", + ":man_artist_medium_dark_skin_tone:": "👨🏾‍🎨", + ":man_artist_medium_light_skin_tone:": "👨🏼‍🎨", + ":man_artist_medium_skin_tone:": "👨🏽‍🎨", + ":man_artist_tone1:": "👨🏻‍🎨", + ":man_artist_tone2:": "👨🏼‍🎨", + ":man_artist_tone3:": "👨🏽‍🎨", + ":man_artist_tone4:": "👨🏾‍🎨", + ":man_artist_tone5:": "👨🏿‍🎨", + ":man_astronaut:": "👨‍🚀", + ":man_astronaut_dark_skin_tone:": "👨🏿‍🚀", + ":man_astronaut_light_skin_tone:": "👨🏻‍🚀", + ":man_astronaut_medium_dark_skin_tone:": "👨🏾‍🚀", + ":man_astronaut_medium_light_skin_tone:": "👨🏼‍🚀", + ":man_astronaut_medium_skin_tone:": "👨🏽‍🚀", + ":man_astronaut_tone1:": "👨🏻‍🚀", + ":man_astronaut_tone2:": "👨🏼‍🚀", + ":man_astronaut_tone3:": "👨🏽‍🚀", + ":man_astronaut_tone4:": "👨🏾‍🚀", + ":man_astronaut_tone5:": "👨🏿‍🚀", + ":man_bald:": "👨‍🦲", + ":man_bald_dark_skin_tone:": "👨🏿‍🦲", + ":man_bald_light_skin_tone:": "👨🏻‍🦲", + ":man_bald_medium_dark_skin_tone:": "👨🏾‍🦲", + ":man_bald_medium_light_skin_tone:": "👨🏼‍🦲", + ":man_bald_medium_skin_tone:": "👨🏽‍🦲", + ":man_bald_tone1:": "👨🏻‍🦲", + ":man_bald_tone2:": "👨🏼‍🦲", + ":man_bald_tone3:": "👨🏽‍🦲", + ":man_bald_tone4:": "👨🏾‍🦲", + ":man_bald_tone5:": "👨🏿‍🦲", + ":man_beard:": "🧔‍♂️", + ":man_biking:": "🚴‍♂️", + ":man_biking_dark_skin_tone:": "🚴🏿‍♂️", + ":man_biking_light_skin_tone:": "🚴🏻‍♂️", + ":man_biking_medium_dark_skin_tone:": "🚴🏾‍♂️", + ":man_biking_medium_light_skin_tone:": "🚴🏼‍♂️", + ":man_biking_medium_skin_tone:": "🚴🏽‍♂️", + ":man_biking_tone1:": "🚴🏻‍♂️", + ":man_biking_tone2:": "🚴🏼‍♂️", + ":man_biking_tone3:": "🚴🏽‍♂️", + ":man_biking_tone4:": "🚴🏾‍♂️", + ":man_biking_tone5:": "🚴🏿‍♂️", + ":man_bouncing_ball:": "⛹️‍♂️", + ":man_bouncing_ball_dark_skin_tone:": "⛹🏿‍♂️", + ":man_bouncing_ball_light_skin_tone:": "⛹🏻‍♂️", + ":man_bouncing_ball_medium_dark_skin_tone:": "⛹🏾‍♂️", + ":man_bouncing_ball_medium_light_skin_tone:": "⛹🏼‍♂️", + ":man_bouncing_ball_medium_skin_tone:": "⛹🏽‍♂️", + ":man_bouncing_ball_tone1:": "⛹🏻‍♂️", + ":man_bouncing_ball_tone2:": "⛹🏼‍♂️", + ":man_bouncing_ball_tone3:": "⛹🏽‍♂️", + ":man_bouncing_ball_tone4:": "⛹🏾‍♂️", + ":man_bouncing_ball_tone5:": "⛹🏿‍♂️", + ":man_bowing:": "🙇‍♂️", + ":man_bowing_dark_skin_tone:": "🙇🏿‍♂️", + ":man_bowing_light_skin_tone:": "🙇🏻‍♂️", + ":man_bowing_medium_dark_skin_tone:": "🙇🏾‍♂️", + ":man_bowing_medium_light_skin_tone:": "🙇🏼‍♂️", + ":man_bowing_medium_skin_tone:": "🙇🏽‍♂️", + ":man_bowing_tone1:": "🙇🏻‍♂️", + ":man_bowing_tone2:": "🙇🏼‍♂️", + ":man_bowing_tone3:": "🙇🏽‍♂️", + ":man_bowing_tone4:": "🙇🏾‍♂️", + ":man_bowing_tone5:": "🙇🏿‍♂️", + ":man_cartwheeling:": "🤸‍♂️", + ":man_cartwheeling_dark_skin_tone:": "🤸🏿‍♂️", + ":man_cartwheeling_light_skin_tone:": "🤸🏻‍♂️", + ":man_cartwheeling_medium_dark_skin_tone:": "🤸🏾‍♂️", + ":man_cartwheeling_medium_light_skin_tone:": "🤸🏼‍♂️", + ":man_cartwheeling_medium_skin_tone:": "🤸🏽‍♂️", + ":man_cartwheeling_tone1:": "🤸🏻‍♂️", + ":man_cartwheeling_tone2:": "🤸🏼‍♂️", + ":man_cartwheeling_tone3:": "🤸🏽‍♂️", + ":man_cartwheeling_tone4:": "🤸🏾‍♂️", + ":man_cartwheeling_tone5:": "🤸🏿‍♂️", + ":man_climbing:": "🧗‍♂️", + ":man_climbing_dark_skin_tone:": "🧗🏿‍♂️", + ":man_climbing_light_skin_tone:": "🧗🏻‍♂️", + ":man_climbing_medium_dark_skin_tone:": "🧗🏾‍♂️", + ":man_climbing_medium_light_skin_tone:": "🧗🏼‍♂️", + ":man_climbing_medium_skin_tone:": "🧗🏽‍♂️", + ":man_climbing_tone1:": "🧗🏻‍♂️", + ":man_climbing_tone2:": "🧗🏼‍♂️", + ":man_climbing_tone3:": "🧗🏽‍♂️", + ":man_climbing_tone4:": "🧗🏾‍♂️", + ":man_climbing_tone5:": "🧗🏿‍♂️", + ":man_construction_worker:": "👷‍♂️", + ":man_construction_worker_dark_skin_tone:": "👷🏿‍♂️", + ":man_construction_worker_light_skin_tone:": "👷🏻‍♂️", + ":man_construction_worker_medium_dark_skin_tone:": "👷🏾‍♂️", + ":man_construction_worker_medium_light_skin_tone:": "👷🏼‍♂️", + ":man_construction_worker_medium_skin_tone:": "👷🏽‍♂️", + ":man_construction_worker_tone1:": "👷🏻‍♂️", + ":man_construction_worker_tone2:": "👷🏼‍♂️", + ":man_construction_worker_tone3:": "👷🏽‍♂️", + ":man_construction_worker_tone4:": "👷🏾‍♂️", + ":man_construction_worker_tone5:": "👷🏿‍♂️", + ":man_cook:": "👨‍🍳", + ":man_cook_dark_skin_tone:": "👨🏿‍🍳", + ":man_cook_light_skin_tone:": "👨🏻‍🍳", + ":man_cook_medium_dark_skin_tone:": "👨🏾‍🍳", + ":man_cook_medium_light_skin_tone:": "👨🏼‍🍳", + ":man_cook_medium_skin_tone:": "👨🏽‍🍳", + ":man_cook_tone1:": "👨🏻‍🍳", + ":man_cook_tone2:": "👨🏼‍🍳", + ":man_cook_tone3:": "👨🏽‍🍳", + ":man_cook_tone4:": "👨🏾‍🍳", + ":man_cook_tone5:": "👨🏿‍🍳", + ":man_curly_haired:": "👨‍🦱", + ":man_curly_haired_dark_skin_tone:": "👨🏿‍🦱", + ":man_curly_haired_light_skin_tone:": "👨🏻‍🦱", + ":man_curly_haired_medium_dark_skin_tone:": "👨🏾‍🦱", + ":man_curly_haired_medium_light_skin_tone:": "👨🏼‍🦱", + ":man_curly_haired_medium_skin_tone:": "👨🏽‍🦱", + ":man_curly_haired_tone1:": "👨🏻‍🦱", + ":man_curly_haired_tone2:": "👨🏼‍🦱", + ":man_curly_haired_tone3:": "👨🏽‍🦱", + ":man_curly_haired_tone4:": "👨🏾‍🦱", + ":man_curly_haired_tone5:": "👨🏿‍🦱", + ":man_dancing:": "🕺", + ":man_dancing_tone1:": "🕺🏻", + ":man_dancing_tone2:": "🕺🏼", + ":man_dancing_tone3:": "🕺🏽", + ":man_dancing_tone4:": "🕺🏾", + ":man_dancing_tone5:": "🕺🏿", + ":man_dark_skin_tone_beard:": "🧔🏿‍♂️", + ":man_detective:": "🕵️‍♂️", + ":man_detective_dark_skin_tone:": "🕵🏿‍♂️", + ":man_detective_light_skin_tone:": "🕵🏻‍♂️", + ":man_detective_medium_dark_skin_tone:": "🕵🏾‍♂️", + ":man_detective_medium_light_skin_tone:": "🕵🏼‍♂️", + ":man_detective_medium_skin_tone:": "🕵🏽‍♂️", + ":man_detective_tone1:": "🕵🏻‍♂️", + ":man_detective_tone2:": "🕵🏼‍♂️", + ":man_detective_tone3:": "🕵🏽‍♂️", + ":man_detective_tone4:": "🕵🏾‍♂️", + ":man_detective_tone5:": "🕵🏿‍♂️", + ":man_elf:": "🧝‍♂️", + ":man_elf_dark_skin_tone:": "🧝🏿‍♂️", + ":man_elf_light_skin_tone:": "🧝🏻‍♂️", + ":man_elf_medium_dark_skin_tone:": "🧝🏾‍♂️", + ":man_elf_medium_light_skin_tone:": "🧝🏼‍♂️", + ":man_elf_medium_skin_tone:": "🧝🏽‍♂️", + ":man_elf_tone1:": "🧝🏻‍♂️", + ":man_elf_tone2:": "🧝🏼‍♂️", + ":man_elf_tone3:": "🧝🏽‍♂️", + ":man_elf_tone4:": "🧝🏾‍♂️", + ":man_elf_tone5:": "🧝🏿‍♂️", + ":man_facepalming:": "🤦‍♂️", + ":man_facepalming_dark_skin_tone:": "🤦🏿‍♂️", + ":man_facepalming_light_skin_tone:": "🤦🏻‍♂️", + ":man_facepalming_medium_dark_skin_tone:": "🤦🏾‍♂️", + ":man_facepalming_medium_light_skin_tone:": "🤦🏼‍♂️", + ":man_facepalming_medium_skin_tone:": "🤦🏽‍♂️", + ":man_facepalming_tone1:": "🤦🏻‍♂️", + ":man_facepalming_tone2:": "🤦🏼‍♂️", + ":man_facepalming_tone3:": "🤦🏽‍♂️", + ":man_facepalming_tone4:": "🤦🏾‍♂️", + ":man_facepalming_tone5:": "🤦🏿‍♂️", + ":man_factory_worker:": "👨‍🏭", + ":man_factory_worker_dark_skin_tone:": "👨🏿‍🏭", + ":man_factory_worker_light_skin_tone:": "👨🏻‍🏭", + ":man_factory_worker_medium_dark_skin_tone:": "👨🏾‍🏭", + ":man_factory_worker_medium_light_skin_tone:": "👨🏼‍🏭", + ":man_factory_worker_medium_skin_tone:": "👨🏽‍🏭", + ":man_factory_worker_tone1:": "👨🏻‍🏭", + ":man_factory_worker_tone2:": "👨🏼‍🏭", + ":man_factory_worker_tone3:": "👨🏽‍🏭", + ":man_factory_worker_tone4:": "👨🏾‍🏭", + ":man_factory_worker_tone5:": "👨🏿‍🏭", + ":man_fairy:": "🧚‍♂️", + ":man_fairy_dark_skin_tone:": "🧚🏿‍♂️", + ":man_fairy_light_skin_tone:": "🧚🏻‍♂️", + ":man_fairy_medium_dark_skin_tone:": "🧚🏾‍♂️", + ":man_fairy_medium_light_skin_tone:": "🧚🏼‍♂️", + ":man_fairy_medium_skin_tone:": "🧚🏽‍♂️", + ":man_fairy_tone1:": "🧚🏻‍♂️", + ":man_fairy_tone2:": "🧚🏼‍♂️", + ":man_fairy_tone3:": "🧚🏽‍♂️", + ":man_fairy_tone4:": "🧚🏾‍♂️", + ":man_fairy_tone5:": "🧚🏿‍♂️", + ":man_farmer:": "👨‍🌾", + ":man_farmer_dark_skin_tone:": "👨🏿‍🌾", + ":man_farmer_light_skin_tone:": "👨🏻‍🌾", + ":man_farmer_medium_dark_skin_tone:": "👨🏾‍🌾", + ":man_farmer_medium_light_skin_tone:": "👨🏼‍🌾", + ":man_farmer_medium_skin_tone:": "👨🏽‍🌾", + ":man_farmer_tone1:": "👨🏻‍🌾", + ":man_farmer_tone2:": "👨🏼‍🌾", + ":man_farmer_tone3:": "👨🏽‍🌾", + ":man_farmer_tone4:": "👨🏾‍🌾", + ":man_farmer_tone5:": "👨🏿‍🌾", + ":man_feeding_baby:": "👨‍🍼", + ":man_feeding_baby_dark_skin_tone:": "👨🏿‍🍼", + ":man_feeding_baby_light_skin_tone:": "👨🏻‍🍼", + ":man_feeding_baby_medium_dark_skin_tone:": "👨🏾‍🍼", + ":man_feeding_baby_medium_light_skin_tone:": "👨🏼‍🍼", + ":man_feeding_baby_medium_skin_tone:": "👨🏽‍🍼", + ":man_feeding_baby_tone1:": "👨🏻‍🍼", + ":man_feeding_baby_tone2:": "👨🏼‍🍼", + ":man_feeding_baby_tone3:": "👨🏽‍🍼", + ":man_feeding_baby_tone4:": "👨🏾‍🍼", + ":man_feeding_baby_tone5:": "👨🏿‍🍼", + ":man_firefighter:": "👨‍🚒", + ":man_firefighter_dark_skin_tone:": "👨🏿‍🚒", + ":man_firefighter_light_skin_tone:": "👨🏻‍🚒", + ":man_firefighter_medium_dark_skin_tone:": "👨🏾‍🚒", + ":man_firefighter_medium_light_skin_tone:": "👨🏼‍🚒", + ":man_firefighter_medium_skin_tone:": "👨🏽‍🚒", + ":man_firefighter_tone1:": "👨🏻‍🚒", + ":man_firefighter_tone2:": "👨🏼‍🚒", + ":man_firefighter_tone3:": "👨🏽‍🚒", + ":man_firefighter_tone4:": "👨🏾‍🚒", + ":man_firefighter_tone5:": "👨🏿‍🚒", + ":man_frowning:": "🙍‍♂️", + ":man_frowning_dark_skin_tone:": "🙍🏿‍♂️", + ":man_frowning_light_skin_tone:": "🙍🏻‍♂️", + ":man_frowning_medium_dark_skin_tone:": "🙍🏾‍♂️", + ":man_frowning_medium_light_skin_tone:": "🙍🏼‍♂️", + ":man_frowning_medium_skin_tone:": "🙍🏽‍♂️", + ":man_frowning_tone1:": "🙍🏻‍♂️", + ":man_frowning_tone2:": "🙍🏼‍♂️", + ":man_frowning_tone3:": "🙍🏽‍♂️", + ":man_frowning_tone4:": "🙍🏾‍♂️", + ":man_frowning_tone5:": "🙍🏿‍♂️", + ":man_genie:": "🧞‍♂️", + ":man_gesturing_no:": "🙅‍♂️", + ":man_gesturing_no_dark_skin_tone:": "🙅🏿‍♂️", + ":man_gesturing_no_light_skin_tone:": "🙅🏻‍♂️", + ":man_gesturing_no_medium_dark_skin_tone:": "🙅🏾‍♂️", + ":man_gesturing_no_medium_light_skin_tone:": "🙅🏼‍♂️", + ":man_gesturing_no_medium_skin_tone:": "🙅🏽‍♂️", + ":man_gesturing_no_tone1:": "🙅🏻‍♂️", + ":man_gesturing_no_tone2:": "🙅🏼‍♂️", + ":man_gesturing_no_tone3:": "🙅🏽‍♂️", + ":man_gesturing_no_tone4:": "🙅🏾‍♂️", + ":man_gesturing_no_tone5:": "🙅🏿‍♂️", + ":man_gesturing_ok:": "🙆‍♂️", + ":man_gesturing_ok_dark_skin_tone:": "🙆🏿‍♂️", + ":man_gesturing_ok_light_skin_tone:": "🙆🏻‍♂️", + ":man_gesturing_ok_medium_dark_skin_tone:": "🙆🏾‍♂️", + ":man_gesturing_ok_medium_light_skin_tone:": "🙆🏼‍♂️", + ":man_gesturing_ok_medium_skin_tone:": "🙆🏽‍♂️", + ":man_gesturing_ok_tone1:": "🙆🏻‍♂️", + ":man_gesturing_ok_tone2:": "🙆🏼‍♂️", + ":man_gesturing_ok_tone3:": "🙆🏽‍♂️", + ":man_gesturing_ok_tone4:": "🙆🏾‍♂️", + ":man_gesturing_ok_tone5:": "🙆🏿‍♂️", + ":man_getting_face_massage:": "💆‍♂️", + ":man_getting_face_massage_dark_skin_tone:": "💆🏿‍♂️", + ":man_getting_face_massage_light_skin_tone:": "💆🏻‍♂️", + ":man_getting_face_massage_medium_dark_skin_tone:": "💆🏾‍♂️", + ":man_getting_face_massage_medium_light_skin_tone:": "💆🏼‍♂️", + ":man_getting_face_massage_medium_skin_tone:": "💆🏽‍♂️", + ":man_getting_face_massage_tone1:": "💆🏻‍♂️", + ":man_getting_face_massage_tone2:": "💆🏼‍♂️", + ":man_getting_face_massage_tone3:": "💆🏽‍♂️", + ":man_getting_face_massage_tone4:": "💆🏾‍♂️", + ":man_getting_face_massage_tone5:": "💆🏿‍♂️", + ":man_getting_haircut:": "💇‍♂️", + ":man_getting_haircut_dark_skin_tone:": "💇🏿‍♂️", + ":man_getting_haircut_light_skin_tone:": "💇🏻‍♂️", + ":man_getting_haircut_medium_dark_skin_tone:": "💇🏾‍♂️", + ":man_getting_haircut_medium_light_skin_tone:": "💇🏼‍♂️", + ":man_getting_haircut_medium_skin_tone:": "💇🏽‍♂️", + ":man_getting_haircut_tone1:": "💇🏻‍♂️", + ":man_getting_haircut_tone2:": "💇🏼‍♂️", + ":man_getting_haircut_tone3:": "💇🏽‍♂️", + ":man_getting_haircut_tone4:": "💇🏾‍♂️", + ":man_getting_haircut_tone5:": "💇🏿‍♂️", + ":man_golfing:": "🏌️‍♂️", + ":man_golfing_dark_skin_tone:": "🏌🏿‍♂️", + ":man_golfing_light_skin_tone:": "🏌🏻‍♂️", + ":man_golfing_medium_dark_skin_tone:": "🏌🏾‍♂️", + ":man_golfing_medium_light_skin_tone:": "🏌🏼‍♂️", + ":man_golfing_medium_skin_tone:": "🏌🏽‍♂️", + ":man_golfing_tone1:": "🏌🏻‍♂️", + ":man_golfing_tone2:": "🏌🏼‍♂️", + ":man_golfing_tone3:": "🏌🏽‍♂️", + ":man_golfing_tone4:": "🏌🏾‍♂️", + ":man_golfing_tone5:": "🏌🏿‍♂️", + ":man_guard:": "💂‍♂️", + ":man_guard_dark_skin_tone:": "💂🏿‍♂️", + ":man_guard_light_skin_tone:": "💂🏻‍♂️", + ":man_guard_medium_dark_skin_tone:": "💂🏾‍♂️", + ":man_guard_medium_light_skin_tone:": "💂🏼‍♂️", + ":man_guard_medium_skin_tone:": "💂🏽‍♂️", + ":man_guard_tone1:": "💂🏻‍♂️", + ":man_guard_tone2:": "💂🏼‍♂️", + ":man_guard_tone3:": "💂🏽‍♂️", + ":man_guard_tone4:": "💂🏾‍♂️", + ":man_guard_tone5:": "💂🏿‍♂️", + ":man_health_worker:": "👨‍⚕️", + ":man_health_worker_dark_skin_tone:": "👨🏿‍⚕️", + ":man_health_worker_light_skin_tone:": "👨🏻‍⚕️", + ":man_health_worker_medium_dark_skin_tone:": "👨🏾‍⚕️", + ":man_health_worker_medium_light_skin_tone:": "👨🏼‍⚕️", + ":man_health_worker_medium_skin_tone:": "👨🏽‍⚕️", + ":man_health_worker_tone1:": "👨🏻‍⚕️", + ":man_health_worker_tone2:": "👨🏼‍⚕️", + ":man_health_worker_tone3:": "👨🏽‍⚕️", + ":man_health_worker_tone4:": "👨🏾‍⚕️", + ":man_health_worker_tone5:": "👨🏿‍⚕️", + ":man_in_business_suit_levitating:": "🕴️", + ":man_in_business_suit_levitating_dark_skin_tone:": "🕴🏿", + ":man_in_business_suit_levitating_light_skin_tone:": "🕴🏻", + ":man_in_business_suit_levitating_medium_dark_skin_tone:": "🕴🏾", + ":man_in_business_suit_levitating_medium_light_skin_tone:": "🕴🏼", + ":man_in_business_suit_levitating_medium_skin_tone:": "🕴🏽", + ":man_in_business_suit_levitating_tone1:": "🕴🏻", + ":man_in_business_suit_levitating_tone2:": "🕴🏼", + ":man_in_business_suit_levitating_tone3:": "🕴🏽", + ":man_in_business_suit_levitating_tone4:": "🕴🏾", + ":man_in_business_suit_levitating_tone5:": "🕴🏿", + ":man_in_lotus_position:": "🧘‍♂️", + ":man_in_lotus_position_dark_skin_tone:": "🧘🏿‍♂️", + ":man_in_lotus_position_light_skin_tone:": "🧘🏻‍♂️", + ":man_in_lotus_position_medium_dark_skin_tone:": "🧘🏾‍♂️", + ":man_in_lotus_position_medium_light_skin_tone:": "🧘🏼‍♂️", + ":man_in_lotus_position_medium_skin_tone:": "🧘🏽‍♂️", + ":man_in_lotus_position_tone1:": "🧘🏻‍♂️", + ":man_in_lotus_position_tone2:": "🧘🏼‍♂️", + ":man_in_lotus_position_tone3:": "🧘🏽‍♂️", + ":man_in_lotus_position_tone4:": "🧘🏾‍♂️", + ":man_in_lotus_position_tone5:": "🧘🏿‍♂️", + ":man_in_manual_wheelchair:": "👨‍🦽", + ":man_in_manual_wheelchair_dark_skin_tone:": "👨🏿‍🦽", + ":man_in_manual_wheelchair_light_skin_tone:": "👨🏻‍🦽", + ":man_in_manual_wheelchair_medium_dark_skin_tone:": "👨🏾‍🦽", + ":man_in_manual_wheelchair_medium_light_skin_tone:": "👨🏼‍🦽", + ":man_in_manual_wheelchair_medium_skin_tone:": "👨🏽‍🦽", + ":man_in_manual_wheelchair_tone1:": "👨🏻‍🦽", + ":man_in_manual_wheelchair_tone2:": "👨🏼‍🦽", + ":man_in_manual_wheelchair_tone3:": "👨🏽‍🦽", + ":man_in_manual_wheelchair_tone4:": "👨🏾‍🦽", + ":man_in_manual_wheelchair_tone5:": "👨🏿‍🦽", + ":man_in_motorized_wheelchair:": "👨‍🦼", + ":man_in_motorized_wheelchair_dark_skin_tone:": "👨🏿‍🦼", + ":man_in_motorized_wheelchair_light_skin_tone:": "👨🏻‍🦼", + ":man_in_motorized_wheelchair_medium_dark_skin_tone:": "👨🏾‍🦼", + ":man_in_motorized_wheelchair_medium_light_skin_tone:": "👨🏼‍🦼", + ":man_in_motorized_wheelchair_medium_skin_tone:": "👨🏽‍🦼", + ":man_in_motorized_wheelchair_tone1:": "👨🏻‍🦼", + ":man_in_motorized_wheelchair_tone2:": "👨🏼‍🦼", + ":man_in_motorized_wheelchair_tone3:": "👨🏽‍🦼", + ":man_in_motorized_wheelchair_tone4:": "👨🏾‍🦼", + ":man_in_motorized_wheelchair_tone5:": "👨🏿‍🦼", + ":man_in_steamy_room:": "🧖‍♂️", + ":man_in_steamy_room_dark_skin_tone:": "🧖🏿‍♂️", + ":man_in_steamy_room_light_skin_tone:": "🧖🏻‍♂️", + ":man_in_steamy_room_medium_dark_skin_tone:": "🧖🏾‍♂️", + ":man_in_steamy_room_medium_light_skin_tone:": "🧖🏼‍♂️", + ":man_in_steamy_room_medium_skin_tone:": "🧖🏽‍♂️", + ":man_in_steamy_room_tone1:": "🧖🏻‍♂️", + ":man_in_steamy_room_tone2:": "🧖🏼‍♂️", + ":man_in_steamy_room_tone3:": "🧖🏽‍♂️", + ":man_in_steamy_room_tone4:": "🧖🏾‍♂️", + ":man_in_steamy_room_tone5:": "🧖🏿‍♂️", + ":man_in_tuxedo:": "🤵‍♂️", + ":man_in_tuxedo_dark_skin_tone:": "🤵🏿‍♂️", + ":man_in_tuxedo_light_skin_tone:": "🤵🏻‍♂️", + ":man_in_tuxedo_medium_dark_skin_tone:": "🤵🏾‍♂️", + ":man_in_tuxedo_medium_light_skin_tone:": "🤵🏼‍♂️", + ":man_in_tuxedo_medium_skin_tone:": "🤵🏽‍♂️", + ":man_in_tuxedo_tone1:": "🤵🏻‍♂️", + ":man_in_tuxedo_tone2:": "🤵🏼‍♂️", + ":man_in_tuxedo_tone3:": "🤵🏽‍♂️", + ":man_in_tuxedo_tone4:": "🤵🏾‍♂️", + ":man_in_tuxedo_tone5:": "🤵🏿‍♂️", + ":man_judge:": "👨‍⚖️", + ":man_judge_dark_skin_tone:": "👨🏿‍⚖️", + ":man_judge_light_skin_tone:": "👨🏻‍⚖️", + ":man_judge_medium_dark_skin_tone:": "👨🏾‍⚖️", + ":man_judge_medium_light_skin_tone:": "👨🏼‍⚖️", + ":man_judge_medium_skin_tone:": "👨🏽‍⚖️", + ":man_judge_tone1:": "👨🏻‍⚖️", + ":man_judge_tone2:": "👨🏼‍⚖️", + ":man_judge_tone3:": "👨🏽‍⚖️", + ":man_judge_tone4:": "👨🏾‍⚖️", + ":man_judge_tone5:": "👨🏿‍⚖️", + ":man_juggling:": "🤹‍♂️", + ":man_juggling_dark_skin_tone:": "🤹🏿‍♂️", + ":man_juggling_light_skin_tone:": "🤹🏻‍♂️", + ":man_juggling_medium_dark_skin_tone:": "🤹🏾‍♂️", + ":man_juggling_medium_light_skin_tone:": "🤹🏼‍♂️", + ":man_juggling_medium_skin_tone:": "🤹🏽‍♂️", + ":man_juggling_tone1:": "🤹🏻‍♂️", + ":man_juggling_tone2:": "🤹🏼‍♂️", + ":man_juggling_tone3:": "🤹🏽‍♂️", + ":man_juggling_tone4:": "🤹🏾‍♂️", + ":man_juggling_tone5:": "🤹🏿‍♂️", + ":man_kneeling:": "🧎‍♂️", + ":man_kneeling_dark_skin_tone:": "🧎🏿‍♂️", + ":man_kneeling_light_skin_tone:": "🧎🏻‍♂️", + ":man_kneeling_medium_dark_skin_tone:": "🧎🏾‍♂️", + ":man_kneeling_medium_light_skin_tone:": "🧎🏼‍♂️", + ":man_kneeling_medium_skin_tone:": "🧎🏽‍♂️", + ":man_kneeling_tone1:": "🧎🏻‍♂️", + ":man_kneeling_tone2:": "🧎🏼‍♂️", + ":man_kneeling_tone3:": "🧎🏽‍♂️", + ":man_kneeling_tone4:": "🧎🏾‍♂️", + ":man_kneeling_tone5:": "🧎🏿‍♂️", + ":man_lifting_weights:": "🏋️‍♂️", + ":man_lifting_weights_dark_skin_tone:": "🏋🏿‍♂️", + ":man_lifting_weights_light_skin_tone:": "🏋🏻‍♂️", + ":man_lifting_weights_medium_dark_skin_tone:": "🏋🏾‍♂️", + ":man_lifting_weights_medium_light_skin_tone:": "🏋🏼‍♂️", + ":man_lifting_weights_medium_skin_tone:": "🏋🏽‍♂️", + ":man_lifting_weights_tone1:": "🏋🏻‍♂️", + ":man_lifting_weights_tone2:": "🏋🏼‍♂️", + ":man_lifting_weights_tone3:": "🏋🏽‍♂️", + ":man_lifting_weights_tone4:": "🏋🏾‍♂️", + ":man_lifting_weights_tone5:": "🏋🏿‍♂️", + ":man_light_skin_tone_beard:": "🧔🏻‍♂️", + ":man_mage:": "🧙‍♂️", + ":man_mage_dark_skin_tone:": "🧙🏿‍♂️", + ":man_mage_light_skin_tone:": "🧙🏻‍♂️", + ":man_mage_medium_dark_skin_tone:": "🧙🏾‍♂️", + ":man_mage_medium_light_skin_tone:": "🧙🏼‍♂️", + ":man_mage_medium_skin_tone:": "🧙🏽‍♂️", + ":man_mage_tone1:": "🧙🏻‍♂️", + ":man_mage_tone2:": "🧙🏼‍♂️", + ":man_mage_tone3:": "🧙🏽‍♂️", + ":man_mage_tone4:": "🧙🏾‍♂️", + ":man_mage_tone5:": "🧙🏿‍♂️", + ":man_mechanic:": "👨‍🔧", + ":man_mechanic_dark_skin_tone:": "👨🏿‍🔧", + ":man_mechanic_light_skin_tone:": "👨🏻‍🔧", + ":man_mechanic_medium_dark_skin_tone:": "👨🏾‍🔧", + ":man_mechanic_medium_light_skin_tone:": "👨🏼‍🔧", + ":man_mechanic_medium_skin_tone:": "👨🏽‍🔧", + ":man_mechanic_tone1:": "👨🏻‍🔧", + ":man_mechanic_tone2:": "👨🏼‍🔧", + ":man_mechanic_tone3:": "👨🏽‍🔧", + ":man_mechanic_tone4:": "👨🏾‍🔧", + ":man_mechanic_tone5:": "👨🏿‍🔧", + ":man_medium_dark_skin_tone_beard:": "🧔🏾‍♂️", + ":man_medium_light_skin_tone_beard:": "🧔🏼‍♂️", + ":man_medium_skin_tone_beard:": "🧔🏽‍♂️", + ":man_mountain_biking:": "🚵‍♂️", + ":man_mountain_biking_dark_skin_tone:": "🚵🏿‍♂️", + ":man_mountain_biking_light_skin_tone:": "🚵🏻‍♂️", + ":man_mountain_biking_medium_dark_skin_tone:": "🚵🏾‍♂️", + ":man_mountain_biking_medium_light_skin_tone:": "🚵🏼‍♂️", + ":man_mountain_biking_medium_skin_tone:": "🚵🏽‍♂️", + ":man_mountain_biking_tone1:": "🚵🏻‍♂️", + ":man_mountain_biking_tone2:": "🚵🏼‍♂️", + ":man_mountain_biking_tone3:": "🚵🏽‍♂️", + ":man_mountain_biking_tone4:": "🚵🏾‍♂️", + ":man_mountain_biking_tone5:": "🚵🏿‍♂️", + ":man_office_worker:": "👨‍💼", + ":man_office_worker_dark_skin_tone:": "👨🏿‍💼", + ":man_office_worker_light_skin_tone:": "👨🏻‍💼", + ":man_office_worker_medium_dark_skin_tone:": "👨🏾‍💼", + ":man_office_worker_medium_light_skin_tone:": "👨🏼‍💼", + ":man_office_worker_medium_skin_tone:": "👨🏽‍💼", + ":man_office_worker_tone1:": "👨🏻‍💼", + ":man_office_worker_tone2:": "👨🏼‍💼", + ":man_office_worker_tone3:": "👨🏽‍💼", + ":man_office_worker_tone4:": "👨🏾‍💼", + ":man_office_worker_tone5:": "👨🏿‍💼", + ":man_pilot:": "👨‍✈️", + ":man_pilot_dark_skin_tone:": "👨🏿‍✈️", + ":man_pilot_light_skin_tone:": "👨🏻‍✈️", + ":man_pilot_medium_dark_skin_tone:": "👨🏾‍✈️", + ":man_pilot_medium_light_skin_tone:": "👨🏼‍✈️", + ":man_pilot_medium_skin_tone:": "👨🏽‍✈️", + ":man_pilot_tone1:": "👨🏻‍✈️", + ":man_pilot_tone2:": "👨🏼‍✈️", + ":man_pilot_tone3:": "👨🏽‍✈️", + ":man_pilot_tone4:": "👨🏾‍✈️", + ":man_pilot_tone5:": "👨🏿‍✈️", + ":man_playing_handball:": "🤾‍♂️", + ":man_playing_handball_dark_skin_tone:": "🤾🏿‍♂️", + ":man_playing_handball_light_skin_tone:": "🤾🏻‍♂️", + ":man_playing_handball_medium_dark_skin_tone:": "🤾🏾‍♂️", + ":man_playing_handball_medium_light_skin_tone:": "🤾🏼‍♂️", + ":man_playing_handball_medium_skin_tone:": "🤾🏽‍♂️", + ":man_playing_handball_tone1:": "🤾🏻‍♂️", + ":man_playing_handball_tone2:": "🤾🏼‍♂️", + ":man_playing_handball_tone3:": "🤾🏽‍♂️", + ":man_playing_handball_tone4:": "🤾🏾‍♂️", + ":man_playing_handball_tone5:": "🤾🏿‍♂️", + ":man_playing_water_polo:": "🤽‍♂️", + ":man_playing_water_polo_dark_skin_tone:": "🤽🏿‍♂️", + ":man_playing_water_polo_light_skin_tone:": "🤽🏻‍♂️", + ":man_playing_water_polo_medium_dark_skin_tone:": "🤽🏾‍♂️", + ":man_playing_water_polo_medium_light_skin_tone:": "🤽🏼‍♂️", + ":man_playing_water_polo_medium_skin_tone:": "🤽🏽‍♂️", + ":man_playing_water_polo_tone1:": "🤽🏻‍♂️", + ":man_playing_water_polo_tone2:": "🤽🏼‍♂️", + ":man_playing_water_polo_tone3:": "🤽🏽‍♂️", + ":man_playing_water_polo_tone4:": "🤽🏾‍♂️", + ":man_playing_water_polo_tone5:": "🤽🏿‍♂️", + ":man_police_officer:": "👮‍♂️", + ":man_police_officer_dark_skin_tone:": "👮🏿‍♂️", + ":man_police_officer_light_skin_tone:": "👮🏻‍♂️", + ":man_police_officer_medium_dark_skin_tone:": "👮🏾‍♂️", + ":man_police_officer_medium_light_skin_tone:": "👮🏼‍♂️", + ":man_police_officer_medium_skin_tone:": "👮🏽‍♂️", + ":man_police_officer_tone1:": "👮🏻‍♂️", + ":man_police_officer_tone2:": "👮🏼‍♂️", + ":man_police_officer_tone3:": "👮🏽‍♂️", + ":man_police_officer_tone4:": "👮🏾‍♂️", + ":man_police_officer_tone5:": "👮🏿‍♂️", + ":man_pouting:": "🙎‍♂️", + ":man_pouting_dark_skin_tone:": "🙎🏿‍♂️", + ":man_pouting_light_skin_tone:": "🙎🏻‍♂️", + ":man_pouting_medium_dark_skin_tone:": "🙎🏾‍♂️", + ":man_pouting_medium_light_skin_tone:": "🙎🏼‍♂️", + ":man_pouting_medium_skin_tone:": "🙎🏽‍♂️", + ":man_pouting_tone1:": "🙎🏻‍♂️", + ":man_pouting_tone2:": "🙎🏼‍♂️", + ":man_pouting_tone3:": "🙎🏽‍♂️", + ":man_pouting_tone4:": "🙎🏾‍♂️", + ":man_pouting_tone5:": "🙎🏿‍♂️", + ":man_raising_hand:": "🙋‍♂️", + ":man_raising_hand_dark_skin_tone:": "🙋🏿‍♂️", + ":man_raising_hand_light_skin_tone:": "🙋🏻‍♂️", + ":man_raising_hand_medium_dark_skin_tone:": "🙋🏾‍♂️", + ":man_raising_hand_medium_light_skin_tone:": "🙋🏼‍♂️", + ":man_raising_hand_medium_skin_tone:": "🙋🏽‍♂️", + ":man_raising_hand_tone1:": "🙋🏻‍♂️", + ":man_raising_hand_tone2:": "🙋🏼‍♂️", + ":man_raising_hand_tone3:": "🙋🏽‍♂️", + ":man_raising_hand_tone4:": "🙋🏾‍♂️", + ":man_raising_hand_tone5:": "🙋🏿‍♂️", + ":man_red_haired:": "👨‍🦰", + ":man_red_haired_dark_skin_tone:": "👨🏿‍🦰", + ":man_red_haired_light_skin_tone:": "👨🏻‍🦰", + ":man_red_haired_medium_dark_skin_tone:": "👨🏾‍🦰", + ":man_red_haired_medium_light_skin_tone:": "👨🏼‍🦰", + ":man_red_haired_medium_skin_tone:": "👨🏽‍🦰", + ":man_red_haired_tone1:": "👨🏻‍🦰", + ":man_red_haired_tone2:": "👨🏼‍🦰", + ":man_red_haired_tone3:": "👨🏽‍🦰", + ":man_red_haired_tone4:": "👨🏾‍🦰", + ":man_red_haired_tone5:": "👨🏿‍🦰", + ":man_rowing_boat:": "🚣‍♂️", + ":man_rowing_boat_dark_skin_tone:": "🚣🏿‍♂️", + ":man_rowing_boat_light_skin_tone:": "🚣🏻‍♂️", + ":man_rowing_boat_medium_dark_skin_tone:": "🚣🏾‍♂️", + ":man_rowing_boat_medium_light_skin_tone:": "🚣🏼‍♂️", + ":man_rowing_boat_medium_skin_tone:": "🚣🏽‍♂️", + ":man_rowing_boat_tone1:": "🚣🏻‍♂️", + ":man_rowing_boat_tone2:": "🚣🏼‍♂️", + ":man_rowing_boat_tone3:": "🚣🏽‍♂️", + ":man_rowing_boat_tone4:": "🚣🏾‍♂️", + ":man_rowing_boat_tone5:": "🚣🏿‍♂️", + ":man_running:": "🏃‍♂️", + ":man_running_dark_skin_tone:": "🏃🏿‍♂️", + ":man_running_light_skin_tone:": "🏃🏻‍♂️", + ":man_running_medium_dark_skin_tone:": "🏃🏾‍♂️", + ":man_running_medium_light_skin_tone:": "🏃🏼‍♂️", + ":man_running_medium_skin_tone:": "🏃🏽‍♂️", + ":man_running_tone1:": "🏃🏻‍♂️", + ":man_running_tone2:": "🏃🏼‍♂️", + ":man_running_tone3:": "🏃🏽‍♂️", + ":man_running_tone4:": "🏃🏾‍♂️", + ":man_running_tone5:": "🏃🏿‍♂️", + ":man_scientist:": "👨‍🔬", + ":man_scientist_dark_skin_tone:": "👨🏿‍🔬", + ":man_scientist_light_skin_tone:": "👨🏻‍🔬", + ":man_scientist_medium_dark_skin_tone:": "👨🏾‍🔬", + ":man_scientist_medium_light_skin_tone:": "👨🏼‍🔬", + ":man_scientist_medium_skin_tone:": "👨🏽‍🔬", + ":man_scientist_tone1:": "👨🏻‍🔬", + ":man_scientist_tone2:": "👨🏼‍🔬", + ":man_scientist_tone3:": "👨🏽‍🔬", + ":man_scientist_tone4:": "👨🏾‍🔬", + ":man_scientist_tone5:": "👨🏿‍🔬", + ":man_shrugging:": "🤷‍♂️", + ":man_shrugging_dark_skin_tone:": "🤷🏿‍♂️", + ":man_shrugging_light_skin_tone:": "🤷🏻‍♂️", + ":man_shrugging_medium_dark_skin_tone:": "🤷🏾‍♂️", + ":man_shrugging_medium_light_skin_tone:": "🤷🏼‍♂️", + ":man_shrugging_medium_skin_tone:": "🤷🏽‍♂️", + ":man_shrugging_tone1:": "🤷🏻‍♂️", + ":man_shrugging_tone2:": "🤷🏼‍♂️", + ":man_shrugging_tone3:": "🤷🏽‍♂️", + ":man_shrugging_tone4:": "🤷🏾‍♂️", + ":man_shrugging_tone5:": "🤷🏿‍♂️", + ":man_singer:": "👨‍🎤", + ":man_singer_dark_skin_tone:": "👨🏿‍🎤", + ":man_singer_light_skin_tone:": "👨🏻‍🎤", + ":man_singer_medium_dark_skin_tone:": "👨🏾‍🎤", + ":man_singer_medium_light_skin_tone:": "👨🏼‍🎤", + ":man_singer_medium_skin_tone:": "👨🏽‍🎤", + ":man_singer_tone1:": "👨🏻‍🎤", + ":man_singer_tone2:": "👨🏼‍🎤", + ":man_singer_tone3:": "👨🏽‍🎤", + ":man_singer_tone4:": "👨🏾‍🎤", + ":man_singer_tone5:": "👨🏿‍🎤", + ":man_standing:": "🧍‍♂️", + ":man_standing_dark_skin_tone:": "🧍🏿‍♂️", + ":man_standing_light_skin_tone:": "🧍🏻‍♂️", + ":man_standing_medium_dark_skin_tone:": "🧍🏾‍♂️", + ":man_standing_medium_light_skin_tone:": "🧍🏼‍♂️", + ":man_standing_medium_skin_tone:": "🧍🏽‍♂️", + ":man_standing_tone1:": "🧍🏻‍♂️", + ":man_standing_tone2:": "🧍🏼‍♂️", + ":man_standing_tone3:": "🧍🏽‍♂️", + ":man_standing_tone4:": "🧍🏾‍♂️", + ":man_standing_tone5:": "🧍🏿‍♂️", + ":man_student:": "👨‍🎓", + ":man_student_dark_skin_tone:": "👨🏿‍🎓", + ":man_student_light_skin_tone:": "👨🏻‍🎓", + ":man_student_medium_dark_skin_tone:": "👨🏾‍🎓", + ":man_student_medium_light_skin_tone:": "👨🏼‍🎓", + ":man_student_medium_skin_tone:": "👨🏽‍🎓", + ":man_student_tone1:": "👨🏻‍🎓", + ":man_student_tone2:": "👨🏼‍🎓", + ":man_student_tone3:": "👨🏽‍🎓", + ":man_student_tone4:": "👨🏾‍🎓", + ":man_student_tone5:": "👨🏿‍🎓", + ":man_superhero:": "🦸‍♂️", + ":man_superhero_dark_skin_tone:": "🦸🏿‍♂️", + ":man_superhero_light_skin_tone:": "🦸🏻‍♂️", + ":man_superhero_medium_dark_skin_tone:": "🦸🏾‍♂️", + ":man_superhero_medium_light_skin_tone:": "🦸🏼‍♂️", + ":man_superhero_medium_skin_tone:": "🦸🏽‍♂️", + ":man_superhero_tone1:": "🦸🏻‍♂️", + ":man_superhero_tone2:": "🦸🏼‍♂️", + ":man_superhero_tone3:": "🦸🏽‍♂️", + ":man_superhero_tone4:": "🦸🏾‍♂️", + ":man_superhero_tone5:": "🦸🏿‍♂️", + ":man_supervillain:": "🦹‍♂️", + ":man_supervillain_dark_skin_tone:": "🦹🏿‍♂️", + ":man_supervillain_light_skin_tone:": "🦹🏻‍♂️", + ":man_supervillain_medium_dark_skin_tone:": "🦹🏾‍♂️", + ":man_supervillain_medium_light_skin_tone:": "🦹🏼‍♂️", + ":man_supervillain_medium_skin_tone:": "🦹🏽‍♂️", + ":man_supervillain_tone1:": "🦹🏻‍♂️", + ":man_supervillain_tone2:": "🦹🏼‍♂️", + ":man_supervillain_tone3:": "🦹🏽‍♂️", + ":man_supervillain_tone4:": "🦹🏾‍♂️", + ":man_supervillain_tone5:": "🦹🏿‍♂️", + ":man_surfing:": "🏄‍♂️", + ":man_surfing_dark_skin_tone:": "🏄🏿‍♂️", + ":man_surfing_light_skin_tone:": "🏄🏻‍♂️", + ":man_surfing_medium_dark_skin_tone:": "🏄🏾‍♂️", + ":man_surfing_medium_light_skin_tone:": "🏄🏼‍♂️", + ":man_surfing_medium_skin_tone:": "🏄🏽‍♂️", + ":man_surfing_tone1:": "🏄🏻‍♂️", + ":man_surfing_tone2:": "🏄🏼‍♂️", + ":man_surfing_tone3:": "🏄🏽‍♂️", + ":man_surfing_tone4:": "🏄🏾‍♂️", + ":man_surfing_tone5:": "🏄🏿‍♂️", + ":man_swimming:": "🏊‍♂️", + ":man_swimming_dark_skin_tone:": "🏊🏿‍♂️", + ":man_swimming_light_skin_tone:": "🏊🏻‍♂️", + ":man_swimming_medium_dark_skin_tone:": "🏊🏾‍♂️", + ":man_swimming_medium_light_skin_tone:": "🏊🏼‍♂️", + ":man_swimming_medium_skin_tone:": "🏊🏽‍♂️", + ":man_swimming_tone1:": "🏊🏻‍♂️", + ":man_swimming_tone2:": "🏊🏼‍♂️", + ":man_swimming_tone3:": "🏊🏽‍♂️", + ":man_swimming_tone4:": "🏊🏾‍♂️", + ":man_swimming_tone5:": "🏊🏿‍♂️", + ":man_teacher:": "👨‍🏫", + ":man_teacher_dark_skin_tone:": "👨🏿‍🏫", + ":man_teacher_light_skin_tone:": "👨🏻‍🏫", + ":man_teacher_medium_dark_skin_tone:": "👨🏾‍🏫", + ":man_teacher_medium_light_skin_tone:": "👨🏼‍🏫", + ":man_teacher_medium_skin_tone:": "👨🏽‍🏫", + ":man_teacher_tone1:": "👨🏻‍🏫", + ":man_teacher_tone2:": "👨🏼‍🏫", + ":man_teacher_tone3:": "👨🏽‍🏫", + ":man_teacher_tone4:": "👨🏾‍🏫", + ":man_teacher_tone5:": "👨🏿‍🏫", + ":man_technologist:": "👨‍💻", + ":man_technologist_dark_skin_tone:": "👨🏿‍💻", + ":man_technologist_light_skin_tone:": "👨🏻‍💻", + ":man_technologist_medium_dark_skin_tone:": "👨🏾‍💻", + ":man_technologist_medium_light_skin_tone:": "👨🏼‍💻", + ":man_technologist_medium_skin_tone:": "👨🏽‍💻", + ":man_technologist_tone1:": "👨🏻‍💻", + ":man_technologist_tone2:": "👨🏼‍💻", + ":man_technologist_tone3:": "👨🏽‍💻", + ":man_technologist_tone4:": "👨🏾‍💻", + ":man_technologist_tone5:": "👨🏿‍💻", + ":man_tipping_hand:": "💁‍♂️", + ":man_tipping_hand_dark_skin_tone:": "💁🏿‍♂️", + ":man_tipping_hand_light_skin_tone:": "💁🏻‍♂️", + ":man_tipping_hand_medium_dark_skin_tone:": "💁🏾‍♂️", + ":man_tipping_hand_medium_light_skin_tone:": "💁🏼‍♂️", + ":man_tipping_hand_medium_skin_tone:": "💁🏽‍♂️", + ":man_tipping_hand_tone1:": "💁🏻‍♂️", + ":man_tipping_hand_tone2:": "💁🏼‍♂️", + ":man_tipping_hand_tone3:": "💁🏽‍♂️", + ":man_tipping_hand_tone4:": "💁🏾‍♂️", + ":man_tipping_hand_tone5:": "💁🏿‍♂️", + ":man_tone1:": "👨🏻", + ":man_tone1_beard:": "🧔🏻‍♂️", + ":man_tone2:": "👨🏼", + ":man_tone2_beard:": "🧔🏼‍♂️", + ":man_tone3:": "👨🏽", + ":man_tone3_beard:": "🧔🏽‍♂️", + ":man_tone4:": "👨🏾", + ":man_tone4_beard:": "🧔🏾‍♂️", + ":man_tone5:": "👨🏿", + ":man_tone5_beard:": "🧔🏿‍♂️", + ":man_vampire:": "🧛‍♂️", + ":man_vampire_dark_skin_tone:": "🧛🏿‍♂️", + ":man_vampire_light_skin_tone:": "🧛🏻‍♂️", + ":man_vampire_medium_dark_skin_tone:": "🧛🏾‍♂️", + ":man_vampire_medium_light_skin_tone:": "🧛🏼‍♂️", + ":man_vampire_medium_skin_tone:": "🧛🏽‍♂️", + ":man_vampire_tone1:": "🧛🏻‍♂️", + ":man_vampire_tone2:": "🧛🏼‍♂️", + ":man_vampire_tone3:": "🧛🏽‍♂️", + ":man_vampire_tone4:": "🧛🏾‍♂️", + ":man_vampire_tone5:": "🧛🏿‍♂️", + ":man_walking:": "🚶‍♂️", + ":man_walking_dark_skin_tone:": "🚶🏿‍♂️", + ":man_walking_light_skin_tone:": "🚶🏻‍♂️", + ":man_walking_medium_dark_skin_tone:": "🚶🏾‍♂️", + ":man_walking_medium_light_skin_tone:": "🚶🏼‍♂️", + ":man_walking_medium_skin_tone:": "🚶🏽‍♂️", + ":man_walking_tone1:": "🚶🏻‍♂️", + ":man_walking_tone2:": "🚶🏼‍♂️", + ":man_walking_tone3:": "🚶🏽‍♂️", + ":man_walking_tone4:": "🚶🏾‍♂️", + ":man_walking_tone5:": "🚶🏿‍♂️", + ":man_wearing_turban:": "👳‍♂️", + ":man_wearing_turban_dark_skin_tone:": "👳🏿‍♂️", + ":man_wearing_turban_light_skin_tone:": "👳🏻‍♂️", + ":man_wearing_turban_medium_dark_skin_tone:": "👳🏾‍♂️", + ":man_wearing_turban_medium_light_skin_tone:": "👳🏼‍♂️", + ":man_wearing_turban_medium_skin_tone:": "👳🏽‍♂️", + ":man_wearing_turban_tone1:": "👳🏻‍♂️", + ":man_wearing_turban_tone2:": "👳🏼‍♂️", + ":man_wearing_turban_tone3:": "👳🏽‍♂️", + ":man_wearing_turban_tone4:": "👳🏾‍♂️", + ":man_wearing_turban_tone5:": "👳🏿‍♂️", + ":man_white_haired:": "👨‍🦳", + ":man_white_haired_dark_skin_tone:": "👨🏿‍🦳", + ":man_white_haired_light_skin_tone:": "👨🏻‍🦳", + ":man_white_haired_medium_dark_skin_tone:": "👨🏾‍🦳", + ":man_white_haired_medium_light_skin_tone:": "👨🏼‍🦳", + ":man_white_haired_medium_skin_tone:": "👨🏽‍🦳", + ":man_white_haired_tone1:": "👨🏻‍🦳", + ":man_white_haired_tone2:": "👨🏼‍🦳", + ":man_white_haired_tone3:": "👨🏽‍🦳", + ":man_white_haired_tone4:": "👨🏾‍🦳", + ":man_white_haired_tone5:": "👨🏿‍🦳", + ":man_with_chinese_cap:": "👲", + ":man_with_chinese_cap_tone1:": "👲🏻", + ":man_with_chinese_cap_tone2:": "👲🏼", + ":man_with_chinese_cap_tone3:": "👲🏽", + ":man_with_chinese_cap_tone4:": "👲🏾", + ":man_with_chinese_cap_tone5:": "👲🏿", + ":man_with_gua_pi_mao:": "👲", + ":man_with_gua_pi_mao_tone1:": "👲🏻", + ":man_with_gua_pi_mao_tone2:": "👲🏼", + ":man_with_gua_pi_mao_tone3:": "👲🏽", + ":man_with_gua_pi_mao_tone4:": "👲🏾", + ":man_with_gua_pi_mao_tone5:": "👲🏿", + ":man_with_probing_cane:": "👨‍🦯", + ":man_with_probing_cane_dark_skin_tone:": "👨🏿‍🦯", + ":man_with_probing_cane_light_skin_tone:": "👨🏻‍🦯", + ":man_with_probing_cane_medium_dark_skin_tone:": "👨🏾‍🦯", + ":man_with_probing_cane_medium_light_skin_tone:": "👨🏼‍🦯", + ":man_with_probing_cane_medium_skin_tone:": "👨🏽‍🦯", + ":man_with_probing_cane_tone1:": "👨🏻‍🦯", + ":man_with_probing_cane_tone2:": "👨🏼‍🦯", + ":man_with_probing_cane_tone3:": "👨🏽‍🦯", + ":man_with_probing_cane_tone4:": "👨🏾‍🦯", + ":man_with_probing_cane_tone5:": "👨🏿‍🦯", + ":man_with_turban:": "👳", + ":man_with_turban_tone1:": "👳🏻", + ":man_with_turban_tone2:": "👳🏼", + ":man_with_turban_tone3:": "👳🏽", + ":man_with_turban_tone4:": "👳🏾", + ":man_with_turban_tone5:": "👳🏿", + ":man_with_veil:": "👰‍♂️", + ":man_with_veil_dark_skin_tone:": "👰🏿‍♂️", + ":man_with_veil_light_skin_tone:": "👰🏻‍♂️", + ":man_with_veil_medium_dark_skin_tone:": "👰🏾‍♂️", + ":man_with_veil_medium_light_skin_tone:": "👰🏼‍♂️", + ":man_with_veil_medium_skin_tone:": "👰🏽‍♂️", + ":man_with_veil_tone1:": "👰🏻‍♂️", + ":man_with_veil_tone2:": "👰🏼‍♂️", + ":man_with_veil_tone3:": "👰🏽‍♂️", + ":man_with_veil_tone4:": "👰🏾‍♂️", + ":man_with_veil_tone5:": "👰🏿‍♂️", + ":man_zombie:": "🧟‍♂️", + ":mango:": "🥭", + ":mans_shoe:": "👞", + ":mantelpiece_clock:": "🕰", + ":mantlepiece_clock:": "🕰️", + ":manual_wheelchair:": "🦽", + ":map:": "🗺️", + ":maple_leaf:": "🍁", + ":marshall_islands:": "🇲🇭", + ":martial_arts_uniform:": "🥋", + ":martinique:": "🇲🇶", + ":mask:": "😷", + ":massage:": "💆", + ":massage_man:": "💆‍♂️", + ":massage_tone1:": "💆🏻", + ":massage_tone2:": "💆🏼", + ":massage_tone3:": "💆🏽", + ":massage_tone4:": "💆🏾", + ":massage_tone5:": "💆🏿", + ":massage_woman:": "💆", + ":mate:": "🧉", + ":mauritania:": "🇲🇷", + ":mauritius:": "🇲🇺", + ":mayotte:": "🇾🇹", + ":mc:": "🇲🇨", + ":md:": "🇲🇩", + ":me:": "🇲🇪", + ":meat_on_bone:": "🍖", + ":mechanic:": "🧑‍🔧", + ":mechanic_dark_skin_tone:": "🧑🏿‍🔧", + ":mechanic_light_skin_tone:": "🧑🏻‍🔧", + ":mechanic_medium_dark_skin_tone:": "🧑🏾‍🔧", + ":mechanic_medium_light_skin_tone:": "🧑🏼‍🔧", + ":mechanic_medium_skin_tone:": "🧑🏽‍🔧", + ":mechanic_tone1:": "🧑🏻‍🔧", + ":mechanic_tone2:": "🧑🏼‍🔧", + ":mechanic_tone3:": "🧑🏽‍🔧", + ":mechanic_tone4:": "🧑🏾‍🔧", + ":mechanic_tone5:": "🧑🏿‍🔧", + ":mechanical_arm:": "🦾", + ":mechanical_leg:": "🦿", + ":medal:": "🏅", + ":medal_military:": "🎖", + ":medal_sports:": "🏅", + ":medical_symbol:": "⚕️", + ":mega:": "📣", + ":melon:": "🍈", + ":memo:": "📝", + ":men_holding_hands_dark_skin_tone:": "👬🏿", + ":men_holding_hands_dark_skin_tone_light_skin_tone:": "👨🏿‍🤝‍👨🏻", + ":men_holding_hands_dark_skin_tone_medium_dark_skin_tone:": "👨🏿‍🤝‍👨🏾", + ":men_holding_hands_dark_skin_tone_medium_light_skin_tone:": "👨🏿‍🤝‍👨🏼", + ":men_holding_hands_dark_skin_tone_medium_skin_tone:": "👨🏿‍🤝‍👨🏽", + ":men_holding_hands_light_skin_tone:": "👬🏻", + ":men_holding_hands_light_skin_tone_dark_skin_tone:": "👨🏻‍🤝‍👨🏿", + ":men_holding_hands_light_skin_tone_medium_dark_skin_tone:": "👨🏻‍🤝‍👨🏾", + ":men_holding_hands_light_skin_tone_medium_light_skin_tone:": "👨🏻‍🤝‍👨🏼", + ":men_holding_hands_light_skin_tone_medium_skin_tone:": "👨🏻‍🤝‍👨🏽", + ":men_holding_hands_medium_dark_skin_tone:": "👬🏾", + ":men_holding_hands_medium_dark_skin_tone_dark_skin_tone:": "👨🏾‍🤝‍👨🏿", + ":men_holding_hands_medium_dark_skin_tone_light_skin_tone:": "👨🏾‍🤝‍👨🏻", + ":men_holding_hands_medium_dark_skin_tone_medium_light_skin_tone:": "👨🏾‍🤝‍👨🏼", + ":men_holding_hands_medium_dark_skin_tone_medium_skin_tone:": "👨🏾‍🤝‍👨🏽", + ":men_holding_hands_medium_light_skin_tone:": "👬🏼", + ":men_holding_hands_medium_light_skin_tone_dark_skin_tone:": "👨🏼‍🤝‍👨🏿", + ":men_holding_hands_medium_light_skin_tone_light_skin_tone:": "👨🏼‍🤝‍👨🏻", + ":men_holding_hands_medium_light_skin_tone_medium_dark_skin_tone:": "👨🏼‍🤝‍👨🏾", + ":men_holding_hands_medium_light_skin_tone_medium_skin_tone:": "👨🏼‍🤝‍👨🏽", + ":men_holding_hands_medium_skin_tone:": "👬🏽", + ":men_holding_hands_medium_skin_tone_dark_skin_tone:": "👨🏽‍🤝‍👨🏿", + ":men_holding_hands_medium_skin_tone_light_skin_tone:": "👨🏽‍🤝‍👨🏻", + ":men_holding_hands_medium_skin_tone_medium_dark_skin_tone:": "👨🏽‍🤝‍👨🏾", + ":men_holding_hands_medium_skin_tone_medium_light_skin_tone:": "👨🏽‍🤝‍👨🏼", + ":men_holding_hands_tone1:": "👬🏻", + ":men_holding_hands_tone1_tone2:": "👨🏻‍🤝‍👨🏼", + ":men_holding_hands_tone1_tone3:": "👨🏻‍🤝‍👨🏽", + ":men_holding_hands_tone1_tone4:": "👨🏻‍🤝‍👨🏾", + ":men_holding_hands_tone1_tone5:": "👨🏻‍🤝‍👨🏿", + ":men_holding_hands_tone2:": "👬🏼", + ":men_holding_hands_tone2_tone1:": "👨🏼‍🤝‍👨🏻", + ":men_holding_hands_tone2_tone3:": "👨🏼‍🤝‍👨🏽", + ":men_holding_hands_tone2_tone4:": "👨🏼‍🤝‍👨🏾", + ":men_holding_hands_tone2_tone5:": "👨🏼‍🤝‍👨🏿", + ":men_holding_hands_tone3:": "👬🏽", + ":men_holding_hands_tone3_tone1:": "👨🏽‍🤝‍👨🏻", + ":men_holding_hands_tone3_tone2:": "👨🏽‍🤝‍👨🏼", + ":men_holding_hands_tone3_tone4:": "👨🏽‍🤝‍👨🏾", + ":men_holding_hands_tone3_tone5:": "👨🏽‍🤝‍👨🏿", + ":men_holding_hands_tone4:": "👬🏾", + ":men_holding_hands_tone4_tone1:": "👨🏾‍🤝‍👨🏻", + ":men_holding_hands_tone4_tone2:": "👨🏾‍🤝‍👨🏼", + ":men_holding_hands_tone4_tone3:": "👨🏾‍🤝‍👨🏽", + ":men_holding_hands_tone4_tone5:": "👨🏾‍🤝‍👨🏿", + ":men_holding_hands_tone5:": "👬🏿", + ":men_holding_hands_tone5_tone1:": "👨🏿‍🤝‍👨🏻", + ":men_holding_hands_tone5_tone2:": "👨🏿‍🤝‍👨🏼", + ":men_holding_hands_tone5_tone3:": "👨🏿‍🤝‍👨🏽", + ":men_holding_hands_tone5_tone4:": "👨🏿‍🤝‍👨🏾", + ":men_with_bunny_ears_partying:": "👯‍♂️", + ":men_wrestling:": "🤼‍♂️", + ":mending_heart:": "❤️‍🩹", + ":menorah:": "🕎", + ":mens:": "🚹", + ":mermaid:": "🧜‍♀️", + ":mermaid_dark_skin_tone:": "🧜🏿‍♀️", + ":mermaid_light_skin_tone:": "🧜🏻‍♀️", + ":mermaid_medium_dark_skin_tone:": "🧜🏾‍♀️", + ":mermaid_medium_light_skin_tone:": "🧜🏼‍♀️", + ":mermaid_medium_skin_tone:": "🧜🏽‍♀️", + ":mermaid_tone1:": "🧜🏻‍♀️", + ":mermaid_tone2:": "🧜🏼‍♀️", + ":mermaid_tone3:": "🧜🏽‍♀️", + ":mermaid_tone4:": "🧜🏾‍♀️", + ":mermaid_tone5:": "🧜🏿‍♀️", + ":merman:": "🧜‍♂️", + ":merman_dark_skin_tone:": "🧜🏿‍♂️", + ":merman_light_skin_tone:": "🧜🏻‍♂️", + ":merman_medium_dark_skin_tone:": "🧜🏾‍♂️", + ":merman_medium_light_skin_tone:": "🧜🏼‍♂️", + ":merman_medium_skin_tone:": "🧜🏽‍♂️", + ":merman_tone1:": "🧜🏻‍♂️", + ":merman_tone2:": "🧜🏼‍♂️", + ":merman_tone3:": "🧜🏽‍♂️", + ":merman_tone4:": "🧜🏾‍♂️", + ":merman_tone5:": "🧜🏿‍♂️", + ":merperson:": "🧜", + ":merperson_dark_skin_tone:": "🧜🏿", + ":merperson_light_skin_tone:": "🧜🏻", + ":merperson_medium_dark_skin_tone:": "🧜🏾", + ":merperson_medium_light_skin_tone:": "🧜🏼", + ":merperson_medium_skin_tone:": "🧜🏽", + ":merperson_tone1:": "🧜🏻", + ":merperson_tone2:": "🧜🏼", + ":merperson_tone3:": "🧜🏽", + ":merperson_tone4:": "🧜🏾", + ":merperson_tone5:": "🧜🏿", + ":metal:": "🤘", + ":metal_tone1:": "🤘🏻", + ":metal_tone2:": "🤘🏼", + ":metal_tone3:": "🤘🏽", + ":metal_tone4:": "🤘🏾", + ":metal_tone5:": "🤘🏿", + ":metro:": "🚇", + ":mexico:": "🇲🇽", + ":mf:": "🇲🇫", + ":mg:": "🇲🇬", + ":mh:": "🇲🇭", + ":microbe:": "🦠", + ":micronesia:": "🇫🇲", + ":microphone2:": "🎙️", + ":microphone:": "🎤", + ":microscope:": "🔬", + ":middle_finger:": "🖕", + ":middle_finger_tone1:": "🖕🏻", + ":middle_finger_tone2:": "🖕🏼", + ":middle_finger_tone3:": "🖕🏽", + ":middle_finger_tone4:": "🖕🏾", + ":middle_finger_tone5:": "🖕🏿", + ":military_helmet:": "🪖", + ":military_medal:": "🎖️", + ":milk:": "🥛", + ":milk_glass:": "🥛", + ":milky_way:": "🌌", + ":minibus:": "🚐", + ":minidisc:": "💽", + ":mirror:": "🪞", + ":mk:": "🇲🇰", + ":ml:": "🇲🇱", + ":mm:": "🇲🇲", + ":mn:": "🇲🇳", + ":mo:": "🇲🇴", + ":mobile_phone:": "📱", + ":mobile_phone_off:": "📴", + ":moldova:": "🇲🇩", + ":monaco:": "🇲🇨", + ":money_mouth:": "🤑", + ":money_mouth_face:": "🤑", + ":money_with_wings:": "💸", + ":moneybag:": "💰", + ":mongolia:": "🇲🇳", + ":monkey:": "🐒", + ":monkey_face:": "🐵", + ":monorail:": "🚝", + ":montenegro:": "🇲🇪", + ":montserrat:": "🇲🇸", + ":moon:": "🌔", + ":moon_cake:": "🥮", + ":morocco:": "🇲🇦", + ":mortar_board:": "🎓", + ":mosque:": "🕌", + ":mosquito:": "🦟", + ":mother_christmas:": "🤶", + ":mother_christmas_tone1:": "🤶🏻", + ":mother_christmas_tone2:": "🤶🏼", + ":mother_christmas_tone3:": "🤶🏽", + ":mother_christmas_tone4:": "🤶🏾", + ":mother_christmas_tone5:": "🤶🏿", + ":motor_boat:": "🛥", + ":motor_scooter:": "🛵", + ":motorbike:": "🛵", + ":motorboat:": "🛥️", + ":motorcycle:": "🏍️", + ":motorized_wheelchair:": "🦼", + ":motorway:": "🛣️", + ":mount_fuji:": "🗻", + ":mountain:": "⛰️", + ":mountain_bicyclist:": "🚵", + ":mountain_bicyclist_tone1:": "🚵🏻", + ":mountain_bicyclist_tone2:": "🚵🏼", + ":mountain_bicyclist_tone3:": "🚵🏽", + ":mountain_bicyclist_tone4:": "🚵🏾", + ":mountain_bicyclist_tone5:": "🚵🏿", + ":mountain_biking_man:": "🚵", + ":mountain_biking_woman:": "🚵‍♀️", + ":mountain_cableway:": "🚠", + ":mountain_railway:": "🚞", + ":mountain_snow:": "🏔️", + ":mouse2:": "🐁", + ":mouse:": "🐭", + ":mouse_three_button:": "🖱️", + ":mouse_trap:": "🪤", + ":movie_camera:": "🎥", + ":moyai:": "🗿", + ":mozambique:": "🇲🇿", + ":mp:": "🇲🇵", + ":mq:": "🇲🇶", + ":mr:": "🇲🇷", + ":mrs_claus:": "🤶", + ":mrs_claus_tone1:": "🤶🏻", + ":mrs_claus_tone2:": "🤶🏼", + ":mrs_claus_tone3:": "🤶🏽", + ":mrs_claus_tone4:": "🤶🏾", + ":mrs_claus_tone5:": "🤶🏿", + ":ms:": "🇲🇸", + ":mt:": "🇲🇹", + ":mu:": "🇲🇺", + ":muscle:": "💪", + ":muscle_tone1:": "💪🏻", + ":muscle_tone2:": "💪🏼", + ":muscle_tone3:": "💪🏽", + ":muscle_tone4:": "💪🏾", + ":muscle_tone5:": "💪🏿", + ":mushroom:": "🍄", + ":musical_keyboard:": "🎹", + ":musical_note:": "🎵", + ":musical_score:": "🎼", + ":mute:": "🔇", + ":mv:": "🇲🇻", + ":mw:": "🇲🇼", + ":mx:": "🇲🇽", + ":mx_claus:": "🧑‍🎄", + ":mx_claus_dark_skin_tone:": "🧑🏿‍🎄", + ":mx_claus_light_skin_tone:": "🧑🏻‍🎄", + ":mx_claus_medium_dark_skin_tone:": "🧑🏾‍🎄", + ":mx_claus_medium_light_skin_tone:": "🧑🏼‍🎄", + ":mx_claus_medium_skin_tone:": "🧑🏽‍🎄", + ":mx_claus_tone1:": "🧑🏻‍🎄", + ":mx_claus_tone2:": "🧑🏼‍🎄", + ":mx_claus_tone3:": "🧑🏽‍🎄", + ":mx_claus_tone4:": "🧑🏾‍🎄", + ":mx_claus_tone5:": "🧑🏿‍🎄", + ":my:": "🇲🇾", + ":myanmar:": "🇲🇲", + ":mz:": "🇲🇿", + ":na:": "🇳🇦", + ":nail_care:": "💅", + ":nail_care_tone1:": "💅🏻", + ":nail_care_tone2:": "💅🏼", + ":nail_care_tone3:": "💅🏽", + ":nail_care_tone4:": "💅🏾", + ":nail_care_tone5:": "💅🏿", + ":name_badge:": "📛", + ":namibia:": "🇳🇦", + ":national_park:": "🏞️", + ":nauru:": "🇳🇷", + ":nauseated_face:": "🤢", + ":nazar_amulet:": "🧿", + ":nc:": "🇳🇨", + ":ne:": "🇳🇪", + ":necktie:": "👔", + ":negative_squared_cross_mark:": "❎", + ":nepal:": "🇳🇵", + ":nerd:": "🤓", + ":nerd_face:": "🤓", + ":nesting_dolls:": "🪆", + ":netherlands:": "🇳🇱", + ":neutral_face:": "😐", + ":new:": "🆕", + ":new_caledonia:": "🇳🇨", + ":new_moon:": "🌑", + ":new_moon_with_face:": "🌚", + ":new_zealand:": "🇳🇿", + ":newspaper2:": "🗞️", + ":newspaper:": "📰", + ":newspaper_roll:": "🗞", + ":next_track:": "⏭️", + ":next_track_button:": "⏭", + ":nf:": "🇳🇫", + ":ng:": "🆖", + ":ni:": "🇳🇮", + ":nicaragua:": "🇳🇮", + ":niger:": "🇳🇪", + ":nigeria:": "🇳🇬", + ":night_with_stars:": "🌃", + ":nine:": "9️⃣", + ":ninja:": "🥷", + ":ninja_dark_skin_tone:": "🥷🏿", + ":ninja_light_skin_tone:": "🥷🏻", + ":ninja_medium_dark_skin_tone:": "🥷🏾", + ":ninja_medium_light_skin_tone:": "🥷🏼", + ":ninja_medium_skin_tone:": "🥷🏽", + ":ninja_tone1:": "🥷🏻", + ":ninja_tone2:": "🥷🏼", + ":ninja_tone3:": "🥷🏽", + ":ninja_tone4:": "🥷🏾", + ":ninja_tone5:": "🥷🏿", + ":niue:": "🇳🇺", + ":nl:": "🇳🇱", + ":no:": "🇳🇴", + ":no_bell:": "🔕", + ":no_bicycles:": "🚳", + ":no_entry:": "⛔", + ":no_entry_sign:": "🚫", + ":no_good:": "🙅", + ":no_good_man:": "🙅‍♂️", + ":no_good_tone1:": "🙅🏻", + ":no_good_tone2:": "🙅🏼", + ":no_good_tone3:": "🙅🏽", + ":no_good_tone4:": "🙅🏾", + ":no_good_tone5:": "🙅🏿", + ":no_good_woman:": "🙅", + ":no_mobile_phones:": "📵", + ":no_mouth:": "😶", + ":no_pedestrians:": "🚷", + ":no_smoking:": "🚭", + ":non-potable_water:": "🚱", + ":norfolk_island:": "🇳🇫", + ":north_korea:": "🇰🇵", + ":northern_mariana_islands:": "🇲🇵", + ":norway:": "🇳🇴", + ":nose:": "👃", + ":nose_tone1:": "👃🏻", + ":nose_tone2:": "👃🏼", + ":nose_tone3:": "👃🏽", + ":nose_tone4:": "👃🏾", + ":nose_tone5:": "👃🏿", + ":notebook:": "📓", + ":notebook_with_decorative_cover:": "📔", + ":notepad_spiral:": "🗒️", + ":notes:": "🎶", + ":np:": "🇳🇵", + ":nr:": "🇳🇷", + ":nu:": "🇳🇺", + ":nut_and_bolt:": "🔩", + ":nz:": "🇳🇿", + ":o2:": "🅾️", + ":o:": "⭕", + ":ocean:": "🌊", + ":octagonal_sign:": "🛑", + ":octopus:": "🐙", + ":oden:": "🍢", + ":office:": "🏢", + ":office_worker:": "🧑‍💼", + ":office_worker_dark_skin_tone:": "🧑🏿‍💼", + ":office_worker_light_skin_tone:": "🧑🏻‍💼", + ":office_worker_medium_dark_skin_tone:": "🧑🏾‍💼", + ":office_worker_medium_light_skin_tone:": "🧑🏼‍💼", + ":office_worker_medium_skin_tone:": "🧑🏽‍💼", + ":office_worker_tone1:": "🧑🏻‍💼", + ":office_worker_tone2:": "🧑🏼‍💼", + ":office_worker_tone3:": "🧑🏽‍💼", + ":office_worker_tone4:": "🧑🏾‍💼", + ":office_worker_tone5:": "🧑🏿‍💼", + ":oil:": "🛢️", + ":oil_drum:": "🛢️", + ":ok:": "🆗", + ":ok_hand:": "👌", + ":ok_hand_tone1:": "👌🏻", + ":ok_hand_tone2:": "👌🏼", + ":ok_hand_tone3:": "👌🏽", + ":ok_hand_tone4:": "👌🏾", + ":ok_hand_tone5:": "👌🏿", + ":ok_man:": "🙆‍♂️", + ":ok_woman:": "🙆", + ":ok_woman_tone1:": "🙆🏻", + ":ok_woman_tone2:": "🙆🏼", + ":ok_woman_tone3:": "🙆🏽", + ":ok_woman_tone4:": "🙆🏾", + ":ok_woman_tone5:": "🙆🏿", + ":old_key:": "🗝️", + ":older_adult:": "🧓", + ":older_adult_dark_skin_tone:": "🧓🏿", + ":older_adult_light_skin_tone:": "🧓🏻", + ":older_adult_medium_dark_skin_tone:": "🧓🏾", + ":older_adult_medium_light_skin_tone:": "🧓🏼", + ":older_adult_medium_skin_tone:": "🧓🏽", + ":older_adult_tone1:": "🧓🏻", + ":older_adult_tone2:": "🧓🏼", + ":older_adult_tone3:": "🧓🏽", + ":older_adult_tone4:": "🧓🏾", + ":older_adult_tone5:": "🧓🏿", + ":older_man:": "👴", + ":older_man_tone1:": "👴🏻", + ":older_man_tone2:": "👴🏼", + ":older_man_tone3:": "👴🏽", + ":older_man_tone4:": "👴🏾", + ":older_man_tone5:": "👴🏿", + ":older_woman:": "👵", + ":older_woman_tone1:": "👵🏻", + ":older_woman_tone2:": "👵🏼", + ":older_woman_tone3:": "👵🏽", + ":older_woman_tone4:": "👵🏾", + ":older_woman_tone5:": "👵🏿", + ":olive:": "🫒", + ":om:": "🇴🇲", + ":om_symbol:": "🕉️", + ":oman:": "🇴🇲", + ":on:": "🔛", + ":oncoming_automobile:": "🚘", + ":oncoming_bus:": "🚍", + ":oncoming_police_car:": "🚔", + ":oncoming_taxi:": "🚖", + ":one:": "1️⃣", + ":one_piece_swimsuit:": "🩱", + ":onion:": "🧅", + ":open_file_folder:": "📂", + ":open_hands:": "👐", + ":open_hands_tone1:": "👐🏻", + ":open_hands_tone2:": "👐🏼", + ":open_hands_tone3:": "👐🏽", + ":open_hands_tone4:": "👐🏾", + ":open_hands_tone5:": "👐🏿", + ":open_mouth:": "😮", + ":open_umbrella:": "☂️", + ":ophiuchus:": "⛎", + ":orange_book:": "📙", + ":orange_circle:": "🟠", + ":orange_heart:": "🧡", + ":orange_square:": "🟧", + ":orangutan:": "🦧", + ":orthodox_cross:": "☦️", + ":otter:": "🦦", + ":outbox_tray:": "📤", + ":owl:": "🦉", + ":ox:": "🐂", + ":oyster:": "🦪", + ":pa:": "🇵🇦", + ":package:": "📦", + ":paella:": "🥘", + ":page_facing_up:": "📄", + ":page_with_curl:": "📃", + ":pager:": "📟", + ":paintbrush:": "🖌️", + ":pakistan:": "🇵🇰", + ":palau:": "🇵🇼", + ":palestinian_territories:": "🇵🇸", + ":palm_tree:": "🌴", + ":palms_up_together:": "🤲", + ":palms_up_together_dark_skin_tone:": "🤲🏿", + ":palms_up_together_light_skin_tone:": "🤲🏻", + ":palms_up_together_medium_dark_skin_tone:": "🤲🏾", + ":palms_up_together_medium_light_skin_tone:": "🤲🏼", + ":palms_up_together_medium_skin_tone:": "🤲🏽", + ":palms_up_together_tone1:": "🤲🏻", + ":palms_up_together_tone2:": "🤲🏼", + ":palms_up_together_tone3:": "🤲🏽", + ":palms_up_together_tone4:": "🤲🏾", + ":palms_up_together_tone5:": "🤲🏿", + ":panama:": "🇵🇦", + ":pancakes:": "🥞", + ":panda_face:": "🐼", + ":paperclip:": "📎", + ":paperclips:": "🖇️", + ":papua_new_guinea:": "🇵🇬", + ":parachute:": "🪂", + ":paraguay:": "🇵🇾", + ":parasol_on_ground:": "⛱", + ":park:": "🏞️", + ":parking:": "🅿️", + ":parrot:": "🦜", + ":part_alternation_mark:": "〽️", + ":partly_sunny:": "⛅", + ":partying_face:": "🥳", + ":passenger_ship:": "🛳️", + ":passport_control:": "🛂", + ":pause_button:": "⏸️", + ":paw_prints:": "🐾", + ":pe:": "🇵🇪", + ":peace:": "☮️", + ":peace_symbol:": "☮️", + ":peach:": "🍑", + ":peacock:": "🦚", + ":peanuts:": "🥜", + ":pear:": "🍐", + ":pen:": "🖊", + ":pen_ballpoint:": "🖊️", + ":pen_fountain:": "🖋️", + ":pencil2:": "✏️", + ":pencil:": "📝", + ":penguin:": "🐧", + ":pensive:": "😔", + ":people_holding_hands:": "🧑‍🤝‍🧑", + ":people_holding_hands_dark_skin_tone:": "🧑🏿‍🤝‍🧑🏿", + ":people_holding_hands_dark_skin_tone_light_skin_tone:": "🧑🏿‍🤝‍🧑🏻", + ":people_holding_hands_dark_skin_tone_medium_dark_skin_tone:": "🧑🏿‍🤝‍🧑🏾", + ":people_holding_hands_dark_skin_tone_medium_light_skin_tone:": "🧑🏿‍🤝‍🧑🏼", + ":people_holding_hands_dark_skin_tone_medium_skin_tone:": "🧑🏿‍🤝‍🧑🏽", + ":people_holding_hands_light_skin_tone:": "🧑🏻‍🤝‍🧑🏻", + ":people_holding_hands_light_skin_tone_dark_skin_tone:": "🧑🏻‍🤝‍🧑🏿", + ":people_holding_hands_light_skin_tone_medium_dark_skin_tone:": "🧑🏻‍🤝‍🧑🏾", + ":people_holding_hands_light_skin_tone_medium_light_skin_tone:": "🧑🏻‍🤝‍🧑🏼", + ":people_holding_hands_light_skin_tone_medium_skin_tone:": "🧑🏻‍🤝‍🧑🏽", + ":people_holding_hands_medium_dark_skin_tone:": "🧑🏾‍🤝‍🧑🏾", + ":people_holding_hands_medium_dark_skin_tone_dark_skin_tone:": "🧑🏾‍🤝‍🧑🏿", + ":people_holding_hands_medium_dark_skin_tone_light_skin_tone:": "🧑🏾‍🤝‍🧑🏻", + ":people_holding_hands_medium_dark_skin_tone_medium_light_skin_tone:": "🧑🏾‍🤝‍🧑🏼", + ":people_holding_hands_medium_dark_skin_tone_medium_skin_tone:": "🧑🏾‍🤝‍🧑🏽", + ":people_holding_hands_medium_light_skin_tone:": "🧑🏼‍🤝‍🧑🏼", + ":people_holding_hands_medium_light_skin_tone_dark_skin_tone:": "🧑🏼‍🤝‍🧑🏿", + ":people_holding_hands_medium_light_skin_tone_light_skin_tone:": "🧑🏼‍🤝‍🧑🏻", + ":people_holding_hands_medium_light_skin_tone_medium_dark_skin_tone:": "🧑🏼‍🤝‍🧑🏾", + ":people_holding_hands_medium_light_skin_tone_medium_skin_tone:": "🧑🏼‍🤝‍🧑🏽", + ":people_holding_hands_medium_skin_tone:": "🧑🏽‍🤝‍🧑🏽", + ":people_holding_hands_medium_skin_tone_dark_skin_tone:": "🧑🏽‍🤝‍🧑🏿", + ":people_holding_hands_medium_skin_tone_light_skin_tone:": "🧑🏽‍🤝‍🧑🏻", + ":people_holding_hands_medium_skin_tone_medium_dark_skin_tone:": "🧑🏽‍🤝‍🧑🏾", + ":people_holding_hands_medium_skin_tone_medium_light_skin_tone:": "🧑🏽‍🤝‍🧑🏼", + ":people_holding_hands_tone1:": "🧑🏻‍🤝‍🧑🏻", + ":people_holding_hands_tone1_tone2:": "🧑🏻‍🤝‍🧑🏼", + ":people_holding_hands_tone1_tone3:": "🧑🏻‍🤝‍🧑🏽", + ":people_holding_hands_tone1_tone4:": "🧑🏻‍🤝‍🧑🏾", + ":people_holding_hands_tone1_tone5:": "🧑🏻‍🤝‍🧑🏿", + ":people_holding_hands_tone2:": "🧑🏼‍🤝‍🧑🏼", + ":people_holding_hands_tone2_tone1:": "🧑🏼‍🤝‍🧑🏻", + ":people_holding_hands_tone2_tone3:": "🧑🏼‍🤝‍🧑🏽", + ":people_holding_hands_tone2_tone4:": "🧑🏼‍🤝‍🧑🏾", + ":people_holding_hands_tone2_tone5:": "🧑🏼‍🤝‍🧑🏿", + ":people_holding_hands_tone3:": "🧑🏽‍🤝‍🧑🏽", + ":people_holding_hands_tone3_tone1:": "🧑🏽‍🤝‍🧑🏻", + ":people_holding_hands_tone3_tone2:": "🧑🏽‍🤝‍🧑🏼", + ":people_holding_hands_tone3_tone4:": "🧑🏽‍🤝‍🧑🏾", + ":people_holding_hands_tone3_tone5:": "🧑🏽‍🤝‍🧑🏿", + ":people_holding_hands_tone4:": "🧑🏾‍🤝‍🧑🏾", + ":people_holding_hands_tone4_tone1:": "🧑🏾‍🤝‍🧑🏻", + ":people_holding_hands_tone4_tone2:": "🧑🏾‍🤝‍🧑🏼", + ":people_holding_hands_tone4_tone3:": "🧑🏾‍🤝‍🧑🏽", + ":people_holding_hands_tone4_tone5:": "🧑🏾‍🤝‍🧑🏿", + ":people_holding_hands_tone5:": "🧑🏿‍🤝‍🧑🏿", + ":people_holding_hands_tone5_tone1:": "🧑🏿‍🤝‍🧑🏻", + ":people_holding_hands_tone5_tone2:": "🧑🏿‍🤝‍🧑🏼", + ":people_holding_hands_tone5_tone3:": "🧑🏿‍🤝‍🧑🏽", + ":people_holding_hands_tone5_tone4:": "🧑🏿‍🤝‍🧑🏾", + ":people_hugging:": "🫂", + ":people_with_bunny_ears_partying:": "👯", + ":people_wrestling:": "🤼", + ":performing_arts:": "🎭", + ":persevere:": "😣", + ":person_bald:": "🧑‍🦲", + ":person_biking:": "🚴", + ":person_biking_tone1:": "🚴🏻", + ":person_biking_tone2:": "🚴🏼", + ":person_biking_tone3:": "🚴🏽", + ":person_biking_tone4:": "🚴🏾", + ":person_biking_tone5:": "🚴🏿", + ":person_bouncing_ball:": "⛹", + ":person_bouncing_ball_tone1:": "⛹🏻", + ":person_bouncing_ball_tone2:": "⛹🏼", + ":person_bouncing_ball_tone3:": "⛹🏽", + ":person_bouncing_ball_tone4:": "⛹🏾", + ":person_bouncing_ball_tone5:": "⛹🏿", + ":person_bowing:": "🙇", + ":person_bowing_tone1:": "🙇🏻", + ":person_bowing_tone2:": "🙇🏼", + ":person_bowing_tone3:": "🙇🏽", + ":person_bowing_tone4:": "🙇🏾", + ":person_bowing_tone5:": "🙇🏿", + ":person_climbing:": "🧗", + ":person_climbing_dark_skin_tone:": "🧗🏿", + ":person_climbing_light_skin_tone:": "🧗🏻", + ":person_climbing_medium_dark_skin_tone:": "🧗🏾", + ":person_climbing_medium_light_skin_tone:": "🧗🏼", + ":person_climbing_medium_skin_tone:": "🧗🏽", + ":person_climbing_tone1:": "🧗🏻", + ":person_climbing_tone2:": "🧗🏼", + ":person_climbing_tone3:": "🧗🏽", + ":person_climbing_tone4:": "🧗🏾", + ":person_climbing_tone5:": "🧗🏿", + ":person_curly_hair:": "🧑‍🦱", + ":person_dark_skin_tone_bald:": "🧑🏿‍🦲", + ":person_dark_skin_tone_curly_hair:": "🧑🏿‍🦱", + ":person_dark_skin_tone_red_hair:": "🧑🏿‍🦰", + ":person_dark_skin_tone_white_hair:": "🧑🏿‍🦳", + ":person_doing_cartwheel:": "🤸", + ":person_doing_cartwheel_tone1:": "🤸🏻", + ":person_doing_cartwheel_tone2:": "🤸🏼", + ":person_doing_cartwheel_tone3:": "🤸🏽", + ":person_doing_cartwheel_tone4:": "🤸🏾", + ":person_doing_cartwheel_tone5:": "🤸🏿", + ":person_facepalming:": "🤦", + ":person_facepalming_tone1:": "🤦🏻", + ":person_facepalming_tone2:": "🤦🏼", + ":person_facepalming_tone3:": "🤦🏽", + ":person_facepalming_tone4:": "🤦🏾", + ":person_facepalming_tone5:": "🤦🏿", + ":person_feeding_baby:": "🧑‍🍼", + ":person_feeding_baby_dark_skin_tone:": "🧑🏿‍🍼", + ":person_feeding_baby_light_skin_tone:": "🧑🏻‍🍼", + ":person_feeding_baby_medium_dark_skin_tone:": "🧑🏾‍🍼", + ":person_feeding_baby_medium_light_skin_tone:": "🧑🏼‍🍼", + ":person_feeding_baby_medium_skin_tone:": "🧑🏽‍🍼", + ":person_feeding_baby_tone1:": "🧑🏻‍🍼", + ":person_feeding_baby_tone2:": "🧑🏼‍🍼", + ":person_feeding_baby_tone3:": "🧑🏽‍🍼", + ":person_feeding_baby_tone4:": "🧑🏾‍🍼", + ":person_feeding_baby_tone5:": "🧑🏿‍🍼", + ":person_fencing:": "🤺", + ":person_frowning:": "🙍", + ":person_frowning_tone1:": "🙍🏻", + ":person_frowning_tone2:": "🙍🏼", + ":person_frowning_tone3:": "🙍🏽", + ":person_frowning_tone4:": "🙍🏾", + ":person_frowning_tone5:": "🙍🏿", + ":person_gesturing_no:": "🙅", + ":person_gesturing_no_tone1:": "🙅🏻", + ":person_gesturing_no_tone2:": "🙅🏼", + ":person_gesturing_no_tone3:": "🙅🏽", + ":person_gesturing_no_tone4:": "🙅🏾", + ":person_gesturing_no_tone5:": "🙅🏿", + ":person_gesturing_ok:": "🙆", + ":person_gesturing_ok_tone1:": "🙆🏻", + ":person_gesturing_ok_tone2:": "🙆🏼", + ":person_gesturing_ok_tone3:": "🙆🏽", + ":person_gesturing_ok_tone4:": "🙆🏾", + ":person_gesturing_ok_tone5:": "🙆🏿", + ":person_getting_haircut:": "💇", + ":person_getting_haircut_tone1:": "💇🏻", + ":person_getting_haircut_tone2:": "💇🏼", + ":person_getting_haircut_tone3:": "💇🏽", + ":person_getting_haircut_tone4:": "💇🏾", + ":person_getting_haircut_tone5:": "💇🏿", + ":person_getting_massage:": "💆", + ":person_getting_massage_tone1:": "💆🏻", + ":person_getting_massage_tone2:": "💆🏼", + ":person_getting_massage_tone3:": "💆🏽", + ":person_getting_massage_tone4:": "💆🏾", + ":person_getting_massage_tone5:": "💆🏿", + ":person_golfing:": "🏌", + ":person_golfing_dark_skin_tone:": "🏌🏿", + ":person_golfing_light_skin_tone:": "🏌🏻", + ":person_golfing_medium_dark_skin_tone:": "🏌🏾", + ":person_golfing_medium_light_skin_tone:": "🏌🏼", + ":person_golfing_medium_skin_tone:": "🏌🏽", + ":person_golfing_tone1:": "🏌🏻", + ":person_golfing_tone2:": "🏌🏼", + ":person_golfing_tone3:": "🏌🏽", + ":person_golfing_tone4:": "🏌🏾", + ":person_golfing_tone5:": "🏌🏿", + ":person_in_bed_dark_skin_tone:": "🛌🏿", + ":person_in_bed_light_skin_tone:": "🛌🏻", + ":person_in_bed_medium_dark_skin_tone:": "🛌🏾", + ":person_in_bed_medium_light_skin_tone:": "🛌🏼", + ":person_in_bed_medium_skin_tone:": "🛌🏽", + ":person_in_bed_tone1:": "🛌🏻", + ":person_in_bed_tone2:": "🛌🏼", + ":person_in_bed_tone3:": "🛌🏽", + ":person_in_bed_tone4:": "🛌🏾", + ":person_in_bed_tone5:": "🛌🏿", + ":person_in_lotus_position:": "🧘", + ":person_in_lotus_position_dark_skin_tone:": "🧘🏿", + ":person_in_lotus_position_light_skin_tone:": "🧘🏻", + ":person_in_lotus_position_medium_dark_skin_tone:": "🧘🏾", + ":person_in_lotus_position_medium_light_skin_tone:": "🧘🏼", + ":person_in_lotus_position_medium_skin_tone:": "🧘🏽", + ":person_in_lotus_position_tone1:": "🧘🏻", + ":person_in_lotus_position_tone2:": "🧘🏼", + ":person_in_lotus_position_tone3:": "🧘🏽", + ":person_in_lotus_position_tone4:": "🧘🏾", + ":person_in_lotus_position_tone5:": "🧘🏿", + ":person_in_manual_wheelchair:": "🧑‍🦽", + ":person_in_manual_wheelchair_dark_skin_tone:": "🧑🏿‍🦽", + ":person_in_manual_wheelchair_light_skin_tone:": "🧑🏻‍🦽", + ":person_in_manual_wheelchair_medium_dark_skin_tone:": "🧑🏾‍🦽", + ":person_in_manual_wheelchair_medium_light_skin_tone:": "🧑🏼‍🦽", + ":person_in_manual_wheelchair_medium_skin_tone:": "🧑🏽‍🦽", + ":person_in_manual_wheelchair_tone1:": "🧑🏻‍🦽", + ":person_in_manual_wheelchair_tone2:": "🧑🏼‍🦽", + ":person_in_manual_wheelchair_tone3:": "🧑🏽‍🦽", + ":person_in_manual_wheelchair_tone4:": "🧑🏾‍🦽", + ":person_in_manual_wheelchair_tone5:": "🧑🏿‍🦽", + ":person_in_motorized_wheelchair:": "🧑‍🦼", + ":person_in_motorized_wheelchair_dark_skin_tone:": "🧑🏿‍🦼", + ":person_in_motorized_wheelchair_light_skin_tone:": "🧑🏻‍🦼", + ":person_in_motorized_wheelchair_medium_dark_skin_tone:": "🧑🏾‍🦼", + ":person_in_motorized_wheelchair_medium_light_skin_tone:": "🧑🏼‍🦼", + ":person_in_motorized_wheelchair_medium_skin_tone:": "🧑🏽‍🦼", + ":person_in_motorized_wheelchair_tone1:": "🧑🏻‍🦼", + ":person_in_motorized_wheelchair_tone2:": "🧑🏼‍🦼", + ":person_in_motorized_wheelchair_tone3:": "🧑🏽‍🦼", + ":person_in_motorized_wheelchair_tone4:": "🧑🏾‍🦼", + ":person_in_motorized_wheelchair_tone5:": "🧑🏿‍🦼", + ":person_in_steamy_room:": "🧖", + ":person_in_steamy_room_dark_skin_tone:": "🧖🏿", + ":person_in_steamy_room_light_skin_tone:": "🧖🏻", + ":person_in_steamy_room_medium_dark_skin_tone:": "🧖🏾", + ":person_in_steamy_room_medium_light_skin_tone:": "🧖🏼", + ":person_in_steamy_room_medium_skin_tone:": "🧖🏽", + ":person_in_steamy_room_tone1:": "🧖🏻", + ":person_in_steamy_room_tone2:": "🧖🏼", + ":person_in_steamy_room_tone3:": "🧖🏽", + ":person_in_steamy_room_tone4:": "🧖🏾", + ":person_in_steamy_room_tone5:": "🧖🏿", + ":person_in_tuxedo:": "🤵", + ":person_in_tuxedo_tone1:": "🤵🏻", + ":person_in_tuxedo_tone2:": "🤵🏼", + ":person_in_tuxedo_tone3:": "🤵🏽", + ":person_in_tuxedo_tone4:": "🤵🏾", + ":person_in_tuxedo_tone5:": "🤵🏿", + ":person_juggling:": "🤹", + ":person_juggling_tone1:": "🤹🏻", + ":person_juggling_tone2:": "🤹🏼", + ":person_juggling_tone3:": "🤹🏽", + ":person_juggling_tone4:": "🤹🏾", + ":person_juggling_tone5:": "🤹🏿", + ":person_kneeling:": "🧎", + ":person_kneeling_dark_skin_tone:": "🧎🏿", + ":person_kneeling_light_skin_tone:": "🧎🏻", + ":person_kneeling_medium_dark_skin_tone:": "🧎🏾", + ":person_kneeling_medium_light_skin_tone:": "🧎🏼", + ":person_kneeling_medium_skin_tone:": "🧎🏽", + ":person_kneeling_tone1:": "🧎🏻", + ":person_kneeling_tone2:": "🧎🏼", + ":person_kneeling_tone3:": "🧎🏽", + ":person_kneeling_tone4:": "🧎🏾", + ":person_kneeling_tone5:": "🧎🏿", + ":person_lifting_weights:": "🏋", + ":person_lifting_weights_tone1:": "🏋🏻", + ":person_lifting_weights_tone2:": "🏋🏼", + ":person_lifting_weights_tone3:": "🏋🏽", + ":person_lifting_weights_tone4:": "🏋🏾", + ":person_lifting_weights_tone5:": "🏋🏿", + ":person_light_skin_tone_bald:": "🧑🏻‍🦲", + ":person_light_skin_tone_curly_hair:": "🧑🏻‍🦱", + ":person_light_skin_tone_red_hair:": "🧑🏻‍🦰", + ":person_light_skin_tone_white_hair:": "🧑🏻‍🦳", + ":person_medium_dark_skin_tone_bald:": "🧑🏾‍🦲", + ":person_medium_dark_skin_tone_curly_hair:": "🧑🏾‍🦱", + ":person_medium_dark_skin_tone_red_hair:": "🧑🏾‍🦰", + ":person_medium_dark_skin_tone_white_hair:": "🧑🏾‍🦳", + ":person_medium_light_skin_tone_bald:": "🧑🏼‍🦲", + ":person_medium_light_skin_tone_curly_hair:": "🧑🏼‍🦱", + ":person_medium_light_skin_tone_red_hair:": "🧑🏼‍🦰", + ":person_medium_light_skin_tone_white_hair:": "🧑🏼‍🦳", + ":person_medium_skin_tone_bald:": "🧑🏽‍🦲", + ":person_medium_skin_tone_curly_hair:": "🧑🏽‍🦱", + ":person_medium_skin_tone_red_hair:": "🧑🏽‍🦰", + ":person_medium_skin_tone_white_hair:": "🧑🏽‍🦳", + ":person_mountain_biking:": "🚵", + ":person_mountain_biking_tone1:": "🚵🏻", + ":person_mountain_biking_tone2:": "🚵🏼", + ":person_mountain_biking_tone3:": "🚵🏽", + ":person_mountain_biking_tone4:": "🚵🏾", + ":person_mountain_biking_tone5:": "🚵🏿", + ":person_playing_handball:": "🤾", + ":person_playing_handball_tone1:": "🤾🏻", + ":person_playing_handball_tone2:": "🤾🏼", + ":person_playing_handball_tone3:": "🤾🏽", + ":person_playing_handball_tone4:": "🤾🏾", + ":person_playing_handball_tone5:": "🤾🏿", + ":person_playing_water_polo:": "🤽", + ":person_playing_water_polo_tone1:": "🤽🏻", + ":person_playing_water_polo_tone2:": "🤽🏼", + ":person_playing_water_polo_tone3:": "🤽🏽", + ":person_playing_water_polo_tone4:": "🤽🏾", + ":person_playing_water_polo_tone5:": "🤽🏿", + ":person_pouting:": "🙎", + ":person_pouting_tone1:": "🙎🏻", + ":person_pouting_tone2:": "🙎🏼", + ":person_pouting_tone3:": "🙎🏽", + ":person_pouting_tone4:": "🙎🏾", + ":person_pouting_tone5:": "🙎🏿", + ":person_raising_hand:": "🙋", + ":person_raising_hand_tone1:": "🙋🏻", + ":person_raising_hand_tone2:": "🙋🏼", + ":person_raising_hand_tone3:": "🙋🏽", + ":person_raising_hand_tone4:": "🙋🏾", + ":person_raising_hand_tone5:": "🙋🏿", + ":person_red_hair:": "🧑‍🦰", + ":person_rowing_boat:": "🚣", + ":person_rowing_boat_tone1:": "🚣🏻", + ":person_rowing_boat_tone2:": "🚣🏼", + ":person_rowing_boat_tone3:": "🚣🏽", + ":person_rowing_boat_tone4:": "🚣🏾", + ":person_rowing_boat_tone5:": "🚣🏿", + ":person_running:": "🏃", + ":person_running_tone1:": "🏃🏻", + ":person_running_tone2:": "🏃🏼", + ":person_running_tone3:": "🏃🏽", + ":person_running_tone4:": "🏃🏾", + ":person_running_tone5:": "🏃🏿", + ":person_shrugging:": "🤷", + ":person_shrugging_tone1:": "🤷🏻", + ":person_shrugging_tone2:": "🤷🏼", + ":person_shrugging_tone3:": "🤷🏽", + ":person_shrugging_tone4:": "🤷🏾", + ":person_shrugging_tone5:": "🤷🏿", + ":person_standing:": "🧍", + ":person_standing_dark_skin_tone:": "🧍🏿", + ":person_standing_light_skin_tone:": "🧍🏻", + ":person_standing_medium_dark_skin_tone:": "🧍🏾", + ":person_standing_medium_light_skin_tone:": "🧍🏼", + ":person_standing_medium_skin_tone:": "🧍🏽", + ":person_standing_tone1:": "🧍🏻", + ":person_standing_tone2:": "🧍🏼", + ":person_standing_tone3:": "🧍🏽", + ":person_standing_tone4:": "🧍🏾", + ":person_standing_tone5:": "🧍🏿", + ":person_surfing:": "🏄", + ":person_surfing_tone1:": "🏄🏻", + ":person_surfing_tone2:": "🏄🏼", + ":person_surfing_tone3:": "🏄🏽", + ":person_surfing_tone4:": "🏄🏾", + ":person_surfing_tone5:": "🏄🏿", + ":person_swimming:": "🏊", + ":person_swimming_tone1:": "🏊🏻", + ":person_swimming_tone2:": "🏊🏼", + ":person_swimming_tone3:": "🏊🏽", + ":person_swimming_tone4:": "🏊🏾", + ":person_swimming_tone5:": "🏊🏿", + ":person_tipping_hand:": "💁", + ":person_tipping_hand_tone1:": "💁🏻", + ":person_tipping_hand_tone2:": "💁🏼", + ":person_tipping_hand_tone3:": "💁🏽", + ":person_tipping_hand_tone4:": "💁🏾", + ":person_tipping_hand_tone5:": "💁🏿", + ":person_tone1_bald:": "🧑🏻‍🦲", + ":person_tone1_curly_hair:": "🧑🏻‍🦱", + ":person_tone1_red_hair:": "🧑🏻‍🦰", + ":person_tone1_white_hair:": "🧑🏻‍🦳", + ":person_tone2_bald:": "🧑🏼‍🦲", + ":person_tone2_curly_hair:": "🧑🏼‍🦱", + ":person_tone2_red_hair:": "🧑🏼‍🦰", + ":person_tone2_white_hair:": "🧑🏼‍🦳", + ":person_tone3_bald:": "🧑🏽‍🦲", + ":person_tone3_curly_hair:": "🧑🏽‍🦱", + ":person_tone3_red_hair:": "🧑🏽‍🦰", + ":person_tone3_white_hair:": "🧑🏽‍🦳", + ":person_tone4_bald:": "🧑🏾‍🦲", + ":person_tone4_curly_hair:": "🧑🏾‍🦱", + ":person_tone4_red_hair:": "🧑🏾‍🦰", + ":person_tone4_white_hair:": "🧑🏾‍🦳", + ":person_tone5_bald:": "🧑🏿‍🦲", + ":person_tone5_curly_hair:": "🧑🏿‍🦱", + ":person_tone5_red_hair:": "🧑🏿‍🦰", + ":person_tone5_white_hair:": "🧑🏿‍🦳", + ":person_walking:": "🚶", + ":person_walking_tone1:": "🚶🏻", + ":person_walking_tone2:": "🚶🏼", + ":person_walking_tone3:": "🚶🏽", + ":person_walking_tone4:": "🚶🏾", + ":person_walking_tone5:": "🚶🏿", + ":person_wearing_turban:": "👳", + ":person_wearing_turban_tone1:": "👳🏻", + ":person_wearing_turban_tone2:": "👳🏼", + ":person_wearing_turban_tone3:": "👳🏽", + ":person_wearing_turban_tone4:": "👳🏾", + ":person_wearing_turban_tone5:": "👳🏿", + ":person_white_hair:": "🧑‍🦳", + ":person_with_ball:": "⛹", + ":person_with_ball_tone1:": "⛹🏻", + ":person_with_ball_tone2:": "⛹🏼", + ":person_with_ball_tone3:": "⛹🏽", + ":person_with_ball_tone4:": "⛹🏾", + ":person_with_ball_tone5:": "⛹🏿", + ":person_with_blond_hair:": "👱", + ":person_with_blond_hair_tone1:": "👱🏻", + ":person_with_blond_hair_tone2:": "👱🏼", + ":person_with_blond_hair_tone3:": "👱🏽", + ":person_with_blond_hair_tone4:": "👱🏾", + ":person_with_blond_hair_tone5:": "👱🏿", + ":person_with_pouting_face:": "🙎", + ":person_with_pouting_face_tone1:": "🙎🏻", + ":person_with_pouting_face_tone2:": "🙎🏼", + ":person_with_pouting_face_tone3:": "🙎🏽", + ":person_with_pouting_face_tone4:": "🙎🏾", + ":person_with_pouting_face_tone5:": "🙎🏿", + ":person_with_probing_cane:": "🧑‍🦯", + ":person_with_probing_cane_dark_skin_tone:": "🧑🏿‍🦯", + ":person_with_probing_cane_light_skin_tone:": "🧑🏻‍🦯", + ":person_with_probing_cane_medium_dark_skin_tone:": "🧑🏾‍🦯", + ":person_with_probing_cane_medium_light_skin_tone:": "🧑🏼‍🦯", + ":person_with_probing_cane_medium_skin_tone:": "🧑🏽‍🦯", + ":person_with_probing_cane_tone1:": "🧑🏻‍🦯", + ":person_with_probing_cane_tone2:": "🧑🏼‍🦯", + ":person_with_probing_cane_tone3:": "🧑🏽‍🦯", + ":person_with_probing_cane_tone4:": "🧑🏾‍🦯", + ":person_with_probing_cane_tone5:": "🧑🏿‍🦯", + ":person_with_veil:": "👰", + ":person_with_veil_tone1:": "👰🏻", + ":person_with_veil_tone2:": "👰🏼", + ":person_with_veil_tone3:": "👰🏽", + ":person_with_veil_tone4:": "👰🏾", + ":person_with_veil_tone5:": "👰🏿", + ":peru:": "🇵🇪", + ":petri_dish:": "🧫", + ":pf:": "🇵🇫", + ":pg:": "🇵🇬", + ":ph:": "🇵🇭", + ":philippines:": "🇵🇭", + ":phone:": "☎️", + ":pick:": "⛏️", + ":pickup_truck:": "🛻", + ":pie:": "🥧", + ":pig2:": "🐖", + ":pig:": "🐷", + ":pig_nose:": "🐽", + ":pill:": "💊", + ":pilot:": "🧑‍✈️", + ":pilot_dark_skin_tone:": "🧑🏿‍✈️", + ":pilot_light_skin_tone:": "🧑🏻‍✈️", + ":pilot_medium_dark_skin_tone:": "🧑🏾‍✈️", + ":pilot_medium_light_skin_tone:": "🧑🏼‍✈️", + ":pilot_medium_skin_tone:": "🧑🏽‍✈️", + ":pilot_tone1:": "🧑🏻‍✈️", + ":pilot_tone2:": "🧑🏼‍✈️", + ":pilot_tone3:": "🧑🏽‍✈️", + ":pilot_tone4:": "🧑🏾‍✈️", + ":pilot_tone5:": "🧑🏿‍✈️", + ":pinched_fingers:": "🤌", + ":pinched_fingers_dark_skin_tone:": "🤌🏿", + ":pinched_fingers_light_skin_tone:": "🤌🏻", + ":pinched_fingers_medium_dark_skin_tone:": "🤌🏾", + ":pinched_fingers_medium_light_skin_tone:": "🤌🏼", + ":pinched_fingers_medium_skin_tone:": "🤌🏽", + ":pinched_fingers_tone1:": "🤌🏻", + ":pinched_fingers_tone2:": "🤌🏼", + ":pinched_fingers_tone3:": "🤌🏽", + ":pinched_fingers_tone4:": "🤌🏾", + ":pinched_fingers_tone5:": "🤌🏿", + ":pinching_hand:": "🤏", + ":pinching_hand_dark_skin_tone:": "🤏🏿", + ":pinching_hand_light_skin_tone:": "🤏🏻", + ":pinching_hand_medium_dark_skin_tone:": "🤏🏾", + ":pinching_hand_medium_light_skin_tone:": "🤏🏼", + ":pinching_hand_medium_skin_tone:": "🤏🏽", + ":pinching_hand_tone1:": "🤏🏻", + ":pinching_hand_tone2:": "🤏🏼", + ":pinching_hand_tone3:": "🤏🏽", + ":pinching_hand_tone4:": "🤏🏾", + ":pinching_hand_tone5:": "🤏🏿", + ":pineapple:": "🍍", + ":ping_pong:": "🏓", + ":pirate_flag:": "🏴‍☠️", + ":pisces:": "♓", + ":pitcairn_islands:": "🇵🇳", + ":pizza:": "🍕", + ":piñata:": "🪅", + ":pk:": "🇵🇰", + ":pl:": "🇵🇱", + ":placard:": "🪧", + ":place_of_worship:": "🛐", + ":plate_with_cutlery:": "🍽", + ":play_or_pause_button:": "⏯", + ":play_pause:": "⏯️", + ":pleading_face:": "🥺", + ":plunger:": "🪠", + ":pm:": "🇵🇲", + ":pn:": "🇵🇳", + ":point_down:": "👇", + ":point_down_tone1:": "👇🏻", + ":point_down_tone2:": "👇🏼", + ":point_down_tone3:": "👇🏽", + ":point_down_tone4:": "👇🏾", + ":point_down_tone5:": "👇🏿", + ":point_left:": "👈", + ":point_left_tone1:": "👈🏻", + ":point_left_tone2:": "👈🏼", + ":point_left_tone3:": "👈🏽", + ":point_left_tone4:": "👈🏾", + ":point_left_tone5:": "👈🏿", + ":point_right:": "👉", + ":point_right_tone1:": "👉🏻", + ":point_right_tone2:": "👉🏼", + ":point_right_tone3:": "👉🏽", + ":point_right_tone4:": "👉🏾", + ":point_right_tone5:": "👉🏿", + ":point_up:": "☝️", + ":point_up_2:": "👆", + ":point_up_2_tone1:": "👆🏻", + ":point_up_2_tone2:": "👆🏼", + ":point_up_2_tone3:": "👆🏽", + ":point_up_2_tone4:": "👆🏾", + ":point_up_2_tone5:": "👆🏿", + ":point_up_tone1:": "☝🏻", + ":point_up_tone2:": "☝🏼", + ":point_up_tone3:": "☝🏽", + ":point_up_tone4:": "☝🏾", + ":point_up_tone5:": "☝🏿", + ":poland:": "🇵🇱", + ":polar_bear:": "🐻‍❄️", + ":police_car:": "🚓", + ":police_officer:": "👮", + ":police_officer_tone1:": "👮🏻", + ":police_officer_tone2:": "👮🏼", + ":police_officer_tone3:": "👮🏽", + ":police_officer_tone4:": "👮🏾", + ":police_officer_tone5:": "👮🏿", + ":policeman:": "👮", + ":policewoman:": "👮‍♀️", + ":poo:": "💩", + ":poodle:": "🐩", + ":poop:": "💩", + ":popcorn:": "🍿", + ":portugal:": "🇵🇹", + ":post_office:": "🏣", + ":postal_horn:": "📯", + ":postbox:": "📮", + ":potable_water:": "🚰", + ":potato:": "🥔", + ":potted_plant:": "🪴", + ":pouch:": "👝", + ":poultry_leg:": "🍗", + ":pound:": "💷", + ":pound_symbol:": "#️", + ":pouting_cat:": "😾", + ":pouting_man:": "🙎‍♂️", + ":pouting_woman:": "🙎", + ":pr:": "🇵🇷", + ":pray:": "🙏", + ":pray_tone1:": "🙏🏻", + ":pray_tone2:": "🙏🏼", + ":pray_tone3:": "🙏🏽", + ":pray_tone4:": "🙏🏾", + ":pray_tone5:": "🙏🏿", + ":prayer_beads:": "📿", + ":pregnant_woman:": "🤰", + ":pregnant_woman_tone1:": "🤰🏻", + ":pregnant_woman_tone2:": "🤰🏼", + ":pregnant_woman_tone3:": "🤰🏽", + ":pregnant_woman_tone4:": "🤰🏾", + ":pregnant_woman_tone5:": "🤰🏿", + ":pretzel:": "🥨", + ":previous_track:": "⏮️", + ":previous_track_button:": "⏮", + ":prince:": "🤴", + ":prince_tone1:": "🤴🏻", + ":prince_tone2:": "🤴🏼", + ":prince_tone3:": "🤴🏽", + ":prince_tone4:": "🤴🏾", + ":prince_tone5:": "🤴🏿", + ":princess:": "👸", + ":princess_tone1:": "👸🏻", + ":princess_tone2:": "👸🏼", + ":princess_tone3:": "👸🏽", + ":princess_tone4:": "👸🏾", + ":princess_tone5:": "👸🏿", + ":printer:": "🖨️", + ":probing_cane:": "🦯", + ":projector:": "📽️", + ":ps:": "🇵🇸", + ":pt:": "🇵🇹", + ":pudding:": "🍮", + ":puerto_rico:": "🇵🇷", + ":punch:": "👊", + ":punch_tone1:": "👊🏻", + ":punch_tone2:": "👊🏼", + ":punch_tone3:": "👊🏽", + ":punch_tone4:": "👊🏾", + ":punch_tone5:": "👊🏿", + ":purple_circle:": "🟣", + ":purple_heart:": "💜", + ":purple_square:": "🟪", + ":purse:": "👛", + ":pushpin:": "📌", + ":put_litter_in_its_place:": "🚮", + ":pw:": "🇵🇼", + ":py:": "🇵🇾", + ":qa:": "🇶🇦", + ":qatar:": "🇶🇦", + ":question:": "❓", + ":rabbit2:": "🐇", + ":rabbit:": "🐰", + ":raccoon:": "🦝", + ":race_car:": "🏎️", + ":racehorse:": "🐎", + ":racing_car:": "🏎️", + ":racing_motorcycle:": "🏍️", + ":radio:": "📻", + ":radio_button:": "🔘", + ":radioactive:": "☢️", + ":radioactive_sign:": "☢️", + ":rage:": "😡", + ":railroad_track:": "🛤️", + ":railway_car:": "🚃", + ":railway_track:": "🛤️", + ":rainbow:": "🌈", + ":rainbow_flag:": "🏳️‍🌈", + ":raised_back_of_hand:": "🤚", + ":raised_back_of_hand_tone1:": "🤚🏻", + ":raised_back_of_hand_tone2:": "🤚🏼", + ":raised_back_of_hand_tone3:": "🤚🏽", + ":raised_back_of_hand_tone4:": "🤚🏾", + ":raised_back_of_hand_tone5:": "🤚🏿", + ":raised_hand:": "✋", + ":raised_hand_tone1:": "✋🏻", + ":raised_hand_tone2:": "✋🏼", + ":raised_hand_tone3:": "✋🏽", + ":raised_hand_tone4:": "✋🏾", + ":raised_hand_tone5:": "✋🏿", + ":raised_hand_with_fingers_splayed:": "🖐", + ":raised_hand_with_fingers_splayed_tone1:": "🖐🏻", + ":raised_hand_with_fingers_splayed_tone2:": "🖐🏼", + ":raised_hand_with_fingers_splayed_tone3:": "🖐🏽", + ":raised_hand_with_fingers_splayed_tone4:": "🖐🏾", + ":raised_hand_with_fingers_splayed_tone5:": "🖐🏿", + ":raised_hand_with_part_between_middle_and_ring_fingers:": "🖖", + ":raised_hand_with_part_between_middle_and_ring_fingers_tone1:": "🖖🏻", + ":raised_hand_with_part_between_middle_and_ring_fingers_tone2:": "🖖🏼", + ":raised_hand_with_part_between_middle_and_ring_fingers_tone3:": "🖖🏽", + ":raised_hand_with_part_between_middle_and_ring_fingers_tone4:": "🖖🏾", + ":raised_hand_with_part_between_middle_and_ring_fingers_tone5:": "🖖🏿", + ":raised_hands:": "🙌", + ":raised_hands_tone1:": "🙌🏻", + ":raised_hands_tone2:": "🙌🏼", + ":raised_hands_tone3:": "🙌🏽", + ":raised_hands_tone4:": "🙌🏾", + ":raised_hands_tone5:": "🙌🏿", + ":raising_hand:": "🙋", + ":raising_hand_man:": "🙋‍♂️", + ":raising_hand_tone1:": "🙋🏻", + ":raising_hand_tone2:": "🙋🏼", + ":raising_hand_tone3:": "🙋🏽", + ":raising_hand_tone4:": "🙋🏾", + ":raising_hand_tone5:": "🙋🏿", + ":raising_hand_woman:": "🙋", + ":ram:": "🐏", + ":ramen:": "🍜", + ":rat:": "🐀", + ":razor:": "🪒", + ":re:": "🇷🇪", + ":receipt:": "🧾", + ":record_button:": "⏺️", + ":recycle:": "♻️", + ":red_car:": "🚗", + ":red_circle:": "🔴", + ":red_envelope:": "🧧", + ":red_haired:": "🦰", + ":red_square:": "🟥", + ":regional_indicator_a:": "🇦", + ":regional_indicator_b:": "🇧", + ":regional_indicator_c:": "🇨", + ":regional_indicator_d:": "🇩", + ":regional_indicator_e:": "🇪", + ":regional_indicator_f:": "🇫", + ":regional_indicator_g:": "🇬", + ":regional_indicator_h:": "🇭", + ":regional_indicator_i:": "🇮", + ":regional_indicator_j:": "🇯", + ":regional_indicator_k:": "🇰", + ":regional_indicator_l:": "🇱", + ":regional_indicator_m:": "🇲", + ":regional_indicator_n:": "🇳", + ":regional_indicator_o:": "🇴", + ":regional_indicator_p:": "🇵", + ":regional_indicator_q:": "🇶", + ":regional_indicator_r:": "🇷", + ":regional_indicator_s:": "🇸", + ":regional_indicator_t:": "🇹", + ":regional_indicator_u:": "🇺", + ":regional_indicator_v:": "🇻", + ":regional_indicator_w:": "🇼", + ":regional_indicator_x:": "🇽", + ":regional_indicator_y:": "🇾", + ":regional_indicator_z:": "🇿", + ":registered:": "®️", + ":relaxed:": "☺️", + ":relieved:": "😌", + ":reminder_ribbon:": "🎗️", + ":repeat:": "🔁", + ":repeat_one:": "🔂", + ":rescue_worker_helmet:": "⛑", + ":restroom:": "🚻", + ":reunion:": "🇷🇪", + ":reversed_hand_with_middle_finger_extended:": "🖕", + ":reversed_hand_with_middle_finger_extended_tone1:": "🖕🏻", + ":reversed_hand_with_middle_finger_extended_tone2:": "🖕🏼", + ":reversed_hand_with_middle_finger_extended_tone3:": "🖕🏽", + ":reversed_hand_with_middle_finger_extended_tone4:": "🖕🏾", + ":reversed_hand_with_middle_finger_extended_tone5:": "🖕🏿", + ":revolving_hearts:": "💞", + ":rewind:": "⏪", + ":rhino:": "🦏", + ":rhinoceros:": "🦏", + ":ribbon:": "🎀", + ":rice:": "🍚", + ":rice_ball:": "🍙", + ":rice_cracker:": "🍘", + ":rice_scene:": "🎑", + ":right_anger_bubble:": "🗯️", + ":right_facing_fist:": "🤜", + ":right_facing_fist_tone1:": "🤜🏻", + ":right_facing_fist_tone2:": "🤜🏼", + ":right_facing_fist_tone3:": "🤜🏽", + ":right_facing_fist_tone4:": "🤜🏾", + ":right_facing_fist_tone5:": "🤜🏿", + ":right_fist:": "🤜", + ":right_fist_tone1:": "🤜🏻", + ":right_fist_tone2:": "🤜🏼", + ":right_fist_tone3:": "🤜🏽", + ":right_fist_tone4:": "🤜🏾", + ":right_fist_tone5:": "🤜🏿", + ":ring:": "💍", + ":ringed_planet:": "🪐", + ":ro:": "🇷🇴", + ":robot:": "🤖", + ":robot_face:": "🤖", + ":rock:": "🪨", + ":rocket:": "🚀", + ":rofl:": "🤣", + ":roll_eyes:": "🙄", + ":roll_of_paper:": "🧻", + ":rolled_up_newspaper:": "🗞️", + ":roller_coaster:": "🎢", + ":roller_skate:": "🛼", + ":rolling_eyes:": "🙄", + ":rolling_on_the_floor_laughing:": "🤣", + ":romania:": "🇷🇴", + ":rooster:": "🐓", + ":rose:": "🌹", + ":rosette:": "🏵️", + ":rotating_light:": "🚨", + ":round_pushpin:": "📍", + ":rowboat:": "🚣", + ":rowboat_tone1:": "🚣🏻", + ":rowboat_tone2:": "🚣🏼", + ":rowboat_tone3:": "🚣🏽", + ":rowboat_tone4:": "🚣🏾", + ":rowboat_tone5:": "🚣🏿", + ":rowing_man:": "🚣", + ":rowing_woman:": "🚣‍♀️", + ":rs:": "🇷🇸", + ":ru:": "🇷🇺", + ":rugby_football:": "🏉", + ":runner:": "🏃", + ":runner_tone1:": "🏃🏻", + ":runner_tone2:": "🏃🏼", + ":runner_tone3:": "🏃🏽", + ":runner_tone4:": "🏃🏾", + ":runner_tone5:": "🏃🏿", + ":running_man:": "🏃", + ":running_shirt_with_sash:": "🎽", + ":running_woman:": "🏃‍♀️", + ":russia:": "🇷🇺", + ":rw:": "🇷🇼", + ":rwanda:": "🇷🇼", + ":sa:": "🈂️", + ":safety_pin:": "🧷", + ":safety_vest:": "🦺", + ":sagittarius:": "♐", + ":sailboat:": "⛵", + ":saint_martin:": "🇲🇫", + ":sake:": "🍶", + ":salad:": "🥗", + ":salt:": "🧂", + ":samoa:": "🇼🇸", + ":san_marino:": "🇸🇲", + ":sandal:": "👡", + ":sandwich:": "🥪", + ":santa:": "🎅", + ":santa_tone1:": "🎅🏻", + ":santa_tone2:": "🎅🏼", + ":santa_tone3:": "🎅🏽", + ":santa_tone4:": "🎅🏾", + ":santa_tone5:": "🎅🏿", + ":sao_tome_principe:": "🇸🇹", + ":sari:": "🥻", + ":satellite:": "📡", + ":satellite_orbital:": "🛰️", + ":satisfied:": "😆", + ":saudi:": "🇸🇦", + ":saudi_arabia:": "🇸🇦", + ":saudiarabia:": "🇸🇦", + ":sauropod:": "🦕", + ":saxophone:": "🎷", + ":sb:": "🇸🇧", + ":sc:": "🇸🇨", + ":scales:": "⚖️", + ":scarf:": "🧣", + ":school:": "🏫", + ":school_satchel:": "🎒", + ":scientist:": "🧑‍🔬", + ":scientist_dark_skin_tone:": "🧑🏿‍🔬", + ":scientist_light_skin_tone:": "🧑🏻‍🔬", + ":scientist_medium_dark_skin_tone:": "🧑🏾‍🔬", + ":scientist_medium_light_skin_tone:": "🧑🏼‍🔬", + ":scientist_medium_skin_tone:": "🧑🏽‍🔬", + ":scientist_tone1:": "🧑🏻‍🔬", + ":scientist_tone2:": "🧑🏼‍🔬", + ":scientist_tone3:": "🧑🏽‍🔬", + ":scientist_tone4:": "🧑🏾‍🔬", + ":scientist_tone5:": "🧑🏿‍🔬", + ":scissors:": "✂️", + ":scooter:": "🛴", + ":scorpion:": "🦂", + ":scorpius:": "♏", + ":scotland:": "🏴󠁧󠁢󠁳󠁣󠁴󠁿", + ":scream:": "😱", + ":scream_cat:": "🙀", + ":screwdriver:": "🪛", + ":scroll:": "📜", + ":sd:": "🇸🇩", + ":se:": "🇸🇪", + ":seal:": "🦭", + ":seat:": "💺", + ":second_place:": "🥈", + ":second_place_medal:": "🥈", + ":secret:": "㊙️", + ":see_no_evil:": "🙈", + ":seedling:": "🌱", + ":selfie:": "🤳", + ":selfie_tone1:": "🤳🏻", + ":selfie_tone2:": "🤳🏼", + ":selfie_tone3:": "🤳🏽", + ":selfie_tone4:": "🤳🏾", + ":selfie_tone5:": "🤳🏿", + ":senegal:": "🇸🇳", + ":serbia:": "🇷🇸", + ":service_dog:": "🐕‍🦺", + ":seven:": "7️⃣", + ":sewing_needle:": "🪡", + ":seychelles:": "🇸🇨", + ":sg:": "🇸🇬", + ":sh:": "🇸🇭", + ":shaking_hands:": "🤝", + ":shaking_hands_tone1:": "🤝🏻", + ":shaking_hands_tone2:": "🤝🏼", + ":shaking_hands_tone3:": "🤝🏽", + ":shaking_hands_tone4:": "🤝🏾", + ":shaking_hands_tone5:": "🤝🏿", + ":shallow_pan_of_food:": "🥘", + ":shamrock:": "☘️", + ":shark:": "🦈", + ":shaved_ice:": "🍧", + ":sheep:": "🐑", + ":shell:": "🐚", + ":shelled_peanut:": "🥜", + ":shield:": "🛡️", + ":shinto_shrine:": "⛩️", + ":ship:": "🚢", + ":shirt:": "👕", + ":shit:": "💩", + ":shopping:": "🛍", + ":shopping_bags:": "🛍️", + ":shopping_cart:": "🛒", + ":shopping_trolley:": "🛒", + ":shorts:": "🩳", + ":shower:": "🚿", + ":shrimp:": "🦐", + ":shrug:": "🤷", + ":shrug_tone1:": "🤷🏻", + ":shrug_tone2:": "🤷🏼", + ":shrug_tone3:": "🤷🏽", + ":shrug_tone4:": "🤷🏾", + ":shrug_tone5:": "🤷🏿", + ":shushing_face:": "🤫", + ":si:": "🇸🇮", + ":sick:": "🤢", + ":sierra_leone:": "🇸🇱", + ":sign_of_the_horns:": "🤘", + ":sign_of_the_horns_tone1:": "🤘🏻", + ":sign_of_the_horns_tone2:": "🤘🏼", + ":sign_of_the_horns_tone3:": "🤘🏽", + ":sign_of_the_horns_tone4:": "🤘🏾", + ":sign_of_the_horns_tone5:": "🤘🏿", + ":signal_strength:": "📶", + ":singapore:": "🇸🇬", + ":singer:": "🧑‍🎤", + ":singer_dark_skin_tone:": "🧑🏿‍🎤", + ":singer_light_skin_tone:": "🧑🏻‍🎤", + ":singer_medium_dark_skin_tone:": "🧑🏾‍🎤", + ":singer_medium_light_skin_tone:": "🧑🏼‍🎤", + ":singer_medium_skin_tone:": "🧑🏽‍🎤", + ":singer_tone1:": "🧑🏻‍🎤", + ":singer_tone2:": "🧑🏼‍🎤", + ":singer_tone3:": "🧑🏽‍🎤", + ":singer_tone4:": "🧑🏾‍🎤", + ":singer_tone5:": "🧑🏿‍🎤", + ":sint_maarten:": "🇸🇽", + ":six:": "6️⃣", + ":six_pointed_star:": "🔯", + ":sj:": "🇸🇯", + ":sk:": "🇸🇰", + ":skateboard:": "🛹", + ":skeleton:": "💀", + ":ski:": "🎿", + ":skier:": "⛷️", + ":skull:": "💀", + ":skull_and_crossbones:": "☠️", + ":skull_crossbones:": "☠️", + ":skunk:": "🦨", + ":sl:": "🇸🇱", + ":sled:": "🛷", + ":sleeping:": "😴", + ":sleeping_accommodation:": "🛌", + ":sleeping_bed:": "🛌", + ":sleepy:": "😪", + ":sleuth_or_spy:": "🕵", + ":sleuth_or_spy_tone1:": "🕵🏻", + ":sleuth_or_spy_tone2:": "🕵🏼", + ":sleuth_or_spy_tone3:": "🕵🏽", + ":sleuth_or_spy_tone4:": "🕵🏾", + ":sleuth_or_spy_tone5:": "🕵🏿", + ":slight_frown:": "🙁", + ":slight_smile:": "🙂", + ":slightly_frowning_face:": "🙁", + ":slightly_smiling_face:": "🙂", + ":slot_machine:": "🎰", + ":sloth:": "🦥", + ":slovakia:": "🇸🇰", + ":slovenia:": "🇸🇮", + ":sm:": "🇸🇲", + ":small_airplane:": "🛩️", + ":small_blue_diamond:": "🔹", + ":small_orange_diamond:": "🔸", + ":small_red_triangle:": "🔺", + ":small_red_triangle_down:": "🔻", + ":smile:": "😄", + ":smile_cat:": "😸", + ":smiley:": "😃", + ":smiley_cat:": "😺", + ":smiling_face_with_3_hearts:": "🥰", + ":smiling_face_with_tear:": "🥲", + ":smiling_imp:": "😈", + ":smirk:": "😏", + ":smirk_cat:": "😼", + ":smoking:": "🚬", + ":sn:": "🇸🇳", + ":snail:": "🐌", + ":snake:": "🐍", + ":sneeze:": "🤧", + ":sneezing_face:": "🤧", + ":snow_capped_mountain:": "🏔️", + ":snowboarder:": "🏂", + ":snowboarder_dark_skin_tone:": "🏂🏿", + ":snowboarder_light_skin_tone:": "🏂🏻", + ":snowboarder_medium_dark_skin_tone:": "🏂🏾", + ":snowboarder_medium_light_skin_tone:": "🏂🏼", + ":snowboarder_medium_skin_tone:": "🏂🏽", + ":snowboarder_tone1:": "🏂🏻", + ":snowboarder_tone2:": "🏂🏼", + ":snowboarder_tone3:": "🏂🏽", + ":snowboarder_tone4:": "🏂🏾", + ":snowboarder_tone5:": "🏂🏿", + ":snowflake:": "❄️", + ":snowman2:": "☃️", + ":snowman:": "⛄", + ":snowman_with_snow:": "☃️", + ":so:": "🇸🇴", + ":soap:": "🧼", + ":sob:": "😭", + ":soccer:": "⚽", + ":socks:": "🧦", + ":softball:": "🥎", + ":solomon_islands:": "🇸🇧", + ":somalia:": "🇸🇴", + ":soon:": "🔜", + ":sos:": "🆘", + ":sound:": "🔉", + ":south_africa:": "🇿🇦", + ":south_georgia_south_sandwich_islands:": "🇬🇸", + ":south_sudan:": "🇸🇸", + ":space_invader:": "👾", + ":spades:": "♠️", + ":spaghetti:": "🍝", + ":spain:": "🇪🇸", + ":sparkle:": "❇️", + ":sparkler:": "🎇", + ":sparkles:": "✨", + ":sparkling_heart:": "💖", + ":speak_no_evil:": "🙊", + ":speaker:": "🔈", + ":speaking_head:": "🗣️", + ":speaking_head_in_silhouette:": "🗣️", + ":speech_balloon:": "💬", + ":speech_left:": "🗨️", + ":speedboat:": "🚤", + ":spider:": "🕷️", + ":spider_web:": "🕸️", + ":spiral_calendar:": "🗓", + ":spiral_calendar_pad:": "🗓️", + ":spiral_note_pad:": "🗒️", + ":spiral_notepad:": "🗒", + ":sponge:": "🧽", + ":spoon:": "🥄", + ":sports_medal:": "🏅", + ":spy:": "🕵", + ":spy_tone1:": "🕵🏻", + ":spy_tone2:": "🕵🏼", + ":spy_tone3:": "🕵🏽", + ":spy_tone4:": "🕵🏾", + ":spy_tone5:": "🕵🏿", + ":squeeze_bottle:": "🧴", + ":squid:": "🦑", + ":sr:": "🇸🇷", + ":sri_lanka:": "🇱🇰", + ":ss:": "🇸🇸", + ":st:": "🇸🇹", + ":st_barthelemy:": "🇧🇱", + ":st_helena:": "🇸🇭", + ":st_kitts_nevis:": "🇰🇳", + ":st_lucia:": "🇱🇨", + ":st_pierre_miquelon:": "🇵🇲", + ":st_vincent_grenadines:": "🇻🇨", + ":stadium:": "🏟️", + ":star2:": "🌟", + ":star:": "⭐", + ":star_and_crescent:": "☪️", + ":star_of_david:": "✡️", + ":star_struck:": "🤩", + ":stars:": "🌠", + ":station:": "🚉", + ":statue_of_liberty:": "🗽", + ":steam_locomotive:": "🚂", + ":stethoscope:": "🩺", + ":stew:": "🍲", + ":stop_button:": "⏹️", + ":stop_sign:": "🛑", + ":stopwatch:": "⏱️", + ":straight_ruler:": "📏", + ":strawberry:": "🍓", + ":stuck_out_tongue:": "😛", + ":stuck_out_tongue_closed_eyes:": "😝", + ":stuck_out_tongue_winking_eye:": "😜", + ":student:": "🧑‍🎓", + ":student_dark_skin_tone:": "🧑🏿‍🎓", + ":student_light_skin_tone:": "🧑🏻‍🎓", + ":student_medium_dark_skin_tone:": "🧑🏾‍🎓", + ":student_medium_light_skin_tone:": "🧑🏼‍🎓", + ":student_medium_skin_tone:": "🧑🏽‍🎓", + ":student_tone1:": "🧑🏻‍🎓", + ":student_tone2:": "🧑🏼‍🎓", + ":student_tone3:": "🧑🏽‍🎓", + ":student_tone4:": "🧑🏾‍🎓", + ":student_tone5:": "🧑🏿‍🎓", + ":studio_microphone:": "🎙️", + ":stuffed_flatbread:": "🥙", + ":stuffed_pita:": "🥙", + ":sudan:": "🇸🇩", + ":sun_behind_large_cloud:": "🌥", + ":sun_behind_rain_cloud:": "🌦", + ":sun_behind_small_cloud:": "🌤", + ":sun_with_face:": "🌞", + ":sunflower:": "🌻", + ":sunglasses:": "😎", + ":sunny:": "☀️", + ":sunrise:": "🌅", + ":sunrise_over_mountains:": "🌄", + ":superhero:": "🦸", + ":superhero_dark_skin_tone:": "🦸🏿", + ":superhero_light_skin_tone:": "🦸🏻", + ":superhero_medium_dark_skin_tone:": "🦸🏾", + ":superhero_medium_light_skin_tone:": "🦸🏼", + ":superhero_medium_skin_tone:": "🦸🏽", + ":superhero_tone1:": "🦸🏻", + ":superhero_tone2:": "🦸🏼", + ":superhero_tone3:": "🦸🏽", + ":superhero_tone4:": "🦸🏾", + ":superhero_tone5:": "🦸🏿", + ":supervillain:": "🦹", + ":supervillain_dark_skin_tone:": "🦹🏿", + ":supervillain_light_skin_tone:": "🦹🏻", + ":supervillain_medium_dark_skin_tone:": "🦹🏾", + ":supervillain_medium_light_skin_tone:": "🦹🏼", + ":supervillain_medium_skin_tone:": "🦹🏽", + ":supervillain_tone1:": "🦹🏻", + ":supervillain_tone2:": "🦹🏼", + ":supervillain_tone3:": "🦹🏽", + ":supervillain_tone4:": "🦹🏾", + ":supervillain_tone5:": "🦹🏿", + ":surfer:": "🏄", + ":surfer_tone1:": "🏄🏻", + ":surfer_tone2:": "🏄🏼", + ":surfer_tone3:": "🏄🏽", + ":surfer_tone4:": "🏄🏾", + ":surfer_tone5:": "🏄🏿", + ":surfing_man:": "🏄", + ":surfing_woman:": "🏄‍♀️", + ":suriname:": "🇸🇷", + ":sushi:": "🍣", + ":suspension_railway:": "🚟", + ":sv:": "🇸🇻", + ":swan:": "🦢", + ":swaziland:": "🇸🇿", + ":sweat:": "😓", + ":sweat_drops:": "💦", + ":sweat_smile:": "😅", + ":sweden:": "🇸🇪", + ":sweet_potato:": "🍠", + ":swimmer:": "🏊", + ":swimmer_tone1:": "🏊🏻", + ":swimmer_tone2:": "🏊🏼", + ":swimmer_tone3:": "🏊🏽", + ":swimmer_tone4:": "🏊🏾", + ":swimmer_tone5:": "🏊🏿", + ":swimming_man:": "🏊", + ":swimming_woman:": "🏊‍♀️", + ":switzerland:": "🇨🇭", + ":sx:": "🇸🇽", + ":sy:": "🇸🇾", + ":symbols:": "🔣", + ":synagogue:": "🕍", + ":syria:": "🇸🇾", + ":syringe:": "💉", + ":sz:": "🇸🇿", + ":t_rex:": "🦖", + ":ta:": "🇹🇦", + ":table_tennis:": "🏓", + ":taco:": "🌮", + ":tada:": "🎉", + ":taiwan:": "🇹🇼", + ":tajikistan:": "🇹🇯", + ":takeout_box:": "🥡", + ":tamale:": "🫔", + ":tanabata_tree:": "🎋", + ":tangerine:": "🍊", + ":tanzania:": "🇹🇿", + ":taurus:": "♉", + ":taxi:": "🚕", + ":tc:": "🇹🇨", + ":td:": "🇹🇩", + ":tea:": "🍵", + ":teacher:": "🧑‍🏫", + ":teacher_dark_skin_tone:": "🧑🏿‍🏫", + ":teacher_light_skin_tone:": "🧑🏻‍🏫", + ":teacher_medium_dark_skin_tone:": "🧑🏾‍🏫", + ":teacher_medium_light_skin_tone:": "🧑🏼‍🏫", + ":teacher_medium_skin_tone:": "🧑🏽‍🏫", + ":teacher_tone1:": "🧑🏻‍🏫", + ":teacher_tone2:": "🧑🏼‍🏫", + ":teacher_tone3:": "🧑🏽‍🏫", + ":teacher_tone4:": "🧑🏾‍🏫", + ":teacher_tone5:": "🧑🏿‍🏫", + ":teapot:": "🫖", + ":technologist:": "🧑‍💻", + ":technologist_dark_skin_tone:": "🧑🏿‍💻", + ":technologist_light_skin_tone:": "🧑🏻‍💻", + ":technologist_medium_dark_skin_tone:": "🧑🏾‍💻", + ":technologist_medium_light_skin_tone:": "🧑🏼‍💻", + ":technologist_medium_skin_tone:": "🧑🏽‍💻", + ":technologist_tone1:": "🧑🏻‍💻", + ":technologist_tone2:": "🧑🏼‍💻", + ":technologist_tone3:": "🧑🏽‍💻", + ":technologist_tone4:": "🧑🏾‍💻", + ":technologist_tone5:": "🧑🏿‍💻", + ":teddy_bear:": "🧸", + ":telephone:": "☎️", + ":telephone_receiver:": "📞", + ":telescope:": "🔭", + ":ten:": "🔟", + ":tennis:": "🎾", + ":tent:": "⛺", + ":test_tube:": "🧪", + ":tf:": "🇹🇫", + ":tg:": "🇹🇬", + ":th:": "🇹🇭", + ":thailand:": "🇹🇭", + ":thermometer:": "🌡️", + ":thermometer_face:": "🤒", + ":thinking:": "🤔", + ":thinking_face:": "🤔", + ":third_place:": "🥉", + ":third_place_medal:": "🥉", + ":thong_sandal:": "🩴", + ":thought_balloon:": "💭", + ":thread:": "🧵", + ":three:": "3️⃣", + ":three_button_mouse:": "🖱️", + ":thumbdown:": "👎", + ":thumbdown_tone1:": "👎🏻", + ":thumbdown_tone2:": "👎🏼", + ":thumbdown_tone3:": "👎🏽", + ":thumbdown_tone4:": "👎🏾", + ":thumbdown_tone5:": "👎🏿", + ":thumbsdown:": "👎", + ":thumbsdown_tone1:": "👎🏻", + ":thumbsdown_tone2:": "👎🏼", + ":thumbsdown_tone3:": "👎🏽", + ":thumbsdown_tone4:": "👎🏾", + ":thumbsdown_tone5:": "👎🏿", + ":thumbsup:": "👍", + ":thumbsup_tone1:": "👍🏻", + ":thumbsup_tone2:": "👍🏼", + ":thumbsup_tone3:": "👍🏽", + ":thumbsup_tone4:": "👍🏾", + ":thumbsup_tone5:": "👍🏿", + ":thumbup:": "👍", + ":thumbup_tone1:": "👍🏻", + ":thumbup_tone2:": "👍🏼", + ":thumbup_tone3:": "👍🏽", + ":thumbup_tone4:": "👍🏾", + ":thumbup_tone5:": "👍🏿", + ":thunder_cloud_and_rain:": "⛈️", + ":thunder_cloud_rain:": "⛈️", + ":ticket:": "🎫", + ":tickets:": "🎟️", + ":tiger2:": "🐅", + ":tiger:": "🐯", + ":timer:": "⏲️", + ":timer_clock:": "⏲️", + ":timor_leste:": "🇹🇱", + ":tipping_hand_man:": "💁‍♂️", + ":tipping_hand_woman:": "💁", + ":tired_face:": "😫", + ":tj:": "🇹🇯", + ":tk:": "🇹🇰", + ":tl:": "🇹🇱", + ":tm:": "™️", + ":tn:": "🇹🇳", + ":to:": "🇹🇴", + ":togo:": "🇹🇬", + ":toilet:": "🚽", + ":tokelau:": "🇹🇰", + ":tokyo_tower:": "🗼", + ":tomato:": "🍅", + ":tone1:": "🏻", + ":tone2:": "🏼", + ":tone3:": "🏽", + ":tone4:": "🏾", + ":tone5:": "🏿", + ":tonga:": "🇹🇴", + ":tongue:": "👅", + ":toolbox:": "🧰", + ":tools:": "🛠️", + ":tooth:": "🦷", + ":toothbrush:": "🪥", + ":top:": "🔝", + ":tophat:": "🎩", + ":tornado:": "🌪", + ":tr:": "🇹🇷", + ":track_next:": "⏭️", + ":track_previous:": "⏮️", + ":trackball:": "🖲️", + ":tractor:": "🚜", + ":traffic_light:": "🚥", + ":train2:": "🚆", + ":train:": "🚋", + ":tram:": "🚊", + ":transgender_flag:": "🏳️‍⚧️", + ":transgender_symbol:": "⚧", + ":triangular_flag_on_post:": "🚩", + ":triangular_ruler:": "📐", + ":trident:": "🔱", + ":trinidad_tobago:": "🇹🇹", + ":tristan_da_cunha:": "🇹🇦", + ":triumph:": "😤", + ":trolleybus:": "🚎", + ":trophy:": "🏆", + ":tropical_drink:": "🍹", + ":tropical_fish:": "🐠", + ":truck:": "🚚", + ":trumpet:": "🎺", + ":tt:": "🇹🇹", + ":tulip:": "🌷", + ":tumbler_glass:": "🥃", + ":tunisia:": "🇹🇳", + ":turkey:": "🦃", + ":turkmenistan:": "🇹🇲", + ":turks_caicos_islands:": "🇹🇨", + ":turtle:": "🐢", + ":tuvalu:": "🇹🇻", + ":tuxedo_tone1:": "🤵🏻", + ":tuxedo_tone2:": "🤵🏼", + ":tuxedo_tone3:": "🤵🏽", + ":tuxedo_tone4:": "🤵🏾", + ":tuxedo_tone5:": "🤵🏿", + ":tv:": "📺", + ":tw:": "🇹🇼", + ":twisted_rightwards_arrows:": "🔀", + ":two:": "2️⃣", + ":two_hearts:": "💕", + ":two_men_holding_hands:": "👬", + ":two_women_holding_hands:": "👭", + ":tz:": "🇹🇿", + ":u5272:": "🈹", + ":u5408:": "🈴", + ":u55b6:": "🈺", + ":u6307:": "🈯", + ":u6708:": "🈷️", + ":u6709:": "🈶", + ":u6e80:": "🈵", + ":u7121:": "🈚", + ":u7533:": "🈸", + ":u7981:": "🈲", + ":u7a7a:": "🈳", + ":ua:": "🇺🇦", + ":ug:": "🇺🇬", + ":uganda:": "🇺🇬", + ":ukraine:": "🇺🇦", + ":um:": "🇺🇲", + ":umbrella2:": "☂️", + ":umbrella:": "☔", + ":umbrella_on_ground:": "⛱️", + ":unamused:": "😒", + ":underage:": "🔞", + ":unicorn:": "🦄", + ":unicorn_face:": "🦄", + ":united_arab_emirates:": "🇦🇪", + ":united_nations:": "🇺🇳", + ":united_states:": "🇺🇸", + ":unlock:": "🔓", + ":up:": "🆙", + ":upside_down:": "🙃", + ":upside_down_face:": "🙃", + ":urn:": "⚱️", + ":uruguay:": "🇺🇾", + ":us:": "🇺🇸", + ":us_virgin_islands:": "🇻🇮", + ":uy:": "🇺🇾", + ":uz:": "🇺🇿", + ":uzbekistan:": "🇺🇿", + ":v:": "✌️", + ":v_tone1:": "✌🏻", + ":v_tone2:": "✌🏼", + ":v_tone3:": "✌🏽", + ":v_tone4:": "✌🏾", + ":v_tone5:": "✌🏿", + ":va:": "🇻🇦", + ":vampire:": "🧛", + ":vampire_dark_skin_tone:": "🧛🏿", + ":vampire_light_skin_tone:": "🧛🏻", + ":vampire_medium_dark_skin_tone:": "🧛🏾", + ":vampire_medium_light_skin_tone:": "🧛🏼", + ":vampire_medium_skin_tone:": "🧛🏽", + ":vampire_tone1:": "🧛🏻", + ":vampire_tone2:": "🧛🏼", + ":vampire_tone3:": "🧛🏽", + ":vampire_tone4:": "🧛🏾", + ":vampire_tone5:": "🧛🏿", + ":vanuatu:": "🇻🇺", + ":vatican_city:": "🇻🇦", + ":vc:": "🇻🇨", + ":ve:": "🇻🇪", + ":venezuela:": "🇻🇪", + ":vertical_traffic_light:": "🚦", + ":vg:": "🇻🇬", + ":vhs:": "📼", + ":vi:": "🇻🇮", + ":vibration_mode:": "📳", + ":video_camera:": "📹", + ":video_game:": "🎮", + ":vietnam:": "🇻🇳", + ":violin:": "🎻", + ":virgo:": "♍", + ":vn:": "🇻🇳", + ":volcano:": "🌋", + ":volleyball:": "🏐", + ":vs:": "🆚", + ":vu:": "🇻🇺", + ":vulcan:": "🖖", + ":vulcan_salute:": "🖖", + ":vulcan_tone1:": "🖖🏻", + ":vulcan_tone2:": "🖖🏼", + ":vulcan_tone3:": "🖖🏽", + ":vulcan_tone4:": "🖖🏾", + ":vulcan_tone5:": "🖖🏿", + ":waffle:": "🧇", + ":wales:": "🏴󠁧󠁢󠁷󠁬󠁳󠁿", + ":walking:": "🚶", + ":walking_man:": "🚶", + ":walking_tone1:": "🚶🏻", + ":walking_tone2:": "🚶🏼", + ":walking_tone3:": "🚶🏽", + ":walking_tone4:": "🚶🏾", + ":walking_tone5:": "🚶🏿", + ":walking_woman:": "🚶‍♀️", + ":wallis_futuna:": "🇼🇫", + ":waning_crescent_moon:": "🌘", + ":waning_gibbous_moon:": "🌖", + ":warning:": "⚠️", + ":wastebasket:": "🗑️", + ":watch:": "⌚", + ":water_buffalo:": "🐃", + ":water_polo:": "🤽", + ":water_polo_tone1:": "🤽🏻", + ":water_polo_tone2:": "🤽🏼", + ":water_polo_tone3:": "🤽🏽", + ":water_polo_tone4:": "🤽🏾", + ":water_polo_tone5:": "🤽🏿", + ":watermelon:": "🍉", + ":wave:": "👋", + ":wave_tone1:": "👋🏻", + ":wave_tone2:": "👋🏼", + ":wave_tone3:": "👋🏽", + ":wave_tone4:": "👋🏾", + ":wave_tone5:": "👋🏿", + ":waving_black_flag:": "🏴", + ":waving_white_flag:": "🏳️", + ":wavy_dash:": "〰️", + ":waxing_crescent_moon:": "🌒", + ":waxing_gibbous_moon:": "🌔", + ":wc:": "🚾", + ":weary:": "😩", + ":wedding:": "💒", + ":weight_lifter:": "🏋", + ":weight_lifter_tone1:": "🏋🏻", + ":weight_lifter_tone2:": "🏋🏼", + ":weight_lifter_tone3:": "🏋🏽", + ":weight_lifter_tone4:": "🏋🏾", + ":weight_lifter_tone5:": "🏋🏿", + ":weight_lifting_man:": "🏋️", + ":weight_lifting_woman:": "🏋️‍♀️", + ":western_sahara:": "🇪🇭", + ":wf:": "🇼🇫", + ":whale2:": "🐋", + ":whale:": "🐳", + ":wheel_of_dharma:": "☸️", + ":wheelchair:": "♿", + ":whisky:": "🥃", + ":white_check_mark:": "✅", + ":white_circle:": "⚪", + ":white_flag:": "🏳️", + ":white_flower:": "💮", + ":white_frowning_face:": "☹️", + ":white_haired:": "🦳", + ":white_heart:": "🤍", + ":white_large_square:": "⬜", + ":white_medium_small_square:": "◽", + ":white_medium_square:": "◻️", + ":white_small_square:": "▫️", + ":white_square_button:": "🔳", + ":white_sun_behind_cloud:": "🌥️", + ":white_sun_behind_cloud_with_rain:": "🌦️", + ":white_sun_cloud:": "🌥️", + ":white_sun_rain_cloud:": "🌦️", + ":white_sun_small_cloud:": "🌤️", + ":white_sun_with_small_cloud:": "🌤️", + ":wilted_flower:": "🥀", + ":wilted_rose:": "🥀", + ":wind_blowing_face:": "🌬️", + ":wind_chime:": "🎐", + ":wind_face:": "🌬", + ":window:": "🪟", + ":wine_glass:": "🍷", + ":wink:": "😉", + ":wolf:": "🐺", + ":woman:": "👩", + ":woman_and_man_holding_hands_dark_skin_tone:": "👫🏿", + ":woman_and_man_holding_hands_dark_skin_tone_light_skin_tone:": "👩🏿‍🤝‍👨🏻", + ":woman_and_man_holding_hands_dark_skin_tone_medium_dark_skin_tone:": "👩🏿‍🤝‍👨🏾", + ":woman_and_man_holding_hands_dark_skin_tone_medium_light_skin_tone:": "👩🏿‍🤝‍👨🏼", + ":woman_and_man_holding_hands_dark_skin_tone_medium_skin_tone:": "👩🏿‍🤝‍👨🏽", + ":woman_and_man_holding_hands_light_skin_tone:": "👫🏻", + ":woman_and_man_holding_hands_light_skin_tone_dark_skin_tone:": "👩🏻‍🤝‍👨🏿", + ":woman_and_man_holding_hands_light_skin_tone_medium_dark_skin_tone:": "👩🏻‍🤝‍👨🏾", + ":woman_and_man_holding_hands_light_skin_tone_medium_light_skin_tone:": "👩🏻‍🤝‍👨🏼", + ":woman_and_man_holding_hands_light_skin_tone_medium_skin_tone:": "👩🏻‍🤝‍👨🏽", + ":woman_and_man_holding_hands_medium_dark_skin_tone:": "👫🏾", + ":woman_and_man_holding_hands_medium_dark_skin_tone_dark_skin_tone:": "👩🏾‍🤝‍👨🏿", + ":woman_and_man_holding_hands_medium_dark_skin_tone_light_skin_tone:": "👩🏾‍🤝‍👨🏻", + ":woman_and_man_holding_hands_medium_dark_skin_tone_medium_light_skin_tone:": "👩🏾‍🤝‍👨🏼", + ":woman_and_man_holding_hands_medium_dark_skin_tone_medium_skin_tone:": "👩🏾‍🤝‍👨🏽", + ":woman_and_man_holding_hands_medium_light_skin_tone:": "👫🏼", + ":woman_and_man_holding_hands_medium_light_skin_tone_dark_skin_tone:": "👩🏼‍🤝‍👨🏿", + ":woman_and_man_holding_hands_medium_light_skin_tone_light_skin_tone:": "👩🏼‍🤝‍👨🏻", + ":woman_and_man_holding_hands_medium_light_skin_tone_medium_dark_skin_tone:": "👩🏼‍🤝‍👨🏾", + ":woman_and_man_holding_hands_medium_light_skin_tone_medium_skin_tone:": "👩🏼‍🤝‍👨🏽", + ":woman_and_man_holding_hands_medium_skin_tone:": "👫🏽", + ":woman_and_man_holding_hands_medium_skin_tone_dark_skin_tone:": "👩🏽‍🤝‍👨🏿", + ":woman_and_man_holding_hands_medium_skin_tone_light_skin_tone:": "👩🏽‍🤝‍👨🏻", + ":woman_and_man_holding_hands_medium_skin_tone_medium_dark_skin_tone:": "👩🏽‍🤝‍👨🏾", + ":woman_and_man_holding_hands_medium_skin_tone_medium_light_skin_tone:": "👩🏽‍🤝‍👨🏼", + ":woman_and_man_holding_hands_tone1:": "👫🏻", + ":woman_and_man_holding_hands_tone1_tone2:": "👩🏻‍🤝‍👨🏼", + ":woman_and_man_holding_hands_tone1_tone3:": "👩🏻‍🤝‍👨🏽", + ":woman_and_man_holding_hands_tone1_tone4:": "👩🏻‍🤝‍👨🏾", + ":woman_and_man_holding_hands_tone1_tone5:": "👩🏻‍🤝‍👨🏿", + ":woman_and_man_holding_hands_tone2:": "👫🏼", + ":woman_and_man_holding_hands_tone2_tone1:": "👩🏼‍🤝‍👨🏻", + ":woman_and_man_holding_hands_tone2_tone3:": "👩🏼‍🤝‍👨🏽", + ":woman_and_man_holding_hands_tone2_tone4:": "👩🏼‍🤝‍👨🏾", + ":woman_and_man_holding_hands_tone2_tone5:": "👩🏼‍🤝‍👨🏿", + ":woman_and_man_holding_hands_tone3:": "👫🏽", + ":woman_and_man_holding_hands_tone3_tone1:": "👩🏽‍🤝‍👨🏻", + ":woman_and_man_holding_hands_tone3_tone2:": "👩🏽‍🤝‍👨🏼", + ":woman_and_man_holding_hands_tone3_tone4:": "👩🏽‍🤝‍👨🏾", + ":woman_and_man_holding_hands_tone3_tone5:": "👩🏽‍🤝‍👨🏿", + ":woman_and_man_holding_hands_tone4:": "👫🏾", + ":woman_and_man_holding_hands_tone4_tone1:": "👩🏾‍🤝‍👨🏻", + ":woman_and_man_holding_hands_tone4_tone2:": "👩🏾‍🤝‍👨🏼", + ":woman_and_man_holding_hands_tone4_tone3:": "👩🏾‍🤝‍👨🏽", + ":woman_and_man_holding_hands_tone4_tone5:": "👩🏾‍🤝‍👨🏿", + ":woman_and_man_holding_hands_tone5:": "👫🏿", + ":woman_and_man_holding_hands_tone5_tone1:": "👩🏿‍🤝‍👨🏻", + ":woman_and_man_holding_hands_tone5_tone2:": "👩🏿‍🤝‍👨🏼", + ":woman_and_man_holding_hands_tone5_tone3:": "👩🏿‍🤝‍👨🏽", + ":woman_and_man_holding_hands_tone5_tone4:": "👩🏿‍🤝‍👨🏾", + ":woman_artist:": "👩‍🎨", + ":woman_artist_dark_skin_tone:": "👩🏿‍🎨", + ":woman_artist_light_skin_tone:": "👩🏻‍🎨", + ":woman_artist_medium_dark_skin_tone:": "👩🏾‍🎨", + ":woman_artist_medium_light_skin_tone:": "👩🏼‍🎨", + ":woman_artist_medium_skin_tone:": "👩🏽‍🎨", + ":woman_artist_tone1:": "👩🏻‍🎨", + ":woman_artist_tone2:": "👩🏼‍🎨", + ":woman_artist_tone3:": "👩🏽‍🎨", + ":woman_artist_tone4:": "👩🏾‍🎨", + ":woman_artist_tone5:": "👩🏿‍🎨", + ":woman_astronaut:": "👩‍🚀", + ":woman_astronaut_dark_skin_tone:": "👩🏿‍🚀", + ":woman_astronaut_light_skin_tone:": "👩🏻‍🚀", + ":woman_astronaut_medium_dark_skin_tone:": "👩🏾‍🚀", + ":woman_astronaut_medium_light_skin_tone:": "👩🏼‍🚀", + ":woman_astronaut_medium_skin_tone:": "👩🏽‍🚀", + ":woman_astronaut_tone1:": "👩🏻‍🚀", + ":woman_astronaut_tone2:": "👩🏼‍🚀", + ":woman_astronaut_tone3:": "👩🏽‍🚀", + ":woman_astronaut_tone4:": "👩🏾‍🚀", + ":woman_astronaut_tone5:": "👩🏿‍🚀", + ":woman_bald:": "👩‍🦲", + ":woman_bald_dark_skin_tone:": "👩🏿‍🦲", + ":woman_bald_light_skin_tone:": "👩🏻‍🦲", + ":woman_bald_medium_dark_skin_tone:": "👩🏾‍🦲", + ":woman_bald_medium_light_skin_tone:": "👩🏼‍🦲", + ":woman_bald_medium_skin_tone:": "👩🏽‍🦲", + ":woman_bald_tone1:": "👩🏻‍🦲", + ":woman_bald_tone2:": "👩🏼‍🦲", + ":woman_bald_tone3:": "👩🏽‍🦲", + ":woman_bald_tone4:": "👩🏾‍🦲", + ":woman_bald_tone5:": "👩🏿‍🦲", + ":woman_beard:": "🧔‍♀️", + ":woman_biking:": "🚴‍♀️", + ":woman_biking_dark_skin_tone:": "🚴🏿‍♀️", + ":woman_biking_light_skin_tone:": "🚴🏻‍♀️", + ":woman_biking_medium_dark_skin_tone:": "🚴🏾‍♀️", + ":woman_biking_medium_light_skin_tone:": "🚴🏼‍♀️", + ":woman_biking_medium_skin_tone:": "🚴🏽‍♀️", + ":woman_biking_tone1:": "🚴🏻‍♀️", + ":woman_biking_tone2:": "🚴🏼‍♀️", + ":woman_biking_tone3:": "🚴🏽‍♀️", + ":woman_biking_tone4:": "🚴🏾‍♀️", + ":woman_biking_tone5:": "🚴🏿‍♀️", + ":woman_bouncing_ball:": "⛹️‍♀️", + ":woman_bouncing_ball_dark_skin_tone:": "⛹🏿‍♀️", + ":woman_bouncing_ball_light_skin_tone:": "⛹🏻‍♀️", + ":woman_bouncing_ball_medium_dark_skin_tone:": "⛹🏾‍♀️", + ":woman_bouncing_ball_medium_light_skin_tone:": "⛹🏼‍♀️", + ":woman_bouncing_ball_medium_skin_tone:": "⛹🏽‍♀️", + ":woman_bouncing_ball_tone1:": "⛹🏻‍♀️", + ":woman_bouncing_ball_tone2:": "⛹🏼‍♀️", + ":woman_bouncing_ball_tone3:": "⛹🏽‍♀️", + ":woman_bouncing_ball_tone4:": "⛹🏾‍♀️", + ":woman_bouncing_ball_tone5:": "⛹🏿‍♀️", + ":woman_bowing:": "🙇‍♀️", + ":woman_bowing_dark_skin_tone:": "🙇🏿‍♀️", + ":woman_bowing_light_skin_tone:": "🙇🏻‍♀️", + ":woman_bowing_medium_dark_skin_tone:": "🙇🏾‍♀️", + ":woman_bowing_medium_light_skin_tone:": "🙇🏼‍♀️", + ":woman_bowing_medium_skin_tone:": "🙇🏽‍♀️", + ":woman_bowing_tone1:": "🙇🏻‍♀️", + ":woman_bowing_tone2:": "🙇🏼‍♀️", + ":woman_bowing_tone3:": "🙇🏽‍♀️", + ":woman_bowing_tone4:": "🙇🏾‍♀️", + ":woman_bowing_tone5:": "🙇🏿‍♀️", + ":woman_cartwheeling:": "🤸‍♀️", + ":woman_cartwheeling_dark_skin_tone:": "🤸🏿‍♀️", + ":woman_cartwheeling_light_skin_tone:": "🤸🏻‍♀️", + ":woman_cartwheeling_medium_dark_skin_tone:": "🤸🏾‍♀️", + ":woman_cartwheeling_medium_light_skin_tone:": "🤸🏼‍♀️", + ":woman_cartwheeling_medium_skin_tone:": "🤸🏽‍♀️", + ":woman_cartwheeling_tone1:": "🤸🏻‍♀️", + ":woman_cartwheeling_tone2:": "🤸🏼‍♀️", + ":woman_cartwheeling_tone3:": "🤸🏽‍♀️", + ":woman_cartwheeling_tone4:": "🤸🏾‍♀️", + ":woman_cartwheeling_tone5:": "🤸🏿‍♀️", + ":woman_climbing:": "🧗‍♀️", + ":woman_climbing_dark_skin_tone:": "🧗🏿‍♀️", + ":woman_climbing_light_skin_tone:": "🧗🏻‍♀️", + ":woman_climbing_medium_dark_skin_tone:": "🧗🏾‍♀️", + ":woman_climbing_medium_light_skin_tone:": "🧗🏼‍♀️", + ":woman_climbing_medium_skin_tone:": "🧗🏽‍♀️", + ":woman_climbing_tone1:": "🧗🏻‍♀️", + ":woman_climbing_tone2:": "🧗🏼‍♀️", + ":woman_climbing_tone3:": "🧗🏽‍♀️", + ":woman_climbing_tone4:": "🧗🏾‍♀️", + ":woman_climbing_tone5:": "🧗🏿‍♀️", + ":woman_construction_worker:": "👷‍♀️", + ":woman_construction_worker_dark_skin_tone:": "👷🏿‍♀️", + ":woman_construction_worker_light_skin_tone:": "👷🏻‍♀️", + ":woman_construction_worker_medium_dark_skin_tone:": "👷🏾‍♀️", + ":woman_construction_worker_medium_light_skin_tone:": "👷🏼‍♀️", + ":woman_construction_worker_medium_skin_tone:": "👷🏽‍♀️", + ":woman_construction_worker_tone1:": "👷🏻‍♀️", + ":woman_construction_worker_tone2:": "👷🏼‍♀️", + ":woman_construction_worker_tone3:": "👷🏽‍♀️", + ":woman_construction_worker_tone4:": "👷🏾‍♀️", + ":woman_construction_worker_tone5:": "👷🏿‍♀️", + ":woman_cook:": "👩‍🍳", + ":woman_cook_dark_skin_tone:": "👩🏿‍🍳", + ":woman_cook_light_skin_tone:": "👩🏻‍🍳", + ":woman_cook_medium_dark_skin_tone:": "👩🏾‍🍳", + ":woman_cook_medium_light_skin_tone:": "👩🏼‍🍳", + ":woman_cook_medium_skin_tone:": "👩🏽‍🍳", + ":woman_cook_tone1:": "👩🏻‍🍳", + ":woman_cook_tone2:": "👩🏼‍🍳", + ":woman_cook_tone3:": "👩🏽‍🍳", + ":woman_cook_tone4:": "👩🏾‍🍳", + ":woman_cook_tone5:": "👩🏿‍🍳", + ":woman_curly_haired:": "👩‍🦱", + ":woman_curly_haired_dark_skin_tone:": "👩🏿‍🦱", + ":woman_curly_haired_light_skin_tone:": "👩🏻‍🦱", + ":woman_curly_haired_medium_dark_skin_tone:": "👩🏾‍🦱", + ":woman_curly_haired_medium_light_skin_tone:": "👩🏼‍🦱", + ":woman_curly_haired_medium_skin_tone:": "👩🏽‍🦱", + ":woman_curly_haired_tone1:": "👩🏻‍🦱", + ":woman_curly_haired_tone2:": "👩🏼‍🦱", + ":woman_curly_haired_tone3:": "👩🏽‍🦱", + ":woman_curly_haired_tone4:": "👩🏾‍🦱", + ":woman_curly_haired_tone5:": "👩🏿‍🦱", + ":woman_dark_skin_tone_beard:": "🧔🏿‍♀️", + ":woman_detective:": "🕵️‍♀️", + ":woman_detective_dark_skin_tone:": "🕵🏿‍♀️", + ":woman_detective_light_skin_tone:": "🕵🏻‍♀️", + ":woman_detective_medium_dark_skin_tone:": "🕵🏾‍♀️", + ":woman_detective_medium_light_skin_tone:": "🕵🏼‍♀️", + ":woman_detective_medium_skin_tone:": "🕵🏽‍♀️", + ":woman_detective_tone1:": "🕵🏻‍♀️", + ":woman_detective_tone2:": "🕵🏼‍♀️", + ":woman_detective_tone3:": "🕵🏽‍♀️", + ":woman_detective_tone4:": "🕵🏾‍♀️", + ":woman_detective_tone5:": "🕵🏿‍♀️", + ":woman_elf:": "🧝‍♀️", + ":woman_elf_dark_skin_tone:": "🧝🏿‍♀️", + ":woman_elf_light_skin_tone:": "🧝🏻‍♀️", + ":woman_elf_medium_dark_skin_tone:": "🧝🏾‍♀️", + ":woman_elf_medium_light_skin_tone:": "🧝🏼‍♀️", + ":woman_elf_medium_skin_tone:": "🧝🏽‍♀️", + ":woman_elf_tone1:": "🧝🏻‍♀️", + ":woman_elf_tone2:": "🧝🏼‍♀️", + ":woman_elf_tone3:": "🧝🏽‍♀️", + ":woman_elf_tone4:": "🧝🏾‍♀️", + ":woman_elf_tone5:": "🧝🏿‍♀️", + ":woman_facepalming:": "🤦‍♀️", + ":woman_facepalming_dark_skin_tone:": "🤦🏿‍♀️", + ":woman_facepalming_light_skin_tone:": "🤦🏻‍♀️", + ":woman_facepalming_medium_dark_skin_tone:": "🤦🏾‍♀️", + ":woman_facepalming_medium_light_skin_tone:": "🤦🏼‍♀️", + ":woman_facepalming_medium_skin_tone:": "🤦🏽‍♀️", + ":woman_facepalming_tone1:": "🤦🏻‍♀️", + ":woman_facepalming_tone2:": "🤦🏼‍♀️", + ":woman_facepalming_tone3:": "🤦🏽‍♀️", + ":woman_facepalming_tone4:": "🤦🏾‍♀️", + ":woman_facepalming_tone5:": "🤦🏿‍♀️", + ":woman_factory_worker:": "👩‍🏭", + ":woman_factory_worker_dark_skin_tone:": "👩🏿‍🏭", + ":woman_factory_worker_light_skin_tone:": "👩🏻‍🏭", + ":woman_factory_worker_medium_dark_skin_tone:": "👩🏾‍🏭", + ":woman_factory_worker_medium_light_skin_tone:": "👩🏼‍🏭", + ":woman_factory_worker_medium_skin_tone:": "👩🏽‍🏭", + ":woman_factory_worker_tone1:": "👩🏻‍🏭", + ":woman_factory_worker_tone2:": "👩🏼‍🏭", + ":woman_factory_worker_tone3:": "👩🏽‍🏭", + ":woman_factory_worker_tone4:": "👩🏾‍🏭", + ":woman_factory_worker_tone5:": "👩🏿‍🏭", + ":woman_fairy:": "🧚‍♀️", + ":woman_fairy_dark_skin_tone:": "🧚🏿‍♀️", + ":woman_fairy_light_skin_tone:": "🧚🏻‍♀️", + ":woman_fairy_medium_dark_skin_tone:": "🧚🏾‍♀️", + ":woman_fairy_medium_light_skin_tone:": "🧚🏼‍♀️", + ":woman_fairy_medium_skin_tone:": "🧚🏽‍♀️", + ":woman_fairy_tone1:": "🧚🏻‍♀️", + ":woman_fairy_tone2:": "🧚🏼‍♀️", + ":woman_fairy_tone3:": "🧚🏽‍♀️", + ":woman_fairy_tone4:": "🧚🏾‍♀️", + ":woman_fairy_tone5:": "🧚🏿‍♀️", + ":woman_farmer:": "👩‍🌾", + ":woman_farmer_dark_skin_tone:": "👩🏿‍🌾", + ":woman_farmer_light_skin_tone:": "👩🏻‍🌾", + ":woman_farmer_medium_dark_skin_tone:": "👩🏾‍🌾", + ":woman_farmer_medium_light_skin_tone:": "👩🏼‍🌾", + ":woman_farmer_medium_skin_tone:": "👩🏽‍🌾", + ":woman_farmer_tone1:": "👩🏻‍🌾", + ":woman_farmer_tone2:": "👩🏼‍🌾", + ":woman_farmer_tone3:": "👩🏽‍🌾", + ":woman_farmer_tone4:": "👩🏾‍🌾", + ":woman_farmer_tone5:": "👩🏿‍🌾", + ":woman_feeding_baby:": "👩‍🍼", + ":woman_feeding_baby_dark_skin_tone:": "👩🏿‍🍼", + ":woman_feeding_baby_light_skin_tone:": "👩🏻‍🍼", + ":woman_feeding_baby_medium_dark_skin_tone:": "👩🏾‍🍼", + ":woman_feeding_baby_medium_light_skin_tone:": "👩🏼‍🍼", + ":woman_feeding_baby_medium_skin_tone:": "👩🏽‍🍼", + ":woman_feeding_baby_tone1:": "👩🏻‍🍼", + ":woman_feeding_baby_tone2:": "👩🏼‍🍼", + ":woman_feeding_baby_tone3:": "👩🏽‍🍼", + ":woman_feeding_baby_tone4:": "👩🏾‍🍼", + ":woman_feeding_baby_tone5:": "👩🏿‍🍼", + ":woman_firefighter:": "👩‍🚒", + ":woman_firefighter_dark_skin_tone:": "👩🏿‍🚒", + ":woman_firefighter_light_skin_tone:": "👩🏻‍🚒", + ":woman_firefighter_medium_dark_skin_tone:": "👩🏾‍🚒", + ":woman_firefighter_medium_light_skin_tone:": "👩🏼‍🚒", + ":woman_firefighter_medium_skin_tone:": "👩🏽‍🚒", + ":woman_firefighter_tone1:": "👩🏻‍🚒", + ":woman_firefighter_tone2:": "👩🏼‍🚒", + ":woman_firefighter_tone3:": "👩🏽‍🚒", + ":woman_firefighter_tone4:": "👩🏾‍🚒", + ":woman_firefighter_tone5:": "👩🏿‍🚒", + ":woman_frowning:": "🙍‍♀️", + ":woman_frowning_dark_skin_tone:": "🙍🏿‍♀️", + ":woman_frowning_light_skin_tone:": "🙍🏻‍♀️", + ":woman_frowning_medium_dark_skin_tone:": "🙍🏾‍♀️", + ":woman_frowning_medium_light_skin_tone:": "🙍🏼‍♀️", + ":woman_frowning_medium_skin_tone:": "🙍🏽‍♀️", + ":woman_frowning_tone1:": "🙍🏻‍♀️", + ":woman_frowning_tone2:": "🙍🏼‍♀️", + ":woman_frowning_tone3:": "🙍🏽‍♀️", + ":woman_frowning_tone4:": "🙍🏾‍♀️", + ":woman_frowning_tone5:": "🙍🏿‍♀️", + ":woman_genie:": "🧞‍♀️", + ":woman_gesturing_no:": "🙅‍♀️", + ":woman_gesturing_no_dark_skin_tone:": "🙅🏿‍♀️", + ":woman_gesturing_no_light_skin_tone:": "🙅🏻‍♀️", + ":woman_gesturing_no_medium_dark_skin_tone:": "🙅🏾‍♀️", + ":woman_gesturing_no_medium_light_skin_tone:": "🙅🏼‍♀️", + ":woman_gesturing_no_medium_skin_tone:": "🙅🏽‍♀️", + ":woman_gesturing_no_tone1:": "🙅🏻‍♀️", + ":woman_gesturing_no_tone2:": "🙅🏼‍♀️", + ":woman_gesturing_no_tone3:": "🙅🏽‍♀️", + ":woman_gesturing_no_tone4:": "🙅🏾‍♀️", + ":woman_gesturing_no_tone5:": "🙅🏿‍♀️", + ":woman_gesturing_ok:": "🙆‍♀️", + ":woman_gesturing_ok_dark_skin_tone:": "🙆🏿‍♀️", + ":woman_gesturing_ok_light_skin_tone:": "🙆🏻‍♀️", + ":woman_gesturing_ok_medium_dark_skin_tone:": "🙆🏾‍♀️", + ":woman_gesturing_ok_medium_light_skin_tone:": "🙆🏼‍♀️", + ":woman_gesturing_ok_medium_skin_tone:": "🙆🏽‍♀️", + ":woman_gesturing_ok_tone1:": "🙆🏻‍♀️", + ":woman_gesturing_ok_tone2:": "🙆🏼‍♀️", + ":woman_gesturing_ok_tone3:": "🙆🏽‍♀️", + ":woman_gesturing_ok_tone4:": "🙆🏾‍♀️", + ":woman_gesturing_ok_tone5:": "🙆🏿‍♀️", + ":woman_getting_face_massage:": "💆‍♀️", + ":woman_getting_face_massage_dark_skin_tone:": "💆🏿‍♀️", + ":woman_getting_face_massage_light_skin_tone:": "💆🏻‍♀️", + ":woman_getting_face_massage_medium_dark_skin_tone:": "💆🏾‍♀️", + ":woman_getting_face_massage_medium_light_skin_tone:": "💆🏼‍♀️", + ":woman_getting_face_massage_medium_skin_tone:": "💆🏽‍♀️", + ":woman_getting_face_massage_tone1:": "💆🏻‍♀️", + ":woman_getting_face_massage_tone2:": "💆🏼‍♀️", + ":woman_getting_face_massage_tone3:": "💆🏽‍♀️", + ":woman_getting_face_massage_tone4:": "💆🏾‍♀️", + ":woman_getting_face_massage_tone5:": "💆🏿‍♀️", + ":woman_getting_haircut:": "💇‍♀️", + ":woman_getting_haircut_dark_skin_tone:": "💇🏿‍♀️", + ":woman_getting_haircut_light_skin_tone:": "💇🏻‍♀️", + ":woman_getting_haircut_medium_dark_skin_tone:": "💇🏾‍♀️", + ":woman_getting_haircut_medium_light_skin_tone:": "💇🏼‍♀️", + ":woman_getting_haircut_medium_skin_tone:": "💇🏽‍♀️", + ":woman_getting_haircut_tone1:": "💇🏻‍♀️", + ":woman_getting_haircut_tone2:": "💇🏼‍♀️", + ":woman_getting_haircut_tone3:": "💇🏽‍♀️", + ":woman_getting_haircut_tone4:": "💇🏾‍♀️", + ":woman_getting_haircut_tone5:": "💇🏿‍♀️", + ":woman_golfing:": "🏌️‍♀️", + ":woman_golfing_dark_skin_tone:": "🏌🏿‍♀️", + ":woman_golfing_light_skin_tone:": "🏌🏻‍♀️", + ":woman_golfing_medium_dark_skin_tone:": "🏌🏾‍♀️", + ":woman_golfing_medium_light_skin_tone:": "🏌🏼‍♀️", + ":woman_golfing_medium_skin_tone:": "🏌🏽‍♀️", + ":woman_golfing_tone1:": "🏌🏻‍♀️", + ":woman_golfing_tone2:": "🏌🏼‍♀️", + ":woman_golfing_tone3:": "🏌🏽‍♀️", + ":woman_golfing_tone4:": "🏌🏾‍♀️", + ":woman_golfing_tone5:": "🏌🏿‍♀️", + ":woman_guard:": "💂‍♀️", + ":woman_guard_dark_skin_tone:": "💂🏿‍♀️", + ":woman_guard_light_skin_tone:": "💂🏻‍♀️", + ":woman_guard_medium_dark_skin_tone:": "💂🏾‍♀️", + ":woman_guard_medium_light_skin_tone:": "💂🏼‍♀️", + ":woman_guard_medium_skin_tone:": "💂🏽‍♀️", + ":woman_guard_tone1:": "💂🏻‍♀️", + ":woman_guard_tone2:": "💂🏼‍♀️", + ":woman_guard_tone3:": "💂🏽‍♀️", + ":woman_guard_tone4:": "💂🏾‍♀️", + ":woman_guard_tone5:": "💂🏿‍♀️", + ":woman_health_worker:": "👩‍⚕️", + ":woman_health_worker_dark_skin_tone:": "👩🏿‍⚕️", + ":woman_health_worker_light_skin_tone:": "👩🏻‍⚕️", + ":woman_health_worker_medium_dark_skin_tone:": "👩🏾‍⚕️", + ":woman_health_worker_medium_light_skin_tone:": "👩🏼‍⚕️", + ":woman_health_worker_medium_skin_tone:": "👩🏽‍⚕️", + ":woman_health_worker_tone1:": "👩🏻‍⚕️", + ":woman_health_worker_tone2:": "👩🏼‍⚕️", + ":woman_health_worker_tone3:": "👩🏽‍⚕️", + ":woman_health_worker_tone4:": "👩🏾‍⚕️", + ":woman_health_worker_tone5:": "👩🏿‍⚕️", + ":woman_in_lotus_position:": "🧘‍♀️", + ":woman_in_lotus_position_dark_skin_tone:": "🧘🏿‍♀️", + ":woman_in_lotus_position_light_skin_tone:": "🧘🏻‍♀️", + ":woman_in_lotus_position_medium_dark_skin_tone:": "🧘🏾‍♀️", + ":woman_in_lotus_position_medium_light_skin_tone:": "🧘🏼‍♀️", + ":woman_in_lotus_position_medium_skin_tone:": "🧘🏽‍♀️", + ":woman_in_lotus_position_tone1:": "🧘🏻‍♀️", + ":woman_in_lotus_position_tone2:": "🧘🏼‍♀️", + ":woman_in_lotus_position_tone3:": "🧘🏽‍♀️", + ":woman_in_lotus_position_tone4:": "🧘🏾‍♀️", + ":woman_in_lotus_position_tone5:": "🧘🏿‍♀️", + ":woman_in_manual_wheelchair:": "👩‍🦽", + ":woman_in_manual_wheelchair_dark_skin_tone:": "👩🏿‍🦽", + ":woman_in_manual_wheelchair_light_skin_tone:": "👩🏻‍🦽", + ":woman_in_manual_wheelchair_medium_dark_skin_tone:": "👩🏾‍🦽", + ":woman_in_manual_wheelchair_medium_light_skin_tone:": "👩🏼‍🦽", + ":woman_in_manual_wheelchair_medium_skin_tone:": "👩🏽‍🦽", + ":woman_in_manual_wheelchair_tone1:": "👩🏻‍🦽", + ":woman_in_manual_wheelchair_tone2:": "👩🏼‍🦽", + ":woman_in_manual_wheelchair_tone3:": "👩🏽‍🦽", + ":woman_in_manual_wheelchair_tone4:": "👩🏾‍🦽", + ":woman_in_manual_wheelchair_tone5:": "👩🏿‍🦽", + ":woman_in_motorized_wheelchair:": "👩‍🦼", + ":woman_in_motorized_wheelchair_dark_skin_tone:": "👩🏿‍🦼", + ":woman_in_motorized_wheelchair_light_skin_tone:": "👩🏻‍🦼", + ":woman_in_motorized_wheelchair_medium_dark_skin_tone:": "👩🏾‍🦼", + ":woman_in_motorized_wheelchair_medium_light_skin_tone:": "👩🏼‍🦼", + ":woman_in_motorized_wheelchair_medium_skin_tone:": "👩🏽‍🦼", + ":woman_in_motorized_wheelchair_tone1:": "👩🏻‍🦼", + ":woman_in_motorized_wheelchair_tone2:": "👩🏼‍🦼", + ":woman_in_motorized_wheelchair_tone3:": "👩🏽‍🦼", + ":woman_in_motorized_wheelchair_tone4:": "👩🏾‍🦼", + ":woman_in_motorized_wheelchair_tone5:": "👩🏿‍🦼", + ":woman_in_steamy_room:": "🧖‍♀️", + ":woman_in_steamy_room_dark_skin_tone:": "🧖🏿‍♀️", + ":woman_in_steamy_room_light_skin_tone:": "🧖🏻‍♀️", + ":woman_in_steamy_room_medium_dark_skin_tone:": "🧖🏾‍♀️", + ":woman_in_steamy_room_medium_light_skin_tone:": "🧖🏼‍♀️", + ":woman_in_steamy_room_medium_skin_tone:": "🧖🏽‍♀️", + ":woman_in_steamy_room_tone1:": "🧖🏻‍♀️", + ":woman_in_steamy_room_tone2:": "🧖🏼‍♀️", + ":woman_in_steamy_room_tone3:": "🧖🏽‍♀️", + ":woman_in_steamy_room_tone4:": "🧖🏾‍♀️", + ":woman_in_steamy_room_tone5:": "🧖🏿‍♀️", + ":woman_in_tuxedo:": "🤵‍♀️", + ":woman_in_tuxedo_dark_skin_tone:": "🤵🏿‍♀️", + ":woman_in_tuxedo_light_skin_tone:": "🤵🏻‍♀️", + ":woman_in_tuxedo_medium_dark_skin_tone:": "🤵🏾‍♀️", + ":woman_in_tuxedo_medium_light_skin_tone:": "🤵🏼‍♀️", + ":woman_in_tuxedo_medium_skin_tone:": "🤵🏽‍♀️", + ":woman_in_tuxedo_tone1:": "🤵🏻‍♀️", + ":woman_in_tuxedo_tone2:": "🤵🏼‍♀️", + ":woman_in_tuxedo_tone3:": "🤵🏽‍♀️", + ":woman_in_tuxedo_tone4:": "🤵🏾‍♀️", + ":woman_in_tuxedo_tone5:": "🤵🏿‍♀️", + ":woman_judge:": "👩‍⚖️", + ":woman_judge_dark_skin_tone:": "👩🏿‍⚖️", + ":woman_judge_light_skin_tone:": "👩🏻‍⚖️", + ":woman_judge_medium_dark_skin_tone:": "👩🏾‍⚖️", + ":woman_judge_medium_light_skin_tone:": "👩🏼‍⚖️", + ":woman_judge_medium_skin_tone:": "👩🏽‍⚖️", + ":woman_judge_tone1:": "👩🏻‍⚖️", + ":woman_judge_tone2:": "👩🏼‍⚖️", + ":woman_judge_tone3:": "👩🏽‍⚖️", + ":woman_judge_tone4:": "👩🏾‍⚖️", + ":woman_judge_tone5:": "👩🏿‍⚖️", + ":woman_juggling:": "🤹‍♀️", + ":woman_juggling_dark_skin_tone:": "🤹🏿‍♀️", + ":woman_juggling_light_skin_tone:": "🤹🏻‍♀️", + ":woman_juggling_medium_dark_skin_tone:": "🤹🏾‍♀️", + ":woman_juggling_medium_light_skin_tone:": "🤹🏼‍♀️", + ":woman_juggling_medium_skin_tone:": "🤹🏽‍♀️", + ":woman_juggling_tone1:": "🤹🏻‍♀️", + ":woman_juggling_tone2:": "🤹🏼‍♀️", + ":woman_juggling_tone3:": "🤹🏽‍♀️", + ":woman_juggling_tone4:": "🤹🏾‍♀️", + ":woman_juggling_tone5:": "🤹🏿‍♀️", + ":woman_kneeling:": "🧎‍♀️", + ":woman_kneeling_dark_skin_tone:": "🧎🏿‍♀️", + ":woman_kneeling_light_skin_tone:": "🧎🏻‍♀️", + ":woman_kneeling_medium_dark_skin_tone:": "🧎🏾‍♀️", + ":woman_kneeling_medium_light_skin_tone:": "🧎🏼‍♀️", + ":woman_kneeling_medium_skin_tone:": "🧎🏽‍♀️", + ":woman_kneeling_tone1:": "🧎🏻‍♀️", + ":woman_kneeling_tone2:": "🧎🏼‍♀️", + ":woman_kneeling_tone3:": "🧎🏽‍♀️", + ":woman_kneeling_tone4:": "🧎🏾‍♀️", + ":woman_kneeling_tone5:": "🧎🏿‍♀️", + ":woman_lifting_weights:": "🏋️‍♀️", + ":woman_lifting_weights_dark_skin_tone:": "🏋🏿‍♀️", + ":woman_lifting_weights_light_skin_tone:": "🏋🏻‍♀️", + ":woman_lifting_weights_medium_dark_skin_tone:": "🏋🏾‍♀️", + ":woman_lifting_weights_medium_light_skin_tone:": "🏋🏼‍♀️", + ":woman_lifting_weights_medium_skin_tone:": "🏋🏽‍♀️", + ":woman_lifting_weights_tone1:": "🏋🏻‍♀️", + ":woman_lifting_weights_tone2:": "🏋🏼‍♀️", + ":woman_lifting_weights_tone3:": "🏋🏽‍♀️", + ":woman_lifting_weights_tone4:": "🏋🏾‍♀️", + ":woman_lifting_weights_tone5:": "🏋🏿‍♀️", + ":woman_light_skin_tone_beard:": "🧔🏻‍♀️", + ":woman_mage:": "🧙‍♀️", + ":woman_mage_dark_skin_tone:": "🧙🏿‍♀️", + ":woman_mage_light_skin_tone:": "🧙🏻‍♀️", + ":woman_mage_medium_dark_skin_tone:": "🧙🏾‍♀️", + ":woman_mage_medium_light_skin_tone:": "🧙🏼‍♀️", + ":woman_mage_medium_skin_tone:": "🧙🏽‍♀️", + ":woman_mage_tone1:": "🧙🏻‍♀️", + ":woman_mage_tone2:": "🧙🏼‍♀️", + ":woman_mage_tone3:": "🧙🏽‍♀️", + ":woman_mage_tone4:": "🧙🏾‍♀️", + ":woman_mage_tone5:": "🧙🏿‍♀️", + ":woman_mechanic:": "👩‍🔧", + ":woman_mechanic_dark_skin_tone:": "👩🏿‍🔧", + ":woman_mechanic_light_skin_tone:": "👩🏻‍🔧", + ":woman_mechanic_medium_dark_skin_tone:": "👩🏾‍🔧", + ":woman_mechanic_medium_light_skin_tone:": "👩🏼‍🔧", + ":woman_mechanic_medium_skin_tone:": "👩🏽‍🔧", + ":woman_mechanic_tone1:": "👩🏻‍🔧", + ":woman_mechanic_tone2:": "👩🏼‍🔧", + ":woman_mechanic_tone3:": "👩🏽‍🔧", + ":woman_mechanic_tone4:": "👩🏾‍🔧", + ":woman_mechanic_tone5:": "👩🏿‍🔧", + ":woman_medium_dark_skin_tone_beard:": "🧔🏾‍♀️", + ":woman_medium_light_skin_tone_beard:": "🧔🏼‍♀️", + ":woman_medium_skin_tone_beard:": "🧔🏽‍♀️", + ":woman_mountain_biking:": "🚵‍♀️", + ":woman_mountain_biking_dark_skin_tone:": "🚵🏿‍♀️", + ":woman_mountain_biking_light_skin_tone:": "🚵🏻‍♀️", + ":woman_mountain_biking_medium_dark_skin_tone:": "🚵🏾‍♀️", + ":woman_mountain_biking_medium_light_skin_tone:": "🚵🏼‍♀️", + ":woman_mountain_biking_medium_skin_tone:": "🚵🏽‍♀️", + ":woman_mountain_biking_tone1:": "🚵🏻‍♀️", + ":woman_mountain_biking_tone2:": "🚵🏼‍♀️", + ":woman_mountain_biking_tone3:": "🚵🏽‍♀️", + ":woman_mountain_biking_tone4:": "🚵🏾‍♀️", + ":woman_mountain_biking_tone5:": "🚵🏿‍♀️", + ":woman_office_worker:": "👩‍💼", + ":woman_office_worker_dark_skin_tone:": "👩🏿‍💼", + ":woman_office_worker_light_skin_tone:": "👩🏻‍💼", + ":woman_office_worker_medium_dark_skin_tone:": "👩🏾‍💼", + ":woman_office_worker_medium_light_skin_tone:": "👩🏼‍💼", + ":woman_office_worker_medium_skin_tone:": "👩🏽‍💼", + ":woman_office_worker_tone1:": "👩🏻‍💼", + ":woman_office_worker_tone2:": "👩🏼‍💼", + ":woman_office_worker_tone3:": "👩🏽‍💼", + ":woman_office_worker_tone4:": "👩🏾‍💼", + ":woman_office_worker_tone5:": "👩🏿‍💼", + ":woman_pilot:": "👩‍✈️", + ":woman_pilot_dark_skin_tone:": "👩🏿‍✈️", + ":woman_pilot_light_skin_tone:": "👩🏻‍✈️", + ":woman_pilot_medium_dark_skin_tone:": "👩🏾‍✈️", + ":woman_pilot_medium_light_skin_tone:": "👩🏼‍✈️", + ":woman_pilot_medium_skin_tone:": "👩🏽‍✈️", + ":woman_pilot_tone1:": "👩🏻‍✈️", + ":woman_pilot_tone2:": "👩🏼‍✈️", + ":woman_pilot_tone3:": "👩🏽‍✈️", + ":woman_pilot_tone4:": "👩🏾‍✈️", + ":woman_pilot_tone5:": "👩🏿‍✈️", + ":woman_playing_handball:": "🤾‍♀️", + ":woman_playing_handball_dark_skin_tone:": "🤾🏿‍♀️", + ":woman_playing_handball_light_skin_tone:": "🤾🏻‍♀️", + ":woman_playing_handball_medium_dark_skin_tone:": "🤾🏾‍♀️", + ":woman_playing_handball_medium_light_skin_tone:": "🤾🏼‍♀️", + ":woman_playing_handball_medium_skin_tone:": "🤾🏽‍♀️", + ":woman_playing_handball_tone1:": "🤾🏻‍♀️", + ":woman_playing_handball_tone2:": "🤾🏼‍♀️", + ":woman_playing_handball_tone3:": "🤾🏽‍♀️", + ":woman_playing_handball_tone4:": "🤾🏾‍♀️", + ":woman_playing_handball_tone5:": "🤾🏿‍♀️", + ":woman_playing_water_polo:": "🤽‍♀️", + ":woman_playing_water_polo_dark_skin_tone:": "🤽🏿‍♀️", + ":woman_playing_water_polo_light_skin_tone:": "🤽🏻‍♀️", + ":woman_playing_water_polo_medium_dark_skin_tone:": "🤽🏾‍♀️", + ":woman_playing_water_polo_medium_light_skin_tone:": "🤽🏼‍♀️", + ":woman_playing_water_polo_medium_skin_tone:": "🤽🏽‍♀️", + ":woman_playing_water_polo_tone1:": "🤽🏻‍♀️", + ":woman_playing_water_polo_tone2:": "🤽🏼‍♀️", + ":woman_playing_water_polo_tone3:": "🤽🏽‍♀️", + ":woman_playing_water_polo_tone4:": "🤽🏾‍♀️", + ":woman_playing_water_polo_tone5:": "🤽🏿‍♀️", + ":woman_police_officer:": "👮‍♀️", + ":woman_police_officer_dark_skin_tone:": "👮🏿‍♀️", + ":woman_police_officer_light_skin_tone:": "👮🏻‍♀️", + ":woman_police_officer_medium_dark_skin_tone:": "👮🏾‍♀️", + ":woman_police_officer_medium_light_skin_tone:": "👮🏼‍♀️", + ":woman_police_officer_medium_skin_tone:": "👮🏽‍♀️", + ":woman_police_officer_tone1:": "👮🏻‍♀️", + ":woman_police_officer_tone2:": "👮🏼‍♀️", + ":woman_police_officer_tone3:": "👮🏽‍♀️", + ":woman_police_officer_tone4:": "👮🏾‍♀️", + ":woman_police_officer_tone5:": "👮🏿‍♀️", + ":woman_pouting:": "🙎‍♀️", + ":woman_pouting_dark_skin_tone:": "🙎🏿‍♀️", + ":woman_pouting_light_skin_tone:": "🙎🏻‍♀️", + ":woman_pouting_medium_dark_skin_tone:": "🙎🏾‍♀️", + ":woman_pouting_medium_light_skin_tone:": "🙎🏼‍♀️", + ":woman_pouting_medium_skin_tone:": "🙎🏽‍♀️", + ":woman_pouting_tone1:": "🙎🏻‍♀️", + ":woman_pouting_tone2:": "🙎🏼‍♀️", + ":woman_pouting_tone3:": "🙎🏽‍♀️", + ":woman_pouting_tone4:": "🙎🏾‍♀️", + ":woman_pouting_tone5:": "🙎🏿‍♀️", + ":woman_raising_hand:": "🙋‍♀️", + ":woman_raising_hand_dark_skin_tone:": "🙋🏿‍♀️", + ":woman_raising_hand_light_skin_tone:": "🙋🏻‍♀️", + ":woman_raising_hand_medium_dark_skin_tone:": "🙋🏾‍♀️", + ":woman_raising_hand_medium_light_skin_tone:": "🙋🏼‍♀️", + ":woman_raising_hand_medium_skin_tone:": "🙋🏽‍♀️", + ":woman_raising_hand_tone1:": "🙋🏻‍♀️", + ":woman_raising_hand_tone2:": "🙋🏼‍♀️", + ":woman_raising_hand_tone3:": "🙋🏽‍♀️", + ":woman_raising_hand_tone4:": "🙋🏾‍♀️", + ":woman_raising_hand_tone5:": "🙋🏿‍♀️", + ":woman_red_haired:": "👩‍🦰", + ":woman_red_haired_dark_skin_tone:": "👩🏿‍🦰", + ":woman_red_haired_light_skin_tone:": "👩🏻‍🦰", + ":woman_red_haired_medium_dark_skin_tone:": "👩🏾‍🦰", + ":woman_red_haired_medium_light_skin_tone:": "👩🏼‍🦰", + ":woman_red_haired_medium_skin_tone:": "👩🏽‍🦰", + ":woman_red_haired_tone1:": "👩🏻‍🦰", + ":woman_red_haired_tone2:": "👩🏼‍🦰", + ":woman_red_haired_tone3:": "👩🏽‍🦰", + ":woman_red_haired_tone4:": "👩🏾‍🦰", + ":woman_red_haired_tone5:": "👩🏿‍🦰", + ":woman_rowing_boat:": "🚣‍♀️", + ":woman_rowing_boat_dark_skin_tone:": "🚣🏿‍♀️", + ":woman_rowing_boat_light_skin_tone:": "🚣🏻‍♀️", + ":woman_rowing_boat_medium_dark_skin_tone:": "🚣🏾‍♀️", + ":woman_rowing_boat_medium_light_skin_tone:": "🚣🏼‍♀️", + ":woman_rowing_boat_medium_skin_tone:": "🚣🏽‍♀️", + ":woman_rowing_boat_tone1:": "🚣🏻‍♀️", + ":woman_rowing_boat_tone2:": "🚣🏼‍♀️", + ":woman_rowing_boat_tone3:": "🚣🏽‍♀️", + ":woman_rowing_boat_tone4:": "🚣🏾‍♀️", + ":woman_rowing_boat_tone5:": "🚣🏿‍♀️", + ":woman_running:": "🏃‍♀️", + ":woman_running_dark_skin_tone:": "🏃🏿‍♀️", + ":woman_running_light_skin_tone:": "🏃🏻‍♀️", + ":woman_running_medium_dark_skin_tone:": "🏃🏾‍♀️", + ":woman_running_medium_light_skin_tone:": "🏃🏼‍♀️", + ":woman_running_medium_skin_tone:": "🏃🏽‍♀️", + ":woman_running_tone1:": "🏃🏻‍♀️", + ":woman_running_tone2:": "🏃🏼‍♀️", + ":woman_running_tone3:": "🏃🏽‍♀️", + ":woman_running_tone4:": "🏃🏾‍♀️", + ":woman_running_tone5:": "🏃🏿‍♀️", + ":woman_scientist:": "👩‍🔬", + ":woman_scientist_dark_skin_tone:": "👩🏿‍🔬", + ":woman_scientist_light_skin_tone:": "👩🏻‍🔬", + ":woman_scientist_medium_dark_skin_tone:": "👩🏾‍🔬", + ":woman_scientist_medium_light_skin_tone:": "👩🏼‍🔬", + ":woman_scientist_medium_skin_tone:": "👩🏽‍🔬", + ":woman_scientist_tone1:": "👩🏻‍🔬", + ":woman_scientist_tone2:": "👩🏼‍🔬", + ":woman_scientist_tone3:": "👩🏽‍🔬", + ":woman_scientist_tone4:": "👩🏾‍🔬", + ":woman_scientist_tone5:": "👩🏿‍🔬", + ":woman_shrugging:": "🤷‍♀️", + ":woman_shrugging_dark_skin_tone:": "🤷🏿‍♀️", + ":woman_shrugging_light_skin_tone:": "🤷🏻‍♀️", + ":woman_shrugging_medium_dark_skin_tone:": "🤷🏾‍♀️", + ":woman_shrugging_medium_light_skin_tone:": "🤷🏼‍♀️", + ":woman_shrugging_medium_skin_tone:": "🤷🏽‍♀️", + ":woman_shrugging_tone1:": "🤷🏻‍♀️", + ":woman_shrugging_tone2:": "🤷🏼‍♀️", + ":woman_shrugging_tone3:": "🤷🏽‍♀️", + ":woman_shrugging_tone4:": "🤷🏾‍♀️", + ":woman_shrugging_tone5:": "🤷🏿‍♀️", + ":woman_singer:": "👩‍🎤", + ":woman_singer_dark_skin_tone:": "👩🏿‍🎤", + ":woman_singer_light_skin_tone:": "👩🏻‍🎤", + ":woman_singer_medium_dark_skin_tone:": "👩🏾‍🎤", + ":woman_singer_medium_light_skin_tone:": "👩🏼‍🎤", + ":woman_singer_medium_skin_tone:": "👩🏽‍🎤", + ":woman_singer_tone1:": "👩🏻‍🎤", + ":woman_singer_tone2:": "👩🏼‍🎤", + ":woman_singer_tone3:": "👩🏽‍🎤", + ":woman_singer_tone4:": "👩🏾‍🎤", + ":woman_singer_tone5:": "👩🏿‍🎤", + ":woman_standing:": "🧍‍♀️", + ":woman_standing_dark_skin_tone:": "🧍🏿‍♀️", + ":woman_standing_light_skin_tone:": "🧍🏻‍♀️", + ":woman_standing_medium_dark_skin_tone:": "🧍🏾‍♀️", + ":woman_standing_medium_light_skin_tone:": "🧍🏼‍♀️", + ":woman_standing_medium_skin_tone:": "🧍🏽‍♀️", + ":woman_standing_tone1:": "🧍🏻‍♀️", + ":woman_standing_tone2:": "🧍🏼‍♀️", + ":woman_standing_tone3:": "🧍🏽‍♀️", + ":woman_standing_tone4:": "🧍🏾‍♀️", + ":woman_standing_tone5:": "🧍🏿‍♀️", + ":woman_student:": "👩‍🎓", + ":woman_student_dark_skin_tone:": "👩🏿‍🎓", + ":woman_student_light_skin_tone:": "👩🏻‍🎓", + ":woman_student_medium_dark_skin_tone:": "👩🏾‍🎓", + ":woman_student_medium_light_skin_tone:": "👩🏼‍🎓", + ":woman_student_medium_skin_tone:": "👩🏽‍🎓", + ":woman_student_tone1:": "👩🏻‍🎓", + ":woman_student_tone2:": "👩🏼‍🎓", + ":woman_student_tone3:": "👩🏽‍🎓", + ":woman_student_tone4:": "👩🏾‍🎓", + ":woman_student_tone5:": "👩🏿‍🎓", + ":woman_superhero:": "🦸‍♀️", + ":woman_superhero_dark_skin_tone:": "🦸🏿‍♀️", + ":woman_superhero_light_skin_tone:": "🦸🏻‍♀️", + ":woman_superhero_medium_dark_skin_tone:": "🦸🏾‍♀️", + ":woman_superhero_medium_light_skin_tone:": "🦸🏼‍♀️", + ":woman_superhero_medium_skin_tone:": "🦸🏽‍♀️", + ":woman_superhero_tone1:": "🦸🏻‍♀️", + ":woman_superhero_tone2:": "🦸🏼‍♀️", + ":woman_superhero_tone3:": "🦸🏽‍♀️", + ":woman_superhero_tone4:": "🦸🏾‍♀️", + ":woman_superhero_tone5:": "🦸🏿‍♀️", + ":woman_supervillain:": "🦹‍♀️", + ":woman_supervillain_dark_skin_tone:": "🦹🏿‍♀️", + ":woman_supervillain_light_skin_tone:": "🦹🏻‍♀️", + ":woman_supervillain_medium_dark_skin_tone:": "🦹🏾‍♀️", + ":woman_supervillain_medium_light_skin_tone:": "🦹🏼‍♀️", + ":woman_supervillain_medium_skin_tone:": "🦹🏽‍♀️", + ":woman_supervillain_tone1:": "🦹🏻‍♀️", + ":woman_supervillain_tone2:": "🦹🏼‍♀️", + ":woman_supervillain_tone3:": "🦹🏽‍♀️", + ":woman_supervillain_tone4:": "🦹🏾‍♀️", + ":woman_supervillain_tone5:": "🦹🏿‍♀️", + ":woman_surfing:": "🏄‍♀️", + ":woman_surfing_dark_skin_tone:": "🏄🏿‍♀️", + ":woman_surfing_light_skin_tone:": "🏄🏻‍♀️", + ":woman_surfing_medium_dark_skin_tone:": "🏄🏾‍♀️", + ":woman_surfing_medium_light_skin_tone:": "🏄🏼‍♀️", + ":woman_surfing_medium_skin_tone:": "🏄🏽‍♀️", + ":woman_surfing_tone1:": "🏄🏻‍♀️", + ":woman_surfing_tone2:": "🏄🏼‍♀️", + ":woman_surfing_tone3:": "🏄🏽‍♀️", + ":woman_surfing_tone4:": "🏄🏾‍♀️", + ":woman_surfing_tone5:": "🏄🏿‍♀️", + ":woman_swimming:": "🏊‍♀️", + ":woman_swimming_dark_skin_tone:": "🏊🏿‍♀️", + ":woman_swimming_light_skin_tone:": "🏊🏻‍♀️", + ":woman_swimming_medium_dark_skin_tone:": "🏊🏾‍♀️", + ":woman_swimming_medium_light_skin_tone:": "🏊🏼‍♀️", + ":woman_swimming_medium_skin_tone:": "🏊🏽‍♀️", + ":woman_swimming_tone1:": "🏊🏻‍♀️", + ":woman_swimming_tone2:": "🏊🏼‍♀️", + ":woman_swimming_tone3:": "🏊🏽‍♀️", + ":woman_swimming_tone4:": "🏊🏾‍♀️", + ":woman_swimming_tone5:": "🏊🏿‍♀️", + ":woman_teacher:": "👩‍🏫", + ":woman_teacher_dark_skin_tone:": "👩🏿‍🏫", + ":woman_teacher_light_skin_tone:": "👩🏻‍🏫", + ":woman_teacher_medium_dark_skin_tone:": "👩🏾‍🏫", + ":woman_teacher_medium_light_skin_tone:": "👩🏼‍🏫", + ":woman_teacher_medium_skin_tone:": "👩🏽‍🏫", + ":woman_teacher_tone1:": "👩🏻‍🏫", + ":woman_teacher_tone2:": "👩🏼‍🏫", + ":woman_teacher_tone3:": "👩🏽‍🏫", + ":woman_teacher_tone4:": "👩🏾‍🏫", + ":woman_teacher_tone5:": "👩🏿‍🏫", + ":woman_technologist:": "👩‍💻", + ":woman_technologist_dark_skin_tone:": "👩🏿‍💻", + ":woman_technologist_light_skin_tone:": "👩🏻‍💻", + ":woman_technologist_medium_dark_skin_tone:": "👩🏾‍💻", + ":woman_technologist_medium_light_skin_tone:": "👩🏼‍💻", + ":woman_technologist_medium_skin_tone:": "👩🏽‍💻", + ":woman_technologist_tone1:": "👩🏻‍💻", + ":woman_technologist_tone2:": "👩🏼‍💻", + ":woman_technologist_tone3:": "👩🏽‍💻", + ":woman_technologist_tone4:": "👩🏾‍💻", + ":woman_technologist_tone5:": "👩🏿‍💻", + ":woman_tipping_hand:": "💁‍♀️", + ":woman_tipping_hand_dark_skin_tone:": "💁🏿‍♀️", + ":woman_tipping_hand_light_skin_tone:": "💁🏻‍♀️", + ":woman_tipping_hand_medium_dark_skin_tone:": "💁🏾‍♀️", + ":woman_tipping_hand_medium_light_skin_tone:": "💁🏼‍♀️", + ":woman_tipping_hand_medium_skin_tone:": "💁🏽‍♀️", + ":woman_tipping_hand_tone1:": "💁🏻‍♀️", + ":woman_tipping_hand_tone2:": "💁🏼‍♀️", + ":woman_tipping_hand_tone3:": "💁🏽‍♀️", + ":woman_tipping_hand_tone4:": "💁🏾‍♀️", + ":woman_tipping_hand_tone5:": "💁🏿‍♀️", + ":woman_tone1:": "👩🏻", + ":woman_tone1_beard:": "🧔🏻‍♀️", + ":woman_tone2:": "👩🏼", + ":woman_tone2_beard:": "🧔🏼‍♀️", + ":woman_tone3:": "👩🏽", + ":woman_tone3_beard:": "🧔🏽‍♀️", + ":woman_tone4:": "👩🏾", + ":woman_tone4_beard:": "🧔🏾‍♀️", + ":woman_tone5:": "👩🏿", + ":woman_tone5_beard:": "🧔🏿‍♀️", + ":woman_vampire:": "🧛‍♀️", + ":woman_vampire_dark_skin_tone:": "🧛🏿‍♀️", + ":woman_vampire_light_skin_tone:": "🧛🏻‍♀️", + ":woman_vampire_medium_dark_skin_tone:": "🧛🏾‍♀️", + ":woman_vampire_medium_light_skin_tone:": "🧛🏼‍♀️", + ":woman_vampire_medium_skin_tone:": "🧛🏽‍♀️", + ":woman_vampire_tone1:": "🧛🏻‍♀️", + ":woman_vampire_tone2:": "🧛🏼‍♀️", + ":woman_vampire_tone3:": "🧛🏽‍♀️", + ":woman_vampire_tone4:": "🧛🏾‍♀️", + ":woman_vampire_tone5:": "🧛🏿‍♀️", + ":woman_walking:": "🚶‍♀️", + ":woman_walking_dark_skin_tone:": "🚶🏿‍♀️", + ":woman_walking_light_skin_tone:": "🚶🏻‍♀️", + ":woman_walking_medium_dark_skin_tone:": "🚶🏾‍♀️", + ":woman_walking_medium_light_skin_tone:": "🚶🏼‍♀️", + ":woman_walking_medium_skin_tone:": "🚶🏽‍♀️", + ":woman_walking_tone1:": "🚶🏻‍♀️", + ":woman_walking_tone2:": "🚶🏼‍♀️", + ":woman_walking_tone3:": "🚶🏽‍♀️", + ":woman_walking_tone4:": "🚶🏾‍♀️", + ":woman_walking_tone5:": "🚶🏿‍♀️", + ":woman_wearing_turban:": "👳‍♀️", + ":woman_wearing_turban_dark_skin_tone:": "👳🏿‍♀️", + ":woman_wearing_turban_light_skin_tone:": "👳🏻‍♀️", + ":woman_wearing_turban_medium_dark_skin_tone:": "👳🏾‍♀️", + ":woman_wearing_turban_medium_light_skin_tone:": "👳🏼‍♀️", + ":woman_wearing_turban_medium_skin_tone:": "👳🏽‍♀️", + ":woman_wearing_turban_tone1:": "👳🏻‍♀️", + ":woman_wearing_turban_tone2:": "👳🏼‍♀️", + ":woman_wearing_turban_tone3:": "👳🏽‍♀️", + ":woman_wearing_turban_tone4:": "👳🏾‍♀️", + ":woman_wearing_turban_tone5:": "👳🏿‍♀️", + ":woman_white_haired:": "👩‍🦳", + ":woman_white_haired_dark_skin_tone:": "👩🏿‍🦳", + ":woman_white_haired_light_skin_tone:": "👩🏻‍🦳", + ":woman_white_haired_medium_dark_skin_tone:": "👩🏾‍🦳", + ":woman_white_haired_medium_light_skin_tone:": "👩🏼‍🦳", + ":woman_white_haired_medium_skin_tone:": "👩🏽‍🦳", + ":woman_white_haired_tone1:": "👩🏻‍🦳", + ":woman_white_haired_tone2:": "👩🏼‍🦳", + ":woman_white_haired_tone3:": "👩🏽‍🦳", + ":woman_white_haired_tone4:": "👩🏾‍🦳", + ":woman_white_haired_tone5:": "👩🏿‍🦳", + ":woman_with_headscarf:": "🧕", + ":woman_with_headscarf_dark_skin_tone:": "🧕🏿", + ":woman_with_headscarf_light_skin_tone:": "🧕🏻", + ":woman_with_headscarf_medium_dark_skin_tone:": "🧕🏾", + ":woman_with_headscarf_medium_light_skin_tone:": "🧕🏼", + ":woman_with_headscarf_medium_skin_tone:": "🧕🏽", + ":woman_with_headscarf_tone1:": "🧕🏻", + ":woman_with_headscarf_tone2:": "🧕🏼", + ":woman_with_headscarf_tone3:": "🧕🏽", + ":woman_with_headscarf_tone4:": "🧕🏾", + ":woman_with_headscarf_tone5:": "🧕🏿", + ":woman_with_probing_cane:": "👩‍🦯", + ":woman_with_probing_cane_dark_skin_tone:": "👩🏿‍🦯", + ":woman_with_probing_cane_light_skin_tone:": "👩🏻‍🦯", + ":woman_with_probing_cane_medium_dark_skin_tone:": "👩🏾‍🦯", + ":woman_with_probing_cane_medium_light_skin_tone:": "👩🏼‍🦯", + ":woman_with_probing_cane_medium_skin_tone:": "👩🏽‍🦯", + ":woman_with_probing_cane_tone1:": "👩🏻‍🦯", + ":woman_with_probing_cane_tone2:": "👩🏼‍🦯", + ":woman_with_probing_cane_tone3:": "👩🏽‍🦯", + ":woman_with_probing_cane_tone4:": "👩🏾‍🦯", + ":woman_with_probing_cane_tone5:": "👩🏿‍🦯", + ":woman_with_turban:": "👳‍♀️", + ":woman_with_veil:": "👰‍♀️", + ":woman_with_veil_dark_skin_tone:": "👰🏿‍♀️", + ":woman_with_veil_light_skin_tone:": "👰🏻‍♀️", + ":woman_with_veil_medium_dark_skin_tone:": "👰🏾‍♀️", + ":woman_with_veil_medium_light_skin_tone:": "👰🏼‍♀️", + ":woman_with_veil_medium_skin_tone:": "👰🏽‍♀️", + ":woman_with_veil_tone1:": "👰🏻‍♀️", + ":woman_with_veil_tone2:": "👰🏼‍♀️", + ":woman_with_veil_tone3:": "👰🏽‍♀️", + ":woman_with_veil_tone4:": "👰🏾‍♀️", + ":woman_with_veil_tone5:": "👰🏿‍♀️", + ":woman_zombie:": "🧟‍♀️", + ":womans_clothes:": "👚", + ":womans_flat_shoe:": "🥿", + ":womans_hat:": "👒", + ":women_holding_hands_dark_skin_tone:": "👭🏿", + ":women_holding_hands_dark_skin_tone_light_skin_tone:": "👩🏿‍🤝‍👩🏻", + ":women_holding_hands_dark_skin_tone_medium_dark_skin_tone:": "👩🏿‍🤝‍👩🏾", + ":women_holding_hands_dark_skin_tone_medium_light_skin_tone:": "👩🏿‍🤝‍👩🏼", + ":women_holding_hands_dark_skin_tone_medium_skin_tone:": "👩🏿‍🤝‍👩🏽", + ":women_holding_hands_light_skin_tone:": "👭🏻", + ":women_holding_hands_light_skin_tone_dark_skin_tone:": "👩🏻‍🤝‍👩🏿", + ":women_holding_hands_light_skin_tone_medium_dark_skin_tone:": "👩🏻‍🤝‍👩🏾", + ":women_holding_hands_light_skin_tone_medium_light_skin_tone:": "👩🏻‍🤝‍👩🏼", + ":women_holding_hands_light_skin_tone_medium_skin_tone:": "👩🏻‍🤝‍👩🏽", + ":women_holding_hands_medium_dark_skin_tone:": "👭🏾", + ":women_holding_hands_medium_dark_skin_tone_dark_skin_tone:": "👩🏾‍🤝‍👩🏿", + ":women_holding_hands_medium_dark_skin_tone_light_skin_tone:": "👩🏾‍🤝‍👩🏻", + ":women_holding_hands_medium_dark_skin_tone_medium_light_skin_tone:": "👩🏾‍🤝‍👩🏼", + ":women_holding_hands_medium_dark_skin_tone_medium_skin_tone:": "👩🏾‍🤝‍👩🏽", + ":women_holding_hands_medium_light_skin_tone:": "👭🏼", + ":women_holding_hands_medium_light_skin_tone_dark_skin_tone:": "👩🏼‍🤝‍👩🏿", + ":women_holding_hands_medium_light_skin_tone_light_skin_tone:": "👩🏼‍🤝‍👩🏻", + ":women_holding_hands_medium_light_skin_tone_medium_dark_skin_tone:": "👩🏼‍🤝‍👩🏾", + ":women_holding_hands_medium_light_skin_tone_medium_skin_tone:": "👩🏼‍🤝‍👩🏽", + ":women_holding_hands_medium_skin_tone:": "👭🏽", + ":women_holding_hands_medium_skin_tone_dark_skin_tone:": "👩🏽‍🤝‍👩🏿", + ":women_holding_hands_medium_skin_tone_light_skin_tone:": "👩🏽‍🤝‍👩🏻", + ":women_holding_hands_medium_skin_tone_medium_dark_skin_tone:": "👩🏽‍🤝‍👩🏾", + ":women_holding_hands_medium_skin_tone_medium_light_skin_tone:": "👩🏽‍🤝‍👩🏼", + ":women_holding_hands_tone1:": "👭🏻", + ":women_holding_hands_tone1_tone2:": "👩🏻‍🤝‍👩🏼", + ":women_holding_hands_tone1_tone3:": "👩🏻‍🤝‍👩🏽", + ":women_holding_hands_tone1_tone4:": "👩🏻‍🤝‍👩🏾", + ":women_holding_hands_tone1_tone5:": "👩🏻‍🤝‍👩🏿", + ":women_holding_hands_tone2:": "👭🏼", + ":women_holding_hands_tone2_tone1:": "👩🏼‍🤝‍👩🏻", + ":women_holding_hands_tone2_tone3:": "👩🏼‍🤝‍👩🏽", + ":women_holding_hands_tone2_tone4:": "👩🏼‍🤝‍👩🏾", + ":women_holding_hands_tone2_tone5:": "👩🏼‍🤝‍👩🏿", + ":women_holding_hands_tone3:": "👭🏽", + ":women_holding_hands_tone3_tone1:": "👩🏽‍🤝‍👩🏻", + ":women_holding_hands_tone3_tone2:": "👩🏽‍🤝‍👩🏼", + ":women_holding_hands_tone3_tone4:": "👩🏽‍🤝‍👩🏾", + ":women_holding_hands_tone3_tone5:": "👩🏽‍🤝‍👩🏿", + ":women_holding_hands_tone4:": "👭🏾", + ":women_holding_hands_tone4_tone1:": "👩🏾‍🤝‍👩🏻", + ":women_holding_hands_tone4_tone2:": "👩🏾‍🤝‍👩🏼", + ":women_holding_hands_tone4_tone3:": "👩🏾‍🤝‍👩🏽", + ":women_holding_hands_tone4_tone5:": "👩🏾‍🤝‍👩🏿", + ":women_holding_hands_tone5:": "👭🏿", + ":women_holding_hands_tone5_tone1:": "👩🏿‍🤝‍👩🏻", + ":women_holding_hands_tone5_tone2:": "👩🏿‍🤝‍👩🏼", + ":women_holding_hands_tone5_tone3:": "👩🏿‍🤝‍👩🏽", + ":women_holding_hands_tone5_tone4:": "👩🏿‍🤝‍👩🏾", + ":women_with_bunny_ears_partying:": "👯‍♀️", + ":women_wrestling:": "🤼‍♀️", + ":womens:": "🚺", + ":wood:": "🪵", + ":woozy_face:": "🥴", + ":world_map:": "🗺️", + ":worm:": "🪱", + ":worried:": "😟", + ":worship_symbol:": "🛐", + ":wrench:": "🔧", + ":wrestlers:": "🤼", + ":wrestlers_tone1:": "🤼🏻", + ":wrestlers_tone2:": "🤼🏼", + ":wrestlers_tone3:": "🤼🏽", + ":wrestlers_tone4:": "🤼🏾", + ":wrestlers_tone5:": "🤼🏿", + ":wrestling:": "🤼", + ":wrestling_tone1:": "🤼🏻", + ":wrestling_tone2:": "🤼🏼", + ":wrestling_tone3:": "🤼🏽", + ":wrestling_tone4:": "🤼🏾", + ":wrestling_tone5:": "🤼🏿", + ":writing_hand:": "✍️", + ":writing_hand_tone1:": "✍🏻", + ":writing_hand_tone2:": "✍🏼", + ":writing_hand_tone3:": "✍🏽", + ":writing_hand_tone4:": "✍🏾", + ":writing_hand_tone5:": "✍🏿", + ":ws:": "🇼🇸", + ":x:": "❌", + ":xk:": "🇽🇰", + ":yarn:": "🧶", + ":yawning_face:": "🥱", + ":ye:": "🇾🇪", + ":yellow_circle:": "🟡", + ":yellow_heart:": "💛", + ":yellow_square:": "🟨", + ":yemen:": "🇾🇪", + ":yen:": "💴", + ":yin_yang:": "☯️", + ":yo_yo:": "🪀", + ":yt:": "🇾🇹", + ":yum:": "😋", + ":za:": "🇿🇦", + ":zambia:": "🇿🇲", + ":zany_face:": "🤪", + ":zap:": "⚡", + ":zebra:": "🦓", + ":zero:": "0️⃣", + ":zimbabwe:": "🇿🇼", + ":zipper_mouth:": "🤐", + ":zipper_mouth_face:": "🤐", + ":zm:": "🇿🇲", + ":zombie:": "🧟", + ":zw:": "🇿🇼", + ":zzz:": "💤" +} diff --git a/docs/source/.gitignore b/docs/source/.gitignore new file mode 100644 index 0000000000..8157632d93 --- /dev/null +++ b/docs/source/.gitignore @@ -0,0 +1,4 @@ +*.rst +!index.rst +!projects/*.rst +!tutorials/*.rst diff --git a/docs/source/conf.py b/docs/source/conf.py index a6bbe78e0b..e9b39f07e1 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -41,6 +41,7 @@ 'sphinx.ext.mathjax', 'sphinx.ext.viewcode', 'sphinx.ext.githubpages', + 'sphinxemoji.sphinxemoji', ] # Add any paths that contain templates here, relative to this directory. diff --git a/docs/source/index.rst b/docs/source/index.rst index cd18cb1cb2..6568b772a5 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -1,6 +1,6 @@ -.. include:: ../../README.rst +.. include:: README.rst -.. include:: ../../CHANGELOG.rst +.. include:: CHANGELOG.rst Tutorial -------- diff --git a/docs/update_apidocs.sh b/docs/update_apidocs.sh index e72fbcc034..a605b41ff4 100755 --- a/docs/update_apidocs.sh +++ b/docs/update_apidocs.sh @@ -21,7 +21,11 @@ rm ${PWD}/docs/source/pySDC/*.rst echo "" echo "generating new .rst files ..." -${SPHINX_APIDOC} -o docs/source/pySDC pySDC/core --force -T -${SPHINX_APIDOC} -o docs/source/pySDC pySDC/implementations --force -T -${SPHINX_APIDOC} -o docs/source/pySDC pySDC/helpers --force -T +${SPHINX_APIDOC} -o docs/source/pySDC pySDC/core --force -T -d 2 -e +${SPHINX_APIDOC} -o docs/source/pySDC pySDC/implementations --force -T -d 2 -e +${SPHINX_APIDOC} -o docs/source/pySDC pySDC/helpers --force -T -d 2 -e #rm docs/source/pySDC/pySDC.rst + +echo "Running : pip install sphinxemoji m2r2" +pip install sphinxemoji m2r2 --quiet +./docs/convert_markdown.py diff --git a/pySDC/core/Collocation.py b/pySDC/core/Collocation.py index 3a796c9558..0a48019fc2 100644 --- a/pySDC/core/Collocation.py +++ b/pySDC/core/Collocation.py @@ -1,7 +1,5 @@ import logging - import numpy as np -import scipy.interpolate as intpl from pySDC.core.Nodes import NodesGenerator from pySDC.core.Errors import CollocationError diff --git a/pySDC/core/Common.py b/pySDC/core/Common.py new file mode 100644 index 0000000000..030a845ad2 --- /dev/null +++ b/pySDC/core/Common.py @@ -0,0 +1,75 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Description +----------- + +Module containing utility classe(s) from which inherit some of the pySDC base +classes. +""" +from pySDC.core.Errors import ReadOnlyError + + +class _MetaRegisterParams(type): + """Metaclass for RegisterParams base class""" + + def __new__(cls, name, bases, dct): + obj = super().__new__(cls, name, bases, dct) + obj._parNamesReadOnly = set() + obj._parNames = set() + return obj + + +class RegisterParams(metaclass=_MetaRegisterParams): + """ + Base class to register parameters. + + Attributes + ---------- + params : dict (property) + Dictionnary containing names and values of registered parameters. + _parNames : set of str + Names of all the registered parameters. + _parNamesReadOnly : set of str + Names of all the parameters registered as read-only. + """ + + def _makeAttributeAndRegister(self, *names, localVars=None, readOnly=False): + """ + Register a list of attribute name as parameters of the class. + + Parameters + ---------- + *names : list of str + The name of the parameters to be registered (should be class attributes). + localVars : dict + Dictionnary containing key=names and values=paramValues for each + parNames given in names. Can be provided, for instance, using + `locals()` built-in dictionary. MUST BE provided as soon as + names contains anything. + readOnly : bool, optional + Wether or not store the parameters as read-only attributes + """ + if len(names) > 1 and localVars is None: + raise ValueError("a dictionnary must be provided in localVars with parameters values") + # Set parameters as attributes + for name in names: + try: + super().__setattr__(name, localVars[name]) + except KeyError: + raise ValueError(f'value for {name} not given in localVars') + # Register as class parameter + if readOnly: + self._parNamesReadOnly = self._parNamesReadOnly.union(names) + else: + self._parNames = self._parNames.union(names) + + @property + def params(self): + """Dictionnary containing names and values of registered parameters""" + return {name: getattr(self, name) for name in self._parNamesReadOnly.union(self._parNames)} + + def __setattr__(self, name, value): + if name in self._parNamesReadOnly: + raise ReadOnlyError(name) + super().__setattr__(name, value) diff --git a/pySDC/core/Controller.py b/pySDC/core/Controller.py index e4d213e475..3046729911 100644 --- a/pySDC/core/Controller.py +++ b/pySDC/core/Controller.py @@ -184,12 +184,11 @@ def dump_setup(self, step, controller_params, description): else: out += ' %s = %s\n' % (k, v) out += '--> Problem: %s\n' % L.prob.__class__ - for k, v in vars(L.prob.params).items(): - if not k.startswith('_'): - if k in description['problem_params']: - out += '--> %s = %s\n' % (k, v) - else: - out += ' %s = %s\n' % (k, v) + for k, v in L.prob.params.items(): + if k in description['problem_params']: + out += '--> %s = %s\n' % (k, v) + else: + out += ' %s = %s\n' % (k, v) out += '--> Data type u: %s\n' % L.prob.dtype_u out += '--> Data type f: %s\n' % L.prob.dtype_f out += '--> Sweeper: %s\n' % L.sweep.__class__ diff --git a/pySDC/core/Errors.py b/pySDC/core/Errors.py index 799aa48f7a..5f0ebb2c28 100644 --- a/pySDC/core/Errors.py +++ b/pySDC/core/Errors.py @@ -60,3 +60,12 @@ class ProblemError(Exception): """ pass + + +class ReadOnlyError(Exception): + """ + Exception thrown when setting a read-only class attribute + """ + + def __init__(self, name): + super().__init__(f'cannot set read-only attribute {name}') diff --git a/pySDC/core/Level.py b/pySDC/core/Level.py index eb52929110..bc96da6bab 100644 --- a/pySDC/core/Level.py +++ b/pySDC/core/Level.py @@ -70,7 +70,7 @@ def __init__(self, problem_class, problem_params, sweeper_class, sweeper_params, # instantiate sweeper, problem and hooks self.__sweep = sweeper_class(sweeper_params) - self.__prob = problem_class(problem_params) + self.__prob = problem_class(**problem_params) # set level parameters and status self.params = _Pars(level_params) diff --git a/pySDC/core/Problem.py b/pySDC/core/Problem.py index 7812235d97..e6c9283a67 100644 --- a/pySDC/core/Problem.py +++ b/pySDC/core/Problem.py @@ -1,43 +1,37 @@ -import logging - -from pySDC.helpers.pysdc_helper import FrozenClass +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Description +----------- +Module containing the base Problem class for pySDC +""" -# short helper class to add params as attributes -class _Pars(FrozenClass): - def __init__(self, pars): - - for k, v in pars.items(): - setattr(self, k, v) +import logging - self._freeze() +from pySDC.core.Common import RegisterParams -class ptype(object): - """ - Prototype class for problems, just defines the attributes essential to get started - - Attributes: - logger: custom logger for problem-related logging - params (__Pars): parameter object containing the custom parameters passed by the user - init: number of degrees-of-freedom (whatever this may represent) - dtype_u: variable data type - dtype_f: RHS data type +class ptype(RegisterParams): """ + Prototype class for problems, just defines the attributes essential to get started. - def __init__(self, init, dtype_u, dtype_f, params): - """ - Initialization routine + Parameters + ---------- + init : list of args + Argument(s) used to initialize data types. + dtype_u : type + Variable data type. Should generate a data variable using dtype_u(init). + dtype_f : type + RHS data type. Should generate a data variable using dtype_f(init). - Args: - init: number of degrees-of-freedom (whatever this may represent) - dtype_u: variable data type - dtype_f: RHS data type - params (dict): set or parameters - """ - - self.params = _Pars(params) + Attributes + ---------- + logger: logging.Logger + custom logger for problem-related logging. + """ + def __init__(self, init, dtype_u, dtype_f): # set up logger self.logger = logging.getLogger('problem') @@ -46,9 +40,31 @@ def __init__(self, init, dtype_u, dtype_f, params): self.dtype_u = dtype_u self.dtype_f = dtype_f + @property + def u_init(self): + """Generate a data variable for u""" + return self.dtype_u(self.init) + + @property + def f_init(self): + """Generate a data variable for RHS""" + return self.dtype_f(self.init) + def eval_f(self, u, t): """ Abstract interface to RHS computation of the ODE + + Parameters + ---------- + u : dtype_u + Current values. + t : float + Current time. + + Returns + ------- + f : dtype_f + The RHS values. """ raise NotImplementedError('ERROR: problem has to implement eval_f(self, u, t)') diff --git a/pySDC/helpers/problem_helper.py b/pySDC/helpers/problem_helper.py index c0079ff523..922eb394b0 100644 --- a/pySDC/helpers/problem_helper.py +++ b/pySDC/helpers/problem_helper.py @@ -2,30 +2,30 @@ from scipy.special import factorial -def get_steps(derivative, order, type): +def get_steps(derivative, order, stencil_type): """ Get the offsets for the FD stencil. Args: derivative (int): Order of the derivative order (int): Order of accuracy - type (str): Type of the stencil - steps (list): Provide specific steps, overrides `type` + stencil_type (str): Type of the stencil + steps (list): Provide specific steps, overrides `stencil_type` Returns: int: The number of elements in the stencil numpy.ndarray: The offsets for the stencil """ - if type == 'center': + if stencil_type == 'center': n = order + derivative - (derivative + 1) % 2 // 1 steps = np.arange(n) - n // 2 - elif type == 'forward': + elif stencil_type == 'forward': n = order + derivative steps = np.arange(n) - elif type == 'backward': + elif stencil_type == 'backward': n = order + derivative steps = -np.arange(n) - elif type == 'upwind': + elif stencil_type == 'upwind': n = order + derivative if n <= 3: @@ -34,21 +34,20 @@ def get_steps(derivative, order, type): steps = np.append(-np.arange(n - 1)[::-1], [1]) else: raise ValueError( - f'Stencil must be of type "center", "forward", "backward" or "upwind", not {type}. If you want something\ -, you can also give specific steps.' + f'Stencil must be of type "center", "forward", "backward" or "upwind", not {stencil_type}. If you want something else you can also give specific steps.' ) return n, steps -def get_finite_difference_stencil(derivative, order, type=None, steps=None): +def get_finite_difference_stencil(derivative, order, stencil_type=None, steps=None): """ Derive general finite difference stencils from Taylor expansions Args: derivative (int): Order of the derivative order (int): Order of accuracy - type (str): Type of the stencil - steps (list): Provide specific steps, overrides `type` + stencil_type (str): Type of the stencil + steps (list): Provide specific steps, overrides `stencil_type` Returns: numpy.ndarray: The weights of the stencil @@ -58,7 +57,7 @@ def get_finite_difference_stencil(derivative, order, type=None, steps=None): if steps is not None: n = len(steps) else: - n, steps = get_steps(derivative, order, type) + n, steps = get_steps(derivative, order, stencil_type) # make a matrix that contains the Taylor coefficients A = np.zeros((n, n)) @@ -78,7 +77,7 @@ def get_finite_difference_stencil(derivative, order, type=None, steps=None): def get_finite_difference_matrix( - derivative, order, type=None, steps=None, dx=None, size=None, dim=None, bc=None, cupy=False + derivative, order, stencil_type=None, steps=None, dx=None, size=None, dim=None, bc=None, cupy=False ): """ Build FD matrix from stencils, with boundary conditions @@ -92,7 +91,9 @@ def get_finite_difference_matrix( raise NotImplementedError('Higher order allowed only for periodic boundary conditions') # get stencil - coeff, steps = get_finite_difference_stencil(derivative=derivative, order=order, type=type, steps=steps) + coeff, steps = get_finite_difference_stencil( + derivative=derivative, order=order, stencil_type=stencil_type, steps=steps + ) if bc == 'dirichlet-zero': A_1d = sp.diags(coeff, steps, shape=(size, size), format='csc') diff --git a/pySDC/implementations/problem_classes/AdvectionEquation_ND_FD.py b/pySDC/implementations/problem_classes/AdvectionEquation_ND_FD.py index 434ab4ee88..4b06349440 100644 --- a/pySDC/implementations/problem_classes/AdvectionEquation_ND_FD.py +++ b/pySDC/implementations/problem_classes/AdvectionEquation_ND_FD.py @@ -2,7 +2,7 @@ import scipy.sparse as sp from scipy.sparse.linalg import gmres, spsolve -from pySDC.core.Errors import ParameterError, ProblemError +from pySDC.core.Errors import ProblemError from pySDC.core.Problem import ptype from pySDC.helpers import problem_helper from pySDC.implementations.datatype_classes.mesh import mesh @@ -10,191 +10,253 @@ # noinspection PyUnusedLocal class advectionNd(ptype): + r""" + Example implementing the unforced ND advection equation with periodic + or Dirichlet boundary conditions in :math:`[0,1]^N`, + and initial solution of the form + + .. math:: + u({\bf x},0) = \prod_{i=1}^N \sin(f\pi x_i), + + with :math:`x_i` the coordinate in :math:`i^{th}` dimension. + Discretization uses central finite differences. + + Parameters + ---------- + nvars : int of tuple, optional + Spatial resolution (same in all dimensions). Using a tuple allows to + consider several dimensions, e.g nvars=(16,16) for a 2D problem. + c : float, optional + Advection speed (same in all dimensions). + freq : int of tuple, optional + Spatial frequency :math:`f` of the initial conditions, can be tuple. + stencil_type : str, optional + Type of the finite difference stencil. + order : int, optional + Order of the finite difference discretization. + lintol : float, optional + Tolerance for spatial solver (GMRES). + liniter : int, optional + Max. iterations number for GMRES. + direct_solver : bool, optional + Whether to solve directly or use GMRES. + bc : str, optional + Boundary conditions, either "periodic" or "dirichlet". + sigma : float, optional + If freq=-1 and ndim=1, uses a Gaussian initial solution of the form + + .. math:: + u(x,0) = e^{ + \frac{\displaystyle 1}{\displaystyle 2} + \left( + \frac{\displaystyle x-1/2}{\displaystyle \sigma} + \right)^2 + } + + Attributes + ---------- + A: sparse matrix (CSC) + FD discretization matrix of the ND grad operator. + ndim: int + Number of space dimensions. + dx: float + Distance between two spatial nodes (here: being the same in all dimensions). + Id: sparse matrix (CSC) + Identity matrix of the same dimension as A + + Notes + ----- + Args can be set as values or as tuples, which will increase the dimension. + Do, however, take care that all spatial parameters have the same dimension. """ - Example implementing the unforced ND advection equation with periodic BCs in [0,1]^N, - discretized using central finite differences - Attributes: - A: FD discretization of the ND grad operator - dx: distance between two spatial nodes (here: being the same in all dimensions) - """ - - def __init__(self, problem_params, dtype_u=mesh, dtype_f=mesh): - """ - Initialization routine - - Args: - problem_params (dict): custom parameters for the example - dtype_u: mesh data type (will be passed parent class) - dtype_f: mesh data type (will be passed parent class) - """ - - # these parameters will be used later, so assert their existence - - if 'order' not in problem_params: - problem_params['order'] = 2 - if 'stencil_type' not in problem_params: - problem_params['stencil_type'] = 'center' - if 'lintol' not in problem_params: - problem_params['lintol'] = 1e-12 - if 'liniter' not in problem_params: - problem_params['liniter'] = 10000 - if 'direct_solver' not in problem_params: - problem_params['direct_solver'] = True - - essential_keys = ['nvars', 'c', 'freq', 'type', 'order', 'lintol', 'liniter', 'direct_solver', 'bc'] - for key in essential_keys: - if key not in problem_params: - msg = 'need %s to instantiate problem, only got %s' % (key, str(problem_params.keys())) - raise ParameterError(msg) - - # make sure parameters have the correct form - if not (type(problem_params['nvars']) is tuple and type(problem_params['freq']) is tuple) and not ( - type(problem_params['nvars']) is int and type(problem_params['freq']) is int - ): - print(problem_params['nvars'], problem_params['freq']) - raise ProblemError('Type of nvars and freq must be both either int or both tuple') - - if 'ndim' not in problem_params: - if type(problem_params['nvars']) is int: - problem_params['ndim'] = 1 - elif type(problem_params['nvars']) is tuple: - problem_params['ndim'] = len(problem_params['nvars']) - - if problem_params['ndim'] > 3: - raise ProblemError(f'can work with up to three dimensions, got {problem_params["ndim"]}') - - if type(problem_params['freq']) is tuple: - for freq in problem_params['freq']: - if freq % 2 != 0 and problem_params['bc'] == 'periodic': - raise ProblemError('need even number of frequencies due to periodic BCs') - else: - if problem_params['freq'] % 2 != 0 and problem_params['freq'] != -1 and problem_params['bc'] == 'periodic': + def __init__( + self, + nvars=512, + c=1.0, + freq=2, + stencil_type='center', + order=2, + lintol=1e-12, + liniter=10000, + direct_solver=True, + bc='periodic', + sigma=6e-2, + ): + # make sure parameters have the correct types + if not type(nvars) in [int, tuple]: + raise ProblemError('nvars should be either tuple or int') + if not type(freq) in [int, tuple]: + raise ProblemError('freq should be either tuple or int') + + # transforms nvars into a tuple + if type(nvars) is int: + nvars = (nvars,) + + # automatically determine ndim from nvars + ndim = len(nvars) + if ndim > 3: + raise ProblemError(f'can work with up to three dimensions, got {ndim}') + + # eventually extend freq to other dimension + if type(freq) is int: + freq = (freq,) * ndim + if len(freq) != ndim: + raise ProblemError(f'len(freq)={len(freq)}, different to ndim={ndim}') + + # check values for freq and nvars + for f in freq: + if ndim == 1 and f == -1: + # use Gaussian initial solution in 1D + bc = 'periodic' + break + if f % 2 != 0 and bc == 'periodic': raise ProblemError('need even number of frequencies due to periodic BCs') - - if type(problem_params['nvars']) is tuple: - for nvars in problem_params['nvars']: - if nvars % 2 != 0 and problem_params['bc'] == 'periodic': - raise ProblemError('the setup requires nvars = 2^p per dimension') - if (nvars + 1) % 2 != 0 and problem_params['bc'] == 'dirichlet-zero': - raise ProblemError('setup requires nvars = 2^p - 1') - if problem_params['nvars'][1:] != problem_params['nvars'][:-1]: - raise ProblemError('need a square domain, got %s' % problem_params['nvars']) - else: - if problem_params['nvars'] % 2 != 0 and problem_params['bc'] == 'periodic': + for nvar in nvars: + if nvar % 2 != 0 and bc == 'periodic': raise ProblemError('the setup requires nvars = 2^p per dimension') - if (problem_params['nvars'] + 1) % 2 != 0 and problem_params['bc'] == 'dirichlet-zero': + if (nvar + 1) % 2 != 0 and bc == 'dirichlet-zero': raise ProblemError('setup requires nvars = 2^p - 1') + if ndim > 1 and nvars[1:] != nvars[:-1]: + raise ProblemError('need a square domain, got %s' % nvars) # invoke super init, passing number of dofs, dtype_u and dtype_f - super(advectionNd, self).__init__( - init=(problem_params['nvars'], None, np.dtype('float64')), - dtype_u=dtype_u, - dtype_f=dtype_f, - params=problem_params, + super().__init__( + init=(nvars, None, np.dtype('float64')), + dtype_u=mesh, + dtype_f=mesh, ) - if self.params.ndim == 1: - if type(self.params.nvars) is not tuple: - self.params.nvars = (self.params.nvars,) - if type(self.params.freq) is not tuple: - self.params.freq = (self.params.freq,) - # compute dx (equal in both dimensions) and get discretization matrix A - if self.params.bc == 'periodic': - self.dx = 1.0 / self.params.nvars[0] - xvalues = np.array([i * self.dx for i in range(self.params.nvars[0])]) - elif self.params.bc == 'dirichlet-zero': - self.dx = 1.0 / (self.params.nvars[0] + 1) - xvalues = np.array([(i + 1) * self.dx for i in range(self.params.nvars[0])]) + if bc == 'periodic': + xvalues = np.linspace(0, 1, num=nvars[0], endpoint=False) + elif bc == 'dirichlet-zero': + xvalues = np.linspace(0, 1, num=nvars[0] + 2)[1:-1] else: raise ProblemError(f'Boundary conditions {self.params.bc} not implemented.') + dx = xvalues[1] - xvalues[0] self.A = problem_helper.get_finite_difference_matrix( derivative=1, - order=self.params.order, - type=self.params.stencil_type, - dx=self.dx, - size=self.params.nvars[0], - dim=self.params.ndim, - bc=self.params.bc, + order=order, + stencil_type=stencil_type, + dx=dx, + size=nvars[0], + dim=ndim, + bc=bc, ) - self.A *= -self.params.c + self.A *= -c + + self.xvalues = xvalues + self.Id = sp.eye(np.prod(nvars), format='csc') + + # store attribute and register them as parameters + self._makeAttributeAndRegister('nvars', 'c', 'stencil_type', 'order', 'bc', localVars=locals(), readOnly=True) + self._makeAttributeAndRegister('freq', 'sigma', 'lintol', 'liniter', 'direct_solver', localVars=locals()) + + @property + def ndim(self): + """Number of dimensions of the spatial problem""" + return len(self.nvars) - self.xv = np.meshgrid(*[xvalues for _ in range(self.params.ndim)]) - self.Id = sp.eye(np.prod(self.params.nvars), format='csc') + @property + def dx(self): + """Size of the mesh (in all dimensions)""" + return self.xvalues[1] - self.xvalues[0] def eval_f(self, u, t): """ Routine to evaluate the RHS - Args: - u (dtype_u): current values - t (float): current time - - Returns: - dtype_f: the RHS + Parameters + ---------- + u : dtype_u + Current values. + t : float + Current time. + + Returns + ------- + f : dtype_f + The RHS values. """ - - f = self.dtype_f(self.init) - f[:] = self.A.dot(u.flatten()).reshape(self.params.nvars) + f = self.f_init + f[:] = self.A.dot(u.flatten()).reshape(self.nvars) return f def solve_system(self, rhs, factor, u0, t): """ - Simple linear solver for (I-factor*A)u = rhs - - Args: - rhs (dtype_f): right-hand side for the linear system - factor (float): abbrev. for the local stepsize (or any other factor required) - u0 (dtype_u): initial guess for the iterative solver - t (float): current time (e.g. for time-dependent BCs) - - Returns: - dtype_u: solution as mesh + Simple linear solver for (I-factor*A)u = rhs. + + Parameters + ---------- + rhs : dtype_f + Right-hand side for the linear system. + factor : float + Abbrev. for the local stepsize (or any other factor required). + u0 : dtype_u + Initial guess for the iterative solver. + t : float + Current time (e.g. for time-dependent BCs). + + Returns + ------- + sol : dtype_u + The solution of the linear solver. """ + direct_solver, Id, A, nvars, lintol, liniter, sol = ( + self.direct_solver, + self.Id, + self.A, + self.nvars, + self.lintol, + self.liniter, + self.u_init, + ) - me = self.dtype_u(self.init) - - if self.params.direct_solver: - me[:] = spsolve(self.Id - factor * self.A, rhs.flatten()).reshape(self.params.nvars) + if direct_solver: + sol[:] = spsolve(Id - factor * A, rhs.flatten()).reshape(nvars) else: - me[:] = gmres( - self.Id - factor * self.A, - rhs.flatten(), - x0=u0.flatten(), - tol=self.params.lintol, - maxiter=self.params.liniter, - atol=0, - )[0].reshape(self.params.nvars) - return me + sol[:] = gmres(Id - factor * A, rhs.flatten(), x0=u0.flatten(), tol=lintol, maxiter=liniter, atol=0,)[ + 0 + ].reshape(nvars) + + return sol def u_exact(self, t, **kwargs): """ Routine to compute the exact solution at time t - Args: - t (float): current time - - Returns: - dtype_u: exact solution + Parameters + ---------- + t : float + Time of the exact solution. + **kwargs : dict + Additional arguments (that won't be used). + + Returns + ------- + sol : dtype_u + The exact solution. """ - - me = self.dtype_u(self.init) - if self.params.ndim == 1: - if self.params.freq[0] >= 0: - me[:] = np.sin(np.pi * self.params.freq[0] * (self.xv[0] - self.params.c * t)) - elif self.params.freq[0] == -1: - me[:] = np.exp(-0.5 * (((self.xv[0] - (self.params.c * t)) % 1.0 - 0.5) / self.params.sigma) ** 2) - - elif self.params.ndim == 2: - me[:] = np.sin(np.pi * self.params.freq[0] * (self.xv[0] - self.params.c * t)) * np.sin( - np.pi * self.params.freq[1] * (self.xv[1] - self.params.c * t) - ) - elif self.params.ndim == 3: - me[:] = ( - np.sin(np.pi * self.params.freq[0] * (self.xv[0] - self.params.c * t)) - * np.sin(np.pi * self.params.freq[1] * (self.xv[1] - self.params.c * t)) - * np.sin(np.pi * self.params.freq[2] * (self.xv[2] - self.params.c * t)) + # Initialize pointers and variables + ndim, freq, x, c, sigma, sol = self.ndim, self.freq, self.xvalues, self.c, self.sigma, self.u_init + + if ndim == 1: + if freq[0] >= 0: + sol[:] = np.sin(np.pi * freq[0] * (x - c * t)) + elif freq[0] == -1: + # Gaussian initial solution + sol[:] = np.exp(-0.5 * (((x - (c * t)) % 1.0 - 0.5) / sigma) ** 2) + + elif ndim == 2: + sol[:] = np.sin(np.pi * freq[0] * (x[None, :] - c * t)) * np.sin(np.pi * freq[1] * (x[:, None] - c * t)) + + elif ndim == 3: + sol[:] = ( + np.sin(np.pi * freq[0] * (x[None, :, None] - c * t)) + * np.sin(np.pi * freq[1] * (x[:, None, None] - c * t)) + * np.sin(np.pi * freq[2] * (x[None, None, :] - c * t)) ) - return me + + return sol