#![no_implicit_prelude]
extern crate core;
use core::clone::Clone;
use core::cmp::{Eq, PartialEq};
use core::convert::From;
use core::intrinsics::floorf32;
use core::marker::Copy;
static PATTERN: [u8; 16] = [
0x0, 0x8, 0x2, 0xA, 0xC, 0x4, 0xE, 0x6, 0x3, 0xB, 0x1, 0x9, 0xF, 0x7, 0xD, 0x5,
];
static MAP: [[u8; 16]; 512] = [
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0],
[3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0],
[3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0],
[3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[2, 2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[2, 2, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[2, 2, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0],
[2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0],
[2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0],
[2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[7, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[2, 2, 2, 2, 2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[7, 2, 2, 2, 2, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0],
[2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0],
[2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0],
[2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[7, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[1, 1, 7, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[2, 2, 2, 2, 2, 2, 2, 3, 3, 0, 0, 0, 0, 0, 0, 0],
[2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 0, 0, 0, 0, 0],
[7, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 0, 0, 0],
[2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[7, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[1, 1, 1, 1, 7, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0],
[2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 0, 0, 0, 0, 0],
[2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 0, 0],
[2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3],
[1, 7, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3],
[1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3],
[1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3],
[1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 3, 3, 3, 3, 3, 3],
[2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0],
[2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 0, 0, 0],
[2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3],
[7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3],
[1, 1, 7, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3],
[1, 1, 1, 1, 7, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3],
[1, 1, 1, 1, 1, 7, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3],
[1, 1, 1, 1, 1, 1, 1, 7, 2, 2, 2, 3, 3, 3, 3, 3],
[2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0],
[2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3],
[7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3],
[1, 1, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3],
[1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3],
[1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 6, 4, 3, 3, 3],
[1, 1, 1, 1, 1, 1, 1, 7, 2, 2, 2, 3, 3, 3, 3, 0],
[1, 1, 1, 1, 1, 1, 1, 5, 5, 5, 7, 2, 2, 2, 3, 3],
[2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
[1, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
[1, 1, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3],
[1, 1, 1, 1, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3],
[1, 1, 1, 1, 1, 7, 2, 2, 2, 2, 2, 2, 6, 4, 4, 3],
[1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 4, 4, 3, 3],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 7, 2, 2, 3, 0, 0],
[1, 1, 1, 1, 1, 5, 5, 7, 7, 7, 2, 2, 6, 6, 6, 3],
[4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[4, 4, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[4, 4, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[4, 4, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0],
[4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0],
[4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0],
[4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[7, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[2, 2, 6, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[7, 7, 2, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[2, 2, 6, 4, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0],
[2, 2, 6, 4, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0],
[7, 7, 7, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0],
[7, 7, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0],
[7, 7, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0],
[7, 7, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[2, 2, 2, 2, 2, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[2, 2, 2, 2, 2, 4, 4, 3, 3, 0, 0, 0, 0, 0, 0, 0],
[7, 7, 7, 2, 2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[7, 7, 2, 2, 2, 4, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0],
[2, 2, 2, 2, 2, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[7, 7, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0],
[7, 7, 7, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[1, 1, 7, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[2, 2, 2, 2, 2, 2, 6, 4, 0, 0, 0, 0, 0, 0, 0, 0],
[7, 7, 2, 2, 2, 2, 2, 6, 3, 0, 0, 0, 0, 0, 0, 0],
[7, 7, 7, 2, 2, 2, 2, 2, 3, 3, 0, 0, 0, 0, 0, 0],
[7, 7, 7, 2, 2, 2, 2, 2, 3, 3, 3, 3, 0, 0, 0, 0],
[7, 7, 7, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 0, 0],
[7, 7, 7, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[1, 1, 7, 7, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[1, 1, 1, 7, 7, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[5, 2, 2, 2, 2, 2, 2, 2, 2, 6, 0, 0, 0, 0, 0, 0],
[7, 7, 2, 2, 2, 2, 2, 2, 2, 6, 3, 0, 0, 0, 0, 0],
[7, 2, 2, 2, 2, 2, 2, 2, 2, 6, 3, 3, 3, 3, 0, 0],
[7, 7, 7, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 0],
[1, 1, 7, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 0],
[1, 1, 1, 7, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3],
[1, 1, 1, 1, 7, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3],
[1, 1, 1, 1, 1, 1, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3],
[5, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0],
[5, 7, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 0, 0, 0],
[7, 7, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 0, 0],
[7, 7, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3],
[1, 1, 1, 7, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3],
[1, 1, 1, 1, 7, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3],
[1, 1, 1, 1, 1, 1, 7, 2, 2, 2, 3, 3, 3, 3, 3, 3],
[1, 1, 1, 1, 1, 1, 1, 7, 7, 2, 3, 3, 3, 3, 3, 0],
[5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 0, 0],
[7, 7, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0],
[7, 7, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3],
[1, 1, 1, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3],
[1, 1, 1, 1, 7, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3],
[1, 1, 1, 1, 1, 1, 7, 2, 2, 2, 2, 2, 2, 3, 3, 3],
[1, 1, 1, 1, 1, 1, 1, 7, 7, 2, 2, 2, 6, 3, 3, 3],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 2, 2, 2, 3, 3, 3],
[5, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
[1, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
[1, 1, 1, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
[1, 1, 1, 1, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3],
[1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3],
[1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 2, 2, 2, 2, 4, 3],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 2, 2, 6, 6, 4, 3],
[1, 1, 1, 1, 1, 1, 1, 5, 5, 5, 5, 5, 7, 2, 3, 3],
[4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[4, 4, 4, 4, 4, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[4, 4, 4, 4, 4, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0],
[4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0],
[4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0],
[4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[7, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[7, 7, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[6, 6, 6, 6, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[6, 6, 6, 6, 4, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[7, 7, 6, 6, 4, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0],
[7, 7, 7, 4, 4, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0],
[6, 6, 6, 6, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0],
[6, 6, 6, 6, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[7, 7, 7, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[7, 7, 7, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[2, 2, 2, 2, 6, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0],
[7, 7, 7, 2, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[7, 7, 7, 7, 2, 2, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0],
[7, 7, 7, 7, 2, 6, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0],
[7, 7, 7, 2, 2, 6, 4, 3, 3, 3, 3, 3, 3, 3, 0, 0],
[7, 7, 7, 7, 7, 2, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0],
[7, 7, 7, 7, 7, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0],
[1, 1, 7, 7, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[5, 2, 2, 2, 2, 6, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0],
[5, 2, 2, 2, 2, 6, 6, 6, 6, 3, 3, 0, 0, 0, 0, 0],
[7, 7, 7, 7, 2, 2, 2, 2, 6, 3, 0, 0, 0, 0, 0, 0],
[7, 2, 2, 2, 2, 6, 6, 6, 6, 3, 3, 3, 3, 3, 3, 0],
[7, 7, 7, 7, 7, 2, 2, 2, 3, 3, 3, 3, 3, 0, 0, 0],
[7, 7, 7, 7, 7, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 0],
[1, 1, 7, 7, 7, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[1, 1, 1, 1, 7, 7, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[2, 2, 2, 2, 2, 2, 2, 6, 6, 6, 6, 4, 0, 0, 0, 0],
[2, 2, 2, 2, 2, 2, 2, 6, 6, 6, 6, 4, 3, 3, 0, 0],
[7, 7, 7, 7, 2, 2, 2, 2, 2, 2, 4, 3, 0, 0, 0, 0],
[5, 7, 7, 7, 7, 2, 2, 2, 2, 2, 3, 3, 3, 3, 0, 0],
[7, 7, 7, 7, 7, 7, 2, 2, 2, 2, 2, 3, 3, 3, 3, 0],
[1, 1, 7, 7, 7, 7, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3],
[1, 1, 1, 1, 1, 7, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3],
[1, 1, 1, 1, 1, 1, 7, 2, 3, 3, 3, 3, 3, 3, 3, 3],
[5, 5, 5, 5, 2, 2, 2, 2, 2, 2, 2, 6, 0, 0, 0, 0],
[5, 5, 5, 5, 2, 2, 2, 2, 2, 2, 2, 6, 3, 3, 0, 0],
[7, 7, 7, 7, 7, 7, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0],
[1, 7, 7, 7, 7, 7, 2, 2, 2, 2, 2, 2, 2, 3, 3, 0],
[1, 1, 7, 7, 7, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3],
[1, 1, 1, 1, 1, 7, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3],
[1, 1, 1, 1, 1, 1, 7, 2, 2, 2, 3, 3, 3, 3, 3, 3],
[1, 1, 1, 1, 1, 1, 1, 1, 7, 2, 3, 3, 3, 3, 3, 3],
[2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 6, 6, 6, 6],
[7, 7, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 6],
[1, 7, 7, 7, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0],
[1, 1, 7, 7, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3],
[1, 1, 1, 1, 7, 7, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3],
[1, 1, 1, 1, 1, 1, 7, 7, 2, 2, 2, 2, 2, 3, 3, 3],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 2, 2, 2, 3, 3, 3],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 7, 2, 2, 3, 3, 3],
[5, 5, 5, 5, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
[1, 5, 5, 5, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
[1, 1, 1, 1, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
[1, 1, 1, 1, 1, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
[1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3],
[1, 1, 1, 1, 1, 1, 1, 1, 7, 2, 2, 2, 2, 2, 2, 3],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 2, 2, 2, 3, 0],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 7, 2, 2, 2, 3],
[4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[4, 4, 4, 4, 4, 4, 4, 3, 3, 0, 0, 0, 0, 0, 0, 0],
[4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 0, 0, 0, 0, 0],
[4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 0, 0, 0],
[4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[7, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[7, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[1, 7, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[6, 6, 6, 6, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[6, 6, 6, 6, 4, 4, 4, 3, 3, 0, 0, 0, 0, 0, 0, 0],
[7, 7, 7, 6, 4, 4, 4, 3, 3, 0, 0, 0, 0, 0, 0, 0],
[7, 7, 7, 6, 4, 4, 4, 3, 3, 3, 3, 0, 0, 0, 0, 0],
[7, 7, 7, 6, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 0, 0],
[7, 7, 7, 6, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[7, 7, 7, 7, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[7, 7, 7, 7, 7, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[2, 2, 6, 6, 6, 6, 6, 4, 4, 0, 0, 0, 0, 0, 0, 0],
[7, 7, 2, 6, 6, 6, 6, 4, 3, 0, 0, 0, 0, 0, 0, 0],
[7, 7, 7, 6, 6, 6, 6, 3, 3, 0, 0, 0, 0, 0, 0, 0],
[7, 7, 7, 7, 7, 7, 6, 4, 3, 3, 0, 0, 0, 0, 0, 0],
[7, 7, 7, 6, 6, 6, 6, 3, 3, 3, 3, 3, 3, 3, 0, 0],
[7, 7, 7, 7, 7, 7, 7, 4, 3, 3, 3, 3, 3, 3, 0, 0],
[7, 7, 7, 7, 7, 7, 7, 4, 3, 3, 3, 3, 3, 3, 3, 3],
[7, 7, 7, 7, 7, 7, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[2, 2, 2, 2, 2, 6, 6, 6, 6, 4, 4, 4, 0, 0, 0, 0],
[5, 7, 7, 2, 2, 2, 6, 6, 4, 4, 3, 0, 0, 0, 0, 0],
[2, 2, 2, 2, 6, 6, 6, 6, 6, 4, 4, 3, 3, 3, 3, 3],
[5, 7, 7, 7, 7, 7, 7, 2, 6, 3, 3, 0, 0, 0, 0, 0],
[7, 7, 7, 7, 7, 7, 7, 2, 6, 3, 3, 3, 3, 0, 0, 0],
[7, 7, 7, 7, 7, 7, 7, 2, 6, 3, 3, 3, 3, 3, 3, 0],
[1, 7, 7, 7, 7, 7, 7, 7, 2, 3, 3, 3, 3, 3, 3, 3],
[1, 1, 1, 1, 7, 7, 7, 7, 3, 3, 3, 3, 3, 3, 3, 3],
[5, 5, 5, 2, 2, 2, 2, 6, 6, 6, 6, 0, 0, 0, 0, 0],
[7, 7, 7, 2, 2, 2, 2, 2, 2, 6, 6, 6, 4, 0, 0, 0],
[5, 7, 7, 7, 7, 7, 2, 2, 2, 2, 6, 4, 3, 0, 0, 0],
[5, 5, 7, 7, 7, 7, 7, 7, 2, 2, 2, 3, 3, 0, 0, 0],
[1, 1, 7, 7, 7, 7, 7, 2, 2, 2, 6, 3, 3, 3, 0, 0],
[1, 7, 7, 7, 7, 7, 7, 7, 2, 2, 2, 3, 3, 3, 3, 3],
[1, 1, 1, 1, 1, 7, 7, 7, 2, 2, 3, 3, 3, 3, 3, 3],
[1, 1, 1, 1, 1, 1, 1, 7, 2, 3, 3, 3, 3, 3, 3, 3],
[5, 5, 2, 2, 2, 2, 2, 2, 2, 6, 6, 6, 6, 6, 0, 0],
[5, 5, 7, 7, 7, 2, 2, 2, 2, 2, 2, 6, 6, 0, 0, 0],
[5, 7, 7, 7, 7, 2, 2, 2, 2, 2, 2, 2, 6, 4, 3, 0],
[1, 1, 1, 7, 7, 7, 7, 7, 2, 2, 2, 2, 2, 0, 0, 0],
[1, 5, 7, 7, 7, 7, 7, 7, 2, 2, 2, 2, 2, 3, 3, 3],
[1, 1, 1, 1, 7, 7, 7, 7, 2, 2, 2, 2, 3, 3, 3, 3],
[1, 1, 1, 1, 1, 1, 7, 7, 2, 2, 2, 3, 3, 3, 3, 3],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 2, 3, 3, 3, 3, 3],
[5, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 6, 6, 6, 6],
[5, 7, 7, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 6, 6],
[5, 7, 7, 7, 7, 7, 7, 2, 2, 2, 2, 2, 2, 2, 2, 6],
[7, 7, 7, 7, 7, 7, 7, 7, 2, 2, 2, 2, 2, 2, 2, 2],
[1, 1, 1, 1, 1, 7, 7, 2, 2, 2, 2, 2, 2, 2, 3, 3],
[1, 1, 1, 1, 1, 1, 1, 7, 2, 2, 2, 2, 2, 3, 3, 3],
[1, 1, 1, 1, 1, 1, 1, 1, 7, 7, 2, 2, 2, 3, 3, 3],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 2, 3, 3, 3],
[5, 5, 5, 5, 5, 5, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2],
[1, 5, 5, 5, 5, 5, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2],
[1, 1, 1, 1, 5, 5, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2],
[1, 1, 1, 1, 1, 1, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2],
[1, 1, 1, 1, 1, 1, 1, 7, 2, 2, 2, 2, 2, 2, 2, 2],
[1, 1, 1, 1, 1, 1, 1, 1, 7, 2, 2, 2, 2, 2, 2, 3],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 2, 2, 2, 3],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 2, 2, 3],
[4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0],
[4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 0, 0, 0, 0, 0],
[4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 0, 0],
[4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3],
[7, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3],
[7, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3],
[1, 7, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3],
[1, 7, 7, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3],
[6, 6, 6, 6, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0],
[6, 6, 6, 6, 4, 4, 4, 4, 4, 3, 3, 0, 0, 0, 0, 0],
[7, 7, 7, 6, 4, 4, 4, 4, 4, 4, 3, 3, 0, 0, 0, 0],
[7, 6, 6, 6, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 0],
[7, 7, 7, 6, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3],
[7, 7, 7, 6, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3],
[7, 7, 7, 7, 7, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3],
[1, 7, 7, 7, 7, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3],
[6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0],
[6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 3, 0, 0, 0, 0, 0],
[6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 3, 3, 3, 3, 0, 0],
[6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 3, 3, 3, 3, 3, 3],
[7, 7, 7, 7, 7, 6, 6, 6, 4, 4, 3, 3, 3, 3, 3, 0],
[7, 7, 7, 7, 7, 7, 7, 4, 4, 4, 3, 3, 3, 3, 3, 3],
[7, 7, 7, 7, 7, 7, 7, 4, 4, 3, 3, 3, 3, 3, 3, 3],
[1, 7, 7, 7, 7, 7, 7, 4, 4, 3, 3, 3, 3, 3, 3, 3],
[5, 5, 5, 5, 6, 6, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0],
[5, 5, 7, 7, 7, 6, 6, 6, 6, 6, 0, 0, 0, 0, 0, 0],
[5, 7, 7, 7, 7, 7, 2, 6, 6, 6, 4, 3, 0, 0, 0, 0],
[5, 7, 7, 7, 7, 7, 7, 6, 6, 6, 3, 3, 0, 0, 0, 0],
[7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 3, 3, 3, 3, 0, 0],
[7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 3, 3, 3, 3, 3, 3],
[7, 7, 7, 7, 7, 7, 7, 7, 7, 4, 3, 3, 3, 3, 3, 3],
[1, 1, 1, 7, 7, 7, 7, 7, 7, 3, 3, 3, 3, 3, 3, 3],
[2, 2, 2, 2, 2, 2, 2, 6, 6, 6, 6, 6, 4, 4, 4, 4],
[5, 5, 5, 7, 7, 7, 2, 2, 2, 6, 6, 4, 4, 0, 0, 0],
[5, 7, 7, 7, 7, 7, 2, 2, 2, 6, 6, 6, 4, 0, 0, 0],
[5, 5, 5, 7, 7, 7, 7, 7, 7, 2, 6, 3, 3, 0, 0, 0],
[1, 1, 1, 7, 7, 7, 7, 7, 7, 2, 6, 3, 0, 0, 0, 0],
[1, 1, 1, 5, 7, 7, 7, 7, 7, 7, 2, 3, 3, 3, 3, 0],
[1, 1, 1, 1, 7, 7, 7, 7, 7, 7, 2, 3, 3, 3, 3, 3],
[1, 1, 1, 1, 1, 1, 1, 7, 7, 7, 3, 3, 3, 3, 3, 3],
[2, 2, 2, 2, 2, 2, 2, 6, 6, 6, 6, 6, 6, 6, 6, 6],
[7, 7, 7, 2, 2, 2, 2, 2, 2, 6, 6, 6, 6, 6, 6, 6],
[1, 7, 7, 7, 7, 7, 2, 2, 2, 2, 2, 6, 6, 6, 6, 0],
[1, 7, 7, 7, 7, 7, 7, 7, 2, 2, 2, 2, 6, 6, 0, 0],
[1, 1, 5, 7, 7, 7, 7, 7, 7, 7, 2, 2, 2, 3, 3, 0],
[1, 1, 1, 7, 7, 7, 7, 7, 7, 7, 2, 2, 2, 3, 3, 3],
[1, 1, 1, 1, 1, 1, 1, 7, 7, 7, 2, 2, 3, 3, 3, 3],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 7, 3, 3, 3, 3, 3],
[5, 5, 5, 5, 5, 2, 2, 2, 2, 2, 2, 2, 6, 6, 6, 6],
[5, 5, 5, 5, 7, 7, 7, 2, 2, 2, 2, 2, 2, 6, 6, 6],
[1, 5, 5, 7, 7, 7, 7, 7, 2, 2, 2, 2, 2, 2, 6, 6],
[1, 5, 5, 7, 7, 7, 7, 7, 7, 7, 2, 2, 2, 2, 2, 2],
[1, 1, 1, 7, 7, 7, 7, 7, 7, 7, 7, 2, 2, 2, 2, 2],
[1, 1, 1, 1, 1, 1, 7, 7, 7, 7, 2, 2, 2, 2, 3, 3],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 7, 2, 2, 2, 3, 3],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 7, 2, 3, 3, 3],
[5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 2, 2, 2, 2, 2],
[1, 1, 5, 5, 5, 5, 5, 5, 5, 2, 2, 2, 2, 2, 2, 2],
[1, 1, 1, 1, 5, 5, 5, 5, 7, 2, 2, 2, 2, 2, 2, 2],
[1, 1, 1, 1, 1, 1, 5, 5, 7, 2, 2, 2, 2, 2, 2, 2],
[1, 1, 1, 1, 1, 1, 1, 1, 7, 2, 2, 2, 2, 2, 2, 2],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 2, 2, 2, 2, 2],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 3],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 2, 3],
[4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0],
[4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 0, 0, 0],
[4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3],
[7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3],
[7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3],
[7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3],
[1, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3],
[1, 1, 7, 2, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3],
[6, 6, 6, 6, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0],
[6, 6, 6, 6, 4, 4, 4, 4, 4, 4, 4, 3, 3, 0, 0, 0],
[6, 6, 6, 6, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3],
[7, 7, 6, 6, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3],
[7, 7, 7, 7, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3],
[7, 7, 7, 7, 7, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3],
[1, 1, 7, 7, 7, 6, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3],
[1, 1, 1, 7, 7, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3],
[6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 4, 0, 0, 0, 0, 0],
[7, 7, 7, 6, 6, 6, 6, 6, 4, 4, 4, 4, 0, 0, 0, 0],
[7, 7, 7, 7, 6, 6, 6, 4, 4, 4, 4, 4, 3, 0, 0, 0],
[7, 7, 7, 7, 7, 6, 6, 6, 4, 4, 4, 4, 3, 3, 3, 0],
[7, 7, 7, 7, 7, 7, 6, 4, 4, 4, 4, 4, 3, 3, 3, 3],
[7, 7, 7, 7, 7, 7, 7, 6, 4, 4, 4, 4, 3, 3, 3, 3],
[1, 1, 1, 7, 7, 7, 7, 4, 4, 4, 4, 3, 3, 3, 3, 3],
[1, 1, 1, 7, 7, 7, 7, 4, 4, 4, 4, 3, 3, 3, 3, 3],
[5, 5, 2, 2, 6, 6, 6, 6, 6, 4, 4, 4, 4, 0, 0, 0],
[5, 5, 7, 7, 7, 6, 6, 6, 6, 6, 4, 4, 0, 0, 0, 0],
[5, 7, 7, 7, 7, 7, 7, 6, 6, 6, 4, 4, 0, 0, 0, 0],
[5, 7, 7, 7, 7, 7, 7, 7, 6, 4, 4, 4, 3, 0, 0, 0],
[7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 4, 4, 3, 3, 3, 0],
[1, 7, 7, 7, 7, 7, 7, 7, 6, 6, 4, 4, 3, 3, 3, 3],
[1, 1, 1, 7, 7, 7, 7, 7, 7, 4, 4, 3, 3, 3, 3, 3],
[1, 1, 1, 1, 7, 7, 7, 7, 7, 7, 4, 3, 3, 3, 3, 3],
[5, 5, 5, 5, 2, 2, 2, 6, 6, 6, 6, 6, 4, 4, 0, 0],
[5, 7, 7, 7, 2, 2, 2, 6, 6, 6, 6, 6, 6, 4, 4, 0],
[5, 7, 7, 7, 7, 7, 7, 2, 2, 6, 6, 6, 4, 4, 0, 0],
[5, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 0, 0, 0],
[1, 5, 5, 7, 7, 7, 7, 7, 7, 7, 6, 6, 3, 3, 3, 0],
[1, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 3, 3, 3],
[1, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 3, 3],
[1, 1, 1, 1, 7, 7, 7, 7, 7, 7, 7, 7, 3, 3, 3, 3],
[5, 5, 2, 2, 2, 2, 2, 6, 6, 6, 6, 6, 6, 6, 6, 6],
[5, 5, 7, 7, 7, 2, 2, 2, 2, 6, 6, 6, 6, 6, 6, 6],
[5, 7, 7, 7, 7, 7, 7, 2, 2, 2, 2, 6, 6, 6, 6, 6],
[7, 7, 7, 7, 7, 7, 7, 7, 7, 2, 2, 2, 6, 6, 6, 6],
[7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 2, 2, 2, 6, 6],
[1, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 2, 3, 3],
[1, 1, 1, 1, 1, 7, 7, 7, 7, 7, 7, 7, 7, 2, 3, 3],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 7, 7, 3, 3, 3, 3],
[5, 5, 5, 5, 5, 5, 5, 2, 2, 2, 2, 2, 6, 6, 6, 6],
[5, 5, 5, 5, 5, 5, 7, 7, 7, 2, 2, 2, 2, 6, 6, 6],
[1, 5, 5, 5, 5, 5, 7, 7, 7, 7, 2, 2, 2, 2, 6, 6],
[1, 5, 5, 5, 5, 7, 7, 7, 7, 7, 7, 7, 2, 2, 2, 2],
[1, 1, 1, 5, 5, 7, 7, 7, 7, 7, 7, 7, 7, 2, 2, 2],
[1, 1, 1, 1, 1, 7, 7, 7, 7, 7, 7, 7, 7, 2, 2, 2],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 7, 7, 7, 2, 2, 3],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 7, 7, 3, 3],
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 2, 2, 2],
[1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 2, 2, 2, 2],
[1, 1, 1, 1, 5, 5, 5, 5, 5, 5, 5, 7, 2, 2, 2, 2],
[1, 1, 1, 1, 1, 1, 5, 5, 5, 5, 5, 7, 2, 2, 2, 2],
[1, 1, 1, 1, 1, 1, 1, 1, 5, 5, 5, 7, 2, 2, 2, 2],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 2, 2, 2, 2],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 2, 2, 2],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 2, 3],
[4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0],
[4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3],
[7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3],
[7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3],
[7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3],
[1, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3],
[1, 1, 7, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3],
[1, 1, 7, 2, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 0],
[6, 6, 6, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0],
[6, 6, 6, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3],
[7, 7, 7, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3],
[7, 7, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3],
[7, 7, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3],
[1, 1, 7, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3],
[1, 1, 1, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3],
[1, 1, 1, 7, 7, 2, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3],
[6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 4, 4, 4, 4, 0, 0],
[6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 4, 4, 4, 4, 3, 3],
[7, 7, 7, 7, 6, 6, 6, 4, 4, 4, 4, 4, 4, 4, 3, 0],
[7, 7, 7, 7, 7, 6, 6, 6, 4, 4, 4, 4, 4, 4, 3, 3],
[7, 7, 7, 7, 7, 7, 7, 6, 4, 4, 4, 4, 4, 4, 3, 3],
[1, 7, 7, 7, 7, 7, 7, 7, 4, 4, 4, 4, 4, 4, 3, 3],
[1, 1, 1, 7, 7, 7, 7, 4, 4, 4, 4, 4, 4, 3, 3, 3],
[1, 1, 1, 1, 7, 7, 7, 7, 4, 4, 4, 4, 4, 3, 3, 3],
[6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 0],
[6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 3],
[7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 4, 4, 4, 3, 0],
[7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 4, 4, 4, 4, 4, 0],
[7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 4, 4, 4, 4, 3],
[1, 1, 7, 7, 7, 7, 7, 7, 7, 7, 4, 4, 4, 4, 3, 3],
[1, 1, 1, 1, 7, 7, 7, 7, 7, 7, 4, 4, 4, 4, 3, 3],
[1, 1, 1, 1, 7, 7, 7, 7, 7, 7, 4, 4, 4, 3, 3, 3],
[2, 2, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6],
[5, 5, 7, 7, 7, 2, 6, 6, 6, 6, 6, 6, 6, 6, 4, 0],
[5, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 0],
[1, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 4, 0],
[1, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 4, 4, 3],
[1, 1, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 4, 4, 3],
[1, 1, 1, 7, 7, 7, 7, 7, 7, 7, 7, 7, 4, 4, 3, 3],
[1, 1, 1, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 4, 3, 3],
[5, 5, 5, 5, 5, 2, 2, 6, 6, 6, 6, 6, 6, 6, 6, 6],
[5, 5, 5, 5, 7, 7, 7, 2, 2, 6, 6, 6, 6, 6, 6, 6],
[5, 5, 5, 7, 7, 7, 7, 7, 7, 2, 6, 6, 6, 6, 6, 6],
[5, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 2, 6, 6, 6, 6],
[5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 2, 6, 6],
[5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7],
[1, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7],
[1, 1, 1, 1, 1, 1, 7, 7, 7, 7, 7, 7, 7, 7, 3, 3],
[5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 6, 6, 6, 6, 6],
[1, 5, 5, 5, 5, 5, 5, 5, 5, 7, 7, 2, 2, 6, 6, 6],
[1, 5, 5, 5, 5, 5, 5, 5, 7, 7, 7, 7, 2, 2, 6, 6],
[1, 5, 5, 5, 5, 5, 5, 7, 7, 7, 7, 7, 7, 7, 7, 2],
[1, 1, 1, 5, 5, 5, 5, 7, 7, 7, 7, 7, 7, 7, 7, 2],
[1, 1, 1, 1, 1, 5, 5, 7, 7, 7, 7, 7, 7, 7, 7, 2],
[1, 1, 1, 1, 1, 1, 1, 1, 7, 7, 7, 7, 7, 7, 7, 2],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 7, 7, 3, 3],
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 2],
[1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 2, 2],
[1, 1, 1, 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 2, 2],
[1, 1, 1, 1, 1, 1, 5, 5, 5, 5, 5, 5, 5, 7, 2, 2],
[1, 1, 1, 1, 1, 1, 1, 1, 5, 5, 5, 5, 5, 7, 2, 2],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 5, 7, 2, 2],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 2, 2],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 2],
[4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
[7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3],
[7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3],
[1, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3],
[1, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3],
[1, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3],
[1, 1, 1, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3],
[1, 1, 7, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 0],
[6, 6, 6, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
[7, 7, 7, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
[7, 7, 7, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3],
[1, 7, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3],
[1, 1, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3],
[1, 1, 1, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3],
[1, 1, 1, 1, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3],
[1, 1, 1, 7, 7, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 3],
[6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 4, 4, 4, 4, 4, 4],
[7, 7, 6, 6, 6, 6, 6, 6, 4, 4, 4, 4, 4, 4, 4, 4],
[7, 7, 7, 7, 7, 6, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4],
[7, 7, 7, 7, 7, 7, 7, 6, 4, 4, 4, 4, 4, 4, 4, 4],
[1, 7, 7, 7, 7, 7, 7, 6, 4, 4, 4, 4, 4, 4, 4, 4],
[1, 1, 1, 7, 7, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 3],
[1, 1, 1, 1, 1, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 3],
[1, 1, 1, 1, 1, 7, 7, 2, 4, 4, 4, 4, 4, 4, 4, 3],
[6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 4],
[7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 4, 4],
[1, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 4, 4, 4, 4, 4],
[1, 1, 7, 7, 7, 7, 7, 7, 6, 6, 4, 4, 4, 4, 4, 4],
[1, 1, 7, 7, 7, 7, 7, 7, 7, 4, 4, 4, 4, 4, 4, 4],
[1, 1, 1, 1, 7, 7, 7, 7, 7, 7, 4, 4, 4, 4, 4, 4],
[1, 1, 1, 1, 1, 7, 7, 7, 7, 7, 4, 4, 4, 4, 4, 3],
[1, 1, 1, 1, 1, 1, 1, 7, 7, 7, 4, 4, 4, 4, 4, 3],
[5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6],
[5, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6],
[1, 5, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4],
[1, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 4],
[1, 1, 1, 7, 7, 7, 7, 7, 7, 7, 6, 6, 4, 4, 4, 4],
[1, 1, 1, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 4, 4, 4],
[1, 1, 1, 1, 1, 7, 7, 7, 7, 7, 7, 7, 4, 4, 4, 4],
[1, 1, 1, 1, 1, 7, 7, 7, 7, 7, 7, 7, 7, 4, 4, 4],
[5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6],
[5, 5, 5, 5, 5, 5, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6],
[1, 1, 5, 5, 5, 5, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6],
[1, 1, 1, 5, 5, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6],
[1, 1, 1, 1, 1, 1, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6],
[1, 1, 1, 1, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6],
[1, 1, 1, 1, 1, 7, 7, 7, 7, 7, 7, 7, 7, 7, 4, 4],
[1, 1, 1, 1, 1, 1, 1, 7, 7, 7, 7, 7, 7, 7, 7, 4],
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6],
[1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 6, 6, 6, 6],
[1, 1, 1, 5, 5, 5, 5, 5, 5, 5, 5, 7, 7, 6, 6, 6],
[1, 1, 1, 1, 5, 5, 5, 5, 5, 5, 7, 7, 7, 7, 6, 6],
[1, 1, 1, 1, 1, 1, 5, 5, 5, 5, 7, 7, 7, 7, 6, 6],
[1, 1, 1, 1, 1, 1, 1, 5, 5, 7, 7, 7, 7, 7, 6, 6],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 7, 7, 7, 7, 7, 7],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 7, 7, 7, 7],
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
[1, 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
[1, 1, 1, 1, 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
[1, 1, 1, 1, 1, 1, 1, 5, 5, 5, 5, 5, 5, 5, 5, 5],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 5, 5, 5, 5, 5, 5],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 5, 5, 5, 5],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 5],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
];
#[repr(u8)]
pub enum Color {
Black = 0x0,
White = 0x1,
Green = 0x2,
Blue = 0x3,
Red = 0x4,
Yellow = 0x5,
Orange = 0x6,
Clean = 0x7,
}
pub struct RGB(u8, u8, u8);
impl RGB {
#[inline]
pub const fn empty() -> RGB {
RGB(0u8, 0u8, 0u8)
}
#[inline]
pub const fn raw(c: u32) -> RGB {
unsafe {
RGB(
((c.unchecked_shr(16)) & 0xFF) as u8,
((c.unchecked_shr(8)) & 0xFF) as u8,
(c & 0xFF) as u8,
)
}
}
#[inline]
pub const fn rgb(r: u8, b: u8, g: u8) -> RGB {
RGB(r, g, b)
}
pub fn hsv(h: f32, s: f32, v: f32) -> RGB {
let i = floorf32(h * 6.0); let (f, y) = (h * 6.0 - i, v * 255.0);
let (p, q, t) = (
(y * (1.0 - s)) as u8,
(y * (1.0 - f * s)) as u8,
(y * (1.0 - (1.0 - f) * s)) as u8,
);
match i as u8 % 6 {
0 => RGB(y as u8, t, p),
1 => RGB(q, y as u8, p),
2 => RGB(p, y as u8, t),
3 => RGB(p, q, y as u8),
4 => RGB(t, p, y as u8),
5 => RGB(y as u8, p, q),
_ => RGB(0u8, 0u8, 0u8),
}
}
#[inline]
pub const fn red(&self) -> u8 {
self.0
}
#[inline]
pub const fn blue(&self) -> u8 {
self.2
}
#[inline]
pub const fn green(&self) -> u8 {
self.1
}
#[inline]
pub const fn uint(&self) -> u32 {
unsafe { (self.0 as u32).unchecked_shl(16) | (self.1 as u32).unchecked_shl(8) | self.2 as u32 }
}
}
impl Eq for RGB {}
impl Copy for RGB {}
impl Clone for RGB {
#[inline]
fn clone(&self) -> RGB {
RGB(self.0, self.1, self.2)
}
}
impl PartialEq for RGB {
#[inline]
fn eq(&self, other: &RGB) -> bool {
self.0 == other.0 && self.1 == other.1 && self.2 == other.2
}
}
impl From<u32> for RGB {
#[inline]
fn from(v: u32) -> RGB {
RGB::raw(v)
}
}
impl From<i32> for RGB {
#[inline]
fn from(v: i32) -> RGB {
RGB::raw(v as u32)
}
}
impl From<(u8, u8, u8)> for RGB {
#[inline]
fn from(v: (u8, u8, u8)) -> RGB {
RGB(v.0, v.1, v.2)
}
}
#[inline]
pub(super) fn dither(x: u16, y: u16, c: u32) -> u8 {
unsafe {
let k = (((c.unchecked_shr(16) & 0xE0).unchecked_shl(1)) | ((c.unchecked_shr(8) & 0xE0).unchecked_shr(2)) | ((c & 0xE0).unchecked_shr(5))) as usize;
let i = ((x & 0x3) | (y & 0x3).unchecked_shl(2)) as usize;
*MAP.get_unchecked(k).get_unchecked(*PATTERN.get_unchecked(i) as usize)
}
}