diff options
Diffstat (limited to 'usr/src/lib/iconv_modules/hi_IN')
31 files changed, 7477 insertions, 0 deletions
diff --git a/usr/src/lib/iconv_modules/hi_IN/Makefile b/usr/src/lib/iconv_modules/hi_IN/Makefile new file mode 100644 index 0000000000..da26c3adf1 --- /dev/null +++ b/usr/src/lib/iconv_modules/hi_IN/Makefile @@ -0,0 +1,45 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# +# Copyright 2006 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# + +include $(SRC)/Makefile.master + +SUBDIRS = $(MACH) +$(BUILD64)SUBDIRS += $(MACH64) + +all := TARGET = all +clean := TARGET = clean +clobber := TARGET = clobber +install := TARGET = install +lint := TARGET = lint +echo := TARGET = echo + +.KEEP_STATE: + +all clean clobber install lint echo: $(SUBDIRS) + +$(SUBDIRS): FRC + @cd $@; pwd; $(MAKE) $(TARGET) + +FRC: diff --git a/usr/src/lib/iconv_modules/hi_IN/Makefile.com b/usr/src/lib/iconv_modules/hi_IN/Makefile.com new file mode 100644 index 0000000000..ced4ae69a5 --- /dev/null +++ b/usr/src/lib/iconv_modules/hi_IN/Makefile.com @@ -0,0 +1,39 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# +# Copyright 2006 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# + +SRCS = iscii91%UTF-8.c \ + UTF-8%iscii91.c \ + iscii91%pc-iscii.c \ + pc-iscii%iscii91.c \ + iscii91%ea-iscii.c \ + ea-iscii%iscii91.c + +dummy: all + +include $(SRC)/lib/iconv_modules/Makefile.iconv + +CFLAGS += -I../include + +all: $(PROGS) diff --git a/usr/src/lib/iconv_modules/hi_IN/UTF-8%iscii91.c b/usr/src/lib/iconv_modules/hi_IN/UTF-8%iscii91.c new file mode 100644 index 0000000000..7d6da13393 --- /dev/null +++ b/usr/src/lib/iconv_modules/hi_IN/UTF-8%iscii91.c @@ -0,0 +1,430 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ +/* + * Copyright(c) 2001 Sun Microsystems, Inc. + * All rights reserved. + */ +#include <stdio.h> +#include <errno.h> +#include <stdlib.h> +#include <strings.h> +#include <sys/types.h> +#include "iscii.h" +#include "common_defs.h" + +#define MSB 0x80 /* most significant bit */ +#define ONEBYTE 0xff /* right most byte */ + +#define REPLACE_CHAR '?' + +#define utf8_len(Ch) (Ch < 0x80 ? 1 : (Ch < 0xe0 ? 2 : (Ch < 0xf0 ? 3 : (Ch < 0xf8 ? 4 : (Ch < 0xfc ? 5 : 6))))) + +#define analyze_utf8(Ch, Mask, nBytes) \ + if (Ch < 128) { \ + nBytes = 1; \ + Mask = 0x7f; \ + } else if ((Ch & 0xe0) == 0xc0) { \ + nBytes = 2; \ + Mask = 0x1f; \ + } else if ((Ch & 0xf0) == 0xe0) { \ + nBytes = 3; \ + Mask = 0x0f; \ + } else if ((Ch & 0xf8) == 0xf0) { \ + nBytes = 4; \ + Mask = 0x07; \ + } else if ((Ch & 0xfc) == 0xf8) { \ + nBytes = 5; \ + Mask = 0x03; \ + } else if ((Ch & 0xfe) == 0xfc) { \ + nBytes = 6; \ + Mask = 0x01; \ + } else \ + nBytes = -1; + +#define ucs2_from_utf8(mUCS, Ch, Ct, Mask, Len) \ + (mUCS) = (Ch)[0] & (Mask); \ + for ((Ct) = 1; (Ct) < (Len); ++(Ct)) { \ + if ( ( (Ch)[(Ct)] & 0xc0) != 0x80) { \ + (mUCS) = -1; \ + break; \ + } \ + (mUCS) <<= 6; \ + (mUCS) |= ((Ch)[(Ct)] & 0x3f); \ + } \ + + +typedef struct _icv_state { + char aATR; + uchar_t keepc[4]; + int halant_context; /* preceded by the Halant character or not */ + int _ustate; + int _errno; +} _iconv_st; + +enum _CSTATE { U0, U1, U2, U3, U4, U5, U6 }; + +/* + * Open; called from iconv_open() + */ +void * +_icv_open() +{ + _iconv_st *st; + + if ((st = (_iconv_st*)malloc(sizeof(_iconv_st))) == NULL) { + errno = ENOMEM; + return ((void*)-1); + } + + bzero(st, sizeof(_iconv_st)); + st->aATR = 0x42; /* Devanagiri */ + + return ((void*)st); +} + +typedef enum { t_NONE, t_NUKTA, t_EXT, t_HALANT, t_DOUBLE_DANDA } Type; + +static int +traverse_table(Entry *entry, int num, ucs_t ucs, Type *type) +{ + int i=0; + int retc=0; + + *type = t_NONE; + + for ( ; i < num; ++i ) { + Entry en = entry[i]; + + if (en.count == NUKTA || en.count == EXT || en.count == HALANT || en.count == DOUBLE_DANDA) { + if ( ucs < en.ucs ) break; + if ( ucs == en.ucs ) { /* found */ + if ( en.count == NUKTA ) *type = t_NUKTA; + if ( en.count == EXT ) *type = t_EXT; + if ( en.count == HALANT ) *type = t_HALANT; + if ( en.count == DOUBLE_DANDA ) *type = t_DOUBLE_DANDA; + retc = en.iscii; + break; + } + } else { + if ( ucs < en.ucs ) break; + if ( ucs >= en.ucs && ucs < en.ucs + en.count ) { + retc = en.iscii + ( ucs - en.ucs ); + break; + } + } + } + + return retc; +} + +static int +ucs_to_iscii(ucs_t uiid, char **outbuf, size_t *outbytesleft, int isc_type, int *halant_context) +{ + int nBytesRet = 0 ; + Type type = t_NONE; + int iscii; + Entries en = unicode_table[isc_type]; + + if ( *outbytesleft == 0 ) { + errno = E2BIG; + return 0; + } + + iscii = traverse_table(en.entry, en.items, uiid, &type); + if ( iscii == 0 ) { + **outbuf = REPLACE_CHAR; + nBytesRet ++; + } else { + if ( type != t_NONE ) { + + /* buggy code */ + if ( *outbytesleft < 2 ) { + errno = E2BIG; + return 0; + } + + switch (type) + { + case t_NUKTA: + **outbuf = (uchar_t) iscii; + *(*outbuf+1) = ISC_nukta; + nBytesRet = 2; + + break; + case t_EXT: + **outbuf = ISC_ext; + *(*outbuf+1) = (uchar_t) iscii; + nBytesRet = 2; + + break; + case t_HALANT: + if ( (uiid == UNI_ZWJ || uiid == UNI_ZWNJ) && *halant_context ) + { + if ( uiid == UNI_ZWJ ) **outbuf = ISC_nukta; /* soft halant */ + else **outbuf = ISC_halant; /* explicit halant */ + + nBytesRet = 1; + } /* consume the UNI_ZWNJ or UNI_ZWJ if *halant_context is 0 */ + + break; + case t_DOUBLE_DANDA: + **outbuf = ISC_danda; + *(*outbuf+1) = (uchar_t) iscii; + nBytesRet = 2; + break; + case t_NONE: + /* Not reached */ + break; + } + } else { + **outbuf = (uchar_t) iscii; + nBytesRet = 1; + } + } + + /* if iscii == ISC_halant but type == t_HALANT, set *halant_context to 0 */ + if ( iscii == ISC_halant && type == t_NONE ) *halant_context = 1; + else *halant_context = 0; + + return nBytesRet; +} + +/* + * Close; called from iconv_close() + */ +void +_icv_close(_iconv_st *st) +{ + if (!st) + errno = EBADF; + else + free(st); +} + +/* + * Conversion routine; called from iconv() + */ +size_t +_icv_iconv(_iconv_st *st, char **inbuf, size_t *inbytesleft, + char **outbuf, size_t *outbytesleft) +{ + int n=0; + + if (st == NULL) { + errno = EBADF; + return ((size_t) -1); + } + + + if (inbuf == NULL || *inbuf == NULL) { /* Reset request. */ + st->aATR = 0x42; /* Devangiri */ + st->_ustate = U0; + st->_errno = 0; + return ((size_t) 0); + } + + st->_errno = errno = 0; + + while (*inbytesleft > 0 && *outbytesleft > 0) { + + uchar_t first_byte; + + switch ( st->_ustate ) { + case U0: + if ((**inbuf & MSB) == 0) { /* ASCII */ + **outbuf = **inbuf; + (*outbuf)++; (*outbytesleft)--; + } else if ((**inbuf & 0xe0) == 0xc0) { /* 0xc2..0xdf */ + + /* invalid sequence if the first byte is either 0xc0 or 0xc1 */ + if ( number_of_bytes_in_utf8_char[((uchar_t) **inbuf)] == ICV_TYPE_ILLEGAL_CHAR ) + errno = EILSEQ; + else { + st->_ustate = U1; + st->keepc[0] = **inbuf; + } + } else if ((**inbuf & 0xf0) == 0xe0) { + st->_ustate = U2; + st->keepc[0] = **inbuf; + } else { + /* four bytes of UTF-8 sequences */ + if ( number_of_bytes_in_utf8_char[((uchar_t) **inbuf)] == ICV_TYPE_ILLEGAL_CHAR ) + errno = EILSEQ; + else { + st->_ustate = U4; + st->keepc[0] = **inbuf; + } + } + break; + case U1: + if ((**inbuf & 0xc0) == MSB) { /* U+0080 -- U+07FF */ + **outbuf = REPLACE_CHAR; + (*outbuf)++; + (*outbytesleft)--; + st->_ustate = U0; + } else { + errno = EILSEQ; + } + break; + case U2: + + first_byte = st->keepc[0]; + + /* if the first byte is 0xed, it is illegal sequence if the second + * one is between 0xa0 and 0xbf because surrogate section is ill-formed + */ + if (((uchar_t) **inbuf) < valid_min_2nd_byte[first_byte] || + ((uchar_t) **inbuf) > valid_max_2nd_byte[first_byte] ) + errno = EILSEQ; + else { + st->_ustate = U3; + st->keepc[1] = **inbuf; + } + break; + case U3: + if ((**inbuf & 0xc0) == MSB) { + unsigned char mChar = st->keepc[0]; + ucs_t ucsid = 0; + int i=0, mask=0, len=0; + ISCII isc_type; + + st->keepc[2] = **inbuf; + + analyze_utf8(mChar, mask, len); + + ucs2_from_utf8(ucsid, (char *)&st->keepc[0], i, mask, len); + + /* 0xfffe and 0xffff should not be allowed */ + if ( ucsid == 0xFFFE || ucsid == 0xFFFF ) + { + errno = EILSEQ; + break; + } + + get_script_types(ucsid, isc_type); + if ( isc_type != NUM_ISCII && st->aATR != aTRs[isc_type] ) { + if ( *outbytesleft < 2 ) { + errno = E2BIG; + return (size_t)-1; + } + + **outbuf = (uchar_t)ISC_atr; + (*outbuf)++; + **outbuf = aTRs[isc_type]; + (*outbuf)++; + (*outbytesleft)-=2; + st->aATR = aTRs[isc_type]; + } + + /* UNI_INV, UNI_ZWJ, UNI_ZWNJ would occur within any India Script as + Consonant invisible, explicit halant and soft halant */ + if ( ucsid == UNI_INV || ucsid == UNI_ZWNJ || ucsid == UNI_ZWJ ) + isc_type = isc_TYPE[ st->aATR - 0x42 ]; + + if ( isc_type == NUM_ISCII ) { + if ( *outbytesleft < 1 ) { + errno = E2BIG; + return (size_t)-1; + } + + **outbuf = REPLACE_CHAR; + (*outbuf)++; + (*outbytesleft)--; + } else { + n = ucs_to_iscii(ucsid, outbuf, outbytesleft, isc_type, &st->halant_context); + if ( n > 0 ) { + (*outbuf) += n; + (*outbytesleft) -= n; + } else if ( errno == E2BIG ) { + /* n == 0 if the ZWJ or ZWNJ has been consumed without error */ + st->_errno = errno; + errno = E2BIG; + return (size_t)-1; + } + } + } else { + errno = EILSEQ; + return (size_t)-1; + } + st->_ustate = U0; + break; + case U4: + + first_byte = st->keepc[0]; + + /* if the first byte is 0xf0, it is illegal sequence if + * the second one is between 0x80 and 0x8f + * for Four-Byte UTF: U+10000..U+10FFFF + */ + if (((uchar_t) **inbuf) < valid_min_2nd_byte[first_byte] || + ((uchar_t) **inbuf) > valid_max_2nd_byte[first_byte] ) + errno = EILSEQ; + else { + st->_ustate = U5; + st->keepc[1] = **inbuf; + } + break; + case U5: + if ((**inbuf & 0xc0) == MSB) /* 0x80..0xbf */ + { + st->_ustate = U6; + st->keepc[2] = **inbuf; + } + else + errno = EILSEQ; + break; + case U6: + if ((**inbuf & 0xc0) == MSB) /* 0x80..0xbf */ + { + st->keepc[3] = **inbuf; + st->_ustate = U0; + + /* replace with REPLACE_CHAR */ + **outbuf = REPLACE_CHAR; + (*outbuf)++; + (*outbytesleft)--; + } + else + errno = EILSEQ; + break; + } + + if (errno) + break; + + (*inbuf)++; + (*inbytesleft)--; + } /* end of while loop */ + + if (errno) return (size_t) -1; + + if (*inbytesleft == 0 && st->_ustate != U0) { + errno = EINVAL; + return (size_t)-1; + } + + if (*inbytesleft > 0 && *outbytesleft == 0) { + errno = E2BIG; + return((size_t)-1); + } + + return (size_t)(*inbytesleft); +} diff --git a/usr/src/lib/iconv_modules/hi_IN/amd64/Makefile b/usr/src/lib/iconv_modules/hi_IN/amd64/Makefile new file mode 100644 index 0000000000..adbd2dae78 --- /dev/null +++ b/usr/src/lib/iconv_modules/hi_IN/amd64/Makefile @@ -0,0 +1,25 @@ +# +# This file and its contents are supplied under the terms of the +# Common Development and Distribution License ("CDDL"), version 1.0. +# You may only use this file in accordance with the terms of version +# 1.0 of the CDDL. +# +# A full copy of the text of the CDDL should have accompanied this +# source. A copy of the CDDL is also available via the Internet at +# http://www.illumos.org/license/CDDL. +# + +# +# Copyright 2017 Alexander Pyhalov +# + +include ../Makefile.com +include ../../Makefile.iconv.64 + +CFLAGS += -I.. -I../common/ -I../include/ + +ICONV_LIBS = $(PROGS:%=$(ICONV_DIR_64)/%) + +$(ICONV_LIBS) := FILEMODE= 755 + +install: all $(ICONV_DIR) .WAIT $(ICONV_LIBS) diff --git a/usr/src/lib/iconv_modules/hi_IN/ea-iscii%iscii91.c b/usr/src/lib/iconv_modules/hi_IN/ea-iscii%iscii91.c new file mode 100644 index 0000000000..20457d8914 --- /dev/null +++ b/usr/src/lib/iconv_modules/hi_IN/ea-iscii%iscii91.c @@ -0,0 +1,273 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ +/* + * Copyright(c) 2001 Sun Microsystems, Inc. + * All rights reserved. + */ +#include <stdio.h> +#include <ctype.h> +#include <errno.h> +#include <strings.h> +#include <stdlib.h> +#include "ea-iscii.h" + +#define MSB 0x80 +#define REPLACE_CHAR '?' +#define EA_START 0x40 + +#define get_vowel(a) EAISCII_vowel_type[(a) - EA_START] +#define get_nukta_value(a) EAISCII_nukta_type[(a) - EA_START] +#define is_first_vowel(a) ((a) == FIRST_VOWEL) +#define is_nukta(a) ((a) == NUKTA_VALUE) + +typedef enum { SPACE, ASCII, POSSIBLE_ISCII, ISCII } CONTEXT; +typedef struct _icv_state { + uchar keepc; /* if is_vowel is true, store the char following the FIRST_VOWEL */ + CONTEXT context; + int is_vowel; +} _iconv_st; + +static uchar +traverse_table(Entry *entry , int num, uchar ea_iscii) +{ + int i=0; + uchar iscii=0; + + for ( ; i < num; ++i) { + Entry en = entry[i]; + + if ( ea_iscii < en.ea_iscii ) break; + if ( ea_iscii >= en.ea_iscii && ea_iscii < en.ea_iscii + en.count ) { + iscii = (ea_iscii - en.ea_iscii) + en.iscii; + break; + } + } + + return iscii; +} + +/* + * run in ISCII context. + * ea_iscii being 0: flush the keepc + * flag return 0: don't decide iscii yet, need to advance the next char in outbuf + */ +static uchar +get_iscii(_iconv_st *st, uchar ea_iscii, int *flag) +{ + uchar iscii = 0; + + if ( st->keepc == 0 ) { + if ( ea_iscii == 0 ) { *flag = 0; return 0; } + if ( ea_iscii < EA_START ) return 0; /* invalid iscii */ + + if ( get_nukta_value(ea_iscii) || is_first_vowel(ea_iscii) ) { + /* do nothing except store ea_iscii into st->keepc */ + *flag = 0; + st->keepc = ea_iscii; + } else { + iscii = traverse_table( eaiscii_isc_tbl, + sizeof(eaiscii_isc_tbl)/sizeof(Entry), ea_iscii); + } + } else { + uchar vowel, nukta_value; + + if ( st->is_vowel ) { + /* need decide whether it is 0xAE or 0xB2 case */ + if ( ea_iscii >= EA_START && is_nukta(ea_iscii) ) { + if ( st->keepc == 0x73 ) iscii = 0xAE; + if ( st->keepc == 0x76 ) iscii = 0xB2; + st->keepc = 0; + } else { + iscii = get_vowel(st->keepc); + st->keepc = ea_iscii; + } + st->is_vowel = 0; + goto end; + } + + if ( is_first_vowel(st->keepc) ) { + if ( (ea_iscii >= EA_START) && (vowel = get_vowel(ea_iscii)) ) { + if ( ea_iscii == 0x73 || ea_iscii == 0x76 ) { + st->keepc = ea_iscii; + *flag = 0; + st->is_vowel = 1; + } else { + st->keepc = 0; + iscii = vowel; + } + } else { + iscii = traverse_table( eaiscii_isc_tbl, + sizeof(eaiscii_isc_tbl)/sizeof(Entry), st->keepc); + st->keepc = ea_iscii; + } + } else if ( (st->keepc >= EA_START) && (nukta_value = get_nukta_value(st->keepc))) { + if ( ea_iscii >= EA_START && is_nukta(ea_iscii) ) { + st->keepc = 0; + iscii = nukta_value; + } else { + iscii = traverse_table( eaiscii_isc_tbl, + sizeof(eaiscii_isc_tbl)/sizeof(Entry), st->keepc); + st->keepc = ea_iscii; + } + } else { + iscii = traverse_table( eaiscii_isc_tbl, + sizeof(eaiscii_isc_tbl)/sizeof(Entry), st->keepc); + st->keepc = ea_iscii; + } + } + +end: + return iscii; +} + +void * +_icv_open() +{ + _iconv_st *st; + + if ((st = (_iconv_st*)malloc(sizeof(_iconv_st))) == NULL) { + errno = ENOMEM; + return ((void*)-1); + } + + bzero(st, sizeof(_iconv_st)); + + return ((void*)st); +} + +/* + * Close; called from iconv_close() + */ +void +_icv_close(_iconv_st *st) +{ + if (!st) + errno = EBADF; + else + free(st); +} + +size_t +_icv_iconv(_iconv_st *st, char **inbuf, size_t *inbytesleft, + char **outbuf, size_t *outbytesleft) +{ + if (st == NULL) { + errno = EBADF; + return ((size_t) -1); + } + + if (inbuf == NULL || *inbuf == NULL) { /* Reset request. */ + return ((size_t)0); + } + + /* a state machine for interpreting ISCII code */ + while (*inbytesleft > 0 && *outbytesleft > 0) { + uchar c = (uchar)**inbuf; + + if ( c & MSB ) { errno = EILSEQ; return (size_t)-1; } + + switch (st->context) { + case SPACE: + if ( c == LEADING_BYTE ) st->context = POSSIBLE_ISCII; + else { + if ( !isspace(c) ) st->context = ASCII; + **outbuf = c; + (*outbuf)++; + (*outbytesleft)--; + } + break; + case ASCII: + if ( isspace(c) ) st->context = SPACE; + **outbuf = c; + (*outbuf)++; + (*outbytesleft)--; + break; + case POSSIBLE_ISCII: + /* it is impossible to represent with 'xx' one ASCII word that starts with 'x' */ + if ( !isspace(c) ) { st->context = ISCII; continue; } /* don't advance */ + + **outbuf = LEADING_BYTE; /* the previous 'x' */ + (*outbuf)++; + (*outbytesleft)--; + st->context = ASCII; + + if (*outbytesleft < 1) { + errno = E2BIG; + return (size_t)-1; + } + + **outbuf = c; + (*outbuf)++; + (*outbytesleft)--; + st->context = SPACE; + + break; + case ISCII: + if ( isspace(c) ) { + uchar iscii; + int flag = 1; + + /* flush keepc */ + iscii = get_iscii(st, 0, &flag); + if (flag) { + if ( iscii ) **outbuf = iscii; + else **outbuf = REPLACE_CHAR; + + (*outbuf)++; + (*outbytesleft)--; + } + + if ( *outbytesleft < 1 ) { + errno = E2BIG; + return (size_t)-1; + } + + **outbuf = c; + (*outbuf)++; + (*outbytesleft)--; + st->context = SPACE; + } else { + uchar iscii; + int flag = 1; + + iscii = get_iscii(st, c, &flag); + if (flag) { + if ( iscii ) **outbuf = iscii; + else **outbuf = REPLACE_CHAR; + + (*outbuf)++; + (*outbytesleft)--; + } + } + break; + } + + (*inbuf)++; + (*inbytesleft)--; + } + + if ( *inbytesleft > 0 && *outbytesleft == 0 ) { + errno = E2BIG; + return ((size_t)-1); + } + + return ((size_t)(*inbytesleft)); +} diff --git a/usr/src/lib/iconv_modules/hi_IN/i386/Makefile b/usr/src/lib/iconv_modules/hi_IN/i386/Makefile new file mode 100644 index 0000000000..f740398543 --- /dev/null +++ b/usr/src/lib/iconv_modules/hi_IN/i386/Makefile @@ -0,0 +1,24 @@ +# +# This file and its contents are supplied under the terms of the +# Common Development and Distribution License ("CDDL"), version 1.0. +# You may only use this file in accordance with the terms of version +# 1.0 of the CDDL. +# +# A full copy of the text of the CDDL should have accompanied this +# source. A copy of the CDDL is also available via the Internet at +# http://www.illumos.org/license/CDDL. +# + +# +# Copyright 2017 Alexander Pyhalov +# + +include ../Makefile.com + +CFLAGS += -I.. -I../common/ -I../include/ + +ICONV_LIBS = $(PROGS:%=$(ICONV_DIR)/%) + +$(ICONV_LIBS) := FILEMODE= 755 + +install: all $(ICONV_DIR) .WAIT $(ICONV_LIBS) diff --git a/usr/src/lib/iconv_modules/hi_IN/include/ea-iscii.h b/usr/src/lib/iconv_modules/hi_IN/include/ea-iscii.h new file mode 100644 index 0000000000..5950553a72 --- /dev/null +++ b/usr/src/lib/iconv_modules/hi_IN/include/ea-iscii.h @@ -0,0 +1,123 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ +/* + * Copyright(c) 2001 Sun Microsystems, Inc. + * All rights reserved. + */ + +#ifndef _EA_ISCII_H_ +#define _EA_ISCII_H_ + +#define uchar unsigned char + +#define NUKTA 0xFD +#define MATRA 0xFE +#define COMBINED_MATRA_NUKTA 0xFF + +#define LEADING_BYTE 'x' +#define NUKTA_VALUE 'x' +#define FIRST_VOWEL 0x43 + + +typedef struct _entry { + uchar ea_iscii; + uchar iscii; + int count; +} Entry; + +Entry eaiscii_isc_tbl[] = { + { 0x41, 0xA1, 2 }, + { 0x43, 0xA4, 1 }, + { 0x44, 0xB3, 4 }, + { 0x48, 0xB8, 4 }, + { 0x4C, 0xBD, 10 }, + { 0x56, 0xC8, 5 }, + { 0x61, 0xCD, 1 }, + { 0x62, 0xCF, 4 }, + { 0x66, 0xD4, 5 }, + { 0x6B, 0xDA, 9 }, + { 0x74, 0xE4, 3 }, + { 0x77, 0xE8, 3 }, + { 0x7A, 0xEF, 1 } +}; + +Entry isc_eaiscii_tbl[] = { + { 0x41, 0xA1, 2 }, + { 0x42, 0xA3, NUKTA }, + { 0x43, 0xA4, 1 }, + { 0x6B, 0xA5, MATRA }, + { 0x6C, 0xA6, MATRA }, + { 0x6D, 0xA7, MATRA }, + { 0x6E, 0xA8, MATRA }, + { 0x6F, 0xA9, MATRA }, + { 0x70, 0xAA, MATRA }, + { 0x71, 0xAB, MATRA }, + { 0x72, 0xAC, MATRA }, + { 0x73, 0xAD, MATRA }, + { 0x73, 0xAE, COMBINED_MATRA_NUKTA }, + { 0x74, 0xAF, MATRA }, + { 0x75, 0xB0, MATRA }, + { 0x76, 0xB1, MATRA }, + { 0x76, 0xB2, COMBINED_MATRA_NUKTA }, + { 0x44, 0xB3, 4 }, + { 0x47, 0xB7, NUKTA }, + { 0x48, 0xB8, 4 }, + { 0x4B, 0xBC, NUKTA }, + { 0x4C, 0xBD, 10 }, + { 0x55, 0xC7, NUKTA }, + { 0x56, 0xC8, 5 }, + { 0x61, 0xCD, 1 }, + { 0x61, 0xCE, NUKTA }, + { 0x62, 0xCF, 4 }, + { 0x65, 0xD3, NUKTA }, + { 0x66, 0xD4, 5 }, + { 0x6A, 0xD9, NUKTA }, + { 0x6B, 0xDA, 9 }, + { 0x73, 0xE3, NUKTA }, + { 0x74, 0xE4, 3 }, + { 0x76, 0xE7, NUKTA }, + { 0x77, 0xE8, 3 }, + { 0x7A, 0xEF, 1 } +}; + +uchar EAISCII_nukta_type [] = { + 0x0, 0x0, 0xA3, 0x0, 0x0, 0x0, 0x0, 0xB7, /* 40 - 47 */ + 0x0, 0x0, 0x0, 0xBC, 0x0, 0x0, 0x0, 0x0, /* 48 - 4F */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0xC7, 0x0, 0x0, /* 50 - 57 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 58 - 5F */ + 0x0, 0xCE, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 60 - 67 */ + 0x0, 0x0, 0xD9, 0x0, 0x0, 0x0, 0x0, 0x0, /* 68 - 6F */ + 0x0, 0x0, 0x0, 0xE3, 0x0, 0x0, 0xE7, 0x0, /* 70 - 77 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 /* 78 - 7F */ +}; + +uchar EAISCII_vowel_type [] = { + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 40 - 47 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 48 - 4F */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 50 - 57 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 58 - 5F */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 60 - 67 */ + 0x0, 0x0, 0x0, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9,/* 68 - 6F */ + 0xAA, 0xAB, 0xAC, 0xAD, 0xAF, 0xB0, 0xB1, 0x0, /* 70 - 77 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 /* 78 - 7F */ +}; + +#endif diff --git a/usr/src/lib/iconv_modules/hi_IN/include/iscii-bng.h b/usr/src/lib/iconv_modules/hi_IN/include/iscii-bng.h new file mode 100644 index 0000000000..e0fdf94167 --- /dev/null +++ b/usr/src/lib/iconv_modules/hi_IN/include/iscii-bng.h @@ -0,0 +1,88 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ +/* + * Copyright(c) 2001 Sun Microsystems, Inc. + * All rights reserved. + */ + +#ifndef _ISCII_BNG_H_ +#define _ISCII_BNG_H_ + +#include "iscii-common.h" + +Entry Bengali_isc[] ={ + {0xA1, 0x0981, 3}, + {0xA4, 0x0985, 7}, + {0xAC, 0x098F, 2}, + {0xB0, 0x0993, 2}, + {0xB3, 0x0995, 20}, + {0xC8, 0x09AA, 8}, + {0xD1, 0x09B2, 1}, + {0xD5, 0x09B6, 4}, + {ISC_INV, UNI_INV, 1}, + {0xDA, 0x09BE, 6}, + {0xE1, 0x09C7, 2}, + {0xE5, 0x09CB, 2}, + {0xE8, 0x09CD, 1}, + {0xE9, 0x09BC, 1}, + {0xEA, 0x09F7, 1}, + {0xF1, 0x09E6, 10}, +}; + +Entry Bengali_uni[] ={ + {0xA1, 0x0981, 3}, + {0xA4, 0x0985, 7}, + {0xAC, 0x098F, 2}, + {0xB0, 0x0993, 2}, + {0xB3, 0x0995, 20}, + {0xC8, 0x09AA, 8}, + {0xD1, 0x09B2, 1}, + {0xD5, 0x09B6, 4}, + {0xE9, 0x09BC, 1}, + {0xDA, 0x09BE, 6}, + {0xE1, 0x09C7, 2}, + {0xE5, 0x09CB, 2}, + {0xE8, 0x09CD, 1}, + {0xBF, 0x09DC, NUKTA}, + {0xC0, 0x09DD, NUKTA}, + {0xF1, 0x09E6, 10}, + {0xEA, 0x09F7, 1}, + {0xE8, UNI_ZWNJ,HALANT}, + {0xE9, UNI_ZWJ, HALANT}, + {ISC_INV, UNI_INV, 1} +}; + +int Bengali_nukta_type[] = { + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* A0 - A7 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* A8 - AF */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* B0 - B7 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x09DC, /* B8 - BF */ + 0x09DD, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* C0 - C7 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* C8 - CF */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* D0 - D7 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* D8 - DF */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* E0 - E7 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* E8 - EF */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* F0 - E7 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 /* F8 - FF */ +}; + +#endif diff --git a/usr/src/lib/iconv_modules/hi_IN/include/iscii-common.h b/usr/src/lib/iconv_modules/hi_IN/include/iscii-common.h new file mode 100644 index 0000000000..58edf5af6a --- /dev/null +++ b/usr/src/lib/iconv_modules/hi_IN/include/iscii-common.h @@ -0,0 +1,65 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ +/* + * Copyright(c) 2001 Sun Microsystems, Inc. + * All rights reserved. + */ + +#ifndef _ISCII_COMMON_H_ +#define _ISCII_COMMON_H_ + +#define ucs_t unsigned long + +#define uchar unsigned char + +#define NUKTA 0 +#define EXT -1 +#define HALANT -2 +#define DOUBLE_DANDA -3 + +#define ISC_INV 0xd9 /* Consonant Invisible */ + +#define ISC_halant 0xe8 +#define ISC_nukta 0xe9 +#define ISC_danda 0xea +#define ISC_atr 0xef /* Attribute code */ +#define ISC_ext 0xf0 /* Extension code */ + +#define UNI_DOUBLE_DANDA 0x0965 + +#define UNI_ZWNJ 0x200C /* Zero Width Non Joiner */ +#define UNI_ZWJ 0x200D /* Zero Width Joiner */ +#define UNI_INV 0x200E /* map INV to Unicode LRM, same as Apple implementation */ + +#define EXT_RANGE_BEGIN 0xA1 +#define EXT_RANGE_END 0xEE +#define is_valid_ext_code(v) ((v) >= EXT_RANGE_BEGIN && (v) <= EXT_RANGE_END) + +typedef enum { DEV, BNG, GMK, GJR, ORI, TML, TLG, KND, MLM, NUM_ISCII } ISCII; + +typedef struct _entry { + uchar iscii; + ucs_t ucs; + int count; +} Entry; + + +#endif diff --git a/usr/src/lib/iconv_modules/hi_IN/include/iscii-dev.h b/usr/src/lib/iconv_modules/hi_IN/include/iscii-dev.h new file mode 100644 index 0000000000..87efec1f01 --- /dev/null +++ b/usr/src/lib/iconv_modules/hi_IN/include/iscii-dev.h @@ -0,0 +1,124 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ +/* + * Copyright(c) 2001 Sun Microsystems, Inc. + * All rights reserved. + */ + +#ifndef _ISCII_DEV_H_ +#define _ISCII_DEV_H_ + +#include "iscii-common.h" + +Entry Devanagari_isc[] ={ + {0xA1, 0x0901, 3}, + {0xA4, 0x0905, 7}, + {0xAB, 0x090E, 3}, + {0xAE, 0x090D, 1}, + {0xAF, 0x0912, 3}, + {0xB2, 0x0911, 1}, + {0xB3, 0x0915, 27}, + {0xCE, 0x095F, 1}, + {0xCF, 0x0930, 10}, + {ISC_INV, UNI_INV, 1}, + {0xDA, 0x093E, 6}, + {0xE0, 0x0946, 3}, + {0xE3, 0x0945, 1}, + {0xE4, 0x094A, 3}, + {0xE7, 0x0949, 1}, + {0xE8, 0x094D, 1}, + {0xE9, 0x093C, 1}, + {0xEA, 0x0964, 1}, + {0xF1, 0x0966, 10} +}; + +Entry Devanagari_uni[] = { + {0xA1, 0x0901, 3}, + {0xA4, 0x0905, 7}, + {0xA6, 0x090C, NUKTA}, + {0xAE, 0x090D, 1}, + {0xAB, 0x090E, 3}, + {0xB2, 0x0911, 1}, + {0xAF, 0x0912, 3}, + {0xB3, 0x0915, 27}, + {0xCF, 0x0930, 10}, + {0xE9, 0x093C, 1}, + {0xEA, 0x093D, NUKTA}, + {0xDA, 0x093E, 6}, + {0xDF, 0x0944, NUKTA}, + {0xE3, 0x0945, 1}, + {0xE0, 0x0946, 3}, + {0xE7, 0x0949, 1}, + {0xE4, 0x094A, 3}, + {0xE8, 0x094D, 1}, + {0xA1, 0x0950, NUKTA}, + {0xB8, 0x0952, EXT}, + {0xB3, 0x0958, NUKTA}, + {0xB4, 0x0959, NUKTA}, + {0xB5, 0x095A, NUKTA}, + {0xBA, 0x095B, NUKTA}, + {0xBF, 0x095C, NUKTA}, + {0xC0, 0x095D, NUKTA}, + {0xC9, 0x095E, NUKTA}, + {0xCE, 0x095F, 1}, + {0xAA, 0x0960, NUKTA}, + {0xA7, 0x0961, NUKTA}, + {0xDB, 0x0962, NUKTA}, + {0xDC, 0x0963, NUKTA}, + {0xEA, 0x0964, 1}, + {0xEA, 0x0965, DOUBLE_DANDA}, + {0xF1, 0x0966, 10}, + {0xBF, 0x0970, EXT}, + {0xE8, UNI_ZWNJ,HALANT}, + {0xE9, UNI_ZWJ, HALANT}, + {ISC_INV, UNI_INV, 1} +}; + +int Devanagari_nukta_type[] = { + 0x0, 0x0950, 0x0, 0x0, 0x0, 0x0, 0x090C, 0x0961, /* A0 - A7 */ + 0x0, 0x0, 0x0960, 0x0, 0x0, 0x0, 0x0, 0x0, /* A8 - AF */ + 0x0, 0x0, 0x0, 0x0958, 0x0959, 0x095A, 0x0, 0x0, /* B0 - B7 */ + 0x0, 0x0, 0x095B, 0x0, 0x0, 0x0, 0x0, 0x095C, /* B8 - BF */ + 0x095D, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* C0 - C7 */ + 0x0, 0x095E, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* C8 - CF */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* D0 - D7 */ + 0x0, 0x0, 0x0, 0x0962, 0x0963, 0x0, 0x0, 0x0944, /* D8 - DF */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* E0 - E7 */ + 0x0, 0x0, 0x093D, 0x0, 0x0, 0x0, 0x0, 0x0, /* E8 - EF */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* F0 - E7 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 /* F8 - FF */ +}; + +int Devanagari_EXT_type[] = { + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* A0 - A7 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* A8 - AF */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* B0 - B7 */ + 0x0952, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0970, /* B8 - BF */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* C0 - C7 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* C8 - CF */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* D0 - D7 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* D8 - DF */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* E0 - E7 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* E8 - EF */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* F0 - E7 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 /* F8 - FF */ +}; +#endif diff --git a/usr/src/lib/iconv_modules/hi_IN/include/iscii-gjr.h b/usr/src/lib/iconv_modules/hi_IN/include/iscii-gjr.h new file mode 100644 index 0000000000..6a6263c708 --- /dev/null +++ b/usr/src/lib/iconv_modules/hi_IN/include/iscii-gjr.h @@ -0,0 +1,70 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ +/* + * Copyright(c) 2001 Sun Microsystems, Inc. + * All rights reserved. + */ + +#ifndef _ISCII_GJR_H_ +#define _ISCII_GJR_H_ + +#include "iscii-common.h" + +Entry Gujarati_isc[] ={ + {0xA1, 0x0A81, 3}, + {0xA4, 0x0A85, 7}, + {0xAC, 0x0A8F, 2}, + {0xB0, 0x0A93, 2}, + {0xB3, 0x0B95, 20}, + {0xC8, 0x0AAA, 6}, + {0xCF, 0x0AB0, 1}, + {0xD4, 0x0AB5, 5}, + {ISC_INV, UNI_INV, 1}, + {0xDA, 0x0ABE, 5}, + {0xE1, 0x0AC7, 2}, + {0xE5, 0x0ACB, 2}, + {0xE8, 0x0ACD, 1}, + {0xF1, 0x0AE6, 10} +}; + +/* +Entry *Gujarati_uni = Gujarati_isc; +*/ + +Entry Gujarati_uni[] = { + {0xA1, 0x0A81, 3}, + {0xA4, 0x0A85, 7}, + {0xAC, 0x0A8F, 2}, + {0xB0, 0x0A93, 2}, + {0xB3, 0x0B95, 20}, + {0xC8, 0x0AAA, 6}, + {0xCF, 0x0AB0, 1}, + {0xD4, 0x0AB5, 5}, + {0xDA, 0x0ABE, 5}, + {0xE1, 0x0AC7, 2}, + {0xE5, 0x0ACB, 2}, + {0xE8, 0x0ACD, 1}, + {0xF1, 0x0AE6, 10}, + {0xE8, UNI_ZWNJ, HALANT}, + {0xE9, UNI_ZWJ, HALANT}, + {ISC_INV, UNI_INV, 1} +}; +#endif diff --git a/usr/src/lib/iconv_modules/hi_IN/include/iscii-gmk.h b/usr/src/lib/iconv_modules/hi_IN/include/iscii-gmk.h new file mode 100644 index 0000000000..305d9d43f7 --- /dev/null +++ b/usr/src/lib/iconv_modules/hi_IN/include/iscii-gmk.h @@ -0,0 +1,91 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ +/* + * Copyright(c) 2001 Sun Microsystems, Inc. + * All rights reserved. + */ + +#ifndef _ISCII_GMK_H_ +#define _ISCII_GMK_H_ + +#include "iscii-common.h" + +Entry Gurmukhi_isc[] ={ + {0xA2, 0x0A02, 1}, + {0xA4, 0x0A05, 6}, + {0xAC, 0x0A0F, 2}, + {0xB0, 0x0A13, 2}, + {0xB3, 0x0A15, 20}, + {0xC8, 0x0A2A, 6}, + {0xCF, 0x0A30, 1}, + {0xD1, 0x0A32, 1}, + {0xD4, 0x0A35, 2}, + {0xD7, 0x0A38, 2}, + {ISC_INV, UNI_INV, 1}, + {0xDA, 0x0A3E, 5}, + {0xE1, 0x0A47, 2}, + {0xE5, 0x0A4B, 2}, + {0xE8, 0x0A71, 1}, + {0xE9, 0x0A3C, 1}, + {0xF1, 0x0A66, 10} +}; + +Entry Gurmukhi_uni[] = { + {0xA2, 0x0A02, 1}, + {0xA4, 0x0A05, 6}, + {0xAC, 0x0A0F, 2}, + {0xB0, 0x0A13, 2}, + {0xB3, 0x0A15, 20}, + {0xC8, 0x0A2A, 6}, + {0xCF, 0x0A30, 1}, + {0xD1, 0x0A32, 1}, + {0xD1, 0x0A33, NUKTA}, + {0xD4, 0x0A35, 2}, + {0xD7, 0x0A38, 2}, + {0xE9, 0x0A3C, 1}, + {0xDA, 0x0A3E, 5}, + {0xE1, 0x0A47, 2}, + {0xE5, 0x0A4B, 2}, + {0xB4, 0x0A59, NUKTA}, + {0xB5, 0x0A5A, NUKTA}, + {0xC9, 0x0A5E, NUKTA}, + {0xF1, 0x0A66, 10}, + {0xE8, 0x0A71, 1}, + {0xE8, UNI_ZWNJ,HALANT}, + {0xE9, UNI_ZWJ, HALANT}, + {ISC_INV, UNI_INV, 1} +}; + +int Gurmukhi_nukta_type[] = { + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* A0 - A7 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* A8 - AF */ + 0x0, 0x0, 0x0, 0x0, 0x0A59, 0x0A5A, 0x0, 0x0, /* B0 - B7 */ + 0x0, 0x0, 0x0A5B, 0x0, 0x0, 0x0, 0x0, 0x0, /* B8 - BF */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* C0 - C7 */ + 0x0, 0x0A5E, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* C8 - CF */ + 0x0, 0x0A33, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* D0 - D7 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* D8 - DF */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* E0 - E7 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* E8 - EF */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* F0 - E7 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 /* F8 - FF */ +}; +#endif diff --git a/usr/src/lib/iconv_modules/hi_IN/include/iscii-knd.h b/usr/src/lib/iconv_modules/hi_IN/include/iscii-knd.h new file mode 100644 index 0000000000..0fa0e08056 --- /dev/null +++ b/usr/src/lib/iconv_modules/hi_IN/include/iscii-knd.h @@ -0,0 +1,68 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ +/* + * Copyright(c) 2001 Sun Microsystems, Inc. + * All rights reserved. + */ + +#ifndef _ISCII_KND_H_ +#define _ISCII_KND_H_ + +#include "iscii-common.h" + +Entry Kannada_isc[] ={ + {0xA2, 0x0C82, 2}, + {0xA4, 0x0C85, 10}, + {0xAF, 0x0C92, 3}, + {0xB3, 0x0C95, 20}, + {0xC8, 0x0CAA, 6}, + {0xCF, 0x0CB0, 1}, + {0xD1, 0x0CB2, 2}, + {0xD4, 0x0CB5, 5}, + {ISC_INV, UNI_INV, 1}, + {0xDA, 0x0CBE, 9}, + {0xE4, 0x0CCA, 3}, + {0xE8, 0x0CCD, 1}, + {0xF1, 0x0CE6, 10} +}; + +/* +Entry *Kannada_uni = Kannada_isc; +*/ +Entry Kannada_uni[] ={ + {0xA2, 0x0C82, 2}, + {0xA4, 0x0C85, 10}, + {0xAF, 0x0C92, 3}, + {0xB3, 0x0C95, 20}, + {0xC8, 0x0CAA, 6}, + {0xCF, 0x0CB0, 1}, + {0xD1, 0x0CB2, 2}, + {0xD4, 0x0CB5, 5}, + {0xDA, 0x0CBE, 9}, + {0xE4, 0x0CCA, 3}, + {0xE8, 0x0CCD, 1}, + {0xF1, 0x0CE6, 10}, + {0xE8, UNI_ZWNJ,HALANT}, + {0xE9, UNI_ZWJ, HALANT}, + {ISC_INV, UNI_INV, 1} +}; + +#endif diff --git a/usr/src/lib/iconv_modules/hi_IN/include/iscii-mlm.h b/usr/src/lib/iconv_modules/hi_IN/include/iscii-mlm.h new file mode 100644 index 0000000000..bee54fa463 --- /dev/null +++ b/usr/src/lib/iconv_modules/hi_IN/include/iscii-mlm.h @@ -0,0 +1,65 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ +/* + * Copyright(c) 2001 Sun Microsystems, Inc. + * All rights reserved. + */ + +#ifndef _ISCII_MLM_H_ +#define _ISCII_MLM_H_ + +#include "iscii-common.h" + +Entry Malayalam_isc[] ={ + {0xA2, 0x0D02, 2}, + {0xA4, 0x0D05, 10}, + {0xAF, 0x0D12, 3}, + {0xB3, 0x0D15, 20}, + {0xC8, 0x0D2A, 6}, + {0xCF, 0x0D30, 10}, + {ISC_INV, UNI_INV, 1}, + {0xDA, 0x0D3E, 9}, + {0xE4, 0x0D4A, 3}, + {0xE8, 0x0D4D, 1}, + {0xF1, 0x0D66, 10} +}; + +/* +Entry *Malayalam_uni = Malayalam_isc; +*/ +Entry Malayalam_uni[] ={ + {0xA2, 0x0D02, 2}, + {0xA4, 0x0D05, 10}, + {0xAF, 0x0D12, 3}, + {0xB3, 0x0D15, 20}, + {0xC8, 0x0D2A, 6}, + {0xCF, 0x0D30, 10}, + {0xDA, 0x0D3E, 9}, + {0xE4, 0x0D4A, 3}, + {0xE8, 0x0D4D, 1}, + {0xF1, 0x0D66, 10}, + {0xE8, UNI_ZWNJ,HALANT}, + {0xE9, UNI_ZWJ, HALANT}, + {ISC_INV, UNI_INV, 1} +}; + + +#endif diff --git a/usr/src/lib/iconv_modules/hi_IN/include/iscii-ori.h b/usr/src/lib/iconv_modules/hi_IN/include/iscii-ori.h new file mode 100644 index 0000000000..dacffa71d9 --- /dev/null +++ b/usr/src/lib/iconv_modules/hi_IN/include/iscii-ori.h @@ -0,0 +1,87 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ +/* + * Copyright(c) 2001 Sun Microsystems, Inc. + * All rights reserved. + */ + +#ifndef _ISCII_ORI_H_ +#define _ISCII_ORI_H_ + +#include "iscii-common.h" + +Entry Oriya_isc[] ={ + {0xA1, 0x0B01, 3}, + {0xA4, 0x0B05, 6}, + {0xAC, 0x0B0F, 2}, + {0xB0, 0x0B13, 2}, + {0xB3, 0x0B15, 20}, + {0xC8, 0x0B2A, 6}, + {0xCE, 0x0B5F, 2}, + {0xD1, 0x0B32, 2}, + {0xD5, 0x0B36, 4}, + {ISC_INV, UNI_INV, 1}, + {0xDA, 0x0B3E, 6}, + {0xE1, 0x0B47, 2}, + {0xE5, 0x0B4B, 2}, + {0xE8, 0x0B4D, 1}, + {0xE9, 0x0B3C, 1}, + {0xF1, 0x0B66, 10} +}; + +Entry Oriya_uni[] = { + {0xA1, 0x0B01, 3}, + {0xA4, 0x0B05, 6}, + {0xAC, 0x0B0F, 2}, + {0xB0, 0x0B13, 2}, + {0xB3, 0x0B15, 20}, + {0xC8, 0x0B2A, 6}, + {0xD1, 0x0B32, 2}, + {0xD5, 0x0B36, 4}, + {0xE9, 0x0B3C, 1}, + {0xDA, 0x0B3E, 6}, + {0xE1, 0x0B47, 2}, + {0xE5, 0x0B4B, 2}, + {0xE8, 0x0B4D, 1}, + {0xBF, 0x0B5C, NUKTA}, + {0xC0, 0x0B5D, NUKTA}, + {0xCE, 0x0B5F, 2}, + {0xF1, 0x0B66, 10}, + {0xE8, UNI_ZWNJ,HALANT}, + {0xE9, UNI_ZWJ, HALANT}, + {ISC_INV, UNI_INV, 1} +}; + +int Oriya_nukta_type[] = { + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* A0 - A7 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* A8 - AF */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* B0 - B7 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0B5C, /* B8 - BF */ + 0x0B5D, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* C0 - C7 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* C8 - CF */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* D0 - D7 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* D8 - DF */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* E0 - E7 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* E8 - EF */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* F0 - E7 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 /* F8 - FF */ +}; +#endif diff --git a/usr/src/lib/iconv_modules/hi_IN/include/iscii-tlg.h b/usr/src/lib/iconv_modules/hi_IN/include/iscii-tlg.h new file mode 100644 index 0000000000..b99cc9ac51 --- /dev/null +++ b/usr/src/lib/iconv_modules/hi_IN/include/iscii-tlg.h @@ -0,0 +1,67 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ +/* + * Copyright(c) 2001 Sun Microsystems, Inc. + * All rights reserved. + */ + +#ifndef _ISCII_TLG_H_ +#define _ISCII_TLG_H_ + +#include "iscii-common.h" + +Entry Telugu_isc[] ={ + {0xA2, 0x0C02, 2}, + {0xA4, 0x0C05, 10}, + {0xAF, 0x0C12, 3}, + {0xB3, 0x0C15, 20}, + {0xC8, 0x0C2A, 6}, + {0xCF, 0x0C30, 4}, + {0xD4, 0x0C35, 5}, + {ISC_INV, UNI_INV, 1}, + {0xDA, 0x0C3E, 9}, + {0xE4, 0x0C4A, 3}, + {0xE8, 0x0C4D, 1}, + {0xF1, 0x0C66, 10} +}; + +/* +Entry *Telugu_uni = Telugu_isc; +*/ +Entry Telugu_uni[] ={ + {0xA2, 0x0C02, 2}, + {0xA4, 0x0C05, 10}, + {0xAF, 0x0C12, 3}, + {0xB3, 0x0C15, 20}, + {0xC8, 0x0C2A, 6}, + {0xCF, 0x0C30, 4}, + {0xD4, 0x0C35, 5}, + {0xDA, 0x0C3E, 9}, + {0xE4, 0x0C4A, 3}, + {0xE8, 0x0C4D, 1}, + {0xF1, 0x0C66, 10}, + {0xE8, UNI_ZWNJ,HALANT}, + {0xE9, UNI_ZWJ, HALANT}, + {ISC_INV, UNI_INV, 1} +}; + + +#endif diff --git a/usr/src/lib/iconv_modules/hi_IN/include/iscii-tml.h b/usr/src/lib/iconv_modules/hi_IN/include/iscii-tml.h new file mode 100644 index 0000000000..50c0872ff4 --- /dev/null +++ b/usr/src/lib/iconv_modules/hi_IN/include/iscii-tml.h @@ -0,0 +1,79 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ +/* + * Copyright(c) 2001 Sun Microsystems, Inc. + * All rights reserved. + */ + +#ifndef _ISCII_TML_H_ +#define _ISCII_TML_H_ + +#include "iscii-common.h" + +Entry Tamil_isc[] ={ + {0xA3, 0x0B83, 1}, + {0xA4, 0x0B85, 6}, + {0xAB, 0x0B8E, 3}, + {0xAF, 0x0B92, 3}, + {0xB3, 0x0B95, 1}, + {0xB7, 0x0B99, 2}, + {0xBA, 0x0B9C, 1}, + {0xBC, 0x0B9E, 2}, + {0xC1, 0x0BA3, 2}, + {0xC8, 0x0BA8, 3}, + {0xCC, 0x0BAE, 2}, + {0xCF, 0x0BB0, 6}, + {0xD6, 0x0BB7, 3}, + {ISC_INV, UNI_INV, 1}, + {0xDA, 0x0BBE, 5}, + {0xE4, 0x0BCA, 3}, + {0xE8, 0x0BCD, 1}, + {0xF2, 0x0BE7, 9} +}; + +/* +Entry *Tamil_uni = Tamil_isc; +*/ +Entry Tamil_uni[] ={ + {0xA3, 0x0B83, 1}, + {0xA4, 0x0B85, 6}, + {0xAB, 0x0B8E, 3}, + {0xAF, 0x0B92, 3}, + {0xB3, 0x0B95, 1}, + {0xB7, 0x0B99, 2}, + {0xBA, 0x0B9C, 1}, + {0xBC, 0x0B9E, 2}, + {0xC1, 0x0BA3, 2}, + {0xC8, 0x0BA8, 3}, + {0xCC, 0x0BAE, 2}, + {0xCF, 0x0BB0, 6}, + {0xD6, 0x0BB7, 3}, + {0xDA, 0x0BBE, 5}, + {0xE4, 0x0BCA, 3}, + {0xE8, 0x0BCD, 1}, + {0xF2, 0x0BE7, 9}, + {0xE8, UNI_ZWNJ,HALANT}, + {0xE9, UNI_ZWJ, HALANT}, + {ISC_INV, UNI_INV, 1} +}; + + +#endif diff --git a/usr/src/lib/iconv_modules/hi_IN/include/iscii.h b/usr/src/lib/iconv_modules/hi_IN/include/iscii.h new file mode 100644 index 0000000000..a3c27edd96 --- /dev/null +++ b/usr/src/lib/iconv_modules/hi_IN/include/iscii.h @@ -0,0 +1,138 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ +/* + * Copyright(c) 2001 Sun Microsystems, Inc. + * All rights reserved. + */ + +#ifndef _ISCII_H_ +#define _ISCII_H_ + +#include "iscii-bng.h" +#include "iscii-dev.h" +#include "iscii-gjr.h" +#include "iscii-gmk.h" +#include "iscii-knd.h" +#include "iscii-mlm.h" +#include "iscii-ori.h" +#include "iscii-tlg.h" +#include "iscii-tml.h" + +#define get_script_types(ucs, type) \ + if ( ucs >= 0x0900 && ucs <= 0x097f ) \ + type = DEV; \ + else if ( ucs >= 0x0980 && ucs <= 0x09ff ) \ + type = BNG; \ + else if ( ucs >= 0x0a00 && ucs <= 0x0a7f ) \ + type = GMK; \ + else if ( ucs >= 0x0a80 && ucs <= 0x0aff ) \ + type = GJR; \ + else if ( ucs >= 0x0b00 && ucs <= 0x0b7f ) \ + type = ORI; \ + else if ( ucs >= 0x0b80 && ucs <= 0x0bff ) \ + type = TML; \ + else if ( ucs >= 0x0c00 && ucs <= 0x0c7f ) \ + type = TLG; \ + else if ( ucs >= 0x0c80 && ucs <= 0x0cff ) \ + type = KND; \ + else if ( ucs >= 0x0d00 && ucs <= 0x0d7f ) \ + type = MLM; \ + else \ + type = NUM_ISCII; + +ISCII isc_TYPE[] = { + DEV, /* 0x42 */ + BNG, /* 0x43 */ + TML, /* 0x44 */ + TLG, /* 0x45 */ + NUM_ISCII,/* 0x46 */ + ORI, /* 0x47 */ + KND, /* 0x48 */ + MLM, /* 0x49 */ + GJR, /* 0x4a */ + GMK /* 0x4b */ +}; + +int aTRs[NUM_ISCII] = { + 0x42, /* Devanagiri */ + 0x43, /* Bengali */ + 0x4b, /* Gurumukhi */ + 0x4a, /* Gujarati */ + 0x47, /* Oriya */ + 0x44, /* Tamil */ + 0x45, /* Telugu */ + 0x48, /* Kannada */ + 0x49 /* Malayalam */ +}; + +typedef struct _Entries { + Entry *entry; + int items; +} Entries; + +Entries iscii_table[NUM_ISCII]= { + { Devanagari_isc, sizeof(Devanagari_isc)/sizeof(Entry) }, + { Bengali_isc, sizeof(Bengali_isc)/sizeof(Entry) }, + { Gurmukhi_isc, sizeof(Gurmukhi_isc)/sizeof(Entry) }, + { Gujarati_isc, sizeof(Gujarati_isc)/sizeof(Entry) }, + { Oriya_isc, sizeof(Oriya_isc)/sizeof(Entry) }, + { Tamil_isc, sizeof(Tamil_isc)/sizeof(Entry) }, + { Telugu_isc, sizeof(Telugu_isc)/sizeof(Entry) }, + { Kannada_isc, sizeof(Kannada_isc)/sizeof(Entry) }, + { Malayalam_isc, sizeof(Malayalam_isc)/sizeof(Entry) } +}; + +Entries unicode_table[NUM_ISCII]= { + { Devanagari_uni, sizeof(Devanagari_uni)/sizeof(Entry) }, + { Bengali_uni, sizeof(Bengali_uni)/sizeof(Entry) }, + { Gurmukhi_uni, sizeof(Gurmukhi_uni)/sizeof(Entry) }, + { Gujarati_uni, sizeof(Gujarati_uni)/sizeof(Entry) }, + { Oriya_uni, sizeof(Oriya_uni)/sizeof(Entry) }, + { Tamil_uni, sizeof(Tamil_uni)/sizeof(Entry) }, + { Telugu_uni, sizeof(Telugu_uni)/sizeof(Entry) }, + { Kannada_uni, sizeof(Kannada_uni)/sizeof(Entry) }, + { Malayalam_uni, sizeof(Malayalam_uni)/sizeof(Entry) } +}; + +int *nukta_type[NUM_ISCII] = { + Devanagari_nukta_type, + Bengali_nukta_type, + Gurmukhi_nukta_type, + NULL, + Oriya_nukta_type, + NULL, + NULL, + NULL, + NULL +}; + +int *EXT_type[NUM_ISCII] = { + Devanagari_EXT_type, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL +}; +#endif diff --git a/usr/src/lib/iconv_modules/hi_IN/include/pc-iscii.h b/usr/src/lib/iconv_modules/hi_IN/include/pc-iscii.h new file mode 100644 index 0000000000..e613942a99 --- /dev/null +++ b/usr/src/lib/iconv_modules/hi_IN/include/pc-iscii.h @@ -0,0 +1,54 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ +/* + * Copyright(c) 2001 Sun Microsystems, Inc. + * All rights reserved. + */ + +#ifndef _PC_ISCII_H_ +#define _PC_ISCII_H_ + +#define uchar unsigned char + +typedef struct _entry { + uchar pc_iscii; + uchar iscii; + int count; +} Entry; + +Entry pciscii_isc_tbl[] = { + { 0x80, 0xA1, 48 }, + { 0xE0, 0xEF, 1 }, + { 0xE1, 0xD1, 15 }, + { 0xF0, 0xF0, 1 }, + { 0xF1, 0xE0, 11 } +}; + +Entry isc_pciscii_tbl[] = { + { 0x80, 0xA1, 48 }, + { 0xE1, 0xD1, 15 }, + { 0xF1, 0xE0, 11 }, + { 0xE0, 0xEF, 1 }, + { 0xF0, 0xF0, 1 }, + { 0x30, 0xF1, 10 } /* convert Iscii numerals to ascii numerals */ +}; + +#endif diff --git a/usr/src/lib/iconv_modules/hi_IN/iscii91%UTF-8.c b/usr/src/lib/iconv_modules/hi_IN/iscii91%UTF-8.c new file mode 100644 index 0000000000..edc122eacb --- /dev/null +++ b/usr/src/lib/iconv_modules/hi_IN/iscii91%UTF-8.c @@ -0,0 +1,422 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ +/* + * Copyright(c) 2001 Sun Microsystems, Inc. + * All rights reserved. + */ + +#include <stdio.h> +#include <errno.h> +#include <stdlib.h> +#include <strings.h> +#include "iscii.h" + +#define MSB 0x80 /* most significant bit */ +#define ONEBYTE 0xff /* right most byte */ + +#define REPLACE_CHAR1 0xEF /* invalid conversion character */ +#define REPLACE_CHAR2 0xBF +#define REPLACE_CHAR3 0xBD + +#define UTF8_SET1B(b,v) \ + (b[0]=(v&0x7f)) + +#define UTF8_SET2B(b,v) \ + (b[0]=(0xc0|((v>>6)&0x1f))); \ + (b[1]=(0x80|((v&0x3f)))) + +#define UTF8_SET3B(b,v) \ + (b[0]=(0xe0|((v>>12)&0xf))); \ + (b[1]=(0x80|((v>>6)&0x3f))); \ + (b[2]=(0x80|((v&0x3f)))) + +typedef struct _icv_state { + char keepc[3]; /* keepc[0] is attr, keepc[1] and keepc[2] are lookup-ed */ + short pState; /* Previous State */ + int _errno; +} _iconv_st; + +enum _CSTATE { S_BASIC, S_ATR, S_EXT, S_NONE }; + +#define have_nukta(isc_type) ( nukta_type[isc_type] != NULL ) +#define have_EXT(isc_type) ( EXT_type[isc_type] != NULL ) +#define FIRST_CHAR 0xA0 + +static int copy_to_outbuf(ucs_t uniid, char *buf, size_t buflen); + +static ucs_t +get_nukta(uchar iscii, int type) +{ + int indx = iscii - FIRST_CHAR; + int *iscii_nukta = nukta_type[type]; + + return ((indx >= 0) ? iscii_nukta[indx] : 0 ); +} + +static ucs_t +get_EXT(uchar iscii, int type) +{ + int indx = iscii - FIRST_CHAR; + int *iscii_EXT = EXT_type[type]; + + return ((indx >= 0) ? iscii_EXT[indx] : 0 ); +} + +static ucs_t +traverse_table(Entry *entry, int num, uchar iscii) +{ + int i=0; + ucs_t retucs=0; + + for ( ; i < num; ++i ) { + Entry en = entry[i]; + + if ( iscii < en.iscii ) break; + if ( iscii >= en.iscii && iscii < en.iscii + en.count ) { + retucs = en.ucs + ( iscii - en.iscii ); + break; + } + } + + return retucs; +} + +/* + * the copy_to_outbuf has to be called before the st->keepc needs to changed. + * if E2BIG error, keep st->keepc. Will flush it at the beginning of next + * _icv_iconv() invocation + */ +int +iscii_to_utf8(_iconv_st *st, char *buf, size_t buflen) +{ +#define DEV_ATR 0x42 + ucs_t uniid; + int nBytes=0; + ISCII isc_type = isc_TYPE[st->keepc[0] - DEV_ATR]; + Entries en = iscii_table[isc_type]; + /* unsigned int keepc0 = (unsigned int) (st->keepc[0] & ONEBYTE); */ + unsigned int keepc1 = (unsigned int) (st->keepc[1] & ONEBYTE); + unsigned int keepc2 = (unsigned int) (st->keepc[2] & ONEBYTE); + + if (keepc1 == 0xFF) { /* FFFD */ + if ( buflen < 3 ) { + errno = E2BIG; + return 0; + } + + *buf = (char)REPLACE_CHAR1; + *(buf+1) = (char)REPLACE_CHAR2; + *(buf+2) = (char)REPLACE_CHAR3; + return (3); + } + + if (keepc2 == 0) { /* Flush Single Character */ + + if (keepc1 & MSB) { /* ISCII - Non-Ascii Codepoints */ + uniid = traverse_table(en.entry, en.items, keepc1); + } else /* ASCII */ + uniid = keepc1; + + if ( (nBytes = copy_to_outbuf(uniid, buf, buflen)) == 0) goto E2big; + st->keepc[1] = 0; + + } else { + /* keepc[1] and keepc[2] != 0 */ + if (keepc1 & MSB) { + + switch (keepc1) + { + case ISC_ext: + + if ( have_EXT(isc_type) && is_valid_ext_code(keepc2) ) + { /* EXT only supported in Devanagari script */ + + uniid = get_EXT(keepc2, isc_type); + if ((nBytes = copy_to_outbuf(uniid, buf, buflen)) == 0) goto E2big; + } + else + errno = EILSEQ; + + st->keepc[1] = st->keepc[2] = 0; + break; + case ISC_halant: + /* test whether there has enough space to hold the converted bytes */ + if ((keepc2 == ISC_halant || keepc2 == ISC_nukta) && buflen < 6 ) + goto E2big; + + uniid = traverse_table(en.entry, en.items, keepc1); + if ((nBytes = copy_to_outbuf(uniid, buf, buflen)) == 0) goto E2big; + st->keepc[1] = st->keepc[2]; + + if ( keepc2 == ISC_halant || keepc2 == ISC_nukta ) + { + int nbytes_2 = 0; + if (keepc2 == ISC_halant) uniid = UNI_ZWNJ; /* explicit Halant */ + if (keepc2 == ISC_nukta) uniid = UNI_ZWJ; /* soft Halant */ + + if ((nbytes_2 = copy_to_outbuf(uniid, buf+nBytes, buflen)) == 0) goto E2big; + st->keepc[1] = st->keepc[2] = 0; + + nBytes += nbytes_2; + } + + break; + case ISC_danda: + if ( isc_type == DEV && keepc2 == ISC_danda ) + { /* only in Devanagari script, it works */ + uniid = UNI_DOUBLE_DANDA; + if ((nBytes = copy_to_outbuf(uniid, buf, buflen)) == 0) goto E2big; + st->keepc[1] = st->keepc[2] = 0; + + break; + } + + /* fall into default case, convert the DANDA if it isn't DOUBLE_DANDA */ + /* FALLTHRU */ + default: + + uniid = traverse_table(en.entry, en.items, keepc1); + + if ( have_nukta(isc_type) && keepc2 == ISC_nukta) { + /* then try to test whether it is Nukta Cases */ + int ucs; + + if (( ucs = get_nukta(keepc1, isc_type)) != 0 ) { + + uniid = ucs; + + if ( (nBytes = copy_to_outbuf(uniid, buf, buflen)) == 0) goto E2big; + st->keepc[1] = st->keepc[2] = 0; + } else { + if ( (nBytes = copy_to_outbuf(uniid, buf, buflen)) == 0) goto E2big; + st->keepc[1] = st->keepc[2]; + } + } else { + if ( (nBytes = copy_to_outbuf(uniid, buf, buflen)) == 0) goto E2big; + st->keepc[1] = st->keepc[2]; + } + break; + } /* end of switch */ + } else { /* ASCII */ + uniid = keepc1; + if ( (nBytes = copy_to_outbuf(uniid, buf, buflen)) == 0) goto E2big; + st->keepc[1] = st->keepc[2]; + } + st->keepc[2] = 0; + } + +E2big: + return nBytes; +} + +static int +copy_to_outbuf(ucs_t uniid, char *buf, size_t buflen) +{ + if (uniid > 0) { + if (uniid <= 0x7f) { + if (buflen < 1) { + errno = E2BIG; + return(0); + } + UTF8_SET1B(buf, uniid); + return (1); + } + + if (uniid >= 0x80 && uniid <= 0x7ff) { + if (buflen < 2) { + errno = E2BIG; + return(0); + } + UTF8_SET2B(buf, uniid); + return (2); + } + + if (uniid >= 0x800 && uniid <= 0xffff) { + if (buflen < 3) { + errno = E2BIG; + return(0); + } + UTF8_SET3B(buf, uniid); + return (3); + } + } else { /* Replacement Character */ + if ( buflen < 3 ) { + errno = E2BIG; + return 0; + } + + *buf = (char)REPLACE_CHAR1; + *(buf+1) = (char)REPLACE_CHAR2; + *(buf+2) = (char)REPLACE_CHAR3; + return (3); + } + + /* This code shouldn't be reached */ + return (0); +} + +/* + * Open; called from iconv_open() + */ +void * +_icv_open() +{ + _iconv_st *st; + + if ((st = (_iconv_st*)malloc(sizeof(_iconv_st))) == NULL) { + errno = ENOMEM; + return ((void*)-1); + } + + bzero(st, sizeof(_iconv_st)); + st->keepc[0] = DEV_ATR; + st->pState = S_BASIC; + + return ((void*)st); +} + +/* + * Close; called from iconv_close() + */ +void +_icv_close(_iconv_st *st) +{ + if (!st) + errno = EBADF; + else + free(st); +} + +/* + * Conversion routine; called from iconv() + */ +size_t +_icv_iconv(_iconv_st *st, char **inbuf, size_t *inbytesleft, + char **outbuf, size_t *outbytesleft) +{ + int n; + short curState; + + if (st == NULL) { + errno = EBADF; + return ((size_t) -1); + } + + if (inbuf == NULL || *inbuf == NULL) { /* Reset request */ + st->keepc[0] = DEV_ATR; + st->pState = S_BASIC; + st->_errno = 0; + return ((size_t)0); + } + + /* flush if possible */ + if ( st->_errno == E2BIG ) { + n = iscii_to_utf8(st, *outbuf, *outbytesleft); + (*outbuf) += n; + (*outbytesleft) -= n; + } + + st->_errno = errno = 0; /* reset internal and external errno */ + + /* a state machine for interpreting ISCII code */ + while (*inbytesleft > 0 && *outbytesleft > 0) { + unsigned int curChar = (unsigned int)(**inbuf & ONEBYTE); + unsigned int prevChar = (unsigned int)(st->keepc[1] & ONEBYTE); + + if (curChar == ISC_ext) + curState = S_EXT; + else if (curChar == ISC_atr) + curState = S_ATR; + else + curState = S_BASIC; + + switch (curState) { + case S_BASIC: + if (prevChar == 0) + st->keepc[1] = curChar; + else + st->keepc[2] = curChar; + + if (st->pState == S_ATR) { + /* clear the keepc[1], which is part of attribute */ + st->keepc[1] = 0; + /* change the attribute for Indian Script Fonts */ + if ((curChar >= 0x42) && (curChar <= 0x4b) && curChar != 0x46) { + st->keepc[0] = curChar; + } + /* other attributes such as display attributes would be ignored */ + } else { /* Handle Cases and Flush */ + + if ((curChar > 0 && curChar <= 0x7f) || prevChar != 0) { + n=iscii_to_utf8(st, *outbuf, *outbytesleft); + if (n > 0) { + (*outbuf) += n; + (*outbytesleft) -= n; + } else /* don't return immediately, need advance the *inbuf */ + st->_errno = errno; + } + } + break; + case S_ATR: + case S_EXT: /* Do nothing */ + if (st->pState == S_BASIC) { /* Flush */ + if ( st->keepc[1] == 0 ) + { + if (curState == S_EXT) st->keepc[1] = ISC_ext; + break; + } + n = iscii_to_utf8(st, *outbuf, *outbytesleft); + if (n > 0) { + (*outbuf) += n; + (*outbytesleft) -= n; + } else /* don't return immediately */ + st->_errno = errno; + + if (curState == S_EXT) st->keepc[1] = ISC_ext; + } else { + errno = EILSEQ; + return (size_t)-1; + } + + break; + default: /* should never come here */ + st->_errno = errno = EILSEQ; + st->pState = S_BASIC; /* reset state */ + break; + } + + st->pState = curState; + + (*inbuf)++; + (*inbytesleft)--; + + if (errno) + return(size_t)-1; + } + + if (*inbytesleft > 0 && *outbytesleft == 0) { + /* in this case, the st->_errno is zero */ + errno = E2BIG; + return(size_t)-1; + } + + return (size_t)(*inbytesleft); +} diff --git a/usr/src/lib/iconv_modules/hi_IN/iscii91%ea-iscii.c b/usr/src/lib/iconv_modules/hi_IN/iscii91%ea-iscii.c new file mode 100644 index 0000000000..a22609b09d --- /dev/null +++ b/usr/src/lib/iconv_modules/hi_IN/iscii91%ea-iscii.c @@ -0,0 +1,233 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ +/* + * Copyright(c) 2001 Sun Microsystems, Inc. + * All rights reserved. + */ +#include <stdio.h> +#include <errno.h> +#include <ctype.h> +#include <strings.h> +#include <stdlib.h> +#include "ea-iscii.h" + +#define MSB 0x80 +#define REPLACE_CHAR '?' + +typedef enum { SPACE, ASCII, ISCII } CONTEXT; + +typedef struct _icv_state { + CONTEXT context; +} _iconv_st; + +static uchar +traverse_table(Entry *entry , int num, uchar iscii, uchar *type) +{ + int i = 0; + uchar ea_iscii=0; + + *type = 0; + + for ( ; i < num; ++i) { + Entry en = entry[i]; + + if ( iscii < en.iscii ) break; + + if ( en.count == NUKTA || en.count == MATRA || en.count == + COMBINED_MATRA_NUKTA ) { + if ( iscii == en.iscii ) { + *type = en.count; + ea_iscii = en.ea_iscii; + break; + } + } else { + if ( iscii >= en.iscii && iscii < en.iscii + en.count ) { + ea_iscii = (iscii - en.iscii) + en.ea_iscii; + break; + } + } + } + + return ea_iscii; +} + +void * +_icv_open() +{ + _iconv_st *st; + + if ((st = (_iconv_st*)malloc(sizeof(_iconv_st))) == NULL) { + errno = ENOMEM; + return ((void*)-1); + } + + bzero(st, sizeof(_iconv_st)); + + return ((void*)st); +} + +/* + * Close; called from iconv_close() + */ +void +_icv_close(_iconv_st *st) +{ + if (!st) + errno = EBADF; + else + free(st); +} + +size_t +_icv_iconv(_iconv_st *st, char **inbuf, size_t *inbytesleft, + char **outbuf, size_t *outbytesleft) +{ + if (st == NULL) { + errno = EBADF; + return ((size_t) -1); + } + + if (inbuf == NULL || *inbuf == NULL) { /* Reset request. */ + return ((size_t)0); + } + + /* a state machine for interpreting ISCII code */ + while (*inbytesleft > 0 && *outbytesleft > 0) { + uchar c = (uchar)**inbuf; + + if ( c & MSB ) { + + uchar type, ea_iscii; + + if ( st->context != ISCII ) { + + if ( st->context != SPACE ) { + /* force to insert ' ' between ASCII and ISCII */ + **outbuf = 0x20; + (*outbuf)++; + (*outbytesleft)--; + st->context = SPACE; + } + + if ( *outbytesleft < 1 ) { + errno = E2BIG; + /* don't advance */ + return (size_t)-1; + } + + st->context = ISCII; + **outbuf = LEADING_BYTE; + (*outbuf)++; + (*outbytesleft)--; + } + + if ((ea_iscii = traverse_table(isc_eaiscii_tbl, + sizeof(isc_eaiscii_tbl)/sizeof(Entry), c, &type ))) { + switch ( type ) { + case MATRA: + if ( *outbytesleft < 2 ) { + errno = E2BIG; + return (size_t)-1; + } + + **outbuf = FIRST_VOWEL; + *(*outbuf+1) = ea_iscii; + (*outbuf) += 2; + (*outbytesleft) -= 2; + break; + case NUKTA: + if ( *outbytesleft < 2 ) { + errno = E2BIG; + return (size_t)-1; + } + + **outbuf = ea_iscii; + *(*outbuf+1) = NUKTA_VALUE; + (*outbuf) += 2; + (*outbytesleft) -= 2; + break; + case COMBINED_MATRA_NUKTA: + if ( *outbytesleft < 3 ) { + errno = E2BIG; + return (size_t)-1; + } + + **outbuf = FIRST_VOWEL; + *(*outbuf+1) = ea_iscii; + *(*outbuf+2) = NUKTA_VALUE; + (*outbuf) += 3; + (*outbytesleft) -= 3; + break; + case 0: + if ( *outbytesleft < 1 ) { + errno = E2BIG; + return (size_t)-1; + } + + **outbuf = ea_iscii; + (*outbuf)++; + (*outbytesleft)--; + break; + } + } else { /* REPLACE_CHAR */ + if ( *outbytesleft < 1 ) { + errno = E2BIG; + return (size_t)-1; + } + + **outbuf = REPLACE_CHAR; + (*outbuf)++; + (*outbytesleft)--; + } + } else { /* ASCII */ + if ( st->context == ISCII && !isspace(c) ) { + /* force to insert ' ' between ASCII and ISCII */ + **outbuf = 0x20; + (*outbuf)++; + (*outbytesleft)--; + st->context = SPACE; + } + + if ( *outbytesleft < 1 ) { + errno = E2BIG; + return (size_t)-1; + } + + **outbuf = c; + (*outbuf)++; + (*outbytesleft)--; + + st->context = ASCII; + if ( isspace(c) ) + st->context = SPACE; + } + + (*inbuf)++; + (*inbytesleft)--; + } + + if ( *inbytesleft > 0 && *outbytesleft == 0 ) { + errno = E2BIG; + return ((size_t)-1); + } + + return ((size_t)(*inbytesleft)); +} diff --git a/usr/src/lib/iconv_modules/hi_IN/iscii91%pc-iscii.c b/usr/src/lib/iconv_modules/hi_IN/iscii91%pc-iscii.c new file mode 100644 index 0000000000..4c2d403f49 --- /dev/null +++ b/usr/src/lib/iconv_modules/hi_IN/iscii91%pc-iscii.c @@ -0,0 +1,122 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ +/* + * Copyright(c) 2001 Sun Microsystems, Inc. + * All rights reserved. + */ +#include <stdio.h> +#include <errno.h> +#include <strings.h> +#include <stdlib.h> +#include "pc-iscii.h" + +#define MSB 0x80 +#define REPLACE_CHAR '?' + +typedef struct _icv_state { + int dummy; +} _iconv_st; + +static uchar +traverse_table(Entry *entry , int num, uchar iscii) +{ + int i = 0; + uchar pc_iscii=0; + + for ( ; i < num; ++i) { + Entry en = entry[i]; + + if ( iscii < en.iscii ) break; + if ( iscii >= en.iscii && iscii < en.iscii + en.count ) { + pc_iscii = (iscii - en.iscii) + en.pc_iscii; + break; + } + } + + return pc_iscii; +} + +void * +_icv_open() +{ + _iconv_st *st; + + if ((st = (_iconv_st*)malloc(sizeof(_iconv_st))) == NULL) { + errno = ENOMEM; + return ((void*)-1); + } + + bzero(st, sizeof(_iconv_st)); + + return ((void*)st); +} + +/* + * Close; called from iconv_close() + */ +void +_icv_close(_iconv_st *st) +{ + if (!st) + errno = EBADF; + else + free(st); +} + +size_t +_icv_iconv(_iconv_st *st, char **inbuf, size_t *inbytesleft, + char **outbuf, size_t *outbytesleft) +{ + if (st == NULL) { + errno = EBADF; + return ((size_t) -1); + } + + if (inbuf == NULL || *inbuf == NULL) { /* Reset request. */ + return ((size_t)0); + } + + /* a state machine for interpreting ISCII code */ + while (*inbytesleft > 0 && *outbytesleft > 0) { + uchar c = (uchar)**inbuf; + + if ( c & MSB ) { + uchar pc_iscii = traverse_table(isc_pciscii_tbl, + sizeof(isc_pciscii_tbl)/sizeof(Entry), c); + if ( pc_iscii ) **outbuf = pc_iscii; + else **outbuf = REPLACE_CHAR; + } else { /* ASCII */ + **outbuf = c; + } + + (*inbuf)++; + (*inbytesleft)--; + (*outbuf)++; + (*outbytesleft)--; + } + + if ( *inbytesleft > 0 && *outbytesleft == 0 ) { + errno = E2BIG; + return ((size_t)-1); + } + + return ((size_t)(*inbytesleft)); +} diff --git a/usr/src/lib/iconv_modules/hi_IN/pc-iscii%iscii91.c b/usr/src/lib/iconv_modules/hi_IN/pc-iscii%iscii91.c new file mode 100644 index 0000000000..5f0b32428b --- /dev/null +++ b/usr/src/lib/iconv_modules/hi_IN/pc-iscii%iscii91.c @@ -0,0 +1,122 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ +/* + * Copyright(c) 2001 Sun Microsystems, Inc. + * All rights reserved. + */ +#include <stdio.h> +#include <errno.h> +#include <strings.h> +#include <stdlib.h> +#include "pc-iscii.h" + +#define MSB 0x80 +#define REPLACE_CHAR '?' + +typedef struct _icv_state { + int dummy; +} _iconv_st; + +static uchar +traverse_table(Entry *entry , int num, uchar pc_iscii) +{ + int i=0; + uchar iscii=0; + + for ( ; i < num; ++i) { + Entry en = entry[i]; + + if ( pc_iscii < en.pc_iscii ) break; + if ( pc_iscii >= en.pc_iscii && pc_iscii < en.pc_iscii + en.count ) { + iscii = (pc_iscii - en.pc_iscii) + en.iscii; + break; + } + } + + return iscii; +} + +void * +_icv_open() +{ + _iconv_st *st; + + if ((st = (_iconv_st*)malloc(sizeof(_iconv_st))) == NULL) { + errno = ENOMEM; + return ((void*)-1); + } + + bzero(st, sizeof(_iconv_st)); + + return ((void*)st); +} + +/* + * Close; called from iconv_close() + */ +void +_icv_close(_iconv_st *st) +{ + if (!st) + errno = EBADF; + else + free(st); +} + +size_t +_icv_iconv(_iconv_st *st, char **inbuf, size_t *inbytesleft, + char **outbuf, size_t *outbytesleft) +{ + if (st == NULL) { + errno = EBADF; + return ((size_t) -1); + } + + if (inbuf == NULL || *inbuf == NULL) { /* Reset request. */ + return ((size_t)0); + } + + /* a state machine for interpreting ISCII code */ + while (*inbytesleft > 0 && *outbytesleft > 0) { + uchar c = (uchar)**inbuf; + + if ( c & MSB ) { + uchar iscii = traverse_table(pciscii_isc_tbl, + sizeof(pciscii_isc_tbl)/sizeof(Entry), c); + if ( iscii ) **outbuf = iscii; + else **outbuf = REPLACE_CHAR; + } else { /* ASCII */ + **outbuf = c; + } + + (*inbuf)++; + (*inbytesleft)--; + (*outbuf)++; + (*outbytesleft)--; + } + + if ( *inbytesleft > 0 && *outbytesleft == 0 ) { + errno = E2BIG; + return ((size_t)-1); + } + + return ((size_t)(*inbytesleft)); +} diff --git a/usr/src/lib/iconv_modules/hi_IN/sparc/Makefile b/usr/src/lib/iconv_modules/hi_IN/sparc/Makefile new file mode 100644 index 0000000000..f740398543 --- /dev/null +++ b/usr/src/lib/iconv_modules/hi_IN/sparc/Makefile @@ -0,0 +1,24 @@ +# +# This file and its contents are supplied under the terms of the +# Common Development and Distribution License ("CDDL"), version 1.0. +# You may only use this file in accordance with the terms of version +# 1.0 of the CDDL. +# +# A full copy of the text of the CDDL should have accompanied this +# source. A copy of the CDDL is also available via the Internet at +# http://www.illumos.org/license/CDDL. +# + +# +# Copyright 2017 Alexander Pyhalov +# + +include ../Makefile.com + +CFLAGS += -I.. -I../common/ -I../include/ + +ICONV_LIBS = $(PROGS:%=$(ICONV_DIR)/%) + +$(ICONV_LIBS) := FILEMODE= 755 + +install: all $(ICONV_DIR) .WAIT $(ICONV_LIBS) diff --git a/usr/src/lib/iconv_modules/hi_IN/sparcv9/Makefile b/usr/src/lib/iconv_modules/hi_IN/sparcv9/Makefile new file mode 100644 index 0000000000..adbd2dae78 --- /dev/null +++ b/usr/src/lib/iconv_modules/hi_IN/sparcv9/Makefile @@ -0,0 +1,25 @@ +# +# This file and its contents are supplied under the terms of the +# Common Development and Distribution License ("CDDL"), version 1.0. +# You may only use this file in accordance with the terms of version +# 1.0 of the CDDL. +# +# A full copy of the text of the CDDL should have accompanied this +# source. A copy of the CDDL is also available via the Internet at +# http://www.illumos.org/license/CDDL. +# + +# +# Copyright 2017 Alexander Pyhalov +# + +include ../Makefile.com +include ../../Makefile.iconv.64 + +CFLAGS += -I.. -I../common/ -I../include/ + +ICONV_LIBS = $(PROGS:%=$(ICONV_DIR_64)/%) + +$(ICONV_LIBS) := FILEMODE= 755 + +install: all $(ICONV_DIR) .WAIT $(ICONV_LIBS) diff --git a/usr/src/lib/iconv_modules/hi_IN/testData/EA-ISCII b/usr/src/lib/iconv_modules/hi_IN/testData/EA-ISCII new file mode 100644 index 0000000000..159c5e688b --- /dev/null +++ b/usr/src/lib/iconv_modules/hi_IN/testData/EA-ISCII @@ -0,0 +1,109 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + * + * Copyright 2006 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + * + */ + + EA-ISCII ISCII91 +/* 'x' at the beginning of a word indicates that the word is an Indian script one */ + + 0x41 0xA1 + 0x42 0xA2 +/* 0x78 is NUKTA */ + 0x42 NUKTA 0xA3 +/* the first vowel */ + 0x43 0xA4 +/* the first vowel followed by Matra to represent another vowel */ + 0x43 0x6B 0xA5 + 0x43 0x6C 0xA6 + 0x43 0x6D 0xA7 + 0x43 0x6E 0xA8 + 0x43 0x6F 0xA9 + 0x43 0x70 0xAA + 0x43 0x71 0xAB + 0x43 0x72 0xAC + 0x43 0x73 0xAD + 0x43 0x73 NUKTA 0xAE + 0x43 0x74 0xAF + 0x43 0x75 0xB0 + 0x43 0x76 0xB1 + 0x43 0x76 NUKTA 0xB2 + + 0x44 0xB3 + 0x45 0xB4 + 0x46 0xB5 + 0x47 0xB6 + 0x47 NUKTA 0xB7 + 0x48 0xB8 + 0x49 0xB9 + 0x4A 0xBA + 0x4B 0xBB + 0x4B NUKTA 0xBC + 0x4C 0xBD + 0x4D 0xBE + 0x4E 0xBF + 0x4F 0xC0 + 0x50 0xC1 + 0x51 0xC2 + 0x52 0xC3 + 0x53 0xC4 + 0x54 0xC5 + 0x55 0xC6 + 0x55 NUKTA 0xC7 + 0x56 0xC8 + 0x57 0xC9 + 0x58 0xCA + 0x59 0xCB + 0x5A 0xCC + + 0x61 0xCD + 0x61 NUKTA 0xCE + 0x62 0xCF + 0x63 0xD0 + 0x64 0xD1 + 0x65 0xD2 + 0x65 NUKTA 0xD3 + 0x66 0xD4 + 0x67 0xD5 + 0x68 0xD6 + 0x69 0xD7 + 0x6A 0xD8 + 0x6A NUKTA 0xD9 + + 0x6B 0xDA + 0x6C 0xDB + 0x6D 0xDC + 0x6E 0xDD + 0x6F 0xDE + 0x70 0xDF + 0x71 0xE0 + 0x72 0xE1 + 0x73 0xE2 + 0x73 NUKTA 0xE3 + 0x74 0xE4 + 0x75 0xE5 + 0x76 0xE6 + 0x76 NUKTA 0xE7 + 0x77 0xE8 + 0x78 0xE9 + 0x79 0xEA + 0x7A 0xEF diff --git a/usr/src/lib/iconv_modules/hi_IN/testData/HindiAll.iscii b/usr/src/lib/iconv_modules/hi_IN/testData/HindiAll.iscii new file mode 100644 index 0000000000..37c243ee83 --- /dev/null +++ b/usr/src/lib/iconv_modules/hi_IN/testData/HindiAll.iscii @@ -0,0 +1,4154 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright 2006 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# +³ +Ïè³ +³¢ +Ïè³¢ +³Ú +Ïè³Ú +³Ú¢ +Ïè³Ú¢ +³Û +Ïè³Û +³Û¢ +Ïè³Û¢ +³Ü +Ïè³Ü +³Ü¢ +Ïè³Ü¢ +³Ý +Ïè³Ý +³Ý¢ +Ïè³Ý¢ +³Þ +Ïè³Þ +³Þ¢ +Ïè³Þ¢ +³ß +Ïè³ß +³ß¢ +Ïè³ß¢ +³á +Ïè³á +³á¢ +Ïè³á¢ +³â +Ïè³â +³â¢ +Ïè³â¢ +³å +Ïè³å +³å¢ +Ïè³å¢ +³æ +Ïè³æ +³æ¢ +Ïè³æ¢ +³ç +Ïè³ç +³ç¢ +Ïè³ç¢ +³é +Ïè³é +³é¢ +Ïè³é¢ +³éÚ +Ïè³éÚ +³éÚ¢ +Ïè³éÚ¢ +³éÛ +Ïè³éÛ +³éÛ¢ +Ïè³éÛ¢ +³éÜ +Ïè³éÜ +³éÜ¢ +Ïè³éÜ¢ +³éÝ +Ïè³éÝ +³éÝ¢ +Ïè³éÝ¢ +³éÞ +Ïè³éÞ +³éÞ¢ +Ïè³éÞ¢ +³éß +Ïè³éß +³éߢ +Ïè³éߢ +³éá +Ïè³éá +³éᢠ+Ïè³éᢠ+³éâ +Ïè³éâ +³é⢠+Ïè³é⢠+³éå +Ïè³éå +³éå¢ +Ïè³éå¢ +³éæ +Ïè³éæ +³éæ¢ +Ïè³éæ¢ +³éç +Ïè³éç +³éç¢ +Ïè³éç¢ +´ +Ïè´ +´¢ +Ïè´¢ +´Ú +Ïè´Ú +´Ú¢ +Ïè´Ú¢ +´Û +Ïè´Û +´Û¢ +Ïè´Û¢ +´Ü +Ïè´Ü +´Ü¢ +Ïè´Ü¢ +´Ý +Ïè´Ý +´Ý¢ +Ïè´Ý¢ +´Þ +Ïè´Þ +´Þ¢ +Ïè´Þ¢ +´ß +Ïè´ß +´ß¢ +Ïè´ß¢ +´á +Ïè´á +´á¢ +Ïè´á¢ +´â +Ïè´â +´â¢ +Ïè´â¢ +´å +Ïè´å +´å¢ +Ïè´å¢ +´æ +Ïè´æ +´æ¢ +Ïè´æ¢ +´ç +Ïè´ç +´ç¢ +Ïè´ç¢ +´é +Ïè´é +´é¢ +Ïè´é¢ +´éÚ +Ïè´éÚ +´éÚ¢ +Ïè´éÚ¢ +´éÛ +Ïè´éÛ +´éÛ¢ +Ïè´éÛ¢ +´éÜ +Ïè´éÜ +´éÜ¢ +Ïè´éÜ¢ +´éÝ +Ïè´éÝ +´éÝ¢ +Ïè´éÝ¢ +´éÞ +Ïè´éÞ +´éÞ¢ +Ïè´éÞ¢ +´éß +Ïè´éß +´éߢ +Ïè´éߢ +´éá +Ïè´éá +´éᢠ+Ïè´éᢠ+´éâ +Ïè´éâ +´é⢠+Ïè´é⢠+´éå +Ïè´éå +´éå¢ +Ïè´éå¢ +´éæ +Ïè´éæ +´éæ¢ +Ïè´éæ¢ +´éç +Ïè´éç +´éç¢ +Ïè´éç¢ +µ +Ïèµ +µ¢ +Ïèµ¢ +µÚ +ÏèµÚ +µÚ¢ +ÏèµÚ¢ +µÛ +ÏèµÛ +µÛ¢ +ÏèµÛ¢ +µÜ +ÏèµÜ +µÜ¢ +ÏèµÜ¢ +µÝ +ÏèµÝ +µÝ¢ +ÏèµÝ¢ +µÞ +ÏèµÞ +µÞ¢ +ÏèµÞ¢ +µß +Ïèµß +µß¢ +Ïèµß¢ +µá +Ïèµá +µá¢ +Ïèµá¢ +µâ +Ïèµâ +µâ¢ +Ïèµâ¢ +µå +Ïèµå +µå¢ +Ïèµå¢ +µæ +Ïèµæ +µæ¢ +Ïèµæ¢ +µç +Ïèµç +µç¢ +Ïèµç¢ +µé +Ïèµé +µé¢ +Ïèµé¢ +µéÚ +ÏèµéÚ +µéÚ¢ +ÏèµéÚ¢ +µéÛ +ÏèµéÛ +µéÛ¢ +ÏèµéÛ¢ +µéÜ +ÏèµéÜ +µéÜ¢ +ÏèµéÜ¢ +µéÝ +ÏèµéÝ +µéÝ¢ +ÏèµéÝ¢ +µéÞ +ÏèµéÞ +µéÞ¢ +ÏèµéÞ¢ +µéß +Ïèµéß +µéߢ +Ïèµéߢ +µéá +Ïèµéá +µéᢠ+Ïèµéᢠ+µéâ +Ïèµéâ +µé⢠+Ïèµé⢠+µéå +Ïèµéå +µéå¢ +Ïèµéå¢ +µéæ +Ïèµéæ +µéæ¢ +Ïèµéæ¢ +µéç +Ïèµéç +µéç¢ +Ïèµéç¢ +¶ +Ïè¶ +¶¢ +Ï趢 +¶Ú +Ïè¶Ú +¶Ú¢ +Ïè¶Ú¢ +¶Û +Ïè¶Û +¶Û¢ +Ïè¶Û¢ +¶Ü +Ïè¶Ü +¶Ü¢ +Ïè¶Ü¢ +¶Ý +Ïè¶Ý +¶Ý¢ +Ïè¶Ý¢ +¶Þ +Ïè¶Þ +¶Þ¢ +Ïè¶Þ¢ +¶ß +Ïè¶ß +¶ß¢ +Ïè¶ß¢ +¶á +Ïè¶á +¶á¢ +Ïè¶á¢ +¶â +Ïè¶â +¶â¢ +Ïè¶â¢ +¶å +Ïè¶å +¶å¢ +Ïè¶å¢ +¶æ +Ïè¶æ +¶æ¢ +Ïè¶æ¢ +¶ç +Ïè¶ç +¶ç¢ +Ïè¶ç¢ +· +Ïè· +·¢ +Ïè·¢ +·Ú +Ïè·Ú +·Ú¢ +Ïè·Ú¢ +·Û +Ïè·Û +·Û¢ +Ïè·Û¢ +·Ü +Ïè·Ü +·Ü¢ +Ïè·Ü¢ +·Ý +Ïè·Ý +·Ý¢ +Ïè·Ý¢ +·Þ +Ïè·Þ +·Þ¢ +Ïè·Þ¢ +·ß +Ïè·ß +·ß¢ +Ïè·ß¢ +·á +Ïè·á +·á¢ +Ïè·á¢ +·â +Ïè·â +·â¢ +Ïè·â¢ +·å +Ïè·å +·å¢ +Ïè·å¢ +·æ +Ïè·æ +·æ¢ +Ïè·æ¢ +·ç +Ïè·ç +·ç¢ +Ïè·ç¢ +¸ +Ïè¸ +¸¢ +Ï踢 +¸Ú +Ïè¸Ú +¸Ú¢ +Ïè¸Ú¢ +¸Û +Ïè¸Û +¸Û¢ +Ïè¸Û¢ +¸Ü +Ïè¸Ü +¸Ü¢ +Ïè¸Ü¢ +¸Ý +Ïè¸Ý +¸Ý¢ +Ïè¸Ý¢ +¸Þ +Ïè¸Þ +¸Þ¢ +Ïè¸Þ¢ +¸ß +Ïè¸ß +¸ß¢ +Ïè¸ß¢ +¸á +Ïè¸á +¸á¢ +Ïè¸á¢ +¸â +Ïè¸â +¸â¢ +Ïè¸â¢ +¸å +Ïè¸å +¸å¢ +Ïè¸å¢ +¸æ +Ïè¸æ +¸æ¢ +Ïè¸æ¢ +¸ç +Ïè¸ç +¸ç¢ +Ïè¸ç¢ +¹ +Ïè¹ +¹¢ +Ïè¹¢ +¹Ú +Ïè¹Ú +¹Ú¢ +Ïè¹Ú¢ +¹Û +Ïè¹Û +¹Û¢ +Ïè¹Û¢ +¹Ü +Ïè¹Ü +¹Ü¢ +Ïè¹Ü¢ +¹Ý +Ïè¹Ý +¹Ý¢ +Ïè¹Ý¢ +¹Þ +Ïè¹Þ +¹Þ¢ +Ïè¹Þ¢ +¹ß +Ïè¹ß +¹ß¢ +Ïè¹ß¢ +¹á +Ïè¹á +¹á¢ +Ïè¹á¢ +¹â +Ïè¹â +¹â¢ +Ïè¹â¢ +¹å +Ïè¹å +¹å¢ +Ïè¹å¢ +¹æ +Ïè¹æ +¹æ¢ +Ïè¹æ¢ +¹ç +Ïè¹ç +¹ç¢ +Ïè¹ç¢ +º +Ïèº +º¢ +Ï躢 +ºÚ +ÏèºÚ +ºÚ¢ +ÏèºÚ¢ +ºÛ +ÏèºÛ +ºÛ¢ +ÏèºÛ¢ +ºÜ +ÏèºÜ +ºÜ¢ +ÏèºÜ¢ +ºÝ +ÏèºÝ +ºÝ¢ +ÏèºÝ¢ +ºÞ +ÏèºÞ +ºÞ¢ +ÏèºÞ¢ +ºß +Ïèºß +ºß¢ +Ïèºß¢ +ºá +Ïèºá +ºá¢ +Ïèºá¢ +ºâ +Ïèºâ +ºâ¢ +Ïèºâ¢ +ºå +Ïèºå +ºå¢ +Ïèºå¢ +ºæ +Ïèºæ +ºæ¢ +Ïèºæ¢ +ºç +Ïèºç +ºç¢ +Ïèºç¢ +ºé +Ïèºé +ºé¢ +Ïèºé¢ +ºéÚ +ÏèºéÚ +ºéÚ¢ +ÏèºéÚ¢ +ºéÛ +ÏèºéÛ +ºéÛ¢ +ÏèºéÛ¢ +ºéÜ +ÏèºéÜ +ºéÜ¢ +ÏèºéÜ¢ +ºéÝ +ÏèºéÝ +ºéÝ¢ +ÏèºéÝ¢ +ºéÞ +ÏèºéÞ +ºéÞ¢ +ÏèºéÞ¢ +ºéß +Ïèºéß +ºéߢ +Ïèºéߢ +ºéá +Ïèºéá +ºéᢠ+Ïèºéᢠ+ºéâ +Ïèºéâ +ºé⢠+Ïèºé⢠+ºéå +Ïèºéå +ºéå¢ +Ïèºéå¢ +ºéæ +Ïèºéæ +ºéæ¢ +Ïèºéæ¢ +ºéç +Ïèºéç +ºéç¢ +Ïèºéç¢ +» +Ïè» +»¢ +Ï転 +»Ú +Ïè»Ú +»Ú¢ +Ïè»Ú¢ +»Û +Ïè»Û +»Û¢ +Ïè»Û¢ +»Ü +Ïè»Ü +»Ü¢ +Ïè»Ü¢ +»Ý +Ïè»Ý +»Ý¢ +Ïè»Ý¢ +»Þ +Ïè»Þ +»Þ¢ +Ïè»Þ¢ +»ß +Ïè»ß +»ß¢ +Ïè»ß¢ +»á +Ïè»á +»á¢ +Ïè»á¢ +»â +Ïè»â +»â¢ +Ïè»â¢ +»å +Ïè»å +»å¢ +Ïè»å¢ +»æ +Ïè»æ +»æ¢ +Ïè»æ¢ +»ç +Ïè»ç +»ç¢ +Ïè»ç¢ +¼ +Ïè¼ +¼¢ +Ïè¼¢ +¼Ú +Ïè¼Ú +¼Ú¢ +Ïè¼Ú¢ +¼Û +Ïè¼Û +¼Û¢ +Ïè¼Û¢ +¼Ü +Ïè¼Ü +¼Ü¢ +Ïè¼Ü¢ +¼Ý +Ïè¼Ý +¼Ý¢ +Ïè¼Ý¢ +¼Þ +Ïè¼Þ +¼Þ¢ +Ïè¼Þ¢ +¼ß +Ïè¼ß +¼ß¢ +Ïè¼ß¢ +¼á +Ïè¼á +¼á¢ +Ïè¼á¢ +¼â +Ïè¼â +¼â¢ +Ïè¼â¢ +¼å +Ïè¼å +¼å¢ +Ïè¼å¢ +¼æ +Ïè¼æ +¼æ¢ +Ïè¼æ¢ +¼ç +Ïè¼ç +¼ç¢ +Ïè¼ç¢ +½ +Ïè½ +½¢ +Ïè½¢ +½Ú +Ïè½Ú +½Ú¢ +Ïè½Ú¢ +½Û +Ïè½Û +½Û¢ +Ïè½Û¢ +½Ü +Ïè½Ü +½Ü¢ +Ïè½Ü¢ +½Ý +Ïè½Ý +½Ý¢ +Ïè½Ý¢ +½Þ +Ïè½Þ +½Þ¢ +Ïè½Þ¢ +½ß +Ïè½ß +½ß¢ +Ïè½ß¢ +½á +Ïè½á +½á¢ +Ïè½á¢ +½â +Ïè½â +½â¢ +Ïè½â¢ +½å +Ïè½å +½å¢ +Ïè½å¢ +½æ +Ïè½æ +½æ¢ +Ïè½æ¢ +½ç +Ïè½ç +½ç¢ +Ïè½ç¢ +¾ +Ïè¾ +¾¢ +Ïè¾¢ +¾Ú +Ïè¾Ú +¾Ú¢ +Ïè¾Ú¢ +¾Û +Ïè¾Û +¾Û¢ +Ïè¾Û¢ +¾Ü +Ïè¾Ü +¾Ü¢ +Ïè¾Ü¢ +¾Ý +Ïè¾Ý +¾Ý¢ +Ïè¾Ý¢ +¾Þ +Ïè¾Þ +¾Þ¢ +Ïè¾Þ¢ +¾ß +Ïè¾ß +¾ß¢ +Ïè¾ß¢ +¾á +Ïè¾á +¾á¢ +Ïè¾á¢ +¾â +Ïè¾â +¾â¢ +Ïè¾â¢ +¾å +Ïè¾å +¾å¢ +Ïè¾å¢ +¾æ +Ïè¾æ +¾æ¢ +Ïè¾æ¢ +¾ç +Ïè¾ç +¾ç¢ +Ïè¾ç¢ +¿ +Ïè¿ +¿¢ +Ïè¿¢ +¿Ú +Ïè¿Ú +¿Ú¢ +Ïè¿Ú¢ +¿Û +Ïè¿Û +¿Û¢ +Ïè¿Û¢ +¿Ü +Ïè¿Ü +¿Ü¢ +Ïè¿Ü¢ +¿Ý +Ïè¿Ý +¿Ý¢ +Ïè¿Ý¢ +¿Þ +Ïè¿Þ +¿Þ¢ +Ïè¿Þ¢ +¿ß +Ïè¿ß +¿ß¢ +Ïè¿ß¢ +¿á +Ïè¿á +¿á¢ +Ïè¿á¢ +¿â +Ïè¿â +¿â¢ +Ïè¿â¢ +¿å +Ïè¿å +¿å¢ +Ïè¿å¢ +¿æ +Ïè¿æ +¿æ¢ +Ïè¿æ¢ +¿ç +Ïè¿ç +¿ç¢ +Ïè¿ç¢ +¿é +Ïè¿é +¿é¢ +Ïè¿é¢ +¿éÚ +Ïè¿éÚ +¿éÚ¢ +Ïè¿éÚ¢ +¿éÛ +Ïè¿éÛ +¿éÛ¢ +Ïè¿éÛ¢ +¿éÜ +Ïè¿éÜ +¿éÜ¢ +Ïè¿éÜ¢ +¿éÝ +Ïè¿éÝ +¿éÝ¢ +Ïè¿éÝ¢ +¿éÞ +Ïè¿éÞ +¿éÞ¢ +Ïè¿éÞ¢ +¿éß +Ïè¿éß +¿éߢ +Ïè¿éߢ +¿éá +Ïè¿éá +¿éᢠ+Ïè¿éᢠ+¿éâ +Ïè¿éâ +¿é⢠+Ïè¿é⢠+¿éå +Ïè¿éå +¿éå¢ +Ïè¿éå¢ +¿éæ +Ïè¿éæ +¿éæ¢ +Ïè¿éæ¢ +¿éç +Ïè¿éç +¿éç¢ +Ïè¿éç¢ +À +ÏèÀ +À¢ +ÏèÀ¢ +ÀÚ +ÏèÀÚ +ÀÚ¢ +ÏèÀÚ¢ +ÀÛ +ÏèÀÛ +ÀÛ¢ +ÏèÀÛ¢ +ÀÜ +ÏèÀÜ +ÀÜ¢ +ÏèÀÜ¢ +ÀÝ +ÏèÀÝ +ÀÝ¢ +ÏèÀÝ¢ +ÀÞ +ÏèÀÞ +ÀÞ¢ +ÏèÀÞ¢ +Àß +ÏèÀß +Àߢ +ÏèÀߢ +Àá +ÏèÀá +Àᢠ+ÏèÀᢠ+Àâ +ÏèÀâ +À⢠+ÏèÀ⢠+Àå +ÏèÀå +Àå¢ +ÏèÀå¢ +Àæ +ÏèÀæ +Àæ¢ +ÏèÀæ¢ +Àç +ÏèÀç +Àç¢ +ÏèÀç¢ +Àé +ÏèÀé +Àé¢ +ÏèÀé¢ +ÀéÚ +ÏèÀéÚ +ÀéÚ¢ +ÏèÀéÚ¢ +ÀéÛ +ÏèÀéÛ +ÀéÛ¢ +ÏèÀéÛ¢ +ÀéÜ +ÏèÀéÜ +ÀéÜ¢ +ÏèÀéÜ¢ +ÀéÝ +ÏèÀéÝ +ÀéÝ¢ +ÏèÀéÝ¢ +ÀéÞ +ÏèÀéÞ +ÀéÞ¢ +ÏèÀéÞ¢ +Àéß +ÏèÀéß +Àéߢ +ÏèÀéߢ +Àéá +ÏèÀéá +Àéᢠ+ÏèÀéᢠ+Àéâ +ÏèÀéâ +Àé⢠+ÏèÀé⢠+Àéå +ÏèÀéå +Àéå¢ +ÏèÀéå¢ +Àéæ +ÏèÀéæ +Àéæ¢ +ÏèÀéæ¢ +Àéç +ÏèÀéç +Àéç¢ +ÏèÀéç¢ +Á +ÏèÁ +Á¢ +ÏèÁ¢ +ÁÚ +ÏèÁÚ +ÁÚ¢ +ÏèÁÚ¢ +ÁÛ +ÏèÁÛ +ÁÛ¢ +ÏèÁÛ¢ +ÁÜ +ÏèÁÜ +ÁÜ¢ +ÏèÁÜ¢ +ÁÝ +ÏèÁÝ +ÁÝ¢ +ÏèÁÝ¢ +ÁÞ +ÏèÁÞ +ÁÞ¢ +ÏèÁÞ¢ +Áß +ÏèÁß +Áߢ +ÏèÁߢ +Áá +ÏèÁá +Áᢠ+ÏèÁᢠ+Áâ +ÏèÁâ +Á⢠+ÏèÁ⢠+Áå +ÏèÁå +Áå¢ +ÏèÁå¢ +Áæ +ÏèÁæ +Áæ¢ +ÏèÁæ¢ +Áç +ÏèÁç +Áç¢ +ÏèÁç¢ + +Ïè +¢ +Ïè¢ +ÂÚ +ÏèÂÚ +ÂÚ¢ +ÏèÂÚ¢ +ÂÛ +ÏèÂÛ +ÂÛ¢ +ÏèÂÛ¢ +ÂÜ +ÏèÂÜ +ÂÜ¢ +ÏèÂÜ¢ +ÂÝ +ÏèÂÝ +ÂÝ¢ +ÏèÂÝ¢ +ÂÞ +ÏèÂÞ +ÂÞ¢ +ÏèÂÞ¢ +Âß +ÏèÂß +Âߢ +ÏèÂߢ +Âá +ÏèÂá +Âᢠ+ÏèÂᢠ+Ââ +ÏèÂâ +Â⢠+ÏèÂ⢠+Âå +ÏèÂå +Âå¢ +ÏèÂå¢ +Âæ +ÏèÂæ +Âæ¢ +ÏèÂæ¢ +Âç +ÏèÂç +Âç¢ +ÏèÂç¢ +à +Ïèà +â +Ïèâ +ÃÚ +ÏèÃÚ +ÃÚ¢ +ÏèÃÚ¢ +ÃÛ +ÏèÃÛ +ÃÛ¢ +ÏèÃÛ¢ +ÃÜ +ÏèÃÜ +ÃÜ¢ +ÏèÃÜ¢ +ÃÝ +ÏèÃÝ +ÃÝ¢ +ÏèÃÝ¢ +ÃÞ +ÏèÃÞ +ÃÞ¢ +ÏèÃÞ¢ +Ãß +ÏèÃß +Ãߢ +ÏèÃߢ +Ãá +ÏèÃá +Ãᢠ+ÏèÃᢠ+Ãâ +ÏèÃâ +Ã⢠+ÏèÃ⢠+Ãå +ÏèÃå +Ãå¢ +ÏèÃå¢ +Ãæ +ÏèÃæ +Ãæ¢ +ÏèÃæ¢ +Ãç +ÏèÃç +Ãç¢ +ÏèÃç¢ +Ä +ÏèÄ +Ä¢ +ÏèÄ¢ +ÄÚ +ÏèÄÚ +ÄÚ¢ +ÏèÄÚ¢ +ÄÛ +ÏèÄÛ +ÄÛ¢ +ÏèÄÛ¢ +ÄÜ +ÏèÄÜ +ÄÜ¢ +ÏèÄÜ¢ +ÄÝ +ÏèÄÝ +ÄÝ¢ +ÏèÄÝ¢ +ÄÞ +ÏèÄÞ +ÄÞ¢ +ÏèÄÞ¢ +Äß +ÏèÄß +Äߢ +ÏèÄߢ +Äá +ÏèÄá +Äᢠ+ÏèÄᢠ+Äâ +ÏèÄâ +Ä⢠+ÏèÄ⢠+Äå +ÏèÄå +Äå¢ +ÏèÄå¢ +Äæ +ÏèÄæ +Äæ¢ +ÏèÄæ¢ +Äç +ÏèÄç +Äç¢ +ÏèÄç¢ +Å +ÏèÅ +Å¢ +ÏèÅ¢ +ÅÚ +ÏèÅÚ +ÅÚ¢ +ÏèÅÚ¢ +ÅÛ +ÏèÅÛ +ÅÛ¢ +ÏèÅÛ¢ +ÅÜ +ÏèÅÜ +ÅÜ¢ +ÏèÅÜ¢ +ÅÝ +ÏèÅÝ +ÅÝ¢ +ÏèÅÝ¢ +ÅÞ +ÏèÅÞ +ÅÞ¢ +ÏèÅÞ¢ +Åß +ÏèÅß +Åߢ +ÏèÅߢ +Åá +ÏèÅá +Åᢠ+ÏèÅᢠ+Åâ +ÏèÅâ +Å⢠+ÏèÅ⢠+Åå +ÏèÅå +Åå¢ +ÏèÅå¢ +Åæ +ÏèÅæ +Åæ¢ +ÏèÅæ¢ +Åç +ÏèÅç +Åç¢ +ÏèÅç¢ +Æ +ÏèÆ +Æ¢ +ÏèÆ¢ +ÆÚ +ÏèÆÚ +ÆÚ¢ +ÏèÆÚ¢ +ÆÛ +ÏèÆÛ +ÆÛ¢ +ÏèÆÛ¢ +ÆÜ +ÏèÆÜ +ÆÜ¢ +ÏèÆÜ¢ +ÆÝ +ÏèÆÝ +ÆÝ¢ +ÏèÆÝ¢ +ÆÞ +ÏèÆÞ +ÆÞ¢ +ÏèÆÞ¢ +Æß +ÏèÆß +Æߢ +ÏèÆߢ +Æá +ÏèÆá +Æᢠ+ÏèÆᢠ+Æâ +ÏèÆâ +Æ⢠+ÏèÆ⢠+Æå +ÏèÆå +Æå¢ +ÏèÆå¢ +Ææ +ÏèÆæ +Ææ¢ +ÏèÆæ¢ +Æç +ÏèÆç +Æç¢ +ÏèÆç¢ +È +ÏèÈ +È¢ +ÏèÈ¢ +ÈÚ +ÏèÈÚ +ÈÚ¢ +ÏèÈÚ¢ +ÈÛ +ÏèÈÛ +ÈÛ¢ +ÏèÈÛ¢ +ÈÜ +ÏèÈÜ +ÈÜ¢ +ÏèÈÜ¢ +ÈÝ +ÏèÈÝ +ÈÝ¢ +ÏèÈÝ¢ +ÈÞ +ÏèÈÞ +ÈÞ¢ +ÏèÈÞ¢ +Èß +ÏèÈß +Èߢ +ÏèÈߢ +Èá +ÏèÈá +Èᢠ+ÏèÈᢠ+Èâ +ÏèÈâ +È⢠+ÏèÈ⢠+Èå +ÏèÈå +Èå¢ +ÏèÈå¢ +Èæ +ÏèÈæ +Èæ¢ +ÏèÈæ¢ +Èç +ÏèÈç +Èç¢ +ÏèÈç¢ +É +ÏèÉ +É¢ +ÏèÉ¢ +ÉÚ +ÏèÉÚ +ÉÚ¢ +ÏèÉÚ¢ +ÉÛ +ÏèÉÛ +ÉÛ¢ +ÏèÉÛ¢ +ÉÜ +ÏèÉÜ +ÉÜ¢ +ÏèÉÜ¢ +ÉÝ +ÏèÉÝ +ÉÝ¢ +ÏèÉÝ¢ +ÉÞ +ÏèÉÞ +ÉÞ¢ +ÏèÉÞ¢ +Éß +ÏèÉß +Éߢ +ÏèÉߢ +Éá +ÏèÉá +Éᢠ+ÏèÉᢠ+Éâ +ÏèÉâ +É⢠+ÏèÉ⢠+Éå +ÏèÉå +Éå¢ +ÏèÉå¢ +Éæ +ÏèÉæ +Éæ¢ +ÏèÉæ¢ +Éç +ÏèÉç +Éç¢ +ÏèÉç¢ +Éé +ÏèÉé +Éé¢ +ÏèÉé¢ +ÉéÚ +ÏèÉéÚ +ÉéÚ¢ +ÏèÉéÚ¢ +ÉéÛ +ÏèÉéÛ +ÉéÛ¢ +ÏèÉéÛ¢ +ÉéÜ +ÏèÉéÜ +ÉéÜ¢ +ÏèÉéÜ¢ +ÉéÝ +ÏèÉéÝ +ÉéÝ¢ +ÏèÉéÝ¢ +ÉéÞ +ÏèÉéÞ +ÉéÞ¢ +ÏèÉéÞ¢ +Ééß +ÏèÉéß +Ééߢ +ÏèÉéߢ +Ééá +ÏèÉéá +Ééᢠ+ÏèÉéᢠ+Ééâ +ÏèÉéâ +Éé⢠+ÏèÉé⢠+Ééå +ÏèÉéå +Ééå¢ +ÏèÉéå¢ +Ééæ +ÏèÉéæ +Ééæ¢ +ÏèÉéæ¢ +Ééç +ÏèÉéç +Ééç¢ +ÏèÉéç¢ +Ê +ÏèÊ +Ê¢ +ÏèÊ¢ +ÊÚ +ÏèÊÚ +ÊÚ¢ +ÏèÊÚ¢ +ÊÛ +ÏèÊÛ +ÊÛ¢ +ÏèÊÛ¢ +ÊÜ +ÏèÊÜ +ÊÜ¢ +ÏèÊÜ¢ +ÊÝ +ÏèÊÝ +ÊÝ¢ +ÏèÊÝ¢ +ÊÞ +ÏèÊÞ +ÊÞ¢ +ÏèÊÞ¢ +Êß +ÏèÊß +Êߢ +ÏèÊߢ +Êá +ÏèÊá +Êᢠ+ÏèÊᢠ+Êâ +ÏèÊâ +Ê⢠+ÏèÊ⢠+Êå +ÏèÊå +Êå¢ +ÏèÊå¢ +Êæ +ÏèÊæ +Êæ¢ +ÏèÊæ¢ +Êç +ÏèÊç +Êç¢ +ÏèÊç¢ +Ë +ÏèË +Ë¢ +ÏèË¢ +ËÚ +ÏèËÚ +ËÚ¢ +ÏèËÚ¢ +ËÛ +ÏèËÛ +ËÛ¢ +ÏèËÛ¢ +ËÜ +ÏèËÜ +ËÜ¢ +ÏèËÜ¢ +ËÝ +ÏèËÝ +ËÝ¢ +ÏèËÝ¢ +ËÞ +ÏèËÞ +ËÞ¢ +ÏèËÞ¢ +Ëß +ÏèËß +Ëߢ +ÏèËߢ +Ëá +ÏèËá +Ëᢠ+ÏèËᢠ+Ëâ +ÏèËâ +Ë⢠+ÏèË⢠+Ëå +ÏèËå +Ëå¢ +ÏèËå¢ +Ëæ +ÏèËæ +Ëæ¢ +ÏèËæ¢ +Ëç +ÏèËç +Ëç¢ +ÏèËç¢ +Ì +ÏèÌ +Ì¢ +ÏèÌ¢ +ÌÚ +ÏèÌÚ +ÌÚ¢ +ÏèÌÚ¢ +ÌÛ +ÏèÌÛ +ÌÛ¢ +ÏèÌÛ¢ +ÌÜ +ÏèÌÜ +ÌÜ¢ +ÏèÌÜ¢ +ÌÝ +ÏèÌÝ +ÌÝ¢ +ÏèÌÝ¢ +ÌÞ +ÏèÌÞ +ÌÞ¢ +ÏèÌÞ¢ +Ìß +ÏèÌß +Ìߢ +ÏèÌߢ +Ìá +ÏèÌá +Ìᢠ+ÏèÌᢠ+Ìâ +ÏèÌâ +Ì⢠+ÏèÌ⢠+Ìå +ÏèÌå +Ìå¢ +ÏèÌå¢ +Ìæ +ÏèÌæ +Ìæ¢ +ÏèÌæ¢ +Ìç +ÏèÌç +Ìç¢ +ÏèÌç¢ +Í +ÏèÍ +Í¢ +ÏèÍ¢ +ÍÚ +ÏèÍÚ +ÍÚ¢ +ÏèÍÚ¢ +ÍÛ +ÏèÍÛ +ÍÛ¢ +ÏèÍÛ¢ +ÍÜ +ÏèÍÜ +ÍÜ¢ +ÏèÍÜ¢ +ÍÝ +ÏèÍÝ +ÍÝ¢ +ÏèÍÝ¢ +ÍÞ +ÏèÍÞ +ÍÞ¢ +ÏèÍÞ¢ +Íß +ÏèÍß +Íߢ +ÏèÍߢ +Íá +ÏèÍá +Íᢠ+ÏèÍᢠ+Íâ +ÏèÍâ +Í⢠+ÏèÍ⢠+Íå +ÏèÍå +Íå¢ +ÏèÍå¢ +Íæ +ÏèÍæ +Íæ¢ +ÏèÍæ¢ +Íç +ÏèÍç +Íç¢ +ÏèÍç¢ +Ï +ÏèÏ +Ï¢ +ÏèÏ¢ +ÏÚ +ÏèÏÚ +ÏÚ¢ +ÏèÏÚ¢ +ÏÛ +ÏèÏÛ +ÏÛ¢ +ÏèÏÛ¢ +ÏÜ +ÏèÏÜ +ÏÜ¢ +ÏèÏÜ¢ +ÏÝ +ÏèÏÝ +ÏÝ¢ +ÏèÏÝ¢ +ÏÞ +ÏèÏÞ +ÏÞ¢ +ÏèÏÞ¢ +Ïß +ÏèÏß +Ïߢ +ÏèÏߢ +Ïá +ÏèÏá +Ïᢠ+ÏèÏᢠ+Ïâ +ÏèÏâ +Ï⢠+ÏèÏ⢠+Ïå +ÏèÏå +Ïå¢ +ÏèÏå¢ +Ïæ +ÏèÏæ +Ïæ¢ +ÏèÏæ¢ +Ïç +ÏèÏç +Ïç¢ +ÏèÏç¢ +Ñ +ÏèÑ +Ñ¢ +ÏèÑ¢ +ÑÚ +ÏèÑÚ +ÑÚ¢ +ÏèÑÚ¢ +ÑÛ +ÏèÑÛ +ÑÛ¢ +ÏèÑÛ¢ +ÑÜ +ÏèÑÜ +ÑÜ¢ +ÏèÑÜ¢ +ÑÝ +ÏèÑÝ +ÑÝ¢ +ÏèÑÝ¢ +ÑÞ +ÏèÑÞ +ÑÞ¢ +ÏèÑÞ¢ +Ñß +ÏèÑß +Ñߢ +ÏèÑߢ +Ñá +ÏèÑá +Ñᢠ+ÏèÑᢠ+Ñâ +ÏèÑâ +Ñ⢠+ÏèÑ⢠+Ñå +ÏèÑå +Ñå¢ +ÏèÑå¢ +Ñæ +ÏèÑæ +Ñæ¢ +ÏèÑæ¢ +Ñç +ÏèÑç +Ñç¢ +ÏèÑç¢ +Ò +ÏèÒ +Ò¢ +ÏèÒ¢ +ÒÚ +ÏèÒÚ +ÒÚ¢ +ÏèÒÚ¢ +ÒÛ +ÏèÒÛ +ÒÛ¢ +ÏèÒÛ¢ +ÒÜ +ÏèÒÜ +ÒÜ¢ +ÏèÒÜ¢ +ÒÝ +ÏèÒÝ +ÒÝ¢ +ÏèÒÝ¢ +ÒÞ +ÏèÒÞ +ÒÞ¢ +ÏèÒÞ¢ +Òß +ÏèÒß +Òߢ +ÏèÒߢ +Òá +ÏèÒá +Òᢠ+ÏèÒᢠ+Òâ +ÏèÒâ +Ò⢠+ÏèÒ⢠+Òå +ÏèÒå +Òå¢ +ÏèÒå¢ +Òæ +ÏèÒæ +Òæ¢ +ÏèÒæ¢ +Òç +ÏèÒç +Òç¢ +ÏèÒç¢ +Ô +ÏèÔ +Ô¢ +ÏèÔ¢ +ÔÚ +ÏèÔÚ +ÔÚ¢ +ÏèÔÚ¢ +ÔÛ +ÏèÔÛ +ÔÛ¢ +ÏèÔÛ¢ +ÔÜ +ÏèÔÜ +ÔÜ¢ +ÏèÔÜ¢ +ÔÝ +ÏèÔÝ +ÔÝ¢ +ÏèÔÝ¢ +ÔÞ +ÏèÔÞ +ÔÞ¢ +ÏèÔÞ¢ +Ôß +ÏèÔß +Ôߢ +ÏèÔߢ +Ôá +ÏèÔá +Ôᢠ+ÏèÔᢠ+Ôâ +ÏèÔâ +Ô⢠+ÏèÔ⢠+Ôå +ÏèÔå +Ôå¢ +ÏèÔå¢ +Ôæ +ÏèÔæ +Ôæ¢ +ÏèÔæ¢ +Ôç +ÏèÔç +Ôç¢ +ÏèÔç¢ +Õ +ÏèÕ +Õ¢ +ÏèÕ¢ +ÕÚ +ÏèÕÚ +ÕÚ¢ +ÏèÕÚ¢ +ÕÛ +ÏèÕÛ +ÕÛ¢ +ÏèÕÛ¢ +ÕÜ +ÏèÕÜ +ÕÜ¢ +ÏèÕÜ¢ +ÕÝ +ÏèÕÝ +ÕÝ¢ +ÏèÕÝ¢ +ÕÞ +ÏèÕÞ +ÕÞ¢ +ÏèÕÞ¢ +Õß +ÏèÕß +Õߢ +ÏèÕߢ +Õá +ÏèÕá +Õᢠ+ÏèÕᢠ+Õâ +ÏèÕâ +Õ⢠+ÏèÕ⢠+Õå +ÏèÕå +Õå¢ +ÏèÕå¢ +Õæ +ÏèÕæ +Õæ¢ +ÏèÕæ¢ +Õç +ÏèÕç +Õç¢ +ÏèÕç¢ +Ö +ÏèÖ +Ö¢ +ÏèÖ¢ +ÖÚ +ÏèÖÚ +ÖÚ¢ +ÏèÖÚ¢ +ÖÛ +ÏèÖÛ +ÖÛ¢ +ÏèÖÛ¢ +ÖÜ +ÏèÖÜ +ÖÜ¢ +ÏèÖÜ¢ +ÖÝ +ÏèÖÝ +ÖÝ¢ +ÏèÖÝ¢ +ÖÞ +ÏèÖÞ +ÖÞ¢ +ÏèÖÞ¢ +Öß +ÏèÖß +Öߢ +ÏèÖߢ +Öá +ÏèÖá +Öᢠ+ÏèÖᢠ+Öâ +ÏèÖâ +Ö⢠+ÏèÖ⢠+Öå +ÏèÖå +Öå¢ +ÏèÖå¢ +Öæ +ÏèÖæ +Öæ¢ +ÏèÖæ¢ +Öç +ÏèÖç +Öç¢ +ÏèÖç¢ +× +Ïè× +×¢ +Ïè×¢ +×Ú +Ïè×Ú +×Ú¢ +Ïè×Ú¢ +×Û +Ïè×Û +×Û¢ +Ïè×Û¢ +×Ü +Ïè×Ü +×Ü¢ +Ïè×Ü¢ +×Ý +Ïè×Ý +×Ý¢ +Ïè×Ý¢ +×Þ +Ïè×Þ +×Þ¢ +Ïè×Þ¢ +×ß +Ïè×ß +×ߢ +Ïè×ߢ +×á +Ïè×á +×ᢠ+Ïè×ᢠ+×â +Ïè×â +×⢠+Ïè×⢠+×å +Ïè×å +×å¢ +Ïè×å¢ +×æ +Ïè×æ +×æ¢ +Ïè×æ¢ +×ç +Ïè×ç +×ç¢ +Ïè×ç¢ +Ø +ÏèØ +Ø¢ +ÏèØ¢ +ØÚ +ÏèØÚ +ØÚ¢ +ÏèØÚ¢ +ØÛ +ÏèØÛ +ØÛ¢ +ÏèØÛ¢ +ØÜ +ÏèØÜ +ØÜ¢ +ÏèØÜ¢ +ØÝ +ÏèØÝ +ØÝ¢ +ÏèØÝ¢ +ØÞ +ÏèØÞ +ØÞ¢ +ÏèØÞ¢ +Øß +ÏèØß +Øߢ +ÏèØߢ +Øá +ÏèØá +Øᢠ+ÏèØᢠ+Øâ +ÏèØâ +Ø⢠+ÏèØ⢠+Øå +ÏèØå +Øå¢ +ÏèØå¢ +Øæ +ÏèØæ +Øæ¢ +ÏèØæ¢ +Øç +ÏèØç +Øç¢ +ÏèØç¢ +³èÖ +Ïè³èÖ +³èÖ¢ +Ïè³èÖ¢ +³èÖÚ +Ïè³èÖÚ +³èÖÚ¢ +Ïè³èÖÚ¢ +³èÖÛ +Ïè³èÖÛ +³èÖÛ¢ +Ïè³èÖÛ¢ +³èÖÜ +Ïè³èÖÜ +³èÖÜ¢ +Ïè³èÖÜ¢ +³èÖÝ +Ïè³èÖÝ +³èÖÝ¢ +Ïè³èÖÝ¢ +³èÖÞ +Ïè³èÖÞ +³èÖÞ¢ +Ïè³èÖÞ¢ +³èÖß +Ïè³èÖß +³èÖߢ +Ïè³èÖߢ +³èÖá +Ïè³èÖá +³èÖᢠ+Ïè³èÖᢠ+³èÖâ +Ïè³èÖâ +³èÖ⢠+Ïè³èÖ⢠+³èÖå +Ïè³èÖå +³èÖå¢ +Ïè³èÖå¢ +³èÖæ +Ïè³èÖæ +³èÖæ¢ +Ïè³èÖæ¢ +³èÖç +Ïè³èÖç +³èÖç¢ +Ïè³èÖç¢ +ºè¼ +Ïèºè¼ +ºè¼¢ +Ïèºè¼¢ +ºè¼Ú +Ïèºè¼Ú +ºè¼Ú¢ +Ïèºè¼Ú¢ +ºè¼Û +Ïèºè¼Û +ºè¼Û¢ +Ïèºè¼Û¢ +ºè¼Ü +Ïèºè¼Ü +ºè¼Ü¢ +Ïèºè¼Ü¢ +ºè¼Ý +Ïèºè¼Ý +ºè¼Ý¢ +Ïèºè¼Ý¢ +ºè¼Þ +Ïèºè¼Þ +ºè¼Þ¢ +Ïèºè¼Þ¢ +ºè¼ß +Ïèºè¼ß +ºè¼ß¢ +Ïèºè¼ß¢ +ºè¼á +Ïèºè¼á +ºè¼á¢ +Ïèºè¼á¢ +ºè¼â +Ïèºè¼â +ºè¼â¢ +Ïèºè¼â¢ +ºè¼å +Ïèºè¼å +ºè¼å¢ +Ïèºè¼å¢ +ºè¼æ +Ïèºè¼æ +ºè¼æ¢ +Ïèºè¼æ¢ +ºè¼ç +Ïèºè¼ç +ºè¼ç¢ +Ïèºè¼ç¢ +Âè +ÏèÂè +Âè¢ +ÏèÂè¢ +ÂèÂÚ +ÏèÂèÂÚ +ÂèÂÚ¢ +ÏèÂèÂÚ¢ +ÂèÂÛ +ÏèÂèÂÛ +ÂèÂÛ¢ +ÏèÂèÂÛ¢ +ÂèÂÜ +ÏèÂèÂÜ +ÂèÂÜ¢ +ÏèÂèÂÜ¢ +ÂèÂÝ +ÏèÂèÂÝ +ÂèÂÝ¢ +ÏèÂèÂÝ¢ +ÂèÂÞ +ÏèÂèÂÞ +ÂèÂÞ¢ +ÏèÂèÂÞ¢ +ÂèÂß +ÏèÂèÂß +ÂèÂߢ +ÏèÂèÂߢ +ÂèÂá +ÏèÂèÂá +ÂèÂᢠ+ÏèÂèÂᢠ+ÂèÂâ +ÏèÂèÂâ +ÂèÂ⢠+ÏèÂèÂ⢠+ÂèÂå +ÏèÂèÂå +ÂèÂå¢ +ÏèÂèÂå¢ +ÂèÂæ +ÏèÂèÂæ +ÂèÂæ¢ +ÏèÂèÂæ¢ +ÂèÂç +ÏèÂèÂç +ÂèÂç¢ +ÏèÂèÂç¢ +ÄèÄ +ÏèÄèÄ +ÄèÄ¢ +ÏèÄèÄ¢ +ÄèÄÚ +ÏèÄèÄÚ +ÄèÄÚ¢ +ÏèÄèÄÚ¢ +ÄèÄÛ +ÏèÄèÄÛ +ÄèÄÛ¢ +ÏèÄèÄÛ¢ +ÄèÄÜ +ÏèÄèÄÜ +ÄèÄÜ¢ +ÏèÄèÄÜ¢ +ÄèÄÝ +ÏèÄèÄÝ +ÄèÄÝ¢ +ÏèÄèÄÝ¢ +ÄèÄÞ +ÏèÄèÄÞ +ÄèÄÞ¢ +ÏèÄèÄÞ¢ +ÄèÄß +ÏèÄèÄß +ÄèÄߢ +ÏèÄèÄߢ +ÄèÄá +ÏèÄèÄá +ÄèÄᢠ+ÏèÄèÄᢠ+ÄèÄâ +ÏèÄèÄâ +ÄèÄ⢠+ÏèÄèÄ⢠+ÄèÄå +ÏèÄèÄå +ÄèÄå¢ +ÏèÄèÄå¢ +ÄèÄæ +ÏèÄèÄæ +ÄèÄæ¢ +ÏèÄèÄæ¢ +ÄèÄç +ÏèÄèÄç +ÄèÄç¢ +ÏèÄèÄç¢ +ÄèÅ +ÏèÄèÅ +ÄèÅ¢ +ÏèÄèÅ¢ +ÄèÅÚ +ÏèÄèÅÚ +ÄèÅÚ¢ +ÏèÄèÅÚ¢ +ÄèÅÛ +ÏèÄèÅÛ +ÄèÅÛ¢ +ÏèÄèÅÛ¢ +ÄèÅÜ +ÏèÄèÅÜ +ÄèÅÜ¢ +ÏèÄèÅÜ¢ +ÄèÅÝ +ÏèÄèÅÝ +ÄèÅÝ¢ +ÏèÄèÅÝ¢ +ÄèÅÞ +ÏèÄèÅÞ +ÄèÅÞ¢ +ÏèÄèÅÞ¢ +ÄèÅß +ÏèÄèÅß +ÄèÅߢ +ÏèÄèÅߢ +ÄèÅá +ÏèÄèÅá +ÄèÅᢠ+ÏèÄèÅᢠ+ÄèÅâ +ÏèÄèÅâ +ÄèÅ⢠+ÏèÄèÅ⢠+ÄèÅå +ÏèÄèÅå +ÄèÅå¢ +ÏèÄèÅå¢ +ÄèÅæ +ÏèÄèÅæ +ÄèÅæ¢ +ÏèÄèÅæ¢ +ÄèÅç +ÏèÄèÅç +ÄèÅç¢ +ÏèÄèÅç¢ +ÄèÍ +ÏèÄèÍ +ÄèÍ¢ +ÏèÄèÍ¢ +ÄèÍÚ +ÏèÄèÍÚ +ÄèÍÚ¢ +ÏèÄèÍÚ¢ +ÄèÍÛ +ÏèÄèÍÛ +ÄèÍÛ¢ +ÏèÄèÍÛ¢ +ÄèÍÜ +ÏèÄèÍÜ +ÄèÍÜ¢ +ÏèÄèÍÜ¢ +ÄèÍÝ +ÏèÄèÍÝ +ÄèÍÝ¢ +ÏèÄèÍÝ¢ +ÄèÍÞ +ÏèÄèÍÞ +ÄèÍÞ¢ +ÏèÄèÍÞ¢ +ÄèÍß +ÏèÄèÍß +ÄèÍߢ +ÏèÄèÍߢ +ÄèÍá +ÏèÄèÍá +ÄèÍᢠ+ÏèÄèÍᢠ+ÄèÍâ +ÏèÄèÍâ +ÄèÍ⢠+ÏèÄèÍ⢠+ÄèÍå +ÏèÄèÍå +ÄèÍå¢ +ÏèÄèÍå¢ +ÄèÍæ +ÏèÄèÍæ +ÄèÍæ¢ +ÏèÄèÍæ¢ +ÄèÍç +ÏèÄèÍç +ÄèÍç¢ +ÏèÄèÍç¢ +ÄèÔ +ÏèÄèÔ +ÄèÔ¢ +ÏèÄèÔ¢ +ÄèÔÚ +ÏèÄèÔÚ +ÄèÔÚ¢ +ÏèÄèÔÚ¢ +ÄèÔÛ +ÏèÄèÔÛ +ÄèÔÛ¢ +ÏèÄèÔÛ¢ +ÄèÔÜ +ÏèÄèÔÜ +ÄèÔÜ¢ +ÏèÄèÔÜ¢ +ÄèÔÝ +ÏèÄèÔÝ +ÄèÔÝ¢ +ÏèÄèÔÝ¢ +ÄèÔÞ +ÏèÄèÔÞ +ÄèÔÞ¢ +ÏèÄèÔÞ¢ +ÄèÔß +ÏèÄèÔß +ÄèÔߢ +ÏèÄèÔߢ +ÄèÔá +ÏèÄèÔá +ÄèÔᢠ+ÏèÄèÔᢠ+ÄèÔâ +ÏèÄèÔâ +ÄèÔ⢠+ÏèÄèÔ⢠+ÄèÔå +ÏèÄèÔå +ÄèÔå¢ +ÏèÄèÔå¢ +ÄèÔæ +ÏèÄèÔæ +ÄèÔæ¢ +ÏèÄèÔæ¢ +ÄèÔç +ÏèÄèÔç +ÄèÔç¢ +ÏèÄèÔç¢ +ÆèÆ +ÏèÆèÆ +ÆèÆ¢ +ÏèÆèÆ¢ +ÆèÆÚ +ÏèÆèÆÚ +ÆèÆÚ¢ +ÏèÆèÆÚ¢ +ÆèÆÛ +ÏèÆèÆÛ +ÆèÆÛ¢ +ÏèÆèÆÛ¢ +ÆèÆÜ +ÏèÆèÆÜ +ÆèÆÜ¢ +ÏèÆèÆÜ¢ +ÆèÆÝ +ÏèÆèÆÝ +ÆèÆÝ¢ +ÏèÆèÆÝ¢ +ÆèÆÞ +ÏèÆèÆÞ +ÆèÆÞ¢ +ÏèÆèÆÞ¢ +ÆèÆß +ÏèÆèÆß +ÆèÆߢ +ÏèÆèÆߢ +ÆèÆá +ÏèÆèÆá +ÆèÆᢠ+ÏèÆèÆᢠ+ÆèÆâ +ÏèÆèÆâ +ÆèÆ⢠+ÏèÆèÆ⢠+ÆèÆå +ÏèÆèÆå +ÆèÆå¢ +ÏèÆèÆå¢ +ÆèÆæ +ÏèÆèÆæ +ÆèÆæ¢ +ÏèÆèÆæ¢ +ÆèÆç +ÏèÆèÆç +ÆèÆç¢ +ÏèÆèÆç¢ +³èÏ +Ïè³èÏ +³èÏ¢ +Ïè³èÏ¢ +³èÏÚ +Ïè³èÏÚ +³èÏÚ¢ +Ïè³èÏÚ¢ +³èÏÛ +Ïè³èÏÛ +³èÏÛ¢ +Ïè³èÏÛ¢ +³èÏÜ +Ïè³èÏÜ +³èÏÜ¢ +Ïè³èÏÜ¢ +³èÏÝ +Ïè³èÏÝ +³èÏÝ¢ +Ïè³èÏÝ¢ +³èÏÞ +Ïè³èÏÞ +³èÏÞ¢ +Ïè³èÏÞ¢ +³èÏß +Ïè³èÏß +³èÏߢ +Ïè³èÏߢ +³èÏá +Ïè³èÏá +³èÏᢠ+Ïè³èÏᢠ+³èÏâ +Ïè³èÏâ +³èÏ⢠+Ïè³èÏ⢠+³èÏå +Ïè³èÏå +³èÏå¢ +Ïè³èÏå¢ +³èÏæ +Ïè³èÏæ +³èÏæ¢ +Ïè³èÏæ¢ +³èÏç +Ïè³èÏç +³èÏç¢ +Ïè³èÏç¢ +³éèÏ +Ïè³éèÏ +³éèÏ¢ +Ïè³éèÏ¢ +³éèÏÚ +Ïè³éèÏÚ +³éèÏÚ¢ +Ïè³éèÏÚ¢ +³éèÏÛ +Ïè³éèÏÛ +³éèÏÛ¢ +Ïè³éèÏÛ¢ +³éèÏÜ +Ïè³éèÏÜ +³éèÏÜ¢ +Ïè³éèÏÜ¢ +³éèÏÝ +Ïè³éèÏÝ +³éèÏÝ¢ +Ïè³éèÏÝ¢ +³éèÏÞ +Ïè³éèÏÞ +³éèÏÞ¢ +Ïè³éèÏÞ¢ +³éèÏß +Ïè³éèÏß +³éèÏߢ +Ïè³éèÏߢ +³éèÏá +Ïè³éèÏá +³éèÏᢠ+Ïè³éèÏᢠ+³éèÏâ +Ïè³éèÏâ +³éèÏ⢠+Ïè³éèÏ⢠+³éèÏå +Ïè³éèÏå +³éèÏå¢ +Ïè³éèÏå¢ +³éèÏæ +Ïè³éèÏæ +³éèÏæ¢ +Ïè³éèÏæ¢ +³éèÏç +Ïè³éèÏç +³éèÏç¢ +Ïè³éèÏç¢ +´èÏ +Ïè´èÏ +´èÏ¢ +Ïè´èÏ¢ +´èÏÚ +Ïè´èÏÚ +´èÏÚ¢ +Ïè´èÏÚ¢ +´èÏÛ +Ïè´èÏÛ +´èÏÛ¢ +Ïè´èÏÛ¢ +´èÏÜ +Ïè´èÏÜ +´èÏÜ¢ +Ïè´èÏÜ¢ +´èÏÝ +Ïè´èÏÝ +´èÏÝ¢ +Ïè´èÏÝ¢ +´èÏÞ +Ïè´èÏÞ +´èÏÞ¢ +Ïè´èÏÞ¢ +´èÏß +Ïè´èÏß +´èÏߢ +Ïè´èÏߢ +´èÏá +Ïè´èÏá +´èÏᢠ+Ïè´èÏᢠ+´èÏâ +Ïè´èÏâ +´èÏ⢠+Ïè´èÏ⢠+´èÏå +Ïè´èÏå +´èÏå¢ +Ïè´èÏå¢ +´èÏæ +Ïè´èÏæ +´èÏæ¢ +Ïè´èÏæ¢ +´èÏç +Ïè´èÏç +´èÏç¢ +Ïè´èÏç¢ +´éèÏ +Ïè´éèÏ +´éèÏ¢ +Ïè´éèÏ¢ +´éèÏÚ +Ïè´éèÏÚ +´éèÏÚ¢ +Ïè´éèÏÚ¢ +´éèÏÛ +Ïè´éèÏÛ +´éèÏÛ¢ +Ïè´éèÏÛ¢ +´éèÏÜ +Ïè´éèÏÜ +´éèÏÜ¢ +Ïè´éèÏÜ¢ +´éèÏÝ +Ïè´éèÏÝ +´éèÏÝ¢ +Ïè´éèÏÝ¢ +´éèÏÞ +Ïè´éèÏÞ +´éèÏÞ¢ +Ïè´éèÏÞ¢ +´éèÏß +Ïè´éèÏß +´éèÏߢ +Ïè´éèÏߢ +´éèÏá +Ïè´éèÏá +´éèÏᢠ+Ïè´éèÏᢠ+´éèÏâ +Ïè´éèÏâ +´éèÏ⢠+Ïè´éèÏ⢠+´éèÏå +Ïè´éèÏå +´éèÏå¢ +Ïè´éèÏå¢ +´éèÏæ +Ïè´éèÏæ +´éèÏæ¢ +Ïè´éèÏæ¢ +´éèÏç +Ïè´éèÏç +´éèÏç¢ +Ïè´éèÏç¢ +µèÏ +ÏèµèÏ +µèÏ¢ +ÏèµèÏ¢ +µèÏÚ +ÏèµèÏÚ +µèÏÚ¢ +ÏèµèÏÚ¢ +µèÏÛ +ÏèµèÏÛ +µèÏÛ¢ +ÏèµèÏÛ¢ +µèÏÜ +ÏèµèÏÜ +µèÏÜ¢ +ÏèµèÏÜ¢ +µèÏÝ +ÏèµèÏÝ +µèÏÝ¢ +ÏèµèÏÝ¢ +µèÏÞ +ÏèµèÏÞ +µèÏÞ¢ +ÏèµèÏÞ¢ +µèÏß +ÏèµèÏß +µèÏߢ +ÏèµèÏߢ +µèÏá +ÏèµèÏá +µèÏᢠ+ÏèµèÏᢠ+µèÏâ +ÏèµèÏâ +µèÏ⢠+ÏèµèÏ⢠+µèÏå +ÏèµèÏå +µèÏå¢ +ÏèµèÏå¢ +µèÏæ +ÏèµèÏæ +µèÏæ¢ +ÏèµèÏæ¢ +µèÏç +ÏèµèÏç +µèÏç¢ +ÏèµèÏç¢ +µéèÏ +ÏèµéèÏ +µéèÏ¢ +ÏèµéèÏ¢ +µéèÏÚ +ÏèµéèÏÚ +µéèÏÚ¢ +ÏèµéèÏÚ¢ +µéèÏÛ +ÏèµéèÏÛ +µéèÏÛ¢ +ÏèµéèÏÛ¢ +µéèÏÜ +ÏèµéèÏÜ +µéèÏÜ¢ +ÏèµéèÏÜ¢ +µéèÏÝ +ÏèµéèÏÝ +µéèÏÝ¢ +ÏèµéèÏÝ¢ +µéèÏÞ +ÏèµéèÏÞ +µéèÏÞ¢ +ÏèµéèÏÞ¢ +µéèÏß +ÏèµéèÏß +µéèÏߢ +ÏèµéèÏߢ +µéèÏá +ÏèµéèÏá +µéèÏᢠ+ÏèµéèÏᢠ+µéèÏâ +ÏèµéèÏâ +µéèÏ⢠+ÏèµéèÏ⢠+µéèÏå +ÏèµéèÏå +µéèÏå¢ +ÏèµéèÏå¢ +µéèÏæ +ÏèµéèÏæ +µéèÏæ¢ +ÏèµéèÏæ¢ +µéèÏç +ÏèµéèÏç +µéèÏç¢ +ÏèµéèÏç¢ +¶èÏ +Ïè¶èÏ +¶èÏ¢ +Ïè¶èÏ¢ +¶èÏÚ +Ïè¶èÏÚ +¶èÏÚ¢ +Ïè¶èÏÚ¢ +¶èÏÛ +Ïè¶èÏÛ +¶èÏÛ¢ +Ïè¶èÏÛ¢ +¶èÏÜ +Ïè¶èÏÜ +¶èÏÜ¢ +Ïè¶èÏÜ¢ +¶èÏÝ +Ïè¶èÏÝ +¶èÏÝ¢ +Ïè¶èÏÝ¢ +¶èÏÞ +Ïè¶èÏÞ +¶èÏÞ¢ +Ïè¶èÏÞ¢ +¶èÏß +Ïè¶èÏß +¶èÏߢ +Ïè¶èÏߢ +¶èÏá +Ïè¶èÏá +¶èÏᢠ+Ïè¶èÏᢠ+¶èÏâ +Ïè¶èÏâ +¶èÏ⢠+Ïè¶èÏ⢠+¶èÏå +Ïè¶èÏå +¶èÏå¢ +Ïè¶èÏå¢ +¶èÏæ +Ïè¶èÏæ +¶èÏæ¢ +Ïè¶èÏæ¢ +¶èÏç +Ïè¶èÏç +¶èÏç¢ +Ïè¶èÏç¢ +¸èÏ +Ïè¸èÏ +¸èÏ¢ +Ïè¸èÏ¢ +¸èÏÚ +Ïè¸èÏÚ +¸èÏÚ¢ +Ïè¸èÏÚ¢ +¸èÏÛ +Ïè¸èÏÛ +¸èÏÛ¢ +Ïè¸èÏÛ¢ +¸èÏÜ +Ïè¸èÏÜ +¸èÏÜ¢ +Ïè¸èÏÜ¢ +¸èÏÝ +Ïè¸èÏÝ +¸èÏÝ¢ +Ïè¸èÏÝ¢ +¸èÏÞ +Ïè¸èÏÞ +¸èÏÞ¢ +Ïè¸èÏÞ¢ +¸èÏß +Ïè¸èÏß +¸èÏߢ +Ïè¸èÏߢ +¸èÏá +Ïè¸èÏá +¸èÏᢠ+Ïè¸èÏᢠ+¸èÏâ +Ïè¸èÏâ +¸èÏ⢠+Ïè¸èÏ⢠+¸èÏå +Ïè¸èÏå +¸èÏå¢ +Ïè¸èÏå¢ +¸èÏæ +Ïè¸èÏæ +¸èÏæ¢ +Ïè¸èÏæ¢ +¸èÏç +Ïè¸èÏç +¸èÏç¢ +Ïè¸èÏç¢ +¹èÏ +Ïè¹èÏ +¹èÏ¢ +Ïè¹èÏ¢ +¹èÏÚ +Ïè¹èÏÚ +¹èÏÚ¢ +Ïè¹èÏÚ¢ +¹èÏÛ +Ïè¹èÏÛ +¹èÏÛ¢ +Ïè¹èÏÛ¢ +¹èÏÜ +Ïè¹èÏÜ +¹èÏÜ¢ +Ïè¹èÏÜ¢ +¹èÏÝ +Ïè¹èÏÝ +¹èÏÝ¢ +Ïè¹èÏÝ¢ +¹èÏÞ +Ïè¹èÏÞ +¹èÏÞ¢ +Ïè¹èÏÞ¢ +¹èÏß +Ïè¹èÏß +¹èÏߢ +Ïè¹èÏߢ +¹èÏá +Ïè¹èÏá +¹èÏᢠ+Ïè¹èÏᢠ+¹èÏâ +Ïè¹èÏâ +¹èÏ⢠+Ïè¹èÏ⢠+¹èÏå +Ïè¹èÏå +¹èÏå¢ +Ïè¹èÏå¢ +¹èÏæ +Ïè¹èÏæ +¹èÏæ¢ +Ïè¹èÏæ¢ +¹èÏç +Ïè¹èÏç +¹èÏç¢ +Ïè¹èÏç¢ +ºèÏ +ÏèºèÏ +ºèÏ¢ +ÏèºèÏ¢ +ºèÏÚ +ÏèºèÏÚ +ºèÏÚ¢ +ÏèºèÏÚ¢ +ºèÏÛ +ÏèºèÏÛ +ºèÏÛ¢ +ÏèºèÏÛ¢ +ºèÏÜ +ÏèºèÏÜ +ºèÏÜ¢ +ÏèºèÏÜ¢ +ºèÏÝ +ÏèºèÏÝ +ºèÏÝ¢ +ÏèºèÏÝ¢ +ºèÏÞ +ÏèºèÏÞ +ºèÏÞ¢ +ÏèºèÏÞ¢ +ºèÏß +ÏèºèÏß +ºèÏߢ +ÏèºèÏߢ +ºèÏá +ÏèºèÏá +ºèÏᢠ+ÏèºèÏᢠ+ºèÏâ +ÏèºèÏâ +ºèÏ⢠+ÏèºèÏ⢠+ºèÏå +ÏèºèÏå +ºèÏå¢ +ÏèºèÏå¢ +ºèÏæ +ÏèºèÏæ +ºèÏæ¢ +ÏèºèÏæ¢ +ºèÏç +ÏèºèÏç +ºèÏç¢ +ÏèºèÏç¢ +ºéèÏ +ÏèºéèÏ +ºéèÏ¢ +ÏèºéèÏ¢ +ºéèÏÚ +ÏèºéèÏÚ +ºéèÏÚ¢ +ÏèºéèÏÚ¢ +ºéèÏÛ +ÏèºéèÏÛ +ºéèÏÛ¢ +ÏèºéèÏÛ¢ +ºéèÏÜ +ÏèºéèÏÜ +ºéèÏÜ¢ +ÏèºéèÏÜ¢ +ºéèÏÝ +ÏèºéèÏÝ +ºéèÏÝ¢ +ÏèºéèÏÝ¢ +ºéèÏÞ +ÏèºéèÏÞ +ºéèÏÞ¢ +ÏèºéèÏÞ¢ +ºéèÏß +ÏèºéèÏß +ºéèÏߢ +ÏèºéèÏߢ +ºéèÏá +ÏèºéèÏá +ºéèÏᢠ+ÏèºéèÏᢠ+ºéèÏâ +ÏèºéèÏâ +ºéèÏ⢠+ÏèºéèÏ⢠+ºéèÏå +ÏèºéèÏå +ºéèÏå¢ +ÏèºéèÏå¢ +ºéèÏæ +ÏèºéèÏæ +ºéèÏæ¢ +ÏèºéèÏæ¢ +ºéèÏç +ÏèºéèÏç +ºéèÏç¢ +ÏèºéèÏç¢ +»èÏ +Ïè»èÏ +»èÏ¢ +Ïè»èÏ¢ +»èÏÚ +Ïè»èÏÚ +»èÏÚ¢ +Ïè»èÏÚ¢ +»èÏÛ +Ïè»èÏÛ +»èÏÛ¢ +Ïè»èÏÛ¢ +»èÏÜ +Ïè»èÏÜ +»èÏÜ¢ +Ïè»èÏÜ¢ +»èÏÝ +Ïè»èÏÝ +»èÏÝ¢ +Ïè»èÏÝ¢ +»èÏÞ +Ïè»èÏÞ +»èÏÞ¢ +Ïè»èÏÞ¢ +»èÏß +Ïè»èÏß +»èÏߢ +Ïè»èÏߢ +»èÏá +Ïè»èÏá +»èÏᢠ+Ïè»èÏᢠ+»èÏâ +Ïè»èÏâ +»èÏ⢠+Ïè»èÏ⢠+»èÏå +Ïè»èÏå +»èÏå¢ +Ïè»èÏå¢ +»èÏæ +Ïè»èÏæ +»èÏæ¢ +Ïè»èÏæ¢ +»èÏç +Ïè»èÏç +»èÏç¢ +Ïè»èÏç¢ +½èÏ +Ïè½èÏ +½èÏ¢ +Ïè½èÏ¢ +½èÏÚ +Ïè½èÏÚ +½èÏÚ¢ +Ïè½èÏÚ¢ +½èÏÛ +Ïè½èÏÛ +½èÏÛ¢ +Ïè½èÏÛ¢ +½èÏÜ +Ïè½èÏÜ +½èÏÜ¢ +Ïè½èÏÜ¢ +½èÏÝ +Ïè½èÏÝ +½èÏÝ¢ +Ïè½èÏÝ¢ +½èÏÞ +Ïè½èÏÞ +½èÏÞ¢ +Ïè½èÏÞ¢ +½èÏß +Ïè½èÏß +½èÏߢ +Ïè½èÏߢ +½èÏá +Ïè½èÏá +½èÏᢠ+Ïè½èÏᢠ+½èÏâ +Ïè½èÏâ +½èÏ⢠+Ïè½èÏ⢠+½èÏå +Ïè½èÏå +½èÏå¢ +Ïè½èÏå¢ +½èÏæ +Ïè½èÏæ +½èÏæ¢ +Ïè½èÏæ¢ +½èÏç +Ïè½èÏç +½èÏç¢ +Ïè½èÏç¢ +¾èÏ +Ïè¾èÏ +¾èÏ¢ +Ïè¾èÏ¢ +¾èÏÚ +Ïè¾èÏÚ +¾èÏÚ¢ +Ïè¾èÏÚ¢ +¾èÏÛ +Ïè¾èÏÛ +¾èÏÛ¢ +Ïè¾èÏÛ¢ +¾èÏÜ +Ïè¾èÏÜ +¾èÏÜ¢ +Ïè¾èÏÜ¢ +¾èÏÝ +Ïè¾èÏÝ +¾èÏÝ¢ +Ïè¾èÏÝ¢ +¾èÏÞ +Ïè¾èÏÞ +¾èÏÞ¢ +Ïè¾èÏÞ¢ +¾èÏß +Ïè¾èÏß +¾èÏߢ +Ïè¾èÏߢ +¾èÏá +Ïè¾èÏá +¾èÏᢠ+Ïè¾èÏᢠ+¾èÏâ +Ïè¾èÏâ +¾èÏ⢠+Ïè¾èÏ⢠+¾èÏå +Ïè¾èÏå +¾èÏå¢ +Ïè¾èÏå¢ +¾èÏæ +Ïè¾èÏæ +¾èÏæ¢ +Ïè¾èÏæ¢ +¾èÏç +Ïè¾èÏç +¾èÏç¢ +Ïè¾èÏç¢ +¿èÏ +Ïè¿èÏ +¿èÏ¢ +Ïè¿èÏ¢ +¿èÏÚ +Ïè¿èÏÚ +¿èÏÚ¢ +Ïè¿èÏÚ¢ +¿èÏÛ +Ïè¿èÏÛ +¿èÏÛ¢ +Ïè¿èÏÛ¢ +¿èÏÜ +Ïè¿èÏÜ +¿èÏÜ¢ +Ïè¿èÏÜ¢ +¿èÏÝ +Ïè¿èÏÝ +¿èÏÝ¢ +Ïè¿èÏÝ¢ +¿èÏÞ +Ïè¿èÏÞ +¿èÏÞ¢ +Ïè¿èÏÞ¢ +¿èÏß +Ïè¿èÏß +¿èÏߢ +Ïè¿èÏߢ +¿èÏá +Ïè¿èÏá +¿èÏᢠ+Ïè¿èÏᢠ+¿èÏâ +Ïè¿èÏâ +¿èÏ⢠+Ïè¿èÏ⢠+¿èÏå +Ïè¿èÏå +¿èÏå¢ +Ïè¿èÏå¢ +¿èÏæ +Ïè¿èÏæ +¿èÏæ¢ +Ïè¿èÏæ¢ +¿èÏç +Ïè¿èÏç +¿èÏç¢ +Ïè¿èÏç¢ +ÀèÏ +ÏèÀèÏ +ÀèÏ¢ +ÏèÀèÏ¢ +ÀèÏÚ +ÏèÀèÏÚ +ÀèÏÚ¢ +ÏèÀèÏÚ¢ +ÀèÏÛ +ÏèÀèÏÛ +ÀèÏÛ¢ +ÏèÀèÏÛ¢ +ÀèÏÜ +ÏèÀèÏÜ +ÀèÏÜ¢ +ÏèÀèÏÜ¢ +ÀèÏÝ +ÏèÀèÏÝ +ÀèÏÝ¢ +ÏèÀèÏÝ¢ +ÀèÏÞ +ÏèÀèÏÞ +ÀèÏÞ¢ +ÏèÀèÏÞ¢ +ÀèÏß +ÏèÀèÏß +ÀèÏߢ +ÏèÀèÏߢ +ÀèÏá +ÏèÀèÏá +ÀèÏᢠ+ÏèÀèÏᢠ+ÀèÏâ +ÏèÀèÏâ +ÀèÏ⢠+ÏèÀèÏ⢠+ÀèÏå +ÏèÀèÏå +ÀèÏå¢ +ÏèÀèÏå¢ +ÀèÏæ +ÏèÀèÏæ +ÀèÏæ¢ +ÏèÀèÏæ¢ +ÀèÏç +ÏèÀèÏç +ÀèÏç¢ +ÏèÀèÏç¢ +ÂèÏ +ÏèÂèÏ +ÂèÏ¢ +ÏèÂèÏ¢ +ÂèÏÚ +ÏèÂèÏÚ +ÂèÏÚ¢ +ÏèÂèÏÚ¢ +ÂèÏÛ +ÏèÂèÏÛ +ÂèÏÛ¢ +ÏèÂèÏÛ¢ +ÂèÏÜ +ÏèÂèÏÜ +ÂèÏÜ¢ +ÏèÂèÏÜ¢ +ÂèÏÝ +ÏèÂèÏÝ +ÂèÏÝ¢ +ÏèÂèÏÝ¢ +ÂèÏÞ +ÏèÂèÏÞ +ÂèÏÞ¢ +ÏèÂèÏÞ¢ +ÂèÏß +ÏèÂèÏß +ÂèÏߢ +ÏèÂèÏߢ +ÂèÏá +ÏèÂèÏá +ÂèÏᢠ+ÏèÂèÏᢠ+ÂèÏâ +ÏèÂèÏâ +ÂèÏ⢠+ÏèÂèÏ⢠+ÂèÏå +ÏèÂèÏå +ÂèÏå¢ +ÏèÂèÏå¢ +ÂèÏæ +ÏèÂèÏæ +ÂèÏæ¢ +ÏèÂèÏæ¢ +ÂèÏç +ÏèÂèÏç +ÂèÏç¢ +ÏèÂèÏç¢ +ÃèÏ +ÏèÃèÏ +ÃèÏ¢ +ÏèÃèÏ¢ +ÃèÏÚ +ÏèÃèÏÚ +ÃèÏÚ¢ +ÏèÃèÏÚ¢ +ÃèÏÛ +ÏèÃèÏÛ +ÃèÏÛ¢ +ÏèÃèÏÛ¢ +ÃèÏÜ +ÏèÃèÏÜ +ÃèÏÜ¢ +ÏèÃèÏÜ¢ +ÃèÏÝ +ÏèÃèÏÝ +ÃèÏÝ¢ +ÏèÃèÏÝ¢ +ÃèÏÞ +ÏèÃèÏÞ +ÃèÏÞ¢ +ÏèÃèÏÞ¢ +ÃèÏß +ÏèÃèÏß +ÃèÏߢ +ÏèÃèÏߢ +ÃèÏá +ÏèÃèÏá +ÃèÏᢠ+ÏèÃèÏᢠ+ÃèÏâ +ÏèÃèÏâ +ÃèÏ⢠+ÏèÃèÏ⢠+ÃèÏå +ÏèÃèÏå +ÃèÏå¢ +ÏèÃèÏå¢ +ÃèÏæ +ÏèÃèÏæ +ÃèÏæ¢ +ÏèÃèÏæ¢ +ÃèÏç +ÏèÃèÏç +ÃèÏç¢ +ÏèÃèÏç¢ +ÄèÏ +ÏèÄèÏ +ÄèÏ¢ +ÏèÄèÏ¢ +ÄèÏÚ +ÏèÄèÏÚ +ÄèÏÚ¢ +ÏèÄèÏÚ¢ +ÄèÏÛ +ÏèÄèÏÛ +ÄèÏÛ¢ +ÏèÄèÏÛ¢ +ÄèÏÜ +ÏèÄèÏÜ +ÄèÏÜ¢ +ÏèÄèÏÜ¢ +ÄèÏÝ +ÏèÄèÏÝ +ÄèÏÝ¢ +ÏèÄèÏÝ¢ +ÄèÏÞ +ÏèÄèÏÞ +ÄèÏÞ¢ +ÏèÄèÏÞ¢ +ÄèÏß +ÏèÄèÏß +ÄèÏߢ +ÏèÄèÏߢ +ÄèÏá +ÏèÄèÏá +ÄèÏᢠ+ÏèÄèÏᢠ+ÄèÏâ +ÏèÄèÏâ +ÄèÏ⢠+ÏèÄèÏ⢠+ÄèÏå +ÏèÄèÏå +ÄèÏå¢ +ÏèÄèÏå¢ +ÄèÏæ +ÏèÄèÏæ +ÄèÏæ¢ +ÏèÄèÏæ¢ +ÄèÏç +ÏèÄèÏç +ÄèÏç¢ +ÏèÄèÏç¢ +ÅèÏ +ÏèÅèÏ +ÅèÏ¢ +ÏèÅèÏ¢ +ÅèÏÚ +ÏèÅèÏÚ +ÅèÏÚ¢ +ÏèÅèÏÚ¢ +ÅèÏÛ +ÏèÅèÏÛ +ÅèÏÛ¢ +ÏèÅèÏÛ¢ +ÅèÏÜ +ÏèÅèÏÜ +ÅèÏÜ¢ +ÏèÅèÏÜ¢ +ÅèÏÝ +ÏèÅèÏÝ +ÅèÏÝ¢ +ÏèÅèÏÝ¢ +ÅèÏÞ +ÏèÅèÏÞ +ÅèÏÞ¢ +ÏèÅèÏÞ¢ +ÅèÏß +ÏèÅèÏß +ÅèÏߢ +ÏèÅèÏߢ +ÅèÏá +ÏèÅèÏá +ÅèÏᢠ+ÏèÅèÏᢠ+ÅèÏâ +ÏèÅèÏâ +ÅèÏ⢠+ÏèÅèÏ⢠+ÅèÏå +ÏèÅèÏå +ÅèÏå¢ +ÏèÅèÏå¢ +ÅèÏæ +ÏèÅèÏæ +ÅèÏæ¢ +ÏèÅèÏæ¢ +ÅèÏç +ÏèÅèÏç +ÅèÏç¢ +ÏèÅèÏç¢ +ÈèÏ +ÏèÈèÏ +ÈèÏ¢ +ÏèÈèÏ¢ +ÈèÏÚ +ÏèÈèÏÚ +ÈèÏÚ¢ +ÏèÈèÏÚ¢ +ÈèÏÛ +ÏèÈèÏÛ +ÈèÏÛ¢ +ÏèÈèÏÛ¢ +ÈèÏÜ +ÏèÈèÏÜ +ÈèÏÜ¢ +ÏèÈèÏÜ¢ +ÈèÏÝ +ÏèÈèÏÝ +ÈèÏÝ¢ +ÏèÈèÏÝ¢ +ÈèÏÞ +ÏèÈèÏÞ +ÈèÏÞ¢ +ÏèÈèÏÞ¢ +ÈèÏß +ÏèÈèÏß +ÈèÏߢ +ÏèÈèÏߢ +ÈèÏá +ÏèÈèÏá +ÈèÏᢠ+ÏèÈèÏᢠ+ÈèÏâ +ÏèÈèÏâ +ÈèÏ⢠+ÏèÈèÏ⢠+ÈèÏå +ÏèÈèÏå +ÈèÏå¢ +ÏèÈèÏå¢ +ÈèÏæ +ÏèÈèÏæ +ÈèÏæ¢ +ÏèÈèÏæ¢ +ÈèÏç +ÏèÈèÏç +ÈèÏç¢ +ÏèÈèÏç¢ +ÉèÏ +ÏèÉèÏ +ÉèÏ¢ +ÏèÉèÏ¢ +ÉèÏÚ +ÏèÉèÏÚ +ÉèÏÚ¢ +ÏèÉèÏÚ¢ +ÉèÏÛ +ÏèÉèÏÛ +ÉèÏÛ¢ +ÏèÉèÏÛ¢ +ÉèÏÜ +ÏèÉèÏÜ +ÉèÏÜ¢ +ÏèÉèÏÜ¢ +ÉèÏÝ +ÏèÉèÏÝ +ÉèÏÝ¢ +ÏèÉèÏÝ¢ +ÉèÏÞ +ÏèÉèÏÞ +ÉèÏÞ¢ +ÏèÉèÏÞ¢ +ÉèÏß +ÏèÉèÏß +ÉèÏߢ +ÏèÉèÏߢ +ÉèÏá +ÏèÉèÏá +ÉèÏᢠ+ÏèÉèÏᢠ+ÉèÏâ +ÏèÉèÏâ +ÉèÏ⢠+ÏèÉèÏ⢠+ÉèÏå +ÏèÉèÏå +ÉèÏå¢ +ÏèÉèÏå¢ +ÉèÏæ +ÏèÉèÏæ +ÉèÏæ¢ +ÏèÉèÏæ¢ +ÉèÏç +ÏèÉèÏç +ÉèÏç¢ +ÏèÉèÏç¢ +ÉéèÏ +ÏèÉéèÏ +ÉéèÏ¢ +ÏèÉéèÏ¢ +ÉéèÏÚ +ÏèÉéèÏÚ +ÉéèÏÚ¢ +ÏèÉéèÏÚ¢ +ÉéèÏÛ +ÏèÉéèÏÛ +ÉéèÏÛ¢ +ÏèÉéèÏÛ¢ +ÉéèÏÜ +ÏèÉéèÏÜ +ÉéèÏÜ¢ +ÏèÉéèÏÜ¢ +ÉéèÏÝ +ÏèÉéèÏÝ +ÉéèÏÝ¢ +ÏèÉéèÏÝ¢ +ÉéèÏÞ +ÏèÉéèÏÞ +ÉéèÏÞ¢ +ÏèÉéèÏÞ¢ +ÉéèÏß +ÏèÉéèÏß +ÉéèÏߢ +ÏèÉéèÏߢ +ÉéèÏá +ÏèÉéèÏá +ÉéèÏᢠ+ÏèÉéèÏᢠ+ÉéèÏâ +ÏèÉéèÏâ +ÉéèÏ⢠+ÏèÉéèÏ⢠+ÉéèÏå +ÏèÉéèÏå +ÉéèÏå¢ +ÏèÉéèÏå¢ +ÉéèÏæ +ÏèÉéèÏæ +ÉéèÏæ¢ +ÏèÉéèÏæ¢ +ÉéèÏç +ÏèÉéèÏç +ÉéèÏç¢ +ÏèÉéèÏç¢ +ÊèÏ +ÏèÊèÏ +ÊèÏ¢ +ÏèÊèÏ¢ +ÊèÏÚ +ÏèÊèÏÚ +ÊèÏÚ¢ +ÏèÊèÏÚ¢ +ÊèÏÛ +ÏèÊèÏÛ +ÊèÏÛ¢ +ÏèÊèÏÛ¢ +ÊèÏÜ +ÏèÊèÏÜ +ÊèÏÜ¢ +ÏèÊèÏÜ¢ +ÊèÏÝ +ÏèÊèÏÝ +ÊèÏÝ¢ +ÏèÊèÏÝ¢ +ÊèÏÞ +ÏèÊèÏÞ +ÊèÏÞ¢ +ÏèÊèÏÞ¢ +ÊèÏß +ÏèÊèÏß +ÊèÏߢ +ÏèÊèÏߢ +ÊèÏá +ÏèÊèÏá +ÊèÏᢠ+ÏèÊèÏᢠ+ÊèÏâ +ÏèÊèÏâ +ÊèÏ⢠+ÏèÊèÏ⢠+ÊèÏå +ÏèÊèÏå +ÊèÏå¢ +ÏèÊèÏå¢ +ÊèÏæ +ÏèÊèÏæ +ÊèÏæ¢ +ÏèÊèÏæ¢ +ÊèÏç +ÏèÊèÏç +ÊèÏç¢ +ÏèÊèÏç¢ +ËèÏ +ÏèËèÏ +ËèÏ¢ +ÏèËèÏ¢ +ËèÏÚ +ÏèËèÏÚ +ËèÏÚ¢ +ÏèËèÏÚ¢ +ËèÏÛ +ÏèËèÏÛ +ËèÏÛ¢ +ÏèËèÏÛ¢ +ËèÏÜ +ÏèËèÏÜ +ËèÏÜ¢ +ÏèËèÏÜ¢ +ËèÏÝ +ÏèËèÏÝ +ËèÏÝ¢ +ÏèËèÏÝ¢ +ËèÏÞ +ÏèËèÏÞ +ËèÏÞ¢ +ÏèËèÏÞ¢ +ËèÏß +ÏèËèÏß +ËèÏߢ +ÏèËèÏߢ +ËèÏá +ÏèËèÏá +ËèÏᢠ+ÏèËèÏᢠ+ËèÏâ +ÏèËèÏâ +ËèÏ⢠+ÏèËèÏ⢠+ËèÏå +ÏèËèÏå +ËèÏå¢ +ÏèËèÏå¢ +ËèÏæ +ÏèËèÏæ +ËèÏæ¢ +ÏèËèÏæ¢ +ËèÏç +ÏèËèÏç +ËèÏç¢ +ÏèËèÏç¢ +ÌèÏ +ÏèÌèÏ +ÌèÏ¢ +ÏèÌèÏ¢ +ÌèÏÚ +ÏèÌèÏÚ +ÌèÏÚ¢ +ÏèÌèÏÚ¢ +ÌèÏÛ +ÏèÌèÏÛ +ÌèÏÛ¢ +ÏèÌèÏÛ¢ +ÌèÏÜ +ÏèÌèÏÜ +ÌèÏÜ¢ +ÏèÌèÏÜ¢ +ÌèÏÝ +ÏèÌèÏÝ +ÌèÏÝ¢ +ÏèÌèÏÝ¢ +ÌèÏÞ +ÏèÌèÏÞ +ÌèÏÞ¢ +ÏèÌèÏÞ¢ +ÌèÏß +ÏèÌèÏß +ÌèÏߢ +ÏèÌèÏߢ +ÌèÏá +ÏèÌèÏá +ÌèÏᢠ+ÏèÌèÏᢠ+ÌèÏâ +ÏèÌèÏâ +ÌèÏ⢠+ÏèÌèÏ⢠+ÌèÏå +ÏèÌèÏå +ÌèÏå¢ +ÏèÌèÏå¢ +ÌèÏæ +ÏèÌèÏæ +ÌèÏæ¢ +ÏèÌèÏæ¢ +ÌèÏç +ÏèÌèÏç +ÌèÏç¢ +ÏèÌèÏç¢ +ÍèÏ +ÏèÍèÏ +ÍèÏ¢ +ÏèÍèÏ¢ +ÍèÏÚ +ÏèÍèÏÚ +ÍèÏÚ¢ +ÏèÍèÏÚ¢ +ÍèÏÛ +ÏèÍèÏÛ +ÍèÏÛ¢ +ÏèÍèÏÛ¢ +ÍèÏÜ +ÏèÍèÏÜ +ÍèÏÜ¢ +ÏèÍèÏÜ¢ +ÍèÏÝ +ÏèÍèÏÝ +ÍèÏÝ¢ +ÏèÍèÏÝ¢ +ÍèÏÞ +ÏèÍèÏÞ +ÍèÏÞ¢ +ÏèÍèÏÞ¢ +ÍèÏß +ÏèÍèÏß +ÍèÏߢ +ÏèÍèÏߢ +ÍèÏá +ÏèÍèÏá +ÍèÏᢠ+ÏèÍèÏᢠ+ÍèÏâ +ÏèÍèÏâ +ÍèÏ⢠+ÏèÍèÏ⢠+ÍèÏå +ÏèÍèÏå +ÍèÏå¢ +ÏèÍèÏå¢ +ÍèÏæ +ÏèÍèÏæ +ÍèÏæ¢ +ÏèÍèÏæ¢ +ÍèÏç +ÏèÍèÏç +ÍèÏç¢ +ÏèÍèÏç¢ +ÔèÏ +ÏèÔèÏ +ÔèÏ¢ +ÏèÔèÏ¢ +ÔèÏÚ +ÏèÔèÏÚ +ÔèÏÚ¢ +ÏèÔèÏÚ¢ +ÔèÏÛ +ÏèÔèÏÛ +ÔèÏÛ¢ +ÏèÔèÏÛ¢ +ÔèÏÜ +ÏèÔèÏÜ +ÔèÏÜ¢ +ÏèÔèÏÜ¢ +ÔèÏÝ +ÏèÔèÏÝ +ÔèÏÝ¢ +ÏèÔèÏÝ¢ +ÔèÏÞ +ÏèÔèÏÞ +ÔèÏÞ¢ +ÏèÔèÏÞ¢ +ÔèÏß +ÏèÔèÏß +ÔèÏߢ +ÏèÔèÏߢ +ÔèÏá +ÏèÔèÏá +ÔèÏᢠ+ÏèÔèÏᢠ+ÔèÏâ +ÏèÔèÏâ +ÔèÏ⢠+ÏèÔèÏ⢠+ÔèÏå +ÏèÔèÏå +ÔèÏå¢ +ÏèÔèÏå¢ +ÔèÏæ +ÏèÔèÏæ +ÔèÏæ¢ +ÏèÔèÏæ¢ +ÔèÏç +ÏèÔèÏç +ÔèÏç¢ +ÏèÔèÏç¢ +ÕèÏ +ÏèÕèÏ +ÕèÏ¢ +ÏèÕèÏ¢ +ÕèÏÚ +ÏèÕèÏÚ +ÕèÏÚ¢ +ÏèÕèÏÚ¢ +ÕèÏÛ +ÏèÕèÏÛ +ÕèÏÛ¢ +ÏèÕèÏÛ¢ +ÕèÏÜ +ÏèÕèÏÜ +ÕèÏÜ¢ +ÏèÕèÏÜ¢ +ÕèÏÝ +ÏèÕèÏÝ +ÕèÏÝ¢ +ÏèÕèÏÝ¢ +ÕèÏÞ +ÏèÕèÏÞ +ÕèÏÞ¢ +ÏèÕèÏÞ¢ +ÕèÏß +ÏèÕèÏß +ÕèÏߢ +ÏèÕèÏߢ +ÕèÏá +ÏèÕèÏá +ÕèÏᢠ+ÏèÕèÏᢠ+ÕèÏâ +ÏèÕèÏâ +ÕèÏ⢠+ÏèÕèÏ⢠+ÕèÏå +ÏèÕèÏå +ÕèÏå¢ +ÏèÕèÏå¢ +ÕèÏæ +ÏèÕèÏæ +ÕèÏæ¢ +ÏèÕèÏæ¢ +ÕèÏç +ÏèÕèÏç +ÕèÏç¢ +ÏèÕèÏç¢ +×èÏ +Ïè×èÏ +×èÏ¢ +Ïè×èÏ¢ +×èÏÚ +Ïè×èÏÚ +×èÏÚ¢ +Ïè×èÏÚ¢ +×èÏÛ +Ïè×èÏÛ +×èÏÛ¢ +Ïè×èÏÛ¢ +×èÏÜ +Ïè×èÏÜ +×èÏÜ¢ +Ïè×èÏÜ¢ +×èÏÝ +Ïè×èÏÝ +×èÏÝ¢ +Ïè×èÏÝ¢ +×èÏÞ +Ïè×èÏÞ +×èÏÞ¢ +Ïè×èÏÞ¢ +×èÏß +Ïè×èÏß +×èÏߢ +Ïè×èÏߢ +×èÏá +Ïè×èÏá +×èÏᢠ+Ïè×èÏᢠ+×èÏâ +Ïè×èÏâ +×èÏ⢠+Ïè×èÏ⢠+×èÏå +Ïè×èÏå +×èÏå¢ +Ïè×èÏå¢ +×èÏæ +Ïè×èÏæ +×èÏæ¢ +Ïè×èÏæ¢ +×èÏç +Ïè×èÏç +×èÏç¢ +Ïè×èÏç¢ +ØèÏ +ÏèØèÏ +ØèÏ¢ +ÏèØèÏ¢ +ØèÏÚ +ÏèØèÏÚ +ØèÏÚ¢ +ÏèØèÏÚ¢ +ØèÏÛ +ÏèØèÏÛ +ØèÏÛ¢ +ÏèØèÏÛ¢ +ØèÏÜ +ÏèØèÏÜ +ØèÏÜ¢ +ÏèØèÏÜ¢ +ØèÏÝ +ÏèØèÏÝ +ØèÏÝ¢ +ÏèØèÏÝ¢ +ØèÏÞ +ÏèØèÏÞ +ØèÏÞ¢ +ÏèØèÏÞ¢ +ØèÏß +ÏèØèÏß +ØèÏߢ +ÏèØèÏߢ +ØèÏá +ÏèØèÏá +ØèÏᢠ+ÏèØèÏᢠ+ØèÏâ +ÏèØèÏâ +ØèÏ⢠+ÏèØèÏ⢠+ØèÏå +ÏèØèÏå +ØèÏå¢ +ÏèØèÏå¢ +ØèÏæ +ÏèØèÏæ +ØèÏæ¢ +ÏèØèÏæ¢ +ØèÏç +ÏèØèÏç +ØèÏç¢ +ÏèØèÏç¢ +³èÙ +³èÙÛ +Ïè³èÙÛ +³èÙÛ¢ +Ïè³èÙÛ¢ +³éèÙ +³éèÙÛ +Ïè³éèÙÛ +³éèÙÛ¢ +Ïè³éèÙÛ¢ +´èÙ +´èÙÛ +Ïè´èÙÛ +´èÙÛ¢ +Ïè´èÙÛ¢ +´éèÙ +´éèÙÛ +Ïè´éèÙÛ +´éèÙÛ¢ +Ïè´éèÙÛ¢ +µèÙ +µèÙÛ +ÏèµèÙÛ +µèÙÛ¢ +ÏèµèÙÛ¢ +µéèÙ +µéèÙÛ +ÏèµéèÙÛ +µéèÙÛ¢ +ÏèµéèÙÛ¢ +¶èÙ +¶èÙÛ +Ïè¶èÙÛ +¶èÙÛ¢ +Ïè¶èÙÛ¢ +¸èÙ +¸èÙÛ +Ïè¸èÙÛ +¸èÙÛ¢ +Ïè¸èÙÛ¢ +¹èÙ +¹èÙÛ +Ïè¹èÙÛ +¹èÙÛ¢ +Ïè¹èÙÛ¢ +ºèÙ +ºèÙÛ +ÏèºèÙÛ +ºèÙÛ¢ +ÏèºèÙÛ¢ +ºéèÙ +ºéèÙÛ +ÏèºéèÙÛ +ºéèÙÛ¢ +ÏèºéèÙÛ¢ +»èÙ +»èÙÛ +Ïè»èÙÛ +»èÙÛ¢ +Ïè»èÙÛ¢ +¼èÙ +¼èÙÛ +Ïè¼èÙÛ +¼èÙÛ¢ +Ïè¼èÙÛ¢ +½èÙ +½èÙÛ +Ïè½èÙÛ +½èÙÛ¢ +Ïè½èÙÛ¢ +¾èÙ +¾èÙÛ +Ïè¾èÙÛ +¾èÙÛ¢ +Ïè¾èÙÛ¢ +¿èÙ +¿èÙÛ +Ïè¿èÙÛ +¿èÙÛ¢ +Ïè¿èÙÛ¢ +ÀèÙ +ÀèÙÛ +ÏèÀèÙÛ +ÀèÙÛ¢ +ÏèÀèÙÛ¢ +ÁèÙ +ÁèÙÛ +ÏèÁèÙÛ +ÁèÙÛ¢ +ÏèÁèÙÛ¢ +ÂèÙ +ÂèÙÛ +ÏèÂèÙÛ +ÂèÙÛ¢ +ÏèÂèÙÛ¢ +ÂèÏèÙ +ÂèÏèÙÛ +ÏèÂèÏèÙÛ +ÂèÏèÙÛ¢ +ÏèÂèÏèÙÛ¢ +ÃèÙ +ÃèÙÛ +ÏèÃèÙÛ +ÃèÙÛ¢ +ÏèÃèÙÛ¢ +ÄèÙ +ÄèÙÛ +ÏèÄèÙÛ +ÄèÙÛ¢ +ÏèÄèÙÛ¢ +ÅèÙ +ÅèÙÛ +ÏèÅèÙÛ +ÅèÙÛ¢ +ÏèÅèÙÛ¢ +ÆèÙ +ÆèÙÛ +ÏèÆèÙÛ +ÆèÙÛ¢ +ÏèÆèÙÛ¢ +ÈèÙ +ÈèÙÛ +ÏèÈèÙÛ +ÈèÙÛ¢ +ÏèÈèÙÛ¢ +ÉèÙ +ÉèÙÛ +ÏèÉèÙÛ +ÉèÙÛ¢ +ÏèÉèÙÛ¢ +ÉéèÙ +ÉéèÙÛ +ÏèÉéèÙÛ +ÉéèÙÛ¢ +ÏèÉéèÙÛ¢ +ÊèÙ +ÊèÙÛ +ÏèÊèÙÛ +ÊèÙÛ¢ +ÏèÊèÙÛ¢ +ËèÙ +ËèÙÛ +ÏèËèÙÛ +ËèÙÛ¢ +ÏèËèÙÛ¢ +ÌèÙ +ÌèÙÛ +ÏèÌèÙÛ +ÌèÙÛ¢ +ÏèÌèÙÛ¢ +ÍèÙ +ÍèÙÛ +ÏèÍèÙÛ +ÍèÙÛ¢ +ÏèÍèÙÛ¢ +ÏèÙ +ÏèÙÛ +ÏèÏèÙÛ +ÏèÙÛ¢ +ÏèÏèÙÛ¢ +ÑèÙ +ÑèÙÛ +ÏèÑèÙÛ +ÑèÙÛ¢ +ÏèÑèÙÛ¢ +ÒèÙ +ÒèÙÛ +ÏèÒèÙÛ +ÒèÙÛ¢ +ÏèÒèÙÛ¢ +ÔèÙ +ÔèÙÛ +ÏèÔèÙÛ +ÔèÙÛ¢ +ÏèÔèÙÛ¢ +ÕèÙ +ÕèÙÛ +ÏèÕèÙÛ +ÕèÙÛ¢ +ÏèÕèÙÛ¢ +ÖèÙ +ÖèÙÛ +ÏèÖèÙÛ +ÖèÙÛ¢ +ÏèÖèÙÛ¢ +×èÙ +×èÙÛ +Ïè×èÙÛ +×èÙÛ¢ +Ïè×èÙÛ¢ +ØèÙ +ØèÙÛ +ÏèØèÙÛ +ØèÙÛ¢ +ÏèØèÙÛ¢ +³èÖèÙ +³èÖèÙÛ +Ïè³èÖèÙÛ +³èÖèÙÛ¢ +Ïè³èÖèÙÛ¢ +ºè¼èÙ +ºè¼èÙÛ +Ïèºè¼èÙÛ +ºè¼èÙÛ¢ +Ïèºè¼èÙÛ¢ +ÂèÂèÙ +ÂèÂèÙÛ +ÏèÂèÂèÙÛ +ÂèÂèÙÛ¢ +ÏèÂèÂèÙÛ¢ +ÆèÆèÙ +ÆèÆèÙÛ +ÏèÆèÆèÙÛ +ÆèÆèÙÛ¢ +ÏèÆèÆèÙÛ¢ +¤ +¤¢ +¤¡ +¥ +¥¢ +¥¡ +¦ +¦¢ +¦¡ +§ +§¢ +§¡ +¨ +¨¢ +¨¡ +© +©¢ +©¡ +ª +ª¢ +ª¡ +¬ +¬¢ +¬¡ + +¢ +¡ +° +°¢ +°¡ +± +±¢ +±¡ +² +²¢ +²¡ +ÙÙ¡ +¢ +£ +« +® +¯ +Ç +Î +Ð +Ó +ÙÚ +Û +Ü +Ý +Þ +ß +à +á +â +ã +ä +å +æ +ç +è +é +ê +¡é +êé + +ïB0 +ïB1 +ïB2 +ïB3 +ïB4 +ïB5 +ïB6 +ïB7 +ïB8 +ïB9 diff --git a/usr/src/lib/iconv_modules/hi_IN/testData/NuktaTest.iscii b/usr/src/lib/iconv_modules/hi_IN/testData/NuktaTest.iscii new file mode 100644 index 0000000000..8d910a4c17 --- /dev/null +++ b/usr/src/lib/iconv_modules/hi_IN/testData/NuktaTest.iscii @@ -0,0 +1,38 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright 2006 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# +³é +´é +µé +ºé +¿é +Àé +Éé +ªé +ßé +¦é +Ûé +§é +Üé +¡é +êé diff --git a/usr/src/lib/iconv_modules/hi_IN/testData/PC-ISCII b/usr/src/lib/iconv_modules/hi_IN/testData/PC-ISCII new file mode 100644 index 0000000000..f9fcf4a442 --- /dev/null +++ b/usr/src/lib/iconv_modules/hi_IN/testData/PC-ISCII @@ -0,0 +1,118 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + * + * Copyright 2006 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + * + */ + + PC-ISCII ISCII-91 + 0x80 0xA1 + 0x81 0xA2 + 0x82 0xA3 + 0x83 0xA4 + 0x84 0xA5 + 0x85 0xA6 + 0x86 0xA7 + 0x87 0xA8 + 0x88 0xA9 + 0x89 0xAA + 0x8A 0xAB + 0x8B 0xAC + 0x8C 0xAD + 0x8D 0xAE + 0x8E 0xAF + 0x8F 0xB0 + 0x90 0xB1 + 0x91 0xB2 + 0x92 0xB3 + 0x93 0xB4 + 0x94 0xB5 + 0x95 0xB6 + 0x96 0xB7 + 0x97 0xB8 + 0x98 0xB9 + 0x99 0xBA + 0x9A 0xBB + 0x9B 0xBC + 0x9C 0xBD + 0x9D 0xBE + 0x9E 0xBF + 0x9F 0xC0 + 0xA0 0xC1 + 0xA1 0xC2 + 0xA2 0xC3 + 0xA3 0xC4 + 0xA4 0xC5 + 0xA5 0xC6 + 0xA6 0xC7 + 0xA7 0xC8 + 0xA8 0xC9 + 0xA9 0xCA + 0xAA 0xCB + 0xAB 0xCC + 0xAC 0xCD + 0xAD 0xCE + 0xAE 0xCF + 0xAF 0xD0 + + 0xE0 0xEF + + 0xE1 0xD1 + 0xE2 0xD2 + 0xE3 0xD3 + 0xE4 0xD4 + 0xE5 0xD5 + 0xE6 0xD6 + 0xE7 0xD7 + 0xE8 0xD8 + 0xE9 0xD9 + 0xEA 0xDA + 0xEB 0xDB + 0xEC 0xDC + 0xED 0xDD + 0xEE 0xDE + 0xEF 0xDF + + 0xF0 0xF0 + + 0xF1 0xE0 + 0xF2 0xE1 + 0xF3 0xE2 + 0xF4 0xE3 + 0xF5 0xE4 + 0xF6 0xE5 + 0xF7 0xE6 + 0xF8 0xE7 + 0xF9 0xE8 + 0xFA 0xE9 + 0xFB 0xEA + + For numerals + 0x30 <---- 0xF1 + 0x31 <---- 0xF2 + 0x32 <---- 0xF3 + 0x33 <---- 0xF4 + 0x34 <---- 0xF5 + 0x35 <---- 0xF6 + 0x36 <---- 0xF7 + 0x37 <---- 0xF8 + 0x38 <---- 0xF9 + 0x39 <---- 0xFA diff --git a/usr/src/lib/iconv_modules/hi_IN/testData/PremTest.iscii b/usr/src/lib/iconv_modules/hi_IN/testData/PremTest.iscii new file mode 100644 index 0000000000..7397d856c5 --- /dev/null +++ b/usr/src/lib/iconv_modules/hi_IN/testData/PremTest.iscii @@ -0,0 +1,129 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright 2006 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# +ÔÚï3ºéÛĤÑÜ /ÕÚØ /³Ú /×ÌÍ .ÃÚê .Ñ´Æ© .ÔÛÑÚ×ÛÂÚ .³á .Ï¢µ .Ìᢠ.¿ÞÊÚ .ØÝ¥ .ÃÚê .¹å½á-Ê¿éá, +¤ÌÛÏ-µÏÜÊ /×ËÜ /ÔÜÑÚ×ÛÂÚ /Ìᢠ/¿ÞÊá /ØÝÍá /Ãáê /³å§ /ÆßÂèÍ /±Ï /µÚÆ /³Ü /̺ÑÜ× 0׺ÚÂÚ 0ÃÚ, 0Âå +³å¦ .¤ÉéÜÌ .³Ü .ÈÛƳ .ØÜ .Ìᢠ.̺éá .ÑáÂÚ .ÃÚê .ºÜÔÆ .³á .ÈèÏÂèÍá³ .ÔÛËÚµ .Ìᢠ.¥ÌåÄ-ÈèÏÌåÄ -³Ú -ÈèÏÚÅÚÆèÍ +ÃÚê .ÕÚ×Æ .ÔÛËÚµ .Ìá¢, .×ÚØÛÂèͳèÖáÂèÏ .Ìá¢, /×ÚÌÚºÛ³ /ÔèÍÔ×èÃÚ /Ìá¢, /³ÑÚ-³åÕÑ /Ìá¢, /¨ÄèÍåµ-ÅÆèÅå¢ /Ìá¢, +¥ØÚÏ-ÔèÍÔØÚÏ -Ìá¢, -×ÏèÔÂèÏ -ÔÛÑÚ×ÛÂÚ -ÔÍÚÈ -ÏØÜ -ÃÜê + + ÏÚº³Ïè̸ÚÏÜ .ÔÛÖÍ-ÔÚ×ÆÚ .Ìá, .³ÔÛµÁ .ÈèÏáÌ .±Ï .ÔÜÏØ .³á .ÔÏèÁÆ .Ìá¢, .³ÚÏÜµÏ .³ÑÚÊÂèÂÞ -±Ï +¸Û³Æ -ÊÆÚÆá -Ìá¢, -ÔèÍÔ×ÚÍÜ -×ÝÏÌá, -¦ÂèÏ, -ÌÛ×è×Ü -±Ï -¨Ê½Æ -³Ú -Ï庵ÚÏ -³ÏÆá -Ìᢠ-ÑÛÈè -Ãáê -×ËÜ .³Ü +¥¢´å .Ìᢠ.ÔÛÑÚ×ÛÂÚ .³Ú -ÌÄ -¹ÚÍÚ -ØÝ¥ -ÃÚê -×¢×ÚÏ -Ìᢠ-³èÍÚ -Øå -ÏØÚ -Øâ, -¦×³Ü -³Û×Ü -³å -´éÊÏ -Æ +ÃÜê .ʽáÏ .Ñ¿é .ÏØá .Øâ¢ê .ÂÜÂÏå¢ .³Ü .Ñ¿éÚ§ .³á .ÑÛ¬ .ÉÑÜ .ÊÄÜ .ºÚ .ÏØÜ .Øâê .³ØÜ¢ /¸æ×Ï /ÊÛ¹Ü /Øݧ +Øâ; .Èæ-ÊÚÏØ .³Ú .ÕåÏ .Ì¸Ú .ØÝ¥ .Øâê .³ØÜ¢ .ÕÂÏ¢º .³Ú .¶åÏ .×µèÏÚÌ -¹Û¿éÚ -ØÝ¥ -Øâê -ÏÚºÚ -×á -Ñá³Ï +Ï¢³ /³ /¦×Ü /ÅÝÆ /Ìᢠ/Ì×è /Ãáê /ÍØÚ¡ /³ /³Û /ɳÜÏå /³å 0Èâ×á 0ÌÛÑÂá 0Âå 0Ôá 0Ïå½ÛÍÚ¡ 0Æ 0Ñá³Ï +¤ÉéÜÌ -´ÚÂá -ÍÚ -Ìij -ÈÜÂáê + + ÕÂÏ¢º, /ÂÚÕ /µ¢ºÜÉéÚ /´áÑÆá /×á /ÊÝÄèÅÛ /ÂÜÔèÏ /ØåÂÜ .Øâ, .ÔÛ¸ÚÏ-Õ³èÂÛ .³Ú .ÔÛ³Ú× .ØåÂÚ .Øâ, +Èá¸ÜÄÚ -Ì×Ñå¢ -³å -×ÝÑ»ÚÆá -³Ü -¥Ä -È¿éÂÜ -Øâê -Íá -ÄÑÜÑᢠ-ºéåÏå¢ -³á -×Úà -ÈáÕ -³Ü .ºÚÂÜ .ÃÜ¢ê .(¦× +×ÌèÈèÏÄÚÍ .³á .Ñåµå¢ .×á .ÄÝÆÛÍÚ .¤Ê .ËÜ .´ÚÑÜ .ÆØÜ¢ .Øâê) .¦×ÑÛ¬ .¤µÏ .ÌÛϺéÚ .׺èºÚĤÑÜ .±Ï .ÌÜÏ +ÏæÕÆ -¤ÑÜ -¤ÈÆÚ -¤ÅÛ³Ú¢Õ -×ÌÍ -ÊÝÄèÅÛ -ÂÜÔèÏ -³ÏÆá .Ìᢠ.ÔèÍÂÜ .³ÏÂá .Ãá, .Âå .³Û×Ü .ÔÛ¸ÚÏÕÜÑ .ÈÝÏÝÖ +³å .³èÍÚ -¥ÈÂèÂÛ -Øå -׳ÂÜ -ÃÜ? -ÄåÆå¢ -³á -ÈÚ× -ÌæÏÞ×Ü -ºÚµÜÏᢠ-ÃÜ; -ºÜÔÛ³Ú -³Ü -³å§ -¸ÛÆèÂÚ -Æ -ÃÜ; +¶Ï .Ìᢠ.Êâ¾á .¸´æÂÛÍÚ¡ .³ÏÂá .Ãáê .¥´ÛÏ .±Ï .³ÏÂá .ØÜ /³èÍÚ? /ÈèÏÚ£³ÚÑ /ÄåÆå¢ /ÌÛÂèÏ /ÆÚÕèÂÚ /³Ï³á +ÊÛ×Ú .ÊÛ¹Ú³Ï .Êâ¾ .ºÚÂá, .ÌÝØÏá .׺ .ºÚÂá, .±Ï .Ñ¿éÚ§ .³á .ÄÚ¡Ô-Èᢸ -ØåÆá -ѵÂáê -ÉÛÏ -´ÊÏ -Æ +ØåÂÜ -ÃÜ .³Û .³Ê .ÄåÈØÏ .Øݧ, .³Ê .ÂÜ×ÏÚ .ÈØÏ, .³Ê .ÕÚÌ! .¶Ï .³á .ËÜÂÏ .×á .ÊÚÏ-ÊÚÏ .ÊÝÑÚÔÚ +¥ÂÚ /³Û /´ÚÆÚ /ÂâÍÚÏ .Øâê .ÍØÚ¡ .×á .ºÔÚÊ .ÌÛÑÂÚ .¸Ñå, .¥Âá .Øâ; .Ä×èÂÏ´èÔÚÆ .ÊÛ¹Ú°ê .ÍØÚ¡ .³ +³Û .ÊÚÔÏ¸Ü .ÔÛÔÕ .Øå³Ï .³ÌÏá .ØÜ .Ìᢠ.´ÚÆÚ .Ï´ /ºÚÂÚ /ÃÚ, /±Ï /ÄåÆå¢ /ÌÛÂèÏ /ÄåÆå¢ /³ÚÌ /×ÚÃ- +×Úà .³ÏÂá .Ãáê .ÌÛÏºÚ .׺èºÚĤÑÜ .³á .¶Ï .Ìᢠ.³å§ .Ê¿éÚ -ÊÞÀéÚ -Æ -ÃÚ, -¦×ÑÛÍá -¨ÆèØÜ¢ -³á -ÄÜÔÚÆ´ÚÆá +Ìᢠ-ÊÚºÛÍÚ¡ -ØåÂÜ -ÃÜ¢ê + + ÌµÏ 0ÍØ 0ÊÚ 0Æ /ÃÜ /³Û /ÌÛÏºÚ /³á /¶Ï /³á /±Ï /Ñåµ /¨Æ³á /¦× /ÔèÍÔØÚÏ /×á /´ÝÕ /Øå¢ê +¶ÏÔÚÑå¢ /³Ú /Âå /³ØÆÚ /ØÜ /³èÍÚ, /ÌÝØÑèÑáÔÚÑá, 0¶Ï 0³á 0Ææ³Ï¸Ú³Ï 0³ 0ÆÛÂèÍ 0ÄèÔáÖÈÞÏèÁ 0½ÛÈèÈÁÛÍÚ¡ +³ÛÍÚ 0³ÏÂá 0Ãá--Ê¿éÚ 0ÌÆØÞ× 0´áÑ 0Øâê 0¶Ï 0³å 0ÂÊÚØ 0³Ï 0ÄáÂÚ 0Øâê 0´ÝÄÚ /Æ /³Ïá, /³Û×Ü /³å +¦×³Ü .¸Ú½ .È¿éá .¥ÄÌÜ .ÄÜÆ-ÄÝÆÛÍÚ, .³Û×Ü .³á .³ÚÌ .³Ú /ÆØÜ¢ /ÏØÂÚ, /Æ /¶Ï /³Ú /Æ /¶Ú½ /³Úê +ÊÝÏÚ 0Ïåµ 0Øâê /ÍØÚ¡ /³ /³Û /ÌÛÏºÚ /³Ü /ÊáµÌ /×ÚØÊÚ /³å /¦××á /¦ÂÆÚ /ÄèÔáÖ /ÃÚ /³Û /¤Ô×Ï /´åº +´åº³Ï .ÈÂÛ .³å .ÑÂÚ¿éÂÜ .ÃÜ¢ê .ÈÏ .¨ÆèØᢠ.¦×³Ú .¤Ô×Ï .ÌÝÕè³ÛÑ .×á /ÌÛÑÂÚ /ÃÚê /ÔØ /×åÂÜ /ØÜ +ÏØÂÜ 0ÃÜ¢, 0ÂÊ 0³ 0¦ÅÏ 0ÊÚºéÜ 0ÊÛ¹ 0ºÚÂÜ 0ÃÜê 0±Ï, /ÏÚ /³å /ºÊ /×å /ºÚÂÜ /ÃÜ¢, /ÂÊ /³ØÜ¢ +ÌÛÏºÚºÜ -¶Ï -Ìᢠ-¥Âá -Ãáê -ØÚ¡, -Ææ³Ïå¢ -ÈÏ -ÔØ -¤ÈÆÚ -µÝ×è×Ú -¨ÂÚÏÂÜ -ÏØÂÜ -ÃÜ¢ --- -³èÍÚ .ÈÚÆ .ÌÚ¡µá +Øâ¢? /³Ø /Äå, .¥³Ï .Ñá .ºÚÍ¡ê .´ÚÆá .³Ü .ÉÝÏ× .ÆØÜ¢ .Øâ? .Ñá .ºÚ³Ï .´ÚÆÚ .×ÛÏ .Ƚ³ .Äå, .´ÚÍ¡, +¸ÚØá .³ÝÂèÂá .³å .´ÛÑÚÔá; /ÈÏ /ÏÞÊÏÞ /ÔØ /ËÜ /³Ý¹ /Æ /³Ø /׳ÂÜ /ÃÜ¢ê /¨Æ³å /¤ÈÆá /ÈÂÛ /×á /¨ÂÆÚ +ÌÑÚÑ 1Æ 1ÃÚ, 1ºÛÂÆÚ 1ÌÜÏ 1×ÚØÊ 1×áê 0¨ÆèØå¢Æá 0¨Æ³Ú 0ÆÚÌ 0ÌÜÏ 0ÊÛµ¿éÞ 0Ï´ 0¹å¿éÚ 0ÃÚê 0ÕÚÍÄ +ÌÛÏºÚºÜ -¤ÈÆÜ -×ÉéÚ§ -ÄáÆá -³á -ÑÛ¬ -×ÚÏÚ -¦ÑºÚÌ -ÌÜÏ -×ÚØÊ -ØÜ -³á -×ÛÏ -ÃåÈ -ÄáÂá -Ãáê +.pa + ¬³ .ÄÛÆ .ÊáµÌ .×ÚØÊÚ .³á .×ÛÏ .Ìᢠ.ÄÏèÄ .ØåÆá -ѵÚê -¨ÆèØå¢Æá -Ñæ¢¿Ü -×á -³ØÚ --- -ºÚ³Ï -ÌÛÏºÚ + ×ÚØÊ -³å -ÊÝÑÚ -ÑÚê -³Û×Ü -سÜÌ -³á .ÍØÚ¡ .×á .ÄÔÚ .ÑÚÔá¢ê .Äæ¿é, .ºÑèÄÜ .³Ïê .Ñæ¢¿Ü .µÍÜ, .Âå + ÌÛÏºÚºÜ .Æá -³ØÚ -¸Ñ -¤ËÜ -¥Âá -Øâ¢, -ÊáµÌ -×ÚØÊ -³Ú -ÌÛºÚºé -µÏÌ -ÃÚê -¦ÂÆÜ -ÂÚÊ -³ØÚ¡ -³Û + ¨Æ³á -×ÛÏ -Ìᢠ-ÄÏèÄ -Øå, -±Ï -ÈÂÛ .ÕÂÏ¢º .´áÑÂÚ .ÏØáê .¸áØÏÚ .×ÝÏè´ .Øå .µÍÚê .Ñæ¢¿Ü .×á .³ØÚ + -- .ºÚ³Ï .³Ø, -¤ËÜ -¸ÑÛÍá -ÆØÜ¢ -Âå -ÔØ -¥È -ØÜ -سÜÌ -³á -ÍØÚ¡ -¸ÑÜ -ºÚÍ¡µÜê -ÌÛÏºÚºÜ + Ê¿éÜ /ÄÛѸ×èÈ /ÊÚºéÜ /´áÑ /ÏØá /Ãá; 0Äå 0ØÜ 0³ÛÕèÂå¢ 0Ìᢠ0ÌÜÏ×ÚØÊ 0³å 0ÌÚ 0Øݧ 0ºÚÂÜ 0ÃÜê + »Ý¡»ÑÚ³Ï -ÊåÑá --- -³èÍÚ -×Ú -ÄÌ -ÑÊå¢ -ÈÏ -Øâ? -ºéÏÚ -×Ú -×ÊèÏ -ÆØÜ¢ -ØåÂÚ? + +ÌÜÏ -- ¤Ïá Âå ºÚ³Ï ×ÝÆ ØÜ ¥¦Íá Æê ±ÏÂᢠÆںݳ ÌÛºéÚº ØåÂÜ ØÜ Øâ¢ê + +ÌÛÏºÚ -- ºÜ ØÚ¡, ¸ÑÚ ³èÍå¢ Æ ºÚ©¡? Äå ³ÛÕèÂå¢ ¥È³Ü ÌÚ ØåÂÜ Øâê + +ÌÜÏ -- ºÆÚÊ, ¦× ËÏå×á Æ ÏØÛÍáµÚê ÔØ ¸ÚÑ ×å¸Ü Øâ ³Û ¥È³á ÌÝØÏá ÅÏá ÏØá¢, +±Ï ÌÚ Øå ºÚÍê ÈÏ ºÚ¦Íá, ×ÝÆ ¥¦Íáê ³èÍå¢ ´éÚÌ´èÔÚØ ¨Æ³Ú ÄÛÑ ÄÝ´Ú¦ÍáµÚ? + +ÌÛÏºÚ -- ¦×Ü ÊÚ ÈÏ ÌÚ ØÜ ³Ï³á ºÚ©¡µÚê + +ÌÜÏ -- Ì⢠´áÑÞ¡µÚ ØÜ ÆØÜ¢ê ¥È ºÚ³Ï ×ÝÆ ¥¦Íáê + +ÌÛÏºÚ -- ¤Ïá ÍÚÏ, ,ºÚÆÚ +ØåµÚ +سÜÌ +³á +ÍØÚ¡ê +×ÛÏ-ÄÏèÄ +´Ú³ +ÆØÜ¢ +Øâ; +ÌÝ»á +ÈÏáÕÚÆ ³ÏÆá ³Ú ÊØÚÆÚ Øâê + +ÌÜÏ -- ³Ý¹ ËÜ Øå, ¨Æ³Ü ´ÚÂÛÏ Âå ³ÏÆÜ ØÜ È¿éáµÜê + +ÌÛÏºÚ -- ¤¸è¹Ú, ¬³ ¸ÚÑ ±Ï ¸Ñ ÑÞ¡ê + +ÌÜÏ +-- +Øϵۺé +ÆØÜ¢, +ºÊ +³ +¥È +×ÝÆ +Æ +¥Ôᢵá, +Ì⢠+ÌÝØÏá +Ìᢠ+ØÚà ,ØÜ Æ +ѵک¡µÚê + + ÌÛÏºÚ .×ÚØÊ .̺ÊÞÏ .Øå³Ï .¤¢ÄÏ .µÍá, .Âå .ÊáµÌ .×ÚØÊÚ .Æá -ÂèÍæÏÛÍÚ¡ -ÊÄÑ³Ï -Ñá³ÛƳÏÚØÂá +Øݬ, .³ØÚ .-- .ÂÝÌèØᢠ.ÆÛµå¿éÜ .ÕÂÏ¢º .¦ÂÆÜ .ÈèÍÚÏÜ .Øâ! .¸ÚØá .³å§ .ÌÏ .ØÜ /ºÚÍ, /ÈÏ /¨¾Æá /³Ú /ÆÚÌ +ÆØÜ¢ -ÑáÂá! -Ææº -³å§ -ÂÝÌ -ºâ×Ú -¥ÄÌÜ -Øå! + +ÌÛÏºÚ --- -³èÍÚ -³ØÞ¡, -ÌÜÏ -×ÚØÊ -ÌÚÆÂá -ØÜ -Æ -Ãáê -Ê¿éÜ -ÌÝÕè³ÛÑ -×á -ÈÜ¹Ú -¹Ý¿éÚ³Ï -¥ÍÚ -ØÞ¡ê + +ÊáµÌ .-- -³èÍÚ -ºâ×á -ÔØ -´ÝÄ -ÆÛ´½è½Þ -Øâ¢, -Ôâ×á -ØÜ -×ʳå -×Ì»Âá -Øâ¢? -¨Æ³á -ËÜ -Âå -ÊÚÑ-ʸè¸á -Øâ¢; +ÍÚ -×Ê³Ú -×ÉéÚÍÚ -³Ï -¿ÚÑÚ? + +ÌÛÏºÚ .-- .Ê¿éÚ .ÑÂÜ .¥ÄÌÜ .Øâê .ºÊ .¥ .ºÚÂÚ .Øâ, .ÂÊ .̺ÊÞÏ .Øå³Ï .ÌÝ»á .ËÜ .´áÑÆÚ -ØÜ -È¿éÂÚ +Øâê + +ÊáµÌ -- ÄÝÂè³ÚÏ ³èÍå¢ ÆØÜ¢ ÄáÂá? + +ÌÛÏºÚ 0-- 0ÊÏÚÊÏ 0³á 0¥ÄÌÜ 0Øâ¢, 0¨ÌèÏ /Ìá¢, /ÄÏèºá /Ìᢠ/ÌÝ»×á /Äå /¤¢µÝÑ /©¡¸áê /ÌÝÑÚØÛºéÚ /³ÏÆÚ /ØÜ +È¿éÂÚ -Øâ ê + +ÊáµÌ /-- /Âå /Ì⢠/ØÜ /ÄÝÂè³ÚÏ /ÄáÂÜ /ØÞ¡ê /ÆÚÏÚº /Øå /ºÚÍ¡µá, /Øå .ºÚÍ¡ê .³æÆ .³Û×Ü .³Ü .Ïå½ÛÍÚ¡ .¸ÑÚ +ÄáÂÚ -Øâê .ÏÚÆÜ .Ï޾ᢵÜ, .¤ÈÆÚ .×ÝØÚµ .ÑᢵÜê .--ØÛÏÛÍÚ, .ºÚ .ÊÚØÏ .×á .ÕÂÏ¢º .¨¾Ú .ÑÚê .ÌÜÏ×ÚØÊ +×á -³ØÆÚ, -ÌÛÍÚ¡ -¤Ê -Æ -´áÑᢵá, -¥È -ÂÕÏÜÉé -Ñá -ºÚ¦Íáê + +ÌÛÏºÚ 1-- 1ØÚ¡-ØÚ¡ 1³ØÜ¢ 1×Ú 1µéºÊ 1ËÜ 1Æ 1³ÏÆÚ! 1ºéÑÜÑ 1³ÏÚÆÚ 1¸ÚØÂÜ 1Øå 1³èÍÚ!--¾ØÏ +ØÛÏÛÍÚ, -³ØÚ¡ -ºÚÂÜ -Øâ? + +ÊáµÌ .-- .ºÚÆá -³èÍå¢ -ÆØÜ¢ -ÄáÂá? -ÌáÏá -ØÜ -´ÞÆ -ÈÛÍá, -ºå -¨×á -Ïå³áê -¤¸è¹Ú, -¨×á -Ïå³Ú, -ÌÝ»á -Ïå³å -Âå +ºÚÆÞ¡? + + ÍØ .³Ø³Ï .ÊáµÌ .×ÚØÊÚ -»ÑèÑÚ§ -Øݧ -ÄÜÔÚÆ´ÚÆá -³Ü -ÂÏÉ -¸ÑÜ¢? -ÌÛÏºÚ -Êá¸ÚÏá -³Ú + Ï¢µ -¨¿é -µÍÚê -ÊÜÔÜ -³Ü -ÌÛÆèÆÂᢠ-³ÏÆá -ѵá --- .´ÝÄÚ .³á .ÑÛ¬, .ÂÝÌèØᢠ.غéÏ .ØÝ×áÆ .³Ü .³×Ì + Øâê /ÌáÏÜ /ØÜ /ÌâÍ /Äá´á, /ºå /¨ÅÏ /ºÚÍê .Ñá³ÛÆ .ÊáµÌ .Æá .¬³ .Æ .ÌÚÆÜ? .ÄÜÔÚÆ´ÚÆá .³á .ÄèÔÚÏ + ³ -µÍÜ; -ÈÏ -¬³Ú¬³ -ÈÏ-ÈÝÏÝÖ -³á -×ÚÌÆá -ºÚÂá .Øݬ .ÈÚ¡Ô .Ê¡Å .×á .µÍáê .ËÜÂÏ .»Ú¡³Ú .×¢Íåµ + ×á 0³ÌÏÚ 0´ÚÑÜ 0ÃÚê 0ÌÜÏ×ÚØÊ 0Æá 0Äå-¬³ 0ÌÝØÏá 0¦ÅÏ-¨ÅÏ 0³Ï 0ÄÛÍá 0Ãá; /±Ï /¤ÈÆÜ + ×ÉéÚ§ /ºÂÚÆá /³á /ÑÛ¬ /ÊÚØÏ /½ØÑ /ÏØá /Ãáê /ÉÛÏ /³èÍÚ /ÃÚ 0ÊáµÌ 0Æá 0¤ÆèÄÏ 0ÈØÝ¡¸³Ï 0ÊÚºéÜ + ¨Ñ½ 0ÄÜ, 0ÌÝØÏá 0³Ý¹ 0´è /³á /Æܸá /Éᢳ /ÄÛÍá, /³Ý¹ /ÊÚØÏ; /±Ï /³ÛÔÚ¿éá /¤ÆèÄÏ /×á /ÊÆèÄ + ³Ï³á /³ÝÁ¿Ü /ÑµÚ /ÄÜê /ÌÜÏ×ÚØÊ /ÄÏÔÚºá /ÈÏ /Âå /Ãá /ØÜ, 0ÌÝØÏá 0ÊÚØÏ 0Éᢳá 0ºÚÂá 0Äá´á, + ¸Þ¿éÛÍå¢ /³Ü /»Æ³ /ËÜ /³ÚÆ /Ìᢠ.È¿éÜê .ÉÛÏ .ÄÏÔÚºéÚ .ÊÆèÄ .ØÝ¥ .Âå .×Ì» .µÍá, .ÊáµÌ .×ÚØÊÚ + ÊÛµ¿é -µÍÜ¢ê -¸Ýȳá -×á -¶Ï -³Ü -ÏÚØ -ÑÜê diff --git a/usr/src/lib/iconv_modules/hi_IN/testData/README b/usr/src/lib/iconv_modules/hi_IN/testData/README new file mode 100644 index 0000000000..52a405b6c5 --- /dev/null +++ b/usr/src/lib/iconv_modules/hi_IN/testData/README @@ -0,0 +1,26 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + * + * Copyright 2006 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + * + */ + +ISCII Test Data For Various Cases |