changelog shortlog tags branches files raw gz bz2 help

Mercurial > hg > plan9front / changeset: 7l: add arm64 linker (initial sync)

changeset 7144: d0b9ab522e8b
parent 7143: c99b5c3b4a28
child 7145: 84d616f1d180
author: cinap_lenrek@felloff.net
date: Mon, 08 Apr 2019 14:05:27 +0200
files: sys/src/cmd/7l/asm.c sys/src/cmd/7l/asmout.c sys/src/cmd/7l/bits.c sys/src/cmd/7l/compat.c sys/src/cmd/7l/dyn.c sys/src/cmd/7l/l.h sys/src/cmd/7l/list.c sys/src/cmd/7l/mkcname sys/src/cmd/7l/mkfile sys/src/cmd/7l/mod.c sys/src/cmd/7l/noop.c sys/src/cmd/7l/obj.c sys/src/cmd/7l/optab.c sys/src/cmd/7l/pass.c sys/src/cmd/7l/span.c
description: 7l: add arm64 linker (initial sync)
     1.1new file mode 100644
     1.2--- /dev/null
     1.3+++ b/sys/src/cmd/7l/asm.c
     1.4@@ -0,0 +1,615 @@
     1.5+#include	"l.h"
     1.6+
     1.7+long	OFFSET;
     1.8+
     1.9+#define PADDR(a)	((a) & ~0xfffffffff0000000ull)
    1.10+
    1.11+vlong
    1.12+entryvalue(void)
    1.13+{
    1.14+	char *a;
    1.15+	Sym *s;
    1.16+
    1.17+	a = INITENTRY;
    1.18+	if(*a >= '0' && *a <= '9')
    1.19+		return atolwhex(a);
    1.20+	s = lookup(a, 0);
    1.21+	if(s->type == 0)
    1.22+		return INITTEXT;
    1.23+	switch(s->type) {
    1.24+	case STEXT:
    1.25+	case SLEAF:
    1.26+		break;
    1.27+	case SDATA:
    1.28+		if(dlm)
    1.29+			return s->value+INITDAT;
    1.30+	default:
    1.31+		diag("entry not text: %s", s->name);
    1.32+	}
    1.33+	return s->value;
    1.34+}
    1.35+
    1.36+void
    1.37+cflush(void)
    1.38+{
    1.39+	int n;
    1.40+
    1.41+	n = sizeof(buf.cbuf) - cbc;
    1.42+	if(n)
    1.43+		write(cout, buf.cbuf, n);
    1.44+	cbp = buf.cbuf;
    1.45+	cbc = sizeof(buf.cbuf);
    1.46+}
    1.47+
    1.48+void
    1.49+asmb(void)
    1.50+{
    1.51+	Prog *p;
    1.52+	long magic, t, etext;
    1.53+	vlong vl;
    1.54+	Optab *o;
    1.55+
    1.56+	if(debug['v'])
    1.57+		Bprint(&bso, "%5.2f asm\n", cputime());
    1.58+	Bflush(&bso);
    1.59+	OFFSET = HEADR;
    1.60+	seek(cout, OFFSET, 0);
    1.61+	pc = INITTEXT;
    1.62+	for(p = firstp; p != P; p = p->link) {
    1.63+		if(p->as == ATEXT) {
    1.64+			curtext = p;
    1.65+			autosize = p->to.offset + PCSZ;
    1.66+		}
    1.67+		if(p->as == ADWORD && (pc & 7) != 0) {
    1.68+			lputl(0);
    1.69+			pc += 4;
    1.70+		}
    1.71+		if(p->pc != pc) {
    1.72+			diag("phase error %llux sb %llux",
    1.73+				p->pc, pc);
    1.74+			if(!debug['a'])
    1.75+				prasm(curp);
    1.76+			pc = p->pc;
    1.77+		}
    1.78+		curp = p;
    1.79+		o = oplook(p);	/* could probably avoid this call */
    1.80+		asmout(p, o);
    1.81+		pc += o->size;
    1.82+	}
    1.83+
    1.84+	if(debug['a'])
    1.85+		Bprint(&bso, "\n");
    1.86+	Bflush(&bso);
    1.87+	cflush();
    1.88+
    1.89+	/* output strings in text segment */
    1.90+	etext = INITTEXT + textsize;
    1.91+	for(t = pc; t < etext; t += sizeof(buf)-100) {
    1.92+		if(etext-t > sizeof(buf)-100)
    1.93+			datblk(t, sizeof(buf)-100, 1);
    1.94+		else
    1.95+			datblk(t, etext-t, 1);
    1.96+	}
    1.97+
    1.98+	curtext = P;
    1.99+	switch(HEADTYPE) {
   1.100+	case 0:
   1.101+	case 2:
   1.102+	case 7:
   1.103+		OFFSET = HEADR+textsize;
   1.104+		seek(cout, OFFSET, 0);
   1.105+		break;
   1.106+	case 6:	/* no header, padded segments */
   1.107+		OFFSET = rnd(HEADR+textsize, 4096);
   1.108+		seek(cout, OFFSET, 0);
   1.109+		break;
   1.110+	}
   1.111+	if(dlm){
   1.112+		char buf[8];
   1.113+
   1.114+		write(cout, buf, INITDAT-textsize);
   1.115+		textsize = INITDAT;
   1.116+	}
   1.117+	for(t = 0; t < datsize; t += sizeof(buf)-100) {
   1.118+		if(datsize-t > sizeof(buf)-100)
   1.119+			datblk(t, sizeof(buf)-100, 0);
   1.120+		else
   1.121+			datblk(t, datsize-t, 0);
   1.122+	}
   1.123+
   1.124+	symsize = 0;
   1.125+	lcsize = 0;
   1.126+	if(!debug['s']) {
   1.127+		if(debug['v'])
   1.128+			Bprint(&bso, "%5.2f sym\n", cputime());
   1.129+		Bflush(&bso);
   1.130+		switch(HEADTYPE) {
   1.131+		case 0:
   1.132+			debug['s'] = 1;
   1.133+			break;
   1.134+		case 2:
   1.135+			OFFSET = HEADR+textsize+datsize;
   1.136+			seek(cout, OFFSET, 0);
   1.137+			break;
   1.138+		case 6:	/* no header, padded segments */
   1.139+			OFFSET += rnd(datsize, 4096);
   1.140+			seek(cout, OFFSET, 0);
   1.141+			break;
   1.142+		case 7:
   1.143+			break;
   1.144+		}
   1.145+		if(!debug['s'])
   1.146+			asmsym();
   1.147+		if(debug['v'])
   1.148+			Bprint(&bso, "%5.2f pc\n", cputime());
   1.149+		Bflush(&bso);
   1.150+		if(!debug['s'])
   1.151+			asmlc();
   1.152+		if(dlm)
   1.153+			asmdyn();
   1.154+		cflush();
   1.155+	}
   1.156+	else if(dlm){
   1.157+		seek(cout, HEADR+textsize+datsize, 0);
   1.158+		asmdyn();
   1.159+		cflush();
   1.160+	}
   1.161+
   1.162+	if(debug['v'])
   1.163+		Bprint(&bso, "%5.2f header\n", cputime());
   1.164+	Bflush(&bso);
   1.165+	OFFSET = 0;
   1.166+	seek(cout, OFFSET, 0);
   1.167+	switch(HEADTYPE) {
   1.168+	case 0:	/* no header */
   1.169+	case 6:	/* no header, padded segments */
   1.170+		break;
   1.171+	case 2:	/* plan 9 */
   1.172+		magic = 4*28*28+7;
   1.173+		magic |= 0x00008000;		/* fat header */
   1.174+		if(dlm)
   1.175+			magic |= 0x80000000;	/* dlm */
   1.176+		lput(magic);			/* magic */
   1.177+		lput(textsize);			/* sizes */
   1.178+		lput(datsize);
   1.179+		lput(bsssize);
   1.180+		lput(symsize);			/* nsyms */
   1.181+		vl = entryvalue();
   1.182+		lput(PADDR(vl));		/* va of entry */
   1.183+		lput(0L);
   1.184+		lput(lcsize);
   1.185+		llput(vl);			/* va of entry */
   1.186+		break;
   1.187+	}
   1.188+	cflush();
   1.189+}
   1.190+
   1.191+void
   1.192+cput(int c)
   1.193+{
   1.194+	cbp[0] = c;
   1.195+	cbp++;
   1.196+	cbc--;
   1.197+	if(cbc <= 0)
   1.198+		cflush();
   1.199+}
   1.200+
   1.201+void
   1.202+wput(long l)
   1.203+{
   1.204+
   1.205+	cbp[0] = l>>8;
   1.206+	cbp[1] = l;
   1.207+	cbp += 2;
   1.208+	cbc -= 2;
   1.209+	if(cbc <= 0)
   1.210+		cflush();
   1.211+}
   1.212+
   1.213+void
   1.214+wputl(long l)
   1.215+{
   1.216+
   1.217+	cbp[0] = l;
   1.218+	cbp[1] = l>>8;
   1.219+	cbp += 2;
   1.220+	cbc -= 2;
   1.221+	if(cbc <= 0)
   1.222+		cflush();
   1.223+}
   1.224+
   1.225+void
   1.226+lput(long l)
   1.227+{
   1.228+
   1.229+	cbp[0] = l>>24;
   1.230+	cbp[1] = l>>16;
   1.231+	cbp[2] = l>>8;
   1.232+	cbp[3] = l;
   1.233+	cbp += 4;
   1.234+	cbc -= 4;
   1.235+	if(cbc <= 0)
   1.236+		cflush();
   1.237+}
   1.238+
   1.239+void
   1.240+lputl(long l)
   1.241+{
   1.242+
   1.243+	cbp[3] = l>>24;
   1.244+	cbp[2] = l>>16;
   1.245+	cbp[1] = l>>8;
   1.246+	cbp[0] = l;
   1.247+	cbp += 4;
   1.248+	cbc -= 4;
   1.249+	if(cbc <= 0)
   1.250+		cflush();
   1.251+}
   1.252+
   1.253+void
   1.254+llput(vlong v)
   1.255+{
   1.256+	lput(v>>32);
   1.257+	lput(v);
   1.258+}
   1.259+
   1.260+void
   1.261+llputl(vlong v)
   1.262+{
   1.263+	lputl(v);
   1.264+	lputl(v>>32);
   1.265+}
   1.266+
   1.267+void
   1.268+asmsym(void)
   1.269+{
   1.270+	Prog *p;
   1.271+	Auto *a;
   1.272+	Sym *s;
   1.273+	int h;
   1.274+
   1.275+	s = lookup("etext", 0);
   1.276+	if(s->type == STEXT)
   1.277+		putsymb(s->name, 'T', s->value, s->version);
   1.278+
   1.279+	for(h=0; h<NHASH; h++)
   1.280+		for(s=hash[h]; s!=S; s=s->link)
   1.281+			switch(s->type) {
   1.282+			case SCONST:
   1.283+				putsymb(s->name, 'D', s->value, s->version);
   1.284+				continue;
   1.285+
   1.286+			case SDATA:
   1.287+				putsymb(s->name, 'D', s->value+INITDAT, s->version);
   1.288+				continue;
   1.289+
   1.290+			case SBSS:
   1.291+				putsymb(s->name, 'B', s->value+INITDAT, s->version);
   1.292+				continue;
   1.293+
   1.294+			case SSTRING:
   1.295+				putsymb(s->name, 'T', s->value, s->version);
   1.296+				continue;
   1.297+
   1.298+			case SFILE:
   1.299+				putsymb(s->name, 'f', s->value, s->version);
   1.300+				continue;
   1.301+			}
   1.302+
   1.303+	for(p=textp; p!=P; p=p->cond) {
   1.304+		s = p->from.sym;
   1.305+		if(s->type != STEXT && s->type != SLEAF)
   1.306+			continue;
   1.307+
   1.308+		/* filenames first */
   1.309+		for(a=p->to.autom; a; a=a->link)
   1.310+			if(a->type == D_FILE)
   1.311+				putsymb(a->asym->name, 'z', a->aoffset, 0);
   1.312+			else
   1.313+			if(a->type == D_FILE1)
   1.314+				putsymb(a->asym->name, 'Z', a->aoffset, 0);
   1.315+
   1.316+		if(s->type == STEXT)
   1.317+			putsymb(s->name, 'T', s->value, s->version);
   1.318+		else
   1.319+			putsymb(s->name, 'L', s->value, s->version);
   1.320+
   1.321+		/* frame, auto and param after */
   1.322+		putsymb(".frame", 'm', p->to.offset+PCSZ, 0);
   1.323+		for(a=p->to.autom; a; a=a->link)
   1.324+			if(a->type == D_AUTO)
   1.325+				putsymb(a->asym->name, 'a', -a->aoffset, 0);
   1.326+			else
   1.327+			if(a->type == D_PARAM)
   1.328+				putsymb(a->asym->name, 'p', a->aoffset, 0);
   1.329+	}
   1.330+	if(debug['v'] || debug['n'])
   1.331+		Bprint(&bso, "symsize = %lud\n", symsize);
   1.332+	Bflush(&bso);
   1.333+}
   1.334+
   1.335+void
   1.336+putsymb(char *s, int t, vlong v, int ver)
   1.337+{
   1.338+	int i, f, l;
   1.339+
   1.340+	if(t == 'f')
   1.341+		s++;
   1.342+	l = 4;
   1.343+	switch(HEADTYPE){
   1.344+	default:
   1.345+		break;
   1.346+	case 2:
   1.347+		lput(v>>32);
   1.348+		l = 8;
   1.349+		break;
   1.350+	}
   1.351+	lput(v);
   1.352+	if(ver)
   1.353+		t += 'a' - 'A';
   1.354+	cput(t+0x80);			/* 0x80 is variable length */
   1.355+
   1.356+	if(t == 'Z' || t == 'z') {
   1.357+		cput(s[0]);
   1.358+		for(i=1; s[i] != 0 || s[i+1] != 0; i += 2) {
   1.359+			cput(s[i]);
   1.360+			cput(s[i+1]);
   1.361+		}
   1.362+		cput(0);
   1.363+		cput(0);
   1.364+		i++;
   1.365+	}
   1.366+	else {
   1.367+		for(i=0; s[i]; i++)
   1.368+			cput(s[i]);
   1.369+		cput(0);
   1.370+	}
   1.371+	symsize += l + 1 + i + 1;
   1.372+
   1.373+	if(debug['n']) {
   1.374+		if(t == 'z' || t == 'Z') {
   1.375+			Bprint(&bso, "%c %.8llux ", t, v);
   1.376+			for(i=1; s[i] != 0 || s[i+1] != 0; i+=2) {
   1.377+				f = ((s[i]&0xff) << 8) | (s[i+1]&0xff);
   1.378+				Bprint(&bso, "/%x", f);
   1.379+			}
   1.380+			Bprint(&bso, "\n");
   1.381+			return;
   1.382+		}
   1.383+		if(ver)
   1.384+			Bprint(&bso, "%c %.8llux %s<%d>\n", t, v, s, ver);
   1.385+		else
   1.386+			Bprint(&bso, "%c %.8llux %s\n", t, v, s);
   1.387+	}
   1.388+}
   1.389+
   1.390+#define	MINLC	4
   1.391+void
   1.392+asmlc(void)
   1.393+{
   1.394+	long oldpc, oldlc;
   1.395+	Prog *p;
   1.396+	long v, s;
   1.397+
   1.398+	oldpc = INITTEXT;
   1.399+	oldlc = 0;
   1.400+	for(p = firstp; p != P; p = p->link) {
   1.401+		if(p->line == oldlc || p->as == ATEXT || p->as == ANOP) {
   1.402+			if(p->as == ATEXT)
   1.403+				curtext = p;
   1.404+			if(debug['V'])
   1.405+				Bprint(&bso, "%6llux %P\n",
   1.406+					p->pc, p);
   1.407+			continue;
   1.408+		}
   1.409+		if(debug['V'])
   1.410+			Bprint(&bso, "\t\t%6ld", lcsize);
   1.411+		v = (p->pc - oldpc) / MINLC;
   1.412+		while(v) {
   1.413+			s = 127;
   1.414+			if(v < 127)
   1.415+				s = v;
   1.416+			cput(s+128);	/* 129-255 +pc */
   1.417+			if(debug['V'])
   1.418+				Bprint(&bso, " pc+%ld*%d(%ld)", s, MINLC, s+128);
   1.419+			v -= s;
   1.420+			lcsize++;
   1.421+		}
   1.422+		s = p->line - oldlc;
   1.423+		oldlc = p->line;
   1.424+		oldpc = p->pc + MINLC;
   1.425+		if(s > 64 || s < -64) {
   1.426+			cput(0);	/* 0 vv +lc */
   1.427+			cput(s>>24);
   1.428+			cput(s>>16);
   1.429+			cput(s>>8);
   1.430+			cput(s);
   1.431+			if(debug['V']) {
   1.432+				if(s > 0)
   1.433+					Bprint(&bso, " lc+%ld(%d,%ld)\n",
   1.434+						s, 0, s);
   1.435+				else
   1.436+					Bprint(&bso, " lc%ld(%d,%ld)\n",
   1.437+						s, 0, s);
   1.438+				Bprint(&bso, "%6llux %P\n",
   1.439+					p->pc, p);
   1.440+			}
   1.441+			lcsize += 5;
   1.442+			continue;
   1.443+		}
   1.444+		if(s > 0) {
   1.445+			cput(0+s);	/* 1-64 +lc */
   1.446+			if(debug['V']) {
   1.447+				Bprint(&bso, " lc+%ld(%ld)\n", s, 0+s);
   1.448+				Bprint(&bso, "%6llux %P\n",
   1.449+					p->pc, p);
   1.450+			}
   1.451+		} else {
   1.452+			cput(64-s);	/* 65-128 -lc */
   1.453+			if(debug['V']) {
   1.454+				Bprint(&bso, " lc%ld(%ld)\n", s, 64-s);
   1.455+				Bprint(&bso, "%6llux %P\n",
   1.456+					p->pc, p);
   1.457+			}
   1.458+		}
   1.459+		lcsize++;
   1.460+	}
   1.461+	while(lcsize & 1) {
   1.462+		s = 129;
   1.463+		cput(s);
   1.464+		lcsize++;
   1.465+	}
   1.466+	if(debug['v'] || debug['V'])
   1.467+		Bprint(&bso, "lcsize = %ld\n", lcsize);
   1.468+	Bflush(&bso);
   1.469+}
   1.470+
   1.471+void
   1.472+datblk(long s, long n, int str)
   1.473+{
   1.474+	Sym *v;
   1.475+	Prog *p;
   1.476+	char *cast;
   1.477+	long a, l, fl, j;
   1.478+	vlong d;
   1.479+	int i, c;
   1.480+
   1.481+	memset(buf.dbuf, 0, n+100);
   1.482+	for(p = datap; p != P; p = p->link) {
   1.483+		if(str != (p->from.sym->type == SSTRING))
   1.484+			continue;
   1.485+		curp = p;
   1.486+		a = p->from.sym->value + p->from.offset;
   1.487+		l = a - s;
   1.488+		c = p->reg;
   1.489+		i = 0;
   1.490+		if(l < 0) {
   1.491+			if(l+c <= 0)
   1.492+				continue;
   1.493+			while(l < 0) {
   1.494+				l++;
   1.495+				i++;
   1.496+			}
   1.497+		}
   1.498+		if(l >= n)
   1.499+			continue;
   1.500+		if(p->as != AINIT && p->as != ADYNT) {
   1.501+			for(j=l+(c-i)-1; j>=l; j--)
   1.502+				if(buf.dbuf[j]) {
   1.503+					print("%P\n", p);
   1.504+					diag("multiple initialization");
   1.505+					break;
   1.506+				}
   1.507+		}
   1.508+		switch(p->to.type) {
   1.509+		default:
   1.510+			diag("unknown mode in initialization%P", p);
   1.511+			break;
   1.512+
   1.513+		case D_FCONST:
   1.514+			switch(c) {
   1.515+			default:
   1.516+			case 4:
   1.517+				fl = ieeedtof(p->to.ieee);
   1.518+				cast = (char*)&fl;
   1.519+				for(; i<c; i++) {
   1.520+					buf.dbuf[l] = cast[fnuxi4[i]];
   1.521+					l++;
   1.522+				}
   1.523+				break;
   1.524+			case 8:
   1.525+				cast = (char*)p->to.ieee;
   1.526+				for(; i<c; i++) {
   1.527+					buf.dbuf[l] = cast[fnuxi8[i]];
   1.528+					l++;
   1.529+				}
   1.530+				break;
   1.531+			}
   1.532+			break;
   1.533+
   1.534+		case D_SCONST:
   1.535+			for(; i<c; i++) {
   1.536+				buf.dbuf[l] = p->to.sval[i];
   1.537+				l++;
   1.538+			}
   1.539+			break;
   1.540+
   1.541+		case D_CONST:
   1.542+			d = p->to.offset;
   1.543+			v = p->to.sym;
   1.544+			if(v) {
   1.545+				switch(v->type) {
   1.546+				case SUNDEF:
   1.547+					ckoff(v, d);
   1.548+				case STEXT:
   1.549+				case SLEAF:
   1.550+				case SSTRING:
   1.551+					d += p->to.sym->value;
   1.552+					break;
   1.553+				case SDATA:
   1.554+				case SBSS:
   1.555+					d += p->to.sym->value + INITDAT;
   1.556+				}
   1.557+				if(dlm)
   1.558+					dynreloc(v, a+INITDAT, 1);
   1.559+			}
   1.560+			cast = (char*)&d;
   1.561+			switch(c) {
   1.562+			default:
   1.563+				diag("bad nuxi %d %d%P", c, i, curp);
   1.564+				break;
   1.565+			case 1:
   1.566+				for(; i<c; i++) {
   1.567+					buf.dbuf[l] = cast[inuxi1[i]];
   1.568+					l++;
   1.569+				}
   1.570+				break;
   1.571+			case 2:
   1.572+				for(; i<c; i++) {
   1.573+					buf.dbuf[l] = cast[inuxi2[i]];
   1.574+					l++;
   1.575+				}
   1.576+				break;
   1.577+			case 4:
   1.578+				for(; i<c; i++) {
   1.579+					buf.dbuf[l] = cast[inuxi4[i]];
   1.580+					l++;
   1.581+				}
   1.582+				break;
   1.583+			case 8:
   1.584+				for(; i<c; i++) {
   1.585+					buf.dbuf[l] = cast[inuxi8[i]];
   1.586+					l++;
   1.587+				}
   1.588+				break;
   1.589+			}
   1.590+			break;
   1.591+		}
   1.592+	}
   1.593+	write(cout, buf.dbuf, n);
   1.594+}
   1.595+
   1.596+static Ieee chipfloats[] = {
   1.597+	{0x00000000, 0x00000000}, /* 0 */
   1.598+	{0x00000000, 0x3ff00000}, /* 1 */
   1.599+	{0x00000000, 0x40000000}, /* 2 */
   1.600+	{0x00000000, 0x40080000}, /* 3 */
   1.601+	{0x00000000, 0x40100000}, /* 4 */
   1.602+	{0x00000000, 0x40140000}, /* 5 */
   1.603+	{0x00000000, 0x3fe00000}, /* .5 */
   1.604+	{0x00000000, 0x40240000}, /* 10 */
   1.605+};
   1.606+
   1.607+int
   1.608+chipfloat(Ieee *e)
   1.609+{
   1.610+	Ieee *p;
   1.611+	int n;
   1.612+
   1.613+	for(n = sizeof(chipfloats)/sizeof(chipfloats[0]); --n >= 0;){
   1.614+		p = &chipfloats[n];
   1.615+		if(p->l == e->l && p->h == e->h && 0)
   1.616+			return n;		/* TO DO: return imm8 encoding */
   1.617+	}
   1.618+	return -1;
   1.619+}
     2.1new file mode 100644
     2.2--- /dev/null
     2.3+++ b/sys/src/cmd/7l/asmout.c
     2.4@@ -0,0 +1,1709 @@
     2.5+#include	"l.h"
     2.6+
     2.7+#define	S32	(0U<<31)
     2.8+#define	S64	(1U<<31)
     2.9+#define	Rm(X)	(((X)&31)<<16)
    2.10+#define	Rn(X)	(((X)&31)<<5)
    2.11+#define	Rd(X)	(((X)&31)<<0)
    2.12+#define	Sbit	(1U<<29)
    2.13+
    2.14+#define	OPDP2(x)		(0<<30 | 0 << 29 | 0xd6<<21 | (x)<<10)
    2.15+#define	OPDP3(sf,op54,op31,o0)	((sf)<<31 | (op54)<<29 | 0x1B<<24 | (op31)<<21 | (o0)<<15)
    2.16+#define	OPBcc(x)		(0x2A<<25 | 0<<24 | 0<<4 | ((x)&15))
    2.17+#define	OPBLR(x)		(0x6B<<25 | 0<<23 | (x)<<21 | 0x1F<<16 | 0<<10)	/* x=0, JMP; 1, CALL; 2, RET */
    2.18+#define	SYSOP(l,op0,op1,crn,crm,op2,rt)	(0x354<<22 | (l)<<21 | (op0)<<19 | (op1)<<16 | (crn)<<12 | (crm)<<8 | (op2)<<5 | (rt))
    2.19+#define	SYSHINT(x)	SYSOP(0,0,3,2,0,(x),0x1F)
    2.20+
    2.21+#define	LDSTR12U(sz,v,opc)	((sz)<<30 | 7<<27 | (v)<<26 | 1<<24 | (opc)<<22)
    2.22+#define	LDSTR9S(sz,v,opc)	((sz)<<30 | 7<<27 | (v)<<26 | 0<<24 | (opc)<<22)
    2.23+#define	LD2STR(o)	((o) & ~(3<<22))
    2.24+
    2.25+#define	LDSTX(sz,o2,l,o1,o0)	((sz)<<30 | 0x8<<24 | (o2)<<23 | (l)<<22 | (o1)<<21 | (o0)<<15)
    2.26+
    2.27+#define	FPCMP(m,s,type,op,op2)	((m)<<31 | (s)<<29 | 0x1E<<24 | (type)<<22 | 1<<21 | (op)<<14 | 8<<10 | (op2))
    2.28+#define	FPCCMP(m,s,type,op)	((m)<<31 | (s)<<29 | 0x1E<<24 | (type)<<22 | 1<<21 | 1<<10 | (op)<<4)
    2.29+#define	FPOP1S(m,s,type,op)	((m)<<31 | (s)<<29 | 0x1E<<24 | (type)<<22 | 1<<21 | (op)<<15 | 0x10<<10)
    2.30+#define	FPOP2S(m,s,type,op)	((m)<<31 | (s)<<29 | 0x1E<<24 | (type)<<22 | 1<<21 | (op)<<12 | 2<<10)
    2.31+#define	FPCVTI(sf,s,type,rmode,op)	((sf)<<31 | (s)<<29 | 0x1E<<24 | (type)<<22 | 1<<21 | (rmode)<<19 | (op)<<16 | 0<<10)
    2.32+#define	FPCVTF(sf,s,type,rmode,op,scale)	((sf)<<31 | (s)<<29 | 0x1E<<24 | (type)<<22 | 0<<21 | (rmode)<<19 | (op)<<16 | (scale)<<10)
    2.33+#define	ADR(p,o,rt)	((p)<<31 | ((o)&3)<<29 | (0x10<<24) | (((o>>2)&0x7FFFF)<<5) | (rt))
    2.34+
    2.35+#define	LSL0_32	(2<<13)
    2.36+#define	LSL0_64	(3<<13)
    2.37+
    2.38+static long	opbrr(int);
    2.39+static long	opbra(int);
    2.40+static long	oshrr(int, int, int);
    2.41+static long	olhrr(int, int, int);
    2.42+static long	olsr12u(long, long, int, int);
    2.43+static long	olsr9s(long, long, int, int);
    2.44+static long	opimm(int);
    2.45+static vlong	brdist(Prog*, int, int, int);
    2.46+static long	opbfm(int, int, int, int, int);
    2.47+static long	opextr(int, long, int, int, int);
    2.48+static long	opbit(int);
    2.49+static long	op0(int);
    2.50+static long	opstr12(int);
    2.51+static long	opstr9(int);
    2.52+static long	opldr9(int);
    2.53+static long	opxrrr(int);
    2.54+static long	olsxrr(int, int, int, int);
    2.55+static long	oprrr(int);
    2.56+static long	opirr(int);
    2.57+static long	opldr12(int);
    2.58+static long	opldrpp(int);
    2.59+static long	opload(int);
    2.60+static long	opstore(int);
    2.61+static long	omovlit(int, Prog*, Adr*, int);
    2.62+static int	movesize(int);
    2.63+static long	oaddi(long, long, int, int);
    2.64+
    2.65+/*
    2.66+ * valid pstate field values, and value to use in instruction
    2.67+ */
    2.68+static struct{
    2.69+	ulong	a;
    2.70+	ulong	b;
    2.71+} pstatefield[] = {
    2.72+D_SPSel,		(0<<16) | (4<<12) | (5<<5),
    2.73+D_DAIFSet,	(3<<16) | (4<<12) | (6<<5),
    2.74+D_DAIFClr,	(3<<16) | (4<<12) | (7<<5),
    2.75+};
    2.76+
    2.77+void
    2.78+asmout(Prog *p, Optab *o)
    2.79+{
    2.80+	long o1, o2, o3, o4, o5, v, hi;
    2.81+	ulong u;
    2.82+	vlong d;
    2.83+	int r, s, rf, rt, ra, nzcv, cond, i, as;
    2.84+	Mask *mask;
    2.85+	static Prog *lastcase;
    2.86+
    2.87+	o1 = 0;
    2.88+	o2 = 0;
    2.89+	o3 = 0;
    2.90+	o4 = 0;
    2.91+	o5 = 0;
    2.92+	switch(o->type) {
    2.93+	default:
    2.94+		diag("unknown asm %d", o->type);
    2.95+		prasm(p);
    2.96+		break;
    2.97+
    2.98+	case 0:		/* pseudo ops */
    2.99+		break;
   2.100+
   2.101+	case 1:		/* op Rm,[Rn],Rd; default Rn=Rd -> op Rm<<0,[Rn,]Rd (shifted register) */
   2.102+		o1 = oprrr(p->as);
   2.103+		rf = p->from.reg;
   2.104+		rt = p->to.reg;
   2.105+		r = p->reg;
   2.106+		if(p->to.type == D_NONE)
   2.107+			rt = REGZERO;
   2.108+		if(r == NREG)
   2.109+			r = rt;
   2.110+		o1 |= (rf<<16) | (r<<5) | rt;
   2.111+		break;
   2.112+
   2.113+	case 2:		/* add/sub $(uimm12|uimm24)[,R],R; cmp $(uimm12|uimm24),R */
   2.114+		o1 = opirr(p->as);
   2.115+		rt = p->to.reg;
   2.116+		if(p->to.type == D_NONE){
   2.117+			if((o1 & Sbit) == 0)
   2.118+				diag("ineffective ZR destination\n%P", p);
   2.119+			rt = REGZERO;
   2.120+		}
   2.121+		r = p->reg;
   2.122+		if(r == NREG)
   2.123+			r = rt;
   2.124+		v = regoff(&p->from);
   2.125+		o1 = oaddi(o1, v, r, rt);
   2.126+		break;
   2.127+
   2.128+	case 3:		/* op R<<n[,R],R (shifted register) */
   2.129+		o1 = oprrr(p->as);
   2.130+		o1 |= p->from.offset;	/* includes reg, op, etc */
   2.131+		rt = p->to.reg;
   2.132+		if(p->to.type == D_NONE)
   2.133+			rt = REGZERO;
   2.134+		r = p->reg;
   2.135+		if(p->as == AMVN || p->as == AMVNW)
   2.136+			r = REGZERO;
   2.137+		else if(r == NREG)
   2.138+			r = rt;
   2.139+		o1 |= (r<<5) | rt;
   2.140+		break;
   2.141+
   2.142+	case 4:		/* mov $addcon, R; mov $recon, R; mov $racon, R */
   2.143+		o1 = opirr(p->as);
   2.144+		rt = p->to.reg;
   2.145+		r = o->param;
   2.146+		if(r == 0)
   2.147+			r = REGZERO;
   2.148+		v = regoff(&p->from);
   2.149+		if((v & 0xFFF000) != 0){
   2.150+			v >>= 12;
   2.151+			o1 |= 1<<22;	/* shift, by 12 */
   2.152+		}
   2.153+		o1 |= ((v& 0xFFF) << 10) | (r<<5) | rt;
   2.154+		break;
   2.155+
   2.156+	case 5:		/* b s; bl s */
   2.157+		o1 = opbra(p->as);
   2.158+		o1 |= brdist(p, 0, 26, 2);
   2.159+		break;
   2.160+
   2.161+	case 6:		/* b ,O(R); bl ,O(R) */
   2.162+		o1 = opbrr(p->as);
   2.163+		o1 |= p->to.reg << 5;
   2.164+		break;
   2.165+
   2.166+	case 7:		/* beq s */
   2.167+		o1 = opbra(p->as);
   2.168+		o1 |= brdist(p, 0, 19, 2)<<5;
   2.169+		break;
   2.170+
   2.171+	case 8:		/* lsl $c,[R],R -> ubfm $(W-1)-c,$(-c MOD (W-1)),Rn,Rd */
   2.172+		rt = p->to.reg;
   2.173+		rf = p->reg;
   2.174+		if(rf == NREG)
   2.175+			rf = rt;
   2.176+		v = p->from.offset;
   2.177+		switch(p->as){
   2.178+		case AASR:	o1 = opbfm(ASBFM, v, 63, rf, rt); break;
   2.179+		case AASRW:	o1 = opbfm(ASBFMW, v, 31, rf, rt); break;
   2.180+		case ALSL:	o1 = opbfm(AUBFM, (64-v)&63, 63-v, rf, rt); break;
   2.181+		case ALSLW:	o1 = opbfm(AUBFMW, (32-v)&31, 31-v, rf, rt); break;
   2.182+		case ALSR:	o1 = opbfm(AUBFM, v, 63, rf, rt); break;
   2.183+		case ALSRW:	o1 = opbfm(AUBFMW, v, 31, rf, rt); break;
   2.184+		case AROR:	o1 = opextr(AEXTR, v, rf, rf, rt); break;
   2.185+		case ARORW:	o1 = opextr(AEXTRW, v, rf, rf, rt); break;
   2.186+		default:
   2.187+			diag("bad shift $con\n%P", curp);
   2.188+			break;
   2.189+		}
   2.190+		break;
   2.191+
   2.192+	case 9:		/* lsl Rm,[Rn],Rd -> lslv Rm, Rn, Rd */
   2.193+		o1 = oprrr(p->as);
   2.194+		r = p->reg;
   2.195+		if(r == NREG)
   2.196+			r = p->to.reg;
   2.197+		o1 |= (p->from.reg << 16) | (r<<5) | p->to.reg;
   2.198+		break;
   2.199+
   2.200+	case 10:	/* brk/hvc/.../svc [$con] */
   2.201+		o1 = opimm(p->as);
   2.202+		if(p->to.type != D_NONE)
   2.203+			o1 |= (p->to.offset & 0xffff)<<5;
   2.204+		break;
   2.205+
   2.206+	case 11:	/* dword */
   2.207+		switch(aclass(&p->to)) {
   2.208+		case C_VCON:
   2.209+		case C_ZCON:
   2.210+		case C_LCON:
   2.211+			if(!dlm)
   2.212+				break;
   2.213+			if(p->to.name != D_EXTERN && p->to.name != D_STATIC)
   2.214+				break;
   2.215+		case C_ADDR:
   2.216+			if(p->to.sym->type == SUNDEF)
   2.217+				ckoff(p->to.sym, p->to.offset);
   2.218+			dynreloc(p->to.sym, p->pc, 1);
   2.219+		}
   2.220+		o1 = instoffset;
   2.221+		o2 = instoffset >> 32;
   2.222+		break;
   2.223+
   2.224+	case 12:	/* movT $lcon, reg */
   2.225+		o1 = omovlit(p->as, p, &p->from, p->to.reg);
   2.226+		break;
   2.227+
   2.228+	case 13:	/* addop $lcon, [R], R (64 bit literal); cmp $lcon,R -> addop $lcon,R, ZR */
   2.229+		o1 = omovlit(AMOV, p, &p->from, REGTMP);
   2.230+		if(!o1)
   2.231+			break;
   2.232+		rt = p->to.reg;
   2.233+		if(p->to.type == D_NONE)
   2.234+			rt = REGZERO;
   2.235+		r = p->reg;
   2.236+		if(r == NREG)
   2.237+			r = rt;
   2.238+		if(p->to.type != D_NONE && (p->to.reg == REGSP || r == REGSP)){
   2.239+			o2 = opxrrr(p->as);
   2.240+			o2 |= REGTMP<<16;
   2.241+			o2 |= LSL0_64;
   2.242+		}else{
   2.243+			o2 = oprrr(p->as);
   2.244+			o2 |= REGTMP << 16;	/* shift is 0 */
   2.245+		}
   2.246+		o2 |= r << 5;
   2.247+		o2 |= rt;
   2.248+		break;
   2.249+
   2.250+	case 14:	/* word */
   2.251+		if(aclass(&p->to) == C_ADDR)
   2.252+			diag("address constant needs DWORD\n%P", p);
   2.253+		o1 = instoffset;
   2.254+		break;
   2.255+
   2.256+	case 15:	/* mul/mneg/umulh/umull r,[r,]r; madd/msub Rm,Rn,Ra,Rd */
   2.257+		o1 = oprrr(p->as);
   2.258+		rf = p->from.reg;
   2.259+		rt = p->to.reg;
   2.260+		if(p->from3.type == D_REG){
   2.261+			r = p->from3.reg;
   2.262+			ra = p->reg;
   2.263+			if(ra == NREG)
   2.264+				ra = REGZERO;
   2.265+		}else{
   2.266+			r = p->reg;
   2.267+			if(r == NREG)
   2.268+				r = rt;
   2.269+			ra = REGZERO;
   2.270+		}
   2.271+		o1 |= (rf<<16) | (ra<<10) | (r<<5) | rt;
   2.272+		break;
   2.273+
   2.274+	case 16:	/* XremY R[,R],R -> XdivY; XmsubY */
   2.275+		o1 = oprrr(p->as);
   2.276+		rf = p->from.reg;
   2.277+		rt = p->to.reg;
   2.278+		r = p->reg;
   2.279+		if(r == NREG)
   2.280+			r = rt;
   2.281+		o1 |= (rf<<16) | (r<<5) | REGTMP;
   2.282+		o2 = oprrr(AMSUBW);
   2.283+		o2 |= o1 & (1<<31);	/* same size */
   2.284+		o2 |= (rf<<16) | (r<<10) | (REGTMP<<5) | rt;
   2.285+		break;
   2.286+
   2.287+	case 17:		/* op Rm,[Rn],Rd; default Rn=ZR */
   2.288+		o1 = oprrr(p->as);
   2.289+		rf = p->from.reg;
   2.290+		rt = p->to.reg;
   2.291+		r = p->reg;
   2.292+		if(p->to.type == D_NONE)
   2.293+			rt = REGZERO;
   2.294+		if(r == NREG)
   2.295+			r = REGZERO;
   2.296+		o1 |= (rf<<16) | (r<<5) | rt;
   2.297+		break;
   2.298+
   2.299+	case 18:	/* csel cond,Rn,Rm,Rd; cinc/cinv/cneg cond,Rn,Rd; cset cond,Rd */
   2.300+		o1 = oprrr(p->as);
   2.301+		cond = p->from.reg;
   2.302+		r = p->reg;
   2.303+		if(r != NREG){
   2.304+			if(p->from3.type == D_NONE){
   2.305+				/* CINC/CINV/CNEG */
   2.306+				rf = r;
   2.307+				cond ^= 1;
   2.308+			}else
   2.309+				rf = p->from3.reg;	/* CSEL */
   2.310+		}else{
   2.311+			/* CSET */
   2.312+			if(p->from3.type != D_NONE)
   2.313+				diag("invalid combination\n%P", p);
   2.314+			r = rf = REGZERO;
   2.315+			cond ^= 1;
   2.316+		}
   2.317+		rt = p->to.reg;
   2.318+		o1 |= (r<<16) | (cond<<12) | (rf<<5) | rt;
   2.319+		break;
   2.320+
   2.321+	case 19:	/* CCMN cond, (Rm|uimm5),Rn, uimm4 -> ccmn Rn,Rm,uimm4,cond */
   2.322+		nzcv = p->to.offset;
   2.323+		cond = p->from.reg;
   2.324+		if(p->from3.type == D_REG){
   2.325+			o1 = oprrr(p->as);
   2.326+			rf = p->from3.reg;	/* Rm */
   2.327+		}else{
   2.328+			o1 = opirr(p->as);
   2.329+			rf = p->from3.offset & 0x1F;
   2.330+		}
   2.331+		o1 |= (rf<<16) | (cond<<12) | (p->reg<<5) | nzcv;
   2.332+		break;
   2.333+
   2.334+	case 20:	/* movT R,O(R) -> strT */
   2.335+		v = regoff(&p->to);
   2.336+		r = p->to.reg;
   2.337+		if(r == NREG)
   2.338+			r = o->param;
   2.339+		if(v < 0){	/* unscaled 9-bit signed */
   2.340+			o1 = olsr9s(opstr9(p->as), v, r, p->from.reg);
   2.341+		}else{
   2.342+			v = offsetshift(v, o->a3);
   2.343+			o1 = olsr12u(opstr12(p->as), v, r, p->from.reg);
   2.344+		}
   2.345+		break;
   2.346+
   2.347+	case 21:	/* movT O(R),R -> ldrT */
   2.348+		v = regoff(&p->from);
   2.349+		r = p->from.reg;
   2.350+		if(r == NREG)
   2.351+			r = o->param;
   2.352+		if(v < 0){	/* unscaled 9-bit signed */
   2.353+			o1 = olsr9s(opldr9(p->as), v, r, p->to.reg);
   2.354+		}else{
   2.355+			v = offsetshift(v, o->a1);
   2.356+			//print("offset=%lld v=%ld a1=%d\n", instoffset, v, o->a1);
   2.357+			o1 = olsr12u(opldr12(p->as), v, r, p->to.reg);
   2.358+		}
   2.359+		break;
   2.360+
   2.361+	case 22:	/* movT (R)O!,R; movT O(R)!, R -> ldrT */
   2.362+		v = p->from.offset;
   2.363+		if(v < -256 || v > 255)
   2.364+			diag("offset out of range\n%P", p);
   2.365+		o1 = opldrpp(p->as);
   2.366+		if(p->from.type == D_XPOST)
   2.367+			o1 |= 1<<10;
   2.368+		else
   2.369+			o1 |= 3<<10;
   2.370+		o1 |= ((v&0x1FF)<<12) | (p->from.reg<<5) | p->to.reg;
   2.371+		break;
   2.372+
   2.373+	case 23:	/* movT R,(R)O!; movT O(R)!, R -> strT */
   2.374+		v = p->to.offset;
   2.375+		if(v < -256 || v > 255)
   2.376+			diag("offset out of range\n%P", p);
   2.377+		o1 = LD2STR(opldrpp(p->as));
   2.378+		if(p->to.type == D_XPOST)
   2.379+			o1 |= 1<<10;
   2.380+		else
   2.381+			o1 |= 3<<10;
   2.382+		o1 |= ((v&0x1FF)<<12) | (p->to.reg<<5) | p->from.reg;
   2.383+		break;
   2.384+
   2.385+	case 24:		/* mov/mvn Rs,Rd -> add $0,Rs,Rd or orr Rs,ZR,Rd */
   2.386+		rf = p->from.reg;
   2.387+		rt = p->to.reg;
   2.388+		s = rf == REGSP || rt == REGSP;
   2.389+		if(p->as == AMVN || p->as == AMVNW){
   2.390+			if(s)
   2.391+				diag("illegal SP reference\n%P", p);
   2.392+			o1 = oprrr(p->as);
   2.393+			o1 |= (rf<<16) | (REGZERO<<5) | rt;
   2.394+		}else if(s){
   2.395+			o1 = opirr(p->as);
   2.396+			o1 |= (rf<<5) | rt;
   2.397+		}else{
   2.398+			o1 = oprrr(p->as);
   2.399+			o1 |= (rf<<16) | (REGZERO<<5) | rt;
   2.400+		}
   2.401+		break;
   2.402+
   2.403+	case 25: /* negX Rs, Rd -> subX Rs<<0, ZR, Rd */
   2.404+		o1 = oprrr(p->as);
   2.405+		rf = p->from.reg;
   2.406+		rt = p->to.reg;
   2.407+		o1 |= (rf<<16) | (REGZERO<<5) | rt;
   2.408+		break;
   2.409+
   2.410+	case 26: /* negX Rm<<s, Rd -> subX Rm<<s, ZR, Rd */
   2.411+		o1 = oprrr(p->as);
   2.412+		o1 |= p->from.offset;	/* includes reg, op, etc */
   2.413+		rt = p->to.reg;
   2.414+		o1 |= (REGZERO<<5) | rt;
   2.415+		break;
   2.416+
   2.417+	case 27:		/* op Rm<<n[,Rn],Rd (extended register) */
   2.418+		o1 = opxrrr(p->as);
   2.419+		if(p->from.type == D_EXTREG)
   2.420+			o1 |= p->from.offset;	/* includes reg, op, etc */
   2.421+		else
   2.422+			o1 |= p->from.reg << 16;
   2.423+		rt = p->to.reg;
   2.424+		if(p->to.type == D_NONE)
   2.425+			rt = REGZERO;
   2.426+		r = p->reg;
   2.427+		if(r == NREG)
   2.428+			r = rt;
   2.429+		o1 |= (r<<5) | rt;
   2.430+		break;
   2.431+
   2.432+	case 28:	/* logop $lcon, [R], R (64 bit literal) */
   2.433+		o1 = omovlit(AMOV, p, &p->from, REGTMP);
   2.434+		if(!o1)
   2.435+			break;
   2.436+		r = p->reg;
   2.437+		if(r == NREG)
   2.438+			r = p->to.reg;
   2.439+		o2 = oprrr(p->as);
   2.440+		o2 |= REGTMP << 16;	/* shift is 0 */
   2.441+		o2 |= r << 5;
   2.442+		o2 |= p->to.reg;
   2.443+		break;
   2.444+
   2.445+	case 29:	/* op Rn, Rd */
   2.446+		o1 = oprrr(p->as);
   2.447+		o1 |= p->from.reg<<5 | p->to.reg;
   2.448+		break;
   2.449+
   2.450+	case 30:	/* movT R,L(R) -> strT */
   2.451+		s = movesize(o->as);
   2.452+		if(s < 0)
   2.453+			diag("unexpected long move, op %A tab %A\n%P", p->as, o->as, p);
   2.454+		v = regoff(&p->to);
   2.455+		if(v < 0)
   2.456+			diag("negative large offset\n%P", p);
   2.457+		if((v & ((1<<s)-1)) != 0)
   2.458+			diag("misaligned offset\n%P", p);
   2.459+		hi = v - (v & (0xFFF<<s));
   2.460+		if((hi & 0xFFF) != 0)
   2.461+			diag("internal: miscalculated offset %ld [%d]\n%P", v, s, p);
   2.462+		//fprint(2, "v=%ld (%#lux) s=%d hi=%ld (%#lux) v'=%ld (%#lux)\n", v, v, s, hi, hi, ((v-hi)>>s)&0xFFF, ((v-hi)>>s)&0xFFF);
   2.463+		r = p->to.reg;
   2.464+		if(r == NREG)
   2.465+			r = o->param;
   2.466+		o1 = oaddi(opirr(AADD), hi, r, REGTMP);
   2.467+		o2 = olsr12u(opstr12(p->as), ((v-hi)>>s)&0xFFF, REGTMP, p->from.reg);
   2.468+		break;
   2.469+
   2.470+	case 31:	/* movT L(R), R -> ldrT */
   2.471+		s = movesize(o->as);
   2.472+		if(s < 0)
   2.473+			diag("unexpected long move, op %A tab %A\n%P", p->as, o->as, p);
   2.474+		v = regoff(&p->from);
   2.475+		if(v < 0)
   2.476+			diag("negative large offset\n%P", p);
   2.477+		if((v & ((1<<s)-1)) != 0)
   2.478+			diag("misaligned offset\n%P", p);
   2.479+		hi = v - (v & (0xFFF<<s));
   2.480+		if((hi & 0xFFF) != 0)
   2.481+			diag("internal: miscalculated offset %ld [%d]\n%P", v, s, p);
   2.482+		//fprint(2, "v=%ld (%#lux) s=%d hi=%ld (%#lux) v'=%ld (%#lux)\n", v, v, s, hi, hi, ((v-hi)>>s)&0xFFF, ((v-hi)>>s)&0xFFF);
   2.483+		r = p->from.reg;
   2.484+		if(r == NREG)
   2.485+			r = o->param;
   2.486+		o1 = oaddi(opirr(AADD), hi, r, REGTMP);
   2.487+		o2 = olsr12u(opldr12(p->as), ((v-hi)>>s)&0xFFF, REGTMP, p->to.reg);
   2.488+		break;
   2.489+
   2.490+	case 32:	/* mov $con, R -> movz/movn */
   2.491+		r = 32;
   2.492+		if(p->as == AMOV)
   2.493+			r = 64;
   2.494+		d = p->from.offset;
   2.495+		s = movcon(d);
   2.496+		if(s < 0 || s >= r){
   2.497+			d = ~d;
   2.498+			s = movcon(d);
   2.499+			if(s < 0 || s >= r)
   2.500+				diag("impossible move wide: %#llux\n%P", p->from.offset, p);
   2.501+			if(p->as == AMOV)
   2.502+				o1 = opirr(AMOVN);
   2.503+			else
   2.504+				o1 = opirr(AMOVNW);
   2.505+		}else{
   2.506+			if(p->as == AMOV)
   2.507+				o1 = opirr(AMOVZ);
   2.508+			else
   2.509+				o1 = opirr(AMOVZW);
   2.510+		}
   2.511+		rt = p->to.reg;
   2.512+		o1 |= (((d>>(s*16))& 0xFFFF) << 5) | ((s&3)<<21) | rt;
   2.513+		break;
   2.514+
   2.515+	case 33:	/* movk $uimm16 << pos */
   2.516+		o1 = opirr(p->as);
   2.517+		d = p->from.offset;
   2.518+		if((d>>16) != 0)
   2.519+			diag("requires uimm16\n%P", p);
   2.520+		s = 0;
   2.521+		if(p->from3.type != D_NONE){
   2.522+			if(p->from3.type != D_CONST)
   2.523+				diag("missing bit position\n%P", p);
   2.524+			s = p->from3.offset;
   2.525+			if((s&0xF) != 0 || (s /= 16) >= 4 || (o1&S64) == 0 && s >= 2)
   2.526+				diag("illegal bit position\n%P", p);
   2.527+		}
   2.528+		rt = p->to.reg;
   2.529+		o1 |= ((d & 0xFFFF) << 5) | ((s&3)<<21) | rt;
   2.530+		break;
   2.531+		
   2.532+	case 34:	/* mov $lacon,R */
   2.533+		o1 = omovlit(AMOV, p, &p->from, REGTMP);
   2.534+		if(!o1)
   2.535+			break;
   2.536+
   2.537+		o2 = opxrrr(AADD);
   2.538+		o2 |= REGTMP << 16;
   2.539+		o2 |= LSL0_64;
   2.540+		r = p->from.reg;
   2.541+		if(r == NREG)
   2.542+			r = o->param;
   2.543+		o2 |= r << 5;
   2.544+		o2 |= p->to.reg;
   2.545+		break;
   2.546+
   2.547+	case 35:	/* mov SPR,R -> mrs */
   2.548+		o1 = oprrr(AMRS);
   2.549+		v = p->from.offset;
   2.550+		if((o1 & (v & ~(3<<19))) != 0)
   2.551+			diag("MRS register value overlap\n%P", p);
   2.552+		o1 |= v;
   2.553+		o1 |= p->to.reg;
   2.554+		break;
   2.555+
   2.556+	case 36:	/* mov R,SPR */
   2.557+		o1 = oprrr(AMSR);
   2.558+		v = p->to.offset;
   2.559+		if((o1 & (v & ~(3<<19))) != 0)
   2.560+			diag("MSR register value overlap\n%P", p);
   2.561+		o1 |= v;
   2.562+		o1 |= p->from.reg;
   2.563+		break;
   2.564+
   2.565+	case 37:	/* mov $con,PSTATEfield -> MSR [immediate] */
   2.566+		if((p->from.offset&~(uvlong)0xF) != 0)
   2.567+			diag("illegal immediate for PSTATE field\n%P", p);
   2.568+		o1 = opirr(AMSR);
   2.569+		o1 |= (p->from.offset&0xF) << 8;	/* Crm */
   2.570+		v = 0;
   2.571+		for(i = 0; i < nelem(pstatefield); i++)
   2.572+			if(pstatefield[i].a == p->to.offset){
   2.573+				v = pstatefield[i].b;
   2.574+				break;
   2.575+			}
   2.576+		if(v == 0)
   2.577+			diag("illegal PSTATE field for immediate move\n%P", p);
   2.578+		o1 |= v;
   2.579+		break;
   2.580+
   2.581+	case 38:	/* clrex [$imm] */
   2.582+		o1 = opimm(p->as);
   2.583+		if(p->to.type == D_NONE)
   2.584+			o1 |= 0xF<<8;
   2.585+		else
   2.586+			o1 |= (p->to.offset & 0xF)<<8;
   2.587+		break;
   2.588+
   2.589+	case 39:	/* cbz R, rel */
   2.590+		o1 = opirr(p->as);
   2.591+		o1 |= p->from.reg;
   2.592+		o1 |= brdist(p, 0, 19, 2) << 5;
   2.593+		break;
   2.594+
   2.595+	case 40:	/* tbz */
   2.596+		o1 = opirr(p->as);
   2.597+		v = p->from.offset;
   2.598+		if(v < 0 || v > 63)
   2.599+			diag("illegal bit number\n%P", p);
   2.600+		o1 |= ((v&0x20)<<(31-5)) | ((v&0x1F)<<19);
   2.601+		o1 |= brdist(p, 0, 14, 2)<<5;
   2.602+		o1 |= p->reg;
   2.603+		break;
   2.604+
   2.605+	case 41:	/* eret, nop, others with no operands */
   2.606+		o1 = op0(p->as);
   2.607+		break;
   2.608+
   2.609+	case 42:	/* bfm R,r,s,R */
   2.610+		o1 = opbfm(p->as, p->from.offset, p->from3.offset, p->reg, p->to.reg);
   2.611+		break;
   2.612+
   2.613+	case 43:	/* bfm aliases */
   2.614+		r = p->from.offset;
   2.615+		s = p->from3.offset;
   2.616+		rf = p->reg;
   2.617+		rt = p->to.reg;
   2.618+		if(rf == NREG)
   2.619+			rf = rt;
   2.620+		switch(p->as){
   2.621+		case ABFI:		o1 = opbfm(ABFM, 64-r, s-1, rf, rt); break;
   2.622+		case ABFIW:	o1 = opbfm(ABFMW, 32-r, s-1, rf, rt); break;
   2.623+		case ABFXIL:	o1 = opbfm(ABFM, r, r+s-1, rf, rt); break;
   2.624+		case ABFXILW:	o1 = opbfm(ABFMW, r, r+s-1, rf, rt); break;
   2.625+		case ASBFIZ:	o1 = opbfm(ASBFM, 64-r, s-1, rf, rt); break;
   2.626+		case ASBFIZW:	o1 = opbfm(ASBFMW, 32-r, s-1, rf, rt); break;
   2.627+		case ASBFX:	o1 = opbfm(ASBFM, r, r+s-1, rf, rt); break;
   2.628+		case ASBFXW:	o1 = opbfm(ASBFMW, r, r+s-1, rf, rt); break;
   2.629+		case AUBFIZ:	o1 = opbfm(AUBFM, 64-r, s-1, rf, rt); break;
   2.630+		case AUBFIZW:	o1 = opbfm(AUBFMW, 32-r, s-1, rf, rt); break;
   2.631+		case AUBFX:	o1 = opbfm(AUBFM, r, r+s-1, rf, rt); break;
   2.632+		case AUBFXW:	o1 = opbfm(AUBFMW, r, r+s-1, rf, rt); break;
   2.633+		default:
   2.634+			diag("bad bfm alias\n%P", curp);
   2.635+			break;
   2.636+		}
   2.637+		break;
   2.638+
   2.639+	case 44:	/* extr $b, Rn, Rm, Rd */
   2.640+		o1 = opextr(p->as, p->from.offset, p->from3.reg, p->reg, p->to.reg);
   2.641+		break;
   2.642+
   2.643+	case 45:	/* sxt/uxt[bhw] R,R; movT R,R -> sxtT R,R */
   2.644+		rf = p->from.reg;
   2.645+		rt = p->to.reg;
   2.646+		as = p->as;
   2.647+		if(rf == REGZERO)
   2.648+			as = AMOVWU;	/* clearer in disassembly */
   2.649+		switch(as){
   2.650+		case AMOVB:
   2.651+		case ASXTB:	o1 = opbfm(ASBFM, 0, 7, rf, rt); break;
   2.652+		case AMOVH:
   2.653+		case ASXTH:	o1 = opbfm(ASBFM, 0, 15, rf, rt); break;
   2.654+		case AMOVW:
   2.655+		case ASXTW:	o1 = opbfm(ASBFM, 0, 31, rf, rt); break;
   2.656+		case AMOVBU:
   2.657+		case AUXTB:	o1 = opbfm(AUBFM, 0, 7, rf, rt); break;
   2.658+		case AMOVHU:
   2.659+		case AUXTH:	o1 = opbfm(AUBFM, 0, 15, rf, rt); break;
   2.660+		case AMOVWU:	o1 = oprrr(as) | (rf<<16) | (REGZERO<<5) | rt; break;
   2.661+		case AUXTW:	o1 = opbfm(AUBFM, 0, 31, rf, rt); break;
   2.662+		case ASXTBW:	o1 = opbfm(ASBFMW, 0, 7, rf, rt); break;
   2.663+		case ASXTHW:	o1 = opbfm(ASBFMW, 0, 15, rf, rt); break;
   2.664+		case AUXTBW:	o1 = opbfm(AUBFMW, 0, 7, rf, rt); break;
   2.665+		case AUXTHW:	o1 = opbfm(AUBFMW, 0, 15, rf, rt); break;
   2.666+		default:	diag("bad sxt %A", as); break;
   2.667+		}
   2.668+		break;
   2.669+
   2.670+	case 46:	/* cls */
   2.671+		o1 = opbit(p->as);
   2.672+		o1 |= p->from.reg<<5;
   2.673+		o1 |= p->to.reg;
   2.674+		break;
   2.675+
   2.676+	case 47:	/* movT R,V(R) -> strT (huge offset) */
   2.677+		o1 = omovlit(AMOVW, p, &p->to, REGTMP);
   2.678+		if(!o1)
   2.679+			break;
   2.680+		r = p->to.reg;
   2.681+		if(r == NREG)
   2.682+			r = o->param;
   2.683+		o2 = olsxrr(p->as, REGTMP,r, p->from.reg);
   2.684+		break;
   2.685+
   2.686+	case 48:	/* movT V(R), R -> ldrT (huge offset) */
   2.687+		o1 = omovlit(AMOVW, p, &p->from, REGTMP);
   2.688+		if(!o1)
   2.689+			break;
   2.690+		r = p->from.reg;
   2.691+		if(r == NREG)
   2.692+			r = o->param;
   2.693+		o2 = olsxrr(p->as, REGTMP,r, p->to.reg);
   2.694+		break;
   2.695+
   2.696+	case 50:	/* sys/sysl */
   2.697+		o1 = opirr(p->as);
   2.698+		if((p->from.offset & ~SYSARG4(0x7, 0xF, 0xF, 0x7)) != 0)
   2.699+			diag("illegal SYS argument\n%P", p);
   2.700+		o1 |= p->from.offset;
   2.701+		if(p->to.type == D_REG)
   2.702+			o1 |= p->to.reg;
   2.703+		else if(p->reg != NREG)
   2.704+			o1 |= p->reg;
   2.705+		else
   2.706+			o1 |= 0x1F;
   2.707+		break;
   2.708+
   2.709+	case 51:	/* dmb */
   2.710+		o1 = opirr(p->as);
   2.711+		if(p->from.type == D_CONST)
   2.712+			o1 |= (p->from.offset&0xF)<<8;
   2.713+		break;
   2.714+
   2.715+	case 52:	/* hint */
   2.716+		o1 = opirr(p->as);
   2.717+		o1 |= (p->from.offset&0x7F)<<5;
   2.718+		break;
   2.719+
   2.720+	case 53:	/* and/or/eor/bic/... $bimmN, Rn, Rd -> op (N,r,s), Rn, Rd */
   2.721+		as = p->as;
   2.722+		rt = p->to.reg;
   2.723+		r = p->reg;
   2.724+		if(r == NREG)
   2.725+			r = rt;
   2.726+		if(as == AMOV){
   2.727+			as = AORR;
   2.728+			r = REGZERO;
   2.729+		}else if(as == AMOVW){
   2.730+			as = AORRW;
   2.731+			r = REGZERO;
   2.732+		}
   2.733+		o1 = opirr(as);
   2.734+		s = o1 & S64? 64: 32;
   2.735+		mask = findmask(p->from.offset);
   2.736+		if(mask == nil)
   2.737+			mask = findmask(p->from.offset | (p->from.offset<<32));
   2.738+		if(mask != nil){
   2.739+			o1 |= ((mask->r&(s-1))<<16) | (((mask->s-1)&(s-1))<<10);
   2.740+			if(s == 64){
   2.741+				if(mask->e == 64 && ((uvlong)p->from.offset>>32) != 0)
   2.742+					o1 |= 1<<22;
   2.743+			}else{
   2.744+				u = (uvlong)p->from.offset >> 32;
   2.745+				if(u != 0 && u != 0xFFFFFFFF)
   2.746+					diag("mask needs 64 bits %#llux\n%P", p->from.offset, p);
   2.747+			}
   2.748+		}else
   2.749+			diag("invalid mask %#llux\n%P", p->from.offset, p);	/* probably shouldn't happen */
   2.750+		o1 |= (r<<5) | rt;
   2.751+		break;
   2.752+
   2.753+	case 54:	/* floating point arith */
   2.754+		o1 = oprrr(p->as);
   2.755+		if(p->from.type == D_FCONST) {
   2.756+			rf = chipfloat(p->from.ieee);
   2.757+			if(rf < 0 || 1){
   2.758+				diag("invalid floating-point immediate\n%P", p);
   2.759+				rf = 0;
   2.760+			}
   2.761+			rf |= (1<<3);
   2.762+		} else
   2.763+			rf = p->from.reg;
   2.764+		rt = p->to.reg;
   2.765+		r = p->reg;
   2.766+		if((o1 & (0x1F<<24)) == (0x1E<<24) && (o1 & (1<<11)) == 0){	/* monadic */
   2.767+			r = rf;
   2.768+			rf = 0;
   2.769+		}else if(r == NREG)
   2.770+			r = rt;
   2.771+		o1 |= (rf << 16) | (r<<5) | rt;
   2.772+		break;
   2.773+
   2.774+	case 56:	/* floating point compare */
   2.775+		o1 = oprrr(p->as);
   2.776+		if(p->from.type == D_FCONST) {
   2.777+			if(p->from.ieee->h != 0 || p->from.ieee->l != 0)
   2.778+				diag("invalid floating-point immediate\n%P", p);
   2.779+			o1 |= 8;	/* zero */
   2.780+			rf = 0;
   2.781+		}else
   2.782+			rf = p->from.reg;
   2.783+		rt = p->reg;
   2.784+		o1 |= rf<<16  | rt<<5;
   2.785+		break;
   2.786+
   2.787+	case 57:	/* floating point conditional compare */
   2.788+		o1 = oprrr(p->as);
   2.789+		cond = p->from.reg;
   2.790+		nzcv = p->to.offset;
   2.791+		if(nzcv & ~0xF)
   2.792+			diag("implausible condition\n%P", p);
   2.793+		rf = p->reg;
   2.794+		if(p->from3.type != D_FREG)
   2.795+			diag("illegal FCCMP\n%P", p);
   2.796+		rt = p->from3.reg;
   2.797+		o1 |= rf<<16 | cond<<12  | rt<<5 | nzcv;
   2.798+		break;
   2.799+
   2.800+	case 58:	/* ldxr */
   2.801+		o1 = opload(p->as);
   2.802+		o1 |= 0x1F<<16;
   2.803+		o1 |= p->from.reg<<5;
   2.804+		if(p->reg != NREG)
   2.805+			o1 |= p->reg<<10;
   2.806+		else
   2.807+			o1 |= 0x1F<<10;
   2.808+		o1 |= p->to.reg;
   2.809+		break;
   2.810+
   2.811+	case 59:	/* stxr */
   2.812+		o1 = opstore(p->as);
   2.813+		o1 |= p->reg << 16;
   2.814+		if(p->from3.type != D_NONE)
   2.815+			o1 |= p->from3.reg<<10;
   2.816+		else
   2.817+			o1 |= 0x1F<<10;
   2.818+		o1 |= p->to.reg<<5;
   2.819+		o1 |= p->from.reg;
   2.820+		break;
   2.821+
   2.822+	case 60:	/* adrp label,r */
   2.823+		d = brdist(p, 12, 21, 0);
   2.824+		o1 = ADR(1, d, p->to.reg);
   2.825+		break;
   2.826+
   2.827+	case 61:	/* adr label, r */
   2.828+		d = brdist(p, 0, 21, 0);
   2.829+		o1 = ADR(0, d, p->to.reg);
   2.830+		break;
   2.831+
   2.832+	case 62:	/* case Rv, Rt -> adr tab, Rt; movw Rt[R<<2], Rl; add Rt, Rl; br (Rl) */
   2.833+		o1 = ADR(0, 4*4, p->to.reg);	/* adr 4(pc), Rt */
   2.834+		o2 = (2<<30)|(7<<27)|(2<<22)|(1<<21)|(3<<13)|(1<<12)|(2<<10)|(p->from.reg<<16)|(p->to.reg<<5)|REGTMP;	/* movw Rt[Rv<<2], REGTMP */
   2.835+		o3 = oprrr(AADD) | (p->to.reg<<16) | (REGTMP<<5) | REGTMP;	/* add Rt, REGTMP */
   2.836+		o4 = (0x6b<<25)|(0x1F<<16)|(REGTMP<<5);	/* br (REGTMP) */
   2.837+		lastcase = p;
   2.838+		break;
   2.839+
   2.840+	case 63:	/* bcase */
   2.841+		if(lastcase == nil){
   2.842+			diag("missing CASE\n%P", p);
   2.843+			break;
   2.844+		}
   2.845+		if(p->cond != P) {
   2.846+			o1 = p->cond->pc - (lastcase->pc + 4*4);
   2.847+			if(dlm)
   2.848+				dynreloc(S, p->pc, 1);
   2.849+		}
   2.850+		break;
   2.851+
   2.852+	/* reloc ops */
   2.853+	case 64:	/* movT R,addr */
   2.854+		o1 = omovlit(AMOV, p, &p->to, REGTMP);
   2.855+		if(!o1)
   2.856+			break;
   2.857+		o2 = olsr12u(opstr12(p->as), 0, REGTMP, p->from.reg);
   2.858+		break;
   2.859+
   2.860+	case 65:	/* movT addr,R */
   2.861+		o1 = omovlit(AMOV, p, &p->from, REGTMP);
   2.862+		if(!o1)
   2.863+			break;
   2.864+		o2 = olsr12u(opldr12(p->as), 0, REGTMP, p->to.reg);
   2.865+		break;
   2.866+	}
   2.867+
   2.868+	if(debug['a'] > 1)
   2.869+		Bprint(&bso, "%2d ", o->type);
   2.870+
   2.871+	v = p->pc;
   2.872+	switch(o->size) {
   2.873+	default:
   2.874+		if(debug['a'])
   2.875+			Bprint(&bso, " %.8lux:\t\t%P\n", v, p);
   2.876+		break;
   2.877+	case 4:
   2.878+		if(debug['a'])
   2.879+			Bprint(&bso, " %.8lux: %.8lux\t%P\n", v, o1, p);
   2.880+		lputl(o1);
   2.881+		break;
   2.882+	case 8:
   2.883+		if(debug['a'])
   2.884+			Bprint(&bso, " %.8lux: %.8lux %.8lux%P\n", v, o1, o2, p);
   2.885+		lputl(o1);
   2.886+		lputl(o2);
   2.887+		break;
   2.888+	case 12:
   2.889+		if(debug['a'])
   2.890+			Bprint(&bso, " %.8lux: %.8lux %.8lux %.8lux%P\n", v, o1, o2, o3, p);
   2.891+		lputl(o1);
   2.892+		lputl(o2);
   2.893+		lputl(o3);
   2.894+		break;
   2.895+	case 16:
   2.896+		if(debug['a'])
   2.897+			Bprint(&bso, " %.8lux: %.8lux %.8lux %.8lux %.8lux%P\n",
   2.898+				v, o1, o2, o3, o4, p);
   2.899+		lputl(o1);
   2.900+		lputl(o2);
   2.901+		lputl(o3);
   2.902+		lputl(o4);
   2.903+		break;
   2.904+	case 20:
   2.905+		if(debug['a'])
   2.906+			Bprint(&bso, " %.8lux: %.8lux %.8lux %.8lux %.8lux %.8lux%P\n",
   2.907+				v, o1, o2, o3, o4, o5, p);
   2.908+		lputl(o1);
   2.909+		lputl(o2);
   2.910+		lputl(o3);
   2.911+		lputl(o4);
   2.912+		lputl(o5);
   2.913+		break;
   2.914+	}
   2.915+}
   2.916+
   2.917+/*
   2.918+ * basic Rm op Rn -> Rd (using shifted register with 0)
   2.919+ * also op Rn -> Rt
   2.920+ * also Rm*Rn op Ra -> Rd
   2.921+ */
   2.922+static long
   2.923+oprrr(int a)
   2.924+{
   2.925+	switch(a) {
   2.926+	case AADC:	return S64 | 0<<30 | 0<<29 | 0xd0<<21 | 0<<10;
   2.927+	case AADCW:	return S32 | 0<<30 | 0<<29 | 0xd0<<21 | 0<<10;
   2.928+	case AADCS:	return S64 | 0<<30 | 1<<29 | 0xd0<<21 | 0<<10;
   2.929+	case AADCSW:	return S32 | 0<<30 | 1<<29 | 0xd0<<21 | 0<<10;
   2.930+
   2.931+	case ANGC:
   2.932+	case ASBC:	return S64 | 1<<30 | 0<<29 | 0xd0<<21 | 0<<10;
   2.933+	case ANGCS:
   2.934+	case ASBCS:	return S64 | 1<<30 | 1<<29 | 0xd0<<21 | 0<<10;
   2.935+	case ANGCW:
   2.936+	case ASBCW:	return S32 | 1<<30 | 0<<29 | 0xd0<<21 | 0<<10;
   2.937+	case ANGCSW:
   2.938+	case ASBCSW:	return S32 | 1<<30 | 1<<29 | 0xd0<<21 | 0<<10;
   2.939+
   2.940+	case AADD:	return S64 | 0<<30 | 0<<29 | 0x0b<<24 | 0<<22 | 0<<21 | 0<<10;
   2.941+	case AADDW:	return S32 | 0<<30 | 0<<29 | 0x0b<<24 | 0<<22 | 0<<21 | 0<<10;
   2.942+	case ACMN:
   2.943+	case AADDS:	return S64 | 0<<30 | 1<<29 | 0x0b<<24 | 0<<22 | 0<<21 | 0<<10;
   2.944+	case ACMNW:
   2.945+	case AADDSW:	return S32 | 0<<30 | 1<<29 | 0x0b<<24 | 0<<22 | 0<<21 | 0<<10;
   2.946+
   2.947+	case ASUB:	return S64 | 1<<30 | 0<<29 | 0x0b<<24 | 0<<22 | 0<<21 | 0<<10;
   2.948+	case ASUBW:	return S32 | 1<<30 | 0<<29 | 0x0b<<24 | 0<<22 | 0<<21 | 0<<10;
   2.949+	case ACMP:
   2.950+	case ASUBS:	return S64 | 1<<30 | 1<<29 | 0x0b<<24 | 0<<22 | 0<<21 | 0<<10;
   2.951+	case ACMPW:
   2.952+	case ASUBSW:	return S32 | 1<<30 | 1<<29 | 0x0b<<24 | 0<<22 | 0<<21 | 0<<10;
   2.953+
   2.954+	case AAND:	return S64 | 0<<29 | 0xA<<24;
   2.955+	case AANDW:	return S32 | 0<<29 | 0xA<<24;
   2.956+	case AMOV:
   2.957+	case AORR:	return S64 | 1<<29 | 0xA<<24;
   2.958+//	case AMOVW:
   2.959+	case AMOVWU:
   2.960+	case AORRW:	return S32 | 1<<29 | 0xA<<24;
   2.961+	case AEOR:	return S64 | 2<<29 | 0xA<<24;
   2.962+	case AEORW:	return S32 | 2<<29 | 0xA<<24;
   2.963+	case AANDS:	return S64 | 3<<29 | 0xA<<24;
   2.964+	case AANDSW:	return S32 | 3<<29 | 0xA<<24;
   2.965+
   2.966+	case ABIC:	return S64 | 0<<29 | 0xA<<24 | 1<<21;
   2.967+	case ABICW:	return S32 | 0<<29 | 0xA<<24 | 1<<21;
   2.968+	case ABICS:	return S64 | 3<<29 | 0xA<<24 | 1<<21;
   2.969+	case ABICSW:	return S32 | 3<<29 | 0xA<<24 | 1<<21;
   2.970+	case AEON:	return S64 | 2<<29 | 0xA<<24 | 1<<21;
   2.971+	case AEONW:	return S32 | 2<<29 | 0xA<<24 | 1<<21;
   2.972+	case AMVN:
   2.973+	case AORN:	return S64 | 1<<29 | 0xA<<24 | 1<<21;
   2.974+	case AMVNW:
   2.975+	case AORNW:	return S32 | 1<<29 | 0xA<<24 | 1<<21;
   2.976+
   2.977+	case AASR:	return S64 | OPDP2(10);	/* also ASRV */
   2.978+	case AASRW:	return S32 | OPDP2(10);
   2.979+	case ALSL:	return S64 | OPDP2(8);
   2.980+	case ALSLW:	return S32 | OPDP2(8);
   2.981+	case ALSR:	return S64 | OPDP2(9);
   2.982+	case ALSRW:	return S32 | OPDP2(9);
   2.983+	case AROR:	return S64 | OPDP2(11);
   2.984+	case ARORW:	return S32 | OPDP2(11);
   2.985+
   2.986+	case ACCMN:	return S64 | 0<<30 | 1<<29 | 0xD2<<21 | 0<<11 | 0<<10 | 0<<4;	/* cond<<12 | nzcv<<0 */
   2.987+	case ACCMNW:	return S32 | 0<<30 | 1<<29 | 0xD2<<21 | 0<<11 | 0<<10 | 0<<4;
   2.988+	case ACCMP:	return S64 | 1<<30 | 1<<29 | 0xD2<<21 | 0<<11 | 0<<10 | 0<<4;	/* imm5<<16 | cond<<12 | nzcv<<0 */
   2.989+	case ACCMPW:	return S32 | 1<<30 | 1<<29 | 0xD2<<21 | 0<<11 | 0<<10 | 0<<4;
   2.990+
   2.991+	case ACRC32B:		return S32 | OPDP2(16);
   2.992+	case ACRC32H:		return S32 | OPDP2(17);
   2.993+	case ACRC32W:	return S32 | OPDP2(18);
   2.994+	case ACRC32X:		return S64 | OPDP2(19);
   2.995+	case ACRC32CB:	return S32 | OPDP2(20);
   2.996+	case ACRC32CH:	return S32 | OPDP2(21);
   2.997+	case ACRC32CW:	return S32 | OPDP2(22);
   2.998+	case ACRC32CX:	return S64 | OPDP2(23);
   2.999+
  2.1000+	case ACSEL:	return S64 | 0<<30 | 0<<29 | 0xD4<<21 | 0<<11 | 0<<10;
  2.1001+	case ACSELW:	return S32 | 0<<30 | 0<<29 | 0xD4<<21 | 0<<11 | 0<<10;
  2.1002+	case ACSET:	return S64 | 0<<30 | 0<<29 | 0xD4<<21 | 0<<11 | 1<<10;
  2.1003+	case ACSETW:	return S32 | 0<<30 | 0<<29 | 0xD4<<21 | 0<<11 | 1<<10;
  2.1004+	case ACSETM:	return S64 | 1<<30 | 0<<29 | 0xD4<<21 | 0<<11 | 0<<10;
  2.1005+	case ACSETMW:	return S32 | 1<<30 | 0<<29 | 0xD4<<21 | 0<<11 | 0<<10;
  2.1006+	case ACINC:
  2.1007+	case ACSINC:	return S64 | 0<<30 | 0<<29 | 0xD4<<21 | 0<<11 | 1<<10;
  2.1008+	case ACINCW:
  2.1009+	case ACSINCW:	return S32 | 0<<30 | 0<<29 | 0xD4<<21 | 0<<11 | 1<<10;
  2.1010+	case ACINV:
  2.1011+	case ACSINV:	return S64 | 1<<30 | 0<<29 | 0xD4<<21 | 0<<11 | 0<<10;
  2.1012+	case ACINVW:
  2.1013+	case ACSINVW:	return S32 | 1<<30 | 0<<29 | 0xD4<<21 | 0<<11 | 0<<10;
  2.1014+	case ACNEG:
  2.1015+	case ACSNEG:	return S64 | 1<<30 | 0<<29 | 0xD4<<21 | 0<<11 | 1<<10;
  2.1016+	case ACNEGW:
  2.1017+	case ACSNEGW:	return S32 | 1<<30 | 0<<29 | 0xD4<<21 | 0<<11 | 1<<10;
  2.1018+
  2.1019+	case AMUL:
  2.1020+	case AMADD:	return S64 | 0<<29 | 0x1B<<24 | 0<<21 | 0<<15;
  2.1021+	case AMULW:
  2.1022+	case AMADDW:	return S32 | 0<<29 | 0x1B<<24 | 0<<21 | 0<<15;
  2.1023+	case AMNEG:
  2.1024+	case AMSUB:	return S64 | 0<<29 | 0x1B<<24 | 0<<21 | 1<<15;
  2.1025+	case AMNEGW:
  2.1026+	case AMSUBW:	return S32 | 0<<29 | 0x1B<<24 | 0<<21 | 1<<15;
  2.1027+
  2.1028+	case AMRS:	return SYSOP(1,2,0,0,0,0,0);
  2.1029+	case AMSR:	return SYSOP(0,2,0,0,0,0,0);
  2.1030+
  2.1031+	case ANEG:	return S64 | 1<<30 | 0<<29 | 0xB<<24 | 0<<21;
  2.1032+	case ANEGW:	return S32 | 1<<30 | 0<<29 | 0xB<<24 | 0<<21;
  2.1033+	case ANEGS:	return S64 | 1<<30 | 1<<29 | 0xB<<24 | 0<<21;
  2.1034+	case ANEGSW:	return S32 | 1<<30 | 1<<29 | 0xB<<24 | 0<<21;
  2.1035+
  2.1036+	case AREM:
  2.1037+	case ASDIV:	return S64 | OPDP2(3);
  2.1038+	case AREMW:
  2.1039+	case ASDIVW:	return S32 | OPDP2(3);
  2.1040+
  2.1041+	case ASMULL:
  2.1042+	case ASMADDL:	return OPDP3(1, 0, 1, 0);
  2.1043+	case ASMNEGL:
  2.1044+	case ASMSUBL:	return OPDP3(1, 0, 1, 1);
  2.1045+	case ASMULH:	return OPDP3(1, 0, 2, 0);
  2.1046+	case AUMULL:
  2.1047+	case AUMADDL:	return OPDP3(1, 0, 5, 0);
  2.1048+	case AUMNEGL:
  2.1049+	case AUMSUBL:	return OPDP3(1, 0, 5, 1);
  2.1050+	case AUMULH:	return OPDP3(1, 0, 6, 0);
  2.1051+
  2.1052+	case AUREM:
  2.1053+	case AUDIV:	return S64 | OPDP2(2);
  2.1054+	case AUREMW:
  2.1055+	case AUDIVW:	return S32 | OPDP2(2);
  2.1056+
  2.1057+	case AAESE:	return 0x4E<<24 | 2<<20 | 8<<16 | 4<<12 | 2<<10;
  2.1058+	case AAESD:	return 0x4E<<24 | 2<<20 | 8<<16 | 5<<12 | 2<<10;
  2.1059+	case AAESMC:	return 0x4E<<24 | 2<<20 | 8<<16 | 6<<12 | 2<<10;
  2.1060+	case AAESIMC:	return 0x4E<<24 | 2<<20 | 8<<16 | 7<<12 | 2<<10;
  2.1061+
  2.1062+	case ASHA1C:	return 0x5E<<24 | 0<<12;
  2.1063+	case ASHA1P:	return 0x5E<<24 | 1<<12;
  2.1064+	case ASHA1M:	return 0x5E<<24 | 2<<12;
  2.1065+	case ASHA1SU0:	return 0x5E<<24 | 3<<12;
  2.1066+	case ASHA256H:	return 0x5E<<24 | 4<<12;
  2.1067+	case ASHA256H2:	return 0x5E<<24 | 5<<12;
  2.1068+	case ASHA256SU1:	return 0x5E<<24 | 6<<12;
  2.1069+
  2.1070+	case ASHA1H:	return 0x5E<<24 | 2<<20 | 8<<16 | 0<<12 | 2<<10;
  2.1071+	case ASHA1SU1:	return 0x5E<<24 | 2<<20 | 8<<16 | 1<<12 | 2<<10;
  2.1072+	case ASHA256SU0:	return 0x5E<<24 | 2<<20 | 8<<16 | 2<<12 | 2<<10;
  2.1073+
  2.1074+	case AFCVTZSD:	return FPCVTI(1, 0, 1, 3, 0);
  2.1075+	case AFCVTZSDW:	return FPCVTI(0, 0, 1, 3, 0);
  2.1076+	case AFCVTZSS:	return FPCVTI(1, 0, 0, 3, 0);
  2.1077+	case AFCVTZSSW:	return FPCVTI(0, 0, 0, 3, 0);
  2.1078+
  2.1079+	case AFCVTZUD:	return FPCVTI(1, 0, 1, 3, 1);
  2.1080+	case AFCVTZUDW:	return FPCVTI(0, 0, 1, 3, 1);
  2.1081+	case AFCVTZUS:	return FPCVTI(1, 0, 0, 3, 1);
  2.1082+	case AFCVTZUSW:	return FPCVTI(0, 0, 0, 3, 1);
  2.1083+
  2.1084+	case ASCVTFD:		return FPCVTI(1, 0, 1, 0, 2);
  2.1085+	case ASCVTFS:		return FPCVTI(1, 0, 0, 0, 2);
  2.1086+	case ASCVTFWD:	return FPCVTI(0, 0, 1, 0, 2);
  2.1087+	case ASCVTFWS:	return FPCVTI(0, 0, 0, 0, 2);
  2.1088+
  2.1089+	case AUCVTFD:		return FPCVTI(1, 0, 1, 0, 3);
  2.1090+	case AUCVTFS:		return FPCVTI(1, 0, 0, 0, 3);
  2.1091+	case AUCVTFWD:	return FPCVTI(0, 0, 1, 0, 3);
  2.1092+	case AUCVTFWS:	return FPCVTI(0, 0, 0, 0, 3);
  2.1093+
  2.1094+	case AFADDS:	return FPOP2S(0, 0, 0, 2);
  2.1095+	case AFADDD:	return FPOP2S(0, 0, 1, 2);
  2.1096+	case AFSUBS:	return FPOP2S(0, 0, 0, 3);
  2.1097+	case AFSUBD:	return FPOP2S(0, 0, 1, 3);
  2.1098+	case AFMULS:	return FPOP2S(0, 0, 0, 0);
  2.1099+	case AFMULD:	return FPOP2S(0, 0, 1, 0);
  2.1100+	case AFDIVS:	return FPOP2S(0, 0, 0, 1);
  2.1101+	case AFDIVD:	return FPOP2S(0, 0, 1, 1);
  2.1102+	case AFMAXS:	return FPOP2S(0, 0, 0, 4);
  2.1103+	case AFMINS:	return FPOP2S(0, 0, 0, 5);
  2.1104+	case AFMAXD:	return FPOP2S(0, 0, 1, 4);
  2.1105+	case AFMIND:	return FPOP2S(0, 0, 1, 5);
  2.1106+	case AFMAXNMS:	return FPOP2S(0, 0, 0, 6);
  2.1107+	case AFMAXNMD:	return FPOP2S(0, 0, 1, 6);
  2.1108+	case AFMINNMS:	return FPOP2S(0, 0, 0, 7);
  2.1109+	case AFMINNMD:	return FPOP2S(0, 0, 1, 7);
  2.1110+	case AFNMULS:		return FPOP2S(0, 0, 0, 8);
  2.1111+	case AFNMULD:	return FPOP2S(0, 0, 1, 8);
  2.1112+
  2.1113+	case AFCMPS:	return FPCMP(0, 0, 0, 0, 0);
  2.1114+	case AFCMPD:	return FPCMP(0, 0, 1, 0, 0);
  2.1115+	case AFCMPES:	return FPCMP(0, 0, 0, 0, 16);
  2.1116+	case AFCMPED:	return FPCMP(0, 0, 1, 0, 16);
  2.1117+
  2.1118+	case AFCCMPS:		return FPCCMP(0, 0, 0, 0);
  2.1119+	case AFCCMPD:	return FPCCMP(0, 0, 1, 0);
  2.1120+	case AFCCMPES:	return FPCCMP(0, 0, 0, 1);
  2.1121+	case AFCCMPED:	return FPCCMP(0, 0, 1, 1);
  2.1122+
  2.1123+	case AFCSELS:	return 0x1E<<24 | 0<<22 | 1<<21 | 3<<10;
  2.1124+	case AFCSELD:	return 0x1E<<24 | 1<<22 | 1<<21 | 3<<10;
  2.1125+
  2.1126+	case AFMOVS:	return FPOP1S(0, 0, 0, 0);
  2.1127+	case AFABSS:	return FPOP1S(0, 0, 0, 1);
  2.1128+	case AFNEGS:	return FPOP1S(0, 0, 0, 2);
  2.1129+	case AFSQRTS:	return FPOP1S(0, 0, 0, 3);
  2.1130+	case AFCVTSD:	return FPOP1S(0, 0, 0, 5);
  2.1131+	case AFCVTSH:	return FPOP1S(0, 0, 0, 7);
  2.1132+	case AFRINTNS: return FPOP1S(0, 0, 0, 8);
  2.1133+	case AFRINTPS:	return FPOP1S(0, 0, 0, 9);
  2.1134+	case AFRINTMS:	return FPOP1S(0, 0, 0, 10);
  2.1135+	case AFRINTZS:	return FPOP1S(0, 0, 0, 11);
  2.1136+	case AFRINTAS:	return FPOP1S(0, 0, 0, 12);
  2.1137+	case AFRINTXS:	return FPOP1S(0, 0, 0, 14);
  2.1138+	case AFRINTIS:	return FPOP1S(0, 0, 0, 15);
  2.1139+
  2.1140+	case AFMOVD:	return FPOP1S(0, 0, 1, 0);
  2.1141+	case AFABSD:	return FPOP1S(0, 0, 1, 1);
  2.1142+	case AFNEGD:	return FPOP1S(0, 0, 1, 2);
  2.1143+	case AFSQRTD:	return FPOP1S(0, 0, 1, 3);
  2.1144+	case AFCVTDS:	return FPOP1S(0, 0, 1, 4);
  2.1145+	case AFCVTDH:	return FPOP1S(0, 0, 1, 7);
  2.1146+	case AFRINTND:	return FPOP1S(0, 0, 1, 8);
  2.1147+	case AFRINTPD:	return FPOP1S(0, 0, 1, 9);
  2.1148+	case AFRINTMD:	return FPOP1S(0, 0, 1, 10);
  2.1149+	case AFRINTZD:	return FPOP1S(0, 0, 1, 11);
  2.1150+	case AFRINTAD:	return FPOP1S(0, 0, 1, 12);
  2.1151+	case AFRINTXD:	return FPOP1S(0, 0, 1, 14);
  2.1152+	case AFRINTID:	return FPOP1S(0, 0, 1, 15);
  2.1153+	case AFCVTHS:	return FPOP1S(0, 0, 3, 4);
  2.1154+	case AFCVTHD:	return FPOP1S(0, 0, 3, 5);
  2.1155+
  2.1156+	}
  2.1157+	diag("bad rrr %d %A", a, a);
  2.1158+	prasm(curp);
  2.1159+	return 0;
  2.1160+}
  2.1161+
  2.1162+/*
  2.1163+ * imm -> Rd
  2.1164+ * imm op Rn -> Rd
  2.1165+ */
  2.1166+static long
  2.1167+opirr(int a)
  2.1168+{
  2.1169+	switch(a){
  2.1170+
  2.1171+	/* op $addcon, Rn, Rd */
  2.1172+	case AMOV:
  2.1173+	case AADD:	return S64 | 0<<30 | 0<<29 | 0x11<<24;
  2.1174+	case ACMN:
  2.1175+	case AADDS:	return S64 | 0<<30 | 1<<29 | 0x11<<24;
  2.1176+	case AMOVW:
  2.1177+	case AADDW:	return S32 | 0<<30 | 0<<29 | 0x11<<24;
  2.1178+	case ACMNW:
  2.1179+	case AADDSW:	return S32 | 0<<30 | 1<<29 | 0x11<<24;
  2.1180+	case ASUB:	return S64 | 1<<30 | 0<<29 | 0x11<<24;
  2.1181+	case ACMP:
  2.1182+	case ASUBS:	return S64 | 1<<30 | 1<<29 | 0x11<<24;
  2.1183+	case ASUBW:	return S32 | 1<<30 | 0<<29 | 0x11<<24;
  2.1184+	case ACMPW:
  2.1185+	case ASUBSW:	return S32 | 1<<30 | 1<<29 | 0x11<<24;
  2.1186+
  2.1187+	/* op $imm(SB), Rd; op label, Rd */
  2.1188+	case AADR:		return 0<<31 | 0x10<<24;
  2.1189+	case AADRP:	return 1<<31 | 0x10<<24;
  2.1190+
  2.1191+	/* op $bimm, Rn, Rd */
  2.1192+	case AAND:	return S64 | 0<<29 | 0x24<<23;
  2.1193+	case AANDW:	return S32 | 0<<29 | 0x24<<23 | 0<<22;
  2.1194+	case AORR:	return S64 | 1<<29 | 0x24<<23;
  2.1195+	case AORRW:	return S32 | 1<<29 | 0x24<<23 | 0<<22;
  2.1196+	case AEOR:	return S64 | 2<<29 | 0x24<<23;
  2.1197+	case AEORW:	return S32 | 2<<29 | 0x24<<23 | 0<<22;
  2.1198+	case AANDS:	return S64 | 3<<29 | 0x24<<23;
  2.1199+	case AANDSW:	return S32 | 3<<29 | 0x24<<23 | 0<<22;
  2.1200+
  2.1201+	case AASR:	return S64 | 0<<29 | 0x26<<23;	/* alias of SBFM */
  2.1202+	case AASRW:	return S32 | 0<<29 | 0x26<<23 | 0<<22;
  2.1203+
  2.1204+	/* op $width, $lsb, Rn, Rd */
  2.1205+	case ABFI:		return S64 | 2<<29 | 0x26<<23 | 1<<22;	/* alias of BFM */
  2.1206+	case ABFIW:	return S32 | 2<<29 | 0x26<<23 | 0<<22;
  2.1207+
  2.1208+	/* op $imms, $immr, Rn, Rd */
  2.1209+	case ABFM:	return S64 | 1<<29 | 0x26<<23 | 1<<22;
  2.1210+	case ABFMW:	return S32 | 1<<29 | 0x26<<23 | 0<<22;
  2.1211+	case ASBFM:	return S64 | 0<<29 | 0x26<<23 | 1<<22;
  2.1212+	case ASBFMW:	return S32 | 0<<29 | 0x26<<23 | 0<<22;
  2.1213+	case AUBFM:	return S64 | 2<<29 | 0x26<<23 | 1<<22;
  2.1214+	case AUBFMW:	return S32 | 2<<29 | 0x26<<23 | 0<<22;
  2.1215+
  2.1216+	case ABFXIL:	return S64 | 1<<29 | 0x26<<23 | 1<<22;	/* alias of BFM */
  2.1217+	case ABFXILW:	return S32 | 1<<29 | 0x26<<23 | 0<<22;
  2.1218+
  2.1219+	case AEXTR:	return S64 | 0<<29 | 0x27<<23 | 1<<22 | 0<<21;
  2.1220+	case AEXTRW:	return S32 | 0<<29 | 0x27<<23 | 0<<22 | 0<<21;
  2.1221+
  2.1222+	case ACBNZ:	return S64 | 0x1A<<25 | 1<<24;
  2.1223+	case ACBNZW:	return S32 | 0x1A<<25 | 1<<24;
  2.1224+	case ACBZ:	return S64 | 0x1A<<25 | 0<<24;
  2.1225+	case ACBZW:	return S32 | 0x1A<<25 | 0<<24;
  2.1226+
  2.1227+	case ACCMN:	return S64 | 0<<30 | 1<<29 | 0xD2<<21 | 1<<11 | 0<<10 | 0<<4;	/* imm5<<16 | cond<<12 | nzcv<<0 */
  2.1228+	case ACCMNW:	return S32 | 0<<30 | 1<<29 | 0xD2<<21 | 1<<11 | 0<<10 | 0<<4;
  2.1229+	case ACCMP:	return S64 | 1<<30 | 1<<29 | 0xD2<<21 | 1<<11 | 0<<10 | 0<<4;	/* imm5<<16 | cond<<12 | nzcv<<0 */
  2.1230+	case ACCMPW:	return S32 | 1<<30 | 1<<29 | 0xD2<<21 | 1<<11 | 0<<10 | 0<<4;
  2.1231+
  2.1232+	case AMOVK:	return S64 | 3<<29 | 0x25<<23;
  2.1233+	case AMOVKW:	return S32 | 3<<29 | 0x25<<23;
  2.1234+
  2.1235+	case AMOVN:	return S64 | 0<<29 | 0x25<<23;
  2.1236+	case AMOVNW:	return S32 | 0<<29 | 0x25<<23;
  2.1237+	case AMOVZ:	return S64 | 2<<29 | 0x25<<23;
  2.1238+	case AMOVZW:	return S32 | 2<<29 | 0x25<<23;
  2.1239+
  2.1240+	case AMSR:	return SYSOP(0,0,0,4,0,0,0x1F);	/* MSR (immediate) */
  2.1241+
  2.1242+	case AAT:
  2.1243+	case ADC:
  2.1244+	case AIC:
  2.1245+	case ATLBI:
  2.1246+	case ASYS:	return SYSOP(0,1,0,0,0,0,0);
  2.1247+	case ASYSL:	return SYSOP(1,1,0,0,0,0,0);
  2.1248+
  2.1249+	case ATBZ:	return 0x36<<24;
  2.1250+	case ATBNZ:	return 0x37<<24;
  2.1251+
  2.1252+	case ADSB:	return SYSOP(0,0,3,3,0,4,0x1F);
  2.1253+	case ADMB:	return SYSOP(0,0,3,3,0,5,0x1F);
  2.1254+	case AISB:		return SYSOP(0,0,3,3,0,6,0x1F);
  2.1255+	case AHINT:	return SYSOP(0,0,3,2,0,0,0x1F);
  2.1256+
  2.1257+	}
  2.1258+	diag("bad irr %A", a);
  2.1259+	prasm(curp);
  2.1260+	return 0;
  2.1261+}
  2.1262+
  2.1263+/*
  2.1264+ * bit operations
  2.1265+ */
  2.1266+#define	OPBIT(x)	(1<<30 | 0<<29 | 0xD6<<21 | 0<<16 | (x)<<10)
  2.1267+
  2.1268+static long
  2.1269+opbit(int a)
  2.1270+{
  2.1271+	switch(a){
  2.1272+	case ACLS:	return S64 | OPBIT(5);
  2.1273+	case ACLSW:	return S32 | OPBIT(5);
  2.1274+	case ACLZ:	return S64 | OPBIT(4);
  2.1275+	case ACLZW:	return S32 | OPBIT(4);
  2.1276+	case ARBIT:	return S64 | OPBIT(0);
  2.1277+	case ARBITW:	return S32 | OPBIT(0);
  2.1278+	case AREV:	return S64 | OPBIT(3);
  2.1279+	case AREVW:	return S32 | OPBIT(2);
  2.1280+	case AREV16:	return S64 | OPBIT(1);
  2.1281+	case AREV16W:	return S32 | OPBIT(1);
  2.1282+	case AREV32:	return S64 | OPBIT(2);
  2.1283+	default:
  2.1284+		diag("bad bit op\n%P", curp);
  2.1285+		return 0;
  2.1286+	}
  2.1287+}
  2.1288+
  2.1289+/*
  2.1290+ * add/subtract extended register
  2.1291+ */
  2.1292+static long
  2.1293+opxrrr(int a)
  2.1294+{
  2.1295+	switch(a) {
  2.1296+	case AADD:	return S64 | 0<<30 | 0<<29 | 0x0b<<24 | 0<<22 | 1<<21 | LSL0_64;
  2.1297+	case AADDW:	return S32 | 0<<30 | 0<<29 | 0x0b<<24 | 0<<22 | 1<<21 | LSL0_32;
  2.1298+	case ACMN:
  2.1299+	case AADDS:	return S64 | 0<<30 | 1<<29 | 0x0b<<24 | 0<<22 | 1<<21 | LSL0_64;
  2.1300+	case ACMNW:
  2.1301+	case AADDSW:	return S32 | 0<<30 | 1<<29 | 0x0b<<24 | 0<<22 | 1<<21 | LSL0_32;
  2.1302+
  2.1303+	case ASUB:	return S64 | 1<<30 | 0<<29 | 0x0b<<24 | 0<<22 | 1<<21 | LSL0_64;
  2.1304+	case ASUBW:	return S32 | 1<<30 | 0<<29 | 0x0b<<24 | 0<<22 | 1<<21 | LSL0_32;
  2.1305+	case ACMP:
  2.1306+	case ASUBS:	return S64 | 1<<30 | 1<<29 | 0x0b<<24 | 0<<22 | 1<<21 | LSL0_64;
  2.1307+	case ACMPW:
  2.1308+	case ASUBSW:	return S32 | 1<<30 | 1<<29 | 0x0b<<24 | 0<<22 | 1<<21 | LSL0_32;
  2.1309+
  2.1310+	}
  2.1311+	diag("bad opxrrr %A\n%P", a, curp);
  2.1312+	return 0;
  2.1313+}
  2.1314+
  2.1315+static long
  2.1316+opimm(int a)
  2.1317+{
  2.1318+	switch(a){
  2.1319+	case ASVC:	return 0xD4<<24 | 0<<21 | 1;	/* imm16<<5 */
  2.1320+	case AHVC:	return 0xD4<<24 | 0<<21 | 2;
  2.1321+	case ASMC:	return 0xD4<<24 | 0<<21 | 3;
  2.1322+	case ABRK:	return 0xD4<<24 | 1<<21 | 0;
  2.1323+	case AHLT:	return 0xD4<<24 | 2<<21 | 0;
  2.1324+	case ADCPS1:	return 0xD4<<24 | 5<<21 | 1;
  2.1325+	case ADCPS2:	return 0xD4<<24 | 5<<21 | 2;
  2.1326+	case ADCPS3:	return 0xD4<<24 | 5<<21 | 3;
  2.1327+
  2.1328+	case ACLREX:	return SYSOP(0,0,3,3,0,2,0x1F);
  2.1329+	}
  2.1330+	diag("bad imm %A", a);
  2.1331+	prasm(curp);
  2.1332+	return 0;
  2.1333+}
  2.1334+
  2.1335+static vlong
  2.1336+brdist(Prog *p, int preshift, int flen, int shift)
  2.1337+{
  2.1338+	vlong v, t;
  2.1339+	Sym *s;
  2.1340+
  2.1341+	v = 0;
  2.1342+	if(p->cond == UP) {
  2.1343+		s = p->to.sym;
  2.1344+		if(s->type != SUNDEF)
  2.1345+			diag("bad branch sym type");
  2.1346+		v = (uvlong)s->value >> (Roffset-2);
  2.1347+		dynreloc(s, p->pc, 0);	/* TO DO */
  2.1348+	}
  2.1349+	else if(p->cond != P)
  2.1350+		v = (p->cond->pc>>preshift) - (pc>>preshift);
  2.1351+	if((v & ((1<<shift)-1)) != 0)
  2.1352+		diag("misaligned label\n%P", p);
  2.1353+	v >>= shift;
  2.1354+	t = (vlong)1 << (flen-1);
  2.1355+	if(v < -t || v >= t)
  2.1356+		diag("branch too far\n%P", p);
  2.1357+	return v & ((t<<1)-1);
  2.1358+}
  2.1359+
  2.1360+/*
  2.1361+ * pc-relative branches
  2.1362+ */
  2.1363+static long
  2.1364+opbra(int a)
  2.1365+{
  2.1366+	switch(a) {
  2.1367+	case ABEQ:	return OPBcc(0x0);
  2.1368+	case ABNE:	return OPBcc(0x1);
  2.1369+	case ABCS:	return OPBcc(0x2);
  2.1370+	case ABHS:	return OPBcc(0x2);
  2.1371+	case ABCC:	return OPBcc(0x3);
  2.1372+	case ABLO:	return OPBcc(0x3);
  2.1373+	case ABMI:	return OPBcc(0x4);
  2.1374+	case ABPL:	return OPBcc(0x5);
  2.1375+	case ABVS:	return OPBcc(0x6);
  2.1376+	case ABVC:	return OPBcc(0x7);
  2.1377+	case ABHI:	return OPBcc(0x8);
  2.1378+	case ABLS:	return OPBcc(0x9);
  2.1379+	case ABGE:	return OPBcc(0xa);
  2.1380+	case ABLT:	return OPBcc(0xb);
  2.1381+	case ABGT:	return OPBcc(0xc);
  2.1382+	case ABLE:	return OPBcc(0xd);		/* imm19<<5 | cond */
  2.1383+	case AB:		return 0<<31 | 5<<26;	/* imm26 */
  2.1384+	case ABL:		return 1<<31 | 5<<26;
  2.1385+	}
  2.1386+	diag("bad bra %A", a);
  2.1387+	prasm(curp);
  2.1388+	return 0;
  2.1389+}
  2.1390+
  2.1391+static long
  2.1392+opbrr(int a)
  2.1393+{
  2.1394+	switch(a){
  2.1395+	case ABL:		return OPBLR(1);		/* BLR */
  2.1396+	case AB:		return OPBLR(0);		/* BR */
  2.1397+	case ARET:	return OPBLR(2);		/* RET */
  2.1398+	}
  2.1399+	diag("bad brr %A", a);
  2.1400+	prasm(curp);
  2.1401+	return 0;
  2.1402+}
  2.1403+
  2.1404+static long
  2.1405+op0(int a)
  2.1406+{
  2.1407+	switch(a){
  2.1408+	case ADRPS:	return 0x6B<<25 | 5<<21 | 0x1F<<16 | 0x1F<<5;
  2.1409+	case AERET:	return 0x6B<<25 | 4<<21 | 0x1F<<16 | 0<<10 | 0x1F<<5;
  2.1410+	case ANOP:	return SYSHINT(0);
  2.1411+	case AYIELD:	return SYSHINT(1);
  2.1412+	case AWFE:	return SYSHINT(2);
  2.1413+	case AWFI:	return SYSHINT(3);
  2.1414+	case ASEV:	return SYSHINT(4);
  2.1415+	case ASEVL:	return SYSHINT(5);
  2.1416+	}
  2.1417+	diag("bad op0 %A", a);
  2.1418+	prasm(curp);
  2.1419+	return 0;
  2.1420+}
  2.1421+
  2.1422+/*
  2.1423+ * register offset
  2.1424+ */
  2.1425+static long
  2.1426+opload(int a)
  2.1427+{
  2.1428+	switch(a){
  2.1429+	case ALDAR:	return LDSTX(3,1,1,0,1) | 0x1F<<10;
  2.1430+	case ALDARW:	return LDSTX(2,1,1,0,1) | 0x1F<<10;
  2.1431+	case ALDARB:	return LDSTX(0,1,1,0,1) | 0x1F<<10;
  2.1432+	case ALDARH:	return LDSTX(1,1,1,0,1) | 0x1F<<10;
  2.1433+	case ALDAXP:	return LDSTX(3,0,1,1,1);
  2.1434+	case ALDAXPW:	return LDSTX(2,0,1,1,1);
  2.1435+	case ALDAXR:	return LDSTX(3,0,1,0,1) | 0x1F<<10;
  2.1436+	case ALDAXRW:	return LDSTX(2,1,1,0,1) | 0x1F<<10;
  2.1437+	case ALDAXRB:	return LDSTX(0,0,1,0,1) | 0x1F<<10;
  2.1438+	case ALDAXRH:	return LDSTX(1,0,1,0,1) | 0x1F<<10;
  2.1439+	case ALDXR:		return LDSTX(3,0,1,0,0) | 0x1F<<10;
  2.1440+	case ALDXRB:		return LDSTX(0,0,1,0,0) | 0x1F<<10;
  2.1441+	case ALDXRH:		return LDSTX(1,0,1,0,0) | 0x1F<<10;
  2.1442+	case ALDXRW:		return LDSTX(2,0,1,0,0) | 0x1F<<10;
  2.1443+	case ALDXP:		return LDSTX(3,0,1,1,0);
  2.1444+	case ALDXPW:		return LDSTX(2,0,1,1,0);
  2.1445+	case AMOVNP:	return S64 | 0<<30 | 5<<27 | 0<<26 | 0<<23 | 1<<22;
  2.1446+	case AMOVNPW:	return S32 | 0<<30 | 5<<27 | 0<<26 | 0<<23 | 1<<22;
  2.1447+	}
  2.1448+	diag("bad opload %A\n%P", a, curp);
  2.1449+	return 0;
  2.1450+}
  2.1451+
  2.1452+static long
  2.1453+opstore(int a)
  2.1454+{
  2.1455+	switch(a){
  2.1456+	case ASTLR:		return LDSTX(3,1,0,0,1) | 0x1F<<10;
  2.1457+	case ASTLRB:		return LDSTX(0,1,0,0,1) | 0x1F<<10;
  2.1458+	case ASTLRH:		return LDSTX(1,1,0,0,1) | 0x1F<<10;
  2.1459+	case ASTLP:		return LDSTX(3,0,0,1,1);
  2.1460+	case ASTLPW:		return LDSTX(2,0,0,1,1);
  2.1461+	case ASTLRW:		return LDSTX(2,1,0,0,1) | 0x1F<<10;
  2.1462+	case ASTLXP:		return LDSTX(2,0,0,1,1);
  2.1463+	case ASTLXPW:		return LDSTX(3,0,0,1,1);
  2.1464+	case ASTLXR:		return LDSTX(3,0,0,0,1) | 0x1F<<10;
  2.1465+	case ASTLXRB:		return LDSTX(0,0,0,0,1) | 0x1F<<10;
  2.1466+	case ASTLXRH:		return LDSTX(1,0,0,0,1) | 0x1F<<10;
  2.1467+	case ASTLXRW:		return LDSTX(2,0,0,0,1) | 0x1F<<10;
  2.1468+	case ASTXR:		return LDSTX(3,0,0,0,0) | 0x1F<<10;
  2.1469+	case ASTXRB:		return LDSTX(0,0,0,0,0) | 0x1F<<10;
  2.1470+	case ASTXRH:		return LDSTX(1,0,0,0,0) | 0x1F<<10;
  2.1471+	case ASTXP:		return LDSTX(3,0,0,1,0);
  2.1472+	case ASTXPW:		return LDSTX(2,0,0,1,0);
  2.1473+	case ASTXRW:		return LDSTX(2,0,0,0,0) | 0x1F<<10;
  2.1474+	case AMOVNP:	return S64 | 0<<30 | 5<<27 | 0<<26 | 0<<23 | 1<<22;
  2.1475+	case AMOVNPW:	return S32 | 0<<30 | 5<<27 | 0<<26 | 0<<23 | 1<<22;
  2.1476+	}
  2.1477+	diag("bad opstore %A\n%P", a, curp);
  2.1478+	return 0;
  2.1479+}
  2.1480+
  2.1481+/*
  2.1482+ * load/store register (unsigned immediate) C3.3.13
  2.1483+ *	these produce 64-bit values (when there's an option)
  2.1484+ */
  2.1485+
  2.1486+static long
  2.1487+olsr12u(long o, long v, int b, int r)
  2.1488+{
  2.1489+	if(v < 0 || v >= (1<<12))
  2.1490+		diag("offset out of range: %ld\n%P", v, curp);
  2.1491+	o |= (v&0xFFF)<<10;
  2.1492+	o |= b << 5;
  2.1493+	o |= r;
  2.1494+	return o;
  2.1495+}
  2.1496+
  2.1497+static long
  2.1498+opldr12(int a)
  2.1499+{
  2.1500+	switch(a){
  2.1501+	case AMOV:	return LDSTR12U(3, 0, 1);	/* imm12<<10 | Rn<<5 | Rt */
  2.1502+	case AMOVW:	return LDSTR12U(2, 0, 2);
  2.1503+	case AMOVWU:	return LDSTR12U(2, 0, 1);
  2.1504+	case AMOVH:	return LDSTR12U(1, 0, 2);
  2.1505+	case AMOVHU:	return LDSTR12U(1, 0, 1);
  2.1506+	case AMOVB:	return LDSTR12U(0, 0, 2);
  2.1507+	case AMOVBU:	return LDSTR12U(0, 0, 1);
  2.1508+	case AFMOVS:	return LDSTR12U(2, 1, 1);
  2.1509+	case AFMOVD:	return LDSTR12U(3, 1, 1);
  2.1510+	}
  2.1511+	diag("bad opldr12 %A\n%P", a, curp);
  2.1512+	return 0;
  2.1513+}
  2.1514+
  2.1515+static long
  2.1516+opstr12(int a)
  2.1517+{
  2.1518+	return LD2STR(opldr12(a));
  2.1519+}
  2.1520+
  2.1521+/* 
  2.1522+ * load/store register (unscaled immediate) C3.3.12
  2.1523+ */
  2.1524+
  2.1525+static long
  2.1526+olsr9s(long o, long v, int b, int r)
  2.1527+{
  2.1528+	if(v < -256 || v > 255)
  2.1529+		diag("offset out of range: %ld\n%P", v, curp);
  2.1530+	o |= (v&0x1FF)<<12;
  2.1531+	o |= b << 5;
  2.1532+	o |= r;
  2.1533+	return o;
  2.1534+}
  2.1535+
  2.1536+static long
  2.1537+opldr9(int a)
  2.1538+{
  2.1539+	switch(a){
  2.1540+	case AMOV:	return LDSTR9S(3, 0, 1);	/* simm9<<12 | Rn<<5 | Rt */
  2.1541+	case AMOVW:	return LDSTR9S(2, 0, 2);
  2.1542+	case AMOVWU:	return LDSTR9S(2, 0, 1);
  2.1543+	case AMOVH:	return LDSTR9S(1, 0, 2);
  2.1544+	case AMOVHU:	return LDSTR9S(1, 0, 1);
  2.1545+	case AMOVB:	return LDSTR9S(0, 0, 2);
  2.1546+	case AMOVBU:	return LDSTR9S(0, 0, 1);
  2.1547+	case AFMOVS:	return LDSTR9S(2, 1, 1);
  2.1548+	case AFMOVD:	return LDSTR9S(3, 1, 1);
  2.1549+	}
  2.1550+	diag("bad opldr9 %A\n%P", a, curp);
  2.1551+	return 0;
  2.1552+}
  2.1553+
  2.1554+static long
  2.1555+opstr9(int a)
  2.1556+{
  2.1557+	return LD2STR(opldr9(a));
  2.1558+}
  2.1559+
  2.1560+static long
  2.1561+opldrpp(int a)
  2.1562+{
  2.1563+	switch(a){
  2.1564+	case AMOV:	return 3<<30 | 7<<27 | 0<<26 | 0<<24 | 1<<22;	/* simm9<<12 | Rn<<5 | Rt */
  2.1565+	case AMOVW:	return 2<<30 | 7<<27 | 0<<26 | 0<<24 | 2<<22;
  2.1566+	case AMOVWU:	return 2<<30 | 7<<27 | 0<<26 | 0<<24 | 1<<22;
  2.1567+	case AMOVH:	return 1<<30 | 7<<27 | 0<<26 | 0<<24 | 2<<22;
  2.1568+	case AMOVHU:	return 1<<30 | 7<<27 | 0<<26 | 0<<24 | 1<<22;
  2.1569+	case AMOVB:	return 0<<30 | 7<<27 | 0<<26 | 0<<24 | 2<<22;
  2.1570+	case AMOVBU:	return 0<<30 | 7<<27 | 0<<26 | 0<<24 | 1<<22;
  2.1571+	}
  2.1572+	diag("bad opldr %A\n%P", a, curp);
  2.1573+	return 0;
  2.1574+}
  2.1575+
  2.1576+/*
  2.1577+ * load/store register (extended register)
  2.1578+ */
  2.1579+static long
  2.1580+olsxrr(int a, int b, int c, int d)
  2.1581+{
  2.1582+	diag("need load/store extended register\n%P", curp);
  2.1583+	return -1;
  2.1584+}
  2.1585+
  2.1586+static long
  2.1587+oaddi(long o1, long v, int r, int rt)
  2.1588+{
  2.1589+	if((v & 0xFFF000) != 0){
  2.1590+		v >>= 12;
  2.1591+		o1 |= 1<<22;
  2.1592+	}
  2.1593+	o1 |= ((v & 0xFFF) << 10) | (r<<5) | rt;
  2.1594+	return o1;
  2.1595+}
  2.1596+
  2.1597+/*
  2.1598+ * load a a literal value into dr
  2.1599+ */
  2.1600+static long
  2.1601+omovlit(int as, Prog *p, Adr *a, int dr)
  2.1602+{	
  2.1603+	long v, o1;
  2.1604+	int w, fp;
  2.1605+
  2.1606+	if(p->cond == nil){	/* not in literal pool */
  2.1607+		aclass(a);
  2.1608+fprint(2, "omovlit add %lld (%#llux)\n", instoffset, instoffset);
  2.1609+		/* TO DO: could be clever, and use general constant builder */
  2.1610+		o1 = opirr(AADD);
  2.1611+		v = instoffset;
  2.1612+		if(v != 0 && (v & 0xFFF) == 0){
  2.1613+			v >>= 12;
  2.1614+			o1 |= 1<<22;	/* shift, by 12 */
  2.1615+		}
  2.1616+		o1 |= ((v& 0xFFF) << 10) | (REGZERO<<5) | dr;
  2.1617+	}else{
  2.1618+		fp = 0;
  2.1619+		w = 0;	/* default: 32 bit, unsigned */
  2.1620+		switch(as){
  2.1621+		case AFMOVS:
  2.1622+			fp = 1;
  2.1623+			break;
  2.1624+		case AFMOVD:
  2.1625+			fp = 1;
  2.1626+			w = 1;	/* 64 bit simd&fp */
  2.1627+			break;
  2.1628+		case AMOV:
  2.1629+			if(p->cond->as == ADWORD)
  2.1630+				w = 1;	/* 64 bit */
  2.1631+			else if(p->cond->to.offset < 0)
  2.1632+				w = 2;	/* sign extend */
  2.1633+			break;
  2.1634+		case AMOVB:
  2.1635+		case AMOVH:
  2.1636+		case AMOVW:
  2.1637+			w = 2;	/* 32 bit, sign-extended to 64 */
  2.1638+			break;
  2.1639+		}
  2.1640+		v = brdist(p, 0, 19, 2);
  2.1641+		o1 = (w<<30)|(fp<<26)|(3<<27);
  2.1642+		o1 |= (v&0x7FFFF)<<5;
  2.1643+		o1 |= dr;
  2.1644+	}
  2.1645+	return o1;
  2.1646+}
  2.1647+
  2.1648+static long
  2.1649+opbfm(int a, int r, int s, int rf, int rt)
  2.1650+{
  2.1651+	long o, c;
  2.1652+
  2.1653+	o = opirr(a);
  2.1654+	if((o & (1<<31)) == 0)
  2.1655+		c = 32;
  2.1656+	else
  2.1657+		c = 64;
  2.1658+	if(r < 0 || r >= c)
  2.1659+		diag("illegal bit number\n%P", curp);
  2.1660+	o |= (r&0x3F)<<16;
  2.1661+	if(s < 0 || s >= c)
  2.1662+		diag("illegal bit number\n%P", curp);
  2.1663+	o |= (s&0x3F)<<10;
  2.1664+	o |= (rf<<5) | rt;
  2.1665+	return o;
  2.1666+}
  2.1667+
  2.1668+static long
  2.1669+opextr(int a, long v, int rn, int rm, int rt)
  2.1670+{
  2.1671+	long o, c;
  2.1672+
  2.1673+	o = opirr(a);
  2.1674+	c = (o & (1<<31)) != 0? 63: 31;
  2.1675+	if(v < 0 || v > c)
  2.1676+		diag("illegal bit number\n%P", curp);
  2.1677+	o |= v<<10;
  2.1678+	o |= rn << 5;
  2.1679+	o |= rm << 16;
  2.1680+	o |= rt;
  2.1681+	return o;
  2.1682+}
  2.1683+
  2.1684+/*
  2.1685+ * size in log2(bytes)
  2.1686+ */
  2.1687+static int
  2.1688+movesize(int a)
  2.1689+{
  2.1690+	switch(a){
  2.1691+	case AMOV:
  2.1692+		return 3;
  2.1693+	case AMOVW:
  2.1694+	case AMOVWU:
  2.1695+		return 2;
  2.1696+	case AMOVH:
  2.1697+	case AMOVHU:
  2.1698+		return 1;
  2.1699+	case AMOVB:
  2.1700+	case AMOVBU:
  2.1701+		return 0;
  2.1702+	case AFMOVS:
  2.1703+		return 2;
  2.1704+	case AFMOVD:
  2.1705+		return 3;
  2.1706+	default:
  2.1707+		return -1;
  2.1708+	}
  2.1709+}
  2.1710+
  2.1711+/*
  2.1712+ * SIMD
  2.1713+ */
     3.1new file mode 100644
     3.2--- /dev/null
     3.3+++ b/sys/src/cmd/7l/bits.c
     3.4@@ -0,0 +1,5359 @@
     3.5+#include "l.h"
     3.6+
     3.7+static Mask bitmasks[] = {
     3.8+	1,	64,	0,	0x00000000000001LL,
     3.9+	1,	64,	63,	0x00000000000002LL,
    3.10+	2,	64,	0,	0x00000000000003LL,
    3.11+	1,	64,	62,	0x00000000000004LL,
    3.12+	2,	64,	63,	0x00000000000006LL,
    3.13+	3,	64,	0,	0x00000000000007LL,
    3.14+	1,	64,	61,	0x00000000000008LL,
    3.15+	2,	64,	62,	0x0000000000000cLL,
    3.16+	3,	64,	63,	0x0000000000000eLL,
    3.17+	4,	64,	0,	0x0000000000000fLL,
    3.18+	1,	64,	60,	0x00000000000010LL,
    3.19+	2,	64,	61,	0x00000000000018LL,
    3.20+	3,	64,	62,	0x0000000000001cLL,
    3.21+	4,	64,	63,	0x0000000000001eLL,
    3.22+	5,	64,	0,	0x0000000000001fLL,
    3.23+	1,	64,	59,	0x00000000000020LL,
    3.24+	2,	64,	60,	0x00000000000030LL,
    3.25+	3,	64,	61,	0x00000000000038LL,
    3.26+	4,	64,	62,	0x0000000000003cLL,
    3.27+	5,	64,	63,	0x0000000000003eLL,
    3.28+	6,	64,	0,	0x0000000000003fLL,
    3.29+	1,	64,	58,	0x00000000000040LL,
    3.30+	2,	64,	59,	0x00000000000060LL,
    3.31+	3,	64,	60,	0x00000000000070LL,
    3.32+	4,	64,	61,	0x00000000000078LL,
    3.33+	5,	64,	62,	0x0000000000007cLL,
    3.34+	6,	64,	63,	0x0000000000007eLL,
    3.35+	7,	64,	0,	0x0000000000007fLL,
    3.36+	1,	64,	57,	0x00000000000080LL,
    3.37+	2,	64,	58,	0x000000000000c0LL,
    3.38+	3,	64,	59,	0x000000000000e0LL,
    3.39+	4,	64,	60,	0x000000000000f0LL,
    3.40+	5,	64,	61,	0x000000000000f8LL,
    3.41+	6,	64,	62,	0x000000000000fcLL,
    3.42+	7,	64,	63,	0x000000000000feLL,
    3.43+	8,	64,	0,	0x000000000000ffLL,
    3.44+	1,	64,	56,	0x00000000000100LL,
    3.45+	2,	64,	57,	0x00000000000180LL,
    3.46+	3,	64,	58,	0x000000000001c0LL,
    3.47+	4,	64,	59,	0x000000000001e0LL,
    3.48+	5,	64,	60,	0x000000000001f0LL,
    3.49+	6,	64,	61,	0x000000000001f8LL,
    3.50+	7,	64,	62,	0x000000000001fcLL,
    3.51+	8,	64,	63,	0x000000000001feLL,
    3.52+	9,	64,	0,	0x000000000001ffLL,
    3.53+	1,	64,	55,	0x00000000000200LL,
    3.54+	2,	64,	56,	0x00000000000300LL,
    3.55+	3,	64,	57,	0x00000000000380LL,
    3.56+	4,	64,	58,	0x000000000003c0LL,
    3.57+	5,	64,	59,	0x000000000003e0LL,
    3.58+	6,	64,	60,	0x000000000003f0LL,
    3.59+	7,	64,	61,	0x000000000003f8LL,
    3.60+	8,	64,	62,	0x000000000003fcLL,
    3.61+	9,	64,	63,	0x000000000003feLL,
    3.62+	10,	64,	0,	0x000000000003ffLL,
    3.63+	1,	64,	54,	0x00000000000400LL,
    3.64+	2,	64,	55,	0x00000000000600LL,
    3.65+	3,	64,	56,	0x00000000000700LL,
    3.66+	4,	64,	57,	0x00000000000780LL,
    3.67+	5,	64,	58,	0x000000000007c0LL,
    3.68+	6,	64,	59,	0x000000000007e0LL,
    3.69+	7,	64,	60,	0x000000000007f0LL,
    3.70+	8,	64,	61,	0x000000000007f8LL,
    3.71+	9,	64,	62,	0x000000000007fcLL,
    3.72+	10,	64,	63,	0x000000000007feLL,
    3.73+	11,	64,	0,	0x000000000007ffLL,
    3.74+	1,	64,	53,	0x00000000000800LL,
    3.75+	2,	64,	54,	0x00000000000c00LL,
    3.76+	3,	64,	55,	0x00000000000e00LL,
    3.77+	4,	64,	56,	0x00000000000f00LL,
    3.78+	5,	64,	57,	0x00000000000f80LL,
    3.79+	6,	64,	58,	0x00000000000fc0LL,
    3.80+	7,	64,	59,	0x00000000000fe0LL,
    3.81+	8,	64,	60,	0x00000000000ff0LL,
    3.82+	9,	64,	61,	0x00000000000ff8LL,
    3.83+	10,	64,	62,	0x00000000000ffcLL,
    3.84+	11,	64,	63,	0x00000000000ffeLL,
    3.85+	12,	64,	0,	0x00000000000fffLL,
    3.86+	1,	64,	52,	0x00000000001000LL,
    3.87+	2,	64,	53,	0x00000000001800LL,
    3.88+	3,	64,	54,	0x00000000001c00LL,
    3.89+	4,	64,	55,	0x00000000001e00LL,
    3.90+	5,	64,	56,	0x00000000001f00LL,
    3.91+	6,	64,	57,	0x00000000001f80LL,
    3.92+	7,	64,	58,	0x00000000001fc0LL,
    3.93+	8,	64,	59,	0x00000000001fe0LL,
    3.94+	9,	64,	60,	0x00000000001ff0LL,
    3.95+	10,	64,	61,	0x00000000001ff8LL,
    3.96+	11,	64,	62,	0x00000000001ffcLL,
    3.97+	12,	64,	63,	0x00000000001ffeLL,
    3.98+	13,	64,	0,	0x00000000001fffLL,
    3.99+	1,	64,	51,	0x00000000002000LL,
   3.100+	2,	64,	52,	0x00000000003000LL,
   3.101+	3,	64,	53,	0x00000000003800LL,
   3.102+	4,	64,	54,	0x00000000003c00LL,
   3.103+	5,	64,	55,	0x00000000003e00LL,
   3.104+	6,	64,	56,	0x00000000003f00LL,
   3.105+	7,	64,	57,	0x00000000003f80LL,
   3.106+	8,	64,	58,	0x00000000003fc0LL,
   3.107+	9,	64,	59,	0x00000000003fe0LL,
   3.108+	10,	64,	60,	0x00000000003ff0LL,
   3.109+	11,	64,	61,	0x00000000003ff8LL,
   3.110+	12,	64,	62,	0x00000000003ffcLL,
   3.111+	13,	64,	63,	0x00000000003ffeLL,
   3.112+	14,	64,	0,	0x00000000003fffLL,
   3.113+	1,	64,	50,	0x00000000004000LL,
   3.114+	2,	64,	51,	0x00000000006000LL,
   3.115+	3,	64,	52,	0x00000000007000LL,
   3.116+	4,	64,	53,	0x00000000007800LL,
   3.117+	5,	64,	54,	0x00000000007c00LL,
   3.118+	6,	64,	55,	0x00000000007e00LL,
   3.119+	7,	64,	56,	0x00000000007f00LL,
   3.120+	8,	64,	57,	0x00000000007f80LL,
   3.121+	9,	64,	58,	0x00000000007fc0LL,
   3.122+	10,	64,	59,	0x00000000007fe0LL,
   3.123+	11,	64,	60,	0x00000000007ff0LL,
   3.124+	12,	64,	61,	0x00000000007ff8LL,
   3.125+	13,	64,	62,	0x00000000007ffcLL,
   3.126+	14,	64,	63,	0x00000000007ffeLL,
   3.127+	15,	64,	0,	0x00000000007fffLL,
   3.128+	1,	64,	49,	0x00000000008000LL,
   3.129+	2,	64,	50,	0x0000000000c000LL,
   3.130+	3,	64,	51,	0x0000000000e000LL,
   3.131+	4,	64,	52,	0x0000000000f000LL,
   3.132+	5,	64,	53,	0x0000000000f800LL,
   3.133+	6,	64,	54,	0x0000000000fc00LL,
   3.134+	7,	64,	55,	0x0000000000fe00LL,
   3.135+	8,	64,	56,	0x0000000000ff00LL,
   3.136+	9,	64,	57,	0x0000000000ff80LL,
   3.137+	10,	64,	58,	0x0000000000ffc0LL,
   3.138+	11,	64,	59,	0x0000000000ffe0LL,
   3.139+	12,	64,	60,	0x0000000000fff0LL,
   3.140+	13,	64,	61,	0x0000000000fff8LL,
   3.141+	14,	64,	62,	0x0000000000fffcLL,
   3.142+	15,	64,	63,	0x0000000000fffeLL,
   3.143+	16,	64,	0,	0x0000000000ffffLL,
   3.144+	1,	64,	48,	0x00000000010000LL,
   3.145+	2,	64,	49,	0x00000000018000LL,
   3.146+	3,	64,	50,	0x0000000001c000LL,
   3.147+	4,	64,	51,	0x0000000001e000LL,
   3.148+	5,	64,	52,	0x0000000001f000LL,
   3.149+	6,	64,	53,	0x0000000001f800LL,
   3.150+	7,	64,	54,	0x0000000001fc00LL,
   3.151+	8,	64,	55,	0x0000000001fe00LL,
   3.152+	9,	64,	56,	0x0000000001ff00LL,
   3.153+	10,	64,	57,	0x0000000001ff80LL,
   3.154+	11,	64,	58,	0x0000000001ffc0LL,
   3.155+	12,	64,	59,	0x0000000001ffe0LL,
   3.156+	13,	64,	60,	0x0000000001fff0LL,
   3.157+	14,	64,	61,	0x0000000001fff8LL,
   3.158+	15,	64,	62,	0x0000000001fffcLL,
   3.159+	16,	64,	63,	0x0000000001fffeLL,
   3.160+	17,	64,	0,	0x0000000001ffffLL,
   3.161+	1,	64,	47,	0x00000000020000LL,
   3.162+	2,	64,	48,	0x00000000030000LL,
   3.163+	3,	64,	49,	0x00000000038000LL,
   3.164+	4,	64,	50,	0x0000000003c000LL,
   3.165+	5,	64,	51,	0x0000000003e000LL,
   3.166+	6,	64,	52,	0x0000000003f000LL,
   3.167+	7,	64,	53,	0x0000000003f800LL,
   3.168+	8,	64,	54,	0x0000000003fc00LL,
   3.169+	9,	64,	55,	0x0000000003fe00LL,
   3.170+	10,	64,	56,	0x0000000003ff00LL,
   3.171+	11,	64,	57,	0x0000000003ff80LL,
   3.172+	12,	64,	58,	0x0000000003ffc0LL,
   3.173+	13,	64,	59,	0x0000000003ffe0LL,
   3.174+	14,	64,	60,	0x0000000003fff0LL,
   3.175+	15,	64,	61,	0x0000000003fff8LL,
   3.176+	16,	64,	62,	0x0000000003fffcLL,
   3.177+	17,	64,	63,	0x0000000003fffeLL,
   3.178+	18,	64,	0,	0x0000000003ffffLL,
   3.179+	1,	64,	46,	0x00000000040000LL,
   3.180+	2,	64,	47,	0x00000000060000LL,
   3.181+	3,	64,	48,	0x00000000070000LL,
   3.182+	4,	64,	49,	0x00000000078000LL,
   3.183+	5,	64,	50,	0x0000000007c000LL,
   3.184+	6,	64,	51,	0x0000000007e000LL,
   3.185+	7,	64,	52,	0x0000000007f000LL,
   3.186+	8,	64,	53,	0x0000000007f800LL,
   3.187+	9,	64,	54,	0x0000000007fc00LL,
   3.188+	10,	64,	55,	0x0000000007fe00LL,
   3.189+	11,	64,	56,	0x0000000007ff00LL,
   3.190+	12,	64,	57,	0x0000000007ff80LL,
   3.191+	13,	64,	58,	0x0000000007ffc0LL,
   3.192+	14,	64,	59,	0x0000000007ffe0LL,
   3.193+	15,	64,	60,	0x0000000007fff0LL,
   3.194+	16,	64,	61,	0x0000000007fff8LL,
   3.195+	17,	64,	62,	0x0000000007fffcLL,
   3.196+	18,	64,	63,	0x0000000007fffeLL,
   3.197+	19,	64,	0,	0x0000000007ffffLL,
   3.198+	1,	64,	45,	0x00000000080000LL,
   3.199+	2,	64,	46,	0x000000000c0000LL,
   3.200+	3,	64,	47,	0x000000000e0000LL,
   3.201+	4,	64,	48,	0x000000000f0000LL,
   3.202+	5,	64,	49,	0x000000000f8000LL,
   3.203+	6,	64,	50,	0x000000000fc000LL,
   3.204+	7,	64,	51,	0x000000000fe000LL,
   3.205+	8,	64,	52,	0x000000000ff000LL,
   3.206+	9,	64,	53,	0x000000000ff800LL,
   3.207+	10,	64,	54,	0x000000000ffc00LL,
   3.208+	11,	64,	55,	0x000000000ffe00LL,
   3.209+	12,	64,	56,	0x000000000fff00LL,
   3.210+	13,	64,	57,	0x000000000fff80LL,
   3.211+	14,	64,	58,	0x000000000fffc0LL,
   3.212+	15,	64,	59,	0x000000000fffe0LL,
   3.213+	16,	64,	60,	0x000000000ffff0LL,
   3.214+	17,	64,	61,	0x000000000ffff8LL,
   3.215+	18,	64,	62,	0x000000000ffffcLL,
   3.216+	19,	64,	63,	0x000000000ffffeLL,
   3.217+	20,	64,	0,	0x000000000fffffLL,
   3.218+	1,	64,	44,	0x00000000100000LL,
   3.219+	2,	64,	45,	0x00000000180000LL,
   3.220+	3,	64,	46,	0x000000001c0000LL,
   3.221+	4,	64,	47,	0x000000001e0000LL,
   3.222+	5,	64,	48,	0x000000001f0000LL,
   3.223+	6,	64,	49,	0x000000001f8000LL,
   3.224+	7,	64,	50,	0x000000001fc000LL,
   3.225+	8,	64,	51,	0x000000001fe000LL,
   3.226+	9,	64,	52,	0x000000001ff000LL,
   3.227+	10,	64,	53,	0x000000001ff800LL,
   3.228+	11,	64,	54,	0x000000001ffc00LL,
   3.229+	12,	64,	55,	0x000000001ffe00LL,
   3.230+	13,	64,	56,	0x000000001fff00LL,
   3.231+	14,	64,	57,	0x000000001fff80LL,
   3.232+	15,	64,	58,	0x000000001fffc0LL,
   3.233+	16,	64,	59,	0x000000001fffe0LL,
   3.234+	17,	64,	60,	0x000000001ffff0LL,
   3.235+	18,	64,	61,	0x000000001ffff8LL,
   3.236+	19,	64,	62,	0x000000001ffffcLL,
   3.237+	20,	64,	63,	0x000000001ffffeLL,
   3.238+	21,	64,	0,	0x000000001fffffLL,
   3.239+	1,	64,	43,	0x00000000200000LL,
   3.240+	2,	64,	44,	0x00000000300000LL,
   3.241+	3,	64,	45,	0x00000000380000LL,
   3.242+	4,	64,	46,	0x000000003c0000LL,
   3.243+	5,	64,	47,	0x000000003e0000LL,
   3.244+	6,	64,	48,	0x000000003f0000LL,
   3.245+	7,	64,	49,	0x000000003f8000LL,
   3.246+	8,	64,	50,	0x000000003fc000LL,
   3.247+	9,	64,	51,	0x000000003fe000LL,
   3.248+	10,	64,	52,	0x000000003ff000LL,
   3.249+	11,	64,	53,	0x000000003ff800LL,
   3.250+	12,	64,	54,	0x000000003ffc00LL,
   3.251+	13,	64,	55,	0x000000003ffe00LL,
   3.252+	14,	64,	56,	0x000000003fff00LL,
   3.253+	15,	64,	57,	0x000000003fff80LL,
   3.254+	16,	64,	58,	0x000000003fffc0LL,
   3.255+	17,	64,	59,	0x000000003fffe0LL,
   3.256+	18,	64,	60,	0x000000003ffff0LL,
   3.257+	19,	64,	61,	0x000000003ffff8LL,
   3.258+	20,	64,	62,	0x000000003ffffcLL,
   3.259+	21,	64,	63,	0x000000003ffffeLL,
   3.260+	22,	64,	0,	0x000000003fffffLL,
   3.261+	1,	64,	42,	0x00000000400000LL,
   3.262+	2,	64,	43,	0x00000000600000LL,
   3.263+	3,	64,	44,	0x00000000700000LL,
   3.264+	4,	64,	45,	0x00000000780000LL,
   3.265+	5,	64,	46,	0x000000007c0000LL,
   3.266+	6,	64,	47,	0x000000007e0000LL,
   3.267+	7,	64,	48,	0x000000007f0000LL,
   3.268+	8,	64,	49,	0x000000007f8000LL,
   3.269+	9,	64,	50,	0x000000007fc000LL,
   3.270+	10,	64,	51,	0x000000007fe000LL,
   3.271+	11,	64,	52,	0x000000007ff000LL,
   3.272+	12,	64,	53,	0x000000007ff800LL,
   3.273+	13,	64,	54,	0x000000007ffc00LL,
   3.274+	14,	64,	55,	0x000000007ffe00LL,
   3.275+	15,	64,	56,	0x000000007fff00LL,
   3.276+	16,	64,	57,	0x000000007fff80LL,
   3.277+	17,	64,	58,	0x000000007fffc0LL,
   3.278+	18,	64,	59,	0x000000007fffe0LL,
   3.279+	19,	64,	60,	0x000000007ffff0LL,
   3.280+	20,	64,	61,	0x000000007ffff8LL,
   3.281+	21,	64,	62,	0x000000007ffffcLL,
   3.282+	22,	64,	63,	0x000000007ffffeLL,
   3.283+	23,	64,	0,	0x000000007fffffLL,
   3.284+	1,	64,	41,	0x00000000800000LL,
   3.285+	2,	64,	42,	0x00000000c00000LL,
   3.286+	3,	64,	43,	0x00000000e00000LL,
   3.287+	4,	64,	44,	0x00000000f00000LL,
   3.288+	5,	64,	45,	0x00000000f80000LL,
   3.289+	6,	64,	46,	0x00000000fc0000LL,
   3.290+	7,	64,	47,	0x00000000fe0000LL,
   3.291+	8,	64,	48,	0x00000000ff0000LL,
   3.292+	9,	64,	49,	0x00000000ff8000LL,
   3.293+	10,	64,	50,	0x00000000ffc000LL,
   3.294+	11,	64,	51,	0x00000000ffe000LL,
   3.295+	12,	64,	52,	0x00000000fff000LL,
   3.296+	13,	64,	53,	0x00000000fff800LL,
   3.297+	14,	64,	54,	0x00000000fffc00LL,
   3.298+	15,	64,	55,	0x00000000fffe00LL,
   3.299+	16,	64,	56,	0x00000000ffff00LL,
   3.300+	17,	64,	57,	0x00000000ffff80LL,
   3.301+	18,	64,	58,	0x00000000ffffc0LL,
   3.302+	19,	64,	59,	0x00000000ffffe0LL,
   3.303+	20,	64,	60,	0x00000000fffff0LL,
   3.304+	21,	64,	61,	0x00000000fffff8LL,
   3.305+	22,	64,	62,	0x00000000fffffcLL,
   3.306+	23,	64,	63,	0x00000000fffffeLL,
   3.307+	24,	64,	0,	0x00000000ffffffLL,
   3.308+	1,	64,	40,	0x00000001000000LL,
   3.309+	2,	64,	41,	0x00000001800000LL,
   3.310+	3,	64,	42,	0x00000001c00000LL,
   3.311+	4,	64,	43,	0x00000001e00000LL,
   3.312+	5,	64,	44,	0x00000001f00000LL,
   3.313+	6,	64,	45,	0x00000001f80000LL,
   3.314+	7,	64,	46,	0x00000001fc0000LL,
   3.315+	8,	64,	47,	0x00000001fe0000LL,
   3.316+	9,	64,	48,	0x00000001ff0000LL,
   3.317+	10,	64,	49,	0x00000001ff8000LL,
   3.318+	11,	64,	50,	0x00000001ffc000LL,
   3.319+	12,	64,	51,	0x00000001ffe000LL,
   3.320+	13,	64,	52,	0x00000001fff000LL,
   3.321+	14,	64,	53,	0x00000001fff800LL,
   3.322+	15,	64,	54,	0x00000001fffc00LL,
   3.323+	16,	64,	55,	0x00000001fffe00LL,
   3.324+	17,	64,	56,	0x00000001ffff00LL,
   3.325+	18,	64,	57,	0x00000001ffff80LL,
   3.326+	19,	64,	58,	0x00000001ffffc0LL,
   3.327+	20,	64,	59,	0x00000001ffffe0LL,
   3.328+	21,	64,	60,	0x00000001fffff0LL,
   3.329+	22,	64,	61,	0x00000001fffff8LL,
   3.330+	23,	64,	62,	0x00000001fffffcLL,
   3.331+	24,	64,	63,	0x00000001fffffeLL,
   3.332+	25,	64,	0,	0x00000001ffffffLL,
   3.333+	1,	64,	39,	0x00000002000000LL,
   3.334+	2,	64,	40,	0x00000003000000LL,
   3.335+	3,	64,	41,	0x00000003800000LL,
   3.336+	4,	64,	42,	0x00000003c00000LL,
   3.337+	5,	64,	43,	0x00000003e00000LL,
   3.338+	6,	64,	44,	0x00000003f00000LL,
   3.339+	7,	64,	45,	0x00000003f80000LL,
   3.340+	8,	64,	46,	0x00000003fc0000LL,
   3.341+	9,	64,	47,	0x00000003fe0000LL,
   3.342+	10,	64,	48,	0x00000003ff0000LL,
   3.343+	11,	64,	49,	0x00000003ff8000LL,
   3.344+	12,	64,	50,	0x00000003ffc000LL,
   3.345+	13,	64,	51,	0x00000003ffe000LL,
   3.346+	14,	64,	52,	0x00000003fff000LL,
   3.347+	15,	64,	53,	0x00000003fff800LL,
   3.348+	16,	64,	54,	0x00000003fffc00LL,
   3.349+	17,	64,	55,	0x00000003fffe00LL,
   3.350+	18,	64,	56,	0x00000003ffff00LL,
   3.351+	19,	64,	57,	0x00000003ffff80LL,
   3.352+	20,	64,	58,	0x00000003ffffc0LL,
   3.353+	21,	64,	59,	0x00000003ffffe0LL,
   3.354+	22,	64,	60,	0x00000003fffff0LL,
   3.355+	23,	64,	61,	0x00000003fffff8LL,
   3.356+	24,	64,	62,	0x00000003fffffcLL,
   3.357+	25,	64,	63,	0x00000003fffffeLL,
   3.358+	26,	64,	0,	0x00000003ffffffLL,
   3.359+	1,	64,	38,	0x00000004000000LL,
   3.360+	2,	64,	39,	0x00000006000000LL,
   3.361+	3,	64,	40,	0x00000007000000LL,
   3.362+	4,	64,	41,	0x00000007800000LL,
   3.363+	5,	64,	42,	0x00000007c00000LL,
   3.364+	6,	64,	43,	0x00000007e00000LL,
   3.365+	7,	64,	44,	0x00000007f00000LL,
   3.366+	8,	64,	45,	0x00000007f80000LL,
   3.367+	9,	64,	46,	0x00000007fc0000LL,
   3.368+	10,	64,	47,	0x00000007fe0000LL,
   3.369+	11,	64,	48,	0x00000007ff0000LL,
   3.370+	12,	64,	49,	0x00000007ff8000LL,
   3.371+	13,	64,	50,	0x00000007ffc000LL,
   3.372+	14,	64,	51,	0x00000007ffe000LL,
   3.373+	15,	64,	52,	0x00000007fff000LL,
   3.374+	16,	64,	53,	0x00000007fff800LL,
   3.375+	17,	64,	54,	0x00000007fffc00LL,
   3.376+	18,	64,	55,	0x00000007fffe00LL,
   3.377+	19,	64,	56,	0x00000007ffff00LL,
   3.378+	20,	64,	57,	0x00000007ffff80LL,
   3.379+	21,	64,	58,	0x00000007ffffc0LL,
   3.380+	22,	64,	59,	0x00000007ffffe0LL,
   3.381+	23,	64,	60,	0x00000007fffff0LL,
   3.382+	24,	64,	61,	0x00000007fffff8LL,
   3.383+	25,	64,	62,	0x00000007fffffcLL,
   3.384+	26,	64,	63,	0x00000007fffffeLL,
   3.385+	27,	64,	0,	0x00000007ffffffLL,
   3.386+	1,	64,	37,	0x00000008000000LL,
   3.387+	2,	64,	38,	0x0000000c000000LL,
   3.388+	3,	64,	39,	0x0000000e000000LL,
   3.389+	4,	64,	40,	0x0000000f000000LL,
   3.390+	5,	64,	41,	0x0000000f800000LL,
   3.391+	6,	64,	42,	0x0000000fc00000LL,
   3.392+	7,	64,	43,	0x0000000fe00000LL,
   3.393+	8,	64,	44,	0x0000000ff00000LL,
   3.394+	9,	64,	45,	0x0000000ff80000LL,
   3.395+	10,	64,	46,	0x0000000ffc0000LL,
   3.396+	11,	64,	47,	0x0000000ffe0000LL,
   3.397+	12,	64,	48,	0x0000000fff0000LL,
   3.398+	13,	64,	49,	0x0000000fff8000LL,
   3.399+	14,	64,	50,	0x0000000fffc000LL,
   3.400+	15,	64,	51,	0x0000000fffe000LL,
   3.401+	16,	64,	52,	0x0000000ffff000LL,
   3.402+	17,	64,	53,	0x0000000ffff800LL,
   3.403+	18,	64,	54,	0x0000000ffffc00LL,
   3.404+	19,	64,	55,	0x0000000ffffe00LL,
   3.405+	20,	64,	56,	0x0000000fffff00LL,
   3.406+	21,	64,	57,	0x0000000fffff80LL,
   3.407+	22,	64,	58,	0x0000000fffffc0LL,
   3.408+	23,	64,	59,	0x0000000fffffe0LL,
   3.409+	24,	64,	60,	0x0000000ffffff0LL,
   3.410+	25,	64,	61,	0x0000000ffffff8LL,
   3.411+	26,	64,	62,	0x0000000ffffffcLL,
   3.412+	27,	64,	63,	0x0000000ffffffeLL,
   3.413+	28,	64,	0,	0x0000000fffffffLL,
   3.414+	1,	64,	36,	0x00000010000000LL,
   3.415+	2,	64,	37,	0x00000018000000LL,
   3.416+	3,	64,	38,	0x0000001c000000LL,
   3.417+	4,	64,	39,	0x0000001e000000LL,
   3.418+	5,	64,	40,	0x0000001f000000LL,
   3.419+	6,	64,	41,	0x0000001f800000LL,
   3.420+	7,	64,	42,	0x0000001fc00000LL,
   3.421+	8,	64,	43,	0x0000001fe00000LL,
   3.422+	9,	64,	44,	0x0000001ff00000LL,
   3.423+	10,	64,	45,	0x0000001ff80000LL,
   3.424+	11,	64,	46,	0x0000001ffc0000LL,
   3.425+	12,	64,	47,	0x0000001ffe0000LL,
   3.426+	13,	64,	48,	0x0000001fff0000LL,
   3.427+	14,	64,	49,	0x0000001fff8000LL,
   3.428+	15,	64,	50,	0x0000001fffc000LL,
   3.429+	16,	64,	51,	0x0000001fffe000LL,
   3.430+	17,	64,	52,	0x0000001ffff000LL,
   3.431+	18,	64,	53,	0x0000001ffff800LL,
   3.432+	19,	64,	54,	0x0000001ffffc00LL,
   3.433+	20,	64,	55,	0x0000001ffffe00LL,
   3.434+	21,	64,	56,	0x0000001fffff00LL,
   3.435+	22,	64,	57,	0x0000001fffff80LL,
   3.436+	23,	64,	58,	0x0000001fffffc0LL,
   3.437+	24,	64,	59,	0x0000001fffffe0LL,
   3.438+	25,	64,	60,	0x0000001ffffff0LL,
   3.439+	26,	64,	61,	0x0000001ffffff8LL,
   3.440+	27,	64,	62,	0x0000001ffffffcLL,
   3.441+	28,	64,	63,	0x0000001ffffffeLL,
   3.442+	29,	64,	0,	0x0000001fffffffLL,
   3.443+	1,	64,	35,	0x00000020000000LL,
   3.444+	2,	64,	36,	0x00000030000000LL,
   3.445+	3,	64,	37,	0x00000038000000LL,
   3.446+	4,	64,	38,	0x0000003c000000LL,
   3.447+	5,	64,	39,	0x0000003e000000LL,
   3.448+	6,	64,	40,	0x0000003f000000LL,
   3.449+	7,	64,	41,	0x0000003f800000LL,
   3.450+	8,	64,	42,	0x0000003fc00000LL,
   3.451+	9,	64,	43,	0x0000003fe00000LL,
   3.452+	10,	64,	44,	0x0000003ff00000LL,
   3.453+	11,	64,	45,	0x0000003ff80000LL,
   3.454+	12,	64,	46,	0x0000003ffc0000LL,
   3.455+	13,	64,	47,	0x0000003ffe0000LL,
   3.456+	14,	64,	48,	0x0000003fff0000LL,
   3.457+	15,	64,	49,	0x0000003fff8000LL,
   3.458+	16,	64,	50,	0x0000003fffc000LL,
   3.459+	17,	64,	51,	0x0000003fffe000LL,
   3.460+	18,	64,	52,	0x0000003ffff000LL,
   3.461+	19,	64,	53,	0x0000003ffff800LL,
   3.462+	20,	64,	54,	0x0000003ffffc00LL,
   3.463+	21,	64,	55,	0x0000003ffffe00LL,
   3.464+	22,	64,	56,	0x0000003fffff00LL,
   3.465+	23,	64,	57,	0x0000003fffff80LL,
   3.466+	24,	64,	58,	0x0000003fffffc0LL,
   3.467+	25,	64,	59,	0x0000003fffffe0LL,
   3.468+	26,	64,	60,	0x0000003ffffff0LL,
   3.469+	27,	64,	61,	0x0000003ffffff8LL,
   3.470+	28,	64,	62,	0x0000003ffffffcLL,
   3.471+	29,	64,	63,	0x0000003ffffffeLL,
   3.472+	30,	64,	0,	0x0000003fffffffLL,
   3.473+	1,	64,	34,	0x00000040000000LL,
   3.474+	2,	64,	35,	0x00000060000000LL,
   3.475+	3,	64,	36,	0x00000070000000LL,
   3.476+	4,	64,	37,	0x00000078000000LL,
   3.477+	5,	64,	38,	0x0000007c000000LL,
   3.478+	6,	64,	39,	0x0000007e000000LL,
   3.479+	7,	64,	40,	0x0000007f000000LL,
   3.480+	8,	64,	41,	0x0000007f800000LL,
   3.481+	9,	64,	42,	0x0000007fc00000LL,
   3.482+	10,	64,	43,	0x0000007fe00000LL,
   3.483+	11,	64,	44,	0x0000007ff00000LL,
   3.484+	12,	64,	45,	0x0000007ff80000LL,
   3.485+	13,	64,	46,	0x0000007ffc0000LL,
   3.486+	14,	64,	47,	0x0000007ffe0000LL,
   3.487+	15,	64,	48,	0x0000007fff0000LL,
   3.488+	16,	64,	49,	0x0000007fff8000LL,
   3.489+	17,	64,	50,	0x0000007fffc000LL,
   3.490+	18,	64,	51,	0x0000007fffe000LL,
   3.491+	19,	64,	52,	0x0000007ffff000LL,
   3.492+	20,	64,	53,	0x0000007ffff800LL,
   3.493+	21,	64,	54,	0x0000007ffffc00LL,
   3.494+	22,	64,	55,	0x0000007ffffe00LL,
   3.495+	23,	64,	56,	0x0000007fffff00LL,
   3.496+	24,	64,	57,	0x0000007fffff80LL,
   3.497+	25,	64,	58,	0x0000007fffffc0LL,
   3.498+	26,	64,	59,	0x0000007fffffe0LL,
   3.499+	27,	64,	60,	0x0000007ffffff0LL,
   3.500+	28,	64,	61,	0x0000007ffffff8LL,
   3.501+	29,	64,	62,	0x0000007ffffffcLL,
   3.502+	30,	64,	63,	0x0000007ffffffeLL,
   3.503+	31,	64,	0,	0x0000007fffffffLL,
   3.504+	1,	64,	33,	0x00000080000000LL,
   3.505+	2,	64,	34,	0x000000c0000000LL,
   3.506+	3,	64,	35,	0x000000e0000000LL,
   3.507+	4,	64,	36,	0x000000f0000000LL,
   3.508+	5,	64,	37,	0x000000f8000000LL,
   3.509+	6,	64,	38,	0x000000fc000000LL,
   3.510+	7,	64,	39,	0x000000fe000000LL,
   3.511+	8,	64,	40,	0x000000ff000000LL,
   3.512+	9,	64,	41,	0x000000ff800000LL,
   3.513+	10,	64,	42,	0x000000ffc00000LL,
   3.514+	11,	64,	43,	0x000000ffe00000LL,
   3.515+	12,	64,	44,	0x000000fff00000LL,
   3.516+	13,	64,	45,	0x000000fff80000LL,
   3.517+	14,	64,	46,	0x000000fffc0000LL,
   3.518+	15,	64,	47,	0x000000fffe0000LL,
   3.519+	16,	64,	48,	0x000000ffff0000LL,
   3.520+	17,	64,	49,	0x000000ffff8000LL,
   3.521+	18,	64,	50,	0x000000ffffc000LL,
   3.522+	19,	64,	51,	0x000000ffffe000LL,
   3.523+	20,	64,	52,	0x000000fffff000LL,
   3.524+	21,	64,	53,	0x000000fffff800LL,
   3.525+	22,	64,	54,	0x000000fffffc00LL,
   3.526+	23,	64,	55,	0x000000fffffe00LL,
   3.527+	24,	64,	56,	0x000000ffffff00LL,
   3.528+	25,	64,	57,	0x000000ffffff80LL,
   3.529+	26,	64,	58,	0x000000ffffffc0LL,
   3.530+	27,	64,	59,	0x000000ffffffe0LL,
   3.531+	28,	64,	60,	0x000000fffffff0LL,
   3.532+	29,	64,	61,	0x000000fffffff8LL,
   3.533+	30,	64,	62,	0x000000fffffffcLL,
   3.534+	31,	64,	63,	0x000000fffffffeLL,
   3.535+	32,	64,	0,	0x000000ffffffffLL,
   3.536+	1,	64,	32,	0x00000100000000LL,
   3.537+	1,	32,	0,	0x00000100000001LL,
   3.538+	2,	64,	33,	0x00000180000000LL,
   3.539+	3,	64,	34,	0x000001c0000000LL,
   3.540+	4,	64,	35,	0x000001e0000000LL,
   3.541+	5,	64,	36,	0x000001f0000000LL,
   3.542+	6,	64,	37,	0x000001f8000000LL,
   3.543+	7,	64,	38,	0x000001fc000000LL,
   3.544+	8,	64,	39,	0x000001fe000000LL,
   3.545+	9,	64,	40,	0x000001ff000000LL,
   3.546+	10,	64,	41,	0x000001ff800000LL,
   3.547+	11,	64,	42,	0x000001ffc00000LL,
   3.548+	12,	64,	43,	0x000001ffe00000LL,
   3.549+	13,	64,	44,	0x000001fff00000LL,
   3.550+	14,	64,	45,	0x000001fff80000LL,
   3.551+	15,	64,	46,	0x000001fffc0000LL,
   3.552+	16,	64,	47,	0x000001fffe0000LL,
   3.553+	17,	64,	48,	0x000001ffff0000LL,
   3.554+	18,	64,	49,	0x000001ffff8000LL,
   3.555+	19,	64,	50,	0x000001ffffc000LL,
   3.556+	20,	64,	51,	0x000001ffffe000LL,
   3.557+	21,	64,	52,	0x000001fffff000LL,
   3.558+	22,	64,	53,	0x000001fffff800LL,
   3.559+	23,	64,	54,	0x000001fffffc00LL,
   3.560+	24,	64,	55,	0x000001fffffe00LL,
   3.561+	25,	64,	56,	0x000001ffffff00LL,
   3.562+	26,	64,	57,	0x000001ffffff80LL,
   3.563+	27,	64,	58,	0x000001ffffffc0LL,
   3.564+	28,	64,	59,	0x000001ffffffe0LL,
   3.565+	29,	64,	60,	0x000001fffffff0LL,
   3.566+	30,	64,	61,	0x000001fffffff8LL,
   3.567+	31,	64,	62,	0x000001fffffffcLL,
   3.568+	32,	64,	63,	0x000001fffffffeLL,
   3.569+	33,	64,	0,	0x000001ffffffffLL,
   3.570+	1,	64,	31,	0x00000200000000LL,
   3.571+	1,	32,	31,	0x00000200000002LL,
   3.572+	2,	64,	32,	0x00000300000000LL,
   3.573+	2,	32,	0,	0x00000300000003LL,
   3.574+	3,	64,	33,	0x00000380000000LL,
   3.575+	4,	64,	34,	0x000003c0000000LL,
   3.576+	5,	64,	35,	0x000003e0000000LL,
   3.577+	6,	64,	36,	0x000003f0000000LL,
   3.578+	7,	64,	37,	0x000003f8000000LL,
   3.579+	8,	64,	38,	0x000003fc000000LL,
   3.580+	9,	64,	39,	0x000003fe000000LL,
   3.581+	10,	64,	40,	0x000003ff000000LL,
   3.582+	11,	64,	41,	0x000003ff800000LL,
   3.583+	12,	64,	42,	0x000003ffc00000LL,
   3.584+	13,	64,	43,	0x000003ffe00000LL,
   3.585+	14,	64,	44,	0x000003fff00000LL,
   3.586+	15,	64,	45,	0x000003fff80000LL,
   3.587+	16,	64,	46,	0x000003fffc0000LL,
   3.588+	17,	64,	47,	0x000003fffe0000LL,
   3.589+	18,	64,	48,	0x000003ffff0000LL,
   3.590+	19,	64,	49,	0x000003ffff8000LL,
   3.591+	20,	64,	50,	0x000003ffffc000LL,
   3.592+	21,	64,	51,	0x000003ffffe000LL,
   3.593+	22,	64,	52,	0x000003fffff000LL,
   3.594+	23,	64,	53,	0x000003fffff800LL,
   3.595+	24,	64,	54,	0x000003fffffc00LL,
   3.596+	25,	64,	55,	0x000003fffffe00LL,
   3.597+	26,	64,	56,	0x000003ffffff00LL,
   3.598+	27,	64,	57,	0x000003ffffff80LL,
   3.599+	28,	64,	58,	0x000003ffffffc0LL,
   3.600+	29,	64,	59,	0x000003ffffffe0LL,
   3.601+	30,	64,	60,	0x000003fffffff0LL,
   3.602+	31,	64,	61,	0x000003fffffff8LL,
   3.603+	32,	64,	62,	0x000003fffffffcLL,
   3.604+	33,	64,	63,	0x000003fffffffeLL,
   3.605+	34,	64,	0,	0x000003ffffffffLL,
   3.606+	1,	64,	30,	0x00000400000000LL,
   3.607+	1,	32,	30,	0x00000400000004LL,
   3.608+	2,	64,	31,	0x00000600000000LL,
   3.609+	2,	32,	31,	0x00000600000006LL,
   3.610+	3,	64,	32,	0x00000700000000LL,
   3.611+	3,	32,	0,	0x00000700000007LL,
   3.612+	4,	64,	33,	0x00000780000000LL,
   3.613+	5,	64,	34,	0x000007c0000000LL,
   3.614+	6,	64,	35,	0x000007e0000000LL,
   3.615+	7,	64,	36,	0x000007f0000000LL,
   3.616+	8,	64,	37,	0x000007f8000000LL,
   3.617+	9,	64,	38,	0x000007fc000000LL,
   3.618+	10,	64,	39,	0x000007fe000000LL,
   3.619+	11,	64,	40,	0x000007ff000000LL,
   3.620+	12,	64,	41,	0x000007ff800000LL,
   3.621+	13,	64,	42,	0x000007ffc00000LL,
   3.622+	14,	64,	43,	0x000007ffe00000LL,
   3.623+	15,	64,	44,	0x000007fff00000LL,
   3.624+	16,	64,	45,	0x000007fff80000LL,
   3.625+	17,	64,	46,	0x000007fffc0000LL,
   3.626+	18,	64,	47,	0x000007fffe0000LL,
   3.627+	19,	64,	48,	0x000007ffff0000LL,
   3.628+	20,	64,	49,	0x000007ffff8000LL,
   3.629+	21,	64,	50,	0x000007ffffc000LL,
   3.630+	22,	64,	51,	0x000007ffffe000LL,
   3.631+	23,	64,	52,	0x000007fffff000LL,
   3.632+	24,	64,	53,	0x000007fffff800LL,
   3.633+	25,	64,	54,	0x000007fffffc00LL,
   3.634+	26,	64,	55,	0x000007fffffe00LL,
   3.635+	27,	64,	56,	0x000007ffffff00LL,
   3.636+	28,	64,	57,	0x000007ffffff80LL,
   3.637+	29,	64,	58,	0x000007ffffffc0LL,
   3.638+	30,	64,	59,	0x000007ffffffe0LL,
   3.639+	31,	64,	60,	0x000007fffffff0LL,
   3.640+	32,	64,	61,	0x000007fffffff8LL,
   3.641+	33,	64,	62,	0x000007fffffffcLL,
   3.642+	34,	64,	63,	0x000007fffffffeLL,
   3.643+	35,	64,	0,	0x000007ffffffffLL,
   3.644+	1,	64,	29,	0x00000800000000LL,
   3.645+	1,	32,	29,	0x00000800000008LL,
   3.646+	2,	64,	30,	0x00000c00000000LL,
   3.647+	2,	32,	30,	0x00000c0000000cLL,
   3.648+	3,	64,	31,	0x00000e00000000LL,
   3.649+	3,	32,	31,	0x00000e0000000eLL,
   3.650+	4,	64,	32,	0x00000f00000000LL,
   3.651+	4,	32,	0,	0x00000f0000000fLL,
   3.652+	5,	64,	33,	0x00000f80000000LL,
   3.653+	6,	64,	34,	0x00000fc0000000LL,
   3.654+	7,	64,	35,	0x00000fe0000000LL,
   3.655+	8,	64,	36,	0x00000ff0000000LL,
   3.656+	9,	64,	37,	0x00000ff8000000LL,
   3.657+	10,	64,	38,	0x00000ffc000000LL,
   3.658+	11,	64,	39,	0x00000ffe000000LL,
   3.659+	12,	64,	40,	0x00000fff000000LL,
   3.660+	13,	64,	41,	0x00000fff800000LL,
   3.661+	14,	64,	42,	0x00000fffc00000LL,
   3.662+	15,	64,	43,	0x00000fffe00000LL,
   3.663+	16,	64,	44,	0x00000ffff00000LL,
   3.664+	17,	64,	45,	0x00000ffff80000LL,
   3.665+	18,	64,	46,	0x00000ffffc0000LL,
   3.666+	19,	64,	47,	0x00000ffffe0000LL,
   3.667+	20,	64,	48,	0x00000fffff0000LL,
   3.668+	21,	64,	49,	0x00000fffff8000LL,
   3.669+	22,	64,	50,	0x00000fffffc000LL,
   3.670+	23,	64,	51,	0x00000fffffe000LL,
   3.671+	24,	64,	52,	0x00000ffffff000LL,
   3.672+	25,	64,	53,	0x00000ffffff800LL,
   3.673+	26,	64,	54,	0x00000ffffffc00LL,
   3.674+	27,	64,	55,	0x00000ffffffe00LL,
   3.675+	28,	64,	56,	0x00000fffffff00LL,
   3.676+	29,	64,	57,	0x00000fffffff80LL,
   3.677+	30,	64,	58,	0x00000fffffffc0LL,
   3.678+	31,	64,	59,	0x00000fffffffe0LL,
   3.679+	32,	64,	60,	0x00000ffffffff0LL,
   3.680+	33,	64,	61,	0x00000ffffffff8LL,
   3.681+	34,	64,	62,	0x00000ffffffffcLL,
   3.682+	35,	64,	63,	0x00000ffffffffeLL,
   3.683+	36,	64,	0,	0x00000fffffffffLL,
   3.684+	1,	64,	28,	0x00001000000000LL,
   3.685+	1,	32,	28,	0x00001000000010LL,
   3.686+	2,	64,	29,	0x00001800000000LL,
   3.687+	2,	32,	29,	0x00001800000018LL,
   3.688+	3,	64,	30,	0x00001c00000000LL,
   3.689+	3,	32,	30,	0x00001c0000001cLL,
   3.690+	4,	64,	31,	0x00001e00000000LL,
   3.691+	4,	32,	31,	0x00001e0000001eLL,
   3.692+	5,	64,	32,	0x00001f00000000LL,
   3.693+	5,	32,	0,	0x00001f0000001fLL,
   3.694+	6,	64,	33,	0x00001f80000000LL,
   3.695+	7,	64,	34,	0x00001fc0000000LL,
   3.696+	8,	64,	35,	0x00001fe0000000LL,
   3.697+	9,	64,	36,	0x00001ff0000000LL,
   3.698+	10,	64,	37,	0x00001ff8000000LL,
   3.699+	11,	64,	38,	0x00001ffc000000LL,
   3.700+	12,	64,	39,	0x00001ffe000000LL,
   3.701+	13,	64,	40,	0x00001fff000000LL,
   3.702+	14,	64,	41,	0x00001fff800000LL,
   3.703+	15,	64,	42,	0x00001fffc00000LL,
   3.704+	16,	64,	43,	0x00001fffe00000LL,
   3.705+	17,	64,	44,	0x00001ffff00000LL,
   3.706+	18,	64,	45,	0x00001ffff80000LL,
   3.707+	19,	64,	46,	0x00001ffffc0000LL,
   3.708+	20,	64,	47,	0x00001ffffe0000LL,
   3.709+	21,	64,	48,	0x00001fffff0000LL,
   3.710+	22,	64,	49,	0x00001fffff8000LL,
   3.711+	23,	64,	50,	0x00001fffffc000LL,
   3.712+	24,	64,	51,	0x00001fffffe000LL,
   3.713+	25,	64,	52,	0x00001ffffff000LL,
   3.714+	26,	64,	53,	0x00001ffffff800LL,
   3.715+	27,	64,	54,	0x00001ffffffc00LL,
   3.716+	28,	64,	55,	0x00001ffffffe00LL,
   3.717+	29,	64,	56,	0x00001fffffff00LL,
   3.718+	30,	64,	57,	0x00001fffffff80LL,
   3.719+	31,	64,	58,	0x00001fffffffc0LL,
   3.720+	32,	64,	59,	0x00001fffffffe0LL,
   3.721+	33,	64,	60,	0x00001ffffffff0LL,
   3.722+	34,	64,	61,	0x00001ffffffff8LL,
   3.723+	35,	64,	62,	0x00001ffffffffcLL,
   3.724+	36,	64,	63,	0x00001ffffffffeLL,
   3.725+	37,	64,	0,	0x00001fffffffffLL,
   3.726+	1,	64,	27,	0x00002000000000LL,
   3.727+	1,	32,	27,	0x00002000000020LL,
   3.728+	2,	64,	28,	0x00003000000000LL,
   3.729+	2,	32,	28,	0x00003000000030LL,
   3.730+	3,	64,	29,	0x00003800000000LL,
   3.731+	3,	32,	29,	0x00003800000038LL,
   3.732+	4,	64,	30,	0x00003c00000000LL,
   3.733+	4,	32,	30,	0x00003c0000003cLL,
   3.734+	5,	64,	31,	0x00003e00000000LL,
   3.735+	5,	32,	31,	0x00003e0000003eLL,
   3.736+	6,	64,	32,	0x00003f00000000LL,
   3.737+	6,	32,	0,	0x00003f0000003fLL,
   3.738+	7,	64,	33,	0x00003f80000000LL,
   3.739+	8,	64,	34,	0x00003fc0000000LL,
   3.740+	9,	64,	35,	0x00003fe0000000LL,
   3.741+	10,	64,	36,	0x00003ff0000000LL,
   3.742+	11,	64,	37,	0x00003ff8000000LL,
   3.743+	12,	64,	38,	0x00003ffc000000LL,
   3.744+	13,	64,	39,	0x00003ffe000000LL,
   3.745+	14,	64,	40,	0x00003fff000000LL,
   3.746+	15,	64,	41,	0x00003fff800000LL,
   3.747+	16,	64,	42,	0x00003fffc00000LL,
   3.748+	17,	64,	43,	0x00003fffe00000LL,
   3.749+	18,	64,	44,	0x00003ffff00000LL,
   3.750+	19,	64,	45,	0x00003ffff80000LL,
   3.751+	20,	64,	46,	0x00003ffffc0000LL,
   3.752+	21,	64,	47,	0x00003ffffe0000LL,
   3.753+	22,	64,	48,	0x00003fffff0000LL,
   3.754+	23,	64,	49,	0x00003fffff8000LL,
   3.755+	24,	64,	50,	0x00003fffffc000LL,
   3.756+	25,	64,	51,	0x00003fffffe000LL,
   3.757+	26,	64,	52,	0x00003ffffff000LL,
   3.758+	27,	64,	53,	0x00003ffffff800LL,
   3.759+	28,	64,	54,	0x00003ffffffc00LL,
   3.760+	29,	64,	55,	0x00003ffffffe00LL,
   3.761+	30,	64,	56,	0x00003fffffff00LL,
   3.762+	31,	64,	57,	0x00003fffffff80LL,
   3.763+	32,	64,	58,	0x00003fffffffc0LL,
   3.764+	33,	64,	59,	0x00003fffffffe0LL,
   3.765+	34,	64,	60,	0x00003ffffffff0LL,
   3.766+	35,	64,	61,	0x00003ffffffff8LL,
   3.767+	36,	64,	62,	0x00003ffffffffcLL,
   3.768+	37,	64,	63,	0x00003ffffffffeLL,
   3.769+	38,	64,	0,	0x00003fffffffffLL,
   3.770+	1,	64,	26,	0x00004000000000LL,
   3.771+	1,	32,	26,	0x00004000000040LL,
   3.772+	2,	64,	27,	0x00006000000000LL,
   3.773+	2,	32,	27,	0x00006000000060LL,
   3.774+	3,	64,	28,	0x00007000000000LL,
   3.775+	3,	32,	28,	0x00007000000070LL,
   3.776+	4,	64,	29,	0x00007800000000LL,
   3.777+	4,	32,	29,	0x00007800000078LL,
   3.778+	5,	64,	30,	0x00007c00000000LL,
   3.779+	5,	32,	30,	0x00007c0000007cLL,
   3.780+	6,	64,	31,	0x00007e00000000LL,
   3.781+	6,	32,	31,	0x00007e0000007eLL,
   3.782+	7,	64,	32,	0x00007f00000000LL,
   3.783+	7,	32,	0,	0x00007f0000007fLL,
   3.784+	8,	64,	33,	0x00007f80000000LL,
   3.785+	9,	64,	34,	0x00007fc0000000LL,
   3.786+	10,	64,	35,	0x00007fe0000000LL,
   3.787+	11,	64,	36,	0x00007ff0000000LL,
   3.788+	12,	64,	37,	0x00007ff8000000LL,
   3.789+	13,	64,	38,	0x00007ffc000000LL,
   3.790+	14,	64,	39,	0x00007ffe000000LL,
   3.791+	15,	64,	40,	0x00007fff000000LL,
   3.792+	16,	64,	41,	0x00007fff800000LL,
   3.793+	17,	64,	42,	0x00007fffc00000LL,
   3.794+	18,	64,	43,	0x00007fffe00000LL,
   3.795+	19,	64,	44,	0x00007ffff00000LL,
   3.796+	20,	64,	45,	0x00007ffff80000LL,
   3.797+	21,	64,	46,	0x00007ffffc0000LL,
   3.798+	22,	64,	47,	0x00007ffffe0000LL,
   3.799+	23,	64,	48,	0x00007fffff0000LL,
   3.800+	24,	64,	49,	0x00007fffff8000LL,
   3.801+	25,	64,	50,	0x00007fffffc000LL,
   3.802+	26,	64,	51,	0x00007fffffe000LL,
   3.803+	27,	64,	52,	0x00007ffffff000LL,
   3.804+	28,	64,	53,	0x00007ffffff800LL,
   3.805+	29,	64,	54,	0x00007ffffffc00LL,
   3.806+	30,	64,	55,	0x00007ffffffe00LL,
   3.807+	31,	64,	56,	0x00007fffffff00LL,
   3.808+	32,	64,	57,	0x00007fffffff80LL,
   3.809+	33,	64,	58,	0x00007fffffffc0LL,
   3.810+	34,	64,	59,	0x00007fffffffe0LL,
   3.811+	35,	64,	60,	0x00007ffffffff0LL,
   3.812+	36,	64,	61,	0x00007ffffffff8LL,
   3.813+	37,	64,	62,	0x00007ffffffffcLL,
   3.814+	38,	64,	63,	0x00007ffffffffeLL,
   3.815+	39,	64,	0,	0x00007fffffffffLL,
   3.816+	1,	64,	25,	0x00008000000000LL,
   3.817+	1,	32,	25,	0x00008000000080LL,
   3.818+	2,	64,	26,	0x0000c000000000LL,
   3.819+	2,	32,	26,	0x0000c0000000c0LL,
   3.820+	3,	64,	27,	0x0000e000000000LL,
   3.821+	3,	32,	27,	0x0000e0000000e0LL,
   3.822+	4,	64,	28,	0x0000f000000000LL,
   3.823+	4,	32,	28,	0x0000f0000000f0LL,
   3.824+	5,	64,	29,	0x0000f800000000LL,
   3.825+	5,	32,	29,	0x0000f8000000f8LL,
   3.826+	6,	64,	30,	0x0000fc00000000LL,
   3.827+	6,	32,	30,	0x0000fc000000fcLL,
   3.828+	7,	64,	31,	0x0000fe00000000LL,
   3.829+	7,	32,	31,	0x0000fe000000feLL,
   3.830+	8,	64,	32,	0x0000ff00000000LL,
   3.831+	8,	32,	0,	0x0000ff000000ffLL,
   3.832+	9,	64,	33,	0x0000ff80000000LL,
   3.833+	10,	64,	34,	0x0000ffc0000000LL,
   3.834+	11,	64,	35,	0x0000ffe0000000LL,
   3.835+	12,	64,	36,	0x0000fff0000000LL,
   3.836+	13,	64,	37,	0x0000fff8000000LL,
   3.837+	14,	64,	38,	0x0000fffc000000LL,
   3.838+	15,	64,	39,	0x0000fffe000000LL,
   3.839+	16,	64,	40,	0x0000ffff000000LL,
   3.840+	17,	64,	41,	0x0000ffff800000LL,
   3.841+	18,	64,	42,	0x0000ffffc00000LL,
   3.842+	19,	64,	43,	0x0000ffffe00000LL,
   3.843+	20,	64,	44,	0x0000fffff00000LL,
   3.844+	21,	64,	45,	0x0000fffff80000LL,
   3.845+	22,	64,	46,	0x0000fffffc0000LL,
   3.846+	23,	64,	47,	0x0000fffffe0000LL,
   3.847+	24,	64,	48,	0x0000ffffff0000LL,
   3.848+	25,	64,	49,	0x0000ffffff8000LL,
   3.849+	26,	64,	50,	0x0000ffffffc000LL,
   3.850+	27,	64,	51,	0x0000ffffffe000LL,
   3.851+	28,	64,	52,	0x0000fffffff000LL,
   3.852+	29,	64,	53,	0x0000fffffff800LL,
   3.853+	30,	64,	54,	0x0000fffffffc00LL,
   3.854+	31,	64,	55,	0x0000fffffffe00LL,
   3.855+	32,	64,	56,	0x0000ffffffff00LL,
   3.856+	33,	64,	57,	0x0000ffffffff80LL,
   3.857+	34,	64,	58,	0x0000ffffffffc0LL,
   3.858+	35,	64,	59,	0x0000ffffffffe0LL,
   3.859+	36,	64,	60,	0x0000fffffffff0LL,
   3.860+	37,	64,	61,	0x0000fffffffff8LL,
   3.861+	38,	64,	62,	0x0000fffffffffcLL,
   3.862+	39,	64,	63,	0x0000fffffffffeLL,
   3.863+	40,	64,	0,	0x0000ffffffffffLL,
   3.864+	1,	64,	24,	0x00010000000000LL,
   3.865+	1,	32,	24,	0x00010000000100LL,
   3.866+	2,	64,	25,	0x00018000000000LL,
   3.867+	2,	32,	25,	0x00018000000180LL,
   3.868+	3,	64,	26,	0x0001c000000000LL,
   3.869+	3,	32,	26,	0x0001c0000001c0LL,
   3.870+	4,	64,	27,	0x0001e000000000LL,
   3.871+	4,	32,	27,	0x0001e0000001e0LL,
   3.872+	5,	64,	28,	0x0001f000000000LL,
   3.873+	5,	32,	28,	0x0001f0000001f0LL,
   3.874+	6,	64,	29,	0x0001f800000000LL,
   3.875+	6,	32,	29,	0x0001f8000001f8LL,
   3.876+	7,	64,	30,	0x0001fc00000000LL,
   3.877+	7,	32,	30,	0x0001fc000001fcLL,
   3.878+	8,	64,	31,	0x0001fe00000000LL,
   3.879+	8,	32,	31,	0x0001fe000001feLL,
   3.880+	9,	64,	32,	0x0001ff00000000LL,
   3.881+	9,	32,	0,	0x0001ff000001ffLL,
   3.882+	10,	64,	33,	0x0001ff80000000LL,
   3.883+	11,	64,	34,	0x0001ffc0000000LL,
   3.884+	12,	64,	35,	0x0001ffe0000000LL,
   3.885+	13,	64,	36,	0x0001fff0000000LL,
   3.886+	14,	64,	37,	0x0001fff8000000LL,
   3.887+	15,	64,	38,	0x0001fffc000000LL,
   3.888+	16,	64,	39,	0x0001fffe000000LL,
   3.889+	17,	64,	40,	0x0001ffff000000LL,
   3.890+	18,	64,	41,	0x0001ffff800000LL,
   3.891+	19,	64,	42,	0x0001ffffc00000LL,
   3.892+	20,	64,	43,	0x0001ffffe00000LL,
   3.893+	21,	64,	44,	0x0001fffff00000LL,
   3.894+	22,	64,	45,	0x0001fffff80000LL,
   3.895+	23,	64,	46,	0x0001fffffc0000LL,
   3.896+	24,	64,	47,	0x0001fffffe0000LL,
   3.897+	25,	64,	48,	0x0001ffffff0000LL,
   3.898+	26,	64,	49,	0x0001ffffff8000LL,
   3.899+	27,	64,	50,	0x0001ffffffc000LL,
   3.900+	28,	64,	51,	0x0001ffffffe000LL,
   3.901+	29,	64,	52,	0x0001fffffff000LL,
   3.902+	30,	64,	53,	0x0001fffffff800LL,
   3.903+	31,	64,	54,	0x0001fffffffc00LL,
   3.904+	32,	64,	55,	0x0001fffffffe00LL,
   3.905+	33,	64,	56,	0x0001ffffffff00LL,
   3.906+	34,	64,	57,	0x0001ffffffff80LL,
   3.907+	35,	64,	58,	0x0001ffffffffc0LL,
   3.908+	36,	64,	59,	0x0001ffffffffe0LL,
   3.909+	37,	64,	60,	0x0001fffffffff0LL,
   3.910+	38,	64,	61,	0x0001fffffffff8LL,
   3.911+	39,	64,	62,	0x0001fffffffffcLL,
   3.912+	40,	64,	63,	0x0001fffffffffeLL,
   3.913+	41,	64,	0,	0x0001ffffffffffLL,
   3.914+	1,	64,	23,	0x00020000000000LL,
   3.915+	1,	32,	23,	0x00020000000200LL,
   3.916+	2,	64,	24,	0x00030000000000LL,
   3.917+	2,	32,	24,	0x00030000000300LL,
   3.918+	3,	64,	25,	0x00038000000000LL,
   3.919+	3,	32,	25,	0x00038000000380LL,
   3.920+	4,	64,	26,	0x0003c000000000LL,
   3.921+	4,	32,	26,	0x0003c0000003c0LL,
   3.922+	5,	64,	27,	0x0003e000000000LL,
   3.923+	5,	32,	27,	0x0003e0000003e0LL,
   3.924+	6,	64,	28,	0x0003f000000000LL,
   3.925+	6,	32,	28,	0x0003f0000003f0LL,
   3.926+	7,	64,	29,	0x0003f800000000LL,
   3.927+	7,	32,	29,	0x0003f8000003f8LL,
   3.928+	8,	64,	30,	0x0003fc00000000LL,
   3.929+	8,	32,	30,	0x0003fc000003fcLL,
   3.930+	9,	64,	31,	0x0003fe00000000LL,
   3.931+	9,	32,	31,	0x0003fe000003feLL,
   3.932+	10,	64,	32,	0x0003ff00000000LL,
   3.933+	10,	32,	0,	0x0003ff000003ffLL,
   3.934+	11,	64,	33,	0x0003ff80000000LL,
   3.935+	12,	64,	34,	0x0003ffc0000000LL,
   3.936+	13,	64,	35,	0x0003ffe0000000LL,
   3.937+	14,	64,	36,	0x0003fff0000000LL,
   3.938+	15,	64,	37,	0x0003fff8000000LL,
   3.939+	16,	64,	38,	0x0003fffc000000LL,
   3.940+	17,	64,	39,	0x0003fffe000000LL,
   3.941+	18,	64,	40,	0x0003ffff000000LL,
   3.942+	19,	64,	41,	0x0003ffff800000LL,
   3.943+	20,	64,	42,	0x0003ffffc00000LL,
   3.944+	21,	64,	43,	0x0003ffffe00000LL,
   3.945+	22,	64,	44,	0x0003fffff00000LL,
   3.946+	23,	64,	45,	0x0003fffff80000LL,
   3.947+	24,	64,	46,	0x0003fffffc0000LL,
   3.948+	25,	64,	47,	0x0003fffffe0000LL,
   3.949+	26,	64,	48,	0x0003ffffff0000LL,
   3.950+	27,	64,	49,	0x0003ffffff8000LL,
   3.951+	28,	64,	50,	0x0003ffffffc000LL,
   3.952+	29,	64,	51,	0x0003ffffffe000LL,
   3.953+	30,	64,	52,	0x0003fffffff000LL,
   3.954+	31,	64,	53,	0x0003fffffff800LL,
   3.955+	32,	64,	54,	0x0003fffffffc00LL,
   3.956+	33,	64,	55,	0x0003fffffffe00LL,
   3.957+	34,	64,	56,	0x0003ffffffff00LL,
   3.958+	35,	64,	57,	0x0003ffffffff80LL,
   3.959+	36,	64,	58,	0x0003ffffffffc0LL,
   3.960+	37,	64,	59,	0x0003ffffffffe0LL,
   3.961+	38,	64,	60,	0x0003fffffffff0LL,
   3.962+	39,	64,	61,	0x0003fffffffff8LL,
   3.963+	40,	64,	62,	0x0003fffffffffcLL,
   3.964+	41,	64,	63,	0x0003fffffffffeLL,
   3.965+	42,	64,	0,	0x0003ffffffffffLL,
   3.966+	1,	64,	22,	0x00040000000000LL,
   3.967+	1,	32,	22,	0x00040000000400LL,
   3.968+	2,	64,	23,	0x00060000000000LL,
   3.969+	2,	32,	23,	0x00060000000600LL,
   3.970+	3,	64,	24,	0x00070000000000LL,
   3.971+	3,	32,	24,	0x00070000000700LL,
   3.972+	4,	64,	25,	0x00078000000000LL,
   3.973+	4,	32,	25,	0x00078000000780LL,
   3.974+	5,	64,	26,	0x0007c000000000LL,
   3.975+	5,	32,	26,	0x0007c0000007c0LL,
   3.976+	6,	64,	27,	0x0007e000000000LL,
   3.977+	6,	32,	27,	0x0007e0000007e0LL,
   3.978+	7,	64,	28,	0x0007f000000000LL,
   3.979+	7,	32,	28,	0x0007f0000007f0LL,
   3.980+	8,	64,	29,	0x0007f800000000LL,
   3.981+	8,	32,	29,	0x0007f8000007f8LL,
   3.982+	9,	64,	30,	0x0007fc00000000LL,
   3.983+	9,	32,	30,	0x0007fc000007fcLL,
   3.984+	10,	64,	31,	0x0007fe00000000LL,
   3.985+	10,	32,	31,	0x0007fe000007feLL,
   3.986+	11,	64,	32,	0x0007ff00000000LL,
   3.987+	11,	32,	0,	0x0007ff000007ffLL,
   3.988+	12,	64,	33,	0x0007ff80000000LL,
   3.989+	13,	64,	34,	0x0007ffc0000000LL,
   3.990+	14,	64,	35,	0x0007ffe0000000LL,
   3.991+	15,	64,	36,	0x0007fff0000000LL,
   3.992+	16,	64,	37,	0x0007fff8000000LL,
   3.993+	17,	64,	38,	0x0007fffc000000LL,
   3.994+	18,	64,	39,	0x0007fffe000000LL,
   3.995+	19,	64,	40,	0x0007ffff000000LL,
   3.996+	20,	64,	41,	0x0007ffff800000LL,
   3.997+	21,	64,	42,	0x0007ffffc00000LL,
   3.998+	22,	64,	43,	0x0007ffffe00000LL,
   3.999+	23,	64,	44,	0x0007fffff00000LL,
  3.1000+	24,	64,	45,	0x0007fffff80000LL,
  3.1001+	25,	64,	46,	0x0007fffffc0000LL,
  3.1002+	26,	64,	47,	0x0007fffffe0000LL,
  3.1003+	27,	64,	48,	0x0007ffffff0000LL,
  3.1004+	28,	64,	49,	0x0007ffffff8000LL,
  3.1005+	29,	64,	50,	0x0007ffffffc000LL,
  3.1006+	30,	64,	51,	0x0007ffffffe000LL,
  3.1007+	31,	64,	52,	0x0007fffffff000LL,
  3.1008+	32,	64,	53,	0x0007fffffff800LL,
  3.1009+	33,	64,	54,	0x0007fffffffc00LL,
  3.1010+	34,	64,	55,	0x0007fffffffe00LL,
  3.1011+	35,	64,	56,	0x0007ffffffff00LL,
  3.1012+	36,	64,	57,	0x0007ffffffff80LL,
  3.1013+	37,	64,	58,	0x0007ffffffffc0LL,
  3.1014+	38,	64,	59,	0x0007ffffffffe0LL,
  3.1015+	39,	64,	60,	0x0007fffffffff0LL,
  3.1016+	40,	64,	61,	0x0007fffffffff8LL,
  3.1017+	41,	64,	62,	0x0007fffffffffcLL,
  3.1018+	42,	64,	63,	0x0007fffffffffeLL,
  3.1019+	43,	64,	0,	0x0007ffffffffffLL,
  3.1020+	1,	64,	21,	0x00080000000000LL,
  3.1021+	1,	32,	21,	0x00080000000800LL,
  3.1022+	2,	64,	22,	0x000c0000000000LL,
  3.1023+	2,	32,	22,	0x000c0000000c00LL,
  3.1024+	3,	64,	23,	0x000e0000000000LL,
  3.1025+	3,	32,	23,	0x000e0000000e00LL,
  3.1026+	4,	64,	24,	0x000f0000000000LL,
  3.1027+	4,	32,	24,	0x000f0000000f00LL,
  3.1028+	5,	64,	25,	0x000f8000000000LL,
  3.1029+	5,	32,	25,	0x000f8000000f80LL,
  3.1030+	6,	64,	26,	0x000fc000000000LL,
  3.1031+	6,	32,	26,	0x000fc000000fc0LL,
  3.1032+	7,	64,	27,	0x000fe000000000LL,
  3.1033+	7,	32,	27,	0x000fe000000fe0LL,
  3.1034+	8,	64,	28,	0x000ff000000000LL,
  3.1035+	8,	32,	28,	0x000ff000000ff0LL,
  3.1036+	9,	64,	29,	0x000ff800000000LL,
  3.1037+	9,	32,	29,	0x000ff800000ff8LL,
  3.1038+	10,	64,	30,	0x000ffc00000000LL,
  3.1039+	10,	32,	30,	0x000ffc00000ffcLL,
  3.1040+	11,	64,	31,	0x000ffe00000000LL,
  3.1041+	11,	32,	31,	0x000ffe00000ffeLL,
  3.1042+	12,	64,	32,	0x000fff00000000LL,
  3.1043+	12,	32,	0,	0x000fff00000fffLL,
  3.1044+	13,	64,	33,	0x000fff80000000LL,
  3.1045+	14,	64,	34,	0x000fffc0000000LL,
  3.1046+	15,	64,	35,	0x000fffe0000000LL,
  3.1047+	16,	64,	36,	0x000ffff0000000LL,
  3.1048+	17,	64,	37,	0x000ffff8000000LL,
  3.1049+	18,	64,	38,	0x000ffffc000000LL,
  3.1050+	19,	64,	39,	0x000ffffe000000LL,
  3.1051+	20,	64,	40,	0x000fffff000000LL,
  3.1052+	21,	64,	41,	0x000fffff800000LL,
  3.1053+	22,	64,	42,	0x000fffffc00000LL,
  3.1054+	23,	64,	43,	0x000fffffe00000LL,
  3.1055+	24,	64,	44,	0x000ffffff00000LL,
  3.1056+	25,	64,	45,	0x000ffffff80000LL,
  3.1057+	26,	64,	46,	0x000ffffffc0000LL,
  3.1058+	27,	64,	47,	0x000ffffffe0000LL,
  3.1059+	28,	64,	48,	0x000fffffff0000LL,
  3.1060+	29,	64,	49,	0x000fffffff8000LL,
  3.1061+	30,	64,	50,	0x000fffffffc000LL,
  3.1062+	31,	64,	51,	0x000fffffffe000LL,
  3.1063+	32,	64,	52,	0x000ffffffff000LL,
  3.1064+	33,	64,	53,	0x000ffffffff800LL,
  3.1065+	34,	64,	54,	0x000ffffffffc00LL,
  3.1066+	35,	64,	55,	0x000ffffffffe00LL,
  3.1067+	36,	64,	56,	0x000fffffffff00LL,
  3.1068+	37,	64,	57,	0x000fffffffff80LL,
  3.1069+	38,	64,	58,	0x000fffffffffc0LL,
  3.1070+	39,	64,	59,	0x000fffffffffe0LL,
  3.1071+	40,	64,	60,	0x000ffffffffff0LL,
  3.1072+	41,	64,	61,	0x000ffffffffff8LL,
  3.1073+	42,	64,	62,	0x000ffffffffffcLL,
  3.1074+	43,	64,	63,	0x000ffffffffffeLL,
  3.1075+	44,	64,	0,	0x000fffffffffffLL,
  3.1076+	1,	64,	20,	0x00100000000000LL,
  3.1077+	1,	32,	20,	0x00100000001000LL,
  3.1078+	2,	64,	21,	0x00180000000000LL,
  3.1079+	2,	32,	21,	0x00180000001800LL,
  3.1080+	3,	64,	22,	0x001c0000000000LL,
  3.1081+	3,	32,	22,	0x001c0000001c00LL,
  3.1082+	4,	64,	23,	0x001e0000000000LL,
  3.1083+	4,	32,	23,	0x001e0000001e00LL,
  3.1084+	5,	64,	24,	0x001f0000000000LL,
  3.1085+	5,	32,	24,	0x001f0000001f00LL,
  3.1086+	6,	64,	25,	0x001f8000000000LL,
  3.1087+	6,	32,	25,	0x001f8000001f80LL,
  3.1088+	7,	64,	26,	0x001fc000000000LL,
  3.1089+	7,	32,	26,	0x001fc000001fc0LL,
  3.1090+	8,	64,	27,	0x001fe000000000LL,
  3.1091+	8,	32,	27,	0x001fe000001fe0LL,
  3.1092+	9,	64,	28,	0x001ff000000000LL,
  3.1093+	9,	32,	28,	0x001ff000001ff0LL,
  3.1094+	10,	64,	29,	0x001ff800000000LL,
  3.1095+	10,	32,	29,	0x001ff800001ff8LL,
  3.1096+	11,	64,	30,	0x001ffc00000000LL,
  3.1097+	11,	32,	30,	0x001ffc00001ffcLL,
  3.1098+	12,	64,	31,	0x001ffe00000000LL,
  3.1099+	12,	32,	31,	0x001ffe00001ffeLL,
  3.1100+	13,	64,	32,	0x001fff00000000LL,
  3.1101+	13,	32,	0,	0x001fff00001fffLL,
  3.1102+	14,	64,	33,	0x001fff80000000LL,
  3.1103+	15,	64,	34,	0x001fffc0000000LL,
  3.1104+	16,	64,	35,	0x001fffe0000000LL,
  3.1105+	17,	64,	36,	0x001ffff0000000LL,
  3.1106+	18,	64,	37,	0x001ffff8000000LL,
  3.1107+	19,	64,	38,	0x001ffffc000000LL,
  3.1108+	20,	64,	39,	0x001ffffe000000LL,
  3.1109+	21,	64,	40,	0x001fffff000000LL,
  3.1110+	22,	64,	41,	0x001fffff800000LL,
  3.1111+	23,	64,	42,	0x001fffffc00000LL,
  3.1112+	24,	64,	43,	0x001fffffe00000LL,
  3.1113+	25,	64,	44,	0x001ffffff00000LL,
  3.1114+	26,	64,	45,	0x001ffffff80000LL,
  3.1115+	27,	64,	46,	0x001ffffffc0000LL,
  3.1116+	28,	64,	47,	0x001ffffffe0000LL,
  3.1117+	29,	64,	48,	0x001fffffff0000LL,
  3.1118+	30,	64,	49,	0x001fffffff8000LL,
  3.1119+	31,	64,	50,	0x001fffffffc000LL,
  3.1120+	32,	64,	51,	0x001fffffffe000LL,
  3.1121+	33,	64,	52,	0x001ffffffff000LL,
  3.1122+	34,	64,	53,	0x001ffffffff800LL,
  3.1123+	35,	64,	54,	0x001ffffffffc00LL,
  3.1124+	36,	64,	55,	0x001ffffffffe00LL,
  3.1125+	37,	64,	56,	0x001fffffffff00LL,
  3.1126+	38,	64,	57,	0x001fffffffff80LL,
  3.1127+	39,	64,	58,	0x001fffffffffc0LL,
  3.1128+	40,	64,	59,	0x001fffffffffe0LL,
  3.1129+	41,	64,	60,	0x001ffffffffff0LL,
  3.1130+	42,	64,	61,	0x001ffffffffff8LL,
  3.1131+	43,	64,	62,	0x001ffffffffffcLL,
  3.1132+	44,	64,	63,	0x001ffffffffffeLL,
  3.1133+	45,	64,	0,	0x001fffffffffffLL,
  3.1134+	1,	64,	19,	0x00200000000000LL,
  3.1135+	1,	32,	19,	0x00200000002000LL,
  3.1136+	2,	64,	20,	0x00300000000000LL,
  3.1137+	2,	32,	20,	0x00300000003000LL,
  3.1138+	3,	64,	21,	0x00380000000000LL,
  3.1139+	3,	32,	21,	0x00380000003800LL,
  3.1140+	4,	64,	22,	0x003c0000000000LL,
  3.1141+	4,	32,	22,	0x003c0000003c00LL,
  3.1142+	5,	64,	23,	0x003e0000000000LL,
  3.1143+	5,	32,	23,	0x003e0000003e00LL,
  3.1144+	6,	64,	24,	0x003f0000000000LL,
  3.1145+	6,	32,	24,	0x003f0000003f00LL,
  3.1146+	7,	64,	25,	0x003f8000000000LL,
  3.1147+	7,	32,	25,	0x003f8000003f80LL,
  3.1148+	8,	64,	26,	0x003fc000000000LL,
  3.1149+	8,	32,	26,	0x003fc000003fc0LL,
  3.1150+	9,	64,	27,	0x003fe000000000LL,
  3.1151+	9,	32,	27,	0x003fe000003fe0LL,
  3.1152+	10,	64,	28,	0x003ff000000000LL,
  3.1153+	10,	32,	28,	0x003ff000003ff0LL,
  3.1154+	11,	64,	29,	0x003ff800000000LL,
  3.1155+	11,	32,	29,	0x003ff800003ff8LL,
  3.1156+	12,	64,	30,	0x003ffc00000000LL,
  3.1157+	12,	32,	30,	0x003ffc00003ffcLL,
  3.1158+	13,	64,	31,	0x003ffe00000000LL,
  3.1159+	13,	32,	31,	0x003ffe00003ffeLL,
  3.1160+	14,	64,	32,	0x003fff00000000LL,
  3.1161+	14,	32,	0,	0x003fff00003fffLL,
  3.1162+	15,	64,	33,	0x003fff80000000LL,
  3.1163+	16,	64,	34,	0x003fffc0000000LL,
  3.1164+	17,	64,	35,	0x003fffe0000000LL,
  3.1165+	18,	64,	36,	0x003ffff0000000LL,
  3.1166+	19,	64,	37,	0x003ffff8000000LL,
  3.1167+	20,	64,	38,	0x003ffffc000000LL,
  3.1168+	21,	64,	39,	0x003ffffe000000LL,
  3.1169+	22,	64,	40,	0x003fffff000000LL,
  3.1170+	23,	64,	41,	0x003fffff800000LL,
  3.1171+	24,	64,	42,	0x003fffffc00000LL,
  3.1172+	25,	64,	43,	0x003fffffe00000LL,
  3.1173+	26,	64,	44,	0x003ffffff00000LL,
  3.1174+	27,	64,	45,	0x003ffffff80000LL,
  3.1175+	28,	64,	46,	0x003ffffffc0000LL,
  3.1176+	29,	64,	47,	0x003ffffffe0000LL,
  3.1177+	30,	64,	48,	0x003fffffff0000LL,
  3.1178+	31,	64,	49,	0x003fffffff8000LL,
  3.1179+	32,	64,	50,	0x003fffffffc000LL,
  3.1180+	33,	64,	51,	0x003fffffffe000LL,
  3.1181+	34,	64,	52,	0x003ffffffff000LL,
  3.1182+	35,	64,	53,	0x003ffffffff800LL,
  3.1183+	36,	64,	54,	0x003ffffffffc00LL,
  3.1184+	37,	64,	55,	0x003ffffffffe00LL,
  3.1185+	38,	64,	56,	0x003fffffffff00LL,
  3.1186+	39,	64,	57,	0x003fffffffff80LL,
  3.1187+	40,	64,	58,	0x003fffffffffc0LL,
  3.1188+	41,	64,	59,	0x003fffffffffe0LL,
  3.1189+	42,	64,	60,	0x003ffffffffff0LL,
  3.1190+	43,	64,	61,	0x003ffffffffff8LL,
  3.1191+	44,	64,	62,	0x003ffffffffffcLL,
  3.1192+	45,	64,	63,	0x003ffffffffffeLL,
  3.1193+	46,	64,	0,	0x003fffffffffffLL,
  3.1194+	1,	64,	18,	0x00400000000000LL,
  3.1195+	1,	32,	18,	0x00400000004000LL,
  3.1196+	2,	64,	19,	0x00600000000000LL,
  3.1197+	2,	32,	19,	0x00600000006000LL,
  3.1198+	3,	64,	20,	0x00700000000000LL,
  3.1199+	3,	32,	20,	0x00700000007000LL,
  3.1200+	4,	64,	21,	0x00780000000000LL,
  3.1201+	4,	32,	21,	0x00780000007800LL,
  3.1202+	5,	64,	22,	0x007c0000000000LL,
  3.1203+	5,	32,	22,	0x007c0000007c00LL,
  3.1204+	6,	64,	23,	0x007e0000000000LL,
  3.1205+	6,	32,	23,	0x007e0000007e00LL,
  3.1206+	7,	64,	24,	0x007f0000000000LL,
  3.1207+	7,	32,	24,	0x007f0000007f00LL,
  3.1208+	8,	64,	25,	0x007f8000000000LL,
  3.1209+	8,	32,	25,	0x007f8000007f80LL,
  3.1210+	9,	64,	26,	0x007fc000000000LL,
  3.1211+	9,	32,	26,	0x007fc000007fc0LL,
  3.1212+	10,	64,	27,	0x007fe000000000LL,
  3.1213+	10,	32,	27,	0x007fe000007fe0LL,
  3.1214+	11,	64,	28,	0x007ff000000000LL,
  3.1215+	11,	32,	28,	0x007ff000007ff0LL,
  3.1216+	12,	64,	29,	0x007ff800000000LL,
  3.1217+	12,	32,	29,	0x007ff800007ff8LL,
  3.1218+	13,	64,	30,	0x007ffc00000000LL,
  3.1219+	13,	32,	30,	0x007ffc00007ffcLL,
  3.1220+	14,	64,	31,	0x007ffe00000000LL,
  3.1221+	14,	32,	31,	0x007ffe00007ffeLL,
  3.1222+	15,	64,	32,	0x007fff00000000LL,
  3.1223+	15,	32,	0,	0x007fff00007fffLL,
  3.1224+	16,	64,	33,	0x007fff80000000LL,
  3.1225+	17,	64,	34,	0x007fffc0000000LL,
  3.1226+	18,	64,	35,	0x007fffe0000000LL,
  3.1227+	19,	64,	36,	0x007ffff0000000LL,
  3.1228+	20,	64,	37,	0x007ffff8000000LL,
  3.1229+	21,	64,	38,	0x007ffffc000000LL,
  3.1230+	22,	64,	39,	0x007ffffe000000LL,
  3.1231+	23,	64,	40,	0x007fffff000000LL,
  3.1232+	24,	64,	41,	0x007fffff800000LL,
  3.1233+	25,	64,	42,	0x007fffffc00000LL,
  3.1234+	26,	64,	43,	0x007fffffe00000LL,
  3.1235+	27,	64,	44,	0x007ffffff00000LL,
  3.1236+	28,	64,	45,	0x007ffffff80000LL,
  3.1237+	29,	64,	46,	0x007ffffffc0000LL,
  3.1238+	30,	64,	47,	0x007ffffffe0000LL,
  3.1239+	31,	64,	48,	0x007fffffff0000LL,
  3.1240+	32,	64,	49,	0x007fffffff8000LL,
  3.1241+	33,	64,	50,	0x007fffffffc000LL,
  3.1242+	34,	64,	51,	0x007fffffffe000LL,
  3.1243+	35,	64,	52,	0x007ffffffff000LL,
  3.1244+	36,	64,	53,	0x007ffffffff800LL,
  3.1245+	37,	64,	54,	0x007ffffffffc00LL,
  3.1246+	38,	64,	55,	0x007ffffffffe00LL,
  3.1247+	39,	64,	56,	0x007fffffffff00LL,
  3.1248+	40,	64,	57,	0x007fffffffff80LL,
  3.1249+	41,	64,	58,	0x007fffffffffc0LL,
  3.1250+	42,	64,	59,	0x007fffffffffe0LL,
  3.1251+	43,	64,	60,	0x007ffffffffff0LL,
  3.1252+	44,	64,	61,	0x007ffffffffff8LL,
  3.1253+	45,	64,	62,	0x007ffffffffffcLL,
  3.1254+	46,	64,	63,	0x007ffffffffffeLL,
  3.1255+	47,	64,	0,	0x007fffffffffffLL,
  3.1256+	1,	64,	17,	0x00800000000000LL,
  3.1257+	1,	32,	17,	0x00800000008000LL,
  3.1258+	2,	64,	18,	0x00c00000000000LL,
  3.1259+	2,	32,	18,	0x00c0000000c000LL,
  3.1260+	3,	64,	19,	0x00e00000000000LL,
  3.1261+	3,	32,	19,	0x00e0000000e000LL,
  3.1262+	4,	64,	20,	0x00f00000000000LL,
  3.1263+	4,	32,	20,	0x00f0000000f000LL,
  3.1264+	5,	64,	21,	0x00f80000000000LL,
  3.1265+	5,	32,	21,	0x00f8000000f800LL,
  3.1266+	6,	64,	22,	0x00fc0000000000LL,
  3.1267+	6,	32,	22,	0x00fc000000fc00LL,
  3.1268+	7,	64,	23,	0x00fe0000000000LL,
  3.1269+	7,	32,	23,	0x00fe000000fe00LL,
  3.1270+	8,	64,	24,	0x00ff0000000000LL,
  3.1271+	8,	32,	24,	0x00ff000000ff00LL,
  3.1272+	9,	64,	25,	0x00ff8000000000LL,
  3.1273+	9,	32,	25,	0x00ff800000ff80LL,
  3.1274+	10,	64,	26,	0x00ffc000000000LL,
  3.1275+	10,	32,	26,	0x00ffc00000ffc0LL,
  3.1276+	11,	64,	27,	0x00ffe000000000LL,
  3.1277+	11,	32,	27,	0x00ffe00000ffe0LL,
  3.1278+	12,	64,	28,	0x00fff000000000LL,
  3.1279+	12,	32,	28,	0x00fff00000fff0LL,
  3.1280+	13,	64,	29,	0x00fff800000000LL,
  3.1281+	13,	32,	29,	0x00fff80000fff8LL,
  3.1282+	14,	64,	30,	0x00fffc00000000LL,
  3.1283+	14,	32,	30,	0x00fffc0000fffcLL,
  3.1284+	15,	64,	31,	0x00fffe00000000LL,
  3.1285+	15,	32,	31,	0x00fffe0000fffeLL,
  3.1286+	16,	64,	32,	0x00ffff00000000LL,
  3.1287+	16,	32,	0,	0x00ffff0000ffffLL,
  3.1288+	17,	64,	33,	0x00ffff80000000LL,
  3.1289+	18,	64,	34,	0x00ffffc0000000LL,
  3.1290+	19,	64,	35,	0x00ffffe0000000LL,
  3.1291+	20,	64,	36,	0x00fffff0000000LL,
  3.1292+	21,	64,	37,	0x00fffff8000000LL,
  3.1293+	22,	64,	38,	0x00fffffc000000LL,
  3.1294+	23,	64,	39,	0x00fffffe000000LL,
  3.1295+	24,	64,	40,	0x00ffffff000000LL,
  3.1296+	25,	64,	41,	0x00ffffff800000LL,
  3.1297+	26,	64,	42,	0x00ffffffc00000LL,
  3.1298+	27,	64,	43,	0x00ffffffe00000LL,
  3.1299+	28,	64,	44,	0x00fffffff00000LL,
  3.1300+	29,	64,	45,	0x00fffffff80000LL,
  3.1301+	30,	64,	46,	0x00fffffffc0000LL,
  3.1302+	31,	64,	47,	0x00fffffffe0000LL,
  3.1303+	32,	64,	48,	0x00ffffffff0000LL,
  3.1304+	33,	64,	49,	0x00ffffffff8000LL,
  3.1305+	34,	64,	50,	0x00ffffffffc000LL,
  3.1306+	35,	64,	51,	0x00ffffffffe000LL,
  3.1307+	36,	64,	52,	0x00fffffffff000LL,
  3.1308+	37,	64,	53,	0x00fffffffff800LL,
  3.1309+	38,	64,	54,	0x00fffffffffc00LL,
  3.1310+	39,	64,	55,	0x00fffffffffe00LL,
  3.1311+	40,	64,	56,	0x00ffffffffff00LL,
  3.1312+	41,	64,	57,	0x00ffffffffff80LL,
  3.1313+	42,	64,	58,	0x00ffffffffffc0LL,
  3.1314+	43,	64,	59,	0x00ffffffffffe0LL,
  3.1315+	44,	64,	60,	0x00fffffffffff0LL,
  3.1316+	45,	64,	61,	0x00fffffffffff8LL,
  3.1317+	46,	64,	62,	0x00fffffffffffcLL,
  3.1318+	47,	64,	63,	0x00fffffffffffeLL,
  3.1319+	48,	64,	0,	0x00ffffffffffffLL,
  3.1320+	1,	64,	16,	0x01000000000000LL,
  3.1321+	1,	32,	16,	0x01000000010000LL,
  3.1322+	1,	16,	0,	0x01000100010001LL,
  3.1323+	2,	64,	17,	0x01800000000000LL,
  3.1324+	2,	32,	17,	0x01800000018000LL,
  3.1325+	3,	64,	18,	0x01c00000000000LL,
  3.1326+	3,	32,	18,	0x01c0000001c000LL,
  3.1327+	4,	64,	19,	0x01e00000000000LL,
  3.1328+	4,	32,	19,	0x01e0000001e000LL,
  3.1329+	5,	64,	20,	0x01f00000000000LL,
  3.1330+	5,	32,	20,	0x01f0000001f000LL,
  3.1331+	6,	64,	21,	0x01f80000000000LL,
  3.1332+	6,	32,	21,	0x01f8000001f800LL,
  3.1333+	7,	64,	22,	0x01fc0000000000LL,
  3.1334+	7,	32,	22,	0x01fc000001fc00LL,
  3.1335+	8,	64,	23,	0x01fe0000000000LL,
  3.1336+	8,	32,	23,	0x01fe000001fe00LL,
  3.1337+	9,	64,	24,	0x01ff0000000000LL,
  3.1338+	9,	32,	24,	0x01ff000001ff00LL,
  3.1339+	10,	64,	25,	0x01ff8000000000LL,
  3.1340+	10,	32,	25,	0x01ff800001ff80LL,
  3.1341+	11,	64,	26,	0x01ffc000000000LL,
  3.1342+	11,	32,	26,	0x01ffc00001ffc0LL,
  3.1343+	12,	64,	27,	0x01ffe000000000LL,
  3.1344+	12,	32,	27,	0x01ffe00001ffe0LL,
  3.1345+	13,	64,	28,	0x01fff000000000LL,
  3.1346+	13,	32,	28,	0x01fff00001fff0LL,
  3.1347+	14,	64,	29,	0x01fff800000000LL,
  3.1348+	14,	32,	29,	0x01fff80001fff8LL,
  3.1349+	15,	64,	30,	0x01fffc00000000LL,
  3.1350+	15,	32,	30,	0x01fffc0001fffcLL,
  3.1351+	16,	64,	31,	0x01fffe00000000LL,
  3.1352+	16,	32,	31,	0x01fffe0001fffeLL,
  3.1353+	17,	64,	32,	0x01ffff00000000LL,
  3.1354+	17,	32,	0,	0x01ffff0001ffffLL,
  3.1355+	18,	64,	33,	0x01ffff80000000LL,
  3.1356+	19,	64,	34,	0x01ffffc0000000LL,
  3.1357+	20,	64,	35,	0x01ffffe0000000LL,
  3.1358+	21,	64,	36,	0x01fffff0000000LL,
  3.1359+	22,	64,	37,	0x01fffff8000000LL,
  3.1360+	23,	64,	38,	0x01fffffc000000LL,
  3.1361+	24,	64,	39,	0x01fffffe000000LL,
  3.1362+	25,	64,	40,	0x01ffffff000000LL,
  3.1363+	26,	64,	41,	0x01ffffff800000LL,
  3.1364+	27,	64,	42,	0x01ffffffc00000LL,
  3.1365+	28,	64,	43,	0x01ffffffe00000LL,
  3.1366+	29,	64,	44,	0x01fffffff00000LL,
  3.1367+	30,	64,	45,	0x01fffffff80000LL,
  3.1368+	31,	64,	46,	0x01fffffffc0000LL,
  3.1369+	32,	64,	47,	0x01fffffffe0000LL,
  3.1370+	33,	64,	48,	0x01ffffffff0000LL,
  3.1371+	34,	64,	49,	0x01ffffffff8000LL,
  3.1372+	35,	64,	50,	0x01ffffffffc000LL,
  3.1373+	36,	64,	51,	0x01ffffffffe000LL,
  3.1374+	37,	64,	52,	0x01fffffffff000LL,
  3.1375+	38,	64,	53,	0x01fffffffff800LL,
  3.1376+	39,	64,	54,	0x01fffffffffc00LL,
  3.1377+	40,	64,	55,	0x01fffffffffe00LL,
  3.1378+	41,	64,	56,	0x01ffffffffff00LL,
  3.1379+	42,	64,	57,	0x01ffffffffff80LL,
  3.1380+	43,	64,	58,	0x01ffffffffffc0LL,
  3.1381+	44,	64,	59,	0x01ffffffffffe0LL,
  3.1382+	45,	64,	60,	0x01fffffffffff0LL,
  3.1383+	46,	64,	61,	0x01fffffffffff8LL,
  3.1384+	47,	64,	62,	0x01fffffffffffcLL,
  3.1385+	48,	64,	63,	0x01fffffffffffeLL,
  3.1386+	49,	64,	0,	0x01ffffffffffffLL,
  3.1387+	1,	64,	15,	0x02000000000000LL,
  3.1388+	1,	32,	15,	0x02000000020000LL,
  3.1389+	1,	16,	15,	0x02000200020002LL,
  3.1390+	2,	64,	16,	0x03000000000000LL,
  3.1391+	2,	32,	16,	0x03000000030000LL,
  3.1392+	2,	16,	0,	0x03000300030003LL,
  3.1393+	3,	64,	17,	0x03800000000000LL,
  3.1394+	3,	32,	17,	0x03800000038000LL,
  3.1395+	4,	64,	18,	0x03c00000000000LL,
  3.1396+	4,	32,	18,	0x03c0000003c000LL,
  3.1397+	5,	64,	19,	0x03e00000000000LL,
  3.1398+	5,	32,	19,	0x03e0000003e000LL,
  3.1399+	6,	64,	20,	0x03f00000000000LL,
  3.1400+	6,	32,	20,	0x03f0000003f000LL,
  3.1401+	7,	64,	21,	0x03f80000000000LL,
  3.1402+	7,	32,	21,	0x03f8000003f800LL,
  3.1403+	8,	64,	22,	0x03fc0000000000LL,
  3.1404+	8,	32,	22,	0x03fc000003fc00LL,
  3.1405+	9,	64,	23,	0x03fe0000000000LL,
  3.1406+	9,	32,	23,	0x03fe000003fe00LL,
  3.1407+	10,	64,	24,	0x03ff0000000000LL,
  3.1408+	10,	32,	24,	0x03ff000003ff00LL,
  3.1409+	11,	64,	25,	0x03ff8000000000LL,
  3.1410+	11,	32,	25,	0x03ff800003ff80LL,
  3.1411+	12,	64,	26,	0x03ffc000000000LL,
  3.1412+	12,	32,	26,	0x03ffc00003ffc0LL,
  3.1413+	13,	64,	27,	0x03ffe000000000LL,
  3.1414+	13,	32,	27,	0x03ffe00003ffe0LL,
  3.1415+	14,	64,	28,	0x03fff000000000LL,
  3.1416+	14,	32,	28,	0x03fff00003fff0LL,
  3.1417+	15,	64,	29,	0x03fff800000000LL,
  3.1418+	15,	32,	29,	0x03fff80003fff8LL,
  3.1419+	16,	64,	30,	0x03fffc00000000LL,
  3.1420+	16,	32,	30,	0x03fffc0003fffcLL,
  3.1421+	17,	64,	31,	0x03fffe00000000LL,
  3.1422+	17,	32,	31,	0x03fffe0003fffeLL,
  3.1423+	18,	64,	32,	0x03ffff00000000LL,
  3.1424+	18,	32,	0,	0x03ffff0003ffffLL,
  3.1425+	19,	64,	33,	0x03ffff80000000LL,
  3.1426+	20,	64,	34,	0x03ffffc0000000LL,
  3.1427+	21,	64,	35,	0x03ffffe0000000LL,
  3.1428+	22,	64,	36,	0x03fffff0000000LL,
  3.1429+	23,	64,	37,	0x03fffff8000000LL,
  3.1430+	24,	64,	38,	0x03fffffc000000LL,
  3.1431+	25,	64,	39,	0x03fffffe000000LL,
  3.1432+	26,	64,	40,	0x03ffffff000000LL,
  3.1433+	27,	64,	41,	0x03ffffff800000LL,
  3.1434+	28,	64,	42,	0x03ffffffc00000LL,
  3.1435+	29,	64,	43,	0x03ffffffe00000LL,
  3.1436+	30,	64,	44,	0x03fffffff00000LL,
  3.1437+	31,	64,	45,	0x03fffffff80000LL,
  3.1438+	32,	64,	46,	0x03fffffffc0000LL,
  3.1439+	33,	64,	47,	0x03fffffffe0000LL,
  3.1440+	34,	64,	48,	0x03ffffffff0000LL,
  3.1441+	35,	64,	49,	0x03ffffffff8000LL,
  3.1442+	36,	64,	50,	0x03ffffffffc000LL,
  3.1443+	37,	64,	51,	0x03ffffffffe000LL,
  3.1444+	38,	64,	52,	0x03fffffffff000LL,
  3.1445+	39,	64,	53,	0x03fffffffff800LL,
  3.1446+	40,	64,	54,	0x03fffffffffc00LL,
  3.1447+	41,	64,	55,	0x03fffffffffe00LL,
  3.1448+	42,	64,	56,	0x03ffffffffff00LL,
  3.1449+	43,	64,	57,	0x03ffffffffff80LL,
  3.1450+	44,	64,	58,	0x03ffffffffffc0LL,
  3.1451+	45,	64,	59,	0x03ffffffffffe0LL,
  3.1452+	46,	64,	60,	0x03fffffffffff0LL,
  3.1453+	47,	64,	61,	0x03fffffffffff8LL,
  3.1454+	48,	64,	62,	0x03fffffffffffcLL,
  3.1455+	49,	64,	63,	0x03fffffffffffeLL,
  3.1456+	50,	64,	0,	0x03ffffffffffffLL,
  3.1457+	1,	64,	14,	0x04000000000000LL,
  3.1458+	1,	32,	14,	0x04000000040000LL,
  3.1459+	1,	16,	14,	0x04000400040004LL,
  3.1460+	2,	64,	15,	0x06000000000000LL,
  3.1461+	2,	32,	15,	0x06000000060000LL,
  3.1462+	2,	16,	15,	0x06000600060006LL,
  3.1463+	3,	64,	16,	0x07000000000000LL,
  3.1464+	3,	32,	16,	0x07000000070000LL,
  3.1465+	3,	16,	0,	0x07000700070007LL,
  3.1466+	4,	64,	17,	0x07800000000000LL,
  3.1467+	4,	32,	17,	0x07800000078000LL,
  3.1468+	5,	64,	18,	0x07c00000000000LL,
  3.1469+	5,	32,	18,	0x07c0000007c000LL,
  3.1470+	6,	64,	19,	0x07e00000000000LL,
  3.1471+	6,	32,	19,	0x07e0000007e000LL,
  3.1472+	7,	64,	20,	0x07f00000000000LL,
  3.1473+	7,	32,	20,	0x07f0000007f000LL,
  3.1474+	8,	64,	21,	0x07f80000000000LL,
  3.1475+	8,	32,	21,	0x07f8000007f800LL,
  3.1476+	9,	64,	22,	0x07fc0000000000LL,
  3.1477+	9,	32,	22,	0x07fc000007fc00LL,
  3.1478+	10,	64,	23,	0x07fe0000000000LL,
  3.1479+	10,	32,	23,	0x07fe000007fe00LL,
  3.1480+	11,	64,	24,	0x07ff0000000000LL,
  3.1481+	11,	32,	24,	0x07ff000007ff00LL,
  3.1482+	12,	64,	25,	0x07ff8000000000LL,
  3.1483+	12,	32,	25,	0x07ff800007ff80LL,
  3.1484+	13,	64,	26,	0x07ffc000000000LL,
  3.1485+	13,	32,	26,	0x07ffc00007ffc0LL,
  3.1486+	14,	64,	27,	0x07ffe000000000LL,
  3.1487+	14,	32,	27,	0x07ffe00007ffe0LL,
  3.1488+	15,	64,	28,	0x07fff000000000LL,
  3.1489+	15,	32,	28,	0x07fff00007fff0LL,
  3.1490+	16,	64,	29,	0x07fff800000000LL,
  3.1491+	16,	32,	29,	0x07fff80007fff8LL,
  3.1492+	17,	64,	30,	0x07fffc00000000LL,
  3.1493+	17,	32,	30,	0x07fffc0007fffcLL,
  3.1494+	18,	64,	31,	0x07fffe00000000LL,
  3.1495+	18,	32,	31,	0x07fffe0007fffeLL,
  3.1496+	19,	64,	32,	0x07ffff00000000LL,
  3.1497+	19,	32,	0,	0x07ffff0007ffffLL,
  3.1498+	20,	64,	33,	0x07ffff80000000LL,
  3.1499+	21,	64,	34,	0x07ffffc0000000LL,
  3.1500+	22,	64,	35,	0x07ffffe0000000LL,
  3.1501+	23,	64,	36,	0x07fffff0000000LL,
  3.1502+	24,	64,	37,	0x07fffff8000000LL,
  3.1503+	25,	64,	38,	0x07fffffc000000LL,
  3.1504+	26,	64,	39,	0x07fffffe000000LL,
  3.1505+	27,	64,	40,	0x07ffffff000000LL,
  3.1506+	28,	64,	41,	0x07ffffff800000LL,
  3.1507+	29,	64,	42,	0x07ffffffc00000LL,
  3.1508+	30,	64,	43,	0x07ffffffe00000LL,
  3.1509+	31,	64,	44,	0x07fffffff00000LL,
  3.1510+	32,	64,	45,	0x07fffffff80000LL,
  3.1511+	33,	64,	46,	0x07fffffffc0000LL,
  3.1512+	34,	64,	47,	0x07fffffffe0000LL,
  3.1513+	35,	64,	48,	0x07ffffffff0000LL,
  3.1514+	36,	64,	49,	0x07ffffffff8000LL,
  3.1515+	37,	64,	50,	0x07ffffffffc000LL,
  3.1516+	38,	64,	51,	0x07ffffffffe000LL,
  3.1517+	39,	64,	52,	0x07fffffffff000LL,
  3.1518+	40,	64,	53,	0x07fffffffff800LL,
  3.1519+	41,	64,	54,	0x07fffffffffc00LL,
  3.1520+	42,	64,	55,	0x07fffffffffe00LL,
  3.1521+	43,	64,	56,	0x07ffffffffff00LL,
  3.1522+	44,	64,	57,	0x07ffffffffff80LL,
  3.1523+	45,	64,	58,	0x07ffffffffffc0LL,
  3.1524+	46,	64,	59,	0x07ffffffffffe0LL,
  3.1525+	47,	64,	60,	0x07fffffffffff0LL,
  3.1526+	48,	64,	61,	0x07fffffffffff8LL,
  3.1527+	49,	64,	62,	0x07fffffffffffcLL,
  3.1528+	50,	64,	63,	0x07fffffffffffeLL,
  3.1529+	51,	64,	0,	0x07ffffffffffffLL,
  3.1530+	1,	64,	13,	0x08000000000000LL,
  3.1531+	1,	32,	13,	0x08000000080000LL,
  3.1532+	1,	16,	13,	0x08000800080008LL,
  3.1533+	2,	64,	14,	0x0c000000000000LL,
  3.1534+	2,	32,	14,	0x0c0000000c0000LL,
  3.1535+	2,	16,	14,	0x0c000c000c000cLL,
  3.1536+	3,	64,	15,	0x0e000000000000LL,
  3.1537+	3,	32,	15,	0x0e0000000e0000LL,
  3.1538+	3,	16,	15,	0x0e000e000e000eLL,
  3.1539+	4,	64,	16,	0x0f000000000000LL,
  3.1540+	4,	32,	16,	0x0f0000000f0000LL,
  3.1541+	4,	16,	0,	0x0f000f000f000fLL,
  3.1542+	5,	64,	17,	0x0f800000000000LL,
  3.1543+	5,	32,	17,	0x0f8000000f8000LL,
  3.1544+	6,	64,	18,	0x0fc00000000000LL,
  3.1545+	6,	32,	18,	0x0fc000000fc000LL,
  3.1546+	7,	64,	19,	0x0fe00000000000LL,
  3.1547+	7,	32,	19,	0x0fe000000fe000LL,
  3.1548+	8,	64,	20,	0x0ff00000000000LL,
  3.1549+	8,	32,	20,	0x0ff000000ff000LL,
  3.1550+	9,	64,	21,	0x0ff80000000000LL,
  3.1551+	9,	32,	21,	0x0ff800000ff800LL,
  3.1552+	10,	64,	22,	0x0ffc0000000000LL,
  3.1553+	10,	32,	22,	0x0ffc00000ffc00LL,
  3.1554+	11,	64,	23,	0x0ffe0000000000LL,
  3.1555+	11,	32,	23,	0x0ffe00000ffe00LL,
  3.1556+	12,	64,	24,	0x0fff0000000000LL,
  3.1557+	12,	32,	24,	0x0fff00000fff00LL,
  3.1558+	13,	64,	25,	0x0fff8000000000LL,
  3.1559+	13,	32,	25,	0x0fff80000fff80LL,
  3.1560+	14,	64,	26,	0x0fffc000000000LL,
  3.1561+	14,	32,	26,	0x0fffc0000fffc0LL,
  3.1562+	15,	64,	27,	0x0fffe000000000LL,
  3.1563+	15,	32,	27,	0x0fffe0000fffe0LL,
  3.1564+	16,	64,	28,	0x0ffff000000000LL,
  3.1565+	16,	32,	28,	0x0ffff0000ffff0LL,
  3.1566+	17,	64,	29,	0x0ffff800000000LL,
  3.1567+	17,	32,	29,	0x0ffff8000ffff8LL,
  3.1568+	18,	64,	30,	0x0ffffc00000000LL,
  3.1569+	18,	32,	30,	0x0ffffc000ffffcLL,
  3.1570+	19,	64,	31,	0x0ffffe00000000LL,
  3.1571+	19,	32,	31,	0x0ffffe000ffffeLL,
  3.1572+	20,	64,	32,	0x0fffff00000000LL,
  3.1573+	20,	32,	0,	0x0fffff000fffffLL,
  3.1574+	21,	64,	33,	0x0fffff80000000LL,
  3.1575+	22,	64,	34,	0x0fffffc0000000LL,
  3.1576+	23,	64,	35,	0x0fffffe0000000LL,
  3.1577+	24,	64,	36,	0x0ffffff0000000LL,
  3.1578+	25,	64,	37,	0x0ffffff8000000LL,
  3.1579+	26,	64,	38,	0x0ffffffc000000LL,
  3.1580+	27,	64,	39,	0x0ffffffe000000LL,
  3.1581+	28,	64,	40,	0x0fffffff000000LL,
  3.1582+	29,	64,	41,	0x0fffffff800000LL,
  3.1583+	30,	64,	42,	0x0fffffffc00000LL,
  3.1584+	31,	64,	43,	0x0fffffffe00000LL,
  3.1585+	32,	64,	44,	0x0ffffffff00000LL,
  3.1586+	33,	64,	45,	0x0ffffffff80000LL,
  3.1587+	34,	64,	46,	0x0ffffffffc0000LL,
  3.1588+	35,	64,	47,	0x0ffffffffe0000LL,
  3.1589+	36,	64,	48,	0x0fffffffff0000LL,
  3.1590+	37,	64,	49,	0x0fffffffff8000LL,
  3.1591+	38,	64,	50,	0x0fffffffffc000LL,
  3.1592+	39,	64,	51,	0x0fffffffffe000LL,
  3.1593+	40,	64,	52,	0x0ffffffffff000LL,
  3.1594+	41,	64,	53,	0x0ffffffffff800LL,
  3.1595+	42,	64,	54,	0x0ffffffffffc00LL,
  3.1596+	43,	64,	55,	0x0ffffffffffe00LL,
  3.1597+	44,	64,	56,	0x0fffffffffff00LL,
  3.1598+	45,	64,	57,	0x0fffffffffff80LL,
  3.1599+	46,	64,	58,	0x0fffffffffffc0LL,
  3.1600+	47,	64,	59,	0x0fffffffffffe0LL,
  3.1601+	48,	64,	60,	0x0ffffffffffff0LL,
  3.1602+	49,	64,	61,	0x0ffffffffffff8LL,
  3.1603+	50,	64,	62,	0x0ffffffffffffcLL,
  3.1604+	51,	64,	63,	0x0ffffffffffffeLL,
  3.1605+	52,	64,	0,	0x0fffffffffffffLL,
  3.1606+	1,	64,	12,	0x10000000000000LL,
  3.1607+	1,	32,	12,	0x10000000100000LL,
  3.1608+	1,	16,	12,	0x10001000100010LL,
  3.1609+	2,	64,	13,	0x18000000000000LL,
  3.1610+	2,	32,	13,	0x18000000180000LL,
  3.1611+	2,	16,	13,	0x18001800180018LL,
  3.1612+	3,	64,	14,	0x1c000000000000LL,
  3.1613+	3,	32,	14,	0x1c0000001c0000LL,
  3.1614+	3,	16,	14,	0x1c001c001c001cLL,
  3.1615+	4,	64,	15,	0x1e000000000000LL,
  3.1616+	4,	32,	15,	0x1e0000001e0000LL,
  3.1617+	4,	16,	15,	0x1e001e001e001eLL,
  3.1618+	5,	64,	16,	0x1f000000000000LL,
  3.1619+	5,	32,	16,	0x1f0000001f0000LL,
  3.1620+	5,	16,	0,	0x1f001f001f001fLL,
  3.1621+	6,	64,	17,	0x1f800000000000LL,
  3.1622+	6,	32,	17,	0x1f8000001f8000LL,
  3.1623+	7,	64,	18,	0x1fc00000000000LL,
  3.1624+	7,	32,	18,	0x1fc000001fc000LL,
  3.1625+	8,	64,	19,	0x1fe00000000000LL,
  3.1626+	8,	32,	19,	0x1fe000001fe000LL,
  3.1627+	9,	64,	20,	0x1ff00000000000LL,
  3.1628+	9,	32,	20,	0x1ff000001ff000LL,
  3.1629+	10,	64,	21,	0x1ff80000000000LL,
  3.1630+	10,	32,	21,	0x1ff800001ff800LL,
  3.1631+	11,	64,	22,	0x1ffc0000000000LL,
  3.1632+	11,	32,	22,	0x1ffc00001ffc00LL,
  3.1633+	12,	64,	23,	0x1ffe0000000000LL,
  3.1634+	12,	32,	23,	0x1ffe00001ffe00LL,
  3.1635+	13,	64,	24,	0x1fff0000000000LL,
  3.1636+	13,	32,	24,	0x1fff00001fff00LL,
  3.1637+	14,	64,	25,	0x1fff8000000000LL,
  3.1638+	14,	32,	25,	0x1fff80001fff80LL,
  3.1639+	15,	64,	26,	0x1fffc000000000LL,
  3.1640+	15,	32,	26,	0x1fffc0001fffc0LL,
  3.1641+	16,	64,	27,	0x1fffe000000000LL,
  3.1642+	16,	32,	27,	0x1fffe0001fffe0LL,
  3.1643+	17,	64,	28,	0x1ffff000000000LL,
  3.1644+	17,	32,	28,	0x1ffff0001ffff0LL,
  3.1645+	18,	64,	29,	0x1ffff800000000LL,
  3.1646+	18,	32,	29,	0x1ffff8001ffff8LL,
  3.1647+	19,	64,	30,	0x1ffffc00000000LL,
  3.1648+	19,	32,	30,	0x1ffffc001ffffcLL,
  3.1649+	20,	64,	31,	0x1ffffe00000000LL,
  3.1650+	20,	32,	31,	0x1ffffe001ffffeLL,
  3.1651+	21,	64,	32,	0x1fffff00000000LL,
  3.1652+	21,	32,	0,	0x1fffff001fffffLL,
  3.1653+	22,	64,	33,	0x1fffff80000000LL,
  3.1654+	23,	64,	34,	0x1fffffc0000000LL,
  3.1655+	24,	64,	35,	0x1fffffe0000000LL,
  3.1656+	25,	64,	36,	0x1ffffff0000000LL,
  3.1657+	26,	64,	37,	0x1ffffff8000000LL,
  3.1658+	27,	64,	38,	0x1ffffffc000000LL,
  3.1659+	28,	64,	39,	0x1ffffffe000000LL,
  3.1660+	29,	64,	40,	0x1fffffff000000LL,
  3.1661+	30,	64,	41,	0x1fffffff800000LL,
  3.1662+	31,	64,	42,	0x1fffffffc00000LL,
  3.1663+	32,	64,	43,	0x1fffffffe00000LL,
  3.1664+	33,	64,	44,	0x1ffffffff00000LL,
  3.1665+	34,	64,	45,	0x1ffffffff80000LL,
  3.1666+	35,	64,	46,	0x1ffffffffc0000LL,
  3.1667+	36,	64,	47,	0x1ffffffffe0000LL,
  3.1668+	37,	64,	48,	0x1fffffffff0000LL,
  3.1669+	38,	64,	49,	0x1fffffffff8000LL,
  3.1670+	39,	64,	50,	0x1fffffffffc000LL,
  3.1671+	40,	64,	51,	0x1fffffffffe000LL,
  3.1672+	41,	64,	52,	0x1ffffffffff000LL,
  3.1673+	42,	64,	53,	0x1ffffffffff800LL,
  3.1674+	43,	64,	54,	0x1ffffffffffc00LL,
  3.1675+	44,	64,	55,	0x1ffffffffffe00LL,
  3.1676+	45,	64,	56,	0x1fffffffffff00LL,
  3.1677+	46,	64,	57,	0x1fffffffffff80LL,
  3.1678+	47,	64,	58,	0x1fffffffffffc0LL,
  3.1679+	48,	64,	59,	0x1fffffffffffe0LL,
  3.1680+	49,	64,	60,	0x1ffffffffffff0LL,
  3.1681+	50,	64,	61,	0x1ffffffffffff8LL,
  3.1682+	51,	64,	62,	0x1ffffffffffffcLL,
  3.1683+	52,	64,	63,	0x1ffffffffffffeLL,
  3.1684+	53,	64,	0,	0x1fffffffffffffLL,
  3.1685+	1,	64,	11,	0x20000000000000LL,
  3.1686+	1,	32,	11,	0x20000000200000LL,
  3.1687+	1,	16,	11,	0x20002000200020LL,
  3.1688+	2,	64,	12,	0x30000000000000LL,
  3.1689+	2,	32,	12,	0x30000000300000LL,
  3.1690+	2,	16,	12,	0x30003000300030LL,
  3.1691+	3,	64,	13,	0x38000000000000LL,
  3.1692+	3,	32,	13,	0x38000000380000LL,
  3.1693+	3,	16,	13,	0x38003800380038LL,
  3.1694+	4,	64,	14,	0x3c000000000000LL,
  3.1695+	4,	32,	14,	0x3c0000003c0000LL,
  3.1696+	4,	16,	14,	0x3c003c003c003cLL,
  3.1697+	5,	64,	15,	0x3e000000000000LL,
  3.1698+	5,	32,	15,	0x3e0000003e0000LL,
  3.1699+	5,	16,	15,	0x3e003e003e003eLL,
  3.1700+	6,	64,	16,	0x3f000000000000LL,
  3.1701+	6,	32,	16,	0x3f0000003f0000LL,
  3.1702+	6,	16,	0,	0x3f003f003f003fLL,
  3.1703+	7,	64,	17,	0x3f800000000000LL,
  3.1704+	7,	32,	17,	0x3f8000003f8000LL,
  3.1705+	8,	64,	18,	0x3fc00000000000LL,
  3.1706+	8,	32,	18,	0x3fc000003fc000LL,
  3.1707+	9,	64,	19,	0x3fe00000000000LL,
  3.1708+	9,	32,	19,	0x3fe000003fe000LL,
  3.1709+	10,	64,	20,	0x3ff00000000000LL,
  3.1710+	10,	32,	20,	0x3ff000003ff000LL,
  3.1711+	11,	64,	21,	0x3ff80000000000LL,
  3.1712+	11,	32,	21,	0x3ff800003ff800LL,
  3.1713+	12,	64,	22,	0x3ffc0000000000LL,
  3.1714+	12,	32,	22,	0x3ffc00003ffc00LL,
  3.1715+	13,	64,	23,	0x3ffe0000000000LL,
  3.1716+	13,	32,	23,	0x3ffe00003ffe00LL,
  3.1717+	14,	64,	24,	0x3fff0000000000LL,
  3.1718+	14,	32,	24,	0x3fff00003fff00LL,
  3.1719+	15,	64,	25,	0x3fff8000000000LL,
  3.1720+	15,	32,	25,	0x3fff80003fff80LL,
  3.1721+	16,	64,	26,	0x3fffc000000000LL,
  3.1722+	16,	32,	26,	0x3fffc0003fffc0LL,
  3.1723+	17,	64,	27,	0x3fffe000000000LL,
  3.1724+	17,	32,	27,	0x3fffe0003fffe0LL,
  3.1725+	18,	64,	28,	0x3ffff000000000LL,
  3.1726+	18,	32,	28,	0x3ffff0003ffff0LL,
  3.1727+	19,	64,	29,	0x3ffff800000000LL,
  3.1728+	19,	32,	29,	0x3ffff8003ffff8LL,
  3.1729+	20,	64,	30,	0x3ffffc00000000LL,
  3.1730+	20,	32,	30,	0x3ffffc003ffffcLL,
  3.1731+	21,	64,	31,	0x3ffffe00000000LL,
  3.1732+	21,	32,	31,	0x3ffffe003ffffeLL,
  3.1733+	22,	64,	32,	0x3fffff00000000LL,
  3.1734+	22,	32,	0,	0x3fffff003fffffLL,
  3.1735+	23,	64,	33,	0x3fffff80000000LL,
  3.1736+	24,	64,	34,	0x3fffffc0000000LL,
  3.1737+	25,	64,	35,	0x3fffffe0000000LL,
  3.1738+	26,	64,	36,	0x3ffffff0000000LL,
  3.1739+	27,	64,	37,	0x3ffffff8000000LL,
  3.1740+	28,	64,	38,	0x3ffffffc000000LL,
  3.1741+	29,	64,	39,	0x3ffffffe000000LL,
  3.1742+	30,	64,	40,	0x3fffffff000000LL,
  3.1743+	31,	64,	41,	0x3fffffff800000LL,
  3.1744+	32,	64,	42,	0x3fffffffc00000LL,
  3.1745+	33,	64,	43,	0x3fffffffe00000LL,
  3.1746+	34,	64,	44,	0x3ffffffff00000LL,
  3.1747+	35,	64,	45,	0x3ffffffff80000LL,
  3.1748+	36,	64,	46,	0x3ffffffffc0000LL,
  3.1749+	37,	64,	47,	0x3ffffffffe0000LL,
  3.1750+	38,	64,	48,	0x3fffffffff0000LL,
  3.1751+	39,	64,	49,	0x3fffffffff8000LL,
  3.1752+	40,	64,	50,	0x3fffffffffc000LL,
  3.1753+	41,	64,	51,	0x3fffffffffe000LL,
  3.1754+	42,	64,	52,	0x3ffffffffff000LL,
  3.1755+	43,	64,	53,	0x3ffffffffff800LL,
  3.1756+	44,	64,	54,	0x3ffffffffffc00LL,
  3.1757+	45,	64,	55,	0x3ffffffffffe00LL,
  3.1758+	46,	64,	56,	0x3fffffffffff00LL,
  3.1759+	47,	64,	57,	0x3fffffffffff80LL,
  3.1760+	48,	64,	58,	0x3fffffffffffc0LL,
  3.1761+	49,	64,	59,	0x3fffffffffffe0LL,
  3.1762+	50,	64,	60,	0x3ffffffffffff0LL,
  3.1763+	51,	64,	61,	0x3ffffffffffff8LL,
  3.1764+	52,	64,	62,	0x3ffffffffffffcLL,
  3.1765+	53,	64,	63,	0x3ffffffffffffeLL,
  3.1766+	54,	64,	0,	0x3fffffffffffffLL,
  3.1767+	1,	64,	10,	0x40000000000000LL,
  3.1768+	1,	32,	10,	0x40000000400000LL,
  3.1769+	1,	16,	10,	0x40004000400040LL,
  3.1770+	2,	64,	11,	0x60000000000000LL,
  3.1771+	2,	32,	11,	0x60000000600000LL,
  3.1772+	2,	16,	11,	0x60006000600060LL,
  3.1773+	3,	64,	12,	0x70000000000000LL,
  3.1774+	3,	32,	12,	0x70000000700000LL,
  3.1775+	3,	16,	12,	0x70007000700070LL,
  3.1776+	4,	64,	13,	0x78000000000000LL,
  3.1777+	4,	32,	13,	0x78000000780000LL,
  3.1778+	4,	16,	13,	0x78007800780078LL,
  3.1779+	5,	64,	14,	0x7c000000000000LL,
  3.1780+	5,	32,	14,	0x7c0000007c0000LL,
  3.1781+	5,	16,	14,	0x7c007c007c007cLL,
  3.1782+	6,	64,	15,	0x7e000000000000LL,
  3.1783+	6,	32,	15,	0x7e0000007e0000LL,
  3.1784+	6,	16,	15,	0x7e007e007e007eLL,
  3.1785+	7,	64,	16,	0x7f000000000000LL,
  3.1786+	7,	32,	16,	0x7f0000007f0000LL,
  3.1787+	7,	16,	0,	0x7f007f007f007fLL,
  3.1788+	8,	64,	17,	0x7f800000000000LL,
  3.1789+	8,	32,	17,	0x7f8000007f8000LL,
  3.1790+	9,	64,	18,	0x7fc00000000000LL,
  3.1791+	9,	32,	18,	0x7fc000007fc000LL,
  3.1792+	10,	64,	19,	0x7fe00000000000LL,
  3.1793+	10,	32,	19,	0x7fe000007fe000LL,
  3.1794+	11,	64,	20,	0x7ff00000000000LL,
  3.1795+	11,	32,	20,	0x7ff000007ff000LL,
  3.1796+	12,	64,	21,	0x7ff80000000000LL,
  3.1797+	12,	32,	21,	0x7ff800007ff800LL,
  3.1798+	13,	64,	22,	0x7ffc0000000000LL,
  3.1799+	13,	32,	22,	0x7ffc00007ffc00LL,
  3.1800+	14,	64,	23,	0x7ffe0000000000LL,
  3.1801+	14,	32,	23,	0x7ffe00007ffe00LL,
  3.1802+	15,	64,	24,	0x7fff0000000000LL,
  3.1803+	15,	32,	24,	0x7fff00007fff00LL,
  3.1804+	16,	64,	25,	0x7fff8000000000LL,
  3.1805+	16,	32,	25,	0x7fff80007fff80LL,
  3.1806+	17,	64,	26,	0x7fffc000000000LL,
  3.1807+	17,	32,	26,	0x7fffc0007fffc0LL,
  3.1808+	18,	64,	27,	0x7fffe000000000LL,
  3.1809+	18,	32,	27,	0x7fffe0007fffe0LL,
  3.1810+	19,	64,	28,	0x7ffff000000000LL,
  3.1811+	19,	32,	28,	0x7ffff0007ffff0LL,
  3.1812+	20,	64,	29,	0x7ffff800000000LL,
  3.1813+	20,	32,	29,	0x7ffff8007ffff8LL,
  3.1814+	21,	64,	30,	0x7ffffc00000000LL,
  3.1815+	21,	32,	30,	0x7ffffc007ffffcLL,
  3.1816+	22,	64,	31,	0x7ffffe00000000LL,
  3.1817+	22,	32,	31,	0x7ffffe007ffffeLL,
  3.1818+	23,	64,	32,	0x7fffff00000000LL,
  3.1819+	23,	32,	0,	0x7fffff007fffffLL,
  3.1820+	24,	64,	33,	0x7fffff80000000LL,
  3.1821+	25,	64,	34,	0x7fffffc0000000LL,
  3.1822+	26,	64,	35,	0x7fffffe0000000LL,
  3.1823+	27,	64,	36,	0x7ffffff0000000LL,
  3.1824+	28,	64,	37,	0x7ffffff8000000LL,
  3.1825+	29,	64,	38,	0x7ffffffc000000LL,
  3.1826+	30,	64,	39,	0x7ffffffe000000LL,
  3.1827+	31,	64,	40,	0x7fffffff000000LL,
  3.1828+	32,	64,	41,	0x7fffffff800000LL,
  3.1829+	33,	64,	42,	0x7fffffffc00000LL,
  3.1830+	34,	64,	43,	0x7fffffffe00000LL,
  3.1831+	35,	64,	44,	0x7ffffffff00000LL,
  3.1832+	36,	64,	45,	0x7ffffffff80000LL,
  3.1833+	37,	64,	46,	0x7ffffffffc0000LL,
  3.1834+	38,	64,	47,	0x7ffffffffe0000LL,
  3.1835+	39,	64,	48,	0x7fffffffff0000LL,
  3.1836+	40,	64,	49,	0x7fffffffff8000LL,
  3.1837+	41,	64,	50,	0x7fffffffffc000LL,
  3.1838+	42,	64,	51,	0x7fffffffffe000LL,
  3.1839+	43,	64,	52,	0x7ffffffffff000LL,
  3.1840+	44,	64,	53,	0x7ffffffffff800LL,
  3.1841+	45,	64,	54,	0x7ffffffffffc00LL,
  3.1842+	46,	64,	55,	0x7ffffffffffe00LL,
  3.1843+	47,	64,	56,	0x7fffffffffff00LL,
  3.1844+	48,	64,	57,	0x7fffffffffff80LL,
  3.1845+	49,	64,	58,	0x7fffffffffffc0LL,
  3.1846+	50,	64,	59,	0x7fffffffffffe0LL,
  3.1847+	51,	64,	60,	0x7ffffffffffff0LL,
  3.1848+	52,	64,	61,	0x7ffffffffffff8LL,
  3.1849+	53,	64,	62,	0x7ffffffffffffcLL,
  3.1850+	54,	64,	63,	0x7ffffffffffffeLL,
  3.1851+	55,	64,	0,	0x7fffffffffffffLL,
  3.1852+	1,	64,	9,	0x80000000000000LL,
  3.1853+	1,	32,	9,	0x80000000800000LL,
  3.1854+	1,	16,	9,	0x80008000800080LL,
  3.1855+	2,	64,	10,	0xc0000000000000LL,
  3.1856+	2,	32,	10,	0xc0000000c00000LL,
  3.1857+	2,	16,	10,	0xc000c000c000c0LL,
  3.1858+	3,	64,	11,	0xe0000000000000LL,
  3.1859+	3,	32,	11,	0xe0000000e00000LL,
  3.1860+	3,	16,	11,	0xe000e000e000e0LL,
  3.1861+	4,	64,	12,	0xf0000000000000LL,
  3.1862+	4,	32,	12,	0xf0000000f00000LL,
  3.1863+	4,	16,	12,	0xf000f000f000f0LL,
  3.1864+	5,	64,	13,	0xf8000000000000LL,
  3.1865+	5,	32,	13,	0xf8000000f80000LL,
  3.1866+	5,	16,	13,	0xf800f800f800f8LL,
  3.1867+	6,	64,	14,	0xfc000000000000LL,
  3.1868+	6,	32,	14,	0xfc000000fc0000LL,
  3.1869+	6,	16,	14,	0xfc00fc00fc00fcLL,
  3.1870+	7,	64,	15,	0xfe000000000000LL,
  3.1871+	7,	32,	15,	0xfe000000fe0000LL,
  3.1872+	7,	16,	15,	0xfe00fe00fe00feLL,
  3.1873+	8,	64,	16,	0xff000000000000LL,
  3.1874+	8,	32,	16,	0xff000000ff0000LL,
  3.1875+	8,	16,	0,	0xff00ff00ff00ffLL,
  3.1876+	9,	64,	17,	0xff800000000000LL,
  3.1877+	9,	32,	17,	0xff800000ff8000LL,
  3.1878+	10,	64,	18,	0xffc00000000000LL,
  3.1879+	10,	32,	18,	0xffc00000ffc000LL,
  3.1880+	11,	64,	19,	0xffe00000000000LL,
  3.1881+	11,	32,	19,	0xffe00000ffe000LL,
  3.1882+	12,	64,	20,	0xfff00000000000LL,
  3.1883+	12,	32,	20,	0xfff00000fff000LL,
  3.1884+	13,	64,	21,	0xfff80000000000LL,
  3.1885+	13,	32,	21,	0xfff80000fff800LL,
  3.1886+	14,	64,	22,	0xfffc0000000000LL,
  3.1887+	14,	32,	22,	0xfffc0000fffc00LL,
  3.1888+	15,	64,	23,	0xfffe0000000000LL,
  3.1889+	15,	32,	23,	0xfffe0000fffe00LL,
  3.1890+	16,	64,	24,	0xffff0000000000LL,
  3.1891+	16,	32,	24,	0xffff0000ffff00LL,
  3.1892+	17,	64,	25,	0xffff8000000000LL,
  3.1893+	17,	32,	25,	0xffff8000ffff80LL,
  3.1894+	18,	64,	26,	0xffffc000000000LL,
  3.1895+	18,	32,	26,	0xffffc000ffffc0LL,
  3.1896+	19,	64,	27,	0xffffe000000000LL,
  3.1897+	19,	32,	27,	0xffffe000ffffe0LL,
  3.1898+	20,	64,	28,	0xfffff000000000LL,
  3.1899+	20,	32,	28,	0xfffff000fffff0LL,
  3.1900+	21,	64,	29,	0xfffff800000000LL,
  3.1901+	21,	32,	29,	0xfffff800fffff8LL,
  3.1902+	22,	64,	30,	0xfffffc00000000LL,
  3.1903+	22,	32,	30,	0xfffffc00fffffcLL,
  3.1904+	23,	64,	31,	0xfffffe00000000LL,
  3.1905+	23,	32,	31,	0xfffffe00fffffeLL,
  3.1906+	24,	64,	32,	0xffffff00000000LL,
  3.1907+	24,	32,	0,	0xffffff00ffffffLL,
  3.1908+	25,	64,	33,	0xffffff80000000LL,
  3.1909+	26,	64,	34,	0xffffffc0000000LL,
  3.1910+	27,	64,	35,	0xffffffe0000000LL,
  3.1911+	28,	64,	36,	0xfffffff0000000LL,
  3.1912+	29,	64,	37,	0xfffffff8000000LL,
  3.1913+	30,	64,	38,	0xfffffffc000000LL,
  3.1914+	31,	64,	39,	0xfffffffe000000LL,
  3.1915+	32,	64,	40,	0xffffffff000000LL,
  3.1916+	33,	64,	41,	0xffffffff800000LL,
  3.1917+	34,	64,	42,	0xffffffffc00000LL,
  3.1918+	35,	64,	43,	0xffffffffe00000LL,
  3.1919+	36,	64,	44,	0xfffffffff00000LL,
  3.1920+	37,	64,	45,	0xfffffffff80000LL,
  3.1921+	38,	64,	46,	0xfffffffffc0000LL,
  3.1922+	39,	64,	47,	0xfffffffffe0000LL,
  3.1923+	40,	64,	48,	0xffffffffff0000LL,
  3.1924+	41,	64,	49,	0xffffffffff8000LL,
  3.1925+	42,	64,	50,	0xffffffffffc000LL,
  3.1926+	43,	64,	51,	0xffffffffffe000LL,
  3.1927+	44,	64,	52,	0xfffffffffff000LL,
  3.1928+	45,	64,	53,	0xfffffffffff800LL,
  3.1929+	46,	64,	54,	0xfffffffffffc00LL,
  3.1930+	47,	64,	55,	0xfffffffffffe00LL,
  3.1931+	48,	64,	56,	0xffffffffffff00LL,
  3.1932+	49,	64,	57,	0xffffffffffff80LL,
  3.1933+	50,	64,	58,	0xffffffffffffc0LL,
  3.1934+	51,	64,	59,	0xffffffffffffe0LL,
  3.1935+	52,	64,	60,	0xfffffffffffff0LL,
  3.1936+	53,	64,	61,	0xfffffffffffff8LL,
  3.1937+	54,	64,	62,	0xfffffffffffffcLL,
  3.1938+	55,	64,	63,	0xfffffffffffffeLL,
  3.1939+	56,	64,	0,	0xffffffffffffffLL,
  3.1940+	1,	64,	8,	0x100000000000000LL,
  3.1941+	1,	32,	8,	0x100000001000000LL,
  3.1942+	1,	16,	8,	0x100010001000100LL,
  3.1943+	1,	8,	0,	0x101010101010101LL,
  3.1944+	2,	64,	9,	0x180000000000000LL,
  3.1945+	2,	32,	9,	0x180000001800000LL,
  3.1946+	2,	16,	9,	0x180018001800180LL,
  3.1947+	3,	64,	10,	0x1c0000000000000LL,
  3.1948+	3,	32,	10,	0x1c0000001c00000LL,
  3.1949+	3,	16,	10,	0x1c001c001c001c0LL,
  3.1950+	4,	64,	11,	0x1e0000000000000LL,
  3.1951+	4,	32,	11,	0x1e0000001e00000LL,
  3.1952+	4,	16,	11,	0x1e001e001e001e0LL,
  3.1953+	5,	64,	12,	0x1f0000000000000LL,
  3.1954+	5,	32,	12,	0x1f0000001f00000LL,
  3.1955+	5,	16,	12,	0x1f001f001f001f0LL,
  3.1956+	6,	64,	13,	0x1f8000000000000LL,
  3.1957+	6,	32,	13,	0x1f8000001f80000LL,
  3.1958+	6,	16,	13,	0x1f801f801f801f8LL,
  3.1959+	7,	64,	14,	0x1fc000000000000LL,
  3.1960+	7,	32,	14,	0x1fc000001fc0000LL,
  3.1961+	7,	16,	14,	0x1fc01fc01fc01fcLL,
  3.1962+	8,	64,	15,	0x1fe000000000000LL,
  3.1963+	8,	32,	15,	0x1fe000001fe0000LL,
  3.1964+	8,	16,	15,	0x1fe01fe01fe01feLL,
  3.1965+	9,	64,	16,	0x1ff000000000000LL,
  3.1966+	9,	32,	16,	0x1ff000001ff0000LL,
  3.1967+	9,	16,	0,	0x1ff01ff01ff01ffLL,
  3.1968+	10,	64,	17,	0x1ff800000000000LL,
  3.1969+	10,	32,	17,	0x1ff800001ff8000LL,
  3.1970+	11,	64,	18,	0x1ffc00000000000LL,
  3.1971+	11,	32,	18,	0x1ffc00001ffc000LL,
  3.1972+	12,	64,	19,	0x1ffe00000000000LL,
  3.1973+	12,	32,	19,	0x1ffe00001ffe000LL,
  3.1974+	13,	64,	20,	0x1fff00000000000LL,
  3.1975+	13,	32,	20,	0x1fff00001fff000LL,
  3.1976+	14,	64,	21,	0x1fff80000000000LL,
  3.1977+	14,	32,	21,	0x1fff80001fff800LL,
  3.1978+	15,	64,	22,	0x1fffc0000000000LL,
  3.1979+	15,	32,	22,	0x1fffc0001fffc00LL,
  3.1980+	16,	64,	23,	0x1fffe0000000000LL,
  3.1981+	16,	32,	23,	0x1fffe0001fffe00LL,
  3.1982+	17,	64,	24,	0x1ffff0000000000LL,
  3.1983+	17,	32,	24,	0x1ffff0001ffff00LL,
  3.1984+	18,	64,	25,	0x1ffff8000000000LL,
  3.1985+	18,	32,	25,	0x1ffff8001ffff80LL,
  3.1986+	19,	64,	26,	0x1ffffc000000000LL,
  3.1987+	19,	32,	26,	0x1ffffc001ffffc0LL,
  3.1988+	20,	64,	27,	0x1ffffe000000000LL,
  3.1989+	20,	32,	27,	0x1ffffe001ffffe0LL,
  3.1990+	21,	64,	28,	0x1fffff000000000LL,
  3.1991+	21,	32,	28,	0x1fffff001fffff0LL,
  3.1992+	22,	64,	29,	0x1fffff800000000LL,
  3.1993+	22,	32,	29,	0x1fffff801fffff8LL,
  3.1994+	23,	64,	30,	0x1fffffc00000000LL,
  3.1995+	23,	32,	30,	0x1fffffc01fffffcLL,
  3.1996+	24,	64,	31,	0x1fffffe00000000LL,
  3.1997+	24,	32,	31,	0x1fffffe01fffffeLL,
  3.1998+	25,	64,	32,	0x1ffffff00000000LL,
  3.1999+	25,	32,	0,	0x1ffffff01ffffffLL,
  3.2000+	26,	64,	33,	0x1ffffff80000000LL,
  3.2001+	27,	64,	34,	0x1ffffffc0000000LL,
  3.2002+	28,	64,	35,	0x1ffffffe0000000LL,
  3.2003+	29,	64,	36,	0x1fffffff0000000LL,
  3.2004+	30,	64,	37,	0x1fffffff8000000LL,
  3.2005+	31,	64,	38,	0x1fffffffc000000LL,
  3.2006+	32,	64,	39,	0x1fffffffe000000LL,
  3.2007+	33,	64,	40,	0x1ffffffff000000LL,
  3.2008+	34,	64,	41,	0x1ffffffff800000LL,
  3.2009+	35,	64,	42,	0x1ffffffffc00000LL,
  3.2010+	36,	64,	43,	0x1ffffffffe00000LL,
  3.2011+	37,	64,	44,	0x1fffffffff00000LL,
  3.2012+	38,	64,	45,	0x1fffffffff80000LL,
  3.2013+	39,	64,	46,	0x1fffffffffc0000LL,
  3.2014+	40,	64,	47,	0x1fffffffffe0000LL,
  3.2015+	41,	64,	48,	0x1ffffffffff0000LL,
  3.2016+	42,	64,	49,	0x1ffffffffff8000LL,
  3.2017+	43,	64,	50,	0x1ffffffffffc000LL,
  3.2018+	44,	64,	51,	0x1ffffffffffe000LL,
  3.2019+	45,	64,	52,	0x1fffffffffff000LL,
  3.2020+	46,	64,	53,	0x1fffffffffff800LL,
  3.2021+	47,	64,	54,	0x1fffffffffffc00LL,
  3.2022+	48,	64,	55,	0x1fffffffffffe00LL,
  3.2023+	49,	64,	56,	0x1ffffffffffff00LL,
  3.2024+	50,	64,	57,	0x1ffffffffffff80LL,
  3.2025+	51,	64,	58,	0x1ffffffffffffc0LL,
  3.2026+	52,	64,	59,	0x1ffffffffffffe0LL,
  3.2027+	53,	64,	60,	0x1fffffffffffff0LL,
  3.2028+	54,	64,	61,	0x1fffffffffffff8LL,
  3.2029+	55,	64,	62,	0x1fffffffffffffcLL,
  3.2030+	56,	64,	63,	0x1fffffffffffffeLL,
  3.2031+	57,	64,	0,	0x1ffffffffffffffLL,
  3.2032+	1,	64,	7,	0x200000000000000LL,
  3.2033+	1,	32,	7,	0x200000002000000LL,
  3.2034+	1,	16,	7,	0x200020002000200LL,
  3.2035+	1,	8,	7,	0x202020202020202LL,
  3.2036+	2,	64,	8,	0x300000000000000LL,
  3.2037+	2,	32,	8,	0x300000003000000LL,
  3.2038+	2,	16,	8,	0x300030003000300LL,
  3.2039+	2,	8,	0,	0x303030303030303LL,
  3.2040+	3,	64,	9,	0x380000000000000LL,
  3.2041+	3,	32,	9,	0x380000003800000LL,
  3.2042+	3,	16,	9,	0x380038003800380LL,
  3.2043+	4,	64,	10,	0x3c0000000000000LL,
  3.2044+	4,	32,	10,	0x3c0000003c00000LL,
  3.2045+	4,	16,	10,	0x3c003c003c003c0LL,
  3.2046+	5,	64,	11,	0x3e0000000000000LL,
  3.2047+	5,	32,	11,	0x3e0000003e00000LL,
  3.2048+	5,	16,	11,	0x3e003e003e003e0LL,
  3.2049+	6,	64,	12,	0x3f0000000000000LL,
  3.2050+	6,	32,	12,	0x3f0000003f00000LL,
  3.2051+	6,	16,	12,	0x3f003f003f003f0LL,
  3.2052+	7,	64,	13,	0x3f8000000000000LL,
  3.2053+	7,	32,	13,	0x3f8000003f80000LL,
  3.2054+	7,	16,	13,	0x3f803f803f803f8LL,
  3.2055+	8,	64,	14,	0x3fc000000000000LL,
  3.2056+	8,	32,	14,	0x3fc000003fc0000LL,
  3.2057+	8,	16,	14,	0x3fc03fc03fc03fcLL,
  3.2058+	9,	64,	15,	0x3fe000000000000LL,
  3.2059+	9,	32,	15,	0x3fe000003fe0000LL,
  3.2060+	9,	16,	15,	0x3fe03fe03fe03feLL,
  3.2061+	10,	64,	16,	0x3ff000000000000LL,
  3.2062+	10,	32,	16,	0x3ff000003ff0000LL,
  3.2063+	10,	16,	0,	0x3ff03ff03ff03ffLL,
  3.2064+	11,	64,	17,	0x3ff800000000000LL,
  3.2065+	11,	32,	17,	0x3ff800003ff8000LL,
  3.2066+	12,	64,	18,	0x3ffc00000000000LL,
  3.2067+	12,	32,	18,	0x3ffc00003ffc000LL,
  3.2068+	13,	64,	19,	0x3ffe00000000000LL,
  3.2069+	13,	32,	19,	0x3ffe00003ffe000LL,
  3.2070+	14,	64,	20,	0x3fff00000000000LL,
  3.2071+	14,	32,	20,	0x3fff00003fff000LL,
  3.2072+	15,	64,	21,	0x3fff80000000000LL,
  3.2073+	15,	32,	21,	0x3fff80003fff800LL,
  3.2074+	16,	64,	22,	0x3fffc0000000000LL,
  3.2075+	16,	32,	22,	0x3fffc0003fffc00LL,
  3.2076+	17,	64,	23,	0x3fffe0000000000LL,
  3.2077+	17,	32,	23,	0x3fffe0003fffe00LL,
  3.2078+	18,	64,	24,	0x3ffff0000000000LL,
  3.2079+	18,	32,	24,	0x3ffff0003ffff00LL,
  3.2080+	19,	64,	25,	0x3ffff8000000000LL,
  3.2081+	19,	32,	25,	0x3ffff8003ffff80LL,
  3.2082+	20,	64,	26,	0x3ffffc000000000LL,
  3.2083+	20,	32,	26,	0x3ffffc003ffffc0LL,
  3.2084+	21,	64,	27,	0x3ffffe000000000LL,
  3.2085+	21,	32,	27,	0x3ffffe003ffffe0LL,
  3.2086+	22,	64,	28,	0x3fffff000000000LL,
  3.2087+	22,	32,	28,	0x3fffff003fffff0LL,
  3.2088+	23,	64,	29,	0x3fffff800000000LL,
  3.2089+	23,	32,	29,	0x3fffff803fffff8LL,
  3.2090+	24,	64,	30,	0x3fffffc00000000LL,
  3.2091+	24,	32,	30,	0x3fffffc03fffffcLL,
  3.2092+	25,	64,	31,	0x3fffffe00000000LL,
  3.2093+	25,	32,	31,	0x3fffffe03fffffeLL,
  3.2094+	26,	64,	32,	0x3ffffff00000000LL,
  3.2095+	26,	32,	0,	0x3ffffff03ffffffLL,
  3.2096+	27,	64,	33,	0x3ffffff80000000LL,
  3.2097+	28,	64,	34,	0x3ffffffc0000000LL,
  3.2098+	29,	64,	35,	0x3ffffffe0000000LL,
  3.2099+	30,	64,	36,	0x3fffffff0000000LL,
  3.2100+	31,	64,	37,	0x3fffffff8000000LL,
  3.2101+	32,	64,	38,	0x3fffffffc000000LL,
  3.2102+	33,	64,	39,	0x3fffffffe000000LL,
  3.2103+	34,	64,	40,	0x3ffffffff000000LL,
  3.2104+	35,	64,	41,	0x3ffffffff800000LL,
  3.2105+	36,	64,	42,	0x3ffffffffc00000LL,
  3.2106+	37,	64,	43,	0x3ffffffffe00000LL,
  3.2107+	38,	64,	44,	0x3fffffffff00000LL,
  3.2108+	39,	64,	45,	0x3fffffffff80000LL,
  3.2109+	40,	64,	46,	0x3fffffffffc0000LL,
  3.2110+	41,	64,	47,	0x3fffffffffe0000LL,
  3.2111+	42,	64,	48,	0x3ffffffffff0000LL,
  3.2112+	43,	64,	49,	0x3ffffffffff8000LL,
  3.2113+	44,	64,	50,	0x3ffffffffffc000LL,
  3.2114+	45,	64,	51,	0x3ffffffffffe000LL,
  3.2115+	46,	64,	52,	0x3fffffffffff000LL,
  3.2116+	47,	64,	53,	0x3fffffffffff800LL,
  3.2117+	48,	64,	54,	0x3fffffffffffc00LL,
  3.2118+	49,	64,	55,	0x3fffffffffffe00LL,
  3.2119+	50,	64,	56,	0x3ffffffffffff00LL,
  3.2120+	51,	64,	57,	0x3ffffffffffff80LL,
  3.2121+	52,	64,	58,	0x3ffffffffffffc0LL,
  3.2122+	53,	64,	59,	0x3ffffffffffffe0LL,
  3.2123+	54,	64,	60,	0x3fffffffffffff0LL,
  3.2124+	55,	64,	61,	0x3fffffffffffff8LL,
  3.2125+	56,	64,	62,	0x3fffffffffffffcLL,
  3.2126+	57,	64,	63,	0x3fffffffffffffeLL,
  3.2127+	58,	64,	0,	0x3ffffffffffffffLL,
  3.2128+	1,	64,	6,	0x400000000000000LL,
  3.2129+	1,	32,	6,	0x400000004000000LL,
  3.2130+	1,	16,	6,	0x400040004000400LL,
  3.2131+	1,	8,	6,	0x404040404040404LL,
  3.2132+	2,	64,	7,	0x600000000000000LL,
  3.2133+	2,	32,	7,	0x600000006000000LL,
  3.2134+	2,	16,	7,	0x600060006000600LL,
  3.2135+	2,	8,	7,	0x606060606060606LL,
  3.2136+	3,	64,	8,	0x700000000000000LL,
  3.2137+	3,	32,	8,	0x700000007000000LL,
  3.2138+	3,	16,	8,	0x700070007000700LL,
  3.2139+	3,	8,	0,	0x707070707070707LL,
  3.2140+	4,	64,	9,	0x780000000000000LL,
  3.2141+	4,	32,	9,	0x780000007800000LL,
  3.2142+	4,	16,	9,	0x780078007800780LL,
  3.2143+	5,	64,	10,	0x7c0000000000000LL,
  3.2144+	5,	32,	10,	0x7c0000007c00000LL,
  3.2145+	5,	16,	10,	0x7c007c007c007c0LL,
  3.2146+	6,	64,	11,	0x7e0000000000000LL,
  3.2147+	6,	32,	11,	0x7e0000007e00000LL,
  3.2148+	6,	16,	11,	0x7e007e007e007e0LL,
  3.2149+	7,	64,	12,	0x7f0000000000000LL,
  3.2150+	7,	32,	12,	0x7f0000007f00000LL,
  3.2151+	7,	16,	12,	0x7f007f007f007f0LL,
  3.2152+	8,	64,	13,	0x7f8000000000000LL,
  3.2153+	8,	32,	13,	0x7f8000007f80000LL,
  3.2154+	8,	16,	13,	0x7f807f807f807f8LL,
  3.2155+	9,	64,	14,	0x7fc000000000000LL,
  3.2156+	9,	32,	14,	0x7fc000007fc0000LL,
  3.2157+	9,	16,	14,	0x7fc07fc07fc07fcLL,
  3.2158+	10,	64,	15,	0x7fe000000000000LL,
  3.2159+	10,	32,	15,	0x7fe000007fe0000LL,
  3.2160+	10,	16,	15,	0x7fe07fe07fe07feLL,
  3.2161+	11,	64,	16,	0x7ff000000000000LL,
  3.2162+	11,	32,	16,	0x7ff000007ff0000LL,
  3.2163+	11,	16,	0,	0x7ff07ff07ff07ffLL,
  3.2164+	12,	64,	17,	0x7ff800000000000LL,
  3.2165+	12,	32,	17,	0x7ff800007ff8000LL,
  3.2166+	13,	64,	18,	0x7ffc00000000000LL,
  3.2167+	13,	32,	18,	0x7ffc00007ffc000LL,
  3.2168+	14,	64,	19,	0x7ffe00000000000LL,
  3.2169+	14,	32,	19,	0x7ffe00007ffe000LL,
  3.2170+	15,	64,	20,	0x7fff00000000000LL,
  3.2171+	15,	32,	20,	0x7fff00007fff000LL,
  3.2172+	16,	64,	21,	0x7fff80000000000LL,
  3.2173+	16,	32,	21,	0x7fff80007fff800LL,
  3.2174+	17,	64,	22,	0x7fffc0000000000LL,
  3.2175+	17,	32,	22,	0x7fffc0007fffc00LL,
  3.2176+	18,	64,	23,	0x7fffe0000000000LL,
  3.2177+	18,	32,	23,	0x7fffe0007fffe00LL,
  3.2178+	19,	64,	24,	0x7ffff0000000000LL,
  3.2179+	19,	32,	24,	0x7ffff0007ffff00LL,
  3.2180+	20,	64,	25,	0x7ffff8000000000LL,
  3.2181+	20,	32,	25,	0x7ffff8007ffff80LL,
  3.2182+	21,	64,	26,	0x7ffffc000000000LL,
  3.2183+	21,	32,	26,	0x7ffffc007ffffc0LL,
  3.2184+	22,	64,	27,	0x7ffffe000000000LL,
  3.2185+	22,	32,	27,	0x7ffffe007ffffe0LL,
  3.2186+	23,	64,	28,	0x7fffff000000000LL,
  3.2187+	23,	32,	28,	0x7fffff007fffff0LL,
  3.2188+	24,	64,	29,	0x7fffff800000000LL,
  3.2189+	24,	32,	29,	0x7fffff807fffff8LL,
  3.2190+	25,	64,	30,	0x7fffffc00000000LL,
  3.2191+	25,	32,	30,	0x7fffffc07fffffcLL,
  3.2192+	26,	64,	31,	0x7fffffe00000000LL,
  3.2193+	26,	32,	31,	0x7fffffe07fffffeLL,
  3.2194+	27,	64,	32,	0x7ffffff00000000LL,
  3.2195+	27,	32,	0,	0x7ffffff07ffffffLL,
  3.2196+	28,	64,	33,	0x7ffffff80000000LL,
  3.2197+	29,	64,	34,	0x7ffffffc0000000LL,
  3.2198+	30,	64,	35,	0x7ffffffe0000000LL,
  3.2199+	31,	64,	36,	0x7fffffff0000000LL,
  3.2200+	32,	64,	37,	0x7fffffff8000000LL,
  3.2201+	33,	64,	38,	0x7fffffffc000000LL,
  3.2202+	34,	64,	39,	0x7fffffffe000000LL,
  3.2203+	35,	64,	40,	0x7ffffffff000000LL,
  3.2204+	36,	64,	41,	0x7ffffffff800000LL,
  3.2205+	37,	64,	42,	0x7ffffffffc00000LL,
  3.2206+	38,	64,	43,	0x7ffffffffe00000LL,
  3.2207+	39,	64,	44,	0x7fffffffff00000LL,
  3.2208+	40,	64,	45,	0x7fffffffff80000LL,
  3.2209+	41,	64,	46,	0x7fffffffffc0000LL,
  3.2210+	42,	64,	47,	0x7fffffffffe0000LL,
  3.2211+	43,	64,	48,	0x7ffffffffff0000LL,
  3.2212+	44,	64,	49,	0x7ffffffffff8000LL,
  3.2213+	45,	64,	50,	0x7ffffffffffc000LL,
  3.2214+	46,	64,	51,	0x7ffffffffffe000LL,
  3.2215+	47,	64,	52,	0x7fffffffffff000LL,
  3.2216+	48,	64,	53,	0x7fffffffffff800LL,
  3.2217+	49,	64,	54,	0x7fffffffffffc00LL,
  3.2218+	50,	64,	55,	0x7fffffffffffe00LL,
  3.2219+	51,	64,	56,	0x7ffffffffffff00LL,
  3.2220+	52,	64,	57,	0x7ffffffffffff80LL,
  3.2221+	53,	64,	58,	0x7ffffffffffffc0LL,
  3.2222+	54,	64,	59,	0x7ffffffffffffe0LL,
  3.2223+	55,	64,	60,	0x7fffffffffffff0LL,
  3.2224+	56,	64,	61,	0x7fffffffffffff8LL,
  3.2225+	57,	64,	62,	0x7fffffffffffffcLL,
  3.2226+	58,	64,	63,	0x7fffffffffffffeLL,
  3.2227+	59,	64,	0,	0x7ffffffffffffffLL,
  3.2228+	1,	64,	5,	0x800000000000000LL,
  3.2229+	1,	32,	5,	0x800000008000000LL,
  3.2230+	1,	16,	5,	0x800080008000800LL,
  3.2231+	1,	8,	5,	0x808080808080808LL,
  3.2232+	2,	64,	6,	0xc00000000000000LL,
  3.2233+	2,	32,	6,	0xc0000000c000000LL,
  3.2234+	2,	16,	6,	0xc000c000c000c00LL,
  3.2235+	2,	8,	6,	0xc0c0c0c0c0c0c0cLL,
  3.2236+	3,	64,	7,	0xe00000000000000LL,
  3.2237+	3,	32,	7,	0xe0000000e000000LL,
  3.2238+	3,	16,	7,	0xe000e000e000e00LL,
  3.2239+	3,	8,	7,	0xe0e0e0e0e0e0e0eLL,
  3.2240+	4,	64,	8,	0xf00000000000000LL,
  3.2241+	4,	32,	8,	0xf0000000f000000LL,
  3.2242+	4,	16,	8,	0xf000f000f000f00LL,
  3.2243+	4,	8,	0,	0xf0f0f0f0f0f0f0fLL,
  3.2244+	5,	64,	9,	0xf80000000000000LL,
  3.2245+	5,	32,	9,	0xf8000000f800000LL,
  3.2246+	5,	16,	9,	0xf800f800f800f80LL,
  3.2247+	6,	64,	10,	0xfc0000000000000LL,
  3.2248+	6,	32,	10,	0xfc000000fc00000LL,
  3.2249+	6,	16,	10,	0xfc00fc00fc00fc0LL,
  3.2250+	7,	64,	11,	0xfe0000000000000LL,
  3.2251+	7,	32,	11,	0xfe000000fe00000LL,
  3.2252+	7,	16,	11,	0xfe00fe00fe00fe0LL,
  3.2253+	8,	64,	12,	0xff0000000000000LL,
  3.2254+	8,	32,	12,	0xff000000ff00000LL,
  3.2255+	8,	16,	12,	0xff00ff00ff00ff0LL,
  3.2256+	9,	64,	13,	0xff8000000000000LL,
  3.2257+	9,	32,	13,	0xff800000ff80000LL,
  3.2258+	9,	16,	13,	0xff80ff80ff80ff8LL,
  3.2259+	10,	64,	14,	0xffc000000000000LL,
  3.2260+	10,	32,	14,	0xffc00000ffc0000LL,
  3.2261+	10,	16,	14,	0xffc0ffc0ffc0ffcLL,
  3.2262+	11,	64,	15,	0xffe000000000000LL,
  3.2263+	11,	32,	15,	0xffe00000ffe0000LL,
  3.2264+	11,	16,	15,	0xffe0ffe0ffe0ffeLL,
  3.2265+	12,	64,	16,	0xfff000000000000LL,
  3.2266+	12,	32,	16,	0xfff00000fff0000LL,
  3.2267+	12,	16,	0,	0xfff0fff0fff0fffLL,
  3.2268+	13,	64,	17,	0xfff800000000000LL,
  3.2269+	13,	32,	17,	0xfff80000fff8000LL,
  3.2270+	14,	64,	18,	0xfffc00000000000LL,
  3.2271+	14,	32,	18,	0xfffc0000fffc000LL,
  3.2272+	15,	64,	19,	0xfffe00000000000LL,
  3.2273+	15,	32,	19,	0xfffe0000fffe000LL,
  3.2274+	16,	64,	20,	0xffff00000000000LL,
  3.2275+	16,	32,	20,	0xffff0000ffff000LL,
  3.2276+	17,	64,	21,	0xffff80000000000LL,
  3.2277+	17,	32,	21,	0xffff8000ffff800LL,
  3.2278+	18,	64,	22,	0xffffc0000000000LL,
  3.2279+	18,	32,	22,	0xffffc000ffffc00LL,
  3.2280+	19,	64,	23,	0xffffe0000000000LL,
  3.2281+	19,	32,	23,	0xffffe000ffffe00LL,
  3.2282+	20,	64,	24,	0xfffff0000000000LL,
  3.2283+	20,	32,	24,	0xfffff000fffff00LL,
  3.2284+	21,	64,	25,	0xfffff8000000000LL,
  3.2285+	21,	32,	25,	0xfffff800fffff80LL,
  3.2286+	22,	64,	26,	0xfffffc000000000LL,
  3.2287+	22,	32,	26,	0xfffffc00fffffc0LL,
  3.2288+	23,	64,	27,	0xfffffe000000000LL,
  3.2289+	23,	32,	27,	0xfffffe00fffffe0LL,
  3.2290+	24,	64,	28,	0xffffff000000000LL,
  3.2291+	24,	32,	28,	0xffffff00ffffff0LL,
  3.2292+	25,	64,	29,	0xffffff800000000LL,
  3.2293+	25,	32,	29,	0xffffff80ffffff8LL,
  3.2294+	26,	64,	30,	0xffffffc00000000LL,
  3.2295+	26,	32,	30,	0xffffffc0ffffffcLL,
  3.2296+	27,	64,	31,	0xffffffe00000000LL,
  3.2297+	27,	32,	31,	0xffffffe0ffffffeLL,
  3.2298+	28,	64,	32,	0xfffffff00000000LL,
  3.2299+	28,	32,	0,	0xfffffff0fffffffLL,
  3.2300+	29,	64,	33,	0xfffffff80000000LL,
  3.2301+	30,	64,	34,	0xfffffffc0000000LL,
  3.2302+	31,	64,	35,	0xfffffffe0000000LL,
  3.2303+	32,	64,	36,	0xffffffff0000000LL,
  3.2304+	33,	64,	37,	0xffffffff8000000LL,
  3.2305+	34,	64,	38,	0xffffffffc000000LL,
  3.2306+	35,	64,	39,	0xffffffffe000000LL,
  3.2307+	36,	64,	40,	0xfffffffff000000LL,
  3.2308+	37,	64,	41,	0xfffffffff800000LL,
  3.2309+	38,	64,	42,	0xfffffffffc00000LL,
  3.2310+	39,	64,	43,	0xfffffffffe00000LL,
  3.2311+	40,	64,	44,	0xffffffffff00000LL,
  3.2312+	41,	64,	45,	0xffffffffff80000LL,
  3.2313+	42,	64,	46,	0xffffffffffc0000LL,
  3.2314+	43,	64,	47,	0xffffffffffe0000LL,
  3.2315+	44,	64,	48,	0xfffffffffff0000LL,
  3.2316+	45,	64,	49,	0xfffffffffff8000LL,
  3.2317+	46,	64,	50,	0xfffffffffffc000LL,
  3.2318+	47,	64,	51,	0xfffffffffffe000LL,
  3.2319+	48,	64,	52,	0xffffffffffff000LL,
  3.2320+	49,	64,	53,	0xffffffffffff800LL,
  3.2321+	50,	64,	54,	0xffffffffffffc00LL,
  3.2322+	51,	64,	55,	0xffffffffffffe00LL,
  3.2323+	52,	64,	56,	0xfffffffffffff00LL,
  3.2324+	53,	64,	57,	0xfffffffffffff80LL,
  3.2325+	54,	64,	58,	0xfffffffffffffc0LL,
  3.2326+	55,	64,	59,	0xfffffffffffffe0LL,
  3.2327+	56,	64,	60,	0xffffffffffffff0LL,
  3.2328+	57,	64,	61,	0xffffffffffffff8LL,
  3.2329+	58,	64,	62,	0xffffffffffffffcLL,
  3.2330+	59,	64,	63,	0xffffffffffffffeLL,
  3.2331+	60,	64,	0,	0xfffffffffffffffLL,
  3.2332+	1,	64,	4,	0x1000000000000000LL,
  3.2333+	1,	32,	4,	0x1000000010000000LL,
  3.2334+	1,	16,	4,	0x1000100010001000LL,
  3.2335+	1,	8,	4,	0x1010101010101010LL,
  3.2336+	1,	4,	0,	0x1111111111111111LL,
  3.2337+	2,	64,	5,	0x1800000000000000LL,
  3.2338+	2,	32,	5,	0x1800000018000000LL,
  3.2339+	2,	16,	5,	0x1800180018001800LL,
  3.2340+	2,	8,	5,	0x1818181818181818LL,
  3.2341+	3,	64,	6,	0x1c00000000000000LL,
  3.2342+	3,	32,	6,	0x1c0000001c000000LL,
  3.2343+	3,	16,	6,	0x1c001c001c001c00LL,
  3.2344+	3,	8,	6,	0x1c1c1c1c1c1c1c1cLL,
  3.2345+	4,	64,	7,	0x1e00000000000000LL,
  3.2346+	4,	32,	7,	0x1e0000001e000000LL,
  3.2347+	4,	16,	7,	0x1e001e001e001e00LL,
  3.2348+	4,	8,	7,	0x1e1e1e1e1e1e1e1eLL,
  3.2349+	5,	64,	8,	0x1f00000000000000LL,
  3.2350+	5,	32,	8,	0x1f0000001f000000LL,
  3.2351+	5,	16,	8,	0x1f001f001f001f00LL,
  3.2352+	5,	8,	0,	0x1f1f1f1f1f1f1f1fLL,
  3.2353+	6,	64,	9,	0x1f80000000000000LL,
  3.2354+	6,	32,	9,	0x1f8000001f800000LL,
  3.2355+	6,	16,	9,	0x1f801f801f801f80LL,
  3.2356+	7,	64,	10,	0x1fc0000000000000LL,
  3.2357+	7,	32,	10,	0x1fc000001fc00000LL,
  3.2358+	7,	16,	10,	0x1fc01fc01fc01fc0LL,
  3.2359+	8,	64,	11,	0x1fe0000000000000LL,
  3.2360+	8,	32,	11,	0x1fe000001fe00000LL,
  3.2361+	8,	16,	11,	0x1fe01fe01fe01fe0LL,
  3.2362+	9,	64,	12,	0x1ff0000000000000LL,
  3.2363+	9,	32,	12,	0x1ff000001ff00000LL,
  3.2364+	9,	16,	12,	0x1ff01ff01ff01ff0LL,
  3.2365+	10,	64,	13,	0x1ff8000000000000LL,
  3.2366+	10,	32,	13,	0x1ff800001ff80000LL,
  3.2367+	10,	16,	13,	0x1ff81ff81ff81ff8LL,
  3.2368+	11,	64,	14,	0x1ffc000000000000LL,
  3.2369+	11,	32,	14,	0x1ffc00001ffc0000LL,
  3.2370+	11,	16,	14,	0x1ffc1ffc1ffc1ffcLL,
  3.2371+	12,	64,	15,	0x1ffe000000000000LL,
  3.2372+	12,	32,	15,	0x1ffe00001ffe0000LL,
  3.2373+	12,	16,	15,	0x1ffe1ffe1ffe1ffeLL,
  3.2374+	13,	64,	16,	0x1fff000000000000LL,
  3.2375+	13,	32,	16,	0x1fff00001fff0000LL,
  3.2376+	13,	16,	0,	0x1fff1fff1fff1fffLL,
  3.2377+	14,	64,	17,	0x1fff800000000000LL,
  3.2378+	14,	32,	17,	0x1fff80001fff8000LL,
  3.2379+	15,	64,	18,	0x1fffc00000000000LL,
  3.2380+	15,	32,	18,	0x1fffc0001fffc000LL,
  3.2381+	16,	64,	19,	0x1fffe00000000000LL,
  3.2382+	16,	32,	19,	0x1fffe0001fffe000LL,
  3.2383+	17,	64,	20,	0x1ffff00000000000LL,
  3.2384+	17,	32,	20,	0x1ffff0001ffff000LL,
  3.2385+	18,	64,	21,	0x1ffff80000000000LL,
  3.2386+	18,	32,	21,	0x1ffff8001ffff800LL,
  3.2387+	19,	64,	22,	0x1ffffc0000000000LL,
  3.2388+	19,	32,	22,	0x1ffffc001ffffc00LL,
  3.2389+	20,	64,	23,	0x1ffffe0000000000LL,
  3.2390+	20,	32,	23,	0x1ffffe001ffffe00LL,
  3.2391+	21,	64,	24,	0x1fffff0000000000LL,
  3.2392+	21,	32,	24,	0x1fffff001fffff00LL,
  3.2393+	22,	64,	25,	0x1fffff8000000000LL,
  3.2394+	22,	32,	25,	0x1fffff801fffff80LL,
  3.2395+	23,	64,	26,	0x1fffffc000000000LL,
  3.2396+	23,	32,	26,	0x1fffffc01fffffc0LL,
  3.2397+	24,	64,	27,	0x1fffffe000000000LL,
  3.2398+	24,	32,	27,	0x1fffffe01fffffe0LL,
  3.2399+	25,	64,	28,	0x1ffffff000000000LL,
  3.2400+	25,	32,	28,	0x1ffffff01ffffff0LL,
  3.2401+	26,	64,	29,	0x1ffffff800000000LL,
  3.2402+	26,	32,	29,	0x1ffffff81ffffff8LL,
  3.2403+	27,	64,	30,	0x1ffffffc00000000LL,
  3.2404+	27,	32,	30,	0x1ffffffc1ffffffcLL,
  3.2405+	28,	64,	31,	0x1ffffffe00000000LL,
  3.2406+	28,	32,	31,	0x1ffffffe1ffffffeLL,
  3.2407+	29,	64,	32,	0x1fffffff00000000LL,
  3.2408+	29,	32,	0,	0x1fffffff1fffffffLL,
  3.2409+	30,	64,	33,	0x1fffffff80000000LL,
  3.2410+	31,	64,	34,	0x1fffffffc0000000LL,
  3.2411+	32,	64,	35,	0x1fffffffe0000000LL,
  3.2412+	33,	64,	36,	0x1ffffffff0000000LL,
  3.2413+	34,	64,	37,	0x1ffffffff8000000LL,
  3.2414+	35,	64,	38,	0x1ffffffffc000000LL,
  3.2415+	36,	64,	39,	0x1ffffffffe000000LL,
  3.2416+	37,	64,	40,	0x1fffffffff000000LL,
  3.2417+	38,	64,	41,	0x1fffffffff800000LL,
  3.2418+	39,	64,	42,	0x1fffffffffc00000LL,
  3.2419+	40,	64,	43,	0x1fffffffffe00000LL,
  3.2420+	41,	64,	44,	0x1ffffffffff00000LL,
  3.2421+	42,	64,	45,	0x1ffffffffff80000LL,
  3.2422+	43,	64,	46,	0x1ffffffffffc0000LL,
  3.2423+	44,	64,	47,	0x1ffffffffffe0000LL,
  3.2424+	45,	64,	48,	0x1fffffffffff0000LL,
  3.2425+	46,	64,	49,	0x1fffffffffff8000LL,
  3.2426+	47,	64,	50,	0x1fffffffffffc000LL,
  3.2427+	48,	64,	51,	0x1fffffffffffe000LL,
  3.2428+	49,	64,	52,	0x1ffffffffffff000LL,
  3.2429+	50,	64,	53,	0x1ffffffffffff800LL,
  3.2430+	51,	64,	54,	0x1ffffffffffffc00LL,
  3.2431+	52,	64,	55,	0x1ffffffffffffe00LL,
  3.2432+	53,	64,	56,	0x1fffffffffffff00LL,
  3.2433+	54,	64,	57,	0x1fffffffffffff80LL,
  3.2434+	55,	64,	58,	0x1fffffffffffffc0LL,
  3.2435+	56,	64,	59,	0x1fffffffffffffe0LL,
  3.2436+	57,	64,	60,	0x1ffffffffffffff0LL,
  3.2437+	58,	64,	61,	0x1ffffffffffffff8LL,
  3.2438+	59,	64,	62,	0x1ffffffffffffffcLL,
  3.2439+	60,	64,	63,	0x1ffffffffffffffeLL,
  3.2440+	61,	64,	0,	0x1fffffffffffffffLL,
  3.2441+	1,	64,	3,	0x2000000000000000LL,
  3.2442+	1,	32,	3,	0x2000000020000000LL,
  3.2443+	1,	16,	3,	0x2000200020002000LL,
  3.2444+	1,	8,	3,	0x2020202020202020LL,
  3.2445+	1,	4,	3,	0x2222222222222222LL,
  3.2446+	2,	64,	4,	0x3000000000000000LL,
  3.2447+	2,	32,	4,	0x3000000030000000LL,
  3.2448+	2,	16,	4,	0x3000300030003000LL,
  3.2449+	2,	8,	4,	0x3030303030303030LL,
  3.2450+	2,	4,	0,	0x3333333333333333LL,
  3.2451+	3,	64,	5,	0x3800000000000000LL,
  3.2452+	3,	32,	5,	0x3800000038000000LL,
  3.2453+	3,	16,	5,	0x3800380038003800LL,
  3.2454+	3,	8,	5,	0x3838383838383838LL,
  3.2455+	4,	64,	6,	0x3c00000000000000LL,
  3.2456+	4,	32,	6,	0x3c0000003c000000LL,
  3.2457+	4,	16,	6,	0x3c003c003c003c00LL,
  3.2458+	4,	8,	6,	0x3c3c3c3c3c3c3c3cLL,
  3.2459+	5,	64,	7,	0x3e00000000000000LL,
  3.2460+	5,	32,	7,	0x3e0000003e000000LL,
  3.2461+	5,	16,	7,	0x3e003e003e003e00LL,
  3.2462+	5,	8,	7,	0x3e3e3e3e3e3e3e3eLL,
  3.2463+	6,	64,	8,	0x3f00000000000000LL,
  3.2464+	6,	32,	8,	0x3f0000003f000000LL,
  3.2465+	6,	16,	8,	0x3f003f003f003f00LL,
  3.2466+	6,	8,	0,	0x3f3f3f3f3f3f3f3fLL,
  3.2467+	7,	64,	9,	0x3f80000000000000LL,
  3.2468+	7,	32,	9,	0x3f8000003f800000LL,
  3.2469+	7,	16,	9,	0x3f803f803f803f80LL,
  3.2470+	8,	64,	10,	0x3fc0000000000000LL,
  3.2471+	8,	32,	10,	0x3fc000003fc00000LL,
  3.2472+	8,	16,	10,	0x3fc03fc03fc03fc0LL,
  3.2473+	9,	64,	11,	0x3fe0000000000000LL,
  3.2474+	9,	32,	11,	0x3fe000003fe00000LL,
  3.2475+	9,	16,	11,	0x3fe03fe03fe03fe0LL,
  3.2476+	10,	64,	12,	0x3ff0000000000000LL,
  3.2477+	10,	32,	12,	0x3ff000003ff00000LL,
  3.2478+	10,	16,	12,	0x3ff03ff03ff03ff0LL,
  3.2479+	11,	64,	13,	0x3ff8000000000000LL,
  3.2480+	11,	32,	13,	0x3ff800003ff80000LL,
  3.2481+	11,	16,	13,	0x3ff83ff83ff83ff8LL,
  3.2482+	12,	64,	14,	0x3ffc000000000000LL,
  3.2483+	12,	32,	14,	0x3ffc00003ffc0000LL,
  3.2484+	12,	16,	14,	0x3ffc3ffc3ffc3ffcLL,
  3.2485+	13,	64,	15,	0x3ffe000000000000LL,
  3.2486+	13,	32,	15,	0x3ffe00003ffe0000LL,
  3.2487+	13,	16,	15,	0x3ffe3ffe3ffe3ffeLL,
  3.2488+	14,	64,	16,	0x3fff000000000000LL,
  3.2489+	14,	32,	16,	0x3fff00003fff0000LL,
  3.2490+	14,	16,	0,	0x3fff3fff3fff3fffLL,
  3.2491+	15,	64,	17,	0x3fff800000000000LL,
  3.2492+	15,	32,	17,	0x3fff80003fff8000LL,
  3.2493+	16,	64,	18,	0x3fffc00000000000LL,
  3.2494+	16,	32,	18,	0x3fffc0003fffc000LL,
  3.2495+	17,	64,	19,	0x3fffe00000000000LL,
  3.2496+	17,	32,	19,	0x3fffe0003fffe000LL,
  3.2497+	18,	64,	20,	0x3ffff00000000000LL,
  3.2498+	18,	32,	20,	0x3ffff0003ffff000LL,
  3.2499+	19,	64,	21,	0x3ffff80000000000LL,
  3.2500+	19,	32,	21,	0x3ffff8003ffff800LL,
  3.2501+	20,	64,	22,	0x3ffffc0000000000LL,
  3.2502+	20,	32,	22,	0x3ffffc003ffffc00LL,
  3.2503+	21,	64,	23,	0x3ffffe0000000000LL,
  3.2504+	21,	32,	23,	0x3ffffe003ffffe00LL,
  3.2505+	22,	64,	24,	0x3fffff0000000000LL,
  3.2506+	22,	32,	24,	0x3fffff003fffff00LL,
  3.2507+	23,	64,	25,	0x3fffff8000000000LL,
  3.2508+	23,	32,	25,	0x3fffff803fffff80LL,
  3.2509+	24,	64,	26,	0x3fffffc000000000LL,
  3.2510+	24,	32,	26,	0x3fffffc03fffffc0LL,
  3.2511+	25,	64,	27,	0x3fffffe000000000LL,
  3.2512+	25,	32,	27,	0x3fffffe03fffffe0LL,
  3.2513+	26,	64,	28,	0x3ffffff000000000LL,
  3.2514+	26,	32,	28,	0x3ffffff03ffffff0LL,
  3.2515+	27,	64,	29,	0x3ffffff800000000LL,
  3.2516+	27,	32,	29,	0x3ffffff83ffffff8LL,
  3.2517+	28,	64,	30,	0x3ffffffc00000000LL,
  3.2518+	28,	32,	30,	0x3ffffffc3ffffffcLL,
  3.2519+	29,	64,	31,	0x3ffffffe00000000LL,
  3.2520+	29,	32,	31,	0x3ffffffe3ffffffeLL,
  3.2521+	30,	64,	32,	0x3fffffff00000000LL,
  3.2522+	30,	32,	0,	0x3fffffff3fffffffLL,
  3.2523+	31,	64,	33,	0x3fffffff80000000LL,
  3.2524+	32,	64,	34,	0x3fffffffc0000000LL,
  3.2525+	33,	64,	35,	0x3fffffffe0000000LL,
  3.2526+	34,	64,	36,	0x3ffffffff0000000LL,
  3.2527+	35,	64,	37,	0x3ffffffff8000000LL,
  3.2528+	36,	64,	38,	0x3ffffffffc000000LL,
  3.2529+	37,	64,	39,	0x3ffffffffe000000LL,
  3.2530+	38,	64,	40,	0x3fffffffff000000LL,
  3.2531+	39,	64,	41,	0x3fffffffff800000LL,
  3.2532+	40,	64,	42,	0x3fffffffffc00000LL,
  3.2533+	41,	64,	43,	0x3fffffffffe00000LL,
  3.2534+	42,	64,	44,	0x3ffffffffff00000LL,
  3.2535+	43,	64,	45,	0x3ffffffffff80000LL,
  3.2536+	44,	64,	46,	0x3ffffffffffc0000LL,
  3.2537+	45,	64,	47,	0x3ffffffffffe0000LL,
  3.2538+	46,	64,	48,	0x3fffffffffff0000LL,
  3.2539+	47,	64,	49,	0x3fffffffffff8000LL,
  3.2540+	48,	64,	50,	0x3fffffffffffc000LL,
  3.2541+	49,	64,	51,	0x3fffffffffffe000LL,
  3.2542+	50,	64,	52,	0x3ffffffffffff000LL,
  3.2543+	51,	64,	53,	0x3ffffffffffff800LL,
  3.2544+	52,	64,	54,	0x3ffffffffffffc00LL,
  3.2545+	53,	64,	55,	0x3ffffffffffffe00LL,
  3.2546+	54,	64,	56,	0x3fffffffffffff00LL,
  3.2547+	55,	64,	57,	0x3fffffffffffff80LL,
  3.2548+	56,	64,	58,	0x3fffffffffffffc0LL,
  3.2549+	57,	64,	59,	0x3fffffffffffffe0LL,
  3.2550+	58,	64,	60,	0x3ffffffffffffff0LL,
  3.2551+	59,	64,	61,	0x3ffffffffffffff8LL,
  3.2552+	60,	64,	62,	0x3ffffffffffffffcLL,
  3.2553+	61,	64,	63,	0x3ffffffffffffffeLL,
  3.2554+	62,	64,	0,	0x3fffffffffffffffLL,
  3.2555+	1,	64,	2,	0x4000000000000000LL,
  3.2556+	1,	32,	2,	0x4000000040000000LL,
  3.2557+	1,	16,	2,	0x4000400040004000LL,
  3.2558+	1,	8,	2,	0x4040404040404040LL,
  3.2559+	1,	4,	2,	0x4444444444444444LL,
  3.2560+	1,	2,	0,	0x5555555555555555LL,
  3.2561+	2,	64,	3,	0x6000000000000000LL,
  3.2562+	2,	32,	3,	0x6000000060000000LL,
  3.2563+	2,	16,	3,	0x6000600060006000LL,
  3.2564+	2,	8,	3,	0x6060606060606060LL,
  3.2565+	2,	4,	3,	0x6666666666666666LL,
  3.2566+	3,	64,	4,	0x7000000000000000LL,
  3.2567+	3,	32,	4,	0x7000000070000000LL,
  3.2568+	3,	16,	4,	0x7000700070007000LL,
  3.2569+	3,	8,	4,	0x7070707070707070LL,
  3.2570+	3,	4,	0,	0x7777777777777777LL,
  3.2571+	4,	64,	5,	0x7800000000000000LL,
  3.2572+	4,	32,	5,	0x7800000078000000LL,
  3.2573+	4,	16,	5,	0x7800780078007800LL,
  3.2574+	4,	8,	5,	0x7878787878787878LL,
  3.2575+	5,	64,	6,	0x7c00000000000000LL,
  3.2576+	5,	32,	6,	0x7c0000007c000000LL,
  3.2577+	5,	16,	6,	0x7c007c007c007c00LL,
  3.2578+	5,	8,	6,	0x7c7c7c7c7c7c7c7cLL,
  3.2579+	6,	64,	7,	0x7e00000000000000LL,
  3.2580+	6,	32,	7,	0x7e0000007e000000LL,
  3.2581+	6,	16,	7,	0x7e007e007e007e00LL,
  3.2582+	6,	8,	7,	0x7e7e7e7e7e7e7e7eLL,
  3.2583+	7,	64,	8,	0x7f00000000000000LL,
  3.2584+	7,	32,	8,	0x7f0000007f000000LL,
  3.2585+	7,	16,	8,	0x7f007f007f007f00LL,
  3.2586+	7,	8,	0,	0x7f7f7f7f7f7f7f7fLL,
  3.2587+	8,	64,	9,	0x7f80000000000000LL,
  3.2588+	8,	32,	9,	0x7f8000007f800000LL,
  3.2589+	8,	16,	9,	0x7f807f807f807f80LL,
  3.2590+	9,	64,	10,	0x7fc0000000000000LL,
  3.2591+	9,	32,	10,	0x7fc000007fc00000LL,
  3.2592+	9,	16,	10,	0x7fc07fc07fc07fc0LL,
  3.2593+	10,	64,	11,	0x7fe0000000000000LL,
  3.2594+	10,	32,	11,	0x7fe000007fe00000LL,
  3.2595+	10,	16,	11,	0x7fe07fe07fe07fe0LL,
  3.2596+	11,	64,	12,	0x7ff0000000000000LL,
  3.2597+	11,	32,	12,	0x7ff000007ff00000LL,
  3.2598+	11,	16,	12,	0x7ff07ff07ff07ff0LL,
  3.2599+	12,	64,	13,	0x7ff8000000000000LL,
  3.2600+	12,	32,	13,	0x7ff800007ff80000LL,
  3.2601+	12,	16,	13,	0x7ff87ff87ff87ff8LL,
  3.2602+	13,	64,	14,	0x7ffc000000000000LL,
  3.2603+	13,	32,	14,	0x7ffc00007ffc0000LL,
  3.2604+	13,	16,	14,	0x7ffc7ffc7ffc7ffcLL,
  3.2605+	14,	64,	15,	0x7ffe000000000000LL,
  3.2606+	14,	32,	15,	0x7ffe00007ffe0000LL,
  3.2607+	14,	16,	15,	0x7ffe7ffe7ffe7ffeLL,
  3.2608+	15,	64,	16,	0x7fff000000000000LL,
  3.2609+	15,	32,	16,	0x7fff00007fff0000LL,
  3.2610+	15,	16,	0,	0x7fff7fff7fff7fffLL,
  3.2611+	16,	64,	17,	0x7fff800000000000LL,
  3.2612+	16,	32,	17,	0x7fff80007fff8000LL,
  3.2613+	17,	64,	18,	0x7fffc00000000000LL,
  3.2614+	17,	32,	18,	0x7fffc0007fffc000LL,
  3.2615+	18,	64,	19,	0x7fffe00000000000LL,
  3.2616+	18,	32,	19,	0x7fffe0007fffe000LL,
  3.2617+	19,	64,	20,	0x7ffff00000000000LL,
  3.2618+	19,	32,	20,	0x7ffff0007ffff000LL,
  3.2619+	20,	64,	21,	0x7ffff80000000000LL,
  3.2620+	20,	32,	21,	0x7ffff8007ffff800LL,
  3.2621+	21,	64,	22,	0x7ffffc0000000000LL,
  3.2622+	21,	32,	22,	0x7ffffc007ffffc00LL,
  3.2623+	22,	64,	23,	0x7ffffe0000000000LL,
  3.2624+	22,	32,	23,	0x7ffffe007ffffe00LL,
  3.2625+	23,	64,	24,	0x7fffff0000000000LL,
  3.2626+	23,	32,	24,	0x7fffff007fffff00LL,
  3.2627+	24,	64,	25,	0x7fffff8000000000LL,
  3.2628+	24,	32,	25,	0x7fffff807fffff80LL,
  3.2629+	25,	64,	26,	0x7fffffc000000000LL,
  3.2630+	25,	32,	26,	0x7fffffc07fffffc0LL,
  3.2631+	26,	64,	27,	0x7fffffe000000000LL,
  3.2632+	26,	32,	27,	0x7fffffe07fffffe0LL,
  3.2633+	27,	64,	28,	0x7ffffff000000000LL,
  3.2634+	27,	32,	28,	0x7ffffff07ffffff0LL,
  3.2635+	28,	64,	29,	0x7ffffff800000000LL,
  3.2636+	28,	32,	29,	0x7ffffff87ffffff8LL,
  3.2637+	29,	64,	30,	0x7ffffffc00000000LL,
  3.2638+	29,	32,	30,	0x7ffffffc7ffffffcLL,
  3.2639+	30,	64,	31,	0x7ffffffe00000000LL,
  3.2640+	30,	32,	31,	0x7ffffffe7ffffffeLL,
  3.2641+	31,	64,	32,	0x7fffffff00000000LL,
  3.2642+	31,	32,	0,	0x7fffffff7fffffffLL,
  3.2643+	32,	64,	33,	0x7fffffff80000000LL,
  3.2644+	33,	64,	34,	0x7fffffffc0000000LL,
  3.2645+	34,	64,	35,	0x7fffffffe0000000LL,
  3.2646+	35,	64,	36,	0x7ffffffff0000000LL,
  3.2647+	36,	64,	37,	0x7ffffffff8000000LL,
  3.2648+	37,	64,	38,	0x7ffffffffc000000LL,
  3.2649+	38,	64,	39,	0x7ffffffffe000000LL,
  3.2650+	39,	64,	40,	0x7fffffffff000000LL,
  3.2651+	40,	64,	41,	0x7fffffffff800000LL,
  3.2652+	41,	64,	42,	0x7fffffffffc00000LL,
  3.2653+	42,	64,	43,	0x7fffffffffe00000LL,
  3.2654+	43,	64,	44,	0x7ffffffffff00000LL,
  3.2655+	44,	64,	45,	0x7ffffffffff80000LL,
  3.2656+	45,	64,	46,	0x7ffffffffffc0000LL,
  3.2657+	46,	64,	47,	0x7ffffffffffe0000LL,
  3.2658+	47,	64,	48,	0x7fffffffffff0000LL,
  3.2659+	48,	64,	49,	0x7fffffffffff8000LL,
  3.2660+	49,	64,	50,	0x7fffffffffffc000LL,
  3.2661+	50,	64,	51,	0x7fffffffffffe000LL,
  3.2662+	51,	64,	52,	0x7ffffffffffff000LL,
  3.2663+	52,	64,	53,	0x7ffffffffffff800LL,
  3.2664+	53,	64,	54,	0x7ffffffffffffc00LL,
  3.2665+	54,	64,	55,	0x7ffffffffffffe00LL,
  3.2666+	55,	64,	56,	0x7fffffffffffff00LL,
  3.2667+	56,	64,	57,	0x7fffffffffffff80LL,
  3.2668+	57,	64,	58,	0x7fffffffffffffc0LL,
  3.2669+	58,	64,	59,	0x7fffffffffffffe0LL,
  3.2670+	59,	64,	60,	0x7ffffffffffffff0LL,
  3.2671+	60,	64,	61,	0x7ffffffffffffff8LL,
  3.2672+	61,	64,	62,	0x7ffffffffffffffcLL,
  3.2673+	62,	64,	63,	0x7ffffffffffffffeLL,
  3.2674+	63,	64,	0,	0x7fffffffffffffffLL,
  3.2675+	1,	64,	1,	0x8000000000000000LL,
  3.2676+	2,	64,	1,	0x8000000000000001LL,
  3.2677+	3,	64,	1,	0x8000000000000003LL,
  3.2678+	4,	64,	1,	0x8000000000000007LL,
  3.2679+	5,	64,	1,	0x800000000000000fLL,
  3.2680+	6,	64,	1,	0x800000000000001fLL,
  3.2681+	7,	64,	1,	0x800000000000003fLL,
  3.2682+	8,	64,	1,	0x800000000000007fLL,
  3.2683+	9,	64,	1,	0x80000000000000ffLL,
  3.2684+	10,	64,	1,	0x80000000000001ffLL,
  3.2685+	11,	64,	1,	0x80000000000003ffLL,
  3.2686+	12,	64,	1,	0x80000000000007ffLL,
  3.2687+	13,	64,	1,	0x8000000000000fffLL,
  3.2688+	14,	64,	1,	0x8000000000001fffLL,
  3.2689+	15,	64,	1,	0x8000000000003fffLL,
  3.2690+	16,	64,	1,	0x8000000000007fffLL,
  3.2691+	17,	64,	1,	0x800000000000ffffLL,
  3.2692+	18,	64,	1,	0x800000000001ffffLL,
  3.2693+	19,	64,	1,	0x800000000003ffffLL,
  3.2694+	20,	64,	1,	0x800000000007ffffLL,
  3.2695+	21,	64,	1,	0x80000000000fffffLL,
  3.2696+	22,	64,	1,	0x80000000001fffffLL,
  3.2697+	23,	64,	1,	0x80000000003fffffLL,
  3.2698+	24,	64,	1,	0x80000000007fffffLL,
  3.2699+	25,	64,	1,	0x8000000000ffffffLL,
  3.2700+	26,	64,	1,	0x8000000001ffffffLL,
  3.2701+	27,	64,	1,	0x8000000003ffffffLL,
  3.2702+	28,	64,	1,	0x8000000007ffffffLL,
  3.2703+	29,	64,	1,	0x800000000fffffffLL,
  3.2704+	30,	64,	1,	0x800000001fffffffLL,
  3.2705+	31,	64,	1,	0x800000003fffffffLL,
  3.2706+	32,	64,	1,	0x800000007fffffffLL,
  3.2707+	1,	32,	1,	0x8000000080000000LL,
  3.2708+	33,	64,	1,	0x80000000ffffffffLL,
  3.2709+	2,	32,	1,	0x8000000180000001LL,
  3.2710+	34,	64,	1,	0x80000001ffffffffLL,
  3.2711+	3,	32,	1,	0x8000000380000003LL,
  3.2712+	35,	64,	1,	0x80000003ffffffffLL,
  3.2713+	4,	32,	1,	0x8000000780000007LL,
  3.2714+	36,	64,	1,	0x80000007ffffffffLL,
  3.2715+	5,	32,	1,	0x8000000f8000000fLL,
  3.2716+	37,	64,	1,	0x8000000fffffffffLL,
  3.2717+	6,	32,	1,	0x8000001f8000001fLL,
  3.2718+	38,	64,	1,	0x8000001fffffffffLL,
  3.2719+	7,	32,	1,	0x8000003f8000003fLL,
  3.2720+	39,	64,	1,	0x8000003fffffffffLL,
  3.2721+	8,	32,	1,	0x8000007f8000007fLL,
  3.2722+	40,	64,	1,	0x8000007fffffffffLL,
  3.2723+	9,	32,	1,	0x800000ff800000ffLL,
  3.2724+	41,	64,	1,	0x800000ffffffffffLL,
  3.2725+	10,	32,	1,	0x800001ff800001ffLL,
  3.2726+	42,	64,	1,	0x800001ffffffffffLL,
  3.2727+	11,	32,	1,	0x800003ff800003ffLL,
  3.2728+	43,	64,	1,	0x800003ffffffffffLL,
  3.2729+	12,	32,	1,	0x800007ff800007ffLL,
  3.2730+	44,	64,	1,	0x800007ffffffffffLL,
  3.2731+	13,	32,	1,	0x80000fff80000fffLL,
  3.2732+	45,	64,	1,	0x80000fffffffffffLL,
  3.2733+	14,	32,	1,	0x80001fff80001fffLL,
  3.2734+	46,	64,	1,	0x80001fffffffffffLL,
  3.2735+	15,	32,	1,	0x80003fff80003fffLL,
  3.2736+	47,	64,	1,	0x80003fffffffffffLL,
  3.2737+	16,	32,	1,	0x80007fff80007fffLL,
  3.2738+	48,	64,	1,	0x80007fffffffffffLL,
  3.2739+	1,	16,	1,	0x8000800080008000LL,
  3.2740+	17,	32,	1,	0x8000ffff8000ffffLL,
  3.2741+	49,	64,	1,	0x8000ffffffffffffLL,
  3.2742+	2,	16,	1,	0x8001800180018001LL,
  3.2743+	18,	32,	1,	0x8001ffff8001ffffLL,
  3.2744+	50,	64,	1,	0x8001ffffffffffffLL,
  3.2745+	3,	16,	1,	0x8003800380038003LL,
  3.2746+	19,	32,	1,	0x8003ffff8003ffffLL,
  3.2747+	51,	64,	1,	0x8003ffffffffffffLL,
  3.2748+	4,	16,	1,	0x8007800780078007LL,
  3.2749+	20,	32,	1,	0x8007ffff8007ffffLL,
  3.2750+	52,	64,	1,	0x8007ffffffffffffLL,
  3.2751+	5,	16,	1,	0x800f800f800f800fLL,
  3.2752+	21,	32,	1,	0x800fffff800fffffLL,
  3.2753+	53,	64,	1,	0x800fffffffffffffLL,
  3.2754+	6,	16,	1,	0x801f801f801f801fLL,
  3.2755+	22,	32,	1,	0x801fffff801fffffLL,
  3.2756+	54,	64,	1,	0x801fffffffffffffLL,
  3.2757+	7,	16,	1,	0x803f803f803f803fLL,
  3.2758+	23,	32,	1,	0x803fffff803fffffLL,
  3.2759+	55,	64,	1,	0x803fffffffffffffLL,
  3.2760+	8,	16,	1,	0x807f807f807f807fLL,
  3.2761+	24,	32,	1,	0x807fffff807fffffLL,
  3.2762+	56,	64,	1,	0x807fffffffffffffLL,
  3.2763+	1,	8,	1,	0x8080808080808080LL,
  3.2764+	9,	16,	1,	0x80ff80ff80ff80ffLL,
  3.2765+	25,	32,	1,	0x80ffffff80ffffffLL,
  3.2766+	57,	64,	1,	0x80ffffffffffffffLL,
  3.2767+	2,	8,	1,	0x8181818181818181LL,
  3.2768+	10,	16,	1,	0x81ff81ff81ff81ffLL,
  3.2769+	26,	32,	1,	0x81ffffff81ffffffLL,
  3.2770+	58,	64,	1,	0x81ffffffffffffffLL,
  3.2771+	3,	8,	1,	0x8383838383838383LL,
  3.2772+	11,	16,	1,	0x83ff83ff83ff83ffLL,
  3.2773+	27,	32,	1,	0x83ffffff83ffffffLL,
  3.2774+	59,	64,	1,	0x83ffffffffffffffLL,
  3.2775+	4,	8,	1,	0x8787878787878787LL,
  3.2776+	12,	16,	1,	0x87ff87ff87ff87ffLL,
  3.2777+	28,	32,	1,	0x87ffffff87ffffffLL,
  3.2778+	60,	64,	1,	0x87ffffffffffffffLL,
  3.2779+	1,	4,	1,	0x8888888888888888LL,
  3.2780+	5,	8,	1,	0x8f8f8f8f8f8f8f8fLL,
  3.2781+	13,	16,	1,	0x8fff8fff8fff8fffLL,
  3.2782+	29,	32,	1,	0x8fffffff8fffffffLL,
  3.2783+	61,	64,	1,	0x8fffffffffffffffLL,
  3.2784+	2,	4,	1,	0x9999999999999999LL,
  3.2785+	6,	8,	1,	0x9f9f9f9f9f9f9f9fLL,
  3.2786+	14,	16,	1,	0x9fff9fff9fff9fffLL,
  3.2787+	30,	32,	1,	0x9fffffff9fffffffLL,
  3.2788+	62,	64,	1,	0x9fffffffffffffffLL,
  3.2789+	1,	2,	1,	0xaaaaaaaaaaaaaaaaLL,
  3.2790+	3,	4,	1,	0xbbbbbbbbbbbbbbbbLL,
  3.2791+	7,	8,	1,	0xbfbfbfbfbfbfbfbfLL,
  3.2792+	15,	16,	1,	0xbfffbfffbfffbfffLL,
  3.2793+	31,	32,	1,	0xbfffffffbfffffffLL,
  3.2794+	63,	64,	1,	0xbfffffffffffffffLL,
  3.2795+	2,	64,	2,	0xc000000000000000LL,
  3.2796+	3,	64,	2,	0xc000000000000001LL,
  3.2797+	4,	64,	2,	0xc000000000000003LL,
  3.2798+	5,	64,	2,	0xc000000000000007LL,
  3.2799+	6,	64,	2,	0xc00000000000000fLL,
  3.2800+	7,	64,	2,	0xc00000000000001fLL,
  3.2801+	8,	64,	2,	0xc00000000000003fLL,
  3.2802+	9,	64,	2,	0xc00000000000007fLL,
  3.2803+	10,	64,	2,	0xc0000000000000ffLL,
  3.2804+	11,	64,	2,	0xc0000000000001ffLL,
  3.2805+	12,	64,	2,	0xc0000000000003ffLL,
  3.2806+	13,	64,	2,	0xc0000000000007ffLL,
  3.2807+	14,	64,	2,	0xc000000000000fffLL,
  3.2808+	15,	64,	2,	0xc000000000001fffLL,
  3.2809+	16,	64,	2,	0xc000000000003fffLL,
  3.2810+	17,	64,	2,	0xc000000000007fffLL,
  3.2811+	18,	64,	2,	0xc00000000000ffffLL,
  3.2812+	19,	64,	2,	0xc00000000001ffffLL,
  3.2813+	20,	64,	2,	0xc00000000003ffffLL,
  3.2814+	21,	64,	2,	0xc00000000007ffffLL,
  3.2815+	22,	64,	2,	0xc0000000000fffffLL,
  3.2816+	23,	64,	2,	0xc0000000001fffffLL,
  3.2817+	24,	64,	2,	0xc0000000003fffffLL,
  3.2818+	25,	64,	2,	0xc0000000007fffffLL,
  3.2819+	26,	64,	2,	0xc000000000ffffffLL,
  3.2820+	27,	64,	2,	0xc000000001ffffffLL,
  3.2821+	28,	64,	2,	0xc000000003ffffffLL,
  3.2822+	29,	64,	2,	0xc000000007ffffffLL,
  3.2823+	30,	64,	2,	0xc00000000fffffffLL,
  3.2824+	31,	64,	2,	0xc00000001fffffffLL,
  3.2825+	32,	64,	2,	0xc00000003fffffffLL,
  3.2826+	33,	64,	2,	0xc00000007fffffffLL,
  3.2827+	2,	32,	2,	0xc0000000c0000000LL,
  3.2828+	34,	64,	2,	0xc0000000ffffffffLL,
  3.2829+	3,	32,	2,	0xc0000001c0000001LL,
  3.2830+	35,	64,	2,	0xc0000001ffffffffLL,
  3.2831+	4,	32,	2,	0xc0000003c0000003LL,
  3.2832+	36,	64,	2,	0xc0000003ffffffffLL,
  3.2833+	5,	32,	2,	0xc0000007c0000007LL,
  3.2834+	37,	64,	2,	0xc0000007ffffffffLL,
  3.2835+	6,	32,	2,	0xc000000fc000000fLL,
  3.2836+	38,	64,	2,	0xc000000fffffffffLL,
  3.2837+	7,	32,	2,	0xc000001fc000001fLL,
  3.2838+	39,	64,	2,	0xc000001fffffffffLL,
  3.2839+	8,	32,	2,	0xc000003fc000003fLL,
  3.2840+	40,	64,	2,	0xc000003fffffffffLL,
  3.2841+	9,	32,	2,	0xc000007fc000007fLL,
  3.2842+	41,	64,	2,	0xc000007fffffffffLL,
  3.2843+	10,	32,	2,	0xc00000ffc00000ffLL,
  3.2844+	42,	64,	2,	0xc00000ffffffffffLL,
  3.2845+	11,	32,	2,	0xc00001ffc00001ffLL,
  3.2846+	43,	64,	2,	0xc00001ffffffffffLL,
  3.2847+	12,	32,	2,	0xc00003ffc00003ffLL,
  3.2848+	44,	64,	2,	0xc00003ffffffffffLL,
  3.2849+	13,	32,	2,	0xc00007ffc00007ffLL,
  3.2850+	45,	64,	2,	0xc00007ffffffffffLL,
  3.2851+	14,	32,	2,	0xc0000fffc0000fffLL,
  3.2852+	46,	64,	2,	0xc0000fffffffffffLL,
  3.2853+	15,	32,	2,	0xc0001fffc0001fffLL,
  3.2854+	47,	64,	2,	0xc0001fffffffffffLL,
  3.2855+	16,	32,	2,	0xc0003fffc0003fffLL,
  3.2856+	48,	64,	2,	0xc0003fffffffffffLL,
  3.2857+	17,	32,	2,	0xc0007fffc0007fffLL,
  3.2858+	49,	64,	2,	0xc0007fffffffffffLL,
  3.2859+	2,	16,	2,	0xc000c000c000c000LL,
  3.2860+	18,	32,	2,	0xc000ffffc000ffffLL,
  3.2861+	50,	64,	2,	0xc000ffffffffffffLL,
  3.2862+	3,	16,	2,	0xc001c001c001c001LL,
  3.2863+	19,	32,	2,	0xc001ffffc001ffffLL,
  3.2864+	51,	64,	2,	0xc001ffffffffffffLL,
  3.2865+	4,	16,	2,	0xc003c003c003c003LL,
  3.2866+	20,	32,	2,	0xc003ffffc003ffffLL,
  3.2867+	52,	64,	2,	0xc003ffffffffffffLL,
  3.2868+	5,	16,	2,	0xc007c007c007c007LL,
  3.2869+	21,	32,	2,	0xc007ffffc007ffffLL,
  3.2870+	53,	64,	2,	0xc007ffffffffffffLL,
  3.2871+	6,	16,	2,	0xc00fc00fc00fc00fLL,
  3.2872+	22,	32,	2,	0xc00fffffc00fffffLL,
  3.2873+	54,	64,	2,	0xc00fffffffffffffLL,
  3.2874+	7,	16,	2,	0xc01fc01fc01fc01fLL,
  3.2875+	23,	32,	2,	0xc01fffffc01fffffLL,
  3.2876+	55,	64,	2,	0xc01fffffffffffffLL,
  3.2877+	8,	16,	2,	0xc03fc03fc03fc03fLL,
  3.2878+	24,	32,	2,	0xc03fffffc03fffffLL,
  3.2879+	56,	64,	2,	0xc03fffffffffffffLL,
  3.2880+	9,	16,	2,	0xc07fc07fc07fc07fLL,
  3.2881+	25,	32,	2,	0xc07fffffc07fffffLL,
  3.2882+	57,	64,	2,	0xc07fffffffffffffLL,
  3.2883+	2,	8,	2,	0xc0c0c0c0c0c0c0c0LL,
  3.2884+	10,	16,	2,	0xc0ffc0ffc0ffc0ffLL,
  3.2885+	26,	32,	2,	0xc0ffffffc0ffffffLL,
  3.2886+	58,	64,	2,	0xc0ffffffffffffffLL,
  3.2887+	3,	8,	2,	0xc1c1c1c1c1c1c1c1LL,
  3.2888+	11,	16,	2,	0xc1ffc1ffc1ffc1ffLL,
  3.2889+	27,	32,	2,	0xc1ffffffc1ffffffLL,
  3.2890+	59,	64,	2,	0xc1ffffffffffffffLL,
  3.2891+	4,	8,	2,	0xc3c3c3c3c3c3c3c3LL,
  3.2892+	12,	16,	2,	0xc3ffc3ffc3ffc3ffLL,
  3.2893+	28,	32,	2,	0xc3ffffffc3ffffffLL,
  3.2894+	60,	64,	2,	0xc3ffffffffffffffLL,
  3.2895+	5,	8,	2,	0xc7c7c7c7c7c7c7c7LL,
  3.2896+	13,	16,	2,	0xc7ffc7ffc7ffc7ffLL,
  3.2897+	29,	32,	2,	0xc7ffffffc7ffffffLL,
  3.2898+	61,	64,	2,	0xc7ffffffffffffffLL,
  3.2899+	2,	4,	2,	0xccccccccccccccccLL,
  3.2900+	6,	8,	2,	0xcfcfcfcfcfcfcfcfLL,
  3.2901+	14,	16,	2,	0xcfffcfffcfffcfffLL,
  3.2902+	30,	32,	2,	0xcfffffffcfffffffLL,
  3.2903+	62,	64,	2,	0xcfffffffffffffffLL,
  3.2904+	3,	4,	2,	0xddddddddddddddddLL,
  3.2905+	7,	8,	2,	0xdfdfdfdfdfdfdfdfLL,
  3.2906+	15,	16,	2,	0xdfffdfffdfffdfffLL,
  3.2907+	31,	32,	2,	0xdfffffffdfffffffLL,
  3.2908+	63,	64,	2,	0xdfffffffffffffffLL,
  3.2909+	3,	64,	3,	0xe000000000000000LL,
  3.2910+	4,	64,	3,	0xe000000000000001LL,
  3.2911+	5,	64,	3,	0xe000000000000003LL,
  3.2912+	6,	64,	3,	0xe000000000000007LL,
  3.2913+	7,	64,	3,	0xe00000000000000fLL,
  3.2914+	8,	64,	3,	0xe00000000000001fLL,
  3.2915+	9,	64,	3,	0xe00000000000003fLL,
  3.2916+	10,	64,	3,	0xe00000000000007fLL,
  3.2917+	11,	64,	3,	0xe0000000000000ffLL,
  3.2918+	12,	64,	3,	0xe0000000000001ffLL,
  3.2919+	13,	64,	3,	0xe0000000000003ffLL,
  3.2920+	14,	64,	3,	0xe0000000000007ffLL,
  3.2921+	15,	64,	3,	0xe000000000000fffLL,
  3.2922+	16,	64,	3,	0xe000000000001fffLL,
  3.2923+	17,	64,	3,	0xe000000000003fffLL,
  3.2924+	18,	64,	3,	0xe000000000007fffLL,
  3.2925+	19,	64,	3,	0xe00000000000ffffLL,
  3.2926+	20,	64,	3,	0xe00000000001ffffLL,
  3.2927+	21,	64,	3,	0xe00000000003ffffLL,
  3.2928+	22,	64,	3,	0xe00000000007ffffLL,
  3.2929+	23,	64,	3,	0xe0000000000fffffLL,
  3.2930+	24,	64,	3,	0xe0000000001fffffLL,
  3.2931+	25,	64,	3,	0xe0000000003fffffLL,
  3.2932+	26,	64,	3,	0xe0000000007fffffLL,
  3.2933+	27,	64,	3,	0xe000000000ffffffLL,
  3.2934+	28,	64,	3,	0xe000000001ffffffLL,
  3.2935+	29,	64,	3,	0xe000000003ffffffLL,
  3.2936+	30,	64,	3,	0xe000000007ffffffLL,
  3.2937+	31,	64,	3,	0xe00000000fffffffLL,
  3.2938+	32,	64,	3,	0xe00000001fffffffLL,
  3.2939+	33,	64,	3,	0xe00000003fffffffLL,
  3.2940+	34,	64,	3,	0xe00000007fffffffLL,
  3.2941+	3,	32,	3,	0xe0000000e0000000LL,
  3.2942+	35,	64,	3,	0xe0000000ffffffffLL,
  3.2943+	4,	32,	3,	0xe0000001e0000001LL,
  3.2944+	36,	64,	3,	0xe0000001ffffffffLL,
  3.2945+	5,	32,	3,	0xe0000003e0000003LL,
  3.2946+	37,	64,	3,	0xe0000003ffffffffLL,
  3.2947+	6,	32,	3,	0xe0000007e0000007LL,
  3.2948+	38,	64,	3,	0xe0000007ffffffffLL,
  3.2949+	7,	32,	3,	0xe000000fe000000fLL,
  3.2950+	39,	64,	3,	0xe000000fffffffffLL,
  3.2951+	8,	32,	3,	0xe000001fe000001fLL,
  3.2952+	40,	64,	3,	0xe000001fffffffffLL,
  3.2953+	9,	32,	3,	0xe000003fe000003fLL,
  3.2954+	41,	64,	3,	0xe000003fffffffffLL,
  3.2955+	10,	32,	3,	0xe000007fe000007fLL,
  3.2956+	42,	64,	3,	0xe000007fffffffffLL,
  3.2957+	11,	32,	3,	0xe00000ffe00000ffLL,
  3.2958+	43,	64,	3,	0xe00000ffffffffffLL,
  3.2959+	12,	32,	3,	0xe00001ffe00001ffLL,
  3.2960+	44,	64,	3,	0xe00001ffffffffffLL,
  3.2961+	13,	32,	3,	0xe00003ffe00003ffLL,
  3.2962+	45,	64,	3,	0xe00003ffffffffffLL,
  3.2963+	14,	32,	3,	0xe00007ffe00007ffLL,
  3.2964+	46,	64,	3,	0xe00007ffffffffffLL,
  3.2965+	15,	32,	3,	0xe0000fffe0000fffLL,
  3.2966+	47,	64,	3,	0xe0000fffffffffffLL,
  3.2967+	16,	32,	3,	0xe0001fffe0001fffLL,
  3.2968+	48,	64,	3,	0xe0001fffffffffffLL,
  3.2969+	17,	32,	3,	0xe0003fffe0003fffLL,
  3.2970+	49,	64,	3,	0xe0003fffffffffffLL,
  3.2971+	18,	32,	3,	0xe0007fffe0007fffLL,
  3.2972+	50,	64,	3,	0xe0007fffffffffffLL,
  3.2973+	3,	16,	3,	0xe000e000e000e000LL,
  3.2974+	19,	32,	3,	0xe000ffffe000ffffLL,
  3.2975+	51,	64,	3,	0xe000ffffffffffffLL,
  3.2976+	4,	16,	3,	0xe001e001e001e001LL,
  3.2977+	20,	32,	3,	0xe001ffffe001ffffLL,
  3.2978+	52,	64,	3,	0xe001ffffffffffffLL,
  3.2979+	5,	16,	3,	0xe003e003e003e003LL,
  3.2980+	21,	32,	3,	0xe003ffffe003ffffLL,
  3.2981+	53,	64,	3,	0xe003ffffffffffffLL,
  3.2982+	6,	16,	3,	0xe007e007e007e007LL,
  3.2983+	22,	32,	3,	0xe007ffffe007ffffLL,
  3.2984+	54,	64,	3,	0xe007ffffffffffffLL,
  3.2985+	7,	16,	3,	0xe00fe00fe00fe00fLL,
  3.2986+	23,	32,	3,	0xe00fffffe00fffffLL,
  3.2987+	55,	64,	3,	0xe00fffffffffffffLL,
  3.2988+	8,	16,	3,	0xe01fe01fe01fe01fLL,
  3.2989+	24,	32,	3,	0xe01fffffe01fffffLL,
  3.2990+	56,	64,	3,	0xe01fffffffffffffLL,
  3.2991+	9,	16,	3,	0xe03fe03fe03fe03fLL,
  3.2992+	25,	32,	3,	0xe03fffffe03fffffLL,
  3.2993+	57,	64,	3,	0xe03fffffffffffffLL,
  3.2994+	10,	16,	3,	0xe07fe07fe07fe07fLL,
  3.2995+	26,	32,	3,	0xe07fffffe07fffffLL,
  3.2996+	58,	64,	3,	0xe07fffffffffffffLL,
  3.2997+	3,	8,	3,	0xe0e0e0e0e0e0e0e0LL,
  3.2998+	11,	16,	3,	0xe0ffe0ffe0ffe0ffLL,
  3.2999+	27,	32,	3,	0xe0ffffffe0ffffffLL,
  3.3000+	59,	64,	3,	0xe0ffffffffffffffLL,
  3.3001+	4,	8,	3,	0xe1e1e1e1e1e1e1e1LL,
  3.3002+	12,	16,	3,	0xe1ffe1ffe1ffe1ffLL,
  3.3003+	28,	32,	3,	0xe1ffffffe1ffffffLL,
  3.3004+	60,	64,	3,	0xe1ffffffffffffffLL,
  3.3005+	5,	8,	3,	0xe3e3e3e3e3e3e3e3LL,
  3.3006+	13,	16,	3,	0xe3ffe3ffe3ffe3ffLL,
  3.3007+	29,	32,	3,	0xe3ffffffe3ffffffLL,
  3.3008+	61,	64,	3,	0xe3ffffffffffffffLL,
  3.3009+	6,	8,	3,	0xe7e7e7e7e7e7e7e7LL,
  3.3010+	14,	16,	3,	0xe7ffe7ffe7ffe7ffLL,
  3.3011+	30,	32,	3,	0xe7ffffffe7ffffffLL,
  3.3012+	62,	64,	3,	0xe7ffffffffffffffLL,
  3.3013+	3,	4,	3,	0xeeeeeeeeeeeeeeeeLL,
  3.3014+	7,	8,	3,	0xefefefefefefefefLL,
  3.3015+	15,	16,	3,	0xefffefffefffefffLL,
  3.3016+	31,	32,	3,	0xefffffffefffffffLL,
  3.3017+	63,	64,	3,	0xefffffffffffffffLL,
  3.3018+	4,	64,	4,	0xf000000000000000LL,
  3.3019+	5,	64,	4,	0xf000000000000001LL,
  3.3020+	6,	64,	4,	0xf000000000000003LL,
  3.3021+	7,	64,	4,	0xf000000000000007LL,
  3.3022+	8,	64,	4,	0xf00000000000000fLL,
  3.3023+	9,	64,	4,	0xf00000000000001fLL,
  3.3024+	10,	64,	4,	0xf00000000000003fLL,
  3.3025+	11,	64,	4,	0xf00000000000007fLL,
  3.3026+	12,	64,	4,	0xf0000000000000ffLL,
  3.3027+	13,	64,	4,	0xf0000000000001ffLL,
  3.3028+	14,	64,	4,	0xf0000000000003ffLL,
  3.3029+	15,	64,	4,	0xf0000000000007ffLL,
  3.3030+	16,	64,	4,	0xf000000000000fffLL,
  3.3031+	17,	64,	4,	0xf000000000001fffLL,
  3.3032+	18,	64,	4,	0xf000000000003fffLL,
  3.3033+	19,	64,	4,	0xf000000000007fffLL,
  3.3034+	20,	64,	4,	0xf00000000000ffffLL,
  3.3035+	21,	64,	4,	0xf00000000001ffffLL,
  3.3036+	22,	64,	4,	0xf00000000003ffffLL,
  3.3037+	23,	64,	4,	0xf00000000007ffffLL,
  3.3038+	24,	64,	4,	0xf0000000000fffffLL,
  3.3039+	25,	64,	4,	0xf0000000001fffffLL,
  3.3040+	26,	64,	4,	0xf0000000003fffffLL,
  3.3041+	27,	64,	4,	0xf0000000007fffffLL,
  3.3042+	28,	64,	4,	0xf000000000ffffffLL,
  3.3043+	29,	64,	4,	0xf000000001ffffffLL,
  3.3044+	30,	64,	4,	0xf000000003ffffffLL,
  3.3045+	31,	64,	4,	0xf000000007ffffffLL,
  3.3046+	32,	64,	4,	0xf00000000fffffffLL,
  3.3047+	33,	64,	4,	0xf00000001fffffffLL,
  3.3048+	34,	64,	4,	0xf00000003fffffffLL,
  3.3049+	35,	64,	4,	0xf00000007fffffffLL,
  3.3050+	4,	32,	4,	0xf0000000f0000000LL,
  3.3051+	36,	64,	4,	0xf0000000ffffffffLL,
  3.3052+	5,	32,	4,	0xf0000001f0000001LL,
  3.3053+	37,	64,	4,	0xf0000001ffffffffLL,
  3.3054+	6,	32,	4,	0xf0000003f0000003LL,
  3.3055+	38,	64,	4,	0xf0000003ffffffffLL,
  3.3056+	7,	32,	4,	0xf0000007f0000007LL,
  3.3057+	39,	64,	4,	0xf0000007ffffffffLL,
  3.3058+	8,	32,	4,	0xf000000ff000000fLL,
  3.3059+	40,	64,	4,	0xf000000fffffffffLL,
  3.3060+	9,	32,	4,	0xf000001ff000001fLL,
  3.3061+	41,	64,	4,	0xf000001fffffffffLL,
  3.3062+	10,	32,	4,	0xf000003ff000003fLL,
  3.3063+	42,	64,	4,	0xf000003fffffffffLL,
  3.3064+	11,	32,	4,	0xf000007ff000007fLL,
  3.3065+	43,	64,	4,	0xf000007fffffffffLL,
  3.3066+	12,	32,	4,	0xf00000fff00000ffLL,
  3.3067+	44,	64,	4,	0xf00000ffffffffffLL,
  3.3068+	13,	32,	4,	0xf00001fff00001ffLL,
  3.3069+	45,	64,	4,	0xf00001ffffffffffLL,
  3.3070+	14,	32,	4,	0xf00003fff00003ffLL,
  3.3071+	46,	64,	4,	0xf00003ffffffffffLL,
  3.3072+	15,	32,	4,	0xf00007fff00007ffLL,
  3.3073+	47,	64,	4,	0xf00007ffffffffffLL,
  3.3074+	16,	32,	4,	0xf0000ffff0000fffLL,
  3.3075+	48,	64,	4,	0xf0000fffffffffffLL,
  3.3076+	17,	32,	4,	0xf0001ffff0001fffLL,
  3.3077+	49,	64,	4,	0xf0001fffffffffffLL,
  3.3078+	18,	32,	4,	0xf0003ffff0003fffLL,
  3.3079+	50,	64,	4,	0xf0003fffffffffffLL,
  3.3080+	19,	32,	4,	0xf0007ffff0007fffLL,
  3.3081+	51,	64,	4,	0xf0007fffffffffffLL,
  3.3082+	4,	16,	4,	0xf000f000f000f000LL,
  3.3083+	20,	32,	4,	0xf000fffff000ffffLL,
  3.3084+	52,	64,	4,	0xf000ffffffffffffLL,
  3.3085+	5,	16,	4,	0xf001f001f001f001LL,
  3.3086+	21,	32,	4,	0xf001fffff001ffffLL,
  3.3087+	53,	64,	4,	0xf001ffffffffffffLL,
  3.3088+	6,	16,	4,	0xf003f003f003f003LL,
  3.3089+	22,	32,	4,	0xf003fffff003ffffLL,
  3.3090+	54,	64,	4,	0xf003ffffffffffffLL,
  3.3091+	7,	16,	4,	0xf007f007f007f007LL,
  3.3092+	23,	32,	4,	0xf007fffff007ffffLL,
  3.3093+	55,	64,	4,	0xf007ffffffffffffLL,
  3.3094+	8,	16,	4,	0xf00ff00ff00ff00fLL,
  3.3095+	24,	32,	4,	0xf00ffffff00fffffLL,
  3.3096+	56,	64,	4,	0xf00fffffffffffffLL,
  3.3097+	9,	16,	4,	0xf01ff01ff01ff01fLL,
  3.3098+	25,	32,	4,	0xf01ffffff01fffffLL,
  3.3099+	57,	64,	4,	0xf01fffffffffffffLL,
  3.3100+	10,	16,	4,	0xf03ff03ff03ff03fLL,
  3.3101+	26,	32,	4,	0xf03ffffff03fffffLL,
  3.3102+	58,	64,	4,	0xf03fffffffffffffLL,
  3.3103+	11,	16,	4,	0xf07ff07ff07ff07fLL,
  3.3104+	27,	32,	4,	0xf07ffffff07fffffLL,
  3.3105+	59,	64,	4,	0xf07fffffffffffffLL,
  3.3106+	4,	8,	4,	0xf0f0f0f0f0f0f0f0LL,
  3.3107+	12,	16,	4,	0xf0fff0fff0fff0ffLL,
  3.3108+	28,	32,	4,	0xf0fffffff0ffffffLL,
  3.3109+	60,	64,	4,	0xf0ffffffffffffffLL,
  3.3110+	5,	8,	4,	0xf1f1f1f1f1f1f1f1LL,
  3.3111+	13,	16,	4,	0xf1fff1fff1fff1ffLL,
  3.3112+	29,	32,	4,	0xf1fffffff1ffffffLL,
  3.3113+	61,	64,	4,	0xf1ffffffffffffffLL,
  3.3114+	6,	8,	4,	0xf3f3f3f3f3f3f3f3LL,
  3.3115+	14,	16,	4,	0xf3fff3fff3fff3ffLL,
  3.3116+	30,	32,	4,	0xf3fffffff3ffffffLL,
  3.3117+	62,	64,	4,	0xf3ffffffffffffffLL,
  3.3118+	7,	8,	4,	0xf7f7f7f7f7f7f7f7LL,
  3.3119+	15,	16,	4,	0xf7fff7fff7fff7ffLL,
  3.3120+	31,	32,	4,	0xf7fffffff7ffffffLL,
  3.3121+	63,	64,	4,	0xf7ffffffffffffffLL,
  3.3122+	5,	64,	5,	0xf800000000000000LL,
  3.3123+	6,	64,	5,	0xf800000000000001LL,
  3.3124+	7,	64,	5,	0xf800000000000003LL,
  3.3125+	8,	64,	5,	0xf800000000000007LL,
  3.3126+	9,	64,	5,	0xf80000000000000fLL,
  3.3127+	10,	64,	5,	0xf80000000000001fLL,
  3.3128+	11,	64,	5,	0xf80000000000003fLL,
  3.3129+	12,	64,	5,	0xf80000000000007fLL,
  3.3130+	13,	64,	5,	0xf8000000000000ffLL,
  3.3131+	14,	64,	5,	0xf8000000000001ffLL,
  3.3132+	15,	64,	5,	0xf8000000000003ffLL,
  3.3133+	16,	64,	5,	0xf8000000000007ffLL,
  3.3134+	17,	64,	5,	0xf800000000000fffLL,
  3.3135+	18,	64,	5,	0xf800000000001fffLL,
  3.3136+	19,	64,	5,	0xf800000000003fffLL,
  3.3137+	20,	64,	5,	0xf800000000007fffLL,
  3.3138+	21,	64,	5,	0xf80000000000ffffLL,
  3.3139+	22,	64,	5,	0xf80000000001ffffLL,
  3.3140+	23,	64,	5,	0xf80000000003ffffLL,
  3.3141+	24,	64,	5,	0xf80000000007ffffLL,
  3.3142+	25,	64,	5,	0xf8000000000fffffLL,
  3.3143+	26,	64,	5,	0xf8000000001fffffLL,
  3.3144+	27,	64,	5,	0xf8000000003fffffLL,
  3.3145+	28,	64,	5,	0xf8000000007fffffLL,
  3.3146+	29,	64,	5,	0xf800000000ffffffLL,
  3.3147+	30,	64,	5,	0xf800000001ffffffLL,
  3.3148+	31,	64,	5,	0xf800000003ffffffLL,
  3.3149+	32,	64,	5,	0xf800000007ffffffLL,
  3.3150+	33,	64,	5,	0xf80000000fffffffLL,
  3.3151+	34,	64,	5,	0xf80000001fffffffLL,
  3.3152+	35,	64,	5,	0xf80000003fffffffLL,
  3.3153+	36,	64,	5,	0xf80000007fffffffLL,
  3.3154+	5,	32,	5,	0xf8000000f8000000LL,
  3.3155+	37,	64,	5,	0xf8000000ffffffffLL,
  3.3156+	6,	32,	5,	0xf8000001f8000001LL,
  3.3157+	38,	64,	5,	0xf8000001ffffffffLL,
  3.3158+	7,	32,	5,	0xf8000003f8000003LL,
  3.3159+	39,	64,	5,	0xf8000003ffffffffLL,
  3.3160+	8,	32,	5,	0xf8000007f8000007LL,
  3.3161+	40,	64,	5,	0xf8000007ffffffffLL,
  3.3162+	9,	32,	5,	0xf800000ff800000fLL,
  3.3163+	41,	64,	5,	0xf800000fffffffffLL,
  3.3164+	10,	32,	5,	0xf800001ff800001fLL,
  3.3165+	42,	64,	5,	0xf800001fffffffffLL,
  3.3166+	11,	32,	5,	0xf800003ff800003fLL,
  3.3167+	43,	64,	5,	0xf800003fffffffffLL,
  3.3168+	12,	32,	5,	0xf800007ff800007fLL,
  3.3169+	44,	64,	5,	0xf800007fffffffffLL,
  3.3170+	13,	32,	5,	0xf80000fff80000ffLL,
  3.3171+	45,	64,	5,	0xf80000ffffffffffLL,
  3.3172+	14,	32,	5,	0xf80001fff80001ffLL,
  3.3173+	46,	64,	5,	0xf80001ffffffffffLL,
  3.3174+	15,	32,	5,	0xf80003fff80003ffLL,
  3.3175+	47,	64,	5,	0xf80003ffffffffffLL,
  3.3176+	16,	32,	5,	0xf80007fff80007ffLL,
  3.3177+	48,	64,	5,	0xf80007ffffffffffLL,
  3.3178+	17,	32,	5,	0xf8000ffff8000fffLL,
  3.3179+	49,	64,	5,	0xf8000fffffffffffLL,
  3.3180+	18,	32,	5,	0xf8001ffff8001fffLL,
  3.3181+	50,	64,	5,	0xf8001fffffffffffLL,
  3.3182+	19,	32,	5,	0xf8003ffff8003fffLL,
  3.3183+	51,	64,	5,	0xf8003fffffffffffLL,
  3.3184+	20,	32,	5,	0xf8007ffff8007fffLL,
  3.3185+	52,	64,	5,	0xf8007fffffffffffLL,
  3.3186+	5,	16,	5,	0xf800f800f800f800LL,
  3.3187+	21,	32,	5,	0xf800fffff800ffffLL,
  3.3188+	53,	64,	5,	0xf800ffffffffffffLL,
  3.3189+	6,	16,	5,	0xf801f801f801f801LL,
  3.3190+	22,	32,	5,	0xf801fffff801ffffLL,
  3.3191+	54,	64,	5,	0xf801ffffffffffffLL,
  3.3192+	7,	16,	5,	0xf803f803f803f803LL,
  3.3193+	23,	32,	5,	0xf803fffff803ffffLL,
  3.3194+	55,	64,	5,	0xf803ffffffffffffLL,
  3.3195+	8,	16,	5,	0xf807f807f807f807LL,
  3.3196+	24,	32,	5,	0xf807fffff807ffffLL,
  3.3197+	56,	64,	5,	0xf807ffffffffffffLL,
  3.3198+	9,	16,	5,	0xf80ff80ff80ff80fLL,
  3.3199+	25,	32,	5,	0xf80ffffff80fffffLL,
  3.3200+	57,	64,	5,	0xf80fffffffffffffLL,
  3.3201+	10,	16,	5,	0xf81ff81ff81ff81fLL,
  3.3202+	26,	32,	5,	0xf81ffffff81fffffLL,
  3.3203+	58,	64,	5,	0xf81fffffffffffffLL,
  3.3204+	11,	16,	5,	0xf83ff83ff83ff83fLL,
  3.3205+	27,	32,	5,	0xf83ffffff83fffffLL,
  3.3206+	59,	64,	5,	0xf83fffffffffffffLL,
  3.3207+	12,	16,	5,	0xf87ff87ff87ff87fLL,
  3.3208+	28,	32,	5,	0xf87ffffff87fffffLL,
  3.3209+	60,	64,	5,	0xf87fffffffffffffLL,
  3.3210+	5,	8,	5,	0xf8f8f8f8f8f8f8f8LL,
  3.3211+	13,	16,	5,	0xf8fff8fff8fff8ffLL,
  3.3212+	29,	32,	5,	0xf8fffffff8ffffffLL,
  3.3213+	61,	64,	5,	0xf8ffffffffffffffLL,
  3.3214+	6,	8,	5,	0xf9f9f9f9f9f9f9f9LL,
  3.3215+	14,	16,	5,	0xf9fff9fff9fff9ffLL,
  3.3216+	30,	32,	5,	0xf9fffffff9ffffffLL,
  3.3217+	62,	64,	5,	0xf9ffffffffffffffLL,
  3.3218+	7,	8,	5,	0xfbfbfbfbfbfbfbfbLL,
  3.3219+	15,	16,	5,	0xfbfffbfffbfffbffLL,
  3.3220+	31,	32,	5,	0xfbfffffffbffffffLL,
  3.3221+	63,	64,	5,	0xfbffffffffffffffLL,
  3.3222+	6,	64,	6,	0xfc00000000000000LL,
  3.3223+	7,	64,	6,	0xfc00000000000001LL,
  3.3224+	8,	64,	6,	0xfc00000000000003LL,
  3.3225+	9,	64,	6,	0xfc00000000000007LL,
  3.3226+	10,	64,	6,	0xfc0000000000000fLL,
  3.3227+	11,	64,	6,	0xfc0000000000001fLL,
  3.3228+	12,	64,	6,	0xfc0000000000003fLL,
  3.3229+	13,	64,	6,	0xfc0000000000007fLL,
  3.3230+	14,	64,	6,	0xfc000000000000ffLL,
  3.3231+	15,	64,	6,	0xfc000000000001ffLL,
  3.3232+	16,	64,	6,	0xfc000000000003ffLL,
  3.3233+	17,	64,	6,	0xfc000000000007ffLL,
  3.3234+	18,	64,	6,	0xfc00000000000fffLL,
  3.3235+	19,	64,	6,	0xfc00000000001fffLL,
  3.3236+	20,	64,	6,	0xfc00000000003fffLL,
  3.3237+	21,	64,	6,	0xfc00000000007fffLL,
  3.3238+	22,	64,	6,	0xfc0000000000ffffLL,
  3.3239+	23,	64,	6,	0xfc0000000001ffffLL,
  3.3240+	24,	64,	6,	0xfc0000000003ffffLL,
  3.3241+	25,	64,	6,	0xfc0000000007ffffLL,
  3.3242+	26,	64,	6,	0xfc000000000fffffLL,
  3.3243+	27,	64,	6,	0xfc000000001fffffLL,
  3.3244+	28,	64,	6,	0xfc000000003fffffLL,
  3.3245+	29,	64,	6,	0xfc000000007fffffLL,
  3.3246+	30,	64,	6,	0xfc00000000ffffffLL,
  3.3247+	31,	64,	6,	0xfc00000001ffffffLL,
  3.3248+	32,	64,	6,	0xfc00000003ffffffLL,
  3.3249+	33,	64,	6,	0xfc00000007ffffffLL,
  3.3250+	34,	64,	6,	0xfc0000000fffffffLL,
  3.3251+	35,	64,	6,	0xfc0000001fffffffLL,
  3.3252+	36,	64,	6,	0xfc0000003fffffffLL,
  3.3253+	37,	64,	6,	0xfc0000007fffffffLL,
  3.3254+	6,	32,	6,	0xfc000000fc000000LL,
  3.3255+	38,	64,	6,	0xfc000000ffffffffLL,
  3.3256+	7,	32,	6,	0xfc000001fc000001LL,
  3.3257+	39,	64,	6,	0xfc000001ffffffffLL,
  3.3258+	8,	32,	6,	0xfc000003fc000003LL,
  3.3259+	40,	64,	6,	0xfc000003ffffffffLL,
  3.3260+	9,	32,	6,	0xfc000007fc000007LL,
  3.3261+	41,	64,	6,	0xfc000007ffffffffLL,
  3.3262+	10,	32,	6,	0xfc00000ffc00000fLL,
  3.3263+	42,	64,	6,	0xfc00000fffffffffLL,
  3.3264+	11,	32,	6,	0xfc00001ffc00001fLL,
  3.3265+	43,	64,	6,	0xfc00001fffffffffLL,
  3.3266+	12,	32,	6,	0xfc00003ffc00003fLL,
  3.3267+	44,	64,	6,	0xfc00003fffffffffLL,
  3.3268+	13,	32,	6,	0xfc00007ffc00007fLL,
  3.3269+	45,	64,	6,	0xfc00007fffffffffLL,
  3.3270+	14,	32,	6,	0xfc0000fffc0000ffLL,
  3.3271+	46,	64,	6,	0xfc0000ffffffffffLL,
  3.3272+	15,	32,	6,	0xfc0001fffc0001ffLL,
  3.3273+	47,	64,	6,	0xfc0001ffffffffffLL,
  3.3274+	16,	32,	6,	0xfc0003fffc0003ffLL,
  3.3275+	48,	64,	6,	0xfc0003ffffffffffLL,
  3.3276+	17,	32,	6,	0xfc0007fffc0007ffLL,
  3.3277+	49,	64,	6,	0xfc0007ffffffffffLL,
  3.3278+	18,	32,	6,	0xfc000ffffc000fffLL,
  3.3279+	50,	64,	6,	0xfc000fffffffffffLL,
  3.3280+	19,	32,	6,	0xfc001ffffc001fffLL,
  3.3281+	51,	64,	6,	0xfc001fffffffffffLL,
  3.3282+	20,	32,	6,	0xfc003ffffc003fffLL,
  3.3283+	52,	64,	6,	0xfc003fffffffffffLL,
  3.3284+	21,	32,	6,	0xfc007ffffc007fffLL,
  3.3285+	53,	64,	6,	0xfc007fffffffffffLL,
  3.3286+	6,	16,	6,	0xfc00fc00fc00fc00LL,
  3.3287+	22,	32,	6,	0xfc00fffffc00ffffLL,
  3.3288+	54,	64,	6,	0xfc00ffffffffffffLL,
  3.3289+	7,	16,	6,	0xfc01fc01fc01fc01LL,
  3.3290+	23,	32,	6,	0xfc01fffffc01ffffLL,
  3.3291+	55,	64,	6,	0xfc01ffffffffffffLL,
  3.3292+	8,	16,	6,	0xfc03fc03fc03fc03LL,
  3.3293+	24,	32,	6,	0xfc03fffffc03ffffLL,
  3.3294+	56,	64,	6,	0xfc03ffffffffffffLL,
  3.3295+	9,	16,	6,	0xfc07fc07fc07fc07LL,
  3.3296+	25,	32,	6,	0xfc07fffffc07ffffLL,
  3.3297+	57,	64,	6,	0xfc07ffffffffffffLL,
  3.3298+	10,	16,	6,	0xfc0ffc0ffc0ffc0fLL,
  3.3299+	26,	32,	6,	0xfc0ffffffc0fffffLL,
  3.3300+	58,	64,	6,	0xfc0fffffffffffffLL,
  3.3301+	11,	16,	6,	0xfc1ffc1ffc1ffc1fLL,
  3.3302+	27,	32,	6,	0xfc1ffffffc1fffffLL,
  3.3303+	59,	64,	6,	0xfc1fffffffffffffLL,
  3.3304+	12,	16,	6,	0xfc3ffc3ffc3ffc3fLL,
  3.3305+	28,	32,	6,	0xfc3ffffffc3fffffLL,
  3.3306+	60,	64,	6,	0xfc3fffffffffffffLL,
  3.3307+	13,	16,	6,	0xfc7ffc7ffc7ffc7fLL,
  3.3308+	29,	32,	6,	0xfc7ffffffc7fffffLL,
  3.3309+	61,	64,	6,	0xfc7fffffffffffffLL,
  3.3310+	6,	8,	6,	0xfcfcfcfcfcfcfcfcLL,
  3.3311+	14,	16,	6,	0xfcfffcfffcfffcffLL,
  3.3312+	30,	32,	6,	0xfcfffffffcffffffLL,
  3.3313+	62,	64,	6,	0xfcffffffffffffffLL,
  3.3314+	7,	8,	6,	0xfdfdfdfdfdfdfdfdLL,
  3.3315+	15,	16,	6,	0xfdfffdfffdfffdffLL,
  3.3316+	31,	32,	6,	0xfdfffffffdffffffLL,
  3.3317+	63,	64,	6,	0xfdffffffffffffffLL,
  3.3318+	7,	64,	7,	0xfe00000000000000LL,
  3.3319+	8,	64,	7,	0xfe00000000000001LL,
  3.3320+	9,	64,	7,	0xfe00000000000003LL,
  3.3321+	10,	64,	7,	0xfe00000000000007LL,
  3.3322+	11,	64,	7,	0xfe0000000000000fLL,
  3.3323+	12,	64,	7,	0xfe0000000000001fLL,
  3.3324+	13,	64,	7,	0xfe0000000000003fLL,
  3.3325+	14,	64,	7,	0xfe0000000000007fLL,
  3.3326+	15,	64,	7,	0xfe000000000000ffLL,
  3.3327+	16,	64,	7,	0xfe000000000001ffLL,
  3.3328+	17,	64,	7,	0xfe000000000003ffLL,
  3.3329+	18,	64,	7,	0xfe000000000007ffLL,
  3.3330+	19,	64,	7,	0xfe00000000000fffLL,
  3.3331+	20,	64,	7,	0xfe00000000001fffLL,
  3.3332+	21,	64,	7,	0xfe00000000003fffLL,
  3.3333+	22,	64,	7,	0xfe00000000007fffLL,
  3.3334+	23,	64,	7,	0xfe0000000000ffffLL,
  3.3335+	24,	64,	7,	0xfe0000000001ffffLL,
  3.3336+	25,	64,	7,	0xfe0000000003ffffLL,
  3.3337+	26,	64,	7,	0xfe0000000007ffffLL,
  3.3338+	27,	64,	7,	0xfe000000000fffffLL,
  3.3339+	28,	64,	7,	0xfe000000001fffffLL,
  3.3340+	29,	64,	7,	0xfe000000003fffffLL,
  3.3341+	30,	64,	7,	0xfe000000007fffffLL,
  3.3342+	31,	64,	7,	0xfe00000000ffffffLL,
  3.3343+	32,	64,	7,	0xfe00000001ffffffLL,
  3.3344+	33,	64,	7,	0xfe00000003ffffffLL,
  3.3345+	34,	64,	7,	0xfe00000007ffffffLL,
  3.3346+	35,	64,	7,	0xfe0000000fffffffLL,
  3.3347+	36,	64,	7,	0xfe0000001fffffffLL,
  3.3348+	37,	64,	7,	0xfe0000003fffffffLL,
  3.3349+	38,	64,	7,	0xfe0000007fffffffLL,
  3.3350+	7,	32,	7,	0xfe000000fe000000LL,
  3.3351+	39,	64,	7,	0xfe000000ffffffffLL,
  3.3352+	8,	32,	7,	0xfe000001fe000001LL,
  3.3353+	40,	64,	7,	0xfe000001ffffffffLL,
  3.3354+	9,	32,	7,	0xfe000003fe000003LL,
  3.3355+	41,	64,	7,	0xfe000003ffffffffLL,
  3.3356+	10,	32,	7,	0xfe000007fe000007LL,
  3.3357+	42,	64,	7,	0xfe000007ffffffffLL,
  3.3358+	11,	32,	7,	0xfe00000ffe00000fLL,
  3.3359+	43,	64,	7,	0xfe00000fffffffffLL,
  3.3360+	12,	32,	7,	0xfe00001ffe00001fLL,
  3.3361+	44,	64,	7,	0xfe00001fffffffffLL,
  3.3362+	13,	32,	7,	0xfe00003ffe00003fLL,
  3.3363+	45,	64,	7,	0xfe00003fffffffffLL,
  3.3364+	14,	32,	7,	0xfe00007ffe00007fLL,
  3.3365+	46,	64,	7,	0xfe00007fffffffffLL,
  3.3366+	15,	32,	7,	0xfe0000fffe0000ffLL,
  3.3367+	47,	64,	7,	0xfe0000ffffffffffLL,
  3.3368+	16,	32,	7,	0xfe0001fffe0001ffLL,
  3.3369+	48,	64,	7,	0xfe0001ffffffffffLL,
  3.3370+	17,	32,	7,	0xfe0003fffe0003ffLL,
  3.3371+	49,	64,	7,	0xfe0003ffffffffffLL,
  3.3372+	18,	32,	7,	0xfe0007fffe0007ffLL,
  3.3373+	50,	64,	7,	0xfe0007ffffffffffLL,
  3.3374+	19,	32,	7,	0xfe000ffffe000fffLL,
  3.3375+	51,	64,	7,	0xfe000fffffffffffLL,
  3.3376+	20,	32,	7,	0xfe001ffffe001fffLL,
  3.3377+	52,	64,	7,	0xfe001fffffffffffLL,
  3.3378+	21,	32,	7,	0xfe003ffffe003fffLL,
  3.3379+	53,	64,	7,	0xfe003fffffffffffLL,
  3.3380+	22,	32,	7,	0xfe007ffffe007fffLL,
  3.3381+	54,	64,	7,	0xfe007fffffffffffLL,
  3.3382+	7,	16,	7,	0xfe00fe00fe00fe00LL,
  3.3383+	23,	32,	7,	0xfe00fffffe00ffffLL,
  3.3384+	55,	64,	7,	0xfe00ffffffffffffLL,
  3.3385+	8,	16,	7,	0xfe01fe01fe01fe01LL,
  3.3386+	24,	32,	7,	0xfe01fffffe01ffffLL,
  3.3387+	56,	64,	7,	0xfe01ffffffffffffLL,
  3.3388+	9,	16,	7,	0xfe03fe03fe03fe03LL,
  3.3389+	25,	32,	7,	0xfe03fffffe03ffffLL,
  3.3390+	57,	64,	7,	0xfe03ffffffffffffLL,
  3.3391+	10,	16,	7,	0xfe07fe07fe07fe07LL,
  3.3392+	26,	32,	7,	0xfe07fffffe07ffffLL,
  3.3393+	58,	64,	7,	0xfe07ffffffffffffLL,
  3.3394+	11,	16,	7,	0xfe0ffe0ffe0ffe0fLL,
  3.3395+	27,	32,	7,	0xfe0ffffffe0fffffLL,
  3.3396+	59,	64,	7,	0xfe0fffffffffffffLL,
  3.3397+	12,	16,	7,	0xfe1ffe1ffe1ffe1fLL,
  3.3398+	28,	32,	7,	0xfe1ffffffe1fffffLL,
  3.3399+	60,	64,	7,	0xfe1fffffffffffffLL,
  3.3400+	13,	16,	7,	0xfe3ffe3ffe3ffe3fLL,
  3.3401+	29,	32,	7,	0xfe3ffffffe3fffffLL,
  3.3402+	61,	64,	7,	0xfe3fffffffffffffLL,
  3.3403+	14,	16,	7,	0xfe7ffe7ffe7ffe7fLL,
  3.3404+	30,	32,	7,	0xfe7ffffffe7fffffLL,
  3.3405+	62,	64,	7,	0xfe7fffffffffffffLL,
  3.3406+	7,	8,	7,	0xfefefefefefefefeLL,
  3.3407+	15,	16,	7,	0xfefffefffefffeffLL,
  3.3408+	31,	32,	7,	0xfefffffffeffffffLL,
  3.3409+	63,	64,	7,	0xfeffffffffffffffLL,
  3.3410+	8,	64,	8,	0xff00000000000000LL,
  3.3411+	9,	64,	8,	0xff00000000000001LL,
  3.3412+	10,	64,	8,	0xff00000000000003LL,
  3.3413+	11,	64,	8,	0xff00000000000007LL,
  3.3414+	12,	64,	8,	0xff0000000000000fLL,
  3.3415+	13,	64,	8,	0xff0000000000001fLL,
  3.3416+	14,	64,	8,	0xff0000000000003fLL,
  3.3417+	15,	64,	8,	0xff0000000000007fLL,
  3.3418+	16,	64,	8,	0xff000000000000ffLL,
  3.3419+	17,	64,	8,	0xff000000000001ffLL,
  3.3420+	18,	64,	8,	0xff000000000003ffLL,
  3.3421+	19,	64,	8,	0xff000000000007ffLL,
  3.3422+	20,	64,	8,	0xff00000000000fffLL,
  3.3423+	21,	64,	8,	0xff00000000001fffLL,
  3.3424+	22,	64,	8,	0xff00000000003fffLL,
  3.3425+	23,	64,	8,	0xff00000000007fffLL,
  3.3426+	24,	64,	8,	0xff0000000000ffffLL,
  3.3427+	25,	64,	8,	0xff0000000001ffffLL,
  3.3428+	26,	64,	8,	0xff0000000003ffffLL,
  3.3429+	27,	64,	8,	0xff0000000007ffffLL,
  3.3430+	28,	64,	8,	0xff000000000fffffLL,
  3.3431+	29,	64,	8,	0xff000000001fffffLL,
  3.3432+	30,	64,	8,	0xff000000003fffffLL,
  3.3433+	31,	64,	8,	0xff000000007fffffLL,
  3.3434+	32,	64,	8,	0xff00000000ffffffLL,
  3.3435+	33,	64,	8,	0xff00000001ffffffLL,
  3.3436+	34,	64,	8,	0xff00000003ffffffLL,
  3.3437+	35,	64,	8,	0xff00000007ffffffLL,
  3.3438+	36,	64,	8,	0xff0000000fffffffLL,
  3.3439+	37,	64,	8,	0xff0000001fffffffLL,
  3.3440+	38,	64,	8,	0xff0000003fffffffLL,
  3.3441+	39,	64,	8,	0xff0000007fffffffLL,
  3.3442+	8,	32,	8,	0xff000000ff000000LL,
  3.3443+	40,	64,	8,	0xff000000ffffffffLL,
  3.3444+	9,	32,	8,	0xff000001ff000001LL,
  3.3445+	41,	64,	8,	0xff000001ffffffffLL,
  3.3446+	10,	32,	8,	0xff000003ff000003LL,
  3.3447+	42,	64,	8,	0xff000003ffffffffLL,
  3.3448+	11,	32,	8,	0xff000007ff000007LL,
  3.3449+	43,	64,	8,	0xff000007ffffffffLL,
  3.3450+	12,	32,	8,	0xff00000fff00000fLL,
  3.3451+	44,	64,	8,	0xff00000fffffffffLL,
  3.3452+	13,	32,	8,	0xff00001fff00001fLL,
  3.3453+	45,	64,	8,	0xff00001fffffffffLL,
  3.3454+	14,	32,	8,	0xff00003fff00003fLL,
  3.3455+	46,	64,	8,	0xff00003fffffffffLL,
  3.3456+	15,	32,	8,	0xff00007fff00007fLL,
  3.3457+	47,	64,	8,	0xff00007fffffffffLL,
  3.3458+	16,	32,	8,	0xff0000ffff0000ffLL,
  3.3459+	48,	64,	8,	0xff0000ffffffffffLL,
  3.3460+	17,	32,	8,	0xff0001ffff0001ffLL,
  3.3461+	49,	64,	8,	0xff0001ffffffffffLL,
  3.3462+	18,	32,	8,	0xff0003ffff0003ffLL,
  3.3463+	50,	64,	8,	0xff0003ffffffffffLL,
  3.3464+	19,	32,	8,	0xff0007ffff0007ffLL,
  3.3465+	51,	64,	8,	0xff0007ffffffffffLL,
  3.3466+	20,	32,	8,	0xff000fffff000fffLL,
  3.3467+	52,	64,	8,	0xff000fffffffffffLL,
  3.3468+	21,	32,	8,	0xff001fffff001fffLL,
  3.3469+	53,	64,	8,	0xff001fffffffffffLL,
  3.3470+	22,	32,	8,	0xff003fffff003fffLL,
  3.3471+	54,	64,	8,	0xff003fffffffffffLL,
  3.3472+	23,	32,	8,	0xff007fffff007fffLL,
  3.3473+	55,	64,	8,	0xff007fffffffffffLL,
  3.3474+	8,	16,	8,	0xff00ff00ff00ff00LL,
  3.3475+	24,	32,	8,	0xff00ffffff00ffffLL,
  3.3476+	56,	64,	8,	0xff00ffffffffffffLL,
  3.3477+	9,	16,	8,	0xff01ff01ff01ff01LL,
  3.3478+	25,	32,	8,	0xff01ffffff01ffffLL,
  3.3479+	57,	64,	8,	0xff01ffffffffffffLL,
  3.3480+	10,	16,	8,	0xff03ff03ff03ff03LL,
  3.3481+	26,	32,	8,	0xff03ffffff03ffffLL,
  3.3482+	58,	64,	8,	0xff03ffffffffffffLL,
  3.3483+	11,	16,	8,	0xff07ff07ff07ff07LL,
  3.3484+	27,	32,	8,	0xff07ffffff07ffffLL,
  3.3485+	59,	64,	8,	0xff07ffffffffffffLL,
  3.3486+	12,	16,	8,	0xff0fff0fff0fff0fLL,
  3.3487+	28,	32,	8,	0xff0fffffff0fffffLL,
  3.3488+	60,	64,	8,	0xff0fffffffffffffLL,
  3.3489+	13,	16,	8,	0xff1fff1fff1fff1fLL,
  3.3490+	29,	32,	8,	0xff1fffffff1fffffLL,
  3.3491+	61,	64,	8,	0xff1fffffffffffffLL,
  3.3492+	14,	16,	8,	0xff3fff3fff3fff3fLL,
  3.3493+	30,	32,	8,	0xff3fffffff3fffffLL,
  3.3494+	62,	64,	8,	0xff3fffffffffffffLL,
  3.3495+	15,	16,	8,	0xff7fff7fff7fff7fLL,
  3.3496+	31,	32,	8,	0xff7fffffff7fffffLL,
  3.3497+	63,	64,	8,	0xff7fffffffffffffLL,
  3.3498+	9,	64,	9,	0xff80000000000000LL,
  3.3499+	10,	64,	9,	0xff80000000000001LL,
  3.3500+	11,	64,	9,	0xff80000000000003LL,
  3.3501+	12,	64,	9,	0xff80000000000007LL,
  3.3502+	13,	64,	9,	0xff8000000000000fLL,
  3.3503+	14,	64,	9,	0xff8000000000001fLL,
  3.3504+	15,	64,	9,	0xff8000000000003fLL,
  3.3505+	16,	64,	9,	0xff8000000000007fLL,
  3.3506+	17,	64,	9,	0xff800000000000ffLL,
  3.3507+	18,	64,	9,	0xff800000000001ffLL,
  3.3508+	19,	64,	9,	0xff800000000003ffLL,
  3.3509+	20,	64,	9,	0xff800000000007ffLL,
  3.3510+	21,	64,	9,	0xff80000000000fffLL,
  3.3511+	22,	64,	9,	0xff80000000001fffLL,
  3.3512+	23,	64,	9,	0xff80000000003fffLL,
  3.3513+	24,	64,	9,	0xff80000000007fffLL,
  3.3514+	25,	64,	9,	0xff8000000000ffffLL,
  3.3515+	26,	64,	9,	0xff8000000001ffffLL,
  3.3516+	27,	64,	9,	0xff8000000003ffffLL,
  3.3517+	28,	64,	9,	0xff8000000007ffffLL,
  3.3518+	29,	64,	9,	0xff800000000fffffLL,
  3.3519+	30,	64,	9,	0xff800000001fffffLL,
  3.3520+	31,	64,	9,	0xff800000003fffffLL,
  3.3521+	32,	64,	9,	0xff800000007fffffLL,
  3.3522+	33,	64,	9,	0xff80000000ffffffLL,
  3.3523+	34,	64,	9,	0xff80000001ffffffLL,
  3.3524+	35,	64,	9,	0xff80000003ffffffLL,
  3.3525+	36,	64,	9,	0xff80000007ffffffLL,
  3.3526+	37,	64,	9,	0xff8000000fffffffLL,
  3.3527+	38,	64,	9,	0xff8000001fffffffLL,
  3.3528+	39,	64,	9,	0xff8000003fffffffLL,
  3.3529+	40,	64,	9,	0xff8000007fffffffLL,
  3.3530+	9,	32,	9,	0xff800000ff800000LL,
  3.3531+	41,	64,	9,	0xff800000ffffffffLL,
  3.3532+	10,	32,	9,	0xff800001ff800001LL,
  3.3533+	42,	64,	9,	0xff800001ffffffffLL,
  3.3534+	11,	32,	9,	0xff800003ff800003LL,
  3.3535+	43,	64,	9,	0xff800003ffffffffLL,
  3.3536+	12,	32,	9,	0xff800007ff800007LL,
  3.3537+	44,	64,	9,	0xff800007ffffffffLL,
  3.3538+	13,	32,	9,	0xff80000fff80000fLL,
  3.3539+	45,	64,	9,	0xff80000fffffffffLL,
  3.3540+	14,	32,	9,	0xff80001fff80001fLL,
  3.3541+	46,	64,	9,	0xff80001fffffffffLL,
  3.3542+	15,	32,	9,	0xff80003fff80003fLL,
  3.3543+	47,	64,	9,	0xff80003fffffffffLL,
  3.3544+	16,	32,	9,	0xff80007fff80007fLL,
  3.3545+	48,	64,	9,	0xff80007fffffffffLL,
  3.3546+	17,	32,	9,	0xff8000ffff8000ffLL,
  3.3547+	49,	64,	9,	0xff8000ffffffffffLL,
  3.3548+	18,	32,	9,	0xff8001ffff8001ffLL,
  3.3549+	50,	64,	9,	0xff8001ffffffffffLL,
  3.3550+	19,	32,	9,	0xff8003ffff8003ffLL,
  3.3551+	51,	64,	9,	0xff8003ffffffffffLL,
  3.3552+	20,	32,	9,	0xff8007ffff8007ffLL,
  3.3553+	52,	64,	9,	0xff8007ffffffffffLL,
  3.3554+	21,	32,	9,	0xff800fffff800fffLL,
  3.3555+	53,	64,	9,	0xff800fffffffffffLL,
  3.3556+	22,	32,	9,	0xff801fffff801fffLL,
  3.3557+	54,	64,	9,	0xff801fffffffffffLL,
  3.3558+	23,	32,	9,	0xff803fffff803fffLL,
  3.3559+	55,	64,	9,	0xff803fffffffffffLL,
  3.3560+	24,	32,	9,	0xff807fffff807fffLL,
  3.3561+	56,	64,	9,	0xff807fffffffffffLL,
  3.3562+	9,	16,	9,	0xff80ff80ff80ff80LL,
  3.3563+	25,	32,	9,	0xff80ffffff80ffffLL,
  3.3564+	57,	64,	9,	0xff80ffffffffffffLL,
  3.3565+	10,	16,	9,	0xff81ff81ff81ff81LL,
  3.3566+	26,	32,	9,	0xff81ffffff81ffffLL,
  3.3567+	58,	64,	9,	0xff81ffffffffffffLL,
  3.3568+	11,	16,	9,	0xff83ff83ff83ff83LL,
  3.3569+	27,	32,	9,	0xff83ffffff83ffffLL,
  3.3570+	59,	64,	9,	0xff83ffffffffffffLL,
  3.3571+	12,	16,	9,	0xff87ff87ff87ff87LL,
  3.3572+	28,	32,	9,	0xff87ffffff87ffffLL,
  3.3573+	60,	64,	9,	0xff87ffffffffffffLL,
  3.3574+	13,	16,	9,	0xff8fff8fff8fff8fLL,
  3.3575+	29,	32,	9,	0xff8fffffff8fffffLL,
  3.3576+	61,	64,	9,	0xff8fffffffffffffLL,
  3.3577+	14,	16,	9,	0xff9fff9fff9fff9fLL,
  3.3578+	30,	32,	9,	0xff9fffffff9fffffLL,
  3.3579+	62,	64,	9,	0xff9fffffffffffffLL,
  3.3580+	15,	16,	9,	0xffbfffbfffbfffbfLL,
  3.3581+	31,	32,	9,	0xffbfffffffbfffffLL,
  3.3582+	63,	64,	9,	0xffbfffffffffffffLL,
  3.3583+	10,	64,	10,	0xffc0000000000000LL,
  3.3584+	11,	64,	10,	0xffc0000000000001LL,
  3.3585+	12,	64,	10,	0xffc0000000000003LL,
  3.3586+	13,	64,	10,	0xffc0000000000007LL,
  3.3587+	14,	64,	10,	0xffc000000000000fLL,
  3.3588+	15,	64,	10,	0xffc000000000001fLL,
  3.3589+	16,	64,	10,	0xffc000000000003fLL,
  3.3590+	17,	64,	10,	0xffc000000000007fLL,
  3.3591+	18,	64,	10,	0xffc00000000000ffLL,
  3.3592+	19,	64,	10,	0xffc00000000001ffLL,
  3.3593+	20,	64,	10,	0xffc00000000003ffLL,
  3.3594+	21,	64,	10,	0xffc00000000007ffLL,
  3.3595+	22,	64,	10,	0xffc0000000000fffLL,
  3.3596+	23,	64,	10,	0xffc0000000001fffLL,
  3.3597+	24,	64,	10,	0xffc0000000003fffLL,
  3.3598+	25,	64,	10,	0xffc0000000007fffLL,
  3.3599+	26,	64,	10,	0xffc000000000ffffLL,
  3.3600+	27,	64,	10,	0xffc000000001ffffLL,
  3.3601+	28,	64,	10,	0xffc000000003ffffLL,
  3.3602+	29,	64,	10,	0xffc000000007ffffLL,
  3.3603+	30,	64,	10,	0xffc00000000fffffLL,
  3.3604+	31,	64,	10,	0xffc00000001fffffLL,
  3.3605+	32,	64,	10,	0xffc00000003fffffLL,
  3.3606+	33,	64,	10,	0xffc00000007fffffLL,
  3.3607+	34,	64,	10,	0xffc0000000ffffffLL,
  3.3608+	35,	64,	10,	0xffc0000001ffffffLL,
  3.3609+	36,	64,	10,	0xffc0000003ffffffLL,
  3.3610+	37,	64,	10,	0xffc0000007ffffffLL,
  3.3611+	38,	64,	10,	0xffc000000fffffffLL,
  3.3612+	39,	64,	10,	0xffc000001fffffffLL,
  3.3613+	40,	64,	10,	0xffc000003fffffffLL,
  3.3614+	41,	64,	10,	0xffc000007fffffffLL,
  3.3615+	10,	32,	10,	0xffc00000ffc00000LL,
  3.3616+	42,	64,	10,	0xffc00000ffffffffLL,
  3.3617+	11,	32,	10,	0xffc00001ffc00001LL,
  3.3618+	43,	64,	10,	0xffc00001ffffffffLL,
  3.3619+	12,	32,	10,	0xffc00003ffc00003LL,
  3.3620+	44,	64,	10,	0xffc00003ffffffffLL,
  3.3621+	13,	32,	10,	0xffc00007ffc00007LL,
  3.3622+	45,	64,	10,	0xffc00007ffffffffLL,
  3.3623+	14,	32,	10,	0xffc0000fffc0000fLL,
  3.3624+	46,	64,	10,	0xffc0000fffffffffLL,
  3.3625+	15,	32,	10,	0xffc0001fffc0001fLL,
  3.3626+	47,	64,	10,	0xffc0001fffffffffLL,
  3.3627+	16,	32,	10,	0xffc0003fffc0003fLL,
  3.3628+	48,	64,	10,	0xffc0003fffffffffLL,
  3.3629+	17,	32,	10,	0xffc0007fffc0007fLL,
  3.3630+	49,	64,	10,	0xffc0007fffffffffLL,
  3.3631+	18,	32,	10,	0xffc000ffffc000ffLL,
  3.3632+	50,	64,	10,	0xffc000ffffffffffLL,
  3.3633+	19,	32,	10,	0xffc001ffffc001ffLL,
  3.3634+	51,	64,	10,	0xffc001ffffffffffLL,
  3.3635+	20,	32,	10,	0xffc003ffffc003ffLL,
  3.3636+	52,	64,	10,	0xffc003ffffffffffLL,
  3.3637+	21,	32,	10,	0xffc007ffffc007ffLL,
  3.3638+	53,	64,	10,	0xffc007ffffffffffLL,
  3.3639+	22,	32,	10,	0xffc00fffffc00fffLL,
  3.3640+	54,	64,	10,	0xffc00fffffffffffLL,
  3.3641+	23,	32,	10,	0xffc01fffffc01fffLL,
  3.3642+	55,	64,	10,	0xffc01fffffffffffLL,
  3.3643+	24,	32,	10,	0xffc03fffffc03fffLL,
  3.3644+	56,	64,	10,	0xffc03fffffffffffLL,
  3.3645+	25,	32,	10,	0xffc07fffffc07fffLL,
  3.3646+	57,	64,	10,	0xffc07fffffffffffLL,
  3.3647+	10,	16,	10,	0xffc0ffc0ffc0ffc0LL,
  3.3648+	26,	32,	10,	0xffc0ffffffc0ffffLL,
  3.3649+	58,	64,	10,	0xffc0ffffffffffffLL,
  3.3650+	11,	16,	10,	0xffc1ffc1ffc1ffc1LL,
  3.3651+	27,	32,	10,	0xffc1ffffffc1ffffLL,
  3.3652+	59,	64,	10,	0xffc1ffffffffffffLL,
  3.3653+	12,	16,	10,	0xffc3ffc3ffc3ffc3LL,
  3.3654+	28,	32,	10,	0xffc3ffffffc3ffffLL,
  3.3655+	60,	64,	10,	0xffc3ffffffffffffLL,
  3.3656+	13,	16,	10,	0xffc7ffc7ffc7ffc7LL,
  3.3657+	29,	32,	10,	0xffc7ffffffc7ffffLL,
  3.3658+	61,	64,	10,	0xffc7ffffffffffffLL,
  3.3659+	14,	16,	10,	0xffcfffcfffcfffcfLL,
  3.3660+	30,	32,	10,	0xffcfffffffcfffffLL,
  3.3661+	62,	64,	10,	0xffcfffffffffffffLL,
  3.3662+	15,	16,	10,	0xffdfffdfffdfffdfLL,
  3.3663+	31,	32,	10,	0xffdfffffffdfffffLL,
  3.3664+	63,	64,	10,	0xffdfffffffffffffLL,
  3.3665+	11,	64,	11,	0xffe0000000000000LL,
  3.3666+	12,	64,	11,	0xffe0000000000001LL,
  3.3667+	13,	64,	11,	0xffe0000000000003LL,
  3.3668+	14,	64,	11,	0xffe0000000000007LL,
  3.3669+	15,	64,	11,	0xffe000000000000fLL,
  3.3670+	16,	64,	11,	0xffe000000000001fLL,
  3.3671+	17,	64,	11,	0xffe000000000003fLL,
  3.3672+	18,	64,	11,	0xffe000000000007fLL,
  3.3673+	19,	64,	11,	0xffe00000000000ffLL,
  3.3674+	20,	64,	11,	0xffe00000000001ffLL,
  3.3675+	21,	64,	11,	0xffe00000000003ffLL,
  3.3676+	22,	64,	11,	0xffe00000000007ffLL,
  3.3677+	23,	64,	11,	0xffe0000000000fffLL,
  3.3678+	24,	64,	11,	0xffe0000000001fffLL,
  3.3679+	25,	64,	11,	0xffe0000000003fffLL,
  3.3680+	26,	64,	11,	0xffe0000000007fffLL,
  3.3681+	27,	64,	11,	0xffe000000000ffffLL,
  3.3682+	28,	64,	11,	0xffe000000001ffffLL,
  3.3683+	29,	64,	11,	0xffe000000003ffffLL,
  3.3684+	30,	64,	11,	0xffe000000007ffffLL,
  3.3685+	31,	64,	11,	0xffe00000000fffffLL,
  3.3686+	32,	64,	11,	0xffe00000001fffffLL,
  3.3687+	33,	64,	11,	0xffe00000003fffffLL,
  3.3688+	34,	64,	11,	0xffe00000007fffffLL,
  3.3689+	35,	64,	11,	0xffe0000000ffffffLL,
  3.3690+	36,	64,	11,	0xffe0000001ffffffLL,
  3.3691+	37,	64,	11,	0xffe0000003ffffffLL,
  3.3692+	38,	64,	11,	0xffe0000007ffffffLL,
  3.3693+	39,	64,	11,	0xffe000000fffffffLL,
  3.3694+	40,	64,	11,	0xffe000001fffffffLL,
  3.3695+	41,	64,	11,	0xffe000003fffffffLL,
  3.3696+	42,	64,	11,	0xffe000007fffffffLL,
  3.3697+	11,	32,	11,	0xffe00000ffe00000LL,
  3.3698+	43,	64,	11,	0xffe00000ffffffffLL,
  3.3699+	12,	32,	11,	0xffe00001ffe00001LL,
  3.3700+	44,	64,	11,	0xffe00001ffffffffLL,
  3.3701+	13,	32,	11,	0xffe00003ffe00003LL,
  3.3702+	45,	64,	11,	0xffe00003ffffffffLL,
  3.3703+	14,	32,	11,	0xffe00007ffe00007LL,
  3.3704+	46,	64,	11,	0xffe00007ffffffffLL,
  3.3705+	15,	32,	11,	0xffe0000fffe0000fLL,
  3.3706+	47,	64,	11,	0xffe0000fffffffffLL,
  3.3707+	16,	32,	11,	0xffe0001fffe0001fLL,
  3.3708+	48,	64,	11,	0xffe0001fffffffffLL,
  3.3709+	17,	32,	11,	0xffe0003fffe0003fLL,
  3.3710+	49,	64,	11,	0xffe0003fffffffffLL,
  3.3711+	18,	32,	11,	0xffe0007fffe0007fLL,
  3.3712+	50,	64,	11,	0xffe0007fffffffffLL,
  3.3713+	19,	32,	11,	0xffe000ffffe000ffLL,
  3.3714+	51,	64,	11,	0xffe000ffffffffffLL,
  3.3715+	20,	32,	11,	0xffe001ffffe001ffLL,
  3.3716+	52,	64,	11,	0xffe001ffffffffffLL,
  3.3717+	21,	32,	11,	0xffe003ffffe003ffLL,
  3.3718+	53,	64,	11,	0xffe003ffffffffffLL,
  3.3719+	22,	32,	11,	0xffe007ffffe007ffLL,
  3.3720+	54,	64,	11,	0xffe007ffffffffffLL,
  3.3721+	23,	32,	11,	0xffe00fffffe00fffLL,
  3.3722+	55,	64,	11,	0xffe00fffffffffffLL,
  3.3723+	24,	32,	11,	0xffe01fffffe01fffLL,
  3.3724+	56,	64,	11,	0xffe01fffffffffffLL,
  3.3725+	25,	32,	11,	0xffe03fffffe03fffLL,
  3.3726+	57,	64,	11,	0xffe03fffffffffffLL,
  3.3727+	26,	32,	11,	0xffe07fffffe07fffLL,
  3.3728+	58,	64,	11,	0xffe07fffffffffffLL,
  3.3729+	11,	16,	11,	0xffe0ffe0ffe0ffe0LL,
  3.3730+	27,	32,	11,	0xffe0ffffffe0ffffLL,
  3.3731+	59,	64,	11,	0xffe0ffffffffffffLL,
  3.3732+	12,	16,	11,	0xffe1ffe1ffe1ffe1LL,
  3.3733+	28,	32,	11,	0xffe1ffffffe1ffffLL,
  3.3734+	60,	64,	11,	0xffe1ffffffffffffLL,
  3.3735+	13,	16,	11,	0xffe3ffe3ffe3ffe3LL,
  3.3736+	29,	32,	11,	0xffe3ffffffe3ffffLL,
  3.3737+	61,	64,	11,	0xffe3ffffffffffffLL,
  3.3738+	14,	16,	11,	0xffe7ffe7ffe7ffe7LL,
  3.3739+	30,	32,	11,	0xffe7ffffffe7ffffLL,
  3.3740+	62,	64,	11,	0xffe7ffffffffffffLL,
  3.3741+	15,	16,	11,	0xffefffefffefffefLL,
  3.3742+	31,	32,	11,	0xffefffffffefffffLL,
  3.3743+	63,	64,	11,	0xffefffffffffffffLL,
  3.3744+	12,	64,	12,	0xfff0000000000000LL,
  3.3745+	13,	64,	12,	0xfff0000000000001LL,
  3.3746+	14,	64,	12,	0xfff0000000000003LL,
  3.3747+	15,	64,	12,	0xfff0000000000007LL,
  3.3748+	16,	64,	12,	0xfff000000000000fLL,
  3.3749+	17,	64,	12,	0xfff000000000001fLL,
  3.3750+	18,	64,	12,	0xfff000000000003fLL,
  3.3751+	19,	64,	12,	0xfff000000000007fLL,
  3.3752+	20,	64,	12,	0xfff00000000000ffLL,
  3.3753+	21,	64,	12,	0xfff00000000001ffLL,
  3.3754+	22,	64,	12,	0xfff00000000003ffLL,
  3.3755+	23,	64,	12,	0xfff00000000007ffLL,
  3.3756+	24,	64,	12,	0xfff0000000000fffLL,
  3.3757+	25,	64,	12,	0xfff0000000001fffLL,
  3.3758+	26,	64,	12,	0xfff0000000003fffLL,
  3.3759+	27,	64,	12,	0xfff0000000007fffLL,
  3.3760+	28,	64,	12,	0xfff000000000ffffLL,
  3.3761+	29,	64,	12,	0xfff000000001ffffLL,
  3.3762+	30,	64,	12,	0xfff000000003ffffLL,
  3.3763+	31,	64,	12,	0xfff000000007ffffLL,
  3.3764+	32,	64,	12,	0xfff00000000fffffLL,
  3.3765+	33,	64,	12,	0xfff00000001fffffLL,
  3.3766+	34,	64,	12,	0xfff00000003fffffLL,
  3.3767+	35,	64,	12,	0xfff00000007fffffLL,
  3.3768+	36,	64,	12,	0xfff0000000ffffffLL,
  3.3769+	37,	64,	12,	0xfff0000001ffffffLL,
  3.3770+	38,	64,	12,	0xfff0000003ffffffLL,
  3.3771+	39,	64,	12,	0xfff0000007ffffffLL,
  3.3772+	40,	64,	12,	0xfff000000fffffffLL,
  3.3773+	41,	64,	12,	0xfff000001fffffffLL,
  3.3774+	42,	64,	12,	0xfff000003fffffffLL,
  3.3775+	43,	64,	12,	0xfff000007fffffffLL,
  3.3776+	12,	32,	12,	0xfff00000fff00000LL,
  3.3777+	44,	64,	12,	0xfff00000ffffffffLL,
  3.3778+	13,	32,	12,	0xfff00001fff00001LL,
  3.3779+	45,	64,	12,	0xfff00001ffffffffLL,
  3.3780+	14,	32,	12,	0xfff00003fff00003LL,
  3.3781+	46,	64,	12,	0xfff00003ffffffffLL,
  3.3782+	15,	32,	12,	0xfff00007fff00007LL,
  3.3783+	47,	64,	12,	0xfff00007ffffffffLL,
  3.3784+	16,	32,	12,	0xfff0000ffff0000fLL,
  3.3785+	48,	64,	12,	0xfff0000fffffffffLL,
  3.3786+	17,	32,	12,	0xfff0001ffff0001fLL,
  3.3787+	49,	64,	12,	0xfff0001fffffffffLL,
  3.3788+	18,	32,	12,	0xfff0003ffff0003fLL,
  3.3789+	50,	64,	12,	0xfff0003fffffffffLL,
  3.3790+	19,	32,	12,	0xfff0007ffff0007fLL,
  3.3791+	51,	64,	12,	0xfff0007fffffffffLL,
  3.3792+	20,	32,	12,	0xfff000fffff000ffLL,
  3.3793+	52,	64,	12,	0xfff000ffffffffffLL,
  3.3794+	21,	32,	12,	0xfff001fffff001ffLL,
  3.3795+	53,	64,	12,	0xfff001ffffffffffLL,
  3.3796+	22,	32,	12,	0xfff003fffff003ffLL,
  3.3797+	54,	64,	12,	0xfff003ffffffffffLL,
  3.3798+	23,	32,	12,	0xfff007fffff007ffLL,
  3.3799+	55,	64,	12,	0xfff007ffffffffffLL,
  3.3800+	24,	32,	12,	0xfff00ffffff00fffLL,
  3.3801+	56,	64,	12,	0xfff00fffffffffffLL,
  3.3802+	25,	32,	12,	0xfff01ffffff01fffLL,
  3.3803+	57,	64,	12,	0xfff01fffffffffffLL,
  3.3804+	26,	32,	12,	0xfff03ffffff03fffLL,
  3.3805+	58,	64,	12,	0xfff03fffffffffffLL,
  3.3806+	27,	32,	12,	0xfff07ffffff07fffLL,
  3.3807+	59,	64,	12,	0xfff07fffffffffffLL,
  3.3808+	12,	16,	12,	0xfff0fff0fff0fff0LL,
  3.3809+	28,	32,	12,	0xfff0fffffff0ffffLL,
  3.3810+	60,	64,	12,	0xfff0ffffffffffffLL,
  3.3811+	13,	16,	12,	0xfff1fff1fff1fff1LL,
  3.3812+	29,	32,	12,	0xfff1fffffff1ffffLL,
  3.3813+	61,	64,	12,	0xfff1ffffffffffffLL,
  3.3814+	14,	16,	12,	0xfff3fff3fff3fff3LL,
  3.3815+	30,	32,	12,	0xfff3fffffff3ffffLL,
  3.3816+	62,	64,	12,	0xfff3ffffffffffffLL,
  3.3817+	15,	16,	12,	0xfff7fff7fff7fff7LL,
  3.3818+	31,	32,	12,	0xfff7fffffff7ffffLL,
  3.3819+	63,	64,	12,	0xfff7ffffffffffffLL,
  3.3820+	13,	64,	13,	0xfff8000000000000LL,
  3.3821+	14,	64,	13,	0xfff8000000000001LL,
  3.3822+	15,	64,	13,	0xfff8000000000003LL,
  3.3823+	16,	64,	13,	0xfff8000000000007LL,
  3.3824+	17,	64,	13,	0xfff800000000000fLL,
  3.3825+	18,	64,	13,	0xfff800000000001fLL,
  3.3826+	19,	64,	13,	0xfff800000000003fLL,
  3.3827+	20,	64,	13,	0xfff800000000007fLL,
  3.3828+	21,	64,	13,	0xfff80000000000ffLL,
  3.3829+	22,	64,	13,	0xfff80000000001ffLL,
  3.3830+	23,	64,	13,	0xfff80000000003ffLL,
  3.3831+	24,	64,	13,	0xfff80000000007ffLL,
  3.3832+	25,	64,	13,	0xfff8000000000fffLL,
  3.3833+	26,	64,	13,	0xfff8000000001fffLL,
  3.3834+	27,	64,	13,	0xfff8000000003fffLL,
  3.3835+	28,	64,	13,	0xfff8000000007fffLL,
  3.3836+	29,	64,	13,	0xfff800000000ffffLL,
  3.3837+	30,	64,	13,	0xfff800000001ffffLL,
  3.3838+	31,	64,	13,	0xfff800000003ffffLL,
  3.3839+	32,	64,	13,	0xfff800000007ffffLL,
  3.3840+	33,	64,	13,	0xfff80000000fffffLL,
  3.3841+	34,	64,	13,	0xfff80000001fffffLL,
  3.3842+	35,	64,	13,	0xfff80000003fffffLL,
  3.3843+	36,	64,	13,	0xfff80000007fffffLL,
  3.3844+	37,	64,	13,	0xfff8000000ffffffLL,
  3.3845+	38,	64,	13,	0xfff8000001ffffffLL,
  3.3846+	39,	64,	13,	0xfff8000003ffffffLL,
  3.3847+	40,	64,	13,	0xfff8000007ffffffLL,
  3.3848+	41,	64,	13,	0xfff800000fffffffLL,
  3.3849+	42,	64,	13,	0xfff800001fffffffLL,
  3.3850+	43,	64,	13,	0xfff800003fffffffLL,
  3.3851+	44,	64,	13,	0xfff800007fffffffLL,
  3.3852+	13,	32,	13,	0xfff80000fff80000LL,
  3.3853+	45,	64,	13,	0xfff80000ffffffffLL,
  3.3854+	14,	32,	13,	0xfff80001fff80001LL,
  3.3855+	46,	64,	13,	0xfff80001ffffffffLL,
  3.3856+	15,	32,	13,	0xfff80003fff80003LL,
  3.3857+	47,	64,	13,	0xfff80003ffffffffLL,
  3.3858+	16,	32,	13,	0xfff80007fff80007LL,
  3.3859+	48,	64,	13,	0xfff80007ffffffffLL,
  3.3860+	17,	32,	13,	0xfff8000ffff8000fLL,
  3.3861+	49,	64,	13,	0xfff8000fffffffffLL,
  3.3862+	18,	32,	13,	0xfff8001ffff8001fLL,
  3.3863+	50,	64,	13,	0xfff8001fffffffffLL,
  3.3864+	19,	32,	13,	0xfff8003ffff8003fLL,
  3.3865+	51,	64,	13,	0xfff8003fffffffffLL,
  3.3866+	20,	32,	13,	0xfff8007ffff8007fLL,
  3.3867+	52,	64,	13,	0xfff8007fffffffffLL,
  3.3868+	21,	32,	13,	0xfff800fffff800ffLL,
  3.3869+	53,	64,	13,	0xfff800ffffffffffLL,
  3.3870+	22,	32,	13,	0xfff801fffff801ffLL,
  3.3871+	54,	64,	13,	0xfff801ffffffffffLL,
  3.3872+	23,	32,	13,	0xfff803fffff803ffLL,
  3.3873+	55,	64,	13,	0xfff803ffffffffffLL,
  3.3874+	24,	32,	13,	0xfff807fffff807ffLL,
  3.3875+	56,	64,	13,	0xfff807ffffffffffLL,
  3.3876+	25,	32,	13,	0xfff80ffffff80fffLL,
  3.3877+	57,	64,	13,	0xfff80fffffffffffLL,
  3.3878+	26,	32,	13,	0xfff81ffffff81fffLL,
  3.3879+	58,	64,	13,	0xfff81fffffffffffLL,
  3.3880+	27,	32,	13,	0xfff83ffffff83fffLL,
  3.3881+	59,	64,	13,	0xfff83fffffffffffLL,
  3.3882+	28,	32,	13,	0xfff87ffffff87fffLL,
  3.3883+	60,	64,	13,	0xfff87fffffffffffLL,
  3.3884+	13,	16,	13,	0xfff8fff8fff8fff8LL,
  3.3885+	29,	32,	13,	0xfff8fffffff8ffffLL,
  3.3886+	61,	64,	13,	0xfff8ffffffffffffLL,
  3.3887+	14,	16,	13,	0xfff9fff9fff9fff9LL,
  3.3888+	30,	32,	13,	0xfff9fffffff9ffffLL,
  3.3889+	62,	64,	13,	0xfff9ffffffffffffLL,
  3.3890+	15,	16,	13,	0xfffbfffbfffbfffbLL,
  3.3891+	31,	32,	13,	0xfffbfffffffbffffLL,
  3.3892+	63,	64,	13,	0xfffbffffffffffffLL,
  3.3893+	14,	64,	14,	0xfffc000000000000LL,
  3.3894+	15,	64,	14,	0xfffc000000000001LL,
  3.3895+	16,	64,	14,	0xfffc000000000003LL,
  3.3896+	17,	64,	14,	0xfffc000000000007LL,
  3.3897+	18,	64,	14,	0xfffc00000000000fLL,
  3.3898+	19,	64,	14,	0xfffc00000000001fLL,
  3.3899+	20,	64,	14,	0xfffc00000000003fLL,
  3.3900+	21,	64,	14,	0xfffc00000000007fLL,
  3.3901+	22,	64,	14,	0xfffc0000000000ffLL,
  3.3902+	23,	64,	14,	0xfffc0000000001ffLL,
  3.3903+	24,	64,	14,	0xfffc0000000003ffLL,
  3.3904+	25,	64,	14,	0xfffc0000000007ffLL,
  3.3905+	26,	64,	14,	0xfffc000000000fffLL,
  3.3906+	27,	64,	14,	0xfffc000000001fffLL,
  3.3907+	28,	64,	14,	0xfffc000000003fffLL,
  3.3908+	29,	64,	14,	0xfffc000000007fffLL,
  3.3909+	30,	64,	14,	0xfffc00000000ffffLL,
  3.3910+	31,	64,	14,	0xfffc00000001ffffLL,
  3.3911+	32,	64,	14,	0xfffc00000003ffffLL,
  3.3912+	33,	64,	14,	0xfffc00000007ffffLL,
  3.3913+	34,	64,	14,	0xfffc0000000fffffLL,
  3.3914+	35,	64,	14,	0xfffc0000001fffffLL,
  3.3915+	36,	64,	14,	0xfffc0000003fffffLL,
  3.3916+	37,	64,	14,	0xfffc0000007fffffLL,
  3.3917+	38,	64,	14,	0xfffc000000ffffffLL,
  3.3918+	39,	64,	14,	0xfffc000001ffffffLL,
  3.3919+	40,	64,	14,	0xfffc000003ffffffLL,
  3.3920+	41,	64,	14,	0xfffc000007ffffffLL,
  3.3921+	42,	64,	14,	0xfffc00000fffffffLL,
  3.3922+	43,	64,	14,	0xfffc00001fffffffLL,
  3.3923+	44,	64,	14,	0xfffc00003fffffffLL,
  3.3924+	45,	64,	14,	0xfffc00007fffffffLL,
  3.3925+	14,	32,	14,	0xfffc0000fffc0000LL,
  3.3926+	46,	64,	14,	0xfffc0000ffffffffLL,
  3.3927+	15,	32,	14,	0xfffc0001fffc0001LL,
  3.3928+	47,	64,	14,	0xfffc0001ffffffffLL,
  3.3929+	16,	32,	14,	0xfffc0003fffc0003LL,
  3.3930+	48,	64,	14,	0xfffc0003ffffffffLL,
  3.3931+	17,	32,	14,	0xfffc0007fffc0007LL,
  3.3932+	49,	64,	14,	0xfffc0007ffffffffLL,
  3.3933+	18,	32,	14,	0xfffc000ffffc000fLL,
  3.3934+	50,	64,	14,	0xfffc000fffffffffLL,
  3.3935+	19,	32,	14,	0xfffc001ffffc001fLL,
  3.3936+	51,	64,	14,	0xfffc001fffffffffLL,
  3.3937+	20,	32,	14,	0xfffc003ffffc003fLL,
  3.3938+	52,	64,	14,	0xfffc003fffffffffLL,
  3.3939+	21,	32,	14,	0xfffc007ffffc007fLL,
  3.3940+	53,	64,	14,	0xfffc007fffffffffLL,
  3.3941+	22,	32,	14,	0xfffc00fffffc00ffLL,
  3.3942+	54,	64,	14,	0xfffc00ffffffffffLL,
  3.3943+	23,	32,	14,	0xfffc01fffffc01ffLL,
  3.3944+	55,	64,	14,	0xfffc01ffffffffffLL,
  3.3945+	24,	32,	14,	0xfffc03fffffc03ffLL,
  3.3946+	56,	64,	14,	0xfffc03ffffffffffLL,
  3.3947+	25,	32,	14,	0xfffc07fffffc07ffLL,
  3.3948+	57,	64,	14,	0xfffc07ffffffffffLL,
  3.3949+	26,	32,	14,	0xfffc0ffffffc0fffLL,
  3.3950+	58,	64,	14,	0xfffc0fffffffffffLL,
  3.3951+	27,	32,	14,	0xfffc1ffffffc1fffLL,
  3.3952+	59,	64,	14,	0xfffc1fffffffffffLL,
  3.3953+	28,	32,	14,	0xfffc3ffffffc3fffLL,
  3.3954+	60,	64,	14,	0xfffc3fffffffffffLL,
  3.3955+	29,	32,	14,	0xfffc7ffffffc7fffLL,
  3.3956+	61,	64,	14,	0xfffc7fffffffffffLL,
  3.3957+	14,	16,	14,	0xfffcfffcfffcfffcLL,
  3.3958+	30,	32,	14,	0xfffcfffffffcffffLL,
  3.3959+	62,	64,	14,	0xfffcffffffffffffLL,
  3.3960+	15,	16,	14,	0xfffdfffdfffdfffdLL,
  3.3961+	31,	32,	14,	0xfffdfffffffdffffLL,
  3.3962+	63,	64,	14,	0xfffdffffffffffffLL,
  3.3963+	15,	64,	15,	0xfffe000000000000LL,
  3.3964+	16,	64,	15,	0xfffe000000000001LL,
  3.3965+	17,	64,	15,	0xfffe000000000003LL,
  3.3966+	18,	64,	15,	0xfffe000000000007LL,
  3.3967+	19,	64,	15,	0xfffe00000000000fLL,
  3.3968+	20,	64,	15,	0xfffe00000000001fLL,
  3.3969+	21,	64,	15,	0xfffe00000000003fLL,
  3.3970+	22,	64,	15,	0xfffe00000000007fLL,
  3.3971+	23,	64,	15,	0xfffe0000000000ffLL,
  3.3972+	24,	64,	15,	0xfffe0000000001ffLL,
  3.3973+	25,	64,	15,	0xfffe0000000003ffLL,
  3.3974+	26,	64,	15,	0xfffe0000000007ffLL,
  3.3975+	27,	64,	15,	0xfffe000000000fffLL,
  3.3976+	28,	64,	15,	0xfffe000000001fffLL,
  3.3977+	29,	64,	15,	0xfffe000000003fffLL,
  3.3978+	30,	64,	15,	0xfffe000000007fffLL,
  3.3979+	31,	64,	15,	0xfffe00000000ffffLL,
  3.3980+	32,	64,	15,	0xfffe00000001ffffLL,
  3.3981+	33,	64,	15,	0xfffe00000003ffffLL,
  3.3982+	34,	64,	15,	0xfffe00000007ffffLL,
  3.3983+	35,	64,	15,	0xfffe0000000fffffLL,
  3.3984+	36,	64,	15,	0xfffe0000001fffffLL,
  3.3985+	37,	64,	15,	0xfffe0000003fffffLL,
  3.3986+	38,	64,	15,	0xfffe0000007fffffLL,
  3.3987+	39,	64,	15,	0xfffe000000ffffffLL,
  3.3988+	40,	64,	15,	0xfffe000001ffffffLL,
  3.3989+	41,	64,	15,	0xfffe000003ffffffLL,
  3.3990+	42,	64,	15,	0xfffe000007ffffffLL,
  3.3991+	43,	64,	15,	0xfffe00000fffffffLL,
  3.3992+	44,	64,	15,	0xfffe00001fffffffLL,
  3.3993+	45,	64,	15,	0xfffe00003fffffffLL,
  3.3994+	46,	64,	15,	0xfffe00007fffffffLL,
  3.3995+	15,	32,	15,	0xfffe0000fffe0000LL,
  3.3996+	47,	64,	15,	0xfffe0000ffffffffLL,
  3.3997+	16,	32,	15,	0xfffe0001fffe0001LL,
  3.3998+	48,	64,	15,	0xfffe0001ffffffffLL,
  3.3999+	17,	32,	15,	0xfffe0003fffe0003LL,
  3.4000+	49,	64,	15,	0xfffe0003ffffffffLL,
  3.4001+	18,	32,	15,	0xfffe0007fffe0007LL,
  3.4002+	50,	64,	15,	0xfffe0007ffffffffLL,
  3.4003+	19,	32,	15,	0xfffe000ffffe000fLL,
  3.4004+	51,	64,	15,	0xfffe000fffffffffLL,
  3.4005+	20,	32,	15,	0xfffe001ffffe001fLL,
  3.4006+	52,	64,	15,	0xfffe001fffffffffLL,
  3.4007+	21,	32,	15,	0xfffe003ffffe003fLL,
  3.4008+	53,	64,	15,	0xfffe003fffffffffLL,
  3.4009+	22,	32,	15,	0xfffe007ffffe007fLL,
  3.4010+	54,	64,	15,	0xfffe007fffffffffLL,
  3.4011+	23,	32,	15,	0xfffe00fffffe00ffLL,
  3.4012+	55,	64,	15,	0xfffe00ffffffffffLL,
  3.4013+	24,	32,	15,	0xfffe01fffffe01ffLL,
  3.4014+	56,	64,	15,	0xfffe01ffffffffffLL,
  3.4015+	25,	32,	15,	0xfffe03fffffe03ffLL,
  3.4016+	57,	64,	15,	0xfffe03ffffffffffLL,
  3.4017+	26,	32,	15,	0xfffe07fffffe07ffLL,
  3.4018+	58,	64,	15,	0xfffe07ffffffffffLL,
  3.4019+	27,	32,	15,	0xfffe0ffffffe0fffLL,
  3.4020+	59,	64,	15,	0xfffe0fffffffffffLL,
  3.4021+	28,	32,	15,	0xfffe1ffffffe1fffLL,
  3.4022+	60,	64,	15,	0xfffe1fffffffffffLL,
  3.4023+	29,	32,	15,	0xfffe3ffffffe3fffLL,
  3.4024+	61,	64,	15,	0xfffe3fffffffffffLL,
  3.4025+	30,	32,	15,	0xfffe7ffffffe7fffLL,
  3.4026+	62,	64,	15,	0xfffe7fffffffffffLL,
  3.4027+	15,	16,	15,	0xfffefffefffefffeLL,
  3.4028+	31,	32,	15,	0xfffefffffffeffffLL,
  3.4029+	63,	64,	15,	0xfffeffffffffffffLL,
  3.4030+	16,	64,	16,	0xffff000000000000LL,
  3.4031+	17,	64,	16,	0xffff000000000001LL,
  3.4032+	18,	64,	16,	0xffff000000000003LL,
  3.4033+	19,	64,	16,	0xffff000000000007LL,
  3.4034+	20,	64,	16,	0xffff00000000000fLL,
  3.4035+	21,	64,	16,	0xffff00000000001fLL,
  3.4036+	22,	64,	16,	0xffff00000000003fLL,
  3.4037+	23,	64,	16,	0xffff00000000007fLL,
  3.4038+	24,	64,	16,	0xffff0000000000ffLL,
  3.4039+	25,	64,	16,	0xffff0000000001ffLL,
  3.4040+	26,	64,	16,	0xffff0000000003ffLL,
  3.4041+	27,	64,	16,	0xffff0000000007ffLL,
  3.4042+	28,	64,	16,	0xffff000000000fffLL,
  3.4043+	29,	64,	16,	0xffff000000001fffLL,
  3.4044+	30,	64,	16,	0xffff000000003fffLL,
  3.4045+	31,	64,	16,	0xffff000000007fffLL,
  3.4046+	32,	64,	16,	0xffff00000000ffffLL,
  3.4047+	33,	64,	16,	0xffff00000001ffffLL,
  3.4048+	34,	64,	16,	0xffff00000003ffffLL,
  3.4049+	35,	64,	16,	0xffff00000007ffffLL,
  3.4050+	36,	64,	16,	0xffff0000000fffffLL,
  3.4051+	37,	64,	16,	0xffff0000001fffffLL,
  3.4052+	38,	64,	16,	0xffff0000003fffffLL,
  3.4053+	39,	64,	16,	0xffff0000007fffffLL,
  3.4054+	40,	64,	16,	0xffff000000ffffffLL,
  3.4055+	41,	64,	16,	0xffff000001ffffffLL,
  3.4056+	42,	64,	16,	0xffff000003ffffffLL,
  3.4057+	43,	64,	16,	0xffff000007ffffffLL,
  3.4058+	44,	64,	16,	0xffff00000fffffffLL,
  3.4059+	45,	64,	16,	0xffff00001fffffffLL,
  3.4060+	46,	64,	16,	0xffff00003fffffffLL,
  3.4061+	47,	64,	16,	0xffff00007fffffffLL,
  3.4062+	16,	32,	16,	0xffff0000ffff0000LL,
  3.4063+	48,	64,	16,	0xffff0000ffffffffLL,
  3.4064+	17,	32,	16,	0xffff0001ffff0001LL,
  3.4065+	49,	64,	16,	0xffff0001ffffffffLL,
  3.4066+	18,	32,	16,	0xffff0003ffff0003LL,
  3.4067+	50,	64,	16,	0xffff0003ffffffffLL,
  3.4068+	19,	32,	16,	0xffff0007ffff0007LL,
  3.4069+	51,	64,	16,	0xffff0007ffffffffLL,
  3.4070+	20,	32,	16,	0xffff000fffff000fLL,
  3.4071+	52,	64,	16,	0xffff000fffffffffLL,
  3.4072+	21,	32,	16,	0xffff001fffff001fLL,
  3.4073+	53,	64,	16,	0xffff001fffffffffLL,
  3.4074+	22,	32,	16,	0xffff003fffff003fLL,
  3.4075+	54,	64,	16,	0xffff003fffffffffLL,
  3.4076+	23,	32,	16,	0xffff007fffff007fLL,
  3.4077+	55,	64,	16,	0xffff007fffffffffLL,
  3.4078+	24,	32,	16,	0xffff00ffffff00ffLL,
  3.4079+	56,	64,	16,	0xffff00ffffffffffLL,
  3.4080+	25,	32,	16,	0xffff01ffffff01ffLL,
  3.4081+	57,	64,	16,	0xffff01ffffffffffLL,
  3.4082+	26,	32,	16,	0xffff03ffffff03ffLL,
  3.4083+	58,	64,	16,	0xffff03ffffffffffLL,
  3.4084+	27,	32,	16,	0xffff07ffffff07ffLL,
  3.4085+	59,	64,	16,	0xffff07ffffffffffLL,
  3.4086+	28,	32,	16,	0xffff0fffffff0fffLL,
  3.4087+	60,	64,	16,	0xffff0fffffffffffLL,
  3.4088+	29,	32,	16,	0xffff1fffffff1fffLL,
  3.4089+	61,	64,	16,	0xffff1fffffffffffLL,
  3.4090+	30,	32,	16,	0xffff3fffffff3fffLL,
  3.4091+	62,	64,	16,	0xffff3fffffffffffLL,
  3.4092+	31,	32,	16,	0xffff7fffffff7fffLL,
  3.4093+	63,	64,	16,	0xffff7fffffffffffLL,
  3.4094+	17,	64,	17,	0xffff800000000000LL,
  3.4095+	18,	64,	17,	0xffff800000000001LL,
  3.4096+	19,	64,	17,	0xffff800000000003LL,
  3.4097+	20,	64,	17,	0xffff800000000007LL,
  3.4098+	21,	64,	17,	0xffff80000000000fLL,
  3.4099+	22,	64,	17,	0xffff80000000001fLL,
  3.4100+	23,	64,	17,	0xffff80000000003fLL,
  3.4101+	24,	64,	17,	0xffff80000000007fLL,
  3.4102+	25,	64,	17,	0xffff8000000000ffLL,
  3.4103+	26,	64,	17,	0xffff8000000001ffLL,
  3.4104+	27,	64,	17,	0xffff8000000003ffLL,
  3.4105+	28,	64,	17,	0xffff8000000007ffLL,
  3.4106+	29,	64,	17,	0xffff800000000fffLL,
  3.4107+	30,	64,	17,	0xffff800000001fffLL,
  3.4108+	31,	64,	17,	0xffff800000003fffLL,
  3.4109+	32,	64,	17,	0xffff800000007fffLL,
  3.4110+	33,	64,	17,	0xffff80000000ffffLL,
  3.4111+	34,	64,	17,	0xffff80000001ffffLL,
  3.4112+	35,	64,	17,	0xffff80000003ffffLL,
  3.4113+	36,	64,	17,	0xffff80000007ffffLL,
  3.4114+	37,	64,	17,	0xffff8000000fffffLL,
  3.4115+	38,	64,	17,	0xffff8000001fffffLL,
  3.4116+	39,	64,	17,	0xffff8000003fffffLL,
  3.4117+	40,	64,	17,	0xffff8000007fffffLL,
  3.4118+	41,	64,	17,	0xffff800000ffffffLL,
  3.4119+	42,	64,	17,	0xffff800001ffffffLL,
  3.4120+	43,	64,	17,	0xffff800003ffffffLL,
  3.4121+	44,	64,	17,	0xffff800007ffffffLL,
  3.4122+	45,	64,	17,	0xffff80000fffffffLL,
  3.4123+	46,	64,	17,	0xffff80001fffffffLL,
  3.4124+	47,	64,	17,	0xffff80003fffffffLL,
  3.4125+	48,	64,	17,	0xffff80007fffffffLL,
  3.4126+	17,	32,	17,	0xffff8000ffff8000LL,
  3.4127+	49,	64,	17,	0xffff8000ffffffffLL,
  3.4128+	18,	32,	17,	0xffff8001ffff8001LL,
  3.4129+	50,	64,	17,	0xffff8001ffffffffLL,
  3.4130+	19,	32,	17,	0xffff8003ffff8003LL,
  3.4131+	51,	64,	17,	0xffff8003ffffffffLL,
  3.4132+	20,	32,	17,	0xffff8007ffff8007LL,
  3.4133+	52,	64,	17,	0xffff8007ffffffffLL,
  3.4134+	21,	32,	17,	0xffff800fffff800fLL,
  3.4135+	53,	64,	17,	0xffff800fffffffffLL,
  3.4136+	22,	32,	17,	0xffff801fffff801fLL,
  3.4137+	54,	64,	17,	0xffff801fffffffffLL,
  3.4138+	23,	32,	17,	0xffff803fffff803fLL,
  3.4139+	55,	64,	17,	0xffff803fffffffffLL,
  3.4140+	24,	32,	17,	0xffff807fffff807fLL,
  3.4141+	56,	64,	17,	0xffff807fffffffffLL,
  3.4142+	25,	32,	17,	0xffff80ffffff80ffLL,
  3.4143+	57,	64,	17,	0xffff80ffffffffffLL,
  3.4144+	26,	32,	17,	0xffff81ffffff81ffLL,
  3.4145+	58,	64,	17,	0xffff81ffffffffffLL,
  3.4146+	27,	32,	17,	0xffff83ffffff83ffLL,
  3.4147+	59,	64,	17,	0xffff83ffffffffffLL,
  3.4148+	28,	32,	17,	0xffff87ffffff87ffLL,
  3.4149+	60,	64,	17,	0xffff87ffffffffffLL,
  3.4150+	29,	32,	17,	0xffff8fffffff8fffLL,
  3.4151+	61,	64,	17,	0xffff8fffffffffffLL,
  3.4152+	30,	32,	17,	0xffff9fffffff9fffLL,
  3.4153+	62,	64,	17,	0xffff9fffffffffffLL,
  3.4154+	31,	32,	17,	0xffffbfffffffbfffLL,
  3.4155+	63,	64,	17,	0xffffbfffffffffffLL,
  3.4156+	18,	64,	18,	0xffffc00000000000LL,
  3.4157+	19,	64,	18,	0xffffc00000000001LL,
  3.4158+	20,	64,	18,	0xffffc00000000003LL,
  3.4159+	21,	64,	18,	0xffffc00000000007LL,
  3.4160+	22,	64,	18,	0xffffc0000000000fLL,
  3.4161+	23,	64,	18,	0xffffc0000000001fLL,
  3.4162+	24,	64,	18,	0xffffc0000000003fLL,
  3.4163+	25,	64,	18,	0xffffc0000000007fLL,
  3.4164+	26,	64,	18,	0xffffc000000000ffLL,
  3.4165+	27,	64,	18,	0xffffc000000001ffLL,
  3.4166+	28,	64,	18,	0xffffc000000003ffLL,
  3.4167+	29,	64,	18,	0xffffc000000007ffLL,
  3.4168+	30,	64,	18,	0xffffc00000000fffLL,
  3.4169+	31,	64,	18,	0xffffc00000001fffLL,
  3.4170+	32,	64,	18,	0xffffc00000003fffLL,
  3.4171+	33,	64,	18,	0xffffc00000007fffLL,
  3.4172+	34,	64,	18,	0xffffc0000000ffffLL,
  3.4173+	35,	64,	18,	0xffffc0000001ffffLL,
  3.4174+	36,	64,	18,	0xffffc0000003ffffLL,
  3.4175+	37,	64,	18,	0xffffc0000007ffffLL,
  3.4176+	38,	64,	18,	0xffffc000000fffffLL,
  3.4177+	39,	64,	18,	0xffffc000001fffffLL,
  3.4178+	40,	64,	18,	0xffffc000003fffffLL,
  3.4179+	41,	64,	18,	0xffffc000007fffffLL,
  3.4180+	42,	64,	18,	0xffffc00000ffffffLL,
  3.4181+	43,	64,	18,	0xffffc00001ffffffLL,
  3.4182+	44,	64,	18,	0xffffc00003ffffffLL,
  3.4183+	45,	64,	18,	0xffffc00007ffffffLL,
  3.4184+	46,	64,	18,	0xffffc0000fffffffLL,
  3.4185+	47,	64,	18,	0xffffc0001fffffffLL,
  3.4186+	48,	64,	18,	0xffffc0003fffffffLL,
  3.4187+	49,	64,	18,	0xffffc0007fffffffLL,
  3.4188+	18,	32,	18,	0xffffc000ffffc000LL,
  3.4189+	50,	64,	18,	0xffffc000ffffffffLL,
  3.4190+	19,	32,	18,	0xffffc001ffffc001LL,
  3.4191+	51,	64,	18,	0xffffc001ffffffffLL,
  3.4192+	20,	32,	18,	0xffffc003ffffc003LL,
  3.4193+	52,	64,	18,	0xffffc003ffffffffLL,
  3.4194+	21,	32,	18,	0xffffc007ffffc007LL,
  3.4195+	53,	64,	18,	0xffffc007ffffffffLL,
  3.4196+	22,	32,	18,	0xffffc00fffffc00fLL,
  3.4197+	54,	64,	18,	0xffffc00fffffffffLL,
  3.4198+	23,	32,	18,	0xffffc01fffffc01fLL,
  3.4199+	55,	64,	18,	0xffffc01fffffffffLL,
  3.4200+	24,	32,	18,	0xffffc03fffffc03fLL,
  3.4201+	56,	64,	18,	0xffffc03fffffffffLL,
  3.4202+	25,	32,	18,	0xffffc07fffffc07fLL,
  3.4203+	57,	64,	18,	0xffffc07fffffffffLL,
  3.4204+	26,	32,	18,	0xffffc0ffffffc0ffLL,
  3.4205+	58,	64,	18,	0xffffc0ffffffffffLL,
  3.4206+	27,	32,	18,	0xffffc1ffffffc1ffLL,
  3.4207+	59,	64,	18,	0xffffc1ffffffffffLL,
  3.4208+	28,	32,	18,	0xffffc3ffffffc3ffLL,
  3.4209+	60,	64,	18,	0xffffc3ffffffffffLL,
  3.4210+	29,	32,	18,	0xffffc7ffffffc7ffLL,
  3.4211+	61,	64,	18,	0xffffc7ffffffffffLL,
  3.4212+	30,	32,	18,	0xffffcfffffffcfffLL,
  3.4213+	62,	64,	18,	0xffffcfffffffffffLL,
  3.4214+	31,	32,	18,	0xffffdfffffffdfffLL,
  3.4215+	63,	64,	18,	0xffffdfffffffffffLL,
  3.4216+	19,	64,	19,	0xffffe00000000000LL,
  3.4217+	20,	64,	19,	0xffffe00000000001LL,
  3.4218+	21,	64,	19,	0xffffe00000000003LL,
  3.4219+	22,	64,	19,	0xffffe00000000007LL,
  3.4220+	23,	64,	19,	0xffffe0000000000fLL,
  3.4221+	24,	64,	19,	0xffffe0000000001fLL,
  3.4222+	25,	64,	19,	0xffffe0000000003fLL,
  3.4223+	26,	64,	19,	0xffffe0000000007fLL,
  3.4224+	27,	64,	19,	0xffffe000000000ffLL,
  3.4225+	28,	64,	19,	0xffffe000000001ffLL,
  3.4226+	29,	64,	19,	0xffffe000000003ffLL,
  3.4227+	30,	64,	19,	0xffffe000000007ffLL,
  3.4228+	31,	64,	19,	0xffffe00000000fffLL,
  3.4229+	32,	64,	19,	0xffffe00000001fffLL,
  3.4230+	33,	64,	19,	0xffffe00000003fffLL,
  3.4231+	34,	64,	19,	0xffffe00000007fffLL,
  3.4232+	35,	64,	19,	0xffffe0000000ffffLL,
  3.4233+	36,	64,	19,	0xffffe0000001ffffLL,
  3.4234+	37,	64,	19,	0xffffe0000003ffffLL,
  3.4235+	38,	64,	19,	0xffffe0000007ffffLL,
  3.4236+	39,	64,	19,	0xffffe000000fffffLL,
  3.4237+	40,	64,	19,	0xffffe000001fffffLL,
  3.4238+	41,	64,	19,	0xffffe000003fffffLL,
  3.4239+	42,	64,	19,	0xffffe000007fffffLL,
  3.4240+	43,	64,	19,	0xffffe00000ffffffLL,
  3.4241+	44,	64,	19,	0xffffe00001ffffffLL,
  3.4242+	45,	64,	19,	0xffffe00003ffffffLL,
  3.4243+	46,	64,	19,	0xffffe00007ffffffLL,
  3.4244+	47,	64,	19,	0xffffe0000fffffffLL,
  3.4245+	48,	64,	19,	0xffffe0001fffffffLL,
  3.4246+	49,	64,	19,	0xffffe0003fffffffLL,
  3.4247+	50,	64,	19,	0xffffe0007fffffffLL,
  3.4248+	19,	32,	19,	0xffffe000ffffe000LL,
  3.4249+	51,	64,	19,	0xffffe000ffffffffLL,
  3.4250+	20,	32,	19,	0xffffe001ffffe001LL,
  3.4251+	52,	64,	19,	0xffffe001ffffffffLL,
  3.4252+	21,	32,	19,	0xffffe003ffffe003LL,
  3.4253+	53,	64,	19,	0xffffe003ffffffffLL,
  3.4254+	22,	32,	19,	0xffffe007ffffe007LL,
  3.4255+	54,	64,	19,	0xffffe007ffffffffLL,
  3.4256+	23,	32,	19,	0xffffe00fffffe00fLL,
  3.4257+	55,	64,	19,	0xffffe00fffffffffLL,
  3.4258+	24,	32,	19,	0xffffe01fffffe01fLL,
  3.4259+	56,	64,	19,	0xffffe01fffffffffLL,
  3.4260+	25,	32,	19,	0xffffe03fffffe03fLL,
  3.4261+	57,	64,	19,	0xffffe03fffffffffLL,
  3.4262+	26,	32,	19,	0xffffe07fffffe07fLL,
  3.4263+	58,	64,	19,	0xffffe07fffffffffLL,
  3.4264+	27,	32,	19,	0xffffe0ffffffe0ffLL,
  3.4265+	59,	64,	19,	0xffffe0ffffffffffLL,
  3.4266+	28,	32,	19,	0xffffe1ffffffe1ffLL,
  3.4267+	60,	64,	19,	0xffffe1ffffffffffLL,
  3.4268+	29,	32,	19,	0xffffe3ffffffe3ffLL,
  3.4269+	61,	64,	19,	0xffffe3ffffffffffLL,
  3.4270+	30,	32,	19,	0xffffe7ffffffe7ffLL,
  3.4271+	62,	64,	19,	0xffffe7ffffffffffLL,
  3.4272+	31,	32,	19,	0xffffefffffffefffLL,
  3.4273+	63,	64,	19,	0xffffefffffffffffLL,
  3.4274+	20,	64,	20,	0xfffff00000000000LL,
  3.4275+	21,	64,	20,	0xfffff00000000001LL,
  3.4276+	22,	64,	20,	0xfffff00000000003LL,
  3.4277+	23,	64,	20,	0xfffff00000000007LL,
  3.4278+	24,	64,	20,	0xfffff0000000000fLL,
  3.4279+	25,	64,	20,	0xfffff0000000001fLL,
  3.4280+	26,	64,	20,	0xfffff0000000003fLL,
  3.4281+	27,	64,	20,	0xfffff0000000007fLL,
  3.4282+	28,	64,	20,	0xfffff000000000ffLL,
  3.4283+	29,	64,	20,	0xfffff000000001ffLL,
  3.4284+	30,	64,	20,	0xfffff000000003ffLL,
  3.4285+	31,	64,	20,	0xfffff000000007ffLL,
  3.4286+	32,	64,	20,	0xfffff00000000fffLL,
  3.4287+	33,	64,	20,	0xfffff00000001fffLL,
  3.4288+	34,	64,	20,	0xfffff00000003fffLL,
  3.4289+	35,	64,	20,	0xfffff00000007fffLL,
  3.4290+	36,	64,	20,	0xfffff0000000ffffLL,
  3.4291+	37,	64,	20,	0xfffff0000001ffffLL,
  3.4292+	38,	64,	20,	0xfffff0000003ffffLL,
  3.4293+	39,	64,	20,	0xfffff0000007ffffLL,
  3.4294+	40,	64,	20,	0xfffff000000fffffLL,
  3.4295+	41,	64,	20,	0xfffff000001fffffLL,
  3.4296+	42,	64,	20,	0xfffff000003fffffLL,
  3.4297+	43,	64,	20,	0xfffff000007fffffLL,
  3.4298+	44,	64,	20,	0xfffff00000ffffffLL,
  3.4299+	45,	64,	20,	0xfffff00001ffffffLL,
  3.4300+	46,	64,	20,	0xfffff00003ffffffLL,
  3.4301+	47,	64,	20,	0xfffff00007ffffffLL,
  3.4302+	48,	64,	20,	0xfffff0000fffffffLL,
  3.4303+	49,	64,	20,	0xfffff0001fffffffLL,
  3.4304+	50,	64,	20,	0xfffff0003fffffffLL,
  3.4305+	51,	64,	20,	0xfffff0007fffffffLL,
  3.4306+	20,	32,	20,	0xfffff000fffff000LL,
  3.4307+	52,	64,	20,	0xfffff000ffffffffLL,
  3.4308+	21,	32,	20,	0xfffff001fffff001LL,
  3.4309+	53,	64,	20,	0xfffff001ffffffffLL,
  3.4310+	22,	32,	20,	0xfffff003fffff003LL,
  3.4311+	54,	64,	20,	0xfffff003ffffffffLL,
  3.4312+	23,	32,	20,	0xfffff007fffff007LL,
  3.4313+	55,	64,	20,	0xfffff007ffffffffLL,
  3.4314+	24,	32,	20,	0xfffff00ffffff00fLL,
  3.4315+	56,	64,	20,	0xfffff00fffffffffLL,
  3.4316+	25,	32,	20,	0xfffff01ffffff01fLL,
  3.4317+	57,	64,	20,	0xfffff01fffffffffLL,
  3.4318+	26,	32,	20,	0xfffff03ffffff03fLL,
  3.4319+	58,	64,	20,	0xfffff03fffffffffLL,
  3.4320+	27,	32,	20,	0xfffff07ffffff07fLL,
  3.4321+	59,	64,	20,	0xfffff07fffffffffLL,
  3.4322+	28,	32,	20,	0xfffff0fffffff0ffLL,
  3.4323+	60,	64,	20,	0xfffff0ffffffffffLL,
  3.4324+	29,	32,	20,	0xfffff1fffffff1ffLL,
  3.4325+	61,	64,	20,	0xfffff1ffffffffffLL,
  3.4326+	30,	32,	20,	0xfffff3fffffff3ffLL,
  3.4327+	62,	64,	20,	0xfffff3ffffffffffLL,
  3.4328+	31,	32,	20,	0xfffff7fffffff7ffLL,
  3.4329+	63,	64,	20,	0xfffff7ffffffffffLL,
  3.4330+	21,	64,	21,	0xfffff80000000000LL,
  3.4331+	22,	64,	21,	0xfffff80000000001LL,
  3.4332+	23,	64,	21,	0xfffff80000000003LL,
  3.4333+	24,	64,	21,	0xfffff80000000007LL,
  3.4334+	25,	64,	21,	0xfffff8000000000fLL,
  3.4335+	26,	64,	21,	0xfffff8000000001fLL,
  3.4336+	27,	64,	21,	0xfffff8000000003fLL,
  3.4337+	28,	64,	21,	0xfffff8000000007fLL,
  3.4338+	29,	64,	21,	0xfffff800000000ffLL,
  3.4339+	30,	64,	21,	0xfffff800000001ffLL,
  3.4340+	31,	64,	21,	0xfffff800000003ffLL,
  3.4341+	32,	64,	21,	0xfffff800000007ffLL,
  3.4342+	33,	64,	21,	0xfffff80000000fffLL,
  3.4343+	34,	64,	21,	0xfffff80000001fffLL,
  3.4344+	35,	64,	21,	0xfffff80000003fffLL,
  3.4345+	36,	64,	21,	0xfffff80000007fffLL,
  3.4346+	37,	64,	21,	0xfffff8000000ffffLL,
  3.4347+	38,	64,	21,	0xfffff8000001ffffLL,
  3.4348+	39,	64,	21,	0xfffff8000003ffffLL,
  3.4349+	40,	64,	21,	0xfffff8000007ffffLL,
  3.4350+	41,	64,	21,	0xfffff800000fffffLL,
  3.4351+	42,	64,	21,	0xfffff800001fffffLL,
  3.4352+	43,	64,	21,	0xfffff800003fffffLL,
  3.4353+	44,	64,	21,	0xfffff800007fffffLL,
  3.4354+	45,	64,	21,	0xfffff80000ffffffLL,
  3.4355+	46,	64,	21,	0xfffff80001ffffffLL,
  3.4356+	47,	64,	21,	0xfffff80003ffffffLL,
  3.4357+	48,	64,	21,	0xfffff80007ffffffLL,
  3.4358+	49,	64,	21,	0xfffff8000fffffffLL,
  3.4359+	50,	64,	21,	0xfffff8001fffffffLL,
  3.4360+	51,	64,	21,	0xfffff8003fffffffLL,
  3.4361+	52,	64,	21,	0xfffff8007fffffffLL,
  3.4362+	21,	32,	21,	0xfffff800fffff800LL,
  3.4363+	53,	64,	21,	0xfffff800ffffffffLL,
  3.4364+	22,	32,	21,	0xfffff801fffff801LL,
  3.4365+	54,	64,	21,	0xfffff801ffffffffLL,
  3.4366+	23,	32,	21,	0xfffff803fffff803LL,
  3.4367+	55,	64,	21,	0xfffff803ffffffffLL,
  3.4368+	24,	32,	21,	0xfffff807fffff807LL,
  3.4369+	56,	64,	21,	0xfffff807ffffffffLL,
  3.4370+	25,	32,	21,	0xfffff80ffffff80fLL,
  3.4371+	57,	64,	21,	0xfffff80fffffffffLL,
  3.4372+	26,	32,	21,	0xfffff81ffffff81fLL,
  3.4373+	58,	64,	21,	0xfffff81fffffffffLL,
  3.4374+	27,	32,	21,	0xfffff83ffffff83fLL,
  3.4375+	59,	64,	21,	0xfffff83fffffffffLL,
  3.4376+	28,	32,	21,	0xfffff87ffffff87fLL,
  3.4377+	60,	64,	21,	0xfffff87fffffffffLL,
  3.4378+	29,	32,	21,	0xfffff8fffffff8ffLL,
  3.4379+	61,	64,	21,	0xfffff8ffffffffffLL,
  3.4380+	30,	32,	21,	0xfffff9fffffff9ffLL,
  3.4381+	62,	64,	21,	0xfffff9ffffffffffLL,
  3.4382+	31,	32,	21,	0xfffffbfffffffbffLL,
  3.4383+	63,	64,	21,	0xfffffbffffffffffLL,
  3.4384+	22,	64,	22,	0xfffffc0000000000LL,
  3.4385+	23,	64,	22,	0xfffffc0000000001LL,
  3.4386+	24,	64,	22,	0xfffffc0000000003LL,
  3.4387+	25,	64,	22,	0xfffffc0000000007LL,
  3.4388+	26,	64,	22,	0xfffffc000000000fLL,
  3.4389+	27,	64,	22,	0xfffffc000000001fLL,
  3.4390+	28,	64,	22,	0xfffffc000000003fLL,
  3.4391+	29,	64,	22,	0xfffffc000000007fLL,
  3.4392+	30,	64,	22,	0xfffffc00000000ffLL,
  3.4393+	31,	64,	22,	0xfffffc00000001ffLL,
  3.4394+	32,	64,	22,	0xfffffc00000003ffLL,
  3.4395+	33,	64,	22,	0xfffffc00000007ffLL,
  3.4396+	34,	64,	22,	0xfffffc0000000fffLL,
  3.4397+	35,	64,	22,	0xfffffc0000001fffLL,
  3.4398+	36,	64,	22,	0xfffffc0000003fffLL,
  3.4399+	37,	64,	22,	0xfffffc0000007fffLL,
  3.4400+	38,	64,	22,	0xfffffc000000ffffLL,
  3.4401+	39,	64,	22,	0xfffffc000001ffffLL,
  3.4402+	40,	64,	22,	0xfffffc000003ffffLL,
  3.4403+	41,	64,	22,	0xfffffc000007ffffLL,
  3.4404+	42,	64,	22,	0xfffffc00000fffffLL,
  3.4405+	43,	64,	22,	0xfffffc00001fffffLL,
  3.4406+	44,	64,	22,	0xfffffc00003fffffLL,
  3.4407+	45,	64,	22,	0xfffffc00007fffffLL,
  3.4408+	46,	64,	22,	0xfffffc0000ffffffLL,
  3.4409+	47,	64,	22,	0xfffffc0001ffffffLL,
  3.4410+	48,	64,	22,	0xfffffc0003ffffffLL,
  3.4411+	49,	64,	22,	0xfffffc0007ffffffLL,
  3.4412+	50,	64,	22,	0xfffffc000fffffffLL,
  3.4413+	51,	64,	22,	0xfffffc001fffffffLL,
  3.4414+	52,	64,	22,	0xfffffc003fffffffLL,
  3.4415+	53,	64,	22,	0xfffffc007fffffffLL,
  3.4416+	22,	32,	22,	0xfffffc00fffffc00LL,
  3.4417+	54,	64,	22,	0xfffffc00ffffffffLL,
  3.4418+	23,	32,	22,	0xfffffc01fffffc01LL,
  3.4419+	55,	64,	22,	0xfffffc01ffffffffLL,
  3.4420+	24,	32,	22,	0xfffffc03fffffc03LL,
  3.4421+	56,	64,	22,	0xfffffc03ffffffffLL,
  3.4422+	25,	32,	22,	0xfffffc07fffffc07LL,
  3.4423+	57,	64,	22,	0xfffffc07ffffffffLL,
  3.4424+	26,	32,	22,	0xfffffc0ffffffc0fLL,
  3.4425+	58,	64,	22,	0xfffffc0fffffffffLL,
  3.4426+	27,	32,	22,	0xfffffc1ffffffc1fLL,
  3.4427+	59,	64,	22,	0xfffffc1fffffffffLL,
  3.4428+	28,	32,	22,	0xfffffc3ffffffc3fLL,
  3.4429+	60,	64,	22,	0xfffffc3fffffffffLL,
  3.4430+	29,	32,	22,	0xfffffc7ffffffc7fLL,
  3.4431+	61,	64,	22,	0xfffffc7fffffffffLL,
  3.4432+	30,	32,	22,	0xfffffcfffffffcffLL,
  3.4433+	62,	64,	22,	0xfffffcffffffffffLL,
  3.4434+	31,	32,	22,	0xfffffdfffffffdffLL,
  3.4435+	63,	64,	22,	0xfffffdffffffffffLL,
  3.4436+	23,	64,	23,	0xfffffe0000000000LL,
  3.4437+	24,	64,	23,	0xfffffe0000000001LL,
  3.4438+	25,	64,	23,	0xfffffe0000000003LL,
  3.4439+	26,	64,	23,	0xfffffe0000000007LL,
  3.4440+	27,	64,	23,	0xfffffe000000000fLL,
  3.4441+	28,	64,	23,	0xfffffe000000001fLL,
  3.4442+	29,	64,	23,	0xfffffe000000003fLL,
  3.4443+	30,	64,	23,	0xfffffe000000007fLL,
  3.4444+	31,	64,	23,	0xfffffe00000000ffLL,
  3.4445+	32,	64,	23,	0xfffffe00000001ffLL,
  3.4446+	33,	64,	23,	0xfffffe00000003ffLL,
  3.4447+	34,	64,	23,	0xfffffe00000007ffLL,
  3.4448+	35,	64,	23,	0xfffffe0000000fffLL,
  3.4449+	36,	64,	23,	0xfffffe0000001fffLL,
  3.4450+	37,	64,	23,	0xfffffe0000003fffLL,
  3.4451+	38,	64,	23,	0xfffffe0000007fffLL,
  3.4452+	39,	64,	23,	0xfffffe000000ffffLL,
  3.4453+	40,	64,	23,	0xfffffe000001ffffLL,
  3.4454+	41,	64,	23,	0xfffffe000003ffffLL,
  3.4455+	42,	64,	23,	0xfffffe000007ffffLL,
  3.4456+	43,	64,	23,	0xfffffe00000fffffLL,
  3.4457+	44,	64,	23,	0xfffffe00001fffffLL,
  3.4458+	45,	64,	23,	0xfffffe00003fffffLL,
  3.4459+	46,	64,	23,	0xfffffe00007fffffLL,
  3.4460+	47,	64,	23,	0xfffffe0000ffffffLL,
  3.4461+	48,	64,	23,	0xfffffe0001ffffffLL,
  3.4462+	49,	64,	23,	0xfffffe0003ffffffLL,
  3.4463+	50,	64,	23,	0xfffffe0007ffffffLL,
  3.4464+	51,	64,	23,	0xfffffe000fffffffLL,
  3.4465+	52,	64,	23,	0xfffffe001fffffffLL,
  3.4466+	53,	64,	23,	0xfffffe003fffffffLL,
  3.4467+	54,	64,	23,	0xfffffe007fffffffLL,
  3.4468+	23,	32,	23,	0xfffffe00fffffe00LL,
  3.4469+	55,	64,	23,	0xfffffe00ffffffffLL,
  3.4470+	24,	32,	23,	0xfffffe01fffffe01LL,
  3.4471+	56,	64,	23,	0xfffffe01ffffffffLL,
  3.4472+	25,	32,	23,	0xfffffe03fffffe03LL,
  3.4473+	57,	64,	23,	0xfffffe03ffffffffLL,
  3.4474+	26,	32,	23,	0xfffffe07fffffe07LL,
  3.4475+	58,	64,	23,	0xfffffe07ffffffffLL,
  3.4476+	27,	32,	23,	0xfffffe0ffffffe0fLL,
  3.4477+	59,	64,	23,	0xfffffe0fffffffffLL,
  3.4478+	28,	32,	23,	0xfffffe1ffffffe1fLL,
  3.4479+	60,	64,	23,	0xfffffe1fffffffffLL,
  3.4480+	29,	32,	23,	0xfffffe3ffffffe3fLL,
  3.4481+	61,	64,	23,	0xfffffe3fffffffffLL,
  3.4482+	30,	32,	23,	0xfffffe7ffffffe7fLL,
  3.4483+	62,	64,	23,	0xfffffe7fffffffffLL,
  3.4484+	31,	32,	23,	0xfffffefffffffeffLL,
  3.4485+	63,	64,	23,	0xfffffeffffffffffLL,
  3.4486+	24,	64,	24,	0xffffff0000000000LL,
  3.4487+	25,	64,	24,	0xffffff0000000001LL,
  3.4488+	26,	64,	24,	0xffffff0000000003LL,
  3.4489+	27,	64,	24,	0xffffff0000000007LL,
  3.4490+	28,	64,	24,	0xffffff000000000fLL,
  3.4491+	29,	64,	24,	0xffffff000000001fLL,
  3.4492+	30,	64,	24,	0xffffff000000003fLL,
  3.4493+	31,	64,	24,	0xffffff000000007fLL,
  3.4494+	32,	64,	24,	0xffffff00000000ffLL,
  3.4495+	33,	64,	24,	0xffffff00000001ffLL,
  3.4496+	34,	64,	24,	0xffffff00000003ffLL,
  3.4497+	35,	64,	24,	0xffffff00000007ffLL,
  3.4498+	36,	64,	24,	0xffffff0000000fffLL,
  3.4499+	37,	64,	24,	0xffffff0000001fffLL,
  3.4500+	38,	64,	24,	0xffffff0000003fffLL,
  3.4501+	39,	64,	24,	0xffffff0000007fffLL,
  3.4502+	40,	64,	24,	0xffffff000000ffffLL,
  3.4503+	41,	64,	24,	0xffffff000001ffffLL,
  3.4504+	42,	64,	24,	0xffffff000003ffffLL,
  3.4505+	43,	64,	24,	0xffffff000007ffffLL,
  3.4506+	44,	64,	24,	0xffffff00000fffffLL,
  3.4507+	45,	64,	24,	0xffffff00001fffffLL,
  3.4508+	46,	64,	24,	0xffffff00003fffffLL,
  3.4509+	47,	64,	24,	0xffffff00007fffffLL,
  3.4510+	48,	64,	24,	0xffffff0000ffffffLL,
  3.4511+	49,	64,	24,	0xffffff0001ffffffLL,
  3.4512+	50,	64,	24,	0xffffff0003ffffffLL,
  3.4513+	51,	64,	24,	0xffffff0007ffffffLL,
  3.4514+	52,	64,	24,	0xffffff000fffffffLL,
  3.4515+	53,	64,	24,	0xffffff001fffffffLL,
  3.4516+	54,	64,	24,	0xffffff003fffffffLL,
  3.4517+	55,	64,	24,	0xffffff007fffffffLL,
  3.4518+	24,	32,	24,	0xffffff00ffffff00LL,
  3.4519+	56,	64,	24,	0xffffff00ffffffffLL,
  3.4520+	25,	32,	24,	0xffffff01ffffff01LL,
  3.4521+	57,	64,	24,	0xffffff01ffffffffLL,
  3.4522+	26,	32,	24,	0xffffff03ffffff03LL,
  3.4523+	58,	64,	24,	0xffffff03ffffffffLL,
  3.4524+	27,	32,	24,	0xffffff07ffffff07LL,
  3.4525+	59,	64,	24,	0xffffff07ffffffffLL,
  3.4526+	28,	32,	24,	0xffffff0fffffff0fLL,
  3.4527+	60,	64,	24,	0xffffff0fffffffffLL,
  3.4528+	29,	32,	24,	0xffffff1fffffff1fLL,
  3.4529+	61,	64,	24,	0xffffff1fffffffffLL,
  3.4530+	30,	32,	24,	0xffffff3fffffff3fLL,
  3.4531+	62,	64,	24,	0xffffff3fffffffffLL,
  3.4532+	31,	32,	24,	0xffffff7fffffff7fLL,
  3.4533+	63,	64,	24,	0xffffff7fffffffffLL,
  3.4534+	25,	64,	25,	0xffffff8000000000LL,
  3.4535+	26,	64,	25,	0xffffff8000000001LL,
  3.4536+	27,	64,	25,	0xffffff8000000003LL,
  3.4537+	28,	64,	25,	0xffffff8000000007LL,
  3.4538+	29,	64,	25,	0xffffff800000000fLL,
  3.4539+	30,	64,	25,	0xffffff800000001fLL,
  3.4540+	31,	64,	25,	0xffffff800000003fLL,
  3.4541+	32,	64,	25,	0xffffff800000007fLL,
  3.4542+	33,	64,	25,	0xffffff80000000ffLL,
  3.4543+	34,	64,	25,	0xffffff80000001ffLL,
  3.4544+	35,	64,	25,	0xffffff80000003ffLL,
  3.4545+	36,	64,	25,	0xffffff80000007ffLL,
  3.4546+	37,	64,	25,	0xffffff8000000fffLL,
  3.4547+	38,	64,	25,	0xffffff8000001fffLL,
  3.4548+	39,	64,	25,	0xffffff8000003fffLL,
  3.4549+	40,	64,	25,	0xffffff8000007fffLL,
  3.4550+	41,	64,	25,	0xffffff800000ffffLL,
  3.4551+	42,	64,	25,	0xffffff800001ffffLL,
  3.4552+	43,	64,	25,	0xffffff800003ffffLL,
  3.4553+	44,	64,	25,	0xffffff800007ffffLL,
  3.4554+	45,	64,	25,	0xffffff80000fffffLL,
  3.4555+	46,	64,	25,	0xffffff80001fffffLL,
  3.4556+	47,	64,	25,	0xffffff80003fffffLL,
  3.4557+	48,	64,	25,	0xffffff80007fffffLL,
  3.4558+	49,	64,	25,	0xffffff8000ffffffLL,
  3.4559+	50,	64,	25,	0xffffff8001ffffffLL,
  3.4560+	51,	64,	25,	0xffffff8003ffffffLL,
  3.4561+	52,	64,	25,	0xffffff8007ffffffLL,
  3.4562+	53,	64,	25,	0xffffff800fffffffLL,
  3.4563+	54,	64,	25,	0xffffff801fffffffLL,
  3.4564+	55,	64,	25,	0xffffff803fffffffLL,
  3.4565+	56,	64,	25,	0xffffff807fffffffLL,
  3.4566+	25,	32,	25,	0xffffff80ffffff80LL,
  3.4567+	57,	64,	25,	0xffffff80ffffffffLL,
  3.4568+	26,	32,	25,	0xffffff81ffffff81LL,
  3.4569+	58,	64,	25,	0xffffff81ffffffffLL,
  3.4570+	27,	32,	25,	0xffffff83ffffff83LL,
  3.4571+	59,	64,	25,	0xffffff83ffffffffLL,
  3.4572+	28,	32,	25,	0xffffff87ffffff87LL,
  3.4573+	60,	64,	25,	0xffffff87ffffffffLL,
  3.4574+	29,	32,	25,	0xffffff8fffffff8fLL,
  3.4575+	61,	64,	25,	0xffffff8fffffffffLL,
  3.4576+	30,	32,	25,	0xffffff9fffffff9fLL,
  3.4577+	62,	64,	25,	0xffffff9fffffffffLL,
  3.4578+	31,	32,	25,	0xffffffbfffffffbfLL,
  3.4579+	63,	64,	25,	0xffffffbfffffffffLL,
  3.4580+	26,	64,	26,	0xffffffc000000000LL,
  3.4581+	27,	64,	26,	0xffffffc000000001LL,
  3.4582+	28,	64,	26,	0xffffffc000000003LL,
  3.4583+	29,	64,	26,	0xffffffc000000007LL,
  3.4584+	30,	64,	26,	0xffffffc00000000fLL,
  3.4585+	31,	64,	26,	0xffffffc00000001fLL,
  3.4586+	32,	64,	26,	0xffffffc00000003fLL,
  3.4587+	33,	64,	26,	0xffffffc00000007fLL,
  3.4588+	34,	64,	26,	0xffffffc0000000ffLL,
  3.4589+	35,	64,	26,	0xffffffc0000001ffLL,
  3.4590+	36,	64,	26,	0xffffffc0000003ffLL,
  3.4591+	37,	64,	26,	0xffffffc0000007ffLL,
  3.4592+	38,	64,	26,	0xffffffc000000fffLL,
  3.4593+	39,	64,	26,	0xffffffc000001fffLL,
  3.4594+	40,	64,	26,	0xffffffc000003fffLL,
  3.4595+	41,	64,	26,	0xffffffc000007fffLL,
  3.4596+	42,	64,	26,	0xffffffc00000ffffLL,
  3.4597+	43,	64,	26,	0xffffffc00001ffffLL,
  3.4598+	44,	64,	26,	0xffffffc00003ffffLL,
  3.4599+	45,	64,	26,	0xffffffc00007ffffLL,
  3.4600+	46,	64,	26,	0xffffffc0000fffffLL,
  3.4601+	47,	64,	26,	0xffffffc0001fffffLL,
  3.4602+	48,	64,	26,	0xffffffc0003fffffLL,
  3.4603+	49,	64,	26,	0xffffffc0007fffffLL,
  3.4604+	50,	64,	26,	0xffffffc000ffffffLL,
  3.4605+	51,	64,	26,	0xffffffc001ffffffLL,
  3.4606+	52,	64,	26,	0xffffffc003ffffffLL,
  3.4607+	53,	64,	26,	0xffffffc007ffffffLL,
  3.4608+	54,	64,	26,	0xffffffc00fffffffLL,
  3.4609+	55,	64,	26,	0xffffffc01fffffffLL,
  3.4610+	56,	64,	26,	0xffffffc03fffffffLL,
  3.4611+	57,	64,	26,	0xffffffc07fffffffLL,
  3.4612+	26,	32,	26,	0xffffffc0ffffffc0LL,
  3.4613+	58,	64,	26,	0xffffffc0ffffffffLL,
  3.4614+	27,	32,	26,	0xffffffc1ffffffc1LL,
  3.4615+	59,	64,	26,	0xffffffc1ffffffffLL,
  3.4616+	28,	32,	26,	0xffffffc3ffffffc3LL,
  3.4617+	60,	64,	26,	0xffffffc3ffffffffLL,
  3.4618+	29,	32,	26,	0xffffffc7ffffffc7LL,
  3.4619+	61,	64,	26,	0xffffffc7ffffffffLL,
  3.4620+	30,	32,	26,	0xffffffcfffffffcfLL,
  3.4621+	62,	64,	26,	0xffffffcfffffffffLL,
  3.4622+	31,	32,	26,	0xffffffdfffffffdfLL,
  3.4623+	63,	64,	26,	0xffffffdfffffffffLL,
  3.4624+	27,	64,	27,	0xffffffe000000000LL,
  3.4625+	28,	64,	27,	0xffffffe000000001LL,
  3.4626+	29,	64,	27,	0xffffffe000000003LL,
  3.4627+	30,	64,	27,	0xffffffe000000007LL,
  3.4628+	31,	64,	27,	0xffffffe00000000fLL,
  3.4629+	32,	64,	27,	0xffffffe00000001fLL,
  3.4630+	33,	64,	27,	0xffffffe00000003fLL,
  3.4631+	34,	64,	27,	0xffffffe00000007fLL,
  3.4632+	35,	64,	27,	0xffffffe0000000ffLL,
  3.4633+	36,	64,	27,	0xffffffe0000001ffLL,
  3.4634+	37,	64,	27,	0xffffffe0000003ffLL,
  3.4635+	38,	64,	27,	0xffffffe0000007ffLL,
  3.4636+	39,	64,	27,	0xffffffe000000fffLL,
  3.4637+	40,	64,	27,	0xffffffe000001fffLL,
  3.4638+	41,	64,	27,	0xffffffe000003fffLL,
  3.4639+	42,	64,	27,	0xffffffe000007fffLL,
  3.4640+	43,	64,	27,	0xffffffe00000ffffLL,
  3.4641+	44,	64,	27,	0xffffffe00001ffffLL,
  3.4642+	45,	64,	27,	0xffffffe00003ffffLL,
  3.4643+	46,	64,	27,	0xffffffe00007ffffLL,
  3.4644+	47,	64,	27,	0xffffffe0000fffffLL,
  3.4645+	48,	64,	27,	0xffffffe0001fffffLL,
  3.4646+	49,	64,	27,	0xffffffe0003fffffLL,
  3.4647+	50,	64,	27,	0xffffffe0007fffffLL,
  3.4648+	51,	64,	27,	0xffffffe000ffffffLL,
  3.4649+	52,	64,	27,	0xffffffe001ffffffLL,
  3.4650+	53,	64,	27,	0xffffffe003ffffffLL,
  3.4651+	54,	64,	27,	0xffffffe007ffffffLL,
  3.4652+	55,	64,	27,	0xffffffe00fffffffLL,
  3.4653+	56,	64,	27,	0xffffffe01fffffffLL,
  3.4654+	57,	64,	27,	0xffffffe03fffffffLL,
  3.4655+	58,	64,	27,	0xffffffe07fffffffLL,
  3.4656+	27,	32,	27,	0xffffffe0ffffffe0LL,
  3.4657+	59,	64,	27,	0xffffffe0ffffffffLL,
  3.4658+	28,	32,	27,	0xffffffe1ffffffe1LL,
  3.4659+	60,	64,	27,	0xffffffe1ffffffffLL,
  3.4660+	29,	32,	27,	0xffffffe3ffffffe3LL,
  3.4661+	61,	64,	27,	0xffffffe3ffffffffLL,
  3.4662+	30,	32,	27,	0xffffffe7ffffffe7LL,
  3.4663+	62,	64,	27,	0xffffffe7ffffffffLL,
  3.4664+	31,	32,	27,	0xffffffefffffffefLL,
  3.4665+	63,	64,	27,	0xffffffefffffffffLL,
  3.4666+	28,	64,	28,	0xfffffff000000000LL,
  3.4667+	29,	64,	28,	0xfffffff000000001LL,
  3.4668+	30,	64,	28,	0xfffffff000000003LL,
  3.4669+	31,	64,	28,	0xfffffff000000007LL,
  3.4670+	32,	64,	28,	0xfffffff00000000fLL,
  3.4671+	33,	64,	28,	0xfffffff00000001fLL,
  3.4672+	34,	64,	28,	0xfffffff00000003fLL,
  3.4673+	35,	64,	28,	0xfffffff00000007fLL,
  3.4674+	36,	64,	28,	0xfffffff0000000ffLL,
  3.4675+	37,	64,	28,	0xfffffff0000001ffLL,
  3.4676+	38,	64,	28,	0xfffffff0000003ffLL,
  3.4677+	39,	64,	28,	0xfffffff0000007ffLL,
  3.4678+	40,	64,	28,	0xfffffff000000fffLL,
  3.4679+	41,	64,	28,	0xfffffff000001fffLL,
  3.4680+	42,	64,	28,	0xfffffff000003fffLL,
  3.4681+	43,	64,	28,	0xfffffff000007fffLL,
  3.4682+	44,	64,	28,	0xfffffff00000ffffLL,
  3.4683+	45,	64,	28,	0xfffffff00001ffffLL,
  3.4684+	46,	64,	28,	0xfffffff00003ffffLL,
  3.4685+	47,	64,	28,	0xfffffff00007ffffLL,
  3.4686+	48,	64,	28,	0xfffffff0000fffffLL,
  3.4687+	49,	64,	28,	0xfffffff0001fffffLL,
  3.4688+	50,	64,	28,	0xfffffff0003fffffLL,
  3.4689+	51,	64,	28,	0xfffffff0007fffffLL,
  3.4690+	52,	64,	28,	0xfffffff000ffffffLL,
  3.4691+	53,	64,	28,	0xfffffff001ffffffLL,
  3.4692+	54,	64,	28,	0xfffffff003ffffffLL,
  3.4693+	55,	64,	28,	0xfffffff007ffffffLL,
  3.4694+	56,	64,	28,	0xfffffff00fffffffLL,
  3.4695+	57,	64,	28,	0xfffffff01fffffffLL,
  3.4696+	58,	64,	28,	0xfffffff03fffffffLL,
  3.4697+	59,	64,	28,	0xfffffff07fffffffLL,
  3.4698+	28,	32,	28,	0xfffffff0fffffff0LL,
  3.4699+	60,	64,	28,	0xfffffff0ffffffffLL,
  3.4700+	29,	32,	28,	0xfffffff1fffffff1LL,
  3.4701+	61,	64,	28,	0xfffffff1ffffffffLL,
  3.4702+	30,	32,	28,	0xfffffff3fffffff3LL,
  3.4703+	62,	64,	28,	0xfffffff3ffffffffLL,
  3.4704+	31,	32,	28,	0xfffffff7fffffff7LL,
  3.4705+	63,	64,	28,	0xfffffff7ffffffffLL,
  3.4706+	29,	64,	29,	0xfffffff800000000LL,
  3.4707+	30,	64,	29,	0xfffffff800000001LL,
  3.4708+	31,	64,	29,	0xfffffff800000003LL,
  3.4709+	32,	64,	29,	0xfffffff800000007LL,
  3.4710+	33,	64,	29,	0xfffffff80000000fLL,
  3.4711+	34,	64,	29,	0xfffffff80000001fLL,
  3.4712+	35,	64,	29,	0xfffffff80000003fLL,
  3.4713+	36,	64,	29,	0xfffffff80000007fLL,
  3.4714+	37,	64,	29,	0xfffffff8000000ffLL,
  3.4715+	38,	64,	29,	0xfffffff8000001ffLL,
  3.4716+	39,	64,	29,	0xfffffff8000003ffLL,
  3.4717+	40,	64,	29,	0xfffffff8000007ffLL,
  3.4718+	41,	64,	29,	0xfffffff800000fffLL,
  3.4719+	42,	64,	29,	0xfffffff800001fffLL,
  3.4720+	43,	64,	29,	0xfffffff800003fffLL,
  3.4721+	44,	64,	29,	0xfffffff800007fffLL,
  3.4722+	45,	64,	29,	0xfffffff80000ffffLL,
  3.4723+	46,	64,	29,	0xfffffff80001ffffLL,
  3.4724+	47,	64,	29,	0xfffffff80003ffffLL,
  3.4725+	48,	64,	29,	0xfffffff80007ffffLL,
  3.4726+	49,	64,	29,	0xfffffff8000fffffLL,
  3.4727+	50,	64,	29,	0xfffffff8001fffffLL,
  3.4728+	51,	64,	29,	0xfffffff8003fffffLL,
  3.4729+	52,	64,	29,	0xfffffff8007fffffLL,
  3.4730+	53,	64,	29,	0xfffffff800ffffffLL,
  3.4731+	54,	64,	29,	0xfffffff801ffffffLL,
  3.4732+	55,	64,	29,	0xfffffff803ffffffLL,
  3.4733+	56,	64,	29,	0xfffffff807ffffffLL,
  3.4734+	57,	64,	29,	0xfffffff80fffffffLL,
  3.4735+	58,	64,	29,	0xfffffff81fffffffLL,
  3.4736+	59,	64,	29,	0xfffffff83fffffffLL,
  3.4737+	60,	64,	29,	0xfffffff87fffffffLL,
  3.4738+	29,	32,	29,	0xfffffff8fffffff8LL,
  3.4739+	61,	64,	29,	0xfffffff8ffffffffLL,
  3.4740+	30,	32,	29,	0xfffffff9fffffff9LL,
  3.4741+	62,	64,	29,	0xfffffff9ffffffffLL,
  3.4742+	31,	32,	29,	0xfffffffbfffffffbLL,
  3.4743+	63,	64,	29,	0xfffffffbffffffffLL,
  3.4744+	30,	64,	30,	0xfffffffc00000000LL,
  3.4745+	31,	64,	30,	0xfffffffc00000001LL,
  3.4746+	32,	64,	30,	0xfffffffc00000003LL,
  3.4747+	33,	64,	30,	0xfffffffc00000007LL,
  3.4748+	34,	64,	30,	0xfffffffc0000000fLL,
  3.4749+	35,	64,	30,	0xfffffffc0000001fLL,
  3.4750+	36,	64,	30,	0xfffffffc0000003fLL,
  3.4751+	37,	64,	30,	0xfffffffc0000007fLL,
  3.4752+	38,	64,	30,	0xfffffffc000000ffLL,
  3.4753+	39,	64,	30,	0xfffffffc000001ffLL,
  3.4754+	40,	64,	30,	0xfffffffc000003ffLL,
  3.4755+	41,	64,	30,	0xfffffffc000007ffLL,
  3.4756+	42,	64,	30,	0xfffffffc00000fffLL,
  3.4757+	43,	64,	30,	0xfffffffc00001fffLL,
  3.4758+	44,	64,	30,	0xfffffffc00003fffLL,
  3.4759+	45,	64,	30,	0xfffffffc00007fffLL,
  3.4760+	46,	64,	30,	0xfffffffc0000ffffLL,
  3.4761+	47,	64,	30,	0xfffffffc0001ffffLL,
  3.4762+	48,	64,	30,	0xfffffffc0003ffffLL,
  3.4763+	49,	64,	30,	0xfffffffc0007ffffLL,
  3.4764+	50,	64,	30,	0xfffffffc000fffffLL,
  3.4765+	51,	64,	30,	0xfffffffc001fffffLL,
  3.4766+	52,	64,	30,	0xfffffffc003fffffLL,
  3.4767+	53,	64,	30,	0xfffffffc007fffffLL,
  3.4768+	54,	64,	30,	0xfffffffc00ffffffLL,
  3.4769+	55,	64,	30,	0xfffffffc01ffffffLL,
  3.4770+	56,	64,	30,	0xfffffffc03ffffffLL,
  3.4771+	57,	64,	30,	0xfffffffc07ffffffLL,
  3.4772+	58,	64,	30,	0xfffffffc0fffffffLL,
  3.4773+	59,	64,	30,	0xfffffffc1fffffffLL,
  3.4774+	60,	64,	30,	0xfffffffc3fffffffLL,
  3.4775+	61,	64,	30,	0xfffffffc7fffffffLL,
  3.4776+	30,	32,	30,	0xfffffffcfffffffcLL,
  3.4777+	62,	64,	30,	0xfffffffcffffffffLL,
  3.4778+	31,	32,	30,	0xfffffffdfffffffdLL,
  3.4779+	63,	64,	30,	0xfffffffdffffffffLL,
  3.4780+	31,	64,	31,	0xfffffffe00000000LL,
  3.4781+	32,	64,	31,	0xfffffffe00000001LL,
  3.4782+	33,	64,	31,	0xfffffffe00000003LL,
  3.4783+	34,	64,	31,	0xfffffffe00000007LL,
  3.4784+	35,	64,	31,	0xfffffffe0000000fLL,
  3.4785+	36,	64,	31,	0xfffffffe0000001fLL,
  3.4786+	37,	64,	31,	0xfffffffe0000003fLL,
  3.4787+	38,	64,	31,	0xfffffffe0000007fLL,
  3.4788+	39,	64,	31,	0xfffffffe000000ffLL,
  3.4789+	40,	64,	31,	0xfffffffe000001ffLL,
  3.4790+	41,	64,	31,	0xfffffffe000003ffLL,
  3.4791+	42,	64,	31,	0xfffffffe000007ffLL,
  3.4792+	43,	64,	31,	0xfffffffe00000fffLL,
  3.4793+	44,	64,	31,	0xfffffffe00001fffLL,
  3.4794+	45,	64,	31,	0xfffffffe00003fffLL,
  3.4795+	46,	64,	31,	0xfffffffe00007fffLL,
  3.4796+	47,	64,	31,	0xfffffffe0000ffffLL,
  3.4797+	48,	64,	31,	0xfffffffe0001ffffLL,
  3.4798+	49,	64,	31,	0xfffffffe0003ffffLL,
  3.4799+	50,	64,	31,	0xfffffffe0007ffffLL,
  3.4800+	51,	64,	31,	0xfffffffe000fffffLL,
  3.4801+	52,	64,	31,	0xfffffffe001fffffLL,
  3.4802+	53,	64,	31,	0xfffffffe003fffffLL,
  3.4803+	54,	64,	31,	0xfffffffe007fffffLL,
  3.4804+	55,	64,	31,	0xfffffffe00ffffffLL,
  3.4805+	56,	64,	31,	0xfffffffe01ffffffLL,
  3.4806+	57,	64,	31,	0xfffffffe03ffffffLL,
  3.4807+	58,	64,	31,	0xfffffffe07ffffffLL,
  3.4808+	59,	64,	31,	0xfffffffe0fffffffLL,
  3.4809+	60,	64,	31,	0xfffffffe1fffffffLL,
  3.4810+	61,	64,	31,	0xfffffffe3fffffffLL,
  3.4811+	62,	64,	31,	0xfffffffe7fffffffLL,
  3.4812+	31,	32,	31,	0xfffffffefffffffeLL,
  3.4813+	63,	64,	31,	0xfffffffeffffffffLL,
  3.4814+	32,	64,	32,	0xffffffff00000000LL,
  3.4815+	33,	64,	32,	0xffffffff00000001LL,
  3.4816+	34,	64,	32,	0xffffffff00000003LL,
  3.4817+	35,	64,	32,	0xffffffff00000007LL,
  3.4818+	36,	64,	32,	0xffffffff0000000fLL,
  3.4819+	37,	64,	32,	0xffffffff0000001fLL,
  3.4820+	38,	64,	32,	0xffffffff0000003fLL,
  3.4821+	39,	64,	32,	0xffffffff0000007fLL,
  3.4822+	40,	64,	32,	0xffffffff000000ffLL,
  3.4823+	41,	64,	32,	0xffffffff000001ffLL,
  3.4824+	42,	64,	32,	0xffffffff000003ffLL,
  3.4825+	43,	64,	32,	0xffffffff000007ffLL,
  3.4826+	44,	64,	32,	0xffffffff00000fffLL,
  3.4827+	45,	64,	32,	0xffffffff00001fffLL,
  3.4828+	46,	64,	32,	0xffffffff00003fffLL,
  3.4829+	47,	64,	32,	0xffffffff00007fffLL,
  3.4830+	48,	64,	32,	0xffffffff0000ffffLL,
  3.4831+	49,	64,	32,	0xffffffff0001ffffLL,
  3.4832+	50,	64,	32,	0xffffffff0003ffffLL,
  3.4833+	51,	64,	32,	0xffffffff0007ffffLL,
  3.4834+	52,	64,	32,	0xffffffff000fffffLL,
  3.4835+	53,	64,	32,	0xffffffff001fffffLL,
  3.4836+	54,	64,	32,	0xffffffff003fffffLL,
  3.4837+	55,	64,	32,	0xffffffff007fffffLL,
  3.4838+	56,	64,	32,	0xffffffff00ffffffLL,
  3.4839+	57,	64,	32,	0xffffffff01ffffffLL,
  3.4840+	58,	64,	32,	0xffffffff03ffffffLL,
  3.4841+	59,	64,	32,	0xffffffff07ffffffLL,
  3.4842+	60,	64,	32,	0xffffffff0fffffffLL,
  3.4843+	61,	64,	32,	0xffffffff1fffffffLL,
  3.4844+	62,	64,	32,	0xffffffff3fffffffLL,
  3.4845+	63,	64,	32,	0xffffffff7fffffffLL,
  3.4846+	33,	64,	33,	0xffffffff80000000LL,
  3.4847+	34,	64,	33,	0xffffffff80000001LL,
  3.4848+	35,	64,	33,	0xffffffff80000003LL,
  3.4849+	36,	64,	33,	0xffffffff80000007LL,
  3.4850+	37,	64,	33,	0xffffffff8000000fLL,
  3.4851+	38,	64,	33,	0xffffffff8000001fLL,
  3.4852+	39,	64,	33,	0xffffffff8000003fLL,
  3.4853+	40,	64,	33,	0xffffffff8000007fLL,
  3.4854+	41,	64,	33,	0xffffffff800000ffLL,
  3.4855+	42,	64,	33,	0xffffffff800001ffLL,
  3.4856+	43,	64,	33,	0xffffffff800003ffLL,
  3.4857+	44,	64,	33,	0xffffffff800007ffLL,
  3.4858+	45,	64,	33,	0xffffffff80000fffLL,
  3.4859+	46,	64,	33,	0xffffffff80001fffLL,
  3.4860+	47,	64,	33,	0xffffffff80003fffLL,
  3.4861+	48,	64,	33,	0xffffffff80007fffLL,
  3.4862+	49,	64,	33,	0xffffffff8000ffffLL,
  3.4863+	50,	64,	33,	0xffffffff8001ffffLL,
  3.4864+	51,	64,	33,	0xffffffff8003ffffLL,
  3.4865+	52,	64,	33,	0xffffffff8007ffffLL,
  3.4866+	53,	64,	33,	0xffffffff800fffffLL,
  3.4867+	54,	64,	33,	0xffffffff801fffffLL,
  3.4868+	55,	64,	33,	0xffffffff803fffffLL,
  3.4869+	56,	64,	33,	0xffffffff807fffffLL,
  3.4870+	57,	64,	33,	0xffffffff80ffffffLL,
  3.4871+	58,	64,	33,	0xffffffff81ffffffLL,
  3.4872+	59,	64,	33,	0xffffffff83ffffffLL,
  3.4873+	60,	64,	33,	0xffffffff87ffffffLL,
  3.4874+	61,	64,	33,	0xffffffff8fffffffLL,
  3.4875+	62,	64,	33,	0xffffffff9fffffffLL,
  3.4876+	63,	64,	33,	0xffffffffbfffffffLL,
  3.4877+	34,	64,	34,	0xffffffffc0000000LL,
  3.4878+	35,	64,	34,	0xffffffffc0000001LL,
  3.4879+	36,	64,	34,	0xffffffffc0000003LL,
  3.4880+	37,	64,	34,	0xffffffffc0000007LL,
  3.4881+	38,	64,	34,	0xffffffffc000000fLL,
  3.4882+	39,	64,	34,	0xffffffffc000001fLL,
  3.4883+	40,	64,	34,	0xffffffffc000003fLL,
  3.4884+	41,	64,	34,	0xffffffffc000007fLL,
  3.4885+	42,	64,	34,	0xffffffffc00000ffLL,
  3.4886+	43,	64,	34,	0xffffffffc00001ffLL,
  3.4887+	44,	64,	34,	0xffffffffc00003ffLL,
  3.4888+	45,	64,	34,	0xffffffffc00007ffLL,
  3.4889+	46,	64,	34,	0xffffffffc0000fffLL,
  3.4890+	47,	64,	34,	0xffffffffc0001fffLL,
  3.4891+	48,	64,	34,	0xffffffffc0003fffLL,
  3.4892+	49,	64,	34,	0xffffffffc0007fffLL,
  3.4893+	50,	64,	34,	0xffffffffc000ffffLL,
  3.4894+	51,	64,	34,	0xffffffffc001ffffLL,
  3.4895+	52,	64,	34,	0xffffffffc003ffffLL,
  3.4896+	53,	64,	34,	0xffffffffc007ffffLL,
  3.4897+	54,	64,	34,	0xffffffffc00fffffLL,
  3.4898+	55,	64,	34,	0xffffffffc01fffffLL,
  3.4899+	56,	64,	34,	0xffffffffc03fffffLL,
  3.4900+	57,	64,	34,	0xffffffffc07fffffLL,
  3.4901+	58,	64,	34,	0xffffffffc0ffffffLL,
  3.4902+	59,	64,	34,	0xffffffffc1ffffffLL,
  3.4903+	60,	64,	34,	0xffffffffc3ffffffLL,
  3.4904+	61,	64,	34,	0xffffffffc7ffffffLL,
  3.4905+	62,	64,	34,	0xffffffffcfffffffLL,
  3.4906+	63,	64,	34,	0xffffffffdfffffffLL,
  3.4907+	35,	64,	35,	0xffffffffe0000000LL,
  3.4908+	36,	64,	35,	0xffffffffe0000001LL,
  3.4909+	37,	64,	35,	0xffffffffe0000003LL,
  3.4910+	38,	64,	35,	0xffffffffe0000007LL,
  3.4911+	39,	64,	35,	0xffffffffe000000fLL,
  3.4912+	40,	64,	35,	0xffffffffe000001fLL,
  3.4913+	41,	64,	35,	0xffffffffe000003fLL,
  3.4914+	42,	64,	35,	0xffffffffe000007fLL,
  3.4915+	43,	64,	35,	0xffffffffe00000ffLL,
  3.4916+	44,	64,	35,	0xffffffffe00001ffLL,
  3.4917+	45,	64,	35,	0xffffffffe00003ffLL,
  3.4918+	46,	64,	35,	0xffffffffe00007ffLL,
  3.4919+	47,	64,	35,	0xffffffffe0000fffLL,
  3.4920+	48,	64,	35,	0xffffffffe0001fffLL,
  3.4921+	49,	64,	35,	0xffffffffe0003fffLL,
  3.4922+	50,	64,	35,	0xffffffffe0007fffLL,
  3.4923+	51,	64,	35,	0xffffffffe000ffffLL,
  3.4924+	52,	64,	35,	0xffffffffe001ffffLL,
  3.4925+	53,	64,	35,	0xffffffffe003ffffLL,
  3.4926+	54,	64,	35,	0xffffffffe007ffffLL,
  3.4927+	55,	64,	35,	0xffffffffe00fffffLL,
  3.4928+	56,	64,	35,	0xffffffffe01fffffLL,
  3.4929+	57,	64,	35,	0xffffffffe03fffffLL,
  3.4930+	58,	64,	35,	0xffffffffe07fffffLL,
  3.4931+	59,	64,	35,	0xffffffffe0ffffffLL,
  3.4932+	60,	64,	35,	0xffffffffe1ffffffLL,
  3.4933+	61,	64,	35,	0xffffffffe3ffffffLL,
  3.4934+	62,	64,	35,	0xffffffffe7ffffffLL,
  3.4935+	63,	64,	35,	0xffffffffefffffffLL,
  3.4936+	36,	64,	36,	0xfffffffff0000000LL,
  3.4937+	37,	64,	36,	0xfffffffff0000001LL,
  3.4938+	38,	64,	36,	0xfffffffff0000003LL,
  3.4939+	39,	64,	36,	0xfffffffff0000007LL,
  3.4940+	40,	64,	36,	0xfffffffff000000fLL,
  3.4941+	41,	64,	36,	0xfffffffff000001fLL,
  3.4942+	42,	64,	36,	0xfffffffff000003fLL,
  3.4943+	43,	64,	36,	0xfffffffff000007fLL,
  3.4944+	44,	64,	36,	0xfffffffff00000ffLL,
  3.4945+	45,	64,	36,	0xfffffffff00001ffLL,
  3.4946+	46,	64,	36,	0xfffffffff00003ffLL,
  3.4947+	47,	64,	36,	0xfffffffff00007ffLL,
  3.4948+	48,	64,	36,	0xfffffffff0000fffLL,
  3.4949+	49,	64,	36,	0xfffffffff0001fffLL,
  3.4950+	50,	64,	36,	0xfffffffff0003fffLL,
  3.4951+	51,	64,	36,	0xfffffffff0007fffLL,
  3.4952+	52,	64,	36,	0xfffffffff000ffffLL,
  3.4953+	53,	64,	36,	0xfffffffff001ffffLL,
  3.4954+	54,	64,	36,	0xfffffffff003ffffLL,
  3.4955+	55,	64,	36,	0xfffffffff007ffffLL,
  3.4956+	56,	64,	36,	0xfffffffff00fffffLL,
  3.4957+	57,	64,	36,	0xfffffffff01fffffLL,
  3.4958+	58,	64,	36,	0xfffffffff03fffffLL,
  3.4959+	59,	64,	36,	0xfffffffff07fffffLL,
  3.4960+	60,	64,	36,	0xfffffffff0ffffffLL,
  3.4961+	61,	64,	36,	0xfffffffff1ffffffLL,
  3.4962+	62,	64,	36,	0xfffffffff3ffffffLL,
  3.4963+	63,	64,	36,	0xfffffffff7ffffffLL,
  3.4964+	37,	64,	37,	0xfffffffff8000000LL,
  3.4965+	38,	64,	37,	0xfffffffff8000001LL,
  3.4966+	39,	64,	37,	0xfffffffff8000003LL,
  3.4967+	40,	64,	37,	0xfffffffff8000007LL,
  3.4968+	41,	64,	37,	0xfffffffff800000fLL,
  3.4969+	42,	64,	37,	0xfffffffff800001fLL,
  3.4970+	43,	64,	37,	0xfffffffff800003fLL,
  3.4971+	44,	64,	37,	0xfffffffff800007fLL,
  3.4972+	45,	64,	37,	0xfffffffff80000ffLL,
  3.4973+	46,	64,	37,	0xfffffffff80001ffLL,
  3.4974+	47,	64,	37,	0xfffffffff80003ffLL,
  3.4975+	48,	64,	37,	0xfffffffff80007ffLL,
  3.4976+	49,	64,	37,	0xfffffffff8000fffLL,
  3.4977+	50,	64,	37,	0xfffffffff8001fffLL,
  3.4978+	51,	64,	37,	0xfffffffff8003fffLL,
  3.4979+	52,	64,	37,	0xfffffffff8007fffLL,
  3.4980+	53,	64,	37,	0xfffffffff800ffffLL,
  3.4981+	54,	64,	37,	0xfffffffff801ffffLL,
  3.4982+	55,	64,	37,	0xfffffffff803ffffLL,
  3.4983+	56,	64,	37,	0xfffffffff807ffffLL,
  3.4984+	57,	64,	37,	0xfffffffff80fffffLL,
  3.4985+	58,	64,	37,	0xfffffffff81fffffLL,
  3.4986+	59,	64,	37,	0xfffffffff83fffffLL,
  3.4987+	60,	64,	37,	0xfffffffff87fffffLL,
  3.4988+	61,	64,	37,	0xfffffffff8ffffffLL,
  3.4989+	62,	64,	37,	0xfffffffff9ffffffLL,
  3.4990+	63,	64,	37,	0xfffffffffbffffffLL,
  3.4991+	38,	64,	38,	0xfffffffffc000000LL,
  3.4992+	39,	64,	38,	0xfffffffffc000001LL,
  3.4993+	40,	64,	38,	0xfffffffffc000003LL,
  3.4994+	41,	64,	38,	0xfffffffffc000007LL,
  3.4995+	42,	64,	38,	0xfffffffffc00000fLL,
  3.4996+	43,	64,	38,	0xfffffffffc00001fLL,
  3.4997+	44,	64,	38,	0xfffffffffc00003fLL,
  3.4998+	45,	64,	38,	0xfffffffffc00007fLL,
  3.4999+	46,	64,	38,	0xfffffffffc0000ffLL,
  3.5000+	47,	64,	38,	0xfffffffffc0001ffLL,
  3.5001+	48,	64,	38,	0xfffffffffc0003ffLL,
  3.5002+	49,	64,	38,	0xfffffffffc0007ffLL,
  3.5003+	50,	64,	38,	0xfffffffffc000fffLL,
  3.5004+	51,	64,	38,	0xfffffffffc001fffLL,
  3.5005+	52,	64,	38,	0xfffffffffc003fffLL,
  3.5006+	53,	64,	38,	0xfffffffffc007fffLL,
  3.5007+	54,	64,	38,	0xfffffffffc00ffffLL,
  3.5008+	55,	64,	38,	0xfffffffffc01ffffLL,
  3.5009+	56,	64,	38,	0xfffffffffc03ffffLL,
  3.5010+	57,	64,	38,	0xfffffffffc07ffffLL,
  3.5011+	58,	64,	38,	0xfffffffffc0fffffLL,
  3.5012+	59,	64,	38,	0xfffffffffc1fffffLL,
  3.5013+	60,	64,	38,	0xfffffffffc3fffffLL,
  3.5014+	61,	64,	38,	0xfffffffffc7fffffLL,
  3.5015+	62,	64,	38,	0xfffffffffcffffffLL,
  3.5016+	63,	64,	38,	0xfffffffffdffffffLL,
  3.5017+	39,	64,	39,	0xfffffffffe000000LL,
  3.5018+	40,	64,	39,	0xfffffffffe000001LL,
  3.5019+	41,	64,	39,	0xfffffffffe000003LL,
  3.5020+	42,	64,	39,	0xfffffffffe000007LL,
  3.5021+	43,	64,	39,	0xfffffffffe00000fLL,
  3.5022+	44,	64,	39,	0xfffffffffe00001fLL,
  3.5023+	45,	64,	39,	0xfffffffffe00003fLL,
  3.5024+	46,	64,	39,	0xfffffffffe00007fLL,
  3.5025+	47,	64,	39,	0xfffffffffe0000ffLL,
  3.5026+	48,	64,	39,	0xfffffffffe0001ffLL,
  3.5027+	49,	64,	39,	0xfffffffffe0003ffLL,
  3.5028+	50,	64,	39,	0xfffffffffe0007ffLL,
  3.5029+	51,	64,	39,	0xfffffffffe000fffLL,
  3.5030+	52,	64,	39,	0xfffffffffe001fffLL,
  3.5031+	53,	64,	39,	0xfffffffffe003fffLL,
  3.5032+	54,	64,	39,	0xfffffffffe007fffLL,
  3.5033+	55,	64,	39,	0xfffffffffe00ffffLL,
  3.5034+	56,	64,	39,	0xfffffffffe01ffffLL,
  3.5035+	57,	64,	39,	0xfffffffffe03ffffLL,
  3.5036+	58,	64,	39,	0xfffffffffe07ffffLL,
  3.5037+	59,	64,	39,	0xfffffffffe0fffffLL,
  3.5038+	60,	64,	39,	0xfffffffffe1fffffLL,
  3.5039+	61,	64,	39,	0xfffffffffe3fffffLL,
  3.5040+	62,	64,	39,	0xfffffffffe7fffffLL,
  3.5041+	63,	64,	39,	0xfffffffffeffffffLL,
  3.5042+	40,	64,	40,	0xffffffffff000000LL,
  3.5043+	41,	64,	40,	0xffffffffff000001LL,
  3.5044+	42,	64,	40,	0xffffffffff000003LL,
  3.5045+	43,	64,	40,	0xffffffffff000007LL,
  3.5046+	44,	64,	40,	0xffffffffff00000fLL,
  3.5047+	45,	64,	40,	0xffffffffff00001fLL,
  3.5048+	46,	64,	40,	0xffffffffff00003fLL,
  3.5049+	47,	64,	40,	0xffffffffff00007fLL,
  3.5050+	48,	64,	40,	0xffffffffff0000ffLL,
  3.5051+	49,	64,	40,	0xffffffffff0001ffLL,
  3.5052+	50,	64,	40,	0xffffffffff0003ffLL,
  3.5053+	51,	64,	40,	0xffffffffff0007ffLL,
  3.5054+	52,	64,	40,	0xffffffffff000fffLL,
  3.5055+	53,	64,	40,	0xffffffffff001fffLL,
  3.5056+	54,	64,	40,	0xffffffffff003fffLL,
  3.5057+	55,	64,	40,	0xffffffffff007fffLL,
  3.5058+	56,	64,	40,	0xffffffffff00ffffLL,
  3.5059+	57,	64,	40,	0xffffffffff01ffffLL,
  3.5060+	58,	64,	40,	0xffffffffff03ffffLL,
  3.5061+	59,	64,	40,	0xffffffffff07ffffLL,
  3.5062+	60,	64,	40,	0xffffffffff0fffffLL,
  3.5063+	61,	64,	40,	0xffffffffff1fffffLL,
  3.5064+	62,	64,	40,	0xffffffffff3fffffLL,
  3.5065+	63,	64,	40,	0xffffffffff7fffffLL,
  3.5066+	41,	64,	41,	0xffffffffff800000LL,
  3.5067+	42,	64,	41,	0xffffffffff800001LL,
  3.5068+	43,	64,	41,	0xffffffffff800003LL,
  3.5069+	44,	64,	41,	0xffffffffff800007LL,
  3.5070+	45,	64,	41,	0xffffffffff80000fLL,
  3.5071+	46,	64,	41,	0xffffffffff80001fLL,
  3.5072+	47,	64,	41,	0xffffffffff80003fLL,
  3.5073+	48,	64,	41,	0xffffffffff80007fLL,
  3.5074+	49,	64,	41,	0xffffffffff8000ffLL,
  3.5075+	50,	64,	41,	0xffffffffff8001ffLL,
  3.5076+	51,	64,	41,	0xffffffffff8003ffLL,
  3.5077+	52,	64,	41,	0xffffffffff8007ffLL,
  3.5078+	53,	64,	41,	0xffffffffff800fffLL,
  3.5079+	54,	64,	41,	0xffffffffff801fffLL,
  3.5080+	55,	64,	41,	0xffffffffff803fffLL,
  3.5081+	56,	64,	41,	0xffffffffff807fffLL,
  3.5082+	57,	64,	41,	0xffffffffff80ffffLL,
  3.5083+	58,	64,	41,	0xffffffffff81ffffLL,
  3.5084+	59,	64,	41,	0xffffffffff83ffffLL,
  3.5085+	60,	64,	41,	0xffffffffff87ffffLL,
  3.5086+	61,	64,	41,	0xffffffffff8fffffLL,
  3.5087+	62,	64,	41,	0xffffffffff9fffffLL,
  3.5088+	63,	64,	41,	0xffffffffffbfffffLL,
  3.5089+	42,	64,	42,	0xffffffffffc00000LL,
  3.5090+	43,	64,	42,	0xffffffffffc00001LL,
  3.5091+	44,	64,	42,	0xffffffffffc00003LL,
  3.5092+	45,	64,	42,	0xffffffffffc00007LL,
  3.5093+	46,	64,	42,	0xffffffffffc0000fLL,
  3.5094+	47,	64,	42,	0xffffffffffc0001fLL,
  3.5095+	48,	64,	42,	0xffffffffffc0003fLL,
  3.5096+	49,	64,	42,	0xffffffffffc0007fLL,
  3.5097+	50,	64,	42,	0xffffffffffc000ffLL,
  3.5098+	51,	64,	42,	0xffffffffffc001ffLL,
  3.5099+	52,	64,	42,	0xffffffffffc003ffLL,
  3.5100+	53,	64,	42,	0xffffffffffc007ffLL,
  3.5101+	54,	64,	42,	0xffffffffffc00fffLL,
  3.5102+	55,	64,	42,	0xffffffffffc01fffLL,
  3.5103+	56,	64,	42,	0xffffffffffc03fffLL,
  3.5104+	57,	64,	42,	0xffffffffffc07fffLL,
  3.5105+	58,	64,	42,	0xffffffffffc0ffffLL,
  3.5106+	59,	64,	42,	0xffffffffffc1ffffLL,
  3.5107+	60,	64,	42,	0xffffffffffc3ffffLL,
  3.5108+	61,	64,	42,	0xffffffffffc7ffffLL,
  3.5109+	62,	64,	42,	0xffffffffffcfffffLL,
  3.5110+	63,	64,	42,	0xffffffffffdfffffLL,
  3.5111+	43,	64,	43,	0xffffffffffe00000LL,
  3.5112+	44,	64,	43,	0xffffffffffe00001LL,
  3.5113+	45,	64,	43,	0xffffffffffe00003LL,
  3.5114+	46,	64,	43,	0xffffffffffe00007LL,
  3.5115+	47,	64,	43,	0xffffffffffe0000fLL,
  3.5116+	48,	64,	43,	0xffffffffffe0001fLL,
  3.5117+	49,	64,	43,	0xffffffffffe0003fLL,
  3.5118+	50,	64,	43,	0xffffffffffe0007fLL,
  3.5119+	51,	64,	43,	0xffffffffffe000ffLL,
  3.5120+	52,	64,	43,	0xffffffffffe001ffLL,
  3.5121+	53,	64,	43,	0xffffffffffe003ffLL,
  3.5122+	54,	64,	43,	0xffffffffffe007ffLL,
  3.5123+	55,	64,	43,	0xffffffffffe00fffLL,
  3.5124+	56,	64,	43,	0xffffffffffe01fffLL,
  3.5125+	57,	64,	43,	0xffffffffffe03fffLL,
  3.5126+	58,	64,	43,	0xffffffffffe07fffLL,
  3.5127+	59,	64,	43,	0xffffffffffe0ffffLL,
  3.5128+	60,	64,	43,	0xffffffffffe1ffffLL,
  3.5129+	61,	64,	43,	0xffffffffffe3ffffLL,
  3.5130+	62,	64,	43,	0xffffffffffe7ffffLL,
  3.5131+	63,	64,	43,	0xffffffffffefffffLL,
  3.5132+	44,	64,	44,	0xfffffffffff00000LL,
  3.5133+	45,	64,	44,	0xfffffffffff00001LL,
  3.5134+	46,	64,	44,	0xfffffffffff00003LL,
  3.5135+	47,	64,	44,	0xfffffffffff00007LL,
  3.5136+	48,	64,	44,	0xfffffffffff0000fLL,
  3.5137+	49,	64,	44,	0xfffffffffff0001fLL,
  3.5138+	50,	64,	44,	0xfffffffffff0003fLL,
  3.5139+	51,	64,	44,	0xfffffffffff0007fLL,
  3.5140+	52,	64,	44,	0xfffffffffff000ffLL,
  3.5141+	53,	64,	44,	0xfffffffffff001ffLL,
  3.5142+	54,	64,	44,	0xfffffffffff003ffLL,
  3.5143+	55,	64,	44,	0xfffffffffff007ffLL,
  3.5144+	56,	64,	44,	0xfffffffffff00fffLL,
  3.5145+	57,	64,	44,	0xfffffffffff01fffLL,
  3.5146+	58,	64,	44,	0xfffffffffff03fffLL,
  3.5147+	59,	64,	44,	0xfffffffffff07fffLL,
  3.5148+	60,	64,	44,	0xfffffffffff0ffffLL,
  3.5149+	61,	64,	44,	0xfffffffffff1ffffLL,
  3.5150+	62,	64,	44,	0xfffffffffff3ffffLL,
  3.5151+	63,	64,	44,	0xfffffffffff7ffffLL,
  3.5152+	45,	64,	45,	0xfffffffffff80000LL,
  3.5153+	46,	64,	45,	0xfffffffffff80001LL,
  3.5154+	47,	64,	45,	0xfffffffffff80003LL,
  3.5155+	48,	64,	45,	0xfffffffffff80007LL,
  3.5156+	49,	64,	45,	0xfffffffffff8000fLL,
  3.5157+	50,	64,	45,	0xfffffffffff8001fLL,
  3.5158+	51,	64,	45,	0xfffffffffff8003fLL,
  3.5159+	52,	64,	45,	0xfffffffffff8007fLL,
  3.5160+	53,	64,	45,	0xfffffffffff800ffLL,
  3.5161+	54,	64,	45,	0xfffffffffff801ffLL,
  3.5162+	55,	64,	45,	0xfffffffffff803ffLL,
  3.5163+	56,	64,	45,	0xfffffffffff807ffLL,
  3.5164+	57,	64,	45,	0xfffffffffff80fffLL,
  3.5165+	58,	64,	45,	0xfffffffffff81fffLL,
  3.5166+	59,	64,	45,	0xfffffffffff83fffLL,
  3.5167+	60,	64,	45,	0xfffffffffff87fffLL,
  3.5168+	61,	64,	45,	0xfffffffffff8ffffLL,
  3.5169+	62,	64,	45,	0xfffffffffff9ffffLL,
  3.5170+	63,	64,	45,	0xfffffffffffbffffLL,
  3.5171+	46,	64,	46,	0xfffffffffffc0000LL,
  3.5172+	47,	64,	46,	0xfffffffffffc0001LL,
  3.5173+	48,	64,	46,	0xfffffffffffc0003LL,
  3.5174+	49,	64,	46,	0xfffffffffffc0007LL,
  3.5175+	50,	64,	46,	0xfffffffffffc000fLL,
  3.5176+	51,	64,	46,	0xfffffffffffc001fLL,
  3.5177+	52,	64,	46,	0xfffffffffffc003fLL,
  3.5178+	53,	64,	46,	0xfffffffffffc007fLL,
  3.5179+	54,	64,	46,	0xfffffffffffc00ffLL,
  3.5180+	55,	64,	46,	0xfffffffffffc01ffLL,
  3.5181+	56,	64,	46,	0xfffffffffffc03ffLL,
  3.5182+	57,	64,	46,	0xfffffffffffc07ffLL,
  3.5183+	58,	64,	46,	0xfffffffffffc0fffLL,
  3.5184+	59,	64,	46,	0xfffffffffffc1fffLL,
  3.5185+	60,	64,	46,	0xfffffffffffc3fffLL,
  3.5186+	61,	64,	46,	0xfffffffffffc7fffLL,
  3.5187+	62,	64,	46,	0xfffffffffffcffffLL,
  3.5188+	63,	64,	46,	0xfffffffffffdffffLL,
  3.5189+	47,	64,	47,	0xfffffffffffe0000LL,
  3.5190+	48,	64,	47,	0xfffffffffffe0001LL,
  3.5191+	49,	64,	47,	0xfffffffffffe0003LL,
  3.5192+	50,	64,	47,	0xfffffffffffe0007LL,
  3.5193+	51,	64,	47,	0xfffffffffffe000fLL,
  3.5194+	52,	64,	47,	0xfffffffffffe001fLL,
  3.5195+	53,	64,	47,	0xfffffffffffe003fLL,
  3.5196+	54,	64,	47,	0xfffffffffffe007fLL,
  3.5197+	55,	64,	47,	0xfffffffffffe00ffLL,
  3.5198+	56,	64,	47,	0xfffffffffffe01ffLL,
  3.5199+	57,	64,	47,	0xfffffffffffe03ffLL,
  3.5200+	58,	64,	47,	0xfffffffffffe07ffLL,
  3.5201+	59,	64,	47,	0xfffffffffffe0fffLL,
  3.5202+	60,	64,	47,	0xfffffffffffe1fffLL,
  3.5203+	61,	64,	47,	0xfffffffffffe3fffLL,
  3.5204+	62,	64,	47,	0xfffffffffffe7fffLL,
  3.5205+	63,	64,	47,	0xfffffffffffeffffLL,
  3.5206+	48,	64,	48,	0xffffffffffff0000LL,
  3.5207+	49,	64,	48,	0xffffffffffff0001LL,
  3.5208+	50,	64,	48,	0xffffffffffff0003LL,
  3.5209+	51,	64,	48,	0xffffffffffff0007LL,
  3.5210+	52,	64,	48,	0xffffffffffff000fLL,
  3.5211+	53,	64,	48,	0xffffffffffff001fLL,
  3.5212+	54,	64,	48,	0xffffffffffff003fLL,
  3.5213+	55,	64,	48,	0xffffffffffff007fLL,
  3.5214+	56,	64,	48,	0xffffffffffff00ffLL,
  3.5215+	57,	64,	48,	0xffffffffffff01ffLL,
  3.5216+	58,	64,	48,	0xffffffffffff03ffLL,
  3.5217+	59,	64,	48,	0xffffffffffff07ffLL,
  3.5218+	60,	64,	48,	0xffffffffffff0fffLL,
  3.5219+	61,	64,	48,	0xffffffffffff1fffLL,
  3.5220+	62,	64,	48,	0xffffffffffff3fffLL,
  3.5221+	63,	64,	48,	0xffffffffffff7fffLL,
  3.5222+	49,	64,	49,	0xffffffffffff8000LL,
  3.5223+	50,	64,	49,	0xffffffffffff8001LL,
  3.5224+	51,	64,	49,	0xffffffffffff8003LL,
  3.5225+	52,	64,	49,	0xffffffffffff8007LL,
  3.5226+	53,	64,	49,	0xffffffffffff800fLL,
  3.5227+	54,	64,	49,	0xffffffffffff801fLL,
  3.5228+	55,	64,	49,	0xffffffffffff803fLL,
  3.5229+	56,	64,	49,	0xffffffffffff807fLL,
  3.5230+	57,	64,	49,	0xffffffffffff80ffLL,
  3.5231+	58,	64,	49,	0xffffffffffff81ffLL,
  3.5232+	59,	64,	49,	0xffffffffffff83ffLL,
  3.5233+	60,	64,	49,	0xffffffffffff87ffLL,
  3.5234+	61,	64,	49,	0xffffffffffff8fffLL,
  3.5235+	62,	64,	49,	0xffffffffffff9fffLL,
  3.5236+	63,	64,	49,	0xffffffffffffbfffLL,
  3.5237+	50,	64,	50,	0xffffffffffffc000LL,
  3.5238+	51,	64,	50,	0xffffffffffffc001LL,
  3.5239+	52,	64,	50,	0xffffffffffffc003LL,
  3.5240+	53,	64,	50,	0xffffffffffffc007LL,
  3.5241+	54,	64,	50,	0xffffffffffffc00fLL,
  3.5242+	55,	64,	50,	0xffffffffffffc01fLL,
  3.5243+	56,	64,	50,	0xffffffffffffc03fLL,
  3.5244+	57,	64,	50,	0xffffffffffffc07fLL,
  3.5245+	58,	64,	50,	0xffffffffffffc0ffLL,
  3.5246+	59,	64,	50,	0xffffffffffffc1ffLL,
  3.5247+	60,	64,	50,	0xffffffffffffc3ffLL,
  3.5248+	61,	64,	50,	0xffffffffffffc7ffLL,
  3.5249+	62,	64,	50,	0xffffffffffffcfffLL,
  3.5250+	63,	64,	50,	0xffffffffffffdfffLL,
  3.5251+	51,	64,	51,	0xffffffffffffe000LL,
  3.5252+	52,	64,	51,	0xffffffffffffe001LL,
  3.5253+	53,	64,	51,	0xffffffffffffe003LL,
  3.5254+	54,	64,	51,	0xffffffffffffe007LL,
  3.5255+	55,	64,	51,	0xffffffffffffe00fLL,
  3.5256+	56,	64,	51,	0xffffffffffffe01fLL,
  3.5257+	57,	64,	51,	0xffffffffffffe03fLL,
  3.5258+	58,	64,	51,	0xffffffffffffe07fLL,
  3.5259+	59,	64,	51,	0xffffffffffffe0ffLL,
  3.5260+	60,	64,	51,	0xffffffffffffe1ffLL,
  3.5261+	61,	64,	51,	0xffffffffffffe3ffLL,
  3.5262+	62,	64,	51,	0xffffffffffffe7ffLL,
  3.5263+	63,	64,	51,	0xffffffffffffefffLL,
  3.5264+	52,	64,	52,	0xfffffffffffff000LL,
  3.5265+	53,	64,	52,	0xfffffffffffff001LL,
  3.5266+	54,	64,	52,	0xfffffffffffff003LL,
  3.5267+	55,	64,	52,	0xfffffffffffff007LL,
  3.5268+	56,	64,	52,	0xfffffffffffff00fLL,
  3.5269+	57,	64,	52,	0xfffffffffffff01fLL,
  3.5270+	58,	64,	52,	0xfffffffffffff03fLL,
  3.5271+	59,	64,	52,	0xfffffffffffff07fLL,
  3.5272+	60,	64,	52,	0xfffffffffffff0ffLL,
  3.5273+	61,	64,	52,	0xfffffffffffff1ffLL,
  3.5274+	62,	64,	52,	0xfffffffffffff3ffLL,
  3.5275+	63,	64,	52,	0xfffffffffffff7ffLL,
  3.5276+	53,	64,	53,	0xfffffffffffff800LL,
  3.5277+	54,	64,	53,	0xfffffffffffff801LL,
  3.5278+	55,	64,	53,	0xfffffffffffff803LL,
  3.5279+	56,	64,	53,	0xfffffffffffff807LL,
  3.5280+	57,	64,	53,	0xfffffffffffff80fLL,
  3.5281+	58,	64,	53,	0xfffffffffffff81fLL,
  3.5282+	59,	64,	53,	0xfffffffffffff83fLL,
  3.5283+	60,	64,	53,	0xfffffffffffff87fLL,
  3.5284+	61,	64,	53,	0xfffffffffffff8ffLL,
  3.5285+	62,	64,	53,	0xfffffffffffff9ffLL,
  3.5286+	63,	64,	53,	0xfffffffffffffbffLL,
  3.5287+	54,	64,	54,	0xfffffffffffffc00LL,
  3.5288+	55,	64,	54,	0xfffffffffffffc01LL,
  3.5289+	56,	64,	54,	0xfffffffffffffc03LL,
  3.5290+	57,	64,	54,	0xfffffffffffffc07LL,
  3.5291+	58,	64,	54,	0xfffffffffffffc0fLL,
  3.5292+	59,	64,	54,	0xfffffffffffffc1fLL,
  3.5293+	60,	64,	54,	0xfffffffffffffc3fLL,
  3.5294+	61,	64,	54,	0xfffffffffffffc7fLL,
  3.5295+	62,	64,	54,	0xfffffffffffffcffLL,
  3.5296+	63,	64,	54,	0xfffffffffffffdffLL,
  3.5297+	55,	64,	55,	0xfffffffffffffe00LL,
  3.5298+	56,	64,	55,	0xfffffffffffffe01LL,
  3.5299+	57,	64,	55,	0xfffffffffffffe03LL,
  3.5300+	58,	64,	55,	0xfffffffffffffe07LL,
  3.5301+	59,	64,	55,	0xfffffffffffffe0fLL,
  3.5302+	60,	64,	55,	0xfffffffffffffe1fLL,
  3.5303+	61,	64,	55,	0xfffffffffffffe3fLL,
  3.5304+	62,	64,	55,	0xfffffffffffffe7fLL,
  3.5305+	63,	64,	55,	0xfffffffffffffeffLL,
  3.5306+	56,	64,	56,	0xffffffffffffff00LL,
  3.5307+	57,	64,	56,	0xffffffffffffff01LL,
  3.5308+	58,	64,	56,	0xffffffffffffff03LL,
  3.5309+	59,	64,	56,	0xffffffffffffff07LL,
  3.5310+	60,	64,	56,	0xffffffffffffff0fLL,
  3.5311+	61,	64,	56,	0xffffffffffffff1fLL,
  3.5312+	62,	64,	56,	0xffffffffffffff3fLL,
  3.5313+	63,	64,	56,	0xffffffffffffff7fLL,
  3.5314+	57,	64,	57,	0xffffffffffffff80LL,
  3.5315+	58,	64,	57,	0xffffffffffffff81LL,
  3.5316+	59,	64,	57,	0xffffffffffffff83LL,
  3.5317+	60,	64,	57,	0xffffffffffffff87LL,
  3.5318+	61,	64,	57,	0xffffffffffffff8fLL,
  3.5319+	62,	64,	57,	0xffffffffffffff9fLL,
  3.5320+	63,	64,	57,	0xffffffffffffffbfLL,
  3.5321+	58,	64,	58,	0xffffffffffffffc0LL,
  3.5322+	59,	64,	58,	0xffffffffffffffc1LL,
  3.5323+	60,	64,	58,	0xffffffffffffffc3LL,
  3.5324+	61,	64,	58,	0xffffffffffffffc7LL,
  3.5325+	62,	64,	58,	0xffffffffffffffcfLL,
  3.5326+	63,	64,	58,	0xffffffffffffffdfLL,
  3.5327+	59,	64,	59,	0xffffffffffffffe0LL,
  3.5328+	60,	64,	59,	0xffffffffffffffe1LL,
  3.5329+	61,	64,	59,	0xffffffffffffffe3LL,
  3.5330+	62,	64,	59,	0xffffffffffffffe7LL,
  3.5331+	63,	64,	59,	0xffffffffffffffefLL,
  3.5332+	60,	64,	60,	0xfffffffffffffff0LL,
  3.5333+	61,	64,	60,	0xfffffffffffffff1LL,
  3.5334+	62,	64,	60,	0xfffffffffffffff3LL,
  3.5335+	63,	64,	60,	0xfffffffffffffff7LL,
  3.5336+	61,	64,	61,	0xfffffffffffffff8LL,
  3.5337+	62,	64,	61,	0xfffffffffffffff9LL,
  3.5338+	63,	64,	61,	0xfffffffffffffffbLL,
  3.5339+	62,	64,	62,	0xfffffffffffffffcLL,
  3.5340+	63,	64,	62,	0xfffffffffffffffdLL,
  3.5341+	63,	64,	63,	0xfffffffffffffffeLL,
  3.5342+};
  3.5343+
  3.5344+Mask*
  3.5345+findmask(uvlong v)
  3.5346+{
  3.5347+	int top, bot, mid;
  3.5348+	Mask *m;
  3.5349+
  3.5350+	bot = 0;
  3.5351+	top = nelem(bitmasks);
  3.5352+	while(bot < top){
  3.5353+		mid = (bot+top)/2;
  3.5354+		m = &bitmasks[mid];
  3.5355+		if(v == m->v)
  3.5356+			return m;
  3.5357+		if(v < m->v)
  3.5358+			top = mid;
  3.5359+		else
  3.5360+			bot = mid+1;
  3.5361+	}
  3.5362+	return nil;
  3.5363+}
     4.1new file mode 100644
     4.2--- /dev/null
     4.3+++ b/sys/src/cmd/7l/compat.c
     4.4@@ -0,0 +1,56 @@
     4.5+#include	"l.h"
     4.6+
     4.7+/*
     4.8+ * fake malloc
     4.9+ */
    4.10+void*
    4.11+malloc(ulong n)
    4.12+{
    4.13+	void *p;
    4.14+
    4.15+	while(n & 7)
    4.16+		n++;
    4.17+	while(nhunk < n)
    4.18+		gethunk();
    4.19+	p = hunk;
    4.20+	nhunk -= n;
    4.21+	hunk += n;
    4.22+	return p;
    4.23+}
    4.24+
    4.25+void
    4.26+free(void *p)
    4.27+{
    4.28+	USED(p);
    4.29+}
    4.30+
    4.31+void*
    4.32+calloc(ulong m, ulong n)
    4.33+{
    4.34+	void *p;
    4.35+
    4.36+	n *= m;
    4.37+	p = malloc(n);
    4.38+	memset(p, 0, n);
    4.39+	return p;
    4.40+}
    4.41+
    4.42+void*
    4.43+realloc(void *p, ulong n)
    4.44+{
    4.45+	fprint(2, "realloc(0x%p %ld) called\n", p, n);
    4.46+	abort();
    4.47+	return 0;
    4.48+}
    4.49+
    4.50+void*
    4.51+mysbrk(ulong size)
    4.52+{
    4.53+	return sbrk(size);
    4.54+}
    4.55+
    4.56+void
    4.57+setmalloctag(void *v, uintptr pc)
    4.58+{
    4.59+	USED(v, pc);
    4.60+}
     5.1new file mode 100644
     5.2--- /dev/null
     5.3+++ b/sys/src/cmd/7l/dyn.c
     5.4@@ -0,0 +1,157 @@
     5.5+#include "l.h"
     5.6+
     5.7+enum{
     5.8+	ABSD = 0,
     5.9+	ABSU = 1,
    5.10+	RELD = 2,
    5.11+	RELU = 3,
    5.12+};
    5.13+
    5.14+int modemap[4] = { 0, 1, -1, 2, };
    5.15+
    5.16+typedef struct Reloc Reloc;
    5.17+
    5.18+struct Reloc
    5.19+{
    5.20+	int n;
    5.21+	int t;
    5.22+	uchar *m;
    5.23+	ulong *a;
    5.24+};
    5.25+
    5.26+Reloc rels;
    5.27+
    5.28+static void
    5.29+grow(Reloc *r)
    5.30+{
    5.31+	int t;
    5.32+	uchar *m, *nm;
    5.33+	ulong *a, *na;
    5.34+
    5.35+	t = r->t;
    5.36+	r->t += 64;
    5.37+	m = r->m;
    5.38+	a = r->a;
    5.39+	r->m = nm = malloc(r->t*sizeof(uchar));
    5.40+	r->a = na = malloc(r->t*sizeof(ulong));
    5.41+	memmove(nm, m, t*sizeof(uchar));
    5.42+	memmove(na, a, t*sizeof(ulong));
    5.43+	free(m);
    5.44+	free(a);
    5.45+}
    5.46+
    5.47+void
    5.48+dynreloc(Sym *s, long v, int abs)
    5.49+{
    5.50+	int i, k, n;
    5.51+	uchar *m;
    5.52+	ulong *a;
    5.53+	Reloc *r;
    5.54+
    5.55+	if(v&3)
    5.56+		diag("bad relocation address");
    5.57+	v >>= 2;
    5.58+	if(s != S && s->type == SUNDEF)
    5.59+		k = abs ? ABSU : RELU;
    5.60+	else
    5.61+		k = abs ? ABSD : RELD;
    5.62+	/* Bprint(&bso, "R %s a=%ld(%lx) %d\n", s->name, a, a, k); */
    5.63+	k = modemap[k];
    5.64+	r = &rels;
    5.65+	n = r->n;
    5.66+	if(n >= r->t)
    5.67+		grow(r);
    5.68+	m = r->m;
    5.69+	a = r->a;
    5.70+	for(i = n; i > 0; i--){
    5.71+		if(v < a[i-1]){	/* happens occasionally for data */
    5.72+			m[i] = m[i-1];
    5.73+			a[i] = a[i-1];
    5.74+		}
    5.75+		else
    5.76+			break;
    5.77+	}
    5.78+	m[i] = k;
    5.79+	a[i] = v;
    5.80+	r->n++;
    5.81+}
    5.82+
    5.83+static int
    5.84+sput(char *s)
    5.85+{
    5.86+	char *p;
    5.87+
    5.88+	p = s;
    5.89+	while(*s)
    5.90+		cput(*s++);
    5.91+	cput(0);
    5.92+	return  s-p+1;
    5.93+}
    5.94+
    5.95+void
    5.96+asmdyn(void)
    5.97+{
    5.98+	int i, n, t, c;
    5.99+	Sym *s;
   5.100+	ulong la, ra, *a;
   5.101+	vlong off;
   5.102+	uchar *m;
   5.103+	Reloc *r;
   5.104+
   5.105+	cflush();
   5.106+	off = seek(cout, 0, 1);
   5.107+	lput(0);
   5.108+	t = 0;
   5.109+	lput(imports);
   5.110+	t += 4;
   5.111+	for(i = 0; i < NHASH; i++)
   5.112+		for(s = hash[i]; s != S; s = s->link)
   5.113+			if(s->type == SUNDEF){
   5.114+				lput(s->sig);
   5.115+				t += 4;
   5.116+				t += sput(s->name);
   5.117+			}
   5.118+	
   5.119+	la = 0;
   5.120+	r = &rels;
   5.121+	n = r->n;
   5.122+	m = r->m;
   5.123+	a = r->a;
   5.124+	lput(n);
   5.125+	t += 4;
   5.126+	for(i = 0; i < n; i++){
   5.127+		ra = *a-la;
   5.128+		if(*a < la)
   5.129+			diag("bad relocation order");
   5.130+		if(ra < 256)
   5.131+			c = 0;
   5.132+		else if(ra < 65536)
   5.133+			c = 1;
   5.134+		else
   5.135+			c = 2;
   5.136+		cput((c<<6)|*m++);
   5.137+		t++;
   5.138+		if(c == 0){
   5.139+			cput(ra);
   5.140+			t++;
   5.141+		}
   5.142+		else if(c == 1){
   5.143+			wput(ra);
   5.144+			t += 2;
   5.145+		}
   5.146+		else{
   5.147+			lput(ra);
   5.148+			t += 4;
   5.149+		}
   5.150+		la = *a++;
   5.151+	}
   5.152+
   5.153+	cflush();
   5.154+	seek(cout, off, 0);
   5.155+	lput(t);
   5.156+
   5.157+	if(debug['v']){
   5.158+		Bprint(&bso, "import table entries = %d\n", imports);
   5.159+		Bprint(&bso, "export table entries = %d\n", exports);
   5.160+	}
   5.161+}
     6.1new file mode 100644
     6.2--- /dev/null
     6.3+++ b/sys/src/cmd/7l/l.h
     6.4@@ -0,0 +1,430 @@
     6.5+#include	<u.h>
     6.6+#include	<libc.h>
     6.7+#include	<bio.h>
     6.8+#include	"../7c/7.out.h"
     6.9+
    6.10+#ifndef	EXTERN
    6.11+#define	EXTERN	extern
    6.12+#endif
    6.13+
    6.14+#define	LIBNAMELEN	300
    6.15+
    6.16+void	addlibpath(char*);
    6.17+int	fileexists(char*);
    6.18+int	find1(long, int);
    6.19+char*	findlib(char*);
    6.20+
    6.21+typedef	struct	Adr	Adr;
    6.22+typedef	struct	Autom	Auto;
    6.23+typedef	struct	Count	Count;
    6.24+typedef	struct	Ieee	Ieee;
    6.25+typedef	struct	Prog	Prog;
    6.26+typedef	struct	Sym	Sym;
    6.27+typedef	struct	Mask	Mask;
    6.28+typedef	struct	Optab	Optab;
    6.29+typedef	struct	Oprang	Oprang;
    6.30+typedef	uchar	Opcross[32][2][32];
    6.31+
    6.32+#define	P		((Prog*)0)
    6.33+#define	S		((Sym*)0)
    6.34+#define	TNAME		(curtext&&curtext->from.sym?curtext->from.sym->name:noname)
    6.35+
    6.36+struct	Adr
    6.37+{
    6.38+	union
    6.39+	{
    6.40+		vlong	u0offset;
    6.41+		char*	u0sval;
    6.42+		Ieee*	u0ieee;
    6.43+	} u0;
    6.44+	union
    6.45+	{
    6.46+		Auto*	u1autom;
    6.47+		Sym*	u1sym;
    6.48+	} u1;
    6.49+	char	type;
    6.50+	char	reg;
    6.51+	char	name;
    6.52+	char	class;
    6.53+};
    6.54+
    6.55+#define	offset	u0.u0offset
    6.56+#define	sval	u0.u0sval
    6.57+#define	ieee	u0.u0ieee
    6.58+
    6.59+#define	autom	u1.u1autom
    6.60+#define	sym	u1.u1sym
    6.61+
    6.62+struct	Prog
    6.63+{
    6.64+	Adr	from;
    6.65+	Adr	from3;	/* third register operand */
    6.66+	Adr	to;
    6.67+	union
    6.68+	{
    6.69+		long	u0regused;
    6.70+		Prog*	u0forwd;
    6.71+	} u0;
    6.72+	Prog*	cond;
    6.73+	Prog*	link;
    6.74+	vlong	pc;
    6.75+	long	line;
    6.76+	uchar	mark;
    6.77+	ushort	optab;
    6.78+	ushort	as;
    6.79+	uchar	reg;
    6.80+};
    6.81+#define	regused	u0.u0regused
    6.82+#define	forwd	u0.u0forwd
    6.83+
    6.84+struct	Sym
    6.85+{
    6.86+	char	*name;
    6.87+	short	type;
    6.88+	short	version;
    6.89+	short	become;
    6.90+	short	frame;
    6.91+	uchar	subtype;
    6.92+	ushort	file;
    6.93+	vlong	value;
    6.94+	long	sig;
    6.95+	Sym*	link;
    6.96+};
    6.97+
    6.98+#define SIGNINTERN	(1729*325*1729)	/* signature of internal functions such as _div */
    6.99+
   6.100+struct	Autom
   6.101+{
   6.102+	Sym*	asym;
   6.103+	Auto*	link;
   6.104+	long	aoffset;
   6.105+	short	type;
   6.106+};
   6.107+
   6.108+struct	Optab
   6.109+{
   6.110+	ushort	as;
   6.111+	char	a1;
   6.112+	char	a2;
   6.113+	char	a3;
   6.114+	char	type;
   6.115+	char	size;
   6.116+	char	param;
   6.117+	char	flag;
   6.118+};
   6.119+struct	Oprang
   6.120+{
   6.121+	Optab*	start;
   6.122+	Optab*	stop;
   6.123+};
   6.124+struct	Mask
   6.125+{
   6.126+	uchar	s;
   6.127+	uchar	e;
   6.128+	uchar	r;
   6.129+	uvlong	v;
   6.130+};
   6.131+
   6.132+enum
   6.133+{
   6.134+	STEXT		= 1,
   6.135+	SDATA,
   6.136+	SBSS,
   6.137+	SDATA1,
   6.138+	SXREF,
   6.139+	SLEAF,
   6.140+	SFILE,
   6.141+	SCONST,
   6.142+	SSTRING,
   6.143+	SUNDEF,
   6.144+
   6.145+	SIMPORT,
   6.146+	SEXPORT,
   6.147+
   6.148+	LFROM		= 1<<0,
   6.149+	LTO		= 1<<1,
   6.150+	LPOOL		= 1<<2,
   6.151+
   6.152+	C_NONE		= 0,
   6.153+	C_REG,
   6.154+	C_RSP,		/* D_REG or D_SP */
   6.155+	C_SHIFT,		/* D_SHIFT: shift type, amount, value */
   6.156+	C_EXTREG,	/* D_EXTREG: reg, ext type, shift */
   6.157+	C_FREG,
   6.158+	C_SPR,
   6.159+	C_COND,
   6.160+
   6.161+	C_ZCON,		/* 0 (matching C_REG, not C_RSP, allowing REGZERO) */
   6.162+	C_ADDCON0,	/* 12-bit unsigned, unshifted */
   6.163+	C_ADDCON,	/* 12-bit unsigned, shifted left by 0 or 12 */
   6.164+	C_MOVCON,	/* generated by a 16-bit constant, optionally inverted and/or shifted by multiple of 16 */
   6.165+	C_BITCON,	/* bimm32 */
   6.166+	C_ABCON,	/* could be C_ADDCON or C_BITCON */
   6.167+	C_MBCON,	/* could be C_MOVCON or C_BITCON */
   6.168+	C_LCON,		/* 32-bit constant */
   6.169+	C_FCON,		/* floating-point constant */
   6.170+	C_VCON,		/* 64-bit constant */
   6.171+
   6.172+	C_AACON,	/* ADDCON offset in auto constant $a(FP) */
   6.173+	C_LACON,	/* 32-bit offset in auto constant $a(FP) */
   6.174+
   6.175+	C_AECON,	/* ADDCON offset in extern constant $e(SB) */
   6.176+
   6.177+	C_SBRA,
   6.178+	C_LBRA,
   6.179+
   6.180+	C_NPAUTO,	/* -512 <= x < 0, 0 mod 8 */
   6.181+	C_NSAUTO,	/* -256 <= x < 0 */
   6.182+	C_PSAUTO,	/* 0 to 255 */
   6.183+	C_PPAUTO,	/* 0 to 504, 0 mod 8 */
   6.184+	C_UAUTO4K,	/* 0 to 4095 */
   6.185+	C_UAUTO8K,	/* 0 to 8190, 0 mod 2 */
   6.186+	C_UAUTO16K,	/* 0 to 16380, 0 mod 4 */
   6.187+	C_UAUTO32K,	/* 0 to 32760, 0 mod 8 */
   6.188+	C_UAUTO64K,	/* 0 to 65520, 0 mod 16 */
   6.189+	C_LAUTO,		/* any other 32-bit constant */
   6.190+
   6.191+	C_SEXT1,		/* 0 to 4095, direct */
   6.192+	C_SEXT2,		/* 0 to 8190 */
   6.193+	C_SEXT4,		/* 0 to 16380 */
   6.194+	C_SEXT8,		/* 0 to 32760 */
   6.195+	C_SEXT16,	/* 0 to 65520 */
   6.196+	C_LEXT,
   6.197+
   6.198+	C_NPOREG,	/* mirror NPAUTO etc, except for ZOREG */
   6.199+	C_NSOREG,
   6.200+	C_ZOREG,
   6.201+	C_PSOREG,
   6.202+	C_PPOREG,
   6.203+	C_UOREG4K,
   6.204+	C_UOREG8K,
   6.205+	C_UOREG16K,
   6.206+	C_UOREG32K,
   6.207+	C_UOREG64K,
   6.208+	C_LOREG,
   6.209+
   6.210+	C_ADDR,		/* relocatable address for dynamic loading */
   6.211+	C_ROFF,		/* register offset (inc register extended) */
   6.212+	C_XPOST,
   6.213+	C_XPRE,
   6.214+
   6.215+	C_VREG,
   6.216+
   6.217+	C_GOK,
   6.218+	C_NCLASS,	/* must be last */
   6.219+
   6.220+/* mark flags */
   6.221+	FOLL		= 1<<0,
   6.222+	LABEL	= 1<<1,
   6.223+	LEAF		= 1<<2,
   6.224+	FLOAT		= 1<<3,
   6.225+	BRANCH		= 1<<4,
   6.226+	LOAD		= 1<<5,
   6.227+	SYNC		= 1<<6,
   6.228+	NOSCHED		= 1<<7,
   6.229+
   6.230+	MINSIZ		= 64,
   6.231+
   6.232+	Roffset	= 22,		/* no. bits for offset in relocation address */
   6.233+	Rindex	= 10,		/* no. bits for index in relocation address */
   6.234+
   6.235+	STACKALIGN = 16,	/* alignment of stack */
   6.236+	PCSZ=	8,	/* size of PC */
   6.237+};
   6.238+
   6.239+enum
   6.240+{
   6.241+
   6.242+	STRINGSZ	= 200,
   6.243+	NHASH		= 10007,
   6.244+	NHUNK		= 100000,
   6.245+	MAXIO		= 8192,
   6.246+	MAXHIST		= 20,	/* limit of path elements for history symbols */
   6.247+};
   6.248+
   6.249+EXTERN union
   6.250+{
   6.251+	struct
   6.252+	{
   6.253+		uchar	obuf[MAXIO];			/* output buffer */
   6.254+		uchar	ibuf[MAXIO];			/* input buffer */
   6.255+	} u;
   6.256+	char	dbuf[1];
   6.257+} buf;
   6.258+
   6.259+#define	cbuf	u.obuf
   6.260+#define	xbuf	u.ibuf
   6.261+
   6.262+EXTERN	long	HEADR;			/* length of header */
   6.263+EXTERN	int	HEADTYPE;		/* type of header */
   6.264+EXTERN	long	INITDAT;		/* data location */
   6.265+EXTERN	long	INITRND;		/* data round above text location */
   6.266+EXTERN	long	INITTEXT;		/* text location */
   6.267+EXTERN	long	INITTEXTP;		/* text location (physical) */
   6.268+EXTERN	char*	INITENTRY;		/* entry point */
   6.269+EXTERN	long	autosize;
   6.270+EXTERN	Biobuf	bso;
   6.271+EXTERN	long	bsssize;
   6.272+EXTERN	int	cbc;
   6.273+EXTERN	uchar*	cbp;
   6.274+EXTERN	int	cout;
   6.275+EXTERN	Auto*	curauto;
   6.276+EXTERN	Auto*	curhist;
   6.277+EXTERN	Prog*	curp;
   6.278+EXTERN	Prog*	curtext;
   6.279+EXTERN	Prog*	datap;
   6.280+EXTERN	long	datsize;
   6.281+EXTERN	char	debug[128];
   6.282+EXTERN	Prog*	etextp;
   6.283+EXTERN	Prog*	firstp;
   6.284+
   6.285+EXTERN	char	fnuxi4[4];
   6.286+EXTERN	char	fnuxi8[8];
   6.287+EXTERN	char	inuxi1[1];
   6.288+EXTERN	char	inuxi2[2];
   6.289+EXTERN	char	inuxi4[4];
   6.290+EXTERN	uchar	inuxi8[8];
   6.291+
   6.292+EXTERN	Sym*	hash[NHASH];
   6.293+EXTERN	Sym*	histfrog[MAXHIST];
   6.294+EXTERN	int	histfrogp;
   6.295+EXTERN	int	histgen;
   6.296+EXTERN	char*	hunk;
   6.297+
   6.298+EXTERN	char*	library[50];
   6.299+EXTERN	char*	libraryobj[50];
   6.300+EXTERN	int	libraryp;
   6.301+EXTERN	Prog*	lastp;
   6.302+EXTERN	long	lcsize;
   6.303+EXTERN	char	literal[32];
   6.304+EXTERN	int	nerrors;
   6.305+EXTERN	long	nhunk;
   6.306+EXTERN	char*	noname;
   6.307+EXTERN	vlong	instoffset;
   6.308+EXTERN	Opcross	opcross[8];
   6.309+EXTERN	char*	outfile;
   6.310+EXTERN	vlong	pc;
   6.311+EXTERN	uchar	repop[ALAST];
   6.312+EXTERN	long	symsize;
   6.313+EXTERN	Prog*	textp;
   6.314+EXTERN	vlong	textsize;
   6.315+EXTERN	long	thunk;
   6.316+EXTERN	int	version;
   6.317+EXTERN	char	xcmp[C_NCLASS][C_NCLASS];
   6.318+EXTERN	int	xrefresolv;
   6.319+EXTERN	Prog	zprg;
   6.320+EXTERN	int	dtype;
   6.321+
   6.322+EXTERN	int	doexp, dlm;
   6.323+EXTERN	int	imports, nimports;
   6.324+EXTERN	int	exports, nexports;
   6.325+EXTERN	char*	EXPTAB;
   6.326+EXTERN	Prog	undefp;
   6.327+
   6.328+#define	UP	(&undefp)
   6.329+
   6.330+extern	char*	anames[];
   6.331+extern	char*	cnames[];
   6.332+extern	Optab	optab[];
   6.333+
   6.334+EXTERN	Prog*	blitrl;
   6.335+EXTERN	Prog*	elitrl;
   6.336+
   6.337+#pragma	varargck	argpos	diag 1
   6.338+
   6.339+#pragma	varargck	type	"A"	int
   6.340+#pragma	varargck	type	"A"	uint
   6.341+#pragma	varargck	type	"C"	int
   6.342+#pragma	varargck	type	"D"	Adr*
   6.343+#pragma	varargck	type	"N"	Adr*
   6.344+#pragma	varargck	type	"P"	Prog*
   6.345+#pragma	varargck	type	"S"	char*
   6.346+
   6.347+
   6.348+int	Aconv(Fmt*);
   6.349+int	Cconv(Fmt*);
   6.350+int	Dconv(Fmt*);
   6.351+int	Nconv(Fmt*);
   6.352+int	Pconv(Fmt*);
   6.353+int	Rconv(Fmt*);
   6.354+int	Sconv(Fmt*);
   6.355+int	aclass(Adr*);
   6.356+void	addpool(Prog*, Adr*);
   6.357+vlong	atolwhex(char*);
   6.358+void	asmb(void);
   6.359+void	asmdyn(void);
   6.360+void	asmlc(void);
   6.361+void	asmout(Prog*, Optab*);
   6.362+void	asmsym(void);
   6.363+Prog*	brchain(Prog*);
   6.364+Prog*	brloop(Prog*);
   6.365+void	buildop(void);
   6.366+void	buildrep(int, int);
   6.367+void	cflush(void);
   6.368+void	ckoff(Sym*, long);
   6.369+int	chipfloat(Ieee*);
   6.370+int	cmp(int, int);
   6.371+int	compound(Prog*);
   6.372+void	cput(int);
   6.373+void	datblk(long, long, int);
   6.374+void	diag(char*, ...);
   6.375+void	dodata(void);
   6.376+void	doprof1(void);
   6.377+void	doprof2(void);
   6.378+void	dynreloc(Sym*, long, int);
   6.379+vlong	entryvalue(void);
   6.380+void	errorexit(void);
   6.381+void	export(void);
   6.382+void	follow(void);
   6.383+void	gethunk(void);
   6.384+void	histtoauto(void);
   6.385+void*	halloc(usize);
   6.386+int	isnop(Prog*);
   6.387+double	ieeedtod(Ieee*);
   6.388+long	ieeedtof(Ieee*);
   6.389+void	import(void);
   6.390+void	ldobj(int, long, char*);
   6.391+void	listinit(void);
   6.392+void	llput(vlong);
   6.393+void	llputl(vlong);
   6.394+void	loadlib(void);
   6.395+Sym*	lookup(char*, int);
   6.396+void	lput(long);
   6.397+void	lputl(long);
   6.398+void	mkfwd(void);
   6.399+int	movcon(vlong);
   6.400+void*	mysbrk(ulong);
   6.401+void	names(void);
   6.402+void	nocache(Prog*);
   6.403+void	nuxiinit(void);
   6.404+void	objfile(char*);
   6.405+vlong	offsetshift(vlong, int);
   6.406+Optab*	oplook(Prog*);
   6.407+void	patch(void);
   6.408+int	pseudo(Prog*);
   6.409+void	prasm(Prog*);
   6.410+Prog*	prg(void);
   6.411+void	putsymb(char*, int, vlong, int);
   6.412+void	readundefs(char*, int);
   6.413+long	regoff(Adr*);
   6.414+int	relinv(int);
   6.415+vlong	rnd(vlong, long);
   6.416+void	span(void);
   6.417+void	undef(void);
   6.418+void	wput(long);
   6.419+void	wputl(long);
   6.420+void	noops(void);
   6.421+Mask*	findmask(uvlong);
   6.422+void	xdefine(char*, int, long);
   6.423+void	xfol(Prog*);
   6.424+void	zerosig(char*);
   6.425+
   6.426+
   6.427+#pragma	varargck	type	"R"	int
   6.428+
   6.429+/* for ../ld */
   6.430+#define	isbranch(a)	((a) == AB)
   6.431+#define	iscall(a)	((a) == ABL)
   6.432+#define	isreturn(a)	((a) == ARETURN || (a) == ARET || (a) == AERET)
   6.433+#define	branchop()	AB
   6.434+#define	canfollow(a)	((a) != ATEXT && (a) != ABCASE)
     7.1new file mode 100644
     7.2--- /dev/null
     7.3+++ b/sys/src/cmd/7l/list.c
     7.4@@ -0,0 +1,362 @@
     7.5+#include "l.h"
     7.6+
     7.7+void
     7.8+listinit(void)
     7.9+{
    7.10+
    7.11+	fmtinstall('A', Aconv);
    7.12+	fmtinstall('D', Dconv);
    7.13+	fmtinstall('P', Pconv);
    7.14+	fmtinstall('S', Sconv);
    7.15+	fmtinstall('N', Nconv);
    7.16+	fmtinstall('R', Rconv);
    7.17+}
    7.18+
    7.19+int
    7.20+Pconv(Fmt *fp)
    7.21+{
    7.22+	char str[STRINGSZ], *s;
    7.23+	Prog *p;
    7.24+	int a;
    7.25+
    7.26+	p = va_arg(fp->args, Prog*);
    7.27+	curp = p;
    7.28+	a = p->as;
    7.29+	switch(a) {
    7.30+	default:
    7.31+		s = str;
    7.32+		s += sprint(s, "(%ld)", p->line);
    7.33+		if(p->reg == NREG && p->from3.type == D_NONE)
    7.34+			sprint(s, "	%A	%D,%D",
    7.35+				a, &p->from, &p->to);
    7.36+		else if(p->from.type != D_FREG){
    7.37+			s += sprint(s, "	%A	%D", a, &p->from);
    7.38+			if(p->from3.type != D_NONE)
    7.39+				s += sprint(s, ",%D", &p->from3);
    7.40+			if(p->reg != NREG)
    7.41+				s += sprint(s, ",R%d", p->reg);
    7.42+			sprint(s, ",%D", &p->to);
    7.43+		}else
    7.44+			sprint(s, "	%A	%D,F%d,%D",
    7.45+				a, &p->from, p->reg, &p->to);
    7.46+		break;
    7.47+
    7.48+	case ADATA:
    7.49+	case AINIT:
    7.50+	case ADYNT:
    7.51+		sprint(str, "(%ld)	%A	%D/%d,%D",
    7.52+			p->line, a, &p->from, p->reg, &p->to);
    7.53+		break;
    7.54+	}
    7.55+	return fmtstrcpy(fp, str);
    7.56+}
    7.57+
    7.58+int
    7.59+Aconv(Fmt *fp)
    7.60+{
    7.61+	char *s;
    7.62+	int a;
    7.63+
    7.64+	a = va_arg(fp->args, int);
    7.65+	s = "???";
    7.66+	if(a >= AXXX && a < ALAST && anames[a])
    7.67+		s = anames[a];
    7.68+	return fmtstrcpy(fp, s);
    7.69+}
    7.70+
    7.71+char*	strcond[16] =
    7.72+{
    7.73+	"EQ",
    7.74+	"NE",
    7.75+	"HS",
    7.76+	"LO",
    7.77+	"MI",
    7.78+	"PL",
    7.79+	"VS",
    7.80+	"VC",
    7.81+	"HI",
    7.82+	"LS",
    7.83+	"GE",
    7.84+	"LT",
    7.85+	"GT",
    7.86+	"LE",
    7.87+	"AL",
    7.88+	"NV"
    7.89+};
    7.90+
    7.91+int
    7.92+Dconv(Fmt *fp)
    7.93+{
    7.94+	char str[STRINGSZ];
    7.95+	char *op;
    7.96+	Adr *a;
    7.97+	long v;
    7.98+	static char *extop[] = {".UB", ".UH", ".UW", ".UX", ".SB", ".SH", ".SW", ".SX"};
    7.99+
   7.100+	a = va_arg(fp->args, Adr*);
   7.101+	switch(a->type) {
   7.102+
   7.103+	default:
   7.104+		sprint(str, "GOK-type(%d)", a->type);
   7.105+		break;
   7.106+
   7.107+	case D_NONE:
   7.108+		str[0] = 0;
   7.109+		if(a->name != D_NONE || a->reg != NREG || a->sym != S)
   7.110+			sprint(str, "%N(R%d)(NONE)", a, a->reg);
   7.111+		break;
   7.112+
   7.113+	case D_CONST:
   7.114+		if(a->reg == NREG || a->reg == REGZERO)
   7.115+			sprint(str, "$%N", a);
   7.116+		else
   7.117+			sprint(str, "$%N(R%d)", a, a->reg);
   7.118+		break;
   7.119+
   7.120+	case D_SHIFT:
   7.121+		v = a->offset;
   7.122+		op = "<<>>->@>" + (((v>>22) & 3) << 1);
   7.123+		sprint(str, "R%ld%c%c%ld", (v>>16)&0x1F, op[0], op[1], (v>>10)&0x3F);
   7.124+		if(a->reg != NREG)
   7.125+			sprint(str+strlen(str), "(R%d)", a->reg);
   7.126+		break;
   7.127+
   7.128+	case D_OCONST:
   7.129+		sprint(str, "$*$%N", a);
   7.130+		if(a->reg != NREG)
   7.131+			sprint(str, "%N(R%d)(CONST)", a, a->reg);
   7.132+		break;
   7.133+
   7.134+	case D_OREG:
   7.135+		if(a->reg != NREG)
   7.136+			sprint(str, "%N(R%d)", a, a->reg);
   7.137+		else
   7.138+			sprint(str, "%N", a);
   7.139+		break;
   7.140+
   7.141+	case D_XPRE:
   7.142+		if(a->reg != NREG)
   7.143+			sprint(str, "%N(R%d)!", a, a->reg);
   7.144+		else
   7.145+			sprint(str, "%N!", a);
   7.146+		break;
   7.147+
   7.148+	case D_XPOST:
   7.149+		if(a->reg != NREG)
   7.150+			sprint(str, "(R%d)%N!", a->reg, a);
   7.151+		else
   7.152+			sprint(str, "%N!", a);
   7.153+		break;
   7.154+
   7.155+	case D_EXTREG:
   7.156+		v = a->offset;
   7.157+		if(v & (7<<10))
   7.158+			snprint(str, sizeof(str), "R%ld%s<<%ld", (v>>16)&31, extop[(v>>13)&7], (v>>10)&7);
   7.159+		else
   7.160+			snprint(str, sizeof(str), "R%ld%s", (v>>16)&31, extop[(v>>13)&7]);
   7.161+		break;
   7.162+
   7.163+	case D_ROFF:
   7.164+		v = a->offset;
   7.165+		if(v & (1<<16))
   7.166+			snprint(str, sizeof(str), "(R%d)[R%ld%s]", a->reg, v&31, extop[(v>>8)&7]);
   7.167+		else
   7.168+			snprint(str, sizeof(str), "(R%d)(R%ld%s)", a->reg, v&31, extop[(v>>8)&7]);
   7.169+		break;
   7.170+
   7.171+	case D_REG:
   7.172+		sprint(str, "R%d", a->reg);
   7.173+		if(a->name != D_NONE || a->sym != S)
   7.174+			sprint(str, "%N(R%d)(REG)", a, a->reg);
   7.175+		break;
   7.176+
   7.177+	case D_SP:
   7.178+		if(a->name != D_NONE || a->sym != S)
   7.179+			sprint(str, "%N(R%d)(REG)", a, a->reg);
   7.180+		else
   7.181+			strcpy(str, "SP");
   7.182+		break;
   7.183+
   7.184+	case D_COND:
   7.185+		strcpy(str, strcond[a->reg & 0xF]);
   7.186+		break;
   7.187+
   7.188+	case D_FREG:
   7.189+		sprint(str, "F%d", a->reg);
   7.190+		if(a->name != D_NONE || a->sym != S)
   7.191+			sprint(str, "%N(R%d)(REG)", a, a->reg);
   7.192+		break;
   7.193+
   7.194+	case D_SPR:
   7.195+		switch((ulong)a->offset){
   7.196+		case D_FPSR:
   7.197+			sprint(str, "FPSR");
   7.198+			break;
   7.199+		case D_FPCR:
   7.200+			sprint(str, "FPCR");
   7.201+			break;
   7.202+		case D_NZCV:
   7.203+			sprint(str, "NZCV");
   7.204+			break;
   7.205+		default:
   7.206+			sprint(str, "SPR(%#llux)", a->offset);
   7.207+			break;
   7.208+		}
   7.209+		if(a->name != D_NONE || a->sym != S)
   7.210+			sprint(str, "%N(SPR%lld)(REG)", a, a->offset);
   7.211+		break;
   7.212+
   7.213+	case D_BRANCH:	/* botch */
   7.214+		if(curp->cond != P) {
   7.215+			v = curp->cond->pc;
   7.216+			if(a->sym != S)
   7.217+				sprint(str, "%s+%#.5lux(BRANCH)", a->sym->name, v);
   7.218+			else
   7.219+				sprint(str, "%.5lux(BRANCH)", v);
   7.220+		} else
   7.221+			if(a->sym != S)
   7.222+				sprint(str, "%s+%lld(APC)", a->sym->name, a->offset);
   7.223+			else
   7.224+				sprint(str, "%lld(APC)", a->offset);
   7.225+		break;
   7.226+
   7.227+	case D_FCONST:
   7.228+		sprint(str, "$%e", ieeedtod(a->ieee));
   7.229+		break;
   7.230+
   7.231+	case D_SCONST:
   7.232+		sprint(str, "$\"%S\"", a->sval);
   7.233+		break;
   7.234+	}
   7.235+	return fmtstrcpy(fp, str);
   7.236+}
   7.237+
   7.238+int
   7.239+Nconv(Fmt *fp)
   7.240+{
   7.241+	char str[STRINGSZ];
   7.242+	Adr *a;
   7.243+	Sym *s;
   7.244+
   7.245+	a = va_arg(fp->args, Adr*);
   7.246+	s = a->sym;
   7.247+	switch(a->name) {
   7.248+	default:
   7.249+		sprint(str, "GOK-name(%d)", a->name);
   7.250+		break;
   7.251+
   7.252+	case D_NONE:
   7.253+		sprint(str, "%lld", a->offset);
   7.254+		break;
   7.255+
   7.256+	case D_EXTERN:
   7.257+		if(s == S)
   7.258+			sprint(str, "%lld(SB)", a->offset);
   7.259+		else
   7.260+			sprint(str, "%s+%lld(SB)", s->name, a->offset);
   7.261+		break;
   7.262+
   7.263+	case D_STATIC:
   7.264+		if(s == S)
   7.265+			sprint(str, "<>+%lld(SB)", a->offset);
   7.266+		else
   7.267+			sprint(str, "%s<>+%lld(SB)", s->name, a->offset);
   7.268+		break;
   7.269+
   7.270+	case D_AUTO:
   7.271+		if(s == S)
   7.272+			sprint(str, "%lld(SP)", a->offset);
   7.273+		else
   7.274+			sprint(str, "%s-%lld(SP)", s->name, -a->offset);
   7.275+		break;
   7.276+
   7.277+	case D_PARAM:
   7.278+		if(s == S)
   7.279+			sprint(str, "%lld(FP)", a->offset);
   7.280+		else
   7.281+			sprint(str, "%s+%lld(FP)", s->name, a->offset);
   7.282+		break;
   7.283+	}
   7.284+	return fmtstrcpy(fp, str);
   7.285+}
   7.286+
   7.287+int
   7.288+Rconv(Fmt *fp)
   7.289+{
   7.290+	char *s;
   7.291+	int a;
   7.292+
   7.293+	a = va_arg(fp->args, int);
   7.294+	s = "C_??";
   7.295+	if(a >= C_NONE && a <= C_NCLASS)
   7.296+		s = cnames[a];
   7.297+	return fmtstrcpy(fp, s);
   7.298+}
   7.299+
   7.300+void
   7.301+prasm(Prog *p)
   7.302+{
   7.303+	print("%P\n", p);
   7.304+}
   7.305+
   7.306+int
   7.307+Sconv(Fmt *fp)
   7.308+{
   7.309+	int i, c;
   7.310+	char str[STRINGSZ], *p, *a;
   7.311+
   7.312+	a = va_arg(fp->args, char*);
   7.313+	p = str;
   7.314+	for(i=0; i<sizeof(long); i++) {
   7.315+		c = a[i] & 0xff;
   7.316+		if(c >= 'a' && c <= 'z' ||
   7.317+		   c >= 'A' && c <= 'Z' ||
   7.318+		   c >= '0' && c <= '9' ||
   7.319+		   c == ' ' || c == '%') {
   7.320+			*p++ = c;
   7.321+			continue;
   7.322+		}
   7.323+		*p++ = '\\';
   7.324+		switch(c) {
   7.325+		case 0:
   7.326+			*p++ = 'z';
   7.327+			continue;
   7.328+		case '\\':
   7.329+		case '"':
   7.330+			*p++ = c;
   7.331+			continue;
   7.332+		case '\n':
   7.333+			*p++ = 'n';
   7.334+			continue;
   7.335+		case '\t':
   7.336+			*p++ = 't';
   7.337+			continue;
   7.338+		}
   7.339+		*p++ = (c>>6) + '0';
   7.340+		*p++ = ((c>>3) & 7) + '0';
   7.341+		*p++ = (c & 7) + '0';
   7.342+	}
   7.343+	*p = 0;
   7.344+	return fmtstrcpy(fp, str);
   7.345+}
   7.346+
   7.347+void
   7.348+diag(char *fmt, ...)
   7.349+{
   7.350+	char buf[STRINGSZ], *tn;
   7.351+	va_list arg;
   7.352+
   7.353+	tn = "??none??";
   7.354+	if(curtext != P && curtext->from.sym != S)
   7.355+		tn = curtext->from.sym->name;
   7.356+	va_start(arg, fmt);
   7.357+	vseprint(buf, buf+sizeof(buf), fmt, arg);
   7.358+	va_end(arg);
   7.359+	print("%s: %s\n", tn, buf);
   7.360+
   7.361+	nerrors++;
   7.362+	if(nerrors > 10) {
   7.363+		print("too many errors\n");
   7.364+		errorexit();
   7.365+	}
   7.366+}
     8.1new file mode 100644
     8.2--- /dev/null
     8.3+++ b/sys/src/cmd/7l/mkcname
     8.4@@ -0,0 +1,17 @@
     8.5+ed - l.h <<'!'
     8.6+v/^	C_/d
     8.7+g/^	C_NCLASS/s//&,/
     8.8+g/[ 	]*=.*,/s//,/
     8.9+v/,/p
    8.10+,s/^	C_/	"/
    8.11+,s/,.*$/",/
    8.12+1i
    8.13+char	*cnames[] =
    8.14+{
    8.15+.
    8.16+,a
    8.17+};
    8.18+.
    8.19+w cnam.c
    8.20+Q
    8.21+!
     9.1new file mode 100644
     9.2--- /dev/null
     9.3+++ b/sys/src/cmd/7l/mkfile
     9.4@@ -0,0 +1,37 @@
     9.5+</$objtype/mkfile
     9.6+
     9.7+TARG=7l
     9.8+OFILES=\
     9.9+	asm.$O\
    9.10+	asmout.$O\
    9.11+	enam.$O\
    9.12+	bits.$O\
    9.13+	cnam.$O\
    9.14+	compat.$O\
    9.15+	dyn.$O\
    9.16+	list.$O\
    9.17+	noop.$O\
    9.18+	obj.$O\
    9.19+	optab.$O\
    9.20+	span.$O\
    9.21+	pass.$O\
    9.22+	mod.$O\
    9.23+
    9.24+HFILES=\
    9.25+	l.h\
    9.26+	../7c/7.out.h\
    9.27+
    9.28+BIN=/$objtype/bin
    9.29+</sys/src/cmd/mkone
    9.30+
    9.31+../7c/enam.c: ../7c/7.out.h
    9.32+	@ { cd ../7c; mk enam.c }
    9.33+
    9.34+cnam.c:	l.h mkcname
    9.35+	rc mkcname
    9.36+