# DerivedJoiningType-4.0.1.txt
# Date: 2004-03-02, 02:42:08 GMT [MD]
#
# Unicode Character Database
# Copyright (c) 1991-2004 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see UCD.html

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

#	Type T is derived, as described in ArabicShaping.txt

#  All code points not explicitly listed for Joining_Type
#  have the value Non_Joining (U).

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

# Joining_Type=Join_Causing

0640          ; C # Lm       ARABIC TATWEEL
200D          ; C # Cf       ZERO WIDTH JOINER

# Total code points: 2

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

# Joining_Type=Dual_Joining

0626          ; D # Lo       ARABIC LETTER YEH WITH HAMZA ABOVE
0628          ; D # Lo       ARABIC LETTER BEH
062A..062E    ; D # Lo   [5] ARABIC LETTER TEH..ARABIC LETTER KHAH
0633..063A    ; D # Lo   [8] ARABIC LETTER SEEN..ARABIC LETTER GHAIN
0641..0647    ; D # Lo   [7] ARABIC LETTER FEH..ARABIC LETTER HEH
0649..064A    ; D # Lo   [2] ARABIC LETTER ALEF MAKSURA..ARABIC LETTER YEH
066E..066F    ; D # Lo   [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF
0678..0687    ; D # Lo  [16] ARABIC LETTER HIGH HAMZA YEH..ARABIC LETTER TCHEHEH
069A..06BF    ; D # Lo  [38] ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE..ARABIC LETTER TCHEH WITH DOT ABOVE
06C1          ; D # Lo       ARABIC LETTER HEH GOAL
06CC          ; D # Lo       ARABIC LETTER FARSI YEH
06CE          ; D # Lo       ARABIC LETTER YEH WITH SMALL V
06D0..06D1    ; D # Lo   [2] ARABIC LETTER E..ARABIC LETTER YEH WITH THREE DOTS BELOW
06FA..06FC    ; D # Lo   [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW
06FF          ; D # Lo       ARABIC LETTER HEH WITH INVERTED V
0712..0714    ; D # Lo   [3] SYRIAC LETTER BETH..SYRIAC LETTER GAMAL GARSHUNI
071A..071D    ; D # Lo   [4] SYRIAC LETTER HETH..SYRIAC LETTER YUDH
071F..0727    ; D # Lo   [9] SYRIAC LETTER KAPH..SYRIAC LETTER REVERSED PE
0729          ; D # Lo       SYRIAC LETTER QAPH
072B          ; D # Lo       SYRIAC LETTER SHIN
072D..072E    ; D # Lo   [2] SYRIAC LETTER PERSIAN BHETH..SYRIAC LETTER PERSIAN GHAMAL
074E..074F    ; D # Lo   [2] SYRIAC LETTER SOGDIAN KHAPH..SYRIAC LETTER SOGDIAN FE

# Total code points: 111

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

# Joining_Type=Right_Joining

0622..0625    ; R # Lo   [4] ARABIC LETTER ALEF WITH MADDA ABOVE..ARABIC LETTER ALEF WITH HAMZA BELOW
0627          ; R # Lo       ARABIC LETTER ALEF
0629          ; R # Lo       ARABIC LETTER TEH MARBUTA
062F..0632    ; R # Lo   [4] ARABIC LETTER DAL..ARABIC LETTER ZAIN
0648          ; R # Lo       ARABIC LETTER WAW
0671..0673    ; R # Lo   [3] ARABIC LETTER ALEF WASLA..ARABIC LETTER ALEF WITH WAVY HAMZA BELOW
0675..0677    ; R # Lo   [3] ARABIC LETTER HIGH HAMZA ALEF..ARABIC LETTER U WITH HAMZA ABOVE
0688..0699    ; R # Lo  [18] ARABIC LETTER DDAL..ARABIC LETTER REH WITH FOUR DOTS ABOVE
06C0          ; R # Lo       ARABIC LETTER HEH WITH YEH ABOVE
06C2..06CB    ; R # Lo  [10] ARABIC LETTER HEH GOAL WITH HAMZA ABOVE..ARABIC LETTER VE
06CD          ; R # Lo       ARABIC LETTER YEH WITH TAIL
06CF          ; R # Lo       ARABIC LETTER WAW WITH DOT ABOVE
06D2..06D3    ; R # Lo   [2] ARABIC LETTER YEH BARREE..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
06D5          ; R # Lo       ARABIC LETTER AE
06EE..06EF    ; R # Lo   [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V
0710          ; R # Lo       SYRIAC LETTER ALAPH
0715..0719    ; R # Lo   [5] SYRIAC LETTER DALATH..SYRIAC LETTER ZAIN
071E          ; R # Lo       SYRIAC LETTER YUDH HE
0728          ; R # Lo       SYRIAC LETTER SADHE
072A          ; R # Lo       SYRIAC LETTER RISH
072C          ; R # Lo       SYRIAC LETTER TAW
072F          ; R # Lo       SYRIAC LETTER PERSIAN DHALATH
074D          ; R # Lo       SYRIAC LETTER SOGDIAN ZHAIN

# Total code points: 65

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

# Joining_Type=Transparent

00AD          ; T # Cf       SOFT HYPHEN
0300..0357    ; T # Mn  [88] COMBINING GRAVE ACCENT..COMBINING RIGHT HALF RING ABOVE
035D..036F    ; T # Mn  [19] COMBINING DOUBLE BREVE..COMBINING LATIN SMALL LETTER X
0483..0486    ; T # Mn   [4] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC PSILI PNEUMATA
0591..05A1    ; T # Mn  [17] HEBREW ACCENT ETNAHTA..HEBREW ACCENT PAZER
05A3..05B9    ; T # Mn  [23] HEBREW ACCENT MUNAH..HEBREW POINT HOLAM
05BB..05BD    ; T # Mn   [3] HEBREW POINT QUBUTS..HEBREW POINT METEG
05BF          ; T # Mn       HEBREW POINT RAFE
05C1..05C2    ; T # Mn   [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
05C4          ; T # Mn       HEBREW MARK UPPER DOT
0610..0615    ; T # Mn   [6] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL HIGH TAH
064B..0658    ; T # Mn  [14] ARABIC FATHATAN..ARABIC MARK NOON GHUNNA
0670          ; T # Mn       ARABIC LETTER SUPERSCRIPT ALEF
06D6..06DC    ; T # Mn   [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN
06DF..06E4    ; T # Mn   [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA
06E7..06E8    ; T # Mn   [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
06EA..06ED    ; T # Mn   [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM
070F          ; T # Cf       SYRIAC ABBREVIATION MARK
0711          ; T # Mn       SYRIAC LETTER SUPERSCRIPT ALAPH
0730..074A    ; T # Mn  [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
07A6..07B0    ; T # Mn  [11] THAANA ABAFILI..THAANA SUKUN
0901..0902    ; T # Mn   [2] DEVANAGARI SIGN CANDRABINDU..DEVANAGARI SIGN ANUSVARA
093C          ; T # Mn       DEVANAGARI SIGN NUKTA
0941..0948    ; T # Mn   [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
094D          ; T # Mn       DEVANAGARI SIGN VIRAMA
0951..0954    ; T # Mn   [4] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI ACUTE ACCENT
0962..0963    ; T # Mn   [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
0981          ; T # Mn       BENGALI SIGN CANDRABINDU
09BC          ; T # Mn       BENGALI SIGN NUKTA
09C1..09C4    ; T # Mn   [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR
09CD          ; T # Mn       BENGALI SIGN VIRAMA
09E2..09E3    ; T # Mn   [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL
0A01..0A02    ; T # Mn   [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI
0A3C          ; T # Mn       GURMUKHI SIGN NUKTA
0A41..0A42    ; T # Mn   [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU
0A47..0A48    ; T # Mn   [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
0A4B..0A4D    ; T # Mn   [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA
0A70..0A71    ; T # Mn   [2] GURMUKHI TIPPI..GURMUKHI ADDAK
0A81..0A82    ; T # Mn   [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA
0ABC          ; T # Mn       GUJARATI SIGN NUKTA
0AC1..0AC5    ; T # Mn   [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E
0AC7..0AC8    ; T # Mn   [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI
0ACD          ; T # Mn       GUJARATI SIGN VIRAMA
0AE2..0AE3    ; T # Mn   [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL
0B01          ; T # Mn       ORIYA SIGN CANDRABINDU
0B3C          ; T # Mn       ORIYA SIGN NUKTA
0B3F          ; T # Mn       ORIYA VOWEL SIGN I
0B41..0B43    ; T # Mn   [3] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC R
0B4D          ; T # Mn       ORIYA SIGN VIRAMA
0B56          ; T # Mn       ORIYA AI LENGTH MARK
0B82          ; T # Mn       TAMIL SIGN ANUSVARA
0BC0          ; T # Mn       TAMIL VOWEL SIGN II
0BCD          ; T # Mn       TAMIL SIGN VIRAMA
0C3E..0C40    ; T # Mn   [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
0C46..0C48    ; T # Mn   [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
0C4A..0C4D    ; T # Mn   [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
0C55..0C56    ; T # Mn   [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
0CBC          ; T # Mn       KANNADA SIGN NUKTA
0CBF          ; T # Mn       KANNADA VOWEL SIGN I
0CC6          ; T # Mn       KANNADA VOWEL SIGN E
0CCC..0CCD    ; T # Mn   [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
0D41..0D43    ; T # Mn   [3] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC R
0D4D          ; T # Mn       MALAYALAM SIGN VIRAMA
0DCA          ; T # Mn       SINHALA SIGN AL-LAKUNA
0DD2..0DD4    ; T # Mn   [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
0DD6          ; T # Mn       SINHALA VOWEL SIGN DIGA PAA-PILLA
0E31          ; T # Mn       THAI CHARACTER MAI HAN-AKAT
0E34..0E3A    ; T # Mn   [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
0E47..0E4E    ; T # Mn   [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
0EB1          ; T # Mn       LAO VOWEL SIGN MAI KAN
0EB4..0EB9    ; T # Mn   [6] LAO VOWEL SIGN I..LAO VOWEL SIGN UU
0EBB..0EBC    ; T # Mn   [2] LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN LO
0EC8..0ECD    ; T # Mn   [6] LAO TONE MAI EK..LAO NIGGAHITA
0F18..0F19    ; T # Mn   [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
0F35          ; T # Mn       TIBETAN MARK NGAS BZUNG NYI ZLA
0F37          ; T # Mn       TIBETAN MARK NGAS BZUNG SGOR RTAGS
0F39          ; T # Mn       TIBETAN MARK TSA -PHRU
0F71..0F7E    ; T # Mn  [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO
0F80..0F84    ; T # Mn   [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA
0F86..0F87    ; T # Mn   [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
0F90..0F97    ; T # Mn   [8] TIBETAN SUBJOINED LETTER KA..TIBETAN SUBJOINED LETTER JA
0F99..0FBC    ; T # Mn  [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
0FC6          ; T # Mn       TIBETAN SYMBOL PADMA GDAN
102D..1030    ; T # Mn   [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU
1032          ; T # Mn       MYANMAR VOWEL SIGN AI
1036..1037    ; T # Mn   [2] MYANMAR SIGN ANUSVARA..MYANMAR SIGN DOT BELOW
1039          ; T # Mn       MYANMAR SIGN VIRAMA
1058..1059    ; T # Mn   [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL
1712..1714    ; T # Mn   [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
1732..1734    ; T # Mn   [3] HANUNOO VOWEL SIGN I..HANUNOO SIGN PAMUDPOD
1752..1753    ; T # Mn   [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
1772..1773    ; T # Mn   [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
17B4..17B5    ; T # Cf   [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
17B7..17BD    ; T # Mn   [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA
17C6          ; T # Mn       KHMER SIGN NIKAHIT
17C9..17D3    ; T # Mn  [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
17DD          ; T # Mn       KHMER SIGN ATTHACAN
180B..180D    ; T # Mn   [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
18A9          ; T # Mn       MONGOLIAN LETTER ALI GALI DAGALGA
1920..1922    ; T # Mn   [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
1927..1928    ; T # Mn   [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
1932          ; T # Mn       LIMBU SMALL LETTER ANUSVARA
1939..193B    ; T # Mn   [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
200B          ; T # Cf       ZERO WIDTH SPACE
200E..200F    ; T # Cf   [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK
202A..202E    ; T # Cf   [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
2060..2063    ; T # Cf   [4] WORD JOINER..INVISIBLE SEPARATOR
206A..206F    ; T # Cf   [6] INHIBIT SYMMETRIC SWAPPING..NOMINAL DIGIT SHAPES
20D0..20DC    ; T # Mn  [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
20E1          ; T # Mn       COMBINING LEFT RIGHT ARROW ABOVE
20E5..20EA    ; T # Mn   [6] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING LEFTWARDS ARROW OVERLAY
302A..302F    ; T # Mn   [6] IDEOGRAPHIC LEVEL TONE MARK..HANGUL DOUBLE DOT TONE MARK
3099..309A    ; T # Mn   [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
FB1E          ; T # Mn       HEBREW POINT JUDEO-SPANISH VARIKA
FE00..FE0F    ; T # Mn  [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
FE20..FE23    ; T # Mn   [4] COMBINING LIGATURE LEFT HALF..COMBINING DOUBLE TILDE RIGHT HALF
FEFF          ; T # Cf       ZERO WIDTH NO-BREAK SPACE
FFF9..FFFB    ; T # Cf   [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
1D167..1D169  ; T # Mn   [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
1D173..1D17A  ; T # Cf   [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
1D17B..1D182  ; T # Mn   [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
1D185..1D18B  ; T # Mn   [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
1D1AA..1D1AD  ; T # Mn   [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
E0001         ; T # Cf       LANGUAGE TAG
E0020..E007F  ; T # Cf  [96] TAG SPACE..CANCEL TAG
E0100..E01EF  ; T # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256

# Total code points: 923
