ckb-next
v0.2.8 at branch master
ckb-next driver for corsair devices
|
Go to the source code of this file.
Macros | |
#define | BR1(x) ((((x) & 0xaa) >> 1) | (((x) & 0x55) << 1)) |
#define | BR2(x) (((BR1(x) & 0xcc) >> 2) | ((BR1(x) & 0x33) << 2)) |
#define | BR4(x) (((BR2(x) & 0xf0) >> 4) | ((BR2(x) & 0x0f) << 4)) |
#define | O0(i) BR4(i), |
#define | O1(i) O0(i) O0((i) + 1) |
#define | O2(i) O1(i) O1((i) + 2) |
#define | O3(i) O2(i) O2((i) + 4) |
#define | O4(i) O3(i) O3((i) + 8) |
#define | O5(i) O4(i) O4((i) + 16) |
#define | O6(i) O5(i) O5((i) + 32) |
#define | O7(i) O6(i) O6((i) + 64) |
#define | O8(i) O7(i) O7((i) + 127) |
Functions | |
static uchar | ordered8to3 (int index, uchar value) |
static uchar | quantize8to3 (int index, uchar value) |
static void | makergb_512 (const lighting *light, uchar data_pkt[5][64], uchar(*ditherfn)(int, uchar)) |
static void | makergb_full (const lighting *light, uchar data_pkt[12][64]) |
static int | rgbcmp (const lighting *lhs, const lighting *rhs) |
int | updatergb_kb (usbdevice *kb, int force) |
int | savergb_kb (usbdevice *kb, lighting *light, int mode) |
int | loadrgb_kb (usbdevice *kb, lighting *light, int mode) |
Variables | |
static uchar | bit_reverse_table [256] = { (((((((((( 0 ) & 0xaa) >> 1) | ((( 0 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( 0 ) & 0xaa) >> 1) | ((( 0 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( 0 ) & 0xaa) >> 1) | ((( 0 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( 0 ) & 0xaa) >> 1) | ((( 0 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( 0 ) + 1 ) & 0xaa) >> 1) | ((( ( 0 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( 0 ) + 1 ) & 0xaa) >> 1) | ((( ( 0 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( 0 ) + 1 ) & 0xaa) >> 1) | ((( ( 0 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( 0 ) + 1 ) & 0xaa) >> 1) | ((( ( 0 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( 0 ) + 2 ) & 0xaa) >> 1) | ((( ( 0 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( 0 ) + 2 ) & 0xaa) >> 1) | ((( ( 0 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( 0 ) + 2 ) & 0xaa) >> 1) | ((( ( 0 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( 0 ) + 2 ) & 0xaa) >> 1) | ((( ( 0 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( 0 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( 0 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( 0 ) + 4 ) & 0xaa) >> 1) | ((( ( 0 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( 0 ) + 4 ) & 0xaa) >> 1) | ((( ( 0 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( 0 ) + 4 ) & 0xaa) >> 1) | ((( ( 0 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( 0 ) + 4 ) & 0xaa) >> 1) | ((( ( 0 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( 0 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( 0 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( 0 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( 0 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( 0 ) + 8 ) & 0xaa) >> 1) | ((( ( 0 ) + 8 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( 0 ) + 8 ) & 0xaa) >> 1) | ((( ( 0 ) + 8 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( 0 ) + 8 ) & 0xaa) >> 1) | ((( ( 0 ) + 8 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( 0 ) + 8 ) & 0xaa) >> 1) | ((( ( 0 ) + 8 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( 0 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 8 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 8 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( 0 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 8 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 8 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( 0 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 8 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 8 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( 0 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 8 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 8 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( 0 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 8 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 8 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( 0 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 8 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 8 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( 0 ) + 16 ) & 0xaa) >> 1) | ((( ( 0 ) + 16 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( 0 ) + 16 ) & 0xaa) >> 1) | ((( ( 0 ) + 16 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( 0 ) + 16 ) & 0xaa) >> 1) | ((( ( 0 ) + 16 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( 0 ) + 16 ) & 0xaa) >> 1) | ((( ( 0 ) + 16 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( 0 ) + 16 ) + 1 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 16 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 16 ) + 1 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 16 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( 0 ) + 16 ) + 1 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 16 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 16 ) + 1 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 16 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( 0 ) + 16 ) + 2 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 16 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 16 ) + 2 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 16 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( 0 ) + 16 ) + 2 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 16 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 16 ) + 2 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 16 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 16 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 16 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 16 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 16 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 16 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 16 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 16 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 16 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( 0 ) + 16 ) + 4 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 16 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 16 ) + 4 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 16 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( 0 ) + 16 ) + 4 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 16 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 16 ) + 4 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 16 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 16 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 16 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 16 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 16 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 16 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 16 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 16 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 16 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 16 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 16 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 16 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 16 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 16 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 16 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 16 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 16 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( 0 ) + 16 ) + 8 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 16 ) + 8 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 16 ) + 8 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 16 ) + 8 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( 0 ) + 16 ) + 8 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 16 ) + 8 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 16 ) + 8 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 16 ) + 8 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 16 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 16 ) + 8 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 16 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 16 ) + 8 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 16 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 16 ) + 8 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 16 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 16 ) + 8 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 16 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 16 ) + 8 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 16 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 16 ) + 8 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 16 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 16 ) + 8 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 16 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 16 ) + 8 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 16 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 16 ) + 8 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 16 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 16 ) + 8 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 16 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 16 ) + 8 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 16 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 16 ) + 8 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( 0 ) + 32 ) & 0xaa) >> 1) | ((( ( 0 ) + 32 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( 0 ) + 32 ) & 0xaa) >> 1) | ((( ( 0 ) + 32 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( 0 ) + 32 ) & 0xaa) >> 1) | ((( ( 0 ) + 32 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( 0 ) + 32 ) & 0xaa) >> 1) | ((( ( 0 ) + 32 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( 0 ) + 32 ) + 1 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 32 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 32 ) + 1 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 32 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( 0 ) + 32 ) + 1 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 32 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 32 ) + 1 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 32 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( 0 ) + 32 ) + 2 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 32 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 32 ) + 2 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 32 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( 0 ) + 32 ) + 2 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 32 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 32 ) + 2 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 32 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 32 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 32 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 32 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 32 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( 0 ) + 32 ) + 4 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 32 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 32 ) + 4 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 32 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( 0 ) + 32 ) + 4 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 32 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 32 ) + 4 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 32 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 32 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 32 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 32 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 32 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 32 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 32 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 32 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 32 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 32 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 32 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 32 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 32 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( 0 ) + 32 ) + 8 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 32 ) + 8 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 32 ) + 8 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 32 ) + 8 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( 0 ) + 32 ) + 8 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 32 ) + 8 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 32 ) + 8 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 32 ) + 8 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 32 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 8 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 32 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 8 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 32 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 8 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 32 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 8 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 32 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 8 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 32 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 8 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 32 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 8 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 32 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 8 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 32 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 32 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 32 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 32 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 32 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 8 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 32 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 8 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 32 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 8 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 32 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 8 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 32 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 32 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 32 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 32 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 32 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 32 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 32 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 32 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 32 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 32 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 32 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 32 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 32 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 32 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 32 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 32 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( 0 ) + 32 ) + 16 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 32 ) + 16 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 32 ) + 16 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 32 ) + 16 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( 0 ) + 32 ) + 16 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 32 ) + 16 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 32 ) + 16 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 32 ) + 16 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 32 ) + 16 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 16 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 32 ) + 16 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 16 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 32 ) + 16 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 16 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 32 ) + 16 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 16 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 32 ) + 16 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 16 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 32 ) + 16 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 16 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 32 ) + 16 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 16 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 32 ) + 16 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 16 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 32 ) + 16 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 16 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 32 ) + 16 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 16 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 32 ) + 16 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 16 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 32 ) + 16 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 16 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 32 ) + 16 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 16 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 32 ) + 16 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 16 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 32 ) + 16 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 16 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 32 ) + 16 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 16 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 32 ) + 16 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 16 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 32 ) + 16 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 16 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 32 ) + 16 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 16 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 32 ) + 16 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 16 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 32 ) + 16 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 16 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 32 ) + 16 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 16 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 32 ) + 16 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 16 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 32 ) + 16 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 16 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( 0 ) + 64 ) & 0xaa) >> 1) | ((( ( 0 ) + 64 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( 0 ) + 64 ) & 0xaa) >> 1) | ((( ( 0 ) + 64 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( 0 ) + 64 ) & 0xaa) >> 1) | ((( ( 0 ) + 64 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( 0 ) + 64 ) & 0xaa) >> 1) | ((( ( 0 ) + 64 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( 0 ) + 64 ) + 1 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 64 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 64 ) + 1 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 64 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( 0 ) + 64 ) + 1 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 64 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 64 ) + 1 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 64 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( 0 ) + 64 ) + 2 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 64 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 64 ) + 2 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 64 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( 0 ) + 64 ) + 2 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 64 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 64 ) + 2 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 64 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 64 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 64 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 64 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 64 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( 0 ) + 64 ) + 4 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 64 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 64 ) + 4 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 64 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( 0 ) + 64 ) + 4 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 64 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 64 ) + 4 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 64 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 64 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 64 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 64 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 64 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 64 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 64 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 64 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 64 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 64 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 64 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( 0 ) + 64 ) + 8 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 64 ) + 8 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 64 ) + 8 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 64 ) + 8 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( 0 ) + 64 ) + 8 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 64 ) + 8 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 64 ) + 8 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 64 ) + 8 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 64 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 8 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 64 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 8 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 64 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 8 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 64 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 8 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 64 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 8 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 64 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 8 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 64 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 8 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 64 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 8 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 64 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 64 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 64 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 8 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 64 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 8 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 64 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 8 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 64 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 8 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 64 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 64 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 64 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 64 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 64 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 64 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 64 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 64 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( 0 ) + 64 ) + 16 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 64 ) + 16 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 64 ) + 16 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 64 ) + 16 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( 0 ) + 64 ) + 16 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 64 ) + 16 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 64 ) + 16 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 64 ) + 16 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 64 ) + 16 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 16 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 64 ) + 16 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 16 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 64 ) + 16 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 16 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 64 ) + 16 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 16 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 64 ) + 16 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 16 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 64 ) + 16 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 16 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 64 ) + 16 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 16 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 64 ) + 16 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 16 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 64 ) + 16 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 16 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 16 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 16 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 64 ) + 16 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 16 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 16 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 16 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 64 ) + 16 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 16 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 64 ) + 16 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 16 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 64 ) + 16 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 16 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 64 ) + 16 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 16 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 64 ) + 16 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 16 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 16 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 16 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 64 ) + 16 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 16 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 16 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 16 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 64 ) + 16 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 16 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 16 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 16 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 64 ) + 16 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 16 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 16 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 16 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 64 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( 0 ) + 64 ) + 32 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 64 ) + 32 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 64 ) + 32 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 64 ) + 32 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( 0 ) + 64 ) + 32 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 64 ) + 32 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 64 ) + 32 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 64 ) + 32 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 64 ) + 32 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 32 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 64 ) + 32 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 32 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 64 ) + 32 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 32 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 64 ) + 32 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 32 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 64 ) + 32 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 32 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 64 ) + 32 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 32 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 64 ) + 32 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 32 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 64 ) + 32 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 32 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 64 ) + 32 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 32 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 64 ) + 32 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 32 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 64 ) + 32 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 32 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 64 ) + 32 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 32 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( 0 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( 0 ) + 127 ) & 0xaa) >> 1) | ((( ( 0 ) + 127 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( 0 ) + 127 ) & 0xaa) >> 1) | ((( ( 0 ) + 127 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( 0 ) + 127 ) & 0xaa) >> 1) | ((( ( 0 ) + 127 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( 0 ) + 127 ) & 0xaa) >> 1) | ((( ( 0 ) + 127 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( 0 ) + 127 ) + 1 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 127 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 127 ) + 1 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 127 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( 0 ) + 127 ) + 1 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 127 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 127 ) + 1 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 127 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( 0 ) + 127 ) + 2 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 127 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 127 ) + 2 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 127 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( 0 ) + 127 ) + 2 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 127 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 127 ) + 2 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 127 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 127 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 127 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( 0 ) + 127 ) + 4 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 127 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 127 ) + 4 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 127 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( 0 ) + 127 ) + 4 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 127 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 127 ) + 4 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 127 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 127 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 127 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 127 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 127 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( 0 ) + 127 ) + 8 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 127 ) + 8 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 127 ) + 8 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 127 ) + 8 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( 0 ) + 127 ) + 8 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 127 ) + 8 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 127 ) + 8 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 127 ) + 8 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 127 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 8 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 8 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 127 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 8 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 8 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 127 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 8 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 8 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 127 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 8 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 8 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 127 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 8 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 8 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 127 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 8 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 8 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( 0 ) + 127 ) + 16 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 127 ) + 16 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 127 ) + 16 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 127 ) + 16 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( 0 ) + 127 ) + 16 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 127 ) + 16 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 127 ) + 16 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 127 ) + 16 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 127 ) + 16 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 16 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 16 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 16 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 127 ) + 16 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 16 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 16 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 16 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 127 ) + 16 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 16 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 16 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 16 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 127 ) + 16 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 16 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 16 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 16 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 16 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 16 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 16 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 16 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 16 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 16 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 16 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 16 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 127 ) + 16 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 16 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 16 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 16 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 127 ) + 16 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 16 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 16 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 16 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 16 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 16 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 16 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 16 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 16 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 16 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 16 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 16 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 16 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 16 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 16 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 16 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 16 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 16 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 16 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 16 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( 0 ) + 127 ) + 32 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 127 ) + 32 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 127 ) + 32 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 127 ) + 32 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( 0 ) + 127 ) + 32 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 127 ) + 32 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 127 ) + 32 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 127 ) + 32 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 127 ) + 32 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 32 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 32 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 32 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 127 ) + 32 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 32 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 32 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 32 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 127 ) + 32 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 32 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 32 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 32 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 127 ) + 32 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 32 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 32 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 32 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 127 ) + 32 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 32 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 32 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 32 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 127 ) + 32 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 32 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 32 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 32 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( 0 ) + 127 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( 0 ) + 127 ) + 64 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 127 ) + 64 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 127 ) + 64 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 127 ) + 64 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( 0 ) + 127 ) + 64 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 127 ) + 64 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( 0 ) + 127 ) + 64 ) & 0xaa) >> 1) | ((( ( ( 0 ) + 127 ) + 64 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 127 ) + 64 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 64 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 64 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 64 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 127 ) + 64 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 64 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 64 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 64 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 127 ) + 64 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 64 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 64 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 64 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 127 ) + 64 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 64 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 64 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 64 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 127 ) + 64 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 64 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 64 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 64 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 127 ) + 64 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 64 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 64 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 64 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) & 0xaa) >> 1) | ((( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) & 0xaa) >> 1) | ((( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) & 0xaa) >> 1) | ((( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), (((((((((( ( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0xf0) >> 4) | ((((((((( ( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0xcc) >> 2) | (((((( ( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0xaa) >> 1) | ((( ( ( ( ( ( ( ( ( 0 ) + 127 ) + 64 ) + 32 ) + 16 ) + 8 ) + 4 ) + 2 ) + 1 ) & 0x55) << 1)) & 0x33) << 2)) & 0x0f) << 4)), } |
Definition at line 9 of file led_keyboard.c.
Definition at line 10 of file led_keyboard.c.
Definition at line 11 of file led_keyboard.c.
#define O0 | ( | i | ) | BR4(i), |
Definition at line 12 of file led_keyboard.c.
Definition at line 13 of file led_keyboard.c.
Definition at line 14 of file led_keyboard.c.
Definition at line 15 of file led_keyboard.c.
Definition at line 16 of file led_keyboard.c.
Definition at line 17 of file led_keyboard.c.
Definition at line 18 of file led_keyboard.c.
Definition at line 19 of file led_keyboard.c.
Definition at line 20 of file led_keyboard.c.
Since Firmware Version 2.05 for K95RGB the answers for getting the stored color-maps from the hardware has changed a bit. So comparing for the correct answer cannot validate against the cmd, and has to be done against a third map. Up to now we know, that K70RGB Pro and K70 Lux RGB have firmware version 2.04 and having the problem also. So we have to determine in the most inner loop the firmware version and type of KB to select the correct compare-table.
Read colors
< That is the old comparison method: you get back what you sent.
Normally a firmware version >= 2.05 runs with the new compare array. Up to now there is a 2.04 running in K70 RGB Lux with the same behavior. It seems that K70RGB has the same problem
Definition at line 190 of file led_keyboard.c.
References lighting::b, ckb_err, usbdevice::fwversion, lighting::g, IS_V2_OVERRIDE, MSG_SIZE, N_KEYS_HW, P_K70_LUX, P_K70_LUX_NRGB, usbdevice::product, lighting::r, usbrecv, and usbsend.
Referenced by hwloadmode().
|
static |
Definition at line 38 of file led_keyboard.c.
References lighting::b, lighting::g, N_KEYS_HW, and lighting::r.
Referenced by savergb_kb(), and updatergb_kb().
Definition at line 58 of file led_keyboard.c.
References lighting::b, lighting::g, and lighting::r.
Referenced by savergb_kb(), and updatergb_kb().
Definition at line 24 of file led_keyboard.c.
References bit_reverse_table.
Referenced by savergb_kb(), and updatergb_kb().
Definition at line 32 of file led_keyboard.c.
Referenced by savergb_kb(), and updatergb_kb().
Definition at line 74 of file led_keyboard.c.
References lighting::b, lighting::g, N_KEYS_HW, and lighting::r.
Referenced by updatergb_kb().
Definition at line 148 of file led_keyboard.c.
References usbdevice::dither, usbdevice::fwversion, IS_STRAFE, IS_V2_OVERRIDE, makergb_512(), makergb_full(), MSG_SIZE, ordered8to3(), quantize8to3(), and usbsend.
Referenced by cmd_hwsave_kb().
int updatergb_kb | ( | usbdevice * | kb, |
int | force | ||
) |
Definition at line 79 of file led_keyboard.c.
References usbdevice::active, usbprofile::currentmode, usbdevice::dither, lighting::forceupdate, IS_FULLRANGE, usbprofile::lastlight, usbmode::light, makergb_512(), makergb_full(), MSG_SIZE, ordered8to3(), P_K95_PLATINUM, usbdevice::product, usbdevice::profile, quantize8to3(), rgbcmp(), lighting::sidelight, and usbsend.
|
static |
Definition at line 22 of file led_keyboard.c.
Referenced by ordered8to3().