/*
 * GB2312   first byte:   A1-FE
 *          second byte:  A1-FE
 *
 * $BSDSUniX$
 */

ENCODING	"GB2312"

/*
 * ASCII compatible
 */
ALPHA		'A' - 'Z' 'a' - 'z'
BLANK		' ' '\t'
CONTROL		0x00 - 0x1f 0x7f
DIGIT		'0' - '9'
GRAPH		0x21 - 0x7e
LOWER		'a' - 'z'
MAPLOWER	< 'A' - 'Z' : 'a' > < 'a' - 'z' : 'a' >
MAPUPPER	< 'A' - 'Z' : 'A' > < 'a' - 'z' : 'A' >
PRINT		0x20 - 0x7e
PUNCT		0x21 - 0x2f 0x3a - 0x40 0x5b - 0x60 0x7b - 0x7e
SPACE		0x09 - 0x0d 0x20
TODIGIT		< '0' - '9' : 0 >
TODIGIT		< 'A' - 'F' : 10 > < 'a' - 'f' : 10 >
UPPER		'A' - 'Z'
XDIGIT		'0' - '9' 'a' - 'f' 'A' - 'F'

/*
 * GB2312 data
 */
ALPHA		0xa3c1 - 0xa3da 0xa3e1 - 0xa3fa
ALPHA		0xa6a1 - 0xa6b8 0xa6c1 - 0xa6d8
ALPHA		0xa7a1 - 0xa7c1 0xa7d1 - 0xa7f1
ALPHA		0xa8a1 - 0xa8bb 0xa8bd - 0xa8c0
BLANK		0xa1a1
DIGIT           0xa2a1 - 0xa2aa 0xa2b1 - 0xa2e2 0xa2e5 - 0xa2ee 0xa2f1 - 0xa2fc
DIGIT           0xa3b0 - 0xa3b9
GRAPH		0xa1a9
GRAPH		0xa2ab - 0xa2b0 0xa2e4 0xa2ef 0xa2f0 0xa2fd 0xa2fe
GRAPH		0xa4f4 - 0xa4fe
GRAPH		0xa5f7 - 0xa5fe
GRAPH		0xa6b9 - 0xa6c0 0xa6d9 - 0xa6df 0xa6ec 0xa6ed 0xa6f3 0xa6f6 - 0xa6fe
GRAPH		0xa7c2 - 0xa7d0 0xa7f2 - 0xa7fe
GRAPH		0xa8bc 0xa8c1 - 0xa8fe
GRAPH		0xa9a1-0xa9a3 0xa9f0 - 0xa9fe
GRAPH		0xaaa1 - 0xaafe
GRAPH		0xaba1 - 0xabfe
GRAPH		0xaca1 - 0xacfe
GRAPH		0xada1 - 0xadfe
GRAPH		0xaea1 - 0xaefe
GRAPH		0xafa1 - 0xaffe
GRAPH		0xd7fa - 0xd7fe
IDEOGRAM	0xb0a1 - 0xb0fe
IDEOGRAM	0xb1a1 - 0xb1fe
IDEOGRAM	0xb2a1 - 0xb2fe
IDEOGRAM	0xb3a1 - 0xb3fe
IDEOGRAM	0xb4a1 - 0xb4fe
IDEOGRAM	0xb5a1 - 0xb5fe
IDEOGRAM	0xb6a1 - 0xb6fe
IDEOGRAM	0xb7a1 - 0xb7fe
IDEOGRAM	0xb8a1 - 0xb8fe
IDEOGRAM	0xb9a1 - 0xb9fe
IDEOGRAM	0xbaa1 - 0xbafe
IDEOGRAM	0xbba1 - 0xbbfe
IDEOGRAM	0xbca1 - 0xbcfe
IDEOGRAM	0xbda1 - 0xbdfe
IDEOGRAM	0xbea1 - 0xbefe
IDEOGRAM	0xbfa1 - 0xbffe
IDEOGRAM	0xc0a1 - 0xc0fe
IDEOGRAM	0xc1a1 - 0xc1fe
IDEOGRAM	0xc2a1 - 0xc2fe
IDEOGRAM	0xc3a1 - 0xc3fe
IDEOGRAM	0xc4a1 - 0xc4fe
IDEOGRAM	0xc5a1 - 0xc5fe
IDEOGRAM	0xc6a1 - 0xc6fe
IDEOGRAM	0xc7a1 - 0xc7fe
IDEOGRAM	0xc8a1 - 0xc8fe
IDEOGRAM	0xc9a1 - 0xc9fe
IDEOGRAM	0xcaa1 - 0xcafe
IDEOGRAM	0xcba1 - 0xcbfe
IDEOGRAM	0xcca1 - 0xccfe
IDEOGRAM	0xcda1 - 0xcdfe
IDEOGRAM	0xcea1 - 0xcefe
IDEOGRAM	0xcfa1 - 0xcffe
IDEOGRAM	0xd0a1 - 0xd0fe
IDEOGRAM	0xd1a1 - 0xd1fe
IDEOGRAM	0xd2a1 - 0xd2fe
IDEOGRAM	0xd3a1 - 0xd3fe
IDEOGRAM	0xd4a1 - 0xd4fe
IDEOGRAM	0xd5a1 - 0xd5fe
IDEOGRAM	0xd6a1 - 0xd6fe
IDEOGRAM	0xd7a1 - 0xd7fe
IDEOGRAM	0xd8a1 - 0xd8fe
IDEOGRAM	0xd9a1 - 0xd9fe
IDEOGRAM	0xdaa1 - 0xdafe
IDEOGRAM	0xdba1 - 0xdbfe
IDEOGRAM	0xdca1 - 0xdcfe
IDEOGRAM	0xdda1 - 0xddfe
IDEOGRAM	0xdea1 - 0xdefe
IDEOGRAM	0xdfa1 - 0xdffe
IDEOGRAM	0xe0a1 - 0xe0fe
IDEOGRAM	0xe1a1 - 0xe1fe
IDEOGRAM	0xe2a1 - 0xe2fe
IDEOGRAM	0xe3a1 - 0xe3fe
IDEOGRAM	0xe4a1 - 0xe4fe
IDEOGRAM	0xe5a1 - 0xe5fe
IDEOGRAM	0xe6a1 - 0xe6fe
IDEOGRAM	0xe7a1 - 0xe7fe
IDEOGRAM	0xe8a1 - 0xe8fe
IDEOGRAM	0xe9a1 - 0xe9fe
IDEOGRAM	0xeaa1 - 0xeafe
IDEOGRAM	0xeba1 - 0xebfe
IDEOGRAM	0xeca1 - 0xecfe
IDEOGRAM	0xeda1 - 0xedfe
IDEOGRAM	0xeea1 - 0xeefe
IDEOGRAM	0xefa1 - 0xeffe
IDEOGRAM	0xf0a1 - 0xf0fe
IDEOGRAM	0xf1a1 - 0xf1fe
IDEOGRAM	0xf2a1 - 0xf2fe
IDEOGRAM	0xf3a1 - 0xf3fe
IDEOGRAM	0xf4a1 - 0xf4fe
IDEOGRAM	0xf5a1 - 0xf5fe
IDEOGRAM	0xf6a1 - 0xf6fe
IDEOGRAM	0xf7a1 - 0xf7fe
LOWER		0xa2a1 - 0xa2aa
LOWER		0xa3e1 - 0xa3fa
LOWER		0xa6c1 - 0xa6d8
LOWER		0xa7d1 - 0xa7f1
LOWER		0xa8a1 - 0xa8bb 0xa8bd - 0xa8c0
MAPLOWER	< 0xa2f1 - 0xa2fa : 0xa2a1 > < 0xa2a1 - 0xa2aa : 0xa2a1 >
MAPLOWER	< 0xa3c1 - 0xa3da : 0xa3e1 > < 0xa3e1 - 0xa3fa : 0xa3e1 >
MAPLOWER	< 0xa6a1 - 0xa6b8 : 0xa6c1 > < 0xa6c1 - 0xa6d8 : 0xa6c1 >
MAPLOWER	< 0xa7a1 - 0xa7c1 : 0xa7d1 > < 0xa7d1 - 0xa7f1 : 0xa7d1 >
MAPUPPER	< 0xa2a1 - 0xa2aa : 0xa2f1 > < 0xa2f1 - 0xa2fc : 0xa2f1 >
MAPUPPER	< 0xa3e1 - 0xa3fa : 0xa3c1 > < 0xa3c1 - 0xa3da : 0xa3c1 >
MAPUPPER	< 0xa6c1 - 0xa6d8 : 0xa6a1 > < 0xa6a1 - 0xa6b8 : 0xa6a1 >
MAPUPPER	< 0xa7d1 - 0xa7f1 : 0xa7a1 > < 0xa7a1 - 0xa7c1 : 0xa7a1 >
PHONOGRAM	0xa4a1 - 0xa4f3			/* Hiragana */
PHONOGRAM	0xa5a1 - 0xa5f6			/* Katakana */
PHONOGRAM	0xa8c5 - 0xa8e9			/* Pin yin */
PRINT		0xa1a1
PUNCT		0xa1a2 - 0xa1a8 0xa1aa - 0xa1fe
PUNCT		0xa2e3
PUNCT		0xa3a1 - 0xa3af 0xa3ba - 0xa3c0 0xa3db - 0xa3e0 0xa3fb - 0xa3fe
PUNCT		0xa6e0 - 0xa6eb 0xa6ee - 0xa6f2 0xa6f4 0xa6f5
PUNCT		0xa9a4 - 0xa9ef
SPACE		0xa1a1
SPECIAL		0xa2a1 - 0xa2aa 0xa2b1 - 0xa2e2 0xa2e5 - 0xa2ee 0xa2f1 - 0xa2fc
SPECIAL		0xa8a1 - 0xa8c0
SPECIAL		0xa9a4 - 0xa9ef			/* Box drawings */
SWIDTH2		0xa1a1 - 0xa1a3 0xa1a8 0xa1a9 0xa1ab  0xa1b2 - 0xa1bf 0xa1e7  0xa1e9 0xa1ea 0xa1fe 
SWIDTH2		0xa2e5 - 0xa2ee
SWIDTH2		0xa3a1 - 0xa3fe
SWIDTH2		0xa4a1 - 0xa4f3
SWIDTH2		0xa5a1 - 0xa5f6
SWIDTH2		0xa6e0 - 0xa6eb 0xa6ee - 0xa6f2 0xa6f4 0xa6f5
SWIDTH2		0xa8c5 - 0xa8e9
SWIDTH2		0xb0a1 - 0xb0fe
SWIDTH2		0xb1a1 - 0xb1fe
SWIDTH2		0xb2a1 - 0xb2fe
SWIDTH2		0xb3a1 - 0xb3fe
SWIDTH2		0xb4a1 - 0xb4fe
SWIDTH2		0xb5a1 - 0xb5fe
SWIDTH2		0xb6a1 - 0xb6fe
SWIDTH2		0xb7a1 - 0xb7fe
SWIDTH2		0xb8a1 - 0xb8fe
SWIDTH2		0xb9a1 - 0xb9fe
SWIDTH2		0xbaa1 - 0xbafe
SWIDTH2		0xbba1 - 0xbbfe
SWIDTH2		0xbca1 - 0xbcfe
SWIDTH2		0xbda1 - 0xbdfe
SWIDTH2		0xbea1 - 0xbefe
SWIDTH2		0xbfa1 - 0xbffe
SWIDTH2		0xc0a1 - 0xc0fe
SWIDTH2		0xc1a1 - 0xc1fe
SWIDTH2		0xc2a1 - 0xc2fe
SWIDTH2		0xc3a1 - 0xc3fe
SWIDTH2		0xc4a1 - 0xc4fe
SWIDTH2		0xc5a1 - 0xc5fe
SWIDTH2		0xc6a1 - 0xc6fe
SWIDTH2		0xc7a1 - 0xc7fe
SWIDTH2		0xc8a1 - 0xc8fe
SWIDTH2		0xc9a1 - 0xc9fe
SWIDTH2		0xcaa1 - 0xcafe
SWIDTH2		0xcba1 - 0xcbfe
SWIDTH2		0xcca1 - 0xccfe
SWIDTH2		0xcda1 - 0xcdfe
SWIDTH2		0xcea1 - 0xcefe
SWIDTH2		0xcfa1 - 0xcffe
SWIDTH2		0xd0a1 - 0xd0fe
SWIDTH2		0xd1a1 - 0xd1fe
SWIDTH2		0xd2a1 - 0xd2fe
SWIDTH2		0xd3a1 - 0xd3fe
SWIDTH2		0xd4a1 - 0xd4fe
SWIDTH2		0xd5a1 - 0xd5fe
SWIDTH2		0xd6a1 - 0xd6fe
SWIDTH2		0xd7a1 - 0xd7f9
SWIDTH2		0xd8a1 - 0xd8fe
SWIDTH2		0xd9a1 - 0xd9fe
SWIDTH2		0xdaa1 - 0xdafe
SWIDTH2		0xdba1 - 0xdbfe
SWIDTH2		0xdca1 - 0xdcfe
SWIDTH2		0xdda1 - 0xddfe
SWIDTH2		0xdea1 - 0xdefe
SWIDTH2		0xdfa1 - 0xdffe
SWIDTH2		0xe0a1 - 0xe0fe
SWIDTH2		0xe1a1 - 0xe1fe
SWIDTH2		0xe2a1 - 0xe2fe
SWIDTH2		0xe3a1 - 0xe3fe
SWIDTH2		0xe4a1 - 0xe4fe
SWIDTH2		0xe5a1 - 0xe5fe
SWIDTH2		0xe6a1 - 0xe6fe
SWIDTH2		0xe7a1 - 0xe7fe
SWIDTH2		0xe8a1 - 0xe8fe
SWIDTH2		0xe9a1 - 0xe9fe
SWIDTH2		0xeaa1 - 0xeafe
SWIDTH2		0xeba1 - 0xebfe
SWIDTH2		0xeca1 - 0xecfe
SWIDTH2		0xeda1 - 0xedfe
SWIDTH2		0xeea1 - 0xeefe
SWIDTH2		0xefa1 - 0xeffe
SWIDTH2		0xf0a1 - 0xf0fe
SWIDTH2		0xf1a1 - 0xf1fe
SWIDTH2		0xf2a1 - 0xf2fe
SWIDTH2		0xf3a1 - 0xf3fe
SWIDTH2		0xf4a1 - 0xf4fe
SWIDTH2		0xf5a1 - 0xf5fe
SWIDTH2		0xf6a1 - 0xf6fe
SWIDTH2		0xf7a1 - 0xf7fe
TODIGIT		< 0xa2a1 - 0xa2aa : 1 >
TODIGIT		< 0xa2b1 - 0xa2c4 : 1 >
TODIGIT		< 0xa2c5 - 0xa2d8 : 1 >
TODIGIT		< 0xa2d9 - 0xa2e2 : 1 >
TODIGIT		< 0xa2e5 - 0xa2ee : 1 >
TODIGIT		< 0xa2f1 - 0xa2fc : 1 >
TODIGIT		< 0xa3b0 - 0xa3b9 : 0 >
TODIGIT		< 0xa3c1 - 0xa3c6 : 10 > < 0xa3e1 - 0xa3e6 : 10 >
UPPER		0xa2f1 - 0xa2fc
UPPER		0xa3c1 - 0xa3da
UPPER		0xa6a1 - 0xa6b8			/* Greek */
UPPER		0xa7a1 - 0xa7c1			/* Cyrillic */
XDIGIT          0xa3b0 - 0xa3b9 0xa3c1 - 0xa3c6 0xa3e1 - 0xa3e6
