diff --git a/.vscodeignore b/.vscodeignore index 0cbae97..52d5294 100644 --- a/.vscodeignore +++ b/.vscodeignore @@ -1,3 +1,4 @@ +emoji/** !images/dark/** !images/light/** !images/settings/** @@ -6,7 +7,6 @@ !images/cl-*.png images/** .vscode/** -.vscode-test/** test/** src/** out/ui/** diff --git a/CHANGELOG.md b/CHANGELOG.md index 832f9d8..71a5929 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p ## [Unreleased] ### Added +- Adds emoji support, e.g. :smile: in commit messages will now be ๐Ÿ˜ƒ — closes [#429](https://github.com/eamodio/vscode-gitlens/issues/429) - Adds *Compare with Selected* and *Select for Compare* commands to file nodes in the *GitLens*, *GitLens File History*, and *GitLens Results* explorers — closes [#446](https://github.com/eamodio/vscode-gitlens/issues/446) - Adds `gitlens.historyExplorer.avatars` setting to specify whether to show avatar images instead of status icons in the `GitLens File History` explorer — allows for an independent value from the other explorers diff --git a/emoji/emojis.json b/emoji/emojis.json new file mode 100644 index 0000000..e771bd3 --- /dev/null +++ b/emoji/emojis.json @@ -0,0 +1 @@ +{"100":"๐Ÿ’ฏ","1234":"๐Ÿ”ข","gleeful":"๐Ÿ˜€","blissful":"๐Ÿ˜","grin":"๐Ÿ˜","joyful":"๐Ÿ˜‚","haha":"๐Ÿ˜‚","entertained":"๐Ÿคฃ","rofl":"๐Ÿคฃ","glad":"๐Ÿ˜ƒ","smile":"๐Ÿ˜ƒ","happy":"๐Ÿ˜„","embarassed":"๐Ÿ˜…","amused":"๐Ÿ˜†","laugh":"๐Ÿ˜†","lol":"๐Ÿ˜†","coy":"๐Ÿ˜‰","wink":"๐Ÿ˜‰","anxious":"๐Ÿ˜Š","blush":"๐Ÿ˜Š","yum":"๐Ÿ˜‹","savour":"๐Ÿ˜‹","confident":"๐Ÿ˜Ž","lovestruck":"๐Ÿ˜","flirty":"๐Ÿ˜˜","love":"๐Ÿฅฐ","kiss":"๐Ÿ˜—","happy_kiss":"๐Ÿ˜™","loving_kiss":"๐Ÿ˜š","relaxed":"โ˜บ๏ธ","pleased":"๐Ÿ™‚","hugging":"๐Ÿค—","starstruck":"๐Ÿคฉ","curious":"๐Ÿค”","thinking":"๐Ÿค”","contempt":"๐Ÿคจ","indifferent":"๐Ÿ˜๏ธ","neutral":"๐Ÿ˜๏ธ","apathetic":"๐Ÿ˜‘","expressionless":"๐Ÿ˜‘","vacant":"๐Ÿ˜ถ","no_mouth":"๐Ÿ˜ถ","disbelief":"๐Ÿ™„","cocky":"๐Ÿ˜","smirk":"๐Ÿ˜","persevered":"๐Ÿ˜ฃ","hopeful":"๐Ÿ˜ฅ","surprised":"๐Ÿ˜ฎ","silenced":"๐Ÿค","zipper_mouth":"๐Ÿค","hushed":"๐Ÿ˜ฏ","sleepy":"๐Ÿ˜ช","tired":"๐Ÿ˜ซ","exhausted":"๐Ÿ˜ด","sleeping":"๐Ÿ˜ด","relieved":"๐Ÿ˜Œ","playful":"๐Ÿ˜›","tongue_out":"๐Ÿ˜›","mischievous":"๐Ÿ˜œ","facetious":"๐Ÿ˜","lmao":"๐Ÿ˜","drooling":"๐Ÿคค","unamused":"๐Ÿ˜’","shamed":"๐Ÿ˜“","pensive":"๐Ÿ˜”","confused":"๐Ÿ˜•","ecstatic":"๐Ÿ™ƒ","upside_down":"๐Ÿ™ƒ","pretentious":"๐Ÿค‘","money_mouth":"๐Ÿค‘","astonished":"๐Ÿ˜ฒ","sad":"โ˜น๏ธ","frowning":"โ˜น๏ธ","cheerless":"๐Ÿ™","confounded":"๐Ÿ˜–","disappointed":"๐Ÿ˜ž","worried":"๐Ÿ˜Ÿ","annoyed":"๐Ÿ˜ค","hrmph":"๐Ÿ˜ค","upset":"๐Ÿ˜ข","cry":"๐Ÿ˜ข","distressed":"๐Ÿ˜ญ","sob":"๐Ÿ˜ญ","bored":"๐Ÿ˜ฆ","anguished":"๐Ÿ˜ง","wtf":"๐Ÿ˜ง","fearful":"๐Ÿ˜จ","weary":"๐Ÿ˜ฉ","shocked":"๐Ÿคฏ","exploding_head":"๐Ÿคฏ","grimaced":"๐Ÿ˜ฌ","frustrated":"๐Ÿ˜ฐ","frightened":"๐Ÿ˜ฑ","scream":"๐Ÿ˜ฑ","overheating":"๐Ÿฅต","freezing":"๐Ÿฅถ","flushed":"๐Ÿ˜ณ","crazy":"๐Ÿคช","dizzy":"๐Ÿ˜ต","enraged":"๐Ÿ˜ก","pout":"๐Ÿ˜ก","angry":"๐Ÿ˜ ","censored":"๐Ÿคฌ","ill":"๐Ÿ˜ท","mask":"๐Ÿ˜ท","sick":"๐Ÿค’","injured":"๐Ÿค•","nauseated":"๐Ÿคข","vomiting":"๐Ÿคฎ","sneezing":"๐Ÿคง","innocent":"๐Ÿ˜‡","halo":"๐Ÿ˜‡","cowboy":"๐Ÿค ","partying":"๐Ÿฅณ","celebrating":"๐Ÿฅณ","woozy":"๐Ÿฅด","pleading":"๐Ÿฅบ","lying":"๐Ÿคฅ","shushing":"๐Ÿคซ","gasp":"๐Ÿคญ","monocle":"๐Ÿง","nerd":"๐Ÿค“","imp":"๐Ÿ˜ˆ","angry_imp":"๐Ÿ‘ฟ","clown":"๐Ÿคก","ogre":"๐Ÿ‘น","goblin":"๐Ÿ‘บ","skull":"๐Ÿ’€","crossbones":"โ˜ ๏ธ","ghost":"๐Ÿ‘ป","alien":"๐Ÿ‘ฝ๏ธ","alien_monster":"๐Ÿ‘พ","space_invader":"๐Ÿ‘พ","robot":"๐Ÿค–","poop":"๐Ÿ’ฉ","smiling_cat":"๐Ÿ˜บ","grinning_cat":"๐Ÿ˜ธ","joyful_cat":"๐Ÿ˜น","lovestruck_cat":"๐Ÿ˜ป","smirking_cat":"๐Ÿ˜ผ","kissing_cat":"๐Ÿ˜ฝ","weary_cat":"๐Ÿ™€","crying_cat":"๐Ÿ˜ฟ","pouting_cat":"๐Ÿ˜พ","see_no_evil":"๐Ÿ™ˆ","hear_no_evil":"๐Ÿ™‰","speak_no_evil":"๐Ÿ™Š","baby":"๐Ÿ‘ถ","child":"๐Ÿง’","boy":"๐Ÿ‘ฆ","girl":"๐Ÿ‘ง","adult":"๐Ÿง‘","man":"๐Ÿ‘จ","woman":"๐Ÿ‘ฉ","older_adult":"๐Ÿง“","older_man":"๐Ÿ‘ด","older_woman":"๐Ÿ‘ต","man_health_worker":"๐Ÿ‘จโ€โš•๏ธ","woman_health_worker":"๐Ÿ‘ฉโ€โš•๏ธ","man_student":"๐Ÿ‘จโ€๐ŸŽ“","woman_student":"๐Ÿ‘ฉโ€๐ŸŽ“","man_teacher":"๐Ÿ‘จโ€๐Ÿซ","woman_teacher":"๐Ÿ‘ฉโ€๐Ÿซ","man_judge":"๐Ÿ‘จโ€โš–๏ธ","woman_judge":"๐Ÿ‘ฉโ€โš–๏ธ","man_farmer":"๐Ÿ‘จโ€๐ŸŒพ","woman_farmer":"๐Ÿ‘ฉโ€๐ŸŒพ","man_cook":"๐Ÿ‘จโ€๐Ÿณ","woman_cook":"๐Ÿ‘ฉโ€๐Ÿณ","man_mechanic":"๐Ÿ‘จโ€๐Ÿ”ง","woman_mechanic":"๐Ÿ‘ฉโ€๐Ÿ”ง","man_factory_worker":"๐Ÿ‘จโ€๐Ÿญ","woman_factory_worker":"๐Ÿ‘ฉโ€๐Ÿญ","man_office_worker":"๐Ÿ‘จโ€๐Ÿ’ผ","woman_office_worker":"๐Ÿ‘ฉโ€๐Ÿ’ผ","man_scientist":"๐Ÿ‘จโ€๐Ÿ”ฌ","woman_scientist":"๐Ÿ‘ฉโ€๐Ÿ”ฌ","man_technologist":"๐Ÿ‘จโ€๐Ÿ’ป","woman_technologist":"๐Ÿ‘ฉโ€๐Ÿ’ป","man_singer":"๐Ÿ‘จโ€๐ŸŽค","woman_singer":"๐Ÿ‘ฉโ€๐ŸŽค","man_artist":"๐Ÿ‘จโ€๐ŸŽจ","woman_artist":"๐Ÿ‘ฉโ€๐ŸŽจ","man_pilot":"๐Ÿ‘จโ€โœˆ๏ธ","woman_pilot":"๐Ÿ‘ฉโ€โœˆ๏ธ","man_astronaut":"๐Ÿ‘จโ€๐Ÿš€","woman_astronaut":"๐Ÿ‘ฉโ€๐Ÿš€","man_firefighter":"๐Ÿ‘จโ€๐Ÿš’","woman_firefighter":"๐Ÿ‘ฉโ€๐Ÿš’","police_officer":"๐Ÿ‘ฎ","man_police_officer":"๐Ÿ‘ฎโ€โ™‚๏ธ","woman_police_officer":"๐Ÿ‘ฎโ€โ™€๏ธ","detective":"๐Ÿ•ต๏ธ","man_detective":"๐Ÿ•ต๏ธโ€โ™‚๏ธ","woman_detective":"๐Ÿ•ต๏ธโ€โ™€๏ธ","guard":"๐Ÿ’‚","man_guard":"๐Ÿ’‚โ€โ™‚๏ธ","woman_guard":"๐Ÿ’‚โ€โ™€๏ธ","construction_worker":"๐Ÿ‘ท","man_construction_worker":"๐Ÿ‘ทโ€โ™‚๏ธ","woman_construction_worker":"๐Ÿ‘ทโ€โ™€๏ธ","prince":"๐Ÿคด","princess":"๐Ÿ‘ธ","person_turban":"๐Ÿ‘ณ","man_turban":"๐Ÿ‘ณโ€โ™‚๏ธ","woman_turban":"๐Ÿ‘ณโ€โ™€๏ธ","man_chinese_cap":"๐Ÿ‘ฒ","woman_headscarf":"๐Ÿง•","bearded_person":"๐Ÿง”","blond_person":"๐Ÿ‘ฑ","blond_man":"๐Ÿ‘ฑโ€โ™‚๏ธ","blond_woman":"๐Ÿ‘ฑโ€โ™€๏ธ","red_haired_man":"๐Ÿ‘จโ€๐Ÿฆฐ","red_haired_woman":"๐Ÿ‘ฉโ€๐Ÿฆฐ","curly_haired_man":"๐Ÿ‘จโ€๐Ÿฆฑ","curly_haired_woman":"๐Ÿ‘ฉโ€๐Ÿฆฑ","bald_man":"๐Ÿ‘จโ€๐Ÿฆฒ","bald_woman":"๐Ÿ‘ฉโ€๐Ÿฆฒ","white_haired_man":"๐Ÿ‘จโ€๐Ÿฆณ","white_haired_woman":"๐Ÿ‘ฉโ€๐Ÿฆณ","man_tuxedo":"๐Ÿคต","bride_veil":"๐Ÿ‘ฐ","pregnant_woman":"๐Ÿคฐ","breast_feeding":"๐Ÿคฑ","baby_angel":"๐Ÿ‘ผ","santa":"๐ŸŽ…","mrs_claus":"๐Ÿคถ","hero":"๐Ÿฆธ","superhero":"๐Ÿฆธ","woman_hero":"๐Ÿฆธโ€โ™€๏ธ","man_hero":"๐Ÿฆธโ€โ™‚๏ธ","villain":"๐Ÿฆน","supervillain":"๐Ÿฆน","woman_villain":"๐Ÿฆนโ€โ™€๏ธ","man_villain":"๐Ÿฆนโ€โ™‚๏ธ","mage":"๐Ÿง™","woman_mage":"๐Ÿง™โ€โ™€๏ธ","man_mage":"๐Ÿง™โ€โ™‚๏ธ","fairy":"๐Ÿงš","woman_fairy":"๐Ÿงšโ€โ™€๏ธ","man_fairy":"๐Ÿงšโ€โ™‚๏ธ","vampire":"๐Ÿง›","woman_vampire":"๐Ÿง›โ€โ™€๏ธ","man_vampire":"๐Ÿง›โ€โ™‚๏ธ","merperson":"๐Ÿงœ","mermaid":"๐Ÿงœโ€โ™€๏ธ","merman":"๐Ÿงœโ€โ™‚๏ธ","elf":"๐Ÿง","woman_elf":"๐Ÿงโ€โ™€๏ธ","man_elf":"๐Ÿงโ€โ™‚๏ธ","genie":"๐Ÿงž","woman_genie":"๐Ÿงžโ€โ™€๏ธ","man_genie":"๐Ÿงžโ€โ™‚๏ธ","zombie":"๐ŸงŸ","woman_zombie":"๐ŸงŸโ€โ™€๏ธ","man_zombie":"๐ŸงŸโ€โ™‚๏ธ","person_frowning":"๐Ÿ™","man_frowning":"๐Ÿ™โ€โ™‚๏ธ","woman_frowning":"๐Ÿ™โ€โ™€๏ธ","person_pouting":"๐Ÿ™Ž","man_pouting":"๐Ÿ™Žโ€โ™‚๏ธ","woman_pouting":"๐Ÿ™Žโ€โ™€๏ธ","person_gesturing_no":"๐Ÿ™…","man_gesturing_no":"๐Ÿ™…โ€โ™‚๏ธ","woman_gesturing_no":"๐Ÿ™…โ€โ™€๏ธ","person_gesturing_ok":"๐Ÿ™†","man_gesturing_ok":"๐Ÿ™†โ€โ™‚๏ธ","woman_gesturing_ok":"๐Ÿ™†โ€โ™€๏ธ","person_tipping_hand":"๐Ÿ’","man_tipping_hand":"๐Ÿ’โ€โ™‚๏ธ","woman_tipping_hand":"๐Ÿ’โ€โ™€๏ธ","person_raising_hand":"๐Ÿ™‹","man_raising_hand":"๐Ÿ™‹โ€โ™‚๏ธ","woman_raising_hand":"๐Ÿ™‹โ€โ™€๏ธ","person_bowing":"๐Ÿ™‡","man_bowing":"๐Ÿ™‡โ€โ™‚๏ธ","woman_bowing":"๐Ÿ™‡โ€โ™€๏ธ","person_facepalming":"๐Ÿคฆ","man_facepalming":"๐Ÿคฆโ€โ™‚๏ธ","woman_facepalming":"๐Ÿคฆโ€โ™€๏ธ","person_shrugging":"๐Ÿคท","man_shrugging":"๐Ÿคทโ€โ™‚๏ธ","woman_shrugging":"๐Ÿคทโ€โ™€๏ธ","person_getting_massage":"๐Ÿ’†","man_getting_face_massage":"๐Ÿ’†โ€โ™‚๏ธ","woman_getting_face_massage":"๐Ÿ’†โ€โ™€๏ธ","person_getting_haircut":"๐Ÿ’‡","man_getting_haircut":"๐Ÿ’‡โ€โ™‚๏ธ","woman_getting_haircut":"๐Ÿ’‡โ€โ™€๏ธ","person_walking":"๐Ÿšถ","man_walking":"๐Ÿšถโ€โ™‚๏ธ","woman_walking":"๐Ÿšถโ€โ™€๏ธ","person_running":"๐Ÿƒ","man_running":"๐Ÿƒโ€โ™‚๏ธ","woman_running":"๐Ÿƒโ€โ™€๏ธ","dancer":"๐Ÿ’ƒ","woman_dancing":"๐Ÿ’ƒ","man_dancing":"๐Ÿ•บ","people_bunny_ears_partying":"๐Ÿ‘ฏ","men_bunny_ears_partying":"๐Ÿ‘ฏโ€โ™‚๏ธ","women_bunny_ears_partying":"๐Ÿ‘ฏโ€โ™€๏ธ","person_steamy_room":"๐Ÿง–","woman_steamy_room":"๐Ÿง–โ€โ™€๏ธ","man_steamy_room":"๐Ÿง–โ€โ™‚๏ธ","person_climbing":"๐Ÿง—","woman_climbing":"๐Ÿง—โ€โ™€๏ธ","man_climbing":"๐Ÿง—โ€โ™‚๏ธ","person_lotus_position":"๐Ÿง˜","woman_lotus_position":"๐Ÿง˜โ€โ™€๏ธ","man_lotus_position":"๐Ÿง˜โ€โ™‚๏ธ","bath":"๐Ÿ›€","in_bed":"๐Ÿ›Œ","levitate":"๐Ÿ•ด๏ธ","speaking_head":"๐Ÿ—ฃ๏ธ","bust_silhouette":"๐Ÿ‘ค","busts_silhouette":"๐Ÿ‘ฅ","person_fencing":"๐Ÿคบ","horse_racing":"๐Ÿ‡","skier":"โ›ท๏ธ","snowboarder":"๐Ÿ‚๏ธ","person_golfing":"๐ŸŒ๏ธ","man_golfing":"๐ŸŒ๏ธโ€โ™‚๏ธ","woman_golfing":"๐ŸŒ๏ธโ€โ™€๏ธ","person_surfing":"๐Ÿ„๏ธ","man_surfing":"๐Ÿ„โ€โ™‚๏ธ","woman_surfing":"๐Ÿ„โ€โ™€๏ธ","person_rowing_boat":"๐Ÿšฃ","man_rowing_boat":"๐Ÿšฃโ€โ™‚๏ธ","woman_rowing_boat":"๐Ÿšฃโ€โ™€๏ธ","person_swimming":"๐ŸŠ๏ธ","man_swimming":"๐ŸŠโ€โ™‚๏ธ","woman_swimming":"๐ŸŠโ€โ™€๏ธ","person_bouncing_ball":"โ›น๏ธ","man_bouncing_ball":"โ›น๏ธโ€โ™‚๏ธ","woman_bouncing_ball":"โ›น๏ธโ€โ™€๏ธ","person_lifting_weights":"๐Ÿ‹๏ธ","man_lifting_weights":"๐Ÿ‹๏ธโ€โ™‚๏ธ","woman_lifting_weights":"๐Ÿ‹๏ธโ€โ™€๏ธ","person_biking":"๐Ÿšด","man_biking":"๐Ÿšดโ€โ™‚๏ธ","woman_biking":"๐Ÿšดโ€โ™€๏ธ","person_mountain_biking":"๐Ÿšต","man_mountain_biking":"๐Ÿšตโ€โ™‚๏ธ","woman_mountain_biking":"๐Ÿšตโ€โ™€๏ธ","race_car":"๐ŸŽ๏ธ","motorcycle":"๐Ÿ๏ธ","person_cartwheel":"๐Ÿคธ","man_cartwheeling":"๐Ÿคธโ€โ™‚๏ธ","woman_cartwheeling":"๐Ÿคธโ€โ™€๏ธ","people_wrestling":"๐Ÿคผ","men_wrestling":"๐Ÿคผโ€โ™‚๏ธ","women_wrestling":"๐Ÿคผโ€โ™€๏ธ","person_water_polo":"๐Ÿคฝ","man_water_polo":"๐Ÿคฝโ€โ™‚๏ธ","woman_water_polo":"๐Ÿคฝโ€โ™€๏ธ","person_handball":"๐Ÿคพ","man_handball":"๐Ÿคพโ€โ™‚๏ธ","woman_handball":"๐Ÿคพโ€โ™€๏ธ","person_juggling":"๐Ÿคน","man_juggling":"๐Ÿคนโ€โ™‚๏ธ","woman_juggling":"๐Ÿคนโ€โ™€๏ธ","holding_hands_mw":"๐Ÿ‘ซ","holding_hands_wm":"๐Ÿ‘ซ","holding_hands_mm":"๐Ÿ‘ฌ","holding_hands_ww":"๐Ÿ‘ญ","couple":"๐Ÿ’","kiss_mw":"๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ","kiss_wm":"๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ","kiss_mm":"๐Ÿ‘จโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ","kiss_ww":"๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ","couple_heart":"๐Ÿ’‘","couple_mw":"๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ‘จ","couple_wm":"๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ‘จ","couple_mm":"๐Ÿ‘จโ€โค๏ธโ€๐Ÿ‘จ","couple_ww":"๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ‘ฉ","family":"๐Ÿ‘ช๏ธ","family_mwb":"๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆ","family_mwg":"๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ง","family_mwgb":"๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ","family_mwbb":"๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ","family_mwgg":"๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง","family_mmb":"๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆ","family_mmg":"๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ง","family_mmgb":"๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ","family_mmbb":"๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ","family_mmgg":"๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ง","family_wwb":"๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆ","family_wwg":"๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ง","family_wwgb":"๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ","family_wwbb":"๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ","family_wwgg":"๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง","family_mb":"๐Ÿ‘จโ€๐Ÿ‘ฆ","family_mbb":"๐Ÿ‘จโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ","family_mg":"๐Ÿ‘จโ€๐Ÿ‘ง","family_mgb":"๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ","family_mgg":"๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ง","family_wb":"๐Ÿ‘ฉโ€๐Ÿ‘ฆ","family_wbb":"๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ","family_wg":"๐Ÿ‘ฉโ€๐Ÿ‘ง","family_wgb":"๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ","family_wgg":"๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง","selfie":"๐Ÿคณ","muscle":"๐Ÿ’ช","right_bicep":"๐Ÿ’ช","leg":"๐Ÿฆต","foot":"๐Ÿฆถ","point_left":"๐Ÿ‘ˆ๏ธ","point_right":"๐Ÿ‘‰๏ธ","point_up":"โ˜๏ธ","backhand_point_up":"๐Ÿ‘†๏ธ","middle_finger":"๐Ÿ–•","point_down":"๐Ÿ‘‡๏ธ","victory":"โœŒ๏ธ","fingers_crossed":"๐Ÿคž","vulcan":"๐Ÿ––","metal":"๐Ÿค˜","call_me":"๐Ÿค™","splayed_hand":"๐Ÿ–๏ธ","raised_hand":"โœ‹","ok_hand":"๐Ÿ‘Œ","thumbsup":"๐Ÿ‘๏ธ","+1":"๐Ÿ‘๏ธ","yes":"๐Ÿ‘๏ธ","thumbsdown":"๐Ÿ‘Ž๏ธ","-1":"๐Ÿ‘Ž๏ธ","no":"๐Ÿ‘Ž๏ธ","fist":"โœŠ","punch":"๐Ÿ‘Š","left_facing_fist":"๐Ÿค›","right_facing_fist":"๐Ÿคœ","raised_backhand":"๐Ÿคš","wave":"๐Ÿ‘‹","love_you_gesture":"๐ŸคŸ","writing_hand":"โœ๏ธ","clap":"๐Ÿ‘","open_hands":"๐Ÿ‘","raised_hands":"๐Ÿ™Œ","palms_up":"๐Ÿคฒ","pray":"๐Ÿ™","handshake":"๐Ÿค","nail_care":"๐Ÿ’…","ear":"๐Ÿ‘‚๏ธ","nose":"๐Ÿ‘ƒ","footprints":"๐Ÿ‘ฃ","eyes":"๐Ÿ‘€","eye":"๐Ÿ‘๏ธ","eye_bubble":"๐Ÿ‘๏ธโ€๐Ÿ—จ๏ธ","brain":"๐Ÿง ","bone":"๐Ÿฆด","tooth":"๐Ÿฆท","tongue":"๐Ÿ‘…","lips":"๐Ÿ‘„","kiss_lips":"๐Ÿ’‹","cupid":"๐Ÿ’˜","heart":"โค๏ธ","heartbeat":"๐Ÿ’“","broken_heart":"๐Ÿ’”","two_hearts":"๐Ÿ’•","sparkling_heart":"๐Ÿ’–","heartpulse":"๐Ÿ’—","blue_heart":"๐Ÿ’™","green_heart":"๐Ÿ’š","yellow_heart":"๐Ÿ’›","orange_heart":"๐Ÿงก","purple_heart":"๐Ÿ’œ","black_heart":"๐Ÿ–ค","heart_ribbon":"๐Ÿ’","revolving_hearts":"๐Ÿ’ž","heart_decoration":"๐Ÿ’Ÿ","heart_exclamation":"โฃ๏ธ","love_letter":"๐Ÿ’Œ","zzz":"๐Ÿ’ค","anger":"๐Ÿ’ข","bomb":"๐Ÿ’ฃ๏ธ","boom":"๐Ÿ’ฅ","collision":"๐Ÿ’ฅ","sweat_drops":"๐Ÿ’ฆ","dash":"๐Ÿ’จ","dizzy_star":"๐Ÿ’ซ","speech":"๐Ÿ’ฌ","left_speech":"๐Ÿ—จ๏ธ","right_anger_speech":"๐Ÿ—ฏ๏ธ","thought":"๐Ÿ’ญ","hole":"๐Ÿ•ณ๏ธ","glasses":"๐Ÿ‘“๏ธ","sunglasses":"๐Ÿ•ถ๏ธ","goggles":"๐Ÿฅฝ","lab_coat":"๐Ÿฅผ","necktie":"๐Ÿ‘”","tie":"๐Ÿ‘”","shirt":"๐Ÿ‘•","jeans":"๐Ÿ‘–","scarf":"๐Ÿงฃ","gloves":"๐Ÿงค","coat":"๐Ÿงฅ","socks":"๐Ÿงฆ","dress":"๐Ÿ‘—","kimono":"๐Ÿ‘˜","bikini":"๐Ÿ‘™","blouse":"๐Ÿ‘š","womans_clothes":"๐Ÿ‘š","purse":"๐Ÿ‘›","handbag":"๐Ÿ‘œ","pouch":"๐Ÿ‘","clutch_bag":"๐Ÿ‘","shopping_bags":"๐Ÿ›๏ธ","backpack":"๐ŸŽ’","dress_shoe":"๐Ÿ‘ž","mans_shoe":"๐Ÿ‘ž","sneaker":"๐Ÿ‘Ÿ","athletic_shoe":"๐Ÿ‘Ÿ","hiking_boot":"๐Ÿฅพ","flat_shoe":"๐Ÿฅฟ","high_heel":"๐Ÿ‘ ","womans_sandal":"๐Ÿ‘ก","womans_boot":"๐Ÿ‘ข","crown":"๐Ÿ‘‘","womans_hat":"๐Ÿ‘’","top_hat":"๐ŸŽฉ","graduation_cap":"๐ŸŽ“๏ธ","billed_cap":"๐Ÿงข","helmet_cross":"โ›‘๏ธ","prayer_beads":"๐Ÿ“ฟ","lipstick":"๐Ÿ’„","ring":"๐Ÿ’","gem":"๐Ÿ’Ž","monkey_face":"๐Ÿต","monkey":"๐Ÿ’","gorilla":"๐Ÿฆ","dog_face":"๐Ÿถ","dog":"๐Ÿ•๏ธ","poodle":"๐Ÿฉ","wolf_face":"๐Ÿบ","fox_face":"๐ŸฆŠ","raccoon":"๐Ÿฆ","cat_face":"๐Ÿฑ","cat":"๐Ÿˆ๏ธ","lion_face":"๐Ÿฆ","tiger_face":"๐Ÿฏ","tiger":"๐Ÿ…","leopard":"๐Ÿ†","horse_face":"๐Ÿด","horse":"๐ŸŽ","unicorn_face":"๐Ÿฆ„","zebra":"๐Ÿฆ“","deer":"๐ŸฆŒ","cow_face":"๐Ÿฎ","ox":"๐Ÿ‚","water_buffalo":"๐Ÿƒ","cow":"๐Ÿ„","pig_face":"๐Ÿท","pig":"๐Ÿ–","boar":"๐Ÿ—","pig_nose":"๐Ÿฝ","ram":"๐Ÿ","sheep":"๐Ÿ‘","goat":"๐Ÿ","camel":"๐Ÿช","two_hump_camel":"๐Ÿซ","llama":"๐Ÿฆ™","giraffe":"๐Ÿฆ’","elephant":"๐Ÿ˜","rhino":"๐Ÿฆ","hippo":"๐Ÿฆ›","mouse_face":"๐Ÿญ","mouse":"๐Ÿ","rat":"๐Ÿ€","hamster_face":"๐Ÿน","rabbit_face":"๐Ÿฐ","rabbit":"๐Ÿ‡","chipmunk":"๐Ÿฟ๏ธ","hedgehog":"๐Ÿฆ”","bat":"๐Ÿฆ‡","bear_face":"๐Ÿป","koala_face":"๐Ÿจ","panda_face":"๐Ÿผ","kangaroo":"๐Ÿฆ˜","badger":"๐Ÿฆก","feet":"๐Ÿพ","turkey":"๐Ÿฆƒ","chicken":"๐Ÿ”","rooster":"๐Ÿ“","hatching_chick":"๐Ÿฃ","baby_chick":"๐Ÿค","hatched_chick":"๐Ÿฅ","bird":"๐Ÿฆ๏ธ","penguin":"๐Ÿง","dove":"๐Ÿ•Š๏ธ","eagle":"๐Ÿฆ…","duck":"๐Ÿฆ†","swan":"๐Ÿฆข","owl":"๐Ÿฆ‰","peacock":"๐Ÿฆš","parrot":"๐Ÿฆœ","frog_face":"๐Ÿธ","crocodile":"๐ŸŠ","turtle":"๐Ÿข","lizard":"๐ŸฆŽ","snake":"๐Ÿ","dragon_face":"๐Ÿฒ","dragon":"๐Ÿ‰","sauropod":"๐Ÿฆ•","trex":"๐Ÿฆ–","spouting_whale":"๐Ÿณ","whale":"๐Ÿ‹","dolphin":"๐Ÿฌ","fish":"๐ŸŸ๏ธ","tropical_fish":"๐Ÿ ","blowfish":"๐Ÿก","shark":"๐Ÿฆˆ","octopus":"๐Ÿ™","shell":"๐Ÿš","crab":"๐Ÿฆ€","lobster":"๐Ÿฆž","shrimp":"๐Ÿฆ","squid":"๐Ÿฆ‘","snail":"๐ŸŒ","butterfly":"๐Ÿฆ‹","bug":"๐Ÿ›","ant":"๐Ÿœ","bee":"๐Ÿ","beetle":"๐Ÿž","cricket":"๐Ÿฆ—","spider":"๐Ÿ•ท๏ธ","spider_web":"๐Ÿ•ธ๏ธ","scorpion":"๐Ÿฆ‚","mosquito":"๐ŸฆŸ","microbe":"๐Ÿฆ ","germ":"๐Ÿฆ ","bouquet":"๐Ÿ’","cherry_blossom":"๐ŸŒธ","white_flower":"๐Ÿ’ฎ","rosette":"๐Ÿต๏ธ","rose":"๐ŸŒน","wilted_rose":"๐Ÿฅ€","hibiscus":"๐ŸŒบ","sunflower":"๐ŸŒป","blossom":"๐ŸŒผ","tulip":"๐ŸŒท","seedling":"๐ŸŒฑ","evergreen_tree":"๐ŸŒฒ","deciduous_tree":"๐ŸŒณ","palm_tree":"๐ŸŒด","cactus":"๐ŸŒต","ear_of_rice":"๐ŸŒพ","herb":"๐ŸŒฟ","shamrock":"โ˜˜๏ธ","four_leaf_clover":"๐Ÿ€","maple_leaf":"๐Ÿ","fallen_leaf":"๐Ÿ‚","leaves":"๐Ÿƒ","grapes":"๐Ÿ‡","melon":"๐Ÿˆ","watermelon":"๐Ÿ‰","tangerine":"๐ŸŠ","lemon":"๐Ÿ‹","banana":"๐ŸŒ","pineapple":"๐Ÿ","mango":"๐Ÿฅญ","apple":"๐ŸŽ","green_apple":"๐Ÿ","pear":"๐Ÿ","peach":"๐Ÿ‘","cherries":"๐Ÿ’","strawberry":"๐Ÿ“","kiwi":"๐Ÿฅ","tomato":"๐Ÿ…","coconut":"๐Ÿฅฅ","avocado":"๐Ÿฅ‘","eggplant":"๐Ÿ†","potato":"๐Ÿฅ”","carrot":"๐Ÿฅ•","corn":"๐ŸŒฝ","hot_pepper":"๐ŸŒถ๏ธ","cucumber":"๐Ÿฅ’","leafy_green":"๐Ÿฅฌ","broccoli":"๐Ÿฅฆ","mushroom":"๐Ÿ„","peanuts":"๐Ÿฅœ","chestnut":"๐ŸŒฐ","bread":"๐Ÿž","croissant":"๐Ÿฅ","french_bread":"๐Ÿฅ–","pretzel":"๐Ÿฅจ","bagel":"๐Ÿฅฏ","pancakes":"๐Ÿฅž","cheese":"๐Ÿง€","meat_on_bone":"๐Ÿ–","poultry_leg":"๐Ÿ—","cut_of_meat":"๐Ÿฅฉ","bacon":"๐Ÿฅ“","hamburger":"๐Ÿ”","fries":"๐ŸŸ","pizza":"๐Ÿ•","hotdog":"๐ŸŒญ","sandwich":"๐Ÿฅช","taco":"๐ŸŒฎ","burrito":"๐ŸŒฏ","stuffed_flatbread":"๐Ÿฅ™","egg":"๐Ÿฅš","cooking":"๐Ÿณ","shallow_pan_of_food":"๐Ÿฅ˜","stew":"๐Ÿฒ","bowl_spoon":"๐Ÿฅฃ","salad":"๐Ÿฅ—","popcorn":"๐Ÿฟ","salt":"๐Ÿง‚","canned_food":"๐Ÿฅซ","bento":"๐Ÿฑ","rice_cracker":"๐Ÿ˜","rice_ball":"๐Ÿ™","rice":"๐Ÿš","curry":"๐Ÿ›","ramen":"๐Ÿœ","spaghetti":"๐Ÿ","sweet_potato":"๐Ÿ ","oden":"๐Ÿข","sushi":"๐Ÿฃ","fried_shrimp":"๐Ÿค","fish_cake":"๐Ÿฅ","moon_cake":"๐Ÿฅฎ","dango":"๐Ÿก","dumpling":"๐ŸฅŸ","fortune_cookie":"๐Ÿฅ ","takeout_box":"๐Ÿฅก","icecream":"๐Ÿฆ","shaved_ice":"๐Ÿง","ice_cream":"๐Ÿจ","doughnut":"๐Ÿฉ","cookie":"๐Ÿช","birthday":"๐ŸŽ‚","cake":"๐Ÿฐ","cupcake":"๐Ÿง","pie":"๐Ÿฅง","chocolate_bar":"๐Ÿซ","candy":"๐Ÿฌ","lollipop":"๐Ÿญ","custard":"๐Ÿฎ","honey_pot":"๐Ÿฏ","baby_bottle":"๐Ÿผ","milk":"๐Ÿฅ›","coffee":"โ˜•๏ธ","tea":"๐Ÿต","sake":"๐Ÿถ","champagne":"๐Ÿพ","wine_glass":"๐Ÿท","cocktail":"๐Ÿธ๏ธ","tropical_drink":"๐Ÿน","beer":"๐Ÿบ","beers":"๐Ÿป","champagne_glass":"๐Ÿฅ‚","tumbler_glass":"๐Ÿฅƒ","cup_straw":"๐Ÿฅค","chopsticks":"๐Ÿฅข","fork_knife_plate":"๐Ÿฝ๏ธ","utensils":"๐Ÿด","spoon":"๐Ÿฅ„","knife":"๐Ÿ”ช","amphora":"๐Ÿบ","earth_africa":"๐ŸŒ๏ธ","earth_americas":"๐ŸŒŽ๏ธ","earth_asia":"๐ŸŒ๏ธ","globe":"๐ŸŒ","map":"๐Ÿ—บ๏ธ","japan":"๐Ÿ—พ","compass":"๐Ÿงญ","snowy_mountain":"๐Ÿ”๏ธ","mountain":"โ›ฐ๏ธ","volcano":"๐ŸŒ‹","mount_fuji":"๐Ÿ—ป","camping":"๐Ÿ•๏ธ","beach":"๐Ÿ–๏ธ","desert":"๐Ÿœ๏ธ","island":"๐Ÿ๏ธ","park":"๐Ÿž๏ธ","stadium":"๐ŸŸ๏ธ","classical_building":"๐Ÿ›๏ธ","construction_site":"๐Ÿ—๏ธ","brick":"๐Ÿงฑ","homes":"๐Ÿ˜๏ธ","house_abandoned":"๐Ÿš๏ธ","house":"๐Ÿ ๏ธ","house_garden":"๐Ÿก","office":"๐Ÿข","ja_post_office":"๐Ÿฃ","post_office":"๐Ÿค","hospital":"๐Ÿฅ","bank":"๐Ÿฆ","hotel":"๐Ÿจ","love_hotel":"๐Ÿฉ","convenience_store":"๐Ÿช","school":"๐Ÿซ","department_store":"๐Ÿฌ","factory":"๐Ÿญ๏ธ","japanese_castle":"๐Ÿฏ","castle":"๐Ÿฐ","european_castle":"๐Ÿฐ","wedding":"๐Ÿ’’","tokyo_tower":"๐Ÿ—ผ","statue_of_liberty":"๐Ÿ—ฝ","church":"โ›ช๏ธ","mosque":"๐Ÿ•Œ","synagogue":"๐Ÿ•","shinto_shrine":"โ›ฉ๏ธ","kaaba":"๐Ÿ•‹","fountain":"โ›ฒ๏ธ","tent":"โ›บ๏ธ","foggy":"๐ŸŒ","night_stars":"๐ŸŒƒ","cityscape":"๐Ÿ™๏ธ","sunrise_over_mountains":"๐ŸŒ„","sunrise":"๐ŸŒ…","dusk":"๐ŸŒ†","sunset":"๐ŸŒ‡","bridge_at_night":"๐ŸŒ‰","hotsprings":"โ™จ๏ธ","milky_way":"๐ŸŒŒ","carousel_horse":"๐ŸŽ ","ferris_wheel":"๐ŸŽก","roller_coaster":"๐ŸŽข","barber":"๐Ÿ’ˆ","circus_tent":"๐ŸŽช","steam_locomotive":"๐Ÿš‚","railway_car":"๐Ÿšƒ","bullettrain_side":"๐Ÿš„","bullettrain":"๐Ÿš…","train":"๐Ÿš†","metro":"๐Ÿš‡๏ธ","light_rail":"๐Ÿšˆ","station":"๐Ÿš‰","tram":"๐ŸšŠ","monorail":"๐Ÿš","mountain_railway":"๐Ÿšž","tram_car":"๐Ÿš‹","bus":"๐ŸšŒ","oncoming_bus":"๐Ÿš๏ธ","trolleybus":"๐ŸšŽ","minibus":"๐Ÿš","ambulance":"๐Ÿš‘๏ธ","fire_engine":"๐Ÿš’","police_car":"๐Ÿš“","oncoming_police_car":"๐Ÿš”๏ธ","taxi":"๐Ÿš•","oncoming_taxi":"๐Ÿš–","red_car":"๐Ÿš—","oncoming_automobile":"๐Ÿš˜๏ธ","blue_car":"๐Ÿš™","truck":"๐Ÿšš","lorry":"๐Ÿš›","tractor":"๐Ÿšœ","bike":"๐Ÿšฒ๏ธ","scooter":"๐Ÿ›ด","skateboard":"๐Ÿ›น","motor_scooter":"๐Ÿ›ต","bus_stop":"๐Ÿš","motorway":"๐Ÿ›ฃ๏ธ","railway_track":"๐Ÿ›ค๏ธ","oil_drum":"๐Ÿ›ข๏ธ","fuel_pump":"โ›ฝ๏ธ","rotating_light":"๐Ÿšจ","police_light":"๐Ÿšจ","traffic_light":"๐Ÿšฅ","vertical_traffic_light":"๐Ÿšฆ","stop_sign":"๐Ÿ›‘","octagonal_sign":"๐Ÿ›‘","construction":"๐Ÿšง","anchor":"โš“๏ธ","sailboat":"โ›ต๏ธ","canoe":"๐Ÿ›ถ","speedboat":"๐Ÿšค","cruise_ship":"๐Ÿ›ณ๏ธ","ferry":"โ›ด๏ธ","motorboat":"๐Ÿ›ฅ๏ธ","ship":"๐Ÿšข","airplane":"โœˆ๏ธ","small_airplane":"๐Ÿ›ฉ๏ธ","airplane_departure":"๐Ÿ›ซ","airplane_arriving":"๐Ÿ›ฌ","seat":"๐Ÿ’บ","helicopter":"๐Ÿš","suspension_railway":"๐ŸšŸ","mountain_cableway":"๐Ÿš ","aerial_tramway":"๐Ÿšก","satellite":"๐Ÿ›ฐ๏ธ","rocket":"๐Ÿš€","flying_saucer":"๐Ÿ›ธ","bellhop":"๐Ÿ›Ž๏ธ","luggage":"๐Ÿงณ","hourglass":"โŒ›๏ธ","hourglass_flowing":"โณ๏ธ","watch":"โŒš๏ธ","alarm_clock":"โฐ","stopwatch":"โฑ๏ธ","timer":"โฒ๏ธ","clock":"๐Ÿ•ฐ๏ธ","clock12":"๐Ÿ•›๏ธ","clock1230":"๐Ÿ•ง๏ธ","clock1":"๐Ÿ•๏ธ","clock130":"๐Ÿ•œ๏ธ","clock2":"๐Ÿ•‘๏ธ","clock230":"๐Ÿ•๏ธ","clock3":"๐Ÿ•’๏ธ","clock330":"๐Ÿ•ž๏ธ","clock4":"๐Ÿ•“๏ธ","clock430":"๐Ÿ•Ÿ๏ธ","clock5":"๐Ÿ•”๏ธ","clock530":"๐Ÿ• ๏ธ","clock6":"๐Ÿ••๏ธ","clock630":"๐Ÿ•ก๏ธ","clock7":"๐Ÿ•–๏ธ","clock730":"๐Ÿ•ข๏ธ","clock8":"๐Ÿ•—๏ธ","clock830":"๐Ÿ•ฃ๏ธ","clock9":"๐Ÿ•˜๏ธ","clock930":"๐Ÿ•ค๏ธ","clock10":"๐Ÿ•™๏ธ","clock1030":"๐Ÿ•ฅ๏ธ","clock11":"๐Ÿ•š๏ธ","clock1130":"๐Ÿ•ฆ๏ธ","new_moon":"๐ŸŒ‘","waxing_crescent_moon":"๐ŸŒ’","first_quarter_moon":"๐ŸŒ“","waxing_gibbous_moon":"๐ŸŒ”","full_moon":"๐ŸŒ•๏ธ","waning_gibbous_moon":"๐ŸŒ–","last_quarter_moon":"๐ŸŒ—","waning_crescent_moon":"๐ŸŒ˜","crescent_moon":"๐ŸŒ™","new_moon_face":"๐ŸŒš","first_quarter_moon_face":"๐ŸŒ›","last_quarter_moon_face":"๐ŸŒœ๏ธ","thermometer":"๐ŸŒก๏ธ","sun":"โ˜€๏ธ","full_moon_face":"๐ŸŒ","sun_face":"๐ŸŒž","star":"โญ๏ธ","star2":"๐ŸŒŸ","glowing_star":"๐ŸŒŸ","star3":"๐ŸŒ ","shooting_star":"๐ŸŒ ","cloud":"โ˜๏ธ","partly_sunny":"โ›…๏ธ","storm":"โ›ˆ๏ธ","overcast":"๐ŸŒค๏ธ","cloudy":"๐ŸŒฅ๏ธ","sunshower":"๐ŸŒฆ๏ธ","rain":"๐ŸŒง๏ธ","snow":"๐ŸŒจ๏ธ","lightning":"๐ŸŒฉ๏ธ","tornado":"๐ŸŒช๏ธ","fog":"๐ŸŒซ๏ธ","wind_face":"๐ŸŒฌ๏ธ","cyclone":"๐ŸŒ€","rainbow":"๐ŸŒˆ","closed_umbrella":"๐ŸŒ‚","umbrella":"โ˜‚๏ธ","umbrella_rain":"โ˜”๏ธ","beach_umbrella":"โ›ฑ๏ธ","zap":"โšก๏ธ","high_voltage":"โšก๏ธ","snowflake":"โ„๏ธ","snowy_snowman":"โ˜ƒ๏ธ","snowman":"โ›„๏ธ","comet":"โ˜„๏ธ","fire":"๐Ÿ”ฅ","droplet":"๐Ÿ’ง","ocean":"๐ŸŒŠ","jack_o_lantern":"๐ŸŽƒ","christmas_tree":"๐ŸŽ„","xmas_tree":"๐ŸŽ„","fireworks":"๐ŸŽ†","sparkler":"๐ŸŽ‡","firecracker":"๐Ÿงจ","sparkles":"โœจ","balloon":"๐ŸŽˆ","tada":"๐ŸŽ‰","party":"๐ŸŽ‰","confetti_ball":"๐ŸŽŠ","tanabata_tree":"๐ŸŽ‹","bamboo":"๐ŸŽ","pine_decor":"๐ŸŽ","dolls":"๐ŸŽŽ","carp_streamer":"๐ŸŽ","wind_chime":"๐ŸŽ","moon_ceremony":"๐ŸŽ‘","rice_scene":"๐ŸŽ‘","red_envelope":"๐Ÿงง","ribbon":"๐ŸŽ€","gift":"๐ŸŽ","reminder_ribbon":"๐ŸŽ—๏ธ","tickets":"๐ŸŽŸ๏ธ","admission":"๐ŸŽŸ๏ธ","ticket":"๐ŸŽซ","military_medal":"๐ŸŽ–๏ธ","trophy":"๐Ÿ†๏ธ","medal":"๐Ÿ…","first_place":"๐Ÿฅ‡","second_place":"๐Ÿฅˆ","third_place":"๐Ÿฅ‰","soccer":"โšฝ๏ธ","baseball":"โšพ๏ธ","softball":"๐ŸฅŽ","basketball":"๐Ÿ€","volleyball":"๐Ÿ","football":"๐Ÿˆ","rugby":"๐Ÿ‰","tennis":"๐ŸŽพ","flying_disc":"๐Ÿฅ","bowling":"๐ŸŽณ","cricket_game":"๐Ÿ","field_hockey":"๐Ÿ‘","hockey":"๐Ÿ’","lacrosse":"๐Ÿฅ","ping_pong":"๐Ÿ“","badminton":"๐Ÿธ","boxing_glove":"๐ŸฅŠ","gi":"๐Ÿฅ‹","martial_arts_uniform":"๐Ÿฅ‹","goal":"๐Ÿฅ…","golf":"โ›ณ๏ธ","ice_skate":"โ›ธ๏ธ","fishing_pole":"๐ŸŽฃ","running_shirt":"๐ŸŽฝ","ski":"๐ŸŽฟ","sled":"๐Ÿ›ท","curling_stone":"๐ŸฅŒ","dart":"๐ŸŽฏ","8ball":"๐ŸŽฑ","crystal_ball":"๐Ÿ”ฎ","nazar_amulet":"๐Ÿงฟ","video_game":"๐ŸŽฎ๏ธ","joystick":"๐Ÿ•น๏ธ","slot_machine":"๐ŸŽฐ","game_die":"๐ŸŽฒ","jigsaw":"๐Ÿงฉ","puzzle_piece":"๐Ÿงฉ","teddy_bear":"๐Ÿงธ","spades":"โ™ ๏ธ","hearts":"โ™ฅ๏ธ","diamonds":"โ™ฆ๏ธ","clubs":"โ™ฃ๏ธ","chess_pawn":"โ™Ÿ๏ธ","black_joker":"๐Ÿƒ","mahjong":"๐Ÿ€„๏ธ","flower_cards":"๐ŸŽด","performing_arts":"๐ŸŽญ๏ธ","frame_photo":"๐Ÿ–ผ๏ธ","art":"๐ŸŽจ","palette":"๐ŸŽจ","spool":"๐Ÿงต","yarn":"๐Ÿงถ","mute":"๐Ÿ”‡","no_sound":"๐Ÿ”‡","speaker":"๐Ÿ”ˆ๏ธ","low_sound":"๐Ÿ”ˆ๏ธ","sound":"๐Ÿ”‰","loud_sound":"๐Ÿ”Š","loudspeaker":"๐Ÿ“ข","megaphone":"๐Ÿ“ฃ","postal_horn":"๐Ÿ“ฏ","bell":"๐Ÿ””","no_bell":"๐Ÿ”•","musical_score":"๐ŸŽผ","musical_note":"๐ŸŽต","musical_notes":"๐ŸŽถ","studio_microphone":"๐ŸŽ™๏ธ","level_slider":"๐ŸŽš๏ธ","control_knobs":"๐ŸŽ›๏ธ","microphone":"๐ŸŽค","headphones":"๐ŸŽง๏ธ","radio":"๐Ÿ“ป๏ธ","saxophone":"๐ŸŽท","guitar":"๐ŸŽธ","musical_keyboard":"๐ŸŽน","trumpet":"๐ŸŽบ","violin":"๐ŸŽป","drum":"๐Ÿฅ","mobile":"๐Ÿ“ฑ","iphone":"๐Ÿ“ฑ","android":"๐Ÿ“ฑ","mobile_calling":"๐Ÿ“ฒ","telephone":"โ˜Ž๏ธ","telephone_receiver":"๐Ÿ“ž","pager":"๐Ÿ“Ÿ๏ธ","fax":"๐Ÿ“ ","battery":"๐Ÿ”‹","electric_plug":"๐Ÿ”Œ","laptop":"๐Ÿ’ป๏ธ","desktop":"๐Ÿ–ฅ๏ธ","computer":"๐Ÿ–ฅ๏ธ","printer":"๐Ÿ–จ๏ธ","keyboard":"โŒจ๏ธ","computer_mouse":"๐Ÿ–ฑ๏ธ","trackball":"๐Ÿ–ฒ๏ธ","minidisc":"๐Ÿ’ฝ","floppy_disk":"๐Ÿ’พ","cd":"๐Ÿ’ฟ๏ธ","disk":"๐Ÿ’ฟ๏ธ","dvd":"๐Ÿ“€","abacus":"๐Ÿงฎ","movie_camera":"๐ŸŽฅ","film_frames":"๐ŸŽž๏ธ","projector":"๐Ÿ“ฝ๏ธ","clapper":"๐ŸŽฌ๏ธ","tv":"๐Ÿ“บ๏ธ","camera":"๐Ÿ“ท๏ธ","camera_flash":"๐Ÿ“ธ","video_camera":"๐Ÿ“น๏ธ","vhs":"๐Ÿ“ผ","mag":"๐Ÿ”๏ธ","mag_right":"๐Ÿ”Ž","candle":"๐Ÿ•ฏ๏ธ","bulb":"๐Ÿ’ก","light_bulb":"๐Ÿ’ก","flashlight":"๐Ÿ”ฆ","red_lantern":"๐Ÿฎ","decorative_notebook":"๐Ÿ“”","closed_book":"๐Ÿ“•","book":"๐Ÿ“–","green_book":"๐Ÿ“—","blue_book":"๐Ÿ“˜","orange_book":"๐Ÿ“™","books":"๐Ÿ“š๏ธ","notebook":"๐Ÿ““","ledger":"๐Ÿ“’","page_curl":"๐Ÿ“ƒ","scroll":"๐Ÿ“œ","page_facing_up":"๐Ÿ“„","newspaper":"๐Ÿ“ฐ","rolled_newspaper":"๐Ÿ—ž๏ธ","bookmark_tabs":"๐Ÿ“‘","bookmark":"๐Ÿ”–","label":"๐Ÿท๏ธ","moneybag":"๐Ÿ’ฐ๏ธ","yen":"๐Ÿ’ด","dollar":"๐Ÿ’ต","euro":"๐Ÿ’ถ","pound":"๐Ÿ’ท","money_wings":"๐Ÿ’ธ","credit_card":"๐Ÿ’ณ๏ธ","receipt":"๐Ÿงพ","ja_chart":"๐Ÿ’น","currency_exchange":"๐Ÿ’ฑ","dollar_sign":"๐Ÿ’ฒ","envelope":"โœ‰๏ธ","email":"๐Ÿ“ง","incoming_envelope":"๐Ÿ“จ","envelope_arrow":"๐Ÿ“ฉ","outbox_tray":"๐Ÿ“ค๏ธ","inbox_tray":"๐Ÿ“ฅ๏ธ","package":"๐Ÿ“ฆ๏ธ","mailbox":"๐Ÿ“ซ๏ธ","mailbox_closed":"๐Ÿ“ช๏ธ","mailbox_mail":"๐Ÿ“ฌ๏ธ","mailbox_no_mail":"๐Ÿ“ญ๏ธ","postbox":"๐Ÿ“ฎ","ballot_box":"๐Ÿ—ณ๏ธ","pencil":"โœ๏ธ","black_nib":"โœ’๏ธ","fountain_pen":"๐Ÿ–‹๏ธ","pen":"๐Ÿ–Š๏ธ","paintbrush":"๐Ÿ–Œ๏ธ","crayon":"๐Ÿ–๏ธ","memo":"๐Ÿ“","briefcase":"๐Ÿ’ผ","file_folder":"๐Ÿ“","open_file_folder":"๐Ÿ“‚","dividers":"๐Ÿ—‚๏ธ","date":"๐Ÿ“…","calendar":"๐Ÿ“…","torn_calendar":"๐Ÿ“†","notepad_spiral":"๐Ÿ—’๏ธ","calendar_spiral":"๐Ÿ—“๏ธ","card_index":"๐Ÿ“‡","chart_up":"๐Ÿ“ˆ","chart_down":"๐Ÿ“‰","bar_chart":"๐Ÿ“Š","clipboard":"๐Ÿ“‹๏ธ","pushpin":"๐Ÿ“Œ","round_pushpin":"๐Ÿ“","paperclip":"๐Ÿ“Ž","paperclips":"๐Ÿ–‡๏ธ","straight_ruler":"๐Ÿ“","triangular_ruler":"๐Ÿ“","scissors":"โœ‚๏ธ","card_box":"๐Ÿ—ƒ๏ธ","file_cabinet":"๐Ÿ—„๏ธ","trashcan":"๐Ÿ—‘๏ธ","wastebasket":"๐Ÿ—‘๏ธ","lock":"๐Ÿ”’๏ธ","unlock":"๐Ÿ”“๏ธ","locked_pen":"๐Ÿ”","locked_key":"๐Ÿ”","key":"๐Ÿ”‘","old_key":"๐Ÿ—๏ธ","hammer":"๐Ÿ”จ","pick":"โ›๏ธ","hammer_pick":"โš’๏ธ","tools":"๐Ÿ› ๏ธ","hammer_wrench":"๐Ÿ› ๏ธ","dagger":"๐Ÿ—ก๏ธ","crossed_swords":"โš”๏ธ","gun":"๐Ÿ”ซ","pistol":"๐Ÿ”ซ","bow":"๐Ÿน","shield":"๐Ÿ›ก๏ธ","wrench":"๐Ÿ”ง","nut_and_bolt":"๐Ÿ”ฉ","gear":"โš™๏ธ","clamp":"๐Ÿ—œ๏ธ","compression":"๐Ÿ—œ๏ธ","scales":"โš–๏ธ","link":"๐Ÿ”—","chains":"โ›“๏ธ","toolbox":"๐Ÿงฐ","magnet":"๐Ÿงฒ","alembic":"โš—๏ธ","test_tube":"๐Ÿงช","petri_dish":"๐Ÿงซ","dna":"๐Ÿงฌ","double_helix":"๐Ÿงฌ","microscope":"๐Ÿ”ฌ","telescope":"๐Ÿ”ญ","satellite_antenna":"๐Ÿ“ก","syringe":"๐Ÿ’‰","pill":"๐Ÿ’Š","door":"๐Ÿšช","bed":"๐Ÿ›๏ธ","couch":"๐Ÿ›‹๏ธ","toilet":"๐Ÿšฝ","shower":"๐Ÿšฟ","bathtub":"๐Ÿ›","lotion":"๐Ÿงด","safety_pin":"๐Ÿงท","broom":"๐Ÿงน","basket":"๐Ÿงบ","toilet_paper":"๐Ÿงป","soap":"๐Ÿงผ","sponge":"๐Ÿงฝ","fire_extinguisher":"๐Ÿงฏ","shopping_cart":"๐Ÿ›’","cigarette":"๐Ÿšฌ","smoking":"๐Ÿšฌ","coffin":"โšฐ๏ธ","urn":"โšฑ๏ธ","moai":"๐Ÿ—ฟ","atm":"๐Ÿง","litter_bin":"๐Ÿšฎ","potable_water":"๐Ÿšฐ","wheelchair":"โ™ฟ๏ธ","mens":"๐Ÿšน๏ธ","womens":"๐Ÿšบ๏ธ","restroom":"๐Ÿšป","bathroom":"๐Ÿšป","baby_symbol":"๐Ÿšผ๏ธ","wc":"๐Ÿšพ","passport_control":"๐Ÿ›‚","customs":"๐Ÿ›ƒ","baggage_claim":"๐Ÿ›„","left_luggage":"๐Ÿ›…","warning":"โš ๏ธ","children_crossing":"๐Ÿšธ","no_entry":"โ›”๏ธ","no_entry_sign":"๐Ÿšซ","no_bicycles":"๐Ÿšณ","no_smoking":"๐Ÿšญ๏ธ","do_not_litter":"๐Ÿšฏ","non_potable_water":"๐Ÿšฑ","no_pedestrians":"๐Ÿšท","no_mobile_phones":"๐Ÿ“ต","underage":"๐Ÿ”ž","radioactive":"โ˜ข๏ธ","biohazard":"โ˜ฃ๏ธ","arrow_up":"โฌ†๏ธ","arrow_upper_right":"โ†—๏ธ","arrow_right":"โžก๏ธ","arrow_lower_right":"โ†˜๏ธ","arrow_down":"โฌ‡๏ธ","arrow_lower_left":"โ†™๏ธ","arrow_left":"โฌ…๏ธ","arrow_upper_left":"โ†–๏ธ","arrow_up_down":"โ†•๏ธ","arrow_left_right":"โ†”๏ธ","arrow_left_hook":"โ†ฉ๏ธ","arrow_right_hook":"โ†ช๏ธ","arrow_heading_up":"โคด๏ธ","arrow_heading_down":"โคต๏ธ","clockwise":"๐Ÿ”ƒ","counter_clockwise":"๐Ÿ”„","back":"๐Ÿ”™","end":"๐Ÿ”š","on":"๐Ÿ”›","soon":"๐Ÿ”œ","top":"๐Ÿ”","place_of_worship":"๐Ÿ›","atom":"โš›๏ธ","om_symbol":"๐Ÿ•‰๏ธ","star_of_david":"โœก๏ธ","wheel_of_dharma":"โ˜ธ๏ธ","yin_yang":"โ˜ฏ๏ธ","cross":"โœ๏ธ","orthodox_cross":"โ˜ฆ๏ธ","star_and_crescent":"โ˜ช๏ธ","peace":"โ˜ฎ๏ธ","menorah":"๐Ÿ•Ž","six_pointed_star":"๐Ÿ”ฏ","aries":"โ™ˆ๏ธ","taurus":"โ™‰๏ธ","gemini":"โ™Š๏ธ","cancer":"โ™‹๏ธ","leo":"โ™Œ๏ธ","virgo":"โ™๏ธ","libra":"โ™Ž๏ธ","scorpius":"โ™๏ธ","sagittarius":"โ™๏ธ","capricorn":"โ™‘๏ธ","aquarius":"โ™’๏ธ","pisces":"โ™“๏ธ","ophiuchus":"โ›Ž","shuffle":"๐Ÿ”€","repeat":"๐Ÿ”","repeat_single":"๐Ÿ”‚","play":"โ–ถ๏ธ","fast_forward":"โฉ๏ธ","next_track":"โญ๏ธ","play_pause":"โฏ๏ธ","reverse":"โ—€๏ธ","rewind":"โช๏ธ","previous_track":"โฎ๏ธ","up_button":"๐Ÿ”ผ","fast_up_button":"โซ","down_button":"๐Ÿ”ฝ","fast_down_button":"โฌ","pause":"โธ๏ธ","stop":"โน๏ธ","record":"โบ๏ธ","eject":"โ๏ธ","cinema":"๐ŸŽฆ","dim":"๐Ÿ”…","low_brightness":"๐Ÿ”…","bright":"๐Ÿ”†","high_brightness":"๐Ÿ”†","signal_strength":"๐Ÿ“ถ","antenna_bars":"๐Ÿ“ถ","vibration_mode":"๐Ÿ“ณ","mobile_phone_off":"๐Ÿ“ด","female":"โ™€๏ธ","female_sign":"โ™€๏ธ","male":"โ™‚๏ธ","male_sign":"โ™‚๏ธ","medical":"โš•๏ธ","infinity":"โ™พ๏ธ","recycle":"โ™ป๏ธ","fleur-de-lis":"โšœ๏ธ","trident":"๐Ÿ”ฑ","name_badge":"๐Ÿ“›","ja_beginner":"๐Ÿ”ฐ","o":"โญ•๏ธ","white_check_mark":"โœ…","checked_ballot":"โ˜‘๏ธ","check_mark":"โœ”๏ธ","multiplication":"โœ–๏ธ","x":"โŒ","cross_mark":"โŒ","cross_mark_button":"โŽ","plus":"โž•","minus":"โž–","division":"โž—","curly_loop":"โžฐ","double_curly_loop":"โžฟ","part_alternation_mark":"ใ€ฝ๏ธ","eight_spoked_asterisk":"โœณ๏ธ","eight_pointed_star":"โœด๏ธ","sparkle":"โ‡๏ธ","bangbang":"โ€ผ๏ธ","double_exclamation":"โ€ผ๏ธ","interrobang":"โ‰๏ธ","exclamation_question":"โ‰๏ธ","question":"โ“๏ธ","white_question":"โ”","white_exclamation":"โ•","exclamation":"โ—๏ธ","wavy_dash":"ใ€ฐ๏ธ","copyright":"ยฉ๏ธ","registered":"ยฎ๏ธ","tm":"โ„ข๏ธ","hash":"#๏ธโƒฃ","asterisk":"*๏ธโƒฃ","zero":"0๏ธโƒฃ","one":"1๏ธโƒฃ","two":"2๏ธโƒฃ","three":"3๏ธโƒฃ","four":"4๏ธโƒฃ","five":"5๏ธโƒฃ","six":"6๏ธโƒฃ","seven":"7๏ธโƒฃ","eight":"8๏ธโƒฃ","nine":"9๏ธโƒฃ","ten":"๐Ÿ”Ÿ","upper_abcd":"๐Ÿ” ","abcd":"๐Ÿ”ก","symbols":"๐Ÿ”ฃ","abc":"๐Ÿ”ค","a_blood":"๐Ÿ…ฐ๏ธ","ab_blood":"๐Ÿ†Ž","b_blood":"๐Ÿ…ฑ๏ธ","cl":"๐Ÿ†‘","cool":"๐Ÿ†’","free":"๐Ÿ†“","info":"โ„น๏ธ","id":"๐Ÿ†”","m":"โ“‚๏ธ","new":"๐Ÿ†•","ng":"๐Ÿ†–","o_blood":"๐Ÿ…พ๏ธ","ok":"๐Ÿ†—","p":"๐Ÿ…ฟ๏ธ","sos":"๐Ÿ†˜","up":"๐Ÿ†™","vs":"๐Ÿ†š","ja_here":"๐Ÿˆ","koko":"๐Ÿˆ","ja_service_charge":"๐Ÿˆ‚๏ธ","ja_monthly_amount":"๐Ÿˆท๏ธ","ja_not_free_of_carge":"๐Ÿˆถ","ja_reserved":"๐Ÿˆฏ๏ธ","ja_bargain":"๐Ÿ‰","ja_discount":"๐Ÿˆน","ja_free_of_charge":"๐Ÿˆš๏ธ","ja_prohibited":"๐Ÿˆฒ","ja_acceptable":"๐Ÿ‰‘","ja_application":"๐Ÿˆธ","ja_passing_grade":"๐Ÿˆด","ja_vacancy":"๐Ÿˆณ","ja_congratulations":"ใŠ—๏ธ","ja_secret":"ใŠ™๏ธ","ja_open_for_business":"๐Ÿˆบ","ja_no_vacancy":"๐Ÿˆต","small_black_square":"โ–ช๏ธ","small_white_square":"โ–ซ๏ธ","medium_white_square":"โ—ป๏ธ","medium_black_square":"โ—ผ๏ธ","medium_small_white_square":"โ—ฝ๏ธ","medium_small_black_square":"โ—พ๏ธ","large_black_square":"โฌ›๏ธ","large_white_square":"โฌœ๏ธ","large_orange_diamond":"๐Ÿ”ถ","large_blue_diamond":"๐Ÿ”ท","small_orange_diamond":"๐Ÿ”ธ","small_blue_diamond":"๐Ÿ”น","up_red_triangle":"๐Ÿ”บ","down_red_triangle":"๐Ÿ”ป","diamond_dot":"๐Ÿ’ ","radio_button":"๐Ÿ”˜","black_square_button":"๐Ÿ”ฒ","white_square_button":"๐Ÿ”ณ","white_circle":"โšช๏ธ","black_circle":"โšซ๏ธ","red_circle":"๐Ÿ”ด","blue_circle":"๐Ÿ”ต","checkered_flag":"๐Ÿ","triangle_flag":"๐Ÿšฉ","crossed_flags":"๐ŸŽŒ","black_flag":"๐Ÿด","white_flag":"๐Ÿณ๏ธ","rainbow_flag":"๐Ÿณ๏ธโ€๐ŸŒˆ","pirate_flag":"๐Ÿดโ€โ˜ ๏ธ","jolly_roger":"๐Ÿดโ€โ˜ ๏ธ","flag_ac":"๐Ÿ‡ฆ๐Ÿ‡จ","flag_ad":"๐Ÿ‡ฆ๐Ÿ‡ฉ","flag_ae":"๐Ÿ‡ฆ๐Ÿ‡ช","flag_af":"๐Ÿ‡ฆ๐Ÿ‡ซ","flag_ag":"๐Ÿ‡ฆ๐Ÿ‡ฌ","flag_ai":"๐Ÿ‡ฆ๐Ÿ‡ฎ","flag_al":"๐Ÿ‡ฆ๐Ÿ‡ฑ","flag_am":"๐Ÿ‡ฆ๐Ÿ‡ฒ","flag_ao":"๐Ÿ‡ฆ๐Ÿ‡ด","flag_aq":"๐Ÿ‡ฆ๐Ÿ‡ถ","flag_ar":"๐Ÿ‡ฆ๐Ÿ‡ท","flag_as":"๐Ÿ‡ฆ๐Ÿ‡ธ","flag_at":"๐Ÿ‡ฆ๐Ÿ‡น","flag_au":"๐Ÿ‡ฆ๐Ÿ‡บ","flag_aw":"๐Ÿ‡ฆ๐Ÿ‡ผ","flag_ax":"๐Ÿ‡ฆ๐Ÿ‡ฝ","flag_az":"๐Ÿ‡ฆ๐Ÿ‡ฟ","flag_ba":"๐Ÿ‡ง๐Ÿ‡ฆ","flag_bb":"๐Ÿ‡ง๐Ÿ‡ง","flag_bd":"๐Ÿ‡ง๐Ÿ‡ฉ","flag_be":"๐Ÿ‡ง๐Ÿ‡ช","flag_bf":"๐Ÿ‡ง๐Ÿ‡ซ","flag_bg":"๐Ÿ‡ง๐Ÿ‡ฌ","flag_bh":"๐Ÿ‡ง๐Ÿ‡ญ","flag_bi":"๐Ÿ‡ง๐Ÿ‡ฎ","flag_bj":"๐Ÿ‡ง๐Ÿ‡ฏ","flag_bl":"๐Ÿ‡ง๐Ÿ‡ฑ","flag_bm":"๐Ÿ‡ง๐Ÿ‡ฒ","flag_bn":"๐Ÿ‡ง๐Ÿ‡ณ","flag_bo":"๐Ÿ‡ง๐Ÿ‡ด","flag_bq":"๐Ÿ‡ง๐Ÿ‡ถ","flag_br":"๐Ÿ‡ง๐Ÿ‡ท","flag_bs":"๐Ÿ‡ง๐Ÿ‡ธ","flag_bt":"๐Ÿ‡ง๐Ÿ‡น","flag_bv":"๐Ÿ‡ง๐Ÿ‡ป","flag_bw":"๐Ÿ‡ง๐Ÿ‡ผ","flag_by":"๐Ÿ‡ง๐Ÿ‡พ","flag_bz":"๐Ÿ‡ง๐Ÿ‡ฟ","flag_ca":"๐Ÿ‡จ๐Ÿ‡ฆ","flag_cc":"๐Ÿ‡จ๐Ÿ‡จ","flag_cd":"๐Ÿ‡จ๐Ÿ‡ฉ","flag_cf":"๐Ÿ‡จ๐Ÿ‡ซ","flag_cg":"๐Ÿ‡จ๐Ÿ‡ฌ","flag_ch":"๐Ÿ‡จ๐Ÿ‡ญ","flag_ci":"๐Ÿ‡จ๐Ÿ‡ฎ","flag_ck":"๐Ÿ‡จ๐Ÿ‡ฐ","flag_cl":"๐Ÿ‡จ๐Ÿ‡ฑ","flag_cm":"๐Ÿ‡จ๐Ÿ‡ฒ","flag_cn":"๐Ÿ‡จ๐Ÿ‡ณ","flag_co":"๐Ÿ‡จ๐Ÿ‡ด","flag_cp":"๐Ÿ‡จ๐Ÿ‡ต","flag_cr":"๐Ÿ‡จ๐Ÿ‡ท","flag_cu":"๐Ÿ‡จ๐Ÿ‡บ","flag_cv":"๐Ÿ‡จ๐Ÿ‡ป","flag_cw":"๐Ÿ‡จ๐Ÿ‡ผ","flag_cx":"๐Ÿ‡จ๐Ÿ‡ฝ","flag_cy":"๐Ÿ‡จ๐Ÿ‡พ","flag_cz":"๐Ÿ‡จ๐Ÿ‡ฟ","flag_de":"๐Ÿ‡ฉ๐Ÿ‡ช","flag_dg":"๐Ÿ‡ฉ๐Ÿ‡ฌ","flag_dj":"๐Ÿ‡ฉ๐Ÿ‡ฏ","flag_dk":"๐Ÿ‡ฉ๐Ÿ‡ฐ","flag_dm":"๐Ÿ‡ฉ๐Ÿ‡ฒ","flag_do":"๐Ÿ‡ฉ๐Ÿ‡ด","flag_dz":"๐Ÿ‡ฉ๐Ÿ‡ฟ","flag_ea":"๐Ÿ‡ช๐Ÿ‡ฆ","flag_ec":"๐Ÿ‡ช๐Ÿ‡จ","flag_ee":"๐Ÿ‡ช๐Ÿ‡ช","flag_eg":"๐Ÿ‡ช๐Ÿ‡ฌ","flag_eh":"๐Ÿ‡ช๐Ÿ‡ญ","flag_er":"๐Ÿ‡ช๐Ÿ‡ท","flag_es":"๐Ÿ‡ช๐Ÿ‡ธ","flag_et":"๐Ÿ‡ช๐Ÿ‡น","flag_eu":"๐Ÿ‡ช๐Ÿ‡บ","flag_fi":"๐Ÿ‡ซ๐Ÿ‡ฎ","flag_fj":"๐Ÿ‡ซ๐Ÿ‡ฏ","flag_fk":"๐Ÿ‡ซ๐Ÿ‡ฐ","flag_fm":"๐Ÿ‡ซ๐Ÿ‡ฒ","flag_fo":"๐Ÿ‡ซ๐Ÿ‡ด","flag_fr":"๐Ÿ‡ซ๐Ÿ‡ท","flag_ga":"๐Ÿ‡ฌ๐Ÿ‡ฆ","flag_gb":"๐Ÿ‡ฌ๐Ÿ‡ง","flag_gd":"๐Ÿ‡ฌ๐Ÿ‡ฉ","flag_ge":"๐Ÿ‡ฌ๐Ÿ‡ช","flag_gf":"๐Ÿ‡ฌ๐Ÿ‡ซ","flag_gg":"๐Ÿ‡ฌ๐Ÿ‡ฌ","flag_gh":"๐Ÿ‡ฌ๐Ÿ‡ญ","flag_gi":"๐Ÿ‡ฌ๐Ÿ‡ฎ","flag_gl":"๐Ÿ‡ฌ๐Ÿ‡ฑ","flag_gm":"๐Ÿ‡ฌ๐Ÿ‡ฒ","flag_gn":"๐Ÿ‡ฌ๐Ÿ‡ณ","flag_gp":"๐Ÿ‡ฌ๐Ÿ‡ต","flag_gq":"๐Ÿ‡ฌ๐Ÿ‡ถ","flag_gr":"๐Ÿ‡ฌ๐Ÿ‡ท","flag_gs":"๐Ÿ‡ฌ๐Ÿ‡ธ","flag_gt":"๐Ÿ‡ฌ๐Ÿ‡น","flag_gu":"๐Ÿ‡ฌ๐Ÿ‡บ","flag_gw":"๐Ÿ‡ฌ๐Ÿ‡ผ","flag_gy":"๐Ÿ‡ฌ๐Ÿ‡พ","flag_hk":"๐Ÿ‡ญ๐Ÿ‡ฐ","flag_hm":"๐Ÿ‡ญ๐Ÿ‡ฒ","flag_hn":"๐Ÿ‡ญ๐Ÿ‡ณ","flag_hr":"๐Ÿ‡ญ๐Ÿ‡ท","flag_ht":"๐Ÿ‡ญ๐Ÿ‡น","flag_hu":"๐Ÿ‡ญ๐Ÿ‡บ","flag_ic":"๐Ÿ‡ฎ๐Ÿ‡จ","flag_id":"๐Ÿ‡ฎ๐Ÿ‡ฉ","flag_ie":"๐Ÿ‡ฎ๐Ÿ‡ช","flag_il":"๐Ÿ‡ฎ๐Ÿ‡ฑ","flag_im":"๐Ÿ‡ฎ๐Ÿ‡ฒ","flag_in":"๐Ÿ‡ฎ๐Ÿ‡ณ","flag_io":"๐Ÿ‡ฎ๐Ÿ‡ด","flag_iq":"๐Ÿ‡ฎ๐Ÿ‡ถ","flag_ir":"๐Ÿ‡ฎ๐Ÿ‡ท","flag_is":"๐Ÿ‡ฎ๐Ÿ‡ธ","flag_it":"๐Ÿ‡ฎ๐Ÿ‡น","flag_je":"๐Ÿ‡ฏ๐Ÿ‡ช","flag_jm":"๐Ÿ‡ฏ๐Ÿ‡ฒ","flag_jo":"๐Ÿ‡ฏ๐Ÿ‡ด","flag_jp":"๐Ÿ‡ฏ๐Ÿ‡ต","flag_ke":"๐Ÿ‡ฐ๐Ÿ‡ช","flag_kg":"๐Ÿ‡ฐ๐Ÿ‡ฌ","flag_kh":"๐Ÿ‡ฐ๐Ÿ‡ญ","flag_ki":"๐Ÿ‡ฐ๐Ÿ‡ฎ","flag_km":"๐Ÿ‡ฐ๐Ÿ‡ฒ","flag_kn":"๐Ÿ‡ฐ๐Ÿ‡ณ","flag_kp":"๐Ÿ‡ฐ๐Ÿ‡ต","flag_kr":"๐Ÿ‡ฐ๐Ÿ‡ท","flag_kw":"๐Ÿ‡ฐ๐Ÿ‡ผ","flag_ky":"๐Ÿ‡ฐ๐Ÿ‡พ","flag_kz":"๐Ÿ‡ฐ๐Ÿ‡ฟ","flag_la":"๐Ÿ‡ฑ๐Ÿ‡ฆ","flag_lb":"๐Ÿ‡ฑ๐Ÿ‡ง","flag_lc":"๐Ÿ‡ฑ๐Ÿ‡จ","flag_li":"๐Ÿ‡ฑ๐Ÿ‡ฎ","flag_lk":"๐Ÿ‡ฑ๐Ÿ‡ฐ","flag_lr":"๐Ÿ‡ฑ๐Ÿ‡ท","flag_ls":"๐Ÿ‡ฑ๐Ÿ‡ธ","flag_lt":"๐Ÿ‡ฑ๐Ÿ‡น","flag_lu":"๐Ÿ‡ฑ๐Ÿ‡บ","flag_lv":"๐Ÿ‡ฑ๐Ÿ‡ป","flag_ly":"๐Ÿ‡ฑ๐Ÿ‡พ","flag_ma":"๐Ÿ‡ฒ๐Ÿ‡ฆ","flag_mc":"๐Ÿ‡ฒ๐Ÿ‡จ","flag_md":"๐Ÿ‡ฒ๐Ÿ‡ฉ","flag_me":"๐Ÿ‡ฒ๐Ÿ‡ช","flag_mf":"๐Ÿ‡ฒ๐Ÿ‡ซ","flag_mg":"๐Ÿ‡ฒ๐Ÿ‡ฌ","flag_mh":"๐Ÿ‡ฒ๐Ÿ‡ญ","flag_mk":"๐Ÿ‡ฒ๐Ÿ‡ฐ","flag_ml":"๐Ÿ‡ฒ๐Ÿ‡ฑ","flag_mm":"๐Ÿ‡ฒ๐Ÿ‡ฒ","flag_mn":"๐Ÿ‡ฒ๐Ÿ‡ณ","flag_mo":"๐Ÿ‡ฒ๐Ÿ‡ด","flag_mp":"๐Ÿ‡ฒ๐Ÿ‡ต","flag_mq":"๐Ÿ‡ฒ๐Ÿ‡ถ","flag_mr":"๐Ÿ‡ฒ๐Ÿ‡ท","flag_ms":"๐Ÿ‡ฒ๐Ÿ‡ธ","flag_mt":"๐Ÿ‡ฒ๐Ÿ‡น","flag_mu":"๐Ÿ‡ฒ๐Ÿ‡บ","flag_mv":"๐Ÿ‡ฒ๐Ÿ‡ป","flag_mw":"๐Ÿ‡ฒ๐Ÿ‡ผ","flag_mx":"๐Ÿ‡ฒ๐Ÿ‡ฝ","flag_my":"๐Ÿ‡ฒ๐Ÿ‡พ","flag_mz":"๐Ÿ‡ฒ๐Ÿ‡ฟ","flag_na":"๐Ÿ‡ณ๐Ÿ‡ฆ","flag_nc":"๐Ÿ‡ณ๐Ÿ‡จ","flag_ne":"๐Ÿ‡ณ๐Ÿ‡ช","flag_nf":"๐Ÿ‡ณ๐Ÿ‡ซ","flag_ng":"๐Ÿ‡ณ๐Ÿ‡ฌ","flag_ni":"๐Ÿ‡ณ๐Ÿ‡ฎ","flag_nl":"๐Ÿ‡ณ๐Ÿ‡ฑ","flag_no":"๐Ÿ‡ณ๐Ÿ‡ด","flag_np":"๐Ÿ‡ณ๐Ÿ‡ต","flag_nr":"๐Ÿ‡ณ๐Ÿ‡ท","flag_nu":"๐Ÿ‡ณ๐Ÿ‡บ","flag_nz":"๐Ÿ‡ณ๐Ÿ‡ฟ","flag_om":"๐Ÿ‡ด๐Ÿ‡ฒ","flag_pa":"๐Ÿ‡ต๐Ÿ‡ฆ","flag_pe":"๐Ÿ‡ต๐Ÿ‡ช","flag_pf":"๐Ÿ‡ต๐Ÿ‡ซ","flag_pg":"๐Ÿ‡ต๐Ÿ‡ฌ","flag_ph":"๐Ÿ‡ต๐Ÿ‡ญ","flag_pk":"๐Ÿ‡ต๐Ÿ‡ฐ","flag_pl":"๐Ÿ‡ต๐Ÿ‡ฑ","flag_pm":"๐Ÿ‡ต๐Ÿ‡ฒ","flag_pn":"๐Ÿ‡ต๐Ÿ‡ณ","flag_pr":"๐Ÿ‡ต๐Ÿ‡ท","flag_ps":"๐Ÿ‡ต๐Ÿ‡ธ","flag_pt":"๐Ÿ‡ต๐Ÿ‡น","flag_pw":"๐Ÿ‡ต๐Ÿ‡ผ","flag_py":"๐Ÿ‡ต๐Ÿ‡พ","flag_qa":"๐Ÿ‡ถ๐Ÿ‡ฆ","flag_re":"๐Ÿ‡ท๐Ÿ‡ช","flag_ro":"๐Ÿ‡ท๐Ÿ‡ด","flag_rs":"๐Ÿ‡ท๐Ÿ‡ธ","flag_ru":"๐Ÿ‡ท๐Ÿ‡บ","flag_rw":"๐Ÿ‡ท๐Ÿ‡ผ","flag_sa":"๐Ÿ‡ธ๐Ÿ‡ฆ","flag_sb":"๐Ÿ‡ธ๐Ÿ‡ง","flag_sc":"๐Ÿ‡ธ๐Ÿ‡จ","flag_sd":"๐Ÿ‡ธ๐Ÿ‡ฉ","flag_se":"๐Ÿ‡ธ๐Ÿ‡ช","flag_sg":"๐Ÿ‡ธ๐Ÿ‡ฌ","flag_sh":"๐Ÿ‡ธ๐Ÿ‡ญ","flag_si":"๐Ÿ‡ธ๐Ÿ‡ฎ","flag_sj":"๐Ÿ‡ธ๐Ÿ‡ฏ","flag_sk":"๐Ÿ‡ธ๐Ÿ‡ฐ","flag_sl":"๐Ÿ‡ธ๐Ÿ‡ฑ","flag_sm":"๐Ÿ‡ธ๐Ÿ‡ฒ","flag_sn":"๐Ÿ‡ธ๐Ÿ‡ณ","flag_so":"๐Ÿ‡ธ๐Ÿ‡ด","flag_sr":"๐Ÿ‡ธ๐Ÿ‡ท","flag_ss":"๐Ÿ‡ธ๐Ÿ‡ธ","flag_st":"๐Ÿ‡ธ๐Ÿ‡น","flag_sv":"๐Ÿ‡ธ๐Ÿ‡ป","flag_sx":"๐Ÿ‡ธ๐Ÿ‡ฝ","flag_sy":"๐Ÿ‡ธ๐Ÿ‡พ","flag_sz":"๐Ÿ‡ธ๐Ÿ‡ฟ","flag_ta":"๐Ÿ‡น๐Ÿ‡ฆ","flag_tc":"๐Ÿ‡น๐Ÿ‡จ","flag_td":"๐Ÿ‡น๐Ÿ‡ฉ","flag_tf":"๐Ÿ‡น๐Ÿ‡ซ","flag_tg":"๐Ÿ‡น๐Ÿ‡ฌ","flag_th":"๐Ÿ‡น๐Ÿ‡ญ","flag_tj":"๐Ÿ‡น๐Ÿ‡ฏ","flag_tk":"๐Ÿ‡น๐Ÿ‡ฐ","flag_tl":"๐Ÿ‡น๐Ÿ‡ฑ","flag_tm":"๐Ÿ‡น๐Ÿ‡ฒ","flag_tn":"๐Ÿ‡น๐Ÿ‡ณ","flag_to":"๐Ÿ‡น๐Ÿ‡ด","flag_tr":"๐Ÿ‡น๐Ÿ‡ท","flag_tt":"๐Ÿ‡น๐Ÿ‡น","flag_tv":"๐Ÿ‡น๐Ÿ‡ป","flag_tw":"๐Ÿ‡น๐Ÿ‡ผ","flag_tz":"๐Ÿ‡น๐Ÿ‡ฟ","flag_ua":"๐Ÿ‡บ๐Ÿ‡ฆ","flag_ug":"๐Ÿ‡บ๐Ÿ‡ฌ","flag_um":"๐Ÿ‡บ๐Ÿ‡ฒ","flag_un":"๐Ÿ‡บ๐Ÿ‡ณ","flag_us":"๐Ÿ‡บ๐Ÿ‡ธ","usa":"๐Ÿ‡บ๐Ÿ‡ธ","flag_uy":"๐Ÿ‡บ๐Ÿ‡พ","flag_uz":"๐Ÿ‡บ๐Ÿ‡ฟ","flag_va":"๐Ÿ‡ป๐Ÿ‡ฆ","flag_vc":"๐Ÿ‡ป๐Ÿ‡จ","flag_ve":"๐Ÿ‡ป๐Ÿ‡ช","flag_vg":"๐Ÿ‡ป๐Ÿ‡ฌ","flag_vi":"๐Ÿ‡ป๐Ÿ‡ฎ","flag_vn":"๐Ÿ‡ป๐Ÿ‡ณ","flag_vu":"๐Ÿ‡ป๐Ÿ‡บ","flag_wf":"๐Ÿ‡ผ๐Ÿ‡ซ","flag_ws":"๐Ÿ‡ผ๐Ÿ‡ธ","flag_xk":"๐Ÿ‡ฝ๐Ÿ‡ฐ","flag_ye":"๐Ÿ‡พ๐Ÿ‡ช","flag_yt":"๐Ÿ‡พ๐Ÿ‡น","flag_za":"๐Ÿ‡ฟ๐Ÿ‡ฆ","flag_zm":"๐Ÿ‡ฟ๐Ÿ‡ฒ","flag_zw":"๐Ÿ‡ฟ๐Ÿ‡ผ","flag_gbeng":"๐Ÿด๓ ง๓ ข๓ ฅ๓ ฎ๓ ง๓ ฟ","england":"๐Ÿด๓ ง๓ ข๓ ฅ๓ ฎ๓ ง๓ ฟ","flag_gbsct":"๐Ÿด๓ ง๓ ข๓ ณ๓ ฃ๓ ด๓ ฟ","scotland":"๐Ÿด๓ ง๓ ข๓ ณ๓ ฃ๓ ด๓ ฟ","flag_gbwls":"๐Ÿด๓ ง๓ ข๓ ท๓ ฌ๓ ณ๓ ฟ","wales":"๐Ÿด๓ ง๓ ข๓ ท๓ ฌ๓ ณ๓ ฟ"} \ No newline at end of file diff --git a/emoji/shortcodeToEmoji.js b/emoji/shortcodeToEmoji.js new file mode 100644 index 0000000..3f03fb4 --- /dev/null +++ b/emoji/shortcodeToEmoji.js @@ -0,0 +1,25 @@ +const fs = require('fs'); +const path = require('path'); + +// Get emoji data from https://github.com/milesj/emojibase +// https://github.com/milesj/emojibase/blob/master/packages/data/en/data.json + +function generate() { + const map = Object.create(null); + + const emojis = require(path.join(process.cwd(), 'data.json')); + for (const emoji of emojis) { + if (emoji.shortcodes == null || emoji.shortcodes.length === 0) continue; + + for (const code of emoji.shortcodes) { + if (map[code] !== undefined) { + console.warn(code); + } + map[code] = emoji.emoji; + } + } + + fs.writeFileSync(path.join(process.cwd(), 'emojis.json'), JSON.stringify(map), 'utf8'); +} + +generate(); diff --git a/src/annotations/annotations.ts b/src/annotations/annotations.ts index 397aae7..f28b13e 100644 --- a/src/annotations/annotations.ts +++ b/src/annotations/annotations.ts @@ -141,7 +141,7 @@ export class Annotations { commit.sha )} "Show Commit Details")`; - message = commit.message; + message = CommitFormatter.fromTemplate('${message}', commit); for (const r of remotes) { if (r.provider === undefined) continue; diff --git a/src/git/formatters/commitFormatter.ts b/src/git/formatters/commitFormatter.ts index 3703990..3fffd41 100644 --- a/src/git/formatters/commitFormatter.ts +++ b/src/git/formatters/commitFormatter.ts @@ -1,10 +1,14 @@ 'use strict'; import { DateStyle } from '../../configuration'; +import { GlyphChars } from '../../constants'; import { Container } from '../../container'; import { Strings } from '../../system'; import { GitCommit } from '../models/commit'; import { Formatter, IFormatOptions } from './formatter'; +const emojiMap: { [key: string]: string } = require('../../../emoji/emojis.json'); +const emojiRegex = /:([-+_a-z0-9]+):/g; + export interface ICommitFormatOptions extends IFormatOptions { dateStyle?: DateStyle; truncateMessageAtNewLine?: boolean; @@ -67,7 +71,7 @@ export class CommitFormatter extends Formatter } get message() { - let message; + let message: string; if (this._item.isStagedUncommitted) { message = 'Staged changes'; } @@ -76,11 +80,17 @@ export class CommitFormatter extends Formatter } else { if (this._options.truncateMessageAtNewLine) { - message = this._item.getShortMessage(); + const index = this._item.message.indexOf('\n'); + message = + index === -1 + ? this._item.message + : `${this._item.message.substring(0, index)}${GlyphChars.Space}${GlyphChars.Ellipsis}`; } else { message = this._item.message; } + + message = message.replace(emojiRegex, (s, code) => emojiMap[code] || s); } return this._padOrTruncate(message, this._options.tokenOptions!.message); diff --git a/src/git/models/commit.ts b/src/git/models/commit.ts index eb3212f..cdba351 100644 --- a/src/git/models/commit.ts +++ b/src/git/models/commit.ts @@ -5,6 +5,7 @@ import { configuration, DateStyle, GravatarDefaultStyle } from '../../configurat import { GlyphChars } from '../../constants'; import { Container } from '../../container'; import { Dates, Strings } from '../../system'; +import { CommitFormatter } from '../formatters/formatters'; import { Git } from '../git'; import { GitUri } from '../gitUri'; @@ -199,11 +200,8 @@ export abstract class GitCommit { return gravatar; } - getShortMessage(truncationSuffix: string = `${GlyphChars.Space}${GlyphChars.Ellipsis}`) { - const index = this.message.indexOf('\n'); - if (index === -1) return this.message; - - return `${this.message.substring(0, index)}${truncationSuffix}`; + getShortMessage() { + return CommitFormatter.fromTemplate('${message}', this, { truncateMessageAtNewLine: true }); } async resolvePreviousFileSha(): Promise {