pax_global_header00006660000000000000000000000064136321450650014517gustar00rootroot0000000000000052 comment=b2568c98122a7dca67fd44463b0fb4f06d25c3df emoji-1.0.0/000077500000000000000000000000001363214506500126205ustar00rootroot00000000000000emoji-1.0.0/.github/000077500000000000000000000000001363214506500141605ustar00rootroot00000000000000emoji-1.0.0/.github/workflows/000077500000000000000000000000001363214506500162155ustar00rootroot00000000000000emoji-1.0.0/.github/workflows/go.yml000066400000000000000000000011031363214506500173400ustar00rootroot00000000000000name: build on: [push, pull_request] jobs: test-build: name: Test & Build runs-on: ubuntu-latest steps: - name: Set up Go 1.13 uses: actions/setup-go@v1 with: go-version: 1.13 id: go - name: Check out code into the Go module directory uses: actions/checkout@v1 - name: Test run: | go mod tidy -v go test -race -coverprofile=coverage.txt -covermode=atomic ./... - uses: codecov/codecov-action@v1 with: token: ${{ secrets.CODECOV_TOKEN }} - name: Build run: go build ./... emoji-1.0.0/.gitignore000066400000000000000000000004151363214506500146100ustar00rootroot00000000000000# Binaries for programs and plugins *.exe *.exe~ *.dll *.so *.dylib # Test binary, built with `go test -c` *.test # Output of the go coverage tool, specifically when used with LiteIDE *.out # Dependency directories (remove the comment below to include it) # vendor/ emoji-1.0.0/LICENSE000066400000000000000000000020551363214506500136270ustar00rootroot00000000000000MIT License Copyright (c) 2020 Enes Çakır Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. emoji-1.0.0/README.md000066400000000000000000000063371363214506500141100ustar00rootroot00000000000000# emoji :rocket: :school_satchel: :tada: [![Build Status](https://github.com/enescakir/emoji/workflows/build/badge.svg?branch=master)](https://github.com/enescakir/emoji/actions) [![godoc](https://godoc.org/github.com/enescakir/emoji?status.svg)](https://godoc.org/github.com/enescakir/emoji) [![Go Report Card](https://goreportcard.com/badge/github.com/enescakir/emoji)](https://goreportcard.com/report/github.com/enescakir/emoji) [![Codecov](https://img.shields.io/codecov/c/github/enescakir/emoji)](https://codecov.io/gh/enescakir/emoji) [![MIT License](https://img.shields.io/github/license/enescakir/emoji)](https://github.com/enescakir/emoji/blob/master/LICENSE) `emoji` is a minimalistic emoji library for Go. It lets you use emoji characters in strings. Inspired by [spatie/emoji](https://github.com/spatie/emoji) ## Install :floppy_disk: ``` bash go get github.com/enescakir/emoji ``` ## Usage :surfer: ```go package main import ( "fmt" "github.com/enescakir/emoji" ) func main() { fmt.Printf("Hello %v\n", emoji.WavingHand) fmt.Printf("I am %v from %v\n", emoji.ManTechnologist, emoji.FlagForTurkey, ) fmt.Printf("Different skin tones.\n default: %v light: %v dark: %v\n", emoji.ThumbsUp, emoji.OkHand.Tone(emoji.Light), emoji.CallMeHand.Tone(emoji.Dark), ) fmt.Printf("Emojis with multiple skin tones.\n both medium: %v light and dark: %v\n", emoji.PeopleHoldingHands.Tone(emoji.Medium), emoji.PeopleHoldingHands.Tone(emoji.Light, emoji.Dark), ) fmt.Println(emoji.Parse("Emoji aliases are :sunglasses:")) emoji.Println("Use fmt wrappers :+1: with emoji support :tada:") } /* OUTPUT Hello 👋 I am 👨‍💻 from 🇹🇷 Different skin tones. default: 👍 light: 👌🏻 dark: 🤙🏿 Emojis with multiple skin tones. both medium: 🧑🏽‍🤝‍🧑🏽 light and dark: 🧑🏻‍🤝‍🧑🏿 Emoji aliases are 😎 Use fmt wrappers 👍 with emoji support 🎉 */ ``` This package contains emojis constants based on [Full Emoji List v13.0](https://unicode.org/Public/emoji/13.0/emoji-test.txt). ```go emoji.CallMeHand // 🤙 emoji.CallMeHand.Tone(emoji.Dark) // 🤙🏿 ``` Also, it has additional emoji aliases from [github/gemoji](https://github.com/github/gemoji). ```go emoji.Parse(":+1:") // 👍 emoji.Parse(":100:") // 💯 ``` You can generate country flag emoji with [ISO 3166 Alpha2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) codes: ```go emoji.CountryFlag("tr") // 🇹🇷 emoji.CountryFlag("US") // 🇺🇸 emoji.Parse("country flag alias :flag-gb:") // country flag alias 🇬🇧 ``` All constants are generated by `internal/generator`. ## Testing :hammer: ``` bash go test ``` ## Todo :pushpin: * Add examples to `godoc` ## Contributing :man_technologist: I am accepting PRs that add aliases to the package. You have to add it to `customEmojis` list at `internal/generator/main`. If you think an emoji constant is not correct, open an issue. Please use [this list](http://unicode.org/emoji/charts/full-emoji-list.html) to look up the correct unicode value and the name of the character. ## Credits :star: - [Enes Çakır](https://github.com/enescakir) ## License :scroll: The MIT License (MIT). Please see [License File](LICENSE.md) for more information. emoji-1.0.0/constants.go000066400000000000000000004352001363214506500151670ustar00rootroot00000000000000package emoji // Code generated by github.com/enescakir/emoji/internal/generator DO NOT EDIT. // Source: https://unicode.org/Public/emoji/13.0/emoji-test.txt // Create at: 2020-03-08T15:58:37+03:00 var ( // GROUP: Smileys & Emotion // SUBGROUP: face-smiling GrinningFace Emoji = "\U0001f600" // grinning face GrinningFaceWithBigEyes Emoji = "\U0001f603" // grinning face with big eyes GrinningFaceWithSmilingEyes Emoji = "\U0001f604" // grinning face with smiling eyes BeamingFaceWithSmilingEyes Emoji = "\U0001f601" // beaming face with smiling eyes GrinningSquintingFace Emoji = "\U0001f606" // grinning squinting face GrinningFaceWithSweat Emoji = "\U0001f605" // grinning face with sweat RollingOnTheFloorLaughing Emoji = "\U0001f923" // rolling on the floor laughing FaceWithTearsOfJoy Emoji = "\U0001f602" // face with tears of joy SlightlySmilingFace Emoji = "\U0001f642" // slightly smiling face UpsideDownFace Emoji = "\U0001f643" // upside-down face WinkingFace Emoji = "\U0001f609" // winking face SmilingFaceWithSmilingEyes Emoji = "\U0001f60a" // smiling face with smiling eyes SmilingFaceWithHalo Emoji = "\U0001f607" // smiling face with halo // SUBGROUP: face-affection SmilingFaceWithHearts Emoji = "\U0001f970" // smiling face with hearts SmilingFaceWithHeartEyes Emoji = "\U0001f60d" // smiling face with heart-eyes StarStruck Emoji = "\U0001f929" // star-struck FaceBlowingAKiss Emoji = "\U0001f618" // face blowing a kiss KissingFace Emoji = "\U0001f617" // kissing face SmilingFace Emoji = "\u263a\ufe0f" // smiling face KissingFaceWithClosedEyes Emoji = "\U0001f61a" // kissing face with closed eyes KissingFaceWithSmilingEyes Emoji = "\U0001f619" // kissing face with smiling eyes SmilingFaceWithTear Emoji = "\U0001f972" // smiling face with tear // SUBGROUP: face-tongue FaceSavoringFood Emoji = "\U0001f60b" // face savoring food FaceWithTongue Emoji = "\U0001f61b" // face with tongue WinkingFaceWithTongue Emoji = "\U0001f61c" // winking face with tongue ZanyFace Emoji = "\U0001f92a" // zany face SquintingFaceWithTongue Emoji = "\U0001f61d" // squinting face with tongue MoneyMouthFace Emoji = "\U0001f911" // money-mouth face // SUBGROUP: face-hand HuggingFace Emoji = "\U0001f917" // hugging face FaceWithHandOverMouth Emoji = "\U0001f92d" // face with hand over mouth ShushingFace Emoji = "\U0001f92b" // shushing face ThinkingFace Emoji = "\U0001f914" // thinking face // SUBGROUP: face-neutral-skeptical ZipperMouthFace Emoji = "\U0001f910" // zipper-mouth face FaceWithRaisedEyebrow Emoji = "\U0001f928" // face with raised eyebrow NeutralFace Emoji = "\U0001f610" // neutral face ExpressionlessFace Emoji = "\U0001f611" // expressionless face FaceWithoutMouth Emoji = "\U0001f636" // face without mouth SmirkingFace Emoji = "\U0001f60f" // smirking face UnamusedFace Emoji = "\U0001f612" // unamused face FaceWithRollingEyes Emoji = "\U0001f644" // face with rolling eyes GrimacingFace Emoji = "\U0001f62c" // grimacing face LyingFace Emoji = "\U0001f925" // lying face // SUBGROUP: face-sleepy RelievedFace Emoji = "\U0001f60c" // relieved face PensiveFace Emoji = "\U0001f614" // pensive face SleepyFace Emoji = "\U0001f62a" // sleepy face DroolingFace Emoji = "\U0001f924" // drooling face SleepingFace Emoji = "\U0001f634" // sleeping face // SUBGROUP: face-unwell FaceWithMedicalMask Emoji = "\U0001f637" // face with medical mask FaceWithThermometer Emoji = "\U0001f912" // face with thermometer FaceWithHeadBandage Emoji = "\U0001f915" // face with head-bandage NauseatedFace Emoji = "\U0001f922" // nauseated face FaceVomiting Emoji = "\U0001f92e" // face vomiting SneezingFace Emoji = "\U0001f927" // sneezing face HotFace Emoji = "\U0001f975" // hot face ColdFace Emoji = "\U0001f976" // cold face WoozyFace Emoji = "\U0001f974" // woozy face DizzyFace Emoji = "\U0001f635" // dizzy face ExplodingHead Emoji = "\U0001f92f" // exploding head // SUBGROUP: face-hat CowboyHatFace Emoji = "\U0001f920" // cowboy hat face PartyingFace Emoji = "\U0001f973" // partying face DisguisedFace Emoji = "\U0001f978" // disguised face // SUBGROUP: face-glasses SmilingFaceWithSunglasses Emoji = "\U0001f60e" // smiling face with sunglasses NerdFace Emoji = "\U0001f913" // nerd face FaceWithMonocle Emoji = "\U0001f9d0" // face with monocle // SUBGROUP: face-concerned ConfusedFace Emoji = "\U0001f615" // confused face WorriedFace Emoji = "\U0001f61f" // worried face SlightlyFrowningFace Emoji = "\U0001f641" // slightly frowning face FrowningFace Emoji = "\u2639\ufe0f" // frowning face FaceWithOpenMouth Emoji = "\U0001f62e" // face with open mouth HushedFace Emoji = "\U0001f62f" // hushed face AstonishedFace Emoji = "\U0001f632" // astonished face FlushedFace Emoji = "\U0001f633" // flushed face PleadingFace Emoji = "\U0001f97a" // pleading face FrowningFaceWithOpenMouth Emoji = "\U0001f626" // frowning face with open mouth AnguishedFace Emoji = "\U0001f627" // anguished face FearfulFace Emoji = "\U0001f628" // fearful face AnxiousFaceWithSweat Emoji = "\U0001f630" // anxious face with sweat SadButRelievedFace Emoji = "\U0001f625" // sad but relieved face CryingFace Emoji = "\U0001f622" // crying face LoudlyCryingFace Emoji = "\U0001f62d" // loudly crying face FaceScreamingInFear Emoji = "\U0001f631" // face screaming in fear ConfoundedFace Emoji = "\U0001f616" // confounded face PerseveringFace Emoji = "\U0001f623" // persevering face DisappointedFace Emoji = "\U0001f61e" // disappointed face DowncastFaceWithSweat Emoji = "\U0001f613" // downcast face with sweat WearyFace Emoji = "\U0001f629" // weary face TiredFace Emoji = "\U0001f62b" // tired face YawningFace Emoji = "\U0001f971" // yawning face // SUBGROUP: face-negative FaceWithSteamFromNose Emoji = "\U0001f624" // face with steam from nose PoutingFace Emoji = "\U0001f621" // pouting face AngryFace Emoji = "\U0001f620" // angry face FaceWithSymbolsOnMouth Emoji = "\U0001f92c" // face with symbols on mouth SmilingFaceWithHorns Emoji = "\U0001f608" // smiling face with horns AngryFaceWithHorns Emoji = "\U0001f47f" // angry face with horns Skull Emoji = "\U0001f480" // skull SkullAndCrossbones Emoji = "\u2620\ufe0f" // skull and crossbones // SUBGROUP: face-costume PileOfPoo Emoji = "\U0001f4a9" // pile of poo ClownFace Emoji = "\U0001f921" // clown face Ogre Emoji = "\U0001f479" // ogre Goblin Emoji = "\U0001f47a" // goblin Ghost Emoji = "\U0001f47b" // ghost Alien Emoji = "\U0001f47d" // alien AlienMonster Emoji = "\U0001f47e" // alien monster Robot Emoji = "\U0001f916" // robot // SUBGROUP: cat-face GrinningCat Emoji = "\U0001f63a" // grinning cat GrinningCatWithSmilingEyes Emoji = "\U0001f638" // grinning cat with smiling eyes CatWithTearsOfJoy Emoji = "\U0001f639" // cat with tears of joy SmilingCatWithHeartEyes Emoji = "\U0001f63b" // smiling cat with heart-eyes CatWithWrySmile Emoji = "\U0001f63c" // cat with wry smile KissingCat Emoji = "\U0001f63d" // kissing cat WearyCat Emoji = "\U0001f640" // weary cat CryingCat Emoji = "\U0001f63f" // crying cat PoutingCat Emoji = "\U0001f63e" // pouting cat // SUBGROUP: monkey-face SeeNoEvilMonkey Emoji = "\U0001f648" // see-no-evil monkey HearNoEvilMonkey Emoji = "\U0001f649" // hear-no-evil monkey SpeakNoEvilMonkey Emoji = "\U0001f64a" // speak-no-evil monkey // SUBGROUP: emotion KissMark Emoji = "\U0001f48b" // kiss mark LoveLetter Emoji = "\U0001f48c" // love letter HeartWithArrow Emoji = "\U0001f498" // heart with arrow HeartWithRibbon Emoji = "\U0001f49d" // heart with ribbon SparklingHeart Emoji = "\U0001f496" // sparkling heart GrowingHeart Emoji = "\U0001f497" // growing heart BeatingHeart Emoji = "\U0001f493" // beating heart RevolvingHearts Emoji = "\U0001f49e" // revolving hearts TwoHearts Emoji = "\U0001f495" // two hearts HeartDecoration Emoji = "\U0001f49f" // heart decoration HeartExclamation Emoji = "\u2763\ufe0f" // heart exclamation BrokenHeart Emoji = "\U0001f494" // broken heart RedHeart Emoji = "\u2764\ufe0f" // red heart OrangeHeart Emoji = "\U0001f9e1" // orange heart YellowHeart Emoji = "\U0001f49b" // yellow heart GreenHeart Emoji = "\U0001f49a" // green heart BlueHeart Emoji = "\U0001f499" // blue heart PurpleHeart Emoji = "\U0001f49c" // purple heart BrownHeart Emoji = "\U0001f90e" // brown heart BlackHeart Emoji = "\U0001f5a4" // black heart WhiteHeart Emoji = "\U0001f90d" // white heart HundredPoints Emoji = "\U0001f4af" // hundred points AngerSymbol Emoji = "\U0001f4a2" // anger symbol Collision Emoji = "\U0001f4a5" // collision Dizzy Emoji = "\U0001f4ab" // dizzy SweatDroplets Emoji = "\U0001f4a6" // sweat droplets DashingAway Emoji = "\U0001f4a8" // dashing away Hole Emoji = "\U0001f573\ufe0f" // hole Bomb Emoji = "\U0001f4a3" // bomb SpeechBalloon Emoji = "\U0001f4ac" // speech balloon EyeInSpeechBubble Emoji = "\U0001f441\ufe0f\u200d\U0001f5e8\ufe0f" // eye in speech bubble LeftSpeechBubble Emoji = "\U0001f5e8\ufe0f" // left speech bubble RightAngerBubble Emoji = "\U0001f5ef\ufe0f" // right anger bubble ThoughtBalloon Emoji = "\U0001f4ad" // thought balloon Zzz Emoji = "\U0001f4a4" // zzz // GROUP: People & Body // SUBGROUP: hand-fingers-open WavingHand EmojiWithTone = newEmojiWithTone("\U0001f44b@") // waving hand RaisedBackOfHand EmojiWithTone = newEmojiWithTone("\U0001f91a@") // raised back of hand HandWithFingersSplayed EmojiWithTone = newEmojiWithTone("\U0001f590@").withDefaultTone("\ufe0f") // hand with fingers splayed RaisedHand EmojiWithTone = newEmojiWithTone("\u270b@") // raised hand VulcanSalute EmojiWithTone = newEmojiWithTone("\U0001f596@") // vulcan salute // SUBGROUP: hand-fingers-partial OkHand EmojiWithTone = newEmojiWithTone("\U0001f44c@") // OK hand PinchedFingers EmojiWithTone = newEmojiWithTone("\U0001f90c@") // pinched fingers PinchingHand EmojiWithTone = newEmojiWithTone("\U0001f90f@") // pinching hand VictoryHand EmojiWithTone = newEmojiWithTone("\u270c@").withDefaultTone("\ufe0f") // victory hand CrossedFingers EmojiWithTone = newEmojiWithTone("\U0001f91e@") // crossed fingers LoveYouGesture EmojiWithTone = newEmojiWithTone("\U0001f91f@") // love-you gesture SignOfTheHorns EmojiWithTone = newEmojiWithTone("\U0001f918@") // sign of the horns CallMeHand EmojiWithTone = newEmojiWithTone("\U0001f919@") // call me hand // SUBGROUP: hand-single-finger BackhandIndexPointingLeft EmojiWithTone = newEmojiWithTone("\U0001f448@") // backhand index pointing left BackhandIndexPointingRight EmojiWithTone = newEmojiWithTone("\U0001f449@") // backhand index pointing right BackhandIndexPointingUp EmojiWithTone = newEmojiWithTone("\U0001f446@") // backhand index pointing up MiddleFinger EmojiWithTone = newEmojiWithTone("\U0001f595@") // middle finger BackhandIndexPointingDown EmojiWithTone = newEmojiWithTone("\U0001f447@") // backhand index pointing down IndexPointingUp EmojiWithTone = newEmojiWithTone("\u261d@").withDefaultTone("\ufe0f") // index pointing up // SUBGROUP: hand-fingers-closed ThumbsUp EmojiWithTone = newEmojiWithTone("\U0001f44d@") // thumbs up ThumbsDown EmojiWithTone = newEmojiWithTone("\U0001f44e@") // thumbs down RaisedFist EmojiWithTone = newEmojiWithTone("\u270a@") // raised fist OncomingFist EmojiWithTone = newEmojiWithTone("\U0001f44a@") // oncoming fist LeftFacingFist EmojiWithTone = newEmojiWithTone("\U0001f91b@") // left-facing fist RightFacingFist EmojiWithTone = newEmojiWithTone("\U0001f91c@") // right-facing fist // SUBGROUP: hands ClappingHands EmojiWithTone = newEmojiWithTone("\U0001f44f@") // clapping hands RaisingHands EmojiWithTone = newEmojiWithTone("\U0001f64c@") // raising hands OpenHands EmojiWithTone = newEmojiWithTone("\U0001f450@") // open hands PalmsUpTogether EmojiWithTone = newEmojiWithTone("\U0001f932@") // palms up together Handshake Emoji = "\U0001f91d" // handshake FoldedHands EmojiWithTone = newEmojiWithTone("\U0001f64f@") // folded hands // SUBGROUP: hand-prop WritingHand EmojiWithTone = newEmojiWithTone("\u270d@").withDefaultTone("\ufe0f") // writing hand NailPolish EmojiWithTone = newEmojiWithTone("\U0001f485@") // nail polish Selfie EmojiWithTone = newEmojiWithTone("\U0001f933@") // selfie // SUBGROUP: body-parts FlexedBiceps EmojiWithTone = newEmojiWithTone("\U0001f4aa@") // flexed biceps MechanicalArm Emoji = "\U0001f9be" // mechanical arm MechanicalLeg Emoji = "\U0001f9bf" // mechanical leg Leg EmojiWithTone = newEmojiWithTone("\U0001f9b5@") // leg Foot EmojiWithTone = newEmojiWithTone("\U0001f9b6@") // foot Ear EmojiWithTone = newEmojiWithTone("\U0001f442@") // ear EarWithHearingAid EmojiWithTone = newEmojiWithTone("\U0001f9bb@") // ear with hearing aid Nose EmojiWithTone = newEmojiWithTone("\U0001f443@") // nose Brain Emoji = "\U0001f9e0" // brain AnatomicalHeart Emoji = "\U0001fac0" // anatomical heart Lungs Emoji = "\U0001fac1" // lungs Tooth Emoji = "\U0001f9b7" // tooth Bone Emoji = "\U0001f9b4" // bone Eyes Emoji = "\U0001f440" // eyes Eye Emoji = "\U0001f441\ufe0f" // eye Tongue Emoji = "\U0001f445" // tongue Mouth Emoji = "\U0001f444" // mouth // SUBGROUP: person Baby EmojiWithTone = newEmojiWithTone("\U0001f476@") // baby Child EmojiWithTone = newEmojiWithTone("\U0001f9d2@") // child Boy EmojiWithTone = newEmojiWithTone("\U0001f466@") // boy Girl EmojiWithTone = newEmojiWithTone("\U0001f467@") // girl Person EmojiWithTone = newEmojiWithTone("\U0001f9d1@") // person PersonWithBlondHair EmojiWithTone = newEmojiWithTone("\U0001f471@") // person: blond hair Man EmojiWithTone = newEmojiWithTone("\U0001f468@") // man ManWithBeard EmojiWithTone = newEmojiWithTone("\U0001f9d4@") // man: beard ManWithRedHair EmojiWithTone = newEmojiWithTone("\U0001f468@\u200d\U0001f9b0") // man: red hair ManWithCurlyHair EmojiWithTone = newEmojiWithTone("\U0001f468@\u200d\U0001f9b1") // man: curly hair ManWithWhiteHair EmojiWithTone = newEmojiWithTone("\U0001f468@\u200d\U0001f9b3") // man: white hair ManBald EmojiWithTone = newEmojiWithTone("\U0001f468@\u200d\U0001f9b2") // man: bald Woman EmojiWithTone = newEmojiWithTone("\U0001f469@") // woman WomanWithRedHair EmojiWithTone = newEmojiWithTone("\U0001f469@\u200d\U0001f9b0") // woman: red hair PersonWithRedHair EmojiWithTone = newEmojiWithTone("\U0001f9d1@\u200d\U0001f9b0") // person: red hair WomanWithCurlyHair EmojiWithTone = newEmojiWithTone("\U0001f469@\u200d\U0001f9b1") // woman: curly hair PersonWithCurlyHair EmojiWithTone = newEmojiWithTone("\U0001f9d1@\u200d\U0001f9b1") // person: curly hair WomanWithWhiteHair EmojiWithTone = newEmojiWithTone("\U0001f469@\u200d\U0001f9b3") // woman: white hair PersonWithWhiteHair EmojiWithTone = newEmojiWithTone("\U0001f9d1@\u200d\U0001f9b3") // person: white hair WomanBald EmojiWithTone = newEmojiWithTone("\U0001f469@\u200d\U0001f9b2") // woman: bald PersonBald EmojiWithTone = newEmojiWithTone("\U0001f9d1@\u200d\U0001f9b2") // person: bald WomanWithBlondHair EmojiWithTone = newEmojiWithTone("\U0001f471@\u200d\u2640\ufe0f") // woman: blond hair ManWithBlondHair EmojiWithTone = newEmojiWithTone("\U0001f471@\u200d\u2642\ufe0f") // man: blond hair OlderPerson EmojiWithTone = newEmojiWithTone("\U0001f9d3@") // older person OldMan EmojiWithTone = newEmojiWithTone("\U0001f474@") // old man OldWoman EmojiWithTone = newEmojiWithTone("\U0001f475@") // old woman // SUBGROUP: person-gesture PersonFrowning EmojiWithTone = newEmojiWithTone("\U0001f64d@") // person frowning ManFrowning EmojiWithTone = newEmojiWithTone("\U0001f64d@\u200d\u2642\ufe0f") // man frowning WomanFrowning EmojiWithTone = newEmojiWithTone("\U0001f64d@\u200d\u2640\ufe0f") // woman frowning PersonPouting EmojiWithTone = newEmojiWithTone("\U0001f64e@") // person pouting ManPouting EmojiWithTone = newEmojiWithTone("\U0001f64e@\u200d\u2642\ufe0f") // man pouting WomanPouting EmojiWithTone = newEmojiWithTone("\U0001f64e@\u200d\u2640\ufe0f") // woman pouting PersonGesturingNo EmojiWithTone = newEmojiWithTone("\U0001f645@") // person gesturing NO ManGesturingNo EmojiWithTone = newEmojiWithTone("\U0001f645@\u200d\u2642\ufe0f") // man gesturing NO WomanGesturingNo EmojiWithTone = newEmojiWithTone("\U0001f645@\u200d\u2640\ufe0f") // woman gesturing NO PersonGesturingOk EmojiWithTone = newEmojiWithTone("\U0001f646@") // person gesturing OK ManGesturingOk EmojiWithTone = newEmojiWithTone("\U0001f646@\u200d\u2642\ufe0f") // man gesturing OK WomanGesturingOk EmojiWithTone = newEmojiWithTone("\U0001f646@\u200d\u2640\ufe0f") // woman gesturing OK PersonTippingHand EmojiWithTone = newEmojiWithTone("\U0001f481@") // person tipping hand ManTippingHand EmojiWithTone = newEmojiWithTone("\U0001f481@\u200d\u2642\ufe0f") // man tipping hand WomanTippingHand EmojiWithTone = newEmojiWithTone("\U0001f481@\u200d\u2640\ufe0f") // woman tipping hand PersonRaisingHand EmojiWithTone = newEmojiWithTone("\U0001f64b@") // person raising hand ManRaisingHand EmojiWithTone = newEmojiWithTone("\U0001f64b@\u200d\u2642\ufe0f") // man raising hand WomanRaisingHand EmojiWithTone = newEmojiWithTone("\U0001f64b@\u200d\u2640\ufe0f") // woman raising hand DeafPerson EmojiWithTone = newEmojiWithTone("\U0001f9cf@") // deaf person DeafMan EmojiWithTone = newEmojiWithTone("\U0001f9cf@\u200d\u2642\ufe0f") // deaf man DeafWoman EmojiWithTone = newEmojiWithTone("\U0001f9cf@\u200d\u2640\ufe0f") // deaf woman PersonBowing EmojiWithTone = newEmojiWithTone("\U0001f647@") // person bowing ManBowing EmojiWithTone = newEmojiWithTone("\U0001f647@\u200d\u2642\ufe0f") // man bowing WomanBowing EmojiWithTone = newEmojiWithTone("\U0001f647@\u200d\u2640\ufe0f") // woman bowing PersonFacepalming EmojiWithTone = newEmojiWithTone("\U0001f926@") // person facepalming ManFacepalming EmojiWithTone = newEmojiWithTone("\U0001f926@\u200d\u2642\ufe0f") // man facepalming WomanFacepalming EmojiWithTone = newEmojiWithTone("\U0001f926@\u200d\u2640\ufe0f") // woman facepalming PersonShrugging EmojiWithTone = newEmojiWithTone("\U0001f937@") // person shrugging ManShrugging EmojiWithTone = newEmojiWithTone("\U0001f937@\u200d\u2642\ufe0f") // man shrugging WomanShrugging EmojiWithTone = newEmojiWithTone("\U0001f937@\u200d\u2640\ufe0f") // woman shrugging // SUBGROUP: person-role HealthWorker EmojiWithTone = newEmojiWithTone("\U0001f9d1@\u200d\u2695\ufe0f") // health worker ManHealthWorker EmojiWithTone = newEmojiWithTone("\U0001f468@\u200d\u2695\ufe0f") // man health worker WomanHealthWorker EmojiWithTone = newEmojiWithTone("\U0001f469@\u200d\u2695\ufe0f") // woman health worker Student EmojiWithTone = newEmojiWithTone("\U0001f9d1@\u200d\U0001f393") // student ManStudent EmojiWithTone = newEmojiWithTone("\U0001f468@\u200d\U0001f393") // man student WomanStudent EmojiWithTone = newEmojiWithTone("\U0001f469@\u200d\U0001f393") // woman student Teacher EmojiWithTone = newEmojiWithTone("\U0001f9d1@\u200d\U0001f3eb") // teacher ManTeacher EmojiWithTone = newEmojiWithTone("\U0001f468@\u200d\U0001f3eb") // man teacher WomanTeacher EmojiWithTone = newEmojiWithTone("\U0001f469@\u200d\U0001f3eb") // woman teacher Judge EmojiWithTone = newEmojiWithTone("\U0001f9d1@\u200d\u2696\ufe0f") // judge ManJudge EmojiWithTone = newEmojiWithTone("\U0001f468@\u200d\u2696\ufe0f") // man judge WomanJudge EmojiWithTone = newEmojiWithTone("\U0001f469@\u200d\u2696\ufe0f") // woman judge Farmer EmojiWithTone = newEmojiWithTone("\U0001f9d1@\u200d\U0001f33e") // farmer ManFarmer EmojiWithTone = newEmojiWithTone("\U0001f468@\u200d\U0001f33e") // man farmer WomanFarmer EmojiWithTone = newEmojiWithTone("\U0001f469@\u200d\U0001f33e") // woman farmer Cook EmojiWithTone = newEmojiWithTone("\U0001f9d1@\u200d\U0001f373") // cook ManCook EmojiWithTone = newEmojiWithTone("\U0001f468@\u200d\U0001f373") // man cook WomanCook EmojiWithTone = newEmojiWithTone("\U0001f469@\u200d\U0001f373") // woman cook Mechanic EmojiWithTone = newEmojiWithTone("\U0001f9d1@\u200d\U0001f527") // mechanic ManMechanic EmojiWithTone = newEmojiWithTone("\U0001f468@\u200d\U0001f527") // man mechanic WomanMechanic EmojiWithTone = newEmojiWithTone("\U0001f469@\u200d\U0001f527") // woman mechanic FactoryWorker EmojiWithTone = newEmojiWithTone("\U0001f9d1@\u200d\U0001f3ed") // factory worker ManFactoryWorker EmojiWithTone = newEmojiWithTone("\U0001f468@\u200d\U0001f3ed") // man factory worker WomanFactoryWorker EmojiWithTone = newEmojiWithTone("\U0001f469@\u200d\U0001f3ed") // woman factory worker OfficeWorker EmojiWithTone = newEmojiWithTone("\U0001f9d1@\u200d\U0001f4bc") // office worker ManOfficeWorker EmojiWithTone = newEmojiWithTone("\U0001f468@\u200d\U0001f4bc") // man office worker WomanOfficeWorker EmojiWithTone = newEmojiWithTone("\U0001f469@\u200d\U0001f4bc") // woman office worker Scientist EmojiWithTone = newEmojiWithTone("\U0001f9d1@\u200d\U0001f52c") // scientist ManScientist EmojiWithTone = newEmojiWithTone("\U0001f468@\u200d\U0001f52c") // man scientist WomanScientist EmojiWithTone = newEmojiWithTone("\U0001f469@\u200d\U0001f52c") // woman scientist Technologist EmojiWithTone = newEmojiWithTone("\U0001f9d1@\u200d\U0001f4bb") // technologist ManTechnologist EmojiWithTone = newEmojiWithTone("\U0001f468@\u200d\U0001f4bb") // man technologist WomanTechnologist EmojiWithTone = newEmojiWithTone("\U0001f469@\u200d\U0001f4bb") // woman technologist Singer EmojiWithTone = newEmojiWithTone("\U0001f9d1@\u200d\U0001f3a4") // singer ManSinger EmojiWithTone = newEmojiWithTone("\U0001f468@\u200d\U0001f3a4") // man singer WomanSinger EmojiWithTone = newEmojiWithTone("\U0001f469@\u200d\U0001f3a4") // woman singer Artist EmojiWithTone = newEmojiWithTone("\U0001f9d1@\u200d\U0001f3a8") // artist ManArtist EmojiWithTone = newEmojiWithTone("\U0001f468@\u200d\U0001f3a8") // man artist WomanArtist EmojiWithTone = newEmojiWithTone("\U0001f469@\u200d\U0001f3a8") // woman artist Pilot EmojiWithTone = newEmojiWithTone("\U0001f9d1@\u200d\u2708\ufe0f") // pilot ManPilot EmojiWithTone = newEmojiWithTone("\U0001f468@\u200d\u2708\ufe0f") // man pilot WomanPilot EmojiWithTone = newEmojiWithTone("\U0001f469@\u200d\u2708\ufe0f") // woman pilot Astronaut EmojiWithTone = newEmojiWithTone("\U0001f9d1@\u200d\U0001f680") // astronaut ManAstronaut EmojiWithTone = newEmojiWithTone("\U0001f468@\u200d\U0001f680") // man astronaut WomanAstronaut EmojiWithTone = newEmojiWithTone("\U0001f469@\u200d\U0001f680") // woman astronaut Firefighter EmojiWithTone = newEmojiWithTone("\U0001f9d1@\u200d\U0001f692") // firefighter ManFirefighter EmojiWithTone = newEmojiWithTone("\U0001f468@\u200d\U0001f692") // man firefighter WomanFirefighter EmojiWithTone = newEmojiWithTone("\U0001f469@\u200d\U0001f692") // woman firefighter PoliceOfficer EmojiWithTone = newEmojiWithTone("\U0001f46e@") // police officer ManPoliceOfficer EmojiWithTone = newEmojiWithTone("\U0001f46e@\u200d\u2642\ufe0f") // man police officer WomanPoliceOfficer EmojiWithTone = newEmojiWithTone("\U0001f46e@\u200d\u2640\ufe0f") // woman police officer Detective EmojiWithTone = newEmojiWithTone("\U0001f575@").withDefaultTone("\ufe0f") // detective ManDetective EmojiWithTone = newEmojiWithTone("\U0001f575@\u200d\u2642\ufe0f").withDefaultTone("\ufe0f") // man detective WomanDetective EmojiWithTone = newEmojiWithTone("\U0001f575@\u200d\u2640\ufe0f").withDefaultTone("\ufe0f") // woman detective Guard EmojiWithTone = newEmojiWithTone("\U0001f482@") // guard ManGuard EmojiWithTone = newEmojiWithTone("\U0001f482@\u200d\u2642\ufe0f") // man guard WomanGuard EmojiWithTone = newEmojiWithTone("\U0001f482@\u200d\u2640\ufe0f") // woman guard Ninja EmojiWithTone = newEmojiWithTone("\U0001f977@") // ninja ConstructionWorker EmojiWithTone = newEmojiWithTone("\U0001f477@") // construction worker ManConstructionWorker EmojiWithTone = newEmojiWithTone("\U0001f477@\u200d\u2642\ufe0f") // man construction worker WomanConstructionWorker EmojiWithTone = newEmojiWithTone("\U0001f477@\u200d\u2640\ufe0f") // woman construction worker Prince EmojiWithTone = newEmojiWithTone("\U0001f934@") // prince Princess EmojiWithTone = newEmojiWithTone("\U0001f478@") // princess PersonWearingTurban EmojiWithTone = newEmojiWithTone("\U0001f473@") // person wearing turban ManWearingTurban EmojiWithTone = newEmojiWithTone("\U0001f473@\u200d\u2642\ufe0f") // man wearing turban WomanWearingTurban EmojiWithTone = newEmojiWithTone("\U0001f473@\u200d\u2640\ufe0f") // woman wearing turban PersonWithSkullcap EmojiWithTone = newEmojiWithTone("\U0001f472@") // person with skullcap WomanWithHeadscarf EmojiWithTone = newEmojiWithTone("\U0001f9d5@") // woman with headscarf PersonInTuxedo EmojiWithTone = newEmojiWithTone("\U0001f935@") // person in tuxedo ManInTuxedo EmojiWithTone = newEmojiWithTone("\U0001f935@\u200d\u2642\ufe0f") // man in tuxedo WomanInTuxedo EmojiWithTone = newEmojiWithTone("\U0001f935@\u200d\u2640\ufe0f") // woman in tuxedo PersonWithVeil EmojiWithTone = newEmojiWithTone("\U0001f470@") // person with veil ManWithVeil EmojiWithTone = newEmojiWithTone("\U0001f470@\u200d\u2642\ufe0f") // man with veil WomanWithVeil EmojiWithTone = newEmojiWithTone("\U0001f470@\u200d\u2640\ufe0f") // woman with veil PregnantWoman EmojiWithTone = newEmojiWithTone("\U0001f930@") // pregnant woman BreastFeeding EmojiWithTone = newEmojiWithTone("\U0001f931@") // breast-feeding WomanFeedingBaby EmojiWithTone = newEmojiWithTone("\U0001f469@\u200d\U0001f37c") // woman feeding baby ManFeedingBaby EmojiWithTone = newEmojiWithTone("\U0001f468@\u200d\U0001f37c") // man feeding baby PersonFeedingBaby EmojiWithTone = newEmojiWithTone("\U0001f9d1@\u200d\U0001f37c") // person feeding baby // SUBGROUP: person-fantasy BabyAngel EmojiWithTone = newEmojiWithTone("\U0001f47c@") // baby angel SantaClaus EmojiWithTone = newEmojiWithTone("\U0001f385@") // Santa Claus MrsClaus EmojiWithTone = newEmojiWithTone("\U0001f936@") // Mrs. Claus MxClaus EmojiWithTone = newEmojiWithTone("\U0001f9d1@\u200d\U0001f384") // mx claus Superhero EmojiWithTone = newEmojiWithTone("\U0001f9b8@") // superhero ManSuperhero EmojiWithTone = newEmojiWithTone("\U0001f9b8@\u200d\u2642\ufe0f") // man superhero WomanSuperhero EmojiWithTone = newEmojiWithTone("\U0001f9b8@\u200d\u2640\ufe0f") // woman superhero Supervillain EmojiWithTone = newEmojiWithTone("\U0001f9b9@") // supervillain ManSupervillain EmojiWithTone = newEmojiWithTone("\U0001f9b9@\u200d\u2642\ufe0f") // man supervillain WomanSupervillain EmojiWithTone = newEmojiWithTone("\U0001f9b9@\u200d\u2640\ufe0f") // woman supervillain Mage EmojiWithTone = newEmojiWithTone("\U0001f9d9@") // mage ManMage EmojiWithTone = newEmojiWithTone("\U0001f9d9@\u200d\u2642\ufe0f") // man mage WomanMage EmojiWithTone = newEmojiWithTone("\U0001f9d9@\u200d\u2640\ufe0f") // woman mage Fairy EmojiWithTone = newEmojiWithTone("\U0001f9da@") // fairy ManFairy EmojiWithTone = newEmojiWithTone("\U0001f9da@\u200d\u2642\ufe0f") // man fairy WomanFairy EmojiWithTone = newEmojiWithTone("\U0001f9da@\u200d\u2640\ufe0f") // woman fairy Vampire EmojiWithTone = newEmojiWithTone("\U0001f9db@") // vampire ManVampire EmojiWithTone = newEmojiWithTone("\U0001f9db@\u200d\u2642\ufe0f") // man vampire WomanVampire EmojiWithTone = newEmojiWithTone("\U0001f9db@\u200d\u2640\ufe0f") // woman vampire Merperson EmojiWithTone = newEmojiWithTone("\U0001f9dc@") // merperson Merman EmojiWithTone = newEmojiWithTone("\U0001f9dc@\u200d\u2642\ufe0f") // merman Mermaid EmojiWithTone = newEmojiWithTone("\U0001f9dc@\u200d\u2640\ufe0f") // mermaid Elf EmojiWithTone = newEmojiWithTone("\U0001f9dd@") // elf ManElf EmojiWithTone = newEmojiWithTone("\U0001f9dd@\u200d\u2642\ufe0f") // man elf WomanElf EmojiWithTone = newEmojiWithTone("\U0001f9dd@\u200d\u2640\ufe0f") // woman elf Genie Emoji = "\U0001f9de" // genie ManGenie Emoji = "\U0001f9de\u200d\u2642\ufe0f" // man genie WomanGenie Emoji = "\U0001f9de\u200d\u2640\ufe0f" // woman genie Zombie Emoji = "\U0001f9df" // zombie ManZombie Emoji = "\U0001f9df\u200d\u2642\ufe0f" // man zombie WomanZombie Emoji = "\U0001f9df\u200d\u2640\ufe0f" // woman zombie // SUBGROUP: person-activity PersonGettingMassage EmojiWithTone = newEmojiWithTone("\U0001f486@") // person getting massage ManGettingMassage EmojiWithTone = newEmojiWithTone("\U0001f486@\u200d\u2642\ufe0f") // man getting massage WomanGettingMassage EmojiWithTone = newEmojiWithTone("\U0001f486@\u200d\u2640\ufe0f") // woman getting massage PersonGettingHaircut EmojiWithTone = newEmojiWithTone("\U0001f487@") // person getting haircut ManGettingHaircut EmojiWithTone = newEmojiWithTone("\U0001f487@\u200d\u2642\ufe0f") // man getting haircut WomanGettingHaircut EmojiWithTone = newEmojiWithTone("\U0001f487@\u200d\u2640\ufe0f") // woman getting haircut PersonWalking EmojiWithTone = newEmojiWithTone("\U0001f6b6@") // person walking ManWalking EmojiWithTone = newEmojiWithTone("\U0001f6b6@\u200d\u2642\ufe0f") // man walking WomanWalking EmojiWithTone = newEmojiWithTone("\U0001f6b6@\u200d\u2640\ufe0f") // woman walking PersonStanding EmojiWithTone = newEmojiWithTone("\U0001f9cd@") // person standing ManStanding EmojiWithTone = newEmojiWithTone("\U0001f9cd@\u200d\u2642\ufe0f") // man standing WomanStanding EmojiWithTone = newEmojiWithTone("\U0001f9cd@\u200d\u2640\ufe0f") // woman standing PersonKneeling EmojiWithTone = newEmojiWithTone("\U0001f9ce@") // person kneeling ManKneeling EmojiWithTone = newEmojiWithTone("\U0001f9ce@\u200d\u2642\ufe0f") // man kneeling WomanKneeling EmojiWithTone = newEmojiWithTone("\U0001f9ce@\u200d\u2640\ufe0f") // woman kneeling PersonWithWhiteCane EmojiWithTone = newEmojiWithTone("\U0001f9d1@\u200d\U0001f9af") // person with white cane ManWithWhiteCane EmojiWithTone = newEmojiWithTone("\U0001f468@\u200d\U0001f9af") // man with white cane WomanWithWhiteCane EmojiWithTone = newEmojiWithTone("\U0001f469@\u200d\U0001f9af") // woman with white cane PersonInMotorizedWheelchair EmojiWithTone = newEmojiWithTone("\U0001f9d1@\u200d\U0001f9bc") // person in motorized wheelchair ManInMotorizedWheelchair EmojiWithTone = newEmojiWithTone("\U0001f468@\u200d\U0001f9bc") // man in motorized wheelchair WomanInMotorizedWheelchair EmojiWithTone = newEmojiWithTone("\U0001f469@\u200d\U0001f9bc") // woman in motorized wheelchair PersonInManualWheelchair EmojiWithTone = newEmojiWithTone("\U0001f9d1@\u200d\U0001f9bd") // person in manual wheelchair ManInManualWheelchair EmojiWithTone = newEmojiWithTone("\U0001f468@\u200d\U0001f9bd") // man in manual wheelchair WomanInManualWheelchair EmojiWithTone = newEmojiWithTone("\U0001f469@\u200d\U0001f9bd") // woman in manual wheelchair PersonRunning EmojiWithTone = newEmojiWithTone("\U0001f3c3@") // person running ManRunning EmojiWithTone = newEmojiWithTone("\U0001f3c3@\u200d\u2642\ufe0f") // man running WomanRunning EmojiWithTone = newEmojiWithTone("\U0001f3c3@\u200d\u2640\ufe0f") // woman running WomanDancing EmojiWithTone = newEmojiWithTone("\U0001f483@") // woman dancing ManDancing EmojiWithTone = newEmojiWithTone("\U0001f57a@") // man dancing PersonInSuitLevitating EmojiWithTone = newEmojiWithTone("\U0001f574@").withDefaultTone("\ufe0f") // person in suit levitating PeopleWithBunnyEars Emoji = "\U0001f46f" // people with bunny ears MenWithBunnyEars Emoji = "\U0001f46f\u200d\u2642\ufe0f" // men with bunny ears WomenWithBunnyEars Emoji = "\U0001f46f\u200d\u2640\ufe0f" // women with bunny ears PersonInSteamyRoom EmojiWithTone = newEmojiWithTone("\U0001f9d6@") // person in steamy room ManInSteamyRoom EmojiWithTone = newEmojiWithTone("\U0001f9d6@\u200d\u2642\ufe0f") // man in steamy room WomanInSteamyRoom EmojiWithTone = newEmojiWithTone("\U0001f9d6@\u200d\u2640\ufe0f") // woman in steamy room PersonClimbing EmojiWithTone = newEmojiWithTone("\U0001f9d7@") // person climbing ManClimbing EmojiWithTone = newEmojiWithTone("\U0001f9d7@\u200d\u2642\ufe0f") // man climbing WomanClimbing EmojiWithTone = newEmojiWithTone("\U0001f9d7@\u200d\u2640\ufe0f") // woman climbing // SUBGROUP: person-sport PersonFencing Emoji = "\U0001f93a" // person fencing HorseRacing EmojiWithTone = newEmojiWithTone("\U0001f3c7@") // horse racing Skier Emoji = "\u26f7\ufe0f" // skier Snowboarder EmojiWithTone = newEmojiWithTone("\U0001f3c2@") // snowboarder PersonGolfing EmojiWithTone = newEmojiWithTone("\U0001f3cc@").withDefaultTone("\ufe0f") // person golfing ManGolfing EmojiWithTone = newEmojiWithTone("\U0001f3cc@\u200d\u2642\ufe0f").withDefaultTone("\ufe0f") // man golfing WomanGolfing EmojiWithTone = newEmojiWithTone("\U0001f3cc@\u200d\u2640\ufe0f").withDefaultTone("\ufe0f") // woman golfing PersonSurfing EmojiWithTone = newEmojiWithTone("\U0001f3c4@") // person surfing ManSurfing EmojiWithTone = newEmojiWithTone("\U0001f3c4@\u200d\u2642\ufe0f") // man surfing WomanSurfing EmojiWithTone = newEmojiWithTone("\U0001f3c4@\u200d\u2640\ufe0f") // woman surfing PersonRowingBoat EmojiWithTone = newEmojiWithTone("\U0001f6a3@") // person rowing boat ManRowingBoat EmojiWithTone = newEmojiWithTone("\U0001f6a3@\u200d\u2642\ufe0f") // man rowing boat WomanRowingBoat EmojiWithTone = newEmojiWithTone("\U0001f6a3@\u200d\u2640\ufe0f") // woman rowing boat PersonSwimming EmojiWithTone = newEmojiWithTone("\U0001f3ca@") // person swimming ManSwimming EmojiWithTone = newEmojiWithTone("\U0001f3ca@\u200d\u2642\ufe0f") // man swimming WomanSwimming EmojiWithTone = newEmojiWithTone("\U0001f3ca@\u200d\u2640\ufe0f") // woman swimming PersonBouncingBall EmojiWithTone = newEmojiWithTone("\u26f9@").withDefaultTone("\ufe0f") // person bouncing ball ManBouncingBall EmojiWithTone = newEmojiWithTone("\u26f9@\u200d\u2642\ufe0f").withDefaultTone("\ufe0f") // man bouncing ball WomanBouncingBall EmojiWithTone = newEmojiWithTone("\u26f9@\u200d\u2640\ufe0f").withDefaultTone("\ufe0f") // woman bouncing ball PersonLiftingWeights EmojiWithTone = newEmojiWithTone("\U0001f3cb@").withDefaultTone("\ufe0f") // person lifting weights ManLiftingWeights EmojiWithTone = newEmojiWithTone("\U0001f3cb@\u200d\u2642\ufe0f").withDefaultTone("\ufe0f") // man lifting weights WomanLiftingWeights EmojiWithTone = newEmojiWithTone("\U0001f3cb@\u200d\u2640\ufe0f").withDefaultTone("\ufe0f") // woman lifting weights PersonBiking EmojiWithTone = newEmojiWithTone("\U0001f6b4@") // person biking ManBiking EmojiWithTone = newEmojiWithTone("\U0001f6b4@\u200d\u2642\ufe0f") // man biking WomanBiking EmojiWithTone = newEmojiWithTone("\U0001f6b4@\u200d\u2640\ufe0f") // woman biking PersonMountainBiking EmojiWithTone = newEmojiWithTone("\U0001f6b5@") // person mountain biking ManMountainBiking EmojiWithTone = newEmojiWithTone("\U0001f6b5@\u200d\u2642\ufe0f") // man mountain biking WomanMountainBiking EmojiWithTone = newEmojiWithTone("\U0001f6b5@\u200d\u2640\ufe0f") // woman mountain biking PersonCartwheeling EmojiWithTone = newEmojiWithTone("\U0001f938@") // person cartwheeling ManCartwheeling EmojiWithTone = newEmojiWithTone("\U0001f938@\u200d\u2642\ufe0f") // man cartwheeling WomanCartwheeling EmojiWithTone = newEmojiWithTone("\U0001f938@\u200d\u2640\ufe0f") // woman cartwheeling PeopleWrestling Emoji = "\U0001f93c" // people wrestling MenWrestling Emoji = "\U0001f93c\u200d\u2642\ufe0f" // men wrestling WomenWrestling Emoji = "\U0001f93c\u200d\u2640\ufe0f" // women wrestling PersonPlayingWaterPolo EmojiWithTone = newEmojiWithTone("\U0001f93d@") // person playing water polo ManPlayingWaterPolo EmojiWithTone = newEmojiWithTone("\U0001f93d@\u200d\u2642\ufe0f") // man playing water polo WomanPlayingWaterPolo EmojiWithTone = newEmojiWithTone("\U0001f93d@\u200d\u2640\ufe0f") // woman playing water polo PersonPlayingHandball EmojiWithTone = newEmojiWithTone("\U0001f93e@") // person playing handball ManPlayingHandball EmojiWithTone = newEmojiWithTone("\U0001f93e@\u200d\u2642\ufe0f") // man playing handball WomanPlayingHandball EmojiWithTone = newEmojiWithTone("\U0001f93e@\u200d\u2640\ufe0f") // woman playing handball PersonJuggling EmojiWithTone = newEmojiWithTone("\U0001f939@") // person juggling ManJuggling EmojiWithTone = newEmojiWithTone("\U0001f939@\u200d\u2642\ufe0f") // man juggling WomanJuggling EmojiWithTone = newEmojiWithTone("\U0001f939@\u200d\u2640\ufe0f") // woman juggling // SUBGROUP: person-resting PersonInLotusPosition EmojiWithTone = newEmojiWithTone("\U0001f9d8@") // person in lotus position ManInLotusPosition EmojiWithTone = newEmojiWithTone("\U0001f9d8@\u200d\u2642\ufe0f") // man in lotus position WomanInLotusPosition EmojiWithTone = newEmojiWithTone("\U0001f9d8@\u200d\u2640\ufe0f") // woman in lotus position PersonTakingBath EmojiWithTone = newEmojiWithTone("\U0001f6c0@") // person taking bath PersonInBed EmojiWithTone = newEmojiWithTone("\U0001f6cc@") // person in bed // SUBGROUP: family PeopleHoldingHands EmojiWithTone = newEmojiWithTone("\U0001f9d1@\u200d\U0001f91d\u200d\U0001f9d1@", "\U0001f9d1@\u200d\U0001f91d\u200d\U0001f9d1@") // people holding hands WomenHoldingHands EmojiWithTone = newEmojiWithTone("\U0001f46d@", "\U0001f469@\u200d\U0001f91d\u200d\U0001f469@") // women holding hands WomanAndManHoldingHands EmojiWithTone = newEmojiWithTone("\U0001f46b@", "\U0001f469@\u200d\U0001f91d\u200d\U0001f468@") // woman and man holding hands MenHoldingHands EmojiWithTone = newEmojiWithTone("\U0001f46c@", "\U0001f468@\u200d\U0001f91d\u200d\U0001f468@") // men holding hands Kiss Emoji = "\U0001f48f" // kiss KissWomanMan Emoji = "\U0001f469\u200d\u2764\ufe0f\u200d\U0001f48b\u200d\U0001f468" // kiss: woman, man KissManMan Emoji = "\U0001f468\u200d\u2764\ufe0f\u200d\U0001f48b\u200d\U0001f468" // kiss: man, man KissWomanWoman Emoji = "\U0001f469\u200d\u2764\ufe0f\u200d\U0001f48b\u200d\U0001f469" // kiss: woman, woman CoupleWithHeart Emoji = "\U0001f491" // couple with heart CoupleWithHeartWomanMan Emoji = "\U0001f469\u200d\u2764\ufe0f\u200d\U0001f468" // couple with heart: woman, man CoupleWithHeartManMan Emoji = "\U0001f468\u200d\u2764\ufe0f\u200d\U0001f468" // couple with heart: man, man CoupleWithHeartWomanWoman Emoji = "\U0001f469\u200d\u2764\ufe0f\u200d\U0001f469" // couple with heart: woman, woman Family Emoji = "\U0001f46a" // family FamilyManWomanBoy Emoji = "\U0001f468\u200d\U0001f469\u200d\U0001f466" // family: man, woman, boy FamilyManWomanGirl Emoji = "\U0001f468\u200d\U0001f469\u200d\U0001f467" // family: man, woman, girl FamilyManWomanGirlBoy Emoji = "\U0001f468\u200d\U0001f469\u200d\U0001f467\u200d\U0001f466" // family: man, woman, girl, boy FamilyManWomanBoyBoy Emoji = "\U0001f468\u200d\U0001f469\u200d\U0001f466\u200d\U0001f466" // family: man, woman, boy, boy FamilyManWomanGirlGirl Emoji = "\U0001f468\u200d\U0001f469\u200d\U0001f467\u200d\U0001f467" // family: man, woman, girl, girl FamilyManManBoy Emoji = "\U0001f468\u200d\U0001f468\u200d\U0001f466" // family: man, man, boy FamilyManManGirl Emoji = "\U0001f468\u200d\U0001f468\u200d\U0001f467" // family: man, man, girl FamilyManManGirlBoy Emoji = "\U0001f468\u200d\U0001f468\u200d\U0001f467\u200d\U0001f466" // family: man, man, girl, boy FamilyManManBoyBoy Emoji = "\U0001f468\u200d\U0001f468\u200d\U0001f466\u200d\U0001f466" // family: man, man, boy, boy FamilyManManGirlGirl Emoji = "\U0001f468\u200d\U0001f468\u200d\U0001f467\u200d\U0001f467" // family: man, man, girl, girl FamilyWomanWomanBoy Emoji = "\U0001f469\u200d\U0001f469\u200d\U0001f466" // family: woman, woman, boy FamilyWomanWomanGirl Emoji = "\U0001f469\u200d\U0001f469\u200d\U0001f467" // family: woman, woman, girl FamilyWomanWomanGirlBoy Emoji = "\U0001f469\u200d\U0001f469\u200d\U0001f467\u200d\U0001f466" // family: woman, woman, girl, boy FamilyWomanWomanBoyBoy Emoji = "\U0001f469\u200d\U0001f469\u200d\U0001f466\u200d\U0001f466" // family: woman, woman, boy, boy FamilyWomanWomanGirlGirl Emoji = "\U0001f469\u200d\U0001f469\u200d\U0001f467\u200d\U0001f467" // family: woman, woman, girl, girl FamilyManBoy Emoji = "\U0001f468\u200d\U0001f466" // family: man, boy FamilyManBoyBoy Emoji = "\U0001f468\u200d\U0001f466\u200d\U0001f466" // family: man, boy, boy FamilyManGirl Emoji = "\U0001f468\u200d\U0001f467" // family: man, girl FamilyManGirlBoy Emoji = "\U0001f468\u200d\U0001f467\u200d\U0001f466" // family: man, girl, boy FamilyManGirlGirl Emoji = "\U0001f468\u200d\U0001f467\u200d\U0001f467" // family: man, girl, girl FamilyWomanBoy Emoji = "\U0001f469\u200d\U0001f466" // family: woman, boy FamilyWomanBoyBoy Emoji = "\U0001f469\u200d\U0001f466\u200d\U0001f466" // family: woman, boy, boy FamilyWomanGirl Emoji = "\U0001f469\u200d\U0001f467" // family: woman, girl FamilyWomanGirlBoy Emoji = "\U0001f469\u200d\U0001f467\u200d\U0001f466" // family: woman, girl, boy FamilyWomanGirlGirl Emoji = "\U0001f469\u200d\U0001f467\u200d\U0001f467" // family: woman, girl, girl // SUBGROUP: person-symbol SpeakingHead Emoji = "\U0001f5e3\ufe0f" // speaking head BustInSilhouette Emoji = "\U0001f464" // bust in silhouette BustsInSilhouette Emoji = "\U0001f465" // busts in silhouette PeopleHugging Emoji = "\U0001fac2" // people hugging Footprints Emoji = "\U0001f463" // footprints // GROUP: Component // SUBGROUP: skin-tone LightSkinTone Emoji = "\U0001f3fb" // light skin tone MediumLightSkinTone Emoji = "\U0001f3fc" // medium-light skin tone MediumSkinTone Emoji = "\U0001f3fd" // medium skin tone MediumDarkSkinTone Emoji = "\U0001f3fe" // medium-dark skin tone DarkSkinTone Emoji = "\U0001f3ff" // dark skin tone // SUBGROUP: hair-style RedHair Emoji = "\U0001f9b0" // red hair CurlyHair Emoji = "\U0001f9b1" // curly hair WhiteHair Emoji = "\U0001f9b3" // white hair Bald Emoji = "\U0001f9b2" // bald // GROUP: Animals & Nature // SUBGROUP: animal-mammal MonkeyFace Emoji = "\U0001f435" // monkey face Monkey Emoji = "\U0001f412" // monkey Gorilla Emoji = "\U0001f98d" // gorilla Orangutan Emoji = "\U0001f9a7" // orangutan DogFace Emoji = "\U0001f436" // dog face Dog Emoji = "\U0001f415" // dog GuideDog Emoji = "\U0001f9ae" // guide dog ServiceDog Emoji = "\U0001f415\u200d\U0001f9ba" // service dog Poodle Emoji = "\U0001f429" // poodle Wolf Emoji = "\U0001f43a" // wolf Fox Emoji = "\U0001f98a" // fox Raccoon Emoji = "\U0001f99d" // raccoon CatFace Emoji = "\U0001f431" // cat face Cat Emoji = "\U0001f408" // cat BlackCat Emoji = "\U0001f408\u200d\u2b1b" // black cat Lion Emoji = "\U0001f981" // lion TigerFace Emoji = "\U0001f42f" // tiger face Tiger Emoji = "\U0001f405" // tiger Leopard Emoji = "\U0001f406" // leopard HorseFace Emoji = "\U0001f434" // horse face Horse Emoji = "\U0001f40e" // horse Unicorn Emoji = "\U0001f984" // unicorn Zebra Emoji = "\U0001f993" // zebra Deer Emoji = "\U0001f98c" // deer Bison Emoji = "\U0001f9ac" // bison CowFace Emoji = "\U0001f42e" // cow face Ox Emoji = "\U0001f402" // ox WaterBuffalo Emoji = "\U0001f403" // water buffalo Cow Emoji = "\U0001f404" // cow PigFace Emoji = "\U0001f437" // pig face Pig Emoji = "\U0001f416" // pig Boar Emoji = "\U0001f417" // boar PigNose Emoji = "\U0001f43d" // pig nose Ram Emoji = "\U0001f40f" // ram Ewe Emoji = "\U0001f411" // ewe Goat Emoji = "\U0001f410" // goat Camel Emoji = "\U0001f42a" // camel TwoHumpCamel Emoji = "\U0001f42b" // two-hump camel Llama Emoji = "\U0001f999" // llama Giraffe Emoji = "\U0001f992" // giraffe Elephant Emoji = "\U0001f418" // elephant Mammoth Emoji = "\U0001f9a3" // mammoth Rhinoceros Emoji = "\U0001f98f" // rhinoceros Hippopotamus Emoji = "\U0001f99b" // hippopotamus MouseFace Emoji = "\U0001f42d" // mouse face Mouse Emoji = "\U0001f401" // mouse Rat Emoji = "\U0001f400" // rat Hamster Emoji = "\U0001f439" // hamster RabbitFace Emoji = "\U0001f430" // rabbit face Rabbit Emoji = "\U0001f407" // rabbit Chipmunk Emoji = "\U0001f43f\ufe0f" // chipmunk Beaver Emoji = "\U0001f9ab" // beaver Hedgehog Emoji = "\U0001f994" // hedgehog Bat Emoji = "\U0001f987" // bat Bear Emoji = "\U0001f43b" // bear PolarBear Emoji = "\U0001f43b\u200d\u2744\ufe0f" // polar bear Koala Emoji = "\U0001f428" // koala Panda Emoji = "\U0001f43c" // panda Sloth Emoji = "\U0001f9a5" // sloth Otter Emoji = "\U0001f9a6" // otter Skunk Emoji = "\U0001f9a8" // skunk Kangaroo Emoji = "\U0001f998" // kangaroo Badger Emoji = "\U0001f9a1" // badger PawPrints Emoji = "\U0001f43e" // paw prints // SUBGROUP: animal-bird Turkey Emoji = "\U0001f983" // turkey Chicken Emoji = "\U0001f414" // chicken Rooster Emoji = "\U0001f413" // rooster HatchingChick Emoji = "\U0001f423" // hatching chick BabyChick Emoji = "\U0001f424" // baby chick FrontFacingBabyChick Emoji = "\U0001f425" // front-facing baby chick Bird Emoji = "\U0001f426" // bird Penguin Emoji = "\U0001f427" // penguin Dove Emoji = "\U0001f54a\ufe0f" // dove Eagle Emoji = "\U0001f985" // eagle Duck Emoji = "\U0001f986" // duck Swan Emoji = "\U0001f9a2" // swan Owl Emoji = "\U0001f989" // owl Dodo Emoji = "\U0001f9a4" // dodo Feather Emoji = "\U0001fab6" // feather Flamingo Emoji = "\U0001f9a9" // flamingo Peacock Emoji = "\U0001f99a" // peacock Parrot Emoji = "\U0001f99c" // parrot // SUBGROUP: animal-amphibian Frog Emoji = "\U0001f438" // frog // SUBGROUP: animal-reptile Crocodile Emoji = "\U0001f40a" // crocodile Turtle Emoji = "\U0001f422" // turtle Lizard Emoji = "\U0001f98e" // lizard Snake Emoji = "\U0001f40d" // snake DragonFace Emoji = "\U0001f432" // dragon face Dragon Emoji = "\U0001f409" // dragon Sauropod Emoji = "\U0001f995" // sauropod TRex Emoji = "\U0001f996" // T-Rex // SUBGROUP: animal-marine SpoutingWhale Emoji = "\U0001f433" // spouting whale Whale Emoji = "\U0001f40b" // whale Dolphin Emoji = "\U0001f42c" // dolphin Seal Emoji = "\U0001f9ad" // seal Fish Emoji = "\U0001f41f" // fish TropicalFish Emoji = "\U0001f420" // tropical fish Blowfish Emoji = "\U0001f421" // blowfish Shark Emoji = "\U0001f988" // shark Octopus Emoji = "\U0001f419" // octopus SpiralShell Emoji = "\U0001f41a" // spiral shell // SUBGROUP: animal-bug Snail Emoji = "\U0001f40c" // snail Butterfly Emoji = "\U0001f98b" // butterfly Bug Emoji = "\U0001f41b" // bug Ant Emoji = "\U0001f41c" // ant Honeybee Emoji = "\U0001f41d" // honeybee Beetle Emoji = "\U0001fab2" // beetle LadyBeetle Emoji = "\U0001f41e" // lady beetle Cricket Emoji = "\U0001f997" // cricket Cockroach Emoji = "\U0001fab3" // cockroach Spider Emoji = "\U0001f577\ufe0f" // spider SpiderWeb Emoji = "\U0001f578\ufe0f" // spider web Scorpion Emoji = "\U0001f982" // scorpion Mosquito Emoji = "\U0001f99f" // mosquito Fly Emoji = "\U0001fab0" // fly Worm Emoji = "\U0001fab1" // worm Microbe Emoji = "\U0001f9a0" // microbe // SUBGROUP: plant-flower Bouquet Emoji = "\U0001f490" // bouquet CherryBlossom Emoji = "\U0001f338" // cherry blossom WhiteFlower Emoji = "\U0001f4ae" // white flower Rosette Emoji = "\U0001f3f5\ufe0f" // rosette Rose Emoji = "\U0001f339" // rose WiltedFlower Emoji = "\U0001f940" // wilted flower Hibiscus Emoji = "\U0001f33a" // hibiscus Sunflower Emoji = "\U0001f33b" // sunflower Blossom Emoji = "\U0001f33c" // blossom Tulip Emoji = "\U0001f337" // tulip // SUBGROUP: plant-other Seedling Emoji = "\U0001f331" // seedling PottedPlant Emoji = "\U0001fab4" // potted plant EvergreenTree Emoji = "\U0001f332" // evergreen tree DeciduousTree Emoji = "\U0001f333" // deciduous tree PalmTree Emoji = "\U0001f334" // palm tree Cactus Emoji = "\U0001f335" // cactus SheafOfRice Emoji = "\U0001f33e" // sheaf of rice Herb Emoji = "\U0001f33f" // herb Shamrock Emoji = "\u2618\ufe0f" // shamrock FourLeafClover Emoji = "\U0001f340" // four leaf clover MapleLeaf Emoji = "\U0001f341" // maple leaf FallenLeaf Emoji = "\U0001f342" // fallen leaf LeafFlutteringInWind Emoji = "\U0001f343" // leaf fluttering in wind // GROUP: Food & Drink // SUBGROUP: food-fruit Grapes Emoji = "\U0001f347" // grapes Melon Emoji = "\U0001f348" // melon Watermelon Emoji = "\U0001f349" // watermelon Tangerine Emoji = "\U0001f34a" // tangerine Lemon Emoji = "\U0001f34b" // lemon Banana Emoji = "\U0001f34c" // banana Pineapple Emoji = "\U0001f34d" // pineapple Mango Emoji = "\U0001f96d" // mango RedApple Emoji = "\U0001f34e" // red apple GreenApple Emoji = "\U0001f34f" // green apple Pear Emoji = "\U0001f350" // pear Peach Emoji = "\U0001f351" // peach Cherries Emoji = "\U0001f352" // cherries Strawberry Emoji = "\U0001f353" // strawberry Blueberries Emoji = "\U0001fad0" // blueberries KiwiFruit Emoji = "\U0001f95d" // kiwi fruit Tomato Emoji = "\U0001f345" // tomato Olive Emoji = "\U0001fad2" // olive Coconut Emoji = "\U0001f965" // coconut // SUBGROUP: food-vegetable Avocado Emoji = "\U0001f951" // avocado Eggplant Emoji = "\U0001f346" // eggplant Potato Emoji = "\U0001f954" // potato Carrot Emoji = "\U0001f955" // carrot EarOfCorn Emoji = "\U0001f33d" // ear of corn HotPepper Emoji = "\U0001f336\ufe0f" // hot pepper BellPepper Emoji = "\U0001fad1" // bell pepper Cucumber Emoji = "\U0001f952" // cucumber LeafyGreen Emoji = "\U0001f96c" // leafy green Broccoli Emoji = "\U0001f966" // broccoli Garlic Emoji = "\U0001f9c4" // garlic Onion Emoji = "\U0001f9c5" // onion Mushroom Emoji = "\U0001f344" // mushroom Peanuts Emoji = "\U0001f95c" // peanuts Chestnut Emoji = "\U0001f330" // chestnut // SUBGROUP: food-prepared Bread Emoji = "\U0001f35e" // bread Croissant Emoji = "\U0001f950" // croissant BaguetteBread Emoji = "\U0001f956" // baguette bread Flatbread Emoji = "\U0001fad3" // flatbread Pretzel Emoji = "\U0001f968" // pretzel Bagel Emoji = "\U0001f96f" // bagel Pancakes Emoji = "\U0001f95e" // pancakes Waffle Emoji = "\U0001f9c7" // waffle CheeseWedge Emoji = "\U0001f9c0" // cheese wedge MeatOnBone Emoji = "\U0001f356" // meat on bone PoultryLeg Emoji = "\U0001f357" // poultry leg CutOfMeat Emoji = "\U0001f969" // cut of meat Bacon Emoji = "\U0001f953" // bacon Hamburger Emoji = "\U0001f354" // hamburger FrenchFries Emoji = "\U0001f35f" // french fries Pizza Emoji = "\U0001f355" // pizza HotDog Emoji = "\U0001f32d" // hot dog Sandwich Emoji = "\U0001f96a" // sandwich Taco Emoji = "\U0001f32e" // taco Burrito Emoji = "\U0001f32f" // burrito Tamale Emoji = "\U0001fad4" // tamale StuffedFlatbread Emoji = "\U0001f959" // stuffed flatbread Falafel Emoji = "\U0001f9c6" // falafel Egg Emoji = "\U0001f95a" // egg Cooking Emoji = "\U0001f373" // cooking ShallowPanOfFood Emoji = "\U0001f958" // shallow pan of food PotOfFood Emoji = "\U0001f372" // pot of food Fondue Emoji = "\U0001fad5" // fondue BowlWithSpoon Emoji = "\U0001f963" // bowl with spoon GreenSalad Emoji = "\U0001f957" // green salad Popcorn Emoji = "\U0001f37f" // popcorn Butter Emoji = "\U0001f9c8" // butter Salt Emoji = "\U0001f9c2" // salt CannedFood Emoji = "\U0001f96b" // canned food // SUBGROUP: food-asian BentoBox Emoji = "\U0001f371" // bento box RiceCracker Emoji = "\U0001f358" // rice cracker RiceBall Emoji = "\U0001f359" // rice ball CookedRice Emoji = "\U0001f35a" // cooked rice CurryRice Emoji = "\U0001f35b" // curry rice SteamingBowl Emoji = "\U0001f35c" // steaming bowl Spaghetti Emoji = "\U0001f35d" // spaghetti RoastedSweetPotato Emoji = "\U0001f360" // roasted sweet potato Oden Emoji = "\U0001f362" // oden Sushi Emoji = "\U0001f363" // sushi FriedShrimp Emoji = "\U0001f364" // fried shrimp FishCakeWithSwirl Emoji = "\U0001f365" // fish cake with swirl MoonCake Emoji = "\U0001f96e" // moon cake Dango Emoji = "\U0001f361" // dango Dumpling Emoji = "\U0001f95f" // dumpling FortuneCookie Emoji = "\U0001f960" // fortune cookie TakeoutBox Emoji = "\U0001f961" // takeout box // SUBGROUP: food-marine Crab Emoji = "\U0001f980" // crab Lobster Emoji = "\U0001f99e" // lobster Shrimp Emoji = "\U0001f990" // shrimp Squid Emoji = "\U0001f991" // squid Oyster Emoji = "\U0001f9aa" // oyster // SUBGROUP: food-sweet SoftIceCream Emoji = "\U0001f366" // soft ice cream ShavedIce Emoji = "\U0001f367" // shaved ice IceCream Emoji = "\U0001f368" // ice cream Doughnut Emoji = "\U0001f369" // doughnut Cookie Emoji = "\U0001f36a" // cookie BirthdayCake Emoji = "\U0001f382" // birthday cake Shortcake Emoji = "\U0001f370" // shortcake Cupcake Emoji = "\U0001f9c1" // cupcake Pie Emoji = "\U0001f967" // pie ChocolateBar Emoji = "\U0001f36b" // chocolate bar Candy Emoji = "\U0001f36c" // candy Lollipop Emoji = "\U0001f36d" // lollipop Custard Emoji = "\U0001f36e" // custard HoneyPot Emoji = "\U0001f36f" // honey pot // SUBGROUP: drink BabyBottle Emoji = "\U0001f37c" // baby bottle GlassOfMilk Emoji = "\U0001f95b" // glass of milk HotBeverage Emoji = "\u2615" // hot beverage Teapot Emoji = "\U0001fad6" // teapot TeacupWithoutHandle Emoji = "\U0001f375" // teacup without handle Sake Emoji = "\U0001f376" // sake BottleWithPoppingCork Emoji = "\U0001f37e" // bottle with popping cork WineGlass Emoji = "\U0001f377" // wine glass CocktailGlass Emoji = "\U0001f378" // cocktail glass TropicalDrink Emoji = "\U0001f379" // tropical drink BeerMug Emoji = "\U0001f37a" // beer mug ClinkingBeerMugs Emoji = "\U0001f37b" // clinking beer mugs ClinkingGlasses Emoji = "\U0001f942" // clinking glasses TumblerGlass Emoji = "\U0001f943" // tumbler glass CupWithStraw Emoji = "\U0001f964" // cup with straw BubbleTea Emoji = "\U0001f9cb" // bubble tea BeverageBox Emoji = "\U0001f9c3" // beverage box Mate Emoji = "\U0001f9c9" // mate Ice Emoji = "\U0001f9ca" // ice // SUBGROUP: dishware Chopsticks Emoji = "\U0001f962" // chopsticks ForkAndKnifeWithPlate Emoji = "\U0001f37d\ufe0f" // fork and knife with plate ForkAndKnife Emoji = "\U0001f374" // fork and knife Spoon Emoji = "\U0001f944" // spoon KitchenKnife Emoji = "\U0001f52a" // kitchen knife Amphora Emoji = "\U0001f3fa" // amphora // GROUP: Travel & Places // SUBGROUP: place-map GlobeShowingEuropeAfrica Emoji = "\U0001f30d" // globe showing Europe-Africa GlobeShowingAmericas Emoji = "\U0001f30e" // globe showing Americas GlobeShowingAsiaAustralia Emoji = "\U0001f30f" // globe showing Asia-Australia GlobeWithMeridians Emoji = "\U0001f310" // globe with meridians WorldMap Emoji = "\U0001f5fa\ufe0f" // world map MapOfJapan Emoji = "\U0001f5fe" // map of Japan Compass Emoji = "\U0001f9ed" // compass // SUBGROUP: place-geographic SnowCappedMountain Emoji = "\U0001f3d4\ufe0f" // snow-capped mountain Mountain Emoji = "\u26f0\ufe0f" // mountain Volcano Emoji = "\U0001f30b" // volcano MountFuji Emoji = "\U0001f5fb" // mount fuji Camping Emoji = "\U0001f3d5\ufe0f" // camping BeachWithUmbrella Emoji = "\U0001f3d6\ufe0f" // beach with umbrella Desert Emoji = "\U0001f3dc\ufe0f" // desert DesertIsland Emoji = "\U0001f3dd\ufe0f" // desert island NationalPark Emoji = "\U0001f3de\ufe0f" // national park // SUBGROUP: place-building Stadium Emoji = "\U0001f3df\ufe0f" // stadium ClassicalBuilding Emoji = "\U0001f3db\ufe0f" // classical building BuildingConstruction Emoji = "\U0001f3d7\ufe0f" // building construction Brick Emoji = "\U0001f9f1" // brick Rock Emoji = "\U0001faa8" // rock Wood Emoji = "\U0001fab5" // wood Hut Emoji = "\U0001f6d6" // hut Houses Emoji = "\U0001f3d8\ufe0f" // houses DerelictHouse Emoji = "\U0001f3da\ufe0f" // derelict house House Emoji = "\U0001f3e0" // house HouseWithGarden Emoji = "\U0001f3e1" // house with garden OfficeBuilding Emoji = "\U0001f3e2" // office building JapanesePostOffice Emoji = "\U0001f3e3" // Japanese post office PostOffice Emoji = "\U0001f3e4" // post office Hospital Emoji = "\U0001f3e5" // hospital Bank Emoji = "\U0001f3e6" // bank Hotel Emoji = "\U0001f3e8" // hotel LoveHotel Emoji = "\U0001f3e9" // love hotel ConvenienceStore Emoji = "\U0001f3ea" // convenience store School Emoji = "\U0001f3eb" // school DepartmentStore Emoji = "\U0001f3ec" // department store Factory Emoji = "\U0001f3ed" // factory JapaneseCastle Emoji = "\U0001f3ef" // Japanese castle Castle Emoji = "\U0001f3f0" // castle Wedding Emoji = "\U0001f492" // wedding TokyoTower Emoji = "\U0001f5fc" // Tokyo tower StatueOfLiberty Emoji = "\U0001f5fd" // Statue of Liberty // SUBGROUP: place-religious Church Emoji = "\u26ea" // church Mosque Emoji = "\U0001f54c" // mosque HinduTemple Emoji = "\U0001f6d5" // hindu temple Synagogue Emoji = "\U0001f54d" // synagogue ShintoShrine Emoji = "\u26e9\ufe0f" // shinto shrine Kaaba Emoji = "\U0001f54b" // kaaba // SUBGROUP: place-other Fountain Emoji = "\u26f2" // fountain Tent Emoji = "\u26fa" // tent Foggy Emoji = "\U0001f301" // foggy NightWithStars Emoji = "\U0001f303" // night with stars Cityscape Emoji = "\U0001f3d9\ufe0f" // cityscape SunriseOverMountains Emoji = "\U0001f304" // sunrise over mountains Sunrise Emoji = "\U0001f305" // sunrise CityscapeAtDusk Emoji = "\U0001f306" // cityscape at dusk Sunset Emoji = "\U0001f307" // sunset BridgeAtNight Emoji = "\U0001f309" // bridge at night HotSprings Emoji = "\u2668\ufe0f" // hot springs CarouselHorse Emoji = "\U0001f3a0" // carousel horse FerrisWheel Emoji = "\U0001f3a1" // ferris wheel RollerCoaster Emoji = "\U0001f3a2" // roller coaster BarberPole Emoji = "\U0001f488" // barber pole CircusTent Emoji = "\U0001f3aa" // circus tent // SUBGROUP: transport-ground Locomotive Emoji = "\U0001f682" // locomotive RailwayCar Emoji = "\U0001f683" // railway car HighSpeedTrain Emoji = "\U0001f684" // high-speed train BulletTrain Emoji = "\U0001f685" // bullet train Train Emoji = "\U0001f686" // train Metro Emoji = "\U0001f687" // metro LightRail Emoji = "\U0001f688" // light rail Station Emoji = "\U0001f689" // station Tram Emoji = "\U0001f68a" // tram Monorail Emoji = "\U0001f69d" // monorail MountainRailway Emoji = "\U0001f69e" // mountain railway TramCar Emoji = "\U0001f68b" // tram car Bus Emoji = "\U0001f68c" // bus OncomingBus Emoji = "\U0001f68d" // oncoming bus Trolleybus Emoji = "\U0001f68e" // trolleybus Minibus Emoji = "\U0001f690" // minibus Ambulance Emoji = "\U0001f691" // ambulance FireEngine Emoji = "\U0001f692" // fire engine PoliceCar Emoji = "\U0001f693" // police car OncomingPoliceCar Emoji = "\U0001f694" // oncoming police car Taxi Emoji = "\U0001f695" // taxi OncomingTaxi Emoji = "\U0001f696" // oncoming taxi Automobile Emoji = "\U0001f697" // automobile OncomingAutomobile Emoji = "\U0001f698" // oncoming automobile SportUtilityVehicle Emoji = "\U0001f699" // sport utility vehicle PickupTruck Emoji = "\U0001f6fb" // pickup truck DeliveryTruck Emoji = "\U0001f69a" // delivery truck ArticulatedLorry Emoji = "\U0001f69b" // articulated lorry Tractor Emoji = "\U0001f69c" // tractor RacingCar Emoji = "\U0001f3ce\ufe0f" // racing car Motorcycle Emoji = "\U0001f3cd\ufe0f" // motorcycle MotorScooter Emoji = "\U0001f6f5" // motor scooter ManualWheelchair Emoji = "\U0001f9bd" // manual wheelchair MotorizedWheelchair Emoji = "\U0001f9bc" // motorized wheelchair AutoRickshaw Emoji = "\U0001f6fa" // auto rickshaw Bicycle Emoji = "\U0001f6b2" // bicycle KickScooter Emoji = "\U0001f6f4" // kick scooter Skateboard Emoji = "\U0001f6f9" // skateboard RollerSkate Emoji = "\U0001f6fc" // roller skate BusStop Emoji = "\U0001f68f" // bus stop Motorway Emoji = "\U0001f6e3\ufe0f" // motorway RailwayTrack Emoji = "\U0001f6e4\ufe0f" // railway track OilDrum Emoji = "\U0001f6e2\ufe0f" // oil drum FuelPump Emoji = "\u26fd" // fuel pump PoliceCarLight Emoji = "\U0001f6a8" // police car light HorizontalTrafficLight Emoji = "\U0001f6a5" // horizontal traffic light VerticalTrafficLight Emoji = "\U0001f6a6" // vertical traffic light StopSign Emoji = "\U0001f6d1" // stop sign Construction Emoji = "\U0001f6a7" // construction // SUBGROUP: transport-water Anchor Emoji = "\u2693" // anchor Sailboat Emoji = "\u26f5" // sailboat Canoe Emoji = "\U0001f6f6" // canoe Speedboat Emoji = "\U0001f6a4" // speedboat PassengerShip Emoji = "\U0001f6f3\ufe0f" // passenger ship Ferry Emoji = "\u26f4\ufe0f" // ferry MotorBoat Emoji = "\U0001f6e5\ufe0f" // motor boat Ship Emoji = "\U0001f6a2" // ship // SUBGROUP: transport-air Airplane Emoji = "\u2708\ufe0f" // airplane SmallAirplane Emoji = "\U0001f6e9\ufe0f" // small airplane AirplaneDeparture Emoji = "\U0001f6eb" // airplane departure AirplaneArrival Emoji = "\U0001f6ec" // airplane arrival Parachute Emoji = "\U0001fa82" // parachute Seat Emoji = "\U0001f4ba" // seat Helicopter Emoji = "\U0001f681" // helicopter SuspensionRailway Emoji = "\U0001f69f" // suspension railway MountainCableway Emoji = "\U0001f6a0" // mountain cableway AerialTramway Emoji = "\U0001f6a1" // aerial tramway Satellite Emoji = "\U0001f6f0\ufe0f" // satellite Rocket Emoji = "\U0001f680" // rocket FlyingSaucer Emoji = "\U0001f6f8" // flying saucer // SUBGROUP: hotel BellhopBell Emoji = "\U0001f6ce\ufe0f" // bellhop bell Luggage Emoji = "\U0001f9f3" // luggage // SUBGROUP: time HourglassDone Emoji = "\u231b" // hourglass done HourglassNotDone Emoji = "\u23f3" // hourglass not done Watch Emoji = "\u231a" // watch AlarmClock Emoji = "\u23f0" // alarm clock Stopwatch Emoji = "\u23f1\ufe0f" // stopwatch TimerClock Emoji = "\u23f2\ufe0f" // timer clock MantelpieceClock Emoji = "\U0001f570\ufe0f" // mantelpiece clock TwelveOClock Emoji = "\U0001f55b" // twelve o’clock TwelveThirty Emoji = "\U0001f567" // twelve-thirty OneOClock Emoji = "\U0001f550" // one o’clock OneThirty Emoji = "\U0001f55c" // one-thirty TwoOClock Emoji = "\U0001f551" // two o’clock TwoThirty Emoji = "\U0001f55d" // two-thirty ThreeOClock Emoji = "\U0001f552" // three o’clock ThreeThirty Emoji = "\U0001f55e" // three-thirty FourOClock Emoji = "\U0001f553" // four o’clock FourThirty Emoji = "\U0001f55f" // four-thirty FiveOClock Emoji = "\U0001f554" // five o’clock FiveThirty Emoji = "\U0001f560" // five-thirty SixOClock Emoji = "\U0001f555" // six o’clock SixThirty Emoji = "\U0001f561" // six-thirty SevenOClock Emoji = "\U0001f556" // seven o’clock SevenThirty Emoji = "\U0001f562" // seven-thirty EightOClock Emoji = "\U0001f557" // eight o’clock EightThirty Emoji = "\U0001f563" // eight-thirty NineOClock Emoji = "\U0001f558" // nine o’clock NineThirty Emoji = "\U0001f564" // nine-thirty TenOClock Emoji = "\U0001f559" // ten o’clock TenThirty Emoji = "\U0001f565" // ten-thirty ElevenOClock Emoji = "\U0001f55a" // eleven o’clock ElevenThirty Emoji = "\U0001f566" // eleven-thirty // SUBGROUP: sky & weather NewMoon Emoji = "\U0001f311" // new moon WaxingCrescentMoon Emoji = "\U0001f312" // waxing crescent moon FirstQuarterMoon Emoji = "\U0001f313" // first quarter moon WaxingGibbousMoon Emoji = "\U0001f314" // waxing gibbous moon FullMoon Emoji = "\U0001f315" // full moon WaningGibbousMoon Emoji = "\U0001f316" // waning gibbous moon LastQuarterMoon Emoji = "\U0001f317" // last quarter moon WaningCrescentMoon Emoji = "\U0001f318" // waning crescent moon CrescentMoon Emoji = "\U0001f319" // crescent moon NewMoonFace Emoji = "\U0001f31a" // new moon face FirstQuarterMoonFace Emoji = "\U0001f31b" // first quarter moon face LastQuarterMoonFace Emoji = "\U0001f31c" // last quarter moon face Thermometer Emoji = "\U0001f321\ufe0f" // thermometer Sun Emoji = "\u2600\ufe0f" // sun FullMoonFace Emoji = "\U0001f31d" // full moon face SunWithFace Emoji = "\U0001f31e" // sun with face RingedPlanet Emoji = "\U0001fa90" // ringed planet Star Emoji = "\u2b50" // star GlowingStar Emoji = "\U0001f31f" // glowing star ShootingStar Emoji = "\U0001f320" // shooting star MilkyWay Emoji = "\U0001f30c" // milky way Cloud Emoji = "\u2601\ufe0f" // cloud SunBehindCloud Emoji = "\u26c5" // sun behind cloud CloudWithLightningAndRain Emoji = "\u26c8\ufe0f" // cloud with lightning and rain SunBehindSmallCloud Emoji = "\U0001f324\ufe0f" // sun behind small cloud SunBehindLargeCloud Emoji = "\U0001f325\ufe0f" // sun behind large cloud SunBehindRainCloud Emoji = "\U0001f326\ufe0f" // sun behind rain cloud CloudWithRain Emoji = "\U0001f327\ufe0f" // cloud with rain CloudWithSnow Emoji = "\U0001f328\ufe0f" // cloud with snow CloudWithLightning Emoji = "\U0001f329\ufe0f" // cloud with lightning Tornado Emoji = "\U0001f32a\ufe0f" // tornado Fog Emoji = "\U0001f32b\ufe0f" // fog WindFace Emoji = "\U0001f32c\ufe0f" // wind face Cyclone Emoji = "\U0001f300" // cyclone Rainbow Emoji = "\U0001f308" // rainbow ClosedUmbrella Emoji = "\U0001f302" // closed umbrella Umbrella Emoji = "\u2602\ufe0f" // umbrella UmbrellaWithRainDrops Emoji = "\u2614" // umbrella with rain drops UmbrellaOnGround Emoji = "\u26f1\ufe0f" // umbrella on ground HighVoltage Emoji = "\u26a1" // high voltage Snowflake Emoji = "\u2744\ufe0f" // snowflake Snowman Emoji = "\u2603\ufe0f" // snowman SnowmanWithoutSnow Emoji = "\u26c4" // snowman without snow Comet Emoji = "\u2604\ufe0f" // comet Fire Emoji = "\U0001f525" // fire Droplet Emoji = "\U0001f4a7" // droplet WaterWave Emoji = "\U0001f30a" // water wave // GROUP: Activities // SUBGROUP: event JackOLantern Emoji = "\U0001f383" // jack-o-lantern ChristmasTree Emoji = "\U0001f384" // Christmas tree Fireworks Emoji = "\U0001f386" // fireworks Sparkler Emoji = "\U0001f387" // sparkler Firecracker Emoji = "\U0001f9e8" // firecracker Sparkles Emoji = "\u2728" // sparkles Balloon Emoji = "\U0001f388" // balloon PartyPopper Emoji = "\U0001f389" // party popper ConfettiBall Emoji = "\U0001f38a" // confetti ball TanabataTree Emoji = "\U0001f38b" // tanabata tree PineDecoration Emoji = "\U0001f38d" // pine decoration JapaneseDolls Emoji = "\U0001f38e" // Japanese dolls CarpStreamer Emoji = "\U0001f38f" // carp streamer WindChime Emoji = "\U0001f390" // wind chime MoonViewingCeremony Emoji = "\U0001f391" // moon viewing ceremony RedEnvelope Emoji = "\U0001f9e7" // red envelope Ribbon Emoji = "\U0001f380" // ribbon WrappedGift Emoji = "\U0001f381" // wrapped gift ReminderRibbon Emoji = "\U0001f397\ufe0f" // reminder ribbon AdmissionTickets Emoji = "\U0001f39f\ufe0f" // admission tickets Ticket Emoji = "\U0001f3ab" // ticket // SUBGROUP: award-medal MilitaryMedal Emoji = "\U0001f396\ufe0f" // military medal Trophy Emoji = "\U0001f3c6" // trophy SportsMedal Emoji = "\U0001f3c5" // sports medal FirstPlaceMedal Emoji = "\U0001f947" // 1st place medal SecondPlaceMedal Emoji = "\U0001f948" // 2nd place medal ThirdPlaceMedal Emoji = "\U0001f949" // 3rd place medal // SUBGROUP: sport SoccerBall Emoji = "\u26bd" // soccer ball Baseball Emoji = "\u26be" // baseball Softball Emoji = "\U0001f94e" // softball Basketball Emoji = "\U0001f3c0" // basketball Volleyball Emoji = "\U0001f3d0" // volleyball AmericanFootball Emoji = "\U0001f3c8" // american football RugbyFootball Emoji = "\U0001f3c9" // rugby football Tennis Emoji = "\U0001f3be" // tennis FlyingDisc Emoji = "\U0001f94f" // flying disc Bowling Emoji = "\U0001f3b3" // bowling CricketGame Emoji = "\U0001f3cf" // cricket game FieldHockey Emoji = "\U0001f3d1" // field hockey IceHockey Emoji = "\U0001f3d2" // ice hockey Lacrosse Emoji = "\U0001f94d" // lacrosse PingPong Emoji = "\U0001f3d3" // ping pong Badminton Emoji = "\U0001f3f8" // badminton BoxingGlove Emoji = "\U0001f94a" // boxing glove MartialArtsUniform Emoji = "\U0001f94b" // martial arts uniform GoalNet Emoji = "\U0001f945" // goal net FlagInHole Emoji = "\u26f3" // flag in hole IceSkate Emoji = "\u26f8\ufe0f" // ice skate FishingPole Emoji = "\U0001f3a3" // fishing pole DivingMask Emoji = "\U0001f93f" // diving mask RunningShirt Emoji = "\U0001f3bd" // running shirt Skis Emoji = "\U0001f3bf" // skis Sled Emoji = "\U0001f6f7" // sled CurlingStone Emoji = "\U0001f94c" // curling stone // SUBGROUP: game DirectHit Emoji = "\U0001f3af" // direct hit YoYo Emoji = "\U0001fa80" // yo-yo Kite Emoji = "\U0001fa81" // kite Pool8Ball Emoji = "\U0001f3b1" // pool 8 ball CrystalBall Emoji = "\U0001f52e" // crystal ball MagicWand Emoji = "\U0001fa84" // magic wand NazarAmulet Emoji = "\U0001f9ff" // nazar amulet VideoGame Emoji = "\U0001f3ae" // video game Joystick Emoji = "\U0001f579\ufe0f" // joystick SlotMachine Emoji = "\U0001f3b0" // slot machine GameDie Emoji = "\U0001f3b2" // game die PuzzlePiece Emoji = "\U0001f9e9" // puzzle piece TeddyBear Emoji = "\U0001f9f8" // teddy bear Pinata Emoji = "\U0001fa85" // piñata NestingDolls Emoji = "\U0001fa86" // nesting dolls SpadeSuit Emoji = "\u2660\ufe0f" // spade suit HeartSuit Emoji = "\u2665\ufe0f" // heart suit DiamondSuit Emoji = "\u2666\ufe0f" // diamond suit ClubSuit Emoji = "\u2663\ufe0f" // club suit ChessPawn Emoji = "\u265f\ufe0f" // chess pawn Joker Emoji = "\U0001f0cf" // joker MahjongRedDragon Emoji = "\U0001f004" // mahjong red dragon FlowerPlayingCards Emoji = "\U0001f3b4" // flower playing cards // SUBGROUP: arts & crafts PerformingArts Emoji = "\U0001f3ad" // performing arts FramedPicture Emoji = "\U0001f5bc\ufe0f" // framed picture ArtistPalette Emoji = "\U0001f3a8" // artist palette Thread Emoji = "\U0001f9f5" // thread SewingNeedle Emoji = "\U0001faa1" // sewing needle Yarn Emoji = "\U0001f9f6" // yarn Knot Emoji = "\U0001faa2" // knot // GROUP: Objects // SUBGROUP: clothing Glasses Emoji = "\U0001f453" // glasses Sunglasses Emoji = "\U0001f576\ufe0f" // sunglasses Goggles Emoji = "\U0001f97d" // goggles LabCoat Emoji = "\U0001f97c" // lab coat SafetyVest Emoji = "\U0001f9ba" // safety vest Necktie Emoji = "\U0001f454" // necktie TShirt Emoji = "\U0001f455" // t-shirt Jeans Emoji = "\U0001f456" // jeans Scarf Emoji = "\U0001f9e3" // scarf Gloves Emoji = "\U0001f9e4" // gloves Coat Emoji = "\U0001f9e5" // coat Socks Emoji = "\U0001f9e6" // socks Dress Emoji = "\U0001f457" // dress Kimono Emoji = "\U0001f458" // kimono Sari Emoji = "\U0001f97b" // sari OnePieceSwimsuit Emoji = "\U0001fa71" // one-piece swimsuit Briefs Emoji = "\U0001fa72" // briefs Shorts Emoji = "\U0001fa73" // shorts Bikini Emoji = "\U0001f459" // bikini WomanSClothes Emoji = "\U0001f45a" // woman’s clothes Purse Emoji = "\U0001f45b" // purse Handbag Emoji = "\U0001f45c" // handbag ClutchBag Emoji = "\U0001f45d" // clutch bag ShoppingBags Emoji = "\U0001f6cd\ufe0f" // shopping bags Backpack Emoji = "\U0001f392" // backpack ThongSandal Emoji = "\U0001fa74" // thong sandal ManSShoe Emoji = "\U0001f45e" // man’s shoe RunningShoe Emoji = "\U0001f45f" // running shoe HikingBoot Emoji = "\U0001f97e" // hiking boot FlatShoe Emoji = "\U0001f97f" // flat shoe HighHeeledShoe Emoji = "\U0001f460" // high-heeled shoe WomanSSandal Emoji = "\U0001f461" // woman’s sandal BalletShoes Emoji = "\U0001fa70" // ballet shoes WomanSBoot Emoji = "\U0001f462" // woman’s boot Crown Emoji = "\U0001f451" // crown WomanSHat Emoji = "\U0001f452" // woman’s hat TopHat Emoji = "\U0001f3a9" // top hat GraduationCap Emoji = "\U0001f393" // graduation cap BilledCap Emoji = "\U0001f9e2" // billed cap MilitaryHelmet Emoji = "\U0001fa96" // military helmet RescueWorkerSHelmet Emoji = "\u26d1\ufe0f" // rescue worker’s helmet PrayerBeads Emoji = "\U0001f4ff" // prayer beads Lipstick Emoji = "\U0001f484" // lipstick Ring Emoji = "\U0001f48d" // ring GemStone Emoji = "\U0001f48e" // gem stone // SUBGROUP: sound MutedSpeaker Emoji = "\U0001f507" // muted speaker SpeakerLowVolume Emoji = "\U0001f508" // speaker low volume SpeakerMediumVolume Emoji = "\U0001f509" // speaker medium volume SpeakerHighVolume Emoji = "\U0001f50a" // speaker high volume Loudspeaker Emoji = "\U0001f4e2" // loudspeaker Megaphone Emoji = "\U0001f4e3" // megaphone PostalHorn Emoji = "\U0001f4ef" // postal horn Bell Emoji = "\U0001f514" // bell BellWithSlash Emoji = "\U0001f515" // bell with slash // SUBGROUP: music MusicalScore Emoji = "\U0001f3bc" // musical score MusicalNote Emoji = "\U0001f3b5" // musical note MusicalNotes Emoji = "\U0001f3b6" // musical notes StudioMicrophone Emoji = "\U0001f399\ufe0f" // studio microphone LevelSlider Emoji = "\U0001f39a\ufe0f" // level slider ControlKnobs Emoji = "\U0001f39b\ufe0f" // control knobs Microphone Emoji = "\U0001f3a4" // microphone Headphone Emoji = "\U0001f3a7" // headphone Radio Emoji = "\U0001f4fb" // radio // SUBGROUP: musical-instrument Saxophone Emoji = "\U0001f3b7" // saxophone Accordion Emoji = "\U0001fa97" // accordion Guitar Emoji = "\U0001f3b8" // guitar MusicalKeyboard Emoji = "\U0001f3b9" // musical keyboard Trumpet Emoji = "\U0001f3ba" // trumpet Violin Emoji = "\U0001f3bb" // violin Banjo Emoji = "\U0001fa95" // banjo Drum Emoji = "\U0001f941" // drum LongDrum Emoji = "\U0001fa98" // long drum // SUBGROUP: phone MobilePhone Emoji = "\U0001f4f1" // mobile phone MobilePhoneWithArrow Emoji = "\U0001f4f2" // mobile phone with arrow Telephone Emoji = "\u260e\ufe0f" // telephone TelephoneReceiver Emoji = "\U0001f4de" // telephone receiver Pager Emoji = "\U0001f4df" // pager FaxMachine Emoji = "\U0001f4e0" // fax machine // SUBGROUP: computer Battery Emoji = "\U0001f50b" // battery ElectricPlug Emoji = "\U0001f50c" // electric plug Laptop Emoji = "\U0001f4bb" // laptop DesktopComputer Emoji = "\U0001f5a5\ufe0f" // desktop computer Printer Emoji = "\U0001f5a8\ufe0f" // printer Keyboard Emoji = "\u2328\ufe0f" // keyboard ComputerMouse Emoji = "\U0001f5b1\ufe0f" // computer mouse Trackball Emoji = "\U0001f5b2\ufe0f" // trackball ComputerDisk Emoji = "\U0001f4bd" // computer disk FloppyDisk Emoji = "\U0001f4be" // floppy disk OpticalDisk Emoji = "\U0001f4bf" // optical disk Dvd Emoji = "\U0001f4c0" // dvd Abacus Emoji = "\U0001f9ee" // abacus // SUBGROUP: light & video MovieCamera Emoji = "\U0001f3a5" // movie camera FilmFrames Emoji = "\U0001f39e\ufe0f" // film frames FilmProjector Emoji = "\U0001f4fd\ufe0f" // film projector ClapperBoard Emoji = "\U0001f3ac" // clapper board Television Emoji = "\U0001f4fa" // television Camera Emoji = "\U0001f4f7" // camera CameraWithFlash Emoji = "\U0001f4f8" // camera with flash VideoCamera Emoji = "\U0001f4f9" // video camera Videocassette Emoji = "\U0001f4fc" // videocassette MagnifyingGlassTiltedLeft Emoji = "\U0001f50d" // magnifying glass tilted left MagnifyingGlassTiltedRight Emoji = "\U0001f50e" // magnifying glass tilted right Candle Emoji = "\U0001f56f\ufe0f" // candle LightBulb Emoji = "\U0001f4a1" // light bulb Flashlight Emoji = "\U0001f526" // flashlight RedPaperLantern Emoji = "\U0001f3ee" // red paper lantern DiyaLamp Emoji = "\U0001fa94" // diya lamp // SUBGROUP: book-paper NotebookWithDecorativeCover Emoji = "\U0001f4d4" // notebook with decorative cover ClosedBook Emoji = "\U0001f4d5" // closed book OpenBook Emoji = "\U0001f4d6" // open book GreenBook Emoji = "\U0001f4d7" // green book BlueBook Emoji = "\U0001f4d8" // blue book OrangeBook Emoji = "\U0001f4d9" // orange book Books Emoji = "\U0001f4da" // books Notebook Emoji = "\U0001f4d3" // notebook Ledger Emoji = "\U0001f4d2" // ledger PageWithCurl Emoji = "\U0001f4c3" // page with curl Scroll Emoji = "\U0001f4dc" // scroll PageFacingUp Emoji = "\U0001f4c4" // page facing up Newspaper Emoji = "\U0001f4f0" // newspaper RolledUpNewspaper Emoji = "\U0001f5de\ufe0f" // rolled-up newspaper BookmarkTabs Emoji = "\U0001f4d1" // bookmark tabs Bookmark Emoji = "\U0001f516" // bookmark Label Emoji = "\U0001f3f7\ufe0f" // label // SUBGROUP: money MoneyBag Emoji = "\U0001f4b0" // money bag Coin Emoji = "\U0001fa99" // coin YenBanknote Emoji = "\U0001f4b4" // yen banknote DollarBanknote Emoji = "\U0001f4b5" // dollar banknote EuroBanknote Emoji = "\U0001f4b6" // euro banknote PoundBanknote Emoji = "\U0001f4b7" // pound banknote MoneyWithWings Emoji = "\U0001f4b8" // money with wings CreditCard Emoji = "\U0001f4b3" // credit card Receipt Emoji = "\U0001f9fe" // receipt ChartIncreasingWithYen Emoji = "\U0001f4b9" // chart increasing with yen // SUBGROUP: mail Envelope Emoji = "\u2709\ufe0f" // envelope EMail Emoji = "\U0001f4e7" // e-mail IncomingEnvelope Emoji = "\U0001f4e8" // incoming envelope EnvelopeWithArrow Emoji = "\U0001f4e9" // envelope with arrow OutboxTray Emoji = "\U0001f4e4" // outbox tray InboxTray Emoji = "\U0001f4e5" // inbox tray Package Emoji = "\U0001f4e6" // package ClosedMailboxWithRaisedFlag Emoji = "\U0001f4eb" // closed mailbox with raised flag ClosedMailboxWithLoweredFlag Emoji = "\U0001f4ea" // closed mailbox with lowered flag OpenMailboxWithRaisedFlag Emoji = "\U0001f4ec" // open mailbox with raised flag OpenMailboxWithLoweredFlag Emoji = "\U0001f4ed" // open mailbox with lowered flag Postbox Emoji = "\U0001f4ee" // postbox BallotBoxWithBallot Emoji = "\U0001f5f3\ufe0f" // ballot box with ballot // SUBGROUP: writing Pencil Emoji = "\u270f\ufe0f" // pencil BlackNib Emoji = "\u2712\ufe0f" // black nib FountainPen Emoji = "\U0001f58b\ufe0f" // fountain pen Pen Emoji = "\U0001f58a\ufe0f" // pen Paintbrush Emoji = "\U0001f58c\ufe0f" // paintbrush Crayon Emoji = "\U0001f58d\ufe0f" // crayon Memo Emoji = "\U0001f4dd" // memo // SUBGROUP: office Briefcase Emoji = "\U0001f4bc" // briefcase FileFolder Emoji = "\U0001f4c1" // file folder OpenFileFolder Emoji = "\U0001f4c2" // open file folder CardIndexDividers Emoji = "\U0001f5c2\ufe0f" // card index dividers Calendar Emoji = "\U0001f4c5" // calendar TearOffCalendar Emoji = "\U0001f4c6" // tear-off calendar SpiralNotepad Emoji = "\U0001f5d2\ufe0f" // spiral notepad SpiralCalendar Emoji = "\U0001f5d3\ufe0f" // spiral calendar CardIndex Emoji = "\U0001f4c7" // card index ChartIncreasing Emoji = "\U0001f4c8" // chart increasing ChartDecreasing Emoji = "\U0001f4c9" // chart decreasing BarChart Emoji = "\U0001f4ca" // bar chart Clipboard Emoji = "\U0001f4cb" // clipboard Pushpin Emoji = "\U0001f4cc" // pushpin RoundPushpin Emoji = "\U0001f4cd" // round pushpin Paperclip Emoji = "\U0001f4ce" // paperclip LinkedPaperclips Emoji = "\U0001f587\ufe0f" // linked paperclips StraightRuler Emoji = "\U0001f4cf" // straight ruler TriangularRuler Emoji = "\U0001f4d0" // triangular ruler Scissors Emoji = "\u2702\ufe0f" // scissors CardFileBox Emoji = "\U0001f5c3\ufe0f" // card file box FileCabinet Emoji = "\U0001f5c4\ufe0f" // file cabinet Wastebasket Emoji = "\U0001f5d1\ufe0f" // wastebasket // SUBGROUP: lock Locked Emoji = "\U0001f512" // locked Unlocked Emoji = "\U0001f513" // unlocked LockedWithPen Emoji = "\U0001f50f" // locked with pen LockedWithKey Emoji = "\U0001f510" // locked with key Key Emoji = "\U0001f511" // key OldKey Emoji = "\U0001f5dd\ufe0f" // old key // SUBGROUP: tool Hammer Emoji = "\U0001f528" // hammer Axe Emoji = "\U0001fa93" // axe Pick Emoji = "\u26cf\ufe0f" // pick HammerAndPick Emoji = "\u2692\ufe0f" // hammer and pick HammerAndWrench Emoji = "\U0001f6e0\ufe0f" // hammer and wrench Dagger Emoji = "\U0001f5e1\ufe0f" // dagger CrossedSwords Emoji = "\u2694\ufe0f" // crossed swords Pistol Emoji = "\U0001f52b" // pistol Boomerang Emoji = "\U0001fa83" // boomerang BowAndArrow Emoji = "\U0001f3f9" // bow and arrow Shield Emoji = "\U0001f6e1\ufe0f" // shield CarpentrySaw Emoji = "\U0001fa9a" // carpentry saw Wrench Emoji = "\U0001f527" // wrench Screwdriver Emoji = "\U0001fa9b" // screwdriver NutAndBolt Emoji = "\U0001f529" // nut and bolt Gear Emoji = "\u2699\ufe0f" // gear Clamp Emoji = "\U0001f5dc\ufe0f" // clamp BalanceScale Emoji = "\u2696\ufe0f" // balance scale WhiteCane Emoji = "\U0001f9af" // white cane Link Emoji = "\U0001f517" // link Chains Emoji = "\u26d3\ufe0f" // chains Hook Emoji = "\U0001fa9d" // hook Toolbox Emoji = "\U0001f9f0" // toolbox Magnet Emoji = "\U0001f9f2" // magnet Ladder Emoji = "\U0001fa9c" // ladder // SUBGROUP: science Alembic Emoji = "\u2697\ufe0f" // alembic TestTube Emoji = "\U0001f9ea" // test tube PetriDish Emoji = "\U0001f9eb" // petri dish Dna Emoji = "\U0001f9ec" // dna Microscope Emoji = "\U0001f52c" // microscope Telescope Emoji = "\U0001f52d" // telescope SatelliteAntenna Emoji = "\U0001f4e1" // satellite antenna // SUBGROUP: medical Syringe Emoji = "\U0001f489" // syringe DropOfBlood Emoji = "\U0001fa78" // drop of blood Pill Emoji = "\U0001f48a" // pill AdhesiveBandage Emoji = "\U0001fa79" // adhesive bandage Stethoscope Emoji = "\U0001fa7a" // stethoscope // SUBGROUP: household Door Emoji = "\U0001f6aa" // door Elevator Emoji = "\U0001f6d7" // elevator Mirror Emoji = "\U0001fa9e" // mirror Window Emoji = "\U0001fa9f" // window Bed Emoji = "\U0001f6cf\ufe0f" // bed CouchAndLamp Emoji = "\U0001f6cb\ufe0f" // couch and lamp Chair Emoji = "\U0001fa91" // chair Toilet Emoji = "\U0001f6bd" // toilet Plunger Emoji = "\U0001faa0" // plunger Shower Emoji = "\U0001f6bf" // shower Bathtub Emoji = "\U0001f6c1" // bathtub MouseTrap Emoji = "\U0001faa4" // mouse trap Razor Emoji = "\U0001fa92" // razor LotionBottle Emoji = "\U0001f9f4" // lotion bottle SafetyPin Emoji = "\U0001f9f7" // safety pin Broom Emoji = "\U0001f9f9" // broom Basket Emoji = "\U0001f9fa" // basket RollOfPaper Emoji = "\U0001f9fb" // roll of paper Bucket Emoji = "\U0001faa3" // bucket Soap Emoji = "\U0001f9fc" // soap Toothbrush Emoji = "\U0001faa5" // toothbrush Sponge Emoji = "\U0001f9fd" // sponge FireExtinguisher Emoji = "\U0001f9ef" // fire extinguisher ShoppingCart Emoji = "\U0001f6d2" // shopping cart // SUBGROUP: other-object Cigarette Emoji = "\U0001f6ac" // cigarette Coffin Emoji = "\u26b0\ufe0f" // coffin Headstone Emoji = "\U0001faa6" // headstone FuneralUrn Emoji = "\u26b1\ufe0f" // funeral urn Moai Emoji = "\U0001f5ff" // moai Placard Emoji = "\U0001faa7" // placard // GROUP: Symbols // SUBGROUP: transport-sign AtmSign Emoji = "\U0001f3e7" // ATM sign LitterInBinSign Emoji = "\U0001f6ae" // litter in bin sign PotableWater Emoji = "\U0001f6b0" // potable water WheelchairSymbol Emoji = "\u267f" // wheelchair symbol MenSRoom Emoji = "\U0001f6b9" // men’s room WomenSRoom Emoji = "\U0001f6ba" // women’s room Restroom Emoji = "\U0001f6bb" // restroom BabySymbol Emoji = "\U0001f6bc" // baby symbol WaterCloset Emoji = "\U0001f6be" // water closet PassportControl Emoji = "\U0001f6c2" // passport control Customs Emoji = "\U0001f6c3" // customs BaggageClaim Emoji = "\U0001f6c4" // baggage claim LeftLuggage Emoji = "\U0001f6c5" // left luggage // SUBGROUP: warning Warning Emoji = "\u26a0\ufe0f" // warning ChildrenCrossing Emoji = "\U0001f6b8" // children crossing NoEntry Emoji = "\u26d4" // no entry Prohibited Emoji = "\U0001f6ab" // prohibited NoBicycles Emoji = "\U0001f6b3" // no bicycles NoSmoking Emoji = "\U0001f6ad" // no smoking NoLittering Emoji = "\U0001f6af" // no littering NonPotableWater Emoji = "\U0001f6b1" // non-potable water NoPedestrians Emoji = "\U0001f6b7" // no pedestrians NoMobilePhones Emoji = "\U0001f4f5" // no mobile phones NoOneUnderEighteen Emoji = "\U0001f51e" // no one under eighteen Radioactive Emoji = "\u2622\ufe0f" // radioactive Biohazard Emoji = "\u2623\ufe0f" // biohazard // SUBGROUP: arrow UpArrow Emoji = "\u2b06\ufe0f" // up arrow UpRightArrow Emoji = "\u2197\ufe0f" // up-right arrow RightArrow Emoji = "\u27a1\ufe0f" // right arrow DownRightArrow Emoji = "\u2198\ufe0f" // down-right arrow DownArrow Emoji = "\u2b07\ufe0f" // down arrow DownLeftArrow Emoji = "\u2199\ufe0f" // down-left arrow LeftArrow Emoji = "\u2b05\ufe0f" // left arrow UpLeftArrow Emoji = "\u2196\ufe0f" // up-left arrow UpDownArrow Emoji = "\u2195\ufe0f" // up-down arrow LeftRightArrow Emoji = "\u2194\ufe0f" // left-right arrow RightArrowCurvingLeft Emoji = "\u21a9\ufe0f" // right arrow curving left LeftArrowCurvingRight Emoji = "\u21aa\ufe0f" // left arrow curving right RightArrowCurvingUp Emoji = "\u2934\ufe0f" // right arrow curving up RightArrowCurvingDown Emoji = "\u2935\ufe0f" // right arrow curving down ClockwiseVerticalArrows Emoji = "\U0001f503" // clockwise vertical arrows CounterclockwiseArrowsButton Emoji = "\U0001f504" // counterclockwise arrows button BackArrow Emoji = "\U0001f519" // BACK arrow EndArrow Emoji = "\U0001f51a" // END arrow OnArrow Emoji = "\U0001f51b" // ON! arrow SoonArrow Emoji = "\U0001f51c" // SOON arrow TopArrow Emoji = "\U0001f51d" // TOP arrow // SUBGROUP: religion PlaceOfWorship Emoji = "\U0001f6d0" // place of worship AtomSymbol Emoji = "\u269b\ufe0f" // atom symbol Om Emoji = "\U0001f549\ufe0f" // om StarOfDavid Emoji = "\u2721\ufe0f" // star of David WheelOfDharma Emoji = "\u2638\ufe0f" // wheel of dharma YinYang Emoji = "\u262f\ufe0f" // yin yang LatinCross Emoji = "\u271d\ufe0f" // latin cross OrthodoxCross Emoji = "\u2626\ufe0f" // orthodox cross StarAndCrescent Emoji = "\u262a\ufe0f" // star and crescent PeaceSymbol Emoji = "\u262e\ufe0f" // peace symbol Menorah Emoji = "\U0001f54e" // menorah DottedSixPointedStar Emoji = "\U0001f52f" // dotted six-pointed star // SUBGROUP: zodiac Aries Emoji = "\u2648" // Aries Taurus Emoji = "\u2649" // Taurus Gemini Emoji = "\u264a" // Gemini Cancer Emoji = "\u264b" // Cancer Leo Emoji = "\u264c" // Leo Virgo Emoji = "\u264d" // Virgo Libra Emoji = "\u264e" // Libra Scorpio Emoji = "\u264f" // Scorpio Sagittarius Emoji = "\u2650" // Sagittarius Capricorn Emoji = "\u2651" // Capricorn Aquarius Emoji = "\u2652" // Aquarius Pisces Emoji = "\u2653" // Pisces Ophiuchus Emoji = "\u26ce" // Ophiuchus // SUBGROUP: av-symbol ShuffleTracksButton Emoji = "\U0001f500" // shuffle tracks button RepeatButton Emoji = "\U0001f501" // repeat button RepeatSingleButton Emoji = "\U0001f502" // repeat single button PlayButton Emoji = "\u25b6\ufe0f" // play button FastForwardButton Emoji = "\u23e9" // fast-forward button NextTrackButton Emoji = "\u23ed\ufe0f" // next track button PlayOrPauseButton Emoji = "\u23ef\ufe0f" // play or pause button ReverseButton Emoji = "\u25c0\ufe0f" // reverse button FastReverseButton Emoji = "\u23ea" // fast reverse button LastTrackButton Emoji = "\u23ee\ufe0f" // last track button UpwardsButton Emoji = "\U0001f53c" // upwards button FastUpButton Emoji = "\u23eb" // fast up button DownwardsButton Emoji = "\U0001f53d" // downwards button FastDownButton Emoji = "\u23ec" // fast down button PauseButton Emoji = "\u23f8\ufe0f" // pause button StopButton Emoji = "\u23f9\ufe0f" // stop button RecordButton Emoji = "\u23fa\ufe0f" // record button EjectButton Emoji = "\u23cf\ufe0f" // eject button Cinema Emoji = "\U0001f3a6" // cinema DimButton Emoji = "\U0001f505" // dim button BrightButton Emoji = "\U0001f506" // bright button AntennaBars Emoji = "\U0001f4f6" // antenna bars VibrationMode Emoji = "\U0001f4f3" // vibration mode MobilePhoneOff Emoji = "\U0001f4f4" // mobile phone off // SUBGROUP: gender FemaleSign Emoji = "\u2640\ufe0f" // female sign MaleSign Emoji = "\u2642\ufe0f" // male sign TransgenderSymbol Emoji = "\u26a7\ufe0f" // transgender symbol // SUBGROUP: math Multiply Emoji = "\u2716\ufe0f" // multiply Plus Emoji = "\u2795" // plus Minus Emoji = "\u2796" // minus Divide Emoji = "\u2797" // divide Infinity Emoji = "\u267e\ufe0f" // infinity // SUBGROUP: punctuation DoubleExclamationMark Emoji = "\u203c\ufe0f" // double exclamation mark ExclamationQuestionMark Emoji = "\u2049\ufe0f" // exclamation question mark QuestionMark Emoji = "\u2753" // question mark WhiteQuestionMark Emoji = "\u2754" // white question mark WhiteExclamationMark Emoji = "\u2755" // white exclamation mark ExclamationMark Emoji = "\u2757" // exclamation mark WavyDash Emoji = "\u3030\ufe0f" // wavy dash // SUBGROUP: currency CurrencyExchange Emoji = "\U0001f4b1" // currency exchange HeavyDollarSign Emoji = "\U0001f4b2" // heavy dollar sign // SUBGROUP: other-symbol MedicalSymbol Emoji = "\u2695\ufe0f" // medical symbol RecyclingSymbol Emoji = "\u267b\ufe0f" // recycling symbol FleurDeLis Emoji = "\u269c\ufe0f" // fleur-de-lis TridentEmblem Emoji = "\U0001f531" // trident emblem NameBadge Emoji = "\U0001f4db" // name badge JapaneseSymbolForBeginner Emoji = "\U0001f530" // Japanese symbol for beginner HollowRedCircle Emoji = "\u2b55" // hollow red circle CheckMarkButton Emoji = "\u2705" // check mark button CheckBoxWithCheck Emoji = "\u2611\ufe0f" // check box with check CheckMark Emoji = "\u2714\ufe0f" // check mark CrossMark Emoji = "\u274c" // cross mark CrossMarkButton Emoji = "\u274e" // cross mark button CurlyLoop Emoji = "\u27b0" // curly loop DoubleCurlyLoop Emoji = "\u27bf" // double curly loop PartAlternationMark Emoji = "\u303d\ufe0f" // part alternation mark EightSpokedAsterisk Emoji = "\u2733\ufe0f" // eight-spoked asterisk EightPointedStar Emoji = "\u2734\ufe0f" // eight-pointed star Sparkle Emoji = "\u2747\ufe0f" // sparkle Copyright Emoji = "\u00a9\ufe0f" // copyright Registered Emoji = "\u00ae\ufe0f" // registered TradeMark Emoji = "\u2122\ufe0f" // trade mark // SUBGROUP: keycap KeycapHash Emoji = "#\ufe0f\u20e3" // keycap: # KeycapAsterisk Emoji = "*\ufe0f\u20e3" // keycap: * Keycap0 Emoji = "0\ufe0f\u20e3" // keycap: 0 Keycap1 Emoji = "1\ufe0f\u20e3" // keycap: 1 Keycap2 Emoji = "2\ufe0f\u20e3" // keycap: 2 Keycap3 Emoji = "3\ufe0f\u20e3" // keycap: 3 Keycap4 Emoji = "4\ufe0f\u20e3" // keycap: 4 Keycap5 Emoji = "5\ufe0f\u20e3" // keycap: 5 Keycap6 Emoji = "6\ufe0f\u20e3" // keycap: 6 Keycap7 Emoji = "7\ufe0f\u20e3" // keycap: 7 Keycap8 Emoji = "8\ufe0f\u20e3" // keycap: 8 Keycap9 Emoji = "9\ufe0f\u20e3" // keycap: 9 Keycap10 Emoji = "\U0001f51f" // keycap: 10 // SUBGROUP: alphanum InputLatinUppercase Emoji = "\U0001f520" // input latin uppercase InputLatinLowercase Emoji = "\U0001f521" // input latin lowercase InputNumbers Emoji = "\U0001f522" // input numbers InputSymbols Emoji = "\U0001f523" // input symbols InputLatinLetters Emoji = "\U0001f524" // input latin letters AButtonBloodType Emoji = "\U0001f170\ufe0f" // A button (blood type) AbButtonBloodType Emoji = "\U0001f18e" // AB button (blood type) BButtonBloodType Emoji = "\U0001f171\ufe0f" // B button (blood type) ClButton Emoji = "\U0001f191" // CL button CoolButton Emoji = "\U0001f192" // COOL button FreeButton Emoji = "\U0001f193" // FREE button Information Emoji = "\u2139\ufe0f" // information IdButton Emoji = "\U0001f194" // ID button CircledM Emoji = "\u24c2\ufe0f" // circled M NewButton Emoji = "\U0001f195" // NEW button NgButton Emoji = "\U0001f196" // NG button OButtonBloodType Emoji = "\U0001f17e\ufe0f" // O button (blood type) OkButton Emoji = "\U0001f197" // OK button PButton Emoji = "\U0001f17f\ufe0f" // P button SosButton Emoji = "\U0001f198" // SOS button UpButton Emoji = "\U0001f199" // UP! button VsButton Emoji = "\U0001f19a" // VS button JapaneseHereButton Emoji = "\U0001f201" // Japanese “here” button JapaneseServiceChargeButton Emoji = "\U0001f202\ufe0f" // Japanese “service charge” button JapaneseMonthlyAmountButton Emoji = "\U0001f237\ufe0f" // Japanese “monthly amount” button JapaneseNotFreeOfChargeButton Emoji = "\U0001f236" // Japanese “not free of charge” button JapaneseReservedButton Emoji = "\U0001f22f" // Japanese “reserved” button JapaneseBargainButton Emoji = "\U0001f250" // Japanese “bargain” button JapaneseDiscountButton Emoji = "\U0001f239" // Japanese “discount” button JapaneseFreeOfChargeButton Emoji = "\U0001f21a" // Japanese “free of charge” button JapaneseProhibitedButton Emoji = "\U0001f232" // Japanese “prohibited” button JapaneseAcceptableButton Emoji = "\U0001f251" // Japanese “acceptable” button JapaneseApplicationButton Emoji = "\U0001f238" // Japanese “application” button JapanesePassingGradeButton Emoji = "\U0001f234" // Japanese “passing grade” button JapaneseVacancyButton Emoji = "\U0001f233" // Japanese “vacancy” button JapaneseCongratulationsButton Emoji = "\u3297\ufe0f" // Japanese “congratulations” button JapaneseSecretButton Emoji = "\u3299\ufe0f" // Japanese “secret” button JapaneseOpenForBusinessButton Emoji = "\U0001f23a" // Japanese “open for business” button JapaneseNoVacancyButton Emoji = "\U0001f235" // Japanese “no vacancy” button // SUBGROUP: geometric RedCircle Emoji = "\U0001f534" // red circle OrangeCircle Emoji = "\U0001f7e0" // orange circle YellowCircle Emoji = "\U0001f7e1" // yellow circle GreenCircle Emoji = "\U0001f7e2" // green circle BlueCircle Emoji = "\U0001f535" // blue circle PurpleCircle Emoji = "\U0001f7e3" // purple circle BrownCircle Emoji = "\U0001f7e4" // brown circle BlackCircle Emoji = "\u26ab" // black circle WhiteCircle Emoji = "\u26aa" // white circle RedSquare Emoji = "\U0001f7e5" // red square OrangeSquare Emoji = "\U0001f7e7" // orange square YellowSquare Emoji = "\U0001f7e8" // yellow square GreenSquare Emoji = "\U0001f7e9" // green square BlueSquare Emoji = "\U0001f7e6" // blue square PurpleSquare Emoji = "\U0001f7ea" // purple square BrownSquare Emoji = "\U0001f7eb" // brown square BlackLargeSquare Emoji = "\u2b1b" // black large square WhiteLargeSquare Emoji = "\u2b1c" // white large square BlackMediumSquare Emoji = "\u25fc\ufe0f" // black medium square WhiteMediumSquare Emoji = "\u25fb\ufe0f" // white medium square BlackMediumSmallSquare Emoji = "\u25fe" // black medium-small square WhiteMediumSmallSquare Emoji = "\u25fd" // white medium-small square BlackSmallSquare Emoji = "\u25aa\ufe0f" // black small square WhiteSmallSquare Emoji = "\u25ab\ufe0f" // white small square LargeOrangeDiamond Emoji = "\U0001f536" // large orange diamond LargeBlueDiamond Emoji = "\U0001f537" // large blue diamond SmallOrangeDiamond Emoji = "\U0001f538" // small orange diamond SmallBlueDiamond Emoji = "\U0001f539" // small blue diamond RedTrianglePointedUp Emoji = "\U0001f53a" // red triangle pointed up RedTrianglePointedDown Emoji = "\U0001f53b" // red triangle pointed down DiamondWithADot Emoji = "\U0001f4a0" // diamond with a dot RadioButton Emoji = "\U0001f518" // radio button WhiteSquareButton Emoji = "\U0001f533" // white square button BlackSquareButton Emoji = "\U0001f532" // black square button // GROUP: Flags // SUBGROUP: flag ChequeredFlag Emoji = "\U0001f3c1" // chequered flag TriangularFlag Emoji = "\U0001f6a9" // triangular flag CrossedFlags Emoji = "\U0001f38c" // crossed flags BlackFlag Emoji = "\U0001f3f4" // black flag WhiteFlag Emoji = "\U0001f3f3\ufe0f" // white flag RainbowFlag Emoji = "\U0001f3f3\ufe0f\u200d\U0001f308" // rainbow flag TransgenderFlag Emoji = "\U0001f3f3\ufe0f\u200d\u26a7\ufe0f" // transgender flag PirateFlag Emoji = "\U0001f3f4\u200d\u2620\ufe0f" // pirate flag // SUBGROUP: country-flag FlagForAscensionIsland Emoji = "\U0001f1e6\U0001f1e8" // flag: Ascension Island FlagForAndorra Emoji = "\U0001f1e6\U0001f1e9" // flag: Andorra FlagForUnitedArabEmirates Emoji = "\U0001f1e6\U0001f1ea" // flag: United Arab Emirates FlagForAfghanistan Emoji = "\U0001f1e6\U0001f1eb" // flag: Afghanistan FlagForAntiguaAndBarbuda Emoji = "\U0001f1e6\U0001f1ec" // flag: Antigua & Barbuda FlagForAnguilla Emoji = "\U0001f1e6\U0001f1ee" // flag: Anguilla FlagForAlbania Emoji = "\U0001f1e6\U0001f1f1" // flag: Albania FlagForArmenia Emoji = "\U0001f1e6\U0001f1f2" // flag: Armenia FlagForAngola Emoji = "\U0001f1e6\U0001f1f4" // flag: Angola FlagForAntarctica Emoji = "\U0001f1e6\U0001f1f6" // flag: Antarctica FlagForArgentina Emoji = "\U0001f1e6\U0001f1f7" // flag: Argentina FlagForAmericanSamoa Emoji = "\U0001f1e6\U0001f1f8" // flag: American Samoa FlagForAustria Emoji = "\U0001f1e6\U0001f1f9" // flag: Austria FlagForAustralia Emoji = "\U0001f1e6\U0001f1fa" // flag: Australia FlagForAruba Emoji = "\U0001f1e6\U0001f1fc" // flag: Aruba FlagForAlandIslands Emoji = "\U0001f1e6\U0001f1fd" // flag: Åland Islands FlagForAzerbaijan Emoji = "\U0001f1e6\U0001f1ff" // flag: Azerbaijan FlagForBosniaAndHerzegovina Emoji = "\U0001f1e7\U0001f1e6" // flag: Bosnia & Herzegovina FlagForBarbados Emoji = "\U0001f1e7\U0001f1e7" // flag: Barbados FlagForBangladesh Emoji = "\U0001f1e7\U0001f1e9" // flag: Bangladesh FlagForBelgium Emoji = "\U0001f1e7\U0001f1ea" // flag: Belgium FlagForBurkinaFaso Emoji = "\U0001f1e7\U0001f1eb" // flag: Burkina Faso FlagForBulgaria Emoji = "\U0001f1e7\U0001f1ec" // flag: Bulgaria FlagForBahrain Emoji = "\U0001f1e7\U0001f1ed" // flag: Bahrain FlagForBurundi Emoji = "\U0001f1e7\U0001f1ee" // flag: Burundi FlagForBenin Emoji = "\U0001f1e7\U0001f1ef" // flag: Benin FlagForStBarthelemy Emoji = "\U0001f1e7\U0001f1f1" // flag: St. Barthélemy FlagForBermuda Emoji = "\U0001f1e7\U0001f1f2" // flag: Bermuda FlagForBrunei Emoji = "\U0001f1e7\U0001f1f3" // flag: Brunei FlagForBolivia Emoji = "\U0001f1e7\U0001f1f4" // flag: Bolivia FlagForCaribbeanNetherlands Emoji = "\U0001f1e7\U0001f1f6" // flag: Caribbean Netherlands FlagForBrazil Emoji = "\U0001f1e7\U0001f1f7" // flag: Brazil FlagForBahamas Emoji = "\U0001f1e7\U0001f1f8" // flag: Bahamas FlagForBhutan Emoji = "\U0001f1e7\U0001f1f9" // flag: Bhutan FlagForBouvetIsland Emoji = "\U0001f1e7\U0001f1fb" // flag: Bouvet Island FlagForBotswana Emoji = "\U0001f1e7\U0001f1fc" // flag: Botswana FlagForBelarus Emoji = "\U0001f1e7\U0001f1fe" // flag: Belarus FlagForBelize Emoji = "\U0001f1e7\U0001f1ff" // flag: Belize FlagForCanada Emoji = "\U0001f1e8\U0001f1e6" // flag: Canada FlagForCocosKeelingIslands Emoji = "\U0001f1e8\U0001f1e8" // flag: Cocos (Keeling) Islands FlagForCongoKinshasa Emoji = "\U0001f1e8\U0001f1e9" // flag: Congo - Kinshasa FlagForCentralAfricanRepublic Emoji = "\U0001f1e8\U0001f1eb" // flag: Central African Republic FlagForCongoBrazzaville Emoji = "\U0001f1e8\U0001f1ec" // flag: Congo - Brazzaville FlagForSwitzerland Emoji = "\U0001f1e8\U0001f1ed" // flag: Switzerland FlagForCoteDIvoire Emoji = "\U0001f1e8\U0001f1ee" // flag: Côte d’Ivoire FlagForCookIslands Emoji = "\U0001f1e8\U0001f1f0" // flag: Cook Islands FlagForChile Emoji = "\U0001f1e8\U0001f1f1" // flag: Chile FlagForCameroon Emoji = "\U0001f1e8\U0001f1f2" // flag: Cameroon FlagForChina Emoji = "\U0001f1e8\U0001f1f3" // flag: China FlagForColombia Emoji = "\U0001f1e8\U0001f1f4" // flag: Colombia FlagForClippertonIsland Emoji = "\U0001f1e8\U0001f1f5" // flag: Clipperton Island FlagForCostaRica Emoji = "\U0001f1e8\U0001f1f7" // flag: Costa Rica FlagForCuba Emoji = "\U0001f1e8\U0001f1fa" // flag: Cuba FlagForCapeVerde Emoji = "\U0001f1e8\U0001f1fb" // flag: Cape Verde FlagForCuracao Emoji = "\U0001f1e8\U0001f1fc" // flag: Curaçao FlagForChristmasIsland Emoji = "\U0001f1e8\U0001f1fd" // flag: Christmas Island FlagForCyprus Emoji = "\U0001f1e8\U0001f1fe" // flag: Cyprus FlagForCzechia Emoji = "\U0001f1e8\U0001f1ff" // flag: Czechia FlagForGermany Emoji = "\U0001f1e9\U0001f1ea" // flag: Germany FlagForDiegoGarcia Emoji = "\U0001f1e9\U0001f1ec" // flag: Diego Garcia FlagForDjibouti Emoji = "\U0001f1e9\U0001f1ef" // flag: Djibouti FlagForDenmark Emoji = "\U0001f1e9\U0001f1f0" // flag: Denmark FlagForDominica Emoji = "\U0001f1e9\U0001f1f2" // flag: Dominica FlagForDominicanRepublic Emoji = "\U0001f1e9\U0001f1f4" // flag: Dominican Republic FlagForAlgeria Emoji = "\U0001f1e9\U0001f1ff" // flag: Algeria FlagForCeutaAndMelilla Emoji = "\U0001f1ea\U0001f1e6" // flag: Ceuta & Melilla FlagForEcuador Emoji = "\U0001f1ea\U0001f1e8" // flag: Ecuador FlagForEstonia Emoji = "\U0001f1ea\U0001f1ea" // flag: Estonia FlagForEgypt Emoji = "\U0001f1ea\U0001f1ec" // flag: Egypt FlagForWesternSahara Emoji = "\U0001f1ea\U0001f1ed" // flag: Western Sahara FlagForEritrea Emoji = "\U0001f1ea\U0001f1f7" // flag: Eritrea FlagForSpain Emoji = "\U0001f1ea\U0001f1f8" // flag: Spain FlagForEthiopia Emoji = "\U0001f1ea\U0001f1f9" // flag: Ethiopia FlagForEuropeanUnion Emoji = "\U0001f1ea\U0001f1fa" // flag: European Union FlagForFinland Emoji = "\U0001f1eb\U0001f1ee" // flag: Finland FlagForFiji Emoji = "\U0001f1eb\U0001f1ef" // flag: Fiji FlagForFalklandIslands Emoji = "\U0001f1eb\U0001f1f0" // flag: Falkland Islands FlagForMicronesia Emoji = "\U0001f1eb\U0001f1f2" // flag: Micronesia FlagForFaroeIslands Emoji = "\U0001f1eb\U0001f1f4" // flag: Faroe Islands FlagForFrance Emoji = "\U0001f1eb\U0001f1f7" // flag: France FlagForGabon Emoji = "\U0001f1ec\U0001f1e6" // flag: Gabon FlagForUnitedKingdom Emoji = "\U0001f1ec\U0001f1e7" // flag: United Kingdom FlagForGrenada Emoji = "\U0001f1ec\U0001f1e9" // flag: Grenada FlagForGeorgia Emoji = "\U0001f1ec\U0001f1ea" // flag: Georgia FlagForFrenchGuiana Emoji = "\U0001f1ec\U0001f1eb" // flag: French Guiana FlagForGuernsey Emoji = "\U0001f1ec\U0001f1ec" // flag: Guernsey FlagForGhana Emoji = "\U0001f1ec\U0001f1ed" // flag: Ghana FlagForGibraltar Emoji = "\U0001f1ec\U0001f1ee" // flag: Gibraltar FlagForGreenland Emoji = "\U0001f1ec\U0001f1f1" // flag: Greenland FlagForGambia Emoji = "\U0001f1ec\U0001f1f2" // flag: Gambia FlagForGuinea Emoji = "\U0001f1ec\U0001f1f3" // flag: Guinea FlagForGuadeloupe Emoji = "\U0001f1ec\U0001f1f5" // flag: Guadeloupe FlagForEquatorialGuinea Emoji = "\U0001f1ec\U0001f1f6" // flag: Equatorial Guinea FlagForGreece Emoji = "\U0001f1ec\U0001f1f7" // flag: Greece FlagForSouthGeorgiaAndSouthSandwichIslands Emoji = "\U0001f1ec\U0001f1f8" // flag: South Georgia & South Sandwich Islands FlagForGuatemala Emoji = "\U0001f1ec\U0001f1f9" // flag: Guatemala FlagForGuam Emoji = "\U0001f1ec\U0001f1fa" // flag: Guam FlagForGuineaBissau Emoji = "\U0001f1ec\U0001f1fc" // flag: Guinea-Bissau FlagForGuyana Emoji = "\U0001f1ec\U0001f1fe" // flag: Guyana FlagForHongKongSarChina Emoji = "\U0001f1ed\U0001f1f0" // flag: Hong Kong SAR China FlagForHeardAndMcdonaldIslands Emoji = "\U0001f1ed\U0001f1f2" // flag: Heard & McDonald Islands FlagForHonduras Emoji = "\U0001f1ed\U0001f1f3" // flag: Honduras FlagForCroatia Emoji = "\U0001f1ed\U0001f1f7" // flag: Croatia FlagForHaiti Emoji = "\U0001f1ed\U0001f1f9" // flag: Haiti FlagForHungary Emoji = "\U0001f1ed\U0001f1fa" // flag: Hungary FlagForCanaryIslands Emoji = "\U0001f1ee\U0001f1e8" // flag: Canary Islands FlagForIndonesia Emoji = "\U0001f1ee\U0001f1e9" // flag: Indonesia FlagForIreland Emoji = "\U0001f1ee\U0001f1ea" // flag: Ireland FlagForIsrael Emoji = "\U0001f1ee\U0001f1f1" // flag: Israel FlagForIsleOfMan Emoji = "\U0001f1ee\U0001f1f2" // flag: Isle of Man FlagForIndia Emoji = "\U0001f1ee\U0001f1f3" // flag: India FlagForBritishIndianOceanTerritory Emoji = "\U0001f1ee\U0001f1f4" // flag: British Indian Ocean Territory FlagForIraq Emoji = "\U0001f1ee\U0001f1f6" // flag: Iraq FlagForIran Emoji = "\U0001f1ee\U0001f1f7" // flag: Iran FlagForIceland Emoji = "\U0001f1ee\U0001f1f8" // flag: Iceland FlagForItaly Emoji = "\U0001f1ee\U0001f1f9" // flag: Italy FlagForJersey Emoji = "\U0001f1ef\U0001f1ea" // flag: Jersey FlagForJamaica Emoji = "\U0001f1ef\U0001f1f2" // flag: Jamaica FlagForJordan Emoji = "\U0001f1ef\U0001f1f4" // flag: Jordan FlagForJapan Emoji = "\U0001f1ef\U0001f1f5" // flag: Japan FlagForKenya Emoji = "\U0001f1f0\U0001f1ea" // flag: Kenya FlagForKyrgyzstan Emoji = "\U0001f1f0\U0001f1ec" // flag: Kyrgyzstan FlagForCambodia Emoji = "\U0001f1f0\U0001f1ed" // flag: Cambodia FlagForKiribati Emoji = "\U0001f1f0\U0001f1ee" // flag: Kiribati FlagForComoros Emoji = "\U0001f1f0\U0001f1f2" // flag: Comoros FlagForStKittsAndNevis Emoji = "\U0001f1f0\U0001f1f3" // flag: St. Kitts & Nevis FlagForNorthKorea Emoji = "\U0001f1f0\U0001f1f5" // flag: North Korea FlagForSouthKorea Emoji = "\U0001f1f0\U0001f1f7" // flag: South Korea FlagForKuwait Emoji = "\U0001f1f0\U0001f1fc" // flag: Kuwait FlagForCaymanIslands Emoji = "\U0001f1f0\U0001f1fe" // flag: Cayman Islands FlagForKazakhstan Emoji = "\U0001f1f0\U0001f1ff" // flag: Kazakhstan FlagForLaos Emoji = "\U0001f1f1\U0001f1e6" // flag: Laos FlagForLebanon Emoji = "\U0001f1f1\U0001f1e7" // flag: Lebanon FlagForStLucia Emoji = "\U0001f1f1\U0001f1e8" // flag: St. Lucia FlagForLiechtenstein Emoji = "\U0001f1f1\U0001f1ee" // flag: Liechtenstein FlagForSriLanka Emoji = "\U0001f1f1\U0001f1f0" // flag: Sri Lanka FlagForLiberia Emoji = "\U0001f1f1\U0001f1f7" // flag: Liberia FlagForLesotho Emoji = "\U0001f1f1\U0001f1f8" // flag: Lesotho FlagForLithuania Emoji = "\U0001f1f1\U0001f1f9" // flag: Lithuania FlagForLuxembourg Emoji = "\U0001f1f1\U0001f1fa" // flag: Luxembourg FlagForLatvia Emoji = "\U0001f1f1\U0001f1fb" // flag: Latvia FlagForLibya Emoji = "\U0001f1f1\U0001f1fe" // flag: Libya FlagForMorocco Emoji = "\U0001f1f2\U0001f1e6" // flag: Morocco FlagForMonaco Emoji = "\U0001f1f2\U0001f1e8" // flag: Monaco FlagForMoldova Emoji = "\U0001f1f2\U0001f1e9" // flag: Moldova FlagForMontenegro Emoji = "\U0001f1f2\U0001f1ea" // flag: Montenegro FlagForStMartin Emoji = "\U0001f1f2\U0001f1eb" // flag: St. Martin FlagForMadagascar Emoji = "\U0001f1f2\U0001f1ec" // flag: Madagascar FlagForMarshallIslands Emoji = "\U0001f1f2\U0001f1ed" // flag: Marshall Islands FlagForNorthMacedonia Emoji = "\U0001f1f2\U0001f1f0" // flag: North Macedonia FlagForMali Emoji = "\U0001f1f2\U0001f1f1" // flag: Mali FlagForMyanmarBurma Emoji = "\U0001f1f2\U0001f1f2" // flag: Myanmar (Burma) FlagForMongolia Emoji = "\U0001f1f2\U0001f1f3" // flag: Mongolia FlagForMacaoSarChina Emoji = "\U0001f1f2\U0001f1f4" // flag: Macao SAR China FlagForNorthernMarianaIslands Emoji = "\U0001f1f2\U0001f1f5" // flag: Northern Mariana Islands FlagForMartinique Emoji = "\U0001f1f2\U0001f1f6" // flag: Martinique FlagForMauritania Emoji = "\U0001f1f2\U0001f1f7" // flag: Mauritania FlagForMontserrat Emoji = "\U0001f1f2\U0001f1f8" // flag: Montserrat FlagForMalta Emoji = "\U0001f1f2\U0001f1f9" // flag: Malta FlagForMauritius Emoji = "\U0001f1f2\U0001f1fa" // flag: Mauritius FlagForMaldives Emoji = "\U0001f1f2\U0001f1fb" // flag: Maldives FlagForMalawi Emoji = "\U0001f1f2\U0001f1fc" // flag: Malawi FlagForMexico Emoji = "\U0001f1f2\U0001f1fd" // flag: Mexico FlagForMalaysia Emoji = "\U0001f1f2\U0001f1fe" // flag: Malaysia FlagForMozambique Emoji = "\U0001f1f2\U0001f1ff" // flag: Mozambique FlagForNamibia Emoji = "\U0001f1f3\U0001f1e6" // flag: Namibia FlagForNewCaledonia Emoji = "\U0001f1f3\U0001f1e8" // flag: New Caledonia FlagForNiger Emoji = "\U0001f1f3\U0001f1ea" // flag: Niger FlagForNorfolkIsland Emoji = "\U0001f1f3\U0001f1eb" // flag: Norfolk Island FlagForNigeria Emoji = "\U0001f1f3\U0001f1ec" // flag: Nigeria FlagForNicaragua Emoji = "\U0001f1f3\U0001f1ee" // flag: Nicaragua FlagForNetherlands Emoji = "\U0001f1f3\U0001f1f1" // flag: Netherlands FlagForNorway Emoji = "\U0001f1f3\U0001f1f4" // flag: Norway FlagForNepal Emoji = "\U0001f1f3\U0001f1f5" // flag: Nepal FlagForNauru Emoji = "\U0001f1f3\U0001f1f7" // flag: Nauru FlagForNiue Emoji = "\U0001f1f3\U0001f1fa" // flag: Niue FlagForNewZealand Emoji = "\U0001f1f3\U0001f1ff" // flag: New Zealand FlagForOman Emoji = "\U0001f1f4\U0001f1f2" // flag: Oman FlagForPanama Emoji = "\U0001f1f5\U0001f1e6" // flag: Panama FlagForPeru Emoji = "\U0001f1f5\U0001f1ea" // flag: Peru FlagForFrenchPolynesia Emoji = "\U0001f1f5\U0001f1eb" // flag: French Polynesia FlagForPapuaNewGuinea Emoji = "\U0001f1f5\U0001f1ec" // flag: Papua New Guinea FlagForPhilippines Emoji = "\U0001f1f5\U0001f1ed" // flag: Philippines FlagForPakistan Emoji = "\U0001f1f5\U0001f1f0" // flag: Pakistan FlagForPoland Emoji = "\U0001f1f5\U0001f1f1" // flag: Poland FlagForStPierreAndMiquelon Emoji = "\U0001f1f5\U0001f1f2" // flag: St. Pierre & Miquelon FlagForPitcairnIslands Emoji = "\U0001f1f5\U0001f1f3" // flag: Pitcairn Islands FlagForPuertoRico Emoji = "\U0001f1f5\U0001f1f7" // flag: Puerto Rico FlagForPalestinianTerritories Emoji = "\U0001f1f5\U0001f1f8" // flag: Palestinian Territories FlagForPortugal Emoji = "\U0001f1f5\U0001f1f9" // flag: Portugal FlagForPalau Emoji = "\U0001f1f5\U0001f1fc" // flag: Palau FlagForParaguay Emoji = "\U0001f1f5\U0001f1fe" // flag: Paraguay FlagForQatar Emoji = "\U0001f1f6\U0001f1e6" // flag: Qatar FlagForReunion Emoji = "\U0001f1f7\U0001f1ea" // flag: Réunion FlagForRomania Emoji = "\U0001f1f7\U0001f1f4" // flag: Romania FlagForSerbia Emoji = "\U0001f1f7\U0001f1f8" // flag: Serbia FlagForRussia Emoji = "\U0001f1f7\U0001f1fa" // flag: Russia FlagForRwanda Emoji = "\U0001f1f7\U0001f1fc" // flag: Rwanda FlagForSaudiArabia Emoji = "\U0001f1f8\U0001f1e6" // flag: Saudi Arabia FlagForSolomonIslands Emoji = "\U0001f1f8\U0001f1e7" // flag: Solomon Islands FlagForSeychelles Emoji = "\U0001f1f8\U0001f1e8" // flag: Seychelles FlagForSudan Emoji = "\U0001f1f8\U0001f1e9" // flag: Sudan FlagForSweden Emoji = "\U0001f1f8\U0001f1ea" // flag: Sweden FlagForSingapore Emoji = "\U0001f1f8\U0001f1ec" // flag: Singapore FlagForStHelena Emoji = "\U0001f1f8\U0001f1ed" // flag: St. Helena FlagForSlovenia Emoji = "\U0001f1f8\U0001f1ee" // flag: Slovenia FlagForSvalbardAndJanMayen Emoji = "\U0001f1f8\U0001f1ef" // flag: Svalbard & Jan Mayen FlagForSlovakia Emoji = "\U0001f1f8\U0001f1f0" // flag: Slovakia FlagForSierraLeone Emoji = "\U0001f1f8\U0001f1f1" // flag: Sierra Leone FlagForSanMarino Emoji = "\U0001f1f8\U0001f1f2" // flag: San Marino FlagForSenegal Emoji = "\U0001f1f8\U0001f1f3" // flag: Senegal FlagForSomalia Emoji = "\U0001f1f8\U0001f1f4" // flag: Somalia FlagForSuriname Emoji = "\U0001f1f8\U0001f1f7" // flag: Suriname FlagForSouthSudan Emoji = "\U0001f1f8\U0001f1f8" // flag: South Sudan FlagForSaoTomeAndPrincipe Emoji = "\U0001f1f8\U0001f1f9" // flag: São Tomé & Príncipe FlagForElSalvador Emoji = "\U0001f1f8\U0001f1fb" // flag: El Salvador FlagForSintMaarten Emoji = "\U0001f1f8\U0001f1fd" // flag: Sint Maarten FlagForSyria Emoji = "\U0001f1f8\U0001f1fe" // flag: Syria FlagForEswatini Emoji = "\U0001f1f8\U0001f1ff" // flag: Eswatini FlagForTristanDaCunha Emoji = "\U0001f1f9\U0001f1e6" // flag: Tristan da Cunha FlagForTurksAndCaicosIslands Emoji = "\U0001f1f9\U0001f1e8" // flag: Turks & Caicos Islands FlagForChad Emoji = "\U0001f1f9\U0001f1e9" // flag: Chad FlagForFrenchSouthernTerritories Emoji = "\U0001f1f9\U0001f1eb" // flag: French Southern Territories FlagForTogo Emoji = "\U0001f1f9\U0001f1ec" // flag: Togo FlagForThailand Emoji = "\U0001f1f9\U0001f1ed" // flag: Thailand FlagForTajikistan Emoji = "\U0001f1f9\U0001f1ef" // flag: Tajikistan FlagForTokelau Emoji = "\U0001f1f9\U0001f1f0" // flag: Tokelau FlagForTimorLeste Emoji = "\U0001f1f9\U0001f1f1" // flag: Timor-Leste FlagForTurkmenistan Emoji = "\U0001f1f9\U0001f1f2" // flag: Turkmenistan FlagForTunisia Emoji = "\U0001f1f9\U0001f1f3" // flag: Tunisia FlagForTonga Emoji = "\U0001f1f9\U0001f1f4" // flag: Tonga FlagForTurkey Emoji = "\U0001f1f9\U0001f1f7" // flag: Turkey FlagForTrinidadAndTobago Emoji = "\U0001f1f9\U0001f1f9" // flag: Trinidad & Tobago FlagForTuvalu Emoji = "\U0001f1f9\U0001f1fb" // flag: Tuvalu FlagForTaiwan Emoji = "\U0001f1f9\U0001f1fc" // flag: Taiwan FlagForTanzania Emoji = "\U0001f1f9\U0001f1ff" // flag: Tanzania FlagForUkraine Emoji = "\U0001f1fa\U0001f1e6" // flag: Ukraine FlagForUganda Emoji = "\U0001f1fa\U0001f1ec" // flag: Uganda FlagForUsOutlyingIslands Emoji = "\U0001f1fa\U0001f1f2" // flag: U.S. Outlying Islands FlagForUnitedNations Emoji = "\U0001f1fa\U0001f1f3" // flag: United Nations FlagForUnitedStates Emoji = "\U0001f1fa\U0001f1f8" // flag: United States FlagForUruguay Emoji = "\U0001f1fa\U0001f1fe" // flag: Uruguay FlagForUzbekistan Emoji = "\U0001f1fa\U0001f1ff" // flag: Uzbekistan FlagForVaticanCity Emoji = "\U0001f1fb\U0001f1e6" // flag: Vatican City FlagForStVincentAndGrenadines Emoji = "\U0001f1fb\U0001f1e8" // flag: St. Vincent & Grenadines FlagForVenezuela Emoji = "\U0001f1fb\U0001f1ea" // flag: Venezuela FlagForBritishVirginIslands Emoji = "\U0001f1fb\U0001f1ec" // flag: British Virgin Islands FlagForUsVirginIslands Emoji = "\U0001f1fb\U0001f1ee" // flag: U.S. Virgin Islands FlagForVietnam Emoji = "\U0001f1fb\U0001f1f3" // flag: Vietnam FlagForVanuatu Emoji = "\U0001f1fb\U0001f1fa" // flag: Vanuatu FlagForWallisAndFutuna Emoji = "\U0001f1fc\U0001f1eb" // flag: Wallis & Futuna FlagForSamoa Emoji = "\U0001f1fc\U0001f1f8" // flag: Samoa FlagForKosovo Emoji = "\U0001f1fd\U0001f1f0" // flag: Kosovo FlagForYemen Emoji = "\U0001f1fe\U0001f1ea" // flag: Yemen FlagForMayotte Emoji = "\U0001f1fe\U0001f1f9" // flag: Mayotte FlagForSouthAfrica Emoji = "\U0001f1ff\U0001f1e6" // flag: South Africa FlagForZambia Emoji = "\U0001f1ff\U0001f1f2" // flag: Zambia FlagForZimbabwe Emoji = "\U0001f1ff\U0001f1fc" // flag: Zimbabwe // SUBGROUP: subdivision-flag FlagForEngland Emoji = "\U0001f3f4\U000e0067\U000e0062\U000e0065\U000e006e\U000e0067\U000e007f" // flag: England FlagForScotland Emoji = "\U0001f3f4\U000e0067\U000e0062\U000e0073\U000e0063\U000e0074\U000e007f" // flag: Scotland FlagForWales Emoji = "\U0001f3f4\U000e0067\U000e0062\U000e0077\U000e006c\U000e0073\U000e007f" // flag: Wales ) emoji-1.0.0/doc.go000066400000000000000000000001041363214506500137070ustar00rootroot00000000000000/* Package emoji makes working with emojis easier. */ package emoji emoji-1.0.0/emoji.go000066400000000000000000000053771363214506500142660ustar00rootroot00000000000000package emoji import ( "fmt" "strings" ) // Base attributes const ( TonePlaceholder = "@" flagBaseIndex = '\U0001F1E6' - 'a' ) // Skin tone colors const ( Default Tone = "" Light Tone = "\U0001F3FB" MediumLight Tone = "\U0001F3FC" Medium Tone = "\U0001F3FD" MediumDark Tone = "\U0001F3FE" Dark Tone = "\U0001F3FF" ) // Emoji defines an emoji object with no skin variations. type Emoji string // String returns string representation of the simple emoji. func (e Emoji) String() string { return string(e) } // EmojiWithTone defines an emoji object that has skin tone options. type EmojiWithTone struct { oneTonedCode string twoTonedCode string defaultTone Tone } // newEmojiWithTone constructs a new emoji object that has skin tone options. func newEmojiWithTone(codes ...string) EmojiWithTone { if len(codes) == 0 { return EmojiWithTone{} } one := codes[0] two := codes[0] if len(codes) > 1 { two = codes[1] } return EmojiWithTone{ oneTonedCode: one, twoTonedCode: two, } } // withDefaultTone sets default tone for an emoji and returns it. func (e EmojiWithTone) withDefaultTone(tone string) EmojiWithTone { e.defaultTone = Tone(tone) return e } // String returns string representation of the emoji with default skin tone. func (e EmojiWithTone) String() string { return strings.ReplaceAll(e.oneTonedCode, TonePlaceholder, e.defaultTone.String()) } // Tone returns string representation of the emoji with given skin tone. func (e EmojiWithTone) Tone(tones ...Tone) string { // if no tone given, return with default skin tone if len(tones) == 0 { return e.String() } str := e.twoTonedCode replaceCount := 1 // if one tone given or emoji doesn't have twoTonedCode, use oneTonedCode // Also, replace all with one tone if len(tones) == 1 { str = e.oneTonedCode replaceCount = -1 } // replace tone one by one for _, t := range tones { // use emoji's default tone if t == Default { t = e.defaultTone } str = strings.Replace(str, TonePlaceholder, t.String(), replaceCount) } return str } // Tone defines skin tone options for emojis. type Tone string // String returns string representation of the skin tone. func (t Tone) String() string { return string(t) } // CountryFlag returns a country flag emoji from given country code. // Full list of country codes: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 func CountryFlag(code string) (Emoji, error) { if len(code) != 2 { return "", fmt.Errorf("not valid country code: %q", code) } code = strings.ToLower(code) flag := countryCodeLetter(code[0]) + countryCodeLetter(code[1]) return Emoji(flag), nil } // countryCodeLetter shifts given letter byte as flagBaseIndex. func countryCodeLetter(l byte) string { return string(rune(l) + flagBaseIndex) } emoji-1.0.0/emoji_test.go000066400000000000000000000074311363214506500153160ustar00rootroot00000000000000package emoji import ( "testing" ) func TestEmoji(t *testing.T) { tt := []struct { input Emoji expected string }{ {input: GrinningFace, expected: "\U0001F600"}, {input: EyeInSpeechBubble, expected: "\U0001F441\uFE0F\u200D\U0001F5E8\uFE0F"}, {input: ManGenie, expected: "\U0001F9DE\u200D\u2642\uFE0F"}, {input: Badger, expected: "\U0001F9A1"}, {input: FlagForTurkey, expected: "\U0001F1F9\U0001F1F7"}, } for i, tc := range tt { got := tc.input.String() if got != tc.expected { t.Fatalf("test case %v fail: got: %v, expected: %v", i+1, got, tc.expected) } } } func TestEmojiWithTone(t *testing.T) { tt := []struct { input EmojiWithTone tone Tone expected string }{ {input: WavingHand, tone: Tone(""), expected: "\U0001F44B"}, {input: WavingHand, tone: Default, expected: "\U0001F44B"}, {input: WavingHand, tone: Light, expected: "\U0001F44B\U0001F3FB"}, {input: WavingHand, tone: MediumLight, expected: "\U0001F44B\U0001F3FC"}, {input: WavingHand, tone: Medium, expected: "\U0001F44B\U0001F3FD"}, {input: WavingHand, tone: MediumDark, expected: "\U0001F44B\U0001F3FE"}, {input: WavingHand, tone: Dark, expected: "\U0001F44B\U0001F3FF"}, } for i, tc := range tt { got := tc.input.Tone(tc.tone) if got != tc.expected { t.Fatalf("test case %v fail: got: %v, expected: %v", i+1, got, tc.expected) } } } func TestEmojiWithTones(t *testing.T) { tt := []struct { input EmojiWithTone tones []Tone expected string }{ {input: WomanAndManHoldingHands, tones: []Tone{}, expected: "\U0001f46b"}, {input: WomanAndManHoldingHands, tones: []Tone{MediumLight}, expected: "\U0001f46b\U0001F3FC"}, {input: WomanAndManHoldingHands, tones: []Tone{Medium, Dark}, expected: "\U0001f469\U0001F3FD\u200d\U0001f91d\u200d\U0001f468\U0001F3FF"}, } for i, tc := range tt { got := tc.input.Tone(tc.tones...) if got != tc.expected { t.Fatalf("test case %v fail: got: %v, expected: %v", i+1, got, tc.expected) } } } func TestCountryFlag(t *testing.T) { tt := []struct { input string expected Emoji }{ {input: "tr", expected: FlagForTurkey}, {input: "TR", expected: FlagForTurkey}, {input: "us", expected: FlagForUnitedStates}, {input: "gb", expected: FlagForUnitedKingdom}, } for i, tc := range tt { got, err := CountryFlag(tc.input) if err != nil { t.Fatalf("test case %v fail: %v", i+1, err) } if got != tc.expected { t.Fatalf("test case %v fail: got: %v, expected: %v", i+1, got, tc.expected) } } } func TestCountryFlagError(t *testing.T) { tt := []struct { input string fail bool }{ {input: "tr", fail: false}, {input: "a", fail: true}, {input: "tur", fail: true}, } for i, tc := range tt { _, err := CountryFlag(tc.input) if (err != nil) != tc.fail { t.Fatalf("test case %v fail: %v", i+1, err) } } } func TestNewEmojiTone(t *testing.T) { tt := []struct { input []string expected EmojiWithTone }{ {input: nil, expected: EmojiWithTone{}}, {input: []string{}, expected: EmojiWithTone{}}, {input: []string{"\U0001f64b@"}, expected: PersonRaisingHand}, { input: []string{"\U0001f46b@", "\U0001f469@\u200d\U0001f91d\u200d\U0001f468@"}, expected: WomanAndManHoldingHands, }, } for i, tc := range tt { got := newEmojiWithTone(tc.input...) if got != tc.expected { t.Fatalf("test case %v fail: got: %v, expected: %v", i+1, got, tc.expected) } } } func BenchmarkEmoji(b *testing.B) { for n := 0; n < b.N; n++ { _ = WavingHand.String() } } func BenchmarkEmojiWithTone(b *testing.B) { for n := 0; n < b.N; n++ { _ = WavingHand.Tone(Medium) } } func BenchmarkEmojiWithToneTwo(b *testing.B) { for n := 0; n < b.N; n++ { _ = WomanAndManHoldingHands.Tone(Medium, Dark) } } func BenchmarkCountryFlag(b *testing.B) { for n := 0; n < b.N; n++ { _, _ = CountryFlag("tr") } } emoji-1.0.0/fmt.go000066400000000000000000000027121363214506500137370ustar00rootroot00000000000000package emoji import ( "fmt" "io" ) // Sprint wraps fmt.Sprint with emoji support func Sprint(a ...interface{}) string { return Parse(fmt.Sprint(a...)) } // Sprintf wraps fmt.Sprintf with emoji support func Sprintf(format string, a ...interface{}) string { return Parse(fmt.Sprintf(format, a...)) } // Sprintln wraps fmt.Sprintln with emoji support func Sprintln(a ...interface{}) string { return Parse(fmt.Sprintln(a...)) } // Print wraps fmt.Print with emoji support func Print(a ...interface{}) (n int, err error) { return fmt.Print(Sprint(a...)) } // Println wraps fmt.Println with emoji support func Println(a ...interface{}) (n int, err error) { return fmt.Println(Sprint(a...)) } // Printf wraps fmt.Printf with emoji support func Printf(format string, a ...interface{}) (n int, err error) { return fmt.Print(Sprintf(format, a...)) } // Fprint wraps fmt.Fprint with emoji support func Fprint(w io.Writer, a ...interface{}) (n int, err error) { return fmt.Fprint(w, Sprint(a...)) } // Fprintf wraps fmt.Fprintf with emoji support func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error) { return fmt.Fprint(w, Sprintf(format, a...)) } // Fprintln wraps fmt.Fprintln with emoji support func Fprintln(w io.Writer, a ...interface{}) (n int, err error) { return fmt.Fprintln(w, Sprint(a...)) } // Errorf wraps fmt.Errorf with emoji support func Errorf(format string, a ...interface{}) error { return fmt.Errorf(Sprintf(format, a...)) } emoji-1.0.0/fmt_test.go000066400000000000000000000070311363214506500147750ustar00rootroot00000000000000package emoji import ( "bytes" "fmt" "testing" ) func TestSprint(t *testing.T) { var ( input = "I am :man_technologist: from :flag_for_turkey:. Tests are :thumbs_up:" expected = fmt.Sprintf("I am %v from %v. Tests are %v", ManTechnologist, FlagForTurkey, ThumbsUp) ) got := Sprint(input) if got != expected { t.Fatalf("test case fail: got: %v, expected: %v", got, expected) } } func TestSprintf(t *testing.T) { var ( input = "I am :man_technologist:. Tests are :thumbs_up:. %v is formatted." args = "this string" expected = fmt.Sprintf("I am %v. Tests are %v. %v is formatted.", ManTechnologist, ThumbsUp, args) ) got := Sprintf(input, args) if got != expected { t.Fatalf("test case fail: got: %v, expected: %v", got, expected) } } func TestSprintln(t *testing.T) { var ( input = "I am :man_technologist: from :flag_for_turkey:. Tests are :thumbs_up:" expected = fmt.Sprintf("I am %v from %v. Tests are %v\n", ManTechnologist, FlagForTurkey, ThumbsUp) ) got := Sprintln(input) if got != expected { t.Fatalf("test case fail: got: %v, expected: %v", got, expected) } } func TestPrint(t *testing.T) { var ( input = "I am :man_technologist: from :flag_for_turkey:. Tests are :thumbs_up:" ) n, err := Print(input) if err != nil || n == 0 { t.Fatalf("test case fail n: %v: %v", n, err) } } func TestPrintf(t *testing.T) { var ( input = "I am :man_technologist:. Tests are :thumbs_up:. %v is formatted." args = "this string" ) n, err := Printf(input, args) if err != nil || n == 0 { t.Fatalf("test case fail n: %v: %v", n, err) } } func TestPrintln(t *testing.T) { var ( input = "I am :man_technologist: from :flag_for_turkey:. Tests are :thumbs_up:" ) n, err := Println(input) if err != nil || n == 0 { t.Fatalf("test case fail n: %v: %v", n, err) } } func TestFprint(t *testing.T) { var ( input = "I am :man_technologist: from :flag_for_turkey:. Tests are :thumbs_up:" expected = fmt.Sprintf("I am %v from %v. Tests are %v", ManTechnologist, FlagForTurkey, ThumbsUp) ) var w bytes.Buffer _, err := Fprint(&w, input) if err != nil { t.Fatalf("test case fail: %v", err) } got := w.String() if got != expected { t.Fatalf("test case fail: got: %v, expected: %v", got, expected) } } func TestFprintf(t *testing.T) { var ( input = "I am :man_technologist:. Tests are :thumbs_up:. %v is formatted." args = "this string" expected = fmt.Sprintf("I am %v. Tests are %v. %v is formatted.", ManTechnologist, ThumbsUp, args) ) var w bytes.Buffer _, err := Fprintf(&w, input, args) if err != nil { t.Fatalf("test case fail: %v", err) } got := w.String() if got != expected { t.Fatalf("test case fail: got: %v, expected: %v", got, expected) } } func TestFprintln(t *testing.T) { var ( input = "I am :man_technologist: from :flag_for_turkey:. Tests are :thumbs_up:" expected = fmt.Sprintf("I am %v from %v. Tests are %v\n", ManTechnologist, FlagForTurkey, ThumbsUp) ) var w bytes.Buffer _, err := Fprintln(&w, input) if err != nil { t.Fatalf("test case fail: %v", err) } got := w.String() if got != expected { t.Fatalf("test case fail: got: %v, expected: %v", got, expected) } } func TestErrorf(t *testing.T) { var ( input = "I am :man_technologist:. Tests are :thumbs_up:. %v is formatted." args = "this string" expected = fmt.Sprintf("I am %v. Tests are %v. %v is formatted.", ManTechnologist, ThumbsUp, args) ) got := Errorf(input, args).Error() if got != expected { t.Fatalf("test case fail: got: %v, expected: %v", got, expected) } } emoji-1.0.0/go.mod000066400000000000000000000000531363214506500137240ustar00rootroot00000000000000module github.com/enescakir/emoji go 1.13 emoji-1.0.0/go.sum000066400000000000000000000000001363214506500137410ustar00rootroot00000000000000emoji-1.0.0/internal/000077500000000000000000000000001363214506500144345ustar00rootroot00000000000000emoji-1.0.0/internal/generator/000077500000000000000000000000001363214506500164225ustar00rootroot00000000000000emoji-1.0.0/internal/generator/constants.go.tmpl000066400000000000000000000002521363214506500217370ustar00rootroot00000000000000package emoji // Code generated by github.com/enescakir/emoji/internal/generator DO NOT EDIT. // Source: {{ .Link }} // Create at: {{ .Date }} var ( {{ .Data }} ) emoji-1.0.0/internal/generator/gemoji.go000066400000000000000000000012421363214506500202220ustar00rootroot00000000000000package main import "encoding/json" const gemojiURL = "https://raw.githubusercontent.com/github/gemoji/master/db/emoji.json" type gemoji struct { Emoji string `json:"emoji"` Aliases []string `json:"aliases"` } func fetchGemojis() (map[string]string, error) { b, err := fetchData(gemojiURL) if err != nil { return nil, err } var gemojis []gemoji r := make(map[string]string) if err = json.Unmarshal(b, &gemojis); err != nil { return nil, err } for _, gemoji := range gemojis { for _, alias := range gemoji.Aliases { if len(alias) == 0 || len(gemoji.Emoji) == 0 { continue } r[makeAlias(alias)] = gemoji.Emoji } } return r, nil } emoji-1.0.0/internal/generator/main.go000066400000000000000000000104221363214506500176740ustar00rootroot00000000000000package main import ( "bufio" "bytes" "fmt" "go/format" "io" "io/ioutil" "net/http" "os" "sort" "text/template" "time" ) const ( constantsFile = "constants.go" aliasesFile = "map.go" ) // customEmojis is the list of emojis which unicode and gemoji databases don't have. var customEmojis = map[string]string{ ":robot_face:": "\U0001f916", // slack } func main() { emojis, err := fetchEmojis() if err != nil { panic(err) } gemojis, err := fetchGemojis() if err != nil { panic(err) } constants := generateConstants(emojis) aliases := generateAliases(emojis, gemojis) if err = save(constantsFile, emojiListURL, constants); err != nil { panic(err) } if err = save(aliasesFile, gemojiURL, aliases); err != nil { panic(err) } } func generateConstants(emojis *groups) string { var res string for _, grp := range emojis.Groups { res += fmt.Sprintf("\n// GROUP: %v\n", grp.Name) for _, subgrp := range grp.Subgroups { res += fmt.Sprintf("// SUBGROUP: %v\n", subgrp.Name) for _, c := range subgrp.Constants { res += emojiConstant(subgrp.Emojis[c]) } } } return res } func emojiConstant(emojis []emoji) string { basic := emojis[0] switch len(emojis) { case 1: return fmt.Sprintf("%s Emoji = %+q // %s\n", basic.Constant, basic.Code, basic.Name) case 6: oneTonedCode := replaceTones(emojis[1].Code) defaultTone := defaultTone(basic.Code, oneTonedCode) if defaultTone != "" { return fmt.Sprintf("%s EmojiWithTone = newEmojiWithTone(%+q).withDefaultTone(%+q) // %s\n", basic.Constant, oneTonedCode, defaultTone, basic.Name) } return fmt.Sprintf("%s EmojiWithTone = newEmojiWithTone(%+q) // %s\n", basic.Constant, oneTonedCode, basic.Name) case 26: oneTonedCode := replaceTones(emojis[1].Code) twoTonedCode := replaceTones(emojis[2].Code) return fmt.Sprintf("%s EmojiWithTone = newEmojiWithTone(%+q, %+q) // %s\n", basic.Constant, oneTonedCode, twoTonedCode, basic.Name) default: panic(fmt.Errorf("not expected emoji count for a constant: %v", len(emojis))) } } func generateAliases(emojis *groups, gemojis map[string]string) string { var aliases []string var emojiMap = make(map[string]string) for _, grp := range emojis.Groups { for _, subgrp := range grp.Subgroups { for _, c := range subgrp.Constants { emoji := subgrp.Emojis[c][0] alias := makeAlias(snakeCase(emoji.Constant)) aliases = append(aliases, alias) emojiMap[alias] = emoji.Code } } } // add gemoji aliases { for alias, code := range gemojis { _, ok := emojiMap[alias] if !ok { aliases = append(aliases, alias) } emojiMap[alias] = code } } // add custom emoji aliases { for alias, code := range customEmojis { _, ok := emojiMap[alias] if !ok { aliases = append(aliases, alias) } emojiMap[alias] = code } } var r string sort.Strings(aliases) for _, alias := range aliases { r += fmt.Sprintf("%q: %+q,\n", alias, emojiMap[alias]) } return r } func save(filename, url, data string) error { tmpl, err := template.ParseFiles(fmt.Sprintf("internal/generator/%v.tmpl", filename)) if err != nil { return err } d := struct { Link string Date string Data string }{ Link: url, Date: time.Now().Format(time.RFC3339), Data: data, } var w bytes.Buffer if err = tmpl.Execute(&w, d); err != nil { return err } content, err := format.Source(w.Bytes()) if err != nil { return fmt.Errorf("could not format file: %v", err) } file, err := os.Create(filename) if err != nil { return fmt.Errorf("could not create file: %v", err) } defer file.Close() if _, err := file.Write(content); err != nil { return fmt.Errorf("could not write to file: %v", err) } return nil } func fetchData(url string) ([]byte, error) { resp, err := http.Get(url) if err != nil { return nil, err } defer resp.Body.Close() // Check server response if resp.StatusCode != http.StatusOK { return nil, fmt.Errorf("bad status: %s", resp.Status) } b, err := ioutil.ReadAll(resp.Body) if err != nil { return nil, err } return b, nil } func readLines(b []byte, fn func(string)) error { reader := bufio.NewReader(bytes.NewReader(b)) var line string var err error for { line, err = reader.ReadString('\n') if err != nil { break } fn(line) } if err != io.EOF { return err } return nil } emoji-1.0.0/internal/generator/map.go.tmpl000066400000000000000000000003061363214506500205000ustar00rootroot00000000000000package emoji // Code generated by github.com/enescakir/emoji/internal/generator DO NOT EDIT. // Source: {{ .Link }} // Create at: {{ .Date }} var emojiMap = map[string]string{ {{ .Data }} } emoji-1.0.0/internal/generator/strutil.go000066400000000000000000000046401363214506500204630ustar00rootroot00000000000000package main import ( "regexp" "strings" "unicode" ) var ( nonAlphaNumRegex = regexp.MustCompile(`[^\w\d]+`) whitespaceRegex = regexp.MustCompile(`\s+`) changes = map[string]string{ "*": "asterisk", "#": "hash", "1st": "first", "2nd": "second", "3rd": "third", "&": "and", "U.S.": "US", "Š": "S", "š": "s", "Đ": "Dj", "đ": "dj", "Ž": "Z", "ž": "z", "Č": "C", "č": "c", "Ć": "C", "ć": "c", "À": "A", "Á": "A", "Â": "A", "Ã": "A", "Ä": "A", "Å": "A", "Æ": "A", "Ç": "C", "È": "E", "É": "E", "Ê": "E", "Ë": "E", "Ì": "I", "Í": "I", "Î": "I", "Ï": "I", "Ñ": "N", "Ò": "O", "Ó": "O", "Ô": "O", "Õ": "O", "Ö": "O", "Ø": "O", "Ù": "U", "Ú": "U", "Û": "U", "Ü": "U", "Ý": "Y", "Þ": "B", "ß": "Ss", "à": "a", "á": "a", "â": "a", "ã": "a", "ä": "a", "å": "a", "æ": "a", "ç": "c", "è": "e", "é": "e", "ê": "e", "ë": "e", "ì": "i", "í": "i", "î": "i", "ï": "i", "ð": "o", "ñ": "n", "ò": "o", "ó": "o", "ô": "o", "õ": "o", "ö": "o", "ø": "o", "ù": "u", "ú": "u", "û": "u", "ý": "y", "þ": "b", "ÿ": "y", "Ŕ": "R", "ŕ": "r", } ) // clean makes string more cleaner. // It changes non-latin letters with latin version. // It removes non–alpha-numeric characters. func clean(str string) string { for o, n := range changes { str = strings.ReplaceAll(str, o, n) } str = nonAlphaNumRegex.ReplaceAllString(str, " ") return str } // removeSpaces removes consecutive whitespaces. func removeSpaces(str string) string { return whitespaceRegex.ReplaceAllString(str, "") } // snakeCase converts string to snake_case from PascalCase func snakeCase(str string) string { var output strings.Builder for i, r := range str { switch { case unicode.IsUpper(r): if i != 0 { output.WriteRune('_') } output.WriteRune(unicode.ToLower(r)) case unicode.IsDigit(r): if i != 0 && !unicode.IsDigit(rune(str[i-1])) { output.WriteRune('_') } output.WriteRune(r) default: output.WriteRune(r) } } return output.String() } func makeAlias(str string) string { return ":" + str + ":" } emoji-1.0.0/internal/generator/unicode.go000066400000000000000000000077001363214506500204030ustar00rootroot00000000000000package main import ( "fmt" "regexp" "strconv" "strings" emojipkg "github.com/enescakir/emoji" ) const emojiListURL = "https://unicode.org/Public/emoji/13.0/emoji-test.txt" var ( emojiRegex = regexp.MustCompile(`^(?m)(?P[A-Z\d ]+[A-Z\d])\s+;\s+(fully-qualified|component)\s+#\s+.+\s+E\d+\.\d+ (?P.+)$`) toneRegex = regexp.MustCompile(`:\s.*tone,?`) ) func fetchEmojis() (*groups, error) { var emojis groups b, err := fetchData(emojiListURL) if err != nil { return nil, err } var grp *group var subgrp *subgroup parseLine := func(line string) { switch { case strings.HasPrefix(line, "# group:"): name := strings.TrimSpace(strings.ReplaceAll(line, "# group:", "")) grp = emojis.Append(name) case strings.HasPrefix(line, "# subgroup:"): name := strings.TrimSpace(strings.ReplaceAll(line, "# subgroup:", "")) subgrp = grp.Append(name) case !strings.HasPrefix(line, "#"): if e := newEmoji(line); e != nil { subgrp.Append(*e) } } } if err = readLines(b, parseLine); err != nil { return nil, err } return &emojis, nil } type groups struct { Groups []*group } func (g *groups) Append(grpName string) *group { // fmt.Printf("group: %v\n", grpName) grp := group{Name: grpName} g.Groups = append(g.Groups, &grp) return &grp } type group struct { Name string Subgroups []*subgroup } func (g *group) Append(subgrpName string) *subgroup { // fmt.Printf("subgroup: %v\n", subgrpName) subgrp := subgroup{Name: subgrpName, Emojis: make(map[string][]emoji)} g.Subgroups = append(g.Subgroups, &subgrp) return &subgrp } type subgroup struct { Name string Emojis map[string][]emoji Constants []string } func (s *subgroup) Append(e emoji) { // fmt.Printf("emoji: %v\n", e) if _, ok := s.Emojis[e.Constant]; ok { s.Emojis[e.Constant] = append(s.Emojis[e.Constant], e) } else { s.Emojis[e.Constant] = []emoji{e} s.Constants = append(s.Constants, e.Constant) } } type emoji struct { Name string Constant string Code string Tones []string } func (e *emoji) String() string { return fmt.Sprintf("name:%v, constant:%v, code:%v, tones: %v\n", e.Name, e.Constant, e.Code, e.Tones) } func newEmoji(line string) *emoji { matches := emojiRegex.FindStringSubmatch(line) if len(matches) < 4 { return nil } code := matches[1] name := matches[3] e := emoji{ Name: name, Constant: name, Code: code, Tones: []string{}, } e.extractAttr() e.generateConstant() e.generateUnicode() return &e } func (e *emoji) extractAttr() { parts := strings.Split(e.Constant, ":") if len(parts) < 2 { // no attributes return } c := parts[0] attrs := strings.Split(parts[1], ",") for _, attr := range attrs { switch { case strings.Contains(attr, "tone"): e.Tones = append(e.Tones, attr) case strings.Contains(attr, "beard"): fallthrough case strings.Contains(attr, "hair"): c += " with " + attr case strings.HasPrefix(c, "flag"): c += " for " + attr default: c += " " + attr } } e.Constant = c } func (e *emoji) generateConstant() { c := clean(e.Constant) c = strings.Title(strings.ToLower(c)) c = removeSpaces(c) e.Constant = c } func (e *emoji) generateUnicode() { unicodes := []string{} for _, v := range strings.Split(e.Code, " ") { u, err := strconv.ParseInt(v, 16, 32) if err != nil { panic(fmt.Errorf("unknown unicode: %v", v)) } unicodes = append(unicodes, string(u)) } e.Code = strings.Join(unicodes, "") } func defaultTone(basic, toned string) string { toneInd := strings.IndexRune(toned, []rune(emojipkg.TonePlaceholder)[0]) for i, ch := range basic { if i != toneInd { continue } if ch == '\ufe0f' { return "\ufe0f" } break } return "" } func replaceTones(code string) string { for _, tone := range []emojipkg.Tone{ emojipkg.Light, emojipkg.MediumLight, emojipkg.Medium, emojipkg.MediumDark, emojipkg.Dark, } { code = strings.ReplaceAll(code, tone.String(), emojipkg.TonePlaceholder) } return code } emoji-1.0.0/map.go000066400000000000000000005606401363214506500137370ustar00rootroot00000000000000package emoji // Code generated by github.com/enescakir/emoji/internal/generator DO NOT EDIT. // Source: https://raw.githubusercontent.com/github/gemoji/master/db/emoji.json // Create at: 2020-03-08T15:58:37+03:00 var emojiMap = map[string]string{ ":+1:": "\U0001f44d", ":-1:": "\U0001f44e", ":100:": "\U0001f4af", ":1234:": "\U0001f522", ":1st_place_medal:": "\U0001f947", ":2nd_place_medal:": "\U0001f948", ":3rd_place_medal:": "\U0001f949", ":8ball:": "\U0001f3b1", ":a:": "\U0001f170\ufe0f", ":a_button_blood_type:": "\U0001f170\ufe0f", ":ab:": "\U0001f18e", ":ab_button_blood_type:": "\U0001f18e", ":abacus:": "\U0001f9ee", ":abc:": "\U0001f524", ":abcd:": "\U0001f521", ":accept:": "\U0001f251", ":accordion:": "\U0001fa97", ":adhesive_bandage:": "\U0001fa79", ":admission_tickets:": "\U0001f39f\ufe0f", ":adult:": "\U0001f9d1", ":aerial_tramway:": "\U0001f6a1", ":afghanistan:": "\U0001f1e6\U0001f1eb", ":airplane:": "\u2708\ufe0f", ":airplane_arrival:": "\U0001f6ec", ":airplane_departure:": "\U0001f6eb", ":aland_islands:": "\U0001f1e6\U0001f1fd", ":alarm_clock:": "\u23f0", ":albania:": "\U0001f1e6\U0001f1f1", ":alembic:": "\u2697\ufe0f", ":algeria:": "\U0001f1e9\U0001f1ff", ":alien:": "\U0001f47d", ":alien_monster:": "\U0001f47e", ":ambulance:": "\U0001f691", ":american_football:": "\U0001f3c8", ":american_samoa:": "\U0001f1e6\U0001f1f8", ":amphora:": "\U0001f3fa", ":anatomical_heart:": "\U0001fac0", ":anchor:": "\u2693", ":andorra:": "\U0001f1e6\U0001f1e9", ":angel:": "\U0001f47c", ":anger:": "\U0001f4a2", ":anger_symbol:": "\U0001f4a2", ":angola:": "\U0001f1e6\U0001f1f4", ":angry:": "\U0001f620", ":angry_face:": "\U0001f620", ":angry_face_with_horns:": "\U0001f47f", ":anguilla:": "\U0001f1e6\U0001f1ee", ":anguished:": "\U0001f627", ":anguished_face:": "\U0001f627", ":ant:": "\U0001f41c", ":antarctica:": "\U0001f1e6\U0001f1f6", ":antenna_bars:": "\U0001f4f6", ":antigua_barbuda:": "\U0001f1e6\U0001f1ec", ":anxious_face_with_sweat:": "\U0001f630", ":apple:": "\U0001f34e", ":aquarius:": "\u2652", ":argentina:": "\U0001f1e6\U0001f1f7", ":aries:": "\u2648", ":armenia:": "\U0001f1e6\U0001f1f2", ":arrow_backward:": "\u25c0\ufe0f", ":arrow_double_down:": "\u23ec", ":arrow_double_up:": "\u23eb", ":arrow_down:": "\u2b07\ufe0f", ":arrow_down_small:": "\U0001f53d", ":arrow_forward:": "\u25b6\ufe0f", ":arrow_heading_down:": "\u2935\ufe0f", ":arrow_heading_up:": "\u2934\ufe0f", ":arrow_left:": "\u2b05\ufe0f", ":arrow_lower_left:": "\u2199\ufe0f", ":arrow_lower_right:": "\u2198\ufe0f", ":arrow_right:": "\u27a1\ufe0f", ":arrow_right_hook:": "\u21aa\ufe0f", ":arrow_up:": "\u2b06\ufe0f", ":arrow_up_down:": "\u2195\ufe0f", ":arrow_up_small:": "\U0001f53c", ":arrow_upper_left:": "\u2196\ufe0f", ":arrow_upper_right:": "\u2197\ufe0f", ":arrows_clockwise:": "\U0001f503", ":arrows_counterclockwise:": "\U0001f504", ":art:": "\U0001f3a8", ":articulated_lorry:": "\U0001f69b", ":artificial_satellite:": "\U0001f6f0\ufe0f", ":artist:": "\U0001f9d1\u200d\U0001f3a8", ":artist_palette:": "\U0001f3a8", ":aruba:": "\U0001f1e6\U0001f1fc", ":ascension_island:": "\U0001f1e6\U0001f1e8", ":asterisk:": "*\ufe0f\u20e3", ":astonished:": "\U0001f632", ":astonished_face:": "\U0001f632", ":astronaut:": "\U0001f9d1\u200d\U0001f680", ":athletic_shoe:": "\U0001f45f", ":atm:": "\U0001f3e7", ":atm_sign:": "\U0001f3e7", ":atom_symbol:": "\u269b\ufe0f", ":australia:": "\U0001f1e6\U0001f1fa", ":austria:": "\U0001f1e6\U0001f1f9", ":auto_rickshaw:": "\U0001f6fa", ":automobile:": "\U0001f697", ":avocado:": "\U0001f951", ":axe:": "\U0001fa93", ":azerbaijan:": "\U0001f1e6\U0001f1ff", ":b:": "\U0001f171\ufe0f", ":b_button_blood_type:": "\U0001f171\ufe0f", ":baby:": "\U0001f476", ":baby_angel:": "\U0001f47c", ":baby_bottle:": "\U0001f37c", ":baby_chick:": "\U0001f424", ":baby_symbol:": "\U0001f6bc", ":back:": "\U0001f519", ":back_arrow:": "\U0001f519", ":backhand_index_pointing_down:": "\U0001f447", ":backhand_index_pointing_left:": "\U0001f448", ":backhand_index_pointing_right:": "\U0001f449", ":backhand_index_pointing_up:": "\U0001f446", ":backpack:": "\U0001f392", ":bacon:": "\U0001f953", ":badger:": "\U0001f9a1", ":badminton:": "\U0001f3f8", ":bagel:": "\U0001f96f", ":baggage_claim:": "\U0001f6c4", ":baguette_bread:": "\U0001f956", ":bahamas:": "\U0001f1e7\U0001f1f8", ":bahrain:": "\U0001f1e7\U0001f1ed", ":balance_scale:": "\u2696\ufe0f", ":bald:": "\U0001f9b2", ":bald_man:": "\U0001f468\u200d\U0001f9b2", ":bald_woman:": "\U0001f469\u200d\U0001f9b2", ":ballet_shoes:": "\U0001fa70", ":balloon:": "\U0001f388", ":ballot_box:": "\U0001f5f3\ufe0f", ":ballot_box_with_ballot:": "\U0001f5f3\ufe0f", ":ballot_box_with_check:": "\u2611\ufe0f", ":bamboo:": "\U0001f38d", ":banana:": "\U0001f34c", ":bangbang:": "\u203c\ufe0f", ":bangladesh:": "\U0001f1e7\U0001f1e9", ":banjo:": "\U0001fa95", ":bank:": "\U0001f3e6", ":bar_chart:": "\U0001f4ca", ":barbados:": "\U0001f1e7\U0001f1e7", ":barber:": "\U0001f488", ":barber_pole:": "\U0001f488", ":baseball:": "\u26be", ":basket:": "\U0001f9fa", ":basketball:": "\U0001f3c0", ":basketball_man:": "\u26f9\ufe0f\u200d\u2642\ufe0f", ":basketball_woman:": "\u26f9\ufe0f\u200d\u2640\ufe0f", ":bat:": "\U0001f987", ":bath:": "\U0001f6c0", ":bathtub:": "\U0001f6c1", ":battery:": "\U0001f50b", ":beach_umbrella:": "\U0001f3d6\ufe0f", ":beach_with_umbrella:": "\U0001f3d6\ufe0f", ":beaming_face_with_smiling_eyes:": "\U0001f601", ":bear:": "\U0001f43b", ":bearded_person:": "\U0001f9d4", ":beating_heart:": "\U0001f493", ":beaver:": "\U0001f9ab", ":bed:": "\U0001f6cf\ufe0f", ":bee:": "\U0001f41d", ":beer:": "\U0001f37a", ":beer_mug:": "\U0001f37a", ":beers:": "\U0001f37b", ":beetle:": "\U0001fab2", ":beginner:": "\U0001f530", ":belarus:": "\U0001f1e7\U0001f1fe", ":belgium:": "\U0001f1e7\U0001f1ea", ":belize:": "\U0001f1e7\U0001f1ff", ":bell:": "\U0001f514", ":bell_pepper:": "\U0001fad1", ":bell_with_slash:": "\U0001f515", ":bellhop_bell:": "\U0001f6ce\ufe0f", ":benin:": "\U0001f1e7\U0001f1ef", ":bento:": "\U0001f371", ":bento_box:": "\U0001f371", ":bermuda:": "\U0001f1e7\U0001f1f2", ":beverage_box:": "\U0001f9c3", ":bhutan:": "\U0001f1e7\U0001f1f9", ":bicycle:": "\U0001f6b2", ":bicyclist:": "\U0001f6b4", ":bike:": "\U0001f6b2", ":biking_man:": "\U0001f6b4\u200d\u2642\ufe0f", ":biking_woman:": "\U0001f6b4\u200d\u2640\ufe0f", ":bikini:": "\U0001f459", ":billed_cap:": "\U0001f9e2", ":biohazard:": "\u2623\ufe0f", ":bird:": "\U0001f426", ":birthday:": "\U0001f382", ":birthday_cake:": "\U0001f382", ":bison:": "\U0001f9ac", ":black_cat:": "\U0001f408\u200d\u2b1b", ":black_circle:": "\u26ab", ":black_flag:": "\U0001f3f4", ":black_heart:": "\U0001f5a4", ":black_joker:": "\U0001f0cf", ":black_large_square:": "\u2b1b", ":black_medium_small_square:": "\u25fe", ":black_medium_square:": "\u25fc\ufe0f", ":black_nib:": "\u2712\ufe0f", ":black_small_square:": "\u25aa\ufe0f", ":black_square_button:": "\U0001f532", ":blond_haired_man:": "\U0001f471\u200d\u2642\ufe0f", ":blond_haired_person:": "\U0001f471", ":blond_haired_woman:": "\U0001f471\u200d\u2640\ufe0f", ":blonde_woman:": "\U0001f471\u200d\u2640\ufe0f", ":blossom:": "\U0001f33c", ":blowfish:": "\U0001f421", ":blue_book:": "\U0001f4d8", ":blue_car:": "\U0001f699", ":blue_circle:": "\U0001f535", ":blue_heart:": "\U0001f499", ":blue_square:": "\U0001f7e6", ":blueberries:": "\U0001fad0", ":blush:": "\U0001f60a", ":boar:": "\U0001f417", ":boat:": "\u26f5", ":bolivia:": "\U0001f1e7\U0001f1f4", ":bomb:": "\U0001f4a3", ":bone:": "\U0001f9b4", ":book:": "\U0001f4d6", ":bookmark:": "\U0001f516", ":bookmark_tabs:": "\U0001f4d1", ":books:": "\U0001f4da", ":boom:": "\U0001f4a5", ":boomerang:": "\U0001fa83", ":boot:": "\U0001f462", ":bosnia_herzegovina:": "\U0001f1e7\U0001f1e6", ":botswana:": "\U0001f1e7\U0001f1fc", ":bottle_with_popping_cork:": "\U0001f37e", ":bouncing_ball_man:": "\u26f9\ufe0f\u200d\u2642\ufe0f", ":bouncing_ball_person:": "\u26f9\ufe0f", ":bouncing_ball_woman:": "\u26f9\ufe0f\u200d\u2640\ufe0f", ":bouquet:": "\U0001f490", ":bouvet_island:": "\U0001f1e7\U0001f1fb", ":bow:": "\U0001f647", ":bow_and_arrow:": "\U0001f3f9", ":bowing_man:": "\U0001f647\u200d\u2642\ufe0f", ":bowing_woman:": "\U0001f647\u200d\u2640\ufe0f", ":bowl_with_spoon:": "\U0001f963", ":bowling:": "\U0001f3b3", ":boxing_glove:": "\U0001f94a", ":boy:": "\U0001f466", ":brain:": "\U0001f9e0", ":brazil:": "\U0001f1e7\U0001f1f7", ":bread:": "\U0001f35e", ":breast_feeding:": "\U0001f931", ":brick:": "\U0001f9f1", ":bricks:": "\U0001f9f1", ":bride_with_veil:": "\U0001f470\u200d\u2640\ufe0f", ":bridge_at_night:": "\U0001f309", ":briefcase:": "\U0001f4bc", ":briefs:": "\U0001fa72", ":bright_button:": "\U0001f506", ":british_indian_ocean_territory:": "\U0001f1ee\U0001f1f4", ":british_virgin_islands:": "\U0001f1fb\U0001f1ec", ":broccoli:": "\U0001f966", ":broken_heart:": "\U0001f494", ":broom:": "\U0001f9f9", ":brown_circle:": "\U0001f7e4", ":brown_heart:": "\U0001f90e", ":brown_square:": "\U0001f7eb", ":brunei:": "\U0001f1e7\U0001f1f3", ":bubble_tea:": "\U0001f9cb", ":bucket:": "\U0001faa3", ":bug:": "\U0001f41b", ":building_construction:": "\U0001f3d7\ufe0f", ":bulb:": "\U0001f4a1", ":bulgaria:": "\U0001f1e7\U0001f1ec", ":bullet_train:": "\U0001f685", ":bullettrain_front:": "\U0001f685", ":bullettrain_side:": "\U0001f684", ":burkina_faso:": "\U0001f1e7\U0001f1eb", ":burrito:": "\U0001f32f", ":burundi:": "\U0001f1e7\U0001f1ee", ":bus:": "\U0001f68c", ":bus_stop:": "\U0001f68f", ":business_suit_levitating:": "\U0001f574\ufe0f", ":busstop:": "\U0001f68f", ":bust_in_silhouette:": "\U0001f464", ":busts_in_silhouette:": "\U0001f465", ":butter:": "\U0001f9c8", ":butterfly:": "\U0001f98b", ":cactus:": "\U0001f335", ":cake:": "\U0001f370", ":calendar:": "\U0001f4c6", ":call_me_hand:": "\U0001f919", ":calling:": "\U0001f4f2", ":cambodia:": "\U0001f1f0\U0001f1ed", ":camel:": "\U0001f42b", ":camera:": "\U0001f4f7", ":camera_flash:": "\U0001f4f8", ":camera_with_flash:": "\U0001f4f8", ":cameroon:": "\U0001f1e8\U0001f1f2", ":camping:": "\U0001f3d5\ufe0f", ":canada:": "\U0001f1e8\U0001f1e6", ":canary_islands:": "\U0001f1ee\U0001f1e8", ":cancer:": "\u264b", ":candle:": "\U0001f56f\ufe0f", ":candy:": "\U0001f36c", ":canned_food:": "\U0001f96b", ":canoe:": "\U0001f6f6", ":cape_verde:": "\U0001f1e8\U0001f1fb", ":capital_abcd:": "\U0001f520", ":capricorn:": "\u2651", ":car:": "\U0001f697", ":card_file_box:": "\U0001f5c3\ufe0f", ":card_index:": "\U0001f4c7", ":card_index_dividers:": "\U0001f5c2\ufe0f", ":caribbean_netherlands:": "\U0001f1e7\U0001f1f6", ":carousel_horse:": "\U0001f3a0", ":carp_streamer:": "\U0001f38f", ":carpentry_saw:": "\U0001fa9a", ":carrot:": "\U0001f955", ":cartwheeling:": "\U0001f938", ":castle:": "\U0001f3f0", ":cat2:": "\U0001f408", ":cat:": "\U0001f431", ":cat_face:": "\U0001f431", ":cat_with_tears_of_joy:": "\U0001f639", ":cat_with_wry_smile:": "\U0001f63c", ":cayman_islands:": "\U0001f1f0\U0001f1fe", ":cd:": "\U0001f4bf", ":central_african_republic:": "\U0001f1e8\U0001f1eb", ":ceuta_melilla:": "\U0001f1ea\U0001f1e6", ":chad:": "\U0001f1f9\U0001f1e9", ":chains:": "\u26d3\ufe0f", ":chair:": "\U0001fa91", ":champagne:": "\U0001f37e", ":chart:": "\U0001f4b9", ":chart_decreasing:": "\U0001f4c9", ":chart_increasing:": "\U0001f4c8", ":chart_increasing_with_yen:": "\U0001f4b9", ":chart_with_downwards_trend:": "\U0001f4c9", ":chart_with_upwards_trend:": "\U0001f4c8", ":check_box_with_check:": "\u2611\ufe0f", ":check_mark:": "\u2714\ufe0f", ":check_mark_button:": "\u2705", ":checkered_flag:": "\U0001f3c1", ":cheese:": "\U0001f9c0", ":cheese_wedge:": "\U0001f9c0", ":chequered_flag:": "\U0001f3c1", ":cherries:": "\U0001f352", ":cherry_blossom:": "\U0001f338", ":chess_pawn:": "\u265f\ufe0f", ":chestnut:": "\U0001f330", ":chicken:": "\U0001f414", ":child:": "\U0001f9d2", ":children_crossing:": "\U0001f6b8", ":chile:": "\U0001f1e8\U0001f1f1", ":chipmunk:": "\U0001f43f\ufe0f", ":chocolate_bar:": "\U0001f36b", ":chopsticks:": "\U0001f962", ":christmas_island:": "\U0001f1e8\U0001f1fd", ":christmas_tree:": "\U0001f384", ":church:": "\u26ea", ":cigarette:": "\U0001f6ac", ":cinema:": "\U0001f3a6", ":circled_m:": "\u24c2\ufe0f", ":circus_tent:": "\U0001f3aa", ":city_sunrise:": "\U0001f307", ":city_sunset:": "\U0001f306", ":cityscape:": "\U0001f3d9\ufe0f", ":cityscape_at_dusk:": "\U0001f306", ":cl:": "\U0001f191", ":cl_button:": "\U0001f191", ":clamp:": "\U0001f5dc\ufe0f", ":clap:": "\U0001f44f", ":clapper:": "\U0001f3ac", ":clapper_board:": "\U0001f3ac", ":clapping_hands:": "\U0001f44f", ":classical_building:": "\U0001f3db\ufe0f", ":climbing:": "\U0001f9d7", ":climbing_man:": "\U0001f9d7\u200d\u2642\ufe0f", ":climbing_woman:": "\U0001f9d7\u200d\u2640\ufe0f", ":clinking_beer_mugs:": "\U0001f37b", ":clinking_glasses:": "\U0001f942", ":clipboard:": "\U0001f4cb", ":clipperton_island:": "\U0001f1e8\U0001f1f5", ":clock1030:": "\U0001f565", ":clock10:": "\U0001f559", ":clock1130:": "\U0001f566", ":clock11:": "\U0001f55a", ":clock1230:": "\U0001f567", ":clock12:": "\U0001f55b", ":clock130:": "\U0001f55c", ":clock1:": "\U0001f550", ":clock230:": "\U0001f55d", ":clock2:": "\U0001f551", ":clock330:": "\U0001f55e", ":clock3:": "\U0001f552", ":clock430:": "\U0001f55f", ":clock4:": "\U0001f553", ":clock530:": "\U0001f560", ":clock5:": "\U0001f554", ":clock630:": "\U0001f561", ":clock6:": "\U0001f555", ":clock730:": "\U0001f562", ":clock7:": "\U0001f556", ":clock830:": "\U0001f563", ":clock8:": "\U0001f557", ":clock930:": "\U0001f564", ":clock9:": "\U0001f558", ":clockwise_vertical_arrows:": "\U0001f503", ":closed_book:": "\U0001f4d5", ":closed_lock_with_key:": "\U0001f510", ":closed_mailbox_with_lowered_flag:": "\U0001f4ea", ":closed_mailbox_with_raised_flag:": "\U0001f4eb", ":closed_umbrella:": "\U0001f302", ":cloud:": "\u2601\ufe0f", ":cloud_with_lightning:": "\U0001f329\ufe0f", ":cloud_with_lightning_and_rain:": "\u26c8\ufe0f", ":cloud_with_rain:": "\U0001f327\ufe0f", ":cloud_with_snow:": "\U0001f328\ufe0f", ":clown_face:": "\U0001f921", ":club_suit:": "\u2663\ufe0f", ":clubs:": "\u2663\ufe0f", ":clutch_bag:": "\U0001f45d", ":cn:": "\U0001f1e8\U0001f1f3", ":coat:": "\U0001f9e5", ":cockroach:": "\U0001fab3", ":cocktail:": "\U0001f378", ":cocktail_glass:": "\U0001f378", ":coconut:": "\U0001f965", ":cocos_islands:": "\U0001f1e8\U0001f1e8", ":coffee:": "\u2615", ":coffin:": "\u26b0\ufe0f", ":coin:": "\U0001fa99", ":cold_face:": "\U0001f976", ":cold_sweat:": "\U0001f630", ":collision:": "\U0001f4a5", ":colombia:": "\U0001f1e8\U0001f1f4", ":comet:": "\u2604\ufe0f", ":comoros:": "\U0001f1f0\U0001f1f2", ":compass:": "\U0001f9ed", ":computer:": "\U0001f4bb", ":computer_disk:": "\U0001f4bd", ":computer_mouse:": "\U0001f5b1\ufe0f", ":confetti_ball:": "\U0001f38a", ":confounded:": "\U0001f616", ":confounded_face:": "\U0001f616", ":confused:": "\U0001f615", ":confused_face:": "\U0001f615", ":congo_brazzaville:": "\U0001f1e8\U0001f1ec", ":congo_kinshasa:": "\U0001f1e8\U0001f1e9", ":congratulations:": "\u3297\ufe0f", ":construction:": "\U0001f6a7", ":construction_worker:": "\U0001f477", ":construction_worker_man:": "\U0001f477\u200d\u2642\ufe0f", ":construction_worker_woman:": "\U0001f477\u200d\u2640\ufe0f", ":control_knobs:": "\U0001f39b\ufe0f", ":convenience_store:": "\U0001f3ea", ":cook:": "\U0001f9d1\u200d\U0001f373", ":cook_islands:": "\U0001f1e8\U0001f1f0", ":cooked_rice:": "\U0001f35a", ":cookie:": "\U0001f36a", ":cooking:": "\U0001f373", ":cool:": "\U0001f192", ":cool_button:": "\U0001f192", ":cop:": "\U0001f46e", ":copyright:": "\u00a9\ufe0f", ":corn:": "\U0001f33d", ":costa_rica:": "\U0001f1e8\U0001f1f7", ":cote_divoire:": "\U0001f1e8\U0001f1ee", ":couch_and_lamp:": "\U0001f6cb\ufe0f", ":counterclockwise_arrows_button:": "\U0001f504", ":couple:": "\U0001f46b", ":couple_with_heart:": "\U0001f491", ":couple_with_heart_man_man:": "\U0001f468\u200d\u2764\ufe0f\u200d\U0001f468", ":couple_with_heart_woman_man:": "\U0001f469\u200d\u2764\ufe0f\u200d\U0001f468", ":couple_with_heart_woman_woman:": "\U0001f469\u200d\u2764\ufe0f\u200d\U0001f469", ":couplekiss:": "\U0001f48f", ":couplekiss_man_man:": "\U0001f468\u200d\u2764\ufe0f\u200d\U0001f48b\u200d\U0001f468", ":couplekiss_man_woman:": "\U0001f469\u200d\u2764\ufe0f\u200d\U0001f48b\u200d\U0001f468", ":couplekiss_woman_woman:": "\U0001f469\u200d\u2764\ufe0f\u200d\U0001f48b\u200d\U0001f469", ":cow2:": "\U0001f404", ":cow:": "\U0001f42e", ":cow_face:": "\U0001f42e", ":cowboy_hat_face:": "\U0001f920", ":crab:": "\U0001f980", ":crayon:": "\U0001f58d\ufe0f", ":credit_card:": "\U0001f4b3", ":crescent_moon:": "\U0001f319", ":cricket:": "\U0001f997", ":cricket_game:": "\U0001f3cf", ":croatia:": "\U0001f1ed\U0001f1f7", ":crocodile:": "\U0001f40a", ":croissant:": "\U0001f950", ":cross_mark:": "\u274c", ":cross_mark_button:": "\u274e", ":crossed_fingers:": "\U0001f91e", ":crossed_flags:": "\U0001f38c", ":crossed_swords:": "\u2694\ufe0f", ":crown:": "\U0001f451", ":cry:": "\U0001f622", ":crying_cat:": "\U0001f63f", ":crying_cat_face:": "\U0001f63f", ":crying_face:": "\U0001f622", ":crystal_ball:": "\U0001f52e", ":cuba:": "\U0001f1e8\U0001f1fa", ":cucumber:": "\U0001f952", ":cup_with_straw:": "\U0001f964", ":cupcake:": "\U0001f9c1", ":cupid:": "\U0001f498", ":curacao:": "\U0001f1e8\U0001f1fc", ":curling_stone:": "\U0001f94c", ":curly_hair:": "\U0001f9b1", ":curly_haired_man:": "\U0001f468\u200d\U0001f9b1", ":curly_haired_woman:": "\U0001f469\u200d\U0001f9b1", ":curly_loop:": "\u27b0", ":currency_exchange:": "\U0001f4b1", ":curry:": "\U0001f35b", ":curry_rice:": "\U0001f35b", ":cursing_face:": "\U0001f92c", ":custard:": "\U0001f36e", ":customs:": "\U0001f6c3", ":cut_of_meat:": "\U0001f969", ":cyclone:": "\U0001f300", ":cyprus:": "\U0001f1e8\U0001f1fe", ":czech_republic:": "\U0001f1e8\U0001f1ff", ":dagger:": "\U0001f5e1\ufe0f", ":dancer:": "\U0001f483", ":dancers:": "\U0001f46f", ":dancing_men:": "\U0001f46f\u200d\u2642\ufe0f", ":dancing_women:": "\U0001f46f\u200d\u2640\ufe0f", ":dango:": "\U0001f361", ":dark_skin_tone:": "\U0001f3ff", ":dark_sunglasses:": "\U0001f576\ufe0f", ":dart:": "\U0001f3af", ":dash:": "\U0001f4a8", ":dashing_away:": "\U0001f4a8", ":date:": "\U0001f4c5", ":de:": "\U0001f1e9\U0001f1ea", ":deaf_man:": "\U0001f9cf\u200d\u2642\ufe0f", ":deaf_person:": "\U0001f9cf", ":deaf_woman:": "\U0001f9cf\u200d\u2640\ufe0f", ":deciduous_tree:": "\U0001f333", ":deer:": "\U0001f98c", ":delivery_truck:": "\U0001f69a", ":denmark:": "\U0001f1e9\U0001f1f0", ":department_store:": "\U0001f3ec", ":derelict_house:": "\U0001f3da\ufe0f", ":desert:": "\U0001f3dc\ufe0f", ":desert_island:": "\U0001f3dd\ufe0f", ":desktop_computer:": "\U0001f5a5\ufe0f", ":detective:": "\U0001f575\ufe0f", ":diamond_shape_with_a_dot_inside:": "\U0001f4a0", ":diamond_suit:": "\u2666\ufe0f", ":diamond_with_a_dot:": "\U0001f4a0", ":diamonds:": "\u2666\ufe0f", ":diego_garcia:": "\U0001f1e9\U0001f1ec", ":dim_button:": "\U0001f505", ":direct_hit:": "\U0001f3af", ":disappointed:": "\U0001f61e", ":disappointed_face:": "\U0001f61e", ":disappointed_relieved:": "\U0001f625", ":disguised_face:": "\U0001f978", ":divide:": "\u2797", ":diving_mask:": "\U0001f93f", ":diya_lamp:": "\U0001fa94", ":dizzy:": "\U0001f4ab", ":dizzy_face:": "\U0001f635", ":djibouti:": "\U0001f1e9\U0001f1ef", ":dna:": "\U0001f9ec", ":do_not_litter:": "\U0001f6af", ":dodo:": "\U0001f9a4", ":dog2:": "\U0001f415", ":dog:": "\U0001f436", ":dog_face:": "\U0001f436", ":dollar:": "\U0001f4b5", ":dollar_banknote:": "\U0001f4b5", ":dolls:": "\U0001f38e", ":dolphin:": "\U0001f42c", ":dominica:": "\U0001f1e9\U0001f1f2", ":dominican_republic:": "\U0001f1e9\U0001f1f4", ":door:": "\U0001f6aa", ":dotted_six_pointed_star:": "\U0001f52f", ":double_curly_loop:": "\u27bf", ":double_exclamation_mark:": "\u203c\ufe0f", ":doughnut:": "\U0001f369", ":dove:": "\U0001f54a\ufe0f", ":down_arrow:": "\u2b07\ufe0f", ":down_left_arrow:": "\u2199\ufe0f", ":down_right_arrow:": "\u2198\ufe0f", ":downcast_face_with_sweat:": "\U0001f613", ":downwards_button:": "\U0001f53d", ":dragon:": "\U0001f409", ":dragon_face:": "\U0001f432", ":dress:": "\U0001f457", ":dromedary_camel:": "\U0001f42a", ":drooling_face:": "\U0001f924", ":drop_of_blood:": "\U0001fa78", ":droplet:": "\U0001f4a7", ":drum:": "\U0001f941", ":duck:": "\U0001f986", ":dumpling:": "\U0001f95f", ":dvd:": "\U0001f4c0", ":e-mail:": "\U0001f4e7", ":e_mail:": "\U0001f4e7", ":eagle:": "\U0001f985", ":ear:": "\U0001f442", ":ear_of_corn:": "\U0001f33d", ":ear_of_rice:": "\U0001f33e", ":ear_with_hearing_aid:": "\U0001f9bb", ":earth_africa:": "\U0001f30d", ":earth_americas:": "\U0001f30e", ":earth_asia:": "\U0001f30f", ":ecuador:": "\U0001f1ea\U0001f1e8", ":egg:": "\U0001f95a", ":eggplant:": "\U0001f346", ":egypt:": "\U0001f1ea\U0001f1ec", ":eight:": "8\ufe0f\u20e3", ":eight_o_clock:": "\U0001f557", ":eight_pointed_black_star:": "\u2734\ufe0f", ":eight_pointed_star:": "\u2734\ufe0f", ":eight_spoked_asterisk:": "\u2733\ufe0f", ":eight_thirty:": "\U0001f563", ":eject_button:": "\u23cf\ufe0f", ":el_salvador:": "\U0001f1f8\U0001f1fb", ":electric_plug:": "\U0001f50c", ":elephant:": "\U0001f418", ":elevator:": "\U0001f6d7", ":eleven_o_clock:": "\U0001f55a", ":eleven_thirty:": "\U0001f566", ":elf:": "\U0001f9dd", ":elf_man:": "\U0001f9dd\u200d\u2642\ufe0f", ":elf_woman:": "\U0001f9dd\u200d\u2640\ufe0f", ":email:": "\u2709\ufe0f", ":end:": "\U0001f51a", ":end_arrow:": "\U0001f51a", ":england:": "\U0001f3f4\U000e0067\U000e0062\U000e0065\U000e006e\U000e0067\U000e007f", ":envelope:": "\u2709\ufe0f", ":envelope_with_arrow:": "\U0001f4e9", ":equatorial_guinea:": "\U0001f1ec\U0001f1f6", ":eritrea:": "\U0001f1ea\U0001f1f7", ":es:": "\U0001f1ea\U0001f1f8", ":estonia:": "\U0001f1ea\U0001f1ea", ":ethiopia:": "\U0001f1ea\U0001f1f9", ":eu:": "\U0001f1ea\U0001f1fa", ":euro:": "\U0001f4b6", ":euro_banknote:": "\U0001f4b6", ":european_castle:": "\U0001f3f0", ":european_post_office:": "\U0001f3e4", ":european_union:": "\U0001f1ea\U0001f1fa", ":evergreen_tree:": "\U0001f332", ":ewe:": "\U0001f411", ":exclamation:": "\u2757", ":exclamation_mark:": "\u2757", ":exclamation_question_mark:": "\u2049\ufe0f", ":exploding_head:": "\U0001f92f", ":expressionless:": "\U0001f611", ":expressionless_face:": "\U0001f611", ":eye:": "\U0001f441\ufe0f", ":eye_in_speech_bubble:": "\U0001f441\ufe0f\u200d\U0001f5e8\ufe0f", ":eye_speech_bubble:": "\U0001f441\ufe0f\u200d\U0001f5e8\ufe0f", ":eyeglasses:": "\U0001f453", ":eyes:": "\U0001f440", ":face_blowing_a_kiss:": "\U0001f618", ":face_savoring_food:": "\U0001f60b", ":face_screaming_in_fear:": "\U0001f631", ":face_vomiting:": "\U0001f92e", ":face_with_hand_over_mouth:": "\U0001f92d", ":face_with_head_bandage:": "\U0001f915", ":face_with_medical_mask:": "\U0001f637", ":face_with_monocle:": "\U0001f9d0", ":face_with_open_mouth:": "\U0001f62e", ":face_with_raised_eyebrow:": "\U0001f928", ":face_with_rolling_eyes:": "\U0001f644", ":face_with_steam_from_nose:": "\U0001f624", ":face_with_symbols_on_mouth:": "\U0001f92c", ":face_with_tears_of_joy:": "\U0001f602", ":face_with_thermometer:": "\U0001f912", ":face_with_tongue:": "\U0001f61b", ":face_without_mouth:": "\U0001f636", ":facepalm:": "\U0001f926", ":facepunch:": "\U0001f44a", ":factory:": "\U0001f3ed", ":factory_worker:": "\U0001f9d1\u200d\U0001f3ed", ":fairy:": "\U0001f9da", ":fairy_man:": "\U0001f9da\u200d\u2642\ufe0f", ":fairy_woman:": "\U0001f9da\u200d\u2640\ufe0f", ":falafel:": "\U0001f9c6", ":falkland_islands:": "\U0001f1eb\U0001f1f0", ":fallen_leaf:": "\U0001f342", ":family:": "\U0001f46a", ":family_man_boy:": "\U0001f468\u200d\U0001f466", ":family_man_boy_boy:": "\U0001f468\u200d\U0001f466\u200d\U0001f466", ":family_man_girl:": "\U0001f468\u200d\U0001f467", ":family_man_girl_boy:": "\U0001f468\u200d\U0001f467\u200d\U0001f466", ":family_man_girl_girl:": "\U0001f468\u200d\U0001f467\u200d\U0001f467", ":family_man_man_boy:": "\U0001f468\u200d\U0001f468\u200d\U0001f466", ":family_man_man_boy_boy:": "\U0001f468\u200d\U0001f468\u200d\U0001f466\u200d\U0001f466", ":family_man_man_girl:": "\U0001f468\u200d\U0001f468\u200d\U0001f467", ":family_man_man_girl_boy:": "\U0001f468\u200d\U0001f468\u200d\U0001f467\u200d\U0001f466", ":family_man_man_girl_girl:": "\U0001f468\u200d\U0001f468\u200d\U0001f467\u200d\U0001f467", ":family_man_woman_boy:": "\U0001f468\u200d\U0001f469\u200d\U0001f466", ":family_man_woman_boy_boy:": "\U0001f468\u200d\U0001f469\u200d\U0001f466\u200d\U0001f466", ":family_man_woman_girl:": "\U0001f468\u200d\U0001f469\u200d\U0001f467", ":family_man_woman_girl_boy:": "\U0001f468\u200d\U0001f469\u200d\U0001f467\u200d\U0001f466", ":family_man_woman_girl_girl:": "\U0001f468\u200d\U0001f469\u200d\U0001f467\u200d\U0001f467", ":family_woman_boy:": "\U0001f469\u200d\U0001f466", ":family_woman_boy_boy:": "\U0001f469\u200d\U0001f466\u200d\U0001f466", ":family_woman_girl:": "\U0001f469\u200d\U0001f467", ":family_woman_girl_boy:": "\U0001f469\u200d\U0001f467\u200d\U0001f466", ":family_woman_girl_girl:": "\U0001f469\u200d\U0001f467\u200d\U0001f467", ":family_woman_woman_boy:": "\U0001f469\u200d\U0001f469\u200d\U0001f466", ":family_woman_woman_boy_boy:": "\U0001f469\u200d\U0001f469\u200d\U0001f466\u200d\U0001f466", ":family_woman_woman_girl:": "\U0001f469\u200d\U0001f469\u200d\U0001f467", ":family_woman_woman_girl_boy:": "\U0001f469\u200d\U0001f469\u200d\U0001f467\u200d\U0001f466", ":family_woman_woman_girl_girl:": "\U0001f469\u200d\U0001f469\u200d\U0001f467\u200d\U0001f467", ":farmer:": "\U0001f9d1\u200d\U0001f33e", ":faroe_islands:": "\U0001f1eb\U0001f1f4", ":fast_down_button:": "\u23ec", ":fast_forward:": "\u23e9", ":fast_forward_button:": "\u23e9", ":fast_reverse_button:": "\u23ea", ":fast_up_button:": "\u23eb", ":fax:": "\U0001f4e0", ":fax_machine:": "\U0001f4e0", ":fearful:": "\U0001f628", ":fearful_face:": "\U0001f628", ":feather:": "\U0001fab6", ":feet:": "\U0001f43e", ":female_detective:": "\U0001f575\ufe0f\u200d\u2640\ufe0f", ":female_sign:": "\u2640\ufe0f", ":ferris_wheel:": "\U0001f3a1", ":ferry:": "\u26f4\ufe0f", ":field_hockey:": "\U0001f3d1", ":fiji:": "\U0001f1eb\U0001f1ef", ":file_cabinet:": "\U0001f5c4\ufe0f", ":file_folder:": "\U0001f4c1", ":film_frames:": "\U0001f39e\ufe0f", ":film_projector:": "\U0001f4fd\ufe0f", ":film_strip:": "\U0001f39e\ufe0f", ":finland:": "\U0001f1eb\U0001f1ee", ":fire:": "\U0001f525", ":fire_engine:": "\U0001f692", ":fire_extinguisher:": "\U0001f9ef", ":firecracker:": "\U0001f9e8", ":firefighter:": "\U0001f9d1\u200d\U0001f692", ":fireworks:": "\U0001f386", ":first_place_medal:": "\U0001f947", ":first_quarter_moon:": "\U0001f313", ":first_quarter_moon_face:": "\U0001f31b", ":first_quarter_moon_with_face:": "\U0001f31b", ":fish:": "\U0001f41f", ":fish_cake:": "\U0001f365", ":fish_cake_with_swirl:": "\U0001f365", ":fishing_pole:": "\U0001f3a3", ":fishing_pole_and_fish:": "\U0001f3a3", ":fist:": "\u270a", ":fist_left:": "\U0001f91b", ":fist_oncoming:": "\U0001f44a", ":fist_raised:": "\u270a", ":fist_right:": "\U0001f91c", ":five:": "5\ufe0f\u20e3", ":five_o_clock:": "\U0001f554", ":five_thirty:": "\U0001f560", ":flag_for_afghanistan:": "\U0001f1e6\U0001f1eb", ":flag_for_aland_islands:": "\U0001f1e6\U0001f1fd", ":flag_for_albania:": "\U0001f1e6\U0001f1f1", ":flag_for_algeria:": "\U0001f1e9\U0001f1ff", ":flag_for_american_samoa:": "\U0001f1e6\U0001f1f8", ":flag_for_andorra:": "\U0001f1e6\U0001f1e9", ":flag_for_angola:": "\U0001f1e6\U0001f1f4", ":flag_for_anguilla:": "\U0001f1e6\U0001f1ee", ":flag_for_antarctica:": "\U0001f1e6\U0001f1f6", ":flag_for_antigua_and_barbuda:": "\U0001f1e6\U0001f1ec", ":flag_for_argentina:": "\U0001f1e6\U0001f1f7", ":flag_for_armenia:": "\U0001f1e6\U0001f1f2", ":flag_for_aruba:": "\U0001f1e6\U0001f1fc", ":flag_for_ascension_island:": "\U0001f1e6\U0001f1e8", ":flag_for_australia:": "\U0001f1e6\U0001f1fa", ":flag_for_austria:": "\U0001f1e6\U0001f1f9", ":flag_for_azerbaijan:": "\U0001f1e6\U0001f1ff", ":flag_for_bahamas:": "\U0001f1e7\U0001f1f8", ":flag_for_bahrain:": "\U0001f1e7\U0001f1ed", ":flag_for_bangladesh:": "\U0001f1e7\U0001f1e9", ":flag_for_barbados:": "\U0001f1e7\U0001f1e7", ":flag_for_belarus:": "\U0001f1e7\U0001f1fe", ":flag_for_belgium:": "\U0001f1e7\U0001f1ea", ":flag_for_belize:": "\U0001f1e7\U0001f1ff", ":flag_for_benin:": "\U0001f1e7\U0001f1ef", ":flag_for_bermuda:": "\U0001f1e7\U0001f1f2", ":flag_for_bhutan:": "\U0001f1e7\U0001f1f9", ":flag_for_bolivia:": "\U0001f1e7\U0001f1f4", ":flag_for_bosnia_and_herzegovina:": "\U0001f1e7\U0001f1e6", ":flag_for_botswana:": "\U0001f1e7\U0001f1fc", ":flag_for_bouvet_island:": "\U0001f1e7\U0001f1fb", ":flag_for_brazil:": "\U0001f1e7\U0001f1f7", ":flag_for_british_indian_ocean_territory:": "\U0001f1ee\U0001f1f4", ":flag_for_british_virgin_islands:": "\U0001f1fb\U0001f1ec", ":flag_for_brunei:": "\U0001f1e7\U0001f1f3", ":flag_for_bulgaria:": "\U0001f1e7\U0001f1ec", ":flag_for_burkina_faso:": "\U0001f1e7\U0001f1eb", ":flag_for_burundi:": "\U0001f1e7\U0001f1ee", ":flag_for_cambodia:": "\U0001f1f0\U0001f1ed", ":flag_for_cameroon:": "\U0001f1e8\U0001f1f2", ":flag_for_canada:": "\U0001f1e8\U0001f1e6", ":flag_for_canary_islands:": "\U0001f1ee\U0001f1e8", ":flag_for_cape_verde:": "\U0001f1e8\U0001f1fb", ":flag_for_caribbean_netherlands:": "\U0001f1e7\U0001f1f6", ":flag_for_cayman_islands:": "\U0001f1f0\U0001f1fe", ":flag_for_central_african_republic:": "\U0001f1e8\U0001f1eb", ":flag_for_ceuta_and_melilla:": "\U0001f1ea\U0001f1e6", ":flag_for_chad:": "\U0001f1f9\U0001f1e9", ":flag_for_chile:": "\U0001f1e8\U0001f1f1", ":flag_for_china:": "\U0001f1e8\U0001f1f3", ":flag_for_christmas_island:": "\U0001f1e8\U0001f1fd", ":flag_for_clipperton_island:": "\U0001f1e8\U0001f1f5", ":flag_for_cocos_keeling_islands:": "\U0001f1e8\U0001f1e8", ":flag_for_colombia:": "\U0001f1e8\U0001f1f4", ":flag_for_comoros:": "\U0001f1f0\U0001f1f2", ":flag_for_congo_brazzaville:": "\U0001f1e8\U0001f1ec", ":flag_for_congo_kinshasa:": "\U0001f1e8\U0001f1e9", ":flag_for_cook_islands:": "\U0001f1e8\U0001f1f0", ":flag_for_costa_rica:": "\U0001f1e8\U0001f1f7", ":flag_for_cote_d_ivoire:": "\U0001f1e8\U0001f1ee", ":flag_for_croatia:": "\U0001f1ed\U0001f1f7", ":flag_for_cuba:": "\U0001f1e8\U0001f1fa", ":flag_for_curacao:": "\U0001f1e8\U0001f1fc", ":flag_for_cyprus:": "\U0001f1e8\U0001f1fe", ":flag_for_czechia:": "\U0001f1e8\U0001f1ff", ":flag_for_denmark:": "\U0001f1e9\U0001f1f0", ":flag_for_diego_garcia:": "\U0001f1e9\U0001f1ec", ":flag_for_djibouti:": "\U0001f1e9\U0001f1ef", ":flag_for_dominica:": "\U0001f1e9\U0001f1f2", ":flag_for_dominican_republic:": "\U0001f1e9\U0001f1f4", ":flag_for_ecuador:": "\U0001f1ea\U0001f1e8", ":flag_for_egypt:": "\U0001f1ea\U0001f1ec", ":flag_for_el_salvador:": "\U0001f1f8\U0001f1fb", ":flag_for_england:": "\U0001f3f4\U000e0067\U000e0062\U000e0065\U000e006e\U000e0067\U000e007f", ":flag_for_equatorial_guinea:": "\U0001f1ec\U0001f1f6", ":flag_for_eritrea:": "\U0001f1ea\U0001f1f7", ":flag_for_estonia:": "\U0001f1ea\U0001f1ea", ":flag_for_eswatini:": "\U0001f1f8\U0001f1ff", ":flag_for_ethiopia:": "\U0001f1ea\U0001f1f9", ":flag_for_european_union:": "\U0001f1ea\U0001f1fa", ":flag_for_falkland_islands:": "\U0001f1eb\U0001f1f0", ":flag_for_faroe_islands:": "\U0001f1eb\U0001f1f4", ":flag_for_fiji:": "\U0001f1eb\U0001f1ef", ":flag_for_finland:": "\U0001f1eb\U0001f1ee", ":flag_for_france:": "\U0001f1eb\U0001f1f7", ":flag_for_french_guiana:": "\U0001f1ec\U0001f1eb", ":flag_for_french_polynesia:": "\U0001f1f5\U0001f1eb", ":flag_for_french_southern_territories:": "\U0001f1f9\U0001f1eb", ":flag_for_gabon:": "\U0001f1ec\U0001f1e6", ":flag_for_gambia:": "\U0001f1ec\U0001f1f2", ":flag_for_georgia:": "\U0001f1ec\U0001f1ea", ":flag_for_germany:": "\U0001f1e9\U0001f1ea", ":flag_for_ghana:": "\U0001f1ec\U0001f1ed", ":flag_for_gibraltar:": "\U0001f1ec\U0001f1ee", ":flag_for_greece:": "\U0001f1ec\U0001f1f7", ":flag_for_greenland:": "\U0001f1ec\U0001f1f1", ":flag_for_grenada:": "\U0001f1ec\U0001f1e9", ":flag_for_guadeloupe:": "\U0001f1ec\U0001f1f5", ":flag_for_guam:": "\U0001f1ec\U0001f1fa", ":flag_for_guatemala:": "\U0001f1ec\U0001f1f9", ":flag_for_guernsey:": "\U0001f1ec\U0001f1ec", ":flag_for_guinea:": "\U0001f1ec\U0001f1f3", ":flag_for_guinea_bissau:": "\U0001f1ec\U0001f1fc", ":flag_for_guyana:": "\U0001f1ec\U0001f1fe", ":flag_for_haiti:": "\U0001f1ed\U0001f1f9", ":flag_for_heard_and_mcdonald_islands:": "\U0001f1ed\U0001f1f2", ":flag_for_honduras:": "\U0001f1ed\U0001f1f3", ":flag_for_hong_kong_sar_china:": "\U0001f1ed\U0001f1f0", ":flag_for_hungary:": "\U0001f1ed\U0001f1fa", ":flag_for_iceland:": "\U0001f1ee\U0001f1f8", ":flag_for_india:": "\U0001f1ee\U0001f1f3", ":flag_for_indonesia:": "\U0001f1ee\U0001f1e9", ":flag_for_iran:": "\U0001f1ee\U0001f1f7", ":flag_for_iraq:": "\U0001f1ee\U0001f1f6", ":flag_for_ireland:": "\U0001f1ee\U0001f1ea", ":flag_for_isle_of_man:": "\U0001f1ee\U0001f1f2", ":flag_for_israel:": "\U0001f1ee\U0001f1f1", ":flag_for_italy:": "\U0001f1ee\U0001f1f9", ":flag_for_jamaica:": "\U0001f1ef\U0001f1f2", ":flag_for_japan:": "\U0001f1ef\U0001f1f5", ":flag_for_jersey:": "\U0001f1ef\U0001f1ea", ":flag_for_jordan:": "\U0001f1ef\U0001f1f4", ":flag_for_kazakhstan:": "\U0001f1f0\U0001f1ff", ":flag_for_kenya:": "\U0001f1f0\U0001f1ea", ":flag_for_kiribati:": "\U0001f1f0\U0001f1ee", ":flag_for_kosovo:": "\U0001f1fd\U0001f1f0", ":flag_for_kuwait:": "\U0001f1f0\U0001f1fc", ":flag_for_kyrgyzstan:": "\U0001f1f0\U0001f1ec", ":flag_for_laos:": "\U0001f1f1\U0001f1e6", ":flag_for_latvia:": "\U0001f1f1\U0001f1fb", ":flag_for_lebanon:": "\U0001f1f1\U0001f1e7", ":flag_for_lesotho:": "\U0001f1f1\U0001f1f8", ":flag_for_liberia:": "\U0001f1f1\U0001f1f7", ":flag_for_libya:": "\U0001f1f1\U0001f1fe", ":flag_for_liechtenstein:": "\U0001f1f1\U0001f1ee", ":flag_for_lithuania:": "\U0001f1f1\U0001f1f9", ":flag_for_luxembourg:": "\U0001f1f1\U0001f1fa", ":flag_for_macao_sar_china:": "\U0001f1f2\U0001f1f4", ":flag_for_madagascar:": "\U0001f1f2\U0001f1ec", ":flag_for_malawi:": "\U0001f1f2\U0001f1fc", ":flag_for_malaysia:": "\U0001f1f2\U0001f1fe", ":flag_for_maldives:": "\U0001f1f2\U0001f1fb", ":flag_for_mali:": "\U0001f1f2\U0001f1f1", ":flag_for_malta:": "\U0001f1f2\U0001f1f9", ":flag_for_marshall_islands:": "\U0001f1f2\U0001f1ed", ":flag_for_martinique:": "\U0001f1f2\U0001f1f6", ":flag_for_mauritania:": "\U0001f1f2\U0001f1f7", ":flag_for_mauritius:": "\U0001f1f2\U0001f1fa", ":flag_for_mayotte:": "\U0001f1fe\U0001f1f9", ":flag_for_mexico:": "\U0001f1f2\U0001f1fd", ":flag_for_micronesia:": "\U0001f1eb\U0001f1f2", ":flag_for_moldova:": "\U0001f1f2\U0001f1e9", ":flag_for_monaco:": "\U0001f1f2\U0001f1e8", ":flag_for_mongolia:": "\U0001f1f2\U0001f1f3", ":flag_for_montenegro:": "\U0001f1f2\U0001f1ea", ":flag_for_montserrat:": "\U0001f1f2\U0001f1f8", ":flag_for_morocco:": "\U0001f1f2\U0001f1e6", ":flag_for_mozambique:": "\U0001f1f2\U0001f1ff", ":flag_for_myanmar_burma:": "\U0001f1f2\U0001f1f2", ":flag_for_namibia:": "\U0001f1f3\U0001f1e6", ":flag_for_nauru:": "\U0001f1f3\U0001f1f7", ":flag_for_nepal:": "\U0001f1f3\U0001f1f5", ":flag_for_netherlands:": "\U0001f1f3\U0001f1f1", ":flag_for_new_caledonia:": "\U0001f1f3\U0001f1e8", ":flag_for_new_zealand:": "\U0001f1f3\U0001f1ff", ":flag_for_nicaragua:": "\U0001f1f3\U0001f1ee", ":flag_for_niger:": "\U0001f1f3\U0001f1ea", ":flag_for_nigeria:": "\U0001f1f3\U0001f1ec", ":flag_for_niue:": "\U0001f1f3\U0001f1fa", ":flag_for_norfolk_island:": "\U0001f1f3\U0001f1eb", ":flag_for_north_korea:": "\U0001f1f0\U0001f1f5", ":flag_for_north_macedonia:": "\U0001f1f2\U0001f1f0", ":flag_for_northern_mariana_islands:": "\U0001f1f2\U0001f1f5", ":flag_for_norway:": "\U0001f1f3\U0001f1f4", ":flag_for_oman:": "\U0001f1f4\U0001f1f2", ":flag_for_pakistan:": "\U0001f1f5\U0001f1f0", ":flag_for_palau:": "\U0001f1f5\U0001f1fc", ":flag_for_palestinian_territories:": "\U0001f1f5\U0001f1f8", ":flag_for_panama:": "\U0001f1f5\U0001f1e6", ":flag_for_papua_new_guinea:": "\U0001f1f5\U0001f1ec", ":flag_for_paraguay:": "\U0001f1f5\U0001f1fe", ":flag_for_peru:": "\U0001f1f5\U0001f1ea", ":flag_for_philippines:": "\U0001f1f5\U0001f1ed", ":flag_for_pitcairn_islands:": "\U0001f1f5\U0001f1f3", ":flag_for_poland:": "\U0001f1f5\U0001f1f1", ":flag_for_portugal:": "\U0001f1f5\U0001f1f9", ":flag_for_puerto_rico:": "\U0001f1f5\U0001f1f7", ":flag_for_qatar:": "\U0001f1f6\U0001f1e6", ":flag_for_reunion:": "\U0001f1f7\U0001f1ea", ":flag_for_romania:": "\U0001f1f7\U0001f1f4", ":flag_for_russia:": "\U0001f1f7\U0001f1fa", ":flag_for_rwanda:": "\U0001f1f7\U0001f1fc", ":flag_for_samoa:": "\U0001f1fc\U0001f1f8", ":flag_for_san_marino:": "\U0001f1f8\U0001f1f2", ":flag_for_sao_tome_and_principe:": "\U0001f1f8\U0001f1f9", ":flag_for_saudi_arabia:": "\U0001f1f8\U0001f1e6", ":flag_for_scotland:": "\U0001f3f4\U000e0067\U000e0062\U000e0073\U000e0063\U000e0074\U000e007f", ":flag_for_senegal:": "\U0001f1f8\U0001f1f3", ":flag_for_serbia:": "\U0001f1f7\U0001f1f8", ":flag_for_seychelles:": "\U0001f1f8\U0001f1e8", ":flag_for_sierra_leone:": "\U0001f1f8\U0001f1f1", ":flag_for_singapore:": "\U0001f1f8\U0001f1ec", ":flag_for_sint_maarten:": "\U0001f1f8\U0001f1fd", ":flag_for_slovakia:": "\U0001f1f8\U0001f1f0", ":flag_for_slovenia:": "\U0001f1f8\U0001f1ee", ":flag_for_solomon_islands:": "\U0001f1f8\U0001f1e7", ":flag_for_somalia:": "\U0001f1f8\U0001f1f4", ":flag_for_south_africa:": "\U0001f1ff\U0001f1e6", ":flag_for_south_georgia_and_south_sandwich_islands:": "\U0001f1ec\U0001f1f8", ":flag_for_south_korea:": "\U0001f1f0\U0001f1f7", ":flag_for_south_sudan:": "\U0001f1f8\U0001f1f8", ":flag_for_spain:": "\U0001f1ea\U0001f1f8", ":flag_for_sri_lanka:": "\U0001f1f1\U0001f1f0", ":flag_for_st_barthelemy:": "\U0001f1e7\U0001f1f1", ":flag_for_st_helena:": "\U0001f1f8\U0001f1ed", ":flag_for_st_kitts_and_nevis:": "\U0001f1f0\U0001f1f3", ":flag_for_st_lucia:": "\U0001f1f1\U0001f1e8", ":flag_for_st_martin:": "\U0001f1f2\U0001f1eb", ":flag_for_st_pierre_and_miquelon:": "\U0001f1f5\U0001f1f2", ":flag_for_st_vincent_and_grenadines:": "\U0001f1fb\U0001f1e8", ":flag_for_sudan:": "\U0001f1f8\U0001f1e9", ":flag_for_suriname:": "\U0001f1f8\U0001f1f7", ":flag_for_svalbard_and_jan_mayen:": "\U0001f1f8\U0001f1ef", ":flag_for_sweden:": "\U0001f1f8\U0001f1ea", ":flag_for_switzerland:": "\U0001f1e8\U0001f1ed", ":flag_for_syria:": "\U0001f1f8\U0001f1fe", ":flag_for_taiwan:": "\U0001f1f9\U0001f1fc", ":flag_for_tajikistan:": "\U0001f1f9\U0001f1ef", ":flag_for_tanzania:": "\U0001f1f9\U0001f1ff", ":flag_for_thailand:": "\U0001f1f9\U0001f1ed", ":flag_for_timor_leste:": "\U0001f1f9\U0001f1f1", ":flag_for_togo:": "\U0001f1f9\U0001f1ec", ":flag_for_tokelau:": "\U0001f1f9\U0001f1f0", ":flag_for_tonga:": "\U0001f1f9\U0001f1f4", ":flag_for_trinidad_and_tobago:": "\U0001f1f9\U0001f1f9", ":flag_for_tristan_da_cunha:": "\U0001f1f9\U0001f1e6", ":flag_for_tunisia:": "\U0001f1f9\U0001f1f3", ":flag_for_turkey:": "\U0001f1f9\U0001f1f7", ":flag_for_turkmenistan:": "\U0001f1f9\U0001f1f2", ":flag_for_turks_and_caicos_islands:": "\U0001f1f9\U0001f1e8", ":flag_for_tuvalu:": "\U0001f1f9\U0001f1fb", ":flag_for_uganda:": "\U0001f1fa\U0001f1ec", ":flag_for_ukraine:": "\U0001f1fa\U0001f1e6", ":flag_for_united_arab_emirates:": "\U0001f1e6\U0001f1ea", ":flag_for_united_kingdom:": "\U0001f1ec\U0001f1e7", ":flag_for_united_nations:": "\U0001f1fa\U0001f1f3", ":flag_for_united_states:": "\U0001f1fa\U0001f1f8", ":flag_for_uruguay:": "\U0001f1fa\U0001f1fe", ":flag_for_us_outlying_islands:": "\U0001f1fa\U0001f1f2", ":flag_for_us_virgin_islands:": "\U0001f1fb\U0001f1ee", ":flag_for_uzbekistan:": "\U0001f1fa\U0001f1ff", ":flag_for_vanuatu:": "\U0001f1fb\U0001f1fa", ":flag_for_vatican_city:": "\U0001f1fb\U0001f1e6", ":flag_for_venezuela:": "\U0001f1fb\U0001f1ea", ":flag_for_vietnam:": "\U0001f1fb\U0001f1f3", ":flag_for_wales:": "\U0001f3f4\U000e0067\U000e0062\U000e0077\U000e006c\U000e0073\U000e007f", ":flag_for_wallis_and_futuna:": "\U0001f1fc\U0001f1eb", ":flag_for_western_sahara:": "\U0001f1ea\U0001f1ed", ":flag_for_yemen:": "\U0001f1fe\U0001f1ea", ":flag_for_zambia:": "\U0001f1ff\U0001f1f2", ":flag_for_zimbabwe:": "\U0001f1ff\U0001f1fc", ":flag_in_hole:": "\u26f3", ":flags:": "\U0001f38f", ":flamingo:": "\U0001f9a9", ":flashlight:": "\U0001f526", ":flat_shoe:": "\U0001f97f", ":flatbread:": "\U0001fad3", ":fleur_de_lis:": "\u269c\ufe0f", ":flexed_biceps:": "\U0001f4aa", ":flight_arrival:": "\U0001f6ec", ":flight_departure:": "\U0001f6eb", ":flipper:": "\U0001f42c", ":floppy_disk:": "\U0001f4be", ":flower_playing_cards:": "\U0001f3b4", ":flushed:": "\U0001f633", ":flushed_face:": "\U0001f633", ":fly:": "\U0001fab0", ":flying_disc:": "\U0001f94f", ":flying_saucer:": "\U0001f6f8", ":fog:": "\U0001f32b\ufe0f", ":foggy:": "\U0001f301", ":folded_hands:": "\U0001f64f", ":fondue:": "\U0001fad5", ":foot:": "\U0001f9b6", ":football:": "\U0001f3c8", ":footprints:": "\U0001f463", ":fork_and_knife:": "\U0001f374", ":fork_and_knife_with_plate:": "\U0001f37d\ufe0f", ":fortune_cookie:": "\U0001f960", ":fountain:": "\u26f2", ":fountain_pen:": "\U0001f58b\ufe0f", ":four:": "4\ufe0f\u20e3", ":four_leaf_clover:": "\U0001f340", ":four_o_clock:": "\U0001f553", ":four_thirty:": "\U0001f55f", ":fox:": "\U0001f98a", ":fox_face:": "\U0001f98a", ":fr:": "\U0001f1eb\U0001f1f7", ":framed_picture:": "\U0001f5bc\ufe0f", ":free:": "\U0001f193", ":free_button:": "\U0001f193", ":french_fries:": "\U0001f35f", ":french_guiana:": "\U0001f1ec\U0001f1eb", ":french_polynesia:": "\U0001f1f5\U0001f1eb", ":french_southern_territories:": "\U0001f1f9\U0001f1eb", ":fried_egg:": "\U0001f373", ":fried_shrimp:": "\U0001f364", ":fries:": "\U0001f35f", ":frog:": "\U0001f438", ":front_facing_baby_chick:": "\U0001f425", ":frowning:": "\U0001f626", ":frowning_face:": "\u2639\ufe0f", ":frowning_face_with_open_mouth:": "\U0001f626", ":frowning_man:": "\U0001f64d\u200d\u2642\ufe0f", ":frowning_person:": "\U0001f64d", ":frowning_woman:": "\U0001f64d\u200d\u2640\ufe0f", ":fu:": "\U0001f595", ":fuel_pump:": "\u26fd", ":fuelpump:": "\u26fd", ":full_moon:": "\U0001f315", ":full_moon_face:": "\U0001f31d", ":full_moon_with_face:": "\U0001f31d", ":funeral_urn:": "\u26b1\ufe0f", ":gabon:": "\U0001f1ec\U0001f1e6", ":gambia:": "\U0001f1ec\U0001f1f2", ":game_die:": "\U0001f3b2", ":garlic:": "\U0001f9c4", ":gb:": "\U0001f1ec\U0001f1e7", ":gear:": "\u2699\ufe0f", ":gem:": "\U0001f48e", ":gem_stone:": "\U0001f48e", ":gemini:": "\u264a", ":genie:": "\U0001f9de", ":genie_man:": "\U0001f9de\u200d\u2642\ufe0f", ":genie_woman:": "\U0001f9de\u200d\u2640\ufe0f", ":georgia:": "\U0001f1ec\U0001f1ea", ":ghana:": "\U0001f1ec\U0001f1ed", ":ghost:": "\U0001f47b", ":gibraltar:": "\U0001f1ec\U0001f1ee", ":gift:": "\U0001f381", ":gift_heart:": "\U0001f49d", ":giraffe:": "\U0001f992", ":girl:": "\U0001f467", ":glass_of_milk:": "\U0001f95b", ":glasses:": "\U0001f453", ":globe_showing_americas:": "\U0001f30e", ":globe_showing_asia_australia:": "\U0001f30f", ":globe_showing_europe_africa:": "\U0001f30d", ":globe_with_meridians:": "\U0001f310", ":gloves:": "\U0001f9e4", ":glowing_star:": "\U0001f31f", ":goal_net:": "\U0001f945", ":goat:": "\U0001f410", ":goblin:": "\U0001f47a", ":goggles:": "\U0001f97d", ":golf:": "\u26f3", ":golfing:": "\U0001f3cc\ufe0f", ":golfing_man:": "\U0001f3cc\ufe0f\u200d\u2642\ufe0f", ":golfing_woman:": "\U0001f3cc\ufe0f\u200d\u2640\ufe0f", ":gorilla:": "\U0001f98d", ":graduation_cap:": "\U0001f393", ":grapes:": "\U0001f347", ":greece:": "\U0001f1ec\U0001f1f7", ":green_apple:": "\U0001f34f", ":green_book:": "\U0001f4d7", ":green_circle:": "\U0001f7e2", ":green_heart:": "\U0001f49a", ":green_salad:": "\U0001f957", ":green_square:": "\U0001f7e9", ":greenland:": "\U0001f1ec\U0001f1f1", ":grenada:": "\U0001f1ec\U0001f1e9", ":grey_exclamation:": "\u2755", ":grey_question:": "\u2754", ":grimacing:": "\U0001f62c", ":grimacing_face:": "\U0001f62c", ":grin:": "\U0001f601", ":grinning:": "\U0001f600", ":grinning_cat:": "\U0001f63a", ":grinning_cat_with_smiling_eyes:": "\U0001f638", ":grinning_face:": "\U0001f600", ":grinning_face_with_big_eyes:": "\U0001f603", ":grinning_face_with_smiling_eyes:": "\U0001f604", ":grinning_face_with_sweat:": "\U0001f605", ":grinning_squinting_face:": "\U0001f606", ":growing_heart:": "\U0001f497", ":guadeloupe:": "\U0001f1ec\U0001f1f5", ":guam:": "\U0001f1ec\U0001f1fa", ":guard:": "\U0001f482", ":guardsman:": "\U0001f482\u200d\u2642\ufe0f", ":guardswoman:": "\U0001f482\u200d\u2640\ufe0f", ":guatemala:": "\U0001f1ec\U0001f1f9", ":guernsey:": "\U0001f1ec\U0001f1ec", ":guide_dog:": "\U0001f9ae", ":guinea:": "\U0001f1ec\U0001f1f3", ":guinea_bissau:": "\U0001f1ec\U0001f1fc", ":guitar:": "\U0001f3b8", ":gun:": "\U0001f52b", ":guyana:": "\U0001f1ec\U0001f1fe", ":haircut:": "\U0001f487", ":haircut_man:": "\U0001f487\u200d\u2642\ufe0f", ":haircut_woman:": "\U0001f487\u200d\u2640\ufe0f", ":haiti:": "\U0001f1ed\U0001f1f9", ":hamburger:": "\U0001f354", ":hammer:": "\U0001f528", ":hammer_and_pick:": "\u2692\ufe0f", ":hammer_and_wrench:": "\U0001f6e0\ufe0f", ":hamster:": "\U0001f439", ":hand:": "\u270b", ":hand_over_mouth:": "\U0001f92d", ":hand_with_fingers_splayed:": "\U0001f590\ufe0f", ":handbag:": "\U0001f45c", ":handball_person:": "\U0001f93e", ":handshake:": "\U0001f91d", ":hankey:": "\U0001f4a9", ":hash:": "#\ufe0f\u20e3", ":hatched_chick:": "\U0001f425", ":hatching_chick:": "\U0001f423", ":headphone:": "\U0001f3a7", ":headphones:": "\U0001f3a7", ":headstone:": "\U0001faa6", ":health_worker:": "\U0001f9d1\u200d\u2695\ufe0f", ":hear_no_evil:": "\U0001f649", ":hear_no_evil_monkey:": "\U0001f649", ":heard_mcdonald_islands:": "\U0001f1ed\U0001f1f2", ":heart:": "\u2764\ufe0f", ":heart_decoration:": "\U0001f49f", ":heart_exclamation:": "\u2763\ufe0f", ":heart_eyes:": "\U0001f60d", ":heart_eyes_cat:": "\U0001f63b", ":heart_suit:": "\u2665\ufe0f", ":heart_with_arrow:": "\U0001f498", ":heart_with_ribbon:": "\U0001f49d", ":heartbeat:": "\U0001f493", ":heartpulse:": "\U0001f497", ":hearts:": "\u2665\ufe0f", ":heavy_check_mark:": "\u2714\ufe0f", ":heavy_division_sign:": "\u2797", ":heavy_dollar_sign:": "\U0001f4b2", ":heavy_exclamation_mark:": "\u2757", ":heavy_heart_exclamation:": "\u2763\ufe0f", ":heavy_minus_sign:": "\u2796", ":heavy_multiplication_x:": "\u2716\ufe0f", ":heavy_plus_sign:": "\u2795", ":hedgehog:": "\U0001f994", ":helicopter:": "\U0001f681", ":herb:": "\U0001f33f", ":hibiscus:": "\U0001f33a", ":high_brightness:": "\U0001f506", ":high_heel:": "\U0001f460", ":high_heeled_shoe:": "\U0001f460", ":high_speed_train:": "\U0001f684", ":high_voltage:": "\u26a1", ":hiking_boot:": "\U0001f97e", ":hindu_temple:": "\U0001f6d5", ":hippopotamus:": "\U0001f99b", ":hocho:": "\U0001f52a", ":hole:": "\U0001f573\ufe0f", ":hollow_red_circle:": "\u2b55", ":honduras:": "\U0001f1ed\U0001f1f3", ":honey_pot:": "\U0001f36f", ":honeybee:": "\U0001f41d", ":hong_kong:": "\U0001f1ed\U0001f1f0", ":hook:": "\U0001fa9d", ":horizontal_traffic_light:": "\U0001f6a5", ":horse:": "\U0001f434", ":horse_face:": "\U0001f434", ":horse_racing:": "\U0001f3c7", ":hospital:": "\U0001f3e5", ":hot_beverage:": "\u2615", ":hot_dog:": "\U0001f32d", ":hot_face:": "\U0001f975", ":hot_pepper:": "\U0001f336\ufe0f", ":hot_springs:": "\u2668\ufe0f", ":hotdog:": "\U0001f32d", ":hotel:": "\U0001f3e8", ":hotsprings:": "\u2668\ufe0f", ":hourglass:": "\u231b", ":hourglass_done:": "\u231b", ":hourglass_flowing_sand:": "\u23f3", ":hourglass_not_done:": "\u23f3", ":house:": "\U0001f3e0", ":house_with_garden:": "\U0001f3e1", ":houses:": "\U0001f3d8\ufe0f", ":hugging_face:": "\U0001f917", ":hugs:": "\U0001f917", ":hundred_points:": "\U0001f4af", ":hungary:": "\U0001f1ed\U0001f1fa", ":hushed:": "\U0001f62f", ":hushed_face:": "\U0001f62f", ":hut:": "\U0001f6d6", ":ice:": "\U0001f9ca", ":ice_cream:": "\U0001f368", ":ice_cube:": "\U0001f9ca", ":ice_hockey:": "\U0001f3d2", ":ice_skate:": "\u26f8\ufe0f", ":icecream:": "\U0001f366", ":iceland:": "\U0001f1ee\U0001f1f8", ":id:": "\U0001f194", ":id_button:": "\U0001f194", ":ideograph_advantage:": "\U0001f250", ":imp:": "\U0001f47f", ":inbox_tray:": "\U0001f4e5", ":incoming_envelope:": "\U0001f4e8", ":index_pointing_up:": "\u261d\ufe0f", ":india:": "\U0001f1ee\U0001f1f3", ":indonesia:": "\U0001f1ee\U0001f1e9", ":infinity:": "\u267e\ufe0f", ":information:": "\u2139\ufe0f", ":information_desk_person:": "\U0001f481", ":information_source:": "\u2139\ufe0f", ":innocent:": "\U0001f607", ":input_latin_letters:": "\U0001f524", ":input_latin_lowercase:": "\U0001f521", ":input_latin_uppercase:": "\U0001f520", ":input_numbers:": "\U0001f522", ":input_symbols:": "\U0001f523", ":interrobang:": "\u2049\ufe0f", ":iphone:": "\U0001f4f1", ":iran:": "\U0001f1ee\U0001f1f7", ":iraq:": "\U0001f1ee\U0001f1f6", ":ireland:": "\U0001f1ee\U0001f1ea", ":isle_of_man:": "\U0001f1ee\U0001f1f2", ":israel:": "\U0001f1ee\U0001f1f1", ":it:": "\U0001f1ee\U0001f1f9", ":izakaya_lantern:": "\U0001f3ee", ":jack_o_lantern:": "\U0001f383", ":jamaica:": "\U0001f1ef\U0001f1f2", ":japan:": "\U0001f5fe", ":japanese_acceptable_button:": "\U0001f251", ":japanese_application_button:": "\U0001f238", ":japanese_bargain_button:": "\U0001f250", ":japanese_castle:": "\U0001f3ef", ":japanese_congratulations_button:": "\u3297\ufe0f", ":japanese_discount_button:": "\U0001f239", ":japanese_dolls:": "\U0001f38e", ":japanese_free_of_charge_button:": "\U0001f21a", ":japanese_goblin:": "\U0001f47a", ":japanese_here_button:": "\U0001f201", ":japanese_monthly_amount_button:": "\U0001f237\ufe0f", ":japanese_no_vacancy_button:": "\U0001f235", ":japanese_not_free_of_charge_button:": "\U0001f236", ":japanese_ogre:": "\U0001f479", ":japanese_open_for_business_button:": "\U0001f23a", ":japanese_passing_grade_button:": "\U0001f234", ":japanese_post_office:": "\U0001f3e3", ":japanese_prohibited_button:": "\U0001f232", ":japanese_reserved_button:": "\U0001f22f", ":japanese_secret_button:": "\u3299\ufe0f", ":japanese_service_charge_button:": "\U0001f202\ufe0f", ":japanese_symbol_for_beginner:": "\U0001f530", ":japanese_vacancy_button:": "\U0001f233", ":jeans:": "\U0001f456", ":jersey:": "\U0001f1ef\U0001f1ea", ":jigsaw:": "\U0001f9e9", ":joker:": "\U0001f0cf", ":jordan:": "\U0001f1ef\U0001f1f4", ":joy:": "\U0001f602", ":joy_cat:": "\U0001f639", ":joystick:": "\U0001f579\ufe0f", ":jp:": "\U0001f1ef\U0001f1f5", ":judge:": "\U0001f9d1\u200d\u2696\ufe0f", ":juggling_person:": "\U0001f939", ":kaaba:": "\U0001f54b", ":kangaroo:": "\U0001f998", ":kazakhstan:": "\U0001f1f0\U0001f1ff", ":kenya:": "\U0001f1f0\U0001f1ea", ":key:": "\U0001f511", ":keyboard:": "\u2328\ufe0f", ":keycap_0:": "0\ufe0f\u20e3", ":keycap_10:": "\U0001f51f", ":keycap_1:": "1\ufe0f\u20e3", ":keycap_2:": "2\ufe0f\u20e3", ":keycap_3:": "3\ufe0f\u20e3", ":keycap_4:": "4\ufe0f\u20e3", ":keycap_5:": "5\ufe0f\u20e3", ":keycap_6:": "6\ufe0f\u20e3", ":keycap_7:": "7\ufe0f\u20e3", ":keycap_8:": "8\ufe0f\u20e3", ":keycap_9:": "9\ufe0f\u20e3", ":keycap_asterisk:": "*\ufe0f\u20e3", ":keycap_hash:": "#\ufe0f\u20e3", ":keycap_ten:": "\U0001f51f", ":kick_scooter:": "\U0001f6f4", ":kimono:": "\U0001f458", ":kiribati:": "\U0001f1f0\U0001f1ee", ":kiss:": "\U0001f48b", ":kiss_man_man:": "\U0001f468\u200d\u2764\ufe0f\u200d\U0001f48b\u200d\U0001f468", ":kiss_mark:": "\U0001f48b", ":kiss_woman_man:": "\U0001f469\u200d\u2764\ufe0f\u200d\U0001f48b\u200d\U0001f468", ":kiss_woman_woman:": "\U0001f469\u200d\u2764\ufe0f\u200d\U0001f48b\u200d\U0001f469", ":kissing:": "\U0001f617", ":kissing_cat:": "\U0001f63d", ":kissing_closed_eyes:": "\U0001f61a", ":kissing_face:": "\U0001f617", ":kissing_face_with_closed_eyes:": "\U0001f61a", ":kissing_face_with_smiling_eyes:": "\U0001f619", ":kissing_heart:": "\U0001f618", ":kissing_smiling_eyes:": "\U0001f619", ":kitchen_knife:": "\U0001f52a", ":kite:": "\U0001fa81", ":kiwi_fruit:": "\U0001f95d", ":kneeling_man:": "\U0001f9ce\u200d\u2642\ufe0f", ":kneeling_person:": "\U0001f9ce", ":kneeling_woman:": "\U0001f9ce\u200d\u2640\ufe0f", ":knife:": "\U0001f52a", ":knot:": "\U0001faa2", ":koala:": "\U0001f428", ":koko:": "\U0001f201", ":kosovo:": "\U0001f1fd\U0001f1f0", ":kr:": "\U0001f1f0\U0001f1f7", ":kuwait:": "\U0001f1f0\U0001f1fc", ":kyrgyzstan:": "\U0001f1f0\U0001f1ec", ":lab_coat:": "\U0001f97c", ":label:": "\U0001f3f7\ufe0f", ":lacrosse:": "\U0001f94d", ":ladder:": "\U0001fa9c", ":lady_beetle:": "\U0001f41e", ":lantern:": "\U0001f3ee", ":laos:": "\U0001f1f1\U0001f1e6", ":laptop:": "\U0001f4bb", ":large_blue_circle:": "\U0001f535", ":large_blue_diamond:": "\U0001f537", ":large_orange_diamond:": "\U0001f536", ":last_quarter_moon:": "\U0001f317", ":last_quarter_moon_face:": "\U0001f31c", ":last_quarter_moon_with_face:": "\U0001f31c", ":last_track_button:": "\u23ee\ufe0f", ":latin_cross:": "\u271d\ufe0f", ":latvia:": "\U0001f1f1\U0001f1fb", ":laughing:": "\U0001f606", ":leaf_fluttering_in_wind:": "\U0001f343", ":leafy_green:": "\U0001f96c", ":leaves:": "\U0001f343", ":lebanon:": "\U0001f1f1\U0001f1e7", ":ledger:": "\U0001f4d2", ":left_arrow:": "\u2b05\ufe0f", ":left_arrow_curving_right:": "\u21aa\ufe0f", ":left_facing_fist:": "\U0001f91b", ":left_luggage:": "\U0001f6c5", ":left_right_arrow:": "\u2194\ufe0f", ":left_speech_bubble:": "\U0001f5e8\ufe0f", ":leftwards_arrow_with_hook:": "\u21a9\ufe0f", ":leg:": "\U0001f9b5", ":lemon:": "\U0001f34b", ":leo:": "\u264c", ":leopard:": "\U0001f406", ":lesotho:": "\U0001f1f1\U0001f1f8", ":level_slider:": "\U0001f39a\ufe0f", ":liberia:": "\U0001f1f1\U0001f1f7", ":libra:": "\u264e", ":libya:": "\U0001f1f1\U0001f1fe", ":liechtenstein:": "\U0001f1f1\U0001f1ee", ":light_bulb:": "\U0001f4a1", ":light_rail:": "\U0001f688", ":light_skin_tone:": "\U0001f3fb", ":link:": "\U0001f517", ":linked_paperclips:": "\U0001f587\ufe0f", ":lion:": "\U0001f981", ":lips:": "\U0001f444", ":lipstick:": "\U0001f484", ":lithuania:": "\U0001f1f1\U0001f1f9", ":litter_in_bin_sign:": "\U0001f6ae", ":lizard:": "\U0001f98e", ":llama:": "\U0001f999", ":lobster:": "\U0001f99e", ":lock:": "\U0001f512", ":lock_with_ink_pen:": "\U0001f50f", ":locked:": "\U0001f512", ":locked_with_key:": "\U0001f510", ":locked_with_pen:": "\U0001f50f", ":locomotive:": "\U0001f682", ":lollipop:": "\U0001f36d", ":long_drum:": "\U0001fa98", ":loop:": "\u27bf", ":lotion_bottle:": "\U0001f9f4", ":lotus_position:": "\U0001f9d8", ":lotus_position_man:": "\U0001f9d8\u200d\u2642\ufe0f", ":lotus_position_woman:": "\U0001f9d8\u200d\u2640\ufe0f", ":loud_sound:": "\U0001f50a", ":loudly_crying_face:": "\U0001f62d", ":loudspeaker:": "\U0001f4e2", ":love_hotel:": "\U0001f3e9", ":love_letter:": "\U0001f48c", ":love_you_gesture:": "\U0001f91f", ":low_brightness:": "\U0001f505", ":luggage:": "\U0001f9f3", ":lungs:": "\U0001fac1", ":luxembourg:": "\U0001f1f1\U0001f1fa", ":lying_face:": "\U0001f925", ":m:": "\u24c2\ufe0f", ":macau:": "\U0001f1f2\U0001f1f4", ":macedonia:": "\U0001f1f2\U0001f1f0", ":madagascar:": "\U0001f1f2\U0001f1ec", ":mag:": "\U0001f50d", ":mag_right:": "\U0001f50e", ":mage:": "\U0001f9d9", ":mage_man:": "\U0001f9d9\u200d\u2642\ufe0f", ":mage_woman:": "\U0001f9d9\u200d\u2640\ufe0f", ":magic_wand:": "\U0001fa84", ":magnet:": "\U0001f9f2", ":magnifying_glass_tilted_left:": "\U0001f50d", ":magnifying_glass_tilted_right:": "\U0001f50e", ":mahjong:": "\U0001f004", ":mahjong_red_dragon:": "\U0001f004", ":mailbox:": "\U0001f4eb", ":mailbox_closed:": "\U0001f4ea", ":mailbox_with_mail:": "\U0001f4ec", ":mailbox_with_no_mail:": "\U0001f4ed", ":malawi:": "\U0001f1f2\U0001f1fc", ":malaysia:": "\U0001f1f2\U0001f1fe", ":maldives:": "\U0001f1f2\U0001f1fb", ":male_detective:": "\U0001f575\ufe0f\u200d\u2642\ufe0f", ":male_sign:": "\u2642\ufe0f", ":mali:": "\U0001f1f2\U0001f1f1", ":malta:": "\U0001f1f2\U0001f1f9", ":mammoth:": "\U0001f9a3", ":man:": "\U0001f468", ":man_artist:": "\U0001f468\u200d\U0001f3a8", ":man_astronaut:": "\U0001f468\u200d\U0001f680", ":man_bald:": "\U0001f468\u200d\U0001f9b2", ":man_biking:": "\U0001f6b4\u200d\u2642\ufe0f", ":man_bouncing_ball:": "\u26f9\ufe0f\u200d\u2642\ufe0f", ":man_bowing:": "\U0001f647\u200d\u2642\ufe0f", ":man_cartwheeling:": "\U0001f938\u200d\u2642\ufe0f", ":man_climbing:": "\U0001f9d7\u200d\u2642\ufe0f", ":man_construction_worker:": "\U0001f477\u200d\u2642\ufe0f", ":man_cook:": "\U0001f468\u200d\U0001f373", ":man_dancing:": "\U0001f57a", ":man_detective:": "\U0001f575\ufe0f\u200d\u2642\ufe0f", ":man_elf:": "\U0001f9dd\u200d\u2642\ufe0f", ":man_facepalming:": "\U0001f926\u200d\u2642\ufe0f", ":man_factory_worker:": "\U0001f468\u200d\U0001f3ed", ":man_fairy:": "\U0001f9da\u200d\u2642\ufe0f", ":man_farmer:": "\U0001f468\u200d\U0001f33e", ":man_feeding_baby:": "\U0001f468\u200d\U0001f37c", ":man_firefighter:": "\U0001f468\u200d\U0001f692", ":man_frowning:": "\U0001f64d\u200d\u2642\ufe0f", ":man_genie:": "\U0001f9de\u200d\u2642\ufe0f", ":man_gesturing_no:": "\U0001f645\u200d\u2642\ufe0f", ":man_gesturing_ok:": "\U0001f646\u200d\u2642\ufe0f", ":man_getting_haircut:": "\U0001f487\u200d\u2642\ufe0f", ":man_getting_massage:": "\U0001f486\u200d\u2642\ufe0f", ":man_golfing:": "\U0001f3cc\ufe0f\u200d\u2642\ufe0f", ":man_guard:": "\U0001f482\u200d\u2642\ufe0f", ":man_health_worker:": "\U0001f468\u200d\u2695\ufe0f", ":man_in_lotus_position:": "\U0001f9d8\u200d\u2642\ufe0f", ":man_in_manual_wheelchair:": "\U0001f468\u200d\U0001f9bd", ":man_in_motorized_wheelchair:": "\U0001f468\u200d\U0001f9bc", ":man_in_steamy_room:": "\U0001f9d6\u200d\u2642\ufe0f", ":man_in_tuxedo:": "\U0001f935\u200d\u2642\ufe0f", ":man_judge:": "\U0001f468\u200d\u2696\ufe0f", ":man_juggling:": "\U0001f939\u200d\u2642\ufe0f", ":man_kneeling:": "\U0001f9ce\u200d\u2642\ufe0f", ":man_lifting_weights:": "\U0001f3cb\ufe0f\u200d\u2642\ufe0f", ":man_mage:": "\U0001f9d9\u200d\u2642\ufe0f", ":man_mechanic:": "\U0001f468\u200d\U0001f527", ":man_mountain_biking:": "\U0001f6b5\u200d\u2642\ufe0f", ":man_office_worker:": "\U0001f468\u200d\U0001f4bc", ":man_pilot:": "\U0001f468\u200d\u2708\ufe0f", ":man_playing_handball:": "\U0001f93e\u200d\u2642\ufe0f", ":man_playing_water_polo:": "\U0001f93d\u200d\u2642\ufe0f", ":man_police_officer:": "\U0001f46e\u200d\u2642\ufe0f", ":man_pouting:": "\U0001f64e\u200d\u2642\ufe0f", ":man_raising_hand:": "\U0001f64b\u200d\u2642\ufe0f", ":man_rowing_boat:": "\U0001f6a3\u200d\u2642\ufe0f", ":man_running:": "\U0001f3c3\u200d\u2642\ufe0f", ":man_s_shoe:": "\U0001f45e", ":man_scientist:": "\U0001f468\u200d\U0001f52c", ":man_shrugging:": "\U0001f937\u200d\u2642\ufe0f", ":man_singer:": "\U0001f468\u200d\U0001f3a4", ":man_standing:": "\U0001f9cd\u200d\u2642\ufe0f", ":man_student:": "\U0001f468\u200d\U0001f393", ":man_superhero:": "\U0001f9b8\u200d\u2642\ufe0f", ":man_supervillain:": "\U0001f9b9\u200d\u2642\ufe0f", ":man_surfing:": "\U0001f3c4\u200d\u2642\ufe0f", ":man_swimming:": "\U0001f3ca\u200d\u2642\ufe0f", ":man_teacher:": "\U0001f468\u200d\U0001f3eb", ":man_technologist:": "\U0001f468\u200d\U0001f4bb", ":man_tipping_hand:": "\U0001f481\u200d\u2642\ufe0f", ":man_vampire:": "\U0001f9db\u200d\u2642\ufe0f", ":man_walking:": "\U0001f6b6\u200d\u2642\ufe0f", ":man_wearing_turban:": "\U0001f473\u200d\u2642\ufe0f", ":man_with_beard:": "\U0001f9d4", ":man_with_blond_hair:": "\U0001f471\u200d\u2642\ufe0f", ":man_with_curly_hair:": "\U0001f468\u200d\U0001f9b1", ":man_with_gua_pi_mao:": "\U0001f472", ":man_with_probing_cane:": "\U0001f468\u200d\U0001f9af", ":man_with_red_hair:": "\U0001f468\u200d\U0001f9b0", ":man_with_turban:": "\U0001f473\u200d\u2642\ufe0f", ":man_with_veil:": "\U0001f470\u200d\u2642\ufe0f", ":man_with_white_cane:": "\U0001f468\u200d\U0001f9af", ":man_with_white_hair:": "\U0001f468\u200d\U0001f9b3", ":man_zombie:": "\U0001f9df\u200d\u2642\ufe0f", ":mandarin:": "\U0001f34a", ":mango:": "\U0001f96d", ":mans_shoe:": "\U0001f45e", ":mantelpiece_clock:": "\U0001f570\ufe0f", ":manual_wheelchair:": "\U0001f9bd", ":map_of_japan:": "\U0001f5fe", ":maple_leaf:": "\U0001f341", ":marshall_islands:": "\U0001f1f2\U0001f1ed", ":martial_arts_uniform:": "\U0001f94b", ":martinique:": "\U0001f1f2\U0001f1f6", ":mask:": "\U0001f637", ":massage:": "\U0001f486", ":massage_man:": "\U0001f486\u200d\u2642\ufe0f", ":massage_woman:": "\U0001f486\u200d\u2640\ufe0f", ":mate:": "\U0001f9c9", ":mauritania:": "\U0001f1f2\U0001f1f7", ":mauritius:": "\U0001f1f2\U0001f1fa", ":mayotte:": "\U0001f1fe\U0001f1f9", ":meat_on_bone:": "\U0001f356", ":mechanic:": "\U0001f9d1\u200d\U0001f527", ":mechanical_arm:": "\U0001f9be", ":mechanical_leg:": "\U0001f9bf", ":medal_military:": "\U0001f396\ufe0f", ":medal_sports:": "\U0001f3c5", ":medical_symbol:": "\u2695\ufe0f", ":medium_dark_skin_tone:": "\U0001f3fe", ":medium_light_skin_tone:": "\U0001f3fc", ":medium_skin_tone:": "\U0001f3fd", ":mega:": "\U0001f4e3", ":megaphone:": "\U0001f4e3", ":melon:": "\U0001f348", ":memo:": "\U0001f4dd", ":men_holding_hands:": "\U0001f46c", ":men_s_room:": "\U0001f6b9", ":men_with_bunny_ears:": "\U0001f46f\u200d\u2642\ufe0f", ":men_wrestling:": "\U0001f93c\u200d\u2642\ufe0f", ":menorah:": "\U0001f54e", ":mens:": "\U0001f6b9", ":mermaid:": "\U0001f9dc\u200d\u2640\ufe0f", ":merman:": "\U0001f9dc\u200d\u2642\ufe0f", ":merperson:": "\U0001f9dc", ":metal:": "\U0001f918", ":metro:": "\U0001f687", ":mexico:": "\U0001f1f2\U0001f1fd", ":microbe:": "\U0001f9a0", ":micronesia:": "\U0001f1eb\U0001f1f2", ":microphone:": "\U0001f3a4", ":microscope:": "\U0001f52c", ":middle_finger:": "\U0001f595", ":military_helmet:": "\U0001fa96", ":military_medal:": "\U0001f396\ufe0f", ":milk_glass:": "\U0001f95b", ":milky_way:": "\U0001f30c", ":minibus:": "\U0001f690", ":minidisc:": "\U0001f4bd", ":minus:": "\u2796", ":mirror:": "\U0001fa9e", ":moai:": "\U0001f5ff", ":mobile_phone:": "\U0001f4f1", ":mobile_phone_off:": "\U0001f4f4", ":mobile_phone_with_arrow:": "\U0001f4f2", ":moldova:": "\U0001f1f2\U0001f1e9", ":monaco:": "\U0001f1f2\U0001f1e8", ":money_bag:": "\U0001f4b0", ":money_mouth_face:": "\U0001f911", ":money_with_wings:": "\U0001f4b8", ":moneybag:": "\U0001f4b0", ":mongolia:": "\U0001f1f2\U0001f1f3", ":monkey:": "\U0001f412", ":monkey_face:": "\U0001f435", ":monocle_face:": "\U0001f9d0", ":monorail:": "\U0001f69d", ":montenegro:": "\U0001f1f2\U0001f1ea", ":montserrat:": "\U0001f1f2\U0001f1f8", ":moon:": "\U0001f314", ":moon_cake:": "\U0001f96e", ":moon_viewing_ceremony:": "\U0001f391", ":morocco:": "\U0001f1f2\U0001f1e6", ":mortar_board:": "\U0001f393", ":mosque:": "\U0001f54c", ":mosquito:": "\U0001f99f", ":motor_boat:": "\U0001f6e5\ufe0f", ":motor_scooter:": "\U0001f6f5", ":motorcycle:": "\U0001f3cd\ufe0f", ":motorized_wheelchair:": "\U0001f9bc", ":motorway:": "\U0001f6e3\ufe0f", ":mount_fuji:": "\U0001f5fb", ":mountain:": "\u26f0\ufe0f", ":mountain_bicyclist:": "\U0001f6b5", ":mountain_biking_man:": "\U0001f6b5\u200d\u2642\ufe0f", ":mountain_biking_woman:": "\U0001f6b5\u200d\u2640\ufe0f", ":mountain_cableway:": "\U0001f6a0", ":mountain_railway:": "\U0001f69e", ":mountain_snow:": "\U0001f3d4\ufe0f", ":mouse2:": "\U0001f401", ":mouse:": "\U0001f42d", ":mouse_face:": "\U0001f42d", ":mouse_trap:": "\U0001faa4", ":mouth:": "\U0001f444", ":movie_camera:": "\U0001f3a5", ":moyai:": "\U0001f5ff", ":mozambique:": "\U0001f1f2\U0001f1ff", ":mrs_claus:": "\U0001f936", ":multiply:": "\u2716\ufe0f", ":muscle:": "\U0001f4aa", ":mushroom:": "\U0001f344", ":musical_keyboard:": "\U0001f3b9", ":musical_note:": "\U0001f3b5", ":musical_notes:": "\U0001f3b6", ":musical_score:": "\U0001f3bc", ":mute:": "\U0001f507", ":muted_speaker:": "\U0001f507", ":mx_claus:": "\U0001f9d1\u200d\U0001f384", ":myanmar:": "\U0001f1f2\U0001f1f2", ":nail_care:": "\U0001f485", ":nail_polish:": "\U0001f485", ":name_badge:": "\U0001f4db", ":namibia:": "\U0001f1f3\U0001f1e6", ":national_park:": "\U0001f3de\ufe0f", ":nauru:": "\U0001f1f3\U0001f1f7", ":nauseated_face:": "\U0001f922", ":nazar_amulet:": "\U0001f9ff", ":necktie:": "\U0001f454", ":negative_squared_cross_mark:": "\u274e", ":nepal:": "\U0001f1f3\U0001f1f5", ":nerd_face:": "\U0001f913", ":nesting_dolls:": "\U0001fa86", ":netherlands:": "\U0001f1f3\U0001f1f1", ":neutral_face:": "\U0001f610", ":new:": "\U0001f195", ":new_button:": "\U0001f195", ":new_caledonia:": "\U0001f1f3\U0001f1e8", ":new_moon:": "\U0001f311", ":new_moon_face:": "\U0001f31a", ":new_moon_with_face:": "\U0001f31a", ":new_zealand:": "\U0001f1f3\U0001f1ff", ":newspaper:": "\U0001f4f0", ":newspaper_roll:": "\U0001f5de\ufe0f", ":next_track_button:": "\u23ed\ufe0f", ":ng:": "\U0001f196", ":ng_button:": "\U0001f196", ":ng_man:": "\U0001f645\u200d\u2642\ufe0f", ":ng_woman:": "\U0001f645\u200d\u2640\ufe0f", ":nicaragua:": "\U0001f1f3\U0001f1ee", ":niger:": "\U0001f1f3\U0001f1ea", ":nigeria:": "\U0001f1f3\U0001f1ec", ":night_with_stars:": "\U0001f303", ":nine:": "9\ufe0f\u20e3", ":nine_o_clock:": "\U0001f558", ":nine_thirty:": "\U0001f564", ":ninja:": "\U0001f977", ":niue:": "\U0001f1f3\U0001f1fa", ":no_bell:": "\U0001f515", ":no_bicycles:": "\U0001f6b3", ":no_entry:": "\u26d4", ":no_entry_sign:": "\U0001f6ab", ":no_good:": "\U0001f645", ":no_good_man:": "\U0001f645\u200d\u2642\ufe0f", ":no_good_woman:": "\U0001f645\u200d\u2640\ufe0f", ":no_littering:": "\U0001f6af", ":no_mobile_phones:": "\U0001f4f5", ":no_mouth:": "\U0001f636", ":no_one_under_eighteen:": "\U0001f51e", ":no_pedestrians:": "\U0001f6b7", ":no_smoking:": "\U0001f6ad", ":non-potable_water:": "\U0001f6b1", ":non_potable_water:": "\U0001f6b1", ":norfolk_island:": "\U0001f1f3\U0001f1eb", ":north_korea:": "\U0001f1f0\U0001f1f5", ":northern_mariana_islands:": "\U0001f1f2\U0001f1f5", ":norway:": "\U0001f1f3\U0001f1f4", ":nose:": "\U0001f443", ":notebook:": "\U0001f4d3", ":notebook_with_decorative_cover:": "\U0001f4d4", ":notes:": "\U0001f3b6", ":nut_and_bolt:": "\U0001f529", ":o2:": "\U0001f17e\ufe0f", ":o:": "\u2b55", ":o_button_blood_type:": "\U0001f17e\ufe0f", ":ocean:": "\U0001f30a", ":octopus:": "\U0001f419", ":oden:": "\U0001f362", ":office:": "\U0001f3e2", ":office_building:": "\U0001f3e2", ":office_worker:": "\U0001f9d1\u200d\U0001f4bc", ":ogre:": "\U0001f479", ":oil_drum:": "\U0001f6e2\ufe0f", ":ok:": "\U0001f197", ":ok_button:": "\U0001f197", ":ok_hand:": "\U0001f44c", ":ok_man:": "\U0001f646\u200d\u2642\ufe0f", ":ok_person:": "\U0001f646", ":ok_woman:": "\U0001f646\u200d\u2640\ufe0f", ":old_key:": "\U0001f5dd\ufe0f", ":old_man:": "\U0001f474", ":old_woman:": "\U0001f475", ":older_adult:": "\U0001f9d3", ":older_man:": "\U0001f474", ":older_person:": "\U0001f9d3", ":older_woman:": "\U0001f475", ":olive:": "\U0001fad2", ":om:": "\U0001f549\ufe0f", ":oman:": "\U0001f1f4\U0001f1f2", ":on:": "\U0001f51b", ":on_arrow:": "\U0001f51b", ":oncoming_automobile:": "\U0001f698", ":oncoming_bus:": "\U0001f68d", ":oncoming_fist:": "\U0001f44a", ":oncoming_police_car:": "\U0001f694", ":oncoming_taxi:": "\U0001f696", ":one:": "1\ufe0f\u20e3", ":one_o_clock:": "\U0001f550", ":one_piece_swimsuit:": "\U0001fa71", ":one_thirty:": "\U0001f55c", ":onion:": "\U0001f9c5", ":open_book:": "\U0001f4d6", ":open_file_folder:": "\U0001f4c2", ":open_hands:": "\U0001f450", ":open_mailbox_with_lowered_flag:": "\U0001f4ed", ":open_mailbox_with_raised_flag:": "\U0001f4ec", ":open_mouth:": "\U0001f62e", ":open_umbrella:": "\u2602\ufe0f", ":ophiuchus:": "\u26ce", ":optical_disk:": "\U0001f4bf", ":orange:": "\U0001f34a", ":orange_book:": "\U0001f4d9", ":orange_circle:": "\U0001f7e0", ":orange_heart:": "\U0001f9e1", ":orange_square:": "\U0001f7e7", ":orangutan:": "\U0001f9a7", ":orthodox_cross:": "\u2626\ufe0f", ":otter:": "\U0001f9a6", ":outbox_tray:": "\U0001f4e4", ":owl:": "\U0001f989", ":ox:": "\U0001f402", ":oyster:": "\U0001f9aa", ":p_button:": "\U0001f17f\ufe0f", ":package:": "\U0001f4e6", ":page_facing_up:": "\U0001f4c4", ":page_with_curl:": "\U0001f4c3", ":pager:": "\U0001f4df", ":paintbrush:": "\U0001f58c\ufe0f", ":pakistan:": "\U0001f1f5\U0001f1f0", ":palau:": "\U0001f1f5\U0001f1fc", ":palestinian_territories:": "\U0001f1f5\U0001f1f8", ":palm_tree:": "\U0001f334", ":palms_up_together:": "\U0001f932", ":panama:": "\U0001f1f5\U0001f1e6", ":pancakes:": "\U0001f95e", ":panda:": "\U0001f43c", ":panda_face:": "\U0001f43c", ":paperclip:": "\U0001f4ce", ":paperclips:": "\U0001f587\ufe0f", ":papua_new_guinea:": "\U0001f1f5\U0001f1ec", ":parachute:": "\U0001fa82", ":paraguay:": "\U0001f1f5\U0001f1fe", ":parasol_on_ground:": "\u26f1\ufe0f", ":parking:": "\U0001f17f\ufe0f", ":parrot:": "\U0001f99c", ":part_alternation_mark:": "\u303d\ufe0f", ":partly_sunny:": "\u26c5", ":party_popper:": "\U0001f389", ":partying_face:": "\U0001f973", ":passenger_ship:": "\U0001f6f3\ufe0f", ":passport_control:": "\U0001f6c2", ":pause_button:": "\u23f8\ufe0f", ":paw_prints:": "\U0001f43e", ":peace_symbol:": "\u262e\ufe0f", ":peach:": "\U0001f351", ":peacock:": "\U0001f99a", ":peanuts:": "\U0001f95c", ":pear:": "\U0001f350", ":pen:": "\U0001f58a\ufe0f", ":pencil2:": "\u270f\ufe0f", ":pencil:": "\U0001f4dd", ":penguin:": "\U0001f427", ":pensive:": "\U0001f614", ":pensive_face:": "\U0001f614", ":people_holding_hands:": "\U0001f9d1\u200d\U0001f91d\u200d\U0001f9d1", ":people_hugging:": "\U0001fac2", ":people_with_bunny_ears:": "\U0001f46f", ":people_wrestling:": "\U0001f93c", ":performing_arts:": "\U0001f3ad", ":persevere:": "\U0001f623", ":persevering_face:": "\U0001f623", ":person:": "\U0001f9d1", ":person_bald:": "\U0001f9d1\u200d\U0001f9b2", ":person_biking:": "\U0001f6b4", ":person_bouncing_ball:": "\u26f9\ufe0f", ":person_bowing:": "\U0001f647", ":person_cartwheeling:": "\U0001f938", ":person_climbing:": "\U0001f9d7", ":person_curly_hair:": "\U0001f9d1\u200d\U0001f9b1", ":person_facepalming:": "\U0001f926", ":person_feeding_baby:": "\U0001f9d1\u200d\U0001f37c", ":person_fencing:": "\U0001f93a", ":person_frowning:": "\U0001f64d", ":person_gesturing_no:": "\U0001f645", ":person_gesturing_ok:": "\U0001f646", ":person_getting_haircut:": "\U0001f487", ":person_getting_massage:": "\U0001f486", ":person_golfing:": "\U0001f3cc\ufe0f", ":person_in_bed:": "\U0001f6cc", ":person_in_lotus_position:": "\U0001f9d8", ":person_in_manual_wheelchair:": "\U0001f9d1\u200d\U0001f9bd", ":person_in_motorized_wheelchair:": "\U0001f9d1\u200d\U0001f9bc", ":person_in_steamy_room:": "\U0001f9d6", ":person_in_suit_levitating:": "\U0001f574\ufe0f", ":person_in_tuxedo:": "\U0001f935", ":person_juggling:": "\U0001f939", ":person_kneeling:": "\U0001f9ce", ":person_lifting_weights:": "\U0001f3cb\ufe0f", ":person_mountain_biking:": "\U0001f6b5", ":person_playing_handball:": "\U0001f93e", ":person_playing_water_polo:": "\U0001f93d", ":person_pouting:": "\U0001f64e", ":person_raising_hand:": "\U0001f64b", ":person_red_hair:": "\U0001f9d1\u200d\U0001f9b0", ":person_rowing_boat:": "\U0001f6a3", ":person_running:": "\U0001f3c3", ":person_shrugging:": "\U0001f937", ":person_standing:": "\U0001f9cd", ":person_surfing:": "\U0001f3c4", ":person_swimming:": "\U0001f3ca", ":person_taking_bath:": "\U0001f6c0", ":person_tipping_hand:": "\U0001f481", ":person_walking:": "\U0001f6b6", ":person_wearing_turban:": "\U0001f473", ":person_white_hair:": "\U0001f9d1\u200d\U0001f9b3", ":person_with_blond_hair:": "\U0001f471", ":person_with_curly_hair:": "\U0001f9d1\u200d\U0001f9b1", ":person_with_probing_cane:": "\U0001f9d1\u200d\U0001f9af", ":person_with_red_hair:": "\U0001f9d1\u200d\U0001f9b0", ":person_with_skullcap:": "\U0001f472", ":person_with_turban:": "\U0001f473", ":person_with_veil:": "\U0001f470", ":person_with_white_cane:": "\U0001f9d1\u200d\U0001f9af", ":person_with_white_hair:": "\U0001f9d1\u200d\U0001f9b3", ":peru:": "\U0001f1f5\U0001f1ea", ":petri_dish:": "\U0001f9eb", ":philippines:": "\U0001f1f5\U0001f1ed", ":phone:": "\u260e\ufe0f", ":pi_ata:": "\U0001fa85", ":pick:": "\u26cf\ufe0f", ":pickup_truck:": "\U0001f6fb", ":pie:": "\U0001f967", ":pig2:": "\U0001f416", ":pig:": "\U0001f437", ":pig_face:": "\U0001f437", ":pig_nose:": "\U0001f43d", ":pile_of_poo:": "\U0001f4a9", ":pill:": "\U0001f48a", ":pilot:": "\U0001f9d1\u200d\u2708\ufe0f", ":pinata:": "\U0001fa85", ":pinched_fingers:": "\U0001f90c", ":pinching_hand:": "\U0001f90f", ":pine_decoration:": "\U0001f38d", ":pineapple:": "\U0001f34d", ":ping_pong:": "\U0001f3d3", ":pirate_flag:": "\U0001f3f4\u200d\u2620\ufe0f", ":pisces:": "\u2653", ":pistol:": "\U0001f52b", ":pitcairn_islands:": "\U0001f1f5\U0001f1f3", ":pizza:": "\U0001f355", ":placard:": "\U0001faa7", ":place_of_worship:": "\U0001f6d0", ":plate_with_cutlery:": "\U0001f37d\ufe0f", ":play_button:": "\u25b6\ufe0f", ":play_or_pause_button:": "\u23ef\ufe0f", ":pleading_face:": "\U0001f97a", ":plunger:": "\U0001faa0", ":plus:": "\u2795", ":point_down:": "\U0001f447", ":point_left:": "\U0001f448", ":point_right:": "\U0001f449", ":point_up:": "\u261d\ufe0f", ":point_up_2:": "\U0001f446", ":poland:": "\U0001f1f5\U0001f1f1", ":polar_bear:": "\U0001f43b\u200d\u2744\ufe0f", ":police_car:": "\U0001f693", ":police_car_light:": "\U0001f6a8", ":police_officer:": "\U0001f46e", ":policeman:": "\U0001f46e\u200d\u2642\ufe0f", ":policewoman:": "\U0001f46e\u200d\u2640\ufe0f", ":poodle:": "\U0001f429", ":pool_8_ball:": "\U0001f3b1", ":poop:": "\U0001f4a9", ":popcorn:": "\U0001f37f", ":portugal:": "\U0001f1f5\U0001f1f9", ":post_office:": "\U0001f3e3", ":postal_horn:": "\U0001f4ef", ":postbox:": "\U0001f4ee", ":pot_of_food:": "\U0001f372", ":potable_water:": "\U0001f6b0", ":potato:": "\U0001f954", ":potted_plant:": "\U0001fab4", ":pouch:": "\U0001f45d", ":poultry_leg:": "\U0001f357", ":pound:": "\U0001f4b7", ":pound_banknote:": "\U0001f4b7", ":pout:": "\U0001f621", ":pouting_cat:": "\U0001f63e", ":pouting_face:": "\U0001f64e", ":pouting_man:": "\U0001f64e\u200d\u2642\ufe0f", ":pouting_woman:": "\U0001f64e\u200d\u2640\ufe0f", ":pray:": "\U0001f64f", ":prayer_beads:": "\U0001f4ff", ":pregnant_woman:": "\U0001f930", ":pretzel:": "\U0001f968", ":previous_track_button:": "\u23ee\ufe0f", ":prince:": "\U0001f934", ":princess:": "\U0001f478", ":printer:": "\U0001f5a8\ufe0f", ":probing_cane:": "\U0001f9af", ":prohibited:": "\U0001f6ab", ":puerto_rico:": "\U0001f1f5\U0001f1f7", ":punch:": "\U0001f44a", ":purple_circle:": "\U0001f7e3", ":purple_heart:": "\U0001f49c", ":purple_square:": "\U0001f7ea", ":purse:": "\U0001f45b", ":pushpin:": "\U0001f4cc", ":put_litter_in_its_place:": "\U0001f6ae", ":puzzle_piece:": "\U0001f9e9", ":qatar:": "\U0001f1f6\U0001f1e6", ":question:": "\u2753", ":question_mark:": "\u2753", ":rabbit2:": "\U0001f407", ":rabbit:": "\U0001f430", ":rabbit_face:": "\U0001f430", ":raccoon:": "\U0001f99d", ":racehorse:": "\U0001f40e", ":racing_car:": "\U0001f3ce\ufe0f", ":radio:": "\U0001f4fb", ":radio_button:": "\U0001f518", ":radioactive:": "\u2622\ufe0f", ":rage:": "\U0001f621", ":railway_car:": "\U0001f683", ":railway_track:": "\U0001f6e4\ufe0f", ":rainbow:": "\U0001f308", ":rainbow_flag:": "\U0001f3f3\ufe0f\u200d\U0001f308", ":raised_back_of_hand:": "\U0001f91a", ":raised_eyebrow:": "\U0001f928", ":raised_fist:": "\u270a", ":raised_hand:": "\u270b", ":raised_hand_with_fingers_splayed:": "\U0001f590\ufe0f", ":raised_hands:": "\U0001f64c", ":raising_hand:": "\U0001f64b", ":raising_hand_man:": "\U0001f64b\u200d\u2642\ufe0f", ":raising_hand_woman:": "\U0001f64b\u200d\u2640\ufe0f", ":raising_hands:": "\U0001f64c", ":ram:": "\U0001f40f", ":ramen:": "\U0001f35c", ":rat:": "\U0001f400", ":razor:": "\U0001fa92", ":receipt:": "\U0001f9fe", ":record_button:": "\u23fa\ufe0f", ":recycle:": "\u267b\ufe0f", ":recycling_symbol:": "\u267b\ufe0f", ":red_apple:": "\U0001f34e", ":red_car:": "\U0001f697", ":red_circle:": "\U0001f534", ":red_envelope:": "\U0001f9e7", ":red_hair:": "\U0001f9b0", ":red_haired_man:": "\U0001f468\u200d\U0001f9b0", ":red_haired_woman:": "\U0001f469\u200d\U0001f9b0", ":red_heart:": "\u2764\ufe0f", ":red_paper_lantern:": "\U0001f3ee", ":red_square:": "\U0001f7e5", ":red_triangle_pointed_down:": "\U0001f53b", ":red_triangle_pointed_up:": "\U0001f53a", ":registered:": "\u00ae\ufe0f", ":relaxed:": "\u263a\ufe0f", ":relieved:": "\U0001f60c", ":relieved_face:": "\U0001f60c", ":reminder_ribbon:": "\U0001f397\ufe0f", ":repeat:": "\U0001f501", ":repeat_button:": "\U0001f501", ":repeat_one:": "\U0001f502", ":repeat_single_button:": "\U0001f502", ":rescue_worker_helmet:": "\u26d1\ufe0f", ":rescue_worker_s_helmet:": "\u26d1\ufe0f", ":restroom:": "\U0001f6bb", ":reunion:": "\U0001f1f7\U0001f1ea", ":reverse_button:": "\u25c0\ufe0f", ":revolving_hearts:": "\U0001f49e", ":rewind:": "\u23ea", ":rhinoceros:": "\U0001f98f", ":ribbon:": "\U0001f380", ":rice:": "\U0001f35a", ":rice_ball:": "\U0001f359", ":rice_cracker:": "\U0001f358", ":rice_scene:": "\U0001f391", ":right_anger_bubble:": "\U0001f5ef\ufe0f", ":right_arrow:": "\u27a1\ufe0f", ":right_arrow_curving_down:": "\u2935\ufe0f", ":right_arrow_curving_left:": "\u21a9\ufe0f", ":right_arrow_curving_up:": "\u2934\ufe0f", ":right_facing_fist:": "\U0001f91c", ":ring:": "\U0001f48d", ":ringed_planet:": "\U0001fa90", ":roasted_sweet_potato:": "\U0001f360", ":robot:": "\U0001f916", ":robot_face:": "\U0001f916", ":rock:": "\U0001faa8", ":rocket:": "\U0001f680", ":rofl:": "\U0001f923", ":roll_eyes:": "\U0001f644", ":roll_of_paper:": "\U0001f9fb", ":rolled_up_newspaper:": "\U0001f5de\ufe0f", ":roller_coaster:": "\U0001f3a2", ":roller_skate:": "\U0001f6fc", ":rolling_on_the_floor_laughing:": "\U0001f923", ":romania:": "\U0001f1f7\U0001f1f4", ":rooster:": "\U0001f413", ":rose:": "\U0001f339", ":rosette:": "\U0001f3f5\ufe0f", ":rotating_light:": "\U0001f6a8", ":round_pushpin:": "\U0001f4cd", ":rowboat:": "\U0001f6a3", ":rowing_man:": "\U0001f6a3\u200d\u2642\ufe0f", ":rowing_woman:": "\U0001f6a3\u200d\u2640\ufe0f", ":ru:": "\U0001f1f7\U0001f1fa", ":rugby_football:": "\U0001f3c9", ":runner:": "\U0001f3c3", ":running:": "\U0001f3c3", ":running_man:": "\U0001f3c3\u200d\u2642\ufe0f", ":running_shirt:": "\U0001f3bd", ":running_shirt_with_sash:": "\U0001f3bd", ":running_shoe:": "\U0001f45f", ":running_woman:": "\U0001f3c3\u200d\u2640\ufe0f", ":rwanda:": "\U0001f1f7\U0001f1fc", ":sa:": "\U0001f202\ufe0f", ":sad_but_relieved_face:": "\U0001f625", ":safety_pin:": "\U0001f9f7", ":safety_vest:": "\U0001f9ba", ":sagittarius:": "\u2650", ":sailboat:": "\u26f5", ":sake:": "\U0001f376", ":salt:": "\U0001f9c2", ":samoa:": "\U0001f1fc\U0001f1f8", ":san_marino:": "\U0001f1f8\U0001f1f2", ":sandal:": "\U0001f461", ":sandwich:": "\U0001f96a", ":santa:": "\U0001f385", ":santa_claus:": "\U0001f385", ":sao_tome_principe:": "\U0001f1f8\U0001f1f9", ":sari:": "\U0001f97b", ":sassy_man:": "\U0001f481\u200d\u2642\ufe0f", ":sassy_woman:": "\U0001f481\u200d\u2640\ufe0f", ":satellite:": "\U0001f4e1", ":satellite_antenna:": "\U0001f4e1", ":satisfied:": "\U0001f606", ":saudi_arabia:": "\U0001f1f8\U0001f1e6", ":sauna_man:": "\U0001f9d6\u200d\u2642\ufe0f", ":sauna_person:": "\U0001f9d6", ":sauna_woman:": "\U0001f9d6\u200d\u2640\ufe0f", ":sauropod:": "\U0001f995", ":saxophone:": "\U0001f3b7", ":scarf:": "\U0001f9e3", ":school:": "\U0001f3eb", ":school_satchel:": "\U0001f392", ":scientist:": "\U0001f9d1\u200d\U0001f52c", ":scissors:": "\u2702\ufe0f", ":scorpio:": "\u264f", ":scorpion:": "\U0001f982", ":scorpius:": "\u264f", ":scotland:": "\U0001f3f4\U000e0067\U000e0062\U000e0073\U000e0063\U000e0074\U000e007f", ":scream:": "\U0001f631", ":scream_cat:": "\U0001f640", ":screwdriver:": "\U0001fa9b", ":scroll:": "\U0001f4dc", ":seal:": "\U0001f9ad", ":seat:": "\U0001f4ba", ":second_place_medal:": "\U0001f948", ":secret:": "\u3299\ufe0f", ":see_no_evil:": "\U0001f648", ":see_no_evil_monkey:": "\U0001f648", ":seedling:": "\U0001f331", ":selfie:": "\U0001f933", ":senegal:": "\U0001f1f8\U0001f1f3", ":serbia:": "\U0001f1f7\U0001f1f8", ":service_dog:": "\U0001f415\u200d\U0001f9ba", ":seven:": "7\ufe0f\u20e3", ":seven_o_clock:": "\U0001f556", ":seven_thirty:": "\U0001f562", ":sewing_needle:": "\U0001faa1", ":seychelles:": "\U0001f1f8\U0001f1e8", ":shallow_pan_of_food:": "\U0001f958", ":shamrock:": "\u2618\ufe0f", ":shark:": "\U0001f988", ":shaved_ice:": "\U0001f367", ":sheaf_of_rice:": "\U0001f33e", ":sheep:": "\U0001f411", ":shell:": "\U0001f41a", ":shield:": "\U0001f6e1\ufe0f", ":shinto_shrine:": "\u26e9\ufe0f", ":ship:": "\U0001f6a2", ":shirt:": "\U0001f455", ":shit:": "\U0001f4a9", ":shoe:": "\U0001f45e", ":shooting_star:": "\U0001f320", ":shopping:": "\U0001f6cd\ufe0f", ":shopping_bags:": "\U0001f6cd\ufe0f", ":shopping_cart:": "\U0001f6d2", ":shortcake:": "\U0001f370", ":shorts:": "\U0001fa73", ":shower:": "\U0001f6bf", ":shrimp:": "\U0001f990", ":shrug:": "\U0001f937", ":shuffle_tracks_button:": "\U0001f500", ":shushing_face:": "\U0001f92b", ":sierra_leone:": "\U0001f1f8\U0001f1f1", ":sign_of_the_horns:": "\U0001f918", ":signal_strength:": "\U0001f4f6", ":singapore:": "\U0001f1f8\U0001f1ec", ":singer:": "\U0001f9d1\u200d\U0001f3a4", ":sint_maarten:": "\U0001f1f8\U0001f1fd", ":six:": "6\ufe0f\u20e3", ":six_o_clock:": "\U0001f555", ":six_pointed_star:": "\U0001f52f", ":six_thirty:": "\U0001f561", ":skateboard:": "\U0001f6f9", ":ski:": "\U0001f3bf", ":skier:": "\u26f7\ufe0f", ":skis:": "\U0001f3bf", ":skull:": "\U0001f480", ":skull_and_crossbones:": "\u2620\ufe0f", ":skunk:": "\U0001f9a8", ":sled:": "\U0001f6f7", ":sleeping:": "\U0001f634", ":sleeping_bed:": "\U0001f6cc", ":sleeping_face:": "\U0001f634", ":sleepy:": "\U0001f62a", ":sleepy_face:": "\U0001f62a", ":slightly_frowning_face:": "\U0001f641", ":slightly_smiling_face:": "\U0001f642", ":slot_machine:": "\U0001f3b0", ":sloth:": "\U0001f9a5", ":slovakia:": "\U0001f1f8\U0001f1f0", ":slovenia:": "\U0001f1f8\U0001f1ee", ":small_airplane:": "\U0001f6e9\ufe0f", ":small_blue_diamond:": "\U0001f539", ":small_orange_diamond:": "\U0001f538", ":small_red_triangle:": "\U0001f53a", ":small_red_triangle_down:": "\U0001f53b", ":smile:": "\U0001f604", ":smile_cat:": "\U0001f638", ":smiley:": "\U0001f603", ":smiley_cat:": "\U0001f63a", ":smiling_cat_with_heart_eyes:": "\U0001f63b", ":smiling_face:": "\u263a\ufe0f", ":smiling_face_with_halo:": "\U0001f607", ":smiling_face_with_heart_eyes:": "\U0001f60d", ":smiling_face_with_hearts:": "\U0001f970", ":smiling_face_with_horns:": "\U0001f608", ":smiling_face_with_smiling_eyes:": "\U0001f60a", ":smiling_face_with_sunglasses:": "\U0001f60e", ":smiling_face_with_tear:": "\U0001f972", ":smiling_face_with_three_hearts:": "\U0001f970", ":smiling_imp:": "\U0001f608", ":smirk:": "\U0001f60f", ":smirk_cat:": "\U0001f63c", ":smirking_face:": "\U0001f60f", ":smoking:": "\U0001f6ac", ":snail:": "\U0001f40c", ":snake:": "\U0001f40d", ":sneezing_face:": "\U0001f927", ":snow_capped_mountain:": "\U0001f3d4\ufe0f", ":snowboarder:": "\U0001f3c2", ":snowflake:": "\u2744\ufe0f", ":snowman:": "\u26c4", ":snowman_with_snow:": "\u2603\ufe0f", ":snowman_without_snow:": "\u26c4", ":soap:": "\U0001f9fc", ":sob:": "\U0001f62d", ":soccer:": "\u26bd", ":soccer_ball:": "\u26bd", ":socks:": "\U0001f9e6", ":soft_ice_cream:": "\U0001f366", ":softball:": "\U0001f94e", ":solomon_islands:": "\U0001f1f8\U0001f1e7", ":somalia:": "\U0001f1f8\U0001f1f4", ":soon:": "\U0001f51c", ":soon_arrow:": "\U0001f51c", ":sos:": "\U0001f198", ":sos_button:": "\U0001f198", ":sound:": "\U0001f509", ":south_africa:": "\U0001f1ff\U0001f1e6", ":south_georgia_south_sandwich_islands:": "\U0001f1ec\U0001f1f8", ":south_sudan:": "\U0001f1f8\U0001f1f8", ":space_invader:": "\U0001f47e", ":spade_suit:": "\u2660\ufe0f", ":spades:": "\u2660\ufe0f", ":spaghetti:": "\U0001f35d", ":sparkle:": "\u2747\ufe0f", ":sparkler:": "\U0001f387", ":sparkles:": "\u2728", ":sparkling_heart:": "\U0001f496", ":speak_no_evil:": "\U0001f64a", ":speak_no_evil_monkey:": "\U0001f64a", ":speaker:": "\U0001f508", ":speaker_high_volume:": "\U0001f50a", ":speaker_low_volume:": "\U0001f508", ":speaker_medium_volume:": "\U0001f509", ":speaking_head:": "\U0001f5e3\ufe0f", ":speech_balloon:": "\U0001f4ac", ":speedboat:": "\U0001f6a4", ":spider:": "\U0001f577\ufe0f", ":spider_web:": "\U0001f578\ufe0f", ":spiral_calendar:": "\U0001f5d3\ufe0f", ":spiral_notepad:": "\U0001f5d2\ufe0f", ":spiral_shell:": "\U0001f41a", ":sponge:": "\U0001f9fd", ":spoon:": "\U0001f944", ":sport_utility_vehicle:": "\U0001f699", ":sports_medal:": "\U0001f3c5", ":spouting_whale:": "\U0001f433", ":squid:": "\U0001f991", ":squinting_face_with_tongue:": "\U0001f61d", ":sri_lanka:": "\U0001f1f1\U0001f1f0", ":st_barthelemy:": "\U0001f1e7\U0001f1f1", ":st_helena:": "\U0001f1f8\U0001f1ed", ":st_kitts_nevis:": "\U0001f1f0\U0001f1f3", ":st_lucia:": "\U0001f1f1\U0001f1e8", ":st_martin:": "\U0001f1f2\U0001f1eb", ":st_pierre_miquelon:": "\U0001f1f5\U0001f1f2", ":st_vincent_grenadines:": "\U0001f1fb\U0001f1e8", ":stadium:": "\U0001f3df\ufe0f", ":standing_man:": "\U0001f9cd\u200d\u2642\ufe0f", ":standing_person:": "\U0001f9cd", ":standing_woman:": "\U0001f9cd\u200d\u2640\ufe0f", ":star2:": "\U0001f31f", ":star:": "\u2b50", ":star_and_crescent:": "\u262a\ufe0f", ":star_of_david:": "\u2721\ufe0f", ":star_struck:": "\U0001f929", ":stars:": "\U0001f320", ":station:": "\U0001f689", ":statue_of_liberty:": "\U0001f5fd", ":steam_locomotive:": "\U0001f682", ":steaming_bowl:": "\U0001f35c", ":stethoscope:": "\U0001fa7a", ":stew:": "\U0001f372", ":stop_button:": "\u23f9\ufe0f", ":stop_sign:": "\U0001f6d1", ":stopwatch:": "\u23f1\ufe0f", ":straight_ruler:": "\U0001f4cf", ":strawberry:": "\U0001f353", ":stuck_out_tongue:": "\U0001f61b", ":stuck_out_tongue_closed_eyes:": "\U0001f61d", ":stuck_out_tongue_winking_eye:": "\U0001f61c", ":student:": "\U0001f9d1\u200d\U0001f393", ":studio_microphone:": "\U0001f399\ufe0f", ":stuffed_flatbread:": "\U0001f959", ":sudan:": "\U0001f1f8\U0001f1e9", ":sun:": "\u2600\ufe0f", ":sun_behind_cloud:": "\u26c5", ":sun_behind_large_cloud:": "\U0001f325\ufe0f", ":sun_behind_rain_cloud:": "\U0001f326\ufe0f", ":sun_behind_small_cloud:": "\U0001f324\ufe0f", ":sun_with_face:": "\U0001f31e", ":sunflower:": "\U0001f33b", ":sunglasses:": "\U0001f60e", ":sunny:": "\u2600\ufe0f", ":sunrise:": "\U0001f305", ":sunrise_over_mountains:": "\U0001f304", ":sunset:": "\U0001f307", ":superhero:": "\U0001f9b8", ":superhero_man:": "\U0001f9b8\u200d\u2642\ufe0f", ":superhero_woman:": "\U0001f9b8\u200d\u2640\ufe0f", ":supervillain:": "\U0001f9b9", ":supervillain_man:": "\U0001f9b9\u200d\u2642\ufe0f", ":supervillain_woman:": "\U0001f9b9\u200d\u2640\ufe0f", ":surfer:": "\U0001f3c4", ":surfing_man:": "\U0001f3c4\u200d\u2642\ufe0f", ":surfing_woman:": "\U0001f3c4\u200d\u2640\ufe0f", ":suriname:": "\U0001f1f8\U0001f1f7", ":sushi:": "\U0001f363", ":suspension_railway:": "\U0001f69f", ":svalbard_jan_mayen:": "\U0001f1f8\U0001f1ef", ":swan:": "\U0001f9a2", ":swaziland:": "\U0001f1f8\U0001f1ff", ":sweat:": "\U0001f613", ":sweat_droplets:": "\U0001f4a6", ":sweat_drops:": "\U0001f4a6", ":sweat_smile:": "\U0001f605", ":sweden:": "\U0001f1f8\U0001f1ea", ":sweet_potato:": "\U0001f360", ":swim_brief:": "\U0001fa72", ":swimmer:": "\U0001f3ca", ":swimming_man:": "\U0001f3ca\u200d\u2642\ufe0f", ":swimming_woman:": "\U0001f3ca\u200d\u2640\ufe0f", ":switzerland:": "\U0001f1e8\U0001f1ed", ":symbols:": "\U0001f523", ":synagogue:": "\U0001f54d", ":syria:": "\U0001f1f8\U0001f1fe", ":syringe:": "\U0001f489", ":t-rex:": "\U0001f996", ":t_rex:": "\U0001f996", ":t_shirt:": "\U0001f455", ":taco:": "\U0001f32e", ":tada:": "\U0001f389", ":taiwan:": "\U0001f1f9\U0001f1fc", ":tajikistan:": "\U0001f1f9\U0001f1ef", ":takeout_box:": "\U0001f961", ":tamale:": "\U0001fad4", ":tanabata_tree:": "\U0001f38b", ":tangerine:": "\U0001f34a", ":tanzania:": "\U0001f1f9\U0001f1ff", ":taurus:": "\u2649", ":taxi:": "\U0001f695", ":tea:": "\U0001f375", ":teacher:": "\U0001f9d1\u200d\U0001f3eb", ":teacup_without_handle:": "\U0001f375", ":teapot:": "\U0001fad6", ":tear_off_calendar:": "\U0001f4c6", ":technologist:": "\U0001f9d1\u200d\U0001f4bb", ":teddy_bear:": "\U0001f9f8", ":telephone:": "\u260e\ufe0f", ":telephone_receiver:": "\U0001f4de", ":telescope:": "\U0001f52d", ":television:": "\U0001f4fa", ":ten_o_clock:": "\U0001f559", ":ten_thirty:": "\U0001f565", ":tennis:": "\U0001f3be", ":tent:": "\u26fa", ":test_tube:": "\U0001f9ea", ":thailand:": "\U0001f1f9\U0001f1ed", ":thermometer:": "\U0001f321\ufe0f", ":thinking:": "\U0001f914", ":thinking_face:": "\U0001f914", ":third_place_medal:": "\U0001f949", ":thong_sandal:": "\U0001fa74", ":thought_balloon:": "\U0001f4ad", ":thread:": "\U0001f9f5", ":three:": "3\ufe0f\u20e3", ":three_o_clock:": "\U0001f552", ":three_thirty:": "\U0001f55e", ":thumbs_down:": "\U0001f44e", ":thumbs_up:": "\U0001f44d", ":thumbsdown:": "\U0001f44e", ":thumbsup:": "\U0001f44d", ":ticket:": "\U0001f3ab", ":tickets:": "\U0001f39f\ufe0f", ":tiger2:": "\U0001f405", ":tiger:": "\U0001f42f", ":tiger_face:": "\U0001f42f", ":timer_clock:": "\u23f2\ufe0f", ":timor_leste:": "\U0001f1f9\U0001f1f1", ":tipping_hand_man:": "\U0001f481\u200d\u2642\ufe0f", ":tipping_hand_person:": "\U0001f481", ":tipping_hand_woman:": "\U0001f481\u200d\u2640\ufe0f", ":tired_face:": "\U0001f62b", ":tm:": "\u2122\ufe0f", ":togo:": "\U0001f1f9\U0001f1ec", ":toilet:": "\U0001f6bd", ":tokelau:": "\U0001f1f9\U0001f1f0", ":tokyo_tower:": "\U0001f5fc", ":tomato:": "\U0001f345", ":tonga:": "\U0001f1f9\U0001f1f4", ":tongue:": "\U0001f445", ":toolbox:": "\U0001f9f0", ":tooth:": "\U0001f9b7", ":toothbrush:": "\U0001faa5", ":top:": "\U0001f51d", ":top_arrow:": "\U0001f51d", ":top_hat:": "\U0001f3a9", ":tophat:": "\U0001f3a9", ":tornado:": "\U0001f32a\ufe0f", ":tr:": "\U0001f1f9\U0001f1f7", ":trackball:": "\U0001f5b2\ufe0f", ":tractor:": "\U0001f69c", ":trade_mark:": "\u2122\ufe0f", ":traffic_light:": "\U0001f6a5", ":train2:": "\U0001f686", ":train:": "\U0001f68b", ":tram:": "\U0001f68a", ":tram_car:": "\U0001f68b", ":transgender_flag:": "\U0001f3f3\ufe0f\u200d\u26a7\ufe0f", ":transgender_symbol:": "\u26a7\ufe0f", ":triangular_flag:": "\U0001f6a9", ":triangular_flag_on_post:": "\U0001f6a9", ":triangular_ruler:": "\U0001f4d0", ":trident:": "\U0001f531", ":trident_emblem:": "\U0001f531", ":trinidad_tobago:": "\U0001f1f9\U0001f1f9", ":tristan_da_cunha:": "\U0001f1f9\U0001f1e6", ":triumph:": "\U0001f624", ":trolleybus:": "\U0001f68e", ":trophy:": "\U0001f3c6", ":tropical_drink:": "\U0001f379", ":tropical_fish:": "\U0001f420", ":truck:": "\U0001f69a", ":trumpet:": "\U0001f3ba", ":tshirt:": "\U0001f455", ":tulip:": "\U0001f337", ":tumbler_glass:": "\U0001f943", ":tunisia:": "\U0001f1f9\U0001f1f3", ":turkey:": "\U0001f983", ":turkmenistan:": "\U0001f1f9\U0001f1f2", ":turks_caicos_islands:": "\U0001f1f9\U0001f1e8", ":turtle:": "\U0001f422", ":tuvalu:": "\U0001f1f9\U0001f1fb", ":tv:": "\U0001f4fa", ":twelve_o_clock:": "\U0001f55b", ":twelve_thirty:": "\U0001f567", ":twisted_rightwards_arrows:": "\U0001f500", ":two:": "2\ufe0f\u20e3", ":two_hearts:": "\U0001f495", ":two_hump_camel:": "\U0001f42b", ":two_men_holding_hands:": "\U0001f46c", ":two_o_clock:": "\U0001f551", ":two_thirty:": "\U0001f55d", ":two_women_holding_hands:": "\U0001f46d", ":u5272:": "\U0001f239", ":u5408:": "\U0001f234", ":u55b6:": "\U0001f23a", ":u6307:": "\U0001f22f", ":u6708:": "\U0001f237\ufe0f", ":u6709:": "\U0001f236", ":u6e80:": "\U0001f235", ":u7121:": "\U0001f21a", ":u7533:": "\U0001f238", ":u7981:": "\U0001f232", ":u7a7a:": "\U0001f233", ":uganda:": "\U0001f1fa\U0001f1ec", ":uk:": "\U0001f1ec\U0001f1e7", ":ukraine:": "\U0001f1fa\U0001f1e6", ":umbrella:": "\u2614", ":umbrella_on_ground:": "\u26f1\ufe0f", ":umbrella_with_rain_drops:": "\u2614", ":unamused:": "\U0001f612", ":unamused_face:": "\U0001f612", ":underage:": "\U0001f51e", ":unicorn:": "\U0001f984", ":united_arab_emirates:": "\U0001f1e6\U0001f1ea", ":united_nations:": "\U0001f1fa\U0001f1f3", ":unlock:": "\U0001f513", ":unlocked:": "\U0001f513", ":up:": "\U0001f199", ":up_arrow:": "\u2b06\ufe0f", ":up_button:": "\U0001f199", ":up_down_arrow:": "\u2195\ufe0f", ":up_left_arrow:": "\u2196\ufe0f", ":up_right_arrow:": "\u2197\ufe0f", ":upside_down_face:": "\U0001f643", ":upwards_button:": "\U0001f53c", ":uruguay:": "\U0001f1fa\U0001f1fe", ":us:": "\U0001f1fa\U0001f1f8", ":us_outlying_islands:": "\U0001f1fa\U0001f1f2", ":us_virgin_islands:": "\U0001f1fb\U0001f1ee", ":uzbekistan:": "\U0001f1fa\U0001f1ff", ":v:": "\u270c\ufe0f", ":vampire:": "\U0001f9db", ":vampire_man:": "\U0001f9db\u200d\u2642\ufe0f", ":vampire_woman:": "\U0001f9db\u200d\u2640\ufe0f", ":vanuatu:": "\U0001f1fb\U0001f1fa", ":vatican_city:": "\U0001f1fb\U0001f1e6", ":venezuela:": "\U0001f1fb\U0001f1ea", ":vertical_traffic_light:": "\U0001f6a6", ":vhs:": "\U0001f4fc", ":vibration_mode:": "\U0001f4f3", ":victory_hand:": "\u270c\ufe0f", ":video_camera:": "\U0001f4f9", ":video_game:": "\U0001f3ae", ":videocassette:": "\U0001f4fc", ":vietnam:": "\U0001f1fb\U0001f1f3", ":violin:": "\U0001f3bb", ":virgo:": "\u264d", ":volcano:": "\U0001f30b", ":volleyball:": "\U0001f3d0", ":vomiting_face:": "\U0001f92e", ":vs:": "\U0001f19a", ":vs_button:": "\U0001f19a", ":vulcan_salute:": "\U0001f596", ":waffle:": "\U0001f9c7", ":wales:": "\U0001f3f4\U000e0067\U000e0062\U000e0077\U000e006c\U000e0073\U000e007f", ":walking:": "\U0001f6b6", ":walking_man:": "\U0001f6b6\u200d\u2642\ufe0f", ":walking_woman:": "\U0001f6b6\u200d\u2640\ufe0f", ":wallis_futuna:": "\U0001f1fc\U0001f1eb", ":waning_crescent_moon:": "\U0001f318", ":waning_gibbous_moon:": "\U0001f316", ":warning:": "\u26a0\ufe0f", ":wastebasket:": "\U0001f5d1\ufe0f", ":watch:": "\u231a", ":water_buffalo:": "\U0001f403", ":water_closet:": "\U0001f6be", ":water_polo:": "\U0001f93d", ":water_wave:": "\U0001f30a", ":watermelon:": "\U0001f349", ":wave:": "\U0001f44b", ":waving_hand:": "\U0001f44b", ":wavy_dash:": "\u3030\ufe0f", ":waxing_crescent_moon:": "\U0001f312", ":waxing_gibbous_moon:": "\U0001f314", ":wc:": "\U0001f6be", ":weary:": "\U0001f629", ":weary_cat:": "\U0001f640", ":weary_face:": "\U0001f629", ":wedding:": "\U0001f492", ":weight_lifting:": "\U0001f3cb\ufe0f", ":weight_lifting_man:": "\U0001f3cb\ufe0f\u200d\u2642\ufe0f", ":weight_lifting_woman:": "\U0001f3cb\ufe0f\u200d\u2640\ufe0f", ":western_sahara:": "\U0001f1ea\U0001f1ed", ":whale2:": "\U0001f40b", ":whale:": "\U0001f433", ":wheel_of_dharma:": "\u2638\ufe0f", ":wheelchair:": "\u267f", ":wheelchair_symbol:": "\u267f", ":white_cane:": "\U0001f9af", ":white_check_mark:": "\u2705", ":white_circle:": "\u26aa", ":white_exclamation_mark:": "\u2755", ":white_flag:": "\U0001f3f3\ufe0f", ":white_flower:": "\U0001f4ae", ":white_hair:": "\U0001f9b3", ":white_haired_man:": "\U0001f468\u200d\U0001f9b3", ":white_haired_woman:": "\U0001f469\u200d\U0001f9b3", ":white_heart:": "\U0001f90d", ":white_large_square:": "\u2b1c", ":white_medium_small_square:": "\u25fd", ":white_medium_square:": "\u25fb\ufe0f", ":white_question_mark:": "\u2754", ":white_small_square:": "\u25ab\ufe0f", ":white_square_button:": "\U0001f533", ":wilted_flower:": "\U0001f940", ":wind_chime:": "\U0001f390", ":wind_face:": "\U0001f32c\ufe0f", ":window:": "\U0001fa9f", ":wine_glass:": "\U0001f377", ":wink:": "\U0001f609", ":winking_face:": "\U0001f609", ":winking_face_with_tongue:": "\U0001f61c", ":wolf:": "\U0001f43a", ":woman:": "\U0001f469", ":woman_and_man_holding_hands:": "\U0001f46b", ":woman_artist:": "\U0001f469\u200d\U0001f3a8", ":woman_astronaut:": "\U0001f469\u200d\U0001f680", ":woman_bald:": "\U0001f469\u200d\U0001f9b2", ":woman_biking:": "\U0001f6b4\u200d\u2640\ufe0f", ":woman_bouncing_ball:": "\u26f9\ufe0f\u200d\u2640\ufe0f", ":woman_bowing:": "\U0001f647\u200d\u2640\ufe0f", ":woman_cartwheeling:": "\U0001f938\u200d\u2640\ufe0f", ":woman_climbing:": "\U0001f9d7\u200d\u2640\ufe0f", ":woman_construction_worker:": "\U0001f477\u200d\u2640\ufe0f", ":woman_cook:": "\U0001f469\u200d\U0001f373", ":woman_dancing:": "\U0001f483", ":woman_detective:": "\U0001f575\ufe0f\u200d\u2640\ufe0f", ":woman_elf:": "\U0001f9dd\u200d\u2640\ufe0f", ":woman_facepalming:": "\U0001f926\u200d\u2640\ufe0f", ":woman_factory_worker:": "\U0001f469\u200d\U0001f3ed", ":woman_fairy:": "\U0001f9da\u200d\u2640\ufe0f", ":woman_farmer:": "\U0001f469\u200d\U0001f33e", ":woman_feeding_baby:": "\U0001f469\u200d\U0001f37c", ":woman_firefighter:": "\U0001f469\u200d\U0001f692", ":woman_frowning:": "\U0001f64d\u200d\u2640\ufe0f", ":woman_genie:": "\U0001f9de\u200d\u2640\ufe0f", ":woman_gesturing_no:": "\U0001f645\u200d\u2640\ufe0f", ":woman_gesturing_ok:": "\U0001f646\u200d\u2640\ufe0f", ":woman_getting_haircut:": "\U0001f487\u200d\u2640\ufe0f", ":woman_getting_massage:": "\U0001f486\u200d\u2640\ufe0f", ":woman_golfing:": "\U0001f3cc\ufe0f\u200d\u2640\ufe0f", ":woman_guard:": "\U0001f482\u200d\u2640\ufe0f", ":woman_health_worker:": "\U0001f469\u200d\u2695\ufe0f", ":woman_in_lotus_position:": "\U0001f9d8\u200d\u2640\ufe0f", ":woman_in_manual_wheelchair:": "\U0001f469\u200d\U0001f9bd", ":woman_in_motorized_wheelchair:": "\U0001f469\u200d\U0001f9bc", ":woman_in_steamy_room:": "\U0001f9d6\u200d\u2640\ufe0f", ":woman_in_tuxedo:": "\U0001f935\u200d\u2640\ufe0f", ":woman_judge:": "\U0001f469\u200d\u2696\ufe0f", ":woman_juggling:": "\U0001f939\u200d\u2640\ufe0f", ":woman_kneeling:": "\U0001f9ce\u200d\u2640\ufe0f", ":woman_lifting_weights:": "\U0001f3cb\ufe0f\u200d\u2640\ufe0f", ":woman_mage:": "\U0001f9d9\u200d\u2640\ufe0f", ":woman_mechanic:": "\U0001f469\u200d\U0001f527", ":woman_mountain_biking:": "\U0001f6b5\u200d\u2640\ufe0f", ":woman_office_worker:": "\U0001f469\u200d\U0001f4bc", ":woman_pilot:": "\U0001f469\u200d\u2708\ufe0f", ":woman_playing_handball:": "\U0001f93e\u200d\u2640\ufe0f", ":woman_playing_water_polo:": "\U0001f93d\u200d\u2640\ufe0f", ":woman_police_officer:": "\U0001f46e\u200d\u2640\ufe0f", ":woman_pouting:": "\U0001f64e\u200d\u2640\ufe0f", ":woman_raising_hand:": "\U0001f64b\u200d\u2640\ufe0f", ":woman_rowing_boat:": "\U0001f6a3\u200d\u2640\ufe0f", ":woman_running:": "\U0001f3c3\u200d\u2640\ufe0f", ":woman_s_boot:": "\U0001f462", ":woman_s_clothes:": "\U0001f45a", ":woman_s_hat:": "\U0001f452", ":woman_s_sandal:": "\U0001f461", ":woman_scientist:": "\U0001f469\u200d\U0001f52c", ":woman_shrugging:": "\U0001f937\u200d\u2640\ufe0f", ":woman_singer:": "\U0001f469\u200d\U0001f3a4", ":woman_standing:": "\U0001f9cd\u200d\u2640\ufe0f", ":woman_student:": "\U0001f469\u200d\U0001f393", ":woman_superhero:": "\U0001f9b8\u200d\u2640\ufe0f", ":woman_supervillain:": "\U0001f9b9\u200d\u2640\ufe0f", ":woman_surfing:": "\U0001f3c4\u200d\u2640\ufe0f", ":woman_swimming:": "\U0001f3ca\u200d\u2640\ufe0f", ":woman_teacher:": "\U0001f469\u200d\U0001f3eb", ":woman_technologist:": "\U0001f469\u200d\U0001f4bb", ":woman_tipping_hand:": "\U0001f481\u200d\u2640\ufe0f", ":woman_vampire:": "\U0001f9db\u200d\u2640\ufe0f", ":woman_walking:": "\U0001f6b6\u200d\u2640\ufe0f", ":woman_wearing_turban:": "\U0001f473\u200d\u2640\ufe0f", ":woman_with_blond_hair:": "\U0001f471\u200d\u2640\ufe0f", ":woman_with_curly_hair:": "\U0001f469\u200d\U0001f9b1", ":woman_with_headscarf:": "\U0001f9d5", ":woman_with_probing_cane:": "\U0001f469\u200d\U0001f9af", ":woman_with_red_hair:": "\U0001f469\u200d\U0001f9b0", ":woman_with_turban:": "\U0001f473\u200d\u2640\ufe0f", ":woman_with_veil:": "\U0001f470\u200d\u2640\ufe0f", ":woman_with_white_cane:": "\U0001f469\u200d\U0001f9af", ":woman_with_white_hair:": "\U0001f469\u200d\U0001f9b3", ":woman_zombie:": "\U0001f9df\u200d\u2640\ufe0f", ":womans_clothes:": "\U0001f45a", ":womans_hat:": "\U0001f452", ":women_holding_hands:": "\U0001f46d", ":women_s_room:": "\U0001f6ba", ":women_with_bunny_ears:": "\U0001f46f\u200d\u2640\ufe0f", ":women_wrestling:": "\U0001f93c\u200d\u2640\ufe0f", ":womens:": "\U0001f6ba", ":wood:": "\U0001fab5", ":woozy_face:": "\U0001f974", ":world_map:": "\U0001f5fa\ufe0f", ":worm:": "\U0001fab1", ":worried:": "\U0001f61f", ":worried_face:": "\U0001f61f", ":wrapped_gift:": "\U0001f381", ":wrench:": "\U0001f527", ":wrestling:": "\U0001f93c", ":writing_hand:": "\u270d\ufe0f", ":x:": "\u274c", ":yarn:": "\U0001f9f6", ":yawning_face:": "\U0001f971", ":yellow_circle:": "\U0001f7e1", ":yellow_heart:": "\U0001f49b", ":yellow_square:": "\U0001f7e8", ":yemen:": "\U0001f1fe\U0001f1ea", ":yen:": "\U0001f4b4", ":yen_banknote:": "\U0001f4b4", ":yin_yang:": "\u262f\ufe0f", ":yo_yo:": "\U0001fa80", ":yum:": "\U0001f60b", ":zambia:": "\U0001f1ff\U0001f1f2", ":zany_face:": "\U0001f92a", ":zap:": "\u26a1", ":zebra:": "\U0001f993", ":zero:": "0\ufe0f\u20e3", ":zimbabwe:": "\U0001f1ff\U0001f1fc", ":zipper_mouth_face:": "\U0001f910", ":zombie:": "\U0001f9df", ":zombie_man:": "\U0001f9df\u200d\u2642\ufe0f", ":zombie_woman:": "\U0001f9df\u200d\u2640\ufe0f", ":zzz:": "\U0001f4a4", } emoji-1.0.0/map_test.go000066400000000000000000000003461363214506500147660ustar00rootroot00000000000000package emoji import ( "testing" ) func TestEmojiMap(t *testing.T) { for name, code := range emojiMap { got := Parse(name) if got != code { t.Fatalf("test case %q fail: got: %v, expected: %v", name, got, code) } } } emoji-1.0.0/parser.go000066400000000000000000000047741363214506500144570ustar00rootroot00000000000000package emoji import ( "fmt" "regexp" "strings" "unicode" ) var ( flagRegex = regexp.MustCompile(`^:flag-([a-zA-Z]{2}):$`) ) // Parse replaces emoji aliases (:pizza:) with unicode representation. func Parse(input string) string { var matched strings.Builder var output strings.Builder for _, r := range input { // when it's not `:`, it might be inner or outer of the emoji alias if r != ':' { // if matched is empty, it's the outer of the emoji alias if matched.Len() == 0 { output.WriteRune(r) continue } matched.WriteRune(r) // if it's space, the alias's not valid. // reset matched for breaking the emoji alias if unicode.IsSpace(r) { output.WriteString(matched.String()) matched.Reset() } continue } // r is `:` now // if matched is empty, it's the beginning of the emoji alias if matched.Len() == 0 { matched.WriteRune(r) continue } // it's the end of the emoji alias match := matched.String() alias := match + ":" // check for emoji alias if code, ok := Find(alias); ok { output.WriteString(code) matched.Reset() continue } // not found any emoji output.WriteString(match) // it might be the beginning of the another emoji alias matched.Reset() matched.WriteRune(r) } // if matched not empty, add it to output if matched.Len() != 0 { output.WriteString(matched.String()) matched.Reset() } return output.String() } // Map returns the emojis map. // Key is the alias of the emoji. // Value is the code of the emoji. func Map() map[string]string { return emojiMap } // AppendAlias adds new emoji pair to the emojis map. func AppendAlias(alias, code string) error { if c, ok := emojiMap[alias]; ok { return fmt.Errorf("emoji already exist: %q => %+q", alias, c) } for _, r := range alias { if unicode.IsSpace(r) { return fmt.Errorf("emoji alias is not valid: %q", alias) } } emojiMap[alias] = code return nil } // Exist checks existence of the emoji by alias. func Exist(alias string) bool { _, ok := Find(alias) return ok } // Find returns the emoji code by alias. func Find(alias string) (string, bool) { if code, ok := emojiMap[alias]; ok { return code, true } if flag := checkFlag(alias); len(flag) > 0 { return flag, true } return "", false } // checkFlag finds flag emoji for `flag-[CODE]` pattern func checkFlag(alias string) string { if matches := flagRegex.FindStringSubmatch(alias); len(matches) == 2 { flag, _ := CountryFlag(matches[1]) return flag.String() } return "" } emoji-1.0.0/parser_test.go000066400000000000000000000104171363214506500155050ustar00rootroot00000000000000package emoji import ( "fmt" "testing" ) func TestParse(t *testing.T) { tt := []struct { input string expected string }{ { input: "I am :man_technologist: from :flag_for_turkey:. Tests are :thumbs_up:", expected: fmt.Sprintf("I am %v from %v. Tests are %v", ManTechnologist, FlagForTurkey, ThumbsUp), }, { input: "consecutive emojis :pizza::sushi::sweat:", expected: fmt.Sprintf("consecutive emojis %v%v%v", Pizza, Sushi, DowncastFaceWithSweat), }, { input: ":accordion::anguished_face: \n woman :woman_golfing:", expected: fmt.Sprintf("%v%v \n woman %v", Accordion, AnguishedFace, WomanGolfing), }, { input: "shared colon :angry_face_with_horns:anger_symbol:", expected: fmt.Sprintf("shared colon %vanger_symbol:", AngryFaceWithHorns), }, { input: ":not_exist_emoji: not exist emoji", expected: ":not_exist_emoji: not exist emoji", }, { input: ":dragon::", expected: fmt.Sprintf("%v:", Dragon), }, { input: "::+1:", expected: fmt.Sprintf(":%v", ThumbsUp), }, { input: "::anchor::", expected: fmt.Sprintf(":%v:", Anchor), }, { input: ":anguished:::", expected: fmt.Sprintf("%v::", AnguishedFace), }, { input: "too many colon::::closed_book:::: too many colon:", expected: fmt.Sprintf("too many colon:::%v::: too many colon:", ClosedBook), }, { input: "emoji with space :angry face_with_horns:anger_symbol:", expected: fmt.Sprintf("emoji with space :angry face_with_horns%v", AngerSymbol), }, { input: "flag testing :flag-tr: done", expected: fmt.Sprintf("flag testing %v done", FlagForTurkey), }, { input: "not valid flags :flag-tra: :flag-t: testing", expected: fmt.Sprintf("not valid flags :flag-tra: :flag-t: testing"), }, { input: "dummytext", expected: "dummytext", }, } for i, tc := range tt { got := Parse(tc.input) if got != tc.expected { t.Fatalf("test case %v fail: got: %v, expected: %v", i+1, got, tc.expected) } } } func TestMap(t *testing.T) { expected := len(emojiMap) got := len(Map()) if got != expected { t.Fatalf("test case fail: got: %v, expected: %v", got, expected) } } func TestAppendAlias(t *testing.T) { tt := []struct { alias string code string err bool }{ {alias: ":my_car:", code: "\U0001f3ce\ufe0f", err: false}, {alias: ":berserker:", code: "\U0001f621", err: false}, {alias: ":potato:", code: "\U0001f423", err: true}, {alias: ":not_valid alias:", code: "\U0001f423", err: true}, } for i, tc := range tt { err := AppendAlias(tc.alias, tc.code) if (err != nil) != tc.err { t.Fatalf("test case %v fail: got: %v, expected: %v", i+1, err, tc.err) } if exist := Exist(tc.alias); !exist && !tc.err { t.Fatalf("test case %v fail: got: %v, expected: %v", i+1, !exist, exist) } } } func TestExist(t *testing.T) { tt := []struct { input string expected bool }{ {input: ":man_technologist:", expected: true}, {input: ":registered:", expected: true}, {input: ":robot_face:", expected: true}, {input: ":wave:", expected: true}, {input: ":sheaf_of_rice:", expected: true}, {input: ":random_emoji:", expected: false}, {input: ":test_emoji:", expected: false}, } for i, tc := range tt { got := Exist(tc.input) if got != tc.expected { t.Fatalf("test case %v fail: got: %v, expected: %v", i+1, got, tc.expected) } } } func TestFind(t *testing.T) { tt := []struct { input string expected string exist bool }{ {input: ":man_technologist:", expected: ManTechnologist.String(), exist: true}, {input: ":robot_face:", expected: Robot.String(), exist: true}, {input: ":wave:", expected: WavingHand.String(), exist: true}, {input: ":sheaf_of_rice:", expected: SheafOfRice.String(), exist: true}, {input: ":random_emoji:", expected: "", exist: false}, {input: ":test_emoji:", expected: "", exist: false}, } for i, tc := range tt { got, exist := Find(tc.input) if got != tc.expected { t.Fatalf("test case %v fail: got: %v, expected: %v", i+1, got, tc.expected) } if exist != tc.exist { t.Fatalf("test case %v fail: got: %v, expected: %v", i+1, exist, tc.exist) } } } func BenchmarkParse(b *testing.B) { for n := 0; n < b.N; n++ { _ = Parse("I am :man_technologist: from :flag_for_turkey:. Tests are :thumbs_up:") } }