~kris/9p

9hist

a029b710e2ffc2e43b9fc605ebecb375823fc3f5 — David du Colombier 34 years ago 33b6d81
Plan 9 from Bell Labs 1991-11-05
M gnot/main.c => gnot/main.c +1 -1
@@ 149,7 149,7 @@ userinit(void)
	p->fgrp = newfgrp();

	strcpy(p->text, "*init*");
	strcpy(p->pgrp->user, "bootes");
	strcpy(p->user, "bootes");
	strcpy(user, "bootes");
	p->fpstate = FPinit;


M pc/main.c => pc/main.c +1 -1
@@ 100,7 100,7 @@ userinit(void)
	p->fgrp = newfgrp();

	strcpy(p->text, "*init*");
	strcpy(p->pgrp->user, user);
	strcpy(p->user, user);
	p->fpstate = FPinit;
	fpoff();


M port/chan.c => port/chan.c +16 -0
@@ 434,6 434,7 @@ namec(char *name, int amode, int omode, ulong perm)
	int mntok, isdot;
	char *p;
	char *elem, *nn;
	char createerr[ERRLEN];

	if(name[0] == 0)
		error(Enonexist);


@@ 590,9 591,24 @@ namec(char *name, int amode, int omode, ulong perm)
		 */
		if(c->mnt && !(c->flag&CCREATE))
			c = createdir(c);

		/*
		 *  protect against the open/create race. This is not a complete
		 *  fix. It just reduces the window.
		 */
		if(waserror()) {
			strcpy(createerr, u->error);
			nc = walk(c, elem, 1);
			if(nc == 0)
				errors(createerr);
			c = nc;
			omode |= OTRUNC;
			goto Open;
		}
		(*devtab[c->type].create)(c, elem, omode, perm);
		if(omode & OCEXEC)
			c->flag |= CCEXEC;
		poperror();
		break;

	default:

M port/devbit.c => port/devbit.c +6 -2
@@ 497,8 497,12 @@ bitread(Chan *c, void *va, long n, ulong offset)
		p = va;
		for(y=miny; y<maxy; y++){
			q = (uchar*)gaddr(&gscreen, Pt(0, y));
			for(x=0; x<l; x++)
				*p++ = K2U(*q++);
			if(flipping)
				for(x=0; x<l; x++)
					*p++ = ~K2U(*q++);
			else
				for(x=0; x<l; x++)
					*p++ = K2U(*q++);
			n += l;
		}
		break;

M port/devcons.c => port/devcons.c +6 -6
@@ 436,8 436,8 @@ consopen(Chan *c, int omode)
	case Quser:
		if(omode==(OWRITE|OTRUNC)){
			/* truncate? */
			if(strcmp(u->p->pgrp->user, "bootes") == 0)	/* BUG */
				u->p->pgrp->user[0] = 0;
			if(strcmp(u->p->user, "bootes") == 0)	/* BUG */
				u->p->user[0] = 0;
			else
				error(Eperm);
		}


@@ 586,7 586,7 @@ consread(Chan *c, void *buf, long n, ulong offset)
		return n;

	case Quser:
		return readstr(offset, buf, n, u->p->pgrp->user);
		return readstr(offset, buf, n, u->p->user);

	case Qnull:
		return 0;


@@ 719,14 719,14 @@ conswrite(Chan *c, void *va, long n, ulong offset)
		break;

	case Quser:
		if(u->p->pgrp->user[0])		/* trying to overwrite /dev/user */
		if(u->p->user[0])		/* trying to overwrite /dev/user */
			error(Eperm);
		if(offset >= NAMELEN-1)
			return 0;
		if(offset+n >= NAMELEN-1)
			n = NAMELEN-1 - offset;
		memmove(u->p->pgrp->user+offset, a, n);
		u->p->pgrp->user[offset+n] = 0;
		memmove(u->p->user+offset, a, n);
		u->p->user[offset+n] = 0;
		break;

	case Qcputime:

M port/devdk.c => port/devdk.c +2 -2
@@ 1045,7 1045,7 @@ dkcall(int type, Chan *c, char *addr, char *nuser, char *machine)
	 */
	if(strchr(addr, '\n'))
		error(Ebadarg);
	if(strlen(addr)+strlen(u->p->pgrp->user)+2 >= sizeof(dialstr))
	if(strlen(addr)+strlen(u->p->user)+2 >= sizeof(dialstr))
		error(Ebadarg);
	strcpy(dialstr, addr);
	bang = strchr(dialstr, '!');


@@ 1059,7 1059,7 @@ dkcall(int type, Chan *c, char *addr, char *nuser, char *machine)
		t_val = T_SRV;
		d_val = D_DIAL;
		strcat(dialstr, "\n");
		strcat(dialstr, u->p->pgrp->user);
		strcat(dialstr, u->p->user);
		strcat(dialstr, "\n");
		break;
	case Announce:

M port/devenv.c => port/devenv.c +1 -1
@@ 156,8 156,8 @@ envcreate(Chan *c, char *name, int omode, ulong perm)
	if(ne)
		e = ne;
	else if(eg->nenv == conf.npgenv){
		print("out of egroup envs\n");
		qunlock(&eg->ev);
		print("out of egroup envs\n");
		error(Enoenv);
	}
	i = e - eg->etab + 1;

M port/devmnt.c => port/devmnt.c +1 -1
@@ 192,7 192,7 @@ mattach(Mnt *m, char *spec, char *auth)
	}
	r->request.type = Tattach;
	r->request.fid = c->fid;
	memmove(r->request.uname, u->p->pgrp->user, NAMELEN);
	memmove(r->request.uname, u->p->user, NAMELEN);
	strncpy(r->request.aname, spec, NAMELEN);
	strncpy(r->request.auth, auth, NAMELEN);
	mountrpc(m, r);

M port/devnonet.c => port/devnonet.c +1 -1
@@ 757,7 757,7 @@ noconnect(Chan *c, char *addr)
		 *  send service name and user name
		 */
		cp->hdr->flag |= NO_SERVICE;
		sprint(buf, "%s %s", service, u->p->pgrp->user);
		sprint(buf, "%s %s", service, u->p->user);
		c->qid.path = STREAMQID(STREAMID(c->qid.path), Sdataqid);
		streamwrite(c, buf, strlen(buf), 1);
		c->qid.path = STREAMQID(STREAMID(c->qid.path), Sctlqid);

M port/devproc.c => port/devproc.c +1 -1
@@ 366,7 366,7 @@ procread(Chan *c, void *va, long n, ulong offset)
		if(offset+n > STATSIZE)
			n = STATSIZE - offset;
		j = sprint(statbuf, "%-27s %-27s %-11s ",
			p->text, p->pgrp->user, p->psstate ? p->psstate : statename[p->state]);
			p->text, p->user, p->psstate ? p->psstate : statename[p->state]);
		for(i=0; i<6; i++){
			l = p->time[i];
			if(i == TReal)

M port/fault.c => port/fault.c +14 -6
@@ 8,6 8,8 @@

#define DPRINT

void	faultexit(char*);

int
fault(ulong addr, int read)
{


@@ 160,17 162,13 @@ pio(Segment *s, ulong addr, ulong soff, Page **p)
	if(loadrec == 0) {			/* This is demand load */
		c = s->image->c;
		qlock(&c->rdl);
		/* We are unable to correctly error up throught the kernel
		 * during faults. Therefore note delivery is postponed until
		 * we leave the system. Read errors cause the process to die.
		 */
		while(waserror()) {
			if(strcmp(u->error, errstrtab[Eintr]) == 0)
				continue;
			qunlock(&c->rdl);
			kunmap(k);
			putpage(new);
			pexit("demand load I/O error", 0);
			faultexit("sys: demand load I/O error");
		}

		ask = s->flen-soff;


@@ 206,7 204,7 @@ pio(Segment *s, ulong addr, ulong soff, Page **p)
			putpage(new);
			qlock(&s->lk);
			qunlock(&s->lk);
			pexit("page in I/O error", 0);
			faultexit("sys: page in I/O error");
		}

		n = (*devtab[c->type].read)(c, kaddr, BY2PG, daddr);


@@ 231,6 229,16 @@ pio(Segment *s, ulong addr, ulong soff, Page **p)
	}
}

void
faultexit(char *s)
{
	if(u->nerrlab) {
		postnote(u->p, 1, s, NDebug);
		errors(s);
	}
	pexit(s, 0);
}

/*
 * Called only in a system call
 */

M port/pgrp.c => port/pgrp.c +0 -2
@@ 310,8 310,6 @@ pgrpcpy(Pgrp *to, Pgrp *from)
	Mhead **h, **e, *f, **l, *mh;
	Mount *n, *m, **link;

	memmove(to->user, from->user, NAMELEN);

	rlock(&from->ns);

	e = &from->mnthash[MNTHASH];

M port/portdat.h => port/portdat.h +4 -4
@@ 53,7 53,7 @@ struct Rendez

struct QLock
{
	Lock	use;			/* to use object */
	Lock	use;			/* to access Qlock structure */
	Proc	*head;			/* next process waiting for object */
	Proc	*tail;			/* last process waiting for object */
	int	locked;			/* flag */


@@ 258,8 258,8 @@ struct Mhead

enum{
	NUser,				/* note provided externally */
	NExit,				/* process should exit */
	NDebug,				/* process should hang */
	NExit,				/* deliver note quietly */
	NDebug,				/* print debug message */
};

struct Note


@@ 372,7 372,6 @@ struct Pgrp
	Pgrp	*next;			/* free list */
	int	index;			/* index in pgrp table */
	ulong	pgrpid;
	char	user[NAMELEN];
	QLock	debug;			/* single access via devproc.c */
	RWlock	ns;			/* Namespace many read/one write lock */
	Mhead	*mnthash[MNTHASH];


@@ 489,6 488,7 @@ struct Proc
	Label	sched;
	Mach	*mach;			/* machine running this proc */
	char	text[NAMELEN];
	char	user[NAMELEN];
	Proc	*rnext;			/* next process in run queue */
	Proc	*qnext;			/* next process on queue for a QLock */
	QLock	*qlock;			/* address of qlock being queued for DEBUG */

M port/proc.c => port/proc.c +4 -5
@@ 649,8 649,7 @@ procdump(void)
		p = procalloc.arena+i;
		if(p->state != Dead){
			print("%d:%s %s upc %lux %s ut %ld st %ld r %lux qpc %lux\n",
				p->pid, p->text, 
				p->pgrp ? p->pgrp->user : "pgrp=0", p->pc, 
				p->pid, p->text, p->user, p->pc, 
				statename[p->state], p->time[0], p->time[1], p->r, p->qlockpc);
		}
	}


@@ 708,15 707,15 @@ kproc(char *name, void (*func)(void *), void *arg)
	}

	user = "bootes";
	strcpy(p->user, user);
	if(kpgrp == 0){
		kpgrp = newpgrp();
		strcpy(kpgrp->user, user);
	}
	p->pgrp = kpgrp;
	incref(kpgrp);

	if(u->p->pgrp->user[0] != '\0')
		user = u->p->pgrp->user;
	if(u->p->user[0] != '\0')
		user = u->p->user;
	sprint(p->text, "%s.%.6s", name, user);

	p->nchild = 0;

M port/segment.c => port/segment.c +0 -1
@@ 364,7 364,6 @@ ibrk(ulong addr, int seg)
		if(newtop >= ns->base && newtop < ns->top) {
			qunlock(&s->lk);
			pprint("segments overlap\n");
			pexit("Suicide", 0);
			error(Esegaddr);
		}
	}

M port/stil.c => port/stil.c +106 -48
@@ 17,11 17,19 @@ static 	int 	initseq = 25000;
static	Rendez	ilackr;
char	*ilstate[] = { "Closed", "Syncer", "Syncee", "Established", "Listening", "Closing" };

enum
{
	Slowtime = 20,
	Fasttime = 1,
};

void	ilrcvmsg(Ipconv*, Block*);
void	ilackproc(void*);
void	ilsendctl(Ipconv*, Ilhdr*, int, int);
void	ilackq(Ilcb*, Block*);
void	ilprocess(Ipconv*, Ilhdr*, Block*);
void	ilpullup(Ipconv*);
void	ilhangup(Ipconv*);

void
ilopen(Queue *q, Stream *s)


@@ 181,7 189,7 @@ ilackto(Ilcb *ic, ulong ackto)
	while(ic->unacked) {
		h = (Ilhdr *)ic->unacked->rptr;
		if(ackto < nhgetl(h->ilack))
			break;	
			break;
		bp = ic->unacked;
		ic->unacked = bp->list;
		bp->list = 0;


@@ 276,13 284,13 @@ ilprocess(Ipconv *s, Ilhdr *h, Block *bp)
{
	Block *nb;
	Ilcb *ic;
	Ilhdr *oh;
	ulong id, ack, oid, dlen;
	ulong id, ack, dlen;

	id = nhgetl(h->ilid);
	ack = nhgetl(h->ilack);
	ic = &s->ilctl;

	ic->timeout = 0;
	/* Active transition machine - this tracks connection state */
	switch(ic->state) {
	case Ilsyncee:	


@@ 301,6 309,7 @@ ilprocess(Ipconv *s, Ilhdr *h, Block *bp)
			ic->recvd = id+1;
			ilsendctl(s, 0, Ilack, 1);
			ic->state = Ilestablished;
			ilpullup(s);
		}
		break;
	case Ilclosing:


@@ 308,12 317,20 @@ ilprocess(Ipconv *s, Ilhdr *h, Block *bp)
		ic->state = Ilclosed;
		/* No break */
	case Ilclosed:
		goto hungup;
		ilhangup(s);
		freeb(bp);
		return;
	}

	/* Passive actions based on packet type */
	switch(h->iltype) {
	default:
	case Ilstate:
		if(ic->unacked) {
			nb = copyb(ic->unacked, blen(ic->unacked));
			PUTNEXT(Ipoutput, nb);	
		}
		else
			ilsendctl(s, 0, Ilack, 1);
		freeb(bp);
		break;
	case Ilack:


@@ 342,45 359,68 @@ ilprocess(Ipconv *s, Ilhdr *h, Block *bp)
				s->ilctl.recvd++;
				bp->rptr += IL_EHSIZE+IL_HDRSIZE;
				PUTNEXT(s->readq, bp);
				ilpullup(s);
			}
		}
		break;
	case Ilclose:
		ic->state = Ilclosing;
	hungup:
		if(s->readq) {
			nb = allocb(0);
			nb->type = M_HANGUP;
			nb->flags |= S_DELIM;
			PUTNEXT(s->readq, nb);
		}
		ilhangup(s);
		/* No break */
	default:
		freeb(bp);
		break;
	}
}

	/* Since recvd may have changed we can process out of order packets */
	if(ic->state == Ilestablished && s->readq) {
		while(ic->outoforder) {
			bp = ic->outoforder;
			oh = (Ilhdr*)bp->rptr;
			oid = nhgetl(oh->ilid);
			if(oid > ic->recvd)
				break;
			if(oid < ic->recvd) {
				ic->outoforder = bp->list;
				freeb(bp);
			}
			if(oid == ic->recvd) {
				ic->recvd++;
				ic->outoforder = bp->list;
				bp->list = 0;
				dlen = nhgets(oh->illen)-IL_HDRSIZE;
				bp = btrim(bp, IL_EHSIZE+IL_HDRSIZE, dlen);
				PUTNEXT(s->readq, bp);
			}
		}
void
ilhangup(Ipconv *s)
{
	Block *nb;

	if(s->readq) {
		nb = allocb(0);
		nb->type = M_HANGUP;
		nb->flags |= S_DELIM;
		PUTNEXT(s->readq, nb);
	}
}

void
ilpullup(Ipconv *s)
{
	Ilcb *ic;
	Ilhdr *oh;
	ulong oid, dlen;
	Block *bp;

	if(s->readq == 0)
		return;

	ic = &s->ilctl;
	if(ic->state != Ilestablished)
		return;

	while(ic->outoforder) {
		bp = ic->outoforder;
		oh = (Ilhdr*)bp->rptr;
		oid = nhgetl(oh->ilid);
		if(oid > ic->recvd)
			break;
		if(oid < ic->recvd) {
			ic->outoforder = bp->list;
			freeb(bp);
		}
		if(oid == ic->recvd) {
			ic->recvd++;
			ic->outoforder = bp->list;
			bp->list = 0;
			dlen = nhgets(oh->illen)-IL_HDRSIZE;
			bp = btrim(bp, IL_EHSIZE+IL_HDRSIZE, dlen);
			PUTNEXT(s->readq, bp);
		}
	}
}

void
iloutoforder(Ipconv *s, Ilhdr *h, Block *bp)


@@ 391,22 431,22 @@ iloutoforder(Ipconv *s, Ilhdr *h, Block *bp)
	uchar *lid;

	ic = &s->ilctl;
	bp->list = 0;
	if(ic->outoforder == 0) {
		ic->outoforder = bp;
		bp->list = 0;
		return;
	}
	else {
		id = nhgetl(h->id);
		l = &ic->outoforder;
		for(f = *l; f; f = f->list) {
			lid = ((Ilhdr*)(bp->rptr))->ilid;
			if(id > nhgetl(lid))
				break;
			l = &f->list;
		}
		bp->list = *l;
		*l = bp;

	id = nhgetl(h->id);
	l = &ic->outoforder;
	for(f = *l; f; f = f->list) {
		lid = ((Ilhdr*)(bp->rptr))->ilid;
		if(id > nhgetl(lid))
			break;
		l = &f->list;
	}
	bp->list = *l;
	*l = bp;
}

void


@@ 460,6 500,7 @@ void
ilackproc(void *a)
{
	Ipconv *base, *end, *s;
	Ilcb *ic;
	Block *bp, *np;

	base = (Ipconv*)a;


@@ 468,14 509,30 @@ ilackproc(void *a)
	for(;;) {
		tsleep(&ilackr, return0, 0, 100);
		for(s = base; s < end; s++) {
/* Decide if we have to do the action !! */
			switch(s->ilctl.state) {
			ic = &s->ilctl;
			switch(ic->state) {
			case Ilclosed:
			case Illistening:
				break;
			case Ilclosing:
			case Ilsyncer:
				break;
			case Ilsyncee:
			case Ilsyncer:
				ilsendctl(s, 0, Ilsync, 1);
				if(++ic->timeout == Slowtime) {
					ilhangup(s);
					ic->state = Ilclosed;
					s->dst = 0;
					s->pdst = 0;
					ic->timeout = 0;
				}
				break;
			case Ilestablished:
				if(++ic->timeout == Fasttime) {
					if(ic->lastack < ic->recvd)
						ilsendctl(s, 0, Ilstate, 1);
					ic->timeout = 0;
				}
				break;
			}
		}


@@ 490,6 547,7 @@ ilstart(Ipconv *ipc, int type, int window)
	if(ic->state != Ilclosed)
		return;

	ic->timeout = 0;
	ic->unacked = 0;
	ic->outoforder = 0;
	initseq += TK2MS(MACHP(0)->ticks);

M port/stream.c => port/stream.c +1 -1
@@ 1190,7 1190,7 @@ qlook(Stream *s, char *name)
 *	pop			-- pop a line discipline
 *	look ldname		-- look for a line discipline
 *
 *  This routing is entrered with s->wrlock'ed and must unlock.
 *  This routing is entered with s->wrlock'ed and must unlock.
 */
static long
streamctlwrite(Chan *c, void *a, long n)

M port/sysproc.c => port/sysproc.c +2 -7
@@ 14,7 14,7 @@ long	rfork(ulong);
long
sysr1(ulong *arg)
{
	print("[%s %s %d] r1 = %d\n", u->p->pgrp->user, u->p->text, u->p->pid, arg[0]);
	print("[%s %s %d] r1 = %d\n", u->p->user, u->p->text, u->p->pid, arg[0]);
	return 0;
}



@@ 128,6 128,7 @@ rfork(ulong flag)
	memset(p->time, 0, sizeof(p->time));
	p->time[TReal] = MACHP(0)->ticks;
	memmove(p->text, u->p->text, NAMELEN);
	memmove(p->user, u->p->user, NAMELEN);
	/*
	 *  since the bss/data segments are now shareable,
	 *  any mmu info about this process is now stale


@@ 288,9 289,6 @@ sysexec(ulong *arg)

	memmove(p->text, elem, NAMELEN);

	if(waserror())
		pexit("fatal exec error", 0);

	/*
	 * Committed.  Free old memory. Special segments are maintained accross exec
	 */


@@ 340,7 338,6 @@ sysexec(ulong *arg)
	relocateseg(s, TSTKTOP-USTKTOP);

	close(tc);
	poperror();

	/*
	 *  At this point, the mmu contains info about the old address


@@ 478,8 475,6 @@ sysforkpgrp(ulong *arg)
	if(mask == FPall)
		mask = FPnote|FPenv|FPnamespc;

	memmove(pg->user, u->p->pgrp->user, NAMELEN);

	if(mask & FPnamespc)
		pgrpcpy(pg, u->p->pgrp);


M port/systab.h => port/systab.h +37 -7
@@ 2,13 2,43 @@
#include "/sys/src/libc/9syscall/sys.h"

typedef long Syscall(ulong*);
Syscall sysbind, sysbrk_, syschdir, sysclose, syscreate, sysdeath;
Syscall	sysdup, syserrstr, sysexec, sysexits, sysfork, sysforkpgrp;
Syscall	sysfstat, sysfwstat, sysgetpid, sysmount, sysnoted;
Syscall	sysnotify, sysopen, syspipe, sysr1, sysread, sysremove, sysseek;
Syscall syssleep, sysstat, syswait, syswrite, syswstat, sysalarm, syssegbrk;
Syscall syssegattach, syssegdetach, syssegfree, syssegflush;
Syscall sysrendezvous, sysrfork, sysunmount;

Syscall sysr1;
Syscall syserrstr;
Syscall sysbind;
Syscall syschdir;
Syscall sysclose;
Syscall sysdup;
Syscall sysalarm;
Syscall sysexec;
Syscall sysexits;
Syscall sysfork;
Syscall sysforkpgrp;
Syscall sysfstat;
Syscall syssegbrk;
Syscall sysmount;
Syscall sysopen;
Syscall sysread;
Syscall sysseek;
Syscall syssleep;
Syscall sysstat;
Syscall syswait;
Syscall syswrite;
Syscall syspipe;
Syscall syscreate;
Syscall sysrfork;
Syscall sysbrk_;
Syscall sysremove;
Syscall syswstat;
Syscall sysfwstat;
Syscall sysnotify;
Syscall sysnoted;
Syscall syssegattach;
Syscall syssegdetach;
Syscall syssegfree;
Syscall syssegflush;
Syscall sysrendezvous;
Syscall sysunmount;

Syscall *systab[]={
	[SYSR1]		sysr1,

M power/boot.h => power/boot.h +1423 -1267
@@ 1,8 1,8 @@
ulong bootcode[]={
	0x000000407,
	0x000005440,
	0x0000006b0,
	0x000001368,
	0x000005660,
	0x000000700,
	0x000001290,
	0x000000000,
	0x000001020,
	0x000000000,


@@ 17,164 17,168 @@ ulong bootcode[]={
	0x0afa10004,
	0x00c000416,
	0x0afa20008,
	0x00c000956,
	0x00c000905,
	0x0afa10004,
	0x008000412,
	0x000000027,
	0x023bdffec,
	0x0afbf0000,
	0x023c28229,
	0x0afa0000c,
	0x023c2824d,
	0x0afa20004,
	0x00c000a75,
	0x00c000a5c,
	0x0afa00008,
	0x023c38231,
	0x023c38255,
	0x0afa30004,
	0x020020001,
	0x00c000a75,
	0x00c000a5c,
	0x0afa20008,
	0x023c38239,
	0x023c3825d,
	0x0afa30004,
	0x020020001,
	0x00c000a75,
	0x00c000a5c,
	0x0afa20008,
	0x08fa4001c,
	0x08fa3001c,
	0x000000027,
	0x08c830000,
	0x024850004,
	0x0afa3000c,
	0x0afa5001c,
	0x08fa30018,
	0x024640004,
	0x0afa4001c,
	0x08fa20018,
	0x000000027,
	0x02464ffff,
	0x01880000b,
	0x0afa40018,
	0x08ca30000,
	0x02002002d,
	0x080630000,
	0x02445ffff,
	0x018a00013,
	0x0afa50018,
	0x08c820000,
	0x02003002d,
	0x080420000,
	0x000000027,
	0x01443000d,
	0x000000027,
	0x014620005,
	0x08c820000,
	0x02003006d,
	0x080420001,
	0x000000027,
	0x024a50004,
	0x0afa5001c,
	0x00800042f,
	0x02484ffff,
	0x023c38032,
	0x014430003,
	0x000000027,
	0x020020001,
	0x0afa2000c,
	0x024840004,
	0x0afa4001c,
	0x00800042e,
	0x024a5ffff,
	0x023c38026,
	0x0afa30004,
	0x023c28241,
	0x00c000a16,
	0x023c28265,
	0x00c0009e5,
	0x0afa20008,
	0x023c39882,
	0x023c39902,
	0x0afa30004,
	0x023c2824c,
	0x00c000a16,
	0x023c28270,
	0x00c0009e5,
	0x0afa20008,
	0x08fa5001c,
	0x08fa30018,
	0x020020001,
	0x01062002c,
	0x023c49882,
	0x010620029,
	0x023c49902,
	0x020020002,
	0x01062001c,
	0x010620019,
	0x000000027,
	0x0afa00004,
	0x08fa3000c,
	0x00c0005be,
	0x0afa30008,
	0x00c000707,
	0x0afa30004,
	0x08fc48006,
	0x000000027,
	0x018800003,
	0x000000027,
	0x00c000a69,
	0x00c000a44,
	0x0afa40004,
	0x08fc2802a,
	0x08fc2801a,
	0x000000027,
	0x018400004,
	0x000000027,
	0x08fc3802a,
	0x00c000a69,
	0x08fc3801a,
	0x00c000a44,
	0x0afa30004,
	0x0afc0802a,
	0x0afc0801a,
	0x0afc08006,
	0x020030001,
	0x00c000707,
	0x0afa30004,
	0x08fa2000c,
	0x00c0005be,
	0x0afa20008,
	0x08fc48006,
	0x008000453,
	0x008000459,
	0x000000027,
	0x0afa40004,
	0x08ca20000,
	0x00c000a16,
	0x00c0009e5,
	0x0afa20008,
	0x023c38032,
	0x023c38026,
	0x0afa30004,
	0x08fa2001c,
	0x000000027,
	0x08c420004,
	0x00c000a16,
	0x00c0009e5,
	0x0afa20008,
	0x00800044d,
	0x008000454,
	0x000000027,
	0x0afa40004,
	0x08ca20000,
	0x00c000a16,
	0x00c0009e5,
	0x0afa20008,
	0x00800044d,
	0x008000454,
	0x000000027,
	0x023bdfff4,
	0x0afbf0000,
	0x023c38259,
	0x0afa30004,
	0x020020002,
	0x00c000a75,
	0x0afa20008,
	0x023c28278,
	0x0afa20004,
	0x020030002,
	0x00c000a5c,
	0x0afa30008,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd000c,
	0x023bdffdc,
	0x0afbf0000,
	0x023c5809a,
	0x08ca30000,
	0x023c58092,
	0x08ca20000,
	0x000000027,
	0x01060000b,
	0x01040000b,
	0x000000027,
	0x0afa50014,
	0x08ca30000,
	0x08ca20000,
	0x000000027,
	0x0afa30004,
	0x0afa20004,
	0x08fa40028,
	0x00c000a03,
	0x00c0009d2,
	0x0afa40008,
	0x08fa50014,
	0x0142000a1,
	0x0142000a5,
	0x000000027,
	0x0afa50014,
	0x08ca20000,
	0x000000027,
	0x014400008,
	0x000000027,
	0x023c38261,
	0x00c000981,
	0x023c38280,
	0x00c000930,
	0x0afa30004,
	0x08fa20000,
	0x023bd0024,
	0x000400008,
	0x02001ffff,
	0x08fc2804e,
	0x08fc28042,
	0x000000027,
	0x014400048,
	0x000000027,
	0x023c2828f,
	0x023c282ae,
	0x0afa20004,
	0x020040002,
	0x00c000a75,
	0x00c000a5c,
	0x0afa40008,
	0x004210008,
	0x000000027,
	0x023c38298,
	0x00c000760,
	0x023c382b7,
	0x00c0007ed,
	0x0afa30004,
	0x08fa20000,
	0x023bd0024,


@@ 182,88 186,88 @@ ulong bootcode[]={
	0x02001ffff,
	0x0afa10020,
	0x0afa10004,
	0x023c482a9,
	0x023c482c8,
	0x0afa40008,
	0x02003000d,
	0x00c000a85,
	0x00c000a70,
	0x0afa3000c,
	0x08fa50020,
	0x00421000a,
	0x000000027,
	0x00c000a69,
	0x00c000a44,
	0x0afa50004,
	0x023c382b7,
	0x00c000760,
	0x023c382d6,
	0x00c0007ed,
	0x0afa30004,
	0x08fa20000,
	0x023bd0024,
	0x000400008,
	0x02001ffff,
	0x0afa50004,
	0x023c482c5,
	0x023c482e4,
	0x0afa40008,
	0x02003000c,
	0x00c000a85,
	0x00c000a70,
	0x0afa3000c,
	0x08fa50020,
	0x00421000a,
	0x000000027,
	0x00c000a69,
	0x00c000a44,
	0x0afa50004,
	0x023c382d2,
	0x00c000760,
	0x023c382f1,
	0x00c0007ed,
	0x0afa30004,
	0x08fa20000,
	0x023bd0024,
	0x000400008,
	0x02001ffff,
	0x0afa50004,
	0x023c482df,
	0x023c482fe,
	0x0afa40008,
	0x02003000c,
	0x00c000a85,
	0x00c000a70,
	0x0afa3000c,
	0x00421000b,
	0x000000027,
	0x08fa20020,
	0x00c000a69,
	0x00c000a44,
	0x0afa20004,
	0x023c382ec,
	0x00c000760,
	0x023c3830b,
	0x00c0007ed,
	0x0afa30004,
	0x08fa20000,
	0x023bd0024,
	0x000400008,
	0x02001ffff,
	0x020020001,
	0x0afc2804e,
	0x023c282f9,
	0x0afc28042,
	0x023c28318,
	0x0afa20004,
	0x020040002,
	0x00c000a75,
	0x00c000a5c,
	0x0afa40008,
	0x004210008,
	0x0afa10018,
	0x023c38308,
	0x00c000760,
	0x023c38327,
	0x00c0007ed,
	0x0afa30004,
	0x08fa20000,
	0x023bd0024,
	0x000400008,
	0x02001ffff,
	0x023c3831f,
	0x023c3833e,
	0x0afa30004,
	0x020040002,
	0x00c000a75,
	0x00c000a5c,
	0x0afa40008,
	0x00421000c,
	0x0afa1001c,
	0x08fa20018,
	0x00c000a69,
	0x00c000a44,
	0x0afa20004,
	0x023c2832d,
	0x023c2834c,
	0x0afa20004,
	0x00c000760,
	0x00c0007ed,
	0x02003ffff,
	0x08fa20000,
	0x023bd0024,


@@ 272,7 276,7 @@ ulong bootcode[]={
	0x08fa40014,
	0x000000027,
	0x08c840004,
	0x00c000a55,
	0x00c000a24,
	0x0afa40004,
	0x0afa10010,
	0x08fa4001c,


@@ 284,33 288,37 @@ ulong bootcode[]={
	0x000000027,
	0x0afa20008,
	0x08fa40010,
	0x00c000a85,
	0x00c000a70,
	0x0afa4000c,
	0x004210012,
	0x000000027,
	0x08fa2001c,
	0x00c000a69,
	0x00c000a44,
	0x0afa20004,
	0x08fa30018,
	0x00c000a69,
	0x00c000a44,
	0x0afa30004,
	0x08fa30014,
	0x000000027,
	0x08c630004,
	0x000000027,
	0x0afa30004,
	0x00c000760,
	0x00c0007ed,
	0x02002ffff,
	0x08fa20000,
	0x023bd0024,
	0x000400008,
	0x02001ffff,
	0x023c28362,
	0x0afc28022,
	0x023c38368,
	0x0afc380fe,
	0x08fa10018,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0024,
	0x008000489,
	0x00800048d,
	0x024a50008,
	0x023bdffa8,
	0x0afbf0000,


@@ 318,51 326,51 @@ ulong bootcode[]={
	0x000000027,
	0x014400038,
	0x000000027,
	0x023c28343,
	0x023c28370,
	0x0afa20004,
	0x020040002,
	0x00c000a75,
	0x00c000a5c,
	0x0afa40008,
	0x004210008,
	0x0afc1802e,
	0x023c3834a,
	0x00c000760,
	0x0afc1801e,
	0x023c38377,
	0x00c0007ed,
	0x0afa30004,
	0x08fa20000,
	0x023bd0058,
	0x000400008,
	0x02001ffff,
	0x0afa10004,
	0x023c48359,
	0x023c48386,
	0x0afa40008,
	0x02003000a,
	0x00c000a85,
	0x00c000a70,
	0x0afa3000c,
	0x08fc5802e,
	0x08fc5801e,
	0x00421000a,
	0x000000027,
	0x00c000a69,
	0x00c000a44,
	0x0afa50004,
	0x023c38364,
	0x00c000760,
	0x023c38391,
	0x00c0007ed,
	0x0afa30004,
	0x08fa20000,
	0x023bd0058,
	0x000400008,
	0x02001ffff,
	0x0afa50004,
	0x023c4836f,
	0x023c4839c,
	0x0afa40008,
	0x020030017,
	0x00c000a85,
	0x00c000a70,
	0x0afa3000c,
	0x00421000b,
	0x000000027,
	0x08fc2802e,
	0x00c000a69,
	0x08fc2801e,
	0x00c000a44,
	0x0afa20004,
	0x023c38387,
	0x00c000760,
	0x023c383b4,
	0x00c0007ed,
	0x0afa30004,
	0x08fa20000,
	0x023bd0058,


@@ 371,35 379,35 @@ ulong bootcode[]={
	0x020020001,
	0x0afc280ce,
	0x0200307d0,
	0x00c000a81,
	0x00c000a64,
	0x0afa30004,
	0x023c3839f,
	0x023c383cc,
	0x0afa30004,
	0x020040002,
	0x00c000a75,
	0x00c000a5c,
	0x0afa40008,
	0x004210008,
	0x0afa10054,
	0x023c283ab,
	0x00c000760,
	0x023c283d8,
	0x00c0007ed,
	0x0afa20004,
	0x08fa20000,
	0x023bd0058,
	0x000400008,
	0x02001ffff,
	0x023c283bf,
	0x023c283ec,
	0x0afa20004,
	0x020040002,
	0x00c000a75,
	0x00c000a5c,
	0x0afa40008,
	0x00421000c,
	0x0afc1802a,
	0x0afc1801a,
	0x08fa30054,
	0x00c000a69,
	0x00c000a44,
	0x0afa30004,
	0x023c383ca,
	0x023c383f7,
	0x0afa30004,
	0x00c000760,
	0x00c0007ed,
	0x02002ffff,
	0x08fa20000,
	0x023bd0058,


@@ 407,925 415,836 @@ ulong bootcode[]={
	0x02001ffff,
	0x023a20014,
	0x0afa20004,
	0x023c383dd,
	0x023c3840a,
	0x0afa30008,
	0x08fa2005c,
	0x00c0009cb,
	0x00c00097a,
	0x0afa2000c,
	0x023a40014,
	0x00c000a55,
	0x00c000a24,
	0x0afa40004,
	0x0afa10010,
	0x08fc4802a,
	0x08fc4801a,
	0x023a20014,
	0x0afa40004,
	0x0afa20008,
	0x08fa40010,
	0x00c000a85,
	0x00c000a70,
	0x0afa4000c,
	0x004210010,
	0x000000027,
	0x08fc2802a,
	0x00c000a69,
	0x08fc2801a,
	0x00c000a44,
	0x0afa20004,
	0x08fa30054,
	0x00c000a69,
	0x00c000a44,
	0x0afa30004,
	0x02002ffff,
	0x0afc2802a,
	0x0afc2801a,
	0x023a30014,
	0x00c000760,
	0x00c0007ed,
	0x0afa30004,
	0x08fa20000,
	0x023bd0058,
	0x000400008,
	0x02001ffff,
	0x023c28415,
	0x0afc28022,
	0x023c38418,
	0x0afc380fe,
	0x08fa10054,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0058,
	0x023bdffd8,
	0x023bdff2c,
	0x0afbf0000,
	0x08fc68006,
	0x08fa2002c,
	0x08fa300d8,
	0x00c000541,
	0x0afa30004,
	0x004210005,
	0x000000027,
	0x010400011,
	0x08fa20000,
	0x023bd00d4,
	0x000400008,
	0x02001ffff,
	0x0afa100d0,
	0x00c000627,
	0x0afa10004,
	0x08fa500d0,
	0x014200007,
	0x000000027,
	0x023c383e8,
	0x0afa30004,
	0x023c29882,
	0x0afa20008,
	0x02003008c,
	0x00c0008fe,
	0x0afa3000c,
	0x023c283f1,
	0x00c000a44,
	0x0afa50004,
	0x08fa20000,
	0x023bd00d4,
	0x000400008,
	0x02001ffff,
	0x0afa50004,
	0x023c4841d,
	0x0afa40008,
	0x0afa0000c,
	0x023c28422,
	0x0afa20010,
	0x023c48423,
	0x00c000a58,
	0x0afa40014,
	0x004210004,
	0x000000027,
	0x023c28424,
	0x00c0007ff,
	0x0afa20004,
	0x023c38032,
	0x0afa30008,
	0x02002001c,
	0x00c0008fe,
	0x0afa2000c,
	0x08fc68006,
	0x00c000a54,
	0x000000027,
	0x000002825,
	0x028a30005,
	0x010600012,
	0x0afa50020,
	0x02003ffff,
	0x0afc38006,
	0x023c38032,
	0x01023002f,
	0x000000027,
	0x010200022,
	0x000000027,
	0x023a20018,
	0x00c000a6c,
	0x0afa20004,
	0x083a3002c,
	0x000000027,
	0x010600005,
	0x000000027,
	0x023a20018,
	0x024420014,
	0x00c0007ff,
	0x0afa20004,
	0x020030002,
	0x0afa30004,
	0x023c483f8,
	0x0afa40008,
	0x020030004,
	0x00c0009e3,
	0x0afa3000c,
	0x01420015f,
	0x023c58032,
	0x024a30004,
	0x00c00047b,
	0x023c28474,
	0x00c000955,
	0x0afa20008,
	0x020030bb8,
	0x00c000a64,
	0x0afa30004,
	0x000013025,
	0x004c0014f,
	0x0afc68006,
	0x004c10008,
	0x000000027,
	0x023c28424,
	0x00c000981,
	0x020020002,
	0x0afa20004,
	0x023c38485,
	0x00c000955,
	0x0afa30008,
	0x023c28494,
	0x0afa20004,
	0x020030002,
	0x00c000a5c,
	0x0afa30008,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0028,
	0x023c38433,
	0x00c000981,
	0x023bd00d4,
	0x023c3842a,
	0x0afa30004,
	0x020020032,
	0x0a3c29732,
	0x03403ffff,
	0x0a7c39736,
	0x023c39732,
	0x023c28443,
	0x0afa20008,
	0x023c3844e,
	0x0afa3000c,
	0x00c000a30,
	0x0afa00010,
	0x023c2845e,
	0x00c0007ff,
	0x0afa20004,
	0x023c3846f,
	0x00c0007ff,
	0x0afa30004,
	0x023c48732,
	0x00c000d8b,
	0x0afa40008,
	0x08fc28006,
	0x023c48732,
	0x0080005f6,
	0x000000027,
	0x023bdffe0,
	0x0afbf0000,
	0x023c2849e,
	0x00c000930,
	0x0afa20004,
	0x020030032,
	0x0a3c39702,
	0x03402ffff,
	0x0a7c29706,
	0x023c29702,
	0x0afa20004,
	0x023c48702,
	0x00c000e0f,
	0x0afa40008,
	0x08fa30024,
	0x023c48702,
	0x0afa30004,
	0x0afa40008,
	0x0afa10024,
	0x00c000a85,
	0x0afa1001c,
	0x00c000a70,
	0x0afa1000c,
	0x08fa50024,
	0x08fa5001c,
	0x000000027,
	0x01025000c,
	0x000000027,
	0x023c2843a,
	0x023c284a5,
	0x0afa20004,
	0x00c000981,
	0x00c000930,
	0x0afa50008,
	0x023c28442,
	0x00c000760,
	0x023c284ad,
	0x00c0007ed,
	0x0afa20004,
	0x08fa20000,
	0x000000027,
	0x023bd0020,
	0x000400008,
	0x023bd0028,
	0x08fc28006,
	0x023c48732,
	0x000000825,
	0x08fa20024,
	0x023c48702,
	0x0afa20004,
	0x0afa40008,
	0x020021000,
	0x00c000a79,
	0x00c000a60,
	0x0afa2000c,
	0x01c200008,
	0x000000027,
	0x023c3844c,
	0x00c000760,
	0x023c384b7,
	0x00c0007ed,
	0x0afa30004,
	0x08fa20000,
	0x000000027,
	0x023bd0020,
	0x000400008,
	0x023bd0028,
	0x000000825,
	0x020030002,
	0x014230003,
	0x000000027,
	0x008000615,
	0x00800064b,
	0x000000027,
	0x023c38732,
	0x023c38702,
	0x0afa30004,
	0x023c49732,
	0x023c49702,
	0x0afa40008,
	0x0afa10024,
	0x00c000a89,
	0x0afa1001c,
	0x00c000b0d,
	0x0afa1000c,
	0x014200022,
	0x000000027,
	0x023c28455,
	0x023c284c0,
	0x0afa20004,
	0x08fa30024,
	0x08fa3001c,
	0x000000027,
	0x0afa30008,
	0x083c28732,
	0x083c28702,
	0x000000027,
	0x000021600,
	0x000021603,
	0x0afa2000c,
	0x083c38733,
	0x083c38703,
	0x000000027,
	0x000031e00,
	0x000031e03,
	0x0afa30010,
	0x083c28734,
	0x083c28704,
	0x000000027,
	0x000021600,
	0x000021603,
	0x0afa20014,
	0x083c38735,
	0x083c38705,
	0x000000027,
	0x000031e00,
	0x000031e03,
	0x00c000981,
	0x00c000930,
	0x0afa30018,
	0x023c28478,
	0x00c000760,
	0x023c284e3,
	0x00c0007ed,
	0x0afa20004,
	0x08fa20000,
	0x000000027,
	0x023bd0020,
	0x000400008,
	0x023bd0028,
	0x083c39732,
	0x000000825,
	0x083c39702,
	0x020020033,
	0x010620008,
	0x000000027,
	0x023c38483,
	0x00c000760,
	0x023c384ee,
	0x00c0007ed,
	0x0afa30004,
	0x08fa20000,
	0x000000027,
	0x023bd0020,
	0x000400008,
	0x023bd0028,
	0x097c29736,
	0x000000825,
	0x097c29706,
	0x03403ffff,
	0x010430008,
	0x000000027,
	0x023c2848c,
	0x00c000760,
	0x023c284f7,
	0x00c0007ed,
	0x0afa20004,
	0x08fa20000,
	0x000000027,
	0x023bd0020,
	0x000400008,
	0x023bd0028,
	0x023c3849a,
	0x00c000981,
	0x000000825,
	0x023c38505,
	0x00c000930,
	0x0afa30004,
	0x020020034,
	0x0a3c29732,
	0x0a3c29702,
	0x03403ffff,
	0x0a7c39736,
	0x023c39732,
	0x0a7c39706,
	0x023c39702,
	0x0afa30004,
	0x023c48732,
	0x00c000d8b,
	0x023c48702,
	0x00c000e0f,
	0x0afa40008,
	0x08fc28006,
	0x023c48732,
	0x08fa20024,
	0x023c48702,
	0x0afa20004,
	0x0afa40008,
	0x0afa10024,
	0x00c000a85,
	0x0afa1001c,
	0x00c000a70,
	0x0afa1000c,
	0x08fa40024,
	0x08fa4001c,
	0x000000027,
	0x010240008,
	0x000000027,
	0x023c284a5,
	0x00c000760,
	0x023c28510,
	0x00c0007ed,
	0x0afa20004,
	0x08fa20000,
	0x000000027,
	0x023bd0020,
	0x000400008,
	0x023bd0028,
	0x08fc28006,
	0x023c48732,
	0x000000825,
	0x08fa20024,
	0x023c48702,
	0x0afa20004,
	0x0afa40008,
	0x020021000,
	0x00c000a79,
	0x00c000a60,
	0x0afa2000c,
	0x01c200008,
	0x000000027,
	0x023c384b3,
	0x00c000760,
	0x023c3851e,
	0x00c0007ed,
	0x0afa30004,
	0x08fa20000,
	0x000000027,
	0x023bd0020,
	0x000400008,
	0x023bd0028,
	0x023c38732,
	0x000000825,
	0x023c38702,
	0x0afa30004,
	0x023c49732,
	0x023c49702,
	0x0afa40008,
	0x00c000a89,
	0x00c000b0d,
	0x0afa1000c,
	0x014200008,
	0x000000027,
	0x023c284c0,
	0x00c000760,
	0x023c2852b,
	0x00c0007ed,
	0x0afa20004,
	0x08fa20000,
	0x000000027,
	0x023bd0020,
	0x000400008,
	0x023bd0028,
	0x097c39736,
	0x000000825,
	0x097c39706,
	0x03402ffff,
	0x010620008,
	0x000000027,
	0x023c384cf,
	0x00c000760,
	0x023c3853a,
	0x00c0007ed,
	0x0afa30004,
	0x08fa20000,
	0x000000027,
	0x023bd0020,
	0x000400008,
	0x023bd0028,
	0x083c29732,
	0x000000825,
	0x083c29702,
	0x020030037,
	0x01443000d,
	0x000000027,
	0x020020002,
	0x0afa20004,
	0x023c384dd,
	0x023c38548,
	0x0afa30008,
	0x023c29732,
	0x023c29702,
	0x024420008,
	0x00c0009a6,
	0x00c000955,
	0x0afa2000c,
	0x08fa20000,
	0x000000027,
	0x023bd0020,
	0x000400008,
	0x023bd0028,
	0x083c39732,
	0x000000825,
	0x083c39702,
	0x020020035,
	0x010620008,
	0x000000027,
	0x023c384ed,
	0x00c000760,
	0x023c38558,
	0x00c0007ed,
	0x0afa30004,
	0x08fa20000,
	0x000000027,
	0x023bd0020,
	0x000400008,
	0x023bd0028,
	0x023c284fa,
	0x00c000981,
	0x0afa20004,
	0x023c28503,
	0x000000825,
	0x08fa20000,
	0x023bd0020,
	0x000400008,
	0x020010001,
	0x023bdff98,
	0x0afbf0000,
	0x08fc68006,
	0x08fa2006c,
	0x000000027,
	0x01040000a,
	0x000000027,
	0x023c38565,
	0x0afa30004,
	0x023c28026,
	0x0afa20008,
	0x02003001c,
	0x00c000813,
	0x0afa3000c,
	0x08fc68006,
	0x000000027,
	0x000002825,
	0x028a20005,
	0x010400012,
	0x0afa5005c,
	0x02002ffff,
	0x0afc28006,
	0x023c28026,
	0x0afa20004,
	0x023c48505,
	0x023c4856c,
	0x0afa40008,
	0x00c000a65,
	0x0afa0000c,
	0x004210008,
	0x020020004,
	0x00c000992,
	0x0afa2000c,
	0x01420009d,
	0x023c58026,
	0x024a20004,
	0x00c00047f,
	0x0afa20004,
	0x000013025,
	0x004c0008d,
	0x0afc68006,
	0x004c10008,
	0x000000027,
	0x023c28507,
	0x00c000760,
	0x023c2859d,
	0x00c000930,
	0x0afa20004,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0028,
	0x023bd0068,
	0x00c000627,
	0x0afa60004,
	0x014200005,
	0x000000027,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0068,
	0x023c385ac,
	0x0afa30004,
	0x08fc28006,
	0x00c00083f,
	0x0afa20008,
	0x023c385b1,
	0x0afa30004,
	0x08fc28006,
	0x00c00083f,
	0x0afa20008,
	0x023c385b8,
	0x00c000930,
	0x0afa30004,
	0x023c385c1,
	0x0afa30004,
	0x023c485c3,
	0x0afa40008,
	0x00c000a40,
	0x0afa0000c,
	0x004210004,
	0x000000027,
	0x023c285c5,
	0x00c0007ff,
	0x0afa20004,
	0x08fc28006,
	0x023c4850c,
	0x023c485ca,
	0x0afa20004,
	0x0afa40008,
	0x020020006,
	0x0afa2000c,
	0x023c4850e,
	0x023c485cc,
	0x0afa40010,
	0x023c2850f,
	0x00c000a71,
	0x023c285cd,
	0x00c000a58,
	0x0afa20014,
	0x004210008,
	0x004210004,
	0x000000027,
	0x023c38510,
	0x00c000760,
	0x023c385ce,
	0x00c0007ff,
	0x0afa30004,
	0x08fa20000,
	0x00c000882,
	0x000000027,
	0x000400008,
	0x023bd0028,
	0x08fc28006,
	0x00c000a69,
	0x023c285d4,
	0x00c000930,
	0x0afa20004,
	0x023c3990e,
	0x0afa30004,
	0x023c28516,
	0x0afa20008,
	0x08fa30030,
	0x00c0009cb,
	0x0afa3000c,
	0x023c28524,
	0x08fc58022,
	0x08fc380fe,
	0x000000027,
	0x010600015,
	0x000000027,
	0x023a20018,
	0x0afa20004,
	0x023c3990e,
	0x00c000981,
	0x023c385dd,
	0x0afa30008,
	0x023c3990e,
	0x00c00097a,
	0x0afa5000c,
	0x08fc380fe,
	0x023a20018,
	0x0afa30004,
	0x00c000a75,
	0x0afa00008,
	0x00421000a,
	0x0afc18006,
	0x023c3852a,
	0x0afa20008,
	0x00c000a40,
	0x0afa0000c,
	0x08fc380fe,
	0x023c285e5,
	0x0afa30004,
	0x023c2990e,
	0x0afa20008,
	0x02003008c,
	0x00c0008fe,
	0x0afa3000c,
	0x008000702,
	0x00c000a40,
	0x0afa0000c,
	0x08fc58022,
	0x000000027,
	0x00c00081a,
	0x0afa10004,
	0x004210004,
	0x010a00012,
	0x000000027,
	0x023c28533,
	0x00c000760,
	0x0afa20004,
	0x08fc38006,
	0x00c000a69,
	0x0afa30004,
	0x023c2853c,
	0x023a20018,
	0x0afa20004,
	0x023c39882,
	0x00c000981,
	0x023c385ee,
	0x0afa30008,
	0x023c39882,
	0x00c00097a,
	0x0afa5000c,
	0x023c385fe,
	0x0afa30004,
	0x00c000a75,
	0x0afa00008,
	0x00421000a,
	0x0afc18006,
	0x023c38542,
	0x023a20018,
	0x00c000930,
	0x0afa20008,
	0x023a30018,
	0x0afa30004,
	0x023c29882,
	0x023c28620,
	0x0afa20008,
	0x02003008c,
	0x00c0008fe,
	0x0afa3000c,
	0x008000720,
	0x00c000a40,
	0x0afa0000c,
	0x08fa3006c,
	0x000000027,
	0x00c000867,
	0x0afa10004,
	0x023c3854b,
	0x00c000760,
	0x010600010,
	0x000000027,
	0x023c28631,
	0x0afa20004,
	0x023c3863c,
	0x0afa30008,
	0x023c28641,
	0x0afa2000c,
	0x00c000a30,
	0x0afa00010,
	0x023c28658,
	0x00c0007ff,
	0x0afa20004,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0068,
	0x023c38645,
	0x0afa30004,
	0x023c28650,
	0x0afa20008,
	0x023c38655,
	0x0afa3000c,
	0x00c000a30,
	0x0afa00010,
	0x023c28658,
	0x00c0007ff,
	0x0afa20004,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0028,
	0x023c38408,
	0x00c000981,
	0x023bd0068,
	0x023c38581,
	0x00c000930,
	0x0afa30004,
	0x0200203e8,
	0x00c000a81,
	0x00c000a64,
	0x0afa20004,
	0x08fc68006,
	0x08fa30020,
	0x0080005d6,
	0x024650001,
	0x08fa2005c,
	0x008000718,
	0x024450001,
	0x0afa50004,
	0x023c483fd,
	0x023c48571,
	0x0afa40008,
	0x020030004,
	0x00c000992,
	0x0afa3000c,
	0x014200006,
	0x023c58026,
	0x024a30004,
	0x00c0005ca,
	0x0afa30004,
	0x00800072a,
	0x000013025,
	0x0afa50004,
	0x023c48576,
	0x0afa40008,
	0x020020003,
	0x00c0009e3,
	0x00c000992,
	0x0afa2000c,
	0x014200006,
	0x023c58032,
	0x023c58026,
	0x024a20003,
	0x00c000539,
	0x00c000541,
	0x0afa20004,
	0x0080005e8,
	0x00800072a,
	0x000013025,
	0x0afa50004,
	0x023c48401,
	0x023c4857a,
	0x0afa40008,
	0x020030006,
	0x00c0009e3,
	0x00c000992,
	0x0afa3000c,
	0x014200006,
	0x023c58032,
	0x023c58026,
	0x024a30006,
	0x00c000486,
	0x00c00048a,
	0x0afa30004,
	0x0080005e8,
	0x00800072a,
	0x000013025,
	0x00c000486,
	0x00c00048a,
	0x0afa50004,
	0x0080005e8,
	0x00800072a,
	0x000013025,
	0x023bdffac,
	0x0afbf0000,
	0x023a20014,
	0x00c000a6d,
	0x0afa20004,
	0x020030002,
	0x0afa30004,
	0x023c28560,
	0x0afa20008,
	0x08fa30058,
	0x023a20014,
	0x0afa3000c,
	0x00c0009a6,
	0x0afa20010,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0054,
	0x023bdffac,
	0x0afbf0000,
	0x023a30014,
	0x00c000a6d,
	0x00c000a4c,
	0x0afa30004,
	0x020020002,
	0x0afa20004,
	0x023c3856e,
	0x023c38663,
	0x0afa30008,
	0x08fa20058,
	0x023a30014,
	0x0afa2000c,
	0x00c0009a6,
	0x00c000955,
	0x0afa30010,
	0x00c000965,
	0x0afa00004,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0054,
	0x023bdfff0,
	0x023bdffac,
	0x0afbf0000,
	0x08fa30014,
	0x023c4857c,
	0x0afa30004,
	0x00c000a03,
	0x0afa40008,
	0x010200024,
	0x000000027,
	0x08fa30014,
	0x023c4857e,
	0x0afa30004,
	0x00c000a03,
	0x0afa40008,
	0x01020001d,
	0x000000027,
	0x023c5809a,
	0x08ca30000,
	0x000000027,
	0x010600014,
	0x000000027,
	0x0afa5000c,
	0x08ca30000,
	0x000000027,
	0x023a20014,
	0x00c000a4c,
	0x0afa20004,
	0x020030002,
	0x0afa30004,
	0x08fa40014,
	0x00c000a03,
	0x0afa40008,
	0x08fa5000c,
	0x014200005,
	0x000000027,
	0x023c28671,
	0x0afa20008,
	0x08fa30058,
	0x023a20014,
	0x0afa3000c,
	0x00c000955,
	0x0afa20010,
	0x00c000914,
	0x0afa00004,
	0x08fa20000,
	0x023bd0010,
	0x000400008,
	0x000050825,
	0x024a50008,
	0x08ca30000,
	0x000000027,
	0x01460ffee,
	0x000000027,
	0x08fa20000,
	0x023bd0010,
	0x000400008,
	0x000000825,
	0x023c5809a,
	0x08ca20000,
	0x023bd0054,
	0x023bdfeec,
	0x0afbf0000,
	0x023c2867f,
	0x0afa20004,
	0x08fa30118,
	0x000000027,
	0x01040000e,
	0x0afa30008,
	0x08fa2011c,
	0x00c000930,
	0x0afa2000c,
	0x0afa00004,
	0x023a20010,
	0x0afa20008,
	0x08fa40120,
	0x00c000a60,
	0x0afa4000c,
	0x014200003,
	0x000012825,
	0x008000815,
	0x000000027,
	0x023c38583,
	0x004210006,
	0x0afa10110,
	0x023c38688,
	0x00c0007ff,
	0x0afa30004,
	0x0afa5000c,
	0x08ca20000,
	0x00c000981,
	0x0afa20008,
	0x08fa3000c,
	0x08fa50110,
	0x000000027,
	0x024650008,
	0x08ca20000,
	0x020030001,
	0x010a3000b,
	0x000000027,
	0x01440fff4,
	0x023a20010,
	0x000a21021,
	0x0a040ffff,
	0x08fa2011c,
	0x023a30010,
	0x0afa20004,
	0x00c0009e5,
	0x0afa30008,
	0x08fa50110,
	0x000000027,
	0x08fa20000,
	0x023bd0010,
	0x023bd0114,
	0x000400008,
	0x000000825,
	0x023bdffe8,
	0x000050825,
	0x023bdffe0,
	0x0afbf0000,
	0x08fa3001c,
	0x000000027,
	0x08fa30024,
	0x02004002f,
	0x0afa30004,
	0x08fa40024,
	0x000000027,
	0x00c0009b2,
	0x0afa40008,
	0x00c000a7d,
	0x0afa0000c,
	0x004210008,
	0x010200038,
	0x000000027,
	0x023c28587,
	0x00c000760,
	0x024250001,
	0x023c28702,
	0x0afa20004,
	0x08fa20000,
	0x023bd0018,
	0x000400008,
	0x02001ffff,
	0x08fa20020,
	0x000000027,
	0x023c386aa,
	0x0afa30008,
	0x00c00097a,
	0x0afa5000c,
	0x023c28702,
	0x0afa20004,
	0x08fa40028,
	0x000000027,
	0x020040001,
	0x0afa40008,
	0x00c000a7d,
	0x0afa0000c,
	0x08fa5002c,
	0x08fa20028,
	0x000000027,
	0x010220008,
	0x000000027,
	0x023c38598,
	0x00c000760,
	0x0200201b6,
	0x00c000a48,
	0x0afa2000c,
	0x004210004,
	0x0afa10018,
	0x023c386b0,
	0x00c0007ff,
	0x0afa30004,
	0x08fa20000,
	0x023bd0018,
	0x000400008,
	0x02001ffff,
	0x018a00026,
	0x0afa5002c,
	0x08fa2001c,
	0x023c48732,
	0x023c28702,
	0x0afa20004,
	0x0afa40008,
	0x020021000,
	0x00c000a79,
	0x023c386b7,
	0x0afa30008,
	0x08fa20028,
	0x00c00097a,
	0x0afa2000c,
	0x01c200008,
	0x000000027,
	0x023c285a7,
	0x00c000760,
	0x0afa20004,
	0x08fa20000,
	0x023bd0018,
	0x000400008,
	0x02001ffff,
	0x08fa20020,
	0x023c48732,
	0x0afa20004,
	0x0afa40008,
	0x023c38702,
	0x00c000a24,
	0x0afa30004,
	0x0afa10014,
	0x00c000a85,
	0x0afa1000c,
	0x08fa50014,
	0x023c48702,
	0x00c000a24,
	0x0afa40004,
	0x0afa10010,
	0x08fa40018,
	0x023c38702,
	0x0afa40004,
	0x0afa30008,
	0x08fa40010,
	0x00c000a70,
	0x0afa4000c,
	0x08fa30014,
	0x000000027,
	0x010250008,
	0x010230004,
	0x000000027,
	0x023c285b8,
	0x00c000760,
	0x023c286ba,
	0x00c0007ff,
	0x0afa20004,
	0x08fa30018,
	0x00c000a44,
	0x0afa30004,
	0x08fa20000,
	0x023bd0018,
	0x000400008,
	0x02001ffff,
	0x08fa3002c,
	0x0080007ef,
	0x000652823,
	0x08fa20000,
	0x023bd0018,
	0x000000027,
	0x000400008,
	0x000000825,
	0x023bdffe4,
	0x023bd0020,
	0x08fa50024,
	0x008000849,
	0x000000027,
	0x023bdfefc,
	0x0afbf0000,
	0x08fa20020,
	0x023c48732,
	0x023c286c0,
	0x00c000930,
	0x0afa20004,
	0x0afa40008,
	0x020020fff,
	0x00c000a79,
	0x0afa2000c,
	0x01c200005,
	0x000000027,
	0x08fa20000,
	0x023bd001c,
	0x000400008,
	0x02001ffff,
	0x023c38732,
	0x0afa10014,
	0x000611821,
	0x0a0600000,
	0x023c285c7,
	0x023c286c8,
	0x0afa20004,
	0x020040001,
	0x00c000a75,
	0x020040002,
	0x00c000a5c,
	0x0afa40008,
	0x004210008,
	0x004210005,
	0x000000027,
	0x023c385ce,
	0x00c000760,
	0x0afa30004,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd001c,
	0x08fc680f2,
	0x023bd0104,
	0x0afa10018,
	0x0afa10004,
	0x0afa60010,
	0x0afa60008,
	0x00c000a7d,
	0x023c486d0,
	0x0afa40008,
	0x0afa0000c,
	0x023c286d8,
	0x0afa20010,
	0x023c486d9,
	0x00c000a58,
	0x0afa40014,
	0x08fa50018,
	0x08fa20010,
	0x000000027,
	0x010220007,
	0x004210007,
	0x000000027,
	0x00c000a69,
	0x00c000a44,
	0x0afa50004,
	0x08fa20000,
	0x023bd001c,
	0x000400008,
	0x02001ffff,
	0x0afa50004,
	0x023c48732,
	0x0afa40008,
	0x08fa30014,
	0x000000027,
	0x024630001,
	0x00c000a85,
	0x0afa3000c,
	0x08fa50018,
	0x08fa40014,
	0x000000027,
	0x024840001,
	0x010240007,
	0x000000027,
	0x00c000a69,
	0x0afa50004,
	0x08fa20000,
	0x023bd001c,
	0x000400008,
	0x02001ffff,
	0x00c000a69,
	0x023bd0104,
	0x00c000a44,
	0x0afa50004,
	0x08fa20000,
	0x023bd001c,
	0x000400008,
	0x000000825,
	0x023bdffe0,
	0x0afbf0000,
	0x023c385e0,
	0x023c386da,
	0x0afa30004,
	0x020040001,
	0x00c000a75,
	0x023a40090,
	0x00c000a68,
	0x0afa40008,
	0x004210008,
	0x0afa10018,
	0x023c285e7,
	0x00c000760,
	0x0afa20004,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0020,
	0x08fa20024,
	0x023c497ae,
	0x0afa20004,
	0x0afa40008,
	0x020020050,
	0x00c000a79,
	0x0afa2000c,
	0x01c20000b,
	0x004210004,
	0x000000027,
	0x023c385f9,
	0x00c000760,
	0x0afa30004,
	0x08fa20018,
	0x00c000a69,
	0x023c286e2,
	0x00c0007ff,
	0x0afa20004,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0020,
	0x023c3860e,
	0x023a30090,
	0x0afa30004,
	0x08fc297c6,
	0x00c000981,
	0x023a2001c,
	0x00c000a74,
	0x0afa20008,
	0x08fa20024,
	0x000000027,
	0x0afa20004,
	0x08fa40018,
	0x020020050,
	0x0afa40008,
	0x0afa2000c,
	0x08fc497d6,
	0x000000027,
	0x0afa40010,
	0x08fc297c6,
	0x00c0007c8,
	0x0afa20014,
	0x00421000b,
	0x000000027,
	0x023c38612,
	0x00c000760,
	0x023a30090,
	0x0afa30004,
	0x08fa20018,
	0x00c000a69,
	0x0afa20004,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0020,
	0x023c38627,
	0x0afa30004,
	0x08fc297ca,
	0x00c000981,
	0x023c286e7,
	0x0afa20008,
	0x08fa20024,
	0x000000027,
	0x0afa20004,
	0x08fa40018,
	0x000000027,
	0x0afa40008,
	0x08fc297c6,
	0x000000027,
	0x024420050,
	0x0afa2000c,
	0x08fc497d6,
	0x08fc297c6,
	0x000000027,
	0x000822021,
	0x0afa40010,
	0x08fc297ca,
	0x00c0007c8,
	0x0afa20014,
	0x00421000b,
	0x000000027,
	0x023c3862b,
	0x00c000760,
	0x0afa30004,
	0x08fa20018,
	0x00c000a69,
	0x0afa20004,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0020,
	0x023c38640,
	0x0afa30004,
	0x08fc297ce,
	0x00c000981,
	0x08fa3007c,
	0x00c00097a,
	0x0afa3000c,
	0x0afa00004,
	0x023c286eb,
	0x00c0011d5,
	0x0afa20008,
	0x08fa30018,
	0x00c000a69,
	0x0afa30004,
	0x023c38644,
	0x0afa30004,
	0x023c286f3,
	0x0afa20004,
	0x020040001,
	0x00c000a75,
	0x00c000a5c,
	0x0afa40008,
	0x004210008,
	0x0afa10018,
	0x023c2864c,
	0x00c000760,
	0x0afa20004,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0020,
	0x023c3865f,
	0x0afa30004,
	0x08fc297d2,
	0x00c000981,
	0x0afa20008,
	0x0200303e8,
	0x00c000a81,
	0x023a30090,
	0x00c000a24,
	0x0afa30004,
	0x0afa10014,
	0x08fa30018,
	0x023c497ae,
	0x0afa30004,
	0x024840024,
	0x0afa40008,
	0x020030004,
	0x00c000a85,
	0x0afa3000c,
	0x020040004,
	0x010240007,
	0x000000027,
	0x023c2866e,
	0x00c000760,
	0x0afa20004,
	0x08fa30018,
	0x00c000a69,
	0x0afa30004,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0020,
	0x023bdffec,
	0x0afbf0000,
	0x023c38681,
	0x023a20090,
	0x0afa30004,
	0x08fa20018,
	0x000000027,
	0x0afa20008,
	0x08fa3001c,
	0x00c000981,
	0x08fa30014,
	0x00c000a70,
	0x0afa3000c,
	0x0afa00004,
	0x023c38732,
	0x0afa30008,
	0x08fa40020,
	0x00c000a79,
	0x0afa4000c,
	0x014200003,
	0x000012825,
	0x008000900,
	0x000000027,
	0x004210006,
	0x0afa10010,
	0x023c2868a,
	0x00c000772,
	0x08fa20018,
	0x00c000a44,
	0x0afa20004,
	0x08fa50010,
	0x000000027,
	0x020020001,
	0x010a2000b,
	0x000000027,
	0x023c38732,
	0x000a31821,
	0x0a060ffff,
	0x08fa3001c,
	0x023c28732,
	0x0afa30004,
	0x00c000a16,
	0x0afa20008,
	0x08fa50010,
	0x000000027,
	0x08fa20000,
	0x023bd0014,
	0x000000027,
	0x000400008,
	0x000050825,
	0x023bd0104,
	0x023bdfff8,
	0x000002825,
	0x028a20021,
	0x010400011,
	0x023c697fe,
	0x023c6987e,
	0x000051080,
	0x000461021,
	0x08c420000,


@@ 1350,7 1269,7 @@ ulong bootcode[]={
	0x000002025,
	0x028820021,
	0x01040000d,
	0x023c597fe,
	0x023c5987e,
	0x000041080,
	0x000451021,
	0x08c420000,


@@ 1371,10 1290,10 @@ ulong bootcode[]={
	0x000000027,
	0x014400003,
	0x000000027,
	0x00c000965,
	0x00c000914,
	0x0afa00004,
	0x023c38052,
	0x00c000965,
	0x023c38046,
	0x00c000914,
	0x0afa30004,
	0x08fa20000,
	0x000000027,


@@ 1382,7 1301,7 @@ ulong bootcode[]={
	0x023bd0008,
	0x023bdfff0,
	0x0afbf0000,
	0x023c697fe,
	0x023c6987e,
	0x020040020,
	0x004800010,
	0x000000027,


@@ 1398,11 1317,11 @@ ulong bootcode[]={
	0x000a0f809,
	0x0ac400000,
	0x08fa4000c,
	0x023c697fe,
	0x008000969,
	0x023c6987e,
	0x008000918,
	0x02484ffff,
	0x08fa30014,
	0x00c000a61,
	0x00c000a3c,
	0x0afa30004,
	0x08fa20000,
	0x000000027,


@@ 1418,14 1337,14 @@ ulong bootcode[]={
	0x023a41020,
	0x0afa3000c,
	0x024840004,
	0x00c0011ca,
	0x00c001252,
	0x0afa40010,
	0x023a6001c,
	0x020020001,
	0x0afa20004,
	0x0afa60008,
	0x000261023,
	0x00c000a85,
	0x00c000a70,
	0x0afa2000c,
	0x0afa10014,
	0x00421000c,


@@ 1437,7 1356,7 @@ ulong bootcode[]={
	0x014400006,
	0x0afc38002,
	0x023c2800a,
	0x00c000965,
	0x00c000914,
	0x0afa20004,
	0x08fa50014,
	0x000000027,


@@ 1455,14 1374,14 @@ ulong bootcode[]={
	0x023a41024,
	0x0afa3000c,
	0x024840004,
	0x00c0011ca,
	0x00c001252,
	0x0afa40010,
	0x08fa21020,
	0x023a6001c,
	0x0afa20004,
	0x0afa60008,
	0x000261023,
	0x00c000a85,
	0x00c000a70,
	0x0afa2000c,
	0x0afa10014,
	0x00421000c,


@@ 1474,7 1393,7 @@ ulong bootcode[]={
	0x014400006,
	0x0afc38002,
	0x023c2800a,
	0x00c000965,
	0x00c000914,
	0x0afa20004,
	0x08fa50014,
	0x000000027,


@@ 1485,7 1404,7 @@ ulong bootcode[]={
	0x023bdffe4,
	0x0afbf0000,
	0x08fa50020,
	0x08fc280e6,
	0x08fc280e2,
	0x024a41000,
	0x0afa20014,
	0x0afa50004,


@@ 1494,11 1413,11 @@ ulong bootcode[]={
	0x023a40024,
	0x0afa2000c,
	0x024840004,
	0x00c0011ca,
	0x00c001252,
	0x0afa40010,
	0x08fa20014,
	0x000000027,
	0x0afc280e6,
	0x0afc280e2,
	0x08fa20020,
	0x000000027,
	0x000220823,


@@ 1538,6 1457,38 @@ ulong bootcode[]={
	0x024a50001,
	0x003e00008,
	0x000000825,
	0x023bdfff0,
	0x0afbf0000,
	0x08fa50014,
	0x083a2001b,
	0x000000027,
	0x014400008,
	0x000000027,
	0x0afa50004,
	0x00c0017ea,
	0x0afa00008,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0010,
	0x0afa0000c,
	0x0afa50004,
	0x083a4001b,
	0x000000027,
	0x000042600,
	0x000042603,
	0x00c0017ea,
	0x0afa40008,
	0x010200004,
	0x000000027,
	0x0afa1000c,
	0x0080009c1,
	0x024250001,
	0x08fa1000c,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0010,
	0x08fa30004,
	0x08fa20008,
	0x000000027,


@@ 1625,13 1576,25 @@ ulong bootcode[]={
	0x08fa20010,
	0x000000027,
	0x0afa20004,
	0x00c001762,
	0x00c0017ea,
	0x0afa00008,
	0x08fa30010,
	0x08fa20000,
	0x023bd000c,
	0x000400008,
	0x000230823,
	0x023bdfff4,
	0x0afbf0000,
	0x08fa20010,
	0x023a30010,
	0x0afa20004,
	0x024630004,
	0x00c000a50,
	0x0afa30008,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd000c,
	0x020010008,
	0x00000000c,
	0x003e00008,


@@ 1644,10 1607,22 @@ ulong bootcode[]={
	0x00000000c,
	0x003e00008,
	0x000000027,
	0x020010016,
	0x00000000c,
	0x003e00008,
	0x000000027,
	0x020010001,
	0x00000000c,
	0x003e00008,
	0x000000027,
	0x020010007,
	0x00000000c,
	0x003e00008,
	0x000000027,
	0x020010009,
	0x00000000c,
	0x003e00008,
	0x000000027,
	0x02001000d,
	0x00000000c,
	0x003e00008,


@@ 1660,18 1635,175 @@ ulong bootcode[]={
	0x00000000c,
	0x003e00008,
	0x000000027,
	0x020010010,
	0x020010011,
	0x00000000c,
	0x003e00008,
	0x000000027,
	0x020010012,
	0x00000000c,
	0x003e00008,
	0x000000027,
	0x020010011,
	0x020010013,
	0x00000000c,
	0x003e00008,
	0x000000027,
	0x020010014,
	0x00000000c,
	0x003e00008,
	0x020010014,
	0x00000000c,
	0x003e00008,
	0x000000027,
	0x023bdffec,
	0x0afbf0000,
	0x08fa50018,
	0x08fa3001c,
	0x000000027,
	0x0afa30004,
	0x0afa50010,
	0x0afa50008,
	0x02003001c,
	0x00c001932,
	0x0afa3000c,
	0x08fa20010,
	0x08fa3001c,
	0x02445001c,
	0x02463001c,
	0x0afa30004,
	0x0afa50010,
	0x0afa50008,
	0x02003001c,
	0x00c001932,
	0x0afa3000c,
	0x08fa20010,
	0x08fa3001c,
	0x02445001c,
	0x024630038,
	0x0afa30004,
	0x0afa50010,
	0x0afa50008,
	0x02003001c,
	0x00c001932,
	0x0afa3000c,
	0x08fa5001c,
	0x08fa20010,
	0x000000027,
	0x02446001c,
	0x090c30000,
	0x090c20001,
	0x0306300ff,
	0x0304200ff,
	0x000021200,
	0x090c40002,
	0x000621825,
	0x0308400ff,
	0x000042400,
	0x090c20003,
	0x000641825,
	0x0304200ff,
	0x000021600,
	0x000621825,
	0x0aca30054,
	0x024c60004,
	0x090c30000,
	0x090c20001,
	0x0306300ff,
	0x0304200ff,
	0x000021200,
	0x090c40002,
	0x000621825,
	0x0308400ff,
	0x000042400,
	0x090c20003,
	0x000641825,
	0x0304200ff,
	0x000021600,
	0x000621825,
	0x0aca30058,
	0x024c60004,
	0x090c30000,
	0x090c20001,
	0x0306300ff,
	0x0304200ff,
	0x000021200,
	0x090c40002,
	0x000621825,
	0x0308400ff,
	0x000042400,
	0x090c20003,
	0x000641825,
	0x0304200ff,
	0x000021600,
	0x000621825,
	0x0aca3005c,
	0x024c60004,
	0x090c30000,
	0x090c20001,
	0x0306300ff,
	0x0304200ff,
	0x000021200,
	0x090c40002,
	0x000621825,
	0x0308400ff,
	0x000042400,
	0x090c20003,
	0x000641825,
	0x0304200ff,
	0x000021600,
	0x000621825,
	0x0aca30060,
	0x024c60004,
	0x090c30000,
	0x090c20001,
	0x0306300ff,
	0x0304200ff,
	0x000021200,
	0x090c40002,
	0x000621825,
	0x0308400ff,
	0x000042400,
	0x090c20003,
	0x000641825,
	0x0304200ff,
	0x000021600,
	0x000621825,
	0x0aca30064,
	0x024c60004,
	0x090c30000,
	0x090c20001,
	0x0306300ff,
	0x0304200ff,
	0x000021200,
	0x090c40002,
	0x000621825,
	0x0308400ff,
	0x000042400,
	0x090c20003,
	0x000641825,
	0x0304200ff,
	0x000021600,
	0x000621825,
	0x0aca3006c,
	0x024c60008,
	0x090c30000,
	0x090c20001,
	0x0306300ff,
	0x0304200ff,
	0x000021200,
	0x000621825,
	0x0a4a30070,
	0x024c60002,
	0x090c30000,
	0x090c20001,
	0x0306300ff,
	0x0304200ff,
	0x000021200,
	0x000621825,
	0x0a4a30072,
	0x08fa20018,
	0x024c10002,
	0x000220823,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0014,
	0x023bdffec,
	0x0afbf0000,
	0x08fa6001c,


@@ 1743,10 1875,10 @@ ulong bootcode[]={
	0x0afa50010,
	0x0afa50008,
	0x020020040,
	0x00c0018aa,
	0x00c001932,
	0x0afa2000c,
	0x08fa30010,
	0x008000abc,
	0x008000b40,
	0x024650040,
	0x020020038,
	0x010620031,


@@ 1774,7 1906,7 @@ ulong bootcode[]={
	0x0afa50010,
	0x0afa50008,
	0x02003001c,
	0x00c0018aa,
	0x00c001932,
	0x0afa3000c,
	0x08fa20010,
	0x08fa3001c,


@@ 1784,7 1916,7 @@ ulong bootcode[]={
	0x0afa50010,
	0x0afa50008,
	0x02003001c,
	0x00c0018aa,
	0x00c001932,
	0x0afa3000c,
	0x08fa20010,
	0x08fa3001c,


@@ 1794,10 1926,10 @@ ulong bootcode[]={
	0x0afa50010,
	0x0afa50008,
	0x02003001c,
	0x00c0018aa,
	0x00c001932,
	0x0afa3000c,
	0x08fa20010,
	0x008000abc,
	0x008000b40,
	0x02445001c,
	0x090a30000,
	0x090a20001,


@@ 1806,7 1938,7 @@ ulong bootcode[]={
	0x000021200,
	0x000621825,
	0x024a50002,
	0x008000abc,
	0x008000b40,
	0x0a4c30008,
	0x090a20000,
	0x090a30001,


@@ 1847,7 1979,7 @@ ulong bootcode[]={
	0x000031e00,
	0x000431025,
	0x024a50004,
	0x008000abc,
	0x008000b40,
	0x0acc20010,
	0x02002003f,
	0x00043202a,


@@ 1881,10 2013,10 @@ ulong bootcode[]={
	0x0afa50010,
	0x0afa50008,
	0x02003001c,
	0x00c0018aa,
	0x00c001932,
	0x0afa3000c,
	0x08fa20010,
	0x008000abc,
	0x008000b40,
	0x02445001c,
	0x090a20000,
	0x090a30001,


@@ 1893,7 2025,7 @@ ulong bootcode[]={
	0x000031a00,
	0x000431025,
	0x024a50002,
	0x008000abc,
	0x008000b40,
	0x0a4c20002,
	0x090a30000,
	0x090a20001,


@@ 1910,7 2042,7 @@ ulong bootcode[]={
	0x000021200,
	0x000621825,
	0x024a50002,
	0x008000abc,
	0x008000b40,
	0x0a4c3000c,
	0x090a20000,
	0x090a30001,


@@ 1951,7 2083,7 @@ ulong bootcode[]={
	0x000031e00,
	0x000431025,
	0x024a50004,
	0x008000abc,
	0x008000b40,
	0x0acc20010,
	0x020020040,
	0x01062005b,


@@ 1979,7 2111,7 @@ ulong bootcode[]={
	0x0afa50010,
	0x0afa50008,
	0x02003001c,
	0x00c0018aa,
	0x00c001932,
	0x0afa3000c,
	0x08fa6001c,
	0x08fa20010,


@@ 2003,7 2135,7 @@ ulong bootcode[]={
	0x024a20004,
	0x024450001,
	0x080420000,
	0x008000abc,
	0x008000b40,
	0x0a0c2002a,
	0x090a20000,
	0x090a30001,


@@ 2044,7 2176,7 @@ ulong bootcode[]={
	0x000031e00,
	0x000431025,
	0x024a50004,
	0x008000abc,
	0x008000b40,
	0x0acc20010,
	0x090a30000,
	0x090a20001,


@@ 2056,7 2188,7 @@ ulong bootcode[]={
	0x024a20002,
	0x024450001,
	0x080420000,
	0x008000abc,
	0x008000b40,
	0x0a0c2002a,
	0x090a20000,
	0x090a30001,


@@ 2097,7 2229,7 @@ ulong bootcode[]={
	0x000031e00,
	0x000431025,
	0x024a50004,
	0x008000abc,
	0x008000b40,
	0x0acc20010,
	0x02002004c,
	0x00043202a,


@@ 2142,7 2274,7 @@ ulong bootcode[]={
	0x000021200,
	0x000621825,
	0x024a50002,
	0x008000abc,
	0x008000b40,
	0x0acc3000c,
	0x090a30000,
	0x090a20001,


@@ 2179,7 2311,7 @@ ulong bootcode[]={
	0x024450001,
	0x0acc50010,
	0x08cc2000c,
	0x008000abc,
	0x008000b40,
	0x000a22821,
	0x090a20000,
	0x090a30001,


@@ 2200,7 2332,7 @@ ulong bootcode[]={
	0x024650001,
	0x0acc50010,
	0x08cc3000c,
	0x008000abc,
	0x008000b40,
	0x000a32821,
	0x090a30000,
	0x090a20001,


@@ 2233,7 2365,7 @@ ulong bootcode[]={
	0x000021200,
	0x000621825,
	0x024a50002,
	0x008000abc,
	0x008000b40,
	0x0acc3000c,
	0x090a20000,
	0x090a30001,


@@ 2242,7 2374,7 @@ ulong bootcode[]={
	0x000031a00,
	0x000431025,
	0x024a50002,
	0x008000abc,
	0x008000b40,
	0x0a4c20002,
	0x020020049,
	0x01062001d,


@@ 2264,7 2396,7 @@ ulong bootcode[]={
	0x000021200,
	0x000621825,
	0x024a50002,
	0x008000abc,
	0x008000b40,
	0x0a4c30002,
	0x090a20000,
	0x090a30001,


@@ 2273,7 2405,7 @@ ulong bootcode[]={
	0x000031a00,
	0x000431025,
	0x024a50002,
	0x008000abc,
	0x008000b40,
	0x0a4c20002,
	0x090a30000,
	0x090a20001,


@@ 2282,7 2414,7 @@ ulong bootcode[]={
	0x000021200,
	0x000621825,
	0x024a50002,
	0x008000abc,
	0x008000b40,
	0x0a4c30002,
	0x090a20000,
	0x090a30001,


@@ 2291,7 2423,7 @@ ulong bootcode[]={
	0x000031a00,
	0x000431025,
	0x024a50002,
	0x008000abc,
	0x008000b40,
	0x0a4c20002,
	0x020020050,
	0x00043202a,


@@ 2319,7 2451,7 @@ ulong bootcode[]={
	0x000021200,
	0x000621825,
	0x024a50002,
	0x008000abc,
	0x008000b40,
	0x0a4c30002,
	0x090a20000,
	0x090a30001,


@@ 2334,10 2466,10 @@ ulong bootcode[]={
	0x0afa50010,
	0x0afa50008,
	0x020020074,
	0x00c0018aa,
	0x00c001932,
	0x0afa2000c,
	0x08fa30010,
	0x008000abc,
	0x008000b40,
	0x024650074,
	0x090a30000,
	0x090a20001,


@@ 2352,10 2484,10 @@ ulong bootcode[]={
	0x0afa50010,
	0x0afa50008,
	0x020030074,
	0x00c0018aa,
	0x00c001932,
	0x0afa3000c,
	0x08fa20010,
	0x008000abc,
	0x008000b40,
	0x024450074,
	0x090a20000,
	0x090a30001,


@@ 2378,10 2510,10 @@ ulong bootcode[]={
	0x0afa50010,
	0x0afa50008,
	0x02002001c,
	0x00c0018aa,
	0x00c001932,
	0x0afa2000c,
	0x08fa30010,
	0x008000abc,
	0x008000b40,
	0x02465001c,
	0x020020051,
	0x01062fe27,


@@ 2409,10 2541,10 @@ ulong bootcode[]={
	0x0afa50010,
	0x0afa50008,
	0x02002001e,
	0x00c0018aa,
	0x00c001932,
	0x0afa2000c,
	0x08fa30010,
	0x008000abc,
	0x008000b40,
	0x02465001e,
	0x090a30000,
	0x090a20001,


@@ 2427,7 2559,7 @@ ulong bootcode[]={
	0x0afa50010,
	0x0afa50008,
	0x02003001c,
	0x00c0018aa,
	0x00c001932,
	0x0afa3000c,
	0x08fa20010,
	0x08fa3001c,


@@ 2437,10 2569,10 @@ ulong bootcode[]={
	0x0afa50010,
	0x0afa50008,
	0x020030024,
	0x00c0018aa,
	0x00c001932,
	0x0afa3000c,
	0x08fa20010,
	0x008000abc,
	0x008000b40,
	0x024450024,
	0x023bdffec,
	0x0afbf0000,


@@ 2504,7 2636,7 @@ ulong bootcode[]={
	0x024a30008,
	0x0afa30008,
	0x020020040,
	0x00c0018aa,
	0x00c001932,
	0x0afa2000c,
	0x08fa30010,
	0x08fa2001c,


@@ 2541,7 2673,7 @@ ulong bootcode[]={
	0x024a20008,
	0x0afa20008,
	0x02003001c,
	0x00c0018aa,
	0x00c001932,
	0x0afa3000c,
	0x08fa20010,
	0x02003001c,


@@ 2552,7 2684,7 @@ ulong bootcode[]={
	0x000000027,
	0x024420024,
	0x0afa20008,
	0x00c0018aa,
	0x00c001932,
	0x0afa3000c,
	0x08fa20010,
	0x02003001c,


@@ 2563,7 2695,7 @@ ulong bootcode[]={
	0x000000027,
	0x024420040,
	0x0afa20008,
	0x00c0018aa,
	0x00c001932,
	0x0afa3000c,
	0x08fa20010,
	0x000000027,


@@ 2669,7 2801,7 @@ ulong bootcode[]={
	0x024a2000e,
	0x0afa20008,
	0x02003001c,
	0x00c0018aa,
	0x00c001932,
	0x0afa3000c,
	0x08fa20010,
	0x000000027,


@@ 2795,7 2927,7 @@ ulong bootcode[]={
	0x024a2000e,
	0x0afa20008,
	0x02003001c,
	0x00c0018aa,
	0x00c001932,
	0x0afa3000c,
	0x08fa70018,
	0x08fa20010,


@@ 3032,7 3164,7 @@ ulong bootcode[]={
	0x000000027,
	0x0afa20008,
	0x08ca3000c,
	0x00c0018aa,
	0x00c001932,
	0x0afa3000c,
	0x08fa20018,
	0x08fa30010,


@@ 3069,7 3201,7 @@ ulong bootcode[]={
	0x000000027,
	0x0afa20008,
	0x08ca3000c,
	0x00c0018aa,
	0x00c001932,
	0x0afa3000c,
	0x08fa20018,
	0x08fa30010,


@@ 3267,7 3399,7 @@ ulong bootcode[]={
	0x024a30008,
	0x0afa30008,
	0x020020074,
	0x00c0018aa,
	0x00c001932,
	0x0afa2000c,
	0x08fa30010,
	0x08fa2001c,


@@ 3291,7 3423,7 @@ ulong bootcode[]={
	0x024a20008,
	0x0afa20008,
	0x020030074,
	0x00c0018aa,
	0x00c001932,
	0x0afa3000c,
	0x08fa20010,
	0x000000027,


@@ 3326,7 3458,7 @@ ulong bootcode[]={
	0x024a3000e,
	0x0afa30008,
	0x02002001c,
	0x00c0018aa,
	0x00c001932,
	0x0afa2000c,
	0x08fa30010,
	0x08fa2001c,


@@ 3363,7 3495,7 @@ ulong bootcode[]={
	0x024a30024,
	0x0afa30008,
	0x02002001e,
	0x00c0018aa,
	0x00c001932,
	0x0afa2000c,
	0x08fa30010,
	0x08fa2001c,


@@ 3387,7 3519,7 @@ ulong bootcode[]={
	0x024a30008,
	0x0afa30008,
	0x02002001c,
	0x00c0018aa,
	0x00c001932,
	0x0afa2000c,
	0x08fa30010,
	0x020020024,


@@ 3398,7 3530,7 @@ ulong bootcode[]={
	0x000000027,
	0x024630024,
	0x0afa30008,
	0x00c0018aa,
	0x00c001932,
	0x0afa2000c,
	0x08fa30010,
	0x08fa2001c,


@@ 3408,88 3540,92 @@ ulong bootcode[]={
	0x000000027,
	0x000400008,
	0x023bd0014,
	0x020010023,
	0x00000000c,
	0x003e00008,
	0x000000027,
	0x023bdfff0,
	0x0afbf0000,
	0x03c020000,
	0x034425154,
	0x0afc28106,
	0x034425374,
	0x0afc2810e,
	0x020030001,
	0x0a3c386dd,
	0x0a3c39829,
	0x020020001,
	0x0a3c286df,
	0x0a3c2982b,
	0x020030001,
	0x0a3c386d5,
	0x0a3c39821,
	0x020020001,
	0x0a3c2871a,
	0x0a3c29866,
	0x020030001,
	0x0a3c3871e,
	0x0a3c3986a,
	0x020020001,
	0x0a3c28727,
	0x0a3c29873,
	0x03c030000,
	0x034634ac0,
	0x0afc3810a,
	0x034634ce0,
	0x0afc38112,
	0x020020002,
	0x0a3c28716,
	0x0a3c29862,
	0x020030002,
	0x0a3c38721,
	0x0a3c3986d,
	0x020020002,
	0x0a3c2872a,
	0x0a3c29876,
	0x020030002,
	0x0a3c3870a,
	0x0a3c39856,
	0x03c020000,
	0x034425208,
	0x0afc2810e,
	0x034425428,
	0x0afc28116,
	0x020030003,
	0x0a3c38717,
	0x0a3c39863,
	0x020020003,
	0x0a3c28718,
	0x0a3c29864,
	0x020030003,
	0x0a3c38719,
	0x0a3c39865,
	0x020020003,
	0x0a3c286f7,
	0x0a3c29843,
	0x020030003,
	0x0a3c386f9,
	0x0a3c39845,
	0x03c020000,
	0x03442508c,
	0x0afc28112,
	0x0344252ac,
	0x0afc2811a,
	0x020030004,
	0x0a3c38715,
	0x0a3c39861,
	0x03c020000,
	0x0344250d4,
	0x0afc28116,
	0x0344252f4,
	0x0afc2811e,
	0x020030005,
	0x0a3c38725,
	0x0a3c39871,
	0x03c020000,
	0x034425124,
	0x0afc2811a,
	0x034425344,
	0x0afc28122,
	0x020030006,
	0x0a3c386d7,
	0x0a3c39823,
	0x020020007,
	0x0afc280da,
	0x023c3999a,
	0x0afc2808e,
	0x023c3977e,
	0x0afa30004,
	0x020020001,
	0x0afa20008,
	0x020030080,
	0x00c001815,
	0x00c00189d,
	0x0afa3000c,
	0x0a3c0999a,
	0x0a3c099a3,
	0x0a3c099a4,
	0x0a3c099bf,
	0x0a3c0977e,
	0x0a3c09787,
	0x0a3c09788,
	0x0a3c097a3,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0010,
	0x023bdfffc,
	0x0afbf0000,
	0x08fc680da,
	0x08fc6808e,
	0x000000027,
	0x014c00005,
	0x000000027,
	0x00c001151,
	0x00c0011d9,
	0x000000027,
	0x08fc680da,
	0x08fc6808e,
	0x000000027,
	0x083a3000b,
	0x028c20028,


@@ 3506,19 3642,19 @@ ulong bootcode[]={
	0x000021603,
	0x000021600,
	0x000021603,
	0x023c386b2,
	0x023c397fe,
	0x000431021,
	0x024c30001,
	0x0afc380da,
	0x0afc3808e,
	0x0a0460000,
	0x000051600,
	0x000021603,
	0x000021600,
	0x000021603,
	0x023c386b2,
	0x023c397fe,
	0x000431021,
	0x080420000,
	0x023c38102,
	0x023c3810a,
	0x000021600,
	0x000021603,
	0x000021080,


@@ 3532,20 3668,20 @@ ulong bootcode[]={
	0x023bdffcc,
	0x0afbf0000,
	0x08fab0044,
	0x023ce999a,
	0x08fca80e6,
	0x023ce977e,
	0x08fca80e2,
	0x08fa60040,
	0x08fc2806a,
	0x08fc2805e,
	0x000000027,
	0x0afa2001c,
	0x08fc380d6,
	0x08fc380de,
	0x000000027,
	0x0afa30018,
	0x08fa70038,
	0x08fa3003c,
	0x000000027,
	0x0246fffff,
	0x0afcf80d6,
	0x0afcf80de,
	0x001e74823,
	0x000002825,
	0x000a9202a,


@@ 3564,9 3700,9 @@ ulong bootcode[]={
	0x000000027,
	0x000c51821,
	0x000e53821,
	0x0afc7806a,
	0x0afc7805e,
	0x001455021,
	0x0afca80e6,
	0x0afca80e2,
	0x024660001,
	0x080630000,
	0x020020025,


@@ 3586,10 3722,10 @@ ulong bootcode[]={
	0x0a0e00000,
	0x08fa3001c,
	0x000000027,
	0x0afc3806a,
	0x0afc3805e,
	0x08fa20018,
	0x000000027,
	0x0afc280d6,
	0x0afc280de,
	0x08fa20000,
	0x023bd0034,
	0x000400008,


@@ 3603,7 3739,7 @@ ulong bootcode[]={
	0x02002000a,
	0x014a20003,
	0x0254a0001,
	0x0080011da,
	0x008001262,
	0x000005025,
	0x020020009,
	0x014a2ffc2,


@@ 3611,7 3747,7 @@ ulong bootcode[]={
	0x025430007,
	0x0201cfff8,
	0x0007c5024,
	0x0080011da,
	0x008001262,
	0x000000027,
	0x02008fc18,
	0x0200dfc18,


@@ 3625,7 3761,7 @@ ulong bootcode[]={
	0x000052e03,
	0x014a00003,
	0x000000027,
	0x0080011da,
	0x008001262,
	0x024c6ffff,
	0x02002002e,
	0x014a20007,


@@ 3634,7 3770,7 @@ ulong bootcode[]={
	0x015020002,
	0x000000027,
	0x000004025,
	0x008001221,
	0x0080012a9,
	0x000006825,
	0x028a20031,
	0x014400025,


@@ 3656,11 3792,11 @@ ulong bootcode[]={
	0x000000027,
	0x014a0ffe4,
	0x000094025,
	0x0080011da,
	0x008001262,
	0x024c6ffff,
	0x014a0ffe0,
	0x000096825,
	0x0080011da,
	0x008001262,
	0x024c6ffff,
	0x02002000a,
	0x001220018,


@@ 3673,7 3809,7 @@ ulong bootcode[]={
	0x000000027,
	0x000052e00,
	0x000052e03,
	0x00800123d,
	0x0080012c5,
	0x02469ffd0,
	0x020030030,
	0x014a30006,


@@ 3681,7 3817,7 @@ ulong bootcode[]={
	0x02003fc18,
	0x011030003,
	0x000000027,
	0x00800123c,
	0x0080012c4,
	0x000000027,
	0x02002002a,
	0x014a20009,


@@ 3690,9 3826,9 @@ ulong bootcode[]={
	0x02002fc18,
	0x015020003,
	0x0256b0004,
	0x008001221,
	0x0080012a9,
	0x000054025,
	0x008001221,
	0x0080012a9,
	0x000056825,
	0x030a5007f,
	0x0afab0044,


@@ 3704,10 3840,10 @@ ulong bootcode[]={
	0x0afac0028,
	0x0afac0010,
	0x0afa50014,
	0x023c286b2,
	0x023c297fe,
	0x000451021,
	0x080420000,
	0x023c38102,
	0x023c3810a,
	0x000021600,
	0x000021603,
	0x000021080,


@@ 3716,24 3852,24 @@ ulong bootcode[]={
	0x000000027,
	0x00040f809,
	0x000000027,
	0x08fcf80d6,
	0x08fcf80de,
	0x08fad002c,
	0x08fab0044,
	0x08fca80e6,
	0x08fca80e2,
	0x08fa80030,
	0x08fc7806a,
	0x08fc7805e,
	0x08fa60040,
	0x004210005,
	0x023ce999a,
	0x023ce977e,
	0x08fa40028,
	0x000011023,
	0x008001221,
	0x0080012a9,
	0x000826025,
	0x0080011da,
	0x008001262,
	0x001615821,
	0x000e51021,
	0x024a50001,
	0x0080011dd,
	0x008001265,
	0x0a0480000,
	0x023bdfff0,
	0x0afbf0000,


@@ 3751,13 3887,13 @@ ulong bootcode[]={
	0x0afa30004,
	0x0afa40008,
	0x08fa3001c,
	0x00c00138b,
	0x00c001413,
	0x0afa3000c,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0010,
	0x0080012a3,
	0x00800132b,
	0x000042023,
	0x023bdffa8,
	0x0afbf0000,


@@ 3850,7 3986,7 @@ ulong bootcode[]={
	0x02002fc18,
	0x0afa30008,
	0x0afa2000c,
	0x00c001298,
	0x00c001320,
	0x0afa70010,
	0x08fa10028,
	0x08fa20000,


@@ 3869,12 4005,12 @@ ulong bootcode[]={
	0x024a5ffff,
	0x001651021,
	0x020040030,
	0x0080012ff,
	0x008001387,
	0x0a0440000,
	0x024a5ffff,
	0x001651021,
	0x020040078,
	0x00800131b,
	0x0080013a3,
	0x0a0440000,
	0x030e30040,
	0x01060001e,


@@ 3896,27 4032,27 @@ ulong bootcode[]={
	0x000000027,
	0x01d200003,
	0x000000027,
	0x0080012f0,
	0x008001378,
	0x000000027,
	0x01d000003,
	0x000000027,
	0x0080012f0,
	0x008001378,
	0x000000027,
	0x030e20040,
	0x01440ffa0,
	0x024a5ffff,
	0x0010a001b,
	0x0080012e5,
	0x00800136d,
	0x000003010,
	0x0010a001b,
	0x00800132c,
	0x0080013b4,
	0x000004012,
	0x0200d0001,
	0x0080012dd,
	0x008001365,
	0x000084023,
	0x08ca80000,
	0x020030004,
	0x0080012d8,
	0x008001360,
	0x0afa30028,
	0x08ca20000,
	0x000000027,


@@ 3928,15 4064,15 @@ ulong bootcode[]={
	0x000031c03,
	0x020020004,
	0x0afa20028,
	0x0080012d8,
	0x008001360,
	0x000034025,
	0x08ca80000,
	0x020030004,
	0x0080012d8,
	0x008001360,
	0x0afa30028,
	0x08ca80000,
	0x020030004,
	0x0080012d8,
	0x008001360,
	0x0afa30028,
	0x020030030,
	0x01043000a,


@@ 3944,11 4080,11 @@ ulong bootcode[]={
	0x020030048,
	0x010430003,
	0x000000027,
	0x0080012d5,
	0x00800135d,
	0x000000027,
	0x08ca90000,
	0x020030004,
	0x0080012d8,
	0x008001360,
	0x0afa30028,
	0x08ca30000,
	0x000000027,


@@ 3958,14 4094,14 @@ ulong bootcode[]={
	0x03042ffff,
	0x020030004,
	0x0afa30028,
	0x0080012d8,
	0x008001360,
	0x000024025,
	0x0080012c5,
	0x00800134d,
	0x0200a000a,
	0x0200e0001,
	0x0080012c5,
	0x00800134d,
	0x0200a0010,
	0x0080012c5,
	0x00800134d,
	0x0200a0008,
	0x020030075,
	0x011430006,


@@ 3973,22 4109,22 @@ ulong bootcode[]={
	0x020030078,
	0x01143fff7,
	0x000000027,
	0x0080012c5,
	0x00800134d,
	0x000000027,
	0x0200a000a,
	0x0080012c5,
	0x00800134d,
	0x034e70020,
	0x023bdfff0,
	0x0afbf0000,
	0x08fa30014,
	0x00c000a55,
	0x00c000a24,
	0x0afa30004,
	0x08fac0014,
	0x08faa0018,
	0x08fc980d6,
	0x08fc880e6,
	0x08fc980de,
	0x08fc880e2,
	0x08fa7001c,
	0x08fc6806a,
	0x08fc6805e,
	0x02002fc18,
	0x011420003,
	0x000012825,


@@ 4006,25 4142,25 @@ ulong bootcode[]={
	0x000000027,
	0x01ce00003,
	0x000000027,
	0x00800139b,
	0x008001423,
	0x000000027,
	0x000c9202b,
	0x010800005,
	0x000000027,
	0x000061025,
	0x024c60001,
	0x0afc6806a,
	0x0afc6805e,
	0x0a04b0000,
	0x025080001,
	0x02002000a,
	0x015620008,
	0x0afc880e6,
	0x0afc880e2,
	0x000004025,
	0x0afc080e6,
	0x0afc080e2,
	0x02003fc18,
	0x010e3ffe3,
	0x000000027,
	0x00800139b,
	0x008001423,
	0x024e7ffff,
	0x020020009,
	0x01562fff9,


@@ 4034,8 4170,8 @@ ulong bootcode[]={
	0x0007c4024,
	0x02003fc18,
	0x010e3ffd8,
	0x0afc880e6,
	0x00800139b,
	0x0afc880e2,
	0x008001423,
	0x024e7ffff,
	0x02002fc18,
	0x011420003,


@@ 4055,13 4191,13 @@ ulong bootcode[]={
	0x000000027,
	0x000061825,
	0x024c60001,
	0x0afc6806a,
	0x0afc6805e,
	0x020040020,
	0x0a0640000,
	0x025080001,
	0x024a50001,
	0x0080013d0,
	0x0afc880e6,
	0x008001458,
	0x0afc880e2,
	0x000aa202a,
	0x01080ffba,
	0x000000027,


@@ 4070,24 4206,24 @@ ulong bootcode[]={
	0x000000027,
	0x000061025,
	0x024c60001,
	0x0afc6806a,
	0x0afc6805e,
	0x020040020,
	0x0a0440000,
	0x025080001,
	0x024a50001,
	0x0080013df,
	0x0afc880e6,
	0x008001467,
	0x0afc880e2,
	0x023bdffe4,
	0x0afbf0000,
	0x08fc280da,
	0x08fc2808e,
	0x000000027,
	0x01440001f,
	0x000000027,
	0x00c001151,
	0x00c0011d9,
	0x000000027,
	0x08fa40030,
	0x08fa30020,
	0x023c186b2,
	0x023c197fe,
	0x0afa30004,
	0x08fa20024,
	0x000240821,


@@ 4100,7 4236,7 @@ ulong bootcode[]={
	0x0afa20010,
	0x0afa40014,
	0x080210000,
	0x023c28102,
	0x023c2810a,
	0x000010e00,
	0x000010e03,
	0x000010880,


@@ 4124,7 4260,7 @@ ulong bootcode[]={
	0x0afa30004,
	0x0afa00008,
	0x02002fc18,
	0x00c00138b,
	0x00c001413,
	0x0afa2000c,
	0x08fa20000,
	0x023bd001c,


@@ 4142,7 4278,7 @@ ulong bootcode[]={
	0x08fa3001c,
	0x02002fc18,
	0x0afa30008,
	0x00c00138b,
	0x00c001413,
	0x0afa2000c,
	0x08fa20000,
	0x023bd0014,


@@ 4162,20 4298,20 @@ ulong bootcode[]={
	0x000000027,
	0x0afa3000c,
	0x08fa20024,
	0x00c001298,
	0x00c001320,
	0x0afa20010,
	0x08fa20000,
	0x023bd0014,
	0x000400008,
	0x020010004,
	0x08fc5806a,
	0x08fc280d6,
	0x08fc5805e,
	0x08fc280de,
	0x000000027,
	0x000a2202b,
	0x010800005,
	0x000000027,
	0x024a20001,
	0x0afc2806a,
	0x0afc2805e,
	0x020040025,
	0x0a0a40000,
	0x003e00008,


@@ 4236,18 4372,18 @@ ulong bootcode[]={
	0x0e7a6004c,
	0x0e7a70004,
	0x0e7a60008,
	0x00c001851,
	0x00c0018d9,
	0x000000027,
	0x01020000e,
	0x000000027,
	0x023c2801a,
	0x023c280ee,
	0x0afa20004,
	0x08fa300a8,
	0x02002fc18,
	0x0afa30008,
	0x0afa2000c,
	0x08fa300b0,
	0x00c001298,
	0x00c001320,
	0x0afa30010,
	0x08fa20000,
	0x023bd00a0,


@@ 4258,18 4394,18 @@ ulong bootcode[]={
	0x020030001,
	0x0e7a10004,
	0x0e7a00008,
	0x00c001881,
	0x00c001909,
	0x0afa3000c,
	0x01020000e,
	0x000000027,
	0x023c2801e,
	0x023c280f2,
	0x0afa20004,
	0x08fa300a8,
	0x02002fc18,
	0x0afa30008,
	0x0afa2000c,
	0x08fa300b0,
	0x00c001298,
	0x00c001320,
	0x0afa30010,
	0x08fa20000,
	0x023bd00a0,


@@ 4280,21 4416,21 @@ ulong bootcode[]={
	0x02003ffff,
	0x0e7a10004,
	0x0e7a00008,
	0x00c001881,
	0x00c001909,
	0x0afa3000c,
	0x08fad00b4,
	0x08fac00ac,
	0x023a90050,
	0x01020000e,
	0x023ae0078,
	0x023c28023,
	0x023c280f7,
	0x0afa20004,
	0x08fa300a8,
	0x02002fc18,
	0x0afa30008,
	0x0afa2000c,
	0x08fa300b0,
	0x00c001298,
	0x00c001320,
	0x0afa30010,
	0x08fa20000,
	0x023bd00a0,


@@ 4338,14 4474,14 @@ ulong bootcode[]={
	0x023a20034,
	0x0e7a10004,
	0x0e7a00008,
	0x00c00178e,
	0x00c001816,
	0x0afa2000c,
	0x08fa20034,
	0x04444f800,
	0x044821000,
	0x034850003,
	0x0c7c580de,
	0x0c7c480e2,
	0x0c7c580d6,
	0x0c7c480da,
	0x0468010a1,
	0x046241002,
	0x038a50002,


@@ 4362,7 4498,7 @@ ulong bootcode[]={
	0x000023043,
	0x0afa60030,
	0x000061023,
	0x00c001739,
	0x00c0017c1,
	0x0afa20004,
	0x0c7a30048,
	0x0c7a2004c,


@@ 4374,7 4510,7 @@ ulong bootcode[]={
	0x08fa30034,
	0x000000027,
	0x000431023,
	0x00c001739,
	0x00c0017c1,
	0x0afa20004,
	0x08fad00b4,
	0x023ae0078,


@@ 4397,7 4533,7 @@ ulong bootcode[]={
	0x08fa30034,
	0x000000027,
	0x000431023,
	0x00c001739,
	0x00c0017c1,
	0x0afa20004,
	0x08fad00b4,
	0x08fac00ac,


@@ 4406,10 4542,10 @@ ulong bootcode[]={
	0x0c7a2003c,
	0x000000027,
	0x046201182,
	0x008001522,
	0x0080015aa,
	0x023ae0078,
	0x0c7c180ea,
	0x0c7c080ee,
	0x0c7c180e6,
	0x0c7c080ea,
	0x000000027,
	0x04626003e,
	0x000000027,


@@ 4423,7 4559,7 @@ ulong bootcode[]={
	0x08fa30034,
	0x000000027,
	0x000431023,
	0x00c001739,
	0x00c0017c1,
	0x0afa20004,
	0x08fad00b4,
	0x08fac00ac,


@@ 4432,7 4568,7 @@ ulong bootcode[]={
	0x0c7a2003c,
	0x000000027,
	0x046201182,
	0x008001539,
	0x0080015c1,
	0x023ae0078,
	0x02003fc18,
	0x015830002,


@@ 4467,7 4603,7 @@ ulong bootcode[]={
	0x0200cffff,
	0x0afac00ac,
	0x0200d0065,
	0x0080014e6,
	0x00800156e,
	0x0afad00b4,
	0x0c7a70048,
	0x0c7a6004c,


@@ 4481,7 4617,7 @@ ulong bootcode[]={
	0x08fa30034,
	0x02002ffff,
	0x000431023,
	0x00c001739,
	0x00c0017c1,
	0x0afa20004,
	0x08fad00b4,
	0x023ae0078,


@@ 4503,7 4639,7 @@ ulong bootcode[]={
	0x000671823,
	0x004600134,
	0x0afa7002c,
	0x00c001739,
	0x00c0017c1,
	0x0afa30004,
	0x0c7a30040,
	0x0c7a20044,


@@ 4512,7 4648,7 @@ ulong bootcode[]={
	0x046201083,
	0x0e7a30004,
	0x0e7a20008,
	0x00c0016f7,
	0x00c00177f,
	0x000000027,
	0x08fad00b4,
	0x023ae0078,


@@ 4570,7 4706,7 @@ ulong bootcode[]={
	0x024e70001,
	0x02484fff6,
	0x0a0440001,
	0x0080015c9,
	0x008001651,
	0x024c6ffff,
	0x010e00007,
	0x0200b0001,


@@ 4638,7 4774,7 @@ ulong bootcode[]={
	0x020030030,
	0x0a0430000,
	0x024e7ffff,
	0x008001610,
	0x008001698,
	0x024c60001,
	0x019000013,
	0x000000027,


@@ 4658,7 4794,7 @@ ulong bootcode[]={
	0x0256b0001,
	0x0a0430000,
	0x02508ffff,
	0x008001621,
	0x0080016a9,
	0x024c60001,
	0x08fa300b0,
	0x000000027,


@@ 4687,7 4823,7 @@ ulong bootcode[]={
	0x0afa30008,
	0x0afa2000c,
	0x08fa300b0,
	0x00c001298,
	0x00c001320,
	0x0afa30010,
	0x08fa20000,
	0x023bd00a0,


@@ 4743,19 4879,19 @@ ulong bootcode[]={
	0x000001810,
	0x024630030,
	0x0a0430000,
	0x008001648,
	0x0080016d0,
	0x024c60001,
	0x000061825,
	0x001231021,
	0x02003002b,
	0x0a0430000,
	0x008001669,
	0x0080016f1,
	0x024c60001,
	0x000061025,
	0x001221821,
	0x020020065,
	0x0a0620000,
	0x00800165f,
	0x0080016e7,
	0x024c60001,
	0x020030067,
	0x011a30006,


@@ 4763,7 4899,7 @@ ulong bootcode[]={
	0x020030068,
	0x011a30003,
	0x000000027,
	0x008001642,
	0x0080016ca,
	0x000000027,
	0x024c7ffff,
	0x004e00006,


@@ 4783,11 4919,11 @@ ulong bootcode[]={
	0x000000027,
	0x01107ff93,
	0x000073025,
	0x008001642,
	0x0080016ca,
	0x024c60001,
	0x0080016a7,
	0x00800172f,
	0x02508ffff,
	0x00800169f,
	0x008001727,
	0x024e7ffff,
	0x08fa30034,
	0x02002ffff,


@@ 4797,7 4933,7 @@ ulong bootcode[]={
	0x000003825,
	0x08fa30034,
	0x0200d0068,
	0x0080015fd,
	0x008001685,
	0x001835023,
	0x08fa200b0,
	0x000000027,


@@ 4808,17 4944,17 @@ ulong bootcode[]={
	0x001221821,
	0x02002002b,
	0x0a0620000,
	0x0080015ee,
	0x008001676,
	0x024c60001,
	0x0c7c180ea,
	0x0c7c080ee,
	0x0c7c180e6,
	0x0c7c080ea,
	0x000000027,
	0x046203182,
	0x0e7a70040,
	0x0e7a60044,
	0x0e7a70004,
	0x0e7a60008,
	0x00c0016f7,
	0x00c00177f,
	0x000000027,
	0x08fad00b4,
	0x023ae0078,


@@ 4845,14 4981,14 @@ ulong bootcode[]={
	0x046222181,
	0x0e7a70040,
	0x0e7a60044,
	0x0080015c0,
	0x008001648,
	0x000000027,
	0x00800155c,
	0x0080015e4,
	0x0258cffff,
	0x020020001,
	0x0afa20014,
	0x025ad0020,
	0x0080014e6,
	0x00800156e,
	0x0afad00b4,
	0x023bdffe8,
	0x0afbf0000,


@@ 4869,7 5005,7 @@ ulong bootcode[]={
	0x04624c081,
	0x0e7a30004,
	0x0e7a20008,
	0x00c0017dc,
	0x00c001864,
	0x0afa2000c,
	0x04620c032,
	0x000000027,


@@ 4898,7 5034,7 @@ ulong bootcode[]={
	0x023a2001c,
	0x0e7a30004,
	0x0e7a20008,
	0x00c0017dc,
	0x00c001864,
	0x0afa2000c,
	0x0c7a1001c,
	0x0c7a00020,


@@ 4914,7 5050,7 @@ ulong bootcode[]={
	0x04624c081,
	0x0e7a30004,
	0x0e7a20008,
	0x00c0016f7,
	0x00c00177f,
	0x000000027,
	0x08fa20000,
	0x023bd000c,


@@ 4927,7 5063,7 @@ ulong bootcode[]={
	0x004810008,
	0x000000027,
	0x000041023,
	0x00c001739,
	0x00c0017c1,
	0x0afa20004,
	0x08fa20000,
	0x023bd0014,


@@ 4937,7 5073,7 @@ ulong bootcode[]={
	0x01060000a,
	0x000000027,
	0x000041880,
	0x023c2806e,
	0x023c28066,
	0x000621821,
	0x08c630000,
	0x08fa20000,


@@ 4948,12 5084,12 @@ ulong bootcode[]={
	0x000042843,
	0x0afa50010,
	0x000851823,
	0x00c001739,
	0x00c0017c1,
	0x0afa30004,
	0x0e7a10008,
	0x0e7a0000c,
	0x08fa20010,
	0x00c001739,
	0x00c0017c1,
	0x0afa20004,
	0x0c7a30008,
	0x0c7a2000c,


@@ 5108,7 5244,7 @@ ulong bootcode[]={
	0x00045202a,
	0x014800013,
	0x000000027,
	0x08fc380f6,
	0x08fc38102,
	0x08fa40008,
	0x000a31807,
	0x0201cffff,


@@ 5130,7 5266,7 @@ ulong bootcode[]={
	0x00065202a,
	0x01480fff3,
	0x000000027,
	0x08fc380fa,
	0x08fc38106,
	0x024a2ffea,
	0x000431007,
	0x0201cffff,


@@ 5138,7 5274,7 @@ ulong bootcode[]={
	0x08fa4000c,
	0x000000027,
	0x000821024,
	0x0080017fd,
	0x008001885,
	0x0afa2000c,
	0x023bdfff0,
	0x08fa3001c,


@@ 5219,7 5355,7 @@ ulong bootcode[]={
	0x000000825,
	0x0e7a50004,
	0x0e7a40008,
	0x00c001881,
	0x00c001909,
	0x0afa0000c,
	0x014200005,
	0x000000027,


@@ 5397,7 5533,7 @@ ulong bootcode[]={
	0x000000027,
	0x0a0c8ffff,
	0x024c6ffff,
	0x008001910,
	0x008001998,
	0x024e7ffff,
	0x000000000,
	0x000000000,


@@ 5405,10 5541,7 @@ ulong bootcode[]={
	0x074206572,
	0x0726f7273,
	0x000000000,
	0x04e614e00,
	0x02b496e66,
	0x0002d496e,
	0x066000000,
	0x000000000,
	0x000000000,
	0x000000000,
	0x000000000,


@@ 5426,6 5559,7 @@ ulong bootcode[]={
	0x061747573,
	0x000000000,
	0x000000000,
	0x000000000,
	0x000000001,
	0x00000000a,
	0x000000064,


@@ 5437,18 5571,18 @@ ulong bootcode[]={
	0x005f5e100,
	0x03b9aca00,
	0x000000000,
	0x0000071a0,
	0x0000071a5,
	0x0000071ba,
	0x0000071c1,
	0x0000071d6,
	0x0000071dc,
	0x0000071f1,
	0x0000071a8,
	0x0000071ad,
	0x0000071c2,
	0x0000071c9,
	0x0000071de,
	0x0000071e4,
	0x0000071f9,
	0x00000720e,
	0x000007212,
	0x000000000,
	0x000000000,
	0x000007201,
	0x000007216,
	0x00000721a,
	0x00000722f,
	0x000007236,
	0x000000000,
	0x000000000,
	0x000000000,


@@ 5457,13 5591,17 @@ ulong bootcode[]={
	0x03fd34413,
	0x055475a32,
	0x000000000,
	0x000000000,
	0x040240000,
	0x000000000,
	0x0803ff000,
	0x04e614e00,
	0x02b496e66,
	0x0002d496e,
	0x066000000,
	0x000000000,
	0x0001fffff,
	0x07fffffff,
	0x000000000,
	0x000004fb8,
	0x0000051d8,
	0x000000000,
	0x000000000,
	0x000000000,


@@ 5536,7 5674,14 @@ ulong bootcode[]={
	0x074203038,
	0x030303262,
	0x030343236,
	0x035640023,
	0x035640066,
	0x06f726e61,
	0x07800636f,
	0x06e6e6563,
	0x074203030,
	0x030303737,
	0x030316432,
	0x062610023,
	0x0632f636f,
	0x06e730023,
	0x0632f636f,


@@ 5547,288 5692,299 @@ ulong bootcode[]={
	0x06f6f7465,
	0x073002f6d,
	0x06970732f,
	0x039706f77,
	0x065720023,
	0x0332f6269,
	0x074330063,
	0x0616e2774,
	0x020636f6e,
	0x076657274,
	0x0206e6f6e,
	0x065742061,
	0x039002333,
	0x02f626974,
	0x033006361,
	0x06e277420,
	0x0636f6e76,
	0x065727420,
	0x06e6f6e65,
	0x074206164,
	0x064726573,
	0x07320746f,
	0x020657468,
	0x065722061,
	0x064647265,
	0x073732074,
	0x06f206574,
	0x068657220,
	0x061646472,
	0x06573730a,
	0x000236c2f,
	0x073730a00,
	0x0236c2f31,
	0x02f63746c,
	0x0006f7065,
	0x06e696e67,
	0x020236c2f,
	0x0312f6374,
	0x06c006f70,
	0x0656e696e,
	0x06720236c,
	0x02f312f63,
	0x0746c0063,
	0x06f6e6e65,
	0x063742030,
	0x078393030,
	0x000636f6e,
	0x06e656374,
	0x020307839,
	0x030300070,
	0x06c00636f,
	0x06e6e6563,
	0x074203078,
	0x039303000,
	0x0636f6e6e,
	0x065637420,
	0x030783930,
	0x030007075,
	0x07368206e,
	0x06f657468,
	0x065720070,
	0x075736820,
	0x06e6f6574,
	0x068657200,
	0x070757368,
	0x0206e6f65,
	0x074686572,
	0x0636f6e66,
	0x06967206e,
	0x06f6e6574,
	0x000636f6e,
	0x066696720,
	0x06e6f6e65,
	0x07400636f,
	0x06e666967,
	0x0206e6f6e,
	0x065740023,
	0x06e6e6f6e,
	0x065742f32,
	0x02f646174,
	0x061006f70,
	0x0656e696e,
	0x06720236e,
	0x07400236e,
	0x06e6f6e65,
	0x0742f322f,
	0x064617461,
	0x000236e6e,
	0x0006f7065,
	0x06e696e67,
	0x020236e6e,
	0x06f6e6574,
	0x02f322f63,
	0x0746c006f,
	0x070656e69,
	0x06e672023,
	0x06e6e6f6e,
	0x065742f32,
	0x02f322f64,
	0x061746100,
	0x0236e6e6f,
	0x06e65742f,
	0x0322f6374,
	0x06c006f70,
	0x0656e696e,
	0x06720236e,
	0x06e6f6e65,
	0x0742f322f,
	0x063746c00,
	0x06e6f6e65,
	0x07400236e,
	0x06e6f6e65,
	0x074002368,
	0x02f63746c,
	0x00023682f,
	0x0006f7065,
	0x06e696e67,
	0x02023682f,
	0x063746c00,
	0x06f70656e,
	0x0696e6720,
	0x023682f63,
	0x0746c0070,
	0x070757368,
	0x020646b6d,
	0x075780070,
	0x075736820,
	0x0646b6d75,
	0x078007075,
	0x073682064,
	0x06b6d7578,
	0x000636f6e,
	0x066696720,
	0x034203235,
	0x036207265,
	0x073746172,
	0x07420646b,
	0x000636f6e,
	0x066696720,
	0x034203235,
	0x036207265,
	0x073746172,
	0x07420646b,
	0x000236b64,
	0x06b2f352f,
	0x064617461,
	0x07800636f,
	0x06e666967,
	0x020342032,
	0x035362072,
	0x065737461,
	0x072742064,
	0x06b00636f,
	0x06e666967,
	0x020342032,
	0x035362072,
	0x065737461,
	0x072742064,
	0x06b00236b,
	0x0646b2f35,
	0x02f646174,
	0x061006f70,
	0x0656e696e,
	0x06720236b,
	0x0646b2f35,
	0x02f646174,
	0x06100236b,
	0x0646b2f35,
	0x02f63746c,
	0x0006f7065,
	0x06e696e67,
	0x020236b64,
	0x06b2f352f,
	0x064617461,
	0x000236b64,
	0x06b2f352f,
	0x063746c00,
	0x06f70656e,
	0x0696e6720,
	0x0236b646b,
	0x02f352f63,
	0x0746c0063,
	0x06f6e6e65,
	0x063742025,
	0x07300626f,
	0x06f746669,
	0x06c650073,
	0x065727665,
	0x072006269,
	0x074210064,
	0x06b21006e,
	0x06f6e6574,
	0x021006361,
	0x06e277420,
	0x0636f6e6e,
	0x06563742c,
	0x020726574,
	0x07279696e,
	0x0672e2e2e,
	0x00a006361,
	0x06e277420,
	0x0636f6e6e,
	0x06563740a,
	0x0006e6f70,
	0x02e2e2e00,
	0x06e203d20,
	0x025640a00,
	0x077726974,
	0x065206e6f,
	0x070007265,
	0x06164206e,
	0x06f70006e,
	0x065637420,
	0x025730064,
	0x06b00236b,
	0x0646b002f,
	0x064657600,
	0x000006d6f,
	0x0756e7400,
	0x02f646576,
	0x02f6d6970,
	0x0732f6269,
	0x06e2f686f,
	0x074726f64,
	0x0626f6f74,
	0x000686f74,
	0x0726f6462,
	0x06f6f7400,
	0x02f646576,
	0x02f686f62,
	0x06269742f,
	0x0686f7400,
	0x065786563,
	0x06c20686f,
	0x074726f64,
	0x0626f6f74,
	0x000666f72,
	0x06b00736c,
	0x065657020,
	0x033207365,
	0x0636f6e64,
	0x0730a0067,
	0x06f20666f,
	0x072206974,
	0x02e2e2e2e,
	0x00a002348,
	0x02f686f74,
	0x0726f6400,
	0x06e6f702e,
	0x02e2e006e,
	0x0203d2025,
	0x0643b2062,
	0x07566203d,
	0x0640a0077,
	0x072697465,
	0x0206e6f70,
	0x000726561,
	0x064206e6f,
	0x070006e20,
	0x03d202564,
	0x03b206275,
	0x066203d20,
	0x0252e3278,
	0x020252e32,
	0x07820252e,
	0x032782025,
	0x02e327820,
	0x0252e3278,
	0x00a00666f,
	0x0726d6174,
	0x0206e6f70,
	0x0006e6f74,
	0x020526e6f,
	0x070007461,
	0x067206e6f,
	0x074204e4f,
	0x054414700,
	0x073657373,
	0x0696f6e2e,
	0x02e2e0077,
	0x072697465,
	0x020736573,
	0x073696f6e,
	0x000726561,
	0x064207365,
	0x07373696f,
	0x06e00666f,
	0x0726d6174,
	0x020736573,
	0x073696f6e,
	0x02e32780a,
	0x000666f72,
	0x06d617420,
	0x06e6f7000,
	0x06e6f7420,
	0x0526e6f70,
	0x000746167,
	0x0206e6f74,
	0x0204e4f54,
	0x041470062,
	0x06f6f743a,
	0x020657272,
	0x06f722025,
	0x0730a006e,
	0x06f742052,
	0x041470073,
	0x065737369,
	0x06f6e2e2e,
	0x02e007772,
	0x069746520,
	0x073657373,
	0x0696f6e00,
	0x06d6f756e,
	0x0742e2e2e,
	0x0002f002f,
	0x00062696e,
	0x064002f00,
	0x000006d6f,
	0x0756e7400,
	0x02f6d6970,
	0x0732f636f,
	0x06e662f25,
	0x073002573,
	0x02e2e2e00,
	0x0636f6e66,
	0x066696c65,
	0x000726561,
	0x064636f6e,
	0x066002573,
	0x02e2e2e00,
	0x0626f6f74,
	0x066696c65,
	0x000636f75,
	0x06c646e27,
	0x074207265,
	0x06164206b,
	0x065726e65,
	0x06c00626f,
	0x072656164,
	0x020736573,
	0x073696f6e,
	0x000666f72,
	0x06d617420,
	0x073657373,
	0x0696f6e00,
	0x074616720,
	0x06e6f7420,
	0x04e4f5441,
	0x04700626f,
	0x06f743a20,
	0x025733a20,
	0x025730a00,
	0x0626f6f74,
	0x03a202573,
	0x03a202573,
	0x00a003f00,
	0x068656c70,
	0x00025730a,
	0x000736565,
	0x06b696e67,
	0x020626f6f,
	0x07466696c,
	0x065007365,
	0x0656b696e,
	0x067202362,
	0x02f6d656d,
	0x000726561,
	0x064696e67,
	0x020626f6f,
	0x07466696c,
	0x065007772,
	0x06974696e,
	0x067202362,
	0x02f6d656d,
	0x00023622f,
	0x06d656d00,
	0x063616e27,
	0x074206f70,
	0x0656e2023,
	0x0622f6d65,
	0x06d002362,
	0x02f6d656d,
	0x00063616e,
	0x02774206f,
	0x070656e20,
	0x023622f6d,
	0x0656d0063,
	0x06572726f,
	0x072202573,
	0x00a006e6f,
	0x074205273,
	0x065737369,
	0x06f6e0073,
	0x065727665,
	0x072006269,
	0x074210068,
	0x06f742100,
	0x0646b2100,
	0x06e6f6e65,
	0x074210063,
	0x0616e2774,
	0x020726561,
	0x06420626f,
	0x06f742066,
	0x0696c6500,
	0x00a256400,
	0x063616e27,
	0x074207265,
	0x061642062,
	0x06f6f7420,
	0x066696c65,
	0x0002b2564,
	0x00063616e,
	0x027742072,
	0x065616420,
	0x0626f6f74,
	0x02066696c,
	0x065002b25,
	0x064002362,
	0x02f626f6f,
	0x074006361,
	0x020636f6e,
	0x06e656374,
	0x02c207265,
	0x074727969,
	0x06e672e2e,
	0x02e0a0063,
	0x0616e2774,
	0x020636f6e,
	0x06e656374,
	0x00a00626f,
	0x06f740062,
	0x06f6f7465,
	0x073006d6f,
	0x0756e742e,
	0x02e2e002f,
	0x0002f0062,
	0x0696e6400,
	0x02f000000,
	0x06d6f756e,
	0x074007375,
	0x063636573,
	0x0730a002f,
	0x06e65742f,
	0x02573002f,
	0x06e65742f,
	0x06e657400,
	0x02f6c6962,
	0x02f6e6574,
	0x061646472,
	0x02e257300,
	0x062696e64,
	0x0696e6720,
	0x02573206f,
	0x06e746f20,
	0x02f6c6962,
	0x02f6e6574,
	0x061646472,
	0x02e6e6574,
	0x00a002f6c,
	0x069622f6e,
	0x065746164,
	0x064722e6e,
	0x06574002f,
	0x06d697073,
	0x02f696e69,
	0x07400696e,
	0x06974002d,
	0x06d63002f,
	0x06d697073,
	0x02f696e69,
	0x07400696e,
	0x06974002d,
	0x063002f6d,
	0x06970732f,
	0x0696e6974,
	0x000626f6f,
	0x0743a2025,
	0x0733a2025,
	0x0730a0062,
	0x06f6f743a,
	0x02025733a,
	0x02025730a,
	0x00025735b,
	0x025735d3a,
	0x020006361,
	0x06e277420,
	0x06f70656e,
	0x02023622f,
	0x0626f6f74,
	0x00020656e,
	0x07472793a,
	0x020307825,
	0x075780a00,
	0x063616e27,
	0x074207374,
	0x061727420,
	0x06b65726e,
	0x0656c0025,
	0x0735b2573,
	0x05d3a2000,
	0x063616e27,
	0x074207265,
	0x061642023,
	0x0632f636f,
	0x06e733b20,
	0x0706c6561,
	0x073652072,
	0x065626f6f,
	0x072656164,
	0x02023632f,
	0x0636f6e73,
	0x03b20706c,
	0x065617365,
	0x020726562,
	0x06f6f7400,
	0x023732f25,
	0x073006372,
	0x065617465,
	0x000256400,
	0x077726974,
	0x065007469,
	0x06d652e2e,
	0x02e002373,
	0x02f626f6f,
	0x074002f6e,
	0x02f626f6f,
	0x074000000,
	0x02f6e2f62,
	0x06f6f7400,
	0x073746174,
	0x000256c64,
	0x0002f6e2f,
	0x0626f6f74,
	0x00023632f,
	0x074696d65,
	0x000000000,
	0x000000000,
	0x00005b10,
	0x00005d80,
	0x0,
	0x00005b10,
	0x00005d80,
	0x0,
};

M power/devrtc.c => power/devrtc.c +2 -2
@@ 98,10 98,10 @@ Chan*
rtcopen(Chan *c, int omode)
{
	if(c->qid.path==Qrtc && (omode&(OWRITE|OTRUNC)))
	if(strcmp(u->p->pgrp->user, "bootes") != 0)	/* BUG */
	if(strcmp(u->p->user, "bootes") != 0)	/* BUG */
		error(Eperm);
	if(c->qid.path == Qnvram)
	if(strcmp(u->p->pgrp->user, "bootes") != 0)	/* BUG */
	if(strcmp(u->p->user, "bootes") != 0)	/* BUG */
		error(Eperm);
	return devopen(c, omode, rtcdir, NRTC, devgen);
}

M power/main.c => power/main.c +2 -3
@@ 128,8 128,7 @@ vmereset(void)
	else
		noforce = 0;
	MODEREG->resetforce = (1<<1) | noforce;
	for(i=0; i<1000000; i++)
		;
	delay(140);
	MODEREG->resetforce = noforce;
}



@@ 259,7 258,7 @@ userinit(void)
	p->fgrp = newfgrp();

	strcpy(p->text, "*init*");
	strcpy(p->pgrp->user, "bootes");
	strcpy(p->user, "bootes");
	savefpregs(&initfp);
	p->fpstate = FPinit;


M power/trap.c => power/trap.c +1 -1
@@ 301,7 301,7 @@ intr(Ureg *ur)
		 *  if nothing else, what the hell?
		 */
		if(!any && bogies++<10){
/*			print("bogus intr lvl 5 pend %lux on %d\n", npend, m->machno);/**/
			print("bogus intr lvl 5 pend %lux on %d\n", npend, m->machno);/**/
			delay(100);
		}
		/*

M ss/l.s => ss/l.s +13 -32
@@ 55,20 55,18 @@ TEXT	startvirt(SB), $-4

TEXT	swap1(SB), $0

	MOVW	keyaddr+0(FP), R8
	TAS	(R8), R7		/* LDSTUB, thank you ken */
	TAS	(R7), R7		/* LDSTUB, thank you ken */
	RETURN

TEXT	swap1_should_work(SB), $0

	MOVW	keyaddr+0(FP), R8
	MOVW	R7, R8
	MOVW	$1, R7
	SWAP	(R8), R7
	RETURN

TEXT	swap1x(SB), $0

	MOVW	keyaddr+0(FP), R8
	MOVW	PSR, R9
	MOVW	R9, R10
	AND	$~PSRET, R10		/* BUG: book says this is buggy */


@@ 76,7 74,7 @@ TEXT	swap1x(SB), $0
	OR	R0, R0
	OR	R0, R0
	OR	R0, R0
	MOVW	(R8), R7
	MOVW	(R7), R7
	CMP	R7, R0
	BNE	was1
	MOVW	$1, R10


@@ 111,7 109,6 @@ TEXT	splhi(SB), $0
TEXT	splx(SB), $0

	MOVW	R15, 4(R(MACH))	/* save PC in m->splpc */
	MOVW	psr+0(FP), R7
	MOVW	R7, PSR		/* BUG: book says this is buggy */
	OR	R0, R0
	OR	R0, R0


@@ 123,13 120,13 @@ TEXT	spldone(SB), $0
	RETURN

TEXT	touser(SB), $-4
	MOVW	$(SYSPSR&~PSREF), R7
	MOVW	R7, PSR
	MOVW	$(SYSPSR&~PSREF), R8
	MOVW	R8, PSR
	OR	R0, R0
	OR	R0, R0
	OR	R0, R0

	MOVW	sp+0(FP), R1
	MOVW	R7, R1
	SAVE	R0, R0			/* RETT is implicit RESTORE */
	MOVW	$(UTZERO+32), R7	/* PC; header appears in text */
	MOVW	$(UTZERO+32+4), R8	/* nPC */


@@ 137,7 134,7 @@ TEXT	touser(SB), $-4

TEXT	rfnote(SB), $0

	MOVW	0(FP), R1		/* 1st arg is &uregpointer */
	MOVW	R7, R1			/* 1st arg is &uregpointer */
	ADD	$4, R1			/* point at ureg */
	JMP	restore



@@ 301,7 298,6 @@ TEXT	syslink(SB), $-4

TEXT	puttbr(SB), $0

	MOVW	tbr+0(FP), R7
	MOVW	R7, TBR
	OR	R0, R0
	OR	R0, R0


@@ 325,7 321,6 @@ TEXT	getwim(SB), $0

TEXT	setlabel(SB), $0

	MOVW	b+0(FP), R7
	MOVW	R1, (R7)
	MOVW	R15, 4(R7)
	MOVW	$0, R7


@@ 333,15 328,14 @@ TEXT	setlabel(SB), $0

TEXT	gotolabel(SB), $0

	MOVW	b+0(FP), R8
	MOVW	(R8), R1
	MOVW	4(R8), R15
	MOVW	(R7), R1
	MOVW	4(R7), R15
	MOVW	$1, R7
	RETURN

TEXT	putcxsegm(SB), $0

	MOVW	0(FP), R8		/* context */
	MOVW	R7, R8			/* context */
	MOVW	4(FP), R9		/* segment addr */
	MOVW	8(FP), R10		/* segment value */
	MOVW	$0xFFE80118, R7


@@ 350,61 344,52 @@ TEXT	putcxsegm(SB), $0

TEXT	putcxreg(SB), $0

	MOVW	$CONTEXT, R7
	MOVW	0(FP), R8
	MOVB	R8, (R7, 2)
	MOVW	$CONTEXT, R8
	MOVB	R7, (R8, 2)
	RETURN

TEXT	putb2(SB), $0

	MOVW	0(FP), R7
	MOVW	4(FP), R8
	MOVB	R8, (R7, 2)
	RETURN

TEXT	getb2(SB), $0

	MOVW	0(FP), R7
	MOVB	(R7, 2), R7
	RETURN

TEXT	getw2(SB), $0

	MOVW	0(FP), R7
	MOVW	(R7, 2), R7
	RETURN

TEXT	putw2(SB), $0

	MOVW	0(FP), R7
	MOVW	4(FP), R8
	MOVW	R8, (R7, 2)
	RETURN

TEXT	putw4(SB), $0

	MOVW	0(FP), R7
	MOVW	4(FP), R8
	MOVW	R8, (R7, 4)
	RETURN

TEXT	putwC(SB), $0

	MOVW	0(FP), R7
	MOVW	4(FP), R8
	MOVW	R8, (R7, 0xC)
	RETURN

TEXT	putwD(SB), $0

	MOVW	0(FP), R7
	MOVW	4(FP), R8
	MOVW	R8, (R7, 0xD)
	RETURN

TEXT	putwD16(SB), $0

	MOVW	0(FP), R7
	MOVW	4(FP), R8
	MOVW	R8, (R7, 0xD)
	ADD	$(1<<4), R7


@@ 441,14 426,12 @@ TEXT	putwD16(SB), $0

TEXT	putwE(SB), $0

	MOVW	0(FP), R7
	MOVW	4(FP), R8
	MOVW	R8, (R7, 0xE)
	RETURN

TEXT	putwE16(SB), $0

	MOVW	0(FP), R7
	MOVW	4(FP), R8
	MOVW	R8, (R7, 0xE)
	ADD	$(1<<4), R7


@@ 485,14 468,12 @@ TEXT	putwE16(SB), $0

TEXT	putsegm(SB), $0

	MOVW	0(FP), R7
	MOVW	4(FP), R8
	MOVW	R8, (R7, 3)
	RETURN

TEXT	savefpregs(SB), $0

	MOVW	0(FP), R7
	MOVW	FSR, 0(R7)

	ADD	$(4+7), R7		/* double-align so can MOVD */


@@ 526,7 507,6 @@ TEXT	restfpregs(SB), $0
	OR	$PSREF, R8
	MOVW	R8, PSR

	MOVW	0(FP), R7
	MOVW	(R7), FSR

	ADD	$(4+7), R7		/* double-align so can MOVD */


@@ 554,6 534,7 @@ TEXT	restfpregs(SB), $0
	RETURN

TEXT	clearfpintr(SB), $0

	MOVW	$fpq+BY2WD(SB), R7
	ANDN	$0x7, R7		/* must be D aligned */
	MOVW	$fsr+0(SB), R9

M ss/main.c => ss/main.c +1 -1
@@ 135,7 135,7 @@ userinit(void)
	p->fgrp = newfgrp();

	strcpy(p->text, "*init*");
	strcpy(p->pgrp->user, "bootes");
	strcpy(p->user, "bootes");
	savefpregs(&initfp);
	p->fpstate = FPinit;


M ss/trap.c => ss/trap.c +2 -5
@@ 250,7 250,8 @@ notify(Ureg *ur)
		memmove((char*)sp, u->note[0].msg, ERRLEN);
		sp -= 3*BY2WD;
		*(ulong*)(sp+2*BY2WD) = sp+3*BY2WD;	/* arg 2 is string */
		*(ulong*)(sp+1*BY2WD) = (ulong)u->ureg;	/* arg 1 is ureg* */
		*(ulong*)(sp+1*BY2WD) = (ulong)u->ureg;	/* arg 1 is ureg* (compat) */
		ur->r7 = (ulong)u->ureg;		/* arg 1 is ureg* */
		*(ulong*)(sp+0*BY2WD) = 0;		/* arg 0 is pc */
		ur->usp = sp;
		ur->pc = (ulong)u->notify;


@@ 359,10 360,6 @@ syscall(Ureg *aur)
			msg = "sys: odd stack";
			goto Bad;
		}
		if(((ulong*)ur->pc)[-2] == 0x82206004){	/* new calling convention: look for ADD $-4, SP */
			pprint("old system call linkage\n");
			sp += BY2WD;
		}
		if(sp<(USTKTOP-BY2PG) || sp>(USTKTOP-(1+MAXSYSARG)*BY2WD))
			validaddr(sp, ((1+MAXSYSARG)*BY2WD), 0);
		u->p->psstate = sysctab[r7];