shithub: riscv

Download patch

ref: 76e4f7caf9440f3ebb667b801fa55f5bc1c4be08
parent: 8d9a94a66ed80605cb21be1a091a9b6fe02bd023
author: cinap_lenrek <[email protected]>
date: Thu May 5 12:32:15 EDT 2016

remove unmaintained bitsy (ipaq) kernel

--- a/sys/src/9/bitsy/Booting101
+++ /dev/null
@@ -1,245 +1,0 @@
-
-
-The bitsy comes with Wince.  To get to Plan 9, you will need a serial cable,
-a Windows machine with a serial interface, the CDROM that comes with the bitsy,
-and a Plan 9 machine with a serial interface.  The Windows machine is used to
-get the Linux boot loader onto the bitsy (and to save away wince, if you so
-desire).  The Plan 9 machine is used to get the plan 9 kernel and a read only
-file system onto the bitsy.
-
-0.  charge up the bitsy.
-
-1.  go to
-	ftp://ftp.handhelds.org/pub/linux/compaq/ipaq/stable/install.html
-Get the latest version of the Linux "osloader" and "bootldr" programs
-(we have tried versions 1.3.0 and 0000-2.14.8, respectively; newest
-versions seem not to allow you to suspend your bitsy due to a bug
-which is probably ours).  You can find them all at
-www.collyer.net/who/geoff/9/bitsy/.
-
-2.  Use ActiveSync to copy osloader and bootldr to the bitsy.  Copy or
-rename the bootldr binary to "bootldr" on Windows, then copy it to the
-bitsy; trying to rename it on WinCE won't produce the right result.
-
-Steps 3 - 7 may work on a Pocket PC bitsy, but see Steps 3a - 7a
-if they don't or if you have a Pocket PC 2002 bitsy.
-
-3.  Run osloader by clicking on it under the WinCE File Explorer
-
-4.  Use osloader to save your WinCE flash away.  This takes a while,
-as it's 16MB over a 115,200 baud line.
-
-5.  Select "Run" from the osloader menu.  Ignore "Run from RAM"; it's
-not needed.
-
-6.  At this point, the bitsy's screen turns blank, but you can still
-talk to the bitsy over its serial port.  The serial port is connected
-to the OS loader's terminal program.  On Windows, you have to exit
-ActiveSync before the serial port is available for a terminal program.
-I moved the bitsy and its cable over to a Plan 9 machine and connected
-using "con -b 115200 /dev/eia[01]" to talk to the console.  The
-command "help" lists the OS loader's commands.
-
-7.  Now you need to download the BOOT loader program into flash (right
-now, you're only running the OS loader program out of RAM; rebooting
-will get you back to WinCE).  In the con window, "load bootldr" to the
-bitsy.  It will indicate that it's starting an xmodem download.
-Under con, type "Ctrl-\" to get a ">>>" prompt.  At this prompt, you
-want to run Plan 9's xms program to pipe the bootldr program to the
-bitsy.  For example, to download /tmp/bootldr, type "!xms /tmp/bootldr".
-
-If this step works successfully, the OS loader will print out some sort
-of OK checksum message.
-
-If you have a Pocket PC 2002 or steps 3 - 7 above didn't work for you,
-try 3a - 7a.
-
-3a.  Copy BootBlaster (also) to the bitsy via ActiveSync.
-
-4a.  Save your flash by running osloader and selecting "Flash->Save to
-File".  As it produces 4MB files, use ActiveSync to copy them off the
-bitsy.
-
-5a.  Move the bitsy and its cable over to a Plan 9 machine and connect
-using "con -b 115200 /dev/eia[01]" to talk to the console.
-
-6a.  Run BootBlaster by clicking on it under the WinCE File Explorer.
-
-7a.  Select "Program"; it should copy "bootldr" into your flash in
-about 15 seconds.
-
-8.  Reboot your bitsy (either cycle the power or use the reset
-switch).  The new boot loader runs out of Flash.  You'll get the linux
-penguin splash screen and a bunch of options triggered by buttons.
-Pick the one that gets you to the boot loader.
-
-9.  Make the partitions you need in the bitsy's flash, type, using
-the con program:
-	partition reset
-	partition define bootldr 0x000000 0x040000 2
-	partition define params 0x040000 0x040000 0
-	partition define kernel 0x080000 0x0c0000 0
-	partition define user 0x140000 0x0c0000 0
-	partition define ramdisk 0x200000 0x600000 0
-	partition define fs 0x800000 0x800000 0
-	params save
-
-These are the partitions as shown by partition show:
-	boot> partition show
-	argv[1]=partition
-	npartitions=00000006
-	bootldr
-	  base: 00000000
-	  size: 00040000
-	 flags: 00000002
-	params
-	  base: 00040000
-	  size: 00040000
-	 flags: 00000000
-	kernel
-	  base: 00080000
-	  size: 000C0000
-	 flags: 00000000
-	user
-	  base: 00140000
-	  size: 000C0000
-	 flags: 00000000
-	ramdisk
-	  base: 00200000
-	  size: 00600000
-	 flags: 00000000
-	fs
-	  base: 00800000
-	  size: 00800000
-	 flags: 00000000
-
-After each line you'll get a message like `defining partition: params'.
-Different versions of the bootloader predefine different partitions.
-The bootldr partition is usually predefined, so you don't have to remake
-that.  You may have to delete one or two partitions.  The command is
-	partition delete <name>
-Make sure the partition layout is as given above; some of this knowledge is
-built into the kernel.
-
-10. Before you can fill the new partitions with a kernel and a read-only
-file system, you'll have to make them.  In the directory /sys/src/9/bitsy,
-type mk and mk paqdisk.  Before mk-ing paqdisk, make sure you have all
-the necessary arm binaries installed in /arm and examine the file
-paqfiles/mfs to see what you need to change for connecting to your local
-file servers.
-
-11.  Now you can type "load kernel".  The boot loader will prompt for
-another xmodem download.  Again escape using "Ctrl-\", then use
-"!xms /sys/src/9/bitsy/9bitsy" (or "!xms /arm/9bitsy" if you've already
-installed it).
-
-12.  Download the ramdisk, using "load ramdisk" and
-"!xms /sys/src/9/bitsy/paqdisk" (or "!xms /arm/paqdisk" if you've already
-installed it), similarly to 10, above.
-
-13. Type `boot' or `boot flash' depending on your version of the boot loader.
-If you need the latter, you may want to
-
-	set boot_type flash
-	params save
-
-to make boot flash the default.
-
-You'll get a Dutch flag (or a French one, if you hold the iPaq the wrong way),
-then the boot screen will say, on the serial port, thus in your con window:
-
-	root is from [paq]:
-
-Just wait a while or hit enter in the con window and it'll continue.
-
-14.  The bitsy will now want to calibrate the screen.  It'll put up a
-series of crosses that you should press the center of.  Hold the pen
-down over each cross for a second or so; aim carefully.  Hold the
-machine in your hand the way you'ld normally use it or the calibration
-could be off since there is depth to the glass in the screen.
-
-15.  You'll get a new screen with a single line at the top and a
-keyboard/scribble area at the bottom.  This is a simple one file
-editor.  This file is similar to plan9.ini on PC's.  There may be
-garbage on the top line.  If there is, delete the garbage letters.
-(Be careful here: the backspace and delete keys are adjacent on the
-wee keyboard and it's much too easy to hit delete instead of
-backspace, especially if you haven't calibrated the screen dead-on.)
-You should be left with a single line containing (with different
-numbers):
-	calibrate='-16374 22919 251 -24'
-You need to enter a few more things, including, but not limited to:
-
-	user=<user-name>
-	wvkey1=<key string>
-	wvkey2=<key string>
-	wvkey3=<key string>
-	wvtxkey=<key string>
-	wvessid=<wavelan name>
-	auth=<ip address>
-	cpu=<ip address>
-	proxy=<ip address>
-	fs=<ip address>
-
-Your best bet is to copy these off a working bitsy.  wv*key* only
-matter if your wireless network is encrypted.  When roaming the world,
-omit wv*.  When you're done, hit the "ESC" key on the simulated
-keyboard, or the side button near the word iPAQ on the bitsy.  The
-system will now come up as you.  However, you'll get a message about
-the flash file system being corrupted, because we haven't yet
-initialized it.
-
-16. To set up the file systems, sweep a window and give the following
-sequence of commands.
-
-	# aux/mkflashfs /dev/flash/fs
-	# aux/flashfs
-
-aux/flashfs created a Plan 9 server in /srv/brzr, which we can use to set up
-default directories.
-
-	# mount -c /srv/brzr /n/brzr
-	# cd /n/brzr
-	# mkdir n usr
-	# mkdir n/fs n/emelie n/choline n/nslocum
-	# mkdir usr/yourname usr/yourfriend
-
-17. For safety, reboot the system:
-
-	# reboot
-
-18. Now reboot, go through the Linux splash screen, the Plan 9 boot
-editor, and sweep yourself a new rio window.
-
-Before you can connect to other machines, you need a way to enter
-passwords and keys into factotum.  The easiest way to do this is to
-run
-
-	# auth/fgui &
-
-in the window you just made.  The window will disappear (fgui spends
-most of its time hidden), so sweep a new window and run the command
-
-	# mfs
-
-to connect to file servers.  You will probably need to modify mfs to
-work in your environment (see point 10), though you can supply many
-of the variables it needs in step 15, and doing
-
-	# import $cpu /net
-
-before running mfs can go a long ways.
-
-19.  When you're all set with a working wavelan, you can download new
-kernels more quickly using
-
-	# bitsyload k
-
-and new paqdisks using
-
-	# bitsyload r
-
-(r stands for ramdisk, the name of the partition into which paqdisk goes).
-Note that overwriting the ramdisk partition will cause the read-only file
-system which forms the root of you namespace to fail.  You'll need to
-reboot immediately after bytsyload r.
--- a/sys/src/9/bitsy/bitsy
+++ /dev/null
@@ -1,49 +1,0 @@
-dev
-	root
-	cons
-	dup
-	env
-	ether	netif
-	flash
-	ip	arp chandial ip ipv6 ipaux iproute netlog nullmedium pktmedium inferno
-	kprof
-	mnt
-	µc
-	pcmcia	cis
-	draw
-	penmouse
-	pipe
-	proc
-	cap
-	srv
-	ssl
-	uart
-	uda1341
-	sd
-
-ip
-	tcp
-	udp
-	ipifc
-	icmp
-	icmp6
-	gre
-	ipmux
-
-link
-	etherwavelan wavelan
-	ethermedium
-
-misc
-	uartsa1110
-	sdata
-
-port
-	int cpuserver = 1;
-
-bootdir
-	/$objtype/bin/paqfs
-	/$objtype/bin/auth/factotum
-	bootfs.paq
-	boot
-
--- a/sys/src/9/bitsy/bitsyreset.s
+++ /dev/null
@@ -1,103 +1,0 @@
-#include "mem.h"
-
-	// Bitsy development board uses two banks: KM416S4030C,
-	// 12 row address bits, 8 col address bits
-	// Bitsy uses two banks KM416S8030C, 12 row address bits,
-	// 9 col address bits
-    // Have to set DRAC0 to 14 row bits or else you only get 8 col bits
-	// from the formfactor unit configuration registers:	 0xF3536257
-mdcnfg:     // DRAM Configuration Register 10.2.1
-	WORD	1<<0 | 1<<2 | 0<<3 | 0x5<<4 | 0x3<<8 | 3<<12 | 3<<14
-mdrefr0:		// DRAM Refresh Control Register 10.2.2
-	WORD	1<<0 | 0x200<<4 | 1<<21 | 1<<22 | 1 <<31
-mdrefr1:		// DRAM Refresh Control Register 10.2.2
-	WORD	1<<0 | 0x200<<4 | 1<<21 | 1<<22
-mdrefr2:		// DRAM Refresh Control Register 10.2.2
-	WORD	1<<0 | 0x200<<4 | 1<<20 | 1<<21 | 1<<22
-
-	/* MDCAS settings from [1] Table 10-3 (page 10-18) */
-waveform0:
-	WORD	0xAAAAAAA7
-waveform1:
-	WORD	0xAAAAAAAA
-waveform2:
-	WORD	0xAAAAAAAA
-
-delay:		// delay without using memory
-	mov	$100, r1	// 200MHz: 100 × (2 instructions @ 5 ns) == 1 ms
-l1:
-	sub $1, r1
-	bgt l1
-	sub $1, r0
-	bgt delay
-	ret
-	
-reset:
-	mov	$INTREGS+4, r0		// turn off interrupts
-	mov	$0, (r0)
-
-	// Is this necessary on wakeup?
-	mov	$POWERREGS+14, r0	// set clock speed to 191.7MHz
-	mov	$0xb, (r0)
-
-	// This is necessary on hard reset, but not on sleep reset
-	mov	$0x80, r0			// wait ±128 µs
-	bl	delay
-
-	/* check to see if we're operating out of DRAM */
-	bic	$0x000000ff, pc, r4
-	bic	$0x0000ff00, r4
-	bic	$0x00ff0000, r4
-	cmp	r4, $PHYSDRAM0
-	beq	dram
-
-dramwakeup:
-
-	mov	$POWERREGS+0x4, r1	// Clear DH in Power Manager Sleep Status Register
-	bic $(1<<3), (r1)		// DH == DRAM Hold
-	// This releases nCAS/DQM and nRAS/nSDCS pins to make DRAM exit selfrefresh
-
-	/* Set up the DRAM in banks 0 and 1 [1] 10.3 */
-	mov	$MEMCONFREGS, r1
-
-	mov	mdrefr0, r2		// Turn on K1RUN
-	mov	r2, 0x1c(r1)
-
-	mov	mdrefr1, r2		// Turn off SLFRSH
-	mov	r2, 0x1c(r1)
-
-	mov	mdrefr2, r2		// Turn on E1PIN
-	mov	r2, 0x1c(r1)
-
-    mov	waveform0, r2
-	mov	r2, 0x4(r1)
-
-	mov	waveform1, r2
-	mov	r2, 0x8(r1)
-
-	mov	waveform2, r2
-	mov	r2, 0xc(r1)
-
-	mov	$PHYSDRAM0, r0	
-	mov 0x00(r0), r2	// Eight non-burst read cycles
-	mov 0x20(r0), r2
-	mov 0x40(r0), r2
-	mov 0x60(r0), r2
-	mov 0x80(r0), r2
-	mov 0xa0(r0), r2
-	mov 0xc0(r0), r2
-	mov 0xe0(r0), r2
-
-	mov	mdcnfg, r2		// Enable memory banks
-	mov	r2, 0x0(r1)
-
-	// Is there any use in turning on EAPD and KAPD in the MDREFR register?
-
-	ret
-
-
-
-
-dram:
-
-
--- a/sys/src/9/bitsy/clock.c
+++ /dev/null
@@ -1,254 +1,0 @@
-#include	"u.h"
-#include	"../port/lib.h"
-#include	"mem.h"
-#include	"dat.h"
-#include	"fns.h"
-#include	"io.h"
-#include	"ureg.h"
-#include	"../port/error.h"
-
-
-enum {
-	RTCREGS	=	0x90010000,	/* real time clock registers */
-	RTSR_al	=	0x01,		/* alarm detected */
-	RTSR_hz	=	0x02,		/* 1Hz tick */
-	RTSR_ale=	0x04,		/* alarm interrupt enable */
-	RTSR_hze=	0x08,		/* 1Hz tick enable */
-
-	Never	=	0xffffffff,
-};
-
-typedef struct OSTimer
-{
-	ulong		osmr[4];	/* match registers */
-	volatile ulong	oscr;		/* counter register */
-	ulong		ossr;		/* status register */
-	ulong		ower;	/* watchdog enable register */
-	ulong		oier;		/* timer interrupt enable register */
-} OSTimer;
-
-typedef struct RTCregs 
-{
-	ulong	rtar;	/* alarm */
-	ulong	rcnr;	/* count */
-	ulong	rttr;	/* trim */
-	ulong	dummy;	/* hole */
-	ulong	rtsr;	/* status */
-} RTCregs;
-
-OSTimer *timerregs = (OSTimer*)OSTIMERREGS;
-RTCregs *rtcregs = (RTCregs*)RTCREGS;
-static int clockinited;
-
-static void	clockintr(Ureg*, void*);
-static void	rtcintr(Ureg*, void*);
-static Tval	when;	/* scheduled time of next interrupt */
-
-long	timeradjust;
-
-enum
-{
-	Minfreq = ClockFreq/HZ,		/* At least one interrupt per HZ (50 ms) */
-	Maxfreq = ClockFreq/10000,	/* At most one interrupt every 100 µs */
-};
-
-ulong
-clockpower(int on)
-{
-	static ulong savedtime;
-
-	if (on){
-		timerregs->ossr |= 1<<0;
-		timerregs->oier = 1<<0;
-		timerregs->osmr[0] = timerregs->oscr + Minfreq;
-		if (rtcregs->rttr == 0){
-			rtcregs->rttr = 0x8000; // nominal frequency.
-			rtcregs->rcnr = 0;
-			rtcregs->rtar = 0xffffffff;
-			rtcregs->rtsr |= RTSR_ale;
-			rtcregs->rtsr |= RTSR_hze;
-		}
-		if (rtcregs->rcnr > savedtime)
-			return rtcregs->rcnr - savedtime;
-	} else
-		savedtime = rtcregs->rcnr;
-	clockinited = on;
-	return 0L;
-}
-
-void
-clockinit(void)
-{
-	ulong x;
-	ulong id;
-
-	/* map the clock registers */
-	timerregs = mapspecial(OSTIMERREGS, sizeof(OSTimer));
-	rtcregs   = mapspecial(RTCREGS, sizeof(RTCregs));
-
-	/* enable interrupts on match register 0, turn off all others */
-	timerregs->ossr |= 1<<0;
-	intrenable(IRQ, IRQtimer0, clockintr, nil, "clock");
-	timerregs->oier = 1<<0;
-
-	/* figure out processor frequency */
-	x = powerregs->ppcr & 0x1f;
-	conf.hz = ClockFreq*(x*4+16);
-	conf.mhz = (conf.hz+499999)/1000000;
-
-	/* get processor type */
-	id = getcpuid();
-
-	print("%lud MHZ ARM, ver %lux/part %lux/step %lud\n", conf.mhz,
-		(id>>16)&0xff, (id>>4)&0xfff, id&0xf);
-
-	/* post interrupt 1/HZ secs from now */
-	when = timerregs->oscr + Minfreq;
-	timerregs->osmr[0] = when;
-
-	/* enable RTC interrupts and alarms */
-	intrenable(IRQ, IRQrtc, rtcintr, nil, "rtc");
-	rtcregs->rttr = 0x8000; 	// make rcnr   1Hz
-	rtcregs->rcnr = 0;		// reset counter
-	rtcregs->rtsr |= RTSR_al;
-	rtcregs->rtsr |= RTSR_ale;
-
-	timersinit();
-
-	clockinited = 1;
-}
-
-/*  turn 32 bit counter into a 64 bit one.  since todfix calls
- *  us at least once a second and we overflow once every 1165
- *  seconds, we won't miss an overflow.
- */
-uvlong
-fastticks(uvlong *hz)
-{
-	static uvlong high;
-	static ulong last;
-	ulong x;
-
-	if(hz != nil)
-		*hz = ClockFreq;
-	x = timerregs->oscr;
-	if(x < last)
-		high += 1LL<<32;
-	last = x;
-	return high+x;
-}
-
-ulong
-µs(void)
-{
-	return fastticks2us(fastticks(nil));
-}
-
-void
-timerset(Tval v)
-{
-	ulong next, tics;	/* Must be unsigned! */
-	static int count;
-
-	next = v;
-
-	/* post next interrupt: calculate # of tics from now */
-	tics = next - timerregs->oscr - Maxfreq;
-	if (tics > Minfreq){
-		timeradjust++;
-		next = timerregs->oscr + Maxfreq;
-	}
-	timerregs->osmr[0] = next;
-}
-
-static void
-clockintr(Ureg *ureg, void*)
-{
-	/* reset previous interrupt */
-	timerregs->ossr |= 1<<0;
-	when += Minfreq;
-	timerregs->osmr[0] = when;	/* insurance */
-
-	timerintr(ureg, when);
-}
-
-void
-rtcalarm(ulong secs)
-{
-	vlong t;
-
-	if (t == 0){
-		iprint("RTC alarm cancelled\n");
-		rtcregs->rtsr &= ~RTSR_ale;
-		rtcregs->rtar = 0xffffffff;
-	} else {
-		t = todget(nil);
-		t = t / 1000000000ULL; // nsec to secs
-		if (secs < t)
-			return;
-		secs -= t;
-		iprint("RTC alarm set to %uld seconds from now\n", secs);
-		rtcregs->rtar = rtcregs->rcnr + secs;
-		rtcregs->rtsr|= RTSR_ale;
-	}
-}
-
-static void
-rtcintr(Ureg*, void*)
-{
-	/* reset interrupt */
-	rtcregs->rtsr&= ~RTSR_ale;
-	rtcregs->rtsr&= ~RTSR_al;
-
-	rtcregs->rtar = 0;
-	iprint("RTC alarm: %lud\n", rtcregs->rcnr);
-}
-
-void
-delay(int ms)
-{
-	ulong start;
-	int i;
-
-	if(clockinited){
-		while(ms-- > 0){
-			start = timerregs->oscr;
-			while(timerregs->oscr-start < ClockFreq/1000)
-				;
-		}
-	} else {
-		while(ms-- > 0){
-			for(i = 0; i < 1000; i++)
-				;
-		}
-	}
-}
-
-void
-microdelay(int µs)
-{
-	ulong start;
-	int i;
-
-	µs++;
-	if(clockinited){
-		start = timerregs->oscr;
-		while(timerregs->oscr - start < 1UL+(µs*ClockFreq)/1000000UL)
-			;
-	} else {
-		while(µs-- > 0){
-			for(i = 0; i < 10; i++)
-				;
-		}
-	}
-}
-
-/*  
- *  performance measurement ticks.  must be low overhead.
- *  doesn't have to count over a second.
- */
-ulong
-perfticks(void)
-{
-	return timerregs->oscr;
-}
--- a/sys/src/9/bitsy/dat.h
+++ /dev/null
@@ -1,289 +1,0 @@
-typedef struct Cisdat 		Cisdat;
-typedef struct Conf		Conf;
-typedef struct Confmem	Confmem;
-typedef struct FPU		FPU;
-typedef struct FPenv		FPenv;
-typedef struct FPsave		FPsave;
-typedef struct DevConf		DevConf;
-typedef struct Label		Label;
-typedef struct Lock		Lock;
-typedef struct MMU		MMU;
-typedef struct Mach		Mach;
-typedef struct Notsave		Notsave;
-typedef struct Page		Page;
-typedef struct PCMmap		PCMmap;
-typedef struct PCMslot		PCMslot;
-typedef struct PCMconftab	PCMconftab;
-typedef struct PhysUart		PhysUart;
-typedef struct PMMU		PMMU;
-typedef struct Proc		Proc;
-typedef struct Uart		Uart;
-typedef struct Ureg		Ureg;
-typedef struct Vctl		Vctl;
-typedef long		Tval;
-
-#pragma incomplete Ureg
-
-typedef void IntrHandler(Ureg*, void*);
-
-#define MAXSYSARG	5	/* for mount(fd, mpt, flag, arg, srv) */
-
-/*
- *  parameters for sysproc.c
- */
-#define AOUT_MAGIC	(E_MAGIC)
-
-struct Lock
-{
-	ulong	key;
-	ulong	sr;
-	ulong	pc;
-	Proc	*p;
-	Mach	*m;
-	ushort	isilock;
-};
-
-struct Label
-{
-	ulong	sp;
-	ulong	pc;
-};
-
-/*
- * FPsave.status
- */
-enum
-{
-	FPinit,
-	FPactive,
-	FPinactive,
-};
-struct	FPsave
-{
-	ulong	status;
-	ulong	control;
-	ulong	regs[8][3];	/* emulated fp */	
-};
-
-struct Confmem
-{
-	ulong	base;
-	ulong	npage;
-	ulong	limit;
-	ulong	kbase;
-	ulong	klimit;
-};
-
-struct Conf
-{
-	ulong	nmach;		/* processors */
-	ulong	nproc;		/* processes */
-	Confmem	mem[2];
-	ulong	npage;		/* total physical pages of memory */
-	ulong	upages;		/* user page pool */
-	ulong	nimage;		/* number of page cache image headers */
-	ulong	nswap;		/* number of swap pages */
-	int	nswppo;		/* max # of pageouts per segment pass */
-	ulong	copymode;	/* 0 is copy on write, 1 is copy on reference */
-	int	monitor;
-	ulong	ialloc;		/* bytes available for interrupt time allocation */
-	ulong	pipeqsize;	/* size in bytes of pipe queues */
-	ulong	hz;		/* processor cycle freq */
-	ulong	mhz;
-};
-
-/*
- *  MMU stuff in proc
- */
-enum
-{
-	NCOLOR=	1,	/* 1 level cache, don't worry about VCE's */
-	Nmeg=	32,	/* maximum size of user space */
-};
-
-struct PMMU
-{
-	Page	*l1page[Nmeg];	/* this's process' level 1 entries */
-	ulong	l1table[Nmeg];	/* ... */
-	Page	*mmufree;	/* free mmu pages */
-};
-
-/*
- *  things saved in the Proc structure during a notify
- */
-struct Notsave
-{
-	int dummy;
-};
-
-#include "../port/portdat.h"
-
-struct Mach
-{
-	int	machno;			/* physical id of processor */
-	ulong	splpc;			/* pc of last caller to splhi */
-
-	Proc	*proc;			/* current process */
-	ulong	mmupid;			/* process id currently in mmu & cache */
-
-	ulong	ticks;			/* of the clock since boot time */
-	Label	sched;			/* scheduler wakeup */
-	Lock	alarmlock;		/* access to alarm list */
-	void*	alarm;			/* alarms bound to this clock */
-	int	inclockintr;
-
-	Proc*	readied;		/* for runproc */
-	ulong	schedticks;	/* next forced context switch */
-
-	/* stats */
-	int	tlbfault;
-	int	tlbpurge;
-	int	pfault;
-	int	cs;
-	int	syscall;
-	int	load;
-	int	intr;
-	vlong	fastclock;		/* last sampled value */
-	uvlong	inidle;			/* time spent in idlehands() */
-	ulong	spuriousintr;
-	int	lastintr;
-	int	ilockdepth;
-	Perf	perf;			/* performance counters */
-
-	int	flushmmu;		/* make current proc flush it's mmu state */
-	Proc	*pid2proc[31];		/* what proc holds what pid */
-	int	lastpid;		/* highest assigned pid slot */
-
-	int	cpumhz;			/* speed of cpu */
-	vlong	cpuhz;			/* ... */
-	uvlong	cyclefreq;		/* Frequency of user readable cycle counter */
-
-	/* save areas for exceptions */
-	ulong	sfiq[5];
-	ulong	sirq[5];
-	ulong	sund[5];
-	ulong	sabt[5];
-
-	int	stack[1];
-};
-
-/*
- * Fake kmap since we direct map dram
- */
-typedef void		KMap;
-#define	VA(k)		((ulong)(k))
-#define	kmap(p)		(KMap*)((p)->pa)
-#define	kunmap(k)
-
-struct
-{
-	Lock;
-	char	machs[MAXMACH];		/* active CPUs */
-	int	exiting;		/* shutdown */
-}active;
-
-#define	MACHP(n)	((Mach *)(MACHADDR+(n)*BY2PG))
-
-extern Mach	*m;
-extern Proc	*up;
-
-enum
-{
-	OneMeg=	1024*1024,
-};
-
-/*
- * PCMCIA structures known by both port/cis.c and the pcmcia driver
- */
-
-/*
- * Map between ISA memory space and PCMCIA card memory space.
- */
-struct PCMmap {
-	ulong	ca;			/* card address */
-	ulong	cea;			/* card end address */
-	ulong	isa;			/* local virtual address */
-	int	len;			/* length of the ISA area */
-	int	attr;			/* attribute memory */
-};
-
-/*
- *  a PCMCIA configuration entry
- */
-struct PCMconftab
-{
-	int	index;
-	ushort	irqs;		/* legal irqs */
-	uchar	irqtype;
-	uchar	bit16;		/* true for 16 bit access */
-	struct {
-		ulong	start;
-		ulong	len;
-	} io[16];
-	int	nio;
-	uchar	vpp1;
-	uchar	vpp2;
-	uchar	memwait;
-	ulong	maxwait;
-	ulong	readywait;
-	ulong	otherwait;
-};
-
-/*
- *  PCMCIA card slot
- */
-struct PCMslot
-{
-	RWlock;
-
-	Ref	ref;
-
-	long	memlen;		/* memory length */
-	uchar	slotno;		/* slot number */
-	void	*regs;		/* i/o registers */
-	void	*mem;		/* memory */
-	void	*attr;		/* attribute memory */
-
-	/* status */
-	uchar	occupied;	/* card in the slot */
-	uchar	configed;	/* card configured */
-	uchar	inserted;	/* card just inserted */
-
-	Dev		*dev;	/* set in ctlwrite `configure' */
-
-	/* cis info */
-	int	cisread;	/* set when the cis has been read */
-	char	verstr[512];	/* version string */
-	int	ncfg;		/* number of configurations */
-	struct {
-		ushort	cpresent;	/* config registers present */
-		ulong	caddr;		/* relative address of config registers */
-	} cfg[8];
-	int	nctab;		/* number of config table entries */
-	PCMconftab	ctab[8];
-	PCMconftab	*def;		/* default conftab */
-
-	/* maps are fixed */
-	PCMmap memmap;
-	PCMmap attrmap;
-};
-
-/*
- *  hardware info about a device
- */
-typedef struct {
-	ulong	port;	
-	int	size;
-} Devport;
-
-struct DevConf
-{
-	RWlock;			/* write: configure/unconfigure/suspend; read: normal access */
-	ulong	mem;		/* mapped memory address */
-	Devport	*ports;		/* ports[0]: mapped i/o regs, access size */
-	int	nports;		/* always 1 for the bitsy */
-	int	itype;		/* type of interrupt */
-	ulong	intnum;		/* interrupt number */
-	char	*type;		/* card type, mallocated */
-};
-
--- a/sys/src/9/bitsy/defont.c
+++ /dev/null
@@ -1,291 +1,0 @@
-#include <u.h>
-#include <libc.h>
-#include <draw.h>
-
-/*
- * /tmp/latin1.6x13, in uncompressed form
- */
-uchar
-defontdata[] =
-{
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x30,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x30,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x30,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x31,0x35,0x33,0x36,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x31,0x33,0x20,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2a,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x41,0x0e,0x00,0x60,0xc2,0x0a,0x00,
- 0x00,0x00,0x60,0xc2,0x00,0x60,0xc2,0x00,0x00,0xa6,0x0c,0x20,0xa0,0x00,0x01,0x83,
- 0x08,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x0c,0x00,0x00,0x00,0x00,0x0c,0x00,0x03,0x00,0x00,0x00,0x3f,
- 0x30,0x03,0x1c,0x30,0x00,0x00,0x00,0x83,0x00,0x41,0x02,0x00,0x31,0x85,0x14,0x51,
- 0xc0,0x00,0x31,0x85,0x14,0x31,0x85,0x14,0x01,0x43,0x18,0x51,0x45,0x00,0x08,0xc6,
- 0x14,0x51,0x86,0x1c,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x02,0x00,
- 0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x08,0x00,0x0c,0x00,0x73,0xe0,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x85,0x00,0x71,0x24,0x0c,0x11,0x00,0x00,0x00,0x00,0x02,
- 0x20,0x87,0x3e,0x13,0xe7,0x3e,0x71,0xc0,0x00,0x08,0x08,0x1c,0x70,0x8f,0x1c,0xf3,
- 0xef,0x9c,0x89,0xc3,0xa2,0x82,0x28,0x9c,0xf1,0xcf,0x1c,0xfa,0x28,0xa2,0x8a,0x2f,
- 0x9c,0x81,0xc2,0x00,0x30,0x08,0x00,0x08,0x03,0x00,0x80,0x00,0x20,0x60,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x23,0x04,0xaa,0x8f,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x0c,0x80,0x00,0x02,0x22,0x12,0x00,0xc0,0x80,0x00,0x03,0x00,
- 0x48,0x04,0x82,0x60,0x06,0xc0,0x00,0x84,0x80,0x49,0x24,0x08,0x00,0x08,0x80,0x01,
- 0x40,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x88,0x00,0x00,0x70,0x00,
- 0x00,0x00,0x04,0x22,0x60,0xc5,0x0a,0x00,0x00,0x00,0x60,0xc5,0x00,0x60,0xc5,0x00,
- 0x09,0x46,0x0c,0x51,0x40,0x00,0x01,0x83,0x14,0x00,0xc8,0x00,0x1b,0xe0,0x00,0x03,
- 0x84,0x00,0xc0,0x00,0x00,0xf0,0x0e,0x38,0xc3,0x0c,0x30,0xc2,0x4e,0x38,0x63,0x8e,
- 0x38,0xe3,0x8c,0x28,0x00,0x85,0x14,0xa2,0xaa,0x08,0x20,0x82,0x00,0x00,0x00,0x02,
- 0x51,0x88,0x82,0x12,0x08,0x82,0x8a,0x20,0x00,0x10,0x04,0x22,0x89,0x44,0xa2,0x4a,
- 0x08,0x22,0x88,0x81,0x22,0x82,0x2c,0xa2,0x8a,0x28,0xa2,0x22,0x28,0xa2,0x8a,0x20,
- 0x90,0x80,0x45,0x00,0x10,0x08,0x00,0x08,0x04,0x80,0x80,0x81,0x20,0x20,0x00,0x00,
- 0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x08,0x20,0x8a,0x94,0x77,0xff,0xff,0x1e,
- 0xff,0xcf,0xff,0xff,0xc3,0xfc,0x71,0xcf,0x3c,0xf3,0xcf,0x6c,0x71,0xe7,0x1c,0x71,
- 0xc7,0x3c,0x73,0xd7,0x00,0x02,0x00,0x8a,0x22,0x10,0x51,0x23,0x82,0x00,0x04,0x80,
- 0x48,0x01,0x0c,0x00,0x0a,0x80,0x00,0x84,0xa0,0x51,0x42,0x80,0x71,0xc7,0x1c,0x71,
- 0xc7,0xa2,0xfb,0xef,0xbe,0x71,0xc7,0x1c,0x4a,0x27,0x1c,0x71,0xc7,0x00,0x9a,0x28,
- 0xa2,0x8a,0x27,0x22,0x31,0x88,0x94,0x51,0xc0,0x00,0x31,0x88,0x94,0x31,0x88,0x94,
- 0x7e,0x83,0x18,0x8a,0x85,0x0c,0x00,0xc6,0x22,0x51,0x88,0x14,0x9f,0xee,0x38,0xe2,
- 0x0a,0x08,0xa2,0x88,0x22,0x81,0xc8,0x20,0xa2,0x8a,0x28,0xa3,0x48,0x20,0x92,0x08,
- 0x20,0x82,0x0a,0x28,0x00,0x85,0x14,0xa1,0x4a,0x10,0x20,0x8a,0x88,0x00,0x00,0x04,
- 0x8a,0x88,0x84,0x32,0x08,0x04,0x8a,0x22,0x08,0x20,0x02,0x22,0x8a,0x24,0xa0,0x4a,
- 0x08,0x20,0x88,0x81,0x24,0x83,0x6c,0xa2,0x8a,0x28,0xa0,0x22,0x28,0xa2,0x51,0x41,
- 0x10,0x40,0x48,0x80,0x08,0x08,0x00,0x08,0x04,0x00,0x80,0x00,0x20,0x20,0x00,0x00,
- 0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x08,0x20,0x89,0x2a,0x74,0x71,0xc7,0x7d,
- 0x7d,0xd7,0x5d,0xf7,0x5f,0x8d,0xf7,0xd7,0x5d,0x75,0xd7,0x2d,0xf7,0xdb,0x7d,0xf7,
- 0xdf,0x5d,0xf5,0xd7,0x00,0x82,0x0c,0x71,0x42,0x10,0x02,0x14,0x84,0x00,0x08,0x40,
- 0x48,0x82,0x02,0x00,0x0a,0x80,0x00,0x83,0x10,0x20,0x8d,0x08,0x8a,0x28,0xa2,0x8a,
- 0x2a,0x20,0x82,0x08,0x20,0x20,0x82,0x08,0x4b,0x28,0xa2,0x8a,0x28,0x80,0x9a,0x28,
- 0xa2,0x89,0x44,0xa6,0x00,0x00,0x00,0x01,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x08,0x00,0x00,0x00,0x00,0x0c,0x08,0x00,0x00,0x00,0x08,0x00,0xff,0xe8,0x20,0x83,
- 0x8a,0x1c,0xc2,0x88,0x22,0xe2,0x0e,0x38,0xa2,0x8a,0x28,0xa2,0xce,0x30,0x83,0x8e,
- 0x38,0xe2,0x8c,0x28,0x00,0x80,0x3e,0x70,0x44,0x00,0x40,0x4f,0x88,0x00,0x00,0x04,
- 0x88,0x80,0x88,0x52,0xc8,0x04,0x8a,0x27,0x1c,0x43,0xe1,0x02,0x9a,0x24,0xa0,0x4a,
- 0x08,0x20,0x88,0x81,0x28,0x82,0xaa,0xa2,0x8a,0x28,0xa0,0x22,0x28,0xa2,0x51,0x41,
- 0x10,0x40,0x40,0x00,0x01,0xcf,0x1c,0x79,0xc4,0x1c,0xb1,0x83,0x24,0x23,0x4b,0x1c,
- 0xf1,0xeb,0x1c,0xf2,0x28,0xa2,0x8a,0x2f,0x88,0x20,0x80,0x14,0xf5,0xf7,0xdf,0x1d,
- 0x78,0xcf,0x5d,0xf7,0x47,0x7c,0x71,0xd7,0x5d,0x75,0xd7,0x4c,0x73,0xdf,0x1c,0x71,
- 0xc7,0x3d,0x73,0xd7,0x00,0x87,0x12,0x51,0x42,0x1c,0x02,0xd4,0x8a,0xf8,0x0b,0x40,
- 0x30,0x87,0x9c,0x01,0x2a,0x80,0x00,0x80,0x28,0x49,0x42,0x88,0x8a,0x28,0xa2,0x8a,
- 0x2a,0x20,0x82,0x08,0x20,0x20,0x82,0x08,0x4b,0x28,0xa2,0x8a,0x28,0xa1,0xaa,0x28,
- 0xa2,0x89,0x44,0xac,0x71,0xc7,0x1c,0x71,0xcf,0x1c,0x71,0xc7,0x1c,0x61,0x86,0x18,
- 0x7a,0xc7,0x1c,0x71,0xc7,0x00,0x72,0x28,0xa2,0x8a,0x2f,0x22,0x1b,0xee,0x38,0xc2,
- 0x0e,0x1c,0xa3,0x88,0x14,0x82,0x02,0x08,0xa2,0x8a,0x28,0xa2,0x42,0x20,0x92,0x02,
- 0x20,0x82,0x8a,0x28,0x00,0x80,0x14,0x28,0x8a,0x00,0x40,0x47,0x3e,0x03,0xe0,0x08,
- 0x88,0x81,0x1c,0x53,0x2f,0x08,0x71,0xe2,0x08,0x80,0x00,0x84,0xaa,0x27,0x20,0x4b,
- 0xcf,0x20,0xf8,0x81,0x30,0x82,0xaa,0xa2,0xf2,0x2f,0x1c,0x22,0x25,0x2a,0x20,0x82,
- 0x10,0x20,0x40,0x00,0x00,0x28,0xa2,0x8a,0x2f,0x22,0xc8,0x81,0x28,0x22,0xac,0xa2,
- 0x8a,0x2c,0xa2,0x42,0x28,0xa2,0x52,0x21,0x30,0x20,0x60,0x2a,0xec,0x71,0xcf,0x7c,
- 0x78,0xd7,0x1d,0xfa,0xdf,0x7f,0x7d,0xd7,0x5d,0x75,0xd7,0x6f,0x77,0xdb,0x7f,0x77,
- 0xdf,0x5d,0x75,0xd7,0x00,0x8a,0x90,0x50,0x80,0x12,0x02,0x93,0x94,0x09,0xea,0x40,
- 0x03,0xe0,0x00,0x01,0x26,0x8c,0x00,0x07,0x94,0x9a,0xa5,0x90,0x8a,0x28,0xa2,0x8a,
- 0x2b,0xa0,0xf3,0xcf,0x3c,0x20,0x82,0x08,0xea,0xa8,0xa2,0x8a,0x28,0x92,0xaa,0x28,
- 0xa2,0x88,0x85,0xa6,0x08,0x20,0x82,0x08,0x22,0xa2,0x8a,0x28,0xa2,0x20,0x82,0x08,
- 0x8b,0x28,0xa2,0x8a,0x28,0x9e,0x9a,0x28,0xa2,0x8a,0x28,0xa2,0x3b,0xe2,0x20,0x83,
- 0x8a,0x14,0xc2,0x8e,0x08,0x81,0xce,0x38,0xc3,0x0c,0x30,0xc2,0x4e,0x38,0x63,0x8e,
- 0x38,0x83,0x8a,0x10,0x00,0x80,0x3e,0x29,0x09,0x80,0x40,0x4f,0x88,0x00,0x00,0x10,
- 0x88,0x82,0x02,0x90,0x28,0x88,0x88,0x20,0x00,0x40,0x01,0x08,0xab,0xe4,0xa0,0x4a,
- 0x08,0x26,0x88,0x81,0x28,0x82,0x29,0xa2,0x82,0x2a,0x02,0x22,0x25,0x2a,0x50,0x84,
- 0x10,0x10,0x40,0x00,0x01,0xe8,0xa0,0x8b,0xe4,0x22,0x88,0x81,0x30,0x22,0xa8,0xa2,
- 0x8a,0x28,0x18,0x42,0x28,0xaa,0x22,0x22,0x08,0x20,0x80,0x14,0xdf,0x77,0xdf,0x1d,
- 0x7a,0xcf,0x5c,0x7d,0xdf,0x8c,0x71,0xcf,0x3c,0xf3,0xcf,0x6c,0x71,0xe7,0x1c,0x71,
- 0xdf,0x5c,0x75,0xef,0x00,0x8a,0x3c,0x53,0xe2,0x0e,0x02,0xd0,0x28,0x09,0xea,0x40,
- 0x00,0x80,0x00,0x01,0x22,0x8c,0x00,0x00,0x0a,0x28,0x2a,0xa0,0xfb,0xef,0xbe,0xfb,
- 0xee,0x20,0x82,0x08,0x20,0x20,0x82,0x08,0x4a,0xa8,0xa2,0x8a,0x28,0x8c,0xaa,0x28,
- 0xa2,0x88,0x86,0x22,0x79,0xe7,0x9e,0x79,0xe7,0xa0,0xfb,0xef,0xbe,0x20,0x82,0x08,
- 0x8a,0x28,0xa2,0x8a,0x28,0x9e,0xaa,0x28,0xa2,0x8a,0x28,0xa2,0x33,0xee,0x38,0xf0,
- 0xc5,0x3e,0x72,0x87,0x00,0x79,0xc0,0x00,0x20,0x01,0x0e,0x18,0xa4,0x98,0x49,0x16,
- 0x1c,0x71,0xc7,0x1c,0x00,0x80,0x14,0x71,0x49,0x00,0x20,0x8a,0x88,0x00,0x00,0x10,
- 0x88,0x84,0x02,0xf8,0x28,0x90,0x88,0x20,0x00,0x23,0xe2,0x08,0xb2,0x24,0xa0,0x4a,
- 0x08,0x22,0x88,0x81,0x24,0x82,0x29,0xa2,0x82,0x29,0x02,0x22,0x25,0x2a,0x50,0x84,
- 0x10,0x10,0x40,0x00,0x02,0x28,0xa0,0x8a,0x04,0x22,0x88,0x81,0x28,0x22,0xa8,0xa2,
- 0x8a,0x28,0x04,0x42,0x25,0x2a,0x22,0x64,0x08,0x20,0x80,0x2a,0xdc,0x71,0xc3,0xce,
- 0xb0,0x63,0x5e,0x3f,0xe1,0x8f,0xff,0xf7,0xff,0xbc,0x79,0xd6,0xd9,0xed,0xba,0x78,
- 0xe3,0x8e,0x38,0xe3,0x00,0x8a,0x08,0x50,0x82,0x02,0x02,0x17,0x94,0x08,0x08,0x40,
- 0x00,0x80,0x00,0x01,0x22,0x80,0x00,0x00,0x14,0x48,0x44,0xa2,0x8a,0x28,0xa2,0x8a,
- 0x2a,0x20,0x82,0x08,0x20,0x20,0x82,0x08,0x4a,0x68,0xa2,0x8a,0x28,0x8c,0xca,0x28,
- 0xa2,0x88,0x84,0x22,0x8a,0x28,0xa2,0x8a,0x2a,0x20,0x82,0x08,0x20,0x20,0x82,0x08,
- 0x8a,0x28,0xa2,0x8a,0x28,0x80,0xaa,0x28,0xa2,0x8a,0x68,0xa6,0x33,0xe4,0x92,0x41,
- 0x25,0x08,0x41,0xc4,0x3e,0x41,0x23,0x04,0x20,0x42,0x82,0x28,0xa6,0x94,0x69,0xb5,
- 0x10,0x41,0x04,0x10,0x00,0x00,0x14,0x22,0xa6,0x80,0x20,0x82,0x00,0x30,0x02,0x20,
- 0x50,0x88,0x22,0x12,0x28,0x90,0x8a,0x22,0x0c,0x10,0x04,0x00,0x82,0x24,0xa2,0x4a,
- 0x08,0x22,0x88,0x89,0x22,0x82,0x28,0xa2,0x82,0xa8,0xa2,0x22,0x22,0x36,0x88,0x88,
- 0x10,0x08,0x40,0x00,0x02,0x28,0xa2,0x8a,0x24,0x1e,0x88,0x81,0x24,0x22,0xa8,0xa2,
- 0xf1,0xe8,0x22,0x4a,0x65,0x2a,0x51,0xa8,0x08,0x20,0x80,0x14,0xfe,0xdb,0x6f,0xb6,
- 0xbd,0xef,0x8e,0xf0,0x6f,0xb7,0x3e,0xf7,0xef,0x5f,0x75,0xd6,0x5a,0xe5,0x92,0xbb,
- 0xef,0xbe,0xfb,0xef,0x00,0x8a,0xbc,0x73,0xe2,0x02,0x01,0x20,0x0a,0x00,0x04,0x80,
- 0x03,0xe0,0x00,0x01,0x62,0x80,0x00,0x00,0x28,0x78,0x87,0xa2,0x8a,0x28,0xa2,0x8a,
- 0x2a,0x22,0x82,0x08,0x20,0x20,0x82,0x08,0x4a,0x68,0xa2,0x8a,0x28,0x92,0xca,0x28,
- 0xa2,0x88,0x84,0x26,0x8a,0x28,0xa2,0x8a,0x2a,0xa2,0x8a,0x28,0xa2,0x20,0x82,0x08,
- 0x8a,0x28,0xa2,0x8a,0x28,0x8c,0xca,0x69,0xa6,0x99,0xa8,0x9a,0x03,0xe3,0x0c,0x61,
- 0x26,0x00,0x70,0x86,0x08,0x71,0xc4,0x84,0x20,0x41,0x04,0x48,0xc5,0x98,0x59,0x56,
- 0x1c,0x71,0xc7,0x1c,0x00,0x80,0x00,0x02,0x40,0x00,0x11,0x00,0x00,0x20,0x07,0x20,
- 0x23,0xef,0x9c,0x11,0xc7,0x10,0x71,0xc7,0x08,0x08,0x08,0x08,0x7a,0x2f,0x1c,0xf3,
- 0xe8,0x1c,0x89,0xc6,0x22,0xfa,0x28,0x9c,0x81,0xc8,0x9c,0x21,0xc2,0x22,0x88,0x8f,
- 0x9c,0x09,0xc0,0x00,0x01,0xef,0x1c,0x79,0xc4,0x02,0x89,0xc9,0x22,0x72,0x28,0x9c,
- 0x80,0x28,0x1c,0x31,0xa2,0x14,0x88,0x2f,0x86,0x23,0x00,0x2a,0xdf,0x3c,0xe7,0xb6,
- 0x7f,0xe3,0xde,0x7d,0xe3,0x8e,0xde,0xf7,0xef,0xbe,0xed,0xce,0x99,0xe9,0xaa,0x78,
- 0xe3,0x8e,0x38,0xe3,0xc0,0x87,0x2a,0x88,0x82,0x12,0x00,0xc0,0x04,0x00,0x03,0x00,
- 0x00,0x00,0x00,0x01,0xa2,0x80,0x10,0x00,0x10,0x08,0xe0,0x9c,0x8a,0x28,0xa2,0x8a,
- 0x2b,0x9c,0xfb,0xef,0xbe,0x71,0xc7,0x1c,0xf2,0x27,0x1c,0x71,0xc7,0x21,0x71,0xc7,
- 0x1c,0x70,0x84,0x2c,0x79,0xe7,0x9e,0x79,0xe7,0x1c,0x71,0xc7,0x1c,0x71,0xc7,0x1c,
- 0x7a,0x27,0x1c,0x71,0xc7,0x0c,0x71,0xa6,0x9a,0x68,0x2f,0x02,0x03,0xe3,0x0c,0x40,
- 0xc5,0x00,0x10,0x84,0x08,0x41,0x44,0x84,0x20,0x42,0x02,0x7c,0xa4,0x94,0x49,0x15,
- 0x04,0x10,0x41,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x02,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x00,0x00,0x22,0x00,0x09,0x00,0x00,0x00,0x00,
- 0x80,0x20,0x00,0x00,0x00,0x00,0x02,0x20,0x00,0x00,0x00,0x14,0xff,0x3c,0xef,0xce,
- 0xbf,0xfb,0xde,0xfd,0xef,0xae,0xde,0xf7,0xef,0x7f,0x60,0xd6,0xda,0xed,0xba,0xbe,
- 0xfb,0xef,0xbe,0xfb,0xc0,0x02,0x38,0x00,0x00,0x0c,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x02,0x00,0x00,0x10,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,
- 0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x02,0x28,0x22,0x00,0x04,0x92,0x40,
- 0x24,0x80,0x70,0x84,0x08,0x41,0x23,0x04,0x38,0x43,0x8e,0x08,0x94,0x98,0x49,0x16,
- 0x1c,0x71,0xc7,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x00,0x06,0x00,0x00,0x00,0x00,
- 0x80,0x20,0x00,0x00,0x00,0x00,0x01,0xc0,0x00,0x00,0x00,0x2a,0x02,0xdb,0x6f,0xf6,
- 0xdf,0xe3,0xde,0xfd,0xef,0xb7,0x3e,0xf1,0xef,0x1c,0x7d,0xda,0xd9,0xed,0xba,0x78,
- 0xe3,0x8e,0x38,0xe3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xc8,0x1c,
- 0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x32,0x35,0x36,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x31,0x33,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x31,0x31,
- 0x20,0x00,0x00,0x02,0x0a,0x00,0x06,0x06,0x00,0x02,0x0c,0x00,0x06,0x0c,0x00,0x04,
- 0x0d,0x00,0x06,0x12,0x00,0x04,0x0d,0x00,0x06,0x18,0x00,0x04,0x0d,0x00,0x06,0x1e,
- 0x00,0x03,0x0d,0x00,0x06,0x24,0x00,0x03,0x0d,0x00,0x06,0x2a,0x00,0x04,0x0a,0x00,
- 0x06,0x30,0x00,0x03,0x0d,0x00,0x06,0x36,0x00,0x04,0x0d,0x00,0x06,0x3c,0x00,0x04,
- 0x0d,0x00,0x06,0x42,0x00,0x04,0x0d,0x00,0x06,0x48,0x00,0x03,0x0d,0x00,0x06,0x4e,
- 0x00,0x04,0x0d,0x00,0x06,0x54,0x00,0x03,0x0d,0x00,0x06,0x5a,0x00,0x03,0x0d,0x00,
- 0x06,0x60,0x00,0x03,0x0d,0x00,0x06,0x66,0x00,0x03,0x0d,0x00,0x06,0x6c,0x00,0x03,
- 0x0d,0x00,0x06,0x72,0x00,0x03,0x0d,0x00,0x06,0x78,0x00,0x03,0x0d,0x00,0x06,0x7e,
- 0x00,0x03,0x0d,0x00,0x06,0x84,0x00,0x03,0x0d,0x00,0x06,0x8a,0x00,0x03,0x0d,0x00,
- 0x06,0x90,0x00,0x03,0x0d,0x00,0x06,0x96,0x00,0x03,0x0d,0x00,0x06,0x9c,0x00,0x03,
- 0x0d,0x00,0x06,0xa2,0x00,0x03,0x0d,0x00,0x06,0xa8,0x00,0x03,0x0d,0x00,0x06,0xae,
- 0x00,0x03,0x0d,0x00,0x06,0xb4,0x00,0x03,0x0d,0x00,0x06,0xba,0x00,0x03,0x0d,0x00,
- 0x06,0xc0,0x00,0x00,0x00,0x00,0x06,0xc6,0x00,0x02,0x0b,0x00,0x06,0xcc,0x00,0x02,
- 0x05,0x00,0x06,0xd2,0x00,0x03,0x0a,0x00,0x06,0xd8,0x00,0x01,0x0a,0x00,0x06,0xde,
- 0x00,0x02,0x0b,0x00,0x06,0xe4,0x00,0x02,0x0a,0x00,0x06,0xea,0x00,0x02,0x05,0x00,
- 0x06,0xf0,0x00,0x02,0x0b,0x00,0x06,0xf6,0x00,0x02,0x0b,0x00,0x06,0xfc,0x00,0x03,
- 0x0a,0x00,0x06,0x02,0x01,0x04,0x09,0x00,0x06,0x08,0x01,0x09,0x0c,0x00,0x06,0x0e,
- 0x01,0x06,0x07,0x00,0x06,0x14,0x01,0x09,0x0c,0x00,0x06,0x1a,0x01,0x02,0x0b,0x00,
- 0x06,0x20,0x01,0x02,0x0b,0x00,0x06,0x26,0x01,0x02,0x0b,0x00,0x06,0x2c,0x01,0x02,
- 0x0b,0x00,0x06,0x32,0x01,0x02,0x0b,0x00,0x06,0x38,0x01,0x02,0x0b,0x00,0x06,0x3e,
- 0x01,0x02,0x0b,0x00,0x06,0x44,0x01,0x02,0x0b,0x00,0x06,0x4a,0x01,0x02,0x0b,0x00,
- 0x06,0x50,0x01,0x02,0x0b,0x00,0x06,0x56,0x01,0x02,0x0b,0x00,0x06,0x5c,0x01,0x00,
- 0x0d,0x00,0x06,0x62,0x01,0x00,0x0d,0x00,0x06,0x68,0x01,0x02,0x0b,0x00,0x06,0x6e,
- 0x01,0x00,0x0d,0x00,0x06,0x74,0x01,0x02,0x0b,0x00,0x06,0x7a,0x01,0x02,0x0b,0x00,
- 0x06,0x80,0x01,0x02,0x0b,0x00,0x06,0x86,0x01,0x02,0x0b,0x00,0x06,0x8c,0x01,0x02,
- 0x0b,0x00,0x06,0x92,0x01,0x02,0x0b,0x00,0x06,0x98,0x01,0x02,0x0b,0x00,0x06,0x9e,
- 0x01,0x02,0x0b,0x00,0x06,0xa4,0x01,0x02,0x0b,0x00,0x06,0xaa,0x01,0x02,0x0b,0x00,
- 0x06,0xb0,0x01,0x02,0x0b,0x00,0x06,0xb6,0x01,0x02,0x0b,0x00,0x06,0xbc,0x01,0x02,
- 0x0b,0x00,0x06,0xc2,0x01,0x02,0x0b,0x00,0x06,0xc8,0x01,0x02,0x0b,0x00,0x06,0xce,
- 0x01,0x02,0x0b,0x00,0x06,0xd4,0x01,0x02,0x0b,0x00,0x06,0xda,0x01,0x02,0x0b,0x00,
- 0x06,0xe0,0x01,0x02,0x0b,0x00,0x06,0xe6,0x01,0x02,0x0c,0x00,0x06,0xec,0x01,0x02,
- 0x0b,0x00,0x06,0xf2,0x01,0x02,0x0b,0x00,0x06,0xf8,0x01,0x02,0x0b,0x00,0x06,0xfe,
- 0x01,0x02,0x0b,0x00,0x06,0x04,0x02,0x02,0x0b,0x00,0x06,0x0a,0x02,0x02,0x0b,0x00,
- 0x06,0x10,0x02,0x02,0x0b,0x00,0x06,0x16,0x02,0x02,0x0b,0x00,0x06,0x1c,0x02,0x02,
- 0x0b,0x00,0x06,0x22,0x02,0x02,0x0b,0x00,0x06,0x28,0x02,0x02,0x0b,0x00,0x06,0x2e,
- 0x02,0x02,0x0b,0x00,0x06,0x34,0x02,0x02,0x05,0x00,0x06,0x3a,0x02,0x0b,0x0c,0x00,
- 0x06,0x40,0x02,0x02,0x05,0x00,0x06,0x46,0x02,0x05,0x0b,0x00,0x06,0x4c,0x02,0x02,
- 0x0b,0x00,0x06,0x52,0x02,0x05,0x0b,0x00,0x06,0x58,0x02,0x02,0x0b,0x00,0x06,0x5e,
- 0x02,0x05,0x0b,0x00,0x06,0x64,0x02,0x02,0x0b,0x00,0x06,0x6a,0x02,0x05,0x0d,0x00,
- 0x06,0x70,0x02,0x02,0x0b,0x00,0x06,0x76,0x02,0x03,0x0b,0x00,0x06,0x7c,0x02,0x03,
- 0x0d,0x00,0x06,0x82,0x02,0x02,0x0b,0x00,0x06,0x88,0x02,0x02,0x0b,0x00,0x06,0x8e,
- 0x02,0x05,0x0b,0x00,0x06,0x94,0x02,0x05,0x0b,0x00,0x06,0x9a,0x02,0x05,0x0b,0x00,
- 0x06,0xa0,0x02,0x05,0x0d,0x00,0x06,0xa6,0x02,0x05,0x0d,0x00,0x06,0xac,0x02,0x05,
- 0x0b,0x00,0x06,0xb2,0x02,0x05,0x0b,0x00,0x06,0xb8,0x02,0x03,0x0b,0x00,0x06,0xbe,
- 0x02,0x05,0x0b,0x00,0x06,0xc4,0x02,0x05,0x0b,0x00,0x06,0xca,0x02,0x05,0x0b,0x00,
- 0x06,0xd0,0x02,0x05,0x0b,0x00,0x06,0xd6,0x02,0x05,0x0d,0x00,0x06,0xdc,0x02,0x05,
- 0x0b,0x00,0x06,0xe2,0x02,0x02,0x0b,0x00,0x06,0xe8,0x02,0x02,0x0b,0x00,0x06,0xee,
- 0x02,0x02,0x0b,0x00,0x06,0xf4,0x02,0x02,0x05,0x00,0x06,0xfa,0x02,0x00,0x0d,0x00,
- 0x06,0x00,0x03,0x00,0x0c,0x00,0x06,0x06,0x03,0x00,0x0d,0x00,0x06,0x0c,0x03,0x00,
- 0x0d,0x00,0x06,0x12,0x03,0x00,0x0d,0x00,0x06,0x18,0x03,0x00,0x0d,0x00,0x06,0x1e,
- 0x03,0x00,0x0d,0x00,0x06,0x24,0x03,0x00,0x0d,0x00,0x06,0x2a,0x03,0x00,0x0d,0x00,
- 0x06,0x30,0x03,0x00,0x0d,0x00,0x06,0x36,0x03,0x00,0x0d,0x00,0x06,0x3c,0x03,0x00,
- 0x0d,0x00,0x06,0x42,0x03,0x00,0x0d,0x00,0x06,0x48,0x03,0x00,0x0d,0x00,0x06,0x4e,
- 0x03,0x00,0x0d,0x00,0x06,0x54,0x03,0x00,0x0d,0x00,0x06,0x5a,0x03,0x00,0x0d,0x00,
- 0x06,0x60,0x03,0x00,0x0d,0x00,0x06,0x66,0x03,0x00,0x0d,0x00,0x06,0x6c,0x03,0x00,
- 0x0d,0x00,0x06,0x72,0x03,0x00,0x0d,0x00,0x06,0x78,0x03,0x00,0x0d,0x00,0x06,0x7e,
- 0x03,0x00,0x0d,0x00,0x06,0x84,0x03,0x00,0x0d,0x00,0x06,0x8a,0x03,0x00,0x0d,0x00,
- 0x06,0x90,0x03,0x00,0x0d,0x00,0x06,0x96,0x03,0x00,0x0d,0x00,0x06,0x9c,0x03,0x00,
- 0x0d,0x00,0x06,0xa2,0x03,0x00,0x0d,0x00,0x06,0xa8,0x03,0x00,0x0d,0x00,0x00,0xae,
- 0x03,0x00,0x0d,0x00,0x00,0xb4,0x03,0x00,0x0d,0x00,0x00,0xba,0x03,0x00,0x0d,0x00,
- 0x00,0xc0,0x03,0x01,0x0c,0x00,0x06,0xc6,0x03,0x02,0x0b,0x00,0x06,0xcc,0x03,0x03,
- 0x0c,0x00,0x06,0xd2,0x03,0x04,0x0c,0x00,0x06,0xd8,0x03,0x03,0x0b,0x00,0x06,0xde,
- 0x03,0x02,0x0b,0x00,0x06,0xe4,0x03,0x02,0x0b,0x00,0x06,0xea,0x03,0x01,0x0c,0x00,
- 0x06,0xf0,0x03,0x03,0x04,0x00,0x06,0xf6,0x03,0x02,0x0b,0x00,0x06,0xfc,0x03,0x01,
- 0x09,0x00,0x06,0x02,0x04,0x03,0x0c,0x00,0x06,0x08,0x04,0x05,0x09,0x00,0x06,0x0e,
- 0x04,0x06,0x08,0x00,0x06,0x14,0x04,0x02,0x0b,0x00,0x06,0x1a,0x04,0x01,0x02,0x00,
- 0x06,0x20,0x04,0x01,0x06,0x00,0x06,0x26,0x04,0x04,0x0a,0x00,0x06,0x2c,0x04,0x01,
- 0x06,0x00,0x06,0x32,0x04,0x01,0x06,0x00,0x06,0x38,0x04,0x00,0x03,0x00,0x06,0x3e,
- 0x04,0x05,0x0c,0x00,0x06,0x44,0x04,0x02,0x0b,0x00,0x06,0x4a,0x04,0x06,0x08,0x00,
- 0x06,0x50,0x04,0x0a,0x0d,0x00,0x06,0x56,0x04,0x01,0x06,0x00,0x06,0x5c,0x04,0x01,
- 0x07,0x00,0x06,0x62,0x04,0x03,0x0c,0x00,0x06,0x68,0x04,0x00,0x0b,0x00,0x06,0x6e,
- 0x04,0x00,0x0b,0x00,0x06,0x74,0x04,0x00,0x0b,0x00,0x06,0x7a,0x04,0x02,0x0b,0x00,
- 0x06,0x80,0x04,0x00,0x0b,0x00,0x06,0x86,0x04,0x00,0x0b,0x00,0x06,0x8c,0x04,0x00,
- 0x0b,0x00,0x06,0x92,0x04,0x00,0x0b,0x00,0x06,0x98,0x04,0x01,0x0b,0x00,0x06,0x9e,
- 0x04,0x01,0x0b,0x00,0x06,0xa4,0x04,0x03,0x0b,0x00,0x06,0xaa,0x04,0x02,0x0d,0x00,
- 0x06,0xb0,0x04,0x00,0x0b,0x00,0x06,0xb6,0x04,0x00,0x0b,0x00,0x06,0xbc,0x04,0x00,
- 0x0b,0x00,0x06,0xc2,0x04,0x01,0x0b,0x00,0x06,0xc8,0x04,0x00,0x0b,0x00,0x06,0xce,
- 0x04,0x00,0x0b,0x00,0x06,0xd4,0x04,0x00,0x0b,0x00,0x06,0xda,0x04,0x01,0x0b,0x00,
- 0x06,0xe0,0x04,0x02,0x0b,0x00,0x06,0xe6,0x04,0x00,0x0b,0x00,0x06,0xec,0x04,0x00,
- 0x0b,0x00,0x06,0xf2,0x04,0x00,0x0b,0x00,0x06,0xf8,0x04,0x00,0x0b,0x00,0x06,0xfe,
- 0x04,0x00,0x0b,0x00,0x06,0x04,0x05,0x01,0x0b,0x00,0x06,0x0a,0x05,0x05,0x0b,0x00,
- 0x06,0x10,0x05,0x01,0x0c,0x00,0x06,0x16,0x05,0x00,0x0b,0x00,0x06,0x1c,0x05,0x00,
- 0x0b,0x00,0x06,0x22,0x05,0x00,0x0b,0x00,0x06,0x28,0x05,0x01,0x0b,0x00,0x06,0x2e,
- 0x05,0x00,0x0b,0x00,0x06,0x34,0x05,0x01,0x0b,0x00,0x06,0x3a,0x05,0x01,0x0c,0x00,
- 0x06,0x40,0x05,0x02,0x0b,0x00,0x06,0x46,0x05,0x02,0x0b,0x00,0x06,0x4c,0x05,0x01,
- 0x0b,0x00,0x06,0x52,0x05,0x02,0x0b,0x00,0x06,0x58,0x05,0x03,0x0b,0x00,0x06,0x5e,
- 0x05,0x03,0x0b,0x00,0x06,0x64,0x05,0x05,0x0b,0x00,0x06,0x6a,0x05,0x05,0x0d,0x00,
- 0x06,0x70,0x05,0x02,0x0b,0x00,0x06,0x76,0x05,0x02,0x0b,0x00,0x06,0x7c,0x05,0x01,
- 0x0b,0x00,0x06,0x82,0x05,0x03,0x0b,0x00,0x06,0x88,0x05,0x02,0x0b,0x00,0x06,0x8e,
- 0x05,0x02,0x0b,0x00,0x06,0x94,0x05,0x01,0x0b,0x00,0x06,0x9a,0x05,0x03,0x0b,0x00,
- 0x06,0xa0,0x05,0x02,0x0b,0x00,0x06,0xa6,0x05,0x02,0x0b,0x00,0x06,0xac,0x05,0x02,
- 0x0b,0x00,0x06,0xb2,0x05,0x02,0x0b,0x00,0x06,0xb8,0x05,0x01,0x0b,0x00,0x06,0xbe,
- 0x05,0x02,0x0b,0x00,0x06,0xc4,0x05,0x03,0x0b,0x00,0x06,0xca,0x05,0x03,0x0b,0x00,
- 0x06,0xd0,0x05,0x04,0x0c,0x00,0x06,0xd6,0x05,0x02,0x0b,0x00,0x06,0xdc,0x05,0x02,
- 0x0b,0x00,0x06,0xe2,0x05,0x01,0x0b,0x00,0x06,0xe8,0x05,0x03,0x0b,0x00,0x06,0xee,
- 0x05,0x02,0x0d,0x00,0x06,0xf4,0x05,0x01,0x0d,0x00,0x06,0xfa,0x05,0x03,0x0d,0x00,
- 0x06,0x00,0x06,0x00,0x00,0x00,0x00,
- 
-
-};
-
-int	sizeofdefont = sizeof defontdata;
-
-void
-_unpackinfo(Fontchar *fc, uchar *p, int n)
-{
-	int j;
-
-	for(j=0;  j<=n;  j++){
-		fc->x = p[0]|(p[1]<<8);
-		fc->top = p[2];
-		fc->bottom = p[3];
-		fc->left = p[4];
-		fc->width = p[5];
-		fc++;
-		p += 6;
-	}
-}
--- a/sys/src/9/bitsy/devether.c
+++ /dev/null
@@ -1,594 +1,0 @@
-#include "u.h"
-#include "../port/lib.h"
-#include "mem.h"
-#include "dat.h"
-#include "fns.h"
-#include "io.h"
-#include "ureg.h"
-#include "../port/error.h"
-#include "../port/netif.h"
-
-#include "etherif.h"
-
-static volatile Ether *etherxx[MaxEther];
-
-static struct {
-	char*	type;
-	int	(*reset)(Ether*);
-} cards[MaxEther+1];
-
-void
-addethercard(char* t, int (*r)(Ether*))
-{
-	static int ncard;
-
-	if(ncard == MaxEther)
-		panic("too many ether cards");
-	cards[ncard].type = t;
-	cards[ncard].reset = r;
-	ncard++;
-}
-
-void
-etherpower(int on)
-{
-	int i;
-	Ether *ether;
-	/* Power all ether cards on or off */
-
-iprint("etherpower %d\n", on);
-	for (i = 0; i < MaxEther; i++){
-		if ((ether = etherxx[i]) == nil)
-			continue;
-		if(on){
-			if (ether->writer == 0){
-				print("etherpower: already powered up\n");
-				continue;
-			}
-			if (ether->power)
-				ether->power(ether, on);
-			wunlock(ether);
-			/* Unlock when power restored */
-		}else{
-			if (ether->writer != 0){
-				print("etherpower: already powered down\n");
-				continue;
-			}
-			/* Keep locked until power goes back on */
-			wlock(ether);
-			if (ether->power)
-				ether->power(ether, on);
-		}
-	}
-}
-
-int
-etherconfig(int on, char *spec, DevConf *cf)
-{
-	Ether *ether;
-	int n, ctlrno;
-	char name[32], buf[128];
-	char *p, *e;
-
-	ctlrno = atoi(spec);
-	sprint(name, "ether%d", ctlrno);
-
-	if(on == 0)
-		return -1;
-
-	if(etherxx[ctlrno] != nil)
-		return -1;
-
-	ether = malloc(sizeof(Ether));
-	if(ether == nil)
-		panic("etherconfig");
-	ether->DevConf = *cf;
-
-	for(n = 0; cards[n].type; n++){
-		if(strcmp(cards[n].type, ether->type) != 0)
-			continue;
-		if(cards[n].reset(ether))
-			break;
-
-		if(ether->mbps >= 100){
-			netifinit(ether, name, Ntypes, 256*1024);
-			if(ether->oq == 0)
-				ether->oq = qopen(256*1024, Qmsg, 0, 0);
-		}
-		else{
-			netifinit(ether, name, Ntypes, 65*1024);
-			if(ether->oq == 0)
-				ether->oq = qopen(65*1024, Qmsg, 0, 0);
-		}
-		if(ether->oq == 0)
-			panic("etherreset %s", name);
-		ether->alen = Eaddrlen;
-		memmove(ether->addr, ether->ea, Eaddrlen);
-		memset(ether->bcast, 0xFF, Eaddrlen);
-		ether->mbps = 10;
-		ether->minmtu = ETHERMINTU;
-		ether->maxmtu = ETHERMAXTU;
-
-		if(ether->interrupt != nil)
-			intrenable(cf->itype, cf->intnum, ether->interrupt, ether, name);
-
-		p = buf;
-		e = buf+sizeof(buf);
-		p = seprint(p, e, "#l%d: %s: %dMbps port 0x%luX",
-			ctlrno, ether->type, ether->mbps, ether->ports[0].port);
-		if(ether->mem)
-			p = seprint(p, e, " addr 0x%luX", PADDR(ether->mem));
-		if(ether->ports[0].size)
-			p = seprint(p, e, " size 0x%X", ether->ports[0].size);
-		p = seprint(p, e, ": %2.2ux%2.2ux%2.2ux%2.2ux%2.2ux%2.2ux",
-			ether->ea[0], ether->ea[1], ether->ea[2],
-			ether->ea[3], ether->ea[4], ether->ea[5]);
-		seprint(p, e, "\n");
-		print("%s", buf);
-
-		etherxx[ctlrno] = ether;
-		return 0;
-	}
-
-	if (ether->type)
-		free(ether->type);
-	free(ether);
-	return -1;
-}
-
-Chan*
-etherattach(char* spec)
-{
-	ulong ctlrno;
-	char *p;
-	Chan *chan;
-	Ether *ether;
-
-	ctlrno = 0;
-	if(spec && *spec){
-		ctlrno = strtoul(spec, &p, 0);
-		if((ctlrno == 0 && p == spec) || *p || (ctlrno >= MaxEther))
-			error(Ebadarg);
-	}
-	if((ether = etherxx[ctlrno]) == 0)
-		error(Enodev);
-	rlock(ether);
-	if(waserror()) {
-		runlock(ether);
-		nexterror();
-	}
-	chan = devattach('l', spec);
-	chan->dev = ctlrno;
-	if(ether->attach)
-		ether->attach(ether);
-	poperror();
-	runlock(ether);
-	return chan;
-}
-
-static Walkqid*
-etherwalk(Chan* chan, Chan* nchan, char** name, int nname)
-{
-	Walkqid *q;
-	Ether *ether;
-
-	ether = etherxx[chan->dev];
-	rlock(ether);
-	if(waserror()) {
-		runlock(ether);
-		nexterror();
-	}
-	q = netifwalk(ether, chan, nchan, name, nname);
-	poperror();
-	runlock(ether);
-	return q;
-}
-
-static int
-etherstat(Chan* chan, uchar* dp, int n)
-{
-	int s;
-	Ether *ether;
-
-	ether = etherxx[chan->dev];
-	rlock(ether);
-	if(waserror()) {
-		runlock(ether);
-		nexterror();
-	}
-	s = netifstat(ether, chan, dp, n);
-	poperror();
-	runlock(ether);
-	return s;
-}
-
-static Chan*
-etheropen(Chan* chan, int omode)
-{
-	Chan *c;
-	Ether *ether;
-
-	ether = etherxx[chan->dev];
-	rlock(ether);
-	if(waserror()) {
-		runlock(ether);
-		nexterror();
-	}
-	c = netifopen(ether, chan, omode);
-	poperror();
-	runlock(ether);
-	return c;
-}
-
-static void
-ethercreate(Chan*, char*, int, ulong)
-{
-}
-
-static void
-etherclose(Chan* chan)
-{
-	Ether *ether;
-
-	ether = etherxx[chan->dev];
-	rlock(ether);
-	if(waserror()) {
-		runlock(ether);
-		nexterror();
-	}
-	netifclose(ether, chan);
-	poperror();
-	runlock(ether);
-}
-
-static long
-etherread(Chan* chan, void* buf, long n, vlong off)
-{
-	Ether *ether;
-	ulong offset = off;
-	long r;
-
-	ether = etherxx[chan->dev];
-	rlock(ether);
-	if(waserror()) {
-		runlock(ether);
-		nexterror();
-	}
-	if((chan->qid.type & QTDIR) == 0 && ether->ifstat){
-		/*
-		 * With some controllers it is necessary to reach
-		 * into the chip to extract statistics.
-		 */
-		if(NETTYPE(chan->qid.path) == Nifstatqid){
-			r = ether->ifstat(ether, buf, n, offset);
-			goto out;
-		}
-		if(NETTYPE(chan->qid.path) == Nstatqid)
-			ether->ifstat(ether, buf, 0, offset);
-	}
-	r = netifread(ether, chan, buf, n, offset);
-out:
-	poperror();
-	runlock(ether);
-	return r;
-}
-
-static Block*
-etherbread(Chan* chan, long n, ulong offset)
-{
-	Block *b;
-	Ether *ether;
-
-	ether = etherxx[chan->dev];
-	rlock(ether);
-	if(waserror()) {
-		runlock(ether);
-		nexterror();
-	}
-	b = netifbread(ether, chan, n, offset);
-	poperror();
-	runlock(ether);
-	return b;
-}
-
-static int
-etherwstat(Chan* chan, uchar* dp, int n)
-{
-	Ether *ether;
-	int r;
-
-	ether = etherxx[chan->dev];
-	rlock(ether);
-	if(waserror()) {
-		runlock(ether);
-		nexterror();
-	}
-	r = netifwstat(ether, chan, dp, n);
-	poperror();
-	runlock(ether);
-	return r;
-}
-
-static void
-etherrtrace(Netfile* f, Etherpkt* pkt, int len)
-{
-	int i, n;
-	Block *bp;
-
-	if(qwindow(f->in) <= 0)
-		return;
-	if(len > 58)
-		n = 58;
-	else
-		n = len;
-	bp = iallocb(64);
-	if(bp == nil)
-		return;
-	memmove(bp->wp, pkt->d, n);
-	i = TK2MS(MACHP(0)->ticks);
-	bp->wp[58] = len>>8;
-	bp->wp[59] = len;
-	bp->wp[60] = i>>24;
-	bp->wp[61] = i>>16;
-	bp->wp[62] = i>>8;
-	bp->wp[63] = i;
-	bp->wp += 64;
-	qpass(f->in, bp);
-}
-
-Block*
-etheriq(Ether* ether, Block* bp, int fromwire)
-{
-	Etherpkt *pkt;
-	ushort type;
-	int len, multi, tome, fromme;
-	Netfile **ep, *f, **fp, *fx;
-	Block *xbp;
-
-	ether->inpackets++;
-
-	pkt = (Etherpkt*)bp->rp;
-	len = BLEN(bp);
-	type = (pkt->type[0]<<8)|pkt->type[1];
-	fx = 0;
-	ep = &ether->f[Ntypes];
-
-	multi = pkt->d[0] & 1;
-	/* check for valid multicast addresses */
-	if(multi && memcmp(pkt->d, ether->bcast, sizeof(pkt->d)) && ether->prom == 0){
-		if(!activemulti(ether, pkt->d, sizeof(pkt->d))){
-			if(fromwire){
-				freeb(bp);
-				bp = 0;
-			}
-			return bp;
-		}
-	}
-
-	/* is it for me? */
-	tome = memcmp(pkt->d, ether->ea, sizeof(pkt->d)) == 0;
-	fromme = memcmp(pkt->s, ether->ea, sizeof(pkt->s)) == 0;
-
-	/*
-	 * Multiplex the packet to all the connections which want it.
-	 * If the packet is not to be used subsequently (fromwire != 0),
-	 * attempt to simply pass it into one of the connections, thereby
-	 * saving a copy of the data (usual case hopefully).
-	 */
-	for(fp = ether->f; fp < ep; fp++){
-		if(f = *fp)
-		if(f->type == type || f->type < 0)
-		if(tome || multi || f->prom){
-			/* Don't want to hear bridged packets */
-			if(f->bridge && !fromwire && !fromme)
-				continue;
-			if(!f->headersonly){
-				if(fromwire && fx == 0)
-					fx = f;
-				else if(xbp = iallocb(len)){
-					memmove(xbp->wp, pkt, len);
-					xbp->wp += len;
-					qpass(f->in, xbp);
-				}
-				else
-					ether->soverflows++;
-			}
-			else
-				etherrtrace(f, pkt, len);
-		}
-	}
-
-	if(fx){
-		if(qpass(fx->in, bp) < 0)
-			ether->soverflows++;
-		return 0;
-	}
-	if(fromwire){
-		freeb(bp);
-		return 0;
-	}
-
-	return bp;
-}
-
-static int
-etheroq(Ether* ether, Block* bp)
-{
-	int len, loopback;
-	Etherpkt *pkt;
-
-	ether->outpackets++;
-
-	/*
-	 * Check if the packet has to be placed back onto the input queue,
-	 * i.e. if it's a loopback or broadcast packet or the interface is
-	 * in promiscuous mode.
-	 * If it's a loopback packet indicate to etheriq that the data isn't
-	 * needed and return, etheriq will pass-on or free the block.
-	 * To enable bridging to work, only packets that were originated
-	 * by this interface are fed back.
-	 */
-	pkt = (Etherpkt*)bp->rp;
-	len = BLEN(bp);
-	loopback = memcmp(pkt->d, ether->ea, sizeof(pkt->d)) == 0;
-	if(loopback || memcmp(pkt->d, ether->bcast, sizeof(pkt->d)) == 0 || ether->prom)
-		if(etheriq(ether, bp, loopback) == 0)
-			return len;
-
-	qbwrite(ether->oq, bp);
-	if(ether->transmit != nil)
-		ether->transmit(ether);
-	return len;
-}
-
-static long
-etherwrite(Chan* chan, void* buf, long n, vlong)
-{
-	Ether *ether;
-	Block *bp;
-	long l;
-
-	ether = etherxx[chan->dev];
-	rlock(ether);
-	if(waserror()) {
-		runlock(ether);
-		nexterror();
-	}
-	if(NETTYPE(chan->qid.path) != Ndataqid) {
-		l = netifwrite(ether, chan, buf, n);
-		if(l >= 0)
-			goto out;
-		if(n == sizeof("nonblocking")-1 && strncmp((char*)buf, "nonblocking", n) == 0){
-			qnoblock(ether->oq, 1);
-			goto out;
-		}
-		if(ether->ctl!=nil){
-			l = ether->ctl(ether,buf,n);
-			goto out;
-		}
-		error(Ebadctl);
-	}
-
-	if(n > ether->maxmtu)
-		error(Etoobig);
-	if(n < ether->minmtu)
-		error(Etoosmall);
-	bp = allocb(n);
-	memmove(bp->rp, buf, n);
-	memmove(bp->rp+Eaddrlen, ether->ea, Eaddrlen);
-	bp->wp += n;
-
-	l = etheroq(ether, bp);
-out:
-	poperror();
-	runlock(ether);
-	return l;
-}
-
-static long
-etherbwrite(Chan* chan, Block* bp, ulong)
-{
-	Ether *ether;
-	long n;
-
-	n = BLEN(bp);
-	if(NETTYPE(chan->qid.path) != Ndataqid){
-		if(waserror()) {
-			freeb(bp);
-			nexterror();
-		}
-		n = etherwrite(chan, bp->rp, n, 0);
-		poperror();
-		freeb(bp);
-		return n;
-	}
-	ether = etherxx[chan->dev];
-	rlock(ether);
-	if(waserror()) {
-		runlock(ether);
-		nexterror();
-	}
-	if(n > ether->maxmtu){
-		freeb(bp);
-		error(Etoobig);
-	}
-	if(n < ether->minmtu){
-		freeb(bp);
-		error(Etoosmall);
-	}
-	n = etheroq(ether, bp);
-	poperror();
-	runlock(ether);
-	return n;
-}
-
-int
-parseether(uchar *to, char *from)
-{
-	char nip[4];
-	char *p;
-	int i;
-
-	p = from;
-	for(i = 0; i < 6; i++){
-		if(*p == 0)
-			return -1;
-		nip[0] = *p++;
-		if(*p == 0)
-			return -1;
-		nip[1] = *p++;
-		nip[2] = 0;
-		to[i] = strtoul(nip, 0, 16);
-		if(*p == ':')
-			p++;
-	}
-	return 0;
-}
-
-static void
-etherreset(void)
-{
-}
-
-#define POLY 0xedb88320
-
-/* really slow 32 bit crc for ethers */
-ulong
-ethercrc(uchar *p, int len)
-{
-	int i, j;
-	ulong crc, b;
-
-	crc = 0xffffffff;
-	for(i = 0; i < len; i++){
-		b = *p++;
-		for(j = 0; j < 8; j++){
-			crc = (crc>>1) ^ (((crc^b) & 1) ? POLY : 0);
-			b >>= 1;
-		}
-	}
-	return crc;
-}
-
-Dev etherdevtab = {
-	'l',
-	"ether",
-
-	etherreset,
-	devinit,
-	devshutdown,
-	etherattach,
-	etherwalk,
-	etherstat,
-	etheropen,
-	ethercreate,
-	etherclose,
-	etherread,
-	etherbread,
-	etherwrite,
-	etherbwrite,
-	devremove,
-	etherwstat,
-	etherpower,
-	etherconfig,
-};
--- a/sys/src/9/bitsy/devflash.c
+++ /dev/null
@@ -1,876 +1,0 @@
-#include	"u.h"
-#include	"../port/lib.h"
-#include	"mem.h"
-#include	"dat.h"
-#include	"fns.h"
-#include	"io.h"
-#include	"../port/error.h"
-
-/*
- *  on the bitsy, all 32 bit accesses to flash are mapped to two 16 bit
- *  accesses, one to the low half of the chip and the other to the high
- *  half.  Therefore for all command accesses, ushort indices in the
- *  manuals turn into ulong indices in our code.  Also, by copying all
- *  16 bit commands to both halves of a 32 bit command, we erase 2
- *  sectors for each request erase request.
- */
-
-#define mirror(x) (((x)<<16)|(x))
-
-/* this defines a contiguous set of erase blocks of one size */
-typedef struct FlashRegion FlashRegion;
-struct FlashRegion
-{
-	ulong	addr;		/* start of region */
-	ulong	end;		/* end of region + 1 */
-	ulong	n;		/* number of blocks */
-	ulong	size;		/* size of each block */
-};
-
-/* this defines a particular access algorithm */
-typedef struct FlashAlg FlashAlg;
-struct FlashAlg
-{
-	int	id;
-	char	*name;
-	void	(*identify)(void);	/* identify device */
-	void	(*erase)(ulong);	/* erase a region */
-	void	(*write)(void*, long, ulong);	/* write a region */
-};
-
-static void	ise_id(void);
-static void	ise_erase(ulong);
-static void	ise_write(void*, long, ulong);
-
-static void	afs_id(void);
-static void	afs_erase(ulong);
-static void	afs_write(void*, long, ulong);
-
-static ulong	blockstart(ulong);
-static ulong	blockend(ulong);
-
-FlashAlg falg[] =
-{
-	{ 1,	"Intel/Sharp Extended",	ise_id, ise_erase, ise_write	},
-	{ 2,	"AMD/Fujitsu Standard",	afs_id, afs_erase, afs_write	},
-};
-
-struct
-{
-	RWlock;
-	ulong		*p;
-	ushort		algid;		/* access algorithm */
-	FlashAlg	*alg;
-	ushort		manid;		/* manufacturer id */
-	ushort		devid;		/* device id */
-	ulong		size;		/* size in bytes */
-	int		wbsize;		/* size of write buffer */ 
-	ulong		nr;		/* number of regions */
-	uchar		bootprotect;
-	FlashRegion	r[32];
-} flash;
-
-enum
-{
-	Maxwchunk=	1024,	/* maximum chunk written by one call to falg->write */
-};
-
-/*
- *  common flash interface
- */
-static uchar
-cfigetc(int off)
-{
-	uchar rv;
-
-	flash.p[0x55] = mirror(0x98);
-	rv = flash.p[off];
-	flash.p[0x55] = mirror(0xFF);
-	return rv;
-}
-
-static ushort
-cfigets(int off)
-{
-	return (cfigetc(off+1)<<8)|cfigetc(off);
-}
-
-static ulong
-cfigetl(int off)
-{
-	return (cfigetc(off+3)<<24)|(cfigetc(off+2)<<16)|
-		(cfigetc(off+1)<<8)|cfigetc(off);
-}
-
-static void
-cfiquery(void)
-{
-	uchar q, r, y;
-	ulong x, addr;
-
-	q = cfigetc(0x10);
-	r = cfigetc(0x11);
-	y = cfigetc(0x12);
-	if(q != 'Q' || r != 'R' || y != 'Y'){
-		print("cfi query failed: %ux %ux %ux\n", q, r, y);
-		return;
-	}
-	flash.algid = cfigetc(0x13);
-	flash.size = 1<<(cfigetc(0x27)+1);
-	flash.wbsize = 1<<(cfigetc(0x2a)+1);
-	flash.nr = cfigetc(0x2c);
-	if(flash.nr > nelem(flash.r)){
-		print("cfi reports > %d regions\n", nelem(flash.r));
-		flash.nr = nelem(flash.r);
-	}
-	addr = 0;
-	for(q = 0; q < flash.nr; q++){
-		x = cfigetl(q+0x2d);
-		flash.r[q].size = 2*256*(x>>16);
-		flash.r[q].n = (x&0xffff)+1;
-		flash.r[q].addr = addr;
-		addr += flash.r[q].size*flash.r[q].n;
-		flash.r[q].end = addr;
-	}
-}
-
-/*
- *  flash device interface
- */
-
-enum
-{
-	Qtopdir,
-	Q2nddir,
-	Qfctl,
-	Qfdata,
-
-	Maxpart= 8,
-};
-
-
-typedef struct FPart FPart;
-struct FPart
-{
-	char	*name;
-	char	*ctlname;
-	ulong	start;
-	ulong	end;
-};
-static FPart	part[Maxpart];
-
-#define FQID(p,q)	((p)<<8|(q))
-#define FTYPE(q)	((q) & 0xff)
-#define FPART(q)	(&part[(q) >>8])
-
-static int
-gen(Chan *c, char*, Dirtab*, int, int i, Dir *dp)
-{
-	Qid q;
-	FPart *fp;
-
-	q.vers = 0;
-
-	/* top level directory contains the name of the network */
-	if(c->qid.path == Qtopdir){
-		switch(i){
-		case DEVDOTDOT:
-			q.path = Qtopdir;
-			q.type = QTDIR;
-			devdir(c, q, "#F", 0, eve, DMDIR|0555, dp);
-			break;
-		case 0:
-			q.path = Q2nddir;
-			q.type = QTDIR;
-			devdir(c, q, "flash", 0, eve, DMDIR|0555, dp);
-			break;
-		default:
-			return -1;
-		}
-		return 1;
-	}
-
-	/* second level contains all partitions and their control files */
-	switch(i) {
-	case DEVDOTDOT:
-		q.path = Qtopdir;
-		q.type = QTDIR;
-		devdir(c, q, "#F", 0, eve, DMDIR|0555, dp);
-		break;
-	default:
-		if(i >= 2*Maxpart)
-			return -1;
-		fp = &part[i>>1];
-		if(fp->name == nil)
-			return 0;
-		if(i & 1){
-			q.path = FQID(i>>1, Qfdata);
-			q.type = QTFILE;
-			devdir(c, q, fp->name, fp->end-fp->start, eve, 0660, dp);
-		} else {
-			q.path = FQID(i>>1, Qfctl);
-			q.type = QTFILE;
-			devdir(c, q, fp->ctlname, 0, eve, 0660, dp);
-		}
-		break;
-	}
-	return 1;
-}
-
-static FPart*
-findpart(char *name)
-{
-	int i;
-
-	for(i = 0; i < Maxpart; i++)
-		if(part[i].name != nil && strcmp(name, part[i].name) == 0)
-			break;
-	if(i >= Maxpart)
-		return nil;
-	return &part[i];
-}
-
-static void
-addpart(FPart *fp, char *name, ulong start, ulong end)
-{
-	int i;
-	char ctlname[64];
-
-	if(fp == nil){
-		if(start >= flash.size || end > flash.size)
-			error(Ebadarg);
-	} else {
-		start += fp->start;
-		end += fp->start;
-		if(start >= fp->end || end > fp->end)
-			error(Ebadarg);
-	}
-	if(blockstart(start) != start)
-		error("must start on erase boundary");
-	if(blockstart(end) != end && end != flash.size)
-		error("must end on erase boundary");
-
-	fp = findpart(name);
-	if(fp != nil)
-		error(Eexist);
-	for(i = 0; i < Maxpart; i++)
-		if(part[i].name == nil)
-			break;
-	if(i == Maxpart)
-		error("no more partitions");
-	fp = &part[i];
-	kstrdup(&fp->name, name);
-	snprint(ctlname, sizeof ctlname, "%sctl", name);
-	kstrdup(&fp->ctlname, ctlname);
-	fp->start = start;
-	fp->end = end;
-}
-
-static void
-rempart(FPart *fp)
-{
-	char *p, *cp;
-
-	p = fp->name;
-	fp->name = nil;
-	cp = fp->ctlname;
-	fp->ctlname = nil;
-	free(p);
-	free(cp);
-}
-
-void
-flashinit(void)
-{
-	int i;
-
-	flash.p = (ulong*)FLASHZERO;
-	cfiquery();
-	for(i = 0; i < nelem(falg); i++)
-		if(flash.algid == falg[i].id){
-			flash.alg = &falg[i];
-			(*flash.alg->identify)();
-			break;
-		}
-	flash.bootprotect = 1;
-
-	addpart(nil, "flash", 0, flash.size);
-}
-
-static Chan*
-flashattach(char* spec)
-{
-	return devattach('F', spec);
-}
-
-static Walkqid*
-flashwalk(Chan *c, Chan *nc, char **name, int nname)
-{
-	return devwalk(c, nc, name, nname, nil, 0, gen);
-}
-
-static int	 
-flashstat(Chan *c, uchar *db, int n)
-{
-	return devstat(c, db, n, nil, 0, gen);
-}
-
-static Chan*
-flashopen(Chan* c, int omode)
-{
-	omode = openmode(omode);
-	if(strcmp(up->user, eve)!=0)
-		error(Eperm);
-	return devopen(c, omode, nil, 0, gen);
-}
-
-static void	 
-flashclose(Chan*)
-{
-}
-
-static long
-flashctlread(FPart *fp, void* a, long n, vlong off)
-{
-	char *buf, *p, *e;
-	int i;
-	ulong addr, end;
-
-	buf = smalloc(1024);
-	e = buf + 1024;
-	p = seprint(buf, e, "0x%-9lux 0x%-9x 0x%-9ux 0x%-9ux\n", fp->end-fp->start,
-		flash.wbsize, flash.manid, flash.devid);
-	addr = fp->start;
-	for(i = 0; i < flash.nr && addr < fp->end; i++)
-		if(flash.r[i].addr <= addr && flash.r[i].end > addr){
-			if(fp->end <= flash.r[i].end)
-				end = fp->end;
-			else
-				end = flash.r[i].end;
-			p = seprint(p, e, "0x%-9lux 0x%-9lux 0x%-9lux\n", addr,
-				(end-addr)/flash.r[i].size, flash.r[i].size);
-			addr = end;
-		}
-	n = readstr(off, a, n, buf);
-	free(buf);
-	return n;
-}
-
-static long
-flashdataread(FPart *fp, void* a, long n, vlong off)
-{
-	rlock(&flash);
-	if(waserror()){
-		runlock(&flash);
-		nexterror();
-	}
-	if(fp->name == nil)
-		error("partition vanished");
-	if(!iseve())
-		error(Eperm);
-	off += fp->start;
-	if(off >= fp->end)
-		n = 0;
-	if(off+n >= fp->end)
-		n = fp->end - off;
-	if(n > 0)
-		memmove(a, ((uchar*)FLASHZERO)+off, n);
-	runlock(&flash);
-	poperror();
-
-	return n;
-}
-
-static long	 
-flashread(Chan* c, void* a, long n, vlong off)
-{
-	int t;
-
-	if(c->qid.type == QTDIR)
-		return devdirread(c, a, n, nil, 0, gen);
-	t = FTYPE(c->qid.path);
-	switch(t){
-	default:
-		error(Eperm);
-	case Qfctl:
-		n = flashctlread(FPART(c->qid.path), a, n, off);
-		break;
-	case Qfdata:
-		n = flashdataread(FPART(c->qid.path), a, n, off);
-		break;
-	}
-	return n;
-}
-
-static void
-bootprotect(ulong addr)
-{
-	FlashRegion *r;
-
-	if(flash.bootprotect == 0)
-		return;
-	if(flash.nr == 0)
-		error("writing over boot loader disallowed");
-	r = flash.r;
-	if(addr >= r->addr && addr < r->addr + r->size)
-		error("writing over boot loader disallowed");
-}
-
-static ulong
-blockstart(ulong addr)
-{
-	FlashRegion *r, *e;
-	ulong x;
-
-	r = flash.r;
-	for(e = &flash.r[flash.nr]; r < e; r++)
-		if(addr >= r->addr && addr < r->end){
-			x = addr - r->addr;
-			x /= r->size;
-			return r->addr + x*r->size;
-		}
-			
-	return (ulong)-1;
-}
-
-static ulong
-blockend(ulong addr)
-{
-	FlashRegion *r, *e;
-	ulong x;
-
-	r = flash.r;
-	for(e = &flash.r[flash.nr]; r < e; r++)
-		if(addr >= r->addr && addr < r->end){
-			x = addr - r->addr;
-			x /= r->size;
-			return r->addr + (x+1)*r->size;
-		}
-			
-	return (ulong)-1;
-}
-
-static long
-flashctlwrite(FPart *fp, char *p, long n)
-{
-	Cmdbuf *cmd;
-	ulong off;
-
-	if(fp == nil)
-		panic("flashctlwrite");
-
-	cmd = parsecmd(p, n);
-	wlock(&flash);
-	if(waserror()){
-		wunlock(&flash);
-		nexterror();
-	}
-	if(strcmp(cmd->f[0], "erase") == 0){
-		switch(cmd->nf){
-		case 2:
-			/* erase a single block in the partition */
-			off = atoi(cmd->f[1]);
-			off += fp->start;
-			if(off >= fp->end)
-				error("region not in partition");
-			if(off != blockstart(off))
-				error("erase must be a block boundary");
-			bootprotect(off);
-			(*flash.alg->erase)(off);
-			break;
-		case 1:
-			/* erase the whole partition */
-			bootprotect(fp->start);
-			for(off = fp->start; off < fp->end; off = blockend(off))
-				(*flash.alg->erase)(off);
-			break;
-		default:
-			error(Ebadarg);
-		}
-	} else if(strcmp(cmd->f[0], "add") == 0){
-		if(cmd->nf != 4)
-			error(Ebadarg);
-		addpart(fp, cmd->f[1], strtoul(cmd->f[2], nil, 0), strtoul(cmd->f[3], nil, 0));
-	} else if(strcmp(cmd->f[0], "remove") == 0){
-		rempart(fp);
-	} else if(strcmp(cmd->f[0], "protectboot") == 0){
-		if(cmd->nf == 0 || strcmp(cmd->f[1], "off") != 0)
-			flash.bootprotect = 1;
-		else
-			flash.bootprotect = 0;
-	} else
-		error(Ebadarg);
-	poperror();
-	wunlock(&flash);
-	free(cmd);
-
-	return n;
-}
-
-static long
-flashdatawrite(FPart *fp, uchar *p, long n, long off)
-{
-	uchar *end;
-	int m;
-	int on;
-	long ooff;
-	uchar *buf;
-
-	if(fp == nil)
-		panic("flashctlwrite");
-
-	buf = nil;
-	wlock(&flash);
-	if(waserror()){
-		wunlock(&flash);
-		if(buf != nil)
-			free(buf);
-		nexterror();
-	}
-
-	if(fp->name == nil)
-		error("partition vanished");
-	if(!iseve())
-		error(Eperm);
-
-	/* can't cross partition boundaries */
-	off += fp->start;
-	if(off >= fp->end || off+n > fp->end || n <= 0)
-		error(Ebadarg);
-
-	/* make sure we're not writing the boot sector */
-	bootprotect(off);
-
-	on = n;
-
-	/*
-	 *  get the data into kernel memory to avoid faults during writing.
-	 *  if write is not on a quad boundary or not a multiple of 4 bytes,
-	 *  extend with data already in flash.
-	 */
-	buf = smalloc(n+8);
-	m = off & 3;
-	if(m){
-		*(ulong*)buf = flash.p[(off)>>2];
-		n += m;
-		off -= m;
-	}
-	if(n & 3){
-		n -= n & 3;
-		*(ulong*)(&buf[n]) = flash.p[(off+n)>>2];
-		n += 4;
-	}
-	memmove(&buf[m], p, on);
-
-	/* (*flash.alg->write) can't cross blocks */
-	ooff = off;
-	p = buf;
-	for(end = p + n; p < end; p += m){
-		m = blockend(off) - off;
-		if(m > end - p)
-			m = end - p;
-		if(m > Maxwchunk)
-			m = Maxwchunk;
-		(*flash.alg->write)(p, m, off);
-		off += m;
-	}
-
-	/* make sure write succeeded */
-	if(memcmp(buf, &flash.p[ooff>>2], n) != 0)
-		error("written bytes don't match");
-
-	wunlock(&flash);
-	free(buf);
-	poperror();
-
-	return on;
-}
-
-static long	 
-flashwrite(Chan* c, void* a, long n, vlong off)
-{
-	int t;
-
-	if(c->qid.type == QTDIR)
-		error(Eperm);
-
-	if(!iseve())
-		error(Eperm);
-
-	t = FTYPE(c->qid.path);
-	switch(t){
-	default:
-		panic("flashwrite");
-	case Qfctl:
-		n = flashctlwrite(FPART(c->qid.path), a, n);
-		break;
-	case Qfdata:
-		n = flashdatawrite(FPART(c->qid.path), a, n, off);
-		break;
-	}
-	return n;
-}
-
-Dev flashdevtab = {
-	'F',
-	"flash",
-
-	devreset,
-	flashinit,
-	devshutdown,
-	flashattach,
-	flashwalk,
-	flashstat,
-	flashopen,
-	devcreate,
-	flashclose,
-	flashread,
-	devbread,
-	flashwrite,
-	devbwrite,
-	devremove,
-	devwstat,
-};
-
-enum
-{
-	/* status register */
-	ISEs_lockerr=		1<<1,
-	ISEs_powererr=		1<<3,
-	ISEs_progerr=		1<<4,
-	ISEs_eraseerr=		1<<5,
-	ISEs_ready=		1<<7,
-	ISEs_err= (ISEs_lockerr|ISEs_powererr|ISEs_progerr|ISEs_eraseerr),
-
-	/* extended status register */
-	ISExs_bufavail=		1<<7,
-};
-
-
-
-/* intel/sharp extended command set */
-static void
-ise_reset(void)
-{
-	flash.p[0x55] = mirror(0xff);	/* reset */
-}
-static void
-ise_id(void)
-{
-	ise_reset();
-	flash.p[0x555] = mirror(0x90);	/* uncover vendor info */
-	flash.manid = flash.p[00];
-	flash.devid = flash.p[01];
-	ise_reset();
-}
-static void
-ise_clearerror(void)
-{
-	flash.p[0x100] = mirror(0x50);
-
-}
-static void
-ise_error(int bank, ulong status)
-{
-	char err[64];
-
-	if(status & (ISEs_lockerr)){
-		sprint(err, "flash%d: block locked %lux", bank, status);
-		error(err);
-	}
-	if(status & (ISEs_powererr)){
-		sprint(err, "flash%d: low prog voltage %lux", bank, status);
-		error(err);
-	}
-	if(status & (ISEs_progerr|ISEs_eraseerr)){
-		sprint(err, "flash%d: i/o error %lux", bank, status);
-		error(err);
-	}
-}
-static void
-ise_erase(ulong addr)
-{
-	ulong start;
-	ulong x;
-
-	addr >>= 2;	/* convert to ulong offset */
-
-	flashprogpower(1);
-	flash.p[addr] = mirror(0x20);
-	flash.p[addr] = mirror(0xd0);
-	start = m->ticks;
-	do {
-		x = flash.p[addr];
-		if((x & mirror(ISEs_ready)) == mirror(ISEs_ready))
-			break;
-	} while(TK2MS(m->ticks-start) < 1500);
-	flashprogpower(0);
-
-	ise_clearerror();
-	ise_error(0, x);
-	ise_error(1, x>>16);
-
-	ise_reset();
-}
-/*
- *  the flash spec claimes writing goes faster if we use
- *  the write buffer.  We fill the write buffer and then
- *  issue the write request.  After the write request,
- *  subsequent reads will yield the status register.
- *
- *  returns the status, even on timeouts.
- *
- *  NOTE: I tried starting back to back buffered writes
- *	without reading the status in between, as the
- *	flowchart in the intel data sheet suggests.
- *	However, it always responded with an illegal
- *	command sequence, so I must be missing something.
- *	If someone learns better, please email me, though
- *	I doubt it will be much faster. -  [email protected]
- */
-static int
-ise_wbwrite(ulong *p, int n, ulong off, ulong baddr, ulong *status)
-{
-	ulong x, start;
-	int i;
-	int s;
-
-	/* put flash into write buffer mode */
-	start = m->ticks;
-	for(;;) {
-		s = splhi();
-		/* request write buffer mode */
-		flash.p[baddr] = mirror(0xe8);
-
-		/* look at extended status reg for status */
-		if((flash.p[baddr] & mirror(1<<7)) == mirror(1<<7))
-			break;
-		splx(s);
-
-		/* didn't work, keep trying for 2 secs */
-		if(TK2MS(m->ticks-start) > 2000){
-			/* set up to read status */
-			flash.p[baddr] = mirror(0x70);
-			*status = flash.p[baddr];
-			pprint("write buffered cmd timed out\n");
-			return -1;
-		}
-	}
-
-	/* fill write buffer */
-	flash.p[baddr] = mirror(n-1);
-	for(i = 0; i < n; i++)
-		flash.p[off+i] = *p++;
-
-	/* program from buffer */
-	flash.p[baddr] = mirror(0xd0);
-	splx(s);
-
-	/* wait till the programming is done */
-	start = m->ticks;
-	for(;;) {
-		x = *status = flash.p[baddr];	/* read status register */
-		if((x & mirror(ISEs_ready)) == mirror(ISEs_ready))
-			break;
-		if(TK2MS(m->ticks-start) > 2000){
-			pprint("read status timed out\n");
-			return -1;
-		}
-	}
-	if(x & mirror(ISEs_err))
-		return -1;
-
-	return n;
-}
-static void
-ise_write(void *a, long n, ulong off)
-{
-	ulong *p, *end;
-	int i, wbsize;
-	ulong x, baddr;
-
-	/* everything in terms of ulongs */
-	wbsize = flash.wbsize>>2;
-	baddr = blockstart(off);
-	off >>= 2;
-	n >>= 2;
-	p = a;
-	baddr >>= 2;
-
-	/* first see if write will succeed */
-	for(i = 0; i < n; i++)
-		if((p[i] & flash.p[off+i]) != p[i])
-			error("flash needs erase");
-
-	if(waserror()){
-		ise_reset();
-		flashprogpower(0);
-		nexterror();
-	}
-	flashprogpower(1);
-
-	/*
-	 *  use the first write to reach
- 	 *  a write buffer boundary.  the intel maunal
-	 *  says writes startng at wb boundaries
-	 *  maximize speed.
-	 */
-	i = wbsize - (off & (wbsize-1));
-	for(end = p + n; p < end;){
-		if(i > end - p)
-			i = end - p;
-
-		if(ise_wbwrite(p, i, off, baddr, &x) < 0)
-			break;
-
-		off += i;
-		p += i;
-		i = wbsize;
-	}
-
-	ise_clearerror();
-	ise_error(0, x);
-	ise_error(1, x>>16);
-
-	ise_reset();
-	flashprogpower(0);
-	poperror();
-}
-
-/* amd/fujitsu standard command set
- *	I don't have an amd chipset to work with
- *	so I'm loathe to write this yet.  If someone
- *	else does, please send it to me and I'll
- *	incorporate it -- [email protected]
- */
-static void
-afs_reset(void)
-{
-	flash.p[0x55] = mirror(0xf0);	/* reset */
-}
-static void
-afs_id(void)
-{
-	afs_reset();
-	flash.p[0x55] = mirror(0xf0);	/* reset */
-	flash.p[0x555] = mirror(0xaa);	/* query vendor block */
-	flash.p[0x2aa] = mirror(0x55);
-	flash.p[0x555] = mirror(0x90);
-	flash.manid = flash.p[00];
-	afs_reset();
-	flash.p[0x555] = mirror(0xaa);	/* query vendor block */
-	flash.p[0x2aa] = mirror(0x55);
-	flash.p[0x555] = mirror(0x90);
-	flash.devid = flash.p[01];
-	afs_reset();
-}
-static void
-afs_erase(ulong)
-{
-	error("amd/fujistsu erase not implemented");
-}
-static void
-afs_write(void*, long, ulong)
-{
-	error("amd/fujistsu write not implemented");
-}
--- a/sys/src/9/bitsy/devpcmcia.c
+++ /dev/null
@@ -1,713 +1,0 @@
-#include "u.h"
-#include "../port/lib.h"
-#include "mem.h"
-#include "dat.h"
-#include "fns.h"
-#include "../port/error.h"
-#include "io.h"
-
-/*
- * BUG: insertion events are detected by polling.
- *      Should look into the compaq docs to see if
- *      there's an interrupt for card insertion
- *      there's probably one.
- */
-
-static PCMslot	slot[2];
-int nslot = 2;
-
-struct {
-	Ref;
-	Rendez	event;		// where to wait for card events
-	int	evreader;	// there's a reader for events
-} pcmcia;
-
-enum
-{
-	Qdir,
-	Qmem,
-	Qattr,
-	Qctl,
-	Qevs,
-
-	Nents = 3,
-};
-
-enum
-{
-	/*
-	 *  configuration registers - they start at an offset in attribute
-	 *  memory found in the CIS.
-	 */
-	Rconfig=	0,
-	 Creset=	 (1<<7),	/*  reset device */
-	 Clevel=	 (1<<6),	/*  level sensitive interrupt line */
-};
-
-static void increfp(PCMslot*);
-static void decrefp(PCMslot*);
-static void slotmap(int, ulong, ulong, ulong);
-static void slottiming(int, int, int, int, int);
-static void slotinfo(Ureg*, void*);
-
-#define TYPE(c)		(((ulong)c->qid.path)&0xff)
-#define PATH(s,t)	(((s)<<8)|(t))
-
-static PCMslot*
-slotof(Chan *c)
-{
-	ulong x;
-
-	x = c->qid.path;
-	return slot + ((x>>8)&0xff);
-}
-
-static int
-pcmgen(Chan *c, char *, Dirtab * , int, int i, Dir *dp)
-{
-	int slotno;
-	Qid qid;
-	long len;
-	PCMslot *sp;
-
-	if(i == DEVDOTDOT){
-		mkqid(&qid, Qdir, 0, QTDIR);
-		devdir(c, qid, "#y", 0, eve, 0555, dp);
-		return 1;
-	}
-
-	if(i >= Nents*nslot + 1)
-		return -1;
-	if(i == Nents*nslot){
-		len = 0;
-		qid.path = PATH(0, Qevs);
-		snprint(up->genbuf, sizeof up->genbuf, "pcmevs");
-		goto found;
-	}
-
-	slotno = i/Nents;
-	sp = slot + slotno;
-	len = 0;
-	switch(i%Nents){
-	case 0:
-		qid.path = PATH(slotno, Qmem);
-		snprint(up->genbuf, sizeof up->genbuf, "pcm%dmem", slotno);
-		len = sp->memlen;
-		break;
-	case 1:
-		qid.path = PATH(slotno, Qattr);
-		snprint(up->genbuf, sizeof up->genbuf, "pcm%dattr", slotno);
-		len = sp->memlen;
-		break;
-	case 2:
-		qid.path = PATH(slotno, Qctl);
-		snprint(up->genbuf, sizeof up->genbuf, "pcm%dctl", slotno);
-		break;
-	}
-found:
-	qid.vers = 0;
-	qid.type = QTFILE;
-	devdir(c, qid, up->genbuf, len, eve, 0660, dp);
-	return 1;
-}
-
-static int
-bitno(ulong x)
-{
-	int i;
-
-	for(i = 0; i < 8*sizeof(x); i++)
-		if((1<<i) & x)
-			break;
-	return i;
-}
-
-/*
- *  set up the cards, default timing is 300 ns
- */
-static void
-pcmciareset(void)
-{
-	/* staticly map the whole area */
-	slotmap(0, PHYSPCM0REGS, PYHSPCM0ATTR, PYHSPCM0MEM);
-	slotmap(1, PHYSPCM1REGS, PYHSPCM1ATTR, PYHSPCM1MEM);
-
-	/* set timing to the default, 300 */
-	slottiming(0, 300, 300, 300, 0);
-	slottiming(1, 300, 300, 300, 0);
-
-	/* if there's no pcmcia sleave, no interrupts */
-	if(gpioregs->level & GPIO_OPT_IND_i)
-		return;
-
-	/* sleave there, interrupt on card removal */
-	intrenable(GPIOrising, bitno(GPIO_CARD_IND1_i), slotinfo, nil, "pcmcia slot1 status");
-	intrenable(GPIOrising, bitno(GPIO_CARD_IND0_i), slotinfo, nil, "pcmcia slot0 status");
-}
-
-static Chan*
-pcmciaattach(char *spec)
-{
-	return devattach('y', spec);
-}
-
-static Walkqid*
-pcmciawalk(Chan *c, Chan *nc, char **name, int nname)
-{
-	return devwalk(c, nc, name, nname, 0, 0, pcmgen);
-}
-
-static int
-pcmciastat(Chan *c, uchar *db, int n)
-{
-	return devstat(c, db, n, 0, 0, pcmgen);
-}
-
-static Chan*
-pcmciaopen(Chan *c, int omode)
-{
-	PCMslot *slotp;
-
-	if(c->qid.type & QTDIR){
-		if(omode != OREAD)
-			error(Eperm);
-	} else {
-		slotp = slotof(c);
-		increfp(slotp);
-	}
-	c->mode = openmode(omode);
-	c->flag |= COPEN;
-	c->offset = 0;
-	return c;
-}
-
-static void
-pcmciaclose(Chan *c)
-{
-	if(c->flag & COPEN)
-		if((c->qid.type & QTDIR) == 0)
-			decrefp(slotof(c));
-}
-
-/* a memmove using only bytes */
-static void
-memmoveb(uchar *to, uchar *from, int n)
-{
-	while(n-- > 0)
-		*to++ = *from++;
-}
-
-/* a memmove using only shorts & bytes */
-static void
-memmoves(uchar *to, uchar *from, int n)
-{
-	ushort *t, *f;
-
-	if((((ulong)to) & 1) || (((ulong)from) & 1) || (n & 1)){
-		while(n-- > 0)
-			*to++ = *from++;
-	} else {
-		n = n/2;
-		t = (ushort*)to;
-		f = (ushort*)from;
-		while(n-- > 0)
-			*t++ = *f++;
-	}
-}
-
-static long
-pcmread(void *a, long n, ulong off, PCMslot *sp, uchar *start, ulong len)
-{
-	rlock(sp);
-	if(waserror()){
-		runlock(sp);
-		nexterror();
-	}
-	if(off > len)
-		return 0;
-	if(off + n > len)
-		n = len - off;
-	memmoveb(a, start+off, n);
-	runlock(sp);
-	poperror();
-	return n;
-}
-
-static long
-pcmctlread(void *a, long n, ulong off, PCMslot *sp)
-{
-	char *p, *buf, *e;
-
-	buf = p = malloc(READSTR);
-	if(waserror()){
-		free(buf);
-		nexterror();
-	}
-	e = p + READSTR;
-
-	buf[0] = 0;
-	if(sp->occupied){
-		p = seprint(p, e, "occupied\n");
-		if(sp->verstr[0])
-			p = seprint(p, e, "version %s\n", sp->verstr);
-	}
-	USED(p);
-
-	n = readstr(off, a, n, buf);
-	free(buf);
-	poperror();
-	return n;
-}
-
-static int
-inserted(void *)
-{
-	if (slot[0].inserted)
-		return 1;
-	if (slot[1].inserted)
-		return 2;
-	return 0;
-}
-
-static long
-pcmevsread(void *a, long n, ulong off)
-{
-	int i;
-	char *buf = nil;
-	char *e;
-
-	if (pcmcia.evreader)
-		error("At most one reader");
-	off = 0;
-	pcmcia.evreader++;
-	if (waserror()){
-		free(buf);
-		pcmcia.evreader--;
-		nexterror();
-	}
-	while((i = inserted(nil)) == 0){
-		slotinfo(nil, nil);
-		tsleep(&pcmcia.event, inserted, nil, 500);
-	}
-	pcmcia.evreader--;
-	slot[i-1].inserted = 0;
-	buf = malloc(READSTR);
-	e = buf + READSTR;
-	buf[0] = 0;
-	seprint(buf, e, "#y/pcm%dctl\n", i-1);
-	n = readstr(off, a, n, buf);
-	free(buf);
-	poperror();
-	return n;
-}
-
-static long
-pcmciaread(Chan *c, void *a, long n, vlong off)
-{
-	PCMslot *sp;
-	ulong offset = off;
-
-	sp = slotof(c);
-
-	switch(TYPE(c)){
-	case Qdir:
-		return devdirread(c, a, n, 0, 0, pcmgen);
-	case Qmem:
-		if(!sp->occupied)
-			error(Eio);
-		return pcmread(a, n, offset, sp, sp->mem, 64*OneMeg);
-	case Qattr:
-		if(!sp->occupied)
-			error(Eio);
-		return pcmread(a, n, offset, sp, sp->attr, OneMeg);
-	case Qevs:
-		return pcmevsread(a, n, offset);
-	case Qctl:
-		return pcmctlread(a, n, offset, sp);
-	}
-	error(Ebadarg);
-	return -1;	/* not reached */
-}
-
-static long
-pcmwrite(void *a, long n, ulong off, PCMslot *sp, uchar *start, ulong len)
-{
-	rlock(sp);
-	if(waserror()){
-		runlock(sp);
-		nexterror();
-	}
-	if(off > len)
-		error(Eio);
-	if(off + n > len)
-		error(Eio);
-	memmoveb(start+off, a, n);
-	poperror();
-	runlock(sp);
-	return n;
-}
-
-static long
-pcmctlwrite(char *p, long n, ulong, PCMslot *sp)
-{
-	Cmdbuf *cmd;
-	uchar *cp;
-	int index, i, dtx;
-	Rune r;
-	DevConf cf;
-	Devport port;
-
-	cmd = parsecmd(p, n);
-	if(strcmp(cmd->f[0], "configure") == 0){
-		wlock(sp);
-		if(waserror()){
-			wunlock(sp);
-			nexterror();
-		}
-
-		/* see if driver exists and is configurable */
-		if(cmd->nf < 3)
-			error(Ebadarg);
-		p = cmd->f[1];
-		if(*p++ != '#')
-			error(Ebadarg);
-		p += chartorune(&r, p);
-		dtx = devno(r, 1);
-		if(dtx < 0)
-			error("no such device type");
-		if(devtab[dtx]->config == nil)
-			error("not a dynamicly configurable device");
-
-		/* set pcmcia card configuration */
-		index = 0;
-		if(sp->def != nil)
-			index = sp->def->index;
-		if(cmd->nf > 3){
-			i = atoi(cmd->f[3]);
-			if(i < 0 || i >= sp->nctab)
-				error("bad configuration index");
-			index = i;
-		}
-		if(sp->cfg[0].cpresent & (1<<Rconfig)){
-			cp = sp->attr;
-			cp += sp->cfg[0].caddr + Rconfig;
-			*cp = index;
-		}
-
-		/* configure device */
-		memset(&cf, 0, sizeof cf);
-		kstrdup(&cf.type, cmd->f[2]);
-		cf.mem = (ulong)sp->mem;
-		cf.ports = &port;
-		cf.ports[0].port = (ulong)sp->regs;
-		cf.ports[0].size = 0;
-		cf.nports = 1;
-		cf.itype = GPIOfalling;
-		cf.intnum = bitno(sp == slot ? GPIO_CARD_IRQ0_i : GPIO_CARD_IRQ1_i);
-		if(devtab[dtx]->config(1, p, &cf) < 0)
-			error("couldn't configure device");
-		sp->dev = devtab[dtx];
-		free(cf.type);
-		wunlock(sp);
-		poperror();
-
-		/* don't let the power turn off */
-		increfp(sp);
-	}else if(strcmp(cmd->f[0], "remove") == 0){
-		/* see if driver exists and is configurable */
-		if(cmd->nf != 2)
-			error(Ebadarg);
-		p = cmd->f[1];
-		if(*p++ != '#')
-			error(Ebadarg);
-		p += chartorune(&r, p);
-		dtx = devno(r, 1);
-		if(dtx < 0)
-			error("no such device type");
-		if(devtab[dtx]->config == nil)
-			error("not a dynamicly configurable device");
-		if(devtab[dtx]->config(0, p, nil) < 0)
-			error("couldn't unconfigure device");
-
-		/* let the power turn off */
-		decrefp(sp);
-	}
-	free(cmd);
-
-	return 0;
-}
-
-static long
-pcmciawrite(Chan *c, void *a, long n, vlong off)
-{
-	PCMslot *sp;
-	ulong offset = off;
-
-	sp = slotof(c);
-
-	switch(TYPE(c)){
-	case Qmem:
-		if(!sp->occupied)
-			error(Eio);
-		return pcmwrite(a, n, offset, sp, sp->mem, 64*OneMeg);
-	case Qattr:
-		if(!sp->occupied)
-			error(Eio);
-		return pcmwrite(a, n, offset, sp, sp->attr, OneMeg);
-	case Qevs:
-		break;
-	case Qctl:
-		if(!sp->occupied)
-			error(Eio);
-		return pcmctlwrite(a, n, offset, sp);
-	}
-	error(Ebadarg);
-	return -1;	/* not reached */
-}
-
-/*
- * power up/down pcmcia
- */
-void
-pcmciapower(int on)
-{
-	PCMslot *sp;
-
-	/* if there's no pcmcia sleave, no interrupts */
-iprint("pcmciapower %d\n", on);
-
-	if (on){
-		/* set timing to the default, 300 */
-		slottiming(0, 300, 300, 300, 0);
-		slottiming(1, 300, 300, 300, 0);
-
-		/* if there's no pcmcia sleave, no interrupts */
-		if(gpioregs->level & GPIO_OPT_IND_i){
-			iprint("pcmciapower: no sleeve\n");
-			return;
-		}
-
-		for (sp = slot; sp < slot + nslot; sp++){
-			if (sp->dev){
-				increfp(sp);
-				iprint("pcmciapower: %s\n", sp->verstr);
-				delay(10000);
-				if (sp->dev->power)
-					sp->dev->power(on);
-			}
-		}
-	}else{
-		if(gpioregs->level & GPIO_OPT_IND_i){
-			iprint("pcmciapower: no sleeve\n");
-			return;
-		}
-
-		for (sp = slot; sp < slot + nslot; sp++){
-			if (sp->dev){
-				if (sp->dev->power)
-					sp->dev->power(on);
-				decrefp(sp);
-			}
-			sp->occupied = 0;
-			sp->cisread = 0;
-		}
-		egpiobits(EGPIO_exp_nvram_power|EGPIO_exp_full_power, 0);
-	}
-}
-
-Dev pcmciadevtab = {
-	'y',
-	"pcmcia",
-
-	pcmciareset,
-	devinit,
-	devshutdown,
-	pcmciaattach,
-	pcmciawalk,
-	pcmciastat,
-	pcmciaopen,
-	devcreate,
-	pcmciaclose,
-	pcmciaread,
-	devbread,
-	pcmciawrite,
-	devbwrite,
-	devremove,
-	devwstat,
-	pcmciapower,
-};
-
-/* see what's there */
-static void
-slotinfo(Ureg*, void*)
-{
-	ulong x = gpioregs->level;
-
-	if(x & GPIO_OPT_IND_i){
-		/* no expansion pack */
-		slot[0].occupied = slot[0].inserted = 0;
-		slot[1].occupied = slot[1].inserted = 0;
-	} else {
-		if(x & GPIO_CARD_IND0_i){
-			slot[0].occupied = slot[0].inserted = 0;
-			slot[0].cisread = 0;
-		} else {
-			if(slot[0].occupied == 0){
-				slot[0].inserted = 1;
-				slot[0].cisread = 0;
-			}
-			slot[0].occupied = 1;
-		}
-		if(x & GPIO_CARD_IND1_i){
-			slot[1].occupied = slot[1].inserted = 0;
-			slot[1].cisread = 0;
-		} else {
-			if(slot[1].occupied == 0){
-				slot[1].inserted = 1;
-				slot[1].cisread = 0;
-			}
-			slot[1].occupied = 1;
-		}
-		if (inserted(nil))
-			wakeup(&pcmcia.event);
-	}
-}
-
-/* use reference card to turn cards on and off */
-static void
-increfp(PCMslot *sp)
-{
-	wlock(sp);
-	if(waserror()){
-		wunlock(sp);
-		nexterror();
-	}
-
-iprint("increfp %ld\n", sp - slot);
-	if(incref(&pcmcia) == 1){
-iprint("increfp full power\n");
-		egpiobits(EGPIO_exp_nvram_power|EGPIO_exp_full_power, 1);
-		delay(200);
-		egpiobits(EGPIO_pcmcia_reset, 1);
-		delay(100);
-		egpiobits(EGPIO_pcmcia_reset, 0);
-		delay(500);
-	}
-	incref(&sp->ref);
-	slotinfo(nil, nil);
-	if(sp->occupied && sp->cisread == 0) {
-		pcmcisread(sp);
-	}
-
-	wunlock(sp);
-	poperror();
-}
-
-static void
-decrefp(PCMslot *sp)
-{
-iprint("decrefp %ld\n", sp - slot);
-	decref(&sp->ref);
-	if(decref(&pcmcia) == 0){
-iprint("increfp power down\n");
-		egpiobits(EGPIO_exp_nvram_power|EGPIO_exp_full_power, 0);
-	}
-}
-
-/*
- *  the regions are staticly mapped
- */
-static void
-slotmap(int slotno, ulong regs, ulong attr, ulong mem)
-{
-	PCMslot *sp;
-
-	sp = &slot[slotno];
-	sp->slotno = slotno;
-	sp->memlen = 64*OneMeg;
-	sp->verstr[0] = 0;
-
-	sp->mem = mapmem(mem, 64*OneMeg, 0);
-	sp->memmap.ca = 0;
-	sp->memmap.cea = 64*MB;
-	sp->memmap.isa = (ulong)mem;
-	sp->memmap.len = 64*OneMeg;
-	sp->memmap.attr = 0;
-
-	sp->attr = mapmem(attr, OneMeg, 0);
-	sp->attrmap.ca = 0;
-	sp->attrmap.cea = MB;
-	sp->attrmap.isa = (ulong)attr;
-	sp->attrmap.len = OneMeg;
-	sp->attrmap.attr = 1;
-
-	sp->regs = mapspecial(regs, 32*1024);
-}
-
-PCMmap*
-pcmmap(int slotno, ulong, int, int attr)
-{
-	if(slotno > nslot)
-		panic("pcmmap");
-	if(attr)
-		return &slot[slotno].attrmap;
-	else
-		return &slot[slotno].memmap;
-}
-
-void
-pcmunmap(int, PCMmap*)
-{
-}
-
-/*
- *  setup card timings
- *    times are in ns
- *    count = ceiling[access-time/(2*3*T)] - 1, where T is a processor cycle
- *
- */
-static int
-ns2count(int ns)
-{
-	ulong y;
-
-	/* get 100 times cycle time */
-	y = 100000000/(conf.hz/1000);
-
-	/* get 10 times ns/(cycle*6) */
-	y = (1000*ns)/(6*y);
-
-	/* round up */
-	y += 9;
-	y /= 10;
-
-	/* subtract 1 */
-	return y-1;
-}
-static void
-slottiming(int slotno, int tio, int tattr, int tmem, int fast)
-{
-	ulong x;
-
-	x = 0;
-	if(fast)
-		x |= 1<<MECR_fast0;
-	x |= ns2count(tio) << MECR_io0;
-	x |= ns2count(tattr) << MECR_attr0;
-	x |= ns2count(tmem) << MECR_mem0;
-	if(slotno == 0){
-		x |= memconfregs->mecr & 0xffff0000;
-	} else {
-		x <<= 16;
-		x |= memconfregs->mecr & 0xffff;
-	}
-	memconfregs->mecr = x;
-}
-
-/* For compat with ../pc devices. Don't use it for the bitsy 
- */
-int
-pcmspecial(char*, ISAConf*)
-{
-	return -1;
-}
--- a/sys/src/9/bitsy/devpenmouse.c
+++ /dev/null
@@ -1,510 +1,0 @@
-#include	"u.h"
-#include	"../port/lib.h"
-#include	"mem.h"
-#include	"dat.h"
-#include	"fns.h"
-#include	"../port/error.h"
-
-#define	Image	IMAGE
-#include	<draw.h>
-#include	<memdraw.h>
-#include	<cursor.h>
-#include	"screen.h"
-#include	<ctype.h>
-
-typedef struct Mouseinfo	Mouseinfo;
-typedef struct Mousestate	Mousestate;
-typedef struct Calibration	Calibration;
-
-struct Calibration
-{
-	long	scalex;
-	long	scaley;
-	long	transx;
-	long	transy;
-} calibration = {
-	-16435,
-	23275,
-	253,
-	-23
-};
-
-/* The pen goes down, tracks some and goes up again.  The pen alone can
- * only simulate a one-button mouse.
- * To simulate a more-button (five, in this case) mouse, we use the four
- * keys along the the bottom of the iPaq as modifiers.
- * When one (or more) of the modifier keys is (are) down, a pen-down event
- * causes the corresponding bottons to go down.  If no modifier key is
- * depressed, a pen-down event is translated into a button-one down event.
- * Releasing the modifier keys has no direct effect.  The pen-up event is
- * the one that triggers mouse-up events.
- */
-struct Mousestate
-{
-	Point	xy;			/* mouse.xy */
-	int		buttons;	/* mouse.buttons */
-	int		modifiers;	/* state of physical buttons 2, 3, 4, 5 */
-	ulong	counter;	/* increments every update */
-	ulong	msec;		/* time of last event */
-};
-
-struct Mouseinfo
-{
-	Lock;
-	Mousestate;
-	ulong	lastcounter;	/* value when /dev/mouse read */
-	ulong	resize;
-	ulong	lastresize;
-	Rendez	r;
-	Ref;
-	QLock;
-	int	open;
-	int	inopen;
-	Mousestate 	queue[16];	/* circular buffer of click events */
-	int	ri;	/* read index into queue */
-	int	wi;	/* write index into queue */
-	uchar	qfull;	/* queue is full */
-};
-
-Mouseinfo	mouse;
-int		mouseshifted;
-
-int	penmousechanged(void*);
-static void	penmousetrack(int b, int x, int y);
-
-enum{
-	Qdir,
-	Qmouse,
-	Qmousein,
-	Qmousectl,
-};
-
-static Dirtab mousedir[]={
-	".",			{Qdir, 0, QTDIR},	0,	DMDIR|0555,
-	"mouse",		{Qmouse},		0,	0666,
-	"mousein",	{Qmousein},		0,	0220,
-	"mousectl",	{Qmousectl},		0,	0660,
-};
-
-enum
-{
-	CMcalibrate,
-	CMswap,
-};
-
-static Cmdtab penmousecmd[] =
-{
-	CMcalibrate,	"calibrate",	0,
-	CMswap,		"swap",		1,
-};
-
-static uchar buttonmap[8] = {
-	0, 1, 2, 3, 4, 5, 6, 7,
-};
-static int mouseswap;
-
-extern	Memimage*	gscreen;
-
-void
-penbutton(int up, int b) {
-	// button 5 (side button) immediately causes an event
-	// when the pen is down (button 1), other buttons also
-	// cause events, allowing chording with button 1
-	if ((b & 0x20) || (mouse.buttons & 0x1)) {
-		if (up)
-			mouse.buttons &= ~b;
-		else
-			mouse.buttons |= b;
-		penmousetrack(mouse.buttons, -1, -1);
-	} else {
-		if (up)
-			mouse.modifiers &= ~b;
-		else
-			mouse.modifiers |= b;
-	}
-}
-
-void
-pentrackxy(int x, int y) {
-
-	if (x == -1) {
-		/* pen up. associate with button 1 through 5 up */
-		mouse.buttons &= ~0x1f;
-	} else {
-		x = ((x*calibration.scalex)>>16) + calibration.transx;
-		y = ((y*calibration.scaley)>>16) + calibration.transy;
-		if ((mouse.buttons & 0x1f) == 0) {
-			if (mouse.modifiers)
-				mouse.buttons |= mouse.modifiers;
-			else
-				mouse.buttons |= 0x1;
-		}
-	}
-	penmousetrack(mouse.buttons, x, y);
-}
-
-static void
-penmousereset(void)
-{
-	if(!conf.monitor)
-		return;
-}
-
-static void
-penmouseinit(void)
-{
-	if(!conf.monitor)
-		return;
-}
-
-static Chan*
-penmouseattach(char *spec)
-{
-	if(!conf.monitor)
-		error(Egreg);
-	return devattach('m', spec);
-}
-
-static Walkqid*
-penmousewalk(Chan *c, Chan *nc, char **name, int nname)
-{
-	return devwalk(c, nc, name, nname, mousedir, nelem(mousedir), devgen);
-}
-
-static int
-penmousestat(Chan *c, uchar *db, int n)
-{
-	return devstat(c, db, n, mousedir, nelem(mousedir), devgen);
-}
-
-static Chan*
-penmouseopen(Chan *c, int omode)
-{
-	switch((ulong)c->qid.path){
-	case Qdir:
-		if(omode != OREAD)
-			error(Eperm);
-		break;
-	case Qmouse:
-		lock(&mouse);
-		if(mouse.open){
-			unlock(&mouse);
-			error(Einuse);
-		}
-		mouse.open = 1;
-		mouse.ref++;
-		unlock(&mouse);
-		break;
-	case Qmousein:
-	/*	error("disabled");	*/
-		lock(&mouse);
-		if(mouse.inopen){
-			unlock(&mouse);
-			error(Einuse);
-		}
-		mouse.inopen = 1;
-		unlock(&mouse);
-		break;
-	default:
-		incref(&mouse);
-	}
-	c->mode = openmode(omode);
-	c->flag |= COPEN;
-	c->offset = 0;
-	return c;
-}
-
-static Chan*
-penmousecreate(Chan*, char*, int, ulong)
-{
-	if(!conf.monitor)
-		error(Egreg);
-	error(Eperm);
-	return 0;
-}
-
-static void
-penmouseclose(Chan *c)
-{
-	if(c->qid.path != Qdir && (c->flag&COPEN)){
-		lock(&mouse);
-		if(c->qid.path == Qmouse)
-			mouse.open = 0;
-		else if(c->qid.path == Qmousein){
-			mouse.inopen = 0;
-			unlock(&mouse);
-			return;
-		}
-		--mouse.ref;
-		unlock(&mouse);
-	}
-}
-
-static long
-penmouseread(Chan *c, void *va, long n, vlong)
-{
-	char buf[4*12+1];
-	static int map[8] = {0, 4, 2, 6, 1, 5, 3, 7 };
-	Mousestate m;
-
-	switch((ulong)c->qid.path){
-	case Qdir:
-		return devdirread(c, va, n, mousedir, nelem(mousedir), devgen);
-
-	case Qmousectl:
-		sprint(buf, "c%11ld %11ld %11ld %11ld",
-				calibration.scalex, calibration.scaley,
-				calibration.transx, calibration.transy);
-		if(n > 1+4*12)
-			n = 1+4*12;
-		memmove(va, buf, n);
-		return n;
-
-	case Qmouse:
-		while(penmousechanged(0) == 0)
-			sleep(&mouse.r, penmousechanged, 0);
-
-		mouse.qfull = 0;
-
-		/*
-		 * No lock of the indices is necessary here, because ri is only
-		 * updated by us, and there is only one mouse reader
-		 * at a time.  I suppose that more than one process
-		 * could try to read the fd at one time, but such behavior
-		 * is degenerate and already violates the calling
-		 * conventions for sleep above.
-		 */
-		if(mouse.ri != mouse.wi) {
-			m = mouse.queue[mouse.ri];
-			if(++mouse.ri == nelem(mouse.queue))
-				mouse.ri = 0;
-		} else {
-			m = mouse.Mousestate;
-		}
-		sprint(buf, "m%11d %11d %11d %11lud",
-			m.xy.x, m.xy.y,
-			m.buttons,
-			m.msec);
-		mouse.lastcounter = m.counter;
-		if(n > 1+4*12)
-			n = 1+4*12;
-		if(mouse.lastresize != mouse.resize){
-			mouse.lastresize = mouse.resize;
-			buf[0] = 'r';
-		}
-		memmove(va, buf, n);
-		return n;
-	}
-	return 0;
-}
-
-static void
-setbuttonmap(char* map)
-{
-	int i, x, one, two, three;
-
-	one = two = three = 0;
-	for(i = 0; i < 3; i++){
-		if(map[i] == 0)
-			error(Ebadarg);
-		if(map[i] == '1'){
-			if(one)
-				error(Ebadarg);
-			one = 1<<i;
-		}
-		else if(map[i] == '2'){
-			if(two)
-				error(Ebadarg);
-			two = 1<<i;
-		}
-		else if(map[i] == '3'){
-			if(three)
-				error(Ebadarg);
-			three = 1<<i;
-		}
-		else
-			error(Ebadarg);
-	}
-	if(map[i])
-		error(Ebadarg);
-
-	memset(buttonmap, 0, 8);
-	for(i = 0; i < 8; i++){
-		x = 0;
-		if(i & 1)
-			x |= one;
-		if(i & 2)
-			x |= two;
-		if(i & 4)
-			x |= three;
-		buttonmap[x] = i;
-	}
-}
-
-static long
-penmousewrite(Chan *c, void *va, long n, vlong)
-{
-	char *p;
-	Point pt;
-	Cmdbuf *cb;
-	Cmdtab *ct;
-	char buf[64];
-	int b;
-
-	p = va;
-	switch((ulong)c->qid.path){
-	case Qdir:
-		error(Eisdir);
-
-	case Qmousectl:
-		cb = parsecmd(va, n);
-		if(waserror()){
-			free(cb);
-			nexterror();
-		}
-		ct = lookupcmd(cb, penmousecmd, nelem(penmousecmd));
-		switch(ct->index){
-		case CMswap:
-			if(mouseswap)
-				setbuttonmap("123");
-			else
-				setbuttonmap("321");
-			mouseswap ^= 1;
-			break;
-		case CMcalibrate:
-			if (cb->nf == 1) {
-				calibration.scalex = 1<<16;
-				calibration.scaley = 1<<16;
-				calibration.transx = 0;
-				calibration.transy = 0;
-			} else if (cb->nf == 5) {
-				if ((!isdigit(*cb->f[1]) && *cb->f[1] != '-')
-				 || (!isdigit(*cb->f[2]) && *cb->f[2] != '-')
-				 || (!isdigit(*cb->f[3]) && *cb->f[3] != '-')
-				 || (!isdigit(*cb->f[4]) && *cb->f[4] != '-'))
-					error("bad syntax in control file message");
-				calibration.scalex = strtol(cb->f[1], nil, 0);
-				calibration.scaley = strtol(cb->f[2], nil, 0);
-				calibration.transx = strtol(cb->f[3], nil, 0);
-				calibration.transy = strtol(cb->f[4], nil, 0);
-			} else
-				cmderror(cb, Ecmdargs);
-			break;
-		}
-		free(cb);
-		poperror();
-		return n;
-
-	case Qmousein:
-		if(n > sizeof buf-1)
-			n = sizeof buf -1;
-		memmove(buf, va, n);
-		buf[n] = 0;
-		p = 0;
-		pt.x = strtol(buf+1, &p, 0);
-		if(p == 0)
-			error(Eshort);
-		pt.y = strtol(p, &p, 0);
-		if(p == 0)
-			error(Eshort);
-		b = strtol(p, &p, 0);
-		penmousetrack(b, pt.x, pt.y);
-		return n;
-		
-	case Qmouse:
-		if(n > sizeof buf-1)
-			n = sizeof buf -1;
-		memmove(buf, va, n);
-		buf[n] = 0;
-		p = 0;
-		pt.x = strtoul(buf+1, &p, 0);
-		if(p == 0)
-			error(Eshort);
-		pt.y = strtoul(p, 0, 0);
-		qlock(&mouse);
-		if(ptinrect(pt, gscreen->r))
-			penmousetrack(mouse.buttons, pt.x, pt.y);
-		qunlock(&mouse);
-		return n;
-	}
-
-	error(Egreg);
-	return -1;
-}
-
-Dev penmousedevtab = {
-	'm',
-	"penmouse",
-
-	penmousereset,
-	penmouseinit,
-	devshutdown,
-	penmouseattach,
-	penmousewalk,
-	penmousestat,
-	penmouseopen,
-	penmousecreate,
-	penmouseclose,
-	penmouseread,
-	devbread,
-	penmousewrite,
-	devbwrite,
-	devremove,
-	devwstat,
-};
-
-/*
- *  called at interrupt level to update the structure and
- *  awaken any waiting procs.
- */
-static void
-penmousetrack(int b, int x, int y)
-{
-	int lastb;
-
-	if (x >= 0)
-		mouse.xy = Pt(x, y);
-	lastb = mouse.buttons;
-	mouse.buttons = b;
-	mouse.counter++;
-	mouse.msec = TK2MS(MACHP(0)->ticks);
-
-	/*
-	 * if the queue fills, we discard the entire queue and don't
-	 * queue any more events until a reader polls the mouse.
-	 */
-	if(!mouse.qfull && lastb != b) {	/* add to ring */
-		mouse.queue[mouse.wi] = mouse.Mousestate;
-		if(++mouse.wi == nelem(mouse.queue))
-			mouse.wi = 0;
-		if(mouse.wi == mouse.ri)
-			mouse.qfull = 1;
-	}
-	wakeup(&mouse.r);
-	drawactive(1);
-	resetsuspendtimer();
-}
-
-int
-penmousechanged(void*)
-{
-	return mouse.lastcounter != mouse.counter ||
-		mouse.lastresize != mouse.resize;
-}
-
-Point
-penmousexy(void)
-{
-	return mouse.xy;
-}
-
-/*
- * notify reader that screen has been resized (ha!)
- */
-void
-mouseresize(void)
-{
-	mouse.resize++;
-	wakeup(&mouse.r);
-}
-
--- a/sys/src/9/bitsy/devuda1341.c
+++ /dev/null
@@ -1,1401 +1,0 @@
-/*
- *	SAC/UDA 1341 Audio driver for the Bitsy
- *
- *	The Philips UDA 1341 sound chip is accessed through the Serial Audio
- *	Controller (SAC) of the StrongARM SA-1110.  This is much more a SAC
- *	controller than a UDA controller, but we have a devsac.c already.
- *
- *	The code morphs Nicolas Pitre's <[email protected]> Linux controller
- *	and Ken's Soundblaster controller.
- *
- *	The interface should be identical to that of devaudio.c
- */
-#include	"u.h"
-#include	"../port/lib.h"
-#include	"mem.h"
-#include	"dat.h"
-#include	"fns.h"
-#include	"../port/error.h"
-#include	"io.h"
-#include	"sa1110dma.h"
-
-static int debug = 0;
-
-/*
- * GPIO based L3 bus support.
- *
- * This provides control of Philips L3 type devices. 
- * GPIO lines are used for clock, data and mode pins.
- *
- * Note: The L3 pins are shared with I2C devices. This should not present
- * any problems as long as an I2C start sequence is not generated. This is
- * defined as a 1->0 transition on the data lines when the clock is high.
- * It is critical this code only allow data transitions when the clock
- * is low. This is always legal in L3.
- *
- * The IIC interface requires the clock and data pin to be LOW when idle. We
- * must make sure we leave them in this state.
- *
- * It appears the read data is generated on the falling edge of the clock
- * and should be held stable during the clock high time.
- */
-
-/* 
- * L3 setup and hold times (expressed in µs)
- */
-enum {
-	L3_AcquireTime =		1,
-	L3_ReleaseTime =		1,
-	L3_DataSetupTime =	(190+999)/1000,	/* 190 ns */
-	L3_DataHoldTime =		( 30+999)/1000,
-	L3_ModeSetupTime =	(190+999)/1000,
-	L3_ModeHoldTime =	(190+999)/1000,
-	L3_ClockHighTime =	(100+999)/1000,
-	L3_ClockLowTime =		(100+999)/1000,
-	L3_HaltTime =			(190+999)/1000,
-};
-
-/* UDA 1341 Registers */
-enum {
-	/* Status0 register */
-	UdaStatusDC		= 0,	/* 1 bit */
-	UdaStatusIF		= 1,	/* 3 bits */
-	UdaStatusSC		= 4,	/* 2 bits */
-	UdaStatusRST		= 6,	/* 1 bit */
-};
-
-enum {
-	/* Status1 register */
-	UdaStatusPC	= 0,	/* 2 bits */
-	UdaStatusDS	= 2,	/* 1 bit */
-	UdaStatusPDA	= 3,	/* 1 bit */
-	UdaStatusPAD	= 4,	/* 1 bit */
-	UdaStatusIGS	= 5,	/* 1 bit */
-	UdaStatusOGS	= 6,	/* 1 bit */
-};
-
-/*
- * UDA1341 L3 address and command types
- */
-
-enum {
-	UDA1341_DATA0 =	0,
-	UDA1341_DATA1,
-	UDA1341_STATUS,
-	UDA1341_L3Addr = 0x14,
-};
-
-typedef struct	AQueue	AQueue;
-typedef struct	Buf	Buf;
-typedef struct	IOstate IOstate;
-
-enum
-{
-	Qdir		= 0,
-	Qaudio,
-	Qvolume,
-	Qstatus,
-	Qstats,
-
-	Fmono		= 1,
-	Fin			= 2,
-	Fout			= 4,
-
-	Aclosed		= 0,
-	Aread,
-	Awrite,
-
-	Vaudio		= 0,
-	Vmic,
-	Vtreb,
-	Vbass,
-	Vspeed,
-	Vbufsize,
-	Vfilter,
-	Vinvert,
-	Nvol,
-
-	Bufsize		= 4* 1024,	/* 46 ms each */
-	Nbuf			= 10,			/* 1.5 seconds total */
-
-	Speed		= 44100,
-	Ncmd		= 50,			/* max volume command words */
-};
-
-enum {
-	Flushbuf = 0xe0000000,
-};
-
-/* System Clock -- according to the manual, it seems that when the UDA is
-    configured in non MSB/I2S mode, it uses a divisor of 256 to the 12.288MHz
-    clock.  The other rates are only supported in MSB mode, which should be 
-    implemented at some point */
-enum {
-	SC512FS = 0 << 2,
-	SC384FS = 1 << 2,
-	SC256FS = 2 << 2,
-	CLOCKMASK = 3 << 2,
-};
-
-/* Format */
-enum {
-	LSB16 =	1 << 1,
-	LSB18 =	2 << 1,
-	LSB20 =	3 << 1,
-	MSB =	4 << 1,
-	MSB16 =	5 << 1,
-	MSB18 =	6 << 1,
-	MSB20 =	7 << 1,
-};
-
-Dirtab
-audiodir[] =
-{
- 	".",			{Qdir, 0, QTDIR},	0,	DMDIR|0555,
-	"audio",		{Qaudio},			0,	0666,
-	"volume",		{Qvolume},		0,	0666,
-	"audiostatus",	{Qstatus},			0,	0444,
-	"audiostats",	{Qstats},			0,	0444,
-};
-
-struct	Buf
-{
-	uchar*	virt;
-	ulong	phys;
-	uint	nbytes;
-};
-
-struct	IOstate
-{
-	QLock;
-	Lock			ilock;
-	Rendez		vous;
-	Chan		*chan;		/* chan of open */
-	int			dma;			/* dma chan, alloc on open, free on close */
-	int			bufinit;		/* boolean, if buffers allocated */
-	Buf			buf[Nbuf];		/* buffers and queues */
-	volatile Buf	*current;		/* next dma to finish */
-	volatile Buf	*next;		/* next candidate for dma */
-	volatile Buf	*filling;		/* buffer being filled */
-/* to have defines just like linux — there's a real operating system */
-#define emptying filling
-};
-
-static	struct
-{
-	QLock;
-	int		amode;			/* Aclosed/Aread/Awrite for /audio */
-	int		intr;			/* boolean an interrupt has happened */
-	int		rivol[Nvol];	/* right/left input/output volumes */
-	int		livol[Nvol];
-	int		rovol[Nvol];
-	int		lovol[Nvol];
-	ulong	totcount;		/* how many bytes processed since open */
-	vlong	tottime;		/* time at which totcount bytes were processed */
-	IOstate	i;
-	IOstate	o;
-} audio;
-
-int	zerodma;	/* dma buffer used for sending zero */
-
-typedef struct Iostats Iostats;
-struct Iostats {
-	ulong	totaldma;
-	ulong	idledma;
-	ulong	faildma;
-	ulong	samedma;
-	ulong	empties;
-};
-
-static struct
-{
-	ulong	bytes;
-	Iostats	rx, tx;
-} iostats;
-
-static void setaudio(int in, int out, int left, int right, int value);
-static void setspeed(int in, int out, int left, int right, int value);
-static void setbufsize(int in, int out, int left, int right, int value);
-
-static	struct
-{
-	char*	name;
-	int		flag;
-	int		ilval;		/* initial  values */
-	int		irval;
-	void		(*setval)(int, int, int, int, int);
-} volumes[] =
-{
-[Vaudio]	{"audio",		Fout|Fmono,	 	80,		80,	setaudio },
-[Vmic]	{"mic",		Fin|Fmono,		  0,		  0,	nil },
-[Vtreb]	{"treb",		Fout|Fmono,		50,		50,	nil },
-[Vbass]	{"bass",		Fout|Fmono, 		50,		50,	nil },
-[Vspeed]	{"speed",		Fin|Fout|Fmono,	Speed,	Speed,	setspeed },
-[Vbufsize]	{"bufsize",	Fin|Fout|Fmono,	Bufsize,	Bufsize,	setbufsize },
-[Vfilter]	{"filter",		Fout|Fmono,		  0,		  0,	nil },
-[Vinvert]	{"invert",		Fin|Fout|Fmono,	  0,		  0,	nil },
-[Nvol]	{0}
-};
-
-static void	setreg(char *name, int val, int n);
-
-/*
- * Grab control of the IIC/L3 shared pins
- */
-static void
-L3_acquirepins(void)
-{
-	gpioregs->set = (GPIO_L3_MODE_o | GPIO_L3_SCLK_o | GPIO_L3_SDA_io);
-	gpioregs->direction |=  (GPIO_L3_MODE_o | GPIO_L3_SCLK_o | GPIO_L3_SDA_io);
-	microdelay(L3_AcquireTime);
-}
-
-/*
- * Release control of the IIC/L3 shared pins
- */
-static void
-L3_releasepins(void)
-{
-	gpioregs->direction &= ~(GPIO_L3_MODE_o | GPIO_L3_SCLK_o | GPIO_L3_SDA_io);
-	microdelay(L3_ReleaseTime);
-}
-
-/*
- * Initialize the interface
- */
-static void 
-L3_init(void)
-{
-	gpioregs->altfunc &= ~(GPIO_L3_SDA_io | GPIO_L3_SCLK_o | GPIO_L3_MODE_o);
-	L3_releasepins();
-}
-
-/*
- * Get a bit. The clock is high on entry and on exit. Data is read after
- * the clock low time has expired.
- */
-static int
-L3_getbit(void)
-{
-	int data;
-
-	gpioregs->clear = GPIO_L3_SCLK_o;
-	microdelay(L3_ClockLowTime);
-
-	data = (gpioregs->level & GPIO_L3_SDA_io) ? 1 : 0;
-
- 	gpioregs->set = GPIO_L3_SCLK_o;
-	microdelay(L3_ClockHighTime);
-
-	return data;
-}
-
-/*
- * Send a bit. The clock is high on entry and on exit. Data is sent only
- * when the clock is low (I2C compatibility).
- */
-static void
-L3_sendbit(int bit)
-{
-	gpioregs->clear = GPIO_L3_SCLK_o;
-
-	if (bit & 1)
-		gpioregs->set = GPIO_L3_SDA_io;
-	else
-		gpioregs->clear = GPIO_L3_SDA_io;
-
-	/* Assumes L3_DataSetupTime < L3_ClockLowTime */
-	microdelay(L3_ClockLowTime);
-
-	gpioregs->set = GPIO_L3_SCLK_o;
-	microdelay(L3_ClockHighTime);
-}
-
-/*
- * Send a byte. The mode line is set or pulsed based on the mode sequence
- * count. The mode line is high on entry and exit. The mod line is pulsed
- * before the second data byte and before ech byte thereafter.
- */
-static void
-L3_sendbyte(char data, int mode)
-{
-	int i;
-
-	switch(mode) {
-	case 0: /* Address mode */
-		gpioregs->clear = GPIO_L3_MODE_o;
-		break;
-	case 1: /* First data byte */
-		break;
-	default: /* Subsequent bytes */
-		gpioregs->clear = GPIO_L3_MODE_o;
-		microdelay(L3_HaltTime);
-		gpioregs->set = GPIO_L3_MODE_o;
-		break;
-	}
-
-	microdelay(L3_ModeSetupTime);
-
-	for (i = 0; i < 8; i++)
-		L3_sendbit(data >> i);
-
-	if (mode == 0)  /* Address mode */
-		gpioregs->set = GPIO_L3_MODE_o;
-
-	microdelay(L3_ModeHoldTime);
-}
-
-/*
- * Get a byte. The mode line is set or pulsed based on the mode sequence
- * count. The mode line is high on entry and exit. The mod line is pulsed
- * before the second data byte and before each byte thereafter. This
- * function is never valid with mode == 0 (address cycle) as the address
- * is always sent on the bus, not read.
- */
-static char
-L3_getbyte(int mode)
-{
-	char data = 0;
-	int i;
-
-	switch(mode) {
-	case 0: /* Address mode - never valid */
-		break;
-	case 1: /* First data byte */
-		break;
-	default: /* Subsequent bytes */
-		gpioregs->clear = GPIO_L3_MODE_o;
-		microdelay(L3_HaltTime);
-		gpioregs->set = GPIO_L3_MODE_o;
-		break;
-	}
-
-	microdelay(L3_ModeSetupTime);
-
-	for (i = 0; i < 8; i++)
-		data |= (L3_getbit() << i);
-
-	microdelay(L3_ModeHoldTime);
-
-	return data;
-}
-
-/*
- * Write data to a device on the L3 bus. The address is passed as well as
- * the data and length. The length written is returned. The register space
- * is encoded in the address (low two bits are set and device address is
- * in the upper 6 bits).
- */
-static int
-L3_write(uchar addr, uchar *data, int len)
-{
-	int mode = 0;
-	int bytes = len;
-
-	L3_acquirepins();
-	L3_sendbyte(addr, mode++);
-	while(len--)
-		L3_sendbyte(*data++, mode++);
-	L3_releasepins();
-	return bytes;
-}
-
-/*
- * Read data from a device on the L3 bus. The address is passed as well as
- * the data and length. The length read is returned. The register space
- * is encoded in the address (low two bits are set and device address is
- * in the upper 6 bits).
-
- * Commented out, not used
-static int
-L3_read(uchar addr, uchar *data, int len)
-{
-	int mode = 0;
-	int bytes = len;
-
-	L3_acquirepins();
-	L3_sendbyte(addr, mode++);
-	gpioregs->direction &= ~(GPIO_L3_SDA_io);
-	while(len--)
-		*data++ = L3_getbyte(mode++);
-	L3_releasepins();
-	return bytes;
-}
- */
-
-void
-audiomute(int on)
-{
-	egpiobits(EGPIO_audio_mute, on);
-}
-
-static	char	Emode[]		= "illegal open mode";
-static	char	Evolume[]	= "illegal volume specifier";
-
-static void
-bufinit(IOstate *b)
-{
-	int i;
-
-	if (debug) print("bufinit\n");
-	for (i = 0; i < Nbuf; i++) {
-		b->buf[i].virt = xalloc(Bufsize);
-		b->buf[i].phys = PADDR(b->buf[i].virt);
-		memset(b->buf[i].virt, 0xAA, Bufsize);
-	}
-	b->bufinit = 1;
-};
-
-static void
-setempty(IOstate *b)
-{
-	int i;
-
-	if (debug) print("setempty\n");
-	for (i = 0; i < Nbuf; i++) {
-		b->buf[i].nbytes = 0;
-	}
-	b->filling = b->buf;
-	b->current = b->buf;
-	b->next = b->buf;
-}
-
-static int
-audioqnotempty(void *x)
-{
-	IOstate *s = x;
-
-	return dmaidle(s->dma) || s->emptying != s->current;
-}
-
-static int
-audioqnotfull(void *x)
-{
-	IOstate *s = x;
-
-	return dmaidle(s->dma) || s->filling != s->current;
-}
-
-SSPregs *sspregs;
-MCPregs	*mcpregs;
-
-static void
-audioinit(void)
-{
-	/* Turn MCP operations off */
-	mcpregs = mapspecial(MCPREGS, sizeof(MCPregs));
-	mcpregs->status &= ~(1<<16);
-
-	sspregs = mapspecial(SSPREGS, sizeof(SSPregs));
-
-}
-
-uchar	status0[1]		= {0x02};
-uchar	status1[1]		= {0x80};
-uchar	data00[1]		= {0x00};		/* volume control, bits 0 – 5 */
-uchar	data01[1]		= {0x40};
-uchar	data02[1]		= {0x80};
-uchar	data0e0[2]	= {0xc0, 0xe0};
-uchar	data0e1[2]	= {0xc1, 0xe0};
-uchar	data0e2[2]	= {0xc2, 0xf2};
-/* there is no data0e3 */
-uchar	data0e4[2]	= {0xc4, 0xe0};
-uchar	data0e5[2]	= {0xc5, 0xe0};
-uchar	data0e6[2]	= {0xc6, 0xe3};
-
-static void
-enable(void)
-{
-	uchar	data[1];
-
-	L3_init();
-
-	/* Setup the uarts */
-	ppcregs->assignment &= ~(1<<18);
-
-	sspregs->control0 = 0;
-	sspregs->control0 = 0x031f; /* 16 bits, TI frames, serial clock rate 3 */
-	sspregs->control1 = 0x0020; /* ext clock */
-	sspregs->control0 = 0x039f;	/* enable */
-
-	/* Enable the audio power */
-	audioicpower(1);
-	egpiobits(EGPIO_codec_reset, 1);
-
-	setspeed(0, 0, 0, 0, volumes[Vspeed].ilval);
-
-	data[0] = status0[0] | 1 << UdaStatusRST;
-	L3_write(UDA1341_L3Addr | UDA1341_STATUS, data, 1 );
-	gpioregs->clear = EGPIO_codec_reset;
-	gpioregs->set = EGPIO_codec_reset;
-	/* write uda 1341 status[0] */
-	data[0] = status0[0];
-	L3_write(UDA1341_L3Addr | UDA1341_STATUS, data, 1);
-
-	if (debug)
-		print("enable:	status0	= 0x%2.2ux\n", data[0]);
-
-	L3_write(UDA1341_L3Addr | UDA1341_STATUS, status1, 1);
-	L3_write(UDA1341_L3Addr | UDA1341_DATA0, data02, 1);
-	L3_write(UDA1341_L3Addr | UDA1341_DATA0, data0e2, 2);
-	L3_write(UDA1341_L3Addr | UDA1341_DATA0, data0e6, 2 );
-
-	if (debug) {
-		print("enable:	status0	= 0x%2.2ux\n", data[0]);
-		print("enable:	status1	= 0x%2.2ux\n", status1[0]);
-		print("enable:	data02	= 0x%2.2ux\n", data02[0]);
-		print("enable:	data0e2	= 0x%4.4ux\n", data0e2[0] | data0e2[1]<<8);
-		print("enable:	data0e4	= 0x%4.4ux\n", data0e4[0] | data0e4[1]<<8);
-		print("enable:	data0e6	= 0x%4.4ux\n", data0e6[0] | data0e6[1]<<8);
-		print("enable:	sspregs->control0 = 0x%lux\n", sspregs->control0);
-		print("enable:	sspregs->control1 = 0x%lux\n", sspregs->control1);
-	}
-}
-
-static	void
-resetlevel(void)
-{
-	int i;
-
-	for(i=0; volumes[i].name; i++) {
-		audio.lovol[i] = volumes[i].ilval;
-		audio.rovol[i] = volumes[i].irval;
-		audio.livol[i] = volumes[i].ilval;
-		audio.rivol[i] = volumes[i].irval;
-	}
-}
-
-static void
-mxvolume(void) {
-	int *left, *right;
-
-	setspeed(0, 0, 0, 0, volumes[Vspeed].ilval);
-	if (!dmaidle(audio.i.dma) || !dmaidle(audio.o.dma))
-		L3_write(UDA1341_L3Addr | UDA1341_STATUS, status0, 1);
-
-	if(audio.amode & Aread){
-		left = audio.livol;
-		right = audio.rivol;
-		if (left[Vmic]+right[Vmic] == 0) {
-			/* Turn on automatic gain control (AGC) */
-			data0e4[1] |= 0x10;
-			L3_write(UDA1341_L3Addr | UDA1341_DATA0, data0e4, 2 );
-		} else {
-			int v;
-			/* Turn on manual gain control */
-			v = ((left[Vmic]+right[Vmic])*0x7f/200)&0x7f;
-			data0e4[1] &= ~0x13;
-			data0e5[1] &= ~0x1f;
-			data0e4[1] |= v & 0x3;
-			data0e5[0] |= (v & 0x7c)<<6;
-			data0e5[1] |= (v & 0x7c)>>2;
-			L3_write(UDA1341_L3Addr | UDA1341_DATA0, data0e4, 2 );
-			L3_write(UDA1341_L3Addr | UDA1341_DATA0, data0e5, 2 );
-		}
-		if (left[Vinvert]+right[Vinvert] == 0)
-			status1[0] &= ~0x04;
-		else
-			status1[0] |= 0x04;
-		L3_write(UDA1341_L3Addr | UDA1341_STATUS, status1, 1);
-		if (debug) {
-			print("mxvolume:	status1	= 0x%2.2ux\n", status1[0]);
-			print("mxvolume:	data0e4	= 0x%4.4ux\n", data0e4[0]|data0e4[0]<<8);
-			print("mxvolume:	data0e5	= 0x%4.4ux\n", data0e5[0]|data0e5[0]<<8);
-		}
-	}
-	if(audio.amode & Awrite){
-		left = audio.lovol;
-		right = audio.rovol;
-		data00[0] &= ~0x3f;
-		data00[0] |= ((200-left[Vaudio]-right[Vaudio])*0x3f/200)&0x3f;
-		if (left[Vtreb]+right[Vtreb] <= 100
-		 && left[Vbass]+right[Vbass] <= 100)
-			/* settings neutral */
-			data02[0] &= ~0x03;
-		else {
-			data02[0] |= 0x03;
-			data01[0] &= ~0x3f;
-			data01[0] |= ((left[Vtreb]+right[Vtreb]-100)*0x3/100)&0x03;
-			data01[0] |= (((left[Vbass]+right[Vbass]-100)*0xf/100)&0xf)<<2;
-		}
-		if (left[Vfilter]+right[Vfilter] == 0)
-			data02[0] &= ~0x10;
-		else
-			data02[0]|= 0x10;
-		if (left[Vinvert]+right[Vinvert] == 0)
-			status1[0] &= ~0x10;
-		else
-			status1[0] |= 0x10;
-		L3_write(UDA1341_L3Addr | UDA1341_STATUS, status1, 1);
-		L3_write(UDA1341_L3Addr | UDA1341_DATA0, data00, 1);
-		L3_write(UDA1341_L3Addr | UDA1341_DATA0, data01, 1);
-		L3_write(UDA1341_L3Addr | UDA1341_DATA0, data02, 1);
-		if (debug) {
-			print("mxvolume:	status1	= 0x%2.2ux\n", status1[0]);
-			print("mxvolume:	data00	= 0x%2.2ux\n", data00[0]);
-			print("mxvolume:	data01	= 0x%2.2ux\n", data01[0]);
-			print("mxvolume:	data02	= 0x%2.2ux\n", data02[0]);
-		}
-	}
-}
-
-static void
-setreg(char *name, int val, int n)
-{
-	uchar x[2];
-	int i;
-
-	x[0] = val;
-	x[1] = val>>8;
-
-	if(strcmp(name, "pause") == 0){
-		for(i = 0; i < n; i++)
-			microdelay(val);
-		return;
-	}
-
-	switch(n){
-	case 1:
-	case 2:
-		break;
-	default:
-		error("setreg");
-	}
-
-	if(strcmp(name, "status") == 0){
-		L3_write(UDA1341_L3Addr | UDA1341_STATUS, x, n);
-	} else if(strcmp(name, "data0") == 0){
-		L3_write(UDA1341_L3Addr | UDA1341_DATA0, x, n);
-	} else if(strcmp(name, "data1") == 0){
-		L3_write(UDA1341_L3Addr | UDA1341_DATA1, x, n);
-	} else
-		error("setreg");
-}
-
-static void
-outenable(void) {
-	/* turn on DAC, set output gain switch */
-	audioamppower(1);
-	audiomute(0);
-	status1[0] |= 0x41;
-	L3_write(UDA1341_L3Addr | UDA1341_STATUS, status1, 1);
-	/* set volume */
-	data00[0] |= 0xf;
-	L3_write(UDA1341_L3Addr | UDA1341_DATA0, data00, 1);
-	if (debug) {
-		print("outenable:	status1	= 0x%2.2ux\n", status1[0]);
-		print("outenable:	data00	= 0x%2.2ux\n", data00[0]);
-	}
-}
-
-static void
-outdisable(void) {
-	dmastop(audio.o.dma);
-	/* turn off DAC, clear output gain switch */
-	audiomute(1);
-	status1[0] &= ~0x41;
-	L3_write(UDA1341_L3Addr | UDA1341_STATUS, status1, 1);
-	if (debug) {
-		print("outdisable:	status1	= 0x%2.2ux\n", status1[0]);
-	}
-	audioamppower(0);
-}
-
-static void
-inenable(void) {
-	/* turn on ADC, set input gain switch */
-	status1[0] |= 0x22;
-	L3_write(UDA1341_L3Addr | UDA1341_STATUS, status1, 1);
-	if (debug) {
-		print("inenable:	status1	= 0x%2.2ux\n", status1[0]);
-	}
-}
-
-static void
-indisable(void) {
-	dmastop(audio.i.dma);
-	/* turn off ADC, clear input gain switch */
-	status1[0] &= ~0x22;
-	L3_write(UDA1341_L3Addr | UDA1341_STATUS, status1, 1);
-	if (debug) {
-		print("indisable:	status1	= 0x%2.2ux\n", status1[0]);
-	}
-}
-
-static void
-sendaudio(IOstate *s) {
-	/* interrupt routine calls this too */
-	int n;
-
-	if (debug > 1) print("#A: sendaudio\n");
-	ilock(&s->ilock);
-	if ((audio.amode &  Aread) && s->next == s->filling && dmaidle(s->dma)) {
-		// send an empty buffer to provide an input clock
-		zerodma |= dmastart(s->dma, Flushbuf, volumes[Vbufsize].ilval) & 0xff;
-		if (zerodma == 0)
-			if (debug) print("emptyfail\n");
-		iostats.tx.empties++;
-		iunlock(&s->ilock);
-		return;
-	}
-	while (s->next != s->filling) {
-		s->next->nbytes &= ~0x3;	/* must be a multiple of 4 */
-		if(s->next->nbytes) {
-			if ((n = dmastart(s->dma, s->next->phys, s->next->nbytes)) == 0) {
-				iostats.tx.faildma++;
-				break;
-			}
-			iostats.tx.totaldma++;
-			switch (n >> 8) {
-			case 1:
-				iostats.tx.idledma++;
-				break;
-			case 3:
-				iostats.tx.faildma++;
-				break;
-			}
-			if (debug) {
-				if (debug > 1)
-					print("dmastart @%p\n", s->next);
-				else
-					iprint("+");
-			}
-			s->next->nbytes = 0;
-		}
-		s->next++;
-		if (s->next == &s->buf[Nbuf])
-			s->next = &s->buf[0];
-	}
-	iunlock(&s->ilock);
-}
-
-static void
-recvaudio(IOstate *s) {
-	/* interrupt routine calls this too */
-	int n;
-
-	if (debug > 1) print("#A: recvaudio\n");
-	ilock(&s->ilock);
-	while (s->next != s->emptying) {
-		assert(s->next->nbytes == 0);
-		if ((n = dmastart(s->dma, s->next->phys, volumes[Vbufsize].ilval)) == 0) {
-			iostats.rx.faildma++;
-			break;
-		}
-		iostats.rx.totaldma++;
-		switch (n >> 8) {
-		case 1:
-			iostats.rx.idledma++;
-			break;
-		case 3:
-			iostats.rx.faildma++;
-			break;
-		}
-		if (debug) {
-			if (debug > 1)
-				print("dmastart @%p\n", s->next);
-			else
-				iprint("+");
-		}
-		s->next++;
-		if (s->next == &s->buf[Nbuf])
-			s->next = &s->buf[0];
-	}
-	iunlock(&s->ilock);
-}
-
-void
-audiopower(int flag) {
-	IOstate *s;
-
-	if (debug) {
-		iprint("audiopower %d\n", flag);
-	}
-	if (flag) {
-		/* power on only when necessary */
-		if (audio.amode) {
-			audioamppower(1);
-			audioicpower(1);
-			egpiobits(EGPIO_codec_reset, 1);
-			enable();
-			if (audio.amode & Aread) {
-				inenable();
-				s = &audio.i;
-				dmareset(s->dma, 1, 0, 4, 2, SSPRecvDMA, Port4SSP);
-				recvaudio(s);
-			}
-			if (audio.amode & Awrite) {
-				outenable();
-				s = &audio.o;
-				dmareset(s->dma, 0, 0, 4, 2, SSPXmitDMA, Port4SSP);
-				sendaudio(s);
-			}
-			mxvolume();
-		}
-	} else {
-		/* power off */
-		if (audio.amode & Aread)
-			indisable();
-		if (audio.amode & Awrite)
-			outdisable();
-		egpiobits(EGPIO_codec_reset, 0);
-		audioamppower(0);
-		audioicpower(0);
-	}
-}
-
-static void
-audiointr(void *x, ulong ndma) {
-	IOstate *s = x;
-
-	if (debug) {
-		if (debug > 1)
-			iprint("#A: audio interrupt @%p\n", s->current);
-		else
-			iprint("-");
-	}
-	if (s == &audio.i || (ndma & ~zerodma)) {
-		/* A dma, not of a zero buffer completed, update current
-		 * Only interrupt routine touches s->current
-		 */
-		s->current->nbytes = (s == &audio.i)? volumes[Vbufsize].ilval: 0;
-		s->current++;
-		if (s->current == &s->buf[Nbuf])
-			s->current = &s->buf[0];
-	}
-	if (ndma) {
-		if (s == &audio.o) {
-			zerodma &= ~ndma;
-			sendaudio(s);
-		} else if (s == &audio.i)
-			recvaudio(s);
-	}
-	wakeup(&s->vous);
-}
-
-static Chan*
-audioattach(char *param)
-{
-	return devattach('A', param);
-}
-
-static Walkqid*
-audiowalk(Chan *c, Chan *nc, char **name, int nname)
-{
- 	return devwalk(c, nc, name, nname, audiodir, nelem(audiodir), devgen);
-}
-
-static int
-audiostat(Chan *c, uchar *db, int n)
-{
- 	return devstat(c, db, n, audiodir, nelem(audiodir), devgen);
-}
-
-static Chan*
-audioopen(Chan *c, int mode)
-{
-	IOstate *s;
-	int omode = mode;
-
-	switch((ulong)c->qid.path) {
-	default:
-		error(Eperm);
-		break;
-
-	case Qstatus:
-	case Qstats:
-		if((omode&7) != OREAD)
-			error(Eperm);
-	case Qvolume:
-	case Qdir:
-		break;
-
-	case Qaudio:
-		omode = (omode & 0x7) + 1;
-		if (omode & ~(Aread | Awrite))
-			error(Ebadarg);
-		qlock(&audio);
-		if(audio.amode & omode){
-			qunlock(&audio);
-			error(Einuse);
-		}
-		enable();
-		memset(&iostats, 0, sizeof(iostats));
-		if (omode & Aread) {
-			inenable();
-			s = &audio.i;
-			if(s->bufinit == 0)
-				bufinit(s);
-			setempty(s);
-			s->emptying = &s->buf[Nbuf-1];
-			s->chan = c;
-			s->dma = dmaalloc(1, 0, 4, 2, SSPRecvDMA, Port4SSP, audiointr, (void*)s);
-			audio.amode |= Aread;
-		}
-		if (omode & (Aread|Awrite) && (audio.amode & Awrite) == 0) {
-			s = &audio.o;
-			if(s->bufinit == 0)
-				bufinit(s);
-			setempty(s);
-			s->chan = c;
-			s->dma = dmaalloc(0, 0, 4, 2, SSPXmitDMA, Port4SSP, audiointr, (void*)s);
-		}	
-		if (omode & Awrite) {
-			audio.amode |= Awrite;
-			outenable();
-		}
-		mxvolume();
-		if (audio.amode & Aread)
-			sendaudio(&audio.o);
-		qunlock(&audio);
-			
-		if (debug) print("open done\n");
-		break;
-	}
-	c = devopen(c, mode, audiodir, nelem(audiodir), devgen);
-	c->mode = openmode(mode);
-	c->flag |= COPEN;
-	c->offset = 0;
-
-	return c;
-}
-
-static void
-audioclose(Chan *c)
-{
-	IOstate *s;
-
-	switch((ulong)c->qid.path) {
-	default:
-		error(Eperm);
-		break;
-
-	case Qdir:
-	case Qvolume:
-	case Qstatus:
-	case Qstats:
-		break;
-
-	case Qaudio:
-		if (debug > 1) print("#A: close\n");
-		if(c->flag & COPEN) {
-			qlock(&audio);
-			if (audio.i.chan == c) {
-				/* closing the read end */
-				audio.amode &= ~Aread;
-				s = &audio.i;
-				qlock(s);
-				indisable();
-				setempty(s);
-				dmafree(s->dma);
-				qunlock(s);
-				if ((audio.amode & Awrite) == 0) {
-					s = &audio.o;
-					qlock(s);
-					while(waserror())
-						;
-					dmawait(s->dma);
-					poperror();
-					outdisable();
-					setempty(s);
-					dmafree(s->dma);
-					qunlock(s);
-				}
-			}
-			if (audio.o.chan == c) {
-				/* closing the write end */
-				audio.amode &= ~Awrite;
-				s = &audio.o;
-				qlock(s);
-				if (s->filling->nbytes) {
-					/* send remaining partial buffer */
-					s->filling++;
-					if (s->filling == &s->buf[Nbuf])
-						s->filling = &s->buf[0];
-					sendaudio(s);
-				}
-				while(waserror())
-					;
-				dmawait(s->dma);
-				poperror();
-				outdisable();
-				setempty(s);
-				if ((audio.amode & Aread) == 0)
-					dmafree(s->dma);
-				qunlock(s);
-			}
-			if (audio.amode == 0) {
-				/* turn audio off */
-				egpiobits(EGPIO_codec_reset, 0);
-				audioicpower(0);
-			}
-			qunlock(&audio);
-		}
-		break;
-	}
-}
-
-static long
-audioread(Chan *c, void *v, long n, vlong off)
-{
-	int liv, riv, lov, rov;
-	long m, n0;
-	char buf[300];
-	int j;
-	ulong offset = off;
-	char *p;
-	IOstate *s;
-
-	n0 = n;
-	p = v;
-	switch((ulong)c->qid.path) {
-	default:
-		error(Eperm);
-		break;
-
-	case Qdir:
-		return devdirread(c, p, n, audiodir, nelem(audiodir), devgen);
-
-	case Qaudio:
-		if (debug > 1) print("#A: read %ld\n", n);
-		if((audio.amode & Aread) == 0)
-			error(Emode);
-		s = &audio.i;
-		qlock(s);
-		if(waserror()){
-			qunlock(s);
-			nexterror();
-		}
-		while(n > 0) {
-			if(s->emptying->nbytes == 0) {
-				if (debug > 1) print("#A: emptied @%p\n", s->emptying);
-				recvaudio(s);
-				s->emptying++;
-				if (s->emptying == &s->buf[Nbuf])
-					s->emptying = s->buf;
-			}
-			/* wait if dma in progress */
-			while (!dmaidle(s->dma) && s->emptying == s->current) {
-				if (debug > 1) print("#A: sleep\n");
-				sleep(&s->vous, audioqnotempty, s);
-			}
-
-			m = (s->emptying->nbytes > n)? n: s->emptying->nbytes;
-			memmove(p, s->emptying->virt + volumes[Vbufsize].ilval - 
-					  s->emptying->nbytes, m);
-
-			s->emptying->nbytes -= m;
-			n -= m;
-			p += m;
-		}
-		poperror();
-		qunlock(s);
-		break;
-
-	case Qstatus:
-		buf[0] = 0;
-		snprint(buf, sizeof(buf), "bytes %lud\ntime %lld\n",
-			audio.totcount, audio.tottime);
-		return readstr(offset, p, n, buf);
-
-	case Qstats:
-		buf[0] = 0;
-		snprint(buf, sizeof(buf), 
-			    "bytes %lud\nRX dmas %lud, while idle %lud, while busy %lud, "
-			    "out-of-order %lud, empty dmas %lud\n"
-			    "TX dmas %lud, while idle %lud, while busy %lud, "
-			    "out-of-order %lud, empty dmas %lud\n",
-  			    iostats.bytes, iostats.rx.totaldma, iostats.rx.idledma, 
-			    iostats.rx.faildma, iostats.rx.samedma, iostats.rx.empties,
- 			    iostats.tx.totaldma, iostats.tx.idledma, 
-			    iostats.tx.faildma, iostats.tx.samedma, iostats.tx.empties);
-
-		return readstr(offset, p, n, buf);
-
-	case Qvolume:
-		j = 0;
-		buf[0] = 0;
-		for(m=0; volumes[m].name; m++){
-			if (m == Vaudio) {
-				liv = audio.livol[m];
-				riv = audio.rivol[m];
-				lov = audio.lovol[m];
-				rov = audio.rovol[m];
-			}
-			else {
-				lov = liv = volumes[m].ilval;
-				rov = riv = volumes[m].irval;
-			}
-	
-			j += snprint(buf+j, sizeof(buf)-j, "%s", volumes[m].name);
-			if((volumes[m].flag & Fmono) || liv==riv && lov==rov){
-				if((volumes[m].flag&(Fin|Fout))==(Fin|Fout) && liv==lov)
-					j += snprint(buf+j, sizeof(buf)-j, " %d", liv);
-				else{
-					if(volumes[m].flag & Fin)
-						j += snprint(buf+j, sizeof(buf)-j,
-							" in %d", liv);
-					if(volumes[m].flag & Fout)
-						j += snprint(buf+j, sizeof(buf)-j,
-							" out %d", lov);
-				}
-			}else{
-				if((volumes[m].flag&(Fin|Fout))==(Fin|Fout) &&
-				    liv==lov && riv==rov)
-					j += snprint(buf+j, sizeof(buf)-j,
-						" left %d right %d",
-						liv, riv);
-				else{
-					if(volumes[m].flag & Fin)
-						j += snprint(buf+j, sizeof(buf)-j,
-							" in left %d right %d",
-							liv, riv);
-					if(volumes[m].flag & Fout)
-						j += snprint(buf+j, sizeof(buf)-j,
-							" out left %d right %d",
-							lov, rov);
-				}
-			}
-			j += snprint(buf+j, sizeof(buf)-j, "\n");
-		}
-		return readstr(offset, p, n, buf);
-	}
-	return n0-n;
-}
-
-static void
-setaudio(int in, int out, int left, int right, int value)
-{
-	if (value < 0 || value > 100) 
-		error(Evolume);
-	if(left && out)
-		audio.lovol[Vaudio] = value;
-	if(left && in)
-		audio.livol[Vaudio] = value;
-	if(right && out)
-		audio.rovol[Vaudio] = value;
-	if(right && in)
-		audio.rivol[Vaudio] = value;
-}
-
-static void 
-setspeed(int, int, int, int, int speed)
-{
-	uchar	clock;
-
-	/* external clock configured for 44100 samples/sec */
-	switch (speed) {
-	case 32000:
-		/* 00 */
-		gpioregs->clear = GPIO_CLK_SET0_o|GPIO_CLK_SET1_o;
-		clock = SC384FS;	/* Only works in MSB mode! */
-		break;
-	case 48000:
-		/* 00 */
-		gpioregs->clear = GPIO_CLK_SET0_o|GPIO_CLK_SET1_o;
-		clock = SC256FS;
-		break;
-	default:
-		speed = 44100;
-	case 44100:
-		/* 01 */
-		gpioregs->set = GPIO_CLK_SET0_o;
-		gpioregs->clear = GPIO_CLK_SET1_o;
-		clock = SC256FS;
-		break;
-	case 8000:
-		/* 10 */
-		gpioregs->set = GPIO_CLK_SET1_o;
-		gpioregs->clear = GPIO_CLK_SET0_o;
-		clock = SC512FS;	/* Only works in MSB mode! */
-		break;
-	case 16000:
-		/* 10 */
-		gpioregs->set = GPIO_CLK_SET1_o;
-		gpioregs->clear = GPIO_CLK_SET0_o;
-		clock = SC256FS;
-		break;
-	case 11025:
-		/* 11 */
-		gpioregs->set = GPIO_CLK_SET0_o|GPIO_CLK_SET1_o;
-		clock = SC512FS;	/* Only works in MSB mode! */
-		break;
-	case 22050:
-		/* 11 */
-		gpioregs->set = GPIO_CLK_SET0_o|GPIO_CLK_SET1_o;
-		clock = SC256FS;
-		break;
-	}
-
-	/* Wait for the UDA1341 to wake up */
-	delay(100);
-
-	/* Reset the chip */
-	status0[0] &= ~CLOCKMASK;
-
-	status0[0] |=clock;
-	volumes[Vspeed].ilval = speed;
-}
-
-static void
-setbufsize(int, int, int, int, int value)
-{
-	if ((value % 8) != 0 || value < 8 || value >= Bufsize)
-		error(Ebadarg);
-	volumes[Vbufsize].ilval = value;
-}
-
-static long
-audiowrite(Chan *c, void *vp, long n, vlong)
-{
-	long m, n0;
-	int i, v, left, right, in, out;
-	char *p;
-	IOstate *a;
-	Cmdbuf *cb;
-
-	p = vp;
-	n0 = n;
-	switch((ulong)c->qid.path) {
-	default:
-		error(Eperm);
-		break;
-
-	case Qvolume:
-		v = Vaudio;
-		left = 1;
-		right = 1;
-		in = 1;
-		out = 1;
-		cb = parsecmd(p, n);
-		if(waserror()){
-			free(cb);
-			nexterror();
-		}
-
-		for(i = 0; i < cb->nf; i++){
-			/*
-			 * a number is volume
-			 */
-			if(cb->f[i][0] >= '0' && cb->f[i][0] <= '9') {
-				m = strtoul(cb->f[i], 0, 10);
-				if (volumes[v].setval)
-					volumes[v].setval(in, out, left, right, m);
-				goto cont0;
-			}
-
-			for(m=0; volumes[m].name; m++) {
-				if(strcmp(cb->f[i], volumes[m].name) == 0) {
-					v = m;
-					in = 1;
-					out = 1;
-					left = 1;
-					right = 1;
-					goto cont0;
-				}
-			}
-
-			if(strcmp(cb->f[i], "reset") == 0) {
-				resetlevel();
-				goto cont0;
-			}
-			if(strcmp(cb->f[i], "debug") == 0) {
-				debug = debug?0:1;
-				goto cont0;
-			}
-			if(strcmp(cb->f[i], "in") == 0) {
-				in = 1;
-				out = 0;
-				goto cont0;
-			}
-			if(strcmp(cb->f[i], "out") == 0) {
-				in = 0;
-				out = 1;
-				goto cont0;
-			}
-			if(strcmp(cb->f[i], "left") == 0) {
-				left = 1;
-				right = 0;
-				goto cont0;
-			}
-			if(strcmp(cb->f[i], "right") == 0) {
-				left = 0;
-				right = 1;
-				goto cont0;
-			}
-			if(strcmp(cb->f[i], "reg") == 0) {
-				if(cb->nf < 3)
-					error(Evolume);
-				setreg(cb->f[1], strtol(cb->f[2], 0, 0),
-					cb->nf == 4 ? strtol(cb->f[3], 0, 0):1);
-				return n0;
-			}
-			error(Evolume);
-			break;
-		cont0:;
-		}
-		mxvolume();
-		poperror();
-		free(cb);
-		break;
-
-	case Qaudio:
-		if (debug > 1) print("#A: write %ld\n", n);
-		if((audio.amode & Awrite) == 0)
-			error(Emode);
-		a = &audio.o;
-		qlock(a);
-		if(waserror()){
-			qunlock(a);
-			nexterror();
-		}
-		while(n > 0) {
-			/* wait if dma in progress */
-			while (!dmaidle(a->dma) && !zerodma && a->filling == a->current) {
-				if (debug > 1) print("#A: sleep\n");
-				sleep(&a->vous, audioqnotfull, a);
-			}
-			m = volumes[Vbufsize].ilval - a->filling->nbytes;
-			if(m > n)
-				m = n;
-			memmove(a->filling->virt + a->filling->nbytes, p, m);
-
-			a->filling->nbytes += m;
-			n -= m;
-			p += m;
-			if(a->filling->nbytes >= volumes[Vbufsize].ilval) {
-				if (debug > 1) print("#A: filled @%p\n", a->filling);
-				a->filling++;
-				if (a->filling == &a->buf[Nbuf])
-					a->filling = a->buf;
-				sendaudio(a);
-			}
-		}
-		poperror();
-		qunlock(a);
-		break;
-	}
-	return n0 - n;
-}
-
-Dev uda1341devtab = {
-	'A',
-	"audio",
-
-	devreset,
-	audioinit,
-	devshutdown,
-	audioattach,
-	audiowalk,
-	audiostat,
-	audioopen,
-	devcreate,
-	audioclose,
-	audioread,
-	devbread,
-	audiowrite,
-	devbwrite,
-	devremove,
-	devwstat,
-	audiopower,
-};
--- a/sys/src/9/bitsy/devµc.c
+++ /dev/null
@@ -1,407 +1,0 @@
-#include	"u.h"
-#include	"../port/lib.h"
-#include	"mem.h"
-#include	"dat.h"
-#include	"fns.h"
-#include	"io.h"
-#include	"../port/error.h"
-
-enum{
-	Qdir,
-	Qbacklight,
-	Qbattery,
-	Qbuttons,
-	Qcruft,
-	Qled,
-	Qversion,
-	Qpower,
-
-	/* command types */
-	BLversion=	0,
-	BLbuttons=	2,	/* button events */
-	BLtouch=		3,	/* read touch screen events */
-	BLled=		8,	/* turn LED on/off */
-	BLbattery=	9,	/* read battery status */
-	BLbacklight=	0xd,	/* backlight control */
-
-	SOF=	0x2,		/* start of frame */
-};
-
-Dirtab µcdir[]={
-	".",			{ Qdir, 0, QTDIR },	0,	DMDIR|0755,
-	"backlight",		{ Qbacklight, 0 },	0,	0664,
-	"battery",		{ Qbattery, 0 },		0,	0664,
-	"buttons",		{ Qbuttons, 0 },		0,	0664,
-	"cruft",		{ Qcruft, 0 },		0,	0664,
-	"led",			{ Qled, 0 },			0,	0664,
-	"version",		{ Qversion, 0 },		0,	0664,
-	"power",		{ Qpower, 0 },		0,	0600,
-};
-
-static struct µcontroller
-{
-	/* message being rcvd */
-	int		state;
-	uchar	buf[16+4];
-	uchar	n;
-
-	/* for messages that require acks */
-	QLock;
-	Rendez	r;
-
-	/* battery */
-	uchar	acstatus;
-	uchar	voltage;
-	ushort	batstatus;
-	uchar	batchem;
-
-	/* version string */
-	char	version[16+2];
-} ctlr;
-
-extern int landscape;
-
-int
-µcputc(Queue*, int ch)
-{
-	int i, len, b, up;
-	uchar cksum;
-	uchar *p;
-	static int samseq;
-	static int touching;	/* guard against something we call going spllo() */
-	static int buttoning;	/* guard against something we call going spllo() */
-
-	if(ctlr.n > sizeof(ctlr.buf))
-		panic("µcputc");
-
-	ctlr.buf[ctlr.n++] = (uchar)ch;
-
-	for(;;){
-		/* message hasn't started yet? */
-		if(ctlr.buf[0] != SOF){
-			p = memchr(ctlr.buf, SOF, ctlr.n);
-			if(p == nil){
-				ctlr.n = 0;
-				break;
-			} else {
-				ctlr.n -= p-ctlr.buf;
-				memmove(ctlr.buf, p, ctlr.n);
-			}
-		}
-	
-		/* whole msg? */
-		len = ctlr.buf[1] & 0xf;
-		if(ctlr.n < 3 || ctlr.n < len+3)
-			break;
-	
-		/* check the sum */
-		ctlr.buf[0] = ~SOF;	/* make sure we process this msg exactly once */
-		cksum = 0;
-		for(i = 1; i < len+2; i++)
-			cksum += ctlr.buf[i];
-		if(ctlr.buf[len+2] != cksum)
-			continue;
-	
-		/* parse resulting message */
-		p = ctlr.buf+2;
-		switch(ctlr.buf[1] >> 4){
-		case BLversion:
-			strncpy(ctlr.version, (char*)p, len);
-			ctlr.version[len] = '0';
-			strcat(ctlr.version, "\n");
-			wakeup(&ctlr.r);
-			break;
-		case BLbuttons:
-			if(len < 1 || buttoning)
-				break;
-			buttoning = 1;
-			b = p[0] & 0x7f;
-			up = p[0] & 0x80;
-
-			if(b <= 5){
-				/* like mouse buttons */
-				if(--b == 0)
-					b = 5;
-				penbutton(up, 1<<b);
-			}
-			buttoning = 0;
-			break;
-		case BLtouch:
-			if(touching)
-				break;
-			touching = 1;
-			if(len == 4) {
-				if (samseq++ > 10){
-					if (landscape)
-						pentrackxy((p[0]<<8)|p[1], (p[2]<<8)|p[3]);
-					else
-						pentrackxy((p[2]<<8)|p[3], (p[0]<<8)|p[1]);
-				}
-			} else {
-				samseq = 0;
-				pentrackxy(-1, -1);
-			}
-			touching = 0;
-			break;
-		case BLled:
-			wakeup(&ctlr.r);
-			break;
-		case BLbattery:
-			if(len >= 5){
-				ctlr.acstatus = p[0];
-				ctlr.voltage = (p[3]<<8)|p[2];
-				ctlr.batstatus = p[4];
-				ctlr.batchem = p[1];
-			}
-			wakeup(&ctlr.r);
-			break;
-		case BLbacklight:
-			wakeup(&ctlr.r);
-			break;
-		default:
-			print("unknown µc message: %ux", ctlr.buf[1] >> 4);
-			for(i = 0; i < len; i++)
-				print(" %ux", p[i]);
-			print("\n");
-			break;
-		}
-	
-		/* remove the message */
-		ctlr.n -= len+3;
-		memmove(ctlr.buf, &ctlr.buf[len+3], ctlr.n);
-	}
-	return 0;
-}
-
-static void
-_sendmsg(uchar id, uchar *data, int len)
-{
-	uchar buf[20];
-	uchar cksum;
-	uchar c;
-	uchar *p = buf;
-	int i;
-
-	/* create the message */
-	if(sizeof(buf) < len+4)
-		return;
-	cksum = (id<<4) | len;
-	*p++ = SOF;
-	*p++ = cksum;
-	for(i = 0; i < len; i++){
-		c = data[i];
-		cksum += c;
-		*p++ = c;
-	}
-	*p++ = cksum;
-
-	/* send the message - there should be a more generic way to do this */
-	serialµcputs(buf, p-buf);
-}
-
-/* the tsleep takes care of lost acks */
-static void
-sendmsgwithack(uchar id, uchar *data, int len)
-{
-	if(waserror()){
-		qunlock(&ctlr);
-		nexterror();
-	}
-	qlock(&ctlr);
-	_sendmsg(id, data, len);
-	tsleep(&ctlr.r, return0, 0, 100);
-	qunlock(&ctlr);
-	poperror();
-}
-
-static void
-sendmsg(uchar id, uchar *data, int len)
-{
-	if(waserror()){
-		qunlock(&ctlr);
-		nexterror();
-	}
-	qlock(&ctlr);
-	_sendmsg(id, data, len);
-	qunlock(&ctlr);
-	poperror();
-}
-
-void
-µcinit(void)
-{
-}
-
-static Chan*
-µcattach(char* spec)
-{
-	return devattach('r', spec);
-}
-
-static Walkqid*
-µcwalk(Chan *c, Chan *nc, char **name, int nname)
-{
-	return devwalk(c, nc, name, nname, µcdir, nelem(µcdir), devgen);
-}
-
-static int	 
-µcstat(Chan *c, uchar *dp, int n)
-{
-	return devstat(c, dp, n, µcdir, nelem(µcdir), devgen);
-}
-
-static Chan*
-µcopen(Chan* c, int omode)
-{
-	omode = openmode(omode);
-	if(!iseve())
-		error(Eperm);
-	return devopen(c, omode, µcdir, nelem(µcdir), devgen);
-}
-
-static void	 
-µcclose(Chan*)
-{
-}
-
-char*
-acstatus(int x)
-{
-	if(x)
-		return "attached";
-	else
-		return "detached";
-}
-
-char*
-batstatus(int x)
-{
-	switch(x){
-	case 1:		return "high";
-	case 2:		return "low";
-	case 4:		return "critical";
-	case 8:		return "charging";
-	case 0x80:	return "none";
-	}
-	return "ok";
-}
-
-static long	 
-µcread(Chan* c, void* a, long n, vlong off)
-{
-	char buf[64];
-
-	if(c->qid.path == Qdir)
-		return devdirread(c, a, n, µcdir, nelem(µcdir), devgen);
-
-	switch((ulong)c->qid.path){
-	case Qbattery:
-		sendmsgwithack(BLbattery, nil, 0);		/* send a battery request */
-		sprint(buf, "voltage: %d\nac: %s\nstatus: %s\n", ctlr.voltage,
-			acstatus(ctlr.acstatus),
-			batstatus(ctlr.batstatus));
-		return readstr(off, a, n, buf);
-	case Qversion:
-		sendmsgwithack(BLversion, nil, 0);		/* send a battery request */
-		return readstr(off, a, n, ctlr.version);
-	}
-	error(Ebadarg);
-	return 0;
-}
-
-#define PUTBCD(n,o) bcdclock[o] = (n % 10) | (((n / 10) % 10)<<4)
-
-static uchar lightdata[16];
-
-static long	 
-µcwrite(Chan* c, void* a, long n, vlong)
-{
-	Cmdbuf *cmd;
-	uchar data[16];
-	char str[64];
-	int i, j;
-	ulong l;
-	Rune r;
-	extern ulong resumeaddr[];
-	extern void power_resume(void);
-
-	if(c->qid.path == Qpower){
-		if(!iseve())
-			error(Eperm);
-		if(strncmp(a, "suspend", 7) == 0)
-			*resumeaddr = (ulong)power_resume;
-		else if(strncmp(a, "halt", 4) == 0)
-			*resumeaddr = 0;
-		else if(strncmp(a, "wakeup", 6) == 0){
-			cmd = parsecmd(a, n);
-			if (cmd->nf != 2)
-				error(Ebadarg);
-			l = strtoul(cmd->f[1], 0, 0);
-			rtcalarm(l);
-			return n;
-		} else
-			error(Ebadarg);
-		deepsleep();
-		return n;
-	}
-
-	cmd = parsecmd(a, n);
-	if(cmd->nf > 15)
-		error(Ebadarg);
-	for(i = 0; i < cmd->nf; i++)
-		data[i] = strtol(cmd->f[i], 0, 0);
-
-	switch((ulong)c->qid.path){
-	case Qled:
-		sendmsgwithack(BLled, data, cmd->nf);
-		break;
-	case Qbacklight:
-		memmove(lightdata, data, 16);
-		sendmsgwithack(BLbacklight, data, cmd->nf);
-		break;
-	case Qcruft:
-//		lcdtweak(cmd);
-		break;
-	default:
-		error(Ebadarg);
-	}
-	return n;
-}
-
-void 
-µcpower(int on)
-{
-	uchar data[16];
-	if (on == 0)
-		return;
-	/* maybe dangerous, not holding the lock */
-	if (lightdata[0] == 0){
-		data[0]= 2;
-		data[1]= 1;
-		data[2]= 0;
-	} else
-		memmove(data, lightdata, 16);
-	_sendmsg(0xd, data, 3);
-	wakeup(&ctlr.r);
-}
-
-Dev µcdevtab = {
-	'r',
-	"µc",
-
-	devreset,
-	µcinit,
-	devshutdown,
-	µcattach,
-	µcwalk,
-	µcstat,
-	µcopen,
-	devcreate,
-	µcclose,
-	µcread,
-	devbread,
-	µcwrite,
-	devbwrite,
-	devremove,
-	devwstat,
-};
--- a/sys/src/9/bitsy/etherif.h
+++ /dev/null
@@ -1,39 +1,0 @@
-enum {
-	MaxEther	= 24,
-	Ntypes		= 8,
-};
-
-typedef struct Ether Ether;
-struct Ether {
-	DevConf;
-
-	int	ctlrno;
-	int	tbdf;			/* type+busno+devno+funcno */
-	int	minmtu;
-	int 	maxmtu;
-	uchar	ea[Eaddrlen];
-	int	encry;
-
-	void	(*attach)(Ether*);	/* filled in by reset routine */
-	void	(*detach)(Ether*);
-	void	(*transmit)(Ether*);
-	void	(*interrupt)(Ureg*, void*);
-	long	(*ifstat)(Ether*, void*, long, ulong);
-	long 	(*ctl)(Ether*, void*, long); /* custom ctl messages */
-	void	(*power)(Ether*, int);	/* power on/off */
-	void	(*shutdown)(Ether*);	/* shutdown hardware before reboot */
-	void	*ctlr;
-
-	Queue*	oq;
-
-	Netif;
-};
-
-extern Block* etheriq(Ether*, Block*, int);
-extern void addethercard(char*, int(*)(Ether*));
-extern ulong ethercrc(uchar*, int);
-
-#define NEXT(x, l)	(((x)+1)%(l))
-#define PREV(x, l)	(((x) == 0) ? (l)-1: (x)-1)
-#define	HOWMANY(x, y)	(((x)+((y)-1))/(y))
-#define ROUNDUP(x, y)	(HOWMANY((x), (y))*(y))
--- a/sys/src/9/bitsy/etherwavelan.c
+++ /dev/null
@@ -1,49 +1,0 @@
-/* Bitsy pcmcia code for wavelan.c */
-
-#include "u.h"
-#include "../port/lib.h"
-#include "mem.h"
-#include "dat.h"
-#include "fns.h"
-#include "io.h"
-#include "../port/error.h"
-#include "../port/netif.h"
-#include "etherif.h"
-#include "../pc/wavelan.h"
-
-static int
-wavelanpcmciareset(Ether *ether)
-{
-	Ctlr *ctlr;
-
-	if((ctlr = malloc(sizeof(Ctlr))) == nil)
-		return -1;
-
-	ilock(ctlr);
-	ctlr->ctlrno = ether->ctlrno;
-
-	if (ether->ports == nil){
-		ether->ports = malloc(sizeof(Devport));
-		ether->ports[0].port = 0;
-		ether->ports[0].size = 0;
-		ether->nports= 1;
-	}
-	if (ether->ports[0].port==0)
-		ether->ports[0].port=WDfltIOB;
-	ctlr->iob = ether->ports[0].port;
-
-	if(wavelanreset(ether, ctlr) < 0){
-		iunlock(ctlr);
-		free(ctlr);
-		ether->ctlr = nil;
-		return -1;
-	}
-	iunlock(ctlr);
-	return 0;
-}
-
-void
-etherwavelanlink(void)
-{
-	addethercard("wavelan", wavelanpcmciareset);
-}
--- a/sys/src/9/bitsy/fns.h
+++ /dev/null
@@ -1,121 +1,0 @@
-#include "../port/portfns.h"
-
-void	audiopower(int);
-void	audioamppower(int);
-void	audioicpower(int);
-void	cacheflush(void);
-void	cachewb(void);
-void	cachewbaddr(void*);
-void	cachewbregion(ulong, int);
-ulong	cankaddr(ulong);
-void	dcacheinvalidate(void);
-int	cistrcmp(char*, char*);
-int	cistrncmp(char*, char*, int);
-void	clockinit(void);
-ulong	clockpower(int);
-int	cmpswap(long*, long, long);
-#define	coherence()
-#define cycles(x)	do{}while(0)
-#define	dcflush(a, b)
-void	delay(int);
-void	µcpower(int);
-void	deepsleep(void);
-void	dmainit(void);
-void	doze(void);
-void	egpiobits(ulong, int);
-void	evenaddr(ulong);
-ulong findva(ulong, ulong, ulong);
-void	flashprogpower(int);
-void	flushmmu(void);
-int	fpiarm(Ureg *ur);
-char*	getconf(char*);
-ulong	getcpuid(void);
-ulong	getfar(void);
-ulong	getfsr(void);
-ulong	getcontrol(void);
-ulong	getdac(void);
-ulong	getttb(void);
-void*	getlink(void);
-#define	getpgcolor(a)	0
-ulong	getsp(void);
-void	icacheinvalidate(void);
-void	idle(void);
-void	idlehands(void);
-uchar	inb(ulong);
-ushort	ins(ulong);
-void	inss(ulong, void*, int);
-ulong	inl(ulong);
-void	intrdisable(int, int, void (*)(Ureg*, void*), void*, char*);
-void	intrenable(int, int, void (*)(Ureg*, void*), void*, char*);
-void	irpower(int);
-#define kexit(a)
-#define	kmapinval()
-void	lcdpower(int);
-void	links(void);
-void*	mapmem(ulong, int, int);
-void	mappedIvecEnable(void);
-void	mappedIvecDisable(void);
-void*	mapspecial(ulong, int);
-void	meminit(void);
-void	mmuinit(void);
-void	mmuenable(void);
-void	mmudisable(void);
-void	mmuinvalidate(void);
-void	mmuinvalidateaddr(ulong);
-void	mmurestart(void);
-ulong	mmu_kaddr(ulong);
-ulong	mmu_paddr(ulong);
-int	µcputc(Queue*, int);
-void	noted(Ureg*, ulong);
-int	notify(Ureg*);
-void	outb(ulong, uchar);
-void	outs(ulong, ushort);
-void	outss(ulong, void*, int);
-void	outl(ulong, ulong);
-void	pcmciapower(int);
-void	pcmcisread(PCMslot*);
-int	pcmcistuple(int, int, int, void*, int);
-PCMmap*	pcmmap(int, ulong, int, int);
-void	pcmunmap(int, PCMmap*);
-void	penbutton(int, int);
-void	pentrackxy(int x, int y);
-void	power_down(void);
-void	powerinit(void);
-void	powerkproc(void*);
-#define	procrestore(p)
-void	procsave(Proc*);
-void	procsetup(Proc*);
-void	procfork(Proc*);
-void	putdac(ulong);
-void	putttb(ulong);
-void	putpid(ulong);
-void	resetsuspendtimer(void);
-void	rs232power(int);
-void	rtcalarm(ulong);
-void	sa1110_uartsetup(int);
-void	screeninit(void);
-void	screenpower(int);
-void	serialµcputs(uchar *str, int n);
-void	setr13(int, ulong*);
-uchar*	tarlookup(uchar*, char*, int*);
-void	timersinit(void);
-void	timeradd(Timer*);
-void	timerdel(Timer*);
-void	timerset(Tval);
-void	touser(void*);
-void	trapdump(char *tag);
-void	trapinit(void);
-void	trapresume(void);
-int	tas(void*);
-void	uartpower(int);
-int	uartstageoutput(Uart*);
-void	uartkick(void*);
-void	uartrecv(Uart*, char);
-#define	userureg(ur)	(((ur)->psr & PsrMask) == PsrMusr)
-void	vectors(void);
-void	vtable(void);
-void	wbflush(void);
-#define KADDR(a) (void*)mmu_kaddr((ulong)(a))
-#define PADDR(a) mmu_paddr((ulong)(a))
-
-#define	waserror()	(up->nerrlab++, setlabel(&up->errlab[up->nerrlab-1]))
--- a/sys/src/9/bitsy/fpi.c
+++ /dev/null
@@ -1,300 +1,0 @@
-/*
- * Floating Point Interpreter.
- * shamelessly stolen from an original by ark.
- */
-#include "fpi.h"
-
-void
-fpiround(Internal *i)
-{
-	unsigned long guard;
-
-	guard = i->l & GuardMask;
-	i->l &= ~GuardMask;
-	if(guard > (LsBit>>1) || (guard == (LsBit>>1) && (i->l & LsBit))){
-		i->l += LsBit;
-		if(i->l & CarryBit){
-			i->l &= ~CarryBit;
-			i->h++;
-			if(i->h & CarryBit){
-				if (i->h & 0x01)
-					i->l |= CarryBit;
-				i->l >>= 1;
-				i->h >>= 1;
-				i->e++;
-			}
-		}
-	}
-}
-
-static void
-matchexponents(Internal *x, Internal *y)
-{
-	int count;
-
-	count = y->e - x->e;
-	x->e = y->e;
-	if(count >= 2*FractBits){
-		x->l = x->l || x->h;
-		x->h = 0;
-		return;
-	}
-	if(count >= FractBits){
-		count -= FractBits;
-		x->l = x->h|(x->l != 0);
-		x->h = 0;
-	}
-	while(count > 0){
-		count--;
-		if(x->h & 0x01)
-			x->l |= CarryBit;
-		if(x->l & 0x01)
-			x->l |= 2;
-		x->l >>= 1;
-		x->h >>= 1;
-	}
-}
-
-static void
-shift(Internal *i)
-{
-	i->e--;
-	i->h <<= 1;
-	i->l <<= 1;
-	if(i->l & CarryBit){
-		i->l &= ~CarryBit;
-		i->h |= 0x01;
-	}
-}
-
-static void
-normalise(Internal *i)
-{
-	while((i->h & HiddenBit) == 0)
-		shift(i);
-}
-
-static void
-renormalise(Internal *i)
-{
-	if(i->e < -2 * FractBits)
-		i->e = -2 * FractBits;
-	while(i->e < 1){
-		i->e++;
-		if(i->h & 0x01)
-			i->l |= CarryBit;
-		i->h >>= 1;
-		i->l = (i->l>>1)|(i->l & 0x01);
-	}
-	if(i->e >= ExpInfinity)
-		SetInfinity(i);
-}
-
-void
-fpinormalise(Internal *x)
-{
-	if(!IsWeird(x) && !IsZero(x))
-		normalise(x);
-}
-
-void
-fpiadd(Internal *x, Internal *y, Internal *i)
-{
-	Internal *t;
-
-	i->s = x->s;
-	if(IsWeird(x) || IsWeird(y)){
-		if(IsNaN(x) || IsNaN(y))
-			SetQNaN(i);
-		else
-			SetInfinity(i);
-		return;
-	}
-	if(x->e > y->e){
-		t = x;
-		x = y;
-		y = t;
-	}
-	matchexponents(x, y);
-	i->e = x->e;
-	i->h = x->h + y->h;
-	i->l = x->l + y->l;
-	if(i->l & CarryBit){
-		i->h++;
-		i->l &= ~CarryBit;
-	}
-	if(i->h & (HiddenBit<<1)){
-		if(i->h & 0x01)
-			i->l |= CarryBit;
-		i->l = (i->l>>1)|(i->l & 0x01);
-		i->h >>= 1;
-		i->e++;
-	}
-	if(IsWeird(i))
-		SetInfinity(i);
-}
-
-void
-fpisub(Internal *x, Internal *y, Internal *i)
-{
-	Internal *t;
-
-	if(y->e < x->e
-	   || (y->e == x->e && (y->h < x->h || (y->h == x->h && y->l < x->l)))){
-		t = x;
-		x = y;
-		y = t;
-	}
-	i->s = y->s;
-	if(IsNaN(y)){
-		SetQNaN(i);
-		return;
-	}
-	if(IsInfinity(y)){
-		if(IsInfinity(x))
-			SetQNaN(i);
-		else
-			SetInfinity(i);
-		return;
-	}
-	matchexponents(x, y);
-	i->e = y->e;
-	i->h = y->h - x->h;
-	i->l = y->l - x->l;
-	if(i->l < 0){
-		i->l += CarryBit;
-		i->h--;
-	}
-	if(i->h == 0 && i->l == 0)
-		SetZero(i);
-	else while(i->e > 1 && (i->h & HiddenBit) == 0)
-		shift(i);
-}
-
-#define	CHUNK		(FractBits/2)
-#define	CMASK		((1<<CHUNK)-1)
-#define	HI(x)		((short)((x)>>CHUNK) & CMASK)
-#define	LO(x)		((short)(x) & CMASK)
-#define	SPILL(x)	((x)>>CHUNK)
-#define	M(x, y)		((long)a[x]*(long)b[y])
-#define	C(h, l)		(((long)((h) & CMASK)<<CHUNK)|((l) & CMASK))
-
-void
-fpimul(Internal *x, Internal *y, Internal *i)
-{
-	long a[4], b[4], c[7], f[4];
-
-	i->s = x->s^y->s;
-	if(IsWeird(x) || IsWeird(y)){
-		if(IsNaN(x) || IsNaN(y) || IsZero(x) || IsZero(y))
-			SetQNaN(i);
-		else
-			SetInfinity(i);
-		return;
-	}
-	else if(IsZero(x) || IsZero(y)){
-		SetZero(i);
-		return;
-	}
-	normalise(x);
-	normalise(y);
-	i->e = x->e + y->e - (ExpBias - 1);
-
-	a[0] = HI(x->h); b[0] = HI(y->h);
-	a[1] = LO(x->h); b[1] = LO(y->h);
-	a[2] = HI(x->l); b[2] = HI(y->l);
-	a[3] = LO(x->l); b[3] = LO(y->l);
-
-	c[6] =                               M(3, 3);
-	c[5] =                     M(2, 3) + M(3, 2) + SPILL(c[6]);
-	c[4] =           M(1, 3) + M(2, 2) + M(3, 1) + SPILL(c[5]);
-	c[3] = M(0, 3) + M(1, 2) + M(2, 1) + M(3, 0) + SPILL(c[4]);
-	c[2] = M(0, 2) + M(1, 1) + M(2, 0)           + SPILL(c[3]);
-	c[1] = M(0, 1) + M(1, 0)                     + SPILL(c[2]);
-	c[0] = M(0, 0)                               + SPILL(c[1]);
-
-	f[0] = c[0];
-	f[1] = C(c[1], c[2]);
-	f[2] = C(c[3], c[4]);
-	f[3] = C(c[5], c[6]);
-
-	if((f[0] & HiddenBit) == 0){
-		f[0] <<= 1;
-		f[1] <<= 1;
-		f[2] <<= 1;
-		f[3] <<= 1;
-		if(f[1] & CarryBit){
-			f[0] |= 1;
-			f[1] &= ~CarryBit;
-		}
-		if(f[2] & CarryBit){
-			f[1] |= 1;
-			f[2] &= ~CarryBit;
-		}
-		if(f[3] & CarryBit){
-			f[2] |= 1;
-			f[3] &= ~CarryBit;
-		}
-		i->e--;
-	}
-	i->h = f[0];
-	i->l = f[1];
-	if(f[2] || f[3])
-		i->l |= 1;
-	renormalise(i);
-}
-
-void
-fpidiv(Internal *x, Internal *y, Internal *i)
-{
-	i->s = x->s^y->s;
-	if(IsNaN(x) || IsNaN(y)
-	   || (IsInfinity(x) && IsInfinity(y)) || (IsZero(x) && IsZero(y))){
-		SetQNaN(i);
-		return;
-	}
-	else if(IsZero(x) || IsInfinity(y)){
-		SetInfinity(i);
-		return;
-	}
-	else if(IsInfinity(x) || IsZero(y)){
-		SetZero(i);
-		return;
-	}
-	normalise(x);
-	normalise(y);
-	i->h = 0;
-	i->l = 0;
-	i->e = y->e - x->e + (ExpBias + 2*FractBits - 1);
-	do{
-		if(y->h > x->h || (y->h == x->h && y->l >= x->l)){
-			i->l |= 0x01;
-			y->h -= x->h;
-			y->l -= x->l;
-			if(y->l < 0){
-				y->l += CarryBit;
-				y->h--;
-			}
-		}
-		shift(y);
-		shift(i);
-	}while ((i->h & HiddenBit) == 0);
-	if(y->h || y->l)
-		i->l |= 0x01;
-	renormalise(i);
-}
-
-int
-fpicmp(Internal *x, Internal *y)
-{
-	if(IsNaN(x) && IsNaN(y))
-		return 0;
-	if(IsInfinity(x) && IsInfinity(y))
-		return y->s - x->s;
-	if(x->e == y->e && x->h == y->h && x->l == y->l)
-		return y->s - x->s;
-	if(x->e < y->e
-	   || (x->e == y->e && (x->h < y->h || (x->h == y->h && x->l < y->l))))
-		return y->s ? 1: -1;
-	return x->s ? -1: 1;
-}
--- a/sys/src/9/bitsy/fpi.h
+++ /dev/null
@@ -1,61 +1,0 @@
-typedef long Word;
-typedef unsigned long Single;
-typedef struct {
-	unsigned long l;
-	unsigned long h;
-} Double;
-
-enum {
-	FractBits	= 28,
-	CarryBit	= 0x10000000,
-	HiddenBit	= 0x08000000,
-	MsBit		= HiddenBit,
-	NGuardBits	= 3,
-	GuardMask	= 0x07,
-	LsBit		= (1<<NGuardBits),
-
-	SingleExpBias	= 127,
-	SingleExpMax	= 255,
-	DoubleExpBias	= 1023,
-	DoubleExpMax	= 2047,
-
-	ExpBias		= DoubleExpBias,
-	ExpInfinity	= DoubleExpMax,
-};
-
-typedef struct {
-	unsigned char s;
-	short e;
-	long l;				/* 0000FFFFFFFFFFFFFFFFFFFFFFFFFGGG */
-	long h;				/* 0000HFFFFFFFFFFFFFFFFFFFFFFFFFFF */
-} Internal;
-
-#define IsWeird(n)	((n)->e >= ExpInfinity)
-#define	IsInfinity(n)	(IsWeird(n) && (n)->h == HiddenBit && (n)->l == 0)
-#define	SetInfinity(n)	((n)->e = ExpInfinity, (n)->h = HiddenBit, (n)->l = 0)
-#define IsNaN(n)	(IsWeird(n) && (((n)->h & ~HiddenBit) || (n)->l))
-#define	SetQNaN(n)	((n)->s = 0, (n)->e = ExpInfinity, 		\
-			 (n)->h = HiddenBit|(LsBit<<1), (n)->l = 0)
-#define IsZero(n)	((n)->e == 1 && (n)->h == 0 && (n)->l == 0)
-#define SetZero(n)	((n)->e = 1, (n)->h = 0, (n)->l = 0)
-
-/*
- * fpi.c
- */
-extern void fpiround(Internal *);
-extern void fpiadd(Internal *, Internal *, Internal *);
-extern void fpisub(Internal *, Internal *, Internal *);
-extern void fpimul(Internal *, Internal *, Internal *);
-extern void fpidiv(Internal *, Internal *, Internal *);
-extern int fpicmp(Internal *, Internal *);
-extern void fpinormalise(Internal*);
-
-/*
- * fpimem.c
- */
-extern void fpis2i(Internal *, void *);
-extern void fpid2i(Internal *, void *);
-extern void fpiw2i(Internal *, void *);
-extern void fpii2s(void *, Internal *);
-extern void fpii2d(void *, Internal *);
-extern void fpii2w(Word *, Internal *);
--- a/sys/src/9/bitsy/fpiarm.c
+++ /dev/null
@@ -1,570 +1,0 @@
-/*
- * this doesn't attempt to implement ARM floating-point properties
- * that aren't visible in the Inferno environment.
- * all arithmetic is done in double precision.
- * the FP trap status isn't updated.
- */
-#include	<u.h>
-#include	"../port/lib.h"
-#include	"mem.h"
-#include	"dat.h"
-#include	"fns.h"
-#include	"io.h"
-
-#include	<ureg.h>
-
-#include "fpi.h"
-
-/* undef this if correct kernel r13 isn't in Ureg;
- * check calculation in fpiarm below
- */
-
-
-#define	REG(ur, x) (*(long*)(((char*)(ur))+roff[(x)]))
-#define	FR(ufp, x) (*(Internal*)(ufp)->regs[(x)&7])
-
-typedef struct FP2 FP2;
-typedef struct FP1 FP1;
-
-struct FP2 {
-	char*	name;
-	void	(*f)(Internal, Internal, Internal*);
-};
-
-struct FP1 {
-	char*	name;
-	void	(*f)(Internal*, Internal*);
-};
-
-enum {
-	N = 1<<31,
-	Z = 1<<30,
-	C = 1<<29,
-	V = 1<<28,
-	REGPC = 15,
-};
-
-int	fpemudebug = 0;
-
-#undef OFR
-#define	OFR(X)	((ulong)&((Ureg*)0)->X)
-
-static	int	roff[] = {
-	OFR(r0), OFR(r1), OFR(r2), OFR(r3),
-	OFR(r4), OFR(r5), OFR(r6), OFR(r7),
-	OFR(r8), OFR(r9), OFR(r10), OFR(r11),
-	OFR(r12), OFR(r13), OFR(r14), OFR(pc),
-};
-
-static Internal fpconst[8] = {	/* indexed by op&7 */
-	/* s, e, l, h */
-	{0, 0x1, 0x00000000, 0x00000000}, /* 0.0 */
-	{0, 0x3FF, 0x00000000, 0x08000000},	/* 1.0 */
-	{0, 0x400, 0x00000000, 0x08000000},	/* 2.0 */
-	{0, 0x400, 0x00000000, 0x0C000000},	/* 3.0 */
-	{0, 0x401, 0x00000000, 0x08000000},	/* 4.0 */
-	{0, 0x401, 0x00000000, 0x0A000000},	/* 5.0 */
-	{0, 0x3FE, 0x00000000, 0x08000000},	/* 0.5 */
-	{0, 0x402, 0x00000000, 0x0A000000},	/* 10.0 */
-};
-
-/*
- * arm binary operations
- */
-
-static void
-fadd(Internal m, Internal n, Internal *d)
-{
-	(m.s == n.s? fpiadd: fpisub)(&m, &n, d);
-}
-
-static void
-fsub(Internal m, Internal n, Internal *d)
-{
-	m.s ^= 1;
-	(m.s == n.s? fpiadd: fpisub)(&m, &n, d);
-}
-
-static void
-fsubr(Internal m, Internal n, Internal *d)
-{
-	n.s ^= 1;
-	(n.s == m.s? fpiadd: fpisub)(&n, &m, d);
-}
-
-static void
-fmul(Internal m, Internal n, Internal *d)
-{
-	fpimul(&m, &n, d);
-}
-
-static void
-fdiv(Internal m, Internal n, Internal *d)
-{
-	fpidiv(&m, &n, d);
-}
-
-static void
-fdivr(Internal m, Internal n, Internal *d)
-{
-	fpidiv(&n, &m, d);
-}
-
-/*
- * arm unary operations
- */
-
-static void
-fmov(Internal *m, Internal *d)
-{
-	*d = *m;
-}
-
-static void
-fmovn(Internal *m, Internal *d)
-{
-	*d = *m;
-	d->s ^= 1;
-}
-
-static void
-fabsf(Internal *m, Internal *d)
-{
-	*d = *m;
-	d->s = 0;
-}
-
-static void
-frnd(Internal *m, Internal *d)
-{
-	short e;
-
-	(m->s? fsub: fadd)(fpconst[6], *m, d);
-	if(IsWeird(d))
-		return;
-	fpiround(d);
-	e = (d->e - ExpBias) + 1;
-	if(e <= 0)
-		SetZero(d);
-	else if(e > FractBits){
-		if(e < 2*FractBits)
-			d->l &= ~((1<<(2*FractBits - e))-1);
-	}else{
-		d->l = 0;
-		if(e < FractBits)
-			d->h &= ~((1<<(FractBits-e))-1);
-	}
-}
-
-static	FP1	optab1[16] = {	/* Fd := OP Fm */
-[0]	{"MOVF",	fmov},
-[1]	{"NEGF",	fmovn},
-[2]	{"ABSF",	fabsf},
-[3]	{"RNDF",	frnd},
-[4]	{"SQTF",	/*fsqt*/0},
-/* LOG, LGN, EXP, SIN, COS, TAN, ASN, ACS, ATN all `deprecated' */
-/* URD and NRM aren't implemented */
-};
-
-static	FP2	optab2[16] = {	/* Fd := Fn OP Fm */
-[0]	{"ADDF",	fadd},
-[1]	{"MULF",	fmul},
-[2]	{"SUBF",	fsub},
-[3]	{"RSUBF",	fsubr},
-[4]	{"DIVF",	fdiv},
-[5]	{"RDIVF",	fdivr},
-/* POW, RPW deprecated */
-[8]	{"REMF",	/*frem*/0},
-[9]	{"FMF",	fmul},	/* fast multiply */
-[10]	{"FDV",	fdiv},	/* fast divide */
-[11]	{"FRD",	fdivr},	/* fast reverse divide */
-/* POL deprecated */
-};
-
-static ulong
-fcmp(Internal *n, Internal *m)
-{
-	int i;
-	Internal rm, rn;
-
-	if(IsWeird(m) || IsWeird(n)){
-		/* BUG: should trap if not masked */
-		return V|C;
-	}
-	rn = *n;
-	rm = *m;
-	fpiround(&rn);
-	fpiround(&rm);
-	i = fpicmp(&rn, &rm);
-	if(i > 0)
-		return C;
-	else if(i == 0)
-		return C|Z;
-	else
-		return N;
-}
-
-static void
-fld(void (*f)(Internal*, void*), int d, ulong ea, int n, FPsave *ufp)
-{
-	void *mem;
-
-	mem = (void*)ea;
-	(*f)(&FR(ufp, d), mem);
-	if(fpemudebug)
-		print("MOV%c #%lux, F%d\n", n==8? 'D': 'F', ea, d);
-}
-
-static void
-fst(void (*f)(void*, Internal*), ulong ea, int s, int n, FPsave *ufp)
-{
-	Internal tmp;
-	void *mem;
-
-	mem = (void*)ea;
-	tmp = FR(ufp, s);
-	if(fpemudebug)
-		print("MOV%c	F%d,#%lux\n", n==8? 'D': 'F', s, ea);
-	(*f)(mem, &tmp);
-}
-
-static int
-condok(int cc, int c)
-{
-	switch(c){
-	case 0:	/* Z set */
-		return cc&Z;
-	case 1:	/* Z clear */
-		return (cc&Z) == 0;
-	case 2:	/* C set */
-		return cc&C;
-	case 3:	/* C clear */
-		return (cc&C) == 0;
-	case 4:	/* N set */
-		return cc&N;
-	case 5:	/* N clear */
-		return (cc&N) == 0;
-	case 6:	/* V set */
-		return cc&V;
-	case 7:	/* V clear */
-		return (cc&V) == 0;
-	case 8:	/* C set and Z clear */
-		return cc&C && (cc&Z) == 0;
-	case 9:	/* C clear or Z set */
-		return (cc&C) == 0 || cc&Z;
-	case 10:	/* N set and V set, or N clear and V clear */
-		return (~cc&(N|V))==0 || (cc&(N|V)) == 0;
-	case 11:	/* N set and V clear, or N clear and V set */
-		return (cc&(N|V))==N || (cc&(N|V))==V;
-	case 12:	/* Z clear, and either N set and V set or N clear and V clear */
-		return (cc&Z) == 0 && ((~cc&(N|V))==0 || (cc&(N|V))==0);
-	case 13:	/* Z set, or N set and V clear or N clear and V set */
-		return (cc&Z) || (cc&(N|V))==N || (cc&(N|V))==V;
-	case 14:	/* always */
-		return 1;
-	case 15:	/* never (reserved) */
-		return 0;
-	}
-	return 0;	/* not reached */
-}
-
-static void
-unimp(ulong pc, ulong op)
-{
-	char buf[60];
-
-	snprint(buf, sizeof(buf), "sys: fp: pc=%lux unimp fp 0x%.8lux", pc, op);
-	if(fpemudebug)
-		print("FPE: %s\n", buf);
-	error(buf);
-	/* no return */
-}
-
-static void
-fpemu(ulong pc, ulong op, Ureg *ur, FPsave *ufp)
-{
-	int rn, rd, tag, o;
-	long off;
-	ulong ea;
-	Internal tmp, *fm, *fn;
-
-	/* note: would update fault status here if we noted numeric exceptions */
-
-	/*
-	 * LDF, STF; 10.1.1
-	 */
-	if(((op>>25)&7) == 6){
-		if(op & (1<<22))
-			unimp(pc, op);	/* packed or extended */
-		rn = (op>>16)&0xF;
-		off = (op&0xFF)<<2;
-		if((op & (1<<23)) == 0)
-			off = -off;
-		ea = REG(ur, rn);
-		if(rn == REGPC)
-			ea += 8;
-		if(op & (1<<24))
-			ea += off;
-		rd = (op>>12)&7;
-		if(op & (1<<20)){
-			if(op & (1<<15))
-				fld(fpid2i, rd, ea, 8, ufp);
-			else
-				fld(fpis2i, rd, ea, 4, ufp);
-		}else{
-			if(op & (1<<15))
-				fst(fpii2d, ea, rd, 8, ufp);
-			else
-				fst(fpii2s, ea, rd, 4, ufp);
-		}
-		if((op & (1<<24)) == 0)
-			ea += off;
-		if(op & (1<<21))
-			REG(ur, rn) = ea;
-		return;
-	}
-
-	/*
-	 * CPRT/transfer, 10.3
-	 */
-	if(op & (1<<4)){
-		rd = (op>>12) & 0xF;
-
-		/*
-		 * compare, 10.3.1
-		 */
-		if(rd == 15 && op & (1<<20)){
-			rn = (op>>16)&7;
-			fn = &FR(ufp, rn);
-			if(op & (1<<3)){
-				fm = &fpconst[op&7];
-				tag = 'C';
-			}else{
-				fm = &FR(ufp, op&7);
-				tag = 'F';
-			}
-			switch((op>>21)&7){
-			default:
-				unimp(pc, op);
-			case 4:	/* CMF: Fn :: Fm */
-			case 6:	/* CMFE: Fn :: Fm (with exception) */
-				ur->psr &= ~(N|C|Z|V);
-				ur->psr |= fcmp(fn, fm);
-				break;
-			case 5:	/* CNF: Fn :: -Fm */
-			case 7:	/* CNFE: Fn :: -Fm (with exception) */
-				tmp = *fm;
-				tmp.s ^= 1;
-				ur->psr &= ~(N|C|Z|V);
-				ur->psr |= fcmp(fn, &tmp);
-				break;
-			}
-			if(fpemudebug)
-				print("CMPF	%c%d,F%ld =%lux\n", tag, rn, op&7, ur->psr>>28);
-			return;
-		}
-
-		/*
-		 * other transfer, 10.3
-		 */
-		switch((op>>20)&0xF){
-		default:
-			unimp(pc, op);
-		case 0:	/* FLT */
-			rn = (op>>16) & 7;
-			fpiw2i(&FR(ufp, rn), &REG(ur, rd));
-			if(fpemudebug)
-				print("MOVW[FD]	R%d, F%d\n", rd, rn);
-			break;
-		case 1:	/* FIX */
-			if(op & (1<<3))
-				unimp(pc, op);
-			rn = op & 7;
-			tmp = FR(ufp, rn);
-			fpii2w(&REG(ur, rd), &tmp);
-			if(fpemudebug)
-				print("MOV[FD]W	F%d, R%d =%ld\n", rn, rd, REG(ur, rd));
-			break;
-		case 2:	/* FPSR := Rd */
-			ufp->status = REG(ur, rd);
-			if(fpemudebug)
-				print("MOVW	R%d, FPSR\n", rd);
-			break;
-		case 3:	/* Rd := FPSR */
-			REG(ur, rd) = ufp->status;
-			if(fpemudebug)
-				print("MOVW	FPSR, R%d\n", rd);
-			break;
-		case 4:	/* FPCR := Rd */
-			ufp->control = REG(ur, rd);
-			if(fpemudebug)
-				print("MOVW	R%d, FPCR\n", rd);
-			break;
-		case 5:	/* Rd := FPCR */
-			REG(ur, rd) = ufp->control;
-			if(fpemudebug)
-				print("MOVW	FPCR, R%d\n", rd);
-			break;
-		}
-		return;
-	}
-
-	/*
-	 * arithmetic
-	 */
-
-	if(op & (1<<3)){	/* constant */
-		fm = &fpconst[op&7];
-		tag = 'C';
-	}else{
-		fm = &FR(ufp, op&7);
-		tag = 'F';
-	}
-	rd = (op>>12)&7;
-	o = (op>>20)&0xF;
-	if(op & (1<<15)){	/* monadic */
-		FP1 *fp;
-		fp = &optab1[o];
-		if(fp->f == nil)
-			unimp(pc, op);
-		if(fpemudebug)
-			print("%s	%c%ld,F%d\n", fp->name, tag, op&7, rd);
-		(*fp->f)(fm, &FR(ufp, rd));
-	} else {
-		FP2 *fp;
-		fp = &optab2[o];
-		if(fp->f == nil)
-			unimp(pc, op);
-		rn = (op>>16)&7;
-		if(fpemudebug)
-			print("%s	%c%ld,F%d,F%d\n", fp->name, tag, op&7, rn, rd);
-		(*fp->f)(*fm, FR(ufp, rn), &FR(ufp, rd));
-	}
-}
-
-void
-casemu(ulong pc, ulong op, Ureg *ur)
-{
-	ulong *rp, ro, rn, *rd;
-
-	USED(pc);
-
-	rp = (ulong*)ur;
-	ro = rp[op>>16 & 0x7];
-	rn = rp[op>>0 & 0x7];
-	rd = rp + (op>>12 & 0x7);
-	rp = (ulong*)*rd;
-	validaddr((ulong)rp, 4, 1);
-	splhi();
-	if(*rd = (*rp == ro))
-		*rp = rn;
-	spllo();
-}
-
-int ldrexvalid;
-
-void
-ldrex(ulong pc, ulong op, Ureg *ur)
-{
-	ulong *rp, *rd, *addr;
-
-	USED(pc);
-
-	rp = (ulong*)ur;
-	rd = rp + (op>>16 & 0x7);
-	addr = (ulong*)*rd;
-	validaddr((ulong)addr, 4, 0);
-	ldrexvalid = 1;
-	rp[op>>12 & 0x7] = *addr;
-	if(fpemudebug)
-		print("ldrex, r%ld = [r%ld]@0x%8.8p = 0x%8.8lux",
-			op>>12 & 0x7, op>>16 & 0x7, addr, rp[op>>12 & 0x7]);
-}
-
-void
-strex(ulong pc, ulong op, Ureg *ur)
-{
-	ulong *rp, rn, *rd, *addr;
-
-	USED(pc);
-
-	rp = (ulong*)ur;
-	rd = rp + (op>>16 & 0x7);
-	rn = rp[op>>0 & 0x7];
-	addr = (ulong*)*rd;
-	validaddr((ulong)addr, 4, 1);
-	splhi();
-	if(ldrexvalid){
-		if(fpemudebug)
-			print("strex valid, [r%ld]@0x%8.8p = r%ld = 0x%8.8lux",
-				op>>16 & 0x7, addr, op>>0 & 0x7, rn);
-		*addr = rn;
-		ldrexvalid = 0;
-		rp[op>>12 & 0x7] = 0;
-	}else{
-		if(fpemudebug)
-			print("strex invalid, r%ld = 1", op>>16 & 0x7);
-		rp[op>>12 & 0x7] = 1;
-	}
-	spllo();
-}
-
-struct {
-	ulong	opc;
-	ulong	mask;
-	void	(*f)(ulong, ulong, Ureg*);
-} specialopc[] = {
-	{ 0x01900f9f, 0x0ff00fff, ldrex },
-	{ 0x01800f90, 0x0ff00ff0, strex },
-	{ 0x0ed00100, 0x0ef08100, casemu },
-	{ 0x00000000, 0x00000000, nil }
-};
-
-
-/*
- * returns the number of FP instructions emulated
- */
-int
-fpiarm(Ureg *ur)
-{
-	ulong op, o;
-	FPsave *ufp;
-	int i, n;
-
-	if (up == nil)
-		panic("fpiarm not in a process");
-	ufp = &up->fpsave;
-		/* because all the state is in the proc structure,
-		 * it need not be saved/restored
-		 */
-	if(up->fpstate != FPactive) {
-//		assert(sizeof(Internal) == sizeof(ufp->regs[0]));
-		up->fpstate = FPactive;
-		ufp->control = 0;
-		ufp->status = (0x01<<28)|(1<<12);	/* software emulation, alternative C flag */
-		for(n = 0; n < 8; n++)
-			FR(ufp, n) = fpconst[0];
-	}
-	for(n=0; ;n++){
-		if(fpemudebug)
-			print("0x%8.8lux ", ur->pc);
-		validaddr(ur->pc, 4, 0);
-		op = *(ulong*)(ur->pc);
-		o = (op>>24) & 0xF;
-		if(condok(ur->psr, op>>28)){
-			for(i = 0; specialopc[i].f; i++)
-				if((op & specialopc[i].mask) == specialopc[i].opc)
-					break;
-			if(specialopc[i].f)
-				specialopc[i].f(ur->pc, op, ur);
-			else if((op & 0xF00) != 0x100 || o != 0xE && (o&~1) != 0xC)
-				break;
-			else
-				fpemu(ur->pc, op, ur, ufp);
-		}else if((op & 0xF00) != 0x100 || o != 0xE && (o&~1) != 0xC)
-			break;
-		ur->pc += 4;
-	}
-	if(fpemudebug) print("\n");
-	return n;
-}
--- a/sys/src/9/bitsy/fpimem.c
+++ /dev/null
@@ -1,136 +1,0 @@
-#include "fpi.h"
-
-/*
- * the following routines depend on memory format, not the machine
- */
-
-void
-fpis2i(Internal *i, void *v)
-{
-	Single *s = v;
-
-	i->s = (*s & 0x80000000) ? 1: 0;
-	if((*s & ~0x80000000) == 0){
-		SetZero(i);
-		return;
-	}
-	i->e = ((*s>>23) & 0x00FF) - SingleExpBias + ExpBias;
-	i->h = (*s & 0x007FFFFF)<<(1+NGuardBits);
-	i->l = 0;
-	if(i->e)
-		i->h |= HiddenBit;
-	else
-		i->e++;
-}
-
-void
-fpid2i(Internal *i, void *v)
-{
-	Double *d = v;
-
-	i->s = (d->h & 0x80000000) ? 1: 0;
-	i->e = (d->h>>20) & 0x07FF;
-	i->h = ((d->h & 0x000FFFFF)<<(4+NGuardBits))|((d->l>>25) & 0x7F);
-	i->l = (d->l & 0x01FFFFFF)<<NGuardBits;
-	if(i->e)
-		i->h |= HiddenBit;
-	else
-		i->e++;
-}
-
-void
-fpiw2i(Internal *i, void *v)
-{
-	Word w, word = *(Word*)v;
-	short e;
-
-	if(word < 0){
-		i->s = 1;
-		word = -word;
-	}
-	else
-		i->s = 0;
-	if(word == 0){
-		SetZero(i);
-		return;
-	}
-	if(word > 0){
-		for (e = 0, w = word; w; w >>= 1, e++)
-			;
-	} else
-		e = 32;
-	if(e > FractBits){
-		i->h = word>>(e - FractBits);
-		i->l = (word & ((1<<(e - FractBits)) - 1))<<(2*FractBits - e);
-	}
-	else {
-		i->h = word<<(FractBits - e);
-		i->l = 0;
-	}
-	i->e = (e - 1) + ExpBias;
-}
-
-void
-fpii2s(void *v, Internal *i)
-{
-	short e;
-	Single *s = (Single*)v;
-
-	fpiround(i);
-	if(i->h & HiddenBit)
-		i->h &= ~HiddenBit;
-	else
-		i->e--;
-	*s = i->s ? 0x80000000: 0;
-	e = i->e;
-	if(e < ExpBias){
-		if(e <= (ExpBias - SingleExpBias))
-			return;
-		e = SingleExpBias - (ExpBias - e);
-	}
-	else  if(e >= (ExpBias + (SingleExpMax-SingleExpBias))){
-		*s |= SingleExpMax<<23;
-		return;
-	}
-	else
-		e = SingleExpBias + (e - ExpBias);
-	*s |= (e<<23)|(i->h>>(1+NGuardBits));
-}
-
-void
-fpii2d(void *v, Internal *i)
-{
-	Double *d = (Double*)v;
-
-	fpiround(i);
-	if(i->h & HiddenBit)
-		i->h &= ~HiddenBit;
-	else
-		i->e--;
-	i->l = ((i->h & GuardMask)<<25)|(i->l>>NGuardBits);
-	i->h >>= NGuardBits;
-	d->h = i->s ? 0x80000000: 0;
-	d->h |= (i->e<<20)|((i->h & 0x00FFFFFF)>>4);
-	d->l = (i->h<<28)|i->l;
-}
-
-void
-fpii2w(Word *word, Internal *i)
-{
-	Word w;
-	short e;
-
-	fpiround(i);
-	e = (i->e - ExpBias) + 1;
-	if(e <= 0)
-		w = 0;
-	else if(e > 31)
-		w = 0x7FFFFFFF;
-	else if(e > FractBits)
-		w = (i->h<<(e - FractBits))|(i->l>>(2*FractBits - e));
-	else
-		w = i->h>>(FractBits-e);
-	if(i->s)
-		w = -w;
-	*word = w;
-}
--- a/sys/src/9/bitsy/gamma.c
+++ /dev/null
@@ -1,51 +1,0 @@
-#include <u.h>
-#include <libc.h>
-#include <stdio.h>
-
-double	gamma = 1.6;
-
-int
-remap5(int i)
-{
-	double v;
-
-	v = (double)i/31.0;
-	return 31.0*pow(v, gamma);
-}
-
-int
-remap6(int i)
-{
-	double v;
-
-	v = (double)i/63.0;
-	return 63.0*pow(v, gamma);
-}
-
-int
-remap(int i)
-{
-	int r, g, b;
-
-	b = i & 0x1F;
-	g = (i>>5) & 0x3F;
-	r = (i>>11) & 0x1F;
-	return (remap5(r)<<11) | (remap6(g)<<5) | (remap5(b)<<0);
-}
-
-void
-main(void)
-{
-	int i;
-
-	printf("/* gamma = %.2f */\n", gamma);
-	printf("ushort gamma[65536] = {\n");
-	for(i=0; i<65536; i++){
-		if((i%8) == 0)
-			printf("\t");
-		printf("0x%.4x, ", remap(i));
-		if((i%8) == 7)
-			printf("\n");
-	}
-	printf("};\n");
-}
--- a/sys/src/9/bitsy/gamma.h
+++ /dev/null
@@ -1,8195 +1,0 @@
-/* gamma = 1.60 */
-ushort gamma[65536] = {
-	0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0002, 0x0002, 
-	0x0003, 0x0004, 0x0005, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 
-	0x000a, 0x000b, 0x000c, 0x000e, 0x000f, 0x0010, 0x0011, 0x0013, 
-	0x0014, 0x0015, 0x0017, 0x0018, 0x001a, 0x001b, 0x001d, 0x001f, 
-	0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0002, 0x0002, 
-	0x0003, 0x0004, 0x0005, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 
-	0x000a, 0x000b, 0x000c, 0x000e, 0x000f, 0x0010, 0x0011, 0x0013, 
-	0x0014, 0x0015, 0x0017, 0x0018, 0x001a, 0x001b, 0x001d, 0x001f, 
-	0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0002, 0x0002, 
-	0x0003, 0x0004, 0x0005, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 
-	0x000a, 0x000b, 0x000c, 0x000e, 0x000f, 0x0010, 0x0011, 0x0013, 
-	0x0014, 0x0015, 0x0017, 0x0018, 0x001a, 0x001b, 0x001d, 0x001f, 
-	0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0002, 0x0002, 
-	0x0003, 0x0004, 0x0005, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 
-	0x000a, 0x000b, 0x000c, 0x000e, 0x000f, 0x0010, 0x0011, 0x0013, 
-	0x0014, 0x0015, 0x0017, 0x0018, 0x001a, 0x001b, 0x001d, 0x001f, 
-	0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0002, 0x0002, 
-	0x0003, 0x0004, 0x0005, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 
-	0x000a, 0x000b, 0x000c, 0x000e, 0x000f, 0x0010, 0x0011, 0x0013, 
-	0x0014, 0x0015, 0x0017, 0x0018, 0x001a, 0x001b, 0x001d, 0x001f, 
-	0x0020, 0x0020, 0x0020, 0x0020, 0x0021, 0x0021, 0x0022, 0x0022, 
-	0x0023, 0x0024, 0x0025, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 
-	0x002a, 0x002b, 0x002c, 0x002e, 0x002f, 0x0030, 0x0031, 0x0033, 
-	0x0034, 0x0035, 0x0037, 0x0038, 0x003a, 0x003b, 0x003d, 0x003f, 
-	0x0020, 0x0020, 0x0020, 0x0020, 0x0021, 0x0021, 0x0022, 0x0022, 
-	0x0023, 0x0024, 0x0025, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 
-	0x002a, 0x002b, 0x002c, 0x002e, 0x002f, 0x0030, 0x0031, 0x0033, 
-	0x0034, 0x0035, 0x0037, 0x0038, 0x003a, 0x003b, 0x003d, 0x003f, 
-	0x0020, 0x0020, 0x0020, 0x0020, 0x0021, 0x0021, 0x0022, 0x0022, 
-	0x0023, 0x0024, 0x0025, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 
-	0x002a, 0x002b, 0x002c, 0x002e, 0x002f, 0x0030, 0x0031, 0x0033, 
-	0x0034, 0x0035, 0x0037, 0x0038, 0x003a, 0x003b, 0x003d, 0x003f, 
-	0x0040, 0x0040, 0x0040, 0x0040, 0x0041, 0x0041, 0x0042, 0x0042, 
-	0x0043, 0x0044, 0x0045, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 
-	0x004a, 0x004b, 0x004c, 0x004e, 0x004f, 0x0050, 0x0051, 0x0053, 
-	0x0054, 0x0055, 0x0057, 0x0058, 0x005a, 0x005b, 0x005d, 0x005f, 
-	0x0040, 0x0040, 0x0040, 0x0040, 0x0041, 0x0041, 0x0042, 0x0042, 
-	0x0043, 0x0044, 0x0045, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 
-	0x004a, 0x004b, 0x004c, 0x004e, 0x004f, 0x0050, 0x0051, 0x0053, 
-	0x0054, 0x0055, 0x0057, 0x0058, 0x005a, 0x005b, 0x005d, 0x005f, 
-	0x0060, 0x0060, 0x0060, 0x0060, 0x0061, 0x0061, 0x0062, 0x0062, 
-	0x0063, 0x0064, 0x0065, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 
-	0x006a, 0x006b, 0x006c, 0x006e, 0x006f, 0x0070, 0x0071, 0x0073, 
-	0x0074, 0x0075, 0x0077, 0x0078, 0x007a, 0x007b, 0x007d, 0x007f, 
-	0x0060, 0x0060, 0x0060, 0x0060, 0x0061, 0x0061, 0x0062, 0x0062, 
-	0x0063, 0x0064, 0x0065, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 
-	0x006a, 0x006b, 0x006c, 0x006e, 0x006f, 0x0070, 0x0071, 0x0073, 
-	0x0074, 0x0075, 0x0077, 0x0078, 0x007a, 0x007b, 0x007d, 0x007f, 
-	0x0080, 0x0080, 0x0080, 0x0080, 0x0081, 0x0081, 0x0082, 0x0082, 
-	0x0083, 0x0084, 0x0085, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 
-	0x008a, 0x008b, 0x008c, 0x008e, 0x008f, 0x0090, 0x0091, 0x0093, 
-	0x0094, 0x0095, 0x0097, 0x0098, 0x009a, 0x009b, 0x009d, 0x009f, 
-	0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a1, 0x00a1, 0x00a2, 0x00a2, 
-	0x00a3, 0x00a4, 0x00a5, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 
-	0x00aa, 0x00ab, 0x00ac, 0x00ae, 0x00af, 0x00b0, 0x00b1, 0x00b3, 
-	0x00b4, 0x00b5, 0x00b7, 0x00b8, 0x00ba, 0x00bb, 0x00bd, 0x00bf, 
-	0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a1, 0x00a1, 0x00a2, 0x00a2, 
-	0x00a3, 0x00a4, 0x00a5, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 
-	0x00aa, 0x00ab, 0x00ac, 0x00ae, 0x00af, 0x00b0, 0x00b1, 0x00b3, 
-	0x00b4, 0x00b5, 0x00b7, 0x00b8, 0x00ba, 0x00bb, 0x00bd, 0x00bf, 
-	0x00c0, 0x00c0, 0x00c0, 0x00c0, 0x00c1, 0x00c1, 0x00c2, 0x00c2, 
-	0x00c3, 0x00c4, 0x00c5, 0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 
-	0x00ca, 0x00cb, 0x00cc, 0x00ce, 0x00cf, 0x00d0, 0x00d1, 0x00d3, 
-	0x00d4, 0x00d5, 0x00d7, 0x00d8, 0x00da, 0x00db, 0x00dd, 0x00df, 
-	0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e1, 0x00e1, 0x00e2, 0x00e2, 
-	0x00e3, 0x00e4, 0x00e5, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 
-	0x00ea, 0x00eb, 0x00ec, 0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x00f3, 
-	0x00f4, 0x00f5, 0x00f7, 0x00f8, 0x00fa, 0x00fb, 0x00fd, 0x00ff, 
-	0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e1, 0x00e1, 0x00e2, 0x00e2, 
-	0x00e3, 0x00e4, 0x00e5, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 
-	0x00ea, 0x00eb, 0x00ec, 0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x00f3, 
-	0x00f4, 0x00f5, 0x00f7, 0x00f8, 0x00fa, 0x00fb, 0x00fd, 0x00ff, 
-	0x0100, 0x0100, 0x0100, 0x0100, 0x0101, 0x0101, 0x0102, 0x0102, 
-	0x0103, 0x0104, 0x0105, 0x0105, 0x0106, 0x0107, 0x0108, 0x0109, 
-	0x010a, 0x010b, 0x010c, 0x010e, 0x010f, 0x0110, 0x0111, 0x0113, 
-	0x0114, 0x0115, 0x0117, 0x0118, 0x011a, 0x011b, 0x011d, 0x011f, 
-	0x0120, 0x0120, 0x0120, 0x0120, 0x0121, 0x0121, 0x0122, 0x0122, 
-	0x0123, 0x0124, 0x0125, 0x0125, 0x0126, 0x0127, 0x0128, 0x0129, 
-	0x012a, 0x012b, 0x012c, 0x012e, 0x012f, 0x0130, 0x0131, 0x0133, 
-	0x0134, 0x0135, 0x0137, 0x0138, 0x013a, 0x013b, 0x013d, 0x013f, 
-	0x0140, 0x0140, 0x0140, 0x0140, 0x0141, 0x0141, 0x0142, 0x0142, 
-	0x0143, 0x0144, 0x0145, 0x0145, 0x0146, 0x0147, 0x0148, 0x0149, 
-	0x014a, 0x014b, 0x014c, 0x014e, 0x014f, 0x0150, 0x0151, 0x0153, 
-	0x0154, 0x0155, 0x0157, 0x0158, 0x015a, 0x015b, 0x015d, 0x015f, 
-	0x0140, 0x0140, 0x0140, 0x0140, 0x0141, 0x0141, 0x0142, 0x0142, 
-	0x0143, 0x0144, 0x0145, 0x0145, 0x0146, 0x0147, 0x0148, 0x0149, 
-	0x014a, 0x014b, 0x014c, 0x014e, 0x014f, 0x0150, 0x0151, 0x0153, 
-	0x0154, 0x0155, 0x0157, 0x0158, 0x015a, 0x015b, 0x015d, 0x015f, 
-	0x0160, 0x0160, 0x0160, 0x0160, 0x0161, 0x0161, 0x0162, 0x0162, 
-	0x0163, 0x0164, 0x0165, 0x0165, 0x0166, 0x0167, 0x0168, 0x0169, 
-	0x016a, 0x016b, 0x016c, 0x016e, 0x016f, 0x0170, 0x0171, 0x0173, 
-	0x0174, 0x0175, 0x0177, 0x0178, 0x017a, 0x017b, 0x017d, 0x017f, 
-	0x0180, 0x0180, 0x0180, 0x0180, 0x0181, 0x0181, 0x0182, 0x0182, 
-	0x0183, 0x0184, 0x0185, 0x0185, 0x0186, 0x0187, 0x0188, 0x0189, 
-	0x018a, 0x018b, 0x018c, 0x018e, 0x018f, 0x0190, 0x0191, 0x0193, 
-	0x0194, 0x0195, 0x0197, 0x0198, 0x019a, 0x019b, 0x019d, 0x019f, 
-	0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a1, 0x01a1, 0x01a2, 0x01a2, 
-	0x01a3, 0x01a4, 0x01a5, 0x01a5, 0x01a6, 0x01a7, 0x01a8, 0x01a9, 
-	0x01aa, 0x01ab, 0x01ac, 0x01ae, 0x01af, 0x01b0, 0x01b1, 0x01b3, 
-	0x01b4, 0x01b5, 0x01b7, 0x01b8, 0x01ba, 0x01bb, 0x01bd, 0x01bf, 
-	0x01c0, 0x01c0, 0x01c0, 0x01c0, 0x01c1, 0x01c1, 0x01c2, 0x01c2, 
-	0x01c3, 0x01c4, 0x01c5, 0x01c5, 0x01c6, 0x01c7, 0x01c8, 0x01c9, 
-	0x01ca, 0x01cb, 0x01cc, 0x01ce, 0x01cf, 0x01d0, 0x01d1, 0x01d3, 
-	0x01d4, 0x01d5, 0x01d7, 0x01d8, 0x01da, 0x01db, 0x01dd, 0x01df, 
-	0x01e0, 0x01e0, 0x01e0, 0x01e0, 0x01e1, 0x01e1, 0x01e2, 0x01e2, 
-	0x01e3, 0x01e4, 0x01e5, 0x01e5, 0x01e6, 0x01e7, 0x01e8, 0x01e9, 
-	0x01ea, 0x01eb, 0x01ec, 0x01ee, 0x01ef, 0x01f0, 0x01f1, 0x01f3, 
-	0x01f4, 0x01f5, 0x01f7, 0x01f8, 0x01fa, 0x01fb, 0x01fd, 0x01ff, 
-	0x0200, 0x0200, 0x0200, 0x0200, 0x0201, 0x0201, 0x0202, 0x0202, 
-	0x0203, 0x0204, 0x0205, 0x0205, 0x0206, 0x0207, 0x0208, 0x0209, 
-	0x020a, 0x020b, 0x020c, 0x020e, 0x020f, 0x0210, 0x0211, 0x0213, 
-	0x0214, 0x0215, 0x0217, 0x0218, 0x021a, 0x021b, 0x021d, 0x021f, 
-	0x0220, 0x0220, 0x0220, 0x0220, 0x0221, 0x0221, 0x0222, 0x0222, 
-	0x0223, 0x0224, 0x0225, 0x0225, 0x0226, 0x0227, 0x0228, 0x0229, 
-	0x022a, 0x022b, 0x022c, 0x022e, 0x022f, 0x0230, 0x0231, 0x0233, 
-	0x0234, 0x0235, 0x0237, 0x0238, 0x023a, 0x023b, 0x023d, 0x023f, 
-	0x0240, 0x0240, 0x0240, 0x0240, 0x0241, 0x0241, 0x0242, 0x0242, 
-	0x0243, 0x0244, 0x0245, 0x0245, 0x0246, 0x0247, 0x0248, 0x0249, 
-	0x024a, 0x024b, 0x024c, 0x024e, 0x024f, 0x0250, 0x0251, 0x0253, 
-	0x0254, 0x0255, 0x0257, 0x0258, 0x025a, 0x025b, 0x025d, 0x025f, 
-	0x0260, 0x0260, 0x0260, 0x0260, 0x0261, 0x0261, 0x0262, 0x0262, 
-	0x0263, 0x0264, 0x0265, 0x0265, 0x0266, 0x0267, 0x0268, 0x0269, 
-	0x026a, 0x026b, 0x026c, 0x026e, 0x026f, 0x0270, 0x0271, 0x0273, 
-	0x0274, 0x0275, 0x0277, 0x0278, 0x027a, 0x027b, 0x027d, 0x027f, 
-	0x0280, 0x0280, 0x0280, 0x0280, 0x0281, 0x0281, 0x0282, 0x0282, 
-	0x0283, 0x0284, 0x0285, 0x0285, 0x0286, 0x0287, 0x0288, 0x0289, 
-	0x028a, 0x028b, 0x028c, 0x028e, 0x028f, 0x0290, 0x0291, 0x0293, 
-	0x0294, 0x0295, 0x0297, 0x0298, 0x029a, 0x029b, 0x029d, 0x029f, 
-	0x02a0, 0x02a0, 0x02a0, 0x02a0, 0x02a1, 0x02a1, 0x02a2, 0x02a2, 
-	0x02a3, 0x02a4, 0x02a5, 0x02a5, 0x02a6, 0x02a7, 0x02a8, 0x02a9, 
-	0x02aa, 0x02ab, 0x02ac, 0x02ae, 0x02af, 0x02b0, 0x02b1, 0x02b3, 
-	0x02b4, 0x02b5, 0x02b7, 0x02b8, 0x02ba, 0x02bb, 0x02bd, 0x02bf, 
-	0x02c0, 0x02c0, 0x02c0, 0x02c0, 0x02c1, 0x02c1, 0x02c2, 0x02c2, 
-	0x02c3, 0x02c4, 0x02c5, 0x02c5, 0x02c6, 0x02c7, 0x02c8, 0x02c9, 
-	0x02ca, 0x02cb, 0x02cc, 0x02ce, 0x02cf, 0x02d0, 0x02d1, 0x02d3, 
-	0x02d4, 0x02d5, 0x02d7, 0x02d8, 0x02da, 0x02db, 0x02dd, 0x02df, 
-	0x02e0, 0x02e0, 0x02e0, 0x02e0, 0x02e1, 0x02e1, 0x02e2, 0x02e2, 
-	0x02e3, 0x02e4, 0x02e5, 0x02e5, 0x02e6, 0x02e7, 0x02e8, 0x02e9, 
-	0x02ea, 0x02eb, 0x02ec, 0x02ee, 0x02ef, 0x02f0, 0x02f1, 0x02f3, 
-	0x02f4, 0x02f5, 0x02f7, 0x02f8, 0x02fa, 0x02fb, 0x02fd, 0x02ff, 
-	0x0300, 0x0300, 0x0300, 0x0300, 0x0301, 0x0301, 0x0302, 0x0302, 
-	0x0303, 0x0304, 0x0305, 0x0305, 0x0306, 0x0307, 0x0308, 0x0309, 
-	0x030a, 0x030b, 0x030c, 0x030e, 0x030f, 0x0310, 0x0311, 0x0313, 
-	0x0314, 0x0315, 0x0317, 0x0318, 0x031a, 0x031b, 0x031d, 0x031f, 
-	0x0320, 0x0320, 0x0320, 0x0320, 0x0321, 0x0321, 0x0322, 0x0322, 
-	0x0323, 0x0324, 0x0325, 0x0325, 0x0326, 0x0327, 0x0328, 0x0329, 
-	0x032a, 0x032b, 0x032c, 0x032e, 0x032f, 0x0330, 0x0331, 0x0333, 
-	0x0334, 0x0335, 0x0337, 0x0338, 0x033a, 0x033b, 0x033d, 0x033f, 
-	0x0340, 0x0340, 0x0340, 0x0340, 0x0341, 0x0341, 0x0342, 0x0342, 
-	0x0343, 0x0344, 0x0345, 0x0345, 0x0346, 0x0347, 0x0348, 0x0349, 
-	0x034a, 0x034b, 0x034c, 0x034e, 0x034f, 0x0350, 0x0351, 0x0353, 
-	0x0354, 0x0355, 0x0357, 0x0358, 0x035a, 0x035b, 0x035d, 0x035f, 
-	0x0380, 0x0380, 0x0380, 0x0380, 0x0381, 0x0381, 0x0382, 0x0382, 
-	0x0383, 0x0384, 0x0385, 0x0385, 0x0386, 0x0387, 0x0388, 0x0389, 
-	0x038a, 0x038b, 0x038c, 0x038e, 0x038f, 0x0390, 0x0391, 0x0393, 
-	0x0394, 0x0395, 0x0397, 0x0398, 0x039a, 0x039b, 0x039d, 0x039f, 
-	0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a1, 0x03a1, 0x03a2, 0x03a2, 
-	0x03a3, 0x03a4, 0x03a5, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 
-	0x03aa, 0x03ab, 0x03ac, 0x03ae, 0x03af, 0x03b0, 0x03b1, 0x03b3, 
-	0x03b4, 0x03b5, 0x03b7, 0x03b8, 0x03ba, 0x03bb, 0x03bd, 0x03bf, 
-	0x03c0, 0x03c0, 0x03c0, 0x03c0, 0x03c1, 0x03c1, 0x03c2, 0x03c2, 
-	0x03c3, 0x03c4, 0x03c5, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, 
-	0x03ca, 0x03cb, 0x03cc, 0x03ce, 0x03cf, 0x03d0, 0x03d1, 0x03d3, 
-	0x03d4, 0x03d5, 0x03d7, 0x03d8, 0x03da, 0x03db, 0x03dd, 0x03df, 
-	0x03e0, 0x03e0, 0x03e0, 0x03e0, 0x03e1, 0x03e1, 0x03e2, 0x03e2, 
-	0x03e3, 0x03e4, 0x03e5, 0x03e5, 0x03e6, 0x03e7, 0x03e8, 0x03e9, 
-	0x03ea, 0x03eb, 0x03ec, 0x03ee, 0x03ef, 0x03f0, 0x03f1, 0x03f3, 
-	0x03f4, 0x03f5, 0x03f7, 0x03f8, 0x03fa, 0x03fb, 0x03fd, 0x03ff, 
-	0x0400, 0x0400, 0x0400, 0x0400, 0x0401, 0x0401, 0x0402, 0x0402, 
-	0x0403, 0x0404, 0x0405, 0x0405, 0x0406, 0x0407, 0x0408, 0x0409, 
-	0x040a, 0x040b, 0x040c, 0x040e, 0x040f, 0x0410, 0x0411, 0x0413, 
-	0x0414, 0x0415, 0x0417, 0x0418, 0x041a, 0x041b, 0x041d, 0x041f, 
-	0x0440, 0x0440, 0x0440, 0x0440, 0x0441, 0x0441, 0x0442, 0x0442, 
-	0x0443, 0x0444, 0x0445, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 
-	0x044a, 0x044b, 0x044c, 0x044e, 0x044f, 0x0450, 0x0451, 0x0453, 
-	0x0454, 0x0455, 0x0457, 0x0458, 0x045a, 0x045b, 0x045d, 0x045f, 
-	0x0460, 0x0460, 0x0460, 0x0460, 0x0461, 0x0461, 0x0462, 0x0462, 
-	0x0463, 0x0464, 0x0465, 0x0465, 0x0466, 0x0467, 0x0468, 0x0469, 
-	0x046a, 0x046b, 0x046c, 0x046e, 0x046f, 0x0470, 0x0471, 0x0473, 
-	0x0474, 0x0475, 0x0477, 0x0478, 0x047a, 0x047b, 0x047d, 0x047f, 
-	0x0480, 0x0480, 0x0480, 0x0480, 0x0481, 0x0481, 0x0482, 0x0482, 
-	0x0483, 0x0484, 0x0485, 0x0485, 0x0486, 0x0487, 0x0488, 0x0489, 
-	0x048a, 0x048b, 0x048c, 0x048e, 0x048f, 0x0490, 0x0491, 0x0493, 
-	0x0494, 0x0495, 0x0497, 0x0498, 0x049a, 0x049b, 0x049d, 0x049f, 
-	0x04c0, 0x04c0, 0x04c0, 0x04c0, 0x04c1, 0x04c1, 0x04c2, 0x04c2, 
-	0x04c3, 0x04c4, 0x04c5, 0x04c5, 0x04c6, 0x04c7, 0x04c8, 0x04c9, 
-	0x04ca, 0x04cb, 0x04cc, 0x04ce, 0x04cf, 0x04d0, 0x04d1, 0x04d3, 
-	0x04d4, 0x04d5, 0x04d7, 0x04d8, 0x04da, 0x04db, 0x04dd, 0x04df, 
-	0x04e0, 0x04e0, 0x04e0, 0x04e0, 0x04e1, 0x04e1, 0x04e2, 0x04e2, 
-	0x04e3, 0x04e4, 0x04e5, 0x04e5, 0x04e6, 0x04e7, 0x04e8, 0x04e9, 
-	0x04ea, 0x04eb, 0x04ec, 0x04ee, 0x04ef, 0x04f0, 0x04f1, 0x04f3, 
-	0x04f4, 0x04f5, 0x04f7, 0x04f8, 0x04fa, 0x04fb, 0x04fd, 0x04ff, 
-	0x0500, 0x0500, 0x0500, 0x0500, 0x0501, 0x0501, 0x0502, 0x0502, 
-	0x0503, 0x0504, 0x0505, 0x0505, 0x0506, 0x0507, 0x0508, 0x0509, 
-	0x050a, 0x050b, 0x050c, 0x050e, 0x050f, 0x0510, 0x0511, 0x0513, 
-	0x0514, 0x0515, 0x0517, 0x0518, 0x051a, 0x051b, 0x051d, 0x051f, 
-	0x0540, 0x0540, 0x0540, 0x0540, 0x0541, 0x0541, 0x0542, 0x0542, 
-	0x0543, 0x0544, 0x0545, 0x0545, 0x0546, 0x0547, 0x0548, 0x0549, 
-	0x054a, 0x054b, 0x054c, 0x054e, 0x054f, 0x0550, 0x0551, 0x0553, 
-	0x0554, 0x0555, 0x0557, 0x0558, 0x055a, 0x055b, 0x055d, 0x055f, 
-	0x0560, 0x0560, 0x0560, 0x0560, 0x0561, 0x0561, 0x0562, 0x0562, 
-	0x0563, 0x0564, 0x0565, 0x0565, 0x0566, 0x0567, 0x0568, 0x0569, 
-	0x056a, 0x056b, 0x056c, 0x056e, 0x056f, 0x0570, 0x0571, 0x0573, 
-	0x0574, 0x0575, 0x0577, 0x0578, 0x057a, 0x057b, 0x057d, 0x057f, 
-	0x0580, 0x0580, 0x0580, 0x0580, 0x0581, 0x0581, 0x0582, 0x0582, 
-	0x0583, 0x0584, 0x0585, 0x0585, 0x0586, 0x0587, 0x0588, 0x0589, 
-	0x058a, 0x058b, 0x058c, 0x058e, 0x058f, 0x0590, 0x0591, 0x0593, 
-	0x0594, 0x0595, 0x0597, 0x0598, 0x059a, 0x059b, 0x059d, 0x059f, 
-	0x05c0, 0x05c0, 0x05c0, 0x05c0, 0x05c1, 0x05c1, 0x05c2, 0x05c2, 
-	0x05c3, 0x05c4, 0x05c5, 0x05c5, 0x05c6, 0x05c7, 0x05c8, 0x05c9, 
-	0x05ca, 0x05cb, 0x05cc, 0x05ce, 0x05cf, 0x05d0, 0x05d1, 0x05d3, 
-	0x05d4, 0x05d5, 0x05d7, 0x05d8, 0x05da, 0x05db, 0x05dd, 0x05df, 
-	0x05e0, 0x05e0, 0x05e0, 0x05e0, 0x05e1, 0x05e1, 0x05e2, 0x05e2, 
-	0x05e3, 0x05e4, 0x05e5, 0x05e5, 0x05e6, 0x05e7, 0x05e8, 0x05e9, 
-	0x05ea, 0x05eb, 0x05ec, 0x05ee, 0x05ef, 0x05f0, 0x05f1, 0x05f3, 
-	0x05f4, 0x05f5, 0x05f7, 0x05f8, 0x05fa, 0x05fb, 0x05fd, 0x05ff, 
-	0x0620, 0x0620, 0x0620, 0x0620, 0x0621, 0x0621, 0x0622, 0x0622, 
-	0x0623, 0x0624, 0x0625, 0x0625, 0x0626, 0x0627, 0x0628, 0x0629, 
-	0x062a, 0x062b, 0x062c, 0x062e, 0x062f, 0x0630, 0x0631, 0x0633, 
-	0x0634, 0x0635, 0x0637, 0x0638, 0x063a, 0x063b, 0x063d, 0x063f, 
-	0x0640, 0x0640, 0x0640, 0x0640, 0x0641, 0x0641, 0x0642, 0x0642, 
-	0x0643, 0x0644, 0x0645, 0x0645, 0x0646, 0x0647, 0x0648, 0x0649, 
-	0x064a, 0x064b, 0x064c, 0x064e, 0x064f, 0x0650, 0x0651, 0x0653, 
-	0x0654, 0x0655, 0x0657, 0x0658, 0x065a, 0x065b, 0x065d, 0x065f, 
-	0x0680, 0x0680, 0x0680, 0x0680, 0x0681, 0x0681, 0x0682, 0x0682, 
-	0x0683, 0x0684, 0x0685, 0x0685, 0x0686, 0x0687, 0x0688, 0x0689, 
-	0x068a, 0x068b, 0x068c, 0x068e, 0x068f, 0x0690, 0x0691, 0x0693, 
-	0x0694, 0x0695, 0x0697, 0x0698, 0x069a, 0x069b, 0x069d, 0x069f, 
-	0x06a0, 0x06a0, 0x06a0, 0x06a0, 0x06a1, 0x06a1, 0x06a2, 0x06a2, 
-	0x06a3, 0x06a4, 0x06a5, 0x06a5, 0x06a6, 0x06a7, 0x06a8, 0x06a9, 
-	0x06aa, 0x06ab, 0x06ac, 0x06ae, 0x06af, 0x06b0, 0x06b1, 0x06b3, 
-	0x06b4, 0x06b5, 0x06b7, 0x06b8, 0x06ba, 0x06bb, 0x06bd, 0x06bf, 
-	0x06e0, 0x06e0, 0x06e0, 0x06e0, 0x06e1, 0x06e1, 0x06e2, 0x06e2, 
-	0x06e3, 0x06e4, 0x06e5, 0x06e5, 0x06e6, 0x06e7, 0x06e8, 0x06e9, 
-	0x06ea, 0x06eb, 0x06ec, 0x06ee, 0x06ef, 0x06f0, 0x06f1, 0x06f3, 
-	0x06f4, 0x06f5, 0x06f7, 0x06f8, 0x06fa, 0x06fb, 0x06fd, 0x06ff, 
-	0x0700, 0x0700, 0x0700, 0x0700, 0x0701, 0x0701, 0x0702, 0x0702, 
-	0x0703, 0x0704, 0x0705, 0x0705, 0x0706, 0x0707, 0x0708, 0x0709, 
-	0x070a, 0x070b, 0x070c, 0x070e, 0x070f, 0x0710, 0x0711, 0x0713, 
-	0x0714, 0x0715, 0x0717, 0x0718, 0x071a, 0x071b, 0x071d, 0x071f, 
-	0x0740, 0x0740, 0x0740, 0x0740, 0x0741, 0x0741, 0x0742, 0x0742, 
-	0x0743, 0x0744, 0x0745, 0x0745, 0x0746, 0x0747, 0x0748, 0x0749, 
-	0x074a, 0x074b, 0x074c, 0x074e, 0x074f, 0x0750, 0x0751, 0x0753, 
-	0x0754, 0x0755, 0x0757, 0x0758, 0x075a, 0x075b, 0x075d, 0x075f, 
-	0x0760, 0x0760, 0x0760, 0x0760, 0x0761, 0x0761, 0x0762, 0x0762, 
-	0x0763, 0x0764, 0x0765, 0x0765, 0x0766, 0x0767, 0x0768, 0x0769, 
-	0x076a, 0x076b, 0x076c, 0x076e, 0x076f, 0x0770, 0x0771, 0x0773, 
-	0x0774, 0x0775, 0x0777, 0x0778, 0x077a, 0x077b, 0x077d, 0x077f, 
-	0x07a0, 0x07a0, 0x07a0, 0x07a0, 0x07a1, 0x07a1, 0x07a2, 0x07a2, 
-	0x07a3, 0x07a4, 0x07a5, 0x07a5, 0x07a6, 0x07a7, 0x07a8, 0x07a9, 
-	0x07aa, 0x07ab, 0x07ac, 0x07ae, 0x07af, 0x07b0, 0x07b1, 0x07b3, 
-	0x07b4, 0x07b5, 0x07b7, 0x07b8, 0x07ba, 0x07bb, 0x07bd, 0x07bf, 
-	0x07e0, 0x07e0, 0x07e0, 0x07e0, 0x07e1, 0x07e1, 0x07e2, 0x07e2, 
-	0x07e3, 0x07e4, 0x07e5, 0x07e5, 0x07e6, 0x07e7, 0x07e8, 0x07e9, 
-	0x07ea, 0x07eb, 0x07ec, 0x07ee, 0x07ef, 0x07f0, 0x07f1, 0x07f3, 
-	0x07f4, 0x07f5, 0x07f7, 0x07f8, 0x07fa, 0x07fb, 0x07fd, 0x07ff, 
-	0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0002, 0x0002, 
-	0x0003, 0x0004, 0x0005, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 
-	0x000a, 0x000b, 0x000c, 0x000e, 0x000f, 0x0010, 0x0011, 0x0013, 
-	0x0014, 0x0015, 0x0017, 0x0018, 0x001a, 0x001b, 0x001d, 0x001f, 
-	0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0002, 0x0002, 
-	0x0003, 0x0004, 0x0005, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 
-	0x000a, 0x000b, 0x000c, 0x000e, 0x000f, 0x0010, 0x0011, 0x0013, 
-	0x0014, 0x0015, 0x0017, 0x0018, 0x001a, 0x001b, 0x001d, 0x001f, 
-	0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0002, 0x0002, 
-	0x0003, 0x0004, 0x0005, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 
-	0x000a, 0x000b, 0x000c, 0x000e, 0x000f, 0x0010, 0x0011, 0x0013, 
-	0x0014, 0x0015, 0x0017, 0x0018, 0x001a, 0x001b, 0x001d, 0x001f, 
-	0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0002, 0x0002, 
-	0x0003, 0x0004, 0x0005, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 
-	0x000a, 0x000b, 0x000c, 0x000e, 0x000f, 0x0010, 0x0011, 0x0013, 
-	0x0014, 0x0015, 0x0017, 0x0018, 0x001a, 0x001b, 0x001d, 0x001f, 
-	0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0002, 0x0002, 
-	0x0003, 0x0004, 0x0005, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 
-	0x000a, 0x000b, 0x000c, 0x000e, 0x000f, 0x0010, 0x0011, 0x0013, 
-	0x0014, 0x0015, 0x0017, 0x0018, 0x001a, 0x001b, 0x001d, 0x001f, 
-	0x0020, 0x0020, 0x0020, 0x0020, 0x0021, 0x0021, 0x0022, 0x0022, 
-	0x0023, 0x0024, 0x0025, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 
-	0x002a, 0x002b, 0x002c, 0x002e, 0x002f, 0x0030, 0x0031, 0x0033, 
-	0x0034, 0x0035, 0x0037, 0x0038, 0x003a, 0x003b, 0x003d, 0x003f, 
-	0x0020, 0x0020, 0x0020, 0x0020, 0x0021, 0x0021, 0x0022, 0x0022, 
-	0x0023, 0x0024, 0x0025, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 
-	0x002a, 0x002b, 0x002c, 0x002e, 0x002f, 0x0030, 0x0031, 0x0033, 
-	0x0034, 0x0035, 0x0037, 0x0038, 0x003a, 0x003b, 0x003d, 0x003f, 
-	0x0020, 0x0020, 0x0020, 0x0020, 0x0021, 0x0021, 0x0022, 0x0022, 
-	0x0023, 0x0024, 0x0025, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 
-	0x002a, 0x002b, 0x002c, 0x002e, 0x002f, 0x0030, 0x0031, 0x0033, 
-	0x0034, 0x0035, 0x0037, 0x0038, 0x003a, 0x003b, 0x003d, 0x003f, 
-	0x0040, 0x0040, 0x0040, 0x0040, 0x0041, 0x0041, 0x0042, 0x0042, 
-	0x0043, 0x0044, 0x0045, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 
-	0x004a, 0x004b, 0x004c, 0x004e, 0x004f, 0x0050, 0x0051, 0x0053, 
-	0x0054, 0x0055, 0x0057, 0x0058, 0x005a, 0x005b, 0x005d, 0x005f, 
-	0x0040, 0x0040, 0x0040, 0x0040, 0x0041, 0x0041, 0x0042, 0x0042, 
-	0x0043, 0x0044, 0x0045, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 
-	0x004a, 0x004b, 0x004c, 0x004e, 0x004f, 0x0050, 0x0051, 0x0053, 
-	0x0054, 0x0055, 0x0057, 0x0058, 0x005a, 0x005b, 0x005d, 0x005f, 
-	0x0060, 0x0060, 0x0060, 0x0060, 0x0061, 0x0061, 0x0062, 0x0062, 
-	0x0063, 0x0064, 0x0065, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 
-	0x006a, 0x006b, 0x006c, 0x006e, 0x006f, 0x0070, 0x0071, 0x0073, 
-	0x0074, 0x0075, 0x0077, 0x0078, 0x007a, 0x007b, 0x007d, 0x007f, 
-	0x0060, 0x0060, 0x0060, 0x0060, 0x0061, 0x0061, 0x0062, 0x0062, 
-	0x0063, 0x0064, 0x0065, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 
-	0x006a, 0x006b, 0x006c, 0x006e, 0x006f, 0x0070, 0x0071, 0x0073, 
-	0x0074, 0x0075, 0x0077, 0x0078, 0x007a, 0x007b, 0x007d, 0x007f, 
-	0x0080, 0x0080, 0x0080, 0x0080, 0x0081, 0x0081, 0x0082, 0x0082, 
-	0x0083, 0x0084, 0x0085, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 
-	0x008a, 0x008b, 0x008c, 0x008e, 0x008f, 0x0090, 0x0091, 0x0093, 
-	0x0094, 0x0095, 0x0097, 0x0098, 0x009a, 0x009b, 0x009d, 0x009f, 
-	0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a1, 0x00a1, 0x00a2, 0x00a2, 
-	0x00a3, 0x00a4, 0x00a5, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 
-	0x00aa, 0x00ab, 0x00ac, 0x00ae, 0x00af, 0x00b0, 0x00b1, 0x00b3, 
-	0x00b4, 0x00b5, 0x00b7, 0x00b8, 0x00ba, 0x00bb, 0x00bd, 0x00bf, 
-	0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a1, 0x00a1, 0x00a2, 0x00a2, 
-	0x00a3, 0x00a4, 0x00a5, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 
-	0x00aa, 0x00ab, 0x00ac, 0x00ae, 0x00af, 0x00b0, 0x00b1, 0x00b3, 
-	0x00b4, 0x00b5, 0x00b7, 0x00b8, 0x00ba, 0x00bb, 0x00bd, 0x00bf, 
-	0x00c0, 0x00c0, 0x00c0, 0x00c0, 0x00c1, 0x00c1, 0x00c2, 0x00c2, 
-	0x00c3, 0x00c4, 0x00c5, 0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 
-	0x00ca, 0x00cb, 0x00cc, 0x00ce, 0x00cf, 0x00d0, 0x00d1, 0x00d3, 
-	0x00d4, 0x00d5, 0x00d7, 0x00d8, 0x00da, 0x00db, 0x00dd, 0x00df, 
-	0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e1, 0x00e1, 0x00e2, 0x00e2, 
-	0x00e3, 0x00e4, 0x00e5, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 
-	0x00ea, 0x00eb, 0x00ec, 0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x00f3, 
-	0x00f4, 0x00f5, 0x00f7, 0x00f8, 0x00fa, 0x00fb, 0x00fd, 0x00ff, 
-	0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e1, 0x00e1, 0x00e2, 0x00e2, 
-	0x00e3, 0x00e4, 0x00e5, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 
-	0x00ea, 0x00eb, 0x00ec, 0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x00f3, 
-	0x00f4, 0x00f5, 0x00f7, 0x00f8, 0x00fa, 0x00fb, 0x00fd, 0x00ff, 
-	0x0100, 0x0100, 0x0100, 0x0100, 0x0101, 0x0101, 0x0102, 0x0102, 
-	0x0103, 0x0104, 0x0105, 0x0105, 0x0106, 0x0107, 0x0108, 0x0109, 
-	0x010a, 0x010b, 0x010c, 0x010e, 0x010f, 0x0110, 0x0111, 0x0113, 
-	0x0114, 0x0115, 0x0117, 0x0118, 0x011a, 0x011b, 0x011d, 0x011f, 
-	0x0120, 0x0120, 0x0120, 0x0120, 0x0121, 0x0121, 0x0122, 0x0122, 
-	0x0123, 0x0124, 0x0125, 0x0125, 0x0126, 0x0127, 0x0128, 0x0129, 
-	0x012a, 0x012b, 0x012c, 0x012e, 0x012f, 0x0130, 0x0131, 0x0133, 
-	0x0134, 0x0135, 0x0137, 0x0138, 0x013a, 0x013b, 0x013d, 0x013f, 
-	0x0140, 0x0140, 0x0140, 0x0140, 0x0141, 0x0141, 0x0142, 0x0142, 
-	0x0143, 0x0144, 0x0145, 0x0145, 0x0146, 0x0147, 0x0148, 0x0149, 
-	0x014a, 0x014b, 0x014c, 0x014e, 0x014f, 0x0150, 0x0151, 0x0153, 
-	0x0154, 0x0155, 0x0157, 0x0158, 0x015a, 0x015b, 0x015d, 0x015f, 
-	0x0140, 0x0140, 0x0140, 0x0140, 0x0141, 0x0141, 0x0142, 0x0142, 
-	0x0143, 0x0144, 0x0145, 0x0145, 0x0146, 0x0147, 0x0148, 0x0149, 
-	0x014a, 0x014b, 0x014c, 0x014e, 0x014f, 0x0150, 0x0151, 0x0153, 
-	0x0154, 0x0155, 0x0157, 0x0158, 0x015a, 0x015b, 0x015d, 0x015f, 
-	0x0160, 0x0160, 0x0160, 0x0160, 0x0161, 0x0161, 0x0162, 0x0162, 
-	0x0163, 0x0164, 0x0165, 0x0165, 0x0166, 0x0167, 0x0168, 0x0169, 
-	0x016a, 0x016b, 0x016c, 0x016e, 0x016f, 0x0170, 0x0171, 0x0173, 
-	0x0174, 0x0175, 0x0177, 0x0178, 0x017a, 0x017b, 0x017d, 0x017f, 
-	0x0180, 0x0180, 0x0180, 0x0180, 0x0181, 0x0181, 0x0182, 0x0182, 
-	0x0183, 0x0184, 0x0185, 0x0185, 0x0186, 0x0187, 0x0188, 0x0189, 
-	0x018a, 0x018b, 0x018c, 0x018e, 0x018f, 0x0190, 0x0191, 0x0193, 
-	0x0194, 0x0195, 0x0197, 0x0198, 0x019a, 0x019b, 0x019d, 0x019f, 
-	0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a1, 0x01a1, 0x01a2, 0x01a2, 
-	0x01a3, 0x01a4, 0x01a5, 0x01a5, 0x01a6, 0x01a7, 0x01a8, 0x01a9, 
-	0x01aa, 0x01ab, 0x01ac, 0x01ae, 0x01af, 0x01b0, 0x01b1, 0x01b3, 
-	0x01b4, 0x01b5, 0x01b7, 0x01b8, 0x01ba, 0x01bb, 0x01bd, 0x01bf, 
-	0x01c0, 0x01c0, 0x01c0, 0x01c0, 0x01c1, 0x01c1, 0x01c2, 0x01c2, 
-	0x01c3, 0x01c4, 0x01c5, 0x01c5, 0x01c6, 0x01c7, 0x01c8, 0x01c9, 
-	0x01ca, 0x01cb, 0x01cc, 0x01ce, 0x01cf, 0x01d0, 0x01d1, 0x01d3, 
-	0x01d4, 0x01d5, 0x01d7, 0x01d8, 0x01da, 0x01db, 0x01dd, 0x01df, 
-	0x01e0, 0x01e0, 0x01e0, 0x01e0, 0x01e1, 0x01e1, 0x01e2, 0x01e2, 
-	0x01e3, 0x01e4, 0x01e5, 0x01e5, 0x01e6, 0x01e7, 0x01e8, 0x01e9, 
-	0x01ea, 0x01eb, 0x01ec, 0x01ee, 0x01ef, 0x01f0, 0x01f1, 0x01f3, 
-	0x01f4, 0x01f5, 0x01f7, 0x01f8, 0x01fa, 0x01fb, 0x01fd, 0x01ff, 
-	0x0200, 0x0200, 0x0200, 0x0200, 0x0201, 0x0201, 0x0202, 0x0202, 
-	0x0203, 0x0204, 0x0205, 0x0205, 0x0206, 0x0207, 0x0208, 0x0209, 
-	0x020a, 0x020b, 0x020c, 0x020e, 0x020f, 0x0210, 0x0211, 0x0213, 
-	0x0214, 0x0215, 0x0217, 0x0218, 0x021a, 0x021b, 0x021d, 0x021f, 
-	0x0220, 0x0220, 0x0220, 0x0220, 0x0221, 0x0221, 0x0222, 0x0222, 
-	0x0223, 0x0224, 0x0225, 0x0225, 0x0226, 0x0227, 0x0228, 0x0229, 
-	0x022a, 0x022b, 0x022c, 0x022e, 0x022f, 0x0230, 0x0231, 0x0233, 
-	0x0234, 0x0235, 0x0237, 0x0238, 0x023a, 0x023b, 0x023d, 0x023f, 
-	0x0240, 0x0240, 0x0240, 0x0240, 0x0241, 0x0241, 0x0242, 0x0242, 
-	0x0243, 0x0244, 0x0245, 0x0245, 0x0246, 0x0247, 0x0248, 0x0249, 
-	0x024a, 0x024b, 0x024c, 0x024e, 0x024f, 0x0250, 0x0251, 0x0253, 
-	0x0254, 0x0255, 0x0257, 0x0258, 0x025a, 0x025b, 0x025d, 0x025f, 
-	0x0260, 0x0260, 0x0260, 0x0260, 0x0261, 0x0261, 0x0262, 0x0262, 
-	0x0263, 0x0264, 0x0265, 0x0265, 0x0266, 0x0267, 0x0268, 0x0269, 
-	0x026a, 0x026b, 0x026c, 0x026e, 0x026f, 0x0270, 0x0271, 0x0273, 
-	0x0274, 0x0275, 0x0277, 0x0278, 0x027a, 0x027b, 0x027d, 0x027f, 
-	0x0280, 0x0280, 0x0280, 0x0280, 0x0281, 0x0281, 0x0282, 0x0282, 
-	0x0283, 0x0284, 0x0285, 0x0285, 0x0286, 0x0287, 0x0288, 0x0289, 
-	0x028a, 0x028b, 0x028c, 0x028e, 0x028f, 0x0290, 0x0291, 0x0293, 
-	0x0294, 0x0295, 0x0297, 0x0298, 0x029a, 0x029b, 0x029d, 0x029f, 
-	0x02a0, 0x02a0, 0x02a0, 0x02a0, 0x02a1, 0x02a1, 0x02a2, 0x02a2, 
-	0x02a3, 0x02a4, 0x02a5, 0x02a5, 0x02a6, 0x02a7, 0x02a8, 0x02a9, 
-	0x02aa, 0x02ab, 0x02ac, 0x02ae, 0x02af, 0x02b0, 0x02b1, 0x02b3, 
-	0x02b4, 0x02b5, 0x02b7, 0x02b8, 0x02ba, 0x02bb, 0x02bd, 0x02bf, 
-	0x02c0, 0x02c0, 0x02c0, 0x02c0, 0x02c1, 0x02c1, 0x02c2, 0x02c2, 
-	0x02c3, 0x02c4, 0x02c5, 0x02c5, 0x02c6, 0x02c7, 0x02c8, 0x02c9, 
-	0x02ca, 0x02cb, 0x02cc, 0x02ce, 0x02cf, 0x02d0, 0x02d1, 0x02d3, 
-	0x02d4, 0x02d5, 0x02d7, 0x02d8, 0x02da, 0x02db, 0x02dd, 0x02df, 
-	0x02e0, 0x02e0, 0x02e0, 0x02e0, 0x02e1, 0x02e1, 0x02e2, 0x02e2, 
-	0x02e3, 0x02e4, 0x02e5, 0x02e5, 0x02e6, 0x02e7, 0x02e8, 0x02e9, 
-	0x02ea, 0x02eb, 0x02ec, 0x02ee, 0x02ef, 0x02f0, 0x02f1, 0x02f3, 
-	0x02f4, 0x02f5, 0x02f7, 0x02f8, 0x02fa, 0x02fb, 0x02fd, 0x02ff, 
-	0x0300, 0x0300, 0x0300, 0x0300, 0x0301, 0x0301, 0x0302, 0x0302, 
-	0x0303, 0x0304, 0x0305, 0x0305, 0x0306, 0x0307, 0x0308, 0x0309, 
-	0x030a, 0x030b, 0x030c, 0x030e, 0x030f, 0x0310, 0x0311, 0x0313, 
-	0x0314, 0x0315, 0x0317, 0x0318, 0x031a, 0x031b, 0x031d, 0x031f, 
-	0x0320, 0x0320, 0x0320, 0x0320, 0x0321, 0x0321, 0x0322, 0x0322, 
-	0x0323, 0x0324, 0x0325, 0x0325, 0x0326, 0x0327, 0x0328, 0x0329, 
-	0x032a, 0x032b, 0x032c, 0x032e, 0x032f, 0x0330, 0x0331, 0x0333, 
-	0x0334, 0x0335, 0x0337, 0x0338, 0x033a, 0x033b, 0x033d, 0x033f, 
-	0x0340, 0x0340, 0x0340, 0x0340, 0x0341, 0x0341, 0x0342, 0x0342, 
-	0x0343, 0x0344, 0x0345, 0x0345, 0x0346, 0x0347, 0x0348, 0x0349, 
-	0x034a, 0x034b, 0x034c, 0x034e, 0x034f, 0x0350, 0x0351, 0x0353, 
-	0x0354, 0x0355, 0x0357, 0x0358, 0x035a, 0x035b, 0x035d, 0x035f, 
-	0x0380, 0x0380, 0x0380, 0x0380, 0x0381, 0x0381, 0x0382, 0x0382, 
-	0x0383, 0x0384, 0x0385, 0x0385, 0x0386, 0x0387, 0x0388, 0x0389, 
-	0x038a, 0x038b, 0x038c, 0x038e, 0x038f, 0x0390, 0x0391, 0x0393, 
-	0x0394, 0x0395, 0x0397, 0x0398, 0x039a, 0x039b, 0x039d, 0x039f, 
-	0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a1, 0x03a1, 0x03a2, 0x03a2, 
-	0x03a3, 0x03a4, 0x03a5, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 
-	0x03aa, 0x03ab, 0x03ac, 0x03ae, 0x03af, 0x03b0, 0x03b1, 0x03b3, 
-	0x03b4, 0x03b5, 0x03b7, 0x03b8, 0x03ba, 0x03bb, 0x03bd, 0x03bf, 
-	0x03c0, 0x03c0, 0x03c0, 0x03c0, 0x03c1, 0x03c1, 0x03c2, 0x03c2, 
-	0x03c3, 0x03c4, 0x03c5, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, 
-	0x03ca, 0x03cb, 0x03cc, 0x03ce, 0x03cf, 0x03d0, 0x03d1, 0x03d3, 
-	0x03d4, 0x03d5, 0x03d7, 0x03d8, 0x03da, 0x03db, 0x03dd, 0x03df, 
-	0x03e0, 0x03e0, 0x03e0, 0x03e0, 0x03e1, 0x03e1, 0x03e2, 0x03e2, 
-	0x03e3, 0x03e4, 0x03e5, 0x03e5, 0x03e6, 0x03e7, 0x03e8, 0x03e9, 
-	0x03ea, 0x03eb, 0x03ec, 0x03ee, 0x03ef, 0x03f0, 0x03f1, 0x03f3, 
-	0x03f4, 0x03f5, 0x03f7, 0x03f8, 0x03fa, 0x03fb, 0x03fd, 0x03ff, 
-	0x0400, 0x0400, 0x0400, 0x0400, 0x0401, 0x0401, 0x0402, 0x0402, 
-	0x0403, 0x0404, 0x0405, 0x0405, 0x0406, 0x0407, 0x0408, 0x0409, 
-	0x040a, 0x040b, 0x040c, 0x040e, 0x040f, 0x0410, 0x0411, 0x0413, 
-	0x0414, 0x0415, 0x0417, 0x0418, 0x041a, 0x041b, 0x041d, 0x041f, 
-	0x0440, 0x0440, 0x0440, 0x0440, 0x0441, 0x0441, 0x0442, 0x0442, 
-	0x0443, 0x0444, 0x0445, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 
-	0x044a, 0x044b, 0x044c, 0x044e, 0x044f, 0x0450, 0x0451, 0x0453, 
-	0x0454, 0x0455, 0x0457, 0x0458, 0x045a, 0x045b, 0x045d, 0x045f, 
-	0x0460, 0x0460, 0x0460, 0x0460, 0x0461, 0x0461, 0x0462, 0x0462, 
-	0x0463, 0x0464, 0x0465, 0x0465, 0x0466, 0x0467, 0x0468, 0x0469, 
-	0x046a, 0x046b, 0x046c, 0x046e, 0x046f, 0x0470, 0x0471, 0x0473, 
-	0x0474, 0x0475, 0x0477, 0x0478, 0x047a, 0x047b, 0x047d, 0x047f, 
-	0x0480, 0x0480, 0x0480, 0x0480, 0x0481, 0x0481, 0x0482, 0x0482, 
-	0x0483, 0x0484, 0x0485, 0x0485, 0x0486, 0x0487, 0x0488, 0x0489, 
-	0x048a, 0x048b, 0x048c, 0x048e, 0x048f, 0x0490, 0x0491, 0x0493, 
-	0x0494, 0x0495, 0x0497, 0x0498, 0x049a, 0x049b, 0x049d, 0x049f, 
-	0x04c0, 0x04c0, 0x04c0, 0x04c0, 0x04c1, 0x04c1, 0x04c2, 0x04c2, 
-	0x04c3, 0x04c4, 0x04c5, 0x04c5, 0x04c6, 0x04c7, 0x04c8, 0x04c9, 
-	0x04ca, 0x04cb, 0x04cc, 0x04ce, 0x04cf, 0x04d0, 0x04d1, 0x04d3, 
-	0x04d4, 0x04d5, 0x04d7, 0x04d8, 0x04da, 0x04db, 0x04dd, 0x04df, 
-	0x04e0, 0x04e0, 0x04e0, 0x04e0, 0x04e1, 0x04e1, 0x04e2, 0x04e2, 
-	0x04e3, 0x04e4, 0x04e5, 0x04e5, 0x04e6, 0x04e7, 0x04e8, 0x04e9, 
-	0x04ea, 0x04eb, 0x04ec, 0x04ee, 0x04ef, 0x04f0, 0x04f1, 0x04f3, 
-	0x04f4, 0x04f5, 0x04f7, 0x04f8, 0x04fa, 0x04fb, 0x04fd, 0x04ff, 
-	0x0500, 0x0500, 0x0500, 0x0500, 0x0501, 0x0501, 0x0502, 0x0502, 
-	0x0503, 0x0504, 0x0505, 0x0505, 0x0506, 0x0507, 0x0508, 0x0509, 
-	0x050a, 0x050b, 0x050c, 0x050e, 0x050f, 0x0510, 0x0511, 0x0513, 
-	0x0514, 0x0515, 0x0517, 0x0518, 0x051a, 0x051b, 0x051d, 0x051f, 
-	0x0540, 0x0540, 0x0540, 0x0540, 0x0541, 0x0541, 0x0542, 0x0542, 
-	0x0543, 0x0544, 0x0545, 0x0545, 0x0546, 0x0547, 0x0548, 0x0549, 
-	0x054a, 0x054b, 0x054c, 0x054e, 0x054f, 0x0550, 0x0551, 0x0553, 
-	0x0554, 0x0555, 0x0557, 0x0558, 0x055a, 0x055b, 0x055d, 0x055f, 
-	0x0560, 0x0560, 0x0560, 0x0560, 0x0561, 0x0561, 0x0562, 0x0562, 
-	0x0563, 0x0564, 0x0565, 0x0565, 0x0566, 0x0567, 0x0568, 0x0569, 
-	0x056a, 0x056b, 0x056c, 0x056e, 0x056f, 0x0570, 0x0571, 0x0573, 
-	0x0574, 0x0575, 0x0577, 0x0578, 0x057a, 0x057b, 0x057d, 0x057f, 
-	0x0580, 0x0580, 0x0580, 0x0580, 0x0581, 0x0581, 0x0582, 0x0582, 
-	0x0583, 0x0584, 0x0585, 0x0585, 0x0586, 0x0587, 0x0588, 0x0589, 
-	0x058a, 0x058b, 0x058c, 0x058e, 0x058f, 0x0590, 0x0591, 0x0593, 
-	0x0594, 0x0595, 0x0597, 0x0598, 0x059a, 0x059b, 0x059d, 0x059f, 
-	0x05c0, 0x05c0, 0x05c0, 0x05c0, 0x05c1, 0x05c1, 0x05c2, 0x05c2, 
-	0x05c3, 0x05c4, 0x05c5, 0x05c5, 0x05c6, 0x05c7, 0x05c8, 0x05c9, 
-	0x05ca, 0x05cb, 0x05cc, 0x05ce, 0x05cf, 0x05d0, 0x05d1, 0x05d3, 
-	0x05d4, 0x05d5, 0x05d7, 0x05d8, 0x05da, 0x05db, 0x05dd, 0x05df, 
-	0x05e0, 0x05e0, 0x05e0, 0x05e0, 0x05e1, 0x05e1, 0x05e2, 0x05e2, 
-	0x05e3, 0x05e4, 0x05e5, 0x05e5, 0x05e6, 0x05e7, 0x05e8, 0x05e9, 
-	0x05ea, 0x05eb, 0x05ec, 0x05ee, 0x05ef, 0x05f0, 0x05f1, 0x05f3, 
-	0x05f4, 0x05f5, 0x05f7, 0x05f8, 0x05fa, 0x05fb, 0x05fd, 0x05ff, 
-	0x0620, 0x0620, 0x0620, 0x0620, 0x0621, 0x0621, 0x0622, 0x0622, 
-	0x0623, 0x0624, 0x0625, 0x0625, 0x0626, 0x0627, 0x0628, 0x0629, 
-	0x062a, 0x062b, 0x062c, 0x062e, 0x062f, 0x0630, 0x0631, 0x0633, 
-	0x0634, 0x0635, 0x0637, 0x0638, 0x063a, 0x063b, 0x063d, 0x063f, 
-	0x0640, 0x0640, 0x0640, 0x0640, 0x0641, 0x0641, 0x0642, 0x0642, 
-	0x0643, 0x0644, 0x0645, 0x0645, 0x0646, 0x0647, 0x0648, 0x0649, 
-	0x064a, 0x064b, 0x064c, 0x064e, 0x064f, 0x0650, 0x0651, 0x0653, 
-	0x0654, 0x0655, 0x0657, 0x0658, 0x065a, 0x065b, 0x065d, 0x065f, 
-	0x0680, 0x0680, 0x0680, 0x0680, 0x0681, 0x0681, 0x0682, 0x0682, 
-	0x0683, 0x0684, 0x0685, 0x0685, 0x0686, 0x0687, 0x0688, 0x0689, 
-	0x068a, 0x068b, 0x068c, 0x068e, 0x068f, 0x0690, 0x0691, 0x0693, 
-	0x0694, 0x0695, 0x0697, 0x0698, 0x069a, 0x069b, 0x069d, 0x069f, 
-	0x06a0, 0x06a0, 0x06a0, 0x06a0, 0x06a1, 0x06a1, 0x06a2, 0x06a2, 
-	0x06a3, 0x06a4, 0x06a5, 0x06a5, 0x06a6, 0x06a7, 0x06a8, 0x06a9, 
-	0x06aa, 0x06ab, 0x06ac, 0x06ae, 0x06af, 0x06b0, 0x06b1, 0x06b3, 
-	0x06b4, 0x06b5, 0x06b7, 0x06b8, 0x06ba, 0x06bb, 0x06bd, 0x06bf, 
-	0x06e0, 0x06e0, 0x06e0, 0x06e0, 0x06e1, 0x06e1, 0x06e2, 0x06e2, 
-	0x06e3, 0x06e4, 0x06e5, 0x06e5, 0x06e6, 0x06e7, 0x06e8, 0x06e9, 
-	0x06ea, 0x06eb, 0x06ec, 0x06ee, 0x06ef, 0x06f0, 0x06f1, 0x06f3, 
-	0x06f4, 0x06f5, 0x06f7, 0x06f8, 0x06fa, 0x06fb, 0x06fd, 0x06ff, 
-	0x0700, 0x0700, 0x0700, 0x0700, 0x0701, 0x0701, 0x0702, 0x0702, 
-	0x0703, 0x0704, 0x0705, 0x0705, 0x0706, 0x0707, 0x0708, 0x0709, 
-	0x070a, 0x070b, 0x070c, 0x070e, 0x070f, 0x0710, 0x0711, 0x0713, 
-	0x0714, 0x0715, 0x0717, 0x0718, 0x071a, 0x071b, 0x071d, 0x071f, 
-	0x0740, 0x0740, 0x0740, 0x0740, 0x0741, 0x0741, 0x0742, 0x0742, 
-	0x0743, 0x0744, 0x0745, 0x0745, 0x0746, 0x0747, 0x0748, 0x0749, 
-	0x074a, 0x074b, 0x074c, 0x074e, 0x074f, 0x0750, 0x0751, 0x0753, 
-	0x0754, 0x0755, 0x0757, 0x0758, 0x075a, 0x075b, 0x075d, 0x075f, 
-	0x0760, 0x0760, 0x0760, 0x0760, 0x0761, 0x0761, 0x0762, 0x0762, 
-	0x0763, 0x0764, 0x0765, 0x0765, 0x0766, 0x0767, 0x0768, 0x0769, 
-	0x076a, 0x076b, 0x076c, 0x076e, 0x076f, 0x0770, 0x0771, 0x0773, 
-	0x0774, 0x0775, 0x0777, 0x0778, 0x077a, 0x077b, 0x077d, 0x077f, 
-	0x07a0, 0x07a0, 0x07a0, 0x07a0, 0x07a1, 0x07a1, 0x07a2, 0x07a2, 
-	0x07a3, 0x07a4, 0x07a5, 0x07a5, 0x07a6, 0x07a7, 0x07a8, 0x07a9, 
-	0x07aa, 0x07ab, 0x07ac, 0x07ae, 0x07af, 0x07b0, 0x07b1, 0x07b3, 
-	0x07b4, 0x07b5, 0x07b7, 0x07b8, 0x07ba, 0x07bb, 0x07bd, 0x07bf, 
-	0x07e0, 0x07e0, 0x07e0, 0x07e0, 0x07e1, 0x07e1, 0x07e2, 0x07e2, 
-	0x07e3, 0x07e4, 0x07e5, 0x07e5, 0x07e6, 0x07e7, 0x07e8, 0x07e9, 
-	0x07ea, 0x07eb, 0x07ec, 0x07ee, 0x07ef, 0x07f0, 0x07f1, 0x07f3, 
-	0x07f4, 0x07f5, 0x07f7, 0x07f8, 0x07fa, 0x07fb, 0x07fd, 0x07ff, 
-	0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0002, 0x0002, 
-	0x0003, 0x0004, 0x0005, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 
-	0x000a, 0x000b, 0x000c, 0x000e, 0x000f, 0x0010, 0x0011, 0x0013, 
-	0x0014, 0x0015, 0x0017, 0x0018, 0x001a, 0x001b, 0x001d, 0x001f, 
-	0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0002, 0x0002, 
-	0x0003, 0x0004, 0x0005, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 
-	0x000a, 0x000b, 0x000c, 0x000e, 0x000f, 0x0010, 0x0011, 0x0013, 
-	0x0014, 0x0015, 0x0017, 0x0018, 0x001a, 0x001b, 0x001d, 0x001f, 
-	0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0002, 0x0002, 
-	0x0003, 0x0004, 0x0005, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 
-	0x000a, 0x000b, 0x000c, 0x000e, 0x000f, 0x0010, 0x0011, 0x0013, 
-	0x0014, 0x0015, 0x0017, 0x0018, 0x001a, 0x001b, 0x001d, 0x001f, 
-	0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0002, 0x0002, 
-	0x0003, 0x0004, 0x0005, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 
-	0x000a, 0x000b, 0x000c, 0x000e, 0x000f, 0x0010, 0x0011, 0x0013, 
-	0x0014, 0x0015, 0x0017, 0x0018, 0x001a, 0x001b, 0x001d, 0x001f, 
-	0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0002, 0x0002, 
-	0x0003, 0x0004, 0x0005, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 
-	0x000a, 0x000b, 0x000c, 0x000e, 0x000f, 0x0010, 0x0011, 0x0013, 
-	0x0014, 0x0015, 0x0017, 0x0018, 0x001a, 0x001b, 0x001d, 0x001f, 
-	0x0020, 0x0020, 0x0020, 0x0020, 0x0021, 0x0021, 0x0022, 0x0022, 
-	0x0023, 0x0024, 0x0025, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 
-	0x002a, 0x002b, 0x002c, 0x002e, 0x002f, 0x0030, 0x0031, 0x0033, 
-	0x0034, 0x0035, 0x0037, 0x0038, 0x003a, 0x003b, 0x003d, 0x003f, 
-	0x0020, 0x0020, 0x0020, 0x0020, 0x0021, 0x0021, 0x0022, 0x0022, 
-	0x0023, 0x0024, 0x0025, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 
-	0x002a, 0x002b, 0x002c, 0x002e, 0x002f, 0x0030, 0x0031, 0x0033, 
-	0x0034, 0x0035, 0x0037, 0x0038, 0x003a, 0x003b, 0x003d, 0x003f, 
-	0x0020, 0x0020, 0x0020, 0x0020, 0x0021, 0x0021, 0x0022, 0x0022, 
-	0x0023, 0x0024, 0x0025, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 
-	0x002a, 0x002b, 0x002c, 0x002e, 0x002f, 0x0030, 0x0031, 0x0033, 
-	0x0034, 0x0035, 0x0037, 0x0038, 0x003a, 0x003b, 0x003d, 0x003f, 
-	0x0040, 0x0040, 0x0040, 0x0040, 0x0041, 0x0041, 0x0042, 0x0042, 
-	0x0043, 0x0044, 0x0045, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 
-	0x004a, 0x004b, 0x004c, 0x004e, 0x004f, 0x0050, 0x0051, 0x0053, 
-	0x0054, 0x0055, 0x0057, 0x0058, 0x005a, 0x005b, 0x005d, 0x005f, 
-	0x0040, 0x0040, 0x0040, 0x0040, 0x0041, 0x0041, 0x0042, 0x0042, 
-	0x0043, 0x0044, 0x0045, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 
-	0x004a, 0x004b, 0x004c, 0x004e, 0x004f, 0x0050, 0x0051, 0x0053, 
-	0x0054, 0x0055, 0x0057, 0x0058, 0x005a, 0x005b, 0x005d, 0x005f, 
-	0x0060, 0x0060, 0x0060, 0x0060, 0x0061, 0x0061, 0x0062, 0x0062, 
-	0x0063, 0x0064, 0x0065, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 
-	0x006a, 0x006b, 0x006c, 0x006e, 0x006f, 0x0070, 0x0071, 0x0073, 
-	0x0074, 0x0075, 0x0077, 0x0078, 0x007a, 0x007b, 0x007d, 0x007f, 
-	0x0060, 0x0060, 0x0060, 0x0060, 0x0061, 0x0061, 0x0062, 0x0062, 
-	0x0063, 0x0064, 0x0065, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 
-	0x006a, 0x006b, 0x006c, 0x006e, 0x006f, 0x0070, 0x0071, 0x0073, 
-	0x0074, 0x0075, 0x0077, 0x0078, 0x007a, 0x007b, 0x007d, 0x007f, 
-	0x0080, 0x0080, 0x0080, 0x0080, 0x0081, 0x0081, 0x0082, 0x0082, 
-	0x0083, 0x0084, 0x0085, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 
-	0x008a, 0x008b, 0x008c, 0x008e, 0x008f, 0x0090, 0x0091, 0x0093, 
-	0x0094, 0x0095, 0x0097, 0x0098, 0x009a, 0x009b, 0x009d, 0x009f, 
-	0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a1, 0x00a1, 0x00a2, 0x00a2, 
-	0x00a3, 0x00a4, 0x00a5, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 
-	0x00aa, 0x00ab, 0x00ac, 0x00ae, 0x00af, 0x00b0, 0x00b1, 0x00b3, 
-	0x00b4, 0x00b5, 0x00b7, 0x00b8, 0x00ba, 0x00bb, 0x00bd, 0x00bf, 
-	0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a1, 0x00a1, 0x00a2, 0x00a2, 
-	0x00a3, 0x00a4, 0x00a5, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 
-	0x00aa, 0x00ab, 0x00ac, 0x00ae, 0x00af, 0x00b0, 0x00b1, 0x00b3, 
-	0x00b4, 0x00b5, 0x00b7, 0x00b8, 0x00ba, 0x00bb, 0x00bd, 0x00bf, 
-	0x00c0, 0x00c0, 0x00c0, 0x00c0, 0x00c1, 0x00c1, 0x00c2, 0x00c2, 
-	0x00c3, 0x00c4, 0x00c5, 0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 
-	0x00ca, 0x00cb, 0x00cc, 0x00ce, 0x00cf, 0x00d0, 0x00d1, 0x00d3, 
-	0x00d4, 0x00d5, 0x00d7, 0x00d8, 0x00da, 0x00db, 0x00dd, 0x00df, 
-	0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e1, 0x00e1, 0x00e2, 0x00e2, 
-	0x00e3, 0x00e4, 0x00e5, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 
-	0x00ea, 0x00eb, 0x00ec, 0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x00f3, 
-	0x00f4, 0x00f5, 0x00f7, 0x00f8, 0x00fa, 0x00fb, 0x00fd, 0x00ff, 
-	0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e1, 0x00e1, 0x00e2, 0x00e2, 
-	0x00e3, 0x00e4, 0x00e5, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 
-	0x00ea, 0x00eb, 0x00ec, 0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x00f3, 
-	0x00f4, 0x00f5, 0x00f7, 0x00f8, 0x00fa, 0x00fb, 0x00fd, 0x00ff, 
-	0x0100, 0x0100, 0x0100, 0x0100, 0x0101, 0x0101, 0x0102, 0x0102, 
-	0x0103, 0x0104, 0x0105, 0x0105, 0x0106, 0x0107, 0x0108, 0x0109, 
-	0x010a, 0x010b, 0x010c, 0x010e, 0x010f, 0x0110, 0x0111, 0x0113, 
-	0x0114, 0x0115, 0x0117, 0x0118, 0x011a, 0x011b, 0x011d, 0x011f, 
-	0x0120, 0x0120, 0x0120, 0x0120, 0x0121, 0x0121, 0x0122, 0x0122, 
-	0x0123, 0x0124, 0x0125, 0x0125, 0x0126, 0x0127, 0x0128, 0x0129, 
-	0x012a, 0x012b, 0x012c, 0x012e, 0x012f, 0x0130, 0x0131, 0x0133, 
-	0x0134, 0x0135, 0x0137, 0x0138, 0x013a, 0x013b, 0x013d, 0x013f, 
-	0x0140, 0x0140, 0x0140, 0x0140, 0x0141, 0x0141, 0x0142, 0x0142, 
-	0x0143, 0x0144, 0x0145, 0x0145, 0x0146, 0x0147, 0x0148, 0x0149, 
-	0x014a, 0x014b, 0x014c, 0x014e, 0x014f, 0x0150, 0x0151, 0x0153, 
-	0x0154, 0x0155, 0x0157, 0x0158, 0x015a, 0x015b, 0x015d, 0x015f, 
-	0x0140, 0x0140, 0x0140, 0x0140, 0x0141, 0x0141, 0x0142, 0x0142, 
-	0x0143, 0x0144, 0x0145, 0x0145, 0x0146, 0x0147, 0x0148, 0x0149, 
-	0x014a, 0x014b, 0x014c, 0x014e, 0x014f, 0x0150, 0x0151, 0x0153, 
-	0x0154, 0x0155, 0x0157, 0x0158, 0x015a, 0x015b, 0x015d, 0x015f, 
-	0x0160, 0x0160, 0x0160, 0x0160, 0x0161, 0x0161, 0x0162, 0x0162, 
-	0x0163, 0x0164, 0x0165, 0x0165, 0x0166, 0x0167, 0x0168, 0x0169, 
-	0x016a, 0x016b, 0x016c, 0x016e, 0x016f, 0x0170, 0x0171, 0x0173, 
-	0x0174, 0x0175, 0x0177, 0x0178, 0x017a, 0x017b, 0x017d, 0x017f, 
-	0x0180, 0x0180, 0x0180, 0x0180, 0x0181, 0x0181, 0x0182, 0x0182, 
-	0x0183, 0x0184, 0x0185, 0x0185, 0x0186, 0x0187, 0x0188, 0x0189, 
-	0x018a, 0x018b, 0x018c, 0x018e, 0x018f, 0x0190, 0x0191, 0x0193, 
-	0x0194, 0x0195, 0x0197, 0x0198, 0x019a, 0x019b, 0x019d, 0x019f, 
-	0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a1, 0x01a1, 0x01a2, 0x01a2, 
-	0x01a3, 0x01a4, 0x01a5, 0x01a5, 0x01a6, 0x01a7, 0x01a8, 0x01a9, 
-	0x01aa, 0x01ab, 0x01ac, 0x01ae, 0x01af, 0x01b0, 0x01b1, 0x01b3, 
-	0x01b4, 0x01b5, 0x01b7, 0x01b8, 0x01ba, 0x01bb, 0x01bd, 0x01bf, 
-	0x01c0, 0x01c0, 0x01c0, 0x01c0, 0x01c1, 0x01c1, 0x01c2, 0x01c2, 
-	0x01c3, 0x01c4, 0x01c5, 0x01c5, 0x01c6, 0x01c7, 0x01c8, 0x01c9, 
-	0x01ca, 0x01cb, 0x01cc, 0x01ce, 0x01cf, 0x01d0, 0x01d1, 0x01d3, 
-	0x01d4, 0x01d5, 0x01d7, 0x01d8, 0x01da, 0x01db, 0x01dd, 0x01df, 
-	0x01e0, 0x01e0, 0x01e0, 0x01e0, 0x01e1, 0x01e1, 0x01e2, 0x01e2, 
-	0x01e3, 0x01e4, 0x01e5, 0x01e5, 0x01e6, 0x01e7, 0x01e8, 0x01e9, 
-	0x01ea, 0x01eb, 0x01ec, 0x01ee, 0x01ef, 0x01f0, 0x01f1, 0x01f3, 
-	0x01f4, 0x01f5, 0x01f7, 0x01f8, 0x01fa, 0x01fb, 0x01fd, 0x01ff, 
-	0x0200, 0x0200, 0x0200, 0x0200, 0x0201, 0x0201, 0x0202, 0x0202, 
-	0x0203, 0x0204, 0x0205, 0x0205, 0x0206, 0x0207, 0x0208, 0x0209, 
-	0x020a, 0x020b, 0x020c, 0x020e, 0x020f, 0x0210, 0x0211, 0x0213, 
-	0x0214, 0x0215, 0x0217, 0x0218, 0x021a, 0x021b, 0x021d, 0x021f, 
-	0x0220, 0x0220, 0x0220, 0x0220, 0x0221, 0x0221, 0x0222, 0x0222, 
-	0x0223, 0x0224, 0x0225, 0x0225, 0x0226, 0x0227, 0x0228, 0x0229, 
-	0x022a, 0x022b, 0x022c, 0x022e, 0x022f, 0x0230, 0x0231, 0x0233, 
-	0x0234, 0x0235, 0x0237, 0x0238, 0x023a, 0x023b, 0x023d, 0x023f, 
-	0x0240, 0x0240, 0x0240, 0x0240, 0x0241, 0x0241, 0x0242, 0x0242, 
-	0x0243, 0x0244, 0x0245, 0x0245, 0x0246, 0x0247, 0x0248, 0x0249, 
-	0x024a, 0x024b, 0x024c, 0x024e, 0x024f, 0x0250, 0x0251, 0x0253, 
-	0x0254, 0x0255, 0x0257, 0x0258, 0x025a, 0x025b, 0x025d, 0x025f, 
-	0x0260, 0x0260, 0x0260, 0x0260, 0x0261, 0x0261, 0x0262, 0x0262, 
-	0x0263, 0x0264, 0x0265, 0x0265, 0x0266, 0x0267, 0x0268, 0x0269, 
-	0x026a, 0x026b, 0x026c, 0x026e, 0x026f, 0x0270, 0x0271, 0x0273, 
-	0x0274, 0x0275, 0x0277, 0x0278, 0x027a, 0x027b, 0x027d, 0x027f, 
-	0x0280, 0x0280, 0x0280, 0x0280, 0x0281, 0x0281, 0x0282, 0x0282, 
-	0x0283, 0x0284, 0x0285, 0x0285, 0x0286, 0x0287, 0x0288, 0x0289, 
-	0x028a, 0x028b, 0x028c, 0x028e, 0x028f, 0x0290, 0x0291, 0x0293, 
-	0x0294, 0x0295, 0x0297, 0x0298, 0x029a, 0x029b, 0x029d, 0x029f, 
-	0x02a0, 0x02a0, 0x02a0, 0x02a0, 0x02a1, 0x02a1, 0x02a2, 0x02a2, 
-	0x02a3, 0x02a4, 0x02a5, 0x02a5, 0x02a6, 0x02a7, 0x02a8, 0x02a9, 
-	0x02aa, 0x02ab, 0x02ac, 0x02ae, 0x02af, 0x02b0, 0x02b1, 0x02b3, 
-	0x02b4, 0x02b5, 0x02b7, 0x02b8, 0x02ba, 0x02bb, 0x02bd, 0x02bf, 
-	0x02c0, 0x02c0, 0x02c0, 0x02c0, 0x02c1, 0x02c1, 0x02c2, 0x02c2, 
-	0x02c3, 0x02c4, 0x02c5, 0x02c5, 0x02c6, 0x02c7, 0x02c8, 0x02c9, 
-	0x02ca, 0x02cb, 0x02cc, 0x02ce, 0x02cf, 0x02d0, 0x02d1, 0x02d3, 
-	0x02d4, 0x02d5, 0x02d7, 0x02d8, 0x02da, 0x02db, 0x02dd, 0x02df, 
-	0x02e0, 0x02e0, 0x02e0, 0x02e0, 0x02e1, 0x02e1, 0x02e2, 0x02e2, 
-	0x02e3, 0x02e4, 0x02e5, 0x02e5, 0x02e6, 0x02e7, 0x02e8, 0x02e9, 
-	0x02ea, 0x02eb, 0x02ec, 0x02ee, 0x02ef, 0x02f0, 0x02f1, 0x02f3, 
-	0x02f4, 0x02f5, 0x02f7, 0x02f8, 0x02fa, 0x02fb, 0x02fd, 0x02ff, 
-	0x0300, 0x0300, 0x0300, 0x0300, 0x0301, 0x0301, 0x0302, 0x0302, 
-	0x0303, 0x0304, 0x0305, 0x0305, 0x0306, 0x0307, 0x0308, 0x0309, 
-	0x030a, 0x030b, 0x030c, 0x030e, 0x030f, 0x0310, 0x0311, 0x0313, 
-	0x0314, 0x0315, 0x0317, 0x0318, 0x031a, 0x031b, 0x031d, 0x031f, 
-	0x0320, 0x0320, 0x0320, 0x0320, 0x0321, 0x0321, 0x0322, 0x0322, 
-	0x0323, 0x0324, 0x0325, 0x0325, 0x0326, 0x0327, 0x0328, 0x0329, 
-	0x032a, 0x032b, 0x032c, 0x032e, 0x032f, 0x0330, 0x0331, 0x0333, 
-	0x0334, 0x0335, 0x0337, 0x0338, 0x033a, 0x033b, 0x033d, 0x033f, 
-	0x0340, 0x0340, 0x0340, 0x0340, 0x0341, 0x0341, 0x0342, 0x0342, 
-	0x0343, 0x0344, 0x0345, 0x0345, 0x0346, 0x0347, 0x0348, 0x0349, 
-	0x034a, 0x034b, 0x034c, 0x034e, 0x034f, 0x0350, 0x0351, 0x0353, 
-	0x0354, 0x0355, 0x0357, 0x0358, 0x035a, 0x035b, 0x035d, 0x035f, 
-	0x0380, 0x0380, 0x0380, 0x0380, 0x0381, 0x0381, 0x0382, 0x0382, 
-	0x0383, 0x0384, 0x0385, 0x0385, 0x0386, 0x0387, 0x0388, 0x0389, 
-	0x038a, 0x038b, 0x038c, 0x038e, 0x038f, 0x0390, 0x0391, 0x0393, 
-	0x0394, 0x0395, 0x0397, 0x0398, 0x039a, 0x039b, 0x039d, 0x039f, 
-	0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a1, 0x03a1, 0x03a2, 0x03a2, 
-	0x03a3, 0x03a4, 0x03a5, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 
-	0x03aa, 0x03ab, 0x03ac, 0x03ae, 0x03af, 0x03b0, 0x03b1, 0x03b3, 
-	0x03b4, 0x03b5, 0x03b7, 0x03b8, 0x03ba, 0x03bb, 0x03bd, 0x03bf, 
-	0x03c0, 0x03c0, 0x03c0, 0x03c0, 0x03c1, 0x03c1, 0x03c2, 0x03c2, 
-	0x03c3, 0x03c4, 0x03c5, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, 
-	0x03ca, 0x03cb, 0x03cc, 0x03ce, 0x03cf, 0x03d0, 0x03d1, 0x03d3, 
-	0x03d4, 0x03d5, 0x03d7, 0x03d8, 0x03da, 0x03db, 0x03dd, 0x03df, 
-	0x03e0, 0x03e0, 0x03e0, 0x03e0, 0x03e1, 0x03e1, 0x03e2, 0x03e2, 
-	0x03e3, 0x03e4, 0x03e5, 0x03e5, 0x03e6, 0x03e7, 0x03e8, 0x03e9, 
-	0x03ea, 0x03eb, 0x03ec, 0x03ee, 0x03ef, 0x03f0, 0x03f1, 0x03f3, 
-	0x03f4, 0x03f5, 0x03f7, 0x03f8, 0x03fa, 0x03fb, 0x03fd, 0x03ff, 
-	0x0400, 0x0400, 0x0400, 0x0400, 0x0401, 0x0401, 0x0402, 0x0402, 
-	0x0403, 0x0404, 0x0405, 0x0405, 0x0406, 0x0407, 0x0408, 0x0409, 
-	0x040a, 0x040b, 0x040c, 0x040e, 0x040f, 0x0410, 0x0411, 0x0413, 
-	0x0414, 0x0415, 0x0417, 0x0418, 0x041a, 0x041b, 0x041d, 0x041f, 
-	0x0440, 0x0440, 0x0440, 0x0440, 0x0441, 0x0441, 0x0442, 0x0442, 
-	0x0443, 0x0444, 0x0445, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 
-	0x044a, 0x044b, 0x044c, 0x044e, 0x044f, 0x0450, 0x0451, 0x0453, 
-	0x0454, 0x0455, 0x0457, 0x0458, 0x045a, 0x045b, 0x045d, 0x045f, 
-	0x0460, 0x0460, 0x0460, 0x0460, 0x0461, 0x0461, 0x0462, 0x0462, 
-	0x0463, 0x0464, 0x0465, 0x0465, 0x0466, 0x0467, 0x0468, 0x0469, 
-	0x046a, 0x046b, 0x046c, 0x046e, 0x046f, 0x0470, 0x0471, 0x0473, 
-	0x0474, 0x0475, 0x0477, 0x0478, 0x047a, 0x047b, 0x047d, 0x047f, 
-	0x0480, 0x0480, 0x0480, 0x0480, 0x0481, 0x0481, 0x0482, 0x0482, 
-	0x0483, 0x0484, 0x0485, 0x0485, 0x0486, 0x0487, 0x0488, 0x0489, 
-	0x048a, 0x048b, 0x048c, 0x048e, 0x048f, 0x0490, 0x0491, 0x0493, 
-	0x0494, 0x0495, 0x0497, 0x0498, 0x049a, 0x049b, 0x049d, 0x049f, 
-	0x04c0, 0x04c0, 0x04c0, 0x04c0, 0x04c1, 0x04c1, 0x04c2, 0x04c2, 
-	0x04c3, 0x04c4, 0x04c5, 0x04c5, 0x04c6, 0x04c7, 0x04c8, 0x04c9, 
-	0x04ca, 0x04cb, 0x04cc, 0x04ce, 0x04cf, 0x04d0, 0x04d1, 0x04d3, 
-	0x04d4, 0x04d5, 0x04d7, 0x04d8, 0x04da, 0x04db, 0x04dd, 0x04df, 
-	0x04e0, 0x04e0, 0x04e0, 0x04e0, 0x04e1, 0x04e1, 0x04e2, 0x04e2, 
-	0x04e3, 0x04e4, 0x04e5, 0x04e5, 0x04e6, 0x04e7, 0x04e8, 0x04e9, 
-	0x04ea, 0x04eb, 0x04ec, 0x04ee, 0x04ef, 0x04f0, 0x04f1, 0x04f3, 
-	0x04f4, 0x04f5, 0x04f7, 0x04f8, 0x04fa, 0x04fb, 0x04fd, 0x04ff, 
-	0x0500, 0x0500, 0x0500, 0x0500, 0x0501, 0x0501, 0x0502, 0x0502, 
-	0x0503, 0x0504, 0x0505, 0x0505, 0x0506, 0x0507, 0x0508, 0x0509, 
-	0x050a, 0x050b, 0x050c, 0x050e, 0x050f, 0x0510, 0x0511, 0x0513, 
-	0x0514, 0x0515, 0x0517, 0x0518, 0x051a, 0x051b, 0x051d, 0x051f, 
-	0x0540, 0x0540, 0x0540, 0x0540, 0x0541, 0x0541, 0x0542, 0x0542, 
-	0x0543, 0x0544, 0x0545, 0x0545, 0x0546, 0x0547, 0x0548, 0x0549, 
-	0x054a, 0x054b, 0x054c, 0x054e, 0x054f, 0x0550, 0x0551, 0x0553, 
-	0x0554, 0x0555, 0x0557, 0x0558, 0x055a, 0x055b, 0x055d, 0x055f, 
-	0x0560, 0x0560, 0x0560, 0x0560, 0x0561, 0x0561, 0x0562, 0x0562, 
-	0x0563, 0x0564, 0x0565, 0x0565, 0x0566, 0x0567, 0x0568, 0x0569, 
-	0x056a, 0x056b, 0x056c, 0x056e, 0x056f, 0x0570, 0x0571, 0x0573, 
-	0x0574, 0x0575, 0x0577, 0x0578, 0x057a, 0x057b, 0x057d, 0x057f, 
-	0x0580, 0x0580, 0x0580, 0x0580, 0x0581, 0x0581, 0x0582, 0x0582, 
-	0x0583, 0x0584, 0x0585, 0x0585, 0x0586, 0x0587, 0x0588, 0x0589, 
-	0x058a, 0x058b, 0x058c, 0x058e, 0x058f, 0x0590, 0x0591, 0x0593, 
-	0x0594, 0x0595, 0x0597, 0x0598, 0x059a, 0x059b, 0x059d, 0x059f, 
-	0x05c0, 0x05c0, 0x05c0, 0x05c0, 0x05c1, 0x05c1, 0x05c2, 0x05c2, 
-	0x05c3, 0x05c4, 0x05c5, 0x05c5, 0x05c6, 0x05c7, 0x05c8, 0x05c9, 
-	0x05ca, 0x05cb, 0x05cc, 0x05ce, 0x05cf, 0x05d0, 0x05d1, 0x05d3, 
-	0x05d4, 0x05d5, 0x05d7, 0x05d8, 0x05da, 0x05db, 0x05dd, 0x05df, 
-	0x05e0, 0x05e0, 0x05e0, 0x05e0, 0x05e1, 0x05e1, 0x05e2, 0x05e2, 
-	0x05e3, 0x05e4, 0x05e5, 0x05e5, 0x05e6, 0x05e7, 0x05e8, 0x05e9, 
-	0x05ea, 0x05eb, 0x05ec, 0x05ee, 0x05ef, 0x05f0, 0x05f1, 0x05f3, 
-	0x05f4, 0x05f5, 0x05f7, 0x05f8, 0x05fa, 0x05fb, 0x05fd, 0x05ff, 
-	0x0620, 0x0620, 0x0620, 0x0620, 0x0621, 0x0621, 0x0622, 0x0622, 
-	0x0623, 0x0624, 0x0625, 0x0625, 0x0626, 0x0627, 0x0628, 0x0629, 
-	0x062a, 0x062b, 0x062c, 0x062e, 0x062f, 0x0630, 0x0631, 0x0633, 
-	0x0634, 0x0635, 0x0637, 0x0638, 0x063a, 0x063b, 0x063d, 0x063f, 
-	0x0640, 0x0640, 0x0640, 0x0640, 0x0641, 0x0641, 0x0642, 0x0642, 
-	0x0643, 0x0644, 0x0645, 0x0645, 0x0646, 0x0647, 0x0648, 0x0649, 
-	0x064a, 0x064b, 0x064c, 0x064e, 0x064f, 0x0650, 0x0651, 0x0653, 
-	0x0654, 0x0655, 0x0657, 0x0658, 0x065a, 0x065b, 0x065d, 0x065f, 
-	0x0680, 0x0680, 0x0680, 0x0680, 0x0681, 0x0681, 0x0682, 0x0682, 
-	0x0683, 0x0684, 0x0685, 0x0685, 0x0686, 0x0687, 0x0688, 0x0689, 
-	0x068a, 0x068b, 0x068c, 0x068e, 0x068f, 0x0690, 0x0691, 0x0693, 
-	0x0694, 0x0695, 0x0697, 0x0698, 0x069a, 0x069b, 0x069d, 0x069f, 
-	0x06a0, 0x06a0, 0x06a0, 0x06a0, 0x06a1, 0x06a1, 0x06a2, 0x06a2, 
-	0x06a3, 0x06a4, 0x06a5, 0x06a5, 0x06a6, 0x06a7, 0x06a8, 0x06a9, 
-	0x06aa, 0x06ab, 0x06ac, 0x06ae, 0x06af, 0x06b0, 0x06b1, 0x06b3, 
-	0x06b4, 0x06b5, 0x06b7, 0x06b8, 0x06ba, 0x06bb, 0x06bd, 0x06bf, 
-	0x06e0, 0x06e0, 0x06e0, 0x06e0, 0x06e1, 0x06e1, 0x06e2, 0x06e2, 
-	0x06e3, 0x06e4, 0x06e5, 0x06e5, 0x06e6, 0x06e7, 0x06e8, 0x06e9, 
-	0x06ea, 0x06eb, 0x06ec, 0x06ee, 0x06ef, 0x06f0, 0x06f1, 0x06f3, 
-	0x06f4, 0x06f5, 0x06f7, 0x06f8, 0x06fa, 0x06fb, 0x06fd, 0x06ff, 
-	0x0700, 0x0700, 0x0700, 0x0700, 0x0701, 0x0701, 0x0702, 0x0702, 
-	0x0703, 0x0704, 0x0705, 0x0705, 0x0706, 0x0707, 0x0708, 0x0709, 
-	0x070a, 0x070b, 0x070c, 0x070e, 0x070f, 0x0710, 0x0711, 0x0713, 
-	0x0714, 0x0715, 0x0717, 0x0718, 0x071a, 0x071b, 0x071d, 0x071f, 
-	0x0740, 0x0740, 0x0740, 0x0740, 0x0741, 0x0741, 0x0742, 0x0742, 
-	0x0743, 0x0744, 0x0745, 0x0745, 0x0746, 0x0747, 0x0748, 0x0749, 
-	0x074a, 0x074b, 0x074c, 0x074e, 0x074f, 0x0750, 0x0751, 0x0753, 
-	0x0754, 0x0755, 0x0757, 0x0758, 0x075a, 0x075b, 0x075d, 0x075f, 
-	0x0760, 0x0760, 0x0760, 0x0760, 0x0761, 0x0761, 0x0762, 0x0762, 
-	0x0763, 0x0764, 0x0765, 0x0765, 0x0766, 0x0767, 0x0768, 0x0769, 
-	0x076a, 0x076b, 0x076c, 0x076e, 0x076f, 0x0770, 0x0771, 0x0773, 
-	0x0774, 0x0775, 0x0777, 0x0778, 0x077a, 0x077b, 0x077d, 0x077f, 
-	0x07a0, 0x07a0, 0x07a0, 0x07a0, 0x07a1, 0x07a1, 0x07a2, 0x07a2, 
-	0x07a3, 0x07a4, 0x07a5, 0x07a5, 0x07a6, 0x07a7, 0x07a8, 0x07a9, 
-	0x07aa, 0x07ab, 0x07ac, 0x07ae, 0x07af, 0x07b0, 0x07b1, 0x07b3, 
-	0x07b4, 0x07b5, 0x07b7, 0x07b8, 0x07ba, 0x07bb, 0x07bd, 0x07bf, 
-	0x07e0, 0x07e0, 0x07e0, 0x07e0, 0x07e1, 0x07e1, 0x07e2, 0x07e2, 
-	0x07e3, 0x07e4, 0x07e5, 0x07e5, 0x07e6, 0x07e7, 0x07e8, 0x07e9, 
-	0x07ea, 0x07eb, 0x07ec, 0x07ee, 0x07ef, 0x07f0, 0x07f1, 0x07f3, 
-	0x07f4, 0x07f5, 0x07f7, 0x07f8, 0x07fa, 0x07fb, 0x07fd, 0x07ff, 
-	0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0002, 0x0002, 
-	0x0003, 0x0004, 0x0005, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 
-	0x000a, 0x000b, 0x000c, 0x000e, 0x000f, 0x0010, 0x0011, 0x0013, 
-	0x0014, 0x0015, 0x0017, 0x0018, 0x001a, 0x001b, 0x001d, 0x001f, 
-	0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0002, 0x0002, 
-	0x0003, 0x0004, 0x0005, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 
-	0x000a, 0x000b, 0x000c, 0x000e, 0x000f, 0x0010, 0x0011, 0x0013, 
-	0x0014, 0x0015, 0x0017, 0x0018, 0x001a, 0x001b, 0x001d, 0x001f, 
-	0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0002, 0x0002, 
-	0x0003, 0x0004, 0x0005, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 
-	0x000a, 0x000b, 0x000c, 0x000e, 0x000f, 0x0010, 0x0011, 0x0013, 
-	0x0014, 0x0015, 0x0017, 0x0018, 0x001a, 0x001b, 0x001d, 0x001f, 
-	0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0002, 0x0002, 
-	0x0003, 0x0004, 0x0005, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 
-	0x000a, 0x000b, 0x000c, 0x000e, 0x000f, 0x0010, 0x0011, 0x0013, 
-	0x0014, 0x0015, 0x0017, 0x0018, 0x001a, 0x001b, 0x001d, 0x001f, 
-	0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0002, 0x0002, 
-	0x0003, 0x0004, 0x0005, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 
-	0x000a, 0x000b, 0x000c, 0x000e, 0x000f, 0x0010, 0x0011, 0x0013, 
-	0x0014, 0x0015, 0x0017, 0x0018, 0x001a, 0x001b, 0x001d, 0x001f, 
-	0x0020, 0x0020, 0x0020, 0x0020, 0x0021, 0x0021, 0x0022, 0x0022, 
-	0x0023, 0x0024, 0x0025, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 
-	0x002a, 0x002b, 0x002c, 0x002e, 0x002f, 0x0030, 0x0031, 0x0033, 
-	0x0034, 0x0035, 0x0037, 0x0038, 0x003a, 0x003b, 0x003d, 0x003f, 
-	0x0020, 0x0020, 0x0020, 0x0020, 0x0021, 0x0021, 0x0022, 0x0022, 
-	0x0023, 0x0024, 0x0025, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 
-	0x002a, 0x002b, 0x002c, 0x002e, 0x002f, 0x0030, 0x0031, 0x0033, 
-	0x0034, 0x0035, 0x0037, 0x0038, 0x003a, 0x003b, 0x003d, 0x003f, 
-	0x0020, 0x0020, 0x0020, 0x0020, 0x0021, 0x0021, 0x0022, 0x0022, 
-	0x0023, 0x0024, 0x0025, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 
-	0x002a, 0x002b, 0x002c, 0x002e, 0x002f, 0x0030, 0x0031, 0x0033, 
-	0x0034, 0x0035, 0x0037, 0x0038, 0x003a, 0x003b, 0x003d, 0x003f, 
-	0x0040, 0x0040, 0x0040, 0x0040, 0x0041, 0x0041, 0x0042, 0x0042, 
-	0x0043, 0x0044, 0x0045, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 
-	0x004a, 0x004b, 0x004c, 0x004e, 0x004f, 0x0050, 0x0051, 0x0053, 
-	0x0054, 0x0055, 0x0057, 0x0058, 0x005a, 0x005b, 0x005d, 0x005f, 
-	0x0040, 0x0040, 0x0040, 0x0040, 0x0041, 0x0041, 0x0042, 0x0042, 
-	0x0043, 0x0044, 0x0045, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 
-	0x004a, 0x004b, 0x004c, 0x004e, 0x004f, 0x0050, 0x0051, 0x0053, 
-	0x0054, 0x0055, 0x0057, 0x0058, 0x005a, 0x005b, 0x005d, 0x005f, 
-	0x0060, 0x0060, 0x0060, 0x0060, 0x0061, 0x0061, 0x0062, 0x0062, 
-	0x0063, 0x0064, 0x0065, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 
-	0x006a, 0x006b, 0x006c, 0x006e, 0x006f, 0x0070, 0x0071, 0x0073, 
-	0x0074, 0x0075, 0x0077, 0x0078, 0x007a, 0x007b, 0x007d, 0x007f, 
-	0x0060, 0x0060, 0x0060, 0x0060, 0x0061, 0x0061, 0x0062, 0x0062, 
-	0x0063, 0x0064, 0x0065, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 
-	0x006a, 0x006b, 0x006c, 0x006e, 0x006f, 0x0070, 0x0071, 0x0073, 
-	0x0074, 0x0075, 0x0077, 0x0078, 0x007a, 0x007b, 0x007d, 0x007f, 
-	0x0080, 0x0080, 0x0080, 0x0080, 0x0081, 0x0081, 0x0082, 0x0082, 
-	0x0083, 0x0084, 0x0085, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 
-	0x008a, 0x008b, 0x008c, 0x008e, 0x008f, 0x0090, 0x0091, 0x0093, 
-	0x0094, 0x0095, 0x0097, 0x0098, 0x009a, 0x009b, 0x009d, 0x009f, 
-	0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a1, 0x00a1, 0x00a2, 0x00a2, 
-	0x00a3, 0x00a4, 0x00a5, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 
-	0x00aa, 0x00ab, 0x00ac, 0x00ae, 0x00af, 0x00b0, 0x00b1, 0x00b3, 
-	0x00b4, 0x00b5, 0x00b7, 0x00b8, 0x00ba, 0x00bb, 0x00bd, 0x00bf, 
-	0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a1, 0x00a1, 0x00a2, 0x00a2, 
-	0x00a3, 0x00a4, 0x00a5, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 
-	0x00aa, 0x00ab, 0x00ac, 0x00ae, 0x00af, 0x00b0, 0x00b1, 0x00b3, 
-	0x00b4, 0x00b5, 0x00b7, 0x00b8, 0x00ba, 0x00bb, 0x00bd, 0x00bf, 
-	0x00c0, 0x00c0, 0x00c0, 0x00c0, 0x00c1, 0x00c1, 0x00c2, 0x00c2, 
-	0x00c3, 0x00c4, 0x00c5, 0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 
-	0x00ca, 0x00cb, 0x00cc, 0x00ce, 0x00cf, 0x00d0, 0x00d1, 0x00d3, 
-	0x00d4, 0x00d5, 0x00d7, 0x00d8, 0x00da, 0x00db, 0x00dd, 0x00df, 
-	0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e1, 0x00e1, 0x00e2, 0x00e2, 
-	0x00e3, 0x00e4, 0x00e5, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 
-	0x00ea, 0x00eb, 0x00ec, 0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x00f3, 
-	0x00f4, 0x00f5, 0x00f7, 0x00f8, 0x00fa, 0x00fb, 0x00fd, 0x00ff, 
-	0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e1, 0x00e1, 0x00e2, 0x00e2, 
-	0x00e3, 0x00e4, 0x00e5, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 
-	0x00ea, 0x00eb, 0x00ec, 0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x00f3, 
-	0x00f4, 0x00f5, 0x00f7, 0x00f8, 0x00fa, 0x00fb, 0x00fd, 0x00ff, 
-	0x0100, 0x0100, 0x0100, 0x0100, 0x0101, 0x0101, 0x0102, 0x0102, 
-	0x0103, 0x0104, 0x0105, 0x0105, 0x0106, 0x0107, 0x0108, 0x0109, 
-	0x010a, 0x010b, 0x010c, 0x010e, 0x010f, 0x0110, 0x0111, 0x0113, 
-	0x0114, 0x0115, 0x0117, 0x0118, 0x011a, 0x011b, 0x011d, 0x011f, 
-	0x0120, 0x0120, 0x0120, 0x0120, 0x0121, 0x0121, 0x0122, 0x0122, 
-	0x0123, 0x0124, 0x0125, 0x0125, 0x0126, 0x0127, 0x0128, 0x0129, 
-	0x012a, 0x012b, 0x012c, 0x012e, 0x012f, 0x0130, 0x0131, 0x0133, 
-	0x0134, 0x0135, 0x0137, 0x0138, 0x013a, 0x013b, 0x013d, 0x013f, 
-	0x0140, 0x0140, 0x0140, 0x0140, 0x0141, 0x0141, 0x0142, 0x0142, 
-	0x0143, 0x0144, 0x0145, 0x0145, 0x0146, 0x0147, 0x0148, 0x0149, 
-	0x014a, 0x014b, 0x014c, 0x014e, 0x014f, 0x0150, 0x0151, 0x0153, 
-	0x0154, 0x0155, 0x0157, 0x0158, 0x015a, 0x015b, 0x015d, 0x015f, 
-	0x0140, 0x0140, 0x0140, 0x0140, 0x0141, 0x0141, 0x0142, 0x0142, 
-	0x0143, 0x0144, 0x0145, 0x0145, 0x0146, 0x0147, 0x0148, 0x0149, 
-	0x014a, 0x014b, 0x014c, 0x014e, 0x014f, 0x0150, 0x0151, 0x0153, 
-	0x0154, 0x0155, 0x0157, 0x0158, 0x015a, 0x015b, 0x015d, 0x015f, 
-	0x0160, 0x0160, 0x0160, 0x0160, 0x0161, 0x0161, 0x0162, 0x0162, 
-	0x0163, 0x0164, 0x0165, 0x0165, 0x0166, 0x0167, 0x0168, 0x0169, 
-	0x016a, 0x016b, 0x016c, 0x016e, 0x016f, 0x0170, 0x0171, 0x0173, 
-	0x0174, 0x0175, 0x0177, 0x0178, 0x017a, 0x017b, 0x017d, 0x017f, 
-	0x0180, 0x0180, 0x0180, 0x0180, 0x0181, 0x0181, 0x0182, 0x0182, 
-	0x0183, 0x0184, 0x0185, 0x0185, 0x0186, 0x0187, 0x0188, 0x0189, 
-	0x018a, 0x018b, 0x018c, 0x018e, 0x018f, 0x0190, 0x0191, 0x0193, 
-	0x0194, 0x0195, 0x0197, 0x0198, 0x019a, 0x019b, 0x019d, 0x019f, 
-	0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a1, 0x01a1, 0x01a2, 0x01a2, 
-	0x01a3, 0x01a4, 0x01a5, 0x01a5, 0x01a6, 0x01a7, 0x01a8, 0x01a9, 
-	0x01aa, 0x01ab, 0x01ac, 0x01ae, 0x01af, 0x01b0, 0x01b1, 0x01b3, 
-	0x01b4, 0x01b5, 0x01b7, 0x01b8, 0x01ba, 0x01bb, 0x01bd, 0x01bf, 
-	0x01c0, 0x01c0, 0x01c0, 0x01c0, 0x01c1, 0x01c1, 0x01c2, 0x01c2, 
-	0x01c3, 0x01c4, 0x01c5, 0x01c5, 0x01c6, 0x01c7, 0x01c8, 0x01c9, 
-	0x01ca, 0x01cb, 0x01cc, 0x01ce, 0x01cf, 0x01d0, 0x01d1, 0x01d3, 
-	0x01d4, 0x01d5, 0x01d7, 0x01d8, 0x01da, 0x01db, 0x01dd, 0x01df, 
-	0x01e0, 0x01e0, 0x01e0, 0x01e0, 0x01e1, 0x01e1, 0x01e2, 0x01e2, 
-	0x01e3, 0x01e4, 0x01e5, 0x01e5, 0x01e6, 0x01e7, 0x01e8, 0x01e9, 
-	0x01ea, 0x01eb, 0x01ec, 0x01ee, 0x01ef, 0x01f0, 0x01f1, 0x01f3, 
-	0x01f4, 0x01f5, 0x01f7, 0x01f8, 0x01fa, 0x01fb, 0x01fd, 0x01ff, 
-	0x0200, 0x0200, 0x0200, 0x0200, 0x0201, 0x0201, 0x0202, 0x0202, 
-	0x0203, 0x0204, 0x0205, 0x0205, 0x0206, 0x0207, 0x0208, 0x0209, 
-	0x020a, 0x020b, 0x020c, 0x020e, 0x020f, 0x0210, 0x0211, 0x0213, 
-	0x0214, 0x0215, 0x0217, 0x0218, 0x021a, 0x021b, 0x021d, 0x021f, 
-	0x0220, 0x0220, 0x0220, 0x0220, 0x0221, 0x0221, 0x0222, 0x0222, 
-	0x0223, 0x0224, 0x0225, 0x0225, 0x0226, 0x0227, 0x0228, 0x0229, 
-	0x022a, 0x022b, 0x022c, 0x022e, 0x022f, 0x0230, 0x0231, 0x0233, 
-	0x0234, 0x0235, 0x0237, 0x0238, 0x023a, 0x023b, 0x023d, 0x023f, 
-	0x0240, 0x0240, 0x0240, 0x0240, 0x0241, 0x0241, 0x0242, 0x0242, 
-	0x0243, 0x0244, 0x0245, 0x0245, 0x0246, 0x0247, 0x0248, 0x0249, 
-	0x024a, 0x024b, 0x024c, 0x024e, 0x024f, 0x0250, 0x0251, 0x0253, 
-	0x0254, 0x0255, 0x0257, 0x0258, 0x025a, 0x025b, 0x025d, 0x025f, 
-	0x0260, 0x0260, 0x0260, 0x0260, 0x0261, 0x0261, 0x0262, 0x0262, 
-	0x0263, 0x0264, 0x0265, 0x0265, 0x0266, 0x0267, 0x0268, 0x0269, 
-	0x026a, 0x026b, 0x026c, 0x026e, 0x026f, 0x0270, 0x0271, 0x0273, 
-	0x0274, 0x0275, 0x0277, 0x0278, 0x027a, 0x027b, 0x027d, 0x027f, 
-	0x0280, 0x0280, 0x0280, 0x0280, 0x0281, 0x0281, 0x0282, 0x0282, 
-	0x0283, 0x0284, 0x0285, 0x0285, 0x0286, 0x0287, 0x0288, 0x0289, 
-	0x028a, 0x028b, 0x028c, 0x028e, 0x028f, 0x0290, 0x0291, 0x0293, 
-	0x0294, 0x0295, 0x0297, 0x0298, 0x029a, 0x029b, 0x029d, 0x029f, 
-	0x02a0, 0x02a0, 0x02a0, 0x02a0, 0x02a1, 0x02a1, 0x02a2, 0x02a2, 
-	0x02a3, 0x02a4, 0x02a5, 0x02a5, 0x02a6, 0x02a7, 0x02a8, 0x02a9, 
-	0x02aa, 0x02ab, 0x02ac, 0x02ae, 0x02af, 0x02b0, 0x02b1, 0x02b3, 
-	0x02b4, 0x02b5, 0x02b7, 0x02b8, 0x02ba, 0x02bb, 0x02bd, 0x02bf, 
-	0x02c0, 0x02c0, 0x02c0, 0x02c0, 0x02c1, 0x02c1, 0x02c2, 0x02c2, 
-	0x02c3, 0x02c4, 0x02c5, 0x02c5, 0x02c6, 0x02c7, 0x02c8, 0x02c9, 
-	0x02ca, 0x02cb, 0x02cc, 0x02ce, 0x02cf, 0x02d0, 0x02d1, 0x02d3, 
-	0x02d4, 0x02d5, 0x02d7, 0x02d8, 0x02da, 0x02db, 0x02dd, 0x02df, 
-	0x02e0, 0x02e0, 0x02e0, 0x02e0, 0x02e1, 0x02e1, 0x02e2, 0x02e2, 
-	0x02e3, 0x02e4, 0x02e5, 0x02e5, 0x02e6, 0x02e7, 0x02e8, 0x02e9, 
-	0x02ea, 0x02eb, 0x02ec, 0x02ee, 0x02ef, 0x02f0, 0x02f1, 0x02f3, 
-	0x02f4, 0x02f5, 0x02f7, 0x02f8, 0x02fa, 0x02fb, 0x02fd, 0x02ff, 
-	0x0300, 0x0300, 0x0300, 0x0300, 0x0301, 0x0301, 0x0302, 0x0302, 
-	0x0303, 0x0304, 0x0305, 0x0305, 0x0306, 0x0307, 0x0308, 0x0309, 
-	0x030a, 0x030b, 0x030c, 0x030e, 0x030f, 0x0310, 0x0311, 0x0313, 
-	0x0314, 0x0315, 0x0317, 0x0318, 0x031a, 0x031b, 0x031d, 0x031f, 
-	0x0320, 0x0320, 0x0320, 0x0320, 0x0321, 0x0321, 0x0322, 0x0322, 
-	0x0323, 0x0324, 0x0325, 0x0325, 0x0326, 0x0327, 0x0328, 0x0329, 
-	0x032a, 0x032b, 0x032c, 0x032e, 0x032f, 0x0330, 0x0331, 0x0333, 
-	0x0334, 0x0335, 0x0337, 0x0338, 0x033a, 0x033b, 0x033d, 0x033f, 
-	0x0340, 0x0340, 0x0340, 0x0340, 0x0341, 0x0341, 0x0342, 0x0342, 
-	0x0343, 0x0344, 0x0345, 0x0345, 0x0346, 0x0347, 0x0348, 0x0349, 
-	0x034a, 0x034b, 0x034c, 0x034e, 0x034f, 0x0350, 0x0351, 0x0353, 
-	0x0354, 0x0355, 0x0357, 0x0358, 0x035a, 0x035b, 0x035d, 0x035f, 
-	0x0380, 0x0380, 0x0380, 0x0380, 0x0381, 0x0381, 0x0382, 0x0382, 
-	0x0383, 0x0384, 0x0385, 0x0385, 0x0386, 0x0387, 0x0388, 0x0389, 
-	0x038a, 0x038b, 0x038c, 0x038e, 0x038f, 0x0390, 0x0391, 0x0393, 
-	0x0394, 0x0395, 0x0397, 0x0398, 0x039a, 0x039b, 0x039d, 0x039f, 
-	0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a1, 0x03a1, 0x03a2, 0x03a2, 
-	0x03a3, 0x03a4, 0x03a5, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 
-	0x03aa, 0x03ab, 0x03ac, 0x03ae, 0x03af, 0x03b0, 0x03b1, 0x03b3, 
-	0x03b4, 0x03b5, 0x03b7, 0x03b8, 0x03ba, 0x03bb, 0x03bd, 0x03bf, 
-	0x03c0, 0x03c0, 0x03c0, 0x03c0, 0x03c1, 0x03c1, 0x03c2, 0x03c2, 
-	0x03c3, 0x03c4, 0x03c5, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, 
-	0x03ca, 0x03cb, 0x03cc, 0x03ce, 0x03cf, 0x03d0, 0x03d1, 0x03d3, 
-	0x03d4, 0x03d5, 0x03d7, 0x03d8, 0x03da, 0x03db, 0x03dd, 0x03df, 
-	0x03e0, 0x03e0, 0x03e0, 0x03e0, 0x03e1, 0x03e1, 0x03e2, 0x03e2, 
-	0x03e3, 0x03e4, 0x03e5, 0x03e5, 0x03e6, 0x03e7, 0x03e8, 0x03e9, 
-	0x03ea, 0x03eb, 0x03ec, 0x03ee, 0x03ef, 0x03f0, 0x03f1, 0x03f3, 
-	0x03f4, 0x03f5, 0x03f7, 0x03f8, 0x03fa, 0x03fb, 0x03fd, 0x03ff, 
-	0x0400, 0x0400, 0x0400, 0x0400, 0x0401, 0x0401, 0x0402, 0x0402, 
-	0x0403, 0x0404, 0x0405, 0x0405, 0x0406, 0x0407, 0x0408, 0x0409, 
-	0x040a, 0x040b, 0x040c, 0x040e, 0x040f, 0x0410, 0x0411, 0x0413, 
-	0x0414, 0x0415, 0x0417, 0x0418, 0x041a, 0x041b, 0x041d, 0x041f, 
-	0x0440, 0x0440, 0x0440, 0x0440, 0x0441, 0x0441, 0x0442, 0x0442, 
-	0x0443, 0x0444, 0x0445, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 
-	0x044a, 0x044b, 0x044c, 0x044e, 0x044f, 0x0450, 0x0451, 0x0453, 
-	0x0454, 0x0455, 0x0457, 0x0458, 0x045a, 0x045b, 0x045d, 0x045f, 
-	0x0460, 0x0460, 0x0460, 0x0460, 0x0461, 0x0461, 0x0462, 0x0462, 
-	0x0463, 0x0464, 0x0465, 0x0465, 0x0466, 0x0467, 0x0468, 0x0469, 
-	0x046a, 0x046b, 0x046c, 0x046e, 0x046f, 0x0470, 0x0471, 0x0473, 
-	0x0474, 0x0475, 0x0477, 0x0478, 0x047a, 0x047b, 0x047d, 0x047f, 
-	0x0480, 0x0480, 0x0480, 0x0480, 0x0481, 0x0481, 0x0482, 0x0482, 
-	0x0483, 0x0484, 0x0485, 0x0485, 0x0486, 0x0487, 0x0488, 0x0489, 
-	0x048a, 0x048b, 0x048c, 0x048e, 0x048f, 0x0490, 0x0491, 0x0493, 
-	0x0494, 0x0495, 0x0497, 0x0498, 0x049a, 0x049b, 0x049d, 0x049f, 
-	0x04c0, 0x04c0, 0x04c0, 0x04c0, 0x04c1, 0x04c1, 0x04c2, 0x04c2, 
-	0x04c3, 0x04c4, 0x04c5, 0x04c5, 0x04c6, 0x04c7, 0x04c8, 0x04c9, 
-	0x04ca, 0x04cb, 0x04cc, 0x04ce, 0x04cf, 0x04d0, 0x04d1, 0x04d3, 
-	0x04d4, 0x04d5, 0x04d7, 0x04d8, 0x04da, 0x04db, 0x04dd, 0x04df, 
-	0x04e0, 0x04e0, 0x04e0, 0x04e0, 0x04e1, 0x04e1, 0x04e2, 0x04e2, 
-	0x04e3, 0x04e4, 0x04e5, 0x04e5, 0x04e6, 0x04e7, 0x04e8, 0x04e9, 
-	0x04ea, 0x04eb, 0x04ec, 0x04ee, 0x04ef, 0x04f0, 0x04f1, 0x04f3, 
-	0x04f4, 0x04f5, 0x04f7, 0x04f8, 0x04fa, 0x04fb, 0x04fd, 0x04ff, 
-	0x0500, 0x0500, 0x0500, 0x0500, 0x0501, 0x0501, 0x0502, 0x0502, 
-	0x0503, 0x0504, 0x0505, 0x0505, 0x0506, 0x0507, 0x0508, 0x0509, 
-	0x050a, 0x050b, 0x050c, 0x050e, 0x050f, 0x0510, 0x0511, 0x0513, 
-	0x0514, 0x0515, 0x0517, 0x0518, 0x051a, 0x051b, 0x051d, 0x051f, 
-	0x0540, 0x0540, 0x0540, 0x0540, 0x0541, 0x0541, 0x0542, 0x0542, 
-	0x0543, 0x0544, 0x0545, 0x0545, 0x0546, 0x0547, 0x0548, 0x0549, 
-	0x054a, 0x054b, 0x054c, 0x054e, 0x054f, 0x0550, 0x0551, 0x0553, 
-	0x0554, 0x0555, 0x0557, 0x0558, 0x055a, 0x055b, 0x055d, 0x055f, 
-	0x0560, 0x0560, 0x0560, 0x0560, 0x0561, 0x0561, 0x0562, 0x0562, 
-	0x0563, 0x0564, 0x0565, 0x0565, 0x0566, 0x0567, 0x0568, 0x0569, 
-	0x056a, 0x056b, 0x056c, 0x056e, 0x056f, 0x0570, 0x0571, 0x0573, 
-	0x0574, 0x0575, 0x0577, 0x0578, 0x057a, 0x057b, 0x057d, 0x057f, 
-	0x0580, 0x0580, 0x0580, 0x0580, 0x0581, 0x0581, 0x0582, 0x0582, 
-	0x0583, 0x0584, 0x0585, 0x0585, 0x0586, 0x0587, 0x0588, 0x0589, 
-	0x058a, 0x058b, 0x058c, 0x058e, 0x058f, 0x0590, 0x0591, 0x0593, 
-	0x0594, 0x0595, 0x0597, 0x0598, 0x059a, 0x059b, 0x059d, 0x059f, 
-	0x05c0, 0x05c0, 0x05c0, 0x05c0, 0x05c1, 0x05c1, 0x05c2, 0x05c2, 
-	0x05c3, 0x05c4, 0x05c5, 0x05c5, 0x05c6, 0x05c7, 0x05c8, 0x05c9, 
-	0x05ca, 0x05cb, 0x05cc, 0x05ce, 0x05cf, 0x05d0, 0x05d1, 0x05d3, 
-	0x05d4, 0x05d5, 0x05d7, 0x05d8, 0x05da, 0x05db, 0x05dd, 0x05df, 
-	0x05e0, 0x05e0, 0x05e0, 0x05e0, 0x05e1, 0x05e1, 0x05e2, 0x05e2, 
-	0x05e3, 0x05e4, 0x05e5, 0x05e5, 0x05e6, 0x05e7, 0x05e8, 0x05e9, 
-	0x05ea, 0x05eb, 0x05ec, 0x05ee, 0x05ef, 0x05f0, 0x05f1, 0x05f3, 
-	0x05f4, 0x05f5, 0x05f7, 0x05f8, 0x05fa, 0x05fb, 0x05fd, 0x05ff, 
-	0x0620, 0x0620, 0x0620, 0x0620, 0x0621, 0x0621, 0x0622, 0x0622, 
-	0x0623, 0x0624, 0x0625, 0x0625, 0x0626, 0x0627, 0x0628, 0x0629, 
-	0x062a, 0x062b, 0x062c, 0x062e, 0x062f, 0x0630, 0x0631, 0x0633, 
-	0x0634, 0x0635, 0x0637, 0x0638, 0x063a, 0x063b, 0x063d, 0x063f, 
-	0x0640, 0x0640, 0x0640, 0x0640, 0x0641, 0x0641, 0x0642, 0x0642, 
-	0x0643, 0x0644, 0x0645, 0x0645, 0x0646, 0x0647, 0x0648, 0x0649, 
-	0x064a, 0x064b, 0x064c, 0x064e, 0x064f, 0x0650, 0x0651, 0x0653, 
-	0x0654, 0x0655, 0x0657, 0x0658, 0x065a, 0x065b, 0x065d, 0x065f, 
-	0x0680, 0x0680, 0x0680, 0x0680, 0x0681, 0x0681, 0x0682, 0x0682, 
-	0x0683, 0x0684, 0x0685, 0x0685, 0x0686, 0x0687, 0x0688, 0x0689, 
-	0x068a, 0x068b, 0x068c, 0x068e, 0x068f, 0x0690, 0x0691, 0x0693, 
-	0x0694, 0x0695, 0x0697, 0x0698, 0x069a, 0x069b, 0x069d, 0x069f, 
-	0x06a0, 0x06a0, 0x06a0, 0x06a0, 0x06a1, 0x06a1, 0x06a2, 0x06a2, 
-	0x06a3, 0x06a4, 0x06a5, 0x06a5, 0x06a6, 0x06a7, 0x06a8, 0x06a9, 
-	0x06aa, 0x06ab, 0x06ac, 0x06ae, 0x06af, 0x06b0, 0x06b1, 0x06b3, 
-	0x06b4, 0x06b5, 0x06b7, 0x06b8, 0x06ba, 0x06bb, 0x06bd, 0x06bf, 
-	0x06e0, 0x06e0, 0x06e0, 0x06e0, 0x06e1, 0x06e1, 0x06e2, 0x06e2, 
-	0x06e3, 0x06e4, 0x06e5, 0x06e5, 0x06e6, 0x06e7, 0x06e8, 0x06e9, 
-	0x06ea, 0x06eb, 0x06ec, 0x06ee, 0x06ef, 0x06f0, 0x06f1, 0x06f3, 
-	0x06f4, 0x06f5, 0x06f7, 0x06f8, 0x06fa, 0x06fb, 0x06fd, 0x06ff, 
-	0x0700, 0x0700, 0x0700, 0x0700, 0x0701, 0x0701, 0x0702, 0x0702, 
-	0x0703, 0x0704, 0x0705, 0x0705, 0x0706, 0x0707, 0x0708, 0x0709, 
-	0x070a, 0x070b, 0x070c, 0x070e, 0x070f, 0x0710, 0x0711, 0x0713, 
-	0x0714, 0x0715, 0x0717, 0x0718, 0x071a, 0x071b, 0x071d, 0x071f, 
-	0x0740, 0x0740, 0x0740, 0x0740, 0x0741, 0x0741, 0x0742, 0x0742, 
-	0x0743, 0x0744, 0x0745, 0x0745, 0x0746, 0x0747, 0x0748, 0x0749, 
-	0x074a, 0x074b, 0x074c, 0x074e, 0x074f, 0x0750, 0x0751, 0x0753, 
-	0x0754, 0x0755, 0x0757, 0x0758, 0x075a, 0x075b, 0x075d, 0x075f, 
-	0x0760, 0x0760, 0x0760, 0x0760, 0x0761, 0x0761, 0x0762, 0x0762, 
-	0x0763, 0x0764, 0x0765, 0x0765, 0x0766, 0x0767, 0x0768, 0x0769, 
-	0x076a, 0x076b, 0x076c, 0x076e, 0x076f, 0x0770, 0x0771, 0x0773, 
-	0x0774, 0x0775, 0x0777, 0x0778, 0x077a, 0x077b, 0x077d, 0x077f, 
-	0x07a0, 0x07a0, 0x07a0, 0x07a0, 0x07a1, 0x07a1, 0x07a2, 0x07a2, 
-	0x07a3, 0x07a4, 0x07a5, 0x07a5, 0x07a6, 0x07a7, 0x07a8, 0x07a9, 
-	0x07aa, 0x07ab, 0x07ac, 0x07ae, 0x07af, 0x07b0, 0x07b1, 0x07b3, 
-	0x07b4, 0x07b5, 0x07b7, 0x07b8, 0x07ba, 0x07bb, 0x07bd, 0x07bf, 
-	0x07e0, 0x07e0, 0x07e0, 0x07e0, 0x07e1, 0x07e1, 0x07e2, 0x07e2, 
-	0x07e3, 0x07e4, 0x07e5, 0x07e5, 0x07e6, 0x07e7, 0x07e8, 0x07e9, 
-	0x07ea, 0x07eb, 0x07ec, 0x07ee, 0x07ef, 0x07f0, 0x07f1, 0x07f3, 
-	0x07f4, 0x07f5, 0x07f7, 0x07f8, 0x07fa, 0x07fb, 0x07fd, 0x07ff, 
-	0x0800, 0x0800, 0x0800, 0x0800, 0x0801, 0x0801, 0x0802, 0x0802, 
-	0x0803, 0x0804, 0x0805, 0x0805, 0x0806, 0x0807, 0x0808, 0x0809, 
-	0x080a, 0x080b, 0x080c, 0x080e, 0x080f, 0x0810, 0x0811, 0x0813, 
-	0x0814, 0x0815, 0x0817, 0x0818, 0x081a, 0x081b, 0x081d, 0x081f, 
-	0x0800, 0x0800, 0x0800, 0x0800, 0x0801, 0x0801, 0x0802, 0x0802, 
-	0x0803, 0x0804, 0x0805, 0x0805, 0x0806, 0x0807, 0x0808, 0x0809, 
-	0x080a, 0x080b, 0x080c, 0x080e, 0x080f, 0x0810, 0x0811, 0x0813, 
-	0x0814, 0x0815, 0x0817, 0x0818, 0x081a, 0x081b, 0x081d, 0x081f, 
-	0x0800, 0x0800, 0x0800, 0x0800, 0x0801, 0x0801, 0x0802, 0x0802, 
-	0x0803, 0x0804, 0x0805, 0x0805, 0x0806, 0x0807, 0x0808, 0x0809, 
-	0x080a, 0x080b, 0x080c, 0x080e, 0x080f, 0x0810, 0x0811, 0x0813, 
-	0x0814, 0x0815, 0x0817, 0x0818, 0x081a, 0x081b, 0x081d, 0x081f, 
-	0x0800, 0x0800, 0x0800, 0x0800, 0x0801, 0x0801, 0x0802, 0x0802, 
-	0x0803, 0x0804, 0x0805, 0x0805, 0x0806, 0x0807, 0x0808, 0x0809, 
-	0x080a, 0x080b, 0x080c, 0x080e, 0x080f, 0x0810, 0x0811, 0x0813, 
-	0x0814, 0x0815, 0x0817, 0x0818, 0x081a, 0x081b, 0x081d, 0x081f, 
-	0x0800, 0x0800, 0x0800, 0x0800, 0x0801, 0x0801, 0x0802, 0x0802, 
-	0x0803, 0x0804, 0x0805, 0x0805, 0x0806, 0x0807, 0x0808, 0x0809, 
-	0x080a, 0x080b, 0x080c, 0x080e, 0x080f, 0x0810, 0x0811, 0x0813, 
-	0x0814, 0x0815, 0x0817, 0x0818, 0x081a, 0x081b, 0x081d, 0x081f, 
-	0x0820, 0x0820, 0x0820, 0x0820, 0x0821, 0x0821, 0x0822, 0x0822, 
-	0x0823, 0x0824, 0x0825, 0x0825, 0x0826, 0x0827, 0x0828, 0x0829, 
-	0x082a, 0x082b, 0x082c, 0x082e, 0x082f, 0x0830, 0x0831, 0x0833, 
-	0x0834, 0x0835, 0x0837, 0x0838, 0x083a, 0x083b, 0x083d, 0x083f, 
-	0x0820, 0x0820, 0x0820, 0x0820, 0x0821, 0x0821, 0x0822, 0x0822, 
-	0x0823, 0x0824, 0x0825, 0x0825, 0x0826, 0x0827, 0x0828, 0x0829, 
-	0x082a, 0x082b, 0x082c, 0x082e, 0x082f, 0x0830, 0x0831, 0x0833, 
-	0x0834, 0x0835, 0x0837, 0x0838, 0x083a, 0x083b, 0x083d, 0x083f, 
-	0x0820, 0x0820, 0x0820, 0x0820, 0x0821, 0x0821, 0x0822, 0x0822, 
-	0x0823, 0x0824, 0x0825, 0x0825, 0x0826, 0x0827, 0x0828, 0x0829, 
-	0x082a, 0x082b, 0x082c, 0x082e, 0x082f, 0x0830, 0x0831, 0x0833, 
-	0x0834, 0x0835, 0x0837, 0x0838, 0x083a, 0x083b, 0x083d, 0x083f, 
-	0x0840, 0x0840, 0x0840, 0x0840, 0x0841, 0x0841, 0x0842, 0x0842, 
-	0x0843, 0x0844, 0x0845, 0x0845, 0x0846, 0x0847, 0x0848, 0x0849, 
-	0x084a, 0x084b, 0x084c, 0x084e, 0x084f, 0x0850, 0x0851, 0x0853, 
-	0x0854, 0x0855, 0x0857, 0x0858, 0x085a, 0x085b, 0x085d, 0x085f, 
-	0x0840, 0x0840, 0x0840, 0x0840, 0x0841, 0x0841, 0x0842, 0x0842, 
-	0x0843, 0x0844, 0x0845, 0x0845, 0x0846, 0x0847, 0x0848, 0x0849, 
-	0x084a, 0x084b, 0x084c, 0x084e, 0x084f, 0x0850, 0x0851, 0x0853, 
-	0x0854, 0x0855, 0x0857, 0x0858, 0x085a, 0x085b, 0x085d, 0x085f, 
-	0x0860, 0x0860, 0x0860, 0x0860, 0x0861, 0x0861, 0x0862, 0x0862, 
-	0x0863, 0x0864, 0x0865, 0x0865, 0x0866, 0x0867, 0x0868, 0x0869, 
-	0x086a, 0x086b, 0x086c, 0x086e, 0x086f, 0x0870, 0x0871, 0x0873, 
-	0x0874, 0x0875, 0x0877, 0x0878, 0x087a, 0x087b, 0x087d, 0x087f, 
-	0x0860, 0x0860, 0x0860, 0x0860, 0x0861, 0x0861, 0x0862, 0x0862, 
-	0x0863, 0x0864, 0x0865, 0x0865, 0x0866, 0x0867, 0x0868, 0x0869, 
-	0x086a, 0x086b, 0x086c, 0x086e, 0x086f, 0x0870, 0x0871, 0x0873, 
-	0x0874, 0x0875, 0x0877, 0x0878, 0x087a, 0x087b, 0x087d, 0x087f, 
-	0x0880, 0x0880, 0x0880, 0x0880, 0x0881, 0x0881, 0x0882, 0x0882, 
-	0x0883, 0x0884, 0x0885, 0x0885, 0x0886, 0x0887, 0x0888, 0x0889, 
-	0x088a, 0x088b, 0x088c, 0x088e, 0x088f, 0x0890, 0x0891, 0x0893, 
-	0x0894, 0x0895, 0x0897, 0x0898, 0x089a, 0x089b, 0x089d, 0x089f, 
-	0x08a0, 0x08a0, 0x08a0, 0x08a0, 0x08a1, 0x08a1, 0x08a2, 0x08a2, 
-	0x08a3, 0x08a4, 0x08a5, 0x08a5, 0x08a6, 0x08a7, 0x08a8, 0x08a9, 
-	0x08aa, 0x08ab, 0x08ac, 0x08ae, 0x08af, 0x08b0, 0x08b1, 0x08b3, 
-	0x08b4, 0x08b5, 0x08b7, 0x08b8, 0x08ba, 0x08bb, 0x08bd, 0x08bf, 
-	0x08a0, 0x08a0, 0x08a0, 0x08a0, 0x08a1, 0x08a1, 0x08a2, 0x08a2, 
-	0x08a3, 0x08a4, 0x08a5, 0x08a5, 0x08a6, 0x08a7, 0x08a8, 0x08a9, 
-	0x08aa, 0x08ab, 0x08ac, 0x08ae, 0x08af, 0x08b0, 0x08b1, 0x08b3, 
-	0x08b4, 0x08b5, 0x08b7, 0x08b8, 0x08ba, 0x08bb, 0x08bd, 0x08bf, 
-	0x08c0, 0x08c0, 0x08c0, 0x08c0, 0x08c1, 0x08c1, 0x08c2, 0x08c2, 
-	0x08c3, 0x08c4, 0x08c5, 0x08c5, 0x08c6, 0x08c7, 0x08c8, 0x08c9, 
-	0x08ca, 0x08cb, 0x08cc, 0x08ce, 0x08cf, 0x08d0, 0x08d1, 0x08d3, 
-	0x08d4, 0x08d5, 0x08d7, 0x08d8, 0x08da, 0x08db, 0x08dd, 0x08df, 
-	0x08e0, 0x08e0, 0x08e0, 0x08e0, 0x08e1, 0x08e1, 0x08e2, 0x08e2, 
-	0x08e3, 0x08e4, 0x08e5, 0x08e5, 0x08e6, 0x08e7, 0x08e8, 0x08e9, 
-	0x08ea, 0x08eb, 0x08ec, 0x08ee, 0x08ef, 0x08f0, 0x08f1, 0x08f3, 
-	0x08f4, 0x08f5, 0x08f7, 0x08f8, 0x08fa, 0x08fb, 0x08fd, 0x08ff, 
-	0x08e0, 0x08e0, 0x08e0, 0x08e0, 0x08e1, 0x08e1, 0x08e2, 0x08e2, 
-	0x08e3, 0x08e4, 0x08e5, 0x08e5, 0x08e6, 0x08e7, 0x08e8, 0x08e9, 
-	0x08ea, 0x08eb, 0x08ec, 0x08ee, 0x08ef, 0x08f0, 0x08f1, 0x08f3, 
-	0x08f4, 0x08f5, 0x08f7, 0x08f8, 0x08fa, 0x08fb, 0x08fd, 0x08ff, 
-	0x0900, 0x0900, 0x0900, 0x0900, 0x0901, 0x0901, 0x0902, 0x0902, 
-	0x0903, 0x0904, 0x0905, 0x0905, 0x0906, 0x0907, 0x0908, 0x0909, 
-	0x090a, 0x090b, 0x090c, 0x090e, 0x090f, 0x0910, 0x0911, 0x0913, 
-	0x0914, 0x0915, 0x0917, 0x0918, 0x091a, 0x091b, 0x091d, 0x091f, 
-	0x0920, 0x0920, 0x0920, 0x0920, 0x0921, 0x0921, 0x0922, 0x0922, 
-	0x0923, 0x0924, 0x0925, 0x0925, 0x0926, 0x0927, 0x0928, 0x0929, 
-	0x092a, 0x092b, 0x092c, 0x092e, 0x092f, 0x0930, 0x0931, 0x0933, 
-	0x0934, 0x0935, 0x0937, 0x0938, 0x093a, 0x093b, 0x093d, 0x093f, 
-	0x0940, 0x0940, 0x0940, 0x0940, 0x0941, 0x0941, 0x0942, 0x0942, 
-	0x0943, 0x0944, 0x0945, 0x0945, 0x0946, 0x0947, 0x0948, 0x0949, 
-	0x094a, 0x094b, 0x094c, 0x094e, 0x094f, 0x0950, 0x0951, 0x0953, 
-	0x0954, 0x0955, 0x0957, 0x0958, 0x095a, 0x095b, 0x095d, 0x095f, 
-	0x0940, 0x0940, 0x0940, 0x0940, 0x0941, 0x0941, 0x0942, 0x0942, 
-	0x0943, 0x0944, 0x0945, 0x0945, 0x0946, 0x0947, 0x0948, 0x0949, 
-	0x094a, 0x094b, 0x094c, 0x094e, 0x094f, 0x0950, 0x0951, 0x0953, 
-	0x0954, 0x0955, 0x0957, 0x0958, 0x095a, 0x095b, 0x095d, 0x095f, 
-	0x0960, 0x0960, 0x0960, 0x0960, 0x0961, 0x0961, 0x0962, 0x0962, 
-	0x0963, 0x0964, 0x0965, 0x0965, 0x0966, 0x0967, 0x0968, 0x0969, 
-	0x096a, 0x096b, 0x096c, 0x096e, 0x096f, 0x0970, 0x0971, 0x0973, 
-	0x0974, 0x0975, 0x0977, 0x0978, 0x097a, 0x097b, 0x097d, 0x097f, 
-	0x0980, 0x0980, 0x0980, 0x0980, 0x0981, 0x0981, 0x0982, 0x0982, 
-	0x0983, 0x0984, 0x0985, 0x0985, 0x0986, 0x0987, 0x0988, 0x0989, 
-	0x098a, 0x098b, 0x098c, 0x098e, 0x098f, 0x0990, 0x0991, 0x0993, 
-	0x0994, 0x0995, 0x0997, 0x0998, 0x099a, 0x099b, 0x099d, 0x099f, 
-	0x09a0, 0x09a0, 0x09a0, 0x09a0, 0x09a1, 0x09a1, 0x09a2, 0x09a2, 
-	0x09a3, 0x09a4, 0x09a5, 0x09a5, 0x09a6, 0x09a7, 0x09a8, 0x09a9, 
-	0x09aa, 0x09ab, 0x09ac, 0x09ae, 0x09af, 0x09b0, 0x09b1, 0x09b3, 
-	0x09b4, 0x09b5, 0x09b7, 0x09b8, 0x09ba, 0x09bb, 0x09bd, 0x09bf, 
-	0x09c0, 0x09c0, 0x09c0, 0x09c0, 0x09c1, 0x09c1, 0x09c2, 0x09c2, 
-	0x09c3, 0x09c4, 0x09c5, 0x09c5, 0x09c6, 0x09c7, 0x09c8, 0x09c9, 
-	0x09ca, 0x09cb, 0x09cc, 0x09ce, 0x09cf, 0x09d0, 0x09d1, 0x09d3, 
-	0x09d4, 0x09d5, 0x09d7, 0x09d8, 0x09da, 0x09db, 0x09dd, 0x09df, 
-	0x09e0, 0x09e0, 0x09e0, 0x09e0, 0x09e1, 0x09e1, 0x09e2, 0x09e2, 
-	0x09e3, 0x09e4, 0x09e5, 0x09e5, 0x09e6, 0x09e7, 0x09e8, 0x09e9, 
-	0x09ea, 0x09eb, 0x09ec, 0x09ee, 0x09ef, 0x09f0, 0x09f1, 0x09f3, 
-	0x09f4, 0x09f5, 0x09f7, 0x09f8, 0x09fa, 0x09fb, 0x09fd, 0x09ff, 
-	0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a01, 0x0a01, 0x0a02, 0x0a02, 
-	0x0a03, 0x0a04, 0x0a05, 0x0a05, 0x0a06, 0x0a07, 0x0a08, 0x0a09, 
-	0x0a0a, 0x0a0b, 0x0a0c, 0x0a0e, 0x0a0f, 0x0a10, 0x0a11, 0x0a13, 
-	0x0a14, 0x0a15, 0x0a17, 0x0a18, 0x0a1a, 0x0a1b, 0x0a1d, 0x0a1f, 
-	0x0a20, 0x0a20, 0x0a20, 0x0a20, 0x0a21, 0x0a21, 0x0a22, 0x0a22, 
-	0x0a23, 0x0a24, 0x0a25, 0x0a25, 0x0a26, 0x0a27, 0x0a28, 0x0a29, 
-	0x0a2a, 0x0a2b, 0x0a2c, 0x0a2e, 0x0a2f, 0x0a30, 0x0a31, 0x0a33, 
-	0x0a34, 0x0a35, 0x0a37, 0x0a38, 0x0a3a, 0x0a3b, 0x0a3d, 0x0a3f, 
-	0x0a40, 0x0a40, 0x0a40, 0x0a40, 0x0a41, 0x0a41, 0x0a42, 0x0a42, 
-	0x0a43, 0x0a44, 0x0a45, 0x0a45, 0x0a46, 0x0a47, 0x0a48, 0x0a49, 
-	0x0a4a, 0x0a4b, 0x0a4c, 0x0a4e, 0x0a4f, 0x0a50, 0x0a51, 0x0a53, 
-	0x0a54, 0x0a55, 0x0a57, 0x0a58, 0x0a5a, 0x0a5b, 0x0a5d, 0x0a5f, 
-	0x0a60, 0x0a60, 0x0a60, 0x0a60, 0x0a61, 0x0a61, 0x0a62, 0x0a62, 
-	0x0a63, 0x0a64, 0x0a65, 0x0a65, 0x0a66, 0x0a67, 0x0a68, 0x0a69, 
-	0x0a6a, 0x0a6b, 0x0a6c, 0x0a6e, 0x0a6f, 0x0a70, 0x0a71, 0x0a73, 
-	0x0a74, 0x0a75, 0x0a77, 0x0a78, 0x0a7a, 0x0a7b, 0x0a7d, 0x0a7f, 
-	0x0a80, 0x0a80, 0x0a80, 0x0a80, 0x0a81, 0x0a81, 0x0a82, 0x0a82, 
-	0x0a83, 0x0a84, 0x0a85, 0x0a85, 0x0a86, 0x0a87, 0x0a88, 0x0a89, 
-	0x0a8a, 0x0a8b, 0x0a8c, 0x0a8e, 0x0a8f, 0x0a90, 0x0a91, 0x0a93, 
-	0x0a94, 0x0a95, 0x0a97, 0x0a98, 0x0a9a, 0x0a9b, 0x0a9d, 0x0a9f, 
-	0x0aa0, 0x0aa0, 0x0aa0, 0x0aa0, 0x0aa1, 0x0aa1, 0x0aa2, 0x0aa2, 
-	0x0aa3, 0x0aa4, 0x0aa5, 0x0aa5, 0x0aa6, 0x0aa7, 0x0aa8, 0x0aa9, 
-	0x0aaa, 0x0aab, 0x0aac, 0x0aae, 0x0aaf, 0x0ab0, 0x0ab1, 0x0ab3, 
-	0x0ab4, 0x0ab5, 0x0ab7, 0x0ab8, 0x0aba, 0x0abb, 0x0abd, 0x0abf, 
-	0x0ac0, 0x0ac0, 0x0ac0, 0x0ac0, 0x0ac1, 0x0ac1, 0x0ac2, 0x0ac2, 
-	0x0ac3, 0x0ac4, 0x0ac5, 0x0ac5, 0x0ac6, 0x0ac7, 0x0ac8, 0x0ac9, 
-	0x0aca, 0x0acb, 0x0acc, 0x0ace, 0x0acf, 0x0ad0, 0x0ad1, 0x0ad3, 
-	0x0ad4, 0x0ad5, 0x0ad7, 0x0ad8, 0x0ada, 0x0adb, 0x0add, 0x0adf, 
-	0x0ae0, 0x0ae0, 0x0ae0, 0x0ae0, 0x0ae1, 0x0ae1, 0x0ae2, 0x0ae2, 
-	0x0ae3, 0x0ae4, 0x0ae5, 0x0ae5, 0x0ae6, 0x0ae7, 0x0ae8, 0x0ae9, 
-	0x0aea, 0x0aeb, 0x0aec, 0x0aee, 0x0aef, 0x0af0, 0x0af1, 0x0af3, 
-	0x0af4, 0x0af5, 0x0af7, 0x0af8, 0x0afa, 0x0afb, 0x0afd, 0x0aff, 
-	0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b01, 0x0b01, 0x0b02, 0x0b02, 
-	0x0b03, 0x0b04, 0x0b05, 0x0b05, 0x0b06, 0x0b07, 0x0b08, 0x0b09, 
-	0x0b0a, 0x0b0b, 0x0b0c, 0x0b0e, 0x0b0f, 0x0b10, 0x0b11, 0x0b13, 
-	0x0b14, 0x0b15, 0x0b17, 0x0b18, 0x0b1a, 0x0b1b, 0x0b1d, 0x0b1f, 
-	0x0b20, 0x0b20, 0x0b20, 0x0b20, 0x0b21, 0x0b21, 0x0b22, 0x0b22, 
-	0x0b23, 0x0b24, 0x0b25, 0x0b25, 0x0b26, 0x0b27, 0x0b28, 0x0b29, 
-	0x0b2a, 0x0b2b, 0x0b2c, 0x0b2e, 0x0b2f, 0x0b30, 0x0b31, 0x0b33, 
-	0x0b34, 0x0b35, 0x0b37, 0x0b38, 0x0b3a, 0x0b3b, 0x0b3d, 0x0b3f, 
-	0x0b40, 0x0b40, 0x0b40, 0x0b40, 0x0b41, 0x0b41, 0x0b42, 0x0b42, 
-	0x0b43, 0x0b44, 0x0b45, 0x0b45, 0x0b46, 0x0b47, 0x0b48, 0x0b49, 
-	0x0b4a, 0x0b4b, 0x0b4c, 0x0b4e, 0x0b4f, 0x0b50, 0x0b51, 0x0b53, 
-	0x0b54, 0x0b55, 0x0b57, 0x0b58, 0x0b5a, 0x0b5b, 0x0b5d, 0x0b5f, 
-	0x0b80, 0x0b80, 0x0b80, 0x0b80, 0x0b81, 0x0b81, 0x0b82, 0x0b82, 
-	0x0b83, 0x0b84, 0x0b85, 0x0b85, 0x0b86, 0x0b87, 0x0b88, 0x0b89, 
-	0x0b8a, 0x0b8b, 0x0b8c, 0x0b8e, 0x0b8f, 0x0b90, 0x0b91, 0x0b93, 
-	0x0b94, 0x0b95, 0x0b97, 0x0b98, 0x0b9a, 0x0b9b, 0x0b9d, 0x0b9f, 
-	0x0ba0, 0x0ba0, 0x0ba0, 0x0ba0, 0x0ba1, 0x0ba1, 0x0ba2, 0x0ba2, 
-	0x0ba3, 0x0ba4, 0x0ba5, 0x0ba5, 0x0ba6, 0x0ba7, 0x0ba8, 0x0ba9, 
-	0x0baa, 0x0bab, 0x0bac, 0x0bae, 0x0baf, 0x0bb0, 0x0bb1, 0x0bb3, 
-	0x0bb4, 0x0bb5, 0x0bb7, 0x0bb8, 0x0bba, 0x0bbb, 0x0bbd, 0x0bbf, 
-	0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc1, 0x0bc1, 0x0bc2, 0x0bc2, 
-	0x0bc3, 0x0bc4, 0x0bc5, 0x0bc5, 0x0bc6, 0x0bc7, 0x0bc8, 0x0bc9, 
-	0x0bca, 0x0bcb, 0x0bcc, 0x0bce, 0x0bcf, 0x0bd0, 0x0bd1, 0x0bd3, 
-	0x0bd4, 0x0bd5, 0x0bd7, 0x0bd8, 0x0bda, 0x0bdb, 0x0bdd, 0x0bdf, 
-	0x0be0, 0x0be0, 0x0be0, 0x0be0, 0x0be1, 0x0be1, 0x0be2, 0x0be2, 
-	0x0be3, 0x0be4, 0x0be5, 0x0be5, 0x0be6, 0x0be7, 0x0be8, 0x0be9, 
-	0x0bea, 0x0beb, 0x0bec, 0x0bee, 0x0bef, 0x0bf0, 0x0bf1, 0x0bf3, 
-	0x0bf4, 0x0bf5, 0x0bf7, 0x0bf8, 0x0bfa, 0x0bfb, 0x0bfd, 0x0bff, 
-	0x0c00, 0x0c00, 0x0c00, 0x0c00, 0x0c01, 0x0c01, 0x0c02, 0x0c02, 
-	0x0c03, 0x0c04, 0x0c05, 0x0c05, 0x0c06, 0x0c07, 0x0c08, 0x0c09, 
-	0x0c0a, 0x0c0b, 0x0c0c, 0x0c0e, 0x0c0f, 0x0c10, 0x0c11, 0x0c13, 
-	0x0c14, 0x0c15, 0x0c17, 0x0c18, 0x0c1a, 0x0c1b, 0x0c1d, 0x0c1f, 
-	0x0c40, 0x0c40, 0x0c40, 0x0c40, 0x0c41, 0x0c41, 0x0c42, 0x0c42, 
-	0x0c43, 0x0c44, 0x0c45, 0x0c45, 0x0c46, 0x0c47, 0x0c48, 0x0c49, 
-	0x0c4a, 0x0c4b, 0x0c4c, 0x0c4e, 0x0c4f, 0x0c50, 0x0c51, 0x0c53, 
-	0x0c54, 0x0c55, 0x0c57, 0x0c58, 0x0c5a, 0x0c5b, 0x0c5d, 0x0c5f, 
-	0x0c60, 0x0c60, 0x0c60, 0x0c60, 0x0c61, 0x0c61, 0x0c62, 0x0c62, 
-	0x0c63, 0x0c64, 0x0c65, 0x0c65, 0x0c66, 0x0c67, 0x0c68, 0x0c69, 
-	0x0c6a, 0x0c6b, 0x0c6c, 0x0c6e, 0x0c6f, 0x0c70, 0x0c71, 0x0c73, 
-	0x0c74, 0x0c75, 0x0c77, 0x0c78, 0x0c7a, 0x0c7b, 0x0c7d, 0x0c7f, 
-	0x0c80, 0x0c80, 0x0c80, 0x0c80, 0x0c81, 0x0c81, 0x0c82, 0x0c82, 
-	0x0c83, 0x0c84, 0x0c85, 0x0c85, 0x0c86, 0x0c87, 0x0c88, 0x0c89, 
-	0x0c8a, 0x0c8b, 0x0c8c, 0x0c8e, 0x0c8f, 0x0c90, 0x0c91, 0x0c93, 
-	0x0c94, 0x0c95, 0x0c97, 0x0c98, 0x0c9a, 0x0c9b, 0x0c9d, 0x0c9f, 
-	0x0cc0, 0x0cc0, 0x0cc0, 0x0cc0, 0x0cc1, 0x0cc1, 0x0cc2, 0x0cc2, 
-	0x0cc3, 0x0cc4, 0x0cc5, 0x0cc5, 0x0cc6, 0x0cc7, 0x0cc8, 0x0cc9, 
-	0x0cca, 0x0ccb, 0x0ccc, 0x0cce, 0x0ccf, 0x0cd0, 0x0cd1, 0x0cd3, 
-	0x0cd4, 0x0cd5, 0x0cd7, 0x0cd8, 0x0cda, 0x0cdb, 0x0cdd, 0x0cdf, 
-	0x0ce0, 0x0ce0, 0x0ce0, 0x0ce0, 0x0ce1, 0x0ce1, 0x0ce2, 0x0ce2, 
-	0x0ce3, 0x0ce4, 0x0ce5, 0x0ce5, 0x0ce6, 0x0ce7, 0x0ce8, 0x0ce9, 
-	0x0cea, 0x0ceb, 0x0cec, 0x0cee, 0x0cef, 0x0cf0, 0x0cf1, 0x0cf3, 
-	0x0cf4, 0x0cf5, 0x0cf7, 0x0cf8, 0x0cfa, 0x0cfb, 0x0cfd, 0x0cff, 
-	0x0d00, 0x0d00, 0x0d00, 0x0d00, 0x0d01, 0x0d01, 0x0d02, 0x0d02, 
-	0x0d03, 0x0d04, 0x0d05, 0x0d05, 0x0d06, 0x0d07, 0x0d08, 0x0d09, 
-	0x0d0a, 0x0d0b, 0x0d0c, 0x0d0e, 0x0d0f, 0x0d10, 0x0d11, 0x0d13, 
-	0x0d14, 0x0d15, 0x0d17, 0x0d18, 0x0d1a, 0x0d1b, 0x0d1d, 0x0d1f, 
-	0x0d40, 0x0d40, 0x0d40, 0x0d40, 0x0d41, 0x0d41, 0x0d42, 0x0d42, 
-	0x0d43, 0x0d44, 0x0d45, 0x0d45, 0x0d46, 0x0d47, 0x0d48, 0x0d49, 
-	0x0d4a, 0x0d4b, 0x0d4c, 0x0d4e, 0x0d4f, 0x0d50, 0x0d51, 0x0d53, 
-	0x0d54, 0x0d55, 0x0d57, 0x0d58, 0x0d5a, 0x0d5b, 0x0d5d, 0x0d5f, 
-	0x0d60, 0x0d60, 0x0d60, 0x0d60, 0x0d61, 0x0d61, 0x0d62, 0x0d62, 
-	0x0d63, 0x0d64, 0x0d65, 0x0d65, 0x0d66, 0x0d67, 0x0d68, 0x0d69, 
-	0x0d6a, 0x0d6b, 0x0d6c, 0x0d6e, 0x0d6f, 0x0d70, 0x0d71, 0x0d73, 
-	0x0d74, 0x0d75, 0x0d77, 0x0d78, 0x0d7a, 0x0d7b, 0x0d7d, 0x0d7f, 
-	0x0d80, 0x0d80, 0x0d80, 0x0d80, 0x0d81, 0x0d81, 0x0d82, 0x0d82, 
-	0x0d83, 0x0d84, 0x0d85, 0x0d85, 0x0d86, 0x0d87, 0x0d88, 0x0d89, 
-	0x0d8a, 0x0d8b, 0x0d8c, 0x0d8e, 0x0d8f, 0x0d90, 0x0d91, 0x0d93, 
-	0x0d94, 0x0d95, 0x0d97, 0x0d98, 0x0d9a, 0x0d9b, 0x0d9d, 0x0d9f, 
-	0x0dc0, 0x0dc0, 0x0dc0, 0x0dc0, 0x0dc1, 0x0dc1, 0x0dc2, 0x0dc2, 
-	0x0dc3, 0x0dc4, 0x0dc5, 0x0dc5, 0x0dc6, 0x0dc7, 0x0dc8, 0x0dc9, 
-	0x0dca, 0x0dcb, 0x0dcc, 0x0dce, 0x0dcf, 0x0dd0, 0x0dd1, 0x0dd3, 
-	0x0dd4, 0x0dd5, 0x0dd7, 0x0dd8, 0x0dda, 0x0ddb, 0x0ddd, 0x0ddf, 
-	0x0de0, 0x0de0, 0x0de0, 0x0de0, 0x0de1, 0x0de1, 0x0de2, 0x0de2, 
-	0x0de3, 0x0de4, 0x0de5, 0x0de5, 0x0de6, 0x0de7, 0x0de8, 0x0de9, 
-	0x0dea, 0x0deb, 0x0dec, 0x0dee, 0x0def, 0x0df0, 0x0df1, 0x0df3, 
-	0x0df4, 0x0df5, 0x0df7, 0x0df8, 0x0dfa, 0x0dfb, 0x0dfd, 0x0dff, 
-	0x0e20, 0x0e20, 0x0e20, 0x0e20, 0x0e21, 0x0e21, 0x0e22, 0x0e22, 
-	0x0e23, 0x0e24, 0x0e25, 0x0e25, 0x0e26, 0x0e27, 0x0e28, 0x0e29, 
-	0x0e2a, 0x0e2b, 0x0e2c, 0x0e2e, 0x0e2f, 0x0e30, 0x0e31, 0x0e33, 
-	0x0e34, 0x0e35, 0x0e37, 0x0e38, 0x0e3a, 0x0e3b, 0x0e3d, 0x0e3f, 
-	0x0e40, 0x0e40, 0x0e40, 0x0e40, 0x0e41, 0x0e41, 0x0e42, 0x0e42, 
-	0x0e43, 0x0e44, 0x0e45, 0x0e45, 0x0e46, 0x0e47, 0x0e48, 0x0e49, 
-	0x0e4a, 0x0e4b, 0x0e4c, 0x0e4e, 0x0e4f, 0x0e50, 0x0e51, 0x0e53, 
-	0x0e54, 0x0e55, 0x0e57, 0x0e58, 0x0e5a, 0x0e5b, 0x0e5d, 0x0e5f, 
-	0x0e80, 0x0e80, 0x0e80, 0x0e80, 0x0e81, 0x0e81, 0x0e82, 0x0e82, 
-	0x0e83, 0x0e84, 0x0e85, 0x0e85, 0x0e86, 0x0e87, 0x0e88, 0x0e89, 
-	0x0e8a, 0x0e8b, 0x0e8c, 0x0e8e, 0x0e8f, 0x0e90, 0x0e91, 0x0e93, 
-	0x0e94, 0x0e95, 0x0e97, 0x0e98, 0x0e9a, 0x0e9b, 0x0e9d, 0x0e9f, 
-	0x0ea0, 0x0ea0, 0x0ea0, 0x0ea0, 0x0ea1, 0x0ea1, 0x0ea2, 0x0ea2, 
-	0x0ea3, 0x0ea4, 0x0ea5, 0x0ea5, 0x0ea6, 0x0ea7, 0x0ea8, 0x0ea9, 
-	0x0eaa, 0x0eab, 0x0eac, 0x0eae, 0x0eaf, 0x0eb0, 0x0eb1, 0x0eb3, 
-	0x0eb4, 0x0eb5, 0x0eb7, 0x0eb8, 0x0eba, 0x0ebb, 0x0ebd, 0x0ebf, 
-	0x0ee0, 0x0ee0, 0x0ee0, 0x0ee0, 0x0ee1, 0x0ee1, 0x0ee2, 0x0ee2, 
-	0x0ee3, 0x0ee4, 0x0ee5, 0x0ee5, 0x0ee6, 0x0ee7, 0x0ee8, 0x0ee9, 
-	0x0eea, 0x0eeb, 0x0eec, 0x0eee, 0x0eef, 0x0ef0, 0x0ef1, 0x0ef3, 
-	0x0ef4, 0x0ef5, 0x0ef7, 0x0ef8, 0x0efa, 0x0efb, 0x0efd, 0x0eff, 
-	0x0f00, 0x0f00, 0x0f00, 0x0f00, 0x0f01, 0x0f01, 0x0f02, 0x0f02, 
-	0x0f03, 0x0f04, 0x0f05, 0x0f05, 0x0f06, 0x0f07, 0x0f08, 0x0f09, 
-	0x0f0a, 0x0f0b, 0x0f0c, 0x0f0e, 0x0f0f, 0x0f10, 0x0f11, 0x0f13, 
-	0x0f14, 0x0f15, 0x0f17, 0x0f18, 0x0f1a, 0x0f1b, 0x0f1d, 0x0f1f, 
-	0x0f40, 0x0f40, 0x0f40, 0x0f40, 0x0f41, 0x0f41, 0x0f42, 0x0f42, 
-	0x0f43, 0x0f44, 0x0f45, 0x0f45, 0x0f46, 0x0f47, 0x0f48, 0x0f49, 
-	0x0f4a, 0x0f4b, 0x0f4c, 0x0f4e, 0x0f4f, 0x0f50, 0x0f51, 0x0f53, 
-	0x0f54, 0x0f55, 0x0f57, 0x0f58, 0x0f5a, 0x0f5b, 0x0f5d, 0x0f5f, 
-	0x0f60, 0x0f60, 0x0f60, 0x0f60, 0x0f61, 0x0f61, 0x0f62, 0x0f62, 
-	0x0f63, 0x0f64, 0x0f65, 0x0f65, 0x0f66, 0x0f67, 0x0f68, 0x0f69, 
-	0x0f6a, 0x0f6b, 0x0f6c, 0x0f6e, 0x0f6f, 0x0f70, 0x0f71, 0x0f73, 
-	0x0f74, 0x0f75, 0x0f77, 0x0f78, 0x0f7a, 0x0f7b, 0x0f7d, 0x0f7f, 
-	0x0fa0, 0x0fa0, 0x0fa0, 0x0fa0, 0x0fa1, 0x0fa1, 0x0fa2, 0x0fa2, 
-	0x0fa3, 0x0fa4, 0x0fa5, 0x0fa5, 0x0fa6, 0x0fa7, 0x0fa8, 0x0fa9, 
-	0x0faa, 0x0fab, 0x0fac, 0x0fae, 0x0faf, 0x0fb0, 0x0fb1, 0x0fb3, 
-	0x0fb4, 0x0fb5, 0x0fb7, 0x0fb8, 0x0fba, 0x0fbb, 0x0fbd, 0x0fbf, 
-	0x0fe0, 0x0fe0, 0x0fe0, 0x0fe0, 0x0fe1, 0x0fe1, 0x0fe2, 0x0fe2, 
-	0x0fe3, 0x0fe4, 0x0fe5, 0x0fe5, 0x0fe6, 0x0fe7, 0x0fe8, 0x0fe9, 
-	0x0fea, 0x0feb, 0x0fec, 0x0fee, 0x0fef, 0x0ff0, 0x0ff1, 0x0ff3, 
-	0x0ff4, 0x0ff5, 0x0ff7, 0x0ff8, 0x0ffa, 0x0ffb, 0x0ffd, 0x0fff, 
-	0x0800, 0x0800, 0x0800, 0x0800, 0x0801, 0x0801, 0x0802, 0x0802, 
-	0x0803, 0x0804, 0x0805, 0x0805, 0x0806, 0x0807, 0x0808, 0x0809, 
-	0x080a, 0x080b, 0x080c, 0x080e, 0x080f, 0x0810, 0x0811, 0x0813, 
-	0x0814, 0x0815, 0x0817, 0x0818, 0x081a, 0x081b, 0x081d, 0x081f, 
-	0x0800, 0x0800, 0x0800, 0x0800, 0x0801, 0x0801, 0x0802, 0x0802, 
-	0x0803, 0x0804, 0x0805, 0x0805, 0x0806, 0x0807, 0x0808, 0x0809, 
-	0x080a, 0x080b, 0x080c, 0x080e, 0x080f, 0x0810, 0x0811, 0x0813, 
-	0x0814, 0x0815, 0x0817, 0x0818, 0x081a, 0x081b, 0x081d, 0x081f, 
-	0x0800, 0x0800, 0x0800, 0x0800, 0x0801, 0x0801, 0x0802, 0x0802, 
-	0x0803, 0x0804, 0x0805, 0x0805, 0x0806, 0x0807, 0x0808, 0x0809, 
-	0x080a, 0x080b, 0x080c, 0x080e, 0x080f, 0x0810, 0x0811, 0x0813, 
-	0x0814, 0x0815, 0x0817, 0x0818, 0x081a, 0x081b, 0x081d, 0x081f, 
-	0x0800, 0x0800, 0x0800, 0x0800, 0x0801, 0x0801, 0x0802, 0x0802, 
-	0x0803, 0x0804, 0x0805, 0x0805, 0x0806, 0x0807, 0x0808, 0x0809, 
-	0x080a, 0x080b, 0x080c, 0x080e, 0x080f, 0x0810, 0x0811, 0x0813, 
-	0x0814, 0x0815, 0x0817, 0x0818, 0x081a, 0x081b, 0x081d, 0x081f, 
-	0x0800, 0x0800, 0x0800, 0x0800, 0x0801, 0x0801, 0x0802, 0x0802, 
-	0x0803, 0x0804, 0x0805, 0x0805, 0x0806, 0x0807, 0x0808, 0x0809, 
-	0x080a, 0x080b, 0x080c, 0x080e, 0x080f, 0x0810, 0x0811, 0x0813, 
-	0x0814, 0x0815, 0x0817, 0x0818, 0x081a, 0x081b, 0x081d, 0x081f, 
-	0x0820, 0x0820, 0x0820, 0x0820, 0x0821, 0x0821, 0x0822, 0x0822, 
-	0x0823, 0x0824, 0x0825, 0x0825, 0x0826, 0x0827, 0x0828, 0x0829, 
-	0x082a, 0x082b, 0x082c, 0x082e, 0x082f, 0x0830, 0x0831, 0x0833, 
-	0x0834, 0x0835, 0x0837, 0x0838, 0x083a, 0x083b, 0x083d, 0x083f, 
-	0x0820, 0x0820, 0x0820, 0x0820, 0x0821, 0x0821, 0x0822, 0x0822, 
-	0x0823, 0x0824, 0x0825, 0x0825, 0x0826, 0x0827, 0x0828, 0x0829, 
-	0x082a, 0x082b, 0x082c, 0x082e, 0x082f, 0x0830, 0x0831, 0x0833, 
-	0x0834, 0x0835, 0x0837, 0x0838, 0x083a, 0x083b, 0x083d, 0x083f, 
-	0x0820, 0x0820, 0x0820, 0x0820, 0x0821, 0x0821, 0x0822, 0x0822, 
-	0x0823, 0x0824, 0x0825, 0x0825, 0x0826, 0x0827, 0x0828, 0x0829, 
-	0x082a, 0x082b, 0x082c, 0x082e, 0x082f, 0x0830, 0x0831, 0x0833, 
-	0x0834, 0x0835, 0x0837, 0x0838, 0x083a, 0x083b, 0x083d, 0x083f, 
-	0x0840, 0x0840, 0x0840, 0x0840, 0x0841, 0x0841, 0x0842, 0x0842, 
-	0x0843, 0x0844, 0x0845, 0x0845, 0x0846, 0x0847, 0x0848, 0x0849, 
-	0x084a, 0x084b, 0x084c, 0x084e, 0x084f, 0x0850, 0x0851, 0x0853, 
-	0x0854, 0x0855, 0x0857, 0x0858, 0x085a, 0x085b, 0x085d, 0x085f, 
-	0x0840, 0x0840, 0x0840, 0x0840, 0x0841, 0x0841, 0x0842, 0x0842, 
-	0x0843, 0x0844, 0x0845, 0x0845, 0x0846, 0x0847, 0x0848, 0x0849, 
-	0x084a, 0x084b, 0x084c, 0x084e, 0x084f, 0x0850, 0x0851, 0x0853, 
-	0x0854, 0x0855, 0x0857, 0x0858, 0x085a, 0x085b, 0x085d, 0x085f, 
-	0x0860, 0x0860, 0x0860, 0x0860, 0x0861, 0x0861, 0x0862, 0x0862, 
-	0x0863, 0x0864, 0x0865, 0x0865, 0x0866, 0x0867, 0x0868, 0x0869, 
-	0x086a, 0x086b, 0x086c, 0x086e, 0x086f, 0x0870, 0x0871, 0x0873, 
-	0x0874, 0x0875, 0x0877, 0x0878, 0x087a, 0x087b, 0x087d, 0x087f, 
-	0x0860, 0x0860, 0x0860, 0x0860, 0x0861, 0x0861, 0x0862, 0x0862, 
-	0x0863, 0x0864, 0x0865, 0x0865, 0x0866, 0x0867, 0x0868, 0x0869, 
-	0x086a, 0x086b, 0x086c, 0x086e, 0x086f, 0x0870, 0x0871, 0x0873, 
-	0x0874, 0x0875, 0x0877, 0x0878, 0x087a, 0x087b, 0x087d, 0x087f, 
-	0x0880, 0x0880, 0x0880, 0x0880, 0x0881, 0x0881, 0x0882, 0x0882, 
-	0x0883, 0x0884, 0x0885, 0x0885, 0x0886, 0x0887, 0x0888, 0x0889, 
-	0x088a, 0x088b, 0x088c, 0x088e, 0x088f, 0x0890, 0x0891, 0x0893, 
-	0x0894, 0x0895, 0x0897, 0x0898, 0x089a, 0x089b, 0x089d, 0x089f, 
-	0x08a0, 0x08a0, 0x08a0, 0x08a0, 0x08a1, 0x08a1, 0x08a2, 0x08a2, 
-	0x08a3, 0x08a4, 0x08a5, 0x08a5, 0x08a6, 0x08a7, 0x08a8, 0x08a9, 
-	0x08aa, 0x08ab, 0x08ac, 0x08ae, 0x08af, 0x08b0, 0x08b1, 0x08b3, 
-	0x08b4, 0x08b5, 0x08b7, 0x08b8, 0x08ba, 0x08bb, 0x08bd, 0x08bf, 
-	0x08a0, 0x08a0, 0x08a0, 0x08a0, 0x08a1, 0x08a1, 0x08a2, 0x08a2, 
-	0x08a3, 0x08a4, 0x08a5, 0x08a5, 0x08a6, 0x08a7, 0x08a8, 0x08a9, 
-	0x08aa, 0x08ab, 0x08ac, 0x08ae, 0x08af, 0x08b0, 0x08b1, 0x08b3, 
-	0x08b4, 0x08b5, 0x08b7, 0x08b8, 0x08ba, 0x08bb, 0x08bd, 0x08bf, 
-	0x08c0, 0x08c0, 0x08c0, 0x08c0, 0x08c1, 0x08c1, 0x08c2, 0x08c2, 
-	0x08c3, 0x08c4, 0x08c5, 0x08c5, 0x08c6, 0x08c7, 0x08c8, 0x08c9, 
-	0x08ca, 0x08cb, 0x08cc, 0x08ce, 0x08cf, 0x08d0, 0x08d1, 0x08d3, 
-	0x08d4, 0x08d5, 0x08d7, 0x08d8, 0x08da, 0x08db, 0x08dd, 0x08df, 
-	0x08e0, 0x08e0, 0x08e0, 0x08e0, 0x08e1, 0x08e1, 0x08e2, 0x08e2, 
-	0x08e3, 0x08e4, 0x08e5, 0x08e5, 0x08e6, 0x08e7, 0x08e8, 0x08e9, 
-	0x08ea, 0x08eb, 0x08ec, 0x08ee, 0x08ef, 0x08f0, 0x08f1, 0x08f3, 
-	0x08f4, 0x08f5, 0x08f7, 0x08f8, 0x08fa, 0x08fb, 0x08fd, 0x08ff, 
-	0x08e0, 0x08e0, 0x08e0, 0x08e0, 0x08e1, 0x08e1, 0x08e2, 0x08e2, 
-	0x08e3, 0x08e4, 0x08e5, 0x08e5, 0x08e6, 0x08e7, 0x08e8, 0x08e9, 
-	0x08ea, 0x08eb, 0x08ec, 0x08ee, 0x08ef, 0x08f0, 0x08f1, 0x08f3, 
-	0x08f4, 0x08f5, 0x08f7, 0x08f8, 0x08fa, 0x08fb, 0x08fd, 0x08ff, 
-	0x0900, 0x0900, 0x0900, 0x0900, 0x0901, 0x0901, 0x0902, 0x0902, 
-	0x0903, 0x0904, 0x0905, 0x0905, 0x0906, 0x0907, 0x0908, 0x0909, 
-	0x090a, 0x090b, 0x090c, 0x090e, 0x090f, 0x0910, 0x0911, 0x0913, 
-	0x0914, 0x0915, 0x0917, 0x0918, 0x091a, 0x091b, 0x091d, 0x091f, 
-	0x0920, 0x0920, 0x0920, 0x0920, 0x0921, 0x0921, 0x0922, 0x0922, 
-	0x0923, 0x0924, 0x0925, 0x0925, 0x0926, 0x0927, 0x0928, 0x0929, 
-	0x092a, 0x092b, 0x092c, 0x092e, 0x092f, 0x0930, 0x0931, 0x0933, 
-	0x0934, 0x0935, 0x0937, 0x0938, 0x093a, 0x093b, 0x093d, 0x093f, 
-	0x0940, 0x0940, 0x0940, 0x0940, 0x0941, 0x0941, 0x0942, 0x0942, 
-	0x0943, 0x0944, 0x0945, 0x0945, 0x0946, 0x0947, 0x0948, 0x0949, 
-	0x094a, 0x094b, 0x094c, 0x094e, 0x094f, 0x0950, 0x0951, 0x0953, 
-	0x0954, 0x0955, 0x0957, 0x0958, 0x095a, 0x095b, 0x095d, 0x095f, 
-	0x0940, 0x0940, 0x0940, 0x0940, 0x0941, 0x0941, 0x0942, 0x0942, 
-	0x0943, 0x0944, 0x0945, 0x0945, 0x0946, 0x0947, 0x0948, 0x0949, 
-	0x094a, 0x094b, 0x094c, 0x094e, 0x094f, 0x0950, 0x0951, 0x0953, 
-	0x0954, 0x0955, 0x0957, 0x0958, 0x095a, 0x095b, 0x095d, 0x095f, 
-	0x0960, 0x0960, 0x0960, 0x0960, 0x0961, 0x0961, 0x0962, 0x0962, 
-	0x0963, 0x0964, 0x0965, 0x0965, 0x0966, 0x0967, 0x0968, 0x0969, 
-	0x096a, 0x096b, 0x096c, 0x096e, 0x096f, 0x0970, 0x0971, 0x0973, 
-	0x0974, 0x0975, 0x0977, 0x0978, 0x097a, 0x097b, 0x097d, 0x097f, 
-	0x0980, 0x0980, 0x0980, 0x0980, 0x0981, 0x0981, 0x0982, 0x0982, 
-	0x0983, 0x0984, 0x0985, 0x0985, 0x0986, 0x0987, 0x0988, 0x0989, 
-	0x098a, 0x098b, 0x098c, 0x098e, 0x098f, 0x0990, 0x0991, 0x0993, 
-	0x0994, 0x0995, 0x0997, 0x0998, 0x099a, 0x099b, 0x099d, 0x099f, 
-	0x09a0, 0x09a0, 0x09a0, 0x09a0, 0x09a1, 0x09a1, 0x09a2, 0x09a2, 
-	0x09a3, 0x09a4, 0x09a5, 0x09a5, 0x09a6, 0x09a7, 0x09a8, 0x09a9, 
-	0x09aa, 0x09ab, 0x09ac, 0x09ae, 0x09af, 0x09b0, 0x09b1, 0x09b3, 
-	0x09b4, 0x09b5, 0x09b7, 0x09b8, 0x09ba, 0x09bb, 0x09bd, 0x09bf, 
-	0x09c0, 0x09c0, 0x09c0, 0x09c0, 0x09c1, 0x09c1, 0x09c2, 0x09c2, 
-	0x09c3, 0x09c4, 0x09c5, 0x09c5, 0x09c6, 0x09c7, 0x09c8, 0x09c9, 
-	0x09ca, 0x09cb, 0x09cc, 0x09ce, 0x09cf, 0x09d0, 0x09d1, 0x09d3, 
-	0x09d4, 0x09d5, 0x09d7, 0x09d8, 0x09da, 0x09db, 0x09dd, 0x09df, 
-	0x09e0, 0x09e0, 0x09e0, 0x09e0, 0x09e1, 0x09e1, 0x09e2, 0x09e2, 
-	0x09e3, 0x09e4, 0x09e5, 0x09e5, 0x09e6, 0x09e7, 0x09e8, 0x09e9, 
-	0x09ea, 0x09eb, 0x09ec, 0x09ee, 0x09ef, 0x09f0, 0x09f1, 0x09f3, 
-	0x09f4, 0x09f5, 0x09f7, 0x09f8, 0x09fa, 0x09fb, 0x09fd, 0x09ff, 
-	0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a01, 0x0a01, 0x0a02, 0x0a02, 
-	0x0a03, 0x0a04, 0x0a05, 0x0a05, 0x0a06, 0x0a07, 0x0a08, 0x0a09, 
-	0x0a0a, 0x0a0b, 0x0a0c, 0x0a0e, 0x0a0f, 0x0a10, 0x0a11, 0x0a13, 
-	0x0a14, 0x0a15, 0x0a17, 0x0a18, 0x0a1a, 0x0a1b, 0x0a1d, 0x0a1f, 
-	0x0a20, 0x0a20, 0x0a20, 0x0a20, 0x0a21, 0x0a21, 0x0a22, 0x0a22, 
-	0x0a23, 0x0a24, 0x0a25, 0x0a25, 0x0a26, 0x0a27, 0x0a28, 0x0a29, 
-	0x0a2a, 0x0a2b, 0x0a2c, 0x0a2e, 0x0a2f, 0x0a30, 0x0a31, 0x0a33, 
-	0x0a34, 0x0a35, 0x0a37, 0x0a38, 0x0a3a, 0x0a3b, 0x0a3d, 0x0a3f, 
-	0x0a40, 0x0a40, 0x0a40, 0x0a40, 0x0a41, 0x0a41, 0x0a42, 0x0a42, 
-	0x0a43, 0x0a44, 0x0a45, 0x0a45, 0x0a46, 0x0a47, 0x0a48, 0x0a49, 
-	0x0a4a, 0x0a4b, 0x0a4c, 0x0a4e, 0x0a4f, 0x0a50, 0x0a51, 0x0a53, 
-	0x0a54, 0x0a55, 0x0a57, 0x0a58, 0x0a5a, 0x0a5b, 0x0a5d, 0x0a5f, 
-	0x0a60, 0x0a60, 0x0a60, 0x0a60, 0x0a61, 0x0a61, 0x0a62, 0x0a62, 
-	0x0a63, 0x0a64, 0x0a65, 0x0a65, 0x0a66, 0x0a67, 0x0a68, 0x0a69, 
-	0x0a6a, 0x0a6b, 0x0a6c, 0x0a6e, 0x0a6f, 0x0a70, 0x0a71, 0x0a73, 
-	0x0a74, 0x0a75, 0x0a77, 0x0a78, 0x0a7a, 0x0a7b, 0x0a7d, 0x0a7f, 
-	0x0a80, 0x0a80, 0x0a80, 0x0a80, 0x0a81, 0x0a81, 0x0a82, 0x0a82, 
-	0x0a83, 0x0a84, 0x0a85, 0x0a85, 0x0a86, 0x0a87, 0x0a88, 0x0a89, 
-	0x0a8a, 0x0a8b, 0x0a8c, 0x0a8e, 0x0a8f, 0x0a90, 0x0a91, 0x0a93, 
-	0x0a94, 0x0a95, 0x0a97, 0x0a98, 0x0a9a, 0x0a9b, 0x0a9d, 0x0a9f, 
-	0x0aa0, 0x0aa0, 0x0aa0, 0x0aa0, 0x0aa1, 0x0aa1, 0x0aa2, 0x0aa2, 
-	0x0aa3, 0x0aa4, 0x0aa5, 0x0aa5, 0x0aa6, 0x0aa7, 0x0aa8, 0x0aa9, 
-	0x0aaa, 0x0aab, 0x0aac, 0x0aae, 0x0aaf, 0x0ab0, 0x0ab1, 0x0ab3, 
-	0x0ab4, 0x0ab5, 0x0ab7, 0x0ab8, 0x0aba, 0x0abb, 0x0abd, 0x0abf, 
-	0x0ac0, 0x0ac0, 0x0ac0, 0x0ac0, 0x0ac1, 0x0ac1, 0x0ac2, 0x0ac2, 
-	0x0ac3, 0x0ac4, 0x0ac5, 0x0ac5, 0x0ac6, 0x0ac7, 0x0ac8, 0x0ac9, 
-	0x0aca, 0x0acb, 0x0acc, 0x0ace, 0x0acf, 0x0ad0, 0x0ad1, 0x0ad3, 
-	0x0ad4, 0x0ad5, 0x0ad7, 0x0ad8, 0x0ada, 0x0adb, 0x0add, 0x0adf, 
-	0x0ae0, 0x0ae0, 0x0ae0, 0x0ae0, 0x0ae1, 0x0ae1, 0x0ae2, 0x0ae2, 
-	0x0ae3, 0x0ae4, 0x0ae5, 0x0ae5, 0x0ae6, 0x0ae7, 0x0ae8, 0x0ae9, 
-	0x0aea, 0x0aeb, 0x0aec, 0x0aee, 0x0aef, 0x0af0, 0x0af1, 0x0af3, 
-	0x0af4, 0x0af5, 0x0af7, 0x0af8, 0x0afa, 0x0afb, 0x0afd, 0x0aff, 
-	0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b01, 0x0b01, 0x0b02, 0x0b02, 
-	0x0b03, 0x0b04, 0x0b05, 0x0b05, 0x0b06, 0x0b07, 0x0b08, 0x0b09, 
-	0x0b0a, 0x0b0b, 0x0b0c, 0x0b0e, 0x0b0f, 0x0b10, 0x0b11, 0x0b13, 
-	0x0b14, 0x0b15, 0x0b17, 0x0b18, 0x0b1a, 0x0b1b, 0x0b1d, 0x0b1f, 
-	0x0b20, 0x0b20, 0x0b20, 0x0b20, 0x0b21, 0x0b21, 0x0b22, 0x0b22, 
-	0x0b23, 0x0b24, 0x0b25, 0x0b25, 0x0b26, 0x0b27, 0x0b28, 0x0b29, 
-	0x0b2a, 0x0b2b, 0x0b2c, 0x0b2e, 0x0b2f, 0x0b30, 0x0b31, 0x0b33, 
-	0x0b34, 0x0b35, 0x0b37, 0x0b38, 0x0b3a, 0x0b3b, 0x0b3d, 0x0b3f, 
-	0x0b40, 0x0b40, 0x0b40, 0x0b40, 0x0b41, 0x0b41, 0x0b42, 0x0b42, 
-	0x0b43, 0x0b44, 0x0b45, 0x0b45, 0x0b46, 0x0b47, 0x0b48, 0x0b49, 
-	0x0b4a, 0x0b4b, 0x0b4c, 0x0b4e, 0x0b4f, 0x0b50, 0x0b51, 0x0b53, 
-	0x0b54, 0x0b55, 0x0b57, 0x0b58, 0x0b5a, 0x0b5b, 0x0b5d, 0x0b5f, 
-	0x0b80, 0x0b80, 0x0b80, 0x0b80, 0x0b81, 0x0b81, 0x0b82, 0x0b82, 
-	0x0b83, 0x0b84, 0x0b85, 0x0b85, 0x0b86, 0x0b87, 0x0b88, 0x0b89, 
-	0x0b8a, 0x0b8b, 0x0b8c, 0x0b8e, 0x0b8f, 0x0b90, 0x0b91, 0x0b93, 
-	0x0b94, 0x0b95, 0x0b97, 0x0b98, 0x0b9a, 0x0b9b, 0x0b9d, 0x0b9f, 
-	0x0ba0, 0x0ba0, 0x0ba0, 0x0ba0, 0x0ba1, 0x0ba1, 0x0ba2, 0x0ba2, 
-	0x0ba3, 0x0ba4, 0x0ba5, 0x0ba5, 0x0ba6, 0x0ba7, 0x0ba8, 0x0ba9, 
-	0x0baa, 0x0bab, 0x0bac, 0x0bae, 0x0baf, 0x0bb0, 0x0bb1, 0x0bb3, 
-	0x0bb4, 0x0bb5, 0x0bb7, 0x0bb8, 0x0bba, 0x0bbb, 0x0bbd, 0x0bbf, 
-	0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc1, 0x0bc1, 0x0bc2, 0x0bc2, 
-	0x0bc3, 0x0bc4, 0x0bc5, 0x0bc5, 0x0bc6, 0x0bc7, 0x0bc8, 0x0bc9, 
-	0x0bca, 0x0bcb, 0x0bcc, 0x0bce, 0x0bcf, 0x0bd0, 0x0bd1, 0x0bd3, 
-	0x0bd4, 0x0bd5, 0x0bd7, 0x0bd8, 0x0bda, 0x0bdb, 0x0bdd, 0x0bdf, 
-	0x0be0, 0x0be0, 0x0be0, 0x0be0, 0x0be1, 0x0be1, 0x0be2, 0x0be2, 
-	0x0be3, 0x0be4, 0x0be5, 0x0be5, 0x0be6, 0x0be7, 0x0be8, 0x0be9, 
-	0x0bea, 0x0beb, 0x0bec, 0x0bee, 0x0bef, 0x0bf0, 0x0bf1, 0x0bf3, 
-	0x0bf4, 0x0bf5, 0x0bf7, 0x0bf8, 0x0bfa, 0x0bfb, 0x0bfd, 0x0bff, 
-	0x0c00, 0x0c00, 0x0c00, 0x0c00, 0x0c01, 0x0c01, 0x0c02, 0x0c02, 
-	0x0c03, 0x0c04, 0x0c05, 0x0c05, 0x0c06, 0x0c07, 0x0c08, 0x0c09, 
-	0x0c0a, 0x0c0b, 0x0c0c, 0x0c0e, 0x0c0f, 0x0c10, 0x0c11, 0x0c13, 
-	0x0c14, 0x0c15, 0x0c17, 0x0c18, 0x0c1a, 0x0c1b, 0x0c1d, 0x0c1f, 
-	0x0c40, 0x0c40, 0x0c40, 0x0c40, 0x0c41, 0x0c41, 0x0c42, 0x0c42, 
-	0x0c43, 0x0c44, 0x0c45, 0x0c45, 0x0c46, 0x0c47, 0x0c48, 0x0c49, 
-	0x0c4a, 0x0c4b, 0x0c4c, 0x0c4e, 0x0c4f, 0x0c50, 0x0c51, 0x0c53, 
-	0x0c54, 0x0c55, 0x0c57, 0x0c58, 0x0c5a, 0x0c5b, 0x0c5d, 0x0c5f, 
-	0x0c60, 0x0c60, 0x0c60, 0x0c60, 0x0c61, 0x0c61, 0x0c62, 0x0c62, 
-	0x0c63, 0x0c64, 0x0c65, 0x0c65, 0x0c66, 0x0c67, 0x0c68, 0x0c69, 
-	0x0c6a, 0x0c6b, 0x0c6c, 0x0c6e, 0x0c6f, 0x0c70, 0x0c71, 0x0c73, 
-	0x0c74, 0x0c75, 0x0c77, 0x0c78, 0x0c7a, 0x0c7b, 0x0c7d, 0x0c7f, 
-	0x0c80, 0x0c80, 0x0c80, 0x0c80, 0x0c81, 0x0c81, 0x0c82, 0x0c82, 
-	0x0c83, 0x0c84, 0x0c85, 0x0c85, 0x0c86, 0x0c87, 0x0c88, 0x0c89, 
-	0x0c8a, 0x0c8b, 0x0c8c, 0x0c8e, 0x0c8f, 0x0c90, 0x0c91, 0x0c93, 
-	0x0c94, 0x0c95, 0x0c97, 0x0c98, 0x0c9a, 0x0c9b, 0x0c9d, 0x0c9f, 
-	0x0cc0, 0x0cc0, 0x0cc0, 0x0cc0, 0x0cc1, 0x0cc1, 0x0cc2, 0x0cc2, 
-	0x0cc3, 0x0cc4, 0x0cc5, 0x0cc5, 0x0cc6, 0x0cc7, 0x0cc8, 0x0cc9, 
-	0x0cca, 0x0ccb, 0x0ccc, 0x0cce, 0x0ccf, 0x0cd0, 0x0cd1, 0x0cd3, 
-	0x0cd4, 0x0cd5, 0x0cd7, 0x0cd8, 0x0cda, 0x0cdb, 0x0cdd, 0x0cdf, 
-	0x0ce0, 0x0ce0, 0x0ce0, 0x0ce0, 0x0ce1, 0x0ce1, 0x0ce2, 0x0ce2, 
-	0x0ce3, 0x0ce4, 0x0ce5, 0x0ce5, 0x0ce6, 0x0ce7, 0x0ce8, 0x0ce9, 
-	0x0cea, 0x0ceb, 0x0cec, 0x0cee, 0x0cef, 0x0cf0, 0x0cf1, 0x0cf3, 
-	0x0cf4, 0x0cf5, 0x0cf7, 0x0cf8, 0x0cfa, 0x0cfb, 0x0cfd, 0x0cff, 
-	0x0d00, 0x0d00, 0x0d00, 0x0d00, 0x0d01, 0x0d01, 0x0d02, 0x0d02, 
-	0x0d03, 0x0d04, 0x0d05, 0x0d05, 0x0d06, 0x0d07, 0x0d08, 0x0d09, 
-	0x0d0a, 0x0d0b, 0x0d0c, 0x0d0e, 0x0d0f, 0x0d10, 0x0d11, 0x0d13, 
-	0x0d14, 0x0d15, 0x0d17, 0x0d18, 0x0d1a, 0x0d1b, 0x0d1d, 0x0d1f, 
-	0x0d40, 0x0d40, 0x0d40, 0x0d40, 0x0d41, 0x0d41, 0x0d42, 0x0d42, 
-	0x0d43, 0x0d44, 0x0d45, 0x0d45, 0x0d46, 0x0d47, 0x0d48, 0x0d49, 
-	0x0d4a, 0x0d4b, 0x0d4c, 0x0d4e, 0x0d4f, 0x0d50, 0x0d51, 0x0d53, 
-	0x0d54, 0x0d55, 0x0d57, 0x0d58, 0x0d5a, 0x0d5b, 0x0d5d, 0x0d5f, 
-	0x0d60, 0x0d60, 0x0d60, 0x0d60, 0x0d61, 0x0d61, 0x0d62, 0x0d62, 
-	0x0d63, 0x0d64, 0x0d65, 0x0d65, 0x0d66, 0x0d67, 0x0d68, 0x0d69, 
-	0x0d6a, 0x0d6b, 0x0d6c, 0x0d6e, 0x0d6f, 0x0d70, 0x0d71, 0x0d73, 
-	0x0d74, 0x0d75, 0x0d77, 0x0d78, 0x0d7a, 0x0d7b, 0x0d7d, 0x0d7f, 
-	0x0d80, 0x0d80, 0x0d80, 0x0d80, 0x0d81, 0x0d81, 0x0d82, 0x0d82, 
-	0x0d83, 0x0d84, 0x0d85, 0x0d85, 0x0d86, 0x0d87, 0x0d88, 0x0d89, 
-	0x0d8a, 0x0d8b, 0x0d8c, 0x0d8e, 0x0d8f, 0x0d90, 0x0d91, 0x0d93, 
-	0x0d94, 0x0d95, 0x0d97, 0x0d98, 0x0d9a, 0x0d9b, 0x0d9d, 0x0d9f, 
-	0x0dc0, 0x0dc0, 0x0dc0, 0x0dc0, 0x0dc1, 0x0dc1, 0x0dc2, 0x0dc2, 
-	0x0dc3, 0x0dc4, 0x0dc5, 0x0dc5, 0x0dc6, 0x0dc7, 0x0dc8, 0x0dc9, 
-	0x0dca, 0x0dcb, 0x0dcc, 0x0dce, 0x0dcf, 0x0dd0, 0x0dd1, 0x0dd3, 
-	0x0dd4, 0x0dd5, 0x0dd7, 0x0dd8, 0x0dda, 0x0ddb, 0x0ddd, 0x0ddf, 
-	0x0de0, 0x0de0, 0x0de0, 0x0de0, 0x0de1, 0x0de1, 0x0de2, 0x0de2, 
-	0x0de3, 0x0de4, 0x0de5, 0x0de5, 0x0de6, 0x0de7, 0x0de8, 0x0de9, 
-	0x0dea, 0x0deb, 0x0dec, 0x0dee, 0x0def, 0x0df0, 0x0df1, 0x0df3, 
-	0x0df4, 0x0df5, 0x0df7, 0x0df8, 0x0dfa, 0x0dfb, 0x0dfd, 0x0dff, 
-	0x0e20, 0x0e20, 0x0e20, 0x0e20, 0x0e21, 0x0e21, 0x0e22, 0x0e22, 
-	0x0e23, 0x0e24, 0x0e25, 0x0e25, 0x0e26, 0x0e27, 0x0e28, 0x0e29, 
-	0x0e2a, 0x0e2b, 0x0e2c, 0x0e2e, 0x0e2f, 0x0e30, 0x0e31, 0x0e33, 
-	0x0e34, 0x0e35, 0x0e37, 0x0e38, 0x0e3a, 0x0e3b, 0x0e3d, 0x0e3f, 
-	0x0e40, 0x0e40, 0x0e40, 0x0e40, 0x0e41, 0x0e41, 0x0e42, 0x0e42, 
-	0x0e43, 0x0e44, 0x0e45, 0x0e45, 0x0e46, 0x0e47, 0x0e48, 0x0e49, 
-	0x0e4a, 0x0e4b, 0x0e4c, 0x0e4e, 0x0e4f, 0x0e50, 0x0e51, 0x0e53, 
-	0x0e54, 0x0e55, 0x0e57, 0x0e58, 0x0e5a, 0x0e5b, 0x0e5d, 0x0e5f, 
-	0x0e80, 0x0e80, 0x0e80, 0x0e80, 0x0e81, 0x0e81, 0x0e82, 0x0e82, 
-	0x0e83, 0x0e84, 0x0e85, 0x0e85, 0x0e86, 0x0e87, 0x0e88, 0x0e89, 
-	0x0e8a, 0x0e8b, 0x0e8c, 0x0e8e, 0x0e8f, 0x0e90, 0x0e91, 0x0e93, 
-	0x0e94, 0x0e95, 0x0e97, 0x0e98, 0x0e9a, 0x0e9b, 0x0e9d, 0x0e9f, 
-	0x0ea0, 0x0ea0, 0x0ea0, 0x0ea0, 0x0ea1, 0x0ea1, 0x0ea2, 0x0ea2, 
-	0x0ea3, 0x0ea4, 0x0ea5, 0x0ea5, 0x0ea6, 0x0ea7, 0x0ea8, 0x0ea9, 
-	0x0eaa, 0x0eab, 0x0eac, 0x0eae, 0x0eaf, 0x0eb0, 0x0eb1, 0x0eb3, 
-	0x0eb4, 0x0eb5, 0x0eb7, 0x0eb8, 0x0eba, 0x0ebb, 0x0ebd, 0x0ebf, 
-	0x0ee0, 0x0ee0, 0x0ee0, 0x0ee0, 0x0ee1, 0x0ee1, 0x0ee2, 0x0ee2, 
-	0x0ee3, 0x0ee4, 0x0ee5, 0x0ee5, 0x0ee6, 0x0ee7, 0x0ee8, 0x0ee9, 
-	0x0eea, 0x0eeb, 0x0eec, 0x0eee, 0x0eef, 0x0ef0, 0x0ef1, 0x0ef3, 
-	0x0ef4, 0x0ef5, 0x0ef7, 0x0ef8, 0x0efa, 0x0efb, 0x0efd, 0x0eff, 
-	0x0f00, 0x0f00, 0x0f00, 0x0f00, 0x0f01, 0x0f01, 0x0f02, 0x0f02, 
-	0x0f03, 0x0f04, 0x0f05, 0x0f05, 0x0f06, 0x0f07, 0x0f08, 0x0f09, 
-	0x0f0a, 0x0f0b, 0x0f0c, 0x0f0e, 0x0f0f, 0x0f10, 0x0f11, 0x0f13, 
-	0x0f14, 0x0f15, 0x0f17, 0x0f18, 0x0f1a, 0x0f1b, 0x0f1d, 0x0f1f, 
-	0x0f40, 0x0f40, 0x0f40, 0x0f40, 0x0f41, 0x0f41, 0x0f42, 0x0f42, 
-	0x0f43, 0x0f44, 0x0f45, 0x0f45, 0x0f46, 0x0f47, 0x0f48, 0x0f49, 
-	0x0f4a, 0x0f4b, 0x0f4c, 0x0f4e, 0x0f4f, 0x0f50, 0x0f51, 0x0f53, 
-	0x0f54, 0x0f55, 0x0f57, 0x0f58, 0x0f5a, 0x0f5b, 0x0f5d, 0x0f5f, 
-	0x0f60, 0x0f60, 0x0f60, 0x0f60, 0x0f61, 0x0f61, 0x0f62, 0x0f62, 
-	0x0f63, 0x0f64, 0x0f65, 0x0f65, 0x0f66, 0x0f67, 0x0f68, 0x0f69, 
-	0x0f6a, 0x0f6b, 0x0f6c, 0x0f6e, 0x0f6f, 0x0f70, 0x0f71, 0x0f73, 
-	0x0f74, 0x0f75, 0x0f77, 0x0f78, 0x0f7a, 0x0f7b, 0x0f7d, 0x0f7f, 
-	0x0fa0, 0x0fa0, 0x0fa0, 0x0fa0, 0x0fa1, 0x0fa1, 0x0fa2, 0x0fa2, 
-	0x0fa3, 0x0fa4, 0x0fa5, 0x0fa5, 0x0fa6, 0x0fa7, 0x0fa8, 0x0fa9, 
-	0x0faa, 0x0fab, 0x0fac, 0x0fae, 0x0faf, 0x0fb0, 0x0fb1, 0x0fb3, 
-	0x0fb4, 0x0fb5, 0x0fb7, 0x0fb8, 0x0fba, 0x0fbb, 0x0fbd, 0x0fbf, 
-	0x0fe0, 0x0fe0, 0x0fe0, 0x0fe0, 0x0fe1, 0x0fe1, 0x0fe2, 0x0fe2, 
-	0x0fe3, 0x0fe4, 0x0fe5, 0x0fe5, 0x0fe6, 0x0fe7, 0x0fe8, 0x0fe9, 
-	0x0fea, 0x0feb, 0x0fec, 0x0fee, 0x0fef, 0x0ff0, 0x0ff1, 0x0ff3, 
-	0x0ff4, 0x0ff5, 0x0ff7, 0x0ff8, 0x0ffa, 0x0ffb, 0x0ffd, 0x0fff, 
-	0x1000, 0x1000, 0x1000, 0x1000, 0x1001, 0x1001, 0x1002, 0x1002, 
-	0x1003, 0x1004, 0x1005, 0x1005, 0x1006, 0x1007, 0x1008, 0x1009, 
-	0x100a, 0x100b, 0x100c, 0x100e, 0x100f, 0x1010, 0x1011, 0x1013, 
-	0x1014, 0x1015, 0x1017, 0x1018, 0x101a, 0x101b, 0x101d, 0x101f, 
-	0x1000, 0x1000, 0x1000, 0x1000, 0x1001, 0x1001, 0x1002, 0x1002, 
-	0x1003, 0x1004, 0x1005, 0x1005, 0x1006, 0x1007, 0x1008, 0x1009, 
-	0x100a, 0x100b, 0x100c, 0x100e, 0x100f, 0x1010, 0x1011, 0x1013, 
-	0x1014, 0x1015, 0x1017, 0x1018, 0x101a, 0x101b, 0x101d, 0x101f, 
-	0x1000, 0x1000, 0x1000, 0x1000, 0x1001, 0x1001, 0x1002, 0x1002, 
-	0x1003, 0x1004, 0x1005, 0x1005, 0x1006, 0x1007, 0x1008, 0x1009, 
-	0x100a, 0x100b, 0x100c, 0x100e, 0x100f, 0x1010, 0x1011, 0x1013, 
-	0x1014, 0x1015, 0x1017, 0x1018, 0x101a, 0x101b, 0x101d, 0x101f, 
-	0x1000, 0x1000, 0x1000, 0x1000, 0x1001, 0x1001, 0x1002, 0x1002, 
-	0x1003, 0x1004, 0x1005, 0x1005, 0x1006, 0x1007, 0x1008, 0x1009, 
-	0x100a, 0x100b, 0x100c, 0x100e, 0x100f, 0x1010, 0x1011, 0x1013, 
-	0x1014, 0x1015, 0x1017, 0x1018, 0x101a, 0x101b, 0x101d, 0x101f, 
-	0x1000, 0x1000, 0x1000, 0x1000, 0x1001, 0x1001, 0x1002, 0x1002, 
-	0x1003, 0x1004, 0x1005, 0x1005, 0x1006, 0x1007, 0x1008, 0x1009, 
-	0x100a, 0x100b, 0x100c, 0x100e, 0x100f, 0x1010, 0x1011, 0x1013, 
-	0x1014, 0x1015, 0x1017, 0x1018, 0x101a, 0x101b, 0x101d, 0x101f, 
-	0x1020, 0x1020, 0x1020, 0x1020, 0x1021, 0x1021, 0x1022, 0x1022, 
-	0x1023, 0x1024, 0x1025, 0x1025, 0x1026, 0x1027, 0x1028, 0x1029, 
-	0x102a, 0x102b, 0x102c, 0x102e, 0x102f, 0x1030, 0x1031, 0x1033, 
-	0x1034, 0x1035, 0x1037, 0x1038, 0x103a, 0x103b, 0x103d, 0x103f, 
-	0x1020, 0x1020, 0x1020, 0x1020, 0x1021, 0x1021, 0x1022, 0x1022, 
-	0x1023, 0x1024, 0x1025, 0x1025, 0x1026, 0x1027, 0x1028, 0x1029, 
-	0x102a, 0x102b, 0x102c, 0x102e, 0x102f, 0x1030, 0x1031, 0x1033, 
-	0x1034, 0x1035, 0x1037, 0x1038, 0x103a, 0x103b, 0x103d, 0x103f, 
-	0x1020, 0x1020, 0x1020, 0x1020, 0x1021, 0x1021, 0x1022, 0x1022, 
-	0x1023, 0x1024, 0x1025, 0x1025, 0x1026, 0x1027, 0x1028, 0x1029, 
-	0x102a, 0x102b, 0x102c, 0x102e, 0x102f, 0x1030, 0x1031, 0x1033, 
-	0x1034, 0x1035, 0x1037, 0x1038, 0x103a, 0x103b, 0x103d, 0x103f, 
-	0x1040, 0x1040, 0x1040, 0x1040, 0x1041, 0x1041, 0x1042, 0x1042, 
-	0x1043, 0x1044, 0x1045, 0x1045, 0x1046, 0x1047, 0x1048, 0x1049, 
-	0x104a, 0x104b, 0x104c, 0x104e, 0x104f, 0x1050, 0x1051, 0x1053, 
-	0x1054, 0x1055, 0x1057, 0x1058, 0x105a, 0x105b, 0x105d, 0x105f, 
-	0x1040, 0x1040, 0x1040, 0x1040, 0x1041, 0x1041, 0x1042, 0x1042, 
-	0x1043, 0x1044, 0x1045, 0x1045, 0x1046, 0x1047, 0x1048, 0x1049, 
-	0x104a, 0x104b, 0x104c, 0x104e, 0x104f, 0x1050, 0x1051, 0x1053, 
-	0x1054, 0x1055, 0x1057, 0x1058, 0x105a, 0x105b, 0x105d, 0x105f, 
-	0x1060, 0x1060, 0x1060, 0x1060, 0x1061, 0x1061, 0x1062, 0x1062, 
-	0x1063, 0x1064, 0x1065, 0x1065, 0x1066, 0x1067, 0x1068, 0x1069, 
-	0x106a, 0x106b, 0x106c, 0x106e, 0x106f, 0x1070, 0x1071, 0x1073, 
-	0x1074, 0x1075, 0x1077, 0x1078, 0x107a, 0x107b, 0x107d, 0x107f, 
-	0x1060, 0x1060, 0x1060, 0x1060, 0x1061, 0x1061, 0x1062, 0x1062, 
-	0x1063, 0x1064, 0x1065, 0x1065, 0x1066, 0x1067, 0x1068, 0x1069, 
-	0x106a, 0x106b, 0x106c, 0x106e, 0x106f, 0x1070, 0x1071, 0x1073, 
-	0x1074, 0x1075, 0x1077, 0x1078, 0x107a, 0x107b, 0x107d, 0x107f, 
-	0x1080, 0x1080, 0x1080, 0x1080, 0x1081, 0x1081, 0x1082, 0x1082, 
-	0x1083, 0x1084, 0x1085, 0x1085, 0x1086, 0x1087, 0x1088, 0x1089, 
-	0x108a, 0x108b, 0x108c, 0x108e, 0x108f, 0x1090, 0x1091, 0x1093, 
-	0x1094, 0x1095, 0x1097, 0x1098, 0x109a, 0x109b, 0x109d, 0x109f, 
-	0x10a0, 0x10a0, 0x10a0, 0x10a0, 0x10a1, 0x10a1, 0x10a2, 0x10a2, 
-	0x10a3, 0x10a4, 0x10a5, 0x10a5, 0x10a6, 0x10a7, 0x10a8, 0x10a9, 
-	0x10aa, 0x10ab, 0x10ac, 0x10ae, 0x10af, 0x10b0, 0x10b1, 0x10b3, 
-	0x10b4, 0x10b5, 0x10b7, 0x10b8, 0x10ba, 0x10bb, 0x10bd, 0x10bf, 
-	0x10a0, 0x10a0, 0x10a0, 0x10a0, 0x10a1, 0x10a1, 0x10a2, 0x10a2, 
-	0x10a3, 0x10a4, 0x10a5, 0x10a5, 0x10a6, 0x10a7, 0x10a8, 0x10a9, 
-	0x10aa, 0x10ab, 0x10ac, 0x10ae, 0x10af, 0x10b0, 0x10b1, 0x10b3, 
-	0x10b4, 0x10b5, 0x10b7, 0x10b8, 0x10ba, 0x10bb, 0x10bd, 0x10bf, 
-	0x10c0, 0x10c0, 0x10c0, 0x10c0, 0x10c1, 0x10c1, 0x10c2, 0x10c2, 
-	0x10c3, 0x10c4, 0x10c5, 0x10c5, 0x10c6, 0x10c7, 0x10c8, 0x10c9, 
-	0x10ca, 0x10cb, 0x10cc, 0x10ce, 0x10cf, 0x10d0, 0x10d1, 0x10d3, 
-	0x10d4, 0x10d5, 0x10d7, 0x10d8, 0x10da, 0x10db, 0x10dd, 0x10df, 
-	0x10e0, 0x10e0, 0x10e0, 0x10e0, 0x10e1, 0x10e1, 0x10e2, 0x10e2, 
-	0x10e3, 0x10e4, 0x10e5, 0x10e5, 0x10e6, 0x10e7, 0x10e8, 0x10e9, 
-	0x10ea, 0x10eb, 0x10ec, 0x10ee, 0x10ef, 0x10f0, 0x10f1, 0x10f3, 
-	0x10f4, 0x10f5, 0x10f7, 0x10f8, 0x10fa, 0x10fb, 0x10fd, 0x10ff, 
-	0x10e0, 0x10e0, 0x10e0, 0x10e0, 0x10e1, 0x10e1, 0x10e2, 0x10e2, 
-	0x10e3, 0x10e4, 0x10e5, 0x10e5, 0x10e6, 0x10e7, 0x10e8, 0x10e9, 
-	0x10ea, 0x10eb, 0x10ec, 0x10ee, 0x10ef, 0x10f0, 0x10f1, 0x10f3, 
-	0x10f4, 0x10f5, 0x10f7, 0x10f8, 0x10fa, 0x10fb, 0x10fd, 0x10ff, 
-	0x1100, 0x1100, 0x1100, 0x1100, 0x1101, 0x1101, 0x1102, 0x1102, 
-	0x1103, 0x1104, 0x1105, 0x1105, 0x1106, 0x1107, 0x1108, 0x1109, 
-	0x110a, 0x110b, 0x110c, 0x110e, 0x110f, 0x1110, 0x1111, 0x1113, 
-	0x1114, 0x1115, 0x1117, 0x1118, 0x111a, 0x111b, 0x111d, 0x111f, 
-	0x1120, 0x1120, 0x1120, 0x1120, 0x1121, 0x1121, 0x1122, 0x1122, 
-	0x1123, 0x1124, 0x1125, 0x1125, 0x1126, 0x1127, 0x1128, 0x1129, 
-	0x112a, 0x112b, 0x112c, 0x112e, 0x112f, 0x1130, 0x1131, 0x1133, 
-	0x1134, 0x1135, 0x1137, 0x1138, 0x113a, 0x113b, 0x113d, 0x113f, 
-	0x1140, 0x1140, 0x1140, 0x1140, 0x1141, 0x1141, 0x1142, 0x1142, 
-	0x1143, 0x1144, 0x1145, 0x1145, 0x1146, 0x1147, 0x1148, 0x1149, 
-	0x114a, 0x114b, 0x114c, 0x114e, 0x114f, 0x1150, 0x1151, 0x1153, 
-	0x1154, 0x1155, 0x1157, 0x1158, 0x115a, 0x115b, 0x115d, 0x115f, 
-	0x1140, 0x1140, 0x1140, 0x1140, 0x1141, 0x1141, 0x1142, 0x1142, 
-	0x1143, 0x1144, 0x1145, 0x1145, 0x1146, 0x1147, 0x1148, 0x1149, 
-	0x114a, 0x114b, 0x114c, 0x114e, 0x114f, 0x1150, 0x1151, 0x1153, 
-	0x1154, 0x1155, 0x1157, 0x1158, 0x115a, 0x115b, 0x115d, 0x115f, 
-	0x1160, 0x1160, 0x1160, 0x1160, 0x1161, 0x1161, 0x1162, 0x1162, 
-	0x1163, 0x1164, 0x1165, 0x1165, 0x1166, 0x1167, 0x1168, 0x1169, 
-	0x116a, 0x116b, 0x116c, 0x116e, 0x116f, 0x1170, 0x1171, 0x1173, 
-	0x1174, 0x1175, 0x1177, 0x1178, 0x117a, 0x117b, 0x117d, 0x117f, 
-	0x1180, 0x1180, 0x1180, 0x1180, 0x1181, 0x1181, 0x1182, 0x1182, 
-	0x1183, 0x1184, 0x1185, 0x1185, 0x1186, 0x1187, 0x1188, 0x1189, 
-	0x118a, 0x118b, 0x118c, 0x118e, 0x118f, 0x1190, 0x1191, 0x1193, 
-	0x1194, 0x1195, 0x1197, 0x1198, 0x119a, 0x119b, 0x119d, 0x119f, 
-	0x11a0, 0x11a0, 0x11a0, 0x11a0, 0x11a1, 0x11a1, 0x11a2, 0x11a2, 
-	0x11a3, 0x11a4, 0x11a5, 0x11a5, 0x11a6, 0x11a7, 0x11a8, 0x11a9, 
-	0x11aa, 0x11ab, 0x11ac, 0x11ae, 0x11af, 0x11b0, 0x11b1, 0x11b3, 
-	0x11b4, 0x11b5, 0x11b7, 0x11b8, 0x11ba, 0x11bb, 0x11bd, 0x11bf, 
-	0x11c0, 0x11c0, 0x11c0, 0x11c0, 0x11c1, 0x11c1, 0x11c2, 0x11c2, 
-	0x11c3, 0x11c4, 0x11c5, 0x11c5, 0x11c6, 0x11c7, 0x11c8, 0x11c9, 
-	0x11ca, 0x11cb, 0x11cc, 0x11ce, 0x11cf, 0x11d0, 0x11d1, 0x11d3, 
-	0x11d4, 0x11d5, 0x11d7, 0x11d8, 0x11da, 0x11db, 0x11dd, 0x11df, 
-	0x11e0, 0x11e0, 0x11e0, 0x11e0, 0x11e1, 0x11e1, 0x11e2, 0x11e2, 
-	0x11e3, 0x11e4, 0x11e5, 0x11e5, 0x11e6, 0x11e7, 0x11e8, 0x11e9, 
-	0x11ea, 0x11eb, 0x11ec, 0x11ee, 0x11ef, 0x11f0, 0x11f1, 0x11f3, 
-	0x11f4, 0x11f5, 0x11f7, 0x11f8, 0x11fa, 0x11fb, 0x11fd, 0x11ff, 
-	0x1200, 0x1200, 0x1200, 0x1200, 0x1201, 0x1201, 0x1202, 0x1202, 
-	0x1203, 0x1204, 0x1205, 0x1205, 0x1206, 0x1207, 0x1208, 0x1209, 
-	0x120a, 0x120b, 0x120c, 0x120e, 0x120f, 0x1210, 0x1211, 0x1213, 
-	0x1214, 0x1215, 0x1217, 0x1218, 0x121a, 0x121b, 0x121d, 0x121f, 
-	0x1220, 0x1220, 0x1220, 0x1220, 0x1221, 0x1221, 0x1222, 0x1222, 
-	0x1223, 0x1224, 0x1225, 0x1225, 0x1226, 0x1227, 0x1228, 0x1229, 
-	0x122a, 0x122b, 0x122c, 0x122e, 0x122f, 0x1230, 0x1231, 0x1233, 
-	0x1234, 0x1235, 0x1237, 0x1238, 0x123a, 0x123b, 0x123d, 0x123f, 
-	0x1240, 0x1240, 0x1240, 0x1240, 0x1241, 0x1241, 0x1242, 0x1242, 
-	0x1243, 0x1244, 0x1245, 0x1245, 0x1246, 0x1247, 0x1248, 0x1249, 
-	0x124a, 0x124b, 0x124c, 0x124e, 0x124f, 0x1250, 0x1251, 0x1253, 
-	0x1254, 0x1255, 0x1257, 0x1258, 0x125a, 0x125b, 0x125d, 0x125f, 
-	0x1260, 0x1260, 0x1260, 0x1260, 0x1261, 0x1261, 0x1262, 0x1262, 
-	0x1263, 0x1264, 0x1265, 0x1265, 0x1266, 0x1267, 0x1268, 0x1269, 
-	0x126a, 0x126b, 0x126c, 0x126e, 0x126f, 0x1270, 0x1271, 0x1273, 
-	0x1274, 0x1275, 0x1277, 0x1278, 0x127a, 0x127b, 0x127d, 0x127f, 
-	0x1280, 0x1280, 0x1280, 0x1280, 0x1281, 0x1281, 0x1282, 0x1282, 
-	0x1283, 0x1284, 0x1285, 0x1285, 0x1286, 0x1287, 0x1288, 0x1289, 
-	0x128a, 0x128b, 0x128c, 0x128e, 0x128f, 0x1290, 0x1291, 0x1293, 
-	0x1294, 0x1295, 0x1297, 0x1298, 0x129a, 0x129b, 0x129d, 0x129f, 
-	0x12a0, 0x12a0, 0x12a0, 0x12a0, 0x12a1, 0x12a1, 0x12a2, 0x12a2, 
-	0x12a3, 0x12a4, 0x12a5, 0x12a5, 0x12a6, 0x12a7, 0x12a8, 0x12a9, 
-	0x12aa, 0x12ab, 0x12ac, 0x12ae, 0x12af, 0x12b0, 0x12b1, 0x12b3, 
-	0x12b4, 0x12b5, 0x12b7, 0x12b8, 0x12ba, 0x12bb, 0x12bd, 0x12bf, 
-	0x12c0, 0x12c0, 0x12c0, 0x12c0, 0x12c1, 0x12c1, 0x12c2, 0x12c2, 
-	0x12c3, 0x12c4, 0x12c5, 0x12c5, 0x12c6, 0x12c7, 0x12c8, 0x12c9, 
-	0x12ca, 0x12cb, 0x12cc, 0x12ce, 0x12cf, 0x12d0, 0x12d1, 0x12d3, 
-	0x12d4, 0x12d5, 0x12d7, 0x12d8, 0x12da, 0x12db, 0x12dd, 0x12df, 
-	0x12e0, 0x12e0, 0x12e0, 0x12e0, 0x12e1, 0x12e1, 0x12e2, 0x12e2, 
-	0x12e3, 0x12e4, 0x12e5, 0x12e5, 0x12e6, 0x12e7, 0x12e8, 0x12e9, 
-	0x12ea, 0x12eb, 0x12ec, 0x12ee, 0x12ef, 0x12f0, 0x12f1, 0x12f3, 
-	0x12f4, 0x12f5, 0x12f7, 0x12f8, 0x12fa, 0x12fb, 0x12fd, 0x12ff, 
-	0x1300, 0x1300, 0x1300, 0x1300, 0x1301, 0x1301, 0x1302, 0x1302, 
-	0x1303, 0x1304, 0x1305, 0x1305, 0x1306, 0x1307, 0x1308, 0x1309, 
-	0x130a, 0x130b, 0x130c, 0x130e, 0x130f, 0x1310, 0x1311, 0x1313, 
-	0x1314, 0x1315, 0x1317, 0x1318, 0x131a, 0x131b, 0x131d, 0x131f, 
-	0x1320, 0x1320, 0x1320, 0x1320, 0x1321, 0x1321, 0x1322, 0x1322, 
-	0x1323, 0x1324, 0x1325, 0x1325, 0x1326, 0x1327, 0x1328, 0x1329, 
-	0x132a, 0x132b, 0x132c, 0x132e, 0x132f, 0x1330, 0x1331, 0x1333, 
-	0x1334, 0x1335, 0x1337, 0x1338, 0x133a, 0x133b, 0x133d, 0x133f, 
-	0x1340, 0x1340, 0x1340, 0x1340, 0x1341, 0x1341, 0x1342, 0x1342, 
-	0x1343, 0x1344, 0x1345, 0x1345, 0x1346, 0x1347, 0x1348, 0x1349, 
-	0x134a, 0x134b, 0x134c, 0x134e, 0x134f, 0x1350, 0x1351, 0x1353, 
-	0x1354, 0x1355, 0x1357, 0x1358, 0x135a, 0x135b, 0x135d, 0x135f, 
-	0x1380, 0x1380, 0x1380, 0x1380, 0x1381, 0x1381, 0x1382, 0x1382, 
-	0x1383, 0x1384, 0x1385, 0x1385, 0x1386, 0x1387, 0x1388, 0x1389, 
-	0x138a, 0x138b, 0x138c, 0x138e, 0x138f, 0x1390, 0x1391, 0x1393, 
-	0x1394, 0x1395, 0x1397, 0x1398, 0x139a, 0x139b, 0x139d, 0x139f, 
-	0x13a0, 0x13a0, 0x13a0, 0x13a0, 0x13a1, 0x13a1, 0x13a2, 0x13a2, 
-	0x13a3, 0x13a4, 0x13a5, 0x13a5, 0x13a6, 0x13a7, 0x13a8, 0x13a9, 
-	0x13aa, 0x13ab, 0x13ac, 0x13ae, 0x13af, 0x13b0, 0x13b1, 0x13b3, 
-	0x13b4, 0x13b5, 0x13b7, 0x13b8, 0x13ba, 0x13bb, 0x13bd, 0x13bf, 
-	0x13c0, 0x13c0, 0x13c0, 0x13c0, 0x13c1, 0x13c1, 0x13c2, 0x13c2, 
-	0x13c3, 0x13c4, 0x13c5, 0x13c5, 0x13c6, 0x13c7, 0x13c8, 0x13c9, 
-	0x13ca, 0x13cb, 0x13cc, 0x13ce, 0x13cf, 0x13d0, 0x13d1, 0x13d3, 
-	0x13d4, 0x13d5, 0x13d7, 0x13d8, 0x13da, 0x13db, 0x13dd, 0x13df, 
-	0x13e0, 0x13e0, 0x13e0, 0x13e0, 0x13e1, 0x13e1, 0x13e2, 0x13e2, 
-	0x13e3, 0x13e4, 0x13e5, 0x13e5, 0x13e6, 0x13e7, 0x13e8, 0x13e9, 
-	0x13ea, 0x13eb, 0x13ec, 0x13ee, 0x13ef, 0x13f0, 0x13f1, 0x13f3, 
-	0x13f4, 0x13f5, 0x13f7, 0x13f8, 0x13fa, 0x13fb, 0x13fd, 0x13ff, 
-	0x1400, 0x1400, 0x1400, 0x1400, 0x1401, 0x1401, 0x1402, 0x1402, 
-	0x1403, 0x1404, 0x1405, 0x1405, 0x1406, 0x1407, 0x1408, 0x1409, 
-	0x140a, 0x140b, 0x140c, 0x140e, 0x140f, 0x1410, 0x1411, 0x1413, 
-	0x1414, 0x1415, 0x1417, 0x1418, 0x141a, 0x141b, 0x141d, 0x141f, 
-	0x1440, 0x1440, 0x1440, 0x1440, 0x1441, 0x1441, 0x1442, 0x1442, 
-	0x1443, 0x1444, 0x1445, 0x1445, 0x1446, 0x1447, 0x1448, 0x1449, 
-	0x144a, 0x144b, 0x144c, 0x144e, 0x144f, 0x1450, 0x1451, 0x1453, 
-	0x1454, 0x1455, 0x1457, 0x1458, 0x145a, 0x145b, 0x145d, 0x145f, 
-	0x1460, 0x1460, 0x1460, 0x1460, 0x1461, 0x1461, 0x1462, 0x1462, 
-	0x1463, 0x1464, 0x1465, 0x1465, 0x1466, 0x1467, 0x1468, 0x1469, 
-	0x146a, 0x146b, 0x146c, 0x146e, 0x146f, 0x1470, 0x1471, 0x1473, 
-	0x1474, 0x1475, 0x1477, 0x1478, 0x147a, 0x147b, 0x147d, 0x147f, 
-	0x1480, 0x1480, 0x1480, 0x1480, 0x1481, 0x1481, 0x1482, 0x1482, 
-	0x1483, 0x1484, 0x1485, 0x1485, 0x1486, 0x1487, 0x1488, 0x1489, 
-	0x148a, 0x148b, 0x148c, 0x148e, 0x148f, 0x1490, 0x1491, 0x1493, 
-	0x1494, 0x1495, 0x1497, 0x1498, 0x149a, 0x149b, 0x149d, 0x149f, 
-	0x14c0, 0x14c0, 0x14c0, 0x14c0, 0x14c1, 0x14c1, 0x14c2, 0x14c2, 
-	0x14c3, 0x14c4, 0x14c5, 0x14c5, 0x14c6, 0x14c7, 0x14c8, 0x14c9, 
-	0x14ca, 0x14cb, 0x14cc, 0x14ce, 0x14cf, 0x14d0, 0x14d1, 0x14d3, 
-	0x14d4, 0x14d5, 0x14d7, 0x14d8, 0x14da, 0x14db, 0x14dd, 0x14df, 
-	0x14e0, 0x14e0, 0x14e0, 0x14e0, 0x14e1, 0x14e1, 0x14e2, 0x14e2, 
-	0x14e3, 0x14e4, 0x14e5, 0x14e5, 0x14e6, 0x14e7, 0x14e8, 0x14e9, 
-	0x14ea, 0x14eb, 0x14ec, 0x14ee, 0x14ef, 0x14f0, 0x14f1, 0x14f3, 
-	0x14f4, 0x14f5, 0x14f7, 0x14f8, 0x14fa, 0x14fb, 0x14fd, 0x14ff, 
-	0x1500, 0x1500, 0x1500, 0x1500, 0x1501, 0x1501, 0x1502, 0x1502, 
-	0x1503, 0x1504, 0x1505, 0x1505, 0x1506, 0x1507, 0x1508, 0x1509, 
-	0x150a, 0x150b, 0x150c, 0x150e, 0x150f, 0x1510, 0x1511, 0x1513, 
-	0x1514, 0x1515, 0x1517, 0x1518, 0x151a, 0x151b, 0x151d, 0x151f, 
-	0x1540, 0x1540, 0x1540, 0x1540, 0x1541, 0x1541, 0x1542, 0x1542, 
-	0x1543, 0x1544, 0x1545, 0x1545, 0x1546, 0x1547, 0x1548, 0x1549, 
-	0x154a, 0x154b, 0x154c, 0x154e, 0x154f, 0x1550, 0x1551, 0x1553, 
-	0x1554, 0x1555, 0x1557, 0x1558, 0x155a, 0x155b, 0x155d, 0x155f, 
-	0x1560, 0x1560, 0x1560, 0x1560, 0x1561, 0x1561, 0x1562, 0x1562, 
-	0x1563, 0x1564, 0x1565, 0x1565, 0x1566, 0x1567, 0x1568, 0x1569, 
-	0x156a, 0x156b, 0x156c, 0x156e, 0x156f, 0x1570, 0x1571, 0x1573, 
-	0x1574, 0x1575, 0x1577, 0x1578, 0x157a, 0x157b, 0x157d, 0x157f, 
-	0x1580, 0x1580, 0x1580, 0x1580, 0x1581, 0x1581, 0x1582, 0x1582, 
-	0x1583, 0x1584, 0x1585, 0x1585, 0x1586, 0x1587, 0x1588, 0x1589, 
-	0x158a, 0x158b, 0x158c, 0x158e, 0x158f, 0x1590, 0x1591, 0x1593, 
-	0x1594, 0x1595, 0x1597, 0x1598, 0x159a, 0x159b, 0x159d, 0x159f, 
-	0x15c0, 0x15c0, 0x15c0, 0x15c0, 0x15c1, 0x15c1, 0x15c2, 0x15c2, 
-	0x15c3, 0x15c4, 0x15c5, 0x15c5, 0x15c6, 0x15c7, 0x15c8, 0x15c9, 
-	0x15ca, 0x15cb, 0x15cc, 0x15ce, 0x15cf, 0x15d0, 0x15d1, 0x15d3, 
-	0x15d4, 0x15d5, 0x15d7, 0x15d8, 0x15da, 0x15db, 0x15dd, 0x15df, 
-	0x15e0, 0x15e0, 0x15e0, 0x15e0, 0x15e1, 0x15e1, 0x15e2, 0x15e2, 
-	0x15e3, 0x15e4, 0x15e5, 0x15e5, 0x15e6, 0x15e7, 0x15e8, 0x15e9, 
-	0x15ea, 0x15eb, 0x15ec, 0x15ee, 0x15ef, 0x15f0, 0x15f1, 0x15f3, 
-	0x15f4, 0x15f5, 0x15f7, 0x15f8, 0x15fa, 0x15fb, 0x15fd, 0x15ff, 
-	0x1620, 0x1620, 0x1620, 0x1620, 0x1621, 0x1621, 0x1622, 0x1622, 
-	0x1623, 0x1624, 0x1625, 0x1625, 0x1626, 0x1627, 0x1628, 0x1629, 
-	0x162a, 0x162b, 0x162c, 0x162e, 0x162f, 0x1630, 0x1631, 0x1633, 
-	0x1634, 0x1635, 0x1637, 0x1638, 0x163a, 0x163b, 0x163d, 0x163f, 
-	0x1640, 0x1640, 0x1640, 0x1640, 0x1641, 0x1641, 0x1642, 0x1642, 
-	0x1643, 0x1644, 0x1645, 0x1645, 0x1646, 0x1647, 0x1648, 0x1649, 
-	0x164a, 0x164b, 0x164c, 0x164e, 0x164f, 0x1650, 0x1651, 0x1653, 
-	0x1654, 0x1655, 0x1657, 0x1658, 0x165a, 0x165b, 0x165d, 0x165f, 
-	0x1680, 0x1680, 0x1680, 0x1680, 0x1681, 0x1681, 0x1682, 0x1682, 
-	0x1683, 0x1684, 0x1685, 0x1685, 0x1686, 0x1687, 0x1688, 0x1689, 
-	0x168a, 0x168b, 0x168c, 0x168e, 0x168f, 0x1690, 0x1691, 0x1693, 
-	0x1694, 0x1695, 0x1697, 0x1698, 0x169a, 0x169b, 0x169d, 0x169f, 
-	0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16a1, 0x16a1, 0x16a2, 0x16a2, 
-	0x16a3, 0x16a4, 0x16a5, 0x16a5, 0x16a6, 0x16a7, 0x16a8, 0x16a9, 
-	0x16aa, 0x16ab, 0x16ac, 0x16ae, 0x16af, 0x16b0, 0x16b1, 0x16b3, 
-	0x16b4, 0x16b5, 0x16b7, 0x16b8, 0x16ba, 0x16bb, 0x16bd, 0x16bf, 
-	0x16e0, 0x16e0, 0x16e0, 0x16e0, 0x16e1, 0x16e1, 0x16e2, 0x16e2, 
-	0x16e3, 0x16e4, 0x16e5, 0x16e5, 0x16e6, 0x16e7, 0x16e8, 0x16e9, 
-	0x16ea, 0x16eb, 0x16ec, 0x16ee, 0x16ef, 0x16f0, 0x16f1, 0x16f3, 
-	0x16f4, 0x16f5, 0x16f7, 0x16f8, 0x16fa, 0x16fb, 0x16fd, 0x16ff, 
-	0x1700, 0x1700, 0x1700, 0x1700, 0x1701, 0x1701, 0x1702, 0x1702, 
-	0x1703, 0x1704, 0x1705, 0x1705, 0x1706, 0x1707, 0x1708, 0x1709, 
-	0x170a, 0x170b, 0x170c, 0x170e, 0x170f, 0x1710, 0x1711, 0x1713, 
-	0x1714, 0x1715, 0x1717, 0x1718, 0x171a, 0x171b, 0x171d, 0x171f, 
-	0x1740, 0x1740, 0x1740, 0x1740, 0x1741, 0x1741, 0x1742, 0x1742, 
-	0x1743, 0x1744, 0x1745, 0x1745, 0x1746, 0x1747, 0x1748, 0x1749, 
-	0x174a, 0x174b, 0x174c, 0x174e, 0x174f, 0x1750, 0x1751, 0x1753, 
-	0x1754, 0x1755, 0x1757, 0x1758, 0x175a, 0x175b, 0x175d, 0x175f, 
-	0x1760, 0x1760, 0x1760, 0x1760, 0x1761, 0x1761, 0x1762, 0x1762, 
-	0x1763, 0x1764, 0x1765, 0x1765, 0x1766, 0x1767, 0x1768, 0x1769, 
-	0x176a, 0x176b, 0x176c, 0x176e, 0x176f, 0x1770, 0x1771, 0x1773, 
-	0x1774, 0x1775, 0x1777, 0x1778, 0x177a, 0x177b, 0x177d, 0x177f, 
-	0x17a0, 0x17a0, 0x17a0, 0x17a0, 0x17a1, 0x17a1, 0x17a2, 0x17a2, 
-	0x17a3, 0x17a4, 0x17a5, 0x17a5, 0x17a6, 0x17a7, 0x17a8, 0x17a9, 
-	0x17aa, 0x17ab, 0x17ac, 0x17ae, 0x17af, 0x17b0, 0x17b1, 0x17b3, 
-	0x17b4, 0x17b5, 0x17b7, 0x17b8, 0x17ba, 0x17bb, 0x17bd, 0x17bf, 
-	0x17e0, 0x17e0, 0x17e0, 0x17e0, 0x17e1, 0x17e1, 0x17e2, 0x17e2, 
-	0x17e3, 0x17e4, 0x17e5, 0x17e5, 0x17e6, 0x17e7, 0x17e8, 0x17e9, 
-	0x17ea, 0x17eb, 0x17ec, 0x17ee, 0x17ef, 0x17f0, 0x17f1, 0x17f3, 
-	0x17f4, 0x17f5, 0x17f7, 0x17f8, 0x17fa, 0x17fb, 0x17fd, 0x17ff, 
-	0x1000, 0x1000, 0x1000, 0x1000, 0x1001, 0x1001, 0x1002, 0x1002, 
-	0x1003, 0x1004, 0x1005, 0x1005, 0x1006, 0x1007, 0x1008, 0x1009, 
-	0x100a, 0x100b, 0x100c, 0x100e, 0x100f, 0x1010, 0x1011, 0x1013, 
-	0x1014, 0x1015, 0x1017, 0x1018, 0x101a, 0x101b, 0x101d, 0x101f, 
-	0x1000, 0x1000, 0x1000, 0x1000, 0x1001, 0x1001, 0x1002, 0x1002, 
-	0x1003, 0x1004, 0x1005, 0x1005, 0x1006, 0x1007, 0x1008, 0x1009, 
-	0x100a, 0x100b, 0x100c, 0x100e, 0x100f, 0x1010, 0x1011, 0x1013, 
-	0x1014, 0x1015, 0x1017, 0x1018, 0x101a, 0x101b, 0x101d, 0x101f, 
-	0x1000, 0x1000, 0x1000, 0x1000, 0x1001, 0x1001, 0x1002, 0x1002, 
-	0x1003, 0x1004, 0x1005, 0x1005, 0x1006, 0x1007, 0x1008, 0x1009, 
-	0x100a, 0x100b, 0x100c, 0x100e, 0x100f, 0x1010, 0x1011, 0x1013, 
-	0x1014, 0x1015, 0x1017, 0x1018, 0x101a, 0x101b, 0x101d, 0x101f, 
-	0x1000, 0x1000, 0x1000, 0x1000, 0x1001, 0x1001, 0x1002, 0x1002, 
-	0x1003, 0x1004, 0x1005, 0x1005, 0x1006, 0x1007, 0x1008, 0x1009, 
-	0x100a, 0x100b, 0x100c, 0x100e, 0x100f, 0x1010, 0x1011, 0x1013, 
-	0x1014, 0x1015, 0x1017, 0x1018, 0x101a, 0x101b, 0x101d, 0x101f, 
-	0x1000, 0x1000, 0x1000, 0x1000, 0x1001, 0x1001, 0x1002, 0x1002, 
-	0x1003, 0x1004, 0x1005, 0x1005, 0x1006, 0x1007, 0x1008, 0x1009, 
-	0x100a, 0x100b, 0x100c, 0x100e, 0x100f, 0x1010, 0x1011, 0x1013, 
-	0x1014, 0x1015, 0x1017, 0x1018, 0x101a, 0x101b, 0x101d, 0x101f, 
-	0x1020, 0x1020, 0x1020, 0x1020, 0x1021, 0x1021, 0x1022, 0x1022, 
-	0x1023, 0x1024, 0x1025, 0x1025, 0x1026, 0x1027, 0x1028, 0x1029, 
-	0x102a, 0x102b, 0x102c, 0x102e, 0x102f, 0x1030, 0x1031, 0x1033, 
-	0x1034, 0x1035, 0x1037, 0x1038, 0x103a, 0x103b, 0x103d, 0x103f, 
-	0x1020, 0x1020, 0x1020, 0x1020, 0x1021, 0x1021, 0x1022, 0x1022, 
-	0x1023, 0x1024, 0x1025, 0x1025, 0x1026, 0x1027, 0x1028, 0x1029, 
-	0x102a, 0x102b, 0x102c, 0x102e, 0x102f, 0x1030, 0x1031, 0x1033, 
-	0x1034, 0x1035, 0x1037, 0x1038, 0x103a, 0x103b, 0x103d, 0x103f, 
-	0x1020, 0x1020, 0x1020, 0x1020, 0x1021, 0x1021, 0x1022, 0x1022, 
-	0x1023, 0x1024, 0x1025, 0x1025, 0x1026, 0x1027, 0x1028, 0x1029, 
-	0x102a, 0x102b, 0x102c, 0x102e, 0x102f, 0x1030, 0x1031, 0x1033, 
-	0x1034, 0x1035, 0x1037, 0x1038, 0x103a, 0x103b, 0x103d, 0x103f, 
-	0x1040, 0x1040, 0x1040, 0x1040, 0x1041, 0x1041, 0x1042, 0x1042, 
-	0x1043, 0x1044, 0x1045, 0x1045, 0x1046, 0x1047, 0x1048, 0x1049, 
-	0x104a, 0x104b, 0x104c, 0x104e, 0x104f, 0x1050, 0x1051, 0x1053, 
-	0x1054, 0x1055, 0x1057, 0x1058, 0x105a, 0x105b, 0x105d, 0x105f, 
-	0x1040, 0x1040, 0x1040, 0x1040, 0x1041, 0x1041, 0x1042, 0x1042, 
-	0x1043, 0x1044, 0x1045, 0x1045, 0x1046, 0x1047, 0x1048, 0x1049, 
-	0x104a, 0x104b, 0x104c, 0x104e, 0x104f, 0x1050, 0x1051, 0x1053, 
-	0x1054, 0x1055, 0x1057, 0x1058, 0x105a, 0x105b, 0x105d, 0x105f, 
-	0x1060, 0x1060, 0x1060, 0x1060, 0x1061, 0x1061, 0x1062, 0x1062, 
-	0x1063, 0x1064, 0x1065, 0x1065, 0x1066, 0x1067, 0x1068, 0x1069, 
-	0x106a, 0x106b, 0x106c, 0x106e, 0x106f, 0x1070, 0x1071, 0x1073, 
-	0x1074, 0x1075, 0x1077, 0x1078, 0x107a, 0x107b, 0x107d, 0x107f, 
-	0x1060, 0x1060, 0x1060, 0x1060, 0x1061, 0x1061, 0x1062, 0x1062, 
-	0x1063, 0x1064, 0x1065, 0x1065, 0x1066, 0x1067, 0x1068, 0x1069, 
-	0x106a, 0x106b, 0x106c, 0x106e, 0x106f, 0x1070, 0x1071, 0x1073, 
-	0x1074, 0x1075, 0x1077, 0x1078, 0x107a, 0x107b, 0x107d, 0x107f, 
-	0x1080, 0x1080, 0x1080, 0x1080, 0x1081, 0x1081, 0x1082, 0x1082, 
-	0x1083, 0x1084, 0x1085, 0x1085, 0x1086, 0x1087, 0x1088, 0x1089, 
-	0x108a, 0x108b, 0x108c, 0x108e, 0x108f, 0x1090, 0x1091, 0x1093, 
-	0x1094, 0x1095, 0x1097, 0x1098, 0x109a, 0x109b, 0x109d, 0x109f, 
-	0x10a0, 0x10a0, 0x10a0, 0x10a0, 0x10a1, 0x10a1, 0x10a2, 0x10a2, 
-	0x10a3, 0x10a4, 0x10a5, 0x10a5, 0x10a6, 0x10a7, 0x10a8, 0x10a9, 
-	0x10aa, 0x10ab, 0x10ac, 0x10ae, 0x10af, 0x10b0, 0x10b1, 0x10b3, 
-	0x10b4, 0x10b5, 0x10b7, 0x10b8, 0x10ba, 0x10bb, 0x10bd, 0x10bf, 
-	0x10a0, 0x10a0, 0x10a0, 0x10a0, 0x10a1, 0x10a1, 0x10a2, 0x10a2, 
-	0x10a3, 0x10a4, 0x10a5, 0x10a5, 0x10a6, 0x10a7, 0x10a8, 0x10a9, 
-	0x10aa, 0x10ab, 0x10ac, 0x10ae, 0x10af, 0x10b0, 0x10b1, 0x10b3, 
-	0x10b4, 0x10b5, 0x10b7, 0x10b8, 0x10ba, 0x10bb, 0x10bd, 0x10bf, 
-	0x10c0, 0x10c0, 0x10c0, 0x10c0, 0x10c1, 0x10c1, 0x10c2, 0x10c2, 
-	0x10c3, 0x10c4, 0x10c5, 0x10c5, 0x10c6, 0x10c7, 0x10c8, 0x10c9, 
-	0x10ca, 0x10cb, 0x10cc, 0x10ce, 0x10cf, 0x10d0, 0x10d1, 0x10d3, 
-	0x10d4, 0x10d5, 0x10d7, 0x10d8, 0x10da, 0x10db, 0x10dd, 0x10df, 
-	0x10e0, 0x10e0, 0x10e0, 0x10e0, 0x10e1, 0x10e1, 0x10e2, 0x10e2, 
-	0x10e3, 0x10e4, 0x10e5, 0x10e5, 0x10e6, 0x10e7, 0x10e8, 0x10e9, 
-	0x10ea, 0x10eb, 0x10ec, 0x10ee, 0x10ef, 0x10f0, 0x10f1, 0x10f3, 
-	0x10f4, 0x10f5, 0x10f7, 0x10f8, 0x10fa, 0x10fb, 0x10fd, 0x10ff, 
-	0x10e0, 0x10e0, 0x10e0, 0x10e0, 0x10e1, 0x10e1, 0x10e2, 0x10e2, 
-	0x10e3, 0x10e4, 0x10e5, 0x10e5, 0x10e6, 0x10e7, 0x10e8, 0x10e9, 
-	0x10ea, 0x10eb, 0x10ec, 0x10ee, 0x10ef, 0x10f0, 0x10f1, 0x10f3, 
-	0x10f4, 0x10f5, 0x10f7, 0x10f8, 0x10fa, 0x10fb, 0x10fd, 0x10ff, 
-	0x1100, 0x1100, 0x1100, 0x1100, 0x1101, 0x1101, 0x1102, 0x1102, 
-	0x1103, 0x1104, 0x1105, 0x1105, 0x1106, 0x1107, 0x1108, 0x1109, 
-	0x110a, 0x110b, 0x110c, 0x110e, 0x110f, 0x1110, 0x1111, 0x1113, 
-	0x1114, 0x1115, 0x1117, 0x1118, 0x111a, 0x111b, 0x111d, 0x111f, 
-	0x1120, 0x1120, 0x1120, 0x1120, 0x1121, 0x1121, 0x1122, 0x1122, 
-	0x1123, 0x1124, 0x1125, 0x1125, 0x1126, 0x1127, 0x1128, 0x1129, 
-	0x112a, 0x112b, 0x112c, 0x112e, 0x112f, 0x1130, 0x1131, 0x1133, 
-	0x1134, 0x1135, 0x1137, 0x1138, 0x113a, 0x113b, 0x113d, 0x113f, 
-	0x1140, 0x1140, 0x1140, 0x1140, 0x1141, 0x1141, 0x1142, 0x1142, 
-	0x1143, 0x1144, 0x1145, 0x1145, 0x1146, 0x1147, 0x1148, 0x1149, 
-	0x114a, 0x114b, 0x114c, 0x114e, 0x114f, 0x1150, 0x1151, 0x1153, 
-	0x1154, 0x1155, 0x1157, 0x1158, 0x115a, 0x115b, 0x115d, 0x115f, 
-	0x1140, 0x1140, 0x1140, 0x1140, 0x1141, 0x1141, 0x1142, 0x1142, 
-	0x1143, 0x1144, 0x1145, 0x1145, 0x1146, 0x1147, 0x1148, 0x1149, 
-	0x114a, 0x114b, 0x114c, 0x114e, 0x114f, 0x1150, 0x1151, 0x1153, 
-	0x1154, 0x1155, 0x1157, 0x1158, 0x115a, 0x115b, 0x115d, 0x115f, 
-	0x1160, 0x1160, 0x1160, 0x1160, 0x1161, 0x1161, 0x1162, 0x1162, 
-	0x1163, 0x1164, 0x1165, 0x1165, 0x1166, 0x1167, 0x1168, 0x1169, 
-	0x116a, 0x116b, 0x116c, 0x116e, 0x116f, 0x1170, 0x1171, 0x1173, 
-	0x1174, 0x1175, 0x1177, 0x1178, 0x117a, 0x117b, 0x117d, 0x117f, 
-	0x1180, 0x1180, 0x1180, 0x1180, 0x1181, 0x1181, 0x1182, 0x1182, 
-	0x1183, 0x1184, 0x1185, 0x1185, 0x1186, 0x1187, 0x1188, 0x1189, 
-	0x118a, 0x118b, 0x118c, 0x118e, 0x118f, 0x1190, 0x1191, 0x1193, 
-	0x1194, 0x1195, 0x1197, 0x1198, 0x119a, 0x119b, 0x119d, 0x119f, 
-	0x11a0, 0x11a0, 0x11a0, 0x11a0, 0x11a1, 0x11a1, 0x11a2, 0x11a2, 
-	0x11a3, 0x11a4, 0x11a5, 0x11a5, 0x11a6, 0x11a7, 0x11a8, 0x11a9, 
-	0x11aa, 0x11ab, 0x11ac, 0x11ae, 0x11af, 0x11b0, 0x11b1, 0x11b3, 
-	0x11b4, 0x11b5, 0x11b7, 0x11b8, 0x11ba, 0x11bb, 0x11bd, 0x11bf, 
-	0x11c0, 0x11c0, 0x11c0, 0x11c0, 0x11c1, 0x11c1, 0x11c2, 0x11c2, 
-	0x11c3, 0x11c4, 0x11c5, 0x11c5, 0x11c6, 0x11c7, 0x11c8, 0x11c9, 
-	0x11ca, 0x11cb, 0x11cc, 0x11ce, 0x11cf, 0x11d0, 0x11d1, 0x11d3, 
-	0x11d4, 0x11d5, 0x11d7, 0x11d8, 0x11da, 0x11db, 0x11dd, 0x11df, 
-	0x11e0, 0x11e0, 0x11e0, 0x11e0, 0x11e1, 0x11e1, 0x11e2, 0x11e2, 
-	0x11e3, 0x11e4, 0x11e5, 0x11e5, 0x11e6, 0x11e7, 0x11e8, 0x11e9, 
-	0x11ea, 0x11eb, 0x11ec, 0x11ee, 0x11ef, 0x11f0, 0x11f1, 0x11f3, 
-	0x11f4, 0x11f5, 0x11f7, 0x11f8, 0x11fa, 0x11fb, 0x11fd, 0x11ff, 
-	0x1200, 0x1200, 0x1200, 0x1200, 0x1201, 0x1201, 0x1202, 0x1202, 
-	0x1203, 0x1204, 0x1205, 0x1205, 0x1206, 0x1207, 0x1208, 0x1209, 
-	0x120a, 0x120b, 0x120c, 0x120e, 0x120f, 0x1210, 0x1211, 0x1213, 
-	0x1214, 0x1215, 0x1217, 0x1218, 0x121a, 0x121b, 0x121d, 0x121f, 
-	0x1220, 0x1220, 0x1220, 0x1220, 0x1221, 0x1221, 0x1222, 0x1222, 
-	0x1223, 0x1224, 0x1225, 0x1225, 0x1226, 0x1227, 0x1228, 0x1229, 
-	0x122a, 0x122b, 0x122c, 0x122e, 0x122f, 0x1230, 0x1231, 0x1233, 
-	0x1234, 0x1235, 0x1237, 0x1238, 0x123a, 0x123b, 0x123d, 0x123f, 
-	0x1240, 0x1240, 0x1240, 0x1240, 0x1241, 0x1241, 0x1242, 0x1242, 
-	0x1243, 0x1244, 0x1245, 0x1245, 0x1246, 0x1247, 0x1248, 0x1249, 
-	0x124a, 0x124b, 0x124c, 0x124e, 0x124f, 0x1250, 0x1251, 0x1253, 
-	0x1254, 0x1255, 0x1257, 0x1258, 0x125a, 0x125b, 0x125d, 0x125f, 
-	0x1260, 0x1260, 0x1260, 0x1260, 0x1261, 0x1261, 0x1262, 0x1262, 
-	0x1263, 0x1264, 0x1265, 0x1265, 0x1266, 0x1267, 0x1268, 0x1269, 
-	0x126a, 0x126b, 0x126c, 0x126e, 0x126f, 0x1270, 0x1271, 0x1273, 
-	0x1274, 0x1275, 0x1277, 0x1278, 0x127a, 0x127b, 0x127d, 0x127f, 
-	0x1280, 0x1280, 0x1280, 0x1280, 0x1281, 0x1281, 0x1282, 0x1282, 
-	0x1283, 0x1284, 0x1285, 0x1285, 0x1286, 0x1287, 0x1288, 0x1289, 
-	0x128a, 0x128b, 0x128c, 0x128e, 0x128f, 0x1290, 0x1291, 0x1293, 
-	0x1294, 0x1295, 0x1297, 0x1298, 0x129a, 0x129b, 0x129d, 0x129f, 
-	0x12a0, 0x12a0, 0x12a0, 0x12a0, 0x12a1, 0x12a1, 0x12a2, 0x12a2, 
-	0x12a3, 0x12a4, 0x12a5, 0x12a5, 0x12a6, 0x12a7, 0x12a8, 0x12a9, 
-	0x12aa, 0x12ab, 0x12ac, 0x12ae, 0x12af, 0x12b0, 0x12b1, 0x12b3, 
-	0x12b4, 0x12b5, 0x12b7, 0x12b8, 0x12ba, 0x12bb, 0x12bd, 0x12bf, 
-	0x12c0, 0x12c0, 0x12c0, 0x12c0, 0x12c1, 0x12c1, 0x12c2, 0x12c2, 
-	0x12c3, 0x12c4, 0x12c5, 0x12c5, 0x12c6, 0x12c7, 0x12c8, 0x12c9, 
-	0x12ca, 0x12cb, 0x12cc, 0x12ce, 0x12cf, 0x12d0, 0x12d1, 0x12d3, 
-	0x12d4, 0x12d5, 0x12d7, 0x12d8, 0x12da, 0x12db, 0x12dd, 0x12df, 
-	0x12e0, 0x12e0, 0x12e0, 0x12e0, 0x12e1, 0x12e1, 0x12e2, 0x12e2, 
-	0x12e3, 0x12e4, 0x12e5, 0x12e5, 0x12e6, 0x12e7, 0x12e8, 0x12e9, 
-	0x12ea, 0x12eb, 0x12ec, 0x12ee, 0x12ef, 0x12f0, 0x12f1, 0x12f3, 
-	0x12f4, 0x12f5, 0x12f7, 0x12f8, 0x12fa, 0x12fb, 0x12fd, 0x12ff, 
-	0x1300, 0x1300, 0x1300, 0x1300, 0x1301, 0x1301, 0x1302, 0x1302, 
-	0x1303, 0x1304, 0x1305, 0x1305, 0x1306, 0x1307, 0x1308, 0x1309, 
-	0x130a, 0x130b, 0x130c, 0x130e, 0x130f, 0x1310, 0x1311, 0x1313, 
-	0x1314, 0x1315, 0x1317, 0x1318, 0x131a, 0x131b, 0x131d, 0x131f, 
-	0x1320, 0x1320, 0x1320, 0x1320, 0x1321, 0x1321, 0x1322, 0x1322, 
-	0x1323, 0x1324, 0x1325, 0x1325, 0x1326, 0x1327, 0x1328, 0x1329, 
-	0x132a, 0x132b, 0x132c, 0x132e, 0x132f, 0x1330, 0x1331, 0x1333, 
-	0x1334, 0x1335, 0x1337, 0x1338, 0x133a, 0x133b, 0x133d, 0x133f, 
-	0x1340, 0x1340, 0x1340, 0x1340, 0x1341, 0x1341, 0x1342, 0x1342, 
-	0x1343, 0x1344, 0x1345, 0x1345, 0x1346, 0x1347, 0x1348, 0x1349, 
-	0x134a, 0x134b, 0x134c, 0x134e, 0x134f, 0x1350, 0x1351, 0x1353, 
-	0x1354, 0x1355, 0x1357, 0x1358, 0x135a, 0x135b, 0x135d, 0x135f, 
-	0x1380, 0x1380, 0x1380, 0x1380, 0x1381, 0x1381, 0x1382, 0x1382, 
-	0x1383, 0x1384, 0x1385, 0x1385, 0x1386, 0x1387, 0x1388, 0x1389, 
-	0x138a, 0x138b, 0x138c, 0x138e, 0x138f, 0x1390, 0x1391, 0x1393, 
-	0x1394, 0x1395, 0x1397, 0x1398, 0x139a, 0x139b, 0x139d, 0x139f, 
-	0x13a0, 0x13a0, 0x13a0, 0x13a0, 0x13a1, 0x13a1, 0x13a2, 0x13a2, 
-	0x13a3, 0x13a4, 0x13a5, 0x13a5, 0x13a6, 0x13a7, 0x13a8, 0x13a9, 
-	0x13aa, 0x13ab, 0x13ac, 0x13ae, 0x13af, 0x13b0, 0x13b1, 0x13b3, 
-	0x13b4, 0x13b5, 0x13b7, 0x13b8, 0x13ba, 0x13bb, 0x13bd, 0x13bf, 
-	0x13c0, 0x13c0, 0x13c0, 0x13c0, 0x13c1, 0x13c1, 0x13c2, 0x13c2, 
-	0x13c3, 0x13c4, 0x13c5, 0x13c5, 0x13c6, 0x13c7, 0x13c8, 0x13c9, 
-	0x13ca, 0x13cb, 0x13cc, 0x13ce, 0x13cf, 0x13d0, 0x13d1, 0x13d3, 
-	0x13d4, 0x13d5, 0x13d7, 0x13d8, 0x13da, 0x13db, 0x13dd, 0x13df, 
-	0x13e0, 0x13e0, 0x13e0, 0x13e0, 0x13e1, 0x13e1, 0x13e2, 0x13e2, 
-	0x13e3, 0x13e4, 0x13e5, 0x13e5, 0x13e6, 0x13e7, 0x13e8, 0x13e9, 
-	0x13ea, 0x13eb, 0x13ec, 0x13ee, 0x13ef, 0x13f0, 0x13f1, 0x13f3, 
-	0x13f4, 0x13f5, 0x13f7, 0x13f8, 0x13fa, 0x13fb, 0x13fd, 0x13ff, 
-	0x1400, 0x1400, 0x1400, 0x1400, 0x1401, 0x1401, 0x1402, 0x1402, 
-	0x1403, 0x1404, 0x1405, 0x1405, 0x1406, 0x1407, 0x1408, 0x1409, 
-	0x140a, 0x140b, 0x140c, 0x140e, 0x140f, 0x1410, 0x1411, 0x1413, 
-	0x1414, 0x1415, 0x1417, 0x1418, 0x141a, 0x141b, 0x141d, 0x141f, 
-	0x1440, 0x1440, 0x1440, 0x1440, 0x1441, 0x1441, 0x1442, 0x1442, 
-	0x1443, 0x1444, 0x1445, 0x1445, 0x1446, 0x1447, 0x1448, 0x1449, 
-	0x144a, 0x144b, 0x144c, 0x144e, 0x144f, 0x1450, 0x1451, 0x1453, 
-	0x1454, 0x1455, 0x1457, 0x1458, 0x145a, 0x145b, 0x145d, 0x145f, 
-	0x1460, 0x1460, 0x1460, 0x1460, 0x1461, 0x1461, 0x1462, 0x1462, 
-	0x1463, 0x1464, 0x1465, 0x1465, 0x1466, 0x1467, 0x1468, 0x1469, 
-	0x146a, 0x146b, 0x146c, 0x146e, 0x146f, 0x1470, 0x1471, 0x1473, 
-	0x1474, 0x1475, 0x1477, 0x1478, 0x147a, 0x147b, 0x147d, 0x147f, 
-	0x1480, 0x1480, 0x1480, 0x1480, 0x1481, 0x1481, 0x1482, 0x1482, 
-	0x1483, 0x1484, 0x1485, 0x1485, 0x1486, 0x1487, 0x1488, 0x1489, 
-	0x148a, 0x148b, 0x148c, 0x148e, 0x148f, 0x1490, 0x1491, 0x1493, 
-	0x1494, 0x1495, 0x1497, 0x1498, 0x149a, 0x149b, 0x149d, 0x149f, 
-	0x14c0, 0x14c0, 0x14c0, 0x14c0, 0x14c1, 0x14c1, 0x14c2, 0x14c2, 
-	0x14c3, 0x14c4, 0x14c5, 0x14c5, 0x14c6, 0x14c7, 0x14c8, 0x14c9, 
-	0x14ca, 0x14cb, 0x14cc, 0x14ce, 0x14cf, 0x14d0, 0x14d1, 0x14d3, 
-	0x14d4, 0x14d5, 0x14d7, 0x14d8, 0x14da, 0x14db, 0x14dd, 0x14df, 
-	0x14e0, 0x14e0, 0x14e0, 0x14e0, 0x14e1, 0x14e1, 0x14e2, 0x14e2, 
-	0x14e3, 0x14e4, 0x14e5, 0x14e5, 0x14e6, 0x14e7, 0x14e8, 0x14e9, 
-	0x14ea, 0x14eb, 0x14ec, 0x14ee, 0x14ef, 0x14f0, 0x14f1, 0x14f3, 
-	0x14f4, 0x14f5, 0x14f7, 0x14f8, 0x14fa, 0x14fb, 0x14fd, 0x14ff, 
-	0x1500, 0x1500, 0x1500, 0x1500, 0x1501, 0x1501, 0x1502, 0x1502, 
-	0x1503, 0x1504, 0x1505, 0x1505, 0x1506, 0x1507, 0x1508, 0x1509, 
-	0x150a, 0x150b, 0x150c, 0x150e, 0x150f, 0x1510, 0x1511, 0x1513, 
-	0x1514, 0x1515, 0x1517, 0x1518, 0x151a, 0x151b, 0x151d, 0x151f, 
-	0x1540, 0x1540, 0x1540, 0x1540, 0x1541, 0x1541, 0x1542, 0x1542, 
-	0x1543, 0x1544, 0x1545, 0x1545, 0x1546, 0x1547, 0x1548, 0x1549, 
-	0x154a, 0x154b, 0x154c, 0x154e, 0x154f, 0x1550, 0x1551, 0x1553, 
-	0x1554, 0x1555, 0x1557, 0x1558, 0x155a, 0x155b, 0x155d, 0x155f, 
-	0x1560, 0x1560, 0x1560, 0x1560, 0x1561, 0x1561, 0x1562, 0x1562, 
-	0x1563, 0x1564, 0x1565, 0x1565, 0x1566, 0x1567, 0x1568, 0x1569, 
-	0x156a, 0x156b, 0x156c, 0x156e, 0x156f, 0x1570, 0x1571, 0x1573, 
-	0x1574, 0x1575, 0x1577, 0x1578, 0x157a, 0x157b, 0x157d, 0x157f, 
-	0x1580, 0x1580, 0x1580, 0x1580, 0x1581, 0x1581, 0x1582, 0x1582, 
-	0x1583, 0x1584, 0x1585, 0x1585, 0x1586, 0x1587, 0x1588, 0x1589, 
-	0x158a, 0x158b, 0x158c, 0x158e, 0x158f, 0x1590, 0x1591, 0x1593, 
-	0x1594, 0x1595, 0x1597, 0x1598, 0x159a, 0x159b, 0x159d, 0x159f, 
-	0x15c0, 0x15c0, 0x15c0, 0x15c0, 0x15c1, 0x15c1, 0x15c2, 0x15c2, 
-	0x15c3, 0x15c4, 0x15c5, 0x15c5, 0x15c6, 0x15c7, 0x15c8, 0x15c9, 
-	0x15ca, 0x15cb, 0x15cc, 0x15ce, 0x15cf, 0x15d0, 0x15d1, 0x15d3, 
-	0x15d4, 0x15d5, 0x15d7, 0x15d8, 0x15da, 0x15db, 0x15dd, 0x15df, 
-	0x15e0, 0x15e0, 0x15e0, 0x15e0, 0x15e1, 0x15e1, 0x15e2, 0x15e2, 
-	0x15e3, 0x15e4, 0x15e5, 0x15e5, 0x15e6, 0x15e7, 0x15e8, 0x15e9, 
-	0x15ea, 0x15eb, 0x15ec, 0x15ee, 0x15ef, 0x15f0, 0x15f1, 0x15f3, 
-	0x15f4, 0x15f5, 0x15f7, 0x15f8, 0x15fa, 0x15fb, 0x15fd, 0x15ff, 
-	0x1620, 0x1620, 0x1620, 0x1620, 0x1621, 0x1621, 0x1622, 0x1622, 
-	0x1623, 0x1624, 0x1625, 0x1625, 0x1626, 0x1627, 0x1628, 0x1629, 
-	0x162a, 0x162b, 0x162c, 0x162e, 0x162f, 0x1630, 0x1631, 0x1633, 
-	0x1634, 0x1635, 0x1637, 0x1638, 0x163a, 0x163b, 0x163d, 0x163f, 
-	0x1640, 0x1640, 0x1640, 0x1640, 0x1641, 0x1641, 0x1642, 0x1642, 
-	0x1643, 0x1644, 0x1645, 0x1645, 0x1646, 0x1647, 0x1648, 0x1649, 
-	0x164a, 0x164b, 0x164c, 0x164e, 0x164f, 0x1650, 0x1651, 0x1653, 
-	0x1654, 0x1655, 0x1657, 0x1658, 0x165a, 0x165b, 0x165d, 0x165f, 
-	0x1680, 0x1680, 0x1680, 0x1680, 0x1681, 0x1681, 0x1682, 0x1682, 
-	0x1683, 0x1684, 0x1685, 0x1685, 0x1686, 0x1687, 0x1688, 0x1689, 
-	0x168a, 0x168b, 0x168c, 0x168e, 0x168f, 0x1690, 0x1691, 0x1693, 
-	0x1694, 0x1695, 0x1697, 0x1698, 0x169a, 0x169b, 0x169d, 0x169f, 
-	0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16a1, 0x16a1, 0x16a2, 0x16a2, 
-	0x16a3, 0x16a4, 0x16a5, 0x16a5, 0x16a6, 0x16a7, 0x16a8, 0x16a9, 
-	0x16aa, 0x16ab, 0x16ac, 0x16ae, 0x16af, 0x16b0, 0x16b1, 0x16b3, 
-	0x16b4, 0x16b5, 0x16b7, 0x16b8, 0x16ba, 0x16bb, 0x16bd, 0x16bf, 
-	0x16e0, 0x16e0, 0x16e0, 0x16e0, 0x16e1, 0x16e1, 0x16e2, 0x16e2, 
-	0x16e3, 0x16e4, 0x16e5, 0x16e5, 0x16e6, 0x16e7, 0x16e8, 0x16e9, 
-	0x16ea, 0x16eb, 0x16ec, 0x16ee, 0x16ef, 0x16f0, 0x16f1, 0x16f3, 
-	0x16f4, 0x16f5, 0x16f7, 0x16f8, 0x16fa, 0x16fb, 0x16fd, 0x16ff, 
-	0x1700, 0x1700, 0x1700, 0x1700, 0x1701, 0x1701, 0x1702, 0x1702, 
-	0x1703, 0x1704, 0x1705, 0x1705, 0x1706, 0x1707, 0x1708, 0x1709, 
-	0x170a, 0x170b, 0x170c, 0x170e, 0x170f, 0x1710, 0x1711, 0x1713, 
-	0x1714, 0x1715, 0x1717, 0x1718, 0x171a, 0x171b, 0x171d, 0x171f, 
-	0x1740, 0x1740, 0x1740, 0x1740, 0x1741, 0x1741, 0x1742, 0x1742, 
-	0x1743, 0x1744, 0x1745, 0x1745, 0x1746, 0x1747, 0x1748, 0x1749, 
-	0x174a, 0x174b, 0x174c, 0x174e, 0x174f, 0x1750, 0x1751, 0x1753, 
-	0x1754, 0x1755, 0x1757, 0x1758, 0x175a, 0x175b, 0x175d, 0x175f, 
-	0x1760, 0x1760, 0x1760, 0x1760, 0x1761, 0x1761, 0x1762, 0x1762, 
-	0x1763, 0x1764, 0x1765, 0x1765, 0x1766, 0x1767, 0x1768, 0x1769, 
-	0x176a, 0x176b, 0x176c, 0x176e, 0x176f, 0x1770, 0x1771, 0x1773, 
-	0x1774, 0x1775, 0x1777, 0x1778, 0x177a, 0x177b, 0x177d, 0x177f, 
-	0x17a0, 0x17a0, 0x17a0, 0x17a0, 0x17a1, 0x17a1, 0x17a2, 0x17a2, 
-	0x17a3, 0x17a4, 0x17a5, 0x17a5, 0x17a6, 0x17a7, 0x17a8, 0x17a9, 
-	0x17aa, 0x17ab, 0x17ac, 0x17ae, 0x17af, 0x17b0, 0x17b1, 0x17b3, 
-	0x17b4, 0x17b5, 0x17b7, 0x17b8, 0x17ba, 0x17bb, 0x17bd, 0x17bf, 
-	0x17e0, 0x17e0, 0x17e0, 0x17e0, 0x17e1, 0x17e1, 0x17e2, 0x17e2, 
-	0x17e3, 0x17e4, 0x17e5, 0x17e5, 0x17e6, 0x17e7, 0x17e8, 0x17e9, 
-	0x17ea, 0x17eb, 0x17ec, 0x17ee, 0x17ef, 0x17f0, 0x17f1, 0x17f3, 
-	0x17f4, 0x17f5, 0x17f7, 0x17f8, 0x17fa, 0x17fb, 0x17fd, 0x17ff, 
-	0x1800, 0x1800, 0x1800, 0x1800, 0x1801, 0x1801, 0x1802, 0x1802, 
-	0x1803, 0x1804, 0x1805, 0x1805, 0x1806, 0x1807, 0x1808, 0x1809, 
-	0x180a, 0x180b, 0x180c, 0x180e, 0x180f, 0x1810, 0x1811, 0x1813, 
-	0x1814, 0x1815, 0x1817, 0x1818, 0x181a, 0x181b, 0x181d, 0x181f, 
-	0x1800, 0x1800, 0x1800, 0x1800, 0x1801, 0x1801, 0x1802, 0x1802, 
-	0x1803, 0x1804, 0x1805, 0x1805, 0x1806, 0x1807, 0x1808, 0x1809, 
-	0x180a, 0x180b, 0x180c, 0x180e, 0x180f, 0x1810, 0x1811, 0x1813, 
-	0x1814, 0x1815, 0x1817, 0x1818, 0x181a, 0x181b, 0x181d, 0x181f, 
-	0x1800, 0x1800, 0x1800, 0x1800, 0x1801, 0x1801, 0x1802, 0x1802, 
-	0x1803, 0x1804, 0x1805, 0x1805, 0x1806, 0x1807, 0x1808, 0x1809, 
-	0x180a, 0x180b, 0x180c, 0x180e, 0x180f, 0x1810, 0x1811, 0x1813, 
-	0x1814, 0x1815, 0x1817, 0x1818, 0x181a, 0x181b, 0x181d, 0x181f, 
-	0x1800, 0x1800, 0x1800, 0x1800, 0x1801, 0x1801, 0x1802, 0x1802, 
-	0x1803, 0x1804, 0x1805, 0x1805, 0x1806, 0x1807, 0x1808, 0x1809, 
-	0x180a, 0x180b, 0x180c, 0x180e, 0x180f, 0x1810, 0x1811, 0x1813, 
-	0x1814, 0x1815, 0x1817, 0x1818, 0x181a, 0x181b, 0x181d, 0x181f, 
-	0x1800, 0x1800, 0x1800, 0x1800, 0x1801, 0x1801, 0x1802, 0x1802, 
-	0x1803, 0x1804, 0x1805, 0x1805, 0x1806, 0x1807, 0x1808, 0x1809, 
-	0x180a, 0x180b, 0x180c, 0x180e, 0x180f, 0x1810, 0x1811, 0x1813, 
-	0x1814, 0x1815, 0x1817, 0x1818, 0x181a, 0x181b, 0x181d, 0x181f, 
-	0x1820, 0x1820, 0x1820, 0x1820, 0x1821, 0x1821, 0x1822, 0x1822, 
-	0x1823, 0x1824, 0x1825, 0x1825, 0x1826, 0x1827, 0x1828, 0x1829, 
-	0x182a, 0x182b, 0x182c, 0x182e, 0x182f, 0x1830, 0x1831, 0x1833, 
-	0x1834, 0x1835, 0x1837, 0x1838, 0x183a, 0x183b, 0x183d, 0x183f, 
-	0x1820, 0x1820, 0x1820, 0x1820, 0x1821, 0x1821, 0x1822, 0x1822, 
-	0x1823, 0x1824, 0x1825, 0x1825, 0x1826, 0x1827, 0x1828, 0x1829, 
-	0x182a, 0x182b, 0x182c, 0x182e, 0x182f, 0x1830, 0x1831, 0x1833, 
-	0x1834, 0x1835, 0x1837, 0x1838, 0x183a, 0x183b, 0x183d, 0x183f, 
-	0x1820, 0x1820, 0x1820, 0x1820, 0x1821, 0x1821, 0x1822, 0x1822, 
-	0x1823, 0x1824, 0x1825, 0x1825, 0x1826, 0x1827, 0x1828, 0x1829, 
-	0x182a, 0x182b, 0x182c, 0x182e, 0x182f, 0x1830, 0x1831, 0x1833, 
-	0x1834, 0x1835, 0x1837, 0x1838, 0x183a, 0x183b, 0x183d, 0x183f, 
-	0x1840, 0x1840, 0x1840, 0x1840, 0x1841, 0x1841, 0x1842, 0x1842, 
-	0x1843, 0x1844, 0x1845, 0x1845, 0x1846, 0x1847, 0x1848, 0x1849, 
-	0x184a, 0x184b, 0x184c, 0x184e, 0x184f, 0x1850, 0x1851, 0x1853, 
-	0x1854, 0x1855, 0x1857, 0x1858, 0x185a, 0x185b, 0x185d, 0x185f, 
-	0x1840, 0x1840, 0x1840, 0x1840, 0x1841, 0x1841, 0x1842, 0x1842, 
-	0x1843, 0x1844, 0x1845, 0x1845, 0x1846, 0x1847, 0x1848, 0x1849, 
-	0x184a, 0x184b, 0x184c, 0x184e, 0x184f, 0x1850, 0x1851, 0x1853, 
-	0x1854, 0x1855, 0x1857, 0x1858, 0x185a, 0x185b, 0x185d, 0x185f, 
-	0x1860, 0x1860, 0x1860, 0x1860, 0x1861, 0x1861, 0x1862, 0x1862, 
-	0x1863, 0x1864, 0x1865, 0x1865, 0x1866, 0x1867, 0x1868, 0x1869, 
-	0x186a, 0x186b, 0x186c, 0x186e, 0x186f, 0x1870, 0x1871, 0x1873, 
-	0x1874, 0x1875, 0x1877, 0x1878, 0x187a, 0x187b, 0x187d, 0x187f, 
-	0x1860, 0x1860, 0x1860, 0x1860, 0x1861, 0x1861, 0x1862, 0x1862, 
-	0x1863, 0x1864, 0x1865, 0x1865, 0x1866, 0x1867, 0x1868, 0x1869, 
-	0x186a, 0x186b, 0x186c, 0x186e, 0x186f, 0x1870, 0x1871, 0x1873, 
-	0x1874, 0x1875, 0x1877, 0x1878, 0x187a, 0x187b, 0x187d, 0x187f, 
-	0x1880, 0x1880, 0x1880, 0x1880, 0x1881, 0x1881, 0x1882, 0x1882, 
-	0x1883, 0x1884, 0x1885, 0x1885, 0x1886, 0x1887, 0x1888, 0x1889, 
-	0x188a, 0x188b, 0x188c, 0x188e, 0x188f, 0x1890, 0x1891, 0x1893, 
-	0x1894, 0x1895, 0x1897, 0x1898, 0x189a, 0x189b, 0x189d, 0x189f, 
-	0x18a0, 0x18a0, 0x18a0, 0x18a0, 0x18a1, 0x18a1, 0x18a2, 0x18a2, 
-	0x18a3, 0x18a4, 0x18a5, 0x18a5, 0x18a6, 0x18a7, 0x18a8, 0x18a9, 
-	0x18aa, 0x18ab, 0x18ac, 0x18ae, 0x18af, 0x18b0, 0x18b1, 0x18b3, 
-	0x18b4, 0x18b5, 0x18b7, 0x18b8, 0x18ba, 0x18bb, 0x18bd, 0x18bf, 
-	0x18a0, 0x18a0, 0x18a0, 0x18a0, 0x18a1, 0x18a1, 0x18a2, 0x18a2, 
-	0x18a3, 0x18a4, 0x18a5, 0x18a5, 0x18a6, 0x18a7, 0x18a8, 0x18a9, 
-	0x18aa, 0x18ab, 0x18ac, 0x18ae, 0x18af, 0x18b0, 0x18b1, 0x18b3, 
-	0x18b4, 0x18b5, 0x18b7, 0x18b8, 0x18ba, 0x18bb, 0x18bd, 0x18bf, 
-	0x18c0, 0x18c0, 0x18c0, 0x18c0, 0x18c1, 0x18c1, 0x18c2, 0x18c2, 
-	0x18c3, 0x18c4, 0x18c5, 0x18c5, 0x18c6, 0x18c7, 0x18c8, 0x18c9, 
-	0x18ca, 0x18cb, 0x18cc, 0x18ce, 0x18cf, 0x18d0, 0x18d1, 0x18d3, 
-	0x18d4, 0x18d5, 0x18d7, 0x18d8, 0x18da, 0x18db, 0x18dd, 0x18df, 
-	0x18e0, 0x18e0, 0x18e0, 0x18e0, 0x18e1, 0x18e1, 0x18e2, 0x18e2, 
-	0x18e3, 0x18e4, 0x18e5, 0x18e5, 0x18e6, 0x18e7, 0x18e8, 0x18e9, 
-	0x18ea, 0x18eb, 0x18ec, 0x18ee, 0x18ef, 0x18f0, 0x18f1, 0x18f3, 
-	0x18f4, 0x18f5, 0x18f7, 0x18f8, 0x18fa, 0x18fb, 0x18fd, 0x18ff, 
-	0x18e0, 0x18e0, 0x18e0, 0x18e0, 0x18e1, 0x18e1, 0x18e2, 0x18e2, 
-	0x18e3, 0x18e4, 0x18e5, 0x18e5, 0x18e6, 0x18e7, 0x18e8, 0x18e9, 
-	0x18ea, 0x18eb, 0x18ec, 0x18ee, 0x18ef, 0x18f0, 0x18f1, 0x18f3, 
-	0x18f4, 0x18f5, 0x18f7, 0x18f8, 0x18fa, 0x18fb, 0x18fd, 0x18ff, 
-	0x1900, 0x1900, 0x1900, 0x1900, 0x1901, 0x1901, 0x1902, 0x1902, 
-	0x1903, 0x1904, 0x1905, 0x1905, 0x1906, 0x1907, 0x1908, 0x1909, 
-	0x190a, 0x190b, 0x190c, 0x190e, 0x190f, 0x1910, 0x1911, 0x1913, 
-	0x1914, 0x1915, 0x1917, 0x1918, 0x191a, 0x191b, 0x191d, 0x191f, 
-	0x1920, 0x1920, 0x1920, 0x1920, 0x1921, 0x1921, 0x1922, 0x1922, 
-	0x1923, 0x1924, 0x1925, 0x1925, 0x1926, 0x1927, 0x1928, 0x1929, 
-	0x192a, 0x192b, 0x192c, 0x192e, 0x192f, 0x1930, 0x1931, 0x1933, 
-	0x1934, 0x1935, 0x1937, 0x1938, 0x193a, 0x193b, 0x193d, 0x193f, 
-	0x1940, 0x1940, 0x1940, 0x1940, 0x1941, 0x1941, 0x1942, 0x1942, 
-	0x1943, 0x1944, 0x1945, 0x1945, 0x1946, 0x1947, 0x1948, 0x1949, 
-	0x194a, 0x194b, 0x194c, 0x194e, 0x194f, 0x1950, 0x1951, 0x1953, 
-	0x1954, 0x1955, 0x1957, 0x1958, 0x195a, 0x195b, 0x195d, 0x195f, 
-	0x1940, 0x1940, 0x1940, 0x1940, 0x1941, 0x1941, 0x1942, 0x1942, 
-	0x1943, 0x1944, 0x1945, 0x1945, 0x1946, 0x1947, 0x1948, 0x1949, 
-	0x194a, 0x194b, 0x194c, 0x194e, 0x194f, 0x1950, 0x1951, 0x1953, 
-	0x1954, 0x1955, 0x1957, 0x1958, 0x195a, 0x195b, 0x195d, 0x195f, 
-	0x1960, 0x1960, 0x1960, 0x1960, 0x1961, 0x1961, 0x1962, 0x1962, 
-	0x1963, 0x1964, 0x1965, 0x1965, 0x1966, 0x1967, 0x1968, 0x1969, 
-	0x196a, 0x196b, 0x196c, 0x196e, 0x196f, 0x1970, 0x1971, 0x1973, 
-	0x1974, 0x1975, 0x1977, 0x1978, 0x197a, 0x197b, 0x197d, 0x197f, 
-	0x1980, 0x1980, 0x1980, 0x1980, 0x1981, 0x1981, 0x1982, 0x1982, 
-	0x1983, 0x1984, 0x1985, 0x1985, 0x1986, 0x1987, 0x1988, 0x1989, 
-	0x198a, 0x198b, 0x198c, 0x198e, 0x198f, 0x1990, 0x1991, 0x1993, 
-	0x1994, 0x1995, 0x1997, 0x1998, 0x199a, 0x199b, 0x199d, 0x199f, 
-	0x19a0, 0x19a0, 0x19a0, 0x19a0, 0x19a1, 0x19a1, 0x19a2, 0x19a2, 
-	0x19a3, 0x19a4, 0x19a5, 0x19a5, 0x19a6, 0x19a7, 0x19a8, 0x19a9, 
-	0x19aa, 0x19ab, 0x19ac, 0x19ae, 0x19af, 0x19b0, 0x19b1, 0x19b3, 
-	0x19b4, 0x19b5, 0x19b7, 0x19b8, 0x19ba, 0x19bb, 0x19bd, 0x19bf, 
-	0x19c0, 0x19c0, 0x19c0, 0x19c0, 0x19c1, 0x19c1, 0x19c2, 0x19c2, 
-	0x19c3, 0x19c4, 0x19c5, 0x19c5, 0x19c6, 0x19c7, 0x19c8, 0x19c9, 
-	0x19ca, 0x19cb, 0x19cc, 0x19ce, 0x19cf, 0x19d0, 0x19d1, 0x19d3, 
-	0x19d4, 0x19d5, 0x19d7, 0x19d8, 0x19da, 0x19db, 0x19dd, 0x19df, 
-	0x19e0, 0x19e0, 0x19e0, 0x19e0, 0x19e1, 0x19e1, 0x19e2, 0x19e2, 
-	0x19e3, 0x19e4, 0x19e5, 0x19e5, 0x19e6, 0x19e7, 0x19e8, 0x19e9, 
-	0x19ea, 0x19eb, 0x19ec, 0x19ee, 0x19ef, 0x19f0, 0x19f1, 0x19f3, 
-	0x19f4, 0x19f5, 0x19f7, 0x19f8, 0x19fa, 0x19fb, 0x19fd, 0x19ff, 
-	0x1a00, 0x1a00, 0x1a00, 0x1a00, 0x1a01, 0x1a01, 0x1a02, 0x1a02, 
-	0x1a03, 0x1a04, 0x1a05, 0x1a05, 0x1a06, 0x1a07, 0x1a08, 0x1a09, 
-	0x1a0a, 0x1a0b, 0x1a0c, 0x1a0e, 0x1a0f, 0x1a10, 0x1a11, 0x1a13, 
-	0x1a14, 0x1a15, 0x1a17, 0x1a18, 0x1a1a, 0x1a1b, 0x1a1d, 0x1a1f, 
-	0x1a20, 0x1a20, 0x1a20, 0x1a20, 0x1a21, 0x1a21, 0x1a22, 0x1a22, 
-	0x1a23, 0x1a24, 0x1a25, 0x1a25, 0x1a26, 0x1a27, 0x1a28, 0x1a29, 
-	0x1a2a, 0x1a2b, 0x1a2c, 0x1a2e, 0x1a2f, 0x1a30, 0x1a31, 0x1a33, 
-	0x1a34, 0x1a35, 0x1a37, 0x1a38, 0x1a3a, 0x1a3b, 0x1a3d, 0x1a3f, 
-	0x1a40, 0x1a40, 0x1a40, 0x1a40, 0x1a41, 0x1a41, 0x1a42, 0x1a42, 
-	0x1a43, 0x1a44, 0x1a45, 0x1a45, 0x1a46, 0x1a47, 0x1a48, 0x1a49, 
-	0x1a4a, 0x1a4b, 0x1a4c, 0x1a4e, 0x1a4f, 0x1a50, 0x1a51, 0x1a53, 
-	0x1a54, 0x1a55, 0x1a57, 0x1a58, 0x1a5a, 0x1a5b, 0x1a5d, 0x1a5f, 
-	0x1a60, 0x1a60, 0x1a60, 0x1a60, 0x1a61, 0x1a61, 0x1a62, 0x1a62, 
-	0x1a63, 0x1a64, 0x1a65, 0x1a65, 0x1a66, 0x1a67, 0x1a68, 0x1a69, 
-	0x1a6a, 0x1a6b, 0x1a6c, 0x1a6e, 0x1a6f, 0x1a70, 0x1a71, 0x1a73, 
-	0x1a74, 0x1a75, 0x1a77, 0x1a78, 0x1a7a, 0x1a7b, 0x1a7d, 0x1a7f, 
-	0x1a80, 0x1a80, 0x1a80, 0x1a80, 0x1a81, 0x1a81, 0x1a82, 0x1a82, 
-	0x1a83, 0x1a84, 0x1a85, 0x1a85, 0x1a86, 0x1a87, 0x1a88, 0x1a89, 
-	0x1a8a, 0x1a8b, 0x1a8c, 0x1a8e, 0x1a8f, 0x1a90, 0x1a91, 0x1a93, 
-	0x1a94, 0x1a95, 0x1a97, 0x1a98, 0x1a9a, 0x1a9b, 0x1a9d, 0x1a9f, 
-	0x1aa0, 0x1aa0, 0x1aa0, 0x1aa0, 0x1aa1, 0x1aa1, 0x1aa2, 0x1aa2, 
-	0x1aa3, 0x1aa4, 0x1aa5, 0x1aa5, 0x1aa6, 0x1aa7, 0x1aa8, 0x1aa9, 
-	0x1aaa, 0x1aab, 0x1aac, 0x1aae, 0x1aaf, 0x1ab0, 0x1ab1, 0x1ab3, 
-	0x1ab4, 0x1ab5, 0x1ab7, 0x1ab8, 0x1aba, 0x1abb, 0x1abd, 0x1abf, 
-	0x1ac0, 0x1ac0, 0x1ac0, 0x1ac0, 0x1ac1, 0x1ac1, 0x1ac2, 0x1ac2, 
-	0x1ac3, 0x1ac4, 0x1ac5, 0x1ac5, 0x1ac6, 0x1ac7, 0x1ac8, 0x1ac9, 
-	0x1aca, 0x1acb, 0x1acc, 0x1ace, 0x1acf, 0x1ad0, 0x1ad1, 0x1ad3, 
-	0x1ad4, 0x1ad5, 0x1ad7, 0x1ad8, 0x1ada, 0x1adb, 0x1add, 0x1adf, 
-	0x1ae0, 0x1ae0, 0x1ae0, 0x1ae0, 0x1ae1, 0x1ae1, 0x1ae2, 0x1ae2, 
-	0x1ae3, 0x1ae4, 0x1ae5, 0x1ae5, 0x1ae6, 0x1ae7, 0x1ae8, 0x1ae9, 
-	0x1aea, 0x1aeb, 0x1aec, 0x1aee, 0x1aef, 0x1af0, 0x1af1, 0x1af3, 
-	0x1af4, 0x1af5, 0x1af7, 0x1af8, 0x1afa, 0x1afb, 0x1afd, 0x1aff, 
-	0x1b00, 0x1b00, 0x1b00, 0x1b00, 0x1b01, 0x1b01, 0x1b02, 0x1b02, 
-	0x1b03, 0x1b04, 0x1b05, 0x1b05, 0x1b06, 0x1b07, 0x1b08, 0x1b09, 
-	0x1b0a, 0x1b0b, 0x1b0c, 0x1b0e, 0x1b0f, 0x1b10, 0x1b11, 0x1b13, 
-	0x1b14, 0x1b15, 0x1b17, 0x1b18, 0x1b1a, 0x1b1b, 0x1b1d, 0x1b1f, 
-	0x1b20, 0x1b20, 0x1b20, 0x1b20, 0x1b21, 0x1b21, 0x1b22, 0x1b22, 
-	0x1b23, 0x1b24, 0x1b25, 0x1b25, 0x1b26, 0x1b27, 0x1b28, 0x1b29, 
-	0x1b2a, 0x1b2b, 0x1b2c, 0x1b2e, 0x1b2f, 0x1b30, 0x1b31, 0x1b33, 
-	0x1b34, 0x1b35, 0x1b37, 0x1b38, 0x1b3a, 0x1b3b, 0x1b3d, 0x1b3f, 
-	0x1b40, 0x1b40, 0x1b40, 0x1b40, 0x1b41, 0x1b41, 0x1b42, 0x1b42, 
-	0x1b43, 0x1b44, 0x1b45, 0x1b45, 0x1b46, 0x1b47, 0x1b48, 0x1b49, 
-	0x1b4a, 0x1b4b, 0x1b4c, 0x1b4e, 0x1b4f, 0x1b50, 0x1b51, 0x1b53, 
-	0x1b54, 0x1b55, 0x1b57, 0x1b58, 0x1b5a, 0x1b5b, 0x1b5d, 0x1b5f, 
-	0x1b80, 0x1b80, 0x1b80, 0x1b80, 0x1b81, 0x1b81, 0x1b82, 0x1b82, 
-	0x1b83, 0x1b84, 0x1b85, 0x1b85, 0x1b86, 0x1b87, 0x1b88, 0x1b89, 
-	0x1b8a, 0x1b8b, 0x1b8c, 0x1b8e, 0x1b8f, 0x1b90, 0x1b91, 0x1b93, 
-	0x1b94, 0x1b95, 0x1b97, 0x1b98, 0x1b9a, 0x1b9b, 0x1b9d, 0x1b9f, 
-	0x1ba0, 0x1ba0, 0x1ba0, 0x1ba0, 0x1ba1, 0x1ba1, 0x1ba2, 0x1ba2, 
-	0x1ba3, 0x1ba4, 0x1ba5, 0x1ba5, 0x1ba6, 0x1ba7, 0x1ba8, 0x1ba9, 
-	0x1baa, 0x1bab, 0x1bac, 0x1bae, 0x1baf, 0x1bb0, 0x1bb1, 0x1bb3, 
-	0x1bb4, 0x1bb5, 0x1bb7, 0x1bb8, 0x1bba, 0x1bbb, 0x1bbd, 0x1bbf, 
-	0x1bc0, 0x1bc0, 0x1bc0, 0x1bc0, 0x1bc1, 0x1bc1, 0x1bc2, 0x1bc2, 
-	0x1bc3, 0x1bc4, 0x1bc5, 0x1bc5, 0x1bc6, 0x1bc7, 0x1bc8, 0x1bc9, 
-	0x1bca, 0x1bcb, 0x1bcc, 0x1bce, 0x1bcf, 0x1bd0, 0x1bd1, 0x1bd3, 
-	0x1bd4, 0x1bd5, 0x1bd7, 0x1bd8, 0x1bda, 0x1bdb, 0x1bdd, 0x1bdf, 
-	0x1be0, 0x1be0, 0x1be0, 0x1be0, 0x1be1, 0x1be1, 0x1be2, 0x1be2, 
-	0x1be3, 0x1be4, 0x1be5, 0x1be5, 0x1be6, 0x1be7, 0x1be8, 0x1be9, 
-	0x1bea, 0x1beb, 0x1bec, 0x1bee, 0x1bef, 0x1bf0, 0x1bf1, 0x1bf3, 
-	0x1bf4, 0x1bf5, 0x1bf7, 0x1bf8, 0x1bfa, 0x1bfb, 0x1bfd, 0x1bff, 
-	0x1c00, 0x1c00, 0x1c00, 0x1c00, 0x1c01, 0x1c01, 0x1c02, 0x1c02, 
-	0x1c03, 0x1c04, 0x1c05, 0x1c05, 0x1c06, 0x1c07, 0x1c08, 0x1c09, 
-	0x1c0a, 0x1c0b, 0x1c0c, 0x1c0e, 0x1c0f, 0x1c10, 0x1c11, 0x1c13, 
-	0x1c14, 0x1c15, 0x1c17, 0x1c18, 0x1c1a, 0x1c1b, 0x1c1d, 0x1c1f, 
-	0x1c40, 0x1c40, 0x1c40, 0x1c40, 0x1c41, 0x1c41, 0x1c42, 0x1c42, 
-	0x1c43, 0x1c44, 0x1c45, 0x1c45, 0x1c46, 0x1c47, 0x1c48, 0x1c49, 
-	0x1c4a, 0x1c4b, 0x1c4c, 0x1c4e, 0x1c4f, 0x1c50, 0x1c51, 0x1c53, 
-	0x1c54, 0x1c55, 0x1c57, 0x1c58, 0x1c5a, 0x1c5b, 0x1c5d, 0x1c5f, 
-	0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c61, 0x1c61, 0x1c62, 0x1c62, 
-	0x1c63, 0x1c64, 0x1c65, 0x1c65, 0x1c66, 0x1c67, 0x1c68, 0x1c69, 
-	0x1c6a, 0x1c6b, 0x1c6c, 0x1c6e, 0x1c6f, 0x1c70, 0x1c71, 0x1c73, 
-	0x1c74, 0x1c75, 0x1c77, 0x1c78, 0x1c7a, 0x1c7b, 0x1c7d, 0x1c7f, 
-	0x1c80, 0x1c80, 0x1c80, 0x1c80, 0x1c81, 0x1c81, 0x1c82, 0x1c82, 
-	0x1c83, 0x1c84, 0x1c85, 0x1c85, 0x1c86, 0x1c87, 0x1c88, 0x1c89, 
-	0x1c8a, 0x1c8b, 0x1c8c, 0x1c8e, 0x1c8f, 0x1c90, 0x1c91, 0x1c93, 
-	0x1c94, 0x1c95, 0x1c97, 0x1c98, 0x1c9a, 0x1c9b, 0x1c9d, 0x1c9f, 
-	0x1cc0, 0x1cc0, 0x1cc0, 0x1cc0, 0x1cc1, 0x1cc1, 0x1cc2, 0x1cc2, 
-	0x1cc3, 0x1cc4, 0x1cc5, 0x1cc5, 0x1cc6, 0x1cc7, 0x1cc8, 0x1cc9, 
-	0x1cca, 0x1ccb, 0x1ccc, 0x1cce, 0x1ccf, 0x1cd0, 0x1cd1, 0x1cd3, 
-	0x1cd4, 0x1cd5, 0x1cd7, 0x1cd8, 0x1cda, 0x1cdb, 0x1cdd, 0x1cdf, 
-	0x1ce0, 0x1ce0, 0x1ce0, 0x1ce0, 0x1ce1, 0x1ce1, 0x1ce2, 0x1ce2, 
-	0x1ce3, 0x1ce4, 0x1ce5, 0x1ce5, 0x1ce6, 0x1ce7, 0x1ce8, 0x1ce9, 
-	0x1cea, 0x1ceb, 0x1cec, 0x1cee, 0x1cef, 0x1cf0, 0x1cf1, 0x1cf3, 
-	0x1cf4, 0x1cf5, 0x1cf7, 0x1cf8, 0x1cfa, 0x1cfb, 0x1cfd, 0x1cff, 
-	0x1d00, 0x1d00, 0x1d00, 0x1d00, 0x1d01, 0x1d01, 0x1d02, 0x1d02, 
-	0x1d03, 0x1d04, 0x1d05, 0x1d05, 0x1d06, 0x1d07, 0x1d08, 0x1d09, 
-	0x1d0a, 0x1d0b, 0x1d0c, 0x1d0e, 0x1d0f, 0x1d10, 0x1d11, 0x1d13, 
-	0x1d14, 0x1d15, 0x1d17, 0x1d18, 0x1d1a, 0x1d1b, 0x1d1d, 0x1d1f, 
-	0x1d40, 0x1d40, 0x1d40, 0x1d40, 0x1d41, 0x1d41, 0x1d42, 0x1d42, 
-	0x1d43, 0x1d44, 0x1d45, 0x1d45, 0x1d46, 0x1d47, 0x1d48, 0x1d49, 
-	0x1d4a, 0x1d4b, 0x1d4c, 0x1d4e, 0x1d4f, 0x1d50, 0x1d51, 0x1d53, 
-	0x1d54, 0x1d55, 0x1d57, 0x1d58, 0x1d5a, 0x1d5b, 0x1d5d, 0x1d5f, 
-	0x1d60, 0x1d60, 0x1d60, 0x1d60, 0x1d61, 0x1d61, 0x1d62, 0x1d62, 
-	0x1d63, 0x1d64, 0x1d65, 0x1d65, 0x1d66, 0x1d67, 0x1d68, 0x1d69, 
-	0x1d6a, 0x1d6b, 0x1d6c, 0x1d6e, 0x1d6f, 0x1d70, 0x1d71, 0x1d73, 
-	0x1d74, 0x1d75, 0x1d77, 0x1d78, 0x1d7a, 0x1d7b, 0x1d7d, 0x1d7f, 
-	0x1d80, 0x1d80, 0x1d80, 0x1d80, 0x1d81, 0x1d81, 0x1d82, 0x1d82, 
-	0x1d83, 0x1d84, 0x1d85, 0x1d85, 0x1d86, 0x1d87, 0x1d88, 0x1d89, 
-	0x1d8a, 0x1d8b, 0x1d8c, 0x1d8e, 0x1d8f, 0x1d90, 0x1d91, 0x1d93, 
-	0x1d94, 0x1d95, 0x1d97, 0x1d98, 0x1d9a, 0x1d9b, 0x1d9d, 0x1d9f, 
-	0x1dc0, 0x1dc0, 0x1dc0, 0x1dc0, 0x1dc1, 0x1dc1, 0x1dc2, 0x1dc2, 
-	0x1dc3, 0x1dc4, 0x1dc5, 0x1dc5, 0x1dc6, 0x1dc7, 0x1dc8, 0x1dc9, 
-	0x1dca, 0x1dcb, 0x1dcc, 0x1dce, 0x1dcf, 0x1dd0, 0x1dd1, 0x1dd3, 
-	0x1dd4, 0x1dd5, 0x1dd7, 0x1dd8, 0x1dda, 0x1ddb, 0x1ddd, 0x1ddf, 
-	0x1de0, 0x1de0, 0x1de0, 0x1de0, 0x1de1, 0x1de1, 0x1de2, 0x1de2, 
-	0x1de3, 0x1de4, 0x1de5, 0x1de5, 0x1de6, 0x1de7, 0x1de8, 0x1de9, 
-	0x1dea, 0x1deb, 0x1dec, 0x1dee, 0x1def, 0x1df0, 0x1df1, 0x1df3, 
-	0x1df4, 0x1df5, 0x1df7, 0x1df8, 0x1dfa, 0x1dfb, 0x1dfd, 0x1dff, 
-	0x1e20, 0x1e20, 0x1e20, 0x1e20, 0x1e21, 0x1e21, 0x1e22, 0x1e22, 
-	0x1e23, 0x1e24, 0x1e25, 0x1e25, 0x1e26, 0x1e27, 0x1e28, 0x1e29, 
-	0x1e2a, 0x1e2b, 0x1e2c, 0x1e2e, 0x1e2f, 0x1e30, 0x1e31, 0x1e33, 
-	0x1e34, 0x1e35, 0x1e37, 0x1e38, 0x1e3a, 0x1e3b, 0x1e3d, 0x1e3f, 
-	0x1e40, 0x1e40, 0x1e40, 0x1e40, 0x1e41, 0x1e41, 0x1e42, 0x1e42, 
-	0x1e43, 0x1e44, 0x1e45, 0x1e45, 0x1e46, 0x1e47, 0x1e48, 0x1e49, 
-	0x1e4a, 0x1e4b, 0x1e4c, 0x1e4e, 0x1e4f, 0x1e50, 0x1e51, 0x1e53, 
-	0x1e54, 0x1e55, 0x1e57, 0x1e58, 0x1e5a, 0x1e5b, 0x1e5d, 0x1e5f, 
-	0x1e80, 0x1e80, 0x1e80, 0x1e80, 0x1e81, 0x1e81, 0x1e82, 0x1e82, 
-	0x1e83, 0x1e84, 0x1e85, 0x1e85, 0x1e86, 0x1e87, 0x1e88, 0x1e89, 
-	0x1e8a, 0x1e8b, 0x1e8c, 0x1e8e, 0x1e8f, 0x1e90, 0x1e91, 0x1e93, 
-	0x1e94, 0x1e95, 0x1e97, 0x1e98, 0x1e9a, 0x1e9b, 0x1e9d, 0x1e9f, 
-	0x1ea0, 0x1ea0, 0x1ea0, 0x1ea0, 0x1ea1, 0x1ea1, 0x1ea2, 0x1ea2, 
-	0x1ea3, 0x1ea4, 0x1ea5, 0x1ea5, 0x1ea6, 0x1ea7, 0x1ea8, 0x1ea9, 
-	0x1eaa, 0x1eab, 0x1eac, 0x1eae, 0x1eaf, 0x1eb0, 0x1eb1, 0x1eb3, 
-	0x1eb4, 0x1eb5, 0x1eb7, 0x1eb8, 0x1eba, 0x1ebb, 0x1ebd, 0x1ebf, 
-	0x1ee0, 0x1ee0, 0x1ee0, 0x1ee0, 0x1ee1, 0x1ee1, 0x1ee2, 0x1ee2, 
-	0x1ee3, 0x1ee4, 0x1ee5, 0x1ee5, 0x1ee6, 0x1ee7, 0x1ee8, 0x1ee9, 
-	0x1eea, 0x1eeb, 0x1eec, 0x1eee, 0x1eef, 0x1ef0, 0x1ef1, 0x1ef3, 
-	0x1ef4, 0x1ef5, 0x1ef7, 0x1ef8, 0x1efa, 0x1efb, 0x1efd, 0x1eff, 
-	0x1f00, 0x1f00, 0x1f00, 0x1f00, 0x1f01, 0x1f01, 0x1f02, 0x1f02, 
-	0x1f03, 0x1f04, 0x1f05, 0x1f05, 0x1f06, 0x1f07, 0x1f08, 0x1f09, 
-	0x1f0a, 0x1f0b, 0x1f0c, 0x1f0e, 0x1f0f, 0x1f10, 0x1f11, 0x1f13, 
-	0x1f14, 0x1f15, 0x1f17, 0x1f18, 0x1f1a, 0x1f1b, 0x1f1d, 0x1f1f, 
-	0x1f40, 0x1f40, 0x1f40, 0x1f40, 0x1f41, 0x1f41, 0x1f42, 0x1f42, 
-	0x1f43, 0x1f44, 0x1f45, 0x1f45, 0x1f46, 0x1f47, 0x1f48, 0x1f49, 
-	0x1f4a, 0x1f4b, 0x1f4c, 0x1f4e, 0x1f4f, 0x1f50, 0x1f51, 0x1f53, 
-	0x1f54, 0x1f55, 0x1f57, 0x1f58, 0x1f5a, 0x1f5b, 0x1f5d, 0x1f5f, 
-	0x1f60, 0x1f60, 0x1f60, 0x1f60, 0x1f61, 0x1f61, 0x1f62, 0x1f62, 
-	0x1f63, 0x1f64, 0x1f65, 0x1f65, 0x1f66, 0x1f67, 0x1f68, 0x1f69, 
-	0x1f6a, 0x1f6b, 0x1f6c, 0x1f6e, 0x1f6f, 0x1f70, 0x1f71, 0x1f73, 
-	0x1f74, 0x1f75, 0x1f77, 0x1f78, 0x1f7a, 0x1f7b, 0x1f7d, 0x1f7f, 
-	0x1fa0, 0x1fa0, 0x1fa0, 0x1fa0, 0x1fa1, 0x1fa1, 0x1fa2, 0x1fa2, 
-	0x1fa3, 0x1fa4, 0x1fa5, 0x1fa5, 0x1fa6, 0x1fa7, 0x1fa8, 0x1fa9, 
-	0x1faa, 0x1fab, 0x1fac, 0x1fae, 0x1faf, 0x1fb0, 0x1fb1, 0x1fb3, 
-	0x1fb4, 0x1fb5, 0x1fb7, 0x1fb8, 0x1fba, 0x1fbb, 0x1fbd, 0x1fbf, 
-	0x1fe0, 0x1fe0, 0x1fe0, 0x1fe0, 0x1fe1, 0x1fe1, 0x1fe2, 0x1fe2, 
-	0x1fe3, 0x1fe4, 0x1fe5, 0x1fe5, 0x1fe6, 0x1fe7, 0x1fe8, 0x1fe9, 
-	0x1fea, 0x1feb, 0x1fec, 0x1fee, 0x1fef, 0x1ff0, 0x1ff1, 0x1ff3, 
-	0x1ff4, 0x1ff5, 0x1ff7, 0x1ff8, 0x1ffa, 0x1ffb, 0x1ffd, 0x1fff, 
-	0x2000, 0x2000, 0x2000, 0x2000, 0x2001, 0x2001, 0x2002, 0x2002, 
-	0x2003, 0x2004, 0x2005, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 
-	0x200a, 0x200b, 0x200c, 0x200e, 0x200f, 0x2010, 0x2011, 0x2013, 
-	0x2014, 0x2015, 0x2017, 0x2018, 0x201a, 0x201b, 0x201d, 0x201f, 
-	0x2000, 0x2000, 0x2000, 0x2000, 0x2001, 0x2001, 0x2002, 0x2002, 
-	0x2003, 0x2004, 0x2005, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 
-	0x200a, 0x200b, 0x200c, 0x200e, 0x200f, 0x2010, 0x2011, 0x2013, 
-	0x2014, 0x2015, 0x2017, 0x2018, 0x201a, 0x201b, 0x201d, 0x201f, 
-	0x2000, 0x2000, 0x2000, 0x2000, 0x2001, 0x2001, 0x2002, 0x2002, 
-	0x2003, 0x2004, 0x2005, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 
-	0x200a, 0x200b, 0x200c, 0x200e, 0x200f, 0x2010, 0x2011, 0x2013, 
-	0x2014, 0x2015, 0x2017, 0x2018, 0x201a, 0x201b, 0x201d, 0x201f, 
-	0x2000, 0x2000, 0x2000, 0x2000, 0x2001, 0x2001, 0x2002, 0x2002, 
-	0x2003, 0x2004, 0x2005, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 
-	0x200a, 0x200b, 0x200c, 0x200e, 0x200f, 0x2010, 0x2011, 0x2013, 
-	0x2014, 0x2015, 0x2017, 0x2018, 0x201a, 0x201b, 0x201d, 0x201f, 
-	0x2000, 0x2000, 0x2000, 0x2000, 0x2001, 0x2001, 0x2002, 0x2002, 
-	0x2003, 0x2004, 0x2005, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 
-	0x200a, 0x200b, 0x200c, 0x200e, 0x200f, 0x2010, 0x2011, 0x2013, 
-	0x2014, 0x2015, 0x2017, 0x2018, 0x201a, 0x201b, 0x201d, 0x201f, 
-	0x2020, 0x2020, 0x2020, 0x2020, 0x2021, 0x2021, 0x2022, 0x2022, 
-	0x2023, 0x2024, 0x2025, 0x2025, 0x2026, 0x2027, 0x2028, 0x2029, 
-	0x202a, 0x202b, 0x202c, 0x202e, 0x202f, 0x2030, 0x2031, 0x2033, 
-	0x2034, 0x2035, 0x2037, 0x2038, 0x203a, 0x203b, 0x203d, 0x203f, 
-	0x2020, 0x2020, 0x2020, 0x2020, 0x2021, 0x2021, 0x2022, 0x2022, 
-	0x2023, 0x2024, 0x2025, 0x2025, 0x2026, 0x2027, 0x2028, 0x2029, 
-	0x202a, 0x202b, 0x202c, 0x202e, 0x202f, 0x2030, 0x2031, 0x2033, 
-	0x2034, 0x2035, 0x2037, 0x2038, 0x203a, 0x203b, 0x203d, 0x203f, 
-	0x2020, 0x2020, 0x2020, 0x2020, 0x2021, 0x2021, 0x2022, 0x2022, 
-	0x2023, 0x2024, 0x2025, 0x2025, 0x2026, 0x2027, 0x2028, 0x2029, 
-	0x202a, 0x202b, 0x202c, 0x202e, 0x202f, 0x2030, 0x2031, 0x2033, 
-	0x2034, 0x2035, 0x2037, 0x2038, 0x203a, 0x203b, 0x203d, 0x203f, 
-	0x2040, 0x2040, 0x2040, 0x2040, 0x2041, 0x2041, 0x2042, 0x2042, 
-	0x2043, 0x2044, 0x2045, 0x2045, 0x2046, 0x2047, 0x2048, 0x2049, 
-	0x204a, 0x204b, 0x204c, 0x204e, 0x204f, 0x2050, 0x2051, 0x2053, 
-	0x2054, 0x2055, 0x2057, 0x2058, 0x205a, 0x205b, 0x205d, 0x205f, 
-	0x2040, 0x2040, 0x2040, 0x2040, 0x2041, 0x2041, 0x2042, 0x2042, 
-	0x2043, 0x2044, 0x2045, 0x2045, 0x2046, 0x2047, 0x2048, 0x2049, 
-	0x204a, 0x204b, 0x204c, 0x204e, 0x204f, 0x2050, 0x2051, 0x2053, 
-	0x2054, 0x2055, 0x2057, 0x2058, 0x205a, 0x205b, 0x205d, 0x205f, 
-	0x2060, 0x2060, 0x2060, 0x2060, 0x2061, 0x2061, 0x2062, 0x2062, 
-	0x2063, 0x2064, 0x2065, 0x2065, 0x2066, 0x2067, 0x2068, 0x2069, 
-	0x206a, 0x206b, 0x206c, 0x206e, 0x206f, 0x2070, 0x2071, 0x2073, 
-	0x2074, 0x2075, 0x2077, 0x2078, 0x207a, 0x207b, 0x207d, 0x207f, 
-	0x2060, 0x2060, 0x2060, 0x2060, 0x2061, 0x2061, 0x2062, 0x2062, 
-	0x2063, 0x2064, 0x2065, 0x2065, 0x2066, 0x2067, 0x2068, 0x2069, 
-	0x206a, 0x206b, 0x206c, 0x206e, 0x206f, 0x2070, 0x2071, 0x2073, 
-	0x2074, 0x2075, 0x2077, 0x2078, 0x207a, 0x207b, 0x207d, 0x207f, 
-	0x2080, 0x2080, 0x2080, 0x2080, 0x2081, 0x2081, 0x2082, 0x2082, 
-	0x2083, 0x2084, 0x2085, 0x2085, 0x2086, 0x2087, 0x2088, 0x2089, 
-	0x208a, 0x208b, 0x208c, 0x208e, 0x208f, 0x2090, 0x2091, 0x2093, 
-	0x2094, 0x2095, 0x2097, 0x2098, 0x209a, 0x209b, 0x209d, 0x209f, 
-	0x20a0, 0x20a0, 0x20a0, 0x20a0, 0x20a1, 0x20a1, 0x20a2, 0x20a2, 
-	0x20a3, 0x20a4, 0x20a5, 0x20a5, 0x20a6, 0x20a7, 0x20a8, 0x20a9, 
-	0x20aa, 0x20ab, 0x20ac, 0x20ae, 0x20af, 0x20b0, 0x20b1, 0x20b3, 
-	0x20b4, 0x20b5, 0x20b7, 0x20b8, 0x20ba, 0x20bb, 0x20bd, 0x20bf, 
-	0x20a0, 0x20a0, 0x20a0, 0x20a0, 0x20a1, 0x20a1, 0x20a2, 0x20a2, 
-	0x20a3, 0x20a4, 0x20a5, 0x20a5, 0x20a6, 0x20a7, 0x20a8, 0x20a9, 
-	0x20aa, 0x20ab, 0x20ac, 0x20ae, 0x20af, 0x20b0, 0x20b1, 0x20b3, 
-	0x20b4, 0x20b5, 0x20b7, 0x20b8, 0x20ba, 0x20bb, 0x20bd, 0x20bf, 
-	0x20c0, 0x20c0, 0x20c0, 0x20c0, 0x20c1, 0x20c1, 0x20c2, 0x20c2, 
-	0x20c3, 0x20c4, 0x20c5, 0x20c5, 0x20c6, 0x20c7, 0x20c8, 0x20c9, 
-	0x20ca, 0x20cb, 0x20cc, 0x20ce, 0x20cf, 0x20d0, 0x20d1, 0x20d3, 
-	0x20d4, 0x20d5, 0x20d7, 0x20d8, 0x20da, 0x20db, 0x20dd, 0x20df, 
-	0x20e0, 0x20e0, 0x20e0, 0x20e0, 0x20e1, 0x20e1, 0x20e2, 0x20e2, 
-	0x20e3, 0x20e4, 0x20e5, 0x20e5, 0x20e6, 0x20e7, 0x20e8, 0x20e9, 
-	0x20ea, 0x20eb, 0x20ec, 0x20ee, 0x20ef, 0x20f0, 0x20f1, 0x20f3, 
-	0x20f4, 0x20f5, 0x20f7, 0x20f8, 0x20fa, 0x20fb, 0x20fd, 0x20ff, 
-	0x20e0, 0x20e0, 0x20e0, 0x20e0, 0x20e1, 0x20e1, 0x20e2, 0x20e2, 
-	0x20e3, 0x20e4, 0x20e5, 0x20e5, 0x20e6, 0x20e7, 0x20e8, 0x20e9, 
-	0x20ea, 0x20eb, 0x20ec, 0x20ee, 0x20ef, 0x20f0, 0x20f1, 0x20f3, 
-	0x20f4, 0x20f5, 0x20f7, 0x20f8, 0x20fa, 0x20fb, 0x20fd, 0x20ff, 
-	0x2100, 0x2100, 0x2100, 0x2100, 0x2101, 0x2101, 0x2102, 0x2102, 
-	0x2103, 0x2104, 0x2105, 0x2105, 0x2106, 0x2107, 0x2108, 0x2109, 
-	0x210a, 0x210b, 0x210c, 0x210e, 0x210f, 0x2110, 0x2111, 0x2113, 
-	0x2114, 0x2115, 0x2117, 0x2118, 0x211a, 0x211b, 0x211d, 0x211f, 
-	0x2120, 0x2120, 0x2120, 0x2120, 0x2121, 0x2121, 0x2122, 0x2122, 
-	0x2123, 0x2124, 0x2125, 0x2125, 0x2126, 0x2127, 0x2128, 0x2129, 
-	0x212a, 0x212b, 0x212c, 0x212e, 0x212f, 0x2130, 0x2131, 0x2133, 
-	0x2134, 0x2135, 0x2137, 0x2138, 0x213a, 0x213b, 0x213d, 0x213f, 
-	0x2140, 0x2140, 0x2140, 0x2140, 0x2141, 0x2141, 0x2142, 0x2142, 
-	0x2143, 0x2144, 0x2145, 0x2145, 0x2146, 0x2147, 0x2148, 0x2149, 
-	0x214a, 0x214b, 0x214c, 0x214e, 0x214f, 0x2150, 0x2151, 0x2153, 
-	0x2154, 0x2155, 0x2157, 0x2158, 0x215a, 0x215b, 0x215d, 0x215f, 
-	0x2140, 0x2140, 0x2140, 0x2140, 0x2141, 0x2141, 0x2142, 0x2142, 
-	0x2143, 0x2144, 0x2145, 0x2145, 0x2146, 0x2147, 0x2148, 0x2149, 
-	0x214a, 0x214b, 0x214c, 0x214e, 0x214f, 0x2150, 0x2151, 0x2153, 
-	0x2154, 0x2155, 0x2157, 0x2158, 0x215a, 0x215b, 0x215d, 0x215f, 
-	0x2160, 0x2160, 0x2160, 0x2160, 0x2161, 0x2161, 0x2162, 0x2162, 
-	0x2163, 0x2164, 0x2165, 0x2165, 0x2166, 0x2167, 0x2168, 0x2169, 
-	0x216a, 0x216b, 0x216c, 0x216e, 0x216f, 0x2170, 0x2171, 0x2173, 
-	0x2174, 0x2175, 0x2177, 0x2178, 0x217a, 0x217b, 0x217d, 0x217f, 
-	0x2180, 0x2180, 0x2180, 0x2180, 0x2181, 0x2181, 0x2182, 0x2182, 
-	0x2183, 0x2184, 0x2185, 0x2185, 0x2186, 0x2187, 0x2188, 0x2189, 
-	0x218a, 0x218b, 0x218c, 0x218e, 0x218f, 0x2190, 0x2191, 0x2193, 
-	0x2194, 0x2195, 0x2197, 0x2198, 0x219a, 0x219b, 0x219d, 0x219f, 
-	0x21a0, 0x21a0, 0x21a0, 0x21a0, 0x21a1, 0x21a1, 0x21a2, 0x21a2, 
-	0x21a3, 0x21a4, 0x21a5, 0x21a5, 0x21a6, 0x21a7, 0x21a8, 0x21a9, 
-	0x21aa, 0x21ab, 0x21ac, 0x21ae, 0x21af, 0x21b0, 0x21b1, 0x21b3, 
-	0x21b4, 0x21b5, 0x21b7, 0x21b8, 0x21ba, 0x21bb, 0x21bd, 0x21bf, 
-	0x21c0, 0x21c0, 0x21c0, 0x21c0, 0x21c1, 0x21c1, 0x21c2, 0x21c2, 
-	0x21c3, 0x21c4, 0x21c5, 0x21c5, 0x21c6, 0x21c7, 0x21c8, 0x21c9, 
-	0x21ca, 0x21cb, 0x21cc, 0x21ce, 0x21cf, 0x21d0, 0x21d1, 0x21d3, 
-	0x21d4, 0x21d5, 0x21d7, 0x21d8, 0x21da, 0x21db, 0x21dd, 0x21df, 
-	0x21e0, 0x21e0, 0x21e0, 0x21e0, 0x21e1, 0x21e1, 0x21e2, 0x21e2, 
-	0x21e3, 0x21e4, 0x21e5, 0x21e5, 0x21e6, 0x21e7, 0x21e8, 0x21e9, 
-	0x21ea, 0x21eb, 0x21ec, 0x21ee, 0x21ef, 0x21f0, 0x21f1, 0x21f3, 
-	0x21f4, 0x21f5, 0x21f7, 0x21f8, 0x21fa, 0x21fb, 0x21fd, 0x21ff, 
-	0x2200, 0x2200, 0x2200, 0x2200, 0x2201, 0x2201, 0x2202, 0x2202, 
-	0x2203, 0x2204, 0x2205, 0x2205, 0x2206, 0x2207, 0x2208, 0x2209, 
-	0x220a, 0x220b, 0x220c, 0x220e, 0x220f, 0x2210, 0x2211, 0x2213, 
-	0x2214, 0x2215, 0x2217, 0x2218, 0x221a, 0x221b, 0x221d, 0x221f, 
-	0x2220, 0x2220, 0x2220, 0x2220, 0x2221, 0x2221, 0x2222, 0x2222, 
-	0x2223, 0x2224, 0x2225, 0x2225, 0x2226, 0x2227, 0x2228, 0x2229, 
-	0x222a, 0x222b, 0x222c, 0x222e, 0x222f, 0x2230, 0x2231, 0x2233, 
-	0x2234, 0x2235, 0x2237, 0x2238, 0x223a, 0x223b, 0x223d, 0x223f, 
-	0x2240, 0x2240, 0x2240, 0x2240, 0x2241, 0x2241, 0x2242, 0x2242, 
-	0x2243, 0x2244, 0x2245, 0x2245, 0x2246, 0x2247, 0x2248, 0x2249, 
-	0x224a, 0x224b, 0x224c, 0x224e, 0x224f, 0x2250, 0x2251, 0x2253, 
-	0x2254, 0x2255, 0x2257, 0x2258, 0x225a, 0x225b, 0x225d, 0x225f, 
-	0x2260, 0x2260, 0x2260, 0x2260, 0x2261, 0x2261, 0x2262, 0x2262, 
-	0x2263, 0x2264, 0x2265, 0x2265, 0x2266, 0x2267, 0x2268, 0x2269, 
-	0x226a, 0x226b, 0x226c, 0x226e, 0x226f, 0x2270, 0x2271, 0x2273, 
-	0x2274, 0x2275, 0x2277, 0x2278, 0x227a, 0x227b, 0x227d, 0x227f, 
-	0x2280, 0x2280, 0x2280, 0x2280, 0x2281, 0x2281, 0x2282, 0x2282, 
-	0x2283, 0x2284, 0x2285, 0x2285, 0x2286, 0x2287, 0x2288, 0x2289, 
-	0x228a, 0x228b, 0x228c, 0x228e, 0x228f, 0x2290, 0x2291, 0x2293, 
-	0x2294, 0x2295, 0x2297, 0x2298, 0x229a, 0x229b, 0x229d, 0x229f, 
-	0x22a0, 0x22a0, 0x22a0, 0x22a0, 0x22a1, 0x22a1, 0x22a2, 0x22a2, 
-	0x22a3, 0x22a4, 0x22a5, 0x22a5, 0x22a6, 0x22a7, 0x22a8, 0x22a9, 
-	0x22aa, 0x22ab, 0x22ac, 0x22ae, 0x22af, 0x22b0, 0x22b1, 0x22b3, 
-	0x22b4, 0x22b5, 0x22b7, 0x22b8, 0x22ba, 0x22bb, 0x22bd, 0x22bf, 
-	0x22c0, 0x22c0, 0x22c0, 0x22c0, 0x22c1, 0x22c1, 0x22c2, 0x22c2, 
-	0x22c3, 0x22c4, 0x22c5, 0x22c5, 0x22c6, 0x22c7, 0x22c8, 0x22c9, 
-	0x22ca, 0x22cb, 0x22cc, 0x22ce, 0x22cf, 0x22d0, 0x22d1, 0x22d3, 
-	0x22d4, 0x22d5, 0x22d7, 0x22d8, 0x22da, 0x22db, 0x22dd, 0x22df, 
-	0x22e0, 0x22e0, 0x22e0, 0x22e0, 0x22e1, 0x22e1, 0x22e2, 0x22e2, 
-	0x22e3, 0x22e4, 0x22e5, 0x22e5, 0x22e6, 0x22e7, 0x22e8, 0x22e9, 
-	0x22ea, 0x22eb, 0x22ec, 0x22ee, 0x22ef, 0x22f0, 0x22f1, 0x22f3, 
-	0x22f4, 0x22f5, 0x22f7, 0x22f8, 0x22fa, 0x22fb, 0x22fd, 0x22ff, 
-	0x2300, 0x2300, 0x2300, 0x2300, 0x2301, 0x2301, 0x2302, 0x2302, 
-	0x2303, 0x2304, 0x2305, 0x2305, 0x2306, 0x2307, 0x2308, 0x2309, 
-	0x230a, 0x230b, 0x230c, 0x230e, 0x230f, 0x2310, 0x2311, 0x2313, 
-	0x2314, 0x2315, 0x2317, 0x2318, 0x231a, 0x231b, 0x231d, 0x231f, 
-	0x2320, 0x2320, 0x2320, 0x2320, 0x2321, 0x2321, 0x2322, 0x2322, 
-	0x2323, 0x2324, 0x2325, 0x2325, 0x2326, 0x2327, 0x2328, 0x2329, 
-	0x232a, 0x232b, 0x232c, 0x232e, 0x232f, 0x2330, 0x2331, 0x2333, 
-	0x2334, 0x2335, 0x2337, 0x2338, 0x233a, 0x233b, 0x233d, 0x233f, 
-	0x2340, 0x2340, 0x2340, 0x2340, 0x2341, 0x2341, 0x2342, 0x2342, 
-	0x2343, 0x2344, 0x2345, 0x2345, 0x2346, 0x2347, 0x2348, 0x2349, 
-	0x234a, 0x234b, 0x234c, 0x234e, 0x234f, 0x2350, 0x2351, 0x2353, 
-	0x2354, 0x2355, 0x2357, 0x2358, 0x235a, 0x235b, 0x235d, 0x235f, 
-	0x2380, 0x2380, 0x2380, 0x2380, 0x2381, 0x2381, 0x2382, 0x2382, 
-	0x2383, 0x2384, 0x2385, 0x2385, 0x2386, 0x2387, 0x2388, 0x2389, 
-	0x238a, 0x238b, 0x238c, 0x238e, 0x238f, 0x2390, 0x2391, 0x2393, 
-	0x2394, 0x2395, 0x2397, 0x2398, 0x239a, 0x239b, 0x239d, 0x239f, 
-	0x23a0, 0x23a0, 0x23a0, 0x23a0, 0x23a1, 0x23a1, 0x23a2, 0x23a2, 
-	0x23a3, 0x23a4, 0x23a5, 0x23a5, 0x23a6, 0x23a7, 0x23a8, 0x23a9, 
-	0x23aa, 0x23ab, 0x23ac, 0x23ae, 0x23af, 0x23b0, 0x23b1, 0x23b3, 
-	0x23b4, 0x23b5, 0x23b7, 0x23b8, 0x23ba, 0x23bb, 0x23bd, 0x23bf, 
-	0x23c0, 0x23c0, 0x23c0, 0x23c0, 0x23c1, 0x23c1, 0x23c2, 0x23c2, 
-	0x23c3, 0x23c4, 0x23c5, 0x23c5, 0x23c6, 0x23c7, 0x23c8, 0x23c9, 
-	0x23ca, 0x23cb, 0x23cc, 0x23ce, 0x23cf, 0x23d0, 0x23d1, 0x23d3, 
-	0x23d4, 0x23d5, 0x23d7, 0x23d8, 0x23da, 0x23db, 0x23dd, 0x23df, 
-	0x23e0, 0x23e0, 0x23e0, 0x23e0, 0x23e1, 0x23e1, 0x23e2, 0x23e2, 
-	0x23e3, 0x23e4, 0x23e5, 0x23e5, 0x23e6, 0x23e7, 0x23e8, 0x23e9, 
-	0x23ea, 0x23eb, 0x23ec, 0x23ee, 0x23ef, 0x23f0, 0x23f1, 0x23f3, 
-	0x23f4, 0x23f5, 0x23f7, 0x23f8, 0x23fa, 0x23fb, 0x23fd, 0x23ff, 
-	0x2400, 0x2400, 0x2400, 0x2400, 0x2401, 0x2401, 0x2402, 0x2402, 
-	0x2403, 0x2404, 0x2405, 0x2405, 0x2406, 0x2407, 0x2408, 0x2409, 
-	0x240a, 0x240b, 0x240c, 0x240e, 0x240f, 0x2410, 0x2411, 0x2413, 
-	0x2414, 0x2415, 0x2417, 0x2418, 0x241a, 0x241b, 0x241d, 0x241f, 
-	0x2440, 0x2440, 0x2440, 0x2440, 0x2441, 0x2441, 0x2442, 0x2442, 
-	0x2443, 0x2444, 0x2445, 0x2445, 0x2446, 0x2447, 0x2448, 0x2449, 
-	0x244a, 0x244b, 0x244c, 0x244e, 0x244f, 0x2450, 0x2451, 0x2453, 
-	0x2454, 0x2455, 0x2457, 0x2458, 0x245a, 0x245b, 0x245d, 0x245f, 
-	0x2460, 0x2460, 0x2460, 0x2460, 0x2461, 0x2461, 0x2462, 0x2462, 
-	0x2463, 0x2464, 0x2465, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469, 
-	0x246a, 0x246b, 0x246c, 0x246e, 0x246f, 0x2470, 0x2471, 0x2473, 
-	0x2474, 0x2475, 0x2477, 0x2478, 0x247a, 0x247b, 0x247d, 0x247f, 
-	0x2480, 0x2480, 0x2480, 0x2480, 0x2481, 0x2481, 0x2482, 0x2482, 
-	0x2483, 0x2484, 0x2485, 0x2485, 0x2486, 0x2487, 0x2488, 0x2489, 
-	0x248a, 0x248b, 0x248c, 0x248e, 0x248f, 0x2490, 0x2491, 0x2493, 
-	0x2494, 0x2495, 0x2497, 0x2498, 0x249a, 0x249b, 0x249d, 0x249f, 
-	0x24c0, 0x24c0, 0x24c0, 0x24c0, 0x24c1, 0x24c1, 0x24c2, 0x24c2, 
-	0x24c3, 0x24c4, 0x24c5, 0x24c5, 0x24c6, 0x24c7, 0x24c8, 0x24c9, 
-	0x24ca, 0x24cb, 0x24cc, 0x24ce, 0x24cf, 0x24d0, 0x24d1, 0x24d3, 
-	0x24d4, 0x24d5, 0x24d7, 0x24d8, 0x24da, 0x24db, 0x24dd, 0x24df, 
-	0x24e0, 0x24e0, 0x24e0, 0x24e0, 0x24e1, 0x24e1, 0x24e2, 0x24e2, 
-	0x24e3, 0x24e4, 0x24e5, 0x24e5, 0x24e6, 0x24e7, 0x24e8, 0x24e9, 
-	0x24ea, 0x24eb, 0x24ec, 0x24ee, 0x24ef, 0x24f0, 0x24f1, 0x24f3, 
-	0x24f4, 0x24f5, 0x24f7, 0x24f8, 0x24fa, 0x24fb, 0x24fd, 0x24ff, 
-	0x2500, 0x2500, 0x2500, 0x2500, 0x2501, 0x2501, 0x2502, 0x2502, 
-	0x2503, 0x2504, 0x2505, 0x2505, 0x2506, 0x2507, 0x2508, 0x2509, 
-	0x250a, 0x250b, 0x250c, 0x250e, 0x250f, 0x2510, 0x2511, 0x2513, 
-	0x2514, 0x2515, 0x2517, 0x2518, 0x251a, 0x251b, 0x251d, 0x251f, 
-	0x2540, 0x2540, 0x2540, 0x2540, 0x2541, 0x2541, 0x2542, 0x2542, 
-	0x2543, 0x2544, 0x2545, 0x2545, 0x2546, 0x2547, 0x2548, 0x2549, 
-	0x254a, 0x254b, 0x254c, 0x254e, 0x254f, 0x2550, 0x2551, 0x2553, 
-	0x2554, 0x2555, 0x2557, 0x2558, 0x255a, 0x255b, 0x255d, 0x255f, 
-	0x2560, 0x2560, 0x2560, 0x2560, 0x2561, 0x2561, 0x2562, 0x2562, 
-	0x2563, 0x2564, 0x2565, 0x2565, 0x2566, 0x2567, 0x2568, 0x2569, 
-	0x256a, 0x256b, 0x256c, 0x256e, 0x256f, 0x2570, 0x2571, 0x2573, 
-	0x2574, 0x2575, 0x2577, 0x2578, 0x257a, 0x257b, 0x257d, 0x257f, 
-	0x2580, 0x2580, 0x2580, 0x2580, 0x2581, 0x2581, 0x2582, 0x2582, 
-	0x2583, 0x2584, 0x2585, 0x2585, 0x2586, 0x2587, 0x2588, 0x2589, 
-	0x258a, 0x258b, 0x258c, 0x258e, 0x258f, 0x2590, 0x2591, 0x2593, 
-	0x2594, 0x2595, 0x2597, 0x2598, 0x259a, 0x259b, 0x259d, 0x259f, 
-	0x25c0, 0x25c0, 0x25c0, 0x25c0, 0x25c1, 0x25c1, 0x25c2, 0x25c2, 
-	0x25c3, 0x25c4, 0x25c5, 0x25c5, 0x25c6, 0x25c7, 0x25c8, 0x25c9, 
-	0x25ca, 0x25cb, 0x25cc, 0x25ce, 0x25cf, 0x25d0, 0x25d1, 0x25d3, 
-	0x25d4, 0x25d5, 0x25d7, 0x25d8, 0x25da, 0x25db, 0x25dd, 0x25df, 
-	0x25e0, 0x25e0, 0x25e0, 0x25e0, 0x25e1, 0x25e1, 0x25e2, 0x25e2, 
-	0x25e3, 0x25e4, 0x25e5, 0x25e5, 0x25e6, 0x25e7, 0x25e8, 0x25e9, 
-	0x25ea, 0x25eb, 0x25ec, 0x25ee, 0x25ef, 0x25f0, 0x25f1, 0x25f3, 
-	0x25f4, 0x25f5, 0x25f7, 0x25f8, 0x25fa, 0x25fb, 0x25fd, 0x25ff, 
-	0x2620, 0x2620, 0x2620, 0x2620, 0x2621, 0x2621, 0x2622, 0x2622, 
-	0x2623, 0x2624, 0x2625, 0x2625, 0x2626, 0x2627, 0x2628, 0x2629, 
-	0x262a, 0x262b, 0x262c, 0x262e, 0x262f, 0x2630, 0x2631, 0x2633, 
-	0x2634, 0x2635, 0x2637, 0x2638, 0x263a, 0x263b, 0x263d, 0x263f, 
-	0x2640, 0x2640, 0x2640, 0x2640, 0x2641, 0x2641, 0x2642, 0x2642, 
-	0x2643, 0x2644, 0x2645, 0x2645, 0x2646, 0x2647, 0x2648, 0x2649, 
-	0x264a, 0x264b, 0x264c, 0x264e, 0x264f, 0x2650, 0x2651, 0x2653, 
-	0x2654, 0x2655, 0x2657, 0x2658, 0x265a, 0x265b, 0x265d, 0x265f, 
-	0x2680, 0x2680, 0x2680, 0x2680, 0x2681, 0x2681, 0x2682, 0x2682, 
-	0x2683, 0x2684, 0x2685, 0x2685, 0x2686, 0x2687, 0x2688, 0x2689, 
-	0x268a, 0x268b, 0x268c, 0x268e, 0x268f, 0x2690, 0x2691, 0x2693, 
-	0x2694, 0x2695, 0x2697, 0x2698, 0x269a, 0x269b, 0x269d, 0x269f, 
-	0x26a0, 0x26a0, 0x26a0, 0x26a0, 0x26a1, 0x26a1, 0x26a2, 0x26a2, 
-	0x26a3, 0x26a4, 0x26a5, 0x26a5, 0x26a6, 0x26a7, 0x26a8, 0x26a9, 
-	0x26aa, 0x26ab, 0x26ac, 0x26ae, 0x26af, 0x26b0, 0x26b1, 0x26b3, 
-	0x26b4, 0x26b5, 0x26b7, 0x26b8, 0x26ba, 0x26bb, 0x26bd, 0x26bf, 
-	0x26e0, 0x26e0, 0x26e0, 0x26e0, 0x26e1, 0x26e1, 0x26e2, 0x26e2, 
-	0x26e3, 0x26e4, 0x26e5, 0x26e5, 0x26e6, 0x26e7, 0x26e8, 0x26e9, 
-	0x26ea, 0x26eb, 0x26ec, 0x26ee, 0x26ef, 0x26f0, 0x26f1, 0x26f3, 
-	0x26f4, 0x26f5, 0x26f7, 0x26f8, 0x26fa, 0x26fb, 0x26fd, 0x26ff, 
-	0x2700, 0x2700, 0x2700, 0x2700, 0x2701, 0x2701, 0x2702, 0x2702, 
-	0x2703, 0x2704, 0x2705, 0x2705, 0x2706, 0x2707, 0x2708, 0x2709, 
-	0x270a, 0x270b, 0x270c, 0x270e, 0x270f, 0x2710, 0x2711, 0x2713, 
-	0x2714, 0x2715, 0x2717, 0x2718, 0x271a, 0x271b, 0x271d, 0x271f, 
-	0x2740, 0x2740, 0x2740, 0x2740, 0x2741, 0x2741, 0x2742, 0x2742, 
-	0x2743, 0x2744, 0x2745, 0x2745, 0x2746, 0x2747, 0x2748, 0x2749, 
-	0x274a, 0x274b, 0x274c, 0x274e, 0x274f, 0x2750, 0x2751, 0x2753, 
-	0x2754, 0x2755, 0x2757, 0x2758, 0x275a, 0x275b, 0x275d, 0x275f, 
-	0x2760, 0x2760, 0x2760, 0x2760, 0x2761, 0x2761, 0x2762, 0x2762, 
-	0x2763, 0x2764, 0x2765, 0x2765, 0x2766, 0x2767, 0x2768, 0x2769, 
-	0x276a, 0x276b, 0x276c, 0x276e, 0x276f, 0x2770, 0x2771, 0x2773, 
-	0x2774, 0x2775, 0x2777, 0x2778, 0x277a, 0x277b, 0x277d, 0x277f, 
-	0x27a0, 0x27a0, 0x27a0, 0x27a0, 0x27a1, 0x27a1, 0x27a2, 0x27a2, 
-	0x27a3, 0x27a4, 0x27a5, 0x27a5, 0x27a6, 0x27a7, 0x27a8, 0x27a9, 
-	0x27aa, 0x27ab, 0x27ac, 0x27ae, 0x27af, 0x27b0, 0x27b1, 0x27b3, 
-	0x27b4, 0x27b5, 0x27b7, 0x27b8, 0x27ba, 0x27bb, 0x27bd, 0x27bf, 
-	0x27e0, 0x27e0, 0x27e0, 0x27e0, 0x27e1, 0x27e1, 0x27e2, 0x27e2, 
-	0x27e3, 0x27e4, 0x27e5, 0x27e5, 0x27e6, 0x27e7, 0x27e8, 0x27e9, 
-	0x27ea, 0x27eb, 0x27ec, 0x27ee, 0x27ef, 0x27f0, 0x27f1, 0x27f3, 
-	0x27f4, 0x27f5, 0x27f7, 0x27f8, 0x27fa, 0x27fb, 0x27fd, 0x27ff, 
-	0x2800, 0x2800, 0x2800, 0x2800, 0x2801, 0x2801, 0x2802, 0x2802, 
-	0x2803, 0x2804, 0x2805, 0x2805, 0x2806, 0x2807, 0x2808, 0x2809, 
-	0x280a, 0x280b, 0x280c, 0x280e, 0x280f, 0x2810, 0x2811, 0x2813, 
-	0x2814, 0x2815, 0x2817, 0x2818, 0x281a, 0x281b, 0x281d, 0x281f, 
-	0x2800, 0x2800, 0x2800, 0x2800, 0x2801, 0x2801, 0x2802, 0x2802, 
-	0x2803, 0x2804, 0x2805, 0x2805, 0x2806, 0x2807, 0x2808, 0x2809, 
-	0x280a, 0x280b, 0x280c, 0x280e, 0x280f, 0x2810, 0x2811, 0x2813, 
-	0x2814, 0x2815, 0x2817, 0x2818, 0x281a, 0x281b, 0x281d, 0x281f, 
-	0x2800, 0x2800, 0x2800, 0x2800, 0x2801, 0x2801, 0x2802, 0x2802, 
-	0x2803, 0x2804, 0x2805, 0x2805, 0x2806, 0x2807, 0x2808, 0x2809, 
-	0x280a, 0x280b, 0x280c, 0x280e, 0x280f, 0x2810, 0x2811, 0x2813, 
-	0x2814, 0x2815, 0x2817, 0x2818, 0x281a, 0x281b, 0x281d, 0x281f, 
-	0x2800, 0x2800, 0x2800, 0x2800, 0x2801, 0x2801, 0x2802, 0x2802, 
-	0x2803, 0x2804, 0x2805, 0x2805, 0x2806, 0x2807, 0x2808, 0x2809, 
-	0x280a, 0x280b, 0x280c, 0x280e, 0x280f, 0x2810, 0x2811, 0x2813, 
-	0x2814, 0x2815, 0x2817, 0x2818, 0x281a, 0x281b, 0x281d, 0x281f, 
-	0x2800, 0x2800, 0x2800, 0x2800, 0x2801, 0x2801, 0x2802, 0x2802, 
-	0x2803, 0x2804, 0x2805, 0x2805, 0x2806, 0x2807, 0x2808, 0x2809, 
-	0x280a, 0x280b, 0x280c, 0x280e, 0x280f, 0x2810, 0x2811, 0x2813, 
-	0x2814, 0x2815, 0x2817, 0x2818, 0x281a, 0x281b, 0x281d, 0x281f, 
-	0x2820, 0x2820, 0x2820, 0x2820, 0x2821, 0x2821, 0x2822, 0x2822, 
-	0x2823, 0x2824, 0x2825, 0x2825, 0x2826, 0x2827, 0x2828, 0x2829, 
-	0x282a, 0x282b, 0x282c, 0x282e, 0x282f, 0x2830, 0x2831, 0x2833, 
-	0x2834, 0x2835, 0x2837, 0x2838, 0x283a, 0x283b, 0x283d, 0x283f, 
-	0x2820, 0x2820, 0x2820, 0x2820, 0x2821, 0x2821, 0x2822, 0x2822, 
-	0x2823, 0x2824, 0x2825, 0x2825, 0x2826, 0x2827, 0x2828, 0x2829, 
-	0x282a, 0x282b, 0x282c, 0x282e, 0x282f, 0x2830, 0x2831, 0x2833, 
-	0x2834, 0x2835, 0x2837, 0x2838, 0x283a, 0x283b, 0x283d, 0x283f, 
-	0x2820, 0x2820, 0x2820, 0x2820, 0x2821, 0x2821, 0x2822, 0x2822, 
-	0x2823, 0x2824, 0x2825, 0x2825, 0x2826, 0x2827, 0x2828, 0x2829, 
-	0x282a, 0x282b, 0x282c, 0x282e, 0x282f, 0x2830, 0x2831, 0x2833, 
-	0x2834, 0x2835, 0x2837, 0x2838, 0x283a, 0x283b, 0x283d, 0x283f, 
-	0x2840, 0x2840, 0x2840, 0x2840, 0x2841, 0x2841, 0x2842, 0x2842, 
-	0x2843, 0x2844, 0x2845, 0x2845, 0x2846, 0x2847, 0x2848, 0x2849, 
-	0x284a, 0x284b, 0x284c, 0x284e, 0x284f, 0x2850, 0x2851, 0x2853, 
-	0x2854, 0x2855, 0x2857, 0x2858, 0x285a, 0x285b, 0x285d, 0x285f, 
-	0x2840, 0x2840, 0x2840, 0x2840, 0x2841, 0x2841, 0x2842, 0x2842, 
-	0x2843, 0x2844, 0x2845, 0x2845, 0x2846, 0x2847, 0x2848, 0x2849, 
-	0x284a, 0x284b, 0x284c, 0x284e, 0x284f, 0x2850, 0x2851, 0x2853, 
-	0x2854, 0x2855, 0x2857, 0x2858, 0x285a, 0x285b, 0x285d, 0x285f, 
-	0x2860, 0x2860, 0x2860, 0x2860, 0x2861, 0x2861, 0x2862, 0x2862, 
-	0x2863, 0x2864, 0x2865, 0x2865, 0x2866, 0x2867, 0x2868, 0x2869, 
-	0x286a, 0x286b, 0x286c, 0x286e, 0x286f, 0x2870, 0x2871, 0x2873, 
-	0x2874, 0x2875, 0x2877, 0x2878, 0x287a, 0x287b, 0x287d, 0x287f, 
-	0x2860, 0x2860, 0x2860, 0x2860, 0x2861, 0x2861, 0x2862, 0x2862, 
-	0x2863, 0x2864, 0x2865, 0x2865, 0x2866, 0x2867, 0x2868, 0x2869, 
-	0x286a, 0x286b, 0x286c, 0x286e, 0x286f, 0x2870, 0x2871, 0x2873, 
-	0x2874, 0x2875, 0x2877, 0x2878, 0x287a, 0x287b, 0x287d, 0x287f, 
-	0x2880, 0x2880, 0x2880, 0x2880, 0x2881, 0x2881, 0x2882, 0x2882, 
-	0x2883, 0x2884, 0x2885, 0x2885, 0x2886, 0x2887, 0x2888, 0x2889, 
-	0x288a, 0x288b, 0x288c, 0x288e, 0x288f, 0x2890, 0x2891, 0x2893, 
-	0x2894, 0x2895, 0x2897, 0x2898, 0x289a, 0x289b, 0x289d, 0x289f, 
-	0x28a0, 0x28a0, 0x28a0, 0x28a0, 0x28a1, 0x28a1, 0x28a2, 0x28a2, 
-	0x28a3, 0x28a4, 0x28a5, 0x28a5, 0x28a6, 0x28a7, 0x28a8, 0x28a9, 
-	0x28aa, 0x28ab, 0x28ac, 0x28ae, 0x28af, 0x28b0, 0x28b1, 0x28b3, 
-	0x28b4, 0x28b5, 0x28b7, 0x28b8, 0x28ba, 0x28bb, 0x28bd, 0x28bf, 
-	0x28a0, 0x28a0, 0x28a0, 0x28a0, 0x28a1, 0x28a1, 0x28a2, 0x28a2, 
-	0x28a3, 0x28a4, 0x28a5, 0x28a5, 0x28a6, 0x28a7, 0x28a8, 0x28a9, 
-	0x28aa, 0x28ab, 0x28ac, 0x28ae, 0x28af, 0x28b0, 0x28b1, 0x28b3, 
-	0x28b4, 0x28b5, 0x28b7, 0x28b8, 0x28ba, 0x28bb, 0x28bd, 0x28bf, 
-	0x28c0, 0x28c0, 0x28c0, 0x28c0, 0x28c1, 0x28c1, 0x28c2, 0x28c2, 
-	0x28c3, 0x28c4, 0x28c5, 0x28c5, 0x28c6, 0x28c7, 0x28c8, 0x28c9, 
-	0x28ca, 0x28cb, 0x28cc, 0x28ce, 0x28cf, 0x28d0, 0x28d1, 0x28d3, 
-	0x28d4, 0x28d5, 0x28d7, 0x28d8, 0x28da, 0x28db, 0x28dd, 0x28df, 
-	0x28e0, 0x28e0, 0x28e0, 0x28e0, 0x28e1, 0x28e1, 0x28e2, 0x28e2, 
-	0x28e3, 0x28e4, 0x28e5, 0x28e5, 0x28e6, 0x28e7, 0x28e8, 0x28e9, 
-	0x28ea, 0x28eb, 0x28ec, 0x28ee, 0x28ef, 0x28f0, 0x28f1, 0x28f3, 
-	0x28f4, 0x28f5, 0x28f7, 0x28f8, 0x28fa, 0x28fb, 0x28fd, 0x28ff, 
-	0x28e0, 0x28e0, 0x28e0, 0x28e0, 0x28e1, 0x28e1, 0x28e2, 0x28e2, 
-	0x28e3, 0x28e4, 0x28e5, 0x28e5, 0x28e6, 0x28e7, 0x28e8, 0x28e9, 
-	0x28ea, 0x28eb, 0x28ec, 0x28ee, 0x28ef, 0x28f0, 0x28f1, 0x28f3, 
-	0x28f4, 0x28f5, 0x28f7, 0x28f8, 0x28fa, 0x28fb, 0x28fd, 0x28ff, 
-	0x2900, 0x2900, 0x2900, 0x2900, 0x2901, 0x2901, 0x2902, 0x2902, 
-	0x2903, 0x2904, 0x2905, 0x2905, 0x2906, 0x2907, 0x2908, 0x2909, 
-	0x290a, 0x290b, 0x290c, 0x290e, 0x290f, 0x2910, 0x2911, 0x2913, 
-	0x2914, 0x2915, 0x2917, 0x2918, 0x291a, 0x291b, 0x291d, 0x291f, 
-	0x2920, 0x2920, 0x2920, 0x2920, 0x2921, 0x2921, 0x2922, 0x2922, 
-	0x2923, 0x2924, 0x2925, 0x2925, 0x2926, 0x2927, 0x2928, 0x2929, 
-	0x292a, 0x292b, 0x292c, 0x292e, 0x292f, 0x2930, 0x2931, 0x2933, 
-	0x2934, 0x2935, 0x2937, 0x2938, 0x293a, 0x293b, 0x293d, 0x293f, 
-	0x2940, 0x2940, 0x2940, 0x2940, 0x2941, 0x2941, 0x2942, 0x2942, 
-	0x2943, 0x2944, 0x2945, 0x2945, 0x2946, 0x2947, 0x2948, 0x2949, 
-	0x294a, 0x294b, 0x294c, 0x294e, 0x294f, 0x2950, 0x2951, 0x2953, 
-	0x2954, 0x2955, 0x2957, 0x2958, 0x295a, 0x295b, 0x295d, 0x295f, 
-	0x2940, 0x2940, 0x2940, 0x2940, 0x2941, 0x2941, 0x2942, 0x2942, 
-	0x2943, 0x2944, 0x2945, 0x2945, 0x2946, 0x2947, 0x2948, 0x2949, 
-	0x294a, 0x294b, 0x294c, 0x294e, 0x294f, 0x2950, 0x2951, 0x2953, 
-	0x2954, 0x2955, 0x2957, 0x2958, 0x295a, 0x295b, 0x295d, 0x295f, 
-	0x2960, 0x2960, 0x2960, 0x2960, 0x2961, 0x2961, 0x2962, 0x2962, 
-	0x2963, 0x2964, 0x2965, 0x2965, 0x2966, 0x2967, 0x2968, 0x2969, 
-	0x296a, 0x296b, 0x296c, 0x296e, 0x296f, 0x2970, 0x2971, 0x2973, 
-	0x2974, 0x2975, 0x2977, 0x2978, 0x297a, 0x297b, 0x297d, 0x297f, 
-	0x2980, 0x2980, 0x2980, 0x2980, 0x2981, 0x2981, 0x2982, 0x2982, 
-	0x2983, 0x2984, 0x2985, 0x2985, 0x2986, 0x2987, 0x2988, 0x2989, 
-	0x298a, 0x298b, 0x298c, 0x298e, 0x298f, 0x2990, 0x2991, 0x2993, 
-	0x2994, 0x2995, 0x2997, 0x2998, 0x299a, 0x299b, 0x299d, 0x299f, 
-	0x29a0, 0x29a0, 0x29a0, 0x29a0, 0x29a1, 0x29a1, 0x29a2, 0x29a2, 
-	0x29a3, 0x29a4, 0x29a5, 0x29a5, 0x29a6, 0x29a7, 0x29a8, 0x29a9, 
-	0x29aa, 0x29ab, 0x29ac, 0x29ae, 0x29af, 0x29b0, 0x29b1, 0x29b3, 
-	0x29b4, 0x29b5, 0x29b7, 0x29b8, 0x29ba, 0x29bb, 0x29bd, 0x29bf, 
-	0x29c0, 0x29c0, 0x29c0, 0x29c0, 0x29c1, 0x29c1, 0x29c2, 0x29c2, 
-	0x29c3, 0x29c4, 0x29c5, 0x29c5, 0x29c6, 0x29c7, 0x29c8, 0x29c9, 
-	0x29ca, 0x29cb, 0x29cc, 0x29ce, 0x29cf, 0x29d0, 0x29d1, 0x29d3, 
-	0x29d4, 0x29d5, 0x29d7, 0x29d8, 0x29da, 0x29db, 0x29dd, 0x29df, 
-	0x29e0, 0x29e0, 0x29e0, 0x29e0, 0x29e1, 0x29e1, 0x29e2, 0x29e2, 
-	0x29e3, 0x29e4, 0x29e5, 0x29e5, 0x29e6, 0x29e7, 0x29e8, 0x29e9, 
-	0x29ea, 0x29eb, 0x29ec, 0x29ee, 0x29ef, 0x29f0, 0x29f1, 0x29f3, 
-	0x29f4, 0x29f5, 0x29f7, 0x29f8, 0x29fa, 0x29fb, 0x29fd, 0x29ff, 
-	0x2a00, 0x2a00, 0x2a00, 0x2a00, 0x2a01, 0x2a01, 0x2a02, 0x2a02, 
-	0x2a03, 0x2a04, 0x2a05, 0x2a05, 0x2a06, 0x2a07, 0x2a08, 0x2a09, 
-	0x2a0a, 0x2a0b, 0x2a0c, 0x2a0e, 0x2a0f, 0x2a10, 0x2a11, 0x2a13, 
-	0x2a14, 0x2a15, 0x2a17, 0x2a18, 0x2a1a, 0x2a1b, 0x2a1d, 0x2a1f, 
-	0x2a20, 0x2a20, 0x2a20, 0x2a20, 0x2a21, 0x2a21, 0x2a22, 0x2a22, 
-	0x2a23, 0x2a24, 0x2a25, 0x2a25, 0x2a26, 0x2a27, 0x2a28, 0x2a29, 
-	0x2a2a, 0x2a2b, 0x2a2c, 0x2a2e, 0x2a2f, 0x2a30, 0x2a31, 0x2a33, 
-	0x2a34, 0x2a35, 0x2a37, 0x2a38, 0x2a3a, 0x2a3b, 0x2a3d, 0x2a3f, 
-	0x2a40, 0x2a40, 0x2a40, 0x2a40, 0x2a41, 0x2a41, 0x2a42, 0x2a42, 
-	0x2a43, 0x2a44, 0x2a45, 0x2a45, 0x2a46, 0x2a47, 0x2a48, 0x2a49, 
-	0x2a4a, 0x2a4b, 0x2a4c, 0x2a4e, 0x2a4f, 0x2a50, 0x2a51, 0x2a53, 
-	0x2a54, 0x2a55, 0x2a57, 0x2a58, 0x2a5a, 0x2a5b, 0x2a5d, 0x2a5f, 
-	0x2a60, 0x2a60, 0x2a60, 0x2a60, 0x2a61, 0x2a61, 0x2a62, 0x2a62, 
-	0x2a63, 0x2a64, 0x2a65, 0x2a65, 0x2a66, 0x2a67, 0x2a68, 0x2a69, 
-	0x2a6a, 0x2a6b, 0x2a6c, 0x2a6e, 0x2a6f, 0x2a70, 0x2a71, 0x2a73, 
-	0x2a74, 0x2a75, 0x2a77, 0x2a78, 0x2a7a, 0x2a7b, 0x2a7d, 0x2a7f, 
-	0x2a80, 0x2a80, 0x2a80, 0x2a80, 0x2a81, 0x2a81, 0x2a82, 0x2a82, 
-	0x2a83, 0x2a84, 0x2a85, 0x2a85, 0x2a86, 0x2a87, 0x2a88, 0x2a89, 
-	0x2a8a, 0x2a8b, 0x2a8c, 0x2a8e, 0x2a8f, 0x2a90, 0x2a91, 0x2a93, 
-	0x2a94, 0x2a95, 0x2a97, 0x2a98, 0x2a9a, 0x2a9b, 0x2a9d, 0x2a9f, 
-	0x2aa0, 0x2aa0, 0x2aa0, 0x2aa0, 0x2aa1, 0x2aa1, 0x2aa2, 0x2aa2, 
-	0x2aa3, 0x2aa4, 0x2aa5, 0x2aa5, 0x2aa6, 0x2aa7, 0x2aa8, 0x2aa9, 
-	0x2aaa, 0x2aab, 0x2aac, 0x2aae, 0x2aaf, 0x2ab0, 0x2ab1, 0x2ab3, 
-	0x2ab4, 0x2ab5, 0x2ab7, 0x2ab8, 0x2aba, 0x2abb, 0x2abd, 0x2abf, 
-	0x2ac0, 0x2ac0, 0x2ac0, 0x2ac0, 0x2ac1, 0x2ac1, 0x2ac2, 0x2ac2, 
-	0x2ac3, 0x2ac4, 0x2ac5, 0x2ac5, 0x2ac6, 0x2ac7, 0x2ac8, 0x2ac9, 
-	0x2aca, 0x2acb, 0x2acc, 0x2ace, 0x2acf, 0x2ad0, 0x2ad1, 0x2ad3, 
-	0x2ad4, 0x2ad5, 0x2ad7, 0x2ad8, 0x2ada, 0x2adb, 0x2add, 0x2adf, 
-	0x2ae0, 0x2ae0, 0x2ae0, 0x2ae0, 0x2ae1, 0x2ae1, 0x2ae2, 0x2ae2, 
-	0x2ae3, 0x2ae4, 0x2ae5, 0x2ae5, 0x2ae6, 0x2ae7, 0x2ae8, 0x2ae9, 
-	0x2aea, 0x2aeb, 0x2aec, 0x2aee, 0x2aef, 0x2af0, 0x2af1, 0x2af3, 
-	0x2af4, 0x2af5, 0x2af7, 0x2af8, 0x2afa, 0x2afb, 0x2afd, 0x2aff, 
-	0x2b00, 0x2b00, 0x2b00, 0x2b00, 0x2b01, 0x2b01, 0x2b02, 0x2b02, 
-	0x2b03, 0x2b04, 0x2b05, 0x2b05, 0x2b06, 0x2b07, 0x2b08, 0x2b09, 
-	0x2b0a, 0x2b0b, 0x2b0c, 0x2b0e, 0x2b0f, 0x2b10, 0x2b11, 0x2b13, 
-	0x2b14, 0x2b15, 0x2b17, 0x2b18, 0x2b1a, 0x2b1b, 0x2b1d, 0x2b1f, 
-	0x2b20, 0x2b20, 0x2b20, 0x2b20, 0x2b21, 0x2b21, 0x2b22, 0x2b22, 
-	0x2b23, 0x2b24, 0x2b25, 0x2b25, 0x2b26, 0x2b27, 0x2b28, 0x2b29, 
-	0x2b2a, 0x2b2b, 0x2b2c, 0x2b2e, 0x2b2f, 0x2b30, 0x2b31, 0x2b33, 
-	0x2b34, 0x2b35, 0x2b37, 0x2b38, 0x2b3a, 0x2b3b, 0x2b3d, 0x2b3f, 
-	0x2b40, 0x2b40, 0x2b40, 0x2b40, 0x2b41, 0x2b41, 0x2b42, 0x2b42, 
-	0x2b43, 0x2b44, 0x2b45, 0x2b45, 0x2b46, 0x2b47, 0x2b48, 0x2b49, 
-	0x2b4a, 0x2b4b, 0x2b4c, 0x2b4e, 0x2b4f, 0x2b50, 0x2b51, 0x2b53, 
-	0x2b54, 0x2b55, 0x2b57, 0x2b58, 0x2b5a, 0x2b5b, 0x2b5d, 0x2b5f, 
-	0x2b80, 0x2b80, 0x2b80, 0x2b80, 0x2b81, 0x2b81, 0x2b82, 0x2b82, 
-	0x2b83, 0x2b84, 0x2b85, 0x2b85, 0x2b86, 0x2b87, 0x2b88, 0x2b89, 
-	0x2b8a, 0x2b8b, 0x2b8c, 0x2b8e, 0x2b8f, 0x2b90, 0x2b91, 0x2b93, 
-	0x2b94, 0x2b95, 0x2b97, 0x2b98, 0x2b9a, 0x2b9b, 0x2b9d, 0x2b9f, 
-	0x2ba0, 0x2ba0, 0x2ba0, 0x2ba0, 0x2ba1, 0x2ba1, 0x2ba2, 0x2ba2, 
-	0x2ba3, 0x2ba4, 0x2ba5, 0x2ba5, 0x2ba6, 0x2ba7, 0x2ba8, 0x2ba9, 
-	0x2baa, 0x2bab, 0x2bac, 0x2bae, 0x2baf, 0x2bb0, 0x2bb1, 0x2bb3, 
-	0x2bb4, 0x2bb5, 0x2bb7, 0x2bb8, 0x2bba, 0x2bbb, 0x2bbd, 0x2bbf, 
-	0x2bc0, 0x2bc0, 0x2bc0, 0x2bc0, 0x2bc1, 0x2bc1, 0x2bc2, 0x2bc2, 
-	0x2bc3, 0x2bc4, 0x2bc5, 0x2bc5, 0x2bc6, 0x2bc7, 0x2bc8, 0x2bc9, 
-	0x2bca, 0x2bcb, 0x2bcc, 0x2bce, 0x2bcf, 0x2bd0, 0x2bd1, 0x2bd3, 
-	0x2bd4, 0x2bd5, 0x2bd7, 0x2bd8, 0x2bda, 0x2bdb, 0x2bdd, 0x2bdf, 
-	0x2be0, 0x2be0, 0x2be0, 0x2be0, 0x2be1, 0x2be1, 0x2be2, 0x2be2, 
-	0x2be3, 0x2be4, 0x2be5, 0x2be5, 0x2be6, 0x2be7, 0x2be8, 0x2be9, 
-	0x2bea, 0x2beb, 0x2bec, 0x2bee, 0x2bef, 0x2bf0, 0x2bf1, 0x2bf3, 
-	0x2bf4, 0x2bf5, 0x2bf7, 0x2bf8, 0x2bfa, 0x2bfb, 0x2bfd, 0x2bff, 
-	0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c01, 0x2c01, 0x2c02, 0x2c02, 
-	0x2c03, 0x2c04, 0x2c05, 0x2c05, 0x2c06, 0x2c07, 0x2c08, 0x2c09, 
-	0x2c0a, 0x2c0b, 0x2c0c, 0x2c0e, 0x2c0f, 0x2c10, 0x2c11, 0x2c13, 
-	0x2c14, 0x2c15, 0x2c17, 0x2c18, 0x2c1a, 0x2c1b, 0x2c1d, 0x2c1f, 
-	0x2c40, 0x2c40, 0x2c40, 0x2c40, 0x2c41, 0x2c41, 0x2c42, 0x2c42, 
-	0x2c43, 0x2c44, 0x2c45, 0x2c45, 0x2c46, 0x2c47, 0x2c48, 0x2c49, 
-	0x2c4a, 0x2c4b, 0x2c4c, 0x2c4e, 0x2c4f, 0x2c50, 0x2c51, 0x2c53, 
-	0x2c54, 0x2c55, 0x2c57, 0x2c58, 0x2c5a, 0x2c5b, 0x2c5d, 0x2c5f, 
-	0x2c60, 0x2c60, 0x2c60, 0x2c60, 0x2c61, 0x2c61, 0x2c62, 0x2c62, 
-	0x2c63, 0x2c64, 0x2c65, 0x2c65, 0x2c66, 0x2c67, 0x2c68, 0x2c69, 
-	0x2c6a, 0x2c6b, 0x2c6c, 0x2c6e, 0x2c6f, 0x2c70, 0x2c71, 0x2c73, 
-	0x2c74, 0x2c75, 0x2c77, 0x2c78, 0x2c7a, 0x2c7b, 0x2c7d, 0x2c7f, 
-	0x2c80, 0x2c80, 0x2c80, 0x2c80, 0x2c81, 0x2c81, 0x2c82, 0x2c82, 
-	0x2c83, 0x2c84, 0x2c85, 0x2c85, 0x2c86, 0x2c87, 0x2c88, 0x2c89, 
-	0x2c8a, 0x2c8b, 0x2c8c, 0x2c8e, 0x2c8f, 0x2c90, 0x2c91, 0x2c93, 
-	0x2c94, 0x2c95, 0x2c97, 0x2c98, 0x2c9a, 0x2c9b, 0x2c9d, 0x2c9f, 
-	0x2cc0, 0x2cc0, 0x2cc0, 0x2cc0, 0x2cc1, 0x2cc1, 0x2cc2, 0x2cc2, 
-	0x2cc3, 0x2cc4, 0x2cc5, 0x2cc5, 0x2cc6, 0x2cc7, 0x2cc8, 0x2cc9, 
-	0x2cca, 0x2ccb, 0x2ccc, 0x2cce, 0x2ccf, 0x2cd0, 0x2cd1, 0x2cd3, 
-	0x2cd4, 0x2cd5, 0x2cd7, 0x2cd8, 0x2cda, 0x2cdb, 0x2cdd, 0x2cdf, 
-	0x2ce0, 0x2ce0, 0x2ce0, 0x2ce0, 0x2ce1, 0x2ce1, 0x2ce2, 0x2ce2, 
-	0x2ce3, 0x2ce4, 0x2ce5, 0x2ce5, 0x2ce6, 0x2ce7, 0x2ce8, 0x2ce9, 
-	0x2cea, 0x2ceb, 0x2cec, 0x2cee, 0x2cef, 0x2cf0, 0x2cf1, 0x2cf3, 
-	0x2cf4, 0x2cf5, 0x2cf7, 0x2cf8, 0x2cfa, 0x2cfb, 0x2cfd, 0x2cff, 
-	0x2d00, 0x2d00, 0x2d00, 0x2d00, 0x2d01, 0x2d01, 0x2d02, 0x2d02, 
-	0x2d03, 0x2d04, 0x2d05, 0x2d05, 0x2d06, 0x2d07, 0x2d08, 0x2d09, 
-	0x2d0a, 0x2d0b, 0x2d0c, 0x2d0e, 0x2d0f, 0x2d10, 0x2d11, 0x2d13, 
-	0x2d14, 0x2d15, 0x2d17, 0x2d18, 0x2d1a, 0x2d1b, 0x2d1d, 0x2d1f, 
-	0x2d40, 0x2d40, 0x2d40, 0x2d40, 0x2d41, 0x2d41, 0x2d42, 0x2d42, 
-	0x2d43, 0x2d44, 0x2d45, 0x2d45, 0x2d46, 0x2d47, 0x2d48, 0x2d49, 
-	0x2d4a, 0x2d4b, 0x2d4c, 0x2d4e, 0x2d4f, 0x2d50, 0x2d51, 0x2d53, 
-	0x2d54, 0x2d55, 0x2d57, 0x2d58, 0x2d5a, 0x2d5b, 0x2d5d, 0x2d5f, 
-	0x2d60, 0x2d60, 0x2d60, 0x2d60, 0x2d61, 0x2d61, 0x2d62, 0x2d62, 
-	0x2d63, 0x2d64, 0x2d65, 0x2d65, 0x2d66, 0x2d67, 0x2d68, 0x2d69, 
-	0x2d6a, 0x2d6b, 0x2d6c, 0x2d6e, 0x2d6f, 0x2d70, 0x2d71, 0x2d73, 
-	0x2d74, 0x2d75, 0x2d77, 0x2d78, 0x2d7a, 0x2d7b, 0x2d7d, 0x2d7f, 
-	0x2d80, 0x2d80, 0x2d80, 0x2d80, 0x2d81, 0x2d81, 0x2d82, 0x2d82, 
-	0x2d83, 0x2d84, 0x2d85, 0x2d85, 0x2d86, 0x2d87, 0x2d88, 0x2d89, 
-	0x2d8a, 0x2d8b, 0x2d8c, 0x2d8e, 0x2d8f, 0x2d90, 0x2d91, 0x2d93, 
-	0x2d94, 0x2d95, 0x2d97, 0x2d98, 0x2d9a, 0x2d9b, 0x2d9d, 0x2d9f, 
-	0x2dc0, 0x2dc0, 0x2dc0, 0x2dc0, 0x2dc1, 0x2dc1, 0x2dc2, 0x2dc2, 
-	0x2dc3, 0x2dc4, 0x2dc5, 0x2dc5, 0x2dc6, 0x2dc7, 0x2dc8, 0x2dc9, 
-	0x2dca, 0x2dcb, 0x2dcc, 0x2dce, 0x2dcf, 0x2dd0, 0x2dd1, 0x2dd3, 
-	0x2dd4, 0x2dd5, 0x2dd7, 0x2dd8, 0x2dda, 0x2ddb, 0x2ddd, 0x2ddf, 
-	0x2de0, 0x2de0, 0x2de0, 0x2de0, 0x2de1, 0x2de1, 0x2de2, 0x2de2, 
-	0x2de3, 0x2de4, 0x2de5, 0x2de5, 0x2de6, 0x2de7, 0x2de8, 0x2de9, 
-	0x2dea, 0x2deb, 0x2dec, 0x2dee, 0x2def, 0x2df0, 0x2df1, 0x2df3, 
-	0x2df4, 0x2df5, 0x2df7, 0x2df8, 0x2dfa, 0x2dfb, 0x2dfd, 0x2dff, 
-	0x2e20, 0x2e20, 0x2e20, 0x2e20, 0x2e21, 0x2e21, 0x2e22, 0x2e22, 
-	0x2e23, 0x2e24, 0x2e25, 0x2e25, 0x2e26, 0x2e27, 0x2e28, 0x2e29, 
-	0x2e2a, 0x2e2b, 0x2e2c, 0x2e2e, 0x2e2f, 0x2e30, 0x2e31, 0x2e33, 
-	0x2e34, 0x2e35, 0x2e37, 0x2e38, 0x2e3a, 0x2e3b, 0x2e3d, 0x2e3f, 
-	0x2e40, 0x2e40, 0x2e40, 0x2e40, 0x2e41, 0x2e41, 0x2e42, 0x2e42, 
-	0x2e43, 0x2e44, 0x2e45, 0x2e45, 0x2e46, 0x2e47, 0x2e48, 0x2e49, 
-	0x2e4a, 0x2e4b, 0x2e4c, 0x2e4e, 0x2e4f, 0x2e50, 0x2e51, 0x2e53, 
-	0x2e54, 0x2e55, 0x2e57, 0x2e58, 0x2e5a, 0x2e5b, 0x2e5d, 0x2e5f, 
-	0x2e80, 0x2e80, 0x2e80, 0x2e80, 0x2e81, 0x2e81, 0x2e82, 0x2e82, 
-	0x2e83, 0x2e84, 0x2e85, 0x2e85, 0x2e86, 0x2e87, 0x2e88, 0x2e89, 
-	0x2e8a, 0x2e8b, 0x2e8c, 0x2e8e, 0x2e8f, 0x2e90, 0x2e91, 0x2e93, 
-	0x2e94, 0x2e95, 0x2e97, 0x2e98, 0x2e9a, 0x2e9b, 0x2e9d, 0x2e9f, 
-	0x2ea0, 0x2ea0, 0x2ea0, 0x2ea0, 0x2ea1, 0x2ea1, 0x2ea2, 0x2ea2, 
-	0x2ea3, 0x2ea4, 0x2ea5, 0x2ea5, 0x2ea6, 0x2ea7, 0x2ea8, 0x2ea9, 
-	0x2eaa, 0x2eab, 0x2eac, 0x2eae, 0x2eaf, 0x2eb0, 0x2eb1, 0x2eb3, 
-	0x2eb4, 0x2eb5, 0x2eb7, 0x2eb8, 0x2eba, 0x2ebb, 0x2ebd, 0x2ebf, 
-	0x2ee0, 0x2ee0, 0x2ee0, 0x2ee0, 0x2ee1, 0x2ee1, 0x2ee2, 0x2ee2, 
-	0x2ee3, 0x2ee4, 0x2ee5, 0x2ee5, 0x2ee6, 0x2ee7, 0x2ee8, 0x2ee9, 
-	0x2eea, 0x2eeb, 0x2eec, 0x2eee, 0x2eef, 0x2ef0, 0x2ef1, 0x2ef3, 
-	0x2ef4, 0x2ef5, 0x2ef7, 0x2ef8, 0x2efa, 0x2efb, 0x2efd, 0x2eff, 
-	0x2f00, 0x2f00, 0x2f00, 0x2f00, 0x2f01, 0x2f01, 0x2f02, 0x2f02, 
-	0x2f03, 0x2f04, 0x2f05, 0x2f05, 0x2f06, 0x2f07, 0x2f08, 0x2f09, 
-	0x2f0a, 0x2f0b, 0x2f0c, 0x2f0e, 0x2f0f, 0x2f10, 0x2f11, 0x2f13, 
-	0x2f14, 0x2f15, 0x2f17, 0x2f18, 0x2f1a, 0x2f1b, 0x2f1d, 0x2f1f, 
-	0x2f40, 0x2f40, 0x2f40, 0x2f40, 0x2f41, 0x2f41, 0x2f42, 0x2f42, 
-	0x2f43, 0x2f44, 0x2f45, 0x2f45, 0x2f46, 0x2f47, 0x2f48, 0x2f49, 
-	0x2f4a, 0x2f4b, 0x2f4c, 0x2f4e, 0x2f4f, 0x2f50, 0x2f51, 0x2f53, 
-	0x2f54, 0x2f55, 0x2f57, 0x2f58, 0x2f5a, 0x2f5b, 0x2f5d, 0x2f5f, 
-	0x2f60, 0x2f60, 0x2f60, 0x2f60, 0x2f61, 0x2f61, 0x2f62, 0x2f62, 
-	0x2f63, 0x2f64, 0x2f65, 0x2f65, 0x2f66, 0x2f67, 0x2f68, 0x2f69, 
-	0x2f6a, 0x2f6b, 0x2f6c, 0x2f6e, 0x2f6f, 0x2f70, 0x2f71, 0x2f73, 
-	0x2f74, 0x2f75, 0x2f77, 0x2f78, 0x2f7a, 0x2f7b, 0x2f7d, 0x2f7f, 
-	0x2fa0, 0x2fa0, 0x2fa0, 0x2fa0, 0x2fa1, 0x2fa1, 0x2fa2, 0x2fa2, 
-	0x2fa3, 0x2fa4, 0x2fa5, 0x2fa5, 0x2fa6, 0x2fa7, 0x2fa8, 0x2fa9, 
-	0x2faa, 0x2fab, 0x2fac, 0x2fae, 0x2faf, 0x2fb0, 0x2fb1, 0x2fb3, 
-	0x2fb4, 0x2fb5, 0x2fb7, 0x2fb8, 0x2fba, 0x2fbb, 0x2fbd, 0x2fbf, 
-	0x2fe0, 0x2fe0, 0x2fe0, 0x2fe0, 0x2fe1, 0x2fe1, 0x2fe2, 0x2fe2, 
-	0x2fe3, 0x2fe4, 0x2fe5, 0x2fe5, 0x2fe6, 0x2fe7, 0x2fe8, 0x2fe9, 
-	0x2fea, 0x2feb, 0x2fec, 0x2fee, 0x2fef, 0x2ff0, 0x2ff1, 0x2ff3, 
-	0x2ff4, 0x2ff5, 0x2ff7, 0x2ff8, 0x2ffa, 0x2ffb, 0x2ffd, 0x2fff, 
-	0x2800, 0x2800, 0x2800, 0x2800, 0x2801, 0x2801, 0x2802, 0x2802, 
-	0x2803, 0x2804, 0x2805, 0x2805, 0x2806, 0x2807, 0x2808, 0x2809, 
-	0x280a, 0x280b, 0x280c, 0x280e, 0x280f, 0x2810, 0x2811, 0x2813, 
-	0x2814, 0x2815, 0x2817, 0x2818, 0x281a, 0x281b, 0x281d, 0x281f, 
-	0x2800, 0x2800, 0x2800, 0x2800, 0x2801, 0x2801, 0x2802, 0x2802, 
-	0x2803, 0x2804, 0x2805, 0x2805, 0x2806, 0x2807, 0x2808, 0x2809, 
-	0x280a, 0x280b, 0x280c, 0x280e, 0x280f, 0x2810, 0x2811, 0x2813, 
-	0x2814, 0x2815, 0x2817, 0x2818, 0x281a, 0x281b, 0x281d, 0x281f, 
-	0x2800, 0x2800, 0x2800, 0x2800, 0x2801, 0x2801, 0x2802, 0x2802, 
-	0x2803, 0x2804, 0x2805, 0x2805, 0x2806, 0x2807, 0x2808, 0x2809, 
-	0x280a, 0x280b, 0x280c, 0x280e, 0x280f, 0x2810, 0x2811, 0x2813, 
-	0x2814, 0x2815, 0x2817, 0x2818, 0x281a, 0x281b, 0x281d, 0x281f, 
-	0x2800, 0x2800, 0x2800, 0x2800, 0x2801, 0x2801, 0x2802, 0x2802, 
-	0x2803, 0x2804, 0x2805, 0x2805, 0x2806, 0x2807, 0x2808, 0x2809, 
-	0x280a, 0x280b, 0x280c, 0x280e, 0x280f, 0x2810, 0x2811, 0x2813, 
-	0x2814, 0x2815, 0x2817, 0x2818, 0x281a, 0x281b, 0x281d, 0x281f, 
-	0x2800, 0x2800, 0x2800, 0x2800, 0x2801, 0x2801, 0x2802, 0x2802, 
-	0x2803, 0x2804, 0x2805, 0x2805, 0x2806, 0x2807, 0x2808, 0x2809, 
-	0x280a, 0x280b, 0x280c, 0x280e, 0x280f, 0x2810, 0x2811, 0x2813, 
-	0x2814, 0x2815, 0x2817, 0x2818, 0x281a, 0x281b, 0x281d, 0x281f, 
-	0x2820, 0x2820, 0x2820, 0x2820, 0x2821, 0x2821, 0x2822, 0x2822, 
-	0x2823, 0x2824, 0x2825, 0x2825, 0x2826, 0x2827, 0x2828, 0x2829, 
-	0x282a, 0x282b, 0x282c, 0x282e, 0x282f, 0x2830, 0x2831, 0x2833, 
-	0x2834, 0x2835, 0x2837, 0x2838, 0x283a, 0x283b, 0x283d, 0x283f, 
-	0x2820, 0x2820, 0x2820, 0x2820, 0x2821, 0x2821, 0x2822, 0x2822, 
-	0x2823, 0x2824, 0x2825, 0x2825, 0x2826, 0x2827, 0x2828, 0x2829, 
-	0x282a, 0x282b, 0x282c, 0x282e, 0x282f, 0x2830, 0x2831, 0x2833, 
-	0x2834, 0x2835, 0x2837, 0x2838, 0x283a, 0x283b, 0x283d, 0x283f, 
-	0x2820, 0x2820, 0x2820, 0x2820, 0x2821, 0x2821, 0x2822, 0x2822, 
-	0x2823, 0x2824, 0x2825, 0x2825, 0x2826, 0x2827, 0x2828, 0x2829, 
-	0x282a, 0x282b, 0x282c, 0x282e, 0x282f, 0x2830, 0x2831, 0x2833, 
-	0x2834, 0x2835, 0x2837, 0x2838, 0x283a, 0x283b, 0x283d, 0x283f, 
-	0x2840, 0x2840, 0x2840, 0x2840, 0x2841, 0x2841, 0x2842, 0x2842, 
-	0x2843, 0x2844, 0x2845, 0x2845, 0x2846, 0x2847, 0x2848, 0x2849, 
-	0x284a, 0x284b, 0x284c, 0x284e, 0x284f, 0x2850, 0x2851, 0x2853, 
-	0x2854, 0x2855, 0x2857, 0x2858, 0x285a, 0x285b, 0x285d, 0x285f, 
-	0x2840, 0x2840, 0x2840, 0x2840, 0x2841, 0x2841, 0x2842, 0x2842, 
-	0x2843, 0x2844, 0x2845, 0x2845, 0x2846, 0x2847, 0x2848, 0x2849, 
-	0x284a, 0x284b, 0x284c, 0x284e, 0x284f, 0x2850, 0x2851, 0x2853, 
-	0x2854, 0x2855, 0x2857, 0x2858, 0x285a, 0x285b, 0x285d, 0x285f, 
-	0x2860, 0x2860, 0x2860, 0x2860, 0x2861, 0x2861, 0x2862, 0x2862, 
-	0x2863, 0x2864, 0x2865, 0x2865, 0x2866, 0x2867, 0x2868, 0x2869, 
-	0x286a, 0x286b, 0x286c, 0x286e, 0x286f, 0x2870, 0x2871, 0x2873, 
-	0x2874, 0x2875, 0x2877, 0x2878, 0x287a, 0x287b, 0x287d, 0x287f, 
-	0x2860, 0x2860, 0x2860, 0x2860, 0x2861, 0x2861, 0x2862, 0x2862, 
-	0x2863, 0x2864, 0x2865, 0x2865, 0x2866, 0x2867, 0x2868, 0x2869, 
-	0x286a, 0x286b, 0x286c, 0x286e, 0x286f, 0x2870, 0x2871, 0x2873, 
-	0x2874, 0x2875, 0x2877, 0x2878, 0x287a, 0x287b, 0x287d, 0x287f, 
-	0x2880, 0x2880, 0x2880, 0x2880, 0x2881, 0x2881, 0x2882, 0x2882, 
-	0x2883, 0x2884, 0x2885, 0x2885, 0x2886, 0x2887, 0x2888, 0x2889, 
-	0x288a, 0x288b, 0x288c, 0x288e, 0x288f, 0x2890, 0x2891, 0x2893, 
-	0x2894, 0x2895, 0x2897, 0x2898, 0x289a, 0x289b, 0x289d, 0x289f, 
-	0x28a0, 0x28a0, 0x28a0, 0x28a0, 0x28a1, 0x28a1, 0x28a2, 0x28a2, 
-	0x28a3, 0x28a4, 0x28a5, 0x28a5, 0x28a6, 0x28a7, 0x28a8, 0x28a9, 
-	0x28aa, 0x28ab, 0x28ac, 0x28ae, 0x28af, 0x28b0, 0x28b1, 0x28b3, 
-	0x28b4, 0x28b5, 0x28b7, 0x28b8, 0x28ba, 0x28bb, 0x28bd, 0x28bf, 
-	0x28a0, 0x28a0, 0x28a0, 0x28a0, 0x28a1, 0x28a1, 0x28a2, 0x28a2, 
-	0x28a3, 0x28a4, 0x28a5, 0x28a5, 0x28a6, 0x28a7, 0x28a8, 0x28a9, 
-	0x28aa, 0x28ab, 0x28ac, 0x28ae, 0x28af, 0x28b0, 0x28b1, 0x28b3, 
-	0x28b4, 0x28b5, 0x28b7, 0x28b8, 0x28ba, 0x28bb, 0x28bd, 0x28bf, 
-	0x28c0, 0x28c0, 0x28c0, 0x28c0, 0x28c1, 0x28c1, 0x28c2, 0x28c2, 
-	0x28c3, 0x28c4, 0x28c5, 0x28c5, 0x28c6, 0x28c7, 0x28c8, 0x28c9, 
-	0x28ca, 0x28cb, 0x28cc, 0x28ce, 0x28cf, 0x28d0, 0x28d1, 0x28d3, 
-	0x28d4, 0x28d5, 0x28d7, 0x28d8, 0x28da, 0x28db, 0x28dd, 0x28df, 
-	0x28e0, 0x28e0, 0x28e0, 0x28e0, 0x28e1, 0x28e1, 0x28e2, 0x28e2, 
-	0x28e3, 0x28e4, 0x28e5, 0x28e5, 0x28e6, 0x28e7, 0x28e8, 0x28e9, 
-	0x28ea, 0x28eb, 0x28ec, 0x28ee, 0x28ef, 0x28f0, 0x28f1, 0x28f3, 
-	0x28f4, 0x28f5, 0x28f7, 0x28f8, 0x28fa, 0x28fb, 0x28fd, 0x28ff, 
-	0x28e0, 0x28e0, 0x28e0, 0x28e0, 0x28e1, 0x28e1, 0x28e2, 0x28e2, 
-	0x28e3, 0x28e4, 0x28e5, 0x28e5, 0x28e6, 0x28e7, 0x28e8, 0x28e9, 
-	0x28ea, 0x28eb, 0x28ec, 0x28ee, 0x28ef, 0x28f0, 0x28f1, 0x28f3, 
-	0x28f4, 0x28f5, 0x28f7, 0x28f8, 0x28fa, 0x28fb, 0x28fd, 0x28ff, 
-	0x2900, 0x2900, 0x2900, 0x2900, 0x2901, 0x2901, 0x2902, 0x2902, 
-	0x2903, 0x2904, 0x2905, 0x2905, 0x2906, 0x2907, 0x2908, 0x2909, 
-	0x290a, 0x290b, 0x290c, 0x290e, 0x290f, 0x2910, 0x2911, 0x2913, 
-	0x2914, 0x2915, 0x2917, 0x2918, 0x291a, 0x291b, 0x291d, 0x291f, 
-	0x2920, 0x2920, 0x2920, 0x2920, 0x2921, 0x2921, 0x2922, 0x2922, 
-	0x2923, 0x2924, 0x2925, 0x2925, 0x2926, 0x2927, 0x2928, 0x2929, 
-	0x292a, 0x292b, 0x292c, 0x292e, 0x292f, 0x2930, 0x2931, 0x2933, 
-	0x2934, 0x2935, 0x2937, 0x2938, 0x293a, 0x293b, 0x293d, 0x293f, 
-	0x2940, 0x2940, 0x2940, 0x2940, 0x2941, 0x2941, 0x2942, 0x2942, 
-	0x2943, 0x2944, 0x2945, 0x2945, 0x2946, 0x2947, 0x2948, 0x2949, 
-	0x294a, 0x294b, 0x294c, 0x294e, 0x294f, 0x2950, 0x2951, 0x2953, 
-	0x2954, 0x2955, 0x2957, 0x2958, 0x295a, 0x295b, 0x295d, 0x295f, 
-	0x2940, 0x2940, 0x2940, 0x2940, 0x2941, 0x2941, 0x2942, 0x2942, 
-	0x2943, 0x2944, 0x2945, 0x2945, 0x2946, 0x2947, 0x2948, 0x2949, 
-	0x294a, 0x294b, 0x294c, 0x294e, 0x294f, 0x2950, 0x2951, 0x2953, 
-	0x2954, 0x2955, 0x2957, 0x2958, 0x295a, 0x295b, 0x295d, 0x295f, 
-	0x2960, 0x2960, 0x2960, 0x2960, 0x2961, 0x2961, 0x2962, 0x2962, 
-	0x2963, 0x2964, 0x2965, 0x2965, 0x2966, 0x2967, 0x2968, 0x2969, 
-	0x296a, 0x296b, 0x296c, 0x296e, 0x296f, 0x2970, 0x2971, 0x2973, 
-	0x2974, 0x2975, 0x2977, 0x2978, 0x297a, 0x297b, 0x297d, 0x297f, 
-	0x2980, 0x2980, 0x2980, 0x2980, 0x2981, 0x2981, 0x2982, 0x2982, 
-	0x2983, 0x2984, 0x2985, 0x2985, 0x2986, 0x2987, 0x2988, 0x2989, 
-	0x298a, 0x298b, 0x298c, 0x298e, 0x298f, 0x2990, 0x2991, 0x2993, 
-	0x2994, 0x2995, 0x2997, 0x2998, 0x299a, 0x299b, 0x299d, 0x299f, 
-	0x29a0, 0x29a0, 0x29a0, 0x29a0, 0x29a1, 0x29a1, 0x29a2, 0x29a2, 
-	0x29a3, 0x29a4, 0x29a5, 0x29a5, 0x29a6, 0x29a7, 0x29a8, 0x29a9, 
-	0x29aa, 0x29ab, 0x29ac, 0x29ae, 0x29af, 0x29b0, 0x29b1, 0x29b3, 
-	0x29b4, 0x29b5, 0x29b7, 0x29b8, 0x29ba, 0x29bb, 0x29bd, 0x29bf, 
-	0x29c0, 0x29c0, 0x29c0, 0x29c0, 0x29c1, 0x29c1, 0x29c2, 0x29c2, 
-	0x29c3, 0x29c4, 0x29c5, 0x29c5, 0x29c6, 0x29c7, 0x29c8, 0x29c9, 
-	0x29ca, 0x29cb, 0x29cc, 0x29ce, 0x29cf, 0x29d0, 0x29d1, 0x29d3, 
-	0x29d4, 0x29d5, 0x29d7, 0x29d8, 0x29da, 0x29db, 0x29dd, 0x29df, 
-	0x29e0, 0x29e0, 0x29e0, 0x29e0, 0x29e1, 0x29e1, 0x29e2, 0x29e2, 
-	0x29e3, 0x29e4, 0x29e5, 0x29e5, 0x29e6, 0x29e7, 0x29e8, 0x29e9, 
-	0x29ea, 0x29eb, 0x29ec, 0x29ee, 0x29ef, 0x29f0, 0x29f1, 0x29f3, 
-	0x29f4, 0x29f5, 0x29f7, 0x29f8, 0x29fa, 0x29fb, 0x29fd, 0x29ff, 
-	0x2a00, 0x2a00, 0x2a00, 0x2a00, 0x2a01, 0x2a01, 0x2a02, 0x2a02, 
-	0x2a03, 0x2a04, 0x2a05, 0x2a05, 0x2a06, 0x2a07, 0x2a08, 0x2a09, 
-	0x2a0a, 0x2a0b, 0x2a0c, 0x2a0e, 0x2a0f, 0x2a10, 0x2a11, 0x2a13, 
-	0x2a14, 0x2a15, 0x2a17, 0x2a18, 0x2a1a, 0x2a1b, 0x2a1d, 0x2a1f, 
-	0x2a20, 0x2a20, 0x2a20, 0x2a20, 0x2a21, 0x2a21, 0x2a22, 0x2a22, 
-	0x2a23, 0x2a24, 0x2a25, 0x2a25, 0x2a26, 0x2a27, 0x2a28, 0x2a29, 
-	0x2a2a, 0x2a2b, 0x2a2c, 0x2a2e, 0x2a2f, 0x2a30, 0x2a31, 0x2a33, 
-	0x2a34, 0x2a35, 0x2a37, 0x2a38, 0x2a3a, 0x2a3b, 0x2a3d, 0x2a3f, 
-	0x2a40, 0x2a40, 0x2a40, 0x2a40, 0x2a41, 0x2a41, 0x2a42, 0x2a42, 
-	0x2a43, 0x2a44, 0x2a45, 0x2a45, 0x2a46, 0x2a47, 0x2a48, 0x2a49, 
-	0x2a4a, 0x2a4b, 0x2a4c, 0x2a4e, 0x2a4f, 0x2a50, 0x2a51, 0x2a53, 
-	0x2a54, 0x2a55, 0x2a57, 0x2a58, 0x2a5a, 0x2a5b, 0x2a5d, 0x2a5f, 
-	0x2a60, 0x2a60, 0x2a60, 0x2a60, 0x2a61, 0x2a61, 0x2a62, 0x2a62, 
-	0x2a63, 0x2a64, 0x2a65, 0x2a65, 0x2a66, 0x2a67, 0x2a68, 0x2a69, 
-	0x2a6a, 0x2a6b, 0x2a6c, 0x2a6e, 0x2a6f, 0x2a70, 0x2a71, 0x2a73, 
-	0x2a74, 0x2a75, 0x2a77, 0x2a78, 0x2a7a, 0x2a7b, 0x2a7d, 0x2a7f, 
-	0x2a80, 0x2a80, 0x2a80, 0x2a80, 0x2a81, 0x2a81, 0x2a82, 0x2a82, 
-	0x2a83, 0x2a84, 0x2a85, 0x2a85, 0x2a86, 0x2a87, 0x2a88, 0x2a89, 
-	0x2a8a, 0x2a8b, 0x2a8c, 0x2a8e, 0x2a8f, 0x2a90, 0x2a91, 0x2a93, 
-	0x2a94, 0x2a95, 0x2a97, 0x2a98, 0x2a9a, 0x2a9b, 0x2a9d, 0x2a9f, 
-	0x2aa0, 0x2aa0, 0x2aa0, 0x2aa0, 0x2aa1, 0x2aa1, 0x2aa2, 0x2aa2, 
-	0x2aa3, 0x2aa4, 0x2aa5, 0x2aa5, 0x2aa6, 0x2aa7, 0x2aa8, 0x2aa9, 
-	0x2aaa, 0x2aab, 0x2aac, 0x2aae, 0x2aaf, 0x2ab0, 0x2ab1, 0x2ab3, 
-	0x2ab4, 0x2ab5, 0x2ab7, 0x2ab8, 0x2aba, 0x2abb, 0x2abd, 0x2abf, 
-	0x2ac0, 0x2ac0, 0x2ac0, 0x2ac0, 0x2ac1, 0x2ac1, 0x2ac2, 0x2ac2, 
-	0x2ac3, 0x2ac4, 0x2ac5, 0x2ac5, 0x2ac6, 0x2ac7, 0x2ac8, 0x2ac9, 
-	0x2aca, 0x2acb, 0x2acc, 0x2ace, 0x2acf, 0x2ad0, 0x2ad1, 0x2ad3, 
-	0x2ad4, 0x2ad5, 0x2ad7, 0x2ad8, 0x2ada, 0x2adb, 0x2add, 0x2adf, 
-	0x2ae0, 0x2ae0, 0x2ae0, 0x2ae0, 0x2ae1, 0x2ae1, 0x2ae2, 0x2ae2, 
-	0x2ae3, 0x2ae4, 0x2ae5, 0x2ae5, 0x2ae6, 0x2ae7, 0x2ae8, 0x2ae9, 
-	0x2aea, 0x2aeb, 0x2aec, 0x2aee, 0x2aef, 0x2af0, 0x2af1, 0x2af3, 
-	0x2af4, 0x2af5, 0x2af7, 0x2af8, 0x2afa, 0x2afb, 0x2afd, 0x2aff, 
-	0x2b00, 0x2b00, 0x2b00, 0x2b00, 0x2b01, 0x2b01, 0x2b02, 0x2b02, 
-	0x2b03, 0x2b04, 0x2b05, 0x2b05, 0x2b06, 0x2b07, 0x2b08, 0x2b09, 
-	0x2b0a, 0x2b0b, 0x2b0c, 0x2b0e, 0x2b0f, 0x2b10, 0x2b11, 0x2b13, 
-	0x2b14, 0x2b15, 0x2b17, 0x2b18, 0x2b1a, 0x2b1b, 0x2b1d, 0x2b1f, 
-	0x2b20, 0x2b20, 0x2b20, 0x2b20, 0x2b21, 0x2b21, 0x2b22, 0x2b22, 
-	0x2b23, 0x2b24, 0x2b25, 0x2b25, 0x2b26, 0x2b27, 0x2b28, 0x2b29, 
-	0x2b2a, 0x2b2b, 0x2b2c, 0x2b2e, 0x2b2f, 0x2b30, 0x2b31, 0x2b33, 
-	0x2b34, 0x2b35, 0x2b37, 0x2b38, 0x2b3a, 0x2b3b, 0x2b3d, 0x2b3f, 
-	0x2b40, 0x2b40, 0x2b40, 0x2b40, 0x2b41, 0x2b41, 0x2b42, 0x2b42, 
-	0x2b43, 0x2b44, 0x2b45, 0x2b45, 0x2b46, 0x2b47, 0x2b48, 0x2b49, 
-	0x2b4a, 0x2b4b, 0x2b4c, 0x2b4e, 0x2b4f, 0x2b50, 0x2b51, 0x2b53, 
-	0x2b54, 0x2b55, 0x2b57, 0x2b58, 0x2b5a, 0x2b5b, 0x2b5d, 0x2b5f, 
-	0x2b80, 0x2b80, 0x2b80, 0x2b80, 0x2b81, 0x2b81, 0x2b82, 0x2b82, 
-	0x2b83, 0x2b84, 0x2b85, 0x2b85, 0x2b86, 0x2b87, 0x2b88, 0x2b89, 
-	0x2b8a, 0x2b8b, 0x2b8c, 0x2b8e, 0x2b8f, 0x2b90, 0x2b91, 0x2b93, 
-	0x2b94, 0x2b95, 0x2b97, 0x2b98, 0x2b9a, 0x2b9b, 0x2b9d, 0x2b9f, 
-	0x2ba0, 0x2ba0, 0x2ba0, 0x2ba0, 0x2ba1, 0x2ba1, 0x2ba2, 0x2ba2, 
-	0x2ba3, 0x2ba4, 0x2ba5, 0x2ba5, 0x2ba6, 0x2ba7, 0x2ba8, 0x2ba9, 
-	0x2baa, 0x2bab, 0x2bac, 0x2bae, 0x2baf, 0x2bb0, 0x2bb1, 0x2bb3, 
-	0x2bb4, 0x2bb5, 0x2bb7, 0x2bb8, 0x2bba, 0x2bbb, 0x2bbd, 0x2bbf, 
-	0x2bc0, 0x2bc0, 0x2bc0, 0x2bc0, 0x2bc1, 0x2bc1, 0x2bc2, 0x2bc2, 
-	0x2bc3, 0x2bc4, 0x2bc5, 0x2bc5, 0x2bc6, 0x2bc7, 0x2bc8, 0x2bc9, 
-	0x2bca, 0x2bcb, 0x2bcc, 0x2bce, 0x2bcf, 0x2bd0, 0x2bd1, 0x2bd3, 
-	0x2bd4, 0x2bd5, 0x2bd7, 0x2bd8, 0x2bda, 0x2bdb, 0x2bdd, 0x2bdf, 
-	0x2be0, 0x2be0, 0x2be0, 0x2be0, 0x2be1, 0x2be1, 0x2be2, 0x2be2, 
-	0x2be3, 0x2be4, 0x2be5, 0x2be5, 0x2be6, 0x2be7, 0x2be8, 0x2be9, 
-	0x2bea, 0x2beb, 0x2bec, 0x2bee, 0x2bef, 0x2bf0, 0x2bf1, 0x2bf3, 
-	0x2bf4, 0x2bf5, 0x2bf7, 0x2bf8, 0x2bfa, 0x2bfb, 0x2bfd, 0x2bff, 
-	0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c01, 0x2c01, 0x2c02, 0x2c02, 
-	0x2c03, 0x2c04, 0x2c05, 0x2c05, 0x2c06, 0x2c07, 0x2c08, 0x2c09, 
-	0x2c0a, 0x2c0b, 0x2c0c, 0x2c0e, 0x2c0f, 0x2c10, 0x2c11, 0x2c13, 
-	0x2c14, 0x2c15, 0x2c17, 0x2c18, 0x2c1a, 0x2c1b, 0x2c1d, 0x2c1f, 
-	0x2c40, 0x2c40, 0x2c40, 0x2c40, 0x2c41, 0x2c41, 0x2c42, 0x2c42, 
-	0x2c43, 0x2c44, 0x2c45, 0x2c45, 0x2c46, 0x2c47, 0x2c48, 0x2c49, 
-	0x2c4a, 0x2c4b, 0x2c4c, 0x2c4e, 0x2c4f, 0x2c50, 0x2c51, 0x2c53, 
-	0x2c54, 0x2c55, 0x2c57, 0x2c58, 0x2c5a, 0x2c5b, 0x2c5d, 0x2c5f, 
-	0x2c60, 0x2c60, 0x2c60, 0x2c60, 0x2c61, 0x2c61, 0x2c62, 0x2c62, 
-	0x2c63, 0x2c64, 0x2c65, 0x2c65, 0x2c66, 0x2c67, 0x2c68, 0x2c69, 
-	0x2c6a, 0x2c6b, 0x2c6c, 0x2c6e, 0x2c6f, 0x2c70, 0x2c71, 0x2c73, 
-	0x2c74, 0x2c75, 0x2c77, 0x2c78, 0x2c7a, 0x2c7b, 0x2c7d, 0x2c7f, 
-	0x2c80, 0x2c80, 0x2c80, 0x2c80, 0x2c81, 0x2c81, 0x2c82, 0x2c82, 
-	0x2c83, 0x2c84, 0x2c85, 0x2c85, 0x2c86, 0x2c87, 0x2c88, 0x2c89, 
-	0x2c8a, 0x2c8b, 0x2c8c, 0x2c8e, 0x2c8f, 0x2c90, 0x2c91, 0x2c93, 
-	0x2c94, 0x2c95, 0x2c97, 0x2c98, 0x2c9a, 0x2c9b, 0x2c9d, 0x2c9f, 
-	0x2cc0, 0x2cc0, 0x2cc0, 0x2cc0, 0x2cc1, 0x2cc1, 0x2cc2, 0x2cc2, 
-	0x2cc3, 0x2cc4, 0x2cc5, 0x2cc5, 0x2cc6, 0x2cc7, 0x2cc8, 0x2cc9, 
-	0x2cca, 0x2ccb, 0x2ccc, 0x2cce, 0x2ccf, 0x2cd0, 0x2cd1, 0x2cd3, 
-	0x2cd4, 0x2cd5, 0x2cd7, 0x2cd8, 0x2cda, 0x2cdb, 0x2cdd, 0x2cdf, 
-	0x2ce0, 0x2ce0, 0x2ce0, 0x2ce0, 0x2ce1, 0x2ce1, 0x2ce2, 0x2ce2, 
-	0x2ce3, 0x2ce4, 0x2ce5, 0x2ce5, 0x2ce6, 0x2ce7, 0x2ce8, 0x2ce9, 
-	0x2cea, 0x2ceb, 0x2cec, 0x2cee, 0x2cef, 0x2cf0, 0x2cf1, 0x2cf3, 
-	0x2cf4, 0x2cf5, 0x2cf7, 0x2cf8, 0x2cfa, 0x2cfb, 0x2cfd, 0x2cff, 
-	0x2d00, 0x2d00, 0x2d00, 0x2d00, 0x2d01, 0x2d01, 0x2d02, 0x2d02, 
-	0x2d03, 0x2d04, 0x2d05, 0x2d05, 0x2d06, 0x2d07, 0x2d08, 0x2d09, 
-	0x2d0a, 0x2d0b, 0x2d0c, 0x2d0e, 0x2d0f, 0x2d10, 0x2d11, 0x2d13, 
-	0x2d14, 0x2d15, 0x2d17, 0x2d18, 0x2d1a, 0x2d1b, 0x2d1d, 0x2d1f, 
-	0x2d40, 0x2d40, 0x2d40, 0x2d40, 0x2d41, 0x2d41, 0x2d42, 0x2d42, 
-	0x2d43, 0x2d44, 0x2d45, 0x2d45, 0x2d46, 0x2d47, 0x2d48, 0x2d49, 
-	0x2d4a, 0x2d4b, 0x2d4c, 0x2d4e, 0x2d4f, 0x2d50, 0x2d51, 0x2d53, 
-	0x2d54, 0x2d55, 0x2d57, 0x2d58, 0x2d5a, 0x2d5b, 0x2d5d, 0x2d5f, 
-	0x2d60, 0x2d60, 0x2d60, 0x2d60, 0x2d61, 0x2d61, 0x2d62, 0x2d62, 
-	0x2d63, 0x2d64, 0x2d65, 0x2d65, 0x2d66, 0x2d67, 0x2d68, 0x2d69, 
-	0x2d6a, 0x2d6b, 0x2d6c, 0x2d6e, 0x2d6f, 0x2d70, 0x2d71, 0x2d73, 
-	0x2d74, 0x2d75, 0x2d77, 0x2d78, 0x2d7a, 0x2d7b, 0x2d7d, 0x2d7f, 
-	0x2d80, 0x2d80, 0x2d80, 0x2d80, 0x2d81, 0x2d81, 0x2d82, 0x2d82, 
-	0x2d83, 0x2d84, 0x2d85, 0x2d85, 0x2d86, 0x2d87, 0x2d88, 0x2d89, 
-	0x2d8a, 0x2d8b, 0x2d8c, 0x2d8e, 0x2d8f, 0x2d90, 0x2d91, 0x2d93, 
-	0x2d94, 0x2d95, 0x2d97, 0x2d98, 0x2d9a, 0x2d9b, 0x2d9d, 0x2d9f, 
-	0x2dc0, 0x2dc0, 0x2dc0, 0x2dc0, 0x2dc1, 0x2dc1, 0x2dc2, 0x2dc2, 
-	0x2dc3, 0x2dc4, 0x2dc5, 0x2dc5, 0x2dc6, 0x2dc7, 0x2dc8, 0x2dc9, 
-	0x2dca, 0x2dcb, 0x2dcc, 0x2dce, 0x2dcf, 0x2dd0, 0x2dd1, 0x2dd3, 
-	0x2dd4, 0x2dd5, 0x2dd7, 0x2dd8, 0x2dda, 0x2ddb, 0x2ddd, 0x2ddf, 
-	0x2de0, 0x2de0, 0x2de0, 0x2de0, 0x2de1, 0x2de1, 0x2de2, 0x2de2, 
-	0x2de3, 0x2de4, 0x2de5, 0x2de5, 0x2de6, 0x2de7, 0x2de8, 0x2de9, 
-	0x2dea, 0x2deb, 0x2dec, 0x2dee, 0x2def, 0x2df0, 0x2df1, 0x2df3, 
-	0x2df4, 0x2df5, 0x2df7, 0x2df8, 0x2dfa, 0x2dfb, 0x2dfd, 0x2dff, 
-	0x2e20, 0x2e20, 0x2e20, 0x2e20, 0x2e21, 0x2e21, 0x2e22, 0x2e22, 
-	0x2e23, 0x2e24, 0x2e25, 0x2e25, 0x2e26, 0x2e27, 0x2e28, 0x2e29, 
-	0x2e2a, 0x2e2b, 0x2e2c, 0x2e2e, 0x2e2f, 0x2e30, 0x2e31, 0x2e33, 
-	0x2e34, 0x2e35, 0x2e37, 0x2e38, 0x2e3a, 0x2e3b, 0x2e3d, 0x2e3f, 
-	0x2e40, 0x2e40, 0x2e40, 0x2e40, 0x2e41, 0x2e41, 0x2e42, 0x2e42, 
-	0x2e43, 0x2e44, 0x2e45, 0x2e45, 0x2e46, 0x2e47, 0x2e48, 0x2e49, 
-	0x2e4a, 0x2e4b, 0x2e4c, 0x2e4e, 0x2e4f, 0x2e50, 0x2e51, 0x2e53, 
-	0x2e54, 0x2e55, 0x2e57, 0x2e58, 0x2e5a, 0x2e5b, 0x2e5d, 0x2e5f, 
-	0x2e80, 0x2e80, 0x2e80, 0x2e80, 0x2e81, 0x2e81, 0x2e82, 0x2e82, 
-	0x2e83, 0x2e84, 0x2e85, 0x2e85, 0x2e86, 0x2e87, 0x2e88, 0x2e89, 
-	0x2e8a, 0x2e8b, 0x2e8c, 0x2e8e, 0x2e8f, 0x2e90, 0x2e91, 0x2e93, 
-	0x2e94, 0x2e95, 0x2e97, 0x2e98, 0x2e9a, 0x2e9b, 0x2e9d, 0x2e9f, 
-	0x2ea0, 0x2ea0, 0x2ea0, 0x2ea0, 0x2ea1, 0x2ea1, 0x2ea2, 0x2ea2, 
-	0x2ea3, 0x2ea4, 0x2ea5, 0x2ea5, 0x2ea6, 0x2ea7, 0x2ea8, 0x2ea9, 
-	0x2eaa, 0x2eab, 0x2eac, 0x2eae, 0x2eaf, 0x2eb0, 0x2eb1, 0x2eb3, 
-	0x2eb4, 0x2eb5, 0x2eb7, 0x2eb8, 0x2eba, 0x2ebb, 0x2ebd, 0x2ebf, 
-	0x2ee0, 0x2ee0, 0x2ee0, 0x2ee0, 0x2ee1, 0x2ee1, 0x2ee2, 0x2ee2, 
-	0x2ee3, 0x2ee4, 0x2ee5, 0x2ee5, 0x2ee6, 0x2ee7, 0x2ee8, 0x2ee9, 
-	0x2eea, 0x2eeb, 0x2eec, 0x2eee, 0x2eef, 0x2ef0, 0x2ef1, 0x2ef3, 
-	0x2ef4, 0x2ef5, 0x2ef7, 0x2ef8, 0x2efa, 0x2efb, 0x2efd, 0x2eff, 
-	0x2f00, 0x2f00, 0x2f00, 0x2f00, 0x2f01, 0x2f01, 0x2f02, 0x2f02, 
-	0x2f03, 0x2f04, 0x2f05, 0x2f05, 0x2f06, 0x2f07, 0x2f08, 0x2f09, 
-	0x2f0a, 0x2f0b, 0x2f0c, 0x2f0e, 0x2f0f, 0x2f10, 0x2f11, 0x2f13, 
-	0x2f14, 0x2f15, 0x2f17, 0x2f18, 0x2f1a, 0x2f1b, 0x2f1d, 0x2f1f, 
-	0x2f40, 0x2f40, 0x2f40, 0x2f40, 0x2f41, 0x2f41, 0x2f42, 0x2f42, 
-	0x2f43, 0x2f44, 0x2f45, 0x2f45, 0x2f46, 0x2f47, 0x2f48, 0x2f49, 
-	0x2f4a, 0x2f4b, 0x2f4c, 0x2f4e, 0x2f4f, 0x2f50, 0x2f51, 0x2f53, 
-	0x2f54, 0x2f55, 0x2f57, 0x2f58, 0x2f5a, 0x2f5b, 0x2f5d, 0x2f5f, 
-	0x2f60, 0x2f60, 0x2f60, 0x2f60, 0x2f61, 0x2f61, 0x2f62, 0x2f62, 
-	0x2f63, 0x2f64, 0x2f65, 0x2f65, 0x2f66, 0x2f67, 0x2f68, 0x2f69, 
-	0x2f6a, 0x2f6b, 0x2f6c, 0x2f6e, 0x2f6f, 0x2f70, 0x2f71, 0x2f73, 
-	0x2f74, 0x2f75, 0x2f77, 0x2f78, 0x2f7a, 0x2f7b, 0x2f7d, 0x2f7f, 
-	0x2fa0, 0x2fa0, 0x2fa0, 0x2fa0, 0x2fa1, 0x2fa1, 0x2fa2, 0x2fa2, 
-	0x2fa3, 0x2fa4, 0x2fa5, 0x2fa5, 0x2fa6, 0x2fa7, 0x2fa8, 0x2fa9, 
-	0x2faa, 0x2fab, 0x2fac, 0x2fae, 0x2faf, 0x2fb0, 0x2fb1, 0x2fb3, 
-	0x2fb4, 0x2fb5, 0x2fb7, 0x2fb8, 0x2fba, 0x2fbb, 0x2fbd, 0x2fbf, 
-	0x2fe0, 0x2fe0, 0x2fe0, 0x2fe0, 0x2fe1, 0x2fe1, 0x2fe2, 0x2fe2, 
-	0x2fe3, 0x2fe4, 0x2fe5, 0x2fe5, 0x2fe6, 0x2fe7, 0x2fe8, 0x2fe9, 
-	0x2fea, 0x2feb, 0x2fec, 0x2fee, 0x2fef, 0x2ff0, 0x2ff1, 0x2ff3, 
-	0x2ff4, 0x2ff5, 0x2ff7, 0x2ff8, 0x2ffa, 0x2ffb, 0x2ffd, 0x2fff, 
-	0x3000, 0x3000, 0x3000, 0x3000, 0x3001, 0x3001, 0x3002, 0x3002, 
-	0x3003, 0x3004, 0x3005, 0x3005, 0x3006, 0x3007, 0x3008, 0x3009, 
-	0x300a, 0x300b, 0x300c, 0x300e, 0x300f, 0x3010, 0x3011, 0x3013, 
-	0x3014, 0x3015, 0x3017, 0x3018, 0x301a, 0x301b, 0x301d, 0x301f, 
-	0x3000, 0x3000, 0x3000, 0x3000, 0x3001, 0x3001, 0x3002, 0x3002, 
-	0x3003, 0x3004, 0x3005, 0x3005, 0x3006, 0x3007, 0x3008, 0x3009, 
-	0x300a, 0x300b, 0x300c, 0x300e, 0x300f, 0x3010, 0x3011, 0x3013, 
-	0x3014, 0x3015, 0x3017, 0x3018, 0x301a, 0x301b, 0x301d, 0x301f, 
-	0x3000, 0x3000, 0x3000, 0x3000, 0x3001, 0x3001, 0x3002, 0x3002, 
-	0x3003, 0x3004, 0x3005, 0x3005, 0x3006, 0x3007, 0x3008, 0x3009, 
-	0x300a, 0x300b, 0x300c, 0x300e, 0x300f, 0x3010, 0x3011, 0x3013, 
-	0x3014, 0x3015, 0x3017, 0x3018, 0x301a, 0x301b, 0x301d, 0x301f, 
-	0x3000, 0x3000, 0x3000, 0x3000, 0x3001, 0x3001, 0x3002, 0x3002, 
-	0x3003, 0x3004, 0x3005, 0x3005, 0x3006, 0x3007, 0x3008, 0x3009, 
-	0x300a, 0x300b, 0x300c, 0x300e, 0x300f, 0x3010, 0x3011, 0x3013, 
-	0x3014, 0x3015, 0x3017, 0x3018, 0x301a, 0x301b, 0x301d, 0x301f, 
-	0x3000, 0x3000, 0x3000, 0x3000, 0x3001, 0x3001, 0x3002, 0x3002, 
-	0x3003, 0x3004, 0x3005, 0x3005, 0x3006, 0x3007, 0x3008, 0x3009, 
-	0x300a, 0x300b, 0x300c, 0x300e, 0x300f, 0x3010, 0x3011, 0x3013, 
-	0x3014, 0x3015, 0x3017, 0x3018, 0x301a, 0x301b, 0x301d, 0x301f, 
-	0x3020, 0x3020, 0x3020, 0x3020, 0x3021, 0x3021, 0x3022, 0x3022, 
-	0x3023, 0x3024, 0x3025, 0x3025, 0x3026, 0x3027, 0x3028, 0x3029, 
-	0x302a, 0x302b, 0x302c, 0x302e, 0x302f, 0x3030, 0x3031, 0x3033, 
-	0x3034, 0x3035, 0x3037, 0x3038, 0x303a, 0x303b, 0x303d, 0x303f, 
-	0x3020, 0x3020, 0x3020, 0x3020, 0x3021, 0x3021, 0x3022, 0x3022, 
-	0x3023, 0x3024, 0x3025, 0x3025, 0x3026, 0x3027, 0x3028, 0x3029, 
-	0x302a, 0x302b, 0x302c, 0x302e, 0x302f, 0x3030, 0x3031, 0x3033, 
-	0x3034, 0x3035, 0x3037, 0x3038, 0x303a, 0x303b, 0x303d, 0x303f, 
-	0x3020, 0x3020, 0x3020, 0x3020, 0x3021, 0x3021, 0x3022, 0x3022, 
-	0x3023, 0x3024, 0x3025, 0x3025, 0x3026, 0x3027, 0x3028, 0x3029, 
-	0x302a, 0x302b, 0x302c, 0x302e, 0x302f, 0x3030, 0x3031, 0x3033, 
-	0x3034, 0x3035, 0x3037, 0x3038, 0x303a, 0x303b, 0x303d, 0x303f, 
-	0x3040, 0x3040, 0x3040, 0x3040, 0x3041, 0x3041, 0x3042, 0x3042, 
-	0x3043, 0x3044, 0x3045, 0x3045, 0x3046, 0x3047, 0x3048, 0x3049, 
-	0x304a, 0x304b, 0x304c, 0x304e, 0x304f, 0x3050, 0x3051, 0x3053, 
-	0x3054, 0x3055, 0x3057, 0x3058, 0x305a, 0x305b, 0x305d, 0x305f, 
-	0x3040, 0x3040, 0x3040, 0x3040, 0x3041, 0x3041, 0x3042, 0x3042, 
-	0x3043, 0x3044, 0x3045, 0x3045, 0x3046, 0x3047, 0x3048, 0x3049, 
-	0x304a, 0x304b, 0x304c, 0x304e, 0x304f, 0x3050, 0x3051, 0x3053, 
-	0x3054, 0x3055, 0x3057, 0x3058, 0x305a, 0x305b, 0x305d, 0x305f, 
-	0x3060, 0x3060, 0x3060, 0x3060, 0x3061, 0x3061, 0x3062, 0x3062, 
-	0x3063, 0x3064, 0x3065, 0x3065, 0x3066, 0x3067, 0x3068, 0x3069, 
-	0x306a, 0x306b, 0x306c, 0x306e, 0x306f, 0x3070, 0x3071, 0x3073, 
-	0x3074, 0x3075, 0x3077, 0x3078, 0x307a, 0x307b, 0x307d, 0x307f, 
-	0x3060, 0x3060, 0x3060, 0x3060, 0x3061, 0x3061, 0x3062, 0x3062, 
-	0x3063, 0x3064, 0x3065, 0x3065, 0x3066, 0x3067, 0x3068, 0x3069, 
-	0x306a, 0x306b, 0x306c, 0x306e, 0x306f, 0x3070, 0x3071, 0x3073, 
-	0x3074, 0x3075, 0x3077, 0x3078, 0x307a, 0x307b, 0x307d, 0x307f, 
-	0x3080, 0x3080, 0x3080, 0x3080, 0x3081, 0x3081, 0x3082, 0x3082, 
-	0x3083, 0x3084, 0x3085, 0x3085, 0x3086, 0x3087, 0x3088, 0x3089, 
-	0x308a, 0x308b, 0x308c, 0x308e, 0x308f, 0x3090, 0x3091, 0x3093, 
-	0x3094, 0x3095, 0x3097, 0x3098, 0x309a, 0x309b, 0x309d, 0x309f, 
-	0x30a0, 0x30a0, 0x30a0, 0x30a0, 0x30a1, 0x30a1, 0x30a2, 0x30a2, 
-	0x30a3, 0x30a4, 0x30a5, 0x30a5, 0x30a6, 0x30a7, 0x30a8, 0x30a9, 
-	0x30aa, 0x30ab, 0x30ac, 0x30ae, 0x30af, 0x30b0, 0x30b1, 0x30b3, 
-	0x30b4, 0x30b5, 0x30b7, 0x30b8, 0x30ba, 0x30bb, 0x30bd, 0x30bf, 
-	0x30a0, 0x30a0, 0x30a0, 0x30a0, 0x30a1, 0x30a1, 0x30a2, 0x30a2, 
-	0x30a3, 0x30a4, 0x30a5, 0x30a5, 0x30a6, 0x30a7, 0x30a8, 0x30a9, 
-	0x30aa, 0x30ab, 0x30ac, 0x30ae, 0x30af, 0x30b0, 0x30b1, 0x30b3, 
-	0x30b4, 0x30b5, 0x30b7, 0x30b8, 0x30ba, 0x30bb, 0x30bd, 0x30bf, 
-	0x30c0, 0x30c0, 0x30c0, 0x30c0, 0x30c1, 0x30c1, 0x30c2, 0x30c2, 
-	0x30c3, 0x30c4, 0x30c5, 0x30c5, 0x30c6, 0x30c7, 0x30c8, 0x30c9, 
-	0x30ca, 0x30cb, 0x30cc, 0x30ce, 0x30cf, 0x30d0, 0x30d1, 0x30d3, 
-	0x30d4, 0x30d5, 0x30d7, 0x30d8, 0x30da, 0x30db, 0x30dd, 0x30df, 
-	0x30e0, 0x30e0, 0x30e0, 0x30e0, 0x30e1, 0x30e1, 0x30e2, 0x30e2, 
-	0x30e3, 0x30e4, 0x30e5, 0x30e5, 0x30e6, 0x30e7, 0x30e8, 0x30e9, 
-	0x30ea, 0x30eb, 0x30ec, 0x30ee, 0x30ef, 0x30f0, 0x30f1, 0x30f3, 
-	0x30f4, 0x30f5, 0x30f7, 0x30f8, 0x30fa, 0x30fb, 0x30fd, 0x30ff, 
-	0x30e0, 0x30e0, 0x30e0, 0x30e0, 0x30e1, 0x30e1, 0x30e2, 0x30e2, 
-	0x30e3, 0x30e4, 0x30e5, 0x30e5, 0x30e6, 0x30e7, 0x30e8, 0x30e9, 
-	0x30ea, 0x30eb, 0x30ec, 0x30ee, 0x30ef, 0x30f0, 0x30f1, 0x30f3, 
-	0x30f4, 0x30f5, 0x30f7, 0x30f8, 0x30fa, 0x30fb, 0x30fd, 0x30ff, 
-	0x3100, 0x3100, 0x3100, 0x3100, 0x3101, 0x3101, 0x3102, 0x3102, 
-	0x3103, 0x3104, 0x3105, 0x3105, 0x3106, 0x3107, 0x3108, 0x3109, 
-	0x310a, 0x310b, 0x310c, 0x310e, 0x310f, 0x3110, 0x3111, 0x3113, 
-	0x3114, 0x3115, 0x3117, 0x3118, 0x311a, 0x311b, 0x311d, 0x311f, 
-	0x3120, 0x3120, 0x3120, 0x3120, 0x3121, 0x3121, 0x3122, 0x3122, 
-	0x3123, 0x3124, 0x3125, 0x3125, 0x3126, 0x3127, 0x3128, 0x3129, 
-	0x312a, 0x312b, 0x312c, 0x312e, 0x312f, 0x3130, 0x3131, 0x3133, 
-	0x3134, 0x3135, 0x3137, 0x3138, 0x313a, 0x313b, 0x313d, 0x313f, 
-	0x3140, 0x3140, 0x3140, 0x3140, 0x3141, 0x3141, 0x3142, 0x3142, 
-	0x3143, 0x3144, 0x3145, 0x3145, 0x3146, 0x3147, 0x3148, 0x3149, 
-	0x314a, 0x314b, 0x314c, 0x314e, 0x314f, 0x3150, 0x3151, 0x3153, 
-	0x3154, 0x3155, 0x3157, 0x3158, 0x315a, 0x315b, 0x315d, 0x315f, 
-	0x3140, 0x3140, 0x3140, 0x3140, 0x3141, 0x3141, 0x3142, 0x3142, 
-	0x3143, 0x3144, 0x3145, 0x3145, 0x3146, 0x3147, 0x3148, 0x3149, 
-	0x314a, 0x314b, 0x314c, 0x314e, 0x314f, 0x3150, 0x3151, 0x3153, 
-	0x3154, 0x3155, 0x3157, 0x3158, 0x315a, 0x315b, 0x315d, 0x315f, 
-	0x3160, 0x3160, 0x3160, 0x3160, 0x3161, 0x3161, 0x3162, 0x3162, 
-	0x3163, 0x3164, 0x3165, 0x3165, 0x3166, 0x3167, 0x3168, 0x3169, 
-	0x316a, 0x316b, 0x316c, 0x316e, 0x316f, 0x3170, 0x3171, 0x3173, 
-	0x3174, 0x3175, 0x3177, 0x3178, 0x317a, 0x317b, 0x317d, 0x317f, 
-	0x3180, 0x3180, 0x3180, 0x3180, 0x3181, 0x3181, 0x3182, 0x3182, 
-	0x3183, 0x3184, 0x3185, 0x3185, 0x3186, 0x3187, 0x3188, 0x3189, 
-	0x318a, 0x318b, 0x318c, 0x318e, 0x318f, 0x3190, 0x3191, 0x3193, 
-	0x3194, 0x3195, 0x3197, 0x3198, 0x319a, 0x319b, 0x319d, 0x319f, 
-	0x31a0, 0x31a0, 0x31a0, 0x31a0, 0x31a1, 0x31a1, 0x31a2, 0x31a2, 
-	0x31a3, 0x31a4, 0x31a5, 0x31a5, 0x31a6, 0x31a7, 0x31a8, 0x31a9, 
-	0x31aa, 0x31ab, 0x31ac, 0x31ae, 0x31af, 0x31b0, 0x31b1, 0x31b3, 
-	0x31b4, 0x31b5, 0x31b7, 0x31b8, 0x31ba, 0x31bb, 0x31bd, 0x31bf, 
-	0x31c0, 0x31c0, 0x31c0, 0x31c0, 0x31c1, 0x31c1, 0x31c2, 0x31c2, 
-	0x31c3, 0x31c4, 0x31c5, 0x31c5, 0x31c6, 0x31c7, 0x31c8, 0x31c9, 
-	0x31ca, 0x31cb, 0x31cc, 0x31ce, 0x31cf, 0x31d0, 0x31d1, 0x31d3, 
-	0x31d4, 0x31d5, 0x31d7, 0x31d8, 0x31da, 0x31db, 0x31dd, 0x31df, 
-	0x31e0, 0x31e0, 0x31e0, 0x31e0, 0x31e1, 0x31e1, 0x31e2, 0x31e2, 
-	0x31e3, 0x31e4, 0x31e5, 0x31e5, 0x31e6, 0x31e7, 0x31e8, 0x31e9, 
-	0x31ea, 0x31eb, 0x31ec, 0x31ee, 0x31ef, 0x31f0, 0x31f1, 0x31f3, 
-	0x31f4, 0x31f5, 0x31f7, 0x31f8, 0x31fa, 0x31fb, 0x31fd, 0x31ff, 
-	0x3200, 0x3200, 0x3200, 0x3200, 0x3201, 0x3201, 0x3202, 0x3202, 
-	0x3203, 0x3204, 0x3205, 0x3205, 0x3206, 0x3207, 0x3208, 0x3209, 
-	0x320a, 0x320b, 0x320c, 0x320e, 0x320f, 0x3210, 0x3211, 0x3213, 
-	0x3214, 0x3215, 0x3217, 0x3218, 0x321a, 0x321b, 0x321d, 0x321f, 
-	0x3220, 0x3220, 0x3220, 0x3220, 0x3221, 0x3221, 0x3222, 0x3222, 
-	0x3223, 0x3224, 0x3225, 0x3225, 0x3226, 0x3227, 0x3228, 0x3229, 
-	0x322a, 0x322b, 0x322c, 0x322e, 0x322f, 0x3230, 0x3231, 0x3233, 
-	0x3234, 0x3235, 0x3237, 0x3238, 0x323a, 0x323b, 0x323d, 0x323f, 
-	0x3240, 0x3240, 0x3240, 0x3240, 0x3241, 0x3241, 0x3242, 0x3242, 
-	0x3243, 0x3244, 0x3245, 0x3245, 0x3246, 0x3247, 0x3248, 0x3249, 
-	0x324a, 0x324b, 0x324c, 0x324e, 0x324f, 0x3250, 0x3251, 0x3253, 
-	0x3254, 0x3255, 0x3257, 0x3258, 0x325a, 0x325b, 0x325d, 0x325f, 
-	0x3260, 0x3260, 0x3260, 0x3260, 0x3261, 0x3261, 0x3262, 0x3262, 
-	0x3263, 0x3264, 0x3265, 0x3265, 0x3266, 0x3267, 0x3268, 0x3269, 
-	0x326a, 0x326b, 0x326c, 0x326e, 0x326f, 0x3270, 0x3271, 0x3273, 
-	0x3274, 0x3275, 0x3277, 0x3278, 0x327a, 0x327b, 0x327d, 0x327f, 
-	0x3280, 0x3280, 0x3280, 0x3280, 0x3281, 0x3281, 0x3282, 0x3282, 
-	0x3283, 0x3284, 0x3285, 0x3285, 0x3286, 0x3287, 0x3288, 0x3289, 
-	0x328a, 0x328b, 0x328c, 0x328e, 0x328f, 0x3290, 0x3291, 0x3293, 
-	0x3294, 0x3295, 0x3297, 0x3298, 0x329a, 0x329b, 0x329d, 0x329f, 
-	0x32a0, 0x32a0, 0x32a0, 0x32a0, 0x32a1, 0x32a1, 0x32a2, 0x32a2, 
-	0x32a3, 0x32a4, 0x32a5, 0x32a5, 0x32a6, 0x32a7, 0x32a8, 0x32a9, 
-	0x32aa, 0x32ab, 0x32ac, 0x32ae, 0x32af, 0x32b0, 0x32b1, 0x32b3, 
-	0x32b4, 0x32b5, 0x32b7, 0x32b8, 0x32ba, 0x32bb, 0x32bd, 0x32bf, 
-	0x32c0, 0x32c0, 0x32c0, 0x32c0, 0x32c1, 0x32c1, 0x32c2, 0x32c2, 
-	0x32c3, 0x32c4, 0x32c5, 0x32c5, 0x32c6, 0x32c7, 0x32c8, 0x32c9, 
-	0x32ca, 0x32cb, 0x32cc, 0x32ce, 0x32cf, 0x32d0, 0x32d1, 0x32d3, 
-	0x32d4, 0x32d5, 0x32d7, 0x32d8, 0x32da, 0x32db, 0x32dd, 0x32df, 
-	0x32e0, 0x32e0, 0x32e0, 0x32e0, 0x32e1, 0x32e1, 0x32e2, 0x32e2, 
-	0x32e3, 0x32e4, 0x32e5, 0x32e5, 0x32e6, 0x32e7, 0x32e8, 0x32e9, 
-	0x32ea, 0x32eb, 0x32ec, 0x32ee, 0x32ef, 0x32f0, 0x32f1, 0x32f3, 
-	0x32f4, 0x32f5, 0x32f7, 0x32f8, 0x32fa, 0x32fb, 0x32fd, 0x32ff, 
-	0x3300, 0x3300, 0x3300, 0x3300, 0x3301, 0x3301, 0x3302, 0x3302, 
-	0x3303, 0x3304, 0x3305, 0x3305, 0x3306, 0x3307, 0x3308, 0x3309, 
-	0x330a, 0x330b, 0x330c, 0x330e, 0x330f, 0x3310, 0x3311, 0x3313, 
-	0x3314, 0x3315, 0x3317, 0x3318, 0x331a, 0x331b, 0x331d, 0x331f, 
-	0x3320, 0x3320, 0x3320, 0x3320, 0x3321, 0x3321, 0x3322, 0x3322, 
-	0x3323, 0x3324, 0x3325, 0x3325, 0x3326, 0x3327, 0x3328, 0x3329, 
-	0x332a, 0x332b, 0x332c, 0x332e, 0x332f, 0x3330, 0x3331, 0x3333, 
-	0x3334, 0x3335, 0x3337, 0x3338, 0x333a, 0x333b, 0x333d, 0x333f, 
-	0x3340, 0x3340, 0x3340, 0x3340, 0x3341, 0x3341, 0x3342, 0x3342, 
-	0x3343, 0x3344, 0x3345, 0x3345, 0x3346, 0x3347, 0x3348, 0x3349, 
-	0x334a, 0x334b, 0x334c, 0x334e, 0x334f, 0x3350, 0x3351, 0x3353, 
-	0x3354, 0x3355, 0x3357, 0x3358, 0x335a, 0x335b, 0x335d, 0x335f, 
-	0x3380, 0x3380, 0x3380, 0x3380, 0x3381, 0x3381, 0x3382, 0x3382, 
-	0x3383, 0x3384, 0x3385, 0x3385, 0x3386, 0x3387, 0x3388, 0x3389, 
-	0x338a, 0x338b, 0x338c, 0x338e, 0x338f, 0x3390, 0x3391, 0x3393, 
-	0x3394, 0x3395, 0x3397, 0x3398, 0x339a, 0x339b, 0x339d, 0x339f, 
-	0x33a0, 0x33a0, 0x33a0, 0x33a0, 0x33a1, 0x33a1, 0x33a2, 0x33a2, 
-	0x33a3, 0x33a4, 0x33a5, 0x33a5, 0x33a6, 0x33a7, 0x33a8, 0x33a9, 
-	0x33aa, 0x33ab, 0x33ac, 0x33ae, 0x33af, 0x33b0, 0x33b1, 0x33b3, 
-	0x33b4, 0x33b5, 0x33b7, 0x33b8, 0x33ba, 0x33bb, 0x33bd, 0x33bf, 
-	0x33c0, 0x33c0, 0x33c0, 0x33c0, 0x33c1, 0x33c1, 0x33c2, 0x33c2, 
-	0x33c3, 0x33c4, 0x33c5, 0x33c5, 0x33c6, 0x33c7, 0x33c8, 0x33c9, 
-	0x33ca, 0x33cb, 0x33cc, 0x33ce, 0x33cf, 0x33d0, 0x33d1, 0x33d3, 
-	0x33d4, 0x33d5, 0x33d7, 0x33d8, 0x33da, 0x33db, 0x33dd, 0x33df, 
-	0x33e0, 0x33e0, 0x33e0, 0x33e0, 0x33e1, 0x33e1, 0x33e2, 0x33e2, 
-	0x33e3, 0x33e4, 0x33e5, 0x33e5, 0x33e6, 0x33e7, 0x33e8, 0x33e9, 
-	0x33ea, 0x33eb, 0x33ec, 0x33ee, 0x33ef, 0x33f0, 0x33f1, 0x33f3, 
-	0x33f4, 0x33f5, 0x33f7, 0x33f8, 0x33fa, 0x33fb, 0x33fd, 0x33ff, 
-	0x3400, 0x3400, 0x3400, 0x3400, 0x3401, 0x3401, 0x3402, 0x3402, 
-	0x3403, 0x3404, 0x3405, 0x3405, 0x3406, 0x3407, 0x3408, 0x3409, 
-	0x340a, 0x340b, 0x340c, 0x340e, 0x340f, 0x3410, 0x3411, 0x3413, 
-	0x3414, 0x3415, 0x3417, 0x3418, 0x341a, 0x341b, 0x341d, 0x341f, 
-	0x3440, 0x3440, 0x3440, 0x3440, 0x3441, 0x3441, 0x3442, 0x3442, 
-	0x3443, 0x3444, 0x3445, 0x3445, 0x3446, 0x3447, 0x3448, 0x3449, 
-	0x344a, 0x344b, 0x344c, 0x344e, 0x344f, 0x3450, 0x3451, 0x3453, 
-	0x3454, 0x3455, 0x3457, 0x3458, 0x345a, 0x345b, 0x345d, 0x345f, 
-	0x3460, 0x3460, 0x3460, 0x3460, 0x3461, 0x3461, 0x3462, 0x3462, 
-	0x3463, 0x3464, 0x3465, 0x3465, 0x3466, 0x3467, 0x3468, 0x3469, 
-	0x346a, 0x346b, 0x346c, 0x346e, 0x346f, 0x3470, 0x3471, 0x3473, 
-	0x3474, 0x3475, 0x3477, 0x3478, 0x347a, 0x347b, 0x347d, 0x347f, 
-	0x3480, 0x3480, 0x3480, 0x3480, 0x3481, 0x3481, 0x3482, 0x3482, 
-	0x3483, 0x3484, 0x3485, 0x3485, 0x3486, 0x3487, 0x3488, 0x3489, 
-	0x348a, 0x348b, 0x348c, 0x348e, 0x348f, 0x3490, 0x3491, 0x3493, 
-	0x3494, 0x3495, 0x3497, 0x3498, 0x349a, 0x349b, 0x349d, 0x349f, 
-	0x34c0, 0x34c0, 0x34c0, 0x34c0, 0x34c1, 0x34c1, 0x34c2, 0x34c2, 
-	0x34c3, 0x34c4, 0x34c5, 0x34c5, 0x34c6, 0x34c7, 0x34c8, 0x34c9, 
-	0x34ca, 0x34cb, 0x34cc, 0x34ce, 0x34cf, 0x34d0, 0x34d1, 0x34d3, 
-	0x34d4, 0x34d5, 0x34d7, 0x34d8, 0x34da, 0x34db, 0x34dd, 0x34df, 
-	0x34e0, 0x34e0, 0x34e0, 0x34e0, 0x34e1, 0x34e1, 0x34e2, 0x34e2, 
-	0x34e3, 0x34e4, 0x34e5, 0x34e5, 0x34e6, 0x34e7, 0x34e8, 0x34e9, 
-	0x34ea, 0x34eb, 0x34ec, 0x34ee, 0x34ef, 0x34f0, 0x34f1, 0x34f3, 
-	0x34f4, 0x34f5, 0x34f7, 0x34f8, 0x34fa, 0x34fb, 0x34fd, 0x34ff, 
-	0x3500, 0x3500, 0x3500, 0x3500, 0x3501, 0x3501, 0x3502, 0x3502, 
-	0x3503, 0x3504, 0x3505, 0x3505, 0x3506, 0x3507, 0x3508, 0x3509, 
-	0x350a, 0x350b, 0x350c, 0x350e, 0x350f, 0x3510, 0x3511, 0x3513, 
-	0x3514, 0x3515, 0x3517, 0x3518, 0x351a, 0x351b, 0x351d, 0x351f, 
-	0x3540, 0x3540, 0x3540, 0x3540, 0x3541, 0x3541, 0x3542, 0x3542, 
-	0x3543, 0x3544, 0x3545, 0x3545, 0x3546, 0x3547, 0x3548, 0x3549, 
-	0x354a, 0x354b, 0x354c, 0x354e, 0x354f, 0x3550, 0x3551, 0x3553, 
-	0x3554, 0x3555, 0x3557, 0x3558, 0x355a, 0x355b, 0x355d, 0x355f, 
-	0x3560, 0x3560, 0x3560, 0x3560, 0x3561, 0x3561, 0x3562, 0x3562, 
-	0x3563, 0x3564, 0x3565, 0x3565, 0x3566, 0x3567, 0x3568, 0x3569, 
-	0x356a, 0x356b, 0x356c, 0x356e, 0x356f, 0x3570, 0x3571, 0x3573, 
-	0x3574, 0x3575, 0x3577, 0x3578, 0x357a, 0x357b, 0x357d, 0x357f, 
-	0x3580, 0x3580, 0x3580, 0x3580, 0x3581, 0x3581, 0x3582, 0x3582, 
-	0x3583, 0x3584, 0x3585, 0x3585, 0x3586, 0x3587, 0x3588, 0x3589, 
-	0x358a, 0x358b, 0x358c, 0x358e, 0x358f, 0x3590, 0x3591, 0x3593, 
-	0x3594, 0x3595, 0x3597, 0x3598, 0x359a, 0x359b, 0x359d, 0x359f, 
-	0x35c0, 0x35c0, 0x35c0, 0x35c0, 0x35c1, 0x35c1, 0x35c2, 0x35c2, 
-	0x35c3, 0x35c4, 0x35c5, 0x35c5, 0x35c6, 0x35c7, 0x35c8, 0x35c9, 
-	0x35ca, 0x35cb, 0x35cc, 0x35ce, 0x35cf, 0x35d0, 0x35d1, 0x35d3, 
-	0x35d4, 0x35d5, 0x35d7, 0x35d8, 0x35da, 0x35db, 0x35dd, 0x35df, 
-	0x35e0, 0x35e0, 0x35e0, 0x35e0, 0x35e1, 0x35e1, 0x35e2, 0x35e2, 
-	0x35e3, 0x35e4, 0x35e5, 0x35e5, 0x35e6, 0x35e7, 0x35e8, 0x35e9, 
-	0x35ea, 0x35eb, 0x35ec, 0x35ee, 0x35ef, 0x35f0, 0x35f1, 0x35f3, 
-	0x35f4, 0x35f5, 0x35f7, 0x35f8, 0x35fa, 0x35fb, 0x35fd, 0x35ff, 
-	0x3620, 0x3620, 0x3620, 0x3620, 0x3621, 0x3621, 0x3622, 0x3622, 
-	0x3623, 0x3624, 0x3625, 0x3625, 0x3626, 0x3627, 0x3628, 0x3629, 
-	0x362a, 0x362b, 0x362c, 0x362e, 0x362f, 0x3630, 0x3631, 0x3633, 
-	0x3634, 0x3635, 0x3637, 0x3638, 0x363a, 0x363b, 0x363d, 0x363f, 
-	0x3640, 0x3640, 0x3640, 0x3640, 0x3641, 0x3641, 0x3642, 0x3642, 
-	0x3643, 0x3644, 0x3645, 0x3645, 0x3646, 0x3647, 0x3648, 0x3649, 
-	0x364a, 0x364b, 0x364c, 0x364e, 0x364f, 0x3650, 0x3651, 0x3653, 
-	0x3654, 0x3655, 0x3657, 0x3658, 0x365a, 0x365b, 0x365d, 0x365f, 
-	0x3680, 0x3680, 0x3680, 0x3680, 0x3681, 0x3681, 0x3682, 0x3682, 
-	0x3683, 0x3684, 0x3685, 0x3685, 0x3686, 0x3687, 0x3688, 0x3689, 
-	0x368a, 0x368b, 0x368c, 0x368e, 0x368f, 0x3690, 0x3691, 0x3693, 
-	0x3694, 0x3695, 0x3697, 0x3698, 0x369a, 0x369b, 0x369d, 0x369f, 
-	0x36a0, 0x36a0, 0x36a0, 0x36a0, 0x36a1, 0x36a1, 0x36a2, 0x36a2, 
-	0x36a3, 0x36a4, 0x36a5, 0x36a5, 0x36a6, 0x36a7, 0x36a8, 0x36a9, 
-	0x36aa, 0x36ab, 0x36ac, 0x36ae, 0x36af, 0x36b0, 0x36b1, 0x36b3, 
-	0x36b4, 0x36b5, 0x36b7, 0x36b8, 0x36ba, 0x36bb, 0x36bd, 0x36bf, 
-	0x36e0, 0x36e0, 0x36e0, 0x36e0, 0x36e1, 0x36e1, 0x36e2, 0x36e2, 
-	0x36e3, 0x36e4, 0x36e5, 0x36e5, 0x36e6, 0x36e7, 0x36e8, 0x36e9, 
-	0x36ea, 0x36eb, 0x36ec, 0x36ee, 0x36ef, 0x36f0, 0x36f1, 0x36f3, 
-	0x36f4, 0x36f5, 0x36f7, 0x36f8, 0x36fa, 0x36fb, 0x36fd, 0x36ff, 
-	0x3700, 0x3700, 0x3700, 0x3700, 0x3701, 0x3701, 0x3702, 0x3702, 
-	0x3703, 0x3704, 0x3705, 0x3705, 0x3706, 0x3707, 0x3708, 0x3709, 
-	0x370a, 0x370b, 0x370c, 0x370e, 0x370f, 0x3710, 0x3711, 0x3713, 
-	0x3714, 0x3715, 0x3717, 0x3718, 0x371a, 0x371b, 0x371d, 0x371f, 
-	0x3740, 0x3740, 0x3740, 0x3740, 0x3741, 0x3741, 0x3742, 0x3742, 
-	0x3743, 0x3744, 0x3745, 0x3745, 0x3746, 0x3747, 0x3748, 0x3749, 
-	0x374a, 0x374b, 0x374c, 0x374e, 0x374f, 0x3750, 0x3751, 0x3753, 
-	0x3754, 0x3755, 0x3757, 0x3758, 0x375a, 0x375b, 0x375d, 0x375f, 
-	0x3760, 0x3760, 0x3760, 0x3760, 0x3761, 0x3761, 0x3762, 0x3762, 
-	0x3763, 0x3764, 0x3765, 0x3765, 0x3766, 0x3767, 0x3768, 0x3769, 
-	0x376a, 0x376b, 0x376c, 0x376e, 0x376f, 0x3770, 0x3771, 0x3773, 
-	0x3774, 0x3775, 0x3777, 0x3778, 0x377a, 0x377b, 0x377d, 0x377f, 
-	0x37a0, 0x37a0, 0x37a0, 0x37a0, 0x37a1, 0x37a1, 0x37a2, 0x37a2, 
-	0x37a3, 0x37a4, 0x37a5, 0x37a5, 0x37a6, 0x37a7, 0x37a8, 0x37a9, 
-	0x37aa, 0x37ab, 0x37ac, 0x37ae, 0x37af, 0x37b0, 0x37b1, 0x37b3, 
-	0x37b4, 0x37b5, 0x37b7, 0x37b8, 0x37ba, 0x37bb, 0x37bd, 0x37bf, 
-	0x37e0, 0x37e0, 0x37e0, 0x37e0, 0x37e1, 0x37e1, 0x37e2, 0x37e2, 
-	0x37e3, 0x37e4, 0x37e5, 0x37e5, 0x37e6, 0x37e7, 0x37e8, 0x37e9, 
-	0x37ea, 0x37eb, 0x37ec, 0x37ee, 0x37ef, 0x37f0, 0x37f1, 0x37f3, 
-	0x37f4, 0x37f5, 0x37f7, 0x37f8, 0x37fa, 0x37fb, 0x37fd, 0x37ff, 
-	0x3800, 0x3800, 0x3800, 0x3800, 0x3801, 0x3801, 0x3802, 0x3802, 
-	0x3803, 0x3804, 0x3805, 0x3805, 0x3806, 0x3807, 0x3808, 0x3809, 
-	0x380a, 0x380b, 0x380c, 0x380e, 0x380f, 0x3810, 0x3811, 0x3813, 
-	0x3814, 0x3815, 0x3817, 0x3818, 0x381a, 0x381b, 0x381d, 0x381f, 
-	0x3800, 0x3800, 0x3800, 0x3800, 0x3801, 0x3801, 0x3802, 0x3802, 
-	0x3803, 0x3804, 0x3805, 0x3805, 0x3806, 0x3807, 0x3808, 0x3809, 
-	0x380a, 0x380b, 0x380c, 0x380e, 0x380f, 0x3810, 0x3811, 0x3813, 
-	0x3814, 0x3815, 0x3817, 0x3818, 0x381a, 0x381b, 0x381d, 0x381f, 
-	0x3800, 0x3800, 0x3800, 0x3800, 0x3801, 0x3801, 0x3802, 0x3802, 
-	0x3803, 0x3804, 0x3805, 0x3805, 0x3806, 0x3807, 0x3808, 0x3809, 
-	0x380a, 0x380b, 0x380c, 0x380e, 0x380f, 0x3810, 0x3811, 0x3813, 
-	0x3814, 0x3815, 0x3817, 0x3818, 0x381a, 0x381b, 0x381d, 0x381f, 
-	0x3800, 0x3800, 0x3800, 0x3800, 0x3801, 0x3801, 0x3802, 0x3802, 
-	0x3803, 0x3804, 0x3805, 0x3805, 0x3806, 0x3807, 0x3808, 0x3809, 
-	0x380a, 0x380b, 0x380c, 0x380e, 0x380f, 0x3810, 0x3811, 0x3813, 
-	0x3814, 0x3815, 0x3817, 0x3818, 0x381a, 0x381b, 0x381d, 0x381f, 
-	0x3800, 0x3800, 0x3800, 0x3800, 0x3801, 0x3801, 0x3802, 0x3802, 
-	0x3803, 0x3804, 0x3805, 0x3805, 0x3806, 0x3807, 0x3808, 0x3809, 
-	0x380a, 0x380b, 0x380c, 0x380e, 0x380f, 0x3810, 0x3811, 0x3813, 
-	0x3814, 0x3815, 0x3817, 0x3818, 0x381a, 0x381b, 0x381d, 0x381f, 
-	0x3820, 0x3820, 0x3820, 0x3820, 0x3821, 0x3821, 0x3822, 0x3822, 
-	0x3823, 0x3824, 0x3825, 0x3825, 0x3826, 0x3827, 0x3828, 0x3829, 
-	0x382a, 0x382b, 0x382c, 0x382e, 0x382f, 0x3830, 0x3831, 0x3833, 
-	0x3834, 0x3835, 0x3837, 0x3838, 0x383a, 0x383b, 0x383d, 0x383f, 
-	0x3820, 0x3820, 0x3820, 0x3820, 0x3821, 0x3821, 0x3822, 0x3822, 
-	0x3823, 0x3824, 0x3825, 0x3825, 0x3826, 0x3827, 0x3828, 0x3829, 
-	0x382a, 0x382b, 0x382c, 0x382e, 0x382f, 0x3830, 0x3831, 0x3833, 
-	0x3834, 0x3835, 0x3837, 0x3838, 0x383a, 0x383b, 0x383d, 0x383f, 
-	0x3820, 0x3820, 0x3820, 0x3820, 0x3821, 0x3821, 0x3822, 0x3822, 
-	0x3823, 0x3824, 0x3825, 0x3825, 0x3826, 0x3827, 0x3828, 0x3829, 
-	0x382a, 0x382b, 0x382c, 0x382e, 0x382f, 0x3830, 0x3831, 0x3833, 
-	0x3834, 0x3835, 0x3837, 0x3838, 0x383a, 0x383b, 0x383d, 0x383f, 
-	0x3840, 0x3840, 0x3840, 0x3840, 0x3841, 0x3841, 0x3842, 0x3842, 
-	0x3843, 0x3844, 0x3845, 0x3845, 0x3846, 0x3847, 0x3848, 0x3849, 
-	0x384a, 0x384b, 0x384c, 0x384e, 0x384f, 0x3850, 0x3851, 0x3853, 
-	0x3854, 0x3855, 0x3857, 0x3858, 0x385a, 0x385b, 0x385d, 0x385f, 
-	0x3840, 0x3840, 0x3840, 0x3840, 0x3841, 0x3841, 0x3842, 0x3842, 
-	0x3843, 0x3844, 0x3845, 0x3845, 0x3846, 0x3847, 0x3848, 0x3849, 
-	0x384a, 0x384b, 0x384c, 0x384e, 0x384f, 0x3850, 0x3851, 0x3853, 
-	0x3854, 0x3855, 0x3857, 0x3858, 0x385a, 0x385b, 0x385d, 0x385f, 
-	0x3860, 0x3860, 0x3860, 0x3860, 0x3861, 0x3861, 0x3862, 0x3862, 
-	0x3863, 0x3864, 0x3865, 0x3865, 0x3866, 0x3867, 0x3868, 0x3869, 
-	0x386a, 0x386b, 0x386c, 0x386e, 0x386f, 0x3870, 0x3871, 0x3873, 
-	0x3874, 0x3875, 0x3877, 0x3878, 0x387a, 0x387b, 0x387d, 0x387f, 
-	0x3860, 0x3860, 0x3860, 0x3860, 0x3861, 0x3861, 0x3862, 0x3862, 
-	0x3863, 0x3864, 0x3865, 0x3865, 0x3866, 0x3867, 0x3868, 0x3869, 
-	0x386a, 0x386b, 0x386c, 0x386e, 0x386f, 0x3870, 0x3871, 0x3873, 
-	0x3874, 0x3875, 0x3877, 0x3878, 0x387a, 0x387b, 0x387d, 0x387f, 
-	0x3880, 0x3880, 0x3880, 0x3880, 0x3881, 0x3881, 0x3882, 0x3882, 
-	0x3883, 0x3884, 0x3885, 0x3885, 0x3886, 0x3887, 0x3888, 0x3889, 
-	0x388a, 0x388b, 0x388c, 0x388e, 0x388f, 0x3890, 0x3891, 0x3893, 
-	0x3894, 0x3895, 0x3897, 0x3898, 0x389a, 0x389b, 0x389d, 0x389f, 
-	0x38a0, 0x38a0, 0x38a0, 0x38a0, 0x38a1, 0x38a1, 0x38a2, 0x38a2, 
-	0x38a3, 0x38a4, 0x38a5, 0x38a5, 0x38a6, 0x38a7, 0x38a8, 0x38a9, 
-	0x38aa, 0x38ab, 0x38ac, 0x38ae, 0x38af, 0x38b0, 0x38b1, 0x38b3, 
-	0x38b4, 0x38b5, 0x38b7, 0x38b8, 0x38ba, 0x38bb, 0x38bd, 0x38bf, 
-	0x38a0, 0x38a0, 0x38a0, 0x38a0, 0x38a1, 0x38a1, 0x38a2, 0x38a2, 
-	0x38a3, 0x38a4, 0x38a5, 0x38a5, 0x38a6, 0x38a7, 0x38a8, 0x38a9, 
-	0x38aa, 0x38ab, 0x38ac, 0x38ae, 0x38af, 0x38b0, 0x38b1, 0x38b3, 
-	0x38b4, 0x38b5, 0x38b7, 0x38b8, 0x38ba, 0x38bb, 0x38bd, 0x38bf, 
-	0x38c0, 0x38c0, 0x38c0, 0x38c0, 0x38c1, 0x38c1, 0x38c2, 0x38c2, 
-	0x38c3, 0x38c4, 0x38c5, 0x38c5, 0x38c6, 0x38c7, 0x38c8, 0x38c9, 
-	0x38ca, 0x38cb, 0x38cc, 0x38ce, 0x38cf, 0x38d0, 0x38d1, 0x38d3, 
-	0x38d4, 0x38d5, 0x38d7, 0x38d8, 0x38da, 0x38db, 0x38dd, 0x38df, 
-	0x38e0, 0x38e0, 0x38e0, 0x38e0, 0x38e1, 0x38e1, 0x38e2, 0x38e2, 
-	0x38e3, 0x38e4, 0x38e5, 0x38e5, 0x38e6, 0x38e7, 0x38e8, 0x38e9, 
-	0x38ea, 0x38eb, 0x38ec, 0x38ee, 0x38ef, 0x38f0, 0x38f1, 0x38f3, 
-	0x38f4, 0x38f5, 0x38f7, 0x38f8, 0x38fa, 0x38fb, 0x38fd, 0x38ff, 
-	0x38e0, 0x38e0, 0x38e0, 0x38e0, 0x38e1, 0x38e1, 0x38e2, 0x38e2, 
-	0x38e3, 0x38e4, 0x38e5, 0x38e5, 0x38e6, 0x38e7, 0x38e8, 0x38e9, 
-	0x38ea, 0x38eb, 0x38ec, 0x38ee, 0x38ef, 0x38f0, 0x38f1, 0x38f3, 
-	0x38f4, 0x38f5, 0x38f7, 0x38f8, 0x38fa, 0x38fb, 0x38fd, 0x38ff, 
-	0x3900, 0x3900, 0x3900, 0x3900, 0x3901, 0x3901, 0x3902, 0x3902, 
-	0x3903, 0x3904, 0x3905, 0x3905, 0x3906, 0x3907, 0x3908, 0x3909, 
-	0x390a, 0x390b, 0x390c, 0x390e, 0x390f, 0x3910, 0x3911, 0x3913, 
-	0x3914, 0x3915, 0x3917, 0x3918, 0x391a, 0x391b, 0x391d, 0x391f, 
-	0x3920, 0x3920, 0x3920, 0x3920, 0x3921, 0x3921, 0x3922, 0x3922, 
-	0x3923, 0x3924, 0x3925, 0x3925, 0x3926, 0x3927, 0x3928, 0x3929, 
-	0x392a, 0x392b, 0x392c, 0x392e, 0x392f, 0x3930, 0x3931, 0x3933, 
-	0x3934, 0x3935, 0x3937, 0x3938, 0x393a, 0x393b, 0x393d, 0x393f, 
-	0x3940, 0x3940, 0x3940, 0x3940, 0x3941, 0x3941, 0x3942, 0x3942, 
-	0x3943, 0x3944, 0x3945, 0x3945, 0x3946, 0x3947, 0x3948, 0x3949, 
-	0x394a, 0x394b, 0x394c, 0x394e, 0x394f, 0x3950, 0x3951, 0x3953, 
-	0x3954, 0x3955, 0x3957, 0x3958, 0x395a, 0x395b, 0x395d, 0x395f, 
-	0x3940, 0x3940, 0x3940, 0x3940, 0x3941, 0x3941, 0x3942, 0x3942, 
-	0x3943, 0x3944, 0x3945, 0x3945, 0x3946, 0x3947, 0x3948, 0x3949, 
-	0x394a, 0x394b, 0x394c, 0x394e, 0x394f, 0x3950, 0x3951, 0x3953, 
-	0x3954, 0x3955, 0x3957, 0x3958, 0x395a, 0x395b, 0x395d, 0x395f, 
-	0x3960, 0x3960, 0x3960, 0x3960, 0x3961, 0x3961, 0x3962, 0x3962, 
-	0x3963, 0x3964, 0x3965, 0x3965, 0x3966, 0x3967, 0x3968, 0x3969, 
-	0x396a, 0x396b, 0x396c, 0x396e, 0x396f, 0x3970, 0x3971, 0x3973, 
-	0x3974, 0x3975, 0x3977, 0x3978, 0x397a, 0x397b, 0x397d, 0x397f, 
-	0x3980, 0x3980, 0x3980, 0x3980, 0x3981, 0x3981, 0x3982, 0x3982, 
-	0x3983, 0x3984, 0x3985, 0x3985, 0x3986, 0x3987, 0x3988, 0x3989, 
-	0x398a, 0x398b, 0x398c, 0x398e, 0x398f, 0x3990, 0x3991, 0x3993, 
-	0x3994, 0x3995, 0x3997, 0x3998, 0x399a, 0x399b, 0x399d, 0x399f, 
-	0x39a0, 0x39a0, 0x39a0, 0x39a0, 0x39a1, 0x39a1, 0x39a2, 0x39a2, 
-	0x39a3, 0x39a4, 0x39a5, 0x39a5, 0x39a6, 0x39a7, 0x39a8, 0x39a9, 
-	0x39aa, 0x39ab, 0x39ac, 0x39ae, 0x39af, 0x39b0, 0x39b1, 0x39b3, 
-	0x39b4, 0x39b5, 0x39b7, 0x39b8, 0x39ba, 0x39bb, 0x39bd, 0x39bf, 
-	0x39c0, 0x39c0, 0x39c0, 0x39c0, 0x39c1, 0x39c1, 0x39c2, 0x39c2, 
-	0x39c3, 0x39c4, 0x39c5, 0x39c5, 0x39c6, 0x39c7, 0x39c8, 0x39c9, 
-	0x39ca, 0x39cb, 0x39cc, 0x39ce, 0x39cf, 0x39d0, 0x39d1, 0x39d3, 
-	0x39d4, 0x39d5, 0x39d7, 0x39d8, 0x39da, 0x39db, 0x39dd, 0x39df, 
-	0x39e0, 0x39e0, 0x39e0, 0x39e0, 0x39e1, 0x39e1, 0x39e2, 0x39e2, 
-	0x39e3, 0x39e4, 0x39e5, 0x39e5, 0x39e6, 0x39e7, 0x39e8, 0x39e9, 
-	0x39ea, 0x39eb, 0x39ec, 0x39ee, 0x39ef, 0x39f0, 0x39f1, 0x39f3, 
-	0x39f4, 0x39f5, 0x39f7, 0x39f8, 0x39fa, 0x39fb, 0x39fd, 0x39ff, 
-	0x3a00, 0x3a00, 0x3a00, 0x3a00, 0x3a01, 0x3a01, 0x3a02, 0x3a02, 
-	0x3a03, 0x3a04, 0x3a05, 0x3a05, 0x3a06, 0x3a07, 0x3a08, 0x3a09, 
-	0x3a0a, 0x3a0b, 0x3a0c, 0x3a0e, 0x3a0f, 0x3a10, 0x3a11, 0x3a13, 
-	0x3a14, 0x3a15, 0x3a17, 0x3a18, 0x3a1a, 0x3a1b, 0x3a1d, 0x3a1f, 
-	0x3a20, 0x3a20, 0x3a20, 0x3a20, 0x3a21, 0x3a21, 0x3a22, 0x3a22, 
-	0x3a23, 0x3a24, 0x3a25, 0x3a25, 0x3a26, 0x3a27, 0x3a28, 0x3a29, 
-	0x3a2a, 0x3a2b, 0x3a2c, 0x3a2e, 0x3a2f, 0x3a30, 0x3a31, 0x3a33, 
-	0x3a34, 0x3a35, 0x3a37, 0x3a38, 0x3a3a, 0x3a3b, 0x3a3d, 0x3a3f, 
-	0x3a40, 0x3a40, 0x3a40, 0x3a40, 0x3a41, 0x3a41, 0x3a42, 0x3a42, 
-	0x3a43, 0x3a44, 0x3a45, 0x3a45, 0x3a46, 0x3a47, 0x3a48, 0x3a49, 
-	0x3a4a, 0x3a4b, 0x3a4c, 0x3a4e, 0x3a4f, 0x3a50, 0x3a51, 0x3a53, 
-	0x3a54, 0x3a55, 0x3a57, 0x3a58, 0x3a5a, 0x3a5b, 0x3a5d, 0x3a5f, 
-	0x3a60, 0x3a60, 0x3a60, 0x3a60, 0x3a61, 0x3a61, 0x3a62, 0x3a62, 
-	0x3a63, 0x3a64, 0x3a65, 0x3a65, 0x3a66, 0x3a67, 0x3a68, 0x3a69, 
-	0x3a6a, 0x3a6b, 0x3a6c, 0x3a6e, 0x3a6f, 0x3a70, 0x3a71, 0x3a73, 
-	0x3a74, 0x3a75, 0x3a77, 0x3a78, 0x3a7a, 0x3a7b, 0x3a7d, 0x3a7f, 
-	0x3a80, 0x3a80, 0x3a80, 0x3a80, 0x3a81, 0x3a81, 0x3a82, 0x3a82, 
-	0x3a83, 0x3a84, 0x3a85, 0x3a85, 0x3a86, 0x3a87, 0x3a88, 0x3a89, 
-	0x3a8a, 0x3a8b, 0x3a8c, 0x3a8e, 0x3a8f, 0x3a90, 0x3a91, 0x3a93, 
-	0x3a94, 0x3a95, 0x3a97, 0x3a98, 0x3a9a, 0x3a9b, 0x3a9d, 0x3a9f, 
-	0x3aa0, 0x3aa0, 0x3aa0, 0x3aa0, 0x3aa1, 0x3aa1, 0x3aa2, 0x3aa2, 
-	0x3aa3, 0x3aa4, 0x3aa5, 0x3aa5, 0x3aa6, 0x3aa7, 0x3aa8, 0x3aa9, 
-	0x3aaa, 0x3aab, 0x3aac, 0x3aae, 0x3aaf, 0x3ab0, 0x3ab1, 0x3ab3, 
-	0x3ab4, 0x3ab5, 0x3ab7, 0x3ab8, 0x3aba, 0x3abb, 0x3abd, 0x3abf, 
-	0x3ac0, 0x3ac0, 0x3ac0, 0x3ac0, 0x3ac1, 0x3ac1, 0x3ac2, 0x3ac2, 
-	0x3ac3, 0x3ac4, 0x3ac5, 0x3ac5, 0x3ac6, 0x3ac7, 0x3ac8, 0x3ac9, 
-	0x3aca, 0x3acb, 0x3acc, 0x3ace, 0x3acf, 0x3ad0, 0x3ad1, 0x3ad3, 
-	0x3ad4, 0x3ad5, 0x3ad7, 0x3ad8, 0x3ada, 0x3adb, 0x3add, 0x3adf, 
-	0x3ae0, 0x3ae0, 0x3ae0, 0x3ae0, 0x3ae1, 0x3ae1, 0x3ae2, 0x3ae2, 
-	0x3ae3, 0x3ae4, 0x3ae5, 0x3ae5, 0x3ae6, 0x3ae7, 0x3ae8, 0x3ae9, 
-	0x3aea, 0x3aeb, 0x3aec, 0x3aee, 0x3aef, 0x3af0, 0x3af1, 0x3af3, 
-	0x3af4, 0x3af5, 0x3af7, 0x3af8, 0x3afa, 0x3afb, 0x3afd, 0x3aff, 
-	0x3b00, 0x3b00, 0x3b00, 0x3b00, 0x3b01, 0x3b01, 0x3b02, 0x3b02, 
-	0x3b03, 0x3b04, 0x3b05, 0x3b05, 0x3b06, 0x3b07, 0x3b08, 0x3b09, 
-	0x3b0a, 0x3b0b, 0x3b0c, 0x3b0e, 0x3b0f, 0x3b10, 0x3b11, 0x3b13, 
-	0x3b14, 0x3b15, 0x3b17, 0x3b18, 0x3b1a, 0x3b1b, 0x3b1d, 0x3b1f, 
-	0x3b20, 0x3b20, 0x3b20, 0x3b20, 0x3b21, 0x3b21, 0x3b22, 0x3b22, 
-	0x3b23, 0x3b24, 0x3b25, 0x3b25, 0x3b26, 0x3b27, 0x3b28, 0x3b29, 
-	0x3b2a, 0x3b2b, 0x3b2c, 0x3b2e, 0x3b2f, 0x3b30, 0x3b31, 0x3b33, 
-	0x3b34, 0x3b35, 0x3b37, 0x3b38, 0x3b3a, 0x3b3b, 0x3b3d, 0x3b3f, 
-	0x3b40, 0x3b40, 0x3b40, 0x3b40, 0x3b41, 0x3b41, 0x3b42, 0x3b42, 
-	0x3b43, 0x3b44, 0x3b45, 0x3b45, 0x3b46, 0x3b47, 0x3b48, 0x3b49, 
-	0x3b4a, 0x3b4b, 0x3b4c, 0x3b4e, 0x3b4f, 0x3b50, 0x3b51, 0x3b53, 
-	0x3b54, 0x3b55, 0x3b57, 0x3b58, 0x3b5a, 0x3b5b, 0x3b5d, 0x3b5f, 
-	0x3b80, 0x3b80, 0x3b80, 0x3b80, 0x3b81, 0x3b81, 0x3b82, 0x3b82, 
-	0x3b83, 0x3b84, 0x3b85, 0x3b85, 0x3b86, 0x3b87, 0x3b88, 0x3b89, 
-	0x3b8a, 0x3b8b, 0x3b8c, 0x3b8e, 0x3b8f, 0x3b90, 0x3b91, 0x3b93, 
-	0x3b94, 0x3b95, 0x3b97, 0x3b98, 0x3b9a, 0x3b9b, 0x3b9d, 0x3b9f, 
-	0x3ba0, 0x3ba0, 0x3ba0, 0x3ba0, 0x3ba1, 0x3ba1, 0x3ba2, 0x3ba2, 
-	0x3ba3, 0x3ba4, 0x3ba5, 0x3ba5, 0x3ba6, 0x3ba7, 0x3ba8, 0x3ba9, 
-	0x3baa, 0x3bab, 0x3bac, 0x3bae, 0x3baf, 0x3bb0, 0x3bb1, 0x3bb3, 
-	0x3bb4, 0x3bb5, 0x3bb7, 0x3bb8, 0x3bba, 0x3bbb, 0x3bbd, 0x3bbf, 
-	0x3bc0, 0x3bc0, 0x3bc0, 0x3bc0, 0x3bc1, 0x3bc1, 0x3bc2, 0x3bc2, 
-	0x3bc3, 0x3bc4, 0x3bc5, 0x3bc5, 0x3bc6, 0x3bc7, 0x3bc8, 0x3bc9, 
-	0x3bca, 0x3bcb, 0x3bcc, 0x3bce, 0x3bcf, 0x3bd0, 0x3bd1, 0x3bd3, 
-	0x3bd4, 0x3bd5, 0x3bd7, 0x3bd8, 0x3bda, 0x3bdb, 0x3bdd, 0x3bdf, 
-	0x3be0, 0x3be0, 0x3be0, 0x3be0, 0x3be1, 0x3be1, 0x3be2, 0x3be2, 
-	0x3be3, 0x3be4, 0x3be5, 0x3be5, 0x3be6, 0x3be7, 0x3be8, 0x3be9, 
-	0x3bea, 0x3beb, 0x3bec, 0x3bee, 0x3bef, 0x3bf0, 0x3bf1, 0x3bf3, 
-	0x3bf4, 0x3bf5, 0x3bf7, 0x3bf8, 0x3bfa, 0x3bfb, 0x3bfd, 0x3bff, 
-	0x3c00, 0x3c00, 0x3c00, 0x3c00, 0x3c01, 0x3c01, 0x3c02, 0x3c02, 
-	0x3c03, 0x3c04, 0x3c05, 0x3c05, 0x3c06, 0x3c07, 0x3c08, 0x3c09, 
-	0x3c0a, 0x3c0b, 0x3c0c, 0x3c0e, 0x3c0f, 0x3c10, 0x3c11, 0x3c13, 
-	0x3c14, 0x3c15, 0x3c17, 0x3c18, 0x3c1a, 0x3c1b, 0x3c1d, 0x3c1f, 
-	0x3c40, 0x3c40, 0x3c40, 0x3c40, 0x3c41, 0x3c41, 0x3c42, 0x3c42, 
-	0x3c43, 0x3c44, 0x3c45, 0x3c45, 0x3c46, 0x3c47, 0x3c48, 0x3c49, 
-	0x3c4a, 0x3c4b, 0x3c4c, 0x3c4e, 0x3c4f, 0x3c50, 0x3c51, 0x3c53, 
-	0x3c54, 0x3c55, 0x3c57, 0x3c58, 0x3c5a, 0x3c5b, 0x3c5d, 0x3c5f, 
-	0x3c60, 0x3c60, 0x3c60, 0x3c60, 0x3c61, 0x3c61, 0x3c62, 0x3c62, 
-	0x3c63, 0x3c64, 0x3c65, 0x3c65, 0x3c66, 0x3c67, 0x3c68, 0x3c69, 
-	0x3c6a, 0x3c6b, 0x3c6c, 0x3c6e, 0x3c6f, 0x3c70, 0x3c71, 0x3c73, 
-	0x3c74, 0x3c75, 0x3c77, 0x3c78, 0x3c7a, 0x3c7b, 0x3c7d, 0x3c7f, 
-	0x3c80, 0x3c80, 0x3c80, 0x3c80, 0x3c81, 0x3c81, 0x3c82, 0x3c82, 
-	0x3c83, 0x3c84, 0x3c85, 0x3c85, 0x3c86, 0x3c87, 0x3c88, 0x3c89, 
-	0x3c8a, 0x3c8b, 0x3c8c, 0x3c8e, 0x3c8f, 0x3c90, 0x3c91, 0x3c93, 
-	0x3c94, 0x3c95, 0x3c97, 0x3c98, 0x3c9a, 0x3c9b, 0x3c9d, 0x3c9f, 
-	0x3cc0, 0x3cc0, 0x3cc0, 0x3cc0, 0x3cc1, 0x3cc1, 0x3cc2, 0x3cc2, 
-	0x3cc3, 0x3cc4, 0x3cc5, 0x3cc5, 0x3cc6, 0x3cc7, 0x3cc8, 0x3cc9, 
-	0x3cca, 0x3ccb, 0x3ccc, 0x3cce, 0x3ccf, 0x3cd0, 0x3cd1, 0x3cd3, 
-	0x3cd4, 0x3cd5, 0x3cd7, 0x3cd8, 0x3cda, 0x3cdb, 0x3cdd, 0x3cdf, 
-	0x3ce0, 0x3ce0, 0x3ce0, 0x3ce0, 0x3ce1, 0x3ce1, 0x3ce2, 0x3ce2, 
-	0x3ce3, 0x3ce4, 0x3ce5, 0x3ce5, 0x3ce6, 0x3ce7, 0x3ce8, 0x3ce9, 
-	0x3cea, 0x3ceb, 0x3cec, 0x3cee, 0x3cef, 0x3cf0, 0x3cf1, 0x3cf3, 
-	0x3cf4, 0x3cf5, 0x3cf7, 0x3cf8, 0x3cfa, 0x3cfb, 0x3cfd, 0x3cff, 
-	0x3d00, 0x3d00, 0x3d00, 0x3d00, 0x3d01, 0x3d01, 0x3d02, 0x3d02, 
-	0x3d03, 0x3d04, 0x3d05, 0x3d05, 0x3d06, 0x3d07, 0x3d08, 0x3d09, 
-	0x3d0a, 0x3d0b, 0x3d0c, 0x3d0e, 0x3d0f, 0x3d10, 0x3d11, 0x3d13, 
-	0x3d14, 0x3d15, 0x3d17, 0x3d18, 0x3d1a, 0x3d1b, 0x3d1d, 0x3d1f, 
-	0x3d40, 0x3d40, 0x3d40, 0x3d40, 0x3d41, 0x3d41, 0x3d42, 0x3d42, 
-	0x3d43, 0x3d44, 0x3d45, 0x3d45, 0x3d46, 0x3d47, 0x3d48, 0x3d49, 
-	0x3d4a, 0x3d4b, 0x3d4c, 0x3d4e, 0x3d4f, 0x3d50, 0x3d51, 0x3d53, 
-	0x3d54, 0x3d55, 0x3d57, 0x3d58, 0x3d5a, 0x3d5b, 0x3d5d, 0x3d5f, 
-	0x3d60, 0x3d60, 0x3d60, 0x3d60, 0x3d61, 0x3d61, 0x3d62, 0x3d62, 
-	0x3d63, 0x3d64, 0x3d65, 0x3d65, 0x3d66, 0x3d67, 0x3d68, 0x3d69, 
-	0x3d6a, 0x3d6b, 0x3d6c, 0x3d6e, 0x3d6f, 0x3d70, 0x3d71, 0x3d73, 
-	0x3d74, 0x3d75, 0x3d77, 0x3d78, 0x3d7a, 0x3d7b, 0x3d7d, 0x3d7f, 
-	0x3d80, 0x3d80, 0x3d80, 0x3d80, 0x3d81, 0x3d81, 0x3d82, 0x3d82, 
-	0x3d83, 0x3d84, 0x3d85, 0x3d85, 0x3d86, 0x3d87, 0x3d88, 0x3d89, 
-	0x3d8a, 0x3d8b, 0x3d8c, 0x3d8e, 0x3d8f, 0x3d90, 0x3d91, 0x3d93, 
-	0x3d94, 0x3d95, 0x3d97, 0x3d98, 0x3d9a, 0x3d9b, 0x3d9d, 0x3d9f, 
-	0x3dc0, 0x3dc0, 0x3dc0, 0x3dc0, 0x3dc1, 0x3dc1, 0x3dc2, 0x3dc2, 
-	0x3dc3, 0x3dc4, 0x3dc5, 0x3dc5, 0x3dc6, 0x3dc7, 0x3dc8, 0x3dc9, 
-	0x3dca, 0x3dcb, 0x3dcc, 0x3dce, 0x3dcf, 0x3dd0, 0x3dd1, 0x3dd3, 
-	0x3dd4, 0x3dd5, 0x3dd7, 0x3dd8, 0x3dda, 0x3ddb, 0x3ddd, 0x3ddf, 
-	0x3de0, 0x3de0, 0x3de0, 0x3de0, 0x3de1, 0x3de1, 0x3de2, 0x3de2, 
-	0x3de3, 0x3de4, 0x3de5, 0x3de5, 0x3de6, 0x3de7, 0x3de8, 0x3de9, 
-	0x3dea, 0x3deb, 0x3dec, 0x3dee, 0x3def, 0x3df0, 0x3df1, 0x3df3, 
-	0x3df4, 0x3df5, 0x3df7, 0x3df8, 0x3dfa, 0x3dfb, 0x3dfd, 0x3dff, 
-	0x3e20, 0x3e20, 0x3e20, 0x3e20, 0x3e21, 0x3e21, 0x3e22, 0x3e22, 
-	0x3e23, 0x3e24, 0x3e25, 0x3e25, 0x3e26, 0x3e27, 0x3e28, 0x3e29, 
-	0x3e2a, 0x3e2b, 0x3e2c, 0x3e2e, 0x3e2f, 0x3e30, 0x3e31, 0x3e33, 
-	0x3e34, 0x3e35, 0x3e37, 0x3e38, 0x3e3a, 0x3e3b, 0x3e3d, 0x3e3f, 
-	0x3e40, 0x3e40, 0x3e40, 0x3e40, 0x3e41, 0x3e41, 0x3e42, 0x3e42, 
-	0x3e43, 0x3e44, 0x3e45, 0x3e45, 0x3e46, 0x3e47, 0x3e48, 0x3e49, 
-	0x3e4a, 0x3e4b, 0x3e4c, 0x3e4e, 0x3e4f, 0x3e50, 0x3e51, 0x3e53, 
-	0x3e54, 0x3e55, 0x3e57, 0x3e58, 0x3e5a, 0x3e5b, 0x3e5d, 0x3e5f, 
-	0x3e80, 0x3e80, 0x3e80, 0x3e80, 0x3e81, 0x3e81, 0x3e82, 0x3e82, 
-	0x3e83, 0x3e84, 0x3e85, 0x3e85, 0x3e86, 0x3e87, 0x3e88, 0x3e89, 
-	0x3e8a, 0x3e8b, 0x3e8c, 0x3e8e, 0x3e8f, 0x3e90, 0x3e91, 0x3e93, 
-	0x3e94, 0x3e95, 0x3e97, 0x3e98, 0x3e9a, 0x3e9b, 0x3e9d, 0x3e9f, 
-	0x3ea0, 0x3ea0, 0x3ea0, 0x3ea0, 0x3ea1, 0x3ea1, 0x3ea2, 0x3ea2, 
-	0x3ea3, 0x3ea4, 0x3ea5, 0x3ea5, 0x3ea6, 0x3ea7, 0x3ea8, 0x3ea9, 
-	0x3eaa, 0x3eab, 0x3eac, 0x3eae, 0x3eaf, 0x3eb0, 0x3eb1, 0x3eb3, 
-	0x3eb4, 0x3eb5, 0x3eb7, 0x3eb8, 0x3eba, 0x3ebb, 0x3ebd, 0x3ebf, 
-	0x3ee0, 0x3ee0, 0x3ee0, 0x3ee0, 0x3ee1, 0x3ee1, 0x3ee2, 0x3ee2, 
-	0x3ee3, 0x3ee4, 0x3ee5, 0x3ee5, 0x3ee6, 0x3ee7, 0x3ee8, 0x3ee9, 
-	0x3eea, 0x3eeb, 0x3eec, 0x3eee, 0x3eef, 0x3ef0, 0x3ef1, 0x3ef3, 
-	0x3ef4, 0x3ef5, 0x3ef7, 0x3ef8, 0x3efa, 0x3efb, 0x3efd, 0x3eff, 
-	0x3f00, 0x3f00, 0x3f00, 0x3f00, 0x3f01, 0x3f01, 0x3f02, 0x3f02, 
-	0x3f03, 0x3f04, 0x3f05, 0x3f05, 0x3f06, 0x3f07, 0x3f08, 0x3f09, 
-	0x3f0a, 0x3f0b, 0x3f0c, 0x3f0e, 0x3f0f, 0x3f10, 0x3f11, 0x3f13, 
-	0x3f14, 0x3f15, 0x3f17, 0x3f18, 0x3f1a, 0x3f1b, 0x3f1d, 0x3f1f, 
-	0x3f40, 0x3f40, 0x3f40, 0x3f40, 0x3f41, 0x3f41, 0x3f42, 0x3f42, 
-	0x3f43, 0x3f44, 0x3f45, 0x3f45, 0x3f46, 0x3f47, 0x3f48, 0x3f49, 
-	0x3f4a, 0x3f4b, 0x3f4c, 0x3f4e, 0x3f4f, 0x3f50, 0x3f51, 0x3f53, 
-	0x3f54, 0x3f55, 0x3f57, 0x3f58, 0x3f5a, 0x3f5b, 0x3f5d, 0x3f5f, 
-	0x3f60, 0x3f60, 0x3f60, 0x3f60, 0x3f61, 0x3f61, 0x3f62, 0x3f62, 
-	0x3f63, 0x3f64, 0x3f65, 0x3f65, 0x3f66, 0x3f67, 0x3f68, 0x3f69, 
-	0x3f6a, 0x3f6b, 0x3f6c, 0x3f6e, 0x3f6f, 0x3f70, 0x3f71, 0x3f73, 
-	0x3f74, 0x3f75, 0x3f77, 0x3f78, 0x3f7a, 0x3f7b, 0x3f7d, 0x3f7f, 
-	0x3fa0, 0x3fa0, 0x3fa0, 0x3fa0, 0x3fa1, 0x3fa1, 0x3fa2, 0x3fa2, 
-	0x3fa3, 0x3fa4, 0x3fa5, 0x3fa5, 0x3fa6, 0x3fa7, 0x3fa8, 0x3fa9, 
-	0x3faa, 0x3fab, 0x3fac, 0x3fae, 0x3faf, 0x3fb0, 0x3fb1, 0x3fb3, 
-	0x3fb4, 0x3fb5, 0x3fb7, 0x3fb8, 0x3fba, 0x3fbb, 0x3fbd, 0x3fbf, 
-	0x3fe0, 0x3fe0, 0x3fe0, 0x3fe0, 0x3fe1, 0x3fe1, 0x3fe2, 0x3fe2, 
-	0x3fe3, 0x3fe4, 0x3fe5, 0x3fe5, 0x3fe6, 0x3fe7, 0x3fe8, 0x3fe9, 
-	0x3fea, 0x3feb, 0x3fec, 0x3fee, 0x3fef, 0x3ff0, 0x3ff1, 0x3ff3, 
-	0x3ff4, 0x3ff5, 0x3ff7, 0x3ff8, 0x3ffa, 0x3ffb, 0x3ffd, 0x3fff, 
-	0x4000, 0x4000, 0x4000, 0x4000, 0x4001, 0x4001, 0x4002, 0x4002, 
-	0x4003, 0x4004, 0x4005, 0x4005, 0x4006, 0x4007, 0x4008, 0x4009, 
-	0x400a, 0x400b, 0x400c, 0x400e, 0x400f, 0x4010, 0x4011, 0x4013, 
-	0x4014, 0x4015, 0x4017, 0x4018, 0x401a, 0x401b, 0x401d, 0x401f, 
-	0x4000, 0x4000, 0x4000, 0x4000, 0x4001, 0x4001, 0x4002, 0x4002, 
-	0x4003, 0x4004, 0x4005, 0x4005, 0x4006, 0x4007, 0x4008, 0x4009, 
-	0x400a, 0x400b, 0x400c, 0x400e, 0x400f, 0x4010, 0x4011, 0x4013, 
-	0x4014, 0x4015, 0x4017, 0x4018, 0x401a, 0x401b, 0x401d, 0x401f, 
-	0x4000, 0x4000, 0x4000, 0x4000, 0x4001, 0x4001, 0x4002, 0x4002, 
-	0x4003, 0x4004, 0x4005, 0x4005, 0x4006, 0x4007, 0x4008, 0x4009, 
-	0x400a, 0x400b, 0x400c, 0x400e, 0x400f, 0x4010, 0x4011, 0x4013, 
-	0x4014, 0x4015, 0x4017, 0x4018, 0x401a, 0x401b, 0x401d, 0x401f, 
-	0x4000, 0x4000, 0x4000, 0x4000, 0x4001, 0x4001, 0x4002, 0x4002, 
-	0x4003, 0x4004, 0x4005, 0x4005, 0x4006, 0x4007, 0x4008, 0x4009, 
-	0x400a, 0x400b, 0x400c, 0x400e, 0x400f, 0x4010, 0x4011, 0x4013, 
-	0x4014, 0x4015, 0x4017, 0x4018, 0x401a, 0x401b, 0x401d, 0x401f, 
-	0x4000, 0x4000, 0x4000, 0x4000, 0x4001, 0x4001, 0x4002, 0x4002, 
-	0x4003, 0x4004, 0x4005, 0x4005, 0x4006, 0x4007, 0x4008, 0x4009, 
-	0x400a, 0x400b, 0x400c, 0x400e, 0x400f, 0x4010, 0x4011, 0x4013, 
-	0x4014, 0x4015, 0x4017, 0x4018, 0x401a, 0x401b, 0x401d, 0x401f, 
-	0x4020, 0x4020, 0x4020, 0x4020, 0x4021, 0x4021, 0x4022, 0x4022, 
-	0x4023, 0x4024, 0x4025, 0x4025, 0x4026, 0x4027, 0x4028, 0x4029, 
-	0x402a, 0x402b, 0x402c, 0x402e, 0x402f, 0x4030, 0x4031, 0x4033, 
-	0x4034, 0x4035, 0x4037, 0x4038, 0x403a, 0x403b, 0x403d, 0x403f, 
-	0x4020, 0x4020, 0x4020, 0x4020, 0x4021, 0x4021, 0x4022, 0x4022, 
-	0x4023, 0x4024, 0x4025, 0x4025, 0x4026, 0x4027, 0x4028, 0x4029, 
-	0x402a, 0x402b, 0x402c, 0x402e, 0x402f, 0x4030, 0x4031, 0x4033, 
-	0x4034, 0x4035, 0x4037, 0x4038, 0x403a, 0x403b, 0x403d, 0x403f, 
-	0x4020, 0x4020, 0x4020, 0x4020, 0x4021, 0x4021, 0x4022, 0x4022, 
-	0x4023, 0x4024, 0x4025, 0x4025, 0x4026, 0x4027, 0x4028, 0x4029, 
-	0x402a, 0x402b, 0x402c, 0x402e, 0x402f, 0x4030, 0x4031, 0x4033, 
-	0x4034, 0x4035, 0x4037, 0x4038, 0x403a, 0x403b, 0x403d, 0x403f, 
-	0x4040, 0x4040, 0x4040, 0x4040, 0x4041, 0x4041, 0x4042, 0x4042, 
-	0x4043, 0x4044, 0x4045, 0x4045, 0x4046, 0x4047, 0x4048, 0x4049, 
-	0x404a, 0x404b, 0x404c, 0x404e, 0x404f, 0x4050, 0x4051, 0x4053, 
-	0x4054, 0x4055, 0x4057, 0x4058, 0x405a, 0x405b, 0x405d, 0x405f, 
-	0x4040, 0x4040, 0x4040, 0x4040, 0x4041, 0x4041, 0x4042, 0x4042, 
-	0x4043, 0x4044, 0x4045, 0x4045, 0x4046, 0x4047, 0x4048, 0x4049, 
-	0x404a, 0x404b, 0x404c, 0x404e, 0x404f, 0x4050, 0x4051, 0x4053, 
-	0x4054, 0x4055, 0x4057, 0x4058, 0x405a, 0x405b, 0x405d, 0x405f, 
-	0x4060, 0x4060, 0x4060, 0x4060, 0x4061, 0x4061, 0x4062, 0x4062, 
-	0x4063, 0x4064, 0x4065, 0x4065, 0x4066, 0x4067, 0x4068, 0x4069, 
-	0x406a, 0x406b, 0x406c, 0x406e, 0x406f, 0x4070, 0x4071, 0x4073, 
-	0x4074, 0x4075, 0x4077, 0x4078, 0x407a, 0x407b, 0x407d, 0x407f, 
-	0x4060, 0x4060, 0x4060, 0x4060, 0x4061, 0x4061, 0x4062, 0x4062, 
-	0x4063, 0x4064, 0x4065, 0x4065, 0x4066, 0x4067, 0x4068, 0x4069, 
-	0x406a, 0x406b, 0x406c, 0x406e, 0x406f, 0x4070, 0x4071, 0x4073, 
-	0x4074, 0x4075, 0x4077, 0x4078, 0x407a, 0x407b, 0x407d, 0x407f, 
-	0x4080, 0x4080, 0x4080, 0x4080, 0x4081, 0x4081, 0x4082, 0x4082, 
-	0x4083, 0x4084, 0x4085, 0x4085, 0x4086, 0x4087, 0x4088, 0x4089, 
-	0x408a, 0x408b, 0x408c, 0x408e, 0x408f, 0x4090, 0x4091, 0x4093, 
-	0x4094, 0x4095, 0x4097, 0x4098, 0x409a, 0x409b, 0x409d, 0x409f, 
-	0x40a0, 0x40a0, 0x40a0, 0x40a0, 0x40a1, 0x40a1, 0x40a2, 0x40a2, 
-	0x40a3, 0x40a4, 0x40a5, 0x40a5, 0x40a6, 0x40a7, 0x40a8, 0x40a9, 
-	0x40aa, 0x40ab, 0x40ac, 0x40ae, 0x40af, 0x40b0, 0x40b1, 0x40b3, 
-	0x40b4, 0x40b5, 0x40b7, 0x40b8, 0x40ba, 0x40bb, 0x40bd, 0x40bf, 
-	0x40a0, 0x40a0, 0x40a0, 0x40a0, 0x40a1, 0x40a1, 0x40a2, 0x40a2, 
-	0x40a3, 0x40a4, 0x40a5, 0x40a5, 0x40a6, 0x40a7, 0x40a8, 0x40a9, 
-	0x40aa, 0x40ab, 0x40ac, 0x40ae, 0x40af, 0x40b0, 0x40b1, 0x40b3, 
-	0x40b4, 0x40b5, 0x40b7, 0x40b8, 0x40ba, 0x40bb, 0x40bd, 0x40bf, 
-	0x40c0, 0x40c0, 0x40c0, 0x40c0, 0x40c1, 0x40c1, 0x40c2, 0x40c2, 
-	0x40c3, 0x40c4, 0x40c5, 0x40c5, 0x40c6, 0x40c7, 0x40c8, 0x40c9, 
-	0x40ca, 0x40cb, 0x40cc, 0x40ce, 0x40cf, 0x40d0, 0x40d1, 0x40d3, 
-	0x40d4, 0x40d5, 0x40d7, 0x40d8, 0x40da, 0x40db, 0x40dd, 0x40df, 
-	0x40e0, 0x40e0, 0x40e0, 0x40e0, 0x40e1, 0x40e1, 0x40e2, 0x40e2, 
-	0x40e3, 0x40e4, 0x40e5, 0x40e5, 0x40e6, 0x40e7, 0x40e8, 0x40e9, 
-	0x40ea, 0x40eb, 0x40ec, 0x40ee, 0x40ef, 0x40f0, 0x40f1, 0x40f3, 
-	0x40f4, 0x40f5, 0x40f7, 0x40f8, 0x40fa, 0x40fb, 0x40fd, 0x40ff, 
-	0x40e0, 0x40e0, 0x40e0, 0x40e0, 0x40e1, 0x40e1, 0x40e2, 0x40e2, 
-	0x40e3, 0x40e4, 0x40e5, 0x40e5, 0x40e6, 0x40e7, 0x40e8, 0x40e9, 
-	0x40ea, 0x40eb, 0x40ec, 0x40ee, 0x40ef, 0x40f0, 0x40f1, 0x40f3, 
-	0x40f4, 0x40f5, 0x40f7, 0x40f8, 0x40fa, 0x40fb, 0x40fd, 0x40ff, 
-	0x4100, 0x4100, 0x4100, 0x4100, 0x4101, 0x4101, 0x4102, 0x4102, 
-	0x4103, 0x4104, 0x4105, 0x4105, 0x4106, 0x4107, 0x4108, 0x4109, 
-	0x410a, 0x410b, 0x410c, 0x410e, 0x410f, 0x4110, 0x4111, 0x4113, 
-	0x4114, 0x4115, 0x4117, 0x4118, 0x411a, 0x411b, 0x411d, 0x411f, 
-	0x4120, 0x4120, 0x4120, 0x4120, 0x4121, 0x4121, 0x4122, 0x4122, 
-	0x4123, 0x4124, 0x4125, 0x4125, 0x4126, 0x4127, 0x4128, 0x4129, 
-	0x412a, 0x412b, 0x412c, 0x412e, 0x412f, 0x4130, 0x4131, 0x4133, 
-	0x4134, 0x4135, 0x4137, 0x4138, 0x413a, 0x413b, 0x413d, 0x413f, 
-	0x4140, 0x4140, 0x4140, 0x4140, 0x4141, 0x4141, 0x4142, 0x4142, 
-	0x4143, 0x4144, 0x4145, 0x4145, 0x4146, 0x4147, 0x4148, 0x4149, 
-	0x414a, 0x414b, 0x414c, 0x414e, 0x414f, 0x4150, 0x4151, 0x4153, 
-	0x4154, 0x4155, 0x4157, 0x4158, 0x415a, 0x415b, 0x415d, 0x415f, 
-	0x4140, 0x4140, 0x4140, 0x4140, 0x4141, 0x4141, 0x4142, 0x4142, 
-	0x4143, 0x4144, 0x4145, 0x4145, 0x4146, 0x4147, 0x4148, 0x4149, 
-	0x414a, 0x414b, 0x414c, 0x414e, 0x414f, 0x4150, 0x4151, 0x4153, 
-	0x4154, 0x4155, 0x4157, 0x4158, 0x415a, 0x415b, 0x415d, 0x415f, 
-	0x4160, 0x4160, 0x4160, 0x4160, 0x4161, 0x4161, 0x4162, 0x4162, 
-	0x4163, 0x4164, 0x4165, 0x4165, 0x4166, 0x4167, 0x4168, 0x4169, 
-	0x416a, 0x416b, 0x416c, 0x416e, 0x416f, 0x4170, 0x4171, 0x4173, 
-	0x4174, 0x4175, 0x4177, 0x4178, 0x417a, 0x417b, 0x417d, 0x417f, 
-	0x4180, 0x4180, 0x4180, 0x4180, 0x4181, 0x4181, 0x4182, 0x4182, 
-	0x4183, 0x4184, 0x4185, 0x4185, 0x4186, 0x4187, 0x4188, 0x4189, 
-	0x418a, 0x418b, 0x418c, 0x418e, 0x418f, 0x4190, 0x4191, 0x4193, 
-	0x4194, 0x4195, 0x4197, 0x4198, 0x419a, 0x419b, 0x419d, 0x419f, 
-	0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a1, 0x41a1, 0x41a2, 0x41a2, 
-	0x41a3, 0x41a4, 0x41a5, 0x41a5, 0x41a6, 0x41a7, 0x41a8, 0x41a9, 
-	0x41aa, 0x41ab, 0x41ac, 0x41ae, 0x41af, 0x41b0, 0x41b1, 0x41b3, 
-	0x41b4, 0x41b5, 0x41b7, 0x41b8, 0x41ba, 0x41bb, 0x41bd, 0x41bf, 
-	0x41c0, 0x41c0, 0x41c0, 0x41c0, 0x41c1, 0x41c1, 0x41c2, 0x41c2, 
-	0x41c3, 0x41c4, 0x41c5, 0x41c5, 0x41c6, 0x41c7, 0x41c8, 0x41c9, 
-	0x41ca, 0x41cb, 0x41cc, 0x41ce, 0x41cf, 0x41d0, 0x41d1, 0x41d3, 
-	0x41d4, 0x41d5, 0x41d7, 0x41d8, 0x41da, 0x41db, 0x41dd, 0x41df, 
-	0x41e0, 0x41e0, 0x41e0, 0x41e0, 0x41e1, 0x41e1, 0x41e2, 0x41e2, 
-	0x41e3, 0x41e4, 0x41e5, 0x41e5, 0x41e6, 0x41e7, 0x41e8, 0x41e9, 
-	0x41ea, 0x41eb, 0x41ec, 0x41ee, 0x41ef, 0x41f0, 0x41f1, 0x41f3, 
-	0x41f4, 0x41f5, 0x41f7, 0x41f8, 0x41fa, 0x41fb, 0x41fd, 0x41ff, 
-	0x4200, 0x4200, 0x4200, 0x4200, 0x4201, 0x4201, 0x4202, 0x4202, 
-	0x4203, 0x4204, 0x4205, 0x4205, 0x4206, 0x4207, 0x4208, 0x4209, 
-	0x420a, 0x420b, 0x420c, 0x420e, 0x420f, 0x4210, 0x4211, 0x4213, 
-	0x4214, 0x4215, 0x4217, 0x4218, 0x421a, 0x421b, 0x421d, 0x421f, 
-	0x4220, 0x4220, 0x4220, 0x4220, 0x4221, 0x4221, 0x4222, 0x4222, 
-	0x4223, 0x4224, 0x4225, 0x4225, 0x4226, 0x4227, 0x4228, 0x4229, 
-	0x422a, 0x422b, 0x422c, 0x422e, 0x422f, 0x4230, 0x4231, 0x4233, 
-	0x4234, 0x4235, 0x4237, 0x4238, 0x423a, 0x423b, 0x423d, 0x423f, 
-	0x4240, 0x4240, 0x4240, 0x4240, 0x4241, 0x4241, 0x4242, 0x4242, 
-	0x4243, 0x4244, 0x4245, 0x4245, 0x4246, 0x4247, 0x4248, 0x4249, 
-	0x424a, 0x424b, 0x424c, 0x424e, 0x424f, 0x4250, 0x4251, 0x4253, 
-	0x4254, 0x4255, 0x4257, 0x4258, 0x425a, 0x425b, 0x425d, 0x425f, 
-	0x4260, 0x4260, 0x4260, 0x4260, 0x4261, 0x4261, 0x4262, 0x4262, 
-	0x4263, 0x4264, 0x4265, 0x4265, 0x4266, 0x4267, 0x4268, 0x4269, 
-	0x426a, 0x426b, 0x426c, 0x426e, 0x426f, 0x4270, 0x4271, 0x4273, 
-	0x4274, 0x4275, 0x4277, 0x4278, 0x427a, 0x427b, 0x427d, 0x427f, 
-	0x4280, 0x4280, 0x4280, 0x4280, 0x4281, 0x4281, 0x4282, 0x4282, 
-	0x4283, 0x4284, 0x4285, 0x4285, 0x4286, 0x4287, 0x4288, 0x4289, 
-	0x428a, 0x428b, 0x428c, 0x428e, 0x428f, 0x4290, 0x4291, 0x4293, 
-	0x4294, 0x4295, 0x4297, 0x4298, 0x429a, 0x429b, 0x429d, 0x429f, 
-	0x42a0, 0x42a0, 0x42a0, 0x42a0, 0x42a1, 0x42a1, 0x42a2, 0x42a2, 
-	0x42a3, 0x42a4, 0x42a5, 0x42a5, 0x42a6, 0x42a7, 0x42a8, 0x42a9, 
-	0x42aa, 0x42ab, 0x42ac, 0x42ae, 0x42af, 0x42b0, 0x42b1, 0x42b3, 
-	0x42b4, 0x42b5, 0x42b7, 0x42b8, 0x42ba, 0x42bb, 0x42bd, 0x42bf, 
-	0x42c0, 0x42c0, 0x42c0, 0x42c0, 0x42c1, 0x42c1, 0x42c2, 0x42c2, 
-	0x42c3, 0x42c4, 0x42c5, 0x42c5, 0x42c6, 0x42c7, 0x42c8, 0x42c9, 
-	0x42ca, 0x42cb, 0x42cc, 0x42ce, 0x42cf, 0x42d0, 0x42d1, 0x42d3, 
-	0x42d4, 0x42d5, 0x42d7, 0x42d8, 0x42da, 0x42db, 0x42dd, 0x42df, 
-	0x42e0, 0x42e0, 0x42e0, 0x42e0, 0x42e1, 0x42e1, 0x42e2, 0x42e2, 
-	0x42e3, 0x42e4, 0x42e5, 0x42e5, 0x42e6, 0x42e7, 0x42e8, 0x42e9, 
-	0x42ea, 0x42eb, 0x42ec, 0x42ee, 0x42ef, 0x42f0, 0x42f1, 0x42f3, 
-	0x42f4, 0x42f5, 0x42f7, 0x42f8, 0x42fa, 0x42fb, 0x42fd, 0x42ff, 
-	0x4300, 0x4300, 0x4300, 0x4300, 0x4301, 0x4301, 0x4302, 0x4302, 
-	0x4303, 0x4304, 0x4305, 0x4305, 0x4306, 0x4307, 0x4308, 0x4309, 
-	0x430a, 0x430b, 0x430c, 0x430e, 0x430f, 0x4310, 0x4311, 0x4313, 
-	0x4314, 0x4315, 0x4317, 0x4318, 0x431a, 0x431b, 0x431d, 0x431f, 
-	0x4320, 0x4320, 0x4320, 0x4320, 0x4321, 0x4321, 0x4322, 0x4322, 
-	0x4323, 0x4324, 0x4325, 0x4325, 0x4326, 0x4327, 0x4328, 0x4329, 
-	0x432a, 0x432b, 0x432c, 0x432e, 0x432f, 0x4330, 0x4331, 0x4333, 
-	0x4334, 0x4335, 0x4337, 0x4338, 0x433a, 0x433b, 0x433d, 0x433f, 
-	0x4340, 0x4340, 0x4340, 0x4340, 0x4341, 0x4341, 0x4342, 0x4342, 
-	0x4343, 0x4344, 0x4345, 0x4345, 0x4346, 0x4347, 0x4348, 0x4349, 
-	0x434a, 0x434b, 0x434c, 0x434e, 0x434f, 0x4350, 0x4351, 0x4353, 
-	0x4354, 0x4355, 0x4357, 0x4358, 0x435a, 0x435b, 0x435d, 0x435f, 
-	0x4380, 0x4380, 0x4380, 0x4380, 0x4381, 0x4381, 0x4382, 0x4382, 
-	0x4383, 0x4384, 0x4385, 0x4385, 0x4386, 0x4387, 0x4388, 0x4389, 
-	0x438a, 0x438b, 0x438c, 0x438e, 0x438f, 0x4390, 0x4391, 0x4393, 
-	0x4394, 0x4395, 0x4397, 0x4398, 0x439a, 0x439b, 0x439d, 0x439f, 
-	0x43a0, 0x43a0, 0x43a0, 0x43a0, 0x43a1, 0x43a1, 0x43a2, 0x43a2, 
-	0x43a3, 0x43a4, 0x43a5, 0x43a5, 0x43a6, 0x43a7, 0x43a8, 0x43a9, 
-	0x43aa, 0x43ab, 0x43ac, 0x43ae, 0x43af, 0x43b0, 0x43b1, 0x43b3, 
-	0x43b4, 0x43b5, 0x43b7, 0x43b8, 0x43ba, 0x43bb, 0x43bd, 0x43bf, 
-	0x43c0, 0x43c0, 0x43c0, 0x43c0, 0x43c1, 0x43c1, 0x43c2, 0x43c2, 
-	0x43c3, 0x43c4, 0x43c5, 0x43c5, 0x43c6, 0x43c7, 0x43c8, 0x43c9, 
-	0x43ca, 0x43cb, 0x43cc, 0x43ce, 0x43cf, 0x43d0, 0x43d1, 0x43d3, 
-	0x43d4, 0x43d5, 0x43d7, 0x43d8, 0x43da, 0x43db, 0x43dd, 0x43df, 
-	0x43e0, 0x43e0, 0x43e0, 0x43e0, 0x43e1, 0x43e1, 0x43e2, 0x43e2, 
-	0x43e3, 0x43e4, 0x43e5, 0x43e5, 0x43e6, 0x43e7, 0x43e8, 0x43e9, 
-	0x43ea, 0x43eb, 0x43ec, 0x43ee, 0x43ef, 0x43f0, 0x43f1, 0x43f3, 
-	0x43f4, 0x43f5, 0x43f7, 0x43f8, 0x43fa, 0x43fb, 0x43fd, 0x43ff, 
-	0x4400, 0x4400, 0x4400, 0x4400, 0x4401, 0x4401, 0x4402, 0x4402, 
-	0x4403, 0x4404, 0x4405, 0x4405, 0x4406, 0x4407, 0x4408, 0x4409, 
-	0x440a, 0x440b, 0x440c, 0x440e, 0x440f, 0x4410, 0x4411, 0x4413, 
-	0x4414, 0x4415, 0x4417, 0x4418, 0x441a, 0x441b, 0x441d, 0x441f, 
-	0x4440, 0x4440, 0x4440, 0x4440, 0x4441, 0x4441, 0x4442, 0x4442, 
-	0x4443, 0x4444, 0x4445, 0x4445, 0x4446, 0x4447, 0x4448, 0x4449, 
-	0x444a, 0x444b, 0x444c, 0x444e, 0x444f, 0x4450, 0x4451, 0x4453, 
-	0x4454, 0x4455, 0x4457, 0x4458, 0x445a, 0x445b, 0x445d, 0x445f, 
-	0x4460, 0x4460, 0x4460, 0x4460, 0x4461, 0x4461, 0x4462, 0x4462, 
-	0x4463, 0x4464, 0x4465, 0x4465, 0x4466, 0x4467, 0x4468, 0x4469, 
-	0x446a, 0x446b, 0x446c, 0x446e, 0x446f, 0x4470, 0x4471, 0x4473, 
-	0x4474, 0x4475, 0x4477, 0x4478, 0x447a, 0x447b, 0x447d, 0x447f, 
-	0x4480, 0x4480, 0x4480, 0x4480, 0x4481, 0x4481, 0x4482, 0x4482, 
-	0x4483, 0x4484, 0x4485, 0x4485, 0x4486, 0x4487, 0x4488, 0x4489, 
-	0x448a, 0x448b, 0x448c, 0x448e, 0x448f, 0x4490, 0x4491, 0x4493, 
-	0x4494, 0x4495, 0x4497, 0x4498, 0x449a, 0x449b, 0x449d, 0x449f, 
-	0x44c0, 0x44c0, 0x44c0, 0x44c0, 0x44c1, 0x44c1, 0x44c2, 0x44c2, 
-	0x44c3, 0x44c4, 0x44c5, 0x44c5, 0x44c6, 0x44c7, 0x44c8, 0x44c9, 
-	0x44ca, 0x44cb, 0x44cc, 0x44ce, 0x44cf, 0x44d0, 0x44d1, 0x44d3, 
-	0x44d4, 0x44d5, 0x44d7, 0x44d8, 0x44da, 0x44db, 0x44dd, 0x44df, 
-	0x44e0, 0x44e0, 0x44e0, 0x44e0, 0x44e1, 0x44e1, 0x44e2, 0x44e2, 
-	0x44e3, 0x44e4, 0x44e5, 0x44e5, 0x44e6, 0x44e7, 0x44e8, 0x44e9, 
-	0x44ea, 0x44eb, 0x44ec, 0x44ee, 0x44ef, 0x44f0, 0x44f1, 0x44f3, 
-	0x44f4, 0x44f5, 0x44f7, 0x44f8, 0x44fa, 0x44fb, 0x44fd, 0x44ff, 
-	0x4500, 0x4500, 0x4500, 0x4500, 0x4501, 0x4501, 0x4502, 0x4502, 
-	0x4503, 0x4504, 0x4505, 0x4505, 0x4506, 0x4507, 0x4508, 0x4509, 
-	0x450a, 0x450b, 0x450c, 0x450e, 0x450f, 0x4510, 0x4511, 0x4513, 
-	0x4514, 0x4515, 0x4517, 0x4518, 0x451a, 0x451b, 0x451d, 0x451f, 
-	0x4540, 0x4540, 0x4540, 0x4540, 0x4541, 0x4541, 0x4542, 0x4542, 
-	0x4543, 0x4544, 0x4545, 0x4545, 0x4546, 0x4547, 0x4548, 0x4549, 
-	0x454a, 0x454b, 0x454c, 0x454e, 0x454f, 0x4550, 0x4551, 0x4553, 
-	0x4554, 0x4555, 0x4557, 0x4558, 0x455a, 0x455b, 0x455d, 0x455f, 
-	0x4560, 0x4560, 0x4560, 0x4560, 0x4561, 0x4561, 0x4562, 0x4562, 
-	0x4563, 0x4564, 0x4565, 0x4565, 0x4566, 0x4567, 0x4568, 0x4569, 
-	0x456a, 0x456b, 0x456c, 0x456e, 0x456f, 0x4570, 0x4571, 0x4573, 
-	0x4574, 0x4575, 0x4577, 0x4578, 0x457a, 0x457b, 0x457d, 0x457f, 
-	0x4580, 0x4580, 0x4580, 0x4580, 0x4581, 0x4581, 0x4582, 0x4582, 
-	0x4583, 0x4584, 0x4585, 0x4585, 0x4586, 0x4587, 0x4588, 0x4589, 
-	0x458a, 0x458b, 0x458c, 0x458e, 0x458f, 0x4590, 0x4591, 0x4593, 
-	0x4594, 0x4595, 0x4597, 0x4598, 0x459a, 0x459b, 0x459d, 0x459f, 
-	0x45c0, 0x45c0, 0x45c0, 0x45c0, 0x45c1, 0x45c1, 0x45c2, 0x45c2, 
-	0x45c3, 0x45c4, 0x45c5, 0x45c5, 0x45c6, 0x45c7, 0x45c8, 0x45c9, 
-	0x45ca, 0x45cb, 0x45cc, 0x45ce, 0x45cf, 0x45d0, 0x45d1, 0x45d3, 
-	0x45d4, 0x45d5, 0x45d7, 0x45d8, 0x45da, 0x45db, 0x45dd, 0x45df, 
-	0x45e0, 0x45e0, 0x45e0, 0x45e0, 0x45e1, 0x45e1, 0x45e2, 0x45e2, 
-	0x45e3, 0x45e4, 0x45e5, 0x45e5, 0x45e6, 0x45e7, 0x45e8, 0x45e9, 
-	0x45ea, 0x45eb, 0x45ec, 0x45ee, 0x45ef, 0x45f0, 0x45f1, 0x45f3, 
-	0x45f4, 0x45f5, 0x45f7, 0x45f8, 0x45fa, 0x45fb, 0x45fd, 0x45ff, 
-	0x4620, 0x4620, 0x4620, 0x4620, 0x4621, 0x4621, 0x4622, 0x4622, 
-	0x4623, 0x4624, 0x4625, 0x4625, 0x4626, 0x4627, 0x4628, 0x4629, 
-	0x462a, 0x462b, 0x462c, 0x462e, 0x462f, 0x4630, 0x4631, 0x4633, 
-	0x4634, 0x4635, 0x4637, 0x4638, 0x463a, 0x463b, 0x463d, 0x463f, 
-	0x4640, 0x4640, 0x4640, 0x4640, 0x4641, 0x4641, 0x4642, 0x4642, 
-	0x4643, 0x4644, 0x4645, 0x4645, 0x4646, 0x4647, 0x4648, 0x4649, 
-	0x464a, 0x464b, 0x464c, 0x464e, 0x464f, 0x4650, 0x4651, 0x4653, 
-	0x4654, 0x4655, 0x4657, 0x4658, 0x465a, 0x465b, 0x465d, 0x465f, 
-	0x4680, 0x4680, 0x4680, 0x4680, 0x4681, 0x4681, 0x4682, 0x4682, 
-	0x4683, 0x4684, 0x4685, 0x4685, 0x4686, 0x4687, 0x4688, 0x4689, 
-	0x468a, 0x468b, 0x468c, 0x468e, 0x468f, 0x4690, 0x4691, 0x4693, 
-	0x4694, 0x4695, 0x4697, 0x4698, 0x469a, 0x469b, 0x469d, 0x469f, 
-	0x46a0, 0x46a0, 0x46a0, 0x46a0, 0x46a1, 0x46a1, 0x46a2, 0x46a2, 
-	0x46a3, 0x46a4, 0x46a5, 0x46a5, 0x46a6, 0x46a7, 0x46a8, 0x46a9, 
-	0x46aa, 0x46ab, 0x46ac, 0x46ae, 0x46af, 0x46b0, 0x46b1, 0x46b3, 
-	0x46b4, 0x46b5, 0x46b7, 0x46b8, 0x46ba, 0x46bb, 0x46bd, 0x46bf, 
-	0x46e0, 0x46e0, 0x46e0, 0x46e0, 0x46e1, 0x46e1, 0x46e2, 0x46e2, 
-	0x46e3, 0x46e4, 0x46e5, 0x46e5, 0x46e6, 0x46e7, 0x46e8, 0x46e9, 
-	0x46ea, 0x46eb, 0x46ec, 0x46ee, 0x46ef, 0x46f0, 0x46f1, 0x46f3, 
-	0x46f4, 0x46f5, 0x46f7, 0x46f8, 0x46fa, 0x46fb, 0x46fd, 0x46ff, 
-	0x4700, 0x4700, 0x4700, 0x4700, 0x4701, 0x4701, 0x4702, 0x4702, 
-	0x4703, 0x4704, 0x4705, 0x4705, 0x4706, 0x4707, 0x4708, 0x4709, 
-	0x470a, 0x470b, 0x470c, 0x470e, 0x470f, 0x4710, 0x4711, 0x4713, 
-	0x4714, 0x4715, 0x4717, 0x4718, 0x471a, 0x471b, 0x471d, 0x471f, 
-	0x4740, 0x4740, 0x4740, 0x4740, 0x4741, 0x4741, 0x4742, 0x4742, 
-	0x4743, 0x4744, 0x4745, 0x4745, 0x4746, 0x4747, 0x4748, 0x4749, 
-	0x474a, 0x474b, 0x474c, 0x474e, 0x474f, 0x4750, 0x4751, 0x4753, 
-	0x4754, 0x4755, 0x4757, 0x4758, 0x475a, 0x475b, 0x475d, 0x475f, 
-	0x4760, 0x4760, 0x4760, 0x4760, 0x4761, 0x4761, 0x4762, 0x4762, 
-	0x4763, 0x4764, 0x4765, 0x4765, 0x4766, 0x4767, 0x4768, 0x4769, 
-	0x476a, 0x476b, 0x476c, 0x476e, 0x476f, 0x4770, 0x4771, 0x4773, 
-	0x4774, 0x4775, 0x4777, 0x4778, 0x477a, 0x477b, 0x477d, 0x477f, 
-	0x47a0, 0x47a0, 0x47a0, 0x47a0, 0x47a1, 0x47a1, 0x47a2, 0x47a2, 
-	0x47a3, 0x47a4, 0x47a5, 0x47a5, 0x47a6, 0x47a7, 0x47a8, 0x47a9, 
-	0x47aa, 0x47ab, 0x47ac, 0x47ae, 0x47af, 0x47b0, 0x47b1, 0x47b3, 
-	0x47b4, 0x47b5, 0x47b7, 0x47b8, 0x47ba, 0x47bb, 0x47bd, 0x47bf, 
-	0x47e0, 0x47e0, 0x47e0, 0x47e0, 0x47e1, 0x47e1, 0x47e2, 0x47e2, 
-	0x47e3, 0x47e4, 0x47e5, 0x47e5, 0x47e6, 0x47e7, 0x47e8, 0x47e9, 
-	0x47ea, 0x47eb, 0x47ec, 0x47ee, 0x47ef, 0x47f0, 0x47f1, 0x47f3, 
-	0x47f4, 0x47f5, 0x47f7, 0x47f8, 0x47fa, 0x47fb, 0x47fd, 0x47ff, 
-	0x4800, 0x4800, 0x4800, 0x4800, 0x4801, 0x4801, 0x4802, 0x4802, 
-	0x4803, 0x4804, 0x4805, 0x4805, 0x4806, 0x4807, 0x4808, 0x4809, 
-	0x480a, 0x480b, 0x480c, 0x480e, 0x480f, 0x4810, 0x4811, 0x4813, 
-	0x4814, 0x4815, 0x4817, 0x4818, 0x481a, 0x481b, 0x481d, 0x481f, 
-	0x4800, 0x4800, 0x4800, 0x4800, 0x4801, 0x4801, 0x4802, 0x4802, 
-	0x4803, 0x4804, 0x4805, 0x4805, 0x4806, 0x4807, 0x4808, 0x4809, 
-	0x480a, 0x480b, 0x480c, 0x480e, 0x480f, 0x4810, 0x4811, 0x4813, 
-	0x4814, 0x4815, 0x4817, 0x4818, 0x481a, 0x481b, 0x481d, 0x481f, 
-	0x4800, 0x4800, 0x4800, 0x4800, 0x4801, 0x4801, 0x4802, 0x4802, 
-	0x4803, 0x4804, 0x4805, 0x4805, 0x4806, 0x4807, 0x4808, 0x4809, 
-	0x480a, 0x480b, 0x480c, 0x480e, 0x480f, 0x4810, 0x4811, 0x4813, 
-	0x4814, 0x4815, 0x4817, 0x4818, 0x481a, 0x481b, 0x481d, 0x481f, 
-	0x4800, 0x4800, 0x4800, 0x4800, 0x4801, 0x4801, 0x4802, 0x4802, 
-	0x4803, 0x4804, 0x4805, 0x4805, 0x4806, 0x4807, 0x4808, 0x4809, 
-	0x480a, 0x480b, 0x480c, 0x480e, 0x480f, 0x4810, 0x4811, 0x4813, 
-	0x4814, 0x4815, 0x4817, 0x4818, 0x481a, 0x481b, 0x481d, 0x481f, 
-	0x4800, 0x4800, 0x4800, 0x4800, 0x4801, 0x4801, 0x4802, 0x4802, 
-	0x4803, 0x4804, 0x4805, 0x4805, 0x4806, 0x4807, 0x4808, 0x4809, 
-	0x480a, 0x480b, 0x480c, 0x480e, 0x480f, 0x4810, 0x4811, 0x4813, 
-	0x4814, 0x4815, 0x4817, 0x4818, 0x481a, 0x481b, 0x481d, 0x481f, 
-	0x4820, 0x4820, 0x4820, 0x4820, 0x4821, 0x4821, 0x4822, 0x4822, 
-	0x4823, 0x4824, 0x4825, 0x4825, 0x4826, 0x4827, 0x4828, 0x4829, 
-	0x482a, 0x482b, 0x482c, 0x482e, 0x482f, 0x4830, 0x4831, 0x4833, 
-	0x4834, 0x4835, 0x4837, 0x4838, 0x483a, 0x483b, 0x483d, 0x483f, 
-	0x4820, 0x4820, 0x4820, 0x4820, 0x4821, 0x4821, 0x4822, 0x4822, 
-	0x4823, 0x4824, 0x4825, 0x4825, 0x4826, 0x4827, 0x4828, 0x4829, 
-	0x482a, 0x482b, 0x482c, 0x482e, 0x482f, 0x4830, 0x4831, 0x4833, 
-	0x4834, 0x4835, 0x4837, 0x4838, 0x483a, 0x483b, 0x483d, 0x483f, 
-	0x4820, 0x4820, 0x4820, 0x4820, 0x4821, 0x4821, 0x4822, 0x4822, 
-	0x4823, 0x4824, 0x4825, 0x4825, 0x4826, 0x4827, 0x4828, 0x4829, 
-	0x482a, 0x482b, 0x482c, 0x482e, 0x482f, 0x4830, 0x4831, 0x4833, 
-	0x4834, 0x4835, 0x4837, 0x4838, 0x483a, 0x483b, 0x483d, 0x483f, 
-	0x4840, 0x4840, 0x4840, 0x4840, 0x4841, 0x4841, 0x4842, 0x4842, 
-	0x4843, 0x4844, 0x4845, 0x4845, 0x4846, 0x4847, 0x4848, 0x4849, 
-	0x484a, 0x484b, 0x484c, 0x484e, 0x484f, 0x4850, 0x4851, 0x4853, 
-	0x4854, 0x4855, 0x4857, 0x4858, 0x485a, 0x485b, 0x485d, 0x485f, 
-	0x4840, 0x4840, 0x4840, 0x4840, 0x4841, 0x4841, 0x4842, 0x4842, 
-	0x4843, 0x4844, 0x4845, 0x4845, 0x4846, 0x4847, 0x4848, 0x4849, 
-	0x484a, 0x484b, 0x484c, 0x484e, 0x484f, 0x4850, 0x4851, 0x4853, 
-	0x4854, 0x4855, 0x4857, 0x4858, 0x485a, 0x485b, 0x485d, 0x485f, 
-	0x4860, 0x4860, 0x4860, 0x4860, 0x4861, 0x4861, 0x4862, 0x4862, 
-	0x4863, 0x4864, 0x4865, 0x4865, 0x4866, 0x4867, 0x4868, 0x4869, 
-	0x486a, 0x486b, 0x486c, 0x486e, 0x486f, 0x4870, 0x4871, 0x4873, 
-	0x4874, 0x4875, 0x4877, 0x4878, 0x487a, 0x487b, 0x487d, 0x487f, 
-	0x4860, 0x4860, 0x4860, 0x4860, 0x4861, 0x4861, 0x4862, 0x4862, 
-	0x4863, 0x4864, 0x4865, 0x4865, 0x4866, 0x4867, 0x4868, 0x4869, 
-	0x486a, 0x486b, 0x486c, 0x486e, 0x486f, 0x4870, 0x4871, 0x4873, 
-	0x4874, 0x4875, 0x4877, 0x4878, 0x487a, 0x487b, 0x487d, 0x487f, 
-	0x4880, 0x4880, 0x4880, 0x4880, 0x4881, 0x4881, 0x4882, 0x4882, 
-	0x4883, 0x4884, 0x4885, 0x4885, 0x4886, 0x4887, 0x4888, 0x4889, 
-	0x488a, 0x488b, 0x488c, 0x488e, 0x488f, 0x4890, 0x4891, 0x4893, 
-	0x4894, 0x4895, 0x4897, 0x4898, 0x489a, 0x489b, 0x489d, 0x489f, 
-	0x48a0, 0x48a0, 0x48a0, 0x48a0, 0x48a1, 0x48a1, 0x48a2, 0x48a2, 
-	0x48a3, 0x48a4, 0x48a5, 0x48a5, 0x48a6, 0x48a7, 0x48a8, 0x48a9, 
-	0x48aa, 0x48ab, 0x48ac, 0x48ae, 0x48af, 0x48b0, 0x48b1, 0x48b3, 
-	0x48b4, 0x48b5, 0x48b7, 0x48b8, 0x48ba, 0x48bb, 0x48bd, 0x48bf, 
-	0x48a0, 0x48a0, 0x48a0, 0x48a0, 0x48a1, 0x48a1, 0x48a2, 0x48a2, 
-	0x48a3, 0x48a4, 0x48a5, 0x48a5, 0x48a6, 0x48a7, 0x48a8, 0x48a9, 
-	0x48aa, 0x48ab, 0x48ac, 0x48ae, 0x48af, 0x48b0, 0x48b1, 0x48b3, 
-	0x48b4, 0x48b5, 0x48b7, 0x48b8, 0x48ba, 0x48bb, 0x48bd, 0x48bf, 
-	0x48c0, 0x48c0, 0x48c0, 0x48c0, 0x48c1, 0x48c1, 0x48c2, 0x48c2, 
-	0x48c3, 0x48c4, 0x48c5, 0x48c5, 0x48c6, 0x48c7, 0x48c8, 0x48c9, 
-	0x48ca, 0x48cb, 0x48cc, 0x48ce, 0x48cf, 0x48d0, 0x48d1, 0x48d3, 
-	0x48d4, 0x48d5, 0x48d7, 0x48d8, 0x48da, 0x48db, 0x48dd, 0x48df, 
-	0x48e0, 0x48e0, 0x48e0, 0x48e0, 0x48e1, 0x48e1, 0x48e2, 0x48e2, 
-	0x48e3, 0x48e4, 0x48e5, 0x48e5, 0x48e6, 0x48e7, 0x48e8, 0x48e9, 
-	0x48ea, 0x48eb, 0x48ec, 0x48ee, 0x48ef, 0x48f0, 0x48f1, 0x48f3, 
-	0x48f4, 0x48f5, 0x48f7, 0x48f8, 0x48fa, 0x48fb, 0x48fd, 0x48ff, 
-	0x48e0, 0x48e0, 0x48e0, 0x48e0, 0x48e1, 0x48e1, 0x48e2, 0x48e2, 
-	0x48e3, 0x48e4, 0x48e5, 0x48e5, 0x48e6, 0x48e7, 0x48e8, 0x48e9, 
-	0x48ea, 0x48eb, 0x48ec, 0x48ee, 0x48ef, 0x48f0, 0x48f1, 0x48f3, 
-	0x48f4, 0x48f5, 0x48f7, 0x48f8, 0x48fa, 0x48fb, 0x48fd, 0x48ff, 
-	0x4900, 0x4900, 0x4900, 0x4900, 0x4901, 0x4901, 0x4902, 0x4902, 
-	0x4903, 0x4904, 0x4905, 0x4905, 0x4906, 0x4907, 0x4908, 0x4909, 
-	0x490a, 0x490b, 0x490c, 0x490e, 0x490f, 0x4910, 0x4911, 0x4913, 
-	0x4914, 0x4915, 0x4917, 0x4918, 0x491a, 0x491b, 0x491d, 0x491f, 
-	0x4920, 0x4920, 0x4920, 0x4920, 0x4921, 0x4921, 0x4922, 0x4922, 
-	0x4923, 0x4924, 0x4925, 0x4925, 0x4926, 0x4927, 0x4928, 0x4929, 
-	0x492a, 0x492b, 0x492c, 0x492e, 0x492f, 0x4930, 0x4931, 0x4933, 
-	0x4934, 0x4935, 0x4937, 0x4938, 0x493a, 0x493b, 0x493d, 0x493f, 
-	0x4940, 0x4940, 0x4940, 0x4940, 0x4941, 0x4941, 0x4942, 0x4942, 
-	0x4943, 0x4944, 0x4945, 0x4945, 0x4946, 0x4947, 0x4948, 0x4949, 
-	0x494a, 0x494b, 0x494c, 0x494e, 0x494f, 0x4950, 0x4951, 0x4953, 
-	0x4954, 0x4955, 0x4957, 0x4958, 0x495a, 0x495b, 0x495d, 0x495f, 
-	0x4940, 0x4940, 0x4940, 0x4940, 0x4941, 0x4941, 0x4942, 0x4942, 
-	0x4943, 0x4944, 0x4945, 0x4945, 0x4946, 0x4947, 0x4948, 0x4949, 
-	0x494a, 0x494b, 0x494c, 0x494e, 0x494f, 0x4950, 0x4951, 0x4953, 
-	0x4954, 0x4955, 0x4957, 0x4958, 0x495a, 0x495b, 0x495d, 0x495f, 
-	0x4960, 0x4960, 0x4960, 0x4960, 0x4961, 0x4961, 0x4962, 0x4962, 
-	0x4963, 0x4964, 0x4965, 0x4965, 0x4966, 0x4967, 0x4968, 0x4969, 
-	0x496a, 0x496b, 0x496c, 0x496e, 0x496f, 0x4970, 0x4971, 0x4973, 
-	0x4974, 0x4975, 0x4977, 0x4978, 0x497a, 0x497b, 0x497d, 0x497f, 
-	0x4980, 0x4980, 0x4980, 0x4980, 0x4981, 0x4981, 0x4982, 0x4982, 
-	0x4983, 0x4984, 0x4985, 0x4985, 0x4986, 0x4987, 0x4988, 0x4989, 
-	0x498a, 0x498b, 0x498c, 0x498e, 0x498f, 0x4990, 0x4991, 0x4993, 
-	0x4994, 0x4995, 0x4997, 0x4998, 0x499a, 0x499b, 0x499d, 0x499f, 
-	0x49a0, 0x49a0, 0x49a0, 0x49a0, 0x49a1, 0x49a1, 0x49a2, 0x49a2, 
-	0x49a3, 0x49a4, 0x49a5, 0x49a5, 0x49a6, 0x49a7, 0x49a8, 0x49a9, 
-	0x49aa, 0x49ab, 0x49ac, 0x49ae, 0x49af, 0x49b0, 0x49b1, 0x49b3, 
-	0x49b4, 0x49b5, 0x49b7, 0x49b8, 0x49ba, 0x49bb, 0x49bd, 0x49bf, 
-	0x49c0, 0x49c0, 0x49c0, 0x49c0, 0x49c1, 0x49c1, 0x49c2, 0x49c2, 
-	0x49c3, 0x49c4, 0x49c5, 0x49c5, 0x49c6, 0x49c7, 0x49c8, 0x49c9, 
-	0x49ca, 0x49cb, 0x49cc, 0x49ce, 0x49cf, 0x49d0, 0x49d1, 0x49d3, 
-	0x49d4, 0x49d5, 0x49d7, 0x49d8, 0x49da, 0x49db, 0x49dd, 0x49df, 
-	0x49e0, 0x49e0, 0x49e0, 0x49e0, 0x49e1, 0x49e1, 0x49e2, 0x49e2, 
-	0x49e3, 0x49e4, 0x49e5, 0x49e5, 0x49e6, 0x49e7, 0x49e8, 0x49e9, 
-	0x49ea, 0x49eb, 0x49ec, 0x49ee, 0x49ef, 0x49f0, 0x49f1, 0x49f3, 
-	0x49f4, 0x49f5, 0x49f7, 0x49f8, 0x49fa, 0x49fb, 0x49fd, 0x49ff, 
-	0x4a00, 0x4a00, 0x4a00, 0x4a00, 0x4a01, 0x4a01, 0x4a02, 0x4a02, 
-	0x4a03, 0x4a04, 0x4a05, 0x4a05, 0x4a06, 0x4a07, 0x4a08, 0x4a09, 
-	0x4a0a, 0x4a0b, 0x4a0c, 0x4a0e, 0x4a0f, 0x4a10, 0x4a11, 0x4a13, 
-	0x4a14, 0x4a15, 0x4a17, 0x4a18, 0x4a1a, 0x4a1b, 0x4a1d, 0x4a1f, 
-	0x4a20, 0x4a20, 0x4a20, 0x4a20, 0x4a21, 0x4a21, 0x4a22, 0x4a22, 
-	0x4a23, 0x4a24, 0x4a25, 0x4a25, 0x4a26, 0x4a27, 0x4a28, 0x4a29, 
-	0x4a2a, 0x4a2b, 0x4a2c, 0x4a2e, 0x4a2f, 0x4a30, 0x4a31, 0x4a33, 
-	0x4a34, 0x4a35, 0x4a37, 0x4a38, 0x4a3a, 0x4a3b, 0x4a3d, 0x4a3f, 
-	0x4a40, 0x4a40, 0x4a40, 0x4a40, 0x4a41, 0x4a41, 0x4a42, 0x4a42, 
-	0x4a43, 0x4a44, 0x4a45, 0x4a45, 0x4a46, 0x4a47, 0x4a48, 0x4a49, 
-	0x4a4a, 0x4a4b, 0x4a4c, 0x4a4e, 0x4a4f, 0x4a50, 0x4a51, 0x4a53, 
-	0x4a54, 0x4a55, 0x4a57, 0x4a58, 0x4a5a, 0x4a5b, 0x4a5d, 0x4a5f, 
-	0x4a60, 0x4a60, 0x4a60, 0x4a60, 0x4a61, 0x4a61, 0x4a62, 0x4a62, 
-	0x4a63, 0x4a64, 0x4a65, 0x4a65, 0x4a66, 0x4a67, 0x4a68, 0x4a69, 
-	0x4a6a, 0x4a6b, 0x4a6c, 0x4a6e, 0x4a6f, 0x4a70, 0x4a71, 0x4a73, 
-	0x4a74, 0x4a75, 0x4a77, 0x4a78, 0x4a7a, 0x4a7b, 0x4a7d, 0x4a7f, 
-	0x4a80, 0x4a80, 0x4a80, 0x4a80, 0x4a81, 0x4a81, 0x4a82, 0x4a82, 
-	0x4a83, 0x4a84, 0x4a85, 0x4a85, 0x4a86, 0x4a87, 0x4a88, 0x4a89, 
-	0x4a8a, 0x4a8b, 0x4a8c, 0x4a8e, 0x4a8f, 0x4a90, 0x4a91, 0x4a93, 
-	0x4a94, 0x4a95, 0x4a97, 0x4a98, 0x4a9a, 0x4a9b, 0x4a9d, 0x4a9f, 
-	0x4aa0, 0x4aa0, 0x4aa0, 0x4aa0, 0x4aa1, 0x4aa1, 0x4aa2, 0x4aa2, 
-	0x4aa3, 0x4aa4, 0x4aa5, 0x4aa5, 0x4aa6, 0x4aa7, 0x4aa8, 0x4aa9, 
-	0x4aaa, 0x4aab, 0x4aac, 0x4aae, 0x4aaf, 0x4ab0, 0x4ab1, 0x4ab3, 
-	0x4ab4, 0x4ab5, 0x4ab7, 0x4ab8, 0x4aba, 0x4abb, 0x4abd, 0x4abf, 
-	0x4ac0, 0x4ac0, 0x4ac0, 0x4ac0, 0x4ac1, 0x4ac1, 0x4ac2, 0x4ac2, 
-	0x4ac3, 0x4ac4, 0x4ac5, 0x4ac5, 0x4ac6, 0x4ac7, 0x4ac8, 0x4ac9, 
-	0x4aca, 0x4acb, 0x4acc, 0x4ace, 0x4acf, 0x4ad0, 0x4ad1, 0x4ad3, 
-	0x4ad4, 0x4ad5, 0x4ad7, 0x4ad8, 0x4ada, 0x4adb, 0x4add, 0x4adf, 
-	0x4ae0, 0x4ae0, 0x4ae0, 0x4ae0, 0x4ae1, 0x4ae1, 0x4ae2, 0x4ae2, 
-	0x4ae3, 0x4ae4, 0x4ae5, 0x4ae5, 0x4ae6, 0x4ae7, 0x4ae8, 0x4ae9, 
-	0x4aea, 0x4aeb, 0x4aec, 0x4aee, 0x4aef, 0x4af0, 0x4af1, 0x4af3, 
-	0x4af4, 0x4af5, 0x4af7, 0x4af8, 0x4afa, 0x4afb, 0x4afd, 0x4aff, 
-	0x4b00, 0x4b00, 0x4b00, 0x4b00, 0x4b01, 0x4b01, 0x4b02, 0x4b02, 
-	0x4b03, 0x4b04, 0x4b05, 0x4b05, 0x4b06, 0x4b07, 0x4b08, 0x4b09, 
-	0x4b0a, 0x4b0b, 0x4b0c, 0x4b0e, 0x4b0f, 0x4b10, 0x4b11, 0x4b13, 
-	0x4b14, 0x4b15, 0x4b17, 0x4b18, 0x4b1a, 0x4b1b, 0x4b1d, 0x4b1f, 
-	0x4b20, 0x4b20, 0x4b20, 0x4b20, 0x4b21, 0x4b21, 0x4b22, 0x4b22, 
-	0x4b23, 0x4b24, 0x4b25, 0x4b25, 0x4b26, 0x4b27, 0x4b28, 0x4b29, 
-	0x4b2a, 0x4b2b, 0x4b2c, 0x4b2e, 0x4b2f, 0x4b30, 0x4b31, 0x4b33, 
-	0x4b34, 0x4b35, 0x4b37, 0x4b38, 0x4b3a, 0x4b3b, 0x4b3d, 0x4b3f, 
-	0x4b40, 0x4b40, 0x4b40, 0x4b40, 0x4b41, 0x4b41, 0x4b42, 0x4b42, 
-	0x4b43, 0x4b44, 0x4b45, 0x4b45, 0x4b46, 0x4b47, 0x4b48, 0x4b49, 
-	0x4b4a, 0x4b4b, 0x4b4c, 0x4b4e, 0x4b4f, 0x4b50, 0x4b51, 0x4b53, 
-	0x4b54, 0x4b55, 0x4b57, 0x4b58, 0x4b5a, 0x4b5b, 0x4b5d, 0x4b5f, 
-	0x4b80, 0x4b80, 0x4b80, 0x4b80, 0x4b81, 0x4b81, 0x4b82, 0x4b82, 
-	0x4b83, 0x4b84, 0x4b85, 0x4b85, 0x4b86, 0x4b87, 0x4b88, 0x4b89, 
-	0x4b8a, 0x4b8b, 0x4b8c, 0x4b8e, 0x4b8f, 0x4b90, 0x4b91, 0x4b93, 
-	0x4b94, 0x4b95, 0x4b97, 0x4b98, 0x4b9a, 0x4b9b, 0x4b9d, 0x4b9f, 
-	0x4ba0, 0x4ba0, 0x4ba0, 0x4ba0, 0x4ba1, 0x4ba1, 0x4ba2, 0x4ba2, 
-	0x4ba3, 0x4ba4, 0x4ba5, 0x4ba5, 0x4ba6, 0x4ba7, 0x4ba8, 0x4ba9, 
-	0x4baa, 0x4bab, 0x4bac, 0x4bae, 0x4baf, 0x4bb0, 0x4bb1, 0x4bb3, 
-	0x4bb4, 0x4bb5, 0x4bb7, 0x4bb8, 0x4bba, 0x4bbb, 0x4bbd, 0x4bbf, 
-	0x4bc0, 0x4bc0, 0x4bc0, 0x4bc0, 0x4bc1, 0x4bc1, 0x4bc2, 0x4bc2, 
-	0x4bc3, 0x4bc4, 0x4bc5, 0x4bc5, 0x4bc6, 0x4bc7, 0x4bc8, 0x4bc9, 
-	0x4bca, 0x4bcb, 0x4bcc, 0x4bce, 0x4bcf, 0x4bd0, 0x4bd1, 0x4bd3, 
-	0x4bd4, 0x4bd5, 0x4bd7, 0x4bd8, 0x4bda, 0x4bdb, 0x4bdd, 0x4bdf, 
-	0x4be0, 0x4be0, 0x4be0, 0x4be0, 0x4be1, 0x4be1, 0x4be2, 0x4be2, 
-	0x4be3, 0x4be4, 0x4be5, 0x4be5, 0x4be6, 0x4be7, 0x4be8, 0x4be9, 
-	0x4bea, 0x4beb, 0x4bec, 0x4bee, 0x4bef, 0x4bf0, 0x4bf1, 0x4bf3, 
-	0x4bf4, 0x4bf5, 0x4bf7, 0x4bf8, 0x4bfa, 0x4bfb, 0x4bfd, 0x4bff, 
-	0x4c00, 0x4c00, 0x4c00, 0x4c00, 0x4c01, 0x4c01, 0x4c02, 0x4c02, 
-	0x4c03, 0x4c04, 0x4c05, 0x4c05, 0x4c06, 0x4c07, 0x4c08, 0x4c09, 
-	0x4c0a, 0x4c0b, 0x4c0c, 0x4c0e, 0x4c0f, 0x4c10, 0x4c11, 0x4c13, 
-	0x4c14, 0x4c15, 0x4c17, 0x4c18, 0x4c1a, 0x4c1b, 0x4c1d, 0x4c1f, 
-	0x4c40, 0x4c40, 0x4c40, 0x4c40, 0x4c41, 0x4c41, 0x4c42, 0x4c42, 
-	0x4c43, 0x4c44, 0x4c45, 0x4c45, 0x4c46, 0x4c47, 0x4c48, 0x4c49, 
-	0x4c4a, 0x4c4b, 0x4c4c, 0x4c4e, 0x4c4f, 0x4c50, 0x4c51, 0x4c53, 
-	0x4c54, 0x4c55, 0x4c57, 0x4c58, 0x4c5a, 0x4c5b, 0x4c5d, 0x4c5f, 
-	0x4c60, 0x4c60, 0x4c60, 0x4c60, 0x4c61, 0x4c61, 0x4c62, 0x4c62, 
-	0x4c63, 0x4c64, 0x4c65, 0x4c65, 0x4c66, 0x4c67, 0x4c68, 0x4c69, 
-	0x4c6a, 0x4c6b, 0x4c6c, 0x4c6e, 0x4c6f, 0x4c70, 0x4c71, 0x4c73, 
-	0x4c74, 0x4c75, 0x4c77, 0x4c78, 0x4c7a, 0x4c7b, 0x4c7d, 0x4c7f, 
-	0x4c80, 0x4c80, 0x4c80, 0x4c80, 0x4c81, 0x4c81, 0x4c82, 0x4c82, 
-	0x4c83, 0x4c84, 0x4c85, 0x4c85, 0x4c86, 0x4c87, 0x4c88, 0x4c89, 
-	0x4c8a, 0x4c8b, 0x4c8c, 0x4c8e, 0x4c8f, 0x4c90, 0x4c91, 0x4c93, 
-	0x4c94, 0x4c95, 0x4c97, 0x4c98, 0x4c9a, 0x4c9b, 0x4c9d, 0x4c9f, 
-	0x4cc0, 0x4cc0, 0x4cc0, 0x4cc0, 0x4cc1, 0x4cc1, 0x4cc2, 0x4cc2, 
-	0x4cc3, 0x4cc4, 0x4cc5, 0x4cc5, 0x4cc6, 0x4cc7, 0x4cc8, 0x4cc9, 
-	0x4cca, 0x4ccb, 0x4ccc, 0x4cce, 0x4ccf, 0x4cd0, 0x4cd1, 0x4cd3, 
-	0x4cd4, 0x4cd5, 0x4cd7, 0x4cd8, 0x4cda, 0x4cdb, 0x4cdd, 0x4cdf, 
-	0x4ce0, 0x4ce0, 0x4ce0, 0x4ce0, 0x4ce1, 0x4ce1, 0x4ce2, 0x4ce2, 
-	0x4ce3, 0x4ce4, 0x4ce5, 0x4ce5, 0x4ce6, 0x4ce7, 0x4ce8, 0x4ce9, 
-	0x4cea, 0x4ceb, 0x4cec, 0x4cee, 0x4cef, 0x4cf0, 0x4cf1, 0x4cf3, 
-	0x4cf4, 0x4cf5, 0x4cf7, 0x4cf8, 0x4cfa, 0x4cfb, 0x4cfd, 0x4cff, 
-	0x4d00, 0x4d00, 0x4d00, 0x4d00, 0x4d01, 0x4d01, 0x4d02, 0x4d02, 
-	0x4d03, 0x4d04, 0x4d05, 0x4d05, 0x4d06, 0x4d07, 0x4d08, 0x4d09, 
-	0x4d0a, 0x4d0b, 0x4d0c, 0x4d0e, 0x4d0f, 0x4d10, 0x4d11, 0x4d13, 
-	0x4d14, 0x4d15, 0x4d17, 0x4d18, 0x4d1a, 0x4d1b, 0x4d1d, 0x4d1f, 
-	0x4d40, 0x4d40, 0x4d40, 0x4d40, 0x4d41, 0x4d41, 0x4d42, 0x4d42, 
-	0x4d43, 0x4d44, 0x4d45, 0x4d45, 0x4d46, 0x4d47, 0x4d48, 0x4d49, 
-	0x4d4a, 0x4d4b, 0x4d4c, 0x4d4e, 0x4d4f, 0x4d50, 0x4d51, 0x4d53, 
-	0x4d54, 0x4d55, 0x4d57, 0x4d58, 0x4d5a, 0x4d5b, 0x4d5d, 0x4d5f, 
-	0x4d60, 0x4d60, 0x4d60, 0x4d60, 0x4d61, 0x4d61, 0x4d62, 0x4d62, 
-	0x4d63, 0x4d64, 0x4d65, 0x4d65, 0x4d66, 0x4d67, 0x4d68, 0x4d69, 
-	0x4d6a, 0x4d6b, 0x4d6c, 0x4d6e, 0x4d6f, 0x4d70, 0x4d71, 0x4d73, 
-	0x4d74, 0x4d75, 0x4d77, 0x4d78, 0x4d7a, 0x4d7b, 0x4d7d, 0x4d7f, 
-	0x4d80, 0x4d80, 0x4d80, 0x4d80, 0x4d81, 0x4d81, 0x4d82, 0x4d82, 
-	0x4d83, 0x4d84, 0x4d85, 0x4d85, 0x4d86, 0x4d87, 0x4d88, 0x4d89, 
-	0x4d8a, 0x4d8b, 0x4d8c, 0x4d8e, 0x4d8f, 0x4d90, 0x4d91, 0x4d93, 
-	0x4d94, 0x4d95, 0x4d97, 0x4d98, 0x4d9a, 0x4d9b, 0x4d9d, 0x4d9f, 
-	0x4dc0, 0x4dc0, 0x4dc0, 0x4dc0, 0x4dc1, 0x4dc1, 0x4dc2, 0x4dc2, 
-	0x4dc3, 0x4dc4, 0x4dc5, 0x4dc5, 0x4dc6, 0x4dc7, 0x4dc8, 0x4dc9, 
-	0x4dca, 0x4dcb, 0x4dcc, 0x4dce, 0x4dcf, 0x4dd0, 0x4dd1, 0x4dd3, 
-	0x4dd4, 0x4dd5, 0x4dd7, 0x4dd8, 0x4dda, 0x4ddb, 0x4ddd, 0x4ddf, 
-	0x4de0, 0x4de0, 0x4de0, 0x4de0, 0x4de1, 0x4de1, 0x4de2, 0x4de2, 
-	0x4de3, 0x4de4, 0x4de5, 0x4de5, 0x4de6, 0x4de7, 0x4de8, 0x4de9, 
-	0x4dea, 0x4deb, 0x4dec, 0x4dee, 0x4def, 0x4df0, 0x4df1, 0x4df3, 
-	0x4df4, 0x4df5, 0x4df7, 0x4df8, 0x4dfa, 0x4dfb, 0x4dfd, 0x4dff, 
-	0x4e20, 0x4e20, 0x4e20, 0x4e20, 0x4e21, 0x4e21, 0x4e22, 0x4e22, 
-	0x4e23, 0x4e24, 0x4e25, 0x4e25, 0x4e26, 0x4e27, 0x4e28, 0x4e29, 
-	0x4e2a, 0x4e2b, 0x4e2c, 0x4e2e, 0x4e2f, 0x4e30, 0x4e31, 0x4e33, 
-	0x4e34, 0x4e35, 0x4e37, 0x4e38, 0x4e3a, 0x4e3b, 0x4e3d, 0x4e3f, 
-	0x4e40, 0x4e40, 0x4e40, 0x4e40, 0x4e41, 0x4e41, 0x4e42, 0x4e42, 
-	0x4e43, 0x4e44, 0x4e45, 0x4e45, 0x4e46, 0x4e47, 0x4e48, 0x4e49, 
-	0x4e4a, 0x4e4b, 0x4e4c, 0x4e4e, 0x4e4f, 0x4e50, 0x4e51, 0x4e53, 
-	0x4e54, 0x4e55, 0x4e57, 0x4e58, 0x4e5a, 0x4e5b, 0x4e5d, 0x4e5f, 
-	0x4e80, 0x4e80, 0x4e80, 0x4e80, 0x4e81, 0x4e81, 0x4e82, 0x4e82, 
-	0x4e83, 0x4e84, 0x4e85, 0x4e85, 0x4e86, 0x4e87, 0x4e88, 0x4e89, 
-	0x4e8a, 0x4e8b, 0x4e8c, 0x4e8e, 0x4e8f, 0x4e90, 0x4e91, 0x4e93, 
-	0x4e94, 0x4e95, 0x4e97, 0x4e98, 0x4e9a, 0x4e9b, 0x4e9d, 0x4e9f, 
-	0x4ea0, 0x4ea0, 0x4ea0, 0x4ea0, 0x4ea1, 0x4ea1, 0x4ea2, 0x4ea2, 
-	0x4ea3, 0x4ea4, 0x4ea5, 0x4ea5, 0x4ea6, 0x4ea7, 0x4ea8, 0x4ea9, 
-	0x4eaa, 0x4eab, 0x4eac, 0x4eae, 0x4eaf, 0x4eb0, 0x4eb1, 0x4eb3, 
-	0x4eb4, 0x4eb5, 0x4eb7, 0x4eb8, 0x4eba, 0x4ebb, 0x4ebd, 0x4ebf, 
-	0x4ee0, 0x4ee0, 0x4ee0, 0x4ee0, 0x4ee1, 0x4ee1, 0x4ee2, 0x4ee2, 
-	0x4ee3, 0x4ee4, 0x4ee5, 0x4ee5, 0x4ee6, 0x4ee7, 0x4ee8, 0x4ee9, 
-	0x4eea, 0x4eeb, 0x4eec, 0x4eee, 0x4eef, 0x4ef0, 0x4ef1, 0x4ef3, 
-	0x4ef4, 0x4ef5, 0x4ef7, 0x4ef8, 0x4efa, 0x4efb, 0x4efd, 0x4eff, 
-	0x4f00, 0x4f00, 0x4f00, 0x4f00, 0x4f01, 0x4f01, 0x4f02, 0x4f02, 
-	0x4f03, 0x4f04, 0x4f05, 0x4f05, 0x4f06, 0x4f07, 0x4f08, 0x4f09, 
-	0x4f0a, 0x4f0b, 0x4f0c, 0x4f0e, 0x4f0f, 0x4f10, 0x4f11, 0x4f13, 
-	0x4f14, 0x4f15, 0x4f17, 0x4f18, 0x4f1a, 0x4f1b, 0x4f1d, 0x4f1f, 
-	0x4f40, 0x4f40, 0x4f40, 0x4f40, 0x4f41, 0x4f41, 0x4f42, 0x4f42, 
-	0x4f43, 0x4f44, 0x4f45, 0x4f45, 0x4f46, 0x4f47, 0x4f48, 0x4f49, 
-	0x4f4a, 0x4f4b, 0x4f4c, 0x4f4e, 0x4f4f, 0x4f50, 0x4f51, 0x4f53, 
-	0x4f54, 0x4f55, 0x4f57, 0x4f58, 0x4f5a, 0x4f5b, 0x4f5d, 0x4f5f, 
-	0x4f60, 0x4f60, 0x4f60, 0x4f60, 0x4f61, 0x4f61, 0x4f62, 0x4f62, 
-	0x4f63, 0x4f64, 0x4f65, 0x4f65, 0x4f66, 0x4f67, 0x4f68, 0x4f69, 
-	0x4f6a, 0x4f6b, 0x4f6c, 0x4f6e, 0x4f6f, 0x4f70, 0x4f71, 0x4f73, 
-	0x4f74, 0x4f75, 0x4f77, 0x4f78, 0x4f7a, 0x4f7b, 0x4f7d, 0x4f7f, 
-	0x4fa0, 0x4fa0, 0x4fa0, 0x4fa0, 0x4fa1, 0x4fa1, 0x4fa2, 0x4fa2, 
-	0x4fa3, 0x4fa4, 0x4fa5, 0x4fa5, 0x4fa6, 0x4fa7, 0x4fa8, 0x4fa9, 
-	0x4faa, 0x4fab, 0x4fac, 0x4fae, 0x4faf, 0x4fb0, 0x4fb1, 0x4fb3, 
-	0x4fb4, 0x4fb5, 0x4fb7, 0x4fb8, 0x4fba, 0x4fbb, 0x4fbd, 0x4fbf, 
-	0x4fe0, 0x4fe0, 0x4fe0, 0x4fe0, 0x4fe1, 0x4fe1, 0x4fe2, 0x4fe2, 
-	0x4fe3, 0x4fe4, 0x4fe5, 0x4fe5, 0x4fe6, 0x4fe7, 0x4fe8, 0x4fe9, 
-	0x4fea, 0x4feb, 0x4fec, 0x4fee, 0x4fef, 0x4ff0, 0x4ff1, 0x4ff3, 
-	0x4ff4, 0x4ff5, 0x4ff7, 0x4ff8, 0x4ffa, 0x4ffb, 0x4ffd, 0x4fff, 
-	0x5000, 0x5000, 0x5000, 0x5000, 0x5001, 0x5001, 0x5002, 0x5002, 
-	0x5003, 0x5004, 0x5005, 0x5005, 0x5006, 0x5007, 0x5008, 0x5009, 
-	0x500a, 0x500b, 0x500c, 0x500e, 0x500f, 0x5010, 0x5011, 0x5013, 
-	0x5014, 0x5015, 0x5017, 0x5018, 0x501a, 0x501b, 0x501d, 0x501f, 
-	0x5000, 0x5000, 0x5000, 0x5000, 0x5001, 0x5001, 0x5002, 0x5002, 
-	0x5003, 0x5004, 0x5005, 0x5005, 0x5006, 0x5007, 0x5008, 0x5009, 
-	0x500a, 0x500b, 0x500c, 0x500e, 0x500f, 0x5010, 0x5011, 0x5013, 
-	0x5014, 0x5015, 0x5017, 0x5018, 0x501a, 0x501b, 0x501d, 0x501f, 
-	0x5000, 0x5000, 0x5000, 0x5000, 0x5001, 0x5001, 0x5002, 0x5002, 
-	0x5003, 0x5004, 0x5005, 0x5005, 0x5006, 0x5007, 0x5008, 0x5009, 
-	0x500a, 0x500b, 0x500c, 0x500e, 0x500f, 0x5010, 0x5011, 0x5013, 
-	0x5014, 0x5015, 0x5017, 0x5018, 0x501a, 0x501b, 0x501d, 0x501f, 
-	0x5000, 0x5000, 0x5000, 0x5000, 0x5001, 0x5001, 0x5002, 0x5002, 
-	0x5003, 0x5004, 0x5005, 0x5005, 0x5006, 0x5007, 0x5008, 0x5009, 
-	0x500a, 0x500b, 0x500c, 0x500e, 0x500f, 0x5010, 0x5011, 0x5013, 
-	0x5014, 0x5015, 0x5017, 0x5018, 0x501a, 0x501b, 0x501d, 0x501f, 
-	0x5000, 0x5000, 0x5000, 0x5000, 0x5001, 0x5001, 0x5002, 0x5002, 
-	0x5003, 0x5004, 0x5005, 0x5005, 0x5006, 0x5007, 0x5008, 0x5009, 
-	0x500a, 0x500b, 0x500c, 0x500e, 0x500f, 0x5010, 0x5011, 0x5013, 
-	0x5014, 0x5015, 0x5017, 0x5018, 0x501a, 0x501b, 0x501d, 0x501f, 
-	0x5020, 0x5020, 0x5020, 0x5020, 0x5021, 0x5021, 0x5022, 0x5022, 
-	0x5023, 0x5024, 0x5025, 0x5025, 0x5026, 0x5027, 0x5028, 0x5029, 
-	0x502a, 0x502b, 0x502c, 0x502e, 0x502f, 0x5030, 0x5031, 0x5033, 
-	0x5034, 0x5035, 0x5037, 0x5038, 0x503a, 0x503b, 0x503d, 0x503f, 
-	0x5020, 0x5020, 0x5020, 0x5020, 0x5021, 0x5021, 0x5022, 0x5022, 
-	0x5023, 0x5024, 0x5025, 0x5025, 0x5026, 0x5027, 0x5028, 0x5029, 
-	0x502a, 0x502b, 0x502c, 0x502e, 0x502f, 0x5030, 0x5031, 0x5033, 
-	0x5034, 0x5035, 0x5037, 0x5038, 0x503a, 0x503b, 0x503d, 0x503f, 
-	0x5020, 0x5020, 0x5020, 0x5020, 0x5021, 0x5021, 0x5022, 0x5022, 
-	0x5023, 0x5024, 0x5025, 0x5025, 0x5026, 0x5027, 0x5028, 0x5029, 
-	0x502a, 0x502b, 0x502c, 0x502e, 0x502f, 0x5030, 0x5031, 0x5033, 
-	0x5034, 0x5035, 0x5037, 0x5038, 0x503a, 0x503b, 0x503d, 0x503f, 
-	0x5040, 0x5040, 0x5040, 0x5040, 0x5041, 0x5041, 0x5042, 0x5042, 
-	0x5043, 0x5044, 0x5045, 0x5045, 0x5046, 0x5047, 0x5048, 0x5049, 
-	0x504a, 0x504b, 0x504c, 0x504e, 0x504f, 0x5050, 0x5051, 0x5053, 
-	0x5054, 0x5055, 0x5057, 0x5058, 0x505a, 0x505b, 0x505d, 0x505f, 
-	0x5040, 0x5040, 0x5040, 0x5040, 0x5041, 0x5041, 0x5042, 0x5042, 
-	0x5043, 0x5044, 0x5045, 0x5045, 0x5046, 0x5047, 0x5048, 0x5049, 
-	0x504a, 0x504b, 0x504c, 0x504e, 0x504f, 0x5050, 0x5051, 0x5053, 
-	0x5054, 0x5055, 0x5057, 0x5058, 0x505a, 0x505b, 0x505d, 0x505f, 
-	0x5060, 0x5060, 0x5060, 0x5060, 0x5061, 0x5061, 0x5062, 0x5062, 
-	0x5063, 0x5064, 0x5065, 0x5065, 0x5066, 0x5067, 0x5068, 0x5069, 
-	0x506a, 0x506b, 0x506c, 0x506e, 0x506f, 0x5070, 0x5071, 0x5073, 
-	0x5074, 0x5075, 0x5077, 0x5078, 0x507a, 0x507b, 0x507d, 0x507f, 
-	0x5060, 0x5060, 0x5060, 0x5060, 0x5061, 0x5061, 0x5062, 0x5062, 
-	0x5063, 0x5064, 0x5065, 0x5065, 0x5066, 0x5067, 0x5068, 0x5069, 
-	0x506a, 0x506b, 0x506c, 0x506e, 0x506f, 0x5070, 0x5071, 0x5073, 
-	0x5074, 0x5075, 0x5077, 0x5078, 0x507a, 0x507b, 0x507d, 0x507f, 
-	0x5080, 0x5080, 0x5080, 0x5080, 0x5081, 0x5081, 0x5082, 0x5082, 
-	0x5083, 0x5084, 0x5085, 0x5085, 0x5086, 0x5087, 0x5088, 0x5089, 
-	0x508a, 0x508b, 0x508c, 0x508e, 0x508f, 0x5090, 0x5091, 0x5093, 
-	0x5094, 0x5095, 0x5097, 0x5098, 0x509a, 0x509b, 0x509d, 0x509f, 
-	0x50a0, 0x50a0, 0x50a0, 0x50a0, 0x50a1, 0x50a1, 0x50a2, 0x50a2, 
-	0x50a3, 0x50a4, 0x50a5, 0x50a5, 0x50a6, 0x50a7, 0x50a8, 0x50a9, 
-	0x50aa, 0x50ab, 0x50ac, 0x50ae, 0x50af, 0x50b0, 0x50b1, 0x50b3, 
-	0x50b4, 0x50b5, 0x50b7, 0x50b8, 0x50ba, 0x50bb, 0x50bd, 0x50bf, 
-	0x50a0, 0x50a0, 0x50a0, 0x50a0, 0x50a1, 0x50a1, 0x50a2, 0x50a2, 
-	0x50a3, 0x50a4, 0x50a5, 0x50a5, 0x50a6, 0x50a7, 0x50a8, 0x50a9, 
-	0x50aa, 0x50ab, 0x50ac, 0x50ae, 0x50af, 0x50b0, 0x50b1, 0x50b3, 
-	0x50b4, 0x50b5, 0x50b7, 0x50b8, 0x50ba, 0x50bb, 0x50bd, 0x50bf, 
-	0x50c0, 0x50c0, 0x50c0, 0x50c0, 0x50c1, 0x50c1, 0x50c2, 0x50c2, 
-	0x50c3, 0x50c4, 0x50c5, 0x50c5, 0x50c6, 0x50c7, 0x50c8, 0x50c9, 
-	0x50ca, 0x50cb, 0x50cc, 0x50ce, 0x50cf, 0x50d0, 0x50d1, 0x50d3, 
-	0x50d4, 0x50d5, 0x50d7, 0x50d8, 0x50da, 0x50db, 0x50dd, 0x50df, 
-	0x50e0, 0x50e0, 0x50e0, 0x50e0, 0x50e1, 0x50e1, 0x50e2, 0x50e2, 
-	0x50e3, 0x50e4, 0x50e5, 0x50e5, 0x50e6, 0x50e7, 0x50e8, 0x50e9, 
-	0x50ea, 0x50eb, 0x50ec, 0x50ee, 0x50ef, 0x50f0, 0x50f1, 0x50f3, 
-	0x50f4, 0x50f5, 0x50f7, 0x50f8, 0x50fa, 0x50fb, 0x50fd, 0x50ff, 
-	0x50e0, 0x50e0, 0x50e0, 0x50e0, 0x50e1, 0x50e1, 0x50e2, 0x50e2, 
-	0x50e3, 0x50e4, 0x50e5, 0x50e5, 0x50e6, 0x50e7, 0x50e8, 0x50e9, 
-	0x50ea, 0x50eb, 0x50ec, 0x50ee, 0x50ef, 0x50f0, 0x50f1, 0x50f3, 
-	0x50f4, 0x50f5, 0x50f7, 0x50f8, 0x50fa, 0x50fb, 0x50fd, 0x50ff, 
-	0x5100, 0x5100, 0x5100, 0x5100, 0x5101, 0x5101, 0x5102, 0x5102, 
-	0x5103, 0x5104, 0x5105, 0x5105, 0x5106, 0x5107, 0x5108, 0x5109, 
-	0x510a, 0x510b, 0x510c, 0x510e, 0x510f, 0x5110, 0x5111, 0x5113, 
-	0x5114, 0x5115, 0x5117, 0x5118, 0x511a, 0x511b, 0x511d, 0x511f, 
-	0x5120, 0x5120, 0x5120, 0x5120, 0x5121, 0x5121, 0x5122, 0x5122, 
-	0x5123, 0x5124, 0x5125, 0x5125, 0x5126, 0x5127, 0x5128, 0x5129, 
-	0x512a, 0x512b, 0x512c, 0x512e, 0x512f, 0x5130, 0x5131, 0x5133, 
-	0x5134, 0x5135, 0x5137, 0x5138, 0x513a, 0x513b, 0x513d, 0x513f, 
-	0x5140, 0x5140, 0x5140, 0x5140, 0x5141, 0x5141, 0x5142, 0x5142, 
-	0x5143, 0x5144, 0x5145, 0x5145, 0x5146, 0x5147, 0x5148, 0x5149, 
-	0x514a, 0x514b, 0x514c, 0x514e, 0x514f, 0x5150, 0x5151, 0x5153, 
-	0x5154, 0x5155, 0x5157, 0x5158, 0x515a, 0x515b, 0x515d, 0x515f, 
-	0x5140, 0x5140, 0x5140, 0x5140, 0x5141, 0x5141, 0x5142, 0x5142, 
-	0x5143, 0x5144, 0x5145, 0x5145, 0x5146, 0x5147, 0x5148, 0x5149, 
-	0x514a, 0x514b, 0x514c, 0x514e, 0x514f, 0x5150, 0x5151, 0x5153, 
-	0x5154, 0x5155, 0x5157, 0x5158, 0x515a, 0x515b, 0x515d, 0x515f, 
-	0x5160, 0x5160, 0x5160, 0x5160, 0x5161, 0x5161, 0x5162, 0x5162, 
-	0x5163, 0x5164, 0x5165, 0x5165, 0x5166, 0x5167, 0x5168, 0x5169, 
-	0x516a, 0x516b, 0x516c, 0x516e, 0x516f, 0x5170, 0x5171, 0x5173, 
-	0x5174, 0x5175, 0x5177, 0x5178, 0x517a, 0x517b, 0x517d, 0x517f, 
-	0x5180, 0x5180, 0x5180, 0x5180, 0x5181, 0x5181, 0x5182, 0x5182, 
-	0x5183, 0x5184, 0x5185, 0x5185, 0x5186, 0x5187, 0x5188, 0x5189, 
-	0x518a, 0x518b, 0x518c, 0x518e, 0x518f, 0x5190, 0x5191, 0x5193, 
-	0x5194, 0x5195, 0x5197, 0x5198, 0x519a, 0x519b, 0x519d, 0x519f, 
-	0x51a0, 0x51a0, 0x51a0, 0x51a0, 0x51a1, 0x51a1, 0x51a2, 0x51a2, 
-	0x51a3, 0x51a4, 0x51a5, 0x51a5, 0x51a6, 0x51a7, 0x51a8, 0x51a9, 
-	0x51aa, 0x51ab, 0x51ac, 0x51ae, 0x51af, 0x51b0, 0x51b1, 0x51b3, 
-	0x51b4, 0x51b5, 0x51b7, 0x51b8, 0x51ba, 0x51bb, 0x51bd, 0x51bf, 
-	0x51c0, 0x51c0, 0x51c0, 0x51c0, 0x51c1, 0x51c1, 0x51c2, 0x51c2, 
-	0x51c3, 0x51c4, 0x51c5, 0x51c5, 0x51c6, 0x51c7, 0x51c8, 0x51c9, 
-	0x51ca, 0x51cb, 0x51cc, 0x51ce, 0x51cf, 0x51d0, 0x51d1, 0x51d3, 
-	0x51d4, 0x51d5, 0x51d7, 0x51d8, 0x51da, 0x51db, 0x51dd, 0x51df, 
-	0x51e0, 0x51e0, 0x51e0, 0x51e0, 0x51e1, 0x51e1, 0x51e2, 0x51e2, 
-	0x51e3, 0x51e4, 0x51e5, 0x51e5, 0x51e6, 0x51e7, 0x51e8, 0x51e9, 
-	0x51ea, 0x51eb, 0x51ec, 0x51ee, 0x51ef, 0x51f0, 0x51f1, 0x51f3, 
-	0x51f4, 0x51f5, 0x51f7, 0x51f8, 0x51fa, 0x51fb, 0x51fd, 0x51ff, 
-	0x5200, 0x5200, 0x5200, 0x5200, 0x5201, 0x5201, 0x5202, 0x5202, 
-	0x5203, 0x5204, 0x5205, 0x5205, 0x5206, 0x5207, 0x5208, 0x5209, 
-	0x520a, 0x520b, 0x520c, 0x520e, 0x520f, 0x5210, 0x5211, 0x5213, 
-	0x5214, 0x5215, 0x5217, 0x5218, 0x521a, 0x521b, 0x521d, 0x521f, 
-	0x5220, 0x5220, 0x5220, 0x5220, 0x5221, 0x5221, 0x5222, 0x5222, 
-	0x5223, 0x5224, 0x5225, 0x5225, 0x5226, 0x5227, 0x5228, 0x5229, 
-	0x522a, 0x522b, 0x522c, 0x522e, 0x522f, 0x5230, 0x5231, 0x5233, 
-	0x5234, 0x5235, 0x5237, 0x5238, 0x523a, 0x523b, 0x523d, 0x523f, 
-	0x5240, 0x5240, 0x5240, 0x5240, 0x5241, 0x5241, 0x5242, 0x5242, 
-	0x5243, 0x5244, 0x5245, 0x5245, 0x5246, 0x5247, 0x5248, 0x5249, 
-	0x524a, 0x524b, 0x524c, 0x524e, 0x524f, 0x5250, 0x5251, 0x5253, 
-	0x5254, 0x5255, 0x5257, 0x5258, 0x525a, 0x525b, 0x525d, 0x525f, 
-	0x5260, 0x5260, 0x5260, 0x5260, 0x5261, 0x5261, 0x5262, 0x5262, 
-	0x5263, 0x5264, 0x5265, 0x5265, 0x5266, 0x5267, 0x5268, 0x5269, 
-	0x526a, 0x526b, 0x526c, 0x526e, 0x526f, 0x5270, 0x5271, 0x5273, 
-	0x5274, 0x5275, 0x5277, 0x5278, 0x527a, 0x527b, 0x527d, 0x527f, 
-	0x5280, 0x5280, 0x5280, 0x5280, 0x5281, 0x5281, 0x5282, 0x5282, 
-	0x5283, 0x5284, 0x5285, 0x5285, 0x5286, 0x5287, 0x5288, 0x5289, 
-	0x528a, 0x528b, 0x528c, 0x528e, 0x528f, 0x5290, 0x5291, 0x5293, 
-	0x5294, 0x5295, 0x5297, 0x5298, 0x529a, 0x529b, 0x529d, 0x529f, 
-	0x52a0, 0x52a0, 0x52a0, 0x52a0, 0x52a1, 0x52a1, 0x52a2, 0x52a2, 
-	0x52a3, 0x52a4, 0x52a5, 0x52a5, 0x52a6, 0x52a7, 0x52a8, 0x52a9, 
-	0x52aa, 0x52ab, 0x52ac, 0x52ae, 0x52af, 0x52b0, 0x52b1, 0x52b3, 
-	0x52b4, 0x52b5, 0x52b7, 0x52b8, 0x52ba, 0x52bb, 0x52bd, 0x52bf, 
-	0x52c0, 0x52c0, 0x52c0, 0x52c0, 0x52c1, 0x52c1, 0x52c2, 0x52c2, 
-	0x52c3, 0x52c4, 0x52c5, 0x52c5, 0x52c6, 0x52c7, 0x52c8, 0x52c9, 
-	0x52ca, 0x52cb, 0x52cc, 0x52ce, 0x52cf, 0x52d0, 0x52d1, 0x52d3, 
-	0x52d4, 0x52d5, 0x52d7, 0x52d8, 0x52da, 0x52db, 0x52dd, 0x52df, 
-	0x52e0, 0x52e0, 0x52e0, 0x52e0, 0x52e1, 0x52e1, 0x52e2, 0x52e2, 
-	0x52e3, 0x52e4, 0x52e5, 0x52e5, 0x52e6, 0x52e7, 0x52e8, 0x52e9, 
-	0x52ea, 0x52eb, 0x52ec, 0x52ee, 0x52ef, 0x52f0, 0x52f1, 0x52f3, 
-	0x52f4, 0x52f5, 0x52f7, 0x52f8, 0x52fa, 0x52fb, 0x52fd, 0x52ff, 
-	0x5300, 0x5300, 0x5300, 0x5300, 0x5301, 0x5301, 0x5302, 0x5302, 
-	0x5303, 0x5304, 0x5305, 0x5305, 0x5306, 0x5307, 0x5308, 0x5309, 
-	0x530a, 0x530b, 0x530c, 0x530e, 0x530f, 0x5310, 0x5311, 0x5313, 
-	0x5314, 0x5315, 0x5317, 0x5318, 0x531a, 0x531b, 0x531d, 0x531f, 
-	0x5320, 0x5320, 0x5320, 0x5320, 0x5321, 0x5321, 0x5322, 0x5322, 
-	0x5323, 0x5324, 0x5325, 0x5325, 0x5326, 0x5327, 0x5328, 0x5329, 
-	0x532a, 0x532b, 0x532c, 0x532e, 0x532f, 0x5330, 0x5331, 0x5333, 
-	0x5334, 0x5335, 0x5337, 0x5338, 0x533a, 0x533b, 0x533d, 0x533f, 
-	0x5340, 0x5340, 0x5340, 0x5340, 0x5341, 0x5341, 0x5342, 0x5342, 
-	0x5343, 0x5344, 0x5345, 0x5345, 0x5346, 0x5347, 0x5348, 0x5349, 
-	0x534a, 0x534b, 0x534c, 0x534e, 0x534f, 0x5350, 0x5351, 0x5353, 
-	0x5354, 0x5355, 0x5357, 0x5358, 0x535a, 0x535b, 0x535d, 0x535f, 
-	0x5380, 0x5380, 0x5380, 0x5380, 0x5381, 0x5381, 0x5382, 0x5382, 
-	0x5383, 0x5384, 0x5385, 0x5385, 0x5386, 0x5387, 0x5388, 0x5389, 
-	0x538a, 0x538b, 0x538c, 0x538e, 0x538f, 0x5390, 0x5391, 0x5393, 
-	0x5394, 0x5395, 0x5397, 0x5398, 0x539a, 0x539b, 0x539d, 0x539f, 
-	0x53a0, 0x53a0, 0x53a0, 0x53a0, 0x53a1, 0x53a1, 0x53a2, 0x53a2, 
-	0x53a3, 0x53a4, 0x53a5, 0x53a5, 0x53a6, 0x53a7, 0x53a8, 0x53a9, 
-	0x53aa, 0x53ab, 0x53ac, 0x53ae, 0x53af, 0x53b0, 0x53b1, 0x53b3, 
-	0x53b4, 0x53b5, 0x53b7, 0x53b8, 0x53ba, 0x53bb, 0x53bd, 0x53bf, 
-	0x53c0, 0x53c0, 0x53c0, 0x53c0, 0x53c1, 0x53c1, 0x53c2, 0x53c2, 
-	0x53c3, 0x53c4, 0x53c5, 0x53c5, 0x53c6, 0x53c7, 0x53c8, 0x53c9, 
-	0x53ca, 0x53cb, 0x53cc, 0x53ce, 0x53cf, 0x53d0, 0x53d1, 0x53d3, 
-	0x53d4, 0x53d5, 0x53d7, 0x53d8, 0x53da, 0x53db, 0x53dd, 0x53df, 
-	0x53e0, 0x53e0, 0x53e0, 0x53e0, 0x53e1, 0x53e1, 0x53e2, 0x53e2, 
-	0x53e3, 0x53e4, 0x53e5, 0x53e5, 0x53e6, 0x53e7, 0x53e8, 0x53e9, 
-	0x53ea, 0x53eb, 0x53ec, 0x53ee, 0x53ef, 0x53f0, 0x53f1, 0x53f3, 
-	0x53f4, 0x53f5, 0x53f7, 0x53f8, 0x53fa, 0x53fb, 0x53fd, 0x53ff, 
-	0x5400, 0x5400, 0x5400, 0x5400, 0x5401, 0x5401, 0x5402, 0x5402, 
-	0x5403, 0x5404, 0x5405, 0x5405, 0x5406, 0x5407, 0x5408, 0x5409, 
-	0x540a, 0x540b, 0x540c, 0x540e, 0x540f, 0x5410, 0x5411, 0x5413, 
-	0x5414, 0x5415, 0x5417, 0x5418, 0x541a, 0x541b, 0x541d, 0x541f, 
-	0x5440, 0x5440, 0x5440, 0x5440, 0x5441, 0x5441, 0x5442, 0x5442, 
-	0x5443, 0x5444, 0x5445, 0x5445, 0x5446, 0x5447, 0x5448, 0x5449, 
-	0x544a, 0x544b, 0x544c, 0x544e, 0x544f, 0x5450, 0x5451, 0x5453, 
-	0x5454, 0x5455, 0x5457, 0x5458, 0x545a, 0x545b, 0x545d, 0x545f, 
-	0x5460, 0x5460, 0x5460, 0x5460, 0x5461, 0x5461, 0x5462, 0x5462, 
-	0x5463, 0x5464, 0x5465, 0x5465, 0x5466, 0x5467, 0x5468, 0x5469, 
-	0x546a, 0x546b, 0x546c, 0x546e, 0x546f, 0x5470, 0x5471, 0x5473, 
-	0x5474, 0x5475, 0x5477, 0x5478, 0x547a, 0x547b, 0x547d, 0x547f, 
-	0x5480, 0x5480, 0x5480, 0x5480, 0x5481, 0x5481, 0x5482, 0x5482, 
-	0x5483, 0x5484, 0x5485, 0x5485, 0x5486, 0x5487, 0x5488, 0x5489, 
-	0x548a, 0x548b, 0x548c, 0x548e, 0x548f, 0x5490, 0x5491, 0x5493, 
-	0x5494, 0x5495, 0x5497, 0x5498, 0x549a, 0x549b, 0x549d, 0x549f, 
-	0x54c0, 0x54c0, 0x54c0, 0x54c0, 0x54c1, 0x54c1, 0x54c2, 0x54c2, 
-	0x54c3, 0x54c4, 0x54c5, 0x54c5, 0x54c6, 0x54c7, 0x54c8, 0x54c9, 
-	0x54ca, 0x54cb, 0x54cc, 0x54ce, 0x54cf, 0x54d0, 0x54d1, 0x54d3, 
-	0x54d4, 0x54d5, 0x54d7, 0x54d8, 0x54da, 0x54db, 0x54dd, 0x54df, 
-	0x54e0, 0x54e0, 0x54e0, 0x54e0, 0x54e1, 0x54e1, 0x54e2, 0x54e2, 
-	0x54e3, 0x54e4, 0x54e5, 0x54e5, 0x54e6, 0x54e7, 0x54e8, 0x54e9, 
-	0x54ea, 0x54eb, 0x54ec, 0x54ee, 0x54ef, 0x54f0, 0x54f1, 0x54f3, 
-	0x54f4, 0x54f5, 0x54f7, 0x54f8, 0x54fa, 0x54fb, 0x54fd, 0x54ff, 
-	0x5500, 0x5500, 0x5500, 0x5500, 0x5501, 0x5501, 0x5502, 0x5502, 
-	0x5503, 0x5504, 0x5505, 0x5505, 0x5506, 0x5507, 0x5508, 0x5509, 
-	0x550a, 0x550b, 0x550c, 0x550e, 0x550f, 0x5510, 0x5511, 0x5513, 
-	0x5514, 0x5515, 0x5517, 0x5518, 0x551a, 0x551b, 0x551d, 0x551f, 
-	0x5540, 0x5540, 0x5540, 0x5540, 0x5541, 0x5541, 0x5542, 0x5542, 
-	0x5543, 0x5544, 0x5545, 0x5545, 0x5546, 0x5547, 0x5548, 0x5549, 
-	0x554a, 0x554b, 0x554c, 0x554e, 0x554f, 0x5550, 0x5551, 0x5553, 
-	0x5554, 0x5555, 0x5557, 0x5558, 0x555a, 0x555b, 0x555d, 0x555f, 
-	0x5560, 0x5560, 0x5560, 0x5560, 0x5561, 0x5561, 0x5562, 0x5562, 
-	0x5563, 0x5564, 0x5565, 0x5565, 0x5566, 0x5567, 0x5568, 0x5569, 
-	0x556a, 0x556b, 0x556c, 0x556e, 0x556f, 0x5570, 0x5571, 0x5573, 
-	0x5574, 0x5575, 0x5577, 0x5578, 0x557a, 0x557b, 0x557d, 0x557f, 
-	0x5580, 0x5580, 0x5580, 0x5580, 0x5581, 0x5581, 0x5582, 0x5582, 
-	0x5583, 0x5584, 0x5585, 0x5585, 0x5586, 0x5587, 0x5588, 0x5589, 
-	0x558a, 0x558b, 0x558c, 0x558e, 0x558f, 0x5590, 0x5591, 0x5593, 
-	0x5594, 0x5595, 0x5597, 0x5598, 0x559a, 0x559b, 0x559d, 0x559f, 
-	0x55c0, 0x55c0, 0x55c0, 0x55c0, 0x55c1, 0x55c1, 0x55c2, 0x55c2, 
-	0x55c3, 0x55c4, 0x55c5, 0x55c5, 0x55c6, 0x55c7, 0x55c8, 0x55c9, 
-	0x55ca, 0x55cb, 0x55cc, 0x55ce, 0x55cf, 0x55d0, 0x55d1, 0x55d3, 
-	0x55d4, 0x55d5, 0x55d7, 0x55d8, 0x55da, 0x55db, 0x55dd, 0x55df, 
-	0x55e0, 0x55e0, 0x55e0, 0x55e0, 0x55e1, 0x55e1, 0x55e2, 0x55e2, 
-	0x55e3, 0x55e4, 0x55e5, 0x55e5, 0x55e6, 0x55e7, 0x55e8, 0x55e9, 
-	0x55ea, 0x55eb, 0x55ec, 0x55ee, 0x55ef, 0x55f0, 0x55f1, 0x55f3, 
-	0x55f4, 0x55f5, 0x55f7, 0x55f8, 0x55fa, 0x55fb, 0x55fd, 0x55ff, 
-	0x5620, 0x5620, 0x5620, 0x5620, 0x5621, 0x5621, 0x5622, 0x5622, 
-	0x5623, 0x5624, 0x5625, 0x5625, 0x5626, 0x5627, 0x5628, 0x5629, 
-	0x562a, 0x562b, 0x562c, 0x562e, 0x562f, 0x5630, 0x5631, 0x5633, 
-	0x5634, 0x5635, 0x5637, 0x5638, 0x563a, 0x563b, 0x563d, 0x563f, 
-	0x5640, 0x5640, 0x5640, 0x5640, 0x5641, 0x5641, 0x5642, 0x5642, 
-	0x5643, 0x5644, 0x5645, 0x5645, 0x5646, 0x5647, 0x5648, 0x5649, 
-	0x564a, 0x564b, 0x564c, 0x564e, 0x564f, 0x5650, 0x5651, 0x5653, 
-	0x5654, 0x5655, 0x5657, 0x5658, 0x565a, 0x565b, 0x565d, 0x565f, 
-	0x5680, 0x5680, 0x5680, 0x5680, 0x5681, 0x5681, 0x5682, 0x5682, 
-	0x5683, 0x5684, 0x5685, 0x5685, 0x5686, 0x5687, 0x5688, 0x5689, 
-	0x568a, 0x568b, 0x568c, 0x568e, 0x568f, 0x5690, 0x5691, 0x5693, 
-	0x5694, 0x5695, 0x5697, 0x5698, 0x569a, 0x569b, 0x569d, 0x569f, 
-	0x56a0, 0x56a0, 0x56a0, 0x56a0, 0x56a1, 0x56a1, 0x56a2, 0x56a2, 
-	0x56a3, 0x56a4, 0x56a5, 0x56a5, 0x56a6, 0x56a7, 0x56a8, 0x56a9, 
-	0x56aa, 0x56ab, 0x56ac, 0x56ae, 0x56af, 0x56b0, 0x56b1, 0x56b3, 
-	0x56b4, 0x56b5, 0x56b7, 0x56b8, 0x56ba, 0x56bb, 0x56bd, 0x56bf, 
-	0x56e0, 0x56e0, 0x56e0, 0x56e0, 0x56e1, 0x56e1, 0x56e2, 0x56e2, 
-	0x56e3, 0x56e4, 0x56e5, 0x56e5, 0x56e6, 0x56e7, 0x56e8, 0x56e9, 
-	0x56ea, 0x56eb, 0x56ec, 0x56ee, 0x56ef, 0x56f0, 0x56f1, 0x56f3, 
-	0x56f4, 0x56f5, 0x56f7, 0x56f8, 0x56fa, 0x56fb, 0x56fd, 0x56ff, 
-	0x5700, 0x5700, 0x5700, 0x5700, 0x5701, 0x5701, 0x5702, 0x5702, 
-	0x5703, 0x5704, 0x5705, 0x5705, 0x5706, 0x5707, 0x5708, 0x5709, 
-	0x570a, 0x570b, 0x570c, 0x570e, 0x570f, 0x5710, 0x5711, 0x5713, 
-	0x5714, 0x5715, 0x5717, 0x5718, 0x571a, 0x571b, 0x571d, 0x571f, 
-	0x5740, 0x5740, 0x5740, 0x5740, 0x5741, 0x5741, 0x5742, 0x5742, 
-	0x5743, 0x5744, 0x5745, 0x5745, 0x5746, 0x5747, 0x5748, 0x5749, 
-	0x574a, 0x574b, 0x574c, 0x574e, 0x574f, 0x5750, 0x5751, 0x5753, 
-	0x5754, 0x5755, 0x5757, 0x5758, 0x575a, 0x575b, 0x575d, 0x575f, 
-	0x5760, 0x5760, 0x5760, 0x5760, 0x5761, 0x5761, 0x5762, 0x5762, 
-	0x5763, 0x5764, 0x5765, 0x5765, 0x5766, 0x5767, 0x5768, 0x5769, 
-	0x576a, 0x576b, 0x576c, 0x576e, 0x576f, 0x5770, 0x5771, 0x5773, 
-	0x5774, 0x5775, 0x5777, 0x5778, 0x577a, 0x577b, 0x577d, 0x577f, 
-	0x57a0, 0x57a0, 0x57a0, 0x57a0, 0x57a1, 0x57a1, 0x57a2, 0x57a2, 
-	0x57a3, 0x57a4, 0x57a5, 0x57a5, 0x57a6, 0x57a7, 0x57a8, 0x57a9, 
-	0x57aa, 0x57ab, 0x57ac, 0x57ae, 0x57af, 0x57b0, 0x57b1, 0x57b3, 
-	0x57b4, 0x57b5, 0x57b7, 0x57b8, 0x57ba, 0x57bb, 0x57bd, 0x57bf, 
-	0x57e0, 0x57e0, 0x57e0, 0x57e0, 0x57e1, 0x57e1, 0x57e2, 0x57e2, 
-	0x57e3, 0x57e4, 0x57e5, 0x57e5, 0x57e6, 0x57e7, 0x57e8, 0x57e9, 
-	0x57ea, 0x57eb, 0x57ec, 0x57ee, 0x57ef, 0x57f0, 0x57f1, 0x57f3, 
-	0x57f4, 0x57f5, 0x57f7, 0x57f8, 0x57fa, 0x57fb, 0x57fd, 0x57ff, 
-	0x5800, 0x5800, 0x5800, 0x5800, 0x5801, 0x5801, 0x5802, 0x5802, 
-	0x5803, 0x5804, 0x5805, 0x5805, 0x5806, 0x5807, 0x5808, 0x5809, 
-	0x580a, 0x580b, 0x580c, 0x580e, 0x580f, 0x5810, 0x5811, 0x5813, 
-	0x5814, 0x5815, 0x5817, 0x5818, 0x581a, 0x581b, 0x581d, 0x581f, 
-	0x5800, 0x5800, 0x5800, 0x5800, 0x5801, 0x5801, 0x5802, 0x5802, 
-	0x5803, 0x5804, 0x5805, 0x5805, 0x5806, 0x5807, 0x5808, 0x5809, 
-	0x580a, 0x580b, 0x580c, 0x580e, 0x580f, 0x5810, 0x5811, 0x5813, 
-	0x5814, 0x5815, 0x5817, 0x5818, 0x581a, 0x581b, 0x581d, 0x581f, 
-	0x5800, 0x5800, 0x5800, 0x5800, 0x5801, 0x5801, 0x5802, 0x5802, 
-	0x5803, 0x5804, 0x5805, 0x5805, 0x5806, 0x5807, 0x5808, 0x5809, 
-	0x580a, 0x580b, 0x580c, 0x580e, 0x580f, 0x5810, 0x5811, 0x5813, 
-	0x5814, 0x5815, 0x5817, 0x5818, 0x581a, 0x581b, 0x581d, 0x581f, 
-	0x5800, 0x5800, 0x5800, 0x5800, 0x5801, 0x5801, 0x5802, 0x5802, 
-	0x5803, 0x5804, 0x5805, 0x5805, 0x5806, 0x5807, 0x5808, 0x5809, 
-	0x580a, 0x580b, 0x580c, 0x580e, 0x580f, 0x5810, 0x5811, 0x5813, 
-	0x5814, 0x5815, 0x5817, 0x5818, 0x581a, 0x581b, 0x581d, 0x581f, 
-	0x5800, 0x5800, 0x5800, 0x5800, 0x5801, 0x5801, 0x5802, 0x5802, 
-	0x5803, 0x5804, 0x5805, 0x5805, 0x5806, 0x5807, 0x5808, 0x5809, 
-	0x580a, 0x580b, 0x580c, 0x580e, 0x580f, 0x5810, 0x5811, 0x5813, 
-	0x5814, 0x5815, 0x5817, 0x5818, 0x581a, 0x581b, 0x581d, 0x581f, 
-	0x5820, 0x5820, 0x5820, 0x5820, 0x5821, 0x5821, 0x5822, 0x5822, 
-	0x5823, 0x5824, 0x5825, 0x5825, 0x5826, 0x5827, 0x5828, 0x5829, 
-	0x582a, 0x582b, 0x582c, 0x582e, 0x582f, 0x5830, 0x5831, 0x5833, 
-	0x5834, 0x5835, 0x5837, 0x5838, 0x583a, 0x583b, 0x583d, 0x583f, 
-	0x5820, 0x5820, 0x5820, 0x5820, 0x5821, 0x5821, 0x5822, 0x5822, 
-	0x5823, 0x5824, 0x5825, 0x5825, 0x5826, 0x5827, 0x5828, 0x5829, 
-	0x582a, 0x582b, 0x582c, 0x582e, 0x582f, 0x5830, 0x5831, 0x5833, 
-	0x5834, 0x5835, 0x5837, 0x5838, 0x583a, 0x583b, 0x583d, 0x583f, 
-	0x5820, 0x5820, 0x5820, 0x5820, 0x5821, 0x5821, 0x5822, 0x5822, 
-	0x5823, 0x5824, 0x5825, 0x5825, 0x5826, 0x5827, 0x5828, 0x5829, 
-	0x582a, 0x582b, 0x582c, 0x582e, 0x582f, 0x5830, 0x5831, 0x5833, 
-	0x5834, 0x5835, 0x5837, 0x5838, 0x583a, 0x583b, 0x583d, 0x583f, 
-	0x5840, 0x5840, 0x5840, 0x5840, 0x5841, 0x5841, 0x5842, 0x5842, 
-	0x5843, 0x5844, 0x5845, 0x5845, 0x5846, 0x5847, 0x5848, 0x5849, 
-	0x584a, 0x584b, 0x584c, 0x584e, 0x584f, 0x5850, 0x5851, 0x5853, 
-	0x5854, 0x5855, 0x5857, 0x5858, 0x585a, 0x585b, 0x585d, 0x585f, 
-	0x5840, 0x5840, 0x5840, 0x5840, 0x5841, 0x5841, 0x5842, 0x5842, 
-	0x5843, 0x5844, 0x5845, 0x5845, 0x5846, 0x5847, 0x5848, 0x5849, 
-	0x584a, 0x584b, 0x584c, 0x584e, 0x584f, 0x5850, 0x5851, 0x5853, 
-	0x5854, 0x5855, 0x5857, 0x5858, 0x585a, 0x585b, 0x585d, 0x585f, 
-	0x5860, 0x5860, 0x5860, 0x5860, 0x5861, 0x5861, 0x5862, 0x5862, 
-	0x5863, 0x5864, 0x5865, 0x5865, 0x5866, 0x5867, 0x5868, 0x5869, 
-	0x586a, 0x586b, 0x586c, 0x586e, 0x586f, 0x5870, 0x5871, 0x5873, 
-	0x5874, 0x5875, 0x5877, 0x5878, 0x587a, 0x587b, 0x587d, 0x587f, 
-	0x5860, 0x5860, 0x5860, 0x5860, 0x5861, 0x5861, 0x5862, 0x5862, 
-	0x5863, 0x5864, 0x5865, 0x5865, 0x5866, 0x5867, 0x5868, 0x5869, 
-	0x586a, 0x586b, 0x586c, 0x586e, 0x586f, 0x5870, 0x5871, 0x5873, 
-	0x5874, 0x5875, 0x5877, 0x5878, 0x587a, 0x587b, 0x587d, 0x587f, 
-	0x5880, 0x5880, 0x5880, 0x5880, 0x5881, 0x5881, 0x5882, 0x5882, 
-	0x5883, 0x5884, 0x5885, 0x5885, 0x5886, 0x5887, 0x5888, 0x5889, 
-	0x588a, 0x588b, 0x588c, 0x588e, 0x588f, 0x5890, 0x5891, 0x5893, 
-	0x5894, 0x5895, 0x5897, 0x5898, 0x589a, 0x589b, 0x589d, 0x589f, 
-	0x58a0, 0x58a0, 0x58a0, 0x58a0, 0x58a1, 0x58a1, 0x58a2, 0x58a2, 
-	0x58a3, 0x58a4, 0x58a5, 0x58a5, 0x58a6, 0x58a7, 0x58a8, 0x58a9, 
-	0x58aa, 0x58ab, 0x58ac, 0x58ae, 0x58af, 0x58b0, 0x58b1, 0x58b3, 
-	0x58b4, 0x58b5, 0x58b7, 0x58b8, 0x58ba, 0x58bb, 0x58bd, 0x58bf, 
-	0x58a0, 0x58a0, 0x58a0, 0x58a0, 0x58a1, 0x58a1, 0x58a2, 0x58a2, 
-	0x58a3, 0x58a4, 0x58a5, 0x58a5, 0x58a6, 0x58a7, 0x58a8, 0x58a9, 
-	0x58aa, 0x58ab, 0x58ac, 0x58ae, 0x58af, 0x58b0, 0x58b1, 0x58b3, 
-	0x58b4, 0x58b5, 0x58b7, 0x58b8, 0x58ba, 0x58bb, 0x58bd, 0x58bf, 
-	0x58c0, 0x58c0, 0x58c0, 0x58c0, 0x58c1, 0x58c1, 0x58c2, 0x58c2, 
-	0x58c3, 0x58c4, 0x58c5, 0x58c5, 0x58c6, 0x58c7, 0x58c8, 0x58c9, 
-	0x58ca, 0x58cb, 0x58cc, 0x58ce, 0x58cf, 0x58d0, 0x58d1, 0x58d3, 
-	0x58d4, 0x58d5, 0x58d7, 0x58d8, 0x58da, 0x58db, 0x58dd, 0x58df, 
-	0x58e0, 0x58e0, 0x58e0, 0x58e0, 0x58e1, 0x58e1, 0x58e2, 0x58e2, 
-	0x58e3, 0x58e4, 0x58e5, 0x58e5, 0x58e6, 0x58e7, 0x58e8, 0x58e9, 
-	0x58ea, 0x58eb, 0x58ec, 0x58ee, 0x58ef, 0x58f0, 0x58f1, 0x58f3, 
-	0x58f4, 0x58f5, 0x58f7, 0x58f8, 0x58fa, 0x58fb, 0x58fd, 0x58ff, 
-	0x58e0, 0x58e0, 0x58e0, 0x58e0, 0x58e1, 0x58e1, 0x58e2, 0x58e2, 
-	0x58e3, 0x58e4, 0x58e5, 0x58e5, 0x58e6, 0x58e7, 0x58e8, 0x58e9, 
-	0x58ea, 0x58eb, 0x58ec, 0x58ee, 0x58ef, 0x58f0, 0x58f1, 0x58f3, 
-	0x58f4, 0x58f5, 0x58f7, 0x58f8, 0x58fa, 0x58fb, 0x58fd, 0x58ff, 
-	0x5900, 0x5900, 0x5900, 0x5900, 0x5901, 0x5901, 0x5902, 0x5902, 
-	0x5903, 0x5904, 0x5905, 0x5905, 0x5906, 0x5907, 0x5908, 0x5909, 
-	0x590a, 0x590b, 0x590c, 0x590e, 0x590f, 0x5910, 0x5911, 0x5913, 
-	0x5914, 0x5915, 0x5917, 0x5918, 0x591a, 0x591b, 0x591d, 0x591f, 
-	0x5920, 0x5920, 0x5920, 0x5920, 0x5921, 0x5921, 0x5922, 0x5922, 
-	0x5923, 0x5924, 0x5925, 0x5925, 0x5926, 0x5927, 0x5928, 0x5929, 
-	0x592a, 0x592b, 0x592c, 0x592e, 0x592f, 0x5930, 0x5931, 0x5933, 
-	0x5934, 0x5935, 0x5937, 0x5938, 0x593a, 0x593b, 0x593d, 0x593f, 
-	0x5940, 0x5940, 0x5940, 0x5940, 0x5941, 0x5941, 0x5942, 0x5942, 
-	0x5943, 0x5944, 0x5945, 0x5945, 0x5946, 0x5947, 0x5948, 0x5949, 
-	0x594a, 0x594b, 0x594c, 0x594e, 0x594f, 0x5950, 0x5951, 0x5953, 
-	0x5954, 0x5955, 0x5957, 0x5958, 0x595a, 0x595b, 0x595d, 0x595f, 
-	0x5940, 0x5940, 0x5940, 0x5940, 0x5941, 0x5941, 0x5942, 0x5942, 
-	0x5943, 0x5944, 0x5945, 0x5945, 0x5946, 0x5947, 0x5948, 0x5949, 
-	0x594a, 0x594b, 0x594c, 0x594e, 0x594f, 0x5950, 0x5951, 0x5953, 
-	0x5954, 0x5955, 0x5957, 0x5958, 0x595a, 0x595b, 0x595d, 0x595f, 
-	0x5960, 0x5960, 0x5960, 0x5960, 0x5961, 0x5961, 0x5962, 0x5962, 
-	0x5963, 0x5964, 0x5965, 0x5965, 0x5966, 0x5967, 0x5968, 0x5969, 
-	0x596a, 0x596b, 0x596c, 0x596e, 0x596f, 0x5970, 0x5971, 0x5973, 
-	0x5974, 0x5975, 0x5977, 0x5978, 0x597a, 0x597b, 0x597d, 0x597f, 
-	0x5980, 0x5980, 0x5980, 0x5980, 0x5981, 0x5981, 0x5982, 0x5982, 
-	0x5983, 0x5984, 0x5985, 0x5985, 0x5986, 0x5987, 0x5988, 0x5989, 
-	0x598a, 0x598b, 0x598c, 0x598e, 0x598f, 0x5990, 0x5991, 0x5993, 
-	0x5994, 0x5995, 0x5997, 0x5998, 0x599a, 0x599b, 0x599d, 0x599f, 
-	0x59a0, 0x59a0, 0x59a0, 0x59a0, 0x59a1, 0x59a1, 0x59a2, 0x59a2, 
-	0x59a3, 0x59a4, 0x59a5, 0x59a5, 0x59a6, 0x59a7, 0x59a8, 0x59a9, 
-	0x59aa, 0x59ab, 0x59ac, 0x59ae, 0x59af, 0x59b0, 0x59b1, 0x59b3, 
-	0x59b4, 0x59b5, 0x59b7, 0x59b8, 0x59ba, 0x59bb, 0x59bd, 0x59bf, 
-	0x59c0, 0x59c0, 0x59c0, 0x59c0, 0x59c1, 0x59c1, 0x59c2, 0x59c2, 
-	0x59c3, 0x59c4, 0x59c5, 0x59c5, 0x59c6, 0x59c7, 0x59c8, 0x59c9, 
-	0x59ca, 0x59cb, 0x59cc, 0x59ce, 0x59cf, 0x59d0, 0x59d1, 0x59d3, 
-	0x59d4, 0x59d5, 0x59d7, 0x59d8, 0x59da, 0x59db, 0x59dd, 0x59df, 
-	0x59e0, 0x59e0, 0x59e0, 0x59e0, 0x59e1, 0x59e1, 0x59e2, 0x59e2, 
-	0x59e3, 0x59e4, 0x59e5, 0x59e5, 0x59e6, 0x59e7, 0x59e8, 0x59e9, 
-	0x59ea, 0x59eb, 0x59ec, 0x59ee, 0x59ef, 0x59f0, 0x59f1, 0x59f3, 
-	0x59f4, 0x59f5, 0x59f7, 0x59f8, 0x59fa, 0x59fb, 0x59fd, 0x59ff, 
-	0x5a00, 0x5a00, 0x5a00, 0x5a00, 0x5a01, 0x5a01, 0x5a02, 0x5a02, 
-	0x5a03, 0x5a04, 0x5a05, 0x5a05, 0x5a06, 0x5a07, 0x5a08, 0x5a09, 
-	0x5a0a, 0x5a0b, 0x5a0c, 0x5a0e, 0x5a0f, 0x5a10, 0x5a11, 0x5a13, 
-	0x5a14, 0x5a15, 0x5a17, 0x5a18, 0x5a1a, 0x5a1b, 0x5a1d, 0x5a1f, 
-	0x5a20, 0x5a20, 0x5a20, 0x5a20, 0x5a21, 0x5a21, 0x5a22, 0x5a22, 
-	0x5a23, 0x5a24, 0x5a25, 0x5a25, 0x5a26, 0x5a27, 0x5a28, 0x5a29, 
-	0x5a2a, 0x5a2b, 0x5a2c, 0x5a2e, 0x5a2f, 0x5a30, 0x5a31, 0x5a33, 
-	0x5a34, 0x5a35, 0x5a37, 0x5a38, 0x5a3a, 0x5a3b, 0x5a3d, 0x5a3f, 
-	0x5a40, 0x5a40, 0x5a40, 0x5a40, 0x5a41, 0x5a41, 0x5a42, 0x5a42, 
-	0x5a43, 0x5a44, 0x5a45, 0x5a45, 0x5a46, 0x5a47, 0x5a48, 0x5a49, 
-	0x5a4a, 0x5a4b, 0x5a4c, 0x5a4e, 0x5a4f, 0x5a50, 0x5a51, 0x5a53, 
-	0x5a54, 0x5a55, 0x5a57, 0x5a58, 0x5a5a, 0x5a5b, 0x5a5d, 0x5a5f, 
-	0x5a60, 0x5a60, 0x5a60, 0x5a60, 0x5a61, 0x5a61, 0x5a62, 0x5a62, 
-	0x5a63, 0x5a64, 0x5a65, 0x5a65, 0x5a66, 0x5a67, 0x5a68, 0x5a69, 
-	0x5a6a, 0x5a6b, 0x5a6c, 0x5a6e, 0x5a6f, 0x5a70, 0x5a71, 0x5a73, 
-	0x5a74, 0x5a75, 0x5a77, 0x5a78, 0x5a7a, 0x5a7b, 0x5a7d, 0x5a7f, 
-	0x5a80, 0x5a80, 0x5a80, 0x5a80, 0x5a81, 0x5a81, 0x5a82, 0x5a82, 
-	0x5a83, 0x5a84, 0x5a85, 0x5a85, 0x5a86, 0x5a87, 0x5a88, 0x5a89, 
-	0x5a8a, 0x5a8b, 0x5a8c, 0x5a8e, 0x5a8f, 0x5a90, 0x5a91, 0x5a93, 
-	0x5a94, 0x5a95, 0x5a97, 0x5a98, 0x5a9a, 0x5a9b, 0x5a9d, 0x5a9f, 
-	0x5aa0, 0x5aa0, 0x5aa0, 0x5aa0, 0x5aa1, 0x5aa1, 0x5aa2, 0x5aa2, 
-	0x5aa3, 0x5aa4, 0x5aa5, 0x5aa5, 0x5aa6, 0x5aa7, 0x5aa8, 0x5aa9, 
-	0x5aaa, 0x5aab, 0x5aac, 0x5aae, 0x5aaf, 0x5ab0, 0x5ab1, 0x5ab3, 
-	0x5ab4, 0x5ab5, 0x5ab7, 0x5ab8, 0x5aba, 0x5abb, 0x5abd, 0x5abf, 
-	0x5ac0, 0x5ac0, 0x5ac0, 0x5ac0, 0x5ac1, 0x5ac1, 0x5ac2, 0x5ac2, 
-	0x5ac3, 0x5ac4, 0x5ac5, 0x5ac5, 0x5ac6, 0x5ac7, 0x5ac8, 0x5ac9, 
-	0x5aca, 0x5acb, 0x5acc, 0x5ace, 0x5acf, 0x5ad0, 0x5ad1, 0x5ad3, 
-	0x5ad4, 0x5ad5, 0x5ad7, 0x5ad8, 0x5ada, 0x5adb, 0x5add, 0x5adf, 
-	0x5ae0, 0x5ae0, 0x5ae0, 0x5ae0, 0x5ae1, 0x5ae1, 0x5ae2, 0x5ae2, 
-	0x5ae3, 0x5ae4, 0x5ae5, 0x5ae5, 0x5ae6, 0x5ae7, 0x5ae8, 0x5ae9, 
-	0x5aea, 0x5aeb, 0x5aec, 0x5aee, 0x5aef, 0x5af0, 0x5af1, 0x5af3, 
-	0x5af4, 0x5af5, 0x5af7, 0x5af8, 0x5afa, 0x5afb, 0x5afd, 0x5aff, 
-	0x5b00, 0x5b00, 0x5b00, 0x5b00, 0x5b01, 0x5b01, 0x5b02, 0x5b02, 
-	0x5b03, 0x5b04, 0x5b05, 0x5b05, 0x5b06, 0x5b07, 0x5b08, 0x5b09, 
-	0x5b0a, 0x5b0b, 0x5b0c, 0x5b0e, 0x5b0f, 0x5b10, 0x5b11, 0x5b13, 
-	0x5b14, 0x5b15, 0x5b17, 0x5b18, 0x5b1a, 0x5b1b, 0x5b1d, 0x5b1f, 
-	0x5b20, 0x5b20, 0x5b20, 0x5b20, 0x5b21, 0x5b21, 0x5b22, 0x5b22, 
-	0x5b23, 0x5b24, 0x5b25, 0x5b25, 0x5b26, 0x5b27, 0x5b28, 0x5b29, 
-	0x5b2a, 0x5b2b, 0x5b2c, 0x5b2e, 0x5b2f, 0x5b30, 0x5b31, 0x5b33, 
-	0x5b34, 0x5b35, 0x5b37, 0x5b38, 0x5b3a, 0x5b3b, 0x5b3d, 0x5b3f, 
-	0x5b40, 0x5b40, 0x5b40, 0x5b40, 0x5b41, 0x5b41, 0x5b42, 0x5b42, 
-	0x5b43, 0x5b44, 0x5b45, 0x5b45, 0x5b46, 0x5b47, 0x5b48, 0x5b49, 
-	0x5b4a, 0x5b4b, 0x5b4c, 0x5b4e, 0x5b4f, 0x5b50, 0x5b51, 0x5b53, 
-	0x5b54, 0x5b55, 0x5b57, 0x5b58, 0x5b5a, 0x5b5b, 0x5b5d, 0x5b5f, 
-	0x5b80, 0x5b80, 0x5b80, 0x5b80, 0x5b81, 0x5b81, 0x5b82, 0x5b82, 
-	0x5b83, 0x5b84, 0x5b85, 0x5b85, 0x5b86, 0x5b87, 0x5b88, 0x5b89, 
-	0x5b8a, 0x5b8b, 0x5b8c, 0x5b8e, 0x5b8f, 0x5b90, 0x5b91, 0x5b93, 
-	0x5b94, 0x5b95, 0x5b97, 0x5b98, 0x5b9a, 0x5b9b, 0x5b9d, 0x5b9f, 
-	0x5ba0, 0x5ba0, 0x5ba0, 0x5ba0, 0x5ba1, 0x5ba1, 0x5ba2, 0x5ba2, 
-	0x5ba3, 0x5ba4, 0x5ba5, 0x5ba5, 0x5ba6, 0x5ba7, 0x5ba8, 0x5ba9, 
-	0x5baa, 0x5bab, 0x5bac, 0x5bae, 0x5baf, 0x5bb0, 0x5bb1, 0x5bb3, 
-	0x5bb4, 0x5bb5, 0x5bb7, 0x5bb8, 0x5bba, 0x5bbb, 0x5bbd, 0x5bbf, 
-	0x5bc0, 0x5bc0, 0x5bc0, 0x5bc0, 0x5bc1, 0x5bc1, 0x5bc2, 0x5bc2, 
-	0x5bc3, 0x5bc4, 0x5bc5, 0x5bc5, 0x5bc6, 0x5bc7, 0x5bc8, 0x5bc9, 
-	0x5bca, 0x5bcb, 0x5bcc, 0x5bce, 0x5bcf, 0x5bd0, 0x5bd1, 0x5bd3, 
-	0x5bd4, 0x5bd5, 0x5bd7, 0x5bd8, 0x5bda, 0x5bdb, 0x5bdd, 0x5bdf, 
-	0x5be0, 0x5be0, 0x5be0, 0x5be0, 0x5be1, 0x5be1, 0x5be2, 0x5be2, 
-	0x5be3, 0x5be4, 0x5be5, 0x5be5, 0x5be6, 0x5be7, 0x5be8, 0x5be9, 
-	0x5bea, 0x5beb, 0x5bec, 0x5bee, 0x5bef, 0x5bf0, 0x5bf1, 0x5bf3, 
-	0x5bf4, 0x5bf5, 0x5bf7, 0x5bf8, 0x5bfa, 0x5bfb, 0x5bfd, 0x5bff, 
-	0x5c00, 0x5c00, 0x5c00, 0x5c00, 0x5c01, 0x5c01, 0x5c02, 0x5c02, 
-	0x5c03, 0x5c04, 0x5c05, 0x5c05, 0x5c06, 0x5c07, 0x5c08, 0x5c09, 
-	0x5c0a, 0x5c0b, 0x5c0c, 0x5c0e, 0x5c0f, 0x5c10, 0x5c11, 0x5c13, 
-	0x5c14, 0x5c15, 0x5c17, 0x5c18, 0x5c1a, 0x5c1b, 0x5c1d, 0x5c1f, 
-	0x5c40, 0x5c40, 0x5c40, 0x5c40, 0x5c41, 0x5c41, 0x5c42, 0x5c42, 
-	0x5c43, 0x5c44, 0x5c45, 0x5c45, 0x5c46, 0x5c47, 0x5c48, 0x5c49, 
-	0x5c4a, 0x5c4b, 0x5c4c, 0x5c4e, 0x5c4f, 0x5c50, 0x5c51, 0x5c53, 
-	0x5c54, 0x5c55, 0x5c57, 0x5c58, 0x5c5a, 0x5c5b, 0x5c5d, 0x5c5f, 
-	0x5c60, 0x5c60, 0x5c60, 0x5c60, 0x5c61, 0x5c61, 0x5c62, 0x5c62, 
-	0x5c63, 0x5c64, 0x5c65, 0x5c65, 0x5c66, 0x5c67, 0x5c68, 0x5c69, 
-	0x5c6a, 0x5c6b, 0x5c6c, 0x5c6e, 0x5c6f, 0x5c70, 0x5c71, 0x5c73, 
-	0x5c74, 0x5c75, 0x5c77, 0x5c78, 0x5c7a, 0x5c7b, 0x5c7d, 0x5c7f, 
-	0x5c80, 0x5c80, 0x5c80, 0x5c80, 0x5c81, 0x5c81, 0x5c82, 0x5c82, 
-	0x5c83, 0x5c84, 0x5c85, 0x5c85, 0x5c86, 0x5c87, 0x5c88, 0x5c89, 
-	0x5c8a, 0x5c8b, 0x5c8c, 0x5c8e, 0x5c8f, 0x5c90, 0x5c91, 0x5c93, 
-	0x5c94, 0x5c95, 0x5c97, 0x5c98, 0x5c9a, 0x5c9b, 0x5c9d, 0x5c9f, 
-	0x5cc0, 0x5cc0, 0x5cc0, 0x5cc0, 0x5cc1, 0x5cc1, 0x5cc2, 0x5cc2, 
-	0x5cc3, 0x5cc4, 0x5cc5, 0x5cc5, 0x5cc6, 0x5cc7, 0x5cc8, 0x5cc9, 
-	0x5cca, 0x5ccb, 0x5ccc, 0x5cce, 0x5ccf, 0x5cd0, 0x5cd1, 0x5cd3, 
-	0x5cd4, 0x5cd5, 0x5cd7, 0x5cd8, 0x5cda, 0x5cdb, 0x5cdd, 0x5cdf, 
-	0x5ce0, 0x5ce0, 0x5ce0, 0x5ce0, 0x5ce1, 0x5ce1, 0x5ce2, 0x5ce2, 
-	0x5ce3, 0x5ce4, 0x5ce5, 0x5ce5, 0x5ce6, 0x5ce7, 0x5ce8, 0x5ce9, 
-	0x5cea, 0x5ceb, 0x5cec, 0x5cee, 0x5cef, 0x5cf0, 0x5cf1, 0x5cf3, 
-	0x5cf4, 0x5cf5, 0x5cf7, 0x5cf8, 0x5cfa, 0x5cfb, 0x5cfd, 0x5cff, 
-	0x5d00, 0x5d00, 0x5d00, 0x5d00, 0x5d01, 0x5d01, 0x5d02, 0x5d02, 
-	0x5d03, 0x5d04, 0x5d05, 0x5d05, 0x5d06, 0x5d07, 0x5d08, 0x5d09, 
-	0x5d0a, 0x5d0b, 0x5d0c, 0x5d0e, 0x5d0f, 0x5d10, 0x5d11, 0x5d13, 
-	0x5d14, 0x5d15, 0x5d17, 0x5d18, 0x5d1a, 0x5d1b, 0x5d1d, 0x5d1f, 
-	0x5d40, 0x5d40, 0x5d40, 0x5d40, 0x5d41, 0x5d41, 0x5d42, 0x5d42, 
-	0x5d43, 0x5d44, 0x5d45, 0x5d45, 0x5d46, 0x5d47, 0x5d48, 0x5d49, 
-	0x5d4a, 0x5d4b, 0x5d4c, 0x5d4e, 0x5d4f, 0x5d50, 0x5d51, 0x5d53, 
-	0x5d54, 0x5d55, 0x5d57, 0x5d58, 0x5d5a, 0x5d5b, 0x5d5d, 0x5d5f, 
-	0x5d60, 0x5d60, 0x5d60, 0x5d60, 0x5d61, 0x5d61, 0x5d62, 0x5d62, 
-	0x5d63, 0x5d64, 0x5d65, 0x5d65, 0x5d66, 0x5d67, 0x5d68, 0x5d69, 
-	0x5d6a, 0x5d6b, 0x5d6c, 0x5d6e, 0x5d6f, 0x5d70, 0x5d71, 0x5d73, 
-	0x5d74, 0x5d75, 0x5d77, 0x5d78, 0x5d7a, 0x5d7b, 0x5d7d, 0x5d7f, 
-	0x5d80, 0x5d80, 0x5d80, 0x5d80, 0x5d81, 0x5d81, 0x5d82, 0x5d82, 
-	0x5d83, 0x5d84, 0x5d85, 0x5d85, 0x5d86, 0x5d87, 0x5d88, 0x5d89, 
-	0x5d8a, 0x5d8b, 0x5d8c, 0x5d8e, 0x5d8f, 0x5d90, 0x5d91, 0x5d93, 
-	0x5d94, 0x5d95, 0x5d97, 0x5d98, 0x5d9a, 0x5d9b, 0x5d9d, 0x5d9f, 
-	0x5dc0, 0x5dc0, 0x5dc0, 0x5dc0, 0x5dc1, 0x5dc1, 0x5dc2, 0x5dc2, 
-	0x5dc3, 0x5dc4, 0x5dc5, 0x5dc5, 0x5dc6, 0x5dc7, 0x5dc8, 0x5dc9, 
-	0x5dca, 0x5dcb, 0x5dcc, 0x5dce, 0x5dcf, 0x5dd0, 0x5dd1, 0x5dd3, 
-	0x5dd4, 0x5dd5, 0x5dd7, 0x5dd8, 0x5dda, 0x5ddb, 0x5ddd, 0x5ddf, 
-	0x5de0, 0x5de0, 0x5de0, 0x5de0, 0x5de1, 0x5de1, 0x5de2, 0x5de2, 
-	0x5de3, 0x5de4, 0x5de5, 0x5de5, 0x5de6, 0x5de7, 0x5de8, 0x5de9, 
-	0x5dea, 0x5deb, 0x5dec, 0x5dee, 0x5def, 0x5df0, 0x5df1, 0x5df3, 
-	0x5df4, 0x5df5, 0x5df7, 0x5df8, 0x5dfa, 0x5dfb, 0x5dfd, 0x5dff, 
-	0x5e20, 0x5e20, 0x5e20, 0x5e20, 0x5e21, 0x5e21, 0x5e22, 0x5e22, 
-	0x5e23, 0x5e24, 0x5e25, 0x5e25, 0x5e26, 0x5e27, 0x5e28, 0x5e29, 
-	0x5e2a, 0x5e2b, 0x5e2c, 0x5e2e, 0x5e2f, 0x5e30, 0x5e31, 0x5e33, 
-	0x5e34, 0x5e35, 0x5e37, 0x5e38, 0x5e3a, 0x5e3b, 0x5e3d, 0x5e3f, 
-	0x5e40, 0x5e40, 0x5e40, 0x5e40, 0x5e41, 0x5e41, 0x5e42, 0x5e42, 
-	0x5e43, 0x5e44, 0x5e45, 0x5e45, 0x5e46, 0x5e47, 0x5e48, 0x5e49, 
-	0x5e4a, 0x5e4b, 0x5e4c, 0x5e4e, 0x5e4f, 0x5e50, 0x5e51, 0x5e53, 
-	0x5e54, 0x5e55, 0x5e57, 0x5e58, 0x5e5a, 0x5e5b, 0x5e5d, 0x5e5f, 
-	0x5e80, 0x5e80, 0x5e80, 0x5e80, 0x5e81, 0x5e81, 0x5e82, 0x5e82, 
-	0x5e83, 0x5e84, 0x5e85, 0x5e85, 0x5e86, 0x5e87, 0x5e88, 0x5e89, 
-	0x5e8a, 0x5e8b, 0x5e8c, 0x5e8e, 0x5e8f, 0x5e90, 0x5e91, 0x5e93, 
-	0x5e94, 0x5e95, 0x5e97, 0x5e98, 0x5e9a, 0x5e9b, 0x5e9d, 0x5e9f, 
-	0x5ea0, 0x5ea0, 0x5ea0, 0x5ea0, 0x5ea1, 0x5ea1, 0x5ea2, 0x5ea2, 
-	0x5ea3, 0x5ea4, 0x5ea5, 0x5ea5, 0x5ea6, 0x5ea7, 0x5ea8, 0x5ea9, 
-	0x5eaa, 0x5eab, 0x5eac, 0x5eae, 0x5eaf, 0x5eb0, 0x5eb1, 0x5eb3, 
-	0x5eb4, 0x5eb5, 0x5eb7, 0x5eb8, 0x5eba, 0x5ebb, 0x5ebd, 0x5ebf, 
-	0x5ee0, 0x5ee0, 0x5ee0, 0x5ee0, 0x5ee1, 0x5ee1, 0x5ee2, 0x5ee2, 
-	0x5ee3, 0x5ee4, 0x5ee5, 0x5ee5, 0x5ee6, 0x5ee7, 0x5ee8, 0x5ee9, 
-	0x5eea, 0x5eeb, 0x5eec, 0x5eee, 0x5eef, 0x5ef0, 0x5ef1, 0x5ef3, 
-	0x5ef4, 0x5ef5, 0x5ef7, 0x5ef8, 0x5efa, 0x5efb, 0x5efd, 0x5eff, 
-	0x5f00, 0x5f00, 0x5f00, 0x5f00, 0x5f01, 0x5f01, 0x5f02, 0x5f02, 
-	0x5f03, 0x5f04, 0x5f05, 0x5f05, 0x5f06, 0x5f07, 0x5f08, 0x5f09, 
-	0x5f0a, 0x5f0b, 0x5f0c, 0x5f0e, 0x5f0f, 0x5f10, 0x5f11, 0x5f13, 
-	0x5f14, 0x5f15, 0x5f17, 0x5f18, 0x5f1a, 0x5f1b, 0x5f1d, 0x5f1f, 
-	0x5f40, 0x5f40, 0x5f40, 0x5f40, 0x5f41, 0x5f41, 0x5f42, 0x5f42, 
-	0x5f43, 0x5f44, 0x5f45, 0x5f45, 0x5f46, 0x5f47, 0x5f48, 0x5f49, 
-	0x5f4a, 0x5f4b, 0x5f4c, 0x5f4e, 0x5f4f, 0x5f50, 0x5f51, 0x5f53, 
-	0x5f54, 0x5f55, 0x5f57, 0x5f58, 0x5f5a, 0x5f5b, 0x5f5d, 0x5f5f, 
-	0x5f60, 0x5f60, 0x5f60, 0x5f60, 0x5f61, 0x5f61, 0x5f62, 0x5f62, 
-	0x5f63, 0x5f64, 0x5f65, 0x5f65, 0x5f66, 0x5f67, 0x5f68, 0x5f69, 
-	0x5f6a, 0x5f6b, 0x5f6c, 0x5f6e, 0x5f6f, 0x5f70, 0x5f71, 0x5f73, 
-	0x5f74, 0x5f75, 0x5f77, 0x5f78, 0x5f7a, 0x5f7b, 0x5f7d, 0x5f7f, 
-	0x5fa0, 0x5fa0, 0x5fa0, 0x5fa0, 0x5fa1, 0x5fa1, 0x5fa2, 0x5fa2, 
-	0x5fa3, 0x5fa4, 0x5fa5, 0x5fa5, 0x5fa6, 0x5fa7, 0x5fa8, 0x5fa9, 
-	0x5faa, 0x5fab, 0x5fac, 0x5fae, 0x5faf, 0x5fb0, 0x5fb1, 0x5fb3, 
-	0x5fb4, 0x5fb5, 0x5fb7, 0x5fb8, 0x5fba, 0x5fbb, 0x5fbd, 0x5fbf, 
-	0x5fe0, 0x5fe0, 0x5fe0, 0x5fe0, 0x5fe1, 0x5fe1, 0x5fe2, 0x5fe2, 
-	0x5fe3, 0x5fe4, 0x5fe5, 0x5fe5, 0x5fe6, 0x5fe7, 0x5fe8, 0x5fe9, 
-	0x5fea, 0x5feb, 0x5fec, 0x5fee, 0x5fef, 0x5ff0, 0x5ff1, 0x5ff3, 
-	0x5ff4, 0x5ff5, 0x5ff7, 0x5ff8, 0x5ffa, 0x5ffb, 0x5ffd, 0x5fff, 
-	0x6000, 0x6000, 0x6000, 0x6000, 0x6001, 0x6001, 0x6002, 0x6002, 
-	0x6003, 0x6004, 0x6005, 0x6005, 0x6006, 0x6007, 0x6008, 0x6009, 
-	0x600a, 0x600b, 0x600c, 0x600e, 0x600f, 0x6010, 0x6011, 0x6013, 
-	0x6014, 0x6015, 0x6017, 0x6018, 0x601a, 0x601b, 0x601d, 0x601f, 
-	0x6000, 0x6000, 0x6000, 0x6000, 0x6001, 0x6001, 0x6002, 0x6002, 
-	0x6003, 0x6004, 0x6005, 0x6005, 0x6006, 0x6007, 0x6008, 0x6009, 
-	0x600a, 0x600b, 0x600c, 0x600e, 0x600f, 0x6010, 0x6011, 0x6013, 
-	0x6014, 0x6015, 0x6017, 0x6018, 0x601a, 0x601b, 0x601d, 0x601f, 
-	0x6000, 0x6000, 0x6000, 0x6000, 0x6001, 0x6001, 0x6002, 0x6002, 
-	0x6003, 0x6004, 0x6005, 0x6005, 0x6006, 0x6007, 0x6008, 0x6009, 
-	0x600a, 0x600b, 0x600c, 0x600e, 0x600f, 0x6010, 0x6011, 0x6013, 
-	0x6014, 0x6015, 0x6017, 0x6018, 0x601a, 0x601b, 0x601d, 0x601f, 
-	0x6000, 0x6000, 0x6000, 0x6000, 0x6001, 0x6001, 0x6002, 0x6002, 
-	0x6003, 0x6004, 0x6005, 0x6005, 0x6006, 0x6007, 0x6008, 0x6009, 
-	0x600a, 0x600b, 0x600c, 0x600e, 0x600f, 0x6010, 0x6011, 0x6013, 
-	0x6014, 0x6015, 0x6017, 0x6018, 0x601a, 0x601b, 0x601d, 0x601f, 
-	0x6000, 0x6000, 0x6000, 0x6000, 0x6001, 0x6001, 0x6002, 0x6002, 
-	0x6003, 0x6004, 0x6005, 0x6005, 0x6006, 0x6007, 0x6008, 0x6009, 
-	0x600a, 0x600b, 0x600c, 0x600e, 0x600f, 0x6010, 0x6011, 0x6013, 
-	0x6014, 0x6015, 0x6017, 0x6018, 0x601a, 0x601b, 0x601d, 0x601f, 
-	0x6020, 0x6020, 0x6020, 0x6020, 0x6021, 0x6021, 0x6022, 0x6022, 
-	0x6023, 0x6024, 0x6025, 0x6025, 0x6026, 0x6027, 0x6028, 0x6029, 
-	0x602a, 0x602b, 0x602c, 0x602e, 0x602f, 0x6030, 0x6031, 0x6033, 
-	0x6034, 0x6035, 0x6037, 0x6038, 0x603a, 0x603b, 0x603d, 0x603f, 
-	0x6020, 0x6020, 0x6020, 0x6020, 0x6021, 0x6021, 0x6022, 0x6022, 
-	0x6023, 0x6024, 0x6025, 0x6025, 0x6026, 0x6027, 0x6028, 0x6029, 
-	0x602a, 0x602b, 0x602c, 0x602e, 0x602f, 0x6030, 0x6031, 0x6033, 
-	0x6034, 0x6035, 0x6037, 0x6038, 0x603a, 0x603b, 0x603d, 0x603f, 
-	0x6020, 0x6020, 0x6020, 0x6020, 0x6021, 0x6021, 0x6022, 0x6022, 
-	0x6023, 0x6024, 0x6025, 0x6025, 0x6026, 0x6027, 0x6028, 0x6029, 
-	0x602a, 0x602b, 0x602c, 0x602e, 0x602f, 0x6030, 0x6031, 0x6033, 
-	0x6034, 0x6035, 0x6037, 0x6038, 0x603a, 0x603b, 0x603d, 0x603f, 
-	0x6040, 0x6040, 0x6040, 0x6040, 0x6041, 0x6041, 0x6042, 0x6042, 
-	0x6043, 0x6044, 0x6045, 0x6045, 0x6046, 0x6047, 0x6048, 0x6049, 
-	0x604a, 0x604b, 0x604c, 0x604e, 0x604f, 0x6050, 0x6051, 0x6053, 
-	0x6054, 0x6055, 0x6057, 0x6058, 0x605a, 0x605b, 0x605d, 0x605f, 
-	0x6040, 0x6040, 0x6040, 0x6040, 0x6041, 0x6041, 0x6042, 0x6042, 
-	0x6043, 0x6044, 0x6045, 0x6045, 0x6046, 0x6047, 0x6048, 0x6049, 
-	0x604a, 0x604b, 0x604c, 0x604e, 0x604f, 0x6050, 0x6051, 0x6053, 
-	0x6054, 0x6055, 0x6057, 0x6058, 0x605a, 0x605b, 0x605d, 0x605f, 
-	0x6060, 0x6060, 0x6060, 0x6060, 0x6061, 0x6061, 0x6062, 0x6062, 
-	0x6063, 0x6064, 0x6065, 0x6065, 0x6066, 0x6067, 0x6068, 0x6069, 
-	0x606a, 0x606b, 0x606c, 0x606e, 0x606f, 0x6070, 0x6071, 0x6073, 
-	0x6074, 0x6075, 0x6077, 0x6078, 0x607a, 0x607b, 0x607d, 0x607f, 
-	0x6060, 0x6060, 0x6060, 0x6060, 0x6061, 0x6061, 0x6062, 0x6062, 
-	0x6063, 0x6064, 0x6065, 0x6065, 0x6066, 0x6067, 0x6068, 0x6069, 
-	0x606a, 0x606b, 0x606c, 0x606e, 0x606f, 0x6070, 0x6071, 0x6073, 
-	0x6074, 0x6075, 0x6077, 0x6078, 0x607a, 0x607b, 0x607d, 0x607f, 
-	0x6080, 0x6080, 0x6080, 0x6080, 0x6081, 0x6081, 0x6082, 0x6082, 
-	0x6083, 0x6084, 0x6085, 0x6085, 0x6086, 0x6087, 0x6088, 0x6089, 
-	0x608a, 0x608b, 0x608c, 0x608e, 0x608f, 0x6090, 0x6091, 0x6093, 
-	0x6094, 0x6095, 0x6097, 0x6098, 0x609a, 0x609b, 0x609d, 0x609f, 
-	0x60a0, 0x60a0, 0x60a0, 0x60a0, 0x60a1, 0x60a1, 0x60a2, 0x60a2, 
-	0x60a3, 0x60a4, 0x60a5, 0x60a5, 0x60a6, 0x60a7, 0x60a8, 0x60a9, 
-	0x60aa, 0x60ab, 0x60ac, 0x60ae, 0x60af, 0x60b0, 0x60b1, 0x60b3, 
-	0x60b4, 0x60b5, 0x60b7, 0x60b8, 0x60ba, 0x60bb, 0x60bd, 0x60bf, 
-	0x60a0, 0x60a0, 0x60a0, 0x60a0, 0x60a1, 0x60a1, 0x60a2, 0x60a2, 
-	0x60a3, 0x60a4, 0x60a5, 0x60a5, 0x60a6, 0x60a7, 0x60a8, 0x60a9, 
-	0x60aa, 0x60ab, 0x60ac, 0x60ae, 0x60af, 0x60b0, 0x60b1, 0x60b3, 
-	0x60b4, 0x60b5, 0x60b7, 0x60b8, 0x60ba, 0x60bb, 0x60bd, 0x60bf, 
-	0x60c0, 0x60c0, 0x60c0, 0x60c0, 0x60c1, 0x60c1, 0x60c2, 0x60c2, 
-	0x60c3, 0x60c4, 0x60c5, 0x60c5, 0x60c6, 0x60c7, 0x60c8, 0x60c9, 
-	0x60ca, 0x60cb, 0x60cc, 0x60ce, 0x60cf, 0x60d0, 0x60d1, 0x60d3, 
-	0x60d4, 0x60d5, 0x60d7, 0x60d8, 0x60da, 0x60db, 0x60dd, 0x60df, 
-	0x60e0, 0x60e0, 0x60e0, 0x60e0, 0x60e1, 0x60e1, 0x60e2, 0x60e2, 
-	0x60e3, 0x60e4, 0x60e5, 0x60e5, 0x60e6, 0x60e7, 0x60e8, 0x60e9, 
-	0x60ea, 0x60eb, 0x60ec, 0x60ee, 0x60ef, 0x60f0, 0x60f1, 0x60f3, 
-	0x60f4, 0x60f5, 0x60f7, 0x60f8, 0x60fa, 0x60fb, 0x60fd, 0x60ff, 
-	0x60e0, 0x60e0, 0x60e0, 0x60e0, 0x60e1, 0x60e1, 0x60e2, 0x60e2, 
-	0x60e3, 0x60e4, 0x60e5, 0x60e5, 0x60e6, 0x60e7, 0x60e8, 0x60e9, 
-	0x60ea, 0x60eb, 0x60ec, 0x60ee, 0x60ef, 0x60f0, 0x60f1, 0x60f3, 
-	0x60f4, 0x60f5, 0x60f7, 0x60f8, 0x60fa, 0x60fb, 0x60fd, 0x60ff, 
-	0x6100, 0x6100, 0x6100, 0x6100, 0x6101, 0x6101, 0x6102, 0x6102, 
-	0x6103, 0x6104, 0x6105, 0x6105, 0x6106, 0x6107, 0x6108, 0x6109, 
-	0x610a, 0x610b, 0x610c, 0x610e, 0x610f, 0x6110, 0x6111, 0x6113, 
-	0x6114, 0x6115, 0x6117, 0x6118, 0x611a, 0x611b, 0x611d, 0x611f, 
-	0x6120, 0x6120, 0x6120, 0x6120, 0x6121, 0x6121, 0x6122, 0x6122, 
-	0x6123, 0x6124, 0x6125, 0x6125, 0x6126, 0x6127, 0x6128, 0x6129, 
-	0x612a, 0x612b, 0x612c, 0x612e, 0x612f, 0x6130, 0x6131, 0x6133, 
-	0x6134, 0x6135, 0x6137, 0x6138, 0x613a, 0x613b, 0x613d, 0x613f, 
-	0x6140, 0x6140, 0x6140, 0x6140, 0x6141, 0x6141, 0x6142, 0x6142, 
-	0x6143, 0x6144, 0x6145, 0x6145, 0x6146, 0x6147, 0x6148, 0x6149, 
-	0x614a, 0x614b, 0x614c, 0x614e, 0x614f, 0x6150, 0x6151, 0x6153, 
-	0x6154, 0x6155, 0x6157, 0x6158, 0x615a, 0x615b, 0x615d, 0x615f, 
-	0x6140, 0x6140, 0x6140, 0x6140, 0x6141, 0x6141, 0x6142, 0x6142, 
-	0x6143, 0x6144, 0x6145, 0x6145, 0x6146, 0x6147, 0x6148, 0x6149, 
-	0x614a, 0x614b, 0x614c, 0x614e, 0x614f, 0x6150, 0x6151, 0x6153, 
-	0x6154, 0x6155, 0x6157, 0x6158, 0x615a, 0x615b, 0x615d, 0x615f, 
-	0x6160, 0x6160, 0x6160, 0x6160, 0x6161, 0x6161, 0x6162, 0x6162, 
-	0x6163, 0x6164, 0x6165, 0x6165, 0x6166, 0x6167, 0x6168, 0x6169, 
-	0x616a, 0x616b, 0x616c, 0x616e, 0x616f, 0x6170, 0x6171, 0x6173, 
-	0x6174, 0x6175, 0x6177, 0x6178, 0x617a, 0x617b, 0x617d, 0x617f, 
-	0x6180, 0x6180, 0x6180, 0x6180, 0x6181, 0x6181, 0x6182, 0x6182, 
-	0x6183, 0x6184, 0x6185, 0x6185, 0x6186, 0x6187, 0x6188, 0x6189, 
-	0x618a, 0x618b, 0x618c, 0x618e, 0x618f, 0x6190, 0x6191, 0x6193, 
-	0x6194, 0x6195, 0x6197, 0x6198, 0x619a, 0x619b, 0x619d, 0x619f, 
-	0x61a0, 0x61a0, 0x61a0, 0x61a0, 0x61a1, 0x61a1, 0x61a2, 0x61a2, 
-	0x61a3, 0x61a4, 0x61a5, 0x61a5, 0x61a6, 0x61a7, 0x61a8, 0x61a9, 
-	0x61aa, 0x61ab, 0x61ac, 0x61ae, 0x61af, 0x61b0, 0x61b1, 0x61b3, 
-	0x61b4, 0x61b5, 0x61b7, 0x61b8, 0x61ba, 0x61bb, 0x61bd, 0x61bf, 
-	0x61c0, 0x61c0, 0x61c0, 0x61c0, 0x61c1, 0x61c1, 0x61c2, 0x61c2, 
-	0x61c3, 0x61c4, 0x61c5, 0x61c5, 0x61c6, 0x61c7, 0x61c8, 0x61c9, 
-	0x61ca, 0x61cb, 0x61cc, 0x61ce, 0x61cf, 0x61d0, 0x61d1, 0x61d3, 
-	0x61d4, 0x61d5, 0x61d7, 0x61d8, 0x61da, 0x61db, 0x61dd, 0x61df, 
-	0x61e0, 0x61e0, 0x61e0, 0x61e0, 0x61e1, 0x61e1, 0x61e2, 0x61e2, 
-	0x61e3, 0x61e4, 0x61e5, 0x61e5, 0x61e6, 0x61e7, 0x61e8, 0x61e9, 
-	0x61ea, 0x61eb, 0x61ec, 0x61ee, 0x61ef, 0x61f0, 0x61f1, 0x61f3, 
-	0x61f4, 0x61f5, 0x61f7, 0x61f8, 0x61fa, 0x61fb, 0x61fd, 0x61ff, 
-	0x6200, 0x6200, 0x6200, 0x6200, 0x6201, 0x6201, 0x6202, 0x6202, 
-	0x6203, 0x6204, 0x6205, 0x6205, 0x6206, 0x6207, 0x6208, 0x6209, 
-	0x620a, 0x620b, 0x620c, 0x620e, 0x620f, 0x6210, 0x6211, 0x6213, 
-	0x6214, 0x6215, 0x6217, 0x6218, 0x621a, 0x621b, 0x621d, 0x621f, 
-	0x6220, 0x6220, 0x6220, 0x6220, 0x6221, 0x6221, 0x6222, 0x6222, 
-	0x6223, 0x6224, 0x6225, 0x6225, 0x6226, 0x6227, 0x6228, 0x6229, 
-	0x622a, 0x622b, 0x622c, 0x622e, 0x622f, 0x6230, 0x6231, 0x6233, 
-	0x6234, 0x6235, 0x6237, 0x6238, 0x623a, 0x623b, 0x623d, 0x623f, 
-	0x6240, 0x6240, 0x6240, 0x6240, 0x6241, 0x6241, 0x6242, 0x6242, 
-	0x6243, 0x6244, 0x6245, 0x6245, 0x6246, 0x6247, 0x6248, 0x6249, 
-	0x624a, 0x624b, 0x624c, 0x624e, 0x624f, 0x6250, 0x6251, 0x6253, 
-	0x6254, 0x6255, 0x6257, 0x6258, 0x625a, 0x625b, 0x625d, 0x625f, 
-	0x6260, 0x6260, 0x6260, 0x6260, 0x6261, 0x6261, 0x6262, 0x6262, 
-	0x6263, 0x6264, 0x6265, 0x6265, 0x6266, 0x6267, 0x6268, 0x6269, 
-	0x626a, 0x626b, 0x626c, 0x626e, 0x626f, 0x6270, 0x6271, 0x6273, 
-	0x6274, 0x6275, 0x6277, 0x6278, 0x627a, 0x627b, 0x627d, 0x627f, 
-	0x6280, 0x6280, 0x6280, 0x6280, 0x6281, 0x6281, 0x6282, 0x6282, 
-	0x6283, 0x6284, 0x6285, 0x6285, 0x6286, 0x6287, 0x6288, 0x6289, 
-	0x628a, 0x628b, 0x628c, 0x628e, 0x628f, 0x6290, 0x6291, 0x6293, 
-	0x6294, 0x6295, 0x6297, 0x6298, 0x629a, 0x629b, 0x629d, 0x629f, 
-	0x62a0, 0x62a0, 0x62a0, 0x62a0, 0x62a1, 0x62a1, 0x62a2, 0x62a2, 
-	0x62a3, 0x62a4, 0x62a5, 0x62a5, 0x62a6, 0x62a7, 0x62a8, 0x62a9, 
-	0x62aa, 0x62ab, 0x62ac, 0x62ae, 0x62af, 0x62b0, 0x62b1, 0x62b3, 
-	0x62b4, 0x62b5, 0x62b7, 0x62b8, 0x62ba, 0x62bb, 0x62bd, 0x62bf, 
-	0x62c0, 0x62c0, 0x62c0, 0x62c0, 0x62c1, 0x62c1, 0x62c2, 0x62c2, 
-	0x62c3, 0x62c4, 0x62c5, 0x62c5, 0x62c6, 0x62c7, 0x62c8, 0x62c9, 
-	0x62ca, 0x62cb, 0x62cc, 0x62ce, 0x62cf, 0x62d0, 0x62d1, 0x62d3, 
-	0x62d4, 0x62d5, 0x62d7, 0x62d8, 0x62da, 0x62db, 0x62dd, 0x62df, 
-	0x62e0, 0x62e0, 0x62e0, 0x62e0, 0x62e1, 0x62e1, 0x62e2, 0x62e2, 
-	0x62e3, 0x62e4, 0x62e5, 0x62e5, 0x62e6, 0x62e7, 0x62e8, 0x62e9, 
-	0x62ea, 0x62eb, 0x62ec, 0x62ee, 0x62ef, 0x62f0, 0x62f1, 0x62f3, 
-	0x62f4, 0x62f5, 0x62f7, 0x62f8, 0x62fa, 0x62fb, 0x62fd, 0x62ff, 
-	0x6300, 0x6300, 0x6300, 0x6300, 0x6301, 0x6301, 0x6302, 0x6302, 
-	0x6303, 0x6304, 0x6305, 0x6305, 0x6306, 0x6307, 0x6308, 0x6309, 
-	0x630a, 0x630b, 0x630c, 0x630e, 0x630f, 0x6310, 0x6311, 0x6313, 
-	0x6314, 0x6315, 0x6317, 0x6318, 0x631a, 0x631b, 0x631d, 0x631f, 
-	0x6320, 0x6320, 0x6320, 0x6320, 0x6321, 0x6321, 0x6322, 0x6322, 
-	0x6323, 0x6324, 0x6325, 0x6325, 0x6326, 0x6327, 0x6328, 0x6329, 
-	0x632a, 0x632b, 0x632c, 0x632e, 0x632f, 0x6330, 0x6331, 0x6333, 
-	0x6334, 0x6335, 0x6337, 0x6338, 0x633a, 0x633b, 0x633d, 0x633f, 
-	0x6340, 0x6340, 0x6340, 0x6340, 0x6341, 0x6341, 0x6342, 0x6342, 
-	0x6343, 0x6344, 0x6345, 0x6345, 0x6346, 0x6347, 0x6348, 0x6349, 
-	0x634a, 0x634b, 0x634c, 0x634e, 0x634f, 0x6350, 0x6351, 0x6353, 
-	0x6354, 0x6355, 0x6357, 0x6358, 0x635a, 0x635b, 0x635d, 0x635f, 
-	0x6380, 0x6380, 0x6380, 0x6380, 0x6381, 0x6381, 0x6382, 0x6382, 
-	0x6383, 0x6384, 0x6385, 0x6385, 0x6386, 0x6387, 0x6388, 0x6389, 
-	0x638a, 0x638b, 0x638c, 0x638e, 0x638f, 0x6390, 0x6391, 0x6393, 
-	0x6394, 0x6395, 0x6397, 0x6398, 0x639a, 0x639b, 0x639d, 0x639f, 
-	0x63a0, 0x63a0, 0x63a0, 0x63a0, 0x63a1, 0x63a1, 0x63a2, 0x63a2, 
-	0x63a3, 0x63a4, 0x63a5, 0x63a5, 0x63a6, 0x63a7, 0x63a8, 0x63a9, 
-	0x63aa, 0x63ab, 0x63ac, 0x63ae, 0x63af, 0x63b0, 0x63b1, 0x63b3, 
-	0x63b4, 0x63b5, 0x63b7, 0x63b8, 0x63ba, 0x63bb, 0x63bd, 0x63bf, 
-	0x63c0, 0x63c0, 0x63c0, 0x63c0, 0x63c1, 0x63c1, 0x63c2, 0x63c2, 
-	0x63c3, 0x63c4, 0x63c5, 0x63c5, 0x63c6, 0x63c7, 0x63c8, 0x63c9, 
-	0x63ca, 0x63cb, 0x63cc, 0x63ce, 0x63cf, 0x63d0, 0x63d1, 0x63d3, 
-	0x63d4, 0x63d5, 0x63d7, 0x63d8, 0x63da, 0x63db, 0x63dd, 0x63df, 
-	0x63e0, 0x63e0, 0x63e0, 0x63e0, 0x63e1, 0x63e1, 0x63e2, 0x63e2, 
-	0x63e3, 0x63e4, 0x63e5, 0x63e5, 0x63e6, 0x63e7, 0x63e8, 0x63e9, 
-	0x63ea, 0x63eb, 0x63ec, 0x63ee, 0x63ef, 0x63f0, 0x63f1, 0x63f3, 
-	0x63f4, 0x63f5, 0x63f7, 0x63f8, 0x63fa, 0x63fb, 0x63fd, 0x63ff, 
-	0x6400, 0x6400, 0x6400, 0x6400, 0x6401, 0x6401, 0x6402, 0x6402, 
-	0x6403, 0x6404, 0x6405, 0x6405, 0x6406, 0x6407, 0x6408, 0x6409, 
-	0x640a, 0x640b, 0x640c, 0x640e, 0x640f, 0x6410, 0x6411, 0x6413, 
-	0x6414, 0x6415, 0x6417, 0x6418, 0x641a, 0x641b, 0x641d, 0x641f, 
-	0x6440, 0x6440, 0x6440, 0x6440, 0x6441, 0x6441, 0x6442, 0x6442, 
-	0x6443, 0x6444, 0x6445, 0x6445, 0x6446, 0x6447, 0x6448, 0x6449, 
-	0x644a, 0x644b, 0x644c, 0x644e, 0x644f, 0x6450, 0x6451, 0x6453, 
-	0x6454, 0x6455, 0x6457, 0x6458, 0x645a, 0x645b, 0x645d, 0x645f, 
-	0x6460, 0x6460, 0x6460, 0x6460, 0x6461, 0x6461, 0x6462, 0x6462, 
-	0x6463, 0x6464, 0x6465, 0x6465, 0x6466, 0x6467, 0x6468, 0x6469, 
-	0x646a, 0x646b, 0x646c, 0x646e, 0x646f, 0x6470, 0x6471, 0x6473, 
-	0x6474, 0x6475, 0x6477, 0x6478, 0x647a, 0x647b, 0x647d, 0x647f, 
-	0x6480, 0x6480, 0x6480, 0x6480, 0x6481, 0x6481, 0x6482, 0x6482, 
-	0x6483, 0x6484, 0x6485, 0x6485, 0x6486, 0x6487, 0x6488, 0x6489, 
-	0x648a, 0x648b, 0x648c, 0x648e, 0x648f, 0x6490, 0x6491, 0x6493, 
-	0x6494, 0x6495, 0x6497, 0x6498, 0x649a, 0x649b, 0x649d, 0x649f, 
-	0x64c0, 0x64c0, 0x64c0, 0x64c0, 0x64c1, 0x64c1, 0x64c2, 0x64c2, 
-	0x64c3, 0x64c4, 0x64c5, 0x64c5, 0x64c6, 0x64c7, 0x64c8, 0x64c9, 
-	0x64ca, 0x64cb, 0x64cc, 0x64ce, 0x64cf, 0x64d0, 0x64d1, 0x64d3, 
-	0x64d4, 0x64d5, 0x64d7, 0x64d8, 0x64da, 0x64db, 0x64dd, 0x64df, 
-	0x64e0, 0x64e0, 0x64e0, 0x64e0, 0x64e1, 0x64e1, 0x64e2, 0x64e2, 
-	0x64e3, 0x64e4, 0x64e5, 0x64e5, 0x64e6, 0x64e7, 0x64e8, 0x64e9, 
-	0x64ea, 0x64eb, 0x64ec, 0x64ee, 0x64ef, 0x64f0, 0x64f1, 0x64f3, 
-	0x64f4, 0x64f5, 0x64f7, 0x64f8, 0x64fa, 0x64fb, 0x64fd, 0x64ff, 
-	0x6500, 0x6500, 0x6500, 0x6500, 0x6501, 0x6501, 0x6502, 0x6502, 
-	0x6503, 0x6504, 0x6505, 0x6505, 0x6506, 0x6507, 0x6508, 0x6509, 
-	0x650a, 0x650b, 0x650c, 0x650e, 0x650f, 0x6510, 0x6511, 0x6513, 
-	0x6514, 0x6515, 0x6517, 0x6518, 0x651a, 0x651b, 0x651d, 0x651f, 
-	0x6540, 0x6540, 0x6540, 0x6540, 0x6541, 0x6541, 0x6542, 0x6542, 
-	0x6543, 0x6544, 0x6545, 0x6545, 0x6546, 0x6547, 0x6548, 0x6549, 
-	0x654a, 0x654b, 0x654c, 0x654e, 0x654f, 0x6550, 0x6551, 0x6553, 
-	0x6554, 0x6555, 0x6557, 0x6558, 0x655a, 0x655b, 0x655d, 0x655f, 
-	0x6560, 0x6560, 0x6560, 0x6560, 0x6561, 0x6561, 0x6562, 0x6562, 
-	0x6563, 0x6564, 0x6565, 0x6565, 0x6566, 0x6567, 0x6568, 0x6569, 
-	0x656a, 0x656b, 0x656c, 0x656e, 0x656f, 0x6570, 0x6571, 0x6573, 
-	0x6574, 0x6575, 0x6577, 0x6578, 0x657a, 0x657b, 0x657d, 0x657f, 
-	0x6580, 0x6580, 0x6580, 0x6580, 0x6581, 0x6581, 0x6582, 0x6582, 
-	0x6583, 0x6584, 0x6585, 0x6585, 0x6586, 0x6587, 0x6588, 0x6589, 
-	0x658a, 0x658b, 0x658c, 0x658e, 0x658f, 0x6590, 0x6591, 0x6593, 
-	0x6594, 0x6595, 0x6597, 0x6598, 0x659a, 0x659b, 0x659d, 0x659f, 
-	0x65c0, 0x65c0, 0x65c0, 0x65c0, 0x65c1, 0x65c1, 0x65c2, 0x65c2, 
-	0x65c3, 0x65c4, 0x65c5, 0x65c5, 0x65c6, 0x65c7, 0x65c8, 0x65c9, 
-	0x65ca, 0x65cb, 0x65cc, 0x65ce, 0x65cf, 0x65d0, 0x65d1, 0x65d3, 
-	0x65d4, 0x65d5, 0x65d7, 0x65d8, 0x65da, 0x65db, 0x65dd, 0x65df, 
-	0x65e0, 0x65e0, 0x65e0, 0x65e0, 0x65e1, 0x65e1, 0x65e2, 0x65e2, 
-	0x65e3, 0x65e4, 0x65e5, 0x65e5, 0x65e6, 0x65e7, 0x65e8, 0x65e9, 
-	0x65ea, 0x65eb, 0x65ec, 0x65ee, 0x65ef, 0x65f0, 0x65f1, 0x65f3, 
-	0x65f4, 0x65f5, 0x65f7, 0x65f8, 0x65fa, 0x65fb, 0x65fd, 0x65ff, 
-	0x6620, 0x6620, 0x6620, 0x6620, 0x6621, 0x6621, 0x6622, 0x6622, 
-	0x6623, 0x6624, 0x6625, 0x6625, 0x6626, 0x6627, 0x6628, 0x6629, 
-	0x662a, 0x662b, 0x662c, 0x662e, 0x662f, 0x6630, 0x6631, 0x6633, 
-	0x6634, 0x6635, 0x6637, 0x6638, 0x663a, 0x663b, 0x663d, 0x663f, 
-	0x6640, 0x6640, 0x6640, 0x6640, 0x6641, 0x6641, 0x6642, 0x6642, 
-	0x6643, 0x6644, 0x6645, 0x6645, 0x6646, 0x6647, 0x6648, 0x6649, 
-	0x664a, 0x664b, 0x664c, 0x664e, 0x664f, 0x6650, 0x6651, 0x6653, 
-	0x6654, 0x6655, 0x6657, 0x6658, 0x665a, 0x665b, 0x665d, 0x665f, 
-	0x6680, 0x6680, 0x6680, 0x6680, 0x6681, 0x6681, 0x6682, 0x6682, 
-	0x6683, 0x6684, 0x6685, 0x6685, 0x6686, 0x6687, 0x6688, 0x6689, 
-	0x668a, 0x668b, 0x668c, 0x668e, 0x668f, 0x6690, 0x6691, 0x6693, 
-	0x6694, 0x6695, 0x6697, 0x6698, 0x669a, 0x669b, 0x669d, 0x669f, 
-	0x66a0, 0x66a0, 0x66a0, 0x66a0, 0x66a1, 0x66a1, 0x66a2, 0x66a2, 
-	0x66a3, 0x66a4, 0x66a5, 0x66a5, 0x66a6, 0x66a7, 0x66a8, 0x66a9, 
-	0x66aa, 0x66ab, 0x66ac, 0x66ae, 0x66af, 0x66b0, 0x66b1, 0x66b3, 
-	0x66b4, 0x66b5, 0x66b7, 0x66b8, 0x66ba, 0x66bb, 0x66bd, 0x66bf, 
-	0x66e0, 0x66e0, 0x66e0, 0x66e0, 0x66e1, 0x66e1, 0x66e2, 0x66e2, 
-	0x66e3, 0x66e4, 0x66e5, 0x66e5, 0x66e6, 0x66e7, 0x66e8, 0x66e9, 
-	0x66ea, 0x66eb, 0x66ec, 0x66ee, 0x66ef, 0x66f0, 0x66f1, 0x66f3, 
-	0x66f4, 0x66f5, 0x66f7, 0x66f8, 0x66fa, 0x66fb, 0x66fd, 0x66ff, 
-	0x6700, 0x6700, 0x6700, 0x6700, 0x6701, 0x6701, 0x6702, 0x6702, 
-	0x6703, 0x6704, 0x6705, 0x6705, 0x6706, 0x6707, 0x6708, 0x6709, 
-	0x670a, 0x670b, 0x670c, 0x670e, 0x670f, 0x6710, 0x6711, 0x6713, 
-	0x6714, 0x6715, 0x6717, 0x6718, 0x671a, 0x671b, 0x671d, 0x671f, 
-	0x6740, 0x6740, 0x6740, 0x6740, 0x6741, 0x6741, 0x6742, 0x6742, 
-	0x6743, 0x6744, 0x6745, 0x6745, 0x6746, 0x6747, 0x6748, 0x6749, 
-	0x674a, 0x674b, 0x674c, 0x674e, 0x674f, 0x6750, 0x6751, 0x6753, 
-	0x6754, 0x6755, 0x6757, 0x6758, 0x675a, 0x675b, 0x675d, 0x675f, 
-	0x6760, 0x6760, 0x6760, 0x6760, 0x6761, 0x6761, 0x6762, 0x6762, 
-	0x6763, 0x6764, 0x6765, 0x6765, 0x6766, 0x6767, 0x6768, 0x6769, 
-	0x676a, 0x676b, 0x676c, 0x676e, 0x676f, 0x6770, 0x6771, 0x6773, 
-	0x6774, 0x6775, 0x6777, 0x6778, 0x677a, 0x677b, 0x677d, 0x677f, 
-	0x67a0, 0x67a0, 0x67a0, 0x67a0, 0x67a1, 0x67a1, 0x67a2, 0x67a2, 
-	0x67a3, 0x67a4, 0x67a5, 0x67a5, 0x67a6, 0x67a7, 0x67a8, 0x67a9, 
-	0x67aa, 0x67ab, 0x67ac, 0x67ae, 0x67af, 0x67b0, 0x67b1, 0x67b3, 
-	0x67b4, 0x67b5, 0x67b7, 0x67b8, 0x67ba, 0x67bb, 0x67bd, 0x67bf, 
-	0x67e0, 0x67e0, 0x67e0, 0x67e0, 0x67e1, 0x67e1, 0x67e2, 0x67e2, 
-	0x67e3, 0x67e4, 0x67e5, 0x67e5, 0x67e6, 0x67e7, 0x67e8, 0x67e9, 
-	0x67ea, 0x67eb, 0x67ec, 0x67ee, 0x67ef, 0x67f0, 0x67f1, 0x67f3, 
-	0x67f4, 0x67f5, 0x67f7, 0x67f8, 0x67fa, 0x67fb, 0x67fd, 0x67ff, 
-	0x7000, 0x7000, 0x7000, 0x7000, 0x7001, 0x7001, 0x7002, 0x7002, 
-	0x7003, 0x7004, 0x7005, 0x7005, 0x7006, 0x7007, 0x7008, 0x7009, 
-	0x700a, 0x700b, 0x700c, 0x700e, 0x700f, 0x7010, 0x7011, 0x7013, 
-	0x7014, 0x7015, 0x7017, 0x7018, 0x701a, 0x701b, 0x701d, 0x701f, 
-	0x7000, 0x7000, 0x7000, 0x7000, 0x7001, 0x7001, 0x7002, 0x7002, 
-	0x7003, 0x7004, 0x7005, 0x7005, 0x7006, 0x7007, 0x7008, 0x7009, 
-	0x700a, 0x700b, 0x700c, 0x700e, 0x700f, 0x7010, 0x7011, 0x7013, 
-	0x7014, 0x7015, 0x7017, 0x7018, 0x701a, 0x701b, 0x701d, 0x701f, 
-	0x7000, 0x7000, 0x7000, 0x7000, 0x7001, 0x7001, 0x7002, 0x7002, 
-	0x7003, 0x7004, 0x7005, 0x7005, 0x7006, 0x7007, 0x7008, 0x7009, 
-	0x700a, 0x700b, 0x700c, 0x700e, 0x700f, 0x7010, 0x7011, 0x7013, 
-	0x7014, 0x7015, 0x7017, 0x7018, 0x701a, 0x701b, 0x701d, 0x701f, 
-	0x7000, 0x7000, 0x7000, 0x7000, 0x7001, 0x7001, 0x7002, 0x7002, 
-	0x7003, 0x7004, 0x7005, 0x7005, 0x7006, 0x7007, 0x7008, 0x7009, 
-	0x700a, 0x700b, 0x700c, 0x700e, 0x700f, 0x7010, 0x7011, 0x7013, 
-	0x7014, 0x7015, 0x7017, 0x7018, 0x701a, 0x701b, 0x701d, 0x701f, 
-	0x7000, 0x7000, 0x7000, 0x7000, 0x7001, 0x7001, 0x7002, 0x7002, 
-	0x7003, 0x7004, 0x7005, 0x7005, 0x7006, 0x7007, 0x7008, 0x7009, 
-	0x700a, 0x700b, 0x700c, 0x700e, 0x700f, 0x7010, 0x7011, 0x7013, 
-	0x7014, 0x7015, 0x7017, 0x7018, 0x701a, 0x701b, 0x701d, 0x701f, 
-	0x7020, 0x7020, 0x7020, 0x7020, 0x7021, 0x7021, 0x7022, 0x7022, 
-	0x7023, 0x7024, 0x7025, 0x7025, 0x7026, 0x7027, 0x7028, 0x7029, 
-	0x702a, 0x702b, 0x702c, 0x702e, 0x702f, 0x7030, 0x7031, 0x7033, 
-	0x7034, 0x7035, 0x7037, 0x7038, 0x703a, 0x703b, 0x703d, 0x703f, 
-	0x7020, 0x7020, 0x7020, 0x7020, 0x7021, 0x7021, 0x7022, 0x7022, 
-	0x7023, 0x7024, 0x7025, 0x7025, 0x7026, 0x7027, 0x7028, 0x7029, 
-	0x702a, 0x702b, 0x702c, 0x702e, 0x702f, 0x7030, 0x7031, 0x7033, 
-	0x7034, 0x7035, 0x7037, 0x7038, 0x703a, 0x703b, 0x703d, 0x703f, 
-	0x7020, 0x7020, 0x7020, 0x7020, 0x7021, 0x7021, 0x7022, 0x7022, 
-	0x7023, 0x7024, 0x7025, 0x7025, 0x7026, 0x7027, 0x7028, 0x7029, 
-	0x702a, 0x702b, 0x702c, 0x702e, 0x702f, 0x7030, 0x7031, 0x7033, 
-	0x7034, 0x7035, 0x7037, 0x7038, 0x703a, 0x703b, 0x703d, 0x703f, 
-	0x7040, 0x7040, 0x7040, 0x7040, 0x7041, 0x7041, 0x7042, 0x7042, 
-	0x7043, 0x7044, 0x7045, 0x7045, 0x7046, 0x7047, 0x7048, 0x7049, 
-	0x704a, 0x704b, 0x704c, 0x704e, 0x704f, 0x7050, 0x7051, 0x7053, 
-	0x7054, 0x7055, 0x7057, 0x7058, 0x705a, 0x705b, 0x705d, 0x705f, 
-	0x7040, 0x7040, 0x7040, 0x7040, 0x7041, 0x7041, 0x7042, 0x7042, 
-	0x7043, 0x7044, 0x7045, 0x7045, 0x7046, 0x7047, 0x7048, 0x7049, 
-	0x704a, 0x704b, 0x704c, 0x704e, 0x704f, 0x7050, 0x7051, 0x7053, 
-	0x7054, 0x7055, 0x7057, 0x7058, 0x705a, 0x705b, 0x705d, 0x705f, 
-	0x7060, 0x7060, 0x7060, 0x7060, 0x7061, 0x7061, 0x7062, 0x7062, 
-	0x7063, 0x7064, 0x7065, 0x7065, 0x7066, 0x7067, 0x7068, 0x7069, 
-	0x706a, 0x706b, 0x706c, 0x706e, 0x706f, 0x7070, 0x7071, 0x7073, 
-	0x7074, 0x7075, 0x7077, 0x7078, 0x707a, 0x707b, 0x707d, 0x707f, 
-	0x7060, 0x7060, 0x7060, 0x7060, 0x7061, 0x7061, 0x7062, 0x7062, 
-	0x7063, 0x7064, 0x7065, 0x7065, 0x7066, 0x7067, 0x7068, 0x7069, 
-	0x706a, 0x706b, 0x706c, 0x706e, 0x706f, 0x7070, 0x7071, 0x7073, 
-	0x7074, 0x7075, 0x7077, 0x7078, 0x707a, 0x707b, 0x707d, 0x707f, 
-	0x7080, 0x7080, 0x7080, 0x7080, 0x7081, 0x7081, 0x7082, 0x7082, 
-	0x7083, 0x7084, 0x7085, 0x7085, 0x7086, 0x7087, 0x7088, 0x7089, 
-	0x708a, 0x708b, 0x708c, 0x708e, 0x708f, 0x7090, 0x7091, 0x7093, 
-	0x7094, 0x7095, 0x7097, 0x7098, 0x709a, 0x709b, 0x709d, 0x709f, 
-	0x70a0, 0x70a0, 0x70a0, 0x70a0, 0x70a1, 0x70a1, 0x70a2, 0x70a2, 
-	0x70a3, 0x70a4, 0x70a5, 0x70a5, 0x70a6, 0x70a7, 0x70a8, 0x70a9, 
-	0x70aa, 0x70ab, 0x70ac, 0x70ae, 0x70af, 0x70b0, 0x70b1, 0x70b3, 
-	0x70b4, 0x70b5, 0x70b7, 0x70b8, 0x70ba, 0x70bb, 0x70bd, 0x70bf, 
-	0x70a0, 0x70a0, 0x70a0, 0x70a0, 0x70a1, 0x70a1, 0x70a2, 0x70a2, 
-	0x70a3, 0x70a4, 0x70a5, 0x70a5, 0x70a6, 0x70a7, 0x70a8, 0x70a9, 
-	0x70aa, 0x70ab, 0x70ac, 0x70ae, 0x70af, 0x70b0, 0x70b1, 0x70b3, 
-	0x70b4, 0x70b5, 0x70b7, 0x70b8, 0x70ba, 0x70bb, 0x70bd, 0x70bf, 
-	0x70c0, 0x70c0, 0x70c0, 0x70c0, 0x70c1, 0x70c1, 0x70c2, 0x70c2, 
-	0x70c3, 0x70c4, 0x70c5, 0x70c5, 0x70c6, 0x70c7, 0x70c8, 0x70c9, 
-	0x70ca, 0x70cb, 0x70cc, 0x70ce, 0x70cf, 0x70d0, 0x70d1, 0x70d3, 
-	0x70d4, 0x70d5, 0x70d7, 0x70d8, 0x70da, 0x70db, 0x70dd, 0x70df, 
-	0x70e0, 0x70e0, 0x70e0, 0x70e0, 0x70e1, 0x70e1, 0x70e2, 0x70e2, 
-	0x70e3, 0x70e4, 0x70e5, 0x70e5, 0x70e6, 0x70e7, 0x70e8, 0x70e9, 
-	0x70ea, 0x70eb, 0x70ec, 0x70ee, 0x70ef, 0x70f0, 0x70f1, 0x70f3, 
-	0x70f4, 0x70f5, 0x70f7, 0x70f8, 0x70fa, 0x70fb, 0x70fd, 0x70ff, 
-	0x70e0, 0x70e0, 0x70e0, 0x70e0, 0x70e1, 0x70e1, 0x70e2, 0x70e2, 
-	0x70e3, 0x70e4, 0x70e5, 0x70e5, 0x70e6, 0x70e7, 0x70e8, 0x70e9, 
-	0x70ea, 0x70eb, 0x70ec, 0x70ee, 0x70ef, 0x70f0, 0x70f1, 0x70f3, 
-	0x70f4, 0x70f5, 0x70f7, 0x70f8, 0x70fa, 0x70fb, 0x70fd, 0x70ff, 
-	0x7100, 0x7100, 0x7100, 0x7100, 0x7101, 0x7101, 0x7102, 0x7102, 
-	0x7103, 0x7104, 0x7105, 0x7105, 0x7106, 0x7107, 0x7108, 0x7109, 
-	0x710a, 0x710b, 0x710c, 0x710e, 0x710f, 0x7110, 0x7111, 0x7113, 
-	0x7114, 0x7115, 0x7117, 0x7118, 0x711a, 0x711b, 0x711d, 0x711f, 
-	0x7120, 0x7120, 0x7120, 0x7120, 0x7121, 0x7121, 0x7122, 0x7122, 
-	0x7123, 0x7124, 0x7125, 0x7125, 0x7126, 0x7127, 0x7128, 0x7129, 
-	0x712a, 0x712b, 0x712c, 0x712e, 0x712f, 0x7130, 0x7131, 0x7133, 
-	0x7134, 0x7135, 0x7137, 0x7138, 0x713a, 0x713b, 0x713d, 0x713f, 
-	0x7140, 0x7140, 0x7140, 0x7140, 0x7141, 0x7141, 0x7142, 0x7142, 
-	0x7143, 0x7144, 0x7145, 0x7145, 0x7146, 0x7147, 0x7148, 0x7149, 
-	0x714a, 0x714b, 0x714c, 0x714e, 0x714f, 0x7150, 0x7151, 0x7153, 
-	0x7154, 0x7155, 0x7157, 0x7158, 0x715a, 0x715b, 0x715d, 0x715f, 
-	0x7140, 0x7140, 0x7140, 0x7140, 0x7141, 0x7141, 0x7142, 0x7142, 
-	0x7143, 0x7144, 0x7145, 0x7145, 0x7146, 0x7147, 0x7148, 0x7149, 
-	0x714a, 0x714b, 0x714c, 0x714e, 0x714f, 0x7150, 0x7151, 0x7153, 
-	0x7154, 0x7155, 0x7157, 0x7158, 0x715a, 0x715b, 0x715d, 0x715f, 
-	0x7160, 0x7160, 0x7160, 0x7160, 0x7161, 0x7161, 0x7162, 0x7162, 
-	0x7163, 0x7164, 0x7165, 0x7165, 0x7166, 0x7167, 0x7168, 0x7169, 
-	0x716a, 0x716b, 0x716c, 0x716e, 0x716f, 0x7170, 0x7171, 0x7173, 
-	0x7174, 0x7175, 0x7177, 0x7178, 0x717a, 0x717b, 0x717d, 0x717f, 
-	0x7180, 0x7180, 0x7180, 0x7180, 0x7181, 0x7181, 0x7182, 0x7182, 
-	0x7183, 0x7184, 0x7185, 0x7185, 0x7186, 0x7187, 0x7188, 0x7189, 
-	0x718a, 0x718b, 0x718c, 0x718e, 0x718f, 0x7190, 0x7191, 0x7193, 
-	0x7194, 0x7195, 0x7197, 0x7198, 0x719a, 0x719b, 0x719d, 0x719f, 
-	0x71a0, 0x71a0, 0x71a0, 0x71a0, 0x71a1, 0x71a1, 0x71a2, 0x71a2, 
-	0x71a3, 0x71a4, 0x71a5, 0x71a5, 0x71a6, 0x71a7, 0x71a8, 0x71a9, 
-	0x71aa, 0x71ab, 0x71ac, 0x71ae, 0x71af, 0x71b0, 0x71b1, 0x71b3, 
-	0x71b4, 0x71b5, 0x71b7, 0x71b8, 0x71ba, 0x71bb, 0x71bd, 0x71bf, 
-	0x71c0, 0x71c0, 0x71c0, 0x71c0, 0x71c1, 0x71c1, 0x71c2, 0x71c2, 
-	0x71c3, 0x71c4, 0x71c5, 0x71c5, 0x71c6, 0x71c7, 0x71c8, 0x71c9, 
-	0x71ca, 0x71cb, 0x71cc, 0x71ce, 0x71cf, 0x71d0, 0x71d1, 0x71d3, 
-	0x71d4, 0x71d5, 0x71d7, 0x71d8, 0x71da, 0x71db, 0x71dd, 0x71df, 
-	0x71e0, 0x71e0, 0x71e0, 0x71e0, 0x71e1, 0x71e1, 0x71e2, 0x71e2, 
-	0x71e3, 0x71e4, 0x71e5, 0x71e5, 0x71e6, 0x71e7, 0x71e8, 0x71e9, 
-	0x71ea, 0x71eb, 0x71ec, 0x71ee, 0x71ef, 0x71f0, 0x71f1, 0x71f3, 
-	0x71f4, 0x71f5, 0x71f7, 0x71f8, 0x71fa, 0x71fb, 0x71fd, 0x71ff, 
-	0x7200, 0x7200, 0x7200, 0x7200, 0x7201, 0x7201, 0x7202, 0x7202, 
-	0x7203, 0x7204, 0x7205, 0x7205, 0x7206, 0x7207, 0x7208, 0x7209, 
-	0x720a, 0x720b, 0x720c, 0x720e, 0x720f, 0x7210, 0x7211, 0x7213, 
-	0x7214, 0x7215, 0x7217, 0x7218, 0x721a, 0x721b, 0x721d, 0x721f, 
-	0x7220, 0x7220, 0x7220, 0x7220, 0x7221, 0x7221, 0x7222, 0x7222, 
-	0x7223, 0x7224, 0x7225, 0x7225, 0x7226, 0x7227, 0x7228, 0x7229, 
-	0x722a, 0x722b, 0x722c, 0x722e, 0x722f, 0x7230, 0x7231, 0x7233, 
-	0x7234, 0x7235, 0x7237, 0x7238, 0x723a, 0x723b, 0x723d, 0x723f, 
-	0x7240, 0x7240, 0x7240, 0x7240, 0x7241, 0x7241, 0x7242, 0x7242, 
-	0x7243, 0x7244, 0x7245, 0x7245, 0x7246, 0x7247, 0x7248, 0x7249, 
-	0x724a, 0x724b, 0x724c, 0x724e, 0x724f, 0x7250, 0x7251, 0x7253, 
-	0x7254, 0x7255, 0x7257, 0x7258, 0x725a, 0x725b, 0x725d, 0x725f, 
-	0x7260, 0x7260, 0x7260, 0x7260, 0x7261, 0x7261, 0x7262, 0x7262, 
-	0x7263, 0x7264, 0x7265, 0x7265, 0x7266, 0x7267, 0x7268, 0x7269, 
-	0x726a, 0x726b, 0x726c, 0x726e, 0x726f, 0x7270, 0x7271, 0x7273, 
-	0x7274, 0x7275, 0x7277, 0x7278, 0x727a, 0x727b, 0x727d, 0x727f, 
-	0x7280, 0x7280, 0x7280, 0x7280, 0x7281, 0x7281, 0x7282, 0x7282, 
-	0x7283, 0x7284, 0x7285, 0x7285, 0x7286, 0x7287, 0x7288, 0x7289, 
-	0x728a, 0x728b, 0x728c, 0x728e, 0x728f, 0x7290, 0x7291, 0x7293, 
-	0x7294, 0x7295, 0x7297, 0x7298, 0x729a, 0x729b, 0x729d, 0x729f, 
-	0x72a0, 0x72a0, 0x72a0, 0x72a0, 0x72a1, 0x72a1, 0x72a2, 0x72a2, 
-	0x72a3, 0x72a4, 0x72a5, 0x72a5, 0x72a6, 0x72a7, 0x72a8, 0x72a9, 
-	0x72aa, 0x72ab, 0x72ac, 0x72ae, 0x72af, 0x72b0, 0x72b1, 0x72b3, 
-	0x72b4, 0x72b5, 0x72b7, 0x72b8, 0x72ba, 0x72bb, 0x72bd, 0x72bf, 
-	0x72c0, 0x72c0, 0x72c0, 0x72c0, 0x72c1, 0x72c1, 0x72c2, 0x72c2, 
-	0x72c3, 0x72c4, 0x72c5, 0x72c5, 0x72c6, 0x72c7, 0x72c8, 0x72c9, 
-	0x72ca, 0x72cb, 0x72cc, 0x72ce, 0x72cf, 0x72d0, 0x72d1, 0x72d3, 
-	0x72d4, 0x72d5, 0x72d7, 0x72d8, 0x72da, 0x72db, 0x72dd, 0x72df, 
-	0x72e0, 0x72e0, 0x72e0, 0x72e0, 0x72e1, 0x72e1, 0x72e2, 0x72e2, 
-	0x72e3, 0x72e4, 0x72e5, 0x72e5, 0x72e6, 0x72e7, 0x72e8, 0x72e9, 
-	0x72ea, 0x72eb, 0x72ec, 0x72ee, 0x72ef, 0x72f0, 0x72f1, 0x72f3, 
-	0x72f4, 0x72f5, 0x72f7, 0x72f8, 0x72fa, 0x72fb, 0x72fd, 0x72ff, 
-	0x7300, 0x7300, 0x7300, 0x7300, 0x7301, 0x7301, 0x7302, 0x7302, 
-	0x7303, 0x7304, 0x7305, 0x7305, 0x7306, 0x7307, 0x7308, 0x7309, 
-	0x730a, 0x730b, 0x730c, 0x730e, 0x730f, 0x7310, 0x7311, 0x7313, 
-	0x7314, 0x7315, 0x7317, 0x7318, 0x731a, 0x731b, 0x731d, 0x731f, 
-	0x7320, 0x7320, 0x7320, 0x7320, 0x7321, 0x7321, 0x7322, 0x7322, 
-	0x7323, 0x7324, 0x7325, 0x7325, 0x7326, 0x7327, 0x7328, 0x7329, 
-	0x732a, 0x732b, 0x732c, 0x732e, 0x732f, 0x7330, 0x7331, 0x7333, 
-	0x7334, 0x7335, 0x7337, 0x7338, 0x733a, 0x733b, 0x733d, 0x733f, 
-	0x7340, 0x7340, 0x7340, 0x7340, 0x7341, 0x7341, 0x7342, 0x7342, 
-	0x7343, 0x7344, 0x7345, 0x7345, 0x7346, 0x7347, 0x7348, 0x7349, 
-	0x734a, 0x734b, 0x734c, 0x734e, 0x734f, 0x7350, 0x7351, 0x7353, 
-	0x7354, 0x7355, 0x7357, 0x7358, 0x735a, 0x735b, 0x735d, 0x735f, 
-	0x7380, 0x7380, 0x7380, 0x7380, 0x7381, 0x7381, 0x7382, 0x7382, 
-	0x7383, 0x7384, 0x7385, 0x7385, 0x7386, 0x7387, 0x7388, 0x7389, 
-	0x738a, 0x738b, 0x738c, 0x738e, 0x738f, 0x7390, 0x7391, 0x7393, 
-	0x7394, 0x7395, 0x7397, 0x7398, 0x739a, 0x739b, 0x739d, 0x739f, 
-	0x73a0, 0x73a0, 0x73a0, 0x73a0, 0x73a1, 0x73a1, 0x73a2, 0x73a2, 
-	0x73a3, 0x73a4, 0x73a5, 0x73a5, 0x73a6, 0x73a7, 0x73a8, 0x73a9, 
-	0x73aa, 0x73ab, 0x73ac, 0x73ae, 0x73af, 0x73b0, 0x73b1, 0x73b3, 
-	0x73b4, 0x73b5, 0x73b7, 0x73b8, 0x73ba, 0x73bb, 0x73bd, 0x73bf, 
-	0x73c0, 0x73c0, 0x73c0, 0x73c0, 0x73c1, 0x73c1, 0x73c2, 0x73c2, 
-	0x73c3, 0x73c4, 0x73c5, 0x73c5, 0x73c6, 0x73c7, 0x73c8, 0x73c9, 
-	0x73ca, 0x73cb, 0x73cc, 0x73ce, 0x73cf, 0x73d0, 0x73d1, 0x73d3, 
-	0x73d4, 0x73d5, 0x73d7, 0x73d8, 0x73da, 0x73db, 0x73dd, 0x73df, 
-	0x73e0, 0x73e0, 0x73e0, 0x73e0, 0x73e1, 0x73e1, 0x73e2, 0x73e2, 
-	0x73e3, 0x73e4, 0x73e5, 0x73e5, 0x73e6, 0x73e7, 0x73e8, 0x73e9, 
-	0x73ea, 0x73eb, 0x73ec, 0x73ee, 0x73ef, 0x73f0, 0x73f1, 0x73f3, 
-	0x73f4, 0x73f5, 0x73f7, 0x73f8, 0x73fa, 0x73fb, 0x73fd, 0x73ff, 
-	0x7400, 0x7400, 0x7400, 0x7400, 0x7401, 0x7401, 0x7402, 0x7402, 
-	0x7403, 0x7404, 0x7405, 0x7405, 0x7406, 0x7407, 0x7408, 0x7409, 
-	0x740a, 0x740b, 0x740c, 0x740e, 0x740f, 0x7410, 0x7411, 0x7413, 
-	0x7414, 0x7415, 0x7417, 0x7418, 0x741a, 0x741b, 0x741d, 0x741f, 
-	0x7440, 0x7440, 0x7440, 0x7440, 0x7441, 0x7441, 0x7442, 0x7442, 
-	0x7443, 0x7444, 0x7445, 0x7445, 0x7446, 0x7447, 0x7448, 0x7449, 
-	0x744a, 0x744b, 0x744c, 0x744e, 0x744f, 0x7450, 0x7451, 0x7453, 
-	0x7454, 0x7455, 0x7457, 0x7458, 0x745a, 0x745b, 0x745d, 0x745f, 
-	0x7460, 0x7460, 0x7460, 0x7460, 0x7461, 0x7461, 0x7462, 0x7462, 
-	0x7463, 0x7464, 0x7465, 0x7465, 0x7466, 0x7467, 0x7468, 0x7469, 
-	0x746a, 0x746b, 0x746c, 0x746e, 0x746f, 0x7470, 0x7471, 0x7473, 
-	0x7474, 0x7475, 0x7477, 0x7478, 0x747a, 0x747b, 0x747d, 0x747f, 
-	0x7480, 0x7480, 0x7480, 0x7480, 0x7481, 0x7481, 0x7482, 0x7482, 
-	0x7483, 0x7484, 0x7485, 0x7485, 0x7486, 0x7487, 0x7488, 0x7489, 
-	0x748a, 0x748b, 0x748c, 0x748e, 0x748f, 0x7490, 0x7491, 0x7493, 
-	0x7494, 0x7495, 0x7497, 0x7498, 0x749a, 0x749b, 0x749d, 0x749f, 
-	0x74c0, 0x74c0, 0x74c0, 0x74c0, 0x74c1, 0x74c1, 0x74c2, 0x74c2, 
-	0x74c3, 0x74c4, 0x74c5, 0x74c5, 0x74c6, 0x74c7, 0x74c8, 0x74c9, 
-	0x74ca, 0x74cb, 0x74cc, 0x74ce, 0x74cf, 0x74d0, 0x74d1, 0x74d3, 
-	0x74d4, 0x74d5, 0x74d7, 0x74d8, 0x74da, 0x74db, 0x74dd, 0x74df, 
-	0x74e0, 0x74e0, 0x74e0, 0x74e0, 0x74e1, 0x74e1, 0x74e2, 0x74e2, 
-	0x74e3, 0x74e4, 0x74e5, 0x74e5, 0x74e6, 0x74e7, 0x74e8, 0x74e9, 
-	0x74ea, 0x74eb, 0x74ec, 0x74ee, 0x74ef, 0x74f0, 0x74f1, 0x74f3, 
-	0x74f4, 0x74f5, 0x74f7, 0x74f8, 0x74fa, 0x74fb, 0x74fd, 0x74ff, 
-	0x7500, 0x7500, 0x7500, 0x7500, 0x7501, 0x7501, 0x7502, 0x7502, 
-	0x7503, 0x7504, 0x7505, 0x7505, 0x7506, 0x7507, 0x7508, 0x7509, 
-	0x750a, 0x750b, 0x750c, 0x750e, 0x750f, 0x7510, 0x7511, 0x7513, 
-	0x7514, 0x7515, 0x7517, 0x7518, 0x751a, 0x751b, 0x751d, 0x751f, 
-	0x7540, 0x7540, 0x7540, 0x7540, 0x7541, 0x7541, 0x7542, 0x7542, 
-	0x7543, 0x7544, 0x7545, 0x7545, 0x7546, 0x7547, 0x7548, 0x7549, 
-	0x754a, 0x754b, 0x754c, 0x754e, 0x754f, 0x7550, 0x7551, 0x7553, 
-	0x7554, 0x7555, 0x7557, 0x7558, 0x755a, 0x755b, 0x755d, 0x755f, 
-	0x7560, 0x7560, 0x7560, 0x7560, 0x7561, 0x7561, 0x7562, 0x7562, 
-	0x7563, 0x7564, 0x7565, 0x7565, 0x7566, 0x7567, 0x7568, 0x7569, 
-	0x756a, 0x756b, 0x756c, 0x756e, 0x756f, 0x7570, 0x7571, 0x7573, 
-	0x7574, 0x7575, 0x7577, 0x7578, 0x757a, 0x757b, 0x757d, 0x757f, 
-	0x7580, 0x7580, 0x7580, 0x7580, 0x7581, 0x7581, 0x7582, 0x7582, 
-	0x7583, 0x7584, 0x7585, 0x7585, 0x7586, 0x7587, 0x7588, 0x7589, 
-	0x758a, 0x758b, 0x758c, 0x758e, 0x758f, 0x7590, 0x7591, 0x7593, 
-	0x7594, 0x7595, 0x7597, 0x7598, 0x759a, 0x759b, 0x759d, 0x759f, 
-	0x75c0, 0x75c0, 0x75c0, 0x75c0, 0x75c1, 0x75c1, 0x75c2, 0x75c2, 
-	0x75c3, 0x75c4, 0x75c5, 0x75c5, 0x75c6, 0x75c7, 0x75c8, 0x75c9, 
-	0x75ca, 0x75cb, 0x75cc, 0x75ce, 0x75cf, 0x75d0, 0x75d1, 0x75d3, 
-	0x75d4, 0x75d5, 0x75d7, 0x75d8, 0x75da, 0x75db, 0x75dd, 0x75df, 
-	0x75e0, 0x75e0, 0x75e0, 0x75e0, 0x75e1, 0x75e1, 0x75e2, 0x75e2, 
-	0x75e3, 0x75e4, 0x75e5, 0x75e5, 0x75e6, 0x75e7, 0x75e8, 0x75e9, 
-	0x75ea, 0x75eb, 0x75ec, 0x75ee, 0x75ef, 0x75f0, 0x75f1, 0x75f3, 
-	0x75f4, 0x75f5, 0x75f7, 0x75f8, 0x75fa, 0x75fb, 0x75fd, 0x75ff, 
-	0x7620, 0x7620, 0x7620, 0x7620, 0x7621, 0x7621, 0x7622, 0x7622, 
-	0x7623, 0x7624, 0x7625, 0x7625, 0x7626, 0x7627, 0x7628, 0x7629, 
-	0x762a, 0x762b, 0x762c, 0x762e, 0x762f, 0x7630, 0x7631, 0x7633, 
-	0x7634, 0x7635, 0x7637, 0x7638, 0x763a, 0x763b, 0x763d, 0x763f, 
-	0x7640, 0x7640, 0x7640, 0x7640, 0x7641, 0x7641, 0x7642, 0x7642, 
-	0x7643, 0x7644, 0x7645, 0x7645, 0x7646, 0x7647, 0x7648, 0x7649, 
-	0x764a, 0x764b, 0x764c, 0x764e, 0x764f, 0x7650, 0x7651, 0x7653, 
-	0x7654, 0x7655, 0x7657, 0x7658, 0x765a, 0x765b, 0x765d, 0x765f, 
-	0x7680, 0x7680, 0x7680, 0x7680, 0x7681, 0x7681, 0x7682, 0x7682, 
-	0x7683, 0x7684, 0x7685, 0x7685, 0x7686, 0x7687, 0x7688, 0x7689, 
-	0x768a, 0x768b, 0x768c, 0x768e, 0x768f, 0x7690, 0x7691, 0x7693, 
-	0x7694, 0x7695, 0x7697, 0x7698, 0x769a, 0x769b, 0x769d, 0x769f, 
-	0x76a0, 0x76a0, 0x76a0, 0x76a0, 0x76a1, 0x76a1, 0x76a2, 0x76a2, 
-	0x76a3, 0x76a4, 0x76a5, 0x76a5, 0x76a6, 0x76a7, 0x76a8, 0x76a9, 
-	0x76aa, 0x76ab, 0x76ac, 0x76ae, 0x76af, 0x76b0, 0x76b1, 0x76b3, 
-	0x76b4, 0x76b5, 0x76b7, 0x76b8, 0x76ba, 0x76bb, 0x76bd, 0x76bf, 
-	0x76e0, 0x76e0, 0x76e0, 0x76e0, 0x76e1, 0x76e1, 0x76e2, 0x76e2, 
-	0x76e3, 0x76e4, 0x76e5, 0x76e5, 0x76e6, 0x76e7, 0x76e8, 0x76e9, 
-	0x76ea, 0x76eb, 0x76ec, 0x76ee, 0x76ef, 0x76f0, 0x76f1, 0x76f3, 
-	0x76f4, 0x76f5, 0x76f7, 0x76f8, 0x76fa, 0x76fb, 0x76fd, 0x76ff, 
-	0x7700, 0x7700, 0x7700, 0x7700, 0x7701, 0x7701, 0x7702, 0x7702, 
-	0x7703, 0x7704, 0x7705, 0x7705, 0x7706, 0x7707, 0x7708, 0x7709, 
-	0x770a, 0x770b, 0x770c, 0x770e, 0x770f, 0x7710, 0x7711, 0x7713, 
-	0x7714, 0x7715, 0x7717, 0x7718, 0x771a, 0x771b, 0x771d, 0x771f, 
-	0x7740, 0x7740, 0x7740, 0x7740, 0x7741, 0x7741, 0x7742, 0x7742, 
-	0x7743, 0x7744, 0x7745, 0x7745, 0x7746, 0x7747, 0x7748, 0x7749, 
-	0x774a, 0x774b, 0x774c, 0x774e, 0x774f, 0x7750, 0x7751, 0x7753, 
-	0x7754, 0x7755, 0x7757, 0x7758, 0x775a, 0x775b, 0x775d, 0x775f, 
-	0x7760, 0x7760, 0x7760, 0x7760, 0x7761, 0x7761, 0x7762, 0x7762, 
-	0x7763, 0x7764, 0x7765, 0x7765, 0x7766, 0x7767, 0x7768, 0x7769, 
-	0x776a, 0x776b, 0x776c, 0x776e, 0x776f, 0x7770, 0x7771, 0x7773, 
-	0x7774, 0x7775, 0x7777, 0x7778, 0x777a, 0x777b, 0x777d, 0x777f, 
-	0x77a0, 0x77a0, 0x77a0, 0x77a0, 0x77a1, 0x77a1, 0x77a2, 0x77a2, 
-	0x77a3, 0x77a4, 0x77a5, 0x77a5, 0x77a6, 0x77a7, 0x77a8, 0x77a9, 
-	0x77aa, 0x77ab, 0x77ac, 0x77ae, 0x77af, 0x77b0, 0x77b1, 0x77b3, 
-	0x77b4, 0x77b5, 0x77b7, 0x77b8, 0x77ba, 0x77bb, 0x77bd, 0x77bf, 
-	0x77e0, 0x77e0, 0x77e0, 0x77e0, 0x77e1, 0x77e1, 0x77e2, 0x77e2, 
-	0x77e3, 0x77e4, 0x77e5, 0x77e5, 0x77e6, 0x77e7, 0x77e8, 0x77e9, 
-	0x77ea, 0x77eb, 0x77ec, 0x77ee, 0x77ef, 0x77f0, 0x77f1, 0x77f3, 
-	0x77f4, 0x77f5, 0x77f7, 0x77f8, 0x77fa, 0x77fb, 0x77fd, 0x77ff, 
-	0x7800, 0x7800, 0x7800, 0x7800, 0x7801, 0x7801, 0x7802, 0x7802, 
-	0x7803, 0x7804, 0x7805, 0x7805, 0x7806, 0x7807, 0x7808, 0x7809, 
-	0x780a, 0x780b, 0x780c, 0x780e, 0x780f, 0x7810, 0x7811, 0x7813, 
-	0x7814, 0x7815, 0x7817, 0x7818, 0x781a, 0x781b, 0x781d, 0x781f, 
-	0x7800, 0x7800, 0x7800, 0x7800, 0x7801, 0x7801, 0x7802, 0x7802, 
-	0x7803, 0x7804, 0x7805, 0x7805, 0x7806, 0x7807, 0x7808, 0x7809, 
-	0x780a, 0x780b, 0x780c, 0x780e, 0x780f, 0x7810, 0x7811, 0x7813, 
-	0x7814, 0x7815, 0x7817, 0x7818, 0x781a, 0x781b, 0x781d, 0x781f, 
-	0x7800, 0x7800, 0x7800, 0x7800, 0x7801, 0x7801, 0x7802, 0x7802, 
-	0x7803, 0x7804, 0x7805, 0x7805, 0x7806, 0x7807, 0x7808, 0x7809, 
-	0x780a, 0x780b, 0x780c, 0x780e, 0x780f, 0x7810, 0x7811, 0x7813, 
-	0x7814, 0x7815, 0x7817, 0x7818, 0x781a, 0x781b, 0x781d, 0x781f, 
-	0x7800, 0x7800, 0x7800, 0x7800, 0x7801, 0x7801, 0x7802, 0x7802, 
-	0x7803, 0x7804, 0x7805, 0x7805, 0x7806, 0x7807, 0x7808, 0x7809, 
-	0x780a, 0x780b, 0x780c, 0x780e, 0x780f, 0x7810, 0x7811, 0x7813, 
-	0x7814, 0x7815, 0x7817, 0x7818, 0x781a, 0x781b, 0x781d, 0x781f, 
-	0x7800, 0x7800, 0x7800, 0x7800, 0x7801, 0x7801, 0x7802, 0x7802, 
-	0x7803, 0x7804, 0x7805, 0x7805, 0x7806, 0x7807, 0x7808, 0x7809, 
-	0x780a, 0x780b, 0x780c, 0x780e, 0x780f, 0x7810, 0x7811, 0x7813, 
-	0x7814, 0x7815, 0x7817, 0x7818, 0x781a, 0x781b, 0x781d, 0x781f, 
-	0x7820, 0x7820, 0x7820, 0x7820, 0x7821, 0x7821, 0x7822, 0x7822, 
-	0x7823, 0x7824, 0x7825, 0x7825, 0x7826, 0x7827, 0x7828, 0x7829, 
-	0x782a, 0x782b, 0x782c, 0x782e, 0x782f, 0x7830, 0x7831, 0x7833, 
-	0x7834, 0x7835, 0x7837, 0x7838, 0x783a, 0x783b, 0x783d, 0x783f, 
-	0x7820, 0x7820, 0x7820, 0x7820, 0x7821, 0x7821, 0x7822, 0x7822, 
-	0x7823, 0x7824, 0x7825, 0x7825, 0x7826, 0x7827, 0x7828, 0x7829, 
-	0x782a, 0x782b, 0x782c, 0x782e, 0x782f, 0x7830, 0x7831, 0x7833, 
-	0x7834, 0x7835, 0x7837, 0x7838, 0x783a, 0x783b, 0x783d, 0x783f, 
-	0x7820, 0x7820, 0x7820, 0x7820, 0x7821, 0x7821, 0x7822, 0x7822, 
-	0x7823, 0x7824, 0x7825, 0x7825, 0x7826, 0x7827, 0x7828, 0x7829, 
-	0x782a, 0x782b, 0x782c, 0x782e, 0x782f, 0x7830, 0x7831, 0x7833, 
-	0x7834, 0x7835, 0x7837, 0x7838, 0x783a, 0x783b, 0x783d, 0x783f, 
-	0x7840, 0x7840, 0x7840, 0x7840, 0x7841, 0x7841, 0x7842, 0x7842, 
-	0x7843, 0x7844, 0x7845, 0x7845, 0x7846, 0x7847, 0x7848, 0x7849, 
-	0x784a, 0x784b, 0x784c, 0x784e, 0x784f, 0x7850, 0x7851, 0x7853, 
-	0x7854, 0x7855, 0x7857, 0x7858, 0x785a, 0x785b, 0x785d, 0x785f, 
-	0x7840, 0x7840, 0x7840, 0x7840, 0x7841, 0x7841, 0x7842, 0x7842, 
-	0x7843, 0x7844, 0x7845, 0x7845, 0x7846, 0x7847, 0x7848, 0x7849, 
-	0x784a, 0x784b, 0x784c, 0x784e, 0x784f, 0x7850, 0x7851, 0x7853, 
-	0x7854, 0x7855, 0x7857, 0x7858, 0x785a, 0x785b, 0x785d, 0x785f, 
-	0x7860, 0x7860, 0x7860, 0x7860, 0x7861, 0x7861, 0x7862, 0x7862, 
-	0x7863, 0x7864, 0x7865, 0x7865, 0x7866, 0x7867, 0x7868, 0x7869, 
-	0x786a, 0x786b, 0x786c, 0x786e, 0x786f, 0x7870, 0x7871, 0x7873, 
-	0x7874, 0x7875, 0x7877, 0x7878, 0x787a, 0x787b, 0x787d, 0x787f, 
-	0x7860, 0x7860, 0x7860, 0x7860, 0x7861, 0x7861, 0x7862, 0x7862, 
-	0x7863, 0x7864, 0x7865, 0x7865, 0x7866, 0x7867, 0x7868, 0x7869, 
-	0x786a, 0x786b, 0x786c, 0x786e, 0x786f, 0x7870, 0x7871, 0x7873, 
-	0x7874, 0x7875, 0x7877, 0x7878, 0x787a, 0x787b, 0x787d, 0x787f, 
-	0x7880, 0x7880, 0x7880, 0x7880, 0x7881, 0x7881, 0x7882, 0x7882, 
-	0x7883, 0x7884, 0x7885, 0x7885, 0x7886, 0x7887, 0x7888, 0x7889, 
-	0x788a, 0x788b, 0x788c, 0x788e, 0x788f, 0x7890, 0x7891, 0x7893, 
-	0x7894, 0x7895, 0x7897, 0x7898, 0x789a, 0x789b, 0x789d, 0x789f, 
-	0x78a0, 0x78a0, 0x78a0, 0x78a0, 0x78a1, 0x78a1, 0x78a2, 0x78a2, 
-	0x78a3, 0x78a4, 0x78a5, 0x78a5, 0x78a6, 0x78a7, 0x78a8, 0x78a9, 
-	0x78aa, 0x78ab, 0x78ac, 0x78ae, 0x78af, 0x78b0, 0x78b1, 0x78b3, 
-	0x78b4, 0x78b5, 0x78b7, 0x78b8, 0x78ba, 0x78bb, 0x78bd, 0x78bf, 
-	0x78a0, 0x78a0, 0x78a0, 0x78a0, 0x78a1, 0x78a1, 0x78a2, 0x78a2, 
-	0x78a3, 0x78a4, 0x78a5, 0x78a5, 0x78a6, 0x78a7, 0x78a8, 0x78a9, 
-	0x78aa, 0x78ab, 0x78ac, 0x78ae, 0x78af, 0x78b0, 0x78b1, 0x78b3, 
-	0x78b4, 0x78b5, 0x78b7, 0x78b8, 0x78ba, 0x78bb, 0x78bd, 0x78bf, 
-	0x78c0, 0x78c0, 0x78c0, 0x78c0, 0x78c1, 0x78c1, 0x78c2, 0x78c2, 
-	0x78c3, 0x78c4, 0x78c5, 0x78c5, 0x78c6, 0x78c7, 0x78c8, 0x78c9, 
-	0x78ca, 0x78cb, 0x78cc, 0x78ce, 0x78cf, 0x78d0, 0x78d1, 0x78d3, 
-	0x78d4, 0x78d5, 0x78d7, 0x78d8, 0x78da, 0x78db, 0x78dd, 0x78df, 
-	0x78e0, 0x78e0, 0x78e0, 0x78e0, 0x78e1, 0x78e1, 0x78e2, 0x78e2, 
-	0x78e3, 0x78e4, 0x78e5, 0x78e5, 0x78e6, 0x78e7, 0x78e8, 0x78e9, 
-	0x78ea, 0x78eb, 0x78ec, 0x78ee, 0x78ef, 0x78f0, 0x78f1, 0x78f3, 
-	0x78f4, 0x78f5, 0x78f7, 0x78f8, 0x78fa, 0x78fb, 0x78fd, 0x78ff, 
-	0x78e0, 0x78e0, 0x78e0, 0x78e0, 0x78e1, 0x78e1, 0x78e2, 0x78e2, 
-	0x78e3, 0x78e4, 0x78e5, 0x78e5, 0x78e6, 0x78e7, 0x78e8, 0x78e9, 
-	0x78ea, 0x78eb, 0x78ec, 0x78ee, 0x78ef, 0x78f0, 0x78f1, 0x78f3, 
-	0x78f4, 0x78f5, 0x78f7, 0x78f8, 0x78fa, 0x78fb, 0x78fd, 0x78ff, 
-	0x7900, 0x7900, 0x7900, 0x7900, 0x7901, 0x7901, 0x7902, 0x7902, 
-	0x7903, 0x7904, 0x7905, 0x7905, 0x7906, 0x7907, 0x7908, 0x7909, 
-	0x790a, 0x790b, 0x790c, 0x790e, 0x790f, 0x7910, 0x7911, 0x7913, 
-	0x7914, 0x7915, 0x7917, 0x7918, 0x791a, 0x791b, 0x791d, 0x791f, 
-	0x7920, 0x7920, 0x7920, 0x7920, 0x7921, 0x7921, 0x7922, 0x7922, 
-	0x7923, 0x7924, 0x7925, 0x7925, 0x7926, 0x7927, 0x7928, 0x7929, 
-	0x792a, 0x792b, 0x792c, 0x792e, 0x792f, 0x7930, 0x7931, 0x7933, 
-	0x7934, 0x7935, 0x7937, 0x7938, 0x793a, 0x793b, 0x793d, 0x793f, 
-	0x7940, 0x7940, 0x7940, 0x7940, 0x7941, 0x7941, 0x7942, 0x7942, 
-	0x7943, 0x7944, 0x7945, 0x7945, 0x7946, 0x7947, 0x7948, 0x7949, 
-	0x794a, 0x794b, 0x794c, 0x794e, 0x794f, 0x7950, 0x7951, 0x7953, 
-	0x7954, 0x7955, 0x7957, 0x7958, 0x795a, 0x795b, 0x795d, 0x795f, 
-	0x7940, 0x7940, 0x7940, 0x7940, 0x7941, 0x7941, 0x7942, 0x7942, 
-	0x7943, 0x7944, 0x7945, 0x7945, 0x7946, 0x7947, 0x7948, 0x7949, 
-	0x794a, 0x794b, 0x794c, 0x794e, 0x794f, 0x7950, 0x7951, 0x7953, 
-	0x7954, 0x7955, 0x7957, 0x7958, 0x795a, 0x795b, 0x795d, 0x795f, 
-	0x7960, 0x7960, 0x7960, 0x7960, 0x7961, 0x7961, 0x7962, 0x7962, 
-	0x7963, 0x7964, 0x7965, 0x7965, 0x7966, 0x7967, 0x7968, 0x7969, 
-	0x796a, 0x796b, 0x796c, 0x796e, 0x796f, 0x7970, 0x7971, 0x7973, 
-	0x7974, 0x7975, 0x7977, 0x7978, 0x797a, 0x797b, 0x797d, 0x797f, 
-	0x7980, 0x7980, 0x7980, 0x7980, 0x7981, 0x7981, 0x7982, 0x7982, 
-	0x7983, 0x7984, 0x7985, 0x7985, 0x7986, 0x7987, 0x7988, 0x7989, 
-	0x798a, 0x798b, 0x798c, 0x798e, 0x798f, 0x7990, 0x7991, 0x7993, 
-	0x7994, 0x7995, 0x7997, 0x7998, 0x799a, 0x799b, 0x799d, 0x799f, 
-	0x79a0, 0x79a0, 0x79a0, 0x79a0, 0x79a1, 0x79a1, 0x79a2, 0x79a2, 
-	0x79a3, 0x79a4, 0x79a5, 0x79a5, 0x79a6, 0x79a7, 0x79a8, 0x79a9, 
-	0x79aa, 0x79ab, 0x79ac, 0x79ae, 0x79af, 0x79b0, 0x79b1, 0x79b3, 
-	0x79b4, 0x79b5, 0x79b7, 0x79b8, 0x79ba, 0x79bb, 0x79bd, 0x79bf, 
-	0x79c0, 0x79c0, 0x79c0, 0x79c0, 0x79c1, 0x79c1, 0x79c2, 0x79c2, 
-	0x79c3, 0x79c4, 0x79c5, 0x79c5, 0x79c6, 0x79c7, 0x79c8, 0x79c9, 
-	0x79ca, 0x79cb, 0x79cc, 0x79ce, 0x79cf, 0x79d0, 0x79d1, 0x79d3, 
-	0x79d4, 0x79d5, 0x79d7, 0x79d8, 0x79da, 0x79db, 0x79dd, 0x79df, 
-	0x79e0, 0x79e0, 0x79e0, 0x79e0, 0x79e1, 0x79e1, 0x79e2, 0x79e2, 
-	0x79e3, 0x79e4, 0x79e5, 0x79e5, 0x79e6, 0x79e7, 0x79e8, 0x79e9, 
-	0x79ea, 0x79eb, 0x79ec, 0x79ee, 0x79ef, 0x79f0, 0x79f1, 0x79f3, 
-	0x79f4, 0x79f5, 0x79f7, 0x79f8, 0x79fa, 0x79fb, 0x79fd, 0x79ff, 
-	0x7a00, 0x7a00, 0x7a00, 0x7a00, 0x7a01, 0x7a01, 0x7a02, 0x7a02, 
-	0x7a03, 0x7a04, 0x7a05, 0x7a05, 0x7a06, 0x7a07, 0x7a08, 0x7a09, 
-	0x7a0a, 0x7a0b, 0x7a0c, 0x7a0e, 0x7a0f, 0x7a10, 0x7a11, 0x7a13, 
-	0x7a14, 0x7a15, 0x7a17, 0x7a18, 0x7a1a, 0x7a1b, 0x7a1d, 0x7a1f, 
-	0x7a20, 0x7a20, 0x7a20, 0x7a20, 0x7a21, 0x7a21, 0x7a22, 0x7a22, 
-	0x7a23, 0x7a24, 0x7a25, 0x7a25, 0x7a26, 0x7a27, 0x7a28, 0x7a29, 
-	0x7a2a, 0x7a2b, 0x7a2c, 0x7a2e, 0x7a2f, 0x7a30, 0x7a31, 0x7a33, 
-	0x7a34, 0x7a35, 0x7a37, 0x7a38, 0x7a3a, 0x7a3b, 0x7a3d, 0x7a3f, 
-	0x7a40, 0x7a40, 0x7a40, 0x7a40, 0x7a41, 0x7a41, 0x7a42, 0x7a42, 
-	0x7a43, 0x7a44, 0x7a45, 0x7a45, 0x7a46, 0x7a47, 0x7a48, 0x7a49, 
-	0x7a4a, 0x7a4b, 0x7a4c, 0x7a4e, 0x7a4f, 0x7a50, 0x7a51, 0x7a53, 
-	0x7a54, 0x7a55, 0x7a57, 0x7a58, 0x7a5a, 0x7a5b, 0x7a5d, 0x7a5f, 
-	0x7a60, 0x7a60, 0x7a60, 0x7a60, 0x7a61, 0x7a61, 0x7a62, 0x7a62, 
-	0x7a63, 0x7a64, 0x7a65, 0x7a65, 0x7a66, 0x7a67, 0x7a68, 0x7a69, 
-	0x7a6a, 0x7a6b, 0x7a6c, 0x7a6e, 0x7a6f, 0x7a70, 0x7a71, 0x7a73, 
-	0x7a74, 0x7a75, 0x7a77, 0x7a78, 0x7a7a, 0x7a7b, 0x7a7d, 0x7a7f, 
-	0x7a80, 0x7a80, 0x7a80, 0x7a80, 0x7a81, 0x7a81, 0x7a82, 0x7a82, 
-	0x7a83, 0x7a84, 0x7a85, 0x7a85, 0x7a86, 0x7a87, 0x7a88, 0x7a89, 
-	0x7a8a, 0x7a8b, 0x7a8c, 0x7a8e, 0x7a8f, 0x7a90, 0x7a91, 0x7a93, 
-	0x7a94, 0x7a95, 0x7a97, 0x7a98, 0x7a9a, 0x7a9b, 0x7a9d, 0x7a9f, 
-	0x7aa0, 0x7aa0, 0x7aa0, 0x7aa0, 0x7aa1, 0x7aa1, 0x7aa2, 0x7aa2, 
-	0x7aa3, 0x7aa4, 0x7aa5, 0x7aa5, 0x7aa6, 0x7aa7, 0x7aa8, 0x7aa9, 
-	0x7aaa, 0x7aab, 0x7aac, 0x7aae, 0x7aaf, 0x7ab0, 0x7ab1, 0x7ab3, 
-	0x7ab4, 0x7ab5, 0x7ab7, 0x7ab8, 0x7aba, 0x7abb, 0x7abd, 0x7abf, 
-	0x7ac0, 0x7ac0, 0x7ac0, 0x7ac0, 0x7ac1, 0x7ac1, 0x7ac2, 0x7ac2, 
-	0x7ac3, 0x7ac4, 0x7ac5, 0x7ac5, 0x7ac6, 0x7ac7, 0x7ac8, 0x7ac9, 
-	0x7aca, 0x7acb, 0x7acc, 0x7ace, 0x7acf, 0x7ad0, 0x7ad1, 0x7ad3, 
-	0x7ad4, 0x7ad5, 0x7ad7, 0x7ad8, 0x7ada, 0x7adb, 0x7add, 0x7adf, 
-	0x7ae0, 0x7ae0, 0x7ae0, 0x7ae0, 0x7ae1, 0x7ae1, 0x7ae2, 0x7ae2, 
-	0x7ae3, 0x7ae4, 0x7ae5, 0x7ae5, 0x7ae6, 0x7ae7, 0x7ae8, 0x7ae9, 
-	0x7aea, 0x7aeb, 0x7aec, 0x7aee, 0x7aef, 0x7af0, 0x7af1, 0x7af3, 
-	0x7af4, 0x7af5, 0x7af7, 0x7af8, 0x7afa, 0x7afb, 0x7afd, 0x7aff, 
-	0x7b00, 0x7b00, 0x7b00, 0x7b00, 0x7b01, 0x7b01, 0x7b02, 0x7b02, 
-	0x7b03, 0x7b04, 0x7b05, 0x7b05, 0x7b06, 0x7b07, 0x7b08, 0x7b09, 
-	0x7b0a, 0x7b0b, 0x7b0c, 0x7b0e, 0x7b0f, 0x7b10, 0x7b11, 0x7b13, 
-	0x7b14, 0x7b15, 0x7b17, 0x7b18, 0x7b1a, 0x7b1b, 0x7b1d, 0x7b1f, 
-	0x7b20, 0x7b20, 0x7b20, 0x7b20, 0x7b21, 0x7b21, 0x7b22, 0x7b22, 
-	0x7b23, 0x7b24, 0x7b25, 0x7b25, 0x7b26, 0x7b27, 0x7b28, 0x7b29, 
-	0x7b2a, 0x7b2b, 0x7b2c, 0x7b2e, 0x7b2f, 0x7b30, 0x7b31, 0x7b33, 
-	0x7b34, 0x7b35, 0x7b37, 0x7b38, 0x7b3a, 0x7b3b, 0x7b3d, 0x7b3f, 
-	0x7b40, 0x7b40, 0x7b40, 0x7b40, 0x7b41, 0x7b41, 0x7b42, 0x7b42, 
-	0x7b43, 0x7b44, 0x7b45, 0x7b45, 0x7b46, 0x7b47, 0x7b48, 0x7b49, 
-	0x7b4a, 0x7b4b, 0x7b4c, 0x7b4e, 0x7b4f, 0x7b50, 0x7b51, 0x7b53, 
-	0x7b54, 0x7b55, 0x7b57, 0x7b58, 0x7b5a, 0x7b5b, 0x7b5d, 0x7b5f, 
-	0x7b80, 0x7b80, 0x7b80, 0x7b80, 0x7b81, 0x7b81, 0x7b82, 0x7b82, 
-	0x7b83, 0x7b84, 0x7b85, 0x7b85, 0x7b86, 0x7b87, 0x7b88, 0x7b89, 
-	0x7b8a, 0x7b8b, 0x7b8c, 0x7b8e, 0x7b8f, 0x7b90, 0x7b91, 0x7b93, 
-	0x7b94, 0x7b95, 0x7b97, 0x7b98, 0x7b9a, 0x7b9b, 0x7b9d, 0x7b9f, 
-	0x7ba0, 0x7ba0, 0x7ba0, 0x7ba0, 0x7ba1, 0x7ba1, 0x7ba2, 0x7ba2, 
-	0x7ba3, 0x7ba4, 0x7ba5, 0x7ba5, 0x7ba6, 0x7ba7, 0x7ba8, 0x7ba9, 
-	0x7baa, 0x7bab, 0x7bac, 0x7bae, 0x7baf, 0x7bb0, 0x7bb1, 0x7bb3, 
-	0x7bb4, 0x7bb5, 0x7bb7, 0x7bb8, 0x7bba, 0x7bbb, 0x7bbd, 0x7bbf, 
-	0x7bc0, 0x7bc0, 0x7bc0, 0x7bc0, 0x7bc1, 0x7bc1, 0x7bc2, 0x7bc2, 
-	0x7bc3, 0x7bc4, 0x7bc5, 0x7bc5, 0x7bc6, 0x7bc7, 0x7bc8, 0x7bc9, 
-	0x7bca, 0x7bcb, 0x7bcc, 0x7bce, 0x7bcf, 0x7bd0, 0x7bd1, 0x7bd3, 
-	0x7bd4, 0x7bd5, 0x7bd7, 0x7bd8, 0x7bda, 0x7bdb, 0x7bdd, 0x7bdf, 
-	0x7be0, 0x7be0, 0x7be0, 0x7be0, 0x7be1, 0x7be1, 0x7be2, 0x7be2, 
-	0x7be3, 0x7be4, 0x7be5, 0x7be5, 0x7be6, 0x7be7, 0x7be8, 0x7be9, 
-	0x7bea, 0x7beb, 0x7bec, 0x7bee, 0x7bef, 0x7bf0, 0x7bf1, 0x7bf3, 
-	0x7bf4, 0x7bf5, 0x7bf7, 0x7bf8, 0x7bfa, 0x7bfb, 0x7bfd, 0x7bff, 
-	0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c01, 0x7c01, 0x7c02, 0x7c02, 
-	0x7c03, 0x7c04, 0x7c05, 0x7c05, 0x7c06, 0x7c07, 0x7c08, 0x7c09, 
-	0x7c0a, 0x7c0b, 0x7c0c, 0x7c0e, 0x7c0f, 0x7c10, 0x7c11, 0x7c13, 
-	0x7c14, 0x7c15, 0x7c17, 0x7c18, 0x7c1a, 0x7c1b, 0x7c1d, 0x7c1f, 
-	0x7c40, 0x7c40, 0x7c40, 0x7c40, 0x7c41, 0x7c41, 0x7c42, 0x7c42, 
-	0x7c43, 0x7c44, 0x7c45, 0x7c45, 0x7c46, 0x7c47, 0x7c48, 0x7c49, 
-	0x7c4a, 0x7c4b, 0x7c4c, 0x7c4e, 0x7c4f, 0x7c50, 0x7c51, 0x7c53, 
-	0x7c54, 0x7c55, 0x7c57, 0x7c58, 0x7c5a, 0x7c5b, 0x7c5d, 0x7c5f, 
-	0x7c60, 0x7c60, 0x7c60, 0x7c60, 0x7c61, 0x7c61, 0x7c62, 0x7c62, 
-	0x7c63, 0x7c64, 0x7c65, 0x7c65, 0x7c66, 0x7c67, 0x7c68, 0x7c69, 
-	0x7c6a, 0x7c6b, 0x7c6c, 0x7c6e, 0x7c6f, 0x7c70, 0x7c71, 0x7c73, 
-	0x7c74, 0x7c75, 0x7c77, 0x7c78, 0x7c7a, 0x7c7b, 0x7c7d, 0x7c7f, 
-	0x7c80, 0x7c80, 0x7c80, 0x7c80, 0x7c81, 0x7c81, 0x7c82, 0x7c82, 
-	0x7c83, 0x7c84, 0x7c85, 0x7c85, 0x7c86, 0x7c87, 0x7c88, 0x7c89, 
-	0x7c8a, 0x7c8b, 0x7c8c, 0x7c8e, 0x7c8f, 0x7c90, 0x7c91, 0x7c93, 
-	0x7c94, 0x7c95, 0x7c97, 0x7c98, 0x7c9a, 0x7c9b, 0x7c9d, 0x7c9f, 
-	0x7cc0, 0x7cc0, 0x7cc0, 0x7cc0, 0x7cc1, 0x7cc1, 0x7cc2, 0x7cc2, 
-	0x7cc3, 0x7cc4, 0x7cc5, 0x7cc5, 0x7cc6, 0x7cc7, 0x7cc8, 0x7cc9, 
-	0x7cca, 0x7ccb, 0x7ccc, 0x7cce, 0x7ccf, 0x7cd0, 0x7cd1, 0x7cd3, 
-	0x7cd4, 0x7cd5, 0x7cd7, 0x7cd8, 0x7cda, 0x7cdb, 0x7cdd, 0x7cdf, 
-	0x7ce0, 0x7ce0, 0x7ce0, 0x7ce0, 0x7ce1, 0x7ce1, 0x7ce2, 0x7ce2, 
-	0x7ce3, 0x7ce4, 0x7ce5, 0x7ce5, 0x7ce6, 0x7ce7, 0x7ce8, 0x7ce9, 
-	0x7cea, 0x7ceb, 0x7cec, 0x7cee, 0x7cef, 0x7cf0, 0x7cf1, 0x7cf3, 
-	0x7cf4, 0x7cf5, 0x7cf7, 0x7cf8, 0x7cfa, 0x7cfb, 0x7cfd, 0x7cff, 
-	0x7d00, 0x7d00, 0x7d00, 0x7d00, 0x7d01, 0x7d01, 0x7d02, 0x7d02, 
-	0x7d03, 0x7d04, 0x7d05, 0x7d05, 0x7d06, 0x7d07, 0x7d08, 0x7d09, 
-	0x7d0a, 0x7d0b, 0x7d0c, 0x7d0e, 0x7d0f, 0x7d10, 0x7d11, 0x7d13, 
-	0x7d14, 0x7d15, 0x7d17, 0x7d18, 0x7d1a, 0x7d1b, 0x7d1d, 0x7d1f, 
-	0x7d40, 0x7d40, 0x7d40, 0x7d40, 0x7d41, 0x7d41, 0x7d42, 0x7d42, 
-	0x7d43, 0x7d44, 0x7d45, 0x7d45, 0x7d46, 0x7d47, 0x7d48, 0x7d49, 
-	0x7d4a, 0x7d4b, 0x7d4c, 0x7d4e, 0x7d4f, 0x7d50, 0x7d51, 0x7d53, 
-	0x7d54, 0x7d55, 0x7d57, 0x7d58, 0x7d5a, 0x7d5b, 0x7d5d, 0x7d5f, 
-	0x7d60, 0x7d60, 0x7d60, 0x7d60, 0x7d61, 0x7d61, 0x7d62, 0x7d62, 
-	0x7d63, 0x7d64, 0x7d65, 0x7d65, 0x7d66, 0x7d67, 0x7d68, 0x7d69, 
-	0x7d6a, 0x7d6b, 0x7d6c, 0x7d6e, 0x7d6f, 0x7d70, 0x7d71, 0x7d73, 
-	0x7d74, 0x7d75, 0x7d77, 0x7d78, 0x7d7a, 0x7d7b, 0x7d7d, 0x7d7f, 
-	0x7d80, 0x7d80, 0x7d80, 0x7d80, 0x7d81, 0x7d81, 0x7d82, 0x7d82, 
-	0x7d83, 0x7d84, 0x7d85, 0x7d85, 0x7d86, 0x7d87, 0x7d88, 0x7d89, 
-	0x7d8a, 0x7d8b, 0x7d8c, 0x7d8e, 0x7d8f, 0x7d90, 0x7d91, 0x7d93, 
-	0x7d94, 0x7d95, 0x7d97, 0x7d98, 0x7d9a, 0x7d9b, 0x7d9d, 0x7d9f, 
-	0x7dc0, 0x7dc0, 0x7dc0, 0x7dc0, 0x7dc1, 0x7dc1, 0x7dc2, 0x7dc2, 
-	0x7dc3, 0x7dc4, 0x7dc5, 0x7dc5, 0x7dc6, 0x7dc7, 0x7dc8, 0x7dc9, 
-	0x7dca, 0x7dcb, 0x7dcc, 0x7dce, 0x7dcf, 0x7dd0, 0x7dd1, 0x7dd3, 
-	0x7dd4, 0x7dd5, 0x7dd7, 0x7dd8, 0x7dda, 0x7ddb, 0x7ddd, 0x7ddf, 
-	0x7de0, 0x7de0, 0x7de0, 0x7de0, 0x7de1, 0x7de1, 0x7de2, 0x7de2, 
-	0x7de3, 0x7de4, 0x7de5, 0x7de5, 0x7de6, 0x7de7, 0x7de8, 0x7de9, 
-	0x7dea, 0x7deb, 0x7dec, 0x7dee, 0x7def, 0x7df0, 0x7df1, 0x7df3, 
-	0x7df4, 0x7df5, 0x7df7, 0x7df8, 0x7dfa, 0x7dfb, 0x7dfd, 0x7dff, 
-	0x7e20, 0x7e20, 0x7e20, 0x7e20, 0x7e21, 0x7e21, 0x7e22, 0x7e22, 
-	0x7e23, 0x7e24, 0x7e25, 0x7e25, 0x7e26, 0x7e27, 0x7e28, 0x7e29, 
-	0x7e2a, 0x7e2b, 0x7e2c, 0x7e2e, 0x7e2f, 0x7e30, 0x7e31, 0x7e33, 
-	0x7e34, 0x7e35, 0x7e37, 0x7e38, 0x7e3a, 0x7e3b, 0x7e3d, 0x7e3f, 
-	0x7e40, 0x7e40, 0x7e40, 0x7e40, 0x7e41, 0x7e41, 0x7e42, 0x7e42, 
-	0x7e43, 0x7e44, 0x7e45, 0x7e45, 0x7e46, 0x7e47, 0x7e48, 0x7e49, 
-	0x7e4a, 0x7e4b, 0x7e4c, 0x7e4e, 0x7e4f, 0x7e50, 0x7e51, 0x7e53, 
-	0x7e54, 0x7e55, 0x7e57, 0x7e58, 0x7e5a, 0x7e5b, 0x7e5d, 0x7e5f, 
-	0x7e80, 0x7e80, 0x7e80, 0x7e80, 0x7e81, 0x7e81, 0x7e82, 0x7e82, 
-	0x7e83, 0x7e84, 0x7e85, 0x7e85, 0x7e86, 0x7e87, 0x7e88, 0x7e89, 
-	0x7e8a, 0x7e8b, 0x7e8c, 0x7e8e, 0x7e8f, 0x7e90, 0x7e91, 0x7e93, 
-	0x7e94, 0x7e95, 0x7e97, 0x7e98, 0x7e9a, 0x7e9b, 0x7e9d, 0x7e9f, 
-	0x7ea0, 0x7ea0, 0x7ea0, 0x7ea0, 0x7ea1, 0x7ea1, 0x7ea2, 0x7ea2, 
-	0x7ea3, 0x7ea4, 0x7ea5, 0x7ea5, 0x7ea6, 0x7ea7, 0x7ea8, 0x7ea9, 
-	0x7eaa, 0x7eab, 0x7eac, 0x7eae, 0x7eaf, 0x7eb0, 0x7eb1, 0x7eb3, 
-	0x7eb4, 0x7eb5, 0x7eb7, 0x7eb8, 0x7eba, 0x7ebb, 0x7ebd, 0x7ebf, 
-	0x7ee0, 0x7ee0, 0x7ee0, 0x7ee0, 0x7ee1, 0x7ee1, 0x7ee2, 0x7ee2, 
-	0x7ee3, 0x7ee4, 0x7ee5, 0x7ee5, 0x7ee6, 0x7ee7, 0x7ee8, 0x7ee9, 
-	0x7eea, 0x7eeb, 0x7eec, 0x7eee, 0x7eef, 0x7ef0, 0x7ef1, 0x7ef3, 
-	0x7ef4, 0x7ef5, 0x7ef7, 0x7ef8, 0x7efa, 0x7efb, 0x7efd, 0x7eff, 
-	0x7f00, 0x7f00, 0x7f00, 0x7f00, 0x7f01, 0x7f01, 0x7f02, 0x7f02, 
-	0x7f03, 0x7f04, 0x7f05, 0x7f05, 0x7f06, 0x7f07, 0x7f08, 0x7f09, 
-	0x7f0a, 0x7f0b, 0x7f0c, 0x7f0e, 0x7f0f, 0x7f10, 0x7f11, 0x7f13, 
-	0x7f14, 0x7f15, 0x7f17, 0x7f18, 0x7f1a, 0x7f1b, 0x7f1d, 0x7f1f, 
-	0x7f40, 0x7f40, 0x7f40, 0x7f40, 0x7f41, 0x7f41, 0x7f42, 0x7f42, 
-	0x7f43, 0x7f44, 0x7f45, 0x7f45, 0x7f46, 0x7f47, 0x7f48, 0x7f49, 
-	0x7f4a, 0x7f4b, 0x7f4c, 0x7f4e, 0x7f4f, 0x7f50, 0x7f51, 0x7f53, 
-	0x7f54, 0x7f55, 0x7f57, 0x7f58, 0x7f5a, 0x7f5b, 0x7f5d, 0x7f5f, 
-	0x7f60, 0x7f60, 0x7f60, 0x7f60, 0x7f61, 0x7f61, 0x7f62, 0x7f62, 
-	0x7f63, 0x7f64, 0x7f65, 0x7f65, 0x7f66, 0x7f67, 0x7f68, 0x7f69, 
-	0x7f6a, 0x7f6b, 0x7f6c, 0x7f6e, 0x7f6f, 0x7f70, 0x7f71, 0x7f73, 
-	0x7f74, 0x7f75, 0x7f77, 0x7f78, 0x7f7a, 0x7f7b, 0x7f7d, 0x7f7f, 
-	0x7fa0, 0x7fa0, 0x7fa0, 0x7fa0, 0x7fa1, 0x7fa1, 0x7fa2, 0x7fa2, 
-	0x7fa3, 0x7fa4, 0x7fa5, 0x7fa5, 0x7fa6, 0x7fa7, 0x7fa8, 0x7fa9, 
-	0x7faa, 0x7fab, 0x7fac, 0x7fae, 0x7faf, 0x7fb0, 0x7fb1, 0x7fb3, 
-	0x7fb4, 0x7fb5, 0x7fb7, 0x7fb8, 0x7fba, 0x7fbb, 0x7fbd, 0x7fbf, 
-	0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe1, 0x7fe1, 0x7fe2, 0x7fe2, 
-	0x7fe3, 0x7fe4, 0x7fe5, 0x7fe5, 0x7fe6, 0x7fe7, 0x7fe8, 0x7fe9, 
-	0x7fea, 0x7feb, 0x7fec, 0x7fee, 0x7fef, 0x7ff0, 0x7ff1, 0x7ff3, 
-	0x7ff4, 0x7ff5, 0x7ff7, 0x7ff8, 0x7ffa, 0x7ffb, 0x7ffd, 0x7fff, 
-	0x8000, 0x8000, 0x8000, 0x8000, 0x8001, 0x8001, 0x8002, 0x8002, 
-	0x8003, 0x8004, 0x8005, 0x8005, 0x8006, 0x8007, 0x8008, 0x8009, 
-	0x800a, 0x800b, 0x800c, 0x800e, 0x800f, 0x8010, 0x8011, 0x8013, 
-	0x8014, 0x8015, 0x8017, 0x8018, 0x801a, 0x801b, 0x801d, 0x801f, 
-	0x8000, 0x8000, 0x8000, 0x8000, 0x8001, 0x8001, 0x8002, 0x8002, 
-	0x8003, 0x8004, 0x8005, 0x8005, 0x8006, 0x8007, 0x8008, 0x8009, 
-	0x800a, 0x800b, 0x800c, 0x800e, 0x800f, 0x8010, 0x8011, 0x8013, 
-	0x8014, 0x8015, 0x8017, 0x8018, 0x801a, 0x801b, 0x801d, 0x801f, 
-	0x8000, 0x8000, 0x8000, 0x8000, 0x8001, 0x8001, 0x8002, 0x8002, 
-	0x8003, 0x8004, 0x8005, 0x8005, 0x8006, 0x8007, 0x8008, 0x8009, 
-	0x800a, 0x800b, 0x800c, 0x800e, 0x800f, 0x8010, 0x8011, 0x8013, 
-	0x8014, 0x8015, 0x8017, 0x8018, 0x801a, 0x801b, 0x801d, 0x801f, 
-	0x8000, 0x8000, 0x8000, 0x8000, 0x8001, 0x8001, 0x8002, 0x8002, 
-	0x8003, 0x8004, 0x8005, 0x8005, 0x8006, 0x8007, 0x8008, 0x8009, 
-	0x800a, 0x800b, 0x800c, 0x800e, 0x800f, 0x8010, 0x8011, 0x8013, 
-	0x8014, 0x8015, 0x8017, 0x8018, 0x801a, 0x801b, 0x801d, 0x801f, 
-	0x8000, 0x8000, 0x8000, 0x8000, 0x8001, 0x8001, 0x8002, 0x8002, 
-	0x8003, 0x8004, 0x8005, 0x8005, 0x8006, 0x8007, 0x8008, 0x8009, 
-	0x800a, 0x800b, 0x800c, 0x800e, 0x800f, 0x8010, 0x8011, 0x8013, 
-	0x8014, 0x8015, 0x8017, 0x8018, 0x801a, 0x801b, 0x801d, 0x801f, 
-	0x8020, 0x8020, 0x8020, 0x8020, 0x8021, 0x8021, 0x8022, 0x8022, 
-	0x8023, 0x8024, 0x8025, 0x8025, 0x8026, 0x8027, 0x8028, 0x8029, 
-	0x802a, 0x802b, 0x802c, 0x802e, 0x802f, 0x8030, 0x8031, 0x8033, 
-	0x8034, 0x8035, 0x8037, 0x8038, 0x803a, 0x803b, 0x803d, 0x803f, 
-	0x8020, 0x8020, 0x8020, 0x8020, 0x8021, 0x8021, 0x8022, 0x8022, 
-	0x8023, 0x8024, 0x8025, 0x8025, 0x8026, 0x8027, 0x8028, 0x8029, 
-	0x802a, 0x802b, 0x802c, 0x802e, 0x802f, 0x8030, 0x8031, 0x8033, 
-	0x8034, 0x8035, 0x8037, 0x8038, 0x803a, 0x803b, 0x803d, 0x803f, 
-	0x8020, 0x8020, 0x8020, 0x8020, 0x8021, 0x8021, 0x8022, 0x8022, 
-	0x8023, 0x8024, 0x8025, 0x8025, 0x8026, 0x8027, 0x8028, 0x8029, 
-	0x802a, 0x802b, 0x802c, 0x802e, 0x802f, 0x8030, 0x8031, 0x8033, 
-	0x8034, 0x8035, 0x8037, 0x8038, 0x803a, 0x803b, 0x803d, 0x803f, 
-	0x8040, 0x8040, 0x8040, 0x8040, 0x8041, 0x8041, 0x8042, 0x8042, 
-	0x8043, 0x8044, 0x8045, 0x8045, 0x8046, 0x8047, 0x8048, 0x8049, 
-	0x804a, 0x804b, 0x804c, 0x804e, 0x804f, 0x8050, 0x8051, 0x8053, 
-	0x8054, 0x8055, 0x8057, 0x8058, 0x805a, 0x805b, 0x805d, 0x805f, 
-	0x8040, 0x8040, 0x8040, 0x8040, 0x8041, 0x8041, 0x8042, 0x8042, 
-	0x8043, 0x8044, 0x8045, 0x8045, 0x8046, 0x8047, 0x8048, 0x8049, 
-	0x804a, 0x804b, 0x804c, 0x804e, 0x804f, 0x8050, 0x8051, 0x8053, 
-	0x8054, 0x8055, 0x8057, 0x8058, 0x805a, 0x805b, 0x805d, 0x805f, 
-	0x8060, 0x8060, 0x8060, 0x8060, 0x8061, 0x8061, 0x8062, 0x8062, 
-	0x8063, 0x8064, 0x8065, 0x8065, 0x8066, 0x8067, 0x8068, 0x8069, 
-	0x806a, 0x806b, 0x806c, 0x806e, 0x806f, 0x8070, 0x8071, 0x8073, 
-	0x8074, 0x8075, 0x8077, 0x8078, 0x807a, 0x807b, 0x807d, 0x807f, 
-	0x8060, 0x8060, 0x8060, 0x8060, 0x8061, 0x8061, 0x8062, 0x8062, 
-	0x8063, 0x8064, 0x8065, 0x8065, 0x8066, 0x8067, 0x8068, 0x8069, 
-	0x806a, 0x806b, 0x806c, 0x806e, 0x806f, 0x8070, 0x8071, 0x8073, 
-	0x8074, 0x8075, 0x8077, 0x8078, 0x807a, 0x807b, 0x807d, 0x807f, 
-	0x8080, 0x8080, 0x8080, 0x8080, 0x8081, 0x8081, 0x8082, 0x8082, 
-	0x8083, 0x8084, 0x8085, 0x8085, 0x8086, 0x8087, 0x8088, 0x8089, 
-	0x808a, 0x808b, 0x808c, 0x808e, 0x808f, 0x8090, 0x8091, 0x8093, 
-	0x8094, 0x8095, 0x8097, 0x8098, 0x809a, 0x809b, 0x809d, 0x809f, 
-	0x80a0, 0x80a0, 0x80a0, 0x80a0, 0x80a1, 0x80a1, 0x80a2, 0x80a2, 
-	0x80a3, 0x80a4, 0x80a5, 0x80a5, 0x80a6, 0x80a7, 0x80a8, 0x80a9, 
-	0x80aa, 0x80ab, 0x80ac, 0x80ae, 0x80af, 0x80b0, 0x80b1, 0x80b3, 
-	0x80b4, 0x80b5, 0x80b7, 0x80b8, 0x80ba, 0x80bb, 0x80bd, 0x80bf, 
-	0x80a0, 0x80a0, 0x80a0, 0x80a0, 0x80a1, 0x80a1, 0x80a2, 0x80a2, 
-	0x80a3, 0x80a4, 0x80a5, 0x80a5, 0x80a6, 0x80a7, 0x80a8, 0x80a9, 
-	0x80aa, 0x80ab, 0x80ac, 0x80ae, 0x80af, 0x80b0, 0x80b1, 0x80b3, 
-	0x80b4, 0x80b5, 0x80b7, 0x80b8, 0x80ba, 0x80bb, 0x80bd, 0x80bf, 
-	0x80c0, 0x80c0, 0x80c0, 0x80c0, 0x80c1, 0x80c1, 0x80c2, 0x80c2, 
-	0x80c3, 0x80c4, 0x80c5, 0x80c5, 0x80c6, 0x80c7, 0x80c8, 0x80c9, 
-	0x80ca, 0x80cb, 0x80cc, 0x80ce, 0x80cf, 0x80d0, 0x80d1, 0x80d3, 
-	0x80d4, 0x80d5, 0x80d7, 0x80d8, 0x80da, 0x80db, 0x80dd, 0x80df, 
-	0x80e0, 0x80e0, 0x80e0, 0x80e0, 0x80e1, 0x80e1, 0x80e2, 0x80e2, 
-	0x80e3, 0x80e4, 0x80e5, 0x80e5, 0x80e6, 0x80e7, 0x80e8, 0x80e9, 
-	0x80ea, 0x80eb, 0x80ec, 0x80ee, 0x80ef, 0x80f0, 0x80f1, 0x80f3, 
-	0x80f4, 0x80f5, 0x80f7, 0x80f8, 0x80fa, 0x80fb, 0x80fd, 0x80ff, 
-	0x80e0, 0x80e0, 0x80e0, 0x80e0, 0x80e1, 0x80e1, 0x80e2, 0x80e2, 
-	0x80e3, 0x80e4, 0x80e5, 0x80e5, 0x80e6, 0x80e7, 0x80e8, 0x80e9, 
-	0x80ea, 0x80eb, 0x80ec, 0x80ee, 0x80ef, 0x80f0, 0x80f1, 0x80f3, 
-	0x80f4, 0x80f5, 0x80f7, 0x80f8, 0x80fa, 0x80fb, 0x80fd, 0x80ff, 
-	0x8100, 0x8100, 0x8100, 0x8100, 0x8101, 0x8101, 0x8102, 0x8102, 
-	0x8103, 0x8104, 0x8105, 0x8105, 0x8106, 0x8107, 0x8108, 0x8109, 
-	0x810a, 0x810b, 0x810c, 0x810e, 0x810f, 0x8110, 0x8111, 0x8113, 
-	0x8114, 0x8115, 0x8117, 0x8118, 0x811a, 0x811b, 0x811d, 0x811f, 
-	0x8120, 0x8120, 0x8120, 0x8120, 0x8121, 0x8121, 0x8122, 0x8122, 
-	0x8123, 0x8124, 0x8125, 0x8125, 0x8126, 0x8127, 0x8128, 0x8129, 
-	0x812a, 0x812b, 0x812c, 0x812e, 0x812f, 0x8130, 0x8131, 0x8133, 
-	0x8134, 0x8135, 0x8137, 0x8138, 0x813a, 0x813b, 0x813d, 0x813f, 
-	0x8140, 0x8140, 0x8140, 0x8140, 0x8141, 0x8141, 0x8142, 0x8142, 
-	0x8143, 0x8144, 0x8145, 0x8145, 0x8146, 0x8147, 0x8148, 0x8149, 
-	0x814a, 0x814b, 0x814c, 0x814e, 0x814f, 0x8150, 0x8151, 0x8153, 
-	0x8154, 0x8155, 0x8157, 0x8158, 0x815a, 0x815b, 0x815d, 0x815f, 
-	0x8140, 0x8140, 0x8140, 0x8140, 0x8141, 0x8141, 0x8142, 0x8142, 
-	0x8143, 0x8144, 0x8145, 0x8145, 0x8146, 0x8147, 0x8148, 0x8149, 
-	0x814a, 0x814b, 0x814c, 0x814e, 0x814f, 0x8150, 0x8151, 0x8153, 
-	0x8154, 0x8155, 0x8157, 0x8158, 0x815a, 0x815b, 0x815d, 0x815f, 
-	0x8160, 0x8160, 0x8160, 0x8160, 0x8161, 0x8161, 0x8162, 0x8162, 
-	0x8163, 0x8164, 0x8165, 0x8165, 0x8166, 0x8167, 0x8168, 0x8169, 
-	0x816a, 0x816b, 0x816c, 0x816e, 0x816f, 0x8170, 0x8171, 0x8173, 
-	0x8174, 0x8175, 0x8177, 0x8178, 0x817a, 0x817b, 0x817d, 0x817f, 
-	0x8180, 0x8180, 0x8180, 0x8180, 0x8181, 0x8181, 0x8182, 0x8182, 
-	0x8183, 0x8184, 0x8185, 0x8185, 0x8186, 0x8187, 0x8188, 0x8189, 
-	0x818a, 0x818b, 0x818c, 0x818e, 0x818f, 0x8190, 0x8191, 0x8193, 
-	0x8194, 0x8195, 0x8197, 0x8198, 0x819a, 0x819b, 0x819d, 0x819f, 
-	0x81a0, 0x81a0, 0x81a0, 0x81a0, 0x81a1, 0x81a1, 0x81a2, 0x81a2, 
-	0x81a3, 0x81a4, 0x81a5, 0x81a5, 0x81a6, 0x81a7, 0x81a8, 0x81a9, 
-	0x81aa, 0x81ab, 0x81ac, 0x81ae, 0x81af, 0x81b0, 0x81b1, 0x81b3, 
-	0x81b4, 0x81b5, 0x81b7, 0x81b8, 0x81ba, 0x81bb, 0x81bd, 0x81bf, 
-	0x81c0, 0x81c0, 0x81c0, 0x81c0, 0x81c1, 0x81c1, 0x81c2, 0x81c2, 
-	0x81c3, 0x81c4, 0x81c5, 0x81c5, 0x81c6, 0x81c7, 0x81c8, 0x81c9, 
-	0x81ca, 0x81cb, 0x81cc, 0x81ce, 0x81cf, 0x81d0, 0x81d1, 0x81d3, 
-	0x81d4, 0x81d5, 0x81d7, 0x81d8, 0x81da, 0x81db, 0x81dd, 0x81df, 
-	0x81e0, 0x81e0, 0x81e0, 0x81e0, 0x81e1, 0x81e1, 0x81e2, 0x81e2, 
-	0x81e3, 0x81e4, 0x81e5, 0x81e5, 0x81e6, 0x81e7, 0x81e8, 0x81e9, 
-	0x81ea, 0x81eb, 0x81ec, 0x81ee, 0x81ef, 0x81f0, 0x81f1, 0x81f3, 
-	0x81f4, 0x81f5, 0x81f7, 0x81f8, 0x81fa, 0x81fb, 0x81fd, 0x81ff, 
-	0x8200, 0x8200, 0x8200, 0x8200, 0x8201, 0x8201, 0x8202, 0x8202, 
-	0x8203, 0x8204, 0x8205, 0x8205, 0x8206, 0x8207, 0x8208, 0x8209, 
-	0x820a, 0x820b, 0x820c, 0x820e, 0x820f, 0x8210, 0x8211, 0x8213, 
-	0x8214, 0x8215, 0x8217, 0x8218, 0x821a, 0x821b, 0x821d, 0x821f, 
-	0x8220, 0x8220, 0x8220, 0x8220, 0x8221, 0x8221, 0x8222, 0x8222, 
-	0x8223, 0x8224, 0x8225, 0x8225, 0x8226, 0x8227, 0x8228, 0x8229, 
-	0x822a, 0x822b, 0x822c, 0x822e, 0x822f, 0x8230, 0x8231, 0x8233, 
-	0x8234, 0x8235, 0x8237, 0x8238, 0x823a, 0x823b, 0x823d, 0x823f, 
-	0x8240, 0x8240, 0x8240, 0x8240, 0x8241, 0x8241, 0x8242, 0x8242, 
-	0x8243, 0x8244, 0x8245, 0x8245, 0x8246, 0x8247, 0x8248, 0x8249, 
-	0x824a, 0x824b, 0x824c, 0x824e, 0x824f, 0x8250, 0x8251, 0x8253, 
-	0x8254, 0x8255, 0x8257, 0x8258, 0x825a, 0x825b, 0x825d, 0x825f, 
-	0x8260, 0x8260, 0x8260, 0x8260, 0x8261, 0x8261, 0x8262, 0x8262, 
-	0x8263, 0x8264, 0x8265, 0x8265, 0x8266, 0x8267, 0x8268, 0x8269, 
-	0x826a, 0x826b, 0x826c, 0x826e, 0x826f, 0x8270, 0x8271, 0x8273, 
-	0x8274, 0x8275, 0x8277, 0x8278, 0x827a, 0x827b, 0x827d, 0x827f, 
-	0x8280, 0x8280, 0x8280, 0x8280, 0x8281, 0x8281, 0x8282, 0x8282, 
-	0x8283, 0x8284, 0x8285, 0x8285, 0x8286, 0x8287, 0x8288, 0x8289, 
-	0x828a, 0x828b, 0x828c, 0x828e, 0x828f, 0x8290, 0x8291, 0x8293, 
-	0x8294, 0x8295, 0x8297, 0x8298, 0x829a, 0x829b, 0x829d, 0x829f, 
-	0x82a0, 0x82a0, 0x82a0, 0x82a0, 0x82a1, 0x82a1, 0x82a2, 0x82a2, 
-	0x82a3, 0x82a4, 0x82a5, 0x82a5, 0x82a6, 0x82a7, 0x82a8, 0x82a9, 
-	0x82aa, 0x82ab, 0x82ac, 0x82ae, 0x82af, 0x82b0, 0x82b1, 0x82b3, 
-	0x82b4, 0x82b5, 0x82b7, 0x82b8, 0x82ba, 0x82bb, 0x82bd, 0x82bf, 
-	0x82c0, 0x82c0, 0x82c0, 0x82c0, 0x82c1, 0x82c1, 0x82c2, 0x82c2, 
-	0x82c3, 0x82c4, 0x82c5, 0x82c5, 0x82c6, 0x82c7, 0x82c8, 0x82c9, 
-	0x82ca, 0x82cb, 0x82cc, 0x82ce, 0x82cf, 0x82d0, 0x82d1, 0x82d3, 
-	0x82d4, 0x82d5, 0x82d7, 0x82d8, 0x82da, 0x82db, 0x82dd, 0x82df, 
-	0x82e0, 0x82e0, 0x82e0, 0x82e0, 0x82e1, 0x82e1, 0x82e2, 0x82e2, 
-	0x82e3, 0x82e4, 0x82e5, 0x82e5, 0x82e6, 0x82e7, 0x82e8, 0x82e9, 
-	0x82ea, 0x82eb, 0x82ec, 0x82ee, 0x82ef, 0x82f0, 0x82f1, 0x82f3, 
-	0x82f4, 0x82f5, 0x82f7, 0x82f8, 0x82fa, 0x82fb, 0x82fd, 0x82ff, 
-	0x8300, 0x8300, 0x8300, 0x8300, 0x8301, 0x8301, 0x8302, 0x8302, 
-	0x8303, 0x8304, 0x8305, 0x8305, 0x8306, 0x8307, 0x8308, 0x8309, 
-	0x830a, 0x830b, 0x830c, 0x830e, 0x830f, 0x8310, 0x8311, 0x8313, 
-	0x8314, 0x8315, 0x8317, 0x8318, 0x831a, 0x831b, 0x831d, 0x831f, 
-	0x8320, 0x8320, 0x8320, 0x8320, 0x8321, 0x8321, 0x8322, 0x8322, 
-	0x8323, 0x8324, 0x8325, 0x8325, 0x8326, 0x8327, 0x8328, 0x8329, 
-	0x832a, 0x832b, 0x832c, 0x832e, 0x832f, 0x8330, 0x8331, 0x8333, 
-	0x8334, 0x8335, 0x8337, 0x8338, 0x833a, 0x833b, 0x833d, 0x833f, 
-	0x8340, 0x8340, 0x8340, 0x8340, 0x8341, 0x8341, 0x8342, 0x8342, 
-	0x8343, 0x8344, 0x8345, 0x8345, 0x8346, 0x8347, 0x8348, 0x8349, 
-	0x834a, 0x834b, 0x834c, 0x834e, 0x834f, 0x8350, 0x8351, 0x8353, 
-	0x8354, 0x8355, 0x8357, 0x8358, 0x835a, 0x835b, 0x835d, 0x835f, 
-	0x8380, 0x8380, 0x8380, 0x8380, 0x8381, 0x8381, 0x8382, 0x8382, 
-	0x8383, 0x8384, 0x8385, 0x8385, 0x8386, 0x8387, 0x8388, 0x8389, 
-	0x838a, 0x838b, 0x838c, 0x838e, 0x838f, 0x8390, 0x8391, 0x8393, 
-	0x8394, 0x8395, 0x8397, 0x8398, 0x839a, 0x839b, 0x839d, 0x839f, 
-	0x83a0, 0x83a0, 0x83a0, 0x83a0, 0x83a1, 0x83a1, 0x83a2, 0x83a2, 
-	0x83a3, 0x83a4, 0x83a5, 0x83a5, 0x83a6, 0x83a7, 0x83a8, 0x83a9, 
-	0x83aa, 0x83ab, 0x83ac, 0x83ae, 0x83af, 0x83b0, 0x83b1, 0x83b3, 
-	0x83b4, 0x83b5, 0x83b7, 0x83b8, 0x83ba, 0x83bb, 0x83bd, 0x83bf, 
-	0x83c0, 0x83c0, 0x83c0, 0x83c0, 0x83c1, 0x83c1, 0x83c2, 0x83c2, 
-	0x83c3, 0x83c4, 0x83c5, 0x83c5, 0x83c6, 0x83c7, 0x83c8, 0x83c9, 
-	0x83ca, 0x83cb, 0x83cc, 0x83ce, 0x83cf, 0x83d0, 0x83d1, 0x83d3, 
-	0x83d4, 0x83d5, 0x83d7, 0x83d8, 0x83da, 0x83db, 0x83dd, 0x83df, 
-	0x83e0, 0x83e0, 0x83e0, 0x83e0, 0x83e1, 0x83e1, 0x83e2, 0x83e2, 
-	0x83e3, 0x83e4, 0x83e5, 0x83e5, 0x83e6, 0x83e7, 0x83e8, 0x83e9, 
-	0x83ea, 0x83eb, 0x83ec, 0x83ee, 0x83ef, 0x83f0, 0x83f1, 0x83f3, 
-	0x83f4, 0x83f5, 0x83f7, 0x83f8, 0x83fa, 0x83fb, 0x83fd, 0x83ff, 
-	0x8400, 0x8400, 0x8400, 0x8400, 0x8401, 0x8401, 0x8402, 0x8402, 
-	0x8403, 0x8404, 0x8405, 0x8405, 0x8406, 0x8407, 0x8408, 0x8409, 
-	0x840a, 0x840b, 0x840c, 0x840e, 0x840f, 0x8410, 0x8411, 0x8413, 
-	0x8414, 0x8415, 0x8417, 0x8418, 0x841a, 0x841b, 0x841d, 0x841f, 
-	0x8440, 0x8440, 0x8440, 0x8440, 0x8441, 0x8441, 0x8442, 0x8442, 
-	0x8443, 0x8444, 0x8445, 0x8445, 0x8446, 0x8447, 0x8448, 0x8449, 
-	0x844a, 0x844b, 0x844c, 0x844e, 0x844f, 0x8450, 0x8451, 0x8453, 
-	0x8454, 0x8455, 0x8457, 0x8458, 0x845a, 0x845b, 0x845d, 0x845f, 
-	0x8460, 0x8460, 0x8460, 0x8460, 0x8461, 0x8461, 0x8462, 0x8462, 
-	0x8463, 0x8464, 0x8465, 0x8465, 0x8466, 0x8467, 0x8468, 0x8469, 
-	0x846a, 0x846b, 0x846c, 0x846e, 0x846f, 0x8470, 0x8471, 0x8473, 
-	0x8474, 0x8475, 0x8477, 0x8478, 0x847a, 0x847b, 0x847d, 0x847f, 
-	0x8480, 0x8480, 0x8480, 0x8480, 0x8481, 0x8481, 0x8482, 0x8482, 
-	0x8483, 0x8484, 0x8485, 0x8485, 0x8486, 0x8487, 0x8488, 0x8489, 
-	0x848a, 0x848b, 0x848c, 0x848e, 0x848f, 0x8490, 0x8491, 0x8493, 
-	0x8494, 0x8495, 0x8497, 0x8498, 0x849a, 0x849b, 0x849d, 0x849f, 
-	0x84c0, 0x84c0, 0x84c0, 0x84c0, 0x84c1, 0x84c1, 0x84c2, 0x84c2, 
-	0x84c3, 0x84c4, 0x84c5, 0x84c5, 0x84c6, 0x84c7, 0x84c8, 0x84c9, 
-	0x84ca, 0x84cb, 0x84cc, 0x84ce, 0x84cf, 0x84d0, 0x84d1, 0x84d3, 
-	0x84d4, 0x84d5, 0x84d7, 0x84d8, 0x84da, 0x84db, 0x84dd, 0x84df, 
-	0x84e0, 0x84e0, 0x84e0, 0x84e0, 0x84e1, 0x84e1, 0x84e2, 0x84e2, 
-	0x84e3, 0x84e4, 0x84e5, 0x84e5, 0x84e6, 0x84e7, 0x84e8, 0x84e9, 
-	0x84ea, 0x84eb, 0x84ec, 0x84ee, 0x84ef, 0x84f0, 0x84f1, 0x84f3, 
-	0x84f4, 0x84f5, 0x84f7, 0x84f8, 0x84fa, 0x84fb, 0x84fd, 0x84ff, 
-	0x8500, 0x8500, 0x8500, 0x8500, 0x8501, 0x8501, 0x8502, 0x8502, 
-	0x8503, 0x8504, 0x8505, 0x8505, 0x8506, 0x8507, 0x8508, 0x8509, 
-	0x850a, 0x850b, 0x850c, 0x850e, 0x850f, 0x8510, 0x8511, 0x8513, 
-	0x8514, 0x8515, 0x8517, 0x8518, 0x851a, 0x851b, 0x851d, 0x851f, 
-	0x8540, 0x8540, 0x8540, 0x8540, 0x8541, 0x8541, 0x8542, 0x8542, 
-	0x8543, 0x8544, 0x8545, 0x8545, 0x8546, 0x8547, 0x8548, 0x8549, 
-	0x854a, 0x854b, 0x854c, 0x854e, 0x854f, 0x8550, 0x8551, 0x8553, 
-	0x8554, 0x8555, 0x8557, 0x8558, 0x855a, 0x855b, 0x855d, 0x855f, 
-	0x8560, 0x8560, 0x8560, 0x8560, 0x8561, 0x8561, 0x8562, 0x8562, 
-	0x8563, 0x8564, 0x8565, 0x8565, 0x8566, 0x8567, 0x8568, 0x8569, 
-	0x856a, 0x856b, 0x856c, 0x856e, 0x856f, 0x8570, 0x8571, 0x8573, 
-	0x8574, 0x8575, 0x8577, 0x8578, 0x857a, 0x857b, 0x857d, 0x857f, 
-	0x8580, 0x8580, 0x8580, 0x8580, 0x8581, 0x8581, 0x8582, 0x8582, 
-	0x8583, 0x8584, 0x8585, 0x8585, 0x8586, 0x8587, 0x8588, 0x8589, 
-	0x858a, 0x858b, 0x858c, 0x858e, 0x858f, 0x8590, 0x8591, 0x8593, 
-	0x8594, 0x8595, 0x8597, 0x8598, 0x859a, 0x859b, 0x859d, 0x859f, 
-	0x85c0, 0x85c0, 0x85c0, 0x85c0, 0x85c1, 0x85c1, 0x85c2, 0x85c2, 
-	0x85c3, 0x85c4, 0x85c5, 0x85c5, 0x85c6, 0x85c7, 0x85c8, 0x85c9, 
-	0x85ca, 0x85cb, 0x85cc, 0x85ce, 0x85cf, 0x85d0, 0x85d1, 0x85d3, 
-	0x85d4, 0x85d5, 0x85d7, 0x85d8, 0x85da, 0x85db, 0x85dd, 0x85df, 
-	0x85e0, 0x85e0, 0x85e0, 0x85e0, 0x85e1, 0x85e1, 0x85e2, 0x85e2, 
-	0x85e3, 0x85e4, 0x85e5, 0x85e5, 0x85e6, 0x85e7, 0x85e8, 0x85e9, 
-	0x85ea, 0x85eb, 0x85ec, 0x85ee, 0x85ef, 0x85f0, 0x85f1, 0x85f3, 
-	0x85f4, 0x85f5, 0x85f7, 0x85f8, 0x85fa, 0x85fb, 0x85fd, 0x85ff, 
-	0x8620, 0x8620, 0x8620, 0x8620, 0x8621, 0x8621, 0x8622, 0x8622, 
-	0x8623, 0x8624, 0x8625, 0x8625, 0x8626, 0x8627, 0x8628, 0x8629, 
-	0x862a, 0x862b, 0x862c, 0x862e, 0x862f, 0x8630, 0x8631, 0x8633, 
-	0x8634, 0x8635, 0x8637, 0x8638, 0x863a, 0x863b, 0x863d, 0x863f, 
-	0x8640, 0x8640, 0x8640, 0x8640, 0x8641, 0x8641, 0x8642, 0x8642, 
-	0x8643, 0x8644, 0x8645, 0x8645, 0x8646, 0x8647, 0x8648, 0x8649, 
-	0x864a, 0x864b, 0x864c, 0x864e, 0x864f, 0x8650, 0x8651, 0x8653, 
-	0x8654, 0x8655, 0x8657, 0x8658, 0x865a, 0x865b, 0x865d, 0x865f, 
-	0x8680, 0x8680, 0x8680, 0x8680, 0x8681, 0x8681, 0x8682, 0x8682, 
-	0x8683, 0x8684, 0x8685, 0x8685, 0x8686, 0x8687, 0x8688, 0x8689, 
-	0x868a, 0x868b, 0x868c, 0x868e, 0x868f, 0x8690, 0x8691, 0x8693, 
-	0x8694, 0x8695, 0x8697, 0x8698, 0x869a, 0x869b, 0x869d, 0x869f, 
-	0x86a0, 0x86a0, 0x86a0, 0x86a0, 0x86a1, 0x86a1, 0x86a2, 0x86a2, 
-	0x86a3, 0x86a4, 0x86a5, 0x86a5, 0x86a6, 0x86a7, 0x86a8, 0x86a9, 
-	0x86aa, 0x86ab, 0x86ac, 0x86ae, 0x86af, 0x86b0, 0x86b1, 0x86b3, 
-	0x86b4, 0x86b5, 0x86b7, 0x86b8, 0x86ba, 0x86bb, 0x86bd, 0x86bf, 
-	0x86e0, 0x86e0, 0x86e0, 0x86e0, 0x86e1, 0x86e1, 0x86e2, 0x86e2, 
-	0x86e3, 0x86e4, 0x86e5, 0x86e5, 0x86e6, 0x86e7, 0x86e8, 0x86e9, 
-	0x86ea, 0x86eb, 0x86ec, 0x86ee, 0x86ef, 0x86f0, 0x86f1, 0x86f3, 
-	0x86f4, 0x86f5, 0x86f7, 0x86f8, 0x86fa, 0x86fb, 0x86fd, 0x86ff, 
-	0x8700, 0x8700, 0x8700, 0x8700, 0x8701, 0x8701, 0x8702, 0x8702, 
-	0x8703, 0x8704, 0x8705, 0x8705, 0x8706, 0x8707, 0x8708, 0x8709, 
-	0x870a, 0x870b, 0x870c, 0x870e, 0x870f, 0x8710, 0x8711, 0x8713, 
-	0x8714, 0x8715, 0x8717, 0x8718, 0x871a, 0x871b, 0x871d, 0x871f, 
-	0x8740, 0x8740, 0x8740, 0x8740, 0x8741, 0x8741, 0x8742, 0x8742, 
-	0x8743, 0x8744, 0x8745, 0x8745, 0x8746, 0x8747, 0x8748, 0x8749, 
-	0x874a, 0x874b, 0x874c, 0x874e, 0x874f, 0x8750, 0x8751, 0x8753, 
-	0x8754, 0x8755, 0x8757, 0x8758, 0x875a, 0x875b, 0x875d, 0x875f, 
-	0x8760, 0x8760, 0x8760, 0x8760, 0x8761, 0x8761, 0x8762, 0x8762, 
-	0x8763, 0x8764, 0x8765, 0x8765, 0x8766, 0x8767, 0x8768, 0x8769, 
-	0x876a, 0x876b, 0x876c, 0x876e, 0x876f, 0x8770, 0x8771, 0x8773, 
-	0x8774, 0x8775, 0x8777, 0x8778, 0x877a, 0x877b, 0x877d, 0x877f, 
-	0x87a0, 0x87a0, 0x87a0, 0x87a0, 0x87a1, 0x87a1, 0x87a2, 0x87a2, 
-	0x87a3, 0x87a4, 0x87a5, 0x87a5, 0x87a6, 0x87a7, 0x87a8, 0x87a9, 
-	0x87aa, 0x87ab, 0x87ac, 0x87ae, 0x87af, 0x87b0, 0x87b1, 0x87b3, 
-	0x87b4, 0x87b5, 0x87b7, 0x87b8, 0x87ba, 0x87bb, 0x87bd, 0x87bf, 
-	0x87e0, 0x87e0, 0x87e0, 0x87e0, 0x87e1, 0x87e1, 0x87e2, 0x87e2, 
-	0x87e3, 0x87e4, 0x87e5, 0x87e5, 0x87e6, 0x87e7, 0x87e8, 0x87e9, 
-	0x87ea, 0x87eb, 0x87ec, 0x87ee, 0x87ef, 0x87f0, 0x87f1, 0x87f3, 
-	0x87f4, 0x87f5, 0x87f7, 0x87f8, 0x87fa, 0x87fb, 0x87fd, 0x87ff, 
-	0x8800, 0x8800, 0x8800, 0x8800, 0x8801, 0x8801, 0x8802, 0x8802, 
-	0x8803, 0x8804, 0x8805, 0x8805, 0x8806, 0x8807, 0x8808, 0x8809, 
-	0x880a, 0x880b, 0x880c, 0x880e, 0x880f, 0x8810, 0x8811, 0x8813, 
-	0x8814, 0x8815, 0x8817, 0x8818, 0x881a, 0x881b, 0x881d, 0x881f, 
-	0x8800, 0x8800, 0x8800, 0x8800, 0x8801, 0x8801, 0x8802, 0x8802, 
-	0x8803, 0x8804, 0x8805, 0x8805, 0x8806, 0x8807, 0x8808, 0x8809, 
-	0x880a, 0x880b, 0x880c, 0x880e, 0x880f, 0x8810, 0x8811, 0x8813, 
-	0x8814, 0x8815, 0x8817, 0x8818, 0x881a, 0x881b, 0x881d, 0x881f, 
-	0x8800, 0x8800, 0x8800, 0x8800, 0x8801, 0x8801, 0x8802, 0x8802, 
-	0x8803, 0x8804, 0x8805, 0x8805, 0x8806, 0x8807, 0x8808, 0x8809, 
-	0x880a, 0x880b, 0x880c, 0x880e, 0x880f, 0x8810, 0x8811, 0x8813, 
-	0x8814, 0x8815, 0x8817, 0x8818, 0x881a, 0x881b, 0x881d, 0x881f, 
-	0x8800, 0x8800, 0x8800, 0x8800, 0x8801, 0x8801, 0x8802, 0x8802, 
-	0x8803, 0x8804, 0x8805, 0x8805, 0x8806, 0x8807, 0x8808, 0x8809, 
-	0x880a, 0x880b, 0x880c, 0x880e, 0x880f, 0x8810, 0x8811, 0x8813, 
-	0x8814, 0x8815, 0x8817, 0x8818, 0x881a, 0x881b, 0x881d, 0x881f, 
-	0x8800, 0x8800, 0x8800, 0x8800, 0x8801, 0x8801, 0x8802, 0x8802, 
-	0x8803, 0x8804, 0x8805, 0x8805, 0x8806, 0x8807, 0x8808, 0x8809, 
-	0x880a, 0x880b, 0x880c, 0x880e, 0x880f, 0x8810, 0x8811, 0x8813, 
-	0x8814, 0x8815, 0x8817, 0x8818, 0x881a, 0x881b, 0x881d, 0x881f, 
-	0x8820, 0x8820, 0x8820, 0x8820, 0x8821, 0x8821, 0x8822, 0x8822, 
-	0x8823, 0x8824, 0x8825, 0x8825, 0x8826, 0x8827, 0x8828, 0x8829, 
-	0x882a, 0x882b, 0x882c, 0x882e, 0x882f, 0x8830, 0x8831, 0x8833, 
-	0x8834, 0x8835, 0x8837, 0x8838, 0x883a, 0x883b, 0x883d, 0x883f, 
-	0x8820, 0x8820, 0x8820, 0x8820, 0x8821, 0x8821, 0x8822, 0x8822, 
-	0x8823, 0x8824, 0x8825, 0x8825, 0x8826, 0x8827, 0x8828, 0x8829, 
-	0x882a, 0x882b, 0x882c, 0x882e, 0x882f, 0x8830, 0x8831, 0x8833, 
-	0x8834, 0x8835, 0x8837, 0x8838, 0x883a, 0x883b, 0x883d, 0x883f, 
-	0x8820, 0x8820, 0x8820, 0x8820, 0x8821, 0x8821, 0x8822, 0x8822, 
-	0x8823, 0x8824, 0x8825, 0x8825, 0x8826, 0x8827, 0x8828, 0x8829, 
-	0x882a, 0x882b, 0x882c, 0x882e, 0x882f, 0x8830, 0x8831, 0x8833, 
-	0x8834, 0x8835, 0x8837, 0x8838, 0x883a, 0x883b, 0x883d, 0x883f, 
-	0x8840, 0x8840, 0x8840, 0x8840, 0x8841, 0x8841, 0x8842, 0x8842, 
-	0x8843, 0x8844, 0x8845, 0x8845, 0x8846, 0x8847, 0x8848, 0x8849, 
-	0x884a, 0x884b, 0x884c, 0x884e, 0x884f, 0x8850, 0x8851, 0x8853, 
-	0x8854, 0x8855, 0x8857, 0x8858, 0x885a, 0x885b, 0x885d, 0x885f, 
-	0x8840, 0x8840, 0x8840, 0x8840, 0x8841, 0x8841, 0x8842, 0x8842, 
-	0x8843, 0x8844, 0x8845, 0x8845, 0x8846, 0x8847, 0x8848, 0x8849, 
-	0x884a, 0x884b, 0x884c, 0x884e, 0x884f, 0x8850, 0x8851, 0x8853, 
-	0x8854, 0x8855, 0x8857, 0x8858, 0x885a, 0x885b, 0x885d, 0x885f, 
-	0x8860, 0x8860, 0x8860, 0x8860, 0x8861, 0x8861, 0x8862, 0x8862, 
-	0x8863, 0x8864, 0x8865, 0x8865, 0x8866, 0x8867, 0x8868, 0x8869, 
-	0x886a, 0x886b, 0x886c, 0x886e, 0x886f, 0x8870, 0x8871, 0x8873, 
-	0x8874, 0x8875, 0x8877, 0x8878, 0x887a, 0x887b, 0x887d, 0x887f, 
-	0x8860, 0x8860, 0x8860, 0x8860, 0x8861, 0x8861, 0x8862, 0x8862, 
-	0x8863, 0x8864, 0x8865, 0x8865, 0x8866, 0x8867, 0x8868, 0x8869, 
-	0x886a, 0x886b, 0x886c, 0x886e, 0x886f, 0x8870, 0x8871, 0x8873, 
-	0x8874, 0x8875, 0x8877, 0x8878, 0x887a, 0x887b, 0x887d, 0x887f, 
-	0x8880, 0x8880, 0x8880, 0x8880, 0x8881, 0x8881, 0x8882, 0x8882, 
-	0x8883, 0x8884, 0x8885, 0x8885, 0x8886, 0x8887, 0x8888, 0x8889, 
-	0x888a, 0x888b, 0x888c, 0x888e, 0x888f, 0x8890, 0x8891, 0x8893, 
-	0x8894, 0x8895, 0x8897, 0x8898, 0x889a, 0x889b, 0x889d, 0x889f, 
-	0x88a0, 0x88a0, 0x88a0, 0x88a0, 0x88a1, 0x88a1, 0x88a2, 0x88a2, 
-	0x88a3, 0x88a4, 0x88a5, 0x88a5, 0x88a6, 0x88a7, 0x88a8, 0x88a9, 
-	0x88aa, 0x88ab, 0x88ac, 0x88ae, 0x88af, 0x88b0, 0x88b1, 0x88b3, 
-	0x88b4, 0x88b5, 0x88b7, 0x88b8, 0x88ba, 0x88bb, 0x88bd, 0x88bf, 
-	0x88a0, 0x88a0, 0x88a0, 0x88a0, 0x88a1, 0x88a1, 0x88a2, 0x88a2, 
-	0x88a3, 0x88a4, 0x88a5, 0x88a5, 0x88a6, 0x88a7, 0x88a8, 0x88a9, 
-	0x88aa, 0x88ab, 0x88ac, 0x88ae, 0x88af, 0x88b0, 0x88b1, 0x88b3, 
-	0x88b4, 0x88b5, 0x88b7, 0x88b8, 0x88ba, 0x88bb, 0x88bd, 0x88bf, 
-	0x88c0, 0x88c0, 0x88c0, 0x88c0, 0x88c1, 0x88c1, 0x88c2, 0x88c2, 
-	0x88c3, 0x88c4, 0x88c5, 0x88c5, 0x88c6, 0x88c7, 0x88c8, 0x88c9, 
-	0x88ca, 0x88cb, 0x88cc, 0x88ce, 0x88cf, 0x88d0, 0x88d1, 0x88d3, 
-	0x88d4, 0x88d5, 0x88d7, 0x88d8, 0x88da, 0x88db, 0x88dd, 0x88df, 
-	0x88e0, 0x88e0, 0x88e0, 0x88e0, 0x88e1, 0x88e1, 0x88e2, 0x88e2, 
-	0x88e3, 0x88e4, 0x88e5, 0x88e5, 0x88e6, 0x88e7, 0x88e8, 0x88e9, 
-	0x88ea, 0x88eb, 0x88ec, 0x88ee, 0x88ef, 0x88f0, 0x88f1, 0x88f3, 
-	0x88f4, 0x88f5, 0x88f7, 0x88f8, 0x88fa, 0x88fb, 0x88fd, 0x88ff, 
-	0x88e0, 0x88e0, 0x88e0, 0x88e0, 0x88e1, 0x88e1, 0x88e2, 0x88e2, 
-	0x88e3, 0x88e4, 0x88e5, 0x88e5, 0x88e6, 0x88e7, 0x88e8, 0x88e9, 
-	0x88ea, 0x88eb, 0x88ec, 0x88ee, 0x88ef, 0x88f0, 0x88f1, 0x88f3, 
-	0x88f4, 0x88f5, 0x88f7, 0x88f8, 0x88fa, 0x88fb, 0x88fd, 0x88ff, 
-	0x8900, 0x8900, 0x8900, 0x8900, 0x8901, 0x8901, 0x8902, 0x8902, 
-	0x8903, 0x8904, 0x8905, 0x8905, 0x8906, 0x8907, 0x8908, 0x8909, 
-	0x890a, 0x890b, 0x890c, 0x890e, 0x890f, 0x8910, 0x8911, 0x8913, 
-	0x8914, 0x8915, 0x8917, 0x8918, 0x891a, 0x891b, 0x891d, 0x891f, 
-	0x8920, 0x8920, 0x8920, 0x8920, 0x8921, 0x8921, 0x8922, 0x8922, 
-	0x8923, 0x8924, 0x8925, 0x8925, 0x8926, 0x8927, 0x8928, 0x8929, 
-	0x892a, 0x892b, 0x892c, 0x892e, 0x892f, 0x8930, 0x8931, 0x8933, 
-	0x8934, 0x8935, 0x8937, 0x8938, 0x893a, 0x893b, 0x893d, 0x893f, 
-	0x8940, 0x8940, 0x8940, 0x8940, 0x8941, 0x8941, 0x8942, 0x8942, 
-	0x8943, 0x8944, 0x8945, 0x8945, 0x8946, 0x8947, 0x8948, 0x8949, 
-	0x894a, 0x894b, 0x894c, 0x894e, 0x894f, 0x8950, 0x8951, 0x8953, 
-	0x8954, 0x8955, 0x8957, 0x8958, 0x895a, 0x895b, 0x895d, 0x895f, 
-	0x8940, 0x8940, 0x8940, 0x8940, 0x8941, 0x8941, 0x8942, 0x8942, 
-	0x8943, 0x8944, 0x8945, 0x8945, 0x8946, 0x8947, 0x8948, 0x8949, 
-	0x894a, 0x894b, 0x894c, 0x894e, 0x894f, 0x8950, 0x8951, 0x8953, 
-	0x8954, 0x8955, 0x8957, 0x8958, 0x895a, 0x895b, 0x895d, 0x895f, 
-	0x8960, 0x8960, 0x8960, 0x8960, 0x8961, 0x8961, 0x8962, 0x8962, 
-	0x8963, 0x8964, 0x8965, 0x8965, 0x8966, 0x8967, 0x8968, 0x8969, 
-	0x896a, 0x896b, 0x896c, 0x896e, 0x896f, 0x8970, 0x8971, 0x8973, 
-	0x8974, 0x8975, 0x8977, 0x8978, 0x897a, 0x897b, 0x897d, 0x897f, 
-	0x8980, 0x8980, 0x8980, 0x8980, 0x8981, 0x8981, 0x8982, 0x8982, 
-	0x8983, 0x8984, 0x8985, 0x8985, 0x8986, 0x8987, 0x8988, 0x8989, 
-	0x898a, 0x898b, 0x898c, 0x898e, 0x898f, 0x8990, 0x8991, 0x8993, 
-	0x8994, 0x8995, 0x8997, 0x8998, 0x899a, 0x899b, 0x899d, 0x899f, 
-	0x89a0, 0x89a0, 0x89a0, 0x89a0, 0x89a1, 0x89a1, 0x89a2, 0x89a2, 
-	0x89a3, 0x89a4, 0x89a5, 0x89a5, 0x89a6, 0x89a7, 0x89a8, 0x89a9, 
-	0x89aa, 0x89ab, 0x89ac, 0x89ae, 0x89af, 0x89b0, 0x89b1, 0x89b3, 
-	0x89b4, 0x89b5, 0x89b7, 0x89b8, 0x89ba, 0x89bb, 0x89bd, 0x89bf, 
-	0x89c0, 0x89c0, 0x89c0, 0x89c0, 0x89c1, 0x89c1, 0x89c2, 0x89c2, 
-	0x89c3, 0x89c4, 0x89c5, 0x89c5, 0x89c6, 0x89c7, 0x89c8, 0x89c9, 
-	0x89ca, 0x89cb, 0x89cc, 0x89ce, 0x89cf, 0x89d0, 0x89d1, 0x89d3, 
-	0x89d4, 0x89d5, 0x89d7, 0x89d8, 0x89da, 0x89db, 0x89dd, 0x89df, 
-	0x89e0, 0x89e0, 0x89e0, 0x89e0, 0x89e1, 0x89e1, 0x89e2, 0x89e2, 
-	0x89e3, 0x89e4, 0x89e5, 0x89e5, 0x89e6, 0x89e7, 0x89e8, 0x89e9, 
-	0x89ea, 0x89eb, 0x89ec, 0x89ee, 0x89ef, 0x89f0, 0x89f1, 0x89f3, 
-	0x89f4, 0x89f5, 0x89f7, 0x89f8, 0x89fa, 0x89fb, 0x89fd, 0x89ff, 
-	0x8a00, 0x8a00, 0x8a00, 0x8a00, 0x8a01, 0x8a01, 0x8a02, 0x8a02, 
-	0x8a03, 0x8a04, 0x8a05, 0x8a05, 0x8a06, 0x8a07, 0x8a08, 0x8a09, 
-	0x8a0a, 0x8a0b, 0x8a0c, 0x8a0e, 0x8a0f, 0x8a10, 0x8a11, 0x8a13, 
-	0x8a14, 0x8a15, 0x8a17, 0x8a18, 0x8a1a, 0x8a1b, 0x8a1d, 0x8a1f, 
-	0x8a20, 0x8a20, 0x8a20, 0x8a20, 0x8a21, 0x8a21, 0x8a22, 0x8a22, 
-	0x8a23, 0x8a24, 0x8a25, 0x8a25, 0x8a26, 0x8a27, 0x8a28, 0x8a29, 
-	0x8a2a, 0x8a2b, 0x8a2c, 0x8a2e, 0x8a2f, 0x8a30, 0x8a31, 0x8a33, 
-	0x8a34, 0x8a35, 0x8a37, 0x8a38, 0x8a3a, 0x8a3b, 0x8a3d, 0x8a3f, 
-	0x8a40, 0x8a40, 0x8a40, 0x8a40, 0x8a41, 0x8a41, 0x8a42, 0x8a42, 
-	0x8a43, 0x8a44, 0x8a45, 0x8a45, 0x8a46, 0x8a47, 0x8a48, 0x8a49, 
-	0x8a4a, 0x8a4b, 0x8a4c, 0x8a4e, 0x8a4f, 0x8a50, 0x8a51, 0x8a53, 
-	0x8a54, 0x8a55, 0x8a57, 0x8a58, 0x8a5a, 0x8a5b, 0x8a5d, 0x8a5f, 
-	0x8a60, 0x8a60, 0x8a60, 0x8a60, 0x8a61, 0x8a61, 0x8a62, 0x8a62, 
-	0x8a63, 0x8a64, 0x8a65, 0x8a65, 0x8a66, 0x8a67, 0x8a68, 0x8a69, 
-	0x8a6a, 0x8a6b, 0x8a6c, 0x8a6e, 0x8a6f, 0x8a70, 0x8a71, 0x8a73, 
-	0x8a74, 0x8a75, 0x8a77, 0x8a78, 0x8a7a, 0x8a7b, 0x8a7d, 0x8a7f, 
-	0x8a80, 0x8a80, 0x8a80, 0x8a80, 0x8a81, 0x8a81, 0x8a82, 0x8a82, 
-	0x8a83, 0x8a84, 0x8a85, 0x8a85, 0x8a86, 0x8a87, 0x8a88, 0x8a89, 
-	0x8a8a, 0x8a8b, 0x8a8c, 0x8a8e, 0x8a8f, 0x8a90, 0x8a91, 0x8a93, 
-	0x8a94, 0x8a95, 0x8a97, 0x8a98, 0x8a9a, 0x8a9b, 0x8a9d, 0x8a9f, 
-	0x8aa0, 0x8aa0, 0x8aa0, 0x8aa0, 0x8aa1, 0x8aa1, 0x8aa2, 0x8aa2, 
-	0x8aa3, 0x8aa4, 0x8aa5, 0x8aa5, 0x8aa6, 0x8aa7, 0x8aa8, 0x8aa9, 
-	0x8aaa, 0x8aab, 0x8aac, 0x8aae, 0x8aaf, 0x8ab0, 0x8ab1, 0x8ab3, 
-	0x8ab4, 0x8ab5, 0x8ab7, 0x8ab8, 0x8aba, 0x8abb, 0x8abd, 0x8abf, 
-	0x8ac0, 0x8ac0, 0x8ac0, 0x8ac0, 0x8ac1, 0x8ac1, 0x8ac2, 0x8ac2, 
-	0x8ac3, 0x8ac4, 0x8ac5, 0x8ac5, 0x8ac6, 0x8ac7, 0x8ac8, 0x8ac9, 
-	0x8aca, 0x8acb, 0x8acc, 0x8ace, 0x8acf, 0x8ad0, 0x8ad1, 0x8ad3, 
-	0x8ad4, 0x8ad5, 0x8ad7, 0x8ad8, 0x8ada, 0x8adb, 0x8add, 0x8adf, 
-	0x8ae0, 0x8ae0, 0x8ae0, 0x8ae0, 0x8ae1, 0x8ae1, 0x8ae2, 0x8ae2, 
-	0x8ae3, 0x8ae4, 0x8ae5, 0x8ae5, 0x8ae6, 0x8ae7, 0x8ae8, 0x8ae9, 
-	0x8aea, 0x8aeb, 0x8aec, 0x8aee, 0x8aef, 0x8af0, 0x8af1, 0x8af3, 
-	0x8af4, 0x8af5, 0x8af7, 0x8af8, 0x8afa, 0x8afb, 0x8afd, 0x8aff, 
-	0x8b00, 0x8b00, 0x8b00, 0x8b00, 0x8b01, 0x8b01, 0x8b02, 0x8b02, 
-	0x8b03, 0x8b04, 0x8b05, 0x8b05, 0x8b06, 0x8b07, 0x8b08, 0x8b09, 
-	0x8b0a, 0x8b0b, 0x8b0c, 0x8b0e, 0x8b0f, 0x8b10, 0x8b11, 0x8b13, 
-	0x8b14, 0x8b15, 0x8b17, 0x8b18, 0x8b1a, 0x8b1b, 0x8b1d, 0x8b1f, 
-	0x8b20, 0x8b20, 0x8b20, 0x8b20, 0x8b21, 0x8b21, 0x8b22, 0x8b22, 
-	0x8b23, 0x8b24, 0x8b25, 0x8b25, 0x8b26, 0x8b27, 0x8b28, 0x8b29, 
-	0x8b2a, 0x8b2b, 0x8b2c, 0x8b2e, 0x8b2f, 0x8b30, 0x8b31, 0x8b33, 
-	0x8b34, 0x8b35, 0x8b37, 0x8b38, 0x8b3a, 0x8b3b, 0x8b3d, 0x8b3f, 
-	0x8b40, 0x8b40, 0x8b40, 0x8b40, 0x8b41, 0x8b41, 0x8b42, 0x8b42, 
-	0x8b43, 0x8b44, 0x8b45, 0x8b45, 0x8b46, 0x8b47, 0x8b48, 0x8b49, 
-	0x8b4a, 0x8b4b, 0x8b4c, 0x8b4e, 0x8b4f, 0x8b50, 0x8b51, 0x8b53, 
-	0x8b54, 0x8b55, 0x8b57, 0x8b58, 0x8b5a, 0x8b5b, 0x8b5d, 0x8b5f, 
-	0x8b80, 0x8b80, 0x8b80, 0x8b80, 0x8b81, 0x8b81, 0x8b82, 0x8b82, 
-	0x8b83, 0x8b84, 0x8b85, 0x8b85, 0x8b86, 0x8b87, 0x8b88, 0x8b89, 
-	0x8b8a, 0x8b8b, 0x8b8c, 0x8b8e, 0x8b8f, 0x8b90, 0x8b91, 0x8b93, 
-	0x8b94, 0x8b95, 0x8b97, 0x8b98, 0x8b9a, 0x8b9b, 0x8b9d, 0x8b9f, 
-	0x8ba0, 0x8ba0, 0x8ba0, 0x8ba0, 0x8ba1, 0x8ba1, 0x8ba2, 0x8ba2, 
-	0x8ba3, 0x8ba4, 0x8ba5, 0x8ba5, 0x8ba6, 0x8ba7, 0x8ba8, 0x8ba9, 
-	0x8baa, 0x8bab, 0x8bac, 0x8bae, 0x8baf, 0x8bb0, 0x8bb1, 0x8bb3, 
-	0x8bb4, 0x8bb5, 0x8bb7, 0x8bb8, 0x8bba, 0x8bbb, 0x8bbd, 0x8bbf, 
-	0x8bc0, 0x8bc0, 0x8bc0, 0x8bc0, 0x8bc1, 0x8bc1, 0x8bc2, 0x8bc2, 
-	0x8bc3, 0x8bc4, 0x8bc5, 0x8bc5, 0x8bc6, 0x8bc7, 0x8bc8, 0x8bc9, 
-	0x8bca, 0x8bcb, 0x8bcc, 0x8bce, 0x8bcf, 0x8bd0, 0x8bd1, 0x8bd3, 
-	0x8bd4, 0x8bd5, 0x8bd7, 0x8bd8, 0x8bda, 0x8bdb, 0x8bdd, 0x8bdf, 
-	0x8be0, 0x8be0, 0x8be0, 0x8be0, 0x8be1, 0x8be1, 0x8be2, 0x8be2, 
-	0x8be3, 0x8be4, 0x8be5, 0x8be5, 0x8be6, 0x8be7, 0x8be8, 0x8be9, 
-	0x8bea, 0x8beb, 0x8bec, 0x8bee, 0x8bef, 0x8bf0, 0x8bf1, 0x8bf3, 
-	0x8bf4, 0x8bf5, 0x8bf7, 0x8bf8, 0x8bfa, 0x8bfb, 0x8bfd, 0x8bff, 
-	0x8c00, 0x8c00, 0x8c00, 0x8c00, 0x8c01, 0x8c01, 0x8c02, 0x8c02, 
-	0x8c03, 0x8c04, 0x8c05, 0x8c05, 0x8c06, 0x8c07, 0x8c08, 0x8c09, 
-	0x8c0a, 0x8c0b, 0x8c0c, 0x8c0e, 0x8c0f, 0x8c10, 0x8c11, 0x8c13, 
-	0x8c14, 0x8c15, 0x8c17, 0x8c18, 0x8c1a, 0x8c1b, 0x8c1d, 0x8c1f, 
-	0x8c40, 0x8c40, 0x8c40, 0x8c40, 0x8c41, 0x8c41, 0x8c42, 0x8c42, 
-	0x8c43, 0x8c44, 0x8c45, 0x8c45, 0x8c46, 0x8c47, 0x8c48, 0x8c49, 
-	0x8c4a, 0x8c4b, 0x8c4c, 0x8c4e, 0x8c4f, 0x8c50, 0x8c51, 0x8c53, 
-	0x8c54, 0x8c55, 0x8c57, 0x8c58, 0x8c5a, 0x8c5b, 0x8c5d, 0x8c5f, 
-	0x8c60, 0x8c60, 0x8c60, 0x8c60, 0x8c61, 0x8c61, 0x8c62, 0x8c62, 
-	0x8c63, 0x8c64, 0x8c65, 0x8c65, 0x8c66, 0x8c67, 0x8c68, 0x8c69, 
-	0x8c6a, 0x8c6b, 0x8c6c, 0x8c6e, 0x8c6f, 0x8c70, 0x8c71, 0x8c73, 
-	0x8c74, 0x8c75, 0x8c77, 0x8c78, 0x8c7a, 0x8c7b, 0x8c7d, 0x8c7f, 
-	0x8c80, 0x8c80, 0x8c80, 0x8c80, 0x8c81, 0x8c81, 0x8c82, 0x8c82, 
-	0x8c83, 0x8c84, 0x8c85, 0x8c85, 0x8c86, 0x8c87, 0x8c88, 0x8c89, 
-	0x8c8a, 0x8c8b, 0x8c8c, 0x8c8e, 0x8c8f, 0x8c90, 0x8c91, 0x8c93, 
-	0x8c94, 0x8c95, 0x8c97, 0x8c98, 0x8c9a, 0x8c9b, 0x8c9d, 0x8c9f, 
-	0x8cc0, 0x8cc0, 0x8cc0, 0x8cc0, 0x8cc1, 0x8cc1, 0x8cc2, 0x8cc2, 
-	0x8cc3, 0x8cc4, 0x8cc5, 0x8cc5, 0x8cc6, 0x8cc7, 0x8cc8, 0x8cc9, 
-	0x8cca, 0x8ccb, 0x8ccc, 0x8cce, 0x8ccf, 0x8cd0, 0x8cd1, 0x8cd3, 
-	0x8cd4, 0x8cd5, 0x8cd7, 0x8cd8, 0x8cda, 0x8cdb, 0x8cdd, 0x8cdf, 
-	0x8ce0, 0x8ce0, 0x8ce0, 0x8ce0, 0x8ce1, 0x8ce1, 0x8ce2, 0x8ce2, 
-	0x8ce3, 0x8ce4, 0x8ce5, 0x8ce5, 0x8ce6, 0x8ce7, 0x8ce8, 0x8ce9, 
-	0x8cea, 0x8ceb, 0x8cec, 0x8cee, 0x8cef, 0x8cf0, 0x8cf1, 0x8cf3, 
-	0x8cf4, 0x8cf5, 0x8cf7, 0x8cf8, 0x8cfa, 0x8cfb, 0x8cfd, 0x8cff, 
-	0x8d00, 0x8d00, 0x8d00, 0x8d00, 0x8d01, 0x8d01, 0x8d02, 0x8d02, 
-	0x8d03, 0x8d04, 0x8d05, 0x8d05, 0x8d06, 0x8d07, 0x8d08, 0x8d09, 
-	0x8d0a, 0x8d0b, 0x8d0c, 0x8d0e, 0x8d0f, 0x8d10, 0x8d11, 0x8d13, 
-	0x8d14, 0x8d15, 0x8d17, 0x8d18, 0x8d1a, 0x8d1b, 0x8d1d, 0x8d1f, 
-	0x8d40, 0x8d40, 0x8d40, 0x8d40, 0x8d41, 0x8d41, 0x8d42, 0x8d42, 
-	0x8d43, 0x8d44, 0x8d45, 0x8d45, 0x8d46, 0x8d47, 0x8d48, 0x8d49, 
-	0x8d4a, 0x8d4b, 0x8d4c, 0x8d4e, 0x8d4f, 0x8d50, 0x8d51, 0x8d53, 
-	0x8d54, 0x8d55, 0x8d57, 0x8d58, 0x8d5a, 0x8d5b, 0x8d5d, 0x8d5f, 
-	0x8d60, 0x8d60, 0x8d60, 0x8d60, 0x8d61, 0x8d61, 0x8d62, 0x8d62, 
-	0x8d63, 0x8d64, 0x8d65, 0x8d65, 0x8d66, 0x8d67, 0x8d68, 0x8d69, 
-	0x8d6a, 0x8d6b, 0x8d6c, 0x8d6e, 0x8d6f, 0x8d70, 0x8d71, 0x8d73, 
-	0x8d74, 0x8d75, 0x8d77, 0x8d78, 0x8d7a, 0x8d7b, 0x8d7d, 0x8d7f, 
-	0x8d80, 0x8d80, 0x8d80, 0x8d80, 0x8d81, 0x8d81, 0x8d82, 0x8d82, 
-	0x8d83, 0x8d84, 0x8d85, 0x8d85, 0x8d86, 0x8d87, 0x8d88, 0x8d89, 
-	0x8d8a, 0x8d8b, 0x8d8c, 0x8d8e, 0x8d8f, 0x8d90, 0x8d91, 0x8d93, 
-	0x8d94, 0x8d95, 0x8d97, 0x8d98, 0x8d9a, 0x8d9b, 0x8d9d, 0x8d9f, 
-	0x8dc0, 0x8dc0, 0x8dc0, 0x8dc0, 0x8dc1, 0x8dc1, 0x8dc2, 0x8dc2, 
-	0x8dc3, 0x8dc4, 0x8dc5, 0x8dc5, 0x8dc6, 0x8dc7, 0x8dc8, 0x8dc9, 
-	0x8dca, 0x8dcb, 0x8dcc, 0x8dce, 0x8dcf, 0x8dd0, 0x8dd1, 0x8dd3, 
-	0x8dd4, 0x8dd5, 0x8dd7, 0x8dd8, 0x8dda, 0x8ddb, 0x8ddd, 0x8ddf, 
-	0x8de0, 0x8de0, 0x8de0, 0x8de0, 0x8de1, 0x8de1, 0x8de2, 0x8de2, 
-	0x8de3, 0x8de4, 0x8de5, 0x8de5, 0x8de6, 0x8de7, 0x8de8, 0x8de9, 
-	0x8dea, 0x8deb, 0x8dec, 0x8dee, 0x8def, 0x8df0, 0x8df1, 0x8df3, 
-	0x8df4, 0x8df5, 0x8df7, 0x8df8, 0x8dfa, 0x8dfb, 0x8dfd, 0x8dff, 
-	0x8e20, 0x8e20, 0x8e20, 0x8e20, 0x8e21, 0x8e21, 0x8e22, 0x8e22, 
-	0x8e23, 0x8e24, 0x8e25, 0x8e25, 0x8e26, 0x8e27, 0x8e28, 0x8e29, 
-	0x8e2a, 0x8e2b, 0x8e2c, 0x8e2e, 0x8e2f, 0x8e30, 0x8e31, 0x8e33, 
-	0x8e34, 0x8e35, 0x8e37, 0x8e38, 0x8e3a, 0x8e3b, 0x8e3d, 0x8e3f, 
-	0x8e40, 0x8e40, 0x8e40, 0x8e40, 0x8e41, 0x8e41, 0x8e42, 0x8e42, 
-	0x8e43, 0x8e44, 0x8e45, 0x8e45, 0x8e46, 0x8e47, 0x8e48, 0x8e49, 
-	0x8e4a, 0x8e4b, 0x8e4c, 0x8e4e, 0x8e4f, 0x8e50, 0x8e51, 0x8e53, 
-	0x8e54, 0x8e55, 0x8e57, 0x8e58, 0x8e5a, 0x8e5b, 0x8e5d, 0x8e5f, 
-	0x8e80, 0x8e80, 0x8e80, 0x8e80, 0x8e81, 0x8e81, 0x8e82, 0x8e82, 
-	0x8e83, 0x8e84, 0x8e85, 0x8e85, 0x8e86, 0x8e87, 0x8e88, 0x8e89, 
-	0x8e8a, 0x8e8b, 0x8e8c, 0x8e8e, 0x8e8f, 0x8e90, 0x8e91, 0x8e93, 
-	0x8e94, 0x8e95, 0x8e97, 0x8e98, 0x8e9a, 0x8e9b, 0x8e9d, 0x8e9f, 
-	0x8ea0, 0x8ea0, 0x8ea0, 0x8ea0, 0x8ea1, 0x8ea1, 0x8ea2, 0x8ea2, 
-	0x8ea3, 0x8ea4, 0x8ea5, 0x8ea5, 0x8ea6, 0x8ea7, 0x8ea8, 0x8ea9, 
-	0x8eaa, 0x8eab, 0x8eac, 0x8eae, 0x8eaf, 0x8eb0, 0x8eb1, 0x8eb3, 
-	0x8eb4, 0x8eb5, 0x8eb7, 0x8eb8, 0x8eba, 0x8ebb, 0x8ebd, 0x8ebf, 
-	0x8ee0, 0x8ee0, 0x8ee0, 0x8ee0, 0x8ee1, 0x8ee1, 0x8ee2, 0x8ee2, 
-	0x8ee3, 0x8ee4, 0x8ee5, 0x8ee5, 0x8ee6, 0x8ee7, 0x8ee8, 0x8ee9, 
-	0x8eea, 0x8eeb, 0x8eec, 0x8eee, 0x8eef, 0x8ef0, 0x8ef1, 0x8ef3, 
-	0x8ef4, 0x8ef5, 0x8ef7, 0x8ef8, 0x8efa, 0x8efb, 0x8efd, 0x8eff, 
-	0x8f00, 0x8f00, 0x8f00, 0x8f00, 0x8f01, 0x8f01, 0x8f02, 0x8f02, 
-	0x8f03, 0x8f04, 0x8f05, 0x8f05, 0x8f06, 0x8f07, 0x8f08, 0x8f09, 
-	0x8f0a, 0x8f0b, 0x8f0c, 0x8f0e, 0x8f0f, 0x8f10, 0x8f11, 0x8f13, 
-	0x8f14, 0x8f15, 0x8f17, 0x8f18, 0x8f1a, 0x8f1b, 0x8f1d, 0x8f1f, 
-	0x8f40, 0x8f40, 0x8f40, 0x8f40, 0x8f41, 0x8f41, 0x8f42, 0x8f42, 
-	0x8f43, 0x8f44, 0x8f45, 0x8f45, 0x8f46, 0x8f47, 0x8f48, 0x8f49, 
-	0x8f4a, 0x8f4b, 0x8f4c, 0x8f4e, 0x8f4f, 0x8f50, 0x8f51, 0x8f53, 
-	0x8f54, 0x8f55, 0x8f57, 0x8f58, 0x8f5a, 0x8f5b, 0x8f5d, 0x8f5f, 
-	0x8f60, 0x8f60, 0x8f60, 0x8f60, 0x8f61, 0x8f61, 0x8f62, 0x8f62, 
-	0x8f63, 0x8f64, 0x8f65, 0x8f65, 0x8f66, 0x8f67, 0x8f68, 0x8f69, 
-	0x8f6a, 0x8f6b, 0x8f6c, 0x8f6e, 0x8f6f, 0x8f70, 0x8f71, 0x8f73, 
-	0x8f74, 0x8f75, 0x8f77, 0x8f78, 0x8f7a, 0x8f7b, 0x8f7d, 0x8f7f, 
-	0x8fa0, 0x8fa0, 0x8fa0, 0x8fa0, 0x8fa1, 0x8fa1, 0x8fa2, 0x8fa2, 
-	0x8fa3, 0x8fa4, 0x8fa5, 0x8fa5, 0x8fa6, 0x8fa7, 0x8fa8, 0x8fa9, 
-	0x8faa, 0x8fab, 0x8fac, 0x8fae, 0x8faf, 0x8fb0, 0x8fb1, 0x8fb3, 
-	0x8fb4, 0x8fb5, 0x8fb7, 0x8fb8, 0x8fba, 0x8fbb, 0x8fbd, 0x8fbf, 
-	0x8fe0, 0x8fe0, 0x8fe0, 0x8fe0, 0x8fe1, 0x8fe1, 0x8fe2, 0x8fe2, 
-	0x8fe3, 0x8fe4, 0x8fe5, 0x8fe5, 0x8fe6, 0x8fe7, 0x8fe8, 0x8fe9, 
-	0x8fea, 0x8feb, 0x8fec, 0x8fee, 0x8fef, 0x8ff0, 0x8ff1, 0x8ff3, 
-	0x8ff4, 0x8ff5, 0x8ff7, 0x8ff8, 0x8ffa, 0x8ffb, 0x8ffd, 0x8fff, 
-	0x9800, 0x9800, 0x9800, 0x9800, 0x9801, 0x9801, 0x9802, 0x9802, 
-	0x9803, 0x9804, 0x9805, 0x9805, 0x9806, 0x9807, 0x9808, 0x9809, 
-	0x980a, 0x980b, 0x980c, 0x980e, 0x980f, 0x9810, 0x9811, 0x9813, 
-	0x9814, 0x9815, 0x9817, 0x9818, 0x981a, 0x981b, 0x981d, 0x981f, 
-	0x9800, 0x9800, 0x9800, 0x9800, 0x9801, 0x9801, 0x9802, 0x9802, 
-	0x9803, 0x9804, 0x9805, 0x9805, 0x9806, 0x9807, 0x9808, 0x9809, 
-	0x980a, 0x980b, 0x980c, 0x980e, 0x980f, 0x9810, 0x9811, 0x9813, 
-	0x9814, 0x9815, 0x9817, 0x9818, 0x981a, 0x981b, 0x981d, 0x981f, 
-	0x9800, 0x9800, 0x9800, 0x9800, 0x9801, 0x9801, 0x9802, 0x9802, 
-	0x9803, 0x9804, 0x9805, 0x9805, 0x9806, 0x9807, 0x9808, 0x9809, 
-	0x980a, 0x980b, 0x980c, 0x980e, 0x980f, 0x9810, 0x9811, 0x9813, 
-	0x9814, 0x9815, 0x9817, 0x9818, 0x981a, 0x981b, 0x981d, 0x981f, 
-	0x9800, 0x9800, 0x9800, 0x9800, 0x9801, 0x9801, 0x9802, 0x9802, 
-	0x9803, 0x9804, 0x9805, 0x9805, 0x9806, 0x9807, 0x9808, 0x9809, 
-	0x980a, 0x980b, 0x980c, 0x980e, 0x980f, 0x9810, 0x9811, 0x9813, 
-	0x9814, 0x9815, 0x9817, 0x9818, 0x981a, 0x981b, 0x981d, 0x981f, 
-	0x9800, 0x9800, 0x9800, 0x9800, 0x9801, 0x9801, 0x9802, 0x9802, 
-	0x9803, 0x9804, 0x9805, 0x9805, 0x9806, 0x9807, 0x9808, 0x9809, 
-	0x980a, 0x980b, 0x980c, 0x980e, 0x980f, 0x9810, 0x9811, 0x9813, 
-	0x9814, 0x9815, 0x9817, 0x9818, 0x981a, 0x981b, 0x981d, 0x981f, 
-	0x9820, 0x9820, 0x9820, 0x9820, 0x9821, 0x9821, 0x9822, 0x9822, 
-	0x9823, 0x9824, 0x9825, 0x9825, 0x9826, 0x9827, 0x9828, 0x9829, 
-	0x982a, 0x982b, 0x982c, 0x982e, 0x982f, 0x9830, 0x9831, 0x9833, 
-	0x9834, 0x9835, 0x9837, 0x9838, 0x983a, 0x983b, 0x983d, 0x983f, 
-	0x9820, 0x9820, 0x9820, 0x9820, 0x9821, 0x9821, 0x9822, 0x9822, 
-	0x9823, 0x9824, 0x9825, 0x9825, 0x9826, 0x9827, 0x9828, 0x9829, 
-	0x982a, 0x982b, 0x982c, 0x982e, 0x982f, 0x9830, 0x9831, 0x9833, 
-	0x9834, 0x9835, 0x9837, 0x9838, 0x983a, 0x983b, 0x983d, 0x983f, 
-	0x9820, 0x9820, 0x9820, 0x9820, 0x9821, 0x9821, 0x9822, 0x9822, 
-	0x9823, 0x9824, 0x9825, 0x9825, 0x9826, 0x9827, 0x9828, 0x9829, 
-	0x982a, 0x982b, 0x982c, 0x982e, 0x982f, 0x9830, 0x9831, 0x9833, 
-	0x9834, 0x9835, 0x9837, 0x9838, 0x983a, 0x983b, 0x983d, 0x983f, 
-	0x9840, 0x9840, 0x9840, 0x9840, 0x9841, 0x9841, 0x9842, 0x9842, 
-	0x9843, 0x9844, 0x9845, 0x9845, 0x9846, 0x9847, 0x9848, 0x9849, 
-	0x984a, 0x984b, 0x984c, 0x984e, 0x984f, 0x9850, 0x9851, 0x9853, 
-	0x9854, 0x9855, 0x9857, 0x9858, 0x985a, 0x985b, 0x985d, 0x985f, 
-	0x9840, 0x9840, 0x9840, 0x9840, 0x9841, 0x9841, 0x9842, 0x9842, 
-	0x9843, 0x9844, 0x9845, 0x9845, 0x9846, 0x9847, 0x9848, 0x9849, 
-	0x984a, 0x984b, 0x984c, 0x984e, 0x984f, 0x9850, 0x9851, 0x9853, 
-	0x9854, 0x9855, 0x9857, 0x9858, 0x985a, 0x985b, 0x985d, 0x985f, 
-	0x9860, 0x9860, 0x9860, 0x9860, 0x9861, 0x9861, 0x9862, 0x9862, 
-	0x9863, 0x9864, 0x9865, 0x9865, 0x9866, 0x9867, 0x9868, 0x9869, 
-	0x986a, 0x986b, 0x986c, 0x986e, 0x986f, 0x9870, 0x9871, 0x9873, 
-	0x9874, 0x9875, 0x9877, 0x9878, 0x987a, 0x987b, 0x987d, 0x987f, 
-	0x9860, 0x9860, 0x9860, 0x9860, 0x9861, 0x9861, 0x9862, 0x9862, 
-	0x9863, 0x9864, 0x9865, 0x9865, 0x9866, 0x9867, 0x9868, 0x9869, 
-	0x986a, 0x986b, 0x986c, 0x986e, 0x986f, 0x9870, 0x9871, 0x9873, 
-	0x9874, 0x9875, 0x9877, 0x9878, 0x987a, 0x987b, 0x987d, 0x987f, 
-	0x9880, 0x9880, 0x9880, 0x9880, 0x9881, 0x9881, 0x9882, 0x9882, 
-	0x9883, 0x9884, 0x9885, 0x9885, 0x9886, 0x9887, 0x9888, 0x9889, 
-	0x988a, 0x988b, 0x988c, 0x988e, 0x988f, 0x9890, 0x9891, 0x9893, 
-	0x9894, 0x9895, 0x9897, 0x9898, 0x989a, 0x989b, 0x989d, 0x989f, 
-	0x98a0, 0x98a0, 0x98a0, 0x98a0, 0x98a1, 0x98a1, 0x98a2, 0x98a2, 
-	0x98a3, 0x98a4, 0x98a5, 0x98a5, 0x98a6, 0x98a7, 0x98a8, 0x98a9, 
-	0x98aa, 0x98ab, 0x98ac, 0x98ae, 0x98af, 0x98b0, 0x98b1, 0x98b3, 
-	0x98b4, 0x98b5, 0x98b7, 0x98b8, 0x98ba, 0x98bb, 0x98bd, 0x98bf, 
-	0x98a0, 0x98a0, 0x98a0, 0x98a0, 0x98a1, 0x98a1, 0x98a2, 0x98a2, 
-	0x98a3, 0x98a4, 0x98a5, 0x98a5, 0x98a6, 0x98a7, 0x98a8, 0x98a9, 
-	0x98aa, 0x98ab, 0x98ac, 0x98ae, 0x98af, 0x98b0, 0x98b1, 0x98b3, 
-	0x98b4, 0x98b5, 0x98b7, 0x98b8, 0x98ba, 0x98bb, 0x98bd, 0x98bf, 
-	0x98c0, 0x98c0, 0x98c0, 0x98c0, 0x98c1, 0x98c1, 0x98c2, 0x98c2, 
-	0x98c3, 0x98c4, 0x98c5, 0x98c5, 0x98c6, 0x98c7, 0x98c8, 0x98c9, 
-	0x98ca, 0x98cb, 0x98cc, 0x98ce, 0x98cf, 0x98d0, 0x98d1, 0x98d3, 
-	0x98d4, 0x98d5, 0x98d7, 0x98d8, 0x98da, 0x98db, 0x98dd, 0x98df, 
-	0x98e0, 0x98e0, 0x98e0, 0x98e0, 0x98e1, 0x98e1, 0x98e2, 0x98e2, 
-	0x98e3, 0x98e4, 0x98e5, 0x98e5, 0x98e6, 0x98e7, 0x98e8, 0x98e9, 
-	0x98ea, 0x98eb, 0x98ec, 0x98ee, 0x98ef, 0x98f0, 0x98f1, 0x98f3, 
-	0x98f4, 0x98f5, 0x98f7, 0x98f8, 0x98fa, 0x98fb, 0x98fd, 0x98ff, 
-	0x98e0, 0x98e0, 0x98e0, 0x98e0, 0x98e1, 0x98e1, 0x98e2, 0x98e2, 
-	0x98e3, 0x98e4, 0x98e5, 0x98e5, 0x98e6, 0x98e7, 0x98e8, 0x98e9, 
-	0x98ea, 0x98eb, 0x98ec, 0x98ee, 0x98ef, 0x98f0, 0x98f1, 0x98f3, 
-	0x98f4, 0x98f5, 0x98f7, 0x98f8, 0x98fa, 0x98fb, 0x98fd, 0x98ff, 
-	0x9900, 0x9900, 0x9900, 0x9900, 0x9901, 0x9901, 0x9902, 0x9902, 
-	0x9903, 0x9904, 0x9905, 0x9905, 0x9906, 0x9907, 0x9908, 0x9909, 
-	0x990a, 0x990b, 0x990c, 0x990e, 0x990f, 0x9910, 0x9911, 0x9913, 
-	0x9914, 0x9915, 0x9917, 0x9918, 0x991a, 0x991b, 0x991d, 0x991f, 
-	0x9920, 0x9920, 0x9920, 0x9920, 0x9921, 0x9921, 0x9922, 0x9922, 
-	0x9923, 0x9924, 0x9925, 0x9925, 0x9926, 0x9927, 0x9928, 0x9929, 
-	0x992a, 0x992b, 0x992c, 0x992e, 0x992f, 0x9930, 0x9931, 0x9933, 
-	0x9934, 0x9935, 0x9937, 0x9938, 0x993a, 0x993b, 0x993d, 0x993f, 
-	0x9940, 0x9940, 0x9940, 0x9940, 0x9941, 0x9941, 0x9942, 0x9942, 
-	0x9943, 0x9944, 0x9945, 0x9945, 0x9946, 0x9947, 0x9948, 0x9949, 
-	0x994a, 0x994b, 0x994c, 0x994e, 0x994f, 0x9950, 0x9951, 0x9953, 
-	0x9954, 0x9955, 0x9957, 0x9958, 0x995a, 0x995b, 0x995d, 0x995f, 
-	0x9940, 0x9940, 0x9940, 0x9940, 0x9941, 0x9941, 0x9942, 0x9942, 
-	0x9943, 0x9944, 0x9945, 0x9945, 0x9946, 0x9947, 0x9948, 0x9949, 
-	0x994a, 0x994b, 0x994c, 0x994e, 0x994f, 0x9950, 0x9951, 0x9953, 
-	0x9954, 0x9955, 0x9957, 0x9958, 0x995a, 0x995b, 0x995d, 0x995f, 
-	0x9960, 0x9960, 0x9960, 0x9960, 0x9961, 0x9961, 0x9962, 0x9962, 
-	0x9963, 0x9964, 0x9965, 0x9965, 0x9966, 0x9967, 0x9968, 0x9969, 
-	0x996a, 0x996b, 0x996c, 0x996e, 0x996f, 0x9970, 0x9971, 0x9973, 
-	0x9974, 0x9975, 0x9977, 0x9978, 0x997a, 0x997b, 0x997d, 0x997f, 
-	0x9980, 0x9980, 0x9980, 0x9980, 0x9981, 0x9981, 0x9982, 0x9982, 
-	0x9983, 0x9984, 0x9985, 0x9985, 0x9986, 0x9987, 0x9988, 0x9989, 
-	0x998a, 0x998b, 0x998c, 0x998e, 0x998f, 0x9990, 0x9991, 0x9993, 
-	0x9994, 0x9995, 0x9997, 0x9998, 0x999a, 0x999b, 0x999d, 0x999f, 
-	0x99a0, 0x99a0, 0x99a0, 0x99a0, 0x99a1, 0x99a1, 0x99a2, 0x99a2, 
-	0x99a3, 0x99a4, 0x99a5, 0x99a5, 0x99a6, 0x99a7, 0x99a8, 0x99a9, 
-	0x99aa, 0x99ab, 0x99ac, 0x99ae, 0x99af, 0x99b0, 0x99b1, 0x99b3, 
-	0x99b4, 0x99b5, 0x99b7, 0x99b8, 0x99ba, 0x99bb, 0x99bd, 0x99bf, 
-	0x99c0, 0x99c0, 0x99c0, 0x99c0, 0x99c1, 0x99c1, 0x99c2, 0x99c2, 
-	0x99c3, 0x99c4, 0x99c5, 0x99c5, 0x99c6, 0x99c7, 0x99c8, 0x99c9, 
-	0x99ca, 0x99cb, 0x99cc, 0x99ce, 0x99cf, 0x99d0, 0x99d1, 0x99d3, 
-	0x99d4, 0x99d5, 0x99d7, 0x99d8, 0x99da, 0x99db, 0x99dd, 0x99df, 
-	0x99e0, 0x99e0, 0x99e0, 0x99e0, 0x99e1, 0x99e1, 0x99e2, 0x99e2, 
-	0x99e3, 0x99e4, 0x99e5, 0x99e5, 0x99e6, 0x99e7, 0x99e8, 0x99e9, 
-	0x99ea, 0x99eb, 0x99ec, 0x99ee, 0x99ef, 0x99f0, 0x99f1, 0x99f3, 
-	0x99f4, 0x99f5, 0x99f7, 0x99f8, 0x99fa, 0x99fb, 0x99fd, 0x99ff, 
-	0x9a00, 0x9a00, 0x9a00, 0x9a00, 0x9a01, 0x9a01, 0x9a02, 0x9a02, 
-	0x9a03, 0x9a04, 0x9a05, 0x9a05, 0x9a06, 0x9a07, 0x9a08, 0x9a09, 
-	0x9a0a, 0x9a0b, 0x9a0c, 0x9a0e, 0x9a0f, 0x9a10, 0x9a11, 0x9a13, 
-	0x9a14, 0x9a15, 0x9a17, 0x9a18, 0x9a1a, 0x9a1b, 0x9a1d, 0x9a1f, 
-	0x9a20, 0x9a20, 0x9a20, 0x9a20, 0x9a21, 0x9a21, 0x9a22, 0x9a22, 
-	0x9a23, 0x9a24, 0x9a25, 0x9a25, 0x9a26, 0x9a27, 0x9a28, 0x9a29, 
-	0x9a2a, 0x9a2b, 0x9a2c, 0x9a2e, 0x9a2f, 0x9a30, 0x9a31, 0x9a33, 
-	0x9a34, 0x9a35, 0x9a37, 0x9a38, 0x9a3a, 0x9a3b, 0x9a3d, 0x9a3f, 
-	0x9a40, 0x9a40, 0x9a40, 0x9a40, 0x9a41, 0x9a41, 0x9a42, 0x9a42, 
-	0x9a43, 0x9a44, 0x9a45, 0x9a45, 0x9a46, 0x9a47, 0x9a48, 0x9a49, 
-	0x9a4a, 0x9a4b, 0x9a4c, 0x9a4e, 0x9a4f, 0x9a50, 0x9a51, 0x9a53, 
-	0x9a54, 0x9a55, 0x9a57, 0x9a58, 0x9a5a, 0x9a5b, 0x9a5d, 0x9a5f, 
-	0x9a60, 0x9a60, 0x9a60, 0x9a60, 0x9a61, 0x9a61, 0x9a62, 0x9a62, 
-	0x9a63, 0x9a64, 0x9a65, 0x9a65, 0x9a66, 0x9a67, 0x9a68, 0x9a69, 
-	0x9a6a, 0x9a6b, 0x9a6c, 0x9a6e, 0x9a6f, 0x9a70, 0x9a71, 0x9a73, 
-	0x9a74, 0x9a75, 0x9a77, 0x9a78, 0x9a7a, 0x9a7b, 0x9a7d, 0x9a7f, 
-	0x9a80, 0x9a80, 0x9a80, 0x9a80, 0x9a81, 0x9a81, 0x9a82, 0x9a82, 
-	0x9a83, 0x9a84, 0x9a85, 0x9a85, 0x9a86, 0x9a87, 0x9a88, 0x9a89, 
-	0x9a8a, 0x9a8b, 0x9a8c, 0x9a8e, 0x9a8f, 0x9a90, 0x9a91, 0x9a93, 
-	0x9a94, 0x9a95, 0x9a97, 0x9a98, 0x9a9a, 0x9a9b, 0x9a9d, 0x9a9f, 
-	0x9aa0, 0x9aa0, 0x9aa0, 0x9aa0, 0x9aa1, 0x9aa1, 0x9aa2, 0x9aa2, 
-	0x9aa3, 0x9aa4, 0x9aa5, 0x9aa5, 0x9aa6, 0x9aa7, 0x9aa8, 0x9aa9, 
-	0x9aaa, 0x9aab, 0x9aac, 0x9aae, 0x9aaf, 0x9ab0, 0x9ab1, 0x9ab3, 
-	0x9ab4, 0x9ab5, 0x9ab7, 0x9ab8, 0x9aba, 0x9abb, 0x9abd, 0x9abf, 
-	0x9ac0, 0x9ac0, 0x9ac0, 0x9ac0, 0x9ac1, 0x9ac1, 0x9ac2, 0x9ac2, 
-	0x9ac3, 0x9ac4, 0x9ac5, 0x9ac5, 0x9ac6, 0x9ac7, 0x9ac8, 0x9ac9, 
-	0x9aca, 0x9acb, 0x9acc, 0x9ace, 0x9acf, 0x9ad0, 0x9ad1, 0x9ad3, 
-	0x9ad4, 0x9ad5, 0x9ad7, 0x9ad8, 0x9ada, 0x9adb, 0x9add, 0x9adf, 
-	0x9ae0, 0x9ae0, 0x9ae0, 0x9ae0, 0x9ae1, 0x9ae1, 0x9ae2, 0x9ae2, 
-	0x9ae3, 0x9ae4, 0x9ae5, 0x9ae5, 0x9ae6, 0x9ae7, 0x9ae8, 0x9ae9, 
-	0x9aea, 0x9aeb, 0x9aec, 0x9aee, 0x9aef, 0x9af0, 0x9af1, 0x9af3, 
-	0x9af4, 0x9af5, 0x9af7, 0x9af8, 0x9afa, 0x9afb, 0x9afd, 0x9aff, 
-	0x9b00, 0x9b00, 0x9b00, 0x9b00, 0x9b01, 0x9b01, 0x9b02, 0x9b02, 
-	0x9b03, 0x9b04, 0x9b05, 0x9b05, 0x9b06, 0x9b07, 0x9b08, 0x9b09, 
-	0x9b0a, 0x9b0b, 0x9b0c, 0x9b0e, 0x9b0f, 0x9b10, 0x9b11, 0x9b13, 
-	0x9b14, 0x9b15, 0x9b17, 0x9b18, 0x9b1a, 0x9b1b, 0x9b1d, 0x9b1f, 
-	0x9b20, 0x9b20, 0x9b20, 0x9b20, 0x9b21, 0x9b21, 0x9b22, 0x9b22, 
-	0x9b23, 0x9b24, 0x9b25, 0x9b25, 0x9b26, 0x9b27, 0x9b28, 0x9b29, 
-	0x9b2a, 0x9b2b, 0x9b2c, 0x9b2e, 0x9b2f, 0x9b30, 0x9b31, 0x9b33, 
-	0x9b34, 0x9b35, 0x9b37, 0x9b38, 0x9b3a, 0x9b3b, 0x9b3d, 0x9b3f, 
-	0x9b40, 0x9b40, 0x9b40, 0x9b40, 0x9b41, 0x9b41, 0x9b42, 0x9b42, 
-	0x9b43, 0x9b44, 0x9b45, 0x9b45, 0x9b46, 0x9b47, 0x9b48, 0x9b49, 
-	0x9b4a, 0x9b4b, 0x9b4c, 0x9b4e, 0x9b4f, 0x9b50, 0x9b51, 0x9b53, 
-	0x9b54, 0x9b55, 0x9b57, 0x9b58, 0x9b5a, 0x9b5b, 0x9b5d, 0x9b5f, 
-	0x9b80, 0x9b80, 0x9b80, 0x9b80, 0x9b81, 0x9b81, 0x9b82, 0x9b82, 
-	0x9b83, 0x9b84, 0x9b85, 0x9b85, 0x9b86, 0x9b87, 0x9b88, 0x9b89, 
-	0x9b8a, 0x9b8b, 0x9b8c, 0x9b8e, 0x9b8f, 0x9b90, 0x9b91, 0x9b93, 
-	0x9b94, 0x9b95, 0x9b97, 0x9b98, 0x9b9a, 0x9b9b, 0x9b9d, 0x9b9f, 
-	0x9ba0, 0x9ba0, 0x9ba0, 0x9ba0, 0x9ba1, 0x9ba1, 0x9ba2, 0x9ba2, 
-	0x9ba3, 0x9ba4, 0x9ba5, 0x9ba5, 0x9ba6, 0x9ba7, 0x9ba8, 0x9ba9, 
-	0x9baa, 0x9bab, 0x9bac, 0x9bae, 0x9baf, 0x9bb0, 0x9bb1, 0x9bb3, 
-	0x9bb4, 0x9bb5, 0x9bb7, 0x9bb8, 0x9bba, 0x9bbb, 0x9bbd, 0x9bbf, 
-	0x9bc0, 0x9bc0, 0x9bc0, 0x9bc0, 0x9bc1, 0x9bc1, 0x9bc2, 0x9bc2, 
-	0x9bc3, 0x9bc4, 0x9bc5, 0x9bc5, 0x9bc6, 0x9bc7, 0x9bc8, 0x9bc9, 
-	0x9bca, 0x9bcb, 0x9bcc, 0x9bce, 0x9bcf, 0x9bd0, 0x9bd1, 0x9bd3, 
-	0x9bd4, 0x9bd5, 0x9bd7, 0x9bd8, 0x9bda, 0x9bdb, 0x9bdd, 0x9bdf, 
-	0x9be0, 0x9be0, 0x9be0, 0x9be0, 0x9be1, 0x9be1, 0x9be2, 0x9be2, 
-	0x9be3, 0x9be4, 0x9be5, 0x9be5, 0x9be6, 0x9be7, 0x9be8, 0x9be9, 
-	0x9bea, 0x9beb, 0x9bec, 0x9bee, 0x9bef, 0x9bf0, 0x9bf1, 0x9bf3, 
-	0x9bf4, 0x9bf5, 0x9bf7, 0x9bf8, 0x9bfa, 0x9bfb, 0x9bfd, 0x9bff, 
-	0x9c00, 0x9c00, 0x9c00, 0x9c00, 0x9c01, 0x9c01, 0x9c02, 0x9c02, 
-	0x9c03, 0x9c04, 0x9c05, 0x9c05, 0x9c06, 0x9c07, 0x9c08, 0x9c09, 
-	0x9c0a, 0x9c0b, 0x9c0c, 0x9c0e, 0x9c0f, 0x9c10, 0x9c11, 0x9c13, 
-	0x9c14, 0x9c15, 0x9c17, 0x9c18, 0x9c1a, 0x9c1b, 0x9c1d, 0x9c1f, 
-	0x9c40, 0x9c40, 0x9c40, 0x9c40, 0x9c41, 0x9c41, 0x9c42, 0x9c42, 
-	0x9c43, 0x9c44, 0x9c45, 0x9c45, 0x9c46, 0x9c47, 0x9c48, 0x9c49, 
-	0x9c4a, 0x9c4b, 0x9c4c, 0x9c4e, 0x9c4f, 0x9c50, 0x9c51, 0x9c53, 
-	0x9c54, 0x9c55, 0x9c57, 0x9c58, 0x9c5a, 0x9c5b, 0x9c5d, 0x9c5f, 
-	0x9c60, 0x9c60, 0x9c60, 0x9c60, 0x9c61, 0x9c61, 0x9c62, 0x9c62, 
-	0x9c63, 0x9c64, 0x9c65, 0x9c65, 0x9c66, 0x9c67, 0x9c68, 0x9c69, 
-	0x9c6a, 0x9c6b, 0x9c6c, 0x9c6e, 0x9c6f, 0x9c70, 0x9c71, 0x9c73, 
-	0x9c74, 0x9c75, 0x9c77, 0x9c78, 0x9c7a, 0x9c7b, 0x9c7d, 0x9c7f, 
-	0x9c80, 0x9c80, 0x9c80, 0x9c80, 0x9c81, 0x9c81, 0x9c82, 0x9c82, 
-	0x9c83, 0x9c84, 0x9c85, 0x9c85, 0x9c86, 0x9c87, 0x9c88, 0x9c89, 
-	0x9c8a, 0x9c8b, 0x9c8c, 0x9c8e, 0x9c8f, 0x9c90, 0x9c91, 0x9c93, 
-	0x9c94, 0x9c95, 0x9c97, 0x9c98, 0x9c9a, 0x9c9b, 0x9c9d, 0x9c9f, 
-	0x9cc0, 0x9cc0, 0x9cc0, 0x9cc0, 0x9cc1, 0x9cc1, 0x9cc2, 0x9cc2, 
-	0x9cc3, 0x9cc4, 0x9cc5, 0x9cc5, 0x9cc6, 0x9cc7, 0x9cc8, 0x9cc9, 
-	0x9cca, 0x9ccb, 0x9ccc, 0x9cce, 0x9ccf, 0x9cd0, 0x9cd1, 0x9cd3, 
-	0x9cd4, 0x9cd5, 0x9cd7, 0x9cd8, 0x9cda, 0x9cdb, 0x9cdd, 0x9cdf, 
-	0x9ce0, 0x9ce0, 0x9ce0, 0x9ce0, 0x9ce1, 0x9ce1, 0x9ce2, 0x9ce2, 
-	0x9ce3, 0x9ce4, 0x9ce5, 0x9ce5, 0x9ce6, 0x9ce7, 0x9ce8, 0x9ce9, 
-	0x9cea, 0x9ceb, 0x9cec, 0x9cee, 0x9cef, 0x9cf0, 0x9cf1, 0x9cf3, 
-	0x9cf4, 0x9cf5, 0x9cf7, 0x9cf8, 0x9cfa, 0x9cfb, 0x9cfd, 0x9cff, 
-	0x9d00, 0x9d00, 0x9d00, 0x9d00, 0x9d01, 0x9d01, 0x9d02, 0x9d02, 
-	0x9d03, 0x9d04, 0x9d05, 0x9d05, 0x9d06, 0x9d07, 0x9d08, 0x9d09, 
-	0x9d0a, 0x9d0b, 0x9d0c, 0x9d0e, 0x9d0f, 0x9d10, 0x9d11, 0x9d13, 
-	0x9d14, 0x9d15, 0x9d17, 0x9d18, 0x9d1a, 0x9d1b, 0x9d1d, 0x9d1f, 
-	0x9d40, 0x9d40, 0x9d40, 0x9d40, 0x9d41, 0x9d41, 0x9d42, 0x9d42, 
-	0x9d43, 0x9d44, 0x9d45, 0x9d45, 0x9d46, 0x9d47, 0x9d48, 0x9d49, 
-	0x9d4a, 0x9d4b, 0x9d4c, 0x9d4e, 0x9d4f, 0x9d50, 0x9d51, 0x9d53, 
-	0x9d54, 0x9d55, 0x9d57, 0x9d58, 0x9d5a, 0x9d5b, 0x9d5d, 0x9d5f, 
-	0x9d60, 0x9d60, 0x9d60, 0x9d60, 0x9d61, 0x9d61, 0x9d62, 0x9d62, 
-	0x9d63, 0x9d64, 0x9d65, 0x9d65, 0x9d66, 0x9d67, 0x9d68, 0x9d69, 
-	0x9d6a, 0x9d6b, 0x9d6c, 0x9d6e, 0x9d6f, 0x9d70, 0x9d71, 0x9d73, 
-	0x9d74, 0x9d75, 0x9d77, 0x9d78, 0x9d7a, 0x9d7b, 0x9d7d, 0x9d7f, 
-	0x9d80, 0x9d80, 0x9d80, 0x9d80, 0x9d81, 0x9d81, 0x9d82, 0x9d82, 
-	0x9d83, 0x9d84, 0x9d85, 0x9d85, 0x9d86, 0x9d87, 0x9d88, 0x9d89, 
-	0x9d8a, 0x9d8b, 0x9d8c, 0x9d8e, 0x9d8f, 0x9d90, 0x9d91, 0x9d93, 
-	0x9d94, 0x9d95, 0x9d97, 0x9d98, 0x9d9a, 0x9d9b, 0x9d9d, 0x9d9f, 
-	0x9dc0, 0x9dc0, 0x9dc0, 0x9dc0, 0x9dc1, 0x9dc1, 0x9dc2, 0x9dc2, 
-	0x9dc3, 0x9dc4, 0x9dc5, 0x9dc5, 0x9dc6, 0x9dc7, 0x9dc8, 0x9dc9, 
-	0x9dca, 0x9dcb, 0x9dcc, 0x9dce, 0x9dcf, 0x9dd0, 0x9dd1, 0x9dd3, 
-	0x9dd4, 0x9dd5, 0x9dd7, 0x9dd8, 0x9dda, 0x9ddb, 0x9ddd, 0x9ddf, 
-	0x9de0, 0x9de0, 0x9de0, 0x9de0, 0x9de1, 0x9de1, 0x9de2, 0x9de2, 
-	0x9de3, 0x9de4, 0x9de5, 0x9de5, 0x9de6, 0x9de7, 0x9de8, 0x9de9, 
-	0x9dea, 0x9deb, 0x9dec, 0x9dee, 0x9def, 0x9df0, 0x9df1, 0x9df3, 
-	0x9df4, 0x9df5, 0x9df7, 0x9df8, 0x9dfa, 0x9dfb, 0x9dfd, 0x9dff, 
-	0x9e20, 0x9e20, 0x9e20, 0x9e20, 0x9e21, 0x9e21, 0x9e22, 0x9e22, 
-	0x9e23, 0x9e24, 0x9e25, 0x9e25, 0x9e26, 0x9e27, 0x9e28, 0x9e29, 
-	0x9e2a, 0x9e2b, 0x9e2c, 0x9e2e, 0x9e2f, 0x9e30, 0x9e31, 0x9e33, 
-	0x9e34, 0x9e35, 0x9e37, 0x9e38, 0x9e3a, 0x9e3b, 0x9e3d, 0x9e3f, 
-	0x9e40, 0x9e40, 0x9e40, 0x9e40, 0x9e41, 0x9e41, 0x9e42, 0x9e42, 
-	0x9e43, 0x9e44, 0x9e45, 0x9e45, 0x9e46, 0x9e47, 0x9e48, 0x9e49, 
-	0x9e4a, 0x9e4b, 0x9e4c, 0x9e4e, 0x9e4f, 0x9e50, 0x9e51, 0x9e53, 
-	0x9e54, 0x9e55, 0x9e57, 0x9e58, 0x9e5a, 0x9e5b, 0x9e5d, 0x9e5f, 
-	0x9e80, 0x9e80, 0x9e80, 0x9e80, 0x9e81, 0x9e81, 0x9e82, 0x9e82, 
-	0x9e83, 0x9e84, 0x9e85, 0x9e85, 0x9e86, 0x9e87, 0x9e88, 0x9e89, 
-	0x9e8a, 0x9e8b, 0x9e8c, 0x9e8e, 0x9e8f, 0x9e90, 0x9e91, 0x9e93, 
-	0x9e94, 0x9e95, 0x9e97, 0x9e98, 0x9e9a, 0x9e9b, 0x9e9d, 0x9e9f, 
-	0x9ea0, 0x9ea0, 0x9ea0, 0x9ea0, 0x9ea1, 0x9ea1, 0x9ea2, 0x9ea2, 
-	0x9ea3, 0x9ea4, 0x9ea5, 0x9ea5, 0x9ea6, 0x9ea7, 0x9ea8, 0x9ea9, 
-	0x9eaa, 0x9eab, 0x9eac, 0x9eae, 0x9eaf, 0x9eb0, 0x9eb1, 0x9eb3, 
-	0x9eb4, 0x9eb5, 0x9eb7, 0x9eb8, 0x9eba, 0x9ebb, 0x9ebd, 0x9ebf, 
-	0x9ee0, 0x9ee0, 0x9ee0, 0x9ee0, 0x9ee1, 0x9ee1, 0x9ee2, 0x9ee2, 
-	0x9ee3, 0x9ee4, 0x9ee5, 0x9ee5, 0x9ee6, 0x9ee7, 0x9ee8, 0x9ee9, 
-	0x9eea, 0x9eeb, 0x9eec, 0x9eee, 0x9eef, 0x9ef0, 0x9ef1, 0x9ef3, 
-	0x9ef4, 0x9ef5, 0x9ef7, 0x9ef8, 0x9efa, 0x9efb, 0x9efd, 0x9eff, 
-	0x9f00, 0x9f00, 0x9f00, 0x9f00, 0x9f01, 0x9f01, 0x9f02, 0x9f02, 
-	0x9f03, 0x9f04, 0x9f05, 0x9f05, 0x9f06, 0x9f07, 0x9f08, 0x9f09, 
-	0x9f0a, 0x9f0b, 0x9f0c, 0x9f0e, 0x9f0f, 0x9f10, 0x9f11, 0x9f13, 
-	0x9f14, 0x9f15, 0x9f17, 0x9f18, 0x9f1a, 0x9f1b, 0x9f1d, 0x9f1f, 
-	0x9f40, 0x9f40, 0x9f40, 0x9f40, 0x9f41, 0x9f41, 0x9f42, 0x9f42, 
-	0x9f43, 0x9f44, 0x9f45, 0x9f45, 0x9f46, 0x9f47, 0x9f48, 0x9f49, 
-	0x9f4a, 0x9f4b, 0x9f4c, 0x9f4e, 0x9f4f, 0x9f50, 0x9f51, 0x9f53, 
-	0x9f54, 0x9f55, 0x9f57, 0x9f58, 0x9f5a, 0x9f5b, 0x9f5d, 0x9f5f, 
-	0x9f60, 0x9f60, 0x9f60, 0x9f60, 0x9f61, 0x9f61, 0x9f62, 0x9f62, 
-	0x9f63, 0x9f64, 0x9f65, 0x9f65, 0x9f66, 0x9f67, 0x9f68, 0x9f69, 
-	0x9f6a, 0x9f6b, 0x9f6c, 0x9f6e, 0x9f6f, 0x9f70, 0x9f71, 0x9f73, 
-	0x9f74, 0x9f75, 0x9f77, 0x9f78, 0x9f7a, 0x9f7b, 0x9f7d, 0x9f7f, 
-	0x9fa0, 0x9fa0, 0x9fa0, 0x9fa0, 0x9fa1, 0x9fa1, 0x9fa2, 0x9fa2, 
-	0x9fa3, 0x9fa4, 0x9fa5, 0x9fa5, 0x9fa6, 0x9fa7, 0x9fa8, 0x9fa9, 
-	0x9faa, 0x9fab, 0x9fac, 0x9fae, 0x9faf, 0x9fb0, 0x9fb1, 0x9fb3, 
-	0x9fb4, 0x9fb5, 0x9fb7, 0x9fb8, 0x9fba, 0x9fbb, 0x9fbd, 0x9fbf, 
-	0x9fe0, 0x9fe0, 0x9fe0, 0x9fe0, 0x9fe1, 0x9fe1, 0x9fe2, 0x9fe2, 
-	0x9fe3, 0x9fe4, 0x9fe5, 0x9fe5, 0x9fe6, 0x9fe7, 0x9fe8, 0x9fe9, 
-	0x9fea, 0x9feb, 0x9fec, 0x9fee, 0x9fef, 0x9ff0, 0x9ff1, 0x9ff3, 
-	0x9ff4, 0x9ff5, 0x9ff7, 0x9ff8, 0x9ffa, 0x9ffb, 0x9ffd, 0x9fff, 
-	0xa000, 0xa000, 0xa000, 0xa000, 0xa001, 0xa001, 0xa002, 0xa002, 
-	0xa003, 0xa004, 0xa005, 0xa005, 0xa006, 0xa007, 0xa008, 0xa009, 
-	0xa00a, 0xa00b, 0xa00c, 0xa00e, 0xa00f, 0xa010, 0xa011, 0xa013, 
-	0xa014, 0xa015, 0xa017, 0xa018, 0xa01a, 0xa01b, 0xa01d, 0xa01f, 
-	0xa000, 0xa000, 0xa000, 0xa000, 0xa001, 0xa001, 0xa002, 0xa002, 
-	0xa003, 0xa004, 0xa005, 0xa005, 0xa006, 0xa007, 0xa008, 0xa009, 
-	0xa00a, 0xa00b, 0xa00c, 0xa00e, 0xa00f, 0xa010, 0xa011, 0xa013, 
-	0xa014, 0xa015, 0xa017, 0xa018, 0xa01a, 0xa01b, 0xa01d, 0xa01f, 
-	0xa000, 0xa000, 0xa000, 0xa000, 0xa001, 0xa001, 0xa002, 0xa002, 
-	0xa003, 0xa004, 0xa005, 0xa005, 0xa006, 0xa007, 0xa008, 0xa009, 
-	0xa00a, 0xa00b, 0xa00c, 0xa00e, 0xa00f, 0xa010, 0xa011, 0xa013, 
-	0xa014, 0xa015, 0xa017, 0xa018, 0xa01a, 0xa01b, 0xa01d, 0xa01f, 
-	0xa000, 0xa000, 0xa000, 0xa000, 0xa001, 0xa001, 0xa002, 0xa002, 
-	0xa003, 0xa004, 0xa005, 0xa005, 0xa006, 0xa007, 0xa008, 0xa009, 
-	0xa00a, 0xa00b, 0xa00c, 0xa00e, 0xa00f, 0xa010, 0xa011, 0xa013, 
-	0xa014, 0xa015, 0xa017, 0xa018, 0xa01a, 0xa01b, 0xa01d, 0xa01f, 
-	0xa000, 0xa000, 0xa000, 0xa000, 0xa001, 0xa001, 0xa002, 0xa002, 
-	0xa003, 0xa004, 0xa005, 0xa005, 0xa006, 0xa007, 0xa008, 0xa009, 
-	0xa00a, 0xa00b, 0xa00c, 0xa00e, 0xa00f, 0xa010, 0xa011, 0xa013, 
-	0xa014, 0xa015, 0xa017, 0xa018, 0xa01a, 0xa01b, 0xa01d, 0xa01f, 
-	0xa020, 0xa020, 0xa020, 0xa020, 0xa021, 0xa021, 0xa022, 0xa022, 
-	0xa023, 0xa024, 0xa025, 0xa025, 0xa026, 0xa027, 0xa028, 0xa029, 
-	0xa02a, 0xa02b, 0xa02c, 0xa02e, 0xa02f, 0xa030, 0xa031, 0xa033, 
-	0xa034, 0xa035, 0xa037, 0xa038, 0xa03a, 0xa03b, 0xa03d, 0xa03f, 
-	0xa020, 0xa020, 0xa020, 0xa020, 0xa021, 0xa021, 0xa022, 0xa022, 
-	0xa023, 0xa024, 0xa025, 0xa025, 0xa026, 0xa027, 0xa028, 0xa029, 
-	0xa02a, 0xa02b, 0xa02c, 0xa02e, 0xa02f, 0xa030, 0xa031, 0xa033, 
-	0xa034, 0xa035, 0xa037, 0xa038, 0xa03a, 0xa03b, 0xa03d, 0xa03f, 
-	0xa020, 0xa020, 0xa020, 0xa020, 0xa021, 0xa021, 0xa022, 0xa022, 
-	0xa023, 0xa024, 0xa025, 0xa025, 0xa026, 0xa027, 0xa028, 0xa029, 
-	0xa02a, 0xa02b, 0xa02c, 0xa02e, 0xa02f, 0xa030, 0xa031, 0xa033, 
-	0xa034, 0xa035, 0xa037, 0xa038, 0xa03a, 0xa03b, 0xa03d, 0xa03f, 
-	0xa040, 0xa040, 0xa040, 0xa040, 0xa041, 0xa041, 0xa042, 0xa042, 
-	0xa043, 0xa044, 0xa045, 0xa045, 0xa046, 0xa047, 0xa048, 0xa049, 
-	0xa04a, 0xa04b, 0xa04c, 0xa04e, 0xa04f, 0xa050, 0xa051, 0xa053, 
-	0xa054, 0xa055, 0xa057, 0xa058, 0xa05a, 0xa05b, 0xa05d, 0xa05f, 
-	0xa040, 0xa040, 0xa040, 0xa040, 0xa041, 0xa041, 0xa042, 0xa042, 
-	0xa043, 0xa044, 0xa045, 0xa045, 0xa046, 0xa047, 0xa048, 0xa049, 
-	0xa04a, 0xa04b, 0xa04c, 0xa04e, 0xa04f, 0xa050, 0xa051, 0xa053, 
-	0xa054, 0xa055, 0xa057, 0xa058, 0xa05a, 0xa05b, 0xa05d, 0xa05f, 
-	0xa060, 0xa060, 0xa060, 0xa060, 0xa061, 0xa061, 0xa062, 0xa062, 
-	0xa063, 0xa064, 0xa065, 0xa065, 0xa066, 0xa067, 0xa068, 0xa069, 
-	0xa06a, 0xa06b, 0xa06c, 0xa06e, 0xa06f, 0xa070, 0xa071, 0xa073, 
-	0xa074, 0xa075, 0xa077, 0xa078, 0xa07a, 0xa07b, 0xa07d, 0xa07f, 
-	0xa060, 0xa060, 0xa060, 0xa060, 0xa061, 0xa061, 0xa062, 0xa062, 
-	0xa063, 0xa064, 0xa065, 0xa065, 0xa066, 0xa067, 0xa068, 0xa069, 
-	0xa06a, 0xa06b, 0xa06c, 0xa06e, 0xa06f, 0xa070, 0xa071, 0xa073, 
-	0xa074, 0xa075, 0xa077, 0xa078, 0xa07a, 0xa07b, 0xa07d, 0xa07f, 
-	0xa080, 0xa080, 0xa080, 0xa080, 0xa081, 0xa081, 0xa082, 0xa082, 
-	0xa083, 0xa084, 0xa085, 0xa085, 0xa086, 0xa087, 0xa088, 0xa089, 
-	0xa08a, 0xa08b, 0xa08c, 0xa08e, 0xa08f, 0xa090, 0xa091, 0xa093, 
-	0xa094, 0xa095, 0xa097, 0xa098, 0xa09a, 0xa09b, 0xa09d, 0xa09f, 
-	0xa0a0, 0xa0a0, 0xa0a0, 0xa0a0, 0xa0a1, 0xa0a1, 0xa0a2, 0xa0a2, 
-	0xa0a3, 0xa0a4, 0xa0a5, 0xa0a5, 0xa0a6, 0xa0a7, 0xa0a8, 0xa0a9, 
-	0xa0aa, 0xa0ab, 0xa0ac, 0xa0ae, 0xa0af, 0xa0b0, 0xa0b1, 0xa0b3, 
-	0xa0b4, 0xa0b5, 0xa0b7, 0xa0b8, 0xa0ba, 0xa0bb, 0xa0bd, 0xa0bf, 
-	0xa0a0, 0xa0a0, 0xa0a0, 0xa0a0, 0xa0a1, 0xa0a1, 0xa0a2, 0xa0a2, 
-	0xa0a3, 0xa0a4, 0xa0a5, 0xa0a5, 0xa0a6, 0xa0a7, 0xa0a8, 0xa0a9, 
-	0xa0aa, 0xa0ab, 0xa0ac, 0xa0ae, 0xa0af, 0xa0b0, 0xa0b1, 0xa0b3, 
-	0xa0b4, 0xa0b5, 0xa0b7, 0xa0b8, 0xa0ba, 0xa0bb, 0xa0bd, 0xa0bf, 
-	0xa0c0, 0xa0c0, 0xa0c0, 0xa0c0, 0xa0c1, 0xa0c1, 0xa0c2, 0xa0c2, 
-	0xa0c3, 0xa0c4, 0xa0c5, 0xa0c5, 0xa0c6, 0xa0c7, 0xa0c8, 0xa0c9, 
-	0xa0ca, 0xa0cb, 0xa0cc, 0xa0ce, 0xa0cf, 0xa0d0, 0xa0d1, 0xa0d3, 
-	0xa0d4, 0xa0d5, 0xa0d7, 0xa0d8, 0xa0da, 0xa0db, 0xa0dd, 0xa0df, 
-	0xa0e0, 0xa0e0, 0xa0e0, 0xa0e0, 0xa0e1, 0xa0e1, 0xa0e2, 0xa0e2, 
-	0xa0e3, 0xa0e4, 0xa0e5, 0xa0e5, 0xa0e6, 0xa0e7, 0xa0e8, 0xa0e9, 
-	0xa0ea, 0xa0eb, 0xa0ec, 0xa0ee, 0xa0ef, 0xa0f0, 0xa0f1, 0xa0f3, 
-	0xa0f4, 0xa0f5, 0xa0f7, 0xa0f8, 0xa0fa, 0xa0fb, 0xa0fd, 0xa0ff, 
-	0xa0e0, 0xa0e0, 0xa0e0, 0xa0e0, 0xa0e1, 0xa0e1, 0xa0e2, 0xa0e2, 
-	0xa0e3, 0xa0e4, 0xa0e5, 0xa0e5, 0xa0e6, 0xa0e7, 0xa0e8, 0xa0e9, 
-	0xa0ea, 0xa0eb, 0xa0ec, 0xa0ee, 0xa0ef, 0xa0f0, 0xa0f1, 0xa0f3, 
-	0xa0f4, 0xa0f5, 0xa0f7, 0xa0f8, 0xa0fa, 0xa0fb, 0xa0fd, 0xa0ff, 
-	0xa100, 0xa100, 0xa100, 0xa100, 0xa101, 0xa101, 0xa102, 0xa102, 
-	0xa103, 0xa104, 0xa105, 0xa105, 0xa106, 0xa107, 0xa108, 0xa109, 
-	0xa10a, 0xa10b, 0xa10c, 0xa10e, 0xa10f, 0xa110, 0xa111, 0xa113, 
-	0xa114, 0xa115, 0xa117, 0xa118, 0xa11a, 0xa11b, 0xa11d, 0xa11f, 
-	0xa120, 0xa120, 0xa120, 0xa120, 0xa121, 0xa121, 0xa122, 0xa122, 
-	0xa123, 0xa124, 0xa125, 0xa125, 0xa126, 0xa127, 0xa128, 0xa129, 
-	0xa12a, 0xa12b, 0xa12c, 0xa12e, 0xa12f, 0xa130, 0xa131, 0xa133, 
-	0xa134, 0xa135, 0xa137, 0xa138, 0xa13a, 0xa13b, 0xa13d, 0xa13f, 
-	0xa140, 0xa140, 0xa140, 0xa140, 0xa141, 0xa141, 0xa142, 0xa142, 
-	0xa143, 0xa144, 0xa145, 0xa145, 0xa146, 0xa147, 0xa148, 0xa149, 
-	0xa14a, 0xa14b, 0xa14c, 0xa14e, 0xa14f, 0xa150, 0xa151, 0xa153, 
-	0xa154, 0xa155, 0xa157, 0xa158, 0xa15a, 0xa15b, 0xa15d, 0xa15f, 
-	0xa140, 0xa140, 0xa140, 0xa140, 0xa141, 0xa141, 0xa142, 0xa142, 
-	0xa143, 0xa144, 0xa145, 0xa145, 0xa146, 0xa147, 0xa148, 0xa149, 
-	0xa14a, 0xa14b, 0xa14c, 0xa14e, 0xa14f, 0xa150, 0xa151, 0xa153, 
-	0xa154, 0xa155, 0xa157, 0xa158, 0xa15a, 0xa15b, 0xa15d, 0xa15f, 
-	0xa160, 0xa160, 0xa160, 0xa160, 0xa161, 0xa161, 0xa162, 0xa162, 
-	0xa163, 0xa164, 0xa165, 0xa165, 0xa166, 0xa167, 0xa168, 0xa169, 
-	0xa16a, 0xa16b, 0xa16c, 0xa16e, 0xa16f, 0xa170, 0xa171, 0xa173, 
-	0xa174, 0xa175, 0xa177, 0xa178, 0xa17a, 0xa17b, 0xa17d, 0xa17f, 
-	0xa180, 0xa180, 0xa180, 0xa180, 0xa181, 0xa181, 0xa182, 0xa182, 
-	0xa183, 0xa184, 0xa185, 0xa185, 0xa186, 0xa187, 0xa188, 0xa189, 
-	0xa18a, 0xa18b, 0xa18c, 0xa18e, 0xa18f, 0xa190, 0xa191, 0xa193, 
-	0xa194, 0xa195, 0xa197, 0xa198, 0xa19a, 0xa19b, 0xa19d, 0xa19f, 
-	0xa1a0, 0xa1a0, 0xa1a0, 0xa1a0, 0xa1a1, 0xa1a1, 0xa1a2, 0xa1a2, 
-	0xa1a3, 0xa1a4, 0xa1a5, 0xa1a5, 0xa1a6, 0xa1a7, 0xa1a8, 0xa1a9, 
-	0xa1aa, 0xa1ab, 0xa1ac, 0xa1ae, 0xa1af, 0xa1b0, 0xa1b1, 0xa1b3, 
-	0xa1b4, 0xa1b5, 0xa1b7, 0xa1b8, 0xa1ba, 0xa1bb, 0xa1bd, 0xa1bf, 
-	0xa1c0, 0xa1c0, 0xa1c0, 0xa1c0, 0xa1c1, 0xa1c1, 0xa1c2, 0xa1c2, 
-	0xa1c3, 0xa1c4, 0xa1c5, 0xa1c5, 0xa1c6, 0xa1c7, 0xa1c8, 0xa1c9, 
-	0xa1ca, 0xa1cb, 0xa1cc, 0xa1ce, 0xa1cf, 0xa1d0, 0xa1d1, 0xa1d3, 
-	0xa1d4, 0xa1d5, 0xa1d7, 0xa1d8, 0xa1da, 0xa1db, 0xa1dd, 0xa1df, 
-	0xa1e0, 0xa1e0, 0xa1e0, 0xa1e0, 0xa1e1, 0xa1e1, 0xa1e2, 0xa1e2, 
-	0xa1e3, 0xa1e4, 0xa1e5, 0xa1e5, 0xa1e6, 0xa1e7, 0xa1e8, 0xa1e9, 
-	0xa1ea, 0xa1eb, 0xa1ec, 0xa1ee, 0xa1ef, 0xa1f0, 0xa1f1, 0xa1f3, 
-	0xa1f4, 0xa1f5, 0xa1f7, 0xa1f8, 0xa1fa, 0xa1fb, 0xa1fd, 0xa1ff, 
-	0xa200, 0xa200, 0xa200, 0xa200, 0xa201, 0xa201, 0xa202, 0xa202, 
-	0xa203, 0xa204, 0xa205, 0xa205, 0xa206, 0xa207, 0xa208, 0xa209, 
-	0xa20a, 0xa20b, 0xa20c, 0xa20e, 0xa20f, 0xa210, 0xa211, 0xa213, 
-	0xa214, 0xa215, 0xa217, 0xa218, 0xa21a, 0xa21b, 0xa21d, 0xa21f, 
-	0xa220, 0xa220, 0xa220, 0xa220, 0xa221, 0xa221, 0xa222, 0xa222, 
-	0xa223, 0xa224, 0xa225, 0xa225, 0xa226, 0xa227, 0xa228, 0xa229, 
-	0xa22a, 0xa22b, 0xa22c, 0xa22e, 0xa22f, 0xa230, 0xa231, 0xa233, 
-	0xa234, 0xa235, 0xa237, 0xa238, 0xa23a, 0xa23b, 0xa23d, 0xa23f, 
-	0xa240, 0xa240, 0xa240, 0xa240, 0xa241, 0xa241, 0xa242, 0xa242, 
-	0xa243, 0xa244, 0xa245, 0xa245, 0xa246, 0xa247, 0xa248, 0xa249, 
-	0xa24a, 0xa24b, 0xa24c, 0xa24e, 0xa24f, 0xa250, 0xa251, 0xa253, 
-	0xa254, 0xa255, 0xa257, 0xa258, 0xa25a, 0xa25b, 0xa25d, 0xa25f, 
-	0xa260, 0xa260, 0xa260, 0xa260, 0xa261, 0xa261, 0xa262, 0xa262, 
-	0xa263, 0xa264, 0xa265, 0xa265, 0xa266, 0xa267, 0xa268, 0xa269, 
-	0xa26a, 0xa26b, 0xa26c, 0xa26e, 0xa26f, 0xa270, 0xa271, 0xa273, 
-	0xa274, 0xa275, 0xa277, 0xa278, 0xa27a, 0xa27b, 0xa27d, 0xa27f, 
-	0xa280, 0xa280, 0xa280, 0xa280, 0xa281, 0xa281, 0xa282, 0xa282, 
-	0xa283, 0xa284, 0xa285, 0xa285, 0xa286, 0xa287, 0xa288, 0xa289, 
-	0xa28a, 0xa28b, 0xa28c, 0xa28e, 0xa28f, 0xa290, 0xa291, 0xa293, 
-	0xa294, 0xa295, 0xa297, 0xa298, 0xa29a, 0xa29b, 0xa29d, 0xa29f, 
-	0xa2a0, 0xa2a0, 0xa2a0, 0xa2a0, 0xa2a1, 0xa2a1, 0xa2a2, 0xa2a2, 
-	0xa2a3, 0xa2a4, 0xa2a5, 0xa2a5, 0xa2a6, 0xa2a7, 0xa2a8, 0xa2a9, 
-	0xa2aa, 0xa2ab, 0xa2ac, 0xa2ae, 0xa2af, 0xa2b0, 0xa2b1, 0xa2b3, 
-	0xa2b4, 0xa2b5, 0xa2b7, 0xa2b8, 0xa2ba, 0xa2bb, 0xa2bd, 0xa2bf, 
-	0xa2c0, 0xa2c0, 0xa2c0, 0xa2c0, 0xa2c1, 0xa2c1, 0xa2c2, 0xa2c2, 
-	0xa2c3, 0xa2c4, 0xa2c5, 0xa2c5, 0xa2c6, 0xa2c7, 0xa2c8, 0xa2c9, 
-	0xa2ca, 0xa2cb, 0xa2cc, 0xa2ce, 0xa2cf, 0xa2d0, 0xa2d1, 0xa2d3, 
-	0xa2d4, 0xa2d5, 0xa2d7, 0xa2d8, 0xa2da, 0xa2db, 0xa2dd, 0xa2df, 
-	0xa2e0, 0xa2e0, 0xa2e0, 0xa2e0, 0xa2e1, 0xa2e1, 0xa2e2, 0xa2e2, 
-	0xa2e3, 0xa2e4, 0xa2e5, 0xa2e5, 0xa2e6, 0xa2e7, 0xa2e8, 0xa2e9, 
-	0xa2ea, 0xa2eb, 0xa2ec, 0xa2ee, 0xa2ef, 0xa2f0, 0xa2f1, 0xa2f3, 
-	0xa2f4, 0xa2f5, 0xa2f7, 0xa2f8, 0xa2fa, 0xa2fb, 0xa2fd, 0xa2ff, 
-	0xa300, 0xa300, 0xa300, 0xa300, 0xa301, 0xa301, 0xa302, 0xa302, 
-	0xa303, 0xa304, 0xa305, 0xa305, 0xa306, 0xa307, 0xa308, 0xa309, 
-	0xa30a, 0xa30b, 0xa30c, 0xa30e, 0xa30f, 0xa310, 0xa311, 0xa313, 
-	0xa314, 0xa315, 0xa317, 0xa318, 0xa31a, 0xa31b, 0xa31d, 0xa31f, 
-	0xa320, 0xa320, 0xa320, 0xa320, 0xa321, 0xa321, 0xa322, 0xa322, 
-	0xa323, 0xa324, 0xa325, 0xa325, 0xa326, 0xa327, 0xa328, 0xa329, 
-	0xa32a, 0xa32b, 0xa32c, 0xa32e, 0xa32f, 0xa330, 0xa331, 0xa333, 
-	0xa334, 0xa335, 0xa337, 0xa338, 0xa33a, 0xa33b, 0xa33d, 0xa33f, 
-	0xa340, 0xa340, 0xa340, 0xa340, 0xa341, 0xa341, 0xa342, 0xa342, 
-	0xa343, 0xa344, 0xa345, 0xa345, 0xa346, 0xa347, 0xa348, 0xa349, 
-	0xa34a, 0xa34b, 0xa34c, 0xa34e, 0xa34f, 0xa350, 0xa351, 0xa353, 
-	0xa354, 0xa355, 0xa357, 0xa358, 0xa35a, 0xa35b, 0xa35d, 0xa35f, 
-	0xa380, 0xa380, 0xa380, 0xa380, 0xa381, 0xa381, 0xa382, 0xa382, 
-	0xa383, 0xa384, 0xa385, 0xa385, 0xa386, 0xa387, 0xa388, 0xa389, 
-	0xa38a, 0xa38b, 0xa38c, 0xa38e, 0xa38f, 0xa390, 0xa391, 0xa393, 
-	0xa394, 0xa395, 0xa397, 0xa398, 0xa39a, 0xa39b, 0xa39d, 0xa39f, 
-	0xa3a0, 0xa3a0, 0xa3a0, 0xa3a0, 0xa3a1, 0xa3a1, 0xa3a2, 0xa3a2, 
-	0xa3a3, 0xa3a4, 0xa3a5, 0xa3a5, 0xa3a6, 0xa3a7, 0xa3a8, 0xa3a9, 
-	0xa3aa, 0xa3ab, 0xa3ac, 0xa3ae, 0xa3af, 0xa3b0, 0xa3b1, 0xa3b3, 
-	0xa3b4, 0xa3b5, 0xa3b7, 0xa3b8, 0xa3ba, 0xa3bb, 0xa3bd, 0xa3bf, 
-	0xa3c0, 0xa3c0, 0xa3c0, 0xa3c0, 0xa3c1, 0xa3c1, 0xa3c2, 0xa3c2, 
-	0xa3c3, 0xa3c4, 0xa3c5, 0xa3c5, 0xa3c6, 0xa3c7, 0xa3c8, 0xa3c9, 
-	0xa3ca, 0xa3cb, 0xa3cc, 0xa3ce, 0xa3cf, 0xa3d0, 0xa3d1, 0xa3d3, 
-	0xa3d4, 0xa3d5, 0xa3d7, 0xa3d8, 0xa3da, 0xa3db, 0xa3dd, 0xa3df, 
-	0xa3e0, 0xa3e0, 0xa3e0, 0xa3e0, 0xa3e1, 0xa3e1, 0xa3e2, 0xa3e2, 
-	0xa3e3, 0xa3e4, 0xa3e5, 0xa3e5, 0xa3e6, 0xa3e7, 0xa3e8, 0xa3e9, 
-	0xa3ea, 0xa3eb, 0xa3ec, 0xa3ee, 0xa3ef, 0xa3f0, 0xa3f1, 0xa3f3, 
-	0xa3f4, 0xa3f5, 0xa3f7, 0xa3f8, 0xa3fa, 0xa3fb, 0xa3fd, 0xa3ff, 
-	0xa400, 0xa400, 0xa400, 0xa400, 0xa401, 0xa401, 0xa402, 0xa402, 
-	0xa403, 0xa404, 0xa405, 0xa405, 0xa406, 0xa407, 0xa408, 0xa409, 
-	0xa40a, 0xa40b, 0xa40c, 0xa40e, 0xa40f, 0xa410, 0xa411, 0xa413, 
-	0xa414, 0xa415, 0xa417, 0xa418, 0xa41a, 0xa41b, 0xa41d, 0xa41f, 
-	0xa440, 0xa440, 0xa440, 0xa440, 0xa441, 0xa441, 0xa442, 0xa442, 
-	0xa443, 0xa444, 0xa445, 0xa445, 0xa446, 0xa447, 0xa448, 0xa449, 
-	0xa44a, 0xa44b, 0xa44c, 0xa44e, 0xa44f, 0xa450, 0xa451, 0xa453, 
-	0xa454, 0xa455, 0xa457, 0xa458, 0xa45a, 0xa45b, 0xa45d, 0xa45f, 
-	0xa460, 0xa460, 0xa460, 0xa460, 0xa461, 0xa461, 0xa462, 0xa462, 
-	0xa463, 0xa464, 0xa465, 0xa465, 0xa466, 0xa467, 0xa468, 0xa469, 
-	0xa46a, 0xa46b, 0xa46c, 0xa46e, 0xa46f, 0xa470, 0xa471, 0xa473, 
-	0xa474, 0xa475, 0xa477, 0xa478, 0xa47a, 0xa47b, 0xa47d, 0xa47f, 
-	0xa480, 0xa480, 0xa480, 0xa480, 0xa481, 0xa481, 0xa482, 0xa482, 
-	0xa483, 0xa484, 0xa485, 0xa485, 0xa486, 0xa487, 0xa488, 0xa489, 
-	0xa48a, 0xa48b, 0xa48c, 0xa48e, 0xa48f, 0xa490, 0xa491, 0xa493, 
-	0xa494, 0xa495, 0xa497, 0xa498, 0xa49a, 0xa49b, 0xa49d, 0xa49f, 
-	0xa4c0, 0xa4c0, 0xa4c0, 0xa4c0, 0xa4c1, 0xa4c1, 0xa4c2, 0xa4c2, 
-	0xa4c3, 0xa4c4, 0xa4c5, 0xa4c5, 0xa4c6, 0xa4c7, 0xa4c8, 0xa4c9, 
-	0xa4ca, 0xa4cb, 0xa4cc, 0xa4ce, 0xa4cf, 0xa4d0, 0xa4d1, 0xa4d3, 
-	0xa4d4, 0xa4d5, 0xa4d7, 0xa4d8, 0xa4da, 0xa4db, 0xa4dd, 0xa4df, 
-	0xa4e0, 0xa4e0, 0xa4e0, 0xa4e0, 0xa4e1, 0xa4e1, 0xa4e2, 0xa4e2, 
-	0xa4e3, 0xa4e4, 0xa4e5, 0xa4e5, 0xa4e6, 0xa4e7, 0xa4e8, 0xa4e9, 
-	0xa4ea, 0xa4eb, 0xa4ec, 0xa4ee, 0xa4ef, 0xa4f0, 0xa4f1, 0xa4f3, 
-	0xa4f4, 0xa4f5, 0xa4f7, 0xa4f8, 0xa4fa, 0xa4fb, 0xa4fd, 0xa4ff, 
-	0xa500, 0xa500, 0xa500, 0xa500, 0xa501, 0xa501, 0xa502, 0xa502, 
-	0xa503, 0xa504, 0xa505, 0xa505, 0xa506, 0xa507, 0xa508, 0xa509, 
-	0xa50a, 0xa50b, 0xa50c, 0xa50e, 0xa50f, 0xa510, 0xa511, 0xa513, 
-	0xa514, 0xa515, 0xa517, 0xa518, 0xa51a, 0xa51b, 0xa51d, 0xa51f, 
-	0xa540, 0xa540, 0xa540, 0xa540, 0xa541, 0xa541, 0xa542, 0xa542, 
-	0xa543, 0xa544, 0xa545, 0xa545, 0xa546, 0xa547, 0xa548, 0xa549, 
-	0xa54a, 0xa54b, 0xa54c, 0xa54e, 0xa54f, 0xa550, 0xa551, 0xa553, 
-	0xa554, 0xa555, 0xa557, 0xa558, 0xa55a, 0xa55b, 0xa55d, 0xa55f, 
-	0xa560, 0xa560, 0xa560, 0xa560, 0xa561, 0xa561, 0xa562, 0xa562, 
-	0xa563, 0xa564, 0xa565, 0xa565, 0xa566, 0xa567, 0xa568, 0xa569, 
-	0xa56a, 0xa56b, 0xa56c, 0xa56e, 0xa56f, 0xa570, 0xa571, 0xa573, 
-	0xa574, 0xa575, 0xa577, 0xa578, 0xa57a, 0xa57b, 0xa57d, 0xa57f, 
-	0xa580, 0xa580, 0xa580, 0xa580, 0xa581, 0xa581, 0xa582, 0xa582, 
-	0xa583, 0xa584, 0xa585, 0xa585, 0xa586, 0xa587, 0xa588, 0xa589, 
-	0xa58a, 0xa58b, 0xa58c, 0xa58e, 0xa58f, 0xa590, 0xa591, 0xa593, 
-	0xa594, 0xa595, 0xa597, 0xa598, 0xa59a, 0xa59b, 0xa59d, 0xa59f, 
-	0xa5c0, 0xa5c0, 0xa5c0, 0xa5c0, 0xa5c1, 0xa5c1, 0xa5c2, 0xa5c2, 
-	0xa5c3, 0xa5c4, 0xa5c5, 0xa5c5, 0xa5c6, 0xa5c7, 0xa5c8, 0xa5c9, 
-	0xa5ca, 0xa5cb, 0xa5cc, 0xa5ce, 0xa5cf, 0xa5d0, 0xa5d1, 0xa5d3, 
-	0xa5d4, 0xa5d5, 0xa5d7, 0xa5d8, 0xa5da, 0xa5db, 0xa5dd, 0xa5df, 
-	0xa5e0, 0xa5e0, 0xa5e0, 0xa5e0, 0xa5e1, 0xa5e1, 0xa5e2, 0xa5e2, 
-	0xa5e3, 0xa5e4, 0xa5e5, 0xa5e5, 0xa5e6, 0xa5e7, 0xa5e8, 0xa5e9, 
-	0xa5ea, 0xa5eb, 0xa5ec, 0xa5ee, 0xa5ef, 0xa5f0, 0xa5f1, 0xa5f3, 
-	0xa5f4, 0xa5f5, 0xa5f7, 0xa5f8, 0xa5fa, 0xa5fb, 0xa5fd, 0xa5ff, 
-	0xa620, 0xa620, 0xa620, 0xa620, 0xa621, 0xa621, 0xa622, 0xa622, 
-	0xa623, 0xa624, 0xa625, 0xa625, 0xa626, 0xa627, 0xa628, 0xa629, 
-	0xa62a, 0xa62b, 0xa62c, 0xa62e, 0xa62f, 0xa630, 0xa631, 0xa633, 
-	0xa634, 0xa635, 0xa637, 0xa638, 0xa63a, 0xa63b, 0xa63d, 0xa63f, 
-	0xa640, 0xa640, 0xa640, 0xa640, 0xa641, 0xa641, 0xa642, 0xa642, 
-	0xa643, 0xa644, 0xa645, 0xa645, 0xa646, 0xa647, 0xa648, 0xa649, 
-	0xa64a, 0xa64b, 0xa64c, 0xa64e, 0xa64f, 0xa650, 0xa651, 0xa653, 
-	0xa654, 0xa655, 0xa657, 0xa658, 0xa65a, 0xa65b, 0xa65d, 0xa65f, 
-	0xa680, 0xa680, 0xa680, 0xa680, 0xa681, 0xa681, 0xa682, 0xa682, 
-	0xa683, 0xa684, 0xa685, 0xa685, 0xa686, 0xa687, 0xa688, 0xa689, 
-	0xa68a, 0xa68b, 0xa68c, 0xa68e, 0xa68f, 0xa690, 0xa691, 0xa693, 
-	0xa694, 0xa695, 0xa697, 0xa698, 0xa69a, 0xa69b, 0xa69d, 0xa69f, 
-	0xa6a0, 0xa6a0, 0xa6a0, 0xa6a0, 0xa6a1, 0xa6a1, 0xa6a2, 0xa6a2, 
-	0xa6a3, 0xa6a4, 0xa6a5, 0xa6a5, 0xa6a6, 0xa6a7, 0xa6a8, 0xa6a9, 
-	0xa6aa, 0xa6ab, 0xa6ac, 0xa6ae, 0xa6af, 0xa6b0, 0xa6b1, 0xa6b3, 
-	0xa6b4, 0xa6b5, 0xa6b7, 0xa6b8, 0xa6ba, 0xa6bb, 0xa6bd, 0xa6bf, 
-	0xa6e0, 0xa6e0, 0xa6e0, 0xa6e0, 0xa6e1, 0xa6e1, 0xa6e2, 0xa6e2, 
-	0xa6e3, 0xa6e4, 0xa6e5, 0xa6e5, 0xa6e6, 0xa6e7, 0xa6e8, 0xa6e9, 
-	0xa6ea, 0xa6eb, 0xa6ec, 0xa6ee, 0xa6ef, 0xa6f0, 0xa6f1, 0xa6f3, 
-	0xa6f4, 0xa6f5, 0xa6f7, 0xa6f8, 0xa6fa, 0xa6fb, 0xa6fd, 0xa6ff, 
-	0xa700, 0xa700, 0xa700, 0xa700, 0xa701, 0xa701, 0xa702, 0xa702, 
-	0xa703, 0xa704, 0xa705, 0xa705, 0xa706, 0xa707, 0xa708, 0xa709, 
-	0xa70a, 0xa70b, 0xa70c, 0xa70e, 0xa70f, 0xa710, 0xa711, 0xa713, 
-	0xa714, 0xa715, 0xa717, 0xa718, 0xa71a, 0xa71b, 0xa71d, 0xa71f, 
-	0xa740, 0xa740, 0xa740, 0xa740, 0xa741, 0xa741, 0xa742, 0xa742, 
-	0xa743, 0xa744, 0xa745, 0xa745, 0xa746, 0xa747, 0xa748, 0xa749, 
-	0xa74a, 0xa74b, 0xa74c, 0xa74e, 0xa74f, 0xa750, 0xa751, 0xa753, 
-	0xa754, 0xa755, 0xa757, 0xa758, 0xa75a, 0xa75b, 0xa75d, 0xa75f, 
-	0xa760, 0xa760, 0xa760, 0xa760, 0xa761, 0xa761, 0xa762, 0xa762, 
-	0xa763, 0xa764, 0xa765, 0xa765, 0xa766, 0xa767, 0xa768, 0xa769, 
-	0xa76a, 0xa76b, 0xa76c, 0xa76e, 0xa76f, 0xa770, 0xa771, 0xa773, 
-	0xa774, 0xa775, 0xa777, 0xa778, 0xa77a, 0xa77b, 0xa77d, 0xa77f, 
-	0xa7a0, 0xa7a0, 0xa7a0, 0xa7a0, 0xa7a1, 0xa7a1, 0xa7a2, 0xa7a2, 
-	0xa7a3, 0xa7a4, 0xa7a5, 0xa7a5, 0xa7a6, 0xa7a7, 0xa7a8, 0xa7a9, 
-	0xa7aa, 0xa7ab, 0xa7ac, 0xa7ae, 0xa7af, 0xa7b0, 0xa7b1, 0xa7b3, 
-	0xa7b4, 0xa7b5, 0xa7b7, 0xa7b8, 0xa7ba, 0xa7bb, 0xa7bd, 0xa7bf, 
-	0xa7e0, 0xa7e0, 0xa7e0, 0xa7e0, 0xa7e1, 0xa7e1, 0xa7e2, 0xa7e2, 
-	0xa7e3, 0xa7e4, 0xa7e5, 0xa7e5, 0xa7e6, 0xa7e7, 0xa7e8, 0xa7e9, 
-	0xa7ea, 0xa7eb, 0xa7ec, 0xa7ee, 0xa7ef, 0xa7f0, 0xa7f1, 0xa7f3, 
-	0xa7f4, 0xa7f5, 0xa7f7, 0xa7f8, 0xa7fa, 0xa7fb, 0xa7fd, 0xa7ff, 
-	0xa800, 0xa800, 0xa800, 0xa800, 0xa801, 0xa801, 0xa802, 0xa802, 
-	0xa803, 0xa804, 0xa805, 0xa805, 0xa806, 0xa807, 0xa808, 0xa809, 
-	0xa80a, 0xa80b, 0xa80c, 0xa80e, 0xa80f, 0xa810, 0xa811, 0xa813, 
-	0xa814, 0xa815, 0xa817, 0xa818, 0xa81a, 0xa81b, 0xa81d, 0xa81f, 
-	0xa800, 0xa800, 0xa800, 0xa800, 0xa801, 0xa801, 0xa802, 0xa802, 
-	0xa803, 0xa804, 0xa805, 0xa805, 0xa806, 0xa807, 0xa808, 0xa809, 
-	0xa80a, 0xa80b, 0xa80c, 0xa80e, 0xa80f, 0xa810, 0xa811, 0xa813, 
-	0xa814, 0xa815, 0xa817, 0xa818, 0xa81a, 0xa81b, 0xa81d, 0xa81f, 
-	0xa800, 0xa800, 0xa800, 0xa800, 0xa801, 0xa801, 0xa802, 0xa802, 
-	0xa803, 0xa804, 0xa805, 0xa805, 0xa806, 0xa807, 0xa808, 0xa809, 
-	0xa80a, 0xa80b, 0xa80c, 0xa80e, 0xa80f, 0xa810, 0xa811, 0xa813, 
-	0xa814, 0xa815, 0xa817, 0xa818, 0xa81a, 0xa81b, 0xa81d, 0xa81f, 
-	0xa800, 0xa800, 0xa800, 0xa800, 0xa801, 0xa801, 0xa802, 0xa802, 
-	0xa803, 0xa804, 0xa805, 0xa805, 0xa806, 0xa807, 0xa808, 0xa809, 
-	0xa80a, 0xa80b, 0xa80c, 0xa80e, 0xa80f, 0xa810, 0xa811, 0xa813, 
-	0xa814, 0xa815, 0xa817, 0xa818, 0xa81a, 0xa81b, 0xa81d, 0xa81f, 
-	0xa800, 0xa800, 0xa800, 0xa800, 0xa801, 0xa801, 0xa802, 0xa802, 
-	0xa803, 0xa804, 0xa805, 0xa805, 0xa806, 0xa807, 0xa808, 0xa809, 
-	0xa80a, 0xa80b, 0xa80c, 0xa80e, 0xa80f, 0xa810, 0xa811, 0xa813, 
-	0xa814, 0xa815, 0xa817, 0xa818, 0xa81a, 0xa81b, 0xa81d, 0xa81f, 
-	0xa820, 0xa820, 0xa820, 0xa820, 0xa821, 0xa821, 0xa822, 0xa822, 
-	0xa823, 0xa824, 0xa825, 0xa825, 0xa826, 0xa827, 0xa828, 0xa829, 
-	0xa82a, 0xa82b, 0xa82c, 0xa82e, 0xa82f, 0xa830, 0xa831, 0xa833, 
-	0xa834, 0xa835, 0xa837, 0xa838, 0xa83a, 0xa83b, 0xa83d, 0xa83f, 
-	0xa820, 0xa820, 0xa820, 0xa820, 0xa821, 0xa821, 0xa822, 0xa822, 
-	0xa823, 0xa824, 0xa825, 0xa825, 0xa826, 0xa827, 0xa828, 0xa829, 
-	0xa82a, 0xa82b, 0xa82c, 0xa82e, 0xa82f, 0xa830, 0xa831, 0xa833, 
-	0xa834, 0xa835, 0xa837, 0xa838, 0xa83a, 0xa83b, 0xa83d, 0xa83f, 
-	0xa820, 0xa820, 0xa820, 0xa820, 0xa821, 0xa821, 0xa822, 0xa822, 
-	0xa823, 0xa824, 0xa825, 0xa825, 0xa826, 0xa827, 0xa828, 0xa829, 
-	0xa82a, 0xa82b, 0xa82c, 0xa82e, 0xa82f, 0xa830, 0xa831, 0xa833, 
-	0xa834, 0xa835, 0xa837, 0xa838, 0xa83a, 0xa83b, 0xa83d, 0xa83f, 
-	0xa840, 0xa840, 0xa840, 0xa840, 0xa841, 0xa841, 0xa842, 0xa842, 
-	0xa843, 0xa844, 0xa845, 0xa845, 0xa846, 0xa847, 0xa848, 0xa849, 
-	0xa84a, 0xa84b, 0xa84c, 0xa84e, 0xa84f, 0xa850, 0xa851, 0xa853, 
-	0xa854, 0xa855, 0xa857, 0xa858, 0xa85a, 0xa85b, 0xa85d, 0xa85f, 
-	0xa840, 0xa840, 0xa840, 0xa840, 0xa841, 0xa841, 0xa842, 0xa842, 
-	0xa843, 0xa844, 0xa845, 0xa845, 0xa846, 0xa847, 0xa848, 0xa849, 
-	0xa84a, 0xa84b, 0xa84c, 0xa84e, 0xa84f, 0xa850, 0xa851, 0xa853, 
-	0xa854, 0xa855, 0xa857, 0xa858, 0xa85a, 0xa85b, 0xa85d, 0xa85f, 
-	0xa860, 0xa860, 0xa860, 0xa860, 0xa861, 0xa861, 0xa862, 0xa862, 
-	0xa863, 0xa864, 0xa865, 0xa865, 0xa866, 0xa867, 0xa868, 0xa869, 
-	0xa86a, 0xa86b, 0xa86c, 0xa86e, 0xa86f, 0xa870, 0xa871, 0xa873, 
-	0xa874, 0xa875, 0xa877, 0xa878, 0xa87a, 0xa87b, 0xa87d, 0xa87f, 
-	0xa860, 0xa860, 0xa860, 0xa860, 0xa861, 0xa861, 0xa862, 0xa862, 
-	0xa863, 0xa864, 0xa865, 0xa865, 0xa866, 0xa867, 0xa868, 0xa869, 
-	0xa86a, 0xa86b, 0xa86c, 0xa86e, 0xa86f, 0xa870, 0xa871, 0xa873, 
-	0xa874, 0xa875, 0xa877, 0xa878, 0xa87a, 0xa87b, 0xa87d, 0xa87f, 
-	0xa880, 0xa880, 0xa880, 0xa880, 0xa881, 0xa881, 0xa882, 0xa882, 
-	0xa883, 0xa884, 0xa885, 0xa885, 0xa886, 0xa887, 0xa888, 0xa889, 
-	0xa88a, 0xa88b, 0xa88c, 0xa88e, 0xa88f, 0xa890, 0xa891, 0xa893, 
-	0xa894, 0xa895, 0xa897, 0xa898, 0xa89a, 0xa89b, 0xa89d, 0xa89f, 
-	0xa8a0, 0xa8a0, 0xa8a0, 0xa8a0, 0xa8a1, 0xa8a1, 0xa8a2, 0xa8a2, 
-	0xa8a3, 0xa8a4, 0xa8a5, 0xa8a5, 0xa8a6, 0xa8a7, 0xa8a8, 0xa8a9, 
-	0xa8aa, 0xa8ab, 0xa8ac, 0xa8ae, 0xa8af, 0xa8b0, 0xa8b1, 0xa8b3, 
-	0xa8b4, 0xa8b5, 0xa8b7, 0xa8b8, 0xa8ba, 0xa8bb, 0xa8bd, 0xa8bf, 
-	0xa8a0, 0xa8a0, 0xa8a0, 0xa8a0, 0xa8a1, 0xa8a1, 0xa8a2, 0xa8a2, 
-	0xa8a3, 0xa8a4, 0xa8a5, 0xa8a5, 0xa8a6, 0xa8a7, 0xa8a8, 0xa8a9, 
-	0xa8aa, 0xa8ab, 0xa8ac, 0xa8ae, 0xa8af, 0xa8b0, 0xa8b1, 0xa8b3, 
-	0xa8b4, 0xa8b5, 0xa8b7, 0xa8b8, 0xa8ba, 0xa8bb, 0xa8bd, 0xa8bf, 
-	0xa8c0, 0xa8c0, 0xa8c0, 0xa8c0, 0xa8c1, 0xa8c1, 0xa8c2, 0xa8c2, 
-	0xa8c3, 0xa8c4, 0xa8c5, 0xa8c5, 0xa8c6, 0xa8c7, 0xa8c8, 0xa8c9, 
-	0xa8ca, 0xa8cb, 0xa8cc, 0xa8ce, 0xa8cf, 0xa8d0, 0xa8d1, 0xa8d3, 
-	0xa8d4, 0xa8d5, 0xa8d7, 0xa8d8, 0xa8da, 0xa8db, 0xa8dd, 0xa8df, 
-	0xa8e0, 0xa8e0, 0xa8e0, 0xa8e0, 0xa8e1, 0xa8e1, 0xa8e2, 0xa8e2, 
-	0xa8e3, 0xa8e4, 0xa8e5, 0xa8e5, 0xa8e6, 0xa8e7, 0xa8e8, 0xa8e9, 
-	0xa8ea, 0xa8eb, 0xa8ec, 0xa8ee, 0xa8ef, 0xa8f0, 0xa8f1, 0xa8f3, 
-	0xa8f4, 0xa8f5, 0xa8f7, 0xa8f8, 0xa8fa, 0xa8fb, 0xa8fd, 0xa8ff, 
-	0xa8e0, 0xa8e0, 0xa8e0, 0xa8e0, 0xa8e1, 0xa8e1, 0xa8e2, 0xa8e2, 
-	0xa8e3, 0xa8e4, 0xa8e5, 0xa8e5, 0xa8e6, 0xa8e7, 0xa8e8, 0xa8e9, 
-	0xa8ea, 0xa8eb, 0xa8ec, 0xa8ee, 0xa8ef, 0xa8f0, 0xa8f1, 0xa8f3, 
-	0xa8f4, 0xa8f5, 0xa8f7, 0xa8f8, 0xa8fa, 0xa8fb, 0xa8fd, 0xa8ff, 
-	0xa900, 0xa900, 0xa900, 0xa900, 0xa901, 0xa901, 0xa902, 0xa902, 
-	0xa903, 0xa904, 0xa905, 0xa905, 0xa906, 0xa907, 0xa908, 0xa909, 
-	0xa90a, 0xa90b, 0xa90c, 0xa90e, 0xa90f, 0xa910, 0xa911, 0xa913, 
-	0xa914, 0xa915, 0xa917, 0xa918, 0xa91a, 0xa91b, 0xa91d, 0xa91f, 
-	0xa920, 0xa920, 0xa920, 0xa920, 0xa921, 0xa921, 0xa922, 0xa922, 
-	0xa923, 0xa924, 0xa925, 0xa925, 0xa926, 0xa927, 0xa928, 0xa929, 
-	0xa92a, 0xa92b, 0xa92c, 0xa92e, 0xa92f, 0xa930, 0xa931, 0xa933, 
-	0xa934, 0xa935, 0xa937, 0xa938, 0xa93a, 0xa93b, 0xa93d, 0xa93f, 
-	0xa940, 0xa940, 0xa940, 0xa940, 0xa941, 0xa941, 0xa942, 0xa942, 
-	0xa943, 0xa944, 0xa945, 0xa945, 0xa946, 0xa947, 0xa948, 0xa949, 
-	0xa94a, 0xa94b, 0xa94c, 0xa94e, 0xa94f, 0xa950, 0xa951, 0xa953, 
-	0xa954, 0xa955, 0xa957, 0xa958, 0xa95a, 0xa95b, 0xa95d, 0xa95f, 
-	0xa940, 0xa940, 0xa940, 0xa940, 0xa941, 0xa941, 0xa942, 0xa942, 
-	0xa943, 0xa944, 0xa945, 0xa945, 0xa946, 0xa947, 0xa948, 0xa949, 
-	0xa94a, 0xa94b, 0xa94c, 0xa94e, 0xa94f, 0xa950, 0xa951, 0xa953, 
-	0xa954, 0xa955, 0xa957, 0xa958, 0xa95a, 0xa95b, 0xa95d, 0xa95f, 
-	0xa960, 0xa960, 0xa960, 0xa960, 0xa961, 0xa961, 0xa962, 0xa962, 
-	0xa963, 0xa964, 0xa965, 0xa965, 0xa966, 0xa967, 0xa968, 0xa969, 
-	0xa96a, 0xa96b, 0xa96c, 0xa96e, 0xa96f, 0xa970, 0xa971, 0xa973, 
-	0xa974, 0xa975, 0xa977, 0xa978, 0xa97a, 0xa97b, 0xa97d, 0xa97f, 
-	0xa980, 0xa980, 0xa980, 0xa980, 0xa981, 0xa981, 0xa982, 0xa982, 
-	0xa983, 0xa984, 0xa985, 0xa985, 0xa986, 0xa987, 0xa988, 0xa989, 
-	0xa98a, 0xa98b, 0xa98c, 0xa98e, 0xa98f, 0xa990, 0xa991, 0xa993, 
-	0xa994, 0xa995, 0xa997, 0xa998, 0xa99a, 0xa99b, 0xa99d, 0xa99f, 
-	0xa9a0, 0xa9a0, 0xa9a0, 0xa9a0, 0xa9a1, 0xa9a1, 0xa9a2, 0xa9a2, 
-	0xa9a3, 0xa9a4, 0xa9a5, 0xa9a5, 0xa9a6, 0xa9a7, 0xa9a8, 0xa9a9, 
-	0xa9aa, 0xa9ab, 0xa9ac, 0xa9ae, 0xa9af, 0xa9b0, 0xa9b1, 0xa9b3, 
-	0xa9b4, 0xa9b5, 0xa9b7, 0xa9b8, 0xa9ba, 0xa9bb, 0xa9bd, 0xa9bf, 
-	0xa9c0, 0xa9c0, 0xa9c0, 0xa9c0, 0xa9c1, 0xa9c1, 0xa9c2, 0xa9c2, 
-	0xa9c3, 0xa9c4, 0xa9c5, 0xa9c5, 0xa9c6, 0xa9c7, 0xa9c8, 0xa9c9, 
-	0xa9ca, 0xa9cb, 0xa9cc, 0xa9ce, 0xa9cf, 0xa9d0, 0xa9d1, 0xa9d3, 
-	0xa9d4, 0xa9d5, 0xa9d7, 0xa9d8, 0xa9da, 0xa9db, 0xa9dd, 0xa9df, 
-	0xa9e0, 0xa9e0, 0xa9e0, 0xa9e0, 0xa9e1, 0xa9e1, 0xa9e2, 0xa9e2, 
-	0xa9e3, 0xa9e4, 0xa9e5, 0xa9e5, 0xa9e6, 0xa9e7, 0xa9e8, 0xa9e9, 
-	0xa9ea, 0xa9eb, 0xa9ec, 0xa9ee, 0xa9ef, 0xa9f0, 0xa9f1, 0xa9f3, 
-	0xa9f4, 0xa9f5, 0xa9f7, 0xa9f8, 0xa9fa, 0xa9fb, 0xa9fd, 0xa9ff, 
-	0xaa00, 0xaa00, 0xaa00, 0xaa00, 0xaa01, 0xaa01, 0xaa02, 0xaa02, 
-	0xaa03, 0xaa04, 0xaa05, 0xaa05, 0xaa06, 0xaa07, 0xaa08, 0xaa09, 
-	0xaa0a, 0xaa0b, 0xaa0c, 0xaa0e, 0xaa0f, 0xaa10, 0xaa11, 0xaa13, 
-	0xaa14, 0xaa15, 0xaa17, 0xaa18, 0xaa1a, 0xaa1b, 0xaa1d, 0xaa1f, 
-	0xaa20, 0xaa20, 0xaa20, 0xaa20, 0xaa21, 0xaa21, 0xaa22, 0xaa22, 
-	0xaa23, 0xaa24, 0xaa25, 0xaa25, 0xaa26, 0xaa27, 0xaa28, 0xaa29, 
-	0xaa2a, 0xaa2b, 0xaa2c, 0xaa2e, 0xaa2f, 0xaa30, 0xaa31, 0xaa33, 
-	0xaa34, 0xaa35, 0xaa37, 0xaa38, 0xaa3a, 0xaa3b, 0xaa3d, 0xaa3f, 
-	0xaa40, 0xaa40, 0xaa40, 0xaa40, 0xaa41, 0xaa41, 0xaa42, 0xaa42, 
-	0xaa43, 0xaa44, 0xaa45, 0xaa45, 0xaa46, 0xaa47, 0xaa48, 0xaa49, 
-	0xaa4a, 0xaa4b, 0xaa4c, 0xaa4e, 0xaa4f, 0xaa50, 0xaa51, 0xaa53, 
-	0xaa54, 0xaa55, 0xaa57, 0xaa58, 0xaa5a, 0xaa5b, 0xaa5d, 0xaa5f, 
-	0xaa60, 0xaa60, 0xaa60, 0xaa60, 0xaa61, 0xaa61, 0xaa62, 0xaa62, 
-	0xaa63, 0xaa64, 0xaa65, 0xaa65, 0xaa66, 0xaa67, 0xaa68, 0xaa69, 
-	0xaa6a, 0xaa6b, 0xaa6c, 0xaa6e, 0xaa6f, 0xaa70, 0xaa71, 0xaa73, 
-	0xaa74, 0xaa75, 0xaa77, 0xaa78, 0xaa7a, 0xaa7b, 0xaa7d, 0xaa7f, 
-	0xaa80, 0xaa80, 0xaa80, 0xaa80, 0xaa81, 0xaa81, 0xaa82, 0xaa82, 
-	0xaa83, 0xaa84, 0xaa85, 0xaa85, 0xaa86, 0xaa87, 0xaa88, 0xaa89, 
-	0xaa8a, 0xaa8b, 0xaa8c, 0xaa8e, 0xaa8f, 0xaa90, 0xaa91, 0xaa93, 
-	0xaa94, 0xaa95, 0xaa97, 0xaa98, 0xaa9a, 0xaa9b, 0xaa9d, 0xaa9f, 
-	0xaaa0, 0xaaa0, 0xaaa0, 0xaaa0, 0xaaa1, 0xaaa1, 0xaaa2, 0xaaa2, 
-	0xaaa3, 0xaaa4, 0xaaa5, 0xaaa5, 0xaaa6, 0xaaa7, 0xaaa8, 0xaaa9, 
-	0xaaaa, 0xaaab, 0xaaac, 0xaaae, 0xaaaf, 0xaab0, 0xaab1, 0xaab3, 
-	0xaab4, 0xaab5, 0xaab7, 0xaab8, 0xaaba, 0xaabb, 0xaabd, 0xaabf, 
-	0xaac0, 0xaac0, 0xaac0, 0xaac0, 0xaac1, 0xaac1, 0xaac2, 0xaac2, 
-	0xaac3, 0xaac4, 0xaac5, 0xaac5, 0xaac6, 0xaac7, 0xaac8, 0xaac9, 
-	0xaaca, 0xaacb, 0xaacc, 0xaace, 0xaacf, 0xaad0, 0xaad1, 0xaad3, 
-	0xaad4, 0xaad5, 0xaad7, 0xaad8, 0xaada, 0xaadb, 0xaadd, 0xaadf, 
-	0xaae0, 0xaae0, 0xaae0, 0xaae0, 0xaae1, 0xaae1, 0xaae2, 0xaae2, 
-	0xaae3, 0xaae4, 0xaae5, 0xaae5, 0xaae6, 0xaae7, 0xaae8, 0xaae9, 
-	0xaaea, 0xaaeb, 0xaaec, 0xaaee, 0xaaef, 0xaaf0, 0xaaf1, 0xaaf3, 
-	0xaaf4, 0xaaf5, 0xaaf7, 0xaaf8, 0xaafa, 0xaafb, 0xaafd, 0xaaff, 
-	0xab00, 0xab00, 0xab00, 0xab00, 0xab01, 0xab01, 0xab02, 0xab02, 
-	0xab03, 0xab04, 0xab05, 0xab05, 0xab06, 0xab07, 0xab08, 0xab09, 
-	0xab0a, 0xab0b, 0xab0c, 0xab0e, 0xab0f, 0xab10, 0xab11, 0xab13, 
-	0xab14, 0xab15, 0xab17, 0xab18, 0xab1a, 0xab1b, 0xab1d, 0xab1f, 
-	0xab20, 0xab20, 0xab20, 0xab20, 0xab21, 0xab21, 0xab22, 0xab22, 
-	0xab23, 0xab24, 0xab25, 0xab25, 0xab26, 0xab27, 0xab28, 0xab29, 
-	0xab2a, 0xab2b, 0xab2c, 0xab2e, 0xab2f, 0xab30, 0xab31, 0xab33, 
-	0xab34, 0xab35, 0xab37, 0xab38, 0xab3a, 0xab3b, 0xab3d, 0xab3f, 
-	0xab40, 0xab40, 0xab40, 0xab40, 0xab41, 0xab41, 0xab42, 0xab42, 
-	0xab43, 0xab44, 0xab45, 0xab45, 0xab46, 0xab47, 0xab48, 0xab49, 
-	0xab4a, 0xab4b, 0xab4c, 0xab4e, 0xab4f, 0xab50, 0xab51, 0xab53, 
-	0xab54, 0xab55, 0xab57, 0xab58, 0xab5a, 0xab5b, 0xab5d, 0xab5f, 
-	0xab80, 0xab80, 0xab80, 0xab80, 0xab81, 0xab81, 0xab82, 0xab82, 
-	0xab83, 0xab84, 0xab85, 0xab85, 0xab86, 0xab87, 0xab88, 0xab89, 
-	0xab8a, 0xab8b, 0xab8c, 0xab8e, 0xab8f, 0xab90, 0xab91, 0xab93, 
-	0xab94, 0xab95, 0xab97, 0xab98, 0xab9a, 0xab9b, 0xab9d, 0xab9f, 
-	0xaba0, 0xaba0, 0xaba0, 0xaba0, 0xaba1, 0xaba1, 0xaba2, 0xaba2, 
-	0xaba3, 0xaba4, 0xaba5, 0xaba5, 0xaba6, 0xaba7, 0xaba8, 0xaba9, 
-	0xabaa, 0xabab, 0xabac, 0xabae, 0xabaf, 0xabb0, 0xabb1, 0xabb3, 
-	0xabb4, 0xabb5, 0xabb7, 0xabb8, 0xabba, 0xabbb, 0xabbd, 0xabbf, 
-	0xabc0, 0xabc0, 0xabc0, 0xabc0, 0xabc1, 0xabc1, 0xabc2, 0xabc2, 
-	0xabc3, 0xabc4, 0xabc5, 0xabc5, 0xabc6, 0xabc7, 0xabc8, 0xabc9, 
-	0xabca, 0xabcb, 0xabcc, 0xabce, 0xabcf, 0xabd0, 0xabd1, 0xabd3, 
-	0xabd4, 0xabd5, 0xabd7, 0xabd8, 0xabda, 0xabdb, 0xabdd, 0xabdf, 
-	0xabe0, 0xabe0, 0xabe0, 0xabe0, 0xabe1, 0xabe1, 0xabe2, 0xabe2, 
-	0xabe3, 0xabe4, 0xabe5, 0xabe5, 0xabe6, 0xabe7, 0xabe8, 0xabe9, 
-	0xabea, 0xabeb, 0xabec, 0xabee, 0xabef, 0xabf0, 0xabf1, 0xabf3, 
-	0xabf4, 0xabf5, 0xabf7, 0xabf8, 0xabfa, 0xabfb, 0xabfd, 0xabff, 
-	0xac00, 0xac00, 0xac00, 0xac00, 0xac01, 0xac01, 0xac02, 0xac02, 
-	0xac03, 0xac04, 0xac05, 0xac05, 0xac06, 0xac07, 0xac08, 0xac09, 
-	0xac0a, 0xac0b, 0xac0c, 0xac0e, 0xac0f, 0xac10, 0xac11, 0xac13, 
-	0xac14, 0xac15, 0xac17, 0xac18, 0xac1a, 0xac1b, 0xac1d, 0xac1f, 
-	0xac40, 0xac40, 0xac40, 0xac40, 0xac41, 0xac41, 0xac42, 0xac42, 
-	0xac43, 0xac44, 0xac45, 0xac45, 0xac46, 0xac47, 0xac48, 0xac49, 
-	0xac4a, 0xac4b, 0xac4c, 0xac4e, 0xac4f, 0xac50, 0xac51, 0xac53, 
-	0xac54, 0xac55, 0xac57, 0xac58, 0xac5a, 0xac5b, 0xac5d, 0xac5f, 
-	0xac60, 0xac60, 0xac60, 0xac60, 0xac61, 0xac61, 0xac62, 0xac62, 
-	0xac63, 0xac64, 0xac65, 0xac65, 0xac66, 0xac67, 0xac68, 0xac69, 
-	0xac6a, 0xac6b, 0xac6c, 0xac6e, 0xac6f, 0xac70, 0xac71, 0xac73, 
-	0xac74, 0xac75, 0xac77, 0xac78, 0xac7a, 0xac7b, 0xac7d, 0xac7f, 
-	0xac80, 0xac80, 0xac80, 0xac80, 0xac81, 0xac81, 0xac82, 0xac82, 
-	0xac83, 0xac84, 0xac85, 0xac85, 0xac86, 0xac87, 0xac88, 0xac89, 
-	0xac8a, 0xac8b, 0xac8c, 0xac8e, 0xac8f, 0xac90, 0xac91, 0xac93, 
-	0xac94, 0xac95, 0xac97, 0xac98, 0xac9a, 0xac9b, 0xac9d, 0xac9f, 
-	0xacc0, 0xacc0, 0xacc0, 0xacc0, 0xacc1, 0xacc1, 0xacc2, 0xacc2, 
-	0xacc3, 0xacc4, 0xacc5, 0xacc5, 0xacc6, 0xacc7, 0xacc8, 0xacc9, 
-	0xacca, 0xaccb, 0xaccc, 0xacce, 0xaccf, 0xacd0, 0xacd1, 0xacd3, 
-	0xacd4, 0xacd5, 0xacd7, 0xacd8, 0xacda, 0xacdb, 0xacdd, 0xacdf, 
-	0xace0, 0xace0, 0xace0, 0xace0, 0xace1, 0xace1, 0xace2, 0xace2, 
-	0xace3, 0xace4, 0xace5, 0xace5, 0xace6, 0xace7, 0xace8, 0xace9, 
-	0xacea, 0xaceb, 0xacec, 0xacee, 0xacef, 0xacf0, 0xacf1, 0xacf3, 
-	0xacf4, 0xacf5, 0xacf7, 0xacf8, 0xacfa, 0xacfb, 0xacfd, 0xacff, 
-	0xad00, 0xad00, 0xad00, 0xad00, 0xad01, 0xad01, 0xad02, 0xad02, 
-	0xad03, 0xad04, 0xad05, 0xad05, 0xad06, 0xad07, 0xad08, 0xad09, 
-	0xad0a, 0xad0b, 0xad0c, 0xad0e, 0xad0f, 0xad10, 0xad11, 0xad13, 
-	0xad14, 0xad15, 0xad17, 0xad18, 0xad1a, 0xad1b, 0xad1d, 0xad1f, 
-	0xad40, 0xad40, 0xad40, 0xad40, 0xad41, 0xad41, 0xad42, 0xad42, 
-	0xad43, 0xad44, 0xad45, 0xad45, 0xad46, 0xad47, 0xad48, 0xad49, 
-	0xad4a, 0xad4b, 0xad4c, 0xad4e, 0xad4f, 0xad50, 0xad51, 0xad53, 
-	0xad54, 0xad55, 0xad57, 0xad58, 0xad5a, 0xad5b, 0xad5d, 0xad5f, 
-	0xad60, 0xad60, 0xad60, 0xad60, 0xad61, 0xad61, 0xad62, 0xad62, 
-	0xad63, 0xad64, 0xad65, 0xad65, 0xad66, 0xad67, 0xad68, 0xad69, 
-	0xad6a, 0xad6b, 0xad6c, 0xad6e, 0xad6f, 0xad70, 0xad71, 0xad73, 
-	0xad74, 0xad75, 0xad77, 0xad78, 0xad7a, 0xad7b, 0xad7d, 0xad7f, 
-	0xad80, 0xad80, 0xad80, 0xad80, 0xad81, 0xad81, 0xad82, 0xad82, 
-	0xad83, 0xad84, 0xad85, 0xad85, 0xad86, 0xad87, 0xad88, 0xad89, 
-	0xad8a, 0xad8b, 0xad8c, 0xad8e, 0xad8f, 0xad90, 0xad91, 0xad93, 
-	0xad94, 0xad95, 0xad97, 0xad98, 0xad9a, 0xad9b, 0xad9d, 0xad9f, 
-	0xadc0, 0xadc0, 0xadc0, 0xadc0, 0xadc1, 0xadc1, 0xadc2, 0xadc2, 
-	0xadc3, 0xadc4, 0xadc5, 0xadc5, 0xadc6, 0xadc7, 0xadc8, 0xadc9, 
-	0xadca, 0xadcb, 0xadcc, 0xadce, 0xadcf, 0xadd0, 0xadd1, 0xadd3, 
-	0xadd4, 0xadd5, 0xadd7, 0xadd8, 0xadda, 0xaddb, 0xaddd, 0xaddf, 
-	0xade0, 0xade0, 0xade0, 0xade0, 0xade1, 0xade1, 0xade2, 0xade2, 
-	0xade3, 0xade4, 0xade5, 0xade5, 0xade6, 0xade7, 0xade8, 0xade9, 
-	0xadea, 0xadeb, 0xadec, 0xadee, 0xadef, 0xadf0, 0xadf1, 0xadf3, 
-	0xadf4, 0xadf5, 0xadf7, 0xadf8, 0xadfa, 0xadfb, 0xadfd, 0xadff, 
-	0xae20, 0xae20, 0xae20, 0xae20, 0xae21, 0xae21, 0xae22, 0xae22, 
-	0xae23, 0xae24, 0xae25, 0xae25, 0xae26, 0xae27, 0xae28, 0xae29, 
-	0xae2a, 0xae2b, 0xae2c, 0xae2e, 0xae2f, 0xae30, 0xae31, 0xae33, 
-	0xae34, 0xae35, 0xae37, 0xae38, 0xae3a, 0xae3b, 0xae3d, 0xae3f, 
-	0xae40, 0xae40, 0xae40, 0xae40, 0xae41, 0xae41, 0xae42, 0xae42, 
-	0xae43, 0xae44, 0xae45, 0xae45, 0xae46, 0xae47, 0xae48, 0xae49, 
-	0xae4a, 0xae4b, 0xae4c, 0xae4e, 0xae4f, 0xae50, 0xae51, 0xae53, 
-	0xae54, 0xae55, 0xae57, 0xae58, 0xae5a, 0xae5b, 0xae5d, 0xae5f, 
-	0xae80, 0xae80, 0xae80, 0xae80, 0xae81, 0xae81, 0xae82, 0xae82, 
-	0xae83, 0xae84, 0xae85, 0xae85, 0xae86, 0xae87, 0xae88, 0xae89, 
-	0xae8a, 0xae8b, 0xae8c, 0xae8e, 0xae8f, 0xae90, 0xae91, 0xae93, 
-	0xae94, 0xae95, 0xae97, 0xae98, 0xae9a, 0xae9b, 0xae9d, 0xae9f, 
-	0xaea0, 0xaea0, 0xaea0, 0xaea0, 0xaea1, 0xaea1, 0xaea2, 0xaea2, 
-	0xaea3, 0xaea4, 0xaea5, 0xaea5, 0xaea6, 0xaea7, 0xaea8, 0xaea9, 
-	0xaeaa, 0xaeab, 0xaeac, 0xaeae, 0xaeaf, 0xaeb0, 0xaeb1, 0xaeb3, 
-	0xaeb4, 0xaeb5, 0xaeb7, 0xaeb8, 0xaeba, 0xaebb, 0xaebd, 0xaebf, 
-	0xaee0, 0xaee0, 0xaee0, 0xaee0, 0xaee1, 0xaee1, 0xaee2, 0xaee2, 
-	0xaee3, 0xaee4, 0xaee5, 0xaee5, 0xaee6, 0xaee7, 0xaee8, 0xaee9, 
-	0xaeea, 0xaeeb, 0xaeec, 0xaeee, 0xaeef, 0xaef0, 0xaef1, 0xaef3, 
-	0xaef4, 0xaef5, 0xaef7, 0xaef8, 0xaefa, 0xaefb, 0xaefd, 0xaeff, 
-	0xaf00, 0xaf00, 0xaf00, 0xaf00, 0xaf01, 0xaf01, 0xaf02, 0xaf02, 
-	0xaf03, 0xaf04, 0xaf05, 0xaf05, 0xaf06, 0xaf07, 0xaf08, 0xaf09, 
-	0xaf0a, 0xaf0b, 0xaf0c, 0xaf0e, 0xaf0f, 0xaf10, 0xaf11, 0xaf13, 
-	0xaf14, 0xaf15, 0xaf17, 0xaf18, 0xaf1a, 0xaf1b, 0xaf1d, 0xaf1f, 
-	0xaf40, 0xaf40, 0xaf40, 0xaf40, 0xaf41, 0xaf41, 0xaf42, 0xaf42, 
-	0xaf43, 0xaf44, 0xaf45, 0xaf45, 0xaf46, 0xaf47, 0xaf48, 0xaf49, 
-	0xaf4a, 0xaf4b, 0xaf4c, 0xaf4e, 0xaf4f, 0xaf50, 0xaf51, 0xaf53, 
-	0xaf54, 0xaf55, 0xaf57, 0xaf58, 0xaf5a, 0xaf5b, 0xaf5d, 0xaf5f, 
-	0xaf60, 0xaf60, 0xaf60, 0xaf60, 0xaf61, 0xaf61, 0xaf62, 0xaf62, 
-	0xaf63, 0xaf64, 0xaf65, 0xaf65, 0xaf66, 0xaf67, 0xaf68, 0xaf69, 
-	0xaf6a, 0xaf6b, 0xaf6c, 0xaf6e, 0xaf6f, 0xaf70, 0xaf71, 0xaf73, 
-	0xaf74, 0xaf75, 0xaf77, 0xaf78, 0xaf7a, 0xaf7b, 0xaf7d, 0xaf7f, 
-	0xafa0, 0xafa0, 0xafa0, 0xafa0, 0xafa1, 0xafa1, 0xafa2, 0xafa2, 
-	0xafa3, 0xafa4, 0xafa5, 0xafa5, 0xafa6, 0xafa7, 0xafa8, 0xafa9, 
-	0xafaa, 0xafab, 0xafac, 0xafae, 0xafaf, 0xafb0, 0xafb1, 0xafb3, 
-	0xafb4, 0xafb5, 0xafb7, 0xafb8, 0xafba, 0xafbb, 0xafbd, 0xafbf, 
-	0xafe0, 0xafe0, 0xafe0, 0xafe0, 0xafe1, 0xafe1, 0xafe2, 0xafe2, 
-	0xafe3, 0xafe4, 0xafe5, 0xafe5, 0xafe6, 0xafe7, 0xafe8, 0xafe9, 
-	0xafea, 0xafeb, 0xafec, 0xafee, 0xafef, 0xaff0, 0xaff1, 0xaff3, 
-	0xaff4, 0xaff5, 0xaff7, 0xaff8, 0xaffa, 0xaffb, 0xaffd, 0xafff, 
-	0xb800, 0xb800, 0xb800, 0xb800, 0xb801, 0xb801, 0xb802, 0xb802, 
-	0xb803, 0xb804, 0xb805, 0xb805, 0xb806, 0xb807, 0xb808, 0xb809, 
-	0xb80a, 0xb80b, 0xb80c, 0xb80e, 0xb80f, 0xb810, 0xb811, 0xb813, 
-	0xb814, 0xb815, 0xb817, 0xb818, 0xb81a, 0xb81b, 0xb81d, 0xb81f, 
-	0xb800, 0xb800, 0xb800, 0xb800, 0xb801, 0xb801, 0xb802, 0xb802, 
-	0xb803, 0xb804, 0xb805, 0xb805, 0xb806, 0xb807, 0xb808, 0xb809, 
-	0xb80a, 0xb80b, 0xb80c, 0xb80e, 0xb80f, 0xb810, 0xb811, 0xb813, 
-	0xb814, 0xb815, 0xb817, 0xb818, 0xb81a, 0xb81b, 0xb81d, 0xb81f, 
-	0xb800, 0xb800, 0xb800, 0xb800, 0xb801, 0xb801, 0xb802, 0xb802, 
-	0xb803, 0xb804, 0xb805, 0xb805, 0xb806, 0xb807, 0xb808, 0xb809, 
-	0xb80a, 0xb80b, 0xb80c, 0xb80e, 0xb80f, 0xb810, 0xb811, 0xb813, 
-	0xb814, 0xb815, 0xb817, 0xb818, 0xb81a, 0xb81b, 0xb81d, 0xb81f, 
-	0xb800, 0xb800, 0xb800, 0xb800, 0xb801, 0xb801, 0xb802, 0xb802, 
-	0xb803, 0xb804, 0xb805, 0xb805, 0xb806, 0xb807, 0xb808, 0xb809, 
-	0xb80a, 0xb80b, 0xb80c, 0xb80e, 0xb80f, 0xb810, 0xb811, 0xb813, 
-	0xb814, 0xb815, 0xb817, 0xb818, 0xb81a, 0xb81b, 0xb81d, 0xb81f, 
-	0xb800, 0xb800, 0xb800, 0xb800, 0xb801, 0xb801, 0xb802, 0xb802, 
-	0xb803, 0xb804, 0xb805, 0xb805, 0xb806, 0xb807, 0xb808, 0xb809, 
-	0xb80a, 0xb80b, 0xb80c, 0xb80e, 0xb80f, 0xb810, 0xb811, 0xb813, 
-	0xb814, 0xb815, 0xb817, 0xb818, 0xb81a, 0xb81b, 0xb81d, 0xb81f, 
-	0xb820, 0xb820, 0xb820, 0xb820, 0xb821, 0xb821, 0xb822, 0xb822, 
-	0xb823, 0xb824, 0xb825, 0xb825, 0xb826, 0xb827, 0xb828, 0xb829, 
-	0xb82a, 0xb82b, 0xb82c, 0xb82e, 0xb82f, 0xb830, 0xb831, 0xb833, 
-	0xb834, 0xb835, 0xb837, 0xb838, 0xb83a, 0xb83b, 0xb83d, 0xb83f, 
-	0xb820, 0xb820, 0xb820, 0xb820, 0xb821, 0xb821, 0xb822, 0xb822, 
-	0xb823, 0xb824, 0xb825, 0xb825, 0xb826, 0xb827, 0xb828, 0xb829, 
-	0xb82a, 0xb82b, 0xb82c, 0xb82e, 0xb82f, 0xb830, 0xb831, 0xb833, 
-	0xb834, 0xb835, 0xb837, 0xb838, 0xb83a, 0xb83b, 0xb83d, 0xb83f, 
-	0xb820, 0xb820, 0xb820, 0xb820, 0xb821, 0xb821, 0xb822, 0xb822, 
-	0xb823, 0xb824, 0xb825, 0xb825, 0xb826, 0xb827, 0xb828, 0xb829, 
-	0xb82a, 0xb82b, 0xb82c, 0xb82e, 0xb82f, 0xb830, 0xb831, 0xb833, 
-	0xb834, 0xb835, 0xb837, 0xb838, 0xb83a, 0xb83b, 0xb83d, 0xb83f, 
-	0xb840, 0xb840, 0xb840, 0xb840, 0xb841, 0xb841, 0xb842, 0xb842, 
-	0xb843, 0xb844, 0xb845, 0xb845, 0xb846, 0xb847, 0xb848, 0xb849, 
-	0xb84a, 0xb84b, 0xb84c, 0xb84e, 0xb84f, 0xb850, 0xb851, 0xb853, 
-	0xb854, 0xb855, 0xb857, 0xb858, 0xb85a, 0xb85b, 0xb85d, 0xb85f, 
-	0xb840, 0xb840, 0xb840, 0xb840, 0xb841, 0xb841, 0xb842, 0xb842, 
-	0xb843, 0xb844, 0xb845, 0xb845, 0xb846, 0xb847, 0xb848, 0xb849, 
-	0xb84a, 0xb84b, 0xb84c, 0xb84e, 0xb84f, 0xb850, 0xb851, 0xb853, 
-	0xb854, 0xb855, 0xb857, 0xb858, 0xb85a, 0xb85b, 0xb85d, 0xb85f, 
-	0xb860, 0xb860, 0xb860, 0xb860, 0xb861, 0xb861, 0xb862, 0xb862, 
-	0xb863, 0xb864, 0xb865, 0xb865, 0xb866, 0xb867, 0xb868, 0xb869, 
-	0xb86a, 0xb86b, 0xb86c, 0xb86e, 0xb86f, 0xb870, 0xb871, 0xb873, 
-	0xb874, 0xb875, 0xb877, 0xb878, 0xb87a, 0xb87b, 0xb87d, 0xb87f, 
-	0xb860, 0xb860, 0xb860, 0xb860, 0xb861, 0xb861, 0xb862, 0xb862, 
-	0xb863, 0xb864, 0xb865, 0xb865, 0xb866, 0xb867, 0xb868, 0xb869, 
-	0xb86a, 0xb86b, 0xb86c, 0xb86e, 0xb86f, 0xb870, 0xb871, 0xb873, 
-	0xb874, 0xb875, 0xb877, 0xb878, 0xb87a, 0xb87b, 0xb87d, 0xb87f, 
-	0xb880, 0xb880, 0xb880, 0xb880, 0xb881, 0xb881, 0xb882, 0xb882, 
-	0xb883, 0xb884, 0xb885, 0xb885, 0xb886, 0xb887, 0xb888, 0xb889, 
-	0xb88a, 0xb88b, 0xb88c, 0xb88e, 0xb88f, 0xb890, 0xb891, 0xb893, 
-	0xb894, 0xb895, 0xb897, 0xb898, 0xb89a, 0xb89b, 0xb89d, 0xb89f, 
-	0xb8a0, 0xb8a0, 0xb8a0, 0xb8a0, 0xb8a1, 0xb8a1, 0xb8a2, 0xb8a2, 
-	0xb8a3, 0xb8a4, 0xb8a5, 0xb8a5, 0xb8a6, 0xb8a7, 0xb8a8, 0xb8a9, 
-	0xb8aa, 0xb8ab, 0xb8ac, 0xb8ae, 0xb8af, 0xb8b0, 0xb8b1, 0xb8b3, 
-	0xb8b4, 0xb8b5, 0xb8b7, 0xb8b8, 0xb8ba, 0xb8bb, 0xb8bd, 0xb8bf, 
-	0xb8a0, 0xb8a0, 0xb8a0, 0xb8a0, 0xb8a1, 0xb8a1, 0xb8a2, 0xb8a2, 
-	0xb8a3, 0xb8a4, 0xb8a5, 0xb8a5, 0xb8a6, 0xb8a7, 0xb8a8, 0xb8a9, 
-	0xb8aa, 0xb8ab, 0xb8ac, 0xb8ae, 0xb8af, 0xb8b0, 0xb8b1, 0xb8b3, 
-	0xb8b4, 0xb8b5, 0xb8b7, 0xb8b8, 0xb8ba, 0xb8bb, 0xb8bd, 0xb8bf, 
-	0xb8c0, 0xb8c0, 0xb8c0, 0xb8c0, 0xb8c1, 0xb8c1, 0xb8c2, 0xb8c2, 
-	0xb8c3, 0xb8c4, 0xb8c5, 0xb8c5, 0xb8c6, 0xb8c7, 0xb8c8, 0xb8c9, 
-	0xb8ca, 0xb8cb, 0xb8cc, 0xb8ce, 0xb8cf, 0xb8d0, 0xb8d1, 0xb8d3, 
-	0xb8d4, 0xb8d5, 0xb8d7, 0xb8d8, 0xb8da, 0xb8db, 0xb8dd, 0xb8df, 
-	0xb8e0, 0xb8e0, 0xb8e0, 0xb8e0, 0xb8e1, 0xb8e1, 0xb8e2, 0xb8e2, 
-	0xb8e3, 0xb8e4, 0xb8e5, 0xb8e5, 0xb8e6, 0xb8e7, 0xb8e8, 0xb8e9, 
-	0xb8ea, 0xb8eb, 0xb8ec, 0xb8ee, 0xb8ef, 0xb8f0, 0xb8f1, 0xb8f3, 
-	0xb8f4, 0xb8f5, 0xb8f7, 0xb8f8, 0xb8fa, 0xb8fb, 0xb8fd, 0xb8ff, 
-	0xb8e0, 0xb8e0, 0xb8e0, 0xb8e0, 0xb8e1, 0xb8e1, 0xb8e2, 0xb8e2, 
-	0xb8e3, 0xb8e4, 0xb8e5, 0xb8e5, 0xb8e6, 0xb8e7, 0xb8e8, 0xb8e9, 
-	0xb8ea, 0xb8eb, 0xb8ec, 0xb8ee, 0xb8ef, 0xb8f0, 0xb8f1, 0xb8f3, 
-	0xb8f4, 0xb8f5, 0xb8f7, 0xb8f8, 0xb8fa, 0xb8fb, 0xb8fd, 0xb8ff, 
-	0xb900, 0xb900, 0xb900, 0xb900, 0xb901, 0xb901, 0xb902, 0xb902, 
-	0xb903, 0xb904, 0xb905, 0xb905, 0xb906, 0xb907, 0xb908, 0xb909, 
-	0xb90a, 0xb90b, 0xb90c, 0xb90e, 0xb90f, 0xb910, 0xb911, 0xb913, 
-	0xb914, 0xb915, 0xb917, 0xb918, 0xb91a, 0xb91b, 0xb91d, 0xb91f, 
-	0xb920, 0xb920, 0xb920, 0xb920, 0xb921, 0xb921, 0xb922, 0xb922, 
-	0xb923, 0xb924, 0xb925, 0xb925, 0xb926, 0xb927, 0xb928, 0xb929, 
-	0xb92a, 0xb92b, 0xb92c, 0xb92e, 0xb92f, 0xb930, 0xb931, 0xb933, 
-	0xb934, 0xb935, 0xb937, 0xb938, 0xb93a, 0xb93b, 0xb93d, 0xb93f, 
-	0xb940, 0xb940, 0xb940, 0xb940, 0xb941, 0xb941, 0xb942, 0xb942, 
-	0xb943, 0xb944, 0xb945, 0xb945, 0xb946, 0xb947, 0xb948, 0xb949, 
-	0xb94a, 0xb94b, 0xb94c, 0xb94e, 0xb94f, 0xb950, 0xb951, 0xb953, 
-	0xb954, 0xb955, 0xb957, 0xb958, 0xb95a, 0xb95b, 0xb95d, 0xb95f, 
-	0xb940, 0xb940, 0xb940, 0xb940, 0xb941, 0xb941, 0xb942, 0xb942, 
-	0xb943, 0xb944, 0xb945, 0xb945, 0xb946, 0xb947, 0xb948, 0xb949, 
-	0xb94a, 0xb94b, 0xb94c, 0xb94e, 0xb94f, 0xb950, 0xb951, 0xb953, 
-	0xb954, 0xb955, 0xb957, 0xb958, 0xb95a, 0xb95b, 0xb95d, 0xb95f, 
-	0xb960, 0xb960, 0xb960, 0xb960, 0xb961, 0xb961, 0xb962, 0xb962, 
-	0xb963, 0xb964, 0xb965, 0xb965, 0xb966, 0xb967, 0xb968, 0xb969, 
-	0xb96a, 0xb96b, 0xb96c, 0xb96e, 0xb96f, 0xb970, 0xb971, 0xb973, 
-	0xb974, 0xb975, 0xb977, 0xb978, 0xb97a, 0xb97b, 0xb97d, 0xb97f, 
-	0xb980, 0xb980, 0xb980, 0xb980, 0xb981, 0xb981, 0xb982, 0xb982, 
-	0xb983, 0xb984, 0xb985, 0xb985, 0xb986, 0xb987, 0xb988, 0xb989, 
-	0xb98a, 0xb98b, 0xb98c, 0xb98e, 0xb98f, 0xb990, 0xb991, 0xb993, 
-	0xb994, 0xb995, 0xb997, 0xb998, 0xb99a, 0xb99b, 0xb99d, 0xb99f, 
-	0xb9a0, 0xb9a0, 0xb9a0, 0xb9a0, 0xb9a1, 0xb9a1, 0xb9a2, 0xb9a2, 
-	0xb9a3, 0xb9a4, 0xb9a5, 0xb9a5, 0xb9a6, 0xb9a7, 0xb9a8, 0xb9a9, 
-	0xb9aa, 0xb9ab, 0xb9ac, 0xb9ae, 0xb9af, 0xb9b0, 0xb9b1, 0xb9b3, 
-	0xb9b4, 0xb9b5, 0xb9b7, 0xb9b8, 0xb9ba, 0xb9bb, 0xb9bd, 0xb9bf, 
-	0xb9c0, 0xb9c0, 0xb9c0, 0xb9c0, 0xb9c1, 0xb9c1, 0xb9c2, 0xb9c2, 
-	0xb9c3, 0xb9c4, 0xb9c5, 0xb9c5, 0xb9c6, 0xb9c7, 0xb9c8, 0xb9c9, 
-	0xb9ca, 0xb9cb, 0xb9cc, 0xb9ce, 0xb9cf, 0xb9d0, 0xb9d1, 0xb9d3, 
-	0xb9d4, 0xb9d5, 0xb9d7, 0xb9d8, 0xb9da, 0xb9db, 0xb9dd, 0xb9df, 
-	0xb9e0, 0xb9e0, 0xb9e0, 0xb9e0, 0xb9e1, 0xb9e1, 0xb9e2, 0xb9e2, 
-	0xb9e3, 0xb9e4, 0xb9e5, 0xb9e5, 0xb9e6, 0xb9e7, 0xb9e8, 0xb9e9, 
-	0xb9ea, 0xb9eb, 0xb9ec, 0xb9ee, 0xb9ef, 0xb9f0, 0xb9f1, 0xb9f3, 
-	0xb9f4, 0xb9f5, 0xb9f7, 0xb9f8, 0xb9fa, 0xb9fb, 0xb9fd, 0xb9ff, 
-	0xba00, 0xba00, 0xba00, 0xba00, 0xba01, 0xba01, 0xba02, 0xba02, 
-	0xba03, 0xba04, 0xba05, 0xba05, 0xba06, 0xba07, 0xba08, 0xba09, 
-	0xba0a, 0xba0b, 0xba0c, 0xba0e, 0xba0f, 0xba10, 0xba11, 0xba13, 
-	0xba14, 0xba15, 0xba17, 0xba18, 0xba1a, 0xba1b, 0xba1d, 0xba1f, 
-	0xba20, 0xba20, 0xba20, 0xba20, 0xba21, 0xba21, 0xba22, 0xba22, 
-	0xba23, 0xba24, 0xba25, 0xba25, 0xba26, 0xba27, 0xba28, 0xba29, 
-	0xba2a, 0xba2b, 0xba2c, 0xba2e, 0xba2f, 0xba30, 0xba31, 0xba33, 
-	0xba34, 0xba35, 0xba37, 0xba38, 0xba3a, 0xba3b, 0xba3d, 0xba3f, 
-	0xba40, 0xba40, 0xba40, 0xba40, 0xba41, 0xba41, 0xba42, 0xba42, 
-	0xba43, 0xba44, 0xba45, 0xba45, 0xba46, 0xba47, 0xba48, 0xba49, 
-	0xba4a, 0xba4b, 0xba4c, 0xba4e, 0xba4f, 0xba50, 0xba51, 0xba53, 
-	0xba54, 0xba55, 0xba57, 0xba58, 0xba5a, 0xba5b, 0xba5d, 0xba5f, 
-	0xba60, 0xba60, 0xba60, 0xba60, 0xba61, 0xba61, 0xba62, 0xba62, 
-	0xba63, 0xba64, 0xba65, 0xba65, 0xba66, 0xba67, 0xba68, 0xba69, 
-	0xba6a, 0xba6b, 0xba6c, 0xba6e, 0xba6f, 0xba70, 0xba71, 0xba73, 
-	0xba74, 0xba75, 0xba77, 0xba78, 0xba7a, 0xba7b, 0xba7d, 0xba7f, 
-	0xba80, 0xba80, 0xba80, 0xba80, 0xba81, 0xba81, 0xba82, 0xba82, 
-	0xba83, 0xba84, 0xba85, 0xba85, 0xba86, 0xba87, 0xba88, 0xba89, 
-	0xba8a, 0xba8b, 0xba8c, 0xba8e, 0xba8f, 0xba90, 0xba91, 0xba93, 
-	0xba94, 0xba95, 0xba97, 0xba98, 0xba9a, 0xba9b, 0xba9d, 0xba9f, 
-	0xbaa0, 0xbaa0, 0xbaa0, 0xbaa0, 0xbaa1, 0xbaa1, 0xbaa2, 0xbaa2, 
-	0xbaa3, 0xbaa4, 0xbaa5, 0xbaa5, 0xbaa6, 0xbaa7, 0xbaa8, 0xbaa9, 
-	0xbaaa, 0xbaab, 0xbaac, 0xbaae, 0xbaaf, 0xbab0, 0xbab1, 0xbab3, 
-	0xbab4, 0xbab5, 0xbab7, 0xbab8, 0xbaba, 0xbabb, 0xbabd, 0xbabf, 
-	0xbac0, 0xbac0, 0xbac0, 0xbac0, 0xbac1, 0xbac1, 0xbac2, 0xbac2, 
-	0xbac3, 0xbac4, 0xbac5, 0xbac5, 0xbac6, 0xbac7, 0xbac8, 0xbac9, 
-	0xbaca, 0xbacb, 0xbacc, 0xbace, 0xbacf, 0xbad0, 0xbad1, 0xbad3, 
-	0xbad4, 0xbad5, 0xbad7, 0xbad8, 0xbada, 0xbadb, 0xbadd, 0xbadf, 
-	0xbae0, 0xbae0, 0xbae0, 0xbae0, 0xbae1, 0xbae1, 0xbae2, 0xbae2, 
-	0xbae3, 0xbae4, 0xbae5, 0xbae5, 0xbae6, 0xbae7, 0xbae8, 0xbae9, 
-	0xbaea, 0xbaeb, 0xbaec, 0xbaee, 0xbaef, 0xbaf0, 0xbaf1, 0xbaf3, 
-	0xbaf4, 0xbaf5, 0xbaf7, 0xbaf8, 0xbafa, 0xbafb, 0xbafd, 0xbaff, 
-	0xbb00, 0xbb00, 0xbb00, 0xbb00, 0xbb01, 0xbb01, 0xbb02, 0xbb02, 
-	0xbb03, 0xbb04, 0xbb05, 0xbb05, 0xbb06, 0xbb07, 0xbb08, 0xbb09, 
-	0xbb0a, 0xbb0b, 0xbb0c, 0xbb0e, 0xbb0f, 0xbb10, 0xbb11, 0xbb13, 
-	0xbb14, 0xbb15, 0xbb17, 0xbb18, 0xbb1a, 0xbb1b, 0xbb1d, 0xbb1f, 
-	0xbb20, 0xbb20, 0xbb20, 0xbb20, 0xbb21, 0xbb21, 0xbb22, 0xbb22, 
-	0xbb23, 0xbb24, 0xbb25, 0xbb25, 0xbb26, 0xbb27, 0xbb28, 0xbb29, 
-	0xbb2a, 0xbb2b, 0xbb2c, 0xbb2e, 0xbb2f, 0xbb30, 0xbb31, 0xbb33, 
-	0xbb34, 0xbb35, 0xbb37, 0xbb38, 0xbb3a, 0xbb3b, 0xbb3d, 0xbb3f, 
-	0xbb40, 0xbb40, 0xbb40, 0xbb40, 0xbb41, 0xbb41, 0xbb42, 0xbb42, 
-	0xbb43, 0xbb44, 0xbb45, 0xbb45, 0xbb46, 0xbb47, 0xbb48, 0xbb49, 
-	0xbb4a, 0xbb4b, 0xbb4c, 0xbb4e, 0xbb4f, 0xbb50, 0xbb51, 0xbb53, 
-	0xbb54, 0xbb55, 0xbb57, 0xbb58, 0xbb5a, 0xbb5b, 0xbb5d, 0xbb5f, 
-	0xbb80, 0xbb80, 0xbb80, 0xbb80, 0xbb81, 0xbb81, 0xbb82, 0xbb82, 
-	0xbb83, 0xbb84, 0xbb85, 0xbb85, 0xbb86, 0xbb87, 0xbb88, 0xbb89, 
-	0xbb8a, 0xbb8b, 0xbb8c, 0xbb8e, 0xbb8f, 0xbb90, 0xbb91, 0xbb93, 
-	0xbb94, 0xbb95, 0xbb97, 0xbb98, 0xbb9a, 0xbb9b, 0xbb9d, 0xbb9f, 
-	0xbba0, 0xbba0, 0xbba0, 0xbba0, 0xbba1, 0xbba1, 0xbba2, 0xbba2, 
-	0xbba3, 0xbba4, 0xbba5, 0xbba5, 0xbba6, 0xbba7, 0xbba8, 0xbba9, 
-	0xbbaa, 0xbbab, 0xbbac, 0xbbae, 0xbbaf, 0xbbb0, 0xbbb1, 0xbbb3, 
-	0xbbb4, 0xbbb5, 0xbbb7, 0xbbb8, 0xbbba, 0xbbbb, 0xbbbd, 0xbbbf, 
-	0xbbc0, 0xbbc0, 0xbbc0, 0xbbc0, 0xbbc1, 0xbbc1, 0xbbc2, 0xbbc2, 
-	0xbbc3, 0xbbc4, 0xbbc5, 0xbbc5, 0xbbc6, 0xbbc7, 0xbbc8, 0xbbc9, 
-	0xbbca, 0xbbcb, 0xbbcc, 0xbbce, 0xbbcf, 0xbbd0, 0xbbd1, 0xbbd3, 
-	0xbbd4, 0xbbd5, 0xbbd7, 0xbbd8, 0xbbda, 0xbbdb, 0xbbdd, 0xbbdf, 
-	0xbbe0, 0xbbe0, 0xbbe0, 0xbbe0, 0xbbe1, 0xbbe1, 0xbbe2, 0xbbe2, 
-	0xbbe3, 0xbbe4, 0xbbe5, 0xbbe5, 0xbbe6, 0xbbe7, 0xbbe8, 0xbbe9, 
-	0xbbea, 0xbbeb, 0xbbec, 0xbbee, 0xbbef, 0xbbf0, 0xbbf1, 0xbbf3, 
-	0xbbf4, 0xbbf5, 0xbbf7, 0xbbf8, 0xbbfa, 0xbbfb, 0xbbfd, 0xbbff, 
-	0xbc00, 0xbc00, 0xbc00, 0xbc00, 0xbc01, 0xbc01, 0xbc02, 0xbc02, 
-	0xbc03, 0xbc04, 0xbc05, 0xbc05, 0xbc06, 0xbc07, 0xbc08, 0xbc09, 
-	0xbc0a, 0xbc0b, 0xbc0c, 0xbc0e, 0xbc0f, 0xbc10, 0xbc11, 0xbc13, 
-	0xbc14, 0xbc15, 0xbc17, 0xbc18, 0xbc1a, 0xbc1b, 0xbc1d, 0xbc1f, 
-	0xbc40, 0xbc40, 0xbc40, 0xbc40, 0xbc41, 0xbc41, 0xbc42, 0xbc42, 
-	0xbc43, 0xbc44, 0xbc45, 0xbc45, 0xbc46, 0xbc47, 0xbc48, 0xbc49, 
-	0xbc4a, 0xbc4b, 0xbc4c, 0xbc4e, 0xbc4f, 0xbc50, 0xbc51, 0xbc53, 
-	0xbc54, 0xbc55, 0xbc57, 0xbc58, 0xbc5a, 0xbc5b, 0xbc5d, 0xbc5f, 
-	0xbc60, 0xbc60, 0xbc60, 0xbc60, 0xbc61, 0xbc61, 0xbc62, 0xbc62, 
-	0xbc63, 0xbc64, 0xbc65, 0xbc65, 0xbc66, 0xbc67, 0xbc68, 0xbc69, 
-	0xbc6a, 0xbc6b, 0xbc6c, 0xbc6e, 0xbc6f, 0xbc70, 0xbc71, 0xbc73, 
-	0xbc74, 0xbc75, 0xbc77, 0xbc78, 0xbc7a, 0xbc7b, 0xbc7d, 0xbc7f, 
-	0xbc80, 0xbc80, 0xbc80, 0xbc80, 0xbc81, 0xbc81, 0xbc82, 0xbc82, 
-	0xbc83, 0xbc84, 0xbc85, 0xbc85, 0xbc86, 0xbc87, 0xbc88, 0xbc89, 
-	0xbc8a, 0xbc8b, 0xbc8c, 0xbc8e, 0xbc8f, 0xbc90, 0xbc91, 0xbc93, 
-	0xbc94, 0xbc95, 0xbc97, 0xbc98, 0xbc9a, 0xbc9b, 0xbc9d, 0xbc9f, 
-	0xbcc0, 0xbcc0, 0xbcc0, 0xbcc0, 0xbcc1, 0xbcc1, 0xbcc2, 0xbcc2, 
-	0xbcc3, 0xbcc4, 0xbcc5, 0xbcc5, 0xbcc6, 0xbcc7, 0xbcc8, 0xbcc9, 
-	0xbcca, 0xbccb, 0xbccc, 0xbcce, 0xbccf, 0xbcd0, 0xbcd1, 0xbcd3, 
-	0xbcd4, 0xbcd5, 0xbcd7, 0xbcd8, 0xbcda, 0xbcdb, 0xbcdd, 0xbcdf, 
-	0xbce0, 0xbce0, 0xbce0, 0xbce0, 0xbce1, 0xbce1, 0xbce2, 0xbce2, 
-	0xbce3, 0xbce4, 0xbce5, 0xbce5, 0xbce6, 0xbce7, 0xbce8, 0xbce9, 
-	0xbcea, 0xbceb, 0xbcec, 0xbcee, 0xbcef, 0xbcf0, 0xbcf1, 0xbcf3, 
-	0xbcf4, 0xbcf5, 0xbcf7, 0xbcf8, 0xbcfa, 0xbcfb, 0xbcfd, 0xbcff, 
-	0xbd00, 0xbd00, 0xbd00, 0xbd00, 0xbd01, 0xbd01, 0xbd02, 0xbd02, 
-	0xbd03, 0xbd04, 0xbd05, 0xbd05, 0xbd06, 0xbd07, 0xbd08, 0xbd09, 
-	0xbd0a, 0xbd0b, 0xbd0c, 0xbd0e, 0xbd0f, 0xbd10, 0xbd11, 0xbd13, 
-	0xbd14, 0xbd15, 0xbd17, 0xbd18, 0xbd1a, 0xbd1b, 0xbd1d, 0xbd1f, 
-	0xbd40, 0xbd40, 0xbd40, 0xbd40, 0xbd41, 0xbd41, 0xbd42, 0xbd42, 
-	0xbd43, 0xbd44, 0xbd45, 0xbd45, 0xbd46, 0xbd47, 0xbd48, 0xbd49, 
-	0xbd4a, 0xbd4b, 0xbd4c, 0xbd4e, 0xbd4f, 0xbd50, 0xbd51, 0xbd53, 
-	0xbd54, 0xbd55, 0xbd57, 0xbd58, 0xbd5a, 0xbd5b, 0xbd5d, 0xbd5f, 
-	0xbd60, 0xbd60, 0xbd60, 0xbd60, 0xbd61, 0xbd61, 0xbd62, 0xbd62, 
-	0xbd63, 0xbd64, 0xbd65, 0xbd65, 0xbd66, 0xbd67, 0xbd68, 0xbd69, 
-	0xbd6a, 0xbd6b, 0xbd6c, 0xbd6e, 0xbd6f, 0xbd70, 0xbd71, 0xbd73, 
-	0xbd74, 0xbd75, 0xbd77, 0xbd78, 0xbd7a, 0xbd7b, 0xbd7d, 0xbd7f, 
-	0xbd80, 0xbd80, 0xbd80, 0xbd80, 0xbd81, 0xbd81, 0xbd82, 0xbd82, 
-	0xbd83, 0xbd84, 0xbd85, 0xbd85, 0xbd86, 0xbd87, 0xbd88, 0xbd89, 
-	0xbd8a, 0xbd8b, 0xbd8c, 0xbd8e, 0xbd8f, 0xbd90, 0xbd91, 0xbd93, 
-	0xbd94, 0xbd95, 0xbd97, 0xbd98, 0xbd9a, 0xbd9b, 0xbd9d, 0xbd9f, 
-	0xbdc0, 0xbdc0, 0xbdc0, 0xbdc0, 0xbdc1, 0xbdc1, 0xbdc2, 0xbdc2, 
-	0xbdc3, 0xbdc4, 0xbdc5, 0xbdc5, 0xbdc6, 0xbdc7, 0xbdc8, 0xbdc9, 
-	0xbdca, 0xbdcb, 0xbdcc, 0xbdce, 0xbdcf, 0xbdd0, 0xbdd1, 0xbdd3, 
-	0xbdd4, 0xbdd5, 0xbdd7, 0xbdd8, 0xbdda, 0xbddb, 0xbddd, 0xbddf, 
-	0xbde0, 0xbde0, 0xbde0, 0xbde0, 0xbde1, 0xbde1, 0xbde2, 0xbde2, 
-	0xbde3, 0xbde4, 0xbde5, 0xbde5, 0xbde6, 0xbde7, 0xbde8, 0xbde9, 
-	0xbdea, 0xbdeb, 0xbdec, 0xbdee, 0xbdef, 0xbdf0, 0xbdf1, 0xbdf3, 
-	0xbdf4, 0xbdf5, 0xbdf7, 0xbdf8, 0xbdfa, 0xbdfb, 0xbdfd, 0xbdff, 
-	0xbe20, 0xbe20, 0xbe20, 0xbe20, 0xbe21, 0xbe21, 0xbe22, 0xbe22, 
-	0xbe23, 0xbe24, 0xbe25, 0xbe25, 0xbe26, 0xbe27, 0xbe28, 0xbe29, 
-	0xbe2a, 0xbe2b, 0xbe2c, 0xbe2e, 0xbe2f, 0xbe30, 0xbe31, 0xbe33, 
-	0xbe34, 0xbe35, 0xbe37, 0xbe38, 0xbe3a, 0xbe3b, 0xbe3d, 0xbe3f, 
-	0xbe40, 0xbe40, 0xbe40, 0xbe40, 0xbe41, 0xbe41, 0xbe42, 0xbe42, 
-	0xbe43, 0xbe44, 0xbe45, 0xbe45, 0xbe46, 0xbe47, 0xbe48, 0xbe49, 
-	0xbe4a, 0xbe4b, 0xbe4c, 0xbe4e, 0xbe4f, 0xbe50, 0xbe51, 0xbe53, 
-	0xbe54, 0xbe55, 0xbe57, 0xbe58, 0xbe5a, 0xbe5b, 0xbe5d, 0xbe5f, 
-	0xbe80, 0xbe80, 0xbe80, 0xbe80, 0xbe81, 0xbe81, 0xbe82, 0xbe82, 
-	0xbe83, 0xbe84, 0xbe85, 0xbe85, 0xbe86, 0xbe87, 0xbe88, 0xbe89, 
-	0xbe8a, 0xbe8b, 0xbe8c, 0xbe8e, 0xbe8f, 0xbe90, 0xbe91, 0xbe93, 
-	0xbe94, 0xbe95, 0xbe97, 0xbe98, 0xbe9a, 0xbe9b, 0xbe9d, 0xbe9f, 
-	0xbea0, 0xbea0, 0xbea0, 0xbea0, 0xbea1, 0xbea1, 0xbea2, 0xbea2, 
-	0xbea3, 0xbea4, 0xbea5, 0xbea5, 0xbea6, 0xbea7, 0xbea8, 0xbea9, 
-	0xbeaa, 0xbeab, 0xbeac, 0xbeae, 0xbeaf, 0xbeb0, 0xbeb1, 0xbeb3, 
-	0xbeb4, 0xbeb5, 0xbeb7, 0xbeb8, 0xbeba, 0xbebb, 0xbebd, 0xbebf, 
-	0xbee0, 0xbee0, 0xbee0, 0xbee0, 0xbee1, 0xbee1, 0xbee2, 0xbee2, 
-	0xbee3, 0xbee4, 0xbee5, 0xbee5, 0xbee6, 0xbee7, 0xbee8, 0xbee9, 
-	0xbeea, 0xbeeb, 0xbeec, 0xbeee, 0xbeef, 0xbef0, 0xbef1, 0xbef3, 
-	0xbef4, 0xbef5, 0xbef7, 0xbef8, 0xbefa, 0xbefb, 0xbefd, 0xbeff, 
-	0xbf00, 0xbf00, 0xbf00, 0xbf00, 0xbf01, 0xbf01, 0xbf02, 0xbf02, 
-	0xbf03, 0xbf04, 0xbf05, 0xbf05, 0xbf06, 0xbf07, 0xbf08, 0xbf09, 
-	0xbf0a, 0xbf0b, 0xbf0c, 0xbf0e, 0xbf0f, 0xbf10, 0xbf11, 0xbf13, 
-	0xbf14, 0xbf15, 0xbf17, 0xbf18, 0xbf1a, 0xbf1b, 0xbf1d, 0xbf1f, 
-	0xbf40, 0xbf40, 0xbf40, 0xbf40, 0xbf41, 0xbf41, 0xbf42, 0xbf42, 
-	0xbf43, 0xbf44, 0xbf45, 0xbf45, 0xbf46, 0xbf47, 0xbf48, 0xbf49, 
-	0xbf4a, 0xbf4b, 0xbf4c, 0xbf4e, 0xbf4f, 0xbf50, 0xbf51, 0xbf53, 
-	0xbf54, 0xbf55, 0xbf57, 0xbf58, 0xbf5a, 0xbf5b, 0xbf5d, 0xbf5f, 
-	0xbf60, 0xbf60, 0xbf60, 0xbf60, 0xbf61, 0xbf61, 0xbf62, 0xbf62, 
-	0xbf63, 0xbf64, 0xbf65, 0xbf65, 0xbf66, 0xbf67, 0xbf68, 0xbf69, 
-	0xbf6a, 0xbf6b, 0xbf6c, 0xbf6e, 0xbf6f, 0xbf70, 0xbf71, 0xbf73, 
-	0xbf74, 0xbf75, 0xbf77, 0xbf78, 0xbf7a, 0xbf7b, 0xbf7d, 0xbf7f, 
-	0xbfa0, 0xbfa0, 0xbfa0, 0xbfa0, 0xbfa1, 0xbfa1, 0xbfa2, 0xbfa2, 
-	0xbfa3, 0xbfa4, 0xbfa5, 0xbfa5, 0xbfa6, 0xbfa7, 0xbfa8, 0xbfa9, 
-	0xbfaa, 0xbfab, 0xbfac, 0xbfae, 0xbfaf, 0xbfb0, 0xbfb1, 0xbfb3, 
-	0xbfb4, 0xbfb5, 0xbfb7, 0xbfb8, 0xbfba, 0xbfbb, 0xbfbd, 0xbfbf, 
-	0xbfe0, 0xbfe0, 0xbfe0, 0xbfe0, 0xbfe1, 0xbfe1, 0xbfe2, 0xbfe2, 
-	0xbfe3, 0xbfe4, 0xbfe5, 0xbfe5, 0xbfe6, 0xbfe7, 0xbfe8, 0xbfe9, 
-	0xbfea, 0xbfeb, 0xbfec, 0xbfee, 0xbfef, 0xbff0, 0xbff1, 0xbff3, 
-	0xbff4, 0xbff5, 0xbff7, 0xbff8, 0xbffa, 0xbffb, 0xbffd, 0xbfff, 
-	0xc000, 0xc000, 0xc000, 0xc000, 0xc001, 0xc001, 0xc002, 0xc002, 
-	0xc003, 0xc004, 0xc005, 0xc005, 0xc006, 0xc007, 0xc008, 0xc009, 
-	0xc00a, 0xc00b, 0xc00c, 0xc00e, 0xc00f, 0xc010, 0xc011, 0xc013, 
-	0xc014, 0xc015, 0xc017, 0xc018, 0xc01a, 0xc01b, 0xc01d, 0xc01f, 
-	0xc000, 0xc000, 0xc000, 0xc000, 0xc001, 0xc001, 0xc002, 0xc002, 
-	0xc003, 0xc004, 0xc005, 0xc005, 0xc006, 0xc007, 0xc008, 0xc009, 
-	0xc00a, 0xc00b, 0xc00c, 0xc00e, 0xc00f, 0xc010, 0xc011, 0xc013, 
-	0xc014, 0xc015, 0xc017, 0xc018, 0xc01a, 0xc01b, 0xc01d, 0xc01f, 
-	0xc000, 0xc000, 0xc000, 0xc000, 0xc001, 0xc001, 0xc002, 0xc002, 
-	0xc003, 0xc004, 0xc005, 0xc005, 0xc006, 0xc007, 0xc008, 0xc009, 
-	0xc00a, 0xc00b, 0xc00c, 0xc00e, 0xc00f, 0xc010, 0xc011, 0xc013, 
-	0xc014, 0xc015, 0xc017, 0xc018, 0xc01a, 0xc01b, 0xc01d, 0xc01f, 
-	0xc000, 0xc000, 0xc000, 0xc000, 0xc001, 0xc001, 0xc002, 0xc002, 
-	0xc003, 0xc004, 0xc005, 0xc005, 0xc006, 0xc007, 0xc008, 0xc009, 
-	0xc00a, 0xc00b, 0xc00c, 0xc00e, 0xc00f, 0xc010, 0xc011, 0xc013, 
-	0xc014, 0xc015, 0xc017, 0xc018, 0xc01a, 0xc01b, 0xc01d, 0xc01f, 
-	0xc000, 0xc000, 0xc000, 0xc000, 0xc001, 0xc001, 0xc002, 0xc002, 
-	0xc003, 0xc004, 0xc005, 0xc005, 0xc006, 0xc007, 0xc008, 0xc009, 
-	0xc00a, 0xc00b, 0xc00c, 0xc00e, 0xc00f, 0xc010, 0xc011, 0xc013, 
-	0xc014, 0xc015, 0xc017, 0xc018, 0xc01a, 0xc01b, 0xc01d, 0xc01f, 
-	0xc020, 0xc020, 0xc020, 0xc020, 0xc021, 0xc021, 0xc022, 0xc022, 
-	0xc023, 0xc024, 0xc025, 0xc025, 0xc026, 0xc027, 0xc028, 0xc029, 
-	0xc02a, 0xc02b, 0xc02c, 0xc02e, 0xc02f, 0xc030, 0xc031, 0xc033, 
-	0xc034, 0xc035, 0xc037, 0xc038, 0xc03a, 0xc03b, 0xc03d, 0xc03f, 
-	0xc020, 0xc020, 0xc020, 0xc020, 0xc021, 0xc021, 0xc022, 0xc022, 
-	0xc023, 0xc024, 0xc025, 0xc025, 0xc026, 0xc027, 0xc028, 0xc029, 
-	0xc02a, 0xc02b, 0xc02c, 0xc02e, 0xc02f, 0xc030, 0xc031, 0xc033, 
-	0xc034, 0xc035, 0xc037, 0xc038, 0xc03a, 0xc03b, 0xc03d, 0xc03f, 
-	0xc020, 0xc020, 0xc020, 0xc020, 0xc021, 0xc021, 0xc022, 0xc022, 
-	0xc023, 0xc024, 0xc025, 0xc025, 0xc026, 0xc027, 0xc028, 0xc029, 
-	0xc02a, 0xc02b, 0xc02c, 0xc02e, 0xc02f, 0xc030, 0xc031, 0xc033, 
-	0xc034, 0xc035, 0xc037, 0xc038, 0xc03a, 0xc03b, 0xc03d, 0xc03f, 
-	0xc040, 0xc040, 0xc040, 0xc040, 0xc041, 0xc041, 0xc042, 0xc042, 
-	0xc043, 0xc044, 0xc045, 0xc045, 0xc046, 0xc047, 0xc048, 0xc049, 
-	0xc04a, 0xc04b, 0xc04c, 0xc04e, 0xc04f, 0xc050, 0xc051, 0xc053, 
-	0xc054, 0xc055, 0xc057, 0xc058, 0xc05a, 0xc05b, 0xc05d, 0xc05f, 
-	0xc040, 0xc040, 0xc040, 0xc040, 0xc041, 0xc041, 0xc042, 0xc042, 
-	0xc043, 0xc044, 0xc045, 0xc045, 0xc046, 0xc047, 0xc048, 0xc049, 
-	0xc04a, 0xc04b, 0xc04c, 0xc04e, 0xc04f, 0xc050, 0xc051, 0xc053, 
-	0xc054, 0xc055, 0xc057, 0xc058, 0xc05a, 0xc05b, 0xc05d, 0xc05f, 
-	0xc060, 0xc060, 0xc060, 0xc060, 0xc061, 0xc061, 0xc062, 0xc062, 
-	0xc063, 0xc064, 0xc065, 0xc065, 0xc066, 0xc067, 0xc068, 0xc069, 
-	0xc06a, 0xc06b, 0xc06c, 0xc06e, 0xc06f, 0xc070, 0xc071, 0xc073, 
-	0xc074, 0xc075, 0xc077, 0xc078, 0xc07a, 0xc07b, 0xc07d, 0xc07f, 
-	0xc060, 0xc060, 0xc060, 0xc060, 0xc061, 0xc061, 0xc062, 0xc062, 
-	0xc063, 0xc064, 0xc065, 0xc065, 0xc066, 0xc067, 0xc068, 0xc069, 
-	0xc06a, 0xc06b, 0xc06c, 0xc06e, 0xc06f, 0xc070, 0xc071, 0xc073, 
-	0xc074, 0xc075, 0xc077, 0xc078, 0xc07a, 0xc07b, 0xc07d, 0xc07f, 
-	0xc080, 0xc080, 0xc080, 0xc080, 0xc081, 0xc081, 0xc082, 0xc082, 
-	0xc083, 0xc084, 0xc085, 0xc085, 0xc086, 0xc087, 0xc088, 0xc089, 
-	0xc08a, 0xc08b, 0xc08c, 0xc08e, 0xc08f, 0xc090, 0xc091, 0xc093, 
-	0xc094, 0xc095, 0xc097, 0xc098, 0xc09a, 0xc09b, 0xc09d, 0xc09f, 
-	0xc0a0, 0xc0a0, 0xc0a0, 0xc0a0, 0xc0a1, 0xc0a1, 0xc0a2, 0xc0a2, 
-	0xc0a3, 0xc0a4, 0xc0a5, 0xc0a5, 0xc0a6, 0xc0a7, 0xc0a8, 0xc0a9, 
-	0xc0aa, 0xc0ab, 0xc0ac, 0xc0ae, 0xc0af, 0xc0b0, 0xc0b1, 0xc0b3, 
-	0xc0b4, 0xc0b5, 0xc0b7, 0xc0b8, 0xc0ba, 0xc0bb, 0xc0bd, 0xc0bf, 
-	0xc0a0, 0xc0a0, 0xc0a0, 0xc0a0, 0xc0a1, 0xc0a1, 0xc0a2, 0xc0a2, 
-	0xc0a3, 0xc0a4, 0xc0a5, 0xc0a5, 0xc0a6, 0xc0a7, 0xc0a8, 0xc0a9, 
-	0xc0aa, 0xc0ab, 0xc0ac, 0xc0ae, 0xc0af, 0xc0b0, 0xc0b1, 0xc0b3, 
-	0xc0b4, 0xc0b5, 0xc0b7, 0xc0b8, 0xc0ba, 0xc0bb, 0xc0bd, 0xc0bf, 
-	0xc0c0, 0xc0c0, 0xc0c0, 0xc0c0, 0xc0c1, 0xc0c1, 0xc0c2, 0xc0c2, 
-	0xc0c3, 0xc0c4, 0xc0c5, 0xc0c5, 0xc0c6, 0xc0c7, 0xc0c8, 0xc0c9, 
-	0xc0ca, 0xc0cb, 0xc0cc, 0xc0ce, 0xc0cf, 0xc0d0, 0xc0d1, 0xc0d3, 
-	0xc0d4, 0xc0d5, 0xc0d7, 0xc0d8, 0xc0da, 0xc0db, 0xc0dd, 0xc0df, 
-	0xc0e0, 0xc0e0, 0xc0e0, 0xc0e0, 0xc0e1, 0xc0e1, 0xc0e2, 0xc0e2, 
-	0xc0e3, 0xc0e4, 0xc0e5, 0xc0e5, 0xc0e6, 0xc0e7, 0xc0e8, 0xc0e9, 
-	0xc0ea, 0xc0eb, 0xc0ec, 0xc0ee, 0xc0ef, 0xc0f0, 0xc0f1, 0xc0f3, 
-	0xc0f4, 0xc0f5, 0xc0f7, 0xc0f8, 0xc0fa, 0xc0fb, 0xc0fd, 0xc0ff, 
-	0xc0e0, 0xc0e0, 0xc0e0, 0xc0e0, 0xc0e1, 0xc0e1, 0xc0e2, 0xc0e2, 
-	0xc0e3, 0xc0e4, 0xc0e5, 0xc0e5, 0xc0e6, 0xc0e7, 0xc0e8, 0xc0e9, 
-	0xc0ea, 0xc0eb, 0xc0ec, 0xc0ee, 0xc0ef, 0xc0f0, 0xc0f1, 0xc0f3, 
-	0xc0f4, 0xc0f5, 0xc0f7, 0xc0f8, 0xc0fa, 0xc0fb, 0xc0fd, 0xc0ff, 
-	0xc100, 0xc100, 0xc100, 0xc100, 0xc101, 0xc101, 0xc102, 0xc102, 
-	0xc103, 0xc104, 0xc105, 0xc105, 0xc106, 0xc107, 0xc108, 0xc109, 
-	0xc10a, 0xc10b, 0xc10c, 0xc10e, 0xc10f, 0xc110, 0xc111, 0xc113, 
-	0xc114, 0xc115, 0xc117, 0xc118, 0xc11a, 0xc11b, 0xc11d, 0xc11f, 
-	0xc120, 0xc120, 0xc120, 0xc120, 0xc121, 0xc121, 0xc122, 0xc122, 
-	0xc123, 0xc124, 0xc125, 0xc125, 0xc126, 0xc127, 0xc128, 0xc129, 
-	0xc12a, 0xc12b, 0xc12c, 0xc12e, 0xc12f, 0xc130, 0xc131, 0xc133, 
-	0xc134, 0xc135, 0xc137, 0xc138, 0xc13a, 0xc13b, 0xc13d, 0xc13f, 
-	0xc140, 0xc140, 0xc140, 0xc140, 0xc141, 0xc141, 0xc142, 0xc142, 
-	0xc143, 0xc144, 0xc145, 0xc145, 0xc146, 0xc147, 0xc148, 0xc149, 
-	0xc14a, 0xc14b, 0xc14c, 0xc14e, 0xc14f, 0xc150, 0xc151, 0xc153, 
-	0xc154, 0xc155, 0xc157, 0xc158, 0xc15a, 0xc15b, 0xc15d, 0xc15f, 
-	0xc140, 0xc140, 0xc140, 0xc140, 0xc141, 0xc141, 0xc142, 0xc142, 
-	0xc143, 0xc144, 0xc145, 0xc145, 0xc146, 0xc147, 0xc148, 0xc149, 
-	0xc14a, 0xc14b, 0xc14c, 0xc14e, 0xc14f, 0xc150, 0xc151, 0xc153, 
-	0xc154, 0xc155, 0xc157, 0xc158, 0xc15a, 0xc15b, 0xc15d, 0xc15f, 
-	0xc160, 0xc160, 0xc160, 0xc160, 0xc161, 0xc161, 0xc162, 0xc162, 
-	0xc163, 0xc164, 0xc165, 0xc165, 0xc166, 0xc167, 0xc168, 0xc169, 
-	0xc16a, 0xc16b, 0xc16c, 0xc16e, 0xc16f, 0xc170, 0xc171, 0xc173, 
-	0xc174, 0xc175, 0xc177, 0xc178, 0xc17a, 0xc17b, 0xc17d, 0xc17f, 
-	0xc180, 0xc180, 0xc180, 0xc180, 0xc181, 0xc181, 0xc182, 0xc182, 
-	0xc183, 0xc184, 0xc185, 0xc185, 0xc186, 0xc187, 0xc188, 0xc189, 
-	0xc18a, 0xc18b, 0xc18c, 0xc18e, 0xc18f, 0xc190, 0xc191, 0xc193, 
-	0xc194, 0xc195, 0xc197, 0xc198, 0xc19a, 0xc19b, 0xc19d, 0xc19f, 
-	0xc1a0, 0xc1a0, 0xc1a0, 0xc1a0, 0xc1a1, 0xc1a1, 0xc1a2, 0xc1a2, 
-	0xc1a3, 0xc1a4, 0xc1a5, 0xc1a5, 0xc1a6, 0xc1a7, 0xc1a8, 0xc1a9, 
-	0xc1aa, 0xc1ab, 0xc1ac, 0xc1ae, 0xc1af, 0xc1b0, 0xc1b1, 0xc1b3, 
-	0xc1b4, 0xc1b5, 0xc1b7, 0xc1b8, 0xc1ba, 0xc1bb, 0xc1bd, 0xc1bf, 
-	0xc1c0, 0xc1c0, 0xc1c0, 0xc1c0, 0xc1c1, 0xc1c1, 0xc1c2, 0xc1c2, 
-	0xc1c3, 0xc1c4, 0xc1c5, 0xc1c5, 0xc1c6, 0xc1c7, 0xc1c8, 0xc1c9, 
-	0xc1ca, 0xc1cb, 0xc1cc, 0xc1ce, 0xc1cf, 0xc1d0, 0xc1d1, 0xc1d3, 
-	0xc1d4, 0xc1d5, 0xc1d7, 0xc1d8, 0xc1da, 0xc1db, 0xc1dd, 0xc1df, 
-	0xc1e0, 0xc1e0, 0xc1e0, 0xc1e0, 0xc1e1, 0xc1e1, 0xc1e2, 0xc1e2, 
-	0xc1e3, 0xc1e4, 0xc1e5, 0xc1e5, 0xc1e6, 0xc1e7, 0xc1e8, 0xc1e9, 
-	0xc1ea, 0xc1eb, 0xc1ec, 0xc1ee, 0xc1ef, 0xc1f0, 0xc1f1, 0xc1f3, 
-	0xc1f4, 0xc1f5, 0xc1f7, 0xc1f8, 0xc1fa, 0xc1fb, 0xc1fd, 0xc1ff, 
-	0xc200, 0xc200, 0xc200, 0xc200, 0xc201, 0xc201, 0xc202, 0xc202, 
-	0xc203, 0xc204, 0xc205, 0xc205, 0xc206, 0xc207, 0xc208, 0xc209, 
-	0xc20a, 0xc20b, 0xc20c, 0xc20e, 0xc20f, 0xc210, 0xc211, 0xc213, 
-	0xc214, 0xc215, 0xc217, 0xc218, 0xc21a, 0xc21b, 0xc21d, 0xc21f, 
-	0xc220, 0xc220, 0xc220, 0xc220, 0xc221, 0xc221, 0xc222, 0xc222, 
-	0xc223, 0xc224, 0xc225, 0xc225, 0xc226, 0xc227, 0xc228, 0xc229, 
-	0xc22a, 0xc22b, 0xc22c, 0xc22e, 0xc22f, 0xc230, 0xc231, 0xc233, 
-	0xc234, 0xc235, 0xc237, 0xc238, 0xc23a, 0xc23b, 0xc23d, 0xc23f, 
-	0xc240, 0xc240, 0xc240, 0xc240, 0xc241, 0xc241, 0xc242, 0xc242, 
-	0xc243, 0xc244, 0xc245, 0xc245, 0xc246, 0xc247, 0xc248, 0xc249, 
-	0xc24a, 0xc24b, 0xc24c, 0xc24e, 0xc24f, 0xc250, 0xc251, 0xc253, 
-	0xc254, 0xc255, 0xc257, 0xc258, 0xc25a, 0xc25b, 0xc25d, 0xc25f, 
-	0xc260, 0xc260, 0xc260, 0xc260, 0xc261, 0xc261, 0xc262, 0xc262, 
-	0xc263, 0xc264, 0xc265, 0xc265, 0xc266, 0xc267, 0xc268, 0xc269, 
-	0xc26a, 0xc26b, 0xc26c, 0xc26e, 0xc26f, 0xc270, 0xc271, 0xc273, 
-	0xc274, 0xc275, 0xc277, 0xc278, 0xc27a, 0xc27b, 0xc27d, 0xc27f, 
-	0xc280, 0xc280, 0xc280, 0xc280, 0xc281, 0xc281, 0xc282, 0xc282, 
-	0xc283, 0xc284, 0xc285, 0xc285, 0xc286, 0xc287, 0xc288, 0xc289, 
-	0xc28a, 0xc28b, 0xc28c, 0xc28e, 0xc28f, 0xc290, 0xc291, 0xc293, 
-	0xc294, 0xc295, 0xc297, 0xc298, 0xc29a, 0xc29b, 0xc29d, 0xc29f, 
-	0xc2a0, 0xc2a0, 0xc2a0, 0xc2a0, 0xc2a1, 0xc2a1, 0xc2a2, 0xc2a2, 
-	0xc2a3, 0xc2a4, 0xc2a5, 0xc2a5, 0xc2a6, 0xc2a7, 0xc2a8, 0xc2a9, 
-	0xc2aa, 0xc2ab, 0xc2ac, 0xc2ae, 0xc2af, 0xc2b0, 0xc2b1, 0xc2b3, 
-	0xc2b4, 0xc2b5, 0xc2b7, 0xc2b8, 0xc2ba, 0xc2bb, 0xc2bd, 0xc2bf, 
-	0xc2c0, 0xc2c0, 0xc2c0, 0xc2c0, 0xc2c1, 0xc2c1, 0xc2c2, 0xc2c2, 
-	0xc2c3, 0xc2c4, 0xc2c5, 0xc2c5, 0xc2c6, 0xc2c7, 0xc2c8, 0xc2c9, 
-	0xc2ca, 0xc2cb, 0xc2cc, 0xc2ce, 0xc2cf, 0xc2d0, 0xc2d1, 0xc2d3, 
-	0xc2d4, 0xc2d5, 0xc2d7, 0xc2d8, 0xc2da, 0xc2db, 0xc2dd, 0xc2df, 
-	0xc2e0, 0xc2e0, 0xc2e0, 0xc2e0, 0xc2e1, 0xc2e1, 0xc2e2, 0xc2e2, 
-	0xc2e3, 0xc2e4, 0xc2e5, 0xc2e5, 0xc2e6, 0xc2e7, 0xc2e8, 0xc2e9, 
-	0xc2ea, 0xc2eb, 0xc2ec, 0xc2ee, 0xc2ef, 0xc2f0, 0xc2f1, 0xc2f3, 
-	0xc2f4, 0xc2f5, 0xc2f7, 0xc2f8, 0xc2fa, 0xc2fb, 0xc2fd, 0xc2ff, 
-	0xc300, 0xc300, 0xc300, 0xc300, 0xc301, 0xc301, 0xc302, 0xc302, 
-	0xc303, 0xc304, 0xc305, 0xc305, 0xc306, 0xc307, 0xc308, 0xc309, 
-	0xc30a, 0xc30b, 0xc30c, 0xc30e, 0xc30f, 0xc310, 0xc311, 0xc313, 
-	0xc314, 0xc315, 0xc317, 0xc318, 0xc31a, 0xc31b, 0xc31d, 0xc31f, 
-	0xc320, 0xc320, 0xc320, 0xc320, 0xc321, 0xc321, 0xc322, 0xc322, 
-	0xc323, 0xc324, 0xc325, 0xc325, 0xc326, 0xc327, 0xc328, 0xc329, 
-	0xc32a, 0xc32b, 0xc32c, 0xc32e, 0xc32f, 0xc330, 0xc331, 0xc333, 
-	0xc334, 0xc335, 0xc337, 0xc338, 0xc33a, 0xc33b, 0xc33d, 0xc33f, 
-	0xc340, 0xc340, 0xc340, 0xc340, 0xc341, 0xc341, 0xc342, 0xc342, 
-	0xc343, 0xc344, 0xc345, 0xc345, 0xc346, 0xc347, 0xc348, 0xc349, 
-	0xc34a, 0xc34b, 0xc34c, 0xc34e, 0xc34f, 0xc350, 0xc351, 0xc353, 
-	0xc354, 0xc355, 0xc357, 0xc358, 0xc35a, 0xc35b, 0xc35d, 0xc35f, 
-	0xc380, 0xc380, 0xc380, 0xc380, 0xc381, 0xc381, 0xc382, 0xc382, 
-	0xc383, 0xc384, 0xc385, 0xc385, 0xc386, 0xc387, 0xc388, 0xc389, 
-	0xc38a, 0xc38b, 0xc38c, 0xc38e, 0xc38f, 0xc390, 0xc391, 0xc393, 
-	0xc394, 0xc395, 0xc397, 0xc398, 0xc39a, 0xc39b, 0xc39d, 0xc39f, 
-	0xc3a0, 0xc3a0, 0xc3a0, 0xc3a0, 0xc3a1, 0xc3a1, 0xc3a2, 0xc3a2, 
-	0xc3a3, 0xc3a4, 0xc3a5, 0xc3a5, 0xc3a6, 0xc3a7, 0xc3a8, 0xc3a9, 
-	0xc3aa, 0xc3ab, 0xc3ac, 0xc3ae, 0xc3af, 0xc3b0, 0xc3b1, 0xc3b3, 
-	0xc3b4, 0xc3b5, 0xc3b7, 0xc3b8, 0xc3ba, 0xc3bb, 0xc3bd, 0xc3bf, 
-	0xc3c0, 0xc3c0, 0xc3c0, 0xc3c0, 0xc3c1, 0xc3c1, 0xc3c2, 0xc3c2, 
-	0xc3c3, 0xc3c4, 0xc3c5, 0xc3c5, 0xc3c6, 0xc3c7, 0xc3c8, 0xc3c9, 
-	0xc3ca, 0xc3cb, 0xc3cc, 0xc3ce, 0xc3cf, 0xc3d0, 0xc3d1, 0xc3d3, 
-	0xc3d4, 0xc3d5, 0xc3d7, 0xc3d8, 0xc3da, 0xc3db, 0xc3dd, 0xc3df, 
-	0xc3e0, 0xc3e0, 0xc3e0, 0xc3e0, 0xc3e1, 0xc3e1, 0xc3e2, 0xc3e2, 
-	0xc3e3, 0xc3e4, 0xc3e5, 0xc3e5, 0xc3e6, 0xc3e7, 0xc3e8, 0xc3e9, 
-	0xc3ea, 0xc3eb, 0xc3ec, 0xc3ee, 0xc3ef, 0xc3f0, 0xc3f1, 0xc3f3, 
-	0xc3f4, 0xc3f5, 0xc3f7, 0xc3f8, 0xc3fa, 0xc3fb, 0xc3fd, 0xc3ff, 
-	0xc400, 0xc400, 0xc400, 0xc400, 0xc401, 0xc401, 0xc402, 0xc402, 
-	0xc403, 0xc404, 0xc405, 0xc405, 0xc406, 0xc407, 0xc408, 0xc409, 
-	0xc40a, 0xc40b, 0xc40c, 0xc40e, 0xc40f, 0xc410, 0xc411, 0xc413, 
-	0xc414, 0xc415, 0xc417, 0xc418, 0xc41a, 0xc41b, 0xc41d, 0xc41f, 
-	0xc440, 0xc440, 0xc440, 0xc440, 0xc441, 0xc441, 0xc442, 0xc442, 
-	0xc443, 0xc444, 0xc445, 0xc445, 0xc446, 0xc447, 0xc448, 0xc449, 
-	0xc44a, 0xc44b, 0xc44c, 0xc44e, 0xc44f, 0xc450, 0xc451, 0xc453, 
-	0xc454, 0xc455, 0xc457, 0xc458, 0xc45a, 0xc45b, 0xc45d, 0xc45f, 
-	0xc460, 0xc460, 0xc460, 0xc460, 0xc461, 0xc461, 0xc462, 0xc462, 
-	0xc463, 0xc464, 0xc465, 0xc465, 0xc466, 0xc467, 0xc468, 0xc469, 
-	0xc46a, 0xc46b, 0xc46c, 0xc46e, 0xc46f, 0xc470, 0xc471, 0xc473, 
-	0xc474, 0xc475, 0xc477, 0xc478, 0xc47a, 0xc47b, 0xc47d, 0xc47f, 
-	0xc480, 0xc480, 0xc480, 0xc480, 0xc481, 0xc481, 0xc482, 0xc482, 
-	0xc483, 0xc484, 0xc485, 0xc485, 0xc486, 0xc487, 0xc488, 0xc489, 
-	0xc48a, 0xc48b, 0xc48c, 0xc48e, 0xc48f, 0xc490, 0xc491, 0xc493, 
-	0xc494, 0xc495, 0xc497, 0xc498, 0xc49a, 0xc49b, 0xc49d, 0xc49f, 
-	0xc4c0, 0xc4c0, 0xc4c0, 0xc4c0, 0xc4c1, 0xc4c1, 0xc4c2, 0xc4c2, 
-	0xc4c3, 0xc4c4, 0xc4c5, 0xc4c5, 0xc4c6, 0xc4c7, 0xc4c8, 0xc4c9, 
-	0xc4ca, 0xc4cb, 0xc4cc, 0xc4ce, 0xc4cf, 0xc4d0, 0xc4d1, 0xc4d3, 
-	0xc4d4, 0xc4d5, 0xc4d7, 0xc4d8, 0xc4da, 0xc4db, 0xc4dd, 0xc4df, 
-	0xc4e0, 0xc4e0, 0xc4e0, 0xc4e0, 0xc4e1, 0xc4e1, 0xc4e2, 0xc4e2, 
-	0xc4e3, 0xc4e4, 0xc4e5, 0xc4e5, 0xc4e6, 0xc4e7, 0xc4e8, 0xc4e9, 
-	0xc4ea, 0xc4eb, 0xc4ec, 0xc4ee, 0xc4ef, 0xc4f0, 0xc4f1, 0xc4f3, 
-	0xc4f4, 0xc4f5, 0xc4f7, 0xc4f8, 0xc4fa, 0xc4fb, 0xc4fd, 0xc4ff, 
-	0xc500, 0xc500, 0xc500, 0xc500, 0xc501, 0xc501, 0xc502, 0xc502, 
-	0xc503, 0xc504, 0xc505, 0xc505, 0xc506, 0xc507, 0xc508, 0xc509, 
-	0xc50a, 0xc50b, 0xc50c, 0xc50e, 0xc50f, 0xc510, 0xc511, 0xc513, 
-	0xc514, 0xc515, 0xc517, 0xc518, 0xc51a, 0xc51b, 0xc51d, 0xc51f, 
-	0xc540, 0xc540, 0xc540, 0xc540, 0xc541, 0xc541, 0xc542, 0xc542, 
-	0xc543, 0xc544, 0xc545, 0xc545, 0xc546, 0xc547, 0xc548, 0xc549, 
-	0xc54a, 0xc54b, 0xc54c, 0xc54e, 0xc54f, 0xc550, 0xc551, 0xc553, 
-	0xc554, 0xc555, 0xc557, 0xc558, 0xc55a, 0xc55b, 0xc55d, 0xc55f, 
-	0xc560, 0xc560, 0xc560, 0xc560, 0xc561, 0xc561, 0xc562, 0xc562, 
-	0xc563, 0xc564, 0xc565, 0xc565, 0xc566, 0xc567, 0xc568, 0xc569, 
-	0xc56a, 0xc56b, 0xc56c, 0xc56e, 0xc56f, 0xc570, 0xc571, 0xc573, 
-	0xc574, 0xc575, 0xc577, 0xc578, 0xc57a, 0xc57b, 0xc57d, 0xc57f, 
-	0xc580, 0xc580, 0xc580, 0xc580, 0xc581, 0xc581, 0xc582, 0xc582, 
-	0xc583, 0xc584, 0xc585, 0xc585, 0xc586, 0xc587, 0xc588, 0xc589, 
-	0xc58a, 0xc58b, 0xc58c, 0xc58e, 0xc58f, 0xc590, 0xc591, 0xc593, 
-	0xc594, 0xc595, 0xc597, 0xc598, 0xc59a, 0xc59b, 0xc59d, 0xc59f, 
-	0xc5c0, 0xc5c0, 0xc5c0, 0xc5c0, 0xc5c1, 0xc5c1, 0xc5c2, 0xc5c2, 
-	0xc5c3, 0xc5c4, 0xc5c5, 0xc5c5, 0xc5c6, 0xc5c7, 0xc5c8, 0xc5c9, 
-	0xc5ca, 0xc5cb, 0xc5cc, 0xc5ce, 0xc5cf, 0xc5d0, 0xc5d1, 0xc5d3, 
-	0xc5d4, 0xc5d5, 0xc5d7, 0xc5d8, 0xc5da, 0xc5db, 0xc5dd, 0xc5df, 
-	0xc5e0, 0xc5e0, 0xc5e0, 0xc5e0, 0xc5e1, 0xc5e1, 0xc5e2, 0xc5e2, 
-	0xc5e3, 0xc5e4, 0xc5e5, 0xc5e5, 0xc5e6, 0xc5e7, 0xc5e8, 0xc5e9, 
-	0xc5ea, 0xc5eb, 0xc5ec, 0xc5ee, 0xc5ef, 0xc5f0, 0xc5f1, 0xc5f3, 
-	0xc5f4, 0xc5f5, 0xc5f7, 0xc5f8, 0xc5fa, 0xc5fb, 0xc5fd, 0xc5ff, 
-	0xc620, 0xc620, 0xc620, 0xc620, 0xc621, 0xc621, 0xc622, 0xc622, 
-	0xc623, 0xc624, 0xc625, 0xc625, 0xc626, 0xc627, 0xc628, 0xc629, 
-	0xc62a, 0xc62b, 0xc62c, 0xc62e, 0xc62f, 0xc630, 0xc631, 0xc633, 
-	0xc634, 0xc635, 0xc637, 0xc638, 0xc63a, 0xc63b, 0xc63d, 0xc63f, 
-	0xc640, 0xc640, 0xc640, 0xc640, 0xc641, 0xc641, 0xc642, 0xc642, 
-	0xc643, 0xc644, 0xc645, 0xc645, 0xc646, 0xc647, 0xc648, 0xc649, 
-	0xc64a, 0xc64b, 0xc64c, 0xc64e, 0xc64f, 0xc650, 0xc651, 0xc653, 
-	0xc654, 0xc655, 0xc657, 0xc658, 0xc65a, 0xc65b, 0xc65d, 0xc65f, 
-	0xc680, 0xc680, 0xc680, 0xc680, 0xc681, 0xc681, 0xc682, 0xc682, 
-	0xc683, 0xc684, 0xc685, 0xc685, 0xc686, 0xc687, 0xc688, 0xc689, 
-	0xc68a, 0xc68b, 0xc68c, 0xc68e, 0xc68f, 0xc690, 0xc691, 0xc693, 
-	0xc694, 0xc695, 0xc697, 0xc698, 0xc69a, 0xc69b, 0xc69d, 0xc69f, 
-	0xc6a0, 0xc6a0, 0xc6a0, 0xc6a0, 0xc6a1, 0xc6a1, 0xc6a2, 0xc6a2, 
-	0xc6a3, 0xc6a4, 0xc6a5, 0xc6a5, 0xc6a6, 0xc6a7, 0xc6a8, 0xc6a9, 
-	0xc6aa, 0xc6ab, 0xc6ac, 0xc6ae, 0xc6af, 0xc6b0, 0xc6b1, 0xc6b3, 
-	0xc6b4, 0xc6b5, 0xc6b7, 0xc6b8, 0xc6ba, 0xc6bb, 0xc6bd, 0xc6bf, 
-	0xc6e0, 0xc6e0, 0xc6e0, 0xc6e0, 0xc6e1, 0xc6e1, 0xc6e2, 0xc6e2, 
-	0xc6e3, 0xc6e4, 0xc6e5, 0xc6e5, 0xc6e6, 0xc6e7, 0xc6e8, 0xc6e9, 
-	0xc6ea, 0xc6eb, 0xc6ec, 0xc6ee, 0xc6ef, 0xc6f0, 0xc6f1, 0xc6f3, 
-	0xc6f4, 0xc6f5, 0xc6f7, 0xc6f8, 0xc6fa, 0xc6fb, 0xc6fd, 0xc6ff, 
-	0xc700, 0xc700, 0xc700, 0xc700, 0xc701, 0xc701, 0xc702, 0xc702, 
-	0xc703, 0xc704, 0xc705, 0xc705, 0xc706, 0xc707, 0xc708, 0xc709, 
-	0xc70a, 0xc70b, 0xc70c, 0xc70e, 0xc70f, 0xc710, 0xc711, 0xc713, 
-	0xc714, 0xc715, 0xc717, 0xc718, 0xc71a, 0xc71b, 0xc71d, 0xc71f, 
-	0xc740, 0xc740, 0xc740, 0xc740, 0xc741, 0xc741, 0xc742, 0xc742, 
-	0xc743, 0xc744, 0xc745, 0xc745, 0xc746, 0xc747, 0xc748, 0xc749, 
-	0xc74a, 0xc74b, 0xc74c, 0xc74e, 0xc74f, 0xc750, 0xc751, 0xc753, 
-	0xc754, 0xc755, 0xc757, 0xc758, 0xc75a, 0xc75b, 0xc75d, 0xc75f, 
-	0xc760, 0xc760, 0xc760, 0xc760, 0xc761, 0xc761, 0xc762, 0xc762, 
-	0xc763, 0xc764, 0xc765, 0xc765, 0xc766, 0xc767, 0xc768, 0xc769, 
-	0xc76a, 0xc76b, 0xc76c, 0xc76e, 0xc76f, 0xc770, 0xc771, 0xc773, 
-	0xc774, 0xc775, 0xc777, 0xc778, 0xc77a, 0xc77b, 0xc77d, 0xc77f, 
-	0xc7a0, 0xc7a0, 0xc7a0, 0xc7a0, 0xc7a1, 0xc7a1, 0xc7a2, 0xc7a2, 
-	0xc7a3, 0xc7a4, 0xc7a5, 0xc7a5, 0xc7a6, 0xc7a7, 0xc7a8, 0xc7a9, 
-	0xc7aa, 0xc7ab, 0xc7ac, 0xc7ae, 0xc7af, 0xc7b0, 0xc7b1, 0xc7b3, 
-	0xc7b4, 0xc7b5, 0xc7b7, 0xc7b8, 0xc7ba, 0xc7bb, 0xc7bd, 0xc7bf, 
-	0xc7e0, 0xc7e0, 0xc7e0, 0xc7e0, 0xc7e1, 0xc7e1, 0xc7e2, 0xc7e2, 
-	0xc7e3, 0xc7e4, 0xc7e5, 0xc7e5, 0xc7e6, 0xc7e7, 0xc7e8, 0xc7e9, 
-	0xc7ea, 0xc7eb, 0xc7ec, 0xc7ee, 0xc7ef, 0xc7f0, 0xc7f1, 0xc7f3, 
-	0xc7f4, 0xc7f5, 0xc7f7, 0xc7f8, 0xc7fa, 0xc7fb, 0xc7fd, 0xc7ff, 
-	0xd000, 0xd000, 0xd000, 0xd000, 0xd001, 0xd001, 0xd002, 0xd002, 
-	0xd003, 0xd004, 0xd005, 0xd005, 0xd006, 0xd007, 0xd008, 0xd009, 
-	0xd00a, 0xd00b, 0xd00c, 0xd00e, 0xd00f, 0xd010, 0xd011, 0xd013, 
-	0xd014, 0xd015, 0xd017, 0xd018, 0xd01a, 0xd01b, 0xd01d, 0xd01f, 
-	0xd000, 0xd000, 0xd000, 0xd000, 0xd001, 0xd001, 0xd002, 0xd002, 
-	0xd003, 0xd004, 0xd005, 0xd005, 0xd006, 0xd007, 0xd008, 0xd009, 
-	0xd00a, 0xd00b, 0xd00c, 0xd00e, 0xd00f, 0xd010, 0xd011, 0xd013, 
-	0xd014, 0xd015, 0xd017, 0xd018, 0xd01a, 0xd01b, 0xd01d, 0xd01f, 
-	0xd000, 0xd000, 0xd000, 0xd000, 0xd001, 0xd001, 0xd002, 0xd002, 
-	0xd003, 0xd004, 0xd005, 0xd005, 0xd006, 0xd007, 0xd008, 0xd009, 
-	0xd00a, 0xd00b, 0xd00c, 0xd00e, 0xd00f, 0xd010, 0xd011, 0xd013, 
-	0xd014, 0xd015, 0xd017, 0xd018, 0xd01a, 0xd01b, 0xd01d, 0xd01f, 
-	0xd000, 0xd000, 0xd000, 0xd000, 0xd001, 0xd001, 0xd002, 0xd002, 
-	0xd003, 0xd004, 0xd005, 0xd005, 0xd006, 0xd007, 0xd008, 0xd009, 
-	0xd00a, 0xd00b, 0xd00c, 0xd00e, 0xd00f, 0xd010, 0xd011, 0xd013, 
-	0xd014, 0xd015, 0xd017, 0xd018, 0xd01a, 0xd01b, 0xd01d, 0xd01f, 
-	0xd000, 0xd000, 0xd000, 0xd000, 0xd001, 0xd001, 0xd002, 0xd002, 
-	0xd003, 0xd004, 0xd005, 0xd005, 0xd006, 0xd007, 0xd008, 0xd009, 
-	0xd00a, 0xd00b, 0xd00c, 0xd00e, 0xd00f, 0xd010, 0xd011, 0xd013, 
-	0xd014, 0xd015, 0xd017, 0xd018, 0xd01a, 0xd01b, 0xd01d, 0xd01f, 
-	0xd020, 0xd020, 0xd020, 0xd020, 0xd021, 0xd021, 0xd022, 0xd022, 
-	0xd023, 0xd024, 0xd025, 0xd025, 0xd026, 0xd027, 0xd028, 0xd029, 
-	0xd02a, 0xd02b, 0xd02c, 0xd02e, 0xd02f, 0xd030, 0xd031, 0xd033, 
-	0xd034, 0xd035, 0xd037, 0xd038, 0xd03a, 0xd03b, 0xd03d, 0xd03f, 
-	0xd020, 0xd020, 0xd020, 0xd020, 0xd021, 0xd021, 0xd022, 0xd022, 
-	0xd023, 0xd024, 0xd025, 0xd025, 0xd026, 0xd027, 0xd028, 0xd029, 
-	0xd02a, 0xd02b, 0xd02c, 0xd02e, 0xd02f, 0xd030, 0xd031, 0xd033, 
-	0xd034, 0xd035, 0xd037, 0xd038, 0xd03a, 0xd03b, 0xd03d, 0xd03f, 
-	0xd020, 0xd020, 0xd020, 0xd020, 0xd021, 0xd021, 0xd022, 0xd022, 
-	0xd023, 0xd024, 0xd025, 0xd025, 0xd026, 0xd027, 0xd028, 0xd029, 
-	0xd02a, 0xd02b, 0xd02c, 0xd02e, 0xd02f, 0xd030, 0xd031, 0xd033, 
-	0xd034, 0xd035, 0xd037, 0xd038, 0xd03a, 0xd03b, 0xd03d, 0xd03f, 
-	0xd040, 0xd040, 0xd040, 0xd040, 0xd041, 0xd041, 0xd042, 0xd042, 
-	0xd043, 0xd044, 0xd045, 0xd045, 0xd046, 0xd047, 0xd048, 0xd049, 
-	0xd04a, 0xd04b, 0xd04c, 0xd04e, 0xd04f, 0xd050, 0xd051, 0xd053, 
-	0xd054, 0xd055, 0xd057, 0xd058, 0xd05a, 0xd05b, 0xd05d, 0xd05f, 
-	0xd040, 0xd040, 0xd040, 0xd040, 0xd041, 0xd041, 0xd042, 0xd042, 
-	0xd043, 0xd044, 0xd045, 0xd045, 0xd046, 0xd047, 0xd048, 0xd049, 
-	0xd04a, 0xd04b, 0xd04c, 0xd04e, 0xd04f, 0xd050, 0xd051, 0xd053, 
-	0xd054, 0xd055, 0xd057, 0xd058, 0xd05a, 0xd05b, 0xd05d, 0xd05f, 
-	0xd060, 0xd060, 0xd060, 0xd060, 0xd061, 0xd061, 0xd062, 0xd062, 
-	0xd063, 0xd064, 0xd065, 0xd065, 0xd066, 0xd067, 0xd068, 0xd069, 
-	0xd06a, 0xd06b, 0xd06c, 0xd06e, 0xd06f, 0xd070, 0xd071, 0xd073, 
-	0xd074, 0xd075, 0xd077, 0xd078, 0xd07a, 0xd07b, 0xd07d, 0xd07f, 
-	0xd060, 0xd060, 0xd060, 0xd060, 0xd061, 0xd061, 0xd062, 0xd062, 
-	0xd063, 0xd064, 0xd065, 0xd065, 0xd066, 0xd067, 0xd068, 0xd069, 
-	0xd06a, 0xd06b, 0xd06c, 0xd06e, 0xd06f, 0xd070, 0xd071, 0xd073, 
-	0xd074, 0xd075, 0xd077, 0xd078, 0xd07a, 0xd07b, 0xd07d, 0xd07f, 
-	0xd080, 0xd080, 0xd080, 0xd080, 0xd081, 0xd081, 0xd082, 0xd082, 
-	0xd083, 0xd084, 0xd085, 0xd085, 0xd086, 0xd087, 0xd088, 0xd089, 
-	0xd08a, 0xd08b, 0xd08c, 0xd08e, 0xd08f, 0xd090, 0xd091, 0xd093, 
-	0xd094, 0xd095, 0xd097, 0xd098, 0xd09a, 0xd09b, 0xd09d, 0xd09f, 
-	0xd0a0, 0xd0a0, 0xd0a0, 0xd0a0, 0xd0a1, 0xd0a1, 0xd0a2, 0xd0a2, 
-	0xd0a3, 0xd0a4, 0xd0a5, 0xd0a5, 0xd0a6, 0xd0a7, 0xd0a8, 0xd0a9, 
-	0xd0aa, 0xd0ab, 0xd0ac, 0xd0ae, 0xd0af, 0xd0b0, 0xd0b1, 0xd0b3, 
-	0xd0b4, 0xd0b5, 0xd0b7, 0xd0b8, 0xd0ba, 0xd0bb, 0xd0bd, 0xd0bf, 
-	0xd0a0, 0xd0a0, 0xd0a0, 0xd0a0, 0xd0a1, 0xd0a1, 0xd0a2, 0xd0a2, 
-	0xd0a3, 0xd0a4, 0xd0a5, 0xd0a5, 0xd0a6, 0xd0a7, 0xd0a8, 0xd0a9, 
-	0xd0aa, 0xd0ab, 0xd0ac, 0xd0ae, 0xd0af, 0xd0b0, 0xd0b1, 0xd0b3, 
-	0xd0b4, 0xd0b5, 0xd0b7, 0xd0b8, 0xd0ba, 0xd0bb, 0xd0bd, 0xd0bf, 
-	0xd0c0, 0xd0c0, 0xd0c0, 0xd0c0, 0xd0c1, 0xd0c1, 0xd0c2, 0xd0c2, 
-	0xd0c3, 0xd0c4, 0xd0c5, 0xd0c5, 0xd0c6, 0xd0c7, 0xd0c8, 0xd0c9, 
-	0xd0ca, 0xd0cb, 0xd0cc, 0xd0ce, 0xd0cf, 0xd0d0, 0xd0d1, 0xd0d3, 
-	0xd0d4, 0xd0d5, 0xd0d7, 0xd0d8, 0xd0da, 0xd0db, 0xd0dd, 0xd0df, 
-	0xd0e0, 0xd0e0, 0xd0e0, 0xd0e0, 0xd0e1, 0xd0e1, 0xd0e2, 0xd0e2, 
-	0xd0e3, 0xd0e4, 0xd0e5, 0xd0e5, 0xd0e6, 0xd0e7, 0xd0e8, 0xd0e9, 
-	0xd0ea, 0xd0eb, 0xd0ec, 0xd0ee, 0xd0ef, 0xd0f0, 0xd0f1, 0xd0f3, 
-	0xd0f4, 0xd0f5, 0xd0f7, 0xd0f8, 0xd0fa, 0xd0fb, 0xd0fd, 0xd0ff, 
-	0xd0e0, 0xd0e0, 0xd0e0, 0xd0e0, 0xd0e1, 0xd0e1, 0xd0e2, 0xd0e2, 
-	0xd0e3, 0xd0e4, 0xd0e5, 0xd0e5, 0xd0e6, 0xd0e7, 0xd0e8, 0xd0e9, 
-	0xd0ea, 0xd0eb, 0xd0ec, 0xd0ee, 0xd0ef, 0xd0f0, 0xd0f1, 0xd0f3, 
-	0xd0f4, 0xd0f5, 0xd0f7, 0xd0f8, 0xd0fa, 0xd0fb, 0xd0fd, 0xd0ff, 
-	0xd100, 0xd100, 0xd100, 0xd100, 0xd101, 0xd101, 0xd102, 0xd102, 
-	0xd103, 0xd104, 0xd105, 0xd105, 0xd106, 0xd107, 0xd108, 0xd109, 
-	0xd10a, 0xd10b, 0xd10c, 0xd10e, 0xd10f, 0xd110, 0xd111, 0xd113, 
-	0xd114, 0xd115, 0xd117, 0xd118, 0xd11a, 0xd11b, 0xd11d, 0xd11f, 
-	0xd120, 0xd120, 0xd120, 0xd120, 0xd121, 0xd121, 0xd122, 0xd122, 
-	0xd123, 0xd124, 0xd125, 0xd125, 0xd126, 0xd127, 0xd128, 0xd129, 
-	0xd12a, 0xd12b, 0xd12c, 0xd12e, 0xd12f, 0xd130, 0xd131, 0xd133, 
-	0xd134, 0xd135, 0xd137, 0xd138, 0xd13a, 0xd13b, 0xd13d, 0xd13f, 
-	0xd140, 0xd140, 0xd140, 0xd140, 0xd141, 0xd141, 0xd142, 0xd142, 
-	0xd143, 0xd144, 0xd145, 0xd145, 0xd146, 0xd147, 0xd148, 0xd149, 
-	0xd14a, 0xd14b, 0xd14c, 0xd14e, 0xd14f, 0xd150, 0xd151, 0xd153, 
-	0xd154, 0xd155, 0xd157, 0xd158, 0xd15a, 0xd15b, 0xd15d, 0xd15f, 
-	0xd140, 0xd140, 0xd140, 0xd140, 0xd141, 0xd141, 0xd142, 0xd142, 
-	0xd143, 0xd144, 0xd145, 0xd145, 0xd146, 0xd147, 0xd148, 0xd149, 
-	0xd14a, 0xd14b, 0xd14c, 0xd14e, 0xd14f, 0xd150, 0xd151, 0xd153, 
-	0xd154, 0xd155, 0xd157, 0xd158, 0xd15a, 0xd15b, 0xd15d, 0xd15f, 
-	0xd160, 0xd160, 0xd160, 0xd160, 0xd161, 0xd161, 0xd162, 0xd162, 
-	0xd163, 0xd164, 0xd165, 0xd165, 0xd166, 0xd167, 0xd168, 0xd169, 
-	0xd16a, 0xd16b, 0xd16c, 0xd16e, 0xd16f, 0xd170, 0xd171, 0xd173, 
-	0xd174, 0xd175, 0xd177, 0xd178, 0xd17a, 0xd17b, 0xd17d, 0xd17f, 
-	0xd180, 0xd180, 0xd180, 0xd180, 0xd181, 0xd181, 0xd182, 0xd182, 
-	0xd183, 0xd184, 0xd185, 0xd185, 0xd186, 0xd187, 0xd188, 0xd189, 
-	0xd18a, 0xd18b, 0xd18c, 0xd18e, 0xd18f, 0xd190, 0xd191, 0xd193, 
-	0xd194, 0xd195, 0xd197, 0xd198, 0xd19a, 0xd19b, 0xd19d, 0xd19f, 
-	0xd1a0, 0xd1a0, 0xd1a0, 0xd1a0, 0xd1a1, 0xd1a1, 0xd1a2, 0xd1a2, 
-	0xd1a3, 0xd1a4, 0xd1a5, 0xd1a5, 0xd1a6, 0xd1a7, 0xd1a8, 0xd1a9, 
-	0xd1aa, 0xd1ab, 0xd1ac, 0xd1ae, 0xd1af, 0xd1b0, 0xd1b1, 0xd1b3, 
-	0xd1b4, 0xd1b5, 0xd1b7, 0xd1b8, 0xd1ba, 0xd1bb, 0xd1bd, 0xd1bf, 
-	0xd1c0, 0xd1c0, 0xd1c0, 0xd1c0, 0xd1c1, 0xd1c1, 0xd1c2, 0xd1c2, 
-	0xd1c3, 0xd1c4, 0xd1c5, 0xd1c5, 0xd1c6, 0xd1c7, 0xd1c8, 0xd1c9, 
-	0xd1ca, 0xd1cb, 0xd1cc, 0xd1ce, 0xd1cf, 0xd1d0, 0xd1d1, 0xd1d3, 
-	0xd1d4, 0xd1d5, 0xd1d7, 0xd1d8, 0xd1da, 0xd1db, 0xd1dd, 0xd1df, 
-	0xd1e0, 0xd1e0, 0xd1e0, 0xd1e0, 0xd1e1, 0xd1e1, 0xd1e2, 0xd1e2, 
-	0xd1e3, 0xd1e4, 0xd1e5, 0xd1e5, 0xd1e6, 0xd1e7, 0xd1e8, 0xd1e9, 
-	0xd1ea, 0xd1eb, 0xd1ec, 0xd1ee, 0xd1ef, 0xd1f0, 0xd1f1, 0xd1f3, 
-	0xd1f4, 0xd1f5, 0xd1f7, 0xd1f8, 0xd1fa, 0xd1fb, 0xd1fd, 0xd1ff, 
-	0xd200, 0xd200, 0xd200, 0xd200, 0xd201, 0xd201, 0xd202, 0xd202, 
-	0xd203, 0xd204, 0xd205, 0xd205, 0xd206, 0xd207, 0xd208, 0xd209, 
-	0xd20a, 0xd20b, 0xd20c, 0xd20e, 0xd20f, 0xd210, 0xd211, 0xd213, 
-	0xd214, 0xd215, 0xd217, 0xd218, 0xd21a, 0xd21b, 0xd21d, 0xd21f, 
-	0xd220, 0xd220, 0xd220, 0xd220, 0xd221, 0xd221, 0xd222, 0xd222, 
-	0xd223, 0xd224, 0xd225, 0xd225, 0xd226, 0xd227, 0xd228, 0xd229, 
-	0xd22a, 0xd22b, 0xd22c, 0xd22e, 0xd22f, 0xd230, 0xd231, 0xd233, 
-	0xd234, 0xd235, 0xd237, 0xd238, 0xd23a, 0xd23b, 0xd23d, 0xd23f, 
-	0xd240, 0xd240, 0xd240, 0xd240, 0xd241, 0xd241, 0xd242, 0xd242, 
-	0xd243, 0xd244, 0xd245, 0xd245, 0xd246, 0xd247, 0xd248, 0xd249, 
-	0xd24a, 0xd24b, 0xd24c, 0xd24e, 0xd24f, 0xd250, 0xd251, 0xd253, 
-	0xd254, 0xd255, 0xd257, 0xd258, 0xd25a, 0xd25b, 0xd25d, 0xd25f, 
-	0xd260, 0xd260, 0xd260, 0xd260, 0xd261, 0xd261, 0xd262, 0xd262, 
-	0xd263, 0xd264, 0xd265, 0xd265, 0xd266, 0xd267, 0xd268, 0xd269, 
-	0xd26a, 0xd26b, 0xd26c, 0xd26e, 0xd26f, 0xd270, 0xd271, 0xd273, 
-	0xd274, 0xd275, 0xd277, 0xd278, 0xd27a, 0xd27b, 0xd27d, 0xd27f, 
-	0xd280, 0xd280, 0xd280, 0xd280, 0xd281, 0xd281, 0xd282, 0xd282, 
-	0xd283, 0xd284, 0xd285, 0xd285, 0xd286, 0xd287, 0xd288, 0xd289, 
-	0xd28a, 0xd28b, 0xd28c, 0xd28e, 0xd28f, 0xd290, 0xd291, 0xd293, 
-	0xd294, 0xd295, 0xd297, 0xd298, 0xd29a, 0xd29b, 0xd29d, 0xd29f, 
-	0xd2a0, 0xd2a0, 0xd2a0, 0xd2a0, 0xd2a1, 0xd2a1, 0xd2a2, 0xd2a2, 
-	0xd2a3, 0xd2a4, 0xd2a5, 0xd2a5, 0xd2a6, 0xd2a7, 0xd2a8, 0xd2a9, 
-	0xd2aa, 0xd2ab, 0xd2ac, 0xd2ae, 0xd2af, 0xd2b0, 0xd2b1, 0xd2b3, 
-	0xd2b4, 0xd2b5, 0xd2b7, 0xd2b8, 0xd2ba, 0xd2bb, 0xd2bd, 0xd2bf, 
-	0xd2c0, 0xd2c0, 0xd2c0, 0xd2c0, 0xd2c1, 0xd2c1, 0xd2c2, 0xd2c2, 
-	0xd2c3, 0xd2c4, 0xd2c5, 0xd2c5, 0xd2c6, 0xd2c7, 0xd2c8, 0xd2c9, 
-	0xd2ca, 0xd2cb, 0xd2cc, 0xd2ce, 0xd2cf, 0xd2d0, 0xd2d1, 0xd2d3, 
-	0xd2d4, 0xd2d5, 0xd2d7, 0xd2d8, 0xd2da, 0xd2db, 0xd2dd, 0xd2df, 
-	0xd2e0, 0xd2e0, 0xd2e0, 0xd2e0, 0xd2e1, 0xd2e1, 0xd2e2, 0xd2e2, 
-	0xd2e3, 0xd2e4, 0xd2e5, 0xd2e5, 0xd2e6, 0xd2e7, 0xd2e8, 0xd2e9, 
-	0xd2ea, 0xd2eb, 0xd2ec, 0xd2ee, 0xd2ef, 0xd2f0, 0xd2f1, 0xd2f3, 
-	0xd2f4, 0xd2f5, 0xd2f7, 0xd2f8, 0xd2fa, 0xd2fb, 0xd2fd, 0xd2ff, 
-	0xd300, 0xd300, 0xd300, 0xd300, 0xd301, 0xd301, 0xd302, 0xd302, 
-	0xd303, 0xd304, 0xd305, 0xd305, 0xd306, 0xd307, 0xd308, 0xd309, 
-	0xd30a, 0xd30b, 0xd30c, 0xd30e, 0xd30f, 0xd310, 0xd311, 0xd313, 
-	0xd314, 0xd315, 0xd317, 0xd318, 0xd31a, 0xd31b, 0xd31d, 0xd31f, 
-	0xd320, 0xd320, 0xd320, 0xd320, 0xd321, 0xd321, 0xd322, 0xd322, 
-	0xd323, 0xd324, 0xd325, 0xd325, 0xd326, 0xd327, 0xd328, 0xd329, 
-	0xd32a, 0xd32b, 0xd32c, 0xd32e, 0xd32f, 0xd330, 0xd331, 0xd333, 
-	0xd334, 0xd335, 0xd337, 0xd338, 0xd33a, 0xd33b, 0xd33d, 0xd33f, 
-	0xd340, 0xd340, 0xd340, 0xd340, 0xd341, 0xd341, 0xd342, 0xd342, 
-	0xd343, 0xd344, 0xd345, 0xd345, 0xd346, 0xd347, 0xd348, 0xd349, 
-	0xd34a, 0xd34b, 0xd34c, 0xd34e, 0xd34f, 0xd350, 0xd351, 0xd353, 
-	0xd354, 0xd355, 0xd357, 0xd358, 0xd35a, 0xd35b, 0xd35d, 0xd35f, 
-	0xd380, 0xd380, 0xd380, 0xd380, 0xd381, 0xd381, 0xd382, 0xd382, 
-	0xd383, 0xd384, 0xd385, 0xd385, 0xd386, 0xd387, 0xd388, 0xd389, 
-	0xd38a, 0xd38b, 0xd38c, 0xd38e, 0xd38f, 0xd390, 0xd391, 0xd393, 
-	0xd394, 0xd395, 0xd397, 0xd398, 0xd39a, 0xd39b, 0xd39d, 0xd39f, 
-	0xd3a0, 0xd3a0, 0xd3a0, 0xd3a0, 0xd3a1, 0xd3a1, 0xd3a2, 0xd3a2, 
-	0xd3a3, 0xd3a4, 0xd3a5, 0xd3a5, 0xd3a6, 0xd3a7, 0xd3a8, 0xd3a9, 
-	0xd3aa, 0xd3ab, 0xd3ac, 0xd3ae, 0xd3af, 0xd3b0, 0xd3b1, 0xd3b3, 
-	0xd3b4, 0xd3b5, 0xd3b7, 0xd3b8, 0xd3ba, 0xd3bb, 0xd3bd, 0xd3bf, 
-	0xd3c0, 0xd3c0, 0xd3c0, 0xd3c0, 0xd3c1, 0xd3c1, 0xd3c2, 0xd3c2, 
-	0xd3c3, 0xd3c4, 0xd3c5, 0xd3c5, 0xd3c6, 0xd3c7, 0xd3c8, 0xd3c9, 
-	0xd3ca, 0xd3cb, 0xd3cc, 0xd3ce, 0xd3cf, 0xd3d0, 0xd3d1, 0xd3d3, 
-	0xd3d4, 0xd3d5, 0xd3d7, 0xd3d8, 0xd3da, 0xd3db, 0xd3dd, 0xd3df, 
-	0xd3e0, 0xd3e0, 0xd3e0, 0xd3e0, 0xd3e1, 0xd3e1, 0xd3e2, 0xd3e2, 
-	0xd3e3, 0xd3e4, 0xd3e5, 0xd3e5, 0xd3e6, 0xd3e7, 0xd3e8, 0xd3e9, 
-	0xd3ea, 0xd3eb, 0xd3ec, 0xd3ee, 0xd3ef, 0xd3f0, 0xd3f1, 0xd3f3, 
-	0xd3f4, 0xd3f5, 0xd3f7, 0xd3f8, 0xd3fa, 0xd3fb, 0xd3fd, 0xd3ff, 
-	0xd400, 0xd400, 0xd400, 0xd400, 0xd401, 0xd401, 0xd402, 0xd402, 
-	0xd403, 0xd404, 0xd405, 0xd405, 0xd406, 0xd407, 0xd408, 0xd409, 
-	0xd40a, 0xd40b, 0xd40c, 0xd40e, 0xd40f, 0xd410, 0xd411, 0xd413, 
-	0xd414, 0xd415, 0xd417, 0xd418, 0xd41a, 0xd41b, 0xd41d, 0xd41f, 
-	0xd440, 0xd440, 0xd440, 0xd440, 0xd441, 0xd441, 0xd442, 0xd442, 
-	0xd443, 0xd444, 0xd445, 0xd445, 0xd446, 0xd447, 0xd448, 0xd449, 
-	0xd44a, 0xd44b, 0xd44c, 0xd44e, 0xd44f, 0xd450, 0xd451, 0xd453, 
-	0xd454, 0xd455, 0xd457, 0xd458, 0xd45a, 0xd45b, 0xd45d, 0xd45f, 
-	0xd460, 0xd460, 0xd460, 0xd460, 0xd461, 0xd461, 0xd462, 0xd462, 
-	0xd463, 0xd464, 0xd465, 0xd465, 0xd466, 0xd467, 0xd468, 0xd469, 
-	0xd46a, 0xd46b, 0xd46c, 0xd46e, 0xd46f, 0xd470, 0xd471, 0xd473, 
-	0xd474, 0xd475, 0xd477, 0xd478, 0xd47a, 0xd47b, 0xd47d, 0xd47f, 
-	0xd480, 0xd480, 0xd480, 0xd480, 0xd481, 0xd481, 0xd482, 0xd482, 
-	0xd483, 0xd484, 0xd485, 0xd485, 0xd486, 0xd487, 0xd488, 0xd489, 
-	0xd48a, 0xd48b, 0xd48c, 0xd48e, 0xd48f, 0xd490, 0xd491, 0xd493, 
-	0xd494, 0xd495, 0xd497, 0xd498, 0xd49a, 0xd49b, 0xd49d, 0xd49f, 
-	0xd4c0, 0xd4c0, 0xd4c0, 0xd4c0, 0xd4c1, 0xd4c1, 0xd4c2, 0xd4c2, 
-	0xd4c3, 0xd4c4, 0xd4c5, 0xd4c5, 0xd4c6, 0xd4c7, 0xd4c8, 0xd4c9, 
-	0xd4ca, 0xd4cb, 0xd4cc, 0xd4ce, 0xd4cf, 0xd4d0, 0xd4d1, 0xd4d3, 
-	0xd4d4, 0xd4d5, 0xd4d7, 0xd4d8, 0xd4da, 0xd4db, 0xd4dd, 0xd4df, 
-	0xd4e0, 0xd4e0, 0xd4e0, 0xd4e0, 0xd4e1, 0xd4e1, 0xd4e2, 0xd4e2, 
-	0xd4e3, 0xd4e4, 0xd4e5, 0xd4e5, 0xd4e6, 0xd4e7, 0xd4e8, 0xd4e9, 
-	0xd4ea, 0xd4eb, 0xd4ec, 0xd4ee, 0xd4ef, 0xd4f0, 0xd4f1, 0xd4f3, 
-	0xd4f4, 0xd4f5, 0xd4f7, 0xd4f8, 0xd4fa, 0xd4fb, 0xd4fd, 0xd4ff, 
-	0xd500, 0xd500, 0xd500, 0xd500, 0xd501, 0xd501, 0xd502, 0xd502, 
-	0xd503, 0xd504, 0xd505, 0xd505, 0xd506, 0xd507, 0xd508, 0xd509, 
-	0xd50a, 0xd50b, 0xd50c, 0xd50e, 0xd50f, 0xd510, 0xd511, 0xd513, 
-	0xd514, 0xd515, 0xd517, 0xd518, 0xd51a, 0xd51b, 0xd51d, 0xd51f, 
-	0xd540, 0xd540, 0xd540, 0xd540, 0xd541, 0xd541, 0xd542, 0xd542, 
-	0xd543, 0xd544, 0xd545, 0xd545, 0xd546, 0xd547, 0xd548, 0xd549, 
-	0xd54a, 0xd54b, 0xd54c, 0xd54e, 0xd54f, 0xd550, 0xd551, 0xd553, 
-	0xd554, 0xd555, 0xd557, 0xd558, 0xd55a, 0xd55b, 0xd55d, 0xd55f, 
-	0xd560, 0xd560, 0xd560, 0xd560, 0xd561, 0xd561, 0xd562, 0xd562, 
-	0xd563, 0xd564, 0xd565, 0xd565, 0xd566, 0xd567, 0xd568, 0xd569, 
-	0xd56a, 0xd56b, 0xd56c, 0xd56e, 0xd56f, 0xd570, 0xd571, 0xd573, 
-	0xd574, 0xd575, 0xd577, 0xd578, 0xd57a, 0xd57b, 0xd57d, 0xd57f, 
-	0xd580, 0xd580, 0xd580, 0xd580, 0xd581, 0xd581, 0xd582, 0xd582, 
-	0xd583, 0xd584, 0xd585, 0xd585, 0xd586, 0xd587, 0xd588, 0xd589, 
-	0xd58a, 0xd58b, 0xd58c, 0xd58e, 0xd58f, 0xd590, 0xd591, 0xd593, 
-	0xd594, 0xd595, 0xd597, 0xd598, 0xd59a, 0xd59b, 0xd59d, 0xd59f, 
-	0xd5c0, 0xd5c0, 0xd5c0, 0xd5c0, 0xd5c1, 0xd5c1, 0xd5c2, 0xd5c2, 
-	0xd5c3, 0xd5c4, 0xd5c5, 0xd5c5, 0xd5c6, 0xd5c7, 0xd5c8, 0xd5c9, 
-	0xd5ca, 0xd5cb, 0xd5cc, 0xd5ce, 0xd5cf, 0xd5d0, 0xd5d1, 0xd5d3, 
-	0xd5d4, 0xd5d5, 0xd5d7, 0xd5d8, 0xd5da, 0xd5db, 0xd5dd, 0xd5df, 
-	0xd5e0, 0xd5e0, 0xd5e0, 0xd5e0, 0xd5e1, 0xd5e1, 0xd5e2, 0xd5e2, 
-	0xd5e3, 0xd5e4, 0xd5e5, 0xd5e5, 0xd5e6, 0xd5e7, 0xd5e8, 0xd5e9, 
-	0xd5ea, 0xd5eb, 0xd5ec, 0xd5ee, 0xd5ef, 0xd5f0, 0xd5f1, 0xd5f3, 
-	0xd5f4, 0xd5f5, 0xd5f7, 0xd5f8, 0xd5fa, 0xd5fb, 0xd5fd, 0xd5ff, 
-	0xd620, 0xd620, 0xd620, 0xd620, 0xd621, 0xd621, 0xd622, 0xd622, 
-	0xd623, 0xd624, 0xd625, 0xd625, 0xd626, 0xd627, 0xd628, 0xd629, 
-	0xd62a, 0xd62b, 0xd62c, 0xd62e, 0xd62f, 0xd630, 0xd631, 0xd633, 
-	0xd634, 0xd635, 0xd637, 0xd638, 0xd63a, 0xd63b, 0xd63d, 0xd63f, 
-	0xd640, 0xd640, 0xd640, 0xd640, 0xd641, 0xd641, 0xd642, 0xd642, 
-	0xd643, 0xd644, 0xd645, 0xd645, 0xd646, 0xd647, 0xd648, 0xd649, 
-	0xd64a, 0xd64b, 0xd64c, 0xd64e, 0xd64f, 0xd650, 0xd651, 0xd653, 
-	0xd654, 0xd655, 0xd657, 0xd658, 0xd65a, 0xd65b, 0xd65d, 0xd65f, 
-	0xd680, 0xd680, 0xd680, 0xd680, 0xd681, 0xd681, 0xd682, 0xd682, 
-	0xd683, 0xd684, 0xd685, 0xd685, 0xd686, 0xd687, 0xd688, 0xd689, 
-	0xd68a, 0xd68b, 0xd68c, 0xd68e, 0xd68f, 0xd690, 0xd691, 0xd693, 
-	0xd694, 0xd695, 0xd697, 0xd698, 0xd69a, 0xd69b, 0xd69d, 0xd69f, 
-	0xd6a0, 0xd6a0, 0xd6a0, 0xd6a0, 0xd6a1, 0xd6a1, 0xd6a2, 0xd6a2, 
-	0xd6a3, 0xd6a4, 0xd6a5, 0xd6a5, 0xd6a6, 0xd6a7, 0xd6a8, 0xd6a9, 
-	0xd6aa, 0xd6ab, 0xd6ac, 0xd6ae, 0xd6af, 0xd6b0, 0xd6b1, 0xd6b3, 
-	0xd6b4, 0xd6b5, 0xd6b7, 0xd6b8, 0xd6ba, 0xd6bb, 0xd6bd, 0xd6bf, 
-	0xd6e0, 0xd6e0, 0xd6e0, 0xd6e0, 0xd6e1, 0xd6e1, 0xd6e2, 0xd6e2, 
-	0xd6e3, 0xd6e4, 0xd6e5, 0xd6e5, 0xd6e6, 0xd6e7, 0xd6e8, 0xd6e9, 
-	0xd6ea, 0xd6eb, 0xd6ec, 0xd6ee, 0xd6ef, 0xd6f0, 0xd6f1, 0xd6f3, 
-	0xd6f4, 0xd6f5, 0xd6f7, 0xd6f8, 0xd6fa, 0xd6fb, 0xd6fd, 0xd6ff, 
-	0xd700, 0xd700, 0xd700, 0xd700, 0xd701, 0xd701, 0xd702, 0xd702, 
-	0xd703, 0xd704, 0xd705, 0xd705, 0xd706, 0xd707, 0xd708, 0xd709, 
-	0xd70a, 0xd70b, 0xd70c, 0xd70e, 0xd70f, 0xd710, 0xd711, 0xd713, 
-	0xd714, 0xd715, 0xd717, 0xd718, 0xd71a, 0xd71b, 0xd71d, 0xd71f, 
-	0xd740, 0xd740, 0xd740, 0xd740, 0xd741, 0xd741, 0xd742, 0xd742, 
-	0xd743, 0xd744, 0xd745, 0xd745, 0xd746, 0xd747, 0xd748, 0xd749, 
-	0xd74a, 0xd74b, 0xd74c, 0xd74e, 0xd74f, 0xd750, 0xd751, 0xd753, 
-	0xd754, 0xd755, 0xd757, 0xd758, 0xd75a, 0xd75b, 0xd75d, 0xd75f, 
-	0xd760, 0xd760, 0xd760, 0xd760, 0xd761, 0xd761, 0xd762, 0xd762, 
-	0xd763, 0xd764, 0xd765, 0xd765, 0xd766, 0xd767, 0xd768, 0xd769, 
-	0xd76a, 0xd76b, 0xd76c, 0xd76e, 0xd76f, 0xd770, 0xd771, 0xd773, 
-	0xd774, 0xd775, 0xd777, 0xd778, 0xd77a, 0xd77b, 0xd77d, 0xd77f, 
-	0xd7a0, 0xd7a0, 0xd7a0, 0xd7a0, 0xd7a1, 0xd7a1, 0xd7a2, 0xd7a2, 
-	0xd7a3, 0xd7a4, 0xd7a5, 0xd7a5, 0xd7a6, 0xd7a7, 0xd7a8, 0xd7a9, 
-	0xd7aa, 0xd7ab, 0xd7ac, 0xd7ae, 0xd7af, 0xd7b0, 0xd7b1, 0xd7b3, 
-	0xd7b4, 0xd7b5, 0xd7b7, 0xd7b8, 0xd7ba, 0xd7bb, 0xd7bd, 0xd7bf, 
-	0xd7e0, 0xd7e0, 0xd7e0, 0xd7e0, 0xd7e1, 0xd7e1, 0xd7e2, 0xd7e2, 
-	0xd7e3, 0xd7e4, 0xd7e5, 0xd7e5, 0xd7e6, 0xd7e7, 0xd7e8, 0xd7e9, 
-	0xd7ea, 0xd7eb, 0xd7ec, 0xd7ee, 0xd7ef, 0xd7f0, 0xd7f1, 0xd7f3, 
-	0xd7f4, 0xd7f5, 0xd7f7, 0xd7f8, 0xd7fa, 0xd7fb, 0xd7fd, 0xd7ff, 
-	0xd800, 0xd800, 0xd800, 0xd800, 0xd801, 0xd801, 0xd802, 0xd802, 
-	0xd803, 0xd804, 0xd805, 0xd805, 0xd806, 0xd807, 0xd808, 0xd809, 
-	0xd80a, 0xd80b, 0xd80c, 0xd80e, 0xd80f, 0xd810, 0xd811, 0xd813, 
-	0xd814, 0xd815, 0xd817, 0xd818, 0xd81a, 0xd81b, 0xd81d, 0xd81f, 
-	0xd800, 0xd800, 0xd800, 0xd800, 0xd801, 0xd801, 0xd802, 0xd802, 
-	0xd803, 0xd804, 0xd805, 0xd805, 0xd806, 0xd807, 0xd808, 0xd809, 
-	0xd80a, 0xd80b, 0xd80c, 0xd80e, 0xd80f, 0xd810, 0xd811, 0xd813, 
-	0xd814, 0xd815, 0xd817, 0xd818, 0xd81a, 0xd81b, 0xd81d, 0xd81f, 
-	0xd800, 0xd800, 0xd800, 0xd800, 0xd801, 0xd801, 0xd802, 0xd802, 
-	0xd803, 0xd804, 0xd805, 0xd805, 0xd806, 0xd807, 0xd808, 0xd809, 
-	0xd80a, 0xd80b, 0xd80c, 0xd80e, 0xd80f, 0xd810, 0xd811, 0xd813, 
-	0xd814, 0xd815, 0xd817, 0xd818, 0xd81a, 0xd81b, 0xd81d, 0xd81f, 
-	0xd800, 0xd800, 0xd800, 0xd800, 0xd801, 0xd801, 0xd802, 0xd802, 
-	0xd803, 0xd804, 0xd805, 0xd805, 0xd806, 0xd807, 0xd808, 0xd809, 
-	0xd80a, 0xd80b, 0xd80c, 0xd80e, 0xd80f, 0xd810, 0xd811, 0xd813, 
-	0xd814, 0xd815, 0xd817, 0xd818, 0xd81a, 0xd81b, 0xd81d, 0xd81f, 
-	0xd800, 0xd800, 0xd800, 0xd800, 0xd801, 0xd801, 0xd802, 0xd802, 
-	0xd803, 0xd804, 0xd805, 0xd805, 0xd806, 0xd807, 0xd808, 0xd809, 
-	0xd80a, 0xd80b, 0xd80c, 0xd80e, 0xd80f, 0xd810, 0xd811, 0xd813, 
-	0xd814, 0xd815, 0xd817, 0xd818, 0xd81a, 0xd81b, 0xd81d, 0xd81f, 
-	0xd820, 0xd820, 0xd820, 0xd820, 0xd821, 0xd821, 0xd822, 0xd822, 
-	0xd823, 0xd824, 0xd825, 0xd825, 0xd826, 0xd827, 0xd828, 0xd829, 
-	0xd82a, 0xd82b, 0xd82c, 0xd82e, 0xd82f, 0xd830, 0xd831, 0xd833, 
-	0xd834, 0xd835, 0xd837, 0xd838, 0xd83a, 0xd83b, 0xd83d, 0xd83f, 
-	0xd820, 0xd820, 0xd820, 0xd820, 0xd821, 0xd821, 0xd822, 0xd822, 
-	0xd823, 0xd824, 0xd825, 0xd825, 0xd826, 0xd827, 0xd828, 0xd829, 
-	0xd82a, 0xd82b, 0xd82c, 0xd82e, 0xd82f, 0xd830, 0xd831, 0xd833, 
-	0xd834, 0xd835, 0xd837, 0xd838, 0xd83a, 0xd83b, 0xd83d, 0xd83f, 
-	0xd820, 0xd820, 0xd820, 0xd820, 0xd821, 0xd821, 0xd822, 0xd822, 
-	0xd823, 0xd824, 0xd825, 0xd825, 0xd826, 0xd827, 0xd828, 0xd829, 
-	0xd82a, 0xd82b, 0xd82c, 0xd82e, 0xd82f, 0xd830, 0xd831, 0xd833, 
-	0xd834, 0xd835, 0xd837, 0xd838, 0xd83a, 0xd83b, 0xd83d, 0xd83f, 
-	0xd840, 0xd840, 0xd840, 0xd840, 0xd841, 0xd841, 0xd842, 0xd842, 
-	0xd843, 0xd844, 0xd845, 0xd845, 0xd846, 0xd847, 0xd848, 0xd849, 
-	0xd84a, 0xd84b, 0xd84c, 0xd84e, 0xd84f, 0xd850, 0xd851, 0xd853, 
-	0xd854, 0xd855, 0xd857, 0xd858, 0xd85a, 0xd85b, 0xd85d, 0xd85f, 
-	0xd840, 0xd840, 0xd840, 0xd840, 0xd841, 0xd841, 0xd842, 0xd842, 
-	0xd843, 0xd844, 0xd845, 0xd845, 0xd846, 0xd847, 0xd848, 0xd849, 
-	0xd84a, 0xd84b, 0xd84c, 0xd84e, 0xd84f, 0xd850, 0xd851, 0xd853, 
-	0xd854, 0xd855, 0xd857, 0xd858, 0xd85a, 0xd85b, 0xd85d, 0xd85f, 
-	0xd860, 0xd860, 0xd860, 0xd860, 0xd861, 0xd861, 0xd862, 0xd862, 
-	0xd863, 0xd864, 0xd865, 0xd865, 0xd866, 0xd867, 0xd868, 0xd869, 
-	0xd86a, 0xd86b, 0xd86c, 0xd86e, 0xd86f, 0xd870, 0xd871, 0xd873, 
-	0xd874, 0xd875, 0xd877, 0xd878, 0xd87a, 0xd87b, 0xd87d, 0xd87f, 
-	0xd860, 0xd860, 0xd860, 0xd860, 0xd861, 0xd861, 0xd862, 0xd862, 
-	0xd863, 0xd864, 0xd865, 0xd865, 0xd866, 0xd867, 0xd868, 0xd869, 
-	0xd86a, 0xd86b, 0xd86c, 0xd86e, 0xd86f, 0xd870, 0xd871, 0xd873, 
-	0xd874, 0xd875, 0xd877, 0xd878, 0xd87a, 0xd87b, 0xd87d, 0xd87f, 
-	0xd880, 0xd880, 0xd880, 0xd880, 0xd881, 0xd881, 0xd882, 0xd882, 
-	0xd883, 0xd884, 0xd885, 0xd885, 0xd886, 0xd887, 0xd888, 0xd889, 
-	0xd88a, 0xd88b, 0xd88c, 0xd88e, 0xd88f, 0xd890, 0xd891, 0xd893, 
-	0xd894, 0xd895, 0xd897, 0xd898, 0xd89a, 0xd89b, 0xd89d, 0xd89f, 
-	0xd8a0, 0xd8a0, 0xd8a0, 0xd8a0, 0xd8a1, 0xd8a1, 0xd8a2, 0xd8a2, 
-	0xd8a3, 0xd8a4, 0xd8a5, 0xd8a5, 0xd8a6, 0xd8a7, 0xd8a8, 0xd8a9, 
-	0xd8aa, 0xd8ab, 0xd8ac, 0xd8ae, 0xd8af, 0xd8b0, 0xd8b1, 0xd8b3, 
-	0xd8b4, 0xd8b5, 0xd8b7, 0xd8b8, 0xd8ba, 0xd8bb, 0xd8bd, 0xd8bf, 
-	0xd8a0, 0xd8a0, 0xd8a0, 0xd8a0, 0xd8a1, 0xd8a1, 0xd8a2, 0xd8a2, 
-	0xd8a3, 0xd8a4, 0xd8a5, 0xd8a5, 0xd8a6, 0xd8a7, 0xd8a8, 0xd8a9, 
-	0xd8aa, 0xd8ab, 0xd8ac, 0xd8ae, 0xd8af, 0xd8b0, 0xd8b1, 0xd8b3, 
-	0xd8b4, 0xd8b5, 0xd8b7, 0xd8b8, 0xd8ba, 0xd8bb, 0xd8bd, 0xd8bf, 
-	0xd8c0, 0xd8c0, 0xd8c0, 0xd8c0, 0xd8c1, 0xd8c1, 0xd8c2, 0xd8c2, 
-	0xd8c3, 0xd8c4, 0xd8c5, 0xd8c5, 0xd8c6, 0xd8c7, 0xd8c8, 0xd8c9, 
-	0xd8ca, 0xd8cb, 0xd8cc, 0xd8ce, 0xd8cf, 0xd8d0, 0xd8d1, 0xd8d3, 
-	0xd8d4, 0xd8d5, 0xd8d7, 0xd8d8, 0xd8da, 0xd8db, 0xd8dd, 0xd8df, 
-	0xd8e0, 0xd8e0, 0xd8e0, 0xd8e0, 0xd8e1, 0xd8e1, 0xd8e2, 0xd8e2, 
-	0xd8e3, 0xd8e4, 0xd8e5, 0xd8e5, 0xd8e6, 0xd8e7, 0xd8e8, 0xd8e9, 
-	0xd8ea, 0xd8eb, 0xd8ec, 0xd8ee, 0xd8ef, 0xd8f0, 0xd8f1, 0xd8f3, 
-	0xd8f4, 0xd8f5, 0xd8f7, 0xd8f8, 0xd8fa, 0xd8fb, 0xd8fd, 0xd8ff, 
-	0xd8e0, 0xd8e0, 0xd8e0, 0xd8e0, 0xd8e1, 0xd8e1, 0xd8e2, 0xd8e2, 
-	0xd8e3, 0xd8e4, 0xd8e5, 0xd8e5, 0xd8e6, 0xd8e7, 0xd8e8, 0xd8e9, 
-	0xd8ea, 0xd8eb, 0xd8ec, 0xd8ee, 0xd8ef, 0xd8f0, 0xd8f1, 0xd8f3, 
-	0xd8f4, 0xd8f5, 0xd8f7, 0xd8f8, 0xd8fa, 0xd8fb, 0xd8fd, 0xd8ff, 
-	0xd900, 0xd900, 0xd900, 0xd900, 0xd901, 0xd901, 0xd902, 0xd902, 
-	0xd903, 0xd904, 0xd905, 0xd905, 0xd906, 0xd907, 0xd908, 0xd909, 
-	0xd90a, 0xd90b, 0xd90c, 0xd90e, 0xd90f, 0xd910, 0xd911, 0xd913, 
-	0xd914, 0xd915, 0xd917, 0xd918, 0xd91a, 0xd91b, 0xd91d, 0xd91f, 
-	0xd920, 0xd920, 0xd920, 0xd920, 0xd921, 0xd921, 0xd922, 0xd922, 
-	0xd923, 0xd924, 0xd925, 0xd925, 0xd926, 0xd927, 0xd928, 0xd929, 
-	0xd92a, 0xd92b, 0xd92c, 0xd92e, 0xd92f, 0xd930, 0xd931, 0xd933, 
-	0xd934, 0xd935, 0xd937, 0xd938, 0xd93a, 0xd93b, 0xd93d, 0xd93f, 
-	0xd940, 0xd940, 0xd940, 0xd940, 0xd941, 0xd941, 0xd942, 0xd942, 
-	0xd943, 0xd944, 0xd945, 0xd945, 0xd946, 0xd947, 0xd948, 0xd949, 
-	0xd94a, 0xd94b, 0xd94c, 0xd94e, 0xd94f, 0xd950, 0xd951, 0xd953, 
-	0xd954, 0xd955, 0xd957, 0xd958, 0xd95a, 0xd95b, 0xd95d, 0xd95f, 
-	0xd940, 0xd940, 0xd940, 0xd940, 0xd941, 0xd941, 0xd942, 0xd942, 
-	0xd943, 0xd944, 0xd945, 0xd945, 0xd946, 0xd947, 0xd948, 0xd949, 
-	0xd94a, 0xd94b, 0xd94c, 0xd94e, 0xd94f, 0xd950, 0xd951, 0xd953, 
-	0xd954, 0xd955, 0xd957, 0xd958, 0xd95a, 0xd95b, 0xd95d, 0xd95f, 
-	0xd960, 0xd960, 0xd960, 0xd960, 0xd961, 0xd961, 0xd962, 0xd962, 
-	0xd963, 0xd964, 0xd965, 0xd965, 0xd966, 0xd967, 0xd968, 0xd969, 
-	0xd96a, 0xd96b, 0xd96c, 0xd96e, 0xd96f, 0xd970, 0xd971, 0xd973, 
-	0xd974, 0xd975, 0xd977, 0xd978, 0xd97a, 0xd97b, 0xd97d, 0xd97f, 
-	0xd980, 0xd980, 0xd980, 0xd980, 0xd981, 0xd981, 0xd982, 0xd982, 
-	0xd983, 0xd984, 0xd985, 0xd985, 0xd986, 0xd987, 0xd988, 0xd989, 
-	0xd98a, 0xd98b, 0xd98c, 0xd98e, 0xd98f, 0xd990, 0xd991, 0xd993, 
-	0xd994, 0xd995, 0xd997, 0xd998, 0xd99a, 0xd99b, 0xd99d, 0xd99f, 
-	0xd9a0, 0xd9a0, 0xd9a0, 0xd9a0, 0xd9a1, 0xd9a1, 0xd9a2, 0xd9a2, 
-	0xd9a3, 0xd9a4, 0xd9a5, 0xd9a5, 0xd9a6, 0xd9a7, 0xd9a8, 0xd9a9, 
-	0xd9aa, 0xd9ab, 0xd9ac, 0xd9ae, 0xd9af, 0xd9b0, 0xd9b1, 0xd9b3, 
-	0xd9b4, 0xd9b5, 0xd9b7, 0xd9b8, 0xd9ba, 0xd9bb, 0xd9bd, 0xd9bf, 
-	0xd9c0, 0xd9c0, 0xd9c0, 0xd9c0, 0xd9c1, 0xd9c1, 0xd9c2, 0xd9c2, 
-	0xd9c3, 0xd9c4, 0xd9c5, 0xd9c5, 0xd9c6, 0xd9c7, 0xd9c8, 0xd9c9, 
-	0xd9ca, 0xd9cb, 0xd9cc, 0xd9ce, 0xd9cf, 0xd9d0, 0xd9d1, 0xd9d3, 
-	0xd9d4, 0xd9d5, 0xd9d7, 0xd9d8, 0xd9da, 0xd9db, 0xd9dd, 0xd9df, 
-	0xd9e0, 0xd9e0, 0xd9e0, 0xd9e0, 0xd9e1, 0xd9e1, 0xd9e2, 0xd9e2, 
-	0xd9e3, 0xd9e4, 0xd9e5, 0xd9e5, 0xd9e6, 0xd9e7, 0xd9e8, 0xd9e9, 
-	0xd9ea, 0xd9eb, 0xd9ec, 0xd9ee, 0xd9ef, 0xd9f0, 0xd9f1, 0xd9f3, 
-	0xd9f4, 0xd9f5, 0xd9f7, 0xd9f8, 0xd9fa, 0xd9fb, 0xd9fd, 0xd9ff, 
-	0xda00, 0xda00, 0xda00, 0xda00, 0xda01, 0xda01, 0xda02, 0xda02, 
-	0xda03, 0xda04, 0xda05, 0xda05, 0xda06, 0xda07, 0xda08, 0xda09, 
-	0xda0a, 0xda0b, 0xda0c, 0xda0e, 0xda0f, 0xda10, 0xda11, 0xda13, 
-	0xda14, 0xda15, 0xda17, 0xda18, 0xda1a, 0xda1b, 0xda1d, 0xda1f, 
-	0xda20, 0xda20, 0xda20, 0xda20, 0xda21, 0xda21, 0xda22, 0xda22, 
-	0xda23, 0xda24, 0xda25, 0xda25, 0xda26, 0xda27, 0xda28, 0xda29, 
-	0xda2a, 0xda2b, 0xda2c, 0xda2e, 0xda2f, 0xda30, 0xda31, 0xda33, 
-	0xda34, 0xda35, 0xda37, 0xda38, 0xda3a, 0xda3b, 0xda3d, 0xda3f, 
-	0xda40, 0xda40, 0xda40, 0xda40, 0xda41, 0xda41, 0xda42, 0xda42, 
-	0xda43, 0xda44, 0xda45, 0xda45, 0xda46, 0xda47, 0xda48, 0xda49, 
-	0xda4a, 0xda4b, 0xda4c, 0xda4e, 0xda4f, 0xda50, 0xda51, 0xda53, 
-	0xda54, 0xda55, 0xda57, 0xda58, 0xda5a, 0xda5b, 0xda5d, 0xda5f, 
-	0xda60, 0xda60, 0xda60, 0xda60, 0xda61, 0xda61, 0xda62, 0xda62, 
-	0xda63, 0xda64, 0xda65, 0xda65, 0xda66, 0xda67, 0xda68, 0xda69, 
-	0xda6a, 0xda6b, 0xda6c, 0xda6e, 0xda6f, 0xda70, 0xda71, 0xda73, 
-	0xda74, 0xda75, 0xda77, 0xda78, 0xda7a, 0xda7b, 0xda7d, 0xda7f, 
-	0xda80, 0xda80, 0xda80, 0xda80, 0xda81, 0xda81, 0xda82, 0xda82, 
-	0xda83, 0xda84, 0xda85, 0xda85, 0xda86, 0xda87, 0xda88, 0xda89, 
-	0xda8a, 0xda8b, 0xda8c, 0xda8e, 0xda8f, 0xda90, 0xda91, 0xda93, 
-	0xda94, 0xda95, 0xda97, 0xda98, 0xda9a, 0xda9b, 0xda9d, 0xda9f, 
-	0xdaa0, 0xdaa0, 0xdaa0, 0xdaa0, 0xdaa1, 0xdaa1, 0xdaa2, 0xdaa2, 
-	0xdaa3, 0xdaa4, 0xdaa5, 0xdaa5, 0xdaa6, 0xdaa7, 0xdaa8, 0xdaa9, 
-	0xdaaa, 0xdaab, 0xdaac, 0xdaae, 0xdaaf, 0xdab0, 0xdab1, 0xdab3, 
-	0xdab4, 0xdab5, 0xdab7, 0xdab8, 0xdaba, 0xdabb, 0xdabd, 0xdabf, 
-	0xdac0, 0xdac0, 0xdac0, 0xdac0, 0xdac1, 0xdac1, 0xdac2, 0xdac2, 
-	0xdac3, 0xdac4, 0xdac5, 0xdac5, 0xdac6, 0xdac7, 0xdac8, 0xdac9, 
-	0xdaca, 0xdacb, 0xdacc, 0xdace, 0xdacf, 0xdad0, 0xdad1, 0xdad3, 
-	0xdad4, 0xdad5, 0xdad7, 0xdad8, 0xdada, 0xdadb, 0xdadd, 0xdadf, 
-	0xdae0, 0xdae0, 0xdae0, 0xdae0, 0xdae1, 0xdae1, 0xdae2, 0xdae2, 
-	0xdae3, 0xdae4, 0xdae5, 0xdae5, 0xdae6, 0xdae7, 0xdae8, 0xdae9, 
-	0xdaea, 0xdaeb, 0xdaec, 0xdaee, 0xdaef, 0xdaf0, 0xdaf1, 0xdaf3, 
-	0xdaf4, 0xdaf5, 0xdaf7, 0xdaf8, 0xdafa, 0xdafb, 0xdafd, 0xdaff, 
-	0xdb00, 0xdb00, 0xdb00, 0xdb00, 0xdb01, 0xdb01, 0xdb02, 0xdb02, 
-	0xdb03, 0xdb04, 0xdb05, 0xdb05, 0xdb06, 0xdb07, 0xdb08, 0xdb09, 
-	0xdb0a, 0xdb0b, 0xdb0c, 0xdb0e, 0xdb0f, 0xdb10, 0xdb11, 0xdb13, 
-	0xdb14, 0xdb15, 0xdb17, 0xdb18, 0xdb1a, 0xdb1b, 0xdb1d, 0xdb1f, 
-	0xdb20, 0xdb20, 0xdb20, 0xdb20, 0xdb21, 0xdb21, 0xdb22, 0xdb22, 
-	0xdb23, 0xdb24, 0xdb25, 0xdb25, 0xdb26, 0xdb27, 0xdb28, 0xdb29, 
-	0xdb2a, 0xdb2b, 0xdb2c, 0xdb2e, 0xdb2f, 0xdb30, 0xdb31, 0xdb33, 
-	0xdb34, 0xdb35, 0xdb37, 0xdb38, 0xdb3a, 0xdb3b, 0xdb3d, 0xdb3f, 
-	0xdb40, 0xdb40, 0xdb40, 0xdb40, 0xdb41, 0xdb41, 0xdb42, 0xdb42, 
-	0xdb43, 0xdb44, 0xdb45, 0xdb45, 0xdb46, 0xdb47, 0xdb48, 0xdb49, 
-	0xdb4a, 0xdb4b, 0xdb4c, 0xdb4e, 0xdb4f, 0xdb50, 0xdb51, 0xdb53, 
-	0xdb54, 0xdb55, 0xdb57, 0xdb58, 0xdb5a, 0xdb5b, 0xdb5d, 0xdb5f, 
-	0xdb80, 0xdb80, 0xdb80, 0xdb80, 0xdb81, 0xdb81, 0xdb82, 0xdb82, 
-	0xdb83, 0xdb84, 0xdb85, 0xdb85, 0xdb86, 0xdb87, 0xdb88, 0xdb89, 
-	0xdb8a, 0xdb8b, 0xdb8c, 0xdb8e, 0xdb8f, 0xdb90, 0xdb91, 0xdb93, 
-	0xdb94, 0xdb95, 0xdb97, 0xdb98, 0xdb9a, 0xdb9b, 0xdb9d, 0xdb9f, 
-	0xdba0, 0xdba0, 0xdba0, 0xdba0, 0xdba1, 0xdba1, 0xdba2, 0xdba2, 
-	0xdba3, 0xdba4, 0xdba5, 0xdba5, 0xdba6, 0xdba7, 0xdba8, 0xdba9, 
-	0xdbaa, 0xdbab, 0xdbac, 0xdbae, 0xdbaf, 0xdbb0, 0xdbb1, 0xdbb3, 
-	0xdbb4, 0xdbb5, 0xdbb7, 0xdbb8, 0xdbba, 0xdbbb, 0xdbbd, 0xdbbf, 
-	0xdbc0, 0xdbc0, 0xdbc0, 0xdbc0, 0xdbc1, 0xdbc1, 0xdbc2, 0xdbc2, 
-	0xdbc3, 0xdbc4, 0xdbc5, 0xdbc5, 0xdbc6, 0xdbc7, 0xdbc8, 0xdbc9, 
-	0xdbca, 0xdbcb, 0xdbcc, 0xdbce, 0xdbcf, 0xdbd0, 0xdbd1, 0xdbd3, 
-	0xdbd4, 0xdbd5, 0xdbd7, 0xdbd8, 0xdbda, 0xdbdb, 0xdbdd, 0xdbdf, 
-	0xdbe0, 0xdbe0, 0xdbe0, 0xdbe0, 0xdbe1, 0xdbe1, 0xdbe2, 0xdbe2, 
-	0xdbe3, 0xdbe4, 0xdbe5, 0xdbe5, 0xdbe6, 0xdbe7, 0xdbe8, 0xdbe9, 
-	0xdbea, 0xdbeb, 0xdbec, 0xdbee, 0xdbef, 0xdbf0, 0xdbf1, 0xdbf3, 
-	0xdbf4, 0xdbf5, 0xdbf7, 0xdbf8, 0xdbfa, 0xdbfb, 0xdbfd, 0xdbff, 
-	0xdc00, 0xdc00, 0xdc00, 0xdc00, 0xdc01, 0xdc01, 0xdc02, 0xdc02, 
-	0xdc03, 0xdc04, 0xdc05, 0xdc05, 0xdc06, 0xdc07, 0xdc08, 0xdc09, 
-	0xdc0a, 0xdc0b, 0xdc0c, 0xdc0e, 0xdc0f, 0xdc10, 0xdc11, 0xdc13, 
-	0xdc14, 0xdc15, 0xdc17, 0xdc18, 0xdc1a, 0xdc1b, 0xdc1d, 0xdc1f, 
-	0xdc40, 0xdc40, 0xdc40, 0xdc40, 0xdc41, 0xdc41, 0xdc42, 0xdc42, 
-	0xdc43, 0xdc44, 0xdc45, 0xdc45, 0xdc46, 0xdc47, 0xdc48, 0xdc49, 
-	0xdc4a, 0xdc4b, 0xdc4c, 0xdc4e, 0xdc4f, 0xdc50, 0xdc51, 0xdc53, 
-	0xdc54, 0xdc55, 0xdc57, 0xdc58, 0xdc5a, 0xdc5b, 0xdc5d, 0xdc5f, 
-	0xdc60, 0xdc60, 0xdc60, 0xdc60, 0xdc61, 0xdc61, 0xdc62, 0xdc62, 
-	0xdc63, 0xdc64, 0xdc65, 0xdc65, 0xdc66, 0xdc67, 0xdc68, 0xdc69, 
-	0xdc6a, 0xdc6b, 0xdc6c, 0xdc6e, 0xdc6f, 0xdc70, 0xdc71, 0xdc73, 
-	0xdc74, 0xdc75, 0xdc77, 0xdc78, 0xdc7a, 0xdc7b, 0xdc7d, 0xdc7f, 
-	0xdc80, 0xdc80, 0xdc80, 0xdc80, 0xdc81, 0xdc81, 0xdc82, 0xdc82, 
-	0xdc83, 0xdc84, 0xdc85, 0xdc85, 0xdc86, 0xdc87, 0xdc88, 0xdc89, 
-	0xdc8a, 0xdc8b, 0xdc8c, 0xdc8e, 0xdc8f, 0xdc90, 0xdc91, 0xdc93, 
-	0xdc94, 0xdc95, 0xdc97, 0xdc98, 0xdc9a, 0xdc9b, 0xdc9d, 0xdc9f, 
-	0xdcc0, 0xdcc0, 0xdcc0, 0xdcc0, 0xdcc1, 0xdcc1, 0xdcc2, 0xdcc2, 
-	0xdcc3, 0xdcc4, 0xdcc5, 0xdcc5, 0xdcc6, 0xdcc7, 0xdcc8, 0xdcc9, 
-	0xdcca, 0xdccb, 0xdccc, 0xdcce, 0xdccf, 0xdcd0, 0xdcd1, 0xdcd3, 
-	0xdcd4, 0xdcd5, 0xdcd7, 0xdcd8, 0xdcda, 0xdcdb, 0xdcdd, 0xdcdf, 
-	0xdce0, 0xdce0, 0xdce0, 0xdce0, 0xdce1, 0xdce1, 0xdce2, 0xdce2, 
-	0xdce3, 0xdce4, 0xdce5, 0xdce5, 0xdce6, 0xdce7, 0xdce8, 0xdce9, 
-	0xdcea, 0xdceb, 0xdcec, 0xdcee, 0xdcef, 0xdcf0, 0xdcf1, 0xdcf3, 
-	0xdcf4, 0xdcf5, 0xdcf7, 0xdcf8, 0xdcfa, 0xdcfb, 0xdcfd, 0xdcff, 
-	0xdd00, 0xdd00, 0xdd00, 0xdd00, 0xdd01, 0xdd01, 0xdd02, 0xdd02, 
-	0xdd03, 0xdd04, 0xdd05, 0xdd05, 0xdd06, 0xdd07, 0xdd08, 0xdd09, 
-	0xdd0a, 0xdd0b, 0xdd0c, 0xdd0e, 0xdd0f, 0xdd10, 0xdd11, 0xdd13, 
-	0xdd14, 0xdd15, 0xdd17, 0xdd18, 0xdd1a, 0xdd1b, 0xdd1d, 0xdd1f, 
-	0xdd40, 0xdd40, 0xdd40, 0xdd40, 0xdd41, 0xdd41, 0xdd42, 0xdd42, 
-	0xdd43, 0xdd44, 0xdd45, 0xdd45, 0xdd46, 0xdd47, 0xdd48, 0xdd49, 
-	0xdd4a, 0xdd4b, 0xdd4c, 0xdd4e, 0xdd4f, 0xdd50, 0xdd51, 0xdd53, 
-	0xdd54, 0xdd55, 0xdd57, 0xdd58, 0xdd5a, 0xdd5b, 0xdd5d, 0xdd5f, 
-	0xdd60, 0xdd60, 0xdd60, 0xdd60, 0xdd61, 0xdd61, 0xdd62, 0xdd62, 
-	0xdd63, 0xdd64, 0xdd65, 0xdd65, 0xdd66, 0xdd67, 0xdd68, 0xdd69, 
-	0xdd6a, 0xdd6b, 0xdd6c, 0xdd6e, 0xdd6f, 0xdd70, 0xdd71, 0xdd73, 
-	0xdd74, 0xdd75, 0xdd77, 0xdd78, 0xdd7a, 0xdd7b, 0xdd7d, 0xdd7f, 
-	0xdd80, 0xdd80, 0xdd80, 0xdd80, 0xdd81, 0xdd81, 0xdd82, 0xdd82, 
-	0xdd83, 0xdd84, 0xdd85, 0xdd85, 0xdd86, 0xdd87, 0xdd88, 0xdd89, 
-	0xdd8a, 0xdd8b, 0xdd8c, 0xdd8e, 0xdd8f, 0xdd90, 0xdd91, 0xdd93, 
-	0xdd94, 0xdd95, 0xdd97, 0xdd98, 0xdd9a, 0xdd9b, 0xdd9d, 0xdd9f, 
-	0xddc0, 0xddc0, 0xddc0, 0xddc0, 0xddc1, 0xddc1, 0xddc2, 0xddc2, 
-	0xddc3, 0xddc4, 0xddc5, 0xddc5, 0xddc6, 0xddc7, 0xddc8, 0xddc9, 
-	0xddca, 0xddcb, 0xddcc, 0xddce, 0xddcf, 0xddd0, 0xddd1, 0xddd3, 
-	0xddd4, 0xddd5, 0xddd7, 0xddd8, 0xddda, 0xdddb, 0xdddd, 0xdddf, 
-	0xdde0, 0xdde0, 0xdde0, 0xdde0, 0xdde1, 0xdde1, 0xdde2, 0xdde2, 
-	0xdde3, 0xdde4, 0xdde5, 0xdde5, 0xdde6, 0xdde7, 0xdde8, 0xdde9, 
-	0xddea, 0xddeb, 0xddec, 0xddee, 0xddef, 0xddf0, 0xddf1, 0xddf3, 
-	0xddf4, 0xddf5, 0xddf7, 0xddf8, 0xddfa, 0xddfb, 0xddfd, 0xddff, 
-	0xde20, 0xde20, 0xde20, 0xde20, 0xde21, 0xde21, 0xde22, 0xde22, 
-	0xde23, 0xde24, 0xde25, 0xde25, 0xde26, 0xde27, 0xde28, 0xde29, 
-	0xde2a, 0xde2b, 0xde2c, 0xde2e, 0xde2f, 0xde30, 0xde31, 0xde33, 
-	0xde34, 0xde35, 0xde37, 0xde38, 0xde3a, 0xde3b, 0xde3d, 0xde3f, 
-	0xde40, 0xde40, 0xde40, 0xde40, 0xde41, 0xde41, 0xde42, 0xde42, 
-	0xde43, 0xde44, 0xde45, 0xde45, 0xde46, 0xde47, 0xde48, 0xde49, 
-	0xde4a, 0xde4b, 0xde4c, 0xde4e, 0xde4f, 0xde50, 0xde51, 0xde53, 
-	0xde54, 0xde55, 0xde57, 0xde58, 0xde5a, 0xde5b, 0xde5d, 0xde5f, 
-	0xde80, 0xde80, 0xde80, 0xde80, 0xde81, 0xde81, 0xde82, 0xde82, 
-	0xde83, 0xde84, 0xde85, 0xde85, 0xde86, 0xde87, 0xde88, 0xde89, 
-	0xde8a, 0xde8b, 0xde8c, 0xde8e, 0xde8f, 0xde90, 0xde91, 0xde93, 
-	0xde94, 0xde95, 0xde97, 0xde98, 0xde9a, 0xde9b, 0xde9d, 0xde9f, 
-	0xdea0, 0xdea0, 0xdea0, 0xdea0, 0xdea1, 0xdea1, 0xdea2, 0xdea2, 
-	0xdea3, 0xdea4, 0xdea5, 0xdea5, 0xdea6, 0xdea7, 0xdea8, 0xdea9, 
-	0xdeaa, 0xdeab, 0xdeac, 0xdeae, 0xdeaf, 0xdeb0, 0xdeb1, 0xdeb3, 
-	0xdeb4, 0xdeb5, 0xdeb7, 0xdeb8, 0xdeba, 0xdebb, 0xdebd, 0xdebf, 
-	0xdee0, 0xdee0, 0xdee0, 0xdee0, 0xdee1, 0xdee1, 0xdee2, 0xdee2, 
-	0xdee3, 0xdee4, 0xdee5, 0xdee5, 0xdee6, 0xdee7, 0xdee8, 0xdee9, 
-	0xdeea, 0xdeeb, 0xdeec, 0xdeee, 0xdeef, 0xdef0, 0xdef1, 0xdef3, 
-	0xdef4, 0xdef5, 0xdef7, 0xdef8, 0xdefa, 0xdefb, 0xdefd, 0xdeff, 
-	0xdf00, 0xdf00, 0xdf00, 0xdf00, 0xdf01, 0xdf01, 0xdf02, 0xdf02, 
-	0xdf03, 0xdf04, 0xdf05, 0xdf05, 0xdf06, 0xdf07, 0xdf08, 0xdf09, 
-	0xdf0a, 0xdf0b, 0xdf0c, 0xdf0e, 0xdf0f, 0xdf10, 0xdf11, 0xdf13, 
-	0xdf14, 0xdf15, 0xdf17, 0xdf18, 0xdf1a, 0xdf1b, 0xdf1d, 0xdf1f, 
-	0xdf40, 0xdf40, 0xdf40, 0xdf40, 0xdf41, 0xdf41, 0xdf42, 0xdf42, 
-	0xdf43, 0xdf44, 0xdf45, 0xdf45, 0xdf46, 0xdf47, 0xdf48, 0xdf49, 
-	0xdf4a, 0xdf4b, 0xdf4c, 0xdf4e, 0xdf4f, 0xdf50, 0xdf51, 0xdf53, 
-	0xdf54, 0xdf55, 0xdf57, 0xdf58, 0xdf5a, 0xdf5b, 0xdf5d, 0xdf5f, 
-	0xdf60, 0xdf60, 0xdf60, 0xdf60, 0xdf61, 0xdf61, 0xdf62, 0xdf62, 
-	0xdf63, 0xdf64, 0xdf65, 0xdf65, 0xdf66, 0xdf67, 0xdf68, 0xdf69, 
-	0xdf6a, 0xdf6b, 0xdf6c, 0xdf6e, 0xdf6f, 0xdf70, 0xdf71, 0xdf73, 
-	0xdf74, 0xdf75, 0xdf77, 0xdf78, 0xdf7a, 0xdf7b, 0xdf7d, 0xdf7f, 
-	0xdfa0, 0xdfa0, 0xdfa0, 0xdfa0, 0xdfa1, 0xdfa1, 0xdfa2, 0xdfa2, 
-	0xdfa3, 0xdfa4, 0xdfa5, 0xdfa5, 0xdfa6, 0xdfa7, 0xdfa8, 0xdfa9, 
-	0xdfaa, 0xdfab, 0xdfac, 0xdfae, 0xdfaf, 0xdfb0, 0xdfb1, 0xdfb3, 
-	0xdfb4, 0xdfb5, 0xdfb7, 0xdfb8, 0xdfba, 0xdfbb, 0xdfbd, 0xdfbf, 
-	0xdfe0, 0xdfe0, 0xdfe0, 0xdfe0, 0xdfe1, 0xdfe1, 0xdfe2, 0xdfe2, 
-	0xdfe3, 0xdfe4, 0xdfe5, 0xdfe5, 0xdfe6, 0xdfe7, 0xdfe8, 0xdfe9, 
-	0xdfea, 0xdfeb, 0xdfec, 0xdfee, 0xdfef, 0xdff0, 0xdff1, 0xdff3, 
-	0xdff4, 0xdff5, 0xdff7, 0xdff8, 0xdffa, 0xdffb, 0xdffd, 0xdfff, 
-	0xe800, 0xe800, 0xe800, 0xe800, 0xe801, 0xe801, 0xe802, 0xe802, 
-	0xe803, 0xe804, 0xe805, 0xe805, 0xe806, 0xe807, 0xe808, 0xe809, 
-	0xe80a, 0xe80b, 0xe80c, 0xe80e, 0xe80f, 0xe810, 0xe811, 0xe813, 
-	0xe814, 0xe815, 0xe817, 0xe818, 0xe81a, 0xe81b, 0xe81d, 0xe81f, 
-	0xe800, 0xe800, 0xe800, 0xe800, 0xe801, 0xe801, 0xe802, 0xe802, 
-	0xe803, 0xe804, 0xe805, 0xe805, 0xe806, 0xe807, 0xe808, 0xe809, 
-	0xe80a, 0xe80b, 0xe80c, 0xe80e, 0xe80f, 0xe810, 0xe811, 0xe813, 
-	0xe814, 0xe815, 0xe817, 0xe818, 0xe81a, 0xe81b, 0xe81d, 0xe81f, 
-	0xe800, 0xe800, 0xe800, 0xe800, 0xe801, 0xe801, 0xe802, 0xe802, 
-	0xe803, 0xe804, 0xe805, 0xe805, 0xe806, 0xe807, 0xe808, 0xe809, 
-	0xe80a, 0xe80b, 0xe80c, 0xe80e, 0xe80f, 0xe810, 0xe811, 0xe813, 
-	0xe814, 0xe815, 0xe817, 0xe818, 0xe81a, 0xe81b, 0xe81d, 0xe81f, 
-	0xe800, 0xe800, 0xe800, 0xe800, 0xe801, 0xe801, 0xe802, 0xe802, 
-	0xe803, 0xe804, 0xe805, 0xe805, 0xe806, 0xe807, 0xe808, 0xe809, 
-	0xe80a, 0xe80b, 0xe80c, 0xe80e, 0xe80f, 0xe810, 0xe811, 0xe813, 
-	0xe814, 0xe815, 0xe817, 0xe818, 0xe81a, 0xe81b, 0xe81d, 0xe81f, 
-	0xe800, 0xe800, 0xe800, 0xe800, 0xe801, 0xe801, 0xe802, 0xe802, 
-	0xe803, 0xe804, 0xe805, 0xe805, 0xe806, 0xe807, 0xe808, 0xe809, 
-	0xe80a, 0xe80b, 0xe80c, 0xe80e, 0xe80f, 0xe810, 0xe811, 0xe813, 
-	0xe814, 0xe815, 0xe817, 0xe818, 0xe81a, 0xe81b, 0xe81d, 0xe81f, 
-	0xe820, 0xe820, 0xe820, 0xe820, 0xe821, 0xe821, 0xe822, 0xe822, 
-	0xe823, 0xe824, 0xe825, 0xe825, 0xe826, 0xe827, 0xe828, 0xe829, 
-	0xe82a, 0xe82b, 0xe82c, 0xe82e, 0xe82f, 0xe830, 0xe831, 0xe833, 
-	0xe834, 0xe835, 0xe837, 0xe838, 0xe83a, 0xe83b, 0xe83d, 0xe83f, 
-	0xe820, 0xe820, 0xe820, 0xe820, 0xe821, 0xe821, 0xe822, 0xe822, 
-	0xe823, 0xe824, 0xe825, 0xe825, 0xe826, 0xe827, 0xe828, 0xe829, 
-	0xe82a, 0xe82b, 0xe82c, 0xe82e, 0xe82f, 0xe830, 0xe831, 0xe833, 
-	0xe834, 0xe835, 0xe837, 0xe838, 0xe83a, 0xe83b, 0xe83d, 0xe83f, 
-	0xe820, 0xe820, 0xe820, 0xe820, 0xe821, 0xe821, 0xe822, 0xe822, 
-	0xe823, 0xe824, 0xe825, 0xe825, 0xe826, 0xe827, 0xe828, 0xe829, 
-	0xe82a, 0xe82b, 0xe82c, 0xe82e, 0xe82f, 0xe830, 0xe831, 0xe833, 
-	0xe834, 0xe835, 0xe837, 0xe838, 0xe83a, 0xe83b, 0xe83d, 0xe83f, 
-	0xe840, 0xe840, 0xe840, 0xe840, 0xe841, 0xe841, 0xe842, 0xe842, 
-	0xe843, 0xe844, 0xe845, 0xe845, 0xe846, 0xe847, 0xe848, 0xe849, 
-	0xe84a, 0xe84b, 0xe84c, 0xe84e, 0xe84f, 0xe850, 0xe851, 0xe853, 
-	0xe854, 0xe855, 0xe857, 0xe858, 0xe85a, 0xe85b, 0xe85d, 0xe85f, 
-	0xe840, 0xe840, 0xe840, 0xe840, 0xe841, 0xe841, 0xe842, 0xe842, 
-	0xe843, 0xe844, 0xe845, 0xe845, 0xe846, 0xe847, 0xe848, 0xe849, 
-	0xe84a, 0xe84b, 0xe84c, 0xe84e, 0xe84f, 0xe850, 0xe851, 0xe853, 
-	0xe854, 0xe855, 0xe857, 0xe858, 0xe85a, 0xe85b, 0xe85d, 0xe85f, 
-	0xe860, 0xe860, 0xe860, 0xe860, 0xe861, 0xe861, 0xe862, 0xe862, 
-	0xe863, 0xe864, 0xe865, 0xe865, 0xe866, 0xe867, 0xe868, 0xe869, 
-	0xe86a, 0xe86b, 0xe86c, 0xe86e, 0xe86f, 0xe870, 0xe871, 0xe873, 
-	0xe874, 0xe875, 0xe877, 0xe878, 0xe87a, 0xe87b, 0xe87d, 0xe87f, 
-	0xe860, 0xe860, 0xe860, 0xe860, 0xe861, 0xe861, 0xe862, 0xe862, 
-	0xe863, 0xe864, 0xe865, 0xe865, 0xe866, 0xe867, 0xe868, 0xe869, 
-	0xe86a, 0xe86b, 0xe86c, 0xe86e, 0xe86f, 0xe870, 0xe871, 0xe873, 
-	0xe874, 0xe875, 0xe877, 0xe878, 0xe87a, 0xe87b, 0xe87d, 0xe87f, 
-	0xe880, 0xe880, 0xe880, 0xe880, 0xe881, 0xe881, 0xe882, 0xe882, 
-	0xe883, 0xe884, 0xe885, 0xe885, 0xe886, 0xe887, 0xe888, 0xe889, 
-	0xe88a, 0xe88b, 0xe88c, 0xe88e, 0xe88f, 0xe890, 0xe891, 0xe893, 
-	0xe894, 0xe895, 0xe897, 0xe898, 0xe89a, 0xe89b, 0xe89d, 0xe89f, 
-	0xe8a0, 0xe8a0, 0xe8a0, 0xe8a0, 0xe8a1, 0xe8a1, 0xe8a2, 0xe8a2, 
-	0xe8a3, 0xe8a4, 0xe8a5, 0xe8a5, 0xe8a6, 0xe8a7, 0xe8a8, 0xe8a9, 
-	0xe8aa, 0xe8ab, 0xe8ac, 0xe8ae, 0xe8af, 0xe8b0, 0xe8b1, 0xe8b3, 
-	0xe8b4, 0xe8b5, 0xe8b7, 0xe8b8, 0xe8ba, 0xe8bb, 0xe8bd, 0xe8bf, 
-	0xe8a0, 0xe8a0, 0xe8a0, 0xe8a0, 0xe8a1, 0xe8a1, 0xe8a2, 0xe8a2, 
-	0xe8a3, 0xe8a4, 0xe8a5, 0xe8a5, 0xe8a6, 0xe8a7, 0xe8a8, 0xe8a9, 
-	0xe8aa, 0xe8ab, 0xe8ac, 0xe8ae, 0xe8af, 0xe8b0, 0xe8b1, 0xe8b3, 
-	0xe8b4, 0xe8b5, 0xe8b7, 0xe8b8, 0xe8ba, 0xe8bb, 0xe8bd, 0xe8bf, 
-	0xe8c0, 0xe8c0, 0xe8c0, 0xe8c0, 0xe8c1, 0xe8c1, 0xe8c2, 0xe8c2, 
-	0xe8c3, 0xe8c4, 0xe8c5, 0xe8c5, 0xe8c6, 0xe8c7, 0xe8c8, 0xe8c9, 
-	0xe8ca, 0xe8cb, 0xe8cc, 0xe8ce, 0xe8cf, 0xe8d0, 0xe8d1, 0xe8d3, 
-	0xe8d4, 0xe8d5, 0xe8d7, 0xe8d8, 0xe8da, 0xe8db, 0xe8dd, 0xe8df, 
-	0xe8e0, 0xe8e0, 0xe8e0, 0xe8e0, 0xe8e1, 0xe8e1, 0xe8e2, 0xe8e2, 
-	0xe8e3, 0xe8e4, 0xe8e5, 0xe8e5, 0xe8e6, 0xe8e7, 0xe8e8, 0xe8e9, 
-	0xe8ea, 0xe8eb, 0xe8ec, 0xe8ee, 0xe8ef, 0xe8f0, 0xe8f1, 0xe8f3, 
-	0xe8f4, 0xe8f5, 0xe8f7, 0xe8f8, 0xe8fa, 0xe8fb, 0xe8fd, 0xe8ff, 
-	0xe8e0, 0xe8e0, 0xe8e0, 0xe8e0, 0xe8e1, 0xe8e1, 0xe8e2, 0xe8e2, 
-	0xe8e3, 0xe8e4, 0xe8e5, 0xe8e5, 0xe8e6, 0xe8e7, 0xe8e8, 0xe8e9, 
-	0xe8ea, 0xe8eb, 0xe8ec, 0xe8ee, 0xe8ef, 0xe8f0, 0xe8f1, 0xe8f3, 
-	0xe8f4, 0xe8f5, 0xe8f7, 0xe8f8, 0xe8fa, 0xe8fb, 0xe8fd, 0xe8ff, 
-	0xe900, 0xe900, 0xe900, 0xe900, 0xe901, 0xe901, 0xe902, 0xe902, 
-	0xe903, 0xe904, 0xe905, 0xe905, 0xe906, 0xe907, 0xe908, 0xe909, 
-	0xe90a, 0xe90b, 0xe90c, 0xe90e, 0xe90f, 0xe910, 0xe911, 0xe913, 
-	0xe914, 0xe915, 0xe917, 0xe918, 0xe91a, 0xe91b, 0xe91d, 0xe91f, 
-	0xe920, 0xe920, 0xe920, 0xe920, 0xe921, 0xe921, 0xe922, 0xe922, 
-	0xe923, 0xe924, 0xe925, 0xe925, 0xe926, 0xe927, 0xe928, 0xe929, 
-	0xe92a, 0xe92b, 0xe92c, 0xe92e, 0xe92f, 0xe930, 0xe931, 0xe933, 
-	0xe934, 0xe935, 0xe937, 0xe938, 0xe93a, 0xe93b, 0xe93d, 0xe93f, 
-	0xe940, 0xe940, 0xe940, 0xe940, 0xe941, 0xe941, 0xe942, 0xe942, 
-	0xe943, 0xe944, 0xe945, 0xe945, 0xe946, 0xe947, 0xe948, 0xe949, 
-	0xe94a, 0xe94b, 0xe94c, 0xe94e, 0xe94f, 0xe950, 0xe951, 0xe953, 
-	0xe954, 0xe955, 0xe957, 0xe958, 0xe95a, 0xe95b, 0xe95d, 0xe95f, 
-	0xe940, 0xe940, 0xe940, 0xe940, 0xe941, 0xe941, 0xe942, 0xe942, 
-	0xe943, 0xe944, 0xe945, 0xe945, 0xe946, 0xe947, 0xe948, 0xe949, 
-	0xe94a, 0xe94b, 0xe94c, 0xe94e, 0xe94f, 0xe950, 0xe951, 0xe953, 
-	0xe954, 0xe955, 0xe957, 0xe958, 0xe95a, 0xe95b, 0xe95d, 0xe95f, 
-	0xe960, 0xe960, 0xe960, 0xe960, 0xe961, 0xe961, 0xe962, 0xe962, 
-	0xe963, 0xe964, 0xe965, 0xe965, 0xe966, 0xe967, 0xe968, 0xe969, 
-	0xe96a, 0xe96b, 0xe96c, 0xe96e, 0xe96f, 0xe970, 0xe971, 0xe973, 
-	0xe974, 0xe975, 0xe977, 0xe978, 0xe97a, 0xe97b, 0xe97d, 0xe97f, 
-	0xe980, 0xe980, 0xe980, 0xe980, 0xe981, 0xe981, 0xe982, 0xe982, 
-	0xe983, 0xe984, 0xe985, 0xe985, 0xe986, 0xe987, 0xe988, 0xe989, 
-	0xe98a, 0xe98b, 0xe98c, 0xe98e, 0xe98f, 0xe990, 0xe991, 0xe993, 
-	0xe994, 0xe995, 0xe997, 0xe998, 0xe99a, 0xe99b, 0xe99d, 0xe99f, 
-	0xe9a0, 0xe9a0, 0xe9a0, 0xe9a0, 0xe9a1, 0xe9a1, 0xe9a2, 0xe9a2, 
-	0xe9a3, 0xe9a4, 0xe9a5, 0xe9a5, 0xe9a6, 0xe9a7, 0xe9a8, 0xe9a9, 
-	0xe9aa, 0xe9ab, 0xe9ac, 0xe9ae, 0xe9af, 0xe9b0, 0xe9b1, 0xe9b3, 
-	0xe9b4, 0xe9b5, 0xe9b7, 0xe9b8, 0xe9ba, 0xe9bb, 0xe9bd, 0xe9bf, 
-	0xe9c0, 0xe9c0, 0xe9c0, 0xe9c0, 0xe9c1, 0xe9c1, 0xe9c2, 0xe9c2, 
-	0xe9c3, 0xe9c4, 0xe9c5, 0xe9c5, 0xe9c6, 0xe9c7, 0xe9c8, 0xe9c9, 
-	0xe9ca, 0xe9cb, 0xe9cc, 0xe9ce, 0xe9cf, 0xe9d0, 0xe9d1, 0xe9d3, 
-	0xe9d4, 0xe9d5, 0xe9d7, 0xe9d8, 0xe9da, 0xe9db, 0xe9dd, 0xe9df, 
-	0xe9e0, 0xe9e0, 0xe9e0, 0xe9e0, 0xe9e1, 0xe9e1, 0xe9e2, 0xe9e2, 
-	0xe9e3, 0xe9e4, 0xe9e5, 0xe9e5, 0xe9e6, 0xe9e7, 0xe9e8, 0xe9e9, 
-	0xe9ea, 0xe9eb, 0xe9ec, 0xe9ee, 0xe9ef, 0xe9f0, 0xe9f1, 0xe9f3, 
-	0xe9f4, 0xe9f5, 0xe9f7, 0xe9f8, 0xe9fa, 0xe9fb, 0xe9fd, 0xe9ff, 
-	0xea00, 0xea00, 0xea00, 0xea00, 0xea01, 0xea01, 0xea02, 0xea02, 
-	0xea03, 0xea04, 0xea05, 0xea05, 0xea06, 0xea07, 0xea08, 0xea09, 
-	0xea0a, 0xea0b, 0xea0c, 0xea0e, 0xea0f, 0xea10, 0xea11, 0xea13, 
-	0xea14, 0xea15, 0xea17, 0xea18, 0xea1a, 0xea1b, 0xea1d, 0xea1f, 
-	0xea20, 0xea20, 0xea20, 0xea20, 0xea21, 0xea21, 0xea22, 0xea22, 
-	0xea23, 0xea24, 0xea25, 0xea25, 0xea26, 0xea27, 0xea28, 0xea29, 
-	0xea2a, 0xea2b, 0xea2c, 0xea2e, 0xea2f, 0xea30, 0xea31, 0xea33, 
-	0xea34, 0xea35, 0xea37, 0xea38, 0xea3a, 0xea3b, 0xea3d, 0xea3f, 
-	0xea40, 0xea40, 0xea40, 0xea40, 0xea41, 0xea41, 0xea42, 0xea42, 
-	0xea43, 0xea44, 0xea45, 0xea45, 0xea46, 0xea47, 0xea48, 0xea49, 
-	0xea4a, 0xea4b, 0xea4c, 0xea4e, 0xea4f, 0xea50, 0xea51, 0xea53, 
-	0xea54, 0xea55, 0xea57, 0xea58, 0xea5a, 0xea5b, 0xea5d, 0xea5f, 
-	0xea60, 0xea60, 0xea60, 0xea60, 0xea61, 0xea61, 0xea62, 0xea62, 
-	0xea63, 0xea64, 0xea65, 0xea65, 0xea66, 0xea67, 0xea68, 0xea69, 
-	0xea6a, 0xea6b, 0xea6c, 0xea6e, 0xea6f, 0xea70, 0xea71, 0xea73, 
-	0xea74, 0xea75, 0xea77, 0xea78, 0xea7a, 0xea7b, 0xea7d, 0xea7f, 
-	0xea80, 0xea80, 0xea80, 0xea80, 0xea81, 0xea81, 0xea82, 0xea82, 
-	0xea83, 0xea84, 0xea85, 0xea85, 0xea86, 0xea87, 0xea88, 0xea89, 
-	0xea8a, 0xea8b, 0xea8c, 0xea8e, 0xea8f, 0xea90, 0xea91, 0xea93, 
-	0xea94, 0xea95, 0xea97, 0xea98, 0xea9a, 0xea9b, 0xea9d, 0xea9f, 
-	0xeaa0, 0xeaa0, 0xeaa0, 0xeaa0, 0xeaa1, 0xeaa1, 0xeaa2, 0xeaa2, 
-	0xeaa3, 0xeaa4, 0xeaa5, 0xeaa5, 0xeaa6, 0xeaa7, 0xeaa8, 0xeaa9, 
-	0xeaaa, 0xeaab, 0xeaac, 0xeaae, 0xeaaf, 0xeab0, 0xeab1, 0xeab3, 
-	0xeab4, 0xeab5, 0xeab7, 0xeab8, 0xeaba, 0xeabb, 0xeabd, 0xeabf, 
-	0xeac0, 0xeac0, 0xeac0, 0xeac0, 0xeac1, 0xeac1, 0xeac2, 0xeac2, 
-	0xeac3, 0xeac4, 0xeac5, 0xeac5, 0xeac6, 0xeac7, 0xeac8, 0xeac9, 
-	0xeaca, 0xeacb, 0xeacc, 0xeace, 0xeacf, 0xead0, 0xead1, 0xead3, 
-	0xead4, 0xead5, 0xead7, 0xead8, 0xeada, 0xeadb, 0xeadd, 0xeadf, 
-	0xeae0, 0xeae0, 0xeae0, 0xeae0, 0xeae1, 0xeae1, 0xeae2, 0xeae2, 
-	0xeae3, 0xeae4, 0xeae5, 0xeae5, 0xeae6, 0xeae7, 0xeae8, 0xeae9, 
-	0xeaea, 0xeaeb, 0xeaec, 0xeaee, 0xeaef, 0xeaf0, 0xeaf1, 0xeaf3, 
-	0xeaf4, 0xeaf5, 0xeaf7, 0xeaf8, 0xeafa, 0xeafb, 0xeafd, 0xeaff, 
-	0xeb00, 0xeb00, 0xeb00, 0xeb00, 0xeb01, 0xeb01, 0xeb02, 0xeb02, 
-	0xeb03, 0xeb04, 0xeb05, 0xeb05, 0xeb06, 0xeb07, 0xeb08, 0xeb09, 
-	0xeb0a, 0xeb0b, 0xeb0c, 0xeb0e, 0xeb0f, 0xeb10, 0xeb11, 0xeb13, 
-	0xeb14, 0xeb15, 0xeb17, 0xeb18, 0xeb1a, 0xeb1b, 0xeb1d, 0xeb1f, 
-	0xeb20, 0xeb20, 0xeb20, 0xeb20, 0xeb21, 0xeb21, 0xeb22, 0xeb22, 
-	0xeb23, 0xeb24, 0xeb25, 0xeb25, 0xeb26, 0xeb27, 0xeb28, 0xeb29, 
-	0xeb2a, 0xeb2b, 0xeb2c, 0xeb2e, 0xeb2f, 0xeb30, 0xeb31, 0xeb33, 
-	0xeb34, 0xeb35, 0xeb37, 0xeb38, 0xeb3a, 0xeb3b, 0xeb3d, 0xeb3f, 
-	0xeb40, 0xeb40, 0xeb40, 0xeb40, 0xeb41, 0xeb41, 0xeb42, 0xeb42, 
-	0xeb43, 0xeb44, 0xeb45, 0xeb45, 0xeb46, 0xeb47, 0xeb48, 0xeb49, 
-	0xeb4a, 0xeb4b, 0xeb4c, 0xeb4e, 0xeb4f, 0xeb50, 0xeb51, 0xeb53, 
-	0xeb54, 0xeb55, 0xeb57, 0xeb58, 0xeb5a, 0xeb5b, 0xeb5d, 0xeb5f, 
-	0xeb80, 0xeb80, 0xeb80, 0xeb80, 0xeb81, 0xeb81, 0xeb82, 0xeb82, 
-	0xeb83, 0xeb84, 0xeb85, 0xeb85, 0xeb86, 0xeb87, 0xeb88, 0xeb89, 
-	0xeb8a, 0xeb8b, 0xeb8c, 0xeb8e, 0xeb8f, 0xeb90, 0xeb91, 0xeb93, 
-	0xeb94, 0xeb95, 0xeb97, 0xeb98, 0xeb9a, 0xeb9b, 0xeb9d, 0xeb9f, 
-	0xeba0, 0xeba0, 0xeba0, 0xeba0, 0xeba1, 0xeba1, 0xeba2, 0xeba2, 
-	0xeba3, 0xeba4, 0xeba5, 0xeba5, 0xeba6, 0xeba7, 0xeba8, 0xeba9, 
-	0xebaa, 0xebab, 0xebac, 0xebae, 0xebaf, 0xebb0, 0xebb1, 0xebb3, 
-	0xebb4, 0xebb5, 0xebb7, 0xebb8, 0xebba, 0xebbb, 0xebbd, 0xebbf, 
-	0xebc0, 0xebc0, 0xebc0, 0xebc0, 0xebc1, 0xebc1, 0xebc2, 0xebc2, 
-	0xebc3, 0xebc4, 0xebc5, 0xebc5, 0xebc6, 0xebc7, 0xebc8, 0xebc9, 
-	0xebca, 0xebcb, 0xebcc, 0xebce, 0xebcf, 0xebd0, 0xebd1, 0xebd3, 
-	0xebd4, 0xebd5, 0xebd7, 0xebd8, 0xebda, 0xebdb, 0xebdd, 0xebdf, 
-	0xebe0, 0xebe0, 0xebe0, 0xebe0, 0xebe1, 0xebe1, 0xebe2, 0xebe2, 
-	0xebe3, 0xebe4, 0xebe5, 0xebe5, 0xebe6, 0xebe7, 0xebe8, 0xebe9, 
-	0xebea, 0xebeb, 0xebec, 0xebee, 0xebef, 0xebf0, 0xebf1, 0xebf3, 
-	0xebf4, 0xebf5, 0xebf7, 0xebf8, 0xebfa, 0xebfb, 0xebfd, 0xebff, 
-	0xec00, 0xec00, 0xec00, 0xec00, 0xec01, 0xec01, 0xec02, 0xec02, 
-	0xec03, 0xec04, 0xec05, 0xec05, 0xec06, 0xec07, 0xec08, 0xec09, 
-	0xec0a, 0xec0b, 0xec0c, 0xec0e, 0xec0f, 0xec10, 0xec11, 0xec13, 
-	0xec14, 0xec15, 0xec17, 0xec18, 0xec1a, 0xec1b, 0xec1d, 0xec1f, 
-	0xec40, 0xec40, 0xec40, 0xec40, 0xec41, 0xec41, 0xec42, 0xec42, 
-	0xec43, 0xec44, 0xec45, 0xec45, 0xec46, 0xec47, 0xec48, 0xec49, 
-	0xec4a, 0xec4b, 0xec4c, 0xec4e, 0xec4f, 0xec50, 0xec51, 0xec53, 
-	0xec54, 0xec55, 0xec57, 0xec58, 0xec5a, 0xec5b, 0xec5d, 0xec5f, 
-	0xec60, 0xec60, 0xec60, 0xec60, 0xec61, 0xec61, 0xec62, 0xec62, 
-	0xec63, 0xec64, 0xec65, 0xec65, 0xec66, 0xec67, 0xec68, 0xec69, 
-	0xec6a, 0xec6b, 0xec6c, 0xec6e, 0xec6f, 0xec70, 0xec71, 0xec73, 
-	0xec74, 0xec75, 0xec77, 0xec78, 0xec7a, 0xec7b, 0xec7d, 0xec7f, 
-	0xec80, 0xec80, 0xec80, 0xec80, 0xec81, 0xec81, 0xec82, 0xec82, 
-	0xec83, 0xec84, 0xec85, 0xec85, 0xec86, 0xec87, 0xec88, 0xec89, 
-	0xec8a, 0xec8b, 0xec8c, 0xec8e, 0xec8f, 0xec90, 0xec91, 0xec93, 
-	0xec94, 0xec95, 0xec97, 0xec98, 0xec9a, 0xec9b, 0xec9d, 0xec9f, 
-	0xecc0, 0xecc0, 0xecc0, 0xecc0, 0xecc1, 0xecc1, 0xecc2, 0xecc2, 
-	0xecc3, 0xecc4, 0xecc5, 0xecc5, 0xecc6, 0xecc7, 0xecc8, 0xecc9, 
-	0xecca, 0xeccb, 0xeccc, 0xecce, 0xeccf, 0xecd0, 0xecd1, 0xecd3, 
-	0xecd4, 0xecd5, 0xecd7, 0xecd8, 0xecda, 0xecdb, 0xecdd, 0xecdf, 
-	0xece0, 0xece0, 0xece0, 0xece0, 0xece1, 0xece1, 0xece2, 0xece2, 
-	0xece3, 0xece4, 0xece5, 0xece5, 0xece6, 0xece7, 0xece8, 0xece9, 
-	0xecea, 0xeceb, 0xecec, 0xecee, 0xecef, 0xecf0, 0xecf1, 0xecf3, 
-	0xecf4, 0xecf5, 0xecf7, 0xecf8, 0xecfa, 0xecfb, 0xecfd, 0xecff, 
-	0xed00, 0xed00, 0xed00, 0xed00, 0xed01, 0xed01, 0xed02, 0xed02, 
-	0xed03, 0xed04, 0xed05, 0xed05, 0xed06, 0xed07, 0xed08, 0xed09, 
-	0xed0a, 0xed0b, 0xed0c, 0xed0e, 0xed0f, 0xed10, 0xed11, 0xed13, 
-	0xed14, 0xed15, 0xed17, 0xed18, 0xed1a, 0xed1b, 0xed1d, 0xed1f, 
-	0xed40, 0xed40, 0xed40, 0xed40, 0xed41, 0xed41, 0xed42, 0xed42, 
-	0xed43, 0xed44, 0xed45, 0xed45, 0xed46, 0xed47, 0xed48, 0xed49, 
-	0xed4a, 0xed4b, 0xed4c, 0xed4e, 0xed4f, 0xed50, 0xed51, 0xed53, 
-	0xed54, 0xed55, 0xed57, 0xed58, 0xed5a, 0xed5b, 0xed5d, 0xed5f, 
-	0xed60, 0xed60, 0xed60, 0xed60, 0xed61, 0xed61, 0xed62, 0xed62, 
-	0xed63, 0xed64, 0xed65, 0xed65, 0xed66, 0xed67, 0xed68, 0xed69, 
-	0xed6a, 0xed6b, 0xed6c, 0xed6e, 0xed6f, 0xed70, 0xed71, 0xed73, 
-	0xed74, 0xed75, 0xed77, 0xed78, 0xed7a, 0xed7b, 0xed7d, 0xed7f, 
-	0xed80, 0xed80, 0xed80, 0xed80, 0xed81, 0xed81, 0xed82, 0xed82, 
-	0xed83, 0xed84, 0xed85, 0xed85, 0xed86, 0xed87, 0xed88, 0xed89, 
-	0xed8a, 0xed8b, 0xed8c, 0xed8e, 0xed8f, 0xed90, 0xed91, 0xed93, 
-	0xed94, 0xed95, 0xed97, 0xed98, 0xed9a, 0xed9b, 0xed9d, 0xed9f, 
-	0xedc0, 0xedc0, 0xedc0, 0xedc0, 0xedc1, 0xedc1, 0xedc2, 0xedc2, 
-	0xedc3, 0xedc4, 0xedc5, 0xedc5, 0xedc6, 0xedc7, 0xedc8, 0xedc9, 
-	0xedca, 0xedcb, 0xedcc, 0xedce, 0xedcf, 0xedd0, 0xedd1, 0xedd3, 
-	0xedd4, 0xedd5, 0xedd7, 0xedd8, 0xedda, 0xeddb, 0xeddd, 0xeddf, 
-	0xede0, 0xede0, 0xede0, 0xede0, 0xede1, 0xede1, 0xede2, 0xede2, 
-	0xede3, 0xede4, 0xede5, 0xede5, 0xede6, 0xede7, 0xede8, 0xede9, 
-	0xedea, 0xedeb, 0xedec, 0xedee, 0xedef, 0xedf0, 0xedf1, 0xedf3, 
-	0xedf4, 0xedf5, 0xedf7, 0xedf8, 0xedfa, 0xedfb, 0xedfd, 0xedff, 
-	0xee20, 0xee20, 0xee20, 0xee20, 0xee21, 0xee21, 0xee22, 0xee22, 
-	0xee23, 0xee24, 0xee25, 0xee25, 0xee26, 0xee27, 0xee28, 0xee29, 
-	0xee2a, 0xee2b, 0xee2c, 0xee2e, 0xee2f, 0xee30, 0xee31, 0xee33, 
-	0xee34, 0xee35, 0xee37, 0xee38, 0xee3a, 0xee3b, 0xee3d, 0xee3f, 
-	0xee40, 0xee40, 0xee40, 0xee40, 0xee41, 0xee41, 0xee42, 0xee42, 
-	0xee43, 0xee44, 0xee45, 0xee45, 0xee46, 0xee47, 0xee48, 0xee49, 
-	0xee4a, 0xee4b, 0xee4c, 0xee4e, 0xee4f, 0xee50, 0xee51, 0xee53, 
-	0xee54, 0xee55, 0xee57, 0xee58, 0xee5a, 0xee5b, 0xee5d, 0xee5f, 
-	0xee80, 0xee80, 0xee80, 0xee80, 0xee81, 0xee81, 0xee82, 0xee82, 
-	0xee83, 0xee84, 0xee85, 0xee85, 0xee86, 0xee87, 0xee88, 0xee89, 
-	0xee8a, 0xee8b, 0xee8c, 0xee8e, 0xee8f, 0xee90, 0xee91, 0xee93, 
-	0xee94, 0xee95, 0xee97, 0xee98, 0xee9a, 0xee9b, 0xee9d, 0xee9f, 
-	0xeea0, 0xeea0, 0xeea0, 0xeea0, 0xeea1, 0xeea1, 0xeea2, 0xeea2, 
-	0xeea3, 0xeea4, 0xeea5, 0xeea5, 0xeea6, 0xeea7, 0xeea8, 0xeea9, 
-	0xeeaa, 0xeeab, 0xeeac, 0xeeae, 0xeeaf, 0xeeb0, 0xeeb1, 0xeeb3, 
-	0xeeb4, 0xeeb5, 0xeeb7, 0xeeb8, 0xeeba, 0xeebb, 0xeebd, 0xeebf, 
-	0xeee0, 0xeee0, 0xeee0, 0xeee0, 0xeee1, 0xeee1, 0xeee2, 0xeee2, 
-	0xeee3, 0xeee4, 0xeee5, 0xeee5, 0xeee6, 0xeee7, 0xeee8, 0xeee9, 
-	0xeeea, 0xeeeb, 0xeeec, 0xeeee, 0xeeef, 0xeef0, 0xeef1, 0xeef3, 
-	0xeef4, 0xeef5, 0xeef7, 0xeef8, 0xeefa, 0xeefb, 0xeefd, 0xeeff, 
-	0xef00, 0xef00, 0xef00, 0xef00, 0xef01, 0xef01, 0xef02, 0xef02, 
-	0xef03, 0xef04, 0xef05, 0xef05, 0xef06, 0xef07, 0xef08, 0xef09, 
-	0xef0a, 0xef0b, 0xef0c, 0xef0e, 0xef0f, 0xef10, 0xef11, 0xef13, 
-	0xef14, 0xef15, 0xef17, 0xef18, 0xef1a, 0xef1b, 0xef1d, 0xef1f, 
-	0xef40, 0xef40, 0xef40, 0xef40, 0xef41, 0xef41, 0xef42, 0xef42, 
-	0xef43, 0xef44, 0xef45, 0xef45, 0xef46, 0xef47, 0xef48, 0xef49, 
-	0xef4a, 0xef4b, 0xef4c, 0xef4e, 0xef4f, 0xef50, 0xef51, 0xef53, 
-	0xef54, 0xef55, 0xef57, 0xef58, 0xef5a, 0xef5b, 0xef5d, 0xef5f, 
-	0xef60, 0xef60, 0xef60, 0xef60, 0xef61, 0xef61, 0xef62, 0xef62, 
-	0xef63, 0xef64, 0xef65, 0xef65, 0xef66, 0xef67, 0xef68, 0xef69, 
-	0xef6a, 0xef6b, 0xef6c, 0xef6e, 0xef6f, 0xef70, 0xef71, 0xef73, 
-	0xef74, 0xef75, 0xef77, 0xef78, 0xef7a, 0xef7b, 0xef7d, 0xef7f, 
-	0xefa0, 0xefa0, 0xefa0, 0xefa0, 0xefa1, 0xefa1, 0xefa2, 0xefa2, 
-	0xefa3, 0xefa4, 0xefa5, 0xefa5, 0xefa6, 0xefa7, 0xefa8, 0xefa9, 
-	0xefaa, 0xefab, 0xefac, 0xefae, 0xefaf, 0xefb0, 0xefb1, 0xefb3, 
-	0xefb4, 0xefb5, 0xefb7, 0xefb8, 0xefba, 0xefbb, 0xefbd, 0xefbf, 
-	0xefe0, 0xefe0, 0xefe0, 0xefe0, 0xefe1, 0xefe1, 0xefe2, 0xefe2, 
-	0xefe3, 0xefe4, 0xefe5, 0xefe5, 0xefe6, 0xefe7, 0xefe8, 0xefe9, 
-	0xefea, 0xefeb, 0xefec, 0xefee, 0xefef, 0xeff0, 0xeff1, 0xeff3, 
-	0xeff4, 0xeff5, 0xeff7, 0xeff8, 0xeffa, 0xeffb, 0xeffd, 0xefff, 
-	0xf800, 0xf800, 0xf800, 0xf800, 0xf801, 0xf801, 0xf802, 0xf802, 
-	0xf803, 0xf804, 0xf805, 0xf805, 0xf806, 0xf807, 0xf808, 0xf809, 
-	0xf80a, 0xf80b, 0xf80c, 0xf80e, 0xf80f, 0xf810, 0xf811, 0xf813, 
-	0xf814, 0xf815, 0xf817, 0xf818, 0xf81a, 0xf81b, 0xf81d, 0xf81f, 
-	0xf800, 0xf800, 0xf800, 0xf800, 0xf801, 0xf801, 0xf802, 0xf802, 
-	0xf803, 0xf804, 0xf805, 0xf805, 0xf806, 0xf807, 0xf808, 0xf809, 
-	0xf80a, 0xf80b, 0xf80c, 0xf80e, 0xf80f, 0xf810, 0xf811, 0xf813, 
-	0xf814, 0xf815, 0xf817, 0xf818, 0xf81a, 0xf81b, 0xf81d, 0xf81f, 
-	0xf800, 0xf800, 0xf800, 0xf800, 0xf801, 0xf801, 0xf802, 0xf802, 
-	0xf803, 0xf804, 0xf805, 0xf805, 0xf806, 0xf807, 0xf808, 0xf809, 
-	0xf80a, 0xf80b, 0xf80c, 0xf80e, 0xf80f, 0xf810, 0xf811, 0xf813, 
-	0xf814, 0xf815, 0xf817, 0xf818, 0xf81a, 0xf81b, 0xf81d, 0xf81f, 
-	0xf800, 0xf800, 0xf800, 0xf800, 0xf801, 0xf801, 0xf802, 0xf802, 
-	0xf803, 0xf804, 0xf805, 0xf805, 0xf806, 0xf807, 0xf808, 0xf809, 
-	0xf80a, 0xf80b, 0xf80c, 0xf80e, 0xf80f, 0xf810, 0xf811, 0xf813, 
-	0xf814, 0xf815, 0xf817, 0xf818, 0xf81a, 0xf81b, 0xf81d, 0xf81f, 
-	0xf800, 0xf800, 0xf800, 0xf800, 0xf801, 0xf801, 0xf802, 0xf802, 
-	0xf803, 0xf804, 0xf805, 0xf805, 0xf806, 0xf807, 0xf808, 0xf809, 
-	0xf80a, 0xf80b, 0xf80c, 0xf80e, 0xf80f, 0xf810, 0xf811, 0xf813, 
-	0xf814, 0xf815, 0xf817, 0xf818, 0xf81a, 0xf81b, 0xf81d, 0xf81f, 
-	0xf820, 0xf820, 0xf820, 0xf820, 0xf821, 0xf821, 0xf822, 0xf822, 
-	0xf823, 0xf824, 0xf825, 0xf825, 0xf826, 0xf827, 0xf828, 0xf829, 
-	0xf82a, 0xf82b, 0xf82c, 0xf82e, 0xf82f, 0xf830, 0xf831, 0xf833, 
-	0xf834, 0xf835, 0xf837, 0xf838, 0xf83a, 0xf83b, 0xf83d, 0xf83f, 
-	0xf820, 0xf820, 0xf820, 0xf820, 0xf821, 0xf821, 0xf822, 0xf822, 
-	0xf823, 0xf824, 0xf825, 0xf825, 0xf826, 0xf827, 0xf828, 0xf829, 
-	0xf82a, 0xf82b, 0xf82c, 0xf82e, 0xf82f, 0xf830, 0xf831, 0xf833, 
-	0xf834, 0xf835, 0xf837, 0xf838, 0xf83a, 0xf83b, 0xf83d, 0xf83f, 
-	0xf820, 0xf820, 0xf820, 0xf820, 0xf821, 0xf821, 0xf822, 0xf822, 
-	0xf823, 0xf824, 0xf825, 0xf825, 0xf826, 0xf827, 0xf828, 0xf829, 
-	0xf82a, 0xf82b, 0xf82c, 0xf82e, 0xf82f, 0xf830, 0xf831, 0xf833, 
-	0xf834, 0xf835, 0xf837, 0xf838, 0xf83a, 0xf83b, 0xf83d, 0xf83f, 
-	0xf840, 0xf840, 0xf840, 0xf840, 0xf841, 0xf841, 0xf842, 0xf842, 
-	0xf843, 0xf844, 0xf845, 0xf845, 0xf846, 0xf847, 0xf848, 0xf849, 
-	0xf84a, 0xf84b, 0xf84c, 0xf84e, 0xf84f, 0xf850, 0xf851, 0xf853, 
-	0xf854, 0xf855, 0xf857, 0xf858, 0xf85a, 0xf85b, 0xf85d, 0xf85f, 
-	0xf840, 0xf840, 0xf840, 0xf840, 0xf841, 0xf841, 0xf842, 0xf842, 
-	0xf843, 0xf844, 0xf845, 0xf845, 0xf846, 0xf847, 0xf848, 0xf849, 
-	0xf84a, 0xf84b, 0xf84c, 0xf84e, 0xf84f, 0xf850, 0xf851, 0xf853, 
-	0xf854, 0xf855, 0xf857, 0xf858, 0xf85a, 0xf85b, 0xf85d, 0xf85f, 
-	0xf860, 0xf860, 0xf860, 0xf860, 0xf861, 0xf861, 0xf862, 0xf862, 
-	0xf863, 0xf864, 0xf865, 0xf865, 0xf866, 0xf867, 0xf868, 0xf869, 
-	0xf86a, 0xf86b, 0xf86c, 0xf86e, 0xf86f, 0xf870, 0xf871, 0xf873, 
-	0xf874, 0xf875, 0xf877, 0xf878, 0xf87a, 0xf87b, 0xf87d, 0xf87f, 
-	0xf860, 0xf860, 0xf860, 0xf860, 0xf861, 0xf861, 0xf862, 0xf862, 
-	0xf863, 0xf864, 0xf865, 0xf865, 0xf866, 0xf867, 0xf868, 0xf869, 
-	0xf86a, 0xf86b, 0xf86c, 0xf86e, 0xf86f, 0xf870, 0xf871, 0xf873, 
-	0xf874, 0xf875, 0xf877, 0xf878, 0xf87a, 0xf87b, 0xf87d, 0xf87f, 
-	0xf880, 0xf880, 0xf880, 0xf880, 0xf881, 0xf881, 0xf882, 0xf882, 
-	0xf883, 0xf884, 0xf885, 0xf885, 0xf886, 0xf887, 0xf888, 0xf889, 
-	0xf88a, 0xf88b, 0xf88c, 0xf88e, 0xf88f, 0xf890, 0xf891, 0xf893, 
-	0xf894, 0xf895, 0xf897, 0xf898, 0xf89a, 0xf89b, 0xf89d, 0xf89f, 
-	0xf8a0, 0xf8a0, 0xf8a0, 0xf8a0, 0xf8a1, 0xf8a1, 0xf8a2, 0xf8a2, 
-	0xf8a3, 0xf8a4, 0xf8a5, 0xf8a5, 0xf8a6, 0xf8a7, 0xf8a8, 0xf8a9, 
-	0xf8aa, 0xf8ab, 0xf8ac, 0xf8ae, 0xf8af, 0xf8b0, 0xf8b1, 0xf8b3, 
-	0xf8b4, 0xf8b5, 0xf8b7, 0xf8b8, 0xf8ba, 0xf8bb, 0xf8bd, 0xf8bf, 
-	0xf8a0, 0xf8a0, 0xf8a0, 0xf8a0, 0xf8a1, 0xf8a1, 0xf8a2, 0xf8a2, 
-	0xf8a3, 0xf8a4, 0xf8a5, 0xf8a5, 0xf8a6, 0xf8a7, 0xf8a8, 0xf8a9, 
-	0xf8aa, 0xf8ab, 0xf8ac, 0xf8ae, 0xf8af, 0xf8b0, 0xf8b1, 0xf8b3, 
-	0xf8b4, 0xf8b5, 0xf8b7, 0xf8b8, 0xf8ba, 0xf8bb, 0xf8bd, 0xf8bf, 
-	0xf8c0, 0xf8c0, 0xf8c0, 0xf8c0, 0xf8c1, 0xf8c1, 0xf8c2, 0xf8c2, 
-	0xf8c3, 0xf8c4, 0xf8c5, 0xf8c5, 0xf8c6, 0xf8c7, 0xf8c8, 0xf8c9, 
-	0xf8ca, 0xf8cb, 0xf8cc, 0xf8ce, 0xf8cf, 0xf8d0, 0xf8d1, 0xf8d3, 
-	0xf8d4, 0xf8d5, 0xf8d7, 0xf8d8, 0xf8da, 0xf8db, 0xf8dd, 0xf8df, 
-	0xf8e0, 0xf8e0, 0xf8e0, 0xf8e0, 0xf8e1, 0xf8e1, 0xf8e2, 0xf8e2, 
-	0xf8e3, 0xf8e4, 0xf8e5, 0xf8e5, 0xf8e6, 0xf8e7, 0xf8e8, 0xf8e9, 
-	0xf8ea, 0xf8eb, 0xf8ec, 0xf8ee, 0xf8ef, 0xf8f0, 0xf8f1, 0xf8f3, 
-	0xf8f4, 0xf8f5, 0xf8f7, 0xf8f8, 0xf8fa, 0xf8fb, 0xf8fd, 0xf8ff, 
-	0xf8e0, 0xf8e0, 0xf8e0, 0xf8e0, 0xf8e1, 0xf8e1, 0xf8e2, 0xf8e2, 
-	0xf8e3, 0xf8e4, 0xf8e5, 0xf8e5, 0xf8e6, 0xf8e7, 0xf8e8, 0xf8e9, 
-	0xf8ea, 0xf8eb, 0xf8ec, 0xf8ee, 0xf8ef, 0xf8f0, 0xf8f1, 0xf8f3, 
-	0xf8f4, 0xf8f5, 0xf8f7, 0xf8f8, 0xf8fa, 0xf8fb, 0xf8fd, 0xf8ff, 
-	0xf900, 0xf900, 0xf900, 0xf900, 0xf901, 0xf901, 0xf902, 0xf902, 
-	0xf903, 0xf904, 0xf905, 0xf905, 0xf906, 0xf907, 0xf908, 0xf909, 
-	0xf90a, 0xf90b, 0xf90c, 0xf90e, 0xf90f, 0xf910, 0xf911, 0xf913, 
-	0xf914, 0xf915, 0xf917, 0xf918, 0xf91a, 0xf91b, 0xf91d, 0xf91f, 
-	0xf920, 0xf920, 0xf920, 0xf920, 0xf921, 0xf921, 0xf922, 0xf922, 
-	0xf923, 0xf924, 0xf925, 0xf925, 0xf926, 0xf927, 0xf928, 0xf929, 
-	0xf92a, 0xf92b, 0xf92c, 0xf92e, 0xf92f, 0xf930, 0xf931, 0xf933, 
-	0xf934, 0xf935, 0xf937, 0xf938, 0xf93a, 0xf93b, 0xf93d, 0xf93f, 
-	0xf940, 0xf940, 0xf940, 0xf940, 0xf941, 0xf941, 0xf942, 0xf942, 
-	0xf943, 0xf944, 0xf945, 0xf945, 0xf946, 0xf947, 0xf948, 0xf949, 
-	0xf94a, 0xf94b, 0xf94c, 0xf94e, 0xf94f, 0xf950, 0xf951, 0xf953, 
-	0xf954, 0xf955, 0xf957, 0xf958, 0xf95a, 0xf95b, 0xf95d, 0xf95f, 
-	0xf940, 0xf940, 0xf940, 0xf940, 0xf941, 0xf941, 0xf942, 0xf942, 
-	0xf943, 0xf944, 0xf945, 0xf945, 0xf946, 0xf947, 0xf948, 0xf949, 
-	0xf94a, 0xf94b, 0xf94c, 0xf94e, 0xf94f, 0xf950, 0xf951, 0xf953, 
-	0xf954, 0xf955, 0xf957, 0xf958, 0xf95a, 0xf95b, 0xf95d, 0xf95f, 
-	0xf960, 0xf960, 0xf960, 0xf960, 0xf961, 0xf961, 0xf962, 0xf962, 
-	0xf963, 0xf964, 0xf965, 0xf965, 0xf966, 0xf967, 0xf968, 0xf969, 
-	0xf96a, 0xf96b, 0xf96c, 0xf96e, 0xf96f, 0xf970, 0xf971, 0xf973, 
-	0xf974, 0xf975, 0xf977, 0xf978, 0xf97a, 0xf97b, 0xf97d, 0xf97f, 
-	0xf980, 0xf980, 0xf980, 0xf980, 0xf981, 0xf981, 0xf982, 0xf982, 
-	0xf983, 0xf984, 0xf985, 0xf985, 0xf986, 0xf987, 0xf988, 0xf989, 
-	0xf98a, 0xf98b, 0xf98c, 0xf98e, 0xf98f, 0xf990, 0xf991, 0xf993, 
-	0xf994, 0xf995, 0xf997, 0xf998, 0xf99a, 0xf99b, 0xf99d, 0xf99f, 
-	0xf9a0, 0xf9a0, 0xf9a0, 0xf9a0, 0xf9a1, 0xf9a1, 0xf9a2, 0xf9a2, 
-	0xf9a3, 0xf9a4, 0xf9a5, 0xf9a5, 0xf9a6, 0xf9a7, 0xf9a8, 0xf9a9, 
-	0xf9aa, 0xf9ab, 0xf9ac, 0xf9ae, 0xf9af, 0xf9b0, 0xf9b1, 0xf9b3, 
-	0xf9b4, 0xf9b5, 0xf9b7, 0xf9b8, 0xf9ba, 0xf9bb, 0xf9bd, 0xf9bf, 
-	0xf9c0, 0xf9c0, 0xf9c0, 0xf9c0, 0xf9c1, 0xf9c1, 0xf9c2, 0xf9c2, 
-	0xf9c3, 0xf9c4, 0xf9c5, 0xf9c5, 0xf9c6, 0xf9c7, 0xf9c8, 0xf9c9, 
-	0xf9ca, 0xf9cb, 0xf9cc, 0xf9ce, 0xf9cf, 0xf9d0, 0xf9d1, 0xf9d3, 
-	0xf9d4, 0xf9d5, 0xf9d7, 0xf9d8, 0xf9da, 0xf9db, 0xf9dd, 0xf9df, 
-	0xf9e0, 0xf9e0, 0xf9e0, 0xf9e0, 0xf9e1, 0xf9e1, 0xf9e2, 0xf9e2, 
-	0xf9e3, 0xf9e4, 0xf9e5, 0xf9e5, 0xf9e6, 0xf9e7, 0xf9e8, 0xf9e9, 
-	0xf9ea, 0xf9eb, 0xf9ec, 0xf9ee, 0xf9ef, 0xf9f0, 0xf9f1, 0xf9f3, 
-	0xf9f4, 0xf9f5, 0xf9f7, 0xf9f8, 0xf9fa, 0xf9fb, 0xf9fd, 0xf9ff, 
-	0xfa00, 0xfa00, 0xfa00, 0xfa00, 0xfa01, 0xfa01, 0xfa02, 0xfa02, 
-	0xfa03, 0xfa04, 0xfa05, 0xfa05, 0xfa06, 0xfa07, 0xfa08, 0xfa09, 
-	0xfa0a, 0xfa0b, 0xfa0c, 0xfa0e, 0xfa0f, 0xfa10, 0xfa11, 0xfa13, 
-	0xfa14, 0xfa15, 0xfa17, 0xfa18, 0xfa1a, 0xfa1b, 0xfa1d, 0xfa1f, 
-	0xfa20, 0xfa20, 0xfa20, 0xfa20, 0xfa21, 0xfa21, 0xfa22, 0xfa22, 
-	0xfa23, 0xfa24, 0xfa25, 0xfa25, 0xfa26, 0xfa27, 0xfa28, 0xfa29, 
-	0xfa2a, 0xfa2b, 0xfa2c, 0xfa2e, 0xfa2f, 0xfa30, 0xfa31, 0xfa33, 
-	0xfa34, 0xfa35, 0xfa37, 0xfa38, 0xfa3a, 0xfa3b, 0xfa3d, 0xfa3f, 
-	0xfa40, 0xfa40, 0xfa40, 0xfa40, 0xfa41, 0xfa41, 0xfa42, 0xfa42, 
-	0xfa43, 0xfa44, 0xfa45, 0xfa45, 0xfa46, 0xfa47, 0xfa48, 0xfa49, 
-	0xfa4a, 0xfa4b, 0xfa4c, 0xfa4e, 0xfa4f, 0xfa50, 0xfa51, 0xfa53, 
-	0xfa54, 0xfa55, 0xfa57, 0xfa58, 0xfa5a, 0xfa5b, 0xfa5d, 0xfa5f, 
-	0xfa60, 0xfa60, 0xfa60, 0xfa60, 0xfa61, 0xfa61, 0xfa62, 0xfa62, 
-	0xfa63, 0xfa64, 0xfa65, 0xfa65, 0xfa66, 0xfa67, 0xfa68, 0xfa69, 
-	0xfa6a, 0xfa6b, 0xfa6c, 0xfa6e, 0xfa6f, 0xfa70, 0xfa71, 0xfa73, 
-	0xfa74, 0xfa75, 0xfa77, 0xfa78, 0xfa7a, 0xfa7b, 0xfa7d, 0xfa7f, 
-	0xfa80, 0xfa80, 0xfa80, 0xfa80, 0xfa81, 0xfa81, 0xfa82, 0xfa82, 
-	0xfa83, 0xfa84, 0xfa85, 0xfa85, 0xfa86, 0xfa87, 0xfa88, 0xfa89, 
-	0xfa8a, 0xfa8b, 0xfa8c, 0xfa8e, 0xfa8f, 0xfa90, 0xfa91, 0xfa93, 
-	0xfa94, 0xfa95, 0xfa97, 0xfa98, 0xfa9a, 0xfa9b, 0xfa9d, 0xfa9f, 
-	0xfaa0, 0xfaa0, 0xfaa0, 0xfaa0, 0xfaa1, 0xfaa1, 0xfaa2, 0xfaa2, 
-	0xfaa3, 0xfaa4, 0xfaa5, 0xfaa5, 0xfaa6, 0xfaa7, 0xfaa8, 0xfaa9, 
-	0xfaaa, 0xfaab, 0xfaac, 0xfaae, 0xfaaf, 0xfab0, 0xfab1, 0xfab3, 
-	0xfab4, 0xfab5, 0xfab7, 0xfab8, 0xfaba, 0xfabb, 0xfabd, 0xfabf, 
-	0xfac0, 0xfac0, 0xfac0, 0xfac0, 0xfac1, 0xfac1, 0xfac2, 0xfac2, 
-	0xfac3, 0xfac4, 0xfac5, 0xfac5, 0xfac6, 0xfac7, 0xfac8, 0xfac9, 
-	0xfaca, 0xfacb, 0xfacc, 0xface, 0xfacf, 0xfad0, 0xfad1, 0xfad3, 
-	0xfad4, 0xfad5, 0xfad7, 0xfad8, 0xfada, 0xfadb, 0xfadd, 0xfadf, 
-	0xfae0, 0xfae0, 0xfae0, 0xfae0, 0xfae1, 0xfae1, 0xfae2, 0xfae2, 
-	0xfae3, 0xfae4, 0xfae5, 0xfae5, 0xfae6, 0xfae7, 0xfae8, 0xfae9, 
-	0xfaea, 0xfaeb, 0xfaec, 0xfaee, 0xfaef, 0xfaf0, 0xfaf1, 0xfaf3, 
-	0xfaf4, 0xfaf5, 0xfaf7, 0xfaf8, 0xfafa, 0xfafb, 0xfafd, 0xfaff, 
-	0xfb00, 0xfb00, 0xfb00, 0xfb00, 0xfb01, 0xfb01, 0xfb02, 0xfb02, 
-	0xfb03, 0xfb04, 0xfb05, 0xfb05, 0xfb06, 0xfb07, 0xfb08, 0xfb09, 
-	0xfb0a, 0xfb0b, 0xfb0c, 0xfb0e, 0xfb0f, 0xfb10, 0xfb11, 0xfb13, 
-	0xfb14, 0xfb15, 0xfb17, 0xfb18, 0xfb1a, 0xfb1b, 0xfb1d, 0xfb1f, 
-	0xfb20, 0xfb20, 0xfb20, 0xfb20, 0xfb21, 0xfb21, 0xfb22, 0xfb22, 
-	0xfb23, 0xfb24, 0xfb25, 0xfb25, 0xfb26, 0xfb27, 0xfb28, 0xfb29, 
-	0xfb2a, 0xfb2b, 0xfb2c, 0xfb2e, 0xfb2f, 0xfb30, 0xfb31, 0xfb33, 
-	0xfb34, 0xfb35, 0xfb37, 0xfb38, 0xfb3a, 0xfb3b, 0xfb3d, 0xfb3f, 
-	0xfb40, 0xfb40, 0xfb40, 0xfb40, 0xfb41, 0xfb41, 0xfb42, 0xfb42, 
-	0xfb43, 0xfb44, 0xfb45, 0xfb45, 0xfb46, 0xfb47, 0xfb48, 0xfb49, 
-	0xfb4a, 0xfb4b, 0xfb4c, 0xfb4e, 0xfb4f, 0xfb50, 0xfb51, 0xfb53, 
-	0xfb54, 0xfb55, 0xfb57, 0xfb58, 0xfb5a, 0xfb5b, 0xfb5d, 0xfb5f, 
-	0xfb80, 0xfb80, 0xfb80, 0xfb80, 0xfb81, 0xfb81, 0xfb82, 0xfb82, 
-	0xfb83, 0xfb84, 0xfb85, 0xfb85, 0xfb86, 0xfb87, 0xfb88, 0xfb89, 
-	0xfb8a, 0xfb8b, 0xfb8c, 0xfb8e, 0xfb8f, 0xfb90, 0xfb91, 0xfb93, 
-	0xfb94, 0xfb95, 0xfb97, 0xfb98, 0xfb9a, 0xfb9b, 0xfb9d, 0xfb9f, 
-	0xfba0, 0xfba0, 0xfba0, 0xfba0, 0xfba1, 0xfba1, 0xfba2, 0xfba2, 
-	0xfba3, 0xfba4, 0xfba5, 0xfba5, 0xfba6, 0xfba7, 0xfba8, 0xfba9, 
-	0xfbaa, 0xfbab, 0xfbac, 0xfbae, 0xfbaf, 0xfbb0, 0xfbb1, 0xfbb3, 
-	0xfbb4, 0xfbb5, 0xfbb7, 0xfbb8, 0xfbba, 0xfbbb, 0xfbbd, 0xfbbf, 
-	0xfbc0, 0xfbc0, 0xfbc0, 0xfbc0, 0xfbc1, 0xfbc1, 0xfbc2, 0xfbc2, 
-	0xfbc3, 0xfbc4, 0xfbc5, 0xfbc5, 0xfbc6, 0xfbc7, 0xfbc8, 0xfbc9, 
-	0xfbca, 0xfbcb, 0xfbcc, 0xfbce, 0xfbcf, 0xfbd0, 0xfbd1, 0xfbd3, 
-	0xfbd4, 0xfbd5, 0xfbd7, 0xfbd8, 0xfbda, 0xfbdb, 0xfbdd, 0xfbdf, 
-	0xfbe0, 0xfbe0, 0xfbe0, 0xfbe0, 0xfbe1, 0xfbe1, 0xfbe2, 0xfbe2, 
-	0xfbe3, 0xfbe4, 0xfbe5, 0xfbe5, 0xfbe6, 0xfbe7, 0xfbe8, 0xfbe9, 
-	0xfbea, 0xfbeb, 0xfbec, 0xfbee, 0xfbef, 0xfbf0, 0xfbf1, 0xfbf3, 
-	0xfbf4, 0xfbf5, 0xfbf7, 0xfbf8, 0xfbfa, 0xfbfb, 0xfbfd, 0xfbff, 
-	0xfc00, 0xfc00, 0xfc00, 0xfc00, 0xfc01, 0xfc01, 0xfc02, 0xfc02, 
-	0xfc03, 0xfc04, 0xfc05, 0xfc05, 0xfc06, 0xfc07, 0xfc08, 0xfc09, 
-	0xfc0a, 0xfc0b, 0xfc0c, 0xfc0e, 0xfc0f, 0xfc10, 0xfc11, 0xfc13, 
-	0xfc14, 0xfc15, 0xfc17, 0xfc18, 0xfc1a, 0xfc1b, 0xfc1d, 0xfc1f, 
-	0xfc40, 0xfc40, 0xfc40, 0xfc40, 0xfc41, 0xfc41, 0xfc42, 0xfc42, 
-	0xfc43, 0xfc44, 0xfc45, 0xfc45, 0xfc46, 0xfc47, 0xfc48, 0xfc49, 
-	0xfc4a, 0xfc4b, 0xfc4c, 0xfc4e, 0xfc4f, 0xfc50, 0xfc51, 0xfc53, 
-	0xfc54, 0xfc55, 0xfc57, 0xfc58, 0xfc5a, 0xfc5b, 0xfc5d, 0xfc5f, 
-	0xfc60, 0xfc60, 0xfc60, 0xfc60, 0xfc61, 0xfc61, 0xfc62, 0xfc62, 
-	0xfc63, 0xfc64, 0xfc65, 0xfc65, 0xfc66, 0xfc67, 0xfc68, 0xfc69, 
-	0xfc6a, 0xfc6b, 0xfc6c, 0xfc6e, 0xfc6f, 0xfc70, 0xfc71, 0xfc73, 
-	0xfc74, 0xfc75, 0xfc77, 0xfc78, 0xfc7a, 0xfc7b, 0xfc7d, 0xfc7f, 
-	0xfc80, 0xfc80, 0xfc80, 0xfc80, 0xfc81, 0xfc81, 0xfc82, 0xfc82, 
-	0xfc83, 0xfc84, 0xfc85, 0xfc85, 0xfc86, 0xfc87, 0xfc88, 0xfc89, 
-	0xfc8a, 0xfc8b, 0xfc8c, 0xfc8e, 0xfc8f, 0xfc90, 0xfc91, 0xfc93, 
-	0xfc94, 0xfc95, 0xfc97, 0xfc98, 0xfc9a, 0xfc9b, 0xfc9d, 0xfc9f, 
-	0xfcc0, 0xfcc0, 0xfcc0, 0xfcc0, 0xfcc1, 0xfcc1, 0xfcc2, 0xfcc2, 
-	0xfcc3, 0xfcc4, 0xfcc5, 0xfcc5, 0xfcc6, 0xfcc7, 0xfcc8, 0xfcc9, 
-	0xfcca, 0xfccb, 0xfccc, 0xfcce, 0xfccf, 0xfcd0, 0xfcd1, 0xfcd3, 
-	0xfcd4, 0xfcd5, 0xfcd7, 0xfcd8, 0xfcda, 0xfcdb, 0xfcdd, 0xfcdf, 
-	0xfce0, 0xfce0, 0xfce0, 0xfce0, 0xfce1, 0xfce1, 0xfce2, 0xfce2, 
-	0xfce3, 0xfce4, 0xfce5, 0xfce5, 0xfce6, 0xfce7, 0xfce8, 0xfce9, 
-	0xfcea, 0xfceb, 0xfcec, 0xfcee, 0xfcef, 0xfcf0, 0xfcf1, 0xfcf3, 
-	0xfcf4, 0xfcf5, 0xfcf7, 0xfcf8, 0xfcfa, 0xfcfb, 0xfcfd, 0xfcff, 
-	0xfd00, 0xfd00, 0xfd00, 0xfd00, 0xfd01, 0xfd01, 0xfd02, 0xfd02, 
-	0xfd03, 0xfd04, 0xfd05, 0xfd05, 0xfd06, 0xfd07, 0xfd08, 0xfd09, 
-	0xfd0a, 0xfd0b, 0xfd0c, 0xfd0e, 0xfd0f, 0xfd10, 0xfd11, 0xfd13, 
-	0xfd14, 0xfd15, 0xfd17, 0xfd18, 0xfd1a, 0xfd1b, 0xfd1d, 0xfd1f, 
-	0xfd40, 0xfd40, 0xfd40, 0xfd40, 0xfd41, 0xfd41, 0xfd42, 0xfd42, 
-	0xfd43, 0xfd44, 0xfd45, 0xfd45, 0xfd46, 0xfd47, 0xfd48, 0xfd49, 
-	0xfd4a, 0xfd4b, 0xfd4c, 0xfd4e, 0xfd4f, 0xfd50, 0xfd51, 0xfd53, 
-	0xfd54, 0xfd55, 0xfd57, 0xfd58, 0xfd5a, 0xfd5b, 0xfd5d, 0xfd5f, 
-	0xfd60, 0xfd60, 0xfd60, 0xfd60, 0xfd61, 0xfd61, 0xfd62, 0xfd62, 
-	0xfd63, 0xfd64, 0xfd65, 0xfd65, 0xfd66, 0xfd67, 0xfd68, 0xfd69, 
-	0xfd6a, 0xfd6b, 0xfd6c, 0xfd6e, 0xfd6f, 0xfd70, 0xfd71, 0xfd73, 
-	0xfd74, 0xfd75, 0xfd77, 0xfd78, 0xfd7a, 0xfd7b, 0xfd7d, 0xfd7f, 
-	0xfd80, 0xfd80, 0xfd80, 0xfd80, 0xfd81, 0xfd81, 0xfd82, 0xfd82, 
-	0xfd83, 0xfd84, 0xfd85, 0xfd85, 0xfd86, 0xfd87, 0xfd88, 0xfd89, 
-	0xfd8a, 0xfd8b, 0xfd8c, 0xfd8e, 0xfd8f, 0xfd90, 0xfd91, 0xfd93, 
-	0xfd94, 0xfd95, 0xfd97, 0xfd98, 0xfd9a, 0xfd9b, 0xfd9d, 0xfd9f, 
-	0xfdc0, 0xfdc0, 0xfdc0, 0xfdc0, 0xfdc1, 0xfdc1, 0xfdc2, 0xfdc2, 
-	0xfdc3, 0xfdc4, 0xfdc5, 0xfdc5, 0xfdc6, 0xfdc7, 0xfdc8, 0xfdc9, 
-	0xfdca, 0xfdcb, 0xfdcc, 0xfdce, 0xfdcf, 0xfdd0, 0xfdd1, 0xfdd3, 
-	0xfdd4, 0xfdd5, 0xfdd7, 0xfdd8, 0xfdda, 0xfddb, 0xfddd, 0xfddf, 
-	0xfde0, 0xfde0, 0xfde0, 0xfde0, 0xfde1, 0xfde1, 0xfde2, 0xfde2, 
-	0xfde3, 0xfde4, 0xfde5, 0xfde5, 0xfde6, 0xfde7, 0xfde8, 0xfde9, 
-	0xfdea, 0xfdeb, 0xfdec, 0xfdee, 0xfdef, 0xfdf0, 0xfdf1, 0xfdf3, 
-	0xfdf4, 0xfdf5, 0xfdf7, 0xfdf8, 0xfdfa, 0xfdfb, 0xfdfd, 0xfdff, 
-	0xfe20, 0xfe20, 0xfe20, 0xfe20, 0xfe21, 0xfe21, 0xfe22, 0xfe22, 
-	0xfe23, 0xfe24, 0xfe25, 0xfe25, 0xfe26, 0xfe27, 0xfe28, 0xfe29, 
-	0xfe2a, 0xfe2b, 0xfe2c, 0xfe2e, 0xfe2f, 0xfe30, 0xfe31, 0xfe33, 
-	0xfe34, 0xfe35, 0xfe37, 0xfe38, 0xfe3a, 0xfe3b, 0xfe3d, 0xfe3f, 
-	0xfe40, 0xfe40, 0xfe40, 0xfe40, 0xfe41, 0xfe41, 0xfe42, 0xfe42, 
-	0xfe43, 0xfe44, 0xfe45, 0xfe45, 0xfe46, 0xfe47, 0xfe48, 0xfe49, 
-	0xfe4a, 0xfe4b, 0xfe4c, 0xfe4e, 0xfe4f, 0xfe50, 0xfe51, 0xfe53, 
-	0xfe54, 0xfe55, 0xfe57, 0xfe58, 0xfe5a, 0xfe5b, 0xfe5d, 0xfe5f, 
-	0xfe80, 0xfe80, 0xfe80, 0xfe80, 0xfe81, 0xfe81, 0xfe82, 0xfe82, 
-	0xfe83, 0xfe84, 0xfe85, 0xfe85, 0xfe86, 0xfe87, 0xfe88, 0xfe89, 
-	0xfe8a, 0xfe8b, 0xfe8c, 0xfe8e, 0xfe8f, 0xfe90, 0xfe91, 0xfe93, 
-	0xfe94, 0xfe95, 0xfe97, 0xfe98, 0xfe9a, 0xfe9b, 0xfe9d, 0xfe9f, 
-	0xfea0, 0xfea0, 0xfea0, 0xfea0, 0xfea1, 0xfea1, 0xfea2, 0xfea2, 
-	0xfea3, 0xfea4, 0xfea5, 0xfea5, 0xfea6, 0xfea7, 0xfea8, 0xfea9, 
-	0xfeaa, 0xfeab, 0xfeac, 0xfeae, 0xfeaf, 0xfeb0, 0xfeb1, 0xfeb3, 
-	0xfeb4, 0xfeb5, 0xfeb7, 0xfeb8, 0xfeba, 0xfebb, 0xfebd, 0xfebf, 
-	0xfee0, 0xfee0, 0xfee0, 0xfee0, 0xfee1, 0xfee1, 0xfee2, 0xfee2, 
-	0xfee3, 0xfee4, 0xfee5, 0xfee5, 0xfee6, 0xfee7, 0xfee8, 0xfee9, 
-	0xfeea, 0xfeeb, 0xfeec, 0xfeee, 0xfeef, 0xfef0, 0xfef1, 0xfef3, 
-	0xfef4, 0xfef5, 0xfef7, 0xfef8, 0xfefa, 0xfefb, 0xfefd, 0xfeff, 
-	0xff00, 0xff00, 0xff00, 0xff00, 0xff01, 0xff01, 0xff02, 0xff02, 
-	0xff03, 0xff04, 0xff05, 0xff05, 0xff06, 0xff07, 0xff08, 0xff09, 
-	0xff0a, 0xff0b, 0xff0c, 0xff0e, 0xff0f, 0xff10, 0xff11, 0xff13, 
-	0xff14, 0xff15, 0xff17, 0xff18, 0xff1a, 0xff1b, 0xff1d, 0xff1f, 
-	0xff40, 0xff40, 0xff40, 0xff40, 0xff41, 0xff41, 0xff42, 0xff42, 
-	0xff43, 0xff44, 0xff45, 0xff45, 0xff46, 0xff47, 0xff48, 0xff49, 
-	0xff4a, 0xff4b, 0xff4c, 0xff4e, 0xff4f, 0xff50, 0xff51, 0xff53, 
-	0xff54, 0xff55, 0xff57, 0xff58, 0xff5a, 0xff5b, 0xff5d, 0xff5f, 
-	0xff60, 0xff60, 0xff60, 0xff60, 0xff61, 0xff61, 0xff62, 0xff62, 
-	0xff63, 0xff64, 0xff65, 0xff65, 0xff66, 0xff67, 0xff68, 0xff69, 
-	0xff6a, 0xff6b, 0xff6c, 0xff6e, 0xff6f, 0xff70, 0xff71, 0xff73, 
-	0xff74, 0xff75, 0xff77, 0xff78, 0xff7a, 0xff7b, 0xff7d, 0xff7f, 
-	0xffa0, 0xffa0, 0xffa0, 0xffa0, 0xffa1, 0xffa1, 0xffa2, 0xffa2, 
-	0xffa3, 0xffa4, 0xffa5, 0xffa5, 0xffa6, 0xffa7, 0xffa8, 0xffa9, 
-	0xffaa, 0xffab, 0xffac, 0xffae, 0xffaf, 0xffb0, 0xffb1, 0xffb3, 
-	0xffb4, 0xffb5, 0xffb7, 0xffb8, 0xffba, 0xffbb, 0xffbd, 0xffbf, 
-	0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe1, 0xffe1, 0xffe2, 0xffe2, 
-	0xffe3, 0xffe4, 0xffe5, 0xffe5, 0xffe6, 0xffe7, 0xffe8, 0xffe9, 
-	0xffea, 0xffeb, 0xffec, 0xffee, 0xffef, 0xfff0, 0xfff1, 0xfff3, 
-	0xfff4, 0xfff5, 0xfff7, 0xfff8, 0xfffa, 0xfffb, 0xfffd, 0xffff, 
-};
--- a/sys/src/9/bitsy/init9.s
+++ /dev/null
@@ -1,12 +1,0 @@
-TEXT	_main(SB),$8
-	MOVW	$setR12(SB), R12	/* load the SB */
-	MOVW	$boot(SB), R0
-
-	ADD	$12, R13, R1	/* get a pointer to 0(FP) */
-
-	MOVW	R0, 4(R13)
-	MOVW	R1, 8(R13)
-
-	BL	startboot(SB)
-
-
--- a/sys/src/9/bitsy/io.h
+++ /dev/null
@@ -1,337 +1,0 @@
-/*
- *  Definitions for IO devices.  Used only in C.
- */
-
-enum
-{
-	/* hardware counter frequency */
-	ClockFreq=	3686400,
-};
-
-/*
- *  IRQ's defined by SA1100
- */
-enum
-{
-	IRQgpio0=	0,
-	IRQgpio1=	1,
-	IRQgpio2=	2,
-	IRQgpio3=	3,
-	IRQgpio4=	4,
-	IRQgpio5=	5,
-	IRQgpio6=	6,
-	IRQgpio7=	7,
-	IRQgpio8=	8,
-	IRQgpio9=	9,
-	IRQgpio10=	10,
-	IRQgpiohi=	11,
-	IRQlcd=		12,
-	IRQudc=		13,
-	IRQuart1b=	15,
-	IRQuart2=	16,
-	IRQuart3=	17,
-	IRQmcp=		18,
-	IRQssp=		19,
-	IRQdma0=	20,
-	IRQdma1=	21,
-	IRQdma2=	22,
-	IRQdma3=	23,
-	IRQdma4=	24,
-	IRQdma5=	25,
-	IRQtimer0=	26,
-	IRQtimer1=	27,
-	IRQtimer2=	28,
-	IRQtimer3=	29,
-	IRQsecond=	30,
-	IRQrtc=		31,
-};
-
-/*
- *  GPIO lines (signal names from compaq document).  _i indicates input
- *  and _o output.
- */
-enum
-{
-	GPIO_PWR_ON_i=		1<<0,	/* power button */
-	GPIO_UP_IRQ_i=		1<<1,	/* microcontroller interrupts */
-	GPIO_LDD8_o=		1<<2,	/* LCD data 8-15 */
-	GPIO_LDD9_o=		1<<3,
-	GPIO_LDD10_o=		1<<4,
-	GPIO_LDD11_o=		1<<5,
-	GPIO_LDD12_o=		1<<6,
-	GPIO_LDD13_o=		1<<7,
-	GPIO_LDD14_o=		1<<8,
-	GPIO_LDD15_o=		1<<9,
-	GPIO_CARD_IND1_i=	1<<10,	/* card inserted in PCMCIA socket 1 */
-	GPIO_CARD_IRQ1_i=	1<<11,	/* PCMCIA socket 1 interrupt */
-	GPIO_CLK_SET0_o=	1<<12,	/* clock selects for audio codec */
-	GPIO_CLK_SET1_o=	1<<13,
-	GPIO_L3_SDA_io=		1<<14,	/* UDA1341 interface */
-	GPIO_L3_MODE_o=		1<<15,
-	GPIO_L3_SCLK_o=		1<<16,
-	GPIO_CARD_IND0_i=	1<<17,	/* card inserted in PCMCIA socket 0 */
-	GPIO_KEY_ACT_i=		1<<18,	/* hot key from cradle */
-	GPIO_SYS_CLK_i=		1<<19,	/* clock from codec */
-	GPIO_BAT_FAULT_i=	1<<20,	/* battery fault */
-	GPIO_CARD_IRQ0_i=	1<<21,	/* PCMCIA socket 0 interrupt */
-	GPIO_LOCK_i=		1<<22,	/* expansion pack lock/unlock */
-	GPIO_COM_DCD_i=		1<<23,	/* DCD from UART3 */
-	GPIO_OPT_IRQ_i=		1<<24,	/* expansion pack IRQ */
-	GPIO_COM_CTS_i=		1<<25,	/* CTS from UART3 */
-	GPIO_COM_RTS_o=		1<<26,	/* RTS to UART3 */
-	GPIO_OPT_IND_i=		1<<27,	/* expansion pack inserted */
-
-/* Peripheral Unit GPIO pin assignments: alternate functions */
-	GPIO_SSP_TXD_o=		1<<10,	/* SSP Transmit Data */
-	GPIO_SSP_RXD_i=		1<<11,	/* SSP Receive Data */
-	GPIO_SSP_SCLK_o=	1<<12,	/* SSP Sample CLocK */
-	GPIO_SSP_SFRM_o=	1<<13,	/* SSP Sample FRaMe */
-	/* ser. port 1: */
-	GPIO_UART_TXD_o=	1<<14,	/* UART Transmit Data */
-	GPIO_UART_RXD_i=	1<<15,	/* UART Receive Data */
-	GPIO_SDLC_SCLK_io=	1<<16,	/* SDLC Sample CLocK (I/O) */
-	GPIO_SDLC_AAF_o=	1<<17,	/* SDLC Abort After Frame */
-	GPIO_UART_SCLK1_i=	1<<18,	/* UART Sample CLocK 1 */
-	/* ser. port 4: */
-	GPIO_SSP_CLK_i=		1<<19,	/* SSP external CLocK */
-	/* ser. port 3: */
-	GPIO_UART_SCLK3_i=	1<<20,	/* UART Sample CLocK 3 */
-	/* ser. port 4: */
-	GPIO_MCP_CLK_i=		1<<21,	/* MCP CLocK */
-	/* test controller: */
-	GPIO_TIC_ACK_o=		1<<21,	/* TIC ACKnowledge */
-	GPIO_MBGNT_o=		1<<21,	/* Memory Bus GraNT */
-	GPIO_TREQA_i=		1<<22,	/* TIC REQuest A */
-	GPIO_MBREQ_i=		1<<22,	/* Memory Bus REQuest */
-	GPIO_TREQB_i=		1<<23,	/* TIC REQuest B */
-	GPIO_1Hz_o=			1<<25,	/* 1 Hz clock */
-	GPIO_RCLK_o=		1<<26,	/* internal (R) CLocK (O, fcpu/2) */
-	GPIO_32_768kHz_o=	1<<27,	/* 32.768 kHz clock (O, RTC) */
-};
-
-/*
- *  types of interrupts
- */
-enum
-{
-	GPIOrising,
-	GPIOfalling,
-	GPIOboth,
-	IRQ,
-};
-
-/* hardware registers */
-typedef struct Uartregs Uartregs;
-struct Uartregs
-{
-	ulong	ctl[4];
-	ulong	dummya;
-	ulong	data;
-	ulong	dummyb;
-	ulong	status[2];
-};
-extern Uartregs *uart3regs;
-extern Uartregs *uart1regs;
-
-/* general purpose I/O lines control registers */
-typedef struct GPIOregs GPIOregs;
-struct GPIOregs
-{
-	ulong	level;		/* 1 == high */
-	ulong	direction;	/* 1 == output */
-	ulong	set;		/* a 1 sets the bit, 0 leaves it alone */
-	ulong	clear;		/* a 1 clears the bit, 0 leaves it alone */
-	ulong	rising;		/* rising edge detect enable */
-	ulong	falling;	/* falling edge detect enable */
-	ulong	edgestatus;	/* writing a 1 bit clears */
-	ulong	altfunc;	/* turn on alternate function for any set bits */
-};
-
-extern GPIOregs *gpioregs;
-
-/* extra general purpose I/O bits, output only */
-enum
-{
-	EGPIO_prog_flash=	1<<0,
-	EGPIO_pcmcia_reset=	1<<1,
-	EGPIO_exppack_reset=	1<<2,
-	EGPIO_codec_reset=	1<<3,
-	EGPIO_exp_nvram_power=	1<<4,
-	EGPIO_exp_full_power=	1<<5,
-	EGPIO_lcd_3v=		1<<6,
-	EGPIO_rs232_power=	1<<7,
-	EGPIO_lcd_ic_power=	1<<8,
-	EGPIO_ir_power=		1<<9,
-	EGPIO_audio_power=	1<<10,
-	EGPIO_audio_ic_power=	1<<11,
-	EGPIO_audio_mute=	1<<12,
-	EGPIO_fir=		1<<13,	/* not set is sir */
-	EGPIO_lcd_5v=		1<<14,
-	EGPIO_lcd_9v=		1<<15,
-};
-extern ulong *egpioreg;
-
-/* Peripheral pin controller registers */
-typedef struct PPCregs PPCregs;
-struct PPCregs {
-	ulong	direction;
-	ulong	state;
-	ulong	assignment;
-	ulong	sleepdir;
-	ulong	flags;
-};
-extern PPCregs *ppcregs;
-
-/* Synchronous Serial Port controller registers */
-typedef struct SSPregs SSPregs;
-struct SSPregs {
-	ulong	control0;
-	ulong	control1;
-	ulong	dummy0;
-	ulong	data;
-	ulong	dummy1;
-	ulong	status;
-};
-extern SSPregs *sspregs;
-
-/* Multimedia Communications Port controller registers */
-typedef struct MCPregs MCPregs;
-struct MCPregs {
-	ulong	control0;
-	ulong	reserved0;
-	ulong	data0;
-	ulong	data1;
-	ulong	data2;
-	ulong	reserved1;
-	ulong	status;
-	ulong	reserved[11];
-	ulong	control1;
-};
-extern MCPregs *mcpregs;
-
-/*
- *  memory configuration
- */
-enum
-{
-	/* bit shifts for pcmcia access time counters */
-	MECR_io0=	0,
-	MECR_attr0=	5,
-	MECR_mem0=	10,
-	MECR_fast0=	11,
-	MECR_io1=	MECR_io0+16,
-	MECR_attr1=	MECR_attr0+16,
-	MECR_mem1=	MECR_mem0+16,
-	MECR_fast1=	MECR_fast0+16,
-
-	REFR_kapd=	29,
-	REFR_eapd=	28,
-	REFR_k1db2=	22,
-	REFR_slfrsh=	31,
-};
-
-typedef struct MemConfRegs MemConfRegs;
-struct MemConfRegs
-{
-	ulong	mdcnfg;		/* 0x00	dram */
-	ulong	mdcas00;		/* 0x04	dram banks 0/1 */
-	ulong	mdcas01;		/* 0x08 */
-	ulong	mdcas02;		/* 0x0c */
-	ulong	msc0;		/* 0x10	static */
-	ulong	msc1;		/* 0x14 */
-	ulong	mecr;		/* 0x18	pcmcia */
-	ulong	mdrefr;		/* 0x1c	dram refresh */
-	ulong	mdcas20;		/* 0x20	dram banks 2/3 */
-	ulong	mdcas21;		/* 0x24 */
-	ulong	mdcas22;		/* 0x28 */
-	ulong	msc2;		/* 0x2c	static */
-	ulong	smcnfg;		/* 0x30	SMROM config */
-};
-extern MemConfRegs *memconfregs;
-
-/*
- *  power management
- */
-
-/* Power management ops */
-
-typedef struct PowerRegs PowerRegs;
-struct PowerRegs
-{
-	ulong	pmcr;	/* 0x0 Power manager control register */
-	ulong	pssr;	/* 0x4 Power manager sleep status register */
-	ulong	pspr;	/* 0x8 Power manager scratch pad register */
-	ulong	pwer;	/* 0xc Power manager wakeup enable register */
-	ulong	pcfr;	/* 0x10 Power manager general configuration register */
-	ulong	ppcr;	/* 0x14 Power manager PPL configuration register */
-	ulong	pgsr;	/* 0x18 Power manager GPIO sleep state register */
-	ulong	posr;	/* 0x1c Power manager oscillator status register */
-};
-extern PowerRegs *powerregs;
-
-/*
- *  reset controller
- */
-
-enum 
-{
-	RCSR_hwr = 0x00000001,	/* hw reset */
-	RCSR_swr = 0x00000002,	/* sw reset */
-	RCSR_wdr = 0x00000004,	/* watch dog */
-	RCSR_smr = 0x00000008,	/* sleep mode reset */
-};
-
-typedef struct ResetRegs ResetRegs;
-struct ResetRegs
-{
-	ulong	rsrr;	/* reset controller software reset register */
-	ulong	rcsr;	/* reset controller status register */
-};
-extern ResetRegs *resetregs;
-
-typedef  struct OSTimerRegs OSTimerRegs;
-struct OSTimerRegs
-{
-	ulong	osmr[4];	/* match registers */
-	ulong	oscr;		/* counter register */
-	ulong	ossr;		/* status register */
-	ulong	ower;	/* watchdog enable register */
-	ulong	oier;		/* timer interrupt enable register */
-};
-extern OSTimerRegs* timerregs;
-
-typedef struct Intrregs Intrregs;
-struct Intrregs
-{
-	ulong	icip;	/* pending IRQs */
-	ulong	icmr;	/* IRQ mask */
-	ulong	iclr;	/* IRQ if bit == 0, FRIQ if 1 */
-	ulong	iccr;	/* control register */
-	ulong	icfp;	/* pending FIQs */
-	ulong	dummy1[3];
-	ulong	icpr;	/* pending interrupts */
-};
-extern Intrregs *intrregs;
-
-typedef struct Gpclkregs Gpclkregs;
-struct Gpclkregs
-{
-	ulong	r0;
-	ulong	r1;
-	ulong	dummya;
-	ulong	r2;
-	ulong	r3;
-};
-extern Gpclkregs *gpclkregs;
-
-/*
- * Dont use this on bitsy drivers.
- * This is for compat with code compiled
- * from the ../pc directory
- */
-
-typedef struct Pcidev	Pcidev;
-typedef struct ISAConf	ISAConf;
-struct Pcidev { int dummy; };
-struct ISAConf{ int port; int irq; };
-int pcmspecial(char*, ISAConf*);
--- a/sys/src/9/bitsy/l.s
+++ /dev/null
@@ -1,857 +1,0 @@
-#include "mem.h"
-
-/*
- * Entered here from Compaq's bootldr with MMU disabled.
- */
-TEXT _start(SB), $-4
-	MOVW	$setR12(SB), R12		/* load the SB */
-_main:
-	/* SVC mode, interrupts disabled */
-	MOVW	$(PsrDirq|PsrDfiq|PsrMsvc), R1
-	MOVW	R1, CPSR
-
-	/* disable the MMU */
-	MOVW	$0x130, R1
-	MCR     CpMMU, 0, R1, C(CpControl), C(0x0)
-
-	/* flush caches */
-	MCR	CpMMU, 0, R0, C(CpCacheFlush), C(0x7), 0
-	/* drain prefetch */
-	MOVW	R0,R0						
-	MOVW	R0,R0
-	MOVW	R0,R0
-	MOVW	R0,R0
-
-	/* drain write buffer */
-	MCR	CpMMU, 0, R0, C(CpCacheFlush), C(0xa), 4
-
-	MOVW	$(MACHADDR+4*BY2PG), R13		/* stack */
-	SUB	$4, R13				/* link */
-	BL	main(SB)
-	BL	exit(SB)
-	/* we shouldn't get here */
-_mainloop:
-	B	_mainloop
-	BL	_div(SB)			/* hack to get _div etc loaded */
-
-/* flush tlb's */
-TEXT mmuinvalidate(SB), $-4
-	MCR	CpMMU, 0, R0, C(CpTLBFlush), C(0x7)
-	RET
-
-/* flush tlb's */
-TEXT mmuinvalidateaddr(SB), $-4
-	MCR	CpMMU, 0, R0, C(CpTLBFlush), C(0x6), 1
-	RET
-
-/* write back and invalidate i and d caches */
-TEXT cacheflush(SB), $-4
-	/* splhi */
-	MOVW	CPSR, R3
-	ORR		$(PsrDirq), R3, R1
-	MOVW	R1, CPSR
-
-	/* write back any dirty data */
-	MOVW	$0xe0000000,R0
-	ADD		$(8*1024),R0,R1
-_cfloop:
-	MOVW.P	32(R0),R2
-	CMP.S	R0,R1
-	BGE	_cfloop
-	
-	/* drain write buffer and invalidate i cache contents */
-	MCR		CpMMU, 0, R0, C(CpCacheFlush), C(0xa), 4
-	MCR		CpMMU, 0, R0, C(CpCacheFlush), C(0x5), 0
-
-	/* drain prefetch */
-	MOVW	R0,R0						
-	MOVW	R0,R0
-	MOVW	R0,R0
-	MOVW	R0,R0
-
-	/* splx */
-	MOVW	R3, CPSR
-	RET
-
-/* write back d cache */
-TEXT cachewb(SB), $-4
-	/* write back any dirty data */
-_cachewb:
-	MOVW	$0xe0000000,R0
-	ADD		$(8*1024),R0,R1
-_cwbloop:
-	MOVW.P	32(R0),R2
-	CMP.S	R0,R1
-	BGE	_cwbloop
-
-	/* drain write buffer */
-	MCR	CpMMU, 0, R0, C(CpCacheFlush), C(0xa), 4
-	RET
-
-/* write back a single cache line */
-TEXT cachewbaddr(SB), $-4
-	BIC	$31,R0
-	MCR	CpMMU, 0, R0, C(CpCacheFlush), C(0xa), 1
-	B	_wbflush
-
-/* write back a region of cache lines */
-TEXT cachewbregion(SB), $-4
-	MOVW	4(FP),R1
-	CMP.S	$(4*1024),R1
-	BGT	_cachewb
-	ADD	R0,R1
-	BIC	$31,R0
-_cwbrloop:
-	MCR	CpMMU, 0, R0, C(CpCacheFlush), C(0xa), 1
-	ADD	$32,R0
-	CMP.S	R0,R1
-	BGT	_cwbrloop
-	B	_wbflush
-
-/* invalidate the dcache */
-TEXT dcacheinvalidate(SB), $-4
-	MCR	CpMMU, 0, R0, C(CpCacheFlush), C(0x6)
-	RET
-
-/* invalidate the icache */
-TEXT icacheinvalidate(SB), $-4
-	MCR	CpMMU, 0, R0, C(CpCacheFlush), C(0x9)
-	RET
-
-/* drain write buffer */
-TEXT wbflush(SB), $-4
-_wbflush:
-	MCR	CpMMU, 0, R0, C(CpCacheFlush), C(0xa), 4
-	RET
-
-/* return cpu id */
-TEXT getcpuid(SB), $-4
-	MRC	CpMMU, 0, R0, C(CpCPUID), C(0x0)
-	RET
-
-/* return fault status */
-TEXT getfsr(SB), $-4
-	MRC	CpMMU, 0, R0, C(CpFSR), C(0x0)
-	RET
-
-/* return mmu control register */
-TEXT getcontrol(SB), $-4
-	SUB R0, R0
-	MRC	CpMMU, 0, R0, C(CpControl), C(0x0)
-	RET
-
-/* return mmu dac register */
-TEXT getdac(SB), $-4
-	SUB R0, R0
-	MRC	CpMMU, 0, R0, C(CpDAC), C(0x0)
-	RET
-
-/* return mmu ttb register */
-TEXT getttb(SB), $-4
-	SUB R0, R0
-	MRC	CpMMU, 0, R0, C(CpTTB), C(0x0)
-	RET
-
-/* return fault address */
-TEXT getfar(SB), $-4
-	MRC	CpMMU, 0, R0, C(CpFAR), C(0x0)
-	RET
-
-/* set the translation table base */
-TEXT putttb(SB), $-4
-	MCR	CpMMU, 0, R0, C(CpTTB), C(0x0)
-	RET
-
-/*
- *  enable mmu, i and d caches
- */
-TEXT mmuenable(SB), $-4
-	MRC	CpMMU, 0, R0, C(CpControl), C(0x0)
-	ORR	$(CpCmmuena|CpCdcache|CpCicache|CpCwb|CpCsystem), R0
-	BIC	$(CpCrom), R0
-	MCR     CpMMU, 0, R0, C(CpControl), C(0x0)
-	MOVW R0, R0
-	MOVW R0, R0
-	MOVW R0, R0
-	MOVW R0, R0
-	RET
-
-TEXT mmudisable(SB), $-4
-	MRC	CpMMU, 0, R0, C(CpControl), C(0x0)
-	BIC	$(CpCmmuena|CpCdcache|CpCicache|CpCwb|CpCvivec), R0
-	MCR     CpMMU, 0, R0, C(CpControl), C(0x0)
-	RET
-
-/*
- *  use exception vectors at 0xffff0000
- */
-TEXT mappedIvecEnable(SB), $-4
-	MRC	CpMMU, 0, R0, C(CpControl), C(0x0)
-	ORR	$(CpCvivec), R0
-	MCR     CpMMU, 0, R0, C(CpControl), C(0x0)
-	RET
-TEXT mappedIvecDisable(SB), $-4
-	MRC	CpMMU, 0, R0, C(CpControl), C(0x0)
-	BIC	$(CpCvivec), R0
-	MCR     CpMMU, 0, R0, C(CpControl), C(0x0)
-	RET
-
-/* set the translation table base */
-TEXT putdac(SB), $-4
-	MCR	CpMMU, 0, R0, C(CpDAC), C(0x0)
-	RET
-
-/* set address translation pid */
-TEXT putpid(SB), $-4
-	MCR	CpMMU, 0, R0, C(CpPID), C(0x0)
-	RET
-
-/*
- *  set the stack value for the mode passed in R0
- */
-TEXT setr13(SB), $-4
-	MOVW	4(FP), R1
-
-	MOVW	CPSR, R2
-	BIC	$PsrMask, R2, R3
-	ORR	R0, R3
-	MOVW	R3, CPSR
-
-	MOVW	R13, R0
-	MOVW	R1, R13
-
-	MOVW	R2, CPSR
-	RET
-
-/*
- *  exception vectors, copied by trapinit() to somewhere useful
- */
-
-TEXT vectors(SB), $-4
-	MOVW	0x18(R15), R15			/* reset */
-	MOVW	0x18(R15), R15			/* undefined */
-	MOVW	0x18(R15), R15			/* SWI */
-	MOVW	0x18(R15), R15			/* prefetch abort */
-	MOVW	0x18(R15), R15			/* data abort */
-	MOVW	0x18(R15), R15			/* reserved */
-	MOVW	0x18(R15), R15			/* IRQ */
-	MOVW	0x18(R15), R15			/* FIQ */
-
-TEXT vtable(SB), $-4
-	WORD	$_vsvc(SB)			/* reset, in svc mode already */
-	WORD	$_vund(SB)			/* undefined, switch to svc mode */
-	WORD	$_vsvc(SB)			/* swi, in svc mode already */
-	WORD	$_vpabt(SB)			/* prefetch abort, switch to svc mode */
-	WORD	$_vdabt(SB)			/* data abort, switch to svc mode */
-	WORD	$_vsvc(SB)			/* reserved */
-	WORD	$_virq(SB)			/* IRQ, switch to svc mode */
-	WORD	$_vfiq(SB)			/* FIQ, switch to svc mode */
-
-TEXT _vrst(SB), $-4
-	BL	resettrap(SB)
-
-TEXT _vsvc(SB), $-4			/* SWI */
-	MOVW.W	R14, -4(R13)		/* ureg->pc = interupted PC */
-	MOVW	SPSR, R14		/* ureg->psr = SPSR */
-	MOVW.W	R14, -4(R13)		/* ... */
-	MOVW	$PsrMsvc, R14		/* ureg->type = PsrMsvc */
-	MOVW.W	R14, -4(R13)		/* ... */
-	MOVM.DB.W.S [R0-R14], (R13)	/* save user level registers, at end r13 points to ureg */
-	MOVW	$setR12(SB), R12	/* Make sure we've got the kernel's SB loaded */
-	MOVW	R13, R0			/* first arg is pointer to ureg */
-	SUB	$8, R13			/* space for argument+link */
-
-	BL	syscall(SB)
-
-	ADD	$(8+4*15), R13		/* make r13 point to ureg->type */
-	MOVW	8(R13), R14		/* restore link */
-	MOVW	4(R13), R0		/* restore SPSR */
-	MOVW	R0, SPSR		/* ... */
-	MOVM.DB.S (R13), [R0-R14]	/* restore registers */
-	ADD	$8, R13			/* pop past ureg->{type+psr} */
-	RFE				/* MOVM.IA.S.W (R13), [R15] */
-
-TEXT _vund(SB), $-4			/* undefined */
-	MOVM.IA	[R0-R4], (R13)		/* free some working space */
-	MOVW	$PsrMund, R0
-	B	_vswitch
-
-TEXT _vpabt(SB), $-4			/* prefetch abort */
-	MOVM.IA	[R0-R4], (R13)		/* free some working space */
-	MOVW	$PsrMabt, R0		/* r0 = type */
-	B	_vswitch
-
-TEXT _vdabt(SB), $-4			/* prefetch abort */
-	MOVM.IA	[R0-R4], (R13)		/* free some working space */
-	MOVW	$(PsrMabt+1), R0		/* r0 = type */
-	B	_vswitch
-
-TEXT _virq(SB), $-4			/* IRQ */
-	MOVM.IA	[R0-R4], (R13)		/* free some working space */
-	MOVW	$PsrMirq, R0		/* r0 = type */
-	B	_vswitch
-
-	/*
-	 *  come here with type in R0 and R13 pointing above saved [r0-r4]
-	 *  and type in r0.  we'll switch to SVC mode and then call trap.
-	 */
-_vswitch:
-	MOVW	SPSR, R1		/* save SPSR for ureg */
-	MOVW	R14, R2			/* save interrupted pc for ureg */
-	MOVW	R13, R3			/* save pointer to where the original [R0-R3] are */
-
-	/* switch to svc mode */
-	MOVW	CPSR, R14
-	BIC	$PsrMask, R14
-	ORR	$(PsrDirq|PsrDfiq|PsrMsvc), R14
-	MOVW	R14, CPSR
-
-	/* interupted code kernel or user? */
-	AND.S	$0xf, R1, R4
-	BEQ	_userexcep
-
-	/* here for trap from SVC mode */
-	MOVM.DB.W [R0-R2], (R13)	/* set ureg->{type, psr, pc}; r13 points to ureg->type  */
-	MOVM.IA	  (R3), [R0-R4]		/* restore [R0-R4] from previous mode's stack */
-	MOVM.DB.W [R0-R14], (R13)	/* save kernel level registers, at end r13 points to ureg */
-	MOVW	$setR12(SB), R12	/* Make sure we've got the kernel's SB loaded */
-	MOVW	R13, R0			/* first arg is pointer to ureg */
-	SUB	$8, R13			/* space for argument+link (for debugger) */
-	MOVW	$0xdeaddead,R11		/* marker */
-
-	BL	trap(SB)
-
-	ADD	$(8+4*15), R13		/* make r13 point to ureg->type */
-	MOVW	8(R13), R14		/* restore link */
-	MOVW	4(R13), R0		/* restore SPSR */
-	MOVW	R0, SPSR		/* ... */
-	MOVM.DB (R13), [R0-R14]	/* restore registers */
-	ADD	$8, R13			/* pop past ureg->{type+psr} */
-	RFE				/* MOVM.IA.S.W (R13), [R15] */
-
-	/* here for trap from USER mode */
-_userexcep:
-	MOVM.DB.W [R0-R2], (R13)	/* set ureg->{type, psr, pc}; r13 points to ureg->type  */
-	MOVM.IA	  (R3), [R0-R4]		/* restore [R0-R4] from previous mode's stack */
-	MOVM.DB.W.S [R0-R14], (R13)	/* save kernel level registers, at end r13 points to ureg */
-	MOVW	$setR12(SB), R12	/* Make sure we've got the kernel's SB loaded */
-	MOVW	R13, R0			/* first arg is pointer to ureg */
-	SUB	$8, R13			/* space for argument+link (for debugger) */
-
-	BL	trap(SB)
-
-	ADD	$(8+4*15), R13		/* make r13 point to ureg->type */
-	MOVW	8(R13), R14		/* restore link */
-	MOVW	4(R13), R0		/* restore SPSR */
-	MOVW	R0, SPSR		/* ... */
-	MOVM.DB.S (R13), [R0-R14]	/* restore registers */
-	ADD	$8, R13			/* pop past ureg->{type+psr} */
-	RFE				/* MOVM.IA.S.W (R13), [R15] */
-
-TEXT _vfiq(SB), $-4			/* FIQ */
-	RFE				/* FIQ is special, ignore it for now */
-
-/*
- *  This is the first jump from kernel to user mode.
- *  Fake a return from interrupt.
- *
- *  Enter with R0 containing the user stack pointer.
- *  UTZERO + 0x20 is always the entry point.
- *  
- */
-TEXT touser(SB),$-4
-	/* store the user stack pointer into the USR_r13 */
-	MOVM.DB.W [R0], (R13)
-	MOVM.S.IA.W (R13),[R13]
-
-	/* set up a PSR for user level */
-	MOVW	$(PsrMusr), R0
-	MOVW	R0,SPSR
-
-	/* save the PC on the stack */
-	MOVW	$(UTZERO+0x20), R0
-	MOVM.DB.W [R0],(R13)
-
-	/* return from interrupt */
-	RFE				/* MOVM.IA.S.W (R13), [R15] */
-	
-/*
- *  here to jump to a newly forked process
- */
-TEXT forkret(SB),$-4
-	ADD	$(4*15), R13		/* make r13 point to ureg->type */
-	MOVW	8(R13), R14		/* restore link */
-	MOVW	4(R13), R0		/* restore SPSR */
-	MOVW	R0, SPSR		/* ... */
-	MOVM.DB.S (R13), [R0-R14]	/* restore registers */
-	ADD	$8, R13			/* pop past ureg->{type+psr} */
-	RFE				/* MOVM.IA.S.W (R13), [R15] */
-
-TEXT splhi(SB), $-4
-	/* save caller pc in Mach */
-	MOVW	$(MACHADDR+0x04),R2
-	MOVW	R14,0(R2)
-	/* turn off interrupts */
-	MOVW	CPSR, R0
-	ORR	$(PsrDirq), R0, R1
-	MOVW	R1, CPSR
-	RET
-
-TEXT spllo(SB), $-4
-	MOVW	CPSR, R0
-	BIC	$(PsrDirq), R0, R1
-	MOVW	R1, CPSR
-	RET
-
-TEXT splx(SB), $-4
-	/* save caller pc in Mach */
-	MOVW	$(MACHADDR+0x04),R2
-	MOVW	R14,0(R2)
-	/* reset interrupt level */
-	MOVW	R0, R1
-	MOVW	CPSR, R0
-	MOVW	R1, CPSR
-	RET
-
-TEXT splxpc(SB), $-4				/* for iunlock */
-	MOVW	R0, R1
-	MOVW	CPSR, R0
-	MOVW	R1, CPSR
-	RET
-
-TEXT spldone(SB), $0
-	RET
-
-TEXT islo(SB), $-4
-	MOVW	CPSR, R0
-	AND	$(PsrDirq), R0
-	EOR	$(PsrDirq), R0
-	RET
-
-TEXT cpsrr(SB), $-4
-	MOVW	CPSR, R0
-	RET
-
-TEXT spsrr(SB), $-4
-	MOVW	SPSR, R0
-	RET
-
-TEXT getsp(SB), $-4
-	MOVW	R13, R0
-	RET
-
-TEXT getlink(SB), $-4
-	MOVW	R14, R0
-	RET
-
-TEXT getcallerpc(SB), $-4
-	MOVW	0(R13), R0
-	RET
-
-TEXT tas(SB), $-4
-TEXT _tas(SB), $-4
-	MOVW	R0, R1
-	MOVW	$0xDEADDEAD, R0
-	MOVW	R0, R3
-	SWPW	R0, (R1)
-	CMP.S	R0, R3
-	BEQ	_tasout
-	EOR	R3, R3
-	CMP.S	R0, R3
-	BEQ	_tasout
-	MOVW	$1,R15
-_tasout:
-	RET
-
-TEXT setlabel(SB), $-4
-	MOVW	R13, 0(R0)			/* sp */
-	MOVW	R14, 4(R0)			/* pc */
-	MOVW	$0, R0
-	RET
-
-TEXT gotolabel(SB), $-4
-	MOVW	0(R0), R13			/* sp */
-	MOVW	4(R0), R14			/* pc */
-	MOVW	$1, R0
-	RET
-
-/* save the state machine in power_state[] for an upcoming suspend
- */
-TEXT setpowerlabel(SB), $-4
-	MOVW	$power_state+0(SB), R0
-	/* svc */				/* power_state[]: what */
-	MOVW	R1, 0(R0)
-	MOVW	R2, 4(R0)
-	MOVW	R3, 8(R0)
-	MOVW	R4, 12(R0)
-	MOVW	R5, 16(R0)
-	MOVW	R6, 20(R0)
-	MOVW	R7, 24(R0)
-	MOVW	R8, 28(R0)
-	MOVW	R9, 32(R0)
-	MOVW	R10,36(R0)
-	MOVW	R11,40(R0)
-	MOVW	R12,44(R0)
-	MOVW	R13,48(R0)
-	MOVW	R14,52(R0)
-	MOVW	SPSR, R1
-	MOVW	R1, 56(R0)
-	MOVW	CPSR, R2
-	MOVW	R2, 60(R0)
-	/* copro */
-	MRC		CpMMU, 0, R3, C(CpDAC), C(0x0)
-	MOVW	R3, 144(R0)
-	MRC		CpMMU, 0, R3, C(CpTTB), C(0x0)
-	MOVW	R3, 148(R0)
-	MRC		CpMMU, 0, R3, C(CpControl), C(0x0)
-	MOVW	R3, 152(R0)
-	MRC		CpMMU, 0, R3, C(CpFSR), C(0x0)
-	MOVW	R3, 156(R0)
-	MRC		CpMMU, 0, R3, C(CpFAR), C(0x0)
-	MOVW	R3, 160(R0)
-	MRC		CpMMU, 0, R3, C(CpPID), C(0x0)
-	MOVW	R3, 164(R0)
-	/* usr */
-	BIC		$(PsrMask), R2, R3
-	ORR		$(0xdf), R3
-	MOVW		R3, CPSR
-	MOVW		SPSR, R11
-	MOVW		R11, 168(R0)
-	MOVW		R12, 172(R0)
-	MOVW		R13, 176(R0)
-	MOVW		R14, 180(R0)
-	/* irq */
-	BIC		$(PsrMask), R2, R3
-	ORR		$(0xd2), R3
-	MOVW	R3, CPSR
-	MOVW	SPSR, R11
-	MOVW	R11, 64(R0)
-	MOVW	R12, 68(R0)
-	MOVW	R13, 72(R0)
-	MOVW	R14, 76(R0)
-	/* und */
-	BIC		$(PsrMask), R2, R3
-	ORR		$(0xdb), R3
-	MOVW	R3, CPSR
-	MOVW	SPSR, R11
-	MOVW	R11, 80(R0)
-	MOVW	R12, 84(R0)
-	MOVW	R13, 88(R0)
-	MOVW	R14, 92(R0)
-	/* abt */
-	BIC		$(PsrMask), R2, R3
-	ORR		$(0xd7), R3
-	MOVW	R3, CPSR
-	MOVW	SPSR, R11
-	MOVW	R11, 96(R0)
-	MOVW	R12, 100(R0)
-	MOVW	R13, 104(R0)
-	MOVW	R14, 108(R0)
-	/* fiq */
-	BIC		$(PsrMask), R2, R3
-	ORR		$(0xd1), R3
-	MOVW	R3, CPSR
-	MOVW	SPSR, R7
-	MOVW	R7, 112(R0)
-	MOVW	R8, 116(R0)
-	MOVW	R9, 120(R0)
-	MOVW	R10,124(R0)
-	MOVW	R11,128(R0)
-	MOVW	R12,132(R0)
-	MOVW	R13,136(R0)
-	MOVW	R14,140(R0)
-	/* done */
-	MOVW	R2, CPSR
-	MOVW	R1, SPSR
-	MOVW	$0, R0
-	RET
-
-/* Entered after a resume from suspend state.
- * The bootldr jumps here after a processor reset.
- */
-TEXT power_resume(SB), $-4
-	MOVW	$setR12(SB), R12		/* load the SB */
-	/* SVC mode, interrupts disabled */
-	MOVW	$(PsrDirq|PsrDfiq|PsrMsvc), R1
-	MOVW	R1, CPSR
-	/* gotopowerlabel() */
-	/* svc */
-
-	MOVW	$power_state+0(SB), R0
-	MOVW	56(R0), R1		/* R1: SPSR, R2: CPSR */
-	MOVW	60(R0), R2
-	MOVW	R1, SPSR
-	MOVW	R2, CPSR
-	/* copro */
-	/* flush caches */
-	MCR		CpMMU, 0, R0, C(CpCacheFlush), C(0x7), 0
-	/* drain prefetch */
-	MOVW	R0,R0						
-	MOVW	R0,R0
-	MOVW	R0,R0
-	MOVW	R0,R0
-	/* drain write buffer */
-	MCR		CpMMU, 0, R0, C(CpCacheFlush), C(0xa), 4
-	MCR		CpMMU, 0, R0, C(CpTLBFlush), C(0x7)
-	MOVW	144(R0), R3
-	MCR		CpMMU, 0, R3, C(CpDAC), C(0x0)
-	MOVW	148(R0), R3
-	MCR		CpMMU, 0, R3, C(CpTTB), C(0x0)
-	MOVW	156(R0), R3
-	MCR		CpMMU, 0, R3, C(CpFSR), C(0x0)
-	MOVW	160(R0), R3
-	MCR		CpMMU, 0, R3, C(CpFAR), C(0x0)
-	MOVW	164(R0), R3
-	MCR		CpMMU, 0, R3, C(CpPID), C(0x0)
-	MOVW	152(R0), R3
-	MCR		CpMMU, 0, R3, C(CpControl), C(0x0)	/* Enable cache */
-	MOVW	R0,R0						
-	MOVW	R0,R0
-	MOVW	R0,R0
-	MOVW	R0,R0
-	/* flush i&d caches */
-	MCR		CpMMU, 0, R0, C(CpCacheFlush), C(0x7), 0
-	/* flush tlb */
-	MCR		CpMMU, 0, R0, C(CpTLBFlush), C(0x7), 0
-	/* drain prefetch */
-	MOVW	R0,R0						
-	MOVW	R0,R0
-	MOVW	R0,R0
-	MOVW	R0,R0
-	/* usr */
-	BIC		$(PsrMask), R2, R3
-	ORR		$(0xdf), R3
-	MOVW		168(R0), R11
-	MOVW		172(R0), R12
-	MOVW		176(R0), R13
-	MOVW		180(R0), R14
-	MOVW		R11, SPSR
-	/* irq */
-	BIC		$(PsrMask), R2, R3
-	ORR		$(0xd2), R3
-	MOVW	R3, CPSR
-	MOVW	64(R0), R11
-	MOVW	68(R0), R12
-	MOVW	72(R0), R13
-	MOVW	76(R0), R14
-	MOVW	R11, SPSR
-	/* und */
-	BIC		$(PsrMask), R2, R3
-	ORR		$(0xdb), R3
-	MOVW	R3, CPSR
-	MOVW	80(R0), R11
-	MOVW	84(R0), R12
-	MOVW	88(R0), R13
-	MOVW	92(R0), R14
-	MOVW	R11, SPSR
-	/* abt */
-	BIC		$(PsrMask), R2, R3
-	ORR		$(0xd7), R3
-	MOVW	R3, CPSR
-	MOVW	96(R0), R11
-	MOVW	100(R0), R12
-	MOVW	104(R0), R13
-	MOVW	108(R0), R14
-	MOVW	R11, SPSR
-	/* fiq */
-	BIC		$(PsrMask), R2, R3
-	ORR		$(0xd1), R3
-	MOVW	R3, CPSR
-	MOVW	112(R0), R7
-	MOVW	116(R0), R8
-	MOVW	120(R0), R9
-	MOVW	124(R0), R10
-	MOVW	128(R0), R11
-	MOVW	132(R0), R12
-	MOVW	136(R0), R13
-	MOVW	140(R0), R14
-	MOVW	R7, SPSR
-	/* svc */
-	MOVW	56(R0), R1
-	MOVW	60(R0), R2
-	MOVW	R1, SPSR
-	MOVW	R2, CPSR
-	MOVW	0(R0), R1
-	MOVW	4(R0), R2
-	MOVW	8(R0), R3
-	MOVW	12(R0),R4
-	MOVW	16(R0),R5
-	MOVW	20(R0),R6
-	MOVW	24(R0),R7
-	MOVW	28(R0),R8
-	MOVW	32(R0),R9
-	MOVW	36(R0),R10
-	MOVW	40(R0),R11
-	MOVW	44(R0),R12
-	MOVW	48(R0),R13
-	MOVW	52(R0),R14
-	RET
-loop:
-	B		loop
-
-TEXT power_down(SB), $-4
-
-	TEXT	sa1100_power_off<>+0(SB),$8
-	MOVW	resetregs+0(SB),R7
-	MOVW	gpioregs+0(SB),R6
-	MOVW	memconfregs+0(SB),R5
-	MOVW	powerregs+0(SB),R3
-
-
-	/* wakeup on power | rtc */
-	MOVW	$(PWR_rtc|PWR_gpio0),R2
-	MOVW	R2,0xc(R3)
-
-	/* clear reset status */
-	MOVW	$(RCSR_all), R2
-	MOVW	R2, 0x4(R7)
-	/* float */
-	MOVW	$(PCFR_opde|PCFR_fp|PCFR_fs), R2
-	MOVW	R2,0x10(R3)
-	/* sleep state */
-	MOVW	$0,R2
-	MOVW	R2,0x18(R3)
-	/* set resume address (pspr)*/
-	MOVW	$resumeaddr+0(SB),R1
-	MOVW	0x0(R1), R2
-	MOVW	R2,0x8(R3)
-
-	BL	cacheflush(SB)
-
-	/* disable clock switching */
-	MCR   	CpPWR, 0, R1, C(CpTest), C(0x2), 2
-
-	/* adjust mem timing */
-	MOVW	memconfregs+0(SB),R5
-	MOVW	0x1c(R5), R2
-	ORR	$(MDREFR_k1db2), R2
-	MOVW	R2, 0x1c(R5)
-
-	/* set PLL to lower speed w/ delay (ppcr = 0)*/
-	MOVW	powerregs+0(SB),R3
-	MOVW	$(120*206),R0
-l11:	SUB	$1,R0
-	BGT	l11
-	MOVW	$0, R2
-	MOVW	R2, 0x14(R3)
-	MOVW	$(120*206),R0
-l12:	SUB	$1,R0
-	BGT	l12
-
-	/* setup registers for suspend procedure:
-	 * 1. clear RT in mscx (R1, R7, R8)
-	 * 2. clear DRI in mdrefr (R4)
-	 * 3. set slfrsh in mdrefr (R6)
-	 * 4. clear DE in mdcnfg (R9)
-	 * 5. clear dram refresh (R10)
-	 * 6. force sleep (R2)
-	 */
-	/* 1 */
-	MOVW	0x10(R5), R2
-	BIC	$(MSC_rt), R2
-	MOVW	R2, R1
-	MOVW	0x14(R5), R2
-	BIC	$(MSC_rt), R2
-	MOVW	R2, R7
-	MOVW	0x2c(R5), R2
-	BIC	$(MSC_rt), R2
-	MOVW	R2, R8
-	/* 2 */
-	MOVW	0x1c(R5), R2
-	BIC	$(0xff00), R2
-	BIC	$(0x00f0), R2
-	MOVW	R2, R4
-	/* 3 */
-	ORR	$(MDREFR_slfrsh), R2, R6
-	/* 4 */
-	MOVW	0x0(R5), R9
-	BIC	$(MDCFNG_de), R9, R9
-	/* 5 */
-	MOVW	R4, R2
-	BIC	$(MDREFR_slfrsh), R2, R2
-	BIC	$(MDREFR_e1pin), R2, R2
-	MOVW	R2, R10
-	/* 6 */
-	MOVW	$1,R2
-
-TEXT power_magic(SB), $-4
-	/* power_code gets copied into the area of no-ops below,
-	 * at a cache-line boundary (8 instructions)
-	 */
-	MOVW	R0, R0
-	MOVW	R0, R0
-	MOVW	R0, R0
-	MOVW	R0, R0
-	MOVW	R0, R0
-	MOVW	R0, R0
-	MOVW	R0, R0
-	MOVW	R0, R0
-	MOVW	R0, R0
-	MOVW	R0, R0
-	MOVW	R0, R0
-	MOVW	R0, R0
-	MOVW	R0, R0
-	MOVW	R0, R0
-	MOVW	R0, R0
-	MOVW	R0, R0
-
-TEXT power_code(SB), $-4
-	/* Follow the procedure; this code gets copied to the no-op
-	 * area preceding this code
-	 */
-	/* 1 */
-	MOVW	R1, 0x10(R5)
-	MOVW	R7, 0x14(R5)
-	MOVW	R8, 0x2c(R5)
-	/* 2 */
-	MOVW	R4, 0x1c(R5)
-	/* 3 */
-	MOVW	R6, 0x1c(R5)
-	/* 4 */
-	MOVW	R9, 0x0(R5)
-	/* 5 */
-	MOVW	R10, 0x1c(R5)
-	/* 6 */
-	MOVW	R2, 0x0(R3)
-slloop:
-	B		slloop			/* loop waiting for sleep */
-
-/* The first MCR instruction of this function needs to be on a cache-line
- * boundary; to make this happen, it will be copied to the first cache-line
- * boundary 8 words from the start of doze.
- *
- * Doze puts the machine into idle mode.  Any interrupt will get it out
- * at the next instruction (the RET, to be precise).
- */
-TEXT doze(SB), $-4
-	MOVW	$UCDRAMZERO, R1
-	MOVW	R0,R0
-	MOVW	R0,R0
-	MOVW	R0,R0
-	MOVW	R0,R0
-	MOVW	R0,R0
-	MOVW	R0,R0
-	MOVW	R0,R0
-	MOVW	R0,R0
-	MOVW	R0,R0
-	MOVW	R0,R0
-	MOVW	R0,R0
-	MOVW	R0,R0
-	MOVW	R0,R0
-	MOVW	R0,R0
-	MOVW	R0,R0
-	MOVW	R0,R0
-	MOVW	R0,R0
-	MOVW	R0,R0
-	MOVW	R0,R0
-	MOVW	R0,R0
-	MOVW	R0,R0
-	MOVW	R0,R0
-	MOVW	R0,R0
-	MOVW	R0,R0
-	RET
-	
-TEXT doze_code(SB), $-4
-	MCR   	CpPWR, 0, R0, C(CpTest), C(0x2), 2
-	MOVW	(R1), R0
-	MCR  	CpPWR, 0, R0, C(CpTest), C(0x8), 2
--- a/sys/src/9/bitsy/main.c
+++ /dev/null
@@ -1,536 +1,0 @@
-#include	"u.h"
-#include	"../port/lib.h"
-#include	"mem.h"
-#include	"dat.h"
-#include	"fns.h"
-#include	"io.h"
-#include	"ureg.h"
-#include	"init.h"
-#include	"pool.h"
-
-Mach	*m;
-Proc	*up;
-Conf	conf;
-int 	noprint;
-
-void
-main(void)
-{
-	mmuinvalidate();
-
-	/* zero out bss */
-	memset(edata, 0, end-edata);
-
-	/* point to Mach structure */
-	m = (Mach*)MACHADDR;
-	memset(m, 0, sizeof(Mach));
-	m->ticks = 1;
-
-	active.machs[0] = 1;
-
-	rs232power(1);
-	quotefmtinstall();
-	iprint("\nPlan 9 bitsy kernel\n");
-	confinit();
-	xinit();
-	mmuinit();
-	machinit();
-	trapinit();
-	sa1110_uartsetup(1);
-	dmainit();
-	screeninit();
-	printinit();	/* from here on, print works, before this we need iprint */
-	clockinit();
-	procinit0();
-	initseg();
-	links();
-	chandevreset();
-	pageinit();
-	swapinit();
-	userinit();
-	powerinit();
-	schedinit();
-}
-
-/* need to do better */
-void
-reboot(void*, void*, ulong)
-{
-}
-
-
-/*
- *  exit kernel either on a panic or user request
- */
-void
-exit(int)
-{
-	void (*f)(void);
-
-	cpushutdown();
-	splhi();
-	iprint("it's a wonderful day to die\n");
-	cacheflush();
-	mmuinvalidate();
-	mmudisable();
-	f = nil;
-	(*f)();
-}
-
-static uchar *sp;
-
-/*
- *  starting place for first process
- */
-void
-init0(void)
-{
-	up->nerrlab = 0;
-
-	spllo();
-
-	/*
-	 * These are o.k. because rootinit is null.
-	 * Then early kproc's will have a root and dot.
-	 */
-	up->slash = namec("#/", Atodir, 0, 0);
-	pathclose(up->slash->path);
-	up->slash->path = newpath("/");
-	up->dot = cclone(up->slash);
-
-	chandevinit();
-
-	if(!waserror()){
-		ksetenv("terminal", "bitsy", 0);
-		ksetenv("cputype", "arm", 0);
-		if(cpuserver)
-			ksetenv("service", "cpu", 0);
-		else
-			ksetenv("service", "terminal", 0);
-		poperror();
-	}
-	kproc("alarm", alarmkproc, 0);
-	kproc("power", powerkproc, 0);
-
-	touser(sp);
-}
-
-/*
- *  pass boot arguments to /boot
- */
-static uchar *
-pusharg(char *p)
-{
-	int n;
-
-	n = strlen(p)+1;
-	sp -= n;
-	memmove(sp, p, n);
-	return sp;
-}
-static void
-bootargs(ulong base)
-{
- 	int i, ac;
-	uchar *av[32];
-	uchar *bootpath;
-	uchar **lsp;
-
-	/*
- 	 *  the sizeof(Sargs) is to make the validaddr check in
-	 *  trap.c's syscall() work even when we have less than the
-	 *  max number of args.
-	 */
-	sp = (uchar*)base + BY2PG - sizeof(Sargs);
-
-	bootpath = pusharg("/boot/boot");
-	ac = 0;
-	av[ac++] = pusharg("boot");
-
-	/* 4 byte word align stack */
-	sp = (uchar*)((ulong)sp & ~3);
-
-	/* build argc, argv on stack */
-	sp -= (ac+1)*sizeof(sp);
-	lsp = (uchar**)sp;
-	for(i = 0; i < ac; i++)
-		*lsp++ = av[i] + ((USTKTOP - BY2PG) - base);
-	*lsp = 0;
-
-	/* push argv onto stack */
-	sp -= BY2WD;
-	lsp = (uchar**)sp;
-	*lsp = sp + BY2WD + ((USTKTOP - BY2PG) - base);
-
-	/* push pointer to "/boot" */
-	sp -= BY2WD;
-	lsp = (uchar**)sp;
-	*lsp = bootpath + ((USTKTOP - BY2PG) - base);
-
-	/* leave space for where the initcode's caller's return PC would normally reside */
-	sp -= BY2WD;
-
-	/* relocate stack to user's virtual addresses */
-	sp += (USTKTOP - BY2PG) - base;
-}
-
-/*
- *  create the first process
- */
-void
-userinit(void)
-{
-	Proc *p;
-	Segment *s;
-	KMap *k;
-	Page *pg;
-
-	/* no processes yet */
-	up = nil;
-
-	p = newproc();
-	p->pgrp = newpgrp();
-	p->egrp = smalloc(sizeof(Egrp));
-	p->egrp->ref = 1;
-	p->fgrp = dupfgrp(nil);
-	p->rgrp = newrgrp();
-	p->procmode = 0640;
-
-	kstrdup(&eve, "");
-	kstrdup(&p->text, "*init*");
-	kstrdup(&p->user, eve);
-
-	/*
-	 * Kernel Stack
-	 */
-	p->sched.pc = (ulong)init0;
-	p->sched.sp = (ulong)p->kstack+KSTACK-(sizeof(Sargs)+BY2WD);
-
-	/*
-	 * User Stack
-	 */
-	s = newseg(SG_STACK, USTKTOP-USTKSIZE, USTKSIZE/BY2PG);
-	p->seg[SSEG] = s;
-	pg = newpage(1, 0, USTKTOP-BY2PG);
-	segpage(s, pg);
-	k = kmap(pg);
-	bootargs(VA(k));
-	kunmap(k);
-
-	/*
-	 * Text
-	 */
-	s = newseg(SG_TEXT, UTZERO, 1);
-	p->seg[TSEG] = s;
-	pg = newpage(1, 0, UTZERO);
-	pg->txtflush = ~0;
-	segpage(s, pg);
-	k = kmap(s->map[0]->pages[0]);
-	memmove((ulong*)VA(k), initcode, sizeof initcode);
-	kunmap(k);
-
-	ready(p);
-}
-
-/*
- *  set mach dependent process state for a new process
- */
-void
-procsetup(Proc *p)
-{
-	p->fpstate = FPinit;
-}
-
-void
-procfork(Proc*)
-{
-}
-
-/*
- *  Save the mach dependent part of the process state.
- */
-void
-procsave(Proc *p)
-{
-	USED(p);
-}
-
-/* place holder */
-/*
- *  dummy since rdb is not included 
- */
-void
-rdb(void)
-{
-}
-
-/*
- *  probe the last location in a meg of memory, make sure it's not
- *  reflected into something else we've already found.
- */
-int
-probemem(ulong addr)
-{
-	int i;
-	ulong *p;
-	ulong a;
-
-	addr += OneMeg - sizeof(ulong);
-	p = (ulong*)addr;
-	*p = addr;
-	for(i=0; i<nelem(conf.mem); i++){
-		for(a = conf.mem[i].base+OneMeg-sizeof(ulong); a < conf.mem[i].limit; a += OneMeg){
-			p = (ulong*)a;
-			*p = 0;
-		}
-	}
-	p = (ulong*)addr;
-	if(*p != addr)
-		return -1;
-	return 0;
-}
-
-/*
- *  we assume that the kernel is at the beginning of one of the
- *  contiguous chunks of memory.
- */
-void
-confinit(void)
-{
-	int i, j;
-	ulong addr;
-	ulong ktop;
-
-	/* find first two contiguous sections of available memory */
-	addr = PHYSDRAM0;
-	for(i=0; i<nelem(conf.mem); i++){
-		conf.mem[i].base = addr;
-		conf.mem[i].limit = addr;
-	}
-	for(j=0; j<nelem(conf.mem); j++){
-		conf.mem[j].base = addr;
-		conf.mem[j].limit = addr;
-		
-		for(i = 0; i < 512; i++){
-			if(probemem(addr) == 0)
-				break;
-			addr += OneMeg;
-		}
-		for(; i < 512; i++){
-			if(probemem(addr) < 0)
-				break;
-			addr += OneMeg;
-			conf.mem[j].limit = addr;
-		}
-	}
-	
-	conf.npage = 0;
-	for(i=0; i<nelem(conf.mem); i++){
-		/* take kernel out of allocatable space */
-		ktop = PGROUND((ulong)end);
-		if(ktop >= conf.mem[i].base && ktop <= conf.mem[i].limit)
-			conf.mem[i].base = ktop;
-		
-		/* zero memory */
-		memset((void*)conf.mem[i].base, 0, conf.mem[i].limit - conf.mem[i].base);
-
-		conf.mem[i].npage = (conf.mem[i].limit - conf.mem[i].base)/BY2PG;
-		conf.npage += conf.mem[i].npage;
-	}
-
-	if(conf.npage > 16*MB/BY2PG){
-		conf.upages = (conf.npage*60)/100;
-		imagmem->minarena = 4*1024*1024;
-	}else
-		conf.upages = (conf.npage*40)/100;
-	conf.ialloc = ((conf.npage-conf.upages)/2)*BY2PG;
-
-	/* only one processor */
-	conf.nmach = 1;
-
-	/* set up other configuration parameters */
-	conf.nproc = 100;
-	conf.nswap = conf.npage*3;
-	conf.nswppo = 4096;
-	conf.nimage = 200;
-
-	conf.monitor = 1;
-
-	conf.copymode = 0;		/* copy on write */
-}
-
-GPIOregs *gpioregs;
-ulong *egpioreg = (ulong*)EGPIOREGS;
-PPCregs *ppcregs;
-MemConfRegs *memconfregs;
-PowerRegs *powerregs;
-ResetRegs *resetregs;
-
-/*
- *  configure the machine
- */
-void
-machinit(void)
-{
-	/* set direction of SA1110 io pins and select alternate functions for some */
-	gpioregs = mapspecial(GPIOREGS, sizeof(GPIOregs));
-	gpioregs->direction = 
-		GPIO_LDD8_o|GPIO_LDD9_o|GPIO_LDD10_o|GPIO_LDD11_o
-		|GPIO_LDD12_o|GPIO_LDD13_o|GPIO_LDD14_o|GPIO_LDD15_o
-		|GPIO_CLK_SET0_o|GPIO_CLK_SET1_o
-		|GPIO_L3_SDA_io|GPIO_L3_MODE_o|GPIO_L3_SCLK_o
-		|GPIO_COM_RTS_o;
-	gpioregs->rising = 0;
-	gpioregs->falling = 0;
-	gpioregs->altfunc |= 
-		GPIO_LDD8_o|GPIO_LDD9_o|GPIO_LDD10_o|GPIO_LDD11_o
-		|GPIO_LDD12_o|GPIO_LDD13_o|GPIO_LDD14_o|GPIO_LDD15_o
-		|GPIO_SSP_CLK_i;
-
-	/* map in special H3650 io pins */
-	egpioreg = mapspecial(EGPIOREGS, sizeof(ulong));
-
-	/* map in peripheral pin controller (ssp will need it) */
-	ppcregs = mapspecial(PPCREGS, sizeof(PPCregs));
-
-	/* SA1110 power management */
-	powerregs = mapspecial(POWERREGS, sizeof(PowerRegs));
-
-	/* memory configuraton */
-	memconfregs = mapspecial(MEMCONFREGS, sizeof(MemConfRegs));
-
-	/* reset controller */
-	resetregs = mapspecial(RESETREGS, sizeof(ResetRegs));
-}
-
-
-/*
- *  manage egpio bits
- */
-static ulong egpiosticky;
-
-void
-egpiobits(ulong bits, int on)
-{
-	if(on)
-		egpiosticky |= bits;
-	else
-		egpiosticky &= ~bits;
-	*egpioreg = egpiosticky;
-}
-
-void
-rs232power(int on)
-{
-	egpiobits(EGPIO_rs232_power, on);
-	delay(50);
-}
-
-void
-audioamppower(int on)
-{
-	egpiobits(EGPIO_audio_power, on);
-	delay(50);
-}
-
-void
-audioicpower(int on)
-{
-	egpiobits(EGPIO_audio_ic_power, on);
-	delay(50);
-}
-
-void
-irpower(int on)
-{
-	egpiobits(EGPIO_ir_power, on);
-	delay(50);
-}
-
-void
-lcdpower(int on)
-{
-	egpiobits(EGPIO_lcd_3v|EGPIO_lcd_ic_power|EGPIO_lcd_5v|EGPIO_lcd_9v, on);
-	delay(50);
-}
-
-void
-flashprogpower(int on)
-{
-	egpiobits(EGPIO_prog_flash, on);
-}
-
-/* here on hardware reset */
-void
-resettrap(void)
-{
-}
-
-/*
- *  for drivers that used to run on x86's
- */
-void
-outb(ulong a, uchar v)
-{
-	*(uchar*)a = v;
-}
-void
-outs(ulong a, ushort v)
-{
-	*(ushort*)a = v;
-}
-void
-outss(ulong a, void *p, int n)
-{
-	ushort *sp = p;
-
-	while(n-- > 0)
-		*(ushort*)a = *sp++;
-}
-void
-outl(ulong a, ulong v)
-{
-	*(ulong*)a = v;
-}
-uchar
-inb(ulong a)
-{
-	return *(uchar*)a;
-}
-ushort
-ins(ulong a)
-{
-	return *(ushort*)a;
-}
-void
-inss(ulong a, void *p, int n)
-{
-	ushort *sp = p;
-
-	while(n-- > 0)
-		*sp++ = *(ushort*)a;
-}
-ulong
-inl(ulong a)
-{
-	return *(ulong*)a;
-}
-
-char*
-getconf(char*)
-{
-	return nil;
-}
-
-int
-cmpswap(long *addr, long old, long new)
-{
-	int r, s;
-	
-	s = splhi();
-	if(r = (*addr==old))
-		*addr = new;
-	splx(s);
-	return r;
-}
-
--- a/sys/src/9/bitsy/map
+++ /dev/null
@@ -1,10 +1,0 @@
-defn acidmap()
-{
-	local dfoffset;
-
-	dfoffset = map()[1][3];
-	map({"text", _start, etext, 0x20});
-	map({"data", etext+1, edata, dfoffset});
-	print("Set map for plan 9 kernel image\n");
-	print("btext ", _start, " etext ", etext, "\n");
-}
--- a/sys/src/9/bitsy/mem.h
+++ /dev/null
@@ -1,234 +1,0 @@
-/*
- * Memory and machine-specific definitions.  Used in C and assembler.
- */
-
-/*
- * Sizes
- */
-#define	BI2BY		8			/* bits per byte */
-#define	BI2WD		32			/* bits per word */
-#define	BY2WD		4			/* bytes per word */
-#define	BY2V		8			/* bytes per double word */
-#define	BY2PG		4096			/* bytes per page */
-#define	WD2PG		(BY2PG/BY2WD)		/* words per page */
-#define	PGSHIFT		12			/* log(BY2PG) */
-#define	ROUND(s, sz)	(((s)+(sz-1))&~(sz-1))
-#define	PGROUND(s)	ROUND(s, BY2PG)
-#define	BLOCKALIGN	8
-
-#define	MAXMACH	1			/* max # cpus system can run */
-
-/*
- * Time
- */
-#define	HZ		(20)				/* clock frequency */
-#define	MS2HZ	(1000/HZ)		/* millisec per clock tick */
-#define	TK2SEC(t)	((t)/HZ)			/* ticks to seconds */
-
-/*
- *  Virtual addresses:
- *
- *  We direct map all discovered DRAM and the area twixt 0xe0000000 and
- *  0xe8000000 used to provide zeros for cache flushing.
- *
- *  Flash is mapped to 0xb0000000 and special registers are mapped
- *  on demand to areas starting at 0xa0000000.
- *
- *  The direct mapping is convenient but not necessary.  It means
- *  that we don't have to turn on the MMU till well into the
- *  kernel.  This can be changed by providing a mapping in l.s
- *  before calling main.
- */
-#define	UZERO		0				/* base of user address space */
-#define	UTZERO		(UZERO+BY2PG)	/* first address in user text */
-#define	KZERO		0xC0000000		/* base of kernel address space */
-#define	KTZERO		0xC0008000		/* first address in kernel text */
-#define	EMEMZERO	0x90000000		/* 256 meg for add on memory */
-#define	EMEMTOP		0xA0000000		/* ... */
-#define	REGZERO		0xA0000000		/* 128 meg for mapspecial regs */
-#define	REGTOP		0xA8000000		/* ... */
-#define	FLASHZERO	0xB0000000		/* 128 meg for flash */
-#define	FLASHTOP	0xB8000000		/* ... */
-#define	DRAMZERO	0xC0000000		/* 128 meg for dram */
-#define	DRAMTOP		0xC8000000		/* ... */
-#define	UCDRAMZERO	0xC8000000		/* 128 meg for dram (uncached/unbuffered) */
-#define	UCDRAMTOP	0xD0000000		/* ... */
-#define	NULLZERO	0xE0000000		/* 128 meg for cache flush zeroes */
-#define	NULLTOP		0xE8000000		/* ... */
-#define	USTKTOP		0x2000000		/* byte just beyond user stack */
-#define	USTKSIZE		(8*1024*1024)		/* size of user stack */
-#define	MACHADDR	(KZERO+0x00001000)
-#define	EVECTORS	0xFFFF0000		/* virt base of exception vectors */
-
-#define	KSTACK		(16*1024)			/* Size of kernel stack */
-
-/*
- *  Offsets into flash
- */
-#define Flash_bootldr	(FLASHZERO+0x0)		/* boot loader */
-#define Flash_kernel	(FLASHZERO+0x10000)	/* boot kernel */
-#define Flash_tar		(FLASHZERO+0x200000)	/* fs.sac (tar file) */
-
-/*
- *  virtual MMU
- */
-#define PTEMAPMEM	(1024*1024)	
-#define	PTEPERTAB	(PTEMAPMEM/BY2PG)
-#define SEGMAPSIZE	1984
-#define SSEGMAPSIZE	16
-#define PPN(x)		((x)&~(BY2PG-1))
-
-/*
- *  SA1110 definitions
- */
-
-/*
- *  memory physical addresses
- */
-#define PHYSFLASH0	0x00000000
-#define PHYSDRAM0	0xC0000000
-#define	PHYSNULL0	0xE0000000
-
-/*
- *  peripheral control module physical addresses
- */
-#define USBREGS		0x80000000	/* serial port 0 - USB */
-#define UART1REGS		0x80010000	/* serial port 1 - UART */
-#define GPCLKREGS		0x80020060	/* serial port 1 - general purpose clock */
-#define UART2REGS		0x80030000	/* serial port 2 - low speed IR */
-#define HSSPREGS		0x80040060	/* serial port 2 - high speed IR */
-#define UART3REGS		0x80050000	/* serial port 3 - RS232 UART */
-#define MCPREGS		0x80060000	/* serial port 4 - multimedia comm port */
-#define SSPREGS		0x80070060	/* serial port 4 - synchronous serial port */
-#define OSTIMERREGS	0x90000000	/* operating system timer registers */
-#define POWERREGS		0x90020000	/* power management */
-#define RESETREGS		0x90030000	/* reset controller */
-#define GPIOREGS		0x90040000	/* 28 general purpose IO pins */
-#define INTRREGS		0x90050000	/* interrupt registers */
-#define PPCREGS		0x90060000	/* peripheral pin controller */
-#define MEMCONFREGS	0xA0000000	/* memory configuration */
-#define LCDREGS		0xB0100000	/* display */
-
-/*
- *  PCMCIA addresses
- */
-#define PHYSPCM0REGS	0x20000000
-#define PYHSPCM0ATTR	0x28000000
-#define PYHSPCM0MEM	0x2C000000
-#define PHYSPCM1REGS	0x30000000
-#define PYHSPCM1ATTR	0x38000000
-#define PYHSPCM1MEM	0x3C000000
-
-/*
- *  Program Status Registers
- */
-#define PsrMusr		0x00000010	/* mode */
-#define PsrMfiq		0x00000011
-#define PsrMirq		0x00000012
-#define PsrMsvc		0x00000013
-#define PsrMabt		0x00000017
-#define PsrMund		0x0000001B
-#define PsrMask		0x0000001F
-
-#define PsrDfiq		0x00000040	/* disable FIQ interrupts */
-#define PsrDirq		0x00000080	/* disable IRQ interrupts */
-
-#define PsrV		0x10000000	/* overflow */
-#define PsrC		0x20000000	/* carry/borrow/extend */
-#define PsrZ		0x40000000	/* zero */
-#define PsrN		0x80000000	/* negative/less than */
-
-/*
- *  Coprocessors
- */
-#define CpMMU		15
-#define CpPWR		15
-
-/*
- *  Internal MMU coprocessor registers
- */
-#define CpCPUID		0		/* R: */
-#define CpControl	1		/* RW: */
-#define CpTTB		2		/* RW: translation table base */
-#define CpDAC		3		/* RW: domain access control */
-#define CpFSR		5		/* RW: fault status */
-#define CpFAR		6		/* RW: fault address */
-#define CpCacheFlush	7		/* W: cache flushing, wb draining*/
-#define CpTLBFlush	8		/* W: TLB flushing */
-#define CpRBFlush	9		/* W: Read Buffer ops */
-#define CpPID		13		/* RW: PID for virtual mapping */
-#define CpBpt		14		/* W: Breakpoint register */
-#define CpTest		15		/* W: Test, Clock and Idle Control */
-
-/*
- *  CpControl
- */
-#define CpCmmuena	0x00000001	/* M: MMU enable */
-#define CpCalign	0x00000002	/* A: alignment fault enable */
-#define CpCdcache	0x00000004	/* C: data cache on */
-#define CpCwb		0x00000008	/* W: write buffer turned on */
-#define CpCi32		0x00000010	/* P: 32-bit program space */
-#define CpCd32		0x00000020	/* D: 32-bit data space */
-#define CpCbe		0x00000080	/* B: big-endian operation */
-#define CpCsystem	0x00000100	/* S: system permission */
-#define CpCrom		0x00000200	/* R: ROM permission */
-#define CpCicache	0x00001000	/* I: instruction cache on */
-#define CpCvivec	0x00002000	/* X: virtual interrupt vector adjust */
-
-/*
- *  fault codes
- */
-#define	FCterm		0x2	/* terminal */
-#define	FCvec		0x0	/* vector */
-#define	FCalignf	0x1	/* unaligned full word data access */
-#define	FCalignh	0x3	/* unaligned half word data access */
-#define	FCl1abort	0xc	/* level 1 external abort on translation */
-#define	FCl2abort	0xe	/* level 2 external abort on translation */
-#define	FCtransSec	0x5	/* section translation */
-#define	FCtransPage	0x7	/* page translation */
-#define	FCdomainSec	0x9	/* section domain  */
-#define	FCdomainPage	0x11	/* page domain */
-#define	FCpermSec	0x9	/* section permissions  */
-#define	FCpermPage	0x11	/* page permissions */
-#define	FCabortLFSec	0x4	/* external abort on linefetch for section */
-#define	FCabortLFPage	0x6	/* external abort on linefetch for page */
-#define	FCabortNLFSec	0x8	/* external abort on non-linefetch for section */
-#define	FCabortNLFPage	0xa	/* external abort on non-linefetch for page */
-
-/*
- *  PTE bits used by fault.h.  mmu.c translates them to real values.
- */
-#define	PTEVALID	(1<<0)
-#define	PTERONLY	0	/* this is implied by the absence of PTEWRITE */
-#define	PTEWRITE	(1<<1)
-#define	PTEUNCACHED	(1<<2)
-#define PTEKERNEL	(1<<3)	/* no user access */
-
-/*
- *  H3650 specific definitions
- */
-#define EGPIOREGS	0x49000000	/* Additional GPIO register */
-
-/* Power management */
-
-#define PWR_rtc		0x80000000	/* resume on RTC */
-#define	PWR_gpio0	0x00000001	/* resume on power button */
-
-#define RCSR_all	0x0000000f
-#define PCFR_opde	0x00000001	/* oscillator power-down enable */
-#define PCFR_suspend	0x00000001
-#define PCFR_fp		0x00000002	/* float pcmcia */
-#define PCFR_fs		0x00000004	/* float static memory */
-#define PCFR_fo		0x00000008
-
-#define MDREFR_k1db2	(1 << 22)
-#define MDREFR_slfrsh	0x80000000	/* self refresh */
-#define MDREFR_e1pin	(1 << 20)
-#define MSC_rt		0x00030003
-
-#define MDCNFG_de0	0x00000001	/* dram enable */
-#define MDCNFG_de1	0x00000002
-#define MDCNFG_de2	0x00000004
-#define MDCNFG_de3	0x00000008
-#define MDCFNG_de	0x0000000f
-#define PMCR_sf		1
--- a/sys/src/9/bitsy/mkfile
+++ /dev/null
@@ -1,139 +1,0 @@
-CONF=bitsy
-CONFLIST=bitsy
-
-objtype=arm
-</$objtype/mkfile
-p=9
-
-DEVS=`{rc ../port/mkdevlist $CONF}
-
-PORT=\
-	alarm.$O\
-	alloc.$O\
-	allocb.$O\
-	auth.$O\
-	cache.$O\
-	chan.$O\
-	dev.$O\
-	edf.$O\
-	fault.$O\
-	mul64fract.$O\
-	rebootcmd.$O\
-	page.$O\
-	parse.$O\
-	pgrp.$O\
-	portclock.$O\
-	print.$O\
-	proc.$O\
-	qio.$O\
-	qlock.$O\
-	segment.$O\
-	swap.$O\
-	sysfile.$O\
-	sysproc.$O\
-	taslock.$O\
-	tod.$O\
-	xalloc.$O\
-	random.$O\
-
-OBJ=\
-	l.$O\
-	clock.$O\
-	defont.$O\
-	fpi.$O\
-	fpiarm.$O\
-	fpimem.$O\
-	main.$O\
-	mmu.$O\
-	power.$O\
-	sa1110dma.$O\
-	screen.$O\
-	trap.$O\
-	$CONF.root.$O\
-	$CONF.rootc.$O\
-	$DEVS\
-	$PORT\
-
-LIB=\
-	/$objtype/lib/libmemlayer.a\
-	/$objtype/lib/libmemdraw.a\
-	/$objtype/lib/libdraw.a\
-	/$objtype/lib/libip.a\
-	/$objtype/lib/libc.a\
-	/$objtype/lib/libsec.a\
-	/$objtype/lib/libip.a\
-
-size:VQ: $p$CONF
-	ls -l $p$CONF|sed 's/^[^ ]+ [^ ]+ [^ ]+ [^ ]+ [^ ]+ ([^ ]+).*/load ram 0xc0008000 \1/'
-	echo load kernel
-	echo !xms /sys/src/9/bitsy/^$p$CONF
-	echo jump 0xc0008010
-
-acid:VQ:
-	echo acid -lmap s9bitsy
-
-$p$CONF:	$OBJ $CONF.c $LIB /arm/inflate
-	$CC $CFLAGS '-DKERNDATE='`{date -n} $CONF.c
-	$LD -o $target -H5 -R4 -T0xC0008010 -l $OBJ $CONF.$O $LIB
-	$LD -o s$target -R4 -T0xC0008010 -l $OBJ $CONF.$O $LIB
-	gzip $target
-	cat /arm/inflate $target.gz > $target
-	echo the boot loader misses the last 12 bytes >> $target
-	rm $target.gz
-
-install:V:	$p$CONF paqdisk
-	if(test -d /n/once/arm){
-		cp $p$CONF /n/once/arm/$p$CONF
-		cp s$p$CONF /n/once/arm/s$p$CONF
-		cp paqdisk /n/once/arm/paqdisk
-	}
-	if not
-		status=''
-	# 9fs lookout && cp $p$CONF /n/lookout/$objtype/$p$CONF
-
-installkern:V:	$p$CONF
-	cp $p$CONF /$objtype/$p$CONF
-	cp s$p$CONF /$objtype/s$p$CONF
-
-<../boot/bootmkfile
-<../port/portmkfile
-<|../port/mkbootrules $CONF
-
-init.h:D:	../port/initcode.c init9.s
-	$CC ../port/initcode.c
-	$AS init9.s
-	$LD -l -R1 -s -o init.out init9.$O initcode.$O /arm/lib/libc.a
-	{echo 'uchar initcode[]={'
-	 xd -1x <init.out |
-		sed -e 's/^[0-9a-f]+ //' -e 's/ ([0-9a-f][0-9a-f])/0x\1,/g'
-	 echo '};'} > init.h
-
-clock.$O:	/$objtype/include/ureg.h
-devether.$O:	/$objtype/include/ureg.h ../port/netif.h
-devpcmcia.$O:	/$objtype/include/ureg.h
-fpi.$O:		fpi.h
-fpiarm.$O:	/$objtype/include/ureg.h fpi.h
-fpimem.$O:	fpi.h
-main.$O:	/$objtype/include/ureg.h errstr.h init.h
-mmu.$O:		/$objtype/include/ureg.h
-power.$O:	/$objtype/include/ureg.h
-scu.$O:		/$objtype/include/ureg.h
-sa1110dma.$O:	/$objtype/include/ureg.h
-screen.$O:	gamma.h
-sdata.$O:	/$objtype/include/ureg.h
-trap$O:		/$objtype/include/ureg.h
-wavelan.$O:	/$objtype/include/ureg.h wavelan.c wavelan.h ../pc/wavelan.h
-
-paqdisk:V:
-	rm -fr armpaq
-	mkdir armpaq
-	cd armpaq
-	disk/mkfs -d . /sys/lib/sysconfig/proto/armpaqproto
-	mkpaqfs -o ../paqdisk
-	cd ..
-	echo load ramdisk
-	echo !xms /sys/src/9/bitsy/paqdisk
-
-bitsy.clean:
-	rm -rf armpaq $p$CONF s$p$CONF paqdisk $CONF.c boot$CONF.c ../boot/libboot.a5
-
--- a/sys/src/9/bitsy/mmu.c
+++ /dev/null
@@ -1,532 +1,0 @@
-#include	"u.h"
-#include	"../port/lib.h"
-#include	"mem.h"
-#include	"dat.h"
-#include	"fns.h"
-#include	"io.h"
-#include	"ureg.h"
-#include	"../port/error.h"
-
-/*
- *  to avoid mmu and cash flushing, we use the pid register in the MMU
- *  to map all user addresses.  Although there are 64 possible pids, we
- *  can only use 31 because there are only 32 protection domains and we
- *  need one for the kernel.  Pid i is thus associated with domain i.
- *  Domain 0 is used for the kernel.
- */
-
-/* real protection bits */
-enum
-{
-	/* level 1 descriptor bits */
-	L1TypeMask=	(3<<0),
-	L1Invalid=	(0<<0),
-	L1PageTable=	(1<<0),
-	L1Section=	(2<<0),
-	L1Cached=	(1<<3),
-	L1Buffered=	(1<<2),
-	L1DomShift=	5,
-	L1Domain0=	(0<<L1DomShift),
-	L1KernelRO=	(0x0<<10),
-	L1KernelRW=	(0x1<<10),
-	L1UserRO=	(0x2<<10),
-	L1UserRW=	(0x3<<10),
-	L1SectBaseMask=	(0xFFF<<20),
-	L1PTBaseMask=	(0x3FFFFF<<10),
-	
-	/* level 2 descriptor bits */
-	L2TypeMask=	(3<<0),
-	L2SmallPage=	(2<<0),
-	L2LargePage=	(1<<0),
-	L2Cached=	(1<<3),
-	L2Buffered=	(1<<2),
-	L2KernelRW=	(0x55<<4),
-	L2UserRO=	(0xAA<<4),
-	L2UserRW=	(0xFF<<4),
-	L2PageBaseMask=	(0xFFFFF<<12),
-
-	/* domain values */
-	Dnoaccess=	0,
-	Dclient=	1,
-	Dmanager=	3,
-};
-
-ulong *l1table;
-static int mmuinited;
-
-/*
- *  We map all of memory, flash, and the zeros area with sections.
- *  Special use space is mapped on the fly with regmap.
- */
-void
-mmuinit(void)
-{
-	ulong a, o;
-	ulong *t;
-
-	/* get a prototype level 1 page */
-	l1table = xspanalloc(16*1024, 16*1024, 0);
-	memset(l1table, 0, 16*1024);
-
-	/* map low mem (I really don't know why I have to do this -- presotto) */
-	for(o = 0; o < 1*OneMeg; o += OneMeg)
-		l1table[(0+o)>>20] = L1Section | L1KernelRW| L1Domain0 
-			| L1Cached | L1Buffered
-			| ((0+o)&L1SectBaseMask);
-
-	/* map DRAM */
-	for(o = 0; o < DRAMTOP-DRAMZERO; o += OneMeg)
-		l1table[(DRAMZERO+o)>>20] = L1Section | L1KernelRW| L1Domain0 
-			| L1Cached | L1Buffered
-			| ((PHYSDRAM0+o)&L1SectBaseMask);
-
-	/* uncached DRAM */
-	for(o = 0; o < UCDRAMTOP-UCDRAMZERO; o += OneMeg)
-		l1table[(UCDRAMZERO+o)>>20] = L1Section | L1KernelRW| L1Domain0 
-			| ((PHYSDRAM0+o)&L1SectBaseMask);
-
-	/* map zeros area */
-	for(o = 0; o < NULLTOP-NULLZERO; o += OneMeg)
-		l1table[(NULLZERO+o)>>20] = L1Section | L1KernelRW | L1Domain0
-			| L1Cached | L1Buffered
-			| ((PHYSNULL0+o)&L1SectBaseMask);
-
-	/* map flash */
-	for(o = 0; o < FLASHTOP-FLASHZERO; o += OneMeg)
-		l1table[(FLASHZERO+o)>>20] = L1Section | L1KernelRW | L1Domain0
-			| ((PHYSFLASH0+o)&L1SectBaseMask);
-
-	/* map peripheral control module regs */
-	mapspecial(0x80000000, OneMeg);
-
-	/* map system control module regs */
-	mapspecial(0x90000000, OneMeg);
-
-	/*
-	 *  double map start of ram to exception vectors
-	 */
-	a = EVECTORS;
-	t = xspanalloc(BY2PG, 1024, 0);
-	memset(t, 0, BY2PG);
-	l1table[a>>20] = L1PageTable | L1Domain0 | (((ulong)t) & L1PTBaseMask);
-	t[(a&0xfffff)>>PGSHIFT] = L2SmallPage | L2KernelRW | (PHYSDRAM0 & L2PageBaseMask);
-
-	mmurestart();
-
-	mmuinited = 1;
-}
-
-void
-mmurestart(void) {
-	/* set up the domain register to cause all domains to obey pte access bits */
-
-	putdac(Dclient);
-
-	/* point to map */
-	putttb((ulong)l1table);
-
-	/* enable mmu */
-	wbflush();
-	mmuinvalidate();
-	mmuenable();
-	cacheflush();
-}
-
-/*
- *  map on request
- */
-static void*
-_map(ulong pa, int len, ulong zero, ulong top, ulong l1prop, ulong l2prop)
-{
-	ulong *t;
-	ulong va, i, base, end, off, entry;
-	int large;
-	ulong* rv;
-
-	rv = nil;
-	large = len >= 128*1024;
-	if(large){
-		base = pa & ~(OneMeg-1);
-		end = (pa+len-1) & ~(OneMeg-1);
-	} else {
-		base = pa & ~(BY2PG-1);
-		end = (pa+len-1) & ~(BY2PG-1);
-	}
-	off = pa - base;
-
-	for(va = zero; va < top && base <= end; va += OneMeg){
-		switch(l1table[va>>20] & L1TypeMask){
-		default:
-			/* found unused entry on level 1 table */
-			if(large){
-				if(rv == nil)
-					rv = (ulong*)(va+off);
-				l1table[va>>20] = L1Section | l1prop | L1Domain0 |
-							(base & L1SectBaseMask);
-				base += OneMeg;
-				continue;
-			} else {
-
-				/* create an L2 page table and keep going */
-				t = xspanalloc(BY2PG, 1024, 0);
-				memset(t, 0, BY2PG);
-				l1table[va>>20] = L1PageTable | L1Domain0 |
-							(((ulong)t) & L1PTBaseMask);
-			}
-			break;
-		case L1Section:
-			/* if it's already mapped in a one meg area, don't remap */
-			entry = l1table[va>>20];
-			i = entry & L1SectBaseMask;
-			if(pa >= i && (pa+len) <= i + OneMeg)
-			if((entry & ~L1SectBaseMask) == (L1Section | l1prop | L1Domain0))
-				return (void*)(va + (pa & (OneMeg-1)));
-				
-			continue;
-		case L1PageTable:
-			if(large)
-				continue;
-			break;
-		}
-
-		/* here if we're using page maps instead of sections */
-		t = (ulong*)(l1table[va>>20] & L1PTBaseMask);
-		for(i = 0; i < OneMeg && base <= end; i += BY2PG){
-			entry = t[i>>PGSHIFT];
-
-			/* found unused entry on level 2 table */
-			if((entry & L2TypeMask) != L2SmallPage){
-				if(rv == nil)
-					rv = (ulong*)(va+i+off);
-				t[i>>PGSHIFT] = L2SmallPage | l2prop | 
-						(base & L2PageBaseMask);
-				base += BY2PG;
-				continue;
-			}
-		}
-	}
-
-	/* didn't fit */
-	if(base <= end)
-		return nil;
-	cacheflush();
-
-	return rv;
-}
-
-/* map in i/o registers */
-void*
-mapspecial(ulong pa, int len)
-{
-	return _map(pa, len, REGZERO, REGTOP, L1KernelRW, L2KernelRW);
-}
-
-/* map add on memory */
-void*
-mapmem(ulong pa, int len, int cached)
-{
-	ulong l1, l2;
-
-	if(cached){
-		l1 = L1KernelRW|L1Cached|L1Buffered;
-		l2 = L2KernelRW|L2Cached|L2Buffered;
-	} else {
-		l1 = L1KernelRW;
-		l2 = L2KernelRW;
-	}
-	return _map(pa, len, EMEMZERO, EMEMTOP, l1, l2);
-}
-
-/* map a virtual address to a physical one */
-ulong
-mmu_paddr(ulong va)
-{
-	ulong entry;
-	ulong *t;
-
-	entry = l1table[va>>20];
-	switch(entry & L1TypeMask){
-	case L1Section:
-		return (entry & L1SectBaseMask) | (va & (OneMeg-1));
-	case L1PageTable:
-		t = (ulong*)(entry & L1PTBaseMask);
-		va &= OneMeg-1;
-		entry = t[va>>PGSHIFT];
-		switch(entry & L1TypeMask){
-		case L2SmallPage:
-			return (entry & L2PageBaseMask) | (va & (BY2PG-1));
-		}
-	}
-	return 0;
-}
-
-/* map a physical address to a virtual one */
-ulong
-findva(ulong pa, ulong zero, ulong top)
-{
-	int i;
-	ulong entry, va;
-	ulong start, end;
-	ulong *t;
-
-	for(va = zero; va < top; va += OneMeg){
-		/* search the L1 entry */
-		entry = l1table[va>>20];
-		switch(entry & L1TypeMask){
-		default:
-			return 0;	/* no holes */
-		case L1Section:
-			start = entry & L1SectBaseMask;
-			end = start + OneMeg;
-			if(pa >= start && pa < end)
-				return va | (pa & (OneMeg-1));
-			continue;
-		case L1PageTable:
-			break;
-		}
-
-		/* search the L2 entry */
-		t = (ulong*)(l1table[va>>20] & L1PTBaseMask);
-		for(i = 0; i < OneMeg; i += BY2PG){
-			entry = t[i>>PGSHIFT];
-
-			/* found unused entry on level 2 table */
-			if((entry & L2TypeMask) != L2SmallPage)
-				break;
-
-			start = entry & L2PageBaseMask;
-			end = start + BY2PG;
-			if(pa >= start && pa < end)
-				return va | (BY2PG*i) | (pa & (BY2PG-1));
-		}
-	}
-	return 0;
-}
-ulong
-mmu_kaddr(ulong pa)
-{
-	ulong va;
-
-	/* try the easy stuff first (the first case is true most of the time) */
-	if(pa >= PHYSDRAM0 && pa <= PHYSDRAM0+(DRAMTOP-DRAMZERO))
-		return DRAMZERO+(pa-PHYSDRAM0);
-	if(pa >= PHYSFLASH0 && pa <= PHYSFLASH0+(FLASHTOP-FLASHZERO))
-		return FLASHZERO+(pa-PHYSFLASH0);
-	if(pa >= PHYSNULL0 && pa <= PHYSNULL0+(NULLTOP-NULLZERO))
-		return NULLZERO+(pa-PHYSNULL0);
-
-	if(!mmuinited)
-		return 0;	/* this shouldn't happen */
-
-	/* walk the map for the special regs and extended memory */
-	va = findva(pa, EMEMZERO, EMEMTOP);
-	if(va != 0)
-		return va;
-	return findva(pa, REGZERO, REGTOP);
-}
-
-/*
- * Return the number of bytes that can be accessed via KADDR(pa).
- * If pa is not a valid argument to KADDR, return 0.
- */
-ulong
-cankaddr(ulong pa)
-{
-	/*
-	 * Is this enough?
-	 * We'll find out if anyone still has one
-	 * of these...
-	 */
-	if(pa >= PHYSDRAM0 && pa <= PHYSDRAM0+(DRAMTOP-DRAMZERO))
-		return PHYSDRAM0+(DRAMTOP-DRAMZERO) - pa;
-	return 0;
-}
-
-/*
- *  table to map fault.c bits to physical bits
- */
-static ulong mmubits[16] =
-{
-	[PTEVALID]				L2SmallPage|L2Cached|L2Buffered|L2UserRO,
-	[PTEVALID|PTEWRITE]			L2SmallPage|L2Cached|L2Buffered|L2UserRW,
-	[PTEVALID|PTEUNCACHED]			L2SmallPage|L2UserRO,
-	[PTEVALID|PTEUNCACHED|PTEWRITE]		L2SmallPage|L2UserRW,
-
-	[PTEKERNEL|PTEVALID]			L2SmallPage|L2Cached|L2Buffered|L2KernelRW,
-	[PTEKERNEL|PTEVALID|PTEWRITE]		L2SmallPage|L2Cached|L2Buffered|L2KernelRW,
-	[PTEKERNEL|PTEVALID|PTEUNCACHED]		L2SmallPage|L2KernelRW,
-	[PTEKERNEL|PTEVALID|PTEUNCACHED|PTEWRITE]	L2SmallPage|L2KernelRW,
-};
-
-/*
- *  add an entry to the current map
- */
-void
-putmmu(uintptr va, uintptr pa, Page *pg)
-{
-	Page *l2pg;
-	ulong *t, *l1p, *l2p;
-	int s;
-
-	s = splhi();
-
-	/* clear out the current entry */
-	mmuinvalidateaddr(va);
-
-	l2pg = up->l1page[va>>20];
-	if(l2pg == nil){
-		l2pg = up->mmufree;
-		if(l2pg != nil){
-			up->mmufree = l2pg->next;
-		} else {
-			splx(s);
-			l2pg = newpage(0, 0, 0);
-			splhi();
-		}
-		l2pg->va = VA(kmap(l2pg));
-		up->l1page[va>>20] = l2pg;
-		memset((uchar*)(l2pg->va), 0, BY2PG);
-	}
-
-	/* always point L1 entry to L2 page, can't hurt */
-	l1p = &l1table[va>>20];
-	*l1p = L1PageTable | L1Domain0 | (l2pg->pa & L1PTBaseMask);
-	up->l1table[va>>20] = *l1p;
-	t = (ulong*)l2pg->va;
-
-	/* set L2 entry */
-	l2p = &t[(va & (OneMeg-1))>>PGSHIFT];
-	*l2p = mmubits[pa & (PTEKERNEL|PTEVALID|PTEUNCACHED|PTEWRITE)]
-		| (pa & ~(PTEKERNEL|PTEVALID|PTEUNCACHED|PTEWRITE));
-
-	/*  write back dirty entries - we need this because the pio() in
-	 *  fault.c is writing via a different virt addr and won't clean
-	 *  its changes out of the dcache.  Page coloring doesn't work
-	 *  on this mmu because the virtual cache is set associative
-	 *  rather than direct mapped.
-	 */
-	cachewb();
-	if(pg->txtflush){
-		icacheinvalidate();
-		pg->txtflush = 0;
-	}
-
-	splx(s);
-}
-
-/*
- *  free up all page tables for this proc
- */
-void
-mmuptefree(Proc *p)
-{
-	Page *pg;
-	int i;
-
-	for(i = 0; i < Nmeg; i++){
-		pg = p->l1page[i];
-		if(pg == nil)
-			continue;
-		p->l1page[i] = nil;
-		pg->next = p->mmufree;
-		p->mmufree = pg;
-	}
-	memset(p->l1table, 0, sizeof(p->l1table));
-}
-
-/*
- *  this is called with palloc locked so the pagechainhead is kosher
- */
-void
-mmurelease(Proc* p)
-{
-	Page *pg, *next;
-
-	/* write back dirty cache entries before changing map */
-	cacheflush();
-
-	mmuptefree(p);
-
-	for(pg = p->mmufree; pg != nil; pg = next){
-		next = pg->next;
-		if(--pg->ref)
-			panic("mmurelease: pg->ref %d\n", pg->ref);
-		pagechainhead(pg);
-	}
-	if(p->mmufree != nil)
-		pagechaindone();
-	p->mmufree = nil;
-
-	memset(l1table, 0, sizeof(p->l1table));
-	cachewbregion((ulong)l1table, sizeof(p->l1table));
-}
-
-void
-mmuswitch(Proc *p)
-{
-	if(m->mmupid == p->pid && p->newtlb == 0)
-		return;
-	m->mmupid = p->pid;
-
-	/* write back dirty cache entries and invalidate all cache entries */
-	cacheflush();
-
-	if(p->newtlb){
-		mmuptefree(p);
-		p->newtlb = 0;
-	}
-
-	/* move in new map */
-	memmove(l1table, p->l1table, sizeof(p->l1table));
-
-	/* make sure map is in memory */
-	cachewbregion((ulong)l1table, sizeof(p->l1table));
-
-	/* lose any possible stale tlb entries */
-	mmuinvalidate();
-}
-
-void
-flushmmu(void)
-{
-	int s;
-
-	s = splhi();
-	up->newtlb = 1;
-	mmuswitch(up);
-	splx(s);
-}
-
-void
-peekmmu(ulong va)
-{
-	ulong e, d;
-
-	e = l1table[va>>20];
-	switch(e & L1TypeMask){
-	default:
-		iprint("l1: %#p[%#lux] = %#lux invalid\n", l1table, va>>20, e);
-		break;
-	case L1PageTable:
-		iprint("l1: %#p[%#lux] = %#lux pt\n", l1table, va>>20, e);
-		va &= OneMeg-1;
-		va >>= PGSHIFT;
-		e &= L1PTBaseMask;
-		d = ((ulong*)e)[va];
-		iprint("l2: %#lux[%#lux] = %#lux\n", e, va, d);
-		break;
-	case L1Section:
-		iprint("l1: %#p[%#lux] = %#lux section\n", l1table, va>>20, e);
-		break;
-	}
-}
-
-void
-checkmmu(uintptr, uintptr)
-{
-}
-
-void
-countpagerefs(ulong*, int)
-{
-}
--- a/sys/src/9/bitsy/mouse.c
+++ /dev/null
@@ -1,63 +1,0 @@
-#include "u.h"
-#include "../port/lib.h"
-#include "mem.h"
-#include "dat.h"
-#include "fns.h"
-#include "../port/error.h"
-#include "io.h"
-
-#define	Image	IMAGE
-#include <draw.h>
-#include <memdraw.h>
-#include <cursor.h>
-#include "screen.h"
-
-enum {
-	Button1 = 0x1;
-	Button2 = 0x2;
-	Button3 = 0x4;
-};
-
-int		buttons;
-Point	position;
-
-static void
-mousevent(void) {
-	static int		curbuttons;
-	static Point	curposition;
-
-	if (buttons == curbuttons && eqpt(position, curposition))
-		return;
-
-	/* generate a mouse event */
-	curbuttons = buttons;
-	curposition = position;
-}
-
-void
-buttonevent(int event) {
-	switch (event) {
-	case 0x02:
-		/* Button 2 down */
-		buttons |= Button2;
-		mousevent();
-		break;
-	case 0x82:
-		/* Button 2 up */
-		buttons &= ~Button2;
-		mousevent();
-		break;
-	case 0x03:
-		/* Button 3 down */
-		buttons |= Button3;
-		mousevent();
-		break;
-	case 0x83:
-		/* Button 3 up */
-		buttons &= ~Button3;
-		mousevent();
-		break;
-	default:
-		/* other buttons */
-	}
-}
--- a/sys/src/9/bitsy/paqfiles/cpurc
+++ /dev/null
@@ -1,175 +1,0 @@
-#!/bin/rc
-
-debug=0
-
-#set service to terminal (necessary for factotum, handy for everything else)
-service=terminal 
-
-echo -n terminal > /env/service
-echo -n plan9 > /env/site
-echo -n astro > /env/facedom
-echo -n emelie > /env/fs
-
-bind -a '#y' /dev
-bind -a '#F' /dev
-bind -a '#I' /net
-bind -a '#D' /net
-
-# parallelism for mk
-NPROC=1
-
-sysname=`{cat /dev/sysname}
-if (~ $sysname ''){
-	sysname=bitsy
-	echo $sysname>/dev/sysname
-}
-prompt=($sysname^'# ' '	')
-
-# flavor
-fileserver=emelie
-cpu=olive
-
-# user defined flash partitions
-echo -n add fs		0x0800000 0x1000000 > /dev/flash/flashctl
-
-# so we can see things
-light 0
-
-# set variables
-if(~ $debug 1) echo ramfs
-ramfs
-if(~ $debug 1) echo pencal
-params -f
-if(! grep -s '^calibrate=' /tmp/tmpparams)
-	pencal >>/tmp/tmpparams
-if not {
-	eval `{grep '^calibrate=' /tmp/tmpparams}
-	echo calibrate $calibrate > '#m/mousectl'
-}
-prompter /tmp/tmpparams
-params
-if(~ $debug 1) {
-	echo tmpparams:
-	cat /tmp/tmpparams
-}
-. /tmp/tmpparams
-
-if(~ $debug 1) echo set user
-# set userid
-if(test -e /env/user){
-	echo -n $user > /dev/hostowner
-}
-
-if(~ $debug 1) echo start flashfs
-# bind in read/write file system
-if (aux/flashfs) {
-	if (~ $debug 1) echo flashfs started
-	mount /srv/brzr /n/tmp
-	bind -a /n /n/tmp/n
-	bind -a /sys/lib /n/tmp/sys/lib
-	bind -a /sys /n/tmp/sys
-	bind -a /arm/bin/auth /n/tmp/arm/bin/auth
-	bind -a /arm/bin/ndb /n/tmp/arm/bin/ndb
-	bind -a /arm/bin/ip /n/tmp/arm/bin/ip
-	bind -a /arm/bin/aux /n/tmp/arm/bin/aux
-	bind -a /arm/bin /n/tmp/arm/bin
-	bind -a /arm /n/tmp/arm
-	bind -a /lib/ndb /n/tmp/lib/ndb
-	bind -a /lib/font /n/tmp/lib/font
-	bind -a /lib /n/tmp/lib
-	bind -a / /n/tmp
-	bind /n/tmp /
-	unmount /n/tmp
-} >[2] /dev/null
-
-# start network
-if(grep -s WaveLAN/IEEE /dev/pcm0ctl){
-	if (~ $debug 1) echo 'configure #l0 wavelan'
-	echo -n 'configure #l0 wavelan'>/dev/pcm0ctl
-	bind -a '#l0' /net
-	switch($wvkey1){
-	case ''
-		;
-	case *
-		echo -n 'key1 '^$wvkey1 >/net/ether0/clone
-	}
-	switch($wvkey2){
-	case ''
-		;
-	case *
-		echo -n 'key2 '^$wvkey2 >/net/ether0/clone
-	}
-	switch($wvkey3){
-	case ''
-		;
-	case *
-		echo -n 'key3 '^$wvkey3 >/net/ether0/clone
-	}
-	switch($wvtxkey){
-	case ''
-		;
-	case *
-		echo -n 'txkey '^$wvtxkey >/net/ether0/clone
-	}
-	switch($wvmode){
-	case ''
-		;
-	case *
-		echo -n 'mode '^$wvmode >/net/ether0/clone
-	}
-	switch($wvibss){
-	case ''
-		;
-	case *
-		echo -n 'ibss '^$wvibss >/net/ether0/clone
-	}
-	switch($wvessid){
-	case ''
-		;
-	case *
-		echo -n 'essid '^$wvessid >/net/ether0/clone
-	}
-	switch($wvcrypt){
-	case ''
-		;
-	case *
-		echo -n 'crypt '^$wvcrypt >/net/ether0/clone
-	}
-	if (~ $debug 1) echo ip/ipconfig ether /net/ether0 $ipaddr $ipmask
-	ip/ipconfig ether /net/ether0 $ipaddr $ipmask
-	if(test -e /env/auth)
-		echo '	auth='^$auth >>/net/ndb
-	if(test -e /env/dns)
-		echo '	dns='^$dns >>/net/ndb
-	if(test -e /env/dnsdomain)
-		echo '	dnsdomain='^$dnsdomain >>/net/ndb
-	if(test -e /env/authdom)
-		echo '	authdom='^$authdom >>/net/ndb
-
-	if (~ $debug 1) echo ndb/cs
-	ndb/cs
-	ndb/dns -r
-}
-
-auth/factotum -n -s factotum -a $auth
-
-if(! test -e /env/font)
-	font=/lib/font/bit/lucidasans/unicode.6.font
-if(! test -e /env/tabstop)
-	tabstop=2
-
-if (test -d /usr/$user) {
-	home=/usr/$user
-	cd $home
-	if (test -r lib/profile) {
-		. lib/profile
-		exec /bin/rc
-	}
-	if (test -r lib/windows) {
-		if (~ $debug 1) echo 'exec rio -sk ''/bin/keyboard -l'' -i '$home'/lib/windows'
-		exec rio -sk '/bin/keyboard -l -w' -i $home/lib/windows
-	}
-}
-# bind in read/write file system
-if (~ $debug 1) echo 'exec rio -sk ''/bin/keyboard -l'''
-exec rio -sk '/bin/keyboard -l -w'
--- a/sys/src/9/bitsy/paqfiles/local
+++ /dev/null
@@ -1,6 +1,0 @@
-#
-#   files comprising the database
-#
-database=
-	file=/lib/ndb/local
-	file=/lib/ndb/common
--- a/sys/src/9/bitsy/paqfiles/mfs
+++ /dev/null
@@ -1,41 +1,0 @@
-#!/bin/rc
-
-# $proxy is typically set to tailfan's address.
-ipnet=`{grep 'ip=' /net/ndb | sed 's/^.*ip=([0-9]+\.[0-9]+\.[0-9]+\.).*$/\1/'}
-if (~ $proxy $ipnet^*){
-	# Use a proxy
-	echo import $proxy /net /net
-	import $proxy /net /net
-}
-
-switch($fs){
-case ''
-	echo you must set the environment variable fs
-	exit 0
-}
-if (! test -e /mnt/factotum) {
-	if (test -e /srv/factotum) {
-		mount -b /srv/factotum /mnt
-	}
-	if not {
-		auth/factotum -u
-	}
-}
-srv -m $fs $fs /n/fs
-bind -b /n/fs/arm/bin /bin
-bind -b /n/fs/rc/bin /bin
-bind -a /n/fs/lib /lib
-bind -b /n/fs/sys /sys
-bind -a /n/fs/usr /usr
-bind -c /n/fs/mail /mail
-bind -c /n/fs/acme /acme
-user=`{cat /dev/user}
-home=/usr/$user
-bind -a /n/fs/usr/$user /usr/$user
-bind -cb /usr/$user/tmp /tmp
-bind -b /usr/$user/bin/rc /bin
-bind -b /usr/$user/bin/arm /bin
-bind -a /n/fs/lib/font/bit/lucidasans /lib/font/bit/lucidasans 
-bind -a /n/fs/lib/font/bit/lucida /lib/font/bit/lucida
-bind -a /n/fs/lib/font/bit/misc /lib/font/bit/misc
-#service=cpu aux/listen -t /bin/service
--- a/sys/src/9/bitsy/paqfiles/namespace
+++ /dev/null
@@ -1,53 +1,0 @@
-# root
-mount #s/boot /root
-bind -a /root /
-bind -c /root/mnt /mnt
-
-# kernel devices
-bind #c /dev
-bind #d /fd
-bind -c #e /env
-bind #p /proc
-bind -c #s /srv
-bind -a #t /dev
-bind -a #r /dev
-bind -a #m /dev
-bind -a #y /dev
-bind -a #I /net
-bind -a #A /dev
-bind -a #F /dev
-bind -a #¤ /dev
-
-# servers
-mount -a /srv/cs /net
-mount -a /srv/dns /net
-mount -a /srv/factotum /mnt
-
-# read/write file system
-mount /srv/brzr /n/brzr
-mount /srv/brzr /n/tmp
-bind -a /n /n/tmp/n
-bind -a /sys/lib /n/tmp/sys/lib
-bind -a /sys /n/tmp/sys
-bind -a /arm/bin/auth /n/tmp/arm/bin/auth
-bind -a /arm/bin/ndb /n/tmp/arm/bin/ndb
-bind -a /arm/bin/ip /n/tmp/arm/bin/ip
-bind -a /arm/bin/aux /n/tmp/arm/bin/aux
-bind -a /arm/bin /n/tmp/arm/bin
-bind -a /arm /n/tmp/arm
-bind -a /lib/ndb /n/tmp/lib/ndb
-bind -a /lib/font /n/tmp/lib/font
-bind -a /lib /n/tmp/lib
-bind -a / /n/tmp
-bind /n/tmp /
-unmount /n/tmp
-
-# standard bin
-bind /arm/bin /bin
-bind -a /rc/bin /bin
-bind -a /arm/bin/bitsy /bin
-
-# user defines
-bind -cb /usr/$user/tmp /tmp
-bind -b /usr/$user/bin/rc /bin
-bind -b /usr/$user/bin/arm /bin
--- a/sys/src/9/bitsy/paqfiles/startip
+++ /dev/null
@@ -1,9 +1,0 @@
-#!/bin/rc
-if(grep -s WaveLAN/IEEE /dev/pcm0ctl){
-	echo -n 'configure #l0 WaveLAN/IEEE'>/dev/pcm0ctl
-	bind -a '#l0' /net
-	echo -n 'key moon1'>/net/ether0/clone
-	ip/ipconfig ether /net/ether0
-	ndb/cs
-	ndb/dns -r
-}
--- a/sys/src/9/bitsy/paqfiles/unicode.6.font
+++ /dev/null
@@ -1,5 +1,0 @@
-11	9
-0x0000	0x00FF	lsr.10
-0x0100	0x01f0	../lucida/EuroLatin.5.0
-0x2000	0x20aa	../lucida/GenPunct.5.0
-0x2200	0x22f1	../lucida/MathOps1.5.0
--- a/sys/src/9/bitsy/power.c
+++ /dev/null
@@ -1,358 +1,0 @@
-#include	"u.h"
-#include	"../port/lib.h"
-#include	"mem.h"
-#include	"dat.h"
-#include	"fns.h"
-#include	"io.h"
-#include	"ureg.h"
-#include	"pool.h"
-
-/* Power management for the bitsy */
-
-#define TODFREQ	1000000000LL
-
-/* saved state during power down. 
- * it's only used up to 164/4.
- * it's only used by routines in l.s
- */
-ulong	power_state[200/4];
-
-ulong	resumeaddr[1];
-Rendez	powerr;
-ulong	powerflag = 0;	/* set to start power-off sequence */
-
-extern void	power_resume(void);
-extern int		setpowerlabel(void);
-extern void	_start(void);
-extern Uart	sa1110uart[];
-
-GPIOregs savedgpioregs;
-Intrregs savedintrregs;
-
-#define R(p) ((Uartregs*)((p)->regs))
-
-uchar *savedtext;
-
-static void
-checkflash(void)
-{
-	ulong *p;
-	ulong s;
-
-	s = 0;
-	for (p = (ulong*)FLASHZERO; p < (ulong*)(FLASHZERO+8*1024*1024); p++)
-		s += *p;
-	iprint("flash checksum is 0x%lux\n", s);
-}
-
-static void
-checkktext(void)
-{
-	ulong *p;
-	ulong s;
-
-	s = 0;
-	for (p = (ulong*)_start; p < (ulong*)etext; p++){
-		if(*p == 0)
-			iprint("%#p->0\n", p);
-		if (((ulong)p & 0x1fff) == 0){
-			iprint("page 0x%lux checksum 0x%lux\n",
-				(ulong)(p-1)&~0x1fff, s);
-			s = 0;
-		}
-		s += *p;
-	}
-	iprint("page 0x%lux checksum 0x%lux\n", (ulong)(p-1)&~0x1fff, s);
-}
-
-static void
-checkpagetab(void)
-{
-	extern ulong l1table;
-	ulong *p;
-	ulong s;
-
-	s = 0;
-	for (p = (ulong*)l1table; p < (ulong*)(l1table+16*1024); p++)
-		s += *p;
-	iprint("page table checksum is 0x%lux\n", s);
-}
-
-
-static void
-dumpitall(void)
-{
-	extern ulong l1table;
-
-	iprint("intr: icip %lux iclr %lux iccr %lux icmr %lux\n",
-		intrregs->icip,
-		intrregs->iclr, intrregs->iccr, intrregs->icmr );
-	iprint("gpio: lvl %lux dir %lux, re %lux, fe %lux sts %lux alt %lux\n",
-		gpioregs->level,
-		gpioregs->direction, gpioregs->rising, gpioregs->falling,
-		gpioregs->edgestatus, gpioregs->altfunc);
-	iprint("uart1: %lux %lux %lux \nuart3: %lux %lux %lux\n", 
-		R(&sa1110uart[0])->ctl[0], R(&sa1110uart[0])->status[0], R(&sa1110uart[0])->status[1], 
-		R(&sa1110uart[1])->ctl[0], R(&sa1110uart[1])->status[0], R(&sa1110uart[1])->status[1]); 
-	iprint("tmr: osmr %lux %lux %lux %lux oscr %lux ossr %lux oier %lux\n",
-		timerregs->osmr[0], timerregs->osmr[1],
-		timerregs->osmr[2], timerregs->osmr[3],
-		timerregs->oscr, timerregs->ossr, timerregs->oier);
-	iprint("dram: mdcnfg %lux mdrefr %lux cas %lux %lux %lux %lux %lux %lux\n",
-		memconfregs->mdcnfg, memconfregs->mdrefr,
-		memconfregs->mdcas00, memconfregs->mdcas01,memconfregs->mdcas02,
-		memconfregs->mdcas20, memconfregs->mdcas21,memconfregs->mdcas22); 
-	iprint("dram: mdcnfg msc %lux %lux %lux mecr %lux\n",
-		memconfregs->msc0, memconfregs->msc1,memconfregs->msc2,
-		memconfregs->mecr);
-	iprint("mmu: CpControl %lux CpTTB %lux CpDAC %lux l1table 0x%lux\n",
-		getcontrol(), getttb(), getdac(), l1table);
-	iprint("powerregs: pmcr %lux pssr %lux pcfr %lux ppcr %lux pwer %lux pspr %lux pgsr %lux posr %lux\n",
-		powerregs->pmcr, powerregs->pssr, powerregs->pcfr, powerregs->ppcr,
-		powerregs->pwer, powerregs->pspr, powerregs->pgsr, powerregs->posr);
-	checkpagetab();
-	checkflash();
-	checkktext();
-	iprint("\n\n");
-}
-
-static void
-intrcpy(Intrregs *to, Intrregs *from)
-{
-	to->iclr = from->iclr;
-	to->iccr = from->iccr;
-	to->icmr = from->icmr;	// interrupts enabled
-}
-
-static void
-gpiosave(GPIOregs *to, GPIOregs *from)
-{
-	to->level = from->level;
-	to->rising = from->rising;		// gpio intrs enabled
-	to->falling= from->falling;		// gpio intrs enabled
-	to->altfunc = from->altfunc;
-	to->direction = from->direction;
-}
-
-static void
-gpiorestore(GPIOregs *to, GPIOregs *from)
-{
-	to->direction = from->direction;
-	to->altfunc = from->altfunc;
-	to->set = from->level & 0x0fffffff;
-	to->clear = ~from->level & 0x0fffffff;
-	to->rising = from->rising;		// gpio intrs enabled
-	to->falling= from->falling;		// gpio intrs enabled
-}
-
-void	(*restart)(void) = nil;
-
-static int
-bitno(ulong x)
-{
-	int i;
-
-	for(i = 0; i < 8*sizeof(x); i++)
-		if((1<<i) & x)
-			break;
-	return i;
-}
-
-int
-powerdown(void *)
-{
-	return powerflag;
-}
-
-void
-deepsleep(void) {
-	static int power_pl;
-	ulong xsp, xlink;
-//	ulong mecr;
-	ulong clkd;
-	vlong savedtod;
-	extern void power_resume(void);
-
-	power_pl = splhi();
-	xlink = getcallerpc(&xlink);
-
-	/* Power down */
-	pcmciapower(0);
-	irpower(0);
-	audiopower(0);
-	screenpower(0);
-	µcpower(0);
-	iprint("entering suspend mode, sp = %#p, pc = 0x%lux, psw = 0x%ux\n",
-		&xsp, xlink, power_pl);
-//	dumpitall();
-	delay(1000);
-	uartpower(0);
-	rs232power(0);
-	clockpower(0);
-	gpiosave(&savedgpioregs, gpioregs);
-	intrcpy(&savedintrregs, intrregs);
-	cacheflush();
-	delay(50);
-	if(setpowerlabel()){
-		/* return here with mmu back on */
-		trapresume();
-
-		gpiorestore(gpioregs, &savedgpioregs);
-		delay(50);
-		intrcpy(intrregs, &savedintrregs);
-		if(intrregs->icip & (1<<IRQgpio0)){
-			// don't want to sleep now. clear on/off irq.
-			gpioregs->edgestatus = (1<<IRQgpio0);
-			intrregs->icip = (1<<IRQgpio0);
-		}
-		clkd = clockpower(1);
-		gpclkregs->r0 = 1<<0;
-		todset(savedtod + clkd * TODFREQ, 0LL, 0);
-		resetsuspendtimer();
-		rs232power(1);
-		uartpower(1);
-		delay(100);
-		xlink = getcallerpc(&xlink);
-		iprint("\nresuming execution, sp = %#p, pc = 0x%lux, psw = 0x%ux\n",
-			&xsp, xlink, splhi());
-//		dumpitall();
-		delay(1000);
-//		irpower(1);
-		audiopower(1);
-		µcpower(1);
-		screenpower(1);
-		pcmciapower(1);
-		splx(power_pl);
-		return;
-	}
-	cacheflush();
-	delay(100);
-	savedtod = todget(nil);
-	power_down();
-	/* no return */
-}
-
-void
-powerkproc(void*)
-{
-	ulong xlink, xlink1;
-
-	while(waserror())
-		;
-
-	for(;;){
-		while(powerflag == 0)
-			sleep(&powerr, powerdown, 0);
-
-		xlink = getcallerpc(&xlink);
-
-//		iprint("call deepsleep, pc = 0x%lux, sp = 0x%lux\n", xlink, &xlink);
-		deepsleep();
-		xlink1 = getcallerpc(&xlink1);
-
-		delay(2000);
-
-//		iprint("deepsleep returned, pc = 0x%lux, sp = 0x%lux\n", xlink1, &xlink);
-		powerflag = 0;
-	}
-}
-
-void
-onoffintr(Ureg* , void*)
-{
-	int i;
-
-	/* Power down interrupt comes on power button release.
-	 * Act only after button has been released a full 100 ms
-	 */
-
-	if (powerflag)
-		return;
-
-	for (i = 0; i < 100; i++) {
-		delay(1);
-		if ((gpioregs->level & GPIO_PWR_ON_i) == 0)
-			return;	/* bounced */
-	}
-
-	powerflag = 1;
-	wakeup(&powerr);
-}
-
-static void
-blanktimer(void)
-{
-	drawactive(0);
-}
-
-static ulong suspendtime = 120 * HZ;
-static int lastsuspend;
-
-void
-resetsuspendtimer(void)
-{
-	suspendtime = 60 * HZ;
-}
-
-static void
-suspendtimer(void)
-{
-#ifdef notdef
-	uvlong	now;
-
-	if (suspendtime > 0)
-		suspendtime--;
-	if (suspendtime == 0){
-		now = seconds();
-		if (now < lastsuspend + 10){
-			resetsuspendtimer();
-			return;
-		}
-		lastsuspend = seconds();
-		deepsleep();
-		lastsuspend = seconds();
-		return;
-	}
-#endif /* notdef */
-}
-
-void
-powerinit(void)
-{
-	extern ulong power_magic;
-	extern ulong power_code;
-	extern ulong doze_code;
-	ulong *p, *q, i;
-
-	p = (ulong*)(((ulong)&power_magic + 0x1f) & ~0x1f);
-	q = &power_code;
-	for (i = 0; i < 8; i++)
-		*p++ = *q++;
-	p = (ulong*)(((ulong)doze + 0x3f) & ~0x1f);
-	q = &doze_code;
-	for (i = 0; i < 3; i++)
-		*p++ = *q++;
-
-	*resumeaddr = (ulong) power_resume;
-	addclock0link(blanktimer, 1000/HZ);
-	addclock0link(suspendtimer, 1000/HZ);
-	intrenable(GPIOrising, bitno(GPIO_PWR_ON_i), onoffintr, nil, "on/off");
-}
-
-void
-idlehands(void)
-{
-	char *msgb = "idlehands called with splhi\n";
-	char *msga = "doze returns with splhi\n";
-
-	if(!islo()){
-		uartputs(msga, strlen(msga));
-		spllo();
-	}
-	doze();
-	if(!islo()){
-		uartputs(msgb, strlen(msgb));
-		spllo();
-	}
-}
-
--- a/sys/src/9/bitsy/sa1110dma.c
+++ /dev/null
@@ -1,227 +1,0 @@
-#include	"u.h"
-#include	"../port/lib.h"
-#include	"mem.h"
-#include	"dat.h"
-#include	"fns.h"
-#include	"io.h"
-#include	"../port/error.h"
-#include	"sa1110dma.h"
-
-static int debug = 0;
-
-/*
- *	DMA helper routines
- */
-
-enum {
-	NDMA	=	6,			/* Number of DMA channels */
-	DMAREGS	=	0xb0000000,	/* DMA registers, physical */
-};
-
-enum {
-	/* Device Address Register, DDAR */
-	RW		=	0,
-	E		=	1,
-	BS		=	2,
-	DW		=	3,
-	DS		=	4,	/* bits 4 - 7 */
-	DA		=	8	/* bits 8 - 31 */
-};
-
-enum {
-	/* Device Control & Status Register, DCSR */
-	RUN		=	0,
-	IE		=	1,
-	ERROR	=	2,
-	DONEA	=	3,
-	STRTA	=	4,
-	DONEB	=	5,
-	STRTB	=	6,
-	BIU		=	7
-};
-
-typedef struct DMAchan {
-	int		allocated;
-	Rendez	r;
-	void	(*intr)(void*, ulong);
-	void	*param;
-} DMAchan;
-
-struct {
-	Lock;
-	DMAchan	chan[6];
-} dma;
-
-struct dmaregs {
-	ulong	ddar;
-	ulong	dcsr_set;
-	ulong	dcsr_clr;
-	ulong	dcsr_rd;
-	ulong	dstrtA;
-	ulong	dxcntA;
-	ulong	dstrtB;
-	ulong	dxcntB;
-} *dmaregs;
-
-static void	dmaintr(Ureg*, void *);
-
-void
-dmainit(void) {
-	int i;
-
-	/* map the lcd regs into the kernel's virtual space */
-	dmaregs = (struct dmaregs*)mapspecial(DMAREGS, NDMA*sizeof(struct dmaregs));
-	if (debug) print("dma: dmaalloc registers 0x%ux mapped at 0x%p\n",
-		DMAREGS, dmaregs);
-	for (i = 0; i < NDMA; i++) {
-		intrenable(IRQ, IRQdma0+i, dmaintr, &dmaregs[i], "DMA");
-	}
-}
-
-void
-dmareset(int i, int rd, int bigendian, int burstsize, int datumsize, int device, ulong port) {
-	ulong ddar;
-
-	ddar =
-		(rd?1:0)<<RW |
-		(bigendian?1:0)<<E |
-		((burstsize==8)?1:0)<<BS |
-		((datumsize==2)?1:0)<<DW |
-		device<<DS |
-		0x80000000 | ((ulong)port << 6);
-	dmaregs[i].ddar = ddar;
-	dmaregs[i].dcsr_clr = 0xff;
-	if (debug) print("dma: dmareset: 0x%lux\n", ddar);
-}
-
-int
-dmaalloc(int rd, int bigendian, int burstsize, int datumsize, int device, ulong port, void (*intr)(void*, ulong), void *param) {
-	int i;
-
-	lock(&dma);
-	for (i = 0; i < NDMA; i++) {
-		if (dma.chan[i].allocated)
-			continue;
-		dma.chan[i].allocated++;
-		unlock(&dma);
-		dmareset(i, rd, bigendian, burstsize, datumsize, device, port);
-		dma.chan[i].intr = intr;
-		dma.chan[i].param = param;
-		return i;
-	}
-	unlock(&dma);
-	return -1;
-}
-
-void
-dmafree(int i) {
-	dmaregs[i].dcsr_clr = 0xff;
-	dmaregs[i].ddar = 0;
-	dma.chan[i].allocated = 0;
-	dma.chan[i].intr = nil;
-}
-
-void
-dmastop(int i) {
-	dmaregs[i].dcsr_clr = 0xff;
-}
-
-ulong
-dmastart(int chan,  ulong addr, int count) {
-	ulong status, n;
-	static int last;
-
-	/* If this gets called from interrupt routines, make sure ilocks are used */
-	status = dmaregs[chan].dcsr_rd;
-	if (debug > 1)
-		iprint("dma: dmastart 0x%lux\n", status);
-
-	if ((status & (1<<STRTA|1<<STRTB|1<<RUN)) == (1<<STRTA|1<<STRTB|1<<RUN)) {
-		return 0;
-	}
-	cachewbregion(addr, count);
-	n = 0x100;
-	if ((status & (1<<BIU | 1<<STRTB)) == (1<<BIU | 1<<STRTB) ||
-		(status & (1<<BIU | 1<<STRTA)) == 0) {
-		if (status & 1<<STRTA)
-			iprint("writing busy dma entry 0x%lux\n", status);
-		if (status & 1<<STRTB)
-			n = (last == 1)?0x200:0x300;
-		last = 2;
-		dmaregs[chan].dstrtA = addr;
-		dmaregs[chan].dxcntA = count;
-		dmaregs[chan].dcsr_set = 1<<RUN | 1<<IE | 1<<STRTA;
-		n |= 1<<DONEA;
-	} else {
-		if (status & 1<<STRTB)
-			iprint("writing busy dma entry 0x%lux\n", status);
-		if (status & 1<<STRTA)
-			n = (last == 2)?0x200:0x300;
-		last = 1;
-		dmaregs[chan].dstrtB = addr;
-		dmaregs[chan].dxcntB = count;
-		dmaregs[chan].dcsr_set = 1<<RUN | 1<<IE | 1<<STRTB;
-		n |= 1<<DONEB;
-	}
-	return n;
-}
-
-int
-dmaidle(int chan) {
-	ulong status;
-
-	status = dmaregs[chan].dcsr_rd;
-	if (debug > 1) print("dmaidle: 0x%lux\n", status);
-	return (status & (1<<STRTA|1<<STRTB)) == 0;
-}
-
-static int
-_dmaidle(void* chan) {
-	ulong status;
-
-	status = dmaregs[(int)chan].dcsr_rd;
-	return (status & (1<<STRTA|1<<STRTB)) == 0;
-}
-
-void
-dmawait(int chan) {
-	while (!dmaidle(chan))
-		sleep(&dma.chan[chan].r, _dmaidle, (void*)chan);
-}
-
-/*
- *  interrupt routine
- */
-static void
-dmaintr(Ureg*, void *x)
-{
-	int i;
-	struct dmaregs *regs = x;
-	ulong dcsr, donebit;
-
-	i = regs - dmaregs;
-	dcsr = regs->dcsr_rd;
-	if (debug > 1)
-		iprint("dma: interrupt channel %d, status 0x%lux\n", i, dcsr);
-	if (dcsr & 1<<ERROR)
-		iprint("error, channel %d, status 0x%lux\n", i, dcsr);
-	donebit = 1<<((dcsr&1<<BIU)?DONEA:DONEB);
-	if (dcsr & donebit) {
-		regs->dcsr_clr = 1<<DONEA|1<<DONEB;
-		if (dma.chan[i].intr) {
-			(*dma.chan[i].intr)(dma.chan[i].param, dcsr & (1<<DONEA|1<<DONEB));
-		}
-		wakeup(&dma.chan[i].r);
-		return;
-	}
-	if (dcsr & 1<<ERROR) {
-		regs->dcsr_clr = ERROR;
-		iprint("DMA error, channel %d, status 0x%lux\n", i, dcsr);
-		if (dma.chan[i].intr) {
-			(*dma.chan[i].intr)(dma.chan[i].param, 0);
-		}
-		wakeup(&dma.chan[i].r);
-		return;
-	}
-	iprint("spurious DMA interrupt, channel %d, status 0x%lux\n", i, dcsr);
-}
--- a/sys/src/9/bitsy/sa1110dma.h
+++ /dev/null
@@ -1,19 +1,0 @@
-
-enum {
-	Port4MCP		= 0x80060008,
-	Port4SSP		= 0x8007006c,
-	AudioDMA		= 0xa,
-	SSPXmitDMA		= 0xe,
-	SSPRecvDMA		= 0xf,
-};
-
-void	dmainit(void);
-int		dmaalloc(int, int, int, int, int, ulong, void (*)(void*, ulong), void*);
-void	dmareset(int, int, int, int, int, int, ulong);
-void	dmafree(int);
-
-ulong	dmastart(int, ulong, int);
-
-void	dmawait(int);
-void	dmastop(int);
-int		dmaidle(int);
--- a/sys/src/9/bitsy/screen.c
+++ /dev/null
@@ -1,492 +1,0 @@
-#include "u.h"
-#include "../port/lib.h"
-#include "mem.h"
-#include "dat.h"
-#include "fns.h"
-#include "io.h"
-#include "ureg.h"
-#include "../port/error.h"
-
-#define	Image	IMAGE
-#include <draw.h>
-#include <memdraw.h>
-#include <cursor.h>
-#include "screen.h"
-#include "gamma.h"
-
-#define	MINX	8
-
-int landscape = 0;	/* orientation of the screen, default is 0: portait */
-
-enum {
-	Wid		= 240,
-	Ht		= 320,
-	Pal0	= 0x2000,	/* 16-bit pixel data in active mode (12 in passive) */
-
-	hsw		= 0x00,
-	elw		= 0x0e,
-	blw		= 0x0d,
-
-	vsw		= 0x02,
-	efw		= 0x01,
-	bfw		= 0x0a,
-
-	pcd		= 0x10,
-};
-
-struct sa1110fb {
-	/* Frame buffer for 16-bit active color */
-	short	palette[16];		/* entry 0 set to Pal0, the rest to 0 */
-	ushort	pixel[Wid*Ht];		/* Pixel data */
-} *framebuf;
-
-enum {
-/* LCD Control Register 0, lcd->lccr0 */
-	LEN	=  0,	/*  1 bit */
-	CMS	=  1,	/*  1 bit */
-	SDS	=  2,	/*  1 bit */
-	LDM	=  3,	/*  1 bit */
-	BAM	=  4,	/*  1 bit */
-	ERM	=  5,	/*  1 bit */
-	PAS	=  7,	/*  1 bit */
-	BLE	=  8,	/*  1 bit */
-	DPD	=  9,	/*  1 bit */
-	PDD	= 12,	/*  8 bits */
-};
-
-enum {
-/* LCD Control Register 1, lcd->lccr1 */
-	PPL	=  0,	/* 10 bits */
-	HSW	= 10,	/*  6 bits */
-	ELW	= 16,	/*  8 bits */
-	BLW	= 24,	/*  8 bits */
-};
-
-enum {
-/* LCD Control Register 2, lcd->lccr2 */
-	LPP	=  0,	/* 10 bits */
-	VSW	= 10,	/*  6 bits */
-	EFW	= 16,	/*  8 bits */
-	BFW	= 24,	/*  8 bits */
-};
-
-enum {
-/* LCD Control Register 3, lcd->lccr3 */
-	PCD	=  0,	/*  8 bits */
-	ACB	=  8,	/*  8 bits */
-	API	= 16,	/*  4 bits */
-	VSP	= 20,	/*  1 bit */
-	HSP	= 21,	/*  1 bit */
-	PCP	= 22,	/*  1 bit */
-	OEP	= 23,	/*  1 bit */
-};
-
-enum {
-/* LCD Status Register, lcd->lcsr */
-	LDD	=  0,	/*  1 bit */
-	BAU	=  1,	/*  1 bit */
-	BER	=  2,	/*  1 bit */
-	ABC	=  3,	/*  1 bit */
-	IOL	=  4,	/*  1 bit */
-	IUL	=  5,	/*  1 bit */
-	OIU	=  6,	/*  1 bit */
-	IUU	=  7,	/*  1 bit */
-	OOL	=  8,	/*  1 bit */
-	OUL	=  9,	/*  1 bit */
-	OOU	= 10,	/*  1 bit */
-	OUU	= 11,	/*  1 bit */
-};
-
-struct sa1110regs {
-	ulong	lccr0;
-	ulong	lcsr;
-	ulong	dummies[2];
-	short*	dbar1;
-	ulong	dcar1;
-	ulong	dbar2;
-	ulong	dcar2;
-	ulong	lccr1;
-	ulong	lccr2;
-	ulong	lccr3;
-} *lcd;
-
-static Memdata xgdata;
-
-static Memimage xgscreen =
-{
-	{ 0, 0, Wid, Ht },		/* r */
-	{ 0, 0, Wid, Ht },		/* clipr */
-	16,				/* depth */
-	3,				/* nchan */
-	RGB16,			/* chan */
-	nil,				/* cmap */
-	&xgdata,			/* data */
-	0,				/* zero */
-	Wid/2,			/* width */
-	0,				/* layer */
-	0,				/* flags */
-};
-
-struct{
-	Point	pos;
-	int	bwid;
-}out;
-
-Memimage *gscreen;
-Memimage *conscol;
-Memimage *back;
-
-Memsubfont	*memdefont;
-
-Lock		screenlock;
-
-ushort		*vscreen;	/* virtual screen */
-Rectangle	window;
-Point		curpos;
-int			h, w;
-
-static	ulong	rep(ulong, int);
-static	void	screenwin(void);
-static	void	screenputc(char *buf);
-static	void	bitsyscreenputs(char *s, int n);
-static	void	scroll(void);
-
-static void
-lcdinit(void)
-{
-	/* the following line works because main memory is direct mapped */
-	gpioregs->direction |= 
-		GPIO_LDD8_o|GPIO_LDD9_o|GPIO_LDD10_o|GPIO_LDD11_o
-		|GPIO_LDD12_o|GPIO_LDD13_o|GPIO_LDD14_o|GPIO_LDD15_o;
-	gpioregs->altfunc |= 
-		GPIO_LDD8_o|GPIO_LDD9_o|GPIO_LDD10_o|GPIO_LDD11_o
-		|GPIO_LDD12_o|GPIO_LDD13_o|GPIO_LDD14_o|GPIO_LDD15_o;
-	framebuf->palette[0] = Pal0;
-	lcd->dbar1 = framebuf->palette;
-	lcd->lccr3 = pcd<<PCD | 0<<ACB | 0<<API | 1<<VSP | 1<<HSP | 0<<PCP | 0<<OEP;
-	lcd->lccr2 = (Wid-1)<<LPP | vsw<<VSW | efw<<EFW | bfw<<BFW;
-	lcd->lccr1 = (Ht-16)<<PPL | hsw<<HSW | elw<<ELW | blw<<BLW;
-	lcd->lccr0 = 1<<LEN | 0<<CMS | 0<<SDS | 1<<LDM | 1<<BAM | 1<<ERM | 1<<PAS | 0<<BLE | 0<<DPD | 0<<PDD;
-}
-
-void
-flipscreen(int ls) {
-	if (ls == landscape)
-		return;
-	if (ls) {
-		gscreen->r = Rect(0, 0, Ht, Wid);
-		gscreen->clipr = gscreen->r;
-		gscreen->width = Ht/2;
-		xgdata.bdata = (uchar *)framebuf->pixel;
-	} else {
-		gscreen->r = Rect(0, 0, Wid, Ht);
-		gscreen->clipr = gscreen->r;
-		gscreen->width = Wid/2;
-		xgdata.bdata = (uchar *)vscreen;
-	}
-	landscape = ls;
-}
-
-void
-lcdtweak(Cmdbuf *cmd)
-{
-	if(cmd->nf < 4)
-		return;
-	if(*cmd->f[0] == 'h')
-		lcd->lccr1 = ((Ht-16)<<PPL)
-			| (strtol(cmd->f[1], 0, 0)<<HSW)
-			| (strtol(cmd->f[2], 0, 0)<<ELW)
-			| (strtol(cmd->f[3], 0, 0)<<BLW);
-	if(*cmd->f[0] == 'v')
-		lcd->lccr2 = ((Wid-1)<<LPP)
-			| (strtol(cmd->f[1], 0, 0)<<VSW)
-			| (strtol(cmd->f[2], 0, 0)<<EFW)
-			| (strtol(cmd->f[3], 0, 0)<<BFW);
-}
-
-void
-screenpower(int on)
-{
-	blankscreen(on == 0);
-}
-
-void
-screeninit(void)
-{
-	int i;
-
-	/* map the lcd regs into the kernel's virtual space */
-	lcd = (struct sa1110regs*)mapspecial(LCDREGS, sizeof(struct sa1110regs));;
-
-	framebuf = xspanalloc(sizeof *framebuf, 0x100, 0);
-
-	vscreen = xalloc(sizeof(ushort)*Wid*Ht);
-
-	lcdpower(1);
-	lcdinit();
-
-	gscreen = &xgscreen;
-
-	xgdata.ref = 1;
-	i = 0;
-	if (landscape) {
-		gscreen->r = Rect(0, 0, Ht, Wid);
-		gscreen->clipr = gscreen->r;
-		gscreen->width = Ht/2;
-		xgdata.bdata = (uchar *)framebuf->pixel;
-		while (i < Wid*Ht*1/3)	framebuf->pixel[i++] = 0xf800;	/* red */
-		while (i < Wid*Ht*2/3)	framebuf->pixel[i++] = 0xffff;		/* white */
-		while (i < Wid*Ht*3/3)	framebuf->pixel[i++] = 0x001f;	/* blue */
-	} else {
-		gscreen->r = Rect(0, 0, Wid, Ht);
-		gscreen->clipr = gscreen->r;
-		gscreen->width = Wid/2;
-		xgdata.bdata = (uchar *)vscreen;
-		while (i < Wid*Ht*1/3)	vscreen[i++] = 0xf800;	/* red */
-		while (i < Wid*Ht*2/3)	vscreen[i++] = 0xffff;	/* white */
-		while (i < Wid*Ht*3/3)	vscreen[i++] = 0x001f;	/* blue */
-		flushmemscreen(gscreen->r);
-	}
-	memimageinit();
-	memdefont = getmemdefont();
-
-	out.pos.x = MINX;
-	out.pos.y = 0;
-	out.bwid = memdefont->info[' '].width;
-
-	blanktime = 3;	/* minutes */
-
-	screenwin();
-//	screenputs = bitsyscreenputs;
-	screenputs = nil;
-}
-
-void
-flushmemscreen(Rectangle r)
-{
-	int x, y;
-	ulong start, end;
-
-	if (landscape == 0) {
-		if (r.min.x <   0) r.min.x = 0;
-		if (r.max.x > Wid) r.max.x = Wid;
-		if (r.min.y <   0) r.min.y = 0;
-		if (r.max.y >  Ht) r.max.y = Ht;
-		for (x = r.min.x; x < r.max.x; x++)
-			for (y = r.min.y; y < r.max.y; y++)
-				framebuf->pixel[(x+1)*Ht-1-y] = gamma[vscreen[y*Wid+x]];
-		start = (ulong)&framebuf->pixel[(r.min.x+1)*Ht-1-(r.max.y-1)];
-		end = (ulong)&framebuf->pixel[(r.max.x-1+1)*Ht-1-(r.min.y)];
-	} else {
-		start = (ulong)&framebuf->pixel[r.min.y*Ht + r.min.x];
-		end = (ulong)&framebuf->pixel[(r.max.y-1)*Ht + r.max.x - 1];
-	}
-	cachewbregion(start, end-start);
-}
-
-/*
- * export screen to devdraw
- */
-uchar*
-attachscreen(Rectangle *r, ulong *chan, int* d, int *width, int *softscreen)
-{
-	*r = gscreen->r;
-	*d = gscreen->depth;
-	*chan = gscreen->chan;
-	*width = gscreen->width;
-	*softscreen = (landscape == 0);
-
-	return (uchar*)gscreen->data->bdata;
-}
-
-void
-getcolor(ulong p, ulong* pr, ulong* pg, ulong* pb)
-{
-	USED(p, pr, pg, pb);
-}
-
-int
-setcolor(ulong p, ulong r, ulong g, ulong b)
-{
-	USED(p,r,g,b);
-	return 0;
-}
-
-void
-blankscreen(int blank)
-{
-	int cnt;
-
-	if (blank) {
-		lcd->lccr0 &= ~(1<<LEN);	/* disable the LCD */
-		cnt = 0;
-		while((lcd->lcsr & (1<<LDD)) == 0) {
-			delay(10);
-			if (++cnt == 100) {
-				iprint("LCD doesn't stop\n");
-				break;
-			}
-		}
-		lcdpower(0);
-	} else {
-		lcdpower(1);
-		lcdinit();
-	}
-}
-
-static void
-bitsyscreenputs(char *s, int n)
-{
-	int i;
-	Rune r;
-	char buf[4];
-
-	if(!islo()) {
-		/* don't deadlock trying to print in interrupt */
-		if(!canlock(&screenlock))
-			return;	
-	}
-	else
-		lock(&screenlock);
-
-	while(n > 0){
-		i = chartorune(&r, s);
-		if(i == 0){
-			s++;
-			--n;
-			continue;
-		}
-		memmove(buf, s, i);
-		buf[i] = 0;
-		n -= i;
-		s += i;
-		screenputc(buf);
-	}
-	unlock(&screenlock);
-}
-
-static void
-screenwin(void)
-{
-	Point p, q;
-	char *greet;
-	Memimage *orange;
-	Rectangle r;
-
-	memsetchan(gscreen, RGB16);
-
-	back = memwhite;
-	conscol = memblack;
-
-	orange = allocmemimage(Rect(0,0,1,1), RGB16);
-	orange->flags |= Frepl;
-	orange->clipr = gscreen->r;
-	orange->data->bdata[0] = 0x40;
-	orange->data->bdata[1] = 0xfd;
-
-	w = memdefont->info[' '].width;
-	h = memdefont->height;
-
-	r = insetrect(gscreen->r, 4);
-
-	memimagedraw(gscreen, r, memblack, ZP, memopaque, ZP, S);
-	window = insetrect(r, 4);
-	memimagedraw(gscreen, window, memwhite, ZP, memopaque, ZP, S);
-
-	memimagedraw(gscreen, Rect(window.min.x, window.min.y,
-			window.max.x, window.min.y+h+5+6), orange, ZP, nil, ZP, S);
-	freememimage(orange);
-	window = insetrect(window, 5);
-
-	greet = " Plan 9 Console ";
-	p = addpt(window.min, Pt(10, 0));
-	q = memsubfontwidth(memdefont, greet);
-	memimagestring(gscreen, p, conscol, ZP, memdefont, greet);
-	flushmemscreen(r);
-	window.min.y += h+6;
-	curpos = window.min;
-	window.max.y = window.min.y+((window.max.y-window.min.y)/h)*h;
-}
-
-static void
-screenputc(char *buf)
-{
-	Point p;
-	int w, pos;
-	Rectangle r;
-	static int *xp;
-	static int xbuf[256];
-
-	if(xp < xbuf || xp >= &xbuf[sizeof(xbuf)])
-		xp = xbuf;
-
-	switch(buf[0]) {
-	case '\n':
-		if(curpos.y+h >= window.max.y)
-			scroll();
-		curpos.y += h;
-		screenputc("\r");
-		break;
-	case '\r':
-		xp = xbuf;
-		curpos.x = window.min.x;
-		break;
-	case '\t':
-		p = memsubfontwidth(memdefont, " ");
-		w = p.x;
-		if(curpos.x >= window.max.x-4*w)
-			screenputc("\n");
-
-		pos = (curpos.x-window.min.x)/w;
-		pos = 4-(pos%4);
-		*xp++ = curpos.x;
-		r = Rect(curpos.x, curpos.y, curpos.x+pos*w, curpos.y + h);
-		memimagedraw(gscreen, r, back, back->r.min, nil, back->r.min, S);
-		flushmemscreen(r);
-		curpos.x += pos*w;
-		break;
-	case '\b':
-		if(xp <= xbuf)
-			break;
-		xp--;
-		r = Rect(*xp, curpos.y, curpos.x, curpos.y + h);
-		memimagedraw(gscreen, r, back, back->r.min, nil, back->r.min, S);
-		flushmemscreen(r);
-		curpos.x = *xp;
-		break;
-	case '\0':
-		break;
-	default:
-		p = memsubfontwidth(memdefont, buf);
-		w = p.x;
-
-		if(curpos.x >= window.max.x-w)
-			screenputc("\n");
-
-		*xp++ = curpos.x;
-		r = Rect(curpos.x, curpos.y, curpos.x+w, curpos.y + h);
-		memimagedraw(gscreen, r, back, back->r.min, nil, back->r.min, S);
-		memimagestring(gscreen, curpos, conscol, ZP, memdefont, buf);
-		flushmemscreen(r);
-		curpos.x += w;
-	}
-}
-
-static void
-scroll(void)
-{
-	int o;
-	Point p;
-	Rectangle r;
-
-	o = 8*h;
-	r = Rpt(window.min, Pt(window.max.x, window.max.y-o));
-	p = Pt(window.min.x, window.min.y+o);
-	memimagedraw(gscreen, r, gscreen, p, nil, p, S);
-	flushmemscreen(r);
-	r = Rpt(Pt(window.min.x, window.max.y-o), window.max);
-	memimagedraw(gscreen, r, back, ZP, nil, ZP, S);
-	flushmemscreen(r);
-
-	curpos.y -= o;
-}
--- a/sys/src/9/bitsy/screen.h
+++ /dev/null
@@ -1,14 +1,0 @@
-typedef struct Cursorinfo Cursorinfo;
-typedef struct Cursor Cursor;
-
-extern ulong blanktime;
-
-struct Cursorinfo {
-	Lock;
-};
-
-extern void	blankscreen(int);
-extern void	flushmemscreen(Rectangle);
-extern uchar*	attachscreen(Rectangle*, ulong*, int*, int*, int*);
-
-#define ishwimage(i)	0
--- a/sys/src/9/bitsy/sdata.c
+++ /dev/null
@@ -1,2087 +1,0 @@
-#include "u.h"
-#include "../port/lib.h"
-#include "mem.h"
-#include "dat.h"
-#include "fns.h"
-#include "io.h"
-#include "ureg.h"
-#include "../port/error.h"
-
-#include "../port/sd.h"
-
-
-extern SDifc sdataifc;
-
-//BUG?
-#define PCIWADDR(x)	((ulong)(x))
-
-enum {
-	DbgCONFIG	= 0x01,		/* detected drive config info */
-	DbgIDENTIFY	= 0x02,		/* detected drive identify info */
-	DbgSTATE	= 0x04,		/* dump state on panic */
-	DbgPROBE	= 0x08,		/* trace device probing */
-	DbgDEBUG	= 0x80,		/* the current problem... */
-};
-#define DEBUG		(DbgDEBUG|DbgSTATE|DbgCONFIG)
-
-enum {					/* I/O ports */
-	Data		= 0,
-	Error		= 1,		/* (read) */
-	Features	= 1,		/* (write) */
-	Count		= 2,		/* sector count */
-	Ir		= 2,		/* interrupt reason (PACKET) */
-	Sector		= 3,		/* sector number, LBA<7-0> */
-	Cyllo		= 4,		/* cylinder low, LBA<15-8> */
-	Bytelo		= 4,		/* byte count low (PACKET) */
-	Cylhi		= 5,		/* cylinder high, LBA<23-16> */
-	Bytehi		= 5,		/* byte count hi (PACKET) */
-	Dh		= 6,		/* Device/Head, LBA<32-14> */
-	Status		= 7,		/* (read) */
-	Command		= 7,		/* (write) */
-
-	As		= 2,		/* Alternate Status (read) */
-	Dc		= 2,		/* Device Control (write) */
-};
-
-enum {					/* Error */
-	Med		= 0x01,		/* Media error */
-	Ili		= 0x01,		/* command set specific (PACKET) */
-	Nm		= 0x02,		/* No Media */
-	Eom		= 0x02,		/* command set specific (PACKET) */
-	Abrt		= 0x04,		/* Aborted command */
-	Mcr		= 0x08,		/* Media Change Request */
-	Idnf		= 0x10,		/* no user-accessible address */
-	Mc		= 0x20,		/* Media Change */
-	Unc		= 0x40,		/* Uncorrectable data error */
-	Wp		= 0x40,		/* Write Protect */
-	Icrc		= 0x80,		/* Interface CRC error */
-};
-
-enum {					/* Features */
-	Dma		= 0x01,		/* data transfer via DMA (PACKET) */
-	Ovl		= 0x02,		/* command overlapped (PACKET) */
-};
-
-enum {					/* Interrupt Reason */
-	Cd		= 0x01,		/* Command/Data */
-	Io		= 0x02,		/* I/O direction */
-	Rel		= 0x04,		/* Bus Release */
-};
-
-enum {					/* Device/Head */
-	Dev0		= 0xA0,		/* Master */
-	Dev1		= 0xB0,		/* Slave */
-	Lba		= 0x40,		/* LBA mode */
-};
-
-enum {					/* Status, Alternate Status */
-	Err		= 0x01,		/* Error */
-	Chk		= 0x01,		/* Check error (PACKET) */
-	Drq		= 0x08,		/* Data Request */
-	Dsc		= 0x10,		/* Device Seek Complete */
-	Serv		= 0x10,		/* Service */
-	Df		= 0x20,		/* Device Fault */
-	Dmrd		= 0x20,		/* DMA ready (PACKET) */
-	Drdy		= 0x40,		/* Device Ready */
-	Bsy		= 0x80,		/* Busy */
-};
-
-enum {					/* Command */
-	Cnop		= 0x00,		/* NOP */
-	Cdr		= 0x08,		/* Device Reset */
-	Crs		= 0x20,		/* Read Sectors */
-	Cws		= 0x30,		/* Write Sectors */
-	Cedd		= 0x90,		/* Execute Device Diagnostics */
-	Cpkt		= 0xA0,		/* Packet */
-	Cidpkt		= 0xA1,		/* Identify Packet Device */
-	Crsm		= 0xC4,		/* Read Multiple */
-	Cwsm		= 0xC5,		/* Write Multiple */
-	Csm		= 0xC6,		/* Set Multiple */
-	Crdq		= 0xC7,		/* Read DMA queued */
-	Crd		= 0xC8,		/* Read DMA */
-	Cwd		= 0xCA,		/* Write DMA */
-	Cwdq		= 0xCC,		/* Write DMA queued */
-	Cstandby	= 0xE2,		/* Standby */
-	Cid		= 0xEC,		/* Identify Device */
-	Csf		= 0xEF,		/* Set Features */
-};
-
-enum {					/* Device Control */
-	Nien		= 0x02,		/* (not) Interrupt Enable */
-	Srst		= 0x04,		/* Software Reset */
-};
-
-enum {					/* PCI Configuration Registers */
-	Bmiba		= 0x20,		/* Bus Master Interface Base Address */
-	Idetim		= 0x40,		/* IE Timing */
-	Sidetim		= 0x44,		/* Slave IE Timing */
-	Udmactl		= 0x48,		/* Ultra DMA/33 Control */
-	Udmatim		= 0x4A,		/* Ultra DMA/33 Timing */
-};
-
-enum {					/* Bus Master IDE I/O Ports */
-	Bmicx		= 0,		/* Command */
-	Bmisx		= 2,		/* Status */
-	Bmidtpx		= 4,		/* Descriptor Table Pointer */
-};
-
-enum {					/* Bmicx */
-	Ssbm		= 0x01,		/* Start/Stop Bus Master */
-	Rwcon		= 0x08,		/* Read/Write Control */
-};
-
-enum {					/* Bmisx */
-	Bmidea		= 0x01,		/* Bus Master IDE Active */
-	Idedmae		= 0x02,		/* IDE DMA Error  (R/WC) */
-	Ideints		= 0x04,		/* IDE Interrupt Status (R/WC) */
-	Dma0cap		= 0x20,		/* Drive 0 DMA Capable */
-	Dma1cap		= 0x40,		/* Drive 0 DMA Capable */
-};
-enum {					/* Physical Region Descriptor */
-	PrdEOT		= 0x80000000,	/* Bus Master IDE Active */
-};
-
-enum {					/* offsets into the identify info. */
-	Iconfig		= 0,		/* general configuration */
-	Ilcyl		= 1,		/* logical cylinders */
-	Ilhead		= 3,		/* logical heads */
-	Ilsec		= 6,		/* logical sectors per logical track */
-	Iserial		= 10,		/* serial number */
-	Ifirmware	= 23,		/* firmware revision */
-	Imodel		= 27,		/* model number */
-	Imaxrwm		= 47,		/* max. read/write multiple sectors */
-	Icapabilities	= 49,		/* capabilities */
-	Istandby	= 50,		/* device specific standby timer */
-	Ipiomode	= 51,		/* PIO data transfer mode number */
-	Ivalid		= 53,
-	Iccyl		= 54,		/* cylinders if (valid&0x01) */
-	Ichead		= 55,		/* heads if (valid&0x01) */
-	Icsec		= 56,		/* sectors if (valid&0x01) */
-	Iccap		= 57,		/* capacity if (valid&0x01) */
-	Irwm		= 59,		/* read/write multiple */
-	Ilba0		= 60,		/* LBA size */
-	Ilba1		= 61,		/* LBA size */
-	Imwdma		= 63,		/* multiword DMA mode */
-	Iapiomode	= 64,		/* advanced PIO modes supported */
-	Iminmwdma	= 65,		/* min. multiword DMA cycle time */
-	Irecmwdma	= 66,		/* rec. multiword DMA cycle time */
-	Iminpio		= 67,		/* min. PIO cycle w/o flow control */
-	Iminiordy	= 68,		/* min. PIO cycle with IORDY */
-	Ipcktbr		= 71,		/* time from PACKET to bus release */
-	Iserbsy		= 72,		/* time from SERVICE to !Bsy */
-	Iqdepth		= 75,		/* max. queue depth */
-	Imajor		= 80,		/* major version number */
-	Iminor		= 81,		/* minor version number */
-	Icsfs		= 82,		/* command set/feature supported */
-	Icsfe		= 85,		/* command set/feature enabled */
-	Iudma		= 88,		/* ultra DMA mode */
-	Ierase		= 89,		/* time for security erase */
-	Ieerase		= 90,		/* time for enhanced security erase */
-	Ipower		= 91,		/* current advanced power management */
-	Irmsn		= 127,		/* removable status notification */
-	Istatus		= 128,		/* security status */
-};
-
-typedef struct Ctlr Ctlr;
-typedef struct Drive Drive;
-
-typedef struct Prd {
-	ulong	pa;			/* Physical Base Address */
-	int	count;
-} Prd;
-
-enum {
-	Nprd		= SDmaxio/(64*1024)+2,
-};
-
-typedef struct Ctlr {
-	int	cmdport;
-	int	ctlport;
-	int	irq;
-	int	tbdf;
-	int	bmiba;			/* bus master interface base address */
-
-	void	(*ienable)(Ctlr*);
-	SDev*	sdev;
-
-	Drive*	drive[2];
-
-	Prd*	prdt;			/* physical region descriptor table */
-
-	QLock;				/* current command */
-	Drive*	curdrive;
-	int	command;		/* last command issued (debugging) */
-	Rendez;
-	int	done;
-
-	Lock;				/* register access */
-} Ctlr;
-
-typedef struct Drive {
-	Ctlr*	ctlr;
-
-	int	dev;
-	ushort	info[256];
-	int	c;			/* cylinder */
-	int	h;			/* head */
-	int	s;			/* sector */
-	int	sectors;		/* total */
-	int	secsize;		/* sector size */
-
-	int	dma;			/* DMA R/W possible */
-	int	dmactl;
-	int	rwm;			/* read/write multiple possible */
-	int	rwmctl;
-
-	int	pkt;			/* PACKET device, length of pktcmd */
-	uchar	pktcmd[16];
-	int	pktdma;			/* this PACKET command using dma */
-
-	uchar	sense[18];
-	uchar	inquiry[48];
-
-	QLock;				/* drive access */
-	int	command;		/* current command */
-	int	write;
-	uchar*	data;
-	int	dlen;
-	uchar*	limit;
-	int	count;			/* sectors */
-	int	block;			/* R/W bytes per block */
-	int	status;
-	int	error;
-} Drive;
-
-
-
-static void
-atadumpstate(Drive* drive, uchar* cmd, int lba, int count)
-{
-	Prd *prd;
-	Ctlr *ctlr;
-	int i, bmiba;
-
-	if(!(DEBUG & DbgSTATE)){
-		USED(drive, cmd, lba, count);
-		return;
-	}
-
-	ctlr = drive->ctlr;
-	print("command %2.2uX\n", ctlr->command);
-	print("data %8.8p limit %8.8p dlen %d status %uX error %uX\n",
-		drive->data, drive->limit, drive->dlen,
-		drive->status, drive->error);
-	if(cmd != nil){
-		print("lba %d -> %d, count %d -> %d (%d)\n",
-			(cmd[2]<<24)|(cmd[3]<<16)|(cmd[4]<<8)|cmd[5], lba,
-			(cmd[7]<<8)|cmd[8], count, drive->count);
-	}
-	if(!(inb(ctlr->ctlport+As) & Bsy)){
-		for(i = 1; i < 7; i++)
-			print(" 0x%2.2uX", inb(ctlr->cmdport+i));
-		print(" 0x%2.2uX\n", inb(ctlr->ctlport+As));
-	}
-	if(drive->command == Cwd || drive->command == Crd){
-		bmiba = ctlr->bmiba;
-		prd = ctlr->prdt;
-		print("bmicx %2.2uX bmisx %2.2uX prdt %8.8p\n",
-			inb(bmiba+Bmicx), inb(bmiba+Bmisx), prd);
-		for(;;){
-			print("pa 0x%8.8luX count %8.8uX\n",
-				prd->pa, prd->count);
-			if(prd->count & PrdEOT)
-				break;
-			prd++;
-		}
-	}
-}
-
-static int
-atadebug(int cmdport, int ctlport, char* fmt, ...)
-{
-	int i, n;
-	va_list arg;
-	char buf[PRINTSIZE];
-
-	if(!(DEBUG & DbgPROBE)){
-		USED(cmdport, ctlport, fmt);
-		return 0;
-	}
-
-	va_start(arg, fmt);
-	n = vseprint(buf, buf+sizeof(buf), fmt, arg) - buf;
-	va_end(arg);
-
-	if(cmdport){
-		if(buf[n-1] == '\n')
-			n--;
-		n += snprint(buf+n, PRINTSIZE-n, " ataregs 0x%uX:",
-			cmdport);
-		for(i = Features; i < Command; i++)
-			n += snprint(buf+n, PRINTSIZE-n, " 0x%2.2uX",
-				inb(cmdport+i));
-		if(ctlport)
-			n += snprint(buf+n, PRINTSIZE-n, " 0x%2.2uX",
-				inb(ctlport+As));
-		n += snprint(buf+n, PRINTSIZE-n, "\n");
-	}
-	putstrn(buf, n);
-
-	return n;
-}
-
-static int
-ataready(int cmdport, int ctlport, int dev, int reset, int ready, int micro)
-{
-	int as;
-
-	atadebug(cmdport, ctlport, "ataready: dev %uX reset %uX ready %uX",
-		dev, reset, ready);
-
-	for(;;){
-		/*
-		 * Wait for the controller to become not busy and
-		 * possibly for a status bit to become true (usually
-		 * Drdy). Must change to the appropriate device
-		 * register set if necessary before testing for ready.
-		 * Always run through the loop at least once so it
-		 * can be used as a test for !Bsy.
-		 */
-		as = inb(ctlport+As);
-		if((as & reset) == 0){
-			if(dev){
-				outb(cmdport+Dh, dev);
-				dev = 0;
-			}
-			else if(ready == 0 || (as & ready)){
-				atadebug(0, 0, "ataready: %d 0x%2.2uX\n", micro, as);
-				return as;
-			}
-		}
-		if(micro-- <= 0){
-			atadebug(0, 0, "ataready: %d 0x%2.2uX\n", micro, as);
-			break;
-		}
-		microdelay(4);
-	}
-	atadebug(cmdport, ctlport, "ataready: timeout");
-
-	return -1;
-}
-
-static int
-atacsf(Drive* drive, vlong csf, int supported)
-{
-	ushort *info;
-	int cmdset, i, x;
-
-	if(supported)
-		info = &drive->info[Icsfs];
-	else
-		info = &drive->info[Icsfe];
-	
-	for(i = 0; i < 3; i++){
-		x = (csf>>(16*i)) & 0xFFFF;
-		if(x == 0)
-			continue;
-		cmdset = info[i];
-		if(cmdset == 0 || cmdset == 0xFFFF)
-			return 0;
-		return cmdset & x;
-	}
-
-	return 0;
-}
-
-static int
-atadone(void* arg)
-{
-	return ((Ctlr*)arg)->done;
-}
-
-static int
-atarwmmode(Drive* drive, int cmdport, int ctlport, int dev)
-{
-	int as, maxrwm, rwm;
-
-	maxrwm = (drive->info[Imaxrwm] & 0xFF);
-	if(maxrwm == 0)
-		return 0;
-
-	/*
-	 * Sometimes drives come up with the current count set
-	 * to 0; if so, set a suitable value, otherwise believe
-	 * the value in Irwm if the 0x100 bit is set.
-	 */
-	if(drive->info[Irwm] & 0x100)
-		rwm = (drive->info[Irwm] & 0xFF);
-	else
-		rwm = 0;
-	if(rwm == 0)
-		rwm = maxrwm;
-	if(rwm > 16)
-		rwm = 16;
-	if(ataready(cmdport, ctlport, dev, Bsy|Drq, Drdy, 102*1000) < 0)
-		return 0;
-	outb(cmdport+Count, rwm);
-	outb(cmdport+Command, Csm);
-	microdelay(4);
-	as = ataready(cmdport, ctlport, 0, Bsy, Drdy|Df|Err, 1000);
-	inb(cmdport+Status);
-	if(as < 0 || (as & (Df|Err)))
-		return 0;
-
-	drive->rwm = rwm;
-
-	return rwm;
-}
-
-static int
-atadmamode(Drive* drive)
-{
-	int dma;
-
-	/*
-	 * Check if any DMA mode enabled.
-	 * Assumes the BIOS has picked and enabled the best.
-	 * This is completely passive at the moment, no attempt is
-	 * made to ensure the hardware is correctly set up.
-	 */
-	dma = drive->info[Imwdma] & 0x0707;
-	drive->dma = (dma>>8) & dma;
-	if(drive->dma == 0 && (drive->info[Ivalid] & 0x04)){
-		dma = drive->info[Iudma] & 0x1F1F;
-		drive->dma = (dma>>8) & dma;
-		if(drive->dma)
-			drive->dma |= 'U'<<16;
-	}
-
-	return dma;
-}
-
-static int
-ataidentify(int cmdport, int ctlport, int dev, int pkt, void* info)
-{
-	int as, command, drdy;
-
-	if(pkt){
-		command = Cidpkt;
-		drdy = 0;
-	}
-	else{
-		command = Cid;
-		drdy = Drdy;
-	}
-	as = ataready(cmdport, ctlport, dev, Bsy|Drq, drdy, 103*1000);
-	if(as < 0)
-		return as;
-	outb(cmdport+Command, command);
-	microdelay(4);
-
-	as = ataready(cmdport, ctlport, 0, Bsy, Drq|Err, 400*1000);
-	if(as < 0)
-		return -1;
-	if(as & Err)
-		return as;
-
-	memset(info, 0, 512);
-	inss(cmdport+Data, info, 256);
-	inb(cmdport+Status);
-
-	if(DEBUG & DbgIDENTIFY){
-		int i;
-		ushort *sp;
-
-		sp = (ushort*)info;
-		for(i = 0; i < 32; i++){
-			if(i && (i%16) == 0)
-				print("\n");
-			print(" %4.4uX", *sp);
-			sp++;
-		}
-		print("\n");
-	}
-
-	return 0;
-}
-
-static Drive*
-atadrive(int cmdport, int ctlport, int dev)
-{
-	ushort *sp;
-	Drive *drive;
-	int as, i, pkt;
-	uchar buf[512], *p;
-
-	atadebug(0, 0, "identify: port 0x%uX dev 0x%2.2uX\n", cmdport, dev);
-	pkt = 1;
-retry:
-	as = ataidentify(cmdport, ctlport, dev, pkt, buf);
-	if(as < 0)
-		return nil;
-	if(as & Err){
-		if(pkt == 0)
-			return nil;
-		pkt = 0;
-		goto retry;
-	}
-
-	if((drive = malloc(sizeof(Drive))) == nil)
-		return nil;
-	drive->dev = dev;
-	memmove(drive->info, buf, sizeof(drive->info));
-	drive->sense[0] = 0x70;
-	drive->sense[7] = sizeof(drive->sense)-7;
-
-	drive->inquiry[2] = 2;
-	drive->inquiry[3] = 2;
-	drive->inquiry[4] = sizeof(drive->inquiry)-4;
-	p = &drive->inquiry[8];
-	sp = &drive->info[Imodel];
-	for(i = 0; i < 20; i++){
-		*p++ = *sp>>8;
-		*p++ = *sp++;
-	}
-
-	drive->secsize = 512;
-	if(drive->info[Iconfig] != 0x848A && (drive->info[Iconfig] & 0xC000) == 0x8000){
-		if(drive->info[Iconfig] & 0x01)
-			drive->pkt = 16;
-		else
-			drive->pkt = 12;
-	}
-	else{
-		if(drive->info[Ivalid] & 0x0001){
-			drive->c = drive->info[Ilcyl];
-			drive->h = drive->info[Ilhead];
-			drive->s = drive->info[Ilsec];
-		}
-		else{
-			drive->c = drive->info[Iccyl];
-			drive->h = drive->info[Ichead];
-			drive->s = drive->info[Icsec];
-		}
-		if(drive->info[Icapabilities] & 0x0200){
-			drive->sectors = (drive->info[Ilba1]<<16)
-					 |drive->info[Ilba0];
-			drive->dev |= Lba;
-		}
-		else
-			drive->sectors = drive->c*drive->h*drive->s;
-		atarwmmode(drive, cmdport, ctlport, dev);
-	}
-	atadmamode(drive);	
-
-	if(DEBUG & DbgCONFIG){
-		print("dev %2.2uX port %uX config %4.4uX capabilities %4.4uX",
-			dev, cmdport,
-			drive->info[Iconfig], drive->info[Icapabilities]);
-		print(" mwdma %4.4uX", drive->info[Imwdma]);
-		if(drive->info[Ivalid] & 0x04)
-			print(" udma %4.4uX", drive->info[Iudma]);
-		print(" dma %8.8uX rwm %ud\n", drive->dma, drive->rwm);
-	}
-
-	return drive;
-}
-
-static void
-atasrst(int ctlport)
-{
-	/*
-	 * Srst is a big stick and may cause problems if further
-	 * commands are tried before the drives become ready again.
-	 * Also, there will be problems here if overlapped commands
-	 * are ever supported.
-	 */
-	microdelay(20);
-	outb(ctlport+Dc, Srst);
-	microdelay(20);
-	outb(ctlport+Dc, 0);
-	microdelay(4*1000);
-}
-
-static SDev*
-ataprobe(int cmdport, int ctlport, int irq)
-{
-	Ctlr* ctlr;
-	SDev *sdev;
-	Drive *drive;
-	int dev, error, rhi, rlo;
-
-	/*
-	 * Try to detect a floating bus.
-	 * Bsy should be cleared. If not, see if the cylinder registers
-	 * are read/write capable.
-	 * If the master fails, try the slave to catch slave-only
-	 * configurations.
-	 * There's no need to restore the tested registers as they will
-	 * be reset on any detected drives by the Cedd command.
-	 * All this indicates is that there is at least one drive on the
-	 * controller; when the non-existent drive is selected in a
-	 * single-drive configuration the registers of the existing drive
-	 * are often seen, only command execution fails.
-	 */
-	dev = Dev0;
-	if(inb(ctlport+As) & Bsy){
-		outb(cmdport+Dh, dev);
-		microdelay(5);
-trydev1:
-		atadebug(cmdport, ctlport, "ataprobe bsy");
-		outb(cmdport+Cyllo, 0xAA);
-		outb(cmdport+Cylhi, 0x55);
-		outb(cmdport+Sector, 0xFF);
-		rlo = inb(cmdport+Cyllo);
-		rhi = inb(cmdport+Cylhi);
-		if(rlo != 0xAA && (rlo == 0xFF || rhi != 0x55)){
-			if(dev == Dev1){
-release:
-				return nil;
-			}
-			dev = Dev1;
-			if(ataready(cmdport, ctlport, dev, Bsy, 0, 20*1000) < 0)
-				goto trydev1;
-		}
-	}
-
-	/*
-	 * Disable interrupts on any detected controllers.
-	 */
-	outb(ctlport+Dc, Nien);
-tryedd1:
-	if(ataready(cmdport, ctlport, dev, Bsy|Drq, 0, 105*1000) < 0){
-		/*
-		 * There's something there, but it didn't come up clean,
-		 * so try hitting it with a big stick. The timing here is
-		 * wrong but this is a last-ditch effort and it sometimes
-		 * gets some marginal hardware back online.
-		 */
-		atasrst(ctlport);
-		if(ataready(cmdport, ctlport, dev, Bsy|Drq, 0, 106*1000) < 0)
-			goto release;
-	}
-
-	/*
-	 * Can only get here if controller is not busy.
-	 * If there are drives Bsy will be set within 400nS,
-	 * must wait 2mS before testing Status.
-	 * Wait for the command to complete (6 seconds max).
-	 */
-	outb(cmdport+Command, Cedd);
-	delay(5);
-	if(ataready(cmdport, ctlport, dev, Bsy|Drq, 0, 6*1000*1000) < 0)
-		goto release;
-
-	/*
-	 * If bit 0 of the error register is set then the selected drive
-	 * exists. This is enough to detect single-drive configurations.
-	 * However, if the master exists there is no way short of executing
-	 * a command to determine if a slave is present.
-	 * It appears possible to get here testing Dev0 although it doesn't
-	 * exist and the EDD won't take, so try again with Dev1.
-	 */
-	error = inb(cmdport+Error);
-	atadebug(cmdport, ctlport, "ataprobe: dev %uX", dev);
-	if((error & ~0x80) != 0x01){
-		if(dev == Dev1)
-			goto release;
-		dev = Dev1;
-		goto tryedd1;
-	}
-
-	/*
-	 * At least one drive is known to exist, try to
-	 * identify it. If that fails, don't bother checking
-	 * any further.
-	 * If the one drive found is Dev0 and the EDD command
-	 * didn't indicate Dev1 doesn't exist, check for it.
-	 */
-	if((drive = atadrive(cmdport, ctlport, dev)) == nil)
-		goto release;
-	if((ctlr = malloc(sizeof(Ctlr))) == nil){
-		free(drive);
-		goto release;
-	}
-	if((sdev = malloc(sizeof(SDev))) == nil){
-		free(ctlr);
-		free(drive);
-		goto release;
-	}
-	drive->ctlr = ctlr;
-	if(dev == Dev0){
-		ctlr->drive[0] = drive;
-#ifdef notdef
-		if(!(error & 0x80)){
-			/*
-			 * Always leave Dh pointing to a valid drive,
-			 * otherwise a subsequent call to ataready on
-			 * this controller may try to test a bogus Status.
-			 * Ataprobe is the only place possibly invalid
-			 * drives should be selected.
-			 */
-			drive = atadrive(cmdport, ctlport, Dev1);
-			if(drive != nil){
-				drive->ctlr = ctlr;
-				ctlr->drive[1] = drive;
-			}
-			else{
-				outb(cmdport+Dh, Dev0);
-				microdelay(1);
-			}
-		}
-#endif
-	}
-	else
-		ctlr->drive[1] = drive;
-
-	ctlr->cmdport = cmdport;
-	ctlr->ctlport = ctlport;
-	ctlr->irq = irq;
-	ctlr->tbdf = -1;
-	ctlr->command = Cedd;		/* debugging */
-
-	sdev->ifc = &sdataifc;
-	sdev->ctlr = ctlr;
-	sdev->idno = 'C';
-	sdev->nunit = 1;
-	ctlr->sdev = sdev;
-
-	return sdev;
-}
-
-static int
-atasetsense(Drive* drive, int status, int key, int asc, int ascq)
-{
-	drive->sense[2] = key;
-	drive->sense[12] = asc;
-	drive->sense[13] = ascq;
-
-	return status;
-}
-
-static int
-atastandby(Drive* drive, int period)
-{
-	Ctlr* ctlr;
-	int cmdport, done;
-
-	ctlr = drive->ctlr;
-	drive->command = Cstandby;
-	qlock(ctlr);
-
-	cmdport = ctlr->cmdport;
-	ilock(ctlr);
-	outb(cmdport+Count, period);
-	outb(cmdport+Dh, drive->dev);
-	ctlr->done = 0;
-	ctlr->curdrive = drive;
-	ctlr->command = Cstandby;	/* debugging */
-	outb(cmdport+Command, Cstandby);
-	iunlock(ctlr);
-
-	while(waserror())
-		;
-	tsleep(ctlr, atadone, ctlr, 30*1000);
-	poperror();
-
-	done = ctlr->done;
-	qunlock(ctlr);
-
-	if(!done || (drive->status & Err))
-		return atasetsense(drive, SDcheck, 4, 8, drive->error);
-	return SDok;
-}
-
-static int
-atamodesense(Drive* drive, uchar* cmd)
-{
-	int len;
-
-	/*
-	 * Fake a vendor-specific request with page code 0,
-	 * return the drive info.
-	 */
-	if((cmd[2] & 0x3F) != 0 && (cmd[2] & 0x3F) != 0x3F)
-		return atasetsense(drive, SDcheck, 0x05, 0x24, 0);
-	len = (cmd[7]<<8)|cmd[8];
-	if(len == 0)
-		return SDok;
-	if(len < 8+sizeof(drive->info))
-		return atasetsense(drive, SDcheck, 0x05, 0x1A, 0);
-	if(drive->data == nil || drive->dlen < len)
-		return atasetsense(drive, SDcheck, 0x05, 0x20, 1);
-	memset(drive->data, 0, 8);
-	drive->data[0] = sizeof(drive->info)>>8;
-	drive->data[1] = sizeof(drive->info);
-	memmove(drive->data+8, drive->info, sizeof(drive->info));
-	drive->data += 8+sizeof(drive->info);
-
-	return SDok;
-}
-
-static void
-atanop(Drive* drive, int subcommand)
-{
-	Ctlr* ctlr;
-	int as, cmdport, ctlport, timeo;
-
-	/*
-	 * Attempt to abort a command by using NOP.
-	 * In response, the drive is supposed to set Abrt
-	 * in the Error register, set (Drdy|Err) in Status
-	 * and clear Bsy when done. However, some drives
-	 * (e.g. ATAPI Zip) just go Bsy then clear Status
-	 * when done, hence the timeout loop only on Bsy
-	 * and the forced setting of drive->error.
-	 */
-	ctlr = drive->ctlr;
-	cmdport = ctlr->cmdport;
-	outb(cmdport+Features, subcommand);
-	outb(cmdport+Dh, drive->dev);
-	ctlr->command = Cnop;		/* debugging */
-	outb(cmdport+Command, Cnop);
-
-	microdelay(1);
-	ctlport = ctlr->ctlport;
-	for(timeo = 0; timeo < 1000; timeo++){
-		as = inb(ctlport+As);
-		if(!(as & Bsy))
-			break;
-		microdelay(1);
-	}
-	drive->error |= Abrt;
-}
-
-static void
-ataabort(Drive* drive, int dolock)
-{
-	/*
-	 * If NOP is available (packet commands) use it otherwise
-	 * must try a software reset.
-	 */
-	if(dolock)
-		ilock(drive->ctlr);
-	if(atacsf(drive, 0x0000000000004000LL, 0))
-		atanop(drive, 0);
-	else{
-		atasrst(drive->ctlr->ctlport);
-		drive->error |= Abrt;
-	}
-	if(dolock)
-		iunlock(drive->ctlr);
-}
-
-static int
-atadmasetup(Drive* drive, int )
-{
-	drive->dmactl = 0;
-	return -1;
-
-#ifdef notdef
-	Prd *prd;
-	ulong pa;
-	Ctlr *ctlr;
-	int bmiba, bmisx, count;
-
-	pa = PCIWADDR(drive->data);
-	if(pa & 0x03)
-		return -1;
-	ctlr = drive->ctlr;
-	prd = ctlr->prdt;
-
-	/*
-	 * Sometimes drives identify themselves as being DMA capable
-	 * although they are not on a busmastering controller.
-	 */
-	if(prd == nil){
-		drive->dmactl = 0;
-		return -1;
-	}
-
-	for(;;){
-		prd->pa = pa;
-		count = 64*1024 - (pa & 0xFFFF);
-		if(count >= len){
-			prd->count = PrdEOT|(len & 0xFFFF);
-			break;
-		}
-		prd->count = count;
-		len -= count;
-		pa += count;
-		prd++;
-	}
-
-	bmiba = ctlr->bmiba;
-	outl(bmiba+Bmidtpx, PCIWADDR(ctlr->prdt));
-	if(drive->write)
-		outb(ctlr->bmiba+Bmicx, 0);
-	else
-		outb(ctlr->bmiba+Bmicx, Rwcon);
-	bmisx = inb(bmiba+Bmisx);
-	outb(bmiba+Bmisx, bmisx|Ideints|Idedmae);
-
-	return 0;
-#endif
-}
-
-static void
-atadmastart(Ctlr* ctlr, int write)
-{
-	if(write)
-		outb(ctlr->bmiba+Bmicx, Ssbm);
-	else
-		outb(ctlr->bmiba+Bmicx, Rwcon|Ssbm);
-}
-
-static int
-atadmastop(Ctlr* ctlr)
-{
-	int bmiba;
-
-	bmiba = ctlr->bmiba;
-	outb(bmiba+Bmicx, inb(bmiba+Bmicx) & ~Ssbm);
-
-	return inb(bmiba+Bmisx);
-}
-
-static void
-atadmainterrupt(Drive* drive, int count)
-{
-	Ctlr* ctlr;
-	int bmiba, bmisx;
-
-	ctlr = drive->ctlr;
-	bmiba = ctlr->bmiba;
-	bmisx = inb(bmiba+Bmisx);
-	switch(bmisx & (Ideints|Idedmae|Bmidea)){
-	case Bmidea:
-		/*
-		 * Data transfer still in progress, nothing to do
-		 * (this should never happen).
-		 */
-		return;
-
-	case Ideints:
-	case Ideints|Bmidea:
-		/*
-		 * Normal termination, tidy up.
-		 */
-		drive->data += count;
-		break;
-
-	default:
-		/*
-		 * What's left are error conditions (memory transfer
-		 * problem) and the device is not done but the PRD is
-		 * exhausted. For both cases must somehow tell the
-		 * drive to abort.
-		 */
-		ataabort(drive, 0);
-		break;
-	}
-	atadmastop(ctlr);
-	ctlr->done = 1;
-}
-
-static void
-atapktinterrupt(Drive* drive)
-{
-	Ctlr* ctlr;
-	int cmdport, len;
-
-	ctlr = drive->ctlr;
-	cmdport = ctlr->cmdport;
-	switch(inb(cmdport+Ir) & (/*Rel|*/Io|Cd)){
-	case Cd:
-		outss(cmdport+Data, drive->pktcmd, drive->pkt/2);
-		break;
-
-	case 0:
-		len = (inb(cmdport+Bytehi)<<8)|inb(cmdport+Bytelo);
-		if(drive->data+len > drive->limit){
-			atanop(drive, 0);
-			break;
-		}
-		outss(cmdport+Data, drive->data, len/2);
-		drive->data += len;
-		break;
-
-	case Io:
-		len = (inb(cmdport+Bytehi)<<8)|inb(cmdport+Bytelo);
-		if(drive->data+len > drive->limit){
-			atanop(drive, 0);
-			break;
-		}
-		inss(cmdport+Data, drive->data, len/2);
-		drive->data += len;
-		break;
-
-	case Io|Cd:
-		if(drive->pktdma)
-			atadmainterrupt(drive, drive->dlen);
-		else
-			ctlr->done = 1;
-		break;
-	}
-}
-
-static int
-atapktio(Drive* drive, uchar* cmd, int clen)
-{
-	Ctlr *ctlr;
-	int as, cmdport, ctlport, len, r, timeo;
-
-	if(cmd[0] == 0x5A && (cmd[2] & 0x3F) == 0)
-		return atamodesense(drive, cmd);
-
-	r = SDok;
-
-	drive->command = Cpkt;
-	memmove(drive->pktcmd, cmd, clen);
-	memset(drive->pktcmd+clen, 0, drive->pkt-clen);
-	drive->limit = drive->data+drive->dlen;
-
-	ctlr = drive->ctlr;
-	cmdport = ctlr->cmdport;
-	ctlport = ctlr->ctlport;
-
-	qlock(ctlr);
-
-	if(ataready(cmdport, ctlport, drive->dev, Bsy|Drq, 0, 107*1000) < 0){
-		qunlock(ctlr);
-		return -1;
-	}
-
-	ilock(ctlr);
-	if(drive->dlen && drive->dmactl && !atadmasetup(drive, drive->dlen))
-		drive->pktdma = Dma;
-	else
-		drive->pktdma = 0;
-
-	outb(cmdport+Features, drive->pktdma);
-	outb(cmdport+Count, 0);
-	outb(cmdport+Sector, 0);
-	len = 16*drive->secsize;
-	outb(cmdport+Bytelo, len);
-	outb(cmdport+Bytehi, len>>8);
-	outb(cmdport+Dh, drive->dev);
-	ctlr->done = 0;
-	ctlr->curdrive = drive;
-	ctlr->command = Cpkt;		/* debugging */
-	if(drive->pktdma)
-		atadmastart(ctlr, drive->write);
-	outb(cmdport+Command, Cpkt);
-
-	if((drive->info[Iconfig] & 0x0060) != 0x0020){
-		microdelay(1);
-		as = ataready(cmdport, ctlport, 0, Bsy, Drq|Chk, 4*1000);
-		if(as < 0)
-			r = SDtimeout;
-		else if(as & Chk)
-			r = SDcheck;
-		else
-			atapktinterrupt(drive);
-	}
-	iunlock(ctlr);
-
-	while(waserror())
-		;
-	if(!drive->pktdma)
-		sleep(ctlr, atadone, ctlr);
-	else for(timeo = 0; !ctlr->done; timeo++){
-		tsleep(ctlr, atadone, ctlr, 1000);
-		if(ctlr->done)
-			break;
-		ilock(ctlr);
-		atadmainterrupt(drive, 0);
-		if(!drive->error && timeo > 10){
-			ataabort(drive, 0);
-			atadmastop(ctlr);
-			drive->dmactl = 0;
-			drive->error |= Abrt;
-		}
-		if(drive->error){
-			drive->status |= Chk;
-			ctlr->curdrive = nil;
-		}
-		iunlock(ctlr);
-	}
-	poperror();
-
-	qunlock(ctlr);
-
-	if(drive->status & Chk)
-		r = SDcheck;
-
-	return r;
-}
-
-static int
-atageniostart(Drive* drive, int lba)
-{
-	Ctlr *ctlr;
-	int as, c, cmdport, ctlport, h, len, s;
-
-	if(drive->dev & Lba){
-		c = (lba>>8) & 0xFFFF;
-		h = (lba>>24) & 0x0F;
-		s = lba & 0xFF;
-	}
-	else{
-		c = lba/(drive->s*drive->h);
-		h = ((lba/drive->s) % drive->h);
-		s = (lba % drive->s) + 1;
-	}
-
-	ctlr = drive->ctlr;
-	cmdport = ctlr->cmdport;
-	ctlport = ctlr->ctlport;
-	if(ataready(cmdport, ctlport, drive->dev, Bsy|Drq, 0, 101*1000) < 0)
-		return -1;
-
-	ilock(ctlr);
-	if(drive->dmactl && !atadmasetup(drive, drive->count*drive->secsize)){
-		if(drive->write)
-			drive->command = Cwd;
-		else
-			drive->command = Crd;
-	}
-	else if(drive->rwmctl){
-		drive->block = drive->rwm*drive->secsize;
-		if(drive->write)
-			drive->command = Cwsm;
-		else
-			drive->command = Crsm;
-	}
-	else{
-		drive->block = drive->secsize;
-		if(drive->write)
-			drive->command = Cws;
-		else
-			drive->command = Crs;
-	}
-	drive->limit = drive->data + drive->count*drive->secsize;
-
-	outb(cmdport+Count, drive->count);
-	outb(cmdport+Sector, s);
-	outb(cmdport+Dh, drive->dev|h);
-	outb(cmdport+Cyllo, c);
-	outb(cmdport+Cylhi, c>>8);
-	ctlr->done = 0;
-	ctlr->curdrive = drive;
-	ctlr->command = drive->command;	/* debugging */
-	outb(cmdport+Command, drive->command);
-
-	switch(drive->command){
-	case Cws:
-	case Cwsm:
-		microdelay(1);
-		as = ataready(cmdport, ctlport, 0, Bsy, Drq|Err, 1000);
-		if(as < 0 || (as & Err)){
-			iunlock(ctlr);
-			return -1;
-		}
-		len = drive->block;
-		if(drive->data+len > drive->limit)
-			len = drive->limit-drive->data;
-		outss(cmdport+Data, drive->data, len/2);
-		break;
-
-	case Crd:
-	case Cwd:
-		atadmastart(ctlr, drive->write);
-		break;
-	}
-	iunlock(ctlr);
-
-	return 0;
-}
-
-static int
-atagenioretry(Drive* drive)
-{
-	if(drive->dmactl)
-		drive->dmactl = 0;
-	else if(drive->rwmctl)
-		drive->rwmctl = 0;
-	else
-		return atasetsense(drive, SDcheck, 4, 8, drive->error);
-
-	return SDretry;
-}
-
-static int
-atagenio(Drive* drive, uchar* cmd, int)
-{
-	uchar *p;
-	Ctlr *ctlr;
-	int count, lba, len;
-
-	/*
-	 * Map SCSI commands into ATA commands for discs.
-	 * Fail any command with a LUN except INQUIRY which
-	 * will return 'logical unit not supported'.
-	 */
-	if((cmd[1]>>5) && cmd[0] != 0x12)
-		return atasetsense(drive, SDcheck, 0x05, 0x25, 0);
-
-	switch(cmd[0]){
-	default:
-		return atasetsense(drive, SDcheck, 0x05, 0x20, 0);
-
-	case 0x00:			/* test unit ready */
-		return SDok;
-
-	case 0x03:			/* request sense */
-		if(cmd[4] < sizeof(drive->sense))
-			len = cmd[4];
-		else
-			len = sizeof(drive->sense);
-		if(drive->data && drive->dlen >= len){
-			memmove(drive->data, drive->sense, len);
-			drive->data += len;
-		}
-		return SDok;
-
-	case 0x12:			/* inquiry */
-		if(cmd[4] < sizeof(drive->inquiry))
-			len = cmd[4];
-		else
-			len = sizeof(drive->inquiry);
-		if(drive->data && drive->dlen >= len){
-			memmove(drive->data, drive->inquiry, len);
-			drive->data += len;
-		}
-		return SDok;
-
-	case 0x1B:			/* start/stop unit */
-		/*
-		 * NOP for now, can use the power management feature
-		 * set later.
-		 */
-		return SDok;
-
-	case 0x25:			/* read capacity */
-		if((cmd[1] & 0x01) || cmd[2] || cmd[3])
-			return atasetsense(drive, SDcheck, 0x05, 0x24, 0);
-		if(drive->data == nil || drive->dlen < 8)
-			return atasetsense(drive, SDcheck, 0x05, 0x20, 1);
-		/*
-		 * Read capacity returns the LBA of the last sector.
-		 */
-		len = drive->sectors-1;
-		p = drive->data;
-		*p++ = len>>24;
-		*p++ = len>>16;
-		*p++ = len>>8;
-		*p++ = len;
-		len = drive->secsize;
-		*p++ = len>>24;
-		*p++ = len>>16;
-		*p++ = len>>8;
-		*p = len;
-		drive->data += 8;
-		return SDok;
-
-	case 0x28:			/* read */
-	case 0x2A:			/* write */
-		break;
-
-	case 0x5A:
-		return atamodesense(drive, cmd);
-	}
-
-	ctlr = drive->ctlr;
-	lba = (cmd[2]<<24)|(cmd[3]<<16)|(cmd[4]<<8)|cmd[5];
-	count = (cmd[7]<<8)|cmd[8];
-	if(drive->data == nil)
-		return SDok;
-	if(drive->dlen < count*drive->secsize)
-		count = drive->dlen/drive->secsize;
-	qlock(ctlr);
-	while(count){
-		if(count > 256)
-			drive->count = 256;
-		else
-			drive->count = count;
-		if(atageniostart(drive, lba)){
-			ilock(ctlr);
-			atanop(drive, 0);
-			iunlock(ctlr);
-			qunlock(ctlr);
-			return atagenioretry(drive);
-		}
-
-		while(waserror())
-			;
-		tsleep(ctlr, atadone, ctlr, 30*1000);
-		poperror();
-		if(!ctlr->done){
-			/*
-			 * What should the above timeout be? In
-			 * standby and sleep modes it could take as
-			 * long as 30 seconds for a drive to respond.
-			 * Very hard to get out of this cleanly.
-			 */
-			atadumpstate(drive, cmd, lba, count);
-			ataabort(drive, 1);
-			qunlock(ctlr);
-			return atagenioretry(drive);
-		}
-
-		if(drive->status & Err){
-			qunlock(ctlr);
-			return atasetsense(drive, SDcheck, 4, 8, drive->error);
-		}
-		count -= drive->count;
-		lba += drive->count;
-	}
-	qunlock(ctlr);
-
-	return SDok;
-}
-
-static int
-atario(SDreq* r)
-{
-	Ctlr *ctlr;
-	Drive *drive;
-	SDunit *unit;
-	uchar cmd10[10], *cmdp, *p;
-	int clen, reqstatus, status;
-
-	unit = r->unit;
-	if((ctlr = unit->dev->ctlr) == nil || ctlr->drive[unit->subno] == nil){
-		r->status = SDtimeout;
-		return SDtimeout;
-	}
-	drive = ctlr->drive[unit->subno];
-
-	/*
-	 * Most SCSI commands can be passed unchanged except for
-	 * the padding on the end. The few which require munging
-	 * are not used internally. Mode select/sense(6) could be
-	 * converted to the 10-byte form but it's not worth the
-	 * effort. Read/write(6) are easy.
-	 */
-	switch(r->cmd[0]){
-	case 0x08:			/* read */
-	case 0x0A:			/* write */
-		cmdp = cmd10;
-		memset(cmdp, 0, sizeof(cmd10));
-		cmdp[0] = r->cmd[0]|0x20;
-		cmdp[1] = r->cmd[1] & 0xE0;
-		cmdp[5] = r->cmd[3];
-		cmdp[4] = r->cmd[2];
-		cmdp[3] = r->cmd[1] & 0x0F;
-		cmdp[8] = r->cmd[4];
-		clen = sizeof(cmd10);
-		break;
-
-	default:
-		cmdp = r->cmd;
-		clen = r->clen;
-		break;
-	}
-
-	qlock(drive);
-retry:
-	drive->write = r->write;
-	drive->data = r->data;
-	drive->dlen = r->dlen;
-
-	drive->status = 0;
-	drive->error = 0;
-	if(drive->pkt)
-		status = atapktio(drive, cmdp, clen);
-	else
-		status = atagenio(drive, cmdp, clen);
-	if(status == SDretry){
-		if(DbgDEBUG)
-			print("%s: retry: dma %8.8uX rwm %4.4uX\n",
-				unit->name, drive->dmactl, drive->rwmctl);
-		goto retry;
-	}
-	if(status == SDok){
-		atasetsense(drive, SDok, 0, 0, 0);
-		if(drive->data){
-			p = r->data;
-			r->rlen = drive->data - p;
-		}
-		else
-			r->rlen = 0;
-	}
-	else if(status == SDcheck && !(r->flags & SDnosense)){
-		drive->write = 0;
-		memset(cmd10, 0, sizeof(cmd10));
-		cmd10[0] = 0x03;
-		cmd10[1] = r->lun<<5;
-		cmd10[4] = sizeof(r->sense)-1;
-		drive->data = r->sense;
-		drive->dlen = sizeof(r->sense)-1;
-		drive->status = 0;
-		drive->error = 0;
-		if(drive->pkt)
-			reqstatus = atapktio(drive, cmd10, 6);
-		else
-			reqstatus = atagenio(drive, cmd10, 6);
-		if(reqstatus == SDok){
-			r->flags |= SDvalidsense;
-			atasetsense(drive, SDok, 0, 0, 0);
-		}
-	}
-	qunlock(drive);
-	r->status = status;
-	if(status != SDok)
-		return status;
-
-	/*
-	 * Fix up any results.
-	 * Many ATAPI CD-ROMs ignore the LUN field completely and
-	 * return valid INQUIRY data. Patch the response to indicate
-	 * 'logical unit not supported' if the LUN is non-zero.
-	 */
-	switch(cmdp[0]){
-	case 0x12:			/* inquiry */
-		if((p = r->data) == nil)
-			break;
-		if((cmdp[1]>>5) && (!drive->pkt || (p[0] & 0x1F) == 0x05))
-			p[0] = 0x7F;
-		/*FALLTHROUGH*/
-	default:
-		break;
-	}
-
-	return SDok;
-}
-
-
-static void
-atainterrupt(Ureg*, void* arg)
-{
-	Ctlr *ctlr;
-	Drive *drive;
-	int cmdport, len, status;
-
-	ctlr = arg;
-
-	ilock(ctlr);
-	if(inb(ctlr->ctlport+As) & Bsy){
-		iunlock(ctlr);
-		if(DEBUG & DbgDEBUG)
-			print("IBsy+");
-		return;
-	}
-	cmdport = ctlr->cmdport;
-	status = inb(cmdport+Status);
-	if((drive = ctlr->curdrive) == nil){
-		iunlock(ctlr);
-		if((DEBUG & DbgDEBUG) && ctlr->command != Cedd)
-			print("Inil%2.2uX/%2.2uX+", ctlr->command, status);
-		return;
-	}
-
-	if(status & Err)
-		drive->error = inb(cmdport+Error);
-	else switch(drive->command){
-	default:
-		drive->error = Abrt;
-		break;
-
-	case Crs:
-	case Crsm:
-		if(!(status & Drq)){
-			drive->error = Abrt;
-			break;
-		}
-		len = drive->block;
-		if(drive->data+len > drive->limit)
-			len = drive->limit-drive->data;
-		inss(cmdport+Data, drive->data, len/2);
-		drive->data += len;
-		if(drive->data >= drive->limit)
-			ctlr->done = 1;
-		break;
-
-	case Cws:
-	case Cwsm:
-		len = drive->block;
-		if(drive->data+len > drive->limit)
-			len = drive->limit-drive->data;
-		drive->data += len;
-		if(drive->data >= drive->limit){
-			ctlr->done = 1;
-			break;
-		}
-		if(!(status & Drq)){
-			drive->error = Abrt;
-			break;
-		}
-		len = drive->block;
-		if(drive->data+len > drive->limit)
-			len = drive->limit-drive->data;
-		outss(cmdport+Data, drive->data, len/2);
-		break;
-
-	case Cpkt:
-		atapktinterrupt(drive);
-		break;
-
-	case Crd:
-	case Cwd:
-		atadmainterrupt(drive, drive->count*drive->secsize);
-		break;
-
-	case Cstandby:
-		ctlr->done = 1;
-		break;
-	}
-	iunlock(ctlr);
-
-	if(drive->error){
-		status |= Err;
-		ctlr->done = 1;
-	}
-
-	if(ctlr->done){
-		ctlr->curdrive = nil;
-		drive->status = status;
-		wakeup(ctlr);
-	}
-}
-
-#ifdef notdef
-static SDev*
-atapnp(void)
-{
-	int	cmdport;
-	int	ctlport;
-	int	irq;
-
-	cmdport = 0x200;
-	ctlport = cmdport + 0x0C;
-	irq = 10;
-	return ataprobe(cmdport, ctlport, irq);
-}
-#endif
-
-
-static SDev*
-atalegacy(int port, int irq)
-{
-	return ataprobe(port, port+0x204, irq);
-}
-
-static int ataitype;
-static int atairq;
-static int
-ataenable(SDev* sdev)
-{
-	Ctlr *ctlr;
-	char name[KNAMELEN];
-
-	ctlr = sdev->ctlr;
-
-	if(ctlr->bmiba){
-		ctlr->prdt = xspanalloc(Nprd*sizeof(Prd), 4, 4*1024);
-	}
-	snprint(name, KNAMELEN, "%s (%s)", sdev->name, sdev->ifc->name);
-//	intrenable(ctlr->irq, atainterrupt, ctlr, ctlr->tbdf, name);
-	outb(ctlr->ctlport+Dc, 0);
-	intrenable(ataitype, atairq, atainterrupt, ctlr, name);
-	if(ctlr->ienable)
-		ctlr->ienable(ctlr);
-
-	return 1;
-}
-
-static int
-atarctl(SDunit* unit, char* p, int l)
-{
-	int n;
-	Ctlr *ctlr;
-	Drive *drive;
-
-	if((ctlr = unit->dev->ctlr) == nil || ctlr->drive[unit->subno] == nil)
-		return 0;
-	drive = ctlr->drive[unit->subno];
-
-	qlock(drive);
-	n = snprint(p, l, "config %4.4uX capabilities %4.4uX",
-		drive->info[Iconfig], drive->info[Icapabilities]);
-	if(drive->dma)
-		n += snprint(p+n, l-n, " dma %8.8uX dmactl %8.8uX",
-			drive->dma, drive->dmactl);
-	if(drive->rwm)
-		n += snprint(p+n, l-n, " rwm %ud rwmctl %ud",
-			drive->rwm, drive->rwmctl);
-	n += snprint(p+n, l-n, "\n");
-	if(unit->sectors){
-		n += snprint(p+n, l-n, "geometry %llud %ld",
-			unit->sectors, unit->secsize);
-		if(drive->pkt == 0)
-			n += snprint(p+n, l-n, " %d %d %d",
-				drive->c, drive->h, drive->s);
-		n += snprint(p+n, l-n, "\n");
-	}
-	qunlock(drive);
-
-	return n;
-}
-
-static int
-atawctl(SDunit* unit, Cmdbuf* cb)
-{
-	int period;
-	Ctlr *ctlr;
-	Drive *drive;
-
-	if((ctlr = unit->dev->ctlr) == nil || ctlr->drive[unit->subno] == nil)
-		return 0;
-	drive = ctlr->drive[unit->subno];
-
-	qlock(drive);
-	if(waserror()){
-		qunlock(drive);
-		nexterror();
-	}
-
-	/*
-	 * Dma and rwm control is passive at the moment,
-	 * i.e. it is assumed that the hardware is set up
-	 * correctly already either by the BIOS or when
-	 * the drive was initially identified.
-	 */
-	if(strcmp(cb->f[0], "dma") == 0){
-		if(cb->nf != 2 || drive->dma == 0)
-			error(Ebadctl);
-		if(strcmp(cb->f[1], "on") == 0)
-			drive->dmactl = drive->dma;
-		else if(strcmp(cb->f[1], "off") == 0)
-			drive->dmactl = 0;
-		else
-			error(Ebadctl);
-	}
-	else if(strcmp(cb->f[0], "rwm") == 0){
-		if(cb->nf != 2 || drive->rwm == 0)
-			error(Ebadctl);
-		if(strcmp(cb->f[1], "on") == 0)
-			drive->rwmctl = drive->rwm;
-		else if(strcmp(cb->f[1], "off") == 0)
-			drive->rwmctl = 0;
-		else
-			error(Ebadctl);
-	}
-	else if(strcmp(cb->f[0], "standby") == 0){
-		switch(cb->nf){
-		default:
-			error(Ebadctl);
-		case 2:
-			period = strtol(cb->f[1], 0, 0);
-			if(period && (period < 30 || period > 240*5))
-				error(Ebadctl);
-			period /= 5;
-			break;
-		}
-		if(atastandby(drive, period) != SDok)
-			error(Ebadctl);
-	}
-	else
-		error(Ebadctl);
-	qunlock(drive);
-	poperror();
-
-	return 0;
-}
-
-static int
-scsitest(SDreq* r)
-{
-	r->write = 0;
-	memset(r->cmd, 0, sizeof(r->cmd));
-	r->cmd[1] = r->lun<<5;
-	r->clen = 6;
-	r->data = nil;
-	r->dlen = 0;
-	r->flags = 0;
-
-	r->status = ~0;
-
-	return r->unit->dev->ifc->rio(r);
-}
-
-static int
-scsirio(SDreq* r)
-{
-	/*
-	 * Perform an I/O request, returning
-	 *	-1	failure
-	 *	 0	ok
-	 *	 1	no medium present
-	 *	 2	retry
-	 * The contents of r may be altered so the
-	 * caller should re-initialise if necesary.
-	 */
-	r->status = ~0;
-	switch(r->unit->dev->ifc->rio(r)){
-	default:
-		break;
-	case SDcheck:
-		if(!(r->flags & SDvalidsense))
-			break;
-		switch(r->sense[2] & 0x0F){
-		case 0x00:		/* no sense */
-		case 0x01:		/* recovered error */
-			return 2;
-		case 0x06:		/* check condition */
-			/*
-			 * 0x28 - not ready to ready transition,
-			 *	  medium may have changed.
-			 * 0x29 - power on or some type of reset.
-			 */
-			if(r->sense[12] == 0x28 && r->sense[13] == 0)
-				return 2;
-			if(r->sense[12] == 0x29)
-				return 2;
-			break;
-		case 0x02:		/* not ready */
-			/*
-			 * If no medium present, bail out.
-			 * If unit is becoming ready, rather than not
-			 * not ready, wait a little then poke it again. 				 */
-			if(r->sense[12] == 0x3A)
-				break;
-			if(r->sense[12] != 0x04 || r->sense[13] != 0x01)
-				break;
-
-			while(waserror())
-				;
-			tsleep(&up->sleep, return0, 0, 500);
-			poperror();
-			scsitest(r);
-			return 2;
-		default:
-			break;
-		}
-		break;
-	case SDok:
-		return 0;
-	}
-	return -1;
-}
-
-
-static int
-ataverify(SDunit* unit)
-{
-	SDreq *r;
-	int i, status;
-	uchar *inquiry;
-
-	if((r = malloc(sizeof(SDreq))) == nil)
-		return 0;
-	if((inquiry = sdmalloc(sizeof(unit->inquiry))) == nil){
-		free(r);
-		return 0;
-	}
-	r->unit = unit;
-	r->lun = 0;		/* ??? */
-
-	memset(unit->inquiry, 0, sizeof(unit->inquiry));
-	r->write = 0;
-	r->cmd[0] = 0x12;
-	r->cmd[1] = r->lun<<5;
-	r->cmd[4] = sizeof(unit->inquiry)-1;
-	r->clen = 6;
-	r->data = inquiry;
-	r->dlen = sizeof(unit->inquiry)-1;
-	r->flags = 0;
-
-	r->status = ~0;
-	if(unit->dev->ifc->rio(r) != SDok){
-		free(r);
-		return 0;
-	}
-	memmove(unit->inquiry, inquiry, r->dlen);
-	free(inquiry); 
-
-	SET(status);
-	for(i = 0; i < 3; i++){
-		while((status = scsitest(r)) == SDbusy)
-			;
-		if(status == SDok || status != SDcheck)
-			break;
-		if(!(r->flags & SDvalidsense))
-			break;
-		if((r->sense[2] & 0x0F) != 0x02)
-			continue;
-		/*
-		 * Unit is 'not ready'.
-		 * If it needs an initialising command, set status
-		 * so it will be spun-up below.
-		 * If there's no medium, that's OK too, but don't
-		 * try to spin it up.
-		 */
-		if(r->sense[12] == 0x04 && r->sense[13] == 0x02){
-			status = SDok;
-			break;
-		}
-		if(r->sense[12] == 0x3A)
-			break;
-	}
-
-	if(status == SDok){
-		/*
-		 * Try to ensure a direct-access device is spinning.
-		 * Don't wait for completion, ignore the result.
-		 */
-		if((unit->inquiry[0] & 0x1F) == 0){
-			memset(r->cmd, 0, sizeof(r->cmd));
-			r->write = 0;
-			r->cmd[0] = 0x1B;
-			r->cmd[1] = (r->lun<<5)|0x01;
-			r->cmd[4] = 1;
-			r->clen = 6;
-			r->data = nil;
-			r->dlen = 0;
-			r->flags = 0;
-
-			r->status = ~0;
-			unit->dev->ifc->rio(r);
-		}
-	}
-	free(r);
-
-	if(status == SDok || status == SDcheck)
-		return 1;
-	return 0;
-}
-
-static int
-ataonline(SDunit* unit)
-{
-	SDreq *r;
-	uchar *p;
-	int ok, retries;
-
-	if((r = malloc(sizeof(SDreq))) == nil)
-		return 0;
-	if((p = sdmalloc(8)) == nil){
-		free(r);
-		return 0;
-	}
-
-	ok = 0;
-
-	r->unit = unit;
-	r->lun = 0;				/* ??? */
-	for(retries = 0; retries < 10; retries++){
-		/*
-		 * Read-capacity is mandatory for DA, WORM, CD-ROM and
-		 * MO. It may return 'not ready' if type DA is not
-		 * spun up, type MO or type CD-ROM are not loaded or just
-		 * plain slow getting their act together after a reset.
-		 */
-		r->write = 0;
-		memset(r->cmd, 0, sizeof(r->cmd));
-		r->cmd[0] = 0x25;
-		r->cmd[1] = r->lun<<5;
-		r->clen = 10;
-		r->data = p;
-		r->dlen = 8;
-		r->flags = 0;
-	
-		r->status = ~0;
-		switch(scsirio(r)){
-		default:
-			break;
-		case 0:
-			unit->sectors = (p[0]<<24)|(p[1]<<16)|(p[2]<<8)|p[3];
-			/*
-			 * Read-capacity returns the LBA of the last sector,
-			 * therefore the number of sectors must be incremented.
-			 */
-			unit->sectors++;
-			unit->secsize = (p[4]<<24)|(p[5]<<16)|(p[6]<<8)|p[7];
-
-			/*
-			 * Some ATAPI CD readers lie about the block size.
-			 * Since we don't read audio via this interface
-			 * it's okay to always fudge this.
-			 */
-			if(unit->secsize == 2352)
-				unit->secsize = 2048;
-			ok = 1;
-			break;
-		case 1:
-			ok = 1;
-			break;
-		case 2:
-			continue;
-		}
-		break;
-	}
-	free(p);
-	free(r);
-
-	if(ok)
-		return ok+retries;
-	else
-		return 0;
-}
-
-static long
-atabio(SDunit* unit, int lun, int write, void* data, long nb, uvlong bno)
-{
-	SDreq *r;
-	long rlen;
-
-	if((r = malloc(sizeof(SDreq))) == nil)
-		error(Enomem);
-	r->unit = unit;
-	r->lun = lun;
-again:
-	r->write = write;
-	if(write == 0)
-		r->cmd[0] = 0x28;
-	else
-		r->cmd[0] = 0x2A;
-	r->cmd[1] = (lun<<5);
-	r->cmd[2] = bno>>24;
-	r->cmd[3] = bno>>16;
-	r->cmd[4] = bno>>8;
-	r->cmd[5] = bno;
-	r->cmd[6] = 0;
-	r->cmd[7] = nb>>8;
-	r->cmd[8] = nb;
-	r->cmd[9] = 0;
-	r->clen = 10;
-	r->data = data;
-	r->dlen = nb*unit->secsize;
-	r->flags = 0;
-
-	r->status = ~0;
-	switch(scsirio(r)){
-	default:
-		rlen = -1;
-		break;
-	case 0:
-		rlen = r->rlen;
-		break;
-	case 2:
-		rlen = -1;
-		if(!(r->flags & SDvalidsense))
-			break;
-		switch(r->sense[2] & 0x0F){
-		default:
-			break;
-		case 0x06:		/* check condition */
-			/*
-			 * Check for a removeable media change.
-			 * If so, mark it by zapping the geometry info
-			 * to force an online request.
-			 */
-			if(r->sense[12] != 0x28 || r->sense[13] != 0)
-				break;
-			if(unit->inquiry[1] & 0x80)
-				unit->sectors = 0;
-			break;
-		case 0x02:		/* not ready */
-			/*
-			 * If unit is becoming ready,
-			 * rather than not not ready, try again.
-			 */
-			if(r->sense[12] == 0x04 && r->sense[13] == 0x01)
-				goto again;
-			break;
-		}
-		break;
-	}
-	free(r);
-
-	return rlen;
-}
-
-
-struct Try {
-	int p;
-	int c;
-} tries[] = {
-		   { 0, 0x0c },
-		   { 0, 0 }, 
-};
-
-static SDev*
-ataprobew(DevConf *cf)
-{
-	int	cmdport;
-	int	ctlport;
-	int	irq;
-	SDev*	rc;
-	struct Try *try;
-
-	rc = nil;
-	for (try = &tries[0]; try->p != 0 || try->c != 0; try++){
-		ataitype = cf->itype;
-		atairq  = cf->intnum;
-		cmdport = cf->ports[0].port + try->p;
-		ctlport = cmdport + try->c;
-		irq = cf->intnum;
-		rc = ataprobe(cmdport, ctlport, irq);
-		if (rc)
-			break;
-	}
-	return rc;
-}
-
-static void
-ataclear(SDev *sdev)
-{
-	Ctlr* ctlr;
-
-	ctlr = sdev->ctlr;
-
-	if (ctlr->drive[0])
-		free(ctlr->drive[0]);
-	if (ctlr->drive[1])
-		free(ctlr->drive[1]);
-	if (sdev->name)
-		free(sdev->name);
-	if (sdev->unitflg)
-		free(sdev->unitflg);
-	if (sdev->unit)
-		free(sdev->unit);
-	free(ctlr);
-	free(sdev);
-}
-
-static char *
-atastat(SDev *sdev, char *p, char *e)
-{
-	Ctlr *ctlr = sdev->ctlr;
-
-	return seprint(p, e, "%s ata port %X ctl %X irq %d\n", 
-		    	       sdev->name, ctlr->cmdport, ctlr->ctlport, ctlr->irq);
-}
-
-
-SDifc sdataifc = {
-	"ata",				/* name */
-
-	nil,				/* pnp */
-	atalegacy,			/* legacy */
-	ataenable,			/* enable */
-	nil,				/* disable */
-
-	ataverify,			/* verify */
-	ataonline,			/* online */
-	atario,				/* rio */
-	atarctl,			/* rctl */
-	atawctl,			/* wctl */
-
-	atabio,				/* bio */
-	ataprobew,			/* probew */
-	ataclear,			/* clear */
-	atastat,			/* stat */
-};
-
--- a/sys/src/9/bitsy/tar.c
+++ /dev/null
@@ -1,81 +1,0 @@
-#include "u.h"
-#include "../port/lib.h"
-#include "mem.h"
-#include "dat.h"
-#include "fns.h"
-#include "io.h"
-#include "../port/error.h"
-
-typedef union Hblock Hblock;
-
-#define TBLOCK	512
-#define NAMSIZ	100
-union	Hblock
-{
-	char	dummy[TBLOCK];
-	struct	header
-	{
-		char	name[NAMSIZ];
-		char	mode[8];
-		char	uid[8];
-		char	gid[8];
-		char	size[12];
-		char	mtime[12];
-		char	chksum[8];
-		char	linkflag;
-		char	linkname[NAMSIZ];
-	} dbuf;
-};
-
-static int getdir(Hblock *hb, Dir *sp);
-static int checksum(Hblock *hb);
-
-uchar*
-tarlookup(uchar *addr, char *file, int *dlen)
-{
-	Hblock *hp;
-	Dir dir;
-
-	hp = (Hblock*)addr;
-	while(getdir(hp, &dir) != 0) {
-		if(strcmp(file, hp->dbuf.name) == 0) {
-			*dlen = dir.length;
-			return (uchar*)(hp+1);
-		}
-		hp += (dir.length+TBLOCK-1)/TBLOCK + 1;
-	}
-	return 0;
-}
-
-static int
-getdir(Hblock *hp, Dir *sp)
-{
-	int chksum;
-
-	if (hp->dbuf.name[0] == '\0')
-		return 0;
-	sp->length = strtol(hp->dbuf.size, 0, 8);
-	sp->mtime = strtol(hp->dbuf.mtime, 0, 8);
-	chksum = strtol(hp->dbuf.chksum, 0, 8);
-	if (chksum != checksum(hp)) {
-		print("directory checksum error\n");
-		return 0;
-	}	
-	return 1;
-}
-
-static int
-checksum(Hblock *hp)
-{
-	int i;
-	char *cp;
-
-	i = 0;
-	for (cp = hp->dummy; cp < &hp->dummy[TBLOCK]; cp++) {
-		if(cp < hp->dbuf.chksum || cp >= &hp->dbuf.chksum[sizeof(hp->dbuf.chksum)])
-			i += *cp & 0xff;
-		else
-			i += ' ' & 0xff;
-	}
-	return(i);
-}
--- a/sys/src/9/bitsy/trap.c
+++ /dev/null
@@ -1,926 +1,0 @@
-#include	"u.h"
-#include	"../port/lib.h"
-#include	"mem.h"
-#include	"dat.h"
-#include	"fns.h"
-#include	"io.h"
-#include	"ureg.h"
-#include	"../port/error.h"
-#include	"tos.h"
-
-Intrregs *intrregs;
-
-typedef struct Vctl {
-	Vctl*	next;			/* handlers on this vector */
-	char	*name;		/* of driver, xallocated */
-	void	(*f)(Ureg*, void*);	/* handler to call */
-	void*	a;			/* argument to call it with */
-} Vctl;
-
-static Lock	vctllock;
-static Vctl	*vctl[32];
-static Vctl	*gpiovctl[27];
-static int	gpioirqref[12];
-
-/*
- *   Layout at virtual address 0.
- */
-typedef struct Vpage0 {
-	void	(*vectors[8])(void);
-	ulong	vtable[8];
-} Vpage0;
-Vpage0 *vpage0;
-
-static int	irq(Ureg*);
-static void	gpiointr(Ureg*, void*);
-
-/* recover state after power suspend
- * NB: to help debugging bad suspend code,
- *     I changed some prints below to iprints,
- *     to avoid deadlocks when a panic is being
- *     issued during the suspend/resume handler.
- */
-void
-trapresume(void)
-{
-	vpage0 = (Vpage0*)EVECTORS;
-	memmove(vpage0->vectors, vectors, sizeof(vpage0->vectors));
-	memmove(vpage0->vtable, vtable, sizeof(vpage0->vtable));
-	wbflush();
-	mappedIvecEnable();
-}
-
-/*
- *  set up for exceptions
- */
-void
-trapinit(void)
-{
-	/* set up the exception vectors */
-	vpage0 = (Vpage0*)EVECTORS;
-	memmove(vpage0->vectors, vectors, sizeof(vpage0->vectors));
-	memmove(vpage0->vtable, vtable, sizeof(vpage0->vtable));
-
-	wbflush();
-
-	/* use exception vectors at 0xFFFF0000 */
-	mappedIvecEnable();
-
-	/* set up the stacks for the interrupt modes */
-	setr13(PsrMfiq, m->sfiq);
-	setr13(PsrMirq, m->sirq);
-	setr13(PsrMabt, m->sabt);
-	setr13(PsrMund, m->sund);
-
-	/* map in interrupt registers */
-	intrregs = mapspecial(INTRREGS, sizeof(*intrregs));
-
-	/* make all interrupts IRQ (i.e. not FIQ) and disable all interrupts */
-	intrregs->iclr = 0;
-	intrregs->icmr = 0;
-
-	/* turn off all gpio interrupts */
-	gpioregs->rising = 0;
-	gpioregs->falling = 0;
-	gpioregs->edgestatus = gpioregs->edgestatus;
-
-	/* allow all enabled interrupts to take processor out of sleep mode */
-	intrregs->iccr = 0;
-}
-
-void
-trapdump(char *tag)
-{
-	iprint("%s: icip %lux icmr %lux iclr %lux iccr %lux icfp %lux\n",
-		tag, intrregs->icip, intrregs->icmr, intrregs->iclr,
-		intrregs->iccr, intrregs->icfp);
-}
-
-void
-warnregs(Ureg *ur, char *tag)
-{
-	char buf[1024];
-	char *e = buf+sizeof(buf);
-	char *p;
-
-	p = seprint(buf, e, "%s:\n", tag);
-	p = seprint(p, e, "type 0x%.8lux psr 0x%.8lux pc 0x%.8lux\n",
-		ur->type, ur->psr, ur->pc);
-	p = seprint(p, e, "r0  0x%.8lux r1  0x%.8lux r2  0x%.8lux r3  0x%.8lux\n",
-		ur->r0, ur->r1, ur->r2, ur->r3);
-	p = seprint(p, e, "r4  0x%.8lux r5  0x%.8lux r6  0x%.8lux r7  0x%.8lux\n",
-		ur->r4, ur->r5, ur->r6, ur->r7);
-	p = seprint(p, e, "r8  0x%.8lux r9  0x%.8lux r10 0x%.8lux r11 0x%.8lux\n",
-		ur->r8, ur->r9, ur->r10, ur->r11);
-	seprint(p, e, "r12 0x%.8lux r13 0x%.8lux r14 0x%.8lux\n",
-		ur->r12, ur->r13, ur->r14);
-	iprint("%s", buf);
-}
-
-/*
- *  enable an irq interrupt
- */
-static void
-irqenable(int irq, IntrHandler *f, void* a, char *name)
-{
-	Vctl *v;
-
-	if(irq >= nelem(vctl) || irq < 0)
-		panic("intrenable");
-
-	v = malloc(sizeof(Vctl));
-	v->f = f;
-	v->a = a;
-	v->name = xalloc(strlen(name)+1);
-	strcpy(v->name, name);
-
-	lock(&vctllock);
-	v->next = vctl[irq];
-	vctl[irq] = v;
-	intrregs->icmr |= 1<<irq;
-	unlock(&vctllock);
-}
-
-/*
- *  disable an irq interrupt
- */
-static void
-irqdisable(int irq, IntrHandler *f, void* a, char *name)
-{
-	Vctl **vp, *v;
-
-	if(irq >= nelem(vctl) || irq < 0)
-		panic("intrdisable");
-
-	lock(&vctllock);
-	for(vp = &vctl[irq]; v = *vp; vp = &v->next)
-		if (v->f == f && v->a == a && strcmp(v->name, name) == 0){
-			print("irqdisable: remove %s\n", name);
-			*vp = v->next;
-			free(v);
-			break;
-		}
-	if (v == nil)
-		print("irqdisable: irq %d, name %s not enabled\n", irq, name);
-	if (vctl[irq] == nil){
-		print("irqdisable: clear icmr bit %d\n", irq);
-		intrregs->icmr &= ~(1<<irq);
-	}
-	unlock(&vctllock);
-}
-
-/*
- *  enable an interrupt
- */
-void
-intrenable(int type, int which, IntrHandler *f, void* a, char *name)
-{
-	int irq;
-	Vctl *v;
-
-	if(type == IRQ){
-		irqenable(which, f, a, name);
-		return;
-	}
-
-	/* from here down, it must be a GPIO edge interrupt */
-	irq = which;
-	if(which >= nelem(gpiovctl) || which < 0)
-		panic("intrenable");
-	if(which > 11)
-		irq = 11;
-
-	/* the pin had better be configured as input */
-	if((1<<which) & gpioregs->direction)
-		panic("intrenable of output pin %d", which);
-
-	/* create a second level vctl for the gpio edge interrupt */
-	v = malloc(sizeof(Vctl));
-	v->f = f;
-	v->a = a;
-	v->name = xalloc(strlen(name)+1);
-	strcpy(v->name, name);
-
-	lock(&vctllock);
-	v->next = gpiovctl[which];
-	gpiovctl[which] = v;
-
-	/* set edge register to enable interrupt */
-	switch(type){
-	case GPIOboth:
-		gpioregs->rising |= 1<<which;
-		gpioregs->falling |= 1<<which;
-		break;
-	case GPIOfalling:
-		gpioregs->falling |= 1<<which;
-		break;
-	case GPIOrising:
-		gpioregs->rising |= 1<<which;
-		break;
-	}
-	unlock(&vctllock);
-	/* point the irq to the gpio interrupt handler */
-	if(gpioirqref[irq]++ == 0)
-		irqenable(irq, gpiointr, nil, "gpio edge");
-}
-
-/*
- *  disable an interrupt
- */
-void
-intrdisable(int type, int which, IntrHandler *f, void* a, char *name)
-{
-	int irq;
-	Vctl **vp, *v;
-
-
-	if(type == IRQ){
-		irqdisable(which, f, a, name);
-		return;
-	}
-
-	/* from here down, it must be a GPIO edge interrupt */
-	irq = which;
-	if(which >= nelem(gpiovctl) || which < 0)
-		panic("intrdisable");
-	if(which > 11)
-		irq = 11;
-
-	lock(&vctllock);
-	for(vp = &gpiovctl[which]; v = *vp; vp = &v->next)
-		if (v->f == f && v->a == a && strcmp(v->name, name) == 0){
-			break;
-		}
-	if (gpiovctl[which] == nil){
-		/* set edge register to enable interrupt */
-		switch(type){
-		case GPIOboth:
-			print("intrdisable: gpio-rising+falling clear bit %d\n", which);
-			gpioregs->rising &= ~(1<<which);
-			gpioregs->falling &= ~(1<<which);
-			break;
-		case GPIOfalling:
-			print("intrdisable: gpio-falling clear bit %d\n", which);
-			gpioregs->falling &= ~(1<<which);
-			break;
-		case GPIOrising:
-			print("intrdisable: gpio-rising clear bit %d\n", which);
-			gpioregs->rising &= ~(1<<which);
-			break;
-		}
-	
-	}
-	if (v) {
-		print("intrdisable: removing %s\n", name);
-		*vp = v->next;
-	}else
-		print("intrdisable: which %d, name %s not enabled\n", which, name);
-	unlock(&vctllock);
-	/* disable the gpio interrupt handler if necessary */
-	if(--gpioirqref[irq] == 0){
-		print("intrdisable: inrqdisable gpiointr\n");
-		irqdisable(irq, gpiointr, nil, "gpio edge");
-	}
-	free(v);
-}
-
-/*
- *  called by trap to handle access faults
- */
-static void
-faultarm(Ureg *ureg, ulong va, int user, int read)
-{
-	int n, insyscall;
-	char buf[ERRMAX];
-
-	if (up == nil) {
-		warnregs(ureg, "kernel fault");
-		panic("fault: nil up in faultarm, accessing 0x%lux", va);
-	}
-	insyscall = up->insyscall;
-	up->insyscall = 1;
-	n = fault(va, read);
-	if(n < 0){
-		if(!user){
-			warnregs(ureg, "kernel fault");
-			panic("fault: kernel accessing 0x%lux", va);
-		}
-//		warnregs(ureg, "user fault");
-		sprint(buf, "sys: trap: fault %s va=0x%lux", read ? "read" : "write", va);
-		postnote(up, 1, buf, NDebug);
-	}
-	up->insyscall = insyscall;
-}
-
-/*
- *  returns 1 if the instruction writes memory, 0 otherwise
- */
-int
-writetomem(ulong inst)
-{
-	/* swap always write memory */
-	if((inst & 0x0FC00000) == 0x01000000)
-		return 1;
-
-	/* loads and stores are distinguished by bit 20 */
-	if(inst & (1<<20))
-		return 0;
-
-	return 1;
-}
-
-
-/*
- *  here on all exceptions other than syscall (SWI)
- */
-void
-trap(Ureg *ureg)
-{
-	ulong inst;
-	int clockintr, user, x, rv;
-	ulong va, fsr;
-	char buf[ERRMAX];
-	int rem;
-
-	if(up != nil)
-		rem = ((char*)ureg)-up->kstack;
-	else
-		rem = ((char*)ureg)-((char*)(MACHADDR+sizeof(Mach)));
-	if(rem < 256) {
-		dumpstack();
-		panic("trap %d bytes remaining, up = %#p, ureg = %#p, at pc 0x%lux",
-			rem, up, ureg, ureg->pc);
-	}
-
-	user = (ureg->psr & PsrMask) == PsrMusr;
-
-	/*
-	 * All interrupts/exceptions should be resumed at ureg->pc-4,
-	 * except for Data Abort which resumes at ureg->pc-8.
-	 */
-	if(ureg->type == (PsrMabt+1))
-		ureg->pc -= 8;
-	else
-		ureg->pc -= 4;
-
-	clockintr = 0;
-	switch(ureg->type){
-	default:
-		panic("unknown trap");
-		break;
-	case PsrMirq:
-		clockintr = irq(ureg);
-		break;
-	case PsrMabt:	/* prefetch fault */
-		faultarm(ureg, ureg->pc, user, 1);
-		break;
-	case PsrMabt+1:	/* data fault */
-		va = getfar();
-		inst = *(ulong*)(ureg->pc);
-		fsr = getfsr() & 0xf;
-		switch(fsr){
-		case 0x0:
-			panic("vector exception at %lux", ureg->pc);
-			break;
-		case 0x1:
-		case 0x3:
-			if(user){
-				snprint(buf, sizeof(buf), "sys: alignment: pc 0x%lux va 0x%lux\n",
-					ureg->pc, va);
-				postnote(up, 1, buf, NDebug);
-			} else
-				panic("kernel alignment: pc 0x%lux va 0x%lux", ureg->pc, va);
-			break;
-		case 0x2:
-			panic("terminal exception at %lux", ureg->pc);
-			break;
-		case 0x4:
-		case 0x6:
-		case 0x8:
-		case 0xa:
-		case 0xc:
-		case 0xe:
-			panic("external abort 0x%lux pc 0x%lux addr 0x%lux", fsr, ureg->pc, va);
-			break;
-		case 0x5:
-		case 0x7:
-			/* translation fault, i.e., no pte entry */
-			faultarm(ureg, va, user, !writetomem(inst));
-			break;
-		case 0x9:
-		case 0xb:
-			/* domain fault, accessing something we shouldn't */
-			if(user){
-				sprint(buf, "sys: access violation: pc 0x%lux va 0x%lux\n",
-					ureg->pc, va);
-				postnote(up, 1, buf, NDebug);
-			} else
-				panic("kernel access violation: pc 0x%lux va 0x%lux",
-					ureg->pc, va);
-			break;
-		case 0xd:
-		case 0xf:
-			/* permission error, copy on write or real permission error */
-			faultarm(ureg, va, user, !writetomem(inst));
-			break;
-		}
-		break;
-	case PsrMund:	/* undefined instruction */
-		if (user) {
-			/* look for floating point instructions to interpret */
-			x = spllo();
-			rv = fpiarm(ureg);
-			splx(x);
-			if (rv == 0) {
-				sprint(buf, "undefined instruction: pc 0x%lux\n", ureg->pc);
-				postnote(up, 1, buf, NDebug);
-			}
-		}else{
-			iprint("undefined instruction: pc=0x%lux, inst=0x%lux, 0x%lux, 0x%lux, 0x%lux, 0x%lux\n", ureg->pc, ((ulong*)ureg->pc)[-2], ((ulong*)ureg->pc)[-1], ((ulong*)ureg->pc)[0], ((ulong*)ureg->pc)[1], ((ulong*)ureg->pc)[2]);
-			panic("undefined instruction");
-		}
-		break;
-	}
-	splhi();
-
-	/* delaysched set because we held a lock or because our quantum ended */
-	if(up && up->delaysched && clockintr){
-		sched();
-		splhi();
-	}
-
-	if(user){
-		if(up->procctl || up->nnote)
-			notify(ureg);
-		kexit(ureg);
-	}
-}
-
-/*
- *  here on irq's
- */
-static int
-irq(Ureg *ur)
-{
-	ulong va;
-	int clockintr, i;
-	Vctl *v;
-
-	va = intrregs->icip;
-
-	if(va & (1<<IRQtimer0))
-		clockintr = 1;
-	else
-		clockintr = 0;
-	for(i = 0; i < 32; i++){
-		if(((1<<i) & va) == 0)
-			continue;
-		for(v = vctl[i]; v != nil; v = v->next){
-			v->f(ur, v->a);
-			va &= ~(1<<i);
-		}
-	}
-	if(va)
-		print("unknown interrupt: %lux\n", va);
-
-	return clockintr;
-}
-
-/*
- *  here on gpio interrupts
- */
-static void
-gpiointr(Ureg *ur, void*)
-{
-	ulong va;
-	int i;
-	Vctl *v;
-
-	va = gpioregs->edgestatus;
-	gpioregs->edgestatus = va;
-
-	for(i = 0; i < 27; i++){
-		if(((1<<i) & va) == 0)
-			continue;
-		for(v = gpiovctl[i]; v != nil; v = v->next){
-			v->f(ur, v->a);
-			va &= ~(1<<i);
-		}
-	}
-	if(va)
-		print("unknown gpio interrupt: %lux\n", va);
-}
-
-/*
- *  system calls
- */
-#include "../port/systab.h"
-
-/*
- *  Syscall is called directly from assembler without going through trap().
- */
-void
-syscall(Ureg* ureg)
-{
-	char *e;
-	ulong	sp;
-	long	ret;
-	int	i, scallnr;
-
-	if((ureg->psr & PsrMask) != PsrMusr) {
-		panic("syscall: pc 0x%lux r14 0x%lux cs 0x%lux", ureg->pc, ureg->r14, ureg->psr);
-	}
-
-	m->syscall++;
-	up->insyscall = 1;
-	up->pc = ureg->pc;
-	up->dbgreg = ureg;
-
-	scallnr = ureg->r0;
-	up->scallnr = scallnr;
-	spllo();
-
-	sp = ureg->sp;
-	up->nerrlab = 0;
-	ret = -1;
-	if(!waserror()){
-		if(scallnr >= nsyscall){
-			pprint("bad sys call number %d pc %lux\n",
-				scallnr, ureg->pc);
-			postnote(up, 1, "sys: bad sys call", NDebug);
-			error(Ebadarg);
-		}
-
-		if(sp<(USTKTOP-BY2PG) || sp>(USTKTOP-sizeof(Sargs)-BY2WD))
-			validaddr(sp, sizeof(Sargs)+BY2WD, 0);
-
-		up->s = *((Sargs*)(sp+BY2WD));
-		up->psstate = sysctab[scallnr];
-
-		ret = systab[scallnr]((va_list)up->s.args);
-		poperror();
-	}else{
-		/* failure: save the error buffer for errstr */
-		e = up->syserrstr;
-		up->syserrstr = up->errstr;
-		up->errstr = e;
-	}
-	if(up->nerrlab){
-		print("bad errstack [%d]: %d extra\n", scallnr, up->nerrlab);
-		for(i = 0; i < NERR; i++)
-			print("sp=%lux pc=%lux\n",
-				up->errlab[i].sp, up->errlab[i].pc);
-		panic("error stack");
-	}
-
-	up->insyscall = 0;
-	up->psstate = 0;
-
-	/*
-	 *  Put return value in frame.  On the x86 the syscall is
-	 *  just another trap and the return value from syscall is
-	 *  ignored.  On other machines the return value is put into
-	 *  the results register by caller of syscall.
-	 */
-	ureg->r0 = ret;
-
-	if(scallnr == NOTED)
-		noted(ureg, *(ulong*)(sp+BY2WD));
-
-	if(up->delaysched)
-		sched();
-
-	splhi();
-	if(scallnr != RFORK && (up->procctl || up->nnote))
-		notify(ureg);
-}
-
-/*
- *   Return user to state before notify()
- */
-void
-noted(Ureg* ureg, ulong arg0)
-{
-	Ureg *nureg;
-	ulong oureg, sp;
-
-	qlock(&up->debug);
-	if(arg0!=NRSTR && !up->notified) {
-		qunlock(&up->debug);
-		pprint("call to noted() when not notified\n");
-		pexit("Suicide", 0);
-	}
-	up->notified = 0;
-
-	nureg = up->ureg;	/* pointer to user returned Ureg struct */
-
-	/* sanity clause */
-	oureg = (ulong)nureg;
-	if(!okaddr(oureg-BY2WD, BY2WD+sizeof(Ureg), 0)){
-		qunlock(&up->debug);
-		pprint("bad ureg in noted or call to noted when not notified\n");
-		pexit("Suicide", 0);
-	}
-
-	/* don't let user change system flags */
-	nureg->psr = (ureg->psr & ~(PsrMask|PsrDfiq|PsrDirq)) |
-			(nureg->psr & (PsrMask|PsrDfiq|PsrDirq));
-
-	memmove(ureg, nureg, sizeof(Ureg));
-
-	switch(arg0){
-	case NCONT:
-	case NRSTR:
-		if(!okaddr(nureg->pc, 1, 0) || !okaddr(nureg->sp, BY2WD, 0)){
-			qunlock(&up->debug);
-			pprint("suicide: trap in noted\n");
-			pexit("Suicide", 0);
-		}
-		up->ureg = (Ureg*)(*(ulong*)(oureg-BY2WD));
-		qunlock(&up->debug);
-		break;
-
-	case NSAVE:
-		if(!okaddr(nureg->pc, BY2WD, 0)
-		|| !okaddr(nureg->sp, BY2WD, 0)){
-			qunlock(&up->debug);
-			pprint("suicide: trap in noted\n");
-			pexit("Suicide", 0);
-		}
-		qunlock(&up->debug);
-		sp = oureg-4*BY2WD-ERRMAX;
-		splhi();
-		ureg->sp = sp;
-		((ulong*)sp)[1] = oureg;	/* arg 1 0(FP) is ureg* */
-		((ulong*)sp)[0] = 0;		/* arg 0 is pc */
-		break;
-
-	default:
-		up->lastnote.flag = NDebug;
-		/* fall through */
-		
-	case NDFLT:
-		qunlock(&up->debug);
-		if(up->lastnote.flag == NDebug)
-			pprint("suicide: %s\n", up->lastnote.msg);
-		pexit(up->lastnote.msg, up->lastnote.flag!=NDebug);
-	}
-}
-
-/*
- *  Call user, if necessary, with note.
- *  Pass user the Ureg struct and the note on his stack.
- */
-int
-notify(Ureg* ureg)
-{
-	int l;
-	ulong s, sp;
-	Note *n;
-
-	if(up->procctl)
-		procctl();
-	if(up->nnote == 0)
-		return 0;
-
-	s = spllo();
-	qlock(&up->debug);
-	up->notepending = 0;
-	n = &up->note[0];
-	if(strncmp(n->msg, "sys:", 4) == 0){
-		l = strlen(n->msg);
-		if(l > ERRMAX-15)	/* " pc=0x12345678\0" */
-			l = ERRMAX-15;
-		sprint(n->msg+l, " pc=0x%.8lux", ureg->pc);
-	}
-
-	if(n->flag!=NUser && (up->notified || up->notify==0)){
-		qunlock(&up->debug);
-		if(n->flag == NDebug)
-			pprint("suicide: %s\n", n->msg);
-		pexit(n->msg, n->flag!=NDebug);
-	}
-
-	if(up->notified) {
-		qunlock(&up->debug);
-		splhi();
-		return 0;
-	}
-		
-	if(!up->notify){
-		qunlock(&up->debug);
-		pexit(n->msg, n->flag!=NDebug);
-	}
-	sp = ureg->sp;
-	sp -= sizeof(Ureg);
-
-	if(!okaddr((uintptr)up->notify, 1, 0)
-	|| !okaddr(sp-ERRMAX-4*BY2WD, sizeof(Ureg)+ERRMAX+4*BY2WD, 1)){
-		qunlock(&up->debug);
-		pprint("suicide: bad address in notify\n");
-		pexit("Suicide", 0);
-	}
-
-	up->ureg = (void*)sp;
-	memmove((Ureg*)sp, ureg, sizeof(Ureg));
-	*(Ureg**)(sp-BY2WD) = up->ureg;	/* word under Ureg is old up->ureg */
-	up->ureg = (void*)sp;
-	sp -= BY2WD+ERRMAX;
-	memmove((char*)sp, up->note[0].msg, ERRMAX);
-	sp -= 3*BY2WD;
-	*(ulong*)(sp+2*BY2WD) = sp+3*BY2WD;	/* arg 2 is string */
-	*(ulong*)(sp+1*BY2WD) = (ulong)up->ureg;	/* arg 1 is ureg* */
-	*(ulong*)(sp+0*BY2WD) = 0;		/* arg 0 is pc */
-	ureg->sp = sp;
-	ureg->pc = (ulong)up->notify;
-	up->notified = 1;
-	up->nnote--;
-	memmove(&up->lastnote, &up->note[0], sizeof(Note));
-	memmove(&up->note[0], &up->note[1], up->nnote*sizeof(Note));
-
-	qunlock(&up->debug);
-	splx(s);
-	return 1;
-}
-
-/* Give enough context in the ureg to produce a kernel stack for
- * a sleeping process
- */
-void
-setkernur(Ureg *ureg, Proc *p)
-{
-	ureg->pc = p->sched.pc;
-	ureg->sp = p->sched.sp+4;
-	ureg->r14 = (ulong)sched;
-}
-
-/*
- *  return the userpc the last exception happened at
- */
-uintptr
-userpc(void)
-{
-	Ureg *ureg;
-
-	ureg = (Ureg*)up->dbgreg;
-	return ureg->pc;
-}
-
-/* This routine must save the values of registers the user is not permitted
- * to write from devproc and then restore the saved values before returning.
- */
-void
-setregisters(Ureg* ureg, char* pureg, char* uva, int n)
-{
-	USED(ureg, pureg, uva, n);
-}
-
-/*
- *  this is the body for all kproc's
- */
-static void
-linkproc(void)
-{
-	spllo();
-	up->kpfun(up->kparg);
-	pexit("kproc exiting", 0);
-}
-
-/*
- *  setup stack and initial PC for a new kernel proc.  This is architecture
- *  dependent because of the starting stack location
- */
-void
-kprocchild(Proc *p, void (*func)(void*), void *arg)
-{
-	p->sched.pc = (ulong)linkproc;
-	p->sched.sp = (ulong)p->kstack+KSTACK;
-
-	p->kpfun = func;
-	p->kparg = arg;
-}
-
-
-/* 
- *  Craft a return frame which will cause the child to pop out of
- *  the scheduler in user mode with the return register zero.  Set
- *  pc to point to a l.s return function.
- */
-void
-forkchild(Proc *p, Ureg *ureg)
-{
-	Ureg *cureg;
-
-//print("%lud setting up for forking child %lud\n", up->pid, p->pid);
-	p->sched.sp = (ulong)p->kstack+KSTACK-sizeof(Ureg);
-	p->sched.pc = (ulong)forkret;
-
-	cureg = (Ureg*)(p->sched.sp);
-	memmove(cureg, ureg, sizeof(Ureg));
-
-	/* syscall returns 0 for child */
-	cureg->r0 = 0;
-
-	/* Things from bottom of syscall which were never executed */
-	p->psstate = 0;
-	p->insyscall = 0;
-}
-
-/*
- *  setup stack, initial PC, and any arch dependent regs for an execing user proc.
- */
-uintptr
-execregs(uintptr entry, ulong ssize, ulong nargs)
-{
-	ulong *sp;
-	Ureg *ureg;
-
-	sp = (ulong*)(USTKTOP - ssize);
-	*--sp = nargs;
-
-	ureg = up->dbgreg;
-	memset(ureg, 0, 15*sizeof(ulong));
-	ureg->r13 = (ulong)sp;
-	ureg->pc = entry;
-//print("%lud: EXECREGS pc 0x%lux sp 0x%lux\n", up->pid, ureg->pc, ureg->r13);
-	return USTKTOP-sizeof(Tos);		/* address of kernel/user shared data */
-}
-
-/*
- * Fill in enough of Ureg to get a stack trace, and call a function.
- * Used by debugging interface rdb.
- */
-void
-callwithureg(void (*fn)(Ureg*))
-{
-	Ureg ureg;
-	ureg.pc = getcallerpc(&fn);
-	ureg.sp = (ulong)&fn;
-	fn(&ureg);
-}
-
-static void
-_dumpstack(Ureg *ureg)
-{
-	ulong l, v, i;
-	ulong *p;
-	extern ulong etext;
-
-	if(up == 0){
-		iprint("no current proc\n");
-		return;
-	}
-
-	iprint("ktrace /kernel/path %.8lux %.8lux %.8lux\n", ureg->pc, ureg->sp, ureg->r14);
-	i = 0;
-	for(l=(ulong)&l; l<(ulong)(up->kstack+KSTACK); l+=4){
-		v = *(ulong*)l;
-		if(KTZERO < v && v < (ulong)&etext && (v&3)==0){
-			v -= 4;
-			p = (ulong*)v;
-			if((*p & 0x0f000000) == 0x0b000000){
-				iprint("%.8lux=%.8lux ", l, v);
-				i++;
-			}
-		}
-		if(i == 4){
-			i = 0;
-			iprint("\n");
-		}
-	}
-	if(i)
-		iprint("\n");
-}
-
-void
-dumpstack(void)
-{
-	callwithureg(_dumpstack);
-}
-
-/*
- *  pc output by ps
- */
-uintptr
-dbgpc(Proc *p)
-{
-	Ureg *ureg;
-
-	ureg = p->dbgreg;
-	if(ureg == 0)
-		return 0;
-
-	return ureg->pc;
-}
-
-/*
- * called in sysfile.c
- */
-void
-evenaddr(ulong addr)
-{
-	if(addr & 3){
-		postnote(up, 1, "sys: odd address", NDebug);
-		error(Ebadarg);
-	}
-}
--- a/sys/src/9/bitsy/uartsa1110.c
+++ /dev/null
@@ -1,514 +1,0 @@
-#include	"u.h"
-#include	"../port/lib.h"
-#include	"mem.h"
-#include	"dat.h"
-#include	"fns.h"
-#include	"io.h"
-#include	"../port/error.h"
-
-#include	"../port/netif.h"
-
-/* this isn't strictly an sa1110 driver.  The rts/cts stuff is h3650 specific */
-
-static void sa1110_uartpower(Uart *, int);
-
-enum
-{
-	/* ctl[0] bits */
-	Parity=		1<<0,
-	Even=		1<<1,
-	Stop2=		1<<2,
-	Bits8=		1<<3,
-	SCE=		1<<4,	/* synchronous clock enable */
-	RCE=		1<<5,	/* rx on falling edge of clock */
-	TCE=		1<<6,	/* tx on falling edge of clock */
-
-	/* ctl[3] bits */
-	Rena=		1<<0,	/* receiver enable */
-	Tena=		1<<1,	/* transmitter enable */
-	Break=		1<<2,	/* force TXD3 low */
-	Rintena=	1<<3,	/* enable receive interrupt */
-	Tintena=	1<<4,	/* enable transmitter interrupt */
-	Loopback=	1<<5,	/* loop back data */
-
-	/* data bits */
-	DEparity=	1<<8,	/* parity error */
-	DEframe=	1<<9,	/* framing error */
-	DEoverrun=	1<<10,	/* overrun error */
-
-	/* status[0] bits */
-	Tint=		1<<0,	/* transmit fifo half full interrupt */
-	Rint0=		1<<1,	/* receiver fifo 1/3-2/3 full */
-	Rint1=		1<<2,	/* receiver fifo not empty and receiver idle */
-	Breakstart=	1<<3,
-	Breakend=	1<<4,
-	Fifoerror=	1<<5,	/* fifo error */
-
-	/* status[1] bits */
-	Tbusy=		1<<0,	/* transmitting */
-	Rnotempty=	1<<1,	/* receive fifo not empty */
-	Tnotfull=	1<<2,	/* transmit fifo not full */
-	ParityError=	1<<3,
-	FrameError=	1<<4,
-	Overrun=	1<<5,
-};
-
-extern PhysUart sa1110physuart;
-
-//static
-Uart sa1110uart[2] = {
-{	.regs		= (void*)UART3REGS,
-	.name		= "serialport3",
-	.freq		= ClockFreq,
-	.bits		= 8,
-	.stop		= 1,
-	.parity		= 'n',
-	.baud		= 115200,
-	.phys		= &sa1110physuart,
-	.special	= 0,
-	.next		= &sa1110uart[1], },
-
-{	.regs		= (void*)UART1REGS,
-	.name		= "serialport1",
-	.freq		= ClockFreq,
-	.bits		= 8,
-	.stop		= 1,
-	.parity		= 'n',
-	.baud		= 115200,
-	.phys		= &sa1110physuart,
-	.putc		= µcputc,
-	.special	= 0,
-	.next		= nil, },
-};
-static Uart* µcuart;
-
-#define R(p) ((Uartregs*)((p)->regs))
-#define SR(p) ((Uartregs*)((p)->saveregs))
-
-/*
- *  enable a port's interrupts.  set DTR and RTS
- */
-static void
-sa1110_uartenable(Uart *p, int intena)
-{
-	ulong s;
-
-	s = R(p)->ctl[3] & ~(Rintena|Tintena|Rena|Tena);
-	if(intena)
-		R(p)->ctl[3] = s |Rintena|Tintena|Rena|Tena;
-	else
-		R(p)->ctl[3] = s | Rena|Tena;
-}
-
-/*
- *  disable interrupts. clear DTR, and RTS
- */
-static void
-sa1110_uartdisable(Uart *p)
-{
-	R(p)->ctl[3] &= ~(Rintena|Tintena|Rena|Tena);
-}
-
-static long
-sa1110_uartstatus(Uart *p, void *buf, long n, long offset)
-{
-	char str[256];
-	ulong ctl0;
-
-	ctl0 = R(p)->ctl[0];
-	snprint(str, sizeof(str),
-		"b%d c%d d%d e%d l%d m%d p%c r%d s%d i%d\n"
-		"dev(%d) type(%d) framing(%d) overruns(%d)%s%s%s%s\n",
-
-		p->baud,
-		p->hup_dcd, 
-		0,
-		p->hup_dsr,
-		(ctl0 & Bits8) ? 8 : 7,
-		0, 
-		(ctl0 & Parity) ? ((ctl0 & Even) ? 'e' : 'o') : 'n',
-		0,
-		(ctl0 & Stop2) ? 2 : 1,
-		1,
-
-		p->dev,
-		p->type,
-		p->ferr,
-		p->oerr, 
-		"",
-		"",
-		"",
-		"" );
-	return readstr(offset, buf, n, str);
-}
-
-/*
- *  set the buad rate
- */
-static int
-sa1110_uartbaud(Uart *p, int rate)
-{
-	ulong brconst;
-	ulong ctl3;
-
-	if(rate <= 0)
-		return -1;
-
-	/* disable */
-	ctl3 = R(p)->ctl[3];
-	R(p)->ctl[3] = 0;
-
-	brconst = p->freq/(16*rate) - 1;
-	R(p)->ctl[1] = (brconst>>8) & 0xf;
-	R(p)->ctl[2] = brconst & 0xff;
-
-	/* reenable */
-	R(p)->ctl[3] = ctl3;
-
-	p->baud = rate;
-	return 0;
-}
-
-/*
- *  send a break
- */
-static void
-sa1110_uartbreak(Uart *p, int ms)
-{
-	if(ms == 0)
-		ms = 200;
-
-	R(p)->ctl[3] |= Break;
-	tsleep(&up->sleep, return0, 0, ms);
-	R(p)->ctl[3] &= ~Break;
-}
-
-/*
- *  set bits/char
- */
-static int
-sa1110_uartbits(Uart *p, int n)
-{
-	ulong ctl0, ctl3;
-
-	ctl0 = R(p)->ctl[0];
-	switch(n){
-	case 7:
-		ctl0 &= ~Bits8;
-		break;
-	case 8:
-		ctl0 |= Bits8;
-		break;
-	default:
-		return -1;
-	}
-
-	/* disable */
-	ctl3 = R(p)->ctl[3];
-	R(p)->ctl[3] = 0;
-
-	R(p)->ctl[0] = ctl0;
-
-	/* reenable */
-	R(p)->ctl[3] = ctl3;
-
-	p->bits = n;
-	return 0;
-}
-
-/*
- *  set stop bits
- */
-static int
-sa1110_uartstop(Uart *p, int n)
-{
-	ulong ctl0, ctl3;
-
-	ctl0 = R(p)->ctl[0];
-	switch(n){
-	case 1:
-		ctl0 &= ~Stop2;
-		break;
-	case 2:
-		ctl0 |= Stop2;
-		break;
-	default:
-		return -1;
-	}
-
-	/* disable */
-	ctl3 = R(p)->ctl[3];
-	R(p)->ctl[3] = 0;
-
-	R(p)->ctl[0] = ctl0;
-
-	/* reenable */
-	R(p)->ctl[3] = ctl3;
-
-	p->stop = n;
-	return 0;
-}
-
-/*
- *  turn on/off rts
- */
-static void
-sa1110_uartrts(Uart*, int)
-{
-}
-
-/*
- *  turn on/off dtr
- */
-static void
-sa1110_uartdtr(Uart*, int)
-{
-}
-
-/*
- *  turn on/off modem flow control on/off (rts/cts)
- */
-static void
-sa1110_uartmodemctl(Uart *p, int on)
-{
-	if(on) {
-	} else {
-		p->cts = 1;
-	}
-}
-
-/*
- *  set parity
- */
-static int
-sa1110_uartparity(Uart *p, int type)
-{
-	ulong ctl0, ctl3;
-
-	ctl0 = R(p)->ctl[0];
-	switch(type){
-	case 'e':
-		ctl0 |= Parity|Even;
-		break;
-	case 'o':
-		ctl0 |= Parity;
-		break;
-	default:
-		ctl0 &= ~(Parity|Even);
-		break;
-	}
-
-	/* disable */
-	ctl3 = R(p)->ctl[3];
-	R(p)->ctl[3] = 0;
-
-	R(p)->ctl[0] = ctl0;
-
-	/* reenable */
-	R(p)->ctl[3] = ctl3;
-
-	return 0;
-}
-
-/*
- *  restart output if not blocked and OK to send
- */
-static void
-sa1110_uartkick(Uart *p)
-{
-	int i;
-
-	R(p)->ctl[3] &= ~Tintena;
-
-	if(p->cts == 0 || p->blocked)
-		return;
-
-	for(i = 0; i < 1024; i++){
-		if(!(R(p)->status[1] & Tnotfull)){
-			R(p)->ctl[3] |= Tintena;
-			break;
-		}
-		if(p->op >= p->oe && uartstageoutput(p) == 0)
-			break;
-		R(p)->data = *p->op++;
-	}
-}
-
-/*
- *  take an interrupt
- */
-static void
-sa1110_uartintr(Ureg*, void *x)
-{
-	Uart *p;
-	ulong s;
-	Uartregs *regs;
-
-	p = x;
-	regs = p->regs;
-
-	/* receiver interrupt, snarf bytes */
-	while(regs->status[1] & Rnotempty)
-		uartrecv(p, regs->data);
-
-	/* remember and reset interrupt causes */
-	s = regs->status[0];
-	regs->status[0] |= s;
-
-	if(s & Tint){
-		/* transmitter interrupt, restart */
-		uartkick(p);
-	}
-
-	if(s & (ParityError|FrameError|Overrun)){
-		if(s & ParityError)
-			p->parity++;
-		if(s & FrameError)
-			p->ferr++;
-		if(s & Overrun)
-			p->oerr++;
-	}
-
-	/* receiver interrupt, snarf bytes */
-	while(regs->status[1] & Rnotempty)
-		uartrecv(p, regs->data);
-}
-
-static Uart*
-sa1110_pnp(void)
-{
-	return sa1110uart;
-}
-
-static int
-sa1110_getc(Uart *uart)
-{
-	Uartregs *ur;
-
-	ur = uart->regs;
-	while((ur->status[1] & Rnotempty) == 0)
-		;
-	return ur->data;
-}
-
-static void
-sa1110_putc(Uart *uart, int c)
-{
-	Uartregs *ur;
-
-	ur = uart->regs;
-	/* wait for output ready */
-	while((ur->status[1] & Tnotfull) == 0)
-		;
-	ur->data = c;
-	while((ur->status[1] & Tbusy))
-		;
-}
-
-PhysUart sa1110physuart = {
-	.name=		"sa1110",
-	.pnp= 		sa1110_pnp,
-	.enable=	sa1110_uartenable,
-	.disable=	sa1110_uartdisable,
-	.bits=		sa1110_uartbits,
-	.kick=		sa1110_uartkick,
-	.modemctl=	sa1110_uartmodemctl,
-	.baud=		sa1110_uartbaud,
-	.stop=		sa1110_uartstop,
-	.parity=	sa1110_uartparity,
-	.dobreak=	sa1110_uartbreak,
-	.rts=		sa1110_uartrts,
-	.dtr=		sa1110_uartdtr,
-	.status=	sa1110_uartstatus,
-	.power=		sa1110_uartpower,
-	.getc=		sa1110_getc,
-	.putc=		sa1110_putc,
-};
-
-/*
- *  for iprint, just write it
- */
-void
-serialµcputs(uchar *str, int n)
-{
-	Uartregs *ur;
-
-	if(µcuart == nil)
-		return;
-	ur = µcuart->regs;
-	while(n-- > 0){
-		/* wait for output ready */
-		while((ur->status[1] & Tnotfull) == 0)
-			;
-		ur->data = *str++;
-	}
-	while((ur->status[1] & Tbusy))
-		;
-}
-
-enum
-{
-	/* gpclk register 0 */
-	Gpclk_sus=	1<<0,	/* set uart mode */
-};
-
-Gpclkregs *gpclkregs;
-
-/*
- *  setup all uarts (called early by main() to allow debugging output to
- *  a serial port)
- */
-void
-sa1110_uartsetup(int console)
-{
-	Uart *p;
-
-	/* external serial port (eia0) */
-	p = &sa1110uart[0];
-	p->regs = mapspecial(UART3REGS, sizeof(Uartregs));
-	p->saveregs = xalloc(sizeof(Uartregs));
-	/* set eia0 up as a console */
-	if(console){
-		uartctl(p, "b115200 l8 pn s1");
-		(*p->phys->enable)(p, 0);
-		p->console = 1;
-		consuart = p;
-	}
-	intrenable(IRQ, IRQuart3, sa1110_uartintr, p, p->name);
-
-	/* port for talking to microcontroller (eia1) */
-	gpclkregs = mapspecial(GPCLKREGS, sizeof(Gpclkregs));
-	gpclkregs->r0 = Gpclk_sus;	/* set uart mode */
-
-	p = &sa1110uart[1];
-	p->regs = mapspecial(UART1REGS, sizeof(Uartregs));
-	p->saveregs = xalloc(sizeof(Uartregs));
-	uartctl(p, "b115200 l8 pn s1");
-	µcuart = p;
-	p->special = 1;
-	(*p->phys->enable)(p, 0);
-	intrenable(IRQ, IRQuart1b, sa1110_uartintr, p, p->name);
-}
-
-static  void
-uartcpy(Uartregs *to, Uartregs *from)
-{
-	to->ctl[0] = from->ctl[0];
-//	to->ctl[1] = from->ctl[1];
-//	to->ctl[2] = from->ctl[2];
-	to->ctl[3] = from->ctl[3];
-
-}
-
-static void
-sa1110_uartpower(Uart *p, int powerup)
-{
-	if (powerup) {
-		/* power up, restore the registers */
-		uartcpy(R(p), SR(p));
-		R(p)->status[0] = R(p)->status[0];
-	} else {
-		/* power down, save the registers */
-		uartcpy(SR(p), R(p));
-	}
-}
--- a/sys/src/9/bitsy/wavelan.c
+++ /dev/null
@@ -1,1223 +1,0 @@
-/*
-	Lucent Wavelan IEEE 802.11 pcmcia.
-	There is almost no documentation for the card.
-	the driver is done using both the FreeBSD, Linux and
-	original Plan 9 drivers as `documentation'.
-
-	Has been used with the card plugged in during all up time.
-	no cards removals/insertions yet.
-
-	For known BUGS see the comments below. Besides,
-	the driver keeps interrupts disabled for just too
-	long. When it gets robust, locks should be revisited.
-
-	BUGS: check endian, alignment and mem/io issues;
-	      multicast;
-	      receive watchdog interrupts.
-	TODO: automatic power management;
-	      improve locking.
- */
-#include "u.h"
-#include "../port/lib.h"
-#include "mem.h"
-#include "dat.h"
-#include "fns.h"
-#include "io.h"
-#include "../port/error.h"
-#include "../port/netif.h"
-#include "etherif.h"
-#include "wavelan.h"
-
-enum
-{
-	MSperTick=	50,	/* ms between ticks of kproc */
-};
-
-/*
- * When we're using a PCI device and memory-mapped I/O, 
- * the registers are spaced out as though each takes 32 bits,
- * even though they are only 16-bit registers.  Thus, 
- * ctlr->mmb[reg] is the right way to access register reg,
- * even though a priori you'd expect to use ctlr->mmb[reg/2].
- */
-void
-csr_outs(Ctlr *ctlr, int reg, ushort arg)
-{
-	if(ctlr->mmb)
-		ctlr->mmb[reg] = arg;
-	else
-		outs(ctlr->iob+reg, arg);
-}
-
-ushort
-csr_ins(Ctlr *ctlr, int reg)
-{
-	if(ctlr->mmb)
-		return ctlr->mmb[reg];
-	else
-		return ins(ctlr->iob+reg);
-}
-
-static void
-csr_ack(Ctlr *ctlr, int ev)
-{
-	csr_outs(ctlr, WR_EvAck, ev);
-}
-
-static void
-csr_inss(Ctlr *ctlr, int reg, void *dat, int ndat)
-{
-	ushort *rp, *wp;
-
-	if(ctlr->mmb){
-		rp = &ctlr->mmb[reg];
-		wp = dat;
-		while(ndat-- > 0)
-			*wp++ = *rp;
-	}else
-		inss(ctlr->iob+reg, dat, ndat);
-}
-
-static void
-csr_outss(Ctlr *ctlr, int reg, void *dat, int ndat)
-{
-	ushort *rp, *wp;
-
-	if(ctlr->mmb){
-		rp = dat;
-		wp = &ctlr->mmb[reg];
-		while(ndat-- > 0)
-			*wp = *rp++;
-	}else
-		outss(ctlr->iob+reg, dat, ndat);
-}
-
-// w_... routines do not ilock the Ctlr and should
-// be called locked.
-
-void
-w_intdis(Ctlr* ctlr)
-{
-	csr_outs(ctlr, WR_IntEna, 0);
-	csr_ack(ctlr, 0xffff);
-}
-
-static void
-w_intena(Ctlr* ctlr)
-{
-	csr_outs(ctlr, WR_IntEna, WEvs);
-}
-
-int
-w_cmd(Ctlr *ctlr, ushort cmd, ushort arg)
-{
-	int i, rc;
-
-	for(i=0; i<WTmOut; i++)
-		if((csr_ins(ctlr, WR_Cmd)&WCmdBusy) == 0)
-			break;
-	if(i==WTmOut){
-		print("#l%d: issuing cmd %.4ux: %.4ux\n", ctlr->ctlrno, cmd, csr_ins(ctlr, WR_Cmd));
-		return -1;
-	}
-
-	csr_outs(ctlr, WR_Parm0, arg);
-	csr_outs(ctlr, WR_Cmd, cmd);
-
-	for(i=0; i<WTmOut; i++)
-		if(csr_ins(ctlr, WR_EvSts)&WCmdEv)
-			break;
-	if(i==WTmOut){
-		/*
-		 * WCmdIni can take a really long time.
-		 */
-		enum { IniTmOut = 2000 };
-		for(i=0; i<IniTmOut; i++){
-			if(csr_ins(ctlr, WR_EvSts)&WCmdEv)
-				break;
-			microdelay(100);
-		}
-		if(i < IniTmOut)
-			if(0) print("#l%d: long cmd %.4ux %d\n", ctlr->ctlrno, cmd, i);
-		if(i == IniTmOut){
-			print("#l%d: execing cmd %.4ux: %.4ux\n", ctlr->ctlrno, cmd, csr_ins(ctlr, WR_EvSts));
-			return -1;
-		}
-	}
-	rc = csr_ins(ctlr, WR_Sts);
-	csr_ack(ctlr, WCmdEv);
-
-	if((rc&WCmdMsk) != (cmd&WCmdMsk)){
-		print("#l%d: cmd %.4ux: status %.4ux\n", ctlr->ctlrno, cmd, rc);
-		return -1;
-	}
-	if(rc&WResSts){
-		/*
-		 * Don't print; this happens on every WCmdAccWr for some reason.
-		 */
-		if(0) print("#l%d: cmd %.4ux: status %.4ux\n", ctlr->ctlrno, cmd, rc);
-		return -1;
-	}
-	return 0;
-}
-
-static int
-w_seek(Ctlr* ctlr, ushort id, ushort offset, int chan)
-{
-	int i, rc;
-	static ushort sel[] = { WR_Sel0, WR_Sel1 };
-	static ushort off[] = { WR_Off0, WR_Off1 };
-
-	if(chan != 0 && chan != 1)
-		panic("wavelan: bad chan\n");
-	csr_outs(ctlr, sel[chan], id);
-	csr_outs(ctlr, off[chan], offset);
-	for (i=0; i<WTmOut; i++){
-		rc = csr_ins(ctlr, off[chan]);
-		if((rc & (WBusyOff|WErrOff)) == 0)
-			return 0;
-	}
-	return -1;
-}
-
-int
-w_inltv(Ctlr* ctlr, Wltv* ltv)
-{
-	int len;
-	ushort code;
-
-	if(w_cmd(ctlr, WCmdAccRd, ltv->type)){
-		DEBUG("wavelan: access read failed\n");
-		return -1;
-	}
-	if(w_seek(ctlr,ltv->type,0,1)){
-		DEBUG("wavelan: seek failed\n");
-		return -1;
-	}
-	len = csr_ins(ctlr, WR_Data1);
-	if(len > ltv->len)
-		return -1;
-	ltv->len = len;
-	if((code=csr_ins(ctlr, WR_Data1)) != ltv->type){
-		USED(code);
-		DEBUG("wavelan: type %x != code %x\n",ltv->type,code);
-		return -1;
-	}
-	if(ltv->len > 0)
-		csr_inss(ctlr, WR_Data1, &ltv->val, ltv->len-1);
-
-	return 0;
-}
-
-static void
-w_outltv(Ctlr* ctlr, Wltv* ltv)
-{
-	if(w_seek(ctlr,ltv->type, 0, 1))
-		return;
-	csr_outss(ctlr, WR_Data1, ltv, ltv->len+1);
-	w_cmd(ctlr, WCmdAccWr, ltv->type);
-}
-
-void
-ltv_outs(Ctlr* ctlr, int type, ushort val)
-{
-	Wltv ltv;
-
-	ltv.len = 2;
-	ltv.type = type;
-	ltv.val = val;
-	w_outltv(ctlr, &ltv);
-}
-
-int
-ltv_ins(Ctlr* ctlr, int type)
-{
-	Wltv ltv;
-
-	ltv.len = 2;
-	ltv.type = type;
-	ltv.val = 0;
-	if(w_inltv(ctlr, &ltv))
-		return -1;
-	return ltv.val;
-}
-
-static void
-ltv_outstr(Ctlr* ctlr, int type, char* val)
-{
-	Wltv ltv;
-	int len;
-
-	len = strlen(val);
-	if(len > sizeof(ltv.s))
-		len = sizeof(ltv.s);
-	memset(&ltv, 0, sizeof(ltv));
-	ltv.len = (sizeof(ltv.type)+sizeof(ltv.slen)+sizeof(ltv.s))/2;
-	ltv.type = type;
-
-//	This should be ltv.slen = len; according to Axel Belinfante
-	ltv.slen = len;	
-
-	strncpy(ltv.s, val, len);
-	w_outltv(ctlr, &ltv);
-}
-
-static char Unkname[] = "who knows";
-static char Nilname[] = "card does not tell";
-
-static char*
-ltv_inname(Ctlr* ctlr, int type)
-{
-	static Wltv ltv;
-	int len;
-
-	memset(&ltv,0,sizeof(ltv));
-	ltv.len = WNameLen/2+2;
-	ltv.type = type;
-	if(w_inltv(ctlr, &ltv))
-		return Unkname;
-	len = ltv.slen;
-	if(len == 0 || ltv.s[0] == 0)
-		return Nilname;
-	if(len >= sizeof ltv.s)
-		len = sizeof ltv.s - 1;
-	ltv.s[len] = '\0';
-	return ltv.s;
-}
-
-static int
-w_read(Ctlr* ctlr, int type, int off, void* buf, ulong len)
-{
-	if(w_seek(ctlr, type, off, 1)){
-		DEBUG("wavelan: w_read: seek failed");
-		return 0;
-	}
-	csr_inss(ctlr, WR_Data1, buf, len/2);
-
-	return len;
-}
-
-static int
-w_write(Ctlr* ctlr, int type, int off, void* buf, ulong len)
-{
-	if(w_seek(ctlr, type, off, 0)){
-		DEBUG("wavelan: w_write: seek failed\n");
-		return 0;
-	}
-
-	csr_outss(ctlr, WR_Data0, buf, len/2);
-	csr_outs(ctlr, WR_Data0, 0xdead);
-	csr_outs(ctlr, WR_Data0, 0xbeef);
-	if(w_seek(ctlr, type, off + len, 0)){
-		DEBUG("wavelan: write seek failed\n");
-		return 0;
-	}
-	if(csr_ins(ctlr, WR_Data0) == 0xdead && csr_ins(ctlr, WR_Data0) == 0xbeef)
-		return len;
-
-	DEBUG("wavelan: Hermes bug byte.\n");
-	return 0;
-}
-
-static int
-w_alloc(Ctlr* ctlr, int len)
-{
-	int rc;
-	int i,j;
-
-	if(w_cmd(ctlr, WCmdMalloc, len)==0)
-		for (i = 0; i<WTmOut; i++)
-			if(csr_ins(ctlr, WR_EvSts) & WAllocEv){
-				csr_ack(ctlr, WAllocEv);
-				rc=csr_ins(ctlr, WR_Alloc);
-				if(w_seek(ctlr, rc, 0, 0))
-					return -1;
-				len = len/2;
-				for (j=0; j<len; j++)
-					csr_outs(ctlr, WR_Data0, 0);
-				return rc;
-			}
-	return -1;
-}
-
-static int
-w_enable(Ether* ether)
-{
-	Wltv ltv;
-	Ctlr* ctlr = (Ctlr*) ether->ctlr;
-
-	if(!ctlr)
-		return -1;
-
-	w_intdis(ctlr);
-	w_cmd(ctlr, WCmdDis, 0);
-	w_intdis(ctlr);
-	if(w_cmd(ctlr, WCmdIni, 0))
-		return -1;
-	w_intdis(ctlr);
-
-	ltv_outs(ctlr, WTyp_Tick, 8);
-	ltv_outs(ctlr, WTyp_MaxLen, ctlr->maxlen);
-	ltv_outs(ctlr, WTyp_Ptype, ctlr->ptype);
- 	ltv_outs(ctlr, WTyp_CreateIBSS, ctlr->createibss);
-	ltv_outs(ctlr, WTyp_RtsThres, ctlr->rtsthres);
-	ltv_outs(ctlr, WTyp_TxRate, ctlr->txrate);
-	ltv_outs(ctlr, WTyp_ApDens, ctlr->apdensity);
-	ltv_outs(ctlr, WTyp_PMWait, ctlr->pmwait);
-	ltv_outs(ctlr, WTyp_PM, ctlr->pmena);
-	if(*ctlr->netname)
-		ltv_outstr(ctlr, WTyp_NetName, ctlr->netname);
-	if(*ctlr->wantname)
-		ltv_outstr(ctlr, WTyp_WantName, ctlr->wantname);
-	ltv_outs(ctlr, WTyp_Chan, ctlr->chan);
-	if(*ctlr->nodename)
-		ltv_outstr(ctlr, WTyp_NodeName, ctlr->nodename);
-	ltv.len = 4;
-	ltv.type = WTyp_Mac;
-	memmove(ltv.addr, ether->ea, Eaddrlen);
-	w_outltv(ctlr, &ltv);
-
-	ltv_outs(ctlr, WTyp_Prom, (ether->prom?1:0));
-
-	if(ctlr->hascrypt && ctlr->crypt){
-		ltv_outs(ctlr, WTyp_Crypt, ctlr->crypt);
-		ltv_outs(ctlr, WTyp_TxKey, ctlr->txkey);
-		w_outltv(ctlr, &ctlr->keys);
-		ltv_outs(ctlr, WTyp_XClear, ctlr->xclear);
-	}
-
-	// BUG: set multicast addresses
-
-	if(w_cmd(ctlr, WCmdEna, 0)){
-		DEBUG("wavelan: Enable failed");
-		return -1;
-	}
-	ctlr->txdid = w_alloc(ctlr, 1518 + sizeof(WFrame) + 8);
-	ctlr->txmid = w_alloc(ctlr, 1518 + sizeof(WFrame) + 8);
-	if(ctlr->txdid == -1 || ctlr->txmid == -1)
-		DEBUG("wavelan: alloc failed");
-	ctlr->txbusy = 0;
-	w_intena(ctlr);
-	return 0;
-}
-
-static void
-w_rxdone(Ether* ether)
-{
-	Ctlr* ctlr = (Ctlr*) ether->ctlr;
-	int len, sp;
-	WFrame f;
-	Block* bp=0;
-	Etherpkt* ep;
-
-	sp = csr_ins(ctlr, WR_RXId);
-	len = w_read(ctlr, sp, 0, &f, sizeof(f));
-	if(len == 0){
-		DEBUG("wavelan: read frame error\n");
-		goto rxerror;
-	}
-	if(f.sts&WF_Err){
-		goto rxerror;
-	}
-	switch(f.sts){
-	case WF_1042:
-	case WF_Tunnel:
-	case WF_WMP:
-		len = f.dlen + WSnapHdrLen;
-		bp = iallocb(ETHERHDRSIZE + len + 2);
-		if(!bp)
-			goto rxerror;
-		ep = (Etherpkt*) bp->wp;
-		memmove(ep->d, f.addr1, Eaddrlen);
-		memmove(ep->s, f.addr2, Eaddrlen);
-		memmove(ep->type,&f.type,2);
-		bp->wp += ETHERHDRSIZE;
-		if(w_read(ctlr, sp, WF_802_11_Off, bp->wp, len+2) == 0){
-			DEBUG("wavelan: read 802.11 error\n");
-			goto rxerror;
-		}
-		bp->wp = bp->rp+(ETHERHDRSIZE+f.dlen);
-		break;
-	default:
-		len = ETHERHDRSIZE + f.dlen + 2;
-		bp = iallocb(len);
-		if(!bp)
-			goto rxerror;
-		if(w_read(ctlr, sp, WF_802_3_Off, bp->wp, len) == 0){
-			DEBUG("wavelan: read 800.3 error\n");
-			goto rxerror;
-		}
-		bp->wp += len;
-	}
-
-	ctlr->nrx++;
-	etheriq(ether,bp,1);
-	ctlr->signal = ((ctlr->signal*15)+((f.qinfo>>8) & 0xFF))/16;
-	ctlr->noise = ((ctlr->noise*15)+(f.qinfo & 0xFF))/16;
-	return;
-
-rxerror:
-	freeb(bp);
-	ctlr->nrxerr++;
-}
-
-static void
-w_txstart(Ether* ether)
-{
-	Etherpkt *pkt;
-	Ctlr *ctlr;
-	Block *bp;
-	int len, off;
-
-	if((ctlr = ether->ctlr) == nil || (ctlr->state & (Attached|Power)) != (Attached|Power) || ctlr->txbusy)
-		return;
-
-	if((bp = qget(ether->oq)) == nil)
-		return;
-	pkt = (Etherpkt*)bp->rp;
-
-	//
-	// If the packet header type field is > 1500 it is an IP or
-	// ARP datagram, otherwise it is an 802.3 packet. See RFC1042.
-	//
-	memset(&ctlr->txf, 0, sizeof(ctlr->txf));
-	if(((pkt->type[0]<<8)|pkt->type[1]) > 1500){
-		ctlr->txf.framectl = WF_Data;
-		memmove(ctlr->txf.addr1, pkt->d, Eaddrlen);
-		memmove(ctlr->txf.addr2, pkt->s, Eaddrlen);
-		memmove(ctlr->txf.dstaddr, pkt->d, Eaddrlen);
-		memmove(ctlr->txf.srcaddr, pkt->s, Eaddrlen);
-		memmove(&ctlr->txf.type, pkt->type, 2);
-		bp->rp += ETHERHDRSIZE;
-		len = BLEN(bp);
-		off = WF_802_11_Off;
-		ctlr->txf.dlen = len+ETHERHDRSIZE-WSnapHdrLen;
-		hnputs((uchar*)&ctlr->txf.dat[0], WSnap0);
-		hnputs((uchar*)&ctlr->txf.dat[1], WSnap1);
-		hnputs((uchar*)&ctlr->txf.len, len+ETHERHDRSIZE-WSnapHdrLen);
-	}
-	else{
-		len = BLEN(bp);
-		off = WF_802_3_Off;
-		ctlr->txf.dlen = len;
-	}
-	w_write(ctlr, ctlr->txdid, 0, &ctlr->txf, sizeof(ctlr->txf));
-	w_write(ctlr, ctlr->txdid, off, bp->rp, len+2);
-
-	if(w_cmd(ctlr, WCmdReclaim|WCmdTx, ctlr->txdid)){
-		DEBUG("wavelan: transmit failed\n");
-		ctlr->ntxerr++;
-	}
-	else{
-		ctlr->txbusy = 1;
-		ctlr->txtmout = 2;
-	}
-	freeb(bp);
-}
-
-static void
-w_txdone(Ctlr* ctlr, int sts)
-{
-	ctlr->txbusy = 0;
-	ctlr->txtmout = 0;
-	if(sts & WTxErrEv)
-		ctlr->ntxerr++;
-	else
-		ctlr->ntx++;
-}
-
-/* save the stats info in the ctlr struct */
-static void
-w_stats(Ctlr* ctlr, int len)
-{
-	int i, rc;
-	ulong* p = (ulong*)&ctlr->WStats;
-	ulong* pend = (ulong*)&ctlr->end;
-
-	for (i = 0; i < len && p < pend; i++){
-		rc = csr_ins(ctlr, WR_Data1);
-		if(rc > 0xf000)
-			rc = ~rc & 0xffff;
-		p[i] += rc;
-	}
-}
-
-/* send the base station scan info to any readers */
-static void
-w_scaninfo(Ether* ether, Ctlr *ctlr, int len)
-{
-	int i, j;
-	Netfile **ep, *f, **fp;
-	Block *bp;
-	WScan *wsp;
-	ushort *scanbuf;
-
-	scanbuf = malloc(len*2);
-	if(scanbuf == nil)
-		return;
-	
-	for (i = 0; i < len ; i++)
-		scanbuf[i] = csr_ins(ctlr, WR_Data1);
-
-	/* calculate number of samples */
-	len /= 25;
-	if(len == 0)
-		goto out;
-
-	i = ether->scan;
-	ep = &ether->f[Ntypes];
-	for(fp = ether->f; fp < ep && i > 0; fp++){
-		f = *fp;
-		if(f == nil || f->scan == 0)
-			continue;
-
-		bp = iallocb(100*len);
-		if(bp == nil)
-			break;
-		for(j = 0; j < len; j++){
-			wsp = (WScan*)(&scanbuf[j*25]);
-			if(wsp->ssid_len > 32)
-				wsp->ssid_len = 32;
-			bp->wp = (uchar*)seprint((char*)bp->wp, (char*)bp->lim,
-				"ssid=%.*s;bssid=%E;signal=%d;noise=%d;chan=%d%s\n",
-				wsp->ssid_len, wsp->ssid, wsp->bssid, wsp->signal,
-				wsp->noise, wsp->chan, (wsp->capinfo&(1<<4))?";wep":"");
-		}
-		qpass(f->in, bp);
-		i--;
-	}
-out:
-	free(scanbuf);
-}
-
-static int
-w_info(Ether *ether, Ctlr* ctlr)
-{
-	int sp;
-	Wltv ltv;
-
-	sp = csr_ins(ctlr, WR_InfoId);
-	ltv.len = ltv.type = 0;
-	w_read(ctlr, sp, 0, &ltv, 4);
-	ltv.len--;
-	switch(ltv.type){
-	case WTyp_Stats:
-		w_stats(ctlr, ltv.len);
-		return 0;
-	case WTyp_Scan:
-		w_scaninfo(ether, ctlr, ltv.len);
-		return 0;
-	}
-	return -1;
-}
-
-/* set scanning interval */
-static void
-w_scanbs(void *a, uint secs)
-{
-	Ether *ether = a;
-	Ctlr* ctlr = (Ctlr*) ether->ctlr;
-
-	ctlr->scanticks = secs*(1000/MSperTick);
-}
-
-static void
-w_intr(Ether *ether)
-{
-	int rc, txid;
-	Ctlr* ctlr = (Ctlr*) ether->ctlr;
-
-	if((ctlr->state & Power) == 0)
-		return;
-
-	if((ctlr->state & Attached) == 0){
-		csr_ack(ctlr, 0xffff);
-		csr_outs(ctlr, WR_IntEna, 0);
-		return;
-	}
-
-	rc = csr_ins(ctlr, WR_EvSts);
-	csr_ack(ctlr, ~WEvs);	// Not interested in them
-	if(rc & WRXEv){
-		w_rxdone(ether);
-		csr_ack(ctlr, WRXEv);
-	}
-	if(rc & WTXEv){
-		w_txdone(ctlr, rc);
-		csr_ack(ctlr, WTXEv);
-	}
-	if(rc & WAllocEv){
-		ctlr->nalloc++;
-		txid = csr_ins(ctlr, WR_Alloc);
-		csr_ack(ctlr, WAllocEv);
-		if(txid == ctlr->txdid){
-			if((rc & WTXEv) == 0)
-				w_txdone(ctlr, rc);
-		}
-	}
-	if(rc & WInfoEv){
-		ctlr->ninfo++;
-		w_info(ether, ctlr);
-		csr_ack(ctlr, WInfoEv);
-	}
-	if(rc & WTxErrEv){
-		w_txdone(ctlr, rc);
-		csr_ack(ctlr, WTxErrEv);
-	}
-	if(rc & WIDropEv){
-		ctlr->nidrop++;
-		csr_ack(ctlr, WIDropEv);
-	}
-	w_txstart(ether);
-}
-
-// Watcher to ensure that the card still works properly and
-// to request WStats updates once a minute.
-// BUG: it runs much more often, see the comment below.
-
-static void
-w_timer(void* arg)
-{
-	Ether* ether = (Ether*) arg;
-	Ctlr* ctlr = (Ctlr*)ether->ctlr;
-
-	ctlr->timerproc = up;
-	while(waserror())
-		;
-	for(;;){
-		tsleep(&up->sleep, return0, 0, MSperTick);
-		ctlr = (Ctlr*)ether->ctlr;
-		if(ctlr == 0)
-			break;
-		if((ctlr->state & (Attached|Power)) != (Attached|Power))
-			continue;
-		ctlr->ticks++;
-
-		ilock(ctlr);
-
-		// Seems that the card gets frames BUT does
-		// not send the interrupt; this is a problem because
-		// I suspect it runs out of receive buffers and
-		// stops receiving until a transmit watchdog
-		// reenables the card.
-		// The problem is serious because it leads to
-		// poor rtts.
-		// This can be seen clearly by commenting out
-		// the next if and doing a ping: it will stop
-		// receiving (although the icmp replies are being
-		// issued from the remote) after a few seconds.
-		// Of course this `bug' could be because I'm reading
-		// the card frames in the wrong way; due to the
-		// lack of documentation I cannot know.
-
-		if(csr_ins(ctlr, WR_EvSts)&WEvs){
-			ctlr->tickintr++;
-			w_intr(ether);
-		}
-
-		if((ctlr->ticks % 10) == 0) {
-			if(ctlr->txtmout && --ctlr->txtmout == 0){
-				ctlr->nwatchdogs++;
-				w_txdone(ctlr, WTxErrEv);
-				if(w_enable(ether)){
-					DEBUG("wavelan: wdog enable failed\n");
-				}
-				w_txstart(ether);
-			}
-			if((ctlr->ticks % 120) == 0)
-			if(ctlr->txbusy == 0)
-				w_cmd(ctlr, WCmdEnquire, WTyp_Stats);
-			if(ctlr->scanticks > 0)
-			if((ctlr->ticks % ctlr->scanticks) == 0)
-			if(ctlr->txbusy == 0)
-				w_cmd(ctlr, WCmdEnquire, WTyp_Scan);
-		}
-		iunlock(ctlr);
-	}
-	pexit("terminated", 1);
-}
-
-void
-w_multicast(void*, uchar*, int)
-{
-	// BUG: to be added.
-}
-
-void
-w_attach(Ether* ether)
-{
-	Ctlr* ctlr;
-	char name[64];
-	int rc;
-
-	if(ether->ctlr == 0)
-		return;
-
-	snprint(name, sizeof(name), "#l%dtimer", ether->ctlrno);
-	ctlr = (Ctlr*) ether->ctlr;
-	if((ctlr->state & Attached) == 0){
-		ilock(ctlr);
-		rc = w_enable(ether);
-		iunlock(ctlr);
-		if(rc == 0){
-			ctlr->state |= Attached;
-			kproc(name, w_timer, ether);
-		} else
-			print("#l%d: enable failed\n",ether->ctlrno);
-	}
-}
-
-void
-w_detach(Ether* ether)
-{
-	Ctlr* ctlr;
-	char name[64];
-
-	if(ether->ctlr == nil)
-		return;
-
-	snprint(name, sizeof(name), "#l%dtimer", ether->ctlrno);
-	ctlr = (Ctlr*) ether->ctlr;
-	if(ctlr->state & Attached){
-		ilock(ctlr);
-		w_intdis(ctlr);
-		if(ctlr->timerproc){
-			if(!postnote(ctlr->timerproc, 1, "kill", NExit))
-				print("timerproc note not posted\n");
-			print("w_detach, killing 0x%p\n", ctlr->timerproc);
-		}
-		ctlr->state &= ~Attached;
-		iunlock(ctlr);
-	}
-	ether->ctlr = nil;
-}
-
-void
-w_power(Ether* ether, int on)
-{
-	Ctlr *ctlr;
-
-	ctlr = (Ctlr*) ether->ctlr;
-	ilock(ctlr);
-iprint("w_power %d\n", on);
-	if(on){
-		if((ctlr->state & Power) == 0){
-			if (wavelanreset(ether, ctlr) < 0){
-				iprint("w_power: reset failed\n");
-				iunlock(ctlr);
-				w_detach(ether);
-				free(ctlr);
-				return;
-			}
-			if(ctlr->state & Attached)
-				w_enable(ether);
-			ctlr->state |= Power;
-		}
-	}else{
-		if(ctlr->state & Power){
-			if(ctlr->state & Attached)
-				w_intdis(ctlr);
-			ctlr->state &= ~Power;
-		}
-	}
-	iunlock(ctlr);
-}
-
-#define PRINTSTAT(fmt,val)	l += snprint(p+l, READSTR-l, (fmt), (val))
-#define PRINTSTR(fmt)		l += snprint(p+l, READSTR-l, (fmt))
-
-long
-w_ifstat(Ether* ether, void* a, long n, ulong offset)
-{
-	Ctlr *ctlr = (Ctlr*) ether->ctlr;
-	char *k, *p;
-	int i, l, txid;
-
-	ether->oerrs = ctlr->ntxerr;
-	ether->crcs = ctlr->nrxfcserr;
-	ether->frames = 0;
-	ether->buffs = ctlr->nrxdropnobuf;
-	ether->overflows = 0;
-
-	//
-	// Offset must be zero or there's a possibility the
-	// new data won't match the previous read.
-	//
-	if(n == 0 || offset != 0)
-		return 0;
-
-	p = malloc(READSTR);
-	l = 0;
-
-	PRINTSTAT("Signal: %d\n", ctlr->signal-149);
-	PRINTSTAT("Noise: %d\n", ctlr->noise-149);
-	PRINTSTAT("SNR: %ud\n", ctlr->signal-ctlr->noise);
-	PRINTSTAT("Interrupts: %lud\n", ctlr->nints);
-	PRINTSTAT("Double Interrupts: %lud\n", ctlr->ndoubleint);
-	PRINTSTAT("TxPackets: %lud\n", ctlr->ntx);
-	PRINTSTAT("RxPackets: %lud\n", ctlr->nrx);
-	PRINTSTAT("TxErrors: %lud\n", ctlr->ntxerr);
-	PRINTSTAT("RxErrors: %lud\n", ctlr->nrxerr);
-	PRINTSTAT("TxRequests: %lud\n", ctlr->ntxrq);
-	PRINTSTAT("AllocEvs: %lud\n", ctlr->nalloc);
-	PRINTSTAT("InfoEvs: %lud\n", ctlr->ninfo);
-	PRINTSTAT("InfoDrop: %lud\n", ctlr->nidrop);
-	PRINTSTAT("WatchDogs: %lud\n", ctlr->nwatchdogs);
-	PRINTSTAT("Ticks: %ud\n", ctlr->ticks);
-	PRINTSTAT("TickIntr: %ud\n", ctlr->tickintr);
-	k = ((ctlr->state & Attached) ? "attached" : "not attached");
-	PRINTSTAT("Card %s", k);
-	k = ((ctlr->state & Power) ? "on" : "off");
-	PRINTSTAT(", power %s", k);
-	k = ((ctlr->txbusy)? ", txbusy" : "");
-	PRINTSTAT("%s\n", k);
-
-	if(ctlr->hascrypt){
-		PRINTSTR("Keys: ");
-		for (i = 0; i < WNKeys; i++){
-			if(ctlr->keys.keys[i].len == 0)
-				PRINTSTR("none ");
-			else if(SEEKEYS == 0)
-				PRINTSTR("set ");
-			else
-				PRINTSTAT("%s ", ctlr->keys.keys[i].dat);
-		}
-		PRINTSTR("\n");
-	}
-
-	// real card stats
-	ilock(ctlr);
-	PRINTSTR("\nCard stats: \n");
-	PRINTSTAT("Status: %ux\n", csr_ins(ctlr, WR_Sts));
-	PRINTSTAT("Event status: %ux\n", csr_ins(ctlr, WR_EvSts));
-	i = ltv_ins(ctlr, WTyp_Ptype);
-	PRINTSTAT("Port type: %d\n", i);
-	PRINTSTAT("Transmit rate: %d\n", ltv_ins(ctlr, WTyp_TxRate));
-	PRINTSTAT("Current Transmit rate: %d\n",
-		ltv_ins(ctlr, WTyp_CurTxRate));
-	PRINTSTAT("Channel: %d\n", ltv_ins(ctlr, WTyp_Chan));
-	PRINTSTAT("AP density: %d\n", ltv_ins(ctlr, WTyp_ApDens));
-	PRINTSTAT("Promiscuous mode: %d\n", ltv_ins(ctlr, WTyp_Prom));
-	if(i == WPTypeAdHoc)
-		PRINTSTAT("SSID name: %s\n", ltv_inname(ctlr, WTyp_NetName));
-	else {
-		Wltv ltv;
-		PRINTSTAT("Current name: %s\n", ltv_inname(ctlr, WTyp_CurName));
-		ltv.type = WTyp_BaseID;
-		ltv.len = 4;
-		if(w_inltv(ctlr, &ltv))
-			print("#l%d: unable to read base station mac addr\n", ether->ctlrno);
-		l += snprint(p+l, READSTR-l, "Base station: %2.2x%2.2x%2.2x%2.2x%2.2x%2.2x\n",
-			ltv.addr[0], ltv.addr[1], ltv.addr[2], ltv.addr[3], ltv.addr[4], ltv.addr[5]);
-	}
-	PRINTSTAT("Net name: %s\n", ltv_inname(ctlr, WTyp_WantName));
-	PRINTSTAT("Node name: %s\n", ltv_inname(ctlr, WTyp_NodeName));
-	if(ltv_ins(ctlr, WTyp_HasCrypt) == 0)
-		PRINTSTR("WEP: not supported\n");
-	else {
-		if(ltv_ins(ctlr, WTyp_Crypt) == 0)
-			PRINTSTR("WEP: disabled\n");
-		else{
-			PRINTSTR("WEP: enabled\n");
-			k = ((ctlr->xclear)? "excluded": "included");
-			PRINTSTAT("Clear packets: %s\n", k);
-			txid = ltv_ins(ctlr, WTyp_TxKey);
-			PRINTSTAT("Transmit key id: %d\n", txid);
-		}
-	}
-	iunlock(ctlr);
-
-	PRINTSTAT("ntxuframes: %lud\n", ctlr->ntxuframes);
-	PRINTSTAT("ntxmframes: %lud\n", ctlr->ntxmframes);
-	PRINTSTAT("ntxfrags: %lud\n", ctlr->ntxfrags);
-	PRINTSTAT("ntxubytes: %lud\n", ctlr->ntxubytes);
-	PRINTSTAT("ntxmbytes: %lud\n", ctlr->ntxmbytes);
-	PRINTSTAT("ntxdeferred: %lud\n", ctlr->ntxdeferred);
-	PRINTSTAT("ntxsretries: %lud\n", ctlr->ntxsretries);
-	PRINTSTAT("ntxmultiretries: %lud\n", ctlr->ntxmultiretries);
-	PRINTSTAT("ntxretrylimit: %lud\n", ctlr->ntxretrylimit);
-	PRINTSTAT("ntxdiscards: %lud\n", ctlr->ntxdiscards);
-	PRINTSTAT("nrxuframes: %lud\n", ctlr->nrxuframes);
-	PRINTSTAT("nrxmframes: %lud\n", ctlr->nrxmframes);
-	PRINTSTAT("nrxfrags: %lud\n", ctlr->nrxfrags);
-	PRINTSTAT("nrxubytes: %lud\n", ctlr->nrxubytes);
-	PRINTSTAT("nrxmbytes: %lud\n", ctlr->nrxmbytes);
-	PRINTSTAT("nrxfcserr: %lud\n", ctlr->nrxfcserr);
-	PRINTSTAT("nrxdropnobuf: %lud\n", ctlr->nrxdropnobuf);
-	PRINTSTAT("nrxdropnosa: %lud\n", ctlr->nrxdropnosa);
-	PRINTSTAT("nrxcantdecrypt: %lud\n", ctlr->nrxcantdecrypt);
-	PRINTSTAT("nrxmsgfrag: %lud\n", ctlr->nrxmsgfrag);
-	PRINTSTAT("nrxmsgbadfrag: %lud\n", ctlr->nrxmsgbadfrag);
-	USED(l);
-	n = readstr(offset, a, n, p);
-	free(p);
-	return n;
-}
-#undef PRINTSTR
-#undef PRINTSTAT
-
-int
-w_option(Ctlr* ctlr, char* buf, long n)
-{
-	char *p;
-	int i, r;
-	WKey *key;
-	Cmdbuf *cb;
-
-	r = 0;
-
-	cb = parsecmd(buf, n);
-	if(cb->nf < 2)
-		r = -1;
-	else if(cistrcmp(cb->f[0], "essid") == 0){
-		if(cistrcmp(cb->f[1],"default") == 0)
-			p = "";
-		else
-			p = cb->f[1];
-		if(ctlr->ptype == WPTypeAdHoc){
-			memset(ctlr->netname, 0, sizeof(ctlr->netname));
-			strncpy(ctlr->netname, p, WNameLen);
-		}
-		else{
-			memset(ctlr->wantname, 0, sizeof(ctlr->wantname));
-			strncpy(ctlr->wantname, p, WNameLen);
-		}
-	}
-	else if(cistrcmp(cb->f[0], "station") == 0){
-		memset(ctlr->nodename, 0, sizeof(ctlr->nodename));
-		strncpy(ctlr->nodename, cb->f[1], WNameLen);
-	}
-	else if(cistrcmp(cb->f[0], "channel") == 0){
-		if((i = atoi(cb->f[1])) >= 1 && i <= 16)
-			ctlr->chan = i;
-		else
-			r = -1;
-	}
-	else if(cistrcmp(cb->f[0], "mode") == 0){
-		if(cistrcmp(cb->f[1], "managed") == 0)
-			ctlr->ptype = WPTypeManaged;
-		else if(cistrcmp(cb->f[1], "wds") == 0)
-			ctlr->ptype = WPTypeWDS;
-		else if(cistrcmp(cb->f[1], "adhoc") == 0)
-			ctlr->ptype = WPTypeAdHoc;
-		else if((i = atoi(cb->f[1])) >= 1 && i <= 3)
-			ctlr->ptype = i;
-		else
-			r = -1;
-	}
-	else if(cistrcmp(cb->f[0], "ibss") == 0){
-		if(cistrcmp(cb->f[1], "on") == 0)
-			ctlr->createibss = 1;
-		else
-			ctlr->createibss = 0;
-	}
-	else if(cistrcmp(cb->f[0], "crypt") == 0){
-		if(cistrcmp(cb->f[1], "off") == 0)
-			ctlr->crypt = 0;
-		else if(cistrcmp(cb->f[1], "on") == 0 && ctlr->hascrypt)
-			ctlr->crypt = 1;
-		else
-			r = -1;
-	}
-	else if(cistrcmp(cb->f[0], "clear") == 0){
-		if(cistrcmp(cb->f[1], "on") == 0)
-			ctlr->xclear = 0;
-		else if(cistrcmp(cb->f[1], "off") == 0 && ctlr->hascrypt)
-			ctlr->xclear = 1;
-		else
-			r = -1;
-	}
-	else if(cistrncmp(cb->f[0], "key", 3) == 0){
-		if((i = atoi(cb->f[0]+3)) >= 1 && i <= WNKeys){
-			ctlr->txkey = i-1;
-			key = &ctlr->keys.keys[ctlr->txkey];
-			key->len = strlen(cb->f[1]);
-			if(key->len > WKeyLen)
-				key->len = WKeyLen;
-			memset(key->dat, 0, sizeof(key->dat));
-			memmove(key->dat, cb->f[1], key->len);
-		}
-		else
-			r = -1;
-	}
-	else if(cistrcmp(cb->f[0], "txkey") == 0){
-		if((i = atoi(cb->f[1])) >= 1 && i <= WNKeys)
-			ctlr->txkey = i-1;
-		else
-			r = -1;
-	}
-	else if(cistrcmp(cb->f[0], "pm") == 0){
-		if(cistrcmp(cb->f[1], "off") == 0)
-			ctlr->pmena = 0;
-		else if(cistrcmp(cb->f[1], "on") == 0){
-			ctlr->pmena = 1;
-			if(cb->nf == 3){
-				i = atoi(cb->f[2]);
-				// check range here? what are the units?
-				ctlr->pmwait = i;
-			}
-		}
-		else
-			r = -1;
-	}
-	else
-		r = -2;
-	free(cb);
-
-	return r;
-}
-
-long
-w_ctl(Ether* ether, void* buf, long n)
-{
-	Ctlr *ctlr;
-
-	if((ctlr = ether->ctlr) == nil)
-		error(Enonexist);
-	if((ctlr->state & Attached) == 0)
-		error(Eshutdown);
-
-	ilock(ctlr);
-	if(w_option(ctlr, buf, n)){
-		iunlock(ctlr);
-		error(Ebadctl);
-	}
-	if(ctlr->txbusy)
-		w_txdone(ctlr, WTxErrEv);
-	w_enable(ether);
-	w_txstart(ether);
-	iunlock(ctlr);
-
-	return n;
-}
-
-void
-w_transmit(Ether* ether)
-{
-	Ctlr* ctlr = ether->ctlr;
-
-	if(ctlr == 0)
-		return;
-
-	ilock(ctlr);
-	ctlr->ntxrq++;
-	w_txstart(ether);
-	iunlock(ctlr);
-}
-
-void
-w_promiscuous(void* arg, int on)
-{
-	Ether* ether = (Ether*)arg;
-	Ctlr* ctlr = ether->ctlr;
-
-	if(ctlr == nil)
-		error("card not found");
-	if((ctlr->state & Attached) == 0)
-		error("card not attached");
-	ilock(ctlr);
-	ltv_outs(ctlr, WTyp_Prom, (on?1:0));
-	iunlock(ctlr);
-}
-
-void
-w_interrupt(Ureg* ,void* arg)
-{
-	Ether* ether = (Ether*) arg;
-	Ctlr* ctlr = (Ctlr*) ether->ctlr;
-
-	if(ctlr == 0)
-		return;
-	ilock(ctlr);
-	ctlr->nints++;
-	w_intr(ether);
-	iunlock(ctlr);
-}
-
-int
-wavelanreset(Ether* ether, Ctlr *ctlr)
-{
-	Wltv ltv;
-
-	iprint("wavelanreset, iob 0x%ux\n", ctlr->iob);
-	w_intdis(ctlr);
-	if(w_cmd(ctlr,WCmdIni,0)){
-		iprint("#l%d: init failed\n", ether->ctlrno);
-		return -1;
-	}
-	w_intdis(ctlr);
-	ltv_outs(ctlr, WTyp_Tick, 8);
-
-	ctlr->chan = 0;
-	ctlr->ptype = WDfltPType;
-	ctlr->txkey = 0;
-	ctlr->createibss = 0;
-	ctlr->keys.len = sizeof(WKey)*WNKeys/2 + 1;
-	ctlr->keys.type = WTyp_Keys;
-	if(ctlr->hascrypt = ltv_ins(ctlr, WTyp_HasCrypt))
-		ctlr->crypt = 1;
-	*ctlr->netname = *ctlr->wantname = 0;
-	strcpy(ctlr->nodename, "Plan 9 STA");
-
-	ctlr->netname[WNameLen-1] = 0;
-	ctlr->wantname[WNameLen-1] = 0;
-	ctlr->nodename[WNameLen-1] =0;
-
-	ltv.type = WTyp_Mac;
-	ltv.len	= 4;
-	if(w_inltv(ctlr, &ltv)){
-		iprint("#l%d: unable to read mac addr\n",
-			ether->ctlrno);
-		return -1;
-	}
-	memmove(ether->ea, ltv.addr, Eaddrlen);
-
-	if(ctlr->chan == 0)
-		ctlr->chan = ltv_ins(ctlr, WTyp_Chan);
-	ctlr->apdensity = WDfltApDens;
-	ctlr->rtsthres = WDfltRtsThres;
-	ctlr->txrate = WDfltTxRate;
-	ctlr->maxlen = WMaxLen;
-	ctlr->pmena = 0;
-	ctlr->pmwait = 100;
-	ctlr->signal = 1;
-	ctlr->noise = 1;
-	ctlr->state |= Power;
-
-	// free old Ctlr struct if resetting after suspend
-	if(ether->ctlr && ether->ctlr != ctlr)
-		free(ether->ctlr);
-
-	// link to ether
-	ether->ctlr = ctlr;
-	ether->mbps = 10;
-	ether->attach = w_attach;
-	ether->detach = w_detach;
-	ether->interrupt = w_interrupt;
-	ether->transmit = w_transmit;
-	ether->ifstat = w_ifstat;
-	ether->ctl = w_ctl;
-	ether->power = w_power;
-	ether->promiscuous = w_promiscuous;
-	ether->multicast = w_multicast;
-	ether->scanbs = w_scanbs;
-	ether->arg = ether;
-
-	DEBUG("#l%d: irq %lud port %lx type %s",
-		ether->ctlrno, ether->intnum, ether->ports[0].port,	ether->type);
-	DEBUG(" %2.2ux%2.2ux%2.2ux%2.2ux%2.2ux%2.2ux\n",
-		ether->ea[0], ether->ea[1], ether->ea[2],
-		ether->ea[3], ether->ea[4], ether->ea[5]);
-
-	return 0;
-}
-
-char* wavenames[] = {
-	"WaveLAN/IEEE",
-	"TrueMobile 1150",
-	"Instant Wireless ; Network PC CARD",
-	"Instant Wireless Network PC Card",
-	"Avaya Wireless PC Card",
-	"AirLancer MC-11",
-	nil,
-};
--- a/sys/src/9/bitsy/wavelan.h
+++ /dev/null
@@ -1,1 +1,0 @@
-#include "../pc/wavelan.h"
--- a/sys/src/9/mkfile
+++ b/sys/src/9/mkfile
@@ -1,6 +1,5 @@
 ARCH=\
 	bcm\
-	bitsy\
 	kw\
 	mtx\
 	omap\