/**************************************************************
 * 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 *************************************************************/



/* ======================================================================= */

/* This file contain the UniCode to DBCS tables for the following */
/* chinese simplified (China) charsets: */
/* GB (GB2312) */

/* In this file we have only the GB tables for the kanji characters, */
/* because these tables can't shared with the GBK tables. */

/* ======================================================================= */

static sal_uInt16 const aImplUniToDBCSTab_GB_4E[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xD2BB, 0xB6A1, 	 0, 0xC6DF, 	 0, 	 0, 	 0, 0xCDF2, /* 0x00 */
	0xD5C9, 0xC8FD, 0xC9CF, 0xCFC2, 0xD8A2, 0xB2BB, 0xD3EB, 	 0, /* 0x00 */
	0xD8A4, 0xB3F3, 	 0, 0xD7A8, 0xC7D2, 0xD8A7, 0xCAC0, 	 0, /* 0x10 */
	0xC7F0, 0xB1FB, 0xD2B5, 0xB4D4, 0xB6AB, 0xCBBF, 0xD8A9, 	 0, /* 0x10 */
		 0, 	 0, 0xB6AA, 	 0, 0xC1BD, 0xD1CF, 	 0, 0xC9A5, /* 0x20 */
	0xD8AD, 	 0, 0xB8F6, 0xD1BE, 0xE3DC, 0xD6D0, 	 0, 	 0, /* 0x20 */
	0xB7E1, 	 0, 0xB4AE, 	 0, 0xC1D9, 	 0, 0xD8BC, 	 0, /* 0x30 */
	0xCDE8, 0xB5A4, 0xCEAA, 0xD6F7, 	 0, 0xC0F6, 0xBED9, 0xD8AF, /* 0x30 */
		 0, 	 0, 	 0, 0xC4CB, 	 0, 0xBEC3, 	 0, 0xD8B1, /* 0x40 */
	0xC3B4, 0xD2E5, 	 0, 0xD6AE, 0xCEDA, 0xD5A7, 0xBAF5, 0xB7A6, /* 0x40 */
	0xC0D6, 	 0, 0xC6B9, 0xC5D2, 0xC7C7, 	 0, 0xB9D4, 	 0, /* 0x50 */
	0xB3CB, 0xD2D2, 	 0, 	 0, 0xD8BF, 0xBEC5, 0xC6F2, 0xD2B2, /* 0x50 */
	0xCFB0, 0xCFE7, 	 0, 	 0, 	 0, 	 0, 0xCAE9, 	 0, /* 0x60 */
		 0, 0xD8C0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
	0xC2F2, 0xC2D2, 	 0, 0xC8E9, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC7AC, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC1CB, 	 0, /* 0x80 */
	0xD3E8, 0xD5F9, 	 0, 0xCAC2, 0xB6FE, 0xD8A1, 0xD3DA, 0xBFF7, /* 0x80 */
		 0, 0xD4C6, 0xBBA5, 0xD8C1, 0xCEE5, 0xBEAE, 	 0, 	 0, /* 0x90 */
	0xD8A8, 	 0, 0xD1C7, 0xD0A9, 	 0, 	 0, 	 0, 0xD8BD, /* 0x90 */
	0xD9EF, 0xCDF6, 0xBFBA, 	 0, 0xBDBB, 0xBAA5, 0xD2E0, 0xB2FA, /* 0xA0 */
	0xBAE0, 0xC4B6, 	 0, 0xCFED, 0xBEA9, 0xCDA4, 0xC1C1, 	 0, /* 0xA0 */
		 0, 	 0, 0xC7D7, 0xD9F1, 	 0, 0xD9F4, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 0xC8CB, 0xD8E9, 	 0, 	 0, 	 0, 0xD2DA, /* 0xB0 */
	0xCAB2, 0xC8CA, 0xD8EC, 0xD8EA, 0xD8C6, 0xBDF6, 0xC6CD, 0xB3F0, /* 0xC0 */
		 0, 0xD8EB, 0xBDF1, 0xBDE9, 	 0, 0xC8D4, 0xB4D3, 	 0, /* 0xC0 */
		 0, 0xC2D8, 	 0, 0xB2D6, 0xD7D0, 0xCACB, 0xCBFB, 0xD5CC, /* 0xD0 */
	0xB8B6, 0xCFC9, 	 0, 	 0, 	 0, 0xD9DA, 0xD8F0, 0xC7AA, /* 0xD0 */
		 0, 0xD8EE, 	 0, 0xB4FA, 0xC1EE, 0xD2D4, 	 0, 	 0, /* 0xE0 */
	0xD8ED, 	 0, 0xD2C7, 0xD8EF, 0xC3C7, 	 0, 	 0, 	 0, /* 0xE0 */
	0xD1F6, 	 0, 0xD6D9, 0xD8F2, 	 0, 0xD8F5, 0xBCFE, 0xBCDB, /* 0xF0 */
		 0, 	 0, 	 0, 0xC8CE, 	 0, 0xB7DD, 	 0, 0xB7C2	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_4F[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xC6F3, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 0xD8F8, 0xD2C1, 	 0, 	 0, 0xCEE9, 0xBCBF, 0xB7FC, /* 0x00 */
	0xB7A5, 0xD0DD, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD6DA, /* 0x10 */
	0xD3C5, 0xBBEF, 0xBBE1, 0xD8F1, 	 0, 	 0, 0xC9A1, 0xCEB0, /* 0x10 */
	0xB4AB, 	 0, 0xD8F3, 	 0, 0xC9CB, 0xD8F6, 0xC2D7, 0xD8F7, /* 0x20 */
		 0, 	 0, 0xCEB1, 0xD8F9, 	 0, 	 0, 	 0, 0xB2AE, /* 0x20 */
	0xB9C0, 	 0, 0xD9A3, 	 0, 0xB0E9, 	 0, 0xC1E6, 	 0, /* 0x30 */
	0xC9EC, 	 0, 0xCBC5, 	 0, 0xCBC6, 0xD9A4, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 0xB5E8, 	 0, 	 0, 0xB5AB, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xCEBB, 0xB5CD, 0xD7A1, /* 0x40 */
	0xD7F4, 0xD3D3, 	 0, 0xCCE5, 	 0, 0xBACE, 	 0, 0xD9A2, /* 0x50 */
	0xD9DC, 0xD3E0, 0xD8FD, 0xB7F0, 0xD7F7, 0xD8FE, 0xD8FA, 0xD9A1, /* 0x50 */
	0xC4E3, 	 0, 	 0, 0xD3B6, 0xD8F4, 0xD9DD, 	 0, 0xD8FB, /* 0x60 */
		 0, 0xC5E5, 	 0, 	 0, 0xC0D0, 	 0, 	 0, 0xD1F0, /* 0x60 */
	0xB0DB, 	 0, 	 0, 0xBCD1, 0xD9A6, 	 0, 0xD9A5, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 0xD9AC, 0xD9AE, 	 0, 0xD9AB, 0xCAB9, /* 0x70 */
		 0, 	 0, 	 0, 0xD9A9, 0xD6B6, 	 0, 	 0, 	 0, /* 0x80 */
	0xB3DE, 0xD9A8, 	 0, 0xC0FD, 	 0, 0xCACC, 	 0, 0xD9AA, /* 0x80 */
		 0, 0xD9A7, 	 0, 	 0, 0xD9B0, 	 0, 	 0, 0xB6B1, /* 0x90 */
		 0, 	 0, 	 0, 0xB9A9, 	 0, 0xD2C0, 	 0, 	 0, /* 0x90 */
	0xCFC0, 	 0, 	 0, 0xC2C2, 	 0, 0xBDC4, 0xD5EC, 0xB2E0, /* 0xA0 */
	0xC7C8, 0xBFEB, 0xD9AD, 	 0, 0xD9AF, 	 0, 0xCEEA, 0xBAEE, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xC7D6, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xB1E3, /* 0xB0 */
		 0, 	 0, 	 0, 0xB4D9, 0xB6ED, 0xD9B4, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xBFA1, 	 0, 	 0, 	 0, 0xD9DE, 0xC7CE, /* 0xC0 */
	0xC0FE, 0xD9B8, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCBD7, /* 0xD0 */
	0xB7FD, 	 0, 0xD9B5, 	 0, 0xD9B7, 0xB1A3, 0xD3E1, 0xD9B9, /* 0xD0 */
		 0, 0xD0C5, 	 0, 0xD9B6, 	 0, 	 0, 0xD9B1, 	 0, /* 0xE0 */
	0xD9B2, 0xC1A9, 0xD9B3, 	 0, 	 0, 0xBCF3, 0xD0DE, 0xB8A9, /* 0xE0 */
		 0, 0xBEE3, 	 0, 0xD9BD, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
	0xD9BA, 	 0, 0xB0B3, 	 0, 	 0, 	 0, 0xD9C2			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_50[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
																	/* 0x00 */
									0xD9C4, 0xB1B6, 	 0, 0xD9BF, /* 0x00 */
		 0, 	 0, 0xB5B9, 	 0, 0xBEF3, 	 0, 	 0, 	 0, /* 0x10 */
	0xCCC8, 0xBAF2, 0xD2D0, 	 0, 0xD9C3, 	 0, 	 0, 0xBDE8, /* 0x10 */
		 0, 0xB3AB, 	 0, 	 0, 	 0, 0xD9C5, 0xBEEB, 	 0, /* 0x20 */
	0xD9C6, 0xD9BB, 0xC4DF, 	 0, 0xD9BE, 0xD9C1, 0xD9C0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 0xD5AE, 	 0, 0xD6B5, 	 0, 0xC7E3, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 0xD9C8, 	 0, 	 0, 	 0, 0xBCD9, /* 0x40 */
	0xD9CA, 	 0, 	 0, 	 0, 0xD9BC, 	 0, 0xD9CB, 0xC6AB, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xD9C9, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xD7F6, 	 0, 0xCDA3, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xBDA1, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 0xD9CC, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC5BC, 0xCDB5, /* 0x70 */
		 0, 	 0, 	 0, 0xD9CD, 	 0, 	 0, 0xD9C7, 0xB3A5, /* 0x70 */
	0xBFFE, 	 0, 	 0, 	 0, 	 0, 0xB8B5, 	 0, 	 0, /* 0x80 */
	0xC0FC, 	 0, 	 0, 	 0, 	 0, 0xB0F8, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xB4F6, 	 0, 0xD9CE, 	 0, 0xD9CF, /* 0xA0 */
	0xB4A2, 0xD9D0, 	 0, 	 0, 0xB4DF, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 0xB0C1, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 0xD9D1, 0xC9B5, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCFF1, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD9D2, 	 0, /* 0xD0 */
		 0, 	 0, 0xC1C5, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD9D6, 0xC9AE, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 0xD9D5, 0xD9D4, 0xD9D7, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xCBDB, 	 0, 0xBDA9, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 0xC6A7									/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_51[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
													0xD9D3, 0xD9D8, /* 0x00 */
		 0, 	 0, 	 0, 0xD9D9, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 0xC8E5, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 0xC0DC, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xB6F9, /* 0x30 */
	0xD8A3, 0xD4CA, 	 0, 0xD4AA, 0xD0D6, 0xB3E4, 0xD5D7, 	 0, /* 0x40 */
	0xCFC8, 0xB9E2, 	 0, 0xBFCB, 	 0, 0xC3E2, 	 0, 	 0, /* 0x40 */
		 0, 0xB6D2, 	 0, 	 0, 0xCDC3, 0xD9EE, 0xD9F0, 	 0, /* 0x50 */
		 0, 	 0, 0xB5B3, 	 0, 0xB6B5, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xBEA4, 	 0, 	 0, 0xC8EB, 	 0, 	 0, /* 0x60 */
	0xC8AB, 	 0, 	 0, 0xB0CB, 0xB9AB, 0xC1F9, 0xD9E2, 	 0, /* 0x60 */
	0xC0BC, 0xB9B2, 	 0, 0xB9D8, 0xD0CB, 0xB1F8, 0xC6E4, 0xBEDF, /* 0x70 */
	0xB5E4, 0xD7C8, 	 0, 0xD1F8, 0xBCE6, 0xCADE, 	 0, 	 0, /* 0x70 */
	0xBCBD, 0xD9E6, 0xD8E7, 	 0, 	 0, 0xC4DA, 	 0, 	 0, /* 0x80 */
	0xB8D4, 0xC8BD, 	 0, 	 0, 0xB2E1, 0xD4D9, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xC3B0, 	 0, 	 0, 0xC3E1, 0xDAA2, 0xC8DF, /* 0x90 */
		 0, 0xD0B4, 	 0, 0xBEFC, 0xC5A9, 	 0, 	 0, 	 0, /* 0x90 */
	0xB9DA, 	 0, 0xDAA3, 	 0, 0xD4A9, 0xDAA4, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xD9FB, 0xB6AC, 	 0, 	 0, 0xB7EB, /* 0xA0 */
	0xB1F9, 0xD9FC, 0xB3E5, 0xBEF6, 	 0, 0xBFF6, 0xD2B1, 0xC0E4, /* 0xB0 */
		 0, 	 0, 	 0, 0xB6B3, 0xD9FE, 0xD9FD, 	 0, 	 0, /* 0xB0 */
	0xBEBB, 	 0, 	 0, 	 0, 0xC6E0, 	 0, 0xD7BC, 0xDAA1, /* 0xC0 */
		 0, 0xC1B9, 	 0, 0xB5F2, 0xC1E8, 	 0, 	 0, 0xBCF5, /* 0xC0 */
		 0, 0xB4D5, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 0xC1DD, 	 0, 0xC4FD, 	 0, 	 0, /* 0xD0 */
	0xBCB8, 0xB7B2, 	 0, 	 0, 0xB7EF, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xD9EC, 	 0, 0xC6BE, 	 0, 0xBFAD, /* 0xE0 */
	0xBBCB, 	 0, 	 0, 0xB5CA, 	 0, 0xDBC9, 0xD0D7, 	 0, /* 0xF0 */
	0xCDB9, 0xB0BC, 0xB3F6, 0xBBF7, 0xDBCA, 0xBAAF, 	 0, 0xD4E4	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_52[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xB5B6, 0xB5F3, 0xD8D6, 0xC8D0, 	 0, 	 0, 0xB7D6, 0xC7D0, /* 0x00 */
	0xD8D7, 	 0, 0xBFAF, 	 0, 	 0, 0xDBBB, 0xD8D8, 	 0, /* 0x00 */
		 0, 0xD0CC, 0xBBAE, 	 0, 	 0, 	 0, 0xEBBE, 0xC1D0, /* 0x10 */
	0xC1F5, 0xD4F2, 0xB8D5, 0xB4B4, 	 0, 0xB3F5, 	 0, 	 0, /* 0x10 */
	0xC9BE, 	 0, 	 0, 	 0, 0xC5D0, 	 0, 	 0, 	 0, /* 0x20 */
	0xC5D9, 0xC0FB, 	 0, 0xB1F0, 	 0, 0xD8D9, 0xB9CE, 	 0, /* 0x20 */
	0xB5BD, 	 0, 	 0, 0xD8DA, 	 0, 	 0, 0xD6C6, 0xCBA2, /* 0x30 */
	0xC8AF, 0xC9B2, 0xB4CC, 0xBFCC, 	 0, 0xB9F4, 	 0, 0xD8DB, /* 0x30 */
	0xD8DC, 0xB6E7, 0xBCC1, 0xCCEA, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 0xCFF7, 	 0, 0xD8DD, 0xC7B0, 	 0, 	 0, /* 0x40 */
	0xB9D0, 0xBDA3, 	 0, 	 0, 0xCCDE, 	 0, 0xC6CA, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 0xD8E0, 	 0, 0xD8DE, 	 0, /* 0x50 */
		 0, 0xD8DF, 	 0, 	 0, 	 0, 0xB0FE, 	 0, 0xBEE7, /* 0x60 */
		 0, 0xCAA3, 0xBCF4, 	 0, 	 0, 	 0, 	 0, 0xB8B1, /* 0x60 */
		 0, 	 0, 0xB8EE, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xD8E2, 	 0, 0xBDCB, /* 0x70 */
		 0, 0xD8E4, 0xD8E3, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
	0xC5FC, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
	0xD8E5, 	 0, 	 0, 0xD8E6, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xC1A6, 	 0, 0xC8B0, 0xB0EC, 0xB9A6, /* 0x90 */
	0xBCD3, 0xCEF1, 0xDBBD, 0xC1D3, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xB6AF, 0xD6FA, 0xC5AC, 0xBDD9, 0xDBBE, 0xDBBF, 	 0, 	 0, /* 0xA0 */
		 0, 0xC0F8, 0xBEA2, 0xC0CD, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDBC0, 0xCAC6, /* 0xB0 */
		 0, 	 0, 	 0, 0xB2AA, 	 0, 	 0, 	 0, 0xD3C2, /* 0xC0 */
		 0, 0xC3E3, 	 0, 0xD1AB, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
	0xDBC2, 	 0, 0xC0D5, 	 0, 	 0, 	 0, 0xDBC3, 	 0, /* 0xD0 */
	0xBFB1, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC4BC, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 0xC7DA, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xDBC4, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 0xD9E8, 0xC9D7, 	 0, 	 0, 	 0, 0xB9B4, 0xCEF0	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_53[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xD4C8, 	 0, 	 0, 	 0, 	 0, 0xB0FC, 0xB4D2, 	 0, /* 0x00 */
	0xD0D9, 	 0, 	 0, 	 0, 	 0, 0xD9E9, 	 0, 0xDECB, /* 0x00 */
	0xD9EB, 	 0, 	 0, 	 0, 	 0, 0xD8B0, 0xBBAF, 0xB1B1, /* 0x10 */
		 0, 0xB3D7, 0xD8CE, 	 0, 	 0, 0xD4D1, 	 0, 	 0, /* 0x10 */
	0xBDB3, 0xBFEF, 	 0, 0xCFBB, 	 0, 	 0, 0xD8D0, 	 0, /* 0x20 */
		 0, 	 0, 0xB7CB, 	 0, 	 0, 	 0, 0xD8D1, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xC6A5, 0xC7F8, 0xD2BD, 	 0, 	 0, 0xD8D2, 0xC4E4, /* 0x30 */
		 0, 0xCAAE, 	 0, 0xC7A7, 	 0, 0xD8A6, 	 0, 0xC9FD, /* 0x40 */
	0xCEE7, 0xBBDC, 0xB0EB, 	 0, 	 0, 	 0, 0xBBAA, 0xD0AD, /* 0x40 */
		 0, 0xB1B0, 0xD7E4, 0xD7BF, 	 0, 0xB5A5, 0xC2F4, 0xC4CF, /* 0x50 */
		 0, 	 0, 0xB2A9, 	 0, 0xB2B7, 	 0, 0xB1E5, 0xDFB2, /* 0x50 */
	0xD5BC, 0xBFA8, 0xC2AC, 0xD8D5, 0xC2B1, 	 0, 0xD8D4, 0xCED4, /* 0x60 */
		 0, 0xDAE0, 	 0, 0xCEC0, 	 0, 	 0, 0xD8B4, 0xC3AE, /* 0x60 */
	0xD3A1, 0xCEA3, 	 0, 0xBCB4, 0xC8B4, 0xC2D1, 	 0, 0xBEED, /* 0x70 */
	0xD0B6, 	 0, 0xDAE1, 	 0, 	 0, 	 0, 	 0, 0xC7E4, /* 0x70 */
		 0, 	 0, 0xB3A7, 	 0, 0xB6F2, 0xCCFC, 0xC0FA, 	 0, /* 0x80 */
		 0, 0xC0F7, 	 0, 0xD1B9, 0xD1E1, 0xD8C7, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xB2DE, 	 0, 	 0, /* 0x90 */
	0xC0E5, 	 0, 0xBAF1, 	 0, 	 0, 0xD8C8, 	 0, 0xD4AD, /* 0x90 */
		 0, 	 0, 0xCFE1, 0xD8C9, 	 0, 0xD8CA, 0xCFC3, 	 0, /* 0xA0 */
	0xB3F8, 0xBEC7, 	 0, 	 0, 	 0, 	 0, 0xD8CB, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDBCC, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 0xC8A5, 	 0, 	 0, 	 0, 0xCFD8, /* 0xB0 */
		 0, 0xC8FE, 0xB2CE, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
	0xD3D6, 0xB2E6, 0xBCB0, 0xD3D1, 0xCBAB, 0xB7B4, 	 0, 	 0, /* 0xC0 */
		 0, 0xB7A2, 	 0, 	 0, 0xCAE5, 	 0, 0xC8A1, 0xCADC, /* 0xD0 */
	0xB1E4, 0xD0F0, 	 0, 0xC5D1, 	 0, 	 0, 	 0, 0xDBC5, /* 0xD0 */
	0xB5FE, 	 0, 	 0, 0xBFDA, 0xB9C5, 0xBEE4, 0xC1ED, 	 0, /* 0xE0 */
	0xDFB6, 0xDFB5, 0xD6BB, 0xBDD0, 0xD5D9, 0xB0C8, 0xB6A3, 0xBFC9, /* 0xE0 */
	0xCCA8, 0xDFB3, 0xCAB7, 0xD3D2, 	 0, 0xD8CF, 0xD2B6, 0xBAC5, /* 0xF0 */
	0xCBBE, 0xCCBE, 	 0, 0xDFB7, 0xB5F0, 0xDFB4					/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_54[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xD3F5, 	 0, 0xB3D4, 0xB8F7, 	 0, 0xDFBA, 	 0, /* 0x00 */
	0xBACF, 0xBCAA, 0xB5F5, 	 0, 0xCDAC, 0xC3FB, 0xBAF3, 0xC0F4, /* 0x00 */
	0xCDC2, 0xCFF2, 0xDFB8, 0xCFC5, 	 0, 0xC2C0, 0xDFB9, 0xC2F0, /* 0x10 */
		 0, 	 0, 	 0, 0xBEFD, 	 0, 0xC1DF, 0xCDCC, 0xD2F7, /* 0x10 */
	0xB7CD, 0xDFC1, 	 0, 0xDFC4, 	 0, 	 0, 0xB7F1, 0xB0C9, /* 0x20 */
	0xB6D6, 0xB7D4, 	 0, 0xBAAC, 0xCCFD, 0xBFD4, 0xCBB1, 0xC6F4, /* 0x20 */
		 0, 0xD6A8, 0xDFC5, 	 0, 0xCEE2, 0xB3B3, 	 0, 	 0, /* 0x30 */
	0xCEFC, 0xB4B5, 	 0, 0xCEC7, 0xBAF0, 	 0, 0xCEE1, 	 0, /* 0x30 */
	0xD1BD, 	 0, 	 0, 0xDFC0, 	 0, 	 0, 0xB4F4, 	 0, /* 0x40 */
	0xB3CA, 	 0, 0xB8E6, 0xDFBB, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
	0xC4C5, 	 0, 0xDFBC, 0xDFBD, 0xDFBE, 0xC5BB, 0xDFBF, 0xDFC2, /* 0x50 */
	0xD4B1, 0xDFC3, 	 0, 0xC7BA, 0xCED8, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xC4D8, 	 0, 0xDFCA, 	 0, 0xDFCF, 	 0, /* 0x60 */
	0xD6DC, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 0xDFC9, 0xDFDA, 0xCEB6, 	 0, 0xBAC7, 0xDFCE, 0xDFC8, /* 0x70 */
	0xC5DE, 	 0, 	 0, 0xC9EB, 0xBAF4, 0xC3FC, 	 0, 	 0, /* 0x70 */
	0xBED7, 	 0, 0xDFC6, 	 0, 0xDFCD, 	 0, 0xC5D8, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 0xD5A6, 0xBACD, 	 0, 0xBECC, 0xD3BD, /* 0x80 */
	0xB8C0, 	 0, 0xD6E4, 	 0, 0xDFC7, 0xB9BE, 0xBFA7, 	 0, /* 0x90 */
		 0, 0xC1FC, 0xDFCB, 0xDFCC, 	 0, 0xDFD0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xDFDB, 0xDFE5, 	 0, 0xDFD7, 0xDFD6, /* 0xA0 */
	0xD7C9, 0xDFE3, 0xDFE4, 0xE5EB, 0xD2A7, 0xDFD2, 	 0, 0xBFA9, /* 0xA0 */
		 0, 0xD4DB, 	 0, 0xBFC8, 0xDFD4, 	 0, 	 0, 	 0, /* 0xB0 */
	0xCFCC, 	 0, 	 0, 0xDFDD, 	 0, 0xD1CA, 	 0, 0xDFDE, /* 0xB0 */
	0xB0A7, 0xC6B7, 0xDFD3, 	 0, 0xBAE5, 	 0, 0xB6DF, 0xCDDB, /* 0xC0 */
	0xB9FE, 0xD4D5, 	 0, 	 0, 0xDFDF, 0xCFEC, 0xB0A5, 0xDFE7, /* 0xC0 */
	0xDFD1, 0xD1C6, 0xDFD5, 0xDFD8, 0xDFD9, 0xDFDC, 	 0, 0xBBA9, /* 0xD0 */
		 0, 0xDFE0, 0xDFE1, 	 0, 0xDFE2, 0xDFE6, 0xDFE8, 0xD3B4, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xB8E7, 0xC5B6, 0xDFEA, /* 0xE0 */
	0xC9DA, 0xC1A8, 0xC4C4, 	 0, 	 0, 0xBFDE, 0xCFF8, 	 0, /* 0xE0 */
		 0, 	 0, 0xD5DC, 0xDFEE, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 0xB2B8, 	 0, 0xBADF, 0xDFEC, 	 0, 0xDBC1	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_55[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xD1E4, 	 0, 	 0, 	 0, 	 0, 0xCBF4, 0xB4BD, /* 0x00 */
		 0, 0xB0A6, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDFF1, /* 0x00 */
	0xCCC6, 0xDFF2, 	 0, 	 0, 0xDFED, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 0xDFE9, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
	0xDFEB, 	 0, 0xDFEF, 0xDFF0, 0xBBBD, 	 0, 	 0, 0xDFF3, /* 0x20 */
		 0, 	 0, 0xDFF4, 	 0, 0xBBA3, 	 0, 0xCADB, 0xCEA8, /* 0x20 */
	0xE0A7, 0xB3AA, 	 0, 0xE0A6, 	 0, 	 0, 	 0, 0xE0A1, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 0xDFFE, 	 0, 0xCDD9, 0xDFFC, /* 0x30 */
		 0, 0xDFFA, 	 0, 0xBFD0, 0xD7C4, 	 0, 0xC9CC, 	 0, /* 0x40 */
		 0, 0xDFF8, 0xB0A1, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
	0xDFFD, 	 0, 	 0, 	 0, 	 0, 0xDFFB, 0xE0A2, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 0xE0A8, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 0xB7C8, 	 0, 	 0, 0xC6A1, 0xC9B6, 0xC0B2, 0xDFF5, /* 0x60 */
		 0, 	 0, 0xC5BE, 	 0, 0xD8C4, 0xDFF9, 0xC4F6, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE0A3, 0xE0A4, 0xE0A5, /* 0x70 */
	0xD0A5, 	 0, 	 0, 0xE0B4, 0xCCE4, 	 0, 0xE0B1, 	 0, /* 0x70 */
	0xBFA6, 0xE0AF, 0xCEB9, 0xE0AB, 0xC9C6, 	 0, 	 0, 0xC0AE, /* 0x80 */
	0xE0AE, 0xBAED, 0xBAB0, 0xE0A9, 	 0, 	 0, 	 0, 0xDFF6, /* 0x80 */
		 0, 0xE0B3, 	 0, 	 0, 0xE0B8, 	 0, 	 0, 	 0, /* 0x90 */
	0xB4AD, 0xE0B9, 	 0, 	 0, 0xCFB2, 0xBAC8, 	 0, 0xE0B0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD0FA, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 0xE0AC, 	 0, 0xD4FB, 	 0, 0xDFF7, 	 0, 0xC5E7, /* 0xB0 */
		 0, 0xE0AD, 	 0, 0xD3F7, 	 0, 0xE0B6, 0xE0B7, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 0xE0C4, 0xD0E1, 	 0, 	 0, /* 0xC0 */
		 0, 0xE0BC, 	 0, 	 0, 0xE0C9, 0xE0CA, 	 0, 	 0, /* 0xC0 */
		 0, 0xE0BE, 0xE0AA, 0xC9A4, 0xE0C1, 	 0, 0xE0B2, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 0xCAC8, 0xE0C3, 	 0, 0xE0B5, /* 0xD0 */
		 0, 0xCECB, 	 0, 0xCBC3, 0xE0CD, 0xE0C6, 0xE0C2, 	 0, /* 0xE0 */
	0xE0CB, 	 0, 0xE0BA, 0xE0BF, 0xE0C0, 	 0, 	 0, 0xE0C5, /* 0xE0 */
		 0, 	 0, 0xE0C7, 0xE0C8, 	 0, 0xE0CC, 	 0, 0xE0BB, /* 0xF0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xCBD4, 0xE0D5			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_56[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xE0D6, 0xE0D2, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
	0xE0D0, 0xBCCE, 	 0, 	 0, 0xE0D1, 	 0, 0xB8C2, 0xD8C5, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
	0xD0EA, 	 0, 	 0, 0xC2EF, 	 0, 	 0, 0xE0CF, 0xE0BD, /* 0x10 */
		 0, 	 0, 	 0, 0xE0D4, 0xE0D3, 	 0, 	 0, 0xE0D7, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 0xE0DC, 0xE0D8, 	 0, 	 0, /* 0x20 */
		 0, 0xD6F6, 0xB3B0, 	 0, 0xD7EC, 	 0, 0xCBBB, 	 0, /* 0x30 */
		 0, 0xE0DA, 	 0, 0xCEFB, 	 0, 	 0, 	 0, 0xBAD9, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xE0E1, 0xE0DD, 0xD2AD, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xE0E2, 	 0, 	 0, 0xE0DB, /* 0x50 */
	0xE0D9, 0xE0DF, 	 0, 	 0, 0xE0E0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xE0DE, 	 0, 0xE0E4, 	 0, 	 0, 	 0, /* 0x60 */
	0xC6F7, 0xD8AC, 0xD4EB, 0xE0E6, 0xCAC9, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 0xE0E5, 	 0, 	 0, 	 0, 	 0, 0xB8C1, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 0xE0E7, 0xE0E8, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE0E9, 0xE0E3, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xBABF, 0xCCE7, /* 0x80 */
		 0, 	 0, 	 0, 0xE0EA, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xCFF9, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE0EB, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC8C2, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 0xBDC0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xC4D2, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 0xE0EC, 	 0, 	 0, 0xE0ED, /* 0xD0 */
		 0, 	 0, 0xC7F4, 0xCBC4, 	 0, 0xE0EE, 0xBBD8, 0xD8B6, /* 0xD0 */
	0xD2F2, 0xE0EF, 0xCDC5, 	 0, 0xB6DA, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xE0F1, 	 0, 0xD4B0, 	 0, 	 0, /* 0xE0 */
	0xC0A7, 0xB4D1, 	 0, 	 0, 0xCEA7, 0xE0F0, 	 0, 	 0, /* 0xF0 */
		 0, 0xE0F2, 0xB9CC, 	 0, 	 0, 0xB9FA, 0xCDBC, 0xE0F3	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_57[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
							0xC6D4, 0xE0F4, 	 0, 0xD4B2, 	 0, /* 0x00 */
	0xC8A6, 0xE0F6, 0xE0F5, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 0xE0F7, 	 0, 	 0, 0xCDC1, /* 0x10 */
		 0, 	 0, 	 0, 0xCAA5, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
	0xD4DA, 0xDBD7, 0xDBD9, 	 0, 0xDBD8, 0xB9E7, 0xDBDC, 0xDBDD, /* 0x20 */
	0xB5D8, 	 0, 	 0, 0xDBDA, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xDBDB, 0xB3A1, 0xDBDF, 	 0, 	 0, 0xBBF8, 	 0, /* 0x30 */
	0xD6B7, 	 0, 0xDBE0, 	 0, 	 0, 	 0, 	 0, 0xBEF9, /* 0x40 */
		 0, 	 0, 0xB7BB, 	 0, 0xDBD0, 0xCCAE, 0xBFB2, 0xBBB5, /* 0x40 */
	0xD7F8, 0xBFD3, 	 0, 	 0, 	 0, 	 0, 	 0, 0xBFE9, /* 0x50 */
		 0, 	 0, 0xBCE1, 0xCCB3, 0xDBDE, 0xB0D3, 0xCEEB, 0xB7D8, /* 0x50 */
	0xD7B9, 0xC6C2, 	 0, 	 0, 0xC0A4, 	 0, 0xCCB9, 	 0, /* 0x60 */
	0xDBE7, 0xDBE1, 0xC6BA, 0xDBE3, 	 0, 0xDBE8, 	 0, 0xC5F7, /* 0x60 */
		 0, 	 0, 	 0, 0xDBEA, 	 0, 	 0, 0xDBE9, 0xBFC0, /* 0x70 */
		 0, 	 0, 	 0, 0xDBE6, 0xDBE5, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 0xB4B9, 0xC0AC, 0xC2A2, 0xDBE2, 0xDBE4, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 0xD0CD, 0xDBED, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xC0DD, 0xDBF2, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xB6E2, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
	0xDBF3, 0xDBD2, 0xB9B8, 0xD4AB, 0xDBEC, 	 0, 0xBFD1, 0xDBF0, /* 0xA0 */
		 0, 0xDBD1, 	 0, 0xB5E6, 	 0, 0xDBEB, 0xBFE5, 	 0, /* 0xA0 */
		 0, 	 0, 0xDBEE, 	 0, 0xDBF1, 	 0, 	 0, 	 0, /* 0xB0 */
	0xDBF9, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 0xB9A1, 0xB0A3, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 0xC2F1, 	 0, 	 0, 0xB3C7, 0xDBEF, /* 0xC0 */
		 0, 	 0, 0xDBF8, 	 0, 0xC6D2, 0xDBF4, 	 0, 	 0, /* 0xD0 */
	0xDBF5, 0xDBF7, 0xDBF6, 	 0, 	 0, 0xDBFE, 	 0, 0xD3F2, /* 0xD0 */
	0xB2BA, 	 0, 	 0, 	 0, 0xDBFD, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xDCA4, 	 0, 0xDBFB, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 0xDBFA, 	 0, 	 0, 	 0, /* 0xF0 */
	0xDBFC, 0xC5E0, 0xBBF9, 	 0, 	 0, 0xDCA3					/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_58[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xDCA5, 	 0, 0xCCC3, 	 0, 	 0, 	 0, 0xB6D1, 0xDDC0, /* 0x00 */
		 0, 	 0, 	 0, 0xDCA1, 	 0, 0xDCA2, 	 0, 	 0, /* 0x00 */
		 0, 0xC7B5, 	 0, 	 0, 	 0, 0xB6E9, 	 0, 	 0, /* 0x10 */
		 0, 0xDCA7, 	 0, 	 0, 	 0, 	 0, 0xDCA6, 	 0, /* 0x10 */
	0xDCA9, 0xB1A4, 	 0, 	 0, 0xB5CC, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xBFB0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
	0xD1DF, 	 0, 	 0, 	 0, 	 0, 0xB6C2, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 0xDCA8, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xCBFA, 0xEBF3, 	 0, 	 0, /* 0x40 */
		 0, 0xCBDC, 	 0, 	 0, 0xCBFE, 	 0, 	 0, 	 0, /* 0x50 */
	0xCCC1, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC8FB, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xDCAA, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xCCEE, 0xDCAB, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDBD3, 	 0, /* 0x70 */
	0xDCAF, 0xDCAC, 	 0, 0xBEB3, 	 0, 0xCAFB, 	 0, 	 0, /* 0x80 */
		 0, 0xDCAD, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xC9CA, 0xC4B9, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 0xC7BD, 0xDCAE, 	 0, 	 0, 	 0, 0xD4F6, 0xD0E6, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xC4AB, 0xB6D5, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 0xDBD4, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xB1DA, 	 0, 	 0, 	 0, 0xDBD5, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xDBD6, 	 0, 	 0, 	 0, 0xBABE, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 0xC8C0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xCABF, 0xC8C9, 	 0, 0xD7B3, 	 0, /* 0xE0 */
	0xC9F9, 	 0, 	 0, 0xBFC7, 	 0, 	 0, 0xBAF8, 	 0, /* 0xF0 */
		 0, 0xD2BC													/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_59[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
					0xE2BA, 	 0, 0xB4A6, 	 0, 	 0, 0xB1B8, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xB8B4, 	 0, 0xCFC4, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 0xD9E7, 0xCFA6, 0xCDE2, 	 0, /* 0x10 */
		 0, 0xD9ED, 0xB6E0, 	 0, 0xD2B9, 	 0, 	 0, 0xB9BB, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 0xE2B9, 0xE2B7, 	 0, 0xB4F3, /* 0x20 */
		 0, 0xCCEC, 0xCCAB, 0xB7F2, 	 0, 0xD8B2, 0xD1EB, 0xBABB, /* 0x20 */
		 0, 0xCAA7, 	 0, 	 0, 0xCDB7, 	 0, 	 0, 0xD2C4, /* 0x30 */
	0xBFE4, 0xBCD0, 0xB6E1, 	 0, 0xDEC5, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xDEC6, 0xDBBC, 	 0, 0xD1D9, 	 0, 	 0, 0xC6E6, /* 0x40 */
	0xC4CE, 0xB7EE, 	 0, 0xB7DC, 	 0, 	 0, 0xBFFC, 0xD7E0, /* 0x40 */
		 0, 0xC6F5, 	 0, 	 0, 0xB1BC, 0xDEC8, 0xBDB1, 0xCCD7, /* 0x50 */
	0xDECA, 	 0, 0xDEC9, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
	0xB5EC, 	 0, 0xC9DD, 	 0, 	 0, 0xB0C2, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xC5AE, 0xC5AB, 	 0, 0xC4CC, 	 0, /* 0x70 */
	0xBCE9, 0xCBFD, 	 0, 	 0, 	 0, 0xBAC3, 	 0, 	 0, /* 0x70 */
		 0, 0xE5F9, 0xC8E7, 0xE5FA, 0xCDFD, 	 0, 0xD7B1, 0xB8BE, /* 0x80 */
	0xC2E8, 	 0, 0xC8D1, 	 0, 	 0, 0xE5FB, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xB6CA, 0xBCCB, 	 0, 	 0, 0xD1FD, 0xE6A1, /* 0x90 */
		 0, 0xC3EE, 	 0, 	 0, 	 0, 	 0, 0xE6A4, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xE5FE, 0xE6A5, 0xCDD7, 	 0, 	 0, /* 0xA0 */
	0xB7C1, 0xE5FC, 0xE5FD, 0xE6A3, 	 0, 	 0, 0xC4DD, 0xE6A8, /* 0xA0 */
		 0, 	 0, 0xE6A7, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xC3C3, 	 0, 0xC6DE, 	 0, 	 0, 0xE6AA, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC4B7, 	 0, /* 0xC0 */
		 0, 	 0, 0xE6A2, 0xCABC, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
	0xBDE3, 0xB9C3, 0xE6A6, 0xD0D5, 0xCEAF, 	 0, 	 0, 0xE6A9, /* 0xD0 */
	0xE6B0, 	 0, 0xD2A6, 	 0, 0xBDAA, 0xE6AD, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 0xE6AF, 	 0, 0xC0D1, 	 0, 	 0, /* 0xE0 */
	0xD2CC, 	 0, 	 0, 	 0, 0xBCA7, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 0xE6B1, 	 0, 0xD2F6, 	 0, 	 0, 	 0, 0xD7CB	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_5A[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xCDFE, 	 0, 0xCDDE, 0xC2A6, 0xE6AB, 0xE6AC, 0xBDBF, /* 0x00 */
	0xE6AE, 0xE6B3, 	 0, 	 0, 0xE6B2, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 0xE6B6, 	 0, 0xE6B8, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
	0xC4EF, 	 0, 	 0, 	 0, 0xC4C8, 	 0, 	 0, 0xBEEA, /* 0x10 */
	0xC9EF, 	 0, 	 0, 0xE6B7, 	 0, 0xB6F0, 	 0, 	 0, /* 0x20 */
		 0, 0xC3E4, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 0xD3E9, 0xE6B4, 	 0, 0xE6B5, 	 0, 0xC8A2, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 0xE6BD, 	 0, 	 0, 	 0, /* 0x30 */
	0xE6B9, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC6C5, 	 0, /* 0x40 */
		 0, 0xCDF1, 0xE6BB, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE6BC, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xBBE9, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xE6BE, 	 0, 	 0, 	 0, 	 0, 0xE6BA, /* 0x60 */
		 0, 	 0, 0xC0B7, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 0xD3A4, 0xE6BF, 0xC9F4, 0xE6C3, /* 0x70 */
		 0, 	 0, 0xE6C4, 	 0, 	 0, 	 0, 	 0, 0xD0F6, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xC3BD, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 0xC3C4, 0xE6C2, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 0xE6C1, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 0xE6C7, 0xCFB1, 	 0, 0xEBF4, 	 0, 	 0, /* 0xB0 */
	0xE6CA, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE6C5, 	 0, /* 0xB0 */
		 0, 0xBCDE, 0xC9A9, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xBCB5, 	 0, 	 0, 0xCFD3, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xE6C8, 	 0, 0xE6C9, 	 0, 0xE6CE, 	 0, /* 0xD0 */
	0xE6D0, 	 0, 	 0, 	 0, 0xE6D1, 	 0, 	 0, 	 0, /* 0xD0 */
	0xE6CB, 0xB5D5, 	 0, 0xE6CC, 	 0, 	 0, 0xE6CF, 	 0, /* 0xE0 */
		 0, 0xC4DB, 	 0, 0xE6C6, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 0xE6CD													/* 0xF0 */
																	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_5B[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
																	/* 0x00 */
			0xE6D2, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE6D4, 0xE6D3, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xE6D5, 	 0, 0xD9F8, 	 0, 	 0, 0xE6D6, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
	0xE6D7, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
	0xD7D3, 0xE6DD, 	 0, 0xE6DE, 0xBFD7, 0xD4D0, 	 0, 0xD7D6, /* 0x50 */
	0xB4E6, 0xCBEF, 0xE6DA, 0xD8C3, 0xD7CE, 0xD0A2, 	 0, 0xC3CF, /* 0x50 */
		 0, 	 0, 0xE6DF, 0xBCBE, 0xB9C2, 0xE6DB, 0xD1A7, 	 0, /* 0x60 */
		 0, 0xBAA2, 0xC2CF, 	 0, 0xD8AB, 	 0, 	 0, 	 0, /* 0x60 */
	0xCAEB, 0xE5EE, 	 0, 0xE6DC, 	 0, 0xB7F5, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 0xC8E6, 	 0, 	 0, 0xC4F5, 	 0, 	 0, /* 0x70 */
	0xE5B2, 0xC4FE, 	 0, 0xCBFC, 0xE5B3, 0xD5AC, 	 0, 0xD3EE, /* 0x80 */
	0xCAD8, 0xB0B2, 	 0, 0xCBCE, 0xCDEA, 	 0, 	 0, 0xBAEA, /* 0x80 */
		 0, 	 0, 	 0, 0xE5B5, 	 0, 0xE5B4, 	 0, 0xD7DA, /* 0x90 */
	0xB9D9, 0xD6E6, 0xB6A8, 0xCDF0, 0xD2CB, 0xB1A6, 0xCAB5, 	 0, /* 0x90 */
	0xB3E8, 0xC9F3, 0xBFCD, 0xD0FB, 0xCAD2, 0xE5B6, 0xBBC2, 	 0, /* 0xA0 */
		 0, 	 0, 0xCFDC, 0xB9AC, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xD4D7, 	 0, 	 0, 0xBAA6, 0xD1E7, 0xCFFC, 0xBCD2, 	 0, /* 0xB0 */
	0xE5B7, 0xC8DD, 	 0, 	 0, 	 0, 0xBFED, 0xB1F6, 0xCBDE, /* 0xB0 */
		 0, 	 0, 0xBCC5, 	 0, 0xBCC4, 0xD2FA, 0xC3DC, 0xBFDC, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 0xB8BB, 	 0, 	 0, 	 0, /* 0xC0 */
	0xC3C2, 	 0, 0xBAAE, 0xD4A2, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xC7DE, 0xC4AF, 0xB2EC, /* 0xD0 */
		 0, 0xB9D1, 	 0, 	 0, 0xE5BB, 0xC1C8, 	 0, 	 0, /* 0xE0 */
	0xD5AF, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE5BC, 	 0, /* 0xE0 */
	0xE5BE, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
	0xB4E7, 0xB6D4, 0xCBC2, 0xD1B0, 0xB5BC, 	 0, 	 0, 0xCAD9	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_5C[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xB7E2, 	 0, 	 0, 0xC9E4, 	 0, 0xBDAB, 	 0, /* 0x00 */
		 0, 0xCEBE, 0xD7F0, 	 0, 	 0, 	 0, 	 0, 0xD0A1, /* 0x00 */
		 0, 0xC9D9, 	 0, 	 0, 0xB6FB, 0xE6D8, 0xBCE2, 	 0, /* 0x10 */
	0xB3BE, 	 0, 0xC9D0, 	 0, 0xE6D9, 0xB3A2, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 0xDECC, 	 0, 0xD3C8, 0xDECD, 	 0, 0xD2A2, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 0xDECE, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 0xBECD, 	 0, 	 0, 0xDECF, 	 0, 	 0, 	 0, /* 0x30 */
	0xCAAC, 0xD2FC, 0xB3DF, 0xE5EA, 0xC4E1, 0xBEA1, 0xCEB2, 0xC4F2, /* 0x30 */
	0xBED6, 0xC6A8, 0xB2E3, 	 0, 	 0, 0xBED3, 	 0, 	 0, /* 0x40 */
	0xC7FC, 0xCCEB, 0xBDEC, 0xCEDD, 	 0, 	 0, 0xCABA, 0xC6C1, /* 0x40 */
	0xE5EC, 0xD0BC, 	 0, 	 0, 	 0, 0xD5B9, 	 0, 	 0, /* 0x50 */
		 0, 0xE5ED, 	 0, 	 0, 	 0, 	 0, 0xCAF4, 	 0, /* 0x50 */
	0xCDC0, 0xC2C5, 	 0, 0xE5EF, 	 0, 0xC2C4, 0xE5F0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE5F8, 0xCDCD, /* 0x60 */
		 0, 0xC9BD, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 0xD2D9, 0xE1A8, 	 0, 	 0, 	 0, 	 0, 0xD3EC, /* 0x70 */
		 0, 0xCBEA, 0xC6F1, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
	0xE1AC, 	 0, 	 0, 	 0, 0xE1A7, 0xE1A9, 	 0, 	 0, /* 0x80 */
	0xE1AA, 0xE1AF, 	 0, 	 0, 0xB2ED, 	 0, 0xE1AB, 0xB8DA, /* 0x90 */
	0xE1AD, 0xE1AE, 0xE1B0, 0xB5BA, 0xE1B1, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 0xE1B3, 0xE1B8, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 0xD1D2, 	 0, 0xE1B6, 0xE1B5, 0xC1EB, 	 0, 	 0, /* 0xA0 */
		 0, 0xE1B7, 	 0, 0xD4C0, 	 0, 0xE1B2, 	 0, 0xE1BA, /* 0xB0 */
	0xB0B6, 	 0, 	 0, 	 0, 	 0, 0xE1B4, 	 0, 0xBFF9, /* 0xB0 */
		 0, 0xE1B9, 	 0, 	 0, 0xE1BB, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 0xE1BE, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xE1BC, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 0xD6C5, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 0xCFBF, 	 0, 	 0, 0xE1BD, 0xE1BF, 0xC2CD, 	 0, /* 0xE0 */
	0xB6EB, 	 0, 0xD3F8, 	 0, 	 0, 0xC7CD, 	 0, 	 0, /* 0xE0 */
	0xB7E5, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 0xBEFE									/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_5D[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
					0xE1C0, 0xE1C1, 	 0, 	 0, 0xE1C7, 0xB3E7, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC6E9, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 0xB4DE, 	 0, 0xD1C2, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 0xE1C8, 	 0, 	 0, 0xE1C6, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 0xE1C5, 	 0, 0xE1C3, 0xE1C2, /* 0x20 */
		 0, 0xB1C0, 	 0, 	 0, 	 0, 0xD5B8, 0xE1C4, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 0xE1CB, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE1CC, 0xE1CA, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEFFA, /* 0x40 */
		 0, 	 0, 0xE1D3, 0xE1D2, 0xC7B6, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
	0xE1C9, 	 0, 	 0, 0xE1CE, 	 0, 0xE1D0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 0xE1D4, 	 0, 0xE1D1, 0xE1CD, 	 0, 	 0, 0xE1CF, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 0xE1D5, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 0xE1D6, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 0xE1D7, 	 0, 	 0, 	 0, 0xE1D8, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE1DA, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE1DB, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xCEA1, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 0xE7DD, 	 0, 0xB4A8, 0xD6DD, 	 0, /* 0xD0 */
		 0, 0xD1B2, 0xB3B2, 	 0, 	 0, 0xB9A4, 0xD7F3, 0xC7C9, /* 0xE0 */
	0xBEDE, 0xB9AE, 	 0, 0xCED7, 	 0, 	 0, 0xB2EE, 0xDBCF, /* 0xE0 */
		 0, 0xBCBA, 0xD2D1, 0xCBC8, 0xB0CD, 	 0, 	 0, 0xCFEF, /* 0xF0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xD9E3, 0xBDED			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_5E[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xB1D2, 0xCAD0, 0xB2BC, 	 0, 0xCBA7, 0xB7AB, 	 0, /* 0x00 */
	0xCAA6, 	 0, 	 0, 	 0, 0xCFA3, 	 0, 	 0, 0xE0F8, /* 0x00 */
	0xD5CA, 0xE0FB, 	 0, 	 0, 0xE0FA, 0xC5C1, 0xCCFB, 	 0, /* 0x10 */
	0xC1B1, 0xE0F9, 0xD6E3, 0xB2AF, 0xD6C4, 0xB5DB, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xB4F8, 0xD6A1, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xCFAF, 0xB0EF, 	 0, /* 0x20 */
		 0, 0xE0FC, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE1A1, /* 0x30 */
	0xB3A3, 	 0, 	 0, 0xE0FD, 0xE0FE, 0xC3B1, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 0xC3DD, 	 0, 0xE1A2, 0xB7F9, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xBBCF, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xE1A3, 0xC4BB, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 0xE1A4, 	 0, 	 0, 0xE1A5, 	 0, /* 0x50 */
		 0, 0xE1A6, 0xB4B1, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 0xB8C9, 0xC6BD, 0xC4EA, 	 0, 0xB2A2, 	 0, /* 0x70 */
	0xD0D2, 	 0, 0xE7DB, 0xBBC3, 0xD3D7, 0xD3C4, 	 0, 0xB9E3, /* 0x70 */
	0xE2CF, 	 0, 	 0, 	 0, 0xD7AF, 	 0, 0xC7EC, 0xB1D3, /* 0x80 */
		 0, 	 0, 0xB4B2, 0xE2D1, 	 0, 	 0, 	 0, 0xD0F2, /* 0x80 */
	0xC2AE, 0xE2D0, 	 0, 0xBFE2, 0xD3A6, 0xB5D7, 0xE2D2, 0xB5EA, /* 0x90 */
		 0, 0xC3ED, 0xB8FD, 	 0, 0xB8AE, 	 0, 0xC5D3, 0xB7CF, /* 0x90 */
	0xE2D4, 	 0, 	 0, 	 0, 	 0, 0xE2D3, 0xB6C8, 0xD7F9, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xCDA5, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xE2D8, 	 0, 0xE2D6, 0xCAFC, 0xBFB5, /* 0xB0 */
	0xD3B9, 0xE2D5, 	 0, 	 0, 	 0, 	 0, 0xE2D7, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xC1AE, 0xC0C8, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xE2DB, 0xE2DA, 0xC0AA, 	 0, 	 0, 0xC1CE, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 0xE2DC, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xE2DD, 	 0, 0xE2DE, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 0xDBC8, 	 0, 0xD1D3, 0xCDA2, /* 0xF0 */
		 0, 	 0, 0xBDA8, 	 0, 	 0, 	 0, 0xDEC3, 0xD8A5	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_5F[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xBFAA, 0xDBCD, 0xD2EC, 0xC6FA, 0xC5AA, 	 0, 	 0, 	 0, /* 0x00 */
	0xDEC4, 	 0, 0xB1D7, 0xDFAE, 	 0, 	 0, 	 0, 0xCABD, /* 0x00 */
		 0, 0xDFB1, 	 0, 0xB9AD, 	 0, 0xD2FD, 	 0, 0xB8A5, /* 0x10 */
	0xBAEB, 	 0, 	 0, 0xB3DA, 	 0, 	 0, 	 0, 0xB5DC, /* 0x10 */
	0xD5C5, 	 0, 	 0, 	 0, 	 0, 0xC3D6, 0xCFD2, 0xBBA1, /* 0x20 */
		 0, 0xE5F3, 0xE5F2, 	 0, 	 0, 0xE5F4, 	 0, 0xCDE4, /* 0x20 */
		 0, 0xC8F5, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xB5AF, 0xC7BF, 	 0, 0xE5F6, 	 0, 	 0, 	 0, /* 0x30 */
	0xECB0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
	0xE5E6, 	 0, 0xB9E9, 0xB5B1, 	 0, 0xC2BC, 0xE5E8, 0xE5E7, /* 0x50 */
	0xE5E9, 	 0, 	 0, 	 0, 	 0, 0xD2CD, 	 0, 	 0, /* 0x50 */
		 0, 0xE1EA, 0xD0CE, 	 0, 0xCDAE, 	 0, 0xD1E5, 	 0, /* 0x60 */
		 0, 0xB2CA, 0xB1EB, 	 0, 0xB1F2, 0xC5ED, 	 0, 	 0, /* 0x60 */
	0xD5C3, 0xD3B0, 	 0, 0xE1DC, 	 0, 	 0, 	 0, 0xE1DD, /* 0x70 */
		 0, 0xD2DB, 	 0, 0xB3B9, 0xB1CB, 	 0, 	 0, 	 0, /* 0x70 */
	0xCDF9, 0xD5F7, 0xE1DE, 	 0, 0xBEB6, 0xB4FD, 	 0, 0xE1DF, /* 0x80 */
	0xBADC, 0xE1E0, 0xBBB2, 0xC2C9, 0xE1E1, 	 0, 	 0, 	 0, /* 0x80 */
	0xD0EC, 	 0, 0xCDBD, 	 0, 	 0, 0xE1E2, 	 0, 0xB5C3, /* 0x90 */
	0xC5C7, 0xE1E3, 	 0, 	 0, 0xE1E4, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 0xD3F9, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xE1E5, 	 0, 0xD1AD, 	 0, 	 0, 0xE1E6, 0xCEA2, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE1E7, 	 0, 0xB5C2, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 0xE1E8, 0xBBD5, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 0xD0C4, 0xE2E0, 0xB1D8, 0xD2E4, 	 0, /* 0xC0 */
		 0, 0xE2E1, 	 0, 	 0, 0xBCC9, 0xC8CC, 	 0, 0xE2E3, /* 0xC0 */
	0xECFE, 0xECFD, 0xDFAF, 	 0, 	 0, 	 0, 0xE2E2, 0xD6BE, /* 0xD0 */
	0xCDFC, 0xC3A6, 	 0, 	 0, 	 0, 0xE3C3, 	 0, 	 0, /* 0xD0 */
	0xD6D2, 0xE2E7, 	 0, 	 0, 0xE2E8, 	 0, 	 0, 0xD3C7, /* 0xE0 */
		 0, 	 0, 0xE2EC, 0xBFEC, 	 0, 0xE2ED, 0xE2E5, 	 0, /* 0xE0 */
		 0, 0xB3C0, 	 0, 	 0, 	 0, 0xC4EE, 	 0, 	 0, /* 0xF0 */
	0xE2EE, 	 0, 	 0, 0xD0C3, 	 0, 0xBAF6, 0xE2E9, 0xB7DE	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_60[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xBBB3, 0xCCAC, 0xCBCB, 0xE2E4, 0xE2E6, 0xE2EA, 0xE2EB, 	 0, /* 0x00 */
		 0, 	 0, 0xE2F7, 	 0, 	 0, 0xE2F4, 0xD4F5, 0xE2F3, /* 0x00 */
		 0, 	 0, 0xC5AD, 	 0, 0xD5FA, 0xC5C2, 0xB2C0, 	 0, /* 0x10 */
		 0, 0xE2EF, 	 0, 0xE2F2, 0xC1AF, 0xCBBC, 	 0, 	 0, /* 0x10 */
	0xB5A1, 0xE2F9, 	 0, 	 0, 	 0, 0xBCB1, 0xE2F1, 0xD0D4, /* 0x20 */
	0xD4B9, 0xE2F5, 0xB9D6, 0xE2F6, 	 0, 	 0, 	 0, 0xC7D3, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE2F0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 0xD7DC, 0xEDA1, 	 0, 	 0, 0xE2F8, /* 0x30 */
		 0, 0xEDA5, 0xE2FE, 0xCAD1, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 0xC1B5, 	 0, 0xBBD0, 	 0, 	 0, /* 0x40 */
	0xBFD6, 	 0, 0xBAE3, 	 0, 	 0, 0xCBA1, 	 0, 	 0, /* 0x50 */
		 0, 0xEDA6, 0xEDA3, 	 0, 	 0, 0xEDA2, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xBBD6, 0xEDA7, 0xD0F4, 	 0, 	 0, 0xEDA4, /* 0x60 */
	0xBADE, 0xB6F7, 0xE3A1, 0xB6B2, 0xCCF1, 0xB9A7, 	 0, 0xCFA2, /* 0x60 */
	0xC7A1, 	 0, 	 0, 0xBFD2, 	 0, 	 0, 0xB6F1, 	 0, /* 0x70 */
	0xE2FA, 0xE2FB, 0xE2FD, 0xE2FC, 0xC4D5, 0xE3A2, 	 0, 0xD3C1, /* 0x70 */
		 0, 	 0, 	 0, 0xE3A7, 0xC7C4, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 0xCFA4, 	 0, 	 0, 0xE3A9, 0xBAB7, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xE3A8, 	 0, 0xBBDA, 	 0, 0xE3A3, 	 0, /* 0x90 */
		 0, 	 0, 0xE3A4, 0xE3AA, 	 0, 0xE3A6, 	 0, 0xCEF2, /* 0x90 */
	0xD3C6, 	 0, 	 0, 0xBBBC, 	 0, 	 0, 0xD4C3, 	 0, /* 0xA0 */
	0xC4FA, 	 0, 	 0, 0xEDA8, 0xD0FC, 0xE3A5, 	 0, 0xC3F5, /* 0xA0 */
		 0, 0xE3AD, 0xB1AF, 	 0, 0xE3B2, 	 0, 	 0, 	 0, /* 0xB0 */
	0xBCC2, 	 0, 	 0, 0xE3AC, 0xB5BF, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xC7E9, 0xE3B0, 	 0, /* 0xC0 */
		 0, 	 0, 0xBEAA, 0xCDEF, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xBBF3, 	 0, 	 0, 	 0, 0xCCE8, 	 0, 	 0, /* 0xD0 */
	0xE3AF, 	 0, 0xE3B1, 	 0, 0xCFA7, 0xE3AE, 	 0, 0xCEA9, /* 0xD0 */
	0xBBDD, 	 0, 	 0, 	 0, 	 0, 	 0, 0xB5EB, 0xBEE5, /* 0xE0 */
	0xB2D2, 0xB3CD, 	 0, 0xB1B9, 0xE3AB, 0xB2D1, 0xB5AC, 0xB9DF, /* 0xE0 */
	0xB6E8, 	 0, 	 0, 0xCFEB, 0xE3B7, 	 0, 0xBBCC, 	 0, /* 0xF0 */
		 0, 0xC8C7, 0xD0CA											/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_61[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xE3B8, 0xB3EE, 	 0, 	 0, 	 0, 	 0, 0xEDA9, 	 0, /* 0x00 */
	0xD3FA, 0xD3E4, 	 0, 	 0, 	 0, 0xEDAA, 0xE3B9, 0xD2E2, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE3B5, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 0xD3DE, 	 0, 	 0, 	 0, 	 0, 0xB8D0, /* 0x10 */
	0xE3B3, 	 0, 	 0, 0xE3B6, 0xB7DF, 	 0, 0xE3B4, 0xC0A2, /* 0x20 */
		 0, 	 0, 	 0, 0xE3BA, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD4B8, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
	0xB4C8, 	 0, 0xE3BB, 	 0, 0xBBC5, 	 0, 0xC9F7, 	 0, /* 0x40 */
		 0, 0xC9E5, 	 0, 	 0, 	 0, 0xC4BD, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEDAB, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xC2FD, 	 0, 	 0, 	 0, 	 0, 0xBBDB, /* 0x60 */
	0xBFAE, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
	0xCEBF, 	 0, 	 0, 	 0, 	 0, 0xE3BC, 	 0, 0xBFB6, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 0xB1EF, 	 0, 	 0, 0xD4F7, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 0xE3BE, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEDAD, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE3BF, /* 0xA0 */
	0xBAA9, 0xEDAC, 	 0, 	 0, 0xE3BD, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE3C0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xBAB6, 	 0, /* 0xB0 */
		 0, 	 0, 0xB6AE, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
	0xD0B8, 	 0, 0xB0C3, 0xEDAE, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xEDAF, 0xC0C1, 	 0, 0xE3C1, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC5B3, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE3C2, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDCB2	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_62[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
													0xEDB0, 	 0, /* 0x00 */
	0xB8EA, 	 0, 0xCEEC, 0xEAA7, 0xD0E7, 0xCAF9, 0xC8D6, 0xCFB7, /* 0x00 */
	0xB3C9, 0xCED2, 0xBDE4, 	 0, 	 0, 0xE3DE, 0xBBF2, 0xEAA8, /* 0x10 */
	0xD5BD, 	 0, 0xC6DD, 0xEAA9, 	 0, 	 0, 	 0, 0xEAAA, /* 0x10 */
		 0, 0xEAAC, 0xEAAB, 	 0, 0xEAAE, 0xEAAD, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xBDD8, 	 0, 0xEAAF, 	 0, 0xC2BE, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 0xB4C1, 0xB4F7, 	 0, 	 0, 0xBBA7, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xECE6, 0xECE5, 0xB7BF, /* 0x30 */
	0xCBF9, 0xB1E2, 	 0, 0xECE7, 	 0, 	 0, 	 0, 0xC9C8, /* 0x40 */
	0xECE8, 0xECE9, 	 0, 0xCAD6, 0xDED0, 0xB2C5, 0xD4FA, 	 0, /* 0x40 */
		 0, 0xC6CB, 0xB0C7, 0xB4F2, 0xC8D3, 	 0, 	 0, 	 0, /* 0x50 */
	0xCDD0, 	 0, 	 0, 0xBFB8, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 0xBFDB, 	 0, 	 0, 0xC7A4, 0xD6B4, /* 0x60 */
		 0, 0xC0A9, 0xDED1, 0xC9A8, 0xD1EF, 0xC5A4, 0xB0E7, 0xB3B6, /* 0x60 */
	0xC8C5, 	 0, 	 0, 0xB0E2, 	 0, 	 0, 0xB7F6, 	 0, /* 0x70 */
		 0, 0xC5FA, 	 0, 	 0, 0xB6F3, 	 0, 0xD5D2, 0xB3D0, /* 0x70 */
	0xBCBC, 	 0, 	 0, 	 0, 0xB3AD, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 0xBEF1, 0xB0D1, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 0xD2D6, 0xCAE3, 0xD7A5, 	 0, 0xCDB6, 0xB6B6, 0xBFB9, /* 0x90 */
	0xD5DB, 	 0, 0xB8A7, 0xC5D7, 	 0, 	 0, 	 0, 0xDED2, /* 0x90 */
	0xBFD9, 0xC2D5, 0xC7C0, 	 0, 0xBBA4, 0xB1A8, 	 0, 	 0, /* 0xA0 */
	0xC5EA, 	 0, 	 0, 0xC5FB, 0xCCA7, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 0xB1A7, 	 0, 	 0, 	 0, 0xB5D6, 	 0, 	 0, /* 0xB0 */
		 0, 0xC4A8, 	 0, 0xDED3, 0xD1BA, 0xB3E9, 	 0, 0xC3F2, /* 0xB0 */
		 0, 	 0, 0xB7F7, 	 0, 0xD6F4, 0xB5A3, 0xB2F0, 0xC4B4, /* 0xC0 */
	0xC4E9, 0xC0AD, 0xDED4, 	 0, 0xB0E8, 0xC5C4, 0xC1E0, 	 0, /* 0xC0 */
	0xB9D5, 	 0, 0xBEDC, 0xCDD8, 0xB0CE, 	 0, 0xCDCF, 0xDED6, /* 0xD0 */
	0xBED0, 0xD7BE, 0xDED5, 0xD5D0, 0xB0DD, 	 0, 	 0, 0xC4E2, /* 0xD0 */
		 0, 	 0, 0xC2A3, 0xBCF0, 	 0, 0xD3B5, 0xC0B9, 0xC5A1, /* 0xE0 */
	0xB2A6, 0xD4F1, 	 0, 	 0, 0xC0A8, 0xCAC3, 0xDED7, 0xD5FC, /* 0xE0 */
		 0, 0xB9B0, 	 0, 0xC8AD, 0xCBA9, 	 0, 0xDED9, 0xBFBD, /* 0xF0 */
		 0, 	 0, 	 0, 	 0, 0xC6B4, 0xD7A7, 0xCAB0, 0xC4C3	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_63[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xB3D6, 0xB9D2, 	 0, 	 0, 	 0, 	 0, 0xD6B8, /* 0x00 */
	0xEAFC, 0xB0B4, 	 0, 	 0, 	 0, 	 0, 0xBFE6, 	 0, /* 0x00 */
		 0, 0xCCF4, 	 0, 	 0, 	 0, 	 0, 0xCDDA, 	 0, /* 0x10 */
		 0, 	 0, 0xD6BF, 0xC2CE, 	 0, 0xCECE, 0xCCA2, 0xD0AE, /* 0x10 */
	0xC4D3, 0xB5B2, 0xDED8, 0xD5F5, 0xBCB7, 0xBBD3, 	 0, 	 0, /* 0x20 */
	0xB0A4, 	 0, 0xC5B2, 0xB4EC, 	 0, 	 0, 	 0, 0xD5F1, /* 0x20 */
		 0, 	 0, 0xEAFD, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xDEDA, 0xCDA6, 	 0, 	 0, 0xCDEC, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 0xCEE6, 0xDEDC, 	 0, 0xCDB1, 0xC0A6, 	 0, /* 0x40 */
		 0, 0xD7BD, 	 0, 0xDEDB, 0xB0C6, 0xBAB4, 0xC9D3, 0xC4F3, /* 0x40 */
	0xBEE8, 	 0, 	 0, 	 0, 	 0, 0xB2B6, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC0CC, 0xCBF0, /* 0x50 */
		 0, 0xBCF1, 0xBBBB, 0xB5B7, 	 0, 	 0, 	 0, 0xC5F5, /* 0x60 */
		 0, 0xDEE6, 	 0, 	 0, 	 0, 0xDEE3, 0xBEDD, 	 0, /* 0x60 */
		 0, 0xDEDF, 	 0, 	 0, 	 0, 	 0, 0xB4B7, 0xBDDD, /* 0x70 */
		 0, 	 0, 0xDEE0, 0xC4ED, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
	0xCFC6, 	 0, 0xB5E0, 	 0, 	 0, 	 0, 	 0, 0xB6DE, /* 0x80 */
	0xCADA, 0xB5F4, 0xDEE5, 	 0, 0xD5C6, 	 0, 0xDEE1, 0xCCCD, /* 0x80 */
	0xC6FE, 	 0, 0xC5C5, 	 0, 	 0, 	 0, 0xD2B4, 	 0, /* 0x90 */
	0xBEF2, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
	0xC2D3, 	 0, 0xCCBD, 0xB3B8, 	 0, 0xBDD3, 	 0, 0xBFD8, /* 0xA0 */
	0xCDC6, 0xD1DA, 0xB4EB, 	 0, 0xDEE4, 0xDEDD, 0xDEE7, 	 0, /* 0xA0 */
	0xEAFE, 	 0, 	 0, 0xC2B0, 0xDEE2, 	 0, 	 0, 0xD6C0, /* 0xB0 */
	0xB5A7, 	 0, 0xB2F4, 	 0, 0xDEE8, 	 0, 0xDEF2, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 0xDEED, 	 0, 0xDEF1, 	 0, /* 0xC0 */
		 0, 0xC8E0, 	 0, 	 0, 	 0, 0xD7E1, 0xDEEF, 0xC3E8, /* 0xC0 */
	0xCCE1, 	 0, 0xB2E5, 	 0, 	 0, 	 0, 0xD2BE, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDEEE, 	 0, /* 0xD0 */
	0xDEEB, 0xCED5, 	 0, 0xB4A7, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 0xBFAB, 0xBEBE, 	 0, 	 0, 0xBDD2, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 0xDEE9, 	 0, 0xD4AE, 	 0, 0xDEDE, 	 0, /* 0xF0 */
	0xDEEA, 	 0, 	 0, 	 0, 	 0, 0xC0BF, 	 0, 0xDEEC	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_64[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xB2F3, 0xB8E9, 0xC2A7, 	 0, 	 0, 0xBDC1, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 0xDEF5, 0xDEF8, 	 0, 	 0, 0xB2AB, /* 0x00 */
	0xB4A4, 	 0, 	 0, 0xB4EA, 0xC9A6, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 0xDEF6, 0xCBD1, 	 0, 0xB8E3, 	 0, /* 0x10 */
	0xDEF7, 0xDEFA, 	 0, 	 0, 	 0, 	 0, 0xDEF9, 	 0, /* 0x20 */
		 0, 	 0, 0xCCC2, 	 0, 0xB0E1, 0xB4EE, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 0xE5BA, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 0xD0AF, 	 0, 	 0, 0xB2EB, 	 0, 0xEBA1, /* 0x30 */
		 0, 0xDEF4, 	 0, 	 0, 0xC9E3, 0xDEF3, 0xB0DA, 0xD2A1, /* 0x40 */
	0xB1F7, 	 0, 0xCCAF, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 0xDEF0, 	 0, 0xCBA4, 	 0, 	 0, 	 0, /* 0x50 */
	0xD5AA, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDEFB, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xB4DD, /* 0x60 */
		 0, 0xC4A6, 	 0, 	 0, 	 0, 0xDEFD, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
	0xC3FE, 0xC4A1, 0xDFA1, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 0xC1CC, 	 0, 0xDEFC, 0xBEEF, 	 0, 0xC6B2, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 0xB3C5, 0xC8F6, 	 0, 	 0, 0xCBBA, 0xDEFE, 	 0, /* 0x90 */
		 0, 0xDFA4, 	 0, 	 0, 	 0, 	 0, 0xD7B2, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 0xB3B7, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 0xC1C3, 	 0, 	 0, 0xC7CB, 0xB2A5, 0xB4E9, 	 0, /* 0xA0 */
	0xD7AB, 	 0, 	 0, 	 0, 	 0, 0xC4EC, 	 0, 0xDFA2, /* 0xB0 */
	0xDFA3, 	 0, 0xDFA5, 	 0, 0xBAB3, 	 0, 	 0, 	 0, /* 0xB0 */
	0xDFA6, 	 0, 0xC0DE, 	 0, 	 0, 0xC9C3, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xB2D9, 0xC7E6, 	 0, /* 0xC0 */
	0xDFA7, 	 0, 0xC7DC, 	 0, 	 0, 	 0, 	 0, 0xDFA8, /* 0xD0 */
	0xEBA2, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCBD3, 	 0, /* 0xD0 */
		 0, 	 0, 0xDFAA, 	 0, 0xDFA9, 	 0, 0xB2C1			/* 0xE0 */
																	/* 0xE0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_65[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xC5CA, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 0xDFAB, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 0xD4DC, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
	0xC8C1, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xDFAC, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 0xBEF0, 	 0, 	 0, 0xDFAD, 0xD6A7, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 0xEAB7, 0xEBB6, 0xCAD5, 	 0, /* 0x30 */
	0xD8FC, 0xB8C4, 	 0, 0xB9A5, 	 0, 	 0, 0xB7C5, 0xD5FE, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xB9CA, 	 0, 	 0, /* 0x40 */
	0xD0A7, 0xF4CD, 	 0, 	 0, 0xB5D0, 	 0, 	 0, 0xC3F4, /* 0x40 */
		 0, 0xBEC8, 	 0, 	 0, 	 0, 0xEBB7, 0xB0BD, 	 0, /* 0x50 */
		 0, 0xBDCC, 	 0, 0xC1B2, 	 0, 0xB1D6, 0xB3A8, 	 0, /* 0x50 */
		 0, 	 0, 0xB8D2, 0xC9A2, 	 0, 	 0, 0xB6D8, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xEBB8, 0xBEB4, 	 0, 	 0, 	 0, /* 0x60 */
	0xCAFD, 	 0, 0xC7C3, 	 0, 0xD5FB, 	 0, 	 0, 0xB7F3, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCEC4, /* 0x80 */
		 0, 	 0, 	 0, 0xD5AB, 0xB1F3, 	 0, 	 0, 	 0, /* 0x80 */
	0xECB3, 0xB0DF, 	 0, 0xECB5, 	 0, 	 0, 	 0, 0xB6B7, /* 0x90 */
		 0, 0xC1CF, 	 0, 0xF5FA, 0xD0B1, 	 0, 	 0, 0xD5E5, /* 0x90 */
		 0, 0xCED3, 	 0, 	 0, 0xBDEF, 0xB3E2, 	 0, 0xB8AB, /* 0xA0 */
		 0, 0xD5B6, 	 0, 0xEDBD, 	 0, 0xB6CF, 	 0, 0xCBB9, /* 0xA0 */
	0xD0C2, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xB7BD, 	 0, 	 0, 0xECB6, 0xCAA9, 	 0, 	 0, /* 0xB0 */
		 0, 0xC5D4, 	 0, 0xECB9, 0xECB8, 0xC2C3, 0xECB7, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 0xD0FD, 0xECBA, 	 0, 0xECBB, 0xD7E5, /* 0xC0 */
		 0, 	 0, 0xECBC, 	 0, 	 0, 	 0, 0xECBD, 0xC6EC, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
	0xCEDE, 	 0, 0xBCC8, 	 0, 	 0, 0xC8D5, 0xB5A9, 0xBEC9, /* 0xE0 */
	0xD6BC, 0xD4E7, 	 0, 	 0, 0xD1AE, 0xD0F1, 0xEAB8, 0xEAB9, /* 0xE0 */
	0xEABA, 0xBAB5, 	 0, 	 0, 	 0, 	 0, 0xCAB1, 0xBFF5, /* 0xF0 */
		 0, 	 0, 0xCDFA											/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_66[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xEAC0, 	 0, 0xB0BA, 0xEABE, 	 0, 	 0, 0xC0A5, 	 0, /* 0x00 */
		 0, 	 0, 0xEABB, 	 0, 0xB2FD, 	 0, 0xC3F7, 0xBBE8, /* 0x00 */
		 0, 	 0, 	 0, 0xD2D7, 0xCEF4, 0xEABF, 	 0, 	 0, /* 0x10 */
		 0, 0xEABC, 	 0, 	 0, 	 0, 0xEAC3, 	 0, 0xD0C7, /* 0x10 */
	0xD3B3, 	 0, 	 0, 	 0, 	 0, 0xB4BA, 	 0, 0xC3C1, /* 0x20 */
	0xD7F2, 	 0, 	 0, 	 0, 	 0, 0xD5D1, 	 0, 0xCAC7, /* 0x20 */
		 0, 0xEAC5, 	 0, 	 0, 0xEAC4, 0xEAC7, 0xEAC6, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 0xD6E7, 	 0, 0xCFD4, 	 0, /* 0x30 */
		 0, 0xEACB, 	 0, 0xBBCE, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 0xBDFA, 0xC9CE, 	 0, 	 0, 0xEACC, /* 0x40 */
		 0, 	 0, 0xC9B9, 0xCFFE, 0xEACA, 0xD4CE, 0xEACD, 0xEACF, /* 0x50 */
		 0, 	 0, 0xCDED, 	 0, 	 0, 	 0, 	 0, 0xEAC9, /* 0x50 */
		 0, 0xEACE, 	 0, 	 0, 0xCEEE, 	 0, 0xBBDE, 	 0, /* 0x60 */
	0xB3BF, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC6D5, 0xBEB0, /* 0x60 */
	0xCEFA, 	 0, 	 0, 	 0, 0xC7E7, 	 0, 0xBEA7, 0xEAD0, /* 0x70 */
		 0, 	 0, 0xD6C7, 	 0, 	 0, 	 0, 0xC1C0, 	 0, /* 0x70 */
		 0, 	 0, 0xD4DD, 	 0, 0xEAD1, 	 0, 	 0, 0xCFBE, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 0xEAD2, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 0xCAEE, 	 0, 	 0, 	 0, 	 0, 0xC5AF, 0xB0B5, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEAD4, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEAD3, /* 0xA0 */
	0xF4DF, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC4BA, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 0xB1A9, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xE5DF, 	 0, 	 0, 	 0, 	 0, 0xEAD5, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 0xCAEF, 	 0, 0xEAD6, 0xEAD7, 0xC6D8, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEAD8, 	 0, /* 0xE0 */
		 0, 0xEAD9, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xD4BB, 	 0, 0xC7FA, 0xD2B7, 0xB8FC, 	 0, 	 0, 0xEAC2, /* 0xF0 */
		 0, 0xB2DC, 	 0, 	 0, 0xC2FC, 	 0, 0xD4F8, 0xCCE6	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_67[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xD7EE, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
	0xD4C2, 0xD3D0, 0xEBC3, 0xC5F3, 	 0, 0xB7FE, 	 0, 	 0, /* 0x00 */
	0xEBD4, 	 0, 	 0, 	 0, 0xCBB7, 0xEBDE, 	 0, 0xC0CA, /* 0x10 */
		 0, 	 0, 	 0, 0xCDFB, 	 0, 0xB3AF, 	 0, 0xC6DA, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEBFC, 	 0, /* 0x20 */
	0xC4BE, 	 0, 0xCEB4, 0xC4A9, 0xB1BE, 0xD4FD, 	 0, 0xCAF5, /* 0x20 */
		 0, 0xD6EC, 	 0, 	 0, 0xC6D3, 0xB6E4, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 0xBBFA, 	 0, 	 0, 0xD0E0, 	 0, 	 0, /* 0x30 */
	0xC9B1, 	 0, 0xD4D3, 0xC8A8, 	 0, 	 0, 0xB8CB, 	 0, /* 0x40 */
	0xE8BE, 0xC9BC, 	 0, 	 0, 0xE8BB, 	 0, 0xC0EE, 0xD0D3, /* 0x40 */
	0xB2C4, 0xB4E5, 	 0, 0xE8BC, 	 0, 	 0, 0xD5C8, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 0xB6C5, 	 0, 0xE8BD, 0xCAF8, /* 0x50 */
	0xB8DC, 0xCCF5, 	 0, 	 0, 	 0, 0xC0B4, 	 0, 	 0, /* 0x60 */
	0xD1EE, 0xE8BF, 0xE8C2, 	 0, 	 0, 0xBABC, 	 0, 0xB1AD, /* 0x60 */
	0xBDDC, 	 0, 0xEABD, 0xE8C3, 	 0, 0xE8C6, 	 0, 0xE8CB, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 0xE8CC, 	 0, 0xCBC9, 0xB0E5, /* 0x70 */
		 0, 0xBCAB, 	 0, 	 0, 0xB9B9, 	 0, 	 0, 0xE8C1, /* 0x80 */
		 0, 0xCDF7, 	 0, 0xE8CA, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
	0xCEF6, 	 0, 	 0, 	 0, 	 0, 0xD5ED, 	 0, 0xC1D6, /* 0x90 */
	0xE8C4, 	 0, 0xC3B6, 	 0, 0xB9FB, 0xD6A6, 0xE8C8, 	 0, /* 0x90 */
		 0, 	 0, 0xCAE0, 0xD4E6, 	 0, 0xE8C0, 	 0, 0xE8C5, /* 0xA0 */
	0xE8C7, 	 0, 0xC7B9, 0xB7E3, 	 0, 0xE8C9, 	 0, 0xBFDD, /* 0xA0 */
	0xE8D2, 	 0, 	 0, 0xE8D7, 	 0, 0xE8D5, 0xBCDC, 0xBCCF, /* 0xB0 */
	0xE8DB, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xE8DE, 	 0, 0xE8DA, 0xB1FA, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xB0D8, /* 0xC0 */
	0xC4B3, 0xB8CC, 0xC6E2, 0xC8BE, 0xC8E1, 	 0, 	 0, 	 0, /* 0xD0 */
	0xE8CF, 0xE8D4, 0xE8D6, 	 0, 0xB9F1, 0xE8D8, 0xD7F5, 	 0, /* 0xD0 */
	0xC4FB, 	 0, 0xE8DC, 	 0, 	 0, 0xB2E9, 	 0, 	 0, /* 0xE0 */
		 0, 0xE8D1, 	 0, 	 0, 0xBCED, 	 0, 	 0, 0xBFC2, /* 0xE0 */
	0xE8CD, 0xD6F9, 	 0, 0xC1F8, 0xB2F1, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE8DF, 	 0, 0xCAC1	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_68[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xE8D9, 	 0, 	 0, 	 0, 	 0, 0xD5A4, 	 0, 0xB1EA, /* 0x00 */
	0xD5BB, 0xE8CE, 0xE8D0, 0xB6B0, 0xE8D3, 	 0, 0xE8DD, 0xC0B8, /* 0x00 */
		 0, 0xCAF7, 	 0, 0xCBA8, 	 0, 	 0, 0xC6DC, 0xC0F5, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE8E9, 	 0, 	 0, /* 0x10 */
		 0, 0xD0A3, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 0xE8F2, 0xD6EA, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xE8E0, 0xE8E1, 	 0, 	 0, 	 0, 0xD1F9, /* 0x30 */
	0xBACB, 0xB8F9, 	 0, 	 0, 0xB8F1, 0xD4D4, 0xE8EF, 	 0, /* 0x30 */
	0xE8EE, 0xE8EC, 0xB9F0, 0xCCD2, 0xE8E6, 0xCEA6, 0xBFF2, 	 0, /* 0x40 */
	0xB0B8, 0xE8F1, 0xE8F0, 	 0, 0xD7C0, 	 0, 0xE8E4, 	 0, /* 0x40 */
	0xCDA9, 0xC9A3, 	 0, 0xBBB8, 0xBDDB, 0xE8EA, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
	0xE8E2, 0xE8E3, 0xE8E5, 0xB5B5, 0xE8E7, 0xC7C5, 0xE8EB, 0xE8ED, /* 0x60 */
	0xBDB0, 0xD7AE, 	 0, 0xE8F8, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 0xE8F5, 	 0, 0xCDB0, 0xE8F6, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 0xC1BA, 	 0, 0xE8E8, 	 0, 0xC3B7, 0xB0F0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE8F4, /* 0x80 */
		 0, 	 0, 	 0, 0xE8F7, 	 0, 	 0, 	 0, 0xB9A3, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 0xC9D2, 	 0, 	 0, 	 0, 0xC3CE, 0xCEE0, /* 0xA0 */
	0xC0E6, 	 0, 	 0, 	 0, 	 0, 0xCBF3, 	 0, 0xCCDD, /* 0xA0 */
	0xD0B5, 	 0, 	 0, 0xCAE1, 	 0, 0xE8F3, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xBCEC, 	 0, 0xE8F9, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xC3DE, 	 0, 0xC6E5, 	 0, 0xB9F7, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xB0F4, 	 0, 	 0, 0xD7D8, 	 0, 	 0, /* 0xD0 */
	0xBCAC, 	 0, 0xC5EF, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
	0xCCC4, 	 0, 	 0, 0xE9A6, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC9AD, 	 0, /* 0xE0 */
	0xE9A2, 0xC0E2, 	 0, 	 0, 	 0, 0xBFC3, 	 0, 	 0, /* 0xF0 */
		 0, 0xE8FE, 0xB9D7, 	 0, 0xE8FB							/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_69[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xE9A4, 	 0, 	 0, 	 0, 0xD2CE, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 0xE9A3, 	 0, 0xD6B2, 0xD7B5, 	 0, /* 0x00 */
	0xE9A7, 	 0, 0xBDB7, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE8FC, /* 0x10 */
	0xE8FD, 	 0, 	 0, 	 0, 0xE9A1, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xCDD6, 	 0, 	 0, /* 0x20 */
	0xD2AC, 	 0, 	 0, 	 0, 0xE9B2, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xE9A9, 	 0, 	 0, 	 0, 0xB4AA, 	 0, 0xB4BB, /* 0x30 */
		 0, 	 0, 0xE9AB, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xD0A8, 	 0, 	 0, 0xE9A5, /* 0x50 */
		 0, 	 0, 0xB3FE, 	 0, 	 0, 0xE9AC, 0xC0E3, 	 0, /* 0x50 */
	0xE9AA, 	 0, 	 0, 0xE9B9, 	 0, 	 0, 0xE9B8, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xE9AE, 	 0, 	 0, 0xE8FA, 	 0, /* 0x60 */
		 0, 0xE9A8, 	 0, 	 0, 	 0, 	 0, 	 0, 0xBFAC, /* 0x70 */
	0xE9B1, 0xE9BA, 	 0, 	 0, 0xC2A5, 	 0, 	 0, 	 0, /* 0x70 */
	0xE9AF, 	 0, 0xB8C5, 	 0, 0xE9AD, 	 0, 0xD3DC, 0xE9B4, /* 0x80 */
	0xE9B5, 0xE9B7, 	 0, 	 0, 	 0, 0xE9C7, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 0xC0C6, 0xE9C5, 	 0, 	 0, /* 0x90 */
	0xE9B0, 	 0, 	 0, 0xE9BB, 0xB0F1, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE9BC, /* 0xA0 */
	0xD5A5, 	 0, 	 0, 0xE9BE, 	 0, 0xE9BF, 	 0, 	 0, /* 0xA0 */
		 0, 0xE9C1, 	 0, 	 0, 0xC1F1, 	 0, 	 0, 0xC8B6, /* 0xB0 */
		 0, 	 0, 	 0, 0xE9BD, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xE9C2, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xE9C3, 	 0, 0xE9B3, 	 0, 0xE9B6, 	 0, /* 0xC0 */
	0xBBB1, 	 0, 	 0, 	 0, 0xE9C0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 0xBCF7, 	 0, 	 0, 	 0, 0xE9C4, /* 0xD0 */
	0xE9C6, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE9CA, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 0xE9CE, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xB2DB, 	 0, 0xE9C8	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_6A[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
																	/* 0x00 */
					0xB7AE, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE9CB, /* 0x10 */
	0xE9CC, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD5C1, /* 0x10 */
		 0, 0xC4A3, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
	0xE9D8, 	 0, 0xBAE1, 	 0, 	 0, 	 0, 	 0, 0xE9C9, /* 0x20 */
		 0, 0xD3A3, 	 0, 	 0, 	 0, 0xE9D4, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE9D7, 0xE9D0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 0xE9CF, 	 0, 	 0, 0xC7C1, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
	0xE9D2, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
	0xE9D9, 0xB3C8, 	 0, 0xE9D3, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 0xCFF0, 	 0, 	 0, 	 0, 0xE9CD, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 0xB3F7, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 0xE9D6, 	 0, 	 0, 0xE9DA, 	 0, 	 0, 	 0, /* 0x70 */
	0xCCB4, 	 0, 	 0, 	 0, 0xCFAD, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE9D5, 	 0, /* 0x80 */
	0xE9DC, 0xE9DB, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE9DE, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
	0xE9D1, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 0xE9DD, 	 0, 0xE9DF, 0xC3CA							/* 0xA0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_6B[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xC7B7, 0xB4CE, 0xBBB6, 0xD0C0, 0xECA3, 	 0, 	 0, 0xC5B7, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xD3FB, 	 0, 	 0, 	 0, 	 0, 0xECA4, /* 0x30 */
		 0, 0xECA5, 0xC6DB, 	 0, 	 0, 	 0, 0xBFEE, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 0xECA6, 	 0, 	 0, 0xECA7, 0xD0AA, /* 0x40 */
		 0, 0xC7B8, 	 0, 	 0, 0xB8E8, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 0xECA8, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xD6B9, 0xD5FD, 0xB4CB, 0xB2BD, 0xCEE4, 0xC6E7, /* 0x60 */
		 0, 	 0, 0xCDE1, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 0xB4F5, 	 0, 0xCBC0, 0xBCDF, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 0xE9E2, 0xE9E3, 0xD1EA, 0xE9E5, 	 0, 0xB4F9, 0xE9E4, /* 0x80 */
		 0, 0xD1B3, 0xCAE2, 0xB2D0, 	 0, 0xE9E8, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xE9E6, 0xE9E7, 	 0, 	 0, 0xD6B3, 	 0, /* 0x90 */
		 0, 	 0, 0xE9E9, 0xE9EA, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 0xE9EB, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 0xE9EC, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xECAF, 0xC5B9, 0xB6CE, 	 0, 0xD2F3, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xB5EE, /* 0xB0 */
		 0, 0xBBD9, 0xECB1, 	 0, 	 0, 0xD2E3, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 0xCEE3, 	 0, 0xC4B8, 	 0, 0xC3BF, /* 0xC0 */
		 0, 	 0, 0xB6BE, 0xD8B9, 0xB1C8, 0xB1CF, 0xB1D1, 0xC5FE, /* 0xD0 */
		 0, 0xB1D0, 	 0, 0xC3AB, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 0xD5B1, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 0xEBA4, 0xBAC1, 	 0, 	 0, 	 0, 0xCCBA, /* 0xE0 */
		 0, 	 0, 	 0, 0xEBA5, 	 0, 0xEBA7, 	 0, 	 0, /* 0xF0 */
		 0, 0xEBA8, 	 0, 	 0, 	 0, 0xEBA6					/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_6C[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
											0xEBA9, 0xEBAB, 0xEBAA, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEBAC, 	 0, 0xCACF, /* 0x00 */
	0xD8B5, 0xC3F1, 	 0, 0xC3A5, 0xC6F8, 0xEBAD, 0xC4CA, 	 0, /* 0x10 */
	0xEBAE, 0xEBAF, 0xEBB0, 0xB7D5, 	 0, 	 0, 	 0, 0xB7FA, /* 0x10 */
		 0, 0xEBB1, 0xC7E2, 	 0, 0xEBB3, 	 0, 0xBAA4, 0xD1F5, /* 0x20 */
	0xB0B1, 0xEBB2, 0xEBB4, 	 0, 	 0, 	 0, 0xB5AA, 0xC2C8, /* 0x20 */
	0xC7E8, 	 0, 0xEBB5, 	 0, 0xCBAE, 0xE3DF, 	 0, 	 0, /* 0x30 */
	0xD3C0, 	 0, 	 0, 	 0, 	 0, 0xD9DB, 	 0, 	 0, /* 0x30 */
	0xCDA1, 0xD6AD, 0xC7F3, 	 0, 	 0, 	 0, 0xD9E0, 0xBBE3, /* 0x40 */
		 0, 0xBABA, 0xE3E2, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
	0xCFAB, 	 0, 	 0, 	 0, 0xE3E0, 0xC9C7, 	 0, 0xBAB9, /* 0x50 */
		 0, 	 0, 	 0, 0xD1B4, 0xE3E1, 0xC8EA, 0xB9AF, 0xBDAD, /* 0x50 */
	0xB3D8, 0xCEDB, 	 0, 	 0, 0xCCC0, 	 0, 	 0, 	 0, /* 0x60 */
	0xE3E8, 0xE3E9, 0xCDF4, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
	0xCCAD, 	 0, 0xBCB3, 	 0, 0xE3EA, 	 0, 0xE3EB, 	 0, /* 0x70 */
		 0, 0xD0DA, 	 0, 	 0, 	 0, 0xC6FB, 0xB7DA, 	 0, /* 0x70 */
		 0, 0xC7DF, 0xD2CA, 0xCED6, 	 0, 0xE3E4, 0xE3EC, 	 0, /* 0x80 */
	0xC9F2, 0xB3C1, 	 0, 	 0, 0xE3E7, 	 0, 	 0, 0xC6E3, /* 0x80 */
	0xE3E5, 	 0, 	 0, 0xEDB3, 0xE3E6, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 0xC9B3, 	 0, 0xC5E6, 	 0, 	 0, 	 0, 0xB9B5, /* 0x90 */
		 0, 0xC3BB, 	 0, 0xE3E3, 0xC5BD, 0xC1A4, 0xC2D9, 0xB2D7, /* 0xA0 */
		 0, 0xE3ED, 0xBBA6, 0xC4AD, 	 0, 0xE3F0, 0xBEDA, 	 0, /* 0xA0 */
		 0, 0xE3FB, 0xE3F5, 0xBAD3, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xB7D0, 0xD3CD, 	 0, 0xD6CE, 0xD5D3, 0xB9C1, 0xD5B4, 0xD1D8, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 0xD0B9, 0xC7F6, 	 0, 	 0, /* 0xC0 */
		 0, 0xC8AA, 0xB2B4, 	 0, 0xC3DA, 	 0, 	 0, 	 0, /* 0xC0 */
	0xE3EE, 	 0, 	 0, 0xE3FC, 0xE3EF, 0xB7A8, 0xE3F7, 0xE3F4, /* 0xD0 */
		 0, 	 0, 	 0, 0xB7BA, 	 0, 	 0, 0xC5A2, 	 0, /* 0xD0 */
	0xE3F6, 0xC5DD, 0xB2A8, 0xC6FC, 	 0, 0xC4E0, 	 0, 	 0, /* 0xE0 */
	0xD7A2, 	 0, 0xC0E1, 0xE3F9, 	 0, 	 0, 0xE3FA, 0xE3FD, /* 0xE0 */
	0xCCA9, 0xE3F3, 	 0, 0xD3BE, 	 0, 0xB1C3, 0xEDB4, 0xE3F1, /* 0xF0 */
	0xE3F2, 	 0, 0xE3F8, 0xD0BA, 0xC6C3, 0xD4F3, 0xE3FE			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_6D[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xBDE0, 	 0, 	 0, 0xE4A7, 	 0, 	 0, 0xE4A6, /* 0x00 */
		 0, 	 0, 	 0, 0xD1F3, 0xE4A3, 	 0, 0xE4A9, 	 0, /* 0x00 */
		 0, 	 0, 0xC8F7, 	 0, 	 0, 	 0, 	 0, 0xCFB4, /* 0x10 */
		 0, 0xE4A8, 0xE4AE, 0xC2E5, 	 0, 	 0, 0xB6B4, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xBDF2, 	 0, 0xE4A2, /* 0x20 */
		 0, 	 0, 0xBAE9, 0xE4AA, 	 0, 	 0, 0xE4AC, 	 0, /* 0x20 */
		 0, 0xB6FD, 0xD6DE, 0xE4B2, 	 0, 0xE4AD, 	 0, 	 0, /* 0x30 */
		 0, 0xE4A1, 	 0, 0xBBEE, 0xCDDD, 0xC7A2, 0xC5C9, 	 0, /* 0x30 */
		 0, 0xC1F7, 	 0, 0xE4A4, 	 0, 0xC7B3, 0xBDAC, 0xBDBD, /* 0x40 */
	0xE4A5, 	 0, 0xD7C7, 0xB2E2, 	 0, 0xE4AB, 0xBCC3, 0xE4AF, /* 0x40 */
		 0, 0xBBEB, 0xE4B0, 0xC5A8, 0xE4B1, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 0xD5E3, 0xBFA3, 	 0, 0xE4BA, 	 0, 0xE4B7, 	 0, /* 0x50 */
	0xE4BB, 	 0, 	 0, 0xE4BD, 	 0, 	 0, 0xC6D6, 	 0, /* 0x60 */
		 0, 0xBAC6, 0xC0CB, 	 0, 	 0, 	 0, 0xB8A1, 0xE4B4, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 0xD4A1, 	 0, 	 0, 0xBAA3, /* 0x70 */
	0xBDFE, 	 0, 	 0, 	 0, 0xE4BC, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 0xCDBF, 	 0, 	 0, 0xC4F9, 	 0, 	 0, /* 0x80 */
	0xCFFB, 0xC9E6, 	 0, 	 0, 0xD3BF, 	 0, 0xCFD1, 	 0, /* 0x80 */
		 0, 0xE4B3, 	 0, 0xE4B8, 0xE4B9, 0xCCE9, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xCCCE, 	 0, 0xC0D4, 0xE4B5, 0xC1B0, /* 0x90 */
	0xE4B6, 0xCED0, 	 0, 0xBBC1, 0xB5D3, 	 0, 0xC8F3, 0xBDA7, /* 0xA0 */
	0xD5C7, 0xC9AC, 0xB8A2, 0xE4CA, 	 0, 	 0, 0xE4CC, 0xD1C4, /* 0xA0 */
		 0, 	 0, 0xD2BA, 	 0, 	 0, 0xBAAD, 	 0, 	 0, /* 0xB0 */
	0xBAD4, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE4C3, /* 0xB0 */
	0xB5ED, 	 0, 	 0, 	 0, 0xD7CD, 0xE4C0, 0xCFFD, 0xE4BF, /* 0xC0 */
		 0, 	 0, 	 0, 0xC1DC, 0xCCCA, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xCAE7, 	 0, 	 0, 	 0, 	 0, 0xC4D7, 	 0, /* 0xD0 */
	0xCCD4, 0xE4C8, 	 0, 	 0, 	 0, 0xE4C7, 0xE4C1, 	 0, /* 0xD0 */
	0xE4C4, 0xB5AD, 	 0, 	 0, 0xD3D9, 	 0, 0xE4C6, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xD2F9, 0xB4E3, 	 0, 0xBBB4, 	 0, /* 0xE0 */
		 0, 0xC9EE, 	 0, 0xB4BE, 	 0, 	 0, 	 0, 0xBBEC, /* 0xF0 */
		 0, 0xD1CD, 	 0, 0xCCED, 0xEDB5							/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_6E[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
											0xC7E5, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 0xD4A8, 	 0, 0xE4CB, 0xD7D5, 0xE4C2, 	 0, /* 0x00 */
	0xBDA5, 0xE4C5, 	 0, 	 0, 0xD3E6, 	 0, 0xE4C9, 0xC9F8, /* 0x10 */
		 0, 	 0, 0xE4BE, 	 0, 	 0, 0xD3E5, 	 0, 	 0, /* 0x10 */
	0xC7FE, 0xB6C9, 	 0, 0xD4FC, 0xB2B3, 0xE4D7, 	 0, 	 0, /* 0x20 */
		 0, 0xCEC2, 	 0, 0xE4CD, 	 0, 0xCEBC, 	 0, 0xB8DB, /* 0x20 */
		 0, 	 0, 0xE4D6, 	 0, 0xBFCA, 	 0, 	 0, 	 0, /* 0x30 */
	0xD3CE, 	 0, 0xC3EC, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 0xC5C8, 0xE4D8, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xCDC4, 0xE4CF, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 0xE4D4, 0xE4D5, 	 0, 0xBAFE, 	 0, /* 0x50 */
	0xCFE6, 	 0, 	 0, 0xD5BF, 	 0, 	 0, 	 0, 0xE4D2, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xE4D0, 	 0, 	 0, 0xE4CE, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCDE5, 0xCAAA, /* 0x70 */
		 0, 	 0, 	 0, 0xC0A3, 	 0, 0xBDA6, 0xE4D3, 	 0, /* 0x80 */
		 0, 0xB8C8, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE4E7, /* 0x80 */
	0xD4B4, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
	0xE4DB, 	 0, 	 0, 	 0, 0xC1EF, 	 0, 	 0, 0xE4E9, /* 0x90 */
		 0, 	 0, 0xD2E7, 	 0, 	 0, 0xE4DF, 	 0, 0xE4E0, /* 0xA0 */
		 0, 	 0, 0xCFAA, 	 0, 	 0, 	 0, 	 0, 0xCBDD, /* 0xA0 */
		 0, 0xE4DA, 0xE4D1, 	 0, 0xE4E5, 	 0, 0xC8DC, 0xE4E3, /* 0xB0 */
		 0, 	 0, 0xC4E7, 0xE4E2, 	 0, 0xE4E1, 	 0, 	 0, /* 0xB0 */
		 0, 0xB3FC, 0xE4E8, 	 0, 	 0, 	 0, 	 0, 0xB5E1, /* 0xC0 */
		 0, 	 0, 	 0, 0xD7CC, 	 0, 	 0, 	 0, 0xE4E6, /* 0xC0 */
		 0, 0xBBAC, 	 0, 0xD7D2, 0xCCCF, 0xEBF8, 	 0, 0xE4E4, /* 0xD0 */
		 0, 	 0, 0xB9F6, 	 0, 	 0, 	 0, 0xD6CD, 0xE4D9, /* 0xD0 */
	0xE4DC, 0xC2FA, 0xE4DE, 	 0, 0xC2CB, 0xC0C4, 0xC2D0, 	 0, /* 0xE0 */
	0xB1F5, 0xCCB2, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 0xB5CE, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 0xE4EF													/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_6F[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
					0xC6AF, 	 0, 	 0, 	 0, 0xC6E1, 	 0, /* 0x00 */
		 0, 0xE4F5, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC2A9, /* 0x00 */
		 0, 	 0, 	 0, 0xC0EC, 0xD1DD, 0xE4EE, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
	0xC4AE, 	 0, 	 0, 	 0, 0xE4ED, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 0xE4F6, 0xE4F4, 0xC2FE, 	 0, 0xE4DD, 	 0, 0xE4F0, /* 0x20 */
		 0, 0xCAFE, 	 0, 0xD5C4, 	 0, 	 0, 0xE4F1, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD1FA, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE4EB, 0xE4EC, /* 0x40 */
		 0, 	 0, 	 0, 0xE4F2, 	 0, 0xCEAB, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
	0xC5CB, 	 0, 	 0, 	 0, 0xC7B1, 	 0, 0xC2BA, 	 0, /* 0x50 */
		 0, 	 0, 0xE4EA, 	 0, 	 0, 	 0, 0xC1CA, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xCCB6, 0xB3B1, 	 0, /* 0x60 */
		 0, 	 0, 0xE4FB, 	 0, 0xE4F3, 	 0, 	 0, 	 0, /* 0x70 */
	0xE4FA, 	 0, 0xE4FD, 	 0, 0xE4FC, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 0xB3CE, 	 0, 	 0, 	 0, /* 0x80 */
	0xB3BA, 0xE4F7, 	 0, 	 0, 0xE4F9, 0xE4F8, 0xC5EC, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 0xC0BD, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 0xD4E8, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE5A2, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xB0C4, 	 0, 	 0, 0xE5A4, 	 0, /* 0xB0 */
		 0, 0xE5A3, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xBCA4, 	 0, 0xE5A5, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xE5A1, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xE4FE, 0xB1F4, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE5A8, 	 0, /* 0xD0 */
	0xE5A9, 0xE5A6, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE5A7, 0xE5AA	/* 0xE0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_70[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xC6D9, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 0xE5AB, 0xE5AD, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 0xE5AC, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE5AF, 	 0, 	 0, /* 0x30 */
		 0, 0xE5AE, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xB9E0, 	 0, 	 0, 0xE5B0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE5B1, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xBBF0, 0xECE1, 0xC3F0, 	 0, 0xB5C6, /* 0x60 */
	0xBBD2, 	 0, 	 0, 	 0, 	 0, 0xC1E9, 0xD4EE, 	 0, /* 0x70 */
	0xBEC4, 	 0, 	 0, 	 0, 0xD7C6, 	 0, 0xD4D6, 0xB2D3, /* 0x70 */
	0xECBE, 	 0, 	 0, 	 0, 	 0, 0xEAC1, 	 0, 	 0, /* 0x80 */
		 0, 0xC2AF, 0xB4B6, 	 0, 	 0, 	 0, 0xD1D7, 	 0, /* 0x80 */
		 0, 	 0, 0xB3B4, 	 0, 0xC8B2, 0xBFBB, 0xECC0, 	 0, /* 0x90 */
		 0, 0xD6CB, 	 0, 	 0, 0xECBF, 0xECC1, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xECC5, 0xBEE6, 0xCCBF, 0xC5DA, 0xBEBC, /* 0xA0 */
		 0, 0xECC6, 	 0, 0xB1FE, 	 0, 	 0, 	 0, 0xECC4, /* 0xB0 */
	0xD5A8, 0xB5E3, 	 0, 0xECC2, 0xC1B6, 0xB3E3, 	 0, 	 0, /* 0xB0 */
	0xECC3, 0xCBB8, 0xC0C3, 0xCCFE, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
	0xC1D2, 	 0, 0xECC8, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
	0xBAE6, 0xC0D3, 	 0, 0xD6F2, 	 0, 	 0, 	 0, 0xD1CC, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 0xBFBE, 	 0, 0xB7B3, 0xC9D5, /* 0xE0 */
	0xECC7, 0xBBE2, 	 0, 0xCCCC, 0xBDFD, 0xC8C8, 	 0, 0xCFA9, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCDE9, /* 0xF0 */
		 0, 0xC5EB, 	 0, 	 0, 	 0, 0xB7E9					/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_71[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
																	/* 0x00 */
			0xD1C9, 0xBAB8, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
	0xECC9, 	 0, 	 0, 0xECCA, 	 0, 0xBBC0, 0xECCB, 	 0, /* 0x10 */
	0xECE2, 0xB1BA, 0xB7D9, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xBDB9, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xECCC, /* 0x20 */
	0xD1E6, 0xECCD, 	 0, 	 0, 	 0, 	 0, 0xC8BB, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xECD1, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 0xECD3, 	 0, 0xBBCD, 	 0, 0xBCE5, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 0xECCF, 	 0, 0xC9B7, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 0xC3BA, 	 0, 0xECE3, 0xD5D5, /* 0x60 */
	0xECD0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD6F3, 	 0, /* 0x60 */
		 0, 	 0, 0xECD2, 0xECCE, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
	0xECD4, 	 0, 0xECD5, 	 0, 	 0, 0xC9BF, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 0xCFA8, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xD0DC, 	 0, 	 0, 	 0, 	 0, 0xD1AC, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 0xC8DB, 	 0, 	 0, 	 0, /* 0x90 */
	0xECD6, 0xCEF5, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCAEC, /* 0x90 */
	0xECDA, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xECD9, 	 0, 	 0, 	 0, 0xB0BE, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xECD7, 	 0, 0xECD8, 	 0, 	 0, /* 0xB0 */
		 0, 0xECE4, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 0xC8BC, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC1C7, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 0xECDC, 0xD1E0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
	0xECDB, 	 0, 	 0, 	 0, 	 0, 0xD4EF, 	 0, 0xECDD, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDBC6, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 0xECDE													/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_72[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
													0xB1AC, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xECDF, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
	0xECE0, 	 0, 0xD7A6, 	 0, 0xC5C0, 	 0, 	 0, 	 0, /* 0x20 */
	0xEBBC, 0xB0AE, 	 0, 	 0, 	 0, 0xBEF4, 0xB8B8, 0xD2AF, /* 0x30 */
	0xB0D6, 0xB5F9, 	 0, 0xD8B3, 	 0, 0xCBAC, 	 0, 0xE3DD, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC6AC, /* 0x40 */
	0xB0E6, 	 0, 	 0, 	 0, 0xC5C6, 0xEBB9, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 0xEBBA, 	 0, 	 0, 	 0, 0xEBBB, 	 0, /* 0x50 */
		 0, 0xD1C0, 	 0, 0xC5A3, 	 0, 0xEAF2, 	 0, 0xC4B2, /* 0x50 */
		 0, 0xC4B5, 0xC0CE, 	 0, 	 0, 	 0, 0xEAF3, 0xC4C1, /* 0x60 */
		 0, 0xCEEF, 	 0, 	 0, 	 0, 	 0, 0xEAF0, 0xEAF4, /* 0x60 */
		 0, 	 0, 0xC9FC, 	 0, 	 0, 0xC7A3, 	 0, 	 0, /* 0x70 */
		 0, 0xCCD8, 0xCEFE, 	 0, 	 0, 	 0, 0xEAF5, 0xEAF6, /* 0x70 */
	0xCFAC, 0xC0E7, 	 0, 	 0, 0xEAF7, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xB6BF, 0xEAF8, 	 0, 0xEAF9, 	 0, 0xEAFA, /* 0x80 */
		 0, 	 0, 0xEAFB, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEAF1, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 0xC8AE, 0xE1EB, 	 0, 0xB7B8, /* 0xA0 */
	0xE1EC, 	 0, 	 0, 	 0, 0xE1ED, 	 0, 0xD7B4, 0xE1EE, /* 0xB0 */
	0xE1EF, 0xD3CC, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xE1F1, 0xBFF1, 0xE1F0, 0xB5D2, 	 0, 	 0, 	 0, /* 0xC0 */
	0xB1B7, 	 0, 	 0, 	 0, 	 0, 0xE1F3, 0xE1F2, 	 0, /* 0xC0 */
	0xBAFC, 	 0, 0xE1F4, 	 0, 	 0, 	 0, 	 0, 0xB9B7, /* 0xD0 */
		 0, 0xBED1, 	 0, 	 0, 	 0, 	 0, 0xC4FC, 	 0, /* 0xD0 */
	0xBADD, 0xBDC6, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xE1F5, 0xE1F7, 	 0, 	 0, 0xB6C0, 0xCFC1, 0xCAA8, 0xE1F6, /* 0xE0 */
	0xD5F8, 0xD3FC, 0xE1F8, 0xE1FC, 0xE1F9, 	 0, 	 0, 0xE1FA, /* 0xF0 */
	0xC0EA, 	 0, 0xE1FE, 0xE2A1, 0xC0C7							/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_73[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xE1FB, 	 0, 0xE1FD, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 0xE2A5, 	 0, 	 0, 	 0, 0xC1D4, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 0xE2A3, 	 0, 0xE2A8, 0xB2FE, 0xE2A2, /* 0x10 */
		 0, 	 0, 	 0, 0xC3CD, 0xB2C2, 0xE2A7, 0xE2A6, 	 0, /* 0x10 */
		 0, 0xE2A4, 0xE2A9, 	 0, 	 0, 0xE2AB, 	 0, 	 0, /* 0x20 */
		 0, 0xD0C9, 0xD6ED, 0xC3A8, 0xE2AC, 	 0, 0xCFD7, 	 0, /* 0x20 */
		 0, 0xE2AE, 	 0, 	 0, 0xBAEF, 	 0, 	 0, 0xE9E0, /* 0x30 */
	0xE2AD, 0xE2AA, 	 0, 	 0, 	 0, 	 0, 0xBBAB, 0xD4B3, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE2B0, 	 0, 	 0, /* 0x40 */
	0xE2AF, 	 0, 0xE9E1, 	 0, 	 0, 	 0, 	 0, 0xE2B1, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
	0xE2B2, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 0xE2B3, 0xCCA1, 	 0, 0xE2B4, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE2B5, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 0xD0FE, 	 0, 	 0, 0xC2CA, /* 0x80 */
		 0, 0xD3F1, 	 0, 0xCDF5, 	 0, 	 0, 0xE7E0, 	 0, /* 0x80 */
		 0, 0xE7E1, 	 0, 	 0, 	 0, 	 0, 0xBEC1, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xC2EA, 	 0, 	 0, 	 0, 0xE7E4, /* 0x90 */
		 0, 	 0, 0xE7E3, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 0xCDE6, 	 0, 0xC3B5, 	 0, 	 0, 0xE7E2, 0xBBB7, /* 0xA0 */
	0xCFD6, 	 0, 0xC1E1, 0xE7E9, 	 0, 	 0, 	 0, 0xE7E8, /* 0xB0 */
		 0, 	 0, 0xE7F4, 0xB2A3, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xE7EA, 	 0, 0xE7E6, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
	0xE7EC, 0xE7EB, 0xC9BA, 	 0, 	 0, 0xD5E4, 	 0, 0xE7E5, /* 0xC0 */
	0xB7A9, 0xE7E7, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 0xE7EE, 	 0, 	 0, 	 0, 	 0, 0xE7F3, 	 0, /* 0xD0 */
	0xD6E9, 	 0, 	 0, 	 0, 	 0, 0xE7ED, 	 0, 0xE7F2, /* 0xE0 */
		 0, 0xE7F1, 	 0, 	 0, 	 0, 0xB0E0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 0xE7F5											/* 0xF0 */
																	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_74[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
							0xC7F2, 	 0, 0xC0C5, 0xC0ED, 	 0, /* 0x00 */
		 0, 0xC1F0, 0xE7F0, 	 0, 	 0, 	 0, 	 0, 0xE7F6, /* 0x00 */
	0xCBF6, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 0xE8A2, 0xE8A1, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 0xD7C1, 	 0, 	 0, 0xE7FA, 0xE7F9, 	 0, /* 0x20 */
	0xE7FB, 	 0, 0xE7F7, 	 0, 0xE7FE, 	 0, 0xE7FD, 	 0, /* 0x20 */
	0xE7FC, 	 0, 	 0, 0xC1D5, 0xC7D9, 0xC5FD, 0xC5C3, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 0xC7ED, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xE8A3, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE8A6, 	 0, 0xE8A5, /* 0x50 */
		 0, 0xE8A7, 0xBAF7, 0xE7F8, 0xE8A4, 	 0, 0xC8F0, 0xC9AA, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE8A9, 	 0, 	 0, /* 0x60 */
	0xB9E5, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD1FE, 0xE8A8, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE8AA, 	 0, /* 0x70 */
	0xE8AD, 0xE8AE, 	 0, 0xC1A7, 	 0, 	 0, 	 0, 0xE8AF, /* 0x80 */
		 0, 	 0, 	 0, 0xE8B0, 	 0, 	 0, 0xE8AC, 	 0, /* 0x80 */
	0xE8B4, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 0xE8AB, 	 0, 0xE8B1, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE8B5, /* 0xA0 */
	0xE8B2, 0xE8B3, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 0xE8B7, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xE8B6, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 0xB9CF, 	 0, 0xF0AC, 	 0, /* 0xD0 */
	0xF0AD, 	 0, 0xC6B0, 0xB0EA, 0xC8BF, 	 0, 0xCDDF, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCECD, 0xEAB1, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 0xEAB2, 	 0, 0xC6BF, 0xB4C9, /* 0xF0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEAB3	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_75[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
									0xD5E7, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xDDF9, 	 0, 0xEAB4, /* 0x00 */
		 0, 0xEAB5, 	 0, 0xEAB6, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
	0xB8CA, 0xDFB0, 0xC9F5, 	 0, 0xCCF0, 	 0, 	 0, 0xC9FA, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xC9FB, 	 0, 	 0, /* 0x20 */
	0xD3C3, 0xCBA6, 	 0, 0xB8A6, 0xF0AE, 0xB1C2, 	 0, 0xE5B8, /* 0x20 */
	0xCCEF, 0xD3C9, 0xBCD7, 0xC9EA, 	 0, 0xB5E7, 	 0, 0xC4D0, /* 0x30 */
	0xB5E9, 	 0, 0xEEAE, 0xBBAD, 	 0, 	 0, 0xE7DE, 	 0, /* 0x30 */
	0xEEAF, 	 0, 	 0, 	 0, 	 0, 0xB3A9, 	 0, 	 0, /* 0x40 */
	0xEEB2, 	 0, 	 0, 0xEEB1, 0xBDE7, 	 0, 0xEEB0, 0xCEB7, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xC5CF, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 0xC1F4, 0xDBCE, 0xEEB3, 0xD0F3, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xC2D4, 0xC6E8, 	 0, /* 0x60 */
		 0, 	 0, 0xB7AC, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 0xEEB4, 	 0, 0xB3EB, 	 0, 	 0, 	 0, /* 0x70 */
	0xBBFB, 0xEEB5, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE7DC, /* 0x70 */
		 0, 	 0, 	 0, 0xEEB6, 	 0, 	 0, 0xBDAE, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 0xF1E2, 	 0, 	 0, 	 0, 0xCAE8, /* 0x80 */
		 0, 0xD2C9, 0xF0DA, 	 0, 0xF0DB, 	 0, 0xF0DC, 0xC1C6, /* 0x90 */
		 0, 0xB8ED, 0xBECE, 	 0, 	 0, 0xF0DE, 	 0, 0xC5B1, /* 0x90 */
	0xF0DD, 0xD1F1, 	 0, 0xF0E0, 0xB0CC, 0xBDEA, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xD2DF, 0xF0DF, 	 0, 0xB4AF, 0xB7E8, /* 0xA0 */
	0xF0E6, 0xF0E5, 0xC6A3, 0xF0E1, 0xF0E2, 0xB4C3, 	 0, 	 0, /* 0xB0 */
	0xF0E3, 0xD5EE, 	 0, 	 0, 0xCCDB, 0xBED2, 0xBCB2, 	 0, /* 0xB0 */
		 0, 	 0, 0xF0E8, 0xF0E7, 0xF0E4, 0xB2A1, 	 0, 0xD6A2, /* 0xC0 */
	0xD3B8, 0xBEB7, 0xC8AC, 	 0, 	 0, 0xF0EA, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xD1F7, 	 0, 0xD6CC, 0xBADB, 0xF0E9, 	 0, /* 0xD0 */
	0xB6BB, 	 0, 	 0, 0xCDB4, 	 0, 	 0, 0xC6A6, 	 0, /* 0xD0 */
		 0, 	 0, 0xC1A1, 0xF0EB, 0xF0EE, 	 0, 0xF0ED, 0xF0F0, /* 0xE0 */
	0xF0EC, 	 0, 0xBBBE, 0xF0EF, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xCCB5, 0xF0F2, 	 0, 	 0, 0xB3D5, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 0xB1D4, 	 0, 	 0, 0xF0F3, 	 0, 	 0, 0xF0F4	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_76[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xF0F6, 0xB4E1, 	 0, 0xF0F1, 	 0, 0xF0F7, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 0xF0FA, 	 0, 0xF0F8, 	 0, 	 0, 	 0, /* 0x00 */
	0xF0F5, 	 0, 	 0, 	 0, 	 0, 0xF0FD, 	 0, 0xF0F9, /* 0x10 */
	0xF0FC, 0xF0FE, 	 0, 0xF1A1, 	 0, 	 0, 	 0, 0xCEC1, /* 0x10 */
	0xF1A4, 	 0, 0xF1A3, 	 0, 0xC1F6, 0xF0FB, 0xCADD, 	 0, /* 0x20 */
		 0, 0xB4F1, 0xB1F1, 0xCCB1, 	 0, 0xF1A6, 	 0, 	 0, /* 0x20 */
	0xF1A7, 	 0, 	 0, 0xF1AC, 0xD5CE, 0xF1A9, 	 0, 	 0, /* 0x30 */
	0xC8B3, 	 0, 	 0, 	 0, 0xF1A2, 	 0, 0xF1AB, 0xF1A8, /* 0x30 */
	0xF1A5, 	 0, 	 0, 0xF1AA, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xB0A9, 0xF1AD, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xF1AF, 	 0, 0xF1B1, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 0xF1B0, 	 0, 0xF1AE, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 0xD1A2, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xF1B2, 	 0, 	 0, 	 0, 0xF1B3, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
	0xB9EF, 	 0, 	 0, 0xB5C7, 	 0, 0xB0D7, 0xB0D9, 	 0, /* 0x70 */
		 0, 	 0, 0xD4ED, 	 0, 0xB5C4, 	 0, 0xBDD4, 0xBBCA, /* 0x80 */
	0xF0A7, 	 0, 	 0, 0xB8DE, 	 0, 	 0, 0xF0A8, 	 0, /* 0x80 */
		 0, 0xB0A8, 	 0, 0xF0A9, 	 0, 	 0, 0xCDEE, 	 0, /* 0x90 */
		 0, 0xF0AA, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 0xF0AB, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC6A4, 	 0, /* 0xA0 */
		 0, 0xD6E5, 0xF1E4, 	 0, 0xF1E5, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC3F3, /* 0xB0 */
		 0, 	 0, 0xD3DB, 	 0, 	 0, 0xD6D1, 0xC5E8, 	 0, /* 0xC0 */
	0xD3AF, 	 0, 0xD2E6, 	 0, 	 0, 0xEEC1, 0xB0BB, 0xD5B5, /* 0xC0 */
	0xD1CE, 0xBCE0, 0xBAD0, 	 0, 0xBFF8, 	 0, 0xB8C7, 0xB5C1, /* 0xD0 */
	0xC5CC, 	 0, 	 0, 0xCAA2, 	 0, 	 0, 	 0, 0xC3CB, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEEC2, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC4BF, 0xB6A2, /* 0xE0 */
		 0, 0xEDEC, 0xC3A4, 	 0, 0xD6B1, 	 0, 	 0, 	 0, /* 0xF0 */
	0xCFE0, 0xEDEF, 	 0, 	 0, 0xC5CE, 	 0, 0xB6DC			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_77[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xCAA1, 	 0, 	 0, 0xEDED, 	 0, 	 0, 0xEDF0, /* 0x00 */
	0xEDF1, 0xC3BC, 	 0, 0xBFB4, 	 0, 0xEDEE, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 0xEDF4, 0xEDF2, 	 0, 	 0, 	 0, 	 0, 0xD5E6, /* 0x10 */
	0xC3DF, 	 0, 0xEDF3, 	 0, 	 0, 	 0, 0xEDF6, 	 0, /* 0x20 */
	0xD5A3, 0xD1A3, 	 0, 	 0, 	 0, 0xEDF5, 	 0, 0xC3D0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEDF7, 0xBFF4, 0xBEEC, /* 0x30 */
	0xEDF8, 	 0, 0xCCF7, 	 0, 0xD1DB, 	 0, 	 0, 	 0, /* 0x30 */
	0xD7C5, 0xD5F6, 	 0, 0xEDFC, 	 0, 	 0, 	 0, 0xEDFB, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
	0xEDF9, 0xEDFA, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xEDFD, 0xBEA6, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 0xCBAF, 0xEEA1, 0xB6BD, 	 0, 0xEEA2, 0xC4C0, 	 0, /* 0x60 */
	0xEDFE, 	 0, 	 0, 0xBDDE, 0xB2C7, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 0xB6C3, 	 0, 	 0, 	 0, 0xEEA5, 0xD8BA, 0xEEA3, /* 0x70 */
	0xEEA6, 	 0, 	 0, 	 0, 0xC3E9, 0xB3F2, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 0xEEA7, 0xEEA4, 0xCFB9, 	 0, /* 0x80 */
		 0, 0xEEA8, 0xC2F7, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEEA9, /* 0x90 */
	0xEEAA, 	 0, 0xDEAB, 	 0, 	 0, 0xC6B3, 	 0, 0xC7C6, /* 0xA0 */
		 0, 0xD6F5, 0xB5C9, 	 0, 0xCBB2, 	 0, 	 0, 	 0, /* 0xA0 */
	0xEEAB, 	 0, 	 0, 0xCDAB, 	 0, 0xEEAC, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 0xD5B0, 	 0, 0xEEAD, 	 0, 0xF6C4, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xDBC7, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xB4A3, /* 0xD0 */
		 0, 	 0, 	 0, 0xC3AC, 0xF1E6, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 0xCAB8, 0xD2D3, 	 0, 0xD6AA, 	 0, 0xEFF2, /* 0xE0 */
		 0, 0xBED8, 	 0, 0xBDC3, 0xEFF3, 0xB6CC, 0xB0AB, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xCAAF, 	 0, 	 0, 0xEDB6, 	 0, /* 0xF0 */
	0xEDB7, 	 0, 	 0, 	 0, 	 0, 0xCEF9, 0xB7AF, 0xBFF3	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_78[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xEDB8, 0xC2EB, 0xC9B0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 0xEDB9, 	 0, 	 0, 0xC6F6, 0xBFB3, 	 0, 	 0, /* 0x00 */
		 0, 0xEDBC, 0xC5F8, 	 0, 0xD1D0, 	 0, 0xD7A9, 0xEDBA, /* 0x10 */
	0xEDBB, 	 0, 0xD1E2, 	 0, 0xEDBF, 0xEDC0, 	 0, 0xEDC4, /* 0x10 */
		 0, 	 0, 	 0, 0xEDC8, 	 0, 0xEDC6, 0xEDCE, 0xD5E8, /* 0x20 */
		 0, 0xEDC9, 	 0, 	 0, 0xEDC7, 0xEDBE, 	 0, 	 0, /* 0x20 */
	0xC5E9, 	 0, 	 0, 	 0, 0xC6C6, 	 0, 	 0, 0xC9E9, /* 0x30 */
	0xD4D2, 0xEDC1, 0xEDC2, 0xEDC3, 0xEDC5, 	 0, 0xC0F9, 	 0, /* 0x30 */
	0xB4A1, 	 0, 	 0, 	 0, 	 0, 0xB9E8, 	 0, 0xEDD0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xEDD1, 	 0, 0xEDCA, 	 0, /* 0x40 */
	0xEDCF, 	 0, 0xCEF8, 	 0, 	 0, 0xCBB6, 0xEDCC, 0xEDCD, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xCFF5, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 0xEDD2, 0xC1F2, 0xD3B2, 0xEDCB, 0xC8B7, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xBCEF, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 0xC5F0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEDD6, /* 0x80 */
		 0, 0xB5EF, 	 0, 	 0, 0xC2B5, 0xB0AD, 0xCBE9, 	 0, /* 0x80 */
		 0, 0xB1AE, 	 0, 0xEDD4, 	 0, 	 0, 	 0, 0xCDEB, /* 0x90 */
	0xB5E2, 	 0, 0xEDD5, 0xEDD3, 0xEDD7, 	 0, 	 0, 0xB5FA, /* 0x90 */
		 0, 0xEDD8, 	 0, 0xEDD9, 	 0, 0xEDDC, 	 0, 0xB1CC, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xC5F6, 0xBCEE, 0xEDDA, 0xCCBC, 0xB2EA, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xEDDB, 	 0, 	 0, 	 0, 	 0, 0xC4EB, 	 0, /* 0xB0 */
		 0, 0xB4C5, 	 0, 	 0, 	 0, 0xB0F5, 	 0, 	 0, /* 0xC0 */
		 0, 0xEDDF, 0xC0DA, 0xB4E8, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
	0xC5CD, 	 0, 	 0, 	 0, 0xEDDD, 0xBFC4, 	 0, 	 0, /* 0xD0 */
		 0, 0xEDDE, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xC4A5, 	 0, 	 0, 	 0, 0xEDE0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 0xEDE1, 	 0, 0xEDE3, 	 0, 	 0, 0xC1D7, /* 0xF0 */
		 0, 	 0, 0xBBC7											/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_79[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xBDB8, 	 0, 	 0, 	 0, 0xEDE2, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 0xEDE4, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEDE6, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 0xEDE5, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 0xEDE7, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 0xCABE, 0xECEA, 0xC0F1, 	 0, 0xC9E7, 	 0, /* 0x30 */
	0xECEB, 0xC6EE, 	 0, 	 0, 	 0, 	 0, 0xECEC, 	 0, /* 0x40 */
	0xC6ED, 0xECED, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 0xECF0, 	 0, 	 0, 0xD7E6, 0xECF3, /* 0x50 */
		 0, 	 0, 0xECF1, 0xECEE, 0xECEF, 0xD7A3, 0xC9F1, 0xCBEE, /* 0x50 */
	0xECF4, 	 0, 0xECF2, 	 0, 	 0, 0xCFE9, 	 0, 0xECF6, /* 0x60 */
	0xC6B1, 	 0, 	 0, 	 0, 	 0, 0xBCC0, 	 0, 0xECF5, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xB5BB, /* 0x70 */
	0xBBF6, 	 0, 0xECF7, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
	0xD9F7, 0xBDFB, 	 0, 	 0, 0xC2BB, 0xECF8, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xECF9, 	 0, 	 0, 	 0, 	 0, 0xB8A3, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 0xECFA, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xECFB, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xECFC, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xD3ED, 0xD8AE, 0xC0EB, 	 0, 0xC7DD, 0xBACC, 	 0, /* 0xB0 */
	0xD0E3, 0xCBBD, 	 0, 0xCDBA, 	 0, 	 0, 0xB8D1, 	 0, /* 0xC0 */
		 0, 0xB1FC, 	 0, 0xC7EF, 	 0, 0xD6D6, 	 0, 	 0, /* 0xC0 */
		 0, 0xBFC6, 0xC3EB, 	 0, 	 0, 0xEFF5, 	 0, 	 0, /* 0xD0 */
	0xC3D8, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD7E2, /* 0xD0 */
		 0, 	 0, 	 0, 0xEFF7, 0xB3D3, 	 0, 0xC7D8, 0xD1ED, /* 0xE0 */
		 0, 0xD6C8, 	 0, 0xEFF8, 	 0, 0xEFF6, 	 0, 0xBBFD, /* 0xE0 */
	0xB3C6, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
	0xBDD5, 	 0, 	 0, 0xD2C6, 	 0, 0xBBE0					/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_7A[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xCFA1, 	 0, 0xEFFC, 0xEFFB, 	 0, 	 0, 0xEFF9, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 0xB3CC, 	 0, 0xC9D4, 0xCBB0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 0xEFFE, 	 0, 	 0, 0xB0DE, /* 0x10 */
		 0, 	 0, 0xD6C9, 	 0, 	 0, 	 0, 0xEFFD, 	 0, /* 0x10 */
	0xB3ED, 	 0, 	 0, 0xF6D5, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 0xCEC8, 	 0, 	 0, 	 0, 0xF0A2, /* 0x30 */
		 0, 0xF0A1, 	 0, 0xB5BE, 0xBCDA, 0xBBFC, 	 0, 0xB8E5, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC4C2, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 0xF0A3, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCBEB, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
	0xF0A6, 	 0, 	 0, 	 0, 0xD1A8, 	 0, 0xBEBF, 0xC7EE, /* 0x70 */
	0xF1B6, 0xF1B7, 0xBFD5, 	 0, 	 0, 	 0, 	 0, 0xB4A9, /* 0x70 */
	0xF1B8, 0xCDBB, 	 0, 0xC7D4, 0xD5AD, 	 0, 0xF1B9, 	 0, /* 0x80 */
	0xF1BA, 	 0, 	 0, 	 0, 	 0, 0xC7CF, 	 0, 	 0, /* 0x80 */
		 0, 0xD2A4, 0xD6CF, 	 0, 	 0, 0xF1BB, 0xBDD1, 0xB4B0, /* 0x90 */
	0xBEBD, 	 0, 	 0, 	 0, 0xB4DC, 0xCED1, 	 0, 0xBFDF, /* 0x90 */
	0xF1BD, 	 0, 	 0, 	 0, 	 0, 0xBFFA, 0xF1BC, 	 0, /* 0xA0 */
	0xF1BF, 	 0, 	 0, 	 0, 0xF1BE, 0xF1C0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xF1C1, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC1FE, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 0xC1A2, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCAFA, 	 0, /* 0xD0 */
		 0, 0xD5BE, 	 0, 	 0, 	 0, 	 0, 0xBEBA, 0xBEB9, /* 0xD0 */
	0xD5C2, 	 0, 	 0, 0xBFA2, 	 0, 0xCDAF, 0xF1B5, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xBDDF, 	 0, 0xB6CB, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 0xD6F1, 0xF3C3, 	 0, 	 0, 0xF3C4, 	 0, 0xB8CD	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_7B[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
							0xF3C6, 0xF3C7, 	 0, 0xB0CA, 	 0, /* 0x00 */
	0xF3C5, 	 0, 0xF3C9, 0xCBF1, 	 0, 	 0, 	 0, 0xF3CB, /* 0x00 */
		 0, 0xD0A6, 	 0, 	 0, 0xB1CA, 0xF3C8, 	 0, 	 0, /* 0x10 */
		 0, 0xF3CF, 	 0, 0xB5D1, 	 0, 	 0, 0xF3D7, 	 0, /* 0x10 */
	0xF3D2, 	 0, 	 0, 	 0, 0xF3D4, 0xF3D3, 0xB7FB, 	 0, /* 0x20 */
	0xB1BF, 	 0, 0xF3CE, 0xF3CA, 0xB5DA, 	 0, 0xF3D0, 	 0, /* 0x20 */
		 0, 0xF3D1, 	 0, 0xF3D5, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
	0xF3CD, 	 0, 0xBCE3, 	 0, 0xC1FD, 	 0, 0xF3D6, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF3DA, 	 0, 0xF3CC, /* 0x40 */
		 0, 0xB5C8, 	 0, 0xBDEE, 0xF3DC, 	 0, 	 0, 0xB7A4, /* 0x40 */
	0xBFF0, 0xD6FE, 0xCDB2, 	 0, 0xB4F0, 	 0, 0xB2DF, 	 0, /* 0x50 */
	0xF3D8, 	 0, 0xF3D9, 0xC9B8, 	 0, 0xF3DD, 	 0, 	 0, /* 0x50 */
	0xF3DE, 	 0, 0xF3E1, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF3DF, 	 0, /* 0x60 */
		 0, 0xF3E3, 0xF3E2, 	 0, 	 0, 0xF3DB, 	 0, 0xBFEA, /* 0x70 */
		 0, 0xB3EF, 	 0, 0xF3E0, 	 0, 	 0, 0xC7A9, 	 0, /* 0x70 */
	0xBCF2, 	 0, 	 0, 	 0, 	 0, 0xF3EB, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xB9BF, 	 0, 	 0, /* 0x80 */
	0xF3E4, 	 0, 	 0, 	 0, 0xB2AD, 0xBBFE, 	 0, 0xCBE3, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 0xF3ED, 0xF3E9, 	 0, 	 0, /* 0x90 */
		 0, 0xB9DC, 0xF3EE, 	 0, 	 0, 	 0, 0xF3E5, 0xF3E6, /* 0xA0 */
	0xF3EA, 0xC2E1, 0xF3EC, 0xF3EF, 0xF3E8, 0xBCFD, 	 0, 	 0, /* 0xA0 */
		 0, 0xCFE4, 	 0, 	 0, 0xF3F0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xF3E7, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xF3F2, 	 0, 	 0, 	 0, 	 0, 0xD7AD, 0xC6AA, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 0xF3F3, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xF3F1, 	 0, 0xC2A8, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 0xB8DD, 0xF3F5, 	 0, 	 0, 0xF3F4, 	 0, 	 0, /* 0xD0 */
		 0, 0xB4DB, 	 0, 	 0, 	 0, 0xF3F6, 0xF3F7, 	 0, /* 0xE0 */
		 0, 	 0, 0xF3F8, 	 0, 	 0, 	 0, 0xC0BA, 	 0, /* 0xE0 */
		 0, 0xC0E9, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC5F1, /* 0xF0 */
		 0, 	 0, 	 0, 	 0, 0xF3FB, 	 0, 0xF3FA			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_7C[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
															0xB4D8, /* 0x00 */
		 0, 	 0, 	 0, 0xF3FE, 0xF3F9, 	 0, 	 0, 0xF3FC, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF3FD, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF4A1, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF4A3, 0xBBC9, /* 0x20 */
		 0, 	 0, 0xF4A2, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
	0xF4A4, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xB2BE, /* 0x30 */
	0xF4A6, 0xF4A5, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xBCAE, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xC3D7, 0xD9E1, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 0xC0E0, 0xF4CC, 0xD7D1, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 0xB7DB, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 0xF4CE, 0xC1A3, 	 0, 	 0, 0xC6C9, 	 0, 0xB4D6, /* 0x90 */
	0xD5B3, 	 0, 	 0, 	 0, 0xF4D0, 0xF4CF, 0xF4D1, 0xCBDA, /* 0x90 */
		 0, 	 0, 0xF4D2, 	 0, 0xD4C1, 0xD6E0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 0xB7E0, 	 0, 	 0, 	 0, 0xC1B8, 	 0, /* 0xA0 */
		 0, 0xC1BB, 0xF4D3, 0xBEAC, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xB4E2, 	 0, 	 0, 0xF4D4, 0xF4D5, 0xBEAB, 	 0, /* 0xB0 */
		 0, 0xF4D6, 	 0, 	 0, 	 0, 0xF4DB, 	 0, 0xF4D7, /* 0xC0 */
	0xF4DA, 	 0, 0xBAFD, 	 0, 0xF4D8, 0xF4D9, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xB8E2, 0xCCC7, 0xF4DC, /* 0xD0 */
		 0, 0xB2DA, 	 0, 	 0, 0xC3D3, 	 0, 	 0, 0xD4E3, /* 0xD0 */
	0xBFB7, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xF4DD, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC5B4, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
	0xF4E9, 	 0, 	 0, 0xCFB5									/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_7D[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
																	/* 0x00 */
					0xCEC9, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
	0xCBD8, 	 0, 0xCBF7, 	 0, 	 0, 	 0, 	 0, 0xBDF4, /* 0x20 */
		 0, 	 0, 	 0, 0xD7CF, 	 0, 	 0, 	 0, 0xC0DB, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD0F5, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF4EA, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF4EB, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF4EC			/* 0xA0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_7E[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
																	/* 0x30 */
							0xF7E3, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xB7B1, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF4ED, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 0xD7EB, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xF4EE, 	 0, 	 0, 	 0, 0xE6F9, /* 0x90 */
	0xBEC0, 0xE6FA, 0xBAEC, 0xE6FB, 0xCFCB, 0xE6FC, 0xD4BC, 0xBCB6, /* 0xA0 */
	0xE6FD, 0xE6FE, 0xBCCD, 0xC8D2, 0xCEB3, 0xE7A1, 	 0, 0xB4BF, /* 0xA0 */
	0xE7A2, 0xC9B4, 0xB8D9, 0xC4C9, 	 0, 0xD7DD, 0xC2DA, 0xB7D7, /* 0xB0 */
	0xD6BD, 0xCEC6, 0xB7C4, 	 0, 	 0, 0xC5A6, 0xE7A3, 0xCFDF, /* 0xB0 */
	0xE7A4, 0xE7A5, 0xE7A6, 0xC1B7, 0xD7E9, 0xC9F0, 0xCFB8, 0xD6AF, /* 0xC0 */
	0xD6D5, 0xE7A7, 0xB0ED, 0xE7A8, 0xE7A9, 0xC9DC, 0xD2EF, 0xBEAD, /* 0xC0 */
	0xE7AA, 0xB0F3, 0xC8DE, 0xBDE1, 0xE7AB, 0xC8C6, 	 0, 0xE7AC, /* 0xD0 */
	0xBBE6, 0xB8F8, 0xD1A4, 0xE7AD, 0xC2E7, 0xBEF8, 0xBDCA, 0xCDB3, /* 0xD0 */
	0xE7AE, 0xE7AF, 0xBEEE, 0xD0E5, 	 0, 0xCBE7, 0xCCD0, 0xBCCC, /* 0xE0 */
	0xE7B0, 0xBCA8, 0xD0F7, 0xE7B1, 	 0, 0xD0F8, 0xE7B2, 0xE7B3, /* 0xE0 */
	0xB4C2, 0xE7B4, 0xE7B5, 0xC9FE, 0xCEAC, 0xC3E0, 0xE7B7, 0xB1C1, /* 0xF0 */
	0xB3F1, 	 0, 0xE7B8, 0xE7B9, 0xD7DB, 0xD5C0, 0xE7BA, 0xC2CC	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_7F[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xD7BA, 0xE7BB, 0xE7BC, 0xE7BD, 0xBCEA, 0xC3E5, 0xC0C2, 0xE7BE, /* 0x00 */
	0xE7BF, 0xBCA9, 	 0, 0xE7C0, 0xE7C1, 0xE7B6, 0xB6D0, 0xE7C2, /* 0x00 */
		 0, 0xE7C3, 0xE7C4, 0xBBBA, 0xB5DE, 0xC2C6, 0xB1E0, 0xE7C5, /* 0x10 */
	0xD4B5, 0xE7C6, 0xB8BF, 0xE7C8, 0xE7C7, 0xB7EC, 	 0, 0xE7C9, /* 0x10 */
	0xB2F8, 0xE7CA, 0xE7CB, 0xE7CC, 0xE7CD, 0xE7CE, 0xE7CF, 0xE7D0, /* 0x20 */
	0xD3A7, 0xCBF5, 0xE7D1, 0xE7D2, 0xE7D3, 0xE7D4, 0xC9C9, 0xE7D5, /* 0x20 */
	0xE7D6, 0xE7D7, 0xE7D8, 0xE7D9, 0xBDC9, 0xE7DA, 0xF3BE, 	 0, /* 0x30 */
	0xB8D7, 	 0, 0xC8B1, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 0xF3BF, 	 0, 0xF3C0, 0xF3C1, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
	0xB9DE, 0xCDF8, 	 0, 	 0, 0xD8E8, 0xBAB1, 	 0, 0xC2DE, /* 0x50 */
	0xEEB7, 	 0, 0xB7A3, 	 0, 	 0, 	 0, 	 0, 0xEEB9, /* 0x50 */
		 0, 0xEEB8, 0xB0D5, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
	0xEEBB, 0xD5D6, 0xD7EF, 	 0, 	 0, 	 0, 0xD6C3, 	 0, /* 0x60 */
		 0, 0xEEBD, 0xCAF0, 	 0, 0xEEBC, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 0xEEBE, 	 0, 	 0, 	 0, 	 0, 0xEEC0, 	 0, /* 0x70 */
		 0, 0xEEBF, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xD1F2, 	 0, 0xC7BC, 	 0, 0xC3C0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 0xB8E1, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 0xC1E7, 	 0, 	 0, 0xF4C6, 0xD0DF, 0xF4C7, /* 0x90 */
		 0, 0xCFDB, 	 0, 	 0, 0xC8BA, 	 0, 	 0, 0xF4C8, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF4C9, /* 0xA0 */
	0xF4CA, 	 0, 0xF4CB, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xD9FA, 0xB8FE, 	 0, 	 0, 0xE5F1, 0xD3F0, 	 0, 0xF4E0, /* 0xB0 */
		 0, 0xCECC, 	 0, 	 0, 	 0, 0xB3E1, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xF1B4, 	 0, 0xD2EE, 	 0, 0xF4E1, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 0xCFE8, 0xF4E2, 	 0, 	 0, /* 0xD0 */
	0xC7CC, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xB5D4, /* 0xD0 */
	0xB4E4, 0xF4E4, 	 0, 	 0, 	 0, 0xF4E3, 0xF4E5, 	 0, /* 0xE0 */
		 0, 0xF4E6, 	 0, 	 0, 	 0, 	 0, 0xF4E7, 	 0, /* 0xE0 */
	0xBAB2, 0xB0BF, 	 0, 0xF4E8, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 0xB7AD, 0xD2ED							/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_80[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xD2AB, 0xC0CF, 	 0, 0xBFBC, 0xEBA3, 0xD5DF, 0xEAC8, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 0xF1F3, 0xB6F8, 0xCBA3, 	 0, 	 0, /* 0x00 */
	0xC4CD, 	 0, 0xF1E7, 	 0, 0xF1E8, 0xB8FB, 0xF1E9, 0xBAC4, /* 0x10 */
	0xD4C5, 0xB0D2, 	 0, 	 0, 0xF1EA, 	 0, 	 0, 	 0, /* 0x10 */
	0xF1EB, 	 0, 0xF1EC, 	 0, 	 0, 0xF1ED, 0xF1EE, 0xF1EF, /* 0x20 */
	0xF1F1, 0xF1F0, 0xC5D5, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 0xF1F2, 	 0, 0xB6FA, 	 0, 0xF1F4, 0xD2AE, 0xDEC7, /* 0x30 */
	0xCBCA, 	 0, 	 0, 0xB3DC, 	 0, 0xB5A2, 	 0, 0xB9A2, /* 0x30 */
		 0, 	 0, 0xC4F4, 0xF1F5, 	 0, 	 0, 0xF1F6, 	 0, /* 0x40 */
		 0, 	 0, 0xC1C4, 0xC1FB, 0xD6B0, 0xF1F7, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 0xF1F8, 	 0, 0xC1AA, 	 0, 	 0, 	 0, /* 0x50 */
	0xC6B8, 	 0, 0xBEDB, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 0xF1F9, 0xB4CF, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 0xF1FA, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEDB2, /* 0x70 */
	0xEDB1, 	 0, 	 0, 0xCBE0, 0xD2DE, 	 0, 0xCBC1, 0xD5D8, /* 0x80 */
		 0, 0xC8E2, 	 0, 0xC0DF, 0xBCA1, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 0xEBC1, 	 0, 	 0, 0xD0A4, 	 0, /* 0x90 */
	0xD6E2, 	 0, 0xB6C7, 0xB8D8, 0xEBC0, 0xB8CE, 	 0, 0xEBBF, /* 0x90 */
	0xB3A6, 0xB9C9, 0xD6AB, 	 0, 0xB7F4, 0xB7CA, 	 0, 	 0, /* 0xA0 */
		 0, 0xBCE7, 0xB7BE, 0xEBC6, 	 0, 0xEBC7, 0xB0B9, 0xBFCF, /* 0xA0 */
		 0, 0xEBC5, 0xD3FD, 	 0, 0xEBC8, 	 0, 	 0, 0xEBC9, /* 0xB0 */
		 0, 	 0, 0xB7CE, 	 0, 0xEBC2, 0xEBC4, 0xC9F6, 0xD6D7, /* 0xB0 */
	0xD5CD, 0xD0B2, 0xEBCF, 0xCEB8, 0xEBD0, 	 0, 0xB5A8, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 0xB1B3, 0xEBD2, 0xCCA5, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC5D6, 0xEBD3, /* 0xD0 */
		 0, 0xEBD1, 0xC5DF, 0xEBCE, 0xCAA4, 0xEBD5, 0xB0FB, 	 0, /* 0xD0 */
		 0, 0xBAFA, 	 0, 	 0, 0xD8B7, 0xF1E3, 	 0, 0xEBCA, /* 0xE0 */
	0xEBCB, 0xEBCC, 0xEBCD, 0xEBD6, 0xE6C0, 0xEBD9, 	 0, 0xBFE8, /* 0xE0 */
	0xD2C8, 0xEBD7, 0xEBDC, 0xB8EC, 0xEBD8, 	 0, 0xBDBA, 	 0, /* 0xF0 */
	0xD0D8, 	 0, 0xB0B7, 	 0, 0xEBDD, 0xC4DC					/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_81[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
					0xD6AC, 	 0, 	 0, 	 0, 0xB4E0, 	 0, /* 0x00 */
		 0, 0xC2F6, 0xBCB9, 	 0, 	 0, 0xEBDA, 0xEBDB, 0xD4E0, /* 0x00 */
	0xC6EA, 0xC4D4, 0xEBDF, 0xC5A7, 0xD9F5, 	 0, 0xB2B1, 	 0, /* 0x10 */
	0xEBE4, 	 0, 0xBDC5, 	 0, 	 0, 	 0, 0xEBE2, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 0xEBE3, 	 0, 	 0, 0xB8AC, /* 0x20 */
		 0, 0xCDD1, 0xEBE5, 	 0, 	 0, 	 0, 0xEBE1, 	 0, /* 0x30 */
	0xC1B3, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC6A2, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCCF3, 	 0, /* 0x40 */
	0xEBE6, 	 0, 0xC0B0, 0xD2B8, 0xEBE7, 	 0, 	 0, 	 0, /* 0x40 */
	0xB8AF, 0xB8AD, 	 0, 0xEBE8, 0xC7BB, 0xCDF3, 	 0, 	 0, /* 0x50 */
		 0, 0xEBEA, 0xEBEB, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
	0xEBED, 	 0, 	 0, 	 0, 	 0, 0xD0C8, 	 0, 0xEBF2, /* 0x60 */
		 0, 0xEBEE, 	 0, 	 0, 	 0, 0xEBF1, 0xC8F9, 	 0, /* 0x60 */
	0xD1FC, 0xEBEC, 	 0, 	 0, 0xEBE9, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 0xB8B9, 0xCFD9, 0xC4E5, 0xEBEF, 0xEBF0, 0xCCDA, 0xCDC8, /* 0x70 */
	0xB0F2, 	 0, 0xEBF6, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
	0xEBF5, 	 0, 0xB2B2, 	 0, 	 0, 	 0, 	 0, 0xB8E0, /* 0x80 */
		 0, 0xEBF7, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
	0xB1EC, 	 0, 	 0, 0xCCC5, 0xC4A4, 0xCFA5, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xEBF9, 	 0, 	 0, 0xECA2, 	 0, /* 0xA0 */
	0xC5F2, 	 0, 0xEBFA, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xC9C5, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 0xE2DF, 0xEBFE, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xCDCE, 0xECA1, 0xB1DB, 0xD3B7, 	 0, 	 0, 0xD2DC, 	 0, /* 0xC0 */
		 0, 	 0, 0xEBFD, 	 0, 0xEBFB, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 0xB3BC, 	 0, 	 0, 	 0, 0xEAB0, /* 0xE0 */
		 0, 	 0, 0xD7D4, 	 0, 0xF4AB, 0xB3F4, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xD6C1, 0xD6C2, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 0xD5E9, 0xBECA, 	 0, 0xF4A7			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_82[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xD2A8, 0xF4A8, 0xF4A9, 	 0, 0xF4AA, 0xBECB, 0xD3DF, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 0xC9E0, 0xC9E1, 	 0, 	 0, /* 0x00 */
	0xF3C2, 	 0, 0xCAE6, 	 0, 0xCCF2, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 0xE2B6, 0xCBB4, 	 0, 0xCEE8, 0xD6DB, /* 0x10 */
		 0, 0xF4AD, 0xF4AE, 0xF4AF, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
	0xF4B2, 	 0, 0xBABD, 0xF4B3, 0xB0E3, 0xF4B0, 	 0, 0xF4B1, /* 0x20 */
	0xBDA2, 0xB2D5, 	 0, 0xF4B6, 0xF4B7, 0xB6E6, 0xB2B0, 0xCFCF, /* 0x30 */
	0xF4B4, 0xB4AC, 	 0, 0xF4B5, 	 0, 	 0, 0xF4B8, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 0xF4B9, 	 0, 	 0, 0xCDA7, /* 0x40 */
		 0, 0xF4BA, 	 0, 0xF4BB, 	 0, 	 0, 	 0, 0xF4BC, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
	0xCBD2, 	 0, 0xF4BD, 	 0, 	 0, 	 0, 	 0, 0xF4BE, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
	0xF4BF, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF4DE, 0xC1BC, /* 0x60 */
	0xBCE8, 	 0, 0xC9AB, 0xD1DE, 0xE5F5, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 0xDCB3, 0xD2D5, 	 0, 	 0, 0xDCB4, 0xB0AC, 0xDCB5, /* 0x70 */
		 0, 	 0, 0xBDDA, 	 0, 0xDCB9, 	 0, 	 0, 	 0, /* 0x80 */
	0xD8C2, 	 0, 0xDCB7, 0xD3F3, 	 0, 0xC9D6, 0xDCBA, 0xDCB6, /* 0x80 */
		 0, 0xDCBB, 0xC3A2, 	 0, 	 0, 	 0, 	 0, 0xDCBC, /* 0x90 */
	0xDCC5, 0xDCBD, 	 0, 	 0, 0xCEDF, 0xD6A5, 	 0, 0xDCCF, /* 0x90 */
		 0, 0xDCCD, 	 0, 	 0, 0xDCD2, 0xBDE6, 0xC2AB, 	 0, /* 0xA0 */
	0xDCB8, 0xDCCB, 0xDCCE, 0xDCBE, 0xB7D2, 0xB0C5, 0xDCC7, 0xD0BE, /* 0xA0 */
	0xDCC1, 0xBBA8, 	 0, 0xB7BC, 0xDCCC, 	 0, 	 0, 0xDCC6, /* 0xB0 */
	0xDCBF, 0xC7DB, 	 0, 	 0, 	 0, 0xD1BF, 0xDCC0, 	 0, /* 0xB0 */
		 0, 0xDCCA, 	 0, 	 0, 0xDCD0, 	 0, 	 0, 0xCEAD, /* 0xC0 */
	0xDCC2, 	 0, 0xDCC3, 0xDCC8, 0xDCC9, 0xB2D4, 0xDCD1, 0xCBD5, /* 0xC0 */
		 0, 0xD4B7, 0xDCDB, 0xDCDF, 0xCCA6, 0xDCE6, 	 0, 0xC3E7, /* 0xD0 */
	0xDCDC, 	 0, 	 0, 0xBFC1, 0xDCD9, 	 0, 0xB0FA, 0xB9B6, /* 0xD0 */
	0xDCE5, 0xDCD3, 	 0, 0xDCC4, 0xDCD6, 0xC8F4, 0xBFE0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xC9BB, 	 0, 	 0, 	 0, 0xB1BD, /* 0xE0 */
		 0, 0xD3A2, 	 0, 	 0, 0xDCDA, 	 0, 	 0, 0xDCD5, /* 0xF0 */
		 0, 0xC6BB, 	 0, 0xDCDE									/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_83[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xD7C2, 0xC3AF, 0xB7B6, 0xC7D1, 0xC3A9, 0xDCE2, 0xDCD8, /* 0x00 */
	0xDCEB, 0xDCD4, 	 0, 	 0, 0xDCDD, 	 0, 0xBEA5, 0xDCD7, /* 0x00 */
		 0, 0xDCE0, 	 0, 	 0, 0xDCE3, 0xDCE4, 	 0, 0xDCF8, /* 0x10 */
		 0, 	 0, 0xDCE1, 0xDDA2, 0xDCE7, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xBCEB, /* 0x20 */
	0xB4C4, 	 0, 	 0, 0xC3A3, 0xB2E7, 0xDCFA, 	 0, 0xDCF2, /* 0x20 */
		 0, 0xDCEF, 	 0, 0xDCFC, 0xDCEE, 0xD2F0, 0xB2E8, 	 0, /* 0x30 */
	0xC8D7, 0xC8E3, 0xDCFB, 	 0, 0xDCED, 	 0, 	 0, 	 0, /* 0x30 */
	0xDCF7, 	 0, 	 0, 0xDCF5, 	 0, 	 0, 0xBEA3, 0xDCF4, /* 0x40 */
		 0, 0xB2DD, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDCF3, /* 0x40 */
	0xBCF6, 0xDCE8, 0xBBC4, 	 0, 0xC0F3, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xBCD4, 0xDCE9, 0xDCEA, 	 0, 0xDCF1, 0xDCF6, /* 0x50 */
	0xDCF9, 0xB5B4, 	 0, 0xC8D9, 0xBBE7, 0xDCFE, 0xDCFD, 0xD3AB, /* 0x60 */
	0xDDA1, 0xDDA3, 0xDDA5, 0xD2F1, 0xDDA4, 0xDDA6, 0xDDA7, 0xD2A9, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xBAC9, /* 0x70 */
	0xDDA9, 	 0, 	 0, 0xDDB6, 0xDDB1, 0xDDB4, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xDDB0, 0xC6CE, 	 0, /* 0x80 */
		 0, 0xC0F2, 	 0, 	 0, 	 0, 	 0, 0xC9AF, 	 0, /* 0x80 */
		 0, 	 0, 0xDCEC, 0xDDAE, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
	0xDDB7, 	 0, 	 0, 0xDCF0, 0xDDAF, 	 0, 0xDDB8, 	 0, /* 0x90 */
	0xDDAC, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xDDB9, 0xDDB3, 0xDDAD, 0xC4AA, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xDDA8, 0xC0B3, 0xC1AB, 0xDDAA, 0xDDAB, 	 0, 0xDDB2, 0xBBF1, /* 0xB0 */
	0xDDB5, 0xD3A8, 0xDDBA, 	 0, 0xDDBB, 0xC3A7, 	 0, 	 0, /* 0xB0 */
	0xDDD2, 0xDDBC, 	 0, 	 0, 	 0, 0xDDD1, 	 0, 0xB9BD, /* 0xC0 */
		 0, 	 0, 0xBED5, 	 0, 0xBEFA, 	 0, 	 0, 0xBACA, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 0xDDCA, 	 0, 0xDDC5, 	 0, /* 0xD0 */
	0xDDBF, 	 0, 	 0, 	 0, 0xB2CB, 0xDDC3, 	 0, 0xDDCB, /* 0xD0 */
	0xB2A4, 0xDDD5, 	 0, 	 0, 	 0, 0xDDBE, 	 0, 	 0, /* 0xE0 */
		 0, 0xC6D0, 0xDDD0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xDDD4, 0xC1E2, 0xB7C6, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
	0xDDCE, 0xDDCF, 	 0, 	 0, 	 0, 0xDDC4					/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_84[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xDDBD, 	 0, 0xDDCD, 0xCCD1, 	 0, 0xDDC9, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 0xDDC2, 0xC3C8, 0xC6BC, 0xCEAE, 0xDDCC, /* 0x00 */
		 0, 0xDDC8, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
	0xDDC1, 	 0, 	 0, 	 0, 0xDDC6, 0xC2DC, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 0xD3A9, 0xD3AA, 0xDDD3, 0xCFF4, /* 0x20 */
	0xC8F8, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 0xDDE6, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
	0xDDC7, 	 0, 	 0, 	 0, 0xDDE0, 0xC2E4, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDDE1, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 0xDDD7, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD6F8, /* 0x50 */
		 0, 0xDDD9, 0xDDD8, 0xB8F0, 0xDDD6, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 0xC6CF, 	 0, 0xB6AD, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 0xDDE2, 	 0, 0xBAF9, 0xD4E1, 0xDDE7, 	 0, 	 0, /* 0x60 */
		 0, 0xB4D0, 	 0, 0xDDDA, 	 0, 0xBFFB, 0xDDE3, 	 0, /* 0x70 */
	0xDDDF, 	 0, 0xDDDD, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 0xB5D9, 	 0, 	 0, 	 0, 	 0, 0xDDDB, /* 0x80 */
	0xDDDC, 0xDDDE, 	 0, 0xBDAF, 0xDDE4, 	 0, 0xDDE5, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDDF5, /* 0x90 */
		 0, 0xC3C9, 	 0, 	 0, 0xCBE2, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 0xDDF2, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD8E1, /* 0xA0 */
		 0, 	 0, 0xC6D1, 	 0, 0xDDF4, 	 0, 	 0, 	 0, /* 0xB0 */
	0xD5F4, 0xDDF3, 0xDDF0, 	 0, 	 0, 0xDDEC, 	 0, 0xDDEF, /* 0xB0 */
		 0, 0xDDE8, 	 0, 	 0, 0xD0EE, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xC8D8, 0xDDEE, 	 0, 	 0, 0xDDE9, 	 0, 	 0, /* 0xC0 */
	0xDDEA, 0xCBF2, 	 0, 0xDDED, 	 0, 	 0, 0xB1CD, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xC0B6, 	 0, 0xBCBB, /* 0xD0 */
	0xDDF1, 	 0, 	 0, 0xDDF7, 	 0, 0xDDF6, 0xDDEB, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 0xC5EE, 	 0, 	 0, 	 0, /* 0xE0 */
	0xDDFB, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 	 0, 0xDEA4, 	 0, 	 0, 0xDEA3	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_85[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
																	/* 0x00 */
									0xDDF8, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 0xC3EF, 	 0, 0xC2FB, 	 0, 	 0, 	 0, 0xD5E1, /* 0x10 */
		 0, 	 0, 0xCEB5, 	 0, 	 0, 	 0, 	 0, 0xDDFD, /* 0x10 */
		 0, 0xB2CC, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 0xC4E8, 0xCADF, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC7BE, /* 0x30 */
	0xDDFA, 0xDDFC, 0xDDFE, 0xDEA2, 0xB0AA, 0xB1CE, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 0xDEAC, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
	0xDEA6, 0xBDB6, 0xC8EF, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDEA1, 	 0, /* 0x50 */
		 0, 0xDEA5, 	 0, 	 0, 	 0, 	 0, 0xDEA9, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 0xDEA8, 	 0, 	 0, 	 0, /* 0x60 */
	0xDEA7, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 0xDEAD, 	 0, 0xD4CC, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 0xDEB3, 0xDEAA, 0xDEAE, 	 0, 	 0, 0xC0D9, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 0xB1A1, 0xDEB6, 	 0, 0xDEB1, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDEB2, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xD1A6, 0xDEB5, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 0xDEAF, 	 0, 	 0, 	 0, /* 0xA0 */
	0xDEB0, 	 0, 0xD0BD, 	 0, 	 0, 	 0, 0xDEB4, 0xCAED, /* 0xA0 */
	0xDEB9, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDEB8, /* 0xB0 */
		 0, 0xDEB7, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xDEBB, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xBDE5, 	 0, 	 0, 	 0, 	 0, 	 0, 0xB2D8, /* 0xC0 */
	0xC3EA, 	 0, 	 0, 0xDEBA, 	 0, 0xC5BA, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 0xDEBC, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 0xCCD9, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 0xB7AA, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 0xD4E5, 	 0, 	 0, 	 0, 0xDEBD	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_86[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
											0xDEBF, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 0xC4A2, 	 0, 	 0, 	 0, 	 0, 0xDEC1, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDEBE, /* 0x20 */
		 0, 0xDEC0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
	0xD5BA, 	 0, 	 0, 	 0, 0xDEC2, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF2AE, 0xBBA2, 0xC2B2, /* 0x40 */
	0xC5B0, 0xC2C7, 	 0, 	 0, 0xF2AF, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xD0E9, 	 0, 	 0, 	 0, 0xD3DD, 	 0, /* 0x50 */
		 0, 	 0, 0xEBBD, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xB3E6, 0xF2B0, 	 0, 0xF2B1, 	 0, /* 0x60 */
		 0, 0xCAAD, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 0xBAE7, 0xF2B3, 0xF2B5, 0xF2B4, 0xCBE4, 0xCFBA, 0xF2B2, /* 0x70 */
	0xCAB4, 0xD2CF, 0xC2EC, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xCEC3, 0xF2B8, 0xB0F6, 0xF2B7, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 0xF2BE, 	 0, 0xB2CF, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 0xD1C1, 0xF2BA, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xF2BC, 0xD4E9, 	 0, 	 0, 0xF2BB, /* 0xA0 */
	0xF2B6, 0xF2BF, 0xF2BD, 	 0, 0xF2B9, 	 0, 	 0, 0xF2C7, /* 0xA0 */
	0xF2C4, 0xF2C6, 	 0, 	 0, 0xF2CA, 0xF2C2, 0xF2C0, 	 0, /* 0xB0 */
		 0, 	 0, 0xF2C5, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xD6FB, 	 0, 	 0, 	 0, 0xF2C1, 	 0, 0xC7F9, 0xC9DF, /* 0xC0 */
		 0, 0xF2C8, 0xB9C6, 0xB5B0, 	 0, 	 0, 0xF2C3, 0xF2C9, /* 0xC0 */
	0xF2D0, 0xF2D6, 	 0, 	 0, 0xBBD7, 	 0, 	 0, 	 0, /* 0xD0 */
	0xF2D5, 0xCDDC, 	 0, 0xD6EB, 	 0, 	 0, 0xF2D2, 0xF2D4, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 0xB8F2, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 0xF2CB, 	 0, 	 0, 	 0, 0xF2CE, 0xC2F9, 	 0, /* 0xE0 */
	0xD5DD, 0xF2CC, 0xF2CD, 0xF2CF, 0xF2D3, 	 0, 	 0, 	 0, /* 0xF0 */
	0xF2D9, 0xD3BC, 	 0, 	 0, 	 0, 	 0, 0xB6EA			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_87[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xCAF1, 	 0, 0xB7E4, 0xF2D7, 	 0, 	 0, 	 0, 0xF2D8, /* 0x00 */
	0xF2DA, 0xF2DD, 0xF2DB, 	 0, 	 0, 0xF2DC, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 0xD1D1, 0xF2D1, 	 0, 0xCDC9, 	 0, 0xCECF, /* 0x10 */
	0xD6A9, 	 0, 0xF2E3, 	 0, 0xC3DB, 	 0, 0xF2E0, 	 0, /* 0x10 */
		 0, 0xC0AF, 0xF2EC, 0xF2DE, 	 0, 0xF2E1, 	 0, 	 0, /* 0x20 */
		 0, 0xF2E8, 	 0, 	 0, 	 0, 	 0, 0xF2E2, 	 0, /* 0x20 */
		 0, 0xF2E7, 	 0, 	 0, 0xF2E6, 	 0, 	 0, 0xF2E9, /* 0x30 */
		 0, 	 0, 	 0, 0xF2DF, 	 0, 	 0, 0xF2E4, 0xF2EA, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD3AC, /* 0x40 */
	0xF2E5, 0xB2F5, 	 0, 	 0, 0xF2F2, 	 0, 0xD0AB, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 0xF2F5, 	 0, 	 0, 	 0, 0xBBC8, /* 0x50 */
		 0, 0xF2F9, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
	0xF2F0, 	 0, 	 0, 0xF2F6, 0xF2F8, 0xF2FA, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF2F3, 	 0, /* 0x60 */
	0xF2F1, 	 0, 	 0, 	 0, 0xBAFB, 	 0, 0xB5FB, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 0xF2EF, 0xF2F7, 0xF2ED, 0xF2EE, 	 0, /* 0x70 */
		 0, 	 0, 0xF2EB, 0xF3A6, 	 0, 0xF3A3, 	 0, 	 0, /* 0x80 */
	0xF3A2, 	 0, 	 0, 0xF2F4, 	 0, 0xC8DA, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 0xF2FB, 	 0, 	 0, 	 0, 0xF3A5, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC3F8, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xF2FD, 	 0, 	 0, 0xF3A7, 0xF3A9, 0xF3A4, 	 0, 0xF2FC, /* 0xA0 */
		 0, 	 0, 	 0, 0xF3AB, 	 0, 0xF3AA, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 0xC2DD, 	 0, 	 0, 0xF3AE, 	 0, 	 0, /* 0xB0 */
	0xF3B0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF3A1, 	 0, /* 0xC0 */
		 0, 	 0, 0xF3B1, 0xF3AC, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xF3AF, 0xF2FE, 0xF3AD, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 0xF3B2, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
	0xF3B4, 	 0, 	 0, 	 0, 	 0, 0xF3A8, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 0xF3B3, 	 0, 	 0, 	 0, 0xF3B5, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 0xD0B7, 	 0, 	 0, 	 0, 	 0, 0xF3B8			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_88[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
							0xD9F9, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 0xF3B9, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 0xF3B7, 	 0, 0xC8E4, 0xF3B6, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 0xF3BA, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 0xF3BB, 0xB4C0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xEEC3, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xF3BC, 	 0, 	 0, 0xF3BD, 	 0, 	 0, 	 0, /* 0x30 */
	0xD1AA, 	 0, 	 0, 	 0, 0xF4AC, 0xD0C6, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xD0D0, 0xD1DC, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xCFCE, 	 0, 	 0, 0xBDD6, /* 0x50 */
		 0, 0xD1C3, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 0xBAE2, 0xE1E9, 0xD2C2, 0xF1C2, 0xB2B9, 	 0, 	 0, /* 0x60 */
	0xB1ED, 0xF1C3, 	 0, 0xC9C0, 0xB3C4, 	 0, 0xD9F2, 	 0, /* 0x60 */
	0xCBA5, 	 0, 0xF1C4, 	 0, 	 0, 	 0, 	 0, 0xD6D4, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF1C5, 0xF4C0, 0xF1C6, /* 0x70 */
		 0, 0xD4AC, 0xF1C7, 	 0, 0xB0C0, 0xF4C1, 	 0, 	 0, /* 0x80 */
	0xF4C2, 	 0, 	 0, 0xB4FC, 	 0, 0xC5DB, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xCCBB, 	 0, 	 0, 	 0, 0xD0E4, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 0xCDE0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 0xF1C8, 	 0, 0xD9F3, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xB1BB, 	 0, 0xCFAE, 	 0, 	 0, /* 0xA0 */
		 0, 0xB8A4, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF1CA, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 0xF1CB, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xB2C3, 0xC1D1, 	 0, 	 0, 0xD7B0, 0xF1C9, 	 0, /* 0xC0 */
		 0, 0xF1CC, 	 0, 	 0, 	 0, 	 0, 0xF1CE, 	 0, /* 0xC0 */
		 0, 	 0, 0xD9F6, 	 0, 0xD2E1, 0xD4A3, 	 0, 	 0, /* 0xD0 */
	0xF4C3, 0xC8B9, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF4C4, /* 0xD0 */
		 0, 	 0, 0xF1CD, 0xF1CF, 0xBFE3, 0xF1D0, 	 0, 	 0, /* 0xE0 */
	0xF1D4, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xF1D6, 0xF1D1, 	 0, 0xC9D1, 0xC5E1, 	 0, 	 0, 	 0, /* 0xF0 */
	0xC2E3, 0xB9FC, 	 0, 	 0, 0xF1D3, 	 0, 0xF1D5			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_89[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
					0xB9D3, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 0xF1DB, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
	0xBAD6, 	 0, 0xB0FD, 0xF1D9, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 0xF1D8, 0xF1D2, 0xF1DA, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 0xF1D7, 	 0, 	 0, 	 0, 0xC8EC, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xCDCA, 0xF1DD, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
	0xE5BD, 	 0, 	 0, 	 0, 0xF1DC, 	 0, 0xF1DE, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xF1DF, 	 0, 	 0, 0xCFE5, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF4C5, 0xBDF3, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF1E0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 0xF1E1, 	 0, 	 0, 	 0, 0xCEF7, /* 0x70 */
		 0, 0xD2AA, 	 0, 0xF1FB, 	 0, 	 0, 0xB8B2, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xBCFB, 0xB9DB, 	 0, 0xB9E6, 0xC3D9, 0xCAD3, 0xEAE8, /* 0xC0 */
	0xC0C0, 0xBEF5, 0xEAE9, 0xEAEA, 0xEAEB, 	 0, 0xEAEC, 0xEAED, /* 0xC0 */
	0xEAEE, 0xEAEF, 0xBDC7, 	 0, 	 0, 	 0, 0xF5FB, 	 0, /* 0xD0 */
		 0, 	 0, 0xF5FD, 	 0, 0xF5FE, 	 0, 0xF5FC, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 0xBDE2, 	 0, 0xF6A1, 0xB4A5, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xF6A2, 	 0, 	 0, 	 0, 0xF6A3, /* 0xE0 */
		 0, 	 0, 	 0, 0xECB2									/* 0xF0 */
																	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_8A[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xD1D4, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD9EA, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF6A4, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
	0xEEBA, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 0xD5B2, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 0xD3FE, 0xCCDC, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 0xCAC4									/* 0x90 */
																	/* 0x90 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_8B[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
															0xE5C0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF6A5, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xBEAF, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 0xC6A9, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
	0xDAA5, 0xBCC6, 0xB6A9, 0xB8BC, 0xC8CF, 0xBCA5, 0xDAA6, 0xDAA7, /* 0xA0 */
	0xCCD6, 0xC8C3, 0xDAA8, 0xC6FD, 	 0, 0xD1B5, 0xD2E9, 0xD1B6, /* 0xA0 */
	0xBCC7, 	 0, 0xBDB2, 0xBBE4, 0xDAA9, 0xDAAA, 0xD1C8, 0xDAAB, /* 0xB0 */
	0xD0ED, 0xB6EF, 0xC2DB, 	 0, 0xCBCF, 0xB7ED, 0xC9E8, 0xB7C3, /* 0xB0 */
	0xBEF7, 0xD6A4, 0xDAAC, 0xDAAD, 0xC6C0, 0xD7E7, 0xCAB6, 	 0, /* 0xC0 */
	0xD5A9, 0xCBDF, 0xD5EF, 0xDAAE, 0xD6DF, 0xB4CA, 0xDAB0, 0xDAAF, /* 0xC0 */
		 0, 0xD2EB, 0xDAB1, 0xDAB2, 0xDAB3, 0xCAD4, 0xDAB4, 0xCAAB, /* 0xD0 */
	0xDAB5, 0xDAB6, 0xB3CF, 0xD6EF, 0xDAB7, 0xBBB0, 0xB5AE, 0xDAB8, /* 0xD0 */
	0xDAB9, 0xB9EE, 0xD1AF, 0xD2E8, 0xDABA, 0xB8C3, 0xCFEA, 0xB2EF, /* 0xE0 */
	0xDABB, 0xDABC, 	 0, 0xBDEB, 0xCEDC, 0xD3EF, 0xDABD, 0xCEF3, /* 0xE0 */
	0xDABE, 0xD3D5, 0xBBE5, 0xDABF, 0xCBB5, 0xCBD0, 0xDAC0, 0xC7EB, /* 0xF0 */
	0xD6EE, 0xDAC1, 0xC5B5, 0xB6C1, 0xDAC2, 0xB7CC, 0xBFCE, 0xDAC3	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_8C[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xDAC4, 0xCBAD, 0xDAC5, 0xB5F7, 0xDAC6, 0xC1C2, 0xD7BB, 0xDAC7, /* 0x00 */
	0xCCB8, 	 0, 0xD2EA, 0xC4B1, 0xDAC8, 0xB5FD, 0xBBD1, 0xDAC9, /* 0x00 */
	0xD0B3, 0xDACA, 0xDACB, 0xCEBD, 0xDACC, 0xDACD, 0xDACE, 0xB2F7, /* 0x10 */
	0xDAD1, 0xDACF, 0xD1E8, 0xDAD0, 0xC3D5, 0xDAD2, 	 0, 0xDAD3, /* 0x10 */
	0xDAD4, 0xDAD5, 0xD0BB, 0xD2A5, 0xB0F9, 0xDAD6, 0xC7AB, 0xDAD7, /* 0x20 */
	0xBDF7, 0xC3A1, 0xDAD8, 0xDAD9, 0xC3FD, 0xCCB7, 0xDADA, 0xDADB, /* 0x20 */
	0xC0BE, 0xC6D7, 0xDADC, 0xDADD, 0xC7B4, 0xDADE, 0xDADF, 0xB9C8, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xBBED, 	 0, 	 0, 	 0, 	 0, 0xB6B9, 0xF4F8, /* 0x40 */
		 0, 0xF4F9, 	 0, 	 0, 0xCDE3, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF5B9, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xEBE0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 0xCFF3, 0xBBBF, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 0xBAC0, 0xD4A5, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xE1D9, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
	0xF5F4, 0xB1AA, 0xB2F2, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 0xF5F5, 	 0, 	 0, 0xF5F7, 	 0, 	 0, /* 0x80 */
		 0, 0xBAD1, 0xF5F6, 	 0, 0xC3B2, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 0xF5F9, 	 0, 	 0, 	 0, /* 0x90 */
	0xF5F8															/* 0x90 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_8D[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
																	/* 0x10 */
											0xB1B4, 0xD5EA, 0xB8BA, /* 0x10 */
		 0, 0xB9B1, 0xB2C6, 0xD4F0, 0xCFCD, 0xB0DC, 0xD5CB, 0xBBF5, /* 0x20 */
	0xD6CA, 0xB7B7, 0xCCB0, 0xC6B6, 0xB1E1, 0xB9BA, 0xD6FC, 0xB9E1, /* 0x20 */
	0xB7A1, 0xBCFA, 0xEADA, 0xEADB, 0xCCF9, 0xB9F3, 0xEADC, 0xB4FB, /* 0x30 */
	0xC3B3, 0xB7D1, 0xBAD8, 0xEADD, 0xD4F4, 0xEADE, 0xBCD6, 0xBBDF, /* 0x30 */
	0xEADF, 0xC1DE, 0xC2B8, 0xD4DF, 0xD7CA, 0xEAE0, 0xEAE1, 0xEAE4, /* 0x40 */
	0xEAE2, 0xEAE3, 0xC9DE, 0xB8B3, 0xB6C4, 0xEAE5, 0xCAEA, 0xC9CD, /* 0x40 */
	0xB4CD, 	 0, 	 0, 0xE2D9, 0xC5E2, 0xEAE6, 0xC0B5, 	 0, /* 0x50 */
	0xD7B8, 0xEAE7, 0xD7AC, 0xC8FC, 0xD8D3, 0xD8CD, 0xD4DE, 	 0, /* 0x50 */
	0xD4F9, 0xC9C4, 0xD3AE, 0xB8D3, 0xB3E0, 	 0, 0xC9E2, 0xF4F6, /* 0x60 */
		 0, 	 0, 	 0, 0xBAD5, 	 0, 0xF4F7, 	 0, 	 0, /* 0x60 */
	0xD7DF, 	 0, 	 0, 0xF4F1, 0xB8B0, 0xD5D4, 0xB8CF, 0xC6F0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 0xB3C3, 	 0, 	 0, 0xF4F2, 0xB3AC, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xD4BD, 0xC7F7, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 0xF4F4, 	 0, 	 0, 0xF4F3, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCCCB, /* 0x90 */
		 0, 	 0, 	 0, 0xC8A4, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 0xF4F5, 	 0, 0xD7E3, 0xC5BF, 0xF5C0, 	 0, 	 0, /* 0xB0 */
	0xF5BB, 	 0, 0xF5C3, 	 0, 0xF5C2, 	 0, 0xD6BA, 0xF5C1, /* 0xB0 */
		 0, 	 0, 	 0, 0xD4BE, 0xF5C4, 	 0, 0xF5CC, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 0xB0CF, 0xB5F8, 	 0, 0xF5C9, 0xF5CA, /* 0xC0 */
		 0, 0xC5DC, 	 0, 	 0, 	 0, 	 0, 0xF5C5, 0xF5C6, /* 0xD0 */
		 0, 	 0, 0xF5C7, 0xF5CB, 	 0, 0xBEE0, 0xF5C8, 0xB8FA, /* 0xD0 */
		 0, 	 0, 	 0, 0xF5D0, 0xF5D3, 	 0, 	 0, 	 0, /* 0xE0 */
	0xBFE7, 	 0, 0xB9F2, 0xF5BC, 0xF5CD, 	 0, 	 0, 0xC2B7, /* 0xE0 */
		 0, 	 0, 	 0, 0xCCF8, 	 0, 0xBCF9, 	 0, 0xF5CE, /* 0xF0 */
	0xF5CF, 0xF5D1, 0xB6E5, 0xF5D2, 	 0, 0xF5D5					/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_8E[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
											0xF5BD, 	 0, 	 0, /* 0x00 */
		 0, 0xF5D4, 0xD3BB, 	 0, 0xB3EC, 	 0, 	 0, 0xCCA4, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 0xF5D6, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF5D7, 0xBEE1, 0xF5D8, /* 0x10 */
		 0, 	 0, 0xCCDF, 0xF5DB, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 0xB2C8, 0xD7D9, 	 0, 0xF5D9, 	 0, 0xF5DA, 0xF5DC, /* 0x20 */
		 0, 0xF5E2, 	 0, 	 0, 	 0, 0xF5E0, 	 0, 	 0, /* 0x30 */
		 0, 0xF5DF, 0xF5DD, 	 0, 	 0, 0xF5E1, 	 0, 	 0, /* 0x30 */
	0xF5DE, 0xF5E4, 0xF5E5, 	 0, 0xCCE3, 	 0, 	 0, 0xE5BF, /* 0x40 */
	0xB5B8, 0xF5E3, 0xF5E8, 0xCCA3, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 0xF5E6, 0xF5E7, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 0xF5BE, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xB1C4, 	 0, /* 0x60 */
		 0, 0xF5BF, 	 0, 	 0, 0xB5C5, 0xB2E4, 	 0, 0xF5EC, /* 0x60 */
	0xF5E9, 	 0, 0xB6D7, 	 0, 0xF5ED, 	 0, 0xF5EA, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 0xF5EB, 	 0, 	 0, 0xB4DA, /* 0x70 */
		 0, 0xD4EA, 	 0, 	 0, 	 0, 0xF5EE, 	 0, 0xB3F9, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF5EF, /* 0x80 */
	0xF5F1, 	 0, 	 0, 	 0, 0xF5F0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 0xF5F2, 	 0, 0xF5F3, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xC9ED, 0xB9AA, 	 0, 	 0, 0xC7FB, /* 0xA0 */
		 0, 	 0, 0xB6E3, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 0xCCC9, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEAA6			/* 0xC0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_8F[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
													0xB3B5, 0xD4FE, /* 0x60 */
	0xB9EC, 0xD0F9, 	 0, 0xE9ED, 0xD7AA, 0xE9EE, 0xC2D6, 0xC8ED, /* 0x60 */
	0xBAE4, 0xE9EF, 0xE9F0, 0xE9F1, 0xD6E1, 0xE9F2, 0xE9F3, 0xE9F5, /* 0x70 */
	0xE9F4, 0xE9F6, 0xE9F7, 0xC7E1, 0xE9F8, 0xD4D8, 0xE9F9, 0xBDCE, /* 0x70 */
		 0, 0xE9FA, 0xE9FB, 0xBDCF, 0xE9FC, 0xB8A8, 0xC1BE, 0xE9FD, /* 0x80 */
	0xB1B2, 0xBBD4, 0xB9F5, 0xE9FE, 	 0, 0xEAA1, 0xEAA2, 0xEAA3, /* 0x80 */
	0xB7F8, 0xBCAD, 	 0, 0xCAE4, 0xE0CE, 0xD4AF, 0xCFBD, 0xD5B7, /* 0x90 */
	0xEAA4, 0xD5DE, 0xEAA5, 0xD0C1, 0xB9BC, 	 0, 0xB4C7, 0xB1D9, /* 0x90 */
		 0, 	 0, 	 0, 0xC0B1, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xB1E6, 0xB1E7, 	 0, 0xB1E8, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xB3BD, 0xC8E8, 	 0, 	 0, 	 0, 	 0, 0xE5C1, 	 0, /* 0xB0 */
		 0, 0xB1DF, 	 0, 	 0, 	 0, 0xC1C9, 0xB4EF, 	 0, /* 0xB0 */
		 0, 0xC7A8, 0xD3D8, 	 0, 0xC6F9, 0xD1B8, 	 0, 0xB9FD, /* 0xC0 */
	0xC2F5, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD3AD, 	 0, /* 0xC0 */
	0xD4CB, 0xBDFC, 	 0, 0xE5C2, 0xB7B5, 0xE5C3, 	 0, 	 0, /* 0xD0 */
	0xBBB9, 0xD5E2, 	 0, 0xBDF8, 0xD4B6, 0xCEA5, 0xC1AC, 0xB3D9, /* 0xD0 */
		 0, 	 0, 0xCCF6, 	 0, 0xE5C6, 0xE5C4, 0xE5C8, 	 0, /* 0xE0 */
	0xE5CA, 0xE5C7, 0xB5CF, 0xC6C8, 	 0, 0xB5FC, 0xE5C5, 	 0, /* 0xE0 */
	0xCAF6, 	 0, 	 0, 0xE5C9, 	 0, 	 0, 	 0, 0xC3D4, /* 0xF0 */
	0xB1C5, 0xBCA3, 	 0, 	 0, 	 0, 0xD7B7					/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_90[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xCDCB, 0xCBCD, 0xCACA, 0xCCD3, 0xE5CC, 0xE5CB, 0xC4E6, 	 0, /* 0x00 */
		 0, 0xD1A1, 0xD1B7, 0xE5CD, 	 0, 0xE5D0, 	 0, 0xCDB8, /* 0x00 */
	0xD6F0, 0xE5CF, 0xB5DD, 	 0, 0xCDBE, 	 0, 0xE5D1, 0xB6BA, /* 0x10 */
		 0, 	 0, 0xCDA8, 0xB9E4, 	 0, 0xCAC5, 0xB3D1, 0xCBD9, /* 0x10 */
	0xD4EC, 0xE5D2, 0xB7EA, 	 0, 	 0, 	 0, 0xE5CE, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE5D5, 0xB4FE, 0xE5D6, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE5D3, 0xE5D4, 	 0, /* 0x30 */
	0xD2DD, 	 0, 	 0, 0xC2DF, 0xB1C6, 	 0, 0xD3E2, 	 0, /* 0x30 */
		 0, 0xB6DD, 0xCBEC, 	 0, 0xE5D7, 	 0, 	 0, 0xD3F6, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xB1E9, 	 0, 0xB6F4, /* 0x40 */
	0xE5DA, 0xE5D8, 0xE5D9, 0xB5C0, 	 0, 	 0, 	 0, 0xD2C5, /* 0x50 */
	0xE5DC, 	 0, 	 0, 0xE5DE, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xE5DD, 0xC7B2, 	 0, 0xD2A3, 	 0, 	 0, /* 0x60 */
	0xE5DB, 	 0, 	 0, 	 0, 	 0, 0xD4E2, 0xD5DA, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 0xE5E0, 0xD7F1, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE5E1, 	 0, 0xB1DC, /* 0x70 */
	0xD1FB, 	 0, 0xE5E2, 0xE5E4, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
	0xE5E3, 	 0, 	 0, 0xE5E5, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 0xD2D8, 	 0, 0xB5CB, 	 0, 0xE7DF, 	 0, 0xDAF5, /* 0x90 */
		 0, 0xDAF8, 	 0, 0xDAF6, 	 0, 0xDAF7, 	 0, 	 0, /* 0x90 */
		 0, 0xDAFA, 0xD0CF, 0xC4C7, 	 0, 	 0, 0xB0EE, 	 0, /* 0xA0 */
		 0, 	 0, 0xD0B0, 	 0, 0xDAF9, 	 0, 0xD3CA, 0xBAAA, /* 0xA0 */
	0xDBA2, 0xC7F1, 	 0, 0xDAFC, 0xDAFB, 0xC9DB, 0xDAFD, 	 0, /* 0xB0 */
	0xDBA1, 0xD7DE, 0xDAFE, 0xC1DA, 	 0, 	 0, 0xDBA5, 	 0, /* 0xB0 */
		 0, 0xD3F4, 	 0, 	 0, 0xDBA7, 0xDBA4, 	 0, 0xDBA8, /* 0xC0 */
		 0, 	 0, 0xBDBC, 	 0, 	 0, 	 0, 0xC0C9, 0xDBA3, /* 0xC0 */
	0xDBA6, 0xD6A3, 	 0, 0xDBA9, 	 0, 	 0, 	 0, 0xDBAD, /* 0xD0 */
		 0, 	 0, 	 0, 0xDBAE, 0xDBAC, 0xBAC2, 	 0, 	 0, /* 0xD0 */
		 0, 0xBFA4, 0xDBAB, 	 0, 	 0, 	 0, 0xDBAA, 0xD4C7, /* 0xE0 */
	0xB2BF, 	 0, 	 0, 0xDBAF, 	 0, 0xB9F9, 	 0, 0xDBB0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 0xB3BB, 	 0, 	 0, 	 0, /* 0xF0 */
	0xB5A6, 	 0, 	 0, 	 0, 	 0, 0xB6BC, 0xDBB1			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_91[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
					0xB6F5, 	 0, 0xDBB2, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 0xB1C9, 	 0, 	 0, 	 0, 	 0, 0xDBB4, 	 0, /* 0x10 */
		 0, 	 0, 0xDBB3, 0xDBB5, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDBB7, /* 0x20 */
		 0, 0xDBB6, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xDBB8, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 0xDBB9, 	 0, 	 0, 0xDBBA, 	 0, /* 0x40 */
		 0, 0xD3CF, 0xF4FA, 0xC7F5, 0xD7C3, 0xC5E4, 0xF4FC, 0xF4FD, /* 0x40 */
	0xF4FB, 	 0, 0xBEC6, 	 0, 	 0, 	 0, 	 0, 0xD0EF, /* 0x50 */
		 0, 	 0, 0xB7D3, 	 0, 	 0, 0xD4CD, 0xCCAA, 	 0, /* 0x50 */
		 0, 0xF5A2, 0xF5A1, 0xBAA8, 0xF4FE, 0xCBD6, 	 0, 	 0, /* 0x60 */
		 0, 0xF5A4, 0xC0D2, 	 0, 0xB3EA, 	 0, 0xCDAA, 0xF5A5, /* 0x60 */
	0xF5A3, 0xBDB4, 0xF5A8, 	 0, 0xF5A9, 0xBDCD, 0xC3B8, 0xBFE1, /* 0x70 */
	0xCBE1, 0xF5AA, 	 0, 	 0, 	 0, 0xF5A6, 0xF5A7, 0xC4F0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF5AC, 	 0, 0xB4BC, /* 0x80 */
		 0, 0xD7ED, 	 0, 0xB4D7, 0xF5AB, 0xF5AE, 	 0, 	 0, /* 0x80 */
	0xF5AD, 0xF5AF, 0xD0D1, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 0xC3D1, 0xC8A9, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 0xF5B0, 0xF5B1, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 0xF5B2, 	 0, 	 0, 0xF5B3, 0xF5B4, 0xF5B5, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 0xF5B7, 0xF5B6, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 0xF5B8, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xB2C9, /* 0xC0 */
		 0, 0xD3D4, 0xCACD, 	 0, 0xC0EF, 0xD6D8, 0xD2B0, 0xC1BF, /* 0xC0 */
		 0, 0xBDF0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 0xB8AA							/* 0xD0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_92[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
									0xBCF8, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF6C6, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF6C7, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
	0xF6C8															/* 0xC0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_93[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
																	/* 0x30 */
													0xF6C9, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 0xF6CA, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF6CC, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xF6CB, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF7E9			/* 0xD0 */
																	/* 0xD0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_94[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
																	/* 0x30 */
													0xF6CD, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xF6CE, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEEC4, 0xEEC5, 0xEEC6, /* 0x80 */
	0xD5EB, 0xB6A4, 0xEEC8, 0xEEC7, 0xEEC9, 0xEECA, 0xC7A5, 0xEECB, /* 0x80 */
	0xEECC, 	 0, 0xB7B0, 0xB5F6, 0xEECD, 0xEECF, 	 0, 0xEECE, /* 0x90 */
		 0, 0xB8C6, 0xEED0, 0xEED1, 0xEED2, 0xB6DB, 0xB3AE, 0xD6D3, /* 0x90 */
	0xC4C6, 0xB1B5, 0xB8D6, 0xEED3, 0xEED4, 0xD4BF, 0xC7D5, 0xBEFB, /* 0xA0 */
	0xCED9, 0xB9B3, 0xEED6, 0xEED5, 0xEED8, 0xEED7, 0xC5A5, 0xEED9, /* 0xA0 */
	0xEEDA, 0xC7AE, 0xEEDB, 0xC7AF, 0xEEDC, 0xB2A7, 0xEEDD, 0xEEDE, /* 0xB0 */
	0xEEDF, 0xEEE0, 0xEEE1, 0xD7EA, 0xEEE2, 0xEEE3, 0xBCD8, 0xEEE4, /* 0xB0 */
	0xD3CB, 0xCCFA, 0xB2AC, 0xC1E5, 0xEEE5, 0xC7A6, 0xC3AD, 	 0, /* 0xC0 */
	0xEEE6, 0xEEE7, 0xEEE8, 0xEEE9, 0xEEEA, 0xEEEB, 0xEEEC, 	 0, /* 0xC0 */
	0xEEED, 0xEEEE, 0xEEEF, 	 0, 	 0, 0xEEF0, 0xEEF1, 0xEEF2, /* 0xD0 */
	0xEEF4, 0xEEF3, 	 0, 0xEEF5, 0xCDAD, 0xC2C1, 0xEEF6, 0xEEF7, /* 0xD0 */
	0xEEF8, 0xD5A1, 0xEEF9, 0xCFB3, 0xEEFA, 0xEEFB, 	 0, 0xEEFC, /* 0xE0 */
	0xEEFD, 0xEFA1, 0xEEFE, 0xEFA2, 0xB8F5, 0xC3FA, 0xEFA3, 0xEFA4, /* 0xE0 */
	0xBDC2, 0xD2BF, 0xB2F9, 0xEFA5, 0xEFA6, 0xEFA7, 0xD2F8, 0xEFA8, /* 0xF0 */
	0xD6FD, 0xEFA9, 0xC6CC, 	 0, 0xEFAA, 0xEFAB, 0xC1B4, 0xEFAC	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_95[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xCFFA, 0xCBF8, 0xEFAE, 0xEFAD, 0xB3FA, 0xB9F8, 0xEFAF, 0xEFB0, /* 0x00 */
	0xD0E2, 0xEFB1, 0xEFB2, 0xB7E6, 0xD0BF, 0xEFB3, 0xEFB4, 0xEFB5, /* 0x00 */
	0xC8F1, 0xCCE0, 0xEFB6, 0xEFB7, 0xEFB8, 0xEFB9, 0xEFBA, 0xD5E0, /* 0x10 */
	0xEFBB, 0xB4ED, 0xC3AA, 0xEFBC, 	 0, 0xEFBD, 0xEFBE, 0xEFBF, /* 0x10 */
		 0, 0xCEFD, 0xEFC0, 0xC2E0, 0xB4B8, 0xD7B6, 0xBDF5, 	 0, /* 0x20 */
	0xCFC7, 0xEFC3, 0xEFC1, 0xEFC2, 0xEFC4, 0xB6A7, 0xBCFC, 0xBEE2, /* 0x20 */
	0xC3CC, 0xEFC5, 0xEFC6, 	 0, 0xEFC7, 0xEFCF, 0xEFC8, 0xEFC9, /* 0x30 */
	0xEFCA, 0xC7C2, 0xEFF1, 0xB6CD, 0xEFCB, 	 0, 0xEFCC, 0xEFCD, /* 0x30 */
	0xB6C6, 0xC3BE, 0xEFCE, 	 0, 0xEFD0, 0xEFD1, 0xEFD2, 0xD5F2, /* 0x40 */
		 0, 0xEFD3, 0xC4F7, 	 0, 0xEFD4, 0xC4F8, 0xEFD5, 0xEFD6, /* 0x40 */
	0xB8E4, 0xB0F7, 0xEFD7, 0xEFD8, 0xEFD9, 	 0, 0xEFDA, 0xEFDB, /* 0x50 */
	0xEFDC, 0xEFDD, 	 0, 0xEFDE, 0xBEB5, 0xEFE1, 0xEFDF, 0xEFE0, /* 0x50 */
		 0, 0xEFE2, 0xEFE3, 0xC1CD, 0xEFE4, 0xEFE5, 0xEFE6, 0xEFE7, /* 0x60 */
	0xEFE8, 0xEFE9, 0xEFEA, 0xEFEB, 0xEFEC, 0xC0D8, 	 0, 0xEFED, /* 0x60 */
	0xC1AD, 0xEFEE, 0xEFEF, 0xEFF0, 	 0, 	 0, 0xCFE2, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xB3A4, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xC3C5, 0xE3C5, 0xC9C1, 0xE3C6, 	 0, 0xB1D5, 0xCECA, 0xB4B3, /* 0xE0 */
	0xC8F2, 0xE3C7, 0xCFD0, 0xE3C8, 0xBCE4, 0xE3C9, 0xE3CA, 0xC3C6, /* 0xF0 */
	0xD5A2, 0xC4D6, 0xB9EB, 0xCEC5, 0xE3CB, 0xC3F6, 0xE3CC			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_96[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xB7A7, 0xB8F3, 0xBAD2, 0xE3CD, 0xE3CE, 0xD4C4, 0xE3CF, 	 0, /* 0x00 */
	0xE3D0, 0xD1CB, 0xE3D1, 0xE3D2, 0xE3D3, 0xE3D4, 0xD1D6, 0xE3D5, /* 0x00 */
	0xB2FB, 0xC0BB, 0xE3D6, 	 0, 0xC0AB, 0xE3D7, 0xE3D8, 0xE3D9, /* 0x10 */
		 0, 0xE3DA, 0xE3DB, 	 0, 0xB8B7, 0xDAE2, 	 0, 0xB6D3, /* 0x10 */
		 0, 0xDAE4, 0xDAE3, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xDAE6, 	 0, 	 0, 	 0, 0xC8EE, 	 0, /* 0x20 */
		 0, 0xDAE5, 0xB7C0, 0xD1F4, 0xD2F5, 0xD5F3, 0xBDD7, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 0xD7E8, 0xDAE8, 0xDAE7, 	 0, 0xB0A2, /* 0x30 */
	0xCDD3, 	 0, 0xDAE9, 	 0, 0xB8BD, 0xBCCA, 0xC2BD, 0xC2A4, /* 0x40 */
	0xB3C2, 0xDAEA, 	 0, 0xC2AA, 0xC4B0, 0xBDB5, 	 0, 	 0, /* 0x40 */
	0xCFDE, 	 0, 	 0, 	 0, 0xDAEB, 0xC9C2, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 0xB1DD, 	 0, 	 0, 	 0, 0xDAEC, /* 0x50 */
		 0, 0xB6B8, 0xD4BA, 	 0, 0xB3FD, 	 0, 	 0, 0xDAED, /* 0x60 */
	0xD4C9, 0xCFD5, 0xC5E3, 	 0, 0xDAEE, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 0xDAEF, 	 0, 0xDAF0, 0xC1EA, 0xCCD5, 0xCFDD, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xD3E7, 0xC2A1, 	 0, /* 0x80 */
	0xDAF1, 	 0, 	 0, 0xCBE5, 	 0, 0xDAF2, 	 0, 0xCBE6, /* 0x80 */
	0xD2FE, 	 0, 	 0, 	 0, 0xB8F4, 	 0, 	 0, 0xDAF3, /* 0x90 */
	0xB0AF, 0xCFB6, 	 0, 	 0, 0xD5CF, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCBED, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xDAF4, 	 0, 	 0, 0xE3C4, 	 0, 	 0, 0xC1A5, 	 0, /* 0xB0 */
		 0, 0xF6BF, 	 0, 	 0, 0xF6C0, 0xF6C1, 0xC4D1, 	 0, /* 0xB0 */
	0xC8B8, 0xD1E3, 	 0, 	 0, 0xD0DB, 0xD1C5, 0xBCAF, 0xB9CD, /* 0xC0 */
		 0, 0xEFF4, 	 0, 	 0, 0xB4C6, 0xD3BA, 0xF6C2, 0xB3FB, /* 0xC0 */
		 0, 	 0, 0xF6C3, 	 0, 	 0, 0xB5F1, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
	0xF6C5, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xD3EA, 0xF6A7, 0xD1A9, 	 0, 	 0, 	 0, 	 0, 0xF6A9, /* 0xE0 */
		 0, 	 0, 	 0, 0xF6A8, 	 0, 	 0, 0xC1E3, 0xC0D7, /* 0xF0 */
		 0, 0xB1A2, 	 0, 	 0, 	 0, 	 0, 0xCEED			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_97[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xD0E8, 0xF6AB, 	 0, 	 0, 0xCFF6, 	 0, 0xF6AA, 0xD5F0, /* 0x00 */
	0xF6AC, 0xC3B9, 	 0, 	 0, 	 0, 0xBBF4, 0xF6AE, 0xF6AD, /* 0x00 */
		 0, 	 0, 	 0, 0xC4DE, 	 0, 	 0, 0xC1D8, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 0xCBAA, 	 0, 0xCFBC, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xF6AF, 	 0, 	 0, 0xF6B0, 	 0, 	 0, /* 0x20 */
	0xF6B1, 	 0, 0xC2B6, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
	0xB0D4, 0xC5F9, 	 0, 	 0, 	 0, 	 0, 0xF6B2, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 0xC7E0, 0xF6A6, 	 0, 	 0, 0xBEB8, 	 0, /* 0x50 */
		 0, 0xBEB2, 	 0, 0xB5E5, 	 0, 	 0, 0xB7C7, 	 0, /* 0x50 */
	0xBFBF, 0xC3D2, 0xC3E6, 	 0, 	 0, 0xD8CC, 	 0, 	 0, /* 0x60 */
		 0, 0xB8EF, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xBDF9, 0xD1A5, 	 0, 0xB0D0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 0xF7B0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF7B1, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 0xD0AC, 	 0, 0xB0B0, 	 0, 	 0, /* 0x80 */
		 0, 0xF7B2, 0xF7B3, 	 0, 0xF7B4, 	 0, 	 0, 	 0, /* 0x90 */
	0xC7CA, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
	0xBECF, 	 0, 	 0, 0xF7B7, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xF7B6, 	 0, 0xB1DE, 	 0, 0xF7B5, /* 0xA0 */
		 0, 	 0, 0xF7B8, 	 0, 0xF7B9, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCEA4, 0xC8CD, /* 0xE0 */
		 0, 0xBAAB, 0xE8B8, 0xE8B9, 0xE8BA, 0xBEC2, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xD2F4, 	 0, 0xD4CF, 0xC9D8			/* 0xF0 */
																	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_98[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
											0xD2B3, 0xB6A5, 0xC7EA, /* 0x70 */
	0xF1FC, 0xCFEE, 0xCBB3, 0xD0EB, 0xE7EF, 0xCDE7, 0xB9CB, 0xB6D9, /* 0x70 */
	0xF1FD, 0xB0E4, 0xCBCC, 0xF1FE, 0xD4A4, 0xC2AD, 0xC1EC, 0xC6C4, /* 0x80 */
	0xBEB1, 0xF2A1, 0xBCD5, 	 0, 0xF2A2, 0xF2A3, 	 0, 0xF2A4, /* 0x80 */
	0xD2C3, 0xC6B5, 	 0, 0xCDC7, 0xF2A5, 	 0, 0xD3B1, 0xBFC5, /* 0x90 */
	0xCCE2, 	 0, 0xF2A6, 0xF2A7, 0xD1D5, 0xB6EE, 0xF2A8, 0xF2A9, /* 0x90 */
	0xB5DF, 0xF2AA, 0xF2AB, 	 0, 0xB2FC, 0xF2AC, 0xF2AD, 0xC8A7, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xB7E7, 	 0, /* 0xC0 */
		 0, 0xECA9, 0xECAA, 0xECAB, 	 0, 0xECAC, 	 0, 	 0, /* 0xD0 */
	0xC6AE, 0xECAD, 0xECAE, 	 0, 	 0, 	 0, 0xB7C9, 0xCAB3, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE2B8, /* 0xE0 */
	0xF7CF															/* 0xE0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_99[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
																	/* 0x00 */
											0xF7D0, 	 0, 	 0, /* 0x00 */
	0xB2CD, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF7D1, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xF7D3, 0xF7D2, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 0xE2BB, 	 0, 0xBCA2, 	 0, 0xE2BC, /* 0x60 */
	0xE2BD, 0xE2BE, 0xE2BF, 0xE2C0, 0xE2C1, 0xB7B9, 0xD2FB, 0xBDA4, /* 0x60 */
	0xCACE, 0xB1A5, 0xCBC7, 	 0, 0xE2C2, 0xB6FC, 0xC8C4, 0xE2C3, /* 0x70 */
		 0, 	 0, 0xBDC8, 	 0, 0xB1FD, 0xE2C4, 	 0, 0xB6F6, /* 0x70 */
	0xE2C5, 0xC4D9, 	 0, 	 0, 0xE2C6, 0xCFDA, 0xB9DD, 0xE2C7, /* 0x80 */
	0xC0A1, 	 0, 0xE2C8, 0xB2F6, 	 0, 0xE2C9, 	 0, 0xC1F3, /* 0x80 */
	0xE2CA, 0xE2CB, 0xC2F8, 0xE2CC, 0xE2CD, 0xE2CE, 0xCAD7, 0xD8B8, /* 0x90 */
	0xD9E5, 0xCFE3, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF0A5, 	 0, 	 0, /* 0xA0 */
	0xDCB0															/* 0xA0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_9A[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
																	/* 0x60 */
									0xC2ED, 0xD4A6, 0xCDD4, 0xD1B1, /* 0x60 */
	0xB3DB, 0xC7FD, 	 0, 0xB2B5, 0xC2BF, 0xE6E0, 0xCABB, 0xE6E1, /* 0x70 */
	0xE6E2, 0xBED4, 0xE6E3, 0xD7A4, 0xCDD5, 0xE6E5, 0xBCDD, 0xE6E4, /* 0x70 */
	0xE6E6, 0xE6E7, 0xC2EE, 	 0, 0xBDBE, 0xE6E8, 0xC2E6, 0xBAA7, /* 0x80 */
	0xE6E9, 	 0, 0xE6EA, 0xB3D2, 0xD1E9, 	 0, 	 0, 0xBFA5, /* 0x80 */
	0xE6EB, 0xC6EF, 0xE6EC, 0xE6ED, 	 0, 	 0, 0xE6EE, 0xC6AD, /* 0x90 */
	0xE6EF, 	 0, 0xC9A7, 0xE6F0, 0xE6F1, 0xE6F2, 0xE5B9, 0xE6F3, /* 0x90 */
	0xE6F4, 0xC2E2, 0xE6F5, 0xE6F6, 0xD6E8, 0xE6F7, 	 0, 0xE6F8, /* 0xA0 */
	0xB9C7, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xF7BB, 0xF7BA, 	 0, 	 0, 	 0, 	 0, 0xF7BE, 0xF7BC, /* 0xB0 */
	0xBAA1, 	 0, 0xF7BF, 	 0, 0xF7C0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xF7C2, 0xF7C1, 0xF7C4, 	 0, 	 0, 0xF7C3, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 0xF7C5, 0xF7C6, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xF7C7, 	 0, 0xCBE8, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
	0xB8DF, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF7D4, /* 0xD0 */
		 0, 0xF7D5, 	 0, 	 0, 	 0, 	 0, 0xF7D6, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xF7D8, 	 0, 0xF7DA, 	 0, 0xF7D7, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 0xF7DB, 	 0, 0xF7D9									/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_9B[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
							0xD7D7, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
	0xF7DC, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF7DD, /* 0x00 */
		 0, 	 0, 	 0, 0xF7DE, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF7DF, /* 0x10 */
		 0, 	 0, 	 0, 0xF7E0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDBCB, /* 0x20 */
		 0, 	 0, 0xD8AA, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 0xE5F7, 0xB9ED, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xBFFD, 0xBBEA, 0xF7C9, 0xC6C7, 0xF7C8, 	 0, 0xF7CA, /* 0x40 */
	0xF7CC, 0xF7CB, 	 0, 	 0, 	 0, 0xF7CD, 	 0, 0xCEBA, /* 0x40 */
		 0, 0xF7CE, 	 0, 	 0, 0xC4A7							/* 0x50 */
																	/* 0x50 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_9C[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
																	/* 0x70 */
									0xD3E3, 	 0, 	 0, 0xF6CF, /* 0x70 */
		 0, 0xC2B3, 0xF6D0, 	 0, 	 0, 0xF6D1, 0xF6D2, 0xF6D3, /* 0x80 */
	0xF6D4, 	 0, 	 0, 0xF6D6, 	 0, 0xB1AB, 0xF6D7, 	 0, /* 0x80 */
	0xF6D8, 0xF6D9, 0xF6DA, 	 0, 0xF6DB, 0xF6DC, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 0xF6DD, 0xF6DE, 0xCFCA, 	 0, 0xF6DF, 0xF6E0, /* 0x90 */
	0xF6E1, 0xF6E2, 0xF6E3, 0xF6E4, 0xC0F0, 0xF6E5, 0xF6E6, 0xF6E7, /* 0xA0 */
	0xF6E8, 0xF6E9, 	 0, 0xF6EA, 	 0, 0xF6EB, 0xF6EC, 	 0, /* 0xA0 */
	0xF6ED, 0xF6EE, 0xF6EF, 0xF6F0, 0xF6F1, 0xF6F2, 0xF6F3, 0xF6F4, /* 0xB0 */
	0xBEA8, 	 0, 0xF6F5, 0xF6F6, 0xF6F7, 0xF6F8, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 0xC8FA, 0xF6F9, 0xF6FA, 0xF6FB, 0xF6FC, /* 0xC0 */
		 0, 	 0, 0xF6FD, 0xF6FE, 0xF7A1, 0xF7A2, 0xF7A3, 0xF7A4, /* 0xC0 */
	0xF7A5, 	 0, 	 0, 0xF7A6, 0xF7A7, 0xF7A8, 0xB1EE, 0xF7A9, /* 0xD0 */
	0xF7AA, 0xF7AB, 	 0, 	 0, 0xF7AC, 0xF7AD, 0xC1DB, 0xF7AE, /* 0xD0 */
		 0, 	 0, 0xF7AF											/* 0xE0 */
																	/* 0xE0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_9E[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
																	/* 0x10 */
															0xC4F1, /* 0x10 */
	0xF0AF, 0xBCA6, 0xF0B0, 0xC3F9, 	 0, 0xC5B8, 0xD1BB, 	 0, /* 0x20 */
	0xF0B1, 0xF0B2, 0xF0B3, 0xF0B4, 0xF0B5, 0xD1BC, 	 0, 0xD1EC, /* 0x20 */
		 0, 0xF0B7, 0xF0B6, 0xD4A7, 	 0, 0xCDD2, 0xF0B8, 0xF0BA, /* 0x30 */
	0xF0B9, 0xF0BB, 0xF0BC, 	 0, 	 0, 0xB8EB, 0xF0BD, 0xBAE8, /* 0x30 */
		 0, 0xF0BE, 0xF0BF, 0xBEE9, 0xF0C0, 0xB6EC, 0xF0C1, 0xF0C2, /* 0x40 */
	0xF0C3, 0xF0C4, 0xC8B5, 0xF0C5, 0xF0C6, 	 0, 0xF0C7, 0xC5F4, /* 0x40 */
		 0, 0xF0C8, 	 0, 	 0, 	 0, 0xF0C9, 	 0, 0xF0CA, /* 0x50 */
	0xF7BD, 	 0, 0xF0CB, 0xF0CC, 0xF0CD, 	 0, 0xF0CE, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 0xF0CF, 0xBAD7, 	 0, 0xF0D0, 0xF0D1, /* 0x60 */
	0xF0D2, 0xF0D3, 0xF0D4, 0xF0D5, 0xF0D6, 0xF0D8, 	 0, 	 0, /* 0x60 */
	0xD3A5, 0xF0D7, 	 0, 0xF0D9, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF5BA, 0xC2B9, /* 0x70 */
		 0, 	 0, 0xF7E4, 	 0, 	 0, 	 0, 	 0, 0xF7E5, /* 0x80 */
	0xF7E6, 	 0, 	 0, 0xF7E7, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xF7E8, 0xC2B4, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF7EA, 	 0, 0xF7EB, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC2F3, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 0xF4F0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xF4EF, 	 0, 	 0, 0xC2E9, 	 0, 0xF7E1, 0xF7E2, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 0xBBC6, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xD9E4, 	 0, 	 0, 	 0, 0xCAF2, 0xC0E8, 0xF0A4, /* 0xC0 */
		 0, 0xBADA, 	 0, 	 0, 0xC7AD, 	 0, 	 0, 	 0, /* 0xD0 */
	0xC4AC, 	 0, 	 0, 0xF7EC, 0xF7ED, 0xF7EE, 	 0, 0xF7F0, /* 0xD0 */
	0xF7EF, 	 0, 0xF7F1, 	 0, 	 0, 0xF7F4, 	 0, 0xF7F3, /* 0xE0 */
		 0, 0xF7F2, 0xF7F5, 	 0, 	 0, 	 0, 	 0, 0xF7F6, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 0xEDE9, 	 0, 0xEDEA, 0xEDEB, 	 0, 0xF6BC			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GB_9F[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
																	/* 0x00 */
							0xF6BD, 	 0, 0xF6BE, 0xB6A6, 	 0, /* 0x00 */
	0xD8BE, 	 0, 	 0, 0xB9C4, 	 0, 	 0, 	 0, 0xD8BB, /* 0x10 */
		 0, 0xDCB1, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
	0xCAF3, 	 0, 0xF7F7, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 0xF7F8, 	 0, 	 0, 0xF7F9, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF7FB, /* 0x30 */
		 0, 0xF7FA, 	 0, 0xB1C7, 	 0, 0xF7FC, 0xF7FD, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 0xF7FE, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
	0xC6EB, 0xECB4, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xB3DD, /* 0x70 */
	0xF6B3, 	 0, 	 0, 0xF6B4, 0xC1E4, 0xF6B5, 0xF6B6, 0xF6B7, /* 0x80 */
	0xF6B8, 0xF6B9, 0xF6BA, 0xC8A3, 0xF6BB, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 0xC1FA, 0xB9A8, 0xEDE8, 	 0, 	 0, 	 0, 0xB9EA, /* 0x90 */
	0xD9DF															/* 0xA0 */
																	/* 0xA0 */
};

