# © 2017 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use, see http://www.unicode.org/terms_of_use.html

# Note: this file is not published by Unicode, but since its format follows Unicode's format, it's
# basically derived from Unicode data files.

2600          ; Emoji_Presentation   # (☀) BLACK SUN WITH RAYS
2601          ; Emoji_Presentation   # (☁) CLOUD
260E          ; Emoji_Presentation   # (☎) BLACK TELEPHONE
261D          ; Emoji_Presentation   # (☝) WHITE UP POINTING INDEX
263A          ; Emoji_Presentation   # (☺) WHITE SMILING FACE
2660          ; Emoji_Presentation   # (♠) BLACK SPADE SUIT
2663          ; Emoji_Presentation   # (♣) BLACK CLUB SUIT
2665          ; Emoji_Presentation   # (♥) BLACK HEART SUIT
2666          ; Emoji_Presentation   # (♦) BLACK DIAMOND SUIT
270C          ; Emoji_Presentation   # (✌) VICTORY HAND
2744          ; Emoji_Presentation   # (❄) SNOWFLAKE
2764          ; Emoji_Presentation   # (❤) HEAVY BLACK HEART

