#
# Hard coded indic characters categories
#
#define SD_INDIC_CONSONANT 0x1
#define SD_INDIC_HALANT 0x2
#define SD_INDIC_INDEP_VOWEL 0x3
#define SD_INDIC_LEFT_VOWEL 0x4
#define SD_INDIC_RIGHT_VOWEL 0x5
#define SD_INDIC_TOP_VOWEL 0x6
#define SD_INDIC_BOTTOM_VOWEL 0x7
#define SD_INDIC_SIGN 0x8
#define SD_INDIC_ZWJ 0x9
#define SD_INDIC_ZWNJ 0xa

#define SD_INDIC_NUKTA 0xc
#define SD_INDIC_MODIFIER 0xd
#define SD_INDIC_LEFT_RIGHT_VOWEL 0xe

#
# Devanagari Added.
#
0x0d 0x0901
0x0d 0x0902
0x0d 0x0903

0x03 0x0904
0x03 0x0905
0x03 0x0906
0x03 0x0907
0x03 0x0908
0x03 0x0909
0x03 0x090A
0x03 0x090B
0x03 0x090C
0x03 0x090D
0x03 0x090E
0x03 0x090F
0x03 0x0910
0x03 0x0911
0x03 0x0912
0x03 0x0913
0x03 0x0914

0x01 0x0915
0x01 0x0916
0x01 0x0917
0x01 0x0918
0x01 0x0919
0x01 0x091A
0x01 0x091B
0x01 0x091C
0x01 0x091D
0x01 0x091E
0x01 0x091F
0x01 0x0920
0x01 0x0921
0x01 0x0922
0x01 0x0923
0x01 0x0924
0x01 0x0925
0x01 0x0926
0x01 0x0927
0x01 0x0928
0x01 0x0929
0x01 0x092A
0x01 0x092B
0x01 0x092C
0x01 0x092D
0x01 0x092E
0x01 0x092F
0x01 0x0930
0x01 0x0931
0x01 0x0932
0x01 0x0933
0x01 0x0934
0x01 0x0935
0x01 0x0936
0x01 0x0937
0x01 0x0938
0x01 0x0939

0x0c 0x093C
0x08 0x093D

0x05 0x093E
0x04 0x093F
0x05 0x0940
0x07 0x0941
0x07 0x0942
0x07 0x0943
0x07 0x0944
0x06 0x0945
0x06 0x0946
0x06 0x0947
0x06 0x0948
0x05 0x0949
0x05 0x094A
0x05 0x094B
0x05 0x094C

0x02 0x094D

0x08 0x0950
0x08 0x0951
0x08 0x0952
0x08 0x0953
0x08 0x0954

0x01 0x0958
0x01 0x0959
0x01 0x095A
0x01 0x095B
0x01 0x095C
0x01 0x095D
0x01 0x095E
0x01 0x095F

0x03 0x0960
0x03 0x0961

0x07 0x0962
0x07 0x0963

0x09 0x200D
0x0a 0x200C

#
# Bengali
#

0x0d 0x0981
0x0d 0x0982
0x0d 0x0983

0x03 0x0985
0x03 0x0986
0x03 0x0987
0x03 0x0988
0x03 0x0989
0x03 0x098A
0x03 0x098B
0x03 0x098C
0x03 0x098F
0x03 0x0990
0x03 0x0993
0x03 0x0994

0x01 0x0995
0x01 0x0996
0x01 0x0997
0x01 0x0998
0x01 0x0999
0x01 0x099A
0x01 0x099B
0x01 0x099C
0x01 0x099D
0x01 0x099E
0x01 0x099F
0x01 0x09A0
0x01 0x09A1
0x01 0x09A2
0x01 0x09A3
0x01 0x09A4
0x01 0x09A5
0x01 0x09A6
0x01 0x09A7
0x01 0x09A8
0x01 0x09AA
0x01 0x09AB
0x01 0x09AC
0x01 0x09AD
0x01 0x09AE
0x01 0x09AF
0x01 0x09B0
0x01 0x09B2
0x01 0x09B6
0x01 0x09B7
0x01 0x09B8
0x01 0x09B9

0x0c 0x09BC
0x08 0x09BD

0x05 0x09BE
0x04 0x09BF
0x05 0x09C0
0x07 0x09C1
0x07 0x09C2
0x07 0x09C3
0x07 0x09C4
0x04 0x09C7
0x04 0x09C8
0x0e 0x09CB
0x0e 0x09CC

0x02 0x09CD

0x01 0x09DC
0x01 0x09DD
0x01 0x09DF

0x03 0x09E0
0x03 0x09E1

0x07 0x09E2
0x07 0x09E3

0x01 0x09F0
0x01 0x09F1

#
# Gurmukhi
#

0x0d 0x0A01
0x0d 0x0A02
0x0d 0x0A03

0x03 0x0A05
0x03 0x0A06
0x03 0x0A07
0x03 0x0A08
0x03 0x0A09
0x03 0x0A0A
0x03 0x0A0F
0x03 0x0A10
0x03 0x0A13
0x03 0x0A14

0x01 0x0A15
0x01 0x0A16
0x01 0x0A17
0x01 0x0A18
0x01 0x0A19
0x01 0x0A1A
0x01 0x0A1B
0x01 0x0A1C
0x01 0x0A1D
0x01 0x0A1E
0x01 0x0A1F
0x01 0x0A20
0x01 0x0A21
0x01 0x0A22
0x01 0x0A23
0x01 0x0A24
0x01 0x0A25
0x01 0x0A26
0x01 0x0A27
0x01 0x0A28
0x01 0x0A2A
0x01 0x0A2B
0x01 0x0A2C
0x01 0x0A2D
0x01 0x0A2E
0x01 0x0A2F
0x01 0x0A30
0x01 0x0A32
0x01 0x0A33
0x01 0x0A35
0x01 0x0A36
0x01 0x0A38
0x01 0x0A39

0x0c 0x0A3C

0x05 0x0A3E
0x04 0x0A3F
0x05 0x0A40
0x07 0x0A41
0x07 0x0A42
0x06 0x0A47
0x06 0x0A48
0x06 0x0A4B
0x06 0x0A4C

0x02 0x0A4D

0x01 0x0A59
0x01 0x0A5A
0x01 0x0A5B
0x01 0x0A5C
0x01 0x0A5E

0x0d 0x0A70
0x0d 0x0A71

0x03 0x0A72
0x03 0x0A73
0x08 0x0A74

#
# Gujarati
#

0x0d 0x0A81
0x0d 0x0A82
0x0d 0x0A83

0x03 0x0A85
0x03 0x0A86
0x03 0x0A87
0x03 0x0A88
0x03 0x0A89
0x03 0x0A8A
0x03 0x0A8B
0x03 0x0A8C
0x03 0x0A8D
0x03 0x0A8F
0x03 0x0A90
0x03 0x0A91
0x03 0x0A93
0x03 0x0A94

0x01 0x0A95
0x01 0x0A96
0x01 0x0A97
0x01 0x0A98
0x01 0x0A99
0x01 0x0A9A
0x01 0x0A9B
0x01 0x0A9C
0x01 0x0A9D
0x01 0x0A9E
0x01 0x0A9F
0x01 0x0AA0
0x01 0x0AA1
0x01 0x0AA2
0x01 0x0AA3
0x01 0x0AA4
0x01 0x0AA5
0x01 0x0AA6
0x01 0x0AA7
0x01 0x0AA8
0x01 0x0AAA
0x01 0x0AAB
0x01 0x0AAC
0x01 0x0AAD
0x01 0x0AAE
0x01 0x0AAF
0x01 0x0AB0
0x01 0x0AB2
0x01 0x0AB3
0x01 0x0AB5
0x01 0x0AB6
0x01 0x0AB7
0x01 0x0AB8
0x01 0x0AB9

0x0c 0x0ABC
0x08 0x0ABD

0x05 0x0ABE
0x04 0x0ABF
0x05 0x0AC0
0x07 0x0AC1
0x07 0x0AC2
0x07 0x0AC3
0x07 0x0AC4
0x06 0x0AC5
0x06 0x0AC7
0x06 0x0AC8
0x05 0x0AC9
0x05 0x0ACB
0x05 0x0ACC

0x02 0x0ACD
0x08 0x0AD0

0x01 0x0AE0
0x01 0x0AE1
0x07 0x0AE2
0x07 0x0AE3

#
# Oriya
#

0x0d 0x0B01
0x0d 0x0B02
0x0d 0x0B03

0x03 0x0B05
0x03 0x0B06
0x03 0x0B07
0x03 0x0B08
0x03 0x0B09
0x03 0x0B0A
0x03 0x0B0B
0x03 0x0B0C
0x03 0x0B0F
0x03 0x0B10
0x03 0x0B13
0x03 0x0B14

0x01 0x0B15
0x01 0x0B16
0x01 0x0B17
0x01 0x0B18
0x01 0x0B19
0x01 0x0B1A
0x01 0x0B1B
0x01 0x0B1C
0x01 0x0B1D
0x01 0x0B1E
0x01 0x0B1F
0x01 0x0B20
0x01 0x0B21
0x01 0x0B22
0x01 0x0B23
0x01 0x0B24
0x01 0x0B25
0x01 0x0B26
0x01 0x0B27
0x01 0x0B28
0x01 0x0B2A
0x01 0x0B2B
0x01 0x0B2C
0x01 0x0B2D
0x01 0x0B2E
0x01 0x0B2F
0x01 0x0B30
0x01 0x0B32
0x01 0x0B33
0x01 0x0B35
0x01 0x0B36
0x01 0x0B37
0x01 0x0B38
0x01 0x0B39

0x0c 0x0B3C
0x08 0x0B3D

0x05 0x0B3E
0x06 0x0B3F
0x05 0x0B40
0x07 0x0B41
0x07 0x0B42
0x07 0x0B43
0x04 0x0B47
0x04 0x0B48
0x0e 0x0B4B
0x0e 0x0B4C

0x02 0x0B4D

0x01 0x0B5C
0x01 0x0B5D
0x01 0x0B5F

0x03 0x0B60
0x03 0x0B61

0x01 0x0B71

#
# Telugu
#

0x0d 0x0C01
0x0d 0x0C02
0x0d 0x0C03

0x03 0x0C05
0x03 0x0C06
0x03 0x0C07
0x03 0x0C08
0x03 0x0C09
0x03 0x0C0A
0x03 0x0C0B
0x03 0x0C0C
0x03 0x0C0E
0x03 0x0C0F
0x03 0x0C10
0x03 0x0C12
0x03 0x0C13
0x03 0x0C14

0x01 0x0C15
0x01 0x0C16
0x01 0x0C17
0x01 0x0C18
0x01 0x0C19
0x01 0x0C1A
0x01 0x0C1B
0x01 0x0C1C
0x01 0x0C1D
0x01 0x0C1E
0x01 0x0C1F
0x01 0x0C20
0x01 0x0C21
0x01 0x0C22
0x01 0x0C23
0x01 0x0C24
0x01 0x0C25
0x01 0x0C26
0x01 0x0C27
0x01 0x0C28
0x01 0x0C2A
0x01 0x0C2B
0x01 0x0C2C
0x01 0x0C2D
0x01 0x0C2E
0x01 0x0C2F
0x01 0x0C30
0x01 0x0C31
0x01 0x0C32
0x01 0x0C33
0x01 0x0C35
0x01 0x0C36
0x01 0x0C37
0x01 0x0C38
0x01 0x0C39

0x06 0x0C3E
0x06 0x0C3F
0x06 0x0C40
0x05 0x0C41
0x05 0x0C42
0x05 0x0C43
0x05 0x0C44
0x06 0x0C46
0x06 0x0C47
0x06 0x0C48 # TOP & BOTTOM
0x06 0x0C4A
0x06 0x0C4B
0x06 0x0C4C

0x02 0x0C4D

0x03 0x0C60
0x03 0x0C61

#
# Kannada
#

0x0d 0x0C82
0x0d 0x0C83

0x03 0x0C85
0x03 0x0C86
0x03 0x0C87
0x03 0x0C88
0x03 0x0C89
0x03 0x0C8A
0x03 0x0C8B
0x03 0x0C8C
0x03 0x0C8E
0x03 0x0C8F
0x03 0x0C90
0x03 0x0C92
0x03 0x0C93
0x03 0x0C94

0x01 0x0C95
0x01 0x0C96
0x01 0x0C97
0x01 0x0C98
0x01 0x0C99
0x01 0x0C9A
0x01 0x0C9B
0x01 0x0C9C
0x01 0x0C9D
0x01 0x0C9E
0x01 0x0C9F
0x01 0x0CA0
0x01 0x0CA1
0x01 0x0CA2
0x01 0x0CA3
0x01 0x0CA4
0x01 0x0CA5
0x01 0x0CA6
0x01 0x0CA7
0x01 0x0CA8
0x01 0x0CAA
0x01 0x0CAB
0x01 0x0CAC
0x01 0x0CAD
0x01 0x0CAE
0x01 0x0CAF
0x01 0x0CB0
0x01 0x0CB1
0x01 0x0CB2
0x01 0x0CB3
0x01 0x0CB5
0x01 0x0CB6
0x01 0x0CB7
0x01 0x0CB8
0x01 0x0CB9

0x0c 0x0CBC
0x08 0x0CBD

0x05 0x0CBE
0x06 0x0CBF
0x05 0x0CC0 # TOP & RIGHT
0x05 0x0CC1
0x05 0x0CC2
0x05 0x0CC3
0x05 0x0CC4
0x06 0x0CC6
0x05 0x0CC7 # TOP & RIGHT
0x05 0x0CC8 # TOP & RIGHT
0x05 0x0CCA # TOP & RIGHT
0x05 0x0CCB # TOP & RIGHT
0x06 0x0CCC

0x02 0x0CCD

0x01 0x0CDE

0x03 0x0CE0
0x03 0x0CE1

#
# Malayalam
#

0x0d 0x0D02
0x0d 0x0D03

0x03 0x0D05
0x03 0x0D06
0x03 0x0D07
0x03 0x0D08
0x03 0x0D09
0x03 0x0D0A
0x03 0x0D0B
0x03 0x0D0C
0x03 0x0D0E
0x03 0x0D0F
0x03 0x0D10
0x03 0x0D12
0x03 0x0D13
0x03 0x0D14

0x01 0x0D15
0x01 0x0D16
0x01 0x0D17
0x01 0x0D18
0x01 0x0D19
0x01 0x0D1A
0x01 0x0D1B
0x01 0x0D1C
0x01 0x0D1D
0x01 0x0D1E
0x01 0x0D1F
0x01 0x0D20
0x01 0x0D21
0x01 0x0D22
0x01 0x0D23
0x01 0x0D24
0x01 0x0D25
0x01 0x0D26
0x01 0x0D27
0x01 0x0D28
0x01 0x0D2A
0x01 0x0D2B
0x01 0x0D2C
0x01 0x0D2D
0x01 0x0D2E
0x01 0x0D2F
0x01 0x0D30
0x01 0x0D31
0x01 0x0D32
0x01 0x0D33
0x01 0x0D34
0x01 0x0D35
0x01 0x0D36
0x01 0x0D37
0x01 0x0D38
0x01 0x0D39

0x05 0x0D3E
0x05 0x0D3F
0x05 0x0D40
0x05 0x0D41
0x05 0x0D42
0x05 0x0D43
0x04 0x0D46
0x04 0x0D47
0x04 0x0D48
0x0e 0x0D4A
0x0e 0x0D4B
0x0e 0x0D4C

0x02 0x0D4D

0x03 0x0D60
0x03 0x0D61


#
# Thai
#
0x01 0x0E01
0x01 0x0E02
0x01 0x0E03
0x01 0x0E04
0x01 0x0E05
0x01 0x0E06
0x01 0x0E07
0x01 0x0E08
0x01 0x0E09
0x01 0x0E0A
0x01 0x0E0B
0x01 0x0E0C
0x01 0x0E0D
0x01 0x0E0E
0x01 0x0E0F
0x01 0x0E10
0x01 0x0E11
0x01 0x0E12
0x01 0x0E13
0x01 0x0E14
0x01 0x0E15
0x01 0x0E16
0x01 0x0E17
0x01 0x0E18
0x01 0x0E19
0x01 0x0E1A
0x01 0x0E1B
0x01 0x0E1C
0x01 0x0E1D
0x01 0x0E1E
0x01 0x0E1F
0x01 0x0E20
0x01 0x0E21
0x01 0x0E22
0x01 0x0E23
0x03 0x0E24
0x01 0x0E25
0x03 0x0E26
0x01 0x0E27
0x01 0x0E28
0x01 0x0E29
0x01 0x0E2A
0x01 0x0E2B
0x01 0x0E2C
0x01 0x0E2D # used as a right vowel as well, but need not behave so
0x01 0x0E2E
0x08 0x0E2F
0x03 0x0E30 # actually a right vowel or a modifier, but need not behave so
0x06 0x0E31
0x03 0x0E32 # actually a right vowel, but need not behave so
0x05 0x0E33 # TOP & RIGHT
0x06 0x0E34
0x06 0x0E35
0x06 0x0E36
0x06 0x0E37
0x07 0x0E38
0x07 0x0E39
0x07 0x0E3A # actually a halant, but need not behave so
0x08 0x0E3F
0x03 0x0E40 # actually a left vowel, but need not behave so
0x03 0x0E41 # actually a left vowel, but need not behave so
0x03 0x0E42 # actually a left vowel, but need not behave so
0x03 0x0E43 # actually a left vowel, but need not behave so
0x03 0x0E44 # actually a left vowel, but need not behave so
0x03 0x0E45 # actually a modifier, but need not behave so
0x08 0x0E46
0x06 0x0E47
0x06 0x0E48
0x06 0x0E49
0x06 0x0E4A
0x06 0x0E4B
0x06 0x0E4C
0x06 0x0E4D
0x06 0x0E4E
0x08 0x0E4F
0x08 0x0E50
0x08 0x0E51
0x08 0x0E52
0x08 0x0E53
0x08 0x0E54
0x08 0x0E55
0x08 0x0E56
0x08 0x0E57
0x08 0x0E58
0x08 0x0E59
0x08 0x0E5A
0x08 0x0E5B

#
# Lao
#
0x01 0x0E81
0x01 0x0E82
0x01 0x0E84
0x01 0x0E87
0x01 0x0E88
0x01 0x0E8A
0x01 0x0E8D
0x01 0x0E94
0x01 0x0E95
0x01 0x0E96
0x01 0x0E97
0x01 0x0E99
0x01 0x0E9A
0x01 0x0E9B
0x01 0x0E9C
0x01 0x0E9D
0x01 0x0E9E
0x01 0x0E9F
0x01 0x0EA1
0x01 0x0EA2
0x01 0x0EA3
0x01 0x0EA5
0x01 0x0EA7
0x01 0x0EAA
0x01 0x0EAB
0x01 0x0EAD
0x01 0x0EAE
0x08 0x0EAF
0x03 0x0EB0 # actually a right vowel or a modifier, but need not behave so
0x06 0x0EB1
0x03 0x0EB2 # actually a right vowel, but need not behave so
0x05 0x0EB3 # TOP & RIGHT
0x06 0x0EB4
0x06 0x0EB5
0x06 0x0EB6
0x06 0x0EB7
0x07 0x0EB8
0x07 0x0EB9
0x06 0x0EBB
0x0c 0x0EBC # actually a subjoined consonant, but behaves like nukta
0x01 0x0EBD # actually a right-joined consonant, but need not behave so
0x03 0x0EC0 # actually a left vowel, but need not behave so
0x03 0x0EC1 # actually a left vowel, but need not behave so
0x03 0x0EC2 # actually a left vowel, but need not behave so
0x03 0x0EC3 # actually a left vowel, but need not behave so
0x03 0x0EC4 # actually a left vowel, but need not behave so
0x08 0x0EC6
0x06 0x0EC8
0x06 0x0EC9
0x06 0x0ECA
0x06 0x0ECB
0x06 0x0ECC
0x06 0x0ECD
0x08 0x0ED0
0x08 0x0ED1
0x08 0x0ED2
0x08 0x0ED3
0x08 0x0ED4
0x08 0x0ED5
0x08 0x0ED6
0x08 0x0ED7
0x08 0x0ED8
0x08 0x0ED9
0x01 0x0EDC # actually a ligature, but behaves like a consonant
0x01 0x0EDD # actually a ligature, but behaves like a consonant

#
# Tibetan
#
0x08 0x0F00
0x08 0x0F01
0x08 0x0F02
0x08 0x0F03
0x08 0x0F04
0x08 0x0F05
0x08 0x0F06
0x08 0x0F07
0x08 0x0F08
0x08 0x0F09
0x08 0x0F0A
0x08 0x0F0B
0x08 0x0F0C
0x08 0x0F0D
0x08 0x0F0E
0x08 0x0F0F
0x08 0x0F10
0x08 0x0F11
0x08 0x0F12
0x08 0x0F13
0x08 0x0F14
0x08 0x0F15
0x08 0x0F16
0x08 0x0F17
0x08 0x0F1A
0x08 0x0F1B
0x08 0x0F1C
0x08 0x0F1D
0x08 0x0F1E
0x08 0x0F1F
0x08 0x0F34
0x07 0x0F35
0x08 0x0F36
0x07 0x0F37
0x08 0x0F38
0x06 0x0F39
0x08 0x0F3A
0x08 0x0F3B
0x08 0x0F3C
0x08 0x0F3D
0x01 0x0F40
0x01 0x0F41
0x01 0x0F42
0x01 0x0F43
0x01 0x0F44
0x01 0x0F45
0x01 0x0F46
0x01 0x0F47
0x01 0x0F49
0x01 0x0F4A
0x01 0x0F4B
0x01 0x0F4C
0x01 0x0F4D
0x01 0x0F4E
0x01 0x0F4F
0x01 0x0F50
0x01 0x0F51
0x01 0x0F52
0x01 0x0F53
0x01 0x0F54
0x01 0x0F55
0x01 0x0F56
0x01 0x0F57
0x01 0x0F58
0x01 0x0F59
0x01 0x0F5A
0x01 0x0F5B
0x01 0x0F5C
0x01 0x0F5D
0x01 0x0F5E
0x01 0x0F5F
0x01 0x0F60
0x01 0x0F61
0x01 0x0F62
0x01 0x0F63
0x01 0x0F64
0x01 0x0F65
0x01 0x0F66
0x01 0x0F67
0x01 0x0F68
0x01 0x0F69
0x01 0x0F6A
0x07 0x0F71
0x06 0x0F72
0x06 0x0F73 # TOP & BOTTOM
0x07 0x0F74
0x07 0x0F75
0x06 0x0F76 # TOP & BOTTOM
0x06 0x0F77 # TOP & BOTTOM
0x06 0x0F78 # TOP & BOTTOM
0x06 0x0F79 # TOP & BOTTOM
0x06 0x0F7A
0x06 0x0F7B
0x06 0x0F7C
0x06 0x0F7D
0x06 0x0F7E
0x05 0x0F7F
0x06 0x0F80
0x06 0x0F81 # TOP & BOTTOM
0x06 0x0F82
0x06 0x0F83
0x07 0x0F84
0x08 0x0F85
0x06 0x0F86
0x06 0x0F87
0x08 0x0F88
0x08 0x0F89
0x08 0x0F8A
0x08 0x0F8B
0x06 0x0F90
0x06 0x0F91
0x06 0x0F92
0x06 0x0F93
0x06 0x0F94
0x06 0x0F95
0x06 0x0F96
0x06 0x0F97
0x06 0x0F99
0x06 0x0F9A
0x06 0x0F9B
0x06 0x0F9C
0x06 0x0F9D
0x06 0x0F9E
0x06 0x0F9F
0x06 0x0FA0
0x06 0x0FA1
0x06 0x0FA2
0x06 0x0FA3
0x06 0x0FA4
0x06 0x0FA5
0x06 0x0FA6
0x06 0x0FA7
0x06 0x0FA8
0x06 0x0FA9
0x06 0x0FAA
0x06 0x0FAB
0x06 0x0FAC
0x06 0x0FAD
0x06 0x0FAE
0x06 0x0FAF
0x06 0x0FB0
0x06 0x0FB1
0x06 0x0FB2
0x06 0x0FB3
0x06 0x0FB4
0x06 0x0FB5
0x06 0x0FB6
0x06 0x0FB7
0x06 0x0FB8
0x06 0x0FB9
0x06 0x0FBA
0x06 0x0FBB
0x06 0x0FBC
0x08 0x0FBE
0x08 0x0FBF
0x08 0x0FC0
0x08 0x0FC1
0x08 0x0FC2
0x08 0x0FC3
0x08 0x0FC4
0x08 0x0FC5
0x08 0x0FC6
0x08 0x0FC7
0x08 0x0FC8
0x08 0x0FC9
0x08 0x0FCA
0x08 0x0FCB
0x08 0x0FCC
0x08 0x0FCF
