/***
* This code is a part of EvoApproxLib library (ehw.fit.vutbr.cz/approxlib) distributed under The MIT License.
* When used, please cite the following article(s): V. Mrazek, Z. Vasicek, L. Sekanina, H. Jiang and J. Han, "Scalable Construction of Approximate Multipliers With Formally Guaranteed Worst Case Error" in IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol. 26, no. 11, pp. 2572-2576, Nov. 2018. doi: 10.1109/TVLSI.2018.2856362 
* This file contains a circuit from a sub-set of pareto optimal circuits with respect to the pwr and mae parameters
***/
// MAE% = 0.032 %
// MAE = 5438 
// WCE% = 0.17 %
// WCE = 28623 
// WCRE% = 6300.00 %
// EP% = 98.39 %
// MRE% = 2.64 %
// MSE = 48933.638e3 
// PDK45_PWR = 0.579 mW
// PDK45_AREA = 925.0 um2
// PDK45_DELAY = 1.70 ns
#include <stdint.h>
#include <stdlib.h>

uint32_t mul12s_34P(uint16_t A, uint16_t B)
{
 uint32_t O;
 uint8_t n557,n448,n550,n562,n551,n552,n538,n539,n536,n537,n95,n532,n533,n530,n531,O21,n569,n568,O14,O4,n85,n84,n87,n86,n81,n80,n83,n82,n402,n403,n400,n401,n89,n404,n405,n392,n393,n390,n396,n397,n394,n395,n398,n399,n240,n241,n242,n243,n244,n245,n246,n247,n248,n249,n499,n498,n329,n328,n327,n326,n325,n324,n323,n322,n321,n492,n407,n605,n149,n148,n143,n142,n141,n140,n147,n146,n145,n144,n74,n75,n76,n70,n71,n72,n73,n78,n79,n338,n458,n356,n339,n459,n565,n567,n566,n561,n560,n563,O8,n446,n444,n445,n442,n443,n440,n441,O1,n355,n363,n362,n361,n360,n367,n366,n365,n364,n369,n368,O17,n598,n599,n590,n591,n592,n593,n594,n595,n596,n597,O13,n189,n188,n187,n186,n185,n184,n183,n182,n181,n180,n219,n218,n216,n215,n214,n213,n212,n211,n210,O5,O2,n132,n133,n130,n136,n137,n134,n135,n138,n139,n408,n529,n528,n409,n521,n520,n523,n522,n525,n524,n527,n526,n406,n88,n415,n414,n417,n416,n411,n410,n413,n412,n419,n418,n98,n99,n558,n559,n92,n93,n90,n91,n96,n97,n94,n553,n389,n388,n385,n384,n387,n386,n381,n380,n383,n382,n173,n253,n252,n251,n250,n257,n256,n255,n254,n259,n258,n318,n319,n312,n313,n310,n311,n316,n317,n314,n315,O9,O22,n176,n177,n174,n175,n172,O6,n171,n178,n179,O19,n510,n511,n512,n513,n514,n515,n516,n517,n518,n519,n453,n452,n455,n454,n457,n456,O12,n428,n429,n358,n359,n424,n357,n426,n427,n420,n421,n422,n423,n588,n583,n582,n581,n580,n587,n586,n585,n584,n228,n229,n353,n222,n223,n220,n221,n226,n227,n224,n225,n279,n278,n495,n494,n497,n496,n491,n490,n378,n129,n128,n270,n125,n124,n127,n126,n121,n120,n123,n122,n449,O16,n460,n461,n462,n463,n464,n465,n466,n467,n468,n469,n549,n548,n547,n546,O3,n544,n543,n542,n541,n540,n341,n340,n343,n342,n345,n344,n347,n430,n305,n304,n307,n306,n301,n300,n303,n302,n266,n267,n264,n265,n309,n308,n260,n261,O11,n285,n286,n287,n280,n281,n282,n283,n288,n289,n161,n160,n163,n162,n165,n164,n167,n166,n169,n168,n608,n609,n600,n601,n602,n604,n545,n606,n607,n58,n59,n56,n54,n55,n52,n53,n451,n450,n114,n115,n116,n117,n110,n111,n112,n113,n118,n119,n503,n502,n501,n500,n507,n506,n505,n504,n509,n508,O7,n349,n348,n439,n438,n437,n436,n435,n434,n433,n432,n431,n346,n535,n284,n554,n235,n234,n237,n236,n231,n230,n233,n232,n239,n238,n482,n483,n480,n481,n486,n487,n485,n334,n335,n488,n489,n330,n332,n333,O20,O18,O0,n158,n159,O23,n150,n151,n152,n153,n154,n155,n156,n157,n67,n66,n65,n64,n63,n484,n61,n60,n69,n68,n336,n337,n268,O15,n269,O10,n262,n263,n473,n472,n471,n470,n477,n476,n475,n474,n479,n478,n578,n579,n572,n573,n570,n571,n576,n577,n574,n575,n370,n371,n372,n373,n374,n375,n376,n377,n271,n379,n273,n275,n274,n277,n276,n425,n354,n297,n296,n295,n294,n293,n292,n291,n290,n352,n299,n298,n350,n351,n198,n199,n194,n195,n196,n197,n190,n191,n192,n193,n208,n209,n204,n205,n206,n207,n200,n201,n202,n203,n320,n107,n106,n105,n104,n103,n102,n101,n555,n556,n109,n108;
 O0=0;
 O1=0;
 O2=0;
 O3=0;
 O4=0;
 O5=0;
 O6=((B >> 3)&1)&((A >> 3)&1);
 n124=((B >> 6)&1)&((A >> 5)&1);
 n126=((B >> 8)&1)&((A >> 3)&1);
 n127=((B >> 7)&1)&((A >> 4)&1);
 n128=((B >> 5)&1)&((A >> 6)&1);
 n129=((B >> 4)&1)&((A >> 7)&1);
 n130=((B >> 3)&1)&((A >> 8)&1);
 n162=((B >> 7)&1)&((A >> 5)&1);
 n164=((B >> 9)&1)&((A >> 3)&1);
 n165=((B >> 8)&1)&((A >> 4)&1);
 n166=((B >> 6)&1)&((A >> 6)&1);
 n167=((B >> 5)&1)&((A >> 7)&1);
 n168=((B >> 4)&1)&((A >> 8)&1);
 n169=((B >> 3)&1)&((A >> 9)&1);
 n208=((B >> 8)&1)&((A >> 5)&1);
 n210=((B >> 10)&1)&((A >> 3)&1);
 n211=((B >> 9)&1)&((A >> 4)&1);
 n212=((B >> 7)&1)&((A >> 6)&1);
 n213=((B >> 6)&1)&((A >> 7)&1);
 n214=((B >> 5)&1)&((A >> 8)&1);
 n215=((B >> 4)&1)&((A >> 9)&1);
 n216=((B >> 3)&1)&((A >> 10)&1);
 n224=((B >> 3)&1)&((A >> 11)&1);
 n263=((B >> 9)&1)&((A >> 5)&1);
 n265=((B >> 11)&1)&((A >> 3)&1);
 n266=((B >> 10)&1)&((A >> 4)&1);
 n267=((B >> 8)&1)&((A >> 6)&1);
 n268=((B >> 7)&1)&((A >> 7)&1);
 n269=((B >> 6)&1)&((A >> 8)&1);
 n270=((B >> 5)&1)&((A >> 9)&1);
 n271=((B >> 4)&1)&((A >> 10)&1);
 n285=((B >> 4)&1)&((A >> 11)&1);
 n324=((B >> 10)&1)&((A >> 5)&1);
 n325=((B >> 11)&1)&((A >> 4)&1);
 n326=((B >> 9)&1)&((A >> 6)&1);
 n327=((B >> 8)&1)&((A >> 7)&1);
 n328=((B >> 7)&1)&((A >> 8)&1);
 n329=((B >> 6)&1)&((A >> 9)&1);
 n330=((B >> 5)&1)&((A >> 10)&1);
 n346=((B >> 5)&1)&((A >> 11)&1);
 n375=((B >> 9)&1)&((A >> 7)&1);
 n383=((B >> 10)&1)&((A >> 6)&1);
 n386=~(((A >> 5)&1)|((A >> 4)&1));
 n388=((B >> 8)&1)&((A >> 8)&1);
 n389=((B >> 7)&1)&((A >> 9)&1);
 n390=((B >> 6)&1)&((A >> 10)&1);
 n410=((B >> 6)&1)&((A >> 11)&1);
 n432=((B >> 9)&1)&((A >> 8)&1);
 n440=((B >> 10)&1)&((A >> 7)&1);
 n443=((B >> 11)&1)&((A >> 6)&1);
 n445=((B >> 8)&1)&((A >> 9)&1);
 n446=((B >> 7)&1)&((A >> 10)&1);
 n466=((B >> 7)&1)&((A >> 11)&1);
 n489=((B >> 11)&1)&((A >> 7)&1);
 n490=((B >> 10)&1)&((A >> 8)&1);
 n491=((B >> 9)&1)&((A >> 9)&1);
 n492=((B >> 8)&1)&((A >> 10)&1);
 n512=((B >> 8)&1)&((A >> 11)&1);
 n520=((B >> 9)&1)&((A >> 10)&1);
 n528=((B >> 10)&1)&((A >> 9)&1);
 n53=((B >> 4)&1)&((A >> 4)&1);
 n532=((B >> 11)&1)&((A >> 8)&1);
 n55=((B >> 3)&1)&((A >> 4)&1);
 n553=((B >> 9)&1)&((A >> 11)&1);
 n56=((B >> 4)&1)&((A >> 3)&1);
 n562=((B >> 11)&1)&((A >> 9)&1);
 n563=((B >> 10)&1)&((A >> 10)&1);
 n583=((B >> 10)&1)&((A >> 11)&1);
 n587=((B >> 11)&1)&((A >> 10)&1);
 n59=((B >> 3)&1)&((A >> 5)&1);
 n602=((B >> 11)&1)&((A >> 11)&1);
 n61=((B >> 5)&1)&((A >> 3)&1);
 n72=((B >> 4)&1)&((A >> 5)&1);
 n74=((B >> 6)&1)&((A >> 3)&1);
 n75=((B >> 5)&1)&((A >> 4)&1);
 n76=((B >> 3)&1)&((A >> 6)&1);
 n94=((B >> 5)&1)&((A >> 5)&1);
 n96=((B >> 7)&1)&((A >> 3)&1);
 n97=((B >> 6)&1)&((A >> 4)&1);
 n98=((B >> 4)&1)&((A >> 6)&1);
 n99=((B >> 3)&1)&((A >> 7)&1);
 n123=n97&n96;
 n125=n127^n126;
 n161=n127&n126;
 n163=n165^n164;
 n207=n165&n164;
 n209=n211^n210;
 n262=n211&n210;
 n264=~(n266^n265);
 n323=n266&~n265;
 n381=n324&n325;
 n385=((B >> 11)&1)&~n386;
 n387=((A >> 5)&1)&n325;
 n52=n53&O6;
 n54=~(n56|n55);
 n60=n61^n53;
 n71=n61&n53;
 n73=n75^n74;
 n93=n75&n74;
 n95=n97^n96;
 O7=~(n54|n52);
 n118=n94&n93;
 n119=n94&n95;
 n120=n95&n93;
 n122=~(n124^n123);
 n156=n124&n123;
 n157=n124&n125;
 n158=n125&n123;
 n160=~(n162^n161);
 n202=n162&n161;
 n203=n162&n163;
 n204=n163&n161;
 n206=~(n208^n207);
 n257=n208&n207;
 n258=n208&n209;
 n259=n209&n207;
 n261=~(n263^n262);
 n318=n263&n262;
 n319=n263&n264;
 n320=n264&n262;
 n322=~(n324^n323);
 n380=n324&n323;
 n382=n325&n323;
 n384=~n387&n385;
 n442=~(n443|n385);
 n444=((A >> 6)&1)&n385;
 n58=~(n59^n52);
 n66=n59&n52;
 n67=n59&n60;
 n68=n60&n52;
 n70=~(n72^n71);
 n88=n72&n71;
 n89=n72&n73;
 n90=n73&n71;
 n92=~(n94^n93);
 O8=~(n60^n58);
 n117=~(n119|n118);
 n121=n125^n122;
 n155=~(n157|n156);
 n159=n163^n160;
 n201=~(n203|n202);
 n205=n209^n206;
 n256=~(n258|n257);
 n260=n264^n261;
 n317=~(n319|n318);
 n321=n325^n322;
 n379=~(n381|n380);
 n438=n383&n384;
 n441=~(n444|n442);
 n488=~(n489^n442);
 n531=~n489&n442;
 n65=~(n67|n66);
 n69=n73^n70;
 n87=~(n89|n88);
 n91=n95^n92;
 n112=n98&~n91;
 n116=~n120&n117;
 n150=n128&~n121;
 n154=~n158&n155;
 n196=n166&~n159;
 n200=~n204&n201;
 n251=n212&~n205;
 n255=~n259&n256;
 n312=n267&~n260;
 n316=~n320&n317;
 n373=n326&~n321;
 n378=~n382&n379;
 n486=n440&n441;
 n526=n490&n488;
 n530=~n532&n531;
 n533=((A >> 8)&1)&~n531;
 n64=~n68&n65;
 n82=n76&~n69;
 n86=~n90&n87;
 n111=~(n91|n86);
 n113=n98&~n86;
 n115=~(n121^n116);
 n149=~(n121|n116);
 n151=n128&~n116;
 n153=~(n159^n154);
 n195=~(n159|n154);
 n197=n166&~n154;
 n199=~(n205^n200);
 n250=~(n205|n200);
 n252=n212&~n200;
 n254=~(n260^n255);
 n311=~(n260|n255);
 n313=n267&~n255;
 n315=~(n321^n316);
 n372=~(n321|n316);
 n374=n326&~n316;
 n377=n383^n378;
 n437=n383&~n378;
 n439=n384&~n378;
 n529=~(n533|n530);
 n561=~(n562^n530);
 n586=~n562&n530;
 n63=~(n69^n64);
 n81=~(n69|n64);
 n83=n76&~n64;
 n85=~(n91^n86);
 O9=~(n76^n63);
 n110=~(n112|n111);
 n114=n128^n115;
 n148=~(n150|n149);
 n152=n166^n153;
 n194=~(n196|n195);
 n198=n212^n199;
 n249=~(n251|n250);
 n253=n267^n254;
 n310=~(n312|n311);
 n314=n326^n315;
 n371=~(n373|n372);
 n376=n384^n377;
 n436=~(n438|n437);
 n559=n528&n529;
 n581=n563&n561;
 n585=~n587&n586;
 n588=((A >> 10)&1)&~n586;
 n80=~(n82|n81);
 n84=n98^n85;
 n106=n99&~n84;
 n109=~n113&n110;
 n144=n129&~n114;
 n147=~n151&n148;
 n190=n167&~n152;
 n193=~n197&n194;
 n245=n213&~n198;
 n248=~n252&n249;
 n306=n268&~n253;
 n309=~n313&n310;
 n367=n327&~n314;
 n370=~n374&n371;
 n430=n375&~n376;
 n435=~n439&n436;
 n584=~(n588|n585);
 n601=~(n602^n585);
 n608=n602&n585;
 n79=~n83&n80;
 n104=~(n84|n79);
 n105=n99&~n79;
 n108=~(n114^n109);
 n142=~(n114|n109);
 n143=n129&~n109;
 n146=~(n152^n147);
 n188=~(n152|n147);
 n189=n167&~n147;
 n192=~(n198^n193);
 n243=~(n198|n193);
 n244=n213&~n193;
 n247=~(n253^n248);
 n304=~(n253|n248);
 n305=n268&~n248;
 n308=~(n314^n309);
 n365=~(n314|n309);
 n366=n327&~n309;
 n369=n375^n370;
 n429=n375&~n370;
 n431=~(n376|n370);
 n434=n440^n435;
 n485=n440&~n435;
 n487=n441&~n435;
 n599=~n583&n584;
 n78=~(n84^n79);
 O10=~(n99^n78);
 n103=~(n105|n104);
 n107=n129^n108;
 n141=~(n143|n142);
 n145=n167^n146;
 n187=~(n189|n188);
 n191=n213^n192;
 n242=~(n244|n243);
 n246=n268^n247;
 n303=~(n305|n304);
 n307=n327^n308;
 n364=~(n366|n365);
 n368=~(n376^n369);
 n428=~(n430|n429);
 n433=n441^n434;
 n484=~(n486|n485);
 n102=~n106&n103;
 n137=n130&~n107;
 n140=~n144&n141;
 n183=n168&~n145;
 n186=~n190&n187;
 n238=n214&~n191;
 n241=~n245&n242;
 n299=n269&~n246;
 n302=~n306&n303;
 n360=n328&~n307;
 n363=~n367&n364;
 n423=n388&~n368;
 n427=~n431&n428;
 n479=n432&~n433;
 n483=~n487&n484;
 n101=~(n107^n102);
 n135=~(n107|n102);
 n136=n130&~n102;
 n139=~(n145^n140);
 n181=~(n145|n140);
 n182=n168&~n140;
 n185=~(n191^n186);
 n236=~(n191|n186);
 n237=n214&~n186;
 n240=~(n246^n241);
 n297=~(n246|n241);
 n298=n269&~n241;
 n301=~(n307^n302);
 n358=~(n307|n302);
 n359=n328&~n302;
 n362=~(n368^n363);
 n422=~(n368|n363);
 n424=n388&~n363;
 n426=n432^n427;
 n478=n432&~n427;
 n480=~(n433|n427);
 n482=n488^n483;
 n525=n488&~n483;
 n527=n490&~n483;
 O11=~(n130^n101);
 n134=~(n136|n135);
 n138=n168^n139;
 n180=~(n182|n181);
 n184=n214^n185;
 n235=~(n237|n236);
 n239=n269^n240;
 n296=~(n298|n297);
 n300=n328^n301;
 n357=~(n359|n358);
 n361=n388^n362;
 n421=~(n423|n422);
 n425=~(n433^n426);
 n477=~(n479|n478);
 n481=n490^n482;
 n524=~(n526|n525);
 n133=~n137&n134;
 n176=n169&~n138;
 n179=~n183&n180;
 n231=n215&~n184;
 n234=~n238&n235;
 n292=n270&~n239;
 n295=~n299&n296;
 n353=n329&~n300;
 n356=~n360&n357;
 n416=n389&~n361;
 n420=~n424&n421;
 n472=n445&~n425;
 n476=~n480&n477;
 n518=n491&~n481;
 n523=~n527&n524;
 n132=~(n138^n133);
 n174=~(n138|n133);
 n175=n169&~n133;
 n178=~(n184^n179);
 n229=~(n184|n179);
 n230=n215&~n179;
 n233=~(n239^n234);
 n290=~(n239|n234);
 n291=n270&~n234;
 n294=~(n300^n295);
 n351=~(n300|n295);
 n352=n329&~n295;
 n355=~(n361^n356);
 n415=~(n361|n356);
 n417=n389&~n356;
 n419=~(n425^n420);
 n471=~(n425|n420);
 n473=n445&~n420;
 n475=~(n481^n476);
 n517=~(n481|n476);
 n519=n491&~n476;
 n522=n528^n523;
 n558=n528&~n523;
 n560=n529&~n523;
 O12=~(n169^n132);
 n173=~(n175|n174);
 n177=n215^n178;
 n228=~(n230|n229);
 n232=n270^n233;
 n289=~(n291|n290);
 n293=n329^n294;
 n350=~(n352|n351);
 n354=n389^n355;
 n414=~(n416|n415);
 n418=n445^n419;
 n470=~(n472|n471);
 n474=n491^n475;
 n516=~(n518|n517);
 n521=n529^n522;
 n557=~(n559|n558);
 n172=~n176&n173;
 n223=n216&~n177;
 n227=~n231&n228;
 n284=n271&~n232;
 n288=~n292&n289;
 n345=n330&~n293;
 n349=~n353&n350;
 n408=n390&~n354;
 n413=~n417&n414;
 n464=n446&~n418;
 n469=~n473&n470;
 n510=n492&~n474;
 n515=~n519&n516;
 n551=n520&~n521;
 n556=~n560&n557;
 n171=~(n177^n172);
 n221=~(n177|n172);
 n222=n216&~n172;
 n226=~(n232^n227);
 n282=~(n232|n227);
 n283=n271&~n227;
 n287=~(n293^n288);
 n343=~(n293|n288);
 n344=n330&~n288;
 n348=~(n354^n349);
 n407=~(n354|n349);
 n409=n390&~n349;
 n412=~(n418^n413);
 n463=~(n418|n413);
 n465=n446&~n413;
 n468=~(n474^n469);
 n509=~(n474|n469);
 n511=n492&~n469;
 n514=n520^n515;
 n550=n520&~n515;
 n552=~(n521|n515);
 n555=n561^n556;
 n580=n561&~n556;
 n582=n563&~n556;
 O13=~(n216^n171);
 n220=~(n222|n221);
 n225=n271^n226;
 n281=~(n283|n282);
 n286=n330^n287;
 n342=~(n344|n343);
 n347=n390^n348;
 n406=~(n408|n407);
 n411=n446^n412;
 n462=~(n464|n463);
 n467=n492^n468;
 n508=~(n510|n509);
 n513=~(n521^n514);
 n549=~(n551|n550);
 n554=n563^n555;
 n579=~(n581|n580);
 n219=~n223&n220;
 n276=~(n224|n225);
 n280=~n284&n281;
 n337=~(n285|n286);
 n341=~n345&n342;
 n401=~(n346|n347);
 n405=~n409&n406;
 n457=~(n410|n411);
 n461=~n465&n462;
 n503=~(n466|n467);
 n507=~n511&n508;
 n544=~(n512|n513);
 n548=~n552&n549;
 n574=~(n553|n554);
 n578=~n582&n579;
 n218=~(n224^n219);
 n275=~(n224|n219);
 n277=~(n225|n219);
 n279=~(n285^n280);
 n336=~(n285|n280);
 n338=~(n286|n280);
 n340=~(n346^n341);
 n400=~(n346|n341);
 n402=~(n347|n341);
 n404=~(n410^n405);
 n456=~(n410|n405);
 n458=~(n411|n405);
 n460=~(n466^n461);
 n502=~(n466|n461);
 n504=~(n467|n461);
 n506=~(n512^n507);
 n543=~(n512|n507);
 n545=~(n513|n507);
 n547=~(n553^n548);
 n573=~(n553|n548);
 n575=~(n554|n548);
 n577=~(n583^n578);
 n598=~(n583|n578);
 n600=n584&~n578;
 O14=n225^n218;
 n274=~(n276|n275);
 n278=~(n286^n279);
 n335=~(n337|n336);
 n339=~(n347^n340);
 n399=~(n401|n400);
 n403=~(n411^n404);
 n455=~(n457|n456);
 n459=~(n467^n460);
 n501=~(n503|n502);
 n505=~(n513^n506);
 n542=~(n544|n543);
 n546=~(n554^n547);
 n572=~(n574|n573);
 n576=n584^n577;
 n597=~(n599|n598);
 n273=~n277&n274;
 n334=~n338&n335;
 n398=~n402&n399;
 n454=~n458&n455;
 n500=~n504&n501;
 n541=~n545&n542;
 n571=~n575&n572;
 n596=~n600&n597;
 O15=n278^n273;
 n332=~(n278|n273);
 n333=~(n339^n334);
 n396=~(n339|n334);
 n452=~(n403|n398);
 n498=~(n459|n454);
 n539=~(n505|n500);
 n569=~(n546|n541);
 n594=~(n576|n571);
 n607=~(n601|n596);
 O16=~(n333^n332);
 n395=~n339&n332;
 n397=~n334&n332;
 n606=~(n608|n607);
 n394=~(n396|n395);
 n393=~n397&n394;
 n392=~(n398^n393);
 n451=~(n398|n393);
 n453=~(n403|n393);
 O17=n403^n392;
 n450=~(n452|n451);
 n449=~n453&n450;
 n448=~(n454^n449);
 n497=~(n454|n449);
 n499=~(n459|n449);
 O18=n459^n448;
 n496=~(n498|n497);
 n495=~n499&n496;
 n494=~(n500^n495);
 n538=~(n500|n495);
 n540=~(n505|n495);
 O19=n505^n494;
 n537=~(n539|n538);
 n536=~n540&n537;
 n535=~(n541^n536);
 n568=~(n541|n536);
 n570=~(n546|n536);
 O20=n546^n535;
 n567=~(n569|n568);
 n566=~n570&n567;
 n565=~(n571^n566);
 n593=~(n571|n566);
 n595=~(n576|n566);
 O21=n576^n565;
 n592=~(n594|n593);
 n591=~n595&n592;
 n590=~(n596^n591);
 n605=~(n596|n591);
 n609=~(n601|n591);
 O22=n601^n590;
 n604=n606&~n605;
 O23=~n609&n604;
 O = (O0 << 0)|(O1 << 1)|(O2 << 2)|(O3 << 3)|(O4 << 4)|(O5 << 5)|(O6 << 6)|(O7 << 7)|(O8 << 8)|(O9 << 9)|(O10 << 10)|(O11 << 11)|(O12 << 12)|(O13 << 13)|(O14 << 14)|(O15 << 15)|(O16 << 16)|(O17 << 17)|(O18 << 18)|(O19 << 19)|(O20 << 20)|(O21 << 21)|(O22 << 22)|(O23 << 23);
 return O;
}