1 /* coded by Ketmar // Invisible Vector <ketmar@ketmar.no-ip.org>
2 * Understanding is not required. Only obedience.
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, version 3 of the License ONLY.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 module iv
.x11gfx
/*is aliced*/;
18 import arsd
.simpledisplay
;
23 // ////////////////////////////////////////////////////////////////////////// //
24 // 0:b; 1:g; 2:r; 3: nothing
25 __gshared
int vbufW
= 256, vbufH
= 192; // 128
26 __gshared
uint[] vbuf
;
27 __gshared
bool blit2x
= true;
28 enum BlitType
{ Normal
, BlackWhite
, Green
, Red
}
29 __gshared
int blitType
= BlitType
.Normal
;
30 __gshared
int blitShine
= 0; // adds this to non-black colors
31 __gshared Image vbimg
;
32 __gshared SimpleWindow vbwin
;
35 // ////////////////////////////////////////////////////////////////////////// //
36 void x11gfxDeinit () {
38 if (vbimg
!is null) delete vbimg
;
39 if (vbwin
!is null) { if (!vbwin
.closed
) vbwin
.close(); delete vbwin
; }
40 if (vbuf
!is null) delete vbuf
;
48 SimpleWindow
x11gfxInit (string title
) {
49 if (vbufW
< 1 || vbufH
< 1 || vbufW
> 4096 || vbufH
> 4096) assert(0, "invalid dimensions");
51 vbwin
= new SimpleWindow(vbufW
*(blit2x ?
2 : 1), vbufH
*(blit2x ?
2 : 1), title
, OpenGlOptions
.no
, Resizablity
.fixedSize
);
52 vbimg
= new Image(vbufW
*(blit2x ?
2 : 1), vbufH
*(blit2x ?
2 : 1));
58 if (vbwin
is null || vbwin
.closed
) return;
59 auto painter
= vbwin
.draw();
60 painter
.drawImage(Point(0, 0), vbimg
);
64 // ////////////////////////////////////////////////////////////////////////// //
65 final class X11Image
{
70 assert(w
> 0 && w
<= 4096);
71 assert(h
> 0 && h
<= 4096);
78 VColor
getPixel (int x
, int y
) const {
79 return (x
>= 0 && y
>= 0 && x
< width
&& y
< height ? data
[y
*width
+x
] : Transparent
);
82 void setPixel (int x
, int y
, VColor c
) {
83 if (x
>= 0 && y
>= 0 && x
< width
&& y
< height
) data
[y
*width
+x
] = c
;
86 void blitFast (int x
, int y
) const {
87 if (width
< 1 || height
< 1) return;
88 if (x
<= -width || y
<= -height
) return;
89 if (x
>= vbufW || y
>= vbufH
) return;
90 auto src
= cast(const(VColor
)*)data
.ptr
;
91 if (x
>= 0 && y
>= 0 && x
+width
< vbufW
&& y
+height
< vbufH
) {
92 auto d
= cast(uint*)vbuf
.ptr
;
94 foreach (int dy
; 0..height
) {
95 d
[0..width
] = src
[0..width
];
100 foreach (int dy
; 0..height
) {
101 foreach (int dx
; 0..width
) {
102 .setPixel(x
+dx
, y
+dy
, *src
++);
108 void blit (int x
, int y
) const {
109 if (width
< 1 || height
< 1) return;
110 if (x
<= -width || y
<= -height
) return;
111 if (x
>= vbufW || y
>= vbufH
) return;
112 auto src
= cast(const(VColor
)*)data
.ptr
;
113 foreach (int dy
; 0..height
) {
114 foreach (int dx
; 0..width
) {
115 putPixel(x
+dx
, y
+dy
, *src
++);
122 private void initVBuf () {
123 vbuf
.length
= vbufW
*vbufH
;
129 void blit2xImpl(string op
, bool scanlines
=true) (Image img
) {
131 if (blitShine
&& c0
) {
133 immutable ubyte xc0 = clampToByte(cast(int)(c0&0xff ? cast(int)(c0&0xff)+blitShine : 0));
134 immutable ubyte xc1 = clampToByte(cast(int)((c0>>8)&0xff ? cast(int)((c0>>8)&0xff)+blitShine : 0));
135 immutable ubyte xc2 = clampToByte(cast(int)((c0>>16)&0xff ? cast(int)((c0>>16)&0xff)+blitShine : 0));
137 immutable ubyte xc0
= clampToByte(cast(int)(cast(int)(c0
&0xff)+blitShine
));
138 immutable ubyte xc1
= clampToByte(cast(int)(cast(int)((c0
>>8)&0xff)+blitShine
));
139 immutable ubyte xc2
= clampToByte(cast(int)(cast(int)((c0
>>16)&0xff)+blitShine
));
140 c0
= xc0|
(xc1
<<8)|
(xc2
<<16);
143 static if (UsingSimpledisplayX11
) {
144 auto s
= cast(const(ubyte)*)vbuf
.ptr
;
145 immutable iw
= img
.width
;
146 auto dd = cast(uint*)img
.getDataPointer
;
147 foreach (immutable int dy
; 0..vbufH
) {
148 if (dy
*2+1 >= img
.height
) return;
149 auto d
= dd+iw
*(dy
*2);
150 foreach (immutable int dx
; 0..vbufW
) {
152 static if (op
.length
) mixin(op
);
154 static if (scanlines
) {
155 immutable uint c1
= ((((c0
&0x00ff00ff)*6)>>3)&0x00ff00ff)|
(((c0
&0x0000ff00)*6)>>3)&0x0000ff00;
160 d
[iw
+0] = d
[iw
+1] = c1
;
168 immutable bpp
= img
.bytesPerPixel();
169 immutable rofs
= img
.redByteOffset
;
170 immutable gofs
= img
.greenByteOffset
;
171 immutable bofs
= img
.blueByteOffset
;
172 immutable nlo
= img
.adjustmentForNextLine
;
173 auto s
= cast(const(ubyte)*)vbuf
.ptr
;
174 immutable iw
= img
.width
;
175 auto dd = cast(ubyte*)img
.getDataPointer
;
176 foreach (immutable int dy
; 0..vbufH
) {
177 if (dy
*2+1 >= img
.height
) return;
178 auto d
= dd+img
.offsetForPixel(0, dy
*2);
179 foreach (immutable int dx
; 0..vbufW
) {
181 static if (op
.length
) mixin(op
);
183 static if (scanlines
) {
184 immutable uint c1
= ((((c0
&0x00ff00ff)*6)>>3)&0x00ff00ff)|
(((c0
&0x0000ff00)*6)>>3)&0x0000ff00;
188 d
[bofs
] = d
[bofs
+bpp
] = c0
&0xff;
189 d
[gofs
] = d
[gofs
+bpp
] = (c0
>>8)&0xff;
190 d
[rofs
] = d
[rofs
+bpp
] = (c0
>>16)&0xff;
191 d
[bofs
+nlo
] = d
[bofs
+nlo
+bpp
] = c0
&0xff;
192 d
[gofs
+nlo
] = d
[gofs
+nlo
+bpp
] = (c0
>>8)&0xff;
193 d
[rofs
+nlo
] = d
[rofs
+nlo
+bpp
] = (c0
>>16)&0xff;
202 alias blit2xTV
= blit2xImpl
!"uint c0 = (cast(immutable(uint)*)s)[0];";
203 alias blit2xTVBW
= blit2xImpl
!"immutable ubyte i = cast(ubyte)((s[0]*28+s[1]*151+s[2]*77)/256); uint c0 = (i<<16)|(i<<8)|i;";
204 alias blit2xTVGreen
= blit2xImpl
!"immutable ubyte i = cast(ubyte)((s[0]*28+s[1]*151+s[2]*77)/256); uint c0 = i<<8;";
205 alias blit2xTVRed
= blit2xImpl
!"immutable ubyte i = cast(ubyte)((s[0]*28+s[1]*151+s[2]*77)/256); uint c0 = i<<16;";
209 void realizeVBuf (/*Image img*/) {
210 if (vbimg
is null) return;
214 auto dp = cast(uint*)img.getDataPointer;
215 import core.stdc.string : memcpy;
216 memcpy(dp, sp, vbufW*vbufH*4);
219 if (img
.width
< vbufW
*2 || img
.height
< vbufH
*2) return;
221 case BlitType
.BlackWhite
: blit2xTVBW(img
); break;
222 case BlitType
.Green
: blit2xTVGreen(img
); break;
223 case BlitType
.Red
: blit2xTVRed(img
); break;
224 default: blit2xTV(img
); break;
227 if (img
.width
< vbufW || img
.height
< vbufH
) return;
228 static if (UsingSimpledisplayX11
) {
229 auto dp
= cast(uint*)img
.getDataPointer
;
230 dp
[0..vbufW
*vbufH
] = vbuf
.ptr
[0..vbufW
*vbufH
];
233 auto sp
= cast(ubyte*)vbuf
.ptr
;
234 auto dp
= cast(ubyte*)img
.getDataPointer
;
235 immutable bpp
= img
.bytesPerPixel();
236 immutable rofs
= img
.redByteOffset
;
237 immutable gofs
= img
.greenByteOffset
;
238 immutable bofs
= img
.blueByteOffset
;
239 foreach (immutable y
; 0..vbufH
) {
240 auto d
= dp
+img
.offsetForTopLeftPixel
;
241 foreach (immutable x
; 0..vbufW
) {
254 // ////////////////////////////////////////////////////////////////////////// //
255 ubyte clampToByte(T
) (T n
) @safe pure nothrow @nogc
256 if (__traits(isIntegral
, T
) && (T
.sizeof
== 2 || T
.sizeof
== 4))
258 static if (__VERSION__
> 2067) pragma(inline
, true);
259 n
&= -cast(int)(n
>= 0);
260 return cast(ubyte)(n|
((255-cast(int)n
)>>31));
263 ubyte clampToByte(T
) (T n
) @safe pure nothrow @nogc
264 if (__traits(isIntegral
, T
) && T
.sizeof
== 1)
266 static if (__VERSION__
> 2067) pragma(inline
, true);
271 // ////////////////////////////////////////////////////////////////////////// //
274 /// vlRGBA struct to ease color components extraction/replacing
275 align(1) struct vlRGBA
{
279 static assert(vlRGBA
.sizeof
== VColor
.sizeof
);
283 vlAMask
= 0xff000000u
,
284 vlRMask
= 0x00ff0000u
,
285 vlGMask
= 0x0000ff00u
,
286 vlBMask
= 0x000000ffu
297 enum VColor Transparent
= vlAMask
; /// completely transparent pixel color
300 bool isTransparent(T
: VColor
) (T col
) @safe pure nothrow @nogc {
301 static if (__VERSION__
> 2067) pragma(inline
, true);
302 return ((col
&vlAMask
) == vlAMask
);
305 bool isOpaque(T
: VColor
) (T col
) @safe pure nothrow @nogc {
306 static if (__VERSION__
> 2067) pragma(inline
, true);
307 return ((col
&vlAMask
) == 0);
311 VColor
rgbcol(TR
, TG
, TB
, TA
=ubyte) (TR r
, TG g
, TB b
, TA a
=0) @safe pure nothrow @nogc
312 if (__traits(isIntegral
, TR
) && __traits(isIntegral
, TG
) && __traits(isIntegral
, TB
) && __traits(isIntegral
, TA
)) {
313 static if (__VERSION__
> 2067) pragma(inline
, true);
315 (clampToByte(a
)<<vlAShift
)|
316 (clampToByte(r
)<<vlRShift
)|
317 (clampToByte(g
)<<vlGShift
)|
318 (clampToByte(b
)<<vlBShift
);
321 alias rgbacol
= rgbcol
;
324 // generate some templates
325 private enum genRGBGetSet(string cname
) =
326 "ubyte rgb"~cname
~"() (VColor clr) @safe pure nothrow @nogc {\n"~
327 " static if (__VERSION__ > 2067) pragma(inline, true);\n"~
328 " return ((clr>>vl"~cname
[0]~"Shift)&0xff);\n"~
330 "VColor rgbSet"~cname
~"(T) (VColor clr, T v) @safe pure nothrow @nogc if (__traits(isIntegral, T)) {\n"~
331 " static if (__VERSION__ > 2067) pragma(inline, true);\n"~
332 " return (clr&~vl"~cname
[0]~"Mask)|(clampToByte(v)<<vl"~cname
[0]~"Shift);\n"~
335 mixin(genRGBGetSet
!"Alpha");
336 mixin(genRGBGetSet
!"Red");
337 mixin(genRGBGetSet
!"Green");
338 mixin(genRGBGetSet
!"Blue");
341 // ////////////////////////////////////////////////////////////////////////// //
342 void putPixel(TX
, TY
) (TX x
, TY y
, VColor col
) @trusted
343 if (__traits(isIntegral
, TX
) && __traits(isIntegral
, TY
))
345 static if (__VERSION__
> 2067) pragma(inline
, true);
346 immutable long xx
= cast(long)x
;
347 immutable long yy
= cast(long)y
;
348 if ((col
&vlAMask
) != vlAMask
&& xx
>= 0 && yy
>= 0 && xx
< vbufW
&& yy
< vbufH
) {
349 uint* da = vbuf
.ptr
+yy
*vbufW
+xx
;
351 immutable uint a
= 256-(col
>>24); // to not loose bits
352 immutable uint dc
= (*da)&0xffffff;
353 immutable uint srb
= (col
&0xff00ff);
354 immutable uint sg
= (col
&0x00ff00);
355 immutable uint drb
= (dc
&0xff00ff);
356 immutable uint dg
= (dc
&0x00ff00);
357 immutable uint orb
= (drb
+(((srb
-drb
)*a
+0x800080)>>8))&0xff00ff;
358 immutable uint og
= (dg
+(((sg
-dg
)*a
+0x008000)>>8))&0x00ff00;
366 void setPixel(TX
, TY
) (TX x
, TY y
, VColor col
) @trusted
367 if (__traits(isIntegral
, TX
) && __traits(isIntegral
, TY
))
369 static if (__VERSION__
> 2067) pragma(inline
, true);
370 immutable long xx
= cast(long)x
;
371 immutable long yy
= cast(long)y
;
372 if (xx
>= 0 && yy
>= 0 && xx
< vbufW
&& yy
< vbufH
) {
373 uint* da = vbuf
.ptr
+yy
*vbufW
+xx
;
379 // ////////////////////////////////////////////////////////////////////////// //
380 void clear (VColor col
) @trusted {
381 vbuf
.ptr
[0..vbufW
*vbufH
] = col
;
385 // ////////////////////////////////////////////////////////////////////////// //
386 void drawRect (int x
, int y
, int w
, int h
, immutable VColor col
) {
387 if (w
< 1 || h
< 1) return;
388 if (x
<= -w || y
<= -h || x
>= vbufW || y
>= vbufH ||
isTransparent(col
)) return;
389 if (x
< 0) { w
+= x
; x
= 0; }
390 if (y
< 0) { h
+= y
; h
= 0; }
391 if (x
+w
>= vbufW
) w
= vbufW
-x
;
392 if (y
+h
>= vbufH
) h
= vbufH
-y
;
393 assert(x
>= 0 && y
>= 0 && x
< vbufW
&& y
< vbufH
&& w
> 0 && h
> 0 && x
+w
<= vbufW
&& y
+h
<= vbufH
);
398 foreach (immutable yy
; y
+1..y
+h
-1) {
403 if (h
> 1) vbuf
[d
..d
+w
] = col
;
405 foreach (immutable yy
; y
..y
+h
) {
406 putPixel(x
, yy
, col
);
407 putPixel(x
+w
-1, yy
, col
);
409 foreach (immutable xx
; x
+1..x
+w
-1) {
410 putPixel(xx
, y
, col
);
411 if (h
> 1) putPixel(xx
, y
+h
-1, col
);
416 void fillRect (int x
, int y
, int w
, int h
, immutable VColor col
) {
417 if (w
< 1 || h
< 1) return;
418 if (x
<= -w || y
<= -h || x
>= vbufW || y
>= vbufH ||
isTransparent(col
)) return;
419 if (x
< 0) { w
+= x
; x
= 0; }
420 if (y
< 0) { h
+= y
; h
= 0; }
421 if (x
+w
>= vbufW
) w
= vbufW
-x
;
422 if (y
+h
>= vbufH
) h
= vbufH
-y
;
423 assert(x
>= 0 && y
>= 0 && x
< vbufW
&& y
< vbufH
&& w
> 0 && h
> 0 && x
+w
<= vbufW
&& y
+h
<= vbufH
);
426 foreach (immutable yy
; y
..y
+h
) {
431 foreach (immutable yy
; y
..y
+h
) {
432 foreach (immutable xx
; x
..x
+w
) {
433 putPixel(xx
, yy
, col
);
439 void hline (int x
, int y
, int len
, immutable VColor col
) { drawRect(x
, y
, len
, 1, col
); }
440 void vline (int x
, int y
, int len
, immutable VColor col
) { drawRect(x
, y
, 1, len
, col
); }
443 // ////////////////////////////////////////////////////////////////////////// //
444 void drawLine(bool lastPoint
=true) (int x0
, int y0
, int x1
, int y1
, immutable VColor col
) {
445 enum swap(string a
, string b
) = "{int tmp_="~a
~";"~a
~"="~b
~";"~b
~"=tmp_;}";
447 if ((col
&vlAMask
) == vlAMask
) return;
449 if (x0
== x1
&& y0
== y1
) {
450 static if (lastPoint
) putPixel(x0
, y0
, col
);
455 int wx0
= 0, wy0
= 0, wx1
= vbufW
-1, wy1
= vbufH
-1;
457 int stx
, sty
; // "steps" for x and y axes
458 int dsx
, dsy
; // "lengthes" for x and y axes
459 int dx2
, dy2
; // "double lengthes" for x and y axes
460 int xd
, yd
; // current coord
461 int e
; // "error" (as in bresenham algo)
467 // from left to right
468 if (x0
> wx1 || x1
< wx0
) return; // out of screen
469 stx
= 1; // going right
471 // from right to left
472 if (x1
> wx1 || x0
< wx0
) return; // out of screen
473 stx
= -1; // going left
478 mixin(swap
!("wx0", "wx1"));
482 // from top to bottom
483 if (y0
> wy1 || y1
< wy0
) return; // out of screen
484 sty
= 1; // going down
486 // from bottom to top
487 if (y1
> wy1 || y0
< wy0
) return; // out of screen
488 sty
= -1; // going up
493 mixin(swap
!("wy0", "wy1"));
500 mixin(swap
!("x0", "y0"));
501 mixin(swap
!("x1", "y1"));
502 mixin(swap
!("dsx", "dsy"));
503 mixin(swap
!("wx0", "wy0"));
504 mixin(swap
!("wx1", "wy1"));
505 mixin(swap
!("stx", "sty"));
519 int temp
= dx2
*(wy0
-y0
)-dsx
;
522 if (xd
> wx1
) return; // x is moved out of clipping rect, nothing to do
526 if (rem
> 0) { ++xd
; e
+= dy2
; }
530 if (!xfixed
&& x0
< wx0
) {
532 int temp
= dy2
*(wx0
-x0
);
535 if (yd
> wy1 || yd
== wy1
&& rem
>= dsx
) return;
538 if (rem
>= dsx
) { ++yd
; e
-= dx2
; }
542 int temp
= dx2
*(wy1
-y0
)+dsx
;
545 if (rem
== 0) --term
;
547 if (term
> wx1
) term
= wx1
; // clip at right
548 static if (lastPoint
) {
552 if (term
== xd
) return; // this is the only point, get out of here
554 if (sty
== -1) yd
= -yd
;
555 if (stx
== -1) { xd
= -xd
; term
= -term
; }
557 // draw it; `putPixel()` can omit checks
559 // inlined `putPixel(*d0, *d1, col)`
560 // this can be made even faster by precalculating `da` and making
561 // separate code branches for mixing and non-mixing drawing, but...
563 uint* da = vbuf
.ptr
+(*d1
)*vbufW
+(*d0
);
565 immutable uint a
= 256-(col
>>24); // to not loose bits
566 immutable uint dc
= (*da)&0xffffff;
567 immutable uint srb
= (col
&0xff00ff);
568 immutable uint sg
= (col
&0x00ff00);
569 immutable uint drb
= (dc
&0xff00ff);
570 immutable uint dg
= (dc
&0x00ff00);
571 immutable uint orb
= (drb
+(((srb
-drb
)*a
+0x800080)>>8))&0xff00ff;
572 immutable uint og
= (dg
+(((sg
-dg
)*a
+0x008000)>>8))&0x00ff00;
577 // done drawing, move coords
589 // ////////////////////////////////////////////////////////////////////////// //
590 private void plot4points() (int cx
, int cy
, int x
, int y
, VColor clr
) @trusted {
591 putPixel(cx
+x
, cy
+y
, clr
);
592 if (x
!= 0) putPixel(cx
-x
, cy
+y
, clr
);
593 if (y
!= 0) putPixel(cx
+x
, cy
-y
, clr
);
594 putPixel(cx
-x
, cy
-y
, clr
);
598 void drawCircle (int cx
, int cy
, int radius
, VColor clr
) @trusted {
599 if (radius
> 0 && !isTransparent(clr
)) {
600 int error
= -radius
, x
= radius
, y
= 0;
601 if (radius
== 1) { putPixel(cx
, cy
, clr
); return; }
603 plot4points(cx
, cy
, x
, y
, clr
);
604 plot4points(cx
, cy
, y
, x
, clr
);
607 if (error
>= 0) { --x
; error
-= x
*2; }
609 plot4points(cx
, cy
, x
, y
, clr
);
613 void fillCircle (int cx
, int cy
, int radius
, VColor clr
) @trusted {
614 if (radius
> 0 && !isTransparent(clr
)) {
615 int error
= -radius
, x
= radius
, y
= 0;
616 if (radius
== 1) { putPixel(cx
, cy
, clr
); return; }
622 hline(cx
-x
, cy
+last_y
, 2*x
+1, clr
);
623 if (x
!= 0 && last_y
!= 0) hline(cx
-x
, cy
-last_y
, 2*x
+1, clr
);
626 hline(cx
-last_y
, cy
+x
, 2*last_y
+1, clr
);
627 if (last_y
!= 0 && x
!= 0) hline(cx
-last_y
, cy
-x
, 2*last_y
+1, clr
);
638 void drawEllipse (int x0
, int y0
, int w
, int h
, VColor clr
) @trusted {
639 import std
.math
: abs
;
640 if (w
== 0 && h
== 0) return;
641 if (w
== 1) { vline(x0
, y0
, h
, clr
); return; }
642 if (h
== 1) { hline(x0
, y0
, w
, clr
); return; }
645 int a
= abs(x1
-x0
), b
= abs(y1
-y0
), b1
= b
&1; // values of diameter
646 long dx
= 4*(1-a
)*b
*b
, dy
= 4*(b1
+1)*a
*a
; // error increment
647 long err
= dx
+dy
+b1
*a
*a
; // error of 1.step
648 if (x0
> x1
) { x0
= x1
; x1
+= a
; } // if called with swapped points...
649 if (y0
> y1
) y0
= y1
; // ...exchange them
650 y0
+= (b
+1)/2; y1
= y0
-b1
; // starting pixel
651 a
*= 8*a
; b1
= 8*b
*b
;
654 putPixel(x1
, y0
, clr
); // I. Quadrant
655 putPixel(x0
, y0
, clr
); // II. Quadrant
656 putPixel(x0
, y1
, clr
); // III. Quadrant
657 putPixel(x1
, y1
, clr
); // IV. Quadrant
659 if (e2
>= dx
) { ++x0
; --x1
; err
+= dx
+= b1
; } // x step
660 if (e2
<= dy
) { ++y0
; --y1
; err
+= dy
+= a
; } // y step
663 // too early stop of flat ellipses a=1
664 putPixel(x0
-1, ++y0
, clr
); // complete tip of ellipse
665 putPixel(x0
-1, --y1
, clr
);
669 void fillEllipse (int x0
, int y0
, int w
, int h
, VColor clr
) @trusted {
670 import std
.math
: abs
;
671 if (w
== 0 && h
== 0) return;
672 if (w
== 1) { vline(x0
, y0
, h
, clr
); return; }
673 if (h
== 1) { hline(x0
, y0
, w
, clr
); return; }
676 int a
= abs(x1
-x0
), b
= abs(y1
-y0
), b1
= b
&1; // values of diameter
677 long dx
= 4*(1-a
)*b
*b
, dy
= 4*(b1
+1)*a
*a
; // error increment
678 long err
= dx
+dy
+b1
*a
*a
; // error of 1.step
679 int prev_y0
= -1, prev_y1
= -1;
680 if (x0
> x1
) { x0
= x1
; x1
+= a
; } // if called with swapped points...
681 if (y0
> y1
) y0
= y1
; // ...exchange them
682 y0
+= (b
+1)/2; y1
= y0
-b1
; // starting pixel
683 a
*= 8*a
; b1
= 8*b
*b
;
686 if (y0
!= prev_y0
) { hline(x0
, y0
, x1
-x0
+1, clr
); prev_y0
= y0
; }
687 if (y1
!= y0
&& y1
!= prev_y1
) { hline(x0
, y1
, x1
-x0
+1, clr
); prev_y1
= y1
; }
689 if (e2
>= dx
) { ++x0
; --x1
; err
+= dx
+= b1
; } // x step
690 if (e2
<= dy
) { ++y0
; --y1
; err
+= dy
+= a
; } // y step
693 // too early stop of flat ellipses a=1
694 putPixel(x0
-1, ++y0
, clr
); // complete tip of ellipse
695 putPixel(x0
-1, --y1
, clr
);
700 // //////////////////////////////////////////////////////////////////////// //
701 int charWidth(string type
="msx") () {
702 static if (type
== "msx") return 6;
703 else static if (type
== "dos") return 8;
704 else static if (type
== "d10") return 10;
705 else static assert(0, "invalid font type");
708 int charHeight(string type
="msx") () {
709 static if (type
== "msx") return 8;
710 else static if (type
== "dos") return 8;
711 else static if (type
== "d10") return 10;
712 else static assert(0, "invalid font type");
715 void drawCharWdt(string type
="msx") (int x
, int y
, int wdt
, int shift
, char ch
, VColor fgcol
, VColor bgcol
=Transparent
) @trusted {
716 static if (type
== "msx") { alias fontb8
= vlFont6
; enum fwdt
= 8; enum fhgt
= 8; enum fmask
= 0x80; }
717 else static if (type
== "dos") { alias fontb8
= dosFont8
; enum fwdt
= 8; enum fhgt
= 8; enum fmask
= 0x80; }
718 else static if (type
== "d10") { alias fontb8
= dosFont10
; enum fwdt
= 10; enum fhgt
= 10; enum fmask
= 0x8000; }
719 else static assert(0, "invalid font type");
721 if (wdt
< 1 || shift
>= fwdt
) return;
722 if (fgcol
== Transparent
&& bgcol
== Transparent
) return;
723 if (wdt
> fwdt
) wdt
= fwdt
;
724 if (shift
< 0) shift
= 0;
725 foreach (immutable int dy
; 0..fhgt
) {
726 ushort b
= cast(ushort)(fontb8
[pos
++]<<shift
);
727 foreach (immutable int dx
; 0..wdt
) {
728 VColor c
= (b
&fmask ? fgcol
: bgcol
);
729 if (!isTransparent(c
)) putPixel(x
+dx
, y
+dy
, c
);
741 OutLU
= 0x10, // left-up
742 OutRU
= 0x20, // right-up
743 OutLD
= 0x40, // left-down
744 OutRD
= 0x80, // right-down
748 void drawCharWdtOut(string type
="msx") (int x
, int y
, int wdt
, int shift
, char ch
, VColor fgcol
, VColor outcol
=Transparent
, ubyte ot
=0) @trusted {
749 static if (type
== "msx") { alias fontb8
= vlFont6
; enum fwdt
= 8; enum fhgt
= 8; enum fmask
= 0x80; }
750 else static if (type
== "dos") { alias fontb8
= dosFont8
; enum fwdt
= 8; enum fhgt
= 8; enum fmask
= 0x80; }
751 else static if (type
== "d10") { alias fontb8
= dosFont10
; enum fwdt
= 10; enum fhgt
= 10; enum fmask
= 0x8000; }
752 else static assert(0, "invalid font type");
753 if (fgcol
== Transparent
&& outcol
== Transparent
) return;
754 if (ot
== 0 || outcol
== Transparent
) {
755 // no outline? simple draw
756 drawCharWdt(x
, y
, wdt
, shift
, ch
, fgcol
, Transparent
);
760 if (wdt
< 1 || shift
>= fwdt
) return;
761 if (wdt
> 8) wdt
= fwdt
;
762 if (shift
< 0) shift
= 0;
763 ubyte[fhgt
+2][fwdt
+2] bmp
= 0; // char bitmap; 0: empty; 1: char; 2: outline
764 foreach (immutable dy
; 1..fhgt
+1) {
765 ushort b
= cast(ushort)(fontb8
[pos
++]<<shift
);
766 foreach (immutable dx
; 1..wdt
+1) {
771 if ((ot
&OutUp
) && bmp
[dy
-1][dx
] == 0) bmp
[dy
-1][dx
] = 2;
772 if ((ot
&OutDown
) && bmp
[dy
+1][dx
] == 0) bmp
[dy
+1][dx
] = 2;
773 if ((ot
&OutLeft
) && bmp
[dy
][dx
-1] == 0) bmp
[dy
][dx
-1] = 2;
774 if ((ot
&OutRight
) && bmp
[dy
][dx
+1] == 0) bmp
[dy
][dx
+1] = 2;
775 if ((ot
&OutLU
) && bmp
[dy
-1][dx
-1] == 0) bmp
[dy
-1][dx
-1] = 2;
776 if ((ot
&OutRU
) && bmp
[dy
-1][dx
+1] == 0) bmp
[dy
-1][dx
+1] = 2;
777 if ((ot
&OutLD
) && bmp
[dy
+1][dx
-1] == 0) bmp
[dy
+1][dx
-1] = 2;
778 if ((ot
&OutRD
) && bmp
[dy
+1][dx
+1] == 0) bmp
[dy
+1][dx
+1] = 2;
786 foreach (immutable int dy
; 0..fhgt
+2) {
787 foreach (immutable int dx
; 0..fwdt
+2) {
788 if (auto t
= bmp
[dy
][dx
]) putPixel(x
+dx
, y
+dy
, (t
== 1 ? fgcol
: outcol
));
793 void drawChar(string type
="msx") (int x
, int y
, char ch
, VColor fgcol
, VColor bgcol
=Transparent
) @trusted {
794 drawCharWdt
!type(x
, y
, charWidth
!type
, 0, ch
, fgcol
, bgcol
);
797 void drawCharOut(string type
="msx") (int x
, int y
, char ch
, VColor fgcol
, VColor outcol
=Transparent
, ubyte ot
=OutAll
) @trusted {
798 drawCharWdtOut
!type(x
, y
, charWidth
!type
, 0, ch
, fgcol
, outcol
, ot
);
801 void drawStr(string type
="msx") (int x
, int y
, const(char)[] str, VColor fgcol
, VColor bgcol
=Transparent
) @trusted {
802 foreach (immutable char ch
; str) {
803 drawChar
!type(x
, y
, ch
, fgcol
, bgcol
);
808 void drawStrOut(string type
="msx") (int x
, int y
, const(char)[] str, VColor fgcol
, VColor outcol
=Transparent
, ubyte ot
=OutAll
) @trusted {
809 foreach (immutable char ch
; str) {
810 drawCharOut
!type(x
, y
, ch
, fgcol
, outcol
, ot
);
815 int strWidth(string type
="msx") (const(char)[] str) {
816 return cast(int)str.length
*charWidth
!type
;
819 int charWidthProp(string type
="msx") (char ch
) @trusted pure {
820 static if (type
== "msx") { alias fontw8
= vlFontPropWidth
; }
821 else static if (type
== "dos") { alias fontw8
= dosFontPropWidth
; }
822 else static assert(0, "invalid font type");
823 return (fontw8
.ptr
[ch
]&0x0f);
826 int strWidthProp(string type
="msx") (const(char)[] str) @trusted pure {
827 static if (type
== "msx") { alias fontw8
= vlFontPropWidth
; }
828 else static if (type
== "dos") { alias fontw8
= dosFontPropWidth
; }
829 else static assert(0, "invalid font type");
831 foreach (immutable char ch
; str) wdt
+= (fontw8
[ch
]&0x0f)+1;
832 if (wdt
> 0) --wdt
; // don't count last empty pixel
836 int drawCharProp(string type
="msx") (int x
, int y
, char ch
, VColor fgcol
, VColor bgcol
=Transparent
) @trusted {
837 static if (type
== "msx") { alias fontw8
= vlFontPropWidth
; }
838 else static if (type
== "dos") { alias fontw8
= dosFontPropWidth
; }
839 else static assert(0, "invalid font type");
840 immutable int wdt
= (fontw8
[ch
]&0x0f);
841 drawCharWdt
!type(x
, y
, wdt
, fontw8
[ch
]>>4, ch
, fgcol
, bgcol
);
845 int drawCharPropOut(string type
="msx") (int x
, int y
, char ch
, VColor fgcol
, VColor outcol
=Transparent
, ubyte ot
=OutAll
) @trusted {
846 static if (type
== "msx") { alias fontw8
= vlFontPropWidth
; }
847 else static if (type
== "dos") { alias fontw8
= dosFontPropWidth
; }
848 else static assert(0, "invalid font type");
849 immutable int wdt
= (fontw8
[ch
]&0x0f);
850 drawCharWdtOut
!type(x
, y
, wdt
, fontw8
[ch
]>>4, ch
, fgcol
, outcol
, ot
);
854 int drawStrProp(string type
="msx") (int x
, int y
, const(char)[] str, VColor fgcol
, VColor bgcol
=Transparent
) @trusted {
857 foreach (immutable char ch
; str) {
859 if (!isTransparent(bgcol
)) foreach (int dy
; 0..8) putPixel(x
, y
+dy
, bgcol
);
863 x
+= drawCharProp
!type(x
, y
, ch
, fgcol
, bgcol
);
868 int drawStrPropOut(string type
="msx") (int x
, int y
, const(char)[] str, VColor fgcol
, VColor outcol
=Transparent
, ubyte ot
=OutAll
) @trusted {
870 foreach (immutable char ch
; str) {
871 x
+= drawCharPropOut
!type(x
, y
, ch
, fgcol
, outcol
, ot
)+1;
873 if (x
> sx
) --x
; // don't count last empty pixel
878 // ////////////////////////////////////////////////////////////////////////// //
879 public static immutable ubyte[256*8] vlFont6
= [
3188 // bits 4..7: lshift
3189 public immutable ubyte[256] vlFontPropWidth
= () {
3191 foreach (immutable cnum
; 0..256) {
3192 import core
.bitop
: bsf, bsr;
3194 (cnum
>= 32 && cnum
<= 127) ||
3195 (cnum
>= 143 && cnum
<= 144) ||
3196 (cnum
>= 166 && cnum
<= 167) ||
3197 (cnum
>= 192 && cnum
<= 255);
3201 foreach (immutable dy
; 0..8) {
3202 immutable b
= vlFont6
[cnum
*8+dy
];
3204 immutable mn
= 7-bsr(b
);
3205 if (mn
< shift
) shift
= mn
;
3210 foreach (immutable dy
; 0..8) {
3211 immutable b
= (vlFont6
[cnum
*8+dy
]<<shift
);
3212 immutable cwdt
= (b ?
8-bsf(b
) : 0);
3213 if (cwdt
> wdt
) wdt
= cast(ubyte)cwdt
;
3216 case 0: wdt
= 8; break; // 8px space
3217 case 32: wdt
= 5; break; // 5px space
3218 case 17: .. case 27: wdt
= 8; break; // single frames
3219 case 48: .. case 57: wdt
= 5; break; // digits are monospaced
3220 case 127: .. case 142: wdt
= 8; break; // filled frames
3221 case 145: .. case 151: wdt
= 8; break; // filled frames
3222 case 155: .. case 159: wdt
= 8; break; // filled frames
3225 res
[cnum
] = (wdt
&0x0f)|
((shift
<<4)&0xf0);
3231 public static immutable ubyte[256*8] dosFont8
= [
5540 // bits 4..7: lshift
5541 public immutable ubyte[256] dosFontPropWidth
= () {
5543 foreach (immutable cnum
; 0..256) {
5544 import core
.bitop
: bsf, bsr;
5546 (cnum
>= 32 && cnum
<= 127) ||
5547 (cnum
>= 143 && cnum
<= 144) ||
5548 (cnum
>= 166 && cnum
<= 167) ||
5549 (cnum
>= 192 && cnum
<= 255);
5553 foreach (immutable dy
; 0..8) {
5554 immutable b
= dosFont8
[cnum
*8+dy
];
5556 immutable mn
= 7-bsr(b
);
5557 if (mn
< shift
) shift
= mn
;
5562 foreach (immutable dy
; 0..8) {
5563 immutable b
= (dosFont8
[cnum
*8+dy
]<<shift
);
5564 immutable cwdt
= (b ?
8-bsf(b
) : 0);
5565 if (cwdt
> wdt
) wdt
= cast(ubyte)cwdt
;
5568 case 0: wdt
= 8; break; // 8px space
5569 case 32: wdt
= 5; break; // 5px space
5570 case 48: .. case 57: wdt
= 5; break; // digits are monospaced
5571 case 176: .. case 223: wdt
= 8; break; // pseudographics (frames, etc)
5574 res
[cnum
] = (wdt
&0x0f)|
((shift
<<4)&0xf0);
5580 static public immutable ushort[256*10] dosFont10
= [
5582 0b_0000000000_000000,
5583 0b_0000000000_000000,
5584 0b_0000000000_000000,
5585 0b_0000000000_000000,
5586 0b_0000000000_000000,
5587 0b_0000000000_000000,
5588 0b_0000000000_000000,
5589 0b_0000000000_000000,
5590 0b_0000000000_000000,
5591 0b_0000000000_000000,
5593 0b_0000000000_000000,
5594 0b_0011111100_000000,
5595 0b_0100000010_000000,
5596 0b_0101001010_000000,
5597 0b_0100000010_000000,
5598 0b_0101111010_000000,
5599 0b_0100110010_000000,
5600 0b_0010000100_000000,
5601 0b_0001111000_000000,
5602 0b_0000000000_000000,
5604 0b_0000000000_000000,
5605 0b_0011111100_000000,
5606 0b_0111111110_000000,
5607 0b_0110110110_000000,
5608 0b_0111111110_000000,
5609 0b_0110000110_000000,
5610 0b_0111001110_000000,
5611 0b_0011111100_000000,
5612 0b_0001111000_000000,
5613 0b_0000000000_000000,
5615 0b_0000000000_000000,
5616 0b_0011101110_000000,
5617 0b_0111111111_000000,
5618 0b_0111111111_000000,
5619 0b_0111111111_000000,
5620 0b_0011111110_000000,
5621 0b_0001111100_000000,
5622 0b_0000111000_000000,
5623 0b_0000010000_000000,
5624 0b_0000000000_000000,
5626 0b_0000010000_000000,
5627 0b_0000111000_000000,
5628 0b_0001111100_000000,
5629 0b_0011111110_000000,
5630 0b_0111111111_000000,
5631 0b_0011111110_000000,
5632 0b_0001111100_000000,
5633 0b_0000111000_000000,
5634 0b_0000010000_000000,
5635 0b_0000000000_000000,
5637 0b_0000000000_000000,
5638 0b_0000111000_000000,
5639 0b_0001111100_000000,
5640 0b_0000111000_000000,
5641 0b_0011111110_000000,
5642 0b_0111111111_000000,
5643 0b_0011010110_000000,
5644 0b_0000010000_000000,
5645 0b_0000111000_000000,
5646 0b_0000000000_000000,
5648 0b_0000010000_000000,
5649 0b_0000111000_000000,
5650 0b_0001111100_000000,
5651 0b_0011111110_000000,
5652 0b_0111111111_000000,
5653 0b_0111111111_000000,
5654 0b_0011010110_000000,
5655 0b_0000010000_000000,
5656 0b_0000111000_000000,
5657 0b_0000000000_000000,
5659 0b_0000000000_000000,
5660 0b_0000000000_000000,
5661 0b_0000000000_000000,
5662 0b_0000110000_000000,
5663 0b_0001111000_000000,
5664 0b_0001111000_000000,
5665 0b_0000110000_000000,
5666 0b_0000000000_000000,
5667 0b_0000000000_000000,
5668 0b_0000000000_000000,
5670 0b_1111111111_000000,
5671 0b_1111111111_000000,
5672 0b_1111111111_000000,
5673 0b_1111001111_000000,
5674 0b_1110000111_000000,
5675 0b_1110000111_000000,
5676 0b_1111001111_000000,
5677 0b_1111111111_000000,
5678 0b_1111111111_000000,
5679 0b_1111111111_000000,
5681 0b_0000000000_000000,
5682 0b_0000000000_000000,
5683 0b_0001111000_000000,
5684 0b_0011001100_000000,
5685 0b_0010000100_000000,
5686 0b_0010000100_000000,
5687 0b_0011001100_000000,
5688 0b_0001111000_000000,
5689 0b_0000000000_000000,
5690 0b_0000000000_000000,
5692 0b_1111111111_000000,
5693 0b_1111111111_000000,
5694 0b_1110000111_000000,
5695 0b_1100110011_000000,
5696 0b_1101111011_000000,
5697 0b_1101111011_000000,
5698 0b_1100110011_000000,
5699 0b_1110000111_000000,
5700 0b_1111111111_000000,
5701 0b_1111111111_000000,
5703 0b_0000000000_000000,
5704 0b_0000011110_000000,
5705 0b_0000001110_000000,
5706 0b_0000011110_000000,
5707 0b_0011111010_000000,
5708 0b_0110011000_000000,
5709 0b_0110011000_000000,
5710 0b_0110011000_000000,
5711 0b_0011110000_000000,
5712 0b_0000000000_000000,
5714 0b_0000000000_000000,
5715 0b_0001111000_000000,
5716 0b_0011001100_000000,
5717 0b_0011001100_000000,
5718 0b_0011001100_000000,
5719 0b_0001111000_000000,
5720 0b_0000110000_000000,
5721 0b_0011111100_000000,
5722 0b_0000110000_000000,
5723 0b_0000000000_000000,
5725 0b_0000010000_000000,
5726 0b_0000011000_000000,
5727 0b_0000011100_000000,
5728 0b_0000010100_000000,
5729 0b_0000010100_000000,
5730 0b_0000010000_000000,
5731 0b_0001110000_000000,
5732 0b_0011110000_000000,
5733 0b_0001100000_000000,
5734 0b_0000000000_000000,
5736 0b_0000000000_000000,
5737 0b_0001111110_000000,
5738 0b_0001111110_000000,
5739 0b_0001000010_000000,
5740 0b_0001000010_000000,
5741 0b_0001000110_000000,
5742 0b_0011001110_000000,
5743 0b_0111000100_000000,
5744 0b_0010000000_000000,
5745 0b_0000000000_000000,
5747 0b_0000000000_000000,
5748 0b_0000110000_000000,
5749 0b_0110110110_000000,
5750 0b_0001111000_000000,
5751 0b_0111001110_000000,
5752 0b_0111001110_000000,
5753 0b_0001111000_000000,
5754 0b_0110110110_000000,
5755 0b_0000110000_000000,
5756 0b_0000000000_000000,
5758 0b_0001000000_000000,
5759 0b_0001100000_000000,
5760 0b_0001110000_000000,
5761 0b_0001111000_000000,
5762 0b_0001111100_000000,
5763 0b_0001111000_000000,
5764 0b_0001110000_000000,
5765 0b_0001100000_000000,
5766 0b_0001000000_000000,
5767 0b_0000000000_000000,
5769 0b_0000000100_000000,
5770 0b_0000001100_000000,
5771 0b_0000011100_000000,
5772 0b_0000111100_000000,
5773 0b_0001111100_000000,
5774 0b_0000111100_000000,
5775 0b_0000011100_000000,
5776 0b_0000001100_000000,
5777 0b_0000000100_000000,
5778 0b_0000000000_000000,
5780 0b_0000000000_000000,
5781 0b_0000110000_000000,
5782 0b_0001111000_000000,
5783 0b_0011111100_000000,
5784 0b_0000110000_000000,
5785 0b_0000110000_000000,
5786 0b_0011111100_000000,
5787 0b_0001111000_000000,
5788 0b_0000110000_000000,
5789 0b_0000000000_000000,
5791 0b_0000000000_000000,
5792 0b_0011001100_000000,
5793 0b_0011001100_000000,
5794 0b_0011001100_000000,
5795 0b_0011001100_000000,
5796 0b_0011001100_000000,
5797 0b_0000000000_000000,
5798 0b_0011001100_000000,
5799 0b_0000000000_000000,
5800 0b_0000000000_000000,
5802 0b_0000000000_000000,
5803 0b_0011111110_000000,
5804 0b_0110110110_000000,
5805 0b_0110110110_000000,
5806 0b_0011110110_000000,
5807 0b_0000110110_000000,
5808 0b_0000110110_000000,
5809 0b_0000110110_000000,
5810 0b_0000000000_000000,
5811 0b_0000000000_000000,
5813 0b_0000000000_000000,
5814 0b_0001111100_000000,
5815 0b_0011000000_000000,
5816 0b_0001111100_000000,
5817 0b_0011000110_000000,
5818 0b_0001111100_000000,
5819 0b_0000000110_000000,
5820 0b_0001111100_000000,
5821 0b_0000000000_000000,
5822 0b_0000000000_000000,
5824 0b_0000000000_000000,
5825 0b_0000000000_000000,
5826 0b_0000000000_000000,
5827 0b_0000000000_000000,
5828 0b_0000000000_000000,
5829 0b_0111111110_000000,
5830 0b_0111111110_000000,
5831 0b_0111111110_000000,
5832 0b_0000000000_000000,
5833 0b_0000000000_000000,
5835 0b_0000000000_000000,
5836 0b_0000110000_000000,
5837 0b_0001111000_000000,
5838 0b_0011111100_000000,
5839 0b_0000110000_000000,
5840 0b_0000110000_000000,
5841 0b_0011111100_000000,
5842 0b_0001111000_000000,
5843 0b_0000110000_000000,
5844 0b_1111111111_000000,
5846 0b_0000000000_000000,
5847 0b_0000110000_000000,
5848 0b_0001111000_000000,
5849 0b_0011111100_000000,
5850 0b_0000110000_000000,
5851 0b_0000110000_000000,
5852 0b_0000110000_000000,
5853 0b_0000110000_000000,
5854 0b_0000110000_000000,
5855 0b_0000000000_000000,
5857 0b_0000000000_000000,
5858 0b_0000110000_000000,
5859 0b_0000110000_000000,
5860 0b_0000110000_000000,
5861 0b_0000110000_000000,
5862 0b_0000110000_000000,
5863 0b_0011111100_000000,
5864 0b_0001111000_000000,
5865 0b_0000110000_000000,
5866 0b_0000000000_000000,
5868 0b_0000000000_000000,
5869 0b_0000000000_000000,
5870 0b_0000011000_000000,
5871 0b_0000001100_000000,
5872 0b_0111111110_000000,
5873 0b_0000001100_000000,
5874 0b_0000011000_000000,
5875 0b_0000000000_000000,
5876 0b_0000000000_000000,
5877 0b_0000000000_000000,
5879 0b_0000000000_000000,
5880 0b_0000000000_000000,
5881 0b_0001100000_000000,
5882 0b_0011000000_000000,
5883 0b_0111111110_000000,
5884 0b_0011000000_000000,
5885 0b_0001100000_000000,
5886 0b_0000000000_000000,
5887 0b_0000000000_000000,
5888 0b_0000000000_000000,
5890 0b_0000000000_000000,
5891 0b_0000000000_000000,
5892 0b_0000000000_000000,
5893 0b_0000000000_000000,
5894 0b_0110000000_000000,
5895 0b_0110000000_000000,
5896 0b_0110000000_000000,
5897 0b_0111111110_000000,
5898 0b_0000000000_000000,
5899 0b_0000000000_000000,
5901 0b_0000000000_000000,
5902 0b_0000000000_000000,
5903 0b_0001000100_000000,
5904 0b_0011000110_000000,
5905 0b_0111111111_000000,
5906 0b_0011000110_000000,
5907 0b_0001000100_000000,
5908 0b_0000000000_000000,
5909 0b_0000000000_000000,
5910 0b_0000000000_000000,
5912 0b_0000000000_000000,
5913 0b_0000000000_000000,
5914 0b_0000010000_000000,
5915 0b_0000111000_000000,
5916 0b_0001111100_000000,
5917 0b_0011111110_000000,
5918 0b_0111111111_000000,
5919 0b_0000000000_000000,
5920 0b_0000000000_000000,
5921 0b_0000000000_000000,
5923 0b_0000000000_000000,
5924 0b_0000000000_000000,
5925 0b_0111111111_000000,
5926 0b_0011111110_000000,
5927 0b_0001111100_000000,
5928 0b_0000111000_000000,
5929 0b_0000010000_000000,
5930 0b_0000000000_000000,
5931 0b_0000000000_000000,
5932 0b_0000000000_000000,
5934 0b_0000000000_000000,
5935 0b_0000000000_000000,
5936 0b_0000000000_000000,
5937 0b_0000000000_000000,
5938 0b_0000000000_000000,
5939 0b_0000000000_000000,
5940 0b_0000000000_000000,
5941 0b_0000000000_000000,
5942 0b_0000000000_000000,
5943 0b_0000000000_000000,
5945 0b_0000000000_000000,
5946 0b_0000110000_000000,
5947 0b_0001111000_000000,
5948 0b_0001111000_000000,
5949 0b_0000110000_000000,
5950 0b_0000110000_000000,
5951 0b_0000000000_000000,
5952 0b_0000110000_000000,
5953 0b_0000000000_000000,
5954 0b_0000000000_000000,
5956 0b_0000000000_000000,
5957 0b_0001101100_000000,
5958 0b_0001101100_000000,
5959 0b_0001101100_000000,
5960 0b_0000000000_000000,
5961 0b_0000000000_000000,
5962 0b_0000000000_000000,
5963 0b_0000000000_000000,
5964 0b_0000000000_000000,
5965 0b_0000000000_000000,
5967 0b_0000000000_000000,
5968 0b_0001101100_000000,
5969 0b_0001101100_000000,
5970 0b_0111111111_000000,
5971 0b_0001101100_000000,
5972 0b_0111111111_000000,
5973 0b_0001101100_000000,
5974 0b_0001101100_000000,
5975 0b_0000000000_000000,
5976 0b_0000000000_000000,
5978 0b_0000010000_000000,
5979 0b_0001111100_000000,
5980 0b_0011010110_000000,
5981 0b_0011010000_000000,
5982 0b_0001111100_000000,
5983 0b_0000010110_000000,
5984 0b_0011010110_000000,
5985 0b_0001111100_000000,
5986 0b_0000010000_000000,
5987 0b_0000000000_000000,
5989 0b_0000000000_000000,
5990 0b_0011000110_000000,
5991 0b_0011001100_000000,
5992 0b_0000011000_000000,
5993 0b_0000110000_000000,
5994 0b_0001100110_000000,
5995 0b_0011000110_000000,
5996 0b_0000000000_000000,
5997 0b_0000000000_000000,
5998 0b_0000000000_000000,
6000 0b_0000000000_000000,
6001 0b_0001110000_000000,
6002 0b_0011001100_000000,
6003 0b_0011001100_000000,
6004 0b_0001111110_000000,
6005 0b_0011001100_000000,
6006 0b_0011001100_000000,
6007 0b_0001110110_000000,
6008 0b_0000000000_000000,
6009 0b_0000000000_000000,
6011 0b_0000000000_000000,
6012 0b_0000111000_000000,
6013 0b_0000110000_000000,
6014 0b_0001100000_000000,
6015 0b_0000000000_000000,
6016 0b_0000000000_000000,
6017 0b_0000000000_000000,
6018 0b_0000000000_000000,
6019 0b_0000000000_000000,
6020 0b_0000000000_000000,
6022 0b_0000000000_000000,
6023 0b_0000011000_000000,
6024 0b_0000110000_000000,
6025 0b_0001100000_000000,
6026 0b_0001100000_000000,
6027 0b_0001100000_000000,
6028 0b_0000110000_000000,
6029 0b_0000011000_000000,
6030 0b_0000000000_000000,
6031 0b_0000000000_000000,
6033 0b_0000000000_000000,
6034 0b_0001100000_000000,
6035 0b_0000110000_000000,
6036 0b_0000011000_000000,
6037 0b_0000011000_000000,
6038 0b_0000011000_000000,
6039 0b_0000110000_000000,
6040 0b_0001100000_000000,
6041 0b_0000000000_000000,
6042 0b_0000000000_000000,
6044 0b_0000000000_000000,
6045 0b_0000000000_000000,
6046 0b_0011001100_000000,
6047 0b_0001111000_000000,
6048 0b_0111111110_000000,
6049 0b_0001111000_000000,
6050 0b_0011001100_000000,
6051 0b_0000000000_000000,
6052 0b_0000000000_000000,
6053 0b_0000000000_000000,
6055 0b_0000000000_000000,
6056 0b_0000000000_000000,
6057 0b_0000110000_000000,
6058 0b_0000110000_000000,
6059 0b_0011111100_000000,
6060 0b_0000110000_000000,
6061 0b_0000110000_000000,
6062 0b_0000000000_000000,
6063 0b_0000000000_000000,
6064 0b_0000000000_000000,
6066 0b_0000000000_000000,
6067 0b_0000000000_000000,
6068 0b_0000000000_000000,
6069 0b_0000000000_000000,
6070 0b_0000000000_000000,
6071 0b_0000000000_000000,
6072 0b_0000110000_000000,
6073 0b_0000110000_000000,
6074 0b_0001100000_000000,
6075 0b_0000000000_000000,
6077 0b_0000000000_000000,
6078 0b_0000000000_000000,
6079 0b_0000000000_000000,
6080 0b_0000000000_000000,
6081 0b_0011111100_000000,
6082 0b_0000000000_000000,
6083 0b_0000000000_000000,
6084 0b_0000000000_000000,
6085 0b_0000000000_000000,
6086 0b_0000000000_000000,
6088 0b_0000000000_000000,
6089 0b_0000000000_000000,
6090 0b_0000000000_000000,
6091 0b_0000000000_000000,
6092 0b_0000000000_000000,
6093 0b_0000000000_000000,
6094 0b_0000110000_000000,
6095 0b_0000110000_000000,
6096 0b_0000000000_000000,
6097 0b_0000000000_000000,
6099 0b_0000000000_000000,
6100 0b_0000000110_000000,
6101 0b_0000001100_000000,
6102 0b_0000011000_000000,
6103 0b_0000110000_000000,
6104 0b_0001100000_000000,
6105 0b_0011000000_000000,
6106 0b_0110000000_000000,
6107 0b_0000000000_000000,
6108 0b_0000000000_000000,
6110 0b_0000000000_000000,
6111 0b_0001111100_000000,
6112 0b_0011001110_000000,
6113 0b_0011011110_000000,
6114 0b_0011111110_000000,
6115 0b_0011110110_000000,
6116 0b_0011100110_000000,
6117 0b_0001111100_000000,
6118 0b_0000000000_000000,
6119 0b_0000000000_000000,
6121 0b_0000000000_000000,
6122 0b_0000110000_000000,
6123 0b_0001110000_000000,
6124 0b_0000110000_000000,
6125 0b_0000110000_000000,
6126 0b_0000110000_000000,
6127 0b_0000110000_000000,
6128 0b_0011111100_000000,
6129 0b_0000000000_000000,
6130 0b_0000000000_000000,
6132 0b_0000000000_000000,
6133 0b_0001111100_000000,
6134 0b_0011000110_000000,
6135 0b_0000000110_000000,
6136 0b_0000111100_000000,
6137 0b_0001100000_000000,
6138 0b_0011000110_000000,
6139 0b_0011111110_000000,
6140 0b_0000000000_000000,
6141 0b_0000000000_000000,
6143 0b_0000000000_000000,
6144 0b_0001111100_000000,
6145 0b_0011000110_000000,
6146 0b_0000000110_000000,
6147 0b_0000011100_000000,
6148 0b_0000000110_000000,
6149 0b_0011000110_000000,
6150 0b_0001111100_000000,
6151 0b_0000000000_000000,
6152 0b_0000000000_000000,
6154 0b_0000000000_000000,
6155 0b_0000011100_000000,
6156 0b_0000111100_000000,
6157 0b_0001101100_000000,
6158 0b_0011001100_000000,
6159 0b_0011111110_000000,
6160 0b_0000001100_000000,
6161 0b_0000011110_000000,
6162 0b_0000000000_000000,
6163 0b_0000000000_000000,
6165 0b_0000000000_000000,
6166 0b_0011111110_000000,
6167 0b_0011000000_000000,
6168 0b_0011000000_000000,
6169 0b_0011111100_000000,
6170 0b_0000000110_000000,
6171 0b_0011000110_000000,
6172 0b_0001111100_000000,
6173 0b_0000000000_000000,
6174 0b_0000000000_000000,
6176 0b_0000000000_000000,
6177 0b_0000111100_000000,
6178 0b_0001100000_000000,
6179 0b_0011000000_000000,
6180 0b_0011111100_000000,
6181 0b_0011000110_000000,
6182 0b_0011000110_000000,
6183 0b_0001111100_000000,
6184 0b_0000000000_000000,
6185 0b_0000000000_000000,
6187 0b_0000000000_000000,
6188 0b_0011111110_000000,
6189 0b_0011000110_000000,
6190 0b_0000000110_000000,
6191 0b_0000001100_000000,
6192 0b_0000011000_000000,
6193 0b_0000110000_000000,
6194 0b_0000110000_000000,
6195 0b_0000000000_000000,
6196 0b_0000000000_000000,
6198 0b_0000000000_000000,
6199 0b_0001111100_000000,
6200 0b_0011000110_000000,
6201 0b_0011000110_000000,
6202 0b_0001111100_000000,
6203 0b_0011000110_000000,
6204 0b_0011000110_000000,
6205 0b_0001111100_000000,
6206 0b_0000000000_000000,
6207 0b_0000000000_000000,
6209 0b_0000000000_000000,
6210 0b_0001111100_000000,
6211 0b_0011000110_000000,
6212 0b_0011000110_000000,
6213 0b_0001111110_000000,
6214 0b_0000000110_000000,
6215 0b_0000001100_000000,
6216 0b_0001111000_000000,
6217 0b_0000000000_000000,
6218 0b_0000000000_000000,
6220 0b_0000000000_000000,
6221 0b_0000000000_000000,
6222 0b_0000110000_000000,
6223 0b_0000110000_000000,
6224 0b_0000000000_000000,
6225 0b_0000000000_000000,
6226 0b_0000110000_000000,
6227 0b_0000110000_000000,
6228 0b_0000000000_000000,
6229 0b_0000000000_000000,
6231 0b_0000000000_000000,
6232 0b_0000000000_000000,
6233 0b_0000110000_000000,
6234 0b_0000110000_000000,
6235 0b_0000000000_000000,
6236 0b_0000000000_000000,
6237 0b_0000110000_000000,
6238 0b_0000110000_000000,
6239 0b_0001100000_000000,
6240 0b_0000000000_000000,
6242 0b_0000000000_000000,
6243 0b_0000001100_000000,
6244 0b_0000011000_000000,
6245 0b_0000110000_000000,
6246 0b_0001100000_000000,
6247 0b_0000110000_000000,
6248 0b_0000011000_000000,
6249 0b_0000001100_000000,
6250 0b_0000000000_000000,
6251 0b_0000000000_000000,
6253 0b_0000000000_000000,
6254 0b_0000000000_000000,
6255 0b_0000000000_000000,
6256 0b_0011111100_000000,
6257 0b_0000000000_000000,
6258 0b_0011111100_000000,
6259 0b_0000000000_000000,
6260 0b_0000000000_000000,
6261 0b_0000000000_000000,
6262 0b_0000000000_000000,
6264 0b_0000000000_000000,
6265 0b_0001100000_000000,
6266 0b_0000110000_000000,
6267 0b_0000011000_000000,
6268 0b_0000001100_000000,
6269 0b_0000011000_000000,
6270 0b_0000110000_000000,
6271 0b_0001100000_000000,
6272 0b_0000000000_000000,
6273 0b_0000000000_000000,
6275 0b_0000000000_000000,
6276 0b_0001111000_000000,
6277 0b_0011001100_000000,
6278 0b_0000001100_000000,
6279 0b_0000001100_000000,
6280 0b_0000011000_000000,
6281 0b_0000110000_000000,
6282 0b_0000000000_000000,
6283 0b_0000110000_000000,
6284 0b_0000000000_000000,
6286 0b_0000000000_000000,
6287 0b_0011111100_000000,
6288 0b_0110000110_000000,
6289 0b_0110011110_000000,
6290 0b_0110110110_000000,
6291 0b_0110011110_000000,
6292 0b_0110000000_000000,
6293 0b_0011111100_000000,
6294 0b_0000000000_000000,
6295 0b_0000000000_000000,
6297 0b_0000000000_000000,
6298 0b_0001111100_000000,
6299 0b_0011000110_000000,
6300 0b_0011000110_000000,
6301 0b_0011111110_000000,
6302 0b_0011000110_000000,
6303 0b_0011000110_000000,
6304 0b_0011000110_000000,
6305 0b_0000000000_000000,
6306 0b_0000000000_000000,
6308 0b_0000000000_000000,
6309 0b_0011111100_000000,
6310 0b_0011000110_000000,
6311 0b_0011000110_000000,
6312 0b_0011111100_000000,
6313 0b_0011000110_000000,
6314 0b_0011000110_000000,
6315 0b_0011111100_000000,
6316 0b_0000000000_000000,
6317 0b_0000000000_000000,
6319 0b_0000000000_000000,
6320 0b_0001111100_000000,
6321 0b_0011000110_000000,
6322 0b_0011000000_000000,
6323 0b_0011000000_000000,
6324 0b_0011000000_000000,
6325 0b_0011000110_000000,
6326 0b_0001111100_000000,
6327 0b_0000000000_000000,
6328 0b_0000000000_000000,
6330 0b_0000000000_000000,
6331 0b_0011111000_000000,
6332 0b_0011001100_000000,
6333 0b_0011000110_000000,
6334 0b_0011000110_000000,
6335 0b_0011000110_000000,
6336 0b_0011001100_000000,
6337 0b_0011111000_000000,
6338 0b_0000000000_000000,
6339 0b_0000000000_000000,
6341 0b_0000000000_000000,
6342 0b_0011111110_000000,
6343 0b_0011000000_000000,
6344 0b_0011000000_000000,
6345 0b_0011111100_000000,
6346 0b_0011000000_000000,
6347 0b_0011000000_000000,
6348 0b_0011111110_000000,
6349 0b_0000000000_000000,
6350 0b_0000000000_000000,
6352 0b_0000000000_000000,
6353 0b_0011111110_000000,
6354 0b_0011000000_000000,
6355 0b_0011000000_000000,
6356 0b_0011111100_000000,
6357 0b_0011000000_000000,
6358 0b_0011000000_000000,
6359 0b_0011000000_000000,
6360 0b_0000000000_000000,
6361 0b_0000000000_000000,
6363 0b_0000000000_000000,
6364 0b_0001111100_000000,
6365 0b_0011000110_000000,
6366 0b_0011000000_000000,
6367 0b_0011001110_000000,
6368 0b_0011000110_000000,
6369 0b_0011000110_000000,
6370 0b_0001111100_000000,
6371 0b_0000000000_000000,
6372 0b_0000000000_000000,
6374 0b_0000000000_000000,
6375 0b_0011000110_000000,
6376 0b_0011000110_000000,
6377 0b_0011000110_000000,
6378 0b_0011111110_000000,
6379 0b_0011000110_000000,
6380 0b_0011000110_000000,
6381 0b_0011000110_000000,
6382 0b_0000000000_000000,
6383 0b_0000000000_000000,
6385 0b_0000000000_000000,
6386 0b_0001111000_000000,
6387 0b_0000110000_000000,
6388 0b_0000110000_000000,
6389 0b_0000110000_000000,
6390 0b_0000110000_000000,
6391 0b_0000110000_000000,
6392 0b_0001111000_000000,
6393 0b_0000000000_000000,
6394 0b_0000000000_000000,
6396 0b_0000000000_000000,
6397 0b_0000011100_000000,
6398 0b_0000001100_000000,
6399 0b_0000001100_000000,
6400 0b_0000001100_000000,
6401 0b_0011001100_000000,
6402 0b_0011001100_000000,
6403 0b_0001111000_000000,
6404 0b_0000000000_000000,
6405 0b_0000000000_000000,
6407 0b_0000000000_000000,
6408 0b_0011000110_000000,
6409 0b_0011000110_000000,
6410 0b_0011001100_000000,
6411 0b_0011111000_000000,
6412 0b_0011001100_000000,
6413 0b_0011000110_000000,
6414 0b_0011000110_000000,
6415 0b_0000000000_000000,
6416 0b_0000000000_000000,
6418 0b_0000000000_000000,
6419 0b_0011000000_000000,
6420 0b_0011000000_000000,
6421 0b_0011000000_000000,
6422 0b_0011000000_000000,
6423 0b_0011000000_000000,
6424 0b_0011000000_000000,
6425 0b_0011111110_000000,
6426 0b_0000000000_000000,
6427 0b_0000000000_000000,
6429 0b_0000000000_000000,
6430 0b_0110000110_000000,
6431 0b_0111001110_000000,
6432 0b_0111111110_000000,
6433 0b_0110110110_000000,
6434 0b_0110000110_000000,
6435 0b_0110000110_000000,
6436 0b_0110000110_000000,
6437 0b_0000000000_000000,
6438 0b_0000000000_000000,
6440 0b_0000000000_000000,
6441 0b_0011000110_000000,
6442 0b_0011100110_000000,
6443 0b_0011110110_000000,
6444 0b_0011011110_000000,
6445 0b_0011001110_000000,
6446 0b_0011000110_000000,
6447 0b_0011000110_000000,
6448 0b_0000000000_000000,
6449 0b_0000000000_000000,
6451 0b_0000000000_000000,
6452 0b_0001111100_000000,
6453 0b_0011000110_000000,
6454 0b_0011000110_000000,
6455 0b_0011000110_000000,
6456 0b_0011000110_000000,
6457 0b_0011000110_000000,
6458 0b_0001111100_000000,
6459 0b_0000000000_000000,
6460 0b_0000000000_000000,
6462 0b_0000000000_000000,
6463 0b_0011111100_000000,
6464 0b_0011000110_000000,
6465 0b_0011000110_000000,
6466 0b_0011111100_000000,
6467 0b_0011000000_000000,
6468 0b_0011000000_000000,
6469 0b_0011000000_000000,
6470 0b_0000000000_000000,
6471 0b_0000000000_000000,
6473 0b_0000000000_000000,
6474 0b_0001111100_000000,
6475 0b_0011000110_000000,
6476 0b_0011000110_000000,
6477 0b_0011000110_000000,
6478 0b_0011000110_000000,
6479 0b_0011001110_000000,
6480 0b_0001111100_000000,
6481 0b_0000001110_000000,
6482 0b_0000000000_000000,
6484 0b_0000000000_000000,
6485 0b_0011111100_000000,
6486 0b_0011000110_000000,
6487 0b_0011000110_000000,
6488 0b_0011111100_000000,
6489 0b_0011001100_000000,
6490 0b_0011000110_000000,
6491 0b_0011000110_000000,
6492 0b_0000000000_000000,
6493 0b_0000000000_000000,
6495 0b_0000000000_000000,
6496 0b_0001111100_000000,
6497 0b_0011000110_000000,
6498 0b_0011000000_000000,
6499 0b_0001111100_000000,
6500 0b_0000000110_000000,
6501 0b_0011000110_000000,
6502 0b_0001111100_000000,
6503 0b_0000000000_000000,
6504 0b_0000000000_000000,
6506 0b_0000000000_000000,
6507 0b_0111111110_000000,
6508 0b_0000110000_000000,
6509 0b_0000110000_000000,
6510 0b_0000110000_000000,
6511 0b_0000110000_000000,
6512 0b_0000110000_000000,
6513 0b_0000110000_000000,
6514 0b_0000000000_000000,
6515 0b_0000000000_000000,
6517 0b_0000000000_000000,
6518 0b_0011000110_000000,
6519 0b_0011000110_000000,
6520 0b_0011000110_000000,
6521 0b_0011000110_000000,
6522 0b_0011000110_000000,
6523 0b_0011000110_000000,
6524 0b_0001111100_000000,
6525 0b_0000000000_000000,
6526 0b_0000000000_000000,
6528 0b_0000000000_000000,
6529 0b_0011000110_000000,
6530 0b_0011000110_000000,
6531 0b_0011000110_000000,
6532 0b_0011000110_000000,
6533 0b_0001101100_000000,
6534 0b_0000111000_000000,
6535 0b_0000010000_000000,
6536 0b_0000000000_000000,
6537 0b_0000000000_000000,
6539 0b_0000000000_000000,
6540 0b_0110000110_000000,
6541 0b_0110000110_000000,
6542 0b_0110000110_000000,
6543 0b_0110110110_000000,
6544 0b_0111111110_000000,
6545 0b_0111001110_000000,
6546 0b_0110000110_000000,
6547 0b_0000000000_000000,
6548 0b_0000000000_000000,
6550 0b_0000000000_000000,
6551 0b_0110000110_000000,
6552 0b_0011001100_000000,
6553 0b_0001111000_000000,
6554 0b_0000110000_000000,
6555 0b_0001111000_000000,
6556 0b_0011001100_000000,
6557 0b_0110000110_000000,
6558 0b_0000000000_000000,
6559 0b_0000000000_000000,
6561 0b_0000000000_000000,
6562 0b_0110000110_000000,
6563 0b_0110000110_000000,
6564 0b_0011001100_000000,
6565 0b_0001111000_000000,
6566 0b_0000110000_000000,
6567 0b_0000110000_000000,
6568 0b_0000110000_000000,
6569 0b_0000000000_000000,
6570 0b_0000000000_000000,
6572 0b_0000000000_000000,
6573 0b_0011111110_000000,
6574 0b_0000001100_000000,
6575 0b_0000011000_000000,
6576 0b_0000110000_000000,
6577 0b_0001100000_000000,
6578 0b_0011000000_000000,
6579 0b_0011111110_000000,
6580 0b_0000000000_000000,
6581 0b_0000000000_000000,
6583 0b_0000000000_000000,
6584 0b_0001111000_000000,
6585 0b_0001100000_000000,
6586 0b_0001100000_000000,
6587 0b_0001100000_000000,
6588 0b_0001100000_000000,
6589 0b_0001100000_000000,
6590 0b_0001111000_000000,
6591 0b_0000000000_000000,
6592 0b_0000000000_000000,
6594 0b_0000000000_000000,
6595 0b_0110000000_000000,
6596 0b_0011000000_000000,
6597 0b_0001100000_000000,
6598 0b_0000110000_000000,
6599 0b_0000011000_000000,
6600 0b_0000001100_000000,
6601 0b_0000000000_000000,
6602 0b_0000000000_000000,
6603 0b_0000000000_000000,
6605 0b_0000000000_000000,
6606 0b_0001111000_000000,
6607 0b_0000011000_000000,
6608 0b_0000011000_000000,
6609 0b_0000011000_000000,
6610 0b_0000011000_000000,
6611 0b_0000011000_000000,
6612 0b_0001111000_000000,
6613 0b_0000000000_000000,
6614 0b_0000000000_000000,
6616 0b_0000000000_000000,
6617 0b_0000010000_000000,
6618 0b_0000111000_000000,
6619 0b_0001101100_000000,
6620 0b_0011000110_000000,
6621 0b_0000000000_000000,
6622 0b_0000000000_000000,
6623 0b_0000000000_000000,
6624 0b_0000000000_000000,
6625 0b_0000000000_000000,
6627 0b_0000000000_000000,
6628 0b_0000000000_000000,
6629 0b_0000000000_000000,
6630 0b_0000000000_000000,
6631 0b_0000000000_000000,
6632 0b_0000000000_000000,
6633 0b_0000000000_000000,
6634 0b_0000000000_000000,
6635 0b_1111111111_000000,
6636 0b_0000000000_000000,
6638 0b_0000000000_000000,
6639 0b_0001110000_000000,
6640 0b_0000110000_000000,
6641 0b_0000011000_000000,
6642 0b_0000000000_000000,
6643 0b_0000000000_000000,
6644 0b_0000000000_000000,
6645 0b_0000000000_000000,
6646 0b_0000000000_000000,
6647 0b_0000000000_000000,
6649 0b_0000000000_000000,
6650 0b_0000000000_000000,
6651 0b_0000000000_000000,
6652 0b_0001111100_000000,
6653 0b_0000000110_000000,
6654 0b_0001111110_000000,
6655 0b_0011000110_000000,
6656 0b_0001111110_000000,
6657 0b_0000000000_000000,
6658 0b_0000000000_000000,
6660 0b_0000000000_000000,
6661 0b_0011000000_000000,
6662 0b_0011000000_000000,
6663 0b_0011111100_000000,
6664 0b_0011000110_000000,
6665 0b_0011000110_000000,
6666 0b_0011000110_000000,
6667 0b_0011111100_000000,
6668 0b_0000000000_000000,
6669 0b_0000000000_000000,
6671 0b_0000000000_000000,
6672 0b_0000000000_000000,
6673 0b_0000000000_000000,
6674 0b_0001111100_000000,
6675 0b_0011000110_000000,
6676 0b_0011000000_000000,
6677 0b_0011000110_000000,
6678 0b_0001111100_000000,
6679 0b_0000000000_000000,
6680 0b_0000000000_000000,
6682 0b_0000000000_000000,
6683 0b_0000000110_000000,
6684 0b_0000000110_000000,
6685 0b_0001111110_000000,
6686 0b_0011000110_000000,
6687 0b_0011000110_000000,
6688 0b_0011000110_000000,
6689 0b_0001111110_000000,
6690 0b_0000000000_000000,
6691 0b_0000000000_000000,
6693 0b_0000000000_000000,
6694 0b_0000000000_000000,
6695 0b_0000000000_000000,
6696 0b_0001111100_000000,
6697 0b_0011000110_000000,
6698 0b_0011111110_000000,
6699 0b_0011000000_000000,
6700 0b_0001111100_000000,
6701 0b_0000000000_000000,
6702 0b_0000000000_000000,
6704 0b_0000000000_000000,
6705 0b_0000111100_000000,
6706 0b_0001100000_000000,
6707 0b_0001100000_000000,
6708 0b_0011111000_000000,
6709 0b_0001100000_000000,
6710 0b_0001100000_000000,
6711 0b_0001100000_000000,
6712 0b_0000000000_000000,
6713 0b_0000000000_000000,
6715 0b_0000000000_000000,
6716 0b_0000000000_000000,
6717 0b_0000000000_000000,
6718 0b_0001111110_000000,
6719 0b_0011000110_000000,
6720 0b_0011000110_000000,
6721 0b_0011000110_000000,
6722 0b_0001111110_000000,
6723 0b_0000000110_000000,
6724 0b_0001111100_000000,
6726 0b_0000000000_000000,
6727 0b_0011000000_000000,
6728 0b_0011000000_000000,
6729 0b_0011111100_000000,
6730 0b_0011000110_000000,
6731 0b_0011000110_000000,
6732 0b_0011000110_000000,
6733 0b_0011000110_000000,
6734 0b_0000000000_000000,
6735 0b_0000000000_000000,
6737 0b_0000000000_000000,
6738 0b_0000110000_000000,
6739 0b_0000000000_000000,
6740 0b_0001110000_000000,
6741 0b_0000110000_000000,
6742 0b_0000110000_000000,
6743 0b_0000110000_000000,
6744 0b_0001111000_000000,
6745 0b_0000000000_000000,
6746 0b_0000000000_000000,
6748 0b_0000000000_000000,
6749 0b_0000011000_000000,
6750 0b_0000000000_000000,
6751 0b_0000111000_000000,
6752 0b_0000011000_000000,
6753 0b_0000011000_000000,
6754 0b_0000011000_000000,
6755 0b_0000011000_000000,
6756 0b_0000011000_000000,
6757 0b_0001110000_000000,
6759 0b_0000000000_000000,
6760 0b_0011000000_000000,
6761 0b_0011000000_000000,
6762 0b_0011000110_000000,
6763 0b_0011001100_000000,
6764 0b_0011111000_000000,
6765 0b_0011001100_000000,
6766 0b_0011000110_000000,
6767 0b_0000000000_000000,
6768 0b_0000000000_000000,
6770 0b_0000000000_000000,
6771 0b_0001110000_000000,
6772 0b_0000110000_000000,
6773 0b_0000110000_000000,
6774 0b_0000110000_000000,
6775 0b_0000110000_000000,
6776 0b_0000110000_000000,
6777 0b_0000011100_000000,
6778 0b_0000000000_000000,
6779 0b_0000000000_000000,
6781 0b_0000000000_000000,
6782 0b_0000000000_000000,
6783 0b_0000000000_000000,
6784 0b_0011001100_000000,
6785 0b_0111111110_000000,
6786 0b_0110110110_000000,
6787 0b_0110110110_000000,
6788 0b_0110000110_000000,
6789 0b_0000000000_000000,
6790 0b_0000000000_000000,
6792 0b_0000000000_000000,
6793 0b_0000000000_000000,
6794 0b_0000000000_000000,
6795 0b_0011111100_000000,
6796 0b_0011000110_000000,
6797 0b_0011000110_000000,
6798 0b_0011000110_000000,
6799 0b_0011000110_000000,
6800 0b_0000000000_000000,
6801 0b_0000000000_000000,
6803 0b_0000000000_000000,
6804 0b_0000000000_000000,
6805 0b_0000000000_000000,
6806 0b_0001111100_000000,
6807 0b_0011000110_000000,
6808 0b_0011000110_000000,
6809 0b_0011000110_000000,
6810 0b_0001111100_000000,
6811 0b_0000000000_000000,
6812 0b_0000000000_000000,
6814 0b_0000000000_000000,
6815 0b_0000000000_000000,
6816 0b_0000000000_000000,
6817 0b_0011111100_000000,
6818 0b_0011000110_000000,
6819 0b_0011000110_000000,
6820 0b_0011111100_000000,
6821 0b_0011000000_000000,
6822 0b_0011000000_000000,
6823 0b_0000000000_000000,
6825 0b_0000000000_000000,
6826 0b_0000000000_000000,
6827 0b_0000000000_000000,
6828 0b_0001111110_000000,
6829 0b_0011000110_000000,
6830 0b_0011000110_000000,
6831 0b_0001111110_000000,
6832 0b_0000000110_000000,
6833 0b_0000000111_000000,
6834 0b_0000000000_000000,
6836 0b_0000000000_000000,
6837 0b_0000000000_000000,
6838 0b_0000000000_000000,
6839 0b_0011111100_000000,
6840 0b_0011000110_000000,
6841 0b_0011000000_000000,
6842 0b_0011000000_000000,
6843 0b_0011000000_000000,
6844 0b_0000000000_000000,
6845 0b_0000000000_000000,
6847 0b_0000000000_000000,
6848 0b_0000000000_000000,
6849 0b_0000000000_000000,
6850 0b_0001111110_000000,
6851 0b_0011000000_000000,
6852 0b_0001111100_000000,
6853 0b_0000000110_000000,
6854 0b_0011111100_000000,
6855 0b_0000000000_000000,
6856 0b_0000000000_000000,
6858 0b_0000000000_000000,
6859 0b_0001100000_000000,
6860 0b_0001100000_000000,
6861 0b_0011111000_000000,
6862 0b_0001100000_000000,
6863 0b_0001100000_000000,
6864 0b_0001100000_000000,
6865 0b_0000111100_000000,
6866 0b_0000000000_000000,
6867 0b_0000000000_000000,
6869 0b_0000000000_000000,
6870 0b_0000000000_000000,
6871 0b_0000000000_000000,
6872 0b_0011000110_000000,
6873 0b_0011000110_000000,
6874 0b_0011000110_000000,
6875 0b_0011000110_000000,
6876 0b_0001111110_000000,
6877 0b_0000000000_000000,
6878 0b_0000000000_000000,
6880 0b_0000000000_000000,
6881 0b_0000000000_000000,
6882 0b_0000000000_000000,
6883 0b_0011000110_000000,
6884 0b_0011000110_000000,
6885 0b_0001101100_000000,
6886 0b_0000111000_000000,
6887 0b_0000010000_000000,
6888 0b_0000000000_000000,
6889 0b_0000000000_000000,
6891 0b_0000000000_000000,
6892 0b_0000000000_000000,
6893 0b_0000000000_000000,
6894 0b_0110000110_000000,
6895 0b_0110110110_000000,
6896 0b_0110110110_000000,
6897 0b_0111111110_000000,
6898 0b_0011001100_000000,
6899 0b_0000000000_000000,
6900 0b_0000000000_000000,
6902 0b_0000000000_000000,
6903 0b_0000000000_000000,
6904 0b_0000000000_000000,
6905 0b_0011000110_000000,
6906 0b_0001101100_000000,
6907 0b_0000111000_000000,
6908 0b_0001101100_000000,
6909 0b_0011000110_000000,
6910 0b_0000000000_000000,
6911 0b_0000000000_000000,
6913 0b_0000000000_000000,
6914 0b_0000000000_000000,
6915 0b_0000000000_000000,
6916 0b_0011000110_000000,
6917 0b_0011000110_000000,
6918 0b_0011000110_000000,
6919 0b_0001111110_000000,
6920 0b_0000000110_000000,
6921 0b_0001111100_000000,
6922 0b_0000000000_000000,
6924 0b_0000000000_000000,
6925 0b_0000000000_000000,
6926 0b_0000000000_000000,
6927 0b_0011111100_000000,
6928 0b_0000011000_000000,
6929 0b_0000110000_000000,
6930 0b_0001100000_000000,
6931 0b_0011111100_000000,
6932 0b_0000000000_000000,
6933 0b_0000000000_000000,
6935 0b_0000000000_000000,
6936 0b_0000111000_000000,
6937 0b_0001100000_000000,
6938 0b_0001100000_000000,
6939 0b_0011000000_000000,
6940 0b_0001100000_000000,
6941 0b_0001100000_000000,
6942 0b_0000111000_000000,
6943 0b_0000000000_000000,
6944 0b_0000000000_000000,
6946 0b_0000110000_000000,
6947 0b_0000110000_000000,
6948 0b_0000110000_000000,
6949 0b_0000110000_000000,
6950 0b_0000000000_000000,
6951 0b_0000110000_000000,
6952 0b_0000110000_000000,
6953 0b_0000110000_000000,
6954 0b_0000110000_000000,
6955 0b_0000000000_000000,
6957 0b_0000000000_000000,
6958 0b_0001110000_000000,
6959 0b_0000011000_000000,
6960 0b_0000011000_000000,
6961 0b_0000001100_000000,
6962 0b_0000011000_000000,
6963 0b_0000011000_000000,
6964 0b_0001110000_000000,
6965 0b_0000000000_000000,
6966 0b_0000000000_000000,
6968 0b_0000000000_000000,
6969 0b_0000000000_000000,
6970 0b_0000000000_000000,
6971 0b_0011100000_000000,
6972 0b_0110110110_000000,
6973 0b_0000011100_000000,
6974 0b_0000000000_000000,
6975 0b_0000000000_000000,
6976 0b_0000000000_000000,
6977 0b_0000000000_000000,
6979 0b_0000000000_000000,
6980 0b_0000010000_000000,
6981 0b_0000111000_000000,
6982 0b_0001101100_000000,
6983 0b_0011000110_000000,
6984 0b_0011000110_000000,
6985 0b_0011000110_000000,
6986 0b_0011111110_000000,
6987 0b_0000000000_000000,
6988 0b_0000000000_000000,
6990 0b_0000000000_000000,
6991 0b_0001111100_000000,
6992 0b_0011000110_000000,
6993 0b_0011000000_000000,
6994 0b_0011000000_000000,
6995 0b_0011000000_000000,
6996 0b_0011000110_000000,
6997 0b_0001111100_000000,
6998 0b_0000110000_000000,
6999 0b_0001100000_000000,
7001 0b_0000000000_000000,
7002 0b_0001101100_000000,
7003 0b_0000000000_000000,
7004 0b_0011000110_000000,
7005 0b_0011000110_000000,
7006 0b_0011000110_000000,
7007 0b_0011000110_000000,
7008 0b_0001111110_000000,
7009 0b_0000000000_000000,
7010 0b_0000000000_000000,
7012 0b_0000011000_000000,
7013 0b_0000110000_000000,
7014 0b_0000000000_000000,
7015 0b_0001111100_000000,
7016 0b_0011000110_000000,
7017 0b_0011111110_000000,
7018 0b_0011000000_000000,
7019 0b_0001111100_000000,
7020 0b_0000000000_000000,
7021 0b_0000000000_000000,
7023 0b_0000111000_000000,
7024 0b_0001101100_000000,
7025 0b_0000000000_000000,
7026 0b_0001111100_000000,
7027 0b_0000000110_000000,
7028 0b_0001111110_000000,
7029 0b_0011000110_000000,
7030 0b_0001111110_000000,
7031 0b_0000000000_000000,
7032 0b_0000000000_000000,
7034 0b_0000000000_000000,
7035 0b_0001101100_000000,
7036 0b_0000000000_000000,
7037 0b_0001111100_000000,
7038 0b_0000000110_000000,
7039 0b_0001111110_000000,
7040 0b_0011000110_000000,
7041 0b_0001111110_000000,
7042 0b_0000000000_000000,
7043 0b_0000000000_000000,
7045 0b_0000110000_000000,
7046 0b_0000011000_000000,
7047 0b_0000000000_000000,
7048 0b_0001111100_000000,
7049 0b_0000000110_000000,
7050 0b_0001111110_000000,
7051 0b_0011000110_000000,
7052 0b_0001111110_000000,
7053 0b_0000000000_000000,
7054 0b_0000000000_000000,
7056 0b_0000111000_000000,
7057 0b_0001101100_000000,
7058 0b_0000111000_000000,
7059 0b_0001111100_000000,
7060 0b_0000000110_000000,
7061 0b_0001111110_000000,
7062 0b_0011000110_000000,
7063 0b_0001111110_000000,
7064 0b_0000000000_000000,
7065 0b_0000000000_000000,
7067 0b_0000000000_000000,
7068 0b_0000000000_000000,
7069 0b_0000000000_000000,
7070 0b_0001111100_000000,
7071 0b_0011000110_000000,
7072 0b_0011000000_000000,
7073 0b_0011000110_000000,
7074 0b_0001111100_000000,
7075 0b_0000110000_000000,
7076 0b_0001100000_000000,
7078 0b_0000111000_000000,
7079 0b_0001101100_000000,
7080 0b_0000000000_000000,
7081 0b_0001111100_000000,
7082 0b_0011000110_000000,
7083 0b_0011111110_000000,
7084 0b_0011000000_000000,
7085 0b_0001111100_000000,
7086 0b_0000000000_000000,
7087 0b_0000000000_000000,
7089 0b_0000000000_000000,
7090 0b_0001101100_000000,
7091 0b_0000000000_000000,
7092 0b_0001111100_000000,
7093 0b_0011000110_000000,
7094 0b_0011111110_000000,
7095 0b_0011000000_000000,
7096 0b_0001111100_000000,
7097 0b_0000000000_000000,
7098 0b_0000000000_000000,
7100 0b_0000110000_000000,
7101 0b_0000011000_000000,
7102 0b_0000000000_000000,
7103 0b_0001111100_000000,
7104 0b_0011000110_000000,
7105 0b_0011111110_000000,
7106 0b_0011000000_000000,
7107 0b_0001111100_000000,
7108 0b_0000000000_000000,
7109 0b_0000000000_000000,
7111 0b_0000000000_000000,
7112 0b_0011011000_000000,
7113 0b_0000000000_000000,
7114 0b_0001110000_000000,
7115 0b_0000110000_000000,
7116 0b_0000110000_000000,
7117 0b_0000110000_000000,
7118 0b_0001111000_000000,
7119 0b_0000000000_000000,
7120 0b_0000000000_000000,
7122 0b_0001110000_000000,
7123 0b_0011011000_000000,
7124 0b_0000000000_000000,
7125 0b_0001110000_000000,
7126 0b_0000110000_000000,
7127 0b_0000110000_000000,
7128 0b_0000110000_000000,
7129 0b_0001111000_000000,
7130 0b_0000000000_000000,
7131 0b_0000000000_000000,
7133 0b_0001100000_000000,
7134 0b_0000110000_000000,
7135 0b_0000000000_000000,
7136 0b_0001110000_000000,
7137 0b_0000110000_000000,
7138 0b_0000110000_000000,
7139 0b_0000110000_000000,
7140 0b_0001111000_000000,
7141 0b_0000000000_000000,
7142 0b_0000000000_000000,
7144 0b_0000000000_000000,
7145 0b_0001101100_000000,
7146 0b_0000000000_000000,
7147 0b_0001111100_000000,
7148 0b_0011000110_000000,
7149 0b_0011111110_000000,
7150 0b_0011000110_000000,
7151 0b_0011000110_000000,
7152 0b_0000000000_000000,
7153 0b_0000000000_000000,
7155 0b_0000111000_000000,
7156 0b_0001101100_000000,
7157 0b_0000111000_000000,
7158 0b_0001111100_000000,
7159 0b_0011000110_000000,
7160 0b_0011111110_000000,
7161 0b_0011000110_000000,
7162 0b_0011000110_000000,
7163 0b_0000000000_000000,
7164 0b_0000000000_000000,
7166 0b_0000011000_000000,
7167 0b_0000110000_000000,
7168 0b_0000000000_000000,
7169 0b_0011111110_000000,
7170 0b_0011000000_000000,
7171 0b_0011111100_000000,
7172 0b_0011000000_000000,
7173 0b_0011111110_000000,
7174 0b_0000000000_000000,
7175 0b_0000000000_000000,
7177 0b_0000000000_000000,
7178 0b_0000000000_000000,
7179 0b_0000000000_000000,
7180 0b_0011101110_000000,
7181 0b_0000111011_000000,
7182 0b_0011111111_000000,
7183 0b_0110111000_000000,
7184 0b_0011101110_000000,
7185 0b_0000000000_000000,
7186 0b_0000000000_000000,
7188 0b_0000000000_000000,
7189 0b_0001111110_000000,
7190 0b_0011011000_000000,
7191 0b_0110011000_000000,
7192 0b_0111111110_000000,
7193 0b_0110011000_000000,
7194 0b_0110011000_000000,
7195 0b_0110011110_000000,
7196 0b_0000000000_000000,
7197 0b_0000000000_000000,
7199 0b_0000111000_000000,
7200 0b_0001101100_000000,
7201 0b_0000000000_000000,
7202 0b_0001111100_000000,
7203 0b_0011000110_000000,
7204 0b_0011000110_000000,
7205 0b_0011000110_000000,
7206 0b_0001111100_000000,
7207 0b_0000000000_000000,
7208 0b_0000000000_000000,
7210 0b_0000000000_000000,
7211 0b_0001101100_000000,
7212 0b_0000000000_000000,
7213 0b_0001111100_000000,
7214 0b_0011000110_000000,
7215 0b_0011000110_000000,
7216 0b_0011000110_000000,
7217 0b_0001111100_000000,
7218 0b_0000000000_000000,
7219 0b_0000000000_000000,
7221 0b_0000110000_000000,
7222 0b_0000011000_000000,
7223 0b_0000000000_000000,
7224 0b_0001111100_000000,
7225 0b_0011000110_000000,
7226 0b_0011000110_000000,
7227 0b_0011000110_000000,
7228 0b_0001111100_000000,
7229 0b_0000000000_000000,
7230 0b_0000000000_000000,
7232 0b_0000111000_000000,
7233 0b_0001101100_000000,
7234 0b_0000000000_000000,
7235 0b_0011000110_000000,
7236 0b_0011000110_000000,
7237 0b_0011000110_000000,
7238 0b_0011000110_000000,
7239 0b_0001111110_000000,
7240 0b_0000000000_000000,
7241 0b_0000000000_000000,
7243 0b_0000110000_000000,
7244 0b_0000011000_000000,
7245 0b_0000000000_000000,
7246 0b_0011000110_000000,
7247 0b_0011000110_000000,
7248 0b_0011000110_000000,
7249 0b_0011000110_000000,
7250 0b_0001111110_000000,
7251 0b_0000000000_000000,
7252 0b_0000000000_000000,
7254 0b_0000000000_000000,
7255 0b_0001101100_000000,
7256 0b_0000000000_000000,
7257 0b_0011000110_000000,
7258 0b_0011000110_000000,
7259 0b_0011000110_000000,
7260 0b_0001111110_000000,
7261 0b_0000000110_000000,
7262 0b_0001111100_000000,
7263 0b_0000000000_000000,
7265 0b_0000000000_000000,
7266 0b_0001101100_000000,
7267 0b_0000000000_000000,
7268 0b_0001111100_000000,
7269 0b_0011000110_000000,
7270 0b_0011000110_000000,
7271 0b_0011000110_000000,
7272 0b_0001111100_000000,
7273 0b_0000000000_000000,
7274 0b_0000000000_000000,
7276 0b_0000000000_000000,
7277 0b_0001101100_000000,
7278 0b_0000000000_000000,
7279 0b_0011000110_000000,
7280 0b_0011000110_000000,
7281 0b_0011000110_000000,
7282 0b_0011000110_000000,
7283 0b_0001111110_000000,
7284 0b_0000000000_000000,
7285 0b_0000000000_000000,
7287 0b_0000000000_000000,
7288 0b_0000000000_000000,
7289 0b_0000010000_000000,
7290 0b_0001111100_000000,
7291 0b_0011010110_000000,
7292 0b_0011010000_000000,
7293 0b_0011010110_000000,
7294 0b_0001111100_000000,
7295 0b_0000010000_000000,
7296 0b_0000000000_000000,
7298 0b_0000000000_000000,
7299 0b_0000111100_000000,
7300 0b_0001100110_000000,
7301 0b_0001100000_000000,
7302 0b_0011111000_000000,
7303 0b_0001100000_000000,
7304 0b_0001100000_000000,
7305 0b_0011000000_000000,
7306 0b_0011111110_000000,
7307 0b_0000000000_000000,
7309 0b_0000000000_000000,
7310 0b_0110000110_000000,
7311 0b_0110000110_000000,
7312 0b_0011001100_000000,
7313 0b_0001111000_000000,
7314 0b_0011111100_000000,
7315 0b_0000110000_000000,
7316 0b_0011111100_000000,
7317 0b_0000110000_000000,
7318 0b_0000000000_000000,
7320 0b_0000000000_000000,
7321 0b_0111111100_000000,
7322 0b_0110000110_000000,
7323 0b_0110110110_000000,
7324 0b_0110110110_000000,
7325 0b_0111111100_000000,
7326 0b_0110110000_000000,
7327 0b_0110110000_000000,
7328 0b_0110011100_000000,
7329 0b_0000000000_000000,
7331 0b_0000000000_000000,
7332 0b_0000011100_000000,
7333 0b_0000110000_000000,
7334 0b_0000110000_000000,
7335 0b_0001111000_000000,
7336 0b_0000110000_000000,
7337 0b_0000110000_000000,
7338 0b_0000110000_000000,
7339 0b_0011100000_000000,
7340 0b_0000000000_000000,
7342 0b_0000011000_000000,
7343 0b_0000110000_000000,
7344 0b_0000000000_000000,
7345 0b_0001111100_000000,
7346 0b_0000000110_000000,
7347 0b_0001111110_000000,
7348 0b_0011000110_000000,
7349 0b_0001111110_000000,
7350 0b_0000000000_000000,
7351 0b_0000000000_000000,
7353 0b_0000110000_000000,
7354 0b_0001100000_000000,
7355 0b_0000000000_000000,
7356 0b_0001110000_000000,
7357 0b_0000110000_000000,
7358 0b_0000110000_000000,
7359 0b_0000110000_000000,
7360 0b_0001111000_000000,
7361 0b_0000000000_000000,
7362 0b_0000000000_000000,
7364 0b_0000011000_000000,
7365 0b_0000110000_000000,
7366 0b_0000000000_000000,
7367 0b_0001111100_000000,
7368 0b_0011000110_000000,
7369 0b_0011000110_000000,
7370 0b_0011000110_000000,
7371 0b_0001111100_000000,
7372 0b_0000000000_000000,
7373 0b_0000000000_000000,
7375 0b_0000011000_000000,
7376 0b_0000110000_000000,
7377 0b_0000000000_000000,
7378 0b_0011000110_000000,
7379 0b_0011000110_000000,
7380 0b_0011000110_000000,
7381 0b_0011000110_000000,
7382 0b_0001111110_000000,
7383 0b_0000000000_000000,
7384 0b_0000000000_000000,
7386 0b_0001110110_000000,
7387 0b_0011011100_000000,
7388 0b_0000000000_000000,
7389 0b_0011111100_000000,
7390 0b_0011000110_000000,
7391 0b_0011000110_000000,
7392 0b_0011000110_000000,
7393 0b_0011000110_000000,
7394 0b_0000000000_000000,
7395 0b_0000000000_000000,
7397 0b_0001110110_000000,
7398 0b_0011011100_000000,
7399 0b_0000000000_000000,
7400 0b_0011100110_000000,
7401 0b_0011110110_000000,
7402 0b_0011011110_000000,
7403 0b_0011001110_000000,
7404 0b_0011000110_000000,
7405 0b_0000000000_000000,
7406 0b_0000000000_000000,
7408 0b_0000000000_000000,
7409 0b_0001111000_000000,
7410 0b_0000001100_000000,
7411 0b_0001111100_000000,
7412 0b_0011001100_000000,
7413 0b_0001111100_000000,
7414 0b_0000000000_000000,
7415 0b_0000000000_000000,
7416 0b_0000000000_000000,
7417 0b_0000000000_000000,
7419 0b_0000000000_000000,
7420 0b_0001111000_000000,
7421 0b_0011001100_000000,
7422 0b_0011001100_000000,
7423 0b_0011001100_000000,
7424 0b_0001111000_000000,
7425 0b_0000000000_000000,
7426 0b_0000000000_000000,
7427 0b_0000000000_000000,
7428 0b_0000000000_000000,
7430 0b_0000000000_000000,
7431 0b_0000110000_000000,
7432 0b_0000000000_000000,
7433 0b_0000110000_000000,
7434 0b_0001100000_000000,
7435 0b_0011000000_000000,
7436 0b_0011000000_000000,
7437 0b_0011001100_000000,
7438 0b_0001111000_000000,
7439 0b_0000000000_000000,
7441 0b_0000000000_000000,
7442 0b_0000000000_000000,
7443 0b_0000000000_000000,
7444 0b_0000000000_000000,
7445 0b_0011111110_000000,
7446 0b_0011000000_000000,
7447 0b_0011000000_000000,
7448 0b_0011000000_000000,
7449 0b_0000000000_000000,
7450 0b_0000000000_000000,
7452 0b_0000000000_000000,
7453 0b_0000000000_000000,
7454 0b_0000000000_000000,
7455 0b_0000000000_000000,
7456 0b_0011111110_000000,
7457 0b_0000000110_000000,
7458 0b_0000000110_000000,
7459 0b_0000000110_000000,
7460 0b_0000000000_000000,
7461 0b_0000000000_000000,
7463 0b_0000000000_000000,
7464 0b_0010000010_000000,
7465 0b_0010000100_000000,
7466 0b_0010001000_000000,
7467 0b_0010010000_000000,
7468 0b_0000101100_000000,
7469 0b_0001000110_000000,
7470 0b_0010001100_000000,
7471 0b_0100001110_000000,
7472 0b_0000000000_000000,
7474 0b_0000000000_000000,
7475 0b_0010000010_000000,
7476 0b_0010000100_000000,
7477 0b_0010001000_000000,
7478 0b_0010010000_000000,
7479 0b_0000101010_000000,
7480 0b_0001001010_000000,
7481 0b_0010001110_000000,
7482 0b_0100000010_000000,
7483 0b_0000000000_000000,
7485 0b_0000000000_000000,
7486 0b_0000110000_000000,
7487 0b_0000000000_000000,
7488 0b_0000110000_000000,
7489 0b_0000110000_000000,
7490 0b_0001111000_000000,
7491 0b_0001111000_000000,
7492 0b_0000110000_000000,
7493 0b_0000000000_000000,
7494 0b_0000000000_000000,
7496 0b_0000000000_000000,
7497 0b_0000000000_000000,
7498 0b_0001100110_000000,
7499 0b_0011001100_000000,
7500 0b_0110011000_000000,
7501 0b_0011001100_000000,
7502 0b_0001100110_000000,
7503 0b_0000000000_000000,
7504 0b_0000000000_000000,
7505 0b_0000000000_000000,
7507 0b_0000000000_000000,
7508 0b_0000000000_000000,
7509 0b_0110011000_000000,
7510 0b_0011001100_000000,
7511 0b_0001100110_000000,
7512 0b_0011001100_000000,
7513 0b_0110011000_000000,
7514 0b_0000000000_000000,
7515 0b_0000000000_000000,
7516 0b_0000000000_000000,
7518 0b_0010001000_000000,
7519 0b_1000100010_000000,
7520 0b_0010001000_000000,
7521 0b_1000100010_000000,
7522 0b_0010001000_000000,
7523 0b_1000100010_000000,
7524 0b_0010001000_000000,
7525 0b_1000100010_000000,
7526 0b_0010001000_000000,
7527 0b_1000100010_000000,
7529 0b_0101010101_000000,
7530 0b_1010101010_000000,
7531 0b_0101010101_000000,
7532 0b_1010101010_000000,
7533 0b_0101010101_000000,
7534 0b_1010101010_000000,
7535 0b_0101010101_000000,
7536 0b_1010101010_000000,
7537 0b_0101010101_000000,
7538 0b_1010101010_000000,
7540 0b_1011101110_000000,
7541 0b_1110111011_000000,
7542 0b_1011101110_000000,
7543 0b_1110111011_000000,
7544 0b_1011101110_000000,
7545 0b_1110111011_000000,
7546 0b_1011101110_000000,
7547 0b_1110111011_000000,
7548 0b_1011101110_000000,
7549 0b_1110111011_000000,
7551 0b_0000110000_000000,
7552 0b_0000110000_000000,
7553 0b_0000110000_000000,
7554 0b_0000110000_000000,
7555 0b_0000110000_000000,
7556 0b_0000110000_000000,
7557 0b_0000110000_000000,
7558 0b_0000110000_000000,
7559 0b_0000110000_000000,
7560 0b_0000110000_000000,
7562 0b_0000110000_000000,
7563 0b_0000110000_000000,
7564 0b_0000110000_000000,
7565 0b_0000110000_000000,
7566 0b_1111110000_000000,
7567 0b_1111110000_000000,
7568 0b_0000110000_000000,
7569 0b_0000110000_000000,
7570 0b_0000110000_000000,
7571 0b_0000110000_000000,
7573 0b_0000110000_000000,
7574 0b_0000110000_000000,
7575 0b_1111110000_000000,
7576 0b_1111110000_000000,
7577 0b_0000110000_000000,
7578 0b_0000110000_000000,
7579 0b_1111110000_000000,
7580 0b_1111110000_000000,
7581 0b_0000110000_000000,
7582 0b_0000110000_000000,
7584 0b_0011001100_000000,
7585 0b_0011001100_000000,
7586 0b_0011001100_000000,
7587 0b_0011001100_000000,
7588 0b_1111001100_000000,
7589 0b_1111001100_000000,
7590 0b_0011001100_000000,
7591 0b_0011001100_000000,
7592 0b_0011001100_000000,
7593 0b_0011001100_000000,
7595 0b_0000000000_000000,
7596 0b_0000000000_000000,
7597 0b_0000000000_000000,
7598 0b_0000000000_000000,
7599 0b_1111111100_000000,
7600 0b_1111111100_000000,
7601 0b_0011001100_000000,
7602 0b_0011001100_000000,
7603 0b_0011001100_000000,
7604 0b_0011001100_000000,
7606 0b_0000000000_000000,
7607 0b_0000000000_000000,
7608 0b_1111110000_000000,
7609 0b_1111110000_000000,
7610 0b_0000110000_000000,
7611 0b_0000110000_000000,
7612 0b_1111110000_000000,
7613 0b_1111110000_000000,
7614 0b_0000110000_000000,
7615 0b_0000110000_000000,
7617 0b_0011001100_000000,
7618 0b_0011001100_000000,
7619 0b_1111001100_000000,
7620 0b_1111001100_000000,
7621 0b_0000001100_000000,
7622 0b_0000001100_000000,
7623 0b_1111001100_000000,
7624 0b_1111001100_000000,
7625 0b_0011001100_000000,
7626 0b_0011001100_000000,
7628 0b_0011001100_000000,
7629 0b_0011001100_000000,
7630 0b_0011001100_000000,
7631 0b_0011001100_000000,
7632 0b_0011001100_000000,
7633 0b_0011001100_000000,
7634 0b_0011001100_000000,
7635 0b_0011001100_000000,
7636 0b_0011001100_000000,
7637 0b_0011001100_000000,
7639 0b_0000000000_000000,
7640 0b_0000000000_000000,
7641 0b_1111111100_000000,
7642 0b_1111111100_000000,
7643 0b_0000001100_000000,
7644 0b_0000001100_000000,
7645 0b_1111001100_000000,
7646 0b_1111001100_000000,
7647 0b_0011001100_000000,
7648 0b_0011001100_000000,
7650 0b_0011001100_000000,
7651 0b_0011001100_000000,
7652 0b_1111001100_000000,
7653 0b_1111001100_000000,
7654 0b_0000001100_000000,
7655 0b_0000001100_000000,
7656 0b_1111111100_000000,
7657 0b_1111111100_000000,
7658 0b_0000000000_000000,
7659 0b_0000000000_000000,
7661 0b_0011001100_000000,
7662 0b_0011001100_000000,
7663 0b_0011001100_000000,
7664 0b_0011001100_000000,
7665 0b_1111111100_000000,
7666 0b_1111111100_000000,
7667 0b_0000000000_000000,
7668 0b_0000000000_000000,
7669 0b_0000000000_000000,
7670 0b_0000000000_000000,
7672 0b_0001100000_000000,
7673 0b_0001100000_000000,
7674 0b_1111100000_000000,
7675 0b_1111100000_000000,
7676 0b_0001100000_000000,
7677 0b_0001100000_000000,
7678 0b_1111100000_000000,
7679 0b_1111100000_000000,
7680 0b_0000000000_000000,
7681 0b_0000000000_000000,
7683 0b_0000000000_000000,
7684 0b_0000000000_000000,
7685 0b_0000000000_000000,
7686 0b_0000000000_000000,
7687 0b_1111110000_000000,
7688 0b_1111110000_000000,
7689 0b_0000110000_000000,
7690 0b_0000110000_000000,
7691 0b_0000110000_000000,
7692 0b_0000110000_000000,
7694 0b_0000110000_000000,
7695 0b_0000110000_000000,
7696 0b_0000110000_000000,
7697 0b_0000110000_000000,
7698 0b_0000111111_000000,
7699 0b_0000111111_000000,
7700 0b_0000000000_000000,
7701 0b_0000000000_000000,
7702 0b_0000000000_000000,
7703 0b_0000000000_000000,
7705 0b_0000110000_000000,
7706 0b_0000110000_000000,
7707 0b_0000110000_000000,
7708 0b_0000110000_000000,
7709 0b_1111111111_000000,
7710 0b_1111111111_000000,
7711 0b_0000000000_000000,
7712 0b_0000000000_000000,
7713 0b_0000000000_000000,
7714 0b_0000000000_000000,
7716 0b_0000000000_000000,
7717 0b_0000000000_000000,
7718 0b_0000000000_000000,
7719 0b_0000000000_000000,
7720 0b_1111111111_000000,
7721 0b_1111111111_000000,
7722 0b_0000110000_000000,
7723 0b_0000110000_000000,
7724 0b_0000110000_000000,
7725 0b_0000110000_000000,
7727 0b_0000110000_000000,
7728 0b_0000110000_000000,
7729 0b_0000110000_000000,
7730 0b_0000110000_000000,
7731 0b_0000111111_000000,
7732 0b_0000111111_000000,
7733 0b_0000110000_000000,
7734 0b_0000110000_000000,
7735 0b_0000110000_000000,
7736 0b_0000110000_000000,
7738 0b_0000000000_000000,
7739 0b_0000000000_000000,
7740 0b_0000000000_000000,
7741 0b_0000000000_000000,
7742 0b_1111111111_000000,
7743 0b_1111111111_000000,
7744 0b_0000000000_000000,
7745 0b_0000000000_000000,
7746 0b_0000000000_000000,
7747 0b_0000000000_000000,
7749 0b_0000110000_000000,
7750 0b_0000110000_000000,
7751 0b_0000110000_000000,
7752 0b_0000110000_000000,
7753 0b_1111111111_000000,
7754 0b_1111111111_000000,
7755 0b_0000110000_000000,
7756 0b_0000110000_000000,
7757 0b_0000110000_000000,
7758 0b_0000110000_000000,
7760 0b_0000110000_000000,
7761 0b_0000110000_000000,
7762 0b_0000111111_000000,
7763 0b_0000111111_000000,
7764 0b_0000110000_000000,
7765 0b_0000110000_000000,
7766 0b_0000111111_000000,
7767 0b_0000111111_000000,
7768 0b_0000110000_000000,
7769 0b_0000110000_000000,
7771 0b_0011001100_000000,
7772 0b_0011001100_000000,
7773 0b_0011001100_000000,
7774 0b_0011001100_000000,
7775 0b_0011001111_000000,
7776 0b_0011001111_000000,
7777 0b_0011001100_000000,
7778 0b_0011001100_000000,
7779 0b_0011001100_000000,
7780 0b_0011001100_000000,
7782 0b_0011001100_000000,
7783 0b_0011001100_000000,
7784 0b_0011001111_000000,
7785 0b_0011001111_000000,
7786 0b_0011000000_000000,
7787 0b_0011000000_000000,
7788 0b_0011111111_000000,
7789 0b_0011111111_000000,
7790 0b_0000000000_000000,
7791 0b_0000000000_000000,
7793 0b_0000000000_000000,
7794 0b_0000000000_000000,
7795 0b_0011111111_000000,
7796 0b_0011111111_000000,
7797 0b_0011000000_000000,
7798 0b_0011000000_000000,
7799 0b_0011001111_000000,
7800 0b_0011001111_000000,
7801 0b_0011001100_000000,
7802 0b_0011001100_000000,
7804 0b_0011001100_000000,
7805 0b_0011001100_000000,
7806 0b_1111001111_000000,
7807 0b_1111001111_000000,
7808 0b_0000000000_000000,
7809 0b_0000000000_000000,
7810 0b_1111111111_000000,
7811 0b_1111111111_000000,
7812 0b_0000000000_000000,
7813 0b_0000000000_000000,
7815 0b_0000000000_000000,
7816 0b_0000000000_000000,
7817 0b_1111111111_000000,
7818 0b_1111111111_000000,
7819 0b_0000000000_000000,
7820 0b_0000000000_000000,
7821 0b_1111001111_000000,
7822 0b_1111001111_000000,
7823 0b_0011001100_000000,
7824 0b_0011001100_000000,
7826 0b_0011001100_000000,
7827 0b_0011001100_000000,
7828 0b_0011001111_000000,
7829 0b_0011001111_000000,
7830 0b_0011000000_000000,
7831 0b_0011000000_000000,
7832 0b_0011001111_000000,
7833 0b_0011001111_000000,
7834 0b_0011001100_000000,
7835 0b_0011001100_000000,
7837 0b_0000000000_000000,
7838 0b_0000000000_000000,
7839 0b_1111111111_000000,
7840 0b_1111111111_000000,
7841 0b_0000000000_000000,
7842 0b_0000000000_000000,
7843 0b_1111111111_000000,
7844 0b_1111111111_000000,
7845 0b_0000000000_000000,
7846 0b_0000000000_000000,
7848 0b_0011001100_000000,
7849 0b_0011001100_000000,
7850 0b_1111001111_000000,
7851 0b_1111001111_000000,
7852 0b_0000000000_000000,
7853 0b_0000000000_000000,
7854 0b_1111001111_000000,
7855 0b_1111001111_000000,
7856 0b_0011001100_000000,
7857 0b_0011001100_000000,
7859 0b_0000110000_000000,
7860 0b_0000110000_000000,
7861 0b_1111111111_000000,
7862 0b_1111111111_000000,
7863 0b_0000000000_000000,
7864 0b_0000000000_000000,
7865 0b_1111111111_000000,
7866 0b_1111111111_000000,
7867 0b_0000000000_000000,
7868 0b_0000000000_000000,
7870 0b_0011001100_000000,
7871 0b_0011001100_000000,
7872 0b_0011001100_000000,
7873 0b_0011001100_000000,
7874 0b_1111111111_000000,
7875 0b_1111111111_000000,
7876 0b_0000000000_000000,
7877 0b_0000000000_000000,
7878 0b_0000000000_000000,
7879 0b_0000000000_000000,
7881 0b_0000000000_000000,
7882 0b_0000000000_000000,
7883 0b_1111111111_000000,
7884 0b_1111111111_000000,
7885 0b_0000000000_000000,
7886 0b_0000000000_000000,
7887 0b_1111111111_000000,
7888 0b_1111111111_000000,
7889 0b_0000110000_000000,
7890 0b_0000110000_000000,
7892 0b_0000000000_000000,
7893 0b_0000000000_000000,
7894 0b_0000000000_000000,
7895 0b_0000000000_000000,
7896 0b_1111111111_000000,
7897 0b_1111111111_000000,
7898 0b_0011001100_000000,
7899 0b_0011001100_000000,
7900 0b_0011001100_000000,
7901 0b_0011001100_000000,
7903 0b_0011001100_000000,
7904 0b_0011001100_000000,
7905 0b_0011001100_000000,
7906 0b_0011001100_000000,
7907 0b_0011111111_000000,
7908 0b_0011111111_000000,
7909 0b_0000000000_000000,
7910 0b_0000000000_000000,
7911 0b_0000000000_000000,
7912 0b_0000000000_000000,
7914 0b_0000110000_000000,
7915 0b_0000110000_000000,
7916 0b_0000111111_000000,
7917 0b_0000111111_000000,
7918 0b_0000110000_000000,
7919 0b_0000110000_000000,
7920 0b_0000111111_000000,
7921 0b_0000111111_000000,
7922 0b_0000000000_000000,
7923 0b_0000000000_000000,
7925 0b_0000000000_000000,
7926 0b_0000000000_000000,
7927 0b_0000111111_000000,
7928 0b_0000111111_000000,
7929 0b_0000110000_000000,
7930 0b_0000110000_000000,
7931 0b_0000111111_000000,
7932 0b_0000111111_000000,
7933 0b_0000110000_000000,
7934 0b_0000110000_000000,
7936 0b_0000000000_000000,
7937 0b_0000000000_000000,
7938 0b_0000000000_000000,
7939 0b_0000000000_000000,
7940 0b_0011111111_000000,
7941 0b_0011111111_000000,
7942 0b_0011001100_000000,
7943 0b_0011001100_000000,
7944 0b_0011001100_000000,
7945 0b_0011001100_000000,
7947 0b_0011001100_000000,
7948 0b_0011001100_000000,
7949 0b_0011001100_000000,
7950 0b_0011001100_000000,
7951 0b_1111001111_000000,
7952 0b_1111001111_000000,
7953 0b_0011001100_000000,
7954 0b_0011001100_000000,
7955 0b_0011001100_000000,
7956 0b_0011001100_000000,
7958 0b_0000110000_000000,
7959 0b_0000110000_000000,
7960 0b_1111111111_000000,
7961 0b_1111111111_000000,
7962 0b_0000000000_000000,
7963 0b_0000000000_000000,
7964 0b_1111111111_000000,
7965 0b_1111111111_000000,
7966 0b_0000110000_000000,
7967 0b_0000110000_000000,
7969 0b_0000110000_000000,
7970 0b_0000110000_000000,
7971 0b_0000110000_000000,
7972 0b_0000110000_000000,
7973 0b_1111110000_000000,
7974 0b_1111110000_000000,
7975 0b_0000000000_000000,
7976 0b_0000000000_000000,
7977 0b_0000000000_000000,
7978 0b_0000000000_000000,
7980 0b_0000000000_000000,
7981 0b_0000000000_000000,
7982 0b_0000000000_000000,
7983 0b_0000000000_000000,
7984 0b_0000111111_000000,
7985 0b_0000111111_000000,
7986 0b_0000110000_000000,
7987 0b_0000110000_000000,
7988 0b_0000110000_000000,
7989 0b_0000110000_000000,
7991 0b_1111111111_000000,
7992 0b_1111111111_000000,
7993 0b_1111111111_000000,
7994 0b_1111111111_000000,
7995 0b_1111111111_000000,
7996 0b_1111111111_000000,
7997 0b_1111111111_000000,
7998 0b_1111111111_000000,
7999 0b_1111111111_000000,
8000 0b_1111111111_000000,
8002 0b_0000000000_000000,
8003 0b_0000000000_000000,
8004 0b_0000000000_000000,
8005 0b_0000000000_000000,
8006 0b_0000000000_000000,
8007 0b_1111111111_000000,
8008 0b_1111111111_000000,
8009 0b_1111111111_000000,
8010 0b_1111111111_000000,
8011 0b_1111111111_000000,
8013 0b_1111100000_000000,
8014 0b_1111100000_000000,
8015 0b_1111100000_000000,
8016 0b_1111100000_000000,
8017 0b_1111100000_000000,
8018 0b_1111100000_000000,
8019 0b_1111100000_000000,
8020 0b_1111100000_000000,
8021 0b_1111100000_000000,
8022 0b_1111100000_000000,
8024 0b_0000011111_000000,
8025 0b_0000011111_000000,
8026 0b_0000011111_000000,
8027 0b_0000011111_000000,
8028 0b_0000011111_000000,
8029 0b_0000011111_000000,
8030 0b_0000011111_000000,
8031 0b_0000011111_000000,
8032 0b_0000011111_000000,
8033 0b_0000011111_000000,
8035 0b_1111111111_000000,
8036 0b_1111111111_000000,
8037 0b_1111111111_000000,
8038 0b_1111111111_000000,
8039 0b_1111111111_000000,
8040 0b_0000000000_000000,
8041 0b_0000000000_000000,
8042 0b_0000000000_000000,
8043 0b_0000000000_000000,
8044 0b_0000000000_000000,
8046 0b_0000000000_000000,
8047 0b_0000000000_000000,
8048 0b_0000000000_000000,
8049 0b_0001110110_000000,
8050 0b_0011011100_000000,
8051 0b_0011001000_000000,
8052 0b_0011011100_000000,
8053 0b_0001110110_000000,
8054 0b_0000000000_000000,
8055 0b_0000000000_000000,
8057 0b_0000000000_000000,
8058 0b_0001111000_000000,
8059 0b_0011001100_000000,
8060 0b_0011001100_000000,
8061 0b_0011011000_000000,
8062 0b_0011001100_000000,
8063 0b_0011000110_000000,
8064 0b_0011011100_000000,
8065 0b_0011000000_000000,
8066 0b_0000000000_000000,
8068 0b_0000000000_000000,
8069 0b_0011111110_000000,
8070 0b_0011000110_000000,
8071 0b_0011000000_000000,
8072 0b_0011000000_000000,
8073 0b_0011000000_000000,
8074 0b_0011000000_000000,
8075 0b_0011000000_000000,
8076 0b_0000000000_000000,
8077 0b_0000000000_000000,
8079 0b_0000000000_000000,
8080 0b_0000000000_000000,
8081 0b_0111111110_000000,
8082 0b_0011001100_000000,
8083 0b_0011001100_000000,
8084 0b_0011001100_000000,
8085 0b_0011001100_000000,
8086 0b_0011001100_000000,
8087 0b_0000000000_000000,
8088 0b_0000000000_000000,
8090 0b_0000000000_000000,
8091 0b_0011111110_000000,
8092 0b_0001100000_000000,
8093 0b_0000110000_000000,
8094 0b_0000011000_000000,
8095 0b_0000110000_000000,
8096 0b_0001100000_000000,
8097 0b_0011111110_000000,
8098 0b_0000000000_000000,
8099 0b_0000000000_000000,
8101 0b_0000000000_000000,
8102 0b_0000000000_000000,
8103 0b_0000000000_000000,
8104 0b_0001111110_000000,
8105 0b_0011011000_000000,
8106 0b_0011001100_000000,
8107 0b_0011001100_000000,
8108 0b_0001111000_000000,
8109 0b_0000000000_000000,
8110 0b_0000000000_000000,
8112 0b_0000000000_000000,
8113 0b_0000000000_000000,
8114 0b_0000000000_000000,
8115 0b_0110001100_000000,
8116 0b_0110001100_000000,
8117 0b_0110011100_000000,
8118 0b_0111110110_000000,
8119 0b_0110000000_000000,
8120 0b_0110000000_000000,
8121 0b_0000000000_000000,
8123 0b_0000000000_000000,
8124 0b_0000000000_000000,
8125 0b_0000000000_000000,
8126 0b_0011111100_000000,
8127 0b_0000110000_000000,
8128 0b_0000110000_000000,
8129 0b_0000110000_000000,
8130 0b_0000011000_000000,
8131 0b_0000000000_000000,
8132 0b_0000000000_000000,
8134 0b_0000000000_000000,
8135 0b_0001111000_000000,
8136 0b_0000110000_000000,
8137 0b_0011111100_000000,
8138 0b_0110110110_000000,
8139 0b_0110110110_000000,
8140 0b_0011111100_000000,
8141 0b_0000110000_000000,
8142 0b_0001111000_000000,
8143 0b_0000000000_000000,
8145 0b_0000000000_000000,
8146 0b_0001111000_000000,
8147 0b_0011001100_000000,
8148 0b_0011001100_000000,
8149 0b_0011111100_000000,
8150 0b_0011001100_000000,
8151 0b_0011001100_000000,
8152 0b_0001111000_000000,
8153 0b_0000000000_000000,
8154 0b_0000000000_000000,
8156 0b_0000000000_000000,
8157 0b_0001111100_000000,
8158 0b_0011000110_000000,
8159 0b_0011000110_000000,
8160 0b_0011000110_000000,
8161 0b_0011000110_000000,
8162 0b_0001101100_000000,
8163 0b_0011101110_000000,
8164 0b_0000000000_000000,
8165 0b_0000000000_000000,
8167 0b_0000000000_000000,
8168 0b_0001111100_000000,
8169 0b_0000110000_000000,
8170 0b_0000011000_000000,
8171 0b_0001111100_000000,
8172 0b_0011000110_000000,
8173 0b_0011000110_000000,
8174 0b_0001111100_000000,
8175 0b_0000000000_000000,
8176 0b_0000000000_000000,
8178 0b_0000000000_000000,
8179 0b_0000000000_000000,
8180 0b_0000000000_000000,
8181 0b_0011101110_000000,
8182 0b_0110011011_000000,
8183 0b_0110010011_000000,
8184 0b_0110110011_000000,
8185 0b_0011101110_000000,
8186 0b_0000000000_000000,
8187 0b_0000000000_000000,
8189 0b_0000000000_000000,
8190 0b_0000000000_000000,
8191 0b_0000000110_000000,
8192 0b_0011111100_000000,
8193 0b_0110011110_000000,
8194 0b_0110110110_000000,
8195 0b_0111100110_000000,
8196 0b_0011111100_000000,
8197 0b_0110000000_000000,
8198 0b_0000000000_000000,
8200 0b_0000000000_000000,
8201 0b_0000000000_000000,
8202 0b_0000000000_000000,
8203 0b_0001111100_000000,
8204 0b_0011000000_000000,
8205 0b_0001111000_000000,
8206 0b_0011000000_000000,
8207 0b_0001111100_000000,
8208 0b_0000000000_000000,
8209 0b_0000000000_000000,
8211 0b_0000000000_000000,
8212 0b_0001111100_000000,
8213 0b_0011000110_000000,
8214 0b_0011000110_000000,
8215 0b_0011000110_000000,
8216 0b_0011000110_000000,
8217 0b_0011000110_000000,
8218 0b_0011000110_000000,
8219 0b_0000000000_000000,
8220 0b_0000000000_000000,
8222 0b_0000000000_000000,
8223 0b_0000000000_000000,
8224 0b_0011111100_000000,
8225 0b_0000000000_000000,
8226 0b_0011111100_000000,
8227 0b_0000000000_000000,
8228 0b_0011111100_000000,
8229 0b_0000000000_000000,
8230 0b_0000000000_000000,
8231 0b_0000000000_000000,
8233 0b_0000000000_000000,
8234 0b_0000110000_000000,
8235 0b_0000110000_000000,
8236 0b_0011111100_000000,
8237 0b_0000110000_000000,
8238 0b_0000110000_000000,
8239 0b_0000000000_000000,
8240 0b_0011111100_000000,
8241 0b_0000000000_000000,
8242 0b_0000000000_000000,
8244 0b_0000000000_000000,
8245 0b_0000011000_000000,
8246 0b_0000110000_000000,
8247 0b_0001100000_000000,
8248 0b_0000110000_000000,
8249 0b_0000011000_000000,
8250 0b_0000000000_000000,
8251 0b_0011111100_000000,
8252 0b_0000000000_000000,
8253 0b_0000000000_000000,
8255 0b_0000000000_000000,
8256 0b_0001100000_000000,
8257 0b_0000110000_000000,
8258 0b_0000011000_000000,
8259 0b_0000110000_000000,
8260 0b_0001100000_000000,
8261 0b_0000000000_000000,
8262 0b_0011111100_000000,
8263 0b_0000000000_000000,
8264 0b_0000000000_000000,
8266 0b_0000000000_000000,
8267 0b_0000011100_000000,
8268 0b_0000110110_000000,
8269 0b_0000110110_000000,
8270 0b_0000110000_000000,
8271 0b_0000110000_000000,
8272 0b_0000110000_000000,
8273 0b_0000110000_000000,
8274 0b_0000110000_000000,
8275 0b_0000110000_000000,
8277 0b_0000110000_000000,
8278 0b_0000110000_000000,
8279 0b_0000110000_000000,
8280 0b_0000110000_000000,
8281 0b_0000110000_000000,
8282 0b_0000110000_000000,
8283 0b_0110110000_000000,
8284 0b_0110110000_000000,
8285 0b_0011100000_000000,
8286 0b_0000000000_000000,
8288 0b_0000000000_000000,
8289 0b_0000000000_000000,
8290 0b_0000110000_000000,
8291 0b_0000000000_000000,
8292 0b_0011111100_000000,
8293 0b_0000000000_000000,
8294 0b_0000110000_000000,
8295 0b_0000000000_000000,
8296 0b_0000000000_000000,
8297 0b_0000000000_000000,
8299 0b_0000000000_000000,
8300 0b_0011100000_000000,
8301 0b_0110110110_000000,
8302 0b_0000011100_000000,
8303 0b_0000000000_000000,
8304 0b_0011100000_000000,
8305 0b_0110110110_000000,
8306 0b_0000011100_000000,
8307 0b_0000000000_000000,
8308 0b_0000000000_000000,
8310 0b_0000000000_000000,
8311 0b_0000111000_000000,
8312 0b_0001101100_000000,
8313 0b_0001101100_000000,
8314 0b_0000111000_000000,
8315 0b_0000000000_000000,
8316 0b_0000000000_000000,
8317 0b_0000000000_000000,
8318 0b_0000000000_000000,
8319 0b_0000000000_000000,
8321 0b_0000000000_000000,
8322 0b_0000000000_000000,
8323 0b_0000000000_000000,
8324 0b_0000110000_000000,
8325 0b_0000110000_000000,
8326 0b_0000000000_000000,
8327 0b_0000000000_000000,
8328 0b_0000000000_000000,
8329 0b_0000000000_000000,
8330 0b_0000000000_000000,
8332 0b_0000000000_000000,
8333 0b_0000000000_000000,
8334 0b_0000000000_000000,
8335 0b_0000000000_000000,
8336 0b_0000110000_000000,
8337 0b_0000000000_000000,
8338 0b_0000000000_000000,
8339 0b_0000000000_000000,
8340 0b_0000000000_000000,
8341 0b_0000000000_000000,
8343 0b_0000000000_000000,
8344 0b_0000011111_000000,
8345 0b_0000011000_000000,
8346 0b_0000011000_000000,
8347 0b_0110011000_000000,
8348 0b_0011011000_000000,
8349 0b_0001111000_000000,
8350 0b_0000111000_000000,
8351 0b_0000011000_000000,
8352 0b_0000001000_000000,
8354 0b_0000000000_000000,
8355 0b_0011111000_000000,
8356 0b_0011001100_000000,
8357 0b_0011001100_000000,
8358 0b_0011001100_000000,
8359 0b_0011001100_000000,
8360 0b_0000000000_000000,
8361 0b_0000000000_000000,
8362 0b_0000000000_000000,
8363 0b_0000000000_000000,
8365 0b_0000000000_000000,
8366 0b_0001111000_000000,
8367 0b_0000001100_000000,
8368 0b_0000111000_000000,
8369 0b_0001100000_000000,
8370 0b_0001111100_000000,
8371 0b_0000000000_000000,
8372 0b_0000000000_000000,
8373 0b_0000000000_000000,
8374 0b_0000000000_000000,
8376 0b_0000000000_000000,
8377 0b_0000000000_000000,
8378 0b_0000000000_000000,
8379 0b_0001111000_000000,
8380 0b_0001111000_000000,
8381 0b_0001111000_000000,
8382 0b_0001111000_000000,
8383 0b_0000000000_000000,
8384 0b_0000000000_000000,
8385 0b_0000000000_000000,
8387 0b_0000000000_000000,
8388 0b_0000000000_000000,
8389 0b_0000000000_000000,
8390 0b_0000000000_000000,
8391 0b_0000000000_000000,
8392 0b_0000000000_000000,
8393 0b_0000000000_000000,
8394 0b_0000000000_000000,
8395 0b_0000000000_000000,
8396 0b_0000000000_000000,