# ScriptExtensions-10.0.0.txt
# Date: 2017-05-31, 01:07:00 GMT [RP]
# © 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
#
# Unicode Character Database
#   For documentation, see http://www.unicode.org/reports/tr44/
#
# The Script_Extensions property indicates which characters are commonly used
# with more than one script, but with a limited number of scripts.
# For each code point, there is one or more property values.  Each such value is a Script property value.
# For more information, see:
#   UAX #24, Unicode Script Property: http://www.unicode.org/reports/tr24/
#     Especially the sections:
#       http://www.unicode.org/reports/tr24/#Assignment_Script_Values
#       http://www.unicode.org/reports/tr24/#Assignment_ScriptX_Values
#
# Each Script_Extensions value in this file consists of a set
# of one or more abbreviated Script property values. The ordering of the
# values in that set is not material, but for stability in presentation
# it is given here as alphabetical.
#
# The Script_Extensions values are presented in sorted order in the file.
# They are sorted first by the number of Script property values in their sets,
# and then alphabetically by first differing Script property value.
#
# Following each distinct Script_Extensions value is the list of code
# points associated with that value, listed in code point order.
#
# All code points not explicitly listed for Script_Extensions
# have as their value the corresponding Script property value
#
# @missing: 0000..10FFFF; <script>

# ================================================

# Property:	Script_Extensions

# ================================================

# Script_Extensions=Beng

1CF7          ; Beng # Mc       VEDIC SIGN ATIKRAMA

# Total code points: 1

# ================================================

# Script_Extensions=Deva

1CD1          ; Deva # Mn       VEDIC TONE SHARA
1CD4..1CD6    ; Deva # Mn   [3] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE YAJURVEDIC INDEPENDENT SVARITA
1CD8          ; Deva # Mn       VEDIC TONE CANDRA BELOW
1CDB          ; Deva # Mn       VEDIC TONE TRIPLE SVARITA
1CDE..1CDF    ; Deva # Mn   [2] VEDIC TONE TWO DOTS BELOW..VEDIC TONE THREE DOTS BELOW
1CE1          ; Deva # Mc       VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
1CE2..1CE8    ; Deva # Mn   [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
1CE9..1CEC    ; Deva # Lo   [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
1CED          ; Deva # Mn       VEDIC SIGN TIRYAK
1CEE..1CF1    ; Deva # Lo   [4] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ANUSVARA UBHAYATO MUKHA
1CF6          ; Deva # Lo       VEDIC SIGN UPADHMANIYA

# Total code points: 26

# ================================================

# Script_Extensions=Dupl

1BCA0..1BCA3  ; Dupl # Cf   [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP

# Total code points: 4

# ================================================

# Script_Extensions=Grek

0342          ; Grek # Mn       COMBINING GREEK PERISPOMENI
0345          ; Grek # Mn       COMBINING GREEK YPOGEGRAMMENI
1DC0..1DC1    ; Grek # Mn   [2] COMBINING DOTTED GRAVE ACCENT..COMBINING DOTTED ACUTE ACCENT

# Total code points: 4

# ================================================

# Script_Extensions=Hani

3006          ; Hani # Lo       IDEOGRAPHIC CLOSING MARK
303E..303F    ; Hani # So   [2] IDEOGRAPHIC VARIATION INDICATOR..IDEOGRAPHIC HALF FILL SPACE
3190..3191    ; Hani # So   [2] IDEOGRAPHIC ANNOTATION LINKING MARK..IDEOGRAPHIC ANNOTATION REVERSE MARK
3192..3195    ; Hani # No   [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK
3196..319F    ; Hani # So  [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK
31C0..31E3    ; Hani # So  [36] CJK STROKE T..CJK STROKE Q
3220..3229    ; Hani # No  [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN
322A..3247    ; Hani # So  [30] PARENTHESIZED IDEOGRAPH MOON..CIRCLED IDEOGRAPH KOTO
3280..3289    ; Hani # No  [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN
328A..32B0    ; Hani # So  [39] CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH NIGHT
32C0..32CB    ; Hani # So  [12] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
3358..3370    ; Hani # So  [25] IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO..IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
337B..337F    ; Hani # So   [5] SQUARE ERA NAME HEISEI..SQUARE CORPORATION
33E0..33FE    ; Hani # So  [31] IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE..IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
1D360..1D371  ; Hani # No  [18] COUNTING ROD UNIT DIGIT ONE..COUNTING ROD TENS DIGIT NINE
1F250..1F251  ; Hani # So   [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT

# Total code points: 237

# ================================================

# Script_Extensions=Latn

0363..036F    ; Latn # Mn  [13] COMBINING LATIN SMALL LETTER A..COMBINING LATIN SMALL LETTER X

# Total code points: 13

# ================================================

# Script_Extensions=Arab Copt

102E0         ; Arab Copt # Mn       COPTIC EPACT THOUSANDS MARK
102E1..102FB  ; Arab Copt # No  [27] COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED

# Total code points: 28

# ================================================

# Script_Extensions=Arab Syrc

064B..0655    ; Arab Syrc # Mn  [11] ARABIC FATHATAN..ARABIC HAMZA BELOW
0670          ; Arab Syrc # Mn       ARABIC LETTER SUPERSCRIPT ALEF

# Total code points: 12

# ================================================

# Script_Extensions=Arab Thaa

0660..0669    ; Arab Thaa # Nd  [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
FDF2          ; Arab Thaa # Lo       ARABIC LIGATURE ALLAH ISOLATED FORM
FDFD          ; Arab Thaa # So       ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM

# Total code points: 12

# ================================================

# Script_Extensions=Armn Geor

0589          ; Armn Geor # Po       ARMENIAN FULL STOP

# Total code points: 1

# ================================================

# Script_Extensions=Beng Deva

A8F1          ; Beng Deva # Mn       COMBINING DEVANAGARI SIGN AVAGRAHA

# Total code points: 1

# ================================================

# Script_Extensions=Bopo Hani

302A..302D    ; Bopo Hani # Mn   [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK

# Total code points: 4

# ================================================

# Script_Extensions=Bugi Java

A9CF          ; Bugi Java # Lm       JAVANESE PANGRANGKEP

# Total code points: 1

# ================================================

# Script_Extensions=Cprt Linb

10100..10102  ; Cprt Linb # Po   [3] AEGEAN WORD SEPARATOR LINE..AEGEAN CHECK MARK
10137..1013F  ; Cprt Linb # So   [9] AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT

# Total code points: 12

# ================================================

# Script_Extensions=Cyrl Glag

0484          ; Cyrl Glag # Mn       COMBINING CYRILLIC PALATALIZATION
0487          ; Cyrl Glag # Mn       COMBINING CYRILLIC POKRYTIE
2E43          ; Cyrl Glag # Po       DASH WITH LEFT UPTURN
A66F          ; Cyrl Glag # Mn       COMBINING CYRILLIC VZMET

# Total code points: 4

# ================================================

# Script_Extensions=Cyrl Latn

0485..0486    ; Cyrl Latn # Mn   [2] COMBINING CYRILLIC DASIA PNEUMATA..COMBINING CYRILLIC PSILI PNEUMATA

# Total code points: 2

# ================================================

# Script_Extensions=Cyrl Perm

0483          ; Cyrl Perm # Mn       COMBINING CYRILLIC TITLO

# Total code points: 1

# ================================================

# Script_Extensions=Deva Gran

1CD0          ; Deva Gran # Mn       VEDIC TONE KARSHANA
1CD2          ; Deva Gran # Mn       VEDIC TONE PRENKHA
1CD3          ; Deva Gran # Po       VEDIC SIGN NIHSHVASA
1CF2..1CF3    ; Deva Gran # Mc   [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA
1CF4          ; Deva Gran # Mn       VEDIC TONE CANDRA ABOVE
1CF8..1CF9    ; Deva Gran # Mn   [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE

# Total code points: 8

# ================================================

# Script_Extensions=Deva Knda

1CF5          ; Deva Knda # Lo       VEDIC SIGN JIHVAMULIYA

# Total code points: 1

# ================================================

# Script_Extensions=Deva Shrd

1CD7          ; Deva Shrd # Mn       VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA
1CD9          ; Deva Shrd # Mn       VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA SCHROEDER
1CDC..1CDD    ; Deva Shrd # Mn   [2] VEDIC TONE KATHAKA ANUDATTA..VEDIC TONE DOT BELOW
1CE0          ; Deva Shrd # Mn       VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA

# Total code points: 5

# ================================================

# Script_Extensions=Deva Taml

A8F3          ; Deva Taml # Lo       DEVANAGARI SIGN CANDRABINDU VIRAMA

# Total code points: 1

# ================================================

# Script_Extensions=Geor Latn

10FB          ; Geor Latn # Po       GEORGIAN PARAGRAPH SEPARATOR

# Total code points: 1

# ================================================

# Script_Extensions=Gran Taml

0BAA          ; Gran Taml # Lo       TAMIL LETTER PA
0BB5          ; Gran Taml # Lo       TAMIL LETTER VA
0BE6..0BEF    ; Gran Taml # Nd  [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE
0BF0..0BF2    ; Gran Taml # No   [3] TAMIL NUMBER TEN..TAMIL NUMBER ONE THOUSAND
11301         ; Gran Taml # Mn       GRANTHA SIGN CANDRABINDU
11303         ; Gran Taml # Mc       GRANTHA SIGN VISARGA
1133C         ; Gran Taml # Mn       GRANTHA SIGN NUKTA


# Total code points: 18

# ================================================

# Script_Extensions=Gujr Khoj

0AE6..0AEF    ; Gujr Khoj # Nd  [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE

# Total code points: 10

# ================================================

# Script_Extensions=Guru Mult

0A66..0A6F    ; Guru Mult # Nd  [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE

# Total code points: 10

# ================================================

# Script_Extensions=Hira Kana

3031..3035    ; Hira Kana # Lm   [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF
3099..309A    ; Hira Kana # Mn   [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
309B..309C    ; Hira Kana # Sk   [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
30A0          ; Hira Kana # Pd       KATAKANA-HIRAGANA DOUBLE HYPHEN
30FC          ; Hira Kana # Lm       KATAKANA-HIRAGANA PROLONGED SOUND MARK
FF70          ; Hira Kana # Lm       HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
FF9E..FF9F    ; Hira Kana # Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK

# Total code points: 14

# ================================================

# Script_Extensions=Mong Phag

1802..1803    ; Mong Phag # Po   [2] MONGOLIAN COMMA..MONGOLIAN FULL STOP
1805          ; Mong Phag # Po       MONGOLIAN FOUR DOTS

# Total code points: 3

# ================================================

# Script_Extensions=Arab Syrc Thaa

060C          ; Arab Syrc Thaa # Po       ARABIC COMMA
061B          ; Arab Syrc Thaa # Po       ARABIC SEMICOLON
061C          ; Arab Syrc Thaa # Cf       ARABIC LETTER MARK
061F          ; Arab Syrc Thaa # Po       ARABIC QUESTION MARK

# Total code points: 4

# ================================================

# Script_Extensions=Beng Cakm Sylo

09E6..09EF    ; Beng Cakm Sylo # Nd  [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE

# Total code points: 10

# ================================================

# Script_Extensions=Cakm Mymr Tale

1040..1049    ; Cakm Mymr Tale # Nd  [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE

# Total code points: 10

# ================================================

# Script_Extensions=Cprt Lina Linb

10107..10133  ; Cprt Lina Linb # No  [45] AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND

# Total code points: 45

# ================================================

# Script_Extensions=Deva Gran Latn

20F0          ; Deva Gran Latn # Mn       COMBINING ASTERISK ABOVE

# Total code points: 1

# ================================================

# Script_Extensions=Deva Kthi Mahj

0966..096F    ; Deva Kthi Mahj # Nd  [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE

# Total code points: 10

# ================================================

# Script_Extensions=Hani Hira Kana

303C          ; Hani Hira Kana # Lo       MASU MARK
303D          ; Hani Hira Kana # Po       PART ALTERNATION MARK

# Total code points: 2

# ================================================

# Script_Extensions=Kali Latn Mymr

A92E          ; Kali Latn Mymr # Po       KAYAH LI SIGN CWI

# Total code points: 1

# ================================================

# Script_Extensions=Buhd Hano Tagb Tglg

1735..1736    ; Buhd Hano Tagb Tglg # Po   [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION

# Total code points: 2

# ================================================

# Script_Extensions=Bopo Hang Hani Hira Kana

3003          ; Bopo Hang Hani Hira Kana # Po       DITTO MARK
3013          ; Bopo Hang Hani Hira Kana # So       GETA MARK
301C          ; Bopo Hang Hani Hira Kana # Pd       WAVE DASH
301D          ; Bopo Hang Hani Hira Kana # Ps       REVERSED DOUBLE PRIME QUOTATION MARK
301E..301F    ; Bopo Hang Hani Hira Kana # Pe   [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK
3030          ; Bopo Hang Hani Hira Kana # Pd       WAVY DASH
3037          ; Bopo Hang Hani Hira Kana # So       IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL
FE45..FE46    ; Bopo Hang Hani Hira Kana # Po   [2] SESAME DOT..WHITE SESAME DOT

# Total code points: 10

# ================================================

# Script_Extensions=Deva Knda Mlym Taml Telu

1CDA          ; Deva Knda Mlym Taml Telu # Mn       VEDIC TONE DOUBLE SVARITA

# Total code points: 1

# ================================================

# Script_Extensions=Adlm Arab Mand Mani Phlp Syrc

0640          ; Adlm Arab Mand Mani Phlp Syrc # Lm       ARABIC TATWEEL

# Total code points: 1

# ================================================

# Script_Extensions=Bopo Hang Hani Hira Kana Yiii

3001..3002    ; Bopo Hang Hani Hira Kana Yiii # Po   [2] IDEOGRAPHIC COMMA..IDEOGRAPHIC FULL STOP
3008          ; Bopo Hang Hani Hira Kana Yiii # Ps       LEFT ANGLE BRACKET
3009          ; Bopo Hang Hani Hira Kana Yiii # Pe       RIGHT ANGLE BRACKET
300A          ; Bopo Hang Hani Hira Kana Yiii # Ps       LEFT DOUBLE ANGLE BRACKET
300B          ; Bopo Hang Hani Hira Kana Yiii # Pe       RIGHT DOUBLE ANGLE BRACKET
300C          ; Bopo Hang Hani Hira Kana Yiii # Ps       LEFT CORNER BRACKET
300D          ; Bopo Hang Hani Hira Kana Yiii # Pe       RIGHT CORNER BRACKET
300E          ; Bopo Hang Hani Hira Kana Yiii # Ps       LEFT WHITE CORNER BRACKET
300F          ; Bopo Hang Hani Hira Kana Yiii # Pe       RIGHT WHITE CORNER BRACKET
3010          ; Bopo Hang Hani Hira Kana Yiii # Ps       LEFT BLACK LENTICULAR BRACKET
3011          ; Bopo Hang Hani Hira Kana Yiii # Pe       RIGHT BLACK LENTICULAR BRACKET
3014          ; Bopo Hang Hani Hira Kana Yiii # Ps       LEFT TORTOISE SHELL BRACKET
3015          ; Bopo Hang Hani Hira Kana Yiii # Pe       RIGHT TORTOISE SHELL BRACKET
3016          ; Bopo Hang Hani Hira Kana Yiii # Ps       LEFT WHITE LENTICULAR BRACKET
3017          ; Bopo Hang Hani Hira Kana Yiii # Pe       RIGHT WHITE LENTICULAR BRACKET
3018          ; Bopo Hang Hani Hira Kana Yiii # Ps       LEFT WHITE TORTOISE SHELL BRACKET
3019          ; Bopo Hang Hani Hira Kana Yiii # Pe       RIGHT WHITE TORTOISE SHELL BRACKET
301A          ; Bopo Hang Hani Hira Kana Yiii # Ps       LEFT WHITE SQUARE BRACKET
301B          ; Bopo Hang Hani Hira Kana Yiii # Pe       RIGHT WHITE SQUARE BRACKET
30FB          ; Bopo Hang Hani Hira Kana Yiii # Po       KATAKANA MIDDLE DOT
FF61          ; Bopo Hang Hani Hira Kana Yiii # Po       HALFWIDTH IDEOGRAPHIC FULL STOP
FF62          ; Bopo Hang Hani Hira Kana Yiii # Ps       HALFWIDTH LEFT CORNER BRACKET
FF63          ; Bopo Hang Hani Hira Kana Yiii # Pe       HALFWIDTH RIGHT CORNER BRACKET
FF64..FF65    ; Bopo Hang Hani Hira Kana Yiii # Po   [2] HALFWIDTH IDEOGRAPHIC COMMA..HALFWIDTH KATAKANA MIDDLE DOT

# Total code points: 26

# ================================================

# Script_Extensions=Deva Gujr Guru Kthi Mahj Modi Sind Takr Tirh

A836..A837    ; Deva Gujr Guru Kthi Mahj Modi Sind Takr Tirh # So   [2] NORTH INDIC QUARTER MARK..NORTH INDIC PLACEHOLDER MARK
A838          ; Deva Gujr Guru Kthi Mahj Modi Sind Takr Tirh # Sc       NORTH INDIC RUPEE MARK
A839          ; Deva Gujr Guru Kthi Mahj Modi Sind Takr Tirh # So       NORTH INDIC QUANTITY MARK

# Total code points: 4

# ================================================

# Script_Extensions=Deva Gujr Guru Knda Kthi Mahj Modi Sind Takr Tirh

A830..A835    ; Deva Gujr Guru Knda Kthi Mahj Modi Sind Takr Tirh # No   [6] NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC FRACTION THREE SIXTEENTHS

# Total code points: 6

# ================================================

# Script_Extensions=Beng Deva Gran Gujr Guru Knda Latn Mlym Orya Taml Telu

0952          ; Beng Deva Gran Gujr Guru Knda Latn Mlym Orya Taml Telu # Mn       DEVANAGARI STRESS SIGN ANUDATTA

# Total code points: 1

# ================================================

# Script_Extensions=Beng Deva Gran Gujr Guru Knda Latn Mlym Orya Shrd Taml Telu

0951          ; Beng Deva Gran Gujr Guru Knda Latn Mlym Orya Shrd Taml Telu # Mn       DEVANAGARI STRESS SIGN UDATTA

# Total code points: 1

# ================================================

# Script_Extensions=Beng Deva Gran Gujr Guru Knda Mahj Mlym Orya Sind Sinh Sylo Takr Taml Telu Tirh

0964          ; Beng Deva Gran Gujr Guru Knda Mahj Mlym Orya Sind Sinh Sylo Takr Taml Telu Tirh # Po       DEVANAGARI DANDA

# Total code points: 1

# ================================================

# Script_Extensions=Beng Deva Gran Gujr Guru Knda Limb Mahj Mlym Orya Sind Sinh Sylo Takr Taml Telu Tirh

0965          ; Beng Deva Gran Gujr Guru Knda Limb Mahj Mlym Orya Sind Sinh Sylo Takr Taml Telu Tirh # Po       DEVANAGARI DOUBLE DANDA

# Total code points: 1

# EOF
