#
# fontconfig/fc-lang/emoji.orth
#
# Copyright © 2002 Keith Packard
# Copyright © 2017 Red Hat, Inc.
#
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
# the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation, and that the name of the author(s) not be used in
# advertising or publicity pertaining to distribution of the software without
# specific, written prior permission.  The authors make no
# representations about the suitability of this software for any purpose.  It
# is provided "as is" without express or implied warranty.
#
# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
#
# Emoji
#
# http://unicode.org/Public/emoji/5.0/emoji-data.txt
# with anything after Unicode 6.0 commented out.
#
## Emoji Presentation
231A..231B    	#  1.1  [2] (⌚..⌛)    watch..hourglass
23E9..23EC    	#  6.0  [4] (⏩..⏬)    fast-forward button..fast down button
23F0          	#  6.0  [1] (⏰)       alarm clock
23F3          	#  6.0  [1] (⏳)       hourglass with flowing sand
25FD..25FE    	#  3.2  [2] (◽..◾)    white medium-small square..black medium-small square
2614..2615    	#  4.0  [2] (☔..☕)    umbrella with rain drops..hot beverage
2648..2653    	#  1.1 [12] (♈..♓)    Aries..Pisces
267F          	#  4.1  [1] (♿)       wheelchair symbol
2693          	#  4.1  [1] (⚓)       anchor
26A1          	#  4.0  [1] (⚡)       high voltage
26AA..26AB    	#  4.1  [2] (⚪..⚫)    white circle..black circle
26BD..26BE    	#  5.2  [2] (⚽..⚾)    soccer ball..baseball
26C4..26C5    	#  5.2  [2] (⛄..⛅)    snowman without snow..sun behind cloud
26CE          	#  6.0  [1] (⛎)       Ophiuchus
26D4          	#  5.2  [1] (⛔)       no entry
26EA          	#  5.2  [1] (⛪)       church
26F2..26F3    	#  5.2  [2] (⛲..⛳)    fountain..flag in hole
26F5          	#  5.2  [1] (⛵)       sailboat
26FA          	#  5.2  [1] (⛺)       tent
26FD          	#  5.2  [1] (⛽)       fuel pump
2705          	#  6.0  [1] (✅)       white heavy check mark
270A..270B    	#  6.0  [2] (✊..✋)    raised fist..raised hand
2728          	#  6.0  [1] (✨)       sparkles
274C          	#  6.0  [1] (❌)       cross mark
274E          	#  6.0  [1] (❎)       cross mark button
2753..2755    	#  6.0  [3] (❓..❕)    question mark..white exclamation mark
2757          	#  5.2  [1] (❗)       exclamation mark
2795..2797    	#  6.0  [3] (➕..➗)    heavy plus sign..heavy division sign
27B0          	#  6.0  [1] (➰)       curly loop
27BF          	#  6.0  [1] (➿)       double curly loop
2B1B..2B1C    	#  5.1  [2] (⬛..⬜)    black large square..white large square
2B50          	#  5.1  [1] (⭐)       white medium star
2B55          	#  5.2  [1] (⭕)       heavy large circle
1F004         	#  5.1  [1] (🀄)       mahjong red dragon
1F0CF         	#  6.0  [1] (🃏)       joker
1F18E         	#  6.0  [1] (🆎)       AB button (blood type)
1F191..1F19A  	#  6.0 [10] (🆑..🆚)    CL button..VS button
1F1E6..1F1FF  	#  6.0 [26] (🇦..🇿)    regional indicator symbol letter a..regional indicator symbol letter z
1F201         	#  6.0  [1] (🈁)       Japanese “here” button
1F21A         	#  5.2  [1] (🈚)       Japanese “free of charge” button
1F22F         	#  5.2  [1] (🈯)       Japanese “reserved” button
1F232..1F236  	#  6.0  [5] (🈲..🈶)    Japanese “prohibited” button..Japanese “not free of charge” button
1F238..1F23A  	#  6.0  [3] (🈸..🈺)    Japanese “application” button..Japanese “open for business” button
1F250..1F251  	#  6.0  [2] (🉐..🉑)    Japanese “bargain” button..Japanese “acceptable” button
1F300..1F320  	#  6.0 [33] (🌀..🌠)    cyclone..shooting star
# 1F32D..1F32F  	#  8.0  [3] (🌭..🌯)    hot dog..burrito
1F330..1F335  	#  6.0  [6] (🌰..🌵)    chestnut..cactus
1F337..1F37C  	#  6.0 [70] (🌷..🍼)    tulip..baby bottle
# 1F37E..1F37F  	#  8.0  [2] (🍾..🍿)    bottle with popping cork..popcorn
1F380..1F393  	#  6.0 [20] (🎀..🎓)    ribbon..graduation cap
1F3A0..1F3C4  	#  6.0 [37] (🎠..🏄)    carousel horse..person surfing
# 1F3C5         	#  7.0  [1] (🏅)       sports medal
1F3C6..1F3CA  	#  6.0  [5] (🏆..🏊)    trophy..person swimming
# 1F3CF..1F3D3  	#  8.0  [5] (🏏..🏓)    cricket..ping pong
1F3E0..1F3F0  	#  6.0 [17] (🏠..🏰)    house..castle
# 1F3F4         	#  7.0  [1] (🏴)       black flag
# 1F3F8..1F3FF  	#  8.0  [8] (🏸..🏿)    badminton..dark skin tone
# 1F400..1F43E  	#  6.0 [63] (🐀..🐾)    rat..paw prints
1F440         	#  6.0  [1] (👀)       eyes
1F442..1F4F7  	#  6.0[182] (👂..📷)    ear..camera
# 1F4F8         	#  7.0  [1] (📸)       camera with flash
1F4F9..1F4FC  	#  6.0  [4] (📹..📼)    video camera..videocassette
# 1F4FF         	#  8.0  [1] (📿)       prayer beads
1F500..1F53D  	#  6.0 [62] (🔀..🔽)    shuffle tracks button..down button
# 1F54B..1F54E  	#  8.0  [4] (🕋..🕎)    kaaba..menorah
1F550..1F567  	#  6.0 [24] (🕐..🕧)    one o’clock..twelve-thirty
# 1F57A         	#  9.0  [1] (🕺)       man dancing
# 1F595..1F596  	#  7.0  [2] (🖕..🖖)    middle finger..vulcan salute
# 1F5A4         	#  9.0  [1] (🖤)       black heart
1F5FB..1F5FF  	#  6.0  [5] (🗻..🗿)    mount fuji..moai
# 1F600         	#  6.1  [1] (😀)       grinning face
1F601..1F610  	#  6.0 [16] (😁..😐)    grinning face with smiling eyes..neutral face
# 1F611         	#  6.1  [1] (😑)       expressionless face
1F612..1F614  	#  6.0  [3] (😒..😔)    unamused face..pensive face
# 1F615         	#  6.1  [1] (😕)       confused face
1F616         	#  6.0  [1] (😖)       confounded face
# 1F617         	#  6.1  [1] (😗)       kissing face
1F618         	#  6.0  [1] (😘)       face blowing a kiss
# 1F619         	#  6.1  [1] (😙)       kissing face with smiling eyes
1F61A         	#  6.0  [1] (😚)       kissing face with closed eyes
# 1F61B         	#  6.1  [1] (😛)       face with stuck-out tongue
1F61C..1F61E  	#  6.0  [3] (😜..😞)    face with stuck-out tongue & winking eye..disappointed face
# 1F61F         	#  6.1  [1] (😟)       worried face
1F620..1F625  	#  6.0  [6] (😠..😥)    angry face..disappointed but relieved face
# 1F626..1F627  	#  6.1  [2] (😦..😧)    frowning face with open mouth..anguished face
1F628..1F62B  	#  6.0  [4] (😨..😫)    fearful face..tired face
# 1F62C         	#  6.1  [1] (😬)       grimacing face
1F62D         	#  6.0  [1] (😭)       loudly crying face
# 1F62E..1F62F  	#  6.1  [2] (😮..😯)    face with open mouth..hushed face
1F630..1F633  	#  6.0  [4] (😰..😳)    face with open mouth & cold sweat..flushed face
# 1F634         	#  6.1  [1] (😴)       sleeping face
1F635..1F640  	#  6.0 [12] (😵..🙀)    dizzy face..weary cat face
# 1F641..1F642  	#  7.0  [2] (🙁..🙂)    slightly frowning face..slightly smiling face
# 1F643..1F644  	#  8.0  [2] (🙃..🙄)    upside-down face..face with rolling eyes
1F645..1F64F  	#  6.0 [11] (🙅..🙏)    person gesturing NO..folded hands
# 1F680..1F6C5  	#  6.0 [70] (🚀..🛅)    rocket..left luggage
# 1F6CC         	#  7.0  [1] (🛌)       person in bed
# 1F6D0         	#  8.0  [1] (🛐)       place of worship
# 1F6D1..1F6D2  	#  9.0  [2] (🛑..🛒)    stop sign..shopping cart
# 1F6EB..1F6EC  	#  7.0  [2] (🛫..🛬)    airplane departure..airplane arrival
# 1F6F4..1F6F6  	#  9.0  [3] (🛴..🛶)    kick scooter..canoe
# 1F6F7..1F6F8  	# 10.0  [2] (🛷..🛸)    sled..flying saucer
# 1F910..1F918  	#  8.0  [9] (🤐..🤘)    zipper-mouth face..sign of the horns
# 1F919..1F91E  	#  9.0  [6] (🤙..🤞)    call me hand..crossed fingers
# 1F91F         	# 10.0  [1] (🤟)       love-you gesture
# 1F920..1F927  	#  9.0  [8] (🤠..🤧)    cowboy hat face..sneezing face
# 1F928..1F92F  	# 10.0  [8] (🤨..🤯)    face with raised eyebrow..exploding head
# 1F930         	#  9.0  [1] (🤰)       pregnant woman
# 1F931..1F932  	# 10.0  [2] (🤱..🤲)    breast-feeding..palms up together
# 1F933..1F93A  	#  9.0  [8] (🤳..🤺)    selfie..person fencing
# 1F93C..1F93E  	#  9.0  [3] (🤼..🤾)    people wrestling..person playing handball
# 1F940..1F945  	#  9.0  [6] (🥀..🥅)    wilted flower..goal net
# 1F947..1F94B  	#  9.0  [5] (🥇..🥋)    1st place medal..martial arts uniform
# 1F94C         	# 10.0  [1] (🥌)       curling stone
# 1F950..1F95E  	#  9.0 [15] (🥐..🥞)    croissant..pancakes
# 1F95F..1F96B  	# 10.0 [13] (🥟..🥫)    dumpling..canned food
# 1F980..1F984  	#  8.0  [5] (🦀..🦄)    crab..unicorn face
# 1F985..1F991  	#  9.0 [13] (🦅..🦑)    eagle..squid
# 1F992..1F997  	# 10.0  [6] (🦒..🦗)    giraffe..cricket
# 1F9C0         	#  8.0  [1] (🧀)       cheese wedge
# 1F9D0..1F9E6  	# 10.0 [23] (🧐..🧦)    face with monocle..socks
