#--------------------------------------------------------------------
# Copyright (c) 1999-2005, International Business Machines
# Corporation and others. All Rights Reserved.
#--------------------------------------------------------------------

# Bengali-InterIndic

\u09C7\u09BE>\uE04B; # VOWEL SIGN O
\u09C7\u09D7>\uE04C; # VOWEL SIGN AU
\u0981>\uE001; # SIGN CANDRABINDU
\u0982>\uE002; # SIGN ANUSVARA
\u0983>\uE003; # SIGN VISARGA
\u0985>\uE005; # LETTER A
\u0986>\uE006; # LETTER AA
\u0987>\uE007; # LETTER I
\u0988>\uE008; # LETTER II
\u0989>\uE009; # LETTER U
\u098A>\uE00A; # LETTER UU
\u098B>\uE00B; # LETTER VOCALIC R
\u098C>\uE00C; # LETTER VOCALIC L
\u098F>\uE00F; # LETTER E
\u0990>\uE010; # LETTER AI
\u0993>\uE013; # LETTER O
\u0994>\uE014; # LETTER AU
\u0995>\uE015; # LETTER KA
\u0996>\uE016; # LETTER KHA
\u0997>\uE017; # LETTER GA
\u0998>\uE018; # LETTER GHA
\u0999>\uE019; # LETTER NGA
\u099A>\uE01A; # LETTER CA
\u099B>\uE01B; # LETTER CHA
\u099C>\uE01C; # LETTER JA
\u099D>\uE01D; # LETTER JHA
\u099E>\uE01E; # LETTER NYA
\u099F>\uE01F; # LETTER TTA
\u09A0>\uE020; # LETTER TTHA
\u09A1>\uE021; # LETTER DDA
\u09A2>\uE022; # LETTER DDHA
\u09A3>\uE023; # LETTER NNA
\u09A4>\uE024; # LETTER TA
\u09A5>\uE025; # LETTER THA
\u09A6>\uE026; # LETTER DA
\u09A7>\uE027; # LETTER DHA
\u09A8>\uE028; # LETTER NA
\u09AA>\uE02A; # LETTER PA
\u09AB>\uE02B; # LETTER PHA
\u09AC>\uE02C; # LETTER BA
\u09AD>\uE02D; # LETTER BHA
\u09AE>\uE02E; # LETTER MA
\u09AF>\uE02F; # LETTER YA
\u09B0>\uE030; # LETTER RA
\u09B2>\uE032; # LETTER LA
\u09B6>\uE036; # LETTER SHA
\u09B7>\uE037; # LETTER SSA
\u09B8>\uE038; # LETTER SA
\u09B9>\uE039; # LETTER HA
\u09BC>\uE03C; # SIGN NUKTA
\u09BD>\uE03D; # SIGN AVAGRAHA
\u09BE>\uE03E; # VOWEL SIGN AA
\u09BF>\uE03F; # VOWEL SIGN I
\u09C0>\uE040; # VOWEL SIGN II
\u09C1>\uE041; # VOWEL SIGN U
\u09C2>\uE042; # VOWEL SIGN UU
\u09C3>\uE043; # VOWEL SIGN VOCALIC R
\u09C4>\uE044; # VOWEL SIGN VOCALIC RR
\u09C7>\uE047; # VOWEL SIGN E
\u09C8>\uE048; # VOWEL SIGN AI
\u09CB>\uE04B;
\u09CC>\uE04C;
#
\u09CD>\uE04D; # SIGN VIRAMA
\u09ce>\ue083; # Khanda-ta
\u09D7>\uE057; # AU LENGTH MARK
#
\u09E0>\uE060; # LETTER VOCALIC RR
\u09E1>\uE061; # LETTER VOCALIC LL
\u09E2>\uE062; # VOWEL SIGN VOCALIC L
\u09E3>\uE063; # VOWEL SIGN VOCALIC LL
\u09E6>\uE066; # DIGIT ZERO
\u09E7>\uE067; # DIGIT ONE
\u09E8>\uE068; # DIGIT TWO
\u09E9>\uE069; # DIGIT THREE
\u09EA>\uE06A; # DIGIT FOUR
\u09EB>\uE06B; # DIGIT FIVE
\u09EC>\uE06C; # DIGIT SIX
\u09ED>\uE06D; # DIGIT SEVEN
\u09EE>\uE06E; # DIGIT EIGHT
\u09EF>\uE06F; # DIGIT NINE
\u09F0>\ue071; # Bengali-InterIndic: LETTER RA WITH MIDDLE DIAGONAL
\u09F1>\ue072; # Bengali-InterIndic: LETTER RA WITH LOWER DIAGONAL
\u09F2>\ue073; # Bengali-InterIndic: RUPEE MARK
\u09F3>\ue074; # Bengali-InterIndic: RUPEE SIGN
\u09F4>\ue075; # Bengali-InterIndic: CURRENCY NUMERATOR ONE
\u09F5>\ue076; # Bengali-InterIndic: CURRENCY NUMERATOR TWO
\u09F6>\ue077; # Bengali-InterIndic: CURRENCY NUMERATOR THREE
\u09F7>\ue078; # Bengali-InterIndic: CURRENCY NUMERATOR FOUR
\u09F8>\ue079; # Bengali-InterIndic: CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
\u09F9>\ue07A; # Bengali-InterIndic: CURRENCY DENOMINATOR SIXTEEN
\u09FA>\ue07B; # ISSHAR
\u0964>\ue064;        # DANDA
\u0965>\ue065;        # DOUBLE DANDA
#    :: NFC (NFD) ;
# eof
