diff options
author | Billy Brumley <bbrumley@gmail.com> | 2020-07-03 18:27:23 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-03 18:27:23 +0300 |
commit | bc346202fbb3bc838a19af8c3b0e449926589c7b (patch) | |
tree | fd7e7f7307d0e9f928ede362f6c0a6c67fdb3f8b /ecp_id_tc26_gost_3410_2012_512_paramSetC.c | |
parent | 9a4548c819c63b41358072d645454ad7ea56cd2b (diff) | |
download | gost-engine-bc346202fbb3bc838a19af8c3b0e449926589c7b.zip gost-engine-bc346202fbb3bc838a19af8c3b0e449926589c7b.tar.gz gost-engine-bc346202fbb3bc838a19af8c3b0e449926589c7b.tar.bz2 |
GOST ECC optimizations (#263)
Standalone EC implementations from ECCKiila.
https://gitlab.com/nisec/ecckiila
Diffstat (limited to 'ecp_id_tc26_gost_3410_2012_512_paramSetC.c')
-rw-r--r-- | ecp_id_tc26_gost_3410_2012_512_paramSetC.c | 12512 |
1 files changed, 12512 insertions, 0 deletions
diff --git a/ecp_id_tc26_gost_3410_2012_512_paramSetC.c b/ecp_id_tc26_gost_3410_2012_512_paramSetC.c new file mode 100644 index 0000000..10fe5d2 --- /dev/null +++ b/ecp_id_tc26_gost_3410_2012_512_paramSetC.c @@ -0,0 +1,12512 @@ +/* Autogenerated: ECCKiila https://gitlab.com/nisec/ecckiila */ +/*- + * MIT License + * + * Copyright (c) 2020 Luis Rivera-Zamarripa, Jesús-Javier Chi-Domínguez, Billy Bob Brumley + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +#if defined(__SIZEOF_INT128__) && !defined(PEDANTIC) + +#include <stdint.h> +#include <string.h> +#define LIMB_BITS 64 +#define LIMB_CNT 10 +/* Field elements */ +typedef uint64_t fe_t[LIMB_CNT]; +typedef uint64_t limb_t; + +#define fe_copy(d, s) memcpy(d, s, sizeof(fe_t)) +#define fe_set_zero(d) memset(d, 0, sizeof(fe_t)) + +#define fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(c, a, b) \ + fiat_id_tc26_gost_3410_2012_512_paramSetC_add(c, a, b); \ + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry(c, c) +#define fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(c, a, b) \ + fiat_id_tc26_gost_3410_2012_512_paramSetC_sub(c, a, b); \ + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry(c, c) + +/* Projective points */ +typedef struct { + fe_t X; + fe_t Y; + fe_t T; + fe_t Z; +} pt_prj_t; + +/* Affine points */ +typedef struct { + fe_t X; + fe_t Y; + fe_t T; +} pt_aff_t; + +/* BEGIN verbatim fiat code https://github.com/mit-plv/fiat-crypto */ +/*- + * MIT License + * + * Copyright (c) 2020 the fiat-crypto authors (see the AUTHORS file) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/* Autogenerated: unsaturated_solinas --static id_tc26_gost_3410_2012_512_paramSetC 64 '(auto)' '2^512 - 569' */ +/* curve description: id_tc26_gost_3410_2012_512_paramSetC */ +/* machine_wordsize = 64 (from "64") */ +/* requested operations: (all) */ +/* n = 10 (from "(auto)") */ +/* s-c = 2^512 - [(1, 569)] (from "2^512 - 569") */ +/* tight_bounds_multiplier = 1.1 (from "") */ +/* */ +/* Computed values: */ +/* carry_chain = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1] */ +/* eval z = z[0] + (z[1] << 52) + (z[2] << 103) + (z[3] << 154) + (z[4] << 205) + (z[5] << 256) + (z[6] << 0x134) + (z[7] << 0x167) + (z[8] << 0x19a) + (z[9] << 0x1cd) */ +/* bytes_eval z = z[0] + (z[1] << 8) + (z[2] << 16) + (z[3] << 24) + (z[4] << 32) + (z[5] << 40) + (z[6] << 48) + (z[7] << 56) + (z[8] << 64) + (z[9] << 72) + (z[10] << 80) + (z[11] << 88) + (z[12] << 96) + (z[13] << 104) + (z[14] << 112) + (z[15] << 120) + (z[16] << 128) + (z[17] << 136) + (z[18] << 144) + (z[19] << 152) + (z[20] << 160) + (z[21] << 168) + (z[22] << 176) + (z[23] << 184) + (z[24] << 192) + (z[25] << 200) + (z[26] << 208) + (z[27] << 216) + (z[28] << 224) + (z[29] << 232) + (z[30] << 240) + (z[31] << 248) + (z[32] << 256) + (z[33] << 0x108) + (z[34] << 0x110) + (z[35] << 0x118) + (z[36] << 0x120) + (z[37] << 0x128) + (z[38] << 0x130) + (z[39] << 0x138) + (z[40] << 0x140) + (z[41] << 0x148) + (z[42] << 0x150) + (z[43] << 0x158) + (z[44] << 0x160) + (z[45] << 0x168) + (z[46] << 0x170) + (z[47] << 0x178) + (z[48] << 0x180) + (z[49] << 0x188) + (z[50] << 0x190) + (z[51] << 0x198) + (z[52] << 0x1a0) + (z[53] << 0x1a8) + (z[54] << 0x1b0) + (z[55] << 0x1b8) + (z[56] << 0x1c0) + (z[57] << 0x1c8) + (z[58] << 0x1d0) + (z[59] << 0x1d8) + (z[60] << 0x1e0) + (z[61] << 0x1e8) + (z[62] << 0x1f0) + (z[63] << 0x1f8) */ + +#include <stdint.h> +typedef unsigned char fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1; +typedef signed char fiat_id_tc26_gost_3410_2012_512_paramSetC_int1; +typedef signed __int128 fiat_id_tc26_gost_3410_2012_512_paramSetC_int128; +typedef unsigned __int128 fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128; + +#if (-1 & 3) != 3 +#error "This code only works on a two's complement system" +#endif + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u52 is an addition with carry. + * Postconditions: + * out1 = (arg1 + arg2 + arg3) mod 2^52 + * out2 = ⌊(arg1 + arg2 + arg3) / 2^52⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xfffffffffffff] + * arg3: [0x0 ~> 0xfffffffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xfffffffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u52( + uint64_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 *out2, + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 arg1, uint64_t arg2, + uint64_t arg3) { + uint64_t x1; + uint64_t x2; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x3; + x1 = ((arg1 + arg2) + arg3); + x2 = (x1 & UINT64_C(0xfffffffffffff)); + x3 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x1 >> 52); + *out1 = x2; + *out2 = x3; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u52 is a subtraction with borrow. + * Postconditions: + * out1 = (-arg1 + arg2 + -arg3) mod 2^52 + * out2 = -⌊(-arg1 + arg2 + -arg3) / 2^52⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xfffffffffffff] + * arg3: [0x0 ~> 0xfffffffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xfffffffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u52( + uint64_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 *out2, + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 arg1, uint64_t arg2, + uint64_t arg3) { + int64_t x1; + fiat_id_tc26_gost_3410_2012_512_paramSetC_int1 x2; + uint64_t x3; + x1 = ((int64_t)(arg2 - (int64_t)arg1) - (int64_t)arg3); + x2 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_int1)(x1 >> 52); + x3 = (x1 & UINT64_C(0xfffffffffffff)); + *out1 = x3; + *out2 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(0x0 - x2); +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u51 is an addition with carry. + * Postconditions: + * out1 = (arg1 + arg2 + arg3) mod 2^51 + * out2 = ⌊(arg1 + arg2 + arg3) / 2^51⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0x7ffffffffffff] + * arg3: [0x0 ~> 0x7ffffffffffff] + * Output Bounds: + * out1: [0x0 ~> 0x7ffffffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u51( + uint64_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 *out2, + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 arg1, uint64_t arg2, + uint64_t arg3) { + uint64_t x1; + uint64_t x2; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x3; + x1 = ((arg1 + arg2) + arg3); + x2 = (x1 & UINT64_C(0x7ffffffffffff)); + x3 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x1 >> 51); + *out1 = x2; + *out2 = x3; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u51 is a subtraction with borrow. + * Postconditions: + * out1 = (-arg1 + arg2 + -arg3) mod 2^51 + * out2 = -⌊(-arg1 + arg2 + -arg3) / 2^51⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0x7ffffffffffff] + * arg3: [0x0 ~> 0x7ffffffffffff] + * Output Bounds: + * out1: [0x0 ~> 0x7ffffffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u51( + uint64_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 *out2, + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 arg1, uint64_t arg2, + uint64_t arg3) { + int64_t x1; + fiat_id_tc26_gost_3410_2012_512_paramSetC_int1 x2; + uint64_t x3; + x1 = ((int64_t)(arg2 - (int64_t)arg1) - (int64_t)arg3); + x2 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_int1)(x1 >> 51); + x3 = (x1 & UINT64_C(0x7ffffffffffff)); + *out1 = x3; + *out2 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(0x0 - x2); +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u64 is a single-word conditional move. + * Postconditions: + * out1 = (if arg1 = 0 then arg2 else arg3) + * + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffffffffffff] + * arg3: [0x0 ~> 0xffffffffffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffffffffffff] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u64( + uint64_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 arg1, + uint64_t arg2, uint64_t arg3) { + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x1; + uint64_t x2; + uint64_t x3; + x1 = (!(!arg1)); + x2 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_int1)(0x0 - x1) & + UINT64_C(0xffffffffffffffff)); + x3 = ((x2 & arg3) | ((~x2) & arg2)); + *out1 = x3; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul multiplies two field elements and reduces the result. + * Postconditions: + * eval out1 mod m = (eval arg1 * eval arg2) mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + * arg2: [[0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + * Output Bounds: + * out1: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul( + uint64_t out1[10], const uint64_t arg1[10], const uint64_t arg2[10]) { + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x1; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x2; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x3; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x4; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x5; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x6; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x7; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x8; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x9; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x10; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x11; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x12; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x13; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x14; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x15; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x16; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x17; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x18; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x19; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x20; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x21; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x22; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x23; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x24; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x25; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x26; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x27; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x28; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x29; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x30; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x31; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x32; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x33; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x34; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x35; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x36; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x37; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x38; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x39; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x40; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x41; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x42; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x43; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x44; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x45; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x46; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x47; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x48; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x49; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x50; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x51; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x52; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x53; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x54; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x55; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x56; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x57; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x58; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x59; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x60; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x61; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x62; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x63; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x64; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x65; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x66; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x67; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x68; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x69; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x70; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x71; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x72; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x73; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x74; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x75; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x76; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x77; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x78; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x79; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x80; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x81; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x82; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x83; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x84; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x85; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x86; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x87; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x88; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x89; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x90; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x91; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x92; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x93; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x94; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x95; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x96; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x97; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x98; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x99; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x100; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x101; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x102; + uint64_t x103; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x104; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x105; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x106; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x107; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x108; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x109; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x110; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x111; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x112; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x113; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x114; + uint64_t x115; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x116; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x117; + uint64_t x118; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x119; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x120; + uint64_t x121; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x122; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x123; + uint64_t x124; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x125; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x126; + uint64_t x127; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x128; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x129; + uint64_t x130; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x131; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x132; + uint64_t x133; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x134; + uint64_t x135; + uint64_t x136; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x137; + uint64_t x138; + uint64_t x139; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x140; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x141; + uint64_t x142; + uint64_t x143; + uint64_t x144; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x145; + uint64_t x146; + uint64_t x147; + x1 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[9]) * + (arg2[9]))); + x2 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[9]) * + (arg2[8]))); + x3 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[9]) * + (arg2[7]))); + x4 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[9]) * + (arg2[6])) * + 0x2)); + x5 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[9]) * + (arg2[5]))); + x6 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[9]) * + (arg2[4]))); + x7 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[9]) * + (arg2[3]))); + x8 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[9]) * + (arg2[2]))); + x9 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[9]) * + (arg2[1])) * + 0x2)); + x10 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[8]) * + (arg2[9]))); + x11 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[8]) * + (arg2[8]))); + x12 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[8]) * + (arg2[7])) * + 0x2)); + x13 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[8]) * + (arg2[6])) * + 0x2)); + x14 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[8]) * + (arg2[5]))); + x15 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[8]) * + (arg2[4]))); + x16 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[8]) * + (arg2[3]))); + x17 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[8]) * + (arg2[2])) * + 0x2)); + x18 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[7]) * + (arg2[9]))); + x19 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[7]) * + (arg2[8])) * + 0x2)); + x20 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[7]) * + (arg2[7])) * + 0x2)); + x21 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[7]) * + (arg2[6])) * + 0x2)); + x22 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[7]) * + (arg2[5]))); + x23 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[7]) * + (arg2[4]))); + x24 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[7]) * + (arg2[3])) * + 0x2)); + x25 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[6]) * + (arg2[9])) * + 0x2)); + x26 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[6]) * + (arg2[8])) * + 0x2)); + x27 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[6]) * + (arg2[7])) * + 0x2)); + x28 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[6]) * + (arg2[6])) * + 0x2)); + x29 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[6]) * + (arg2[5]))); + x30 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[6]) * + (arg2[4])) * + 0x2)); + x31 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[5]) * + (arg2[9]))); + x32 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[5]) * + (arg2[8]))); + x33 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[5]) * + (arg2[7]))); + x34 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[5]) * + (arg2[6]))); + x35 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[5]) * + (arg2[5]))); + x36 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[4]) * + (arg2[9]))); + x37 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[4]) * + (arg2[8]))); + x38 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[4]) * + (arg2[7]))); + x39 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[4]) * + (arg2[6])) * + 0x2)); + x40 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[3]) * + (arg2[9]))); + x41 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[3]) * + (arg2[8]))); + x42 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[3]) * + (arg2[7])) * + 0x2)); + x43 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * + (arg2[9]))); + x44 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * + (arg2[8])) * + 0x2)); + x45 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * + (arg2[9])) * + 0x2)); + x46 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[9]) * + (arg2[0])); + x47 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[8]) * + ((arg2[1]) * 0x2)); + x48 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[8]) * + (arg2[0])); + x49 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[7]) * + ((arg2[2]) * 0x2)); + x50 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[7]) * + ((arg2[1]) * 0x2)); + x51 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[7]) * + (arg2[0])); + x52 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[6]) * + ((arg2[3]) * 0x2)); + x53 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[6]) * + ((arg2[2]) * 0x2)); + x54 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[6]) * + ((arg2[1]) * 0x2)); + x55 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[6]) * + (arg2[0])); + x56 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[5]) * + (arg2[4])); + x57 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[5]) * + (arg2[3])); + x58 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[5]) * + (arg2[2])); + x59 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[5]) * + (arg2[1])); + x60 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[5]) * + (arg2[0])); + x61 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[4]) * + (arg2[5])); + x62 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[4]) * + (arg2[4])); + x63 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[4]) * + (arg2[3])); + x64 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[4]) * + (arg2[2])); + x65 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[4]) * + ((arg2[1]) * 0x2)); + x66 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[4]) * + (arg2[0])); + x67 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[3]) * + ((arg2[6]) * 0x2)); + x68 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[3]) * + (arg2[5])); + x69 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[3]) * + (arg2[4])); + x70 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[3]) * + (arg2[3])); + x71 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[3]) * + ((arg2[2]) * 0x2)); + x72 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[3]) * + ((arg2[1]) * 0x2)); + x73 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[3]) * + (arg2[0])); + x74 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * + ((arg2[7]) * 0x2)); + x75 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * + ((arg2[6]) * 0x2)); + x76 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * + (arg2[5])); + x77 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * + (arg2[4])); + x78 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * + ((arg2[3]) * 0x2)); + x79 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * + ((arg2[2]) * 0x2)); + x80 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * + ((arg2[1]) * 0x2)); + x81 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * + (arg2[0])); + x82 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * + ((arg2[8]) * 0x2)); + x83 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * + ((arg2[7]) * 0x2)); + x84 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * + ((arg2[6]) * 0x2)); + x85 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * + (arg2[5])); + x86 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * + ((arg2[4]) * 0x2)); + x87 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * + ((arg2[3]) * 0x2)); + x88 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * + ((arg2[2]) * 0x2)); + x89 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * + ((arg2[1]) * 0x2)); + x90 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * + (arg2[0])); + x91 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * + (arg2[9])); + x92 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * + (arg2[8])); + x93 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * + (arg2[7])); + x94 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * + (arg2[6])); + x95 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * + (arg2[5])); + x96 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * + (arg2[4])); + x97 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * + (arg2[3])); + x98 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * + (arg2[2])); + x99 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * + (arg2[1])); + x100 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * + (arg2[0])); + x101 = (x100 + + (x45 + (x44 + (x42 + (x39 + (x35 + (x30 + (x24 + (x17 + x9))))))))); + x102 = (x101 >> 52); + x103 = (uint64_t)(x101 & UINT64_C(0xfffffffffffff)); + x104 = + (x91 + + (x82 + (x74 + (x67 + (x61 + (x56 + (x52 + (x49 + (x47 + x46))))))))); + x105 = (x92 + + (x83 + (x75 + (x68 + (x62 + (x57 + (x53 + (x50 + (x48 + x1))))))))); + x106 = (x93 + + (x84 + (x76 + (x69 + (x63 + (x58 + (x54 + (x51 + (x10 + x2))))))))); + x107 = (x94 + + (x85 + (x77 + (x70 + (x64 + (x59 + (x55 + (x18 + (x11 + x3))))))))); + x108 = (x95 + + (x86 + (x78 + (x71 + (x65 + (x60 + (x25 + (x19 + (x12 + x4))))))))); + x109 = (x96 + + (x87 + (x79 + (x72 + (x66 + (x31 + (x26 + (x20 + (x13 + x5))))))))); + x110 = (x97 + + (x88 + (x80 + (x73 + (x36 + (x32 + (x27 + (x21 + (x14 + x6))))))))); + x111 = (x98 + + (x89 + (x81 + (x40 + (x37 + (x33 + (x28 + (x22 + (x15 + x7))))))))); + x112 = (x99 + + (x90 + (x43 + (x41 + (x38 + (x34 + (x29 + (x23 + (x16 + x8))))))))); + x113 = (x102 + x112); + x114 = (x113 >> 51); + x115 = (uint64_t)(x113 & UINT64_C(0x7ffffffffffff)); + x116 = (x114 + x111); + x117 = (x116 >> 51); + x118 = (uint64_t)(x116 & UINT64_C(0x7ffffffffffff)); + x119 = (x117 + x110); + x120 = (x119 >> 51); + x121 = (uint64_t)(x119 & UINT64_C(0x7ffffffffffff)); + x122 = (x120 + x109); + x123 = (x122 >> 51); + x124 = (uint64_t)(x122 & UINT64_C(0x7ffffffffffff)); + x125 = (x123 + x108); + x126 = (x125 >> 52); + x127 = (uint64_t)(x125 & UINT64_C(0xfffffffffffff)); + x128 = (x126 + x107); + x129 = (x128 >> 51); + x130 = (uint64_t)(x128 & UINT64_C(0x7ffffffffffff)); + x131 = (x129 + x106); + x132 = (x131 >> 51); + x133 = (uint64_t)(x131 & UINT64_C(0x7ffffffffffff)); + x134 = (x132 + x105); + x135 = (uint64_t)(x134 >> 51); + x136 = (uint64_t)(x134 & UINT64_C(0x7ffffffffffff)); + x137 = (x135 + x104); + x138 = (uint64_t)(x137 >> 51); + x139 = (uint64_t)(x137 & UINT64_C(0x7ffffffffffff)); + x140 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)UINT16_C(0x239) * + x138); + x141 = (x103 + x140); + x142 = (uint64_t)(x141 >> 52); + x143 = (uint64_t)(x141 & UINT64_C(0xfffffffffffff)); + x144 = (x142 + x115); + x145 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x144 >> 51); + x146 = (x144 & UINT64_C(0x7ffffffffffff)); + x147 = (x145 + x118); + out1[0] = x143; + out1[1] = x146; + out1[2] = x147; + out1[3] = x121; + out1[4] = x124; + out1[5] = x127; + out1[6] = x130; + out1[7] = x133; + out1[8] = x136; + out1[9] = x139; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square squares a field element and reduces the result. + * Postconditions: + * eval out1 mod m = (eval arg1 * eval arg1) mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + * Output Bounds: + * out1: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square( + uint64_t out1[10], const uint64_t arg1[10]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + uint64_t x5; + uint64_t x6; + uint64_t x7; + uint64_t x8; + uint64_t x9; + uint64_t x10; + uint64_t x11; + uint64_t x12; + uint64_t x13; + uint64_t x14; + uint64_t x15; + uint64_t x16; + uint64_t x17; + uint64_t x18; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x19; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x20; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x21; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x22; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x23; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x24; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x25; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x26; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x27; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x28; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x29; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x30; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x31; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x32; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x33; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x34; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x35; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x36; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x37; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x38; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x39; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x40; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x41; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x42; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x43; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x44; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x45; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x46; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x47; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x48; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x49; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x50; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x51; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x52; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x53; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x54; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x55; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x56; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x57; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x58; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x59; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x60; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x61; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x62; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x63; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x64; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x65; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x66; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x67; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x68; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x69; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x70; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x71; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x72; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x73; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x74; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x75; + uint64_t x76; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x77; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x78; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x79; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x80; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x81; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x82; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x83; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x84; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x85; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x86; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x87; + uint64_t x88; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x89; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x90; + uint64_t x91; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x92; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x93; + uint64_t x94; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x95; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x96; + uint64_t x97; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x98; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x99; + uint64_t x100; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x101; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x102; + uint64_t x103; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x104; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x105; + uint64_t x106; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x107; + uint64_t x108; + uint64_t x109; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x110; + uint64_t x111; + uint64_t x112; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x113; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x114; + uint64_t x115; + uint64_t x116; + uint64_t x117; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x118; + uint64_t x119; + uint64_t x120; + x1 = ((arg1[9]) * UINT16_C(0x239)); + x2 = (x1 * 0x2); + x3 = ((arg1[9]) * 0x2); + x4 = ((arg1[8]) * UINT16_C(0x239)); + x5 = (x4 * 0x2); + x6 = ((arg1[8]) * 0x2); + x7 = ((arg1[7]) * UINT16_C(0x239)); + x8 = (x7 * 0x2); + x9 = ((arg1[7]) * 0x2); + x10 = ((arg1[6]) * UINT16_C(0x239)); + x11 = (x10 * 0x2); + x12 = ((arg1[6]) * 0x2); + x13 = ((arg1[5]) * UINT16_C(0x239)); + x14 = ((arg1[5]) * 0x2); + x15 = ((arg1[4]) * 0x2); + x16 = ((arg1[3]) * 0x2); + x17 = ((arg1[2]) * 0x2); + x18 = ((arg1[1]) * 0x2); + x19 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[9]) * x1); + x20 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[8]) * x2); + x21 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[8]) * x4); + x22 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[7]) * x2); + x23 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[7]) * + (x5 * 0x2)); + x24 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[7]) * + (x7 * 0x2)); + x25 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[6]) * + (x2 * 0x2)); + x26 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[6]) * + (x5 * 0x2)); + x27 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[6]) * + (x8 * 0x2)); + x28 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[6]) * + (x10 * 0x2)); + x29 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[5]) * x2); + x30 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[5]) * x5); + x31 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[5]) * x8); + x32 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[5]) * x11); + x33 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[5]) * x13); + x34 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[4]) * x2); + x35 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[4]) * x5); + x36 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[4]) * x8); + x37 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[4]) * + (x11 * 0x2)); + x38 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[4]) * x14); + x39 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[4]) * + (arg1[4])); + x40 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[3]) * x2); + x41 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[3]) * x5); + x42 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[3]) * + (x8 * 0x2)); + x43 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[3]) * + (x12 * 0x2)); + x44 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[3]) * x14); + x45 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[3]) * x15); + x46 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[3]) * + (arg1[3])); + x47 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * x2); + x48 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * + (x5 * 0x2)); + x49 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * + (x9 * 0x2)); + x50 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * + (x12 * 0x2)); + x51 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * x14); + x52 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * x15); + x53 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * + (x16 * 0x2)); + x54 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * + ((arg1[2]) * 0x2)); + x55 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * + (x2 * 0x2)); + x56 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * + (x6 * 0x2)); + x57 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * + (x9 * 0x2)); + x58 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * + (x12 * 0x2)); + x59 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * x14); + x60 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * + (x15 * 0x2)); + x61 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * + (x16 * 0x2)); + x62 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * + (x17 * 0x2)); + x63 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * + ((arg1[1]) * 0x2)); + x64 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * x3); + x65 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * x6); + x66 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * x9); + x67 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * x12); + x68 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * x14); + x69 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * x15); + x70 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * x16); + x71 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * x17); + x72 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * x18); + x73 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * + (arg1[0])); + x74 = (x73 + (x55 + (x48 + (x42 + (x37 + x33))))); + x75 = (x74 >> 52); + x76 = (uint64_t)(x74 & UINT64_C(0xfffffffffffff)); + x77 = (x64 + (x56 + (x49 + (x43 + x38)))); + x78 = (x65 + (x57 + (x50 + (x44 + (x39 + x19))))); + x79 = (x66 + (x58 + (x51 + (x45 + x20)))); + x80 = (x67 + (x59 + (x52 + (x46 + (x22 + x21))))); + x81 = (x68 + (x60 + (x53 + (x25 + x23)))); + x82 = (x69 + (x61 + (x54 + (x29 + (x26 + x24))))); + x83 = (x70 + (x62 + (x34 + (x30 + x27)))); + x84 = (x71 + (x63 + (x40 + (x35 + (x31 + x28))))); + x85 = (x72 + (x47 + (x41 + (x36 + x32)))); + x86 = (x75 + x85); + x87 = (x86 >> 51); + x88 = (uint64_t)(x86 & UINT64_C(0x7ffffffffffff)); + x89 = (x87 + x84); + x90 = (x89 >> 51); + x91 = (uint64_t)(x89 & UINT64_C(0x7ffffffffffff)); + x92 = (x90 + x83); + x93 = (x92 >> 51); + x94 = (uint64_t)(x92 & UINT64_C(0x7ffffffffffff)); + x95 = (x93 + x82); + x96 = (x95 >> 51); + x97 = (uint64_t)(x95 & UINT64_C(0x7ffffffffffff)); + x98 = (x96 + x81); + x99 = (x98 >> 52); + x100 = (uint64_t)(x98 & UINT64_C(0xfffffffffffff)); + x101 = (x99 + x80); + x102 = (x101 >> 51); + x103 = (uint64_t)(x101 & UINT64_C(0x7ffffffffffff)); + x104 = (x102 + x79); + x105 = (x104 >> 51); + x106 = (uint64_t)(x104 & UINT64_C(0x7ffffffffffff)); + x107 = (x105 + x78); + x108 = (uint64_t)(x107 >> 51); + x109 = (uint64_t)(x107 & UINT64_C(0x7ffffffffffff)); + x110 = (x108 + x77); + x111 = (uint64_t)(x110 >> 51); + x112 = (uint64_t)(x110 & UINT64_C(0x7ffffffffffff)); + x113 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)UINT16_C(0x239) * + x111); + x114 = (x76 + x113); + x115 = (uint64_t)(x114 >> 52); + x116 = (uint64_t)(x114 & UINT64_C(0xfffffffffffff)); + x117 = (x115 + x88); + x118 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x117 >> 51); + x119 = (x117 & UINT64_C(0x7ffffffffffff)); + x120 = (x118 + x91); + out1[0] = x116; + out1[1] = x119; + out1[2] = x120; + out1[3] = x94; + out1[4] = x97; + out1[5] = x100; + out1[6] = x103; + out1[7] = x106; + out1[8] = x109; + out1[9] = x112; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_carry reduces a field element. + * Postconditions: + * eval out1 mod m = eval arg1 mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + * Output Bounds: + * out1: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetC_carry( + uint64_t out1[10], const uint64_t arg1[10]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + uint64_t x5; + uint64_t x6; + uint64_t x7; + uint64_t x8; + uint64_t x9; + uint64_t x10; + uint64_t x11; + uint64_t x12; + uint64_t x13; + uint64_t x14; + uint64_t x15; + uint64_t x16; + uint64_t x17; + uint64_t x18; + uint64_t x19; + uint64_t x20; + uint64_t x21; + uint64_t x22; + x1 = (arg1[0]); + x2 = ((x1 >> 52) + (arg1[1])); + x3 = ((x2 >> 51) + (arg1[2])); + x4 = ((x3 >> 51) + (arg1[3])); + x5 = ((x4 >> 51) + (arg1[4])); + x6 = ((x5 >> 51) + (arg1[5])); + x7 = ((x6 >> 52) + (arg1[6])); + x8 = ((x7 >> 51) + (arg1[7])); + x9 = ((x8 >> 51) + (arg1[8])); + x10 = ((x9 >> 51) + (arg1[9])); + x11 = ((x1 & UINT64_C(0xfffffffffffff)) + (UINT16_C(0x239) * (x10 >> 51))); + x12 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x11 >> 52) + + (x2 & UINT64_C(0x7ffffffffffff))); + x13 = (x11 & UINT64_C(0xfffffffffffff)); + x14 = (x12 & UINT64_C(0x7ffffffffffff)); + x15 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x12 >> 51) + + (x3 & UINT64_C(0x7ffffffffffff))); + x16 = (x4 & UINT64_C(0x7ffffffffffff)); + x17 = (x5 & UINT64_C(0x7ffffffffffff)); + x18 = (x6 & UINT64_C(0xfffffffffffff)); + x19 = (x7 & UINT64_C(0x7ffffffffffff)); + x20 = (x8 & UINT64_C(0x7ffffffffffff)); + x21 = (x9 & UINT64_C(0x7ffffffffffff)); + x22 = (x10 & UINT64_C(0x7ffffffffffff)); + out1[0] = x13; + out1[1] = x14; + out1[2] = x15; + out1[3] = x16; + out1[4] = x17; + out1[5] = x18; + out1[6] = x19; + out1[7] = x20; + out1[8] = x21; + out1[9] = x22; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_add adds two field elements. + * Postconditions: + * eval out1 mod m = (eval arg1 + eval arg2) mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + * arg2: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + * Output Bounds: + * out1: [[0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetC_add( + uint64_t out1[10], const uint64_t arg1[10], const uint64_t arg2[10]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + uint64_t x5; + uint64_t x6; + uint64_t x7; + uint64_t x8; + uint64_t x9; + uint64_t x10; + x1 = ((arg1[0]) + (arg2[0])); + x2 = ((arg1[1]) + (arg2[1])); + x3 = ((arg1[2]) + (arg2[2])); + x4 = ((arg1[3]) + (arg2[3])); + x5 = ((arg1[4]) + (arg2[4])); + x6 = ((arg1[5]) + (arg2[5])); + x7 = ((arg1[6]) + (arg2[6])); + x8 = ((arg1[7]) + (arg2[7])); + x9 = ((arg1[8]) + (arg2[8])); + x10 = ((arg1[9]) + (arg2[9])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; + out1[4] = x5; + out1[5] = x6; + out1[6] = x7; + out1[7] = x8; + out1[8] = x9; + out1[9] = x10; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_sub subtracts two field elements. + * Postconditions: + * eval out1 mod m = (eval arg1 - eval arg2) mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + * arg2: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + * Output Bounds: + * out1: [[0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetC_sub( + uint64_t out1[10], const uint64_t arg1[10], const uint64_t arg2[10]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + uint64_t x5; + uint64_t x6; + uint64_t x7; + uint64_t x8; + uint64_t x9; + uint64_t x10; + x1 = ((UINT64_C(0x1ffffffffffb8e) + (arg1[0])) - (arg2[0])); + x2 = ((UINT64_C(0xffffffffffffe) + (arg1[1])) - (arg2[1])); + x3 = ((UINT64_C(0xffffffffffffe) + (arg1[2])) - (arg2[2])); + x4 = ((UINT64_C(0xffffffffffffe) + (arg1[3])) - (arg2[3])); + x5 = ((UINT64_C(0xffffffffffffe) + (arg1[4])) - (arg2[4])); + x6 = ((UINT64_C(0x1ffffffffffffe) + (arg1[5])) - (arg2[5])); + x7 = ((UINT64_C(0xffffffffffffe) + (arg1[6])) - (arg2[6])); + x8 = ((UINT64_C(0xffffffffffffe) + (arg1[7])) - (arg2[7])); + x9 = ((UINT64_C(0xffffffffffffe) + (arg1[8])) - (arg2[8])); + x10 = ((UINT64_C(0xffffffffffffe) + (arg1[9])) - (arg2[9])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; + out1[4] = x5; + out1[5] = x6; + out1[6] = x7; + out1[7] = x8; + out1[8] = x9; + out1[9] = x10; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_opp negates a field element. + * Postconditions: + * eval out1 mod m = -eval arg1 mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + * Output Bounds: + * out1: [[0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetC_opp( + uint64_t out1[10], const uint64_t arg1[10]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + uint64_t x5; + uint64_t x6; + uint64_t x7; + uint64_t x8; + uint64_t x9; + uint64_t x10; + x1 = (UINT64_C(0x1ffffffffffb8e) - (arg1[0])); + x2 = (UINT64_C(0xffffffffffffe) - (arg1[1])); + x3 = (UINT64_C(0xffffffffffffe) - (arg1[2])); + x4 = (UINT64_C(0xffffffffffffe) - (arg1[3])); + x5 = (UINT64_C(0xffffffffffffe) - (arg1[4])); + x6 = (UINT64_C(0x1ffffffffffffe) - (arg1[5])); + x7 = (UINT64_C(0xffffffffffffe) - (arg1[6])); + x8 = (UINT64_C(0xffffffffffffe) - (arg1[7])); + x9 = (UINT64_C(0xffffffffffffe) - (arg1[8])); + x10 = (UINT64_C(0xffffffffffffe) - (arg1[9])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; + out1[4] = x5; + out1[5] = x6; + out1[6] = x7; + out1[7] = x8; + out1[8] = x9; + out1[9] = x10; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz is a multi-limb conditional select. + * Postconditions: + * eval out1 = (if arg1 = 0 then eval arg2 else eval arg3) + * + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * arg3: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz( + uint64_t out1[10], fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 arg1, + const uint64_t arg2[10], const uint64_t arg3[10]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + uint64_t x5; + uint64_t x6; + uint64_t x7; + uint64_t x8; + uint64_t x9; + uint64_t x10; + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u64(&x1, arg1, (arg2[0]), + (arg3[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u64(&x2, arg1, (arg2[1]), + (arg3[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u64(&x3, arg1, (arg2[2]), + (arg3[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u64(&x4, arg1, (arg2[3]), + (arg3[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u64(&x5, arg1, (arg2[4]), + (arg3[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u64(&x6, arg1, (arg2[5]), + (arg3[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u64(&x7, arg1, (arg2[6]), + (arg3[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u64(&x8, arg1, (arg2[7]), + (arg3[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u64(&x9, arg1, (arg2[8]), + (arg3[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u64(&x10, arg1, (arg2[9]), + (arg3[9])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; + out1[4] = x5; + out1[5] = x6; + out1[6] = x7; + out1[7] = x8; + out1[8] = x9; + out1[9] = x10; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_to_bytes serializes a field element to bytes in little-endian order. + * Postconditions: + * out1 = map (λ x, ⌊((eval arg1 mod m) mod 2^(8 * (x + 1))) / 2^(8 * x)⌋) [0..63] + * + * Input Bounds: + * arg1: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + * Output Bounds: + * out1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetC_to_bytes( + uint8_t out1[64], const uint64_t arg1[10]) { + uint64_t x1; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x2; + uint64_t x3; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x4; + uint64_t x5; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x6; + uint64_t x7; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x8; + uint64_t x9; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x10; + uint64_t x11; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x12; + uint64_t x13; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x14; + uint64_t x15; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x16; + uint64_t x17; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x18; + uint64_t x19; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x20; + uint64_t x21; + uint64_t x22; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x23; + uint64_t x24; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x25; + uint64_t x26; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x27; + uint64_t x28; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x29; + uint64_t x30; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x31; + uint64_t x32; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x33; + uint64_t x34; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x35; + uint64_t x36; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x37; + uint64_t x38; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x39; + uint64_t x40; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x41; + uint64_t x42; + uint64_t x43; + uint64_t x44; + uint64_t x45; + uint64_t x46; + uint64_t x47; + uint64_t x48; + uint64_t x49; + uint64_t x50; + uint8_t x51; + uint64_t x52; + uint8_t x53; + uint64_t x54; + uint8_t x55; + uint64_t x56; + uint8_t x57; + uint64_t x58; + uint8_t x59; + uint8_t x60; + uint8_t x61; + uint64_t x62; + uint64_t x63; + uint8_t x64; + uint64_t x65; + uint8_t x66; + uint64_t x67; + uint8_t x68; + uint64_t x69; + uint8_t x70; + uint64_t x71; + uint8_t x72; + uint8_t x73; + uint8_t x74; + uint64_t x75; + uint64_t x76; + uint8_t x77; + uint64_t x78; + uint8_t x79; + uint64_t x80; + uint8_t x81; + uint64_t x82; + uint8_t x83; + uint64_t x84; + uint8_t x85; + uint64_t x86; + uint8_t x87; + uint8_t x88; + uint8_t x89; + uint64_t x90; + uint64_t x91; + uint8_t x92; + uint64_t x93; + uint8_t x94; + uint64_t x95; + uint8_t x96; + uint64_t x97; + uint8_t x98; + uint64_t x99; + uint8_t x100; + uint8_t x101; + uint8_t x102; + uint64_t x103; + uint64_t x104; + uint8_t x105; + uint64_t x106; + uint8_t x107; + uint64_t x108; + uint8_t x109; + uint64_t x110; + uint8_t x111; + uint64_t x112; + uint8_t x113; + uint8_t x114; + uint8_t x115; + uint8_t x116; + uint64_t x117; + uint8_t x118; + uint64_t x119; + uint8_t x120; + uint64_t x121; + uint8_t x122; + uint64_t x123; + uint8_t x124; + uint64_t x125; + uint8_t x126; + uint8_t x127; + uint8_t x128; + uint64_t x129; + uint64_t x130; + uint8_t x131; + uint64_t x132; + uint8_t x133; + uint64_t x134; + uint8_t x135; + uint64_t x136; + uint8_t x137; + uint64_t x138; + uint8_t x139; + uint8_t x140; + uint8_t x141; + uint64_t x142; + uint64_t x143; + uint8_t x144; + uint64_t x145; + uint8_t x146; + uint64_t x147; + uint8_t x148; + uint64_t x149; + uint8_t x150; + uint64_t x151; + uint8_t x152; + uint64_t x153; + uint8_t x154; + uint8_t x155; + uint8_t x156; + uint64_t x157; + uint64_t x158; + uint8_t x159; + uint64_t x160; + uint8_t x161; + uint64_t x162; + uint8_t x163; + uint64_t x164; + uint8_t x165; + uint64_t x166; + uint8_t x167; + uint8_t x168; + uint8_t x169; + uint64_t x170; + uint64_t x171; + uint8_t x172; + uint64_t x173; + uint8_t x174; + uint64_t x175; + uint8_t x176; + uint64_t x177; + uint8_t x178; + uint64_t x179; + uint8_t x180; + uint8_t x181; + uint8_t x182; + fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u52( + &x1, &x2, 0x0, (arg1[0]), UINT64_C(0xffffffffffdc7)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u51( + &x3, &x4, x2, (arg1[1]), UINT64_C(0x7ffffffffffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u51( + &x5, &x6, x4, (arg1[2]), UINT64_C(0x7ffffffffffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u51( + &x7, &x8, x6, (arg1[3]), UINT64_C(0x7ffffffffffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u51( + &x9, &x10, x8, (arg1[4]), UINT64_C(0x7ffffffffffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u52( + &x11, &x12, x10, (arg1[5]), UINT64_C(0xfffffffffffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u51( + &x13, &x14, x12, (arg1[6]), UINT64_C(0x7ffffffffffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u51( + &x15, &x16, x14, (arg1[7]), UINT64_C(0x7ffffffffffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u51( + &x17, &x18, x16, (arg1[8]), UINT64_C(0x7ffffffffffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u51( + &x19, &x20, x18, (arg1[9]), UINT64_C(0x7ffffffffffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u64( + &x21, x20, 0x0, UINT64_C(0xffffffffffffffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u52( + &x22, &x23, 0x0, x1, (x21 & UINT64_C(0xffffffffffdc7))); + fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u51( + &x24, &x25, x23, x3, (x21 & UINT64_C(0x7ffffffffffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u51( + &x26, &x27, x25, x5, (x21 & UINT64_C(0x7ffffffffffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u51( + &x28, &x29, x27, x7, (x21 & UINT64_C(0x7ffffffffffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u51( + &x30, &x31, x29, x9, (x21 & UINT64_C(0x7ffffffffffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u52( + &x32, &x33, x31, x11, (x21 & UINT64_C(0xfffffffffffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u51( + &x34, &x35, x33, x13, (x21 & UINT64_C(0x7ffffffffffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u51( + &x36, &x37, x35, x15, (x21 & UINT64_C(0x7ffffffffffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u51( + &x38, &x39, x37, x17, (x21 & UINT64_C(0x7ffffffffffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u51( + &x40, &x41, x39, x19, (x21 & UINT64_C(0x7ffffffffffff))); + x42 = (x40 << 5); + x43 = (x38 << 2); + x44 = (x36 << 7); + x45 = (x34 << 4); + x46 = (x30 << 5); + x47 = (x28 << 2); + x48 = (x26 << 7); + x49 = (x24 << 4); + x50 = (x22 >> 8); + x51 = (uint8_t)(x22 & UINT8_C(0xff)); + x52 = (x50 >> 8); + x53 = (uint8_t)(x50 & UINT8_C(0xff)); + x54 = (x52 >> 8); + x55 = (uint8_t)(x52 & UINT8_C(0xff)); + x56 = (x54 >> 8); + x57 = (uint8_t)(x54 & UINT8_C(0xff)); + x58 = (x56 >> 8); + x59 = (uint8_t)(x56 & UINT8_C(0xff)); + x60 = (uint8_t)(x58 >> 8); + x61 = (uint8_t)(x58 & UINT8_C(0xff)); + x62 = (x60 + x49); + x63 = (x62 >> 8); + x64 = (uint8_t)(x62 & UINT8_C(0xff)); + x65 = (x63 >> 8); + x66 = (uint8_t)(x63 & UINT8_C(0xff)); + x67 = (x65 >> 8); + x68 = (uint8_t)(x65 & UINT8_C(0xff)); + x69 = (x67 >> 8); + x70 = (uint8_t)(x67 & UINT8_C(0xff)); + x71 = (x69 >> 8); + x72 = (uint8_t)(x69 & UINT8_C(0xff)); + x73 = (uint8_t)(x71 >> 8); + x74 = (uint8_t)(x71 & UINT8_C(0xff)); + x75 = (x73 + x48); + x76 = (x75 >> 8); + x77 = (uint8_t)(x75 & UINT8_C(0xff)); + x78 = (x76 >> 8); + x79 = (uint8_t)(x76 & UINT8_C(0xff)); + x80 = (x78 >> 8); + x81 = (uint8_t)(x78 & UINT8_C(0xff)); + x82 = (x80 >> 8); + x83 = (uint8_t)(x80 & UINT8_C(0xff)); + x84 = (x82 >> 8); + x85 = (uint8_t)(x82 & UINT8_C(0xff)); + x86 = (x84 >> 8); + x87 = (uint8_t)(x84 & UINT8_C(0xff)); + x88 = (uint8_t)(x86 >> 8); + x89 = (uint8_t)(x86 & UINT8_C(0xff)); + x90 = (x88 + x47); + x91 = (x90 >> 8); + x92 = (uint8_t)(x90 & UINT8_C(0xff)); + x93 = (x91 >> 8); + x94 = (uint8_t)(x91 & UINT8_C(0xff)); + x95 = (x93 >> 8); + x96 = (uint8_t)(x93 & UINT8_C(0xff)); + x97 = (x95 >> 8); + x98 = (uint8_t)(x95 & UINT8_C(0xff)); + x99 = (x97 >> 8); + x100 = (uint8_t)(x97 & UINT8_C(0xff)); + x101 = (uint8_t)(x99 >> 8); + x102 = (uint8_t)(x99 & UINT8_C(0xff)); + x103 = (x101 + x46); + x104 = (x103 >> 8); + x105 = (uint8_t)(x103 & UINT8_C(0xff)); + x106 = (x104 >> 8); + x107 = (uint8_t)(x104 & UINT8_C(0xff)); + x108 = (x106 >> 8); + x109 = (uint8_t)(x106 & UINT8_C(0xff)); + x110 = (x108 >> 8); + x111 = (uint8_t)(x108 & UINT8_C(0xff)); + x112 = (x110 >> 8); + x113 = (uint8_t)(x110 & UINT8_C(0xff)); + x114 = (uint8_t)(x112 >> 8); + x115 = (uint8_t)(x112 & UINT8_C(0xff)); + x116 = (uint8_t)(x114 & UINT8_C(0xff)); + x117 = (x32 >> 8); + x118 = (uint8_t)(x32 & UINT8_C(0xff)); + x119 = (x117 >> 8); + x120 = (uint8_t)(x117 & UINT8_C(0xff)); + x121 = (x119 >> 8); + x122 = (uint8_t)(x119 & UINT8_C(0xff)); + x123 = (x121 >> 8); + x124 = (uint8_t)(x121 & UINT8_C(0xff)); + x125 = (x123 >> 8); + x126 = (uint8_t)(x123 & UINT8_C(0xff)); + x127 = (uint8_t)(x125 >> 8); + x128 = (uint8_t)(x125 & UINT8_C(0xff)); + x129 = (x127 + x45); + x130 = (x129 >> 8); + x131 = (uint8_t)(x129 & UINT8_C(0xff)); + x132 = (x130 >> 8); + x133 = (uint8_t)(x130 & UINT8_C(0xff)); + x134 = (x132 >> 8); + x135 = (uint8_t)(x132 & UINT8_C(0xff)); + x136 = (x134 >> 8); + x137 = (uint8_t)(x134 & UINT8_C(0xff)); + x138 = (x136 >> 8); + x139 = (uint8_t)(x136 & UINT8_C(0xff)); + x140 = (uint8_t)(x138 >> 8); + x141 = (uint8_t)(x138 & UINT8_C(0xff)); + x142 = (x140 + x44); + x143 = (x142 >> 8); + x144 = (uint8_t)(x142 & UINT8_C(0xff)); + x145 = (x143 >> 8); + x146 = (uint8_t)(x143 & UINT8_C(0xff)); + x147 = (x145 >> 8); + x148 = (uint8_t)(x145 & UINT8_C(0xff)); + x149 = (x147 >> 8); + x150 = (uint8_t)(x147 & UINT8_C(0xff)); + x151 = (x149 >> 8); + x152 = (uint8_t)(x149 & UINT8_C(0xff)); + x153 = (x151 >> 8); + x154 = (uint8_t)(x151 & UINT8_C(0xff)); + x155 = (uint8_t)(x153 >> 8); + x156 = (uint8_t)(x153 & UINT8_C(0xff)); + x157 = (x155 + x43); + x158 = (x157 >> 8); + x159 = (uint8_t)(x157 & UINT8_C(0xff)); + x160 = (x158 >> 8); + x161 = (uint8_t)(x158 & UINT8_C(0xff)); + x162 = (x160 >> 8); + x163 = (uint8_t)(x160 & UINT8_C(0xff)); + x164 = (x162 >> 8); + x165 = (uint8_t)(x162 & UINT8_C(0xff)); + x166 = (x164 >> 8); + x167 = (uint8_t)(x164 & UINT8_C(0xff)); + x168 = (uint8_t)(x166 >> 8); + x169 = (uint8_t)(x166 & UINT8_C(0xff)); + x170 = (x168 + x42); + x171 = (x170 >> 8); + x172 = (uint8_t)(x170 & UINT8_C(0xff)); + x173 = (x171 >> 8); + x174 = (uint8_t)(x171 & UINT8_C(0xff)); + x175 = (x173 >> 8); + x176 = (uint8_t)(x173 & UINT8_C(0xff)); + x177 = (x175 >> 8); + x178 = (uint8_t)(x175 & UINT8_C(0xff)); + x179 = (x177 >> 8); + x180 = (uint8_t)(x177 & UINT8_C(0xff)); + x181 = (uint8_t)(x179 >> 8); + x182 = (uint8_t)(x179 & UINT8_C(0xff)); + out1[0] = x51; + out1[1] = x53; + out1[2] = x55; + out1[3] = x57; + out1[4] = x59; + out1[5] = x61; + out1[6] = x64; + out1[7] = x66; + out1[8] = x68; + out1[9] = x70; + out1[10] = x72; + out1[11] = x74; + out1[12] = x77; + out1[13] = x79; + out1[14] = x81; + out1[15] = x83; + out1[16] = x85; + out1[17] = x87; + out1[18] = x89; + out1[19] = x92; + out1[20] = x94; + out1[21] = x96; + out1[22] = x98; + out1[23] = x100; + out1[24] = x102; + out1[25] = x105; + out1[26] = x107; + out1[27] = x109; + out1[28] = x111; + out1[29] = x113; + out1[30] = x115; + out1[31] = x116; + out1[32] = x118; + out1[33] = x120; + out1[34] = x122; + out1[35] = x124; + out1[36] = x126; + out1[37] = x128; + out1[38] = x131; + out1[39] = x133; + out1[40] = x135; + out1[41] = x137; + out1[42] = x139; + out1[43] = x141; + out1[44] = x144; + out1[45] = x146; + out1[46] = x148; + out1[47] = x150; + out1[48] = x152; + out1[49] = x154; + out1[50] = x156; + out1[51] = x159; + out1[52] = x161; + out1[53] = x163; + out1[54] = x165; + out1[55] = x167; + out1[56] = x169; + out1[57] = x172; + out1[58] = x174; + out1[59] = x176; + out1[60] = x178; + out1[61] = x180; + out1[62] = x182; + out1[63] = x181; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_from_bytes deserializes a field element from bytes in little-endian order. + * Postconditions: + * eval out1 mod m = bytes_eval arg1 mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff]] + * Output Bounds: + * out1: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetC_from_bytes( + uint64_t out1[10], const uint8_t arg1[64]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + uint64_t x5; + uint64_t x6; + uint64_t x7; + uint64_t x8; + uint64_t x9; + uint64_t x10; + uint64_t x11; + uint64_t x12; + uint64_t x13; + uint64_t x14; + uint64_t x15; + uint64_t x16; + uint64_t x17; + uint64_t x18; + uint64_t x19; + uint64_t x20; + uint64_t x21; + uint64_t x22; + uint64_t x23; + uint64_t x24; + uint64_t x25; + uint64_t x26; + uint64_t x27; + uint64_t x28; + uint64_t x29; + uint64_t x30; + uint64_t x31; + uint8_t x32; + uint64_t x33; + uint64_t x34; + uint64_t x35; + uint64_t x36; + uint64_t x37; + uint64_t x38; + uint64_t x39; + uint64_t x40; + uint64_t x41; + uint64_t x42; + uint64_t x43; + uint64_t x44; + uint64_t x45; + uint64_t x46; + uint64_t x47; + uint64_t x48; + uint64_t x49; + uint64_t x50; + uint64_t x51; + uint64_t x52; + uint64_t x53; + uint64_t x54; + uint64_t x55; + uint64_t x56; + uint64_t x57; + uint64_t x58; + uint64_t x59; + uint64_t x60; + uint64_t x61; + uint64_t x62; + uint64_t x63; + uint8_t x64; + uint64_t x65; + uint8_t x66; + uint64_t x67; + uint64_t x68; + uint64_t x69; + uint64_t x70; + uint64_t x71; + uint64_t x72; + uint64_t x73; + uint64_t x74; + uint64_t x75; + uint64_t x76; + uint64_t x77; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x78; + uint64_t x79; + uint64_t x80; + uint8_t x81; + uint64_t x82; + uint64_t x83; + uint8_t x84; + uint64_t x85; + uint64_t x86; + uint64_t x87; + uint8_t x88; + uint64_t x89; + uint64_t x90; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x91; + uint64_t x92; + uint64_t x93; + uint8_t x94; + uint64_t x95; + uint64_t x96; + uint8_t x97; + uint64_t x98; + uint64_t x99; + x1 = ((uint64_t)(arg1[63]) << 43); + x2 = ((uint64_t)(arg1[62]) << 35); + x3 = ((uint64_t)(arg1[61]) << 27); + x4 = ((uint64_t)(arg1[60]) << 19); + x5 = ((uint64_t)(arg1[59]) << 11); + x6 = ((uint64_t)(arg1[58]) << 3); + x7 = ((uint64_t)(arg1[57]) << 46); + x8 = ((uint64_t)(arg1[56]) << 38); + x9 = ((uint64_t)(arg1[55]) << 30); + x10 = ((uint64_t)(arg1[54]) << 22); + x11 = ((uint64_t)(arg1[53]) << 14); + x12 = ((uint64_t)(arg1[52]) << 6); + x13 = ((uint64_t)(arg1[51]) << 49); + x14 = ((uint64_t)(arg1[50]) << 41); + x15 = ((uint64_t)(arg1[49]) << 33); + x16 = ((uint64_t)(arg1[48]) << 25); + x17 = ((uint64_t)(arg1[47]) << 17); + x18 = ((uint64_t)(arg1[46]) << 9); + x19 = ((uint64_t)(arg1[45]) * 0x2); + x20 = ((uint64_t)(arg1[44]) << 44); + x21 = ((uint64_t)(arg1[43]) << 36); + x22 = ((uint64_t)(arg1[42]) << 28); + x23 = ((uint64_t)(arg1[41]) << 20); + x24 = ((uint64_t)(arg1[40]) << 12); + x25 = ((uint64_t)(arg1[39]) << 4); + x26 = ((uint64_t)(arg1[38]) << 48); + x27 = ((uint64_t)(arg1[37]) << 40); + x28 = ((uint64_t)(arg1[36]) << 32); + x29 = ((uint64_t)(arg1[35]) << 24); + x30 = ((uint64_t)(arg1[34]) << 16); + x31 = ((uint64_t)(arg1[33]) << 8); + x32 = (arg1[32]); + x33 = ((uint64_t)(arg1[31]) << 43); + x34 = ((uint64_t)(arg1[30]) << 35); + x35 = ((uint64_t)(arg1[29]) << 27); + x36 = ((uint64_t)(arg1[28]) << 19); + x37 = ((uint64_t)(arg1[27]) << 11); + x38 = ((uint64_t)(arg1[26]) << 3); + x39 = ((uint64_t)(arg1[25]) << 46); + x40 = ((uint64_t)(arg1[24]) << 38); + x41 = ((uint64_t)(arg1[23]) << 30); + x42 = ((uint64_t)(arg1[22]) << 22); + x43 = ((uint64_t)(arg1[21]) << 14); + x44 = ((uint64_t)(arg1[20]) << 6); + x45 = ((uint64_t)(arg1[19]) << 49); + x46 = ((uint64_t)(arg1[18]) << 41); + x47 = ((uint64_t)(arg1[17]) << 33); + x48 = ((uint64_t)(arg1[16]) << 25); + x49 = ((uint64_t)(arg1[15]) << 17); + x50 = ((uint64_t)(arg1[14]) << 9); + x51 = ((uint64_t)(arg1[13]) * 0x2); + x52 = ((uint64_t)(arg1[12]) << 44); + x53 = ((uint64_t)(arg1[11]) << 36); + x54 = ((uint64_t)(arg1[10]) << 28); + x55 = ((uint64_t)(arg1[9]) << 20); + x56 = ((uint64_t)(arg1[8]) << 12); + x57 = ((uint64_t)(arg1[7]) << 4); + x58 = ((uint64_t)(arg1[6]) << 48); + x59 = ((uint64_t)(arg1[5]) << 40); + x60 = ((uint64_t)(arg1[4]) << 32); + x61 = ((uint64_t)(arg1[3]) << 24); + x62 = ((uint64_t)(arg1[2]) << 16); + x63 = ((uint64_t)(arg1[1]) << 8); + x64 = (arg1[0]); + x65 = (x64 + (x63 + (x62 + (x61 + (x60 + (x59 + x58)))))); + x66 = (uint8_t)(x65 >> 52); + x67 = (x65 & UINT64_C(0xfffffffffffff)); + x68 = (x6 + (x5 + (x4 + (x3 + (x2 + x1))))); + x69 = (x12 + (x11 + (x10 + (x9 + (x8 + x7))))); + x70 = (x19 + (x18 + (x17 + (x16 + (x15 + (x14 + x13)))))); + x71 = (x25 + (x24 + (x23 + (x22 + (x21 + x20))))); + x72 = (x32 + (x31 + (x30 + (x29 + (x28 + (x27 + x26)))))); + x73 = (x38 + (x37 + (x36 + (x35 + (x34 + x33))))); + x74 = (x44 + (x43 + (x42 + (x41 + (x40 + x39))))); + x75 = (x51 + (x50 + (x49 + (x48 + (x47 + (x46 + x45)))))); + x76 = (x57 + (x56 + (x55 + (x54 + (x53 + x52))))); + x77 = (x66 + x76); + x78 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x77 >> 51); + x79 = (x77 & UINT64_C(0x7ffffffffffff)); + x80 = (x78 + x75); + x81 = (uint8_t)(x80 >> 51); + x82 = (x80 & UINT64_C(0x7ffffffffffff)); + x83 = (x81 + x74); + x84 = (uint8_t)(x83 >> 51); + x85 = (x83 & UINT64_C(0x7ffffffffffff)); + x86 = (x84 + x73); + x87 = (x86 & UINT64_C(0x7ffffffffffff)); + x88 = (uint8_t)(x72 >> 52); + x89 = (x72 & UINT64_C(0xfffffffffffff)); + x90 = (x88 + x71); + x91 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x90 >> 51); + x92 = (x90 & UINT64_C(0x7ffffffffffff)); + x93 = (x91 + x70); + x94 = (uint8_t)(x93 >> 51); + x95 = (x93 & UINT64_C(0x7ffffffffffff)); + x96 = (x94 + x69); + x97 = (uint8_t)(x96 >> 51); + x98 = (x96 & UINT64_C(0x7ffffffffffff)); + x99 = (x97 + x68); + out1[0] = x67; + out1[1] = x79; + out1[2] = x82; + out1[3] = x85; + out1[4] = x87; + out1[5] = x89; + out1[6] = x92; + out1[7] = x95; + out1[8] = x98; + out1[9] = x99; +} + +/* END verbatim fiat code */ + +/*- + * Finite field inversion via FLT. + * NB: this is not a real Fiat function, just named that way for consistency. + * Autogenerated: ecp/id_tc26_gost_3410_2012_512_paramSetC/fe_inv.op3 + * custom repunit addition chain + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetC_inv(fe_t output, + const fe_t t1) { + int i; + /* temporary variables */ + fe_t acc, t102, t12, t198, t2, t200, t24, t3, t400, t48, t502, t6, t96; + + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t2, acc, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t3, acc, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t3); + for (i = 0; i < 2; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t6, acc, t3); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t6); + for (i = 0; i < 5; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t12, acc, t6); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t12); + for (i = 0; i < 11; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t24, acc, t12); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t24); + for (i = 0; i < 23; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t48, acc, t24); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t48); + for (i = 0; i < 47; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t96, acc, t48); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t96); + for (i = 0; i < 5; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t102, acc, t6); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t102); + for (i = 0; i < 95; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t198, acc, t96); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t198); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t200, acc, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t200); + for (i = 0; i < 199; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t400, acc, t200); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t400); + for (i = 0; i < 101; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t502, acc, t102); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t502); + for (i = 0; i < 3; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(acc, acc, t3); + for (i = 0; i < 4; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(acc, acc, t1); + for (i = 0; i < 2; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(output, acc, t1); +} + +/* curve coefficient constants */ + +static const limb_t const_one[10] = { + UINT64_C(0x0000000000000001), UINT64_C(0x0000000000000000), + UINT64_C(0x0000000000000000), UINT64_C(0x0000000000000000), + UINT64_C(0x0000000000000000), UINT64_C(0x0000000000000000), + UINT64_C(0x0000000000000000), UINT64_C(0x0000000000000000), + UINT64_C(0x0000000000000000), UINT64_C(0x0000000000000000)}; + +static const limb_t const_d[10] = { + UINT64_C(0x00002DBB33EE7550), UINT64_C(0x00042BC2A22B4CA3), + UINT64_C(0x00073C6D3D23419F), UINT64_C(0x0001ACC138B390F9), + UINT64_C(0x0005359CF0528AE0), UINT64_C(0x0008A0621050439C), + UINT64_C(0x00054198E31EBDE2), UINT64_C(0x0006B7FC9B56805A), + UINT64_C(0x000367C4E973CF37), UINT64_C(0x0004F27AEC600BEC)}; + +static const limb_t const_S[10] = { + UINT64_C(0x0003F4913304621E), UINT64_C(0x0000F50F57752CD7), + UINT64_C(0x000430E4B0B72F98), UINT64_C(0x000794CFB1D31BC1), + UINT64_C(0x0006B298C3EB5D47), UINT64_C(0x0005D7E77BEBEF18), + UINT64_C(0x0002AF99C7385087), UINT64_C(0x00005200D92A5FE9), + UINT64_C(0x0007260EC5A30C32), UINT64_C(0x0000C36144E7FD04)}; + +static const limb_t const_T[10] = { + UINT64_C(0x0002B249DDFD1271), UINT64_C(0x0004B1F5C5B1E21B), + UINT64_C(0x00028A1234DB359A), UINT64_C(0x00004775897342D4), + UINT64_C(0x0006339A280DC1D0), UINT64_C(0x000C1ABB02B80B44), + UINT64_C(0x00038AEED0851FA5), UINT64_C(0x000273FF6F391564), + UINT64_C(0x00033BF626E8A289), UINT64_C(0x0004D3147CBAACA7)}; + +/* LUT for scalar multiplication by comb interleaving */ +static const pt_aff_t lut_cmb[8][16] = { + { + {{UINT64_C(0x0000000000000012), UINT64_C(0x0000000000000000), + UINT64_C(0x0000000000000000), UINT64_C(0x0000000000000000), + UINT64_C(0x0000000000000000), UINT64_C(0x0000000000000000), + UINT64_C(0x0000000000000000), UINT64_C(0x0000000000000000), + UINT64_C(0x0000000000000000), UINT64_C(0x0000000000000000)}, + {UINT64_C(0x000303EE73001A3D), UINT64_C(0x000404B2BAAE7600), + UINT64_C(0x00072E65E120AC45), UINT64_C(0x00027BAFC1A31744), + UINT64_C(0x000116EA5B2867BC), UINT64_C(0x0006117F7B386695), + UINT64_C(0x000501794368D9A5), UINT64_C(0x0007403C541FBF61), + UINT64_C(0x0005785AE6564ADD), UINT64_C(0x000234D7BCE8FD8F)}, + {UINT64_C(0x000646C41601E12E), UINT64_C(0x0000549120444C03), + UINT64_C(0x00014329D44C1CE3), UINT64_C(0x0004B25B9D77A2D8), + UINT64_C(0x00039C7A68D74B3D), UINT64_C(0x000D3AF6A9F7367C), + UINT64_C(0x00021A86BD5F4DA0), UINT64_C(0x0002843DEA3B74DD), + UINT64_C(0x000276643211439A), UINT64_C(0x0007B72B4861D41A)}}, + {{UINT64_C(0x000DDC3263F14838), UINT64_C(0x0001CBD1F17B2BCB), + UINT64_C(0x0002BAFA22A82009), UINT64_C(0x0005322387667A03), + UINT64_C(0x00055B751CB96A65), UINT64_C(0x000A0DFD0340FDE7), + UINT64_C(0x0005C48FB27C4503), UINT64_C(0x000268CD738A33D9), + UINT64_C(0x0001B2D195DC6145), UINT64_C(0x00006EA96DB2EACC)}, + {UINT64_C(0x000BBCD609E2FF0C), UINT64_C(0x0005F4AE7E31E8D1), + UINT64_C(0x000360BD6E15CC1F), UINT64_C(0x000409CF3A7414FB), + UINT64_C(0x00031EE2AD0268C7), UINT64_C(0x0005CB4FB4D93FBB), + UINT64_C(0x0003CADF6924D45D), UINT64_C(0x0001C5874E363854), + UINT64_C(0x00037EFA0AF03B97), UINT64_C(0x00001148D12E29B3)}, + {UINT64_C(0x000E0DB54C224325), UINT64_C(0x00010454C4B66E25), + UINT64_C(0x000648D062587B3B), UINT64_C(0x0003D2EE25796057), + UINT64_C(0x00004BB47D7FDE7C), UINT64_C(0x000244DB1E9D557B), + UINT64_C(0x0006BE33D5802F21), UINT64_C(0x00042132C57B6D1F), + UINT64_C(0x0003D487A5698542), UINT64_C(0x0007C1540EB060D1)}}, + {{UINT64_C(0x00079342FE30B9C8), UINT64_C(0x00041A8C6FF7B725), + UINT64_C(0x00075CAE2380D311), UINT64_C(0x00038F8B24FD7BC3), + UINT64_C(0x0004844218778181), UINT64_C(0x000C42D63D57509A), + UINT64_C(0x000535D988A70AAF), UINT64_C(0x0001A3FD38C3746A), + UINT64_C(0x0001E914A2CBA533), UINT64_C(0x0004D2080711F2B0)}, + {UINT64_C(0x0009F2BA98B41E21), UINT64_C(0x000615CCDD4A12CF), + UINT64_C(0x0003EE0BB3543CA8), UINT64_C(0x00015A62A2476E14), + UINT64_C(0x00061C939A6ECEDD), UINT64_C(0x000BE481A4C0C342), + UINT64_C(0x000795DEC470D8C2), UINT64_C(0x0000ABE2CB782E96), + UINT64_C(0x0007A7D6BF78D7EE), UINT64_C(0x0004E3A1B9FC9045)}, + {UINT64_C(0x000BAEA9645E541E), UINT64_C(0x0002D492585BA0C5), + UINT64_C(0x000114FE72026DC5), UINT64_C(0x00053A929E20E410), + UINT64_C(0x00060E85CF97390E), UINT64_C(0x0007D39ADBD8478A), + UINT64_C(0x0002063C667C0601), UINT64_C(0x000742C442708702), + UINT64_C(0x0000A2426FB29578), UINT64_C(0x00048CBFCAE1F773)}}, + {{UINT64_C(0x000A0BBFED323C86), UINT64_C(0x0006F7539EA3736E), + UINT64_C(0x0005DF9B59EA30BF), UINT64_C(0x0005D9C303700CA0), + UINT64_C(0x0001AB39B96006A3), UINT64_C(0x000D38FB4C2CE047), + UINT64_C(0x0004257F3B363F21), UINT64_C(0x00018E0BAF6472A8), + UINT64_C(0x000483ACD523D9F5), UINT64_C(0x00036FACA6C25759)}, + {UINT64_C(0x000231905C4CD0FD), UINT64_C(0x00016CA0261FB96E), + UINT64_C(0x00031D0ECAC833D3), UINT64_C(0x0003E05643F857D5), + UINT64_C(0x000040F272FCC47D), UINT64_C(0x00067E5354B2A5B5), + UINT64_C(0x0000AE3CF45E8B10), UINT64_C(0x000599F3DD49B217), + UINT64_C(0x000626891D86B28E), UINT64_C(0x0003E3F07489D3C0)}, + {UINT64_C(0x000C646BFDF7F340), UINT64_C(0x0001913CBD57D3CE), + UINT64_C(0x00004B9386B4B830), UINT64_C(0x0007C9304B89B5D0), + UINT64_C(0x00007520EC2D81FB), UINT64_C(0x0000D50731E5F0DF), + UINT64_C(0x0006129D0F7AD03D), UINT64_C(0x0002FA03D5A61196), + UINT64_C(0x0001A9011556D653), UINT64_C(0x0002A7D6F6C7BDB0)}}, + {{UINT64_C(0x00061D011098A411), UINT64_C(0x000260BCC6C7F863), + UINT64_C(0x0000E1117CD19373), UINT64_C(0x0004B68FE728DDED), + UINT64_C(0x0002AA52ACFB998D), UINT64_C(0x00015AD84E849B1A), + UINT64_C(0x0002CBCDF89B3EA6), UINT64_C(0x00067ABD295869C6), + UINT64_C(0x0000C524BC70CA4A), UINT64_C(0x0004C62E5FE7557E)}, + {UINT64_C(0x0007CFBEC39A14E2), UINT64_C(0x000626369976E030), + UINT64_C(0x00032365D9DEE36F), UINT64_C(0x000734EC026C36B6), + UINT64_C(0x00075F2357A20A57), UINT64_C(0x0006C63528ED47F5), + UINT64_C(0x0000E985E6F0FA99), UINT64_C(0x00059351FE01E099), + UINT64_C(0x0002C483F70283A2), UINT64_C(0x0004E1A30B241A78)}, + {UINT64_C(0x0003579D4EB3F8B7), UINT64_C(0x000127186D359C4A), + UINT64_C(0x000625FBDA161934), UINT64_C(0x000786DE6F454C06), + UINT64_C(0x00032BA63340A9DB), UINT64_C(0x0000CC026D945494), + UINT64_C(0x000079206668566B), UINT64_C(0x00046E3529640A46), + UINT64_C(0x000533DFE4808D98), UINT64_C(0x0001202AEF1AA871)}}, + {{UINT64_C(0x000D5A034C320711), UINT64_C(0x00046D5DEC9CBE0A), + UINT64_C(0x0002FD14714E2D8B), UINT64_C(0x00071E0CE392B781), + UINT64_C(0x0006EE842039DCC6), UINT64_C(0x0002AFE7EEFBE82E), + UINT64_C(0x0001706CA91CE495), UINT64_C(0x0005B0F58587732F), + UINT64_C(0x0003BA85FDED0A5B), UINT64_C(0x00054CEBB3898127)}, + {UINT64_C(0x000A6C4C3C22D5DC), UINT64_C(0x0003FD092008F2AF), + UINT64_C(0x000678C1C38BE060), UINT64_C(0x00029494E571D7ED), + UINT64_C(0x000679B640BD621E), UINT64_C(0x000E89487D97914B), + UINT64_C(0x0003B91C01A032CB), UINT64_C(0x0005715AFC07377B), + UINT64_C(0x0006AB64B7814DA4), UINT64_C(0x0005E7734E1241FA)}, + {UINT64_C(0x000EBC29D557AFE2), UINT64_C(0x00015EA9E492702C), + UINT64_C(0x00039B8FF4CB3E25), UINT64_C(0x0005D3DA87AD6898), + UINT64_C(0x0001B20F6958F437), UINT64_C(0x000FE179ED072875), + UINT64_C(0x0003299FC0106D8A), UINT64_C(0x00063AB8C98927F6), + UINT64_C(0x0004425DDEB4A8FE), UINT64_C(0x00021FCE1531E24E)}}, + {{UINT64_C(0x0007745E07BBFFEF), UINT64_C(0x0007125991A3183C), + UINT64_C(0x000288F58C85404B), UINT64_C(0x0005F0E01F988465), + UINT64_C(0x00058A085EA50075), UINT64_C(0x00006AB7768A5A2B), + UINT64_C(0x00043ABF68337850), UINT64_C(0x00075B86C98A35FB), + UINT64_C(0x000612842EA8B184), UINT64_C(0x000109A8BB7AB3ED)}, + {UINT64_C(0x0004F08D1A6DDAC3), UINT64_C(0x0005B2B420BFE682), + UINT64_C(0x00010DFAF256A129), UINT64_C(0x0001B6CDADBEB8E5), + UINT64_C(0x0006F611F5281A54), UINT64_C(0x000A1B472B862641), + UINT64_C(0x000335A2003B6703), UINT64_C(0x00008AD4CAD5F73B), + UINT64_C(0x0007A0EC3F0E578C), UINT64_C(0x00023141F13E5FA2)}, + {UINT64_C(0x0005188CBAD97549), UINT64_C(0x0001F6C5FC0F255B), + UINT64_C(0x00036A526CAC9622), UINT64_C(0x0000BB287D684ADB), + UINT64_C(0x0006F28BF1F5FA01), UINT64_C(0x000D7D8997333372), + UINT64_C(0x000236EF8A6D2653), UINT64_C(0x0000C2BF98DACC6E), + UINT64_C(0x0002FA4352B452E0), UINT64_C(0x00043FDC45864176)}}, + {{UINT64_C(0x000EA137F595EE0D), UINT64_C(0x000179D93A5775A9), + UINT64_C(0x0001E0372E081E93), UINT64_C(0x0003A69DAD123CC1), + UINT64_C(0x00025A2C66DE635D), UINT64_C(0x0002EEA6D51CD899), + UINT64_C(0x0003138B80BA676F), UINT64_C(0x000411B2C78B4F07), + UINT64_C(0x0007AAE1E0D50C65), UINT64_C(0x000528F5BDE8B6D3)}, + {UINT64_C(0x000D742C7F0B19BD), UINT64_C(0x0006DBF28C91828A), + UINT64_C(0x00076FE332464CA9), UINT64_C(0x0001873DC4EBC9D9), + UINT64_C(0x00014016F9C485A4), UINT64_C(0x000F894AD46EB122), + UINT64_C(0x0006AE2B805EB995), UINT64_C(0x00004C6AF846DDB3), + UINT64_C(0x0004C43621B2FA9D), UINT64_C(0x0001C9C1089132C7)}, + {UINT64_C(0x0007B12746972BA5), UINT64_C(0x00010D7707EB91D0), + UINT64_C(0x00057125FEF70465), UINT64_C(0x000722135480EB9A), + UINT64_C(0x000439824482D29B), UINT64_C(0x00019B590375A86B), + UINT64_C(0x000732235FA4483D), UINT64_C(0x00035CD4C74AE3F3), + UINT64_C(0x00076A29C3A22075), UINT64_C(0x0001E3D85B615311)}}, + {{UINT64_C(0x0005CCC96BFF3A5F), UINT64_C(0x0001D6DCC8ACE7EF), + UINT64_C(0x0001B8A8497C7E75), UINT64_C(0x0001448EF2271B21), + UINT64_C(0x000469E763024DA6), UINT64_C(0x000C1E4859EDB4E8), + UINT64_C(0x00022B32D11EA0B8), UINT64_C(0x0007833F6716976E), + UINT64_C(0x00056E62E2CC647C), UINT64_C(0x00060A6CC7E8F469)}, + {UINT64_C(0x000A5D20AC5EDF20), UINT64_C(0x0006BD1CB9C662A5), + UINT64_C(0x000053F695AD3F0C), UINT64_C(0x0003BB68B21BAC80), + UINT64_C(0x0006FA23083E49C3), UINT64_C(0x000960F58A7F49C4), + UINT64_C(0x000534DF3026534A), UINT64_C(0x00068C4D4E5AFD06), + UINT64_C(0x00003C47E39095B9), UINT64_C(0x000113AD9DE11151)}, + {UINT64_C(0x000AD10BAF7B6E7F), UINT64_C(0x0005FBD2F1D1D0A6), + UINT64_C(0x00064E2BF5A74481), UINT64_C(0x00000C9DED412AB9), + UINT64_C(0x0006DF76D2881747), UINT64_C(0x000F68ADE96EFAEE), + UINT64_C(0x0007CF2EE2DD3D95), UINT64_C(0x00029109B2E5028B), + UINT64_C(0x000084C0C872E5AF), UINT64_C(0x00055EF1044EE901)}}, + {{UINT64_C(0x0000978CD0735FB2), UINT64_C(0x0000A3B4EC3A861F), + UINT64_C(0x00024123B8F06382), UINT64_C(0x00076C7DAA554F27), + UINT64_C(0x0001B6A5E18D2E6A), UINT64_C(0x000947CC76EF8A46), + UINT64_C(0x0001CA1CA453479A), UINT64_C(0x000072531851597A), + UINT64_C(0x00005962E72A5B9F), UINT64_C(0x00035F4D1AE3ECEF)}, + {UINT64_C(0x00063950B57813F3), UINT64_C(0x0003955052095B99), + UINT64_C(0x0000910D0C16F997), UINT64_C(0x0006561C81D19E24), + UINT64_C(0x0005BD32E2B1D2DC), UINT64_C(0x000B1BCFBCC703F8), + UINT64_C(0x00044176746C4650), UINT64_C(0x00025ECF08C32C2B), + UINT64_C(0x00034A09E20BB15C), UINT64_C(0x00059E3EA6051146)}, + {UINT64_C(0x0005697698D05E0F), UINT64_C(0x00053B12113E48E9), + UINT64_C(0x0003CCFD3B3F2E28), UINT64_C(0x0003B625F59D23B8), + UINT64_C(0x0005E36ACA4E9712), UINT64_C(0x0003CD4602A4EB25), + UINT64_C(0x0001F0A79E67888A), UINT64_C(0x0001A3BB856644D1), + UINT64_C(0x0007BC8D45D9BE80), UINT64_C(0x000240C74D67C49F)}}, + {{UINT64_C(0x000F4AB4ACE9FBFB), UINT64_C(0x0001323C2E448C11), + UINT64_C(0x0007E627CF56EBD6), UINT64_C(0x0000AFD6CA7DE511), + UINT64_C(0x0006DCC97293C201), UINT64_C(0x00045898E21442A0), + UINT64_C(0x0004D8D6616961DB), UINT64_C(0x000120025DFF12D0), + UINT64_C(0x00027486D92674F0), UINT64_C(0x0000E577FD8D1E8D)}, + {UINT64_C(0x0008D1FF64347FD3), UINT64_C(0x0000B5503113ECB8), + UINT64_C(0x0006A04E1F0AD932), UINT64_C(0x0005EFDB668B751C), + UINT64_C(0x0007A75A308E95E9), UINT64_C(0x000DE0F991E7DCE0), + UINT64_C(0x0001AC3243FB2D46), UINT64_C(0x0007C4CD25A8CCA1), + UINT64_C(0x00020F39C66C4FB0), UINT64_C(0x00030EF201B6694C)}, + {UINT64_C(0x000D02B23C415547), UINT64_C(0x000585D53C64FF35), + UINT64_C(0x0003D4E05329F658), UINT64_C(0x0003E78544910FE9), + UINT64_C(0x000145FA301F1487), UINT64_C(0x00084D749E22B3AC), + UINT64_C(0x0005DB00726E0F27), UINT64_C(0x00049F8B12327E02), + UINT64_C(0x00066FA6FAE6E30F), UINT64_C(0x000148864CA7B024)}}, + {{UINT64_C(0x00072DB89831C22E), UINT64_C(0x000212B7A78FBD12), + UINT64_C(0x00021EB595C4F6D8), UINT64_C(0x000230B818D0625E), + UINT64_C(0x000432CEBFBE8326), UINT64_C(0x0005A4237390A4E7), + UINT64_C(0x00048BC4F80E39D8), UINT64_C(0x0002C266EDA08C65), + UINT64_C(0x0003003D1ACFB73A), UINT64_C(0x0003B25FB2316C33)}, + {UINT64_C(0x0001309EB03AE17C), UINT64_C(0x0006B7D21F1AC8CA), + UINT64_C(0x00030F22AD66CC64), UINT64_C(0x00068CAE1E8A8AE4), + UINT64_C(0x000036B8E12F02A1), UINT64_C(0x00051A9A31790107), + UINT64_C(0x0002BC64D9C75BC2), UINT64_C(0x00012E0A5E87C678), + UINT64_C(0x0005A6B78E7A5666), UINT64_C(0x0007ADC780A85627)}, + {UINT64_C(0x000623C20A48F7FB), UINT64_C(0x00068BD279754B54), + UINT64_C(0x000214146A030D28), UINT64_C(0x0000BCF5046BE3DE), + UINT64_C(0x0007F0B1C26980FD), UINT64_C(0x000E951243CBB013), + UINT64_C(0x0003FEDEE8A79D6A), UINT64_C(0x00037CD9BA1B93CC), + UINT64_C(0x00060FA57A12C244), UINT64_C(0x000342025E288D46)}}, + {{UINT64_C(0x00060F5BE50D6219), UINT64_C(0x0004F425F334521F), + UINT64_C(0x000084F4C30F8CB3), UINT64_C(0x0004572CAA850AB6), + UINT64_C(0x0007491416856BB1), UINT64_C(0x000DD438508B179E), + UINT64_C(0x0005AF1DAD1E9061), UINT64_C(0x00072FF71C440602), + UINT64_C(0x000640C33C87D2DD), UINT64_C(0x0006CEED81188498)}, + {UINT64_C(0x000EFB091DF854C6), UINT64_C(0x00028A1D31C19FA0), + UINT64_C(0x0002A9A404668E0B), UINT64_C(0x000727F82CC27ACF), + UINT64_C(0x000126282CC527D7), UINT64_C(0x00014FAB2CE4AC32), + UINT64_C(0x0001FAFC4C09B367), UINT64_C(0x000252F0B2B54F3B), + UINT64_C(0x0007E8131BAA6FF5), UINT64_C(0x000517793281415B)}, + {UINT64_C(0x000BDEBEB66BDFE8), UINT64_C(0x0002CC5E9E8B6103), + UINT64_C(0x00004B6B392825E5), UINT64_C(0x0002C59B6082CA61), + UINT64_C(0x000540C66BBC2394), UINT64_C(0x0003927DEFBBC62D), + UINT64_C(0x0001F26C16D6387C), UINT64_C(0x000086AB5563FC8E), + UINT64_C(0x00064F3E8C626EBD), UINT64_C(0x0000C841CACA38C0)}}, + {{UINT64_C(0x0000A508668F873E), UINT64_C(0x00005FDC5913D7CF), + UINT64_C(0x00077CFFBBDCF5A1), UINT64_C(0x0003F77B2390B8D4), + UINT64_C(0x0005594711779416), UINT64_C(0x0005ADA86CAF4491), + UINT64_C(0x0007F7C714C93E3D), UINT64_C(0x0005186774E545D7), + UINT64_C(0x0002C4325416B617), UINT64_C(0x0002EAF1D8B132CD)}, + {UINT64_C(0x000AEBD507E37692), UINT64_C(0x000309A15EAB0693), + UINT64_C(0x0005FF4C2A7A5D05), UINT64_C(0x000218CCB516CA7F), + UINT64_C(0x000091C7C9915F63), UINT64_C(0x00004C73F619E0B9), + UINT64_C(0x00018867BD8D792A), UINT64_C(0x00077DF8951E6F62), + UINT64_C(0x0002FCA92BD5A710), UINT64_C(0x0003DE1F4CB64968)}, + {UINT64_C(0x0007D8C68947865A), UINT64_C(0x00035B85E8AF7920), + UINT64_C(0x000138BC855475E9), UINT64_C(0x00065B8343CF3C8E), + UINT64_C(0x00072C46C618D9B0), UINT64_C(0x000DD020C6DF0D12), + UINT64_C(0x000470F00A8FAEE1), UINT64_C(0x0005DAF00E2DC642), + UINT64_C(0x00063930E56AAF60), UINT64_C(0x000286F9B967AAC9)}}, + {{UINT64_C(0x000DD90F276D31AF), UINT64_C(0x0000EA6D5DBA194F), + UINT64_C(0x000430D033491006), UINT64_C(0x0007F9FA0D60BE75), + UINT64_C(0x0004B562950EEA1A), UINT64_C(0x000E6BCD0715D21E), + UINT64_C(0x0000590F8E3023F7), UINT64_C(0x0001D19FD03857CA), + UINT64_C(0x000620A7B51ED174), UINT64_C(0x0001D40D3102B572)}, + {UINT64_C(0x00032D705F8518C5), UINT64_C(0x0000368F16F69285), + UINT64_C(0x00031B1912C61DA8), UINT64_C(0x0006862322CE1F30), + UINT64_C(0x00010660B97D08CF), UINT64_C(0x00035D64540A6D07), + UINT64_C(0x0004199885EE5BEA), UINT64_C(0x00028D3C28F71406), + UINT64_C(0x000098A7ED42E515), UINT64_C(0x0000033517091A8F)}, + {UINT64_C(0x000BEEAD956FEED8), UINT64_C(0x0006D144B99B7E54), + UINT64_C(0x0006620FDB6DADBF), UINT64_C(0x00065F15A8F5ECA2), + UINT64_C(0x00024170192B151F), UINT64_C(0x0006068B65F5278C), + UINT64_C(0x0006AB4CACC7BF25), UINT64_C(0x0006680608A271D0), + UINT64_C(0x00025004C7539417), UINT64_C(0x000727215A3B6BFA)}}, + {{UINT64_C(0x000FAA227F4F5AD3), UINT64_C(0x00048C30B1278D75), + UINT64_C(0x0004C2380F042C08), UINT64_C(0x0006F4250A5404FA), + UINT64_C(0x0000E5775C9D6EA4), UINT64_C(0x000C434ED2579348), + UINT64_C(0x00043B279220C0B7), UINT64_C(0x00011C3AB979AF10), + UINT64_C(0x000593B8B6831C9A), UINT64_C(0x0000C951C87E440D)}, + {UINT64_C(0x0009E652CBEBE9EA), UINT64_C(0x0002D471C31CC4A7), + UINT64_C(0x0001180C86178F58), UINT64_C(0x0004A1CBEE332A03), + UINT64_C(0x0004F056D32EEC00), UINT64_C(0x000E9D6F5A148CC7), + UINT64_C(0x00038F214F11933B), UINT64_C(0x0006AB7F8DF475B6), + UINT64_C(0x00016E32A36F4E7A), UINT64_C(0x00002D0656419319)}, + {UINT64_C(0x000FCD3F816A5978), UINT64_C(0x0006041C99F186A9), + UINT64_C(0x0001D3D980EFB038), UINT64_C(0x0007E9FDEA9BE147), + UINT64_C(0x00032BCE66E90B6D), UINT64_C(0x0001B6674476F1BF), + UINT64_C(0x00051E25FEF557ED), UINT64_C(0x000029CDE03D236F), + UINT64_C(0x000478BCDD0C953A), UINT64_C(0x0004BEBB6141C907)}}, + }, + { + {{UINT64_C(0x0009E2E990726798), UINT64_C(0x00009676B8E190DC), + UINT64_C(0x00048C9965EA2A0C), UINT64_C(0x0004EF181E315DD7), + UINT64_C(0x00003A6A0FE2B108), UINT64_C(0x0004B4B789B5786E), + UINT64_C(0x0001839D83E4BC52), UINT64_C(0x0003B9D09BE4ACFC), + UINT64_C(0x000603A800326917), UINT64_C(0x0007C7926D46765A)}, + {UINT64_C(0x000BDE461C54BBE9), UINT64_C(0x00030C12C7BE3000), + UINT64_C(0x00068D49E4D38051), UINT64_C(0x000002424DFF63EE), + UINT64_C(0x0006748D0F817A7A), UINT64_C(0x000DAAAC34BF5895), + UINT64_C(0x0004BF755438F5F4), UINT64_C(0x00031C0109A0A789), + UINT64_C(0x0000257084478A82), UINT64_C(0x0000EADEDC01C8B8)}, + {UINT64_C(0x000BA95D208FC8C9), UINT64_C(0x000171FB35AEDA7D), + UINT64_C(0x0002108B68CD61DE), UINT64_C(0x00032F4E1D4BC730), + UINT64_C(0x0000FFB462AB7826), UINT64_C(0x000A3E9F4B3F7B0E), + UINT64_C(0x0001E70DB7658F11), UINT64_C(0x00028C2EF3EEB807), + UINT64_C(0x000753BD52CA29CE), UINT64_C(0x000547E50673926A)}}, + {{UINT64_C(0x000F9CABD5C6650F), UINT64_C(0x00036740AC449DBC), + UINT64_C(0x0004759192EC241F), UINT64_C(0x000381C0F9E7EAB2), + UINT64_C(0x00063278E1545DA8), UINT64_C(0x000037A5B7E50AB6), + UINT64_C(0x000476FAC0FF808E), UINT64_C(0x00036E5576C1E063), + UINT64_C(0x00027A9D39B89A83), UINT64_C(0x0006F1DA42C4750F)}, + {UINT64_C(0x0000C0B93DC3C004), UINT64_C(0x00035D0E6F5E38D1), + UINT64_C(0x00061A730762CA71), UINT64_C(0x0003A620EFD387BE), + UINT64_C(0x0003E2EC3540ED15), UINT64_C(0x000E424C214D117F), + UINT64_C(0x0003E1325B0BB449), UINT64_C(0x0006FC7D1FC2FC7C), + UINT64_C(0x00073F72D066FB57), UINT64_C(0x0004B2D6EC5C213B)}, + {UINT64_C(0x000ACB4FC84F8936), UINT64_C(0x0000757CBE4C50D6), + UINT64_C(0x00049E1C99C1E958), UINT64_C(0x0007D86D6FF27A95), + UINT64_C(0x00029876C3EF1BD5), UINT64_C(0x000A9E00A5CBE886), + UINT64_C(0x0000BD4E512C515F), UINT64_C(0x0005C75102170269), + UINT64_C(0x0007807E85A235DA), UINT64_C(0x000293A17091A760)}}, + {{UINT64_C(0x000308924C47EA21), UINT64_C(0x0007EFFEAF16E651), + UINT64_C(0x0007D78EEF6B95C8), UINT64_C(0x000480EBCBF733D4), + UINT64_C(0x0001F759131373D1), UINT64_C(0x000F52DAA6D26E12), + UINT64_C(0x0001AA1A394183A6), UINT64_C(0x00031E24C017EBE3), + UINT64_C(0x000134A7ECCB3DEC), UINT64_C(0x0001EAACFA806C01)}, + {UINT64_C(0x0000C8DC99E4D9E5), UINT64_C(0x0000499FCD94685F), + UINT64_C(0x0004FB45C9641579), UINT64_C(0x00014AE4737E13F2), + UINT64_C(0x0005BAC25108C107), UINT64_C(0x000407F8F14C185F), + UINT64_C(0x0003281019A9EC49), UINT64_C(0x00018C647189223F), + UINT64_C(0x00077667AEF20006), UINT64_C(0x000342D230F93D40)}, + {UINT64_C(0x000C9265EF97099F), UINT64_C(0x0002CB0A3B71869F), + UINT64_C(0x0000DD18B78BEFAB), UINT64_C(0x000445C0E95393D6), + UINT64_C(0x00022C17960D9AEB), UINT64_C(0x00055752E5A3E34F), + UINT64_C(0x00029B02A7513832), UINT64_C(0x000115BB849BE596), + UINT64_C(0x00070895A6FD0E07), UINT64_C(0x0002E9C698B128A0)}}, + {{UINT64_C(0x0000460245EC561C), UINT64_C(0x000759CFCDC4304B), + UINT64_C(0x0000354F11DD3770), UINT64_C(0x00034ECA59B714C8), + UINT64_C(0x0006DEB5CFBFE8AA), UINT64_C(0x0009C83E53DD01E1), + UINT64_C(0x000681045B1B2B4B), UINT64_C(0x00066B499D80354A), + UINT64_C(0x0007B09A32C5EB10), UINT64_C(0x0007F5BFC7687E65)}, + {UINT64_C(0x0007DBDD7509D7B6), UINT64_C(0x0001FF07267C40F7), + UINT64_C(0x00020C1AAC3C0409), UINT64_C(0x0006148B211F9D4A), + UINT64_C(0x0007D9183357E99A), UINT64_C(0x0005FB86106C8179), + UINT64_C(0x00061566F3217886), UINT64_C(0x00064086D6797E68), + UINT64_C(0x0000AAE710B5D9A0), UINT64_C(0x0003A7960D860C8C)}, + {UINT64_C(0x000BA0F7583190C4), UINT64_C(0x00076FA655DA6153), + UINT64_C(0x0006AD011EF06120), UINT64_C(0x0001B9919F914745), + UINT64_C(0x0006933CC4A1F75E), UINT64_C(0x0008B0C001D798B5), + UINT64_C(0x0003A7401C076C5F), UINT64_C(0x0002A5E88685994E), + UINT64_C(0x00040E300EEB5F5B), UINT64_C(0x000401FE079260EE)}}, + {{UINT64_C(0x000659914EBDF906), UINT64_C(0x0004AC87025B5364), + UINT64_C(0x0000284A5CDE167E), UINT64_C(0x0003DCE5E16B1561), + UINT64_C(0x000109507CE45C7B), UINT64_C(0x000E774890C7761C), + UINT64_C(0x0005E1CED11C691A), UINT64_C(0x0000B979E77DA4D4), + UINT64_C(0x0004EF607D7B0F58), UINT64_C(0x000597CD44BFB28F)}, + {UINT64_C(0x000A69885D31FD12), UINT64_C(0x00077B176FC02779), + UINT64_C(0x00032C80E3987695), UINT64_C(0x00075F209C1E30BB), + UINT64_C(0x0001009FD731AAC0), UINT64_C(0x000D3EB5362EA2CF), + UINT64_C(0x0001D6C33BB4F1EC), UINT64_C(0x0005811CB2ECEF96), + UINT64_C(0x00057D8C6C5AE4E1), UINT64_C(0x0004B4EA22243336)}, + {UINT64_C(0x000E6D776CDADB51), UINT64_C(0x00059CCC0F8E0BB1), + UINT64_C(0x000788DF3C7AD498), UINT64_C(0x000142A89307C686), + UINT64_C(0x00016B22FB5E10E8), UINT64_C(0x0004175AE2F3EB2B), + UINT64_C(0x0002B10B599DE0CC), UINT64_C(0x0001EBE2F56C5287), + UINT64_C(0x0001A33116E45EDF), UINT64_C(0x0004AE20B6AA13BB)}}, + {{UINT64_C(0x000D4F1640E31025), UINT64_C(0x00005369F3A71705), + UINT64_C(0x0006E57097B5B700), UINT64_C(0x000287C31DDA7EB0), + UINT64_C(0x0006BD941635599D), UINT64_C(0x000958A013ADB362), + UINT64_C(0x000797EC3AF59A21), UINT64_C(0x000532140C91BE6E), + UINT64_C(0x0004936CF742D1B9), UINT64_C(0x0006D291755B4C5F)}, + {UINT64_C(0x0000A926A8EE98B9), UINT64_C(0x00046DFF06B0EA14), + UINT64_C(0x000422FF6FD967CC), UINT64_C(0x000779542C4521B1), + UINT64_C(0x000469BEAB421801), UINT64_C(0x000E418E584BB6E2), + UINT64_C(0x00009CA813EF2F4E), UINT64_C(0x0005F68592828DF0), + UINT64_C(0x0000656C0BBF9122), UINT64_C(0x0000CCB05A025C71)}, + {UINT64_C(0x000E98CF9AA86649), UINT64_C(0x0004280C51AC4674), + UINT64_C(0x00069006DA4ABEB3), UINT64_C(0x00046B1CDF4D42C3), + UINT64_C(0x00052325C9885550), UINT64_C(0x00030D64AFD848FD), + UINT64_C(0x0002C8ACC81C6FC5), UINT64_C(0x00047CB0D16BECBB), + UINT64_C(0x000424989DA2A6C5), UINT64_C(0x000168C78A279267)}}, + {{UINT64_C(0x000D255173B3974D), UINT64_C(0x00078AB8051F9D89), + UINT64_C(0x0005D31E2BD6FAF8), UINT64_C(0x0007DECEFF2FED16), + UINT64_C(0x0000A995EBB1AF3C), UINT64_C(0x000EC88849F934DD), + UINT64_C(0x0003F4357D1349BF), UINT64_C(0x0003003724CCAD86), + UINT64_C(0x0005CC63A601A857), UINT64_C(0x000343B88A410741)}, + {UINT64_C(0x000B861EBEC11DA3), UINT64_C(0x0002F7DA0CE66B58), + UINT64_C(0x0004A05CFDD667EC), UINT64_C(0x000618C4234E4317), + UINT64_C(0x00077E534DE5E42D), UINT64_C(0x000F510ACBE2E35B), + UINT64_C(0x0004D176CC3F8974), UINT64_C(0x0004199583F06449), + UINT64_C(0x0000406979E0EB70), UINT64_C(0x000695F16DD2B384)}, + {UINT64_C(0x000B5F01887D972B), UINT64_C(0x000591009B9788BD), + UINT64_C(0x0001CFB8C1E46165), UINT64_C(0x0005B8112A6084A0), + UINT64_C(0x00049527793479C1), UINT64_C(0x000B187275AFF4A8), + UINT64_C(0x00049D80550875EB), UINT64_C(0x00065B3359B96DBD), + UINT64_C(0x0001FB8879675983), UINT64_C(0x0005DEBD62191D57)}}, + {{UINT64_C(0x000D1CA24C4248EB), UINT64_C(0x0005F680B9DB4143), + UINT64_C(0x000332A16BFB989D), UINT64_C(0x000753E5C1BD1DD6), + UINT64_C(0x0004FB5069A3DD11), UINT64_C(0x000B36967D95CB7F), + UINT64_C(0x0007C1A743B83E84), UINT64_C(0x0000AEE0A0745A8D), + UINT64_C(0x0006C7A9C91323B2), UINT64_C(0x000528CD9463AAFB)}, + {UINT64_C(0x000C466D9EBE068D), UINT64_C(0x00013A27797DC234), + UINT64_C(0x00018F27D8B96428), UINT64_C(0x000024C1197D66BB), + UINT64_C(0x00030D29442EEAC4), UINT64_C(0x000D7F436D88C8D7), + UINT64_C(0x00041C67DD503E48), UINT64_C(0x00071B77621F3C37), + UINT64_C(0x0001E384DE527534), UINT64_C(0x0004A3548D4230EF)}, + {UINT64_C(0x0009D0F8D367877F), UINT64_C(0x000144D7265E0804), + UINT64_C(0x0005645C59D64EAE), UINT64_C(0x000533EB925569B6), + UINT64_C(0x0004DFD1C43D5A74), UINT64_C(0x000E0AA14014632B), + UINT64_C(0x0005693798BB1AC4), UINT64_C(0x00000B28BE3E0068), + UINT64_C(0x000379AAA7EAE112), UINT64_C(0x0000247F1C8CFD8E)}}, + {{UINT64_C(0x000C15D58808355F), UINT64_C(0x0003A9B54B4046D8), + UINT64_C(0x0003BE1A6AB6A8D7), UINT64_C(0x000699C7D04884C2), + UINT64_C(0x00055A19B13E30E6), UINT64_C(0x000FBA511C14C314), + UINT64_C(0x0007C4B1AB58948C), UINT64_C(0x00014F0D999CB430), + UINT64_C(0x0007AFCB455F6D0F), UINT64_C(0x00013287261490BE)}, + {UINT64_C(0x000C39060A09A6A6), UINT64_C(0x00068EFAAE7BEA33), + UINT64_C(0x0000F39708828339), UINT64_C(0x00074458444BC73B), + UINT64_C(0x0004EBB9FE3A3451), UINT64_C(0x0002963523524531), + UINT64_C(0x0002BA9B39DAC86F), UINT64_C(0x000296C0868A96CA), + UINT64_C(0x0000E1FD8D0A7823), UINT64_C(0x00010A911670FB07)}, + {UINT64_C(0x000F856897F72F1E), UINT64_C(0x0000EEE5678607C6), + UINT64_C(0x000517CD2197022F), UINT64_C(0x0004BEDF2B12DB4D), + UINT64_C(0x00019C0AF97A5D1D), UINT64_C(0x000374FACB3B50F7), + UINT64_C(0x0003917CBAD403FF), UINT64_C(0x0004C4704E757E6D), + UINT64_C(0x00029A25D20AD24F), UINT64_C(0x000369770FC2A344)}}, + {{UINT64_C(0x0008DA57843C3422), UINT64_C(0x000082AA03CF53E5), + UINT64_C(0x0007396268B0FA19), UINT64_C(0x000148F2D5ECB6B4), + UINT64_C(0x0000E4C3E6069C02), UINT64_C(0x0008A317BACC7D91), + UINT64_C(0x00023FB0B882B0C6), UINT64_C(0x0003470CCBB116C6), + UINT64_C(0x0001DD2C55D9FCCD), UINT64_C(0x0003D996E34873D8)}, + {UINT64_C(0x000494440ECC3AB3), UINT64_C(0x0002540E1E629CBC), + UINT64_C(0x0007355927AA0DA6), UINT64_C(0x000617CCFB6EB6C6), + UINT64_C(0x00045DCD2CD0B597), UINT64_C(0x000A9351FEF0BD26), + UINT64_C(0x0000E241A46E98C5), UINT64_C(0x00011AAC255B8C6D), + UINT64_C(0x00077EB6092D7F54), UINT64_C(0x00006C19945480AB)}, + {UINT64_C(0x0008B1824E089690), UINT64_C(0x0004658566F83B39), + UINT64_C(0x0007A1E24B6B0E67), UINT64_C(0x0003546FE60DC8CA), + UINT64_C(0x000527C86CABEAC9), UINT64_C(0x0006138EFAB370BD), + UINT64_C(0x000367B7A18E4830), UINT64_C(0x0005F41E7F74F931), + UINT64_C(0x00043CD498AEE92B), UINT64_C(0x00036640F17461CB)}}, + {{UINT64_C(0x00014F84E18CA5AB), UINT64_C(0x000581E482520BE7), + UINT64_C(0x0006D3C0B43466D5), UINT64_C(0x000717397C15F270), + UINT64_C(0x0002926AAAE17414), UINT64_C(0x000CEE21A20BFDB7), + UINT64_C(0x0005627F8C434E1F), UINT64_C(0x0007B06611540ADD), + UINT64_C(0x00017C0766AD8FF8), UINT64_C(0x0001A6DF1F7CFD76)}, + {UINT64_C(0x00048F19C87B8FFD), UINT64_C(0x000738685355DF41), + UINT64_C(0x00062D4C85207B23), UINT64_C(0x0004DA81080542F4), + UINT64_C(0x0002595A163374DE), UINT64_C(0x00077DF196F75779), + UINT64_C(0x0003CC24DA342DED), UINT64_C(0x00071C8601CD59A9), + UINT64_C(0x000575ED879C1606), UINT64_C(0x0003C9A80845E0C4)}, + {UINT64_C(0x000E4341EC68E990), UINT64_C(0x00007DB9731C2EAE), + UINT64_C(0x00050B4AC8A0C069), UINT64_C(0x00020F490D1B024D), + UINT64_C(0x00067C6E1654BBA0), UINT64_C(0x0003EFDE035BD6AF), + UINT64_C(0x0003C25584A7D506), UINT64_C(0x000591764CC32886), + UINT64_C(0x0006FC9CB331260F), UINT64_C(0x00017E5D60885352)}}, + {{UINT64_C(0x000731233C0BF910), UINT64_C(0x000329E61DB0C699), + UINT64_C(0x0007BA2FF701A4E9), UINT64_C(0x000333EA1E17AEF2), + UINT64_C(0x00004C20BB4E7B23), UINT64_C(0x00036D578DEB0B28), + UINT64_C(0x0001EB9E5DFB52E4), UINT64_C(0x0004CA4959FA2735), + UINT64_C(0x0001D94E469AE705), UINT64_C(0x00076C278152C2A0)}, + {UINT64_C(0x00098E1BB8C2F143), UINT64_C(0x0004D297A9E0C320), + UINT64_C(0x00076A7705B29809), UINT64_C(0x0001C4AB1E7AA3FB), + UINT64_C(0x0007CEC0D37488E9), UINT64_C(0x000AF115EFF64680), + UINT64_C(0x0000120EF3CBB216), UINT64_C(0x00054823751D4F6C), + UINT64_C(0x0002AC54F606C3D7), UINT64_C(0x0001EBCEFB260725)}, + {UINT64_C(0x000B771E27A53F81), UINT64_C(0x0006D54C547C8EC4), + UINT64_C(0x0000011D3B796F70), UINT64_C(0x000103E44C9CDCE1), + UINT64_C(0x0004C7BA40D38FA7), UINT64_C(0x00089A5EBD4841A3), + UINT64_C(0x000684C71D5AEC65), UINT64_C(0x000605EEF1D5EAB1), + UINT64_C(0x00067509EAF71EBE), UINT64_C(0x0005963E232F38F6)}}, + {{UINT64_C(0x000BCAC8C9D8CB62), UINT64_C(0x000201763A59294E), + UINT64_C(0x00019A01979C0FF2), UINT64_C(0x0004D0E0410F78A4), + UINT64_C(0x0006EB9F8CAC287A), UINT64_C(0x000EA0768460F44C), + UINT64_C(0x0005A455F94A712D), UINT64_C(0x0000BC93EBB5FFB3), + UINT64_C(0x00020C65BD0C37ED), UINT64_C(0x000261BF4CEC1574)}, + {UINT64_C(0x000FF07CB12EA13B), UINT64_C(0x00020429E9B2B0F9), + UINT64_C(0x0004DFA80EA8ECD6), UINT64_C(0x00073BBBD56CD402), + UINT64_C(0x0003919C06A06CA6), UINT64_C(0x000A50DFCA5441D8), + UINT64_C(0x0002B9A99A9B237D), UINT64_C(0x000742A2E2D61162), + UINT64_C(0x0002CA00A4309B93), UINT64_C(0x0000905C120B4320)}, + {UINT64_C(0x00061578EB35918B), UINT64_C(0x0001446B3BE9D4A0), + UINT64_C(0x0003D523BC8898B4), UINT64_C(0x00064BBE9875DB61), + UINT64_C(0x0000D3A22E1BC0BA), UINT64_C(0x00061BADB8814627), + UINT64_C(0x0001E3CC67E1C334), UINT64_C(0x0007D8BFF80A52C8), + UINT64_C(0x0007C1A1B139325E), UINT64_C(0x000699D472241937)}}, + {{UINT64_C(0x00025E7D1EB3C74B), UINT64_C(0x0007898AA108BC0E), + UINT64_C(0x00047515F8ED8CD4), UINT64_C(0x0004D3B9580C495A), + UINT64_C(0x0007180B924B02DC), UINT64_C(0x0000F661E19F6359), + UINT64_C(0x000670BF44B39CC7), UINT64_C(0x0007FE66B0398776), + UINT64_C(0x0007995A1E2AC824), UINT64_C(0x0006D5DC46677210)}, + {UINT64_C(0x000FAAD726B55EA2), UINT64_C(0x00079D5D2BEE8A46), + UINT64_C(0x00026095ED36BEE6), UINT64_C(0x0006B2CD7C0A5EAC), + UINT64_C(0x0007363AADE3CBFF), UINT64_C(0x0008973FB787E167), + UINT64_C(0x0007C0F634CBA455), UINT64_C(0x0000FA999E76881F), + UINT64_C(0x000324C512E8946B), UINT64_C(0x000380D8788E7945)}, + {UINT64_C(0x0008DB1A6DE4460C), UINT64_C(0x00062893735BF9A0), + UINT64_C(0x000013BA32E02B7B), UINT64_C(0x00073C9F80B4A895), + UINT64_C(0x0003C3F3C87AAFB2), UINT64_C(0x000827F36493E441), + UINT64_C(0x000292EFAC99E138), UINT64_C(0x000022A4A4904138), + UINT64_C(0x00024529ECB28E37), UINT64_C(0x00077421EE238C1B)}}, + {{UINT64_C(0x000F7B9C6C9FCA63), UINT64_C(0x00034B8A0AAFC9BE), + UINT64_C(0x0005DAE98DB7E24F), UINT64_C(0x00074C6CA22931E1), + UINT64_C(0x0002A4921C14D883), UINT64_C(0x0006EFA91FA1CE71), + UINT64_C(0x0003CE84355E0DCE), UINT64_C(0x000753C05DD0ADC7), + UINT64_C(0x00017FAB49BE457E), UINT64_C(0x000352750D53DB1E)}, + {UINT64_C(0x000C2F7461033645), UINT64_C(0x000513C3544B8E3B), + UINT64_C(0x00052C0D08ECF672), UINT64_C(0x000724A3D76B9645), + UINT64_C(0x0005EE3A414B8581), UINT64_C(0x0001B06B1A55E453), + UINT64_C(0x000186401A4D8285), UINT64_C(0x00038DD6E8C786ED), + UINT64_C(0x0002D70CAF4EE8DD), UINT64_C(0x0005D01B347C3A06)}, + {UINT64_C(0x0001567FFD93F0D1), UINT64_C(0x000309252F65BB4A), + UINT64_C(0x0005959B6ED014AB), UINT64_C(0x0004B43212E34585), + UINT64_C(0x000438AFACBE2355), UINT64_C(0x0005CE8397224869), + UINT64_C(0x0005A2F2198160CD), UINT64_C(0x00038CA3C93100EF), + UINT64_C(0x0005B4E108E763BD), UINT64_C(0x00013AB825E9037B)}}, + {{UINT64_C(0x00035B4D0F47A893), UINT64_C(0x0000F88590FD42E6), + UINT64_C(0x0000D7368E95AC4C), UINT64_C(0x000195F98944B691), + UINT64_C(0x000486CCF2B919EC), UINT64_C(0x0004A59D1C2A3F33), + UINT64_C(0x000534076FD4DE0F), UINT64_C(0x00059369592A8078), + UINT64_C(0x00075849457601A8), UINT64_C(0x0005BCFEF89B98B3)}, + {UINT64_C(0x00082471AB978FF4), UINT64_C(0x000417A722D632A1), + UINT64_C(0x000119FFFE762A0C), UINT64_C(0x000154FACAC33A86), + UINT64_C(0x000629B146A09126), UINT64_C(0x00077F98E5A9B02A), + UINT64_C(0x0007BFDF4C9B46F3), UINT64_C(0x0006F3CE86DA2075), + UINT64_C(0x00043496F1F7058B), UINT64_C(0x000410C0161E3F69)}, + {UINT64_C(0x00061C0DDD1D5193), UINT64_C(0x0005D358D2C1C9E2), + UINT64_C(0x0000F247BBCF087E), UINT64_C(0x00075A43B2343359), + UINT64_C(0x0001269D6EFC98D0), UINT64_C(0x0009DE5FF8C9C95C), + UINT64_C(0x00051605D13327E2), UINT64_C(0x00033CB5838CF4A6), + UINT64_C(0x0003A16E2B08FE9E), UINT64_C(0x0003650C080431E5)}}, + }, + { + {{UINT64_C(0x00049602E45D0A93), UINT64_C(0x00059C589221A880), + UINT64_C(0x00006BFB336EDCAF), UINT64_C(0x0005AD45223DDD99), + UINT64_C(0x00057F8BFA84AC51), UINT64_C(0x000AB4970BF8F60A), + UINT64_C(0x00067F4FB7299A69), UINT64_C(0x0006C45D1DA5576A), + UINT64_C(0x0001DF5059D6F745), UINT64_C(0x0007522509A7E4C7)}, + {UINT64_C(0x000754184C1EAC3E), UINT64_C(0x0001803402F7CD15), + UINT64_C(0x0004F73F4944A6CF), UINT64_C(0x00046CEC832A58F1), + UINT64_C(0x0005BF7C9110EC11), UINT64_C(0x0006BEE5D06C0C15), + UINT64_C(0x00004D8B8B8F00B0), UINT64_C(0x00028C4D421BD379), + UINT64_C(0x00075078416E153C), UINT64_C(0x000359B19C14F12F)}, + {UINT64_C(0x000808DDF052F857), UINT64_C(0x000019692911893C), + UINT64_C(0x00020F8AC2158528), UINT64_C(0x0006BF85B2D465D0), + UINT64_C(0x0000E4B967AE33BF), UINT64_C(0x0006B2C044AA16CD), + UINT64_C(0x0005714242B5BB0F), UINT64_C(0x0005D92812DAFB73), + UINT64_C(0x0007AD2DCB20ECFF), UINT64_C(0x00077EEC1D3FA208)}}, + {{UINT64_C(0x0002119238646FD8), UINT64_C(0x0005ABC2F8AF448B), + UINT64_C(0x000453259E95D8E5), UINT64_C(0x0005B48782EBCAEE), + UINT64_C(0x00038436F43CDFBF), UINT64_C(0x00048D16E429CE28), + UINT64_C(0x000570D828600948), UINT64_C(0x0003453855620095), + UINT64_C(0x0006AD331E478470), UINT64_C(0x000651BFAB5074BD)}, + {UINT64_C(0x0005F4433BDB32D9), UINT64_C(0x000105218D10DE9D), + UINT64_C(0x000584EFCC5C27E2), UINT64_C(0x00013201F8F88C14), + UINT64_C(0x0005783EC5680875), UINT64_C(0x0005599CE7F06E7D), + UINT64_C(0x000469D4A0F10D5A), UINT64_C(0x00066493C7BE869D), + UINT64_C(0x000282E244723DA2), UINT64_C(0x000003DDA26211EF)}, + {UINT64_C(0x0004777CF1747536), UINT64_C(0x0004BD8E40F0AAC6), + UINT64_C(0x0007330BCEF012F6), UINT64_C(0x0005B417B099D130), + UINT64_C(0x00008F04461BF63F), UINT64_C(0x0002FAB6C914DFFC), + UINT64_C(0x00012387DF5AFEB9), UINT64_C(0x00060B418608D67A), + UINT64_C(0x00028BA76C66CFD8), UINT64_C(0x00046A5D5B19C944)}}, + {{UINT64_C(0x000D23E16E7EB572), UINT64_C(0x00046332FC8A601B), + UINT64_C(0x00065A48317134CE), UINT64_C(0x00043B6D52860AED), + UINT64_C(0x0006EEB80466982A), UINT64_C(0x0009E57FBD4942F2), + UINT64_C(0x0001B441B9B92D52), UINT64_C(0x0003927622998150), + UINT64_C(0x00032063CFE0CC69), UINT64_C(0x0001E7A8EAAD8648)}, + {UINT64_C(0x0009791DBC2F7ADE), UINT64_C(0x0005B5AE56F669E8), + UINT64_C(0x0004787844482C09), UINT64_C(0x000233D0503DE859), + UINT64_C(0x0002980F93DB7782), UINT64_C(0x000E89640104583D), + UINT64_C(0x000256749A55B356), UINT64_C(0x000346FB5377E7C7), + UINT64_C(0x0005986D02625C7F), UINT64_C(0x0006501A5BE2B9EA)}, + {UINT64_C(0x000DC86BCD571C18), UINT64_C(0x000295273CB7094B), + UINT64_C(0x0002353CEEA64824), UINT64_C(0x0000EDE9FDAEF274), + UINT64_C(0x0006FC2FE16F8340), UINT64_C(0x000E75263685AE89), + UINT64_C(0x0002A6B522548B24), UINT64_C(0x00030B331A3CF122), + UINT64_C(0x00040AA1996D71AF), UINT64_C(0x00021DA1E66C5828)}}, + {{UINT64_C(0x0006237FE85D84B7), UINT64_C(0x0005D493978AA748), + UINT64_C(0x0005606DB28D11E0), UINT64_C(0x0001404E7EE9A4A7), + UINT64_C(0x0000009FCCF95887), UINT64_C(0x0001F35190486D07), + UINT64_C(0x0005ABF1251A2823), UINT64_C(0x0007D9F90E1B9546), + UINT64_C(0x000027D362BD3273), UINT64_C(0x0001D3276CA5DBCA)}, + {UINT64_C(0x0005BCE59854F4F2), UINT64_C(0x00068A97823BA015), + UINT64_C(0x00069C7B6BA3A2B9), UINT64_C(0x000391289E956A27), + UINT64_C(0x0006D77C747BE4B3), UINT64_C(0x00030591F7C41921), + UINT64_C(0x0002A1EB441BD53B), UINT64_C(0x00014CCBBA39D2CC), + UINT64_C(0x0002A9EAEDC15CEF), UINT64_C(0x000175CD0B5E3DFD)}, + {UINT64_C(0x00037ECC8CE85AE8), UINT64_C(0x0002D2E68B37C995), + UINT64_C(0x0007756F4C412926), UINT64_C(0x00064C1755FD279C), + UINT64_C(0x0005D142CA088513), UINT64_C(0x0005C77113983F17), + UINT64_C(0x000667B020C82500), UINT64_C(0x000303A898E3AC4F), + UINT64_C(0x0007E3C86D19C210), UINT64_C(0x0004249657F2E122)}}, + {{UINT64_C(0x0001D1C5E353E5CA), UINT64_C(0x0002576EB624749B), + UINT64_C(0x00065CDB175F1C9E), UINT64_C(0x0003A41B811E62CE), + UINT64_C(0x000518CFEE6F53F7), UINT64_C(0x00098B04A4AC2F13), + UINT64_C(0x0006AB7610983F96), UINT64_C(0x000746A4D621967E), + UINT64_C(0x000350349EC927D2), UINT64_C(0x000222970DF1E1BE)}, + {UINT64_C(0x0008906EEA836812), UINT64_C(0x0003114905108F3F), + UINT64_C(0x0005C9663C445888), UINT64_C(0x0001C71F712BD33B), + UINT64_C(0x00043D935A54A0DA), UINT64_C(0x0003646E9FDC729F), + UINT64_C(0x0007210C4951848F), UINT64_C(0x00011FEF8E510953), + UINT64_C(0x000346FAA21A5B8C), UINT64_C(0x00003AD57103DD51)}, + {UINT64_C(0x00033864A36064D6), UINT64_C(0x000029B9EAFEDC2A), + UINT64_C(0x0003BE3DEB0B5F9A), UINT64_C(0x0003B506AA541679), + UINT64_C(0x0005B2A6B10327B0), UINT64_C(0x000157232B715DB2), + UINT64_C(0x0001EA48E7F6FCF8), UINT64_C(0x00025E863CA33319), + UINT64_C(0x0005C8D3F568BF16), UINT64_C(0x0004C5D907C3D1C8)}}, + {{UINT64_C(0x00046AD26F23721E), UINT64_C(0x0002C765BDA314CE), + UINT64_C(0x000752858F9EB295), UINT64_C(0x000513964D698E8F), + UINT64_C(0x0001C85381B9C98C), UINT64_C(0x00007D077B6D8B14), + UINT64_C(0x0002650BE441372D), UINT64_C(0x0007C92EF836C485), + UINT64_C(0x0000F996ACD339F6), UINT64_C(0x0007E8564FED0A69)}, + {UINT64_C(0x000E29A25F3371CF), UINT64_C(0x00008814C5A56ED5), + UINT64_C(0x0000021D0DCD381D), UINT64_C(0x00076A6088860540), + UINT64_C(0x0004219513890BB8), UINT64_C(0x0009B16B9A0A067F), + UINT64_C(0x00047E7B85349C38), UINT64_C(0x00074B3FE445EC78), + UINT64_C(0x000275D721E0622F), UINT64_C(0x0002A2EC646BA867)}, + {UINT64_C(0x000BBDD3A720C17F), UINT64_C(0x0001B2C37BA0E3D1), + UINT64_C(0x00054714236D0CC2), UINT64_C(0x00076964A35C7638), + UINT64_C(0x000025052B296A76), UINT64_C(0x000C48304202EE65), + UINT64_C(0x0006ED1F7DCB85DA), UINT64_C(0x0002FA4317B61178), + UINT64_C(0x0006CEE7698DA4B8), UINT64_C(0x00044B0FF2267F23)}}, + {{UINT64_C(0x000D747A3E22E2B1), UINT64_C(0x0003DEDA875D7CAE), + UINT64_C(0x0006A21C6B5FE47D), UINT64_C(0x000412BD22E4D137), + UINT64_C(0x00029DA6D3B3667F), UINT64_C(0x00048E20CB87439F), + UINT64_C(0x000325A27394F2C8), UINT64_C(0x000428463E1D4FBF), + UINT64_C(0x00041B300FF04818), UINT64_C(0x0001521958F0E161)}, + {UINT64_C(0x000085DB6B7E977C), UINT64_C(0x00017CE01F10308D), + UINT64_C(0x0000AC1CA092A153), UINT64_C(0x000415739EAB8C46), + UINT64_C(0x0000C8CDF9774C54), UINT64_C(0x00051119A4D27CD6), + UINT64_C(0x0003979EF4CABD4E), UINT64_C(0x000306E82DE011FD), + UINT64_C(0x000130D235924305), UINT64_C(0x0004BC668226FA1A)}, + {UINT64_C(0x00035460C289FE8C), UINT64_C(0x00077FC4B88D0A33), + UINT64_C(0x00034B3A2F12DA46), UINT64_C(0x0000587252519A91), + UINT64_C(0x00067696AD8CA13F), UINT64_C(0x0004B367ED30881B), + UINT64_C(0x0006ECDC69A04362), UINT64_C(0x00062060141E8A58), + UINT64_C(0x000446717A1D4C41), UINT64_C(0x00059C92F4144291)}}, + {{UINT64_C(0x00090BCBA13F3FFA), UINT64_C(0x000459F76914A474), + UINT64_C(0x00077DF9C1AB8451), UINT64_C(0x00027F4173658DE6), + UINT64_C(0x000752A654451BBD), UINT64_C(0x0004389BF205F6A5), + UINT64_C(0x0002A0F6E2CAC058), UINT64_C(0x000759DDCA3CF248), + UINT64_C(0x0001DB6435DE0B7B), UINT64_C(0x0007A40E4FF1D274)}, + {UINT64_C(0x000B40F9FEA2DF61), UINT64_C(0x000187FAF0A90648), + UINT64_C(0x0007F429F69E5C3C), UINT64_C(0x0005E462DCD8F74D), + UINT64_C(0x00002FB868905F55), UINT64_C(0x0006227264E559AC), + UINT64_C(0x0005DCC2ACD4BE01), UINT64_C(0x0001754DD8D51BE7), + UINT64_C(0x000254DBE11362D7), UINT64_C(0x00067071A34DAE0B)}, + {UINT64_C(0x00052B353E84B78C), UINT64_C(0x000564D48962EE3B), + UINT64_C(0x000566CE4AC9469E), UINT64_C(0x00022969A603533F), + UINT64_C(0x00057CBF4F23DA31), UINT64_C(0x000F413FE6288E6F), + UINT64_C(0x00043A5E06D777D3), UINT64_C(0x0000D59724B433B0), + UINT64_C(0x0004AC5FF7A4F7F5), UINT64_C(0x0007581748BFBCFE)}}, + {{UINT64_C(0x00051789D3E212FA), UINT64_C(0x0000BCEB94909B13), + UINT64_C(0x00028C362BBCB45E), UINT64_C(0x00070EF351F3B7C0), + UINT64_C(0x000666ECDEB8047E), UINT64_C(0x00078E439202364E), + UINT64_C(0x0007E77E6140B4A9), UINT64_C(0x000482D5B04DDC11), + UINT64_C(0x0001764AEFADC75A), UINT64_C(0x0006B47820ED7E1B)}, + {UINT64_C(0x000E69076D92441D), UINT64_C(0x0007F96BE0ECA0A5), + UINT64_C(0x0005B603DEE01A8E), UINT64_C(0x0002D1B5AEAB2F76), + UINT64_C(0x0007A711B7087718), UINT64_C(0x000277D13CD92B5F), + UINT64_C(0x0003AE287A233D24), UINT64_C(0x000666E9F9CC65A3), + UINT64_C(0x000676645DDC4BCF), UINT64_C(0x0004C2FE8FE9D67B)}, + {UINT64_C(0x00027D78672C6C00), UINT64_C(0x0002479A6D9CA279), + UINT64_C(0x00072D4B69EE9EED), UINT64_C(0x000115C466A0FF92), + UINT64_C(0x00040A74ED91DE82), UINT64_C(0x00007A983DF62653), + UINT64_C(0x0003E0BD157BC637), UINT64_C(0x000257CF02231B18), + UINT64_C(0x00021FB8D5B274BC), UINT64_C(0x00063F5ED86AF20B)}}, + {{UINT64_C(0x000417CD2C573949), UINT64_C(0x0005C0A0F0D85A83), + UINT64_C(0x0004BCA59A389EFA), UINT64_C(0x0004BC9A8EDBAE72), + UINT64_C(0x00031DA12B0ED484), UINT64_C(0x000361F7E36F579E), + UINT64_C(0x0002F55EEE1A1AB5), UINT64_C(0x0001FE95A3CDAB65), + UINT64_C(0x0000BD0E2F996073), UINT64_C(0x00069840C7AEA37F)}, + {UINT64_C(0x0008A8244C90AAE5), UINT64_C(0x000192938B5C4443), + UINT64_C(0x00062E8381B8DA6E), UINT64_C(0x0002A57B4398E87B), + UINT64_C(0x0001B401B603039D), UINT64_C(0x000F8931B08E2459), + UINT64_C(0x0005FDE03EB7E448), UINT64_C(0x000042A4FFF29BE1), + UINT64_C(0x0005548F632ED26F), UINT64_C(0x00007E01A00DDD53)}, + {UINT64_C(0x00009C5F1271C360), UINT64_C(0x00014712324EDF39), + UINT64_C(0x00024AF2050F1BB5), UINT64_C(0x0000FB6B43AD3C7B), + UINT64_C(0x00066F4AA55F0B74), UINT64_C(0x000C69A365B54877), + UINT64_C(0x0000D87DE69BA1D3), UINT64_C(0x00001F390592ACB1), + UINT64_C(0x0002D3ACDCBEEC70), UINT64_C(0x0006A6C9430F6DC5)}}, + {{UINT64_C(0x00076182951B9FCD), UINT64_C(0x00014DA2A6CA4A38), + UINT64_C(0x00061C55C6BDE562), UINT64_C(0x0006ECA43E5605F8), + UINT64_C(0x00006B6FFF6EC841), UINT64_C(0x0000713C0144812B), + UINT64_C(0x00071F1D396EB0DD), UINT64_C(0x00071210D066A6DB), + UINT64_C(0x000737CF73AC235F), UINT64_C(0x000056B844B68475)}, + {UINT64_C(0x0008F1CEAD60A1D0), UINT64_C(0x0000444231BD8012), + UINT64_C(0x000445D6A0ED8B97), UINT64_C(0x0002DD91F0EEE5C0), + UINT64_C(0x0003766A3BF6B231), UINT64_C(0x000F5C93D686296E), + UINT64_C(0x000233237F38DC42), UINT64_C(0x0007525D1A3497EA), + UINT64_C(0x0001819B905D774A), UINT64_C(0x0007FFB178F7CE0F)}, + {UINT64_C(0x000641A17722C8F1), UINT64_C(0x00079F1706850C02), + UINT64_C(0x0006060CBB0518EB), UINT64_C(0x0002B66C8CB99F42), + UINT64_C(0x00066E8E928880E6), UINT64_C(0x0001989CC847F22C), + UINT64_C(0x0003469EEFF682ED), UINT64_C(0x0000D34A55978260), + UINT64_C(0x00044C59D525236B), UINT64_C(0x000390050E10B720)}}, + {{UINT64_C(0x00009CD2BD71F4DB), UINT64_C(0x00029F23BB9D8BE1), + UINT64_C(0x0000FB44276A7039), UINT64_C(0x0005F4E44D6437E8), + UINT64_C(0x0004E5D5F5C4BB02), UINT64_C(0x000662EA552904DE), + UINT64_C(0x00072BFD95DA12F6), UINT64_C(0x0006E4A9CCE5BBB7), + UINT64_C(0x00035D0BE00D7A94), UINT64_C(0x0001C01BCE0CD7F9)}, + {UINT64_C(0x000C0AFD973DBCF3), UINT64_C(0x00064CE4BD3B9ACA), + UINT64_C(0x0007702F5FC560D5), UINT64_C(0x0005E595BA3FBA8C), + UINT64_C(0x0005B6BF254BF97D), UINT64_C(0x000576ABA05DA74C), + UINT64_C(0x000010304EEBAB26), UINT64_C(0x00015D19F5797872), + UINT64_C(0x00016D4017CFBF4A), UINT64_C(0x00026F6161725AEC)}, + {UINT64_C(0x00087F397AEAE324), UINT64_C(0x0005FA83BB5E2D0C), + UINT64_C(0x0007223E58B05D25), UINT64_C(0x0003870F05A9B0F5), + UINT64_C(0x0001A6AE5BF4D17D), UINT64_C(0x000EC0FEC7C22B4D), + UINT64_C(0x0004123EA40B3D05), UINT64_C(0x0006AB321BCED2BF), + UINT64_C(0x0005EB8B088ADF8C), UINT64_C(0x0006D4D7B749D913)}}, + {{UINT64_C(0x0004F5FA884DA730), UINT64_C(0x0000AF25F411BD67), + UINT64_C(0x0003BA45D0584E3F), UINT64_C(0x0002185580D7028A), + UINT64_C(0x00042C01189DCCED), UINT64_C(0x00008C6AE9B1ABB6), + UINT64_C(0x00052E642E3C2B76), UINT64_C(0x0007310740FB3824), + UINT64_C(0x000728038396164C), UINT64_C(0x000699C02D4658C4)}, + {UINT64_C(0x00079389C8FD6F3C), UINT64_C(0x000334AEF7344570), + UINT64_C(0x000242D78C5A1222), UINT64_C(0x0003C2A690D38351), + UINT64_C(0x0001CF5ACE9C51A0), UINT64_C(0x00055B466F344A63), + UINT64_C(0x0007E983BE7FDAE4), UINT64_C(0x00055CFA24140C02), + UINT64_C(0x000069CB7B9C5BD2), UINT64_C(0x0006188710431607)}, + {UINT64_C(0x00026F7B943A846D), UINT64_C(0x0002D01FFCEE4F40), + UINT64_C(0x00018950D46B06FD), UINT64_C(0x000489C50B872A31), + UINT64_C(0x0006350B0D584129), UINT64_C(0x0001F25CBB8B17E3), + UINT64_C(0x0002C5C45781F165), UINT64_C(0x0005737448097914), + UINT64_C(0x000511D83B88DD30), UINT64_C(0x000274954F75EF59)}}, + {{UINT64_C(0x000ECDBAA9D6B470), UINT64_C(0x0004FEAEC5FC07C4), + UINT64_C(0x00006ACFE89ADEF6), UINT64_C(0x0001DA4AAD513147), + UINT64_C(0x00067D3AF31AE9ED), UINT64_C(0x000A4B232569B195), + UINT64_C(0x0004CF616E4681F8), UINT64_C(0x000644769BD5A3D2), + UINT64_C(0x00025E58B311AC44), UINT64_C(0x00052C8B011460F8)}, + {UINT64_C(0x00045717702B786E), UINT64_C(0x00014A10820591ED), + UINT64_C(0x00062D9363FA4EE1), UINT64_C(0x00022163012006D4), + UINT64_C(0x000271B0D1CBDBE0), UINT64_C(0x00026F3A015A99D4), + UINT64_C(0x0007C87580D2C201), UINT64_C(0x0001BF98F86FC444), + UINT64_C(0x000138F3A6FA662A), UINT64_C(0x0001A06E15120B69)}, + {UINT64_C(0x0008025E88D639DD), UINT64_C(0x0000E347C30AA122), + UINT64_C(0x0002589D8BA62AC4), UINT64_C(0x0002E11924750A60), + UINT64_C(0x0001FBEE719BDB54), UINT64_C(0x0004C0C9348C22B4), + UINT64_C(0x00057FD26F80CAC8), UINT64_C(0x00019B358CE6D1E3), + UINT64_C(0x00007A93D359D2C5), UINT64_C(0x00077158FA133E83)}}, + {{UINT64_C(0x000D7DAFE61175ED), UINT64_C(0x0000E4504E665412), + UINT64_C(0x0005FB729DDEE3EC), UINT64_C(0x000047F270C83BC2), + UINT64_C(0x0005A73604DF6148), UINT64_C(0x000BD1E93DBD8BB5), + UINT64_C(0x0000AC824EAD6B31), UINT64_C(0x0005FF3E8CE9DCC5), + UINT64_C(0x00007CC6E8CFFAC1), UINT64_C(0x0002AFFEFFBB1A9A)}, + {UINT64_C(0x00023316BB40DF6E), UINT64_C(0x000481B56A077501), + UINT64_C(0x00013E2A0B14557D), UINT64_C(0x000595D27B53FF98), + UINT64_C(0x0003C19B9D245EB2), UINT64_C(0x000FE22605BBBE16), + UINT64_C(0x0005BBC13BECC9C3), UINT64_C(0x0005555CC21B1639), + UINT64_C(0x0006C7E755F4FE0A), UINT64_C(0x00004CED449C0043)}, + {UINT64_C(0x000F212C1FCCCAFA), UINT64_C(0x00065AA07D23A1F0), + UINT64_C(0x000653B0A8787B0D), UINT64_C(0x0002764B66DA9938), + UINT64_C(0x0001C729D799C70F), UINT64_C(0x000B8104F70D5296), + UINT64_C(0x0002712DA31EC0BF), UINT64_C(0x00015C3C4923D483), + UINT64_C(0x0005652F2FB13CB3), UINT64_C(0x00041664C0C8CDFC)}}, + {{UINT64_C(0x00082999B7AC4DE8), UINT64_C(0x00058A2CECA252A7), + UINT64_C(0x00020C73280A45C0), UINT64_C(0x000450DA84CA8CD7), + UINT64_C(0x0007BF0E4090350D), UINT64_C(0x000ADF283C44352A), + UINT64_C(0x0003E4DCFC4CEE6B), UINT64_C(0x000763CA01B20C07), + UINT64_C(0x00074828372B938A), UINT64_C(0x00022EC150908F6A)}, + {UINT64_C(0x0002582469359E84), UINT64_C(0x000228A33D25EEC6), + UINT64_C(0x0006435073D85A7E), UINT64_C(0x000227840F93D3F5), + UINT64_C(0x000262B1B8D3C804), UINT64_C(0x000340D7D4B65A82), + UINT64_C(0x0003D2F31E1046E9), UINT64_C(0x0004F093EF407EAD), + UINT64_C(0x0000739071C0CFCC), UINT64_C(0x00026D2395B09E2C)}, + {UINT64_C(0x000F54E820DEB8D8), UINT64_C(0x000587F5BBC119C5), + UINT64_C(0x00033CF484DE2CE4), UINT64_C(0x00072D6E48747C29), + UINT64_C(0x0001FC0C06AF6484), UINT64_C(0x00072C72C472F425), + UINT64_C(0x0006A997E7AC72B4), UINT64_C(0x000615BA71BDA74C), + UINT64_C(0x000194736B2BCBEA), UINT64_C(0x00053764E1CF34DF)}}, + }, + { + {{UINT64_C(0x000869A43C294C54), UINT64_C(0x0003CB29D7749693), + UINT64_C(0x0007C4909DB7E1DF), UINT64_C(0x0005228EB2FBC6A3), + UINT64_C(0x0001416FC12D302E), UINT64_C(0x00091471B10D8725), + UINT64_C(0x0001E08AA9DECE88), UINT64_C(0x000587A018AD629C), + UINT64_C(0x0006C4A4C27A1DCA), UINT64_C(0x0005C28EBD109BCD)}, + {UINT64_C(0x000F17D6F444B156), UINT64_C(0x00010614A6278D4D), + UINT64_C(0x00004E296EC65945), UINT64_C(0x000764A3D99A6C4C), + UINT64_C(0x0003AC1DDF8C7862), UINT64_C(0x000A1BDC47EBAF83), + UINT64_C(0x000575E7E4E6E02D), UINT64_C(0x000346FF3FA7D4EF), + UINT64_C(0x0006490E0AA55F9E), UINT64_C(0x0003DE09135EA98D)}, + {UINT64_C(0x0004B1218EED069B), UINT64_C(0x0003A6C9EA9923A4), + UINT64_C(0x0001EC1877C85728), UINT64_C(0x000300A0F14A71F6), + UINT64_C(0x0006ECECC49016EB), UINT64_C(0x00058EED82849105), + UINT64_C(0x000400ECD17E513E), UINT64_C(0x00060825E3952E96), + UINT64_C(0x000565AE484D0F5D), UINT64_C(0x000209AD7372BC07)}}, + {{UINT64_C(0x000967088E9B527F), UINT64_C(0x0002672CB51B0152), + UINT64_C(0x0000A1B79BAEC761), UINT64_C(0x0001174B982E833F), + UINT64_C(0x00024E0D77B79A0D), UINT64_C(0x00047372BD137D72), + UINT64_C(0x0000BD9098E4916F), UINT64_C(0x0002AE2E6C280D68), + UINT64_C(0x000569AB6BDEC767), UINT64_C(0x0006EB14F61A266B)}, + {UINT64_C(0x000468847FDDE1A1), UINT64_C(0x0007E47FFAC321C1), + UINT64_C(0x000099E09961D0C8), UINT64_C(0x0007F115DEAE525D), + UINT64_C(0x000694F77EF9636E), UINT64_C(0x00040F8DDE23159D), + UINT64_C(0x0006680E30AEF9BB), UINT64_C(0x0006B528CEF988BE), + UINT64_C(0x000518BE82D6063B), UINT64_C(0x00022B8C074B2105)}, + {UINT64_C(0x0003A4C05B585761), UINT64_C(0x0003528539A1DAD4), + UINT64_C(0x000540826053F31F), UINT64_C(0x0003BA075642B0C7), + UINT64_C(0x000368D07DE9484A), UINT64_C(0x000B3D3E8D9BA85E), + UINT64_C(0x0007550F9A53DD73), UINT64_C(0x000041A194358CC9), + UINT64_C(0x0004F9F0386A50A1), UINT64_C(0x00041D37DCFBA507)}}, + {{UINT64_C(0x00024FF20ED85567), UINT64_C(0x00026ACB40B58156), + UINT64_C(0x0002C9398F6DD650), UINT64_C(0x00030160273B8447), + UINT64_C(0x0002E3773B782B9F), UINT64_C(0x0007030F6938A06B), + UINT64_C(0x0004E62A1384F897), UINT64_C(0x000225C672A35300), + UINT64_C(0x0005C1F66CAD5B3A), UINT64_C(0x0005832B4574C046)}, + {UINT64_C(0x0006B08E0399855F), UINT64_C(0x0000E9671A6388F9), + UINT64_C(0x0006596FB4577230), UINT64_C(0x00041255210F89BD), + UINT64_C(0x00058F5E2E72B2D8), UINT64_C(0x0003DEA57DF34241), + UINT64_C(0x00021714F7980B29), UINT64_C(0x00033241DDA8B0E5), + UINT64_C(0x000502E01B9EF7BE), UINT64_C(0x00027166556F5433)}, + {UINT64_C(0x0002068F4390F72B), UINT64_C(0x000037FC7DD50F35), + UINT64_C(0x0003D7105B085171), UINT64_C(0x0003F4A9D00E2D1B), + UINT64_C(0x00036BA34F00ADB8), UINT64_C(0x000BAA7FD102D0DF), + UINT64_C(0x0006D540C7AB1FE3), UINT64_C(0x0006D399320CD3FB), + UINT64_C(0x00000969ECDCA36E), UINT64_C(0x000736A5F44C73E5)}}, + {{UINT64_C(0x000A1EA8102BF7EA), UINT64_C(0x00076681D903FE4E), + UINT64_C(0x00016827A8F7E29F), UINT64_C(0x000041D34C09DF5C), + UINT64_C(0x0003C9643E4AE7F0), UINT64_C(0x000AA849BA118FEC), + UINT64_C(0x0004F8B809BA8FD8), UINT64_C(0x0000D32D898D1E18), + UINT64_C(0x00057AF4934DCD86), UINT64_C(0x000564F85C2CDDAD)}, + {UINT64_C(0x000E180C6892618B), UINT64_C(0x0006FF7240030636), + UINT64_C(0x000366CD397F1774), UINT64_C(0x0005728BDC33187B), + UINT64_C(0x0000B3266F640DCE), UINT64_C(0x000128B8A25D3F67), + UINT64_C(0x0007708EE6E8BF9F), UINT64_C(0x00046A93620B4A05), + UINT64_C(0x0007290D084B52EC), UINT64_C(0x000739810783526B)}, + {UINT64_C(0x000CC39B5FFAF5D7), UINT64_C(0x0003C6202DA25104), + UINT64_C(0x00062CC8759BDEDE), UINT64_C(0x00036D29F17389AF), + UINT64_C(0x00012C6A9C28C6C5), UINT64_C(0x0009DCE18E457FFC), + UINT64_C(0x0004ECCE05180B2B), UINT64_C(0x000596ACCF512291), + UINT64_C(0x00062945DAA66E26), UINT64_C(0x00050AD4823F6CFD)}}, + {{UINT64_C(0x000A8CC651B80948), UINT64_C(0x0001E1750AC465BE), + UINT64_C(0x000187C1C7A67AC8), UINT64_C(0x0006F89CE139F631), + UINT64_C(0x00036828EE424F47), UINT64_C(0x000F2D70AE145D31), + UINT64_C(0x0004B3577A19593F), UINT64_C(0x0001B7EA66A3F33D), + UINT64_C(0x00077FC34430FB8C), UINT64_C(0x0007F27E8D488429)}, + {UINT64_C(0x000F6CC160A3C9DE), UINT64_C(0x000192CEF1A784E0), + UINT64_C(0x00055B5C5AEEC896), UINT64_C(0x0006D5903202D1D5), + UINT64_C(0x00044EE2B9F57100), UINT64_C(0x00085703712819CA), + UINT64_C(0x00050908533B6653), UINT64_C(0x0003454ED72A02D5), + UINT64_C(0x00070AC25F6383E3), UINT64_C(0x00048EB15CD43A55)}, + {UINT64_C(0x000A62A87FDE7680), UINT64_C(0x0001AF035CE0A44A), + UINT64_C(0x0007F2C92A8D048E), UINT64_C(0x0000CEE23583E470), + UINT64_C(0x00003B703640D1F1), UINT64_C(0x00098B27784DA23E), + UINT64_C(0x0003A7C34610E147), UINT64_C(0x00073D1ABE50B09E), + UINT64_C(0x0002938FFA96CAB7), UINT64_C(0x0003E1959EF246D8)}}, + {{UINT64_C(0x0001869BB1B94C69), UINT64_C(0x00051734C75D4111), + UINT64_C(0x00000E8A85605AF9), UINT64_C(0x00047660F7146E01), + UINT64_C(0x00026CB57D10B81E), UINT64_C(0x0006DC6E8E61EABF), + UINT64_C(0x00040BDBDDA25575), UINT64_C(0x000621970F444FB0), + UINT64_C(0x0005A68915E84863), UINT64_C(0x0003FC0413B2B9DB)}, + {UINT64_C(0x00057BA222699263), UINT64_C(0x0007645EE7373008), + UINT64_C(0x0001A2F8038B610D), UINT64_C(0x000677556F7C8C70), + UINT64_C(0x0004CE4E5D52ADBA), UINT64_C(0x000CAE8AF894C9EB), + UINT64_C(0x000289D1174CA2E9), UINT64_C(0x00032825A0B38AD1), + UINT64_C(0x0002D70424509A50), UINT64_C(0x000588C224908678)}, + {UINT64_C(0x000EC8195559B033), UINT64_C(0x0004928CC1FABC5C), + UINT64_C(0x0007E050DE738A9E), UINT64_C(0x0003E981A0A1EF6A), + UINT64_C(0x00001FE76C501153), UINT64_C(0x000CB9239B643220), + UINT64_C(0x0006875D72093E18), UINT64_C(0x00025CA8156C881B), + UINT64_C(0x00048360BD70DA5F), UINT64_C(0x00012C76B37E5C67)}}, + {{UINT64_C(0x000CADFF54C5FC61), UINT64_C(0x0003100C3F2C3EC2), + UINT64_C(0x00072D1EA82213E6), UINT64_C(0x0007F17AA56C2E31), + UINT64_C(0x0006CBE667300217), UINT64_C(0x000A75C32AC1D00C), + UINT64_C(0x0000900399B302FC), UINT64_C(0x00066D6BDEE4B606), + UINT64_C(0x00005EFA0E987CE1), UINT64_C(0x0002C879F735E948)}, + {UINT64_C(0x0002780923AD1294), UINT64_C(0x00050A7906F38719), + UINT64_C(0x0004D2CE3806BCDB), UINT64_C(0x0006D8F87C7B1F2D), + UINT64_C(0x0005BC54F9F117E6), UINT64_C(0x000AFCE58A3CEADC), + UINT64_C(0x000026B8F094B4FB), UINT64_C(0x000511D8D0A6A1C0), + UINT64_C(0x00026046F65CA5CE), UINT64_C(0x0007B31882AB5612)}, + {UINT64_C(0x00019F342DF704E3), UINT64_C(0x00053617515314C8), + UINT64_C(0x000622A658FC7975), UINT64_C(0x0006453B59E91EF8), + UINT64_C(0x00042BFDC9994A46), UINT64_C(0x000238C1575D2AF0), + UINT64_C(0x00029CD2DC2AE52F), UINT64_C(0x000479332C429AD4), + UINT64_C(0x000428FDA62FAFFA), UINT64_C(0x0007D90C15C992EF)}}, + {{UINT64_C(0x000E4A20CED7FD14), UINT64_C(0x0004C97EA9E0328B), + UINT64_C(0x0006E9445684BABF), UINT64_C(0x000151806F26ED39), + UINT64_C(0x0001160C77905467), UINT64_C(0x000C6609DEA0FC1A), + UINT64_C(0x0002A722284AD939), UINT64_C(0x00003ADBE879DBC4), + UINT64_C(0x00015AC0555FD701), UINT64_C(0x0001F94BEBDB96D9)}, + {UINT64_C(0x0004AAF2301F16D2), UINT64_C(0x0007F51734ABB20B), + UINT64_C(0x00042C8A35243B42), UINT64_C(0x0001B3820B36100F), + UINT64_C(0x000115444F5C6CAF), UINT64_C(0x000F3926D4333445), + UINT64_C(0x000587A6557C80D0), UINT64_C(0x000665447A091344), + UINT64_C(0x0003F84BD9CE1BCA), UINT64_C(0x0007200779A07D57)}, + {UINT64_C(0x000C61B46E3949CF), UINT64_C(0x0000D8E735ED00B6), + UINT64_C(0x00048A5E9F98CEA3), UINT64_C(0x00024C0D94F3C634), + UINT64_C(0x000538D79B7A6393), UINT64_C(0x00021002B287137D), + UINT64_C(0x000799366E30C2E8), UINT64_C(0x0006B1AF8463E70D), + UINT64_C(0x00048CDE10CB3E51), UINT64_C(0x00017412D6535F95)}}, + {{UINT64_C(0x000BAA4CCFEC442D), UINT64_C(0x0005DDC1184E8BA8), + UINT64_C(0x0007D1F6A8B018EA), UINT64_C(0x000769A32FD77A23), + UINT64_C(0x0002355FBFEE11A4), UINT64_C(0x000D2BB5D9500DE9), + UINT64_C(0x000351D470C5EA4E), UINT64_C(0x0004BDBFBB0E40E5), + UINT64_C(0x0001A757E0DE9DFA), UINT64_C(0x0005DD504BAB40E2)}, + {UINT64_C(0x000D79053EF41593), UINT64_C(0x0000C6229EE33D5E), + UINT64_C(0x0004C4A2E362ED5D), UINT64_C(0x0006D21696B79D70), + UINT64_C(0x000530ED2DF8E89F), UINT64_C(0x00033E8AD160078D), + UINT64_C(0x000188BB911588CC), UINT64_C(0x0001659B61A4C110), + UINT64_C(0x0000AC04E00E10DC), UINT64_C(0x0007BAAFBA1435EF)}, + {UINT64_C(0x000F5FC78EDB6AE0), UINT64_C(0x00053D7865FB725A), + UINT64_C(0x0006ED24F885E307), UINT64_C(0x0005CE843771EF4F), + UINT64_C(0x00058D6256C79CC2), UINT64_C(0x00010C8CBB613DE9), + UINT64_C(0x0004D23EBA7C20F7), UINT64_C(0x0004AAB81D2BD1A4), + UINT64_C(0x0007EAA3AAB8A668), UINT64_C(0x0003973523884C90)}}, + {{UINT64_C(0x000D315BCC6A4EBE), UINT64_C(0x00023AE21C0D026D), + UINT64_C(0x00074CC51E26A4A7), UINT64_C(0x0004EABBCED74E32), + UINT64_C(0x0006B0E906F48456), UINT64_C(0x0001FD94BDF2BC16), + UINT64_C(0x0002B3738B72AE1B), UINT64_C(0x0006DDA66FC3E72B), + UINT64_C(0x0000A0BAE6CE73F8), UINT64_C(0x000649ACF7A899F4)}, + {UINT64_C(0x000B963804F8D424), UINT64_C(0x0006F39A9330D7C7), + UINT64_C(0x0004A7B044BBF992), UINT64_C(0x0003B6ACEE3101AE), + UINT64_C(0x000380FD2850FBDA), UINT64_C(0x000A7E356E4721CB), + UINT64_C(0x0006D74381BB53BD), UINT64_C(0x00077C758E87A472), + UINT64_C(0x00034ED47B90A5C1), UINT64_C(0x000541B8694A1D57)}, + {UINT64_C(0x000213F762157EAF), UINT64_C(0x0003DDFE58F8609F), + UINT64_C(0x00051DB2894E81BD), UINT64_C(0x000217B6B6443ED1), + UINT64_C(0x0003C3FD6874D805), UINT64_C(0x0009D6AC77E5E651), + UINT64_C(0x000585C8D73CF003), UINT64_C(0x0001177F582F8B0D), + UINT64_C(0x0006139F224E35C7), UINT64_C(0x00006B22BB7192B0)}}, + {{UINT64_C(0x0005C1F05010C834), UINT64_C(0x0003113280A7C18B), + UINT64_C(0x000402B6DBFA220A), UINT64_C(0x00046EABCF726FB6), + UINT64_C(0x000175B743915725), UINT64_C(0x000E4CE9A3461CCF), + UINT64_C(0x0001C5E283A38DED), UINT64_C(0x0004D6C8A05331E5), + UINT64_C(0x0006D2583BCB0A6F), UINT64_C(0x0003AAA41153FCC0)}, + {UINT64_C(0x000A352F702DDC40), UINT64_C(0x0007D7130B63AB8C), + UINT64_C(0x00017012D62D24CA), UINT64_C(0x00036D6618341280), + UINT64_C(0x00042CD7A92424EC), UINT64_C(0x0004455D81496370), + UINT64_C(0x0002C71773A15E7B), UINT64_C(0x000319726F43A64E), + UINT64_C(0x00061BA3963EE4E5), UINT64_C(0x0006EA9AD805A571)}, + {UINT64_C(0x0001C51E5B6AE1BB), UINT64_C(0x0000940E67BDF3D8), + UINT64_C(0x0004303CE5522A77), UINT64_C(0x0007682D028A84C6), + UINT64_C(0x00054D741BEDE444), UINT64_C(0x00049041A3E00485), + UINT64_C(0x00061D64B9E535C8), UINT64_C(0x00026B36E1180C79), + UINT64_C(0x00037DC2FB4BBDCE), UINT64_C(0x0003E50BD67DF773)}}, + {{UINT64_C(0x0009A8E363B551FC), UINT64_C(0x0003C8F4B97600B8), + UINT64_C(0x0002AC4D3F80805A), UINT64_C(0x0007F634F89272C9), + UINT64_C(0x0005018AAD3C2F10), UINT64_C(0x000839F5851BC891), + UINT64_C(0x00051EB91313038C), UINT64_C(0x00008705A06CCCC9), + UINT64_C(0x00055961D9C37E66), UINT64_C(0x00065992B370FB1A)}, + {UINT64_C(0x000033C42B482130), UINT64_C(0x00001ED0534D30B9), + UINT64_C(0x0003CCB1B89FEFCA), UINT64_C(0x00027E1B2B1E8762), + UINT64_C(0x0001B4D9C8C9A94E), UINT64_C(0x000B112BA6074641), + UINT64_C(0x0001600271D8DC7A), UINT64_C(0x0003D379BCAB026B), + UINT64_C(0x000023990289F9BD), UINT64_C(0x00034CB0141402B9)}, + {UINT64_C(0x000FC8B21E970F5A), UINT64_C(0x000645D4DAFEA6BA), + UINT64_C(0x0004AB31A4584708), UINT64_C(0x00042A82D72C4005), + UINT64_C(0x00018A07C94BFF8F), UINT64_C(0x000B940457D4526F), + UINT64_C(0x0002B84EF0E2C65C), UINT64_C(0x00015EDE587F066A), + UINT64_C(0x0007B339EA0568AD), UINT64_C(0x0000C15683B4ED21)}}, + {{UINT64_C(0x000C2A3BC5E45C10), UINT64_C(0x00019DD27F647208), + UINT64_C(0x0001CC4D0E9788D9), UINT64_C(0x000239D5295ABFF1), + UINT64_C(0x00006A78F80338D3), UINT64_C(0x000D38F708F1447E), + UINT64_C(0x0005402FECD5F832), UINT64_C(0x00003152B770F7D0), + UINT64_C(0x000727F40CC0FE28), UINT64_C(0x000201310EEDAB24)}, + {UINT64_C(0x0003A811FB4DE1FA), UINT64_C(0x0003F2DC5B4E9FC4), + UINT64_C(0x00071A6F274F0FCE), UINT64_C(0x000767549B19F783), + UINT64_C(0x00025B2A9BF40B8C), UINT64_C(0x000419CB0D40B471), + UINT64_C(0x000160FCD458E327), UINT64_C(0x0001AED850052B97), + UINT64_C(0x000655AB35DEDE29), UINT64_C(0x000502A05E2F8319)}, + {UINT64_C(0x000338A047D08030), UINT64_C(0x00050A7982BB722B), + UINT64_C(0x000383E0216F4B3F), UINT64_C(0x0004C7A4ED9B9E89), + UINT64_C(0x0004E87685DC7649), UINT64_C(0x0006D484C7EBB3E3), + UINT64_C(0x0006DE1BC9FDC618), UINT64_C(0x0005BD6D2BB413A0), + UINT64_C(0x000049BD7BE1BE65), UINT64_C(0x00016C04FAA43BB8)}}, + {{UINT64_C(0x00004480CB2786D2), UINT64_C(0x00016A7099089F43), + UINT64_C(0x0004937243CD80DB), UINT64_C(0x00012750E73A6278), + UINT64_C(0x000626538BE283B6), UINT64_C(0x00040FA0E5894E03), + UINT64_C(0x0006BF9036149B73), UINT64_C(0x000340A6643F7198), + UINT64_C(0x0000FDF9E90AE71F), UINT64_C(0x0002026C7AB86EA7)}, + {UINT64_C(0x000D16EFFDC6C167), UINT64_C(0x00079987485ACAFE), + UINT64_C(0x00044ECAA2B81CB1), UINT64_C(0x00012E547660B8E8), + UINT64_C(0x0007B1BE4F5084D6), UINT64_C(0x00035ECD495C1561), + UINT64_C(0x00019428F31961AD), UINT64_C(0x0003A909AF294BAC), + UINT64_C(0x0002EBAA89C6DB55), UINT64_C(0x00074D7085DEC609)}, + {UINT64_C(0x00012AC41AD9E34A), UINT64_C(0x0002CD879D1C83F1), + UINT64_C(0x0001DB74B741FC14), UINT64_C(0x00066DA29E07A4EC), + UINT64_C(0x00000D7E37FEFC54), UINT64_C(0x000A26B97A5598EA), + UINT64_C(0x000615C93236E843), UINT64_C(0x000382BC16FB3B6F), + UINT64_C(0x00025E0626E0106E), UINT64_C(0x0005854D6D92CC47)}}, + {{UINT64_C(0x000B6DA23DC37DD7), UINT64_C(0x000627D60888F4D0), + UINT64_C(0x000182E4C16CC439), UINT64_C(0x000190A2AEAAD64F), + UINT64_C(0x00058A080ED83FEF), UINT64_C(0x000C475B09289638), + UINT64_C(0x00000A2B7CF8481F), UINT64_C(0x00002B5319E8BC29), + UINT64_C(0x00007FF5582B8B07), UINT64_C(0x00071CFF2B7D8A99)}, + {UINT64_C(0x000799B83F3B4462), UINT64_C(0x00074ABE8CF43DF5), + UINT64_C(0x00021C8FA0636722), UINT64_C(0x00057366BE84D1CC), + UINT64_C(0x00004CD7BD66A8D7), UINT64_C(0x00071899B3473BA8), + UINT64_C(0x0000747B62595049), UINT64_C(0x00006097B2D1993A), + UINT64_C(0x0004CC30EDA24173), UINT64_C(0x00027116E4563311)}, + {UINT64_C(0x0004C7419A1E733D), UINT64_C(0x0000541AD1C0EEBF), + UINT64_C(0x0001BAB59CF44E81), UINT64_C(0x00056EA6AA62AA42), + UINT64_C(0x000088CBEBB0E2E1), UINT64_C(0x0004D93FA0BF3D38), + UINT64_C(0x0001F22C909EE410), UINT64_C(0x00006B1E6CAC473B), + UINT64_C(0x00019E125E7B6046), UINT64_C(0x0001CFB3D7B37E4E)}}, + {{UINT64_C(0x00048754583A8735), UINT64_C(0x0007C03868E916A6), + UINT64_C(0x0007B4DCB70752B4), UINT64_C(0x0004EC5FBA952102), + UINT64_C(0x00030F2C4A828172), UINT64_C(0x00023232F926F234), + UINT64_C(0x0007257074636C00), UINT64_C(0x0007BBA1745B61D3), + UINT64_C(0x0004606E90A58313), UINT64_C(0x0007E22E07DE154B)}, + {UINT64_C(0x0006C2E97C0DBC05), UINT64_C(0x00054DEBDD212630), + UINT64_C(0x0002C65F92437420), UINT64_C(0x00024DA821327EDC), + UINT64_C(0x000580B8B7AD4E87), UINT64_C(0x0001CF81FE5285E9), + UINT64_C(0x0006DD81D32634A6), UINT64_C(0x0003338A292D42A1), + UINT64_C(0x000025E961008BC1), UINT64_C(0x00036D9C01BA5AB9)}, + {UINT64_C(0x000DC6D75F088499), UINT64_C(0x0000A65C50F7E24F), + UINT64_C(0x00045F9DC37DEEF4), UINT64_C(0x0007A85A69654899), + UINT64_C(0x0004F6026DDF5B58), UINT64_C(0x00013EF829317A2A), + UINT64_C(0x00021C7A10A33027), UINT64_C(0x000556BF6AB7F742), + UINT64_C(0x0001388625C5DA4A), UINT64_C(0x000515466D6ABA32)}}, + }, + { + {{UINT64_C(0x0006AEDBD4096564), UINT64_C(0x0004FA8B9BD472A8), + UINT64_C(0x000518E920FABD7C), UINT64_C(0x00035641C8964A33), + UINT64_C(0x0003B7F827A7DEB4), UINT64_C(0x00087747322CE9B7), + UINT64_C(0x0000065AF64E2636), UINT64_C(0x0007E118D796640B), + UINT64_C(0x00022A725F5CDAF8), UINT64_C(0x0006482AF75091E7)}, + {UINT64_C(0x0004D5F5FBAF23D8), UINT64_C(0x00018961AF8EF02D), + UINT64_C(0x0004410974A5C748), UINT64_C(0x0003671CA4C34023), + UINT64_C(0x000198D894EF5FDF), UINT64_C(0x00045C045A1A5DA1), + UINT64_C(0x00006A2E629F4DBD), UINT64_C(0x0005EF0CF4FEC9BD), + UINT64_C(0x0002E56472C2285E), UINT64_C(0x000081F06DCB9DCB)}, + {UINT64_C(0x000E80FFCADCC17A), UINT64_C(0x00005936ED4B05E0), + UINT64_C(0x0005E5192BD5AE9E), UINT64_C(0x0004DAF3465C58CF), + UINT64_C(0x0006378BB4FAF5A0), UINT64_C(0x000CD0DB0E0B2AB7), + UINT64_C(0x00059295D7556578), UINT64_C(0x00017B233F34BAA3), + UINT64_C(0x0002571548CAFBE4), UINT64_C(0x0005236D086B5D11)}}, + {{UINT64_C(0x000C6C8A8FEAF23E), UINT64_C(0x00015B3EACB47609), + UINT64_C(0x0001C051945F47AE), UINT64_C(0x0003BB72E86D1518), + UINT64_C(0x0002F0317989531D), UINT64_C(0x000734207AD0F517), + UINT64_C(0x000363F8254FFC55), UINT64_C(0x00016DC567D3F213), + UINT64_C(0x0004C688524FC6D3), UINT64_C(0x000156E27F2C4E00)}, + {UINT64_C(0x00094738AD2D4E84), UINT64_C(0x000308AECD530FE4), + UINT64_C(0x0003502EB6F601CA), UINT64_C(0x0000A8DF04C92C06), + UINT64_C(0x00050EB08481C052), UINT64_C(0x000AA7EB925117D8), + UINT64_C(0x00049599E1644BCD), UINT64_C(0x0005C13296C44839), + UINT64_C(0x000500DE14878BFC), UINT64_C(0x00071AD4469CF9E7)}, + {UINT64_C(0x000E2FB921857436), UINT64_C(0x00043A88AF65DD1C), + UINT64_C(0x0007AE448925AD60), UINT64_C(0x000665712480CF54), + UINT64_C(0x0002182C680974A7), UINT64_C(0x000A0E7328765D70), + UINT64_C(0x000268DF8BD38233), UINT64_C(0x0006919944C2A877), + UINT64_C(0x0007783F5CA85F2D), UINT64_C(0x000739F3727C396A)}}, + {{UINT64_C(0x000E191F38D6E32D), UINT64_C(0x0003D053DFEFE14D), + UINT64_C(0x0006103BF922921F), UINT64_C(0x0002781AB0853980), + UINT64_C(0x0004D1652DB90908), UINT64_C(0x0005E1F759009BDD), + UINT64_C(0x00019A45C89003A3), UINT64_C(0x0006A14C19DCA07A), + UINT64_C(0x0005D837A9C8F3A6), UINT64_C(0x0000DE43E792E061)}, + {UINT64_C(0x000058271D24FD29), UINT64_C(0x00068BAB21F6CEE4), + UINT64_C(0x0004478711E724E4), UINT64_C(0x0006CEF29CE967CC), + UINT64_C(0x0004B50277D6D492), UINT64_C(0x0004164FBC658CA4), + UINT64_C(0x0005AF1234A44C70), UINT64_C(0x0003BD47313B580F), + UINT64_C(0x0006BC5D3649D3EC), UINT64_C(0x0007638ACC404B36)}, + {UINT64_C(0x00025CAF5D092528), UINT64_C(0x00015409EDAAF2E8), + UINT64_C(0x00058CB7B8A5B798), UINT64_C(0x0007CA6671CF0F3C), + UINT64_C(0x00052C52122B9340), UINT64_C(0x000DB0C96E176FB1), + UINT64_C(0x00055085B46D6018), UINT64_C(0x0002FDD65EB673C5), + UINT64_C(0x0000B19A0B489654), UINT64_C(0x0002A275A7E071D2)}}, + {{UINT64_C(0x0001A067462A7A3F), UINT64_C(0x0007CAA8EAE4E2D4), + UINT64_C(0x0004DFDFC8AE5719), UINT64_C(0x0007F8F8369F764C), + UINT64_C(0x0002A33657D7196B), UINT64_C(0x000ACE1F520DCA38), + UINT64_C(0x00015FA3A1F57752), UINT64_C(0x00001065EF98FA0B), + UINT64_C(0x0004F22D7351AD00), UINT64_C(0x0000B4988C661B8F)}, + {UINT64_C(0x000C5FDC9DF374E1), UINT64_C(0x00033D547A4D226B), + UINT64_C(0x0002DA94FE5AD02C), UINT64_C(0x0005207148BDD3C7), + UINT64_C(0x0001521F51FF31A6), UINT64_C(0x00048B1F8084AD9F), + UINT64_C(0x000169D55C98C3B6), UINT64_C(0x00016716681D2998), + UINT64_C(0x00076D65C8585D2D), UINT64_C(0x000503C6F5CC1008)}, + {UINT64_C(0x000CE3789E67601E), UINT64_C(0x0000F38B3450DF49), + UINT64_C(0x0003E6488733B404), UINT64_C(0x000128DC95E3F8DB), + UINT64_C(0x0003405A39A11293), UINT64_C(0x000E8E6112B3A418), + UINT64_C(0x00046B9A7FFCE45B), UINT64_C(0x0005D9582699F55F), + UINT64_C(0x000509DE86896EE8), UINT64_C(0x000253344BD2D25A)}}, + {{UINT64_C(0x000A74347CE9D01B), UINT64_C(0x00044CA58D3D8F8A), + UINT64_C(0x00050F0D0D68B95B), UINT64_C(0x00066CFA1182777D), + UINT64_C(0x0000B0C791214C7B), UINT64_C(0x0002416F6ECE0445), + UINT64_C(0x00049F613047A77F), UINT64_C(0x00070690C94185C7), + UINT64_C(0x0006E6203DEAD6C4), UINT64_C(0x00030B26F58B9536)}, + {UINT64_C(0x000A58FA609D2E01), UINT64_C(0x000678958763572F), + UINT64_C(0x000767549D4EB411), UINT64_C(0x0007809D91FE5A98), + UINT64_C(0x00013335B8563F17), UINT64_C(0x0009523C3394E0DA), + UINT64_C(0x00048A10A1B96912), UINT64_C(0x000742BA8C558752), + UINT64_C(0x00009B3582D1EFD9), UINT64_C(0x00016EAF2C3E1BD3)}, + {UINT64_C(0x000E2DC67D5E5A88), UINT64_C(0x000598CF6F4EF704), + UINT64_C(0x00011C238E331841), UINT64_C(0x0002E1CA17ED944C), + UINT64_C(0x0007FEA87E3DB53D), UINT64_C(0x0000B99FCC76BB95), + UINT64_C(0x0000BBF95F7E3AB4), UINT64_C(0x000445911CBCE6F1), + UINT64_C(0x00062C0AEE9E79DF), UINT64_C(0x0001ABB8605E684D)}}, + {{UINT64_C(0x0003871499B1866E), UINT64_C(0x00026E19448C89A9), + UINT64_C(0x00007B6CB1356919), UINT64_C(0x0007B5EFC7773779), + UINT64_C(0x00071541CD774F9C), UINT64_C(0x0000D81B8DC56F51), + UINT64_C(0x000590BBF413B605), UINT64_C(0x000312F6FCC71713), + UINT64_C(0x00040195ACA7265C), UINT64_C(0x00026C0F46908F3B)}, + {UINT64_C(0x000C3CFC3518AB54), UINT64_C(0x0002C5FF27FA6953), + UINT64_C(0x00009C03C91FECE0), UINT64_C(0x00063E758C4A409F), + UINT64_C(0x00047ED48DD883AF), UINT64_C(0x000D3B409A02DCB3), + UINT64_C(0x000710E2A1D5CBE9), UINT64_C(0x0007DC251BA3E052), + UINT64_C(0x00045E9A29900763), UINT64_C(0x0000A7C951A4128D)}, + {UINT64_C(0x000B48959A040E34), UINT64_C(0x000641FBFBA37FEE), + UINT64_C(0x0006D6D531398A6F), UINT64_C(0x0005F4725764937E), + UINT64_C(0x0000FB5E7D595AF7), UINT64_C(0x0002A0E33F31CD55), + UINT64_C(0x000171D3C6F621A1), UINT64_C(0x00030886FC60A83C), + UINT64_C(0x0002375FEAAB3B40), UINT64_C(0x000656142FE41FD8)}}, + {{UINT64_C(0x00088D813F345513), UINT64_C(0x0006B33BA57A93E0), + UINT64_C(0x0004C7985F7EFB17), UINT64_C(0x0000AD075424ADBA), + UINT64_C(0x0004E8F7946DF6B2), UINT64_C(0x000C112D1F980523), + UINT64_C(0x00049E755D0280A1), UINT64_C(0x0002D0BE2A1F153A), + UINT64_C(0x0003488C3095B641), UINT64_C(0x0004DB1E9A0CD854)}, + {UINT64_C(0x000827E184A33715), UINT64_C(0x00026FFF534D1DE2), + UINT64_C(0x0005B116ED309D3B), UINT64_C(0x00040C8D9923F968), + UINT64_C(0x000254D6262F127D), UINT64_C(0x000EB4C401A02B57), + UINT64_C(0x0007C1A5CD19481B), UINT64_C(0x0004E994D22CB148), + UINT64_C(0x0002FD14D8E9A6FF), UINT64_C(0x0003F3B0B506E8EF)}, + {UINT64_C(0x0000ACBB2192D0D4), UINT64_C(0x0005AD437C1137DA), + UINT64_C(0x000194DF8F4978FE), UINT64_C(0x000569F428FCD681), + UINT64_C(0x000440AB84EBDA2E), UINT64_C(0x0000071ACB2B9B94), + UINT64_C(0x00036495A727E109), UINT64_C(0x0002C7BBFBC4670C), + UINT64_C(0x00070DF23A25F661), UINT64_C(0x00028B24AE967AD8)}}, + {{UINT64_C(0x000A0F56D26C19CD), UINT64_C(0x0002199EFE6C17CF), + UINT64_C(0x000234D29F1CA747), UINT64_C(0x00074E7EDAC788C6), + UINT64_C(0x00056DEF769EC613), UINT64_C(0x0006DA5F9111D368), + UINT64_C(0x00075019DED7070F), UINT64_C(0x000668904B9CC686), + UINT64_C(0x0007BD2278E98141), UINT64_C(0x00074D7CE18B9D06)}, + {UINT64_C(0x0001691EF1DB7743), UINT64_C(0x0005BDCB52513251), + UINT64_C(0x0000880DFD58552F), UINT64_C(0x0001D6B3EE69BD0A), + UINT64_C(0x0000DF5A88773C38), UINT64_C(0x000C094929962F60), + UINT64_C(0x0001978F58542D2F), UINT64_C(0x0002477127820A19), + UINT64_C(0x0004F630DFE1AD37), UINT64_C(0x000283387FC2588D)}, + {UINT64_C(0x00073E4B175342B1), UINT64_C(0x0001E2EA2F8817F8), + UINT64_C(0x0000E36E592D89B9), UINT64_C(0x000556985C76F3D1), + UINT64_C(0x00017586947F1B9F), UINT64_C(0x00083894538720F0), + UINT64_C(0x00049C8320EB6627), UINT64_C(0x00057FCF4E730A78), + UINT64_C(0x0002A4BEEFAA0B93), UINT64_C(0x000294ECE9A722E1)}}, + {{UINT64_C(0x000672F6D1495031), UINT64_C(0x0001BD8FDDE53EF6), + UINT64_C(0x0002B91C714A2C13), UINT64_C(0x0003042764C1BE7A), + UINT64_C(0x000215C56A0EDE6E), UINT64_C(0x000F01712E36F0AB), + UINT64_C(0x000525EB2C91F5D9), UINT64_C(0x0004A7BAC5E8B947), + UINT64_C(0x0005183B56926CBA), UINT64_C(0x0007D3EDAAAC8E27)}, + {UINT64_C(0x000282A6939E11C3), UINT64_C(0x00066C4CBC6F5DBE), + UINT64_C(0x0005123C70144F68), UINT64_C(0x0000354705754070), + UINT64_C(0x0005BE6B2B681A76), UINT64_C(0x00054B5DD04806FF), + UINT64_C(0x0004CE73D1EA7C82), UINT64_C(0x000692CC1053AB63), + UINT64_C(0x000535AE1B4F5F42), UINT64_C(0x00060A6C280503D9)}, + {UINT64_C(0x0005CCDAD02C3E6B), UINT64_C(0x000236AAF0C2208D), + UINT64_C(0x0002A1B3DC123AD5), UINT64_C(0x0004808D9A85C7CB), + UINT64_C(0x000620B632D048DE), UINT64_C(0x000DE4795B182DAC), + UINT64_C(0x0006F740B4DDEBB6), UINT64_C(0x000527F4E1B71053), + UINT64_C(0x0003711DE510B0C6), UINT64_C(0x0004C2397BB75FD4)}}, + {{UINT64_C(0x0004234DA61A7380), UINT64_C(0x0007CFE09C0E115B), + UINT64_C(0x000146042D1F85BF), UINT64_C(0x00076BA304771D0E), + UINT64_C(0x000382E92D2CA568), UINT64_C(0x000F852C7DE31639), + UINT64_C(0x0002B6DA101F3608), UINT64_C(0x0002354CDEB32A3D), + UINT64_C(0x0006D1C3FABA408E), UINT64_C(0x00046A322AB41F71)}, + {UINT64_C(0x000835486D6965D2), UINT64_C(0x0005DDC060C09641), + UINT64_C(0x0006FE8F914611BF), UINT64_C(0x00056CBACCEE1D60), + UINT64_C(0x00029652751B4958), UINT64_C(0x00030B1681FB22FD), + UINT64_C(0x0004C26183389F35), UINT64_C(0x00064C5D6F3E855B), + UINT64_C(0x00048CC11FAA68A2), UINT64_C(0x000303DF8C197245)}, + {UINT64_C(0x000A93445489DD55), UINT64_C(0x00032C10E5A00644), + UINT64_C(0x00010133787B6B48), UINT64_C(0x000294AF3FFBB10E), + UINT64_C(0x00067150840A8E54), UINT64_C(0x00048B07F53AECD5), + UINT64_C(0x0002BDABD1E806B9), UINT64_C(0x00077916BD0D716C), + UINT64_C(0x0007251EACE82A30), UINT64_C(0x0005BD06E6166102)}}, + {{UINT64_C(0x000198DAB8E7D26B), UINT64_C(0x0004B8CD7B0F6214), + UINT64_C(0x0006F94FEBA66594), UINT64_C(0x0006D655AAE8E434), + UINT64_C(0x00033CBDDA515A1D), UINT64_C(0x000FD360D05067E0), + UINT64_C(0x0007D4B6026E8F95), UINT64_C(0x0006FA60F441F382), + UINT64_C(0x000671F70F6E2FD4), UINT64_C(0x00058B341C31C7CD)}, + {UINT64_C(0x0003B6DAB18C1F78), UINT64_C(0x000360A07E0CE4B7), + UINT64_C(0x00037BA4F69CC30E), UINT64_C(0x00014F6DD6939E3B), + UINT64_C(0x00071E66AFEA8A58), UINT64_C(0x000F5276CCE6483E), + UINT64_C(0x0003F604318A4007), UINT64_C(0x0001FF31567FCF56), + UINT64_C(0x0007687CFE2E27EA), UINT64_C(0x00043AF6AD6807D2)}, + {UINT64_C(0x000152CC8C204025), UINT64_C(0x00032037F0153CD1), + UINT64_C(0x0001E8B1E05EC419), UINT64_C(0x0001B7B6CEF81375), + UINT64_C(0x00017E8291BDC455), UINT64_C(0x0002E282133836F4), + UINT64_C(0x0001D9A6210E2D16), UINT64_C(0x000799CEE0857BEA), + UINT64_C(0x00035D41A84A5412), UINT64_C(0x0006FFBCA27C28A6)}}, + {{UINT64_C(0x0000430814E96BE9), UINT64_C(0x00057E73FB140B73), + UINT64_C(0x00060128FAB5ADA4), UINT64_C(0x0007C05121085A5A), + UINT64_C(0x000767DC265FE0E8), UINT64_C(0x00025029FD3C2D6F), + UINT64_C(0x0004EF454786B123), UINT64_C(0x000208D275E826AD), + UINT64_C(0x0006C327FB0C7286), UINT64_C(0x000424E515341DF4)}, + {UINT64_C(0x0009BDDC8231AB6B), UINT64_C(0x0005CA9241F8E72F), + UINT64_C(0x000773A7E6FE081D), UINT64_C(0x00024CAA53134E52), + UINT64_C(0x0005AC81DCD4E91A), UINT64_C(0x00062F6FB283E86A), + UINT64_C(0x00020E0D3D1EA811), UINT64_C(0x0000179B49545C71), + UINT64_C(0x00051EA7921EDD08), UINT64_C(0x0001106F03625EEA)}, + {UINT64_C(0x000F609CEB81873F), UINT64_C(0x00019BFC53A07BB7), + UINT64_C(0x0002151A37FD339F), UINT64_C(0x0000247FAB99463B), + UINT64_C(0x00028EB12503B657), UINT64_C(0x00000740156BCA3C), + UINT64_C(0x0003050E54A17FC4), UINT64_C(0x00006A21FE8BE254), + UINT64_C(0x000783205CEE4961), UINT64_C(0x0005DDAC46630BD0)}}, + {{UINT64_C(0x000D0214026C8378), UINT64_C(0x00049B9512E7C6AB), + UINT64_C(0x00052CAB42C95449), UINT64_C(0x0001712C0B2D3437), + UINT64_C(0x000028712113EE6E), UINT64_C(0x0003C231B02FBAA4), + UINT64_C(0x00034002A05D7466), UINT64_C(0x00047244849D6C0F), + UINT64_C(0x00007A777E770EED), UINT64_C(0x0002FB5FBC1A501D)}, + {UINT64_C(0x0007DD3F594FA92E), UINT64_C(0x00011F65F7B4DC87), + UINT64_C(0x0006C8D5BC2A5CD3), UINT64_C(0x00045434BCA486D6), + UINT64_C(0x0000916C2F835346), UINT64_C(0x000284317FF11104), + UINT64_C(0x0000FED4B690D85B), UINT64_C(0x0004F7CD3C5275F4), + UINT64_C(0x00072FCBE2A0E31E), UINT64_C(0x0006DCE382A2D3FC)}, + {UINT64_C(0x00010A836271A17B), UINT64_C(0x000731E97701D7E1), + UINT64_C(0x00074424AD4971CE), UINT64_C(0x0007F483B4D3226B), + UINT64_C(0x0000B8D73CF87486), UINT64_C(0x0003747546D2B06B), + UINT64_C(0x0006D6E9758543E8), UINT64_C(0x0002311DE6C16B96), + UINT64_C(0x0000CBAF9CBD69A4), UINT64_C(0x000095BAD5DFF17A)}}, + {{UINT64_C(0x000774E982F03894), UINT64_C(0x00068F7BA9BD2B4C), + UINT64_C(0x0001BF739059F5EE), UINT64_C(0x00047AB5F6CF04EE), + UINT64_C(0x00003AC811A5FFEF), UINT64_C(0x0005C95473A71B06), + UINT64_C(0x00059B02D1C89D3A), UINT64_C(0x00011350FAAC38CB), + UINT64_C(0x0002513847A831C2), UINT64_C(0x0007FA7D3DC337C4)}, + {UINT64_C(0x000E029A8789C756), UINT64_C(0x0006C80112AA281C), + UINT64_C(0x00008852BEC02592), UINT64_C(0x0003FBF12B155C1A), + UINT64_C(0x0005E093259AD772), UINT64_C(0x0009A44E24E7366E), + UINT64_C(0x0003BF1CA8CB8F83), UINT64_C(0x0006E16F8C3A71FD), + UINT64_C(0x0001DBC1D6FDDDC1), UINT64_C(0x0005A28406D8B874)}, + {UINT64_C(0x00052274D60C7FE9), UINT64_C(0x00009ADA801895BF), + UINT64_C(0x000022D4D6202774), UINT64_C(0x00072D947EE0B5BD), + UINT64_C(0x00051A0FEB7FDA2C), UINT64_C(0x000709284A66373B), + UINT64_C(0x00013FB44E784E2E), UINT64_C(0x00043800043BC45B), + UINT64_C(0x0006DEBFA915C8FE), UINT64_C(0x000184A44DB57776)}}, + {{UINT64_C(0x000C6E45435B0D8B), UINT64_C(0x0007A4D96FC4C926), + UINT64_C(0x0004DD4FFB13A623), UINT64_C(0x0002B97573D59BA4), + UINT64_C(0x00064D5DAD519C4F), UINT64_C(0x000C54E3E0322075), + UINT64_C(0x00025D680006D4FD), UINT64_C(0x000026C6C103CE9E), + UINT64_C(0x0006A3C770AD980F), UINT64_C(0x00000AFFA7978989)}, + {UINT64_C(0x0001BBC06890396F), UINT64_C(0x00059B7508BE77A3), + UINT64_C(0x0002C2F34E1E88EF), UINT64_C(0x0000BA76CC4B6DC3), + UINT64_C(0x00040CB93F2DB890), UINT64_C(0x00038DB1EAF02BA4), + UINT64_C(0x00051A968FE1C009), UINT64_C(0x00079E490FDF2F6E), + UINT64_C(0x00038810CC4881B6), UINT64_C(0x0002F52348865870)}, + {UINT64_C(0x000FBCBADF123F77), UINT64_C(0x0005C24E5CE6F8C7), + UINT64_C(0x00057CBE94145D7B), UINT64_C(0x0003D7A5F191DC9F), + UINT64_C(0x000580576DE72DB2), UINT64_C(0x0003E11D99876CB6), + UINT64_C(0x00071D9921E18FA4), UINT64_C(0x0002A74C8C214DE9), + UINT64_C(0x000290E367E8106A), UINT64_C(0x0000A45E602E2A06)}}, + {{UINT64_C(0x000C81708300B3A2), UINT64_C(0x00002EB6DD40141C), + UINT64_C(0x00008EBFBAD275A0), UINT64_C(0x00009EB98ABECC72), + UINT64_C(0x0001EA0CBBD24C18), UINT64_C(0x0005C085867DB19C), + UINT64_C(0x00078A2DB60D1751), UINT64_C(0x00032A43EBAC70A1), + UINT64_C(0x0002C402B12DA313), UINT64_C(0x0004F4B89ACDD13A)}, + {UINT64_C(0x0004AC90A370FD35), UINT64_C(0x00027D715223E22B), + UINT64_C(0x000564833F08968D), UINT64_C(0x0006A965DB0C2238), + UINT64_C(0x0004C25626C5CCE9), UINT64_C(0x000E894C118288F1), + UINT64_C(0x00004FDD61C59DF2), UINT64_C(0x0004F91479C26D34), + UINT64_C(0x00022FDED1EDE6BC), UINT64_C(0x00053CC6F351DBD1)}, + {UINT64_C(0x00041C1E5BF143DB), UINT64_C(0x00078318A8FC82ED), + UINT64_C(0x00073CB01F7A1760), UINT64_C(0x0002BB276EE12092), + UINT64_C(0x00062B5D062F3983), UINT64_C(0x0006C0699785ED64), + UINT64_C(0x000705C5B8750987), UINT64_C(0x000734C5A5EBF1CC), + UINT64_C(0x0006B535CD5FCA58), UINT64_C(0x000173A96CF5E5C2)}}, + }, + { + {{UINT64_C(0x00013C7D530A0840), UINT64_C(0x00037CA09024BA99), + UINT64_C(0x00000F02A724D26D), UINT64_C(0x0007486168F78DF3), + UINT64_C(0x00057B6FBAF96B6F), UINT64_C(0x00020E874D64E405), + UINT64_C(0x0001C5456BEE2684), UINT64_C(0x000700947727AE36), + UINT64_C(0x0000AF081E60DF35), UINT64_C(0x00049F6D248190F3)}, + {UINT64_C(0x000FACBF6A273B2E), UINT64_C(0x0000B50B6F61BB7F), + UINT64_C(0x00016ED02D72CCBD), UINT64_C(0x000009999E37103A), + UINT64_C(0x0006DEE9B338E1D0), UINT64_C(0x00076C4153F5F8EB), + UINT64_C(0x0004FB473E4876B9), UINT64_C(0x00035CB573505218), + UINT64_C(0x00040E4E17B314F1), UINT64_C(0x00064FADD17FB3C8)}, + {UINT64_C(0x00090B27A6A17533), UINT64_C(0x00010DB043FC3678), + UINT64_C(0x0005F8AAB7DA8EDB), UINT64_C(0x0005008B83D17311), + UINT64_C(0x00075BB4482F1426), UINT64_C(0x000B1BCB5765DFFA), + UINT64_C(0x000242DCC05593AD), UINT64_C(0x00045C4BE141A4D5), + UINT64_C(0x0006EBC978B8CA73), UINT64_C(0x0004580E5DA2151A)}}, + {{UINT64_C(0x000B09415B635B74), UINT64_C(0x000483E55C20EA00), + UINT64_C(0x00070DEE5B80A6E0), UINT64_C(0x00072FD4450BC01C), + UINT64_C(0x0007B300C6DCC536), UINT64_C(0x000754D2BB66E63F), + UINT64_C(0x0001BF3C286F6A01), UINT64_C(0x00025F645BB8410D), + UINT64_C(0x000298DF23B3BFD7), UINT64_C(0x0001774CB501031D)}, + {UINT64_C(0x000271CB350C6048), UINT64_C(0x0007DCA7FD3BF959), + UINT64_C(0x0000C41185459A7F), UINT64_C(0x0004BB079006A71E), + UINT64_C(0x0001C3DA681DC428), UINT64_C(0x000E32A22D0BED67), + UINT64_C(0x0001CF9C74CC48D7), UINT64_C(0x000754ED2FD148AF), + UINT64_C(0x0006A6BF79732C29), UINT64_C(0x0000637BA0DEB58F)}, + {UINT64_C(0x000AEEE5E5D5BF89), UINT64_C(0x0001BA9622F598CD), + UINT64_C(0x00017E6C0ECF6116), UINT64_C(0x0001B6169A7A5686), + UINT64_C(0x0000C74F9DCA999E), UINT64_C(0x000BAE9A5784B34D), + UINT64_C(0x0003F1DCC80821EF), UINT64_C(0x0006A6297209394D), + UINT64_C(0x000027BAECCEB3DB), UINT64_C(0x0006FBF5A0739FF7)}}, + {{UINT64_C(0x000ADF4D9C8BE4C7), UINT64_C(0x0001F7C3F9B2DF52), + UINT64_C(0x000054205B348462), UINT64_C(0x00058A2B0587B556), + UINT64_C(0x0001031A5A79DB2E), UINT64_C(0x000CB7B60FC99B95), + UINT64_C(0x00025FC96A4BB5A5), UINT64_C(0x0006C62B62F597A6), + UINT64_C(0x00009CBDCB2DF127), UINT64_C(0x0002ACC07E9CED89)}, + {UINT64_C(0x0000ED235FAE524A), UINT64_C(0x0003E231B9C1C59C), + UINT64_C(0x0005FACE3761829C), UINT64_C(0x000417E0131C4B06), + UINT64_C(0x000703508BE7FC97), UINT64_C(0x00047BA8D9CC12E6), + UINT64_C(0x00040B532D99E9A0), UINT64_C(0x00013850B64F1991), + UINT64_C(0x0005CDF168C10B39), UINT64_C(0x000358ABDF8E6B44)}, + {UINT64_C(0x00042687C30120DE), UINT64_C(0x0006F4E854B5AC1D), + UINT64_C(0x000060D24D07C886), UINT64_C(0x0006662BC5B4226E), + UINT64_C(0x0000DD5E40422C53), UINT64_C(0x00066BA1A186AEA2), + UINT64_C(0x0003D5A9977141C7), UINT64_C(0x0007210CB94D5A31), + UINT64_C(0x0000575395147170), UINT64_C(0x0003EEF35D2347C4)}}, + {{UINT64_C(0x00005FA6D194F912), UINT64_C(0x000656A4617A17B0), + UINT64_C(0x0002B82DEF48F596), UINT64_C(0x000483AE1ABD8952), + UINT64_C(0x0004FEA93C4AA27F), UINT64_C(0x000A79830ABCFA6B), + UINT64_C(0x00030C8EA10D6328), UINT64_C(0x000150C9AB136C88), + UINT64_C(0x00009F66838D7EB3), UINT64_C(0x000599AAECD736AC)}, + {UINT64_C(0x000101FF4997777E), UINT64_C(0x0006FE6DA39F9EF7), + UINT64_C(0x0005DD2FD55D5B90), UINT64_C(0x00001EBA3BFFA43E), + UINT64_C(0x0003937F9AEAE09F), UINT64_C(0x000B6E4EB341745B), + UINT64_C(0x0006A541793FEB35), UINT64_C(0x0004C99BA0510109), + UINT64_C(0x0003ECAA464451F9), UINT64_C(0x000627CC2A28E33F)}, + {UINT64_C(0x0006F5CF9EEF8083), UINT64_C(0x0003689B7AF03C8C), + UINT64_C(0x00041C9C530F26AE), UINT64_C(0x0006F1B087DFAE9E), + UINT64_C(0x0005ABB0337D1374), UINT64_C(0x000F05AA9CE380B8), + UINT64_C(0x00039D858198471E), UINT64_C(0x0005CB4A29D7FAB0), + UINT64_C(0x000794534C8BBACE), UINT64_C(0x00039CEB7D5953E0)}}, + {{UINT64_C(0x000614976BAF39A3), UINT64_C(0x000325765D4DAD1B), + UINT64_C(0x0006EC2EF5A9DFA1), UINT64_C(0x0004F0B8F0301A47), + UINT64_C(0x000031D97E564E18), UINT64_C(0x0001C40ECB1A0617), + UINT64_C(0x0000DEA316CA6102), UINT64_C(0x000232439090EE60), + UINT64_C(0x0002901913C8FB0F), UINT64_C(0x000412FF556E2402)}, + {UINT64_C(0x00064CE9BB2FE15E), UINT64_C(0x0005E645C62B940A), + UINT64_C(0x0003113E7905C6AE), UINT64_C(0x0002BBDF7FB2C955), + UINT64_C(0x0000CCF48175A91B), UINT64_C(0x00038BC3E1E69073), + UINT64_C(0x00004538F90A325F), UINT64_C(0x00046BF9A7D85906), + UINT64_C(0x0005D8AAA52E49AC), UINT64_C(0x0006F70CEB9DE4F0)}, + {UINT64_C(0x000635FDDEEE55B1), UINT64_C(0x0002B647305EC4D0), + UINT64_C(0x000785A1C6C0CC5B), UINT64_C(0x0000C28EEEF42FDF), + UINT64_C(0x00070B6DF3CE31F0), UINT64_C(0x00075BB72FEDB524), + UINT64_C(0x00044424339CD683), UINT64_C(0x000724049E9861DF), + UINT64_C(0x000606B0D0C1B71C), UINT64_C(0x00072720DEDAF767)}}, + {{UINT64_C(0x000AB553D62ECFB6), UINT64_C(0x00078C8B49E2EE27), + UINT64_C(0x000712AB7130F07C), UINT64_C(0x0007517AB87454C5), + UINT64_C(0x0007A2F222BFE5AF), UINT64_C(0x0009DF9AC8EF8D1E), + UINT64_C(0x00070A0B9486719E), UINT64_C(0x0005FE0A5CBB6815), + UINT64_C(0x0005A777CFBB6EAC), UINT64_C(0x00026AA3DEB05ED1)}, + {UINT64_C(0x000178E658CAB163), UINT64_C(0x0006218B72D4439D), + UINT64_C(0x0003E0E7508F98B6), UINT64_C(0x00053A2E9C0FE780), + UINT64_C(0x0000862C90F4AB94), UINT64_C(0x0007D2A76495265C), + UINT64_C(0x00007D6CA0B086A9), UINT64_C(0x00037E0CE123AE70), + UINT64_C(0x0005E35005198C60), UINT64_C(0x00014DB9BE0C9BD4)}, + {UINT64_C(0x00022AE27AE69A25), UINT64_C(0x0006BC61B880B6B7), + UINT64_C(0x0002B9A770ACB37C), UINT64_C(0x0006A57A8181E7DE), + UINT64_C(0x000515156749D33A), UINT64_C(0x000089265C87573A), + UINT64_C(0x0002AAB0BA4334FD), UINT64_C(0x00036BFA753F183D), + UINT64_C(0x0007D94CDD21BBEA), UINT64_C(0x00073D056E77BAD1)}}, + {{UINT64_C(0x00054034D049A849), UINT64_C(0x0007A61F3DCAD52B), + UINT64_C(0x0006AE0359F441AC), UINT64_C(0x0004FA71A2DB1D12), + UINT64_C(0x0004A3AD2195FB05), UINT64_C(0x000DA575D0991F08), + UINT64_C(0x0004483A3F583D4A), UINT64_C(0x00019E22FF97F896), + UINT64_C(0x00045CE17079EB6F), UINT64_C(0x0003D843DC26F0B3)}, + {UINT64_C(0x0005BB7830081F4A), UINT64_C(0x000535B970A5DEEC), + UINT64_C(0x0006920157058AB1), UINT64_C(0x0005ABB6799CD9B0), + UINT64_C(0x0004E722E0BE3E24), UINT64_C(0x00034B265793F314), + UINT64_C(0x000721330570DC23), UINT64_C(0x0004426EF0F5B164), + UINT64_C(0x0007D6F3A6CB44E7), UINT64_C(0x00056E34A5B334A3)}, + {UINT64_C(0x0003F8C7FDA5799A), UINT64_C(0x000633A1AB544629), + UINT64_C(0x00036C698257C6E1), UINT64_C(0x000671CB37471C6E), + UINT64_C(0x0006309190EBE26A), UINT64_C(0x000073E0D3C3C947), + UINT64_C(0x00075458F071D648), UINT64_C(0x0000304D50E4E6E2), + UINT64_C(0x00025B9FCE5481C7), UINT64_C(0x000560854658E1E6)}}, + {{UINT64_C(0x000AF006973EAE1E), UINT64_C(0x0003BA1CB36833ED), + UINT64_C(0x000440038B6244FE), UINT64_C(0x0001ED4D4B28E0BB), + UINT64_C(0x0004946559A45B7C), UINT64_C(0x000D7AC175A120AF), + UINT64_C(0x0000C782441BE688), UINT64_C(0x0003FBE4F6759494), + UINT64_C(0x0003227FCD0861C6), UINT64_C(0x000693E8E569DF61)}, + {UINT64_C(0x000EF3D4D70D6006), UINT64_C(0x0003622B91C969F3), + UINT64_C(0x00059E57B022C126), UINT64_C(0x0004E567BE39909D), + UINT64_C(0x00025826F5172EBE), UINT64_C(0x000978FE696EB07D), + UINT64_C(0x0007E55EC2C54F03), UINT64_C(0x0001F198F1EA9886), + UINT64_C(0x00061284786511BB), UINT64_C(0x00054EBEEA2E481C)}, + {UINT64_C(0x000F0108988CDC8A), UINT64_C(0x0006320933C6DB8E), + UINT64_C(0x00069930CEF56158), UINT64_C(0x0003A35FC98F89A6), + UINT64_C(0x00027BD07B67AAA5), UINT64_C(0x000A2124168772A7), + UINT64_C(0x000108CBFCB7F765), UINT64_C(0x000190EA54B1EC2B), + UINT64_C(0x000427DAAD72BFD4), UINT64_C(0x00073EB2D65C41BA)}}, + {{UINT64_C(0x000A06A739424A7F), UINT64_C(0x0000F82BABC20278), + UINT64_C(0x0005E0013C80B8BA), UINT64_C(0x00009213E9C746A9), + UINT64_C(0x00077CCF7EE8DCA2), UINT64_C(0x00048553CE359952), + UINT64_C(0x00068D83C7BB1BFC), UINT64_C(0x00023585472C1288), + UINT64_C(0x000683CF0D405E14), UINT64_C(0x0004B248941E148A)}, + {UINT64_C(0x000A7C88931485A3), UINT64_C(0x00030D7D59F36392), + UINT64_C(0x0003096B037E2FE5), UINT64_C(0x00072B76E5C87A57), + UINT64_C(0x000412333ADDB88D), UINT64_C(0x00075009989C68F4), + UINT64_C(0x0005EE189974076A), UINT64_C(0x000060FFAFD8A128), + UINT64_C(0x000120ACF08DA33F), UINT64_C(0x000571F558025BFD)}, + {UINT64_C(0x000DA9D04CD700E8), UINT64_C(0x00057458C41B633D), + UINT64_C(0x00014B6489FA7B39), UINT64_C(0x0003BD5C957593DD), + UINT64_C(0x0001304CB1D79CF1), UINT64_C(0x0005E9BAF878A8A2), + UINT64_C(0x000194C540C98A95), UINT64_C(0x0003B7B2BACEC32A), + UINT64_C(0x0004F344F8DD4CDE), UINT64_C(0x000078EF34BD78A1)}}, + {{UINT64_C(0x000FC67E2383EF8F), UINT64_C(0x000382B810E6F7BF), + UINT64_C(0x00006C9F24B27C13), UINT64_C(0x000057D888D81661), + UINT64_C(0x00054A699A1B1D6B), UINT64_C(0x0008FF73BB9232B4), + UINT64_C(0x0003804878333A2B), UINT64_C(0x00044F051B58790E), + UINT64_C(0x0000271D3AA9BD38), UINT64_C(0x00044CDE0EB6CF43)}, + {UINT64_C(0x0000D62B3C3A5A19), UINT64_C(0x000141707504E91E), + UINT64_C(0x0006515C33000546), UINT64_C(0x00017546C6B9FF00), + UINT64_C(0x00045D82E76E1B8B), UINT64_C(0x000AE172E2EB811B), + UINT64_C(0x000413704723E59F), UINT64_C(0x00070B4CE13230E2), + UINT64_C(0x0000054BF697CE5A), UINT64_C(0x00063ECC547A49B9)}, + {UINT64_C(0x000602372F14D11C), UINT64_C(0x000378921B1097ED), + UINT64_C(0x00067C4238D607FA), UINT64_C(0x00021D2C859309EE), + UINT64_C(0x0005847490A29E8E), UINT64_C(0x0002D093948C4994), + UINT64_C(0x0000E23389BFC4DD), UINT64_C(0x0007DE892CA061E2), + UINT64_C(0x0004BCEA3495B247), UINT64_C(0x00062F7532D3859D)}}, + {{UINT64_C(0x00086B22DF769D24), UINT64_C(0x000247653B1384A5), + UINT64_C(0x0007CA7B0BA8B67B), UINT64_C(0x00003DE749E6F9B6), + UINT64_C(0x00060288E35E6723), UINT64_C(0x000132375704332A), + UINT64_C(0x000090B7E04CAAD9), UINT64_C(0x000618FE2CC615F8), + UINT64_C(0x00071C3FA82E1054), UINT64_C(0x0005ACCA0095992F)}, + {UINT64_C(0x0008070A5524110A), UINT64_C(0x0002F514E36570A5), + UINT64_C(0x0007FA5FFDAD9B18), UINT64_C(0x00040716460997F2), + UINT64_C(0x0004A84076418D9B), UINT64_C(0x000191D0E25444E5), + UINT64_C(0x0003F007A978D4FD), UINT64_C(0x00010583B27CE828), + UINT64_C(0x00076188CFB16D13), UINT64_C(0x0004AB4850C52869)}, + {UINT64_C(0x000CB5BB8406E9FB), UINT64_C(0x0006229079FE11A8), + UINT64_C(0x00069D10E2374F64), UINT64_C(0x0003E0965719E097), + UINT64_C(0x0003D8E4F1D6E86E), UINT64_C(0x000FEA5863BEBA3D), + UINT64_C(0x0007D0430EF56C07), UINT64_C(0x000181949DFD703D), + UINT64_C(0x0001339A965B35C2), UINT64_C(0x0003B56220F5C7F3)}}, + {{UINT64_C(0x00066DEE74B6C3E6), UINT64_C(0x000383135AE75C98), + UINT64_C(0x0004505F98DC1ACE), UINT64_C(0x00032C4BBDDAC89F), + UINT64_C(0x00052AA09F53D136), UINT64_C(0x0004F3A390196005), + UINT64_C(0x0004A5FCAC34F0E0), UINT64_C(0x0001EDC68C692D8B), + UINT64_C(0x0002FD9E6D8EE76F), UINT64_C(0x00029FC1CCA2C8F6)}, + {UINT64_C(0x00065029BC02DCE4), UINT64_C(0x00072FD6589B1B83), + UINT64_C(0x00004147281085E5), UINT64_C(0x0003B32D6A3356B3), + UINT64_C(0x00073F9780B33257), UINT64_C(0x0003D884CD344161), + UINT64_C(0x00032F7D4EA15736), UINT64_C(0x0000F5FB646C3211), + UINT64_C(0x000710946F78EE11), UINT64_C(0x00041450BEBEAFA8)}, + {UINT64_C(0x0004B10D60B8A44B), UINT64_C(0x00074DF316AD0515), + UINT64_C(0x00000BD0DA3A0140), UINT64_C(0x0002FA9736D69155), + UINT64_C(0x0004AE7CB062A37A), UINT64_C(0x0003B28579544A9B), + UINT64_C(0x00030DEF5D17E4D9), UINT64_C(0x0004FC0A27B77D73), + UINT64_C(0x000103D226B1E92E), UINT64_C(0x0005050AA53E3D45)}}, + {{UINT64_C(0x0004C96EE0523578), UINT64_C(0x0002657E40AE1BEA), + UINT64_C(0x00032F4A192D817A), UINT64_C(0x0002963B113F0E7E), + UINT64_C(0x0005E7C716A6D2E3), UINT64_C(0x00027EE6D4437F4B), + UINT64_C(0x0001151EA99B216A), UINT64_C(0x0001183200C3345A), + UINT64_C(0x0004620822162719), UINT64_C(0x0006FF98AC189C7F)}, + {UINT64_C(0x0007835A38637315), UINT64_C(0x00021DCF392DA107), + UINT64_C(0x00032E572F2009A7), UINT64_C(0x000551A3874139CB), + UINT64_C(0x00054BA83808EC95), UINT64_C(0x000E3B367E07B1AA), + UINT64_C(0x0001C425C58AF001), UINT64_C(0x0007FEBED49D81AD), + UINT64_C(0x0005614216D95FD6), UINT64_C(0x0007059956FB58D9)}, + {UINT64_C(0x0009A088527332D8), UINT64_C(0x0004EBFF217D2F53), + UINT64_C(0x00068A2C41E7A6F9), UINT64_C(0x0007203B80A56ADA), + UINT64_C(0x0003CCF4A503F5B5), UINT64_C(0x0009DE73564AAC98), + UINT64_C(0x0007C64A2D2D5B63), UINT64_C(0x00066A514607F4F4), + UINT64_C(0x0004F7B23A1883CE), UINT64_C(0x000478DBA2254062)}}, + {{UINT64_C(0x000891C63EC17278), UINT64_C(0x0003A469EA7941A1), + UINT64_C(0x0006CC724614C2A6), UINT64_C(0x00047368EAC894D3), + UINT64_C(0x000332725D63A7FD), UINT64_C(0x000E1B3A2B255A5D), + UINT64_C(0x0007DE48A07B22AC), UINT64_C(0x0001320FE5C7DF2A), + UINT64_C(0x0007981EA9B5299F), UINT64_C(0x00064E3A11075FBC)}, + {UINT64_C(0x000F356D82B65E1D), UINT64_C(0x000333902B0C3E91), + UINT64_C(0x000236EE56D2F8F6), UINT64_C(0x00052D781547A66B), + UINT64_C(0x00071ECC2B2D45FD), UINT64_C(0x00021D01072A8CFE), + UINT64_C(0x00014250E888F3A4), UINT64_C(0x00041F6CCF6D58E7), + UINT64_C(0x00012F704916CD11), UINT64_C(0x0001C16A5BA5DEB5)}, + {UINT64_C(0x0007176D4A4BE8ED), UINT64_C(0x0003AC14FE6CB1C7), + UINT64_C(0x0005BF2A9F3FDCA4), UINT64_C(0x000100A77E943894), + UINT64_C(0x0001A1B89F7EB96B), UINT64_C(0x000AC24527F9F6BC), + UINT64_C(0x0002AFDC6A5CC161), UINT64_C(0x0006C7233297DD8D), + UINT64_C(0x0001EF7E4B64538A), UINT64_C(0x00064C28116F6D3D)}}, + {{UINT64_C(0x000C28582D0EAF98), UINT64_C(0x000760A4D8C62392), + UINT64_C(0x0002E99A28753318), UINT64_C(0x00036B4DD38D7C84), + UINT64_C(0x0005CE1103FE9B19), UINT64_C(0x000A5E7E678EC657), + UINT64_C(0x00001027FC495CC3), UINT64_C(0x000053D5EFE3F79A), + UINT64_C(0x00078707798B4856), UINT64_C(0x0002BCB996DBB870)}, + {UINT64_C(0x000DE9BE7A3B7D2F), UINT64_C(0x000326F8D8093FCF), + UINT64_C(0x0006F4CA9EA85C42), UINT64_C(0x0002DA90D1D5EFAE), + UINT64_C(0x000453D210C50A00), UINT64_C(0x000ED30D7AE954A3), + UINT64_C(0x000667D3AF1FF3BD), UINT64_C(0x000610D4A9935FFA), + UINT64_C(0x0007996E35B2EEE4), UINT64_C(0x0005851FBF41B9D7)}, + {UINT64_C(0x0001CCB597D775B8), UINT64_C(0x0002E2D7080ACA82), + UINT64_C(0x00026A27679CA594), UINT64_C(0x000767CAC5608B07), + UINT64_C(0x0007D3E1C929A8EE), UINT64_C(0x0001C08248026B08), + UINT64_C(0x00066E49F4282B91), UINT64_C(0x00043EC983912C70), + UINT64_C(0x00047BE45E4D1D00), UINT64_C(0x0005D6619498C3D3)}}, + {{UINT64_C(0x000D75F87926E2CA), UINT64_C(0x0004BCE95D143C30), + UINT64_C(0x0007F9B22AB8D12A), UINT64_C(0x0005764F5D0427EC), + UINT64_C(0x00053FC4AEC382EC), UINT64_C(0x000BEFAD0696C924), + UINT64_C(0x0005C1A42613E0F9), UINT64_C(0x0006C63EA68E2641), + UINT64_C(0x0005AE918E206EE4), UINT64_C(0x000201EB6276D205)}, + {UINT64_C(0x00080526DEB4F23A), UINT64_C(0x0004A3E016C3560A), + UINT64_C(0x00048954F4DFE4E5), UINT64_C(0x00033FAEECA38CED), + UINT64_C(0x0001AABCF5F5B04D), UINT64_C(0x000624845CAC218D), + UINT64_C(0x000727D5924F0D61), UINT64_C(0x00039A25A9A902B9), + UINT64_C(0x00025354B1923A74), UINT64_C(0x00042D904B1EE6E2)}, + {UINT64_C(0x0005EE12683D6873), UINT64_C(0x00020C302FB23D53), + UINT64_C(0x00041183598E5E20), UINT64_C(0x000660C4A3602D69), + UINT64_C(0x000428E3D7F7DA6B), UINT64_C(0x000FFDAB157CCECE), + UINT64_C(0x0003ABD7DACF40F1), UINT64_C(0x0001F758B2026116), + UINT64_C(0x00059CA09F80A28E), UINT64_C(0x00058050997A84C9)}}, + }, + { + {{UINT64_C(0x00012BC79DE3583C), UINT64_C(0x00021865086663FD), + UINT64_C(0x00004E4ABB33032F), UINT64_C(0x00079C1995D5F6AE), + UINT64_C(0x0006843DC92E6F2C), UINT64_C(0x000E5AAB95A25A94), + UINT64_C(0x000297E894CB3E2E), UINT64_C(0x0002F3E8D3C6A333), + UINT64_C(0x0001389E783B3338), UINT64_C(0x0004D35F4985F35A)}, + {UINT64_C(0x000924729178D442), UINT64_C(0x00072FEF9AC231D7), + UINT64_C(0x0003255217E983F8), UINT64_C(0x00078D1ADD8547ED), + UINT64_C(0x0007DD800A0126E4), UINT64_C(0x00040F7454BB5636), + UINT64_C(0x00070028ED5FE73D), UINT64_C(0x0002FE6922362D32), + UINT64_C(0x000517F433247DD5), UINT64_C(0x0003131BDB6DBD80)}, + {UINT64_C(0x0009B880561B3C2F), UINT64_C(0x000528E3FF8E6EB8), + UINT64_C(0x0002B3F6E8A064AA), UINT64_C(0x000306F6878089C4), + UINT64_C(0x0007DC267AF352EA), UINT64_C(0x000EB92414BD9E20), + UINT64_C(0x0003B288AD2E08DE), UINT64_C(0x000226D516C76AEC), + UINT64_C(0x00040D85E3E81384), UINT64_C(0x0000D2240FB63716)}}, + {{UINT64_C(0x000587DEFF3E2CA8), UINT64_C(0x0000ADE75F1C108A), + UINT64_C(0x000077C7746D2B81), UINT64_C(0x0007F15AEEE1A36C), + UINT64_C(0x000147D7174597BE), UINT64_C(0x000ADF5550885ADA), + UINT64_C(0x0005AC4D1E2642DC), UINT64_C(0x00011B21A28D0DDD), + UINT64_C(0x00041407BD6EAB82), UINT64_C(0x00048A1C814EF854)}, + {UINT64_C(0x000EE63D584955CA), UINT64_C(0x0000DB6FC1D35A63), + UINT64_C(0x0007990E3E93CF7D), UINT64_C(0x0006896872475C47), + UINT64_C(0x0002FE85FB8B4F95), UINT64_C(0x0009A4386F393657), + UINT64_C(0x0006D05838FAE08A), UINT64_C(0x0003B7E6453E11C6), + UINT64_C(0x0004A2C032C2CE97), UINT64_C(0x0003289CB5A153DD)}, + {UINT64_C(0x0002BD6E9F70C80A), UINT64_C(0x000231E61F2C2C8A), + UINT64_C(0x0002A043498E6B5B), UINT64_C(0x00027EF36D2BD2C9), + UINT64_C(0x000792B9E0D4EFFA), UINT64_C(0x000D609539828287), + UINT64_C(0x0002DD2C1EC6C7BB), UINT64_C(0x00022B3BF91980DE), + UINT64_C(0x0003C03DA1E5A7D9), UINT64_C(0x000084F0BEE586B4)}}, + {{UINT64_C(0x000712E11D32F6C1), UINT64_C(0x0007699A1E2965D4), + UINT64_C(0x0006F53B52261F62), UINT64_C(0x00010D991E106C19), + UINT64_C(0x0005E1F7A164C33C), UINT64_C(0x0002D0C5F074BEB5), + UINT64_C(0x000460F51489D3D8), UINT64_C(0x0002E479EAC4245A), + UINT64_C(0x0002053DB40CA26B), UINT64_C(0x00007428215ABE9C)}, + {UINT64_C(0x000B9A8A9F89A37F), UINT64_C(0x00043FEE2728E6A8), + UINT64_C(0x0003BAD546C31F76), UINT64_C(0x0002F4CA0D786241), + UINT64_C(0x0007291B2D3383A2), UINT64_C(0x0006C364B58F7471), + UINT64_C(0x0000E1166DD243CD), UINT64_C(0x0003571ADDB675C5), + UINT64_C(0x0005CEB2284920A6), UINT64_C(0x0003CE87A34C0993)}, + {UINT64_C(0x000D7AC4BC491E76), UINT64_C(0x0006933E79C065C0), + UINT64_C(0x0003962BB73B910D), UINT64_C(0x00025407D7F52984), + UINT64_C(0x000587DBC6C6A8A0), UINT64_C(0x00003AE437D302CF), + UINT64_C(0x0004A456DC9A70DC), UINT64_C(0x0003580FD7730DB6), + UINT64_C(0x00006BDB32465E50), UINT64_C(0x000303101EF56592)}}, + {{UINT64_C(0x000E210468EBF556), UINT64_C(0x0001E3325C2E6FFC), + UINT64_C(0x0003EB88667F698C), UINT64_C(0x0004C7309F19C344), + UINT64_C(0x00007B954D985C68), UINT64_C(0x000112B5D338E899), + UINT64_C(0x000103AD36665F4C), UINT64_C(0x0005C48C27F780B9), + UINT64_C(0x0006DFCD7AC7E7C2), UINT64_C(0x0005FBAB29982614)}, + {UINT64_C(0x000050C0CB5724E2), UINT64_C(0x0003F7AB514CAA0F), + UINT64_C(0x0004F45065DA591B), UINT64_C(0x000629B4E99E7B9F), + UINT64_C(0x0007FF99B8004A8B), UINT64_C(0x00013A7E073C783C), + UINT64_C(0x0005096EE21EAD2D), UINT64_C(0x00035AC55D5BC48A), + UINT64_C(0x00052D7CCDDB8458), UINT64_C(0x00026359B210DDC3)}, + {UINT64_C(0x00010EB7F4F37055), UINT64_C(0x00022C5837D27DF8), + UINT64_C(0x00014DD44F017128), UINT64_C(0x0000762B8A81A083), + UINT64_C(0x0006343F4E6B1730), UINT64_C(0x0006A070B31B593A), + UINT64_C(0x00035A4CB671B136), UINT64_C(0x00034AA79F2E1C0D), + UINT64_C(0x0002B801D09AF476), UINT64_C(0x0004D55933C87AC6)}}, + {{UINT64_C(0x0000F5AF20BFA216), UINT64_C(0x00070CA3CC7423EA), + UINT64_C(0x0003BDCF09AF2CF8), UINT64_C(0x00070852C08E07C8), + UINT64_C(0x0002B67C67B7DC0D), UINT64_C(0x0004747A18E7911A), + UINT64_C(0x0002AE9D138BEC06), UINT64_C(0x00029A908D7441B5), + UINT64_C(0x0001CA2C87AB2C68), UINT64_C(0x0005D57E612AC9CA)}, + {UINT64_C(0x000CB61AD6C38D3B), UINT64_C(0x000098910BDAA430), + UINT64_C(0x0005A8F1058B45F9), UINT64_C(0x0001378B35FE5270), + UINT64_C(0x0003B096F4B6729B), UINT64_C(0x000B715D3132EC7F), + UINT64_C(0x0000BF368D7A6E35), UINT64_C(0x0003532D4AAC8584), + UINT64_C(0x0007C03968D90FAB), UINT64_C(0x0003DD8235C48DCD)}, + {UINT64_C(0x000865375C84BF5B), UINT64_C(0x0006F89F501226EA), + UINT64_C(0x0003A9BA52948170), UINT64_C(0x0005125268D062C9), + UINT64_C(0x000080351C14559D), UINT64_C(0x0002D7F2832CC046), + UINT64_C(0x00072CD1CCBF4A78), UINT64_C(0x0006C2A3FAE0EA13), + UINT64_C(0x00066FCF5DB7E22E), UINT64_C(0x00007019E17361A4)}}, + {{UINT64_C(0x000E48E34B29F673), UINT64_C(0x000189AA11C7064C), + UINT64_C(0x0000980567389DB8), UINT64_C(0x000140D89A2CB56F), + UINT64_C(0x00066BB6C0F4791D), UINT64_C(0x00097F8E780B26F8), + UINT64_C(0x00069029D6B5B3AB), UINT64_C(0x0001807A1948E6BC), + UINT64_C(0x00026E19F742FADE), UINT64_C(0x000085F04C0FC570)}, + {UINT64_C(0x0008A43FBB459AFB), UINT64_C(0x000080263E72058C), + UINT64_C(0x00077C836CC06EA1), UINT64_C(0x0001B50F235F0EA1), + UINT64_C(0x00022280D3BF0256), UINT64_C(0x000B12F3375A9340), + UINT64_C(0x00056068C08F4DCC), UINT64_C(0x000188B7FEE30E53), + UINT64_C(0x00034956976A7E2B), UINT64_C(0x0006F32B80C1218B)}, + {UINT64_C(0x0002995C7D4906BD), UINT64_C(0x0004C47098446E5D), + UINT64_C(0x000770566A516A0B), UINT64_C(0x0001E7E3FBA19859), + UINT64_C(0x0005F7F7EEE25E7C), UINT64_C(0x00056AB023B1E34B), + UINT64_C(0x00065C13925054D0), UINT64_C(0x0003F1A384F6EB8D), + UINT64_C(0x0000C7DE81E37B03), UINT64_C(0x0007AB8E723005D9)}}, + {{UINT64_C(0x000D9677AC1784B4), UINT64_C(0x0003B608C12C6E54), + UINT64_C(0x00003773DBAACF6B), UINT64_C(0x000335230A701D3D), + UINT64_C(0x000164DD69069B24), UINT64_C(0x000529717B200FBF), + UINT64_C(0x00020FA9213B9796), UINT64_C(0x00057DB2FAFA5561), + UINT64_C(0x0002139FA8922FB6), UINT64_C(0x00067569B0196555)}, + {UINT64_C(0x0009839D81326E12), UINT64_C(0x0007F6B8CD121226), + UINT64_C(0x00011EF52FEB2E87), UINT64_C(0x000499E40D596C14), + UINT64_C(0x0001E15D66FB1681), UINT64_C(0x000CB2E1A771676B), + UINT64_C(0x0005B8802822C88B), UINT64_C(0x0004AC4C2A3D2CE6), + UINT64_C(0x000736AEEE38077F), UINT64_C(0x00048E797F51A1F0)}, + {UINT64_C(0x000F3FFC1B7E0E25), UINT64_C(0x000741ECED05D3C2), + UINT64_C(0x0002F761F2EE2FC5), UINT64_C(0x00001899845146F7), + UINT64_C(0x0001F791E6351AD2), UINT64_C(0x000D38697A0353D4), + UINT64_C(0x0005D13800614CC5), UINT64_C(0x00072BF23AE1C7DE), + UINT64_C(0x0002F2F0CE9EEEC6), UINT64_C(0x0004BCAB345E5507)}}, + {{UINT64_C(0x000447671491497E), UINT64_C(0x0000C80E0499549D), + UINT64_C(0x0007383B83AE8A43), UINT64_C(0x00018D8798A60AE8), + UINT64_C(0x0005A7634049A61D), UINT64_C(0x000CF3BA71A877FA), + UINT64_C(0x00038992C781814F), UINT64_C(0x0004FA4F3F875472), + UINT64_C(0x0006B3BE16D87909), UINT64_C(0x0007FBF24B86F9CF)}, + {UINT64_C(0x0005D7ED1152D458), UINT64_C(0x0006A737D3EC8814), + UINT64_C(0x0003336316E14A78), UINT64_C(0x0007540CA254140D), + UINT64_C(0x000110B2DC2C19D2), UINT64_C(0x0003541AEE4CD459), + UINT64_C(0x0006D62DA4142812), UINT64_C(0x00004D24768B69EF), + UINT64_C(0x00017FEAA0883076), UINT64_C(0x00028A34309D30B8)}, + {UINT64_C(0x00082AEA5AAA7679), UINT64_C(0x00069F5FFC2299F9), + UINT64_C(0x00075584B5CBBAE3), UINT64_C(0x0007EB4016FF7E27), + UINT64_C(0x00077F9D62577D9F), UINT64_C(0x0006DC60EBCA06A0), + UINT64_C(0x0003C85F387E563B), UINT64_C(0x00015F9C0C733FB2), + UINT64_C(0x00055561ADBDC642), UINT64_C(0x00014B6056050D92)}}, + {{UINT64_C(0x000D1DDCB3D8676E), UINT64_C(0x00029A0A308DDECF), + UINT64_C(0x0006A381EC144616), UINT64_C(0x0001160CA0BFEC27), + UINT64_C(0x00061482EF8B50E3), UINT64_C(0x000EF6F13CBB5FD6), + UINT64_C(0x00047895BA6C9BBE), UINT64_C(0x00025EC3CC939CD7), + UINT64_C(0x0000C55182568086), UINT64_C(0x00028782AA420F85)}, + {UINT64_C(0x0008812D8865EB1A), UINT64_C(0x0000A23A343939AB), + UINT64_C(0x0007911CB6565C2A), UINT64_C(0x000542477B4639B9), + UINT64_C(0x0004025D314B3748), UINT64_C(0x000F0FC98FF524B1), + UINT64_C(0x0006AA3ED50EC301), UINT64_C(0x00067BEA284CE141), + UINT64_C(0x00035FBE193BAF03), UINT64_C(0x000283F0131BFA47)}, + {UINT64_C(0x0003691D5B656339), UINT64_C(0x00010FA865CCF6EB), + UINT64_C(0x000039AFC5408E69), UINT64_C(0x000716574C1285D7), + UINT64_C(0x000229C93E34D31C), UINT64_C(0x0009DCB9E5D6F976), + UINT64_C(0x00035DEBA296DC50), UINT64_C(0x0000AE005B921892), + UINT64_C(0x0002C8A31CBE1965), UINT64_C(0x0000ED87D30FCA21)}}, + {{UINT64_C(0x0009C6090B0DB1A4), UINT64_C(0x00034B5A129C41C7), + UINT64_C(0x00059562792D152D), UINT64_C(0x0000A11D7CE1D2F8), + UINT64_C(0x00066B6939748922), UINT64_C(0x0002AD03A62C9001), + UINT64_C(0x0007BBAEC39432F3), UINT64_C(0x0000F8A4915FF527), + UINT64_C(0x0007DBE1A2997F40), UINT64_C(0x000439D5F39E64A8)}, + {UINT64_C(0x0005C0D182E1AF93), UINT64_C(0x000153BBC2722775), + UINT64_C(0x000211B8B306BA69), UINT64_C(0x0007D3A33C211B46), + UINT64_C(0x0005650D03F0188D), UINT64_C(0x0003805179159F66), + UINT64_C(0x0005B80FDEBBC150), UINT64_C(0x00023B752B2CCA19), + UINT64_C(0x00056569DDD4BB09), UINT64_C(0x000630A1D0FE1331)}, + {UINT64_C(0x000CC57A9BD01FD0), UINT64_C(0x00001A61B9AF718F), + UINT64_C(0x0003E7AEFE584488), UINT64_C(0x00002846B6BF5441), + UINT64_C(0x000032F196D04DD3), UINT64_C(0x0005855F89A5B1E2), + UINT64_C(0x00034031211C8DC5), UINT64_C(0x00014993DFD465A0), + UINT64_C(0x0001B4AFBB37974E), UINT64_C(0x00010725BF8ACC79)}}, + {{UINT64_C(0x0008533407FDA6AE), UINT64_C(0x000192F807908397), + UINT64_C(0x0006D0300B59435D), UINT64_C(0x0003D01EB7B22034), + UINT64_C(0x0006AFEEF3F9CD09), UINT64_C(0x000E5025B96AF595), + UINT64_C(0x0006A4A6BE18817B), UINT64_C(0x00011D766D6D736B), + UINT64_C(0x000798906CAD57F4), UINT64_C(0x0005ABB11A884308)}, + {UINT64_C(0x0005141D4E3FF7B2), UINT64_C(0x0007785D03C4C1D1), + UINT64_C(0x0002E4309AA4BEDF), UINT64_C(0x0000D594EF832B4B), + UINT64_C(0x00079F60B7615E57), UINT64_C(0x000AF439572259C7), + UINT64_C(0x00039E6726C1C742), UINT64_C(0x00033EFCC7442133), + UINT64_C(0x0001B48C7F680882), UINT64_C(0x0002FBAE97FB8296)}, + {UINT64_C(0x0002D2C880F58DFD), UINT64_C(0x00002E893D015F3D), + UINT64_C(0x000402A9AE8025AB), UINT64_C(0x0000616166212B68), + UINT64_C(0x0005D8A9EFC3CCA1), UINT64_C(0x0007EC85775C4CD6), + UINT64_C(0x00048D0978840129), UINT64_C(0x0002C54DE6A58362), + UINT64_C(0x0006B650181206C2), UINT64_C(0x000781263825C8B9)}}, + {{UINT64_C(0x00037F4695FB8F38), UINT64_C(0x00064899737EA849), + UINT64_C(0x00005CA9511A1C0C), UINT64_C(0x0005B2332E230D2F), + UINT64_C(0x0005BEFB537AF5C5), UINT64_C(0x000E66EDC4CC05A1), + UINT64_C(0x0001F243387EED8D), UINT64_C(0x00060531AF1B8294), + UINT64_C(0x00048207AF7FB47E), UINT64_C(0x0006467F4F208BC1)}, + {UINT64_C(0x000ED253E56AD0B4), UINT64_C(0x0006FD900D9B4494), + UINT64_C(0x000771FDB0B28644), UINT64_C(0x0006608E858B8864), + UINT64_C(0x0002410ACFA4ECFD), UINT64_C(0x0006BCBCB4C454F1), + UINT64_C(0x0004C982596786AF), UINT64_C(0x0007C7D414F13D62), + UINT64_C(0x000400A18A4312B8), UINT64_C(0x0001C8AE8AAC6E97)}, + {UINT64_C(0x00039A273DA14F76), UINT64_C(0x00007A039FC51A14), + UINT64_C(0x00075AE649E4978D), UINT64_C(0x00068BBF1108ED62), + UINT64_C(0x0001AC7CBC84A882), UINT64_C(0x000F007CBF2633B8), + UINT64_C(0x0001A252213D53A3), UINT64_C(0x00060026357E6823), + UINT64_C(0x0005559C92CD3AA6), UINT64_C(0x000363AFB26A540D)}}, + {{UINT64_C(0x000C6D7AC27539AC), UINT64_C(0x0004CAF0243C7093), + UINT64_C(0x0006E0AFE6D51B44), UINT64_C(0x0002FD11233BA456), + UINT64_C(0x0002CF8D4FBEC26A), UINT64_C(0x000335E8B284BD21), + UINT64_C(0x0004E3B0C6669531), UINT64_C(0x000268080A9578C0), + UINT64_C(0x00001A56306692EA), UINT64_C(0x0001DC271C3ACEF7)}, + {UINT64_C(0x0005D867CCE652DC), UINT64_C(0x000413FF399550DD), + UINT64_C(0x0004AE5EB4FD02DD), UINT64_C(0x00052874EA4A9C83), + UINT64_C(0x0004E30A566CC4F0), UINT64_C(0x0009ED469CD2FA26), + UINT64_C(0x00079EED35A8B65B), UINT64_C(0x000064FF6AF426D8), + UINT64_C(0x00013C73FCA107AB), UINT64_C(0x0006BCC1F527AE0B)}, + {UINT64_C(0x000E8622B341115B), UINT64_C(0x0005F8B755945B8A), + UINT64_C(0x000642734EB49580), UINT64_C(0x00002466340FFFFA), + UINT64_C(0x0003E1295E9DB2EF), UINT64_C(0x000914081A805FD4), + UINT64_C(0x0004A81CD7486D11), UINT64_C(0x0005D93E4C17C491), + UINT64_C(0x0006919BA5ECC6B0), UINT64_C(0x000448FF91161C16)}}, + {{UINT64_C(0x0003D9DFABF694F0), UINT64_C(0x00002EE322AB5B23), + UINT64_C(0x0007E35695039192), UINT64_C(0x00016EB2F5322F0B), + UINT64_C(0x0007FCF7BA70F363), UINT64_C(0x0007FBE02B2A3F5E), + UINT64_C(0x00016937E666BFE0), UINT64_C(0x00063B8FCA96F14A), + UINT64_C(0x000540136F4D10D5), UINT64_C(0x00039D97115CAD4A)}, + {UINT64_C(0x000A782DAEA02C81), UINT64_C(0x0002FD925EE99F06), + UINT64_C(0x00060F793F8913A6), UINT64_C(0x0001E83A9CDE3761), + UINT64_C(0x0001467FC5C751CA), UINT64_C(0x000264902CF947E3), + UINT64_C(0x00006FAA77E5A8BE), UINT64_C(0x00067F05EF979834), + UINT64_C(0x0005311603B55490), UINT64_C(0x000074D079F64A01)}, + {UINT64_C(0x0006D0D6BDA6A83D), UINT64_C(0x00002DDDDEE12D29), + UINT64_C(0x0005927C12A4B6B7), UINT64_C(0x00071C3961F108DF), + UINT64_C(0x00077B7833C53611), UINT64_C(0x0002FDE12520D971), + UINT64_C(0x0007CB6A7953E587), UINT64_C(0x0004139054626FC8), + UINT64_C(0x00079EAC5F05CF63), UINT64_C(0x00001D021BA677A6)}}, + {{UINT64_C(0x000CAC0E21E72D01), UINT64_C(0x0002AAC8A7589E07), + UINT64_C(0x0007A7F89C925218), UINT64_C(0x0005C69DE570605B), + UINT64_C(0x0007C603800C1CEC), UINT64_C(0x0005CD221F6861F6), + UINT64_C(0x000225A7F4668D5E), UINT64_C(0x00027C1F6FFB5628), + UINT64_C(0x0007A72B7EAEB5A8), UINT64_C(0x0000B10838B451B8)}, + {UINT64_C(0x000CE1FEA6AE6F93), UINT64_C(0x00019A7F14080E06), + UINT64_C(0x0002CF09EEA75595), UINT64_C(0x0006DB5A156F82EC), + UINT64_C(0x0002FBA8A7857009), UINT64_C(0x00013F8B71B7B21D), + UINT64_C(0x00036BCBD874C4CE), UINT64_C(0x0003A12D4D39A34D), + UINT64_C(0x00027EBC6E708CC4), UINT64_C(0x00046B288961C679)}, + {UINT64_C(0x00084942A3FFE4F7), UINT64_C(0x00039331DB0EFDD2), + UINT64_C(0x0003BC5E8D64D32A), UINT64_C(0x0002F14504F246A2), + UINT64_C(0x0005D0B970850BFE), UINT64_C(0x000DDBFD50853040), + UINT64_C(0x00053F2BB46E95D8), UINT64_C(0x0006217469553610), + UINT64_C(0x0001AA60880F4C92), UINT64_C(0x0001BB031C7CDCAD)}}, + {{UINT64_C(0x00043577337ED415), UINT64_C(0x0001168CF60C5FCC), + UINT64_C(0x0004F7F95837B2D6), UINT64_C(0x00056BA25D4F23A3), + UINT64_C(0x0005C14460B0F4E0), UINT64_C(0x0002B00069045903), + UINT64_C(0x00004B0C5A39B1AA), UINT64_C(0x0003FBB985D77FA8), + UINT64_C(0x00049239EE5946D9), UINT64_C(0x00057387CD1049E9)}, + {UINT64_C(0x000B952D15EE6357), UINT64_C(0x0002DB9A48C1B600), + UINT64_C(0x0002D0190D4ADBBA), UINT64_C(0x00047F14E4566F50), + UINT64_C(0x0001F163D4E86E1D), UINT64_C(0x000C92AF729F469E), + UINT64_C(0x00007BD599CC0C16), UINT64_C(0x0006BC2F08CAE272), + UINT64_C(0x00047553865EB8CC), UINT64_C(0x0001CE9F42F10932)}, + {UINT64_C(0x000BCE2DA7F5610F), UINT64_C(0x0003B36D325EE2A8), + UINT64_C(0x000726B58068AB44), UINT64_C(0x0004A0F44270ED1F), + UINT64_C(0x00071571152CE6BE), UINT64_C(0x000565993B17157C), + UINT64_C(0x00039843697248A3), UINT64_C(0x00051EDAD623656A), + UINT64_C(0x0004E89907281D95), UINT64_C(0x0003514F571877C2)}}, + }, + { + {{UINT64_C(0x000D2A3121F83A1D), UINT64_C(0x0002DA330B022D82), + UINT64_C(0x00003B3EAB80FFD8), UINT64_C(0x00015D727FF11EA8), + UINT64_C(0x000645E52899FB8C), UINT64_C(0x000C944BAFE40831), + UINT64_C(0x0006EFC60BCB700D), UINT64_C(0x00049C8983D2F665), + UINT64_C(0x00001D4D70FCC0D3), UINT64_C(0x0004D6ED234BFC0D)}, + {UINT64_C(0x000B1C9F041D3F61), UINT64_C(0x0005D2FDE93EC1F5), + UINT64_C(0x00076737DC0F744C), UINT64_C(0x00042230534666BE), + UINT64_C(0x0003404E863515DA), UINT64_C(0x000C7436CCE8B116), + UINT64_C(0x00005EA392999318), UINT64_C(0x0007905E98068490), + UINT64_C(0x00010A805AD32FCC), UINT64_C(0x000023B7CE895D07)}, + {UINT64_C(0x0003EFFB814E2197), UINT64_C(0x0000852A305BE11B), + UINT64_C(0x00048396DD06C432), UINT64_C(0x000540D5C5935D99), + UINT64_C(0x00035AEAD67940BE), UINT64_C(0x0008CA943925F507), + UINT64_C(0x0006F245BE658554), UINT64_C(0x0000B5E763A6E0C5), + UINT64_C(0x0002E795E93C44D8), UINT64_C(0x0006CC4B88C475C6)}}, + {{UINT64_C(0x000C200B8B331922), UINT64_C(0x00004683E419F734), + UINT64_C(0x0002C7E001FCD0C0), UINT64_C(0x0001479FD1FC8DF1), + UINT64_C(0x000577647BF78E53), UINT64_C(0x0003AC981A6CC35C), + UINT64_C(0x0002966643DF7AFF), UINT64_C(0x000673621471EFDC), + UINT64_C(0x0007BF256881F54F), UINT64_C(0x000487F29B6DB344)}, + {UINT64_C(0x00085CDB9629C5F6), UINT64_C(0x000604C1DBE92B8A), + UINT64_C(0x0003BBE72A278D3D), UINT64_C(0x000767DE37996D84), + UINT64_C(0x0000DFE0B1187EE4), UINT64_C(0x0004DE0ADC2458BC), + UINT64_C(0x00003CCCC4C709E4), UINT64_C(0x00045A74FFEA1E3D), + UINT64_C(0x00015B4EE2B662A6), UINT64_C(0x000181EFB7AE8968)}, + {UINT64_C(0x0009F028A704590F), UINT64_C(0x0005F2BA1A40E68C), + UINT64_C(0x0001F65FEC8D20C2), UINT64_C(0x00020C79DAFC49DD), + UINT64_C(0x0007EEFCC164D9D7), UINT64_C(0x000D456B93390094), + UINT64_C(0x000185EADF32B9D0), UINT64_C(0x0004ED0525883825), + UINT64_C(0x0007B8A0AEB853AE), UINT64_C(0x0000D9511CB1B787)}}, + {{UINT64_C(0x000CDF0DB3694899), UINT64_C(0x00023B940D7CF533), + UINT64_C(0x0006B84827681417), UINT64_C(0x0006F9B4F46F0E96), + UINT64_C(0x000515DA23E8AC6B), UINT64_C(0x00095847795BB758), + UINT64_C(0x0003F4CCA41B8228), UINT64_C(0x0006186E4E9093AC), + UINT64_C(0x00077309478974B1), UINT64_C(0x0005B4F6C6F8FEFA)}, + {UINT64_C(0x0001443F74773B5C), UINT64_C(0x00063FFF59FDE6B6), + UINT64_C(0x0001F16F0B9EEC52), UINT64_C(0x000051FCDC5A3486), + UINT64_C(0x0003DB748AF8F2E5), UINT64_C(0x000B5783C6DC2D30), + UINT64_C(0x0002DAB21D8CC130), UINT64_C(0x0005F25B88234552), + UINT64_C(0x0004FF796B7D456D), UINT64_C(0x0006080EB1FC5C27)}, + {UINT64_C(0x000A9AA635E4EF7D), UINT64_C(0x000108EC067C691F), + UINT64_C(0x00004D22357BAE6A), UINT64_C(0x000337A3327BC99C), + UINT64_C(0x0000A68F7BADF67C), UINT64_C(0x000AC18F7DFA19B2), + UINT64_C(0x0005C678FBE8EB52), UINT64_C(0x0001D8F2C4E8BB6E), + UINT64_C(0x0000DA44F24F2716), UINT64_C(0x00030A3DE2A3A421)}}, + {{UINT64_C(0x000F5BCB25CF4FB5), UINT64_C(0x00037F879FD958AF), + UINT64_C(0x0001AD917C6DE29F), UINT64_C(0x000162FF07F36826), + UINT64_C(0x00067919212F631A), UINT64_C(0x000BFD3793A355FB), + UINT64_C(0x0005755B1ABED696), UINT64_C(0x000144F83C26744A), + UINT64_C(0x0004BCAD8857D421), UINT64_C(0x00016302D4EADAE5)}, + {UINT64_C(0x0007E6C00E672C8D), UINT64_C(0x00038DE62F3282ED), + UINT64_C(0x0004B4D7588B4274), UINT64_C(0x0000DE769DFD42DE), + UINT64_C(0x00031736034810B0), UINT64_C(0x00042D1D02CFDE19), + UINT64_C(0x0003D5001378BC45), UINT64_C(0x00063303C6FB6962), + UINT64_C(0x00033FF632B306CC), UINT64_C(0x0007FCD2720CF3DD)}, + {UINT64_C(0x0000D3E05FE45941), UINT64_C(0x0001EE7BCFC54EA8), + UINT64_C(0x00073BF8104FCCCD), UINT64_C(0x0006E128F079E6C4), + UINT64_C(0x0006FE2C64E04ED7), UINT64_C(0x0007C13D9F8F4E55), + UINT64_C(0x00073AA7BE299340), UINT64_C(0x00065D2152375AFE), + UINT64_C(0x000389EB4ABE5495), UINT64_C(0x00044A45040B455F)}}, + {{UINT64_C(0x000A15B31548EDEF), UINT64_C(0x0004BE66E39BFE46), + UINT64_C(0x0000A4F48F221DE4), UINT64_C(0x0003D1DB970835AB), + UINT64_C(0x00031933E3DE57CB), UINT64_C(0x000978578FEEE453), + UINT64_C(0x0002C30F392DC6A7), UINT64_C(0x0000C948C85AE181), + UINT64_C(0x000200560FFD6366), UINT64_C(0x0001230F26094A57)}, + {UINT64_C(0x00071F959A90337C), UINT64_C(0x000208552F478DC7), + UINT64_C(0x0005788AC4EBB26B), UINT64_C(0x0002B9FBF27C3470), + UINT64_C(0x00004FF4C8B12365), UINT64_C(0x0006D2BCE6204D47), + UINT64_C(0x0001E8AAA0A8023E), UINT64_C(0x000797C24FED76B7), + UINT64_C(0x00026173EF326E46), UINT64_C(0x0006133FB5B5B999)}, + {UINT64_C(0x00012BC7A048AF37), UINT64_C(0x0000FD0301EC2E53), + UINT64_C(0x0002C070DD9CD038), UINT64_C(0x0007F2EFAC327986), + UINT64_C(0x00026CE631FC9FEF), UINT64_C(0x000277F1E2BB1725), + UINT64_C(0x00010E40E88E18E3), UINT64_C(0x00039310E1B26218), + UINT64_C(0x0003985E2F2FBFEB), UINT64_C(0x000268DC44A02ADF)}}, + {{UINT64_C(0x000DEA78EADAEEC1), UINT64_C(0x0003DB0BE77C03ED), + UINT64_C(0x0003EDF67A38D25B), UINT64_C(0x0005019B365A8A38), + UINT64_C(0x0005197BFB9FF59C), UINT64_C(0x00083D36F0A5A16A), + UINT64_C(0x0005152E257CA37F), UINT64_C(0x0006A2BEE626DAA6), + UINT64_C(0x00033AE983C20B72), UINT64_C(0x0004D9B705EAAD1C)}, + {UINT64_C(0x000874E06D7B5C24), UINT64_C(0x00064390163770B6), + UINT64_C(0x0005698AF98FF650), UINT64_C(0x0005B8EBB355D77A), + UINT64_C(0x0000AE7C70732C73), UINT64_C(0x000E19D3D98FABDD), + UINT64_C(0x00079DEDA37DA75D), UINT64_C(0x00004B710B1674C5), + UINT64_C(0x00040619A55A5DEF), UINT64_C(0x000779DCC6F44704)}, + {UINT64_C(0x000504F35721DEFB), UINT64_C(0x0004A3C0C7E7284A), + UINT64_C(0x0002EB38ABD01FCB), UINT64_C(0x0004CE3322295DF1), + UINT64_C(0x00031DB27F499399), UINT64_C(0x00018AABC6E0C983), + UINT64_C(0x0000AF5EF9B55762), UINT64_C(0x0005322B53AAAACA), + UINT64_C(0x0007762A5164BC03), UINT64_C(0x0007F960E2AF4304)}}, + {{UINT64_C(0x0004FE2209D880A9), UINT64_C(0x0003B71CEB098483), + UINT64_C(0x0006F0A21F537C16), UINT64_C(0x0002CF6EB8FF1658), + UINT64_C(0x0005494E50B58CA1), UINT64_C(0x0004438EA9A0A3E8), + UINT64_C(0x0003E7417D2F3188), UINT64_C(0x0006C48A60BD0440), + UINT64_C(0x0006AD71A29DB30C), UINT64_C(0x0001AC8E5A50D6AA)}, + {UINT64_C(0x000C73B8887E050B), UINT64_C(0x0003885D576CDAD0), + UINT64_C(0x0004A689C810C4FB), UINT64_C(0x000694592DB886B1), + UINT64_C(0x00063944B776872E), UINT64_C(0x000AA2F2A130E0FC), + UINT64_C(0x00008DD2C544EA7E), UINT64_C(0x000210E4D0FC740D), + UINT64_C(0x0001E222C1CAA921), UINT64_C(0x00071E84DB222363)}, + {UINT64_C(0x0006F9367DF1009D), UINT64_C(0x0006CBC0A10D4FD2), + UINT64_C(0x000610447BE01C43), UINT64_C(0x0000F58331DDCDD9), + UINT64_C(0x00041CDDB6D56BDD), UINT64_C(0x00011776CAFBC4AC), + UINT64_C(0x000374788FA28EB8), UINT64_C(0x0000E99592B60098), + UINT64_C(0x0001448FF0C15C26), UINT64_C(0x0006667044FC0ECF)}}, + {{UINT64_C(0x0009F8C30043EA50), UINT64_C(0x000112BE297E6871), + UINT64_C(0x0002F61BC12D1B08), UINT64_C(0x00022B45B0DF4504), + UINT64_C(0x0004A8355FC774A3), UINT64_C(0x0009F24537D203A0), + UINT64_C(0x0000F00050E3A31C), UINT64_C(0x00060D19D82588C3), + UINT64_C(0x00035A326B654F92), UINT64_C(0x00069365E53B389A)}, + {UINT64_C(0x00050A34F9BCA230), UINT64_C(0x000768F7A199C03D), + UINT64_C(0x000204C0AADFC49C), UINT64_C(0x00025CAC2599062C), + UINT64_C(0x00077F593DCC6037), UINT64_C(0x000D311959EB3E67), + UINT64_C(0x000092B89479AFDF), UINT64_C(0x0005B67AD89C4F22), + UINT64_C(0x0003626EAED6B185), UINT64_C(0x00067832EC55B3C6)}, + {UINT64_C(0x000C1593CEFCECC1), UINT64_C(0x0000A4A2957784F8), + UINT64_C(0x00026ABBB5309788), UINT64_C(0x00074F0F59146003), + UINT64_C(0x000387E735C3C669), UINT64_C(0x000593E8E4DEBA0C), + UINT64_C(0x0002E24A801D3568), UINT64_C(0x0005256747685BDB), + UINT64_C(0x000013566542C53E), UINT64_C(0x00048E7E32CD1AD3)}}, + {{UINT64_C(0x0007D4DBA5C3CC2A), UINT64_C(0x0005759B789AA3A3), + UINT64_C(0x0006F22E17510467), UINT64_C(0x00040F3252F7511B), + UINT64_C(0x000528AEF4908B9A), UINT64_C(0x000B8EAE9E5BCEE1), + UINT64_C(0x0006942B0FECB4DD), UINT64_C(0x00033E6A3D8BD112), + UINT64_C(0x0004CC49DD25E389), UINT64_C(0x000445C577D06042)}, + {UINT64_C(0x0007C40A37BEFD01), UINT64_C(0x000730CA5186A539), + UINT64_C(0x0005C36B6EDBB6B6), UINT64_C(0x0004CE95B4DA9CD6), + UINT64_C(0x0002E2AD0BAECB4F), UINT64_C(0x0009E94D245C6F84), + UINT64_C(0x00073894E220EBEA), UINT64_C(0x0001E10C1571B9C0), + UINT64_C(0x0002A750557B17A9), UINT64_C(0x0002F468854DE098)}, + {UINT64_C(0x0006D012DA4D1F3B), UINT64_C(0x000065FA17AAA85D), + UINT64_C(0x000126D6EC4C4597), UINT64_C(0x00062F36E6EDE0C7), + UINT64_C(0x0000B9419F244E94), UINT64_C(0x00089B6AA6EA58BD), + UINT64_C(0x00067307208BE7E2), UINT64_C(0x00065FD90ED40D58), + UINT64_C(0x0002493AE4798B62), UINT64_C(0x0005C947F9A199F6)}}, + {{UINT64_C(0x000C9CA5529BDF08), UINT64_C(0x0006474FD3A96C71), + UINT64_C(0x00032737E53C8C69), UINT64_C(0x0007F1A1D1EDAE8C), + UINT64_C(0x0007E44ED2C4B89C), UINT64_C(0x00039AC19F0C716A), + UINT64_C(0x00041F9F39F47EBF), UINT64_C(0x0007591E503A89BC), + UINT64_C(0x0007E4B3B038BA83), UINT64_C(0x0002D77047632306)}, + {UINT64_C(0x000E44217D6E3B7F), UINT64_C(0x00025C90B5976AEE), + UINT64_C(0x0001F4EF248E8C6D), UINT64_C(0x0006AF1D1868F663), + UINT64_C(0x000038AC35E161DE), UINT64_C(0x0006647522C34933), + UINT64_C(0x0005FBBBB3C26A48), UINT64_C(0x000226EA1BC6B125), + UINT64_C(0x000061EA27678E69), UINT64_C(0x0007204A98E37606)}, + {UINT64_C(0x000782E217103AF0), UINT64_C(0x0005F858671BD8FE), + UINT64_C(0x0004929B9196468A), UINT64_C(0x0004EA71EE645DFD), + UINT64_C(0x00044AAB314B679F), UINT64_C(0x0000B22073C603B6), + UINT64_C(0x0004B1C1D90F53B3), UINT64_C(0x0000F1B4FA3F48F3), + UINT64_C(0x000128359405A8D0), UINT64_C(0x00007D5F6710B1AF)}}, + {{UINT64_C(0x000306DD32F8B559), UINT64_C(0x0007C415E4D67E45), + UINT64_C(0x00056A49257A4333), UINT64_C(0x00018F1224742086), + UINT64_C(0x000542B30DD86DDC), UINT64_C(0x0001645F932983EF), + UINT64_C(0x0007213FC2770A7F), UINT64_C(0x0005126F605B77F9), + UINT64_C(0x00041CEEB5B0DE9E), UINT64_C(0x0003C305D884EC37)}, + {UINT64_C(0x000769826ECC1E95), UINT64_C(0x00058DF57466B622), + UINT64_C(0x0002788C60F1A684), UINT64_C(0x00010C568F251DA8), + UINT64_C(0x00075B0E37E05118), UINT64_C(0x000165CB8643BF09), + UINT64_C(0x0006155F1C1AEE2D), UINT64_C(0x0006CF1B4EF316A8), + UINT64_C(0x000061E8F6B5FB5F), UINT64_C(0x0000893F44E63C16)}, + {UINT64_C(0x000CDF32871DF406), UINT64_C(0x00078311BD087EFE), + UINT64_C(0x00067873B3557364), UINT64_C(0x000636BE32D35E5A), + UINT64_C(0x0006195801D0D6BB), UINT64_C(0x0002735B3B4EB70E), + UINT64_C(0x000363C1BD256DF7), UINT64_C(0x0004C37F9069C166), + UINT64_C(0x000706B70FC69919), UINT64_C(0x0005402BC0A1784B)}}, + {{UINT64_C(0x000C3C3A75895A83), UINT64_C(0x0002AF5E20173369), + UINT64_C(0x00016058BB908BA2), UINT64_C(0x00006422CFBDCBA5), + UINT64_C(0x0003532C8DAA68D7), UINT64_C(0x0001718B0498E976), + UINT64_C(0x0001037F828D1CB5), UINT64_C(0x0004ADFBAC138E46), + UINT64_C(0x000264F5D9AA2DBF), UINT64_C(0x000661862DCF83A4)}, + {UINT64_C(0x000B4401A412DE9C), UINT64_C(0x0004C413E9A0630F), + UINT64_C(0x0001E24FC9E6E3F3), UINT64_C(0x00077A8E0FD8D9C4), + UINT64_C(0x0001BC33A8CA2E97), UINT64_C(0x0008030A67A41045), + UINT64_C(0x00039F744B6ECFD1), UINT64_C(0x00072432DDCFFE36), + UINT64_C(0x0007DD91D0BBE6D8), UINT64_C(0x000078AB20170916)}, + {UINT64_C(0x000498F6F8BD5A53), UINT64_C(0x0000D1C46916C0CF), + UINT64_C(0x0005F54960938342), UINT64_C(0x000447AA84AB04D2), + UINT64_C(0x000724A5EB675B6E), UINT64_C(0x000EA0E318325878), + UINT64_C(0x00066B113C4AA80B), UINT64_C(0x000253461B0BF6BE), + UINT64_C(0x0004DB77BC24C66A), UINT64_C(0x0001AC7EDE0A50F4)}}, + {{UINT64_C(0x00044A5984167BC5), UINT64_C(0x0003C2E2EF77D4C4), + UINT64_C(0x0000B0E5F803C46E), UINT64_C(0x00036C49B84AF0A1), + UINT64_C(0x0000C05A8C33C661), UINT64_C(0x00096D04429DE51D), + UINT64_C(0x0001CD77226DEF8B), UINT64_C(0x0005AF209A481396), + UINT64_C(0x0004DD604CDFFC41), UINT64_C(0x0000DE719B2B2635)}, + {UINT64_C(0x00038429D5339495), UINT64_C(0x00059B744E7203F8), + UINT64_C(0x00054083470E63F2), UINT64_C(0x00020168D78F5F9F), + UINT64_C(0x00060B7BBD5EEA39), UINT64_C(0x0006C9580366396A), + UINT64_C(0x00047B4DABFD7116), UINT64_C(0x00007CB92CE4EB12), + UINT64_C(0x000171CBBFFF880B), UINT64_C(0x00032AEA49629D50)}, + {UINT64_C(0x0002327365257623), UINT64_C(0x0002901F27D0F318), + UINT64_C(0x0007EEC27D093A11), UINT64_C(0x0000C431CC4582E3), + UINT64_C(0x00032FC5091EC7C3), UINT64_C(0x0009F1205282C2B4), + UINT64_C(0x0006A99198CE7309), UINT64_C(0x000181D401A1E0EB), + UINT64_C(0x00000BFBAE47E38F), UINT64_C(0x0001B85974A394FD)}}, + {{UINT64_C(0x00003D98BB92DE0A), UINT64_C(0x00012FC6BEE98813), + UINT64_C(0x0003C727A73BB1DB), UINT64_C(0x000594A927D8CBF4), + UINT64_C(0x0002F609AA953DBA), UINT64_C(0x000BFB4CF73D47D7), + UINT64_C(0x0006F4AC381AE6B8), UINT64_C(0x0000D2B0C81B4EFB), + UINT64_C(0x0005455F0C358D6D), UINT64_C(0x0000F023E512DEEE)}, + {UINT64_C(0x00069BD7FC6E5CF7), UINT64_C(0x0002D72F5A73331E), + UINT64_C(0x00030CAB8A2D6416), UINT64_C(0x0001594D14FA77F2), + UINT64_C(0x000631869D3D020D), UINT64_C(0x00002E08CCBFD994), + UINT64_C(0x00046F03B754307B), UINT64_C(0x00067146A1F6ED5B), + UINT64_C(0x0000B02B94197421), UINT64_C(0x000751016B4BD0BC)}, + {UINT64_C(0x000E6EFCC4EDE7FE), UINT64_C(0x0004ADD3198030A1), + UINT64_C(0x00047734A17278D8), UINT64_C(0x0000F92F45E7CE85), + UINT64_C(0x0003F6D367D00160), UINT64_C(0x000E13DFE99432BE), + UINT64_C(0x000187A2AF6E1412), UINT64_C(0x0006A191CEED3ACE), + UINT64_C(0x00058147D849A2BA), UINT64_C(0x0001BC9A9B916364)}}, + {{UINT64_C(0x00000199D348C776), UINT64_C(0x00027B8B4CFED803), + UINT64_C(0x0005BF0AB8D43407), UINT64_C(0x0007B10CAF37EC50), + UINT64_C(0x00033B53F6C30777), UINT64_C(0x000E87F6475537F5), + UINT64_C(0x00001D4A155ABBCB), UINT64_C(0x0003CB17A764EA6A), + UINT64_C(0x00013523EE4327E1), UINT64_C(0x000753B39ECFEACE)}, + {UINT64_C(0x00042F46C4C2845F), UINT64_C(0x000664A9551B6369), + UINT64_C(0x0000C9CC8349A824), UINT64_C(0x000574459D0ED534), + UINT64_C(0x0001A18730E01DA7), UINT64_C(0x00082CA89B83E7F8), + UINT64_C(0x0006AEE1395800DC), UINT64_C(0x00020195766F2D74), + UINT64_C(0x00027864BA955A16), UINT64_C(0x00056478A31843AB)}, + {UINT64_C(0x0003D3FE4F04AC87), UINT64_C(0x0002E5E52E60EFDD), + UINT64_C(0x00060730A36559C5), UINT64_C(0x0006A427612AD123), + UINT64_C(0x0003A36F820D7FE6), UINT64_C(0x00089AD1F5C273D7), + UINT64_C(0x0002D21C3309431D), UINT64_C(0x00079250B4AEAD6F), + UINT64_C(0x0003F475A1168016), UINT64_C(0x000092AD39E48D5D)}}, + {{UINT64_C(0x000C1CB7EACBBE5F), UINT64_C(0x0004783A6E7DF912), + UINT64_C(0x0005830AE2E3AE77), UINT64_C(0x00020AEE82D43F9A), + UINT64_C(0x0001F837EDBC8314), UINT64_C(0x000A1D23C74DA695), + UINT64_C(0x0005E6AEAC19A780), UINT64_C(0x0007852725690C30), + UINT64_C(0x0006807B0774F532), UINT64_C(0x00004DB69C9F9C33)}, + {UINT64_C(0x000F824529D58522), UINT64_C(0x000241E1A2206190), + UINT64_C(0x0007C5225BAD2B57), UINT64_C(0x00067F90115B53BF), + UINT64_C(0x00066BD04E108B4E), UINT64_C(0x00033F9F0CC81B9C), + UINT64_C(0x0003C0A7A3FFBC22), UINT64_C(0x0002670D5CC34121), + UINT64_C(0x0002CF6BBD4DBD78), UINT64_C(0x000644ED07DFB2C5)}, + {UINT64_C(0x0002A7ACB34B8F5D), UINT64_C(0x00048474BD048B62), + UINT64_C(0x0004D4C75CE04805), UINT64_C(0x0001DB57B655BA7F), + UINT64_C(0x0007755297FAB4DC), UINT64_C(0x000CBABD48415893), + UINT64_C(0x0006810FE1CA637E), UINT64_C(0x0000F699DDD6AC1F), + UINT64_C(0x000451C6EABA4EA0), UINT64_C(0x0007E1DB71EC0558)}}, + }}; + +/*- + * Q := 2P, both projective, Q and P same pointers OK + * Autogenerated: op3/dbl_proj_ed_eone.op3 + * https://www.hyperelliptic.org/EFD/g1p/auto-code/twisted/extended-1/doubling/dbl-2008-hwcd.op3 + * ASSERT: e = 1 + */ +static void point_double(pt_prj_t *Q, const pt_prj_t *P) { + /* temporary variables */ + fe_t t0, t1, t2, t3; + /* constants */ + /* set pointers for Edwards curve arith */ + const limb_t *X = P->X; + const limb_t *Y = P->Y; + const limb_t *Z = P->Z; + limb_t *X3 = Q->X; + limb_t *Y3 = Q->Y; + limb_t *T3 = Q->T; + limb_t *Z3 = Q->Z; + + /* the curve arith formula */ + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(t0, X); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(t1, Y); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(t2, Z); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(t3, t2, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(X3, X, Y); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(Y3, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(T3, Y3, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(Z3, T3, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(Y3, t0, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(t2, Y3, t3); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(t3, t0, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(X3, Z3, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(T3, Z3, t3); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Z3, t2, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Y3, Y3, t3); +} + +/*- + * R := Q + P where R and Q are projective, P affine. + * R and Q same pointers OK + * R and P same pointers not OK + * Autogenerated: op3/add_mixed_ed_eone.op3 + * https://hyperelliptic.org/EFD/g1p/auto-code/twisted/extended/addition/madd-2008-hwcd.op3 + * ASSERT: e = 1 + */ +static void point_add_mixed(pt_prj_t *R, const pt_prj_t *Q, const pt_aff_t *P) { + /* temporary variables */ + fe_t t0, t1, t2, t3; + /* constants */ + const limb_t *d = const_d; + /* set pointers for Edwards curve arith */ + const limb_t *X1 = Q->X; + const limb_t *Y1 = Q->Y; + const limb_t *T1 = Q->T; + const limb_t *Z1 = Q->Z; + const limb_t *X2 = P->X; + const limb_t *Y2 = P->Y; + const limb_t *T2 = P->T; + limb_t *X3 = R->X; + limb_t *Y3 = R->Y; + limb_t *T3 = R->T; + limb_t *Z3 = R->Z; + + /* the curve arith formula */ + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t0, X1, X2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t1, Y1, Y2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t2, d, T2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t2, T1, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(X3, X1, Y1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(Y3, X2, Y2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(T3, X3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(t3, T3, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(T3, t3, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(t3, Z1, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(Z3, Z1, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(t1, t1, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(X3, T3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Y3, t3, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(T3, T3, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Z3, Z3, t3); +} + +/*- + * R := Q + P all projective. + * R and Q same pointers OK + * R and P same pointers not OK + * Autogenerated: op3/add_proj_ed_eone.op3 + * https://hyperelliptic.org/EFD/g1p/auto-code/twisted/extended/addition/add-2008-hwcd.op3 + * ASSERT: e = 1 + */ +static void point_add_proj(pt_prj_t *R, const pt_prj_t *Q, const pt_prj_t *P) { + /* temporary variables */ + fe_t t0, t1, t2, t3; + /* constants */ + const limb_t *d = const_d; + /* set pointers for Edwards curve arith */ + const limb_t *X1 = Q->X; + const limb_t *Y1 = Q->Y; + const limb_t *T1 = Q->T; + const limb_t *Z1 = Q->Z; + const limb_t *X2 = P->X; + const limb_t *Y2 = P->Y; + const limb_t *T2 = P->T; + const limb_t *Z2 = P->Z; + limb_t *X3 = R->X; + limb_t *Y3 = R->Y; + limb_t *T3 = R->T; + limb_t *Z3 = R->Z; + + /* the curve arith formula */ + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t0, X1, X2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t1, Y1, Y2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t2, d, T2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t2, T1, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t3, Z1, Z2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(X3, X1, Y1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(Y3, X2, Y2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(T3, X3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(Z3, T3, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(T3, Z3, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(Z3, t3, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(t3, t3, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(t1, t1, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(X3, T3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Y3, t3, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(T3, T3, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Z3, Z3, t3); +} + +/*- + * from P projective Edwards to Q projective legacy: Q=P OK + * Autogenerated: op3/edwards2legacy_gost.op3 + * https://tools.ietf.org/html/rfc7836#section-5.2 + */ +static void point_edwards2legacy(pt_prj_t *Q, const pt_prj_t *P) { + /* temporary variables */ + fe_t t0, t1; + /* constants */ + const limb_t *T = const_T; + const limb_t *S = const_S; + const limb_t *X1 = P->X; + const limb_t *Y1 = P->Y; + const limb_t *Z1 = P->Z; + limb_t *X3 = Q->X; + limb_t *Y3 = Q->Y; + limb_t *T3 = Q->T; + limb_t *Z3 = Q->Z; + + /* the curve arith formula */ + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(t0, Z1, Y1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(t1, Z1, Y1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(T3, S, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Y3, Z1, T3); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Z3, X3, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t1, t1, T); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(t0, T3, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(X3, X1, t0); +} + +/*- + * from P affine legacy to Q projective Edwards: Q=P not OK + * Autogenerated: op3/legacy2edwards_gost.op3 + * https://tools.ietf.org/html/rfc7836#section-5.2 + */ +static void point_legacy2edwards(pt_prj_t *Q, const pt_aff_t *P) { + /* constants */ + const limb_t *T = const_T; + const limb_t *S = const_S; + const limb_t *X1 = P->X; + const limb_t *Y1 = P->Y; + limb_t *X3 = Q->X; + limb_t *Y3 = Q->Y; + limb_t *T3 = Q->T; + limb_t *Z3 = Q->Z; + + /* the curve arith formula */ + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(T3, X1, T); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(Y3, T3, S); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(X3, T3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Z3, Y1, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(T3, T3, S); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Y3, Y1, T3); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(T3, X3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(X3, X3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Y3, Y3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(Z3, Z3); +} + +/* constants */ +#define RADIX 5 +#define DRADIX (1 << RADIX) +#define DRADIX_WNAF ((DRADIX) << 1) + +/*- + * precomp for wnaf scalar multiplication: + * precomp[0] = 1P + * precomp[1] = 3P + * precomp[2] = 5P + * precomp[3] = 7P + * precomp[4] = 9P + * ... + */ +static void precomp_wnaf(pt_prj_t precomp[DRADIX / 2], const pt_aff_t *P) { + int i; + + /* move from legacy affine to Edwards projective */ + point_legacy2edwards(&precomp[0], P); + point_double(&precomp[DRADIX / 2 - 1], &precomp[0]); + + for (i = 1; i < DRADIX / 2; i++) + point_add_proj(&precomp[i], &precomp[DRADIX / 2 - 1], &precomp[i - 1]); +} + +/* fetch a scalar bit */ +static int scalar_get_bit(const unsigned char in[64], int idx) { + int widx, rshift; + + widx = idx >> 3; + rshift = idx & 0x7; + + if (idx < 0 || widx >= 64) return 0; + + return (in[widx] >> rshift) & 0x1; +} + +/*- + * Compute "regular" wnaf representation of a scalar. + * See "Exponent Recoding and Regular Exponentiation Algorithms", + * Tunstall et al., AfricaCrypt 2009, Alg 6. + * It forces an odd scalar and outputs digits in + * {\pm 1, \pm 3, \pm 5, \pm 7, \pm 9, ...} + * i.e. signed odd digits with _no zeroes_ -- that makes it "regular". + */ +static void scalar_rwnaf(char out[103], const unsigned char in[64]) { + int i; + char window, d; + + window = (in[0] & (DRADIX_WNAF - 1)) | 1; + for (i = 0; i < 102; i++) { + d = (window & (DRADIX_WNAF - 1)) - DRADIX; + out[i] = d; + window = (window - d) >> RADIX; + window += scalar_get_bit(in, (i + 1) * RADIX + 1) << 1; + window += scalar_get_bit(in, (i + 1) * RADIX + 2) << 2; + window += scalar_get_bit(in, (i + 1) * RADIX + 3) << 3; + window += scalar_get_bit(in, (i + 1) * RADIX + 4) << 4; + window += scalar_get_bit(in, (i + 1) * RADIX + 5) << 5; + } + out[i] = window; +} + +/*- + * Compute "textbook" wnaf representation of a scalar. + * NB: not constant time + */ +static void scalar_wnaf(char out[513], const unsigned char in[64]) { + int i; + char window, d; + + window = in[0] & (DRADIX_WNAF - 1); + for (i = 0; i < 513; i++) { + d = 0; + if ((window & 1) && ((d = window & (DRADIX_WNAF - 1)) & DRADIX)) + d -= DRADIX_WNAF; + out[i] = d; + window = (window - d) >> 1; + window += scalar_get_bit(in, i + 1 + RADIX) << RADIX; + } +} + +/*- + * Simulateous scalar multiplication: interleaved "textbook" wnaf. + * NB: not constant time + */ +static void var_smul_wnaf_two(pt_aff_t *out, const unsigned char a[64], + const unsigned char b[64], const pt_aff_t *P) { + int i, d, is_neg, is_inf = 1, flipped = 0; + char anaf[513] = {0}; + char bnaf[513] = {0}; + pt_prj_t Q; + pt_prj_t precomp[DRADIX / 2]; + + precomp_wnaf(precomp, P); + scalar_wnaf(anaf, a); + scalar_wnaf(bnaf, b); + + for (i = 512; i >= 0; i--) { + if (!is_inf) point_double(&Q, &Q); + if ((d = bnaf[i])) { + if ((is_neg = d < 0) != flipped) { + fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(Q.X, Q.X); + fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(Q.T, Q.T); + flipped ^= 1; + } + d = (is_neg) ? (-d - 1) >> 1 : (d - 1) >> 1; + if (is_inf) { + /* initialize accumulator */ + fe_copy(Q.X, &precomp[d].X); + fe_copy(Q.Y, &precomp[d].Y); + fe_copy(Q.T, &precomp[d].T); + fe_copy(Q.Z, &precomp[d].Z); + is_inf = 0; + } else + point_add_proj(&Q, &Q, &precomp[d]); + } + if ((d = anaf[i])) { + if ((is_neg = d < 0) != flipped) { + fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(Q.X, Q.X); + fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(Q.T, Q.T); + flipped ^= 1; + } + d = (is_neg) ? (-d - 1) >> 1 : (d - 1) >> 1; + if (is_inf) { + /* initialize accumulator */ + fe_copy(Q.X, &lut_cmb[0][d].X); + fe_copy(Q.Y, &lut_cmb[0][d].Y); + fe_copy(Q.T, &lut_cmb[0][d].T); + fe_copy(Q.Z, const_one); + is_inf = 0; + } else + point_add_mixed(&Q, &Q, &lut_cmb[0][d]); + } + } + + if (is_inf) { + /* initialize accumulator to inf: all-zero scalars */ + fe_set_zero(Q.X); + fe_copy(Q.Y, const_one); + fe_set_zero(Q.T); + fe_copy(Q.Z, const_one); + } + + if (flipped) { + /* correct sign */ + fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(Q.X, Q.X); + fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(Q.T, Q.T); + } + + /* move from Edwards projective to legacy projective */ + point_edwards2legacy(&Q, &Q); + /* convert to affine -- NB depends on coordinate system */ + fiat_id_tc26_gost_3410_2012_512_paramSetC_inv(Q.Z, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(out->X, Q.X, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(out->Y, Q.Y, Q.Z); +} + +/*- + * Variable point scalar multiplication with "regular" wnaf. + */ +static void var_smul_rwnaf(pt_aff_t *out, const unsigned char scalar[64], + const pt_aff_t *P) { + int i, j, d, diff, is_neg; + char rnaf[103] = {0}; + pt_prj_t Q, lut; + pt_prj_t precomp[DRADIX / 2]; + + precomp_wnaf(precomp, P); + scalar_rwnaf(rnaf, scalar); + +#if defined(_MSC_VER) + /* result still unsigned: yes we know */ +#pragma warning(push) +#pragma warning(disable : 4146) +#endif + + /* initialize accumulator to high digit */ + d = (rnaf[102] - 1) >> 1; + for (j = 0; j < DRADIX / 2; j++) { + diff = (1 - (-(d ^ j) >> (8 * sizeof(int) - 1))) & 1; + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.X, diff, Q.X, + precomp[j].X); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.Y, diff, Q.Y, + precomp[j].Y); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.T, diff, Q.T, + precomp[j].T); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.Z, diff, Q.Z, + precomp[j].Z); + } + + for (i = 101; i >= 0; i--) { + for (j = 0; j < RADIX; j++) point_double(&Q, &Q); + d = rnaf[i]; + /* is_neg = (d < 0) ? 1 : 0 */ + is_neg = (d >> (8 * sizeof(int) - 1)) & 1; + /* d = abs(d) */ + d = (d ^ -is_neg) + is_neg; + d = (d - 1) >> 1; + for (j = 0; j < DRADIX / 2; j++) { + diff = (1 - (-(d ^ j) >> (8 * sizeof(int) - 1))) & 1; + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz( + lut.X, diff, lut.X, precomp[j].X); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz( + lut.Y, diff, lut.Y, precomp[j].Y); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz( + lut.T, diff, lut.T, precomp[j].T); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz( + lut.Z, diff, lut.Z, precomp[j].Z); + } + /* negate lut point if digit is negative */ + fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(out->X, lut.X); + fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(out->T, lut.T); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(lut.X, is_neg, + lut.X, out->X); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(lut.T, is_neg, + lut.T, out->T); + point_add_proj(&Q, &Q, &lut); + } + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif + + /* conditionally subtract P if the scalar was even */ + fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(lut.X, precomp[0].X); + fe_copy(lut.Y, precomp[0].Y); + fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(lut.T, precomp[0].T); + fe_copy(lut.Z, precomp[0].Z); + point_add_proj(&lut, &lut, &Q); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.X, scalar[0] & 1, + lut.X, Q.X); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.Y, scalar[0] & 1, + lut.Y, Q.Y); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.T, scalar[0] & 1, + lut.T, Q.T); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.Z, scalar[0] & 1, + lut.Z, Q.Z); + + /* move from Edwards projective to legacy projective */ + point_edwards2legacy(&Q, &Q); + /* convert to affine -- NB depends on coordinate system */ + fiat_id_tc26_gost_3410_2012_512_paramSetC_inv(Q.Z, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(out->X, Q.X, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(out->Y, Q.Y, Q.Z); +} + +/*- + * Fixed scalar multiplication: comb with interleaving. + */ +static void fixed_smul_cmb(pt_aff_t *out, const unsigned char scalar[64]) { + int i, j, k, d, diff, is_neg = 0; + char rnaf[103] = {0}; + pt_prj_t Q, R; + pt_aff_t lut; + + scalar_rwnaf(rnaf, scalar); + + /* initalize accumulator to inf */ + fe_set_zero(Q.X); + fe_copy(Q.Y, const_one); + fe_set_zero(Q.T); + fe_copy(Q.Z, const_one); + +#if defined(_MSC_VER) + /* result still unsigned: yes we know */ +#pragma warning(push) +#pragma warning(disable : 4146) +#endif + + for (i = 14; i >= 0; i--) { + for (j = 0; i != 14 && j < RADIX; j++) point_double(&Q, &Q); + for (j = 0; j < 8; j++) { + if (j * 15 + i > 102) continue; + d = rnaf[j * 15 + i]; + /* is_neg = (d < 0) ? 1 : 0 */ + is_neg = (d >> (8 * sizeof(int) - 1)) & 1; + /* d = abs(d) */ + d = (d ^ -is_neg) + is_neg; + d = (d - 1) >> 1; + for (k = 0; k < DRADIX / 2; k++) { + diff = (1 - (-(d ^ k) >> (8 * sizeof(int) - 1))) & 1; + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz( + lut.X, diff, lut.X, lut_cmb[j][k].X); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz( + lut.Y, diff, lut.Y, lut_cmb[j][k].Y); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz( + lut.T, diff, lut.T, lut_cmb[j][k].T); + } + /* negate lut point if digit is negative */ + fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(out->X, lut.X); + fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(out->T, lut.T); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(lut.X, is_neg, + lut.X, out->X); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(lut.T, is_neg, + lut.T, out->T); + point_add_mixed(&Q, &Q, &lut); + } + } + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif + + /* conditionally subtract P if the scalar was even */ + fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(lut.X, lut_cmb[0][0].X); + fe_copy(lut.Y, lut_cmb[0][0].Y); + fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(lut.T, lut_cmb[0][0].T); + point_add_mixed(&R, &Q, &lut); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.X, scalar[0] & 1, R.X, + Q.X); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.Y, scalar[0] & 1, R.Y, + Q.Y); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.T, scalar[0] & 1, R.T, + Q.T); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.Z, scalar[0] & 1, R.Z, + Q.Z); + + /* move from Edwards projective to legacy projective */ + point_edwards2legacy(&Q, &Q); + /* convert to affine -- NB depends on coordinate system */ + fiat_id_tc26_gost_3410_2012_512_paramSetC_inv(Q.Z, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(out->X, Q.X, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(out->Y, Q.Y, Q.Z); +} + +static void point_mul_two(unsigned char outx[64], unsigned char outy[64], + const unsigned char a[64], const unsigned char b[64], + const unsigned char inx[64], + const unsigned char iny[64]) { + pt_aff_t P; + + fiat_id_tc26_gost_3410_2012_512_paramSetC_from_bytes(P.X, inx); + fiat_id_tc26_gost_3410_2012_512_paramSetC_from_bytes(P.Y, iny); + /* simultaneous scalar multiplication */ + var_smul_wnaf_two(&P, a, b, &P); + + fiat_id_tc26_gost_3410_2012_512_paramSetC_to_bytes(outx, P.X); + fiat_id_tc26_gost_3410_2012_512_paramSetC_to_bytes(outy, P.Y); +} + +static void point_mul_g(unsigned char outx[64], unsigned char outy[64], + const unsigned char scalar[64]) { + pt_aff_t P; + + /* fixed scmul function */ + fixed_smul_cmb(&P, scalar); + fiat_id_tc26_gost_3410_2012_512_paramSetC_to_bytes(outx, P.X); + fiat_id_tc26_gost_3410_2012_512_paramSetC_to_bytes(outy, P.Y); +} + +static void point_mul(unsigned char outx[64], unsigned char outy[64], + const unsigned char scalar[64], + const unsigned char inx[64], + const unsigned char iny[64]) { + pt_aff_t P; + + fiat_id_tc26_gost_3410_2012_512_paramSetC_from_bytes(P.X, inx); + fiat_id_tc26_gost_3410_2012_512_paramSetC_from_bytes(P.Y, iny); + /* var scmul function */ + var_smul_rwnaf(&P, scalar, &P); + fiat_id_tc26_gost_3410_2012_512_paramSetC_to_bytes(outx, P.X); + fiat_id_tc26_gost_3410_2012_512_paramSetC_to_bytes(outy, P.Y); +} + +#include <openssl/ec.h> + +static const unsigned char const_zb[64] = {0}; + + int + point_mul_two_id_tc26_gost_3410_2012_512_paramSetC( + const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, const EC_POINT *q, + const BIGNUM *m, BN_CTX *ctx) { + int ret = 0; + unsigned char b_x[64]; + unsigned char b_y[64]; + unsigned char b_n[64]; + unsigned char b_m[64]; + BIGNUM *x = NULL, *y = NULL; + + BN_CTX_start(ctx); + x = BN_CTX_get(ctx); + if ((y = BN_CTX_get(ctx)) == NULL + /* pull out coords as bytes */ + || !EC_POINT_get_affine_coordinates(group, q, x, y, ctx) || + BN_bn2lebinpad(x, b_x, 64) != 64 || BN_bn2lebinpad(y, b_y, 64) != 64 || + BN_bn2lebinpad(n, b_n, 64) != 64 || BN_bn2lebinpad(m, b_m, 64) != 64) + goto err; + /* do the simultaneous scalar multiplication */ + point_mul_two(b_x, b_y, b_n, b_m, b_x, b_y); + /* check for infinity */ + if (CRYPTO_memcmp(const_zb, b_x, 64) == 0 && + CRYPTO_memcmp(const_zb, b_y, 64) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 64, x) == NULL || + BN_lebin2bn(b_y, 64, y) == NULL || + !EC_POINT_set_affine_coordinates(group, r, x, y, ctx)) + goto err; + } + ret = 1; +err: + BN_CTX_end(ctx); + return ret; +} + + int + point_mul_id_tc26_gost_3410_2012_512_paramSetC(const EC_GROUP *group, + EC_POINT *r, + const EC_POINT *q, + const BIGNUM *m, + BN_CTX *ctx) { + int ret = 0; + unsigned char b_x[64]; + unsigned char b_y[64]; + unsigned char b_m[64]; + BIGNUM *x = NULL, *y = NULL; + + BN_CTX_start(ctx); + x = BN_CTX_get(ctx); + if ((y = BN_CTX_get(ctx)) == NULL + /* pull out coords as bytes */ + || !EC_POINT_get_affine_coordinates(group, q, x, y, ctx) || + BN_bn2lebinpad(x, b_x, 64) != 64 || BN_bn2lebinpad(y, b_y, 64) != 64 || + BN_bn2lebinpad(m, b_m, 64) != 64) + goto err; + /* do the variable scalar multiplication */ + point_mul(b_x, b_y, b_m, b_x, b_y); + /* check for infinity */ + if (CRYPTO_memcmp(const_zb, b_x, 64) == 0 && + CRYPTO_memcmp(const_zb, b_y, 64) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 64, x) == NULL || + BN_lebin2bn(b_y, 64, y) == NULL || + !EC_POINT_set_affine_coordinates(group, r, x, y, ctx)) + goto err; + } + ret = 1; +err: + BN_CTX_end(ctx); + return ret; +} + + int + point_mul_g_id_tc26_gost_3410_2012_512_paramSetC(const EC_GROUP *group, + EC_POINT *r, + const BIGNUM *n, + BN_CTX *ctx) { + int ret = 0; + unsigned char b_x[64]; + unsigned char b_y[64]; + unsigned char b_n[64]; + BIGNUM *x = NULL, *y = NULL; + + BN_CTX_start(ctx); + x = BN_CTX_get(ctx); + if ((y = BN_CTX_get(ctx)) == NULL || BN_bn2lebinpad(n, b_n, 64) != 64) + goto err; + /* do the fixed scalar multiplication */ + point_mul_g(b_x, b_y, b_n); + /* check for infinity */ + if (CRYPTO_memcmp(const_zb, b_x, 64) == 0 && + CRYPTO_memcmp(const_zb, b_y, 64) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 64, x) == NULL || + BN_lebin2bn(b_y, 64, y) == NULL || + !EC_POINT_set_affine_coordinates(group, r, x, y, ctx)) + goto err; + } + ret = 1; +err: + BN_CTX_end(ctx); + return ret; +} + + + +#else /* __SIZEOF_INT128__ */ + +#include <stdint.h> +#include <string.h> +#define LIMB_BITS 32 +#define LIMB_CNT 23 +/* Field elements */ +typedef uint32_t fe_t[LIMB_CNT]; +typedef uint32_t limb_t; + +#define fe_copy(d, s) memcpy(d, s, sizeof(fe_t)) +#define fe_set_zero(d) memset(d, 0, sizeof(fe_t)) + +#define fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(c, a, b) \ + fiat_id_tc26_gost_3410_2012_512_paramSetC_add(c, a, b); \ + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry(c, c) +#define fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(c, a, b) \ + fiat_id_tc26_gost_3410_2012_512_paramSetC_sub(c, a, b); \ + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry(c, c) + +/* Projective points */ +typedef struct { + fe_t X; + fe_t Y; + fe_t T; + fe_t Z; +} pt_prj_t; + +/* Affine points */ +typedef struct { + fe_t X; + fe_t Y; + fe_t T; +} pt_aff_t; + +/* BEGIN verbatim fiat code https://github.com/mit-plv/fiat-crypto */ +/*- + * MIT License + * + * Copyright (c) 2020 the fiat-crypto authors (see the AUTHORS file) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/* Autogenerated: unsaturated_solinas --static id_tc26_gost_3410_2012_512_paramSetC 32 '(auto)' '2^512 - 569' */ +/* curve description: id_tc26_gost_3410_2012_512_paramSetC */ +/* machine_wordsize = 32 (from "32") */ +/* requested operations: (all) */ +/* n = 23 (from "(auto)") */ +/* s-c = 2^512 - [(1, 569)] (from "2^512 - 569") */ +/* tight_bounds_multiplier = 1.1 (from "") */ +/* */ +/* Computed values: */ +/* carry_chain = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 0, 1] */ +/* eval z = z[0] + (z[1] << 23) + (z[2] << 45) + (z[3] << 67) + (z[4] << 90) + (z[5] << 112) + (z[6] << 134) + (z[7] << 156) + (z[8] << 179) + (z[9] << 201) + (z[10] << 223) + (z[11] << 245) + (z[12] << 0x10c) + (z[13] << 0x122) + (z[14] << 0x138) + (z[15] << 0x14e) + (z[16] << 0x165) + (z[17] << 0x17b) + (z[18] << 0x191) + (z[19] << 0x1a7) + (z[20] << 0x1be) + (z[21] << 0x1d4) + (z[22] << 0x1ea) */ +/* bytes_eval z = z[0] + (z[1] << 8) + (z[2] << 16) + (z[3] << 24) + (z[4] << 32) + (z[5] << 40) + (z[6] << 48) + (z[7] << 56) + (z[8] << 64) + (z[9] << 72) + (z[10] << 80) + (z[11] << 88) + (z[12] << 96) + (z[13] << 104) + (z[14] << 112) + (z[15] << 120) + (z[16] << 128) + (z[17] << 136) + (z[18] << 144) + (z[19] << 152) + (z[20] << 160) + (z[21] << 168) + (z[22] << 176) + (z[23] << 184) + (z[24] << 192) + (z[25] << 200) + (z[26] << 208) + (z[27] << 216) + (z[28] << 224) + (z[29] << 232) + (z[30] << 240) + (z[31] << 248) + (z[32] << 256) + (z[33] << 0x108) + (z[34] << 0x110) + (z[35] << 0x118) + (z[36] << 0x120) + (z[37] << 0x128) + (z[38] << 0x130) + (z[39] << 0x138) + (z[40] << 0x140) + (z[41] << 0x148) + (z[42] << 0x150) + (z[43] << 0x158) + (z[44] << 0x160) + (z[45] << 0x168) + (z[46] << 0x170) + (z[47] << 0x178) + (z[48] << 0x180) + (z[49] << 0x188) + (z[50] << 0x190) + (z[51] << 0x198) + (z[52] << 0x1a0) + (z[53] << 0x1a8) + (z[54] << 0x1b0) + (z[55] << 0x1b8) + (z[56] << 0x1c0) + (z[57] << 0x1c8) + (z[58] << 0x1d0) + (z[59] << 0x1d8) + (z[60] << 0x1e0) + (z[61] << 0x1e8) + (z[62] << 0x1f0) + (z[63] << 0x1f8) */ + +#include <stdint.h> +typedef unsigned char fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1; +typedef signed char fiat_id_tc26_gost_3410_2012_512_paramSetC_int1; + +#if (-1 & 3) != 3 +#error "This code only works on a two's complement system" +#endif + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22 is an addition with carry. + * Postconditions: + * out1 = (arg1 + arg2 + arg3) mod 2^22 + * out2 = ⌊(arg1 + arg2 + arg3) / 2^22⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0x3fffff] + * arg3: [0x0 ~> 0x3fffff] + * Output Bounds: + * out1: [0x0 ~> 0x3fffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( + uint32_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 *out2, + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 arg1, uint32_t arg2, + uint32_t arg3) { + uint32_t x1; + uint32_t x2; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x3; + x1 = ((arg1 + arg2) + arg3); + x2 = (x1 & UINT32_C(0x3fffff)); + x3 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x1 >> 22); + *out1 = x2; + *out2 = x3; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22 is a subtraction with borrow. + * Postconditions: + * out1 = (-arg1 + arg2 + -arg3) mod 2^22 + * out2 = -⌊(-arg1 + arg2 + -arg3) / 2^22⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0x3fffff] + * arg3: [0x0 ~> 0x3fffff] + * Output Bounds: + * out1: [0x0 ~> 0x3fffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( + uint32_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 *out2, + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 arg1, uint32_t arg2, + uint32_t arg3) { + int32_t x1; + fiat_id_tc26_gost_3410_2012_512_paramSetC_int1 x2; + uint32_t x3; + x1 = ((int32_t)(arg2 - arg1) - (int32_t)arg3); + x2 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_int1)(x1 >> 22); + x3 = (x1 & UINT32_C(0x3fffff)); + *out1 = x3; + *out2 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(0x0 - x2); +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u23 is an addition with carry. + * Postconditions: + * out1 = (arg1 + arg2 + arg3) mod 2^23 + * out2 = ⌊(arg1 + arg2 + arg3) / 2^23⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0x7fffff] + * arg3: [0x0 ~> 0x7fffff] + * Output Bounds: + * out1: [0x0 ~> 0x7fffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u23( + uint32_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 *out2, + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 arg1, uint32_t arg2, + uint32_t arg3) { + uint32_t x1; + uint32_t x2; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x3; + x1 = ((arg1 + arg2) + arg3); + x2 = (x1 & UINT32_C(0x7fffff)); + x3 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x1 >> 23); + *out1 = x2; + *out2 = x3; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u23 is a subtraction with borrow. + * Postconditions: + * out1 = (-arg1 + arg2 + -arg3) mod 2^23 + * out2 = -⌊(-arg1 + arg2 + -arg3) / 2^23⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0x7fffff] + * arg3: [0x0 ~> 0x7fffff] + * Output Bounds: + * out1: [0x0 ~> 0x7fffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u23( + uint32_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 *out2, + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 arg1, uint32_t arg2, + uint32_t arg3) { + int32_t x1; + fiat_id_tc26_gost_3410_2012_512_paramSetC_int1 x2; + uint32_t x3; + x1 = ((int32_t)(arg2 - arg1) - (int32_t)arg3); + x2 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_int1)(x1 >> 23); + x3 = (x1 & UINT32_C(0x7fffff)); + *out1 = x3; + *out2 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(0x0 - x2); +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32 is a single-word conditional move. + * Postconditions: + * out1 = (if arg1 = 0 then arg2 else arg3) + * + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffff] + * arg3: [0x0 ~> 0xffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffff] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32( + uint32_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 arg1, + uint32_t arg2, uint32_t arg3) { + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x1; + uint32_t x2; + uint32_t x3; + x1 = (!(!arg1)); + x2 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_int1)(0x0 - x1) & + UINT32_C(0xffffffff)); + x3 = ((x2 & arg3) | ((~x2) & arg2)); + *out1 = x3; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul multiplies two field elements and reduces the result. + * Postconditions: + * eval out1 mod m = (eval arg1 * eval arg2) mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332]] + * arg2: [[0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332]] + * Output Bounds: + * out1: [[0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul( + uint32_t out1[23], const uint32_t arg1[23], const uint32_t arg2[23]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + uint64_t x5; + uint64_t x6; + uint64_t x7; + uint64_t x8; + uint64_t x9; + uint64_t x10; + uint64_t x11; + uint64_t x12; + uint64_t x13; + uint64_t x14; + uint64_t x15; + uint64_t x16; + uint64_t x17; + uint64_t x18; + uint64_t x19; + uint64_t x20; + uint64_t x21; + uint64_t x22; + uint64_t x23; + uint64_t x24; + uint64_t x25; + uint64_t x26; + uint64_t x27; + uint64_t x28; + uint64_t x29; + uint64_t x30; + uint64_t x31; + uint64_t x32; + uint64_t x33; + uint64_t x34; + uint64_t x35; + uint64_t x36; + uint64_t x37; + uint64_t x38; + uint64_t x39; + uint64_t x40; + uint64_t x41; + uint64_t x42; + uint64_t x43; + uint64_t x44; + uint64_t x45; + uint64_t x46; + uint64_t x47; + uint64_t x48; + uint64_t x49; + uint64_t x50; + uint64_t x51; + uint64_t x52; + uint64_t x53; + uint64_t x54; + uint64_t x55; + uint64_t x56; + uint64_t x57; + uint64_t x58; + uint64_t x59; + uint64_t x60; + uint64_t x61; + uint64_t x62; + uint64_t x63; + uint64_t x64; + uint64_t x65; + uint64_t x66; + uint64_t x67; + uint64_t x68; + uint64_t x69; + uint64_t x70; + uint64_t x71; + uint64_t x72; + uint64_t x73; + uint64_t x74; + uint64_t x75; + uint64_t x76; + uint64_t x77; + uint64_t x78; + uint64_t x79; + uint64_t x80; + uint64_t x81; + uint64_t x82; + uint64_t x83; + uint64_t x84; + uint64_t x85; + uint64_t x86; + uint64_t x87; + uint64_t x88; + uint64_t x89; + uint64_t x90; + uint64_t x91; + uint64_t x92; + uint64_t x93; + uint64_t x94; + uint64_t x95; + uint64_t x96; + uint64_t x97; + uint64_t x98; + uint64_t x99; + uint64_t x100; + uint64_t x101; + uint64_t x102; + uint64_t x103; + uint64_t x104; + uint64_t x105; + uint64_t x106; + uint64_t x107; + uint64_t x108; + uint64_t x109; + uint64_t x110; + uint64_t x111; + uint64_t x112; + uint64_t x113; + uint64_t x114; + uint64_t x115; + uint64_t x116; + uint64_t x117; + uint64_t x118; + uint64_t x119; + uint64_t x120; + uint64_t x121; + uint64_t x122; + uint64_t x123; + uint64_t x124; + uint64_t x125; + uint64_t x126; + uint64_t x127; + uint64_t x128; + uint64_t x129; + uint64_t x130; + uint64_t x131; + uint64_t x132; + uint64_t x133; + uint64_t x134; + uint64_t x135; + uint64_t x136; + uint64_t x137; + uint64_t x138; + uint64_t x139; + uint64_t x140; + uint64_t x141; + uint64_t x142; + uint64_t x143; + uint64_t x144; + uint64_t x145; + uint64_t x146; + uint64_t x147; + uint64_t x148; + uint64_t x149; + uint64_t x150; + uint64_t x151; + uint64_t x152; + uint64_t x153; + uint64_t x154; + uint64_t x155; + uint64_t x156; + uint64_t x157; + uint64_t x158; + uint64_t x159; + uint64_t x160; + uint64_t x161; + uint64_t x162; + uint64_t x163; + uint64_t x164; + uint64_t x165; + uint64_t x166; + uint64_t x167; + uint64_t x168; + uint64_t x169; + uint64_t x170; + uint64_t x171; + uint64_t x172; + uint64_t x173; + uint64_t x174; + uint64_t x175; + uint64_t x176; + uint64_t x177; + uint64_t x178; + uint64_t x179; + uint64_t x180; + uint64_t x181; + uint64_t x182; + uint64_t x183; + uint64_t x184; + uint64_t x185; + uint64_t x186; + uint64_t x187; + uint64_t x188; + uint64_t x189; + uint64_t x190; + uint64_t x191; + uint64_t x192; + uint64_t x193; + uint64_t x194; + uint64_t x195; + uint64_t x196; + uint64_t x197; + uint64_t x198; + uint64_t x199; + uint64_t x200; + uint64_t x201; + uint64_t x202; + uint64_t x203; + uint64_t x204; + uint64_t x205; + uint64_t x206; + uint64_t x207; + uint64_t x208; + uint64_t x209; + uint64_t x210; + uint64_t x211; + uint64_t x212; + uint64_t x213; + uint64_t x214; + uint64_t x215; + uint64_t x216; + uint64_t x217; + uint64_t x218; + uint64_t x219; + uint64_t x220; + uint64_t x221; + uint64_t x222; + uint64_t x223; + uint64_t x224; + uint64_t x225; + uint64_t x226; + uint64_t x227; + uint64_t x228; + uint64_t x229; + uint64_t x230; + uint64_t x231; + uint64_t x232; + uint64_t x233; + uint64_t x234; + uint64_t x235; + uint64_t x236; + uint64_t x237; + uint64_t x238; + uint64_t x239; + uint64_t x240; + uint64_t x241; + uint64_t x242; + uint64_t x243; + uint64_t x244; + uint64_t x245; + uint64_t x246; + uint64_t x247; + uint64_t x248; + uint64_t x249; + uint64_t x250; + uint64_t x251; + uint64_t x252; + uint64_t x253; + uint64_t x254; + uint64_t x255; + uint64_t x256; + uint64_t x257; + uint64_t x258; + uint64_t x259; + uint64_t x260; + uint64_t x261; + uint64_t x262; + uint64_t x263; + uint64_t x264; + uint64_t x265; + uint64_t x266; + uint64_t x267; + uint64_t x268; + uint64_t x269; + uint64_t x270; + uint64_t x271; + uint64_t x272; + uint64_t x273; + uint64_t x274; + uint64_t x275; + uint64_t x276; + uint64_t x277; + uint64_t x278; + uint64_t x279; + uint64_t x280; + uint64_t x281; + uint64_t x282; + uint64_t x283; + uint64_t x284; + uint64_t x285; + uint64_t x286; + uint64_t x287; + uint64_t x288; + uint64_t x289; + uint64_t x290; + uint64_t x291; + uint64_t x292; + uint64_t x293; + uint64_t x294; + uint64_t x295; + uint64_t x296; + uint64_t x297; + uint64_t x298; + uint64_t x299; + uint64_t x300; + uint64_t x301; + uint64_t x302; + uint64_t x303; + uint64_t x304; + uint64_t x305; + uint64_t x306; + uint64_t x307; + uint64_t x308; + uint64_t x309; + uint64_t x310; + uint64_t x311; + uint64_t x312; + uint64_t x313; + uint64_t x314; + uint64_t x315; + uint64_t x316; + uint64_t x317; + uint64_t x318; + uint64_t x319; + uint64_t x320; + uint64_t x321; + uint64_t x322; + uint64_t x323; + uint64_t x324; + uint64_t x325; + uint64_t x326; + uint64_t x327; + uint64_t x328; + uint64_t x329; + uint64_t x330; + uint64_t x331; + uint64_t x332; + uint64_t x333; + uint64_t x334; + uint64_t x335; + uint64_t x336; + uint64_t x337; + uint64_t x338; + uint64_t x339; + uint64_t x340; + uint64_t x341; + uint64_t x342; + uint64_t x343; + uint64_t x344; + uint64_t x345; + uint64_t x346; + uint64_t x347; + uint64_t x348; + uint64_t x349; + uint64_t x350; + uint64_t x351; + uint64_t x352; + uint64_t x353; + uint64_t x354; + uint64_t x355; + uint64_t x356; + uint64_t x357; + uint64_t x358; + uint64_t x359; + uint64_t x360; + uint64_t x361; + uint64_t x362; + uint64_t x363; + uint64_t x364; + uint64_t x365; + uint64_t x366; + uint64_t x367; + uint64_t x368; + uint64_t x369; + uint64_t x370; + uint64_t x371; + uint64_t x372; + uint64_t x373; + uint64_t x374; + uint64_t x375; + uint64_t x376; + uint64_t x377; + uint64_t x378; + uint64_t x379; + uint64_t x380; + uint64_t x381; + uint64_t x382; + uint64_t x383; + uint64_t x384; + uint64_t x385; + uint64_t x386; + uint64_t x387; + uint64_t x388; + uint64_t x389; + uint64_t x390; + uint64_t x391; + uint64_t x392; + uint64_t x393; + uint64_t x394; + uint64_t x395; + uint64_t x396; + uint64_t x397; + uint64_t x398; + uint64_t x399; + uint64_t x400; + uint64_t x401; + uint64_t x402; + uint64_t x403; + uint64_t x404; + uint64_t x405; + uint64_t x406; + uint64_t x407; + uint64_t x408; + uint64_t x409; + uint64_t x410; + uint64_t x411; + uint64_t x412; + uint64_t x413; + uint64_t x414; + uint64_t x415; + uint64_t x416; + uint64_t x417; + uint64_t x418; + uint64_t x419; + uint64_t x420; + uint64_t x421; + uint64_t x422; + uint64_t x423; + uint64_t x424; + uint64_t x425; + uint64_t x426; + uint64_t x427; + uint64_t x428; + uint64_t x429; + uint64_t x430; + uint64_t x431; + uint64_t x432; + uint64_t x433; + uint64_t x434; + uint64_t x435; + uint64_t x436; + uint64_t x437; + uint64_t x438; + uint64_t x439; + uint64_t x440; + uint64_t x441; + uint64_t x442; + uint64_t x443; + uint64_t x444; + uint64_t x445; + uint64_t x446; + uint64_t x447; + uint64_t x448; + uint64_t x449; + uint64_t x450; + uint64_t x451; + uint64_t x452; + uint64_t x453; + uint64_t x454; + uint64_t x455; + uint64_t x456; + uint64_t x457; + uint64_t x458; + uint64_t x459; + uint64_t x460; + uint64_t x461; + uint64_t x462; + uint64_t x463; + uint64_t x464; + uint64_t x465; + uint64_t x466; + uint64_t x467; + uint64_t x468; + uint64_t x469; + uint64_t x470; + uint64_t x471; + uint64_t x472; + uint64_t x473; + uint64_t x474; + uint64_t x475; + uint64_t x476; + uint64_t x477; + uint64_t x478; + uint64_t x479; + uint64_t x480; + uint64_t x481; + uint64_t x482; + uint64_t x483; + uint64_t x484; + uint64_t x485; + uint64_t x486; + uint64_t x487; + uint64_t x488; + uint64_t x489; + uint64_t x490; + uint64_t x491; + uint64_t x492; + uint64_t x493; + uint64_t x494; + uint64_t x495; + uint64_t x496; + uint64_t x497; + uint64_t x498; + uint64_t x499; + uint64_t x500; + uint64_t x501; + uint64_t x502; + uint64_t x503; + uint64_t x504; + uint64_t x505; + uint64_t x506; + uint64_t x507; + uint64_t x508; + uint64_t x509; + uint64_t x510; + uint64_t x511; + uint64_t x512; + uint64_t x513; + uint64_t x514; + uint64_t x515; + uint64_t x516; + uint64_t x517; + uint64_t x518; + uint64_t x519; + uint64_t x520; + uint64_t x521; + uint64_t x522; + uint64_t x523; + uint64_t x524; + uint64_t x525; + uint64_t x526; + uint64_t x527; + uint64_t x528; + uint64_t x529; + uint64_t x530; + uint64_t x531; + uint32_t x532; + uint64_t x533; + uint64_t x534; + uint64_t x535; + uint64_t x536; + uint64_t x537; + uint64_t x538; + uint64_t x539; + uint64_t x540; + uint64_t x541; + uint64_t x542; + uint64_t x543; + uint64_t x544; + uint64_t x545; + uint64_t x546; + uint64_t x547; + uint64_t x548; + uint64_t x549; + uint64_t x550; + uint64_t x551; + uint64_t x552; + uint64_t x553; + uint64_t x554; + uint64_t x555; + uint64_t x556; + uint32_t x557; + uint64_t x558; + uint64_t x559; + uint32_t x560; + uint64_t x561; + uint64_t x562; + uint32_t x563; + uint64_t x564; + uint64_t x565; + uint32_t x566; + uint64_t x567; + uint64_t x568; + uint32_t x569; + uint64_t x570; + uint64_t x571; + uint32_t x572; + uint64_t x573; + uint64_t x574; + uint32_t x575; + uint64_t x576; + uint64_t x577; + uint32_t x578; + uint64_t x579; + uint64_t x580; + uint32_t x581; + uint64_t x582; + uint64_t x583; + uint32_t x584; + uint64_t x585; + uint64_t x586; + uint32_t x587; + uint64_t x588; + uint64_t x589; + uint32_t x590; + uint64_t x591; + uint64_t x592; + uint32_t x593; + uint64_t x594; + uint64_t x595; + uint32_t x596; + uint64_t x597; + uint64_t x598; + uint32_t x599; + uint64_t x600; + uint64_t x601; + uint32_t x602; + uint64_t x603; + uint64_t x604; + uint32_t x605; + uint64_t x606; + uint64_t x607; + uint32_t x608; + uint64_t x609; + uint64_t x610; + uint32_t x611; + uint64_t x612; + uint64_t x613; + uint32_t x614; + uint64_t x615; + uint64_t x616; + uint32_t x617; + uint64_t x618; + uint32_t x619; + uint32_t x620; + uint64_t x621; + uint64_t x622; + uint32_t x623; + uint32_t x624; + uint32_t x625; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x626; + uint32_t x627; + uint32_t x628; + x1 = (UINT16_C(0x239) * ((uint64_t)(arg1[22]) * (arg2[22]))); + x2 = (UINT16_C(0x239) * ((uint64_t)(arg1[22]) * (arg2[21]))); + x3 = (UINT16_C(0x239) * (((uint64_t)(arg1[22]) * (arg2[20])) * 0x2)); + x4 = (UINT16_C(0x239) * ((uint64_t)(arg1[22]) * (arg2[19]))); + x5 = (UINT16_C(0x239) * ((uint64_t)(arg1[22]) * (arg2[18]))); + x6 = (UINT16_C(0x239) * ((uint64_t)(arg1[22]) * (arg2[17]))); + x7 = (UINT16_C(0x239) * (((uint64_t)(arg1[22]) * (arg2[16])) * 0x2)); + x8 = (UINT16_C(0x239) * ((uint64_t)(arg1[22]) * (arg2[15]))); + x9 = (UINT16_C(0x239) * ((uint64_t)(arg1[22]) * (arg2[14]))); + x10 = (UINT16_C(0x239) * ((uint64_t)(arg1[22]) * (arg2[13]))); + x11 = (UINT16_C(0x239) * (((uint64_t)(arg1[22]) * (arg2[12])) * 0x2)); + x12 = (UINT16_C(0x239) * ((uint64_t)(arg1[22]) * (arg2[11]))); + x13 = (UINT16_C(0x239) * ((uint64_t)(arg1[22]) * (arg2[10]))); + x14 = (UINT16_C(0x239) * ((uint64_t)(arg1[22]) * (arg2[9]))); + x15 = (UINT16_C(0x239) * (((uint64_t)(arg1[22]) * (arg2[8])) * 0x2)); + x16 = (UINT16_C(0x239) * ((uint64_t)(arg1[22]) * (arg2[7]))); + x17 = (UINT16_C(0x239) * ((uint64_t)(arg1[22]) * (arg2[6]))); + x18 = (UINT16_C(0x239) * ((uint64_t)(arg1[22]) * (arg2[5]))); + x19 = (UINT16_C(0x239) * (((uint64_t)(arg1[22]) * (arg2[4])) * 0x2)); + x20 = (UINT16_C(0x239) * ((uint64_t)(arg1[22]) * (arg2[3]))); + x21 = (UINT16_C(0x239) * ((uint64_t)(arg1[22]) * (arg2[2]))); + x22 = (UINT16_C(0x239) * (((uint64_t)(arg1[22]) * (arg2[1])) * 0x2)); + x23 = (UINT16_C(0x239) * ((uint64_t)(arg1[21]) * (arg2[22]))); + x24 = (UINT16_C(0x239) * (((uint64_t)(arg1[21]) * (arg2[21])) * 0x2)); + x25 = (UINT16_C(0x239) * (((uint64_t)(arg1[21]) * (arg2[20])) * 0x2)); + x26 = (UINT16_C(0x239) * ((uint64_t)(arg1[21]) * (arg2[19]))); + x27 = (UINT16_C(0x239) * ((uint64_t)(arg1[21]) * (arg2[18]))); + x28 = (UINT16_C(0x239) * (((uint64_t)(arg1[21]) * (arg2[17])) * 0x2)); + x29 = (UINT16_C(0x239) * (((uint64_t)(arg1[21]) * (arg2[16])) * 0x2)); + x30 = (UINT16_C(0x239) * ((uint64_t)(arg1[21]) * (arg2[15]))); + x31 = (UINT16_C(0x239) * ((uint64_t)(arg1[21]) * (arg2[14]))); + x32 = (UINT16_C(0x239) * (((uint64_t)(arg1[21]) * (arg2[13])) * 0x2)); + x33 = (UINT16_C(0x239) * (((uint64_t)(arg1[21]) * (arg2[12])) * 0x2)); + x34 = (UINT16_C(0x239) * ((uint64_t)(arg1[21]) * (arg2[11]))); + x35 = (UINT16_C(0x239) * ((uint64_t)(arg1[21]) * (arg2[10]))); + x36 = (UINT16_C(0x239) * (((uint64_t)(arg1[21]) * (arg2[9])) * 0x2)); + x37 = (UINT16_C(0x239) * (((uint64_t)(arg1[21]) * (arg2[8])) * 0x2)); + x38 = (UINT16_C(0x239) * ((uint64_t)(arg1[21]) * (arg2[7]))); + x39 = (UINT16_C(0x239) * ((uint64_t)(arg1[21]) * (arg2[6]))); + x40 = (UINT16_C(0x239) * (((uint64_t)(arg1[21]) * (arg2[5])) * 0x2)); + x41 = (UINT16_C(0x239) * (((uint64_t)(arg1[21]) * (arg2[4])) * 0x2)); + x42 = (UINT16_C(0x239) * ((uint64_t)(arg1[21]) * (arg2[3]))); + x43 = (UINT16_C(0x239) * (((uint64_t)(arg1[21]) * (arg2[2])) * 0x2)); + x44 = (UINT16_C(0x239) * (((uint64_t)(arg1[20]) * (arg2[22])) * 0x2)); + x45 = (UINT16_C(0x239) * (((uint64_t)(arg1[20]) * (arg2[21])) * 0x2)); + x46 = (UINT16_C(0x239) * (((uint64_t)(arg1[20]) * (arg2[20])) * 0x2)); + x47 = (UINT16_C(0x239) * ((uint64_t)(arg1[20]) * (arg2[19]))); + x48 = (UINT16_C(0x239) * (((uint64_t)(arg1[20]) * (arg2[18])) * 0x2)); + x49 = (UINT16_C(0x239) * (((uint64_t)(arg1[20]) * (arg2[17])) * 0x2)); + x50 = (UINT16_C(0x239) * (((uint64_t)(arg1[20]) * (arg2[16])) * 0x2)); + x51 = (UINT16_C(0x239) * ((uint64_t)(arg1[20]) * (arg2[15]))); + x52 = (UINT16_C(0x239) * (((uint64_t)(arg1[20]) * (arg2[14])) * 0x2)); + x53 = (UINT16_C(0x239) * (((uint64_t)(arg1[20]) * (arg2[13])) * 0x2)); + x54 = (UINT16_C(0x239) * (((uint64_t)(arg1[20]) * (arg2[12])) * 0x2)); + x55 = (UINT16_C(0x239) * ((uint64_t)(arg1[20]) * (arg2[11]))); + x56 = (UINT16_C(0x239) * (((uint64_t)(arg1[20]) * (arg2[10])) * 0x2)); + x57 = (UINT16_C(0x239) * (((uint64_t)(arg1[20]) * (arg2[9])) * 0x2)); + x58 = (UINT16_C(0x239) * (((uint64_t)(arg1[20]) * (arg2[8])) * 0x2)); + x59 = (UINT16_C(0x239) * ((uint64_t)(arg1[20]) * (arg2[7]))); + x60 = (UINT16_C(0x239) * (((uint64_t)(arg1[20]) * (arg2[6])) * 0x2)); + x61 = (UINT16_C(0x239) * (((uint64_t)(arg1[20]) * (arg2[5])) * 0x2)); + x62 = (UINT16_C(0x239) * (((uint64_t)(arg1[20]) * (arg2[4])) * 0x2)); + x63 = (UINT16_C(0x239) * (((uint64_t)(arg1[20]) * (arg2[3])) * 0x2)); + x64 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[22]))); + x65 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[21]))); + x66 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[20]))); + x67 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[19]))); + x68 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[18]))); + x69 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[17]))); + x70 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[16]))); + x71 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[15]))); + x72 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[14]))); + x73 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[13]))); + x74 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[12]))); + x75 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[11]))); + x76 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[10]))); + x77 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[9]))); + x78 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[8]))); + x79 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[7]))); + x80 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[6]))); + x81 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[5]))); + x82 = (UINT16_C(0x239) * (((uint64_t)(arg1[19]) * (arg2[4])) * 0x2)); + x83 = (UINT16_C(0x239) * ((uint64_t)(arg1[18]) * (arg2[22]))); + x84 = (UINT16_C(0x239) * ((uint64_t)(arg1[18]) * (arg2[21]))); + x85 = (UINT16_C(0x239) * (((uint64_t)(arg1[18]) * (arg2[20])) * 0x2)); + x86 = (UINT16_C(0x239) * ((uint64_t)(arg1[18]) * (arg2[19]))); + x87 = (UINT16_C(0x239) * ((uint64_t)(arg1[18]) * (arg2[18]))); + x88 = (UINT16_C(0x239) * ((uint64_t)(arg1[18]) * (arg2[17]))); + x89 = (UINT16_C(0x239) * (((uint64_t)(arg1[18]) * (arg2[16])) * 0x2)); + x90 = (UINT16_C(0x239) * ((uint64_t)(arg1[18]) * (arg2[15]))); + x91 = (UINT16_C(0x239) * ((uint64_t)(arg1[18]) * (arg2[14]))); + x92 = (UINT16_C(0x239) * ((uint64_t)(arg1[18]) * (arg2[13]))); + x93 = (UINT16_C(0x239) * (((uint64_t)(arg1[18]) * (arg2[12])) * 0x2)); + x94 = (UINT16_C(0x239) * ((uint64_t)(arg1[18]) * (arg2[11]))); + x95 = (UINT16_C(0x239) * ((uint64_t)(arg1[18]) * (arg2[10]))); + x96 = (UINT16_C(0x239) * ((uint64_t)(arg1[18]) * (arg2[9]))); + x97 = (UINT16_C(0x239) * (((uint64_t)(arg1[18]) * (arg2[8])) * 0x2)); + x98 = (UINT16_C(0x239) * ((uint64_t)(arg1[18]) * (arg2[7]))); + x99 = (UINT16_C(0x239) * ((uint64_t)(arg1[18]) * (arg2[6]))); + x100 = (UINT16_C(0x239) * (((uint64_t)(arg1[18]) * (arg2[5])) * 0x2)); + x101 = (UINT16_C(0x239) * ((uint64_t)(arg1[17]) * (arg2[22]))); + x102 = (UINT16_C(0x239) * (((uint64_t)(arg1[17]) * (arg2[21])) * 0x2)); + x103 = (UINT16_C(0x239) * (((uint64_t)(arg1[17]) * (arg2[20])) * 0x2)); + x104 = (UINT16_C(0x239) * ((uint64_t)(arg1[17]) * (arg2[19]))); + x105 = (UINT16_C(0x239) * ((uint64_t)(arg1[17]) * (arg2[18]))); + x106 = (UINT16_C(0x239) * (((uint64_t)(arg1[17]) * (arg2[17])) * 0x2)); + x107 = (UINT16_C(0x239) * (((uint64_t)(arg1[17]) * (arg2[16])) * 0x2)); + x108 = (UINT16_C(0x239) * ((uint64_t)(arg1[17]) * (arg2[15]))); + x109 = (UINT16_C(0x239) * ((uint64_t)(arg1[17]) * (arg2[14]))); + x110 = (UINT16_C(0x239) * (((uint64_t)(arg1[17]) * (arg2[13])) * 0x2)); + x111 = (UINT16_C(0x239) * (((uint64_t)(arg1[17]) * (arg2[12])) * 0x2)); + x112 = (UINT16_C(0x239) * ((uint64_t)(arg1[17]) * (arg2[11]))); + x113 = (UINT16_C(0x239) * ((uint64_t)(arg1[17]) * (arg2[10]))); + x114 = (UINT16_C(0x239) * (((uint64_t)(arg1[17]) * (arg2[9])) * 0x2)); + x115 = (UINT16_C(0x239) * (((uint64_t)(arg1[17]) * (arg2[8])) * 0x2)); + x116 = (UINT16_C(0x239) * ((uint64_t)(arg1[17]) * (arg2[7]))); + x117 = (UINT16_C(0x239) * (((uint64_t)(arg1[17]) * (arg2[6])) * 0x2)); + x118 = (UINT16_C(0x239) * (((uint64_t)(arg1[16]) * (arg2[22])) * 0x2)); + x119 = (UINT16_C(0x239) * (((uint64_t)(arg1[16]) * (arg2[21])) * 0x2)); + x120 = (UINT16_C(0x239) * (((uint64_t)(arg1[16]) * (arg2[20])) * 0x2)); + x121 = (UINT16_C(0x239) * ((uint64_t)(arg1[16]) * (arg2[19]))); + x122 = (UINT16_C(0x239) * (((uint64_t)(arg1[16]) * (arg2[18])) * 0x2)); + x123 = (UINT16_C(0x239) * (((uint64_t)(arg1[16]) * (arg2[17])) * 0x2)); + x124 = (UINT16_C(0x239) * (((uint64_t)(arg1[16]) * (arg2[16])) * 0x2)); + x125 = (UINT16_C(0x239) * ((uint64_t)(arg1[16]) * (arg2[15]))); + x126 = (UINT16_C(0x239) * (((uint64_t)(arg1[16]) * (arg2[14])) * 0x2)); + x127 = (UINT16_C(0x239) * (((uint64_t)(arg1[16]) * (arg2[13])) * 0x2)); + x128 = (UINT16_C(0x239) * (((uint64_t)(arg1[16]) * (arg2[12])) * 0x2)); + x129 = (UINT16_C(0x239) * ((uint64_t)(arg1[16]) * (arg2[11]))); + x130 = (UINT16_C(0x239) * (((uint64_t)(arg1[16]) * (arg2[10])) * 0x2)); + x131 = (UINT16_C(0x239) * (((uint64_t)(arg1[16]) * (arg2[9])) * 0x2)); + x132 = (UINT16_C(0x239) * (((uint64_t)(arg1[16]) * (arg2[8])) * 0x2)); + x133 = (UINT16_C(0x239) * (((uint64_t)(arg1[16]) * (arg2[7])) * 0x2)); + x134 = (UINT16_C(0x239) * ((uint64_t)(arg1[15]) * (arg2[22]))); + x135 = (UINT16_C(0x239) * ((uint64_t)(arg1[15]) * (arg2[21]))); + x136 = (UINT16_C(0x239) * ((uint64_t)(arg1[15]) * (arg2[20]))); + x137 = (UINT16_C(0x239) * ((uint64_t)(arg1[15]) * (arg2[19]))); + x138 = (UINT16_C(0x239) * ((uint64_t)(arg1[15]) * (arg2[18]))); + x139 = (UINT16_C(0x239) * ((uint64_t)(arg1[15]) * (arg2[17]))); + x140 = (UINT16_C(0x239) * ((uint64_t)(arg1[15]) * (arg2[16]))); + x141 = (UINT16_C(0x239) * ((uint64_t)(arg1[15]) * (arg2[15]))); + x142 = (UINT16_C(0x239) * ((uint64_t)(arg1[15]) * (arg2[14]))); + x143 = (UINT16_C(0x239) * ((uint64_t)(arg1[15]) * (arg2[13]))); + x144 = (UINT16_C(0x239) * ((uint64_t)(arg1[15]) * (arg2[12]))); + x145 = (UINT16_C(0x239) * ((uint64_t)(arg1[15]) * (arg2[11]))); + x146 = (UINT16_C(0x239) * ((uint64_t)(arg1[15]) * (arg2[10]))); + x147 = (UINT16_C(0x239) * ((uint64_t)(arg1[15]) * (arg2[9]))); + x148 = (UINT16_C(0x239) * (((uint64_t)(arg1[15]) * (arg2[8])) * 0x2)); + x149 = (UINT16_C(0x239) * ((uint64_t)(arg1[14]) * (arg2[22]))); + x150 = (UINT16_C(0x239) * ((uint64_t)(arg1[14]) * (arg2[21]))); + x151 = (UINT16_C(0x239) * (((uint64_t)(arg1[14]) * (arg2[20])) * 0x2)); + x152 = (UINT16_C(0x239) * ((uint64_t)(arg1[14]) * (arg2[19]))); + x153 = (UINT16_C(0x239) * ((uint64_t)(arg1[14]) * (arg2[18]))); + x154 = (UINT16_C(0x239) * ((uint64_t)(arg1[14]) * (arg2[17]))); + x155 = (UINT16_C(0x239) * (((uint64_t)(arg1[14]) * (arg2[16])) * 0x2)); + x156 = (UINT16_C(0x239) * ((uint64_t)(arg1[14]) * (arg2[15]))); + x157 = (UINT16_C(0x239) * ((uint64_t)(arg1[14]) * (arg2[14]))); + x158 = (UINT16_C(0x239) * ((uint64_t)(arg1[14]) * (arg2[13]))); + x159 = (UINT16_C(0x239) * (((uint64_t)(arg1[14]) * (arg2[12])) * 0x2)); + x160 = (UINT16_C(0x239) * ((uint64_t)(arg1[14]) * (arg2[11]))); + x161 = (UINT16_C(0x239) * ((uint64_t)(arg1[14]) * (arg2[10]))); + x162 = (UINT16_C(0x239) * (((uint64_t)(arg1[14]) * (arg2[9])) * 0x2)); + x163 = (UINT16_C(0x239) * ((uint64_t)(arg1[13]) * (arg2[22]))); + x164 = (UINT16_C(0x239) * (((uint64_t)(arg1[13]) * (arg2[21])) * 0x2)); + x165 = (UINT16_C(0x239) * (((uint64_t)(arg1[13]) * (arg2[20])) * 0x2)); + x166 = (UINT16_C(0x239) * ((uint64_t)(arg1[13]) * (arg2[19]))); + x167 = (UINT16_C(0x239) * ((uint64_t)(arg1[13]) * (arg2[18]))); + x168 = (UINT16_C(0x239) * (((uint64_t)(arg1[13]) * (arg2[17])) * 0x2)); + x169 = (UINT16_C(0x239) * (((uint64_t)(arg1[13]) * (arg2[16])) * 0x2)); + x170 = (UINT16_C(0x239) * ((uint64_t)(arg1[13]) * (arg2[15]))); + x171 = (UINT16_C(0x239) * ((uint64_t)(arg1[13]) * (arg2[14]))); + x172 = (UINT16_C(0x239) * (((uint64_t)(arg1[13]) * (arg2[13])) * 0x2)); + x173 = (UINT16_C(0x239) * (((uint64_t)(arg1[13]) * (arg2[12])) * 0x2)); + x174 = (UINT16_C(0x239) * ((uint64_t)(arg1[13]) * (arg2[11]))); + x175 = (UINT16_C(0x239) * (((uint64_t)(arg1[13]) * (arg2[10])) * 0x2)); + x176 = (UINT16_C(0x239) * (((uint64_t)(arg1[12]) * (arg2[22])) * 0x2)); + x177 = (UINT16_C(0x239) * (((uint64_t)(arg1[12]) * (arg2[21])) * 0x2)); + x178 = (UINT16_C(0x239) * (((uint64_t)(arg1[12]) * (arg2[20])) * 0x2)); + x179 = (UINT16_C(0x239) * ((uint64_t)(arg1[12]) * (arg2[19]))); + x180 = (UINT16_C(0x239) * (((uint64_t)(arg1[12]) * (arg2[18])) * 0x2)); + x181 = (UINT16_C(0x239) * (((uint64_t)(arg1[12]) * (arg2[17])) * 0x2)); + x182 = (UINT16_C(0x239) * (((uint64_t)(arg1[12]) * (arg2[16])) * 0x2)); + x183 = (UINT16_C(0x239) * ((uint64_t)(arg1[12]) * (arg2[15]))); + x184 = (UINT16_C(0x239) * (((uint64_t)(arg1[12]) * (arg2[14])) * 0x2)); + x185 = (UINT16_C(0x239) * (((uint64_t)(arg1[12]) * (arg2[13])) * 0x2)); + x186 = (UINT16_C(0x239) * (((uint64_t)(arg1[12]) * (arg2[12])) * 0x2)); + x187 = (UINT16_C(0x239) * (((uint64_t)(arg1[12]) * (arg2[11])) * 0x2)); + x188 = (UINT16_C(0x239) * ((uint64_t)(arg1[11]) * (arg2[22]))); + x189 = (UINT16_C(0x239) * ((uint64_t)(arg1[11]) * (arg2[21]))); + x190 = (UINT16_C(0x239) * ((uint64_t)(arg1[11]) * (arg2[20]))); + x191 = (UINT16_C(0x239) * ((uint64_t)(arg1[11]) * (arg2[19]))); + x192 = (UINT16_C(0x239) * ((uint64_t)(arg1[11]) * (arg2[18]))); + x193 = (UINT16_C(0x239) * ((uint64_t)(arg1[11]) * (arg2[17]))); + x194 = (UINT16_C(0x239) * ((uint64_t)(arg1[11]) * (arg2[16]))); + x195 = (UINT16_C(0x239) * ((uint64_t)(arg1[11]) * (arg2[15]))); + x196 = (UINT16_C(0x239) * ((uint64_t)(arg1[11]) * (arg2[14]))); + x197 = (UINT16_C(0x239) * ((uint64_t)(arg1[11]) * (arg2[13]))); + x198 = (UINT16_C(0x239) * (((uint64_t)(arg1[11]) * (arg2[12])) * 0x2)); + x199 = (UINT16_C(0x239) * ((uint64_t)(arg1[10]) * (arg2[22]))); + x200 = (UINT16_C(0x239) * ((uint64_t)(arg1[10]) * (arg2[21]))); + x201 = (UINT16_C(0x239) * (((uint64_t)(arg1[10]) * (arg2[20])) * 0x2)); + x202 = (UINT16_C(0x239) * ((uint64_t)(arg1[10]) * (arg2[19]))); + x203 = (UINT16_C(0x239) * ((uint64_t)(arg1[10]) * (arg2[18]))); + x204 = (UINT16_C(0x239) * ((uint64_t)(arg1[10]) * (arg2[17]))); + x205 = (UINT16_C(0x239) * (((uint64_t)(arg1[10]) * (arg2[16])) * 0x2)); + x206 = (UINT16_C(0x239) * ((uint64_t)(arg1[10]) * (arg2[15]))); + x207 = (UINT16_C(0x239) * ((uint64_t)(arg1[10]) * (arg2[14]))); + x208 = (UINT16_C(0x239) * (((uint64_t)(arg1[10]) * (arg2[13])) * 0x2)); + x209 = (UINT16_C(0x239) * ((uint64_t)(arg1[9]) * (arg2[22]))); + x210 = (UINT16_C(0x239) * (((uint64_t)(arg1[9]) * (arg2[21])) * 0x2)); + x211 = (UINT16_C(0x239) * (((uint64_t)(arg1[9]) * (arg2[20])) * 0x2)); + x212 = (UINT16_C(0x239) * ((uint64_t)(arg1[9]) * (arg2[19]))); + x213 = (UINT16_C(0x239) * ((uint64_t)(arg1[9]) * (arg2[18]))); + x214 = (UINT16_C(0x239) * (((uint64_t)(arg1[9]) * (arg2[17])) * 0x2)); + x215 = (UINT16_C(0x239) * (((uint64_t)(arg1[9]) * (arg2[16])) * 0x2)); + x216 = (UINT16_C(0x239) * ((uint64_t)(arg1[9]) * (arg2[15]))); + x217 = (UINT16_C(0x239) * (((uint64_t)(arg1[9]) * (arg2[14])) * 0x2)); + x218 = (UINT16_C(0x239) * (((uint64_t)(arg1[8]) * (arg2[22])) * 0x2)); + x219 = (UINT16_C(0x239) * (((uint64_t)(arg1[8]) * (arg2[21])) * 0x2)); + x220 = (UINT16_C(0x239) * (((uint64_t)(arg1[8]) * (arg2[20])) * 0x2)); + x221 = (UINT16_C(0x239) * ((uint64_t)(arg1[8]) * (arg2[19]))); + x222 = (UINT16_C(0x239) * (((uint64_t)(arg1[8]) * (arg2[18])) * 0x2)); + x223 = (UINT16_C(0x239) * (((uint64_t)(arg1[8]) * (arg2[17])) * 0x2)); + x224 = (UINT16_C(0x239) * (((uint64_t)(arg1[8]) * (arg2[16])) * 0x2)); + x225 = (UINT16_C(0x239) * (((uint64_t)(arg1[8]) * (arg2[15])) * 0x2)); + x226 = (UINT16_C(0x239) * ((uint64_t)(arg1[7]) * (arg2[22]))); + x227 = (UINT16_C(0x239) * ((uint64_t)(arg1[7]) * (arg2[21]))); + x228 = (UINT16_C(0x239) * ((uint64_t)(arg1[7]) * (arg2[20]))); + x229 = (UINT16_C(0x239) * ((uint64_t)(arg1[7]) * (arg2[19]))); + x230 = (UINT16_C(0x239) * ((uint64_t)(arg1[7]) * (arg2[18]))); + x231 = (UINT16_C(0x239) * ((uint64_t)(arg1[7]) * (arg2[17]))); + x232 = (UINT16_C(0x239) * (((uint64_t)(arg1[7]) * (arg2[16])) * 0x2)); + x233 = (UINT16_C(0x239) * ((uint64_t)(arg1[6]) * (arg2[22]))); + x234 = (UINT16_C(0x239) * ((uint64_t)(arg1[6]) * (arg2[21]))); + x235 = (UINT16_C(0x239) * (((uint64_t)(arg1[6]) * (arg2[20])) * 0x2)); + x236 = (UINT16_C(0x239) * ((uint64_t)(arg1[6]) * (arg2[19]))); + x237 = (UINT16_C(0x239) * ((uint64_t)(arg1[6]) * (arg2[18]))); + x238 = (UINT16_C(0x239) * (((uint64_t)(arg1[6]) * (arg2[17])) * 0x2)); + x239 = (UINT16_C(0x239) * ((uint64_t)(arg1[5]) * (arg2[22]))); + x240 = (UINT16_C(0x239) * (((uint64_t)(arg1[5]) * (arg2[21])) * 0x2)); + x241 = (UINT16_C(0x239) * (((uint64_t)(arg1[5]) * (arg2[20])) * 0x2)); + x242 = (UINT16_C(0x239) * ((uint64_t)(arg1[5]) * (arg2[19]))); + x243 = (UINT16_C(0x239) * (((uint64_t)(arg1[5]) * (arg2[18])) * 0x2)); + x244 = (UINT16_C(0x239) * (((uint64_t)(arg1[4]) * (arg2[22])) * 0x2)); + x245 = (UINT16_C(0x239) * (((uint64_t)(arg1[4]) * (arg2[21])) * 0x2)); + x246 = (UINT16_C(0x239) * (((uint64_t)(arg1[4]) * (arg2[20])) * 0x2)); + x247 = (UINT16_C(0x239) * (((uint64_t)(arg1[4]) * (arg2[19])) * 0x2)); + x248 = (UINT16_C(0x239) * ((uint64_t)(arg1[3]) * (arg2[22]))); + x249 = (UINT16_C(0x239) * ((uint64_t)(arg1[3]) * (arg2[21]))); + x250 = (UINT16_C(0x239) * (((uint64_t)(arg1[3]) * (arg2[20])) * 0x2)); + x251 = (UINT16_C(0x239) * ((uint64_t)(arg1[2]) * (arg2[22]))); + x252 = (UINT16_C(0x239) * (((uint64_t)(arg1[2]) * (arg2[21])) * 0x2)); + x253 = (UINT16_C(0x239) * (((uint64_t)(arg1[1]) * (arg2[22])) * 0x2)); + x254 = ((uint64_t)(arg1[22]) * (arg2[0])); + x255 = ((uint64_t)(arg1[21]) * ((arg2[1]) * 0x2)); + x256 = ((uint64_t)(arg1[21]) * (arg2[0])); + x257 = ((uint64_t)(arg1[20]) * ((arg2[2]) * 0x2)); + x258 = ((uint64_t)(arg1[20]) * ((arg2[1]) * 0x2)); + x259 = ((uint64_t)(arg1[20]) * (arg2[0])); + x260 = ((uint64_t)(arg1[19]) * (arg2[3])); + x261 = ((uint64_t)(arg1[19]) * (arg2[2])); + x262 = ((uint64_t)(arg1[19]) * (arg2[1])); + x263 = ((uint64_t)(arg1[19]) * (arg2[0])); + x264 = ((uint64_t)(arg1[18]) * ((arg2[4]) * 0x2)); + x265 = ((uint64_t)(arg1[18]) * (arg2[3])); + x266 = ((uint64_t)(arg1[18]) * (arg2[2])); + x267 = ((uint64_t)(arg1[18]) * ((arg2[1]) * 0x2)); + x268 = ((uint64_t)(arg1[18]) * (arg2[0])); + x269 = ((uint64_t)(arg1[17]) * ((arg2[5]) * 0x2)); + x270 = ((uint64_t)(arg1[17]) * ((arg2[4]) * 0x2)); + x271 = ((uint64_t)(arg1[17]) * (arg2[3])); + x272 = ((uint64_t)(arg1[17]) * ((arg2[2]) * 0x2)); + x273 = ((uint64_t)(arg1[17]) * ((arg2[1]) * 0x2)); + x274 = ((uint64_t)(arg1[17]) * (arg2[0])); + x275 = ((uint64_t)(arg1[16]) * ((arg2[6]) * 0x2)); + x276 = ((uint64_t)(arg1[16]) * ((arg2[5]) * 0x2)); + x277 = ((uint64_t)(arg1[16]) * ((arg2[4]) * 0x2)); + x278 = ((uint64_t)(arg1[16]) * ((arg2[3]) * 0x2)); + x279 = ((uint64_t)(arg1[16]) * ((arg2[2]) * 0x2)); + x280 = ((uint64_t)(arg1[16]) * ((arg2[1]) * 0x2)); + x281 = ((uint64_t)(arg1[16]) * (arg2[0])); + x282 = ((uint64_t)(arg1[15]) * (arg2[7])); + x283 = ((uint64_t)(arg1[15]) * (arg2[6])); + x284 = ((uint64_t)(arg1[15]) * (arg2[5])); + x285 = ((uint64_t)(arg1[15]) * ((arg2[4]) * 0x2)); + x286 = ((uint64_t)(arg1[15]) * (arg2[3])); + x287 = ((uint64_t)(arg1[15]) * (arg2[2])); + x288 = ((uint64_t)(arg1[15]) * (arg2[1])); + x289 = ((uint64_t)(arg1[15]) * (arg2[0])); + x290 = ((uint64_t)(arg1[14]) * ((arg2[8]) * 0x2)); + x291 = ((uint64_t)(arg1[14]) * (arg2[7])); + x292 = ((uint64_t)(arg1[14]) * (arg2[6])); + x293 = ((uint64_t)(arg1[14]) * ((arg2[5]) * 0x2)); + x294 = ((uint64_t)(arg1[14]) * ((arg2[4]) * 0x2)); + x295 = ((uint64_t)(arg1[14]) * (arg2[3])); + x296 = ((uint64_t)(arg1[14]) * (arg2[2])); + x297 = ((uint64_t)(arg1[14]) * ((arg2[1]) * 0x2)); + x298 = ((uint64_t)(arg1[14]) * (arg2[0])); + x299 = ((uint64_t)(arg1[13]) * ((arg2[9]) * 0x2)); + x300 = ((uint64_t)(arg1[13]) * ((arg2[8]) * 0x2)); + x301 = ((uint64_t)(arg1[13]) * (arg2[7])); + x302 = ((uint64_t)(arg1[13]) * ((arg2[6]) * 0x2)); + x303 = ((uint64_t)(arg1[13]) * ((arg2[5]) * 0x2)); + x304 = ((uint64_t)(arg1[13]) * ((arg2[4]) * 0x2)); + x305 = ((uint64_t)(arg1[13]) * (arg2[3])); + x306 = ((uint64_t)(arg1[13]) * ((arg2[2]) * 0x2)); + x307 = ((uint64_t)(arg1[13]) * ((arg2[1]) * 0x2)); + x308 = ((uint64_t)(arg1[13]) * (arg2[0])); + x309 = ((uint64_t)(arg1[12]) * ((arg2[10]) * 0x2)); + x310 = ((uint64_t)(arg1[12]) * ((arg2[9]) * 0x2)); + x311 = ((uint64_t)(arg1[12]) * ((arg2[8]) * 0x2)); + x312 = ((uint64_t)(arg1[12]) * ((arg2[7]) * 0x2)); + x313 = ((uint64_t)(arg1[12]) * ((arg2[6]) * 0x2)); + x314 = ((uint64_t)(arg1[12]) * ((arg2[5]) * 0x2)); + x315 = ((uint64_t)(arg1[12]) * ((arg2[4]) * 0x2)); + x316 = ((uint64_t)(arg1[12]) * ((arg2[3]) * 0x2)); + x317 = ((uint64_t)(arg1[12]) * ((arg2[2]) * 0x2)); + x318 = ((uint64_t)(arg1[12]) * ((arg2[1]) * 0x2)); + x319 = ((uint64_t)(arg1[12]) * (arg2[0])); + x320 = ((uint64_t)(arg1[11]) * (arg2[11])); + x321 = ((uint64_t)(arg1[11]) * (arg2[10])); + x322 = ((uint64_t)(arg1[11]) * (arg2[9])); + x323 = ((uint64_t)(arg1[11]) * ((arg2[8]) * 0x2)); + x324 = ((uint64_t)(arg1[11]) * (arg2[7])); + x325 = ((uint64_t)(arg1[11]) * (arg2[6])); + x326 = ((uint64_t)(arg1[11]) * (arg2[5])); + x327 = ((uint64_t)(arg1[11]) * ((arg2[4]) * 0x2)); + x328 = ((uint64_t)(arg1[11]) * (arg2[3])); + x329 = ((uint64_t)(arg1[11]) * (arg2[2])); + x330 = ((uint64_t)(arg1[11]) * (arg2[1])); + x331 = ((uint64_t)(arg1[11]) * (arg2[0])); + x332 = ((uint64_t)(arg1[10]) * ((arg2[12]) * 0x2)); + x333 = ((uint64_t)(arg1[10]) * (arg2[11])); + x334 = ((uint64_t)(arg1[10]) * (arg2[10])); + x335 = ((uint64_t)(arg1[10]) * ((arg2[9]) * 0x2)); + x336 = ((uint64_t)(arg1[10]) * ((arg2[8]) * 0x2)); + x337 = ((uint64_t)(arg1[10]) * (arg2[7])); + x338 = ((uint64_t)(arg1[10]) * (arg2[6])); + x339 = ((uint64_t)(arg1[10]) * ((arg2[5]) * 0x2)); + x340 = ((uint64_t)(arg1[10]) * ((arg2[4]) * 0x2)); + x341 = ((uint64_t)(arg1[10]) * (arg2[3])); + x342 = ((uint64_t)(arg1[10]) * (arg2[2])); + x343 = ((uint64_t)(arg1[10]) * ((arg2[1]) * 0x2)); + x344 = ((uint64_t)(arg1[10]) * (arg2[0])); + x345 = ((uint64_t)(arg1[9]) * ((arg2[13]) * 0x2)); + x346 = ((uint64_t)(arg1[9]) * ((arg2[12]) * 0x2)); + x347 = ((uint64_t)(arg1[9]) * (arg2[11])); + x348 = ((uint64_t)(arg1[9]) * ((arg2[10]) * 0x2)); + x349 = ((uint64_t)(arg1[9]) * ((arg2[9]) * 0x2)); + x350 = ((uint64_t)(arg1[9]) * ((arg2[8]) * 0x2)); + x351 = ((uint64_t)(arg1[9]) * (arg2[7])); + x352 = ((uint64_t)(arg1[9]) * ((arg2[6]) * 0x2)); + x353 = ((uint64_t)(arg1[9]) * ((arg2[5]) * 0x2)); + x354 = ((uint64_t)(arg1[9]) * ((arg2[4]) * 0x2)); + x355 = ((uint64_t)(arg1[9]) * (arg2[3])); + x356 = ((uint64_t)(arg1[9]) * ((arg2[2]) * 0x2)); + x357 = ((uint64_t)(arg1[9]) * ((arg2[1]) * 0x2)); + x358 = ((uint64_t)(arg1[9]) * (arg2[0])); + x359 = ((uint64_t)(arg1[8]) * ((arg2[14]) * 0x2)); + x360 = ((uint64_t)(arg1[8]) * ((arg2[13]) * 0x2)); + x361 = ((uint64_t)(arg1[8]) * ((arg2[12]) * 0x2)); + x362 = ((uint64_t)(arg1[8]) * ((arg2[11]) * 0x2)); + x363 = ((uint64_t)(arg1[8]) * ((arg2[10]) * 0x2)); + x364 = ((uint64_t)(arg1[8]) * ((arg2[9]) * 0x2)); + x365 = ((uint64_t)(arg1[8]) * ((arg2[8]) * 0x2)); + x366 = ((uint64_t)(arg1[8]) * ((arg2[7]) * 0x2)); + x367 = ((uint64_t)(arg1[8]) * ((arg2[6]) * 0x2)); + x368 = ((uint64_t)(arg1[8]) * ((arg2[5]) * 0x2)); + x369 = ((uint64_t)(arg1[8]) * ((arg2[4]) * 0x2)); + x370 = ((uint64_t)(arg1[8]) * ((arg2[3]) * 0x2)); + x371 = ((uint64_t)(arg1[8]) * ((arg2[2]) * 0x2)); + x372 = ((uint64_t)(arg1[8]) * ((arg2[1]) * 0x2)); + x373 = ((uint64_t)(arg1[8]) * (arg2[0])); + x374 = ((uint64_t)(arg1[7]) * (arg2[15])); + x375 = ((uint64_t)(arg1[7]) * (arg2[14])); + x376 = ((uint64_t)(arg1[7]) * (arg2[13])); + x377 = ((uint64_t)(arg1[7]) * ((arg2[12]) * 0x2)); + x378 = ((uint64_t)(arg1[7]) * (arg2[11])); + x379 = ((uint64_t)(arg1[7]) * (arg2[10])); + x380 = ((uint64_t)(arg1[7]) * (arg2[9])); + x381 = ((uint64_t)(arg1[7]) * ((arg2[8]) * 0x2)); + x382 = ((uint64_t)(arg1[7]) * (arg2[7])); + x383 = ((uint64_t)(arg1[7]) * (arg2[6])); + x384 = ((uint64_t)(arg1[7]) * (arg2[5])); + x385 = ((uint64_t)(arg1[7]) * ((arg2[4]) * 0x2)); + x386 = ((uint64_t)(arg1[7]) * (arg2[3])); + x387 = ((uint64_t)(arg1[7]) * (arg2[2])); + x388 = ((uint64_t)(arg1[7]) * (arg2[1])); + x389 = ((uint64_t)(arg1[7]) * (arg2[0])); + x390 = ((uint64_t)(arg1[6]) * ((arg2[16]) * 0x2)); + x391 = ((uint64_t)(arg1[6]) * (arg2[15])); + x392 = ((uint64_t)(arg1[6]) * (arg2[14])); + x393 = ((uint64_t)(arg1[6]) * ((arg2[13]) * 0x2)); + x394 = ((uint64_t)(arg1[6]) * ((arg2[12]) * 0x2)); + x395 = ((uint64_t)(arg1[6]) * (arg2[11])); + x396 = ((uint64_t)(arg1[6]) * (arg2[10])); + x397 = ((uint64_t)(arg1[6]) * ((arg2[9]) * 0x2)); + x398 = ((uint64_t)(arg1[6]) * ((arg2[8]) * 0x2)); + x399 = ((uint64_t)(arg1[6]) * (arg2[7])); + x400 = ((uint64_t)(arg1[6]) * (arg2[6])); + x401 = ((uint64_t)(arg1[6]) * ((arg2[5]) * 0x2)); + x402 = ((uint64_t)(arg1[6]) * ((arg2[4]) * 0x2)); + x403 = ((uint64_t)(arg1[6]) * (arg2[3])); + x404 = ((uint64_t)(arg1[6]) * (arg2[2])); + x405 = ((uint64_t)(arg1[6]) * ((arg2[1]) * 0x2)); + x406 = ((uint64_t)(arg1[6]) * (arg2[0])); + x407 = ((uint64_t)(arg1[5]) * ((arg2[17]) * 0x2)); + x408 = ((uint64_t)(arg1[5]) * ((arg2[16]) * 0x2)); + x409 = ((uint64_t)(arg1[5]) * (arg2[15])); + x410 = ((uint64_t)(arg1[5]) * ((arg2[14]) * 0x2)); + x411 = ((uint64_t)(arg1[5]) * ((arg2[13]) * 0x2)); + x412 = ((uint64_t)(arg1[5]) * ((arg2[12]) * 0x2)); + x413 = ((uint64_t)(arg1[5]) * (arg2[11])); + x414 = ((uint64_t)(arg1[5]) * ((arg2[10]) * 0x2)); + x415 = ((uint64_t)(arg1[5]) * ((arg2[9]) * 0x2)); + x416 = ((uint64_t)(arg1[5]) * ((arg2[8]) * 0x2)); + x417 = ((uint64_t)(arg1[5]) * (arg2[7])); + x418 = ((uint64_t)(arg1[5]) * ((arg2[6]) * 0x2)); + x419 = ((uint64_t)(arg1[5]) * ((arg2[5]) * 0x2)); + x420 = ((uint64_t)(arg1[5]) * ((arg2[4]) * 0x2)); + x421 = ((uint64_t)(arg1[5]) * (arg2[3])); + x422 = ((uint64_t)(arg1[5]) * ((arg2[2]) * 0x2)); + x423 = ((uint64_t)(arg1[5]) * ((arg2[1]) * 0x2)); + x424 = ((uint64_t)(arg1[5]) * (arg2[0])); + x425 = ((uint64_t)(arg1[4]) * ((arg2[18]) * 0x2)); + x426 = ((uint64_t)(arg1[4]) * ((arg2[17]) * 0x2)); + x427 = ((uint64_t)(arg1[4]) * ((arg2[16]) * 0x2)); + x428 = ((uint64_t)(arg1[4]) * ((arg2[15]) * 0x2)); + x429 = ((uint64_t)(arg1[4]) * ((arg2[14]) * 0x2)); + x430 = ((uint64_t)(arg1[4]) * ((arg2[13]) * 0x2)); + x431 = ((uint64_t)(arg1[4]) * ((arg2[12]) * 0x2)); + x432 = ((uint64_t)(arg1[4]) * ((arg2[11]) * 0x2)); + x433 = ((uint64_t)(arg1[4]) * ((arg2[10]) * 0x2)); + x434 = ((uint64_t)(arg1[4]) * ((arg2[9]) * 0x2)); + x435 = ((uint64_t)(arg1[4]) * ((arg2[8]) * 0x2)); + x436 = ((uint64_t)(arg1[4]) * ((arg2[7]) * 0x2)); + x437 = ((uint64_t)(arg1[4]) * ((arg2[6]) * 0x2)); + x438 = ((uint64_t)(arg1[4]) * ((arg2[5]) * 0x2)); + x439 = ((uint64_t)(arg1[4]) * ((arg2[4]) * 0x2)); + x440 = ((uint64_t)(arg1[4]) * ((arg2[3]) * 0x2)); + x441 = ((uint64_t)(arg1[4]) * ((arg2[2]) * 0x2)); + x442 = ((uint64_t)(arg1[4]) * ((arg2[1]) * 0x2)); + x443 = ((uint64_t)(arg1[4]) * (arg2[0])); + x444 = ((uint64_t)(arg1[3]) * (arg2[19])); + x445 = ((uint64_t)(arg1[3]) * (arg2[18])); + x446 = ((uint64_t)(arg1[3]) * (arg2[17])); + x447 = ((uint64_t)(arg1[3]) * ((arg2[16]) * 0x2)); + x448 = ((uint64_t)(arg1[3]) * (arg2[15])); + x449 = ((uint64_t)(arg1[3]) * (arg2[14])); + x450 = ((uint64_t)(arg1[3]) * (arg2[13])); + x451 = ((uint64_t)(arg1[3]) * ((arg2[12]) * 0x2)); + x452 = ((uint64_t)(arg1[3]) * (arg2[11])); + x453 = ((uint64_t)(arg1[3]) * (arg2[10])); + x454 = ((uint64_t)(arg1[3]) * (arg2[9])); + x455 = ((uint64_t)(arg1[3]) * ((arg2[8]) * 0x2)); + x456 = ((uint64_t)(arg1[3]) * (arg2[7])); + x457 = ((uint64_t)(arg1[3]) * (arg2[6])); + x458 = ((uint64_t)(arg1[3]) * (arg2[5])); + x459 = ((uint64_t)(arg1[3]) * ((arg2[4]) * 0x2)); + x460 = ((uint64_t)(arg1[3]) * (arg2[3])); + x461 = ((uint64_t)(arg1[3]) * (arg2[2])); + x462 = ((uint64_t)(arg1[3]) * (arg2[1])); + x463 = ((uint64_t)(arg1[3]) * (arg2[0])); + x464 = ((uint64_t)(arg1[2]) * ((arg2[20]) * 0x2)); + x465 = ((uint64_t)(arg1[2]) * (arg2[19])); + x466 = ((uint64_t)(arg1[2]) * (arg2[18])); + x467 = ((uint64_t)(arg1[2]) * ((arg2[17]) * 0x2)); + x468 = ((uint64_t)(arg1[2]) * ((arg2[16]) * 0x2)); + x469 = ((uint64_t)(arg1[2]) * (arg2[15])); + x470 = ((uint64_t)(arg1[2]) * (arg2[14])); + x471 = ((uint64_t)(arg1[2]) * ((arg2[13]) * 0x2)); + x472 = ((uint64_t)(arg1[2]) * ((arg2[12]) * 0x2)); + x473 = ((uint64_t)(arg1[2]) * (arg2[11])); + x474 = ((uint64_t)(arg1[2]) * (arg2[10])); + x475 = ((uint64_t)(arg1[2]) * ((arg2[9]) * 0x2)); + x476 = ((uint64_t)(arg1[2]) * ((arg2[8]) * 0x2)); + x477 = ((uint64_t)(arg1[2]) * (arg2[7])); + x478 = ((uint64_t)(arg1[2]) * (arg2[6])); + x479 = ((uint64_t)(arg1[2]) * ((arg2[5]) * 0x2)); + x480 = ((uint64_t)(arg1[2]) * ((arg2[4]) * 0x2)); + x481 = ((uint64_t)(arg1[2]) * (arg2[3])); + x482 = ((uint64_t)(arg1[2]) * (arg2[2])); + x483 = ((uint64_t)(arg1[2]) * ((arg2[1]) * 0x2)); + x484 = ((uint64_t)(arg1[2]) * (arg2[0])); + x485 = ((uint64_t)(arg1[1]) * ((arg2[21]) * 0x2)); + x486 = ((uint64_t)(arg1[1]) * ((arg2[20]) * 0x2)); + x487 = ((uint64_t)(arg1[1]) * (arg2[19])); + x488 = ((uint64_t)(arg1[1]) * ((arg2[18]) * 0x2)); + x489 = ((uint64_t)(arg1[1]) * ((arg2[17]) * 0x2)); + x490 = ((uint64_t)(arg1[1]) * ((arg2[16]) * 0x2)); + x491 = ((uint64_t)(arg1[1]) * (arg2[15])); + x492 = ((uint64_t)(arg1[1]) * ((arg2[14]) * 0x2)); + x493 = ((uint64_t)(arg1[1]) * ((arg2[13]) * 0x2)); + x494 = ((uint64_t)(arg1[1]) * ((arg2[12]) * 0x2)); + x495 = ((uint64_t)(arg1[1]) * (arg2[11])); + x496 = ((uint64_t)(arg1[1]) * ((arg2[10]) * 0x2)); + x497 = ((uint64_t)(arg1[1]) * ((arg2[9]) * 0x2)); + x498 = ((uint64_t)(arg1[1]) * ((arg2[8]) * 0x2)); + x499 = ((uint64_t)(arg1[1]) * (arg2[7])); + x500 = ((uint64_t)(arg1[1]) * ((arg2[6]) * 0x2)); + x501 = ((uint64_t)(arg1[1]) * ((arg2[5]) * 0x2)); + x502 = ((uint64_t)(arg1[1]) * ((arg2[4]) * 0x2)); + x503 = ((uint64_t)(arg1[1]) * (arg2[3])); + x504 = ((uint64_t)(arg1[1]) * ((arg2[2]) * 0x2)); + x505 = ((uint64_t)(arg1[1]) * ((arg2[1]) * 0x2)); + x506 = ((uint64_t)(arg1[1]) * (arg2[0])); + x507 = ((uint64_t)(arg1[0]) * (arg2[22])); + x508 = ((uint64_t)(arg1[0]) * (arg2[21])); + x509 = ((uint64_t)(arg1[0]) * (arg2[20])); + x510 = ((uint64_t)(arg1[0]) * (arg2[19])); + x511 = ((uint64_t)(arg1[0]) * (arg2[18])); + x512 = ((uint64_t)(arg1[0]) * (arg2[17])); + x513 = ((uint64_t)(arg1[0]) * (arg2[16])); + x514 = ((uint64_t)(arg1[0]) * (arg2[15])); + x515 = ((uint64_t)(arg1[0]) * (arg2[14])); + x516 = ((uint64_t)(arg1[0]) * (arg2[13])); + x517 = ((uint64_t)(arg1[0]) * (arg2[12])); + x518 = ((uint64_t)(arg1[0]) * (arg2[11])); + x519 = ((uint64_t)(arg1[0]) * (arg2[10])); + x520 = ((uint64_t)(arg1[0]) * (arg2[9])); + x521 = ((uint64_t)(arg1[0]) * (arg2[8])); + x522 = ((uint64_t)(arg1[0]) * (arg2[7])); + x523 = ((uint64_t)(arg1[0]) * (arg2[6])); + x524 = ((uint64_t)(arg1[0]) * (arg2[5])); + x525 = ((uint64_t)(arg1[0]) * (arg2[4])); + x526 = ((uint64_t)(arg1[0]) * (arg2[3])); + x527 = ((uint64_t)(arg1[0]) * (arg2[2])); + x528 = ((uint64_t)(arg1[0]) * (arg2[1])); + x529 = ((uint64_t)(arg1[0]) * (arg2[0])); + x530 = (x529 + + (x253 + + (x252 + + (x250 + + (x247 + + (x243 + + (x238 + + (x232 + + (x225 + + (x217 + + (x208 + + (x198 + + (x187 + + (x175 + + (x162 + + (x148 + + (x133 + + (x117 + + (x100 + + (x82 + (x63 + (x43 + x22)))))))))))))))))))))); + x531 = (x530 >> 23); + x532 = (uint32_t)(x530 & UINT32_C(0x7fffff)); + x533 = + (x507 + + (x485 + + (x464 + + (x444 + + (x425 + + (x407 + + (x390 + + (x374 + + (x359 + + (x345 + + (x332 + + (x320 + + (x309 + + (x299 + + (x290 + + (x282 + + (x275 + + (x269 + + (x264 + + (x260 + (x257 + (x255 + x254)))))))))))))))))))))); + x534 = (x508 + + (x486 + + (x465 + + (x445 + + (x426 + + (x408 + + (x391 + + (x375 + + (x360 + + (x346 + + (x333 + + (x321 + + (x310 + + (x300 + + (x291 + + (x283 + + (x276 + + (x270 + + (x265 + + (x261 + (x258 + (x256 + x1)))))))))))))))))))))); + x535 = (x509 + + (x487 + + (x466 + + (x446 + + (x427 + + (x409 + + (x392 + + (x376 + + (x361 + + (x347 + + (x334 + + (x322 + + (x311 + + (x301 + + (x292 + + (x284 + + (x277 + + (x271 + + (x266 + + (x262 + (x259 + (x23 + x2)))))))))))))))))))))); + x536 = (x510 + + (x488 + + (x467 + + (x447 + + (x428 + + (x410 + + (x393 + + (x377 + + (x362 + + (x348 + + (x335 + + (x323 + + (x312 + + (x302 + + (x293 + + (x285 + + (x278 + + (x272 + + (x267 + + (x263 + (x44 + (x24 + x3)))))))))))))))))))))); + x537 = + (x511 + + (x489 + + (x468 + + (x448 + + (x429 + + (x411 + + (x394 + + (x378 + + (x363 + + (x349 + + (x336 + + (x324 + + (x313 + + (x303 + + (x294 + + (x286 + + (x279 + + (x273 + + (x268 + (x64 + (x45 + (x25 + x4)))))))))))))))))))))); + x538 = + (x512 + + (x490 + + (x469 + + (x449 + + (x430 + + (x412 + + (x395 + + (x379 + + (x364 + + (x350 + + (x337 + + (x325 + + (x314 + + (x304 + + (x295 + + (x287 + + (x280 + + (x274 + + (x83 + (x65 + (x46 + (x26 + x5)))))))))))))))))))))); + x539 = + (x513 + + (x491 + + (x470 + + (x450 + + (x431 + + (x413 + + (x396 + + (x380 + + (x365 + + (x351 + + (x338 + + (x326 + + (x315 + + (x305 + + (x296 + + (x288 + + (x281 + + (x101 + + (x84 + (x66 + (x47 + (x27 + x6)))))))))))))))))))))); + x540 = + (x514 + + (x492 + + (x471 + + (x451 + + (x432 + + (x414 + + (x397 + + (x381 + + (x366 + + (x352 + + (x339 + + (x327 + + (x316 + + (x306 + + (x297 + + (x289 + + (x118 + + (x102 + + (x85 + (x67 + (x48 + (x28 + x7)))))))))))))))))))))); + x541 = + (x515 + + (x493 + + (x472 + + (x452 + + (x433 + + (x415 + + (x398 + + (x382 + + (x367 + + (x353 + + (x340 + + (x328 + + (x317 + + (x307 + + (x298 + + (x134 + + (x119 + + (x103 + + (x86 + (x68 + (x49 + (x29 + x8)))))))))))))))))))))); + x542 = + (x516 + + (x494 + + (x473 + + (x453 + + (x434 + + (x416 + + (x399 + + (x383 + + (x368 + + (x354 + + (x341 + + (x329 + + (x318 + + (x308 + + (x149 + + (x135 + + (x120 + + (x104 + + (x87 + (x69 + (x50 + (x30 + x9)))))))))))))))))))))); + x543 = + (x517 + + (x495 + + (x474 + + (x454 + + (x435 + + (x417 + + (x400 + + (x384 + + (x369 + + (x355 + + (x342 + + (x330 + + (x319 + + (x163 + + (x150 + + (x136 + + (x121 + + (x105 + + (x88 + (x70 + (x51 + (x31 + x10)))))))))))))))))))))); + x544 = + (x518 + + (x496 + + (x475 + + (x455 + + (x436 + + (x418 + + (x401 + + (x385 + + (x370 + + (x356 + + (x343 + + (x331 + + (x176 + + (x164 + + (x151 + + (x137 + + (x122 + + (x106 + + (x89 + (x71 + (x52 + (x32 + x11)))))))))))))))))))))); + x545 = + (x519 + + (x497 + + (x476 + + (x456 + + (x437 + + (x419 + + (x402 + + (x386 + + (x371 + + (x357 + + (x344 + + (x188 + + (x177 + + (x165 + + (x152 + + (x138 + + (x123 + + (x107 + + (x90 + (x72 + (x53 + (x33 + x12)))))))))))))))))))))); + x546 = + (x520 + + (x498 + + (x477 + + (x457 + + (x438 + + (x420 + + (x403 + + (x387 + + (x372 + + (x358 + + (x199 + + (x189 + + (x178 + + (x166 + + (x153 + + (x139 + + (x124 + + (x108 + + (x91 + (x73 + (x54 + (x34 + x13)))))))))))))))))))))); + x547 = + (x521 + + (x499 + + (x478 + + (x458 + + (x439 + + (x421 + + (x404 + + (x388 + + (x373 + + (x209 + + (x200 + + (x190 + + (x179 + + (x167 + + (x154 + + (x140 + + (x125 + + (x109 + + (x92 + (x74 + (x55 + (x35 + x14)))))))))))))))))))))); + x548 = + (x522 + + (x500 + + (x479 + + (x459 + + (x440 + + (x422 + + (x405 + + (x389 + + (x218 + + (x210 + + (x201 + + (x191 + + (x180 + + (x168 + + (x155 + + (x141 + + (x126 + + (x110 + + (x93 + (x75 + (x56 + (x36 + x15)))))))))))))))))))))); + x549 = + (x523 + + (x501 + + (x480 + + (x460 + + (x441 + + (x423 + + (x406 + + (x226 + + (x219 + + (x211 + + (x202 + + (x192 + + (x181 + + (x169 + + (x156 + + (x142 + + (x127 + + (x111 + + (x94 + (x76 + (x57 + (x37 + x16)))))))))))))))))))))); + x550 = + (x524 + + (x502 + + (x481 + + (x461 + + (x442 + + (x424 + + (x233 + + (x227 + + (x220 + + (x212 + + (x203 + + (x193 + + (x182 + + (x170 + + (x157 + + (x143 + + (x128 + + (x112 + + (x95 + (x77 + (x58 + (x38 + x17)))))))))))))))))))))); + x551 = + (x525 + + (x503 + + (x482 + + (x462 + + (x443 + + (x239 + + (x234 + + (x228 + + (x221 + + (x213 + + (x204 + + (x194 + + (x183 + + (x171 + + (x158 + + (x144 + + (x129 + + (x113 + + (x96 + (x78 + (x59 + (x39 + x18)))))))))))))))))))))); + x552 = + (x526 + + (x504 + + (x483 + + (x463 + + (x244 + + (x240 + + (x235 + + (x229 + + (x222 + + (x214 + + (x205 + + (x195 + + (x184 + + (x172 + + (x159 + + (x145 + + (x130 + + (x114 + + (x97 + (x79 + (x60 + (x40 + x19)))))))))))))))))))))); + x553 = + (x527 + + (x505 + + (x484 + + (x248 + + (x245 + + (x241 + + (x236 + + (x230 + + (x223 + + (x215 + + (x206 + + (x196 + + (x185 + + (x173 + + (x160 + + (x146 + + (x131 + + (x115 + + (x98 + (x80 + (x61 + (x41 + x20)))))))))))))))))))))); + x554 = + (x528 + + (x506 + + (x251 + + (x249 + + (x246 + + (x242 + + (x237 + + (x231 + + (x224 + + (x216 + + (x207 + + (x197 + + (x186 + + (x174 + + (x161 + + (x147 + + (x132 + + (x116 + + (x99 + (x81 + (x62 + (x42 + x21)))))))))))))))))))))); + x555 = (x531 + x554); + x556 = (x555 >> 22); + x557 = (uint32_t)(x555 & UINT32_C(0x3fffff)); + x558 = (x556 + x553); + x559 = (x558 >> 22); + x560 = (uint32_t)(x558 & UINT32_C(0x3fffff)); + x561 = (x559 + x552); + x562 = (x561 >> 23); + x563 = (uint32_t)(x561 & UINT32_C(0x7fffff)); + x564 = (x562 + x551); + x565 = (x564 >> 22); + x566 = (uint32_t)(x564 & UINT32_C(0x3fffff)); + x567 = (x565 + x550); + x568 = (x567 >> 22); + x569 = (uint32_t)(x567 & UINT32_C(0x3fffff)); + x570 = (x568 + x549); + x571 = (x570 >> 22); + x572 = (uint32_t)(x570 & UINT32_C(0x3fffff)); + x573 = (x571 + x548); + x574 = (x573 >> 23); + x575 = (uint32_t)(x573 & UINT32_C(0x7fffff)); + x576 = (x574 + x547); + x577 = (x576 >> 22); + x578 = (uint32_t)(x576 & UINT32_C(0x3fffff)); + x579 = (x577 + x546); + x580 = (x579 >> 22); + x581 = (uint32_t)(x579 & UINT32_C(0x3fffff)); + x582 = (x580 + x545); + x583 = (x582 >> 22); + x584 = (uint32_t)(x582 & UINT32_C(0x3fffff)); + x585 = (x583 + x544); + x586 = (x585 >> 23); + x587 = (uint32_t)(x585 & UINT32_C(0x7fffff)); + x588 = (x586 + x543); + x589 = (x588 >> 22); + x590 = (uint32_t)(x588 & UINT32_C(0x3fffff)); + x591 = (x589 + x542); + x592 = (x591 >> 22); + x593 = (uint32_t)(x591 & UINT32_C(0x3fffff)); + x594 = (x592 + x541); + x595 = (x594 >> 22); + x596 = (uint32_t)(x594 & UINT32_C(0x3fffff)); + x597 = (x595 + x540); + x598 = (x597 >> 23); + x599 = (uint32_t)(x597 & UINT32_C(0x7fffff)); + x600 = (x598 + x539); + x601 = (x600 >> 22); + x602 = (uint32_t)(x600 & UINT32_C(0x3fffff)); + x603 = (x601 + x538); + x604 = (x603 >> 22); + x605 = (uint32_t)(x603 & UINT32_C(0x3fffff)); + x606 = (x604 + x537); + x607 = (x606 >> 22); + x608 = (uint32_t)(x606 & UINT32_C(0x3fffff)); + x609 = (x607 + x536); + x610 = (x609 >> 23); + x611 = (uint32_t)(x609 & UINT32_C(0x7fffff)); + x612 = (x610 + x535); + x613 = (x612 >> 22); + x614 = (uint32_t)(x612 & UINT32_C(0x3fffff)); + x615 = (x613 + x534); + x616 = (x615 >> 22); + x617 = (uint32_t)(x615 & UINT32_C(0x3fffff)); + x618 = (x616 + x533); + x619 = (uint32_t)(x618 >> 22); + x620 = (uint32_t)(x618 & UINT32_C(0x3fffff)); + x621 = ((uint64_t)UINT16_C(0x239) * x619); + x622 = (x532 + x621); + x623 = (uint32_t)(x622 >> 23); + x624 = (uint32_t)(x622 & UINT32_C(0x7fffff)); + x625 = (x623 + x557); + x626 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x625 >> 22); + x627 = (x625 & UINT32_C(0x3fffff)); + x628 = (x626 + x560); + out1[0] = x624; + out1[1] = x627; + out1[2] = x628; + out1[3] = x563; + out1[4] = x566; + out1[5] = x569; + out1[6] = x572; + out1[7] = x575; + out1[8] = x578; + out1[9] = x581; + out1[10] = x584; + out1[11] = x587; + out1[12] = x590; + out1[13] = x593; + out1[14] = x596; + out1[15] = x599; + out1[16] = x602; + out1[17] = x605; + out1[18] = x608; + out1[19] = x611; + out1[20] = x614; + out1[21] = x617; + out1[22] = x620; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square squares a field element and reduces the result. + * Postconditions: + * eval out1 mod m = (eval arg1 * eval arg1) mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332]] + * Output Bounds: + * out1: [[0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square( + uint32_t out1[23], const uint32_t arg1[23]) { + uint64_t x1; + uint64_t x2; + uint32_t x3; + uint64_t x4; + uint64_t x5; + uint32_t x6; + uint64_t x7; + uint64_t x8; + uint32_t x9; + uint64_t x10; + uint64_t x11; + uint32_t x12; + uint64_t x13; + uint64_t x14; + uint32_t x15; + uint64_t x16; + uint64_t x17; + uint32_t x18; + uint64_t x19; + uint64_t x20; + uint32_t x21; + uint64_t x22; + uint64_t x23; + uint32_t x24; + uint64_t x25; + uint64_t x26; + uint32_t x27; + uint64_t x28; + uint64_t x29; + uint32_t x30; + uint64_t x31; + uint64_t x32; + uint32_t x33; + uint32_t x34; + uint32_t x35; + uint32_t x36; + uint32_t x37; + uint32_t x38; + uint32_t x39; + uint32_t x40; + uint32_t x41; + uint32_t x42; + uint32_t x43; + uint32_t x44; + uint64_t x45; + uint64_t x46; + uint64_t x47; + uint64_t x48; + uint64_t x49; + uint64_t x50; + uint64_t x51; + uint64_t x52; + uint64_t x53; + uint64_t x54; + uint64_t x55; + uint64_t x56; + uint64_t x57; + uint64_t x58; + uint64_t x59; + uint64_t x60; + uint64_t x61; + uint64_t x62; + uint64_t x63; + uint64_t x64; + uint64_t x65; + uint64_t x66; + uint64_t x67; + uint64_t x68; + uint64_t x69; + uint64_t x70; + uint64_t x71; + uint64_t x72; + uint64_t x73; + uint64_t x74; + uint64_t x75; + uint64_t x76; + uint64_t x77; + uint64_t x78; + uint64_t x79; + uint64_t x80; + uint64_t x81; + uint64_t x82; + uint64_t x83; + uint64_t x84; + uint64_t x85; + uint64_t x86; + uint64_t x87; + uint64_t x88; + uint64_t x89; + uint64_t x90; + uint64_t x91; + uint64_t x92; + uint64_t x93; + uint64_t x94; + uint64_t x95; + uint64_t x96; + uint64_t x97; + uint64_t x98; + uint64_t x99; + uint64_t x100; + uint64_t x101; + uint64_t x102; + uint64_t x103; + uint64_t x104; + uint64_t x105; + uint64_t x106; + uint64_t x107; + uint64_t x108; + uint64_t x109; + uint64_t x110; + uint64_t x111; + uint64_t x112; + uint64_t x113; + uint64_t x114; + uint64_t x115; + uint64_t x116; + uint64_t x117; + uint64_t x118; + uint64_t x119; + uint64_t x120; + uint64_t x121; + uint64_t x122; + uint64_t x123; + uint64_t x124; + uint64_t x125; + uint64_t x126; + uint64_t x127; + uint64_t x128; + uint64_t x129; + uint64_t x130; + uint64_t x131; + uint64_t x132; + uint64_t x133; + uint64_t x134; + uint64_t x135; + uint64_t x136; + uint64_t x137; + uint64_t x138; + uint64_t x139; + uint64_t x140; + uint64_t x141; + uint64_t x142; + uint64_t x143; + uint64_t x144; + uint64_t x145; + uint64_t x146; + uint64_t x147; + uint64_t x148; + uint64_t x149; + uint64_t x150; + uint64_t x151; + uint64_t x152; + uint64_t x153; + uint64_t x154; + uint64_t x155; + uint64_t x156; + uint64_t x157; + uint64_t x158; + uint64_t x159; + uint64_t x160; + uint64_t x161; + uint64_t x162; + uint64_t x163; + uint64_t x164; + uint64_t x165; + uint64_t x166; + uint64_t x167; + uint64_t x168; + uint64_t x169; + uint64_t x170; + uint64_t x171; + uint64_t x172; + uint64_t x173; + uint64_t x174; + uint64_t x175; + uint64_t x176; + uint64_t x177; + uint64_t x178; + uint64_t x179; + uint64_t x180; + uint64_t x181; + uint64_t x182; + uint64_t x183; + uint64_t x184; + uint64_t x185; + uint64_t x186; + uint64_t x187; + uint64_t x188; + uint64_t x189; + uint64_t x190; + uint64_t x191; + uint64_t x192; + uint64_t x193; + uint64_t x194; + uint64_t x195; + uint64_t x196; + uint64_t x197; + uint64_t x198; + uint64_t x199; + uint64_t x200; + uint64_t x201; + uint64_t x202; + uint64_t x203; + uint64_t x204; + uint64_t x205; + uint64_t x206; + uint64_t x207; + uint64_t x208; + uint64_t x209; + uint64_t x210; + uint64_t x211; + uint64_t x212; + uint64_t x213; + uint64_t x214; + uint64_t x215; + uint64_t x216; + uint64_t x217; + uint64_t x218; + uint64_t x219; + uint64_t x220; + uint64_t x221; + uint64_t x222; + uint64_t x223; + uint64_t x224; + uint64_t x225; + uint64_t x226; + uint64_t x227; + uint64_t x228; + uint64_t x229; + uint64_t x230; + uint64_t x231; + uint64_t x232; + uint64_t x233; + uint64_t x234; + uint64_t x235; + uint64_t x236; + uint64_t x237; + uint64_t x238; + uint64_t x239; + uint64_t x240; + uint64_t x241; + uint64_t x242; + uint64_t x243; + uint64_t x244; + uint64_t x245; + uint64_t x246; + uint64_t x247; + uint64_t x248; + uint64_t x249; + uint64_t x250; + uint64_t x251; + uint64_t x252; + uint64_t x253; + uint64_t x254; + uint64_t x255; + uint64_t x256; + uint64_t x257; + uint64_t x258; + uint64_t x259; + uint64_t x260; + uint64_t x261; + uint64_t x262; + uint64_t x263; + uint64_t x264; + uint64_t x265; + uint64_t x266; + uint64_t x267; + uint64_t x268; + uint64_t x269; + uint64_t x270; + uint64_t x271; + uint64_t x272; + uint64_t x273; + uint64_t x274; + uint64_t x275; + uint64_t x276; + uint64_t x277; + uint64_t x278; + uint64_t x279; + uint64_t x280; + uint64_t x281; + uint64_t x282; + uint64_t x283; + uint64_t x284; + uint64_t x285; + uint64_t x286; + uint64_t x287; + uint64_t x288; + uint64_t x289; + uint64_t x290; + uint64_t x291; + uint64_t x292; + uint64_t x293; + uint64_t x294; + uint64_t x295; + uint64_t x296; + uint64_t x297; + uint64_t x298; + uint64_t x299; + uint64_t x300; + uint64_t x301; + uint64_t x302; + uint64_t x303; + uint64_t x304; + uint64_t x305; + uint64_t x306; + uint64_t x307; + uint64_t x308; + uint64_t x309; + uint64_t x310; + uint64_t x311; + uint64_t x312; + uint64_t x313; + uint64_t x314; + uint64_t x315; + uint64_t x316; + uint64_t x317; + uint64_t x318; + uint64_t x319; + uint64_t x320; + uint64_t x321; + uint64_t x322; + uint32_t x323; + uint64_t x324; + uint64_t x325; + uint64_t x326; + uint64_t x327; + uint64_t x328; + uint64_t x329; + uint64_t x330; + uint64_t x331; + uint64_t x332; + uint64_t x333; + uint64_t x334; + uint64_t x335; + uint64_t x336; + uint64_t x337; + uint64_t x338; + uint64_t x339; + uint64_t x340; + uint64_t x341; + uint64_t x342; + uint64_t x343; + uint64_t x344; + uint64_t x345; + uint64_t x346; + uint64_t x347; + uint32_t x348; + uint64_t x349; + uint64_t x350; + uint32_t x351; + uint64_t x352; + uint64_t x353; + uint32_t x354; + uint64_t x355; + uint64_t x356; + uint32_t x357; + uint64_t x358; + uint64_t x359; + uint32_t x360; + uint64_t x361; + uint64_t x362; + uint32_t x363; + uint64_t x364; + uint64_t x365; + uint32_t x366; + uint64_t x367; + uint64_t x368; + uint32_t x369; + uint64_t x370; + uint64_t x371; + uint32_t x372; + uint64_t x373; + uint64_t x374; + uint32_t x375; + uint64_t x376; + uint64_t x377; + uint32_t x378; + uint64_t x379; + uint64_t x380; + uint32_t x381; + uint64_t x382; + uint64_t x383; + uint32_t x384; + uint64_t x385; + uint64_t x386; + uint32_t x387; + uint64_t x388; + uint64_t x389; + uint32_t x390; + uint64_t x391; + uint64_t x392; + uint32_t x393; + uint64_t x394; + uint64_t x395; + uint32_t x396; + uint64_t x397; + uint64_t x398; + uint32_t x399; + uint64_t x400; + uint64_t x401; + uint32_t x402; + uint64_t x403; + uint64_t x404; + uint32_t x405; + uint64_t x406; + uint64_t x407; + uint32_t x408; + uint64_t x409; + uint32_t x410; + uint32_t x411; + uint64_t x412; + uint64_t x413; + uint32_t x414; + uint32_t x415; + uint32_t x416; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x417; + uint32_t x418; + uint32_t x419; + x1 = ((uint64_t)(arg1[22]) * UINT16_C(0x239)); + x2 = (x1 * 0x2); + x3 = ((arg1[22]) * 0x2); + x4 = ((uint64_t)(arg1[21]) * UINT16_C(0x239)); + x5 = (x4 * 0x2); + x6 = ((arg1[21]) * 0x2); + x7 = ((uint64_t)(arg1[20]) * UINT16_C(0x239)); + x8 = (x7 * 0x2); + x9 = ((arg1[20]) * 0x2); + x10 = ((uint64_t)(arg1[19]) * UINT16_C(0x239)); + x11 = (x10 * 0x2); + x12 = ((arg1[19]) * 0x2); + x13 = ((uint64_t)(arg1[18]) * UINT16_C(0x239)); + x14 = (x13 * 0x2); + x15 = ((arg1[18]) * 0x2); + x16 = ((uint64_t)(arg1[17]) * UINT16_C(0x239)); + x17 = (x16 * 0x2); + x18 = ((arg1[17]) * 0x2); + x19 = ((uint64_t)(arg1[16]) * UINT16_C(0x239)); + x20 = (x19 * 0x2); + x21 = ((arg1[16]) * 0x2); + x22 = ((uint64_t)(arg1[15]) * UINT16_C(0x239)); + x23 = (x22 * 0x2); + x24 = ((arg1[15]) * 0x2); + x25 = ((uint64_t)(arg1[14]) * UINT16_C(0x239)); + x26 = (x25 * 0x2); + x27 = ((arg1[14]) * 0x2); + x28 = ((uint64_t)(arg1[13]) * UINT16_C(0x239)); + x29 = (x28 * 0x2); + x30 = ((arg1[13]) * 0x2); + x31 = ((uint64_t)(arg1[12]) * UINT16_C(0x239)); + x32 = (x31 * 0x2); + x33 = ((arg1[12]) * 0x2); + x34 = ((arg1[11]) * 0x2); + x35 = ((arg1[10]) * 0x2); + x36 = ((arg1[9]) * 0x2); + x37 = ((arg1[8]) * 0x2); + x38 = ((arg1[7]) * 0x2); + x39 = ((arg1[6]) * 0x2); + x40 = ((arg1[5]) * 0x2); + x41 = ((arg1[4]) * 0x2); + x42 = ((arg1[3]) * 0x2); + x43 = ((arg1[2]) * 0x2); + x44 = ((arg1[1]) * 0x2); + x45 = ((arg1[22]) * x1); + x46 = ((arg1[21]) * x2); + x47 = ((arg1[21]) * (x4 * 0x2)); + x48 = ((arg1[20]) * (x2 * 0x2)); + x49 = ((arg1[20]) * (x5 * 0x2)); + x50 = ((arg1[20]) * (x7 * 0x2)); + x51 = ((arg1[19]) * x2); + x52 = ((arg1[19]) * x5); + x53 = ((arg1[19]) * x8); + x54 = ((arg1[19]) * x10); + x55 = ((arg1[18]) * x2); + x56 = ((arg1[18]) * x5); + x57 = ((arg1[18]) * (x8 * 0x2)); + x58 = ((arg1[18]) * x11); + x59 = ((arg1[18]) * x13); + x60 = ((arg1[17]) * x2); + x61 = ((arg1[17]) * (x5 * 0x2)); + x62 = ((arg1[17]) * (x8 * 0x2)); + x63 = ((arg1[17]) * x11); + x64 = ((arg1[17]) * x14); + x65 = ((arg1[17]) * (x16 * 0x2)); + x66 = ((arg1[16]) * (x2 * 0x2)); + x67 = ((arg1[16]) * (x5 * 0x2)); + x68 = ((arg1[16]) * (x8 * 0x2)); + x69 = ((arg1[16]) * x11); + x70 = ((arg1[16]) * (x14 * 0x2)); + x71 = ((arg1[16]) * (x17 * 0x2)); + x72 = ((arg1[16]) * (x19 * 0x2)); + x73 = ((arg1[15]) * x2); + x74 = ((arg1[15]) * x5); + x75 = ((arg1[15]) * x8); + x76 = ((arg1[15]) * x11); + x77 = ((arg1[15]) * x14); + x78 = ((arg1[15]) * x17); + x79 = ((arg1[15]) * x20); + x80 = ((arg1[15]) * x22); + x81 = ((arg1[14]) * x2); + x82 = ((arg1[14]) * x5); + x83 = ((arg1[14]) * (x8 * 0x2)); + x84 = ((arg1[14]) * x11); + x85 = ((arg1[14]) * x14); + x86 = ((arg1[14]) * x17); + x87 = ((arg1[14]) * (x20 * 0x2)); + x88 = ((arg1[14]) * x23); + x89 = ((arg1[14]) * x25); + x90 = ((arg1[13]) * x2); + x91 = ((arg1[13]) * (x5 * 0x2)); + x92 = ((arg1[13]) * (x8 * 0x2)); + x93 = ((arg1[13]) * x11); + x94 = ((arg1[13]) * x14); + x95 = ((arg1[13]) * (x17 * 0x2)); + x96 = ((arg1[13]) * (x20 * 0x2)); + x97 = ((arg1[13]) * x23); + x98 = ((arg1[13]) * x26); + x99 = ((arg1[13]) * (x28 * 0x2)); + x100 = ((arg1[12]) * (x2 * 0x2)); + x101 = ((arg1[12]) * (x5 * 0x2)); + x102 = ((arg1[12]) * (x8 * 0x2)); + x103 = ((arg1[12]) * x11); + x104 = ((arg1[12]) * (x14 * 0x2)); + x105 = ((arg1[12]) * (x17 * 0x2)); + x106 = ((arg1[12]) * (x20 * 0x2)); + x107 = ((arg1[12]) * x23); + x108 = ((arg1[12]) * (x26 * 0x2)); + x109 = ((arg1[12]) * (x29 * 0x2)); + x110 = ((arg1[12]) * (x31 * 0x2)); + x111 = ((arg1[11]) * x2); + x112 = ((arg1[11]) * x5); + x113 = ((arg1[11]) * x8); + x114 = ((arg1[11]) * x11); + x115 = ((arg1[11]) * x14); + x116 = ((arg1[11]) * x17); + x117 = ((arg1[11]) * x20); + x118 = ((arg1[11]) * x23); + x119 = ((arg1[11]) * x26); + x120 = ((arg1[11]) * x29); + x121 = ((arg1[11]) * (x32 * 0x2)); + x122 = ((uint64_t)(arg1[11]) * (arg1[11])); + x123 = ((arg1[10]) * x2); + x124 = ((arg1[10]) * x5); + x125 = ((arg1[10]) * (x8 * 0x2)); + x126 = ((arg1[10]) * x11); + x127 = ((arg1[10]) * x14); + x128 = ((arg1[10]) * x17); + x129 = ((arg1[10]) * (x20 * 0x2)); + x130 = ((arg1[10]) * x23); + x131 = ((arg1[10]) * x26); + x132 = ((arg1[10]) * (x29 * 0x2)); + x133 = ((uint64_t)(arg1[10]) * (x33 * 0x2)); + x134 = ((uint64_t)(arg1[10]) * x34); + x135 = ((uint64_t)(arg1[10]) * (arg1[10])); + x136 = ((arg1[9]) * x2); + x137 = ((arg1[9]) * (x5 * 0x2)); + x138 = ((arg1[9]) * (x8 * 0x2)); + x139 = ((arg1[9]) * x11); + x140 = ((arg1[9]) * x14); + x141 = ((arg1[9]) * (x17 * 0x2)); + x142 = ((arg1[9]) * (x20 * 0x2)); + x143 = ((arg1[9]) * x23); + x144 = ((arg1[9]) * (x26 * 0x2)); + x145 = ((uint64_t)(arg1[9]) * (x30 * 0x2)); + x146 = ((uint64_t)(arg1[9]) * (x33 * 0x2)); + x147 = ((uint64_t)(arg1[9]) * x34); + x148 = ((uint64_t)(arg1[9]) * (x35 * 0x2)); + x149 = ((uint64_t)(arg1[9]) * ((arg1[9]) * 0x2)); + x150 = ((arg1[8]) * (x2 * 0x2)); + x151 = ((arg1[8]) * (x5 * 0x2)); + x152 = ((arg1[8]) * (x8 * 0x2)); + x153 = ((arg1[8]) * x11); + x154 = ((arg1[8]) * (x14 * 0x2)); + x155 = ((arg1[8]) * (x17 * 0x2)); + x156 = ((arg1[8]) * (x20 * 0x2)); + x157 = ((arg1[8]) * (x23 * 0x2)); + x158 = ((uint64_t)(arg1[8]) * (x27 * 0x2)); + x159 = ((uint64_t)(arg1[8]) * (x30 * 0x2)); + x160 = ((uint64_t)(arg1[8]) * (x33 * 0x2)); + x161 = ((uint64_t)(arg1[8]) * (x34 * 0x2)); + x162 = ((uint64_t)(arg1[8]) * (x35 * 0x2)); + x163 = ((uint64_t)(arg1[8]) * (x36 * 0x2)); + x164 = ((uint64_t)(arg1[8]) * ((arg1[8]) * 0x2)); + x165 = ((arg1[7]) * x2); + x166 = ((arg1[7]) * x5); + x167 = ((arg1[7]) * x8); + x168 = ((arg1[7]) * x11); + x169 = ((arg1[7]) * x14); + x170 = ((arg1[7]) * x17); + x171 = ((arg1[7]) * (x20 * 0x2)); + x172 = ((uint64_t)(arg1[7]) * x24); + x173 = ((uint64_t)(arg1[7]) * x27); + x174 = ((uint64_t)(arg1[7]) * x30); + x175 = ((uint64_t)(arg1[7]) * (x33 * 0x2)); + x176 = ((uint64_t)(arg1[7]) * x34); + x177 = ((uint64_t)(arg1[7]) * x35); + x178 = ((uint64_t)(arg1[7]) * x36); + x179 = ((uint64_t)(arg1[7]) * (x37 * 0x2)); + x180 = ((uint64_t)(arg1[7]) * (arg1[7])); + x181 = ((arg1[6]) * x2); + x182 = ((arg1[6]) * x5); + x183 = ((arg1[6]) * (x8 * 0x2)); + x184 = ((arg1[6]) * x11); + x185 = ((arg1[6]) * x14); + x186 = ((arg1[6]) * (x17 * 0x2)); + x187 = ((uint64_t)(arg1[6]) * (x21 * 0x2)); + x188 = ((uint64_t)(arg1[6]) * x24); + x189 = ((uint64_t)(arg1[6]) * x27); + x190 = ((uint64_t)(arg1[6]) * (x30 * 0x2)); + x191 = ((uint64_t)(arg1[6]) * (x33 * 0x2)); + x192 = ((uint64_t)(arg1[6]) * x34); + x193 = ((uint64_t)(arg1[6]) * x35); + x194 = ((uint64_t)(arg1[6]) * (x36 * 0x2)); + x195 = ((uint64_t)(arg1[6]) * (x37 * 0x2)); + x196 = ((uint64_t)(arg1[6]) * x38); + x197 = ((uint64_t)(arg1[6]) * (arg1[6])); + x198 = ((arg1[5]) * x2); + x199 = ((arg1[5]) * (x5 * 0x2)); + x200 = ((arg1[5]) * (x8 * 0x2)); + x201 = ((arg1[5]) * x11); + x202 = ((arg1[5]) * (x14 * 0x2)); + x203 = ((uint64_t)(arg1[5]) * (x18 * 0x2)); + x204 = ((uint64_t)(arg1[5]) * (x21 * 0x2)); + x205 = ((uint64_t)(arg1[5]) * x24); + x206 = ((uint64_t)(arg1[5]) * (x27 * 0x2)); + x207 = ((uint64_t)(arg1[5]) * (x30 * 0x2)); + x208 = ((uint64_t)(arg1[5]) * (x33 * 0x2)); + x209 = ((uint64_t)(arg1[5]) * x34); + x210 = ((uint64_t)(arg1[5]) * (x35 * 0x2)); + x211 = ((uint64_t)(arg1[5]) * (x36 * 0x2)); + x212 = ((uint64_t)(arg1[5]) * (x37 * 0x2)); + x213 = ((uint64_t)(arg1[5]) * x38); + x214 = ((uint64_t)(arg1[5]) * (x39 * 0x2)); + x215 = ((uint64_t)(arg1[5]) * ((arg1[5]) * 0x2)); + x216 = ((arg1[4]) * (x2 * 0x2)); + x217 = ((arg1[4]) * (x5 * 0x2)); + x218 = ((arg1[4]) * (x8 * 0x2)); + x219 = ((arg1[4]) * (x11 * 0x2)); + x220 = ((uint64_t)(arg1[4]) * (x15 * 0x2)); + x221 = ((uint64_t)(arg1[4]) * (x18 * 0x2)); + x222 = ((uint64_t)(arg1[4]) * (x21 * 0x2)); + x223 = ((uint64_t)(arg1[4]) * (x24 * 0x2)); + x224 = ((uint64_t)(arg1[4]) * (x27 * 0x2)); + x225 = ((uint64_t)(arg1[4]) * (x30 * 0x2)); + x226 = ((uint64_t)(arg1[4]) * (x33 * 0x2)); + x227 = ((uint64_t)(arg1[4]) * (x34 * 0x2)); + x228 = ((uint64_t)(arg1[4]) * (x35 * 0x2)); + x229 = ((uint64_t)(arg1[4]) * (x36 * 0x2)); + x230 = ((uint64_t)(arg1[4]) * (x37 * 0x2)); + x231 = ((uint64_t)(arg1[4]) * (x38 * 0x2)); + x232 = ((uint64_t)(arg1[4]) * (x39 * 0x2)); + x233 = ((uint64_t)(arg1[4]) * (x40 * 0x2)); + x234 = ((uint64_t)(arg1[4]) * ((arg1[4]) * 0x2)); + x235 = ((arg1[3]) * x2); + x236 = ((arg1[3]) * x5); + x237 = ((arg1[3]) * (x8 * 0x2)); + x238 = ((uint64_t)(arg1[3]) * x12); + x239 = ((uint64_t)(arg1[3]) * x15); + x240 = ((uint64_t)(arg1[3]) * x18); + x241 = ((uint64_t)(arg1[3]) * (x21 * 0x2)); + x242 = ((uint64_t)(arg1[3]) * x24); + x243 = ((uint64_t)(arg1[3]) * x27); + x244 = ((uint64_t)(arg1[3]) * x30); + x245 = ((uint64_t)(arg1[3]) * (x33 * 0x2)); + x246 = ((uint64_t)(arg1[3]) * x34); + x247 = ((uint64_t)(arg1[3]) * x35); + x248 = ((uint64_t)(arg1[3]) * x36); + x249 = ((uint64_t)(arg1[3]) * (x37 * 0x2)); + x250 = ((uint64_t)(arg1[3]) * x38); + x251 = ((uint64_t)(arg1[3]) * x39); + x252 = ((uint64_t)(arg1[3]) * x40); + x253 = ((uint64_t)(arg1[3]) * (x41 * 0x2)); + x254 = ((uint64_t)(arg1[3]) * (arg1[3])); + x255 = ((arg1[2]) * x2); + x256 = ((arg1[2]) * (x5 * 0x2)); + x257 = ((uint64_t)(arg1[2]) * (x9 * 0x2)); + x258 = ((uint64_t)(arg1[2]) * x12); + x259 = ((uint64_t)(arg1[2]) * x15); + x260 = ((uint64_t)(arg1[2]) * (x18 * 0x2)); + x261 = ((uint64_t)(arg1[2]) * (x21 * 0x2)); + x262 = ((uint64_t)(arg1[2]) * x24); + x263 = ((uint64_t)(arg1[2]) * x27); + x264 = ((uint64_t)(arg1[2]) * (x30 * 0x2)); + x265 = ((uint64_t)(arg1[2]) * (x33 * 0x2)); + x266 = ((uint64_t)(arg1[2]) * x34); + x267 = ((uint64_t)(arg1[2]) * x35); + x268 = ((uint64_t)(arg1[2]) * (x36 * 0x2)); + x269 = ((uint64_t)(arg1[2]) * (x37 * 0x2)); + x270 = ((uint64_t)(arg1[2]) * x38); + x271 = ((uint64_t)(arg1[2]) * x39); + x272 = ((uint64_t)(arg1[2]) * (x40 * 0x2)); + x273 = ((uint64_t)(arg1[2]) * (x41 * 0x2)); + x274 = ((uint64_t)(arg1[2]) * x42); + x275 = ((uint64_t)(arg1[2]) * (arg1[2])); + x276 = ((arg1[1]) * (x2 * 0x2)); + x277 = ((uint64_t)(arg1[1]) * (x6 * 0x2)); + x278 = ((uint64_t)(arg1[1]) * (x9 * 0x2)); + x279 = ((uint64_t)(arg1[1]) * x12); + x280 = ((uint64_t)(arg1[1]) * (x15 * 0x2)); + x281 = ((uint64_t)(arg1[1]) * (x18 * 0x2)); + x282 = ((uint64_t)(arg1[1]) * (x21 * 0x2)); + x283 = ((uint64_t)(arg1[1]) * x24); + x284 = ((uint64_t)(arg1[1]) * (x27 * 0x2)); + x285 = ((uint64_t)(arg1[1]) * (x30 * 0x2)); + x286 = ((uint64_t)(arg1[1]) * (x33 * 0x2)); + x287 = ((uint64_t)(arg1[1]) * x34); + x288 = ((uint64_t)(arg1[1]) * (x35 * 0x2)); + x289 = ((uint64_t)(arg1[1]) * (x36 * 0x2)); + x290 = ((uint64_t)(arg1[1]) * (x37 * 0x2)); + x291 = ((uint64_t)(arg1[1]) * x38); + x292 = ((uint64_t)(arg1[1]) * (x39 * 0x2)); + x293 = ((uint64_t)(arg1[1]) * (x40 * 0x2)); + x294 = ((uint64_t)(arg1[1]) * (x41 * 0x2)); + x295 = ((uint64_t)(arg1[1]) * x42); + x296 = ((uint64_t)(arg1[1]) * (x43 * 0x2)); + x297 = ((uint64_t)(arg1[1]) * ((arg1[1]) * 0x2)); + x298 = ((uint64_t)(arg1[0]) * x3); + x299 = ((uint64_t)(arg1[0]) * x6); + x300 = ((uint64_t)(arg1[0]) * x9); + x301 = ((uint64_t)(arg1[0]) * x12); + x302 = ((uint64_t)(arg1[0]) * x15); + x303 = ((uint64_t)(arg1[0]) * x18); + x304 = ((uint64_t)(arg1[0]) * x21); + x305 = ((uint64_t)(arg1[0]) * x24); + x306 = ((uint64_t)(arg1[0]) * x27); + x307 = ((uint64_t)(arg1[0]) * x30); + x308 = ((uint64_t)(arg1[0]) * x33); + x309 = ((uint64_t)(arg1[0]) * x34); + x310 = ((uint64_t)(arg1[0]) * x35); + x311 = ((uint64_t)(arg1[0]) * x36); + x312 = ((uint64_t)(arg1[0]) * x37); + x313 = ((uint64_t)(arg1[0]) * x38); + x314 = ((uint64_t)(arg1[0]) * x39); + x315 = ((uint64_t)(arg1[0]) * x40); + x316 = ((uint64_t)(arg1[0]) * x41); + x317 = ((uint64_t)(arg1[0]) * x42); + x318 = ((uint64_t)(arg1[0]) * x43); + x319 = ((uint64_t)(arg1[0]) * x44); + x320 = ((uint64_t)(arg1[0]) * (arg1[0])); + x321 = (x320 + + (x276 + + (x256 + + (x237 + + (x219 + + (x202 + (x186 + (x171 + (x157 + (x144 + (x132 + x121))))))))))); + x322 = (x321 >> 23); + x323 = (uint32_t)(x321 & UINT32_C(0x7fffff)); + x324 = (x298 + + (x277 + + (x257 + + (x238 + + (x220 + + (x203 + (x187 + (x172 + (x158 + (x145 + (x133 + x122))))))))))); + x325 = (x299 + + (x278 + + (x258 + + (x239 + + (x221 + + (x204 + (x188 + (x173 + (x159 + (x146 + (x134 + x45))))))))))); + x326 = (x300 + + (x279 + + (x259 + + (x240 + + (x222 + + (x205 + (x189 + (x174 + (x160 + (x147 + (x135 + x46))))))))))); + x327 = (x301 + + (x280 + + (x260 + + (x241 + + (x223 + + (x206 + (x190 + (x175 + (x161 + (x148 + (x48 + x47))))))))))); + x328 = (x302 + + (x281 + + (x261 + + (x242 + + (x224 + + (x207 + (x191 + (x176 + (x162 + (x149 + (x51 + x49))))))))))); + x329 = (x303 + + (x282 + + (x262 + + (x243 + + (x225 + + (x208 + (x192 + (x177 + (x163 + (x55 + (x52 + x50))))))))))); + x330 = (x304 + + (x283 + + (x263 + + (x244 + + (x226 + + (x209 + (x193 + (x178 + (x164 + (x60 + (x56 + x53))))))))))); + x331 = + (x305 + + (x284 + + (x264 + + (x245 + + (x227 + (x210 + (x194 + (x179 + (x66 + (x61 + (x57 + x54))))))))))); + x332 = + (x306 + + (x285 + + (x265 + + (x246 + + (x228 + (x211 + (x195 + (x180 + (x73 + (x67 + (x62 + x58))))))))))); + x333 = + (x307 + + (x286 + + (x266 + + (x247 + + (x229 + (x212 + (x196 + (x81 + (x74 + (x68 + (x63 + x59))))))))))); + x334 = + (x308 + + (x287 + + (x267 + + (x248 + + (x230 + (x213 + (x197 + (x90 + (x82 + (x75 + (x69 + x64))))))))))); + x335 = + (x309 + + (x288 + + (x268 + + (x249 + + (x231 + (x214 + (x100 + (x91 + (x83 + (x76 + (x70 + x65))))))))))); + x336 = + (x310 + + (x289 + + (x269 + + (x250 + + (x232 + (x215 + (x111 + (x101 + (x92 + (x84 + (x77 + x71))))))))))); + x337 = + (x311 + + (x290 + + (x270 + + (x251 + + (x233 + (x123 + (x112 + (x102 + (x93 + (x85 + (x78 + x72))))))))))); + x338 = (x312 + + (x291 + + (x271 + + (x252 + + (x234 + + (x136 + (x124 + (x113 + (x103 + (x94 + (x86 + x79))))))))))); + x339 = (x313 + + (x292 + + (x272 + + (x253 + + (x150 + + (x137 + (x125 + (x114 + (x104 + (x95 + (x87 + x80))))))))))); + x340 = (x314 + + (x293 + + (x273 + + (x254 + + (x165 + + (x151 + (x138 + (x126 + (x115 + (x105 + (x96 + x88))))))))))); + x341 = (x315 + + (x294 + + (x274 + + (x181 + + (x166 + + (x152 + (x139 + (x127 + (x116 + (x106 + (x97 + x89))))))))))); + x342 = (x316 + + (x295 + + (x275 + + (x198 + + (x182 + + (x167 + (x153 + (x140 + (x128 + (x117 + (x107 + x98))))))))))); + x343 = (x317 + + (x296 + + (x216 + + (x199 + + (x183 + + (x168 + (x154 + (x141 + (x129 + (x118 + (x108 + x99))))))))))); + x344 = (x318 + + (x297 + + (x235 + + (x217 + + (x200 + + (x184 + (x169 + (x155 + (x142 + (x130 + (x119 + x109))))))))))); + x345 = (x319 + + (x255 + + (x236 + + (x218 + + (x201 + + (x185 + (x170 + (x156 + (x143 + (x131 + (x120 + x110))))))))))); + x346 = (x322 + x345); + x347 = (x346 >> 22); + x348 = (uint32_t)(x346 & UINT32_C(0x3fffff)); + x349 = (x347 + x344); + x350 = (x349 >> 22); + x351 = (uint32_t)(x349 & UINT32_C(0x3fffff)); + x352 = (x350 + x343); + x353 = (x352 >> 23); + x354 = (uint32_t)(x352 & UINT32_C(0x7fffff)); + x355 = (x353 + x342); + x356 = (x355 >> 22); + x357 = (uint32_t)(x355 & UINT32_C(0x3fffff)); + x358 = (x356 + x341); + x359 = (x358 >> 22); + x360 = (uint32_t)(x358 & UINT32_C(0x3fffff)); + x361 = (x359 + x340); + x362 = (x361 >> 22); + x363 = (uint32_t)(x361 & UINT32_C(0x3fffff)); + x364 = (x362 + x339); + x365 = (x364 >> 23); + x366 = (uint32_t)(x364 & UINT32_C(0x7fffff)); + x367 = (x365 + x338); + x368 = (x367 >> 22); + x369 = (uint32_t)(x367 & UINT32_C(0x3fffff)); + x370 = (x368 + x337); + x371 = (x370 >> 22); + x372 = (uint32_t)(x370 & UINT32_C(0x3fffff)); + x373 = (x371 + x336); + x374 = (x373 >> 22); + x375 = (uint32_t)(x373 & UINT32_C(0x3fffff)); + x376 = (x374 + x335); + x377 = (x376 >> 23); + x378 = (uint32_t)(x376 & UINT32_C(0x7fffff)); + x379 = (x377 + x334); + x380 = (x379 >> 22); + x381 = (uint32_t)(x379 & UINT32_C(0x3fffff)); + x382 = (x380 + x333); + x383 = (x382 >> 22); + x384 = (uint32_t)(x382 & UINT32_C(0x3fffff)); + x385 = (x383 + x332); + x386 = (x385 >> 22); + x387 = (uint32_t)(x385 & UINT32_C(0x3fffff)); + x388 = (x386 + x331); + x389 = (x388 >> 23); + x390 = (uint32_t)(x388 & UINT32_C(0x7fffff)); + x391 = (x389 + x330); + x392 = (x391 >> 22); + x393 = (uint32_t)(x391 & UINT32_C(0x3fffff)); + x394 = (x392 + x329); + x395 = (x394 >> 22); + x396 = (uint32_t)(x394 & UINT32_C(0x3fffff)); + x397 = (x395 + x328); + x398 = (x397 >> 22); + x399 = (uint32_t)(x397 & UINT32_C(0x3fffff)); + x400 = (x398 + x327); + x401 = (x400 >> 23); + x402 = (uint32_t)(x400 & UINT32_C(0x7fffff)); + x403 = (x401 + x326); + x404 = (x403 >> 22); + x405 = (uint32_t)(x403 & UINT32_C(0x3fffff)); + x406 = (x404 + x325); + x407 = (x406 >> 22); + x408 = (uint32_t)(x406 & UINT32_C(0x3fffff)); + x409 = (x407 + x324); + x410 = (uint32_t)(x409 >> 22); + x411 = (uint32_t)(x409 & UINT32_C(0x3fffff)); + x412 = ((uint64_t)UINT16_C(0x239) * x410); + x413 = (x323 + x412); + x414 = (uint32_t)(x413 >> 23); + x415 = (uint32_t)(x413 & UINT32_C(0x7fffff)); + x416 = (x414 + x348); + x417 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x416 >> 22); + x418 = (x416 & UINT32_C(0x3fffff)); + x419 = (x417 + x351); + out1[0] = x415; + out1[1] = x418; + out1[2] = x419; + out1[3] = x354; + out1[4] = x357; + out1[5] = x360; + out1[6] = x363; + out1[7] = x366; + out1[8] = x369; + out1[9] = x372; + out1[10] = x375; + out1[11] = x378; + out1[12] = x381; + out1[13] = x384; + out1[14] = x387; + out1[15] = x390; + out1[16] = x393; + out1[17] = x396; + out1[18] = x399; + out1[19] = x402; + out1[20] = x405; + out1[21] = x408; + out1[22] = x411; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_carry reduces a field element. + * Postconditions: + * eval out1 mod m = eval arg1 mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332]] + * Output Bounds: + * out1: [[0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetC_carry( + uint32_t out1[23], const uint32_t arg1[23]) { + uint32_t x1; + uint32_t x2; + uint32_t x3; + uint32_t x4; + uint32_t x5; + uint32_t x6; + uint32_t x7; + uint32_t x8; + uint32_t x9; + uint32_t x10; + uint32_t x11; + uint32_t x12; + uint32_t x13; + uint32_t x14; + uint32_t x15; + uint32_t x16; + uint32_t x17; + uint32_t x18; + uint32_t x19; + uint32_t x20; + uint32_t x21; + uint32_t x22; + uint32_t x23; + uint32_t x24; + uint32_t x25; + uint32_t x26; + uint32_t x27; + uint32_t x28; + uint32_t x29; + uint32_t x30; + uint32_t x31; + uint32_t x32; + uint32_t x33; + uint32_t x34; + uint32_t x35; + uint32_t x36; + uint32_t x37; + uint32_t x38; + uint32_t x39; + uint32_t x40; + uint32_t x41; + uint32_t x42; + uint32_t x43; + uint32_t x44; + uint32_t x45; + uint32_t x46; + uint32_t x47; + uint32_t x48; + x1 = (arg1[0]); + x2 = ((x1 >> 23) + (arg1[1])); + x3 = ((x2 >> 22) + (arg1[2])); + x4 = ((x3 >> 22) + (arg1[3])); + x5 = ((x4 >> 23) + (arg1[4])); + x6 = ((x5 >> 22) + (arg1[5])); + x7 = ((x6 >> 22) + (arg1[6])); + x8 = ((x7 >> 22) + (arg1[7])); + x9 = ((x8 >> 23) + (arg1[8])); + x10 = ((x9 >> 22) + (arg1[9])); + x11 = ((x10 >> 22) + (arg1[10])); + x12 = ((x11 >> 22) + (arg1[11])); + x13 = ((x12 >> 23) + (arg1[12])); + x14 = ((x13 >> 22) + (arg1[13])); + x15 = ((x14 >> 22) + (arg1[14])); + x16 = ((x15 >> 22) + (arg1[15])); + x17 = ((x16 >> 23) + (arg1[16])); + x18 = ((x17 >> 22) + (arg1[17])); + x19 = ((x18 >> 22) + (arg1[18])); + x20 = ((x19 >> 22) + (arg1[19])); + x21 = ((x20 >> 23) + (arg1[20])); + x22 = ((x21 >> 22) + (arg1[21])); + x23 = ((x22 >> 22) + (arg1[22])); + x24 = ((x1 & UINT32_C(0x7fffff)) + (UINT16_C(0x239) * (x23 >> 22))); + x25 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x24 >> 23) + + (x2 & UINT32_C(0x3fffff))); + x26 = (x24 & UINT32_C(0x7fffff)); + x27 = (x25 & UINT32_C(0x3fffff)); + x28 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x25 >> 22) + + (x3 & UINT32_C(0x3fffff))); + x29 = (x4 & UINT32_C(0x7fffff)); + x30 = (x5 & UINT32_C(0x3fffff)); + x31 = (x6 & UINT32_C(0x3fffff)); + x32 = (x7 & UINT32_C(0x3fffff)); + x33 = (x8 & UINT32_C(0x7fffff)); + x34 = (x9 & UINT32_C(0x3fffff)); + x35 = (x10 & UINT32_C(0x3fffff)); + x36 = (x11 & UINT32_C(0x3fffff)); + x37 = (x12 & UINT32_C(0x7fffff)); + x38 = (x13 & UINT32_C(0x3fffff)); + x39 = (x14 & UINT32_C(0x3fffff)); + x40 = (x15 & UINT32_C(0x3fffff)); + x41 = (x16 & UINT32_C(0x7fffff)); + x42 = (x17 & UINT32_C(0x3fffff)); + x43 = (x18 & UINT32_C(0x3fffff)); + x44 = (x19 & UINT32_C(0x3fffff)); + x45 = (x20 & UINT32_C(0x7fffff)); + x46 = (x21 & UINT32_C(0x3fffff)); + x47 = (x22 & UINT32_C(0x3fffff)); + x48 = (x23 & UINT32_C(0x3fffff)); + out1[0] = x26; + out1[1] = x27; + out1[2] = x28; + out1[3] = x29; + out1[4] = x30; + out1[5] = x31; + out1[6] = x32; + out1[7] = x33; + out1[8] = x34; + out1[9] = x35; + out1[10] = x36; + out1[11] = x37; + out1[12] = x38; + out1[13] = x39; + out1[14] = x40; + out1[15] = x41; + out1[16] = x42; + out1[17] = x43; + out1[18] = x44; + out1[19] = x45; + out1[20] = x46; + out1[21] = x47; + out1[22] = x48; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_add adds two field elements. + * Postconditions: + * eval out1 mod m = (eval arg1 + eval arg2) mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666]] + * arg2: [[0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666]] + * Output Bounds: + * out1: [[0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetC_add( + uint32_t out1[23], const uint32_t arg1[23], const uint32_t arg2[23]) { + uint32_t x1; + uint32_t x2; + uint32_t x3; + uint32_t x4; + uint32_t x5; + uint32_t x6; + uint32_t x7; + uint32_t x8; + uint32_t x9; + uint32_t x10; + uint32_t x11; + uint32_t x12; + uint32_t x13; + uint32_t x14; + uint32_t x15; + uint32_t x16; + uint32_t x17; + uint32_t x18; + uint32_t x19; + uint32_t x20; + uint32_t x21; + uint32_t x22; + uint32_t x23; + x1 = ((arg1[0]) + (arg2[0])); + x2 = ((arg1[1]) + (arg2[1])); + x3 = ((arg1[2]) + (arg2[2])); + x4 = ((arg1[3]) + (arg2[3])); + x5 = ((arg1[4]) + (arg2[4])); + x6 = ((arg1[5]) + (arg2[5])); + x7 = ((arg1[6]) + (arg2[6])); + x8 = ((arg1[7]) + (arg2[7])); + x9 = ((arg1[8]) + (arg2[8])); + x10 = ((arg1[9]) + (arg2[9])); + x11 = ((arg1[10]) + (arg2[10])); + x12 = ((arg1[11]) + (arg2[11])); + x13 = ((arg1[12]) + (arg2[12])); + x14 = ((arg1[13]) + (arg2[13])); + x15 = ((arg1[14]) + (arg2[14])); + x16 = ((arg1[15]) + (arg2[15])); + x17 = ((arg1[16]) + (arg2[16])); + x18 = ((arg1[17]) + (arg2[17])); + x19 = ((arg1[18]) + (arg2[18])); + x20 = ((arg1[19]) + (arg2[19])); + x21 = ((arg1[20]) + (arg2[20])); + x22 = ((arg1[21]) + (arg2[21])); + x23 = ((arg1[22]) + (arg2[22])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; + out1[4] = x5; + out1[5] = x6; + out1[6] = x7; + out1[7] = x8; + out1[8] = x9; + out1[9] = x10; + out1[10] = x11; + out1[11] = x12; + out1[12] = x13; + out1[13] = x14; + out1[14] = x15; + out1[15] = x16; + out1[16] = x17; + out1[17] = x18; + out1[18] = x19; + out1[19] = x20; + out1[20] = x21; + out1[21] = x22; + out1[22] = x23; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_sub subtracts two field elements. + * Postconditions: + * eval out1 mod m = (eval arg1 - eval arg2) mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666]] + * arg2: [[0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666]] + * Output Bounds: + * out1: [[0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetC_sub( + uint32_t out1[23], const uint32_t arg1[23], const uint32_t arg2[23]) { + uint32_t x1; + uint32_t x2; + uint32_t x3; + uint32_t x4; + uint32_t x5; + uint32_t x6; + uint32_t x7; + uint32_t x8; + uint32_t x9; + uint32_t x10; + uint32_t x11; + uint32_t x12; + uint32_t x13; + uint32_t x14; + uint32_t x15; + uint32_t x16; + uint32_t x17; + uint32_t x18; + uint32_t x19; + uint32_t x20; + uint32_t x21; + uint32_t x22; + uint32_t x23; + x1 = ((UINT32_C(0xfffb8e) + (arg1[0])) - (arg2[0])); + x2 = ((UINT32_C(0x7ffffe) + (arg1[1])) - (arg2[1])); + x3 = ((UINT32_C(0x7ffffe) + (arg1[2])) - (arg2[2])); + x4 = ((UINT32_C(0xfffffe) + (arg1[3])) - (arg2[3])); + x5 = ((UINT32_C(0x7ffffe) + (arg1[4])) - (arg2[4])); + x6 = ((UINT32_C(0x7ffffe) + (arg1[5])) - (arg2[5])); + x7 = ((UINT32_C(0x7ffffe) + (arg1[6])) - (arg2[6])); + x8 = ((UINT32_C(0xfffffe) + (arg1[7])) - (arg2[7])); + x9 = ((UINT32_C(0x7ffffe) + (arg1[8])) - (arg2[8])); + x10 = ((UINT32_C(0x7ffffe) + (arg1[9])) - (arg2[9])); + x11 = ((UINT32_C(0x7ffffe) + (arg1[10])) - (arg2[10])); + x12 = ((UINT32_C(0xfffffe) + (arg1[11])) - (arg2[11])); + x13 = ((UINT32_C(0x7ffffe) + (arg1[12])) - (arg2[12])); + x14 = ((UINT32_C(0x7ffffe) + (arg1[13])) - (arg2[13])); + x15 = ((UINT32_C(0x7ffffe) + (arg1[14])) - (arg2[14])); + x16 = ((UINT32_C(0xfffffe) + (arg1[15])) - (arg2[15])); + x17 = ((UINT32_C(0x7ffffe) + (arg1[16])) - (arg2[16])); + x18 = ((UINT32_C(0x7ffffe) + (arg1[17])) - (arg2[17])); + x19 = ((UINT32_C(0x7ffffe) + (arg1[18])) - (arg2[18])); + x20 = ((UINT32_C(0xfffffe) + (arg1[19])) - (arg2[19])); + x21 = ((UINT32_C(0x7ffffe) + (arg1[20])) - (arg2[20])); + x22 = ((UINT32_C(0x7ffffe) + (arg1[21])) - (arg2[21])); + x23 = ((UINT32_C(0x7ffffe) + (arg1[22])) - (arg2[22])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; + out1[4] = x5; + out1[5] = x6; + out1[6] = x7; + out1[7] = x8; + out1[8] = x9; + out1[9] = x10; + out1[10] = x11; + out1[11] = x12; + out1[12] = x13; + out1[13] = x14; + out1[14] = x15; + out1[15] = x16; + out1[16] = x17; + out1[17] = x18; + out1[18] = x19; + out1[19] = x20; + out1[20] = x21; + out1[21] = x22; + out1[22] = x23; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_opp negates a field element. + * Postconditions: + * eval out1 mod m = -eval arg1 mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666]] + * Output Bounds: + * out1: [[0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetC_opp( + uint32_t out1[23], const uint32_t arg1[23]) { + uint32_t x1; + uint32_t x2; + uint32_t x3; + uint32_t x4; + uint32_t x5; + uint32_t x6; + uint32_t x7; + uint32_t x8; + uint32_t x9; + uint32_t x10; + uint32_t x11; + uint32_t x12; + uint32_t x13; + uint32_t x14; + uint32_t x15; + uint32_t x16; + uint32_t x17; + uint32_t x18; + uint32_t x19; + uint32_t x20; + uint32_t x21; + uint32_t x22; + uint32_t x23; + x1 = (UINT32_C(0xfffb8e) - (arg1[0])); + x2 = (UINT32_C(0x7ffffe) - (arg1[1])); + x3 = (UINT32_C(0x7ffffe) - (arg1[2])); + x4 = (UINT32_C(0xfffffe) - (arg1[3])); + x5 = (UINT32_C(0x7ffffe) - (arg1[4])); + x6 = (UINT32_C(0x7ffffe) - (arg1[5])); + x7 = (UINT32_C(0x7ffffe) - (arg1[6])); + x8 = (UINT32_C(0xfffffe) - (arg1[7])); + x9 = (UINT32_C(0x7ffffe) - (arg1[8])); + x10 = (UINT32_C(0x7ffffe) - (arg1[9])); + x11 = (UINT32_C(0x7ffffe) - (arg1[10])); + x12 = (UINT32_C(0xfffffe) - (arg1[11])); + x13 = (UINT32_C(0x7ffffe) - (arg1[12])); + x14 = (UINT32_C(0x7ffffe) - (arg1[13])); + x15 = (UINT32_C(0x7ffffe) - (arg1[14])); + x16 = (UINT32_C(0xfffffe) - (arg1[15])); + x17 = (UINT32_C(0x7ffffe) - (arg1[16])); + x18 = (UINT32_C(0x7ffffe) - (arg1[17])); + x19 = (UINT32_C(0x7ffffe) - (arg1[18])); + x20 = (UINT32_C(0xfffffe) - (arg1[19])); + x21 = (UINT32_C(0x7ffffe) - (arg1[20])); + x22 = (UINT32_C(0x7ffffe) - (arg1[21])); + x23 = (UINT32_C(0x7ffffe) - (arg1[22])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; + out1[4] = x5; + out1[5] = x6; + out1[6] = x7; + out1[7] = x8; + out1[8] = x9; + out1[9] = x10; + out1[10] = x11; + out1[11] = x12; + out1[12] = x13; + out1[13] = x14; + out1[14] = x15; + out1[15] = x16; + out1[16] = x17; + out1[17] = x18; + out1[18] = x19; + out1[19] = x20; + out1[20] = x21; + out1[21] = x22; + out1[22] = x23; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz is a multi-limb conditional select. + * Postconditions: + * eval out1 = (if arg1 = 0 then eval arg2 else eval arg3) + * + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * arg3: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz( + uint32_t out1[23], fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 arg1, + const uint32_t arg2[23], const uint32_t arg3[23]) { + uint32_t x1; + uint32_t x2; + uint32_t x3; + uint32_t x4; + uint32_t x5; + uint32_t x6; + uint32_t x7; + uint32_t x8; + uint32_t x9; + uint32_t x10; + uint32_t x11; + uint32_t x12; + uint32_t x13; + uint32_t x14; + uint32_t x15; + uint32_t x16; + uint32_t x17; + uint32_t x18; + uint32_t x19; + uint32_t x20; + uint32_t x21; + uint32_t x22; + uint32_t x23; + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32(&x1, arg1, (arg2[0]), + (arg3[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32(&x2, arg1, (arg2[1]), + (arg3[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32(&x3, arg1, (arg2[2]), + (arg3[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32(&x4, arg1, (arg2[3]), + (arg3[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32(&x5, arg1, (arg2[4]), + (arg3[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32(&x6, arg1, (arg2[5]), + (arg3[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32(&x7, arg1, (arg2[6]), + (arg3[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32(&x8, arg1, (arg2[7]), + (arg3[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32(&x9, arg1, (arg2[8]), + (arg3[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32(&x10, arg1, (arg2[9]), + (arg3[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32( + &x11, arg1, (arg2[10]), (arg3[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32( + &x12, arg1, (arg2[11]), (arg3[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32( + &x13, arg1, (arg2[12]), (arg3[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32( + &x14, arg1, (arg2[13]), (arg3[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32( + &x15, arg1, (arg2[14]), (arg3[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32( + &x16, arg1, (arg2[15]), (arg3[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32( + &x17, arg1, (arg2[16]), (arg3[16])); + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32( + &x18, arg1, (arg2[17]), (arg3[17])); + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32( + &x19, arg1, (arg2[18]), (arg3[18])); + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32( + &x20, arg1, (arg2[19]), (arg3[19])); + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32( + &x21, arg1, (arg2[20]), (arg3[20])); + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32( + &x22, arg1, (arg2[21]), (arg3[21])); + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32( + &x23, arg1, (arg2[22]), (arg3[22])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; + out1[4] = x5; + out1[5] = x6; + out1[6] = x7; + out1[7] = x8; + out1[8] = x9; + out1[9] = x10; + out1[10] = x11; + out1[11] = x12; + out1[12] = x13; + out1[13] = x14; + out1[14] = x15; + out1[15] = x16; + out1[16] = x17; + out1[17] = x18; + out1[18] = x19; + out1[19] = x20; + out1[20] = x21; + out1[21] = x22; + out1[22] = x23; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_to_bytes serializes a field element to bytes in little-endian order. + * Postconditions: + * out1 = map (λ x, ⌊((eval arg1 mod m) mod 2^(8 * (x + 1))) / 2^(8 * x)⌋) [0..63] + * + * Input Bounds: + * arg1: [[0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666]] + * Output Bounds: + * out1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetC_to_bytes( + uint8_t out1[64], const uint32_t arg1[23]) { + uint32_t x1; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x2; + uint32_t x3; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x4; + uint32_t x5; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x6; + uint32_t x7; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x8; + uint32_t x9; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x10; + uint32_t x11; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x12; + uint32_t x13; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x14; + uint32_t x15; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x16; + uint32_t x17; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x18; + uint32_t x19; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x20; + uint32_t x21; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x22; + uint32_t x23; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x24; + uint32_t x25; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x26; + uint32_t x27; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x28; + uint32_t x29; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x30; + uint32_t x31; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x32; + uint32_t x33; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x34; + uint32_t x35; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x36; + uint32_t x37; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x38; + uint32_t x39; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x40; + uint32_t x41; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x42; + uint32_t x43; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x44; + uint32_t x45; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x46; + uint32_t x47; + uint32_t x48; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x49; + uint32_t x50; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x51; + uint32_t x52; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x53; + uint32_t x54; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x55; + uint32_t x56; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x57; + uint32_t x58; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x59; + uint32_t x60; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x61; + uint32_t x62; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x63; + uint32_t x64; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x65; + uint32_t x66; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x67; + uint32_t x68; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x69; + uint32_t x70; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x71; + uint32_t x72; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x73; + uint32_t x74; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x75; + uint32_t x76; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x77; + uint32_t x78; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x79; + uint32_t x80; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x81; + uint32_t x82; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x83; + uint32_t x84; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x85; + uint32_t x86; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x87; + uint32_t x88; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x89; + uint32_t x90; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x91; + uint32_t x92; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x93; + uint32_t x94; + uint32_t x95; + uint32_t x96; + uint32_t x97; + uint32_t x98; + uint32_t x99; + uint32_t x100; + uint32_t x101; + uint32_t x102; + uint32_t x103; + uint32_t x104; + uint32_t x105; + uint32_t x106; + uint32_t x107; + uint32_t x108; + uint32_t x109; + uint32_t x110; + uint32_t x111; + uint32_t x112; + uint32_t x113; + uint32_t x114; + uint8_t x115; + uint8_t x116; + uint8_t x117; + uint32_t x118; + uint32_t x119; + uint8_t x120; + uint32_t x121; + uint8_t x122; + uint8_t x123; + uint8_t x124; + uint32_t x125; + uint32_t x126; + uint8_t x127; + uint32_t x128; + uint8_t x129; + uint8_t x130; + uint8_t x131; + uint32_t x132; + uint32_t x133; + uint8_t x134; + uint32_t x135; + uint8_t x136; + uint8_t x137; + uint8_t x138; + uint32_t x139; + uint32_t x140; + uint8_t x141; + uint8_t x142; + uint8_t x143; + uint8_t x144; + uint32_t x145; + uint8_t x146; + uint8_t x147; + uint8_t x148; + uint32_t x149; + uint32_t x150; + uint8_t x151; + uint32_t x152; + uint8_t x153; + uint8_t x154; + uint8_t x155; + uint32_t x156; + uint32_t x157; + uint8_t x158; + uint32_t x159; + uint8_t x160; + uint8_t x161; + uint8_t x162; + uint32_t x163; + uint32_t x164; + uint8_t x165; + uint32_t x166; + uint8_t x167; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x168; + uint8_t x169; + uint32_t x170; + uint32_t x171; + uint8_t x172; + uint8_t x173; + uint8_t x174; + uint32_t x175; + uint32_t x176; + uint8_t x177; + uint32_t x178; + uint8_t x179; + uint8_t x180; + uint8_t x181; + uint32_t x182; + uint32_t x183; + uint8_t x184; + uint32_t x185; + uint8_t x186; + uint8_t x187; + uint8_t x188; + uint32_t x189; + uint32_t x190; + uint8_t x191; + uint32_t x192; + uint8_t x193; + uint8_t x194; + uint8_t x195; + uint32_t x196; + uint32_t x197; + uint8_t x198; + uint8_t x199; + uint8_t x200; + uint8_t x201; + uint32_t x202; + uint8_t x203; + uint8_t x204; + uint8_t x205; + uint32_t x206; + uint32_t x207; + uint8_t x208; + uint32_t x209; + uint8_t x210; + uint8_t x211; + uint8_t x212; + uint32_t x213; + uint32_t x214; + uint8_t x215; + uint32_t x216; + uint8_t x217; + uint8_t x218; + uint8_t x219; + uint32_t x220; + uint32_t x221; + uint8_t x222; + uint32_t x223; + uint8_t x224; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x225; + uint8_t x226; + uint32_t x227; + uint32_t x228; + uint8_t x229; + uint8_t x230; + uint8_t x231; + uint32_t x232; + uint32_t x233; + uint8_t x234; + uint32_t x235; + uint8_t x236; + uint8_t x237; + uint8_t x238; + uint32_t x239; + uint32_t x240; + uint8_t x241; + uint32_t x242; + uint8_t x243; + uint8_t x244; + uint8_t x245; + uint32_t x246; + uint32_t x247; + uint8_t x248; + uint32_t x249; + uint8_t x250; + uint8_t x251; + uint8_t x252; + uint32_t x253; + uint32_t x254; + uint8_t x255; + uint8_t x256; + uint8_t x257; + fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u23( + &x1, &x2, 0x0, (arg1[0]), UINT32_C(0x7ffdc7)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( + &x3, &x4, x2, (arg1[1]), UINT32_C(0x3fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( + &x5, &x6, x4, (arg1[2]), UINT32_C(0x3fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u23( + &x7, &x8, x6, (arg1[3]), UINT32_C(0x7fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( + &x9, &x10, x8, (arg1[4]), UINT32_C(0x3fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( + &x11, &x12, x10, (arg1[5]), UINT32_C(0x3fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( + &x13, &x14, x12, (arg1[6]), UINT32_C(0x3fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u23( + &x15, &x16, x14, (arg1[7]), UINT32_C(0x7fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( + &x17, &x18, x16, (arg1[8]), UINT32_C(0x3fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( + &x19, &x20, x18, (arg1[9]), UINT32_C(0x3fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( + &x21, &x22, x20, (arg1[10]), UINT32_C(0x3fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u23( + &x23, &x24, x22, (arg1[11]), UINT32_C(0x7fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( + &x25, &x26, x24, (arg1[12]), UINT32_C(0x3fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( + &x27, &x28, x26, (arg1[13]), UINT32_C(0x3fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( + &x29, &x30, x28, (arg1[14]), UINT32_C(0x3fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u23( + &x31, &x32, x30, (arg1[15]), UINT32_C(0x7fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( + &x33, &x34, x32, (arg1[16]), UINT32_C(0x3fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( + &x35, &x36, x34, (arg1[17]), UINT32_C(0x3fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( + &x37, &x38, x36, (arg1[18]), UINT32_C(0x3fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u23( + &x39, &x40, x38, (arg1[19]), UINT32_C(0x7fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( + &x41, &x42, x40, (arg1[20]), UINT32_C(0x3fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( + &x43, &x44, x42, (arg1[21]), UINT32_C(0x3fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( + &x45, &x46, x44, (arg1[22]), UINT32_C(0x3fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32(&x47, x46, 0x0, + UINT32_C(0xffffffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u23( + &x48, &x49, 0x0, x1, (x47 & UINT32_C(0x7ffdc7))); + fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( + &x50, &x51, x49, x3, (x47 & UINT32_C(0x3fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( + &x52, &x53, x51, x5, (x47 & UINT32_C(0x3fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u23( + &x54, &x55, x53, x7, (x47 & UINT32_C(0x7fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( + &x56, &x57, x55, x9, (x47 & UINT32_C(0x3fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( + &x58, &x59, x57, x11, (x47 & UINT32_C(0x3fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( + &x60, &x61, x59, x13, (x47 & UINT32_C(0x3fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u23( + &x62, &x63, x61, x15, (x47 & UINT32_C(0x7fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( + &x64, &x65, x63, x17, (x47 & UINT32_C(0x3fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( + &x66, &x67, x65, x19, (x47 & UINT32_C(0x3fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( + &x68, &x69, x67, x21, (x47 & UINT32_C(0x3fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u23( + &x70, &x71, x69, x23, (x47 & UINT32_C(0x7fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( + &x72, &x73, x71, x25, (x47 & UINT32_C(0x3fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( + &x74, &x75, x73, x27, (x47 & UINT32_C(0x3fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( + &x76, &x77, x75, x29, (x47 & UINT32_C(0x3fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u23( + &x78, &x79, x77, x31, (x47 & UINT32_C(0x7fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( + &x80, &x81, x79, x33, (x47 & UINT32_C(0x3fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( + &x82, &x83, x81, x35, (x47 & UINT32_C(0x3fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( + &x84, &x85, x83, x37, (x47 & UINT32_C(0x3fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u23( + &x86, &x87, x85, x39, (x47 & UINT32_C(0x7fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( + &x88, &x89, x87, x41, (x47 & UINT32_C(0x3fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( + &x90, &x91, x89, x43, (x47 & UINT32_C(0x3fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( + &x92, &x93, x91, x45, (x47 & UINT32_C(0x3fffff))); + x94 = (x92 << 2); + x95 = (x90 << 4); + x96 = (x88 << 6); + x97 = (x86 << 7); + x98 = (x84 * (uint32_t)0x2); + x99 = (x82 << 3); + x100 = (x80 << 5); + x101 = (x78 << 6); + x102 = (x74 << 2); + x103 = (x72 << 4); + x104 = (x70 << 5); + x105 = (x68 << 7); + x106 = (x66 * (uint32_t)0x2); + x107 = (x64 << 3); + x108 = (x62 << 4); + x109 = (x60 << 6); + x110 = (x56 << 2); + x111 = (x54 << 3); + x112 = (x52 << 5); + x113 = (x50 << 7); + x114 = (x48 >> 8); + x115 = (uint8_t)(x48 & UINT8_C(0xff)); + x116 = (uint8_t)(x114 >> 8); + x117 = (uint8_t)(x114 & UINT8_C(0xff)); + x118 = (x116 + x113); + x119 = (x118 >> 8); + x120 = (uint8_t)(x118 & UINT8_C(0xff)); + x121 = (x119 >> 8); + x122 = (uint8_t)(x119 & UINT8_C(0xff)); + x123 = (uint8_t)(x121 >> 8); + x124 = (uint8_t)(x121 & UINT8_C(0xff)); + x125 = (x123 + x112); + x126 = (x125 >> 8); + x127 = (uint8_t)(x125 & UINT8_C(0xff)); + x128 = (x126 >> 8); + x129 = (uint8_t)(x126 & UINT8_C(0xff)); + x130 = (uint8_t)(x128 >> 8); + x131 = (uint8_t)(x128 & UINT8_C(0xff)); + x132 = (x130 + x111); + x133 = (x132 >> 8); + x134 = (uint8_t)(x132 & UINT8_C(0xff)); + x135 = (x133 >> 8); + x136 = (uint8_t)(x133 & UINT8_C(0xff)); + x137 = (uint8_t)(x135 >> 8); + x138 = (uint8_t)(x135 & UINT8_C(0xff)); + x139 = (x137 + x110); + x140 = (x139 >> 8); + x141 = (uint8_t)(x139 & UINT8_C(0xff)); + x142 = (uint8_t)(x140 >> 8); + x143 = (uint8_t)(x140 & UINT8_C(0xff)); + x144 = (uint8_t)(x142 & UINT8_C(0xff)); + x145 = (x58 >> 8); + x146 = (uint8_t)(x58 & UINT8_C(0xff)); + x147 = (uint8_t)(x145 >> 8); + x148 = (uint8_t)(x145 & UINT8_C(0xff)); + x149 = (x147 + x109); + x150 = (x149 >> 8); + x151 = (uint8_t)(x149 & UINT8_C(0xff)); + x152 = (x150 >> 8); + x153 = (uint8_t)(x150 & UINT8_C(0xff)); + x154 = (uint8_t)(x152 >> 8); + x155 = (uint8_t)(x152 & UINT8_C(0xff)); + x156 = (x154 + x108); + x157 = (x156 >> 8); + x158 = (uint8_t)(x156 & UINT8_C(0xff)); + x159 = (x157 >> 8); + x160 = (uint8_t)(x157 & UINT8_C(0xff)); + x161 = (uint8_t)(x159 >> 8); + x162 = (uint8_t)(x159 & UINT8_C(0xff)); + x163 = (x161 + x107); + x164 = (x163 >> 8); + x165 = (uint8_t)(x163 & UINT8_C(0xff)); + x166 = (x164 >> 8); + x167 = (uint8_t)(x164 & UINT8_C(0xff)); + x168 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x166 >> 8); + x169 = (uint8_t)(x166 & UINT8_C(0xff)); + x170 = (x168 + x106); + x171 = (x170 >> 8); + x172 = (uint8_t)(x170 & UINT8_C(0xff)); + x173 = (uint8_t)(x171 >> 8); + x174 = (uint8_t)(x171 & UINT8_C(0xff)); + x175 = (x173 + x105); + x176 = (x175 >> 8); + x177 = (uint8_t)(x175 & UINT8_C(0xff)); + x178 = (x176 >> 8); + x179 = (uint8_t)(x176 & UINT8_C(0xff)); + x180 = (uint8_t)(x178 >> 8); + x181 = (uint8_t)(x178 & UINT8_C(0xff)); + x182 = (x180 + x104); + x183 = (x182 >> 8); + x184 = (uint8_t)(x182 & UINT8_C(0xff)); + x185 = (x183 >> 8); + x186 = (uint8_t)(x183 & UINT8_C(0xff)); + x187 = (uint8_t)(x185 >> 8); + x188 = (uint8_t)(x185 & UINT8_C(0xff)); + x189 = (x187 + x103); + x190 = (x189 >> 8); + x191 = (uint8_t)(x189 & UINT8_C(0xff)); + x192 = (x190 >> 8); + x193 = (uint8_t)(x190 & UINT8_C(0xff)); + x194 = (uint8_t)(x192 >> 8); + x195 = (uint8_t)(x192 & UINT8_C(0xff)); + x196 = (x194 + x102); + x197 = (x196 >> 8); + x198 = (uint8_t)(x196 & UINT8_C(0xff)); + x199 = (uint8_t)(x197 >> 8); + x200 = (uint8_t)(x197 & UINT8_C(0xff)); + x201 = (uint8_t)(x199 & UINT8_C(0xff)); + x202 = (x76 >> 8); + x203 = (uint8_t)(x76 & UINT8_C(0xff)); + x204 = (uint8_t)(x202 >> 8); + x205 = (uint8_t)(x202 & UINT8_C(0xff)); + x206 = (x204 + x101); + x207 = (x206 >> 8); + x208 = (uint8_t)(x206 & UINT8_C(0xff)); + x209 = (x207 >> 8); + x210 = (uint8_t)(x207 & UINT8_C(0xff)); + x211 = (uint8_t)(x209 >> 8); + x212 = (uint8_t)(x209 & UINT8_C(0xff)); + x213 = (x211 + x100); + x214 = (x213 >> 8); + x215 = (uint8_t)(x213 & UINT8_C(0xff)); + x216 = (x214 >> 8); + x217 = (uint8_t)(x214 & UINT8_C(0xff)); + x218 = (uint8_t)(x216 >> 8); + x219 = (uint8_t)(x216 & UINT8_C(0xff)); + x220 = (x218 + x99); + x221 = (x220 >> 8); + x222 = (uint8_t)(x220 & UINT8_C(0xff)); + x223 = (x221 >> 8); + x224 = (uint8_t)(x221 & UINT8_C(0xff)); + x225 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x223 >> 8); + x226 = (uint8_t)(x223 & UINT8_C(0xff)); + x227 = (x225 + x98); + x228 = (x227 >> 8); + x229 = (uint8_t)(x227 & UINT8_C(0xff)); + x230 = (uint8_t)(x228 >> 8); + x231 = (uint8_t)(x228 & UINT8_C(0xff)); + x232 = (x230 + x97); + x233 = (x232 >> 8); + x234 = (uint8_t)(x232 & UINT8_C(0xff)); + x235 = (x233 >> 8); + x236 = (uint8_t)(x233 & UINT8_C(0xff)); + x237 = (uint8_t)(x235 >> 8); + x238 = (uint8_t)(x235 & UINT8_C(0xff)); + x239 = (x237 + x96); + x240 = (x239 >> 8); + x241 = (uint8_t)(x239 & UINT8_C(0xff)); + x242 = (x240 >> 8); + x243 = (uint8_t)(x240 & UINT8_C(0xff)); + x244 = (uint8_t)(x242 >> 8); + x245 = (uint8_t)(x242 & UINT8_C(0xff)); + x246 = (x244 + x95); + x247 = (x246 >> 8); + x248 = (uint8_t)(x246 & UINT8_C(0xff)); + x249 = (x247 >> 8); + x250 = (uint8_t)(x247 & UINT8_C(0xff)); + x251 = (uint8_t)(x249 >> 8); + x252 = (uint8_t)(x249 & UINT8_C(0xff)); + x253 = (x251 + x94); + x254 = (x253 >> 8); + x255 = (uint8_t)(x253 & UINT8_C(0xff)); + x256 = (uint8_t)(x254 >> 8); + x257 = (uint8_t)(x254 & UINT8_C(0xff)); + out1[0] = x115; + out1[1] = x117; + out1[2] = x120; + out1[3] = x122; + out1[4] = x124; + out1[5] = x127; + out1[6] = x129; + out1[7] = x131; + out1[8] = x134; + out1[9] = x136; + out1[10] = x138; + out1[11] = x141; + out1[12] = x143; + out1[13] = x144; + out1[14] = x146; + out1[15] = x148; + out1[16] = x151; + out1[17] = x153; + out1[18] = x155; + out1[19] = x158; + out1[20] = x160; + out1[21] = x162; + out1[22] = x165; + out1[23] = x167; + out1[24] = x169; + out1[25] = x172; + out1[26] = x174; + out1[27] = x177; + out1[28] = x179; + out1[29] = x181; + out1[30] = x184; + out1[31] = x186; + out1[32] = x188; + out1[33] = x191; + out1[34] = x193; + out1[35] = x195; + out1[36] = x198; + out1[37] = x200; + out1[38] = x201; + out1[39] = x203; + out1[40] = x205; + out1[41] = x208; + out1[42] = x210; + out1[43] = x212; + out1[44] = x215; + out1[45] = x217; + out1[46] = x219; + out1[47] = x222; + out1[48] = x224; + out1[49] = x226; + out1[50] = x229; + out1[51] = x231; + out1[52] = x234; + out1[53] = x236; + out1[54] = x238; + out1[55] = x241; + out1[56] = x243; + out1[57] = x245; + out1[58] = x248; + out1[59] = x250; + out1[60] = x252; + out1[61] = x255; + out1[62] = x257; + out1[63] = x256; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_from_bytes deserializes a field element from bytes in little-endian order. + * Postconditions: + * eval out1 mod m = bytes_eval arg1 mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff]] + * Output Bounds: + * out1: [[0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetC_from_bytes( + uint32_t out1[23], const uint8_t arg1[64]) { + uint32_t x1; + uint32_t x2; + uint32_t x3; + uint32_t x4; + uint32_t x5; + uint32_t x6; + uint32_t x7; + uint32_t x8; + uint32_t x9; + uint32_t x10; + uint32_t x11; + uint32_t x12; + uint32_t x13; + uint32_t x14; + uint32_t x15; + uint32_t x16; + uint32_t x17; + uint32_t x18; + uint32_t x19; + uint32_t x20; + uint32_t x21; + uint32_t x22; + uint32_t x23; + uint32_t x24; + uint8_t x25; + uint32_t x26; + uint32_t x27; + uint32_t x28; + uint32_t x29; + uint32_t x30; + uint32_t x31; + uint32_t x32; + uint32_t x33; + uint32_t x34; + uint32_t x35; + uint32_t x36; + uint32_t x37; + uint32_t x38; + uint32_t x39; + uint32_t x40; + uint32_t x41; + uint32_t x42; + uint32_t x43; + uint32_t x44; + uint32_t x45; + uint32_t x46; + uint32_t x47; + uint32_t x48; + uint32_t x49; + uint8_t x50; + uint32_t x51; + uint32_t x52; + uint32_t x53; + uint32_t x54; + uint32_t x55; + uint32_t x56; + uint32_t x57; + uint32_t x58; + uint32_t x59; + uint32_t x60; + uint32_t x61; + uint32_t x62; + uint32_t x63; + uint8_t x64; + uint32_t x65; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x66; + uint32_t x67; + uint32_t x68; + uint32_t x69; + uint32_t x70; + uint32_t x71; + uint32_t x72; + uint32_t x73; + uint32_t x74; + uint32_t x75; + uint32_t x76; + uint32_t x77; + uint32_t x78; + uint32_t x79; + uint32_t x80; + uint32_t x81; + uint32_t x82; + uint32_t x83; + uint32_t x84; + uint32_t x85; + uint32_t x86; + uint32_t x87; + uint32_t x88; + uint32_t x89; + uint32_t x90; + uint8_t x91; + uint32_t x92; + uint32_t x93; + uint8_t x94; + uint32_t x95; + uint32_t x96; + uint8_t x97; + uint32_t x98; + uint32_t x99; + uint32_t x100; + uint8_t x101; + uint32_t x102; + uint32_t x103; + uint8_t x104; + uint32_t x105; + uint32_t x106; + uint8_t x107; + uint32_t x108; + uint32_t x109; + uint8_t x110; + uint32_t x111; + uint32_t x112; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x113; + uint32_t x114; + uint32_t x115; + uint8_t x116; + uint32_t x117; + uint32_t x118; + uint8_t x119; + uint32_t x120; + uint32_t x121; + uint8_t x122; + uint32_t x123; + uint32_t x124; + uint32_t x125; + uint8_t x126; + uint32_t x127; + uint32_t x128; + uint8_t x129; + uint32_t x130; + uint32_t x131; + uint8_t x132; + uint32_t x133; + uint32_t x134; + uint8_t x135; + uint32_t x136; + uint32_t x137; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x138; + uint32_t x139; + uint32_t x140; + uint8_t x141; + uint32_t x142; + uint32_t x143; + uint8_t x144; + uint32_t x145; + uint32_t x146; + uint8_t x147; + uint32_t x148; + uint32_t x149; + x1 = ((uint32_t)(arg1[63]) << 14); + x2 = ((uint32_t)(arg1[62]) << 6); + x3 = ((uint32_t)(arg1[61]) << 20); + x4 = ((uint32_t)(arg1[60]) << 12); + x5 = ((uint32_t)(arg1[59]) << 4); + x6 = ((uint32_t)(arg1[58]) << 18); + x7 = ((uint32_t)(arg1[57]) << 10); + x8 = ((uint32_t)(arg1[56]) << 2); + x9 = ((uint32_t)(arg1[55]) << 17); + x10 = ((uint32_t)(arg1[54]) << 9); + x11 = ((uint32_t)(arg1[53]) * 0x2); + x12 = ((uint32_t)(arg1[52]) << 15); + x13 = ((uint32_t)(arg1[51]) << 7); + x14 = ((uint32_t)(arg1[50]) << 21); + x15 = ((uint32_t)(arg1[49]) << 13); + x16 = ((uint32_t)(arg1[48]) << 5); + x17 = ((uint32_t)(arg1[47]) << 19); + x18 = ((uint32_t)(arg1[46]) << 11); + x19 = ((uint32_t)(arg1[45]) << 3); + x20 = ((uint32_t)(arg1[44]) << 18); + x21 = ((uint32_t)(arg1[43]) << 10); + x22 = ((uint32_t)(arg1[42]) << 2); + x23 = ((uint32_t)(arg1[41]) << 16); + x24 = ((uint32_t)(arg1[40]) << 8); + x25 = (arg1[39]); + x26 = ((uint32_t)(arg1[38]) << 14); + x27 = ((uint32_t)(arg1[37]) << 6); + x28 = ((uint32_t)(arg1[36]) << 20); + x29 = ((uint32_t)(arg1[35]) << 12); + x30 = ((uint32_t)(arg1[34]) << 4); + x31 = ((uint32_t)(arg1[33]) << 19); + x32 = ((uint32_t)(arg1[32]) << 11); + x33 = ((uint32_t)(arg1[31]) << 3); + x34 = ((uint32_t)(arg1[30]) << 17); + x35 = ((uint32_t)(arg1[29]) << 9); + x36 = ((uint32_t)(arg1[28]) * 0x2); + x37 = ((uint32_t)(arg1[27]) << 15); + x38 = ((uint32_t)(arg1[26]) << 7); + x39 = ((uint32_t)(arg1[25]) << 21); + x40 = ((uint32_t)(arg1[24]) << 13); + x41 = ((uint32_t)(arg1[23]) << 5); + x42 = ((uint32_t)(arg1[22]) << 20); + x43 = ((uint32_t)(arg1[21]) << 12); + x44 = ((uint32_t)(arg1[20]) << 4); + x45 = ((uint32_t)(arg1[19]) << 18); + x46 = ((uint32_t)(arg1[18]) << 10); + x47 = ((uint32_t)(arg1[17]) << 2); + x48 = ((uint32_t)(arg1[16]) << 16); + x49 = ((uint32_t)(arg1[15]) << 8); + x50 = (arg1[14]); + x51 = ((uint32_t)(arg1[13]) << 14); + x52 = ((uint32_t)(arg1[12]) << 6); + x53 = ((uint32_t)(arg1[11]) << 21); + x54 = ((uint32_t)(arg1[10]) << 13); + x55 = ((uint32_t)(arg1[9]) << 5); + x56 = ((uint32_t)(arg1[8]) << 19); + x57 = ((uint32_t)(arg1[7]) << 11); + x58 = ((uint32_t)(arg1[6]) << 3); + x59 = ((uint32_t)(arg1[5]) << 17); + x60 = ((uint32_t)(arg1[4]) << 9); + x61 = ((uint32_t)(arg1[3]) * 0x2); + x62 = ((uint32_t)(arg1[2]) << 16); + x63 = ((uint32_t)(arg1[1]) << 8); + x64 = (arg1[0]); + x65 = (x64 + (x63 + x62)); + x66 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x65 >> 23); + x67 = (x65 & UINT32_C(0x7fffff)); + x68 = (x2 + x1); + x69 = (x5 + (x4 + x3)); + x70 = (x8 + (x7 + x6)); + x71 = (x11 + (x10 + x9)); + x72 = (x13 + x12); + x73 = (x16 + (x15 + x14)); + x74 = (x19 + (x18 + x17)); + x75 = (x22 + (x21 + x20)); + x76 = (x25 + (x24 + x23)); + x77 = (x27 + x26); + x78 = (x30 + (x29 + x28)); + x79 = (x33 + (x32 + x31)); + x80 = (x36 + (x35 + x34)); + x81 = (x38 + x37); + x82 = (x41 + (x40 + x39)); + x83 = (x44 + (x43 + x42)); + x84 = (x47 + (x46 + x45)); + x85 = (x50 + (x49 + x48)); + x86 = (x52 + x51); + x87 = (x55 + (x54 + x53)); + x88 = (x58 + (x57 + x56)); + x89 = (x61 + (x60 + x59)); + x90 = (x66 + x89); + x91 = (uint8_t)(x90 >> 22); + x92 = (x90 & UINT32_C(0x3fffff)); + x93 = (x91 + x88); + x94 = (uint8_t)(x93 >> 22); + x95 = (x93 & UINT32_C(0x3fffff)); + x96 = (x94 + x87); + x97 = (uint8_t)(x96 >> 23); + x98 = (x96 & UINT32_C(0x7fffff)); + x99 = (x97 + x86); + x100 = (x99 & UINT32_C(0x3fffff)); + x101 = (uint8_t)(x85 >> 22); + x102 = (x85 & UINT32_C(0x3fffff)); + x103 = (x101 + x84); + x104 = (uint8_t)(x103 >> 22); + x105 = (x103 & UINT32_C(0x3fffff)); + x106 = (x104 + x83); + x107 = (uint8_t)(x106 >> 23); + x108 = (x106 & UINT32_C(0x7fffff)); + x109 = (x107 + x82); + x110 = (uint8_t)(x109 >> 22); + x111 = (x109 & UINT32_C(0x3fffff)); + x112 = (x110 + x81); + x113 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x112 >> 22); + x114 = (x112 & UINT32_C(0x3fffff)); + x115 = (x113 + x80); + x116 = (uint8_t)(x115 >> 22); + x117 = (x115 & UINT32_C(0x3fffff)); + x118 = (x116 + x79); + x119 = (uint8_t)(x118 >> 23); + x120 = (x118 & UINT32_C(0x7fffff)); + x121 = (x119 + x78); + x122 = (uint8_t)(x121 >> 22); + x123 = (x121 & UINT32_C(0x3fffff)); + x124 = (x122 + x77); + x125 = (x124 & UINT32_C(0x3fffff)); + x126 = (uint8_t)(x76 >> 22); + x127 = (x76 & UINT32_C(0x3fffff)); + x128 = (x126 + x75); + x129 = (uint8_t)(x128 >> 23); + x130 = (x128 & UINT32_C(0x7fffff)); + x131 = (x129 + x74); + x132 = (uint8_t)(x131 >> 22); + x133 = (x131 & UINT32_C(0x3fffff)); + x134 = (x132 + x73); + x135 = (uint8_t)(x134 >> 22); + x136 = (x134 & UINT32_C(0x3fffff)); + x137 = (x135 + x72); + x138 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x137 >> 22); + x139 = (x137 & UINT32_C(0x3fffff)); + x140 = (x138 + x71); + x141 = (uint8_t)(x140 >> 23); + x142 = (x140 & UINT32_C(0x7fffff)); + x143 = (x141 + x70); + x144 = (uint8_t)(x143 >> 22); + x145 = (x143 & UINT32_C(0x3fffff)); + x146 = (x144 + x69); + x147 = (uint8_t)(x146 >> 22); + x148 = (x146 & UINT32_C(0x3fffff)); + x149 = (x147 + x68); + out1[0] = x67; + out1[1] = x92; + out1[2] = x95; + out1[3] = x98; + out1[4] = x100; + out1[5] = x102; + out1[6] = x105; + out1[7] = x108; + out1[8] = x111; + out1[9] = x114; + out1[10] = x117; + out1[11] = x120; + out1[12] = x123; + out1[13] = x125; + out1[14] = x127; + out1[15] = x130; + out1[16] = x133; + out1[17] = x136; + out1[18] = x139; + out1[19] = x142; + out1[20] = x145; + out1[21] = x148; + out1[22] = x149; +} + +/* END verbatim fiat code */ + +/*- + * Finite field inversion via FLT. + * NB: this is not a real Fiat function, just named that way for consistency. + * Autogenerated: ecp/id_tc26_gost_3410_2012_512_paramSetC/fe_inv.op3 + * custom repunit addition chain + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetC_inv(fe_t output, + const fe_t t1) { + int i; + /* temporary variables */ + fe_t acc, t102, t12, t198, t2, t200, t24, t3, t400, t48, t502, t6, t96; + + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t2, acc, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t3, acc, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t3); + for (i = 0; i < 2; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t6, acc, t3); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t6); + for (i = 0; i < 5; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t12, acc, t6); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t12); + for (i = 0; i < 11; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t24, acc, t12); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t24); + for (i = 0; i < 23; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t48, acc, t24); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t48); + for (i = 0; i < 47; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t96, acc, t48); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t96); + for (i = 0; i < 5; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t102, acc, t6); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t102); + for (i = 0; i < 95; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t198, acc, t96); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t198); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t200, acc, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t200); + for (i = 0; i < 199; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t400, acc, t200); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t400); + for (i = 0; i < 101; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t502, acc, t102); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t502); + for (i = 0; i < 3; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(acc, acc, t3); + for (i = 0; i < 4; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(acc, acc, t1); + for (i = 0; i < 2; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(output, acc, t1); +} + +/* curve coefficient constants */ + +static const limb_t const_one[23] = { + UINT32_C(0x00000001), UINT32_C(0x00000000), UINT32_C(0x00000000), + UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), + UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), + UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), + UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), + UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), + UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), + UINT32_C(0x00000000), UINT32_C(0x00000000)}; + +static const limb_t const_d[23] = { + UINT32_C(0x006E7550), UINT32_C(0x001B7667), UINT32_C(0x00265181), + UINT32_C(0x00054456), UINT32_C(0x0033F0AF), UINT32_C(0x001E91A0), + UINT32_C(0x001E78DA), UINT32_C(0x002CE43E), UINT32_C(0x0016609C), + UINT32_C(0x0028AE03), UINT32_C(0x00273C14), UINT32_C(0x001CE535), + UINT32_C(0x00210504), UINT32_C(0x000A2818), UINT32_C(0x0031EBDE), + UINT32_C(0x00506638), UINT32_C(0x001A016A), UINT32_C(0x003FC9B5), + UINT32_C(0x001E6FAD), UINT32_C(0x00274B9E), UINT32_C(0x0036367C), + UINT32_C(0x0018C017), UINT32_C(0x002793D7)}; + +static const limb_t const_S[23] = { + UINT32_C(0x0004621E), UINT32_C(0x00292266), UINT32_C(0x00166B9F), + UINT32_C(0x001EAEEA), UINT32_C(0x003303D4), UINT32_C(0x00185B97), + UINT32_C(0x001861C9), UINT32_C(0x0074C6F0), UINT32_C(0x000A67D8), + UINT32_C(0x0035D47F), UINT32_C(0x002630FA), UINT32_C(0x0078C6B2), + UINT32_C(0x0037BEBE), UINT32_C(0x001D75F9), UINT32_C(0x00338508), + UINT32_C(0x002BE671), UINT32_C(0x00297FA5), UINT32_C(0x00200D92), + UINT32_C(0x00186414), UINT32_C(0x00762D18), UINT32_C(0x00027260), + UINT32_C(0x0009CFFA), UINT32_C(0x00061B0A)}; + +static const limb_t const_T[23] = { + UINT32_C(0x007D1271), UINT32_C(0x002493BB), UINT32_C(0x00310D95), + UINT32_C(0x006B8B63), UINT32_C(0x003352C7), UINT32_C(0x001A6D9A), + UINT32_C(0x00051424), UINT32_C(0x005CD0B5), UINT32_C(0x0023BAC4), + UINT32_C(0x001C1D00), UINT32_C(0x00268A03), UINT32_C(0x005A2633), + UINT32_C(0x00302B80), UINT32_C(0x001706AE), UINT32_C(0x000851FA), + UINT32_C(0x0062BBB4), UINT32_C(0x00245591), UINT32_C(0x003FF6F3), + UINT32_C(0x0005129C), UINT32_C(0x00313745), UINT32_C(0x0013B3BF), + UINT32_C(0x00397559), UINT32_C(0x002698A3)}; + +/* LUT for scalar multiplication by comb interleaving */ +static const pt_aff_t lut_cmb[7][16] = { + { + {{UINT32_C(0x00000012), UINT32_C(0x00000000), UINT32_C(0x00000000), + UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), + UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), + UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), + UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), + UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), + UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), + UINT32_C(0x00000000), UINT32_C(0x00000000)}, + {UINT32_C(0x00001A3D), UINT32_C(0x0007DCE6), UINT32_C(0x003B0018), + UINT32_C(0x0065755C), UINT32_C(0x0008B012), UINT32_C(0x00309056), + UINT32_C(0x000E5CCB), UINT32_C(0x0068C5D1), UINT32_C(0x003DD7E0), + UINT32_C(0x00067BC4), UINT32_C(0x003A96CA), UINT32_C(0x0034A916), + UINT32_C(0x0037B386), UINT32_C(0x0015845F), UINT32_C(0x00368D9A), + UINT32_C(0x00405E50), UINT32_C(0x003EFD86), UINT32_C(0x0003C541), + UINT32_C(0x0015BBD0), UINT32_C(0x005732B2), UINT32_C(0x0007D785), + UINT32_C(0x0039D1FB), UINT32_C(0x0011A6BD)}, + {UINT32_C(0x0001E12E), UINT32_C(0x000D882C), UINT32_C(0x002601B2), + UINT32_C(0x00224088), UINT32_C(0x001C6152), UINT32_C(0x002A260E), + UINT32_C(0x00028653), UINT32_C(0x005DE8B6), UINT32_C(0x00192DCE), + UINT32_C(0x0034B3D9), UINT32_C(0x001E9A35), UINT32_C(0x0033E39C), + UINT32_C(0x002A9F73), UINT32_C(0x00034EBD), UINT32_C(0x0015F4DA), + UINT32_C(0x0006A1AF), UINT32_C(0x002DD375), UINT32_C(0x0003DEA3), + UINT32_C(0x000734A1), UINT32_C(0x0021908A), UINT32_C(0x000D2766), + UINT32_C(0x0010C3A8), UINT32_C(0x003DB95A)}}, + {{UINT32_C(0x00714838), UINT32_C(0x003864C7), UINT32_C(0x0015E5EE), + UINT32_C(0x0023E2F6), UINT32_C(0x0001272F), UINT32_C(0x00115410), + UINT32_C(0x003575F4), UINT32_C(0x00599E80), UINT32_C(0x001911C3), + UINT32_C(0x0016A65A), UINT32_C(0x001D472E), UINT32_C(0x006F3D5B), + UINT32_C(0x0010340F), UINT32_C(0x000E837F), UINT32_C(0x0027C450), + UINT32_C(0x007123EC), UINT32_C(0x0028CF66), UINT32_C(0x000CD738), + UINT32_C(0x00028A9A), UINT32_C(0x000CAEE3), UINT32_C(0x00261B2D), + UINT32_C(0x001B65D5), UINT32_C(0x0003754B)}, + {UINT32_C(0x0062FF0C), UINT32_C(0x0039AC13), UINT32_C(0x003468DD), + UINT32_C(0x005CFC63), UINT32_C(0x0003F7D2), UINT32_C(0x00370AE6), + UINT32_C(0x0036C17A), UINT32_C(0x001D053E), UINT32_C(0x0004E79D), + UINT32_C(0x00268C78), UINT32_C(0x0038AB40), UINT32_C(0x007DDB1E), + UINT32_C(0x003B4D93), UINT32_C(0x003572D3), UINT32_C(0x00124D45), + UINT32_C(0x0072B7DA), UINT32_C(0x0018E151), UINT32_C(0x001874E3), + UINT32_C(0x00372E71), UINT32_C(0x00505781), UINT32_C(0x0019B7EF), + UINT32_C(0x00225C53), UINT32_C(0x00008A46)}, + {UINT32_C(0x00224325), UINT32_C(0x001B6A98), UINT32_C(0x003712F0), + UINT32_C(0x0029896C), UINT32_C(0x00276411), UINT32_C(0x00312C3D), + UINT32_C(0x003C91A0), UINT32_C(0x005E5815), UINT32_C(0x00297712), + UINT32_C(0x003DE7C7), UINT32_C(0x002D1F5F), UINT32_C(0x002BD84B), + UINT32_C(0x0031E9D5), UINT32_C(0x00049136), UINT32_C(0x001802F2), + UINT32_C(0x002F8CF5), UINT32_C(0x002DB47F), UINT32_C(0x00132C57), + UINT32_C(0x000A8508), UINT32_C(0x003D2B4C), UINT32_C(0x0028BD48), + UINT32_C(0x001D60C1), UINT32_C(0x003E0AA0)}}, + {{UINT32_C(0x0030B9C8), UINT32_C(0x002685FC), UINT32_C(0x001B92BC), + UINT32_C(0x0018DFEF), UINT32_C(0x0022306A), UINT32_C(0x0011C069), + UINT32_C(0x003EB95C), UINT32_C(0x003F5EF0), UINT32_C(0x0007C592), + UINT32_C(0x00381817), UINT32_C(0x0010861D), UINT32_C(0x0004D484), + UINT32_C(0x0023D575), UINT32_C(0x003F10B5), UINT32_C(0x000A70AA), + UINT32_C(0x004D7662), UINT32_C(0x000DD1AA), UINT32_C(0x003FD38C), + UINT32_C(0x000A6668), UINT32_C(0x0025165D), UINT32_C(0x00181E91), + UINT32_C(0x000E23E5), UINT32_C(0x00269040)}, + {UINT32_C(0x00341E21), UINT32_C(0x00257531), UINT32_C(0x000967CF), + UINT32_C(0x0019BA94), UINT32_C(0x00151857), UINT32_C(0x0019AA1E), + UINT32_C(0x0007DC17), UINT32_C(0x0011DB85), UINT32_C(0x002D3151), + UINT32_C(0x002CEDD2), UINT32_C(0x0024E69B), UINT32_C(0x001A161C), + UINT32_C(0x001A4C0C), UINT32_C(0x000AF920), UINT32_C(0x00070D8C), + UINT32_C(0x006577B1), UINT32_C(0x0020BA5B), UINT32_C(0x003E2CB7), + UINT32_C(0x002FDC2A), UINT32_C(0x0035FBC6), UINT32_C(0x0022FA7D), + UINT32_C(0x0033F920), UINT32_C(0x00271D0D)}, + {UINT32_C(0x005E541E), UINT32_C(0x001D52C8), UINT32_C(0x001062DD), + UINT32_C(0x0024B0B7), UINT32_C(0x0038AB52), UINT32_C(0x00390136), + UINT32_C(0x000229FC), UINT32_C(0x00083904), UINT32_C(0x001D494F), + UINT32_C(0x003390EA), UINT32_C(0x002173E5), UINT32_C(0x003C560E), + UINT32_C(0x002DBD84), UINT32_C(0x0005F4E6), UINT32_C(0x0027C060), + UINT32_C(0x00018F19), UINT32_C(0x00021C09), UINT32_C(0x002C4427), + UINT32_C(0x002AF1D0), UINT32_C(0x00137D94), UINT32_C(0x00398A24), + UINT32_C(0x0015C3EE), UINT32_C(0x002465FE)}}, + {{UINT32_C(0x00323C86), UINT32_C(0x00177FDA), UINT32_C(0x0039B750), + UINT32_C(0x00273D46), UINT32_C(0x0017FBDD), UINT32_C(0x002CF518), + UINT32_C(0x000BBF36), UINT32_C(0x005C0328), UINT32_C(0x002CE181), + UINT32_C(0x00006A3B), UINT32_C(0x000E6E58), UINT32_C(0x000239AB), + UINT32_C(0x0034C2CE), UINT32_C(0x00074E3E), UINT32_C(0x003363F2), + UINT32_C(0x00095FCE), UINT32_C(0x0011CAA2), UINT32_C(0x0020BAF6), + UINT32_C(0x0033EA63), UINT32_C(0x0066A91E), UINT32_C(0x002CC83A), + UINT32_C(0x000D84AE), UINT32_C(0x001B7D65)}, + {UINT32_C(0x004CD0FD), UINT32_C(0x002320B8), UINT32_C(0x001CB711), + UINT32_C(0x00404C3F), UINT32_C(0x003A65B2), UINT32_C(0x00256419), + UINT32_C(0x00163A1D), UINT32_C(0x007E15F5), UINT32_C(0x00302B21), + UINT32_C(0x000C47D7), UINT32_C(0x003C9CBF), UINT32_C(0x002DA840), + UINT32_C(0x00354B2A), UINT32_C(0x00019F94), UINT32_C(0x0005E8B1), + UINT32_C(0x002B8F3D), UINT32_C(0x0026C85C), UINT32_C(0x001F3DD4), + UINT32_C(0x00251D66), UINT32_C(0x0048EC35), UINT32_C(0x00206268), + UINT32_C(0x002913A7), UINT32_C(0x001F1F83)}, + {UINT32_C(0x0077F340), UINT32_C(0x0008D7FB), UINT32_C(0x0029E763), + UINT32_C(0x00797AAF), UINT32_C(0x00060644), UINT32_C(0x00035A5C), + UINT32_C(0x00009727), UINT32_C(0x00626D74), UINT32_C(0x00249825), + UINT32_C(0x00181FBF), UINT32_C(0x00083B0B), UINT32_C(0x0006F875), + UINT32_C(0x00331E5F), UINT32_C(0x00343541), UINT32_C(0x0037AD03), + UINT32_C(0x0004A743), UINT32_C(0x0018465B), UINT32_C(0x00203D5A), + UINT32_C(0x002CA6BE), UINT32_C(0x0008AAB6), UINT32_C(0x00181A90), + UINT32_C(0x002D8F7B), UINT32_C(0x00153EB7)}}, + {{UINT32_C(0x0018A411), UINT32_C(0x003A0221), UINT32_C(0x003C31B0), + UINT32_C(0x00798D8F), UINT32_C(0x002E6982), UINT32_C(0x003E68C9), + UINT32_C(0x0011C222), UINT32_C(0x004A377B), UINT32_C(0x001B47F3), + UINT32_C(0x003998D9), UINT32_C(0x0014AB3E), UINT32_C(0x0058D2AA), + UINT32_C(0x0004E849), UINT32_C(0x001856B6), UINT32_C(0x0009B3EA), + UINT32_C(0x0032F37E), UINT32_C(0x0021A719), UINT32_C(0x002BD295), + UINT32_C(0x0014959E), UINT32_C(0x0025E386), UINT32_C(0x003F0C52), + UINT32_C(0x003FCEAA), UINT32_C(0x00263172)}, + {UINT32_C(0x001A14E2), UINT32_C(0x001F7D87), UINT32_C(0x0030183E), + UINT32_C(0x006D32ED), UINT32_C(0x002DF898), UINT32_C(0x002CEF71), + UINT32_C(0x002646CB), UINT32_C(0x001B0DAD), UINT32_C(0x001A7601), + UINT32_C(0x0020A57E), UINT32_C(0x0008D5E8), UINT32_C(0x003FAF5F), + UINT32_C(0x00128ED4), UINT32_C(0x0025B18D), UINT32_C(0x002F0FA9), + UINT32_C(0x003A6179), UINT32_C(0x00078264), UINT32_C(0x00351FE0), + UINT32_C(0x00074564), UINT32_C(0x001FB814), UINT32_C(0x003C2C48), + UINT32_C(0x00164834), UINT32_C(0x00270D18)}, + {UINT32_C(0x0033F8B7), UINT32_C(0x002F3A9D), UINT32_C(0x000E251A), + UINT32_C(0x0030DA6B), UINT32_C(0x0026849C), UINT32_C(0x002D0B0C), + UINT32_C(0x002C4BF7), UINT32_C(0x00515301), UINT32_C(0x00036F37), + UINT32_C(0x000A9DBF), UINT32_C(0x00298CD0), UINT32_C(0x0024A32B), + UINT32_C(0x0026D945), UINT32_C(0x002C3300), UINT32_C(0x00268566), + UINT32_C(0x001E4819), UINT32_C(0x00102918), UINT32_C(0x00235296), + UINT32_C(0x001B311B), UINT32_C(0x007F2404), UINT32_C(0x0038D33D), + UINT32_C(0x001E3550), UINT32_C(0x00090157)}}, + {{UINT32_C(0x00320711), UINT32_C(0x00340698), UINT32_C(0x001F056A), + UINT32_C(0x003BD939), UINT32_C(0x003171B5), UINT32_C(0x0038A716), + UINT32_C(0x0015FA28), UINT32_C(0x0064ADE0), UINT32_C(0x000F0671), + UINT32_C(0x001DCC6E), UINT32_C(0x0021080E), UINT32_C(0x004176EE), + UINT32_C(0x003EEFBE), UINT32_C(0x0014ABF9), UINT32_C(0x0011CE49), + UINT32_C(0x005C1B2A), UINT32_C(0x001DCCBC), UINT32_C(0x000F5858), + UINT32_C(0x0014B76C), UINT32_C(0x002FEF68), UINT32_C(0x0013BBA8), + UINT32_C(0x00271302), UINT32_C(0x002A675D)}, + {UINT32_C(0x0022D5DC), UINT32_C(0x00189878), UINT32_C(0x003957D3), + UINT32_C(0x00124011), UINT32_C(0x000C0FF4), UINT32_C(0x0021C5F0), + UINT32_C(0x001CF183), UINT32_C(0x005C75FB), UINT32_C(0x000A4A72), + UINT32_C(0x001621E5), UINT32_C(0x002D902F), UINT32_C(0x000A5E79), + UINT32_C(0x0007D979), UINT32_C(0x002FA252), UINT32_C(0x001A032C), + UINT32_C(0x006E4700), UINT32_C(0x001CDDED), UINT32_C(0x0015AFC0), + UINT32_C(0x001B495C), UINT32_C(0x0025BC0A), UINT32_C(0x003D6AB6), + UINT32_C(0x001C2483), UINT32_C(0x002F3B9A)}, + {UINT32_C(0x0057AFE2), UINT32_C(0x003853AA), UINT32_C(0x00381675), + UINT32_C(0x0053C924), UINT32_C(0x0004A57A), UINT32_C(0x003A659F), + UINT32_C(0x0007371F), UINT32_C(0x006B5A26), UINT32_C(0x0029ED43), + UINT32_C(0x000F437B), UINT32_C(0x0003DA56), UINT32_C(0x0043A9B2), + UINT32_C(0x001ED072), UINT32_C(0x002BF85E), UINT32_C(0x000106D8), + UINT32_C(0x004A67F0), UINT32_C(0x00249FD9), UINT32_C(0x002B8C98), + UINT32_C(0x0011FD8E), UINT32_C(0x006EF5A5), UINT32_C(0x00274425), + UINT32_C(0x002A63C4), UINT32_C(0x0010FE70)}}, + {{UINT32_C(0x003BFFEF), UINT32_C(0x0028BC0F), UINT32_C(0x000C1E3B), + UINT32_C(0x00332346), UINT32_C(0x00097C49), UINT32_C(0x000642A0), + UINT32_C(0x001511EB), UINT32_C(0x00662119), UINT32_C(0x0038700F), + UINT32_C(0x0010075B), UINT32_C(0x000217A9), UINT32_C(0x00515D8A), + UINT32_C(0x003768A5), UINT32_C(0x00001AAD), UINT32_C(0x00033785), + UINT32_C(0x000EAFDA), UINT32_C(0x0028D7EE), UINT32_C(0x00386C98), + UINT32_C(0x002309D6), UINT32_C(0x00217545), UINT32_C(0x0036E128), + UINT32_C(0x0036F567), UINT32_C(0x00084D45)}, + {UINT32_C(0x006DDAC3), UINT32_C(0x00211A34), UINT32_C(0x00334127), + UINT32_C(0x0068417F), UINT32_C(0x002536CA), UINT32_C(0x00392B50), + UINT32_C(0x00121BF5), UINT32_C(0x006FAE39), UINT32_C(0x001B66D6), + UINT32_C(0x0001A543), UINT32_C(0x00047D4A), UINT32_C(0x00320EF6), + UINT32_C(0x0032B862), UINT32_C(0x000E86D1), UINT32_C(0x0003B670), + UINT32_C(0x004D6880), UINT32_C(0x0017DCED), UINT32_C(0x002D4CAD), + UINT32_C(0x002F1822), UINT32_C(0x0061F872), UINT32_C(0x00117A0E), + UINT32_C(0x00227CBF), UINT32_C(0x00118A0F)}, + {UINT32_C(0x00597549), UINT32_C(0x00311975), UINT32_C(0x0012ADA8), + UINT32_C(0x000BF81E), UINT32_C(0x000447DB), UINT32_C(0x0036564B), + UINT32_C(0x0036D4A4), UINT32_C(0x005A12B6), UINT32_C(0x001D943E), + UINT32_C(0x001FA011), UINT32_C(0x0022FC7D), UINT32_C(0x001B96F2), + UINT32_C(0x00197333), UINT32_C(0x000F5F62), UINT32_C(0x0026D265), + UINT32_C(0x000DBBE2), UINT32_C(0x002B31B9), UINT32_C(0x002BF98D), + UINT32_C(0x0025C030), UINT32_C(0x001A95A2), UINT32_C(0x003B2FA4), + UINT32_C(0x000B0C82), UINT32_C(0x0021FEE2)}}, + {{UINT32_C(0x0015EE0D), UINT32_C(0x00026FEB), UINT32_C(0x003AD4F5), + UINT32_C(0x003274AE), UINT32_C(0x001265E7), UINT32_C(0x0017040F), + UINT32_C(0x0013C06E), UINT32_C(0x00448F30), UINT32_C(0x00134ED6), + UINT32_C(0x002635D7), UINT32_C(0x000B19B7), UINT32_C(0x0044CA5A), + UINT32_C(0x002D51CD), UINT32_C(0x003CBBA9), UINT32_C(0x000BA676), + UINT32_C(0x0044E2E0), UINT32_C(0x002D3C1D), UINT32_C(0x001B2C78), + UINT32_C(0x0018CB04), UINT32_C(0x000F06A8), UINT32_C(0x0029FAAE), + UINT32_C(0x003BD16D), UINT32_C(0x002947AD)}, + {UINT32_C(0x000B19BD), UINT32_C(0x002858FE), UINT32_C(0x0001456B), + UINT32_C(0x00651923), UINT32_C(0x00153B6F), UINT32_C(0x00192326), + UINT32_C(0x001EDFC6), UINT32_C(0x003AF276), UINT32_C(0x00039EE2), + UINT32_C(0x00085A43), UINT32_C(0x0005BE71), UINT32_C(0x00091140), + UINT32_C(0x002D46EB), UINT32_C(0x0017E252), UINT32_C(0x0005EB99), + UINT32_C(0x002B8AE0), UINT32_C(0x001B76CF), UINT32_C(0x0006AF84), + UINT32_C(0x00353A13), UINT32_C(0x00310D97), UINT32_C(0x0023CC43), + UINT32_C(0x00112265), UINT32_C(0x000E4E08)}, + {UINT32_C(0x00172BA5), UINT32_C(0x00224E8D), UINT32_C(0x0008E83D), + UINT32_C(0x006E0FD7), UINT32_C(0x000CA435), UINT32_C(0x003F7B82), + UINT32_C(0x002AE24B), UINT32_C(0x00203AE6), UINT32_C(0x001109AA), + UINT32_C(0x002D29BE), UINT32_C(0x00209120), UINT32_C(0x00435C39), + UINT32_C(0x0010375A), UINT32_C(0x003466D6), UINT32_C(0x003A4483), + UINT32_C(0x004C88D7), UINT32_C(0x002B8FCF), UINT32_C(0x000D4C74), + UINT32_C(0x0000EAD7), UINT32_C(0x004E1D11), UINT32_C(0x0008F6A2), + UINT32_C(0x0036C2A6), UINT32_C(0x000F1EC2)}}, + {{UINT32_C(0x007F3A5F), UINT32_C(0x001992D7), UINT32_C(0x0033F7AE), + UINT32_C(0x00399159), UINT32_C(0x000EA75B), UINT32_C(0x0024BE3F), + UINT32_C(0x00137150), UINT32_C(0x0009C6C8), UINT32_C(0x00224779), + UINT32_C(0x0024DA62), UINT32_C(0x0039D8C0), UINT32_C(0x00274469), + UINT32_C(0x00059EDB), UINT32_C(0x00230792), UINT32_C(0x0011EA0B), + UINT32_C(0x000ACCB4), UINT32_C(0x001A5DB9), UINT32_C(0x0033F671), + UINT32_C(0x0008F9E0), UINT32_C(0x00171663), UINT32_C(0x0034D6E6), + UINT32_C(0x000FD1E8), UINT32_C(0x00305366)}, + {UINT32_C(0x005EDF20), UINT32_C(0x003A4158), UINT32_C(0x003152D2), + UINT32_C(0x0039738C), UINT32_C(0x00219AF4), UINT32_C(0x000AD69F), + UINT32_C(0x0000A7ED), UINT32_C(0x0006EB20), UINT32_C(0x001DB459), + UINT32_C(0x00249C37), UINT32_C(0x0008C20F), UINT32_C(0x004E26FA), + UINT32_C(0x0018A7F4), UINT32_C(0x002A583D), UINT32_C(0x00026534), + UINT32_C(0x004D37CC), UINT32_C(0x002BF41A), UINT32_C(0x0004D4E5), + UINT32_C(0x002B73A3), UINT32_C(0x003F1C84), UINT32_C(0x002883C4), + UINT32_C(0x003BC222), UINT32_C(0x00089D6C)}, + {UINT32_C(0x007B6E7F), UINT32_C(0x0022175E), UINT32_C(0x00285356), + UINT32_C(0x0025E3A3), UINT32_C(0x001037EF), UINT32_C(0x003AD3A2), + UINT32_C(0x001C9C57), UINT32_C(0x00504AAE), UINT32_C(0x00064EF6), + UINT32_C(0x00017470), UINT32_C(0x001DB4A2), UINT32_C(0x005776DF), + UINT32_C(0x001E96EF), UINT32_C(0x0017DA2B), UINT32_C(0x002DD3D9), + UINT32_C(0x0073CBB8), UINT32_C(0x00140A2F), UINT32_C(0x00109B2E), + UINT32_C(0x000B5EA4), UINT32_C(0x00064397), UINT32_C(0x0000884C), + UINT32_C(0x00089DD2), UINT32_C(0x002AF788)}}, + {{UINT32_C(0x00735FB2), UINT32_C(0x002F19A0), UINT32_C(0x00030F84), + UINT32_C(0x0069D875), UINT32_C(0x0030428E), UINT32_C(0x001C7831), + UINT32_C(0x00348247), UINT32_C(0x001553C9), UINT32_C(0x00363ED5), + UINT32_C(0x0012E6AE), UINT32_C(0x00297863), UINT32_C(0x005231B6), + UINT32_C(0x00076EF8), UINT32_C(0x002A51F3), UINT32_C(0x00053479), + UINT32_C(0x00728729), UINT32_C(0x000565E8), UINT32_C(0x00253185), + UINT32_C(0x00373E1C), UINT32_C(0x00173952), UINT32_C(0x00378596), + UINT32_C(0x0035C7D9), UINT32_C(0x001AFA68)}, + {UINT32_C(0x007813F3), UINT32_C(0x0032A16A), UINT32_C(0x002DCCB1), + UINT32_C(0x0020A412), UINT32_C(0x0032EE55), UINT32_C(0x00060B7C), + UINT32_C(0x0001221A), UINT32_C(0x00746789), UINT32_C(0x002B0E40), + UINT32_C(0x001D2DCC), UINT32_C(0x000CB8AC), UINT32_C(0x001FC5BD), + UINT32_C(0x003BCC70), UINT32_C(0x0002C6F3), UINT32_C(0x0006C465), + UINT32_C(0x00105D9D), UINT32_C(0x000CB0AE), UINT32_C(0x002CF08C), + UINT32_C(0x0022B897), UINT32_C(0x004F105D), UINT32_C(0x002334A0), + UINT32_C(0x000C0A22), UINT32_C(0x002CF1F5)}, + {UINT32_C(0x00505E0F), UINT32_C(0x0012ED31), UINT32_C(0x002474AB), + UINT32_C(0x0024227C), UINT32_C(0x000514EC), UINT32_C(0x001D9F97), + UINT32_C(0x000799FA), UINT32_C(0x006748EE), UINT32_C(0x001B12FA), + UINT32_C(0x00297127), UINT32_C(0x001AB293), UINT32_C(0x00592DE3), + UINT32_C(0x00202A4E), UINT32_C(0x0028F351), UINT32_C(0x00267888), + UINT32_C(0x007C29E7), UINT32_C(0x00191344), UINT32_C(0x003BB856), + UINT32_C(0x003D0068), UINT32_C(0x006A2ECD), UINT32_C(0x000FFBC8), + UINT32_C(0x001ACF89), UINT32_C(0x0012063A)}}, + {{UINT32_C(0x0069FBFB), UINT32_C(0x00156959), UINT32_C(0x000608FA), + UINT32_C(0x00785C89), UINT32_C(0x003AC4C8), UINT32_C(0x0027AB75), + UINT32_C(0x001FCC4F), UINT32_C(0x001F7944), UINT32_C(0x0017EB65), + UINT32_C(0x003C2011), UINT32_C(0x00325CA4), UINT32_C(0x001506DC), + UINT32_C(0x000E2144), UINT32_C(0x002D1626), UINT32_C(0x0016961D), + UINT32_C(0x00363598), UINT32_C(0x003C4B42), UINT32_C(0x000025DF), + UINT32_C(0x0029E048), UINT32_C(0x0036C933), UINT32_C(0x0006A748), + UINT32_C(0x003B1A3D), UINT32_C(0x00072BBF)}, + {UINT32_C(0x00347FD3), UINT32_C(0x0023FEC8), UINT32_C(0x00365C46), + UINT32_C(0x00206227), UINT32_C(0x002642D5), UINT32_C(0x000F856C), + UINT32_C(0x000D409C), UINT32_C(0x0022DD47), UINT32_C(0x0037EDB3), + UINT32_C(0x00295E9B), UINT32_C(0x00168C23), UINT32_C(0x006707A7), + UINT32_C(0x00191E7D), UINT32_C(0x001B783E), UINT32_C(0x003FB2D4), + UINT32_C(0x006B0C90), UINT32_C(0x00233284), UINT32_C(0x000CD25A), + UINT32_C(0x001F61F1), UINT32_C(0x004E3362), UINT32_C(0x002620F3), + UINT32_C(0x00036CD2), UINT32_C(0x00187790)}, + {UINT32_C(0x00415547), UINT32_C(0x00056478), UINT32_C(0x003F9AE8), + UINT32_C(0x002A78C9), UINT32_C(0x000B1617), UINT32_C(0x002994FB), + UINT32_C(0x0017A9C0), UINT32_C(0x002443FA), UINT32_C(0x0033C2A2), + UINT32_C(0x00314877), UINT32_C(0x003E8C07), UINT32_C(0x001D6145), + UINT32_C(0x0009E22B), UINT32_C(0x001E135D), UINT32_C(0x0026E0F2), + UINT32_C(0x0076C01C), UINT32_C(0x0009F80A), UINT32_C(0x0038B123), + UINT32_C(0x00061F27), UINT32_C(0x0037D737), UINT32_C(0x001266FA), + UINT32_C(0x00194F60), UINT32_C(0x000A4432)}}, + {{UINT32_C(0x0031C22E), UINT32_C(0x001B7130), UINT32_C(0x001E8939), + UINT32_C(0x006F4F1F), UINT32_C(0x001B084A), UINT32_C(0x000AE27B), + UINT32_C(0x00243D6B), UINT32_C(0x00341897), UINT32_C(0x00185C0C), + UINT32_C(0x00283264), UINT32_C(0x0033AFEF), UINT32_C(0x00273C32), + UINT32_C(0x0037390A), UINT32_C(0x00216908), UINT32_C(0x0000E39D), + UINT32_C(0x0022F13E), UINT32_C(0x00023196), UINT32_C(0x00266EDA), + UINT32_C(0x002E74B0), UINT32_C(0x0068D67D), UINT32_C(0x0019B003), + UINT32_C(0x002462D8), UINT32_C(0x001D92FD)}, + {UINT32_C(0x003AE17C), UINT32_C(0x00213D60), UINT32_C(0x00246509), + UINT32_C(0x00243E35), UINT32_C(0x000C9ADF), UINT32_C(0x0016B366), + UINT32_C(0x00061E45), UINT32_C(0x0022A2B9), UINT32_C(0x0006570F), + UINT32_C(0x00302A1D), UINT32_C(0x002E384B), UINT32_C(0x00083836), + UINT32_C(0x00231790), UINT32_C(0x000946A6), UINT32_C(0x001C75BC), + UINT32_C(0x002F1936), UINT32_C(0x001F19E1), UINT32_C(0x0020A5E8), + UINT32_C(0x002CCC4B), UINT32_C(0x003C73D2), UINT32_C(0x0013DA6B), + UINT32_C(0x000150AC), UINT32_C(0x003D6E3C)}, + {UINT32_C(0x0048F7FB), UINT32_C(0x00078414), UINT32_C(0x0025AA31), + UINT32_C(0x0024F2EA), UINT32_C(0x00251A2F), UINT32_C(0x00350186), + UINT32_C(0x00242828), UINT32_C(0x001AF8F7), UINT32_C(0x001E7A82), + UINT32_C(0x00180FD1), UINT32_C(0x002C709A), UINT32_C(0x00009FF0), + UINT32_C(0x00243CBB), UINT32_C(0x002BA544), UINT32_C(0x000A79D6), + UINT32_C(0x007FB7BA), UINT32_C(0x002E4F31), UINT32_C(0x000D9BA1), + UINT32_C(0x000488DF), UINT32_C(0x002BD096), UINT32_C(0x002360FA), + UINT32_C(0x003C511A), UINT32_C(0x001A1012)}}, + {{UINT32_C(0x000D6219), UINT32_C(0x001EB7CA), UINT32_C(0x00290FB0), + UINT32_C(0x004BE668), UINT32_C(0x001673D0), UINT32_C(0x002187C6), + UINT32_C(0x002109E9), UINT32_C(0x002142AD), UINT32_C(0x002B9655), + UINT32_C(0x0016BB18), UINT32_C(0x000505A1), UINT32_C(0x003CF749), + UINT32_C(0x000508B1), UINT32_C(0x0007750E), UINT32_C(0x0011E906), + UINT32_C(0x006BC76B), UINT32_C(0x0010180A), UINT32_C(0x003F71C4), + UINT32_C(0x0025BBCB), UINT32_C(0x0019E43E), UINT32_C(0x000C640C), + UINT32_C(0x00023109), UINT32_C(0x0036776C)}, + {UINT32_C(0x007854C6), UINT32_C(0x0036123B), UINT32_C(0x000FD077), + UINT32_C(0x003A6383), UINT32_C(0x00016A28), UINT32_C(0x00023347), + UINT32_C(0x00355348), UINT32_C(0x00309EB3), UINT32_C(0x0013FC16), + UINT32_C(0x00127D7E), UINT32_C(0x000A0B31), UINT32_C(0x00619126), + UINT32_C(0x0032CE4A), UINT32_C(0x001C53EA), UINT32_C(0x00009B36), + UINT32_C(0x007EBF13), UINT32_C(0x00153CEC), UINT32_C(0x002F0B2B), + UINT32_C(0x001FEA94), UINT32_C(0x0018DD53), UINT32_C(0x002DFE81), + UINT32_C(0x00250282), UINT32_C(0x0028BBC9)}, + {UINT32_C(0x006BDFE8), UINT32_C(0x003D7D6C), UINT32_C(0x003081DE), + UINT32_C(0x003D3D16), UINT32_C(0x003CAB31), UINT32_C(0x001C9412), + UINT32_C(0x001096D6), UINT32_C(0x0020B298), UINT32_C(0x0022CDB0), + UINT32_C(0x00023945), UINT32_C(0x00319AEF), UINT32_C(0x00316D40), + UINT32_C(0x001EFBBC), UINT32_C(0x0030E49F), UINT32_C(0x002D6387), + UINT32_C(0x007C9B05), UINT32_C(0x000FF238), UINT32_C(0x002AB556), + UINT32_C(0x001D7A21), UINT32_C(0x00746313), UINT32_C(0x002064F3), + UINT32_C(0x00159471), UINT32_C(0x0006420E)}}, + {{UINT32_C(0x000F873E), UINT32_C(0x000A10CD), UINT32_C(0x002BE785), + UINT32_C(0x0038B227), UINT32_C(0x0034217F), UINT32_C(0x001DEE7A), + UINT32_C(0x000EF9FF), UINT32_C(0x00642E35), UINT32_C(0x003BBD91), + UINT32_C(0x00394167), UINT32_C(0x0011C45D), UINT32_C(0x00248D59), + UINT32_C(0x0006CAF4), UINT32_C(0x00356B6A), UINT32_C(0x000C93E3), + UINT32_C(0x007DF1C5), UINT32_C(0x0015175F), UINT32_C(0x0006774E), + UINT32_C(0x002C2F46), UINT32_C(0x0012A0B5), UINT32_C(0x0026AC43), + UINT32_C(0x00316265), UINT32_C(0x0017578E)}, + {UINT32_C(0x00637692), UINT32_C(0x0017AA0F), UINT32_C(0x000349D7), + UINT32_C(0x0042BD56), UINT32_C(0x0020AC26), UINT32_C(0x00153D2E), + UINT32_C(0x003BFE98), UINT32_C(0x0045B29F), UINT32_C(0x000C665A), + UINT32_C(0x0015F634), UINT32_C(0x0031F264), UINT32_C(0x0005C891), + UINT32_C(0x003F619E), UINT32_C(0x0028131C), UINT32_C(0x0018D792), + UINT32_C(0x006219EF), UINT32_C(0x0039BD88), UINT32_C(0x001F8951), + UINT32_C(0x000E21DF), UINT32_C(0x00495EAD), UINT32_C(0x00342FCA), + UINT32_C(0x00196C92), UINT32_C(0x001EF0FA)}, + {UINT32_C(0x0047865A), UINT32_C(0x00318D12), UINT32_C(0x003C903E), + UINT32_C(0x000BD15E), UINT32_C(0x003D2D6E), UINT32_C(0x0002AA3A), + UINT32_C(0x00227179), UINT32_C(0x0073CF23), UINT32_C(0x002DC1A1), + UINT32_C(0x000D9B0C), UINT32_C(0x0011B186), UINT32_C(0x0068972C), + UINT32_C(0x000C6DF0), UINT32_C(0x00077408), UINT32_C(0x0028FAEE), + UINT32_C(0x001C3C02), UINT32_C(0x0037190A), UINT32_C(0x002F00E2), + UINT32_C(0x001EC176), UINT32_C(0x00072B55), UINT32_C(0x0024E393), + UINT32_C(0x0032CF55), UINT32_C(0x001437CD)}}, + {{UINT32_C(0x006D31AF), UINT32_C(0x00321E4E), UINT32_C(0x000CA7EE), + UINT32_C(0x005ABB74), UINT32_C(0x0000C3A9), UINT32_C(0x0019A488), + UINT32_C(0x001861A0), UINT32_C(0x00582F9D), UINT32_C(0x003CFD06), + UINT32_C(0x002EA1AF), UINT32_C(0x0018A543), UINT32_C(0x0010F4B5), + UINT32_C(0x0010715D), UINT32_C(0x001F9AF3), UINT32_C(0x0023023F), + UINT32_C(0x001643E3), UINT32_C(0x00215F28), UINT32_C(0x0019FD03), + UINT32_C(0x0022E874), UINT32_C(0x003DA8F6), UINT32_C(0x0039620A), + UINT32_C(0x0022056A), UINT32_C(0x000EA069)}, + {UINT32_C(0x000518C5), UINT32_C(0x001AE0BF), UINT32_C(0x00094299), + UINT32_C(0x001E2DED), UINT32_C(0x003500DA), UINT32_C(0x0009630E), + UINT32_C(0x00063632), UINT32_C(0x003387CC), UINT32_C(0x00031191), + UINT32_C(0x00108CFD), UINT32_C(0x00182E5F), UINT32_C(0x00683906), + UINT32_C(0x000540A6), UINT32_C(0x0028D759), UINT32_C(0x001EE5BE), + UINT32_C(0x00066621), UINT32_C(0x001C501A), UINT32_C(0x0013C28F), + UINT32_C(0x000A2AA3), UINT32_C(0x003F6A17), UINT32_C(0x0007898A), + UINT32_C(0x002E1235), UINT32_C(0x000019A8)}, + {UINT32_C(0x006FEED8), UINT32_C(0x001D5B2A), UINT32_C(0x003F2A5F), + UINT32_C(0x00097336), UINT32_C(0x0037FB45), UINT32_C(0x002DB6D6), + UINT32_C(0x002CC41F), UINT32_C(0x003D7B28), UINT32_C(0x002F8AD4), + UINT32_C(0x003151FC), UINT32_C(0x001C064A), UINT32_C(0x003C6241), + UINT32_C(0x00365F52), UINT32_C(0x001581A2), UINT32_C(0x000C7BF2), + UINT32_C(0x002AD32B), UINT32_C(0x0009C743), UINT32_C(0x0000608A), + UINT32_C(0x00282F9A), UINT32_C(0x00263A9C), UINT32_C(0x003D2500), + UINT32_C(0x003476D7), UINT32_C(0x0039390A)}}, + {{UINT32_C(0x004F5AD3), UINT32_C(0x001444FE), UINT32_C(0x0006BAFD), + UINT32_C(0x0061624F), UINT32_C(0x00011230), UINT32_C(0x00078216), + UINT32_C(0x00298470), UINT32_C(0x0015013E), UINT32_C(0x003A1285), + UINT32_C(0x0016EA4D), UINT32_C(0x001DD727), UINT32_C(0x001A40E5), + UINT32_C(0x002D2579), UINT32_C(0x001F10D3), UINT32_C(0x00220C0B), + UINT32_C(0x000EC9E4), UINT32_C(0x0026BC42), UINT32_C(0x0003AB97), + UINT32_C(0x00393447), UINT32_C(0x0045B418), UINT32_C(0x0006D93B), + UINT32_C(0x0010FC88), UINT32_C(0x00064A8E)}, + {UINT32_C(0x006BE9EA), UINT32_C(0x000CA597), UINT32_C(0x002253CF), + UINT32_C(0x00638639), UINT32_C(0x002B0B51), UINT32_C(0x00030BC7), + UINT32_C(0x00323019), UINT32_C(0x000CCA80), UINT32_C(0x0010E5F7), + UINT32_C(0x002EC009), UINT32_C(0x0015B4CB), UINT32_C(0x00663CF0), + UINT32_C(0x0035A148), UINT32_C(0x002FA75B), UINT32_C(0x00311933), + UINT32_C(0x0063C853), UINT32_C(0x0011D6D9), UINT32_C(0x0037F8DF), + UINT32_C(0x001CF5AA), UINT32_C(0x00151B7A), UINT32_C(0x000C96E3), + UINT32_C(0x002C8326), UINT32_C(0x00016832)}, + {UINT32_C(0x006A5978), UINT32_C(0x001A7F02), UINT32_C(0x000354FE), + UINT32_C(0x003933E3), UINT32_C(0x00071810), UINT32_C(0x000077D8), + UINT32_C(0x0033A7B3), UINT32_C(0x0026F851), UINT32_C(0x0034FEF5), + UINT32_C(0x0010B6DF), UINT32_C(0x003399BA), UINT32_C(0x000DFB2B), + UINT32_C(0x0034476F), UINT32_C(0x00346D99), UINT32_C(0x002F557E), + UINT32_C(0x0047897F), UINT32_C(0x00348DBE), UINT32_C(0x001CDE03), + UINT32_C(0x002A740A), UINT32_C(0x0066E864), UINT32_C(0x0003C78B), + UINT32_C(0x00028392), UINT32_C(0x0025F5DB)}}, + }, + { + {{UINT32_C(0x0017286E), UINT32_C(0x000F5A5C), UINT32_C(0x0039B3CA), + UINT32_C(0x001F9077), UINT32_C(0x001B296D), UINT32_C(0x0005DC87), + UINT32_C(0x001D0F98), UINT32_C(0x0064781E), UINT32_C(0x00093D05), + UINT32_C(0x00126B0F), UINT32_C(0x000BBA75), UINT32_C(0x0044F9E6), + UINT32_C(0x0028E04B), UINT32_C(0x0020A55E), UINT32_C(0x0012F73B), + UINT32_C(0x002CF153), UINT32_C(0x0021678C), UINT32_C(0x002F8222), + UINT32_C(0x0015DD38), UINT32_C(0x00687C5D), UINT32_C(0x0027B303), + UINT32_C(0x003155B8), UINT32_C(0x002B5FB6)}, + {UINT32_C(0x0041E5E6), UINT32_C(0x0006CE3F), UINT32_C(0x000699C4), + UINT32_C(0x001B1A07), UINT32_C(0x0008BE9D), UINT32_C(0x000A3A3E), + UINT32_C(0x00229979), UINT32_C(0x005014A4), UINT32_C(0x0002F0CB), + UINT32_C(0x003B52A9), UINT32_C(0x00083FDD), UINT32_C(0x0047E479), + UINT32_C(0x0009DD35), UINT32_C(0x00391B43), UINT32_C(0x0021E9C2), + UINT32_C(0x004D6C1F), UINT32_C(0x000D8AB1), UINT32_C(0x002AC33D), + UINT32_C(0x003F840F), UINT32_C(0x00713093), UINT32_C(0x001F7D6C), + UINT32_C(0x0000637C), UINT32_C(0x002A1B17)}, + {UINT32_C(0x002A0728), UINT32_C(0x0022B9B0), UINT32_C(0x00120094), + UINT32_C(0x006AF4E8), UINT32_C(0x003A01D1), UINT32_C(0x002767DB), + UINT32_C(0x00238927), UINT32_C(0x0068635D), UINT32_C(0x0003EA0A), + UINT32_C(0x000FE41F), UINT32_C(0x003CB1CE), UINT32_C(0x00133FA4), + UINT32_C(0x002B3010), UINT32_C(0x000D5D89), UINT32_C(0x000F339F), + UINT32_C(0x005D46A1), UINT32_C(0x00290D2D), UINT32_C(0x001FC5BE), + UINT32_C(0x0003A00F), UINT32_C(0x0062DC95), UINT32_C(0x0037CAB9), + UINT32_C(0x002A05E9), UINT32_C(0x002BBC6F)}}, + {{UINT32_C(0x00706744), UINT32_C(0x0019DB10), UINT32_C(0x003F9B5C), + UINT32_C(0x000F3E76), UINT32_C(0x001B2506), UINT32_C(0x00127BDF), + UINT32_C(0x000EB38D), UINT32_C(0x00042E3C), UINT32_C(0x0003DF4C), + UINT32_C(0x003B146C), UINT32_C(0x00395196), UINT32_C(0x0018E1D3), + UINT32_C(0x000F2464), UINT32_C(0x00307EFB), UINT32_C(0x002A190A), + UINT32_C(0x0058D3B4), UINT32_C(0x0012C74A), UINT32_C(0x00195650), + UINT32_C(0x000C0BF0), UINT32_C(0x001892B5), UINT32_C(0x0006770F), + UINT32_C(0x001A228B), UINT32_C(0x003113A8)}, + {UINT32_C(0x007384A0), UINT32_C(0x00041291), UINT32_C(0x00123686), + UINT32_C(0x001AD842), UINT32_C(0x001E3157), UINT32_C(0x0007A754), + UINT32_C(0x000905E0), UINT32_C(0x003BC7D8), UINT32_C(0x00116FE2), + UINT32_C(0x002D132F), UINT32_C(0x000E6646), UINT32_C(0x0064D804), + UINT32_C(0x001BA830), UINT32_C(0x003695CB), UINT32_C(0x00173E41), + UINT32_C(0x005CFDBC), UINT32_C(0x002188CF), UINT32_C(0x001C1011), + UINT32_C(0x0019A6D6), UINT32_C(0x004789C9), UINT32_C(0x0032435A), + UINT32_C(0x002B1970), UINT32_C(0x003D40A8)}, + {UINT32_C(0x00334E7F), UINT32_C(0x000C23F4), UINT32_C(0x00160B20), + UINT32_C(0x003BF3EA), UINT32_C(0x003B5299), UINT32_C(0x001D3EC2), + UINT32_C(0x0036DAE9), UINT32_C(0x0058023B), UINT32_C(0x000B5EAF), + UINT32_C(0x00371744), UINT32_C(0x000EF4D7), UINT32_C(0x0008817F), + UINT32_C(0x0002BE7F), UINT32_C(0x001EB13E), UINT32_C(0x002D1A5F), + UINT32_C(0x0069630F), UINT32_C(0x00093D58), UINT32_C(0x0036D385), + UINT32_C(0x002A3045), UINT32_C(0x0025C26B), UINT32_C(0x00111E19), + UINT32_C(0x001756BF), UINT32_C(0x0035B39D)}}, + {{UINT32_C(0x00545C3C), UINT32_C(0x00137D2C), UINT32_C(0x000E7FAB), + UINT32_C(0x000EB9AF), UINT32_C(0x002789FC), UINT32_C(0x001EF592), + UINT32_C(0x0034210A), UINT32_C(0x002A5180), UINT32_C(0x0023EDAE), + UINT32_C(0x000307F6), UINT32_C(0x0023CFAC), UINT32_C(0x001BF315), + UINT32_C(0x0020B287), UINT32_C(0x000A3DE8), UINT32_C(0x00189938), + UINT32_C(0x00378524), UINT32_C(0x002DEDDF), UINT32_C(0x00215405), + UINT32_C(0x001398B5), UINT32_C(0x004827A1), UINT32_C(0x0018A82A), + UINT32_C(0x000AB6B7), UINT32_C(0x00214B8A)}, + {UINT32_C(0x001B6EE1), UINT32_C(0x00134930), UINT32_C(0x002CB43D), + UINT32_C(0x004DC974), UINT32_C(0x0031EAF7), UINT32_C(0x003BDA7E), + UINT32_C(0x0033618E), UINT32_C(0x004A982D), UINT32_C(0x001B6E94), + UINT32_C(0x000D4749), UINT32_C(0x0007D19B), UINT32_C(0x005FAAB5), + UINT32_C(0x003F714A), UINT32_C(0x000E57A9), UINT32_C(0x0028FDD3), + UINT32_C(0x0075BD17), UINT32_C(0x003D774F), UINT32_C(0x000E4D55), + UINT32_C(0x003CA227), UINT32_C(0x000DF34F), UINT32_C(0x0028970F), + UINT32_C(0x0036F5EA), UINT32_C(0x0022BC1B)}, + {UINT32_C(0x00475039), UINT32_C(0x00230014), UINT32_C(0x001FEA38), + UINT32_C(0x005CCC55), UINT32_C(0x003C6941), UINT32_C(0x0022517F), + UINT32_C(0x002D30E5), UINT32_C(0x00309B25), UINT32_C(0x00034CC8), + UINT32_C(0x00356ED5), UINT32_C(0x0014FCA5), UINT32_C(0x0036104B), + UINT32_C(0x001D0F11), UINT32_C(0x00273D12), UINT32_C(0x00170F1B), + UINT32_C(0x0076D103), UINT32_C(0x001F613D), UINT32_C(0x001C9D53), + UINT32_C(0x001F1400), UINT32_C(0x0076A382), UINT32_C(0x0025000D), + UINT32_C(0x003B5419), UINT32_C(0x0015987C)}}, + {{UINT32_C(0x007F4AC5), UINT32_C(0x0008E500), UINT32_C(0x00016BA4), + UINT32_C(0x007474E5), UINT32_C(0x0009CFB4), UINT32_C(0x001D6BB8), + UINT32_C(0x003B23DD), UINT32_C(0x005DB100), UINT32_C(0x0008843B), + UINT32_C(0x0012DA0A), UINT32_C(0x0024794D), UINT32_C(0x0026577B), + UINT32_C(0x00240E5E), UINT32_C(0x00346C8E), UINT32_C(0x0027DC8C), + UINT32_C(0x00634650), UINT32_C(0x00195F50), UINT32_C(0x00071E58), + UINT32_C(0x000A83CF), UINT32_C(0x001B8E3D), UINT32_C(0x001D4281), + UINT32_C(0x0014D35D), UINT32_C(0x002C222C)}, + {UINT32_C(0x0020B3A0), UINT32_C(0x0006028D), UINT32_C(0x002EB45A), + UINT32_C(0x003DF458), UINT32_C(0x001D376C), UINT32_C(0x0018C400), + UINT32_C(0x002C3A24), UINT32_C(0x00319F9A), UINT32_C(0x00022C40), + UINT32_C(0x0002F8C6), UINT32_C(0x0022E290), UINT32_C(0x0026FD32), + UINT32_C(0x00035216), UINT32_C(0x001D9C11), UINT32_C(0x001789F2), + UINT32_C(0x000B1E8A), UINT32_C(0x000A64CD), UINT32_C(0x002909D1), + UINT32_C(0x003F99FB), UINT32_C(0x0053ECE7), UINT32_C(0x00067860), + UINT32_C(0x002534B2), UINT32_C(0x003F2F3F)}, + {UINT32_C(0x00231268), UINT32_C(0x000ED62F), UINT32_C(0x0031D715), + UINT32_C(0x00518514), UINT32_C(0x003D37EF), UINT32_C(0x00083CBE), + UINT32_C(0x001E2CE4), UINT32_C(0x007EC3F7), UINT32_C(0x0038FE97), + UINT32_C(0x0018E538), UINT32_C(0x0014EF47), UINT32_C(0x007E9282), + UINT32_C(0x002D63F2), UINT32_C(0x003161B4), UINT32_C(0x0039ADC6), + UINT32_C(0x0007BA2A), UINT32_C(0x001FF255), UINT32_C(0x001874F8), + UINT32_C(0x000AF0FD), UINT32_C(0x002AAAB7), UINT32_C(0x00298743), + UINT32_C(0x00333D31), UINT32_C(0x000E50E3)}}, + {{UINT32_C(0x000F76FA), UINT32_C(0x001833CD), UINT32_C(0x0016A2D3), + UINT32_C(0x006A2D69), UINT32_C(0x0002F385), UINT32_C(0x001F8454), + UINT32_C(0x003FE32A), UINT32_C(0x004BABD6), UINT32_C(0x0003FDDB), + UINT32_C(0x0012096E), UINT32_C(0x0024DC23), UINT32_C(0x00636CE5), + UINT32_C(0x00055CB4), UINT32_C(0x0004F203), UINT32_C(0x0022C2DF), + UINT32_C(0x00599D77), UINT32_C(0x0038B010), UINT32_C(0x003624FA), + UINT32_C(0x002121D8), UINT32_C(0x006EB595), UINT32_C(0x000EB1AE), + UINT32_C(0x0033B6F0), UINT32_C(0x001072A8)}, + {UINT32_C(0x00660A55), UINT32_C(0x000C0424), UINT32_C(0x0013326F), + UINT32_C(0x00530EFA), UINT32_C(0x00038052), UINT32_C(0x003A7413), + UINT32_C(0x0000B6CF), UINT32_C(0x0025BA64), UINT32_C(0x0006A2BE), + UINT32_C(0x0039B086), UINT32_C(0x0007574E), UINT32_C(0x0018FDBB), + UINT32_C(0x000714B1), UINT32_C(0x0026708B), UINT32_C(0x000515A5), + UINT32_C(0x0043DEFC), UINT32_C(0x002CE885), UINT32_C(0x00171175), + UINT32_C(0x002570F1), UINT32_C(0x004EE75A), UINT32_C(0x001930E0), + UINT32_C(0x00155BBD), UINT32_C(0x000C64C5)}, + {UINT32_C(0x0034919D), UINT32_C(0x001443DB), UINT32_C(0x003E9123), + UINT32_C(0x000E1842), UINT32_C(0x003545C9), UINT32_C(0x00098DB4), + UINT32_C(0x00184A4D), UINT32_C(0x005DAFC4), UINT32_C(0x00098F85), + UINT32_C(0x001EA9C6), UINT32_C(0x0023826A), UINT32_C(0x0069B06D), + UINT32_C(0x001DFBA9), UINT32_C(0x000798BE), UINT32_C(0x000AE8AF), + UINT32_C(0x00236B65), UINT32_C(0x001846C8), UINT32_C(0x003AB8DD), + UINT32_C(0x002C7DB0), UINT32_C(0x00074EA7), UINT32_C(0x002DF25B), + UINT32_C(0x001C28C7), UINT32_C(0x0025B6DE)}}, + {{UINT32_C(0x0063C056), UINT32_C(0x000F0F64), UINT32_C(0x0003AF88), + UINT32_C(0x0026EF3F), UINT32_C(0x000ACF8A), UINT32_C(0x003B178B), + UINT32_C(0x001A1B3F), UINT32_C(0x002802BE), UINT32_C(0x00141F1B), + UINT32_C(0x001188F2), UINT32_C(0x003B7121), UINT32_C(0x0004B6A3), + UINT32_C(0x0017E723), UINT32_C(0x0015DF00), UINT32_C(0x00395BAE), + UINT32_C(0x0012A3E3), UINT32_C(0x000D5B27), UINT32_C(0x000EF7A7), + UINT32_C(0x00108148), UINT32_C(0x0027EAAD), UINT32_C(0x000BC9DC), + UINT32_C(0x00229BC0), UINT32_C(0x003E724E)}, + {UINT32_C(0x0065E7F8), UINT32_C(0x001505D9), UINT32_C(0x002AC40C), + UINT32_C(0x003163A4), UINT32_C(0x003EDF4D), UINT32_C(0x0004F661), + UINT32_C(0x003262E7), UINT32_C(0x003B5607), UINT32_C(0x002D19B3), + UINT32_C(0x00107A09), UINT32_C(0x000F13CC), UINT32_C(0x004C7800), + UINT32_C(0x0035B8E6), UINT32_C(0x00254CD7), UINT32_C(0x0006103F), + UINT32_C(0x0041F4F8), UINT32_C(0x00122E7D), UINT32_C(0x00201C99), + UINT32_C(0x003F9160), UINT32_C(0x0056128E), UINT32_C(0x0032FA32), + UINT32_C(0x0019A4A9), UINT32_C(0x002E0115)}, + {UINT32_C(0x0012D79A), UINT32_C(0x000A6E34), UINT32_C(0x0008D368), + UINT32_C(0x001977F5), UINT32_C(0x0011E966), UINT32_C(0x00123FE5), + UINT32_C(0x00343FAC), UINT32_C(0x0012E1C9), UINT32_C(0x001AFF6C), + UINT32_C(0x0023C0EC), UINT32_C(0x003A2A35), UINT32_C(0x005016A3), + UINT32_C(0x002CF3B6), UINT32_C(0x00078BE6), UINT32_C(0x0008BE88), + UINT32_C(0x005FC4FE), UINT32_C(0x00002694), UINT32_C(0x00258B13), + UINT32_C(0x000ABDAE), UINT32_C(0x004B9DF4), UINT32_C(0x00187A2F), + UINT32_C(0x0036EC5B), UINT32_C(0x002B7DF6)}}, + {{UINT32_C(0x006DAE2C), UINT32_C(0x00032CF3), UINT32_C(0x002D7562), + UINT32_C(0x0032FF5D), UINT32_C(0x00070816), UINT32_C(0x000D011D), + UINT32_C(0x000E17B7), UINT32_C(0x0038556C), UINT32_C(0x003DA262), + UINT32_C(0x000AC037), UINT32_C(0x00112AE7), UINT32_C(0x001EB223), + UINT32_C(0x002587C3), UINT32_C(0x001A3F55), UINT32_C(0x0022E756), + UINT32_C(0x007D6544), UINT32_C(0x0035E36C), UINT32_C(0x00298741), + UINT32_C(0x001945D2), UINT32_C(0x007E68FA), UINT32_C(0x003F5793), + UINT32_C(0x0013306C), UINT32_C(0x00021451)}, + {UINT32_C(0x007CB839), UINT32_C(0x001964D3), UINT32_C(0x0007ED8E), + UINT32_C(0x003AEF58), UINT32_C(0x002BC177), UINT32_C(0x000F6696), + UINT32_C(0x0001CAEB), UINT32_C(0x00509C2B), UINT32_C(0x003F5DBB), + UINT32_C(0x001131ED), UINT32_C(0x00151301), UINT32_C(0x0031F44F), + UINT32_C(0x001D60F9), UINT32_C(0x001A36A3), UINT32_C(0x002696D3), + UINT32_C(0x00713749), UINT32_C(0x000415F4), UINT32_C(0x000C2E1E), + UINT32_C(0x0018E7EE), UINT32_C(0x006737C5), UINT32_C(0x00071BB7), + UINT32_C(0x0008C358), UINT32_C(0x001F1407)}, + {UINT32_C(0x0042C734), UINT32_C(0x00009034), UINT32_C(0x001689FC), + UINT32_C(0x00066E68), UINT32_C(0x0018F756), UINT32_C(0x001DCFDF), + UINT32_C(0x00083DCC), UINT32_C(0x003841C9), UINT32_C(0x000DD192), + UINT32_C(0x00122593), UINT32_C(0x0031A8DD), UINT32_C(0x00341616), + UINT32_C(0x00196D74), UINT32_C(0x000B8D12), UINT32_C(0x000B5714), + UINT32_C(0x006030FC), UINT32_C(0x00390678), UINT32_C(0x003AB96C), + UINT32_C(0x00053F6E), UINT32_C(0x002C04AB), UINT32_C(0x001D12C3), + UINT32_C(0x0035009E), UINT32_C(0x003DC316)}}, + {{UINT32_C(0x003D2EE8), UINT32_C(0x000EDDF2), UINT32_C(0x0016BD70), + UINT32_C(0x00320C0C), UINT32_C(0x00052F43), UINT32_C(0x002FA0A8), + UINT32_C(0x00065472), UINT32_C(0x00029362), UINT32_C(0x002C27A2), + UINT32_C(0x0005E1BB), UINT32_C(0x0019992C), UINT32_C(0x00030905), + UINT32_C(0x000BF0F4), UINT32_C(0x00209691), UINT32_C(0x00350247), + UINT32_C(0x0057E044), UINT32_C(0x000E41CD), UINT32_C(0x0017F9EE), + UINT32_C(0x00078967), UINT32_C(0x006ACE99), UINT32_C(0x0007C820), + UINT32_C(0x00113D5C), UINT32_C(0x0038DA0A)}, + {UINT32_C(0x00083FE6), UINT32_C(0x001C1BC1), UINT32_C(0x000EB8D8), + UINT32_C(0x0007692B), UINT32_C(0x00281516), UINT32_C(0x00155672), + UINT32_C(0x000D8B29), UINT32_C(0x003E13E4), UINT32_C(0x003138BC), + UINT32_C(0x003CACE6), UINT32_C(0x0035FA0F), UINT32_C(0x0023164A), + UINT32_C(0x000EC9E6), UINT32_C(0x0023B1C7), UINT32_C(0x00225BFF), + UINT32_C(0x007740C9), UINT32_C(0x0030F788), UINT32_C(0x00006D8C), + UINT32_C(0x0002D6BD), UINT32_C(0x002603CE), UINT32_C(0x0005485E), + UINT32_C(0x000E66C9), UINT32_C(0x00019E3E)}, + {UINT32_C(0x001300D5), UINT32_C(0x002C1C24), UINT32_C(0x0032064C), + UINT32_C(0x0043F0E6), UINT32_C(0x000860BC), UINT32_C(0x0014A553), + UINT32_C(0x0036075B), UINT32_C(0x001987D7), UINT32_C(0x002754F6), + UINT32_C(0x00385EEF), UINT32_C(0x0013D858), UINT32_C(0x002C23BB), + UINT32_C(0x0032C81D), UINT32_C(0x000E6F7D), UINT32_C(0x003C8EB3), + UINT32_C(0x003644D0), UINT32_C(0x0013D21A), UINT32_C(0x0031FB11), + UINT32_C(0x0028B7B0), UINT32_C(0x000E500E), UINT32_C(0x001DA66D), + UINT32_C(0x0020B336), UINT32_C(0x00364559)}}, + {{UINT32_C(0x0008F24B), UINT32_C(0x003022F1), UINT32_C(0x00292D14), + UINT32_C(0x00009DB0), UINT32_C(0x0012884B), UINT32_C(0x002CB622), + UINT32_C(0x0009D61F), UINT32_C(0x0010FF0B), UINT32_C(0x0005C248), + UINT32_C(0x00128DF1), UINT32_C(0x0014DD06), UINT32_C(0x0006C833), + UINT32_C(0x00177E25), UINT32_C(0x00037C0E), UINT32_C(0x0029C2CD), + UINT32_C(0x00072DE1), UINT32_C(0x001F0312), UINT32_C(0x0013FA86), + UINT32_C(0x002E1D55), UINT32_C(0x000102DE), UINT32_C(0x00326586), + UINT32_C(0x00089C95), UINT32_C(0x000D11CA)}, + {UINT32_C(0x001E5A41), UINT32_C(0x0014B02F), UINT32_C(0x002AFDA8), + UINT32_C(0x003C8A99), UINT32_C(0x00304A64), UINT32_C(0x00254B15), + UINT32_C(0x0001DEB3), UINT32_C(0x00481E27), UINT32_C(0x0032A61C), + UINT32_C(0x000D6970), UINT32_C(0x00182CAA), UINT32_C(0x0034EC0A), + UINT32_C(0x0019A25D), UINT32_C(0x001C8588), UINT32_C(0x003F689B), + UINT32_C(0x00233BD8), UINT32_C(0x003ABCAA), UINT32_C(0x0033E7AF), + UINT32_C(0x00375FA3), UINT32_C(0x001C8D11), UINT32_C(0x0021737A), + UINT32_C(0x00102C76), UINT32_C(0x000C7526)}, + {UINT32_C(0x00352E1E), UINT32_C(0x002092B9), UINT32_C(0x0008105C), + UINT32_C(0x007FB15D), UINT32_C(0x00255DD0), UINT32_C(0x000F061B), + UINT32_C(0x0016C72F), UINT32_C(0x006E33F5), UINT32_C(0x003A9DD5), + UINT32_C(0x0039695D), UINT32_C(0x003502FE), UINT32_C(0x003A705F), + UINT32_C(0x00370221), UINT32_C(0x0030642F), UINT32_C(0x00163D04), + UINT32_C(0x007BF9AC), UINT32_C(0x000A4C37), UINT32_C(0x001E0389), + UINT32_C(0x001214FF), UINT32_C(0x001FF3D6), UINT32_C(0x003D5C3D), + UINT32_C(0x0028CF11), UINT32_C(0x001AAA6A)}}, + {{UINT32_C(0x005BF790), UINT32_C(0x0007D0F3), UINT32_C(0x0001C51D), + UINT32_C(0x0020772C), UINT32_C(0x00200268), UINT32_C(0x0001B52F), + UINT32_C(0x00279ABE), UINT32_C(0x001F71CF), UINT32_C(0x00375D44), + UINT32_C(0x000F0F65), UINT32_C(0x0027410E), UINT32_C(0x003D9BE0), + UINT32_C(0x002C960C), UINT32_C(0x00003C9C), UINT32_C(0x003A7A25), + UINT32_C(0x004F1756), UINT32_C(0x002CBE23), UINT32_C(0x0004069A), + UINT32_C(0x00182C17), UINT32_C(0x005CFAF2), UINT32_C(0x00026993), + UINT32_C(0x0009DA3A), UINT32_C(0x0039F360)}, + {UINT32_C(0x00364E82), UINT32_C(0x000346D3), UINT32_C(0x003D3445), + UINT32_C(0x0000A6B7), UINT32_C(0x00037BD7), UINT32_C(0x001658EC), + UINT32_C(0x0000B914), UINT32_C(0x006FA605), UINT32_C(0x001454EB), + UINT32_C(0x002CE3C8), UINT32_C(0x003D9ACC), UINT32_C(0x007AF12D), + UINT32_C(0x0021D6DC), UINT32_C(0x002CC083), UINT32_C(0x001879BA), + UINT32_C(0x0051EE63), UINT32_C(0x0019F677), UINT32_C(0x0010AD1F), + UINT32_C(0x002A0F9B), UINT32_C(0x0041EA60), UINT32_C(0x00277936), + UINT32_C(0x00380AD2), UINT32_C(0x001D4704)}, + {UINT32_C(0x004BFEC6), UINT32_C(0x0001B656), UINT32_C(0x002537A7), + UINT32_C(0x0074F164), UINT32_C(0x003DAAEE), UINT32_C(0x0030B1B3), + UINT32_C(0x0028EFD7), UINT32_C(0x0063000E), UINT32_C(0x002E7006), + UINT32_C(0x0006D43F), UINT32_C(0x003A92B0), UINT32_C(0x005CBF0D), + UINT32_C(0x001B3D1C), UINT32_C(0x00155A03), UINT32_C(0x0013BCFB), + UINT32_C(0x0022E3EA), UINT32_C(0x0009A093), UINT32_C(0x00372B6D), + UINT32_C(0x003B3D4A), UINT32_C(0x0022BBAE), UINT32_C(0x002C8021), + UINT32_C(0x002F7ACB), UINT32_C(0x002885FE)}}, + {{UINT32_C(0x003234EF), UINT32_C(0x0029B8C5), UINT32_C(0x001AE10C), + UINT32_C(0x0016CD11), UINT32_C(0x003ACD42), UINT32_C(0x0009111E), + UINT32_C(0x002E5197), UINT32_C(0x000CF7DD), UINT32_C(0x0002A45E), + UINT32_C(0x0013DCB9), UINT32_C(0x0011DF8A), UINT32_C(0x0041E6A2), + UINT32_C(0x003D6BEC), UINT32_C(0x0019831C), UINT32_C(0x0026F1BD), + UINT32_C(0x001F02BE), UINT32_C(0x00291AD9), UINT32_C(0x000AEAD3), + UINT32_C(0x000655DB), UINT32_C(0x004C8DC1), UINT32_C(0x0027BF77), + UINT32_C(0x0017E4AD), UINT32_C(0x00376E83)}, + {UINT32_C(0x006C4C88), UINT32_C(0x003238DA), UINT32_C(0x000D5920), + UINT32_C(0x002DB750), UINT32_C(0x0035FA90), UINT32_C(0x000C2BC9), + UINT32_C(0x002DB3D0), UINT32_C(0x00373A80), UINT32_C(0x002E0271), + UINT32_C(0x003818B5), UINT32_C(0x003209D6), UINT32_C(0x003D0A96), + UINT32_C(0x0007BE66), UINT32_C(0x00306A1A), UINT32_C(0x001E42D6), + UINT32_C(0x0021C5C7), UINT32_C(0x00255B61), UINT32_C(0x002E2400), + UINT32_C(0x000B30C1), UINT32_C(0x0012F49E), UINT32_C(0x000E248A), + UINT32_C(0x003BBE77), UINT32_C(0x0008EEED)}, + {UINT32_C(0x0014067A), UINT32_C(0x002CF299), UINT32_C(0x00082BEF), + UINT32_C(0x00130694), UINT32_C(0x0018C073), UINT32_C(0x000CA3AA), + UINT32_C(0x00128835), UINT32_C(0x0023457E), UINT32_C(0x000FF51F), + UINT32_C(0x003F8C44), UINT32_C(0x003FA288), UINT32_C(0x00269665), + UINT32_C(0x00080B90), UINT32_C(0x000CFEE1), UINT32_C(0x003F3285), + UINT32_C(0x000DF6EE), UINT32_C(0x000B1087), UINT32_C(0x00107D3D), + UINT32_C(0x00311E7D), UINT32_C(0x007CA53C), UINT32_C(0x0033FCA6), + UINT32_C(0x00263A19), UINT32_C(0x00363624)}}, + {{UINT32_C(0x001DDC6C), UINT32_C(0x003A0EDE), UINT32_C(0x001408D0), + UINT32_C(0x001EEE7B), UINT32_C(0x001405FC), UINT32_C(0x00128750), + UINT32_C(0x002CA34C), UINT32_C(0x0000FBEA), UINT32_C(0x0006137A), + UINT32_C(0x00370D1A), UINT32_C(0x003B6A04), UINT32_C(0x00057D79), + UINT32_C(0x0028B50F), UINT32_C(0x0013A132), UINT32_C(0x0007EB68), + UINT32_C(0x007A7017), UINT32_C(0x002517C9), UINT32_C(0x00219256), + UINT32_C(0x003E617C), UINT32_C(0x00456ECE), UINT32_C(0x0011278F), + UINT32_C(0x001624F1), UINT32_C(0x0003C0F7)}, + {UINT32_C(0x000AF6C0), UINT32_C(0x003DA705), UINT32_C(0x000CC5A4), + UINT32_C(0x00045A7B), UINT32_C(0x0030E620), UINT32_C(0x0005489D), + UINT32_C(0x00350783), UINT32_C(0x00053DBD), UINT32_C(0x0016C68B), + UINT32_C(0x002D182B), UINT32_C(0x00294A05), UINT32_C(0x00749DE2), + UINT32_C(0x000DDD4D), UINT32_C(0x003B31A2), UINT32_C(0x00197D97), + UINT32_C(0x006BBE3E), UINT32_C(0x003FF605), UINT32_C(0x00049D4F), + UINT32_C(0x00312E4D), UINT32_C(0x003F5019), UINT32_C(0x003E1C7F), + UINT32_C(0x003D1C1D), UINT32_C(0x003D261E)}, + {UINT32_C(0x0026418D), UINT32_C(0x00292458), UINT32_C(0x001A1FC4), + UINT32_C(0x00617DF6), UINT32_C(0x0024EEF7), UINT32_C(0x000F2BD5), + UINT32_C(0x0034E0B9), UINT32_C(0x006C6D66), UINT32_C(0x00074BA2), + UINT32_C(0x001A4D76), UINT32_C(0x00306BE0), UINT32_C(0x0002376E), + UINT32_C(0x0005EF92), UINT32_C(0x003EBB91), UINT32_C(0x0024BA60), + UINT32_C(0x001BA73C), UINT32_C(0x00222A6B), UINT32_C(0x0018DAEF), + UINT32_C(0x00141DE7), UINT32_C(0x00390908), UINT32_C(0x0035530C), + UINT32_C(0x0002CD8D), UINT32_C(0x00077882)}}, + {{UINT32_C(0x00440DE3), UINT32_C(0x002D9BF2), UINT32_C(0x000C1E19), + UINT32_C(0x0013C1C8), UINT32_C(0x00318020), UINT32_C(0x001DCAEC), + UINT32_C(0x00064315), UINT32_C(0x00335FB3), UINT32_C(0x00146401), + UINT32_C(0x0035671E), UINT32_C(0x0008E31D), UINT32_C(0x0069E0DB), + UINT32_C(0x00071FA1), UINT32_C(0x0039CF3B), UINT32_C(0x0018E811), + UINT32_C(0x002DB19F), UINT32_C(0x001279C0), UINT32_C(0x0029FDEB), + UINT32_C(0x002EF592), UINT32_C(0x005F5F4A), UINT32_C(0x000A323A), + UINT32_C(0x002C8BBB), UINT32_C(0x00326780)}, + {UINT32_C(0x000CB270), UINT32_C(0x00086BD0), UINT32_C(0x0036C911), + UINT32_C(0x0005F16E), UINT32_C(0x00359A7C), UINT32_C(0x0033FFDF), + UINT32_C(0x002FE3CF), UINT32_C(0x00286EBC), UINT32_C(0x00282C12), + UINT32_C(0x0032282A), UINT32_C(0x002231DA), UINT32_C(0x00000319), + UINT32_C(0x003D8930), UINT32_C(0x002056B8), UINT32_C(0x003104E7), + UINT32_C(0x0006E83C), UINT32_C(0x0003636A), UINT32_C(0x0024CB95), + UINT32_C(0x002DE038), UINT32_C(0x00081E87), UINT32_C(0x0034B889), + UINT32_C(0x000F9915), UINT32_C(0x00310022)}, + {UINT32_C(0x0040A26D), UINT32_C(0x002410E6), UINT32_C(0x0033665C), + UINT32_C(0x005EB45D), UINT32_C(0x0001C554), UINT32_C(0x00031D73), + UINT32_C(0x000EA84F), UINT32_C(0x006564D6), UINT32_C(0x001F3357), + UINT32_C(0x0020481A), UINT32_C(0x00180940), UINT32_C(0x003BF11D), + UINT32_C(0x002AF372), UINT32_C(0x002559BC), UINT32_C(0x00178008), + UINT32_C(0x000A361C), UINT32_C(0x0037281D), UINT32_C(0x000742C0), + UINT32_C(0x003B03D2), UINT32_C(0x005EBA80), UINT32_C(0x003348EE), + UINT32_C(0x00332C9E), UINT32_C(0x00131D23)}}, + {{UINT32_C(0x004F558D), UINT32_C(0x00110D2E), UINT32_C(0x0010B290), + UINT32_C(0x00298F39), UINT32_C(0x001A9DD0), UINT32_C(0x00045042), + UINT32_C(0x00074453), UINT32_C(0x0031D6D7), UINT32_C(0x0007787F), + UINT32_C(0x002DAAA8), UINT32_C(0x003148F0), UINT32_C(0x00014722), + UINT32_C(0x001A5F6A), UINT32_C(0x00101BC3), UINT32_C(0x00127243), + UINT32_C(0x007D18A1), UINT32_C(0x002A51D2), UINT32_C(0x0025ED49), + UINT32_C(0x003D93AC), UINT32_C(0x0000A172), UINT32_C(0x002D4427), + UINT32_C(0x0035288C), UINT32_C(0x000733E5)}, + {UINT32_C(0x004F5F03), UINT32_C(0x003E1845), UINT32_C(0x0006AEB2), + UINT32_C(0x0072B386), UINT32_C(0x00309DB4), UINT32_C(0x002E4AE4), + UINT32_C(0x001C33C4), UINT32_C(0x0064AA28), UINT32_C(0x003A80E7), + UINT32_C(0x0018D735), UINT32_C(0x0035E7AB), UINT32_C(0x0049C50A), + UINT32_C(0x0011BF7D), UINT32_C(0x001CF85A), UINT32_C(0x00310DD1), + UINT32_C(0x00755DE3), UINT32_C(0x001EF133), UINT32_C(0x0019EC22), + UINT32_C(0x00093BF1), UINT32_C(0x0079C3FF), UINT32_C(0x0035788E), + UINT32_C(0x003BCE6D), UINT32_C(0x00319941)}, + {UINT32_C(0x00320489), UINT32_C(0x0013DD6F), UINT32_C(0x0030C812), + UINT32_C(0x0058EFB4), UINT32_C(0x00199A57), UINT32_C(0x0001DCC5), + UINT32_C(0x00397377), UINT32_C(0x006262B8), UINT32_C(0x002B88C5), + UINT32_C(0x0009A7A2), UINT32_C(0x000243A8), UINT32_C(0x000FE111), + UINT32_C(0x00388C89), UINT32_C(0x0011A2E9), UINT32_C(0x00227DAE), + UINT32_C(0x004E02B8), UINT32_C(0x0004E7BC), UINT32_C(0x0003B33F), + UINT32_C(0x0003C0C6), UINT32_C(0x0025DF7E), UINT32_C(0x003A82E0), + UINT32_C(0x003930EE), UINT32_C(0x0013C142)}}, + {{UINT32_C(0x0066CDFE), UINT32_C(0x000F2EAC), UINT32_C(0x00131171), + UINT32_C(0x000D830C), UINT32_C(0x00073ABF), UINT32_C(0x0006D5DB), + UINT32_C(0x0019F2ED), UINT32_C(0x007D8846), UINT32_C(0x002CDE7E), + UINT32_C(0x001F8420), UINT32_C(0x00248809), UINT32_C(0x0070E344), + UINT32_C(0x00068413), UINT32_C(0x000706E0), UINT32_C(0x002454A6), + UINT32_C(0x003C1F38), UINT32_C(0x0020840E), UINT32_C(0x00308F2A), + UINT32_C(0x003B026E), UINT32_C(0x0055D941), UINT32_C(0x0026CD7D), + UINT32_C(0x00041FFB), UINT32_C(0x0016E182)}, + {UINT32_C(0x00498EA7), UINT32_C(0x0028466B), UINT32_C(0x002EE6E4), + UINT32_C(0x005ADB8E), UINT32_C(0x0034DF94), UINT32_C(0x0016E8FA), + UINT32_C(0x000DD486), UINT32_C(0x0022172A), UINT32_C(0x0026F797), + UINT32_C(0x003EA2F7), UINT32_C(0x003F32FE), UINT32_C(0x00761C80), + UINT32_C(0x00141A4B), UINT32_C(0x003A2DC0), UINT32_C(0x003F2489), + UINT32_C(0x00284EBF), UINT32_C(0x00324946), UINT32_C(0x00098DC6), + UINT32_C(0x00140160), UINT32_C(0x001637DD), UINT32_C(0x0032460F), + UINT32_C(0x001DCD38), UINT32_C(0x0024F529)}, + {UINT32_C(0x0033F90C), UINT32_C(0x000B2B06), UINT32_C(0x0010AC6C), + UINT32_C(0x000D4C79), UINT32_C(0x0028ACCF), UINT32_C(0x003882B8), + UINT32_C(0x003627FD), UINT32_C(0x0077768C), UINT32_C(0x00060B8A), + UINT32_C(0x00175AB9), UINT32_C(0x0020A7D7), UINT32_C(0x0036E54C), + UINT32_C(0x0026B20A), UINT32_C(0x000E710C), UINT32_C(0x0024597D), + UINT32_C(0x0019E845), UINT32_C(0x0028672C), UINT32_C(0x0021B0CC), + UINT32_C(0x0023D9E3), UINT32_C(0x001692C6), UINT32_C(0x0001D045), + UINT32_C(0x00097657), UINT32_C(0x000370F6)}}, + {{UINT32_C(0x007B9005), UINT32_C(0x0027B1D5), UINT32_C(0x0030BCA5), + UINT32_C(0x0033E7A3), UINT32_C(0x00260D50), UINT32_C(0x000425F4), + UINT32_C(0x002BF81B), UINT32_C(0x0056DC12), UINT32_C(0x001C3248), + UINT32_C(0x0023BE6A), UINT32_C(0x0031838D), UINT32_C(0x006C6DD9), + UINT32_C(0x002FD065), UINT32_C(0x003EC34D), UINT32_C(0x001B79C8), + UINT32_C(0x0061CFCC), UINT32_C(0x002C377E), UINT32_C(0x0005C2A1), + UINT32_C(0x00142560), UINT32_C(0x0007DCCB), UINT32_C(0x00238949), + UINT32_C(0x0011710D), UINT32_C(0x0036AE4C)}, + {UINT32_C(0x002C3F57), UINT32_C(0x0007550E), UINT32_C(0x00145D0D), + UINT32_C(0x00172C44), UINT32_C(0x00166B15), UINT32_C(0x003F673A), + UINT32_C(0x001F41B9), UINT32_C(0x0038E3E7), UINT32_C(0x000ED8FE), + UINT32_C(0x0026F447), UINT32_C(0x00141659), UINT32_C(0x004024EA), + UINT32_C(0x0014C9B2), UINT32_C(0x0021B32A), UINT32_C(0x00362710), + UINT32_C(0x00791C00), UINT32_C(0x0012A6F2), UINT32_C(0x003E23AE), + UINT32_C(0x00359C46), UINT32_C(0x0056019B), UINT32_C(0x0024CD68), + UINT32_C(0x0018639D), UINT32_C(0x000AA1E5)}, + {UINT32_C(0x003EB03A), UINT32_C(0x0005BD4E), UINT32_C(0x0026A08D), + UINT32_C(0x00767FC9), UINT32_C(0x000AE7A8), UINT32_C(0x00302EFF), + UINT32_C(0x000E751E), UINT32_C(0x000221EB), UINT32_C(0x0013D036), + UINT32_C(0x000B5F88), UINT32_C(0x00195DE4), UINT32_C(0x007C1167), + UINT32_C(0x000F8BFB), UINT32_C(0x002A2BF5), UINT32_C(0x001374E2), + UINT32_C(0x005BAA0D), UINT32_C(0x0034A333), UINT32_C(0x002DB57E), + UINT32_C(0x002A02CC), UINT32_C(0x00497D58), UINT32_C(0x000647E9), + UINT32_C(0x00212584), UINT32_C(0x0028AE2E)}}, + }, + { + {{UINT32_C(0x0056CAA9), UINT32_C(0x002ED942), UINT32_C(0x00066832), + UINT32_C(0x000E005C), UINT32_C(0x000212C9), UINT32_C(0x000A5796), + UINT32_C(0x0039920F), UINT32_C(0x00085F1D), UINT32_C(0x00361285), + UINT32_C(0x00307080), UINT32_C(0x00062627), UINT32_C(0x007D6AAA), + UINT32_C(0x002FAD3A), UINT32_C(0x001F916B), UINT32_C(0x0019CDED), + UINT32_C(0x0060F8EF), UINT32_C(0x00006CD6), UINT32_C(0x0009A576), + UINT32_C(0x0004244C), UINT32_C(0x0056B6F1), UINT32_C(0x0027D5EC), + UINT32_C(0x001C22FE), UINT32_C(0x0020CA2B)}, + {UINT32_C(0x00638473), UINT32_C(0x0028A459), UINT32_C(0x0008F882), + UINT32_C(0x00300359), UINT32_C(0x001A0569), UINT32_C(0x000733C8), + UINT32_C(0x000AA690), UINT32_C(0x002854FD), UINT32_C(0x003A42AB), + UINT32_C(0x00005D85), UINT32_C(0x003EC955), UINT32_C(0x00276DAB), + UINT32_C(0x002C69D6), UINT32_C(0x0028E861), UINT32_C(0x003C6252), + UINT32_C(0x001693C6), UINT32_C(0x00067C90), UINT32_C(0x00135D5A), + UINT32_C(0x0019BAA5), UINT32_C(0x00638A4D), UINT32_C(0x001C54F3), + UINT32_C(0x0036958E), UINT32_C(0x00229409)}, + {UINT32_C(0x003694AD), UINT32_C(0x003CDD1D), UINT32_C(0x002BB2CB), + UINT32_C(0x000F907F), UINT32_C(0x00217793), UINT32_C(0x001C10F3), + UINT32_C(0x0007C509), UINT32_C(0x0055ED5B), UINT32_C(0x003FC009), + UINT32_C(0x0013833E), UINT32_C(0x000AFDAF), UINT32_C(0x0003DFB2), + UINT32_C(0x002EBC1F), UINT32_C(0x00268005), UINT32_C(0x0028835F), + UINT32_C(0x002FE0AF), UINT32_C(0x002E65E7), UINT32_C(0x002D7AC4), + UINT32_C(0x0016B704), UINT32_C(0x0034371A), UINT32_C(0x00333D73), + UINT32_C(0x00117F49), UINT32_C(0x003508FB)}}, + {{UINT32_C(0x0024288F), UINT32_C(0x00003DD4), UINT32_C(0x00121C5C), + UINT32_C(0x00771CBC), UINT32_C(0x003BF063), UINT32_C(0x0002294B), + UINT32_C(0x0031319F), UINT32_C(0x00643727), UINT32_C(0x00319F6F), + UINT32_C(0x0008B82B), UINT32_C(0x00101D49), UINT32_C(0x00546EE5), + UINT32_C(0x00238C40), UINT32_C(0x00030CAC), UINT32_C(0x00190408), + UINT32_C(0x007C0F5A), UINT32_C(0x0015EAFD), UINT32_C(0x00024A8F), + UINT32_C(0x00365016), UINT32_C(0x002D2DBA), UINT32_C(0x001F751C), + UINT32_C(0x0003964A), UINT32_C(0x002F92CB)}, + {UINT32_C(0x00561A15), UINT32_C(0x003B4C37), UINT32_C(0x001C36B5), + UINT32_C(0x002ED2E4), UINT32_C(0x0002231B), UINT32_C(0x001ADAF5), + UINT32_C(0x00270194), UINT32_C(0x0009DBF0), UINT32_C(0x00287239), + UINT32_C(0x00080B2D), UINT32_C(0x002EB25E), UINT32_C(0x0032ED93), + UINT32_C(0x00164DC0), UINT32_C(0x002F327A), UINT32_C(0x00130078), + UINT32_C(0x001841D3), UINT32_C(0x00049BC2), UINT32_C(0x00048E93), + UINT32_C(0x001B59E7), UINT32_C(0x006243C6), UINT32_C(0x00394260), + UINT32_C(0x0017BC8D), UINT32_C(0x00176B2A)}, + {UINT32_C(0x00041022), UINT32_C(0x0006B154), UINT32_C(0x0027CADC), + UINT32_C(0x00627B5A), UINT32_C(0x001965DA), UINT32_C(0x002D1BDB), + UINT32_C(0x001B16FE), UINT32_C(0x0016A869), UINT32_C(0x002540EA), + UINT32_C(0x003B4B72), UINT32_C(0x0013ECCC), UINT32_C(0x00581A5A), + UINT32_C(0x002C2192), UINT32_C(0x002588BF), UINT32_C(0x001CC31E), + UINT32_C(0x0053D1B3), UINT32_C(0x003845C2), UINT32_C(0x00234BBE), + UINT32_C(0x0007ABDF), UINT32_C(0x00567DC1), UINT32_C(0x00204D8E), + UINT32_C(0x00161734), UINT32_C(0x00062C35)}}, + {{UINT32_C(0x000DD434), UINT32_C(0x0027577F), UINT32_C(0x00224BAB), + UINT32_C(0x001F24C1), UINT32_C(0x00225696), UINT32_C(0x00241E15), + UINT32_C(0x001CEBF5), UINT32_C(0x005549C7), UINT32_C(0x003C9373), + UINT32_C(0x002DCBA3), UINT32_C(0x002A3CBA), UINT32_C(0x001EE227), + UINT32_C(0x0020FD58), UINT32_C(0x0007BFF7), UINT32_C(0x00341B3D), + UINT32_C(0x0047E8D4), UINT32_C(0x0011C543), UINT32_C(0x00386E9E), + UINT32_C(0x00232B8F), UINT32_C(0x0043836A), UINT32_C(0x0001E14C), + UINT32_C(0x00136E35), UINT32_C(0x002D423A)}, + {UINT32_C(0x005DA3DC), UINT32_C(0x003E4B5E), UINT32_C(0x00182E1B), + UINT32_C(0x004D3F17), UINT32_C(0x00358964), UINT32_C(0x002F6CDB), + UINT32_C(0x000FA963), UINT32_C(0x00530F85), UINT32_C(0x003FCE01), + UINT32_C(0x0027B181), UINT32_C(0x0016C4E2), UINT32_C(0x001A24B7), + UINT32_C(0x003A2690), UINT32_C(0x002BAD95), UINT32_C(0x000A878E), + UINT32_C(0x0049FA0F), UINT32_C(0x00200790), UINT32_C(0x0007745A), + UINT32_C(0x001A19FB), UINT32_C(0x00524E6F), UINT32_C(0x00167AEF), + UINT32_C(0x00318813), UINT32_C(0x000BF477)}, + {UINT32_C(0x00446FFB), UINT32_C(0x000E720D), UINT32_C(0x0013A7AD), + UINT32_C(0x002F3160), UINT32_C(0x0020ACA2), UINT32_C(0x0031E19F), + UINT32_C(0x002C99C7), UINT32_C(0x0053FC61), UINT32_C(0x000B444B), + UINT32_C(0x000432E3), UINT32_C(0x0020DFE5), UINT32_C(0x0000DCBD), + UINT32_C(0x002A6660), UINT32_C(0x0035A737), UINT32_C(0x0016191B), + UINT32_C(0x006DFEF3), UINT32_C(0x0007D074), UINT32_C(0x0015B6DA), + UINT32_C(0x000E1D85), UINT32_C(0x0040898C), UINT32_C(0x000F18DD), + UINT32_C(0x0016A189), UINT32_C(0x00259E34)}}, + {{UINT32_C(0x004D2036), UINT32_C(0x00198B36), UINT32_C(0x0006CEDC), + UINT32_C(0x0028C725), UINT32_C(0x003381EA), UINT32_C(0x0037C857), + UINT32_C(0x00239AE3), UINT32_C(0x000B8343), UINT32_C(0x0013B8A1), + UINT32_C(0x0004CA9C), UINT32_C(0x00341F6F), UINT32_C(0x002C9D36), + UINT32_C(0x0002B4CE), UINT32_C(0x000F979A), UINT32_C(0x00005E1A), + UINT32_C(0x0003C162), UINT32_C(0x000C805D), UINT32_C(0x00171240), + UINT32_C(0x00200E07), UINT32_C(0x005B5010), UINT32_C(0x0019D606), + UINT32_C(0x00226023), UINT32_C(0x0023D266)}, + {UINT32_C(0x00240CF2), UINT32_C(0x002268F3), UINT32_C(0x0025D159), + UINT32_C(0x003C1B6F), UINT32_C(0x00214C16), UINT32_C(0x0022D5EA), + UINT32_C(0x001D06D1), UINT32_C(0x007104A8), UINT32_C(0x002198F4), + UINT32_C(0x002EAE4A), UINT32_C(0x001A0374), UINT32_C(0x00128B26), + UINT32_C(0x00156B81), UINT32_C(0x00380AB8), UINT32_C(0x00000B34), + UINT32_C(0x0032FD36), UINT32_C(0x0035997F), UINT32_C(0x001DDD23), + UINT32_C(0x000F9701), UINT32_C(0x003D11DD), UINT32_C(0x00219A73), + UINT32_C(0x0009572E), UINT32_C(0x0007E79A)}, + {UINT32_C(0x004E4AD4), UINT32_C(0x0038839D), UINT32_C(0x0031F346), + UINT32_C(0x00188C54), UINT32_C(0x000CE5E2), UINT32_C(0x000BCB59), + UINT32_C(0x0036662E), UINT32_C(0x007DF8FB), UINT32_C(0x000E4805), + UINT32_C(0x0038EDC7), UINT32_C(0x00209BB0), UINT32_C(0x006A5B00), + UINT32_C(0x0005DC69), UINT32_C(0x001AE66C), UINT32_C(0x00175257), + UINT32_C(0x006D0BBF), UINT32_C(0x00158611), UINT32_C(0x003EFEA8), + UINT32_C(0x000E0C1D), UINT32_C(0x0050DC3B), UINT32_C(0x00008337), + UINT32_C(0x001869C2), UINT32_C(0x003FD81D)}}, + {{UINT32_C(0x0050CB64), UINT32_C(0x002429A6), UINT32_C(0x00382136), + UINT32_C(0x0054F357), UINT32_C(0x003794A8), UINT32_C(0x001F187A), + UINT32_C(0x000F2E75), UINT32_C(0x001AC75C), UINT32_C(0x002C3E90), + UINT32_C(0x002E6B5E), UINT32_C(0x0039AC0E), UINT32_C(0x004F180B), + UINT32_C(0x0020C545), UINT32_C(0x003FD3EB), UINT32_C(0x000C1453), + UINT32_C(0x0017FAB0), UINT32_C(0x002E55DE), UINT32_C(0x0031C1C1), + UINT32_C(0x002659CA), UINT32_C(0x0053E22F), UINT32_C(0x00377EA4), + UINT32_C(0x0011C7AF), UINT32_C(0x0005E66B)}, + {UINT32_C(0x005F2793), UINT32_C(0x000FABF6), UINT32_C(0x00138DB2), + UINT32_C(0x0003EF56), UINT32_C(0x003C44CD), UINT32_C(0x002D1772), + UINT32_C(0x00296103), UINT32_C(0x0010A045), UINT32_C(0x003F081B), + UINT32_C(0x0003CA53), UINT32_C(0x00319331), UINT32_C(0x001F65B4), + UINT32_C(0x002E09B1), UINT32_C(0x003544F7), UINT32_C(0x002E0977), + UINT32_C(0x007A91C1), UINT32_C(0x000E98E1), UINT32_C(0x003C2830), + UINT32_C(0x001F751E), UINT32_C(0x000FE9DE), UINT32_C(0x00104CA6), + UINT32_C(0x00084E9F), UINT32_C(0x002EDF68)}, + {UINT32_C(0x001753AE), UINT32_C(0x0015176B), UINT32_C(0x001D49C2), + UINT32_C(0x005271F0), UINT32_C(0x000E3B9D), UINT32_C(0x002A9E63), + UINT32_C(0x00147498), UINT32_C(0x0028C096), UINT32_C(0x0038F62A), + UINT32_C(0x001E8789), UINT32_C(0x001E1D5C), UINT32_C(0x003504A2), + UINT32_C(0x0026FE76), UINT32_C(0x001C16A5), UINT32_C(0x001B3F89), + UINT32_C(0x0043DB5A), UINT32_C(0x00106CD7), UINT32_C(0x00317E3F), + UINT32_C(0x00332597), UINT32_C(0x003737FB), UINT32_C(0x003F7130), + UINT32_C(0x002A1EA9), UINT32_C(0x003BE9DE)}}, + {{UINT32_C(0x003FC808), UINT32_C(0x002F762E), UINT32_C(0x003004D3), + UINT32_C(0x00384DB9), UINT32_C(0x002349A4), UINT32_C(0x0032B0E8), + UINT32_C(0x00152A07), UINT32_C(0x00361460), UINT32_C(0x0039BDD3), + UINT32_C(0x0017D898), UINT32_C(0x00228C11), UINT32_C(0x0061443C), + UINT32_C(0x0033C414), UINT32_C(0x001922E8), UINT32_C(0x0033EB75), + UINT32_C(0x006856CB), UINT32_C(0x000D4491), UINT32_C(0x00089ED9), + UINT32_C(0x001713B8), UINT32_C(0x000737CA), UINT32_C(0x0037B4BB), + UINT32_C(0x00137C25), UINT32_C(0x00157928)}, + {UINT32_C(0x005C5870), UINT32_C(0x0013A25A), UINT32_C(0x001376B2), + UINT32_C(0x007F3687), UINT32_C(0x000DD1CA), UINT32_C(0x00144BD1), + UINT32_C(0x00205B88), UINT32_C(0x0030B67A), UINT32_C(0x002F2ED7), + UINT32_C(0x002BBB97), UINT32_C(0x0006DE0E), UINT32_C(0x0042D5EF), + UINT32_C(0x0020BC9E), UINT32_C(0x001DFACA), UINT32_C(0x00176018), + UINT32_C(0x00557358), UINT32_C(0x000A2A03), UINT32_C(0x0017F6AA), + UINT32_C(0x001A348A), UINT32_C(0x0063CCCE), UINT32_C(0x0019E3CD), + UINT32_C(0x001CAF72), UINT32_C(0x0008A7AC)}, + {UINT32_C(0x00073284), UINT32_C(0x0016A772), UINT32_C(0x001B02B4), + UINT32_C(0x003DCC2C), UINT32_C(0x001275AC), UINT32_C(0x0013EC26), + UINT32_C(0x0039548F), UINT32_C(0x0032AC62), UINT32_C(0x002E6D0F), + UINT32_C(0x0020A687), UINT32_C(0x0034013D), UINT32_C(0x002FBD07), + UINT32_C(0x0027B2FE), UINT32_C(0x000AB0F8), UINT32_C(0x000DFCFE), + UINT32_C(0x004B5DB3), UINT32_C(0x0031570E), UINT32_C(0x002A4886), + UINT32_C(0x000AA957), UINT32_C(0x005D7580), UINT32_C(0x001EBED6), + UINT32_C(0x00253717), UINT32_C(0x001A649B)}}, + {{UINT32_C(0x006C4CB2), UINT32_C(0x001FB3E4), UINT32_C(0x0015B9F8), + UINT32_C(0x00361781), UINT32_C(0x002C10D3), UINT32_C(0x001D9D87), + UINT32_C(0x0034274C), UINT32_C(0x0021EBF4), UINT32_C(0x0033DC87), + UINT32_C(0x000ADD4D), UINT32_C(0x003051CC), UINT32_C(0x0069D7F2), + UINT32_C(0x002CFFFE), UINT32_C(0x0014E44A), UINT32_C(0x00049CA0), + UINT32_C(0x003CBED6), UINT32_C(0x001BF1E2), UINT32_C(0x0014C23E), + UINT32_C(0x000B6EB5), UINT32_C(0x002DB65D), UINT32_C(0x0005CB32), + UINT32_C(0x00038B9C), UINT32_C(0x0007883B)}, + {UINT32_C(0x003EF9A6), UINT32_C(0x001E1E72), UINT32_C(0x00118E1F), + UINT32_C(0x000DD4EE), UINT32_C(0x001621A6), UINT32_C(0x003726A5), + UINT32_C(0x0005CB81), UINT32_C(0x0066CE7A), UINT32_C(0x000248A4), + UINT32_C(0x002D7AFD), UINT32_C(0x0014ACD8), UINT32_C(0x0025639C), + UINT32_C(0x0009A8A5), UINT32_C(0x003318F4), UINT32_C(0x000F0BF7), + UINT32_C(0x005062DE), UINT32_C(0x000024A9), UINT32_C(0x000E22D2), + UINT32_C(0x001E48E9), UINT32_C(0x0021E288), UINT32_C(0x0036DB79), + UINT32_C(0x002F277C), UINT32_C(0x002B4193)}, + {UINT32_C(0x001EA6FE), UINT32_C(0x0031EE3B), UINT32_C(0x00045D18), + UINT32_C(0x007B886D), UINT32_C(0x003AB025), UINT32_C(0x003CB9DC), + UINT32_C(0x001E395D), UINT32_C(0x003B02BB), UINT32_C(0x00117981), + UINT32_C(0x0019571F), UINT32_C(0x0012104C), UINT32_C(0x0015B662), + UINT32_C(0x002C613A), UINT32_C(0x00070FFA), UINT32_C(0x000F20BB), + UINT32_C(0x0070246F), UINT32_C(0x003AE4D8), UINT32_C(0x002C3692), + UINT32_C(0x002BA766), UINT32_C(0x006979EC), UINT32_C(0x001EE4FA), + UINT32_C(0x003FC3AE), UINT32_C(0x00097753)}}, + {{UINT32_C(0x004F1DE3), UINT32_C(0x000C6911), UINT32_C(0x000A47C8), + UINT32_C(0x001D1BD1), UINT32_C(0x002F9D0E), UINT32_C(0x00028B6C), + UINT32_C(0x0030B56D), UINT32_C(0x007338C9), UINT32_C(0x000444B1), + UINT32_C(0x0039A863), UINT32_C(0x0014FD9B), UINT32_C(0x0029BA71), + UINT32_C(0x002F8E1D), UINT32_C(0x0012C499), UINT32_C(0x00073FFA), + UINT32_C(0x000C56D4), UINT32_C(0x0014A736), UINT32_C(0x003A7177), + UINT32_C(0x001CE30C), UINT32_C(0x003AAF39), UINT32_C(0x0022B563), + UINT32_C(0x0036E7CC), UINT32_C(0x0037AFCD)}, + {UINT32_C(0x0058F41D), UINT32_C(0x00140257), UINT32_C(0x00211567), + UINT32_C(0x007DDA65), UINT32_C(0x0022C062), UINT32_C(0x001ED494), + UINT32_C(0x0018952B), UINT32_C(0x00649D74), UINT32_C(0x0029BEC2), + UINT32_C(0x0020C9DA), UINT32_C(0x0017B4BC), UINT32_C(0x0068E1EE), + UINT32_C(0x0008D396), UINT32_C(0x00101E55), UINT32_C(0x00179EF9), + UINT32_C(0x00704D7B), UINT32_C(0x00225FE0), UINT32_C(0x0033AD09), + UINT32_C(0x000D6F51), UINT32_C(0x00617587), UINT32_C(0x00014347), + UINT32_C(0x0006D488), UINT32_C(0x000A58EA)}, + {UINT32_C(0x0062169E), UINT32_C(0x003EC8CD), UINT32_C(0x00241534), + UINT32_C(0x006F5F65), UINT32_C(0x002B9962), UINT32_C(0x00142663), + UINT32_C(0x00088E95), UINT32_C(0x00730FE3), UINT32_C(0x00331A06), + UINT32_C(0x0027E7BD), UINT32_C(0x00364306), UINT32_C(0x003E391E), + UINT32_C(0x00313667), UINT32_C(0x00198427), UINT32_C(0x00226ADA), + UINT32_C(0x00566F4B), UINT32_C(0x0021A27C), UINT32_C(0x0017BBD7), + UINT32_C(0x003D41DB), UINT32_C(0x0028BB58), UINT32_C(0x003278B2), + UINT32_C(0x0006E057), UINT32_C(0x0003C841)}}, + {{UINT32_C(0x00687D5D), UINT32_C(0x003309EF), UINT32_C(0x00346CE5), + UINT32_C(0x001FF1AB), UINT32_C(0x003D2116), UINT32_C(0x0018305D), + UINT32_C(0x00049468), UINT32_C(0x0061BCEB), UINT32_C(0x00157FA5), + UINT32_C(0x00036CFD), UINT32_C(0x0017B473), UINT32_C(0x00536514), + UINT32_C(0x0035BE53), UINT32_C(0x0031FBF4), UINT32_C(0x00138689), + UINT32_C(0x00459FC3), UINT32_C(0x00382E53), UINT32_C(0x0009DCE1), + UINT32_C(0x001E636A), UINT32_C(0x002622FE), UINT32_C(0x0014A044), + UINT32_C(0x00145177), UINT32_C(0x002C68B2)}, + {UINT32_C(0x0007CDE9), UINT32_C(0x0005E108), UINT32_C(0x000D8163), + UINT32_C(0x003F9A62), UINT32_C(0x001C6BBE), UINT32_C(0x00202790), + UINT32_C(0x000B515C), UINT32_C(0x0006A300), UINT32_C(0x0015F9A6), + UINT32_C(0x002A1527), UINT32_C(0x003A73EB), UINT32_C(0x006F181C), + UINT32_C(0x00175B8C), UINT32_C(0x002A4DA4), UINT32_C(0x000768F8), + UINT32_C(0x000E56E3), UINT32_C(0x0029B426), UINT32_C(0x0011186F), + UINT32_C(0x003175D0), UINT32_C(0x0029B106), UINT32_C(0x001EF0B9), + UINT32_C(0x001139E2), UINT32_C(0x0035ACA5)}, + {UINT32_C(0x004B2AE1), UINT32_C(0x001424F0), UINT32_C(0x00110341), + UINT32_C(0x000C7518), UINT32_C(0x001685E7), UINT32_C(0x0016192F), + UINT32_C(0x0028CF4C), UINT32_C(0x00637208), UINT32_C(0x003FCBD2), + UINT32_C(0x00348A0E), UINT32_C(0x0034BDB7), UINT32_C(0x000E99F6), + UINT32_C(0x001472CD), UINT32_C(0x000F1FAA), UINT32_C(0x00102EA2), + UINT32_C(0x00579D10), UINT32_C(0x00229C04), UINT32_C(0x000DA721), + UINT32_C(0x000C0D5E), UINT32_C(0x004201F5), UINT32_C(0x00013FC8), + UINT32_C(0x000DFA6E), UINT32_C(0x00260016)}}, + {{UINT32_C(0x0071785F), UINT32_C(0x002A6790), UINT32_C(0x00374B9A), + UINT32_C(0x005C47E4), UINT32_C(0x00295CBC), UINT32_C(0x0017C2F6), + UINT32_C(0x002DD473), UINT32_C(0x0003079A), UINT32_C(0x001B4CD6), + UINT32_C(0x0024C5E5), UINT32_C(0x00319F1C), UINT32_C(0x00436F1D), + UINT32_C(0x001A1EF6), UINT32_C(0x0003D299), UINT32_C(0x00382BA2), + UINT32_C(0x0060E409), UINT32_C(0x00023098), UINT32_C(0x00171EBD), + UINT32_C(0x0020240F), UINT32_C(0x00330D1E), UINT32_C(0x0017E024), + UINT32_C(0x0009AC85), UINT32_C(0x001B14B7)}, + {UINT32_C(0x003C69F8), UINT32_C(0x00119EF1), UINT32_C(0x002E2839), + UINT32_C(0x00778F4B), UINT32_C(0x00039F0C), UINT32_C(0x0023A6C4), + UINT32_C(0x003F874D), UINT32_C(0x005E260A), UINT32_C(0x003D33F7), + UINT32_C(0x002C9846), UINT32_C(0x00187047), UINT32_C(0x007B8C63), + UINT32_C(0x00273788), UINT32_C(0x000A168B), UINT32_C(0x003C94CF), + UINT32_C(0x0058BB90), UINT32_C(0x000B16B8), UINT32_C(0x003E3A1E), + UINT32_C(0x0018E21B), UINT32_C(0x007A9202), UINT32_C(0x00302517), + UINT32_C(0x00154F91), UINT32_C(0x000846A0)}, + {UINT32_C(0x001A0FDE), UINT32_C(0x00153D67), UINT32_C(0x00336333), + UINT32_C(0x003C90A4), UINT32_C(0x00094797), UINT32_C(0x00312D2A), + UINT32_C(0x001003F0), UINT32_C(0x007FBC25), UINT32_C(0x0003DF24), + UINT32_C(0x00237AC4), UINT32_C(0x00194267), UINT32_C(0x002396ED), + UINT32_C(0x00024617), UINT32_C(0x0016C8CB), UINT32_C(0x00152D85), + UINT32_C(0x0016D3DE), UINT32_C(0x00262957), UINT32_C(0x00311596), + UINT32_C(0x003EC838), UINT32_C(0x001975C2), UINT32_C(0x0034FE59), + UINT32_C(0x00113D00), UINT32_C(0x002243AC)}}, + {{UINT32_C(0x0068A405), UINT32_C(0x0034C98B), UINT32_C(0x0007E397), + UINT32_C(0x00558483), UINT32_C(0x000956CE), UINT32_C(0x002E1CCA), + UINT32_C(0x0005043D), UINT32_C(0x00476A5E), UINT32_C(0x0028457F), + UINT32_C(0x003988DF), UINT32_C(0x0037A1BC), UINT32_C(0x0047942D), + UINT32_C(0x00124D2E), UINT32_C(0x003AE5E0), UINT32_C(0x000B4291), + UINT32_C(0x004D22EB), UINT32_C(0x0014B7CF), UINT32_C(0x0028B3D4), + UINT32_C(0x003CCB59), UINT32_C(0x00190521), UINT32_C(0x000A108D), + UINT32_C(0x003A6057), UINT32_C(0x00172D60)}, + {UINT32_C(0x002B251D), UINT32_C(0x0013D428), UINT32_C(0x000AE878), + UINT32_C(0x005FA00D), UINT32_C(0x00260531), UINT32_C(0x00329563), + UINT32_C(0x000216C5), UINT32_C(0x000D16BE), UINT32_C(0x0009E37E), + UINT32_C(0x003F37E0), UINT32_C(0x001AEF12), UINT32_C(0x0064E859), + UINT32_C(0x0019915B), UINT32_C(0x0005BFF9), UINT32_C(0x003958ED), + UINT32_C(0x000C4E03), UINT32_C(0x0008B99A), UINT32_C(0x001C38F2), + UINT32_C(0x003D7DC0), UINT32_C(0x002F8014), UINT32_C(0x001CEC59), + UINT32_C(0x0034AB43), UINT32_C(0x0013D729)}, + {UINT32_C(0x006F3BD9), UINT32_C(0x00150F71), UINT32_C(0x002A3F95), + UINT32_C(0x0068E792), UINT32_C(0x0016CF11), UINT32_C(0x001B8A33), + UINT32_C(0x002E5920), UINT32_C(0x0038F685), UINT32_C(0x002CDF4A), + UINT32_C(0x0027CB65), UINT32_C(0x002DF482), UINT32_C(0x000A0B78), + UINT32_C(0x00309C5F), UINT32_C(0x003B06D3), UINT32_C(0x0013DAE0), + UINT32_C(0x00554BDE), UINT32_C(0x0017EC53), UINT32_C(0x000F50F5), + UINT32_C(0x00101EF0), UINT32_C(0x005F28DB), UINT32_C(0x0015CC1A), + UINT32_C(0x001980C3), UINT32_C(0x00249DA3)}}, + {{UINT32_C(0x004C93F1), UINT32_C(0x00388A39), UINT32_C(0x0030EEC8), + UINT32_C(0x0052FC35), UINT32_C(0x000B0CAE), UINT32_C(0x002F3E40), + UINT32_C(0x003A2ACD), UINT32_C(0x0028C4D5), UINT32_C(0x001DA5F9), + UINT32_C(0x000586CA), UINT32_C(0x00119027), UINT32_C(0x0016CDC0), + UINT32_C(0x0025236C), UINT32_C(0x0018A357), UINT32_C(0x0000B64B), + UINT32_C(0x0076882B), UINT32_C(0x003182B1), UINT32_C(0x0037246C), + UINT32_C(0x0003FB39), UINT32_C(0x002C988C), UINT32_C(0x00231B0B), + UINT32_C(0x003E5BBF), UINT32_C(0x0000F374)}, + {UINT32_C(0x00010D9D), UINT32_C(0x001FF389), UINT32_C(0x001538D1), + UINT32_C(0x0041BD6C), UINT32_C(0x001301B2), UINT32_C(0x001DCB4A), + UINT32_C(0x0008FABC), UINT32_C(0x00611765), UINT32_C(0x001A717F), + UINT32_C(0x00182FF9), UINT32_C(0x0029A9C1), UINT32_C(0x002B99C3), + UINT32_C(0x00017CA7), UINT32_C(0x00032AA1), UINT32_C(0x002EA89D), + UINT32_C(0x00088D80), UINT32_C(0x0011EC29), UINT32_C(0x003A56BE), + UINT32_C(0x000032B8), UINT32_C(0x001406E5), UINT32_C(0x0038401C), + UINT32_C(0x001ACB38), UINT32_C(0x000CB5E9)}, + {UINT32_C(0x0066E5AB), UINT32_C(0x00161A19), UINT32_C(0x00057829), + UINT32_C(0x005F11AE), UINT32_C(0x0022507E), UINT32_C(0x00113755), + UINT32_C(0x00218956), UINT32_C(0x007E85BC), UINT32_C(0x003A29F5), + UINT32_C(0x001A56EA), UINT32_C(0x002F8A9F), UINT32_C(0x0030B6F2), + UINT32_C(0x001F6A48), UINT32_C(0x003C6B9C), UINT32_C(0x00331944), + UINT32_C(0x0012724E), UINT32_C(0x000154FE), UINT32_C(0x001A08F6), + UINT32_C(0x00053CE3), UINT32_C(0x000110DA), UINT32_C(0x00189838), + UINT32_C(0x000C6556), UINT32_C(0x0026E926)}}, + {{UINT32_C(0x0056B198), UINT32_C(0x002E9D6F), UINT32_C(0x00384104), + UINT32_C(0x002CB192), UINT32_C(0x0011E1D2), UINT32_C(0x000C3007), + UINT32_C(0x00331D92), UINT32_C(0x0072B899), UINT32_C(0x002DFE85), + UINT32_C(0x0019F7AE), UINT32_C(0x00228032), UINT32_C(0x001A709B), + UINT32_C(0x00394A71), UINT32_C(0x00011DCB), UINT32_C(0x0025119C), + UINT32_C(0x00673C0F), UINT32_C(0x000703EE), UINT32_C(0x003905C2), + UINT32_C(0x0004CBE0), UINT32_C(0x003038F7), UINT32_C(0x00218611), + UINT32_C(0x00344F8B), UINT32_C(0x0006EF8F)}, + {UINT32_C(0x0008B7AB), UINT32_C(0x001C7936), UINT32_C(0x000AF677), + UINT32_C(0x0038D1C4), UINT32_C(0x000D1982), UINT32_C(0x00008DE6), + UINT32_C(0x001D8CD8), UINT32_C(0x002DAF00), UINT32_C(0x002139DC), + UINT32_C(0x000C0A4C), UINT32_C(0x00103BF4), UINT32_C(0x00132620), + UINT32_C(0x001E360F), UINT32_C(0x0020BE7E), UINT32_C(0x002F6F7B), + UINT32_C(0x00045610), UINT32_C(0x003B63BF), UINT32_C(0x00065305), + UINT32_C(0x0030A74A), UINT32_C(0x0072846A), UINT32_C(0x0009D52F), + UINT32_C(0x00360AFC), UINT32_C(0x0015C630)}, + {UINT32_C(0x001BB7E7), UINT32_C(0x0038CFC8), UINT32_C(0x00105C2D), + UINT32_C(0x004F800D), UINT32_C(0x002813AF), UINT32_C(0x003D95F7), + UINT32_C(0x000B5E3E), UINT32_C(0x0065C148), UINT32_C(0x0017B5EB), + UINT32_C(0x000B59AB), UINT32_C(0x000D6920), UINT32_C(0x001459AF), + UINT32_C(0x002201A2), UINT32_C(0x00066541), UINT32_C(0x001D0BA3), + UINT32_C(0x00337E0F), UINT32_C(0x003BE92F), UINT32_C(0x000375C3), + UINT32_C(0x0035FBBD), UINT32_C(0x005F0B0F), UINT32_C(0x000E891B), + UINT32_C(0x00131D3F), UINT32_C(0x0014ED75)}}, + {{UINT32_C(0x0050D8D5), UINT32_C(0x002E5561), UINT32_C(0x0031562B), + UINT32_C(0x00395B3A), UINT32_C(0x002D062A), UINT32_C(0x00329C94), + UINT32_C(0x001BED6E), UINT32_C(0x0064208E), UINT32_C(0x00302BDB), + UINT32_C(0x0038A686), UINT32_C(0x001E41F5), UINT32_C(0x001078F7), + UINT32_C(0x003A3FCC), UINT32_C(0x00061B38), UINT32_C(0x003A908E), + UINT32_C(0x005A12D7), UINT32_C(0x0002303D), UINT32_C(0x00141E31), + UINT32_C(0x0009E463), UINT32_C(0x0073510F), UINT32_C(0x003C92B0), + UINT32_C(0x00083485), UINT32_C(0x00037A81)}, + {UINT32_C(0x0019B1B8), UINT32_C(0x0038CD53), UINT32_C(0x000E197C), + UINT32_C(0x0009FF2F), UINT32_C(0x003BCD33), UINT32_C(0x00302C2A), + UINT32_C(0x00054200), UINT32_C(0x0079B52B), UINT32_C(0x0039D05F), + UINT32_C(0x001F9C10), UINT32_C(0x0029B440), UINT32_C(0x003D8482), + UINT32_C(0x001C2BD2), UINT32_C(0x0019BD77), UINT32_C(0x0010755E), + UINT32_C(0x006CAE47), UINT32_C(0x0001B82A), UINT32_C(0x003DF53B), + UINT32_C(0x00018A7F), UINT32_C(0x005FC8AB), UINT32_C(0x000BFFCF), + UINT32_C(0x00169679), UINT32_C(0x00067097)}, + {UINT32_C(0x000935D3), UINT32_C(0x0010F268), UINT32_C(0x00288B71), + UINT32_C(0x00303DEB), UINT32_C(0x002E4A85), UINT32_C(0x0001813E), + UINT32_C(0x003CDD05), UINT32_C(0x0001AD0A), UINT32_C(0x0014AA02), + UINT32_C(0x0019FD4A), UINT32_C(0x00200BBD), UINT32_C(0x00331B4F), + UINT32_C(0x000FCCBE), UINT32_C(0x001F30DB), UINT32_C(0x000BDF6F), + UINT32_C(0x007AB775), UINT32_C(0x0021BE2D), UINT32_C(0x000ED4B7), + UINT32_C(0x00384794), UINT32_C(0x00784F1A), UINT32_C(0x003F3A79), + UINT32_C(0x0003D50F), UINT32_C(0x00064F82)}}, + {{UINT32_C(0x0055E16A), UINT32_C(0x0009CBF4), UINT32_C(0x0007F387), + UINT32_C(0x0008D055), UINT32_C(0x001DE49D), UINT32_C(0x003DF914), + UINT32_C(0x003ED04E), UINT32_C(0x006CA4BC), UINT32_C(0x0028FCE3), + UINT32_C(0x003273A4), UINT32_C(0x002DF89A), UINT32_C(0x00230A46), + UINT32_C(0x0018E30C), UINT32_C(0x002CE6F1), UINT32_C(0x0002DB57), + UINT32_C(0x007890F7), UINT32_C(0x0022D4F9), UINT32_C(0x0038DC8F), + UINT32_C(0x00376FF1), UINT32_C(0x0012231A), UINT32_C(0x00074880), + UINT32_C(0x0012A080), UINT32_C(0x00056DC5)}, + {UINT32_C(0x003DBBF8), UINT32_C(0x00196819), UINT32_C(0x0024DB6E), + UINT32_C(0x007A739A), UINT32_C(0x002C4BD5), UINT32_C(0x00241E7E), + UINT32_C(0x0038C332), UINT32_C(0x000E069B), UINT32_C(0x0011A877), + UINT32_C(0x000BB5F3), UINT32_C(0x0000613F), UINT32_C(0x001D700E), + UINT32_C(0x00154F4E), UINT32_C(0x00232AA4), UINT32_C(0x00159C2A), + UINT32_C(0x00203C23), UINT32_C(0x002AC285), UINT32_C(0x002F4ED7), + UINT32_C(0x003914CE), UINT32_C(0x001B8C64), UINT32_C(0x000C5894), + UINT32_C(0x003A7D72), UINT32_C(0x0021EFB5)}, + {UINT32_C(0x0034EA4D), UINT32_C(0x001BA7B1), UINT32_C(0x003C1624), + UINT32_C(0x00332852), UINT32_C(0x003E94DA), UINT32_C(0x00000887), + UINT32_C(0x000BFE68), UINT32_C(0x004AD4CA), UINT32_C(0x000B742B), + UINT32_C(0x00158248), UINT32_C(0x00285B88), UINT32_C(0x006EDD6B), + UINT32_C(0x00200BAB), UINT32_C(0x00248DD5), UINT32_C(0x001035A8), + UINT32_C(0x001F2081), UINT32_C(0x0007B194), UINT32_C(0x0011B74D), + UINT32_C(0x00152BCC), UINT32_C(0x005F5821), UINT32_C(0x001FE674), + UINT32_C(0x000239A6), UINT32_C(0x0034BB24)}}, + {{UINT32_C(0x0072B20F), UINT32_C(0x000BF7F4), UINT32_C(0x00178C52), + UINT32_C(0x00776657), UINT32_C(0x0004BFE5), UINT32_C(0x000AA36B), + UINT32_C(0x003719B7), UINT32_C(0x004C2095), UINT32_C(0x00355126), + UINT32_C(0x001B6111), UINT32_C(0x00172806), UINT32_C(0x0052CE54), + UINT32_C(0x0008F0A0), UINT32_C(0x002B3884), UINT32_C(0x002B7196), + UINT32_C(0x003A0409), UINT32_C(0x00124BAA), UINT32_C(0x001E7741), + UINT32_C(0x00128DC5), UINT32_C(0x00301368), UINT32_C(0x0002A859), + UINT32_C(0x00145DD3), UINT32_C(0x001A5AE5)}, + {UINT32_C(0x004943B1), UINT32_C(0x0036FA8C), UINT32_C(0x002BCCB8), + UINT32_C(0x00702644), UINT32_C(0x00253FD2), UINT32_C(0x00185CBE), + UINT32_C(0x00047A35), UINT32_C(0x002AF03C), UINT32_C(0x001AE6F9), + UINT32_C(0x001FBB03), UINT32_C(0x0024ABE9), UINT32_C(0x0023A32D), + UINT32_C(0x002165FE), UINT32_C(0x0025287B), UINT32_C(0x0013905E), + UINT32_C(0x005CFE02), UINT32_C(0x0007F1F9), UINT32_C(0x003E1E1E), + UINT32_C(0x0007A483), UINT32_C(0x001BF89E), UINT32_C(0x0010168F), + UINT32_C(0x00062F67), UINT32_C(0x00133007)}, + {UINT32_C(0x007D5697), UINT32_C(0x00312189), UINT32_C(0x0015FC12), + UINT32_C(0x003C037B), UINT32_C(0x00175465), UINT32_C(0x000F4B83), + UINT32_C(0x0021DF66), UINT32_C(0x002A624D), UINT32_C(0x0034D443), + UINT32_C(0x001E79DD), UINT32_C(0x00321A3F), UINT32_C(0x0018DC79), + UINT32_C(0x001A5D56), UINT32_C(0x003541AF), UINT32_C(0x00070013), + UINT32_C(0x0024CB38), UINT32_C(0x00065D92), UINT32_C(0x0020B271), + UINT32_C(0x001EC105), UINT32_C(0x001E7C11), UINT32_C(0x00122C84), + UINT32_C(0x0007B7C1), UINT32_C(0x002FDB93)}}, + }, + { + {{UINT32_C(0x0044839B), UINT32_C(0x003198F6), UINT32_C(0x003BD372), + UINT32_C(0x007ED128), UINT32_C(0x00206115), UINT32_C(0x003FDD6A), + UINT32_C(0x0022F00A), UINT32_C(0x00117144), UINT32_C(0x001588A8), + UINT32_C(0x001FF57F), UINT32_C(0x00289324), UINT32_C(0x00690294), + UINT32_C(0x002D2809), UINT32_C(0x001DC9A7), UINT32_C(0x000B6923), + UINT32_C(0x004B99EF), UINT32_C(0x003488AB), UINT32_C(0x001F4972), + UINT32_C(0x000FFB73), UINT32_C(0x0059A57D), UINT32_C(0x000F6194), + UINT32_C(0x000B6F28), UINT32_C(0x0025388B)}, + {UINT32_C(0x0064E5A1), UINT32_C(0x0013FE4F), UINT32_C(0x0008ECCD), + UINT32_C(0x00005C77), UINT32_C(0x0001B9C8), UINT32_C(0x00162316), + UINT32_C(0x0020528F), UINT32_C(0x002DEDD0), UINT32_C(0x00191713), + UINT32_C(0x0030317D), UINT32_C(0x0039A24F), UINT32_C(0x002EB466), + UINT32_C(0x000EA8D0), UINT32_C(0x000E5D27), UINT32_C(0x003FED4F), + UINT32_C(0x0040531E), UINT32_C(0x000FBA2C), UINT32_C(0x00234E5D), + UINT32_C(0x0003D16D), UINT32_C(0x007F1872), UINT32_C(0x00256C50), + UINT32_C(0x00316CFD), UINT32_C(0x002401F9)}, + {UINT32_C(0x000275D5), UINT32_C(0x001F7882), UINT32_C(0x0025E59C), + UINT32_C(0x0001B773), UINT32_C(0x0024FF1D), UINT32_C(0x000D98CD), + UINT32_C(0x000B7E40), UINT32_C(0x006E438E), UINT32_C(0x00355F20), + UINT32_C(0x0019A7AE), UINT32_C(0x00290722), UINT32_C(0x00174B19), + UINT32_C(0x00318264), UINT32_C(0x00049CAA), UINT32_C(0x003F743B), + UINT32_C(0x004FA60E), UINT32_C(0x0021E560), UINT32_C(0x002DDBD1), + UINT32_C(0x00279C3F), UINT32_C(0x002A0542), UINT32_C(0x001C4F6E), + UINT32_C(0x003F3D08), UINT32_C(0x001A9CB4)}}, + {{UINT32_C(0x0044D3B6), UINT32_C(0x0011A0B0), UINT32_C(0x00223464), + UINT32_C(0x00616311), UINT32_C(0x00045B71), UINT32_C(0x00221B75), + UINT32_C(0x000DDB07), UINT32_C(0x0036CCED), UINT32_C(0x00310543), + UINT32_C(0x001C0449), UINT32_C(0x001A5298), UINT32_C(0x007F7212), + UINT32_C(0x0027112E), UINT32_C(0x003341D5), UINT32_C(0x001BB277), + UINT32_C(0x0047B3A6), UINT32_C(0x002631FE), UINT32_C(0x000EC73F), + UINT32_C(0x003BEA8E), UINT32_C(0x0011ACAD), UINT32_C(0x00056AB4), + UINT32_C(0x00332F4E), UINT32_C(0x0020F040)}, + {UINT32_C(0x00729FF7), UINT32_C(0x00084FDB), UINT32_C(0x000AF943), + UINT32_C(0x0069EFD1), UINT32_C(0x000F6B0C), UINT32_C(0x002C5DA9), + UINT32_C(0x003FE069), UINT32_C(0x0072A537), UINT32_C(0x000A3F33), + UINT32_C(0x001C0A53), UINT32_C(0x002F3282), UINT32_C(0x006C96EB), + UINT32_C(0x0039033F), UINT32_C(0x0004147A), UINT32_C(0x002F27E0), + UINT32_C(0x000752BF), UINT32_C(0x00061145), UINT32_C(0x002CD663), + UINT32_C(0x0031DFD9), UINT32_C(0x007E357F), UINT32_C(0x001E8721), + UINT32_C(0x00265FEF), UINT32_C(0x00077889)}, + {UINT32_C(0x0033FAD5), UINT32_C(0x0016E6ED), UINT32_C(0x0016F2EF), + UINT32_C(0x001B964B), UINT32_C(0x001A2ECA), UINT32_C(0x003E0C81), + UINT32_C(0x003FE7D9), UINT32_C(0x0069AB34), UINT32_C(0x002B4E22), + UINT32_C(0x003B9125), UINT32_C(0x003129C9), UINT32_C(0x006B5E95), + UINT32_C(0x003E450D), UINT32_C(0x003C0221), UINT32_C(0x00246870), + UINT32_C(0x0012331E), UINT32_C(0x00368335), UINT32_C(0x003842E7), + UINT32_C(0x001CD463), UINT32_C(0x00375065), UINT32_C(0x001AFC4F), + UINT32_C(0x0018C552), UINT32_C(0x003DF99D)}}, + {{UINT32_C(0x0076C909), UINT32_C(0x002ECC28), UINT32_C(0x003E534C), + UINT32_C(0x006E5B56), UINT32_C(0x003472BC), UINT32_C(0x002ED648), + UINT32_C(0x001800E5), UINT32_C(0x0062EB01), UINT32_C(0x00388368), + UINT32_C(0x0017E589), UINT32_C(0x000EE455), UINT32_C(0x00752271), + UINT32_C(0x0007DB0E), UINT32_C(0x0004CE3B), UINT32_C(0x001BC93D), + UINT32_C(0x00266E9B), UINT32_C(0x001A633F), UINT32_C(0x00080153), + UINT32_C(0x00100613), UINT32_C(0x001B334A), UINT32_C(0x001081C5), + UINT32_C(0x003CEACA), UINT32_C(0x0028BC5F)}, + {UINT32_C(0x004FB1B3), UINT32_C(0x001F97A9), UINT32_C(0x00159D7E), + UINT32_C(0x00459CF9), UINT32_C(0x000CBC43), UINT32_C(0x00132E42), + UINT32_C(0x003F3662), UINT32_C(0x0032762F), UINT32_C(0x003F6792), + UINT32_C(0x00147465), UINT32_C(0x00064E92), UINT32_C(0x007B5ED9), + UINT32_C(0x002CDCB9), UINT32_C(0x003B3F08), UINT32_C(0x00307A15), + UINT32_C(0x00760D9B), UINT32_C(0x00145A0B), UINT32_C(0x00101514), + UINT32_C(0x0036AC7F), UINT32_C(0x0046C8CA), UINT32_C(0x0009D1F6), + UINT32_C(0x00065054), UINT32_C(0x000DEBF1)}, + {UINT32_C(0x004F598C), UINT32_C(0x002DEC24), UINT32_C(0x000EFF2A), + UINT32_C(0x001F3645), UINT32_C(0x0027F317), UINT32_C(0x003DAF78), + UINT32_C(0x002BC2DB), UINT32_C(0x0004EA69), UINT32_C(0x00279343), + UINT32_C(0x00337BF6), UINT32_C(0x00117316), UINT32_C(0x00616D27), + UINT32_C(0x00378EC8), UINT32_C(0x0025D729), UINT32_C(0x00265316), + UINT32_C(0x003D0829), UINT32_C(0x00396E01), UINT32_C(0x002AE96D), + UINT32_C(0x003445E4), UINT32_C(0x001E9F9A), UINT32_C(0x0030EDDC), + UINT32_C(0x002E073A), UINT32_C(0x0021B311)}}, + {{UINT32_C(0x002CC32D), UINT32_C(0x000D826A), UINT32_C(0x0026E228), + UINT32_C(0x000D6206), UINT32_C(0x00227832), UINT32_C(0x002140D7), + UINT32_C(0x002068C2), UINT32_C(0x005C5008), UINT32_C(0x0025521D), + UINT32_C(0x00281FA5), UINT32_C(0x00051E83), UINT32_C(0x00105A03), + UINT32_C(0x003232E0), UINT32_C(0x003D0E47), UINT32_C(0x003BD547), + UINT32_C(0x0065100C), UINT32_C(0x00113B09), UINT32_C(0x0024F1FA), + UINT32_C(0x0030CDA7), UINT32_C(0x0053D618), UINT32_C(0x000A2A17), + UINT32_C(0x000BD8B1), UINT32_C(0x0020FB2C)}, + {UINT32_C(0x005A2225), UINT32_C(0x00391B43), UINT32_C(0x000B1CFF), + UINT32_C(0x007DCE4C), UINT32_C(0x00193C2C), UINT32_C(0x003BFBCF), + UINT32_C(0x001040C3), UINT32_C(0x001E82A9), UINT32_C(0x003D9486), + UINT32_C(0x003AF831), UINT32_C(0x00217A7A), UINT32_C(0x006F3F26), + UINT32_C(0x002E52C2), UINT32_C(0x0038837E), UINT32_C(0x00256BB5), + UINT32_C(0x001D310D), UINT32_C(0x000D911E), UINT32_C(0x0012DD9B), + UINT32_C(0x001D3C60), UINT32_C(0x0042AE12), UINT32_C(0x001AA290), + UINT32_C(0x0011D773), UINT32_C(0x0008A556)}, + {UINT32_C(0x003DB239), UINT32_C(0x003C331E), UINT32_C(0x002C1ABE), + UINT32_C(0x0054F6FD), UINT32_C(0x0029390C), UINT32_C(0x002F6790), + UINT32_C(0x002CD02B), UINT32_C(0x007AFE3F), UINT32_C(0x0012B2C3), + UINT32_C(0x002287BB), UINT32_C(0x00114FE8), UINT32_C(0x002CC8AC), + UINT32_C(0x002CADBB), UINT32_C(0x001A33BE), UINT32_C(0x0037BE86), + UINT32_C(0x000AA64F), UINT32_C(0x000CDB97), UINT32_C(0x003CF948), + UINT32_C(0x001BB280), UINT32_C(0x000BD3AD), UINT32_C(0x001C0A26), + UINT32_C(0x001857F5), UINT32_C(0x002270FB)}}, + {{UINT32_C(0x00588772), UINT32_C(0x0034A3BF), UINT32_C(0x002B2057), + UINT32_C(0x000D6822), UINT32_C(0x000ED9FF), UINT32_C(0x00385C48), + UINT32_C(0x003A74B9), UINT32_C(0x005A12D2), UINT32_C(0x00079DD4), + UINT32_C(0x002B2E76), UINT32_C(0x00000E28), UINT32_C(0x000E1C30), + UINT32_C(0x003339AE), UINT32_C(0x00248CCE), UINT32_C(0x003445A9), + UINT32_C(0x0028093C), UINT32_C(0x00256A7E), UINT32_C(0x0018F19E), + UINT32_C(0x00385218), UINT32_C(0x0057D410), UINT32_C(0x002DBF86), + UINT32_C(0x001F5ECA), UINT32_C(0x001CACDD)}, + {UINT32_C(0x00265C7D), UINT32_C(0x0028705E), UINT32_C(0x00384F7D), + UINT32_C(0x0018D471), UINT32_C(0x001527DF), UINT32_C(0x003DA983), + UINT32_C(0x001DDE7F), UINT32_C(0x002A71F4), UINT32_C(0x001B4521), + UINT32_C(0x0003DCB4), UINT32_C(0x00328F6D), UINT32_C(0x00195CDD), + UINT32_C(0x0016F6B4), UINT32_C(0x0002550C), UINT32_C(0x00181F0F), + UINT32_C(0x00279602), UINT32_C(0x0000592B), UINT32_C(0x000A8FC2), + UINT32_C(0x00173822), UINT32_C(0x00528D2F), UINT32_C(0x003BB20B), + UINT32_C(0x001CB21C), UINT32_C(0x002E0800)}, + {UINT32_C(0x0067C867), UINT32_C(0x0024B417), UINT32_C(0x000D83F0), + UINT32_C(0x00584B7B), UINT32_C(0x002C2DCD), UINT32_C(0x003925C8), + UINT32_C(0x0035374E), UINT32_C(0x00273444), UINT32_C(0x001ED50E), + UINT32_C(0x0019DC39), UINT32_C(0x00012047), UINT32_C(0x004B56F7), + UINT32_C(0x001F477D), UINT32_C(0x000C0B39), UINT32_C(0x00103A52), + UINT32_C(0x003B6571), UINT32_C(0x000F7CB4), UINT32_C(0x003F0E6A), + UINT32_C(0x003100B6), UINT32_C(0x0077750C), UINT32_C(0x002A6650), + UINT32_C(0x001B8E63), UINT32_C(0x00356E38)}}, + {{UINT32_C(0x00294CC0), UINT32_C(0x001ABF5C), UINT32_C(0x0022AB9B), + UINT32_C(0x00575222), UINT32_C(0x00251493), UINT32_C(0x002E554C), + UINT32_C(0x0027F012), UINT32_C(0x0071924E), UINT32_C(0x0023D76D), + UINT32_C(0x00230B9E), UINT32_C(0x00295210), UINT32_C(0x00783EB9), + UINT32_C(0x003D2EB1), UINT32_C(0x0034E19B), UINT32_C(0x0021E2D1), + UINT32_C(0x0050A8CA), UINT32_C(0x0018C513), UINT32_C(0x00167437), + UINT32_C(0x002F383C), UINT32_C(0x0071AE6B), UINT32_C(0x0005632B), + UINT32_C(0x00097273), UINT32_C(0x0039C267)}, + {UINT32_C(0x0056E019), UINT32_C(0x00310B20), UINT32_C(0x00308BD2), + UINT32_C(0x00786653), UINT32_C(0x00396A2E), UINT32_C(0x0007FF67), + UINT32_C(0x003BFBA0), UINT32_C(0x00328BB8), UINT32_C(0x0024DDEC), + UINT32_C(0x002F538D), UINT32_C(0x003BCCD8), UINT32_C(0x006635E3), + UINT32_C(0x0023177E), UINT32_C(0x00045322), UINT32_C(0x002E32D2), + UINT32_C(0x004EC3F8), UINT32_C(0x001E2DE3), UINT32_C(0x00245612), + UINT32_C(0x003C6038), UINT32_C(0x004D683D), UINT32_C(0x0012B6CB), + UINT32_C(0x00027583), UINT32_C(0x002B048C)}, + {UINT32_C(0x0078D023), UINT32_C(0x002E23CC), UINT32_C(0x000772AC), + UINT32_C(0x003B5B53), UINT32_C(0x0029ED11), UINT32_C(0x003ED08F), + UINT32_C(0x00071E5C), UINT32_C(0x00428132), UINT32_C(0x00315335), + UINT32_C(0x0000402B), UINT32_C(0x000822D3), UINT32_C(0x007B1B14), + UINT32_C(0x0035A437), UINT32_C(0x00206234), UINT32_C(0x0032B6E0), + UINT32_C(0x0055555C), UINT32_C(0x0027CFBE), UINT32_C(0x0004A5EA), + UINT32_C(0x000556CE), UINT32_C(0x0031DFEB), UINT32_C(0x001DB053), + UINT32_C(0x000E8BAC), UINT32_C(0x000C0D49)}}, + {{UINT32_C(0x004AA9D1), UINT32_C(0x002779EA), UINT32_C(0x001B86F9), + UINT32_C(0x0072282A), UINT32_C(0x001EBBE9), UINT32_C(0x0018B46D), + UINT32_C(0x0026FF2C), UINT32_C(0x003F0CC7), UINT32_C(0x00212453), + UINT32_C(0x0034244B), UINT32_C(0x0009799C), UINT32_C(0x004F49C4), + UINT32_C(0x000C1DEA), UINT32_C(0x0035B3DF), UINT32_C(0x000BDBDF), + UINT32_C(0x001F15A7), UINT32_C(0x0037371D), UINT32_C(0x0020EBE1), + UINT32_C(0x0002EA33), UINT32_C(0x0009840B), UINT32_C(0x001DD721), + UINT32_C(0x002EA8B9), UINT32_C(0x000B48AD)}, + {UINT32_C(0x00234472), UINT32_C(0x0005EFDD), UINT32_C(0x0021B297), + UINT32_C(0x002E57AF), UINT32_C(0x00131F56), UINT32_C(0x003DE1F4), + UINT32_C(0x003D96B7), UINT32_C(0x003AA17F), UINT32_C(0x0017742D), + UINT32_C(0x00026100), UINT32_C(0x00337A96), UINT32_C(0x004EA9E0), + UINT32_C(0x0027EA1C), UINT32_C(0x001F7FA1), UINT32_C(0x0032FFCB), + UINT32_C(0x007DD72A), UINT32_C(0x0035BB87), UINT32_C(0x00318CC2), + UINT32_C(0x003F5009), UINT32_C(0x00766DE0), UINT32_C(0x00391596), + UINT32_C(0x000DFBB0), UINT32_C(0x002A498F)}, + {UINT32_C(0x0068F40A), UINT32_C(0x0034745D), UINT32_C(0x003B263F), + UINT32_C(0x00370D88), UINT32_C(0x000B7E85), UINT32_C(0x00165B40), + UINT32_C(0x000F819E), UINT32_C(0x005987AB), UINT32_C(0x00108717), + UINT32_C(0x002A8421), UINT32_C(0x000B286F), UINT32_C(0x004B94FD), + UINT32_C(0x001DCD66), UINT32_C(0x0004CFEC), UINT32_C(0x0021944B), + UINT32_C(0x00187F0D), UINT32_C(0x000E4A62), UINT32_C(0x00307E74), + UINT32_C(0x0006FCD6), UINT32_C(0x004495F4), UINT32_C(0x0031D0FE), + UINT32_C(0x002D69FC), UINT32_C(0x000B5770)}}, + {{UINT32_C(0x0042173B), UINT32_C(0x002F2767), UINT32_C(0x003D5FCF), + UINT32_C(0x0049931C), UINT32_C(0x0009BCA8), UINT32_C(0x001886FD), + UINT32_C(0x00110F6D), UINT32_C(0x003C1F29), UINT32_C(0x002C545A), + UINT32_C(0x0033EF6F), UINT32_C(0x0018E372), UINT32_C(0x0075FA4C), + UINT32_C(0x0018BB09), UINT32_C(0x0026F270), UINT32_C(0x00346DE4), + UINT32_C(0x0028FAC0), UINT32_C(0x0023E410), UINT32_C(0x0027B61C), + UINT32_C(0x0014EA05), UINT32_C(0x00438310), UINT32_C(0x002CAD7B), + UINT32_C(0x001FD7F3), UINT32_C(0x000B3F41)}, + {UINT32_C(0x0010995C), UINT32_C(0x00168EA0), UINT32_C(0x0013CA45), + UINT32_C(0x002F2095), UINT32_C(0x0031AB84), UINT32_C(0x0032FB0A), + UINT32_C(0x00042BB8), UINT32_C(0x0008933C), UINT32_C(0x00097983), + UINT32_C(0x00065857), UINT32_C(0x00150488), UINT32_C(0x001F3B0B), + UINT32_C(0x0029F9DE), UINT32_C(0x00298C42), UINT32_C(0x00291103), + UINT32_C(0x007B8240), UINT32_C(0x00185C19), UINT32_C(0x000A0A6A), + UINT32_C(0x000D566B), UINT32_C(0x000742CE), UINT32_C(0x001D215F), + UINT32_C(0x003F50AC), UINT32_C(0x0022911C)}, + {UINT32_C(0x0045E864), UINT32_C(0x00015742), UINT32_C(0x00161854), + UINT32_C(0x007B3D4F), UINT32_C(0x0021EEAE), UINT32_C(0x00296CE2), + UINT32_C(0x003346C6), UINT32_C(0x00734650), UINT32_C(0x001106CC), + UINT32_C(0x001BF45E), UINT32_C(0x001F7D96), UINT32_C(0x0045F811), + UINT32_C(0x003B405E), UINT32_C(0x000DE8B5), UINT32_C(0x00178A69), + UINT32_C(0x006CFE39), UINT32_C(0x003F339A), UINT32_C(0x00262A13), + UINT32_C(0x0002FB7C), UINT32_C(0x00669A06), UINT32_C(0x002CB49B), + UINT32_C(0x000DD528), UINT32_C(0x0026C657)}}, + {{UINT32_C(0x005A4314), UINT32_C(0x0033DCDD), UINT32_C(0x003024FC), + UINT32_C(0x003FA63F), UINT32_C(0x00296FCE), UINT32_C(0x001613FF), + UINT32_C(0x001601C8), UINT32_C(0x0018EC14), UINT32_C(0x00176101), + UINT32_C(0x0016707A), UINT32_C(0x00323522), UINT32_C(0x006451EF), + UINT32_C(0x0038E06E), UINT32_C(0x000BBED9), UINT32_C(0x00325EF6), + UINT32_C(0x005506AE), UINT32_C(0x00173417), UINT32_C(0x0030CE7F), + UINT32_C(0x000E2A20), UINT32_C(0x0065E329), UINT32_C(0x00052AB8), + UINT32_C(0x001DC041), UINT32_C(0x000C6341)}, + {UINT32_C(0x0044DD3D), UINT32_C(0x002AF1BC), UINT32_C(0x0009FA4B), + UINT32_C(0x00334B00), UINT32_C(0x003F42E3), UINT32_C(0x0002593C), + UINT32_C(0x00229E96), UINT32_C(0x006D61D4), UINT32_C(0x002B2FD7), + UINT32_C(0x0022C1A9), UINT32_C(0x00290FC9), UINT32_C(0x00728BC5), + UINT32_C(0x003CC825), UINT32_C(0x002F498D), UINT32_C(0x00343407), + UINT32_C(0x00205470), UINT32_C(0x000675EC), UINT32_C(0x002ED6F5), + UINT32_C(0x00063C9F), UINT32_C(0x005D0188), UINT32_C(0x0026F6B5), + UINT32_C(0x00063702), UINT32_C(0x0003A29D)}, + {UINT32_C(0x0035F788), UINT32_C(0x0024E672), UINT32_C(0x0028C708), + UINT32_C(0x003BBCE6), UINT32_C(0x00138643), UINT32_C(0x000A192E), + UINT32_C(0x000582FA), UINT32_C(0x00192093), UINT32_C(0x0029B4D3), + UINT32_C(0x002443E6), UINT32_C(0x003FB121), UINT32_C(0x00581657), + UINT32_C(0x002CD1A9), UINT32_C(0x00110FB0), UINT32_C(0x00299AA9), + UINT32_C(0x001FD531), UINT32_C(0x0002E546), UINT32_C(0x001E08DB), + UINT32_C(0x001D678E), UINT32_C(0x0043BD67), UINT32_C(0x001A8272), + UINT32_C(0x0022C90A), UINT32_C(0x0007CC59)}}, + {{UINT32_C(0x003C1C05), UINT32_C(0x00371D27), UINT32_C(0x001EE674), + UINT32_C(0x006687DD), UINT32_C(0x001B5B64), UINT32_C(0x0037B7A6), + UINT32_C(0x00110B63), UINT32_C(0x004D3034), UINT32_C(0x00034E37), + UINT32_C(0x003361C7), UINT32_C(0x0029A6D0), UINT32_C(0x005A8F45), + UINT32_C(0x0002097C), UINT32_C(0x000EA46A), UINT32_C(0x001C9C63), + UINT32_C(0x00510D99), UINT32_C(0x000FB932), UINT32_C(0x000D6720), + UINT32_C(0x000487B1), UINT32_C(0x003D00ED), UINT32_C(0x000851E4), + UINT32_C(0x000997F2), UINT32_C(0x00320424)}, + {UINT32_C(0x0061B9A6), UINT32_C(0x001B989A), UINT32_C(0x0038839A), + UINT32_C(0x0038318C), UINT32_C(0x000A4E7A), UINT32_C(0x00316981), + UINT32_C(0x00262D85), UINT32_C(0x00404D09), UINT32_C(0x00382ABE), + UINT32_C(0x000DCD89), UINT32_C(0x001791BB), UINT32_C(0x002076BF), + UINT32_C(0x00097C30), UINT32_C(0x0038D1B5), UINT32_C(0x0030A092), + UINT32_C(0x00563AEB), UINT32_C(0x0027026C), UINT32_C(0x000E6AF4), + UINT32_C(0x0037D8D5), UINT32_C(0x006D9346), UINT32_C(0x001E7C0C), + UINT32_C(0x001B5D43), UINT32_C(0x0035B6ED)}, + {UINT32_C(0x007FF888), UINT32_C(0x00222708), UINT32_C(0x001FA371), + UINT32_C(0x000DCC52), UINT32_C(0x0005815A), UINT32_C(0x001F9620), + UINT32_C(0x000061B0), UINT32_C(0x00078FA0), UINT32_C(0x0024CC30), + UINT32_C(0x0015B96E), UINT32_C(0x0021510C), UINT32_C(0x00382242), + UINT32_C(0x0030063A), UINT32_C(0x0036F011), UINT32_C(0x0037B5D5), + UINT32_C(0x0002EB1A), UINT32_C(0x0026488B), UINT32_C(0x003568B8), + UINT32_C(0x0003E1F1), UINT32_C(0x00517C59), UINT32_C(0x0030A3A0), + UINT32_C(0x0025590A), UINT32_C(0x001142DE)}}, + {{UINT32_C(0x005982A8), UINT32_C(0x00370C8F), UINT32_C(0x000AF64E), + UINT32_C(0x0002E275), UINT32_C(0x001EEE4F), UINT32_C(0x00246CAD), + UINT32_C(0x002AC24B), UINT32_C(0x00334875), UINT32_C(0x00174AA6), + UINT32_C(0x002C27C8), UINT32_C(0x000EA109), UINT32_C(0x002BB331), + UINT32_C(0x002AE934), UINT32_C(0x00254289), UINT32_C(0x003CA630), + UINT32_C(0x003660D8), UINT32_C(0x0002C93F), UINT32_C(0x0018A01E), + UINT32_C(0x0031D7A9), UINT32_C(0x002BD9F0), UINT32_C(0x002B8049), + UINT32_C(0x00350D91), UINT32_C(0x00294E97)}, + {UINT32_C(0x00129088), UINT32_C(0x0028094D), UINT32_C(0x00357F4D), + UINT32_C(0x006B6FFF), UINT32_C(0x001B77FC), UINT32_C(0x00021A12), + UINT32_C(0x00214A39), UINT32_C(0x007DAD9D), UINT32_C(0x0003BCA3), + UINT32_C(0x0032A844), UINT32_C(0x002DC466), UINT32_C(0x005640CE), + UINT32_C(0x003A5766), UINT32_C(0x00209AE0), UINT32_C(0x00388583), + UINT32_C(0x005AA61F), UINT32_C(0x003917FE), UINT32_C(0x0020DB8C), + UINT32_C(0x002576DC), UINT32_C(0x0046380E), UINT32_C(0x002B7CE8), + UINT32_C(0x000B5A77), UINT32_C(0x00136232)}, + {UINT32_C(0x00059DD5), UINT32_C(0x00298A36), UINT32_C(0x002A6FC3), + UINT32_C(0x0030E5AA), UINT32_C(0x00308A3F), UINT32_C(0x002D40E1), + UINT32_C(0x002E7DE9), UINT32_C(0x000807B9), UINT32_C(0x000E3F2E), + UINT32_C(0x00227438), UINT32_C(0x00210CE9), UINT32_C(0x002EFE56), + UINT32_C(0x00252E80), UINT32_C(0x0038C0F1), UINT32_C(0x00175105), + UINT32_C(0x000E6782), UINT32_C(0x000B3A10), UINT32_C(0x0011D347), + UINT32_C(0x0006498F), UINT32_C(0x001484B8), UINT32_C(0x00092D66), + UINT32_C(0x001CAD6A), UINT32_C(0x003E1628)}}, + {{UINT32_C(0x001FA2D3), UINT32_C(0x001AD4F5), UINT32_C(0x001BA2BF), + UINT32_C(0x00584C68), UINT32_C(0x003C80CD), UINT32_C(0x002A3CE1), + UINT32_C(0x000E01C2), UINT32_C(0x002DD8BE), UINT32_C(0x0017C543), + UINT32_C(0x002C4E30), UINT32_C(0x0034AECE), UINT32_C(0x00437F0A), + UINT32_C(0x000104C7), UINT32_C(0x002AA667), UINT32_C(0x003C16D7), + UINT32_C(0x001848BB), UINT32_C(0x001D7152), UINT32_C(0x002A413C), + UINT32_C(0x003C17CC), UINT32_C(0x00412579), UINT32_C(0x0018306D), + UINT32_C(0x00032A9E), UINT32_C(0x0008EDED)}, + {UINT32_C(0x0068A027), UINT32_C(0x00272D65), UINT32_C(0x0035ED0F), + UINT32_C(0x006BD7E7), UINT32_C(0x003673DF), UINT32_C(0x002FA6B9), + UINT32_C(0x002B9424), UINT32_C(0x0016DE59), UINT32_C(0x0024F12D), + UINT32_C(0x0030F5A6), UINT32_C(0x0016B74C), UINT32_C(0x002CCEE0), + UINT32_C(0x00316F68), UINT32_C(0x0028D420), UINT32_C(0x002A7F25), + UINT32_C(0x001FA3FC), UINT32_C(0x0036B1F5), UINT32_C(0x003ABC71), + UINT32_C(0x002E10FE), UINT32_C(0x005F45AF), UINT32_C(0x0030575C), + UINT32_C(0x003847B7), UINT32_C(0x000DD252)}, + {UINT32_C(0x002FA0BD), UINT32_C(0x003EB306), UINT32_C(0x00096877), + UINT32_C(0x00521BA1), UINT32_C(0x001C63BC), UINT32_C(0x0032E251), + UINT32_C(0x0003FA86), UINT32_C(0x006BC4D8), UINT32_C(0x000F02D8), + UINT32_C(0x002FF844), UINT32_C(0x00242017), UINT32_C(0x0073E523), + UINT32_C(0x00080EB0), UINT32_C(0x0022B8DE), UINT32_C(0x003BB4D3), + UINT32_C(0x0013C01E), UINT32_C(0x0033830B), UINT32_C(0x003CFD23), + UINT32_C(0x00294978), UINT32_C(0x00102D1C), UINT32_C(0x000E4A57), + UINT32_C(0x001089DC), UINT32_C(0x003D1440)}}, + {{UINT32_C(0x00166AD2), UINT32_C(0x001851E7), UINT32_C(0x003A69AC), + UINT32_C(0x00138038), UINT32_C(0x002CBBE9), UINT32_C(0x000E1B01), + UINT32_C(0x002D813B), UINT32_C(0x0055062F), UINT32_C(0x0011E135), + UINT32_C(0x001B55A0), UINT32_C(0x0038C972), UINT32_C(0x006FFEDB), + UINT32_C(0x002EFC51), UINT32_C(0x0037167E), UINT32_C(0x000651CA), + UINT32_C(0x002FAAD0), UINT32_C(0x00319A64), UINT32_C(0x001AB9E5), + UINT32_C(0x0019EA91), UINT32_C(0x00571C6A), UINT32_C(0x001B9B34), + UINT32_C(0x0032C40D), UINT32_C(0x00120211)}, + {UINT32_C(0x003FCA5A), UINT32_C(0x002E874F), UINT32_C(0x0016F8D3), + UINT32_C(0x005ED189), UINT32_C(0x00322122), UINT32_C(0x000EC018), + UINT32_C(0x000CE754), UINT32_C(0x00487A23), UINT32_C(0x000D1100), + UINT32_C(0x002AC3BB), UINT32_C(0x002B538F), UINT32_C(0x004F45D1), + UINT32_C(0x001EB758), UINT32_C(0x003B112B), UINT32_C(0x003E180B), + UINT32_C(0x005A4B85), UINT32_C(0x001D03F0), UINT32_C(0x002069E1), + UINT32_C(0x0011A16E), UINT32_C(0x004F3D33), UINT32_C(0x000381CC), + UINT32_C(0x00094BB5), UINT32_C(0x00250B30)}, + {UINT32_C(0x001C2C25), UINT32_C(0x002E0B68), UINT32_C(0x0025AC97), + UINT32_C(0x0004E260), UINT32_C(0x002EB2AB), UINT32_C(0x00309F16), + UINT32_C(0x002ECEDF), UINT32_C(0x0062F833), UINT32_C(0x001E0F90), + UINT32_C(0x00294A6E), UINT32_C(0x00253BC6), UINT32_C(0x00341FBD), + UINT32_C(0x001FB3C9), UINT32_C(0x0038047A), UINT32_C(0x003CD92B), + UINT32_C(0x002F682E), UINT32_C(0x000553EA), UINT32_C(0x00160B6F), + UINT32_C(0x00346039), UINT32_C(0x003E514D), UINT32_C(0x0024F021), + UINT32_C(0x003E913F), UINT32_C(0x00129CFE)}}, + {{UINT32_C(0x001EFBD4), UINT32_C(0x003B8B42), UINT32_C(0x000EF579), + UINT32_C(0x005902FB), UINT32_C(0x003522F1), UINT32_C(0x0005610C), + UINT32_C(0x00170E18), UINT32_C(0x001AFDFC), UINT32_C(0x00204D62), + UINT32_C(0x00391959), UINT32_C(0x00179E48), UINT32_C(0x002FF462), + UINT32_C(0x00063CE3), UINT32_C(0x00111EA8), UINT32_C(0x001AADCF), + UINT32_C(0x000BD1D2), UINT32_C(0x00367F3C), UINT32_C(0x0011E570), + UINT32_C(0x000BA7B7), UINT32_C(0x0026D561), UINT32_C(0x0015CF3E), + UINT32_C(0x0016E814), UINT32_C(0x003FEC7E)}, + {UINT32_C(0x00410519), UINT32_C(0x0034D54F), UINT32_C(0x003C2FFF), + UINT32_C(0x004F910F), UINT32_C(0x0011C414), UINT32_C(0x0015AF5E), + UINT32_C(0x003D949C), UINT32_C(0x003F1B53), UINT32_C(0x000091AD), + UINT32_C(0x00264BB8), UINT32_C(0x00189713), UINT32_C(0x00338935), + UINT32_C(0x001CFC31), UINT32_C(0x003530FD), UINT32_C(0x003D8864), + UINT32_C(0x00571F5C), UINT32_C(0x00066F17), UINT32_C(0x000C820B), + UINT32_C(0x000A514A), UINT32_C(0x0053ED14), UINT32_C(0x0008908D), + UINT32_C(0x002A9AA4), UINT32_C(0x003723D1)}, + {UINT32_C(0x00530A55), UINT32_C(0x0023CCA3), UINT32_C(0x00382430), + UINT32_C(0x006AF068), UINT32_C(0x0035651E), UINT32_C(0x0014F6EC), + UINT32_C(0x002AEAAB), UINT32_C(0x00487304), UINT32_C(0x00156CAA), + UINT32_C(0x000C009A), UINT32_C(0x0010EF4B), UINT32_C(0x0026FC2D), + UINT32_C(0x0010F060), UINT32_C(0x00095637), UINT32_C(0x00288A9C), + UINT32_C(0x007E1314), UINT32_C(0x000A00CE), UINT32_C(0x0002F2C3), + UINT32_C(0x000BE1F6), UINT32_C(0x0054175B), UINT32_C(0x000AFAA6), + UINT32_C(0x00232E71), UINT32_C(0x002B55E0)}}, + {{UINT32_C(0x0001E7A5), UINT32_C(0x0004FD57), UINT32_C(0x0022F6FF), + UINT32_C(0x004CC21B), UINT32_C(0x000D5FC7), UINT32_C(0x001FD78E), + UINT32_C(0x003A2EBE), UINT32_C(0x00183905), UINT32_C(0x000C129E), + UINT32_C(0x003765A9), UINT32_C(0x000A6E98), UINT32_C(0x00797796), + UINT32_C(0x0024F429), UINT32_C(0x0036F1E4), UINT32_C(0x003DE415), + UINT32_C(0x0060A080), UINT32_C(0x003D9A0F), UINT32_C(0x00348EE1), + UINT32_C(0x003B8D4C), UINT32_C(0x003B94F9), UINT32_C(0x000A52CE), + UINT32_C(0x0036391F), UINT32_C(0x00219DCA)}, + {UINT32_C(0x0000155E), UINT32_C(0x00001CFD), UINT32_C(0x001A8F93), + UINT32_C(0x00743A5A), UINT32_C(0x0013DF56), UINT32_C(0x0035856C), + UINT32_C(0x001E2621), UINT32_C(0x001DF2FD), UINT32_C(0x0017FC31), + UINT32_C(0x0007F36B), UINT32_C(0x002516F7), UINT32_C(0x006F4EDA), + UINT32_C(0x0004D8DA), UINT32_C(0x003BB017), UINT32_C(0x0017812B), + UINT32_C(0x002E8803), UINT32_C(0x00331E37), UINT32_C(0x001476EC), + UINT32_C(0x003B6795), UINT32_C(0x001D82CF), UINT32_C(0x00055A4D), + UINT32_C(0x001E2E87), UINT32_C(0x0023FEA8)}, + {UINT32_C(0x002DEA12), UINT32_C(0x00158ECD), UINT32_C(0x001FC69F), + UINT32_C(0x00672AE8), UINT32_C(0x001E897D), UINT32_C(0x001F295F), + UINT32_C(0x0027C7CF), UINT32_C(0x002F1854), UINT32_C(0x002DD29A), + UINT32_C(0x00224DFF), UINT32_C(0x00228DE0), UINT32_C(0x0009A2B0), + UINT32_C(0x00113CF4), UINT32_C(0x0030BD96), UINT32_C(0x0029A4AB), + UINT32_C(0x006DD2C6), UINT32_C(0x000E0F85), UINT32_C(0x001BA973), + UINT32_C(0x003AEEC2), UINT32_C(0x00440748), UINT32_C(0x003C3422), + UINT32_C(0x0004A832), UINT32_C(0x003A30EB)}}, + {{UINT32_C(0x001F1DE4), UINT32_C(0x0018B067), UINT32_C(0x002FFBA1), + UINT32_C(0x007C943A), UINT32_C(0x003A18D1), UINT32_C(0x001108E9), + UINT32_C(0x00284491), UINT32_C(0x00156A7B), UINT32_C(0x00148D8E), + UINT32_C(0x00125467), UINT32_C(0x001947CE), UINT32_C(0x0048136E), + UINT32_C(0x0014138D), UINT32_C(0x00303877), UINT32_C(0x00013932), + UINT32_C(0x00055FE2), UINT32_C(0x00202719), UINT32_C(0x001586AE), + UINT32_C(0x002D4502), UINT32_C(0x0071913C), UINT32_C(0x001B1B1C), + UINT32_C(0x00056028), UINT32_C(0x00151696)}, + {UINT32_C(0x0076C4DF), UINT32_C(0x001348D7), UINT32_C(0x00276BB5), + UINT32_C(0x001D589A), UINT32_C(0x00390F8D), UINT32_C(0x0029442B), + UINT32_C(0x0000B75D), UINT32_C(0x00036E35), UINT32_C(0x003201CC), + UINT32_C(0x002A33F2), UINT32_C(0x001F44DA), UINT32_C(0x000F6817), + UINT32_C(0x0009DD39), UINT32_C(0x00291EE0), UINT32_C(0x003B94B2), + UINT32_C(0x00628085), UINT32_C(0x003DA89E), UINT32_C(0x001935A1), + UINT32_C(0x001682E4), UINT32_C(0x003D96A4), UINT32_C(0x00266B1C), + UINT32_C(0x000B66B4), UINT32_C(0x000892A2)}, + {UINT32_C(0x003AFE25), UINT32_C(0x00055237), UINT32_C(0x00193631), + UINT32_C(0x000ADE15), UINT32_C(0x00176B32), UINT32_C(0x0008E9B8), + UINT32_C(0x0010652A), UINT32_C(0x001C79FD), UINT32_C(0x0012262B), + UINT32_C(0x000811E4), UINT32_C(0x00371D92), UINT32_C(0x00000BE1), + UINT32_C(0x000F024E), UINT32_C(0x003270AF), UINT32_C(0x003A0AEA), + UINT32_C(0x005156EE), UINT32_C(0x003A8504), UINT32_C(0x00159140), + UINT32_C(0x000A6703), UINT32_C(0x00125BF7), UINT32_C(0x003B1A1B), + UINT32_C(0x0014C0D0), UINT32_C(0x0029EE7F)}}, + }, + { + {{UINT32_C(0x000CEE3A), UINT32_C(0x003D7321), UINT32_C(0x00023142), + UINT32_C(0x003544C4), UINT32_C(0x003F91BD), UINT32_C(0x0010A3EC), + UINT32_C(0x00082B20), UINT32_C(0x0078FFE7), UINT32_C(0x003864F1), + UINT32_C(0x003B8041), UINT32_C(0x001D9DC2), UINT32_C(0x0007B678), + UINT32_C(0x0031A85D), UINT32_C(0x0026740B), UINT32_C(0x003B73EA), + UINT32_C(0x00554F39), UINT32_C(0x0024C5A9), UINT32_C(0x001017C6), + UINT32_C(0x0015253B), UINT32_C(0x0078B21A), UINT32_C(0x001046AA), + UINT32_C(0x00345729), UINT32_C(0x0019F681)}, + {UINT32_C(0x00181CB6), UINT32_C(0x001C63A7), UINT32_C(0x003CC749), + UINT32_C(0x00688EB7), UINT32_C(0x003206DC), UINT32_C(0x002E4E99), + UINT32_C(0x0004E7E3), UINT32_C(0x005C52DA), UINT32_C(0x00206DFE), + UINT32_C(0x001645C1), UINT32_C(0x003C7BEB), UINT32_C(0x000204B2), + UINT32_C(0x00012DAF), UINT32_C(0x00349503), UINT32_C(0x0034618E), + UINT32_C(0x00231A9D), UINT32_C(0x0029B7B6), UINT32_C(0x002A40B2), + UINT32_C(0x003C911A), UINT32_C(0x0014E5CA), UINT32_C(0x00168D52), + UINT32_C(0x0005511B), UINT32_C(0x002F1520)}, + {UINT32_C(0x007821FA), UINT32_C(0x0036926C), UINT32_C(0x000D7AF9), + UINT32_C(0x006EC97B), UINT32_C(0x00045F92), UINT32_C(0x002447D1), + UINT32_C(0x0026C242), UINT32_C(0x00319411), UINT32_C(0x003B8DAD), + UINT32_C(0x001E3305), UINT32_C(0x0017AA9C), UINT32_C(0x001725D0), + UINT32_C(0x00244567), UINT32_C(0x0005476C), UINT32_C(0x0001EFF9), + UINT32_C(0x006A1091), UINT32_C(0x0024FA36), UINT32_C(0x00039DCF), + UINT32_C(0x00208642), UINT32_C(0x003C7246), UINT32_C(0x003FA637), + UINT32_C(0x002BB676), UINT32_C(0x00259D44)}}, + {{UINT32_C(0x001143E0), UINT32_C(0x000BE934), UINT32_C(0x00092033), + UINT32_C(0x0022ACE8), UINT32_C(0x0007276F), UINT32_C(0x000F73BC), + UINT32_C(0x00201D0F), UINT32_C(0x00226977), UINT32_C(0x00012645), + UINT32_C(0x00275465), UINT32_C(0x0028E554), UINT32_C(0x005CBE2C), + UINT32_C(0x0021F1F6), UINT32_C(0x003D5FE6), UINT32_C(0x001DC930), + UINT32_C(0x0077C3DA), UINT32_C(0x00097BE2), UINT32_C(0x000D819D), + UINT32_C(0x0001C8A3), UINT32_C(0x0019CED0), UINT32_C(0x00134484), + UINT32_C(0x000F4F11), UINT32_C(0x001DF685)}, + {UINT32_C(0x000009BC), UINT32_C(0x0011EDA2), UINT32_C(0x000D29DF), + UINT32_C(0x003DD661), UINT32_C(0x002C252E), UINT32_C(0x00113EDA), + UINT32_C(0x003DF35D), UINT32_C(0x002DED2E), UINT32_C(0x002B0755), + UINT32_C(0x00333F8A), UINT32_C(0x0013C151), UINT32_C(0x0057FEA3), + UINT32_C(0x0015DAC1), UINT32_C(0x003EB220), UINT32_C(0x0003B1EA), + UINT32_C(0x007C1A9B), UINT32_C(0x003CE6E5), UINT32_C(0x003CAD4F), + UINT32_C(0x0012B472), UINT32_C(0x00652857), UINT32_C(0x0007E9D3), + UINT32_C(0x0024534D), UINT32_C(0x00213675)}, + {UINT32_C(0x0048F0D3), UINT32_C(0x0022CD16), UINT32_C(0x000AD0B2), + UINT32_C(0x00354F10), UINT32_C(0x00349FB2), UINT32_C(0x00305A14), + UINT32_C(0x001BDA8F), UINT32_C(0x007E0240), UINT32_C(0x001C187D), + UINT32_C(0x003E456C), UINT32_C(0x00228C2A), UINT32_C(0x00518D87), + UINT32_C(0x0031FEE5), UINT32_C(0x0018BEB8), UINT32_C(0x001E38EB), + UINT32_C(0x003553A2), UINT32_C(0x003C0940), UINT32_C(0x003DE9BA), + UINT32_C(0x00120769), UINT32_C(0x0076BFBD), UINT32_C(0x003CEEF0), + UINT32_C(0x001B431A), UINT32_C(0x001E3982)}}, + {{UINT32_C(0x00516136), UINT32_C(0x0029DF1B), UINT32_C(0x002D8BBF), + UINT32_C(0x00309D5F), UINT32_C(0x00259D4B), UINT32_C(0x00038377), + UINT32_C(0x003833E1), UINT32_C(0x004338BB), UINT32_C(0x001D9308), + UINT32_C(0x0006D82F), UINT32_C(0x000B6B51), UINT32_C(0x005BA357), + UINT32_C(0x00320D4C), UINT32_C(0x00259A92), UINT32_C(0x001D9241), + UINT32_C(0x0078B989), UINT32_C(0x00045C59), UINT32_C(0x00037E70), + UINT32_C(0x002B41F8), UINT32_C(0x0040B045), UINT32_C(0x003CC5AB), + UINT32_C(0x003A6093), UINT32_C(0x002EB114)}, + {UINT32_C(0x002FD13F), UINT32_C(0x0031B6B2), UINT32_C(0x0038071A), + UINT32_C(0x00008F7E), UINT32_C(0x002227F0), UINT32_C(0x002C8CB9), + UINT32_C(0x0002C017), UINT32_C(0x00452659), UINT32_C(0x000CCF76), + UINT32_C(0x000F095B), UINT32_C(0x003A4DFD), UINT32_C(0x0072E9C3), + UINT32_C(0x0010B61E), UINT32_C(0x000C0898), UINT32_C(0x0024C173), + UINT32_C(0x000A2663), UINT32_C(0x00060CDB), UINT32_C(0x00096AE3), + UINT32_C(0x0013F6F3), UINT32_C(0x004B3363), UINT32_C(0x001F342B), + UINT32_C(0x000C8DE7), UINT32_C(0x00251CCD)}, + {UINT32_C(0x00291E81), UINT32_C(0x00087E94), UINT32_C(0x00397163), + UINT32_C(0x0041EE95), UINT32_C(0x00174BBE), UINT32_C(0x00116EA7), + UINT32_C(0x003F0F93), UINT32_C(0x004C9F35), UINT32_C(0x0028B7F6), + UINT32_C(0x0005ADCA), UINT32_C(0x00148DEC), UINT32_C(0x00599D15), + UINT32_C(0x0024B8E7), UINT32_C(0x003FB84F), UINT32_C(0x003DA2F2), + UINT32_C(0x003BCD26), UINT32_C(0x003A6E5E), UINT32_C(0x00198E0F), + UINT32_C(0x002481B2), UINT32_C(0x0052634A), UINT32_C(0x0022D3F8), + UINT32_C(0x00291EF1), UINT32_C(0x0007CC09)}}, + {{UINT32_C(0x00103033), UINT32_C(0x002ADD30), UINT32_C(0x001859A0), + UINT32_C(0x0015A086), UINT32_C(0x00061C02), UINT32_C(0x0010E7A8), + UINT32_C(0x003EAFF4), UINT32_C(0x00767D34), UINT32_C(0x0010AB16), + UINT32_C(0x001F8467), UINT32_C(0x0026AFAB), UINT32_C(0x000D90E0), + UINT32_C(0x0026D163), UINT32_C(0x001708CF), UINT32_C(0x00041DBD), + UINT32_C(0x0016BB95), UINT32_C(0x00375E2C), UINT32_C(0x0003BCA5), + UINT32_C(0x0004AAE7), UINT32_C(0x003072CC), UINT32_C(0x0005E256), + UINT32_C(0x0015AC55), UINT32_C(0x003BABC8)}, + {UINT32_C(0x004B5126), UINT32_C(0x00221DBC), UINT32_C(0x00061E51), + UINT32_C(0x001A65B2), UINT32_C(0x00144A5D), UINT32_C(0x00053B47), + UINT32_C(0x0035282A), UINT32_C(0x00361203), UINT32_C(0x0034A24A), + UINT32_C(0x00265DCD), UINT32_C(0x0011E3E4), UINT32_C(0x0071F53C), + UINT32_C(0x001617A7), UINT32_C(0x001B3CFC), UINT32_C(0x0037ACD5), + UINT32_C(0x003D79A9), UINT32_C(0x002F6062), UINT32_C(0x000E6254), + UINT32_C(0x0013609B), UINT32_C(0x006B6554), UINT32_C(0x0035F594), + UINT32_C(0x000ABD87), UINT32_C(0x002EDABF)}, + {UINT32_C(0x00261ED9), UINT32_C(0x002DA8C6), UINT32_C(0x001E0A7A), + UINT32_C(0x00169981), UINT32_C(0x001CF370), UINT32_C(0x003E78E4), + UINT32_C(0x001DC822), UINT32_C(0x005C5907), UINT32_C(0x000C84AA), + UINT32_C(0x001B3D8D), UINT32_C(0x00235FF6), UINT32_C(0x003183F8), + UINT32_C(0x001DC3F5), UINT32_C(0x003CD3E8), UINT32_C(0x0038AA8A), + UINT32_C(0x00298326), UINT32_C(0x0023EE8A), UINT32_C(0x00219AC4), + UINT32_C(0x002FFA3E), UINT32_C(0x006FB3B6), UINT32_C(0x0026C478), + UINT32_C(0x0001E8FD), UINT32_C(0x0028FC8A)}}, + {{UINT32_C(0x0074BF78), UINT32_C(0x0021A4A0), UINT32_C(0x0007F0AA), + UINT32_C(0x004357AC), UINT32_C(0x001FE0E7), UINT32_C(0x0028EE47), + UINT32_C(0x0028C433), UINT32_C(0x002DC428), UINT32_C(0x001801EA), + UINT32_C(0x001C3DCA), UINT32_C(0x0036E321), UINT32_C(0x0076CD18), + UINT32_C(0x000FE126), UINT32_C(0x001F3CFA), UINT32_C(0x003B1976), + UINT32_C(0x007FB0F7), UINT32_C(0x0022F2C9), UINT32_C(0x00197985), + UINT32_C(0x0007146F), UINT32_C(0x007D7DCB), UINT32_C(0x000400AF), + UINT32_C(0x00344938), UINT32_C(0x002E00BD)}, + {UINT32_C(0x0033B420), UINT32_C(0x002CBFC9), UINT32_C(0x001EBE71), + UINT32_C(0x000E5302), UINT32_C(0x00074DB3), UINT32_C(0x00130287), + UINT32_C(0x000026B2), UINT32_C(0x00514208), UINT32_C(0x002E49CD), + UINT32_C(0x000B2A5B), UINT32_C(0x003C750F), UINT32_C(0x003ED5AC), + UINT32_C(0x0039B88B), UINT32_C(0x002B90DA), UINT32_C(0x0005740F), + UINT32_C(0x00279855), UINT32_C(0x00083537), UINT32_C(0x000AECE4), + UINT32_C(0x00284E3D), UINT32_C(0x007EBF4B), UINT32_C(0x000753F0), + UINT32_C(0x00361832), UINT32_C(0x001F793F)}, + {UINT32_C(0x003A939A), UINT32_C(0x00052334), UINT32_C(0x00356449), + UINT32_C(0x0024BFBB), UINT32_C(0x0036BE0F), UINT32_C(0x00367B2C), + UINT32_C(0x0004E8D1), UINT32_C(0x0067E56C), UINT32_C(0x00279DE5), + UINT32_C(0x00090171), UINT32_C(0x0015DDDE), UINT32_C(0x002A246D), + UINT32_C(0x00062B11), UINT32_C(0x00036BDB), UINT32_C(0x001714B6), + UINT32_C(0x007CBB2A), UINT32_C(0x001969BA), UINT32_C(0x0027CA13), + UINT32_C(0x0028B9DE), UINT32_C(0x005E3B1A), UINT32_C(0x00078AE7), + UINT32_C(0x001351F5), UINT32_C(0x0000DA62)}}, + {{UINT32_C(0x00053172), UINT32_C(0x002A2BFC), UINT32_C(0x0033E860), + UINT32_C(0x00638ADF), UINT32_C(0x0022FDA9), UINT32_C(0x00161786), + UINT32_C(0x002313FD), UINT32_C(0x00502AB2), UINT32_C(0x001C6DA3), + UINT32_C(0x00235635), UINT32_C(0x0008ED5B), UINT32_C(0x001E342B), + UINT32_C(0x0013C148), UINT32_C(0x002E6A9C), UINT32_C(0x003897F3), + UINT32_C(0x005843F7), UINT32_C(0x00123DFD), UINT32_C(0x003C9807), + UINT32_C(0x0005F065), UINT32_C(0x000D45E4), UINT32_C(0x002690E3), + UINT32_C(0x00341A20), UINT32_C(0x000927BF)}, + {UINT32_C(0x0015F913), UINT32_C(0x0030564F), UINT32_C(0x002F86A0), + UINT32_C(0x000C54CB), UINT32_C(0x0017E098), UINT32_C(0x001C24F2), + UINT32_C(0x0017111F), UINT32_C(0x00021C5D), UINT32_C(0x001BE2D3), + UINT32_C(0x000FD2C4), UINT32_C(0x001E935E), UINT32_C(0x003CE41D), + UINT32_C(0x00086058), UINT32_C(0x001B00C8), UINT32_C(0x00285196), + UINT32_C(0x00011DA1), UINT32_C(0x002F1A16), UINT32_C(0x00126ABE), + UINT32_C(0x00042FD8), UINT32_C(0x002EDBF1), UINT32_C(0x003A75C6), + UINT32_C(0x000D1C7C), UINT32_C(0x00367832)}, + {UINT32_C(0x00293AEE), UINT32_C(0x00021495), UINT32_C(0x001BB0F5), + UINT32_C(0x00566C32), UINT32_C(0x00196DDA), UINT32_C(0x000D10CE), + UINT32_C(0x000C6555), UINT32_C(0x001E8E54), UINT32_C(0x0014FA41), + UINT32_C(0x003CA61A), UINT32_C(0x0008C270), UINT32_C(0x0041A922), + UINT32_C(0x0010DDE3), UINT32_C(0x003C22D8), UINT32_C(0x00143053), + UINT32_C(0x000C9DAC), UINT32_C(0x00117939), UINT32_C(0x0016BA60), + UINT32_C(0x0028B353), UINT32_C(0x003C642B), UINT32_C(0x0020C6F4), + UINT32_C(0x0003F370), UINT32_C(0x00196768)}}, + {{UINT32_C(0x0065E8F6), UINT32_C(0x0009C4A7), UINT32_C(0x000A1D99), + UINT32_C(0x007D4B7B), UINT32_C(0x0015F315), UINT32_C(0x003FC1AA), + UINT32_C(0x002468FA), UINT32_C(0x005C1056), UINT32_C(0x000F4362), + UINT32_C(0x002C7799), UINT32_C(0x0022A7D7), UINT32_C(0x0071EC9D), + UINT32_C(0x001ACB59), UINT32_C(0x001E9B82), UINT32_C(0x000369EA), + UINT32_C(0x0052D8AB), UINT32_C(0x002884D6), UINT32_C(0x000AA6B5), + UINT32_C(0x00110D92), UINT32_C(0x005882B4), UINT32_C(0x0018CB6D), + UINT32_C(0x002F7663), UINT32_C(0x001B502E)}, + {UINT32_C(0x006415D4), UINT32_C(0x0036A62C), UINT32_C(0x002F8E5C), + UINT32_C(0x00310D30), UINT32_C(0x0011EE1E), UINT32_C(0x00271CB7), + UINT32_C(0x0022D267), UINT32_C(0x00094EFA), UINT32_C(0x00398684), + UINT32_C(0x003F1B86), UINT32_C(0x00165A66), UINT32_C(0x005BB638), + UINT32_C(0x0034D02F), UINT32_C(0x003E6EBE), UINT32_C(0x000DE3C6), + UINT32_C(0x004138E0), UINT32_C(0x002EECEC), UINT32_C(0x0024EE9D), + UINT32_C(0x001E8C7F), UINT32_C(0x005CEBE9), UINT32_C(0x000A4E0F), + UINT32_C(0x001BC6CD), UINT32_C(0x0036B315)}, + {UINT32_C(0x004FDAB7), UINT32_C(0x003E5AE6), UINT32_C(0x000C6A3B), + UINT32_C(0x002C4AA9), UINT32_C(0x00269D75), UINT32_C(0x000D8807), + UINT32_C(0x000B5F32), UINT32_C(0x006B8D06), UINT32_C(0x0031AE80), + UINT32_C(0x0025B3E0), UINT32_C(0x0039541F), UINT32_C(0x0000F3ED), + UINT32_C(0x003A4AF4), UINT32_C(0x001A6C5B), UINT32_C(0x000C602B), + UINT32_C(0x0011FF53), UINT32_C(0x002F09C9), UINT32_C(0x00054583), + UINT32_C(0x00214187), UINT32_C(0x0036D12F), UINT32_C(0x003950DC), + UINT32_C(0x000AED90), UINT32_C(0x003F5A51)}}, + {{UINT32_C(0x00056FA9), UINT32_C(0x002A8CF1), UINT32_C(0x0001DDAD), + UINT32_C(0x0046E6FF), UINT32_C(0x003B910B), UINT32_C(0x002CADE7), + UINT32_C(0x000D73A3), UINT32_C(0x00338292), UINT32_C(0x000BBF55), + UINT32_C(0x0033F714), UINT32_C(0x0004D83C), UINT32_C(0x007DF50D), + UINT32_C(0x0037ABD1), UINT32_C(0x00103E5A), UINT32_C(0x00042BB5), + UINT32_C(0x00663AFA), UINT32_C(0x00197069), UINT32_C(0x002B5674), + UINT32_C(0x003B0D57), UINT32_C(0x0045359A), UINT32_C(0x0010B12C), + UINT32_C(0x000F3CA0), UINT32_C(0x0025512A)}, + {UINT32_C(0x002BD66C), UINT32_C(0x002285D6), UINT32_C(0x001D66BD), + UINT32_C(0x006BD87F), UINT32_C(0x002DC0F9), UINT32_C(0x003AE7AB), + UINT32_C(0x00361A39), UINT32_C(0x0011B741), UINT32_C(0x00206C9F), + UINT32_C(0x0025662E), UINT32_C(0x000C70F7), UINT32_C(0x003F36E4), + UINT32_C(0x002ACA51), UINT32_C(0x000C34AF), UINT32_C(0x0024625C), + UINT32_C(0x006500C7), UINT32_C(0x00198FCB), UINT32_C(0x0012CFCA), + UINT32_C(0x0009EE1C), UINT32_C(0x00277608), UINT32_C(0x00213658), + UINT32_C(0x0030604D), UINT32_C(0x002EF50F)}, + {UINT32_C(0x00092ABD), UINT32_C(0x001446D1), UINT32_C(0x003F6A06), + UINT32_C(0x0046565B), UINT32_C(0x0003E584), UINT32_C(0x00159E89), + UINT32_C(0x003DEBC5), UINT32_C(0x00735F29), UINT32_C(0x0031EB5E), + UINT32_C(0x000434A9), UINT32_C(0x002797DF), UINT32_C(0x006DEA2C), + UINT32_C(0x002A9686), UINT32_C(0x00118EFA), UINT32_C(0x00050279), + UINT32_C(0x003045AD), UINT32_C(0x0034874B), UINT32_C(0x003D78ED), + UINT32_C(0x0018FEC5), UINT32_C(0x003D2A5A), UINT32_C(0x0030D04B), + UINT32_C(0x003A21F3), UINT32_C(0x0031E2CC)}}, + {{UINT32_C(0x000F8BDB), UINT32_C(0x0033A04E), UINT32_C(0x0014B261), + UINT32_C(0x003ABAE0), UINT32_C(0x0003F54D), UINT32_C(0x00168473), + UINT32_C(0x001C33A5), UINT32_C(0x001CB69A), UINT32_C(0x000FEEE3), + UINT32_C(0x0031C38B), UINT32_C(0x00219E20), UINT32_C(0x004DE49D), + UINT32_C(0x003DCBEE), UINT32_C(0x00052411), UINT32_C(0x003D8935), + UINT32_C(0x000D0029), UINT32_C(0x00227D70), UINT32_C(0x002A8E3F), + UINT32_C(0x000204A8), UINT32_C(0x00320844), UINT32_C(0x000DD3B6), + UINT32_C(0x003D0841), UINT32_C(0x002C6C6C)}, + {UINT32_C(0x005C03EC), UINT32_C(0x002B2C46), UINT32_C(0x00293F5B), + UINT32_C(0x007F7BDE), UINT32_C(0x003ADCB5), UINT32_C(0x0017241D), + UINT32_C(0x001FD746), UINT32_C(0x003529B7), UINT32_C(0x003332DC), + UINT32_C(0x002763A5), UINT32_C(0x001E887A), UINT32_C(0x00130EB1), + UINT32_C(0x002394CE), UINT32_C(0x000B8EF4), UINT32_C(0x000E932D), + UINT32_C(0x00527CBE), UINT32_C(0x003F139A), UINT32_C(0x003BFA19), + UINT32_C(0x00336A1D), UINT32_C(0x0066E2AC), UINT32_C(0x00098186), + UINT32_C(0x00047A1A), UINT32_C(0x0004788C)}, + {UINT32_C(0x0009A196), UINT32_C(0x0035EBC2), UINT32_C(0x00265402), + UINT32_C(0x007A08A2), UINT32_C(0x002CDBA0), UINT32_C(0x0023627E), + UINT32_C(0x0002433D), UINT32_C(0x0046191A), UINT32_C(0x003DCF82), + UINT32_C(0x00034EE3), UINT32_C(0x002B144C), UINT32_C(0x000FC454), + UINT32_C(0x00149146), UINT32_C(0x0002C1B7), UINT32_C(0x000707A7), + UINT32_C(0x0029E68D), UINT32_C(0x000F78F8), UINT32_C(0x0024EB1B), + UINT32_C(0x00116A27), UINT32_C(0x00722F40), UINT32_C(0x000C507F), + UINT32_C(0x000737D8), UINT32_C(0x001FABC6)}}, + {{UINT32_C(0x002E0A9F), UINT32_C(0x00047AD4), UINT32_C(0x00395FF2), + UINT32_C(0x0070C4CD), UINT32_C(0x001FB3C7), UINT32_C(0x0001E8F1), + UINT32_C(0x00025684), UINT32_C(0x0046A16B), UINT32_C(0x000BE275), + UINT32_C(0x001CA806), UINT32_C(0x00017814), UINT32_C(0x00255A20), + UINT32_C(0x001A997F), UINT32_C(0x001AD072), UINT32_C(0x003CFEB6), + UINT32_C(0x003C6C9C), UINT32_C(0x001F796B), UINT32_C(0x003CEE03), + UINT32_C(0x0003882E), UINT32_C(0x006A3D22), UINT32_C(0x0039A895), + UINT32_C(0x003BEFAB), UINT32_C(0x001E8B14)}, + {UINT32_C(0x002481A8), UINT32_C(0x000FD69E), UINT32_C(0x001BB1B7), + UINT32_C(0x006E58A2), UINT32_C(0x001FF0FF), UINT32_C(0x000786C3), + UINT32_C(0x0016526A), UINT32_C(0x00617928), UINT32_C(0x0010511F), + UINT32_C(0x00088530), UINT32_C(0x00397BC8), UINT32_C(0x0034BA73), + UINT32_C(0x0004BEE5), UINT32_C(0x00274402), UINT32_C(0x0004DCC0), + UINT32_C(0x00246DC1), UINT32_C(0x00001408), UINT32_C(0x002DC300), + UINT32_C(0x0028EE1F), UINT32_C(0x00609A3C), UINT32_C(0x0009B999), + UINT32_C(0x00203ECD), UINT32_C(0x0022AA2D)}, + {UINT32_C(0x003580E7), UINT32_C(0x00155DCD), UINT32_C(0x0013457A), + UINT32_C(0x002C90EB), UINT32_C(0x0026470A), UINT32_C(0x00122727), + UINT32_C(0x0037BD5C), UINT32_C(0x005D220D), UINT32_C(0x00152493), + UINT32_C(0x0018A293), UINT32_C(0x00392995), UINT32_C(0x00151E64), + UINT32_C(0x002E37DC), UINT32_C(0x002E9EC6), UINT32_C(0x001A205E), + UINT32_C(0x000701D8), UINT32_C(0x001CB000), UINT32_C(0x00120BE4), + UINT32_C(0x0031B0D9), UINT32_C(0x005B9235), UINT32_C(0x00005267), + UINT32_C(0x000B7C49), UINT32_C(0x00155B65)}}, + {{UINT32_C(0x003005AF), UINT32_C(0x00222462), UINT32_C(0x0034D58A), + UINT32_C(0x002AEF89), UINT32_C(0x002BA06B), UINT32_C(0x001C9A9E), + UINT32_C(0x001E894B), UINT32_C(0x00406001), UINT32_C(0x0010BF30), + UINT32_C(0x002867EA), UINT32_C(0x003F0EC9), UINT32_C(0x0032D6F1), + UINT32_C(0x002C15E9), UINT32_C(0x0012CFC5), UINT32_C(0x00191373), + UINT32_C(0x0024A43B), UINT32_C(0x002C8AB3), UINT32_C(0x0025E47F), + UINT32_C(0x003A9B91), UINT32_C(0x002DC4AC), UINT32_C(0x001821EA), + UINT32_C(0x0019E718), UINT32_C(0x003570EC)}, + {UINT32_C(0x00049A08), UINT32_C(0x0029C93F), UINT32_C(0x00311736), + UINT32_C(0x004A3E8D), UINT32_C(0x00076459), UINT32_C(0x0024E089), + UINT32_C(0x000D1295), UINT32_C(0x0065B4DA), UINT32_C(0x00199D52), + UINT32_C(0x0007CE98), UINT32_C(0x00284B76), UINT32_C(0x00797A7F), + UINT32_C(0x00219D91), UINT32_C(0x00288E07), UINT32_C(0x000BA4F1), + UINT32_C(0x001089DA), UINT32_C(0x0003C7B7), UINT32_C(0x0037C99E), + UINT32_C(0x00376B77), UINT32_C(0x0028C9E0), UINT32_C(0x003AF66B), + UINT32_C(0x0015F094), UINT32_C(0x000887F7)}, + {UINT32_C(0x004D57FB), UINT32_C(0x00142BB6), UINT32_C(0x000680E9), + UINT32_C(0x0019ED70), UINT32_C(0x0031F674), UINT32_C(0x003D4AD2), + UINT32_C(0x00023E39), UINT32_C(0x006D62CE), UINT32_C(0x001F2AF6), + UINT32_C(0x0018DCD2), UINT32_C(0x00087694), UINT32_C(0x0004D412), + UINT32_C(0x0022EF3A), UINT32_C(0x00024D6F), UINT32_C(0x0016C5BC), + UINT32_C(0x00499A4A), UINT32_C(0x003C726B), UINT32_C(0x0021F3CF), + UINT32_C(0x0023BB7D), UINT32_C(0x0060BA2C), UINT32_C(0x003B5906), + UINT32_C(0x0019F5B1), UINT32_C(0x0022E2B1)}}, + {{UINT32_C(0x001A18D3), UINT32_C(0x0002DF53), UINT32_C(0x003C65F2), + UINT32_C(0x00252D1F), UINT32_C(0x0005D4E4), UINT32_C(0x0037F7AD), + UINT32_C(0x002B96C8), UINT32_C(0x004A99EF), UINT32_C(0x0034622E), + UINT32_C(0x003DC7C3), UINT32_C(0x0025C9EA), UINT32_C(0x002950F3), + UINT32_C(0x002D17D0), UINT32_C(0x002BA2B1), UINT32_C(0x0016FD3F), + UINT32_C(0x002D1E9B), UINT32_C(0x003D33A4), UINT32_C(0x0020B37E), + UINT32_C(0x001F2455), UINT32_C(0x0039CB42), UINT32_C(0x00074719), + UINT32_C(0x0006C7E3), UINT32_C(0x000B524B)}, + {UINT32_C(0x003E735C), UINT32_C(0x001CD19B), UINT32_C(0x000A2B03), + UINT32_C(0x0004DADA), UINT32_C(0x001D7F00), UINT32_C(0x001BB1CD), + UINT32_C(0x0031EC2D), UINT32_C(0x0060CB29), UINT32_C(0x00305DAD), + UINT32_C(0x002A2E31), UINT32_C(0x002A51BD), UINT32_C(0x0064BA52), + UINT32_C(0x000A34DE), UINT32_C(0x000C8DBD), UINT32_C(0x00335FA7), + UINT32_C(0x00335FE1), UINT32_C(0x0033C874), UINT32_C(0x0003E276), + UINT32_C(0x002026D5), UINT32_C(0x00096E2B), UINT32_C(0x000276E3), + UINT32_C(0x0038EF96), UINT32_C(0x003FBD7E)}, + {UINT32_C(0x0079E37A), UINT32_C(0x001890D4), UINT32_C(0x00250177), + UINT32_C(0x0047BB39), UINT32_C(0x0029268C), UINT32_C(0x002479AB), + UINT32_C(0x00244958), UINT32_C(0x00270A4B), UINT32_C(0x001A146F), + UINT32_C(0x000E6E93), UINT32_C(0x001688FB), UINT32_C(0x00728526), + UINT32_C(0x001CECAB), UINT32_C(0x0026F68E), UINT32_C(0x001480E6), + UINT32_C(0x0078FACC), UINT32_C(0x00234FE3), UINT32_C(0x001CB3A6), + UINT32_C(0x0003F46F), UINT32_C(0x0031231A), UINT32_C(0x001C154C), + UINT32_C(0x003F8810), UINT32_C(0x001DA5AD)}}, + {{UINT32_C(0x003DDB7A), UINT32_C(0x0002E3D3), UINT32_C(0x002553BF), + UINT32_C(0x004415BB), UINT32_C(0x00329C70), UINT32_C(0x0022CB5A), + UINT32_C(0x0019FC2C), UINT32_C(0x000F789E), UINT32_C(0x0025AD01), + UINT32_C(0x0023FC89), UINT32_C(0x00297284), UINT32_C(0x0052CFEE), + UINT32_C(0x0023B149), UINT32_C(0x000D9DC2), UINT32_C(0x002F141C), + UINT32_C(0x000144A6), UINT32_C(0x0034AA72), UINT32_C(0x00071093), + UINT32_C(0x003304EB), UINT32_C(0x0072FE7F), UINT32_C(0x00098781), + UINT32_C(0x001FC2EE), UINT32_C(0x001AA3B0)}, + {UINT32_C(0x00784FC3), UINT32_C(0x00109969), UINT32_C(0x0027287E), + UINT32_C(0x006DB5D4), UINT32_C(0x000ACF5E), UINT32_C(0x00032B46), + UINT32_C(0x0037A8DC), UINT32_C(0x004CE91B), UINT32_C(0x0036E3B8), + UINT32_C(0x002D9C83), UINT32_C(0x0004C6A9), UINT32_C(0x002A278F), + UINT32_C(0x003E2154), UINT32_C(0x001E5587), UINT32_C(0x0026D619), + UINT32_C(0x00749796), UINT32_C(0x002DE56E), UINT32_C(0x001CA040), + UINT32_C(0x000F01A0), UINT32_C(0x000A33E5), UINT32_C(0x00398839), + UINT32_C(0x0025A737), UINT32_C(0x00342BA0)}, + {UINT32_C(0x000DD5DB), UINT32_C(0x0035AF7C), UINT32_C(0x000ADFC4), + UINT32_C(0x002D82EC), UINT32_C(0x001F65FA), UINT32_C(0x000E30C7), + UINT32_C(0x0003A776), UINT32_C(0x0011585E), UINT32_C(0x002736DB), + UINT32_C(0x003AF607), UINT32_C(0x000EC2A5), UINT32_C(0x003DB029), + UINT32_C(0x003B1ACF), UINT32_C(0x0025DB0F), UINT32_C(0x0001FC2D), + UINT32_C(0x0009BB8A), UINT32_C(0x000C442B), UINT32_C(0x000B14D4), + UINT32_C(0x000B2FA5), UINT32_C(0x002930AA), UINT32_C(0x001A33E5), + UINT32_C(0x0007711E), UINT32_C(0x0014AAEA)}}, + {{UINT32_C(0x004E9DDC), UINT32_C(0x00249BD7), UINT32_C(0x00399ACA), + UINT32_C(0x00001C89), UINT32_C(0x00399AD6), UINT32_C(0x001CA0C4), + UINT32_C(0x0033F687), UINT32_C(0x00167529), UINT32_C(0x003E6664), + UINT32_C(0x00247D4A), UINT32_C(0x003E497D), UINT32_C(0x006BEC07), + UINT32_C(0x00321482), UINT32_C(0x00261DC6), UINT32_C(0x001AFB91), + UINT32_C(0x000CCE08), UINT32_C(0x00154873), UINT32_C(0x001FA9C6), + UINT32_C(0x0031D6B7), UINT32_C(0x001DB078), UINT32_C(0x0007F410), + UINT32_C(0x002B5D77), UINT32_C(0x001CEFE7)}, + {UINT32_C(0x0078A938), UINT32_C(0x00079CA6), UINT32_C(0x0004A11B), + UINT32_C(0x0000BBD2), UINT32_C(0x0014D1B9), UINT32_C(0x0032E71F), + UINT32_C(0x00228788), UINT32_C(0x0043BDCB), UINT32_C(0x00052FE3), + UINT32_C(0x0032E261), UINT32_C(0x003EA511), UINT32_C(0x006940B9), + UINT32_C(0x000DD8A7), UINT32_C(0x0035310F), UINT32_C(0x0016AD6A), + UINT32_C(0x0051AD87), UINT32_C(0x0034DB37), UINT32_C(0x0039F114), + UINT32_C(0x000435BA), UINT32_C(0x0075A182), UINT32_C(0x00319B60), + UINT32_C(0x0007D2C9), UINT32_C(0x003B06E6)}, + {UINT32_C(0x004768E1), UINT32_C(0x001CC336), UINT32_C(0x003299A7), + UINT32_C(0x005DFF8F), UINT32_C(0x00004B15), UINT32_C(0x00222007), + UINT32_C(0x0035CA8E), UINT32_C(0x001DA643), UINT32_C(0x00267E34), + UINT32_C(0x001EC2B8), UINT32_C(0x000189F4), UINT32_C(0x00721823), + UINT32_C(0x000225C4), UINT32_C(0x001F0249), UINT32_C(0x003A75ED), + UINT32_C(0x0043CA56), UINT32_C(0x0025AC50), UINT32_C(0x0000E327), + UINT32_C(0x003352D9), UINT32_C(0x004B96F8), UINT32_C(0x0027419D), + UINT32_C(0x0023A16C), UINT32_C(0x0031DA1B)}}, + {{UINT32_C(0x00487D70), UINT32_C(0x003AAA4A), UINT32_C(0x0026A8EB), + UINT32_C(0x005FBEDD), UINT32_C(0x002A0595), UINT32_C(0x0022F25C), + UINT32_C(0x003A6FD8), UINT32_C(0x00451396), UINT32_C(0x00306E44), + UINT32_C(0x000F3B8F), UINT32_C(0x002912A8), UINT32_C(0x0050F308), + UINT32_C(0x0007E373), UINT32_C(0x0007762D), UINT32_C(0x001A5294), + UINT32_C(0x00331113), UINT32_C(0x0026941A), UINT32_C(0x0025F44E), + UINT32_C(0x003862FA), UINT32_C(0x0010D40E), UINT32_C(0x00289A47), + UINT32_C(0x00099A16), UINT32_C(0x00207317)}, + {UINT32_C(0x001B1BDB), UINT32_C(0x00304B63), UINT32_C(0x000E1EED), + UINT32_C(0x0053C2DF), UINT32_C(0x003F16DC), UINT32_C(0x00063BAB), + UINT32_C(0x0021F5CC), UINT32_C(0x0003D7B7), UINT32_C(0x000B4008), + UINT32_C(0x00174E48), UINT32_C(0x00341AE6), UINT32_C(0x0023DF07), + UINT32_C(0x002FF147), UINT32_C(0x0007214D), UINT32_C(0x0011768A), + UINT32_C(0x00756B3F), UINT32_C(0x000DB5D9), UINT32_C(0x003F42F9), + UINT32_C(0x00062571), UINT32_C(0x007558EC), UINT32_C(0x002AEDF3), + UINT32_C(0x001F12E2), UINT32_C(0x002C1D2E)}, + {UINT32_C(0x00424EEA), UINT32_C(0x0008E4E0), UINT32_C(0x00276315), + UINT32_C(0x0010C7CE), UINT32_C(0x0010FB31), UINT32_C(0x0005DB4C), + UINT32_C(0x002E33CE), UINT32_C(0x0029F3F7), UINT32_C(0x001931C4), + UINT32_C(0x0006A41D), UINT32_C(0x002E7D33), UINT32_C(0x0031344C), + UINT32_C(0x00148E02), UINT32_C(0x00387E14), UINT32_C(0x000EA259), + UINT32_C(0x00485845), UINT32_C(0x0018ECF9), UINT32_C(0x001365B8), + UINT32_C(0x0009B445), UINT32_C(0x00008051), UINT32_C(0x00327427), + UINT32_C(0x001F7091), UINT32_C(0x0018B432)}}, + {{UINT32_C(0x005F7787), UINT32_C(0x00170455), UINT32_C(0x00340DE5), + UINT32_C(0x0062A794), UINT32_C(0x002C24C5), UINT32_C(0x0010BDA3), + UINT32_C(0x002BFBBE), UINT32_C(0x0031B953), UINT32_C(0x002717CF), + UINT32_C(0x0009262E), UINT32_C(0x002A4512), UINT32_C(0x00072DE4), + UINT32_C(0x0025410B), UINT32_C(0x002BB34C), UINT32_C(0x000633A9), + UINT32_C(0x007482DB), UINT32_C(0x002D93B4), UINT32_C(0x003DD3EC), + UINT32_C(0x000C66CF), UINT32_C(0x00203EB1), UINT32_C(0x0024ED0D), + UINT32_C(0x003397CD), UINT32_C(0x000F7881)}, + {UINT32_C(0x00127E99), UINT32_C(0x003FDC31), UINT32_C(0x000D6B1B), + UINT32_C(0x0067DD99), UINT32_C(0x0020B17C), UINT32_C(0x0019B464), + UINT32_C(0x001B54BD), UINT32_C(0x0079ADB3), UINT32_C(0x001DF680), + UINT32_C(0x00244323), UINT32_C(0x0011F742), UINT32_C(0x00305CDB), + UINT32_C(0x00078D7A), UINT32_C(0x0000769B), UINT32_C(0x001CAE8B), + UINT32_C(0x002F49E1), UINT32_C(0x002C7F9F), UINT32_C(0x0038FE3A), + UINT32_C(0x0039CF05), UINT32_C(0x0079BF1E), UINT32_C(0x00308D34), + UINT32_C(0x003DEE92), UINT32_C(0x0011514A)}, + {UINT32_C(0x00382385), UINT32_C(0x0013BD1F), UINT32_C(0x003811CF), + UINT32_C(0x00292587), UINT32_C(0x00322E94), UINT32_C(0x0026DD80), + UINT32_C(0x002E2F48), UINT32_C(0x00230F38), UINT32_C(0x0017BA53), + UINT32_C(0x000E1B94), UINT32_C(0x001E3431), UINT32_C(0x0012A183), + UINT32_C(0x003003E9), UINT32_C(0x0039A0BD), UINT32_C(0x001C4811), + UINT32_C(0x001E6DB1), UINT32_C(0x0001D16F), UINT32_C(0x002EF639), + UINT32_C(0x003595BC), UINT32_C(0x00635C14), UINT32_C(0x000F1141), + UINT32_C(0x00276EF2), UINT32_C(0x0026F1AB)}}, + }, + { + {{UINT32_C(0x0063583C), UINT32_C(0x00178F3B), UINT32_C(0x0031FE89), + UINT32_C(0x004A10CC), UINT32_C(0x0025E861), UINT32_C(0x001D9981), + UINT32_C(0x00209C95), UINT32_C(0x00757DAB), UINT32_C(0x000E0CCA), + UINT32_C(0x0026F2CF), UINT32_C(0x000F724B), UINT32_C(0x0054A684), + UINT32_C(0x00395A25), UINT32_C(0x003B96AA), UINT32_C(0x000CB3E2), + UINT32_C(0x0025FA25), UINT32_C(0x001A8CCD), UINT32_C(0x003E8D3C), + UINT32_C(0x002670BC), UINT32_C(0x0073C1D9), UINT32_C(0x002D1389), + UINT32_C(0x00130BE6), UINT32_C(0x00269AFA)}, + {UINT32_C(0x0078D442), UINT32_C(0x0008E522), UINT32_C(0x0018EBC9), + UINT32_C(0x005F3584), UINT32_C(0x003F1CBF), UINT32_C(0x000BF4C1), + UINT32_C(0x00164AA4), UINT32_C(0x006151FB), UINT32_C(0x00068D6E), + UINT32_C(0x00126E4F), UINT32_C(0x00200280), UINT32_C(0x0031B7DD), + UINT32_C(0x00054BB5), UINT32_C(0x003503DD), UINT32_C(0x0015FE73), + UINT32_C(0x00400A3B), UINT32_C(0x0018B4CB), UINT32_C(0x00269223), + UINT32_C(0x003BAABF), UINT32_C(0x00219923), UINT32_C(0x0000517F), + UINT32_C(0x0036DB7B), UINT32_C(0x001898DE)}, + {UINT32_C(0x001B3C2F), UINT32_C(0x003100AC), UINT32_C(0x00375C4D), + UINT32_C(0x0047FF1C), UINT32_C(0x001554A3), UINT32_C(0x00345032), + UINT32_C(0x000567ED), UINT32_C(0x00602271), UINT32_C(0x00037B43), + UINT32_C(0x00352EA6), UINT32_C(0x00099EBC), UINT32_C(0x007107DC), + UINT32_C(0x00014BD9), UINT32_C(0x003BAE49), UINT32_C(0x0012E08D), + UINT32_C(0x006CA22B), UINT32_C(0x001DABB1), UINT32_C(0x002D516C), + UINT32_C(0x00270889), UINT32_C(0x002F1F40), UINT32_C(0x000B40D8), + UINT32_C(0x001F6C6E), UINT32_C(0x00069120)}}, + {{UINT32_C(0x003E2CA8), UINT32_C(0x000FBDFE), UINT32_C(0x0008452C), + UINT32_C(0x004EBE38), UINT32_C(0x003022B7), UINT32_C(0x003A3695), + UINT32_C(0x0000EF8E), UINT32_C(0x003868DB), UINT32_C(0x0038AD77), + UINT32_C(0x00197BEF), UINT32_C(0x0035C5D1), UINT32_C(0x0056D147), + UINT32_C(0x00150885), UINT32_C(0x0032B7D5), UINT32_C(0x0022642D), + UINT32_C(0x006B1347), UINT32_C(0x00343776), UINT32_C(0x00321A28), + UINT32_C(0x00170446), UINT32_C(0x003DEB75), UINT32_C(0x002A4140), + UINT32_C(0x00029DF0), UINT32_C(0x002450E4)}, + {UINT32_C(0x004955CA), UINT32_C(0x000C7AB0), UINT32_C(0x002D31F7), + UINT32_C(0x005F83A6), UINT32_C(0x002FA36D), UINT32_C(0x001F49E7), + UINT32_C(0x003F321C), UINT32_C(0x0011D711), UINT32_C(0x0004B439), + UINT32_C(0x0034F95D), UINT32_C(0x00217EE2), UINT32_C(0x0032BAFE), + UINT32_C(0x0006F393), UINT32_C(0x002A690E), UINT32_C(0x000FAE08), + UINT32_C(0x0034160E), UINT32_C(0x0038471B), UINT32_C(0x003E6453), + UINT32_C(0x001D2EED), UINT32_C(0x00019616), UINT32_C(0x002ECA2C), + UINT32_C(0x002B42A7), UINT32_C(0x001944E5)}, + {UINT32_C(0x0070C80A), UINT32_C(0x003ADD3E), UINT32_C(0x00164515), + UINT32_C(0x004C3E58), UINT32_C(0x002B68C7), UINT32_C(0x0024C735), + UINT32_C(0x00154086), UINT32_C(0x004AF4B2), UINT32_C(0x003F79B6), + UINT32_C(0x000EFFA4), UINT32_C(0x002E7835), UINT32_C(0x00143F92), + UINT32_C(0x00139828), UINT32_C(0x002F5825), UINT32_C(0x002C6C7B), + UINT32_C(0x00374B07), UINT32_C(0x00260379), UINT32_C(0x0033BF91), + UINT32_C(0x000FB28A), UINT32_C(0x006D0F2D), UINT32_C(0x001A3C03), + UINT32_C(0x003DCB0D), UINT32_C(0x00042785)}}, + {{UINT32_C(0x0032F6C1), UINT32_C(0x0025C23A), UINT32_C(0x0032EA38), + UINT32_C(0x00343C52), UINT32_C(0x002C5DA6), UINT32_C(0x0029130F), + UINT32_C(0x001DEA76), UINT32_C(0x00041B06), UINT32_C(0x0006CC8F), + UINT32_C(0x000C33C2), UINT32_C(0x003DE859), UINT32_C(0x0075ADE1), + UINT32_C(0x001F074B), UINT32_C(0x0020B431), UINT32_C(0x00089D3D), + UINT32_C(0x00183D45), UINT32_C(0x0010916A), UINT32_C(0x00079EAC), + UINT32_C(0x0004D6B9), UINT32_C(0x006DA065), UINT32_C(0x000E2053), + UINT32_C(0x0002B57D), UINT32_C(0x0003A141)}, + {UINT32_C(0x0009A37F), UINT32_C(0x0035153F), UINT32_C(0x0033545C), + UINT32_C(0x005C4E51), UINT32_C(0x002ED0FF), UINT32_C(0x0023618F), + UINT32_C(0x001775AA), UINT32_C(0x005E1890), UINT32_C(0x003A6506), + UINT32_C(0x00383A25), UINT32_C(0x0006CB4C), UINT32_C(0x00238F29), + UINT32_C(0x000B58F7), UINT32_C(0x0035B0D9), UINT32_C(0x001D243C), + UINT32_C(0x0038459B), UINT32_C(0x0019D714), UINT32_C(0x0031ADDB), + UINT32_C(0x00014CD5), UINT32_C(0x00114249), UINT32_C(0x0009DCEB), + UINT32_C(0x00069813), UINT32_C(0x001E743D)}, + {UINT32_C(0x00491E76), UINT32_C(0x00358978), UINT32_C(0x0032E06B), + UINT32_C(0x007CF380), UINT32_C(0x0021BA4C), UINT32_C(0x001B9DC8), + UINT32_C(0x00072C57), UINT32_C(0x007D4A61), UINT32_C(0x002A03EB), + UINT32_C(0x002A8A04), UINT32_C(0x0036F1B1), UINT32_C(0x00167D87), + UINT32_C(0x00037D30), UINT32_C(0x00300EB9), UINT32_C(0x0009A70D), + UINT32_C(0x002915B7), UINT32_C(0x000C36DA), UINT32_C(0x0000FD77), + UINT32_C(0x003CA0D6), UINT32_C(0x00599232), UINT32_C(0x000906BD), + UINT32_C(0x003DEACB), UINT32_C(0x00181880)}}, + {{UINT32_C(0x006BF556), UINT32_C(0x000208D1), UINT32_C(0x0037FE71), + UINT32_C(0x0064B85C), UINT32_C(0x0031878C), UINT32_C(0x00333FB4), + UINT32_C(0x0007D710), UINT32_C(0x004670D1), UINT32_C(0x0023984F), + UINT32_C(0x0005C689), UINT32_C(0x00255366), UINT32_C(0x0044C87B), + UINT32_C(0x001D338E), UINT32_C(0x003044AD), UINT32_C(0x002665F4), + UINT32_C(0x0040EB4D), UINT32_C(0x001E02E4), UINT32_C(0x0008C27F), + UINT32_C(0x000F8571), UINT32_C(0x006BD63F), UINT32_C(0x000A6DFC), + UINT32_C(0x0013304C), UINT32_C(0x002FDD59)}, + {UINT32_C(0x005724E2), UINT32_C(0x00218196), UINT32_C(0x00150782), + UINT32_C(0x0056A299), UINT32_C(0x00236FDE), UINT32_C(0x0032ED2C), + UINT32_C(0x0039E8A0), UINT32_C(0x00679EE7), UINT32_C(0x0014DA74), + UINT32_C(0x0004A8BC), UINT32_C(0x00266E00), UINT32_C(0x0041E7FF), + UINT32_C(0x002073C7), UINT32_C(0x00344E9F), UINT32_C(0x0021EAD2), + UINT32_C(0x00425BB8), UINT32_C(0x002F122A), UINT32_C(0x002C55D5), + UINT32_C(0x0008B0D6), UINT32_C(0x00666EDC), UINT32_C(0x0021D2D7), + UINT32_C(0x002421BB), UINT32_C(0x00131ACD)}, + {UINT32_C(0x00737055), UINT32_C(0x001D6FE9), UINT32_C(0x003EFC08), + UINT32_C(0x00306FA4), UINT32_C(0x002508B1), UINT32_C(0x002780B8), + UINT32_C(0x00329BA8), UINT32_C(0x00206820), UINT32_C(0x003B15C5), + UINT32_C(0x00317300), UINT32_C(0x000FD39A), UINT32_C(0x0049D634), + UINT32_C(0x000B31B5), UINT32_C(0x0019A81C), UINT32_C(0x00271B13), + UINT32_C(0x0056932D), UINT32_C(0x00387035), UINT32_C(0x002A79F2), + UINT32_C(0x0028ECD2), UINT32_C(0x000E84D7), UINT32_C(0x00232B80), + UINT32_C(0x002790F5), UINT32_C(0x0026AAC9)}}, + {{UINT32_C(0x003FA216), UINT32_C(0x002B5E41), UINT32_C(0x0011F507), + UINT32_C(0x004798E8), UINT32_C(0x001F1C32), UINT32_C(0x0004D796), + UINT32_C(0x00077B9E), UINT32_C(0x002381F2), UINT32_C(0x00042960), + UINT32_C(0x003DC0DE), UINT32_C(0x001F19ED), UINT32_C(0x0008D2B6), + UINT32_C(0x00218E79), UINT32_C(0x00191D1E), UINT32_C(0x0038BEC0), + UINT32_C(0x002BA744), UINT32_C(0x001106D5), UINT32_C(0x002908D7), + UINT32_C(0x0018D0A6), UINT32_C(0x00643D59), UINT32_C(0x00251CA2), + UINT32_C(0x00025593), UINT32_C(0x002EABF3)}, + {UINT32_C(0x00438D3B), UINT32_C(0x002C35AD), UINT32_C(0x00121865), + UINT32_C(0x002217B5), UINT32_C(0x003F2262), UINT32_C(0x0002C5A2), + UINT32_C(0x000B51E2), UINT32_C(0x007F949C), UINT32_C(0x001BC59A), + UINT32_C(0x002729B2), UINT32_C(0x0025BD2D), UINT32_C(0x0063FBB0), + UINT32_C(0x0013132E), UINT32_C(0x0016DC57), UINT32_C(0x0017A6E3), + UINT32_C(0x002FCDA3), UINT32_C(0x00321610), UINT32_C(0x0032D4AA), + UINT32_C(0x001F56D4), UINT32_C(0x004B46C8), UINT32_C(0x0026FC03), + UINT32_C(0x002B891B), UINT32_C(0x001EEC11)}, + {UINT32_C(0x0004BF5B), UINT32_C(0x000A6EB9), UINT32_C(0x00137543), + UINT32_C(0x003EA024), UINT32_C(0x002E1BE2), UINT32_C(0x00294A40), + UINT32_C(0x00175374), UINT32_C(0x003418B2), UINT32_C(0x00092934), + UINT32_C(0x000559DA), UINT32_C(0x000D4705), UINT32_C(0x00023080), + UINT32_C(0x002832CC), UINT32_C(0x0020B5FC), UINT32_C(0x000BF4A7), + UINT32_C(0x004B3473), UINT32_C(0x0003A84F), UINT32_C(0x002A3FAE), + UINT32_C(0x00045DB0), UINT32_C(0x007AEDBF), UINT32_C(0x001266FC), + UINT32_C(0x0002E6C3), UINT32_C(0x000380CF)}}, + {{UINT32_C(0x0029F673), UINT32_C(0x0011C696), UINT32_C(0x00032672), + UINT32_C(0x0054238E), UINT32_C(0x00370626), UINT32_C(0x00339C4E), + UINT32_C(0x0031300A), UINT32_C(0x000B2D5B), UINT32_C(0x00206C4D), + UINT32_C(0x000791D2), UINT32_C(0x002DB03D), UINT32_C(0x0037C66B), + UINT32_C(0x002780B2), UINT32_C(0x002E5FE3), UINT32_C(0x002B5B3A), + UINT32_C(0x00240A75), UINT32_C(0x00239AF3), UINT32_C(0x0007A194), + UINT32_C(0x0035BC60), UINT32_C(0x004FBA17), UINT32_C(0x003826E1), + UINT32_C(0x00181F8A), UINT32_C(0x00042F82)}, + {UINT32_C(0x00459AFB), UINT32_C(0x00087F76), UINT32_C(0x0002C645), + UINT32_C(0x004C7CE4), UINT32_C(0x00142200), UINT32_C(0x00366037), + UINT32_C(0x001EF906), UINT32_C(0x0057C3A8), UINT32_C(0x001A8791), + UINT32_C(0x00302563), UINT32_C(0x002034EF), UINT32_C(0x001A0222), + UINT32_C(0x003375A9), UINT32_C(0x0032C4BC), UINT32_C(0x0008F4DC), + UINT32_C(0x00581A30), UINT32_C(0x000C394E), UINT32_C(0x000B7FEE), + UINT32_C(0x003C5662), UINT32_C(0x0034BB53), UINT32_C(0x0005B495), + UINT32_C(0x00018243), UINT32_C(0x0037995C)}, + {UINT32_C(0x004906BD), UINT32_C(0x0032B8FA), UINT32_C(0x00372E94), + UINT32_C(0x00613088), UINT32_C(0x00017311), UINT32_C(0x003528B5), + UINT32_C(0x001EE0AC), UINT32_C(0x00686616), UINT32_C(0x0033F1FD), + UINT32_C(0x0025E7C3), UINT32_C(0x003DFBB8), UINT32_C(0x001A5DF7), + UINT32_C(0x00023B1E), UINT32_C(0x00015AAC), UINT32_C(0x0025054D), + UINT32_C(0x001704E4), UINT32_C(0x001BAE37), UINT32_C(0x001A384F), + UINT32_C(0x003606FC), UINT32_C(0x00740F1B), UINT32_C(0x002C8C7D), + UINT32_C(0x0024600B), UINT32_C(0x003D5C73)}}, + {{UINT32_C(0x001784B4), UINT32_C(0x002CEF58), UINT32_C(0x00372A6C), + UINT32_C(0x00118258), UINT32_C(0x002D6ED8), UINT32_C(0x002DD567), + UINT32_C(0x00106EE7), UINT32_C(0x001C074F), UINT32_C(0x001A9185), + UINT32_C(0x0029B246), UINT32_C(0x00375A41), UINT32_C(0x007DF964), + UINT32_C(0x0017B200), UINT32_C(0x00194A5C), UINT32_C(0x0013B979), + UINT32_C(0x0003EA48), UINT32_C(0x00295585), UINT32_C(0x001B2FAF), + UINT32_C(0x001F6D5F), UINT32_C(0x007D4491), UINT32_C(0x002AA139), + UINT32_C(0x002032CA), UINT32_C(0x0033AB4D)}, + {UINT32_C(0x00326E12), UINT32_C(0x00073B02), UINT32_C(0x0009134C), + UINT32_C(0x00719A24), UINT32_C(0x0010FFDA), UINT32_C(0x0017F597), + UINT32_C(0x00023DEA), UINT32_C(0x00565B05), UINT32_C(0x000CF206), + UINT32_C(0x00316819), UINT32_C(0x001759BE), UINT32_C(0x003B59E1), + UINT32_C(0x001A7716), UINT32_C(0x002F2CB8), UINT32_C(0x00022C88), + UINT32_C(0x006E200A), UINT32_C(0x0034B39A), UINT32_C(0x0004C2A3), + UINT32_C(0x000EFF2B), UINT32_C(0x007771C0), UINT32_C(0x0038736A), + UINT32_C(0x003EA343), UINT32_C(0x002473CB)}, + {UINT32_C(0x007E0E25), UINT32_C(0x003FF836), UINT32_C(0x0029E179), + UINT32_C(0x0059DA0B), UINT32_C(0x0038BD07), UINT32_C(0x00397717), + UINT32_C(0x0035EEC3), UINT32_C(0x001451BD), UINT32_C(0x000C4CC2), + UINT32_C(0x0011AD20), UINT32_C(0x0024798D), UINT32_C(0x001EA1F7), + UINT32_C(0x0017A035), UINT32_C(0x00174E1A), UINT32_C(0x000614CC), + UINT32_C(0x00744E00), UINT32_C(0x00071F7A), UINT32_C(0x003F23AE), + UINT32_C(0x001D8DCA), UINT32_C(0x000674F7), UINT32_C(0x0003AF2F), + UINT32_C(0x0028BCAA), UINT32_C(0x0025E559)}}, + {{UINT32_C(0x0011497E), UINT32_C(0x000ECE29), UINT32_C(0x002A4EA2), + UINT32_C(0x001C0932), UINT32_C(0x00086320), UINT32_C(0x0001D745), + UINT32_C(0x000E7077), UINT32_C(0x002982BA), UINT32_C(0x0006C3CC), + UINT32_C(0x001A61D3), UINT32_C(0x0018D012), UINT32_C(0x003FD5A7), + UINT32_C(0x00271A87), UINT32_C(0x003F3CEE), UINT32_C(0x00381814), + UINT32_C(0x006264B1), UINT32_C(0x001D51C9), UINT32_C(0x0024F3F8), + UINT32_C(0x0032133E), UINT32_C(0x0070B6C3), UINT32_C(0x0027EB3B), + UINT32_C(0x00170DF3), UINT32_C(0x003FDF92)}, + {UINT32_C(0x0052D458), UINT32_C(0x002FDA22), UINT32_C(0x00040A2E), + UINT32_C(0x006FA7D9), UINT32_C(0x000F1A9C), UINT32_C(0x000B70A5), + UINT32_C(0x001666C6), UINT32_C(0x00150503), UINT32_C(0x002A0651), + UINT32_C(0x00019D2E), UINT32_C(0x002CB70B), UINT32_C(0x0022C910), + UINT32_C(0x002EE4CD), UINT32_C(0x0008D506), UINT32_C(0x00014281), + UINT32_C(0x00358B69), UINT32_C(0x002DA7BF), UINT32_C(0x00124768), + UINT32_C(0x0020EC13), UINT32_C(0x00550441), UINT32_C(0x001C17FE), + UINT32_C(0x00213A61), UINT32_C(0x001451A1)}, + {UINT32_C(0x002A7679), UINT32_C(0x0015D4B5), UINT32_C(0x000CFCC1), + UINT32_C(0x003FF845), UINT32_C(0x001C7A7D), UINT32_C(0x001AE5DD), + UINT32_C(0x003EAB09), UINT32_C(0x003FDF89), UINT32_C(0x0035A00B), + UINT32_C(0x0037D9FF), UINT32_C(0x00275895), UINT32_C(0x0035077F), + UINT32_C(0x000EBCA0), UINT32_C(0x002DB718), UINT32_C(0x0007E563), + UINT32_C(0x007217CE), UINT32_C(0x000CFEC9), UINT32_C(0x0039C0C7), + UINT32_C(0x000C8457), UINT32_C(0x000D6DEE), UINT32_C(0x00095556), + UINT32_C(0x002C0A1B), UINT32_C(0x000A5B02)}}, + {{UINT32_C(0x0058676E), UINT32_C(0x003BB967), UINT32_C(0x002F67E8), + UINT32_C(0x0014611B), UINT32_C(0x0002CA68), UINT32_C(0x00360A23), + UINT32_C(0x003D4703), UINT32_C(0x002FFB09), UINT32_C(0x000B0650), + UINT32_C(0x00350E32), UINT32_C(0x0020BBE2), UINT32_C(0x007EB614), + UINT32_C(0x0013CBB5), UINT32_C(0x003BBDBC), UINT32_C(0x0026C9BB), + UINT32_C(0x001E256E), UINT32_C(0x000E735E), UINT32_C(0x002C3CC9), + UINT32_C(0x00010C97), UINT32_C(0x000C12B4), UINT32_C(0x00028C55), + UINT32_C(0x0014841F), UINT32_C(0x00143C15)}, + {UINT32_C(0x0065EB1A), UINT32_C(0x00025B10), UINT32_C(0x001CD5C4), + UINT32_C(0x00746872), UINT32_C(0x00054288), UINT32_C(0x001B2B2E), + UINT32_C(0x001F2239), UINT32_C(0x00518E6E), UINT32_C(0x002123BD), + UINT32_C(0x0033748A), UINT32_C(0x00174C52), UINT32_C(0x00258C02), + UINT32_C(0x0018FF52), UINT32_C(0x0007C3F2), UINT32_C(0x0010EC30), + UINT32_C(0x002A8FB5), UINT32_C(0x00338507), UINT32_C(0x003EA284), + UINT32_C(0x001E079E), UINT32_C(0x0070C9DD), UINT32_C(0x0023B5FB), + UINT32_C(0x002637F4), UINT32_C(0x00141F80)}, + {UINT32_C(0x00656339), UINT32_C(0x00123AB6), UINT32_C(0x003B759B), + UINT32_C(0x0050CB99), UINT32_C(0x000D243E), UINT32_C(0x0022A047), + UINT32_C(0x0030735F), UINT32_C(0x0004A175), UINT32_C(0x000B2BA6), + UINT32_C(0x000D31CE), UINT32_C(0x00324F8D), UINT32_C(0x004BB229), + UINT32_C(0x001E5D6F), UINT32_C(0x0002772E), UINT32_C(0x00296DC5), + UINT32_C(0x00577AE8), UINT32_C(0x00086249), UINT32_C(0x002005B9), + UINT32_C(0x0032CA2B), UINT32_C(0x0018E5F0), UINT32_C(0x0010AC8A), + UINT32_C(0x00261F94), UINT32_C(0x00076C3E)}}, + {{UINT32_C(0x000DB1A4), UINT32_C(0x000C1216), UINT32_C(0x0020E3CE), + UINT32_C(0x00342538), UINT32_C(0x0025AD2D), UINT32_C(0x003C968A), + UINT32_C(0x000B2AC4), UINT32_C(0x003874BE), UINT32_C(0x00108EBE), + UINT32_C(0x00089221), UINT32_C(0x001A4E5D), UINT32_C(0x00000E6B), + UINT32_C(0x003A62C9), UINT32_C(0x000CAB40), UINT32_C(0x0039432F), + UINT32_C(0x006EEBB0), UINT32_C(0x003FD49F), UINT32_C(0x000A4915), + UINT32_C(0x003E803E), UINT32_C(0x000D14CB), UINT32_C(0x00147DBE), + UINT32_C(0x00273CC9), UINT32_C(0x0021CEAF)}, + {UINT32_C(0x0061AF93), UINT32_C(0x0001A305), UINT32_C(0x0013BAAE), + UINT32_C(0x007784E4), UINT32_C(0x000D254E), UINT32_C(0x0019835D), + UINT32_C(0x00242371), UINT32_C(0x000846D1), UINT32_C(0x0029D19E), + UINT32_C(0x000188DF), UINT32_C(0x000340FC), UINT32_C(0x007B3565), + UINT32_C(0x00179159), UINT32_C(0x0000E014), UINT32_C(0x002BBC15), + UINT32_C(0x006E03F7), UINT32_C(0x00332866), UINT32_C(0x003752B2), + UINT32_C(0x0036128E), UINT32_C(0x004EEEA5), UINT32_C(0x0018D656), + UINT32_C(0x0021FC26), UINT32_C(0x0031850E)}, + {UINT32_C(0x00501FD0), UINT32_C(0x000AF537), UINT32_C(0x0038C7E6), + UINT32_C(0x0043735E), UINT32_C(0x00110069), UINT32_C(0x003F2C22), + UINT32_C(0x0017CF5D), UINT32_C(0x002FD510), UINT32_C(0x0014235B), + UINT32_C(0x0004DD30), UINT32_C(0x003C65B4), UINT32_C(0x000F1032), + UINT32_C(0x00389A5B), UINT32_C(0x00156157), UINT32_C(0x0011C8DC), + UINT32_C(0x00500C48), UINT32_C(0x00119681), UINT32_C(0x00193DFD), + UINT32_C(0x002E9C52), UINT32_C(0x007DD9BC), UINT32_C(0x003C9B4A), + UINT32_C(0x003F1598), UINT32_C(0x0008392D)}}, + {{UINT32_C(0x007DA6AE), UINT32_C(0x0026680F), UINT32_C(0x0001CBC2), + UINT32_C(0x00700F21), UINT32_C(0x002BA64B), UINT32_C(0x0005ACA1), + UINT32_C(0x000DA060), UINT32_C(0x006C880D), UINT32_C(0x00280F5B), + UINT32_C(0x001CD097), UINT32_C(0x003BBCFE), UINT32_C(0x002CAEAF), + UINT32_C(0x001B96AF), UINT32_C(0x002F9409), UINT32_C(0x00218817), + UINT32_C(0x002929AF), UINT32_C(0x0035CDAF), UINT32_C(0x001766D6), + UINT32_C(0x002FE847), UINT32_C(0x0003656A), UINT32_C(0x00047989), + UINT32_C(0x00351086), UINT32_C(0x002D5D88)}, + {UINT32_C(0x003FF7B2), UINT32_C(0x00283A9C), UINT32_C(0x0020E8A8), + UINT32_C(0x003A0789), UINT32_C(0x001BFDE1), UINT32_C(0x000D525F), + UINT32_C(0x0035C861), UINT32_C(0x0060CAD2), UINT32_C(0x002ACA77), + UINT32_C(0x0015E571), UINT32_C(0x00182DD8), UINT32_C(0x004E3F9F), + UINT32_C(0x00157225), UINT32_C(0x000ABD0E), UINT32_C(0x002C1C74), + UINT32_C(0x006799C9), UINT32_C(0x001084CD), UINT32_C(0x002FCC74), + UINT32_C(0x001104CF), UINT32_C(0x0063FB40), UINT32_C(0x000B1B48), + UINT32_C(0x002FF705), UINT32_C(0x0017DD74)}, + {UINT32_C(0x00758DFD), UINT32_C(0x00259101), UINT32_C(0x002F9E96), + UINT32_C(0x00127A02), UINT32_C(0x003560BA), UINT32_C(0x00174012), + UINT32_C(0x00080553), UINT32_C(0x00084ADA), UINT32_C(0x0030B0B3), + UINT32_C(0x003CCA10), UINT32_C(0x002A7BF0), UINT32_C(0x0066B5D8), + UINT32_C(0x001775C4), UINT32_C(0x0025FB21), UINT32_C(0x00084012), + UINT32_C(0x0023425E), UINT32_C(0x00160D8A), UINT32_C(0x0014DE6A), + UINT32_C(0x000D84B1), UINT32_C(0x0000C090), UINT32_C(0x001CEB65), + UINT32_C(0x00304B91), UINT32_C(0x003C0931)}}, + {{UINT32_C(0x007B8F38), UINT32_C(0x003E8D2B), UINT32_C(0x0014249B), + UINT32_C(0x0032E6FD), UINT32_C(0x00019922), UINT32_C(0x00288D0E), + UINT32_C(0x0030B952), UINT32_C(0x0008C34B), UINT32_C(0x00191997), + UINT32_C(0x002F5C5B), UINT32_C(0x003ED4DE), UINT32_C(0x002D0DBE), + UINT32_C(0x001C4CC0), UINT32_C(0x003799BB), UINT32_C(0x0007EED8), + UINT32_C(0x007C90CE), UINT32_C(0x002E0A50), UINT32_C(0x00131AF1), + UINT32_C(0x0028FD81), UINT32_C(0x003D7BFD), UINT32_C(0x0020C820), + UINT32_C(0x001E4117), UINT32_C(0x003233FA)}, + {UINT32_C(0x006AD0B4), UINT32_C(0x0024A7CA), UINT32_C(0x00224A76), + UINT32_C(0x00201B36), UINT32_C(0x00089BF6), UINT32_C(0x00185943), + UINT32_C(0x000EE3FB), UINT32_C(0x0062E219), UINT32_C(0x00304742), + UINT32_C(0x000ECFDC), UINT32_C(0x0002B3E9), UINT32_C(0x00278A41), + UINT32_C(0x000B4C45), UINT32_C(0x003DAF2F), UINT32_C(0x0016786A), + UINT32_C(0x00326096), UINT32_C(0x0004F58A), UINT32_C(0x003D414F), + UINT32_C(0x002571F1), UINT32_C(0x000C5218), UINT32_C(0x000BC00A), + UINT32_C(0x001558DD), UINT32_C(0x000E4574)}, + {UINT32_C(0x00214F76), UINT32_C(0x00344E7B), UINT32_C(0x000D0A1C), + UINT32_C(0x00073F8A), UINT32_C(0x0031A1E8), UINT32_C(0x0024F24B), + UINT32_C(0x002EB5CC), UINT32_C(0x00423B58), UINT32_C(0x0005DF88), + UINT32_C(0x000A882D), UINT32_C(0x001F2F21), UINT32_C(0x001DC1AC), + UINT32_C(0x000BF263), UINT32_C(0x000FC01F), UINT32_C(0x0013D53A), + UINT32_C(0x00689488), UINT32_C(0x0039A08C), UINT32_C(0x00026357), + UINT32_C(0x00354D80), UINT32_C(0x00649669), UINT32_C(0x0006D559), + UINT32_C(0x0024D4A8), UINT32_C(0x001B1D7D)}}, + {{UINT32_C(0x007539AC), UINT32_C(0x001AF584), UINT32_C(0x003849E3), + UINT32_C(0x00604878), UINT32_C(0x0028932B), UINT32_C(0x00336A8D), + UINT32_C(0x002DC15F), UINT32_C(0x004EE915), UINT32_C(0x003E8891), + UINT32_C(0x002C26A5), UINT32_C(0x002353EF), UINT32_C(0x00690ACF), + UINT32_C(0x000B284B), UINT32_C(0x0004CD7A), UINT32_C(0x00266953), + UINT32_C(0x0038EC31), UINT32_C(0x0015E302), UINT32_C(0x000080A9), + UINT32_C(0x0025D49A), UINT32_C(0x00318334), UINT32_C(0x003B81A5), + UINT32_C(0x0038759D), UINT32_C(0x000EE138)}, + {UINT32_C(0x006652DC), UINT32_C(0x0030CF99), UINT32_C(0x00286EAE), + UINT32_C(0x007E732A), UINT32_C(0x001BB04F), UINT32_C(0x001A7E81), + UINT32_C(0x00395CBD), UINT32_C(0x0012A720), UINT32_C(0x00143A75), + UINT32_C(0x000C4F0A), UINT32_C(0x0002959B), UINT32_C(0x005134E3), + UINT32_C(0x0029CD2F), UINT32_C(0x002E7B51), UINT32_C(0x001A8B65), + UINT32_C(0x0067BB4D), UINT32_C(0x00109B63), UINT32_C(0x000FF6AF), + UINT32_C(0x000F5619), UINT32_C(0x001FE508), UINT32_C(0x000593C7), + UINT32_C(0x002A4F5C), UINT32_C(0x0035E60F)}, + {UINT32_C(0x0041115B), UINT32_C(0x000C4566), UINT32_C(0x002DC574), + UINT32_C(0x006EAB28), UINT32_C(0x003017E2), UINT32_C(0x00275A4A), + UINT32_C(0x002C84E6), UINT32_C(0x0003FFFE), UINT32_C(0x0012331A), + UINT32_C(0x001B2EF0), UINT32_C(0x000A57A7), UINT32_C(0x007EA3E1), + UINT32_C(0x0001A805), UINT32_C(0x00064502), UINT32_C(0x003486D1), + UINT32_C(0x002A0735), UINT32_C(0x001F1246), UINT32_C(0x0013E4C1), + UINT32_C(0x000D6176), UINT32_C(0x005D2F66), UINT32_C(0x000B6919), + UINT32_C(0x00222C38), UINT32_C(0x002247FC)}}, + {{UINT32_C(0x007694F0), UINT32_C(0x0033BF57), UINT32_C(0x002D919E), + UINT32_C(0x00464556), UINT32_C(0x003240BB), UINT32_C(0x000A81C8), + UINT32_C(0x003FC6AD), UINT32_C(0x004C8BC2), UINT32_C(0x0037597A), + UINT32_C(0x000F3632), UINT32_C(0x003DEE9C), UINT32_C(0x007AF7FC), + UINT32_C(0x0002B2A3), UINT32_C(0x0001FEF8), UINT32_C(0x00266BFE), + UINT32_C(0x005A4DF9), UINT32_C(0x001BC528), UINT32_C(0x0038FCA9), + UINT32_C(0x0021AB8E), UINT32_C(0x001B7A68), UINT32_C(0x00255401), + UINT32_C(0x0022B95A), UINT32_C(0x001CECB8)}, + {UINT32_C(0x00202C81), UINT32_C(0x00305B5D), UINT32_C(0x000F8353), + UINT32_C(0x0024BDD3), UINT32_C(0x0034CBF6), UINT32_C(0x001FC489), + UINT32_C(0x001C1EF2), UINT32_C(0x00378DD8), UINT32_C(0x00341D4E), + UINT32_C(0x00351CA3), UINT32_C(0x001FF171), UINT32_C(0x003F1946), + UINT32_C(0x0002CF94), UINT32_C(0x00389924), UINT32_C(0x003E5A8B), + UINT32_C(0x001BEA9D), UINT32_C(0x001E60D0), UINT32_C(0x00305EF9), + UINT32_C(0x0029219F), UINT32_C(0x00301DAA), UINT32_C(0x0000D311), + UINT32_C(0x0033EC94), UINT32_C(0x0003A683)}, + {UINT32_C(0x0026A83D), UINT32_C(0x0021AD7B), UINT32_C(0x001694B6), + UINT32_C(0x003BBDC2), UINT32_C(0x0016E0B7), UINT32_C(0x0009525B), + UINT32_C(0x003B24F8), UINT32_C(0x007C4237), UINT32_C(0x000E1CB0), + UINT32_C(0x0013611E), UINT32_C(0x001E0CF1), UINT32_C(0x004B8F7B), + UINT32_C(0x0012520D), UINT32_C(0x001CBF78), UINT32_C(0x00153E58), + UINT32_C(0x0072DA9E), UINT32_C(0x0009BF23), UINT32_C(0x00390546), + UINT32_C(0x001EC704), UINT32_C(0x0062F82E), UINT32_C(0x001379EA), + UINT32_C(0x00374CEF), UINT32_C(0x0000E810)}}, + {{UINT32_C(0x00672D01), UINT32_C(0x00181C43), UINT32_C(0x000F03E5), + UINT32_C(0x00114EB1), UINT32_C(0x00030AAB), UINT32_C(0x000E4929), + UINT32_C(0x003F4FF1), UINT32_C(0x005C1816), UINT32_C(0x00234EF2), + UINT32_C(0x0001CECB), UINT32_C(0x0000E003), UINT32_C(0x000FB7C6), + UINT32_C(0x0021F686), UINT32_C(0x00397348), UINT32_C(0x000668D5), + UINT32_C(0x000969FD), UINT32_C(0x002D58A1), UINT32_C(0x0001F6FF), + UINT32_C(0x002B509F), UINT32_C(0x005BF575), UINT32_C(0x001C7A72), + UINT32_C(0x003168A3), UINT32_C(0x00058841)}, + {UINT32_C(0x002E6F93), UINT32_C(0x0003FD4D), UINT32_C(0x00070367), + UINT32_C(0x007E2810), UINT32_C(0x0032A669), UINT32_C(0x003753AA), + UINT32_C(0x00059E13), UINT32_C(0x005BE0BB), UINT32_C(0x002DAD0A), + UINT32_C(0x0017009D), UINT32_C(0x002A29E1), UINT32_C(0x0010EAFB), + UINT32_C(0x00371B7B), UINT32_C(0x00384FE2), UINT32_C(0x00074C4C), + UINT32_C(0x005AF2F6), UINT32_C(0x00268D35), UINT32_C(0x0012D4D3), + UINT32_C(0x001988E8), UINT32_C(0x00637384), UINT32_C(0x003CA7EB), + UINT32_C(0x0012C38C), UINT32_C(0x00235944)}, + {UINT32_C(0x007FE4F7), UINT32_C(0x00128547), UINT32_C(0x003EE942), + UINT32_C(0x0063B61D), UINT32_C(0x00254E4C), UINT32_C(0x0006B269), + UINT32_C(0x002778BD), UINT32_C(0x003C91A8), UINT32_C(0x0038A282), + UINT32_C(0x0010BFE5), UINT32_C(0x002E5C21), UINT32_C(0x000205D0), + UINT32_C(0x00150853), UINT32_C(0x002376FF), UINT32_C(0x0006E95D), + UINT32_C(0x004FCAED), UINT32_C(0x0014D842), UINT32_C(0x00174695), + UINT32_C(0x00192588), UINT32_C(0x0004407A), UINT32_C(0x00169AA6), + UINT32_C(0x0038F9B9), UINT32_C(0x000DD818)}}, + {{UINT32_C(0x007ED415), UINT32_C(0x002AEE66), UINT32_C(0x002FE621), + UINT32_C(0x0019EC18), UINT32_C(0x001AC45A), UINT32_C(0x002C1BD9), + UINT32_C(0x0039EFF2), UINT32_C(0x0053C8E8), UINT32_C(0x0035D12E), + UINT32_C(0x000F4E0A), UINT32_C(0x0011182C), UINT32_C(0x00481DC1), + UINT32_C(0x00069045), UINT32_C(0x0028AC00), UINT32_C(0x00239B1A), + UINT32_C(0x0012C316), UINT32_C(0x001DFEA0), UINT32_C(0x003B985D), + UINT32_C(0x000DB2FE), UINT32_C(0x004F72CA), UINT32_C(0x0034C923), + UINT32_C(0x001A2093), UINT32_C(0x002B9C3E)}, + {UINT32_C(0x006E6357), UINT32_C(0x002A5A2B), UINT32_C(0x001B005C), + UINT32_C(0x00349183), UINT32_C(0x00374B6E), UINT32_C(0x0006A56D), + UINT32_C(0x0005A032), UINT32_C(0x00159BD4), UINT32_C(0x003F8A72), + UINT32_C(0x0006E1D8), UINT32_C(0x0018F53A), UINT32_C(0x0034F1F1), + UINT32_C(0x003729F4), UINT32_C(0x001B24AB), UINT32_C(0x001CC0C1), + UINT32_C(0x001EF566), UINT32_C(0x002B89C8), UINT32_C(0x0002F08C), + UINT32_C(0x003199AF), UINT32_C(0x001C32F5), UINT32_C(0x00194755), + UINT32_C(0x0005E212), UINT32_C(0x000E74FA)}, + {UINT32_C(0x0075610F), UINT32_C(0x001C5B4F), UINT32_C(0x0031545E), + UINT32_C(0x005A64BD), UINT32_C(0x00288ECD), UINT32_C(0x00003455), + UINT32_C(0x003E4D6B), UINT32_C(0x001C3B47), UINT32_C(0x00107A21), + UINT32_C(0x000E6BE9), UINT32_C(0x001C454B), UINT32_C(0x002BE715), + UINT32_C(0x0013B171), UINT32_C(0x000D5966), UINT32_C(0x0017248A), + UINT32_C(0x006610DA), UINT32_C(0x000D95A9), UINT32_C(0x002DAD62), + UINT32_C(0x003B2B47), UINT32_C(0x00483940), UINT32_C(0x00214E89), + UINT32_C(0x002E30EF), UINT32_C(0x001A8A7A)}}, + }, + { + {{UINT32_C(0x005710C2), UINT32_C(0x001C5AC3), UINT32_C(0x0032A560), + UINT32_C(0x0008892C), UINT32_C(0x002827E3), UINT32_C(0x0034491A), + UINT32_C(0x000CBDDB), UINT32_C(0x001226BC), UINT32_C(0x003DC095), + UINT32_C(0x003DBF5D), UINT32_C(0x00207C8F), UINT32_C(0x0003AEE4), + UINT32_C(0x00241676), UINT32_C(0x0019F64F), UINT32_C(0x0003A54C), + UINT32_C(0x007CCE36), UINT32_C(0x00229653), UINT32_C(0x001AD488), + UINT32_C(0x002FF51A), UINT32_C(0x003BAD16), UINT32_C(0x00269362), + UINT32_C(0x0005CFD4), UINT32_C(0x002B0036)}, + {UINT32_C(0x001D5B16), UINT32_C(0x0037F93D), UINT32_C(0x0011BE70), + UINT32_C(0x00010F69), UINT32_C(0x000FD6A2), UINT32_C(0x00198F6D), + UINT32_C(0x00306746), UINT32_C(0x00019354), UINT32_C(0x0005D19C), + UINT32_C(0x002A4081), UINT32_C(0x002187BF), UINT32_C(0x0037CD1C), + UINT32_C(0x000F42FE), UINT32_C(0x00384FBB), UINT32_C(0x003F74B7), + UINT32_C(0x002CB87D), UINT32_C(0x002FA3D2), UINT32_C(0x003B9CBD), + UINT32_C(0x0011ACE0), UINT32_C(0x004F2A0F), UINT32_C(0x0010CDFE), + UINT32_C(0x0037DC56), UINT32_C(0x001CA343)}, + {UINT32_C(0x002E9F4B), UINT32_C(0x0017B4E0), UINT32_C(0x00311C99), + UINT32_C(0x0042E4B2), UINT32_C(0x00253B3C), UINT32_C(0x00056B7F), + UINT32_C(0x00338DE4), UINT32_C(0x002BD82C), UINT32_C(0x00321B8D), + UINT32_C(0x0038A72F), UINT32_C(0x0008F3D8), UINT32_C(0x001567CC), + UINT32_C(0x0026AD64), UINT32_C(0x0020C5AF), UINT32_C(0x000CCD37), + UINT32_C(0x00590CBB), UINT32_C(0x00313270), UINT32_C(0x003C5BA6), + UINT32_C(0x00368F2D), UINT32_C(0x003060DD), UINT32_C(0x0036F8BC), + UINT32_C(0x000F2893), UINT32_C(0x00334A0C)}}, + {{UINT32_C(0x000DE443), UINT32_C(0x0032A8C8), UINT32_C(0x003EE1EE), + UINT32_C(0x002FB8DA), UINT32_C(0x0001EC25), UINT32_C(0x001F2379), + UINT32_C(0x002C120C), UINT32_C(0x00422DB7), UINT32_C(0x003AA20D), + UINT32_C(0x00036834), UINT32_C(0x000B6FAB), UINT32_C(0x00579A73), + UINT32_C(0x002C546A), UINT32_C(0x003CFCBB), UINT32_C(0x0015CCE3), + UINT32_C(0x001DA981), UINT32_C(0x001D2DEC), UINT32_C(0x00155C8F), + UINT32_C(0x0032C6DE), UINT32_C(0x001BBCC6), UINT32_C(0x00332AB7), + UINT32_C(0x00221975), UINT32_C(0x0015380A)}, + {UINT32_C(0x0079F763), UINT32_C(0x00086F41), UINT32_C(0x0027B078), + UINT32_C(0x0072AE3A), UINT32_C(0x003377BB), UINT32_C(0x003C40F7), + UINT32_C(0x0018F8C7), UINT32_C(0x00559BA1), UINT32_C(0x00387EE1), + UINT32_C(0x000395F9), UINT32_C(0x0026C76D), UINT32_C(0x00438509), + UINT32_C(0x00258967), UINT32_C(0x00102218), UINT32_C(0x0021EF58), + UINT32_C(0x00187594), UINT32_C(0x00070C07), UINT32_C(0x001150ED), + UINT32_C(0x001A248F), UINT32_C(0x0017CA07), UINT32_C(0x00305C05), + UINT32_C(0x003B435D), UINT32_C(0x0003AB05)}, + {UINT32_C(0x00269D6F), UINT32_C(0x0014041F), UINT32_C(0x001C654B), + UINT32_C(0x001E5899), UINT32_C(0x000B839F), UINT32_C(0x000068FF), + UINT32_C(0x001345C1), UINT32_C(0x0062C16D), UINT32_C(0x00095303), + UINT32_C(0x00336B6B), UINT32_C(0x001F5076), UINT32_C(0x006B8DE7), + UINT32_C(0x003033A5), UINT32_C(0x0031B05D), UINT32_C(0x000AAEBB), + UINT32_C(0x00580DC0), UINT32_C(0x00216E2A), UINT32_C(0x000B00E8), + UINT32_C(0x002FED70), UINT32_C(0x0067F7E7), UINT32_C(0x000E3F39), + UINT32_C(0x0026A5C9), UINT32_C(0x001321C9)}}, + {{UINT32_C(0x0075F516), UINT32_C(0x0019707B), UINT32_C(0x00284D76), + UINT32_C(0x00135FD0), UINT32_C(0x003E3862), UINT32_C(0x00146ACB), + UINT32_C(0x001C934B), UINT32_C(0x007030A4), UINT32_C(0x000CF8E7), + UINT32_C(0x002CA64F), UINT32_C(0x003FDC6E), UINT32_C(0x0065C11E), + UINT32_C(0x0016B6BB), UINT32_C(0x0018C069), UINT32_C(0x00171DC5), + UINT32_C(0x005B5697), UINT32_C(0x001E8900), UINT32_C(0x001B6DAF), + UINT32_C(0x00310BBC), UINT32_C(0x006BCF1D), UINT32_C(0x002F143F), + UINT32_C(0x001905CA), UINT32_C(0x00017744)}, + {UINT32_C(0x003D88D5), UINT32_C(0x000F9E5C), UINT32_C(0x003604CF), + UINT32_C(0x000C36D2), UINT32_C(0x002CF504), UINT32_C(0x0039A798), + UINT32_C(0x000BDED1), UINT32_C(0x001B8DC3), UINT32_C(0x0008E589), + UINT32_C(0x003A11F2), UINT32_C(0x00200D8C), UINT32_C(0x00625D48), + UINT32_C(0x000A9310), UINT32_C(0x003CD6F6), UINT32_C(0x00023EB4), + UINT32_C(0x001CDCCF), UINT32_C(0x00126F0D), UINT32_C(0x0022C59F), + UINT32_C(0x002ACC01), UINT32_C(0x005306AD), UINT32_C(0x002E74F2), + UINT32_C(0x0005DF6D), UINT32_C(0x00285847)}, + {UINT32_C(0x0065F342), UINT32_C(0x001EE28A), UINT32_C(0x00222BEB), + UINT32_C(0x006CA69D), UINT32_C(0x000BB7F9), UINT32_C(0x0021BF78), + UINT32_C(0x0003EC62), UINT32_C(0x0054A057), UINT32_C(0x00316B24), + UINT32_C(0x000FF725), UINT32_C(0x00262490), UINT32_C(0x003AE835), + UINT32_C(0x000DA133), UINT32_C(0x00120D05), UINT32_C(0x000F8110), + UINT32_C(0x00347C18), UINT32_C(0x0014B405), UINT32_C(0x000E57EA), + UINT32_C(0x001D3804), UINT32_C(0x001FB3A3), UINT32_C(0x0036FC24), + UINT32_C(0x003107FA), UINT32_C(0x0002D52F)}}, + {{UINT32_C(0x00730C26), UINT32_C(0x00033129), UINT32_C(0x00099E61), + UINT32_C(0x00274495), UINT32_C(0x00067D5F), UINT32_C(0x0030E0F3), + UINT32_C(0x00133EE6), UINT32_C(0x001CA496), UINT32_C(0x000D9AF5), + UINT32_C(0x000E2809), UINT32_C(0x0039B916), UINT32_C(0x006CE2B0), + UINT32_C(0x00022B22), UINT32_C(0x003C1D03), UINT32_C(0x00134443), + UINT32_C(0x006C83E6), UINT32_C(0x0022E5D1), UINT32_C(0x00355465), + UINT32_C(0x001393DE), UINT32_C(0x00297B8C), UINT32_C(0x000CCC36), + UINT32_C(0x00384BA8), UINT32_C(0x0003C2A7)}, + {UINT32_C(0x001F3E32), UINT32_C(0x003E6A39), UINT32_C(0x00274F66), + UINT32_C(0x0065F067), UINT32_C(0x003DEE02), UINT32_C(0x001ADBA0), + UINT32_C(0x003DD0D0), UINT32_C(0x00067633), UINT32_C(0x003371E3), + UINT32_C(0x0018B039), UINT32_C(0x000FBD3F), UINT32_C(0x003FEF60), + UINT32_C(0x000C13E7), UINT32_C(0x0035AFF4), UINT32_C(0x00248F86), + UINT32_C(0x0075C8AC), UINT32_C(0x00010FB8), UINT32_C(0x0009A933), + UINT32_C(0x00155411), UINT32_C(0x004DD6EA), UINT32_C(0x0018B242), + UINT32_C(0x003F42B9), UINT32_C(0x00307AFB)}, + {UINT32_C(0x0043D9DA), UINT32_C(0x002F1FAC), UINT32_C(0x002BEBF2), + UINT32_C(0x001674C8), UINT32_C(0x002F5627), UINT32_C(0x000982A2), + UINT32_C(0x001DD189), UINT32_C(0x0023CFE8), UINT32_C(0x001435E4), + UINT32_C(0x002E3968), UINT32_C(0x00212138), UINT32_C(0x0037DAED), + UINT32_C(0x001AF391), UINT32_C(0x00149EAC), UINT32_C(0x003F6739), + UINT32_C(0x005A1D0B), UINT32_C(0x0003DA69), UINT32_C(0x002C06DC), + UINT32_C(0x003A4339), UINT32_C(0x00603E6E), UINT32_C(0x00144A9B), + UINT32_C(0x002E832B), UINT32_C(0x002DEC99)}}, + {{UINT32_C(0x00262A7A), UINT32_C(0x0006D662), UINT32_C(0x00070E7F), + UINT32_C(0x007D4FD4), UINT32_C(0x000363F2), UINT32_C(0x002DCD0B), + UINT32_C(0x003F4BD3), UINT32_C(0x004B46BE), UINT32_C(0x0018690B), + UINT32_C(0x000D990E), UINT32_C(0x000FAB11), UINT32_C(0x000F371C), + UINT32_C(0x003CC586), UINT32_C(0x0027FA77), UINT32_C(0x00064076), + UINT32_C(0x002B6788), UINT32_C(0x003FBD23), UINT32_C(0x0003E156), + UINT32_C(0x000B4246), UINT32_C(0x0011F74C), UINT32_C(0x001580E7), + UINT32_C(0x001AB7D6), UINT32_C(0x002FD3D2)}, + {UINT32_C(0x0073791E), UINT32_C(0x0028FB9D), UINT32_C(0x002F8DA3), + UINT32_C(0x00149495), UINT32_C(0x001EDDC0), UINT32_C(0x0022DA14), + UINT32_C(0x000D1BE0), UINT32_C(0x000602F3), UINT32_C(0x00166D08), + UINT32_C(0x001F0437), UINT32_C(0x0001CD0D), UINT32_C(0x002624C1), + UINT32_C(0x002A961B), UINT32_C(0x00094F8B), UINT32_C(0x00315EBC), + UINT32_C(0x00021B46), UINT32_C(0x001DB347), UINT32_C(0x00240821), + UINT32_C(0x002271B3), UINT32_C(0x00475580), UINT32_C(0x00022765), + UINT32_C(0x0030DDFA), UINT32_C(0x002DD431)}, + {UINT32_C(0x0073CD42), UINT32_C(0x000AA556), UINT32_C(0x0012283B), + UINT32_C(0x007C1AE9), UINT32_C(0x000379D4), UINT32_C(0x0022CBD1), + UINT32_C(0x003AB652), UINT32_C(0x00694262), UINT32_C(0x003DAD8F), + UINT32_C(0x003C497A), UINT32_C(0x001A32CF), UINT32_C(0x003C85F6), + UINT32_C(0x0005431E), UINT32_C(0x002156D8), UINT32_C(0x002AF6B5), + UINT32_C(0x00038046), UINT32_C(0x002E42CB), UINT32_C(0x00254F18), + UINT32_C(0x0020D00F), UINT32_C(0x0030D955), UINT32_C(0x00071955), + UINT32_C(0x000B6D41), UINT32_C(0x00285989)}}, + {{UINT32_C(0x007E08FB), UINT32_C(0x00263A00), UINT32_C(0x000CADFC), + UINT32_C(0x001DC808), UINT32_C(0x002FA272), UINT32_C(0x001FB53D), + UINT32_C(0x0011F9BF), UINT32_C(0x003390F4), UINT32_C(0x0034E6F0), + UINT32_C(0x0004D46C), UINT32_C(0x00054043), UINT32_C(0x001A0B56), + UINT32_C(0x003D1A17), UINT32_C(0x001B584C), UINT32_C(0x0011ED5C), + UINT32_C(0x007B2CBC), UINT32_C(0x000C420C), UINT32_C(0x002C7F8D), + UINT32_C(0x001B1449), UINT32_C(0x006D4B4B), UINT32_C(0x00284BD2), + UINT32_C(0x00097414), UINT32_C(0x001056CF)}, + {UINT32_C(0x0073D3D1), UINT32_C(0x00088230), UINT32_C(0x000075FE), + UINT32_C(0x003B85B2), UINT32_C(0x00172ED7), UINT32_C(0x000E1CD6), + UINT32_C(0x002D09FB), UINT32_C(0x0073D157), UINT32_C(0x0009AE50), + UINT32_C(0x0011E0DC), UINT32_C(0x000EE967), UINT32_C(0x002CFFF1), + UINT32_C(0x0010B62C), UINT32_C(0x001BBB7A), UINT32_C(0x001A028C), + UINT32_C(0x004CD9AF), UINT32_C(0x0011BCF9), UINT32_C(0x0027E62F), + UINT32_C(0x000579BB), UINT32_C(0x007DC76F), UINT32_C(0x00332A43), + UINT32_C(0x0023C822), UINT32_C(0x000141A7)}, + {UINT32_C(0x00696277), UINT32_C(0x001B3A68), UINT32_C(0x002BB919), + UINT32_C(0x00483ED8), UINT32_C(0x000E8365), UINT32_C(0x00099C62), + UINT32_C(0x003C029F), UINT32_C(0x005155DA), UINT32_C(0x001F3BFC), + UINT32_C(0x003F93BC), UINT32_C(0x0019B689), UINT32_C(0x00763BA9), + UINT32_C(0x003D2F7A), UINT32_C(0x00398C78), UINT32_C(0x0038B6BF), + UINT32_C(0x006C7737), UINT32_C(0x002EE2B2), UINT32_C(0x003AADE4), + UINT32_C(0x002A6200), UINT32_C(0x0061FD04), UINT32_C(0x001F7254), + UINT32_C(0x000C8C41), UINT32_C(0x0033394F)}}, + {{UINT32_C(0x005E9802), UINT32_C(0x00264758), UINT32_C(0x001AB2B5), + UINT32_C(0x002E4F89), UINT32_C(0x002C4ADC), UINT32_C(0x000094EF), + UINT32_C(0x002689AD), UINT32_C(0x0046FA1A), UINT32_C(0x0030AFC9), + UINT32_C(0x001796B4), UINT32_C(0x0007E5D9), UINT32_C(0x0042C248), + UINT32_C(0x000F1E94), UINT32_C(0x0021F53B), UINT32_C(0x00261686), + UINT32_C(0x003F1DDB), UINT32_C(0x0038C53A), UINT32_C(0x00085F45), + UINT32_C(0x002D5719), UINT32_C(0x000E126B), UINT32_C(0x0008A053), + UINT32_C(0x0001D8A2), UINT32_C(0x000CA742)}, + {UINT32_C(0x0024D905), UINT32_C(0x000E9B9F), UINT32_C(0x0001793C), + UINT32_C(0x0038DEEF), UINT32_C(0x00281C2C), UINT32_C(0x002A3E68), + UINT32_C(0x002C3A89), UINT32_C(0x00474938), UINT32_C(0x00191AE2), + UINT32_C(0x00059F41), UINT32_C(0x003170A5), UINT32_C(0x007B0894), + UINT32_C(0x003188B8), UINT32_C(0x0004A286), UINT32_C(0x001330A6), + UINT32_C(0x000F7B22), UINT32_C(0x000CCE16), UINT32_C(0x002F2EE2), + UINT32_C(0x00195174), UINT32_C(0x005D1601), UINT32_C(0x001F40E0), + UINT32_C(0x00291362), UINT32_C(0x0035C7DC)}, + {UINT32_C(0x000B4C31), UINT32_C(0x003B561D), UINT32_C(0x000F3B3B), + UINT32_C(0x0070FA44), UINT32_C(0x0007486A), UINT32_C(0x001DF356), + UINT32_C(0x001935F2), UINT32_C(0x004FB6D9), UINT32_C(0x0027D7FD), + UINT32_C(0x00350DC9), UINT32_C(0x000A3F69), UINT32_C(0x00449466), + UINT32_C(0x00239BA4), UINT32_C(0x0028E2F3), UINT32_C(0x0026CBC7), + UINT32_C(0x00036018), UINT32_C(0x003A9DCF), UINT32_C(0x0037B528), + UINT32_C(0x001E2C6E), UINT32_C(0x003F6EC0), UINT32_C(0x003FD88F), + UINT32_C(0x00068ADE), UINT32_C(0x0037FCE0)}}, + {{UINT32_C(0x0050000E), UINT32_C(0x001E77A7), UINT32_C(0x0024B63E), + UINT32_C(0x0048CCFE), UINT32_C(0x0038B910), UINT32_C(0x0019209B), + UINT32_C(0x00253B08), UINT32_C(0x005B37AF), UINT32_C(0x0004506B), + UINT32_C(0x001A4B14), UINT32_C(0x000FF3BF), UINT32_C(0x00085950), + UINT32_C(0x002D6373), UINT32_C(0x000CDBBD), UINT32_C(0x00090934), + UINT32_C(0x004CF09F), UINT32_C(0x0027CD34), UINT32_C(0x00371F39), + UINT32_C(0x001C72B6), UINT32_C(0x006D2050), UINT32_C(0x002AC578), + UINT32_C(0x000FB697), UINT32_C(0x0005FF6A)}, + {UINT32_C(0x00599665), UINT32_C(0x002DDA7B), UINT32_C(0x00268815), + UINT32_C(0x002942AC), UINT32_C(0x001DEC68), UINT32_C(0x002DBB5F), + UINT32_C(0x000C7D78), UINT32_C(0x0057F19C), UINT32_C(0x0021DFB6), + UINT32_C(0x000753FB), UINT32_C(0x001EB75C), UINT32_C(0x006BB8BB), + UINT32_C(0x000F62D8), UINT32_C(0x00276AD4), UINT32_C(0x0018EBC3), + UINT32_C(0x00214208), UINT32_C(0x001152DD), UINT32_C(0x001897CD), + UINT32_C(0x002857D4), UINT32_C(0x0042470E), UINT32_C(0x0021C7EA), + UINT32_C(0x000270FA), UINT32_C(0x002E73F0)}, + {UINT32_C(0x0071D30B), UINT32_C(0x002E7B13), UINT32_C(0x0033F7E5), + UINT32_C(0x00026176), UINT32_C(0x0024C588), UINT32_C(0x001EA175), + UINT32_C(0x003B6645), UINT32_C(0x00291861), UINT32_C(0x000ED3A0), + UINT32_C(0x0002A696), UINT32_C(0x0016C658), UINT32_C(0x003C9DCA), + UINT32_C(0x001224F2), UINT32_C(0x0005AAC4), UINT32_C(0x001A509B), + UINT32_C(0x002E50AA), UINT32_C(0x001912EC), UINT32_C(0x0039A83F), + UINT32_C(0x002EEAC7), UINT32_C(0x0039F245), UINT32_C(0x0004ABA0), + UINT32_C(0x0038D048), UINT32_C(0x00088CA8)}}, + {{UINT32_C(0x00381541), UINT32_C(0x00204236), UINT32_C(0x000F7F85), + UINT32_C(0x006ABC1B), UINT32_C(0x00309BD4), UINT32_C(0x001A5B8A), + UINT32_C(0x003193B0), UINT32_C(0x007C3DBC), UINT32_C(0x0021AA72), + UINT32_C(0x0025AB66), UINT32_C(0x0027C829), UINT32_C(0x0000DCB0), + UINT32_C(0x001E5740), UINT32_C(0x0027A69E), UINT32_C(0x002A0916), + UINT32_C(0x003558C0), UINT32_C(0x0008DEFA), UINT32_C(0x00001D63), + UINT32_C(0x00302547), UINT32_C(0x0077415F), UINT32_C(0x0017C197), + UINT32_C(0x0022627F), UINT32_C(0x000599E2)}, + {UINT32_C(0x004DD359), UINT32_C(0x00246A2C), UINT32_C(0x0027E508), + UINT32_C(0x006A3CA3), UINT32_C(0x00378EB4), UINT32_C(0x0026BEB6), + UINT32_C(0x000844C3), UINT32_C(0x0055D1C5), UINT32_C(0x000BD3A3), + UINT32_C(0x00337C41), UINT32_C(0x003DE17E), UINT32_C(0x004DF9BA), + UINT32_C(0x0029B7C8), UINT32_C(0x00371C33), UINT32_C(0x001BC3B2), + UINT32_C(0x0052B93E), UINT32_C(0x003F84C4), UINT32_C(0x00046C2D), + UINT32_C(0x00381921), UINT32_C(0x00329932), UINT32_C(0x00029014), + UINT32_C(0x00195E90), UINT32_C(0x00165863)}, + {UINT32_C(0x003D4CE8), UINT32_C(0x0009AEA0), UINT32_C(0x000A6139), + UINT32_C(0x00626AB6), UINT32_C(0x001921AD), UINT32_C(0x001DDCC3), + UINT32_C(0x0010A346), UINT32_C(0x001C0DF5), UINT32_C(0x0022458F), + UINT32_C(0x0029A8D6), UINT32_C(0x0023055B), UINT32_C(0x007FBC20), + UINT32_C(0x0012BD87), UINT32_C(0x00105456), UINT32_C(0x0009B655), + UINT32_C(0x0061C3AD), UINT32_C(0x00029CBB), UINT32_C(0x0037EC3D), + UINT32_C(0x003A6374), UINT32_C(0x00604726), UINT32_C(0x0036C983), + UINT32_C(0x002FB577), UINT32_C(0x0034D612)}}, + {{UINT32_C(0x002E7DCC), UINT32_C(0x000D16B4), UINT32_C(0x0024096A), + UINT32_C(0x0025C077), UINT32_C(0x00092685), UINT32_C(0x0031BC93), + UINT32_C(0x002F71E3), UINT32_C(0x0006DB6D), UINT32_C(0x00314D92), + UINT32_C(0x0031DCE1), UINT32_C(0x0021F441), UINT32_C(0x005C93B1), + UINT32_C(0x000A56D1), UINT32_C(0x0007C7F7), UINT32_C(0x003AC8AA), + UINT32_C(0x004FB13F), UINT32_C(0x00382F3C), UINT32_C(0x00346287), + UINT32_C(0x0010C1C3), UINT32_C(0x003EB5C9), UINT32_C(0x00287A6F), + UINT32_C(0x0018779D), UINT32_C(0x00239EAB)}, + {UINT32_C(0x0041FD8F), UINT32_C(0x001E6522), UINT32_C(0x0022B56D), + UINT32_C(0x0025ABCD), UINT32_C(0x00306D98), UINT32_C(0x00300F6B), + UINT32_C(0x001655DA), UINT32_C(0x00272687), UINT32_C(0x0006B08D), + UINT32_C(0x0023B809), UINT32_C(0x00138AAF), UINT32_C(0x001DF48C), + UINT32_C(0x0011F659), UINT32_C(0x0009E92A), UINT32_C(0x003B30CC), + UINT32_C(0x001DAEE5), UINT32_C(0x003A3F41), UINT32_C(0x0009DF14), + UINT32_C(0x00214E4F), UINT32_C(0x001A4EE1), UINT32_C(0x000AF3F8), + UINT32_C(0x003B84FD), UINT32_C(0x0027CB30)}, + {UINT32_C(0x003FB85E), UINT32_C(0x002A5B7E), UINT32_C(0x000B3D6C), + UINT32_C(0x0010AAED), UINT32_C(0x001DCC4D), UINT32_C(0x002372C6), + UINT32_C(0x002990B7), UINT32_C(0x0029FD67), UINT32_C(0x00184F9D), + UINT32_C(0x00213292), UINT32_C(0x0006D4F4), UINT32_C(0x004C67DD), + UINT32_C(0x00170CE7), UINT32_C(0x00279FEF), UINT32_C(0x002AF75F), + UINT32_C(0x002865F8), UINT32_C(0x003DF044), UINT32_C(0x003246C4), + UINT32_C(0x000BBBCD), UINT32_C(0x0070D0BC), UINT32_C(0x0016FDF4), + UINT32_C(0x002E1724), UINT32_C(0x0034D526)}}, + {{UINT32_C(0x0068145B), UINT32_C(0x0010E47B), UINT32_C(0x0016AFBB), + UINT32_C(0x006D5CA7), UINT32_C(0x001CBDAA), UINT32_C(0x003773D2), + UINT32_C(0x00376C07), UINT32_C(0x00798761), UINT32_C(0x00122C25), + UINT32_C(0x0000941E), UINT32_C(0x000B8B0C), UINT32_C(0x006E3CF0), + UINT32_C(0x0037C29F), UINT32_C(0x003FCFE2), UINT32_C(0x00355C91), + UINT32_C(0x006B5739), UINT32_C(0x000039E2), UINT32_C(0x000A6FB6), + UINT32_C(0x00368629), UINT32_C(0x00439D33), UINT32_C(0x00051B6B), + UINT32_C(0x003CCB53), UINT32_C(0x0021E090)}, + {UINT32_C(0x0072B0D9), UINT32_C(0x00260FBA), UINT32_C(0x000A91DA), + UINT32_C(0x000248F7), UINT32_C(0x003E3B08), UINT32_C(0x00233510), + UINT32_C(0x000F7A4C), UINT32_C(0x00023CD1), UINT32_C(0x003BF83E), + UINT32_C(0x003F97FF), UINT32_C(0x00387ABE), UINT32_C(0x006B4171), + UINT32_C(0x000D77D6), UINT32_C(0x0028D310), UINT32_C(0x001FAD93), + UINT32_C(0x006D40A9), UINT32_C(0x00109960), UINT32_C(0x001C700E), + UINT32_C(0x0010A5D3), UINT32_C(0x00638AE3), UINT32_C(0x002B09EB), + UINT32_C(0x0005F26C), UINT32_C(0x0001E411)}, + {UINT32_C(0x000E2A67), UINT32_C(0x0016A28F), UINT32_C(0x00289716), + UINT32_C(0x0078F0B2), UINT32_C(0x003797DA), UINT32_C(0x00268485), + UINT32_C(0x00262E41), UINT32_C(0x00241F04), UINT32_C(0x00074EC0), + UINT32_C(0x000D6EAC), UINT32_C(0x001E559F), UINT32_C(0x00153E46), + UINT32_C(0x002FB890), UINT32_C(0x000CA628), UINT32_C(0x002A4016), + UINT32_C(0x007D6524), UINT32_C(0x001EC8D1), UINT32_C(0x00286DC0), + UINT32_C(0x00157657), UINT32_C(0x0079E5B8), UINT32_C(0x0039F963), + UINT32_C(0x000CE35C), UINT32_C(0x003F1219)}}, + {{UINT32_C(0x0000F57B), UINT32_C(0x0009DF26), UINT32_C(0x00222FE3), + UINT32_C(0x002A30BE), UINT32_C(0x00379E2F), UINT32_C(0x000AAB5F), + UINT32_C(0x002DEDC7), UINT32_C(0x00530A70), UINT32_C(0x001B01FA), + UINT32_C(0x003D1B31), UINT32_C(0x002AD753), UINT32_C(0x0029A2AA), + UINT32_C(0x0034373F), UINT32_C(0x002D9918), UINT32_C(0x002C76D1), + UINT32_C(0x002F937A), UINT32_C(0x000EB50A), UINT32_C(0x003F8781), + UINT32_C(0x002C7F91), UINT32_C(0x0004D41F), UINT32_C(0x003AEC45), + UINT32_C(0x00369FC0), UINT32_C(0x00013605)}, + {UINT32_C(0x0054C5BA), UINT32_C(0x00376F0D), UINT32_C(0x000F2327), + UINT32_C(0x00202DD7), UINT32_C(0x0022B2CE), UINT32_C(0x003D8E25), + UINT32_C(0x0030ED93), UINT32_C(0x005E7D9A), UINT32_C(0x00359051), + UINT32_C(0x00330484), UINT32_C(0x001F4DA9), UINT32_C(0x000D5A03), + UINT32_C(0x003772EE), UINT32_C(0x001FDD99), UINT32_C(0x00190D1C), + UINT32_C(0x0064DE66), UINT32_C(0x00112698), UINT32_C(0x003D9DDF), + UINT32_C(0x003B8E10), UINT32_C(0x000670E8), UINT32_C(0x001E9A00), + UINT32_C(0x000D2726), UINT32_C(0x00344016)}, + {UINT32_C(0x001EAEC6), UINT32_C(0x000A257F), UINT32_C(0x00368552), + UINT32_C(0x00569140), UINT32_C(0x00240DF0), UINT32_C(0x002BE21B), + UINT32_C(0x000AC85E), UINT32_C(0x0035C3D1), UINT32_C(0x0016FBDE), + UINT32_C(0x0024ACF2), UINT32_C(0x003AA3F7), UINT32_C(0x006A54CF), + UINT32_C(0x002AAD78), UINT32_C(0x003BE77F), UINT32_C(0x000CA38B), + UINT32_C(0x0053D6D6), UINT32_C(0x00238462), UINT32_C(0x001E2258), + UINT32_C(0x002E8075), UINT32_C(0x005C588D), UINT32_C(0x001BE563), + UINT32_C(0x00362AF4), UINT32_C(0x000E1465)}}, + {{UINT32_C(0x00544BA0), UINT32_C(0x00103EEE), UINT32_C(0x0012ACCC), + UINT32_C(0x0004634F), UINT32_C(0x00326BCC), UINT32_C(0x00186BD9), + UINT32_C(0x0001D886), UINT32_C(0x0006E9CD), UINT32_C(0x0028A635), + UINT32_C(0x0018E4A4), UINT32_C(0x002FA643), UINT32_C(0x000C1175), + UINT32_C(0x0039E179), UINT32_C(0x00255905), UINT32_C(0x000E38AE), + UINT32_C(0x00075E7F), UINT32_C(0x003F2DF2), UINT32_C(0x000BF618), + UINT32_C(0x0038EDDB), UINT32_C(0x003D531B), UINT32_C(0x00343EB7), + UINT32_C(0x001D10D6), UINT32_C(0x0003039D)}, + {UINT32_C(0x007286CB), UINT32_C(0x00262870), UINT32_C(0x00087C21), + UINT32_C(0x0015F41E), UINT32_C(0x002D96DA), UINT32_C(0x0004A9E5), + UINT32_C(0x00010055), UINT32_C(0x0063A621), UINT32_C(0x000E9F00), + UINT32_C(0x000EE347), UINT32_C(0x0026AF40), UINT32_C(0x003E094E), + UINT32_C(0x003B2228), UINT32_C(0x001A3CC1), UINT32_C(0x0030A53B), + UINT32_C(0x00011EE4), UINT32_C(0x00218ED0), UINT32_C(0x0007142C), + UINT32_C(0x00391F95), UINT32_C(0x002BB1FF), UINT32_C(0x001AA23A), + UINT32_C(0x003C5218), UINT32_C(0x002F08BB)}, + {UINT32_C(0x001EB5AC), UINT32_C(0x003F1C36), UINT32_C(0x001FD7A7), + UINT32_C(0x00755608), UINT32_C(0x003353AE), UINT32_C(0x003D6966), + UINT32_C(0x0017FDC3), UINT32_C(0x0000F856), UINT32_C(0x0009B134), + UINT32_C(0x000C3D1A), UINT32_C(0x001E06FC), UINT32_C(0x00745D11), + UINT32_C(0x003761CD), UINT32_C(0x0021FF5D), UINT32_C(0x0037240E), + UINT32_C(0x003022F6), UINT32_C(0x0013DC00), UINT32_C(0x00308386), + UINT32_C(0x00071C5F), UINT32_C(0x0010C125), UINT32_C(0x000192B4), + UINT32_C(0x0019FF02), UINT32_C(0x003B2385)}}, + {{UINT32_C(0x00417D4C), UINT32_C(0x003AECD5), UINT32_C(0x002E5B54), + UINT32_C(0x00243DAE), UINT32_C(0x0003B5C3), UINT32_C(0x00242612), + UINT32_C(0x001E0962), UINT32_C(0x004AC9D7), UINT32_C(0x0033B66D), + UINT32_C(0x0013DC44), UINT32_C(0x0017552D), UINT32_C(0x006C3A48), + UINT32_C(0x0036914E), UINT32_C(0x001C9CFD), UINT32_C(0x000862A1), + UINT32_C(0x00260590), UINT32_C(0x002BEC73), UINT32_C(0x00263AA5), + UINT32_C(0x0013BDC2), UINT32_C(0x007EAFCE), UINT32_C(0x001A9EA3), + UINT32_C(0x000A9066), UINT32_C(0x00024A7F)}, + {UINT32_C(0x007D40F1), UINT32_C(0x002268CC), UINT32_C(0x002A7B4D), + UINT32_C(0x0017B592), UINT32_C(0x001B785F), UINT32_C(0x002CEBBB), + UINT32_C(0x003FD10A), UINT32_C(0x0033D10F), UINT32_C(0x0005FF3D), + UINT32_C(0x0002C3D3), UINT32_C(0x00171A74), UINT32_C(0x005E8507), + UINT32_C(0x002D6928), UINT32_C(0x0007621E), UINT32_C(0x003F547B), + UINT32_C(0x005E087B), UINT32_C(0x000FFDD4), UINT32_C(0x0036FEE1), + UINT32_C(0x0028A970), UINT32_C(0x0049A969), UINT32_C(0x0008D33F), + UINT32_C(0x0020BACA), UINT32_C(0x000F9E55)}, + {UINT32_C(0x0001E00F), UINT32_C(0x003DC07C), UINT32_C(0x001BA800), + UINT32_C(0x004AEE42), UINT32_C(0x0013E66A), UINT32_C(0x001C61D4), + UINT32_C(0x00365B36), UINT32_C(0x000D2885), UINT32_C(0x00046EFC), + UINT32_C(0x00088FB6), UINT32_C(0x0007F83B), UINT32_C(0x003E8670), + UINT32_C(0x001539ED), UINT32_C(0x0039945D), UINT32_C(0x00052181), + UINT32_C(0x00150E04), UINT32_C(0x003F8361), UINT32_C(0x0033D590), + UINT32_C(0x002A7678), UINT32_C(0x001A0E6A), UINT32_C(0x0017FB3A), + UINT32_C(0x0001B263), UINT32_C(0x003FB8CC)}}, + {{UINT32_C(0x00441491), UINT32_C(0x000F0A65), UINT32_C(0x001689D6), + UINT32_C(0x001482F7), UINT32_C(0x00147BF7), UINT32_C(0x003D0042), + UINT32_C(0x002844D1), UINT32_C(0x005FD1B5), UINT32_C(0x00200A97), + UINT32_C(0x00117C63), UINT32_C(0x003D90B5), UINT32_C(0x001D123E), + UINT32_C(0x00044FA4), UINT32_C(0x003F2318), UINT32_C(0x0036FA13), + UINT32_C(0x005A1AE5), UINT32_C(0x000811CA), UINT32_C(0x001E59EF), + UINT32_C(0x0034D752), UINT32_C(0x00564B68), UINT32_C(0x001118FF), + UINT32_C(0x0039B3EA), UINT32_C(0x0014D131)}, + {UINT32_C(0x0013C497), UINT32_C(0x003C1203), UINT32_C(0x0017B8C9), + UINT32_C(0x005F5C63), UINT32_C(0x001C40D9), UINT32_C(0x00337A68), + UINT32_C(0x00200255), UINT32_C(0x007B6F12), UINT32_C(0x001F0C0A), + UINT32_C(0x000D6663), UINT32_C(0x001F59C2), UINT32_C(0x00154C68), + UINT32_C(0x00345E93), UINT32_C(0x003D89D5), UINT32_C(0x00342AEC), + UINT32_C(0x006FD7F9), UINT32_C(0x0015325A), UINT32_C(0x001C82FE), + UINT32_C(0x0032F5E8), UINT32_C(0x00078F1F), UINT32_C(0x0025FC9A), + UINT32_C(0x003196C7), UINT32_C(0x0039E007)}, + {UINT32_C(0x0039A6FC), UINT32_C(0x0011CEAB), UINT32_C(0x0012DC99), + UINT32_C(0x005819B9), UINT32_C(0x0018EB3D), UINT32_C(0x00219D0B), + UINT32_C(0x001627FA), UINT32_C(0x003FFC71), UINT32_C(0x000E2B28), + UINT32_C(0x000516D9), UINT32_C(0x003B039D), UINT32_C(0x001E1B28), + UINT32_C(0x00179D77), UINT32_C(0x002E37D9), UINT32_C(0x0003A1C1), + UINT32_C(0x000D735B), UINT32_C(0x00360858), UINT32_C(0x0008AFC3), + UINT32_C(0x0016FD4C), UINT32_C(0x000289D6), UINT32_C(0x001E9558), + UINT32_C(0x000AF3EA), UINT32_C(0x003D50FE)}}, + {{UINT32_C(0x0053D15A), UINT32_C(0x002C2F83), UINT32_C(0x00170ABE), + UINT32_C(0x00712A78), UINT32_C(0x00103D0A), UINT32_C(0x0005BC7E), + UINT32_C(0x002462B7), UINT32_C(0x00116FB3), UINT32_C(0x0032D4A0), + UINT32_C(0x003CCDA0), UINT32_C(0x00088A2E), UINT32_C(0x00510F79), + UINT32_C(0x00293310), UINT32_C(0x001D649F), UINT32_C(0x00315518), + UINT32_C(0x002689D7), UINT32_C(0x00324D85), UINT32_C(0x00200963), + UINT32_C(0x00086C95), UINT32_C(0x000B31F5), UINT32_C(0x0013C26E), + UINT32_C(0x0003A95F), UINT32_C(0x0036130B)}, + {UINT32_C(0x0011ED3F), UINT32_C(0x0022E8CD), UINT32_C(0x000AF23D), + UINT32_C(0x000A28B1), UINT32_C(0x001C1B53), UINT32_C(0x0004BD1F), + UINT32_C(0x000B0909), UINT32_C(0x006FD7AA), UINT32_C(0x001BA416), + UINT32_C(0x0003F26B), UINT32_C(0x00305459), UINT32_C(0x0074C3EC), + UINT32_C(0x00287773), UINT32_C(0x0034CC74), UINT32_C(0x002D85ED), + UINT32_C(0x005C853F), UINT32_C(0x00049BB2), UINT32_C(0x000DF4CA), + UINT32_C(0x0016E02A), UINT32_C(0x004D746D), UINT32_C(0x000B5669), + UINT32_C(0x0011DAD1), UINT32_C(0x0016A410)}, + {UINT32_C(0x00112679), UINT32_C(0x002ADF1B), UINT32_C(0x0008BDEA), + UINT32_C(0x007D441A), UINT32_C(0x0037A3DB), UINT32_C(0x0008035D), + UINT32_C(0x001D18DE), UINT32_C(0x00432D9E), UINT32_C(0x00217C8D), + UINT32_C(0x0034B1CC), UINT32_C(0x00347E03), UINT32_C(0x007CEF1A), + UINT32_C(0x003CA8B5), UINT32_C(0x000B5855), UINT32_C(0x0034A8BC), + UINT32_C(0x003867CB), UINT32_C(0x00169433), UINT32_C(0x00134C66), + UINT32_C(0x0011D943), UINT32_C(0x0061B8E4), UINT32_C(0x00383EDC), + UINT32_C(0x00274AAD), UINT32_C(0x000AE283)}}, + }}; + +/*- + * Q := 2P, both projective, Q and P same pointers OK + * Autogenerated: op3/dbl_proj_ed_eone.op3 + * https://www.hyperelliptic.org/EFD/g1p/auto-code/twisted/extended-1/doubling/dbl-2008-hwcd.op3 + * ASSERT: e = 1 + */ +static void point_double(pt_prj_t *Q, const pt_prj_t *P) { + /* temporary variables */ + fe_t t0, t1, t2, t3; + /* constants */ + /* set pointers for Edwards curve arith */ + const limb_t *X = P->X; + const limb_t *Y = P->Y; + const limb_t *Z = P->Z; + limb_t *X3 = Q->X; + limb_t *Y3 = Q->Y; + limb_t *T3 = Q->T; + limb_t *Z3 = Q->Z; + + /* the curve arith formula */ + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(t0, X); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(t1, Y); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(t2, Z); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(t3, t2, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(X3, X, Y); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(Y3, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(T3, Y3, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(Z3, T3, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(Y3, t0, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(t2, Y3, t3); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(t3, t0, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(X3, Z3, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(T3, Z3, t3); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Z3, t2, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Y3, Y3, t3); +} + +/*- + * R := Q + P where R and Q are projective, P affine. + * R and Q same pointers OK + * R and P same pointers not OK + * Autogenerated: op3/add_mixed_ed_eone.op3 + * https://hyperelliptic.org/EFD/g1p/auto-code/twisted/extended/addition/madd-2008-hwcd.op3 + * ASSERT: e = 1 + */ +static void point_add_mixed(pt_prj_t *R, const pt_prj_t *Q, const pt_aff_t *P) { + /* temporary variables */ + fe_t t0, t1, t2, t3; + /* constants */ + const limb_t *d = const_d; + /* set pointers for Edwards curve arith */ + const limb_t *X1 = Q->X; + const limb_t *Y1 = Q->Y; + const limb_t *T1 = Q->T; + const limb_t *Z1 = Q->Z; + const limb_t *X2 = P->X; + const limb_t *Y2 = P->Y; + const limb_t *T2 = P->T; + limb_t *X3 = R->X; + limb_t *Y3 = R->Y; + limb_t *T3 = R->T; + limb_t *Z3 = R->Z; + + /* the curve arith formula */ + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t0, X1, X2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t1, Y1, Y2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t2, d, T2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t2, T1, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(X3, X1, Y1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(Y3, X2, Y2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(T3, X3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(t3, T3, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(T3, t3, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(t3, Z1, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(Z3, Z1, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(t1, t1, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(X3, T3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Y3, t3, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(T3, T3, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Z3, Z3, t3); +} + +/*- + * R := Q + P all projective. + * R and Q same pointers OK + * R and P same pointers not OK + * Autogenerated: op3/add_proj_ed_eone.op3 + * https://hyperelliptic.org/EFD/g1p/auto-code/twisted/extended/addition/add-2008-hwcd.op3 + * ASSERT: e = 1 + */ +static void point_add_proj(pt_prj_t *R, const pt_prj_t *Q, const pt_prj_t *P) { + /* temporary variables */ + fe_t t0, t1, t2, t3; + /* constants */ + const limb_t *d = const_d; + /* set pointers for Edwards curve arith */ + const limb_t *X1 = Q->X; + const limb_t *Y1 = Q->Y; + const limb_t *T1 = Q->T; + const limb_t *Z1 = Q->Z; + const limb_t *X2 = P->X; + const limb_t *Y2 = P->Y; + const limb_t *T2 = P->T; + const limb_t *Z2 = P->Z; + limb_t *X3 = R->X; + limb_t *Y3 = R->Y; + limb_t *T3 = R->T; + limb_t *Z3 = R->Z; + + /* the curve arith formula */ + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t0, X1, X2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t1, Y1, Y2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t2, d, T2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t2, T1, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t3, Z1, Z2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(X3, X1, Y1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(Y3, X2, Y2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(T3, X3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(Z3, T3, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(T3, Z3, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(Z3, t3, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(t3, t3, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(t1, t1, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(X3, T3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Y3, t3, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(T3, T3, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Z3, Z3, t3); +} + +/*- + * from P projective Edwards to Q projective legacy: Q=P OK + * Autogenerated: op3/edwards2legacy_gost.op3 + * https://tools.ietf.org/html/rfc7836#section-5.2 + */ +static void point_edwards2legacy(pt_prj_t *Q, const pt_prj_t *P) { + /* temporary variables */ + fe_t t0, t1; + /* constants */ + const limb_t *S = const_S; + const limb_t *T = const_T; + const limb_t *X1 = P->X; + const limb_t *Y1 = P->Y; + const limb_t *Z1 = P->Z; + limb_t *X3 = Q->X; + limb_t *Y3 = Q->Y; + limb_t *T3 = Q->T; + limb_t *Z3 = Q->Z; + + /* the curve arith formula */ + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(t0, Z1, Y1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(t1, Z1, Y1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(T3, S, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Y3, Z1, T3); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Z3, X3, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t1, t1, T); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(t0, T3, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(X3, X1, t0); +} + +/*- + * from P affine legacy to Q projective Edwards: Q=P not OK + * Autogenerated: op3/legacy2edwards_gost.op3 + * https://tools.ietf.org/html/rfc7836#section-5.2 + */ +static void point_legacy2edwards(pt_prj_t *Q, const pt_aff_t *P) { + /* constants */ + const limb_t *S = const_S; + const limb_t *T = const_T; + const limb_t *X1 = P->X; + const limb_t *Y1 = P->Y; + limb_t *X3 = Q->X; + limb_t *Y3 = Q->Y; + limb_t *T3 = Q->T; + limb_t *Z3 = Q->Z; + + /* the curve arith formula */ + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(T3, X1, T); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(Y3, T3, S); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(X3, T3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Z3, Y1, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(T3, T3, S); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Y3, Y1, T3); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(T3, X3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(X3, X3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Y3, Y3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(Z3, Z3); +} + +/* constants */ +#define RADIX 5 +#define DRADIX (1 << RADIX) +#define DRADIX_WNAF ((DRADIX) << 1) + +/*- + * precomp for wnaf scalar multiplication: + * precomp[0] = 1P + * precomp[1] = 3P + * precomp[2] = 5P + * precomp[3] = 7P + * precomp[4] = 9P + * ... + */ +static void precomp_wnaf(pt_prj_t precomp[DRADIX / 2], const pt_aff_t *P) { + int i; + + /* move from legacy affine to Edwards projective */ + point_legacy2edwards(&precomp[0], P); + point_double(&precomp[DRADIX / 2 - 1], &precomp[0]); + + for (i = 1; i < DRADIX / 2; i++) + point_add_proj(&precomp[i], &precomp[DRADIX / 2 - 1], &precomp[i - 1]); +} + +/* fetch a scalar bit */ +static int scalar_get_bit(const unsigned char in[64], int idx) { + int widx, rshift; + + widx = idx >> 3; + rshift = idx & 0x7; + + if (idx < 0 || widx >= 64) return 0; + + return (in[widx] >> rshift) & 0x1; +} + +/*- + * Compute "regular" wnaf representation of a scalar. + * See "Exponent Recoding and Regular Exponentiation Algorithms", + * Tunstall et al., AfricaCrypt 2009, Alg 6. + * It forces an odd scalar and outputs digits in + * {\pm 1, \pm 3, \pm 5, \pm 7, \pm 9, ...} + * i.e. signed odd digits with _no zeroes_ -- that makes it "regular". + */ +static void scalar_rwnaf(char out[103], const unsigned char in[64]) { + int i; + char window, d; + + window = (in[0] & (DRADIX_WNAF - 1)) | 1; + for (i = 0; i < 102; i++) { + d = (window & (DRADIX_WNAF - 1)) - DRADIX; + out[i] = d; + window = (window - d) >> RADIX; + window += scalar_get_bit(in, (i + 1) * RADIX + 1) << 1; + window += scalar_get_bit(in, (i + 1) * RADIX + 2) << 2; + window += scalar_get_bit(in, (i + 1) * RADIX + 3) << 3; + window += scalar_get_bit(in, (i + 1) * RADIX + 4) << 4; + window += scalar_get_bit(in, (i + 1) * RADIX + 5) << 5; + } + out[i] = window; +} + +/*- + * Compute "textbook" wnaf representation of a scalar. + * NB: not constant time + */ +static void scalar_wnaf(char out[513], const unsigned char in[64]) { + int i; + char window, d; + + window = in[0] & (DRADIX_WNAF - 1); + for (i = 0; i < 513; i++) { + d = 0; + if ((window & 1) && ((d = window & (DRADIX_WNAF - 1)) & DRADIX)) + d -= DRADIX_WNAF; + out[i] = d; + window = (window - d) >> 1; + window += scalar_get_bit(in, i + 1 + RADIX) << RADIX; + } +} + +/*- + * Simulateous scalar multiplication: interleaved "textbook" wnaf. + * NB: not constant time + */ +static void var_smul_wnaf_two(pt_aff_t *out, const unsigned char a[64], + const unsigned char b[64], const pt_aff_t *P) { + int i, d, is_neg, is_inf = 1, flipped = 0; + char anaf[513] = {0}; + char bnaf[513] = {0}; + pt_prj_t Q; + pt_prj_t precomp[DRADIX / 2]; + + precomp_wnaf(precomp, P); + scalar_wnaf(anaf, a); + scalar_wnaf(bnaf, b); + + for (i = 512; i >= 0; i--) { + if (!is_inf) point_double(&Q, &Q); + if ((d = bnaf[i])) { + if ((is_neg = d < 0) != flipped) { + fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(Q.X, Q.X); + fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(Q.T, Q.T); + flipped ^= 1; + } + d = (is_neg) ? (-d - 1) >> 1 : (d - 1) >> 1; + if (is_inf) { + /* initialize accumulator */ + fe_copy(Q.X, &precomp[d].X); + fe_copy(Q.Y, &precomp[d].Y); + fe_copy(Q.T, &precomp[d].T); + fe_copy(Q.Z, &precomp[d].Z); + is_inf = 0; + } else + point_add_proj(&Q, &Q, &precomp[d]); + } + if ((d = anaf[i])) { + if ((is_neg = d < 0) != flipped) { + fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(Q.X, Q.X); + fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(Q.T, Q.T); + flipped ^= 1; + } + d = (is_neg) ? (-d - 1) >> 1 : (d - 1) >> 1; + if (is_inf) { + /* initialize accumulator */ + fe_copy(Q.X, &lut_cmb[0][d].X); + fe_copy(Q.Y, &lut_cmb[0][d].Y); + fe_copy(Q.T, &lut_cmb[0][d].T); + fe_copy(Q.Z, const_one); + is_inf = 0; + } else + point_add_mixed(&Q, &Q, &lut_cmb[0][d]); + } + } + + if (is_inf) { + /* initialize accumulator to inf: all-zero scalars */ + fe_set_zero(Q.X); + fe_copy(Q.Y, const_one); + fe_set_zero(Q.T); + fe_copy(Q.Z, const_one); + } + + if (flipped) { + /* correct sign */ + fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(Q.X, Q.X); + fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(Q.T, Q.T); + } + + /* move from Edwards projective to legacy projective */ + point_edwards2legacy(&Q, &Q); + /* convert to affine -- NB depends on coordinate system */ + fiat_id_tc26_gost_3410_2012_512_paramSetC_inv(Q.Z, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(out->X, Q.X, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(out->Y, Q.Y, Q.Z); +} + +/*- + * Variable point scalar multiplication with "regular" wnaf. + */ +static void var_smul_rwnaf(pt_aff_t *out, const unsigned char scalar[64], + const pt_aff_t *P) { + int i, j, d, diff, is_neg; + char rnaf[103] = {0}; + pt_prj_t Q, lut; + pt_prj_t precomp[DRADIX / 2]; + + precomp_wnaf(precomp, P); + scalar_rwnaf(rnaf, scalar); + +#if defined(_MSC_VER) + /* result still unsigned: yes we know */ +#pragma warning(push) +#pragma warning(disable : 4146) +#endif + + /* initialize accumulator to high digit */ + d = (rnaf[102] - 1) >> 1; + for (j = 0; j < DRADIX / 2; j++) { + diff = (1 - (-(d ^ j) >> (8 * sizeof(int) - 1))) & 1; + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.X, diff, Q.X, + precomp[j].X); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.Y, diff, Q.Y, + precomp[j].Y); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.T, diff, Q.T, + precomp[j].T); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.Z, diff, Q.Z, + precomp[j].Z); + } + + for (i = 101; i >= 0; i--) { + for (j = 0; j < RADIX; j++) point_double(&Q, &Q); + d = rnaf[i]; + /* is_neg = (d < 0) ? 1 : 0 */ + is_neg = (d >> (8 * sizeof(int) - 1)) & 1; + /* d = abs(d) */ + d = (d ^ -is_neg) + is_neg; + d = (d - 1) >> 1; + for (j = 0; j < DRADIX / 2; j++) { + diff = (1 - (-(d ^ j) >> (8 * sizeof(int) - 1))) & 1; + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz( + lut.X, diff, lut.X, precomp[j].X); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz( + lut.Y, diff, lut.Y, precomp[j].Y); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz( + lut.T, diff, lut.T, precomp[j].T); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz( + lut.Z, diff, lut.Z, precomp[j].Z); + } + /* negate lut point if digit is negative */ + fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(out->X, lut.X); + fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(out->T, lut.T); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(lut.X, is_neg, + lut.X, out->X); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(lut.T, is_neg, + lut.T, out->T); + point_add_proj(&Q, &Q, &lut); + } + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif + + /* conditionally subtract P if the scalar was even */ + fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(lut.X, precomp[0].X); + fe_copy(lut.Y, precomp[0].Y); + fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(lut.T, precomp[0].T); + fe_copy(lut.Z, precomp[0].Z); + point_add_proj(&lut, &lut, &Q); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.X, scalar[0] & 1, + lut.X, Q.X); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.Y, scalar[0] & 1, + lut.Y, Q.Y); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.T, scalar[0] & 1, + lut.T, Q.T); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.Z, scalar[0] & 1, + lut.Z, Q.Z); + + /* move from Edwards projective to legacy projective */ + point_edwards2legacy(&Q, &Q); + /* convert to affine -- NB depends on coordinate system */ + fiat_id_tc26_gost_3410_2012_512_paramSetC_inv(Q.Z, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(out->X, Q.X, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(out->Y, Q.Y, Q.Z); +} + +/*- + * Fixed scalar multiplication: comb with interleaving. + */ +static void fixed_smul_cmb(pt_aff_t *out, const unsigned char scalar[64]) { + int i, j, k, d, diff, is_neg = 0; + char rnaf[103] = {0}; + pt_prj_t Q, R; + pt_aff_t lut; + + scalar_rwnaf(rnaf, scalar); + + /* initalize accumulator to inf */ + fe_set_zero(Q.X); + fe_copy(Q.Y, const_one); + fe_set_zero(Q.T); + fe_copy(Q.Z, const_one); + +#if defined(_MSC_VER) + /* result still unsigned: yes we know */ +#pragma warning(push) +#pragma warning(disable : 4146) +#endif + + for (i = 17; i >= 0; i--) { + for (j = 0; i != 17 && j < RADIX; j++) point_double(&Q, &Q); + for (j = 0; j < 7; j++) { + if (j * 18 + i > 102) continue; + d = rnaf[j * 18 + i]; + /* is_neg = (d < 0) ? 1 : 0 */ + is_neg = (d >> (8 * sizeof(int) - 1)) & 1; + /* d = abs(d) */ + d = (d ^ -is_neg) + is_neg; + d = (d - 1) >> 1; + for (k = 0; k < DRADIX / 2; k++) { + diff = (1 - (-(d ^ k) >> (8 * sizeof(int) - 1))) & 1; + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz( + lut.X, diff, lut.X, lut_cmb[j][k].X); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz( + lut.Y, diff, lut.Y, lut_cmb[j][k].Y); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz( + lut.T, diff, lut.T, lut_cmb[j][k].T); + } + /* negate lut point if digit is negative */ + fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(out->X, lut.X); + fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(out->T, lut.T); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(lut.X, is_neg, + lut.X, out->X); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(lut.T, is_neg, + lut.T, out->T); + point_add_mixed(&Q, &Q, &lut); + } + } + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif + + /* conditionally subtract P if the scalar was even */ + fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(lut.X, lut_cmb[0][0].X); + fe_copy(lut.Y, lut_cmb[0][0].Y); + fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(lut.T, lut_cmb[0][0].T); + point_add_mixed(&R, &Q, &lut); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.X, scalar[0] & 1, R.X, + Q.X); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.Y, scalar[0] & 1, R.Y, + Q.Y); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.T, scalar[0] & 1, R.T, + Q.T); + fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.Z, scalar[0] & 1, R.Z, + Q.Z); + + /* move from Edwards projective to legacy projective */ + point_edwards2legacy(&Q, &Q); + /* convert to affine -- NB depends on coordinate system */ + fiat_id_tc26_gost_3410_2012_512_paramSetC_inv(Q.Z, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(out->X, Q.X, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(out->Y, Q.Y, Q.Z); +} + +static void point_mul_two(unsigned char outx[64], unsigned char outy[64], + const unsigned char a[64], const unsigned char b[64], + const unsigned char inx[64], + const unsigned char iny[64]) { + pt_aff_t P; + + fiat_id_tc26_gost_3410_2012_512_paramSetC_from_bytes(P.X, inx); + fiat_id_tc26_gost_3410_2012_512_paramSetC_from_bytes(P.Y, iny); + /* simultaneous scalar multiplication */ + var_smul_wnaf_two(&P, a, b, &P); + + fiat_id_tc26_gost_3410_2012_512_paramSetC_to_bytes(outx, P.X); + fiat_id_tc26_gost_3410_2012_512_paramSetC_to_bytes(outy, P.Y); +} + +static void point_mul_g(unsigned char outx[64], unsigned char outy[64], + const unsigned char scalar[64]) { + pt_aff_t P; + + /* fixed scmul function */ + fixed_smul_cmb(&P, scalar); + fiat_id_tc26_gost_3410_2012_512_paramSetC_to_bytes(outx, P.X); + fiat_id_tc26_gost_3410_2012_512_paramSetC_to_bytes(outy, P.Y); +} + +static void point_mul(unsigned char outx[64], unsigned char outy[64], + const unsigned char scalar[64], + const unsigned char inx[64], + const unsigned char iny[64]) { + pt_aff_t P; + + fiat_id_tc26_gost_3410_2012_512_paramSetC_from_bytes(P.X, inx); + fiat_id_tc26_gost_3410_2012_512_paramSetC_from_bytes(P.Y, iny); + /* var scmul function */ + var_smul_rwnaf(&P, scalar, &P); + fiat_id_tc26_gost_3410_2012_512_paramSetC_to_bytes(outx, P.X); + fiat_id_tc26_gost_3410_2012_512_paramSetC_to_bytes(outy, P.Y); +} + +#include <openssl/ec.h> + +static const unsigned char const_zb[64] = {0}; + + int + point_mul_two_id_tc26_gost_3410_2012_512_paramSetC( + const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, const EC_POINT *q, + const BIGNUM *m, BN_CTX *ctx) { + int ret = 0; + unsigned char b_x[64]; + unsigned char b_y[64]; + unsigned char b_n[64]; + unsigned char b_m[64]; + BIGNUM *x = NULL, *y = NULL; + + BN_CTX_start(ctx); + x = BN_CTX_get(ctx); + if ((y = BN_CTX_get(ctx)) == NULL + /* pull out coords as bytes */ + || !EC_POINT_get_affine_coordinates(group, q, x, y, ctx) || + BN_bn2lebinpad(x, b_x, 64) != 64 || BN_bn2lebinpad(y, b_y, 64) != 64 || + BN_bn2lebinpad(n, b_n, 64) != 64 || BN_bn2lebinpad(m, b_m, 64) != 64) + goto err; + /* do the simultaneous scalar multiplication */ + point_mul_two(b_x, b_y, b_n, b_m, b_x, b_y); + /* check for infinity */ + if (CRYPTO_memcmp(const_zb, b_x, 64) == 0 && + CRYPTO_memcmp(const_zb, b_y, 64) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 64, x) == NULL || + BN_lebin2bn(b_y, 64, y) == NULL || + !EC_POINT_set_affine_coordinates(group, r, x, y, ctx)) + goto err; + } + ret = 1; +err: + BN_CTX_end(ctx); + return ret; +} + + int + point_mul_id_tc26_gost_3410_2012_512_paramSetC(const EC_GROUP *group, + EC_POINT *r, + const EC_POINT *q, + const BIGNUM *m, + BN_CTX *ctx) { + int ret = 0; + unsigned char b_x[64]; + unsigned char b_y[64]; + unsigned char b_m[64]; + BIGNUM *x = NULL, *y = NULL; + + BN_CTX_start(ctx); + x = BN_CTX_get(ctx); + if ((y = BN_CTX_get(ctx)) == NULL + /* pull out coords as bytes */ + || !EC_POINT_get_affine_coordinates(group, q, x, y, ctx) || + BN_bn2lebinpad(x, b_x, 64) != 64 || BN_bn2lebinpad(y, b_y, 64) != 64 || + BN_bn2lebinpad(m, b_m, 64) != 64) + goto err; + /* do the variable scalar multiplication */ + point_mul(b_x, b_y, b_m, b_x, b_y); + /* check for infinity */ + if (CRYPTO_memcmp(const_zb, b_x, 64) == 0 && + CRYPTO_memcmp(const_zb, b_y, 64) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 64, x) == NULL || + BN_lebin2bn(b_y, 64, y) == NULL || + !EC_POINT_set_affine_coordinates(group, r, x, y, ctx)) + goto err; + } + ret = 1; +err: + BN_CTX_end(ctx); + return ret; +} + + int + point_mul_g_id_tc26_gost_3410_2012_512_paramSetC(const EC_GROUP *group, + EC_POINT *r, + const BIGNUM *n, + BN_CTX *ctx) { + int ret = 0; + unsigned char b_x[64]; + unsigned char b_y[64]; + unsigned char b_n[64]; + BIGNUM *x = NULL, *y = NULL; + + BN_CTX_start(ctx); + x = BN_CTX_get(ctx); + if ((y = BN_CTX_get(ctx)) == NULL || BN_bn2lebinpad(n, b_n, 64) != 64) + goto err; + /* do the fixed scalar multiplication */ + point_mul_g(b_x, b_y, b_n); + /* check for infinity */ + if (CRYPTO_memcmp(const_zb, b_x, 64) == 0 && + CRYPTO_memcmp(const_zb, b_y, 64) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 64, x) == NULL || + BN_lebin2bn(b_y, 64, y) == NULL || + !EC_POINT_set_affine_coordinates(group, r, x, y, ctx)) + goto err; + } + ret = 1; +err: + BN_CTX_end(ctx); + return ret; +} + + + +#endif /* __SIZEOF_INT128__ */ |