#--------------------------------------------------------------------
# Copyright (c) 1999-2001, International Business Machines
# Corporation and others.  All Rights Reserved.
#--------------------------------------------------------------------
# THIS IS A MACHINE-GENERATED FILE
# Tool: dumpICUrules.bat
# Source: \u005cicu4j\u005csrc\u005ccom\u005cibm\u005ctext\u005cresources/Transliterator_InterIndic_Tamil.utf8.txt
# Date: Thu Mar  1 20:03:55 2001
#--------------------------------------------------------------------
# InterIndic_Tamil
#--------------------------------------------------------------------
# Copyright (c) 1999-2001, International Business Machines
# Corporation and others.  All Rights Reserved.
#--------------------------------------------------------------------
# Date: Tue Jan 23 12:42:01 2001
#--------------------------------------------------------------------
# InterIndic-Tamil
#:: NFD (NFC) ;
# \ue001>; # UNMAPPED InterIndic-Tamil: SIGN CANDRABINDU
\ue002>\u0b82; # SIGN ANUSVARA
\ue003>\u0b83; # SIGN VISARGA
\ue005>\u0b85; # LETTER A
\ue006>\u0b86; # LETTER AA
\ue007>\u0b87; # LETTER I
\ue008>\u0b88; # LETTER II
\ue009>\u0b89; # LETTER U
\ue00a>\u0b8a; # LETTER UU
\ue00b>\u0bb0\u0bbf; # REMAP (indicExceptions.txt): \u0b8b>\u0bb0\u0bbf = LETTER VOCALIC R>LETTER RA.VOWEL SIGN I
\ue00c>\u0b87; # REMAP (indicExceptions.txt): \u0b8c>\u0b87 = LETTER VOCALIC L>LETTER I
\ue00f>\u0b8f; # LETTER EE
\ue010>\u0b90; # LETTER AI
\ue013>\u0b93; # LETTER OO
\ue014>\u0b94; # LETTER AU
\ue015>\u0b95; # LETTER KA
\ue016>\u0b95; # REMAP (indicExceptions.txt): \u0b96>\u0b95 = LETTER KHA>LETTER KA
\ue017>\u0b95; # REMAP (indicExceptions.txt): \u0b97>\u0b95 = LETTER GA>LETTER KA
\ue018>\u0b95; # REMAP (indicExceptions.txt): \u0b98>\u0b95 = LETTER GHA>LETTER KA
\ue019>\u0b99; # LETTER NGA
\ue01a>\u0b9a; # LETTER CA
\ue01b>\u0b9a; # REMAP (indicExceptions.txt): \u0b9b>\u0b9a = LETTER CHA>LETTER CA
\ue01c>\u0b9c; # LETTER JA
\ue01d>\u0b9a; # REMAP (indicExceptions.txt): \u0b9d>\u0b9a = LETTER JHA>LETTER CA
\ue01e>\u0b9e; # LETTER NYA
\ue01f>\u0b9f; # LETTER TTA
\ue020>\u0b9f; # REMAP (indicExceptions.txt): \u0ba0>\u0b9f = LETTER TTHA>LETTER TTA
\ue021>\u0b9f; # REMAP (indicExceptions.txt): \u0ba1>\u0b9f = LETTER DDA>LETTER TTA
\ue022>\u0b9f; # REMAP (indicExceptions.txt): \u0ba2>\u0b9f = LETTER DDHA>LETTER TTA
\ue023>\u0ba3; # LETTER NNA
\ue024>\u0ba4; # LETTER TA
\ue025>\u0ba4; # REMAP (indicExceptions.txt): \u0ba5>\u0ba4 = LETTER THA>LETTER TA
\ue026>\u0ba4; # REMAP (indicExceptions.txt): \u0ba6>\u0ba4 = LETTER DA>LETTER TA
\ue027>\u0ba4; # REMAP (indicExceptions.txt): \u0ba7>\u0ba4 = LETTER DHA>LETTER TA
\ue028>\u0ba8; # LETTER NA
\ue029>\u0ba9; # LETTER NNNA
\ue02a>\u0baa; # LETTER PA
\ue02b>\u0baa; # REMAP (indicExceptions.txt): \u0bab>\u0baa = LETTER PHA>LETTER PA
\ue02c>\u0baa; # REMAP (indicExceptions.txt): \u0bac>\u0baa = LETTER BA>LETTER PA
\ue02d>\u0baa; # REMAP (indicExceptions.txt): \u0bad>\u0baa = LETTER BHA>LETTER PA
\ue02e>\u0bae; # LETTER MA
\ue02f>\u0baf; # LETTER YA
\ue030>\u0bb0; # LETTER RA
\ue032>\u0bb2; # LETTER LA
\ue033>\u0bb3; # LETTER LLA
\ue034>\u0bb4; # LETTER LLLA
\ue035>\u0bb5; # LETTER VA
\ue036>\u0bb7; # REMAP (indicExceptions.txt): \u0bb6>\u0bb7 = LETTER SHA>LETTER SSA
\ue037>\u0bb7; # LETTER SSA
\ue038>\u0bb8; # LETTER SA
\ue039>\u0bb9; # LETTER HA
# \ue03c>; # UNMAPPED InterIndic-Tamil: SIGN NUKTA
# \ue03d>; # UNMAPPED InterIndic-Tamil: SIGN AVAGRAHA
\ue03e>\u0bbe; # VOWEL SIGN AA
\ue03f>\u0bbf; # VOWEL SIGN I
\ue040>\u0bc0; # VOWEL SIGN II
\ue041>\u0bc1; # VOWEL SIGN U
\ue042>\u0bc2; # VOWEL SIGN UU
\ue043>\u0bcd\u0bb0\u0bbf; # REMAP (indicExceptions.txt): \u0bc3>\u0bcd\u0bb0\u0bbf = VOWEL SIGN VOCALIC R>SIGN VIRAMA.LETTER RA.VOWEL SIGN I
\ue044>\u0bcd\u0bb0\u0bbf; # REMAP (indicExceptions.txt): \u0bc4>\u0bcd\u0bb0\u0bbf = VOWEL SIGN VOCALIC RR>SIGN VIRAMA.LETTER RA.VOWEL SIGN I
\ue045>\u0bbe; # REMAP (indicExceptions.txt): \u0bc5>\u0bbe = VOWEL SIGN CANDRA E>VOWEL SIGN AA
\ue047>\u0bc7; # VOWEL SIGN EE
\ue048>\u0bc8; # VOWEL SIGN AI
\ue049>\u0bbe; # REMAP (indicExceptions.txt): \u0bc9>\u0bbe = VOWEL SIGN CANDRA O>VOWEL SIGN AA
\ue04b>\u0bcb; # VOWEL SIGN OO
\ue04c>\u0bcc; # VOWEL SIGN AU
\ue04d>\u0bcd; # SIGN VIRAMA
\ue050>\u0b93\u0bae\u0bcd; # REMAP (indicExceptions.txt): \u0bd0>\u0b93\u0bae\u0bcd = OM>LETTER OO.LETTER MA.SIGN VIRAMA
# \ue055>; # UNMAPPED InterIndic-Tamil: LENGTH MARK
\ue056>\u0bc8; # REMAP (indicExceptions.txt): \u0bd6>\u0bc8 = AI LENGTH MARK>VOWEL SIGN AI
\ue057>\u0bd7; # AU LENGTH MARK
\ue059>\u0b95; # REMAP (indicExceptions.txt): \u0bd9>\u0b95 = LETTER KHHA>LETTER KA
\ue05a>\u0b95; # REMAP (indicExceptions.txt): \u0bda>\u0b95 = LETTER GHHA>LETTER KA
\ue05b>\u0b9c; # REMAP (indicExceptions.txt): \u0bdb>\u0b9c = LETTER ZA>LETTER JA
\ue05d>\u0b9f; # REMAP (indicExceptions.txt): \u0bdd>\u0b9f = LETTER RHA>LETTER TTA
\ue05e>\u0baa; # REMAP (indicExceptions.txt): \u0bde>\u0baa = LETTER FA>LETTER PA
\ue05f>\u0baf; # REMAP (indicExceptions.txt): \u0bdf>\u0baf = LETTER YYA>LETTER YA
\ue060>\u0bb0\u0bbf; # REMAP (indicExceptions.txt): \u0be0>\u0bb0\u0bbf = LETTER VOCALIC RR>LETTER RA.VOWEL SIGN I
\ue061>\u0b88; # REMAP (indicExceptions.txt): \u0be1>\u0b88 = LETTER VOCALIC LL>LETTER II
# \ue062>; # UNMAPPED InterIndic-Tamil: VOWEL SIGN VOCALIC L
# \ue063>; # UNMAPPED InterIndic-Tamil: VOWEL SIGN VOCALIC LL
# \ue066>; # UNMAPPED InterIndic-Tamil: DIGIT ZERO
\ue067>\u0be7; # DIGIT ONE
\ue068>\u0be8; # DIGIT TWO
\ue069>\u0be9; # DIGIT THREE
\ue06a>\u0bea; # DIGIT FOUR
\ue06b>\u0beb; # DIGIT FIVE
\ue06c>\u0bec; # DIGIT SIX
\ue06d>\u0bed; # DIGIT SEVEN
\ue06e>\u0bee; # DIGIT EIGHT
\ue06f>\u0bef; # DIGIT NINE
# \ue080>; # UNMAPPED InterIndic-Tamil: ISSHAR
\ue00e>\u0b8e; # LETTER E
\ue012>\u0b92; # LETTER O
\ue031>\u0bb1; # LETTER RRA
\ue046>\u0bc6; # VOWEL SIGN E
\ue04a>\u0bca; # VOWEL SIGN O
#    :: NFC (NFD) ;
# eof
